diff --git a/Makefile b/Makefile index ebcee1d..755258f 100644 --- a/Makefile +++ b/Makefile @@ -4,8 +4,8 @@ client-nocache: bun build src/clientjs/index.ts --target=browser --outfile=templates/html/static/client.js --minify templates/html/static/client.js: src/clientjs/* - bun build src/clientjs/index.ts --target=browser --outfile=templates/html/static/client.js --minify - bun build src/clientjs/search.ts --target=browser --outfile=templates/html/static/search.js --minify + bun build src/clientjs/index.ts --target=browser --outfile=templates/html/static/client.js --minify --sourcemap + bun build src/clientjs/search.ts --target=browser --outfile=templates/html/static/search.js --minify --sourcemap client: templates/html/static/client.js diff --git a/bun.lockb b/bun.lockb index 6ce32d7..28e9ee7 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/docs/djockey.yaml b/docs/djockey.yaml index ddfbc75..b1706b8 100644 --- a/docs/djockey.yaml +++ b/docs/djockey.yaml @@ -23,6 +23,26 @@ gfm: html: ignore_css: ["api/**/*.css"] # ignore TypeDoc CSS footer_text: "©2024 Steve Landey" + extra_static_dirs: + - path: ../node_modules/@fontsource/ibm-plex-sans + exclude_patterns: [] + patterns: + - "300.css" + - "300-italic.css" + - "400.css" + - "400-italic.css" + - "600.css" + - "600-italic.css" + - "700.css" + - "700-italic.css" + - "files/ibm-plex-sans-latin-300-normal.woff2" + - "files/ibm-plex-sans-latin-300-italic.woff2" + - "files/ibm-plex-sans-latin-400-normal.woff2" + - "files/ibm-plex-sans-latin-400-italic.woff2" + - "files/ibm-plex-sans-latin-600-normal.woff2" + - "files/ibm-plex-sans-latin-600-italic.woff2" + - "files/ibm-plex-sans-latin-700-normal.woff2" + - "files/ibm-plex-sans-latin-700-italic.woff2" header_links: - text: "Plugin API docs" url: "https://steveasleep.com/djockey/api/" diff --git a/docs/meta/api_readme.md b/docs/meta/api_readme.md index 0964f67..c2b0e17 100644 --- a/docs/meta/api_readme.md +++ b/docs/meta/api_readme.md @@ -1 +1,3 @@ This is the API reference documentation for Djockey. To read the primary docs, go to [https://steveasleep.com/djockey/](../plugins/index.html). + +The API is unstable and there are _no_ semver guarantees about compatibility at this time. Check back around October, or [open an issue](https://github.com/irskep/djockey/issues/new) describing your use case. diff --git a/docs/src/alternatives.dj b/docs/src/alternatives.dj deleted file mode 100644 index 8d360f6..0000000 --- a/docs/src/alternatives.dj +++ /dev/null @@ -1,13 +0,0 @@ ---- -order: -2 ---- -# Alternatives to Djockey - -There are many wonderful documentation systems out there and Djockey tries to take inspiration from all of them. In the spirit of helping you solve your real problems, here's a list of good options with active maintenance and large communities. - -| | Markup | Implementation | -|-|-|-| -| [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) | [CommonMark](https://commonmark.org/) with custom extensions | Python | -| [Sphinx](https://www.sphinx-doc.org/en/master/index.html) | [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html), [MyST](https://mystmd.org) | Python | -| [Docusaurus](https://docusaurus.io) | [CommonMark](https://commonmark.org/), [MDX](https://mdxjs.com), | JavaScript | -| [Starlight](https://starlight.astro.build) | [Markdoc](https://markdoc.dev/docs/syntax), [MDX](https://mdxjs.com), | JavaScript | \ No newline at end of file diff --git a/docs/src/basics/custom_markup.dj b/docs/src/basics/custom_markup.dj deleted file mode 100644 index a5c7518..0000000 --- a/docs/src/basics/custom_markup.dj +++ /dev/null @@ -1,33 +0,0 @@ ---- -order: -5 ---- -# Custom markup - -{tag=aside .caution} -::: -The details of this markup are likely to change, since Djockey is experimental. -::: - -## Overriding HTML tags - -Djot does not ([yet](https://github.com/jgm/djot/issues/240)) support arbitrary HTML tags in its input or output. Djockey works around this by postprocessing Djot's HTML output. Whenever you add a `tag=foo`{.language-text} attribute, Djockey will replace the element's tag with the attribute's value. - -{% can't use .dj-djot-demo for features that require the entire Djockey pipeline (yet) %} - -Input: - -```djot -{tag=details} -::: -[I'm from Mattel!]{tag=summary} -Well, I'm not really from Mattel. I'm actually from a smaller company that was purchased in a leveraged buyout. -::: -``` - -Output: - -{tag=details} -::: -[I'm from Mattel!]{tag=summary} -Well, I'm not really from Mattel. I'm actually from a smaller company that was purchased in a leveraged buyout. -::: \ No newline at end of file diff --git a/docs/src/basics/index.dj b/docs/src/basics/index.dj deleted file mode 100644 index 2fbd0dd..0000000 --- a/docs/src/basics/index.dj +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "Writing with Djockey" -order: 0 ---- \ No newline at end of file diff --git a/docs/src/changelog.dj b/docs/src/changelog.dj index 6358844..4699e34 100644 --- a/docs/src/changelog.dj +++ b/docs/src/changelog.dj @@ -6,6 +6,20 @@ order: -1 ## 0.2 +### 0.2.5 - 2024-09-06 + +- Static file improvements + + - Static files can be added from outside the doc source directory + +- Many changes to the default theme + +- Bug fixes + + - Search results no longer contain duplicated text + - Fixed some issues with custom markup and how it's documented + - Probably fixed more Windows bugs + ### 0.2.4 - 2024-09-04 - Djockey can now run on Windows @@ -31,11 +45,13 @@ order: -1 - Allow putting custom links in the header - HTML improvements + - OpenGraph and Twitter Card metadata - Site-wide search using [lunr](https://lunrjs.com) - Move "On this page" to a header bar on mobile instead of just disappearing - Plugin API improvements + - Plugins can provide static files, perhaps based on site content (this powers search) - More methods can be async - Plugins can mark nodes as "special" and not to be touched by other plugins diff --git a/docs/src/basics/djockey_command.dj b/docs/src/djockey_command.dj similarity index 100% rename from docs/src/basics/djockey_command.dj rename to docs/src/djockey_command.dj diff --git a/docs/src/basics/asides.dj b/docs/src/features/asides.dj similarity index 100% rename from docs/src/basics/asides.dj rename to docs/src/features/asides.dj diff --git a/docs/src/basics/configuration.dj b/docs/src/foundations/configuration.dj similarity index 88% rename from docs/src/basics/configuration.dj rename to docs/src/foundations/configuration.dj index 7f2a681..3abb1b9 100644 --- a/docs/src/basics/configuration.dj +++ b/docs/src/foundations/configuration.dj @@ -44,6 +44,11 @@ html: header_links: - text: "Some text" url: "https://a/full/url" + extra_static_dirs: + - path: "../node_modules/some_library" + exclude_patterns: ['**/*.ts'] # optional + patterns: # optional; default is '**/*' + - '**/*.css' gfm: ignore_static: ["**/*.html", "**/*.css", "**/*.js"] diff --git a/docs/src/foundations/custom_markup.dj b/docs/src/foundations/custom_markup.dj new file mode 100644 index 0000000..003f3f1 --- /dev/null +++ b/docs/src/foundations/custom_markup.dj @@ -0,0 +1,41 @@ +--- +order: -5 +--- +# Custom markup + +{tag=aside .caution} +::: +The details of this markup are likely to change, since Djockey is experimental. +::: + +## Overriding HTML tags + +Djot does not ([yet](https://github.com/jgm/djot/issues/240)) support arbitrary HTML tags in its input or output. Djockey works around this by postprocessing Djot's HTML output. Whenever you add a `tag=foo`{.language-text} attribute, Djockey will replace the element's tag with the attribute's value. + +```djot +{tag=details} +::: +{tag=summary} +I'm from Mattel! + +Well, I'm not really from Mattel. I'm actually from a smaller +company that was purchased in a leveraged buyout. +::: +``` + +{tag=details} +::: +{tag=summary} +I'm from Mattel! + +Well, I'm not really from Mattel. I'm actually from a smaller +company that was purchased in a leveraged buyout. +::: + +```html +
+I’m from Mattel! +

Well, I’m not really from Mattel. I’m actually from a smaller +company that was purchased in a leveraged buyout.

+
+``` \ No newline at end of file diff --git a/docs/src/basics/deploying.dj b/docs/src/foundations/deploying.dj similarity index 100% rename from docs/src/basics/deploying.dj rename to docs/src/foundations/deploying.dj diff --git a/docs/src/basics/djot.dj b/docs/src/foundations/djot.dj similarity index 100% rename from docs/src/basics/djot.dj rename to docs/src/foundations/djot.dj diff --git a/docs/src/basics/frontmatter.dj b/docs/src/foundations/frontmatter.dj similarity index 100% rename from docs/src/basics/frontmatter.dj rename to docs/src/foundations/frontmatter.dj diff --git a/docs/src/foundations/index.dj b/docs/src/foundations/index.dj new file mode 100644 index 0000000..d8b8d34 --- /dev/null +++ b/docs/src/foundations/index.dj @@ -0,0 +1,4 @@ +--- +title: "Foundations" +order: 0 +--- \ No newline at end of file diff --git a/docs/src/basics/linking.dj b/docs/src/foundations/linking.dj similarity index 82% rename from docs/src/basics/linking.dj rename to docs/src/foundations/linking.dj index 15c989b..50abcd5 100644 --- a/docs/src/basics/linking.dj +++ b/docs/src/foundations/linking.dj @@ -28,4 +28,10 @@ With Djockey, you can link to it anywhere with just `#the-answer`{.language-css} The goal of this feature is to make it easier to reorganize your docs on the fly. If there's any ambiguity, Djockey will warn you at build time. -Shorthand link resolution doesn't work for static files, but in theory it could be made to. \ No newline at end of file +Shorthand link resolution doesn't work for static files, but in theory it could be made to. + +## Explicit links always point to specific places + +If you prefix your link with `./` or `/`, Djockey will always try to resolve it directly without looking up any shorthands. + +If you don't use a slash prefix, Djockey will still _first_ check for a document or static file at that location relative to the source document before trying to use a shorthand. \ No newline at end of file diff --git a/docs/src/basics/markdown.md b/docs/src/foundations/markdown.md similarity index 100% rename from docs/src/basics/markdown.md rename to docs/src/foundations/markdown.md diff --git a/docs/src/basics/sections.dj b/docs/src/foundations/sections.dj similarity index 100% rename from docs/src/basics/sections.dj rename to docs/src/foundations/sections.dj diff --git a/docs/src/basics/static_files.dj b/docs/src/foundations/static_files.dj similarity index 100% rename from docs/src/basics/static_files.dj rename to docs/src/foundations/static_files.dj diff --git a/docs/src/getting_started.dj b/docs/src/getting_started.dj deleted file mode 100644 index f3871d0..0000000 --- a/docs/src/getting_started.dj +++ /dev/null @@ -1,30 +0,0 @@ ---- -order: 1 ---- -# Getting Started - -Once you've [installed Djockey](#Installation), create a file called `djockey.yaml`{.language-sh} that looks like this: - -```yaml -input_dir: path-to-your-docs -output_dir: - html: docs_out/html - gfm: docs_out/gfm -site_name: "Your Name Here" -url_root: https://where-docs-will-be-deployed - -html: - footer_text: "©2024 You" -``` - -Now try running `npx djockey --local`{.language-sh}. Maybe it'll just work! If not, it should tell you what's wrong. - -## Building for local viewing vs deployment - -When your site is generated, all internal URLs are prefixed with the value of `urlRoot`, which is counterproductive if you want to view your site without a web server and some edits to `/etc/hosts`. - -To have Djockey use file URLs instead, only valid on your own machine and not requiring a web server, pass `--local`. - -```sh -djockey my_docs_dir --local -``` \ No newline at end of file diff --git a/docs/src/index.dj b/docs/src/index.dj index bed712a..97a4bf3 100644 --- a/docs/src/index.dj +++ b/docs/src/index.dj @@ -1,12 +1,85 @@ --- -title: Home +title: Overview --- -# Djockey +# Overview -Djockey is a powerful but experimental static site generator for technical writing and project documentation. The goal is to have the depth and extensibility of [Sphinx](https://www.sphinx-doc.org/en/master/) with the ease-of-use and built-in power of [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/). +Djockey is an experimental but powerful static site generator for technical writing and project documentation. The goal is to have the depth and extensibility of [Sphinx](https://www.sphinx-doc.org/en/master/) with the ease-of-use and built-in power of [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/). - Write [Djot](https://djot.net) or [GitHub Flavored Markdown](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) - Output HTML or Markdown, so your docs are readable in the GitHub interface or on a nice web site - Rich cross-references, checked at build time - Tree-based plugins—stop writing Markdown tokenizer hacks! -- Biased toward static site rendering over client-side JS \ No newline at end of file +- De-emphasizes client-side JS, has a small core and a few small dependencies + +## Installation + +You can invoke `djockey`{.language-sh} directly with `npx`{.language-sh} or `bunx`{.language-sh}. + +{.tab-group} +::: + +### Node + +```sh +npx djockey path/to/docs +``` + +### Bun + +```sh +bunx djockey path/to/docs +``` + +::: + +or install it in your JS project and then run it: + +{.tab-group} +::: + +### Node + +```sh +npm install djockey +npm run djockey path/to/docs +``` + +### Bun + +```sh +bun install djockey +bunx djockey path/to/docs +``` +::: + +### Pandoc + +In order to use Markdown, you must also [install Pandoc](https://pandoc.org/installing.html). + +## Write a bare-bones config file + +Once you've [installed Djockey](#Installation), create a file called `djockey.yaml`{.language-sh} that looks like this: + +```yaml +input_dir: path-to-your-docs +output_dir: + html: docs_out/html + gfm: docs_out/gfm +site_name: "Your Name Here" +url_root: https://where-docs-will-be-deployed + +html: + footer_text: "©2024 You" +``` + +Now try running `npx djockey --local`{.language-sh}. Maybe it'll just work! If not, it should tell you what's wrong. + +## Building for local viewing vs deployment + +When your site is generated, all internal URLs are prefixed with the value of `urlRoot`, which is counterproductive if you want to view your site without a web server and some edits to `/etc/hosts`. + +To have Djockey use file URLs instead, only valid on your own machine and not requiring a web server, pass `--local`. + +```sh +djockey my_docs_dir --local +``` \ No newline at end of file diff --git a/docs/src/installation.dj b/docs/src/installation.dj deleted file mode 100644 index b2e1a5d..0000000 --- a/docs/src/installation.dj +++ /dev/null @@ -1,47 +0,0 @@ ---- -order: 0 ---- -# Installation - -You can invoke `djockey`{.language-sh} directly with `npx`{.language-sh} or `bunx`{.language-sh}. - -{.tab-group} -::: - -### Node - -```sh -npx djockey path/to/docs -``` - -### Bun - -```sh -bunx djockey path/to/docs -``` - -::: - -or install it in your JS project and then run it: - -{.tab-group} -::: - -### Node - -```sh -npm install djockey -npm run djockey path/to/docs -``` - -### Bun - -```sh -bun install djockey -bunx djockey path/to/docs -``` -::: - -## Pandoc - -In order to use Markdown, you must also [install Pandoc](https://pandoc.org/installing.html). \ No newline at end of file diff --git a/docs/src/static/custom.css b/docs/src/static/custom.css new file mode 100644 index 0000000..766ce46 --- /dev/null +++ b/docs/src/static/custom.css @@ -0,0 +1,7 @@ +:root { + --fw-bold: 700; /* Plex doesn't go up to 800 */ +} + +body { + font-family: "IBM Plex Sans", var(--f-system); +} diff --git a/docs/src/why.dj b/docs/src/why.dj index 5bd2ee0..06ff841 100644 --- a/docs/src/why.dj +++ b/docs/src/why.dj @@ -18,7 +18,7 @@ On the other hand, the reality is that people know Markdown and people want to w ### Other options -The [MyST](https://myst-parser.readthedocs.io/en/latest/) flavor of Markdown uses a very effective approach to bringing the deep extensibility of [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html) to Markdown. Unfortunately, the only existing parser is written in Python, and Djockey is not written in Python. It would be possible to try supporting MyST down the line by porting MyST's markdown-it extensions to JavaScript. +The [MyST](https://myst-parser.readthedocs.io/en/latest/) flavor of Markdown uses a very effective approach to bringing the deep extensibility of [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html) to Markdown. I am looking into adding MyST support to Djockey. ## Djockey @@ -48,4 +48,16 @@ With all this in mind, Djockey: 3. Is written in TypeScript, and integrates with TypeDoc 4. Hopes to evangelize Djot, but lets you write Markdown -The outcome is that you have an easy time writing your docs, and your users get the best possible UX. \ No newline at end of file +The outcome is that you have an easy time writing your docs, and your users get the best possible UX. + +## Alternatives to Djockey + +There are many wonderful documentation systems out there and Djockey tries to take inspiration from all of them. In the spirit of helping you solve your real problems, here's a list of good options with active maintenance and large communities. + +| | Markup | Implementation | +|-|-|-| +| [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) | [CommonMark](https://commonmark.org/) with custom extensions | Python | +| [Sphinx](https://www.sphinx-doc.org/en/master/index.html) | [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html), [MyST](https://mystmd.org) | Python | +| [Docusaurus](https://docusaurus.io) | [CommonMark](https://commonmark.org/), [MDX](https://mdxjs.com), | JavaScript | +| [Starlight](https://starlight.astro.build) | [Markdoc](https://markdoc.dev/docs/syntax), [MDX](https://mdxjs.com), | JavaScript | +| [Quartz](https://quartz.jzhao.xyz/) | Markdown | JavaScript | \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 0756ec6..2e18df0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "djockey", - "version": "0.1.1", + "version": "0.2.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "djockey", - "version": "0.1.1", + "version": "0.2.4", "license": "MIT", "dependencies": { "@djot/djot": "^0.3.1", @@ -14,7 +14,6 @@ "fast-glob": "^3.3.2", "gluegun": "^5.2.0", "js-yaml": "^4.1.0", - "lunr": "^2.3.9", "mermaid": "^10.9.1", "micromatch": "^4.0.8", "nunjucks": "^3.2.4", @@ -26,6 +25,7 @@ }, "devDependencies": { "@djockey/linkmapper-typedoc": "^0.0.7", + "@fontsource/ibm-plex-sans": "^5.0.21", "@jest/globals": "^29.7.0", "@types/argparse": "^2.0.16", "@types/d3": "^7.4.3", @@ -39,6 +39,7 @@ "@types/nunjucks": "^3.2.6", "@types/parse5": "^7.0.0", "jest": "^29.7.0", + "lunr": "^2.3.9", "ts-jest": "^29.2.5", "typedoc": "^0.26.6", "typescript": "^5.5.4" @@ -665,6 +666,12 @@ "node": ">=17.0.0" } }, + "node_modules/@fontsource/ibm-plex-sans": { + "version": "5.0.21", + "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-sans/-/ibm-plex-sans-5.0.21.tgz", + "integrity": "sha512-YmQJgR5rbynZPrbnfU2UojSduA8K5FV0jEq8CzTB6AU0C65ZZYrD1BX96rz/IBQx+uDeDfi4w9vP5Zb+TB5Uqw==", + "dev": true + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -4441,7 +4448,8 @@ "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true }, "node_modules/make-dir": { "version": "4.0.0", diff --git a/package.json b/package.json index 660b91d..b48067a 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "fast-glob": "^3.3.2", "gluegun": "^5.2.0", "js-yaml": "^4.1.0", - "lunr": "^2.3.9", "mermaid": "^10.9.1", "micromatch": "^4.0.8", "nunjucks": "^3.2.4", @@ -41,6 +40,7 @@ }, "devDependencies": { "@djockey/linkmapper-typedoc": "^0.0.7", + "@fontsource/ibm-plex-sans": "^5.0.21", "@jest/globals": "^29.7.0", "@types/argparse": "^2.0.16", "@types/d3": "^7.4.3", @@ -54,6 +54,7 @@ "@types/nunjucks": "^3.2.6", "@types/parse5": "^7.0.0", "jest": "^29.7.0", + "lunr": "^2.3.9", "ts-jest": "^29.2.5", "typedoc": "^0.26.6", "typescript": "^5.5.4" diff --git a/scripts/compile b/scripts/compile index 378f530..6610fd7 100755 --- a/scripts/compile +++ b/scripts/compile @@ -25,15 +25,13 @@ def main(): "bun", "build", "--compile", - "--minify", - "--sourcemap", "--asset-naming", "[name].[ext]", "--target", platform, "--outfile", out_path, - "./dist/cli.js", + "./src/cli.ts", ] + glob.glob("dist/templates/**/*.css", recursive=True) + glob.glob("dist/templates/**/*.js", recursive=True) diff --git a/src/clientjs/index.ts b/src/clientjs/index.ts index a7139fc..f24889c 100644 --- a/src/clientjs/index.ts +++ b/src/clientjs/index.ts @@ -42,5 +42,27 @@ window.onload = () => { mermaid.run({ querySelector: ".language-mermaid" }); + /* DJCOLLAPSE */ + + document.querySelectorAll(".DJCollapse_Collapser").forEach((el) => { + const targetID = (el as HTMLElement).dataset.collapseTarget; + el.addEventListener("click", (e) => { + const target = document.querySelector(`#${targetID}`); + if (!target) { + console.error("Can't find", `#${targetID}`); + return; + } + target.classList.toggle("m-collapsed"); + el.classList.remove("m-uncollapsed"); + el.classList.remove("m-collapsed"); + el.classList.add( + target.classList.contains("m-collapsed") + ? "m-collapsed" + : "m-uncollapsed" + ); + return true; + }); + }); + window.dispatchEvent(new Event("dj-onload")); }; diff --git a/src/clientjs/search.ts b/src/clientjs/search.ts index 57b5515..c150917 100644 --- a/src/clientjs/search.ts +++ b/src/clientjs/search.ts @@ -140,11 +140,11 @@ function lineToHTML( const localStart = start - line.startInclusive; if (localStart > lastPlainIndex) { result.push(line.text.slice(lastPlainIndex, localStart)); - lastPlainIndex = localStart + len; } result.push(""); result.push(line.text.slice(localStart, localStart + len)); result.push(""); + lastPlainIndex = localStart + len; } if (lastPlainIndex < line.text.length) { diff --git a/src/config.ts b/src/config.ts index b0e6392..783ed2b 100644 --- a/src/config.ts +++ b/src/config.ts @@ -40,6 +40,7 @@ export function getConfigDefaults(): DjockeyConfig { html: { ignore_static: [], footer_text: "", + extra_static_dirs: [], }, }; } diff --git a/src/engine/populateDocTreeDoc.ts b/src/engine/populateDocTreeDoc.ts index 11257d7..6d09bcc 100644 --- a/src/engine/populateDocTreeDoc.ts +++ b/src/engine/populateDocTreeDoc.ts @@ -20,6 +20,7 @@ export function populateDocTreeDoc( doc, docSet.tree?.rootSection, renderer, + [], logCollector ); if (!children.length) return; @@ -70,6 +71,7 @@ function renderSection( activeDoc: DjockeyDoc, section: DocTreeSection, renderer: DjockeyRenderer, + idPath: string[], logCollector: LogCollector, level: number = 1 ): Block[] { @@ -77,6 +79,9 @@ function renderSection( return { tag: "link", children: structuredClone(doc.titleAST), + attributes: { + class: doc.refPath === activeDoc.refPath ? "m-active" : "", + }, destination: renderer.transformLink({ config, sourcePath: activeDoc.refPath, @@ -91,33 +96,53 @@ function renderSection( const result = new Array(); - if (level > 1 || section.selfDocHasContent) { + const isOpen = activeDoc.refPath.startsWith(section.refPath); + + const docChildren = new Array(); + + if (level > 1) { result.push({ tag: "heading", level, + attributes: { + "data-collapse-target": idPath.join("-"), + class: idPath.length + ? isOpen + ? "DJCollapse_Collapser m-uncollapsed" + : "DJCollapse_Collapser m-collapsed" + : "", + }, children: section.selfDoc && section.selfDocHasContent ? [getDocLink(section.selfDoc)] : section.title, }); + } else if (section.selfDoc && section.selfDocHasContent) { + docChildren.push({ + tag: "list_item", + children: [{ tag: "para", children: [getDocLink(section.selfDoc)] }], + }); } - const docChildren: ListItem[] = section.docs.map((doc) => ({ - tag: "list_item", - children: [ - { - tag: "para", - children: [getDocLink(doc)], - }, - ], - })); - const sectionChildren: ListItem[] = section.children.map((child) => ({ + for (const doc of section.docs) { + docChildren.push({ + tag: "list_item", + children: [ + { + tag: "para", + children: [getDocLink(doc)], + }, + ], + }); + } + const sectionChildren: ListItem[] = section.children.map((child, i) => ({ tag: "list_item", children: renderSection( config, activeDoc, child, renderer, + idPath.concat([`doctree${i}`]), logCollector, level + 1 ), @@ -127,6 +152,14 @@ function renderSection( tag: "bullet_list", style: "-", tight: true, + attributes: idPath.length + ? { + id: idPath.join("-"), + class: isOpen + ? "DJCollapse_Collapsee" + : "DJCollapse_Collapsee m-collapsed", + } + : {}, children: [...docChildren, ...sectionChildren], }); diff --git a/src/plugins/searchPlugin.ts b/src/plugins/searchPlugin.ts index 699cd82..77d764b 100644 --- a/src/plugins/searchPlugin.ts +++ b/src/plugins/searchPlugin.ts @@ -37,7 +37,7 @@ export class SearchPlugin implements DjockeyPlugin { })); return [ { - path: "static/js/search-index.js", + refPath: "static/js/search-index.js", contents: `window.djSearchIndex = ${JSON.stringify(searchIndex)}`, }, ]; diff --git a/src/renderers/gfmRenderer.ts b/src/renderers/gfmRenderer.ts index 8c1367e..bef63eb 100644 --- a/src/renderers/gfmRenderer.ts +++ b/src/renderers/gfmRenderer.ts @@ -16,7 +16,6 @@ import { makePathBackToRoot, copyFilesMatchingPattern, ensureParentDirectoriesExist, - joinPath, writeFile, fsjoin, refpath2fspath, @@ -61,12 +60,14 @@ export class GFMRenderer implements DjockeyRenderer { const { templateDir, config, docs, staticFilesFromPlugins, logCollector } = args; const ignorePatterns = config.gfm.ignore_static; + const allStaticFileAbsoluteFSPaths = new Array(); const p1 = copyFilesMatchingPattern({ base: templateDir, dest: config.output_dir.gfm, pattern: "static/**/*", excludePaths: [], excludePatterns: ignorePatterns, + results: allStaticFileAbsoluteFSPaths, logCollector, }); const p2 = copyFilesMatchingPattern({ @@ -75,12 +76,13 @@ export class GFMRenderer implements DjockeyRenderer { pattern: "**/*", excludePaths: docs.map((d) => fastGlob.convertPathToPattern(d.fsPath)), excludePatterns: ignorePatterns, + results: allStaticFileAbsoluteFSPaths, logCollector, }); const p3 = Promise.all( staticFilesFromPlugins.map((f) => { return writeFile( - joinPath([config.output_dir.html, f.path]), + fsjoin([config.output_dir.html, refpath2fspath(f.refPath)]), f.contents ); }) diff --git a/src/renderers/htmlRenderer.test.ts b/src/renderers/htmlRenderer.test.ts index 8f85403..17060c4 100644 --- a/src/renderers/htmlRenderer.test.ts +++ b/src/renderers/htmlRenderer.test.ts @@ -3,5 +3,5 @@ import { postprocessHTML } from "./htmlRenderer.js"; test("postprocessHTML", () => { const result = postprocessHTML(`
CODE
`); - expect(result).toEqual(`
CODE
`); + expect(result).toEqual(`
CODE
`); }); diff --git a/src/renderers/htmlRenderer.ts b/src/renderers/htmlRenderer.ts index 46cc0ed..5705b70 100644 --- a/src/renderers/htmlRenderer.ts +++ b/src/renderers/htmlRenderer.ts @@ -18,8 +18,10 @@ import { copyFilesMatchingPattern, ensureParentDirectoriesExist, fsjoin, - joinPath, + fspath2refpath, makePathBackToRoot, + refpath2fspath, + refsplit, URL_SEPARATOR, writeFile, } from "../utils/pathUtils.js"; @@ -74,61 +76,69 @@ export class HTMLRenderer implements DjockeyRenderer { const { templateDir, config, docs, staticFilesFromPlugins, logCollector } = args; const ignorePatterns = config.html.ignore_static; + const allStaticFileAbsoluteFSPaths = new Array(); + + await Promise.all([ + copyFilesMatchingPattern({ + base: templateDir, + dest: config.output_dir.html, + pattern: "static/**/*", + excludePaths: [], + excludePatterns: ignorePatterns, + results: allStaticFileAbsoluteFSPaths, + logCollector, + }), + copyFilesMatchingPattern({ + base: config.input_dir, + dest: config.output_dir.html, + pattern: "**/*", + excludePaths: docs.map((d) => fastGlob.convertPathToPattern(d.fsPath)), + excludePatterns: ignorePatterns, + results: allStaticFileAbsoluteFSPaths, + logCollector, + }), + ...(config.html.extra_static_dirs || []).flatMap((extraStaticDir) => { + const fsBase = fsjoin([ + config.rootPath, + ...refsplit(extraStaticDir.path), + ]); + return (extraStaticDir.patterns || ["**/*"]).map(async (pattern) => { + copyFilesMatchingPattern({ + base: fsBase, + dest: config.output_dir.html, + pattern, + excludePaths: [], + excludePatterns: extraStaticDir.exclude_patterns ?? [], + results: allStaticFileAbsoluteFSPaths, + logCollector, + }); + }); + }), + + ...staticFilesFromPlugins.map((f) => { + const fsPath = fsjoin([ + config.output_dir.html, + refpath2fspath(f.refPath), + ]); + allStaticFileAbsoluteFSPaths.push(fsPath); + return writeFile(fsPath, f.contents); + }), + ]); - const p1 = copyFilesMatchingPattern({ - base: templateDir, - dest: config.output_dir.html, - pattern: "static/**/*", - excludePaths: [], - excludePatterns: ignorePatterns, - logCollector, - }); - const p2 = copyFilesMatchingPattern({ - base: config.input_dir, - dest: config.output_dir.html, - pattern: "**/*", - excludePaths: docs.map((d) => fastGlob.convertPathToPattern(d.fsPath)), - excludePatterns: ignorePatterns, - logCollector, - }); - const p3 = Promise.all( - staticFilesFromPlugins.map((f) => { - return writeFile( - joinPath([config.output_dir.html, f.path]), - f.contents - ); - }) + const allStaticFileRelativeRefPaths = allStaticFileAbsoluteFSPaths.map( + (fsPath) => fspath2refpath(path.relative(config.output_dir.html, fsPath)) ); - await Promise.all([p1, p2, p3]); - - const templateCSSFiles = fastGlob.sync(`${templateDir}/**/*.css`); - const inputCSSFiles = fastGlob.sync(`${config.input_dir}/**/*.css`, { - ignore: (config.html.ignore_css ?? []).map((pattern) => `**/${pattern}`), - }); - const pluginCSSFiles = micromatch.match( - staticFilesFromPlugins.map((f) => f.path), - "**/*.css" + this.cssURLsRelativeToBase = micromatch.match( + allStaticFileRelativeRefPaths, + "**/*.css", + { ignore: config.html.ignore_css } ); - this.cssURLsRelativeToBase = templateCSSFiles - .map((path_) => path.relative(templateDir, path_)) - .concat( - inputCSSFiles.map((path_) => path.relative(config.input_dir, path_)) - ) - .concat(pluginCSSFiles); - - const templateJSFiles = fastGlob.sync(`${templateDir}/**/*.js`); - const inputJSFiles = fastGlob.sync(`${config.input_dir}/**/*.js`); - const pluginJSFiles = micromatch.match( - staticFilesFromPlugins.map((f) => f.path), + + this.jsURLsRelativeToBase = micromatch.match( + allStaticFileRelativeRefPaths, "**/*.js" ); - this.jsURLsRelativeToBase = templateJSFiles - .map((path_) => path.relative(templateDir, path_)) - .concat( - inputJSFiles.map((path_) => path.relative(config.input_dir, path_)) - ) - .concat(pluginJSFiles); } async writeDoc(args: { @@ -212,11 +222,14 @@ interface TextNode { } function replaceNode(node: Element, tagName: string) { - const newEl: Element = { ...node, tagName: tagName }; + const newEl = structuredClone(node); + newEl.tagName = tagName; + newEl.attrs = newEl.attrs.filter((attr) => attr.name !== "tag"); const parent = node.parentNode!; const ix = parent.childNodes.indexOf(node); parent.childNodes[ix] = newEl; + return newEl; } /** @@ -231,7 +244,8 @@ export function postprocessHTML(html: string): string { for (const attr of node.attrs) { if (attr.name === "tag") { - replaceNode(node, attr.value); + node = replaceNode(node, attr.value); + continue; } } diff --git a/src/types.ts b/src/types.ts index 56b2eab..ed8d743 100644 --- a/src/types.ts +++ b/src/types.ts @@ -31,6 +31,11 @@ export interface DjockeyConfig { link_mappings?: LinkMappingConfig[]; html: { + extra_static_dirs?: { + path: string; + patterns?: string[]; + exclude_patterns?: string[]; + }[]; footer_text: string; ignore_css?: string[]; ignore_static: string[]; @@ -160,7 +165,7 @@ export interface DjockeyPluginModule { } export interface DjockeyStaticFileFromPlugin { - path: string; + refPath: string; contents: string; } diff --git a/src/utils/pathUtils.ts b/src/utils/pathUtils.ts index 6a95489..4f02bb9 100644 --- a/src/utils/pathUtils.ts +++ b/src/utils/pathUtils.ts @@ -5,10 +5,6 @@ import path from "path"; import fastGlob from "fast-glob"; import { LogCollector } from "./logUtils.js"; -export function joinPath(items: string[]): string { - return items.join(path.sep); -} - export function makePathBackToRoot( pathRelativeToInputDir: string, options: { sameDirectoryValue: string } = { sameDirectoryValue: "./" } @@ -49,14 +45,16 @@ export async function writeFile( } export async function copyFilesMatchingPattern(args: { - base: string; - dest: string; + base: string; // absolute fspath + dest: string; // absolute fspath pattern: string; excludePaths: string[]; // Absolute paths! excludePatterns: string[]; + results: string[]; // I will append to this logCollector: LogCollector; }) { - const { base, dest, pattern, excludePaths, excludePatterns } = args; + const { base, dest, pattern, excludePaths, excludePatterns, logCollector } = + args; const excludeSet = new Set(excludePaths); @@ -66,28 +64,32 @@ export async function copyFilesMatchingPattern(args: { )} to ${path.relative(".", dest)}`; args.logCollector.info(logMessage); - function copyPath(path_: string) { - const relativePath = path.relative(base, path_); + async function copyPath(fsRelativePath: string) { + const fsFullPathSrc = fsjoin([base, fsRelativePath]); + const fsFullPathDest = fsjoin([dest, fsRelativePath]); - if (excludeSet.has(`${base}/${relativePath}`)) return; + if (excludeSet.has(fsFullPathSrc)) return; - const newFullPath = `${dest}/${relativePath}`; + ensureParentDirectoriesExist(fsFullPathDest); - ensureParentDirectoriesExist(newFullPath); - - args.logCollector.info( - `Copying static file ${relativePath} to ${newFullPath}` + logCollector.info( + `Copying static file ${fsRelativePath} to ${fsFullPathDest}` ); - fs.copyFileSync(path_, `${dest}/${relativePath}`); + await fsPromises.copyFile(fsFullPathSrc, fsFullPathDest); + args.results.push(fsFullPathDest); } - const promises = fastGlob - .sync(`${base}/${pattern}`, { - ignore: excludePatterns, - }) - .map(async (path_) => await copyPath(path_)); + const globResults = await fastGlob.async(pattern, { + cwd: base, + ignore: excludePatterns, + }); + if (!globResults.length) { + logCollector.warning( + `No static files found in ${base} matching ${pattern}` + ); + } - await Promise.all(promises); + await Promise.all(globResults.map(copyPath)); } // for config files and internal non-filesystem representations @@ -138,3 +140,7 @@ export function refname(s: string): string { export function refpath2fspath(s: string): string { return fsjoin(refsplit(s)); } + +export function fspath2refpath(s: string): string { + return refjoin(fssplit(s)); +} diff --git a/templates/html/static/client.js b/templates/html/static/client.js index 0b8ed59..2734c32 100644 --- a/templates/html/static/client.js +++ b/templates/html/static/client.js @@ -1599,4 +1599,7 @@ ${Z.themeCSS}`;if(Z.fontFamily!==void 0)F+=` ${vH6} `},$07=(Z,M,z,F,W)=>{const G=Z.append("div");if(G.attr("id",z),F)G.attr("style",F);const L=G.append("svg").attr("id",M).attr("width","100%").attr("xmlns",EH6);if(W)L.attr("xmlns:xlink",W);return L.append("g"),Z},fH6=(Z,M,z,F)=>{var W,G,L;(W=Z.getElementById(M))==null||W.remove(),(G=Z.getElementById(z))==null||G.remove(),(L=Z.getElementById(F))==null||L.remove()},hH6=async function(Z,M,z){var F,W,G,L,P,q;mf0();const B=f97(M);M=B.code;const S=UX();if($0.debug(S),M.length>((S==null?void 0:S.maxTextSize)??qH6))M=BH6;const V="#"+Z,A="i"+Z,w="#"+A,R="d"+Z,_="#"+R;let $=E7("body");const D=S.securityLevel===TH6,h=S.securityLevel===SH6,m=S.fontFamily;if(z!==void 0){if(z)z.innerHTML="";if(D){const Y0=D07(E7(z),A);$=E7(Y0.nodes()[0].contentDocument.body),$.node().style.margin=0}else $=E7(z);$07($,Z,R,`font-family: ${m}`,VH6)}else{if(fH6(document,Z,R,A),D){const Y0=D07(E7("body"),A);$=E7(Y0.nodes()[0].contentDocument.body),$.node().style.margin=0}else $=E7("body");$07($,Z,R)}let t,p;try{t=await lf0(M,{title:B.title})}catch(Y0){t=new ff0("error"),p=Y0}const f=$.select(_).node(),i=t.type,s=f.firstChild,g=s.firstChild,d=(W=(F=t.renderer).getClasses)==null?void 0:W.call(F,M,t),y=uH6(S,i,d,V),a=document.createElement("style");a.innerHTML=y,s.insertBefore(a,g);try{await t.renderer.draw(M,Z,S07,t)}catch(Y0){throw bM6.draw(M,Z,S07),Y0}const n=$.select(`${_} svg`),Z0=(L=(G=t.db).getAccTitle)==null?void 0:L.call(G),W0=(q=(P=t.db).getAccDescription)==null?void 0:q.call(P);pH6(i,n,Z0,W0),$.select(`[id="${Z}"]`).selectAll("foreignobject > *").attr("xmlns",CH6);let O0=$.select(_).node().innerHTML;if($0.debug("config.arrowMarkerAbsolute",S.arrowMarkerAbsolute),O0=yH6(O0,D,hZ(S.arrowMarkerAbsolute)),D){const Y0=$.select(_+" svg").node();O0=mH6(O0,Y0)}else if(!h)O0=Rv.default.sanitize(O0,{ADD_TAGS:xH6,ADD_ATTR:_H6});if(TK6(),p)throw p;const r=E7(D?w:_).node();if(r&&"remove"in r)r.remove();return{svg:O0,bindFunctions:t.db.bindFunctions}},lf0=(Z,M={})=>{const{code:z}=m97(Z);return BK6(z,M)},kv,lH6=async()=>{$0.debug("Loading registered diagrams");const M=(await Promise.allSettled(Object.entries(Lm).map(async([z,{detector:F,loader:W}])=>{if(W)try{yf0(z)}catch(G){try{const{diagram:L,id:P}=await W();JK0(P,L,F)}catch(L){throw $0.error(`Failed to load external diagram with key ${z}. Removing from detectors.`),delete Lm[z],L}}}))).filter((z)=>z.status==="rejected");if(M.length>0){$0.error(`Failed to load ${M.length} external diagrams`);for(let z of M)$0.error(z);throw new Error(`Failed to load ${M.length} external diagrams`)}},rH6=(Z,M,z)=>{if($0.warn(Z),c07(Z)){if(z)z(Z.str,Z.hash);M.push({...Z,message:Z.str,error:Z})}else{if(z)z(Z);if(Z instanceof Error)M.push({str:Z.message,message:Z.message,hash:Z.name,error:Z})}},h97=async function(Z={querySelector:".mermaid"}){try{await iH6(Z)}catch(M){if(c07(M))$0.error(M.str);if(JG.parseError)JG.parseError(M);if(!Z.suppressErrors)throw $0.error("Use the suppressErrors option to suppress these errors"),M}},iH6=async function({postRenderCallback:Z,querySelector:M,nodes:z}={querySelector:".mermaid"}){const F=kv.getConfig();$0.debug(`${!Z?"No ":""}Callback function found`);let W;if(z)W=z;else if(M)W=document.querySelectorAll(M);else throw new Error("Nodes and querySelector are both undefined");if($0.debug(`Found ${W.length} diagrams`),(F==null?void 0:F.startOnLoad)!==void 0)$0.debug("Start On Load: "+(F==null?void 0:F.startOnLoad)),kv.updateSiteConfig({startOnLoad:F==null?void 0:F.startOnLoad});const G=new Q5.InitIDGenerator(F.deterministicIds,F.deterministicIDSeed);let L;const P=[];for(let q of Array.from(W)){$0.info("Rendering diagram: "+q.id);/*! Check if previously processed */if(q.getAttribute("data-processed"))continue;q.setAttribute("data-processed","true");const B=`mermaid-${G.next()}`;L=q.innerHTML,L=eU0(Q5.entityDecode(L)).trim().replace(//gi,"
");const S=Q5.detectInit(L);if(S)$0.debug("Detected early reinit: ",S);try{const{svg:V,bindFunctions:A}=await r97(B,L,q);if(q.innerHTML=V,Z)await Z(B);if(A)A(q)}catch(V){rH6(V,P,JG.parseError)}}if(P.length>0)throw P[0]},g97=function(Z){kv.initialize(Z)},nH6=async function(Z,M,z){if($0.warn("mermaid.init is deprecated. Please use run instead."),Z)g97(Z);const F={postRenderCallback:z,querySelector:".mermaid"};if(typeof M==="string")F.querySelector=M;else if(M)if(M instanceof HTMLElement)F.nodes=[M];else F.nodes=M;await h97(F)},sH6=async(Z,{lazyLoad:M=!0}={})=>{if(r07(...Z),M===!1)await lH6()},p97=function(){if(JG.startOnLoad){const{startOnLoad:Z}=kv.getConfig();if(Z)JG.run().catch((M)=>$0.error("Mermaid failed to initialize",M))}},oH6=function(Z){JG.parseError=Z},HK0,Vf0=!1,l97=async()=>{if(Vf0)return;Vf0=!0;while(HK0.length>0){const Z=HK0.shift();if(Z)try{await Z()}catch(M){$0.error("Error executing queue",M)}}Vf0=!1},cH6=async(Z,M)=>{return new Promise((z,F)=>{const W=()=>new Promise((G,L)=>{kv.parse(Z,M).then((P)=>{G(P),z(P)},(P)=>{var q;$0.error("Error parsing",P),(q=JG.parseError)==null||q.call(JG,P),L(P),F(P)})});HK0.push(W),l97().catch(F)})},r97=(Z,M,z)=>{return new Promise((F,W)=>{const G=()=>new Promise((L,P)=>{kv.render(Z,M,z).then((q)=>{L(q),F(q)},(q)=>{var B;$0.error("Error parsing",q),(B=JG.parseError)==null||B.call(JG,q),P(q),W(q)})});HK0.push(G),l97().catch(W)})},JG;var R1=N0(()=>{QX();u07=z8(kX(),1),y07=z8(NX(),1);jU();Rv=z8(_X(),1);Au();L_0();$_0();gy9();f_0();oT={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},$0={trace:(...Z)=>{},debug:(...Z)=>{},info:(...Z)=>{},warn:(...Z)=>{},error:(...Z)=>{},fatal:(...Z)=>{}},hk=//gi,uZ6=(()=>{let Z=!1;return()=>{if(!Z)yZ6(),Z=!0}})(),Af0=/\$\$(.*)\$\$/g,n7={getRows:DZ6,sanitizeText:N2,sanitizeTextOrArray:mZ6,hasBreaks:fZ6,splitBreaks:hZ6,lineBreakRegex:hk,removeScript:m07,getUrl:pZ6,evaluate:hZ,getMax:lZ6,getMin:rZ6};bT={base:{getThemeVariables:oZ6},dark:{getThemeVariables:tZ6},default:{getThemeVariables:io},forest:{getThemeVariables:aZ6},neutral:{getThemeVariables:eZ6}},cT={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:0.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},theme:"default",maxTextSize:50000,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","maxEdges"],legacyMathML:!1,deterministicIds:!1,fontSize:16},g07={...cT,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:bT.default.getThemeVariables(),sequence:{...cT.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...cT.gantt,tickInterval:void 0,useWidth:void 0},c4:{...cT.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...cT.pie,useWidth:984},xyChart:{...cT.xyChart,useWidth:void 0},requirement:{...cT.requirement,useWidth:void 0},gitGraph:{...cT.gitGraph,useMaxWidth:!1},sankey:{...cT.sankey,useMaxWidth:!1}},UJ6=new Set(p07(g07,"")),q2=g07,l07=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,bc=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,ZJ6=/\s*%%.*\n/gm;kf0=class kf0 extends Error{constructor(Z){super(Z);this.name="UnknownDiagramError"}};Lm={},BM=wf0,MJ6={curveBasis:iQ,curveBasisClosed:K20,curveBasisOpen:z20,curveBumpX:hx0,curveBumpY:gx0,curveBundle:px0,curveCardinalClosed:rx0,curveCardinalOpen:nx0,curveCardinal:lx0,curveCatmullRomClosed:cx0,curveCatmullRomOpen:tx0,curveCatmullRom:ox0,curveLinear:MZ,curveLinearClosed:Y20,curveMonotoneX:dx0,curveMonotoneY:ax0,curveNatural:Q20,curveStep:L20,curveStepAfter:U_0,curveStepBefore:ex0},KJ6=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,_$0=ku((Z,M,z)=>{if(!Z)return Z;if(z=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},z),n7.lineBreakRegex.test(Z))return Z;const F=Z.split(" "),W=[];let G="";return F.forEach((L,P)=>{const q=OP(`${L} `,z),B=OP(G,z);if(q>M){const{hyphenatedStrings:A,remainingWord:w}=qJ6(L,M,"-",z);W.push(G,...A),G=w}else if(B+q>=M)W.push(G),G=L;else G=[G,L].filter(Boolean).join(" ");if(P+1===F.length)W.push(G)}),W.filter((L)=>L!=="").join(z.joinWith)},(Z,M,z)=>`${Z}${M}${z.fontSize}${z.fontWeight}${z.fontFamily}${z.joinWith}`),qJ6=ku((Z,M,z="-",F)=>{F=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},F);const W=[...Z],G=[];let L="";return W.forEach((P,q)=>{const B=`${L}${P}`;if(OP(B,F)>=M){const V=q+1,A=W.length===V,w=`${B}${z}`;G.push(A?B:w),L=""}else L=B}),{hyphenatedStrings:G,remainingWord:L}},(Z,M,z="-",F)=>`${Z}${M}${z}${F.fontSize}${F.fontWeight}${F.fontFamily}`),xf0=ku((Z,M)=>{const{fontSize:z=12,fontFamily:F="Arial",fontWeight:W=400}=M;if(!Z)return{width:0,height:0};const[,G]=nq(z),L=["sans-serif",F],P=Z.split(n7.lineBreakRegex),q=[],B=E7("body");if(!B.remove)return{width:0,height:0,lineHeight:0};const S=B.append("svg");for(let A of L){let w=0;const R={width:0,height:0,lineHeight:0};for(let _ of P){const $=PJ6();$.text=_||Iy0;const D=IJ6(S,$).style("font-size",G).style("font-weight",W).style("font-family",A),h=(D._groups||D)[0][0].getBBox();if(h.width===0&&h.height===0)throw new Error("svg element not in render tree");R.width=Math.round(Math.max(R.width,h.width)),w=Math.round(h.height),R.height+=w,R.lineHeight=Math.round(Math.max(R.lineHeight,w))}q.push(R)}S.remove();const V=isNaN(q[1].height)||isNaN(q[1].width)||isNaN(q[1].lineHeight)||q[0].height>q[1].height&&q[0].width>q[1].width&&q[0].lineHeight>q[1].lineHeight?0:1;return q[V]},(Z,M)=>`${Z}${M.fontSize}${M.fontWeight}${M.fontFamily}`);Q5={assignWithDepth:BM,wrapLabel:_$0,calculateTextHeight:pX0,calculateTextWidth:OP,calculateTextDimensions:xf0,cleanAndMerge:Uv,detectInit:zJ6,detectDirective:n07,isSubstringInArray:FJ6,interpolateToCurve:DH,calcLabelPosition:GJ6,calcCardinalityPosition:QJ6,calcTerminalLabelPosition:NJ6,formatUrl:OJ6,getStylesFromArray:Zz,generateId:uy0,random:Ru0,runFunc:WJ6,entityDecode:BJ6,insertTitle:TJ6,parseFontSize:nq,InitIDGenerator:o07},Pm=Object.freeze(q2),EW=BM({},Pm),Im=[],dc=BM({},Pm),wJ6={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},E07={},vJ6={id:U97,detector:RJ6,loader:kJ6},xJ6=vJ6,DJ6={id:X97,detector:_J6,loader:$J6},uJ6=DJ6,fJ6={id:Z97,detector:yJ6,loader:mJ6},hJ6=fJ6,lJ6={id:J97,detector:gJ6,loader:pJ6},rJ6=lJ6,sJ6={id:M97,detector:iJ6,loader:nJ6},oJ6=sJ6,bJ6={id:K97,detector:cJ6,loader:tJ6},dJ6=bJ6,UM6={id:z97,detector:aJ6,loader:eJ6},JM6={id:H97,detector:XM6,loader:ZM6},zM6={id:F97,detector:MM6,loader:KM6},HM6=zM6,WM6={id:O97,detector:FM6,loader:OM6},YM6=WM6,NM6={id:W97,detector:GM6,loader:QM6},LM6=NM6,qM6={id:Y97,detector:PM6,loader:IM6},BM6=qM6,EM6={id:G97,detector:TM6,loader:SM6},VM6=EM6,wM6={id:Q97,detector:CM6,loader:AM6},jM6=wM6,vM6={id:N97,detector:RM6,loader:kM6},xM6=vM6,DM6={id:L97,detector:_M6,loader:$M6},uM6=DM6,fM6={id:P97,detector:yM6,loader:mM6},hM6=fM6,eM0={},iM6=lM6,by0=Object.freeze(Object.defineProperty({__proto__:null,clear:h1,getAccDescription:I2,getAccTitle:L2,getDiagramTitle:e2,setAccDescription:P2,setAccTitle:e1,setDiagramTitle:uX},Symbol.toStringTag,{value:"Module"})),nM6=$0,sM6=Rf0,N9=UX,Jo9=d07,bX0=Pm,ku0=tF,ZK0={};I97=class I97 extends Error{constructor(Z){super(`Diagram ${Z} not found.`)}};q97={draw:tM6},bM6=q97,dM6={db:{},renderer:q97,parser:{parser:{yy:{}},parse:()=>{return}}},aM6=dM6,XK6={id:B97,detector:eM6,loader:UK6},ZK6=XK6,KK6={id:T97,detector:JK6,loader:MK6},zK6=KK6,OK6={id:S97,detector:HK6,loader:FK6},WK6=OK6,QK6={id:E97,detector:YK6,loader:GK6},NK6=QK6,IK6={id:V97,detector:LK6,loader:PK6},qK6=IK6;C07=[];/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */vK6=C97,xK6=AK6,_K6=wK6,$K6=RK6,DK6=kK6,uK6=jK6,eF={isNothing:vK6,isObject:xK6,toArray:_K6,repeat:$K6,isNegativeZero:DK6,extend:uK6};ac.prototype=Object.create(Error.prototype);ac.prototype.constructor=ac;ac.prototype.toString=function Z(M){return this.name+": "+A97(this,M)};tT=ac,mK6=yK6,fK6=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],hK6=["scalar","sequence","mapping"],rH=pK6;jf0.prototype.extend=function Z(M){var z=[],F=[];if(M instanceof rH)F.push(M);else if(Array.isArray(M))F=F.concat(M);else if(M&&(Array.isArray(M.implicit)||Array.isArray(M.explicit))){if(M.implicit)z=z.concat(M.implicit);if(M.explicit)F=F.concat(M.explicit)}else throw new tT("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");z.forEach(function(G){if(!(G instanceof rH))throw new tT("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(G.loadKind&&G.loadKind!=="scalar")throw new tT("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(G.multi)throw new tT("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),F.forEach(function(G){if(!(G instanceof rH))throw new tT("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var W=Object.create(jf0.prototype);return W.implicit=(this.implicit||[]).concat(z),W.explicit=(this.explicit||[]).concat(F),W.compiledImplicit=A07(W,"implicit"),W.compiledExplicit=A07(W,"explicit"),W.compiledTypeMap=lK6(W.compiledImplicit,W.compiledExplicit),W};rK6=jf0,iK6=new rH("tag:yaml.org,2002:str",{kind:"scalar",construct:function(Z){return Z!==null?Z:""}}),nK6=new rH("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(Z){return Z!==null?Z:[]}}),sK6=new rH("tag:yaml.org,2002:map",{kind:"mapping",construct:function(Z){return Z!==null?Z:{}}}),oK6=new rK6({explicit:[iK6,nK6,sK6]}),dK6=new rH("tag:yaml.org,2002:null",{kind:"scalar",resolve:cK6,construct:tK6,predicate:bK6,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"}),Xz6=new rH("tag:yaml.org,2002:bool",{kind:"scalar",resolve:aK6,construct:eK6,predicate:Uz6,represent:{lowercase:function(Z){return Z?"true":"false"},uppercase:function(Z){return Z?"TRUE":"FALSE"},camelcase:function(Z){return Z?"True":"False"}},defaultStyle:"lowercase"}),Fz6=new rH("tag:yaml.org,2002:int",{kind:"scalar",resolve:Kz6,construct:zz6,predicate:Hz6,represent:{binary:function(Z){return Z>=0?"0b"+Z.toString(2):"-0b"+Z.toString(2).slice(1)},octal:function(Z){return Z>=0?"0o"+Z.toString(8):"-0o"+Z.toString(8).slice(1)},decimal:function(Z){return Z.toString(10)},hexadecimal:function(Z){return Z>=0?"0x"+Z.toString(16).toUpperCase():"-0x"+Z.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Oz6=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),Gz6=/^[-+]?[0-9]+e/,Lz6=new rH("tag:yaml.org,2002:float",{kind:"scalar",resolve:Wz6,construct:Yz6,predicate:Nz6,represent:Qz6,defaultStyle:"lowercase"}),w97=oK6.extend({implicit:[dK6,Xz6,Fz6,Lz6]}),Pz6=w97,j97=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),R97=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),Tz6=new rH("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Iz6,construct:qz6,instanceOf:Date,represent:Bz6}),Ez6=new rH("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Sz6}),jz6=new rH("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Vz6,construct:Cz6,predicate:wz6,represent:Az6}),Rz6=Object.prototype.hasOwnProperty,kz6=Object.prototype.toString,_z6=new rH("tag:yaml.org,2002:omap",{kind:"sequence",resolve:vz6,construct:xz6}),$z6=Object.prototype.toString,yz6=new rH("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Dz6,construct:uz6}),mz6=Object.prototype.hasOwnProperty,gz6=new rH("tag:yaml.org,2002:set",{kind:"mapping",resolve:fz6,construct:hz6}),pz6=Pz6.extend({implicit:[Tz6,Ez6],explicit:[jz6,_z6,yz6,gz6]}),NA=Object.prototype.hasOwnProperty,rz6=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,iz6=/[\x85\u2028\u2029]/,nz6=/[,\[\]\{\}]/,x97=/^(?:!|!!|![a-z\-]+!)$/i,_97=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i,$97=new Array(256),D97=new Array(256);for(wv=0;wv<256;wv++)$97[wv]=R07(wv)?1:0,D97[wv]=R07(wv);k07={YAML:function Z(M,z,F){var W,G,L;if(M.version!==null)V5(M,"duplication of %YAML directive");if(F.length!==1)V5(M,"YAML directive accepts exactly one argument");if(W=/^([0-9]+)\.([0-9]+)$/.exec(F[0]),W===null)V5(M,"ill-formed argument of the YAML directive");if(G=parseInt(W[1],10),L=parseInt(W[2],10),G!==1)V5(M,"unacceptable YAML version of the document");if(M.version=F[0],M.checkLineBreaks=L<2,L!==1&&L!==2)zK0(M,"unsupported YAML version of the document")},TAG:function Z(M,z,F){var W,G;if(F.length!==2)V5(M,"TAG directive accepts exactly two arguments");if(W=F[0],G=F[1],!x97.test(W))V5(M,"ill-formed tag handle (first argument) of the TAG directive");if(NA.call(M.tagMap,W))V5(M,'there is a previously declared suffix for "'+W+'" tag handle');if(!_97.test(G))V5(M,"ill-formed tag prefix (second argument) of the TAG directive");try{G=decodeURIComponent(G)}catch(L){V5(M,"tag prefix is malformed: "+G)}M.tagMap[W]=G}},OH6=HH6,WH6=FH6,YH6={loadAll:OH6,load:WH6},GH6=w97,QH6=YH6.load,xH6=["foreignobject"],_H6=["dominant-baseline"],kv=Object.freeze({render:hH6,parse:$H6,getDiagramFromText:lf0,initialize:gH6,getConfig:UX,setConfig:d07,getSiteConfig:b07,updateSiteConfig:CJ6,reset:()=>{XK0()},globalReset:()=>{XK0(Pm)},defaultConfig:Pm});Rf0(UX().logLevel);XK0(UX());if(typeof document!=="undefined"){/*! * Wait for document loaded before starting the execution - */window.addEventListener("load",p97,!1)}HK0=[],JG={startOnLoad:!0,mermaidAPI:kv,parse:cH6,render:r97,init:nH6,run:h97,registerExternalDiagrams:sH6,initialize:g97,parseError:void 0,contentLoaded:p97,setParseErrorHandler:oH6,detectType:WK0}});QX();R1();var ZN8=z8(kX(),1),JN8=z8(NX(),1);jU();var KN8=z8(_X(),1);window.onload=()=>{document.querySelectorAll(".tab-group").forEach((Z)=>{Z.querySelectorAll(".dj-tab-heading").forEach((M)=>{const z=M.dataset.tabId,F=M.dataset.tabGroup;M.addEventListener("click",(W)=>{Z.querySelectorAll("."+F).forEach((G)=>{G.classList.remove("m-active")}),Z.querySelectorAll("."+z).forEach((G)=>{G.classList.add("m-active")})})})}),document.querySelectorAll("details.DJTableOfContents").forEach((Z)=>{Z.querySelectorAll("a").forEach((M)=>{M.addEventListener("click",(z)=>{return Z.open=!1,!0})})}),[...document.querySelectorAll("pre code.language-mermaid")].map((Z)=>{const M=Z.parentElement;M.innerHTML=Z.innerHTML,M.className="language-mermaid"}),JG.run({querySelector:".language-mermaid"}),window.dispatchEvent(new Event("dj-onload"))}; + */window.addEventListener("load",p97,!1)}HK0=[],JG={startOnLoad:!0,mermaidAPI:kv,parse:cH6,render:r97,init:nH6,run:h97,registerExternalDiagrams:sH6,initialize:g97,parseError:void 0,contentLoaded:p97,setParseErrorHandler:oH6,detectType:WK0}});QX();R1();var ZN8=z8(kX(),1),JN8=z8(NX(),1);jU();var KN8=z8(_X(),1);window.onload=()=>{document.querySelectorAll(".tab-group").forEach((Z)=>{Z.querySelectorAll(".dj-tab-heading").forEach((M)=>{const z=M.dataset.tabId,F=M.dataset.tabGroup;M.addEventListener("click",(W)=>{Z.querySelectorAll("."+F).forEach((G)=>{G.classList.remove("m-active")}),Z.querySelectorAll("."+z).forEach((G)=>{G.classList.add("m-active")})})})}),document.querySelectorAll("details.DJTableOfContents").forEach((Z)=>{Z.querySelectorAll("a").forEach((M)=>{M.addEventListener("click",(z)=>{return Z.open=!1,!0})})}),[...document.querySelectorAll("pre code.language-mermaid")].map((Z)=>{const M=Z.parentElement;M.innerHTML=Z.innerHTML,M.className="language-mermaid"}),JG.run({querySelector:".language-mermaid"}),document.querySelectorAll(".DJCollapse_Collapser").forEach((Z)=>{const M=Z.dataset.collapseTarget;Z.addEventListener("click",(z)=>{const F=document.querySelector(`#${M}`);if(!F){console.error("Can't find",`#${M}`);return}return F.classList.toggle("m-collapsed"),Z.classList.remove("m-uncollapsed"),Z.classList.remove("m-collapsed"),Z.classList.add(F.classList.contains("m-collapsed")?"m-collapsed":"m-uncollapsed"),!0})}),window.dispatchEvent(new Event("dj-onload"))}; + +//# debugId=E35E75391352DA2864756E2164756E21 +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL3RzLWRlZGVudC9lc20vaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2RheWpzL2RheWpzLm1pbi5qcyIsICJub2RlX21vZHVsZXMvQGJyYWludHJlZS9zYW5pdGl6ZS11cmwvZGlzdC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL2FzY2VuZGluZy5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL2Rlc2NlbmRpbmcuanMiLCAibm9kZV9tb2R1bGVzL2QzLWFycmF5L3NyYy9iaXNlY3Rvci5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL251bWJlci5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL2Jpc2VjdC5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvbm9kZV9tb2R1bGVzL2ludGVybm1hcC9zcmMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLWFycmF5L3NyYy90aWNrcy5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL21heC5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL21pbi5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL3JhbmdlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1hcnJheS9zcmMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLWF4aXMvc3JjL2lkZW50aXR5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1heGlzL3NyYy9heGlzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1heGlzL3NyYy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtZGlzcGF0Y2gvc3JjL2Rpc3BhdGNoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1kaXNwYXRjaC9zcmMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvbmFtZXNwYWNlcy5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9uYW1lc3BhY2UuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvY3JlYXRvci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rvci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc2VsZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL2FycmF5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdG9yQWxsLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9zZWxlY3RBbGwuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvbWF0Y2hlci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc2VsZWN0Q2hpbGQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3NlbGVjdENoaWxkcmVuLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9maWx0ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3NwYXJzZS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vZW50ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvY29uc3RhbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2RhdGEuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2V4aXQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2pvaW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL21lcmdlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9vcmRlci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc29ydC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vY2FsbC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vbm9kZXMuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL25vZGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3NpemUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2VtcHR5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9lYWNoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9hdHRyLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3dpbmRvdy5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc3R5bGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3Byb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9jbGFzc2VkLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi90ZXh0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9odG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9yYWlzZS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vbG93ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2FwcGVuZC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vaW5zZXJ0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9yZW1vdmUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2Nsb25lLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9kYXR1bS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2Rpc3BhdGNoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9pdGVyYXRvci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdEFsbC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtY29sb3Ivc3JjL2RlZmluZS5qcyIsICJub2RlX21vZHVsZXMvZDMtY29sb3Ivc3JjL2NvbG9yLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1jb2xvci9zcmMvbWF0aC5qcyIsICJub2RlX21vZHVsZXMvZDMtY29sb3Ivc3JjL2xhYi5qcyIsICJub2RlX21vZHVsZXMvZDMtY29sb3Ivc3JjL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvYmFzaXMuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy9iYXNpc0Nsb3NlZC5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL2NvbnN0YW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy9yZ2IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy9udW1iZXJBcnJheS5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL2FycmF5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvZGF0ZS5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL251bWJlci5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL29iamVjdC5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL3N0cmluZy5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL3ZhbHVlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvcm91bmQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy90cmFuc2Zvcm0vZGVjb21wb3NlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvdHJhbnNmb3JtL3BhcnNlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvdHJhbnNmb3JtL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvaGNsLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLXRpbWVyL3NyYy90aW1lci5qcyIsICJub2RlX21vZHVsZXMvZDMtdGltZXIvc3JjL3RpbWVvdXQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRpbWVyL3NyYy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9zY2hlZHVsZS5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvaW50ZXJydXB0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy9zZWxlY3Rpb24vaW50ZXJydXB0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3R3ZWVuLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL2ludGVycG9sYXRlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL2F0dHIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vYXR0clR3ZWVuLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL2RlbGF5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL2R1cmF0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL2Vhc2UuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vZWFzZVZhcnlpbmcuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vZmlsdGVyLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL21lcmdlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL29uLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3JlbW92ZS5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9zZWxlY3QuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vc2VsZWN0QWxsLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3NlbGVjdGlvbi5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9zdHlsZS5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9zdHlsZVR3ZWVuLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3RleHQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vdGV4dFR3ZWVuLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3RyYW5zaXRpb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vZW5kLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1lYXNlL3NyYy9jdWJpYy5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvc2VsZWN0aW9uL3RyYW5zaXRpb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3NlbGVjdGlvbi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLWJydXNoL3NyYy9icnVzaC5qcyIsICJub2RlX21vZHVsZXMvZDMtYnJ1c2gvc3JjL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1wYXRoL3NyYy9wYXRoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1wYXRoL3NyYy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtZmV0Y2gvc3JjL3RleHQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZldGNoL3NyYy94bWwuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZldGNoL3NyYy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXREZWNpbWFsLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL2V4cG9uZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL2Zvcm1hdEdyb3VwLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL2Zvcm1hdE51bWVyYWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL2Zvcm1hdFNwZWNpZmllci5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXRUcmltLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL2Zvcm1hdFByZWZpeEF1dG8uanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvZm9ybWF0Um91bmRlZC5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXRUeXBlcy5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9pZGVudGl0eS5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9sb2NhbGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvZGVmYXVsdExvY2FsZS5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9wcmVjaXNpb25GaXhlZC5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9wcmVjaXNpb25QcmVmaXguanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvcHJlY2lzaW9uUm91bmQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlL3NyYy9pbml0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS9zcmMvb3JkaW5hbC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUvc3JjL2JhbmQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlL3NyYy9jb25zdGFudC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUvc3JjL251bWJlci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUvc3JjL2NvbnRpbnVvdXMuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlL3NyYy90aWNrRm9ybWF0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS9zcmMvbGluZWFyLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS9zcmMvbmljZS5qcyIsICJub2RlX21vZHVsZXMvZDMtdGltZS9zcmMvaW50ZXJ2YWwuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRpbWUvc3JjL21pbGxpc2Vjb25kLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10aW1lL3NyYy9kdXJhdGlvbi5qcyIsICJub2RlX21vZHVsZXMvZDMtdGltZS9zcmMvc2Vjb25kLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10aW1lL3NyYy9taW51dGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRpbWUvc3JjL2hvdXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRpbWUvc3JjL2RheS5qcyIsICJub2RlX21vZHVsZXMvZDMtdGltZS9zcmMvd2Vlay5qcyIsICJub2RlX21vZHVsZXMvZDMtdGltZS9zcmMvbW9udGguanMiLCAibm9kZV9tb2R1bGVzL2QzLXRpbWUvc3JjL3llYXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRpbWUvc3JjL3RpY2tzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10aW1lL3NyYy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtdGltZS1mb3JtYXQvc3JjL2xvY2FsZS5qcyIsICJub2RlX21vZHVsZXMvZDMtdGltZS1mb3JtYXQvc3JjL2RlZmF1bHRMb2NhbGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRpbWUtZm9ybWF0L3NyYy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUvc3JjL3RpbWUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlL3NyYy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUtY2hyb21hdGljL3NyYy9jb2xvcnMuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlLWNocm9tYXRpYy9zcmMvY2F0ZWdvcmljYWwvVGFibGVhdTEwLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS1jaHJvbWF0aWMvc3JjL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy9ub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2NvbnN0YW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy9ub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL21hdGguanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvcGF0aC5qcyIsICJub2RlX21vZHVsZXMvZDMvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9hcmMuanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvYXJyYXkuanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY3VydmUvbGluZWFyLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy9ub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL3BvaW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy9ub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2xpbmUuanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvZGVzY2VuZGluZy5qcyIsICJub2RlX21vZHVsZXMvZDMvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9pZGVudGl0eS5qcyIsICJub2RlX21vZHVsZXMvZDMvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9waWUuanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY3VydmUvYnVtcC5qcyIsICJub2RlX21vZHVsZXMvZDMvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9ub29wLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy9ub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2N1cnZlL2Jhc2lzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy9ub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2N1cnZlL2Jhc2lzQ2xvc2VkLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy9ub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2N1cnZlL2Jhc2lzT3Blbi5qcyIsICJub2RlX21vZHVsZXMvZDMvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9jdXJ2ZS9idW5kbGUuanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY3VydmUvY2FyZGluYWwuanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY3VydmUvY2FyZGluYWxDbG9zZWQuanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY3VydmUvY2FyZGluYWxPcGVuLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy9ub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2N1cnZlL2NhdG11bGxSb20uanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY3VydmUvY2F0bXVsbFJvbUNsb3NlZC5qcyIsICJub2RlX21vZHVsZXMvZDMvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9jdXJ2ZS9jYXRtdWxsUm9tT3Blbi5qcyIsICJub2RlX21vZHVsZXMvZDMvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9jdXJ2ZS9saW5lYXJDbG9zZWQuanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY3VydmUvbW9ub3RvbmUuanMiLCAibm9kZV9tb2R1bGVzL2QzL25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY3VydmUvbmF0dXJhbC5qcyIsICJub2RlX21vZHVsZXMvZDMvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9jdXJ2ZS9zdGVwLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy9ub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy16b29tL3NyYy90cmFuc2Zvcm0uanMiLCAibm9kZV9tb2R1bGVzL2QzLXpvb20vc3JjL3pvb20uanMiLCAibm9kZV9tb2R1bGVzL2QzLXpvb20vc3JjL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy9zcmMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2RvbXB1cmlmeS9kaXN0L3B1cmlmeS5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvdXRpbHMvY2hhbm5lbC5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvdXRpbHMvbGFuZy5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvdXRpbHMvdW5pdC5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvdXRpbHMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2tocm9tYS9kaXN0L2NvbnN0YW50cy5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvY2hhbm5lbHMvdHlwZS5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvY2hhbm5lbHMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2tocm9tYS9kaXN0L2NoYW5uZWxzL3JldXNhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9raHJvbWEvZGlzdC9jb2xvci9oZXguanMiLCAibm9kZV9tb2R1bGVzL2tocm9tYS9kaXN0L2NvbG9yL2hzbC5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvY29sb3Iva2V5d29yZC5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvY29sb3IvcmdiLmpzIiwgIm5vZGVfbW9kdWxlcy9raHJvbWEvZGlzdC9jb2xvci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvbWV0aG9kcy9jaGFuZ2UuanMiLCAibm9kZV9tb2R1bGVzL2tocm9tYS9kaXN0L21ldGhvZHMvcmdiYS5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvbWV0aG9kcy9jaGFubmVsLmpzIiwgIm5vZGVfbW9kdWxlcy9raHJvbWEvZGlzdC9tZXRob2RzL2x1bWluYW5jZS5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvbWV0aG9kcy9pc19saWdodC5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvbWV0aG9kcy9pc19kYXJrLmpzIiwgIm5vZGVfbW9kdWxlcy9raHJvbWEvZGlzdC9tZXRob2RzL2FkanVzdF9jaGFubmVsLmpzIiwgIm5vZGVfbW9kdWxlcy9raHJvbWEvZGlzdC9tZXRob2RzL2xpZ2h0ZW4uanMiLCAibm9kZV9tb2R1bGVzL2tocm9tYS9kaXN0L21ldGhvZHMvZGFya2VuLmpzIiwgIm5vZGVfbW9kdWxlcy9raHJvbWEvZGlzdC9tZXRob2RzL2FkanVzdC5qcyIsICJub2RlX21vZHVsZXMva2hyb21hL2Rpc3QvbWV0aG9kcy9taXguanMiLCAibm9kZV9tb2R1bGVzL2tocm9tYS9kaXN0L21ldGhvZHMvaW52ZXJ0LmpzIiwgIm5vZGVfbW9kdWxlcy9raHJvbWEvZGlzdC9tZXRob2RzL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9raHJvbWEvZGlzdC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19mcmVlR2xvYmFsLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3Jvb3QuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU3ltYm9sLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFJhd1RhZy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vYmplY3RUb1N0cmluZy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0VGFnLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3QuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0Z1bmN0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcmVKc0RhdGEuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNNYXNrZWQuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fdG9Tb3VyY2UuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzTmF0aXZlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFZhbHVlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldE5hdGl2ZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVDcmVhdGUuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faGFzaENsZWFyLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc2hEZWxldGUuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faGFzaEdldC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoSGFzLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc2hTZXQuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fSGFzaC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVDbGVhci5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2VxLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Fzc29jSW5kZXhPZi5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVEZWxldGUuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlR2V0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2xpc3RDYWNoZUhhcy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVTZXQuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fTGlzdENhY2hlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX01hcC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZUNsZWFyLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzS2V5YWJsZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRNYXBEYXRhLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21hcENhY2hlRGVsZXRlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21hcENhY2hlR2V0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21hcENhY2hlSGFzLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21hcENhY2hlU2V0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX01hcENhY2hlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbWVtb2l6ZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0NsZWFyLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrRGVsZXRlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrR2V0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrSGFzLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrU2V0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1N0YWNrLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2RlZmluZVByb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VBc3NpZ25WYWx1ZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NpZ25NZXJnZVZhbHVlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NyZWF0ZUJhc2VGb3IuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUZvci5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZUJ1ZmZlci5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19VaW50OEFycmF5LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lQXJyYXlCdWZmZXIuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY2xvbmVUeXBlZEFycmF5LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcHlBcnJheS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQ3JlYXRlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX292ZXJBcmcuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0UHJvdG90eXBlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzUHJvdG90eXBlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2luaXRDbG9uZU9iamVjdC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzT2JqZWN0TGlrZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNBcmd1bWVudHMuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FyZ3VtZW50cy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXkuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0xlbmd0aC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXlMaWtlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcnJheUxpa2VPYmplY3QuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zdHViRmFsc2UuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0J1ZmZlci5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzUGxhaW5PYmplY3QuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzVHlwZWRBcnJheS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVW5hcnkuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbm9kZVV0aWwuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1R5cGVkQXJyYXkuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc2FmZUdldC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NpZ25WYWx1ZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VUaW1lcy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TGlrZUtleXMuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbmF0aXZlS2V5c0luLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VLZXlzSW4uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9rZXlzSW4uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1BsYWluT2JqZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VNZXJnZURlZXAuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZU1lcmdlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaWRlbnRpdHkuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXBwbHkuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fb3ZlclJlc3QuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jb25zdGFudC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU2V0VG9TdHJpbmcuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc2hvcnRPdXQuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc2V0VG9TdHJpbmcuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVJlc3QuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNJdGVyYXRlZUNhbGwuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlQXNzaWduZXIuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9tZXJnZS5qcyIsICJub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9FbnVtLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1V0aWxpdHkuanMiLCAibm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvVG9rZW5pemVyLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1BhcnNlci5qcyIsICJub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9TZXJpYWxpemVyLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHlsaXMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbmF0aXZlS2V5cy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5cy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19EYXRhVmlldy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19Qcm9taXNlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1NldC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19XZWFrTWFwLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFRhZy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzRW1wdHkuanMiLCAibm9kZV9tb2R1bGVzL2thdGV4L2Rpc3Qva2F0ZXgubWpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3Qvc3ZnRHJhd0NvbW1vbi01ZTFjZmQxZC5qcyIsICJub2RlX21vZHVsZXMvbWVybWFpZC9kaXN0L2M0RGlhZ3JhbS1hZTc2NjY5My5qcyIsICJub2RlX21vZHVsZXMvbWVybWFpZC9kaXN0L2Zsb3dEYi1jMTgzMzA2My5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU3ltYm9sLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TWFwLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VUb1N0cmluZy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL190cmltbWVkRW5kSW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVRyaW0uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b051bWJlci5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RvRmluaXRlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdG9JbnRlZ2VyLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbm9vcC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUVhY2guanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUZpbmRJbmRleC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNOYU4uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RyaWN0SW5kZXhPZi5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSW5kZXhPZi5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUluY2x1ZGVzLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5cy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0tleS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tZW1vaXplQ2FwcGVkLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0cmluZ1RvUGF0aC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RvU3RyaW5nLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nhc3RQYXRoLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3RvS2V5LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VHZXQuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9nZXQuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlQdXNoLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzRmxhdHRlbmFibGUuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUZsYXR0ZW4uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mbGF0dGVuLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2ZsYXRSZXN0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc1VuaWNvZGUuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlSZWR1Y2UuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUFzc2lnbi5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduSW4uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlGaWx0ZXIuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zdHViQXJyYXkuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0U3ltYm9scy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5U3ltYm9scy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRTeW1ib2xzSW4uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29weVN5bWJvbHNJbi5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0QWxsS2V5cy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldEFsbEtleXNJbi5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVBcnJheS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZURhdGFWaWV3LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lUmVnRXhwLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lU3ltYm9sLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2luaXRDbG9uZUJ5VGFnLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc01hcC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTWFwLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc1NldC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU2V0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VDbG9uZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY2xvbmVEZWVwLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3NldENhY2hlQWRkLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3NldENhY2hlSGFzLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1NldENhY2hlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5U29tZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jYWNoZUhhcy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19lcXVhbEFycmF5cy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBUb0FycmF5LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3NldFRvQXJyYXkuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZXF1YWxCeVRhZy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19lcXVhbE9iamVjdHMuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzRXF1YWxEZWVwLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc0VxdWFsLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc01hdGNoLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzU3RyaWN0Q29tcGFyYWJsZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRNYXRjaERhdGEuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWF0Y2hlc1N0cmljdENvbXBhcmFibGUuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZU1hdGNoZXMuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUhhc0luLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc1BhdGguanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9oYXNJbi5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlTWF0Y2hlc1Byb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VQcm9wZXJ0eS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUHJvcGVydHlEZWVwLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcHJvcGVydHkuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUl0ZXJhdGVlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VGb3JPd24uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlQmFzZUVhY2guanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUVhY2guanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9ub3cuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9kZWZhdWx0cy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUluY2x1ZGVzV2l0aC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2xhc3QuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY2FzdEZ1bmN0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZm9yRWFjaC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2VhY2guanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUZpbHRlci5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ZpbHRlci5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVGaW5kLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZmluZEluZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZmluZC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlTWFwLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbWFwLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZm9ySW4uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mb3JPd24uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUd0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VIYXMuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9oYXMuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1N0cmluZy5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVmFsdWVzLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdmFsdWVzLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNVbmRlZmluZWQuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUx0LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbWFwVmFsdWVzLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VFeHRyZW11bS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL21heC5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL21pbi5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL21pbkJ5LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VTZXQuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVBpY2tCeS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU29ydEJ5LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvbXBhcmVBc2NlbmRpbmcuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29tcGFyZU11bHRpcGxlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VPcmRlckJ5LmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FzY2lpU2l6ZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL191bmljb2RlU2l6ZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdHJpbmdTaXplLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VQaWNrLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcGljay5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUmFuZ2UuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlUmFuZ2UuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9yYW5nZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUmVkdWNlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcmVkdWNlLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc2l6ZS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NvcnRCeS5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVTZXQuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVVuaXEuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy91bmlvbi5qcyIsICJub2RlX21vZHVsZXMvbG9kYXNoLWVzL3VuaXF1ZUlkLmpzIiwgIm5vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VaaXBPYmplY3QuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy96aXBPYmplY3QuanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9sb2Rhc2guanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9ncmFwaGxpYi9ncmFwaC5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvZGF0YS9saXN0LmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvZ3JlZWR5LWZhcy5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlL2FjeWNsaWMuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS91dGlsLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvYWRkLWJvcmRlci1zZWdtZW50cy5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlL2Nvb3JkaW5hdGUtc3lzdGVtLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvbm9ybWFsaXplLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvcmFuay91dGlsLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvcmFuay9mZWFzaWJsZS10cmVlLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZ3JhcGhsaWIvYWxnL2RpamtzdHJhLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZ3JhcGhsaWIvYWxnL2RpamtzdHJhLWFsbC5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2FsZy9maW5kLWN5Y2xlcy5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2FsZy9mbG95ZC13YXJzaGFsbC5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2FsZy90b3Bzb3J0LmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZ3JhcGhsaWIvYWxnL2lzLWFjeWNsaWMuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9ncmFwaGxpYi9hbGcvZGZzLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZ3JhcGhsaWIvYWxnL3Bvc3RvcmRlci5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2FsZy9wcmVvcmRlci5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2FsZy9wcmltLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZ3JhcGhsaWIvYWxnL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvcmFuay9uZXR3b3JrLXNpbXBsZXguanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS9yYW5rL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvbmVzdGluZy1ncmFwaC5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlL29yZGVyL2FkZC1zdWJncmFwaC1jb25zdHJhaW50cy5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlL29yZGVyL2J1aWxkLWxheWVyLWdyYXBoLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvb3JkZXIvY3Jvc3MtY291bnQuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS9vcmRlci9pbml0LW9yZGVyLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvb3JkZXIvYmFyeWNlbnRlci5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlL29yZGVyL3Jlc29sdmUtY29uZmxpY3RzLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvb3JkZXIvc29ydC5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlL29yZGVyL3NvcnQtc3ViZ3JhcGguanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS9vcmRlci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlL3BhcmVudC1kdW1teS1jaGFpbnMuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS9wb3NpdGlvbi9iay5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlL3Bvc2l0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvbGF5b3V0LmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS1qcy91dGlsLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvYXJyb3dzLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvbGFiZWwvYWRkLWh0bWwtbGFiZWwuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS1qcy9sYWJlbC9hZGQtc3ZnLWxhYmVsLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvbGFiZWwvYWRkLXRleHQtbGFiZWwuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS1qcy9sYWJlbC9hZGQtbGFiZWwuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS1qcy9jcmVhdGUtY2x1c3RlcnMuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS1qcy9jcmVhdGUtZWRnZS1sYWJlbHMuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS1qcy9pbnRlcnNlY3QvaW50ZXJzZWN0LW5vZGUuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS1qcy9jcmVhdGUtZWRnZS1wYXRocy5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlLWpzL2NyZWF0ZS1ub2Rlcy5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlLWpzL3Bvc2l0aW9uLWNsdXN0ZXJzLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvcG9zaXRpb24tZWRnZS1sYWJlbHMuanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9kYWdyZS1qcy9wb3NpdGlvbi1ub2Rlcy5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlLWpzL2ludGVyc2VjdC9pbnRlcnNlY3QtZWxsaXBzZS5qcyIsICJub2RlX21vZHVsZXMvZGFncmUtZDMtZXMvc3JjL2RhZ3JlLWpzL2ludGVyc2VjdC9pbnRlcnNlY3QtY2lyY2xlLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvaW50ZXJzZWN0L2ludGVyc2VjdC1saW5lLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvaW50ZXJzZWN0L2ludGVyc2VjdC1wb2x5Z29uLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvaW50ZXJzZWN0L2ludGVyc2VjdC1yZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvc2hhcGVzLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvcmVuZGVyLmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvaW50ZXJzZWN0L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kYWdyZS1kMy1lcy9zcmMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2RhZ3JlLWQzLWVzL3NyYy9ncmFwaGxpYi9qc29uLmpzIiwgIm5vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLXN0cmluZy9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tc3RyaW5nL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1jaHVua2VkL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1jb21iaW5lLWV4dGVuc2lvbnMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWNoYXJhY3Rlci9saWIvdW5pY29kZS1wdW5jdHVhdGlvbi1yZWdleC5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstZmFjdG9yeS1zcGFjZS9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrL2xpYi9pbml0aWFsaXplL2NvbnRlbnQuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay9saWIvaW5pdGlhbGl6ZS9kb2N1bWVudC5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtY2xhc3NpZnktY2hhcmFjdGVyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1yZXNvbHZlLWFsbC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvYXR0ZW50aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9hdXRvbGluay5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvYmxhbmstbGluZS5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvYmxvY2stcXVvdGUuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2NoYXJhY3Rlci1lc2NhcGUuanMiLCAibm9kZV9tb2R1bGVzL2RlY29kZS1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlL2luZGV4LmRvbS5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvY2hhcmFjdGVyLXJlZmVyZW5jZS5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvY29kZS1mZW5jZWQuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2NvZGUtaW5kZW50ZWQuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2NvZGUtdGV4dC5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtc3VidG9rZW5pemUvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2NvbnRlbnQuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LWRlc3RpbmF0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstZmFjdG9yeS1sYWJlbC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLWZhY3RvcnktdGl0bGUvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LXdoaXRlc3BhY2UvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLW5vcm1hbGl6ZS1pZGVudGlmaWVyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9kZWZpbml0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9oYXJkLWJyZWFrLWVzY2FwZS5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvaGVhZGluZy1hdHguanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWh0bWwtdGFnLW5hbWUvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2h0bWwtZmxvdy5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvaHRtbC10ZXh0LmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9sYWJlbC1lbmQuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2xhYmVsLXN0YXJ0LWltYWdlLmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9sYWJlbC1zdGFydC1saW5rLmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9saW5lLWVuZGluZy5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvdGhlbWF0aWMtYnJlYWsuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2xpc3QuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL3NldGV4dC11bmRlcmxpbmUuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay9saWIvaW5pdGlhbGl6ZS9mbG93LmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmsvbGliL2luaXRpYWxpemUvdGV4dC5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrL2xpYi9jcmVhdGUtdG9rZW5pemVyLmpzIiwgIm5vZGVfbW9kdWxlcy9taWNyb21hcmsvbGliL2NvbnN0cnVjdHMuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay9saWIvcGFyc2UuanMiLCAibm9kZV9tb2R1bGVzL21pY3JvbWFyay9saWIvcHJlcHJvY2Vzcy5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrL2xpYi9wb3N0cHJvY2Vzcy5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtZGVjb2RlLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZS9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtZGVjb2RlLXN0cmluZy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvdW5pc3QtdXRpbC1zdHJpbmdpZnktcG9zaXRpb24vbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWZyb20tbWFya2Rvd24vbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWZyb20tbWFya2Rvd24vaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9jcmVhdGVUZXh0LWNhMGM1MjE2LmpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3QvZWRnZXMtMDY2YTU1NjEuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9pbmRleC0wMWYzODFjYi5qcyIsICJub2RlX21vZHVsZXMvbWVybWFpZC9kaXN0L3N0eWxlcy00ODNmYmZlYS5qcyIsICJub2RlX21vZHVsZXMvbWVybWFpZC9kaXN0L2Zsb3dEaWFncmFtLWIyMjJlMTVhLmpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3QvZmxvd0RpYWdyYW0tdjItMTMzMjlkYzcuanMiLCAibm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tYnJvd3Nlci9yZWdleC5qcyIsICJub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1icm93c2VyL3ZhbGlkYXRlLmpzIiwgIm5vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLWJyb3dzZXIvc3RyaW5naWZ5LmpzIiwgIm5vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLWJyb3dzZXIvcGFyc2UuanMiLCAibm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tYnJvd3Nlci92MzUuanMiLCAibm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tYnJvd3Nlci9zaGExLmpzIiwgIm5vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLWJyb3dzZXIvdjUuanMiLCAibm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tYnJvd3Nlci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvbWVybWFpZC9kaXN0L2VyRGlhZ3JhbS0wOWQxYzE1Zi5qcyIsICJub2RlX21vZHVsZXMvbWVybWFpZC9kaXN0L2dpdEdyYXBoRGlhZ3JhbS05NDJlNjJmZS5qcyIsICJub2RlX21vZHVsZXMvZGF5anMvcGx1Z2luL2lzb1dlZWsuanMiLCAibm9kZV9tb2R1bGVzL2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdC5qcyIsICJub2RlX21vZHVsZXMvZGF5anMvcGx1Z2luL2FkdmFuY2VkRm9ybWF0LmpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3QvZ2FudHREaWFncmFtLWI2MmM3OTNlLmpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3QvaW5mb0RpYWdyYW0tOTRjZDIzMmYuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9waWVEaWFncmFtLWJiMWQxOWU1LmpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3QvcXVhZHJhbnREaWFncmFtLWM3NTlhNDcyLmpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3QveHljaGFydERpYWdyYW0tZjExZjUwYTYuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9yZXF1aXJlbWVudERpYWdyYW0tODcyNTNkNjQuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9zZXF1ZW5jZURpYWdyYW0tNjg5NGYyODMuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9zdHlsZXMtYjgzYjMxYzkuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9jbGFzc0RpYWdyYW0tZmI1NGQyYTAuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9jbGFzc0RpYWdyYW0tdjItYTJiNzM4YWQuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9zdHlsZXMtMDc4NGRiZWIuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9zdGF0ZURpYWdyYW0tNWRlZTk0MGQuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9zdGF0ZURpYWdyYW0tdjItMTk5MmNhZGEuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9qb3VybmV5RGlhZ3JhbS02NjI1YjQ1Ni5qcyIsICJub2RlX21vZHVsZXMvZWxranMvbGliL2Vsay5idW5kbGVkLmpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3QvZmxvd2NoYXJ0LWVsay1kZWZpbml0aW9uLWFlMGVmZWU2LmpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3QvdGltZWxpbmUtZGVmaW5pdGlvbi1iZjcwMjM0NC5qcyIsICJub2RlX21vZHVsZXMvY3l0b3NjYXBlL2Rpc3QvY3l0b3NjYXBlLmVzbS5tanMiLCAibm9kZV9tb2R1bGVzL2xheW91dC1iYXNlL2xheW91dC1iYXNlLmpzIiwgIm5vZGVfbW9kdWxlcy9jb3NlLWJhc2UvY29zZS1iYXNlLmpzIiwgIm5vZGVfbW9kdWxlcy9jeXRvc2NhcGUtY29zZS1iaWxrZW50L2N5dG9zY2FwZS1jb3NlLWJpbGtlbnQuanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9taW5kbWFwLWRlZmluaXRpb24tMzA3YzcxMGEuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNhbmtleS9ub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL21heC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2Fua2V5L25vZGVfbW9kdWxlcy9kMy1hcnJheS9zcmMvbWluLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zYW5rZXkvbm9kZV9tb2R1bGVzL2QzLWFycmF5L3NyYy9zdW0uanMiLCAibm9kZV9tb2R1bGVzL2QzLXNhbmtleS9zcmMvYWxpZ24uanMiLCAibm9kZV9tb2R1bGVzL2QzLXNhbmtleS9zcmMvY29uc3RhbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNhbmtleS9zcmMvc2Fua2V5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zYW5rZXkvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL25vZGVfbW9kdWxlcy9kMy1wYXRoL3NyYy9wYXRoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zYW5rZXkvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL25vZGVfbW9kdWxlcy9kMy1wYXRoL3NyYy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2Fua2V5L25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY29uc3RhbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNhbmtleS9ub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL3BvaW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zYW5rZXkvbm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9hcnJheS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2Fua2V5L25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvbGluay9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2Fua2V5L25vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLXNhbmtleS9zcmMvc2Fua2V5TGlua0hvcml6b250YWwuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNhbmtleS9zcmMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL21lcm1haWQvZGlzdC9zYW5rZXlEaWFncmFtLTcwN2ZhYzBmLmpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3QvYmxvY2tEaWFncmFtLTlmNGE2ODY1LmpzIiwgIm5vZGVfbW9kdWxlcy9tZXJtYWlkL2Rpc3QvbWVybWFpZC02ZGM3Mjk5MS5qcyIsICJub2RlX21vZHVsZXMvbWVybWFpZC9kaXN0L21lcm1haWQuY29yZS5tanMiLCAic3JjL2NsaWVudGpzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImV4cG9ydCBmdW5jdGlvbiBkZWRlbnQodGVtcGwpIHtcbiAgICB2YXIgdmFsdWVzID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAxOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgdmFsdWVzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICB2YXIgc3RyaW5ncyA9IEFycmF5LmZyb20odHlwZW9mIHRlbXBsID09PSAnc3RyaW5nJyA/IFt0ZW1wbF0gOiB0ZW1wbCk7XG4gICAgc3RyaW5nc1tzdHJpbmdzLmxlbmd0aCAtIDFdID0gc3RyaW5nc1tzdHJpbmdzLmxlbmd0aCAtIDFdLnJlcGxhY2UoL1xccj9cXG4oW1xcdCBdKikkLywgJycpO1xuICAgIHZhciBpbmRlbnRMZW5ndGhzID0gc3RyaW5ncy5yZWR1Y2UoZnVuY3Rpb24gKGFyciwgc3RyKSB7XG4gICAgICAgIHZhciBtYXRjaGVzID0gc3RyLm1hdGNoKC9cXG4oW1xcdCBdK3woPyFcXHMpLikvZyk7XG4gICAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyLmNvbmNhdChtYXRjaGVzLm1hcChmdW5jdGlvbiAobWF0Y2gpIHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IG1hdGNoLm1hdGNoKC9bXFx0IF0vZykpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDA7IH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXJyO1xuICAgIH0sIFtdKTtcbiAgICBpZiAoaW5kZW50TGVuZ3Rocy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIHBhdHRlcm5fMSA9IG5ldyBSZWdFeHAoXCJcXG5bXFx0IF17XCIgKyBNYXRoLm1pbi5hcHBseShNYXRoLCBpbmRlbnRMZW5ndGhzKSArIFwifVwiLCAnZycpO1xuICAgICAgICBzdHJpbmdzID0gc3RyaW5ncy5tYXAoZnVuY3Rpb24gKHN0cikgeyByZXR1cm4gc3RyLnJlcGxhY2UocGF0dGVybl8xLCAnXFxuJyk7IH0pO1xuICAgIH1cbiAgICBzdHJpbmdzWzBdID0gc3RyaW5nc1swXS5yZXBsYWNlKC9eXFxyP1xcbi8sICcnKTtcbiAgICB2YXIgc3RyaW5nID0gc3RyaW5nc1swXTtcbiAgICB2YWx1ZXMuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGkpIHtcbiAgICAgICAgdmFyIGVuZGVudGF0aW9ucyA9IHN0cmluZy5tYXRjaCgvKD86XnxcXG4pKCAqKSQvKTtcbiAgICAgICAgdmFyIGVuZGVudGF0aW9uID0gZW5kZW50YXRpb25zID8gZW5kZW50YXRpb25zWzFdIDogJyc7XG4gICAgICAgIHZhciBpbmRlbnRlZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmluY2x1ZGVzKCdcXG4nKSkge1xuICAgICAgICAgICAgaW5kZW50ZWRWYWx1ZSA9IFN0cmluZyh2YWx1ZSlcbiAgICAgICAgICAgICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAoc3RyLCBpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGkgPT09IDAgPyBzdHIgOiBcIlwiICsgZW5kZW50YXRpb24gKyBzdHI7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5qb2luKCdcXG4nKTtcbiAgICAgICAgfVxuICAgICAgICBzdHJpbmcgKz0gaW5kZW50ZWRWYWx1ZSArIHN0cmluZ3NbaSArIDFdO1xuICAgIH0pO1xuICAgIHJldHVybiBzdHJpbmc7XG59XG5leHBvcnQgZGVmYXVsdCBkZWRlbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLAogICAgIiFmdW5jdGlvbih0LGUpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWUoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuZGF5anM9ZSgpfSh0aGlzLChmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3ZhciB0PTFlMyxlPTZlNCxuPTM2ZTUscj1cIm1pbGxpc2Vjb25kXCIsaT1cInNlY29uZFwiLHM9XCJtaW51dGVcIix1PVwiaG91clwiLGE9XCJkYXlcIixvPVwid2Vla1wiLGM9XCJtb250aFwiLGY9XCJxdWFydGVyXCIsaD1cInllYXJcIixkPVwiZGF0ZVwiLGw9XCJJbnZhbGlkIERhdGVcIiwkPS9eKFxcZHs0fSlbLS9dPyhcXGR7MSwyfSk/Wy0vXT8oXFxkezAsMn0pW1R0XFxzXSooXFxkezEsMn0pPzo/KFxcZHsxLDJ9KT86PyhcXGR7MSwyfSk/Wy46XT8oXFxkKyk/JC8seT0vXFxbKFteXFxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2csTT17bmFtZTpcImVuXCIsd2Vla2RheXM6XCJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheVwiLnNwbGl0KFwiX1wiKSxtb250aHM6XCJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyXCIuc3BsaXQoXCJfXCIpLG9yZGluYWw6ZnVuY3Rpb24odCl7dmFyIGU9W1widGhcIixcInN0XCIsXCJuZFwiLFwicmRcIl0sbj10JTEwMDtyZXR1cm5cIltcIit0KyhlWyhuLTIwKSUxMF18fGVbbl18fGVbMF0pK1wiXVwifX0sbT1mdW5jdGlvbih0LGUsbil7dmFyIHI9U3RyaW5nKHQpO3JldHVybiFyfHxyLmxlbmd0aD49ZT90OlwiXCIrQXJyYXkoZSsxLXIubGVuZ3RoKS5qb2luKG4pK3R9LHY9e3M6bSx6OmZ1bmN0aW9uKHQpe3ZhciBlPS10LnV0Y09mZnNldCgpLG49TWF0aC5hYnMoZSkscj1NYXRoLmZsb29yKG4vNjApLGk9biU2MDtyZXR1cm4oZTw9MD9cIitcIjpcIi1cIikrbShyLDIsXCIwXCIpK1wiOlwiK20oaSwyLFwiMFwiKX0sbTpmdW5jdGlvbiB0KGUsbil7aWYoZS5kYXRlKCk8bi5kYXRlKCkpcmV0dXJuLXQobixlKTt2YXIgcj0xMioobi55ZWFyKCktZS55ZWFyKCkpKyhuLm1vbnRoKCktZS5tb250aCgpKSxpPWUuY2xvbmUoKS5hZGQocixjKSxzPW4taTwwLHU9ZS5jbG9uZSgpLmFkZChyKyhzPy0xOjEpLGMpO3JldHVybisoLShyKyhuLWkpLyhzP2ktdTp1LWkpKXx8MCl9LGE6ZnVuY3Rpb24odCl7cmV0dXJuIHQ8MD9NYXRoLmNlaWwodCl8fDA6TWF0aC5mbG9vcih0KX0scDpmdW5jdGlvbih0KXtyZXR1cm57TTpjLHk6aCx3Om8sZDphLEQ6ZCxoOnUsbTpzLHM6aSxtczpyLFE6Zn1bdF18fFN0cmluZyh0fHxcIlwiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLyxcIlwiKX0sdTpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dH19LGc9XCJlblwiLEQ9e307RFtnXT1NO3ZhciBwPVwiJGlzRGF5anNPYmplY3RcIixTPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgX3x8ISghdHx8IXRbcF0pfSx3PWZ1bmN0aW9uIHQoZSxuLHIpe3ZhciBpO2lmKCFlKXJldHVybiBnO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXt2YXIgcz1lLnRvTG93ZXJDYXNlKCk7RFtzXSYmKGk9cyksbiYmKERbc109bixpPXMpO3ZhciB1PWUuc3BsaXQoXCItXCIpO2lmKCFpJiZ1Lmxlbmd0aD4xKXJldHVybiB0KHVbMF0pfWVsc2V7dmFyIGE9ZS5uYW1lO0RbYV09ZSxpPWF9cmV0dXJuIXImJmkmJihnPWkpLGl8fCFyJiZnfSxPPWZ1bmN0aW9uKHQsZSl7aWYoUyh0KSlyZXR1cm4gdC5jbG9uZSgpO3ZhciBuPVwib2JqZWN0XCI9PXR5cGVvZiBlP2U6e307cmV0dXJuIG4uZGF0ZT10LG4uYXJncz1hcmd1bWVudHMsbmV3IF8obil9LGI9djtiLmw9dyxiLmk9UyxiLnc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTyh0LHtsb2NhbGU6ZS4kTCx1dGM6ZS4kdSx4OmUuJHgsJG9mZnNldDplLiRvZmZzZXR9KX07dmFyIF89ZnVuY3Rpb24oKXtmdW5jdGlvbiBNKHQpe3RoaXMuJEw9dyh0LmxvY2FsZSxudWxsLCEwKSx0aGlzLnBhcnNlKHQpLHRoaXMuJHg9dGhpcy4keHx8dC54fHx7fSx0aGlzW3BdPSEwfXZhciBtPU0ucHJvdG90eXBlO3JldHVybiBtLnBhcnNlPWZ1bmN0aW9uKHQpe3RoaXMuJGQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5kYXRlLG49dC51dGM7aWYobnVsbD09PWUpcmV0dXJuIG5ldyBEYXRlKE5hTik7aWYoYi51KGUpKXJldHVybiBuZXcgRGF0ZTtpZihlIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gbmV3IERhdGUoZSk7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUmJiEvWiQvaS50ZXN0KGUpKXt2YXIgcj1lLm1hdGNoKCQpO2lmKHIpe3ZhciBpPXJbMl0tMXx8MCxzPShyWzddfHxcIjBcIikuc3Vic3RyaW5nKDAsMyk7cmV0dXJuIG4/bmV3IERhdGUoRGF0ZS5VVEMoclsxXSxpLHJbM118fDEscls0XXx8MCxyWzVdfHwwLHJbNl18fDAscykpOm5ldyBEYXRlKHJbMV0saSxyWzNdfHwxLHJbNF18fDAscls1XXx8MCxyWzZdfHwwLHMpfX1yZXR1cm4gbmV3IERhdGUoZSl9KHQpLHRoaXMuaW5pdCgpfSxtLmluaXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRkO3RoaXMuJHk9dC5nZXRGdWxsWWVhcigpLHRoaXMuJE09dC5nZXRNb250aCgpLHRoaXMuJEQ9dC5nZXREYXRlKCksdGhpcy4kVz10LmdldERheSgpLHRoaXMuJEg9dC5nZXRIb3VycygpLHRoaXMuJG09dC5nZXRNaW51dGVzKCksdGhpcy4kcz10LmdldFNlY29uZHMoKSx0aGlzLiRtcz10LmdldE1pbGxpc2Vjb25kcygpfSxtLiR1dGlscz1mdW5jdGlvbigpe3JldHVybiBifSxtLmlzVmFsaWQ9ZnVuY3Rpb24oKXtyZXR1cm4hKHRoaXMuJGQudG9TdHJpbmcoKT09PWwpfSxtLmlzU2FtZT1mdW5jdGlvbih0LGUpe3ZhciBuPU8odCk7cmV0dXJuIHRoaXMuc3RhcnRPZihlKTw9biYmbjw9dGhpcy5lbmRPZihlKX0sbS5pc0FmdGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE8odCk8dGhpcy5zdGFydE9mKGUpfSxtLmlzQmVmb3JlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZW5kT2YoZSk8Tyh0KX0sbS4kZz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGIudSh0KT90aGlzW2VdOnRoaXMuc2V0KG4sdCl9LG0udW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LG0udmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sbS5zdGFydE9mPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxyPSEhYi51KGUpfHxlLGY9Yi5wKHQpLGw9ZnVuY3Rpb24odCxlKXt2YXIgaT1iLncobi4kdT9EYXRlLlVUQyhuLiR5LGUsdCk6bmV3IERhdGUobi4keSxlLHQpLG4pO3JldHVybiByP2k6aS5lbmRPZihhKX0sJD1mdW5jdGlvbih0LGUpe3JldHVybiBiLncobi50b0RhdGUoKVt0XS5hcHBseShuLnRvRGF0ZShcInNcIiksKHI/WzAsMCwwLDBdOlsyMyw1OSw1OSw5OTldKS5zbGljZShlKSksbil9LHk9dGhpcy4kVyxNPXRoaXMuJE0sbT10aGlzLiRELHY9XCJzZXRcIisodGhpcy4kdT9cIlVUQ1wiOlwiXCIpO3N3aXRjaChmKXtjYXNlIGg6cmV0dXJuIHI/bCgxLDApOmwoMzEsMTEpO2Nhc2UgYzpyZXR1cm4gcj9sKDEsTSk6bCgwLE0rMSk7Y2FzZSBvOnZhciBnPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxEPSh5PGc/eSs3OnkpLWc7cmV0dXJuIGwocj9tLUQ6bSsoNi1EKSxNKTtjYXNlIGE6Y2FzZSBkOnJldHVybiAkKHYrXCJIb3Vyc1wiLDApO2Nhc2UgdTpyZXR1cm4gJCh2K1wiTWludXRlc1wiLDEpO2Nhc2UgczpyZXR1cm4gJCh2K1wiU2Vjb25kc1wiLDIpO2Nhc2UgaTpyZXR1cm4gJCh2K1wiTWlsbGlzZWNvbmRzXCIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sbS5lbmRPZj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdGFydE9mKHQsITEpfSxtLiRzZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbixvPWIucCh0KSxmPVwic2V0XCIrKHRoaXMuJHU/XCJVVENcIjpcIlwiKSxsPShuPXt9LG5bYV09ZitcIkRhdGVcIixuW2RdPWYrXCJEYXRlXCIsbltjXT1mK1wiTW9udGhcIixuW2hdPWYrXCJGdWxsWWVhclwiLG5bdV09ZitcIkhvdXJzXCIsbltzXT1mK1wiTWludXRlc1wiLG5baV09ZitcIlNlY29uZHNcIixuW3JdPWYrXCJNaWxsaXNlY29uZHNcIixuKVtvXSwkPW89PT1hP3RoaXMuJEQrKGUtdGhpcy4kVyk6ZTtpZihvPT09Y3x8bz09PWgpe3ZhciB5PXRoaXMuY2xvbmUoKS5zZXQoZCwxKTt5LiRkW2xdKCQpLHkuaW5pdCgpLHRoaXMuJGQ9eS5zZXQoZCxNYXRoLm1pbih0aGlzLiRELHkuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgbCYmdGhpcy4kZFtsXSgkKTtyZXR1cm4gdGhpcy5pbml0KCksdGhpc30sbS5zZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLiRzZXQodCxlKX0sbS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbYi5wKHQpXSgpfSxtLmFkZD1mdW5jdGlvbihyLGYpe3ZhciBkLGw9dGhpcztyPU51bWJlcihyKTt2YXIgJD1iLnAoZikseT1mdW5jdGlvbih0KXt2YXIgZT1PKGwpO3JldHVybiBiLncoZS5kYXRlKGUuZGF0ZSgpK01hdGgucm91bmQodCpyKSksbCl9O2lmKCQ9PT1jKXJldHVybiB0aGlzLnNldChjLHRoaXMuJE0rcik7aWYoJD09PWgpcmV0dXJuIHRoaXMuc2V0KGgsdGhpcy4keStyKTtpZigkPT09YSlyZXR1cm4geSgxKTtpZigkPT09bylyZXR1cm4geSg3KTt2YXIgTT0oZD17fSxkW3NdPWUsZFt1XT1uLGRbaV09dCxkKVskXXx8MSxtPXRoaXMuJGQuZ2V0VGltZSgpK3IqTTtyZXR1cm4gYi53KG0sdGhpcyl9LG0uc3VidHJhY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hZGQoLTEqdCxlKX0sbS5mb3JtYXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gbi5pbnZhbGlkRGF0ZXx8bDt2YXIgcj10fHxcIllZWVktTU0tRERUSEg6bW06c3NaXCIsaT1iLnoodGhpcykscz10aGlzLiRILHU9dGhpcy4kbSxhPXRoaXMuJE0sbz1uLndlZWtkYXlzLGM9bi5tb250aHMsZj1uLm1lcmlkaWVtLGg9ZnVuY3Rpb24odCxuLGkscyl7cmV0dXJuIHQmJih0W25dfHx0KGUscikpfHxpW25dLnNsaWNlKDAscyl9LGQ9ZnVuY3Rpb24odCl7cmV0dXJuIGIucyhzJTEyfHwxMix0LFwiMFwiKX0sJD1mfHxmdW5jdGlvbih0LGUsbil7dmFyIHI9dDwxMj9cIkFNXCI6XCJQTVwiO3JldHVybiBuP3IudG9Mb3dlckNhc2UoKTpyfTtyZXR1cm4gci5yZXBsYWNlKHksKGZ1bmN0aW9uKHQscil7cmV0dXJuIHJ8fGZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlXCJZWVwiOnJldHVybiBTdHJpbmcoZS4keSkuc2xpY2UoLTIpO2Nhc2VcIllZWVlcIjpyZXR1cm4gYi5zKGUuJHksNCxcIjBcIik7Y2FzZVwiTVwiOnJldHVybiBhKzE7Y2FzZVwiTU1cIjpyZXR1cm4gYi5zKGErMSwyLFwiMFwiKTtjYXNlXCJNTU1cIjpyZXR1cm4gaChuLm1vbnRoc1Nob3J0LGEsYywzKTtjYXNlXCJNTU1NXCI6cmV0dXJuIGgoYyxhKTtjYXNlXCJEXCI6cmV0dXJuIGUuJEQ7Y2FzZVwiRERcIjpyZXR1cm4gYi5zKGUuJEQsMixcIjBcIik7Y2FzZVwiZFwiOnJldHVybiBTdHJpbmcoZS4kVyk7Y2FzZVwiZGRcIjpyZXR1cm4gaChuLndlZWtkYXlzTWluLGUuJFcsbywyKTtjYXNlXCJkZGRcIjpyZXR1cm4gaChuLndlZWtkYXlzU2hvcnQsZS4kVyxvLDMpO2Nhc2VcImRkZGRcIjpyZXR1cm4gb1tlLiRXXTtjYXNlXCJIXCI6cmV0dXJuIFN0cmluZyhzKTtjYXNlXCJISFwiOnJldHVybiBiLnMocywyLFwiMFwiKTtjYXNlXCJoXCI6cmV0dXJuIGQoMSk7Y2FzZVwiaGhcIjpyZXR1cm4gZCgyKTtjYXNlXCJhXCI6cmV0dXJuICQocyx1LCEwKTtjYXNlXCJBXCI6cmV0dXJuICQocyx1LCExKTtjYXNlXCJtXCI6cmV0dXJuIFN0cmluZyh1KTtjYXNlXCJtbVwiOnJldHVybiBiLnModSwyLFwiMFwiKTtjYXNlXCJzXCI6cmV0dXJuIFN0cmluZyhlLiRzKTtjYXNlXCJzc1wiOnJldHVybiBiLnMoZS4kcywyLFwiMFwiKTtjYXNlXCJTU1NcIjpyZXR1cm4gYi5zKGUuJG1zLDMsXCIwXCIpO2Nhc2VcIlpcIjpyZXR1cm4gaX1yZXR1cm4gbnVsbH0odCl8fGkucmVwbGFjZShcIjpcIixcIlwiKX0pKX0sbS51dGNPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gMTUqLU1hdGgucm91bmQodGhpcy4kZC5nZXRUaW1lem9uZU9mZnNldCgpLzE1KX0sbS5kaWZmPWZ1bmN0aW9uKHIsZCxsKXt2YXIgJCx5PXRoaXMsTT1iLnAoZCksbT1PKHIpLHY9KG0udXRjT2Zmc2V0KCktdGhpcy51dGNPZmZzZXQoKSkqZSxnPXRoaXMtbSxEPWZ1bmN0aW9uKCl7cmV0dXJuIGIubSh5LG0pfTtzd2l0Y2goTSl7Y2FzZSBoOiQ9RCgpLzEyO2JyZWFrO2Nhc2UgYzokPUQoKTticmVhaztjYXNlIGY6JD1EKCkvMzticmVhaztjYXNlIG86JD0oZy12KS82MDQ4ZTU7YnJlYWs7Y2FzZSBhOiQ9KGctdikvODY0ZTU7YnJlYWs7Y2FzZSB1OiQ9Zy9uO2JyZWFrO2Nhc2UgczokPWcvZTticmVhaztjYXNlIGk6JD1nL3Q7YnJlYWs7ZGVmYXVsdDokPWd9cmV0dXJuIGw/JDpiLmEoJCl9LG0uZGF5c0luTW9udGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRPZihjKS4kRH0sbS4kbG9jYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIERbdGhpcy4kTF19LG0ubG9jYWxlPWZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuIHRoaXMuJEw7dmFyIG49dGhpcy5jbG9uZSgpLHI9dyh0LGUsITApO3JldHVybiByJiYobi4kTD1yKSxufSxtLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIGIudyh0aGlzLiRkLHRoaXMpfSxtLnRvRGF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSl9LG0udG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWYWxpZCgpP3RoaXMudG9JU09TdHJpbmcoKTpudWxsfSxtLnRvSVNPU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9JU09TdHJpbmcoKX0sbS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvVVRDU3RyaW5nKCl9LE19KCksaz1fLnByb3RvdHlwZTtyZXR1cm4gTy5wcm90b3R5cGU9ayxbW1wiJG1zXCIscl0sW1wiJHNcIixpXSxbXCIkbVwiLHNdLFtcIiRIXCIsdV0sW1wiJFdcIixhXSxbXCIkTVwiLGNdLFtcIiR5XCIsaF0sW1wiJERcIixkXV0uZm9yRWFjaCgoZnVuY3Rpb24odCl7a1t0WzFdXT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy4kZyhlLHRbMF0sdFsxXSl9fSkpLE8uZXh0ZW5kPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuJGl8fCh0KGUsXyxPKSx0LiRpPSEwKSxPfSxPLmxvY2FsZT13LE8uaXNEYXlqcz1TLE8udW5peD1mdW5jdGlvbih0KXtyZXR1cm4gTygxZTMqdCl9LE8uZW49RFtnXSxPLkxzPUQsTy5wPXt9LE99KSk7IiwKICAgICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuc2FuaXRpemVVcmwgPSBleHBvcnRzLkJMQU5LX1VSTCA9IHZvaWQgMDtcbnZhciBpbnZhbGlkUHJvdG9jb2xSZWdleCA9IC9eKFteXFx3XSopKGphdmFzY3JpcHR8ZGF0YXx2YnNjcmlwdCkvaW07XG52YXIgaHRtbEVudGl0aWVzUmVnZXggPSAvJiMoXFx3KykoXlxcd3w7KT8vZztcbnZhciBodG1sQ3RybEVudGl0eVJlZ2V4ID0gLyYobmV3bGluZXx0YWIpOy9naTtcbnZhciBjdHJsQ2hhcmFjdGVyc1JlZ2V4ID0gL1tcXHUwMDAwLVxcdTAwMUZcXHUwMDdGLVxcdTAwOUZcXHUyMDAwLVxcdTIwMERcXHVGRUZGXS9naW07XG52YXIgdXJsU2NoZW1lUmVnZXggPSAvXi4rKDp8JmNvbG9uOykvZ2ltO1xudmFyIHJlbGF0aXZlRmlyc3RDaGFyYWN0ZXJzID0gW1wiLlwiLCBcIi9cIl07XG5leHBvcnRzLkJMQU5LX1VSTCA9IFwiYWJvdXQ6YmxhbmtcIjtcbmZ1bmN0aW9uIGlzUmVsYXRpdmVVcmxXaXRob3V0UHJvdG9jb2wodXJsKSB7XG4gICAgcmV0dXJuIHJlbGF0aXZlRmlyc3RDaGFyYWN0ZXJzLmluZGV4T2YodXJsWzBdKSA+IC0xO1xufVxuLy8gYWRhcHRlZCBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yOTgyNDU1MC8yNjAxNTUyXG5mdW5jdGlvbiBkZWNvZGVIdG1sQ2hhcmFjdGVycyhzdHIpIHtcbiAgICB2YXIgcmVtb3ZlZE51bGxCeXRlID0gc3RyLnJlcGxhY2UoY3RybENoYXJhY3RlcnNSZWdleCwgXCJcIik7XG4gICAgcmV0dXJuIHJlbW92ZWROdWxsQnl0ZS5yZXBsYWNlKGh0bWxFbnRpdGllc1JlZ2V4LCBmdW5jdGlvbiAobWF0Y2gsIGRlYykge1xuICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShkZWMpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gc2FuaXRpemVVcmwodXJsKSB7XG4gICAgaWYgKCF1cmwpIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydHMuQkxBTktfVVJMO1xuICAgIH1cbiAgICB2YXIgc2FuaXRpemVkVXJsID0gZGVjb2RlSHRtbENoYXJhY3RlcnModXJsKVxuICAgICAgICAucmVwbGFjZShodG1sQ3RybEVudGl0eVJlZ2V4LCBcIlwiKVxuICAgICAgICAucmVwbGFjZShjdHJsQ2hhcmFjdGVyc1JlZ2V4LCBcIlwiKVxuICAgICAgICAudHJpbSgpO1xuICAgIGlmICghc2FuaXRpemVkVXJsKSB7XG4gICAgICAgIHJldHVybiBleHBvcnRzLkJMQU5LX1VSTDtcbiAgICB9XG4gICAgaWYgKGlzUmVsYXRpdmVVcmxXaXRob3V0UHJvdG9jb2woc2FuaXRpemVkVXJsKSkge1xuICAgICAgICByZXR1cm4gc2FuaXRpemVkVXJsO1xuICAgIH1cbiAgICB2YXIgdXJsU2NoZW1lUGFyc2VSZXN1bHRzID0gc2FuaXRpemVkVXJsLm1hdGNoKHVybFNjaGVtZVJlZ2V4KTtcbiAgICBpZiAoIXVybFNjaGVtZVBhcnNlUmVzdWx0cykge1xuICAgICAgICByZXR1cm4gc2FuaXRpemVkVXJsO1xuICAgIH1cbiAgICB2YXIgdXJsU2NoZW1lID0gdXJsU2NoZW1lUGFyc2VSZXN1bHRzWzBdO1xuICAgIGlmIChpbnZhbGlkUHJvdG9jb2xSZWdleC50ZXN0KHVybFNjaGVtZSkpIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydHMuQkxBTktfVVJMO1xuICAgIH1cbiAgICByZXR1cm4gc2FuaXRpemVkVXJsO1xufVxuZXhwb3J0cy5zYW5pdGl6ZVVybCA9IHNhbml0aXplVXJsO1xuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhc2NlbmRpbmcoYSwgYikge1xuICByZXR1cm4gYSA9PSBudWxsIHx8IGIgPT0gbnVsbCA/IE5hTiA6IGEgPCBiID8gLTEgOiBhID4gYiA/IDEgOiBhID49IGIgPyAwIDogTmFOO1xufVxuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZXNjZW5kaW5nKGEsIGIpIHtcbiAgcmV0dXJuIGEgPT0gbnVsbCB8fCBiID09IG51bGwgPyBOYU5cbiAgICA6IGIgPCBhID8gLTFcbiAgICA6IGIgPiBhID8gMVxuICAgIDogYiA+PSBhID8gMFxuICAgIDogTmFOO1xufVxuIiwKICAgICJpbXBvcnQgYXNjZW5kaW5nIGZyb20gXCIuL2FzY2VuZGluZy5qc1wiO1xuaW1wb3J0IGRlc2NlbmRpbmcgZnJvbSBcIi4vZGVzY2VuZGluZy5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBiaXNlY3RvcihmKSB7XG4gIGxldCBjb21wYXJlMSwgY29tcGFyZTIsIGRlbHRhO1xuXG4gIC8vIElmIGFuIGFjY2Vzc29yIGlzIHNwZWNpZmllZCwgcHJvbW90ZSBpdCB0byBhIGNvbXBhcmF0b3IuIEluIHRoaXMgY2FzZSB3ZVxuICAvLyBjYW4gdGVzdCB3aGV0aGVyIHRoZSBzZWFyY2ggdmFsdWUgaXMgKHNlbGYtKSBjb21wYXJhYmxlLiBXZSBjYW7igJl0IGRvIHRoaXNcbiAgLy8gZm9yIGEgY29tcGFyYXRvciAoZXhjZXB0IGZvciBzcGVjaWZpYywga25vd24gY29tcGFyYXRvcnMpIGJlY2F1c2Ugd2UgY2Fu4oCZdFxuICAvLyB0ZWxsIGlmIHRoZSBjb21wYXJhdG9yIGlzIHN5bW1ldHJpYywgYW5kIGFuIGFzeW1tZXRyaWMgY29tcGFyYXRvciBjYW7igJl0IGJlXG4gIC8vIHVzZWQgdG8gdGVzdCB3aGV0aGVyIGEgc2luZ2xlIHZhbHVlIGlzIGNvbXBhcmFibGUuXG4gIGlmIChmLmxlbmd0aCAhPT0gMikge1xuICAgIGNvbXBhcmUxID0gYXNjZW5kaW5nO1xuICAgIGNvbXBhcmUyID0gKGQsIHgpID0+IGFzY2VuZGluZyhmKGQpLCB4KTtcbiAgICBkZWx0YSA9IChkLCB4KSA9PiBmKGQpIC0geDtcbiAgfSBlbHNlIHtcbiAgICBjb21wYXJlMSA9IGYgPT09IGFzY2VuZGluZyB8fCBmID09PSBkZXNjZW5kaW5nID8gZiA6IHplcm87XG4gICAgY29tcGFyZTIgPSBmO1xuICAgIGRlbHRhID0gZjtcbiAgfVxuXG4gIGZ1bmN0aW9uIGxlZnQoYSwgeCwgbG8gPSAwLCBoaSA9IGEubGVuZ3RoKSB7XG4gICAgaWYgKGxvIDwgaGkpIHtcbiAgICAgIGlmIChjb21wYXJlMSh4LCB4KSAhPT0gMCkgcmV0dXJuIGhpO1xuICAgICAgZG8ge1xuICAgICAgICBjb25zdCBtaWQgPSAobG8gKyBoaSkgPj4+IDE7XG4gICAgICAgIGlmIChjb21wYXJlMihhW21pZF0sIHgpIDwgMCkgbG8gPSBtaWQgKyAxO1xuICAgICAgICBlbHNlIGhpID0gbWlkO1xuICAgICAgfSB3aGlsZSAobG8gPCBoaSk7XG4gICAgfVxuICAgIHJldHVybiBsbztcbiAgfVxuXG4gIGZ1bmN0aW9uIHJpZ2h0KGEsIHgsIGxvID0gMCwgaGkgPSBhLmxlbmd0aCkge1xuICAgIGlmIChsbyA8IGhpKSB7XG4gICAgICBpZiAoY29tcGFyZTEoeCwgeCkgIT09IDApIHJldHVybiBoaTtcbiAgICAgIGRvIHtcbiAgICAgICAgY29uc3QgbWlkID0gKGxvICsgaGkpID4+PiAxO1xuICAgICAgICBpZiAoY29tcGFyZTIoYVttaWRdLCB4KSA8PSAwKSBsbyA9IG1pZCArIDE7XG4gICAgICAgIGVsc2UgaGkgPSBtaWQ7XG4gICAgICB9IHdoaWxlIChsbyA8IGhpKTtcbiAgICB9XG4gICAgcmV0dXJuIGxvO1xuICB9XG5cbiAgZnVuY3Rpb24gY2VudGVyKGEsIHgsIGxvID0gMCwgaGkgPSBhLmxlbmd0aCkge1xuICAgIGNvbnN0IGkgPSBsZWZ0KGEsIHgsIGxvLCBoaSAtIDEpO1xuICAgIHJldHVybiBpID4gbG8gJiYgZGVsdGEoYVtpIC0gMV0sIHgpID4gLWRlbHRhKGFbaV0sIHgpID8gaSAtIDEgOiBpO1xuICB9XG5cbiAgcmV0dXJuIHtsZWZ0LCBjZW50ZXIsIHJpZ2h0fTtcbn1cblxuZnVuY3Rpb24gemVybygpIHtcbiAgcmV0dXJuIDA7XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG51bWJlcih4KSB7XG4gIHJldHVybiB4ID09PSBudWxsID8gTmFOIDogK3g7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogbnVtYmVycyh2YWx1ZXMsIHZhbHVlb2YpIHtcbiAgaWYgKHZhbHVlb2YgPT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgKHZhbHVlID0gK3ZhbHVlKSA+PSB2YWx1ZSkge1xuICAgICAgICB5aWVsZCB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbGV0IGluZGV4ID0gLTE7XG4gICAgZm9yIChsZXQgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICBpZiAoKHZhbHVlID0gdmFsdWVvZih2YWx1ZSwgKytpbmRleCwgdmFsdWVzKSkgIT0gbnVsbCAmJiAodmFsdWUgPSArdmFsdWUpID49IHZhbHVlKSB7XG4gICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwKICAgICJpbXBvcnQgYXNjZW5kaW5nIGZyb20gXCIuL2FzY2VuZGluZy5qc1wiO1xuaW1wb3J0IGJpc2VjdG9yIGZyb20gXCIuL2Jpc2VjdG9yLmpzXCI7XG5pbXBvcnQgbnVtYmVyIGZyb20gXCIuL251bWJlci5qc1wiO1xuXG5jb25zdCBhc2NlbmRpbmdCaXNlY3QgPSBiaXNlY3Rvcihhc2NlbmRpbmcpO1xuZXhwb3J0IGNvbnN0IGJpc2VjdFJpZ2h0ID0gYXNjZW5kaW5nQmlzZWN0LnJpZ2h0O1xuZXhwb3J0IGNvbnN0IGJpc2VjdExlZnQgPSBhc2NlbmRpbmdCaXNlY3QubGVmdDtcbmV4cG9ydCBjb25zdCBiaXNlY3RDZW50ZXIgPSBiaXNlY3RvcihudW1iZXIpLmNlbnRlcjtcbmV4cG9ydCBkZWZhdWx0IGJpc2VjdFJpZ2h0O1xuIiwKICAgICJleHBvcnQgY2xhc3MgSW50ZXJuTWFwIGV4dGVuZHMgTWFwIHtcbiAgY29uc3RydWN0b3IoZW50cmllcywga2V5ID0ga2V5b2YpIHtcbiAgICBzdXBlcigpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHtfaW50ZXJuOiB7dmFsdWU6IG5ldyBNYXAoKX0sIF9rZXk6IHt2YWx1ZToga2V5fX0pO1xuICAgIGlmIChlbnRyaWVzICE9IG51bGwpIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGVudHJpZXMpIHRoaXMuc2V0KGtleSwgdmFsdWUpO1xuICB9XG4gIGdldChrZXkpIHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KGludGVybl9nZXQodGhpcywga2V5KSk7XG4gIH1cbiAgaGFzKGtleSkge1xuICAgIHJldHVybiBzdXBlci5oYXMoaW50ZXJuX2dldCh0aGlzLCBrZXkpKTtcbiAgfVxuICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgIHJldHVybiBzdXBlci5zZXQoaW50ZXJuX3NldCh0aGlzLCBrZXkpLCB2YWx1ZSk7XG4gIH1cbiAgZGVsZXRlKGtleSkge1xuICAgIHJldHVybiBzdXBlci5kZWxldGUoaW50ZXJuX2RlbGV0ZSh0aGlzLCBrZXkpKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW50ZXJuU2V0IGV4dGVuZHMgU2V0IHtcbiAgY29uc3RydWN0b3IodmFsdWVzLCBrZXkgPSBrZXlvZikge1xuICAgIHN1cGVyKCk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcywge19pbnRlcm46IHt2YWx1ZTogbmV3IE1hcCgpfSwgX2tleToge3ZhbHVlOiBrZXl9fSk7XG4gICAgaWYgKHZhbHVlcyAhPSBudWxsKSBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykgdGhpcy5hZGQodmFsdWUpO1xuICB9XG4gIGhhcyh2YWx1ZSkge1xuICAgIHJldHVybiBzdXBlci5oYXMoaW50ZXJuX2dldCh0aGlzLCB2YWx1ZSkpO1xuICB9XG4gIGFkZCh2YWx1ZSkge1xuICAgIHJldHVybiBzdXBlci5hZGQoaW50ZXJuX3NldCh0aGlzLCB2YWx1ZSkpO1xuICB9XG4gIGRlbGV0ZSh2YWx1ZSkge1xuICAgIHJldHVybiBzdXBlci5kZWxldGUoaW50ZXJuX2RlbGV0ZSh0aGlzLCB2YWx1ZSkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGludGVybl9nZXQoe19pbnRlcm4sIF9rZXl9LCB2YWx1ZSkge1xuICBjb25zdCBrZXkgPSBfa2V5KHZhbHVlKTtcbiAgcmV0dXJuIF9pbnRlcm4uaGFzKGtleSkgPyBfaW50ZXJuLmdldChrZXkpIDogdmFsdWU7XG59XG5cbmZ1bmN0aW9uIGludGVybl9zZXQoe19pbnRlcm4sIF9rZXl9LCB2YWx1ZSkge1xuICBjb25zdCBrZXkgPSBfa2V5KHZhbHVlKTtcbiAgaWYgKF9pbnRlcm4uaGFzKGtleSkpIHJldHVybiBfaW50ZXJuLmdldChrZXkpO1xuICBfaW50ZXJuLnNldChrZXksIHZhbHVlKTtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiBpbnRlcm5fZGVsZXRlKHtfaW50ZXJuLCBfa2V5fSwgdmFsdWUpIHtcbiAgY29uc3Qga2V5ID0gX2tleSh2YWx1ZSk7XG4gIGlmIChfaW50ZXJuLmhhcyhrZXkpKSB7XG4gICAgdmFsdWUgPSBfaW50ZXJuLmdldChrZXkpO1xuICAgIF9pbnRlcm4uZGVsZXRlKGtleSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiBrZXlvZih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiID8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7XG59XG4iLAogICAgImNvbnN0IGUxMCA9IE1hdGguc3FydCg1MCksXG4gICAgZTUgPSBNYXRoLnNxcnQoMTApLFxuICAgIGUyID0gTWF0aC5zcXJ0KDIpO1xuXG5mdW5jdGlvbiB0aWNrU3BlYyhzdGFydCwgc3RvcCwgY291bnQpIHtcbiAgY29uc3Qgc3RlcCA9IChzdG9wIC0gc3RhcnQpIC8gTWF0aC5tYXgoMCwgY291bnQpLFxuICAgICAgcG93ZXIgPSBNYXRoLmZsb29yKE1hdGgubG9nMTAoc3RlcCkpLFxuICAgICAgZXJyb3IgPSBzdGVwIC8gTWF0aC5wb3coMTAsIHBvd2VyKSxcbiAgICAgIGZhY3RvciA9IGVycm9yID49IGUxMCA/IDEwIDogZXJyb3IgPj0gZTUgPyA1IDogZXJyb3IgPj0gZTIgPyAyIDogMTtcbiAgbGV0IGkxLCBpMiwgaW5jO1xuICBpZiAocG93ZXIgPCAwKSB7XG4gICAgaW5jID0gTWF0aC5wb3coMTAsIC1wb3dlcikgLyBmYWN0b3I7XG4gICAgaTEgPSBNYXRoLnJvdW5kKHN0YXJ0ICogaW5jKTtcbiAgICBpMiA9IE1hdGgucm91bmQoc3RvcCAqIGluYyk7XG4gICAgaWYgKGkxIC8gaW5jIDwgc3RhcnQpICsraTE7XG4gICAgaWYgKGkyIC8gaW5jID4gc3RvcCkgLS1pMjtcbiAgICBpbmMgPSAtaW5jO1xuICB9IGVsc2Uge1xuICAgIGluYyA9IE1hdGgucG93KDEwLCBwb3dlcikgKiBmYWN0b3I7XG4gICAgaTEgPSBNYXRoLnJvdW5kKHN0YXJ0IC8gaW5jKTtcbiAgICBpMiA9IE1hdGgucm91bmQoc3RvcCAvIGluYyk7XG4gICAgaWYgKGkxICogaW5jIDwgc3RhcnQpICsraTE7XG4gICAgaWYgKGkyICogaW5jID4gc3RvcCkgLS1pMjtcbiAgfVxuICBpZiAoaTIgPCBpMSAmJiAwLjUgPD0gY291bnQgJiYgY291bnQgPCAyKSByZXR1cm4gdGlja1NwZWMoc3RhcnQsIHN0b3AsIGNvdW50ICogMik7XG4gIHJldHVybiBbaTEsIGkyLCBpbmNdO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0aWNrcyhzdGFydCwgc3RvcCwgY291bnQpIHtcbiAgc3RvcCA9ICtzdG9wLCBzdGFydCA9ICtzdGFydCwgY291bnQgPSArY291bnQ7XG4gIGlmICghKGNvdW50ID4gMCkpIHJldHVybiBbXTtcbiAgaWYgKHN0YXJ0ID09PSBzdG9wKSByZXR1cm4gW3N0YXJ0XTtcbiAgY29uc3QgcmV2ZXJzZSA9IHN0b3AgPCBzdGFydCwgW2kxLCBpMiwgaW5jXSA9IHJldmVyc2UgPyB0aWNrU3BlYyhzdG9wLCBzdGFydCwgY291bnQpIDogdGlja1NwZWMoc3RhcnQsIHN0b3AsIGNvdW50KTtcbiAgaWYgKCEoaTIgPj0gaTEpKSByZXR1cm4gW107XG4gIGNvbnN0IG4gPSBpMiAtIGkxICsgMSwgdGlja3MgPSBuZXcgQXJyYXkobik7XG4gIGlmIChyZXZlcnNlKSB7XG4gICAgaWYgKGluYyA8IDApIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgKytpKSB0aWNrc1tpXSA9IChpMiAtIGkpIC8gLWluYztcbiAgICBlbHNlIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgKytpKSB0aWNrc1tpXSA9IChpMiAtIGkpICogaW5jO1xuICB9IGVsc2Uge1xuICAgIGlmIChpbmMgPCAwKSBmb3IgKGxldCBpID0gMDsgaSA8IG47ICsraSkgdGlja3NbaV0gPSAoaTEgKyBpKSAvIC1pbmM7XG4gICAgZWxzZSBmb3IgKGxldCBpID0gMDsgaSA8IG47ICsraSkgdGlja3NbaV0gPSAoaTEgKyBpKSAqIGluYztcbiAgfVxuICByZXR1cm4gdGlja3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aWNrSW5jcmVtZW50KHN0YXJ0LCBzdG9wLCBjb3VudCkge1xuICBzdG9wID0gK3N0b3AsIHN0YXJ0ID0gK3N0YXJ0LCBjb3VudCA9ICtjb3VudDtcbiAgcmV0dXJuIHRpY2tTcGVjKHN0YXJ0LCBzdG9wLCBjb3VudClbMl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aWNrU3RlcChzdGFydCwgc3RvcCwgY291bnQpIHtcbiAgc3RvcCA9ICtzdG9wLCBzdGFydCA9ICtzdGFydCwgY291bnQgPSArY291bnQ7XG4gIGNvbnN0IHJldmVyc2UgPSBzdG9wIDwgc3RhcnQsIGluYyA9IHJldmVyc2UgPyB0aWNrSW5jcmVtZW50KHN0b3AsIHN0YXJ0LCBjb3VudCkgOiB0aWNrSW5jcmVtZW50KHN0YXJ0LCBzdG9wLCBjb3VudCk7XG4gIHJldHVybiAocmV2ZXJzZSA/IC0xIDogMSkgKiAoaW5jIDwgMCA/IDEgLyAtaW5jIDogaW5jKTtcbn1cbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWF4KHZhbHVlcywgdmFsdWVvZikge1xuICBsZXQgbWF4O1xuICBpZiAodmFsdWVvZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsXG4gICAgICAgICAgJiYgKG1heCA8IHZhbHVlIHx8IChtYXggPT09IHVuZGVmaW5lZCAmJiB2YWx1ZSA+PSB2YWx1ZSkpKSB7XG4gICAgICAgIG1heCA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBsZXQgaW5kZXggPSAtMTtcbiAgICBmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgIGlmICgodmFsdWUgPSB2YWx1ZW9mKHZhbHVlLCArK2luZGV4LCB2YWx1ZXMpKSAhPSBudWxsXG4gICAgICAgICAgJiYgKG1heCA8IHZhbHVlIHx8IChtYXggPT09IHVuZGVmaW5lZCAmJiB2YWx1ZSA+PSB2YWx1ZSkpKSB7XG4gICAgICAgIG1heCA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbWF4O1xufVxuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtaW4odmFsdWVzLCB2YWx1ZW9mKSB7XG4gIGxldCBtaW47XG4gIGlmICh2YWx1ZW9mID09PSB1bmRlZmluZWQpIHtcbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgaWYgKHZhbHVlICE9IG51bGxcbiAgICAgICAgICAmJiAobWluID4gdmFsdWUgfHwgKG1pbiA9PT0gdW5kZWZpbmVkICYmIHZhbHVlID49IHZhbHVlKSkpIHtcbiAgICAgICAgbWluID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgaWYgKCh2YWx1ZSA9IHZhbHVlb2YodmFsdWUsICsraW5kZXgsIHZhbHVlcykpICE9IG51bGxcbiAgICAgICAgICAmJiAobWluID4gdmFsdWUgfHwgKG1pbiA9PT0gdW5kZWZpbmVkICYmIHZhbHVlID49IHZhbHVlKSkpIHtcbiAgICAgICAgbWluID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBtaW47XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJhbmdlKHN0YXJ0LCBzdG9wLCBzdGVwKSB7XG4gIHN0YXJ0ID0gK3N0YXJ0LCBzdG9wID0gK3N0b3AsIHN0ZXAgPSAobiA9IGFyZ3VtZW50cy5sZW5ndGgpIDwgMiA/IChzdG9wID0gc3RhcnQsIHN0YXJ0ID0gMCwgMSkgOiBuIDwgMyA/IDEgOiArc3RlcDtcblxuICB2YXIgaSA9IC0xLFxuICAgICAgbiA9IE1hdGgubWF4KDAsIE1hdGguY2VpbCgoc3RvcCAtIHN0YXJ0KSAvIHN0ZXApKSB8IDAsXG4gICAgICByYW5nZSA9IG5ldyBBcnJheShuKTtcblxuICB3aGlsZSAoKytpIDwgbikge1xuICAgIHJhbmdlW2ldID0gc3RhcnQgKyBpICogc3RlcDtcbiAgfVxuXG4gIHJldHVybiByYW5nZTtcbn1cbiIsCiAgICAiZXhwb3J0IHtkZWZhdWx0IGFzIGJpc2VjdCwgYmlzZWN0UmlnaHQsIGJpc2VjdExlZnQsIGJpc2VjdENlbnRlcn0gZnJvbSBcIi4vYmlzZWN0LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgYXNjZW5kaW5nfSBmcm9tIFwiLi9hc2NlbmRpbmcuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBiaXNlY3Rvcn0gZnJvbSBcIi4vYmlzZWN0b3IuanNcIjtcbmV4cG9ydCB7Ymx1ciwgYmx1cjIsIGJsdXJJbWFnZX0gZnJvbSBcIi4vYmx1ci5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGNvdW50fSBmcm9tIFwiLi9jb3VudC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGNyb3NzfSBmcm9tIFwiLi9jcm9zcy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGN1bXN1bX0gZnJvbSBcIi4vY3Vtc3VtLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgZGVzY2VuZGluZ30gZnJvbSBcIi4vZGVzY2VuZGluZy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGRldmlhdGlvbn0gZnJvbSBcIi4vZGV2aWF0aW9uLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgZXh0ZW50fSBmcm9tIFwiLi9leHRlbnQuanNcIjtcbmV4cG9ydCB7QWRkZXIsIGZzdW0sIGZjdW1zdW19IGZyb20gXCIuL2ZzdW0uanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBncm91cCwgZmxhdEdyb3VwLCBmbGF0Um9sbHVwLCBncm91cHMsIGluZGV4LCBpbmRleGVzLCByb2xsdXAsIHJvbGx1cHN9IGZyb20gXCIuL2dyb3VwLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgZ3JvdXBTb3J0fSBmcm9tIFwiLi9ncm91cFNvcnQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBiaW4sIGRlZmF1bHQgYXMgaGlzdG9ncmFtfSBmcm9tIFwiLi9iaW4uanNcIjsgLy8gRGVwcmVjYXRlZDsgdXNlIGJpbi5cbmV4cG9ydCB7ZGVmYXVsdCBhcyB0aHJlc2hvbGRGcmVlZG1hbkRpYWNvbmlzfSBmcm9tIFwiLi90aHJlc2hvbGQvZnJlZWRtYW5EaWFjb25pcy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHRocmVzaG9sZFNjb3R0fSBmcm9tIFwiLi90aHJlc2hvbGQvc2NvdHQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyB0aHJlc2hvbGRTdHVyZ2VzfSBmcm9tIFwiLi90aHJlc2hvbGQvc3R1cmdlcy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIG1heH0gZnJvbSBcIi4vbWF4LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgbWF4SW5kZXh9IGZyb20gXCIuL21heEluZGV4LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgbWVhbn0gZnJvbSBcIi4vbWVhbi5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIG1lZGlhbiwgbWVkaWFuSW5kZXh9IGZyb20gXCIuL21lZGlhbi5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIG1lcmdlfSBmcm9tIFwiLi9tZXJnZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIG1pbn0gZnJvbSBcIi4vbWluLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgbWluSW5kZXh9IGZyb20gXCIuL21pbkluZGV4LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgbW9kZX0gZnJvbSBcIi4vbW9kZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIG5pY2V9IGZyb20gXCIuL25pY2UuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBwYWlyc30gZnJvbSBcIi4vcGFpcnMuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBwZXJtdXRlfSBmcm9tIFwiLi9wZXJtdXRlLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgcXVhbnRpbGUsIHF1YW50aWxlSW5kZXgsIHF1YW50aWxlU29ydGVkfSBmcm9tIFwiLi9xdWFudGlsZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHF1aWNrc2VsZWN0fSBmcm9tIFwiLi9xdWlja3NlbGVjdC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHJhbmdlfSBmcm9tIFwiLi9yYW5nZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHJhbmt9IGZyb20gXCIuL3JhbmsuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBsZWFzdH0gZnJvbSBcIi4vbGVhc3QuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBsZWFzdEluZGV4fSBmcm9tIFwiLi9sZWFzdEluZGV4LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgZ3JlYXRlc3R9IGZyb20gXCIuL2dyZWF0ZXN0LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgZ3JlYXRlc3RJbmRleH0gZnJvbSBcIi4vZ3JlYXRlc3RJbmRleC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHNjYW59IGZyb20gXCIuL3NjYW4uanNcIjsgLy8gRGVwcmVjYXRlZDsgdXNlIGxlYXN0SW5kZXguXG5leHBvcnQge2RlZmF1bHQgYXMgc2h1ZmZsZSwgc2h1ZmZsZXJ9IGZyb20gXCIuL3NodWZmbGUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzdW19IGZyb20gXCIuL3N1bS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHRpY2tzLCB0aWNrSW5jcmVtZW50LCB0aWNrU3RlcH0gZnJvbSBcIi4vdGlja3MuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyB0cmFuc3Bvc2V9IGZyb20gXCIuL3RyYW5zcG9zZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHZhcmlhbmNlfSBmcm9tIFwiLi92YXJpYW5jZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHppcH0gZnJvbSBcIi4vemlwLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgZXZlcnl9IGZyb20gXCIuL2V2ZXJ5LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc29tZX0gZnJvbSBcIi4vc29tZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGZpbHRlcn0gZnJvbSBcIi4vZmlsdGVyLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgbWFwfSBmcm9tIFwiLi9tYXAuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyByZWR1Y2V9IGZyb20gXCIuL3JlZHVjZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHJldmVyc2V9IGZyb20gXCIuL3JldmVyc2UuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzb3J0fSBmcm9tIFwiLi9zb3J0LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgZGlmZmVyZW5jZX0gZnJvbSBcIi4vZGlmZmVyZW5jZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGRpc2pvaW50fSBmcm9tIFwiLi9kaXNqb2ludC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVyc2VjdGlvbn0gZnJvbSBcIi4vaW50ZXJzZWN0aW9uLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3Vic2V0fSBmcm9tIFwiLi9zdWJzZXQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzdXBlcnNldH0gZnJvbSBcIi4vc3VwZXJzZXQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyB1bmlvbn0gZnJvbSBcIi4vdW5pb24uanNcIjtcbmV4cG9ydCB7SW50ZXJuTWFwLCBJbnRlcm5TZXR9IGZyb20gXCJpbnRlcm5tYXBcIjtcbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4geDtcbn1cbiIsCiAgICAiaW1wb3J0IGlkZW50aXR5IGZyb20gXCIuL2lkZW50aXR5LmpzXCI7XG5cbnZhciB0b3AgPSAxLFxuICAgIHJpZ2h0ID0gMixcbiAgICBib3R0b20gPSAzLFxuICAgIGxlZnQgPSA0LFxuICAgIGVwc2lsb24gPSAxZS02O1xuXG5mdW5jdGlvbiB0cmFuc2xhdGVYKHgpIHtcbiAgcmV0dXJuIFwidHJhbnNsYXRlKFwiICsgeCArIFwiLDApXCI7XG59XG5cbmZ1bmN0aW9uIHRyYW5zbGF0ZVkoeSkge1xuICByZXR1cm4gXCJ0cmFuc2xhdGUoMCxcIiArIHkgKyBcIilcIjtcbn1cblxuZnVuY3Rpb24gbnVtYmVyKHNjYWxlKSB7XG4gIHJldHVybiBkID0+ICtzY2FsZShkKTtcbn1cblxuZnVuY3Rpb24gY2VudGVyKHNjYWxlLCBvZmZzZXQpIHtcbiAgb2Zmc2V0ID0gTWF0aC5tYXgoMCwgc2NhbGUuYmFuZHdpZHRoKCkgLSBvZmZzZXQgKiAyKSAvIDI7XG4gIGlmIChzY2FsZS5yb3VuZCgpKSBvZmZzZXQgPSBNYXRoLnJvdW5kKG9mZnNldCk7XG4gIHJldHVybiBkID0+ICtzY2FsZShkKSArIG9mZnNldDtcbn1cblxuZnVuY3Rpb24gZW50ZXJpbmcoKSB7XG4gIHJldHVybiAhdGhpcy5fX2F4aXM7XG59XG5cbmZ1bmN0aW9uIGF4aXMob3JpZW50LCBzY2FsZSkge1xuICB2YXIgdGlja0FyZ3VtZW50cyA9IFtdLFxuICAgICAgdGlja1ZhbHVlcyA9IG51bGwsXG4gICAgICB0aWNrRm9ybWF0ID0gbnVsbCxcbiAgICAgIHRpY2tTaXplSW5uZXIgPSA2LFxuICAgICAgdGlja1NpemVPdXRlciA9IDYsXG4gICAgICB0aWNrUGFkZGluZyA9IDMsXG4gICAgICBvZmZzZXQgPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvID4gMSA/IDAgOiAwLjUsXG4gICAgICBrID0gb3JpZW50ID09PSB0b3AgfHwgb3JpZW50ID09PSBsZWZ0ID8gLTEgOiAxLFxuICAgICAgeCA9IG9yaWVudCA9PT0gbGVmdCB8fCBvcmllbnQgPT09IHJpZ2h0ID8gXCJ4XCIgOiBcInlcIixcbiAgICAgIHRyYW5zZm9ybSA9IG9yaWVudCA9PT0gdG9wIHx8IG9yaWVudCA9PT0gYm90dG9tID8gdHJhbnNsYXRlWCA6IHRyYW5zbGF0ZVk7XG5cbiAgZnVuY3Rpb24gYXhpcyhjb250ZXh0KSB7XG4gICAgdmFyIHZhbHVlcyA9IHRpY2tWYWx1ZXMgPT0gbnVsbCA/IChzY2FsZS50aWNrcyA/IHNjYWxlLnRpY2tzLmFwcGx5KHNjYWxlLCB0aWNrQXJndW1lbnRzKSA6IHNjYWxlLmRvbWFpbigpKSA6IHRpY2tWYWx1ZXMsXG4gICAgICAgIGZvcm1hdCA9IHRpY2tGb3JtYXQgPT0gbnVsbCA/IChzY2FsZS50aWNrRm9ybWF0ID8gc2NhbGUudGlja0Zvcm1hdC5hcHBseShzY2FsZSwgdGlja0FyZ3VtZW50cykgOiBpZGVudGl0eSkgOiB0aWNrRm9ybWF0LFxuICAgICAgICBzcGFjaW5nID0gTWF0aC5tYXgodGlja1NpemVJbm5lciwgMCkgKyB0aWNrUGFkZGluZyxcbiAgICAgICAgcmFuZ2UgPSBzY2FsZS5yYW5nZSgpLFxuICAgICAgICByYW5nZTAgPSArcmFuZ2VbMF0gKyBvZmZzZXQsXG4gICAgICAgIHJhbmdlMSA9ICtyYW5nZVtyYW5nZS5sZW5ndGggLSAxXSArIG9mZnNldCxcbiAgICAgICAgcG9zaXRpb24gPSAoc2NhbGUuYmFuZHdpZHRoID8gY2VudGVyIDogbnVtYmVyKShzY2FsZS5jb3B5KCksIG9mZnNldCksXG4gICAgICAgIHNlbGVjdGlvbiA9IGNvbnRleHQuc2VsZWN0aW9uID8gY29udGV4dC5zZWxlY3Rpb24oKSA6IGNvbnRleHQsXG4gICAgICAgIHBhdGggPSBzZWxlY3Rpb24uc2VsZWN0QWxsKFwiLmRvbWFpblwiKS5kYXRhKFtudWxsXSksXG4gICAgICAgIHRpY2sgPSBzZWxlY3Rpb24uc2VsZWN0QWxsKFwiLnRpY2tcIikuZGF0YSh2YWx1ZXMsIHNjYWxlKS5vcmRlcigpLFxuICAgICAgICB0aWNrRXhpdCA9IHRpY2suZXhpdCgpLFxuICAgICAgICB0aWNrRW50ZXIgPSB0aWNrLmVudGVyKCkuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJ0aWNrXCIpLFxuICAgICAgICBsaW5lID0gdGljay5zZWxlY3QoXCJsaW5lXCIpLFxuICAgICAgICB0ZXh0ID0gdGljay5zZWxlY3QoXCJ0ZXh0XCIpO1xuXG4gICAgcGF0aCA9IHBhdGgubWVyZ2UocGF0aC5lbnRlcigpLmluc2VydChcInBhdGhcIiwgXCIudGlja1wiKVxuICAgICAgICAuYXR0cihcImNsYXNzXCIsIFwiZG9tYWluXCIpXG4gICAgICAgIC5hdHRyKFwic3Ryb2tlXCIsIFwiY3VycmVudENvbG9yXCIpKTtcblxuICAgIHRpY2sgPSB0aWNrLm1lcmdlKHRpY2tFbnRlcik7XG5cbiAgICBsaW5lID0gbGluZS5tZXJnZSh0aWNrRW50ZXIuYXBwZW5kKFwibGluZVwiKVxuICAgICAgICAuYXR0cihcInN0cm9rZVwiLCBcImN1cnJlbnRDb2xvclwiKVxuICAgICAgICAuYXR0cih4ICsgXCIyXCIsIGsgKiB0aWNrU2l6ZUlubmVyKSk7XG5cbiAgICB0ZXh0ID0gdGV4dC5tZXJnZSh0aWNrRW50ZXIuYXBwZW5kKFwidGV4dFwiKVxuICAgICAgICAuYXR0cihcImZpbGxcIiwgXCJjdXJyZW50Q29sb3JcIilcbiAgICAgICAgLmF0dHIoeCwgayAqIHNwYWNpbmcpXG4gICAgICAgIC5hdHRyKFwiZHlcIiwgb3JpZW50ID09PSB0b3AgPyBcIjBlbVwiIDogb3JpZW50ID09PSBib3R0b20gPyBcIjAuNzFlbVwiIDogXCIwLjMyZW1cIikpO1xuXG4gICAgaWYgKGNvbnRleHQgIT09IHNlbGVjdGlvbikge1xuICAgICAgcGF0aCA9IHBhdGgudHJhbnNpdGlvbihjb250ZXh0KTtcbiAgICAgIHRpY2sgPSB0aWNrLnRyYW5zaXRpb24oY29udGV4dCk7XG4gICAgICBsaW5lID0gbGluZS50cmFuc2l0aW9uKGNvbnRleHQpO1xuICAgICAgdGV4dCA9IHRleHQudHJhbnNpdGlvbihjb250ZXh0KTtcblxuICAgICAgdGlja0V4aXQgPSB0aWNrRXhpdC50cmFuc2l0aW9uKGNvbnRleHQpXG4gICAgICAgICAgLmF0dHIoXCJvcGFjaXR5XCIsIGVwc2lsb24pXG4gICAgICAgICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gaXNGaW5pdGUoZCA9IHBvc2l0aW9uKGQpKSA/IHRyYW5zZm9ybShkICsgb2Zmc2V0KSA6IHRoaXMuZ2V0QXR0cmlidXRlKFwidHJhbnNmb3JtXCIpOyB9KTtcblxuICAgICAgdGlja0VudGVyXG4gICAgICAgICAgLmF0dHIoXCJvcGFjaXR5XCIsIGVwc2lsb24pXG4gICAgICAgICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgZnVuY3Rpb24oZCkgeyB2YXIgcCA9IHRoaXMucGFyZW50Tm9kZS5fX2F4aXM7IHJldHVybiB0cmFuc2Zvcm0oKHAgJiYgaXNGaW5pdGUocCA9IHAoZCkpID8gcCA6IHBvc2l0aW9uKGQpKSArIG9mZnNldCk7IH0pO1xuICAgIH1cblxuICAgIHRpY2tFeGl0LnJlbW92ZSgpO1xuXG4gICAgcGF0aFxuICAgICAgICAuYXR0cihcImRcIiwgb3JpZW50ID09PSBsZWZ0IHx8IG9yaWVudCA9PT0gcmlnaHRcbiAgICAgICAgICAgID8gKHRpY2tTaXplT3V0ZXIgPyBcIk1cIiArIGsgKiB0aWNrU2l6ZU91dGVyICsgXCIsXCIgKyByYW5nZTAgKyBcIkhcIiArIG9mZnNldCArIFwiVlwiICsgcmFuZ2UxICsgXCJIXCIgKyBrICogdGlja1NpemVPdXRlciA6IFwiTVwiICsgb2Zmc2V0ICsgXCIsXCIgKyByYW5nZTAgKyBcIlZcIiArIHJhbmdlMSlcbiAgICAgICAgICAgIDogKHRpY2tTaXplT3V0ZXIgPyBcIk1cIiArIHJhbmdlMCArIFwiLFwiICsgayAqIHRpY2tTaXplT3V0ZXIgKyBcIlZcIiArIG9mZnNldCArIFwiSFwiICsgcmFuZ2UxICsgXCJWXCIgKyBrICogdGlja1NpemVPdXRlciA6IFwiTVwiICsgcmFuZ2UwICsgXCIsXCIgKyBvZmZzZXQgKyBcIkhcIiArIHJhbmdlMSkpO1xuXG4gICAgdGlja1xuICAgICAgICAuYXR0cihcIm9wYWNpdHlcIiwgMSlcbiAgICAgICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gdHJhbnNmb3JtKHBvc2l0aW9uKGQpICsgb2Zmc2V0KTsgfSk7XG5cbiAgICBsaW5lXG4gICAgICAgIC5hdHRyKHggKyBcIjJcIiwgayAqIHRpY2tTaXplSW5uZXIpO1xuXG4gICAgdGV4dFxuICAgICAgICAuYXR0cih4LCBrICogc3BhY2luZylcbiAgICAgICAgLnRleHQoZm9ybWF0KTtcblxuICAgIHNlbGVjdGlvbi5maWx0ZXIoZW50ZXJpbmcpXG4gICAgICAgIC5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIilcbiAgICAgICAgLmF0dHIoXCJmb250LXNpemVcIiwgMTApXG4gICAgICAgIC5hdHRyKFwiZm9udC1mYW1pbHlcIiwgXCJzYW5zLXNlcmlmXCIpXG4gICAgICAgIC5hdHRyKFwidGV4dC1hbmNob3JcIiwgb3JpZW50ID09PSByaWdodCA/IFwic3RhcnRcIiA6IG9yaWVudCA9PT0gbGVmdCA/IFwiZW5kXCIgOiBcIm1pZGRsZVwiKTtcblxuICAgIHNlbGVjdGlvblxuICAgICAgICAuZWFjaChmdW5jdGlvbigpIHsgdGhpcy5fX2F4aXMgPSBwb3NpdGlvbjsgfSk7XG4gIH1cblxuICBheGlzLnNjYWxlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHNjYWxlID0gXywgYXhpcykgOiBzY2FsZTtcbiAgfTtcblxuICBheGlzLnRpY2tzID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRpY2tBcmd1bWVudHMgPSBBcnJheS5mcm9tKGFyZ3VtZW50cyksIGF4aXM7XG4gIH07XG5cbiAgYXhpcy50aWNrQXJndW1lbnRzID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRpY2tBcmd1bWVudHMgPSBfID09IG51bGwgPyBbXSA6IEFycmF5LmZyb20oXyksIGF4aXMpIDogdGlja0FyZ3VtZW50cy5zbGljZSgpO1xuICB9O1xuXG4gIGF4aXMudGlja1ZhbHVlcyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0aWNrVmFsdWVzID0gXyA9PSBudWxsID8gbnVsbCA6IEFycmF5LmZyb20oXyksIGF4aXMpIDogdGlja1ZhbHVlcyAmJiB0aWNrVmFsdWVzLnNsaWNlKCk7XG4gIH07XG5cbiAgYXhpcy50aWNrRm9ybWF0ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRpY2tGb3JtYXQgPSBfLCBheGlzKSA6IHRpY2tGb3JtYXQ7XG4gIH07XG5cbiAgYXhpcy50aWNrU2l6ZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0aWNrU2l6ZUlubmVyID0gdGlja1NpemVPdXRlciA9ICtfLCBheGlzKSA6IHRpY2tTaXplSW5uZXI7XG4gIH07XG5cbiAgYXhpcy50aWNrU2l6ZUlubmVyID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRpY2tTaXplSW5uZXIgPSArXywgYXhpcykgOiB0aWNrU2l6ZUlubmVyO1xuICB9O1xuXG4gIGF4aXMudGlja1NpemVPdXRlciA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0aWNrU2l6ZU91dGVyID0gK18sIGF4aXMpIDogdGlja1NpemVPdXRlcjtcbiAgfTtcblxuICBheGlzLnRpY2tQYWRkaW5nID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRpY2tQYWRkaW5nID0gK18sIGF4aXMpIDogdGlja1BhZGRpbmc7XG4gIH07XG5cbiAgYXhpcy5vZmZzZXQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAob2Zmc2V0ID0gK18sIGF4aXMpIDogb2Zmc2V0O1xuICB9O1xuXG4gIHJldHVybiBheGlzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXhpc1RvcChzY2FsZSkge1xuICByZXR1cm4gYXhpcyh0b3AsIHNjYWxlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF4aXNSaWdodChzY2FsZSkge1xuICByZXR1cm4gYXhpcyhyaWdodCwgc2NhbGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXhpc0JvdHRvbShzY2FsZSkge1xuICByZXR1cm4gYXhpcyhib3R0b20sIHNjYWxlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF4aXNMZWZ0KHNjYWxlKSB7XG4gIHJldHVybiBheGlzKGxlZnQsIHNjYWxlKTtcbn1cbiIsCiAgICAiZXhwb3J0IHtcbiAgYXhpc1RvcCxcbiAgYXhpc1JpZ2h0LFxuICBheGlzQm90dG9tLFxuICBheGlzTGVmdFxufSBmcm9tIFwiLi9heGlzLmpzXCI7XG4iLAogICAgInZhciBub29wID0ge3ZhbHVlOiAoKSA9PiB7fX07XG5cbmZ1bmN0aW9uIGRpc3BhdGNoKCkge1xuICBmb3IgKHZhciBpID0gMCwgbiA9IGFyZ3VtZW50cy5sZW5ndGgsIF8gPSB7fSwgdDsgaSA8IG47ICsraSkge1xuICAgIGlmICghKHQgPSBhcmd1bWVudHNbaV0gKyBcIlwiKSB8fCAodCBpbiBfKSB8fCAvW1xccy5dLy50ZXN0KHQpKSB0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIHR5cGU6IFwiICsgdCk7XG4gICAgX1t0XSA9IFtdO1xuICB9XG4gIHJldHVybiBuZXcgRGlzcGF0Y2goXyk7XG59XG5cbmZ1bmN0aW9uIERpc3BhdGNoKF8pIHtcbiAgdGhpcy5fID0gXztcbn1cblxuZnVuY3Rpb24gcGFyc2VUeXBlbmFtZXModHlwZW5hbWVzLCB0eXBlcykge1xuICByZXR1cm4gdHlwZW5hbWVzLnRyaW0oKS5zcGxpdCgvXnxcXHMrLykubWFwKGZ1bmN0aW9uKHQpIHtcbiAgICB2YXIgbmFtZSA9IFwiXCIsIGkgPSB0LmluZGV4T2YoXCIuXCIpO1xuICAgIGlmIChpID49IDApIG5hbWUgPSB0LnNsaWNlKGkgKyAxKSwgdCA9IHQuc2xpY2UoMCwgaSk7XG4gICAgaWYgKHQgJiYgIXR5cGVzLmhhc093blByb3BlcnR5KHQpKSB0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIHR5cGU6IFwiICsgdCk7XG4gICAgcmV0dXJuIHt0eXBlOiB0LCBuYW1lOiBuYW1lfTtcbiAgfSk7XG59XG5cbkRpc3BhdGNoLnByb3RvdHlwZSA9IGRpc3BhdGNoLnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IERpc3BhdGNoLFxuICBvbjogZnVuY3Rpb24odHlwZW5hbWUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIF8gPSB0aGlzLl8sXG4gICAgICAgIFQgPSBwYXJzZVR5cGVuYW1lcyh0eXBlbmFtZSArIFwiXCIsIF8pLFxuICAgICAgICB0LFxuICAgICAgICBpID0gLTEsXG4gICAgICAgIG4gPSBULmxlbmd0aDtcblxuICAgIC8vIElmIG5vIGNhbGxiYWNrIHdhcyBzcGVjaWZpZWQsIHJldHVybiB0aGUgY2FsbGJhY2sgb2YgdGhlIGdpdmVuIHR5cGUgYW5kIG5hbWUuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgICB3aGlsZSAoKytpIDwgbikgaWYgKCh0ID0gKHR5cGVuYW1lID0gVFtpXSkudHlwZSkgJiYgKHQgPSBnZXQoX1t0XSwgdHlwZW5hbWUubmFtZSkpKSByZXR1cm4gdDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiBhIHR5cGUgd2FzIHNwZWNpZmllZCwgc2V0IHRoZSBjYWxsYmFjayBmb3IgdGhlIGdpdmVuIHR5cGUgYW5kIG5hbWUuXG4gICAgLy8gT3RoZXJ3aXNlLCBpZiBhIG51bGwgY2FsbGJhY2sgd2FzIHNwZWNpZmllZCwgcmVtb3ZlIGNhbGxiYWNrcyBvZiB0aGUgZ2l2ZW4gbmFtZS5cbiAgICBpZiAoY2FsbGJhY2sgIT0gbnVsbCAmJiB0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBjYWxsYmFjazogXCIgKyBjYWxsYmFjayk7XG4gICAgd2hpbGUgKCsraSA8IG4pIHtcbiAgICAgIGlmICh0ID0gKHR5cGVuYW1lID0gVFtpXSkudHlwZSkgX1t0XSA9IHNldChfW3RdLCB0eXBlbmFtZS5uYW1lLCBjYWxsYmFjayk7XG4gICAgICBlbHNlIGlmIChjYWxsYmFjayA9PSBudWxsKSBmb3IgKHQgaW4gXykgX1t0XSA9IHNldChfW3RdLCB0eXBlbmFtZS5uYW1lLCBudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgY29weTogZnVuY3Rpb24oKSB7XG4gICAgdmFyIGNvcHkgPSB7fSwgXyA9IHRoaXMuXztcbiAgICBmb3IgKHZhciB0IGluIF8pIGNvcHlbdF0gPSBfW3RdLnNsaWNlKCk7XG4gICAgcmV0dXJuIG5ldyBEaXNwYXRjaChjb3B5KTtcbiAgfSxcbiAgY2FsbDogZnVuY3Rpb24odHlwZSwgdGhhdCkge1xuICAgIGlmICgobiA9IGFyZ3VtZW50cy5sZW5ndGggLSAyKSA+IDApIGZvciAodmFyIGFyZ3MgPSBuZXcgQXJyYXkobiksIGkgPSAwLCBuLCB0OyBpIDwgbjsgKytpKSBhcmdzW2ldID0gYXJndW1lbnRzW2kgKyAyXTtcbiAgICBpZiAoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSkgdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIiArIHR5cGUpO1xuICAgIGZvciAodCA9IHRoaXMuX1t0eXBlXSwgaSA9IDAsIG4gPSB0Lmxlbmd0aDsgaSA8IG47ICsraSkgdFtpXS52YWx1ZS5hcHBseSh0aGF0LCBhcmdzKTtcbiAgfSxcbiAgYXBwbHk6IGZ1bmN0aW9uKHR5cGUsIHRoYXQsIGFyZ3MpIHtcbiAgICBpZiAoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSkgdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIiArIHR5cGUpO1xuICAgIGZvciAodmFyIHQgPSB0aGlzLl9bdHlwZV0sIGkgPSAwLCBuID0gdC5sZW5ndGg7IGkgPCBuOyArK2kpIHRbaV0udmFsdWUuYXBwbHkodGhhdCwgYXJncyk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGdldCh0eXBlLCBuYW1lKSB7XG4gIGZvciAodmFyIGkgPSAwLCBuID0gdHlwZS5sZW5ndGgsIGM7IGkgPCBuOyArK2kpIHtcbiAgICBpZiAoKGMgPSB0eXBlW2ldKS5uYW1lID09PSBuYW1lKSB7XG4gICAgICByZXR1cm4gYy52YWx1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0KHR5cGUsIG5hbWUsIGNhbGxiYWNrKSB7XG4gIGZvciAodmFyIGkgPSAwLCBuID0gdHlwZS5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICBpZiAodHlwZVtpXS5uYW1lID09PSBuYW1lKSB7XG4gICAgICB0eXBlW2ldID0gbm9vcCwgdHlwZSA9IHR5cGUuc2xpY2UoMCwgaSkuY29uY2F0KHR5cGUuc2xpY2UoaSArIDEpKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoY2FsbGJhY2sgIT0gbnVsbCkgdHlwZS5wdXNoKHtuYW1lOiBuYW1lLCB2YWx1ZTogY2FsbGJhY2t9KTtcbiAgcmV0dXJuIHR5cGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGRpc3BhdGNoO1xuIiwKICAgICJleHBvcnQge2RlZmF1bHQgYXMgZGlzcGF0Y2h9IGZyb20gXCIuL2Rpc3BhdGNoLmpzXCI7XG4iLAogICAgImV4cG9ydCB2YXIgeGh0bWwgPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBzdmc6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgeGh0bWw6IHhodG1sLFxuICB4bGluazogXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXG4gIHhtbDogXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcbiAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy9cIlxufTtcbiIsCiAgICAiaW1wb3J0IG5hbWVzcGFjZXMgZnJvbSBcIi4vbmFtZXNwYWNlcy5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBwcmVmaXggPSBuYW1lICs9IFwiXCIsIGkgPSBwcmVmaXguaW5kZXhPZihcIjpcIik7XG4gIGlmIChpID49IDAgJiYgKHByZWZpeCA9IG5hbWUuc2xpY2UoMCwgaSkpICE9PSBcInhtbG5zXCIpIG5hbWUgPSBuYW1lLnNsaWNlKGkgKyAxKTtcbiAgcmV0dXJuIG5hbWVzcGFjZXMuaGFzT3duUHJvcGVydHkocHJlZml4KSA/IHtzcGFjZTogbmFtZXNwYWNlc1twcmVmaXhdLCBsb2NhbDogbmFtZX0gOiBuYW1lOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xufVxuIiwKICAgICJpbXBvcnQgbmFtZXNwYWNlIGZyb20gXCIuL25hbWVzcGFjZS5qc1wiO1xuaW1wb3J0IHt4aHRtbH0gZnJvbSBcIi4vbmFtZXNwYWNlcy5qc1wiO1xuXG5mdW5jdGlvbiBjcmVhdG9ySW5oZXJpdChuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgZG9jdW1lbnQgPSB0aGlzLm93bmVyRG9jdW1lbnQsXG4gICAgICAgIHVyaSA9IHRoaXMubmFtZXNwYWNlVVJJO1xuICAgIHJldHVybiB1cmkgPT09IHhodG1sICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkkgPT09IHhodG1sXG4gICAgICAgID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lKVxuICAgICAgICA6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh1cmksIG5hbWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdG9yRml4ZWQoZnVsbG5hbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIGZ1bGxuYW1lID0gbmFtZXNwYWNlKG5hbWUpO1xuICByZXR1cm4gKGZ1bGxuYW1lLmxvY2FsXG4gICAgICA/IGNyZWF0b3JGaXhlZFxuICAgICAgOiBjcmVhdG9ySW5oZXJpdCkoZnVsbG5hbWUpO1xufVxuIiwKICAgICJmdW5jdGlvbiBub25lKCkge31cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc2VsZWN0b3IpIHtcbiAgcmV0dXJuIHNlbGVjdG9yID09IG51bGwgPyBub25lIDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG4gIH07XG59XG4iLAogICAgImltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHNlbGVjdG9yIGZyb20gXCIuLi9zZWxlY3Rvci5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzZWxlY3QpIHtcbiAgaWYgKHR5cGVvZiBzZWxlY3QgIT09IFwiZnVuY3Rpb25cIikgc2VsZWN0ID0gc2VsZWN0b3Ioc2VsZWN0KTtcblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIG0gPSBncm91cHMubGVuZ3RoLCBzdWJncm91cHMgPSBuZXcgQXJyYXkobSksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIHN1Ymdyb3VwID0gc3ViZ3JvdXBzW2pdID0gbmV3IEFycmF5KG4pLCBub2RlLCBzdWJub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKChub2RlID0gZ3JvdXBbaV0pICYmIChzdWJub2RlID0gc2VsZWN0LmNhbGwobm9kZSwgbm9kZS5fX2RhdGFfXywgaSwgZ3JvdXApKSkge1xuICAgICAgICBpZiAoXCJfX2RhdGFfX1wiIGluIG5vZGUpIHN1Ym5vZGUuX19kYXRhX18gPSBub2RlLl9fZGF0YV9fO1xuICAgICAgICBzdWJncm91cFtpXSA9IHN1Ym5vZGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBTZWxlY3Rpb24oc3ViZ3JvdXBzLCB0aGlzLl9wYXJlbnRzKTtcbn1cbiIsCiAgICAiLy8gR2l2ZW4gc29tZXRoaW5nIGFycmF5IGxpa2UgKG9yIG51bGwpLCByZXR1cm5zIHNvbWV0aGluZyB0aGF0IGlzIHN0cmljdGx5IGFuXG4vLyBhcnJheS4gVGhpcyBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IGFycmF5LWxpa2Ugb2JqZWN0cyBwYXNzZWQgdG8gZDMuc2VsZWN0QWxsXG4vLyBvciBzZWxlY3Rpb24uc2VsZWN0QWxsIGFyZSBjb252ZXJ0ZWQgaW50byBwcm9wZXIgYXJyYXlzIHdoZW4gY3JlYXRpbmcgYVxuLy8gc2VsZWN0aW9uOyB3ZSBkb27igJl0IGV2ZXIgd2FudCB0byBjcmVhdGUgYSBzZWxlY3Rpb24gYmFja2VkIGJ5IGEgbGl2ZVxuLy8gSFRNTENvbGxlY3Rpb24gb3IgTm9kZUxpc3QuIEhvd2V2ZXIsIG5vdGUgdGhhdCBzZWxlY3Rpb24uc2VsZWN0QWxsIHdpbGwgdXNlIGFcbi8vIHN0YXRpYyBOb2RlTGlzdCBhcyBhIGdyb3VwLCBzaW5jZSBpdCBzYWZlbHkgZGVyaXZlZCBmcm9tIHF1ZXJ5U2VsZWN0b3JBbGwuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhcnJheSh4KSB7XG4gIHJldHVybiB4ID09IG51bGwgPyBbXSA6IEFycmF5LmlzQXJyYXkoeCkgPyB4IDogQXJyYXkuZnJvbSh4KTtcbn1cbiIsCiAgICAiZnVuY3Rpb24gZW1wdHkoKSB7XG4gIHJldHVybiBbXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc2VsZWN0b3IpIHtcbiAgcmV0dXJuIHNlbGVjdG9yID09IG51bGwgPyBlbXB0eSA6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICB9O1xufVxuIiwKICAgICJpbXBvcnQge1NlbGVjdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcbmltcG9ydCBhcnJheSBmcm9tIFwiLi4vYXJyYXkuanNcIjtcbmltcG9ydCBzZWxlY3RvckFsbCBmcm9tIFwiLi4vc2VsZWN0b3JBbGwuanNcIjtcblxuZnVuY3Rpb24gYXJyYXlBbGwoc2VsZWN0KSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gYXJyYXkoc2VsZWN0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzZWxlY3QpIHtcbiAgaWYgKHR5cGVvZiBzZWxlY3QgPT09IFwiZnVuY3Rpb25cIikgc2VsZWN0ID0gYXJyYXlBbGwoc2VsZWN0KTtcbiAgZWxzZSBzZWxlY3QgPSBzZWxlY3RvckFsbChzZWxlY3QpO1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIHN1Ymdyb3VwcyA9IFtdLCBwYXJlbnRzID0gW10sIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSB7XG4gICAgICAgIHN1Ymdyb3Vwcy5wdXNoKHNlbGVjdC5jYWxsKG5vZGUsIG5vZGUuX19kYXRhX18sIGksIGdyb3VwKSk7XG4gICAgICAgIHBhcmVudHMucHVzaChub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFNlbGVjdGlvbihzdWJncm91cHMsIHBhcmVudHMpO1xufVxuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzZWxlY3Rvcikge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubWF0Y2hlcyhzZWxlY3Rvcik7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGlsZE1hdGNoZXIoc2VsZWN0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5tYXRjaGVzKHNlbGVjdG9yKTtcbiAgfTtcbn1cblxuIiwKICAgICJpbXBvcnQge2NoaWxkTWF0Y2hlcn0gZnJvbSBcIi4uL21hdGNoZXIuanNcIjtcblxudmFyIGZpbmQgPSBBcnJheS5wcm90b3R5cGUuZmluZDtcblxuZnVuY3Rpb24gY2hpbGRGaW5kKG1hdGNoKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZmluZC5jYWxsKHRoaXMuY2hpbGRyZW4sIG1hdGNoKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2hpbGRGaXJzdCgpIHtcbiAgcmV0dXJuIHRoaXMuZmlyc3RFbGVtZW50Q2hpbGQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG1hdGNoKSB7XG4gIHJldHVybiB0aGlzLnNlbGVjdChtYXRjaCA9PSBudWxsID8gY2hpbGRGaXJzdFxuICAgICAgOiBjaGlsZEZpbmQodHlwZW9mIG1hdGNoID09PSBcImZ1bmN0aW9uXCIgPyBtYXRjaCA6IGNoaWxkTWF0Y2hlcihtYXRjaCkpKTtcbn1cbiIsCiAgICAiaW1wb3J0IHtjaGlsZE1hdGNoZXJ9IGZyb20gXCIuLi9tYXRjaGVyLmpzXCI7XG5cbnZhciBmaWx0ZXIgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyO1xuXG5mdW5jdGlvbiBjaGlsZHJlbigpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbik7XG59XG5cbmZ1bmN0aW9uIGNoaWxkcmVuRmlsdGVyKG1hdGNoKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZmlsdGVyLmNhbGwodGhpcy5jaGlsZHJlbiwgbWF0Y2gpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihtYXRjaCkge1xuICByZXR1cm4gdGhpcy5zZWxlY3RBbGwobWF0Y2ggPT0gbnVsbCA/IGNoaWxkcmVuXG4gICAgICA6IGNoaWxkcmVuRmlsdGVyKHR5cGVvZiBtYXRjaCA9PT0gXCJmdW5jdGlvblwiID8gbWF0Y2ggOiBjaGlsZE1hdGNoZXIobWF0Y2gpKSk7XG59XG4iLAogICAgImltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IG1hdGNoZXIgZnJvbSBcIi4uL21hdGNoZXIuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obWF0Y2gpIHtcbiAgaWYgKHR5cGVvZiBtYXRjaCAhPT0gXCJmdW5jdGlvblwiKSBtYXRjaCA9IG1hdGNoZXIobWF0Y2gpO1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIHN1Ymdyb3VwcyA9IG5ldyBBcnJheShtKSwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgbiA9IGdyb3VwLmxlbmd0aCwgc3ViZ3JvdXAgPSBzdWJncm91cHNbal0gPSBbXSwgbm9kZSwgaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmICgobm9kZSA9IGdyb3VwW2ldKSAmJiBtYXRjaC5jYWxsKG5vZGUsIG5vZGUuX19kYXRhX18sIGksIGdyb3VwKSkge1xuICAgICAgICBzdWJncm91cC5wdXNoKG5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgU2VsZWN0aW9uKHN1Ymdyb3VwcywgdGhpcy5fcGFyZW50cyk7XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHVwZGF0ZSkge1xuICByZXR1cm4gbmV3IEFycmF5KHVwZGF0ZS5sZW5ndGgpO1xufVxuIiwKICAgICJpbXBvcnQgc3BhcnNlIGZyb20gXCIuL3NwYXJzZS5qc1wiO1xuaW1wb3J0IHtTZWxlY3Rpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IFNlbGVjdGlvbih0aGlzLl9lbnRlciB8fCB0aGlzLl9ncm91cHMubWFwKHNwYXJzZSksIHRoaXMuX3BhcmVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRW50ZXJOb2RlKHBhcmVudCwgZGF0dW0pIHtcbiAgdGhpcy5vd25lckRvY3VtZW50ID0gcGFyZW50Lm93bmVyRG9jdW1lbnQ7XG4gIHRoaXMubmFtZXNwYWNlVVJJID0gcGFyZW50Lm5hbWVzcGFjZVVSSTtcbiAgdGhpcy5fbmV4dCA9IG51bGw7XG4gIHRoaXMuX3BhcmVudCA9IHBhcmVudDtcbiAgdGhpcy5fX2RhdGFfXyA9IGRhdHVtO1xufVxuXG5FbnRlck5vZGUucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogRW50ZXJOb2RlLFxuICBhcHBlbmRDaGlsZDogZnVuY3Rpb24oY2hpbGQpIHsgcmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoY2hpbGQsIHRoaXMuX25leHQpOyB9LFxuICBpbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKGNoaWxkLCBuZXh0KSB7IHJldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKGNoaWxkLCBuZXh0KTsgfSxcbiAgcXVlcnlTZWxlY3RvcjogZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsgfSxcbiAgcXVlcnlTZWxlY3RvckFsbDogZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTsgfVxufTtcbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHg7XG4gIH07XG59XG4iLAogICAgImltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHtFbnRlck5vZGV9IGZyb20gXCIuL2VudGVyLmpzXCI7XG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcIi4uL2NvbnN0YW50LmpzXCI7XG5cbmZ1bmN0aW9uIGJpbmRJbmRleChwYXJlbnQsIGdyb3VwLCBlbnRlciwgdXBkYXRlLCBleGl0LCBkYXRhKSB7XG4gIHZhciBpID0gMCxcbiAgICAgIG5vZGUsXG4gICAgICBncm91cExlbmd0aCA9IGdyb3VwLmxlbmd0aCxcbiAgICAgIGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aDtcblxuICAvLyBQdXQgYW55IG5vbi1udWxsIG5vZGVzIHRoYXQgZml0IGludG8gdXBkYXRlLlxuICAvLyBQdXQgYW55IG51bGwgbm9kZXMgaW50byBlbnRlci5cbiAgLy8gUHV0IGFueSByZW1haW5pbmcgZGF0YSBpbnRvIGVudGVyLlxuICBmb3IgKDsgaSA8IGRhdGFMZW5ndGg7ICsraSkge1xuICAgIGlmIChub2RlID0gZ3JvdXBbaV0pIHtcbiAgICAgIG5vZGUuX19kYXRhX18gPSBkYXRhW2ldO1xuICAgICAgdXBkYXRlW2ldID0gbm9kZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW50ZXJbaV0gPSBuZXcgRW50ZXJOb2RlKHBhcmVudCwgZGF0YVtpXSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHV0IGFueSBub24tbnVsbCBub2RlcyB0aGF0IGRvbuKAmXQgZml0IGludG8gZXhpdC5cbiAgZm9yICg7IGkgPCBncm91cExlbmd0aDsgKytpKSB7XG4gICAgaWYgKG5vZGUgPSBncm91cFtpXSkge1xuICAgICAgZXhpdFtpXSA9IG5vZGU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGJpbmRLZXkocGFyZW50LCBncm91cCwgZW50ZXIsIHVwZGF0ZSwgZXhpdCwgZGF0YSwga2V5KSB7XG4gIHZhciBpLFxuICAgICAgbm9kZSxcbiAgICAgIG5vZGVCeUtleVZhbHVlID0gbmV3IE1hcCxcbiAgICAgIGdyb3VwTGVuZ3RoID0gZ3JvdXAubGVuZ3RoLFxuICAgICAgZGF0YUxlbmd0aCA9IGRhdGEubGVuZ3RoLFxuICAgICAga2V5VmFsdWVzID0gbmV3IEFycmF5KGdyb3VwTGVuZ3RoKSxcbiAgICAgIGtleVZhbHVlO1xuXG4gIC8vIENvbXB1dGUgdGhlIGtleSBmb3IgZWFjaCBub2RlLlxuICAvLyBJZiBtdWx0aXBsZSBub2RlcyBoYXZlIHRoZSBzYW1lIGtleSwgdGhlIGR1cGxpY2F0ZXMgYXJlIGFkZGVkIHRvIGV4aXQuXG4gIGZvciAoaSA9IDA7IGkgPCBncm91cExlbmd0aDsgKytpKSB7XG4gICAgaWYgKG5vZGUgPSBncm91cFtpXSkge1xuICAgICAga2V5VmFsdWVzW2ldID0ga2V5VmFsdWUgPSBrZXkuY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBpLCBncm91cCkgKyBcIlwiO1xuICAgICAgaWYgKG5vZGVCeUtleVZhbHVlLmhhcyhrZXlWYWx1ZSkpIHtcbiAgICAgICAgZXhpdFtpXSA9IG5vZGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlQnlLZXlWYWx1ZS5zZXQoa2V5VmFsdWUsIG5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbXB1dGUgdGhlIGtleSBmb3IgZWFjaCBkYXR1bS5cbiAgLy8gSWYgdGhlcmUgYSBub2RlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleSwgam9pbiBhbmQgYWRkIGl0IHRvIHVwZGF0ZS5cbiAgLy8gSWYgdGhlcmUgaXMgbm90IChvciB0aGUga2V5IGlzIGEgZHVwbGljYXRlKSwgYWRkIGl0IHRvIGVudGVyLlxuICBmb3IgKGkgPSAwOyBpIDwgZGF0YUxlbmd0aDsgKytpKSB7XG4gICAga2V5VmFsdWUgPSBrZXkuY2FsbChwYXJlbnQsIGRhdGFbaV0sIGksIGRhdGEpICsgXCJcIjtcbiAgICBpZiAobm9kZSA9IG5vZGVCeUtleVZhbHVlLmdldChrZXlWYWx1ZSkpIHtcbiAgICAgIHVwZGF0ZVtpXSA9IG5vZGU7XG4gICAgICBub2RlLl9fZGF0YV9fID0gZGF0YVtpXTtcbiAgICAgIG5vZGVCeUtleVZhbHVlLmRlbGV0ZShrZXlWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVudGVyW2ldID0gbmV3IEVudGVyTm9kZShwYXJlbnQsIGRhdGFbaV0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFkZCBhbnkgcmVtYWluaW5nIG5vZGVzIHRoYXQgd2VyZSBub3QgYm91bmQgdG8gZGF0YSB0byBleGl0LlxuICBmb3IgKGkgPSAwOyBpIDwgZ3JvdXBMZW5ndGg7ICsraSkge1xuICAgIGlmICgobm9kZSA9IGdyb3VwW2ldKSAmJiAobm9kZUJ5S2V5VmFsdWUuZ2V0KGtleVZhbHVlc1tpXSkgPT09IG5vZGUpKSB7XG4gICAgICBleGl0W2ldID0gbm9kZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZGF0dW0obm9kZSkge1xuICByZXR1cm4gbm9kZS5fX2RhdGFfXztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHJldHVybiBBcnJheS5mcm9tKHRoaXMsIGRhdHVtKTtcblxuICB2YXIgYmluZCA9IGtleSA/IGJpbmRLZXkgOiBiaW5kSW5kZXgsXG4gICAgICBwYXJlbnRzID0gdGhpcy5fcGFyZW50cyxcbiAgICAgIGdyb3VwcyA9IHRoaXMuX2dyb3VwcztcblxuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHZhbHVlID0gY29uc3RhbnQodmFsdWUpO1xuXG4gIGZvciAodmFyIG0gPSBncm91cHMubGVuZ3RoLCB1cGRhdGUgPSBuZXcgQXJyYXkobSksIGVudGVyID0gbmV3IEFycmF5KG0pLCBleGl0ID0gbmV3IEFycmF5KG0pLCBqID0gMDsgaiA8IG07ICsraikge1xuICAgIHZhciBwYXJlbnQgPSBwYXJlbnRzW2pdLFxuICAgICAgICBncm91cCA9IGdyb3Vwc1tqXSxcbiAgICAgICAgZ3JvdXBMZW5ndGggPSBncm91cC5sZW5ndGgsXG4gICAgICAgIGRhdGEgPSBhcnJheWxpa2UodmFsdWUuY2FsbChwYXJlbnQsIHBhcmVudCAmJiBwYXJlbnQuX19kYXRhX18sIGosIHBhcmVudHMpKSxcbiAgICAgICAgZGF0YUxlbmd0aCA9IGRhdGEubGVuZ3RoLFxuICAgICAgICBlbnRlckdyb3VwID0gZW50ZXJbal0gPSBuZXcgQXJyYXkoZGF0YUxlbmd0aCksXG4gICAgICAgIHVwZGF0ZUdyb3VwID0gdXBkYXRlW2pdID0gbmV3IEFycmF5KGRhdGFMZW5ndGgpLFxuICAgICAgICBleGl0R3JvdXAgPSBleGl0W2pdID0gbmV3IEFycmF5KGdyb3VwTGVuZ3RoKTtcblxuICAgIGJpbmQocGFyZW50LCBncm91cCwgZW50ZXJHcm91cCwgdXBkYXRlR3JvdXAsIGV4aXRHcm91cCwgZGF0YSwga2V5KTtcblxuICAgIC8vIE5vdyBjb25uZWN0IHRoZSBlbnRlciBub2RlcyB0byB0aGVpciBmb2xsb3dpbmcgdXBkYXRlIG5vZGUsIHN1Y2ggdGhhdFxuICAgIC8vIGFwcGVuZENoaWxkIGNhbiBpbnNlcnQgdGhlIG1hdGVyaWFsaXplZCBlbnRlciBub2RlIGJlZm9yZSB0aGlzIG5vZGUsXG4gICAgLy8gcmF0aGVyIHRoYW4gYXQgdGhlIGVuZCBvZiB0aGUgcGFyZW50IG5vZGUuXG4gICAgZm9yICh2YXIgaTAgPSAwLCBpMSA9IDAsIHByZXZpb3VzLCBuZXh0OyBpMCA8IGRhdGFMZW5ndGg7ICsraTApIHtcbiAgICAgIGlmIChwcmV2aW91cyA9IGVudGVyR3JvdXBbaTBdKSB7XG4gICAgICAgIGlmIChpMCA+PSBpMSkgaTEgPSBpMCArIDE7XG4gICAgICAgIHdoaWxlICghKG5leHQgPSB1cGRhdGVHcm91cFtpMV0pICYmICsraTEgPCBkYXRhTGVuZ3RoKTtcbiAgICAgICAgcHJldmlvdXMuX25leHQgPSBuZXh0IHx8IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlID0gbmV3IFNlbGVjdGlvbih1cGRhdGUsIHBhcmVudHMpO1xuICB1cGRhdGUuX2VudGVyID0gZW50ZXI7XG4gIHVwZGF0ZS5fZXhpdCA9IGV4aXQ7XG4gIHJldHVybiB1cGRhdGU7XG59XG5cbi8vIEdpdmVuIHNvbWUgZGF0YSwgdGhpcyByZXR1cm5zIGFuIGFycmF5LWxpa2UgdmlldyBvZiBpdDogYW4gb2JqZWN0IHRoYXRcbi8vIGV4cG9zZXMgYSBsZW5ndGggcHJvcGVydHkgYW5kIGFsbG93cyBudW1lcmljIGluZGV4aW5nLiBOb3RlIHRoYXQgdW5saWtlXG4vLyBzZWxlY3RBbGwsIHRoaXMgaXNu4oCZdCB3b3JyaWVkIGFib3V0IOKAnGxpdmXigJ0gY29sbGVjdGlvbnMgYmVjYXVzZSB0aGUgcmVzdWx0aW5nXG4vLyBhcnJheSB3aWxsIG9ubHkgYmUgdXNlZCBicmllZmx5IHdoaWxlIGRhdGEgaXMgYmVpbmcgYm91bmQuIChJdCBpcyBwb3NzaWJsZSB0b1xuLy8gY2F1c2UgdGhlIGRhdGEgdG8gY2hhbmdlIHdoaWxlIGl0ZXJhdGluZyBieSB1c2luZyBhIGtleSBmdW5jdGlvbiwgYnV0IHBsZWFzZVxuLy8gZG9u4oCZdDsgd2XigJlkIHJhdGhlciBhdm9pZCBhIGdyYXR1aXRvdXMgY29weS4pXG5mdW5jdGlvbiBhcnJheWxpa2UoZGF0YSkge1xuICByZXR1cm4gdHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIgJiYgXCJsZW5ndGhcIiBpbiBkYXRhXG4gICAgPyBkYXRhIC8vIEFycmF5LCBUeXBlZEFycmF5LCBOb2RlTGlzdCwgYXJyYXktbGlrZVxuICAgIDogQXJyYXkuZnJvbShkYXRhKTsgLy8gTWFwLCBTZXQsIGl0ZXJhYmxlLCBzdHJpbmcsIG9yIGFueXRoaW5nIGVsc2Vcbn1cbiIsCiAgICAiaW1wb3J0IHNwYXJzZSBmcm9tIFwiLi9zcGFyc2UuanNcIjtcbmltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBTZWxlY3Rpb24odGhpcy5fZXhpdCB8fCB0aGlzLl9ncm91cHMubWFwKHNwYXJzZSksIHRoaXMuX3BhcmVudHMpO1xufVxuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihvbmVudGVyLCBvbnVwZGF0ZSwgb25leGl0KSB7XG4gIHZhciBlbnRlciA9IHRoaXMuZW50ZXIoKSwgdXBkYXRlID0gdGhpcywgZXhpdCA9IHRoaXMuZXhpdCgpO1xuICBpZiAodHlwZW9mIG9uZW50ZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGVudGVyID0gb25lbnRlcihlbnRlcik7XG4gICAgaWYgKGVudGVyKSBlbnRlciA9IGVudGVyLnNlbGVjdGlvbigpO1xuICB9IGVsc2Uge1xuICAgIGVudGVyID0gZW50ZXIuYXBwZW5kKG9uZW50ZXIgKyBcIlwiKTtcbiAgfVxuICBpZiAob251cGRhdGUgIT0gbnVsbCkge1xuICAgIHVwZGF0ZSA9IG9udXBkYXRlKHVwZGF0ZSk7XG4gICAgaWYgKHVwZGF0ZSkgdXBkYXRlID0gdXBkYXRlLnNlbGVjdGlvbigpO1xuICB9XG4gIGlmIChvbmV4aXQgPT0gbnVsbCkgZXhpdC5yZW1vdmUoKTsgZWxzZSBvbmV4aXQoZXhpdCk7XG4gIHJldHVybiBlbnRlciAmJiB1cGRhdGUgPyBlbnRlci5tZXJnZSh1cGRhdGUpLm9yZGVyKCkgOiB1cGRhdGU7XG59XG4iLAogICAgImltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjb250ZXh0KSB7XG4gIHZhciBzZWxlY3Rpb24gPSBjb250ZXh0LnNlbGVjdGlvbiA/IGNvbnRleHQuc2VsZWN0aW9uKCkgOiBjb250ZXh0O1xuXG4gIGZvciAodmFyIGdyb3VwczAgPSB0aGlzLl9ncm91cHMsIGdyb3VwczEgPSBzZWxlY3Rpb24uX2dyb3VwcywgbTAgPSBncm91cHMwLmxlbmd0aCwgbTEgPSBncm91cHMxLmxlbmd0aCwgbSA9IE1hdGgubWluKG0wLCBtMSksIG1lcmdlcyA9IG5ldyBBcnJheShtMCksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAwID0gZ3JvdXBzMFtqXSwgZ3JvdXAxID0gZ3JvdXBzMVtqXSwgbiA9IGdyb3VwMC5sZW5ndGgsIG1lcmdlID0gbWVyZ2VzW2pdID0gbmV3IEFycmF5KG4pLCBub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG5vZGUgPSBncm91cDBbaV0gfHwgZ3JvdXAxW2ldKSB7XG4gICAgICAgIG1lcmdlW2ldID0gbm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3IgKDsgaiA8IG0wOyArK2opIHtcbiAgICBtZXJnZXNbal0gPSBncm91cHMwW2pdO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBTZWxlY3Rpb24obWVyZ2VzLCB0aGlzLl9wYXJlbnRzKTtcbn1cbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG5cbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBqID0gLTEsIG0gPSBncm91cHMubGVuZ3RoOyArK2ogPCBtOykge1xuICAgIGZvciAodmFyIGdyb3VwID0gZ3JvdXBzW2pdLCBpID0gZ3JvdXAubGVuZ3RoIC0gMSwgbmV4dCA9IGdyb3VwW2ldLCBub2RlOyAtLWkgPj0gMDspIHtcbiAgICAgIGlmIChub2RlID0gZ3JvdXBbaV0pIHtcbiAgICAgICAgaWYgKG5leHQgJiYgbm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuZXh0KSBeIDQpIG5leHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZSwgbmV4dCk7XG4gICAgICAgIG5leHQgPSBub2RlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufVxuIiwKICAgICJpbXBvcnQge1NlbGVjdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY29tcGFyZSkge1xuICBpZiAoIWNvbXBhcmUpIGNvbXBhcmUgPSBhc2NlbmRpbmc7XG5cbiAgZnVuY3Rpb24gY29tcGFyZU5vZGUoYSwgYikge1xuICAgIHJldHVybiBhICYmIGIgPyBjb21wYXJlKGEuX19kYXRhX18sIGIuX19kYXRhX18pIDogIWEgLSAhYjtcbiAgfVxuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIHNvcnRncm91cHMgPSBuZXcgQXJyYXkobSksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIHNvcnRncm91cCA9IHNvcnRncm91cHNbal0gPSBuZXcgQXJyYXkobiksIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSB7XG4gICAgICAgIHNvcnRncm91cFtpXSA9IG5vZGU7XG4gICAgICB9XG4gICAgfVxuICAgIHNvcnRncm91cC5zb3J0KGNvbXBhcmVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgU2VsZWN0aW9uKHNvcnRncm91cHMsIHRoaXMuX3BhcmVudHMpLm9yZGVyKCk7XG59XG5cbmZ1bmN0aW9uIGFzY2VuZGluZyhhLCBiKSB7XG4gIHJldHVybiBhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogYSA+PSBiID8gMCA6IE5hTjtcbn1cbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50c1swXTtcbiAgYXJndW1lbnRzWzBdID0gdGhpcztcbiAgY2FsbGJhY2suYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgcmV0dXJuIHRoaXM7XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzKTtcbn1cbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG5cbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBqID0gMCwgbSA9IGdyb3Vwcy5sZW5ndGg7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgaSA9IDAsIG4gPSBncm91cC5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICAgIHZhciBub2RlID0gZ3JvdXBbaV07XG4gICAgICBpZiAobm9kZSkgcmV0dXJuIG5vZGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICBsZXQgc2l6ZSA9IDA7XG4gIGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzKSArK3NpemU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgcmV0dXJuIHNpemU7XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gIXRoaXMubm9kZSgpO1xufVxuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjYWxsYmFjaykge1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgaiA9IDAsIG0gPSBncm91cHMubGVuZ3RoOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIGkgPSAwLCBuID0gZ3JvdXAubGVuZ3RoLCBub2RlOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSBjYWxsYmFjay5jYWxsKG5vZGUsIG5vZGUuX19kYXRhX18sIGksIGdyb3VwKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cbiIsCiAgICAiaW1wb3J0IG5hbWVzcGFjZSBmcm9tIFwiLi4vbmFtZXNwYWNlLmpzXCI7XG5cbmZ1bmN0aW9uIGF0dHJSZW1vdmUobmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJSZW1vdmVOUyhmdWxsbmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyQ29uc3RhbnQobmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0ckNvbnN0YW50TlMoZnVsbG5hbWUsIHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCwgdmFsdWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyRnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAodiA9PSBudWxsKSB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICBlbHNlIHRoaXMuc2V0QXR0cmlidXRlKG5hbWUsIHYpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyRnVuY3Rpb25OUyhmdWxsbmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAodiA9PSBudWxsKSB0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCk7XG4gICAgZWxzZSB0aGlzLnNldEF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCwgdik7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7XG4gIHZhciBmdWxsbmFtZSA9IG5hbWVzcGFjZShuYW1lKTtcblxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICB2YXIgbm9kZSA9IHRoaXMubm9kZSgpO1xuICAgIHJldHVybiBmdWxsbmFtZS5sb2NhbFxuICAgICAgICA/IG5vZGUuZ2V0QXR0cmlidXRlTlMoZnVsbG5hbWUuc3BhY2UsIGZ1bGxuYW1lLmxvY2FsKVxuICAgICAgICA6IG5vZGUuZ2V0QXR0cmlidXRlKGZ1bGxuYW1lKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLmVhY2goKHZhbHVlID09IG51bGxcbiAgICAgID8gKGZ1bGxuYW1lLmxvY2FsID8gYXR0clJlbW92ZU5TIDogYXR0clJlbW92ZSkgOiAodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gKGZ1bGxuYW1lLmxvY2FsID8gYXR0ckZ1bmN0aW9uTlMgOiBhdHRyRnVuY3Rpb24pXG4gICAgICA6IChmdWxsbmFtZS5sb2NhbCA/IGF0dHJDb25zdGFudE5TIDogYXR0ckNvbnN0YW50KSkpKGZ1bGxuYW1lLCB2YWx1ZSkpO1xufVxuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihub2RlKSB7XG4gIHJldHVybiAobm9kZS5vd25lckRvY3VtZW50ICYmIG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldykgLy8gbm9kZSBpcyBhIE5vZGVcbiAgICAgIHx8IChub2RlLmRvY3VtZW50ICYmIG5vZGUpIC8vIG5vZGUgaXMgYSBXaW5kb3dcbiAgICAgIHx8IG5vZGUuZGVmYXVsdFZpZXc7IC8vIG5vZGUgaXMgYSBEb2N1bWVudFxufVxuIiwKICAgICJpbXBvcnQgZGVmYXVsdFZpZXcgZnJvbSBcIi4uL3dpbmRvdy5qc1wiO1xuXG5mdW5jdGlvbiBzdHlsZVJlbW92ZShuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG5hbWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZUNvbnN0YW50KG5hbWUsIHZhbHVlLCBwcmlvcml0eSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShuYW1lLCB2YWx1ZSwgcHJpb3JpdHkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZUZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBwcmlvcml0eSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHYgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGlmICh2ID09IG51bGwpIHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkobmFtZSk7XG4gICAgZWxzZSB0aGlzLnN0eWxlLnNldFByb3BlcnR5KG5hbWUsIHYsIHByaW9yaXR5KTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUsIHByaW9yaXR5KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMVxuICAgICAgPyB0aGlzLmVhY2goKHZhbHVlID09IG51bGxcbiAgICAgICAgICAgID8gc3R5bGVSZW1vdmUgOiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgPyBzdHlsZUZ1bmN0aW9uXG4gICAgICAgICAgICA6IHN0eWxlQ29uc3RhbnQpKG5hbWUsIHZhbHVlLCBwcmlvcml0eSA9PSBudWxsID8gXCJcIiA6IHByaW9yaXR5KSlcbiAgICAgIDogc3R5bGVWYWx1ZSh0aGlzLm5vZGUoKSwgbmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHlsZVZhbHVlKG5vZGUsIG5hbWUpIHtcbiAgcmV0dXJuIG5vZGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKVxuICAgICAgfHwgZGVmYXVsdFZpZXcobm9kZSkuZ2V0Q29tcHV0ZWRTdHlsZShub2RlLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKG5hbWUpO1xufVxuIiwKICAgICJmdW5jdGlvbiBwcm9wZXJ0eVJlbW92ZShuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBkZWxldGUgdGhpc1tuYW1lXTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcHJvcGVydHlDb25zdGFudChuYW1lLCB2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpc1tuYW1lXSA9IHZhbHVlO1xuICB9O1xufVxuXG5mdW5jdGlvbiBwcm9wZXJ0eUZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgdiA9IHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgaWYgKHYgPT0gbnVsbCkgZGVsZXRlIHRoaXNbbmFtZV07XG4gICAgZWxzZSB0aGlzW25hbWVdID0gdjtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAxXG4gICAgICA/IHRoaXMuZWFjaCgodmFsdWUgPT0gbnVsbFxuICAgICAgICAgID8gcHJvcGVydHlSZW1vdmUgOiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8gcHJvcGVydHlGdW5jdGlvblxuICAgICAgICAgIDogcHJvcGVydHlDb25zdGFudCkobmFtZSwgdmFsdWUpKVxuICAgICAgOiB0aGlzLm5vZGUoKVtuYW1lXTtcbn1cbiIsCiAgICAiZnVuY3Rpb24gY2xhc3NBcnJheShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy50cmltKCkuc3BsaXQoL158XFxzKy8pO1xufVxuXG5mdW5jdGlvbiBjbGFzc0xpc3Qobm9kZSkge1xuICByZXR1cm4gbm9kZS5jbGFzc0xpc3QgfHwgbmV3IENsYXNzTGlzdChub2RlKTtcbn1cblxuZnVuY3Rpb24gQ2xhc3NMaXN0KG5vZGUpIHtcbiAgdGhpcy5fbm9kZSA9IG5vZGU7XG4gIHRoaXMuX25hbWVzID0gY2xhc3NBcnJheShub2RlLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpIHx8IFwiXCIpO1xufVxuXG5DbGFzc0xpc3QucHJvdG90eXBlID0ge1xuICBhZGQ6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICB2YXIgaSA9IHRoaXMuX25hbWVzLmluZGV4T2YobmFtZSk7XG4gICAgaWYgKGkgPCAwKSB7XG4gICAgICB0aGlzLl9uYW1lcy5wdXNoKG5hbWUpO1xuICAgICAgdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCB0aGlzLl9uYW1lcy5qb2luKFwiIFwiKSk7XG4gICAgfVxuICB9LFxuICByZW1vdmU6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICB2YXIgaSA9IHRoaXMuX25hbWVzLmluZGV4T2YobmFtZSk7XG4gICAgaWYgKGkgPj0gMCkge1xuICAgICAgdGhpcy5fbmFtZXMuc3BsaWNlKGksIDEpO1xuICAgICAgdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCB0aGlzLl9uYW1lcy5qb2luKFwiIFwiKSk7XG4gICAgfVxuICB9LFxuICBjb250YWluczogZnVuY3Rpb24obmFtZSkge1xuICAgIHJldHVybiB0aGlzLl9uYW1lcy5pbmRleE9mKG5hbWUpID49IDA7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGNsYXNzZWRBZGQobm9kZSwgbmFtZXMpIHtcbiAgdmFyIGxpc3QgPSBjbGFzc0xpc3Qobm9kZSksIGkgPSAtMSwgbiA9IG5hbWVzLmxlbmd0aDtcbiAgd2hpbGUgKCsraSA8IG4pIGxpc3QuYWRkKG5hbWVzW2ldKTtcbn1cblxuZnVuY3Rpb24gY2xhc3NlZFJlbW92ZShub2RlLCBuYW1lcykge1xuICB2YXIgbGlzdCA9IGNsYXNzTGlzdChub2RlKSwgaSA9IC0xLCBuID0gbmFtZXMubGVuZ3RoO1xuICB3aGlsZSAoKytpIDwgbikgbGlzdC5yZW1vdmUobmFtZXNbaV0pO1xufVxuXG5mdW5jdGlvbiBjbGFzc2VkVHJ1ZShuYW1lcykge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgY2xhc3NlZEFkZCh0aGlzLCBuYW1lcyk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNsYXNzZWRGYWxzZShuYW1lcykge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgY2xhc3NlZFJlbW92ZSh0aGlzLCBuYW1lcyk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNsYXNzZWRGdW5jdGlvbihuYW1lcywgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICh2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpID8gY2xhc3NlZEFkZCA6IGNsYXNzZWRSZW1vdmUpKHRoaXMsIG5hbWVzKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgdmFyIG5hbWVzID0gY2xhc3NBcnJheShuYW1lICsgXCJcIik7XG5cbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgdmFyIGxpc3QgPSBjbGFzc0xpc3QodGhpcy5ub2RlKCkpLCBpID0gLTEsIG4gPSBuYW1lcy5sZW5ndGg7XG4gICAgd2hpbGUgKCsraSA8IG4pIGlmICghbGlzdC5jb250YWlucyhuYW1lc1tpXSkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLmVhY2goKHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICA/IGNsYXNzZWRGdW5jdGlvbiA6IHZhbHVlXG4gICAgICA/IGNsYXNzZWRUcnVlXG4gICAgICA6IGNsYXNzZWRGYWxzZSkobmFtZXMsIHZhbHVlKSk7XG59XG4iLAogICAgImZ1bmN0aW9uIHRleHRSZW1vdmUoKSB7XG4gIHRoaXMudGV4dENvbnRlbnQgPSBcIlwiO1xufVxuXG5mdW5jdGlvbiB0ZXh0Q29uc3RhbnQodmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMudGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gdGV4dEZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgdiA9IHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgdGhpcy50ZXh0Q29udGVudCA9IHYgPT0gbnVsbCA/IFwiXCIgOiB2O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aFxuICAgICAgPyB0aGlzLmVhY2godmFsdWUgPT0gbnVsbFxuICAgICAgICAgID8gdGV4dFJlbW92ZSA6ICh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8gdGV4dEZ1bmN0aW9uXG4gICAgICAgICAgOiB0ZXh0Q29uc3RhbnQpKHZhbHVlKSlcbiAgICAgIDogdGhpcy5ub2RlKCkudGV4dENvbnRlbnQ7XG59XG4iLAogICAgImZ1bmN0aW9uIGh0bWxSZW1vdmUoKSB7XG4gIHRoaXMuaW5uZXJIVE1MID0gXCJcIjtcbn1cblxuZnVuY3Rpb24gaHRtbENvbnN0YW50KHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLmlubmVySFRNTCA9IHZhbHVlO1xuICB9O1xufVxuXG5mdW5jdGlvbiBodG1sRnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB0aGlzLmlubmVySFRNTCA9IHYgPT0gbnVsbCA/IFwiXCIgOiB2O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aFxuICAgICAgPyB0aGlzLmVhY2godmFsdWUgPT0gbnVsbFxuICAgICAgICAgID8gaHRtbFJlbW92ZSA6ICh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8gaHRtbEZ1bmN0aW9uXG4gICAgICAgICAgOiBodG1sQ29uc3RhbnQpKHZhbHVlKSlcbiAgICAgIDogdGhpcy5ub2RlKCkuaW5uZXJIVE1MO1xufVxuIiwKICAgICJmdW5jdGlvbiByYWlzZSgpIHtcbiAgaWYgKHRoaXMubmV4dFNpYmxpbmcpIHRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLmVhY2gocmFpc2UpO1xufVxuIiwKICAgICJmdW5jdGlvbiBsb3dlcigpIHtcbiAgaWYgKHRoaXMucHJldmlvdXNTaWJsaW5nKSB0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsIHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLmVhY2gobG93ZXIpO1xufVxuIiwKICAgICJpbXBvcnQgY3JlYXRvciBmcm9tIFwiLi4vY3JlYXRvci5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBjcmVhdGUgPSB0eXBlb2YgbmFtZSA9PT0gXCJmdW5jdGlvblwiID8gbmFtZSA6IGNyZWF0b3IobmFtZSk7XG4gIHJldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChjcmVhdGUuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gIH0pO1xufVxuIiwKICAgICJpbXBvcnQgY3JlYXRvciBmcm9tIFwiLi4vY3JlYXRvci5qc1wiO1xuaW1wb3J0IHNlbGVjdG9yIGZyb20gXCIuLi9zZWxlY3Rvci5qc1wiO1xuXG5mdW5jdGlvbiBjb25zdGFudE51bGwoKSB7XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lLCBiZWZvcmUpIHtcbiAgdmFyIGNyZWF0ZSA9IHR5cGVvZiBuYW1lID09PSBcImZ1bmN0aW9uXCIgPyBuYW1lIDogY3JlYXRvcihuYW1lKSxcbiAgICAgIHNlbGVjdCA9IGJlZm9yZSA9PSBudWxsID8gY29uc3RhbnROdWxsIDogdHlwZW9mIGJlZm9yZSA9PT0gXCJmdW5jdGlvblwiID8gYmVmb3JlIDogc2VsZWN0b3IoYmVmb3JlKTtcbiAgcmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmluc2VydEJlZm9yZShjcmVhdGUuYXBwbHkodGhpcywgYXJndW1lbnRzKSwgc2VsZWN0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgbnVsbCk7XG4gIH0pO1xufVxuIiwKICAgICJmdW5jdGlvbiByZW1vdmUoKSB7XG4gIHZhciBwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7XG4gIGlmIChwYXJlbnQpIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLmVhY2gocmVtb3ZlKTtcbn1cbiIsCiAgICAiZnVuY3Rpb24gc2VsZWN0aW9uX2Nsb25lU2hhbGxvdygpIHtcbiAgdmFyIGNsb25lID0gdGhpcy5jbG9uZU5vZGUoZmFsc2UpLCBwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7XG4gIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuaW5zZXJ0QmVmb3JlKGNsb25lLCB0aGlzLm5leHRTaWJsaW5nKSA6IGNsb25lO1xufVxuXG5mdW5jdGlvbiBzZWxlY3Rpb25fY2xvbmVEZWVwKCkge1xuICB2YXIgY2xvbmUgPSB0aGlzLmNsb25lTm9kZSh0cnVlKSwgcGFyZW50ID0gdGhpcy5wYXJlbnROb2RlO1xuICByZXR1cm4gcGFyZW50ID8gcGFyZW50Lmluc2VydEJlZm9yZShjbG9uZSwgdGhpcy5uZXh0U2libGluZykgOiBjbG9uZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oZGVlcCkge1xuICByZXR1cm4gdGhpcy5zZWxlY3QoZGVlcCA/IHNlbGVjdGlvbl9jbG9uZURlZXAgOiBzZWxlY3Rpb25fY2xvbmVTaGFsbG93KTtcbn1cbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGhcbiAgICAgID8gdGhpcy5wcm9wZXJ0eShcIl9fZGF0YV9fXCIsIHZhbHVlKVxuICAgICAgOiB0aGlzLm5vZGUoKS5fX2RhdGFfXztcbn1cbiIsCiAgICAiZnVuY3Rpb24gY29udGV4dExpc3RlbmVyKGxpc3RlbmVyKSB7XG4gIHJldHVybiBmdW5jdGlvbihldmVudCkge1xuICAgIGxpc3RlbmVyLmNhbGwodGhpcywgZXZlbnQsIHRoaXMuX19kYXRhX18pO1xuICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZVR5cGVuYW1lcyh0eXBlbmFtZXMpIHtcbiAgcmV0dXJuIHR5cGVuYW1lcy50cmltKCkuc3BsaXQoL158XFxzKy8pLm1hcChmdW5jdGlvbih0KSB7XG4gICAgdmFyIG5hbWUgPSBcIlwiLCBpID0gdC5pbmRleE9mKFwiLlwiKTtcbiAgICBpZiAoaSA+PSAwKSBuYW1lID0gdC5zbGljZShpICsgMSksIHQgPSB0LnNsaWNlKDAsIGkpO1xuICAgIHJldHVybiB7dHlwZTogdCwgbmFtZTogbmFtZX07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvblJlbW92ZSh0eXBlbmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIG9uID0gdGhpcy5fX29uO1xuICAgIGlmICghb24pIHJldHVybjtcbiAgICBmb3IgKHZhciBqID0gMCwgaSA9IC0xLCBtID0gb24ubGVuZ3RoLCBvOyBqIDwgbTsgKytqKSB7XG4gICAgICBpZiAobyA9IG9uW2pdLCAoIXR5cGVuYW1lLnR5cGUgfHwgby50eXBlID09PSB0eXBlbmFtZS50eXBlKSAmJiBvLm5hbWUgPT09IHR5cGVuYW1lLm5hbWUpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG8udHlwZSwgby5saXN0ZW5lciwgby5vcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9uWysraV0gPSBvO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoKytpKSBvbi5sZW5ndGggPSBpO1xuICAgIGVsc2UgZGVsZXRlIHRoaXMuX19vbjtcbiAgfTtcbn1cblxuZnVuY3Rpb24gb25BZGQodHlwZW5hbWUsIHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgb24gPSB0aGlzLl9fb24sIG8sIGxpc3RlbmVyID0gY29udGV4dExpc3RlbmVyKHZhbHVlKTtcbiAgICBpZiAob24pIGZvciAodmFyIGogPSAwLCBtID0gb24ubGVuZ3RoOyBqIDwgbTsgKytqKSB7XG4gICAgICBpZiAoKG8gPSBvbltqXSkudHlwZSA9PT0gdHlwZW5hbWUudHlwZSAmJiBvLm5hbWUgPT09IHR5cGVuYW1lLm5hbWUpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG8udHlwZSwgby5saXN0ZW5lciwgby5vcHRpb25zKTtcbiAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKG8udHlwZSwgby5saXN0ZW5lciA9IGxpc3RlbmVyLCBvLm9wdGlvbnMgPSBvcHRpb25zKTtcbiAgICAgICAgby52YWx1ZSA9IHZhbHVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcih0eXBlbmFtZS50eXBlLCBsaXN0ZW5lciwgb3B0aW9ucyk7XG4gICAgbyA9IHt0eXBlOiB0eXBlbmFtZS50eXBlLCBuYW1lOiB0eXBlbmFtZS5uYW1lLCB2YWx1ZTogdmFsdWUsIGxpc3RlbmVyOiBsaXN0ZW5lciwgb3B0aW9uczogb3B0aW9uc307XG4gICAgaWYgKCFvbikgdGhpcy5fX29uID0gW29dO1xuICAgIGVsc2Ugb24ucHVzaChvKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odHlwZW5hbWUsIHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhciB0eXBlbmFtZXMgPSBwYXJzZVR5cGVuYW1lcyh0eXBlbmFtZSArIFwiXCIpLCBpLCBuID0gdHlwZW5hbWVzLmxlbmd0aCwgdDtcblxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICB2YXIgb24gPSB0aGlzLm5vZGUoKS5fX29uO1xuICAgIGlmIChvbikgZm9yICh2YXIgaiA9IDAsIG0gPSBvbi5sZW5ndGgsIG87IGogPCBtOyArK2opIHtcbiAgICAgIGZvciAoaSA9IDAsIG8gPSBvbltqXTsgaSA8IG47ICsraSkge1xuICAgICAgICBpZiAoKHQgPSB0eXBlbmFtZXNbaV0pLnR5cGUgPT09IG8udHlwZSAmJiB0Lm5hbWUgPT09IG8ubmFtZSkge1xuICAgICAgICAgIHJldHVybiBvLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIG9uID0gdmFsdWUgPyBvbkFkZCA6IG9uUmVtb3ZlO1xuICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB0aGlzLmVhY2gob24odHlwZW5hbWVzW2ldLCB2YWx1ZSwgb3B0aW9ucykpO1xuICByZXR1cm4gdGhpcztcbn1cbiIsCiAgICAiaW1wb3J0IGRlZmF1bHRWaWV3IGZyb20gXCIuLi93aW5kb3cuanNcIjtcblxuZnVuY3Rpb24gZGlzcGF0Y2hFdmVudChub2RlLCB0eXBlLCBwYXJhbXMpIHtcbiAgdmFyIHdpbmRvdyA9IGRlZmF1bHRWaWV3KG5vZGUpLFxuICAgICAgZXZlbnQgPSB3aW5kb3cuQ3VzdG9tRXZlbnQ7XG5cbiAgaWYgKHR5cGVvZiBldmVudCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgZXZlbnQgPSBuZXcgZXZlbnQodHlwZSwgcGFyYW1zKTtcbiAgfSBlbHNlIHtcbiAgICBldmVudCA9IHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpO1xuICAgIGlmIChwYXJhbXMpIGV2ZW50LmluaXRFdmVudCh0eXBlLCBwYXJhbXMuYnViYmxlcywgcGFyYW1zLmNhbmNlbGFibGUpLCBldmVudC5kZXRhaWwgPSBwYXJhbXMuZGV0YWlsO1xuICAgIGVsc2UgZXZlbnQuaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBub2RlLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaENvbnN0YW50KHR5cGUsIHBhcmFtcykge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRpc3BhdGNoRXZlbnQodGhpcywgdHlwZSwgcGFyYW1zKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hGdW5jdGlvbih0eXBlLCBwYXJhbXMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkaXNwYXRjaEV2ZW50KHRoaXMsIHR5cGUsIHBhcmFtcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odHlwZSwgcGFyYW1zKSB7XG4gIHJldHVybiB0aGlzLmVhY2goKHR5cGVvZiBwYXJhbXMgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyBkaXNwYXRjaEZ1bmN0aW9uXG4gICAgICA6IGRpc3BhdGNoQ29uc3RhbnQpKHR5cGUsIHBhcmFtcykpO1xufVxuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiooKSB7XG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgaiA9IDAsIG0gPSBncm91cHMubGVuZ3RoOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIGkgPSAwLCBuID0gZ3JvdXAubGVuZ3RoLCBub2RlOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSB5aWVsZCBub2RlO1xuICAgIH1cbiAgfVxufVxuIiwKICAgICJpbXBvcnQgc2VsZWN0aW9uX3NlbGVjdCBmcm9tIFwiLi9zZWxlY3QuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fc2VsZWN0QWxsIGZyb20gXCIuL3NlbGVjdEFsbC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9zZWxlY3RDaGlsZCBmcm9tIFwiLi9zZWxlY3RDaGlsZC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9zZWxlY3RDaGlsZHJlbiBmcm9tIFwiLi9zZWxlY3RDaGlsZHJlbi5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9maWx0ZXIgZnJvbSBcIi4vZmlsdGVyLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2RhdGEgZnJvbSBcIi4vZGF0YS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9lbnRlciBmcm9tIFwiLi9lbnRlci5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9leGl0IGZyb20gXCIuL2V4aXQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fam9pbiBmcm9tIFwiLi9qb2luLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX21lcmdlIGZyb20gXCIuL21lcmdlLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX29yZGVyIGZyb20gXCIuL29yZGVyLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3NvcnQgZnJvbSBcIi4vc29ydC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9jYWxsIGZyb20gXCIuL2NhbGwuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fbm9kZXMgZnJvbSBcIi4vbm9kZXMuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fbm9kZSBmcm9tIFwiLi9ub2RlLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3NpemUgZnJvbSBcIi4vc2l6ZS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9lbXB0eSBmcm9tIFwiLi9lbXB0eS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9lYWNoIGZyb20gXCIuL2VhY2guanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fYXR0ciBmcm9tIFwiLi9hdHRyLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3N0eWxlIGZyb20gXCIuL3N0eWxlLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3Byb3BlcnR5IGZyb20gXCIuL3Byb3BlcnR5LmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2NsYXNzZWQgZnJvbSBcIi4vY2xhc3NlZC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl90ZXh0IGZyb20gXCIuL3RleHQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25faHRtbCBmcm9tIFwiLi9odG1sLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3JhaXNlIGZyb20gXCIuL3JhaXNlLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2xvd2VyIGZyb20gXCIuL2xvd2VyLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2FwcGVuZCBmcm9tIFwiLi9hcHBlbmQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25faW5zZXJ0IGZyb20gXCIuL2luc2VydC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9yZW1vdmUgZnJvbSBcIi4vcmVtb3ZlLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2Nsb25lIGZyb20gXCIuL2Nsb25lLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2RhdHVtIGZyb20gXCIuL2RhdHVtLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX29uIGZyb20gXCIuL29uLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2Rpc3BhdGNoIGZyb20gXCIuL2Rpc3BhdGNoLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2l0ZXJhdG9yIGZyb20gXCIuL2l0ZXJhdG9yLmpzXCI7XG5cbmV4cG9ydCB2YXIgcm9vdCA9IFtudWxsXTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdGlvbihncm91cHMsIHBhcmVudHMpIHtcbiAgdGhpcy5fZ3JvdXBzID0gZ3JvdXBzO1xuICB0aGlzLl9wYXJlbnRzID0gcGFyZW50cztcbn1cblxuZnVuY3Rpb24gc2VsZWN0aW9uKCkge1xuICByZXR1cm4gbmV3IFNlbGVjdGlvbihbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLCByb290KTtcbn1cblxuZnVuY3Rpb24gc2VsZWN0aW9uX3NlbGVjdGlvbigpIHtcbiAgcmV0dXJuIHRoaXM7XG59XG5cblNlbGVjdGlvbi5wcm90b3R5cGUgPSBzZWxlY3Rpb24ucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogU2VsZWN0aW9uLFxuICBzZWxlY3Q6IHNlbGVjdGlvbl9zZWxlY3QsXG4gIHNlbGVjdEFsbDogc2VsZWN0aW9uX3NlbGVjdEFsbCxcbiAgc2VsZWN0Q2hpbGQ6IHNlbGVjdGlvbl9zZWxlY3RDaGlsZCxcbiAgc2VsZWN0Q2hpbGRyZW46IHNlbGVjdGlvbl9zZWxlY3RDaGlsZHJlbixcbiAgZmlsdGVyOiBzZWxlY3Rpb25fZmlsdGVyLFxuICBkYXRhOiBzZWxlY3Rpb25fZGF0YSxcbiAgZW50ZXI6IHNlbGVjdGlvbl9lbnRlcixcbiAgZXhpdDogc2VsZWN0aW9uX2V4aXQsXG4gIGpvaW46IHNlbGVjdGlvbl9qb2luLFxuICBtZXJnZTogc2VsZWN0aW9uX21lcmdlLFxuICBzZWxlY3Rpb246IHNlbGVjdGlvbl9zZWxlY3Rpb24sXG4gIG9yZGVyOiBzZWxlY3Rpb25fb3JkZXIsXG4gIHNvcnQ6IHNlbGVjdGlvbl9zb3J0LFxuICBjYWxsOiBzZWxlY3Rpb25fY2FsbCxcbiAgbm9kZXM6IHNlbGVjdGlvbl9ub2RlcyxcbiAgbm9kZTogc2VsZWN0aW9uX25vZGUsXG4gIHNpemU6IHNlbGVjdGlvbl9zaXplLFxuICBlbXB0eTogc2VsZWN0aW9uX2VtcHR5LFxuICBlYWNoOiBzZWxlY3Rpb25fZWFjaCxcbiAgYXR0cjogc2VsZWN0aW9uX2F0dHIsXG4gIHN0eWxlOiBzZWxlY3Rpb25fc3R5bGUsXG4gIHByb3BlcnR5OiBzZWxlY3Rpb25fcHJvcGVydHksXG4gIGNsYXNzZWQ6IHNlbGVjdGlvbl9jbGFzc2VkLFxuICB0ZXh0OiBzZWxlY3Rpb25fdGV4dCxcbiAgaHRtbDogc2VsZWN0aW9uX2h0bWwsXG4gIHJhaXNlOiBzZWxlY3Rpb25fcmFpc2UsXG4gIGxvd2VyOiBzZWxlY3Rpb25fbG93ZXIsXG4gIGFwcGVuZDogc2VsZWN0aW9uX2FwcGVuZCxcbiAgaW5zZXJ0OiBzZWxlY3Rpb25faW5zZXJ0LFxuICByZW1vdmU6IHNlbGVjdGlvbl9yZW1vdmUsXG4gIGNsb25lOiBzZWxlY3Rpb25fY2xvbmUsXG4gIGRhdHVtOiBzZWxlY3Rpb25fZGF0dW0sXG4gIG9uOiBzZWxlY3Rpb25fb24sXG4gIGRpc3BhdGNoOiBzZWxlY3Rpb25fZGlzcGF0Y2gsXG4gIFtTeW1ib2wuaXRlcmF0b3JdOiBzZWxlY3Rpb25faXRlcmF0b3Jcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHNlbGVjdGlvbjtcbiIsCiAgICAiaW1wb3J0IHtTZWxlY3Rpb24sIHJvb3R9IGZyb20gXCIuL3NlbGVjdGlvbi9pbmRleC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzZWxlY3Rvcikge1xuICByZXR1cm4gdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiXG4gICAgICA/IG5ldyBTZWxlY3Rpb24oW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKV1dLCBbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSlcbiAgICAgIDogbmV3IFNlbGVjdGlvbihbW3NlbGVjdG9yXV0sIHJvb3QpO1xufVxuIiwKICAgICJpbXBvcnQgYXJyYXkgZnJvbSBcIi4vYXJyYXkuanNcIjtcbmltcG9ydCB7U2VsZWN0aW9uLCByb290fSBmcm9tIFwiLi9zZWxlY3Rpb24vaW5kZXguanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc2VsZWN0b3IpIHtcbiAgcmV0dXJuIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBuZXcgU2VsZWN0aW9uKFtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKV0sIFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKVxuICAgICAgOiBuZXcgU2VsZWN0aW9uKFthcnJheShzZWxlY3RvcildLCByb290KTtcbn1cbiIsCiAgICAiZXhwb3J0IHtkZWZhdWx0IGFzIGNyZWF0ZX0gZnJvbSBcIi4vY3JlYXRlLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgY3JlYXRvcn0gZnJvbSBcIi4vY3JlYXRvci5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGxvY2FsfSBmcm9tIFwiLi9sb2NhbC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIG1hdGNoZXJ9IGZyb20gXCIuL21hdGNoZXIuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBuYW1lc3BhY2V9IGZyb20gXCIuL25hbWVzcGFjZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIG5hbWVzcGFjZXN9IGZyb20gXCIuL25hbWVzcGFjZXMuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBwb2ludGVyfSBmcm9tIFwiLi9wb2ludGVyLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgcG9pbnRlcnN9IGZyb20gXCIuL3BvaW50ZXJzLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc2VsZWN0fSBmcm9tIFwiLi9zZWxlY3QuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzZWxlY3RBbGx9IGZyb20gXCIuL3NlbGVjdEFsbC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHNlbGVjdGlvbn0gZnJvbSBcIi4vc2VsZWN0aW9uL2luZGV4LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc2VsZWN0b3J9IGZyb20gXCIuL3NlbGVjdG9yLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc2VsZWN0b3JBbGx9IGZyb20gXCIuL3NlbGVjdG9yQWxsLmpzXCI7XG5leHBvcnQge3N0eWxlVmFsdWUgYXMgc3R5bGV9IGZyb20gXCIuL3NlbGVjdGlvbi9zdHlsZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHdpbmRvd30gZnJvbSBcIi4vd2luZG93LmpzXCI7XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNvbnN0cnVjdG9yLCBmYWN0b3J5LCBwcm90b3R5cGUpIHtcbiAgY29uc3RydWN0b3IucHJvdG90eXBlID0gZmFjdG9yeS5wcm90b3R5cGUgPSBwcm90b3R5cGU7XG4gIHByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kKHBhcmVudCwgZGVmaW5pdGlvbikge1xuICB2YXIgcHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShwYXJlbnQucHJvdG90eXBlKTtcbiAgZm9yICh2YXIga2V5IGluIGRlZmluaXRpb24pIHByb3RvdHlwZVtrZXldID0gZGVmaW5pdGlvbltrZXldO1xuICByZXR1cm4gcHJvdG90eXBlO1xufVxuIiwKICAgICJpbXBvcnQgZGVmaW5lLCB7ZXh0ZW5kfSBmcm9tIFwiLi9kZWZpbmUuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbG9yKCkge31cblxuZXhwb3J0IHZhciBkYXJrZXIgPSAwLjc7XG5leHBvcnQgdmFyIGJyaWdodGVyID0gMSAvIGRhcmtlcjtcblxudmFyIHJlSSA9IFwiXFxcXHMqKFsrLV0/XFxcXGQrKVxcXFxzKlwiLFxuICAgIHJlTiA9IFwiXFxcXHMqKFsrLV0/KD86XFxcXGQqXFxcXC4pP1xcXFxkKyg/OltlRV1bKy1dP1xcXFxkKyk/KVxcXFxzKlwiLFxuICAgIHJlUCA9IFwiXFxcXHMqKFsrLV0/KD86XFxcXGQqXFxcXC4pP1xcXFxkKyg/OltlRV1bKy1dP1xcXFxkKyk/KSVcXFxccypcIixcbiAgICByZUhleCA9IC9eIyhbMC05YS1mXXszLDh9KSQvLFxuICAgIHJlUmdiSW50ZWdlciA9IG5ldyBSZWdFeHAoYF5yZ2JcXFxcKCR7cmVJfSwke3JlSX0sJHtyZUl9XFxcXCkkYCksXG4gICAgcmVSZ2JQZXJjZW50ID0gbmV3IFJlZ0V4cChgXnJnYlxcXFwoJHtyZVB9LCR7cmVQfSwke3JlUH1cXFxcKSRgKSxcbiAgICByZVJnYmFJbnRlZ2VyID0gbmV3IFJlZ0V4cChgXnJnYmFcXFxcKCR7cmVJfSwke3JlSX0sJHtyZUl9LCR7cmVOfVxcXFwpJGApLFxuICAgIHJlUmdiYVBlcmNlbnQgPSBuZXcgUmVnRXhwKGBecmdiYVxcXFwoJHtyZVB9LCR7cmVQfSwke3JlUH0sJHtyZU59XFxcXCkkYCksXG4gICAgcmVIc2xQZXJjZW50ID0gbmV3IFJlZ0V4cChgXmhzbFxcXFwoJHtyZU59LCR7cmVQfSwke3JlUH1cXFxcKSRgKSxcbiAgICByZUhzbGFQZXJjZW50ID0gbmV3IFJlZ0V4cChgXmhzbGFcXFxcKCR7cmVOfSwke3JlUH0sJHtyZVB9LCR7cmVOfVxcXFwpJGApO1xuXG52YXIgbmFtZWQgPSB7XG4gIGFsaWNlYmx1ZTogMHhmMGY4ZmYsXG4gIGFudGlxdWV3aGl0ZTogMHhmYWViZDcsXG4gIGFxdWE6IDB4MDBmZmZmLFxuICBhcXVhbWFyaW5lOiAweDdmZmZkNCxcbiAgYXp1cmU6IDB4ZjBmZmZmLFxuICBiZWlnZTogMHhmNWY1ZGMsXG4gIGJpc3F1ZTogMHhmZmU0YzQsXG4gIGJsYWNrOiAweDAwMDAwMCxcbiAgYmxhbmNoZWRhbG1vbmQ6IDB4ZmZlYmNkLFxuICBibHVlOiAweDAwMDBmZixcbiAgYmx1ZXZpb2xldDogMHg4YTJiZTIsXG4gIGJyb3duOiAweGE1MmEyYSxcbiAgYnVybHl3b29kOiAweGRlYjg4NyxcbiAgY2FkZXRibHVlOiAweDVmOWVhMCxcbiAgY2hhcnRyZXVzZTogMHg3ZmZmMDAsXG4gIGNob2NvbGF0ZTogMHhkMjY5MWUsXG4gIGNvcmFsOiAweGZmN2Y1MCxcbiAgY29ybmZsb3dlcmJsdWU6IDB4NjQ5NWVkLFxuICBjb3Juc2lsazogMHhmZmY4ZGMsXG4gIGNyaW1zb246IDB4ZGMxNDNjLFxuICBjeWFuOiAweDAwZmZmZixcbiAgZGFya2JsdWU6IDB4MDAwMDhiLFxuICBkYXJrY3lhbjogMHgwMDhiOGIsXG4gIGRhcmtnb2xkZW5yb2Q6IDB4Yjg4NjBiLFxuICBkYXJrZ3JheTogMHhhOWE5YTksXG4gIGRhcmtncmVlbjogMHgwMDY0MDAsXG4gIGRhcmtncmV5OiAweGE5YTlhOSxcbiAgZGFya2toYWtpOiAweGJkYjc2YixcbiAgZGFya21hZ2VudGE6IDB4OGIwMDhiLFxuICBkYXJrb2xpdmVncmVlbjogMHg1NTZiMmYsXG4gIGRhcmtvcmFuZ2U6IDB4ZmY4YzAwLFxuICBkYXJrb3JjaGlkOiAweDk5MzJjYyxcbiAgZGFya3JlZDogMHg4YjAwMDAsXG4gIGRhcmtzYWxtb246IDB4ZTk5NjdhLFxuICBkYXJrc2VhZ3JlZW46IDB4OGZiYzhmLFxuICBkYXJrc2xhdGVibHVlOiAweDQ4M2Q4YixcbiAgZGFya3NsYXRlZ3JheTogMHgyZjRmNGYsXG4gIGRhcmtzbGF0ZWdyZXk6IDB4MmY0ZjRmLFxuICBkYXJrdHVycXVvaXNlOiAweDAwY2VkMSxcbiAgZGFya3Zpb2xldDogMHg5NDAwZDMsXG4gIGRlZXBwaW5rOiAweGZmMTQ5MyxcbiAgZGVlcHNreWJsdWU6IDB4MDBiZmZmLFxuICBkaW1ncmF5OiAweDY5Njk2OSxcbiAgZGltZ3JleTogMHg2OTY5NjksXG4gIGRvZGdlcmJsdWU6IDB4MWU5MGZmLFxuICBmaXJlYnJpY2s6IDB4YjIyMjIyLFxuICBmbG9yYWx3aGl0ZTogMHhmZmZhZjAsXG4gIGZvcmVzdGdyZWVuOiAweDIyOGIyMixcbiAgZnVjaHNpYTogMHhmZjAwZmYsXG4gIGdhaW5zYm9ybzogMHhkY2RjZGMsXG4gIGdob3N0d2hpdGU6IDB4ZjhmOGZmLFxuICBnb2xkOiAweGZmZDcwMCxcbiAgZ29sZGVucm9kOiAweGRhYTUyMCxcbiAgZ3JheTogMHg4MDgwODAsXG4gIGdyZWVuOiAweDAwODAwMCxcbiAgZ3JlZW55ZWxsb3c6IDB4YWRmZjJmLFxuICBncmV5OiAweDgwODA4MCxcbiAgaG9uZXlkZXc6IDB4ZjBmZmYwLFxuICBob3RwaW5rOiAweGZmNjliNCxcbiAgaW5kaWFucmVkOiAweGNkNWM1YyxcbiAgaW5kaWdvOiAweDRiMDA4MixcbiAgaXZvcnk6IDB4ZmZmZmYwLFxuICBraGFraTogMHhmMGU2OGMsXG4gIGxhdmVuZGVyOiAweGU2ZTZmYSxcbiAgbGF2ZW5kZXJibHVzaDogMHhmZmYwZjUsXG4gIGxhd25ncmVlbjogMHg3Y2ZjMDAsXG4gIGxlbW9uY2hpZmZvbjogMHhmZmZhY2QsXG4gIGxpZ2h0Ymx1ZTogMHhhZGQ4ZTYsXG4gIGxpZ2h0Y29yYWw6IDB4ZjA4MDgwLFxuICBsaWdodGN5YW46IDB4ZTBmZmZmLFxuICBsaWdodGdvbGRlbnJvZHllbGxvdzogMHhmYWZhZDIsXG4gIGxpZ2h0Z3JheTogMHhkM2QzZDMsXG4gIGxpZ2h0Z3JlZW46IDB4OTBlZTkwLFxuICBsaWdodGdyZXk6IDB4ZDNkM2QzLFxuICBsaWdodHBpbms6IDB4ZmZiNmMxLFxuICBsaWdodHNhbG1vbjogMHhmZmEwN2EsXG4gIGxpZ2h0c2VhZ3JlZW46IDB4MjBiMmFhLFxuICBsaWdodHNreWJsdWU6IDB4ODdjZWZhLFxuICBsaWdodHNsYXRlZ3JheTogMHg3Nzg4OTksXG4gIGxpZ2h0c2xhdGVncmV5OiAweDc3ODg5OSxcbiAgbGlnaHRzdGVlbGJsdWU6IDB4YjBjNGRlLFxuICBsaWdodHllbGxvdzogMHhmZmZmZTAsXG4gIGxpbWU6IDB4MDBmZjAwLFxuICBsaW1lZ3JlZW46IDB4MzJjZDMyLFxuICBsaW5lbjogMHhmYWYwZTYsXG4gIG1hZ2VudGE6IDB4ZmYwMGZmLFxuICBtYXJvb246IDB4ODAwMDAwLFxuICBtZWRpdW1hcXVhbWFyaW5lOiAweDY2Y2RhYSxcbiAgbWVkaXVtYmx1ZTogMHgwMDAwY2QsXG4gIG1lZGl1bW9yY2hpZDogMHhiYTU1ZDMsXG4gIG1lZGl1bXB1cnBsZTogMHg5MzcwZGIsXG4gIG1lZGl1bXNlYWdyZWVuOiAweDNjYjM3MSxcbiAgbWVkaXVtc2xhdGVibHVlOiAweDdiNjhlZSxcbiAgbWVkaXVtc3ByaW5nZ3JlZW46IDB4MDBmYTlhLFxuICBtZWRpdW10dXJxdW9pc2U6IDB4NDhkMWNjLFxuICBtZWRpdW12aW9sZXRyZWQ6IDB4YzcxNTg1LFxuICBtaWRuaWdodGJsdWU6IDB4MTkxOTcwLFxuICBtaW50Y3JlYW06IDB4ZjVmZmZhLFxuICBtaXN0eXJvc2U6IDB4ZmZlNGUxLFxuICBtb2NjYXNpbjogMHhmZmU0YjUsXG4gIG5hdmFqb3doaXRlOiAweGZmZGVhZCxcbiAgbmF2eTogMHgwMDAwODAsXG4gIG9sZGxhY2U6IDB4ZmRmNWU2LFxuICBvbGl2ZTogMHg4MDgwMDAsXG4gIG9saXZlZHJhYjogMHg2YjhlMjMsXG4gIG9yYW5nZTogMHhmZmE1MDAsXG4gIG9yYW5nZXJlZDogMHhmZjQ1MDAsXG4gIG9yY2hpZDogMHhkYTcwZDYsXG4gIHBhbGVnb2xkZW5yb2Q6IDB4ZWVlOGFhLFxuICBwYWxlZ3JlZW46IDB4OThmYjk4LFxuICBwYWxldHVycXVvaXNlOiAweGFmZWVlZSxcbiAgcGFsZXZpb2xldHJlZDogMHhkYjcwOTMsXG4gIHBhcGF5YXdoaXA6IDB4ZmZlZmQ1LFxuICBwZWFjaHB1ZmY6IDB4ZmZkYWI5LFxuICBwZXJ1OiAweGNkODUzZixcbiAgcGluazogMHhmZmMwY2IsXG4gIHBsdW06IDB4ZGRhMGRkLFxuICBwb3dkZXJibHVlOiAweGIwZTBlNixcbiAgcHVycGxlOiAweDgwMDA4MCxcbiAgcmViZWNjYXB1cnBsZTogMHg2NjMzOTksXG4gIHJlZDogMHhmZjAwMDAsXG4gIHJvc3licm93bjogMHhiYzhmOGYsXG4gIHJveWFsYmx1ZTogMHg0MTY5ZTEsXG4gIHNhZGRsZWJyb3duOiAweDhiNDUxMyxcbiAgc2FsbW9uOiAweGZhODA3MixcbiAgc2FuZHlicm93bjogMHhmNGE0NjAsXG4gIHNlYWdyZWVuOiAweDJlOGI1NyxcbiAgc2Vhc2hlbGw6IDB4ZmZmNWVlLFxuICBzaWVubmE6IDB4YTA1MjJkLFxuICBzaWx2ZXI6IDB4YzBjMGMwLFxuICBza3libHVlOiAweDg3Y2VlYixcbiAgc2xhdGVibHVlOiAweDZhNWFjZCxcbiAgc2xhdGVncmF5OiAweDcwODA5MCxcbiAgc2xhdGVncmV5OiAweDcwODA5MCxcbiAgc25vdzogMHhmZmZhZmEsXG4gIHNwcmluZ2dyZWVuOiAweDAwZmY3ZixcbiAgc3RlZWxibHVlOiAweDQ2ODJiNCxcbiAgdGFuOiAweGQyYjQ4YyxcbiAgdGVhbDogMHgwMDgwODAsXG4gIHRoaXN0bGU6IDB4ZDhiZmQ4LFxuICB0b21hdG86IDB4ZmY2MzQ3LFxuICB0dXJxdW9pc2U6IDB4NDBlMGQwLFxuICB2aW9sZXQ6IDB4ZWU4MmVlLFxuICB3aGVhdDogMHhmNWRlYjMsXG4gIHdoaXRlOiAweGZmZmZmZixcbiAgd2hpdGVzbW9rZTogMHhmNWY1ZjUsXG4gIHllbGxvdzogMHhmZmZmMDAsXG4gIHllbGxvd2dyZWVuOiAweDlhY2QzMlxufTtcblxuZGVmaW5lKENvbG9yLCBjb2xvciwge1xuICBjb3B5KGNoYW5uZWxzKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsIHRoaXMsIGNoYW5uZWxzKTtcbiAgfSxcbiAgZGlzcGxheWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKTtcbiAgfSxcbiAgaGV4OiBjb2xvcl9mb3JtYXRIZXgsIC8vIERlcHJlY2F0ZWQhIFVzZSBjb2xvci5mb3JtYXRIZXguXG4gIGZvcm1hdEhleDogY29sb3JfZm9ybWF0SGV4LFxuICBmb3JtYXRIZXg4OiBjb2xvcl9mb3JtYXRIZXg4LFxuICBmb3JtYXRIc2w6IGNvbG9yX2Zvcm1hdEhzbCxcbiAgZm9ybWF0UmdiOiBjb2xvcl9mb3JtYXRSZ2IsXG4gIHRvU3RyaW5nOiBjb2xvcl9mb3JtYXRSZ2Jcbn0pO1xuXG5mdW5jdGlvbiBjb2xvcl9mb3JtYXRIZXgoKSB7XG4gIHJldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpO1xufVxuXG5mdW5jdGlvbiBjb2xvcl9mb3JtYXRIZXg4KCkge1xuICByZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXg4KCk7XG59XG5cbmZ1bmN0aW9uIGNvbG9yX2Zvcm1hdEhzbCgpIHtcbiAgcmV0dXJuIGhzbENvbnZlcnQodGhpcykuZm9ybWF0SHNsKCk7XG59XG5cbmZ1bmN0aW9uIGNvbG9yX2Zvcm1hdFJnYigpIHtcbiAgcmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbG9yKGZvcm1hdCkge1xuICB2YXIgbSwgbDtcbiAgZm9ybWF0ID0gKGZvcm1hdCArIFwiXCIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gKG0gPSByZUhleC5leGVjKGZvcm1hdCkpID8gKGwgPSBtWzFdLmxlbmd0aCwgbSA9IHBhcnNlSW50KG1bMV0sIDE2KSwgbCA9PT0gNiA/IHJnYm4obSkgLy8gI2ZmMDAwMFxuICAgICAgOiBsID09PSAzID8gbmV3IFJnYigobSA+PiA4ICYgMHhmKSB8IChtID4+IDQgJiAweGYwKSwgKG0gPj4gNCAmIDB4ZikgfCAobSAmIDB4ZjApLCAoKG0gJiAweGYpIDw8IDQpIHwgKG0gJiAweGYpLCAxKSAvLyAjZjAwXG4gICAgICA6IGwgPT09IDggPyByZ2JhKG0gPj4gMjQgJiAweGZmLCBtID4+IDE2ICYgMHhmZiwgbSA+PiA4ICYgMHhmZiwgKG0gJiAweGZmKSAvIDB4ZmYpIC8vICNmZjAwMDAwMFxuICAgICAgOiBsID09PSA0ID8gcmdiYSgobSA+PiAxMiAmIDB4ZikgfCAobSA+PiA4ICYgMHhmMCksIChtID4+IDggJiAweGYpIHwgKG0gPj4gNCAmIDB4ZjApLCAobSA+PiA0ICYgMHhmKSB8IChtICYgMHhmMCksICgoKG0gJiAweGYpIDw8IDQpIHwgKG0gJiAweGYpKSAvIDB4ZmYpIC8vICNmMDAwXG4gICAgICA6IG51bGwpIC8vIGludmFsaWQgaGV4XG4gICAgICA6IChtID0gcmVSZ2JJbnRlZ2VyLmV4ZWMoZm9ybWF0KSkgPyBuZXcgUmdiKG1bMV0sIG1bMl0sIG1bM10sIDEpIC8vIHJnYigyNTUsIDAsIDApXG4gICAgICA6IChtID0gcmVSZ2JQZXJjZW50LmV4ZWMoZm9ybWF0KSkgPyBuZXcgUmdiKG1bMV0gKiAyNTUgLyAxMDAsIG1bMl0gKiAyNTUgLyAxMDAsIG1bM10gKiAyNTUgLyAxMDAsIDEpIC8vIHJnYigxMDAlLCAwJSwgMCUpXG4gICAgICA6IChtID0gcmVSZ2JhSW50ZWdlci5leGVjKGZvcm1hdCkpID8gcmdiYShtWzFdLCBtWzJdLCBtWzNdLCBtWzRdKSAvLyByZ2JhKDI1NSwgMCwgMCwgMSlcbiAgICAgIDogKG0gPSByZVJnYmFQZXJjZW50LmV4ZWMoZm9ybWF0KSkgPyByZ2JhKG1bMV0gKiAyNTUgLyAxMDAsIG1bMl0gKiAyNTUgLyAxMDAsIG1bM10gKiAyNTUgLyAxMDAsIG1bNF0pIC8vIHJnYigxMDAlLCAwJSwgMCUsIDEpXG4gICAgICA6IChtID0gcmVIc2xQZXJjZW50LmV4ZWMoZm9ybWF0KSkgPyBoc2xhKG1bMV0sIG1bMl0gLyAxMDAsIG1bM10gLyAxMDAsIDEpIC8vIGhzbCgxMjAsIDUwJSwgNTAlKVxuICAgICAgOiAobSA9IHJlSHNsYVBlcmNlbnQuZXhlYyhmb3JtYXQpKSA/IGhzbGEobVsxXSwgbVsyXSAvIDEwMCwgbVszXSAvIDEwMCwgbVs0XSkgLy8gaHNsYSgxMjAsIDUwJSwgNTAlLCAxKVxuICAgICAgOiBuYW1lZC5oYXNPd25Qcm9wZXJ0eShmb3JtYXQpID8gcmdibihuYW1lZFtmb3JtYXRdKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICAgICAgOiBmb3JtYXQgPT09IFwidHJhbnNwYXJlbnRcIiA/IG5ldyBSZ2IoTmFOLCBOYU4sIE5hTiwgMClcbiAgICAgIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gcmdibihuKSB7XG4gIHJldHVybiBuZXcgUmdiKG4gPj4gMTYgJiAweGZmLCBuID4+IDggJiAweGZmLCBuICYgMHhmZiwgMSk7XG59XG5cbmZ1bmN0aW9uIHJnYmEociwgZywgYiwgYSkge1xuICBpZiAoYSA8PSAwKSByID0gZyA9IGIgPSBOYU47XG4gIHJldHVybiBuZXcgUmdiKHIsIGcsIGIsIGEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmdiQ29udmVydChvKSB7XG4gIGlmICghKG8gaW5zdGFuY2VvZiBDb2xvcikpIG8gPSBjb2xvcihvKTtcbiAgaWYgKCFvKSByZXR1cm4gbmV3IFJnYjtcbiAgbyA9IG8ucmdiKCk7XG4gIHJldHVybiBuZXcgUmdiKG8uciwgby5nLCBvLmIsIG8ub3BhY2l0eSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZ2IociwgZywgYiwgb3BhY2l0eSkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA9PT0gMSA/IHJnYkNvbnZlcnQocikgOiBuZXcgUmdiKHIsIGcsIGIsIG9wYWNpdHkgPT0gbnVsbCA/IDEgOiBvcGFjaXR5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJnYihyLCBnLCBiLCBvcGFjaXR5KSB7XG4gIHRoaXMuciA9ICtyO1xuICB0aGlzLmcgPSArZztcbiAgdGhpcy5iID0gK2I7XG4gIHRoaXMub3BhY2l0eSA9ICtvcGFjaXR5O1xufVxuXG5kZWZpbmUoUmdiLCByZ2IsIGV4dGVuZChDb2xvciwge1xuICBicmlnaHRlcihrKSB7XG4gICAgayA9IGsgPT0gbnVsbCA/IGJyaWdodGVyIDogTWF0aC5wb3coYnJpZ2h0ZXIsIGspO1xuICAgIHJldHVybiBuZXcgUmdiKHRoaXMuciAqIGssIHRoaXMuZyAqIGssIHRoaXMuYiAqIGssIHRoaXMub3BhY2l0eSk7XG4gIH0sXG4gIGRhcmtlcihrKSB7XG4gICAgayA9IGsgPT0gbnVsbCA/IGRhcmtlciA6IE1hdGgucG93KGRhcmtlciwgayk7XG4gICAgcmV0dXJuIG5ldyBSZ2IodGhpcy5yICogaywgdGhpcy5nICogaywgdGhpcy5iICogaywgdGhpcy5vcGFjaXR5KTtcbiAgfSxcbiAgcmdiKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICBjbGFtcCgpIHtcbiAgICByZXR1cm4gbmV3IFJnYihjbGFtcGkodGhpcy5yKSwgY2xhbXBpKHRoaXMuZyksIGNsYW1waSh0aGlzLmIpLCBjbGFtcGEodGhpcy5vcGFjaXR5KSk7XG4gIH0sXG4gIGRpc3BsYXlhYmxlKCkge1xuICAgIHJldHVybiAoLTAuNSA8PSB0aGlzLnIgJiYgdGhpcy5yIDwgMjU1LjUpXG4gICAgICAgICYmICgtMC41IDw9IHRoaXMuZyAmJiB0aGlzLmcgPCAyNTUuNSlcbiAgICAgICAgJiYgKC0wLjUgPD0gdGhpcy5iICYmIHRoaXMuYiA8IDI1NS41KVxuICAgICAgICAmJiAoMCA8PSB0aGlzLm9wYWNpdHkgJiYgdGhpcy5vcGFjaXR5IDw9IDEpO1xuICB9LFxuICBoZXg6IHJnYl9mb3JtYXRIZXgsIC8vIERlcHJlY2F0ZWQhIFVzZSBjb2xvci5mb3JtYXRIZXguXG4gIGZvcm1hdEhleDogcmdiX2Zvcm1hdEhleCxcbiAgZm9ybWF0SGV4ODogcmdiX2Zvcm1hdEhleDgsXG4gIGZvcm1hdFJnYjogcmdiX2Zvcm1hdFJnYixcbiAgdG9TdHJpbmc6IHJnYl9mb3JtYXRSZ2Jcbn0pKTtcblxuZnVuY3Rpb24gcmdiX2Zvcm1hdEhleCgpIHtcbiAgcmV0dXJuIGAjJHtoZXgodGhpcy5yKX0ke2hleCh0aGlzLmcpfSR7aGV4KHRoaXMuYil9YDtcbn1cblxuZnVuY3Rpb24gcmdiX2Zvcm1hdEhleDgoKSB7XG4gIHJldHVybiBgIyR7aGV4KHRoaXMucil9JHtoZXgodGhpcy5nKX0ke2hleCh0aGlzLmIpfSR7aGV4KChpc05hTih0aGlzLm9wYWNpdHkpID8gMSA6IHRoaXMub3BhY2l0eSkgKiAyNTUpfWA7XG59XG5cbmZ1bmN0aW9uIHJnYl9mb3JtYXRSZ2IoKSB7XG4gIGNvbnN0IGEgPSBjbGFtcGEodGhpcy5vcGFjaXR5KTtcbiAgcmV0dXJuIGAke2EgPT09IDEgPyBcInJnYihcIiA6IFwicmdiYShcIn0ke2NsYW1waSh0aGlzLnIpfSwgJHtjbGFtcGkodGhpcy5nKX0sICR7Y2xhbXBpKHRoaXMuYil9JHthID09PSAxID8gXCIpXCIgOiBgLCAke2F9KWB9YDtcbn1cblxuZnVuY3Rpb24gY2xhbXBhKG9wYWNpdHkpIHtcbiAgcmV0dXJuIGlzTmFOKG9wYWNpdHkpID8gMSA6IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIG9wYWNpdHkpKTtcbn1cblxuZnVuY3Rpb24gY2xhbXBpKHZhbHVlKSB7XG4gIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbigyNTUsIE1hdGgucm91bmQodmFsdWUpIHx8IDApKTtcbn1cblxuZnVuY3Rpb24gaGV4KHZhbHVlKSB7XG4gIHZhbHVlID0gY2xhbXBpKHZhbHVlKTtcbiAgcmV0dXJuICh2YWx1ZSA8IDE2ID8gXCIwXCIgOiBcIlwiKSArIHZhbHVlLnRvU3RyaW5nKDE2KTtcbn1cblxuZnVuY3Rpb24gaHNsYShoLCBzLCBsLCBhKSB7XG4gIGlmIChhIDw9IDApIGggPSBzID0gbCA9IE5hTjtcbiAgZWxzZSBpZiAobCA8PSAwIHx8IGwgPj0gMSkgaCA9IHMgPSBOYU47XG4gIGVsc2UgaWYgKHMgPD0gMCkgaCA9IE5hTjtcbiAgcmV0dXJuIG5ldyBIc2woaCwgcywgbCwgYSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoc2xDb252ZXJ0KG8pIHtcbiAgaWYgKG8gaW5zdGFuY2VvZiBIc2wpIHJldHVybiBuZXcgSHNsKG8uaCwgby5zLCBvLmwsIG8ub3BhY2l0eSk7XG4gIGlmICghKG8gaW5zdGFuY2VvZiBDb2xvcikpIG8gPSBjb2xvcihvKTtcbiAgaWYgKCFvKSByZXR1cm4gbmV3IEhzbDtcbiAgaWYgKG8gaW5zdGFuY2VvZiBIc2wpIHJldHVybiBvO1xuICBvID0gby5yZ2IoKTtcbiAgdmFyIHIgPSBvLnIgLyAyNTUsXG4gICAgICBnID0gby5nIC8gMjU1LFxuICAgICAgYiA9IG8uYiAvIDI1NSxcbiAgICAgIG1pbiA9IE1hdGgubWluKHIsIGcsIGIpLFxuICAgICAgbWF4ID0gTWF0aC5tYXgociwgZywgYiksXG4gICAgICBoID0gTmFOLFxuICAgICAgcyA9IG1heCAtIG1pbixcbiAgICAgIGwgPSAobWF4ICsgbWluKSAvIDI7XG4gIGlmIChzKSB7XG4gICAgaWYgKHIgPT09IG1heCkgaCA9IChnIC0gYikgLyBzICsgKGcgPCBiKSAqIDY7XG4gICAgZWxzZSBpZiAoZyA9PT0gbWF4KSBoID0gKGIgLSByKSAvIHMgKyAyO1xuICAgIGVsc2UgaCA9IChyIC0gZykgLyBzICsgNDtcbiAgICBzIC89IGwgPCAwLjUgPyBtYXggKyBtaW4gOiAyIC0gbWF4IC0gbWluO1xuICAgIGggKj0gNjA7XG4gIH0gZWxzZSB7XG4gICAgcyA9IGwgPiAwICYmIGwgPCAxID8gMCA6IGg7XG4gIH1cbiAgcmV0dXJuIG5ldyBIc2woaCwgcywgbCwgby5vcGFjaXR5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhzbChoLCBzLCBsLCBvcGFjaXR5KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAxID8gaHNsQ29udmVydChoKSA6IG5ldyBIc2woaCwgcywgbCwgb3BhY2l0eSA9PSBudWxsID8gMSA6IG9wYWNpdHkpO1xufVxuXG5mdW5jdGlvbiBIc2woaCwgcywgbCwgb3BhY2l0eSkge1xuICB0aGlzLmggPSAraDtcbiAgdGhpcy5zID0gK3M7XG4gIHRoaXMubCA9ICtsO1xuICB0aGlzLm9wYWNpdHkgPSArb3BhY2l0eTtcbn1cblxuZGVmaW5lKEhzbCwgaHNsLCBleHRlbmQoQ29sb3IsIHtcbiAgYnJpZ2h0ZXIoaykge1xuICAgIGsgPSBrID09IG51bGwgPyBicmlnaHRlciA6IE1hdGgucG93KGJyaWdodGVyLCBrKTtcbiAgICByZXR1cm4gbmV3IEhzbCh0aGlzLmgsIHRoaXMucywgdGhpcy5sICogaywgdGhpcy5vcGFjaXR5KTtcbiAgfSxcbiAgZGFya2VyKGspIHtcbiAgICBrID0gayA9PSBudWxsID8gZGFya2VyIDogTWF0aC5wb3coZGFya2VyLCBrKTtcbiAgICByZXR1cm4gbmV3IEhzbCh0aGlzLmgsIHRoaXMucywgdGhpcy5sICogaywgdGhpcy5vcGFjaXR5KTtcbiAgfSxcbiAgcmdiKCkge1xuICAgIHZhciBoID0gdGhpcy5oICUgMzYwICsgKHRoaXMuaCA8IDApICogMzYwLFxuICAgICAgICBzID0gaXNOYU4oaCkgfHwgaXNOYU4odGhpcy5zKSA/IDAgOiB0aGlzLnMsXG4gICAgICAgIGwgPSB0aGlzLmwsXG4gICAgICAgIG0yID0gbCArIChsIDwgMC41ID8gbCA6IDEgLSBsKSAqIHMsXG4gICAgICAgIG0xID0gMiAqIGwgLSBtMjtcbiAgICByZXR1cm4gbmV3IFJnYihcbiAgICAgIGhzbDJyZ2IoaCA+PSAyNDAgPyBoIC0gMjQwIDogaCArIDEyMCwgbTEsIG0yKSxcbiAgICAgIGhzbDJyZ2IoaCwgbTEsIG0yKSxcbiAgICAgIGhzbDJyZ2IoaCA8IDEyMCA/IGggKyAyNDAgOiBoIC0gMTIwLCBtMSwgbTIpLFxuICAgICAgdGhpcy5vcGFjaXR5XG4gICAgKTtcbiAgfSxcbiAgY2xhbXAoKSB7XG4gICAgcmV0dXJuIG5ldyBIc2woY2xhbXBoKHRoaXMuaCksIGNsYW1wdCh0aGlzLnMpLCBjbGFtcHQodGhpcy5sKSwgY2xhbXBhKHRoaXMub3BhY2l0eSkpO1xuICB9LFxuICBkaXNwbGF5YWJsZSgpIHtcbiAgICByZXR1cm4gKDAgPD0gdGhpcy5zICYmIHRoaXMucyA8PSAxIHx8IGlzTmFOKHRoaXMucykpXG4gICAgICAgICYmICgwIDw9IHRoaXMubCAmJiB0aGlzLmwgPD0gMSlcbiAgICAgICAgJiYgKDAgPD0gdGhpcy5vcGFjaXR5ICYmIHRoaXMub3BhY2l0eSA8PSAxKTtcbiAgfSxcbiAgZm9ybWF0SHNsKCkge1xuICAgIGNvbnN0IGEgPSBjbGFtcGEodGhpcy5vcGFjaXR5KTtcbiAgICByZXR1cm4gYCR7YSA9PT0gMSA/IFwiaHNsKFwiIDogXCJoc2xhKFwifSR7Y2xhbXBoKHRoaXMuaCl9LCAke2NsYW1wdCh0aGlzLnMpICogMTAwfSUsICR7Y2xhbXB0KHRoaXMubCkgKiAxMDB9JSR7YSA9PT0gMSA/IFwiKVwiIDogYCwgJHthfSlgfWA7XG4gIH1cbn0pKTtcblxuZnVuY3Rpb24gY2xhbXBoKHZhbHVlKSB7XG4gIHZhbHVlID0gKHZhbHVlIHx8IDApICUgMzYwO1xuICByZXR1cm4gdmFsdWUgPCAwID8gdmFsdWUgKyAzNjAgOiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gY2xhbXB0KHZhbHVlKSB7XG4gIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbigxLCB2YWx1ZSB8fCAwKSk7XG59XG5cbi8qIEZyb20gRnZEIDEzLjM3LCBDU1MgQ29sb3IgTW9kdWxlIExldmVsIDMgKi9cbmZ1bmN0aW9uIGhzbDJyZ2IoaCwgbTEsIG0yKSB7XG4gIHJldHVybiAoaCA8IDYwID8gbTEgKyAobTIgLSBtMSkgKiBoIC8gNjBcbiAgICAgIDogaCA8IDE4MCA/IG0yXG4gICAgICA6IGggPCAyNDAgPyBtMSArIChtMiAtIG0xKSAqICgyNDAgLSBoKSAvIDYwXG4gICAgICA6IG0xKSAqIDI1NTtcbn1cbiIsCiAgICAiZXhwb3J0IGNvbnN0IHJhZGlhbnMgPSBNYXRoLlBJIC8gMTgwO1xuZXhwb3J0IGNvbnN0IGRlZ3JlZXMgPSAxODAgLyBNYXRoLlBJO1xuIiwKICAgICJpbXBvcnQgZGVmaW5lLCB7ZXh0ZW5kfSBmcm9tIFwiLi9kZWZpbmUuanNcIjtcbmltcG9ydCB7Q29sb3IsIHJnYkNvbnZlcnQsIFJnYn0gZnJvbSBcIi4vY29sb3IuanNcIjtcbmltcG9ydCB7ZGVncmVlcywgcmFkaWFuc30gZnJvbSBcIi4vbWF0aC5qc1wiO1xuXG4vLyBodHRwczovL29ic2VydmFibGVocS5jb20vQG1ib3N0b2NrL2xhYi1hbmQtcmdiXG5jb25zdCBLID0gMTgsXG4gICAgWG4gPSAwLjk2NDIyLFxuICAgIFluID0gMSxcbiAgICBabiA9IDAuODI1MjEsXG4gICAgdDAgPSA0IC8gMjksXG4gICAgdDEgPSA2IC8gMjksXG4gICAgdDIgPSAzICogdDEgKiB0MSxcbiAgICB0MyA9IHQxICogdDEgKiB0MTtcblxuZnVuY3Rpb24gbGFiQ29udmVydChvKSB7XG4gIGlmIChvIGluc3RhbmNlb2YgTGFiKSByZXR1cm4gbmV3IExhYihvLmwsIG8uYSwgby5iLCBvLm9wYWNpdHkpO1xuICBpZiAobyBpbnN0YW5jZW9mIEhjbCkgcmV0dXJuIGhjbDJsYWIobyk7XG4gIGlmICghKG8gaW5zdGFuY2VvZiBSZ2IpKSBvID0gcmdiQ29udmVydChvKTtcbiAgdmFyIHIgPSByZ2IybHJnYihvLnIpLFxuICAgICAgZyA9IHJnYjJscmdiKG8uZyksXG4gICAgICBiID0gcmdiMmxyZ2Ioby5iKSxcbiAgICAgIHkgPSB4eXoybGFiKCgwLjIyMjUwNDUgKiByICsgMC43MTY4Nzg2ICogZyArIDAuMDYwNjE2OSAqIGIpIC8gWW4pLCB4LCB6O1xuICBpZiAociA9PT0gZyAmJiBnID09PSBiKSB4ID0geiA9IHk7IGVsc2Uge1xuICAgIHggPSB4eXoybGFiKCgwLjQzNjA3NDcgKiByICsgMC4zODUwNjQ5ICogZyArIDAuMTQzMDgwNCAqIGIpIC8gWG4pO1xuICAgIHogPSB4eXoybGFiKCgwLjAxMzkzMjIgKiByICsgMC4wOTcxMDQ1ICogZyArIDAuNzE0MTczMyAqIGIpIC8gWm4pO1xuICB9XG4gIHJldHVybiBuZXcgTGFiKDExNiAqIHkgLSAxNiwgNTAwICogKHggLSB5KSwgMjAwICogKHkgLSB6KSwgby5vcGFjaXR5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXkobCwgb3BhY2l0eSkge1xuICByZXR1cm4gbmV3IExhYihsLCAwLCAwLCBvcGFjaXR5ID09IG51bGwgPyAxIDogb3BhY2l0eSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxhYihsLCBhLCBiLCBvcGFjaXR5KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAxID8gbGFiQ29udmVydChsKSA6IG5ldyBMYWIobCwgYSwgYiwgb3BhY2l0eSA9PSBudWxsID8gMSA6IG9wYWNpdHkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTGFiKGwsIGEsIGIsIG9wYWNpdHkpIHtcbiAgdGhpcy5sID0gK2w7XG4gIHRoaXMuYSA9ICthO1xuICB0aGlzLmIgPSArYjtcbiAgdGhpcy5vcGFjaXR5ID0gK29wYWNpdHk7XG59XG5cbmRlZmluZShMYWIsIGxhYiwgZXh0ZW5kKENvbG9yLCB7XG4gIGJyaWdodGVyKGspIHtcbiAgICByZXR1cm4gbmV3IExhYih0aGlzLmwgKyBLICogKGsgPT0gbnVsbCA/IDEgOiBrKSwgdGhpcy5hLCB0aGlzLmIsIHRoaXMub3BhY2l0eSk7XG4gIH0sXG4gIGRhcmtlcihrKSB7XG4gICAgcmV0dXJuIG5ldyBMYWIodGhpcy5sIC0gSyAqIChrID09IG51bGwgPyAxIDogayksIHRoaXMuYSwgdGhpcy5iLCB0aGlzLm9wYWNpdHkpO1xuICB9LFxuICByZ2IoKSB7XG4gICAgdmFyIHkgPSAodGhpcy5sICsgMTYpIC8gMTE2LFxuICAgICAgICB4ID0gaXNOYU4odGhpcy5hKSA/IHkgOiB5ICsgdGhpcy5hIC8gNTAwLFxuICAgICAgICB6ID0gaXNOYU4odGhpcy5iKSA/IHkgOiB5IC0gdGhpcy5iIC8gMjAwO1xuICAgIHggPSBYbiAqIGxhYjJ4eXooeCk7XG4gICAgeSA9IFluICogbGFiMnh5eih5KTtcbiAgICB6ID0gWm4gKiBsYWIyeHl6KHopO1xuICAgIHJldHVybiBuZXcgUmdiKFxuICAgICAgbHJnYjJyZ2IoIDMuMTMzODU2MSAqIHggLSAxLjYxNjg2NjcgKiB5IC0gMC40OTA2MTQ2ICogeiksXG4gICAgICBscmdiMnJnYigtMC45Nzg3Njg0ICogeCArIDEuOTE2MTQxNSAqIHkgKyAwLjAzMzQ1NDAgKiB6KSxcbiAgICAgIGxyZ2IycmdiKCAwLjA3MTk0NTMgKiB4IC0gMC4yMjg5OTE0ICogeSArIDEuNDA1MjQyNyAqIHopLFxuICAgICAgdGhpcy5vcGFjaXR5XG4gICAgKTtcbiAgfVxufSkpO1xuXG5mdW5jdGlvbiB4eXoybGFiKHQpIHtcbiAgcmV0dXJuIHQgPiB0MyA/IE1hdGgucG93KHQsIDEgLyAzKSA6IHQgLyB0MiArIHQwO1xufVxuXG5mdW5jdGlvbiBsYWIyeHl6KHQpIHtcbiAgcmV0dXJuIHQgPiB0MSA/IHQgKiB0ICogdCA6IHQyICogKHQgLSB0MCk7XG59XG5cbmZ1bmN0aW9uIGxyZ2IycmdiKHgpIHtcbiAgcmV0dXJuIDI1NSAqICh4IDw9IDAuMDAzMTMwOCA/IDEyLjkyICogeCA6IDEuMDU1ICogTWF0aC5wb3coeCwgMSAvIDIuNCkgLSAwLjA1NSk7XG59XG5cbmZ1bmN0aW9uIHJnYjJscmdiKHgpIHtcbiAgcmV0dXJuICh4IC89IDI1NSkgPD0gMC4wNDA0NSA/IHggLyAxMi45MiA6IE1hdGgucG93KCh4ICsgMC4wNTUpIC8gMS4wNTUsIDIuNCk7XG59XG5cbmZ1bmN0aW9uIGhjbENvbnZlcnQobykge1xuICBpZiAobyBpbnN0YW5jZW9mIEhjbCkgcmV0dXJuIG5ldyBIY2woby5oLCBvLmMsIG8ubCwgby5vcGFjaXR5KTtcbiAgaWYgKCEobyBpbnN0YW5jZW9mIExhYikpIG8gPSBsYWJDb252ZXJ0KG8pO1xuICBpZiAoby5hID09PSAwICYmIG8uYiA9PT0gMCkgcmV0dXJuIG5ldyBIY2woTmFOLCAwIDwgby5sICYmIG8ubCA8IDEwMCA/IDAgOiBOYU4sIG8ubCwgby5vcGFjaXR5KTtcbiAgdmFyIGggPSBNYXRoLmF0YW4yKG8uYiwgby5hKSAqIGRlZ3JlZXM7XG4gIHJldHVybiBuZXcgSGNsKGggPCAwID8gaCArIDM2MCA6IGgsIE1hdGguc3FydChvLmEgKiBvLmEgKyBvLmIgKiBvLmIpLCBvLmwsIG8ub3BhY2l0eSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsY2gobCwgYywgaCwgb3BhY2l0eSkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA9PT0gMSA/IGhjbENvbnZlcnQobCkgOiBuZXcgSGNsKGgsIGMsIGwsIG9wYWNpdHkgPT0gbnVsbCA/IDEgOiBvcGFjaXR5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhjbChoLCBjLCBsLCBvcGFjaXR5KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAxID8gaGNsQ29udmVydChoKSA6IG5ldyBIY2woaCwgYywgbCwgb3BhY2l0eSA9PSBudWxsID8gMSA6IG9wYWNpdHkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gSGNsKGgsIGMsIGwsIG9wYWNpdHkpIHtcbiAgdGhpcy5oID0gK2g7XG4gIHRoaXMuYyA9ICtjO1xuICB0aGlzLmwgPSArbDtcbiAgdGhpcy5vcGFjaXR5ID0gK29wYWNpdHk7XG59XG5cbmZ1bmN0aW9uIGhjbDJsYWIobykge1xuICBpZiAoaXNOYU4oby5oKSkgcmV0dXJuIG5ldyBMYWIoby5sLCAwLCAwLCBvLm9wYWNpdHkpO1xuICB2YXIgaCA9IG8uaCAqIHJhZGlhbnM7XG4gIHJldHVybiBuZXcgTGFiKG8ubCwgTWF0aC5jb3MoaCkgKiBvLmMsIE1hdGguc2luKGgpICogby5jLCBvLm9wYWNpdHkpO1xufVxuXG5kZWZpbmUoSGNsLCBoY2wsIGV4dGVuZChDb2xvciwge1xuICBicmlnaHRlcihrKSB7XG4gICAgcmV0dXJuIG5ldyBIY2wodGhpcy5oLCB0aGlzLmMsIHRoaXMubCArIEsgKiAoayA9PSBudWxsID8gMSA6IGspLCB0aGlzLm9wYWNpdHkpO1xuICB9LFxuICBkYXJrZXIoaykge1xuICAgIHJldHVybiBuZXcgSGNsKHRoaXMuaCwgdGhpcy5jLCB0aGlzLmwgLSBLICogKGsgPT0gbnVsbCA/IDEgOiBrKSwgdGhpcy5vcGFjaXR5KTtcbiAgfSxcbiAgcmdiKCkge1xuICAgIHJldHVybiBoY2wybGFiKHRoaXMpLnJnYigpO1xuICB9XG59KSk7XG4iLAogICAgImV4cG9ydCB7ZGVmYXVsdCBhcyBjb2xvciwgcmdiLCBoc2x9IGZyb20gXCIuL2NvbG9yLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgbGFiLCBoY2wsIGxjaCwgZ3JheX0gZnJvbSBcIi4vbGFiLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgY3ViZWhlbGl4fSBmcm9tIFwiLi9jdWJlaGVsaXguanNcIjtcbiIsCiAgICAiZXhwb3J0IGZ1bmN0aW9uIGJhc2lzKHQxLCB2MCwgdjEsIHYyLCB2Mykge1xuICB2YXIgdDIgPSB0MSAqIHQxLCB0MyA9IHQyICogdDE7XG4gIHJldHVybiAoKDEgLSAzICogdDEgKyAzICogdDIgLSB0MykgKiB2MFxuICAgICAgKyAoNCAtIDYgKiB0MiArIDMgKiB0MykgKiB2MVxuICAgICAgKyAoMSArIDMgKiB0MSArIDMgKiB0MiAtIDMgKiB0MykgKiB2MlxuICAgICAgKyB0MyAqIHYzKSAvIDY7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlcykge1xuICB2YXIgbiA9IHZhbHVlcy5sZW5ndGggLSAxO1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHZhciBpID0gdCA8PSAwID8gKHQgPSAwKSA6IHQgPj0gMSA/ICh0ID0gMSwgbiAtIDEpIDogTWF0aC5mbG9vcih0ICogbiksXG4gICAgICAgIHYxID0gdmFsdWVzW2ldLFxuICAgICAgICB2MiA9IHZhbHVlc1tpICsgMV0sXG4gICAgICAgIHYwID0gaSA+IDAgPyB2YWx1ZXNbaSAtIDFdIDogMiAqIHYxIC0gdjIsXG4gICAgICAgIHYzID0gaSA8IG4gLSAxID8gdmFsdWVzW2kgKyAyXSA6IDIgKiB2MiAtIHYxO1xuICAgIHJldHVybiBiYXNpcygodCAtIGkgLyBuKSAqIG4sIHYwLCB2MSwgdjIsIHYzKTtcbiAgfTtcbn1cbiIsCiAgICAiaW1wb3J0IHtiYXNpc30gZnJvbSBcIi4vYmFzaXMuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWVzKSB7XG4gIHZhciBuID0gdmFsdWVzLmxlbmd0aDtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICB2YXIgaSA9IE1hdGguZmxvb3IoKCh0ICU9IDEpIDwgMCA/ICsrdCA6IHQpICogbiksXG4gICAgICAgIHYwID0gdmFsdWVzWyhpICsgbiAtIDEpICUgbl0sXG4gICAgICAgIHYxID0gdmFsdWVzW2kgJSBuXSxcbiAgICAgICAgdjIgPSB2YWx1ZXNbKGkgKyAxKSAlIG5dLFxuICAgICAgICB2MyA9IHZhbHVlc1soaSArIDIpICUgbl07XG4gICAgcmV0dXJuIGJhc2lzKCh0IC0gaSAvIG4pICogbiwgdjAsIHYxLCB2MiwgdjMpO1xuICB9O1xufVxuIiwKICAgICJleHBvcnQgZGVmYXVsdCB4ID0+ICgpID0+IHg7XG4iLAogICAgImltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuXG5mdW5jdGlvbiBsaW5lYXIoYSwgZCkge1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHJldHVybiBhICsgdCAqIGQ7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGV4cG9uZW50aWFsKGEsIGIsIHkpIHtcbiAgcmV0dXJuIGEgPSBNYXRoLnBvdyhhLCB5KSwgYiA9IE1hdGgucG93KGIsIHkpIC0gYSwgeSA9IDEgLyB5LCBmdW5jdGlvbih0KSB7XG4gICAgcmV0dXJuIE1hdGgucG93KGEgKyB0ICogYiwgeSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBodWUoYSwgYikge1xuICB2YXIgZCA9IGIgLSBhO1xuICByZXR1cm4gZCA/IGxpbmVhcihhLCBkID4gMTgwIHx8IGQgPCAtMTgwID8gZCAtIDM2MCAqIE1hdGgucm91bmQoZCAvIDM2MCkgOiBkKSA6IGNvbnN0YW50KGlzTmFOKGEpID8gYiA6IGEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2FtbWEoeSkge1xuICByZXR1cm4gKHkgPSAreSkgPT09IDEgPyBub2dhbW1hIDogZnVuY3Rpb24oYSwgYikge1xuICAgIHJldHVybiBiIC0gYSA/IGV4cG9uZW50aWFsKGEsIGIsIHkpIDogY29uc3RhbnQoaXNOYU4oYSkgPyBiIDogYSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vZ2FtbWEoYSwgYikge1xuICB2YXIgZCA9IGIgLSBhO1xuICByZXR1cm4gZCA/IGxpbmVhcihhLCBkKSA6IGNvbnN0YW50KGlzTmFOKGEpID8gYiA6IGEpO1xufVxuIiwKICAgICJpbXBvcnQge3JnYiBhcyBjb2xvclJnYn0gZnJvbSBcImQzLWNvbG9yXCI7XG5pbXBvcnQgYmFzaXMgZnJvbSBcIi4vYmFzaXMuanNcIjtcbmltcG9ydCBiYXNpc0Nsb3NlZCBmcm9tIFwiLi9iYXNpc0Nsb3NlZC5qc1wiO1xuaW1wb3J0IG5vZ2FtbWEsIHtnYW1tYX0gZnJvbSBcIi4vY29sb3IuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgKGZ1bmN0aW9uIHJnYkdhbW1hKHkpIHtcbiAgdmFyIGNvbG9yID0gZ2FtbWEoeSk7XG5cbiAgZnVuY3Rpb24gcmdiKHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgciA9IGNvbG9yKChzdGFydCA9IGNvbG9yUmdiKHN0YXJ0KSkuciwgKGVuZCA9IGNvbG9yUmdiKGVuZCkpLnIpLFxuICAgICAgICBnID0gY29sb3Ioc3RhcnQuZywgZW5kLmcpLFxuICAgICAgICBiID0gY29sb3Ioc3RhcnQuYiwgZW5kLmIpLFxuICAgICAgICBvcGFjaXR5ID0gbm9nYW1tYShzdGFydC5vcGFjaXR5LCBlbmQub3BhY2l0eSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICAgIHN0YXJ0LnIgPSByKHQpO1xuICAgICAgc3RhcnQuZyA9IGcodCk7XG4gICAgICBzdGFydC5iID0gYih0KTtcbiAgICAgIHN0YXJ0Lm9wYWNpdHkgPSBvcGFjaXR5KHQpO1xuICAgICAgcmV0dXJuIHN0YXJ0ICsgXCJcIjtcbiAgICB9O1xuICB9XG5cbiAgcmdiLmdhbW1hID0gcmdiR2FtbWE7XG5cbiAgcmV0dXJuIHJnYjtcbn0pKDEpO1xuXG5mdW5jdGlvbiByZ2JTcGxpbmUoc3BsaW5lKSB7XG4gIHJldHVybiBmdW5jdGlvbihjb2xvcnMpIHtcbiAgICB2YXIgbiA9IGNvbG9ycy5sZW5ndGgsXG4gICAgICAgIHIgPSBuZXcgQXJyYXkobiksXG4gICAgICAgIGcgPSBuZXcgQXJyYXkobiksXG4gICAgICAgIGIgPSBuZXcgQXJyYXkobiksXG4gICAgICAgIGksIGNvbG9yO1xuICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIGNvbG9yID0gY29sb3JSZ2IoY29sb3JzW2ldKTtcbiAgICAgIHJbaV0gPSBjb2xvci5yIHx8IDA7XG4gICAgICBnW2ldID0gY29sb3IuZyB8fCAwO1xuICAgICAgYltpXSA9IGNvbG9yLmIgfHwgMDtcbiAgICB9XG4gICAgciA9IHNwbGluZShyKTtcbiAgICBnID0gc3BsaW5lKGcpO1xuICAgIGIgPSBzcGxpbmUoYik7XG4gICAgY29sb3Iub3BhY2l0eSA9IDE7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICAgIGNvbG9yLnIgPSByKHQpO1xuICAgICAgY29sb3IuZyA9IGcodCk7XG4gICAgICBjb2xvci5iID0gYih0KTtcbiAgICAgIHJldHVybiBjb2xvciArIFwiXCI7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IHZhciByZ2JCYXNpcyA9IHJnYlNwbGluZShiYXNpcyk7XG5leHBvcnQgdmFyIHJnYkJhc2lzQ2xvc2VkID0gcmdiU3BsaW5lKGJhc2lzQ2xvc2VkKTtcbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICBpZiAoIWIpIGIgPSBbXTtcbiAgdmFyIG4gPSBhID8gTWF0aC5taW4oYi5sZW5ndGgsIGEubGVuZ3RoKSA6IDAsXG4gICAgICBjID0gYi5zbGljZSgpLFxuICAgICAgaTtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSBjW2ldID0gYVtpXSAqICgxIC0gdCkgKyBiW2ldICogdDtcbiAgICByZXR1cm4gYztcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyQXJyYXkoeCkge1xuICByZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KHgpICYmICEoeCBpbnN0YW5jZW9mIERhdGFWaWV3KTtcbn1cbiIsCiAgICAiaW1wb3J0IHZhbHVlIGZyb20gXCIuL3ZhbHVlLmpzXCI7XG5pbXBvcnQgbnVtYmVyQXJyYXksIHtpc051bWJlckFycmF5fSBmcm9tIFwiLi9udW1iZXJBcnJheS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihhLCBiKSB7XG4gIHJldHVybiAoaXNOdW1iZXJBcnJheShiKSA/IG51bWJlckFycmF5IDogZ2VuZXJpY0FycmF5KShhLCBiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyaWNBcnJheShhLCBiKSB7XG4gIHZhciBuYiA9IGIgPyBiLmxlbmd0aCA6IDAsXG4gICAgICBuYSA9IGEgPyBNYXRoLm1pbihuYiwgYS5sZW5ndGgpIDogMCxcbiAgICAgIHggPSBuZXcgQXJyYXkobmEpLFxuICAgICAgYyA9IG5ldyBBcnJheShuYiksXG4gICAgICBpO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBuYTsgKytpKSB4W2ldID0gdmFsdWUoYVtpXSwgYltpXSk7XG4gIGZvciAoOyBpIDwgbmI7ICsraSkgY1tpXSA9IGJbaV07XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbmE7ICsraSkgY1tpXSA9IHhbaV0odCk7XG4gICAgcmV0dXJuIGM7XG4gIH07XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgdmFyIGQgPSBuZXcgRGF0ZTtcbiAgcmV0dXJuIGEgPSArYSwgYiA9ICtiLCBmdW5jdGlvbih0KSB7XG4gICAgcmV0dXJuIGQuc2V0VGltZShhICogKDEgLSB0KSArIGIgKiB0KSwgZDtcbiAgfTtcbn1cbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICByZXR1cm4gYSA9ICthLCBiID0gK2IsIGZ1bmN0aW9uKHQpIHtcbiAgICByZXR1cm4gYSAqICgxIC0gdCkgKyBiICogdDtcbiAgfTtcbn1cbiIsCiAgICAiaW1wb3J0IHZhbHVlIGZyb20gXCIuL3ZhbHVlLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgdmFyIGkgPSB7fSxcbiAgICAgIGMgPSB7fSxcbiAgICAgIGs7XG5cbiAgaWYgKGEgPT09IG51bGwgfHwgdHlwZW9mIGEgIT09IFwib2JqZWN0XCIpIGEgPSB7fTtcbiAgaWYgKGIgPT09IG51bGwgfHwgdHlwZW9mIGIgIT09IFwib2JqZWN0XCIpIGIgPSB7fTtcblxuICBmb3IgKGsgaW4gYikge1xuICAgIGlmIChrIGluIGEpIHtcbiAgICAgIGlba10gPSB2YWx1ZShhW2tdLCBiW2tdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY1trXSA9IGJba107XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICBmb3IgKGsgaW4gaSkgY1trXSA9IGlba10odCk7XG4gICAgcmV0dXJuIGM7XG4gIH07XG59XG4iLAogICAgImltcG9ydCBudW1iZXIgZnJvbSBcIi4vbnVtYmVyLmpzXCI7XG5cbnZhciByZUEgPSAvWy0rXT8oPzpcXGQrXFwuP1xcZCp8XFwuP1xcZCspKD86W2VFXVstK10/XFxkKyk/L2csXG4gICAgcmVCID0gbmV3IFJlZ0V4cChyZUEuc291cmNlLCBcImdcIik7XG5cbmZ1bmN0aW9uIHplcm8oYikge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGI7XG4gIH07XG59XG5cbmZ1bmN0aW9uIG9uZShiKSB7XG4gIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgcmV0dXJuIGIodCkgKyBcIlwiO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihhLCBiKSB7XG4gIHZhciBiaSA9IHJlQS5sYXN0SW5kZXggPSByZUIubGFzdEluZGV4ID0gMCwgLy8gc2NhbiBpbmRleCBmb3IgbmV4dCBudW1iZXIgaW4gYlxuICAgICAgYW0sIC8vIGN1cnJlbnQgbWF0Y2ggaW4gYVxuICAgICAgYm0sIC8vIGN1cnJlbnQgbWF0Y2ggaW4gYlxuICAgICAgYnMsIC8vIHN0cmluZyBwcmVjZWRpbmcgY3VycmVudCBudW1iZXIgaW4gYiwgaWYgYW55XG4gICAgICBpID0gLTEsIC8vIGluZGV4IGluIHNcbiAgICAgIHMgPSBbXSwgLy8gc3RyaW5nIGNvbnN0YW50cyBhbmQgcGxhY2Vob2xkZXJzXG4gICAgICBxID0gW107IC8vIG51bWJlciBpbnRlcnBvbGF0b3JzXG5cbiAgLy8gQ29lcmNlIGlucHV0cyB0byBzdHJpbmdzLlxuICBhID0gYSArIFwiXCIsIGIgPSBiICsgXCJcIjtcblxuICAvLyBJbnRlcnBvbGF0ZSBwYWlycyBvZiBudW1iZXJzIGluIGEgJiBiLlxuICB3aGlsZSAoKGFtID0gcmVBLmV4ZWMoYSkpXG4gICAgICAmJiAoYm0gPSByZUIuZXhlYyhiKSkpIHtcbiAgICBpZiAoKGJzID0gYm0uaW5kZXgpID4gYmkpIHsgLy8gYSBzdHJpbmcgcHJlY2VkZXMgdGhlIG5leHQgbnVtYmVyIGluIGJcbiAgICAgIGJzID0gYi5zbGljZShiaSwgYnMpO1xuICAgICAgaWYgKHNbaV0pIHNbaV0gKz0gYnM7IC8vIGNvYWxlc2NlIHdpdGggcHJldmlvdXMgc3RyaW5nXG4gICAgICBlbHNlIHNbKytpXSA9IGJzO1xuICAgIH1cbiAgICBpZiAoKGFtID0gYW1bMF0pID09PSAoYm0gPSBibVswXSkpIHsgLy8gbnVtYmVycyBpbiBhICYgYiBtYXRjaFxuICAgICAgaWYgKHNbaV0pIHNbaV0gKz0gYm07IC8vIGNvYWxlc2NlIHdpdGggcHJldmlvdXMgc3RyaW5nXG4gICAgICBlbHNlIHNbKytpXSA9IGJtO1xuICAgIH0gZWxzZSB7IC8vIGludGVycG9sYXRlIG5vbi1tYXRjaGluZyBudW1iZXJzXG4gICAgICBzWysraV0gPSBudWxsO1xuICAgICAgcS5wdXNoKHtpOiBpLCB4OiBudW1iZXIoYW0sIGJtKX0pO1xuICAgIH1cbiAgICBiaSA9IHJlQi5sYXN0SW5kZXg7XG4gIH1cblxuICAvLyBBZGQgcmVtYWlucyBvZiBiLlxuICBpZiAoYmkgPCBiLmxlbmd0aCkge1xuICAgIGJzID0gYi5zbGljZShiaSk7XG4gICAgaWYgKHNbaV0pIHNbaV0gKz0gYnM7IC8vIGNvYWxlc2NlIHdpdGggcHJldmlvdXMgc3RyaW5nXG4gICAgZWxzZSBzWysraV0gPSBicztcbiAgfVxuXG4gIC8vIFNwZWNpYWwgb3B0aW1pemF0aW9uIGZvciBvbmx5IGEgc2luZ2xlIG1hdGNoLlxuICAvLyBPdGhlcndpc2UsIGludGVycG9sYXRlIGVhY2ggb2YgdGhlIG51bWJlcnMgYW5kIHJlam9pbiB0aGUgc3RyaW5nLlxuICByZXR1cm4gcy5sZW5ndGggPCAyID8gKHFbMF1cbiAgICAgID8gb25lKHFbMF0ueClcbiAgICAgIDogemVybyhiKSlcbiAgICAgIDogKGIgPSBxLmxlbmd0aCwgZnVuY3Rpb24odCkge1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBvOyBpIDwgYjsgKytpKSBzWyhvID0gcVtpXSkuaV0gPSBvLngodCk7XG4gICAgICAgICAgcmV0dXJuIHMuam9pbihcIlwiKTtcbiAgICAgICAgfSk7XG59XG4iLAogICAgImltcG9ydCB7Y29sb3J9IGZyb20gXCJkMy1jb2xvclwiO1xuaW1wb3J0IHJnYiBmcm9tIFwiLi9yZ2IuanNcIjtcbmltcG9ydCB7Z2VuZXJpY0FycmF5fSBmcm9tIFwiLi9hcnJheS5qc1wiO1xuaW1wb3J0IGRhdGUgZnJvbSBcIi4vZGF0ZS5qc1wiO1xuaW1wb3J0IG51bWJlciBmcm9tIFwiLi9udW1iZXIuanNcIjtcbmltcG9ydCBvYmplY3QgZnJvbSBcIi4vb2JqZWN0LmpzXCI7XG5pbXBvcnQgc3RyaW5nIGZyb20gXCIuL3N0cmluZy5qc1wiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQgbnVtYmVyQXJyYXksIHtpc051bWJlckFycmF5fSBmcm9tIFwiLi9udW1iZXJBcnJheS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihhLCBiKSB7XG4gIHZhciB0ID0gdHlwZW9mIGIsIGM7XG4gIHJldHVybiBiID09IG51bGwgfHwgdCA9PT0gXCJib29sZWFuXCIgPyBjb25zdGFudChiKVxuICAgICAgOiAodCA9PT0gXCJudW1iZXJcIiA/IG51bWJlclxuICAgICAgOiB0ID09PSBcInN0cmluZ1wiID8gKChjID0gY29sb3IoYikpID8gKGIgPSBjLCByZ2IpIDogc3RyaW5nKVxuICAgICAgOiBiIGluc3RhbmNlb2YgY29sb3IgPyByZ2JcbiAgICAgIDogYiBpbnN0YW5jZW9mIERhdGUgPyBkYXRlXG4gICAgICA6IGlzTnVtYmVyQXJyYXkoYikgPyBudW1iZXJBcnJheVxuICAgICAgOiBBcnJheS5pc0FycmF5KGIpID8gZ2VuZXJpY0FycmF5XG4gICAgICA6IHR5cGVvZiBiLnZhbHVlT2YgIT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgYi50b1N0cmluZyAhPT0gXCJmdW5jdGlvblwiIHx8IGlzTmFOKGIpID8gb2JqZWN0XG4gICAgICA6IG51bWJlcikoYSwgYik7XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgcmV0dXJuIGEgPSArYSwgYiA9ICtiLCBmdW5jdGlvbih0KSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoYSAqICgxIC0gdCkgKyBiICogdCk7XG4gIH07XG59XG4iLAogICAgInZhciBkZWdyZWVzID0gMTgwIC8gTWF0aC5QSTtcblxuZXhwb3J0IHZhciBpZGVudGl0eSA9IHtcbiAgdHJhbnNsYXRlWDogMCxcbiAgdHJhbnNsYXRlWTogMCxcbiAgcm90YXRlOiAwLFxuICBza2V3WDogMCxcbiAgc2NhbGVYOiAxLFxuICBzY2FsZVk6IDFcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIsIGMsIGQsIGUsIGYpIHtcbiAgdmFyIHNjYWxlWCwgc2NhbGVZLCBza2V3WDtcbiAgaWYgKHNjYWxlWCA9IE1hdGguc3FydChhICogYSArIGIgKiBiKSkgYSAvPSBzY2FsZVgsIGIgLz0gc2NhbGVYO1xuICBpZiAoc2tld1ggPSBhICogYyArIGIgKiBkKSBjIC09IGEgKiBza2V3WCwgZCAtPSBiICogc2tld1g7XG4gIGlmIChzY2FsZVkgPSBNYXRoLnNxcnQoYyAqIGMgKyBkICogZCkpIGMgLz0gc2NhbGVZLCBkIC89IHNjYWxlWSwgc2tld1ggLz0gc2NhbGVZO1xuICBpZiAoYSAqIGQgPCBiICogYykgYSA9IC1hLCBiID0gLWIsIHNrZXdYID0gLXNrZXdYLCBzY2FsZVggPSAtc2NhbGVYO1xuICByZXR1cm4ge1xuICAgIHRyYW5zbGF0ZVg6IGUsXG4gICAgdHJhbnNsYXRlWTogZixcbiAgICByb3RhdGU6IE1hdGguYXRhbjIoYiwgYSkgKiBkZWdyZWVzLFxuICAgIHNrZXdYOiBNYXRoLmF0YW4oc2tld1gpICogZGVncmVlcyxcbiAgICBzY2FsZVg6IHNjYWxlWCxcbiAgICBzY2FsZVk6IHNjYWxlWVxuICB9O1xufVxuIiwKICAgICJpbXBvcnQgZGVjb21wb3NlLCB7aWRlbnRpdHl9IGZyb20gXCIuL2RlY29tcG9zZS5qc1wiO1xuXG52YXIgc3ZnTm9kZTtcblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNzcyh2YWx1ZSkge1xuICBjb25zdCBtID0gbmV3ICh0eXBlb2YgRE9NTWF0cml4ID09PSBcImZ1bmN0aW9uXCIgPyBET01NYXRyaXggOiBXZWJLaXRDU1NNYXRyaXgpKHZhbHVlICsgXCJcIik7XG4gIHJldHVybiBtLmlzSWRlbnRpdHkgPyBpZGVudGl0eSA6IGRlY29tcG9zZShtLmEsIG0uYiwgbS5jLCBtLmQsIG0uZSwgbS5mKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3ZnKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gaWRlbnRpdHk7XG4gIGlmICghc3ZnTm9kZSkgc3ZnTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwiZ1wiKTtcbiAgc3ZnTm9kZS5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIiwgdmFsdWUpO1xuICBpZiAoISh2YWx1ZSA9IHN2Z05vZGUudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSkpIHJldHVybiBpZGVudGl0eTtcbiAgdmFsdWUgPSB2YWx1ZS5tYXRyaXg7XG4gIHJldHVybiBkZWNvbXBvc2UodmFsdWUuYSwgdmFsdWUuYiwgdmFsdWUuYywgdmFsdWUuZCwgdmFsdWUuZSwgdmFsdWUuZik7XG59XG4iLAogICAgImltcG9ydCBudW1iZXIgZnJvbSBcIi4uL251bWJlci5qc1wiO1xuaW1wb3J0IHtwYXJzZUNzcywgcGFyc2VTdmd9IGZyb20gXCIuL3BhcnNlLmpzXCI7XG5cbmZ1bmN0aW9uIGludGVycG9sYXRlVHJhbnNmb3JtKHBhcnNlLCBweENvbW1hLCBweFBhcmVuLCBkZWdQYXJlbikge1xuXG4gIGZ1bmN0aW9uIHBvcChzKSB7XG4gICAgcmV0dXJuIHMubGVuZ3RoID8gcy5wb3AoKSArIFwiIFwiIDogXCJcIjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zbGF0ZSh4YSwgeWEsIHhiLCB5YiwgcywgcSkge1xuICAgIGlmICh4YSAhPT0geGIgfHwgeWEgIT09IHliKSB7XG4gICAgICB2YXIgaSA9IHMucHVzaChcInRyYW5zbGF0ZShcIiwgbnVsbCwgcHhDb21tYSwgbnVsbCwgcHhQYXJlbik7XG4gICAgICBxLnB1c2goe2k6IGkgLSA0LCB4OiBudW1iZXIoeGEsIHhiKX0sIHtpOiBpIC0gMiwgeDogbnVtYmVyKHlhLCB5Yil9KTtcbiAgICB9IGVsc2UgaWYgKHhiIHx8IHliKSB7XG4gICAgICBzLnB1c2goXCJ0cmFuc2xhdGUoXCIgKyB4YiArIHB4Q29tbWEgKyB5YiArIHB4UGFyZW4pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJvdGF0ZShhLCBiLCBzLCBxKSB7XG4gICAgaWYgKGEgIT09IGIpIHtcbiAgICAgIGlmIChhIC0gYiA+IDE4MCkgYiArPSAzNjA7IGVsc2UgaWYgKGIgLSBhID4gMTgwKSBhICs9IDM2MDsgLy8gc2hvcnRlc3QgcGF0aFxuICAgICAgcS5wdXNoKHtpOiBzLnB1c2gocG9wKHMpICsgXCJyb3RhdGUoXCIsIG51bGwsIGRlZ1BhcmVuKSAtIDIsIHg6IG51bWJlcihhLCBiKX0pO1xuICAgIH0gZWxzZSBpZiAoYikge1xuICAgICAgcy5wdXNoKHBvcChzKSArIFwicm90YXRlKFwiICsgYiArIGRlZ1BhcmVuKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBza2V3WChhLCBiLCBzLCBxKSB7XG4gICAgaWYgKGEgIT09IGIpIHtcbiAgICAgIHEucHVzaCh7aTogcy5wdXNoKHBvcChzKSArIFwic2tld1goXCIsIG51bGwsIGRlZ1BhcmVuKSAtIDIsIHg6IG51bWJlcihhLCBiKX0pO1xuICAgIH0gZWxzZSBpZiAoYikge1xuICAgICAgcy5wdXNoKHBvcChzKSArIFwic2tld1goXCIgKyBiICsgZGVnUGFyZW4pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHNjYWxlKHhhLCB5YSwgeGIsIHliLCBzLCBxKSB7XG4gICAgaWYgKHhhICE9PSB4YiB8fCB5YSAhPT0geWIpIHtcbiAgICAgIHZhciBpID0gcy5wdXNoKHBvcChzKSArIFwic2NhbGUoXCIsIG51bGwsIFwiLFwiLCBudWxsLCBcIilcIik7XG4gICAgICBxLnB1c2goe2k6IGkgLSA0LCB4OiBudW1iZXIoeGEsIHhiKX0sIHtpOiBpIC0gMiwgeDogbnVtYmVyKHlhLCB5Yil9KTtcbiAgICB9IGVsc2UgaWYgKHhiICE9PSAxIHx8IHliICE9PSAxKSB7XG4gICAgICBzLnB1c2gocG9wKHMpICsgXCJzY2FsZShcIiArIHhiICsgXCIsXCIgKyB5YiArIFwiKVwiKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24oYSwgYikge1xuICAgIHZhciBzID0gW10sIC8vIHN0cmluZyBjb25zdGFudHMgYW5kIHBsYWNlaG9sZGVyc1xuICAgICAgICBxID0gW107IC8vIG51bWJlciBpbnRlcnBvbGF0b3JzXG4gICAgYSA9IHBhcnNlKGEpLCBiID0gcGFyc2UoYik7XG4gICAgdHJhbnNsYXRlKGEudHJhbnNsYXRlWCwgYS50cmFuc2xhdGVZLCBiLnRyYW5zbGF0ZVgsIGIudHJhbnNsYXRlWSwgcywgcSk7XG4gICAgcm90YXRlKGEucm90YXRlLCBiLnJvdGF0ZSwgcywgcSk7XG4gICAgc2tld1goYS5za2V3WCwgYi5za2V3WCwgcywgcSk7XG4gICAgc2NhbGUoYS5zY2FsZVgsIGEuc2NhbGVZLCBiLnNjYWxlWCwgYi5zY2FsZVksIHMsIHEpO1xuICAgIGEgPSBiID0gbnVsbDsgLy8gZ2NcbiAgICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGkgPSAtMSwgbiA9IHEubGVuZ3RoLCBvO1xuICAgICAgd2hpbGUgKCsraSA8IG4pIHNbKG8gPSBxW2ldKS5pXSA9IG8ueCh0KTtcbiAgICAgIHJldHVybiBzLmpvaW4oXCJcIik7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IHZhciBpbnRlcnBvbGF0ZVRyYW5zZm9ybUNzcyA9IGludGVycG9sYXRlVHJhbnNmb3JtKHBhcnNlQ3NzLCBcInB4LCBcIiwgXCJweClcIiwgXCJkZWcpXCIpO1xuZXhwb3J0IHZhciBpbnRlcnBvbGF0ZVRyYW5zZm9ybVN2ZyA9IGludGVycG9sYXRlVHJhbnNmb3JtKHBhcnNlU3ZnLCBcIiwgXCIsIFwiKVwiLCBcIilcIik7XG4iLAogICAgImltcG9ydCB7aGNsIGFzIGNvbG9ySGNsfSBmcm9tIFwiZDMtY29sb3JcIjtcbmltcG9ydCBjb2xvciwge2h1ZX0gZnJvbSBcIi4vY29sb3IuanNcIjtcblxuZnVuY3Rpb24gaGNsKGh1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oc3RhcnQsIGVuZCkge1xuICAgIHZhciBoID0gaHVlKChzdGFydCA9IGNvbG9ySGNsKHN0YXJ0KSkuaCwgKGVuZCA9IGNvbG9ySGNsKGVuZCkpLmgpLFxuICAgICAgICBjID0gY29sb3Ioc3RhcnQuYywgZW5kLmMpLFxuICAgICAgICBsID0gY29sb3Ioc3RhcnQubCwgZW5kLmwpLFxuICAgICAgICBvcGFjaXR5ID0gY29sb3Ioc3RhcnQub3BhY2l0eSwgZW5kLm9wYWNpdHkpO1xuICAgIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgICBzdGFydC5oID0gaCh0KTtcbiAgICAgIHN0YXJ0LmMgPSBjKHQpO1xuICAgICAgc3RhcnQubCA9IGwodCk7XG4gICAgICBzdGFydC5vcGFjaXR5ID0gb3BhY2l0eSh0KTtcbiAgICAgIHJldHVybiBzdGFydCArIFwiXCI7XG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBoY2woaHVlKTtcbmV4cG9ydCB2YXIgaGNsTG9uZyA9IGhjbChjb2xvcik7XG4iLAogICAgImV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZX0gZnJvbSBcIi4vdmFsdWUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZUFycmF5fSBmcm9tIFwiLi9hcnJheS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycG9sYXRlQmFzaXN9IGZyb20gXCIuL2Jhc2lzLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVCYXNpc0Nsb3NlZH0gZnJvbSBcIi4vYmFzaXNDbG9zZWQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZURhdGV9IGZyb20gXCIuL2RhdGUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZURpc2NyZXRlfSBmcm9tIFwiLi9kaXNjcmV0ZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycG9sYXRlSHVlfSBmcm9tIFwiLi9odWUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZU51bWJlcn0gZnJvbSBcIi4vbnVtYmVyLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVOdW1iZXJBcnJheX0gZnJvbSBcIi4vbnVtYmVyQXJyYXkuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZU9iamVjdH0gZnJvbSBcIi4vb2JqZWN0LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVSb3VuZH0gZnJvbSBcIi4vcm91bmQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVN0cmluZ30gZnJvbSBcIi4vc3RyaW5nLmpzXCI7XG5leHBvcnQge2ludGVycG9sYXRlVHJhbnNmb3JtQ3NzLCBpbnRlcnBvbGF0ZVRyYW5zZm9ybVN2Z30gZnJvbSBcIi4vdHJhbnNmb3JtL2luZGV4LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVab29tfSBmcm9tIFwiLi96b29tLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVSZ2IsIHJnYkJhc2lzIGFzIGludGVycG9sYXRlUmdiQmFzaXMsIHJnYkJhc2lzQ2xvc2VkIGFzIGludGVycG9sYXRlUmdiQmFzaXNDbG9zZWR9IGZyb20gXCIuL3JnYi5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycG9sYXRlSHNsLCBoc2xMb25nIGFzIGludGVycG9sYXRlSHNsTG9uZ30gZnJvbSBcIi4vaHNsLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVMYWJ9IGZyb20gXCIuL2xhYi5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycG9sYXRlSGNsLCBoY2xMb25nIGFzIGludGVycG9sYXRlSGNsTG9uZ30gZnJvbSBcIi4vaGNsLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVDdWJlaGVsaXgsIGN1YmVoZWxpeExvbmcgYXMgaW50ZXJwb2xhdGVDdWJlaGVsaXhMb25nfSBmcm9tIFwiLi9jdWJlaGVsaXguanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBwaWVjZXdpc2V9IGZyb20gXCIuL3BpZWNld2lzZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHF1YW50aXplfSBmcm9tIFwiLi9xdWFudGl6ZS5qc1wiO1xuIiwKICAgICJ2YXIgZnJhbWUgPSAwLCAvLyBpcyBhbiBhbmltYXRpb24gZnJhbWUgcGVuZGluZz9cbiAgICB0aW1lb3V0ID0gMCwgLy8gaXMgYSB0aW1lb3V0IHBlbmRpbmc/XG4gICAgaW50ZXJ2YWwgPSAwLCAvLyBhcmUgYW55IHRpbWVycyBhY3RpdmU/XG4gICAgcG9rZURlbGF5ID0gMTAwMCwgLy8gaG93IGZyZXF1ZW50bHkgd2UgY2hlY2sgZm9yIGNsb2NrIHNrZXdcbiAgICB0YXNrSGVhZCxcbiAgICB0YXNrVGFpbCxcbiAgICBjbG9ja0xhc3QgPSAwLFxuICAgIGNsb2NrTm93ID0gMCxcbiAgICBjbG9ja1NrZXcgPSAwLFxuICAgIGNsb2NrID0gdHlwZW9mIHBlcmZvcm1hbmNlID09PSBcIm9iamVjdFwiICYmIHBlcmZvcm1hbmNlLm5vdyA/IHBlcmZvcm1hbmNlIDogRGF0ZSxcbiAgICBzZXRGcmFtZSA9IHR5cGVvZiB3aW5kb3cgPT09IFwib2JqZWN0XCIgJiYgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA/IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpIDogZnVuY3Rpb24oZikgeyBzZXRUaW1lb3V0KGYsIDE3KTsgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vdygpIHtcbiAgcmV0dXJuIGNsb2NrTm93IHx8IChzZXRGcmFtZShjbGVhck5vdyksIGNsb2NrTm93ID0gY2xvY2subm93KCkgKyBjbG9ja1NrZXcpO1xufVxuXG5mdW5jdGlvbiBjbGVhck5vdygpIHtcbiAgY2xvY2tOb3cgPSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVGltZXIoKSB7XG4gIHRoaXMuX2NhbGwgPVxuICB0aGlzLl90aW1lID1cbiAgdGhpcy5fbmV4dCA9IG51bGw7XG59XG5cblRpbWVyLnByb3RvdHlwZSA9IHRpbWVyLnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IFRpbWVyLFxuICByZXN0YXJ0OiBmdW5jdGlvbihjYWxsYmFjaywgZGVsYXksIHRpbWUpIHtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvblwiKTtcbiAgICB0aW1lID0gKHRpbWUgPT0gbnVsbCA/IG5vdygpIDogK3RpbWUpICsgKGRlbGF5ID09IG51bGwgPyAwIDogK2RlbGF5KTtcbiAgICBpZiAoIXRoaXMuX25leHQgJiYgdGFza1RhaWwgIT09IHRoaXMpIHtcbiAgICAgIGlmICh0YXNrVGFpbCkgdGFza1RhaWwuX25leHQgPSB0aGlzO1xuICAgICAgZWxzZSB0YXNrSGVhZCA9IHRoaXM7XG4gICAgICB0YXNrVGFpbCA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMuX2NhbGwgPSBjYWxsYmFjaztcbiAgICB0aGlzLl90aW1lID0gdGltZTtcbiAgICBzbGVlcCgpO1xuICB9LFxuICBzdG9wOiBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5fY2FsbCkge1xuICAgICAgdGhpcy5fY2FsbCA9IG51bGw7XG4gICAgICB0aGlzLl90aW1lID0gSW5maW5pdHk7XG4gICAgICBzbGVlcCgpO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVyKGNhbGxiYWNrLCBkZWxheSwgdGltZSkge1xuICB2YXIgdCA9IG5ldyBUaW1lcjtcbiAgdC5yZXN0YXJ0KGNhbGxiYWNrLCBkZWxheSwgdGltZSk7XG4gIHJldHVybiB0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGltZXJGbHVzaCgpIHtcbiAgbm93KCk7IC8vIEdldCB0aGUgY3VycmVudCB0aW1lLCBpZiBub3QgYWxyZWFkeSBzZXQuXG4gICsrZnJhbWU7IC8vIFByZXRlbmQgd2XigJl2ZSBzZXQgYW4gYWxhcm0sIGlmIHdlIGhhdmVu4oCZdCBhbHJlYWR5LlxuICB2YXIgdCA9IHRhc2tIZWFkLCBlO1xuICB3aGlsZSAodCkge1xuICAgIGlmICgoZSA9IGNsb2NrTm93IC0gdC5fdGltZSkgPj0gMCkgdC5fY2FsbC5jYWxsKHVuZGVmaW5lZCwgZSk7XG4gICAgdCA9IHQuX25leHQ7XG4gIH1cbiAgLS1mcmFtZTtcbn1cblxuZnVuY3Rpb24gd2FrZSgpIHtcbiAgY2xvY2tOb3cgPSAoY2xvY2tMYXN0ID0gY2xvY2subm93KCkpICsgY2xvY2tTa2V3O1xuICBmcmFtZSA9IHRpbWVvdXQgPSAwO1xuICB0cnkge1xuICAgIHRpbWVyRmx1c2goKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBmcmFtZSA9IDA7XG4gICAgbmFwKCk7XG4gICAgY2xvY2tOb3cgPSAwO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBva2UoKSB7XG4gIHZhciBub3cgPSBjbG9jay5ub3coKSwgZGVsYXkgPSBub3cgLSBjbG9ja0xhc3Q7XG4gIGlmIChkZWxheSA+IHBva2VEZWxheSkgY2xvY2tTa2V3IC09IGRlbGF5LCBjbG9ja0xhc3QgPSBub3c7XG59XG5cbmZ1bmN0aW9uIG5hcCgpIHtcbiAgdmFyIHQwLCB0MSA9IHRhc2tIZWFkLCB0MiwgdGltZSA9IEluZmluaXR5O1xuICB3aGlsZSAodDEpIHtcbiAgICBpZiAodDEuX2NhbGwpIHtcbiAgICAgIGlmICh0aW1lID4gdDEuX3RpbWUpIHRpbWUgPSB0MS5fdGltZTtcbiAgICAgIHQwID0gdDEsIHQxID0gdDEuX25leHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHQyID0gdDEuX25leHQsIHQxLl9uZXh0ID0gbnVsbDtcbiAgICAgIHQxID0gdDAgPyB0MC5fbmV4dCA9IHQyIDogdGFza0hlYWQgPSB0MjtcbiAgICB9XG4gIH1cbiAgdGFza1RhaWwgPSB0MDtcbiAgc2xlZXAodGltZSk7XG59XG5cbmZ1bmN0aW9uIHNsZWVwKHRpbWUpIHtcbiAgaWYgKGZyYW1lKSByZXR1cm47IC8vIFNvb25lc3QgYWxhcm0gYWxyZWFkeSBzZXQsIG9yIHdpbGwgYmUuXG4gIGlmICh0aW1lb3V0KSB0aW1lb3V0ID0gY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICB2YXIgZGVsYXkgPSB0aW1lIC0gY2xvY2tOb3c7IC8vIFN0cmljdGx5IGxlc3MgdGhhbiBpZiB3ZSByZWNvbXB1dGVkIGNsb2NrTm93LlxuICBpZiAoZGVsYXkgPiAyNCkge1xuICAgIGlmICh0aW1lIDwgSW5maW5pdHkpIHRpbWVvdXQgPSBzZXRUaW1lb3V0KHdha2UsIHRpbWUgLSBjbG9jay5ub3coKSAtIGNsb2NrU2tldyk7XG4gICAgaWYgKGludGVydmFsKSBpbnRlcnZhbCA9IGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICB9IGVsc2Uge1xuICAgIGlmICghaW50ZXJ2YWwpIGNsb2NrTGFzdCA9IGNsb2NrLm5vdygpLCBpbnRlcnZhbCA9IHNldEludGVydmFsKHBva2UsIHBva2VEZWxheSk7XG4gICAgZnJhbWUgPSAxLCBzZXRGcmFtZSh3YWtlKTtcbiAgfVxufVxuIiwKICAgICJpbXBvcnQge1RpbWVyfSBmcm9tIFwiLi90aW1lci5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjYWxsYmFjaywgZGVsYXksIHRpbWUpIHtcbiAgdmFyIHQgPSBuZXcgVGltZXI7XG4gIGRlbGF5ID0gZGVsYXkgPT0gbnVsbCA/IDAgOiArZGVsYXk7XG4gIHQucmVzdGFydChlbGFwc2VkID0+IHtcbiAgICB0LnN0b3AoKTtcbiAgICBjYWxsYmFjayhlbGFwc2VkICsgZGVsYXkpO1xuICB9LCBkZWxheSwgdGltZSk7XG4gIHJldHVybiB0O1xufVxuIiwKICAgICJleHBvcnQge1xuICBub3csXG4gIHRpbWVyLFxuICB0aW1lckZsdXNoXG59IGZyb20gXCIuL3RpbWVyLmpzXCI7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgdGltZW91dFxufSBmcm9tIFwiLi90aW1lb3V0LmpzXCI7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgaW50ZXJ2YWxcbn0gZnJvbSBcIi4vaW50ZXJ2YWwuanNcIjtcbiIsCiAgICAiaW1wb3J0IHtkaXNwYXRjaH0gZnJvbSBcImQzLWRpc3BhdGNoXCI7XG5pbXBvcnQge3RpbWVyLCB0aW1lb3V0fSBmcm9tIFwiZDMtdGltZXJcIjtcblxudmFyIGVtcHR5T24gPSBkaXNwYXRjaChcInN0YXJ0XCIsIFwiZW5kXCIsIFwiY2FuY2VsXCIsIFwiaW50ZXJydXB0XCIpO1xudmFyIGVtcHR5VHdlZW4gPSBbXTtcblxuZXhwb3J0IHZhciBDUkVBVEVEID0gMDtcbmV4cG9ydCB2YXIgU0NIRURVTEVEID0gMTtcbmV4cG9ydCB2YXIgU1RBUlRJTkcgPSAyO1xuZXhwb3J0IHZhciBTVEFSVEVEID0gMztcbmV4cG9ydCB2YXIgUlVOTklORyA9IDQ7XG5leHBvcnQgdmFyIEVORElORyA9IDU7XG5leHBvcnQgdmFyIEVOREVEID0gNjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obm9kZSwgbmFtZSwgaWQsIGluZGV4LCBncm91cCwgdGltaW5nKSB7XG4gIHZhciBzY2hlZHVsZXMgPSBub2RlLl9fdHJhbnNpdGlvbjtcbiAgaWYgKCFzY2hlZHVsZXMpIG5vZGUuX190cmFuc2l0aW9uID0ge307XG4gIGVsc2UgaWYgKGlkIGluIHNjaGVkdWxlcykgcmV0dXJuO1xuICBjcmVhdGUobm9kZSwgaWQsIHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIGluZGV4OiBpbmRleCwgLy8gRm9yIGNvbnRleHQgZHVyaW5nIGNhbGxiYWNrLlxuICAgIGdyb3VwOiBncm91cCwgLy8gRm9yIGNvbnRleHQgZHVyaW5nIGNhbGxiYWNrLlxuICAgIG9uOiBlbXB0eU9uLFxuICAgIHR3ZWVuOiBlbXB0eVR3ZWVuLFxuICAgIHRpbWU6IHRpbWluZy50aW1lLFxuICAgIGRlbGF5OiB0aW1pbmcuZGVsYXksXG4gICAgZHVyYXRpb246IHRpbWluZy5kdXJhdGlvbixcbiAgICBlYXNlOiB0aW1pbmcuZWFzZSxcbiAgICB0aW1lcjogbnVsbCxcbiAgICBzdGF0ZTogQ1JFQVRFRFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXQobm9kZSwgaWQpIHtcbiAgdmFyIHNjaGVkdWxlID0gZ2V0KG5vZGUsIGlkKTtcbiAgaWYgKHNjaGVkdWxlLnN0YXRlID4gQ1JFQVRFRCkgdGhyb3cgbmV3IEVycm9yKFwidG9vIGxhdGU7IGFscmVhZHkgc2NoZWR1bGVkXCIpO1xuICByZXR1cm4gc2NoZWR1bGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXQobm9kZSwgaWQpIHtcbiAgdmFyIHNjaGVkdWxlID0gZ2V0KG5vZGUsIGlkKTtcbiAgaWYgKHNjaGVkdWxlLnN0YXRlID4gU1RBUlRFRCkgdGhyb3cgbmV3IEVycm9yKFwidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZ1wiKTtcbiAgcmV0dXJuIHNjaGVkdWxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0KG5vZGUsIGlkKSB7XG4gIHZhciBzY2hlZHVsZSA9IG5vZGUuX190cmFuc2l0aW9uO1xuICBpZiAoIXNjaGVkdWxlIHx8ICEoc2NoZWR1bGUgPSBzY2hlZHVsZVtpZF0pKSB0aHJvdyBuZXcgRXJyb3IoXCJ0cmFuc2l0aW9uIG5vdCBmb3VuZFwiKTtcbiAgcmV0dXJuIHNjaGVkdWxlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGUobm9kZSwgaWQsIHNlbGYpIHtcbiAgdmFyIHNjaGVkdWxlcyA9IG5vZGUuX190cmFuc2l0aW9uLFxuICAgICAgdHdlZW47XG5cbiAgLy8gSW5pdGlhbGl6ZSB0aGUgc2VsZiB0aW1lciB3aGVuIHRoZSB0cmFuc2l0aW9uIGlzIGNyZWF0ZWQuXG4gIC8vIE5vdGUgdGhlIGFjdHVhbCBkZWxheSBpcyBub3Qga25vd24gdW50aWwgdGhlIGZpcnN0IGNhbGxiYWNrIVxuICBzY2hlZHVsZXNbaWRdID0gc2VsZjtcbiAgc2VsZi50aW1lciA9IHRpbWVyKHNjaGVkdWxlLCAwLCBzZWxmLnRpbWUpO1xuXG4gIGZ1bmN0aW9uIHNjaGVkdWxlKGVsYXBzZWQpIHtcbiAgICBzZWxmLnN0YXRlID0gU0NIRURVTEVEO1xuICAgIHNlbGYudGltZXIucmVzdGFydChzdGFydCwgc2VsZi5kZWxheSwgc2VsZi50aW1lKTtcblxuICAgIC8vIElmIHRoZSBlbGFwc2VkIGRlbGF5IGlzIGxlc3MgdGhhbiBvdXIgZmlyc3Qgc2xlZXAsIHN0YXJ0IGltbWVkaWF0ZWx5LlxuICAgIGlmIChzZWxmLmRlbGF5IDw9IGVsYXBzZWQpIHN0YXJ0KGVsYXBzZWQgLSBzZWxmLmRlbGF5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHN0YXJ0KGVsYXBzZWQpIHtcbiAgICB2YXIgaSwgaiwgbiwgbztcblxuICAgIC8vIElmIHRoZSBzdGF0ZSBpcyBub3QgU0NIRURVTEVELCB0aGVuIHdlIHByZXZpb3VzbHkgZXJyb3JlZCBvbiBzdGFydC5cbiAgICBpZiAoc2VsZi5zdGF0ZSAhPT0gU0NIRURVTEVEKSByZXR1cm4gc3RvcCgpO1xuXG4gICAgZm9yIChpIGluIHNjaGVkdWxlcykge1xuICAgICAgbyA9IHNjaGVkdWxlc1tpXTtcbiAgICAgIGlmIChvLm5hbWUgIT09IHNlbGYubmFtZSkgY29udGludWU7XG5cbiAgICAgIC8vIFdoaWxlIHRoaXMgZWxlbWVudCBhbHJlYWR5IGhhcyBhIHN0YXJ0aW5nIHRyYW5zaXRpb24gZHVyaW5nIHRoaXMgZnJhbWUsXG4gICAgICAvLyBkZWZlciBzdGFydGluZyBhbiBpbnRlcnJ1cHRpbmcgdHJhbnNpdGlvbiB1bnRpbCB0aGF0IHRyYW5zaXRpb24gaGFzIGFcbiAgICAgIC8vIGNoYW5jZSB0byB0aWNrIChhbmQgcG9zc2libHkgZW5kKTsgc2VlIGQzL2QzLXRyYW5zaXRpb24jNTQhXG4gICAgICBpZiAoby5zdGF0ZSA9PT0gU1RBUlRFRCkgcmV0dXJuIHRpbWVvdXQoc3RhcnQpO1xuXG4gICAgICAvLyBJbnRlcnJ1cHQgdGhlIGFjdGl2ZSB0cmFuc2l0aW9uLCBpZiBhbnkuXG4gICAgICBpZiAoby5zdGF0ZSA9PT0gUlVOTklORykge1xuICAgICAgICBvLnN0YXRlID0gRU5ERUQ7XG4gICAgICAgIG8udGltZXIuc3RvcCgpO1xuICAgICAgICBvLm9uLmNhbGwoXCJpbnRlcnJ1cHRcIiwgbm9kZSwgbm9kZS5fX2RhdGFfXywgby5pbmRleCwgby5ncm91cCk7XG4gICAgICAgIGRlbGV0ZSBzY2hlZHVsZXNbaV07XG4gICAgICB9XG5cbiAgICAgIC8vIENhbmNlbCBhbnkgcHJlLWVtcHRlZCB0cmFuc2l0aW9ucy5cbiAgICAgIGVsc2UgaWYgKCtpIDwgaWQpIHtcbiAgICAgICAgby5zdGF0ZSA9IEVOREVEO1xuICAgICAgICBvLnRpbWVyLnN0b3AoKTtcbiAgICAgICAgby5vbi5jYWxsKFwiY2FuY2VsXCIsIG5vZGUsIG5vZGUuX19kYXRhX18sIG8uaW5kZXgsIG8uZ3JvdXApO1xuICAgICAgICBkZWxldGUgc2NoZWR1bGVzW2ldO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERlZmVyIHRoZSBmaXJzdCB0aWNrIHRvIGVuZCBvZiB0aGUgY3VycmVudCBmcmFtZTsgc2VlIGQzL2QzIzE1NzYuXG4gICAgLy8gTm90ZSB0aGUgdHJhbnNpdGlvbiBtYXkgYmUgY2FuY2VsZWQgYWZ0ZXIgc3RhcnQgYW5kIGJlZm9yZSB0aGUgZmlyc3QgdGljayFcbiAgICAvLyBOb3RlIHRoaXMgbXVzdCBiZSBzY2hlZHVsZWQgYmVmb3JlIHRoZSBzdGFydCBldmVudDsgc2VlIGQzL2QzLXRyYW5zaXRpb24jMTYhXG4gICAgLy8gQXNzdW1pbmcgdGhpcyBpcyBzdWNjZXNzZnVsLCBzdWJzZXF1ZW50IGNhbGxiYWNrcyBnbyBzdHJhaWdodCB0byB0aWNrLlxuICAgIHRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoc2VsZi5zdGF0ZSA9PT0gU1RBUlRFRCkge1xuICAgICAgICBzZWxmLnN0YXRlID0gUlVOTklORztcbiAgICAgICAgc2VsZi50aW1lci5yZXN0YXJ0KHRpY2ssIHNlbGYuZGVsYXksIHNlbGYudGltZSk7XG4gICAgICAgIHRpY2soZWxhcHNlZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBEaXNwYXRjaCB0aGUgc3RhcnQgZXZlbnQuXG4gICAgLy8gTm90ZSB0aGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgdGhlIHR3ZWVuIGFyZSBpbml0aWFsaXplZC5cbiAgICBzZWxmLnN0YXRlID0gU1RBUlRJTkc7XG4gICAgc2VsZi5vbi5jYWxsKFwic3RhcnRcIiwgbm9kZSwgbm9kZS5fX2RhdGFfXywgc2VsZi5pbmRleCwgc2VsZi5ncm91cCk7XG4gICAgaWYgKHNlbGYuc3RhdGUgIT09IFNUQVJUSU5HKSByZXR1cm47IC8vIGludGVycnVwdGVkXG4gICAgc2VsZi5zdGF0ZSA9IFNUQVJURUQ7XG5cbiAgICAvLyBJbml0aWFsaXplIHRoZSB0d2VlbiwgZGVsZXRpbmcgbnVsbCB0d2Vlbi5cbiAgICB0d2VlbiA9IG5ldyBBcnJheShuID0gc2VsZi50d2Vlbi5sZW5ndGgpO1xuICAgIGZvciAoaSA9IDAsIGogPSAtMTsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG8gPSBzZWxmLnR3ZWVuW2ldLnZhbHVlLmNhbGwobm9kZSwgbm9kZS5fX2RhdGFfXywgc2VsZi5pbmRleCwgc2VsZi5ncm91cCkpIHtcbiAgICAgICAgdHdlZW5bKytqXSA9IG87XG4gICAgICB9XG4gICAgfVxuICAgIHR3ZWVuLmxlbmd0aCA9IGogKyAxO1xuICB9XG5cbiAgZnVuY3Rpb24gdGljayhlbGFwc2VkKSB7XG4gICAgdmFyIHQgPSBlbGFwc2VkIDwgc2VsZi5kdXJhdGlvbiA/IHNlbGYuZWFzZS5jYWxsKG51bGwsIGVsYXBzZWQgLyBzZWxmLmR1cmF0aW9uKSA6IChzZWxmLnRpbWVyLnJlc3RhcnQoc3RvcCksIHNlbGYuc3RhdGUgPSBFTkRJTkcsIDEpLFxuICAgICAgICBpID0gLTEsXG4gICAgICAgIG4gPSB0d2Vlbi5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpIDwgbikge1xuICAgICAgdHdlZW5baV0uY2FsbChub2RlLCB0KTtcbiAgICB9XG5cbiAgICAvLyBEaXNwYXRjaCB0aGUgZW5kIGV2ZW50LlxuICAgIGlmIChzZWxmLnN0YXRlID09PSBFTkRJTkcpIHtcbiAgICAgIHNlbGYub24uY2FsbChcImVuZFwiLCBub2RlLCBub2RlLl9fZGF0YV9fLCBzZWxmLmluZGV4LCBzZWxmLmdyb3VwKTtcbiAgICAgIHN0b3AoKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdG9wKCkge1xuICAgIHNlbGYuc3RhdGUgPSBFTkRFRDtcbiAgICBzZWxmLnRpbWVyLnN0b3AoKTtcbiAgICBkZWxldGUgc2NoZWR1bGVzW2lkXTtcbiAgICBmb3IgKHZhciBpIGluIHNjaGVkdWxlcykgcmV0dXJuOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgZGVsZXRlIG5vZGUuX190cmFuc2l0aW9uO1xuICB9XG59XG4iLAogICAgImltcG9ydCB7U1RBUlRJTkcsIEVORElORywgRU5ERUR9IGZyb20gXCIuL3RyYW5zaXRpb24vc2NoZWR1bGUuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obm9kZSwgbmFtZSkge1xuICB2YXIgc2NoZWR1bGVzID0gbm9kZS5fX3RyYW5zaXRpb24sXG4gICAgICBzY2hlZHVsZSxcbiAgICAgIGFjdGl2ZSxcbiAgICAgIGVtcHR5ID0gdHJ1ZSxcbiAgICAgIGk7XG5cbiAgaWYgKCFzY2hlZHVsZXMpIHJldHVybjtcblxuICBuYW1lID0gbmFtZSA9PSBudWxsID8gbnVsbCA6IG5hbWUgKyBcIlwiO1xuXG4gIGZvciAoaSBpbiBzY2hlZHVsZXMpIHtcbiAgICBpZiAoKHNjaGVkdWxlID0gc2NoZWR1bGVzW2ldKS5uYW1lICE9PSBuYW1lKSB7IGVtcHR5ID0gZmFsc2U7IGNvbnRpbnVlOyB9XG4gICAgYWN0aXZlID0gc2NoZWR1bGUuc3RhdGUgPiBTVEFSVElORyAmJiBzY2hlZHVsZS5zdGF0ZSA8IEVORElORztcbiAgICBzY2hlZHVsZS5zdGF0ZSA9IEVOREVEO1xuICAgIHNjaGVkdWxlLnRpbWVyLnN0b3AoKTtcbiAgICBzY2hlZHVsZS5vbi5jYWxsKGFjdGl2ZSA/IFwiaW50ZXJydXB0XCIgOiBcImNhbmNlbFwiLCBub2RlLCBub2RlLl9fZGF0YV9fLCBzY2hlZHVsZS5pbmRleCwgc2NoZWR1bGUuZ3JvdXApO1xuICAgIGRlbGV0ZSBzY2hlZHVsZXNbaV07XG4gIH1cblxuICBpZiAoZW1wdHkpIGRlbGV0ZSBub2RlLl9fdHJhbnNpdGlvbjtcbn1cbiIsCiAgICAiaW1wb3J0IGludGVycnVwdCBmcm9tIFwiLi4vaW50ZXJydXB0LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUpIHtcbiAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcbiAgICBpbnRlcnJ1cHQodGhpcywgbmFtZSk7XG4gIH0pO1xufVxuIiwKICAgICJpbXBvcnQge2dldCwgc2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5mdW5jdGlvbiB0d2VlblJlbW92ZShpZCwgbmFtZSkge1xuICB2YXIgdHdlZW4wLCB0d2VlbjE7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2NoZWR1bGUgPSBzZXQodGhpcywgaWQpLFxuICAgICAgICB0d2VlbiA9IHNjaGVkdWxlLnR3ZWVuO1xuXG4gICAgLy8gSWYgdGhpcyBub2RlIHNoYXJlZCB0d2VlbiB3aXRoIHRoZSBwcmV2aW91cyBub2RlLFxuICAgIC8vIGp1c3QgYXNzaWduIHRoZSB1cGRhdGVkIHNoYXJlZCB0d2VlbiBhbmQgd2XigJlyZSBkb25lIVxuICAgIC8vIE90aGVyd2lzZSwgY29weS1vbi13cml0ZS5cbiAgICBpZiAodHdlZW4gIT09IHR3ZWVuMCkge1xuICAgICAgdHdlZW4xID0gdHdlZW4wID0gdHdlZW47XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IHR3ZWVuMS5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICAgICAgaWYgKHR3ZWVuMVtpXS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgdHdlZW4xID0gdHdlZW4xLnNsaWNlKCk7XG4gICAgICAgICAgdHdlZW4xLnNwbGljZShpLCAxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHNjaGVkdWxlLnR3ZWVuID0gdHdlZW4xO1xuICB9O1xufVxuXG5mdW5jdGlvbiB0d2VlbkZ1bmN0aW9uKGlkLCBuYW1lLCB2YWx1ZSkge1xuICB2YXIgdHdlZW4wLCB0d2VlbjE7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IEVycm9yO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNjaGVkdWxlID0gc2V0KHRoaXMsIGlkKSxcbiAgICAgICAgdHdlZW4gPSBzY2hlZHVsZS50d2VlbjtcblxuICAgIC8vIElmIHRoaXMgbm9kZSBzaGFyZWQgdHdlZW4gd2l0aCB0aGUgcHJldmlvdXMgbm9kZSxcbiAgICAvLyBqdXN0IGFzc2lnbiB0aGUgdXBkYXRlZCBzaGFyZWQgdHdlZW4gYW5kIHdl4oCZcmUgZG9uZSFcbiAgICAvLyBPdGhlcndpc2UsIGNvcHktb24td3JpdGUuXG4gICAgaWYgKHR3ZWVuICE9PSB0d2VlbjApIHtcbiAgICAgIHR3ZWVuMSA9ICh0d2VlbjAgPSB0d2Vlbikuc2xpY2UoKTtcbiAgICAgIGZvciAodmFyIHQgPSB7bmFtZTogbmFtZSwgdmFsdWU6IHZhbHVlfSwgaSA9IDAsIG4gPSB0d2VlbjEubGVuZ3RoOyBpIDwgbjsgKytpKSB7XG4gICAgICAgIGlmICh0d2VlbjFbaV0ubmFtZSA9PT0gbmFtZSkge1xuICAgICAgICAgIHR3ZWVuMVtpXSA9IHQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpID09PSBuKSB0d2VlbjEucHVzaCh0KTtcbiAgICB9XG5cbiAgICBzY2hlZHVsZS50d2VlbiA9IHR3ZWVuMTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgdmFyIGlkID0gdGhpcy5faWQ7XG5cbiAgbmFtZSArPSBcIlwiO1xuXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgIHZhciB0d2VlbiA9IGdldCh0aGlzLm5vZGUoKSwgaWQpLnR3ZWVuO1xuICAgIGZvciAodmFyIGkgPSAwLCBuID0gdHdlZW4ubGVuZ3RoLCB0OyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoKHQgPSB0d2VlbltpXSkubmFtZSA9PT0gbmFtZSkge1xuICAgICAgICByZXR1cm4gdC52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gdGhpcy5lYWNoKCh2YWx1ZSA9PSBudWxsID8gdHdlZW5SZW1vdmUgOiB0d2VlbkZ1bmN0aW9uKShpZCwgbmFtZSwgdmFsdWUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR3ZWVuVmFsdWUodHJhbnNpdGlvbiwgbmFtZSwgdmFsdWUpIHtcbiAgdmFyIGlkID0gdHJhbnNpdGlvbi5faWQ7XG5cbiAgdHJhbnNpdGlvbi5lYWNoKGZ1bmN0aW9uKCkge1xuICAgIHZhciBzY2hlZHVsZSA9IHNldCh0aGlzLCBpZCk7XG4gICAgKHNjaGVkdWxlLnZhbHVlIHx8IChzY2hlZHVsZS52YWx1ZSA9IHt9KSlbbmFtZV0gPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9KTtcblxuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIHJldHVybiBnZXQobm9kZSwgaWQpLnZhbHVlW25hbWVdO1xuICB9O1xufVxuIiwKICAgICJpbXBvcnQge2NvbG9yfSBmcm9tIFwiZDMtY29sb3JcIjtcbmltcG9ydCB7aW50ZXJwb2xhdGVOdW1iZXIsIGludGVycG9sYXRlUmdiLCBpbnRlcnBvbGF0ZVN0cmluZ30gZnJvbSBcImQzLWludGVycG9sYXRlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgdmFyIGM7XG4gIHJldHVybiAodHlwZW9mIGIgPT09IFwibnVtYmVyXCIgPyBpbnRlcnBvbGF0ZU51bWJlclxuICAgICAgOiBiIGluc3RhbmNlb2YgY29sb3IgPyBpbnRlcnBvbGF0ZVJnYlxuICAgICAgOiAoYyA9IGNvbG9yKGIpKSA/IChiID0gYywgaW50ZXJwb2xhdGVSZ2IpXG4gICAgICA6IGludGVycG9sYXRlU3RyaW5nKShhLCBiKTtcbn1cbiIsCiAgICAiaW1wb3J0IHtpbnRlcnBvbGF0ZVRyYW5zZm9ybVN2ZyBhcyBpbnRlcnBvbGF0ZVRyYW5zZm9ybX0gZnJvbSBcImQzLWludGVycG9sYXRlXCI7XG5pbXBvcnQge25hbWVzcGFjZX0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IHt0d2VlblZhbHVlfSBmcm9tIFwiLi90d2Vlbi5qc1wiO1xuaW1wb3J0IGludGVycG9sYXRlIGZyb20gXCIuL2ludGVycG9sYXRlLmpzXCI7XG5cbmZ1bmN0aW9uIGF0dHJSZW1vdmUobmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJSZW1vdmVOUyhmdWxsbmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyQ29uc3RhbnQobmFtZSwgaW50ZXJwb2xhdGUsIHZhbHVlMSkge1xuICB2YXIgc3RyaW5nMDAsXG4gICAgICBzdHJpbmcxID0gdmFsdWUxICsgXCJcIixcbiAgICAgIGludGVycG9sYXRlMDtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdHJpbmcwID0gdGhpcy5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHZhbHVlMSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJDb25zdGFudE5TKGZ1bGxuYW1lLCBpbnRlcnBvbGF0ZSwgdmFsdWUxKSB7XG4gIHZhciBzdHJpbmcwMCxcbiAgICAgIHN0cmluZzEgPSB2YWx1ZTEgKyBcIlwiLFxuICAgICAgaW50ZXJwb2xhdGUwO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0cmluZzAgPSB0aGlzLmdldEF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCk7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHZhbHVlMSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJGdW5jdGlvbihuYW1lLCBpbnRlcnBvbGF0ZSwgdmFsdWUpIHtcbiAgdmFyIHN0cmluZzAwLFxuICAgICAgc3RyaW5nMTAsXG4gICAgICBpbnRlcnBvbGF0ZTA7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RyaW5nMCwgdmFsdWUxID0gdmFsdWUodGhpcyksIHN0cmluZzE7XG4gICAgaWYgKHZhbHVlMSA9PSBudWxsKSByZXR1cm4gdm9pZCB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICBzdHJpbmcwID0gdGhpcy5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgc3RyaW5nMSA9IHZhbHVlMSArIFwiXCI7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgJiYgc3RyaW5nMSA9PT0gc3RyaW5nMTAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiAoc3RyaW5nMTAgPSBzdHJpbmcxLCBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHZhbHVlMSkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyRnVuY3Rpb25OUyhmdWxsbmFtZSwgaW50ZXJwb2xhdGUsIHZhbHVlKSB7XG4gIHZhciBzdHJpbmcwMCxcbiAgICAgIHN0cmluZzEwLFxuICAgICAgaW50ZXJwb2xhdGUwO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0cmluZzAsIHZhbHVlMSA9IHZhbHVlKHRoaXMpLCBzdHJpbmcxO1xuICAgIGlmICh2YWx1ZTEgPT0gbnVsbCkgcmV0dXJuIHZvaWQgdGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwpO1xuICAgIHN0cmluZzAgPSB0aGlzLmdldEF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCk7XG4gICAgc3RyaW5nMSA9IHZhbHVlMSArIFwiXCI7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgJiYgc3RyaW5nMSA9PT0gc3RyaW5nMTAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiAoc3RyaW5nMTAgPSBzdHJpbmcxLCBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHZhbHVlMSkpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICB2YXIgZnVsbG5hbWUgPSBuYW1lc3BhY2UobmFtZSksIGkgPSBmdWxsbmFtZSA9PT0gXCJ0cmFuc2Zvcm1cIiA/IGludGVycG9sYXRlVHJhbnNmb3JtIDogaW50ZXJwb2xhdGU7XG4gIHJldHVybiB0aGlzLmF0dHJUd2VlbihuYW1lLCB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyAoZnVsbG5hbWUubG9jYWwgPyBhdHRyRnVuY3Rpb25OUyA6IGF0dHJGdW5jdGlvbikoZnVsbG5hbWUsIGksIHR3ZWVuVmFsdWUodGhpcywgXCJhdHRyLlwiICsgbmFtZSwgdmFsdWUpKVxuICAgICAgOiB2YWx1ZSA9PSBudWxsID8gKGZ1bGxuYW1lLmxvY2FsID8gYXR0clJlbW92ZU5TIDogYXR0clJlbW92ZSkoZnVsbG5hbWUpXG4gICAgICA6IChmdWxsbmFtZS5sb2NhbCA/IGF0dHJDb25zdGFudE5TIDogYXR0ckNvbnN0YW50KShmdWxsbmFtZSwgaSwgdmFsdWUpKTtcbn1cbiIsCiAgICAiaW1wb3J0IHtuYW1lc3BhY2V9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcblxuZnVuY3Rpb24gYXR0ckludGVycG9sYXRlKG5hbWUsIGkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShuYW1lLCBpLmNhbGwodGhpcywgdCkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRySW50ZXJwb2xhdGVOUyhmdWxsbmFtZSwgaSkge1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlTlMoZnVsbG5hbWUuc3BhY2UsIGZ1bGxuYW1lLmxvY2FsLCBpLmNhbGwodGhpcywgdCkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyVHdlZW5OUyhmdWxsbmFtZSwgdmFsdWUpIHtcbiAgdmFyIHQwLCBpMDtcbiAgZnVuY3Rpb24gdHdlZW4oKSB7XG4gICAgdmFyIGkgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGlmIChpICE9PSBpMCkgdDAgPSAoaTAgPSBpKSAmJiBhdHRySW50ZXJwb2xhdGVOUyhmdWxsbmFtZSwgaSk7XG4gICAgcmV0dXJuIHQwO1xuICB9XG4gIHR3ZWVuLl92YWx1ZSA9IHZhbHVlO1xuICByZXR1cm4gdHdlZW47XG59XG5cbmZ1bmN0aW9uIGF0dHJUd2VlbihuYW1lLCB2YWx1ZSkge1xuICB2YXIgdDAsIGkwO1xuICBmdW5jdGlvbiB0d2VlbigpIHtcbiAgICB2YXIgaSA9IHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgaWYgKGkgIT09IGkwKSB0MCA9IChpMCA9IGkpICYmIGF0dHJJbnRlcnBvbGF0ZShuYW1lLCBpKTtcbiAgICByZXR1cm4gdDA7XG4gIH1cbiAgdHdlZW4uX3ZhbHVlID0gdmFsdWU7XG4gIHJldHVybiB0d2Vlbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgdmFyIGtleSA9IFwiYXR0ci5cIiArIG5hbWU7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikgcmV0dXJuIChrZXkgPSB0aGlzLnR3ZWVuKGtleSkpICYmIGtleS5fdmFsdWU7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gdGhpcy50d2VlbihrZXksIG51bGwpO1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcjtcbiAgdmFyIGZ1bGxuYW1lID0gbmFtZXNwYWNlKG5hbWUpO1xuICByZXR1cm4gdGhpcy50d2VlbihrZXksIChmdWxsbmFtZS5sb2NhbCA/IGF0dHJUd2Vlbk5TIDogYXR0clR3ZWVuKShmdWxsbmFtZSwgdmFsdWUpKTtcbn1cbiIsCiAgICAiaW1wb3J0IHtnZXQsIGluaXR9IGZyb20gXCIuL3NjaGVkdWxlLmpzXCI7XG5cbmZ1bmN0aW9uIGRlbGF5RnVuY3Rpb24oaWQsIHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBpbml0KHRoaXMsIGlkKS5kZWxheSA9ICt2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBkZWxheUNvbnN0YW50KGlkLCB2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPSArdmFsdWUsIGZ1bmN0aW9uKCkge1xuICAgIGluaXQodGhpcywgaWQpLmRlbGF5ID0gdmFsdWU7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHZhciBpZCA9IHRoaXMuX2lkO1xuXG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoXG4gICAgICA/IHRoaXMuZWFjaCgodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICA/IGRlbGF5RnVuY3Rpb25cbiAgICAgICAgICA6IGRlbGF5Q29uc3RhbnQpKGlkLCB2YWx1ZSkpXG4gICAgICA6IGdldCh0aGlzLm5vZGUoKSwgaWQpLmRlbGF5O1xufVxuIiwKICAgICJpbXBvcnQge2dldCwgc2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5mdW5jdGlvbiBkdXJhdGlvbkZ1bmN0aW9uKGlkLCB2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgc2V0KHRoaXMsIGlkKS5kdXJhdGlvbiA9ICt2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBkdXJhdGlvbkNvbnN0YW50KGlkLCB2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPSArdmFsdWUsIGZ1bmN0aW9uKCkge1xuICAgIHNldCh0aGlzLCBpZCkuZHVyYXRpb24gPSB2YWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUpIHtcbiAgdmFyIGlkID0gdGhpcy5faWQ7XG5cbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGhcbiAgICAgID8gdGhpcy5lYWNoKCh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8gZHVyYXRpb25GdW5jdGlvblxuICAgICAgICAgIDogZHVyYXRpb25Db25zdGFudCkoaWQsIHZhbHVlKSlcbiAgICAgIDogZ2V0KHRoaXMubm9kZSgpLCBpZCkuZHVyYXRpb247XG59XG4iLAogICAgImltcG9ydCB7Z2V0LCBzZXR9IGZyb20gXCIuL3NjaGVkdWxlLmpzXCI7XG5cbmZ1bmN0aW9uIGVhc2VDb25zdGFudChpZCwgdmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgRXJyb3I7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBzZXQodGhpcywgaWQpLmVhc2UgPSB2YWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUpIHtcbiAgdmFyIGlkID0gdGhpcy5faWQ7XG5cbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGhcbiAgICAgID8gdGhpcy5lYWNoKGVhc2VDb25zdGFudChpZCwgdmFsdWUpKVxuICAgICAgOiBnZXQodGhpcy5ub2RlKCksIGlkKS5lYXNlO1xufVxuIiwKICAgICJpbXBvcnQge3NldH0gZnJvbSBcIi4vc2NoZWR1bGUuanNcIjtcblxuZnVuY3Rpb24gZWFzZVZhcnlpbmcoaWQsIHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgdiA9IHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgaWYgKHR5cGVvZiB2ICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcjtcbiAgICBzZXQodGhpcywgaWQpLmVhc2UgPSB2O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcjtcbiAgcmV0dXJuIHRoaXMuZWFjaChlYXNlVmFyeWluZyh0aGlzLl9pZCwgdmFsdWUpKTtcbn1cbiIsCiAgICAiaW1wb3J0IHttYXRjaGVyfSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQge1RyYW5zaXRpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG1hdGNoKSB7XG4gIGlmICh0eXBlb2YgbWF0Y2ggIT09IFwiZnVuY3Rpb25cIikgbWF0Y2ggPSBtYXRjaGVyKG1hdGNoKTtcblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIG0gPSBncm91cHMubGVuZ3RoLCBzdWJncm91cHMgPSBuZXcgQXJyYXkobSksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIHN1Ymdyb3VwID0gc3ViZ3JvdXBzW2pdID0gW10sIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoKG5vZGUgPSBncm91cFtpXSkgJiYgbWF0Y2guY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBpLCBncm91cCkpIHtcbiAgICAgICAgc3ViZ3JvdXAucHVzaChub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFRyYW5zaXRpb24oc3ViZ3JvdXBzLCB0aGlzLl9wYXJlbnRzLCB0aGlzLl9uYW1lLCB0aGlzLl9pZCk7XG59XG4iLAogICAgImltcG9ydCB7VHJhbnNpdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odHJhbnNpdGlvbikge1xuICBpZiAodHJhbnNpdGlvbi5faWQgIT09IHRoaXMuX2lkKSB0aHJvdyBuZXcgRXJyb3I7XG5cbiAgZm9yICh2YXIgZ3JvdXBzMCA9IHRoaXMuX2dyb3VwcywgZ3JvdXBzMSA9IHRyYW5zaXRpb24uX2dyb3VwcywgbTAgPSBncm91cHMwLmxlbmd0aCwgbTEgPSBncm91cHMxLmxlbmd0aCwgbSA9IE1hdGgubWluKG0wLCBtMSksIG1lcmdlcyA9IG5ldyBBcnJheShtMCksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAwID0gZ3JvdXBzMFtqXSwgZ3JvdXAxID0gZ3JvdXBzMVtqXSwgbiA9IGdyb3VwMC5sZW5ndGgsIG1lcmdlID0gbWVyZ2VzW2pdID0gbmV3IEFycmF5KG4pLCBub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG5vZGUgPSBncm91cDBbaV0gfHwgZ3JvdXAxW2ldKSB7XG4gICAgICAgIG1lcmdlW2ldID0gbm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3IgKDsgaiA8IG0wOyArK2opIHtcbiAgICBtZXJnZXNbal0gPSBncm91cHMwW2pdO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBUcmFuc2l0aW9uKG1lcmdlcywgdGhpcy5fcGFyZW50cywgdGhpcy5fbmFtZSwgdGhpcy5faWQpO1xufVxuIiwKICAgICJpbXBvcnQge2dldCwgc2V0LCBpbml0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5mdW5jdGlvbiBzdGFydChuYW1lKSB7XG4gIHJldHVybiAobmFtZSArIFwiXCIpLnRyaW0oKS5zcGxpdCgvXnxcXHMrLykuZXZlcnkoZnVuY3Rpb24odCkge1xuICAgIHZhciBpID0gdC5pbmRleE9mKFwiLlwiKTtcbiAgICBpZiAoaSA+PSAwKSB0ID0gdC5zbGljZSgwLCBpKTtcbiAgICByZXR1cm4gIXQgfHwgdCA9PT0gXCJzdGFydFwiO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gb25GdW5jdGlvbihpZCwgbmFtZSwgbGlzdGVuZXIpIHtcbiAgdmFyIG9uMCwgb24xLCBzaXQgPSBzdGFydChuYW1lKSA/IGluaXQgOiBzZXQ7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2NoZWR1bGUgPSBzaXQodGhpcywgaWQpLFxuICAgICAgICBvbiA9IHNjaGVkdWxlLm9uO1xuXG4gICAgLy8gSWYgdGhpcyBub2RlIHNoYXJlZCBhIGRpc3BhdGNoIHdpdGggdGhlIHByZXZpb3VzIG5vZGUsXG4gICAgLy8ganVzdCBhc3NpZ24gdGhlIHVwZGF0ZWQgc2hhcmVkIGRpc3BhdGNoIGFuZCB3ZeKAmXJlIGRvbmUhXG4gICAgLy8gT3RoZXJ3aXNlLCBjb3B5LW9uLXdyaXRlLlxuICAgIGlmIChvbiAhPT0gb24wKSAob24xID0gKG9uMCA9IG9uKS5jb3B5KCkpLm9uKG5hbWUsIGxpc3RlbmVyKTtcblxuICAgIHNjaGVkdWxlLm9uID0gb24xO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lLCBsaXN0ZW5lcikge1xuICB2YXIgaWQgPSB0aGlzLl9pZDtcblxuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA8IDJcbiAgICAgID8gZ2V0KHRoaXMubm9kZSgpLCBpZCkub24ub24obmFtZSlcbiAgICAgIDogdGhpcy5lYWNoKG9uRnVuY3Rpb24oaWQsIG5hbWUsIGxpc3RlbmVyKSk7XG59XG4iLAogICAgImZ1bmN0aW9uIHJlbW92ZUZ1bmN0aW9uKGlkKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgcGFyZW50ID0gdGhpcy5wYXJlbnROb2RlO1xuICAgIGZvciAodmFyIGkgaW4gdGhpcy5fX3RyYW5zaXRpb24pIGlmICgraSAhPT0gaWQpIHJldHVybjtcbiAgICBpZiAocGFyZW50KSBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcyk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5vbihcImVuZC5yZW1vdmVcIiwgcmVtb3ZlRnVuY3Rpb24odGhpcy5faWQpKTtcbn1cbiIsCiAgICAiaW1wb3J0IHtzZWxlY3Rvcn0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IHtUcmFuc2l0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHNjaGVkdWxlLCB7Z2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzZWxlY3QpIHtcbiAgdmFyIG5hbWUgPSB0aGlzLl9uYW1lLFxuICAgICAgaWQgPSB0aGlzLl9pZDtcblxuICBpZiAodHlwZW9mIHNlbGVjdCAhPT0gXCJmdW5jdGlvblwiKSBzZWxlY3QgPSBzZWxlY3RvcihzZWxlY3QpO1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIHN1Ymdyb3VwcyA9IG5ldyBBcnJheShtKSwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgbiA9IGdyb3VwLmxlbmd0aCwgc3ViZ3JvdXAgPSBzdWJncm91cHNbal0gPSBuZXcgQXJyYXkobiksIG5vZGUsIHN1Ym5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoKG5vZGUgPSBncm91cFtpXSkgJiYgKHN1Ym5vZGUgPSBzZWxlY3QuY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBpLCBncm91cCkpKSB7XG4gICAgICAgIGlmIChcIl9fZGF0YV9fXCIgaW4gbm9kZSkgc3Vibm9kZS5fX2RhdGFfXyA9IG5vZGUuX19kYXRhX187XG4gICAgICAgIHN1Ymdyb3VwW2ldID0gc3Vibm9kZTtcbiAgICAgICAgc2NoZWR1bGUoc3ViZ3JvdXBbaV0sIG5hbWUsIGlkLCBpLCBzdWJncm91cCwgZ2V0KG5vZGUsIGlkKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBUcmFuc2l0aW9uKHN1Ymdyb3VwcywgdGhpcy5fcGFyZW50cywgbmFtZSwgaWQpO1xufVxuIiwKICAgICJpbXBvcnQge3NlbGVjdG9yQWxsfSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQge1RyYW5zaXRpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5pbXBvcnQgc2NoZWR1bGUsIHtnZXR9IGZyb20gXCIuL3NjaGVkdWxlLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHNlbGVjdCkge1xuICB2YXIgbmFtZSA9IHRoaXMuX25hbWUsXG4gICAgICBpZCA9IHRoaXMuX2lkO1xuXG4gIGlmICh0eXBlb2Ygc2VsZWN0ICE9PSBcImZ1bmN0aW9uXCIpIHNlbGVjdCA9IHNlbGVjdG9yQWxsKHNlbGVjdCk7XG5cbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBtID0gZ3JvdXBzLmxlbmd0aCwgc3ViZ3JvdXBzID0gW10sIHBhcmVudHMgPSBbXSwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgbiA9IGdyb3VwLmxlbmd0aCwgbm9kZSwgaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmIChub2RlID0gZ3JvdXBbaV0pIHtcbiAgICAgICAgZm9yICh2YXIgY2hpbGRyZW4gPSBzZWxlY3QuY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBpLCBncm91cCksIGNoaWxkLCBpbmhlcml0ID0gZ2V0KG5vZGUsIGlkKSwgayA9IDAsIGwgPSBjaGlsZHJlbi5sZW5ndGg7IGsgPCBsOyArK2spIHtcbiAgICAgICAgICBpZiAoY2hpbGQgPSBjaGlsZHJlbltrXSkge1xuICAgICAgICAgICAgc2NoZWR1bGUoY2hpbGQsIG5hbWUsIGlkLCBrLCBjaGlsZHJlbiwgaW5oZXJpdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN1Ymdyb3Vwcy5wdXNoKGNoaWxkcmVuKTtcbiAgICAgICAgcGFyZW50cy5wdXNoKG5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgVHJhbnNpdGlvbihzdWJncm91cHMsIHBhcmVudHMsIG5hbWUsIGlkKTtcbn1cbiIsCiAgICAiaW1wb3J0IHtzZWxlY3Rpb259IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcblxudmFyIFNlbGVjdGlvbiA9IHNlbGVjdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3I7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IFNlbGVjdGlvbih0aGlzLl9ncm91cHMsIHRoaXMuX3BhcmVudHMpO1xufVxuIiwKICAgICJpbXBvcnQge2ludGVycG9sYXRlVHJhbnNmb3JtQ3NzIGFzIGludGVycG9sYXRlVHJhbnNmb3JtfSBmcm9tIFwiZDMtaW50ZXJwb2xhdGVcIjtcbmltcG9ydCB7c3R5bGV9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcbmltcG9ydCB7c2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuaW1wb3J0IHt0d2VlblZhbHVlfSBmcm9tIFwiLi90d2Vlbi5qc1wiO1xuaW1wb3J0IGludGVycG9sYXRlIGZyb20gXCIuL2ludGVycG9sYXRlLmpzXCI7XG5cbmZ1bmN0aW9uIHN0eWxlTnVsbChuYW1lLCBpbnRlcnBvbGF0ZSkge1xuICB2YXIgc3RyaW5nMDAsXG4gICAgICBzdHJpbmcxMCxcbiAgICAgIGludGVycG9sYXRlMDtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdHJpbmcwID0gc3R5bGUodGhpcywgbmFtZSksXG4gICAgICAgIHN0cmluZzEgPSAodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuYW1lKSwgc3R5bGUodGhpcywgbmFtZSkpO1xuICAgIHJldHVybiBzdHJpbmcwID09PSBzdHJpbmcxID8gbnVsbFxuICAgICAgICA6IHN0cmluZzAgPT09IHN0cmluZzAwICYmIHN0cmluZzEgPT09IHN0cmluZzEwID8gaW50ZXJwb2xhdGUwXG4gICAgICAgIDogaW50ZXJwb2xhdGUwID0gaW50ZXJwb2xhdGUoc3RyaW5nMDAgPSBzdHJpbmcwLCBzdHJpbmcxMCA9IHN0cmluZzEpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZVJlbW92ZShuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG5hbWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZUNvbnN0YW50KG5hbWUsIGludGVycG9sYXRlLCB2YWx1ZTEpIHtcbiAgdmFyIHN0cmluZzAwLFxuICAgICAgc3RyaW5nMSA9IHZhbHVlMSArIFwiXCIsXG4gICAgICBpbnRlcnBvbGF0ZTA7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RyaW5nMCA9IHN0eWxlKHRoaXMsIG5hbWUpO1xuICAgIHJldHVybiBzdHJpbmcwID09PSBzdHJpbmcxID8gbnVsbFxuICAgICAgICA6IHN0cmluZzAgPT09IHN0cmluZzAwID8gaW50ZXJwb2xhdGUwXG4gICAgICAgIDogaW50ZXJwb2xhdGUwID0gaW50ZXJwb2xhdGUoc3RyaW5nMDAgPSBzdHJpbmcwLCB2YWx1ZTEpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZUZ1bmN0aW9uKG5hbWUsIGludGVycG9sYXRlLCB2YWx1ZSkge1xuICB2YXIgc3RyaW5nMDAsXG4gICAgICBzdHJpbmcxMCxcbiAgICAgIGludGVycG9sYXRlMDtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdHJpbmcwID0gc3R5bGUodGhpcywgbmFtZSksXG4gICAgICAgIHZhbHVlMSA9IHZhbHVlKHRoaXMpLFxuICAgICAgICBzdHJpbmcxID0gdmFsdWUxICsgXCJcIjtcbiAgICBpZiAodmFsdWUxID09IG51bGwpIHN0cmluZzEgPSB2YWx1ZTEgPSAodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuYW1lKSwgc3R5bGUodGhpcywgbmFtZSkpO1xuICAgIHJldHVybiBzdHJpbmcwID09PSBzdHJpbmcxID8gbnVsbFxuICAgICAgICA6IHN0cmluZzAgPT09IHN0cmluZzAwICYmIHN0cmluZzEgPT09IHN0cmluZzEwID8gaW50ZXJwb2xhdGUwXG4gICAgICAgIDogKHN0cmluZzEwID0gc3RyaW5nMSwgaW50ZXJwb2xhdGUwID0gaW50ZXJwb2xhdGUoc3RyaW5nMDAgPSBzdHJpbmcwLCB2YWx1ZTEpKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3R5bGVNYXliZVJlbW92ZShpZCwgbmFtZSkge1xuICB2YXIgb24wLCBvbjEsIGxpc3RlbmVyMCwga2V5ID0gXCJzdHlsZS5cIiArIG5hbWUsIGV2ZW50ID0gXCJlbmQuXCIgKyBrZXksIHJlbW92ZTtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzY2hlZHVsZSA9IHNldCh0aGlzLCBpZCksXG4gICAgICAgIG9uID0gc2NoZWR1bGUub24sXG4gICAgICAgIGxpc3RlbmVyID0gc2NoZWR1bGUudmFsdWVba2V5XSA9PSBudWxsID8gcmVtb3ZlIHx8IChyZW1vdmUgPSBzdHlsZVJlbW92ZShuYW1lKSkgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBJZiB0aGlzIG5vZGUgc2hhcmVkIGEgZGlzcGF0Y2ggd2l0aCB0aGUgcHJldmlvdXMgbm9kZSxcbiAgICAvLyBqdXN0IGFzc2lnbiB0aGUgdXBkYXRlZCBzaGFyZWQgZGlzcGF0Y2ggYW5kIHdl4oCZcmUgZG9uZSFcbiAgICAvLyBPdGhlcndpc2UsIGNvcHktb24td3JpdGUuXG4gICAgaWYgKG9uICE9PSBvbjAgfHwgbGlzdGVuZXIwICE9PSBsaXN0ZW5lcikgKG9uMSA9IChvbjAgPSBvbikuY29weSgpKS5vbihldmVudCwgbGlzdGVuZXIwID0gbGlzdGVuZXIpO1xuXG4gICAgc2NoZWR1bGUub24gPSBvbjE7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBwcmlvcml0eSkge1xuICB2YXIgaSA9IChuYW1lICs9IFwiXCIpID09PSBcInRyYW5zZm9ybVwiID8gaW50ZXJwb2xhdGVUcmFuc2Zvcm0gOiBpbnRlcnBvbGF0ZTtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyB0aGlzXG4gICAgICAuc3R5bGVUd2VlbihuYW1lLCBzdHlsZU51bGwobmFtZSwgaSkpXG4gICAgICAub24oXCJlbmQuc3R5bGUuXCIgKyBuYW1lLCBzdHlsZVJlbW92ZShuYW1lKSlcbiAgICA6IHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiID8gdGhpc1xuICAgICAgLnN0eWxlVHdlZW4obmFtZSwgc3R5bGVGdW5jdGlvbihuYW1lLCBpLCB0d2VlblZhbHVlKHRoaXMsIFwic3R5bGUuXCIgKyBuYW1lLCB2YWx1ZSkpKVxuICAgICAgLmVhY2goc3R5bGVNYXliZVJlbW92ZSh0aGlzLl9pZCwgbmFtZSkpXG4gICAgOiB0aGlzXG4gICAgICAuc3R5bGVUd2VlbihuYW1lLCBzdHlsZUNvbnN0YW50KG5hbWUsIGksIHZhbHVlKSwgcHJpb3JpdHkpXG4gICAgICAub24oXCJlbmQuc3R5bGUuXCIgKyBuYW1lLCBudWxsKTtcbn1cbiIsCiAgICAiZnVuY3Rpb24gc3R5bGVJbnRlcnBvbGF0ZShuYW1lLCBpLCBwcmlvcml0eSkge1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkobmFtZSwgaS5jYWxsKHRoaXMsIHQpLCBwcmlvcml0eSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0eWxlVHdlZW4obmFtZSwgdmFsdWUsIHByaW9yaXR5KSB7XG4gIHZhciB0LCBpMDtcbiAgZnVuY3Rpb24gdHdlZW4oKSB7XG4gICAgdmFyIGkgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGlmIChpICE9PSBpMCkgdCA9IChpMCA9IGkpICYmIHN0eWxlSW50ZXJwb2xhdGUobmFtZSwgaSwgcHJpb3JpdHkpO1xuICAgIHJldHVybiB0O1xuICB9XG4gIHR3ZWVuLl92YWx1ZSA9IHZhbHVlO1xuICByZXR1cm4gdHdlZW47XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBwcmlvcml0eSkge1xuICB2YXIga2V5ID0gXCJzdHlsZS5cIiArIChuYW1lICs9IFwiXCIpO1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpIHJldHVybiAoa2V5ID0gdGhpcy50d2VlbihrZXkpKSAmJiBrZXkuX3ZhbHVlO1xuICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIHRoaXMudHdlZW4oa2V5LCBudWxsKTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgRXJyb3I7XG4gIHJldHVybiB0aGlzLnR3ZWVuKGtleSwgc3R5bGVUd2VlbihuYW1lLCB2YWx1ZSwgcHJpb3JpdHkgPT0gbnVsbCA/IFwiXCIgOiBwcmlvcml0eSkpO1xufVxuIiwKICAgICJpbXBvcnQge3R3ZWVuVmFsdWV9IGZyb20gXCIuL3R3ZWVuLmpzXCI7XG5cbmZ1bmN0aW9uIHRleHRDb25zdGFudCh2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50ZXh0Q29udGVudCA9IHZhbHVlO1xuICB9O1xufVxuXG5mdW5jdGlvbiB0ZXh0RnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2YWx1ZTEgPSB2YWx1ZSh0aGlzKTtcbiAgICB0aGlzLnRleHRDb250ZW50ID0gdmFsdWUxID09IG51bGwgPyBcIlwiIDogdmFsdWUxO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdGhpcy50d2VlbihcInRleHRcIiwgdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gdGV4dEZ1bmN0aW9uKHR3ZWVuVmFsdWUodGhpcywgXCJ0ZXh0XCIsIHZhbHVlKSlcbiAgICAgIDogdGV4dENvbnN0YW50KHZhbHVlID09IG51bGwgPyBcIlwiIDogdmFsdWUgKyBcIlwiKSk7XG59XG4iLAogICAgImZ1bmN0aW9uIHRleHRJbnRlcnBvbGF0ZShpKSB7XG4gIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgdGhpcy50ZXh0Q29udGVudCA9IGkuY2FsbCh0aGlzLCB0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gdGV4dFR3ZWVuKHZhbHVlKSB7XG4gIHZhciB0MCwgaTA7XG4gIGZ1bmN0aW9uIHR3ZWVuKCkge1xuICAgIHZhciBpID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAoaSAhPT0gaTApIHQwID0gKGkwID0gaSkgJiYgdGV4dEludGVycG9sYXRlKGkpO1xuICAgIHJldHVybiB0MDtcbiAgfVxuICB0d2Vlbi5fdmFsdWUgPSB2YWx1ZTtcbiAgcmV0dXJuIHR3ZWVuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICB2YXIga2V5ID0gXCJ0ZXh0XCI7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMSkgcmV0dXJuIChrZXkgPSB0aGlzLnR3ZWVuKGtleSkpICYmIGtleS5fdmFsdWU7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gdGhpcy50d2VlbihrZXksIG51bGwpO1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcjtcbiAgcmV0dXJuIHRoaXMudHdlZW4oa2V5LCB0ZXh0VHdlZW4odmFsdWUpKTtcbn1cbiIsCiAgICAiaW1wb3J0IHtUcmFuc2l0aW9uLCBuZXdJZH0gZnJvbSBcIi4vaW5kZXguanNcIjtcbmltcG9ydCBzY2hlZHVsZSwge2dldH0gZnJvbSBcIi4vc2NoZWR1bGUuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBuYW1lID0gdGhpcy5fbmFtZSxcbiAgICAgIGlkMCA9IHRoaXMuX2lkLFxuICAgICAgaWQxID0gbmV3SWQoKTtcblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIG0gPSBncm91cHMubGVuZ3RoLCBqID0gMDsgaiA8IG07ICsraikge1xuICAgIGZvciAodmFyIGdyb3VwID0gZ3JvdXBzW2pdLCBuID0gZ3JvdXAubGVuZ3RoLCBub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG5vZGUgPSBncm91cFtpXSkge1xuICAgICAgICB2YXIgaW5oZXJpdCA9IGdldChub2RlLCBpZDApO1xuICAgICAgICBzY2hlZHVsZShub2RlLCBuYW1lLCBpZDEsIGksIGdyb3VwLCB7XG4gICAgICAgICAgdGltZTogaW5oZXJpdC50aW1lICsgaW5oZXJpdC5kZWxheSArIGluaGVyaXQuZHVyYXRpb24sXG4gICAgICAgICAgZGVsYXk6IDAsXG4gICAgICAgICAgZHVyYXRpb246IGluaGVyaXQuZHVyYXRpb24sXG4gICAgICAgICAgZWFzZTogaW5oZXJpdC5lYXNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgVHJhbnNpdGlvbihncm91cHMsIHRoaXMuX3BhcmVudHMsIG5hbWUsIGlkMSk7XG59XG4iLAogICAgImltcG9ydCB7c2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIG9uMCwgb24xLCB0aGF0ID0gdGhpcywgaWQgPSB0aGF0Ll9pZCwgc2l6ZSA9IHRoYXQuc2l6ZSgpO1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdmFyIGNhbmNlbCA9IHt2YWx1ZTogcmVqZWN0fSxcbiAgICAgICAgZW5kID0ge3ZhbHVlOiBmdW5jdGlvbigpIHsgaWYgKC0tc2l6ZSA9PT0gMCkgcmVzb2x2ZSgpOyB9fTtcblxuICAgIHRoYXQuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgIHZhciBzY2hlZHVsZSA9IHNldCh0aGlzLCBpZCksXG4gICAgICAgICAgb24gPSBzY2hlZHVsZS5vbjtcblxuICAgICAgLy8gSWYgdGhpcyBub2RlIHNoYXJlZCBhIGRpc3BhdGNoIHdpdGggdGhlIHByZXZpb3VzIG5vZGUsXG4gICAgICAvLyBqdXN0IGFzc2lnbiB0aGUgdXBkYXRlZCBzaGFyZWQgZGlzcGF0Y2ggYW5kIHdl4oCZcmUgZG9uZSFcbiAgICAgIC8vIE90aGVyd2lzZSwgY29weS1vbi13cml0ZS5cbiAgICAgIGlmIChvbiAhPT0gb24wKSB7XG4gICAgICAgIG9uMSA9IChvbjAgPSBvbikuY29weSgpO1xuICAgICAgICBvbjEuXy5jYW5jZWwucHVzaChjYW5jZWwpO1xuICAgICAgICBvbjEuXy5pbnRlcnJ1cHQucHVzaChjYW5jZWwpO1xuICAgICAgICBvbjEuXy5lbmQucHVzaChlbmQpO1xuICAgICAgfVxuXG4gICAgICBzY2hlZHVsZS5vbiA9IG9uMTtcbiAgICB9KTtcblxuICAgIC8vIFRoZSBzZWxlY3Rpb24gd2FzIGVtcHR5LCByZXNvbHZlIGVuZCBpbW1lZGlhdGVseVxuICAgIGlmIChzaXplID09PSAwKSByZXNvbHZlKCk7XG4gIH0pO1xufVxuIiwKICAgICJpbXBvcnQge3NlbGVjdGlvbn0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IHRyYW5zaXRpb25fYXR0ciBmcm9tIFwiLi9hdHRyLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9hdHRyVHdlZW4gZnJvbSBcIi4vYXR0clR3ZWVuLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9kZWxheSBmcm9tIFwiLi9kZWxheS5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fZHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX2Vhc2UgZnJvbSBcIi4vZWFzZS5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fZWFzZVZhcnlpbmcgZnJvbSBcIi4vZWFzZVZhcnlpbmcuanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX2ZpbHRlciBmcm9tIFwiLi9maWx0ZXIuanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX21lcmdlIGZyb20gXCIuL21lcmdlLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9vbiBmcm9tIFwiLi9vbi5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fcmVtb3ZlIGZyb20gXCIuL3JlbW92ZS5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fc2VsZWN0IGZyb20gXCIuL3NlbGVjdC5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fc2VsZWN0QWxsIGZyb20gXCIuL3NlbGVjdEFsbC5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fc2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvbi5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fc3R5bGUgZnJvbSBcIi4vc3R5bGUuanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX3N0eWxlVHdlZW4gZnJvbSBcIi4vc3R5bGVUd2Vlbi5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fdGV4dCBmcm9tIFwiLi90ZXh0LmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl90ZXh0VHdlZW4gZnJvbSBcIi4vdGV4dFR3ZWVuLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl90cmFuc2l0aW9uIGZyb20gXCIuL3RyYW5zaXRpb24uanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX3R3ZWVuIGZyb20gXCIuL3R3ZWVuLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9lbmQgZnJvbSBcIi4vZW5kLmpzXCI7XG5cbnZhciBpZCA9IDA7XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmFuc2l0aW9uKGdyb3VwcywgcGFyZW50cywgbmFtZSwgaWQpIHtcbiAgdGhpcy5fZ3JvdXBzID0gZ3JvdXBzO1xuICB0aGlzLl9wYXJlbnRzID0gcGFyZW50cztcbiAgdGhpcy5fbmFtZSA9IG5hbWU7XG4gIHRoaXMuX2lkID0gaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zaXRpb24obmFtZSkge1xuICByZXR1cm4gc2VsZWN0aW9uKCkudHJhbnNpdGlvbihuYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5ld0lkKCkge1xuICByZXR1cm4gKytpZDtcbn1cblxudmFyIHNlbGVjdGlvbl9wcm90b3R5cGUgPSBzZWxlY3Rpb24ucHJvdG90eXBlO1xuXG5UcmFuc2l0aW9uLnByb3RvdHlwZSA9IHRyYW5zaXRpb24ucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogVHJhbnNpdGlvbixcbiAgc2VsZWN0OiB0cmFuc2l0aW9uX3NlbGVjdCxcbiAgc2VsZWN0QWxsOiB0cmFuc2l0aW9uX3NlbGVjdEFsbCxcbiAgc2VsZWN0Q2hpbGQ6IHNlbGVjdGlvbl9wcm90b3R5cGUuc2VsZWN0Q2hpbGQsXG4gIHNlbGVjdENoaWxkcmVuOiBzZWxlY3Rpb25fcHJvdG90eXBlLnNlbGVjdENoaWxkcmVuLFxuICBmaWx0ZXI6IHRyYW5zaXRpb25fZmlsdGVyLFxuICBtZXJnZTogdHJhbnNpdGlvbl9tZXJnZSxcbiAgc2VsZWN0aW9uOiB0cmFuc2l0aW9uX3NlbGVjdGlvbixcbiAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbl90cmFuc2l0aW9uLFxuICBjYWxsOiBzZWxlY3Rpb25fcHJvdG90eXBlLmNhbGwsXG4gIG5vZGVzOiBzZWxlY3Rpb25fcHJvdG90eXBlLm5vZGVzLFxuICBub2RlOiBzZWxlY3Rpb25fcHJvdG90eXBlLm5vZGUsXG4gIHNpemU6IHNlbGVjdGlvbl9wcm90b3R5cGUuc2l6ZSxcbiAgZW1wdHk6IHNlbGVjdGlvbl9wcm90b3R5cGUuZW1wdHksXG4gIGVhY2g6IHNlbGVjdGlvbl9wcm90b3R5cGUuZWFjaCxcbiAgb246IHRyYW5zaXRpb25fb24sXG4gIGF0dHI6IHRyYW5zaXRpb25fYXR0cixcbiAgYXR0clR3ZWVuOiB0cmFuc2l0aW9uX2F0dHJUd2VlbixcbiAgc3R5bGU6IHRyYW5zaXRpb25fc3R5bGUsXG4gIHN0eWxlVHdlZW46IHRyYW5zaXRpb25fc3R5bGVUd2VlbixcbiAgdGV4dDogdHJhbnNpdGlvbl90ZXh0LFxuICB0ZXh0VHdlZW46IHRyYW5zaXRpb25fdGV4dFR3ZWVuLFxuICByZW1vdmU6IHRyYW5zaXRpb25fcmVtb3ZlLFxuICB0d2VlbjogdHJhbnNpdGlvbl90d2VlbixcbiAgZGVsYXk6IHRyYW5zaXRpb25fZGVsYXksXG4gIGR1cmF0aW9uOiB0cmFuc2l0aW9uX2R1cmF0aW9uLFxuICBlYXNlOiB0cmFuc2l0aW9uX2Vhc2UsXG4gIGVhc2VWYXJ5aW5nOiB0cmFuc2l0aW9uX2Vhc2VWYXJ5aW5nLFxuICBlbmQ6IHRyYW5zaXRpb25fZW5kLFxuICBbU3ltYm9sLml0ZXJhdG9yXTogc2VsZWN0aW9uX3Byb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdXG59O1xuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gY3ViaWNJbih0KSB7XG4gIHJldHVybiB0ICogdCAqIHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWJpY091dCh0KSB7XG4gIHJldHVybiAtLXQgKiB0ICogdCArIDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWJpY0luT3V0KHQpIHtcbiAgcmV0dXJuICgodCAqPSAyKSA8PSAxID8gdCAqIHQgKiB0IDogKHQgLT0gMikgKiB0ICogdCArIDIpIC8gMjtcbn1cbiIsCiAgICAiaW1wb3J0IHtUcmFuc2l0aW9uLCBuZXdJZH0gZnJvbSBcIi4uL3RyYW5zaXRpb24vaW5kZXguanNcIjtcbmltcG9ydCBzY2hlZHVsZSBmcm9tIFwiLi4vdHJhbnNpdGlvbi9zY2hlZHVsZS5qc1wiO1xuaW1wb3J0IHtlYXNlQ3ViaWNJbk91dH0gZnJvbSBcImQzLWVhc2VcIjtcbmltcG9ydCB7bm93fSBmcm9tIFwiZDMtdGltZXJcIjtcblxudmFyIGRlZmF1bHRUaW1pbmcgPSB7XG4gIHRpbWU6IG51bGwsIC8vIFNldCBvbiB1c2UuXG4gIGRlbGF5OiAwLFxuICBkdXJhdGlvbjogMjUwLFxuICBlYXNlOiBlYXNlQ3ViaWNJbk91dFxufTtcblxuZnVuY3Rpb24gaW5oZXJpdChub2RlLCBpZCkge1xuICB2YXIgdGltaW5nO1xuICB3aGlsZSAoISh0aW1pbmcgPSBub2RlLl9fdHJhbnNpdGlvbikgfHwgISh0aW1pbmcgPSB0aW1pbmdbaWRdKSkge1xuICAgIGlmICghKG5vZGUgPSBub2RlLnBhcmVudE5vZGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHRyYW5zaXRpb24gJHtpZH0gbm90IGZvdW5kYCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aW1pbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIGlkLFxuICAgICAgdGltaW5nO1xuXG4gIGlmIChuYW1lIGluc3RhbmNlb2YgVHJhbnNpdGlvbikge1xuICAgIGlkID0gbmFtZS5faWQsIG5hbWUgPSBuYW1lLl9uYW1lO1xuICB9IGVsc2Uge1xuICAgIGlkID0gbmV3SWQoKSwgKHRpbWluZyA9IGRlZmF1bHRUaW1pbmcpLnRpbWUgPSBub3coKSwgbmFtZSA9IG5hbWUgPT0gbnVsbCA/IG51bGwgOiBuYW1lICsgXCJcIjtcbiAgfVxuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSB7XG4gICAgICAgIHNjaGVkdWxlKG5vZGUsIG5hbWUsIGlkLCBpLCBncm91cCwgdGltaW5nIHx8IGluaGVyaXQobm9kZSwgaWQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFRyYW5zaXRpb24oZ3JvdXBzLCB0aGlzLl9wYXJlbnRzLCBuYW1lLCBpZCk7XG59XG4iLAogICAgImltcG9ydCB7c2VsZWN0aW9ufSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2ludGVycnVwdCBmcm9tIFwiLi9pbnRlcnJ1cHQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fdHJhbnNpdGlvbiBmcm9tIFwiLi90cmFuc2l0aW9uLmpzXCI7XG5cbnNlbGVjdGlvbi5wcm90b3R5cGUuaW50ZXJydXB0ID0gc2VsZWN0aW9uX2ludGVycnVwdDtcbnNlbGVjdGlvbi5wcm90b3R5cGUudHJhbnNpdGlvbiA9IHNlbGVjdGlvbl90cmFuc2l0aW9uO1xuIiwKICAgICJpbXBvcnQgXCIuL3NlbGVjdGlvbi9pbmRleC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHRyYW5zaXRpb259IGZyb20gXCIuL3RyYW5zaXRpb24vaW5kZXguanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBhY3RpdmV9IGZyb20gXCIuL2FjdGl2ZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycnVwdH0gZnJvbSBcIi4vaW50ZXJydXB0LmpzXCI7XG4iLAogICAgImltcG9ydCB7ZGlzcGF0Y2h9IGZyb20gXCJkMy1kaXNwYXRjaFwiO1xuaW1wb3J0IHtkcmFnRGlzYWJsZSwgZHJhZ0VuYWJsZX0gZnJvbSBcImQzLWRyYWdcIjtcbmltcG9ydCB7aW50ZXJwb2xhdGV9IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuaW1wb3J0IHtwb2ludGVyLCBzZWxlY3R9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcbmltcG9ydCB7aW50ZXJydXB0fSBmcm9tIFwiZDMtdHJhbnNpdGlvblwiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQgQnJ1c2hFdmVudCBmcm9tIFwiLi9ldmVudC5qc1wiO1xuaW1wb3J0IG5vZXZlbnQsIHtub3Byb3BhZ2F0aW9ufSBmcm9tIFwiLi9ub2V2ZW50LmpzXCI7XG5cbnZhciBNT0RFX0RSQUcgPSB7bmFtZTogXCJkcmFnXCJ9LFxuICAgIE1PREVfU1BBQ0UgPSB7bmFtZTogXCJzcGFjZVwifSxcbiAgICBNT0RFX0hBTkRMRSA9IHtuYW1lOiBcImhhbmRsZVwifSxcbiAgICBNT0RFX0NFTlRFUiA9IHtuYW1lOiBcImNlbnRlclwifTtcblxuY29uc3Qge2FicywgbWF4LCBtaW59ID0gTWF0aDtcblxuZnVuY3Rpb24gbnVtYmVyMShlKSB7XG4gIHJldHVybiBbK2VbMF0sICtlWzFdXTtcbn1cblxuZnVuY3Rpb24gbnVtYmVyMihlKSB7XG4gIHJldHVybiBbbnVtYmVyMShlWzBdKSwgbnVtYmVyMShlWzFdKV07XG59XG5cbnZhciBYID0ge1xuICBuYW1lOiBcInhcIixcbiAgaGFuZGxlczogW1wid1wiLCBcImVcIl0ubWFwKHR5cGUpLFxuICBpbnB1dDogZnVuY3Rpb24oeCwgZSkgeyByZXR1cm4geCA9PSBudWxsID8gbnVsbCA6IFtbK3hbMF0sIGVbMF1bMV1dLCBbK3hbMV0sIGVbMV1bMV1dXTsgfSxcbiAgb3V0cHV0OiBmdW5jdGlvbih4eSkgeyByZXR1cm4geHkgJiYgW3h5WzBdWzBdLCB4eVsxXVswXV07IH1cbn07XG5cbnZhciBZID0ge1xuICBuYW1lOiBcInlcIixcbiAgaGFuZGxlczogW1wiblwiLCBcInNcIl0ubWFwKHR5cGUpLFxuICBpbnB1dDogZnVuY3Rpb24oeSwgZSkgeyByZXR1cm4geSA9PSBudWxsID8gbnVsbCA6IFtbZVswXVswXSwgK3lbMF1dLCBbZVsxXVswXSwgK3lbMV1dXTsgfSxcbiAgb3V0cHV0OiBmdW5jdGlvbih4eSkgeyByZXR1cm4geHkgJiYgW3h5WzBdWzFdLCB4eVsxXVsxXV07IH1cbn07XG5cbnZhciBYWSA9IHtcbiAgbmFtZTogXCJ4eVwiLFxuICBoYW5kbGVzOiBbXCJuXCIsIFwid1wiLCBcImVcIiwgXCJzXCIsIFwibndcIiwgXCJuZVwiLCBcInN3XCIsIFwic2VcIl0ubWFwKHR5cGUpLFxuICBpbnB1dDogZnVuY3Rpb24oeHkpIHsgcmV0dXJuIHh5ID09IG51bGwgPyBudWxsIDogbnVtYmVyMih4eSk7IH0sXG4gIG91dHB1dDogZnVuY3Rpb24oeHkpIHsgcmV0dXJuIHh5OyB9XG59O1xuXG52YXIgY3Vyc29ycyA9IHtcbiAgb3ZlcmxheTogXCJjcm9zc2hhaXJcIixcbiAgc2VsZWN0aW9uOiBcIm1vdmVcIixcbiAgbjogXCJucy1yZXNpemVcIixcbiAgZTogXCJldy1yZXNpemVcIixcbiAgczogXCJucy1yZXNpemVcIixcbiAgdzogXCJldy1yZXNpemVcIixcbiAgbnc6IFwibndzZS1yZXNpemVcIixcbiAgbmU6IFwibmVzdy1yZXNpemVcIixcbiAgc2U6IFwibndzZS1yZXNpemVcIixcbiAgc3c6IFwibmVzdy1yZXNpemVcIlxufTtcblxudmFyIGZsaXBYID0ge1xuICBlOiBcIndcIixcbiAgdzogXCJlXCIsXG4gIG53OiBcIm5lXCIsXG4gIG5lOiBcIm53XCIsXG4gIHNlOiBcInN3XCIsXG4gIHN3OiBcInNlXCJcbn07XG5cbnZhciBmbGlwWSA9IHtcbiAgbjogXCJzXCIsXG4gIHM6IFwiblwiLFxuICBudzogXCJzd1wiLFxuICBuZTogXCJzZVwiLFxuICBzZTogXCJuZVwiLFxuICBzdzogXCJud1wiXG59O1xuXG52YXIgc2lnbnNYID0ge1xuICBvdmVybGF5OiArMSxcbiAgc2VsZWN0aW9uOiArMSxcbiAgbjogbnVsbCxcbiAgZTogKzEsXG4gIHM6IG51bGwsXG4gIHc6IC0xLFxuICBudzogLTEsXG4gIG5lOiArMSxcbiAgc2U6ICsxLFxuICBzdzogLTFcbn07XG5cbnZhciBzaWduc1kgPSB7XG4gIG92ZXJsYXk6ICsxLFxuICBzZWxlY3Rpb246ICsxLFxuICBuOiAtMSxcbiAgZTogbnVsbCxcbiAgczogKzEsXG4gIHc6IG51bGwsXG4gIG53OiAtMSxcbiAgbmU6IC0xLFxuICBzZTogKzEsXG4gIHN3OiArMVxufTtcblxuZnVuY3Rpb24gdHlwZSh0KSB7XG4gIHJldHVybiB7dHlwZTogdH07XG59XG5cbi8vIElnbm9yZSByaWdodC1jbGljaywgc2luY2UgdGhhdCBzaG91bGQgb3BlbiB0aGUgY29udGV4dCBtZW51LlxuZnVuY3Rpb24gZGVmYXVsdEZpbHRlcihldmVudCkge1xuICByZXR1cm4gIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50LmJ1dHRvbjtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdEV4dGVudCgpIHtcbiAgdmFyIHN2ZyA9IHRoaXMub3duZXJTVkdFbGVtZW50IHx8IHRoaXM7XG4gIGlmIChzdmcuaGFzQXR0cmlidXRlKFwidmlld0JveFwiKSkge1xuICAgIHN2ZyA9IHN2Zy52aWV3Qm94LmJhc2VWYWw7XG4gICAgcmV0dXJuIFtbc3ZnLngsIHN2Zy55XSwgW3N2Zy54ICsgc3ZnLndpZHRoLCBzdmcueSArIHN2Zy5oZWlnaHRdXTtcbiAgfVxuICByZXR1cm4gW1swLCAwXSwgW3N2Zy53aWR0aC5iYXNlVmFsLnZhbHVlLCBzdmcuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFRvdWNoYWJsZSgpIHtcbiAgcmV0dXJuIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyB8fCAoXCJvbnRvdWNoc3RhcnRcIiBpbiB0aGlzKTtcbn1cblxuLy8gTGlrZSBkMy5sb2NhbCwgYnV0IHdpdGggdGhlIG5hbWUg4oCcX19icnVzaOKAnSByYXRoZXIgdGhhbiBhdXRvLWdlbmVyYXRlZC5cbmZ1bmN0aW9uIGxvY2FsKG5vZGUpIHtcbiAgd2hpbGUgKCFub2RlLl9fYnJ1c2gpIGlmICghKG5vZGUgPSBub2RlLnBhcmVudE5vZGUpKSByZXR1cm47XG4gIHJldHVybiBub2RlLl9fYnJ1c2g7XG59XG5cbmZ1bmN0aW9uIGVtcHR5KGV4dGVudCkge1xuICByZXR1cm4gZXh0ZW50WzBdWzBdID09PSBleHRlbnRbMV1bMF1cbiAgICAgIHx8IGV4dGVudFswXVsxXSA9PT0gZXh0ZW50WzFdWzFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJ1c2hTZWxlY3Rpb24obm9kZSkge1xuICB2YXIgc3RhdGUgPSBub2RlLl9fYnJ1c2g7XG4gIHJldHVybiBzdGF0ZSA/IHN0YXRlLmRpbS5vdXRwdXQoc3RhdGUuc2VsZWN0aW9uKSA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicnVzaFgoKSB7XG4gIHJldHVybiBicnVzaChYKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJydXNoWSgpIHtcbiAgcmV0dXJuIGJydXNoKFkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGJydXNoKFhZKTtcbn1cblxuZnVuY3Rpb24gYnJ1c2goZGltKSB7XG4gIHZhciBleHRlbnQgPSBkZWZhdWx0RXh0ZW50LFxuICAgICAgZmlsdGVyID0gZGVmYXVsdEZpbHRlcixcbiAgICAgIHRvdWNoYWJsZSA9IGRlZmF1bHRUb3VjaGFibGUsXG4gICAgICBrZXlzID0gdHJ1ZSxcbiAgICAgIGxpc3RlbmVycyA9IGRpc3BhdGNoKFwic3RhcnRcIiwgXCJicnVzaFwiLCBcImVuZFwiKSxcbiAgICAgIGhhbmRsZVNpemUgPSA2LFxuICAgICAgdG91Y2hlbmRpbmc7XG5cbiAgZnVuY3Rpb24gYnJ1c2goZ3JvdXApIHtcbiAgICB2YXIgb3ZlcmxheSA9IGdyb3VwXG4gICAgICAgIC5wcm9wZXJ0eShcIl9fYnJ1c2hcIiwgaW5pdGlhbGl6ZSlcbiAgICAgIC5zZWxlY3RBbGwoXCIub3ZlcmxheVwiKVxuICAgICAgLmRhdGEoW3R5cGUoXCJvdmVybGF5XCIpXSk7XG5cbiAgICBvdmVybGF5LmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKVxuICAgICAgICAuYXR0cihcImNsYXNzXCIsIFwib3ZlcmxheVwiKVxuICAgICAgICAuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsIFwiYWxsXCIpXG4gICAgICAgIC5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnMub3ZlcmxheSlcbiAgICAgIC5tZXJnZShvdmVybGF5KVxuICAgICAgICAuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgZXh0ZW50ID0gbG9jYWwodGhpcykuZXh0ZW50O1xuICAgICAgICAgIHNlbGVjdCh0aGlzKVxuICAgICAgICAgICAgICAuYXR0cihcInhcIiwgZXh0ZW50WzBdWzBdKVxuICAgICAgICAgICAgICAuYXR0cihcInlcIiwgZXh0ZW50WzBdWzFdKVxuICAgICAgICAgICAgICAuYXR0cihcIndpZHRoXCIsIGV4dGVudFsxXVswXSAtIGV4dGVudFswXVswXSlcbiAgICAgICAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgZXh0ZW50WzFdWzFdIC0gZXh0ZW50WzBdWzFdKTtcbiAgICAgICAgfSk7XG5cbiAgICBncm91cC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uXCIpXG4gICAgICAuZGF0YShbdHlwZShcInNlbGVjdGlvblwiKV0pXG4gICAgICAuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpXG4gICAgICAgIC5hdHRyKFwiY2xhc3NcIiwgXCJzZWxlY3Rpb25cIilcbiAgICAgICAgLmF0dHIoXCJjdXJzb3JcIiwgY3Vyc29ycy5zZWxlY3Rpb24pXG4gICAgICAgIC5hdHRyKFwiZmlsbFwiLCBcIiM3NzdcIilcbiAgICAgICAgLmF0dHIoXCJmaWxsLW9wYWNpdHlcIiwgMC4zKVxuICAgICAgICAuYXR0cihcInN0cm9rZVwiLCBcIiNmZmZcIilcbiAgICAgICAgLmF0dHIoXCJzaGFwZS1yZW5kZXJpbmdcIiwgXCJjcmlzcEVkZ2VzXCIpO1xuXG4gICAgdmFyIGhhbmRsZSA9IGdyb3VwLnNlbGVjdEFsbChcIi5oYW5kbGVcIilcbiAgICAgIC5kYXRhKGRpbS5oYW5kbGVzLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLnR5cGU7IH0pO1xuXG4gICAgaGFuZGxlLmV4aXQoKS5yZW1vdmUoKTtcblxuICAgIGhhbmRsZS5lbnRlcigpLmFwcGVuZChcInJlY3RcIilcbiAgICAgICAgLmF0dHIoXCJjbGFzc1wiLCBmdW5jdGlvbihkKSB7IHJldHVybiBcImhhbmRsZSBoYW5kbGUtLVwiICsgZC50eXBlOyB9KVxuICAgICAgICAuYXR0cihcImN1cnNvclwiLCBmdW5jdGlvbihkKSB7IHJldHVybiBjdXJzb3JzW2QudHlwZV07IH0pO1xuXG4gICAgZ3JvdXBcbiAgICAgICAgLmVhY2gocmVkcmF3KVxuICAgICAgICAuYXR0cihcImZpbGxcIiwgXCJub25lXCIpXG4gICAgICAgIC5hdHRyKFwicG9pbnRlci1ldmVudHNcIiwgXCJhbGxcIilcbiAgICAgICAgLm9uKFwibW91c2Vkb3duLmJydXNoXCIsIHN0YXJ0ZWQpXG4gICAgICAuZmlsdGVyKHRvdWNoYWJsZSlcbiAgICAgICAgLm9uKFwidG91Y2hzdGFydC5icnVzaFwiLCBzdGFydGVkKVxuICAgICAgICAub24oXCJ0b3VjaG1vdmUuYnJ1c2hcIiwgdG91Y2htb3ZlZClcbiAgICAgICAgLm9uKFwidG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2hcIiwgdG91Y2hlbmRlZClcbiAgICAgICAgLnN0eWxlKFwidG91Y2gtYWN0aW9uXCIsIFwibm9uZVwiKVxuICAgICAgICAuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIiwgXCJyZ2JhKDAsMCwwLDApXCIpO1xuICB9XG5cbiAgYnJ1c2gubW92ZSA9IGZ1bmN0aW9uKGdyb3VwLCBzZWxlY3Rpb24sIGV2ZW50KSB7XG4gICAgaWYgKGdyb3VwLnR3ZWVuKSB7XG4gICAgICBncm91cFxuICAgICAgICAgIC5vbihcInN0YXJ0LmJydXNoXCIsIGZ1bmN0aW9uKGV2ZW50KSB7IGVtaXR0ZXIodGhpcywgYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpLnN0YXJ0KGV2ZW50KTsgfSlcbiAgICAgICAgICAub24oXCJpbnRlcnJ1cHQuYnJ1c2ggZW5kLmJydXNoXCIsIGZ1bmN0aW9uKGV2ZW50KSB7IGVtaXR0ZXIodGhpcywgYXJndW1lbnRzKS5lbmQoZXZlbnQpOyB9KVxuICAgICAgICAgIC50d2VlbihcImJydXNoXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLFxuICAgICAgICAgICAgICAgIHN0YXRlID0gdGhhdC5fX2JydXNoLFxuICAgICAgICAgICAgICAgIGVtaXQgPSBlbWl0dGVyKHRoYXQsIGFyZ3VtZW50cyksXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uMCA9IHN0YXRlLnNlbGVjdGlvbixcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24xID0gZGltLmlucHV0KHR5cGVvZiBzZWxlY3Rpb24gPT09IFwiZnVuY3Rpb25cIiA/IHNlbGVjdGlvbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpIDogc2VsZWN0aW9uLCBzdGF0ZS5leHRlbnQpLFxuICAgICAgICAgICAgICAgIGkgPSBpbnRlcnBvbGF0ZShzZWxlY3Rpb24wLCBzZWxlY3Rpb24xKTtcblxuICAgICAgICAgICAgZnVuY3Rpb24gdHdlZW4odCkge1xuICAgICAgICAgICAgICBzdGF0ZS5zZWxlY3Rpb24gPSB0ID09PSAxICYmIHNlbGVjdGlvbjEgPT09IG51bGwgPyBudWxsIDogaSh0KTtcbiAgICAgICAgICAgICAgcmVkcmF3LmNhbGwodGhhdCk7XG4gICAgICAgICAgICAgIGVtaXQuYnJ1c2goKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjAgIT09IG51bGwgJiYgc2VsZWN0aW9uMSAhPT0gbnVsbCA/IHR3ZWVuIDogdHdlZW4oMSk7XG4gICAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdyb3VwXG4gICAgICAgICAgLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsXG4gICAgICAgICAgICAgICAgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgICAgICAgICBzdGF0ZSA9IHRoYXQuX19icnVzaCxcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24xID0gZGltLmlucHV0KHR5cGVvZiBzZWxlY3Rpb24gPT09IFwiZnVuY3Rpb25cIiA/IHNlbGVjdGlvbi5hcHBseSh0aGF0LCBhcmdzKSA6IHNlbGVjdGlvbiwgc3RhdGUuZXh0ZW50KSxcbiAgICAgICAgICAgICAgICBlbWl0ID0gZW1pdHRlcih0aGF0LCBhcmdzKS5iZWZvcmVzdGFydCgpO1xuXG4gICAgICAgICAgICBpbnRlcnJ1cHQodGhhdCk7XG4gICAgICAgICAgICBzdGF0ZS5zZWxlY3Rpb24gPSBzZWxlY3Rpb24xID09PSBudWxsID8gbnVsbCA6IHNlbGVjdGlvbjE7XG4gICAgICAgICAgICByZWRyYXcuY2FsbCh0aGF0KTtcbiAgICAgICAgICAgIGVtaXQuc3RhcnQoZXZlbnQpLmJydXNoKGV2ZW50KS5lbmQoZXZlbnQpO1xuICAgICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBicnVzaC5jbGVhciA9IGZ1bmN0aW9uKGdyb3VwLCBldmVudCkge1xuICAgIGJydXNoLm1vdmUoZ3JvdXAsIG51bGwsIGV2ZW50KTtcbiAgfTtcblxuICBmdW5jdGlvbiByZWRyYXcoKSB7XG4gICAgdmFyIGdyb3VwID0gc2VsZWN0KHRoaXMpLFxuICAgICAgICBzZWxlY3Rpb24gPSBsb2NhbCh0aGlzKS5zZWxlY3Rpb247XG5cbiAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICBncm91cC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uXCIpXG4gICAgICAgICAgLnN0eWxlKFwiZGlzcGxheVwiLCBudWxsKVxuICAgICAgICAgIC5hdHRyKFwieFwiLCBzZWxlY3Rpb25bMF1bMF0pXG4gICAgICAgICAgLmF0dHIoXCJ5XCIsIHNlbGVjdGlvblswXVsxXSlcbiAgICAgICAgICAuYXR0cihcIndpZHRoXCIsIHNlbGVjdGlvblsxXVswXSAtIHNlbGVjdGlvblswXVswXSlcbiAgICAgICAgICAuYXR0cihcImhlaWdodFwiLCBzZWxlY3Rpb25bMV1bMV0gLSBzZWxlY3Rpb25bMF1bMV0pO1xuXG4gICAgICBncm91cC5zZWxlY3RBbGwoXCIuaGFuZGxlXCIpXG4gICAgICAgICAgLnN0eWxlKFwiZGlzcGxheVwiLCBudWxsKVxuICAgICAgICAgIC5hdHRyKFwieFwiLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLnR5cGVbZC50eXBlLmxlbmd0aCAtIDFdID09PSBcImVcIiA/IHNlbGVjdGlvblsxXVswXSAtIGhhbmRsZVNpemUgLyAyIDogc2VsZWN0aW9uWzBdWzBdIC0gaGFuZGxlU2l6ZSAvIDI7IH0pXG4gICAgICAgICAgLmF0dHIoXCJ5XCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQudHlwZVswXSA9PT0gXCJzXCIgPyBzZWxlY3Rpb25bMV1bMV0gLSBoYW5kbGVTaXplIC8gMiA6IHNlbGVjdGlvblswXVsxXSAtIGhhbmRsZVNpemUgLyAyOyB9KVxuICAgICAgICAgIC5hdHRyKFwid2lkdGhcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gZC50eXBlID09PSBcIm5cIiB8fCBkLnR5cGUgPT09IFwic1wiID8gc2VsZWN0aW9uWzFdWzBdIC0gc2VsZWN0aW9uWzBdWzBdICsgaGFuZGxlU2l6ZSA6IGhhbmRsZVNpemU7IH0pXG4gICAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gZC50eXBlID09PSBcImVcIiB8fCBkLnR5cGUgPT09IFwid1wiID8gc2VsZWN0aW9uWzFdWzFdIC0gc2VsZWN0aW9uWzBdWzFdICsgaGFuZGxlU2l6ZSA6IGhhbmRsZVNpemU7IH0pO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgZ3JvdXAuc2VsZWN0QWxsKFwiLnNlbGVjdGlvbiwuaGFuZGxlXCIpXG4gICAgICAgICAgLnN0eWxlKFwiZGlzcGxheVwiLCBcIm5vbmVcIilcbiAgICAgICAgICAuYXR0cihcInhcIiwgbnVsbClcbiAgICAgICAgICAuYXR0cihcInlcIiwgbnVsbClcbiAgICAgICAgICAuYXR0cihcIndpZHRoXCIsIG51bGwpXG4gICAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgbnVsbCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZW1pdHRlcih0aGF0LCBhcmdzLCBjbGVhbikge1xuICAgIHZhciBlbWl0ID0gdGhhdC5fX2JydXNoLmVtaXR0ZXI7XG4gICAgcmV0dXJuIGVtaXQgJiYgKCFjbGVhbiB8fCAhZW1pdC5jbGVhbikgPyBlbWl0IDogbmV3IEVtaXR0ZXIodGhhdCwgYXJncywgY2xlYW4pO1xuICB9XG5cbiAgZnVuY3Rpb24gRW1pdHRlcih0aGF0LCBhcmdzLCBjbGVhbikge1xuICAgIHRoaXMudGhhdCA9IHRoYXQ7XG4gICAgdGhpcy5hcmdzID0gYXJncztcbiAgICB0aGlzLnN0YXRlID0gdGhhdC5fX2JydXNoO1xuICAgIHRoaXMuYWN0aXZlID0gMDtcbiAgICB0aGlzLmNsZWFuID0gY2xlYW47XG4gIH1cblxuICBFbWl0dGVyLnByb3RvdHlwZSA9IHtcbiAgICBiZWZvcmVzdGFydDogZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoKyt0aGlzLmFjdGl2ZSA9PT0gMSkgdGhpcy5zdGF0ZS5lbWl0dGVyID0gdGhpcywgdGhpcy5zdGFydGluZyA9IHRydWU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIHN0YXJ0OiBmdW5jdGlvbihldmVudCwgbW9kZSkge1xuICAgICAgaWYgKHRoaXMuc3RhcnRpbmcpIHRoaXMuc3RhcnRpbmcgPSBmYWxzZSwgdGhpcy5lbWl0KFwic3RhcnRcIiwgZXZlbnQsIG1vZGUpO1xuICAgICAgZWxzZSB0aGlzLmVtaXQoXCJicnVzaFwiLCBldmVudCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIGJydXNoOiBmdW5jdGlvbihldmVudCwgbW9kZSkge1xuICAgICAgdGhpcy5lbWl0KFwiYnJ1c2hcIiwgZXZlbnQsIG1vZGUpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBlbmQ6IGZ1bmN0aW9uKGV2ZW50LCBtb2RlKSB7XG4gICAgICBpZiAoLS10aGlzLmFjdGl2ZSA9PT0gMCkgZGVsZXRlIHRoaXMuc3RhdGUuZW1pdHRlciwgdGhpcy5lbWl0KFwiZW5kXCIsIGV2ZW50LCBtb2RlKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgZW1pdDogZnVuY3Rpb24odHlwZSwgZXZlbnQsIG1vZGUpIHtcbiAgICAgIHZhciBkID0gc2VsZWN0KHRoaXMudGhhdCkuZGF0dW0oKTtcbiAgICAgIGxpc3RlbmVycy5jYWxsKFxuICAgICAgICB0eXBlLFxuICAgICAgICB0aGlzLnRoYXQsXG4gICAgICAgIG5ldyBCcnVzaEV2ZW50KHR5cGUsIHtcbiAgICAgICAgICBzb3VyY2VFdmVudDogZXZlbnQsXG4gICAgICAgICAgdGFyZ2V0OiBicnVzaCxcbiAgICAgICAgICBzZWxlY3Rpb246IGRpbS5vdXRwdXQodGhpcy5zdGF0ZS5zZWxlY3Rpb24pLFxuICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgZGlzcGF0Y2g6IGxpc3RlbmVyc1xuICAgICAgICB9KSxcbiAgICAgICAgZFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgZnVuY3Rpb24gc3RhcnRlZChldmVudCkge1xuICAgIGlmICh0b3VjaGVuZGluZyAmJiAhZXZlbnQudG91Y2hlcykgcmV0dXJuO1xuICAgIGlmICghZmlsdGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpIHJldHVybjtcblxuICAgIHZhciB0aGF0ID0gdGhpcyxcbiAgICAgICAgdHlwZSA9IGV2ZW50LnRhcmdldC5fX2RhdGFfXy50eXBlLFxuICAgICAgICBtb2RlID0gKGtleXMgJiYgZXZlbnQubWV0YUtleSA/IHR5cGUgPSBcIm92ZXJsYXlcIiA6IHR5cGUpID09PSBcInNlbGVjdGlvblwiID8gTU9ERV9EUkFHIDogKGtleXMgJiYgZXZlbnQuYWx0S2V5ID8gTU9ERV9DRU5URVIgOiBNT0RFX0hBTkRMRSksXG4gICAgICAgIHNpZ25YID0gZGltID09PSBZID8gbnVsbCA6IHNpZ25zWFt0eXBlXSxcbiAgICAgICAgc2lnblkgPSBkaW0gPT09IFggPyBudWxsIDogc2lnbnNZW3R5cGVdLFxuICAgICAgICBzdGF0ZSA9IGxvY2FsKHRoYXQpLFxuICAgICAgICBleHRlbnQgPSBzdGF0ZS5leHRlbnQsXG4gICAgICAgIHNlbGVjdGlvbiA9IHN0YXRlLnNlbGVjdGlvbixcbiAgICAgICAgVyA9IGV4dGVudFswXVswXSwgdzAsIHcxLFxuICAgICAgICBOID0gZXh0ZW50WzBdWzFdLCBuMCwgbjEsXG4gICAgICAgIEUgPSBleHRlbnRbMV1bMF0sIGUwLCBlMSxcbiAgICAgICAgUyA9IGV4dGVudFsxXVsxXSwgczAsIHMxLFxuICAgICAgICBkeCA9IDAsXG4gICAgICAgIGR5ID0gMCxcbiAgICAgICAgbW92aW5nLFxuICAgICAgICBzaGlmdGluZyA9IHNpZ25YICYmIHNpZ25ZICYmIGtleXMgJiYgZXZlbnQuc2hpZnRLZXksXG4gICAgICAgIGxvY2tYLFxuICAgICAgICBsb2NrWSxcbiAgICAgICAgcG9pbnRzID0gQXJyYXkuZnJvbShldmVudC50b3VjaGVzIHx8IFtldmVudF0sIHQgPT4ge1xuICAgICAgICAgIGNvbnN0IGkgPSB0LmlkZW50aWZpZXI7XG4gICAgICAgICAgdCA9IHBvaW50ZXIodCwgdGhhdCk7XG4gICAgICAgICAgdC5wb2ludDAgPSB0LnNsaWNlKCk7XG4gICAgICAgICAgdC5pZGVudGlmaWVyID0gaTtcbiAgICAgICAgICByZXR1cm4gdDtcbiAgICAgICAgfSk7XG5cbiAgICBpbnRlcnJ1cHQodGhhdCk7XG4gICAgdmFyIGVtaXQgPSBlbWl0dGVyKHRoYXQsIGFyZ3VtZW50cywgdHJ1ZSkuYmVmb3Jlc3RhcnQoKTtcblxuICAgIGlmICh0eXBlID09PSBcIm92ZXJsYXlcIikge1xuICAgICAgaWYgKHNlbGVjdGlvbikgbW92aW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHB0cyA9IFtwb2ludHNbMF0sIHBvaW50c1sxXSB8fCBwb2ludHNbMF1dO1xuICAgICAgc3RhdGUuc2VsZWN0aW9uID0gc2VsZWN0aW9uID0gW1tcbiAgICAgICAgICB3MCA9IGRpbSA9PT0gWSA/IFcgOiBtaW4ocHRzWzBdWzBdLCBwdHNbMV1bMF0pLFxuICAgICAgICAgIG4wID0gZGltID09PSBYID8gTiA6IG1pbihwdHNbMF1bMV0sIHB0c1sxXVsxXSlcbiAgICAgICAgXSwgW1xuICAgICAgICAgIGUwID0gZGltID09PSBZID8gRSA6IG1heChwdHNbMF1bMF0sIHB0c1sxXVswXSksXG4gICAgICAgICAgczAgPSBkaW0gPT09IFggPyBTIDogbWF4KHB0c1swXVsxXSwgcHRzWzFdWzFdKVxuICAgICAgICBdXTtcbiAgICAgIGlmIChwb2ludHMubGVuZ3RoID4gMSkgbW92ZShldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHcwID0gc2VsZWN0aW9uWzBdWzBdO1xuICAgICAgbjAgPSBzZWxlY3Rpb25bMF1bMV07XG4gICAgICBlMCA9IHNlbGVjdGlvblsxXVswXTtcbiAgICAgIHMwID0gc2VsZWN0aW9uWzFdWzFdO1xuICAgIH1cblxuICAgIHcxID0gdzA7XG4gICAgbjEgPSBuMDtcbiAgICBlMSA9IGUwO1xuICAgIHMxID0gczA7XG5cbiAgICB2YXIgZ3JvdXAgPSBzZWxlY3QodGhhdClcbiAgICAgICAgLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLCBcIm5vbmVcIik7XG5cbiAgICB2YXIgb3ZlcmxheSA9IGdyb3VwLnNlbGVjdEFsbChcIi5vdmVybGF5XCIpXG4gICAgICAgIC5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnNbdHlwZV0pO1xuXG4gICAgaWYgKGV2ZW50LnRvdWNoZXMpIHtcbiAgICAgIGVtaXQubW92ZWQgPSBtb3ZlZDtcbiAgICAgIGVtaXQuZW5kZWQgPSBlbmRlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHZpZXcgPSBzZWxlY3QoZXZlbnQudmlldylcbiAgICAgICAgICAub24oXCJtb3VzZW1vdmUuYnJ1c2hcIiwgbW92ZWQsIHRydWUpXG4gICAgICAgICAgLm9uKFwibW91c2V1cC5icnVzaFwiLCBlbmRlZCwgdHJ1ZSk7XG4gICAgICBpZiAoa2V5cykgdmlld1xuICAgICAgICAgIC5vbihcImtleWRvd24uYnJ1c2hcIiwga2V5ZG93bmVkLCB0cnVlKVxuICAgICAgICAgIC5vbihcImtleXVwLmJydXNoXCIsIGtleXVwcGVkLCB0cnVlKVxuXG4gICAgICBkcmFnRGlzYWJsZShldmVudC52aWV3KTtcbiAgICB9XG5cbiAgICByZWRyYXcuY2FsbCh0aGF0KTtcbiAgICBlbWl0LnN0YXJ0KGV2ZW50LCBtb2RlLm5hbWUpO1xuXG4gICAgZnVuY3Rpb24gbW92ZWQoZXZlbnQpIHtcbiAgICAgIGZvciAoY29uc3QgcCBvZiBldmVudC5jaGFuZ2VkVG91Y2hlcyB8fCBbZXZlbnRdKSB7XG4gICAgICAgIGZvciAoY29uc3QgZCBvZiBwb2ludHMpXG4gICAgICAgICAgaWYgKGQuaWRlbnRpZmllciA9PT0gcC5pZGVudGlmaWVyKSBkLmN1ciA9IHBvaW50ZXIocCwgdGhhdCk7XG4gICAgICB9XG4gICAgICBpZiAoc2hpZnRpbmcgJiYgIWxvY2tYICYmICFsb2NrWSAmJiBwb2ludHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gcG9pbnRzWzBdO1xuICAgICAgICBpZiAoYWJzKHBvaW50LmN1clswXSAtIHBvaW50WzBdKSA+IGFicyhwb2ludC5jdXJbMV0gLSBwb2ludFsxXSkpXG4gICAgICAgICAgbG9ja1kgPSB0cnVlO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgbG9ja1ggPSB0cnVlO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBwb2ludCBvZiBwb2ludHMpXG4gICAgICAgIGlmIChwb2ludC5jdXIpIHBvaW50WzBdID0gcG9pbnQuY3VyWzBdLCBwb2ludFsxXSA9IHBvaW50LmN1clsxXTtcbiAgICAgIG1vdmluZyA9IHRydWU7XG4gICAgICBub2V2ZW50KGV2ZW50KTtcbiAgICAgIG1vdmUoZXZlbnQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vdmUoZXZlbnQpIHtcbiAgICAgIGNvbnN0IHBvaW50ID0gcG9pbnRzWzBdLCBwb2ludDAgPSBwb2ludC5wb2ludDA7XG4gICAgICB2YXIgdDtcblxuICAgICAgZHggPSBwb2ludFswXSAtIHBvaW50MFswXTtcbiAgICAgIGR5ID0gcG9pbnRbMV0gLSBwb2ludDBbMV07XG5cbiAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICBjYXNlIE1PREVfU1BBQ0U6XG4gICAgICAgIGNhc2UgTU9ERV9EUkFHOiB7XG4gICAgICAgICAgaWYgKHNpZ25YKSBkeCA9IG1heChXIC0gdzAsIG1pbihFIC0gZTAsIGR4KSksIHcxID0gdzAgKyBkeCwgZTEgPSBlMCArIGR4O1xuICAgICAgICAgIGlmIChzaWduWSkgZHkgPSBtYXgoTiAtIG4wLCBtaW4oUyAtIHMwLCBkeSkpLCBuMSA9IG4wICsgZHksIHMxID0gczAgKyBkeTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIE1PREVfSEFORExFOiB7XG4gICAgICAgICAgaWYgKHBvaW50c1sxXSkge1xuICAgICAgICAgICAgaWYgKHNpZ25YKSB3MSA9IG1heChXLCBtaW4oRSwgcG9pbnRzWzBdWzBdKSksIGUxID0gbWF4KFcsIG1pbihFLCBwb2ludHNbMV1bMF0pKSwgc2lnblggPSAxO1xuICAgICAgICAgICAgaWYgKHNpZ25ZKSBuMSA9IG1heChOLCBtaW4oUywgcG9pbnRzWzBdWzFdKSksIHMxID0gbWF4KE4sIG1pbihTLCBwb2ludHNbMV1bMV0pKSwgc2lnblkgPSAxO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoc2lnblggPCAwKSBkeCA9IG1heChXIC0gdzAsIG1pbihFIC0gdzAsIGR4KSksIHcxID0gdzAgKyBkeCwgZTEgPSBlMDtcbiAgICAgICAgICAgIGVsc2UgaWYgKHNpZ25YID4gMCkgZHggPSBtYXgoVyAtIGUwLCBtaW4oRSAtIGUwLCBkeCkpLCB3MSA9IHcwLCBlMSA9IGUwICsgZHg7XG4gICAgICAgICAgICBpZiAoc2lnblkgPCAwKSBkeSA9IG1heChOIC0gbjAsIG1pbihTIC0gbjAsIGR5KSksIG4xID0gbjAgKyBkeSwgczEgPSBzMDtcbiAgICAgICAgICAgIGVsc2UgaWYgKHNpZ25ZID4gMCkgZHkgPSBtYXgoTiAtIHMwLCBtaW4oUyAtIHMwLCBkeSkpLCBuMSA9IG4wLCBzMSA9IHMwICsgZHk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgTU9ERV9DRU5URVI6IHtcbiAgICAgICAgICBpZiAoc2lnblgpIHcxID0gbWF4KFcsIG1pbihFLCB3MCAtIGR4ICogc2lnblgpKSwgZTEgPSBtYXgoVywgbWluKEUsIGUwICsgZHggKiBzaWduWCkpO1xuICAgICAgICAgIGlmIChzaWduWSkgbjEgPSBtYXgoTiwgbWluKFMsIG4wIC0gZHkgKiBzaWduWSkpLCBzMSA9IG1heChOLCBtaW4oUywgczAgKyBkeSAqIHNpZ25ZKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGUxIDwgdzEpIHtcbiAgICAgICAgc2lnblggKj0gLTE7XG4gICAgICAgIHQgPSB3MCwgdzAgPSBlMCwgZTAgPSB0O1xuICAgICAgICB0ID0gdzEsIHcxID0gZTEsIGUxID0gdDtcbiAgICAgICAgaWYgKHR5cGUgaW4gZmxpcFgpIG92ZXJsYXkuYXR0cihcImN1cnNvclwiLCBjdXJzb3JzW3R5cGUgPSBmbGlwWFt0eXBlXV0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoczEgPCBuMSkge1xuICAgICAgICBzaWduWSAqPSAtMTtcbiAgICAgICAgdCA9IG4wLCBuMCA9IHMwLCBzMCA9IHQ7XG4gICAgICAgIHQgPSBuMSwgbjEgPSBzMSwgczEgPSB0O1xuICAgICAgICBpZiAodHlwZSBpbiBmbGlwWSkgb3ZlcmxheS5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnNbdHlwZSA9IGZsaXBZW3R5cGVdXSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZS5zZWxlY3Rpb24pIHNlbGVjdGlvbiA9IHN0YXRlLnNlbGVjdGlvbjsgLy8gTWF5IGJlIHNldCBieSBicnVzaC5tb3ZlIVxuICAgICAgaWYgKGxvY2tYKSB3MSA9IHNlbGVjdGlvblswXVswXSwgZTEgPSBzZWxlY3Rpb25bMV1bMF07XG4gICAgICBpZiAobG9ja1kpIG4xID0gc2VsZWN0aW9uWzBdWzFdLCBzMSA9IHNlbGVjdGlvblsxXVsxXTtcblxuICAgICAgaWYgKHNlbGVjdGlvblswXVswXSAhPT0gdzFcbiAgICAgICAgICB8fCBzZWxlY3Rpb25bMF1bMV0gIT09IG4xXG4gICAgICAgICAgfHwgc2VsZWN0aW9uWzFdWzBdICE9PSBlMVxuICAgICAgICAgIHx8IHNlbGVjdGlvblsxXVsxXSAhPT0gczEpIHtcbiAgICAgICAgc3RhdGUuc2VsZWN0aW9uID0gW1t3MSwgbjFdLCBbZTEsIHMxXV07XG4gICAgICAgIHJlZHJhdy5jYWxsKHRoYXQpO1xuICAgICAgICBlbWl0LmJydXNoKGV2ZW50LCBtb2RlLm5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVuZGVkKGV2ZW50KSB7XG4gICAgICBub3Byb3BhZ2F0aW9uKGV2ZW50KTtcbiAgICAgIGlmIChldmVudC50b3VjaGVzKSB7XG4gICAgICAgIGlmIChldmVudC50b3VjaGVzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICBpZiAodG91Y2hlbmRpbmcpIGNsZWFyVGltZW91dCh0b3VjaGVuZGluZyk7XG4gICAgICAgIHRvdWNoZW5kaW5nID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsgdG91Y2hlbmRpbmcgPSBudWxsOyB9LCA1MDApOyAvLyBHaG9zdCBjbGlja3MgYXJlIGRlbGF5ZWQhXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkcmFnRW5hYmxlKGV2ZW50LnZpZXcsIG1vdmluZyk7XG4gICAgICAgIHZpZXcub24oXCJrZXlkb3duLmJydXNoIGtleXVwLmJydXNoIG1vdXNlbW92ZS5icnVzaCBtb3VzZXVwLmJydXNoXCIsIG51bGwpO1xuICAgICAgfVxuICAgICAgZ3JvdXAuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsIFwiYWxsXCIpO1xuICAgICAgb3ZlcmxheS5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnMub3ZlcmxheSk7XG4gICAgICBpZiAoc3RhdGUuc2VsZWN0aW9uKSBzZWxlY3Rpb24gPSBzdGF0ZS5zZWxlY3Rpb247IC8vIE1heSBiZSBzZXQgYnkgYnJ1c2gubW92ZSAob24gc3RhcnQpIVxuICAgICAgaWYgKGVtcHR5KHNlbGVjdGlvbikpIHN0YXRlLnNlbGVjdGlvbiA9IG51bGwsIHJlZHJhdy5jYWxsKHRoYXQpO1xuICAgICAgZW1pdC5lbmQoZXZlbnQsIG1vZGUubmFtZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24ga2V5ZG93bmVkKGV2ZW50KSB7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgY2FzZSAxNjogeyAvLyBTSElGVFxuICAgICAgICAgIHNoaWZ0aW5nID0gc2lnblggJiYgc2lnblk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAxODogeyAvLyBBTFRcbiAgICAgICAgICBpZiAobW9kZSA9PT0gTU9ERV9IQU5ETEUpIHtcbiAgICAgICAgICAgIGlmIChzaWduWCkgZTAgPSBlMSAtIGR4ICogc2lnblgsIHcwID0gdzEgKyBkeCAqIHNpZ25YO1xuICAgICAgICAgICAgaWYgKHNpZ25ZKSBzMCA9IHMxIC0gZHkgKiBzaWduWSwgbjAgPSBuMSArIGR5ICogc2lnblk7XG4gICAgICAgICAgICBtb2RlID0gTU9ERV9DRU5URVI7XG4gICAgICAgICAgICBtb3ZlKGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAzMjogeyAvLyBTUEFDRTsgdGFrZXMgcHJpb3JpdHkgb3ZlciBBTFRcbiAgICAgICAgICBpZiAobW9kZSA9PT0gTU9ERV9IQU5ETEUgfHwgbW9kZSA9PT0gTU9ERV9DRU5URVIpIHtcbiAgICAgICAgICAgIGlmIChzaWduWCA8IDApIGUwID0gZTEgLSBkeDsgZWxzZSBpZiAoc2lnblggPiAwKSB3MCA9IHcxIC0gZHg7XG4gICAgICAgICAgICBpZiAoc2lnblkgPCAwKSBzMCA9IHMxIC0gZHk7IGVsc2UgaWYgKHNpZ25ZID4gMCkgbjAgPSBuMSAtIGR5O1xuICAgICAgICAgICAgbW9kZSA9IE1PREVfU1BBQ0U7XG4gICAgICAgICAgICBvdmVybGF5LmF0dHIoXCJjdXJzb3JcIiwgY3Vyc29ycy5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgbW92ZShldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHJldHVybjtcbiAgICAgIH1cbiAgICAgIG5vZXZlbnQoZXZlbnQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGtleXVwcGVkKGV2ZW50KSB7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgY2FzZSAxNjogeyAvLyBTSElGVFxuICAgICAgICAgIGlmIChzaGlmdGluZykge1xuICAgICAgICAgICAgbG9ja1ggPSBsb2NrWSA9IHNoaWZ0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICBtb3ZlKGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAxODogeyAvLyBBTFRcbiAgICAgICAgICBpZiAobW9kZSA9PT0gTU9ERV9DRU5URVIpIHtcbiAgICAgICAgICAgIGlmIChzaWduWCA8IDApIGUwID0gZTE7IGVsc2UgaWYgKHNpZ25YID4gMCkgdzAgPSB3MTtcbiAgICAgICAgICAgIGlmIChzaWduWSA8IDApIHMwID0gczE7IGVsc2UgaWYgKHNpZ25ZID4gMCkgbjAgPSBuMTtcbiAgICAgICAgICAgIG1vZGUgPSBNT0RFX0hBTkRMRTtcbiAgICAgICAgICAgIG1vdmUoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDMyOiB7IC8vIFNQQUNFXG4gICAgICAgICAgaWYgKG1vZGUgPT09IE1PREVfU1BBQ0UpIHtcbiAgICAgICAgICAgIGlmIChldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgICAgaWYgKHNpZ25YKSBlMCA9IGUxIC0gZHggKiBzaWduWCwgdzAgPSB3MSArIGR4ICogc2lnblg7XG4gICAgICAgICAgICAgIGlmIChzaWduWSkgczAgPSBzMSAtIGR5ICogc2lnblksIG4wID0gbjEgKyBkeSAqIHNpZ25ZO1xuICAgICAgICAgICAgICBtb2RlID0gTU9ERV9DRU5URVI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoc2lnblggPCAwKSBlMCA9IGUxOyBlbHNlIGlmIChzaWduWCA+IDApIHcwID0gdzE7XG4gICAgICAgICAgICAgIGlmIChzaWduWSA8IDApIHMwID0gczE7IGVsc2UgaWYgKHNpZ25ZID4gMCkgbjAgPSBuMTtcbiAgICAgICAgICAgICAgbW9kZSA9IE1PREVfSEFORExFO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3ZlcmxheS5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnNbdHlwZV0pO1xuICAgICAgICAgICAgbW92ZShldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHJldHVybjtcbiAgICAgIH1cbiAgICAgIG5vZXZlbnQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHRvdWNobW92ZWQoZXZlbnQpIHtcbiAgICBlbWl0dGVyKHRoaXMsIGFyZ3VtZW50cykubW92ZWQoZXZlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gdG91Y2hlbmRlZChldmVudCkge1xuICAgIGVtaXR0ZXIodGhpcywgYXJndW1lbnRzKS5lbmRlZChldmVudCk7XG4gIH1cblxuICBmdW5jdGlvbiBpbml0aWFsaXplKCkge1xuICAgIHZhciBzdGF0ZSA9IHRoaXMuX19icnVzaCB8fCB7c2VsZWN0aW9uOiBudWxsfTtcbiAgICBzdGF0ZS5leHRlbnQgPSBudW1iZXIyKGV4dGVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICBzdGF0ZS5kaW0gPSBkaW07XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgYnJ1c2guZXh0ZW50ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGV4dGVudCA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQobnVtYmVyMihfKSksIGJydXNoKSA6IGV4dGVudDtcbiAgfTtcblxuICBicnVzaC5maWx0ZXIgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZmlsdGVyID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCghIV8pLCBicnVzaCkgOiBmaWx0ZXI7XG4gIH07XG5cbiAgYnJ1c2gudG91Y2hhYmxlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRvdWNoYWJsZSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoISFfKSwgYnJ1c2gpIDogdG91Y2hhYmxlO1xuICB9O1xuXG4gIGJydXNoLmhhbmRsZVNpemUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoaGFuZGxlU2l6ZSA9ICtfLCBicnVzaCkgOiBoYW5kbGVTaXplO1xuICB9O1xuXG4gIGJydXNoLmtleU1vZGlmaWVycyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChrZXlzID0gISFfLCBicnVzaCkgOiBrZXlzO1xuICB9O1xuXG4gIGJydXNoLm9uID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHZhbHVlID0gbGlzdGVuZXJzLm9uLmFwcGx5KGxpc3RlbmVycywgYXJndW1lbnRzKTtcbiAgICByZXR1cm4gdmFsdWUgPT09IGxpc3RlbmVycyA/IGJydXNoIDogdmFsdWU7XG4gIH07XG5cbiAgcmV0dXJuIGJydXNoO1xufVxuIiwKICAgICJleHBvcnQge1xuICBkZWZhdWx0IGFzIGJydXNoLFxuICBicnVzaFgsXG4gIGJydXNoWSxcbiAgYnJ1c2hTZWxlY3Rpb25cbn0gZnJvbSBcIi4vYnJ1c2guanNcIjtcbiIsCiAgICAiY29uc3QgcGkgPSBNYXRoLlBJLFxuICAgIHRhdSA9IDIgKiBwaSxcbiAgICBlcHNpbG9uID0gMWUtNixcbiAgICB0YXVFcHNpbG9uID0gdGF1IC0gZXBzaWxvbjtcblxuZnVuY3Rpb24gYXBwZW5kKHN0cmluZ3MpIHtcbiAgdGhpcy5fICs9IHN0cmluZ3NbMF07XG4gIGZvciAobGV0IGkgPSAxLCBuID0gc3RyaW5ncy5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICB0aGlzLl8gKz0gYXJndW1lbnRzW2ldICsgc3RyaW5nc1tpXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhcHBlbmRSb3VuZChkaWdpdHMpIHtcbiAgbGV0IGQgPSBNYXRoLmZsb29yKGRpZ2l0cyk7XG4gIGlmICghKGQgPj0gMCkpIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBkaWdpdHM6ICR7ZGlnaXRzfWApO1xuICBpZiAoZCA+IDE1KSByZXR1cm4gYXBwZW5kO1xuICBjb25zdCBrID0gMTAgKiogZDtcbiAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZ3MpIHtcbiAgICB0aGlzLl8gKz0gc3RyaW5nc1swXTtcbiAgICBmb3IgKGxldCBpID0gMSwgbiA9IHN0cmluZ3MubGVuZ3RoOyBpIDwgbjsgKytpKSB7XG4gICAgICB0aGlzLl8gKz0gTWF0aC5yb3VuZChhcmd1bWVudHNbaV0gKiBrKSAvIGsgKyBzdHJpbmdzW2ldO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFBhdGgge1xuICBjb25zdHJ1Y3RvcihkaWdpdHMpIHtcbiAgICB0aGlzLl94MCA9IHRoaXMuX3kwID0gLy8gc3RhcnQgb2YgY3VycmVudCBzdWJwYXRoXG4gICAgdGhpcy5feDEgPSB0aGlzLl95MSA9IG51bGw7IC8vIGVuZCBvZiBjdXJyZW50IHN1YnBhdGhcbiAgICB0aGlzLl8gPSBcIlwiO1xuICAgIHRoaXMuX2FwcGVuZCA9IGRpZ2l0cyA9PSBudWxsID8gYXBwZW5kIDogYXBwZW5kUm91bmQoZGlnaXRzKTtcbiAgfVxuICBtb3ZlVG8oeCwgeSkge1xuICAgIHRoaXMuX2FwcGVuZGBNJHt0aGlzLl94MCA9IHRoaXMuX3gxID0gK3h9LCR7dGhpcy5feTAgPSB0aGlzLl95MSA9ICt5fWA7XG4gIH1cbiAgY2xvc2VQYXRoKCkge1xuICAgIGlmICh0aGlzLl94MSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5feDEgPSB0aGlzLl94MCwgdGhpcy5feTEgPSB0aGlzLl95MDtcbiAgICAgIHRoaXMuX2FwcGVuZGBaYDtcbiAgICB9XG4gIH1cbiAgbGluZVRvKHgsIHkpIHtcbiAgICB0aGlzLl9hcHBlbmRgTCR7dGhpcy5feDEgPSAreH0sJHt0aGlzLl95MSA9ICt5fWA7XG4gIH1cbiAgcXVhZHJhdGljQ3VydmVUbyh4MSwgeTEsIHgsIHkpIHtcbiAgICB0aGlzLl9hcHBlbmRgUSR7K3gxfSwkeyt5MX0sJHt0aGlzLl94MSA9ICt4fSwke3RoaXMuX3kxID0gK3l9YDtcbiAgfVxuICBiZXppZXJDdXJ2ZVRvKHgxLCB5MSwgeDIsIHkyLCB4LCB5KSB7XG4gICAgdGhpcy5fYXBwZW5kYEMkeyt4MX0sJHsreTF9LCR7K3gyfSwkeyt5Mn0sJHt0aGlzLl94MSA9ICt4fSwke3RoaXMuX3kxID0gK3l9YDtcbiAgfVxuICBhcmNUbyh4MSwgeTEsIHgyLCB5Miwgcikge1xuICAgIHgxID0gK3gxLCB5MSA9ICt5MSwgeDIgPSAreDIsIHkyID0gK3kyLCByID0gK3I7XG5cbiAgICAvLyBJcyB0aGUgcmFkaXVzIG5lZ2F0aXZlPyBFcnJvci5cbiAgICBpZiAociA8IDApIHRocm93IG5ldyBFcnJvcihgbmVnYXRpdmUgcmFkaXVzOiAke3J9YCk7XG5cbiAgICBsZXQgeDAgPSB0aGlzLl94MSxcbiAgICAgICAgeTAgPSB0aGlzLl95MSxcbiAgICAgICAgeDIxID0geDIgLSB4MSxcbiAgICAgICAgeTIxID0geTIgLSB5MSxcbiAgICAgICAgeDAxID0geDAgLSB4MSxcbiAgICAgICAgeTAxID0geTAgLSB5MSxcbiAgICAgICAgbDAxXzIgPSB4MDEgKiB4MDEgKyB5MDEgKiB5MDE7XG5cbiAgICAvLyBJcyB0aGlzIHBhdGggZW1wdHk/IE1vdmUgdG8gKHgxLHkxKS5cbiAgICBpZiAodGhpcy5feDEgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuX2FwcGVuZGBNJHt0aGlzLl94MSA9IHgxfSwke3RoaXMuX3kxID0geTF9YDtcbiAgICB9XG5cbiAgICAvLyBPciwgaXMgKHgxLHkxKSBjb2luY2lkZW50IHdpdGggKHgwLHkwKT8gRG8gbm90aGluZy5cbiAgICBlbHNlIGlmICghKGwwMV8yID4gZXBzaWxvbikpO1xuXG4gICAgLy8gT3IsIGFyZSAoeDAseTApLCAoeDEseTEpIGFuZCAoeDIseTIpIGNvbGxpbmVhcj9cbiAgICAvLyBFcXVpdmFsZW50bHksIGlzICh4MSx5MSkgY29pbmNpZGVudCB3aXRoICh4Mix5Mik/XG4gICAgLy8gT3IsIGlzIHRoZSByYWRpdXMgemVybz8gTGluZSB0byAoeDEseTEpLlxuICAgIGVsc2UgaWYgKCEoTWF0aC5hYnMoeTAxICogeDIxIC0geTIxICogeDAxKSA+IGVwc2lsb24pIHx8ICFyKSB7XG4gICAgICB0aGlzLl9hcHBlbmRgTCR7dGhpcy5feDEgPSB4MX0sJHt0aGlzLl95MSA9IHkxfWA7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCBkcmF3IGFuIGFyYyFcbiAgICBlbHNlIHtcbiAgICAgIGxldCB4MjAgPSB4MiAtIHgwLFxuICAgICAgICAgIHkyMCA9IHkyIC0geTAsXG4gICAgICAgICAgbDIxXzIgPSB4MjEgKiB4MjEgKyB5MjEgKiB5MjEsXG4gICAgICAgICAgbDIwXzIgPSB4MjAgKiB4MjAgKyB5MjAgKiB5MjAsXG4gICAgICAgICAgbDIxID0gTWF0aC5zcXJ0KGwyMV8yKSxcbiAgICAgICAgICBsMDEgPSBNYXRoLnNxcnQobDAxXzIpLFxuICAgICAgICAgIGwgPSByICogTWF0aC50YW4oKHBpIC0gTWF0aC5hY29zKChsMjFfMiArIGwwMV8yIC0gbDIwXzIpIC8gKDIgKiBsMjEgKiBsMDEpKSkgLyAyKSxcbiAgICAgICAgICB0MDEgPSBsIC8gbDAxLFxuICAgICAgICAgIHQyMSA9IGwgLyBsMjE7XG5cbiAgICAgIC8vIElmIHRoZSBzdGFydCB0YW5nZW50IGlzIG5vdCBjb2luY2lkZW50IHdpdGggKHgwLHkwKSwgbGluZSB0by5cbiAgICAgIGlmIChNYXRoLmFicyh0MDEgLSAxKSA+IGVwc2lsb24pIHtcbiAgICAgICAgdGhpcy5fYXBwZW5kYEwke3gxICsgdDAxICogeDAxfSwke3kxICsgdDAxICogeTAxfWA7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2FwcGVuZGBBJHtyfSwke3J9LDAsMCwkeysoeTAxICogeDIwID4geDAxICogeTIwKX0sJHt0aGlzLl94MSA9IHgxICsgdDIxICogeDIxfSwke3RoaXMuX3kxID0geTEgKyB0MjEgKiB5MjF9YDtcbiAgICB9XG4gIH1cbiAgYXJjKHgsIHksIHIsIGEwLCBhMSwgY2N3KSB7XG4gICAgeCA9ICt4LCB5ID0gK3ksIHIgPSArciwgY2N3ID0gISFjY3c7XG5cbiAgICAvLyBJcyB0aGUgcmFkaXVzIG5lZ2F0aXZlPyBFcnJvci5cbiAgICBpZiAociA8IDApIHRocm93IG5ldyBFcnJvcihgbmVnYXRpdmUgcmFkaXVzOiAke3J9YCk7XG5cbiAgICBsZXQgZHggPSByICogTWF0aC5jb3MoYTApLFxuICAgICAgICBkeSA9IHIgKiBNYXRoLnNpbihhMCksXG4gICAgICAgIHgwID0geCArIGR4LFxuICAgICAgICB5MCA9IHkgKyBkeSxcbiAgICAgICAgY3cgPSAxIF4gY2N3LFxuICAgICAgICBkYSA9IGNjdyA/IGEwIC0gYTEgOiBhMSAtIGEwO1xuXG4gICAgLy8gSXMgdGhpcyBwYXRoIGVtcHR5PyBNb3ZlIHRvICh4MCx5MCkuXG4gICAgaWYgKHRoaXMuX3gxID09PSBudWxsKSB7XG4gICAgICB0aGlzLl9hcHBlbmRgTSR7eDB9LCR7eTB9YDtcbiAgICB9XG5cbiAgICAvLyBPciwgaXMgKHgwLHkwKSBub3QgY29pbmNpZGVudCB3aXRoIHRoZSBwcmV2aW91cyBwb2ludD8gTGluZSB0byAoeDAseTApLlxuICAgIGVsc2UgaWYgKE1hdGguYWJzKHRoaXMuX3gxIC0geDApID4gZXBzaWxvbiB8fCBNYXRoLmFicyh0aGlzLl95MSAtIHkwKSA+IGVwc2lsb24pIHtcbiAgICAgIHRoaXMuX2FwcGVuZGBMJHt4MH0sJHt5MH1gO1xuICAgIH1cblxuICAgIC8vIElzIHRoaXMgYXJjIGVtcHR5PyBXZeKAmXJlIGRvbmUuXG4gICAgaWYgKCFyKSByZXR1cm47XG5cbiAgICAvLyBEb2VzIHRoZSBhbmdsZSBnbyB0aGUgd3Jvbmcgd2F5PyBGbGlwIHRoZSBkaXJlY3Rpb24uXG4gICAgaWYgKGRhIDwgMCkgZGEgPSBkYSAlIHRhdSArIHRhdTtcblxuICAgIC8vIElzIHRoaXMgYSBjb21wbGV0ZSBjaXJjbGU/IERyYXcgdHdvIGFyY3MgdG8gY29tcGxldGUgdGhlIGNpcmNsZS5cbiAgICBpZiAoZGEgPiB0YXVFcHNpbG9uKSB7XG4gICAgICB0aGlzLl9hcHBlbmRgQSR7cn0sJHtyfSwwLDEsJHtjd30sJHt4IC0gZHh9LCR7eSAtIGR5fUEke3J9LCR7cn0sMCwxLCR7Y3d9LCR7dGhpcy5feDEgPSB4MH0sJHt0aGlzLl95MSA9IHkwfWA7XG4gICAgfVxuXG4gICAgLy8gSXMgdGhpcyBhcmMgbm9uLWVtcHR5PyBEcmF3IGFuIGFyYyFcbiAgICBlbHNlIGlmIChkYSA+IGVwc2lsb24pIHtcbiAgICAgIHRoaXMuX2FwcGVuZGBBJHtyfSwke3J9LDAsJHsrKGRhID49IHBpKX0sJHtjd30sJHt0aGlzLl94MSA9IHggKyByICogTWF0aC5jb3MoYTEpfSwke3RoaXMuX3kxID0geSArIHIgKiBNYXRoLnNpbihhMSl9YDtcbiAgICB9XG4gIH1cbiAgcmVjdCh4LCB5LCB3LCBoKSB7XG4gICAgdGhpcy5fYXBwZW5kYE0ke3RoaXMuX3gwID0gdGhpcy5feDEgPSAreH0sJHt0aGlzLl95MCA9IHRoaXMuX3kxID0gK3l9aCR7dyA9ICt3fXYkeytofWgkey13fVpgO1xuICB9XG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl87XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGgoKSB7XG4gIHJldHVybiBuZXcgUGF0aDtcbn1cblxuLy8gQWxsb3cgaW5zdGFuY2VvZiBkMy5wYXRoXG5wYXRoLnByb3RvdHlwZSA9IFBhdGgucHJvdG90eXBlO1xuXG5leHBvcnQgZnVuY3Rpb24gcGF0aFJvdW5kKGRpZ2l0cyA9IDMpIHtcbiAgcmV0dXJuIG5ldyBQYXRoKCtkaWdpdHMpO1xufVxuIiwKICAgICJleHBvcnQge1BhdGgsIHBhdGgsIHBhdGhSb3VuZH0gZnJvbSBcIi4vcGF0aC5qc1wiO1xuIiwKICAgICJmdW5jdGlvbiByZXNwb25zZVRleHQocmVzcG9uc2UpIHtcbiAgaWYgKCFyZXNwb25zZS5vaykgdGhyb3cgbmV3IEVycm9yKHJlc3BvbnNlLnN0YXR1cyArIFwiIFwiICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7XG4gIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGlucHV0LCBpbml0KSB7XG4gIHJldHVybiBmZXRjaChpbnB1dCwgaW5pdCkudGhlbihyZXNwb25zZVRleHQpO1xufVxuIiwKICAgICJpbXBvcnQgdGV4dCBmcm9tIFwiLi90ZXh0LmpzXCI7XG5cbmZ1bmN0aW9uIHBhcnNlcih0eXBlKSB7XG4gIHJldHVybiAoaW5wdXQsIGluaXQpID0+IHRleHQoaW5wdXQsIGluaXQpXG4gICAgLnRoZW4odGV4dCA9PiAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKHRleHQsIHR5cGUpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgcGFyc2VyKFwiYXBwbGljYXRpb24veG1sXCIpO1xuXG5leHBvcnQgdmFyIGh0bWwgPSBwYXJzZXIoXCJ0ZXh0L2h0bWxcIik7XG5cbmV4cG9ydCB2YXIgc3ZnID0gcGFyc2VyKFwiaW1hZ2Uvc3ZnK3htbFwiKTtcbiIsCiAgICAiZXhwb3J0IHtkZWZhdWx0IGFzIGJsb2J9IGZyb20gXCIuL2Jsb2IuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBidWZmZXJ9IGZyb20gXCIuL2J1ZmZlci5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGRzdiwgY3N2LCB0c3Z9IGZyb20gXCIuL2Rzdi5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGltYWdlfSBmcm9tIFwiLi9pbWFnZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGpzb259IGZyb20gXCIuL2pzb24uanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyB0ZXh0fSBmcm9tIFwiLi90ZXh0LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgeG1sLCBodG1sLCBzdmd9IGZyb20gXCIuL3htbC5qc1wiO1xuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4KSB7XG4gIHJldHVybiBNYXRoLmFicyh4ID0gTWF0aC5yb3VuZCh4KSkgPj0gMWUyMVxuICAgICAgPyB4LnRvTG9jYWxlU3RyaW5nKFwiZW5cIikucmVwbGFjZSgvLC9nLCBcIlwiKVxuICAgICAgOiB4LnRvU3RyaW5nKDEwKTtcbn1cblxuLy8gQ29tcHV0ZXMgdGhlIGRlY2ltYWwgY29lZmZpY2llbnQgYW5kIGV4cG9uZW50IG9mIHRoZSBzcGVjaWZpZWQgbnVtYmVyIHggd2l0aFxuLy8gc2lnbmlmaWNhbnQgZGlnaXRzIHAsIHdoZXJlIHggaXMgcG9zaXRpdmUgYW5kIHAgaXMgaW4gWzEsIDIxXSBvciB1bmRlZmluZWQuXG4vLyBGb3IgZXhhbXBsZSwgZm9ybWF0RGVjaW1hbFBhcnRzKDEuMjMpIHJldHVybnMgW1wiMTIzXCIsIDBdLlxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERlY2ltYWxQYXJ0cyh4LCBwKSB7XG4gIGlmICgoaSA9ICh4ID0gcCA/IHgudG9FeHBvbmVudGlhbChwIC0gMSkgOiB4LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZihcImVcIikpIDwgMCkgcmV0dXJuIG51bGw7IC8vIE5hTiwgwrFJbmZpbml0eVxuICB2YXIgaSwgY29lZmZpY2llbnQgPSB4LnNsaWNlKDAsIGkpO1xuXG4gIC8vIFRoZSBzdHJpbmcgcmV0dXJuZWQgYnkgdG9FeHBvbmVudGlhbCBlaXRoZXIgaGFzIHRoZSBmb3JtIFxcZFxcLlxcZCtlWy0rXVxcZCtcbiAgLy8gKGUuZy4sIDEuMmUrMykgb3IgdGhlIGZvcm0gXFxkZVstK11cXGQrIChlLmcuLCAxZSszKS5cbiAgcmV0dXJuIFtcbiAgICBjb2VmZmljaWVudC5sZW5ndGggPiAxID8gY29lZmZpY2llbnRbMF0gKyBjb2VmZmljaWVudC5zbGljZSgyKSA6IGNvZWZmaWNpZW50LFxuICAgICt4LnNsaWNlKGkgKyAxKVxuICBdO1xufVxuIiwKICAgICJpbXBvcnQge2Zvcm1hdERlY2ltYWxQYXJ0c30gZnJvbSBcIi4vZm9ybWF0RGVjaW1hbC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4KSB7XG4gIHJldHVybiB4ID0gZm9ybWF0RGVjaW1hbFBhcnRzKE1hdGguYWJzKHgpKSwgeCA/IHhbMV0gOiBOYU47XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGdyb3VwaW5nLCB0aG91c2FuZHMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCB3aWR0aCkge1xuICAgIHZhciBpID0gdmFsdWUubGVuZ3RoLFxuICAgICAgICB0ID0gW10sXG4gICAgICAgIGogPSAwLFxuICAgICAgICBnID0gZ3JvdXBpbmdbMF0sXG4gICAgICAgIGxlbmd0aCA9IDA7XG5cbiAgICB3aGlsZSAoaSA+IDAgJiYgZyA+IDApIHtcbiAgICAgIGlmIChsZW5ndGggKyBnICsgMSA+IHdpZHRoKSBnID0gTWF0aC5tYXgoMSwgd2lkdGggLSBsZW5ndGgpO1xuICAgICAgdC5wdXNoKHZhbHVlLnN1YnN0cmluZyhpIC09IGcsIGkgKyBnKSk7XG4gICAgICBpZiAoKGxlbmd0aCArPSBnICsgMSkgPiB3aWR0aCkgYnJlYWs7XG4gICAgICBnID0gZ3JvdXBpbmdbaiA9IChqICsgMSkgJSBncm91cGluZy5sZW5ndGhdO1xuICAgIH1cblxuICAgIHJldHVybiB0LnJldmVyc2UoKS5qb2luKHRob3VzYW5kcyk7XG4gIH07XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG51bWVyYWxzKSB7XG4gIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bMC05XS9nLCBmdW5jdGlvbihpKSB7XG4gICAgICByZXR1cm4gbnVtZXJhbHNbK2ldO1xuICAgIH0pO1xuICB9O1xufVxuIiwKICAgICIvLyBbW2ZpbGxdYWxpZ25dW3NpZ25dW3N5bWJvbF1bMF1bd2lkdGhdWyxdWy5wcmVjaXNpb25dW35dW3R5cGVdXG52YXIgcmUgPSAvXig/OiguKT8oWzw+PV5dKSk/KFsrXFwtKCBdKT8oWyQjXSk/KDApPyhcXGQrKT8oLCk/KFxcLlxcZCspPyh+KT8oW2EteiVdKT8kL2k7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZvcm1hdFNwZWNpZmllcihzcGVjaWZpZXIpIHtcbiAgaWYgKCEobWF0Y2ggPSByZS5leGVjKHNwZWNpZmllcikpKSB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGZvcm1hdDogXCIgKyBzcGVjaWZpZXIpO1xuICB2YXIgbWF0Y2g7XG4gIHJldHVybiBuZXcgRm9ybWF0U3BlY2lmaWVyKHtcbiAgICBmaWxsOiBtYXRjaFsxXSxcbiAgICBhbGlnbjogbWF0Y2hbMl0sXG4gICAgc2lnbjogbWF0Y2hbM10sXG4gICAgc3ltYm9sOiBtYXRjaFs0XSxcbiAgICB6ZXJvOiBtYXRjaFs1XSxcbiAgICB3aWR0aDogbWF0Y2hbNl0sXG4gICAgY29tbWE6IG1hdGNoWzddLFxuICAgIHByZWNpc2lvbjogbWF0Y2hbOF0gJiYgbWF0Y2hbOF0uc2xpY2UoMSksXG4gICAgdHJpbTogbWF0Y2hbOV0sXG4gICAgdHlwZTogbWF0Y2hbMTBdXG4gIH0pO1xufVxuXG5mb3JtYXRTcGVjaWZpZXIucHJvdG90eXBlID0gRm9ybWF0U3BlY2lmaWVyLnByb3RvdHlwZTsgLy8gaW5zdGFuY2VvZlxuXG5leHBvcnQgZnVuY3Rpb24gRm9ybWF0U3BlY2lmaWVyKHNwZWNpZmllcikge1xuICB0aGlzLmZpbGwgPSBzcGVjaWZpZXIuZmlsbCA9PT0gdW5kZWZpbmVkID8gXCIgXCIgOiBzcGVjaWZpZXIuZmlsbCArIFwiXCI7XG4gIHRoaXMuYWxpZ24gPSBzcGVjaWZpZXIuYWxpZ24gPT09IHVuZGVmaW5lZCA/IFwiPlwiIDogc3BlY2lmaWVyLmFsaWduICsgXCJcIjtcbiAgdGhpcy5zaWduID0gc3BlY2lmaWVyLnNpZ24gPT09IHVuZGVmaW5lZCA/IFwiLVwiIDogc3BlY2lmaWVyLnNpZ24gKyBcIlwiO1xuICB0aGlzLnN5bWJvbCA9IHNwZWNpZmllci5zeW1ib2wgPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBzcGVjaWZpZXIuc3ltYm9sICsgXCJcIjtcbiAgdGhpcy56ZXJvID0gISFzcGVjaWZpZXIuemVybztcbiAgdGhpcy53aWR0aCA9IHNwZWNpZmllci53aWR0aCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogK3NwZWNpZmllci53aWR0aDtcbiAgdGhpcy5jb21tYSA9ICEhc3BlY2lmaWVyLmNvbW1hO1xuICB0aGlzLnByZWNpc2lvbiA9IHNwZWNpZmllci5wcmVjaXNpb24gPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6ICtzcGVjaWZpZXIucHJlY2lzaW9uO1xuICB0aGlzLnRyaW0gPSAhIXNwZWNpZmllci50cmltO1xuICB0aGlzLnR5cGUgPSBzcGVjaWZpZXIudHlwZSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHNwZWNpZmllci50eXBlICsgXCJcIjtcbn1cblxuRm9ybWF0U3BlY2lmaWVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5maWxsXG4gICAgICArIHRoaXMuYWxpZ25cbiAgICAgICsgdGhpcy5zaWduXG4gICAgICArIHRoaXMuc3ltYm9sXG4gICAgICArICh0aGlzLnplcm8gPyBcIjBcIiA6IFwiXCIpXG4gICAgICArICh0aGlzLndpZHRoID09PSB1bmRlZmluZWQgPyBcIlwiIDogTWF0aC5tYXgoMSwgdGhpcy53aWR0aCB8IDApKVxuICAgICAgKyAodGhpcy5jb21tYSA/IFwiLFwiIDogXCJcIilcbiAgICAgICsgKHRoaXMucHJlY2lzaW9uID09PSB1bmRlZmluZWQgPyBcIlwiIDogXCIuXCIgKyBNYXRoLm1heCgwLCB0aGlzLnByZWNpc2lvbiB8IDApKVxuICAgICAgKyAodGhpcy50cmltID8gXCJ+XCIgOiBcIlwiKVxuICAgICAgKyB0aGlzLnR5cGU7XG59O1xuIiwKICAgICIvLyBUcmltcyBpbnNpZ25pZmljYW50IHplcm9zLCBlLmcuLCByZXBsYWNlcyAxLjIwMDBrIHdpdGggMS4yay5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHMpIHtcbiAgb3V0OiBmb3IgKHZhciBuID0gcy5sZW5ndGgsIGkgPSAxLCBpMCA9IC0xLCBpMTsgaSA8IG47ICsraSkge1xuICAgIHN3aXRjaCAoc1tpXSkge1xuICAgICAgY2FzZSBcIi5cIjogaTAgPSBpMSA9IGk7IGJyZWFrO1xuICAgICAgY2FzZSBcIjBcIjogaWYgKGkwID09PSAwKSBpMCA9IGk7IGkxID0gaTsgYnJlYWs7XG4gICAgICBkZWZhdWx0OiBpZiAoIStzW2ldKSBicmVhayBvdXQ7IGlmIChpMCA+IDApIGkwID0gMDsgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBpMCA+IDAgPyBzLnNsaWNlKDAsIGkwKSArIHMuc2xpY2UoaTEgKyAxKSA6IHM7XG59XG4iLAogICAgImltcG9ydCB7Zm9ybWF0RGVjaW1hbFBhcnRzfSBmcm9tIFwiLi9mb3JtYXREZWNpbWFsLmpzXCI7XG5cbmV4cG9ydCB2YXIgcHJlZml4RXhwb25lbnQ7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgsIHApIHtcbiAgdmFyIGQgPSBmb3JtYXREZWNpbWFsUGFydHMoeCwgcCk7XG4gIGlmICghZCkgcmV0dXJuIHggKyBcIlwiO1xuICB2YXIgY29lZmZpY2llbnQgPSBkWzBdLFxuICAgICAgZXhwb25lbnQgPSBkWzFdLFxuICAgICAgaSA9IGV4cG9uZW50IC0gKHByZWZpeEV4cG9uZW50ID0gTWF0aC5tYXgoLTgsIE1hdGgubWluKDgsIE1hdGguZmxvb3IoZXhwb25lbnQgLyAzKSkpICogMykgKyAxLFxuICAgICAgbiA9IGNvZWZmaWNpZW50Lmxlbmd0aDtcbiAgcmV0dXJuIGkgPT09IG4gPyBjb2VmZmljaWVudFxuICAgICAgOiBpID4gbiA/IGNvZWZmaWNpZW50ICsgbmV3IEFycmF5KGkgLSBuICsgMSkuam9pbihcIjBcIilcbiAgICAgIDogaSA+IDAgPyBjb2VmZmljaWVudC5zbGljZSgwLCBpKSArIFwiLlwiICsgY29lZmZpY2llbnQuc2xpY2UoaSlcbiAgICAgIDogXCIwLlwiICsgbmV3IEFycmF5KDEgLSBpKS5qb2luKFwiMFwiKSArIGZvcm1hdERlY2ltYWxQYXJ0cyh4LCBNYXRoLm1heCgwLCBwICsgaSAtIDEpKVswXTsgLy8gbGVzcyB0aGFuIDF5IVxufVxuIiwKICAgICJpbXBvcnQge2Zvcm1hdERlY2ltYWxQYXJ0c30gZnJvbSBcIi4vZm9ybWF0RGVjaW1hbC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4LCBwKSB7XG4gIHZhciBkID0gZm9ybWF0RGVjaW1hbFBhcnRzKHgsIHApO1xuICBpZiAoIWQpIHJldHVybiB4ICsgXCJcIjtcbiAgdmFyIGNvZWZmaWNpZW50ID0gZFswXSxcbiAgICAgIGV4cG9uZW50ID0gZFsxXTtcbiAgcmV0dXJuIGV4cG9uZW50IDwgMCA/IFwiMC5cIiArIG5ldyBBcnJheSgtZXhwb25lbnQpLmpvaW4oXCIwXCIpICsgY29lZmZpY2llbnRcbiAgICAgIDogY29lZmZpY2llbnQubGVuZ3RoID4gZXhwb25lbnQgKyAxID8gY29lZmZpY2llbnQuc2xpY2UoMCwgZXhwb25lbnQgKyAxKSArIFwiLlwiICsgY29lZmZpY2llbnQuc2xpY2UoZXhwb25lbnQgKyAxKVxuICAgICAgOiBjb2VmZmljaWVudCArIG5ldyBBcnJheShleHBvbmVudCAtIGNvZWZmaWNpZW50Lmxlbmd0aCArIDIpLmpvaW4oXCIwXCIpO1xufVxuIiwKICAgICJpbXBvcnQgZm9ybWF0RGVjaW1hbCBmcm9tIFwiLi9mb3JtYXREZWNpbWFsLmpzXCI7XG5pbXBvcnQgZm9ybWF0UHJlZml4QXV0byBmcm9tIFwiLi9mb3JtYXRQcmVmaXhBdXRvLmpzXCI7XG5pbXBvcnQgZm9ybWF0Um91bmRlZCBmcm9tIFwiLi9mb3JtYXRSb3VuZGVkLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCIlXCI6ICh4LCBwKSA9PiAoeCAqIDEwMCkudG9GaXhlZChwKSxcbiAgXCJiXCI6ICh4KSA9PiBNYXRoLnJvdW5kKHgpLnRvU3RyaW5nKDIpLFxuICBcImNcIjogKHgpID0+IHggKyBcIlwiLFxuICBcImRcIjogZm9ybWF0RGVjaW1hbCxcbiAgXCJlXCI6ICh4LCBwKSA9PiB4LnRvRXhwb25lbnRpYWwocCksXG4gIFwiZlwiOiAoeCwgcCkgPT4geC50b0ZpeGVkKHApLFxuICBcImdcIjogKHgsIHApID0+IHgudG9QcmVjaXNpb24ocCksXG4gIFwib1wiOiAoeCkgPT4gTWF0aC5yb3VuZCh4KS50b1N0cmluZyg4KSxcbiAgXCJwXCI6ICh4LCBwKSA9PiBmb3JtYXRSb3VuZGVkKHggKiAxMDAsIHApLFxuICBcInJcIjogZm9ybWF0Um91bmRlZCxcbiAgXCJzXCI6IGZvcm1hdFByZWZpeEF1dG8sXG4gIFwiWFwiOiAoeCkgPT4gTWF0aC5yb3VuZCh4KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSxcbiAgXCJ4XCI6ICh4KSA9PiBNYXRoLnJvdW5kKHgpLnRvU3RyaW5nKDE2KVxufTtcbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4geDtcbn1cbiIsCiAgICAiaW1wb3J0IGV4cG9uZW50IGZyb20gXCIuL2V4cG9uZW50LmpzXCI7XG5pbXBvcnQgZm9ybWF0R3JvdXAgZnJvbSBcIi4vZm9ybWF0R3JvdXAuanNcIjtcbmltcG9ydCBmb3JtYXROdW1lcmFscyBmcm9tIFwiLi9mb3JtYXROdW1lcmFscy5qc1wiO1xuaW1wb3J0IGZvcm1hdFNwZWNpZmllciBmcm9tIFwiLi9mb3JtYXRTcGVjaWZpZXIuanNcIjtcbmltcG9ydCBmb3JtYXRUcmltIGZyb20gXCIuL2Zvcm1hdFRyaW0uanNcIjtcbmltcG9ydCBmb3JtYXRUeXBlcyBmcm9tIFwiLi9mb3JtYXRUeXBlcy5qc1wiO1xuaW1wb3J0IHtwcmVmaXhFeHBvbmVudH0gZnJvbSBcIi4vZm9ybWF0UHJlZml4QXV0by5qc1wiO1xuaW1wb3J0IGlkZW50aXR5IGZyb20gXCIuL2lkZW50aXR5LmpzXCI7XG5cbnZhciBtYXAgPSBBcnJheS5wcm90b3R5cGUubWFwLFxuICAgIHByZWZpeGVzID0gW1wieVwiLFwielwiLFwiYVwiLFwiZlwiLFwicFwiLFwiblwiLFwiwrVcIixcIm1cIixcIlwiLFwia1wiLFwiTVwiLFwiR1wiLFwiVFwiLFwiUFwiLFwiRVwiLFwiWlwiLFwiWVwiXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obG9jYWxlKSB7XG4gIHZhciBncm91cCA9IGxvY2FsZS5ncm91cGluZyA9PT0gdW5kZWZpbmVkIHx8IGxvY2FsZS50aG91c2FuZHMgPT09IHVuZGVmaW5lZCA/IGlkZW50aXR5IDogZm9ybWF0R3JvdXAobWFwLmNhbGwobG9jYWxlLmdyb3VwaW5nLCBOdW1iZXIpLCBsb2NhbGUudGhvdXNhbmRzICsgXCJcIiksXG4gICAgICBjdXJyZW5jeVByZWZpeCA9IGxvY2FsZS5jdXJyZW5jeSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IGxvY2FsZS5jdXJyZW5jeVswXSArIFwiXCIsXG4gICAgICBjdXJyZW5jeVN1ZmZpeCA9IGxvY2FsZS5jdXJyZW5jeSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IGxvY2FsZS5jdXJyZW5jeVsxXSArIFwiXCIsXG4gICAgICBkZWNpbWFsID0gbG9jYWxlLmRlY2ltYWwgPT09IHVuZGVmaW5lZCA/IFwiLlwiIDogbG9jYWxlLmRlY2ltYWwgKyBcIlwiLFxuICAgICAgbnVtZXJhbHMgPSBsb2NhbGUubnVtZXJhbHMgPT09IHVuZGVmaW5lZCA/IGlkZW50aXR5IDogZm9ybWF0TnVtZXJhbHMobWFwLmNhbGwobG9jYWxlLm51bWVyYWxzLCBTdHJpbmcpKSxcbiAgICAgIHBlcmNlbnQgPSBsb2NhbGUucGVyY2VudCA9PT0gdW5kZWZpbmVkID8gXCIlXCIgOiBsb2NhbGUucGVyY2VudCArIFwiXCIsXG4gICAgICBtaW51cyA9IGxvY2FsZS5taW51cyA9PT0gdW5kZWZpbmVkID8gXCLiiJJcIiA6IGxvY2FsZS5taW51cyArIFwiXCIsXG4gICAgICBuYW4gPSBsb2NhbGUubmFuID09PSB1bmRlZmluZWQgPyBcIk5hTlwiIDogbG9jYWxlLm5hbiArIFwiXCI7XG5cbiAgZnVuY3Rpb24gbmV3Rm9ybWF0KHNwZWNpZmllcikge1xuICAgIHNwZWNpZmllciA9IGZvcm1hdFNwZWNpZmllcihzcGVjaWZpZXIpO1xuXG4gICAgdmFyIGZpbGwgPSBzcGVjaWZpZXIuZmlsbCxcbiAgICAgICAgYWxpZ24gPSBzcGVjaWZpZXIuYWxpZ24sXG4gICAgICAgIHNpZ24gPSBzcGVjaWZpZXIuc2lnbixcbiAgICAgICAgc3ltYm9sID0gc3BlY2lmaWVyLnN5bWJvbCxcbiAgICAgICAgemVybyA9IHNwZWNpZmllci56ZXJvLFxuICAgICAgICB3aWR0aCA9IHNwZWNpZmllci53aWR0aCxcbiAgICAgICAgY29tbWEgPSBzcGVjaWZpZXIuY29tbWEsXG4gICAgICAgIHByZWNpc2lvbiA9IHNwZWNpZmllci5wcmVjaXNpb24sXG4gICAgICAgIHRyaW0gPSBzcGVjaWZpZXIudHJpbSxcbiAgICAgICAgdHlwZSA9IHNwZWNpZmllci50eXBlO1xuXG4gICAgLy8gVGhlIFwiblwiIHR5cGUgaXMgYW4gYWxpYXMgZm9yIFwiLGdcIi5cbiAgICBpZiAodHlwZSA9PT0gXCJuXCIpIGNvbW1hID0gdHJ1ZSwgdHlwZSA9IFwiZ1wiO1xuXG4gICAgLy8gVGhlIFwiXCIgdHlwZSwgYW5kIGFueSBpbnZhbGlkIHR5cGUsIGlzIGFuIGFsaWFzIGZvciBcIi4xMn5nXCIuXG4gICAgZWxzZSBpZiAoIWZvcm1hdFR5cGVzW3R5cGVdKSBwcmVjaXNpb24gPT09IHVuZGVmaW5lZCAmJiAocHJlY2lzaW9uID0gMTIpLCB0cmltID0gdHJ1ZSwgdHlwZSA9IFwiZ1wiO1xuXG4gICAgLy8gSWYgemVybyBmaWxsIGlzIHNwZWNpZmllZCwgcGFkZGluZyBnb2VzIGFmdGVyIHNpZ24gYW5kIGJlZm9yZSBkaWdpdHMuXG4gICAgaWYgKHplcm8gfHwgKGZpbGwgPT09IFwiMFwiICYmIGFsaWduID09PSBcIj1cIikpIHplcm8gPSB0cnVlLCBmaWxsID0gXCIwXCIsIGFsaWduID0gXCI9XCI7XG5cbiAgICAvLyBDb21wdXRlIHRoZSBwcmVmaXggYW5kIHN1ZmZpeC5cbiAgICAvLyBGb3IgU0ktcHJlZml4LCB0aGUgc3VmZml4IGlzIGxhemlseSBjb21wdXRlZC5cbiAgICB2YXIgcHJlZml4ID0gc3ltYm9sID09PSBcIiRcIiA/IGN1cnJlbmN5UHJlZml4IDogc3ltYm9sID09PSBcIiNcIiAmJiAvW2JveFhdLy50ZXN0KHR5cGUpID8gXCIwXCIgKyB0eXBlLnRvTG93ZXJDYXNlKCkgOiBcIlwiLFxuICAgICAgICBzdWZmaXggPSBzeW1ib2wgPT09IFwiJFwiID8gY3VycmVuY3lTdWZmaXggOiAvWyVwXS8udGVzdCh0eXBlKSA/IHBlcmNlbnQgOiBcIlwiO1xuXG4gICAgLy8gV2hhdCBmb3JtYXQgZnVuY3Rpb24gc2hvdWxkIHdlIHVzZT9cbiAgICAvLyBJcyB0aGlzIGFuIGludGVnZXIgdHlwZT9cbiAgICAvLyBDYW4gdGhpcyB0eXBlIGdlbmVyYXRlIGV4cG9uZW50aWFsIG5vdGF0aW9uP1xuICAgIHZhciBmb3JtYXRUeXBlID0gZm9ybWF0VHlwZXNbdHlwZV0sXG4gICAgICAgIG1heWJlU3VmZml4ID0gL1tkZWZncHJzJV0vLnRlc3QodHlwZSk7XG5cbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgcHJlY2lzaW9uIGlmIG5vdCBzcGVjaWZpZWQsXG4gICAgLy8gb3IgY2xhbXAgdGhlIHNwZWNpZmllZCBwcmVjaXNpb24gdG8gdGhlIHN1cHBvcnRlZCByYW5nZS5cbiAgICAvLyBGb3Igc2lnbmlmaWNhbnQgcHJlY2lzaW9uLCBpdCBtdXN0IGJlIGluIFsxLCAyMV0uXG4gICAgLy8gRm9yIGZpeGVkIHByZWNpc2lvbiwgaXQgbXVzdCBiZSBpbiBbMCwgMjBdLlxuICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbiA9PT0gdW5kZWZpbmVkID8gNlxuICAgICAgICA6IC9bZ3Byc10vLnRlc3QodHlwZSkgPyBNYXRoLm1heCgxLCBNYXRoLm1pbigyMSwgcHJlY2lzaW9uKSlcbiAgICAgICAgOiBNYXRoLm1heCgwLCBNYXRoLm1pbigyMCwgcHJlY2lzaW9uKSk7XG5cbiAgICBmdW5jdGlvbiBmb3JtYXQodmFsdWUpIHtcbiAgICAgIHZhciB2YWx1ZVByZWZpeCA9IHByZWZpeCxcbiAgICAgICAgICB2YWx1ZVN1ZmZpeCA9IHN1ZmZpeCxcbiAgICAgICAgICBpLCBuLCBjO1xuXG4gICAgICBpZiAodHlwZSA9PT0gXCJjXCIpIHtcbiAgICAgICAgdmFsdWVTdWZmaXggPSBmb3JtYXRUeXBlKHZhbHVlKSArIHZhbHVlU3VmZml4O1xuICAgICAgICB2YWx1ZSA9IFwiXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcblxuICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIHNpZ24uIC0wIGlzIG5vdCBsZXNzIHRoYW4gMCwgYnV0IDEgLyAtMCBpcyFcbiAgICAgICAgdmFyIHZhbHVlTmVnYXRpdmUgPSB2YWx1ZSA8IDAgfHwgMSAvIHZhbHVlIDwgMDtcblxuICAgICAgICAvLyBQZXJmb3JtIHRoZSBpbml0aWFsIGZvcm1hdHRpbmcuXG4gICAgICAgIHZhbHVlID0gaXNOYU4odmFsdWUpID8gbmFuIDogZm9ybWF0VHlwZShNYXRoLmFicyh2YWx1ZSksIHByZWNpc2lvbik7XG5cbiAgICAgICAgLy8gVHJpbSBpbnNpZ25pZmljYW50IHplcm9zLlxuICAgICAgICBpZiAodHJpbSkgdmFsdWUgPSBmb3JtYXRUcmltKHZhbHVlKTtcblxuICAgICAgICAvLyBJZiBhIG5lZ2F0aXZlIHZhbHVlIHJvdW5kcyB0byB6ZXJvIGFmdGVyIGZvcm1hdHRpbmcsIGFuZCBubyBleHBsaWNpdCBwb3NpdGl2ZSBzaWduIGlzIHJlcXVlc3RlZCwgaGlkZSB0aGUgc2lnbi5cbiAgICAgICAgaWYgKHZhbHVlTmVnYXRpdmUgJiYgK3ZhbHVlID09PSAwICYmIHNpZ24gIT09IFwiK1wiKSB2YWx1ZU5lZ2F0aXZlID0gZmFsc2U7XG5cbiAgICAgICAgLy8gQ29tcHV0ZSB0aGUgcHJlZml4IGFuZCBzdWZmaXguXG4gICAgICAgIHZhbHVlUHJlZml4ID0gKHZhbHVlTmVnYXRpdmUgPyAoc2lnbiA9PT0gXCIoXCIgPyBzaWduIDogbWludXMpIDogc2lnbiA9PT0gXCItXCIgfHwgc2lnbiA9PT0gXCIoXCIgPyBcIlwiIDogc2lnbikgKyB2YWx1ZVByZWZpeDtcbiAgICAgICAgdmFsdWVTdWZmaXggPSAodHlwZSA9PT0gXCJzXCIgPyBwcmVmaXhlc1s4ICsgcHJlZml4RXhwb25lbnQgLyAzXSA6IFwiXCIpICsgdmFsdWVTdWZmaXggKyAodmFsdWVOZWdhdGl2ZSAmJiBzaWduID09PSBcIihcIiA/IFwiKVwiIDogXCJcIik7XG5cbiAgICAgICAgLy8gQnJlYWsgdGhlIGZvcm1hdHRlZCB2YWx1ZSBpbnRvIHRoZSBpbnRlZ2VyIOKAnHZhbHVl4oCdIHBhcnQgdGhhdCBjYW4gYmVcbiAgICAgICAgLy8gZ3JvdXBlZCwgYW5kIGZyYWN0aW9uYWwgb3IgZXhwb25lbnRpYWwg4oCcc3VmZml44oCdIHBhcnQgdGhhdCBpcyBub3QuXG4gICAgICAgIGlmIChtYXliZVN1ZmZpeCkge1xuICAgICAgICAgIGkgPSAtMSwgbiA9IHZhbHVlLmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgbikge1xuICAgICAgICAgICAgaWYgKGMgPSB2YWx1ZS5jaGFyQ29kZUF0KGkpLCA0OCA+IGMgfHwgYyA+IDU3KSB7XG4gICAgICAgICAgICAgIHZhbHVlU3VmZml4ID0gKGMgPT09IDQ2ID8gZGVjaW1hbCArIHZhbHVlLnNsaWNlKGkgKyAxKSA6IHZhbHVlLnNsaWNlKGkpKSArIHZhbHVlU3VmZml4O1xuICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsIGkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIGZpbGwgY2hhcmFjdGVyIGlzIG5vdCBcIjBcIiwgZ3JvdXBpbmcgaXMgYXBwbGllZCBiZWZvcmUgcGFkZGluZy5cbiAgICAgIGlmIChjb21tYSAmJiAhemVybykgdmFsdWUgPSBncm91cCh2YWx1ZSwgSW5maW5pdHkpO1xuXG4gICAgICAvLyBDb21wdXRlIHRoZSBwYWRkaW5nLlxuICAgICAgdmFyIGxlbmd0aCA9IHZhbHVlUHJlZml4Lmxlbmd0aCArIHZhbHVlLmxlbmd0aCArIHZhbHVlU3VmZml4Lmxlbmd0aCxcbiAgICAgICAgICBwYWRkaW5nID0gbGVuZ3RoIDwgd2lkdGggPyBuZXcgQXJyYXkod2lkdGggLSBsZW5ndGggKyAxKS5qb2luKGZpbGwpIDogXCJcIjtcblxuICAgICAgLy8gSWYgdGhlIGZpbGwgY2hhcmFjdGVyIGlzIFwiMFwiLCBncm91cGluZyBpcyBhcHBsaWVkIGFmdGVyIHBhZGRpbmcuXG4gICAgICBpZiAoY29tbWEgJiYgemVybykgdmFsdWUgPSBncm91cChwYWRkaW5nICsgdmFsdWUsIHBhZGRpbmcubGVuZ3RoID8gd2lkdGggLSB2YWx1ZVN1ZmZpeC5sZW5ndGggOiBJbmZpbml0eSksIHBhZGRpbmcgPSBcIlwiO1xuXG4gICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgZmluYWwgb3V0cHV0IGJhc2VkIG9uIHRoZSBkZXNpcmVkIGFsaWdubWVudC5cbiAgICAgIHN3aXRjaCAoYWxpZ24pIHtcbiAgICAgICAgY2FzZSBcIjxcIjogdmFsdWUgPSB2YWx1ZVByZWZpeCArIHZhbHVlICsgdmFsdWVTdWZmaXggKyBwYWRkaW5nOyBicmVhaztcbiAgICAgICAgY2FzZSBcIj1cIjogdmFsdWUgPSB2YWx1ZVByZWZpeCArIHBhZGRpbmcgKyB2YWx1ZSArIHZhbHVlU3VmZml4OyBicmVhaztcbiAgICAgICAgY2FzZSBcIl5cIjogdmFsdWUgPSBwYWRkaW5nLnNsaWNlKDAsIGxlbmd0aCA9IHBhZGRpbmcubGVuZ3RoID4+IDEpICsgdmFsdWVQcmVmaXggKyB2YWx1ZSArIHZhbHVlU3VmZml4ICsgcGFkZGluZy5zbGljZShsZW5ndGgpOyBicmVhaztcbiAgICAgICAgZGVmYXVsdDogdmFsdWUgPSBwYWRkaW5nICsgdmFsdWVQcmVmaXggKyB2YWx1ZSArIHZhbHVlU3VmZml4OyBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bWVyYWxzKHZhbHVlKTtcbiAgICB9XG5cbiAgICBmb3JtYXQudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBzcGVjaWZpZXIgKyBcIlwiO1xuICAgIH07XG5cbiAgICByZXR1cm4gZm9ybWF0O1xuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0UHJlZml4KHNwZWNpZmllciwgdmFsdWUpIHtcbiAgICB2YXIgZiA9IG5ld0Zvcm1hdCgoc3BlY2lmaWVyID0gZm9ybWF0U3BlY2lmaWVyKHNwZWNpZmllciksIHNwZWNpZmllci50eXBlID0gXCJmXCIsIHNwZWNpZmllcikpLFxuICAgICAgICBlID0gTWF0aC5tYXgoLTgsIE1hdGgubWluKDgsIE1hdGguZmxvb3IoZXhwb25lbnQodmFsdWUpIC8gMykpKSAqIDMsXG4gICAgICAgIGsgPSBNYXRoLnBvdygxMCwgLWUpLFxuICAgICAgICBwcmVmaXggPSBwcmVmaXhlc1s4ICsgZSAvIDNdO1xuICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIGYoayAqIHZhbHVlKSArIHByZWZpeDtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmb3JtYXQ6IG5ld0Zvcm1hdCxcbiAgICBmb3JtYXRQcmVmaXg6IGZvcm1hdFByZWZpeFxuICB9O1xufVxuIiwKICAgICJpbXBvcnQgZm9ybWF0TG9jYWxlIGZyb20gXCIuL2xvY2FsZS5qc1wiO1xuXG52YXIgbG9jYWxlO1xuZXhwb3J0IHZhciBmb3JtYXQ7XG5leHBvcnQgdmFyIGZvcm1hdFByZWZpeDtcblxuZGVmYXVsdExvY2FsZSh7XG4gIHRob3VzYW5kczogXCIsXCIsXG4gIGdyb3VwaW5nOiBbM10sXG4gIGN1cnJlbmN5OiBbXCIkXCIsIFwiXCJdXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVmYXVsdExvY2FsZShkZWZpbml0aW9uKSB7XG4gIGxvY2FsZSA9IGZvcm1hdExvY2FsZShkZWZpbml0aW9uKTtcbiAgZm9ybWF0ID0gbG9jYWxlLmZvcm1hdDtcbiAgZm9ybWF0UHJlZml4ID0gbG9jYWxlLmZvcm1hdFByZWZpeDtcbiAgcmV0dXJuIGxvY2FsZTtcbn1cbiIsCiAgICAiaW1wb3J0IGV4cG9uZW50IGZyb20gXCIuL2V4cG9uZW50LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0ZXApIHtcbiAgcmV0dXJuIE1hdGgubWF4KDAsIC1leHBvbmVudChNYXRoLmFicyhzdGVwKSkpO1xufVxuIiwKICAgICJpbXBvcnQgZXhwb25lbnQgZnJvbSBcIi4vZXhwb25lbnQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc3RlcCwgdmFsdWUpIHtcbiAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWF4KC04LCBNYXRoLm1pbig4LCBNYXRoLmZsb29yKGV4cG9uZW50KHZhbHVlKSAvIDMpKSkgKiAzIC0gZXhwb25lbnQoTWF0aC5hYnMoc3RlcCkpKTtcbn1cbiIsCiAgICAiaW1wb3J0IGV4cG9uZW50IGZyb20gXCIuL2V4cG9uZW50LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0ZXAsIG1heCkge1xuICBzdGVwID0gTWF0aC5hYnMoc3RlcCksIG1heCA9IE1hdGguYWJzKG1heCkgLSBzdGVwO1xuICByZXR1cm4gTWF0aC5tYXgoMCwgZXhwb25lbnQobWF4KSAtIGV4cG9uZW50KHN0ZXApKSArIDE7XG59XG4iLAogICAgImV4cG9ydCB7ZGVmYXVsdCBhcyBmb3JtYXREZWZhdWx0TG9jYWxlLCBmb3JtYXQsIGZvcm1hdFByZWZpeH0gZnJvbSBcIi4vZGVmYXVsdExvY2FsZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGZvcm1hdExvY2FsZX0gZnJvbSBcIi4vbG9jYWxlLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgZm9ybWF0U3BlY2lmaWVyLCBGb3JtYXRTcGVjaWZpZXJ9IGZyb20gXCIuL2Zvcm1hdFNwZWNpZmllci5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHByZWNpc2lvbkZpeGVkfSBmcm9tIFwiLi9wcmVjaXNpb25GaXhlZC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHByZWNpc2lvblByZWZpeH0gZnJvbSBcIi4vcHJlY2lzaW9uUHJlZml4LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgcHJlY2lzaW9uUm91bmR9IGZyb20gXCIuL3ByZWNpc2lvblJvdW5kLmpzXCI7XG4iLAogICAgImV4cG9ydCBmdW5jdGlvbiBpbml0UmFuZ2UoZG9tYWluLCByYW5nZSkge1xuICBzd2l0Y2ggKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6IGJyZWFrO1xuICAgIGNhc2UgMTogdGhpcy5yYW5nZShkb21haW4pOyBicmVhaztcbiAgICBkZWZhdWx0OiB0aGlzLnJhbmdlKHJhbmdlKS5kb21haW4oZG9tYWluKTsgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0SW50ZXJwb2xhdG9yKGRvbWFpbiwgaW50ZXJwb2xhdG9yKSB7XG4gIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgIGNhc2UgMDogYnJlYWs7XG4gICAgY2FzZSAxOiB7XG4gICAgICBpZiAodHlwZW9mIGRvbWFpbiA9PT0gXCJmdW5jdGlvblwiKSB0aGlzLmludGVycG9sYXRvcihkb21haW4pO1xuICAgICAgZWxzZSB0aGlzLnJhbmdlKGRvbWFpbik7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgdGhpcy5kb21haW4oZG9tYWluKTtcbiAgICAgIGlmICh0eXBlb2YgaW50ZXJwb2xhdG9yID09PSBcImZ1bmN0aW9uXCIpIHRoaXMuaW50ZXJwb2xhdG9yKGludGVycG9sYXRvcik7XG4gICAgICBlbHNlIHRoaXMucmFuZ2UoaW50ZXJwb2xhdG9yKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGhpcztcbn1cbiIsCiAgICAiaW1wb3J0IHtJbnRlcm5NYXB9IGZyb20gXCJkMy1hcnJheVwiO1xuaW1wb3J0IHtpbml0UmFuZ2V9IGZyb20gXCIuL2luaXQuanNcIjtcblxuZXhwb3J0IGNvbnN0IGltcGxpY2l0ID0gU3ltYm9sKFwiaW1wbGljaXRcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9yZGluYWwoKSB7XG4gIHZhciBpbmRleCA9IG5ldyBJbnRlcm5NYXAoKSxcbiAgICAgIGRvbWFpbiA9IFtdLFxuICAgICAgcmFuZ2UgPSBbXSxcbiAgICAgIHVua25vd24gPSBpbXBsaWNpdDtcblxuICBmdW5jdGlvbiBzY2FsZShkKSB7XG4gICAgbGV0IGkgPSBpbmRleC5nZXQoZCk7XG4gICAgaWYgKGkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHVua25vd24gIT09IGltcGxpY2l0KSByZXR1cm4gdW5rbm93bjtcbiAgICAgIGluZGV4LnNldChkLCBpID0gZG9tYWluLnB1c2goZCkgLSAxKTtcbiAgICB9XG4gICAgcmV0dXJuIHJhbmdlW2kgJSByYW5nZS5sZW5ndGhdO1xuICB9XG5cbiAgc2NhbGUuZG9tYWluID0gZnVuY3Rpb24oXykge1xuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkgcmV0dXJuIGRvbWFpbi5zbGljZSgpO1xuICAgIGRvbWFpbiA9IFtdLCBpbmRleCA9IG5ldyBJbnRlcm5NYXAoKTtcbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIF8pIHtcbiAgICAgIGlmIChpbmRleC5oYXModmFsdWUpKSBjb250aW51ZTtcbiAgICAgIGluZGV4LnNldCh2YWx1ZSwgZG9tYWluLnB1c2godmFsdWUpIC0gMSk7XG4gICAgfVxuICAgIHJldHVybiBzY2FsZTtcbiAgfTtcblxuICBzY2FsZS5yYW5nZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChyYW5nZSA9IEFycmF5LmZyb20oXyksIHNjYWxlKSA6IHJhbmdlLnNsaWNlKCk7XG4gIH07XG5cbiAgc2NhbGUudW5rbm93biA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh1bmtub3duID0gXywgc2NhbGUpIDogdW5rbm93bjtcbiAgfTtcblxuICBzY2FsZS5jb3B5ID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG9yZGluYWwoZG9tYWluLCByYW5nZSkudW5rbm93bih1bmtub3duKTtcbiAgfTtcblxuICBpbml0UmFuZ2UuYXBwbHkoc2NhbGUsIGFyZ3VtZW50cyk7XG5cbiAgcmV0dXJuIHNjYWxlO1xufVxuIiwKICAgICJpbXBvcnQge3JhbmdlIGFzIHNlcXVlbmNlfSBmcm9tIFwiZDMtYXJyYXlcIjtcbmltcG9ydCB7aW5pdFJhbmdlfSBmcm9tIFwiLi9pbml0LmpzXCI7XG5pbXBvcnQgb3JkaW5hbCBmcm9tIFwiLi9vcmRpbmFsLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJhbmQoKSB7XG4gIHZhciBzY2FsZSA9IG9yZGluYWwoKS51bmtub3duKHVuZGVmaW5lZCksXG4gICAgICBkb21haW4gPSBzY2FsZS5kb21haW4sXG4gICAgICBvcmRpbmFsUmFuZ2UgPSBzY2FsZS5yYW5nZSxcbiAgICAgIHIwID0gMCxcbiAgICAgIHIxID0gMSxcbiAgICAgIHN0ZXAsXG4gICAgICBiYW5kd2lkdGgsXG4gICAgICByb3VuZCA9IGZhbHNlLFxuICAgICAgcGFkZGluZ0lubmVyID0gMCxcbiAgICAgIHBhZGRpbmdPdXRlciA9IDAsXG4gICAgICBhbGlnbiA9IDAuNTtcblxuICBkZWxldGUgc2NhbGUudW5rbm93bjtcblxuICBmdW5jdGlvbiByZXNjYWxlKCkge1xuICAgIHZhciBuID0gZG9tYWluKCkubGVuZ3RoLFxuICAgICAgICByZXZlcnNlID0gcjEgPCByMCxcbiAgICAgICAgc3RhcnQgPSByZXZlcnNlID8gcjEgOiByMCxcbiAgICAgICAgc3RvcCA9IHJldmVyc2UgPyByMCA6IHIxO1xuICAgIHN0ZXAgPSAoc3RvcCAtIHN0YXJ0KSAvIE1hdGgubWF4KDEsIG4gLSBwYWRkaW5nSW5uZXIgKyBwYWRkaW5nT3V0ZXIgKiAyKTtcbiAgICBpZiAocm91bmQpIHN0ZXAgPSBNYXRoLmZsb29yKHN0ZXApO1xuICAgIHN0YXJ0ICs9IChzdG9wIC0gc3RhcnQgLSBzdGVwICogKG4gLSBwYWRkaW5nSW5uZXIpKSAqIGFsaWduO1xuICAgIGJhbmR3aWR0aCA9IHN0ZXAgKiAoMSAtIHBhZGRpbmdJbm5lcik7XG4gICAgaWYgKHJvdW5kKSBzdGFydCA9IE1hdGgucm91bmQoc3RhcnQpLCBiYW5kd2lkdGggPSBNYXRoLnJvdW5kKGJhbmR3aWR0aCk7XG4gICAgdmFyIHZhbHVlcyA9IHNlcXVlbmNlKG4pLm1hcChmdW5jdGlvbihpKSB7IHJldHVybiBzdGFydCArIHN0ZXAgKiBpOyB9KTtcbiAgICByZXR1cm4gb3JkaW5hbFJhbmdlKHJldmVyc2UgPyB2YWx1ZXMucmV2ZXJzZSgpIDogdmFsdWVzKTtcbiAgfVxuXG4gIHNjYWxlLmRvbWFpbiA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkb21haW4oXyksIHJlc2NhbGUoKSkgOiBkb21haW4oKTtcbiAgfTtcblxuICBzY2FsZS5yYW5nZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChbcjAsIHIxXSA9IF8sIHIwID0gK3IwLCByMSA9ICtyMSwgcmVzY2FsZSgpKSA6IFtyMCwgcjFdO1xuICB9O1xuXG4gIHNjYWxlLnJhbmdlUm91bmQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIFtyMCwgcjFdID0gXywgcjAgPSArcjAsIHIxID0gK3IxLCByb3VuZCA9IHRydWUsIHJlc2NhbGUoKTtcbiAgfTtcblxuICBzY2FsZS5iYW5kd2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gYmFuZHdpZHRoO1xuICB9O1xuXG4gIHNjYWxlLnN0ZXAgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gc3RlcDtcbiAgfTtcblxuICBzY2FsZS5yb3VuZCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChyb3VuZCA9ICEhXywgcmVzY2FsZSgpKSA6IHJvdW5kO1xuICB9O1xuXG4gIHNjYWxlLnBhZGRpbmcgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkZGluZ0lubmVyID0gTWF0aC5taW4oMSwgcGFkZGluZ091dGVyID0gK18pLCByZXNjYWxlKCkpIDogcGFkZGluZ0lubmVyO1xuICB9O1xuXG4gIHNjYWxlLnBhZGRpbmdJbm5lciA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChwYWRkaW5nSW5uZXIgPSBNYXRoLm1pbigxLCBfKSwgcmVzY2FsZSgpKSA6IHBhZGRpbmdJbm5lcjtcbiAgfTtcblxuICBzY2FsZS5wYWRkaW5nT3V0ZXIgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkZGluZ091dGVyID0gK18sIHJlc2NhbGUoKSkgOiBwYWRkaW5nT3V0ZXI7XG4gIH07XG5cbiAgc2NhbGUuYWxpZ24gPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoYWxpZ24gPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxLCBfKSksIHJlc2NhbGUoKSkgOiBhbGlnbjtcbiAgfTtcblxuICBzY2FsZS5jb3B5ID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGJhbmQoZG9tYWluKCksIFtyMCwgcjFdKVxuICAgICAgICAucm91bmQocm91bmQpXG4gICAgICAgIC5wYWRkaW5nSW5uZXIocGFkZGluZ0lubmVyKVxuICAgICAgICAucGFkZGluZ091dGVyKHBhZGRpbmdPdXRlcilcbiAgICAgICAgLmFsaWduKGFsaWduKTtcbiAgfTtcblxuICByZXR1cm4gaW5pdFJhbmdlLmFwcGx5KHJlc2NhbGUoKSwgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gcG9pbnRpc2goc2NhbGUpIHtcbiAgdmFyIGNvcHkgPSBzY2FsZS5jb3B5O1xuXG4gIHNjYWxlLnBhZGRpbmcgPSBzY2FsZS5wYWRkaW5nT3V0ZXI7XG4gIGRlbGV0ZSBzY2FsZS5wYWRkaW5nSW5uZXI7XG4gIGRlbGV0ZSBzY2FsZS5wYWRkaW5nT3V0ZXI7XG5cbiAgc2NhbGUuY29weSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBwb2ludGlzaChjb3B5KCkpO1xuICB9O1xuXG4gIHJldHVybiBzY2FsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvaW50KCkge1xuICByZXR1cm4gcG9pbnRpc2goYmFuZC5hcHBseShudWxsLCBhcmd1bWVudHMpLnBhZGRpbmdJbm5lcigxKSk7XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbnN0YW50cyh4KSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4geDtcbiAgfTtcbn1cbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbnVtYmVyKHgpIHtcbiAgcmV0dXJuICt4O1xufVxuIiwKICAgICJpbXBvcnQge2Jpc2VjdH0gZnJvbSBcImQzLWFycmF5XCI7XG5pbXBvcnQge2ludGVycG9sYXRlIGFzIGludGVycG9sYXRlVmFsdWUsIGludGVycG9sYXRlTnVtYmVyLCBpbnRlcnBvbGF0ZVJvdW5kfSBmcm9tIFwiZDMtaW50ZXJwb2xhdGVcIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IG51bWJlciBmcm9tIFwiLi9udW1iZXIuanNcIjtcblxudmFyIHVuaXQgPSBbMCwgMV07XG5cbmV4cG9ydCBmdW5jdGlvbiBpZGVudGl0eSh4KSB7XG4gIHJldHVybiB4O1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemUoYSwgYikge1xuICByZXR1cm4gKGIgLT0gKGEgPSArYSkpXG4gICAgICA/IGZ1bmN0aW9uKHgpIHsgcmV0dXJuICh4IC0gYSkgLyBiOyB9XG4gICAgICA6IGNvbnN0YW50KGlzTmFOKGIpID8gTmFOIDogMC41KTtcbn1cblxuZnVuY3Rpb24gY2xhbXBlcihhLCBiKSB7XG4gIHZhciB0O1xuICBpZiAoYSA+IGIpIHQgPSBhLCBhID0gYiwgYiA9IHQ7XG4gIHJldHVybiBmdW5jdGlvbih4KSB7IHJldHVybiBNYXRoLm1heChhLCBNYXRoLm1pbihiLCB4KSk7IH07XG59XG5cbi8vIG5vcm1hbGl6ZShhLCBiKSh4KSB0YWtlcyBhIGRvbWFpbiB2YWx1ZSB4IGluIFthLGJdIGFuZCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciB0IGluIFswLDFdLlxuLy8gaW50ZXJwb2xhdGUoYSwgYikodCkgdGFrZXMgYSBwYXJhbWV0ZXIgdCBpbiBbMCwxXSBhbmQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyByYW5nZSB2YWx1ZSB4IGluIFthLGJdLlxuZnVuY3Rpb24gYmltYXAoZG9tYWluLCByYW5nZSwgaW50ZXJwb2xhdGUpIHtcbiAgdmFyIGQwID0gZG9tYWluWzBdLCBkMSA9IGRvbWFpblsxXSwgcjAgPSByYW5nZVswXSwgcjEgPSByYW5nZVsxXTtcbiAgaWYgKGQxIDwgZDApIGQwID0gbm9ybWFsaXplKGQxLCBkMCksIHIwID0gaW50ZXJwb2xhdGUocjEsIHIwKTtcbiAgZWxzZSBkMCA9IG5vcm1hbGl6ZShkMCwgZDEpLCByMCA9IGludGVycG9sYXRlKHIwLCByMSk7XG4gIHJldHVybiBmdW5jdGlvbih4KSB7IHJldHVybiByMChkMCh4KSk7IH07XG59XG5cbmZ1bmN0aW9uIHBvbHltYXAoZG9tYWluLCByYW5nZSwgaW50ZXJwb2xhdGUpIHtcbiAgdmFyIGogPSBNYXRoLm1pbihkb21haW4ubGVuZ3RoLCByYW5nZS5sZW5ndGgpIC0gMSxcbiAgICAgIGQgPSBuZXcgQXJyYXkoaiksXG4gICAgICByID0gbmV3IEFycmF5KGopLFxuICAgICAgaSA9IC0xO1xuXG4gIC8vIFJldmVyc2UgZGVzY2VuZGluZyBkb21haW5zLlxuICBpZiAoZG9tYWluW2pdIDwgZG9tYWluWzBdKSB7XG4gICAgZG9tYWluID0gZG9tYWluLnNsaWNlKCkucmV2ZXJzZSgpO1xuICAgIHJhbmdlID0gcmFuZ2Uuc2xpY2UoKS5yZXZlcnNlKCk7XG4gIH1cblxuICB3aGlsZSAoKytpIDwgaikge1xuICAgIGRbaV0gPSBub3JtYWxpemUoZG9tYWluW2ldLCBkb21haW5baSArIDFdKTtcbiAgICByW2ldID0gaW50ZXJwb2xhdGUocmFuZ2VbaV0sIHJhbmdlW2kgKyAxXSk7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24oeCkge1xuICAgIHZhciBpID0gYmlzZWN0KGRvbWFpbiwgeCwgMSwgaikgLSAxO1xuICAgIHJldHVybiByW2ldKGRbaV0oeCkpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29weShzb3VyY2UsIHRhcmdldCkge1xuICByZXR1cm4gdGFyZ2V0XG4gICAgICAuZG9tYWluKHNvdXJjZS5kb21haW4oKSlcbiAgICAgIC5yYW5nZShzb3VyY2UucmFuZ2UoKSlcbiAgICAgIC5pbnRlcnBvbGF0ZShzb3VyY2UuaW50ZXJwb2xhdGUoKSlcbiAgICAgIC5jbGFtcChzb3VyY2UuY2xhbXAoKSlcbiAgICAgIC51bmtub3duKHNvdXJjZS51bmtub3duKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtZXIoKSB7XG4gIHZhciBkb21haW4gPSB1bml0LFxuICAgICAgcmFuZ2UgPSB1bml0LFxuICAgICAgaW50ZXJwb2xhdGUgPSBpbnRlcnBvbGF0ZVZhbHVlLFxuICAgICAgdHJhbnNmb3JtLFxuICAgICAgdW50cmFuc2Zvcm0sXG4gICAgICB1bmtub3duLFxuICAgICAgY2xhbXAgPSBpZGVudGl0eSxcbiAgICAgIHBpZWNld2lzZSxcbiAgICAgIG91dHB1dCxcbiAgICAgIGlucHV0O1xuXG4gIGZ1bmN0aW9uIHJlc2NhbGUoKSB7XG4gICAgdmFyIG4gPSBNYXRoLm1pbihkb21haW4ubGVuZ3RoLCByYW5nZS5sZW5ndGgpO1xuICAgIGlmIChjbGFtcCAhPT0gaWRlbnRpdHkpIGNsYW1wID0gY2xhbXBlcihkb21haW5bMF0sIGRvbWFpbltuIC0gMV0pO1xuICAgIHBpZWNld2lzZSA9IG4gPiAyID8gcG9seW1hcCA6IGJpbWFwO1xuICAgIG91dHB1dCA9IGlucHV0ID0gbnVsbDtcbiAgICByZXR1cm4gc2NhbGU7XG4gIH1cblxuICBmdW5jdGlvbiBzY2FsZSh4KSB7XG4gICAgcmV0dXJuIHggPT0gbnVsbCB8fCBpc05hTih4ID0gK3gpID8gdW5rbm93biA6IChvdXRwdXQgfHwgKG91dHB1dCA9IHBpZWNld2lzZShkb21haW4ubWFwKHRyYW5zZm9ybSksIHJhbmdlLCBpbnRlcnBvbGF0ZSkpKSh0cmFuc2Zvcm0oY2xhbXAoeCkpKTtcbiAgfVxuXG4gIHNjYWxlLmludmVydCA9IGZ1bmN0aW9uKHkpIHtcbiAgICByZXR1cm4gY2xhbXAodW50cmFuc2Zvcm0oKGlucHV0IHx8IChpbnB1dCA9IHBpZWNld2lzZShyYW5nZSwgZG9tYWluLm1hcCh0cmFuc2Zvcm0pLCBpbnRlcnBvbGF0ZU51bWJlcikpKSh5KSkpO1xuICB9O1xuXG4gIHNjYWxlLmRvbWFpbiA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkb21haW4gPSBBcnJheS5mcm9tKF8sIG51bWJlciksIHJlc2NhbGUoKSkgOiBkb21haW4uc2xpY2UoKTtcbiAgfTtcblxuICBzY2FsZS5yYW5nZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChyYW5nZSA9IEFycmF5LmZyb20oXyksIHJlc2NhbGUoKSkgOiByYW5nZS5zbGljZSgpO1xuICB9O1xuXG4gIHNjYWxlLnJhbmdlUm91bmQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIHJhbmdlID0gQXJyYXkuZnJvbShfKSwgaW50ZXJwb2xhdGUgPSBpbnRlcnBvbGF0ZVJvdW5kLCByZXNjYWxlKCk7XG4gIH07XG5cbiAgc2NhbGUuY2xhbXAgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoY2xhbXAgPSBfID8gdHJ1ZSA6IGlkZW50aXR5LCByZXNjYWxlKCkpIDogY2xhbXAgIT09IGlkZW50aXR5O1xuICB9O1xuXG4gIHNjYWxlLmludGVycG9sYXRlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGludGVycG9sYXRlID0gXywgcmVzY2FsZSgpKSA6IGludGVycG9sYXRlO1xuICB9O1xuXG4gIHNjYWxlLnVua25vd24gPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAodW5rbm93biA9IF8sIHNjYWxlKSA6IHVua25vd247XG4gIH07XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKHQsIHUpIHtcbiAgICB0cmFuc2Zvcm0gPSB0LCB1bnRyYW5zZm9ybSA9IHU7XG4gICAgcmV0dXJuIHJlc2NhbGUoKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29udGludW91cygpIHtcbiAgcmV0dXJuIHRyYW5zZm9ybWVyKCkoaWRlbnRpdHksIGlkZW50aXR5KTtcbn1cbiIsCiAgICAiaW1wb3J0IHt0aWNrU3RlcH0gZnJvbSBcImQzLWFycmF5XCI7XG5pbXBvcnQge2Zvcm1hdCwgZm9ybWF0UHJlZml4LCBmb3JtYXRTcGVjaWZpZXIsIHByZWNpc2lvbkZpeGVkLCBwcmVjaXNpb25QcmVmaXgsIHByZWNpc2lvblJvdW5kfSBmcm9tIFwiZDMtZm9ybWF0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRpY2tGb3JtYXQoc3RhcnQsIHN0b3AsIGNvdW50LCBzcGVjaWZpZXIpIHtcbiAgdmFyIHN0ZXAgPSB0aWNrU3RlcChzdGFydCwgc3RvcCwgY291bnQpLFxuICAgICAgcHJlY2lzaW9uO1xuICBzcGVjaWZpZXIgPSBmb3JtYXRTcGVjaWZpZXIoc3BlY2lmaWVyID09IG51bGwgPyBcIixmXCIgOiBzcGVjaWZpZXIpO1xuICBzd2l0Y2ggKHNwZWNpZmllci50eXBlKSB7XG4gICAgY2FzZSBcInNcIjoge1xuICAgICAgdmFyIHZhbHVlID0gTWF0aC5tYXgoTWF0aC5hYnMoc3RhcnQpLCBNYXRoLmFicyhzdG9wKSk7XG4gICAgICBpZiAoc3BlY2lmaWVyLnByZWNpc2lvbiA9PSBudWxsICYmICFpc05hTihwcmVjaXNpb24gPSBwcmVjaXNpb25QcmVmaXgoc3RlcCwgdmFsdWUpKSkgc3BlY2lmaWVyLnByZWNpc2lvbiA9IHByZWNpc2lvbjtcbiAgICAgIHJldHVybiBmb3JtYXRQcmVmaXgoc3BlY2lmaWVyLCB2YWx1ZSk7XG4gICAgfVxuICAgIGNhc2UgXCJcIjpcbiAgICBjYXNlIFwiZVwiOlxuICAgIGNhc2UgXCJnXCI6XG4gICAgY2FzZSBcInBcIjpcbiAgICBjYXNlIFwiclwiOiB7XG4gICAgICBpZiAoc3BlY2lmaWVyLnByZWNpc2lvbiA9PSBudWxsICYmICFpc05hTihwcmVjaXNpb24gPSBwcmVjaXNpb25Sb3VuZChzdGVwLCBNYXRoLm1heChNYXRoLmFicyhzdGFydCksIE1hdGguYWJzKHN0b3ApKSkpKSBzcGVjaWZpZXIucHJlY2lzaW9uID0gcHJlY2lzaW9uIC0gKHNwZWNpZmllci50eXBlID09PSBcImVcIik7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBcImZcIjpcbiAgICBjYXNlIFwiJVwiOiB7XG4gICAgICBpZiAoc3BlY2lmaWVyLnByZWNpc2lvbiA9PSBudWxsICYmICFpc05hTihwcmVjaXNpb24gPSBwcmVjaXNpb25GaXhlZChzdGVwKSkpIHNwZWNpZmllci5wcmVjaXNpb24gPSBwcmVjaXNpb24gLSAoc3BlY2lmaWVyLnR5cGUgPT09IFwiJVwiKSAqIDI7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZvcm1hdChzcGVjaWZpZXIpO1xufVxuIiwKICAgICJpbXBvcnQge3RpY2tzLCB0aWNrSW5jcmVtZW50fSBmcm9tIFwiZDMtYXJyYXlcIjtcbmltcG9ydCBjb250aW51b3VzLCB7Y29weX0gZnJvbSBcIi4vY29udGludW91cy5qc1wiO1xuaW1wb3J0IHtpbml0UmFuZ2V9IGZyb20gXCIuL2luaXQuanNcIjtcbmltcG9ydCB0aWNrRm9ybWF0IGZyb20gXCIuL3RpY2tGb3JtYXQuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmVhcmlzaChzY2FsZSkge1xuICB2YXIgZG9tYWluID0gc2NhbGUuZG9tYWluO1xuXG4gIHNjYWxlLnRpY2tzID0gZnVuY3Rpb24oY291bnQpIHtcbiAgICB2YXIgZCA9IGRvbWFpbigpO1xuICAgIHJldHVybiB0aWNrcyhkWzBdLCBkW2QubGVuZ3RoIC0gMV0sIGNvdW50ID09IG51bGwgPyAxMCA6IGNvdW50KTtcbiAgfTtcblxuICBzY2FsZS50aWNrRm9ybWF0ID0gZnVuY3Rpb24oY291bnQsIHNwZWNpZmllcikge1xuICAgIHZhciBkID0gZG9tYWluKCk7XG4gICAgcmV0dXJuIHRpY2tGb3JtYXQoZFswXSwgZFtkLmxlbmd0aCAtIDFdLCBjb3VudCA9PSBudWxsID8gMTAgOiBjb3VudCwgc3BlY2lmaWVyKTtcbiAgfTtcblxuICBzY2FsZS5uaWNlID0gZnVuY3Rpb24oY291bnQpIHtcbiAgICBpZiAoY291bnQgPT0gbnVsbCkgY291bnQgPSAxMDtcblxuICAgIHZhciBkID0gZG9tYWluKCk7XG4gICAgdmFyIGkwID0gMDtcbiAgICB2YXIgaTEgPSBkLmxlbmd0aCAtIDE7XG4gICAgdmFyIHN0YXJ0ID0gZFtpMF07XG4gICAgdmFyIHN0b3AgPSBkW2kxXTtcbiAgICB2YXIgcHJlc3RlcDtcbiAgICB2YXIgc3RlcDtcbiAgICB2YXIgbWF4SXRlciA9IDEwO1xuXG4gICAgaWYgKHN0b3AgPCBzdGFydCkge1xuICAgICAgc3RlcCA9IHN0YXJ0LCBzdGFydCA9IHN0b3AsIHN0b3AgPSBzdGVwO1xuICAgICAgc3RlcCA9IGkwLCBpMCA9IGkxLCBpMSA9IHN0ZXA7XG4gICAgfVxuICAgIFxuICAgIHdoaWxlIChtYXhJdGVyLS0gPiAwKSB7XG4gICAgICBzdGVwID0gdGlja0luY3JlbWVudChzdGFydCwgc3RvcCwgY291bnQpO1xuICAgICAgaWYgKHN0ZXAgPT09IHByZXN0ZXApIHtcbiAgICAgICAgZFtpMF0gPSBzdGFydFxuICAgICAgICBkW2kxXSA9IHN0b3BcbiAgICAgICAgcmV0dXJuIGRvbWFpbihkKTtcbiAgICAgIH0gZWxzZSBpZiAoc3RlcCA+IDApIHtcbiAgICAgICAgc3RhcnQgPSBNYXRoLmZsb29yKHN0YXJ0IC8gc3RlcCkgKiBzdGVwO1xuICAgICAgICBzdG9wID0gTWF0aC5jZWlsKHN0b3AgLyBzdGVwKSAqIHN0ZXA7XG4gICAgICB9IGVsc2UgaWYgKHN0ZXAgPCAwKSB7XG4gICAgICAgIHN0YXJ0ID0gTWF0aC5jZWlsKHN0YXJ0ICogc3RlcCkgLyBzdGVwO1xuICAgICAgICBzdG9wID0gTWF0aC5mbG9vcihzdG9wICogc3RlcCkgLyBzdGVwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBwcmVzdGVwID0gc3RlcDtcbiAgICB9XG5cbiAgICByZXR1cm4gc2NhbGU7XG4gIH07XG5cbiAgcmV0dXJuIHNjYWxlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsaW5lYXIoKSB7XG4gIHZhciBzY2FsZSA9IGNvbnRpbnVvdXMoKTtcblxuICBzY2FsZS5jb3B5ID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGNvcHkoc2NhbGUsIGxpbmVhcigpKTtcbiAgfTtcblxuICBpbml0UmFuZ2UuYXBwbHkoc2NhbGUsIGFyZ3VtZW50cyk7XG5cbiAgcmV0dXJuIGxpbmVhcmlzaChzY2FsZSk7XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5pY2UoZG9tYWluLCBpbnRlcnZhbCkge1xuICBkb21haW4gPSBkb21haW4uc2xpY2UoKTtcblxuICB2YXIgaTAgPSAwLFxuICAgICAgaTEgPSBkb21haW4ubGVuZ3RoIC0gMSxcbiAgICAgIHgwID0gZG9tYWluW2kwXSxcbiAgICAgIHgxID0gZG9tYWluW2kxXSxcbiAgICAgIHQ7XG5cbiAgaWYgKHgxIDwgeDApIHtcbiAgICB0ID0gaTAsIGkwID0gaTEsIGkxID0gdDtcbiAgICB0ID0geDAsIHgwID0geDEsIHgxID0gdDtcbiAgfVxuXG4gIGRvbWFpbltpMF0gPSBpbnRlcnZhbC5mbG9vcih4MCk7XG4gIGRvbWFpbltpMV0gPSBpbnRlcnZhbC5jZWlsKHgxKTtcbiAgcmV0dXJuIGRvbWFpbjtcbn1cbiIsCiAgICAiY29uc3QgdDAgPSBuZXcgRGF0ZSwgdDEgPSBuZXcgRGF0ZTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVJbnRlcnZhbChmbG9vcmksIG9mZnNldGksIGNvdW50LCBmaWVsZCkge1xuXG4gIGZ1bmN0aW9uIGludGVydmFsKGRhdGUpIHtcbiAgICByZXR1cm4gZmxvb3JpKGRhdGUgPSBhcmd1bWVudHMubGVuZ3RoID09PSAwID8gbmV3IERhdGUgOiBuZXcgRGF0ZSgrZGF0ZSkpLCBkYXRlO1xuICB9XG5cbiAgaW50ZXJ2YWwuZmxvb3IgPSAoZGF0ZSkgPT4ge1xuICAgIHJldHVybiBmbG9vcmkoZGF0ZSA9IG5ldyBEYXRlKCtkYXRlKSksIGRhdGU7XG4gIH07XG5cbiAgaW50ZXJ2YWwuY2VpbCA9IChkYXRlKSA9PiB7XG4gICAgcmV0dXJuIGZsb29yaShkYXRlID0gbmV3IERhdGUoZGF0ZSAtIDEpKSwgb2Zmc2V0aShkYXRlLCAxKSwgZmxvb3JpKGRhdGUpLCBkYXRlO1xuICB9O1xuXG4gIGludGVydmFsLnJvdW5kID0gKGRhdGUpID0+IHtcbiAgICBjb25zdCBkMCA9IGludGVydmFsKGRhdGUpLCBkMSA9IGludGVydmFsLmNlaWwoZGF0ZSk7XG4gICAgcmV0dXJuIGRhdGUgLSBkMCA8IGQxIC0gZGF0ZSA/IGQwIDogZDE7XG4gIH07XG5cbiAgaW50ZXJ2YWwub2Zmc2V0ID0gKGRhdGUsIHN0ZXApID0+IHtcbiAgICByZXR1cm4gb2Zmc2V0aShkYXRlID0gbmV3IERhdGUoK2RhdGUpLCBzdGVwID09IG51bGwgPyAxIDogTWF0aC5mbG9vcihzdGVwKSksIGRhdGU7XG4gIH07XG5cbiAgaW50ZXJ2YWwucmFuZ2UgPSAoc3RhcnQsIHN0b3AsIHN0ZXApID0+IHtcbiAgICBjb25zdCByYW5nZSA9IFtdO1xuICAgIHN0YXJ0ID0gaW50ZXJ2YWwuY2VpbChzdGFydCk7XG4gICAgc3RlcCA9IHN0ZXAgPT0gbnVsbCA/IDEgOiBNYXRoLmZsb29yKHN0ZXApO1xuICAgIGlmICghKHN0YXJ0IDwgc3RvcCkgfHwgIShzdGVwID4gMCkpIHJldHVybiByYW5nZTsgLy8gYWxzbyBoYW5kbGVzIEludmFsaWQgRGF0ZVxuICAgIGxldCBwcmV2aW91cztcbiAgICBkbyByYW5nZS5wdXNoKHByZXZpb3VzID0gbmV3IERhdGUoK3N0YXJ0KSksIG9mZnNldGkoc3RhcnQsIHN0ZXApLCBmbG9vcmkoc3RhcnQpO1xuICAgIHdoaWxlIChwcmV2aW91cyA8IHN0YXJ0ICYmIHN0YXJ0IDwgc3RvcCk7XG4gICAgcmV0dXJuIHJhbmdlO1xuICB9O1xuXG4gIGludGVydmFsLmZpbHRlciA9ICh0ZXN0KSA9PiB7XG4gICAgcmV0dXJuIHRpbWVJbnRlcnZhbCgoZGF0ZSkgPT4ge1xuICAgICAgaWYgKGRhdGUgPj0gZGF0ZSkgd2hpbGUgKGZsb29yaShkYXRlKSwgIXRlc3QoZGF0ZSkpIGRhdGUuc2V0VGltZShkYXRlIC0gMSk7XG4gICAgfSwgKGRhdGUsIHN0ZXApID0+IHtcbiAgICAgIGlmIChkYXRlID49IGRhdGUpIHtcbiAgICAgICAgaWYgKHN0ZXAgPCAwKSB3aGlsZSAoKytzdGVwIDw9IDApIHtcbiAgICAgICAgICB3aGlsZSAob2Zmc2V0aShkYXRlLCAtMSksICF0ZXN0KGRhdGUpKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWVtcHR5XG4gICAgICAgIH0gZWxzZSB3aGlsZSAoLS1zdGVwID49IDApIHtcbiAgICAgICAgICB3aGlsZSAob2Zmc2V0aShkYXRlLCArMSksICF0ZXN0KGRhdGUpKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWVtcHR5XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBpZiAoY291bnQpIHtcbiAgICBpbnRlcnZhbC5jb3VudCA9IChzdGFydCwgZW5kKSA9PiB7XG4gICAgICB0MC5zZXRUaW1lKCtzdGFydCksIHQxLnNldFRpbWUoK2VuZCk7XG4gICAgICBmbG9vcmkodDApLCBmbG9vcmkodDEpO1xuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoY291bnQodDAsIHQxKSk7XG4gICAgfTtcblxuICAgIGludGVydmFsLmV2ZXJ5ID0gKHN0ZXApID0+IHtcbiAgICAgIHN0ZXAgPSBNYXRoLmZsb29yKHN0ZXApO1xuICAgICAgcmV0dXJuICFpc0Zpbml0ZShzdGVwKSB8fCAhKHN0ZXAgPiAwKSA/IG51bGxcbiAgICAgICAgICA6ICEoc3RlcCA+IDEpID8gaW50ZXJ2YWxcbiAgICAgICAgICA6IGludGVydmFsLmZpbHRlcihmaWVsZFxuICAgICAgICAgICAgICA/IChkKSA9PiBmaWVsZChkKSAlIHN0ZXAgPT09IDBcbiAgICAgICAgICAgICAgOiAoZCkgPT4gaW50ZXJ2YWwuY291bnQoMCwgZCkgJSBzdGVwID09PSAwKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGludGVydmFsO1xufVxuIiwKICAgICJpbXBvcnQge3RpbWVJbnRlcnZhbH0gZnJvbSBcIi4vaW50ZXJ2YWwuanNcIjtcblxuZXhwb3J0IGNvbnN0IG1pbGxpc2Vjb25kID0gdGltZUludGVydmFsKCgpID0+IHtcbiAgLy8gbm9vcFxufSwgKGRhdGUsIHN0ZXApID0+IHtcbiAgZGF0ZS5zZXRUaW1lKCtkYXRlICsgc3RlcCk7XG59LCAoc3RhcnQsIGVuZCkgPT4ge1xuICByZXR1cm4gZW5kIC0gc3RhcnQ7XG59KTtcblxuLy8gQW4gb3B0aW1pemVkIGltcGxlbWVudGF0aW9uIGZvciB0aGlzIHNpbXBsZSBjYXNlLlxubWlsbGlzZWNvbmQuZXZlcnkgPSAoaykgPT4ge1xuICBrID0gTWF0aC5mbG9vcihrKTtcbiAgaWYgKCFpc0Zpbml0ZShrKSB8fCAhKGsgPiAwKSkgcmV0dXJuIG51bGw7XG4gIGlmICghKGsgPiAxKSkgcmV0dXJuIG1pbGxpc2Vjb25kO1xuICByZXR1cm4gdGltZUludGVydmFsKChkYXRlKSA9PiB7XG4gICAgZGF0ZS5zZXRUaW1lKE1hdGguZmxvb3IoZGF0ZSAvIGspICogayk7XG4gIH0sIChkYXRlLCBzdGVwKSA9PiB7XG4gICAgZGF0ZS5zZXRUaW1lKCtkYXRlICsgc3RlcCAqIGspO1xuICB9LCAoc3RhcnQsIGVuZCkgPT4ge1xuICAgIHJldHVybiAoZW5kIC0gc3RhcnQpIC8gaztcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgbWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmQucmFuZ2U7XG4iLAogICAgImV4cG9ydCBjb25zdCBkdXJhdGlvblNlY29uZCA9IDEwMDA7XG5leHBvcnQgY29uc3QgZHVyYXRpb25NaW51dGUgPSBkdXJhdGlvblNlY29uZCAqIDYwO1xuZXhwb3J0IGNvbnN0IGR1cmF0aW9uSG91ciA9IGR1cmF0aW9uTWludXRlICogNjA7XG5leHBvcnQgY29uc3QgZHVyYXRpb25EYXkgPSBkdXJhdGlvbkhvdXIgKiAyNDtcbmV4cG9ydCBjb25zdCBkdXJhdGlvbldlZWsgPSBkdXJhdGlvbkRheSAqIDc7XG5leHBvcnQgY29uc3QgZHVyYXRpb25Nb250aCA9IGR1cmF0aW9uRGF5ICogMzA7XG5leHBvcnQgY29uc3QgZHVyYXRpb25ZZWFyID0gZHVyYXRpb25EYXkgKiAzNjU7XG4iLAogICAgImltcG9ydCB7dGltZUludGVydmFsfSBmcm9tIFwiLi9pbnRlcnZhbC5qc1wiO1xuaW1wb3J0IHtkdXJhdGlvblNlY29uZH0gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcblxuZXhwb3J0IGNvbnN0IHNlY29uZCA9IHRpbWVJbnRlcnZhbCgoZGF0ZSkgPT4ge1xuICBkYXRlLnNldFRpbWUoZGF0ZSAtIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCkpO1xufSwgKGRhdGUsIHN0ZXApID0+IHtcbiAgZGF0ZS5zZXRUaW1lKCtkYXRlICsgc3RlcCAqIGR1cmF0aW9uU2Vjb25kKTtcbn0sIChzdGFydCwgZW5kKSA9PiB7XG4gIHJldHVybiAoZW5kIC0gc3RhcnQpIC8gZHVyYXRpb25TZWNvbmQ7XG59LCAoZGF0ZSkgPT4ge1xuICByZXR1cm4gZGF0ZS5nZXRVVENTZWNvbmRzKCk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHNlY29uZHMgPSBzZWNvbmQucmFuZ2U7XG4iLAogICAgImltcG9ydCB7dGltZUludGVydmFsfSBmcm9tIFwiLi9pbnRlcnZhbC5qc1wiO1xuaW1wb3J0IHtkdXJhdGlvbk1pbnV0ZSwgZHVyYXRpb25TZWNvbmR9IGZyb20gXCIuL2R1cmF0aW9uLmpzXCI7XG5cbmV4cG9ydCBjb25zdCB0aW1lTWludXRlID0gdGltZUludGVydmFsKChkYXRlKSA9PiB7XG4gIGRhdGUuc2V0VGltZShkYXRlIC0gZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSAtIGRhdGUuZ2V0U2Vjb25kcygpICogZHVyYXRpb25TZWNvbmQpO1xufSwgKGRhdGUsIHN0ZXApID0+IHtcbiAgZGF0ZS5zZXRUaW1lKCtkYXRlICsgc3RlcCAqIGR1cmF0aW9uTWludXRlKTtcbn0sIChzdGFydCwgZW5kKSA9PiB7XG4gIHJldHVybiAoZW5kIC0gc3RhcnQpIC8gZHVyYXRpb25NaW51dGU7XG59LCAoZGF0ZSkgPT4ge1xuICByZXR1cm4gZGF0ZS5nZXRNaW51dGVzKCk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHRpbWVNaW51dGVzID0gdGltZU1pbnV0ZS5yYW5nZTtcblxuZXhwb3J0IGNvbnN0IHV0Y01pbnV0ZSA9IHRpbWVJbnRlcnZhbCgoZGF0ZSkgPT4ge1xuICBkYXRlLnNldFVUQ1NlY29uZHMoMCwgMCk7XG59LCAoZGF0ZSwgc3RlcCkgPT4ge1xuICBkYXRlLnNldFRpbWUoK2RhdGUgKyBzdGVwICogZHVyYXRpb25NaW51dGUpO1xufSwgKHN0YXJ0LCBlbmQpID0+IHtcbiAgcmV0dXJuIChlbmQgLSBzdGFydCkgLyBkdXJhdGlvbk1pbnV0ZTtcbn0sIChkYXRlKSA9PiB7XG4gIHJldHVybiBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgdXRjTWludXRlcyA9IHV0Y01pbnV0ZS5yYW5nZTtcbiIsCiAgICAiaW1wb3J0IHt0aW1lSW50ZXJ2YWx9IGZyb20gXCIuL2ludGVydmFsLmpzXCI7XG5pbXBvcnQge2R1cmF0aW9uSG91ciwgZHVyYXRpb25NaW51dGUsIGR1cmF0aW9uU2Vjb25kfSBmcm9tIFwiLi9kdXJhdGlvbi5qc1wiO1xuXG5leHBvcnQgY29uc3QgdGltZUhvdXIgPSB0aW1lSW50ZXJ2YWwoKGRhdGUpID0+IHtcbiAgZGF0ZS5zZXRUaW1lKGRhdGUgLSBkYXRlLmdldE1pbGxpc2Vjb25kcygpIC0gZGF0ZS5nZXRTZWNvbmRzKCkgKiBkdXJhdGlvblNlY29uZCAtIGRhdGUuZ2V0TWludXRlcygpICogZHVyYXRpb25NaW51dGUpO1xufSwgKGRhdGUsIHN0ZXApID0+IHtcbiAgZGF0ZS5zZXRUaW1lKCtkYXRlICsgc3RlcCAqIGR1cmF0aW9uSG91cik7XG59LCAoc3RhcnQsIGVuZCkgPT4ge1xuICByZXR1cm4gKGVuZCAtIHN0YXJ0KSAvIGR1cmF0aW9uSG91cjtcbn0sIChkYXRlKSA9PiB7XG4gIHJldHVybiBkYXRlLmdldEhvdXJzKCk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHRpbWVIb3VycyA9IHRpbWVIb3VyLnJhbmdlO1xuXG5leHBvcnQgY29uc3QgdXRjSG91ciA9IHRpbWVJbnRlcnZhbCgoZGF0ZSkgPT4ge1xuICBkYXRlLnNldFVUQ01pbnV0ZXMoMCwgMCwgMCk7XG59LCAoZGF0ZSwgc3RlcCkgPT4ge1xuICBkYXRlLnNldFRpbWUoK2RhdGUgKyBzdGVwICogZHVyYXRpb25Ib3VyKTtcbn0sIChzdGFydCwgZW5kKSA9PiB7XG4gIHJldHVybiAoZW5kIC0gc3RhcnQpIC8gZHVyYXRpb25Ib3VyO1xufSwgKGRhdGUpID0+IHtcbiAgcmV0dXJuIGRhdGUuZ2V0VVRDSG91cnMoKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgdXRjSG91cnMgPSB1dGNIb3VyLnJhbmdlO1xuIiwKICAgICJpbXBvcnQge3RpbWVJbnRlcnZhbH0gZnJvbSBcIi4vaW50ZXJ2YWwuanNcIjtcbmltcG9ydCB7ZHVyYXRpb25EYXksIGR1cmF0aW9uTWludXRlfSBmcm9tIFwiLi9kdXJhdGlvbi5qc1wiO1xuXG5leHBvcnQgY29uc3QgdGltZURheSA9IHRpbWVJbnRlcnZhbChcbiAgZGF0ZSA9PiBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApLFxuICAoZGF0ZSwgc3RlcCkgPT4gZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgc3RlcCksXG4gIChzdGFydCwgZW5kKSA9PiAoZW5kIC0gc3RhcnQgLSAoZW5kLmdldFRpbWV6b25lT2Zmc2V0KCkgLSBzdGFydC5nZXRUaW1lem9uZU9mZnNldCgpKSAqIGR1cmF0aW9uTWludXRlKSAvIGR1cmF0aW9uRGF5LFxuICBkYXRlID0+IGRhdGUuZ2V0RGF0ZSgpIC0gMVxuKTtcblxuZXhwb3J0IGNvbnN0IHRpbWVEYXlzID0gdGltZURheS5yYW5nZTtcblxuZXhwb3J0IGNvbnN0IHV0Y0RheSA9IHRpbWVJbnRlcnZhbCgoZGF0ZSkgPT4ge1xuICBkYXRlLnNldFVUQ0hvdXJzKDAsIDAsIDAsIDApO1xufSwgKGRhdGUsIHN0ZXApID0+IHtcbiAgZGF0ZS5zZXRVVENEYXRlKGRhdGUuZ2V0VVRDRGF0ZSgpICsgc3RlcCk7XG59LCAoc3RhcnQsIGVuZCkgPT4ge1xuICByZXR1cm4gKGVuZCAtIHN0YXJ0KSAvIGR1cmF0aW9uRGF5O1xufSwgKGRhdGUpID0+IHtcbiAgcmV0dXJuIGRhdGUuZ2V0VVRDRGF0ZSgpIC0gMTtcbn0pO1xuXG5leHBvcnQgY29uc3QgdXRjRGF5cyA9IHV0Y0RheS5yYW5nZTtcblxuZXhwb3J0IGNvbnN0IHVuaXhEYXkgPSB0aW1lSW50ZXJ2YWwoKGRhdGUpID0+IHtcbiAgZGF0ZS5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbn0sIChkYXRlLCBzdGVwKSA9PiB7XG4gIGRhdGUuc2V0VVRDRGF0ZShkYXRlLmdldFVUQ0RhdGUoKSArIHN0ZXApO1xufSwgKHN0YXJ0LCBlbmQpID0+IHtcbiAgcmV0dXJuIChlbmQgLSBzdGFydCkgLyBkdXJhdGlvbkRheTtcbn0sIChkYXRlKSA9PiB7XG4gIHJldHVybiBNYXRoLmZsb29yKGRhdGUgLyBkdXJhdGlvbkRheSk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHVuaXhEYXlzID0gdW5peERheS5yYW5nZTtcbiIsCiAgICAiaW1wb3J0IHt0aW1lSW50ZXJ2YWx9IGZyb20gXCIuL2ludGVydmFsLmpzXCI7XG5pbXBvcnQge2R1cmF0aW9uTWludXRlLCBkdXJhdGlvbldlZWt9IGZyb20gXCIuL2R1cmF0aW9uLmpzXCI7XG5cbmZ1bmN0aW9uIHRpbWVXZWVrZGF5KGkpIHtcbiAgcmV0dXJuIHRpbWVJbnRlcnZhbCgoZGF0ZSkgPT4ge1xuICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSAtIChkYXRlLmdldERheSgpICsgNyAtIGkpICUgNyk7XG4gICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgfSwgKGRhdGUsIHN0ZXApID0+IHtcbiAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyBzdGVwICogNyk7XG4gIH0sIChzdGFydCwgZW5kKSA9PiB7XG4gICAgcmV0dXJuIChlbmQgLSBzdGFydCAtIChlbmQuZ2V0VGltZXpvbmVPZmZzZXQoKSAtIHN0YXJ0LmdldFRpbWV6b25lT2Zmc2V0KCkpICogZHVyYXRpb25NaW51dGUpIC8gZHVyYXRpb25XZWVrO1xuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IHRpbWVTdW5kYXkgPSB0aW1lV2Vla2RheSgwKTtcbmV4cG9ydCBjb25zdCB0aW1lTW9uZGF5ID0gdGltZVdlZWtkYXkoMSk7XG5leHBvcnQgY29uc3QgdGltZVR1ZXNkYXkgPSB0aW1lV2Vla2RheSgyKTtcbmV4cG9ydCBjb25zdCB0aW1lV2VkbmVzZGF5ID0gdGltZVdlZWtkYXkoMyk7XG5leHBvcnQgY29uc3QgdGltZVRodXJzZGF5ID0gdGltZVdlZWtkYXkoNCk7XG5leHBvcnQgY29uc3QgdGltZUZyaWRheSA9IHRpbWVXZWVrZGF5KDUpO1xuZXhwb3J0IGNvbnN0IHRpbWVTYXR1cmRheSA9IHRpbWVXZWVrZGF5KDYpO1xuXG5leHBvcnQgY29uc3QgdGltZVN1bmRheXMgPSB0aW1lU3VuZGF5LnJhbmdlO1xuZXhwb3J0IGNvbnN0IHRpbWVNb25kYXlzID0gdGltZU1vbmRheS5yYW5nZTtcbmV4cG9ydCBjb25zdCB0aW1lVHVlc2RheXMgPSB0aW1lVHVlc2RheS5yYW5nZTtcbmV4cG9ydCBjb25zdCB0aW1lV2VkbmVzZGF5cyA9IHRpbWVXZWRuZXNkYXkucmFuZ2U7XG5leHBvcnQgY29uc3QgdGltZVRodXJzZGF5cyA9IHRpbWVUaHVyc2RheS5yYW5nZTtcbmV4cG9ydCBjb25zdCB0aW1lRnJpZGF5cyA9IHRpbWVGcmlkYXkucmFuZ2U7XG5leHBvcnQgY29uc3QgdGltZVNhdHVyZGF5cyA9IHRpbWVTYXR1cmRheS5yYW5nZTtcblxuZnVuY3Rpb24gdXRjV2Vla2RheShpKSB7XG4gIHJldHVybiB0aW1lSW50ZXJ2YWwoKGRhdGUpID0+IHtcbiAgICBkYXRlLnNldFVUQ0RhdGUoZGF0ZS5nZXRVVENEYXRlKCkgLSAoZGF0ZS5nZXRVVENEYXkoKSArIDcgLSBpKSAlIDcpO1xuICAgIGRhdGUuc2V0VVRDSG91cnMoMCwgMCwgMCwgMCk7XG4gIH0sIChkYXRlLCBzdGVwKSA9PiB7XG4gICAgZGF0ZS5zZXRVVENEYXRlKGRhdGUuZ2V0VVRDRGF0ZSgpICsgc3RlcCAqIDcpO1xuICB9LCAoc3RhcnQsIGVuZCkgPT4ge1xuICAgIHJldHVybiAoZW5kIC0gc3RhcnQpIC8gZHVyYXRpb25XZWVrO1xuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IHV0Y1N1bmRheSA9IHV0Y1dlZWtkYXkoMCk7XG5leHBvcnQgY29uc3QgdXRjTW9uZGF5ID0gdXRjV2Vla2RheSgxKTtcbmV4cG9ydCBjb25zdCB1dGNUdWVzZGF5ID0gdXRjV2Vla2RheSgyKTtcbmV4cG9ydCBjb25zdCB1dGNXZWRuZXNkYXkgPSB1dGNXZWVrZGF5KDMpO1xuZXhwb3J0IGNvbnN0IHV0Y1RodXJzZGF5ID0gdXRjV2Vla2RheSg0KTtcbmV4cG9ydCBjb25zdCB1dGNGcmlkYXkgPSB1dGNXZWVrZGF5KDUpO1xuZXhwb3J0IGNvbnN0IHV0Y1NhdHVyZGF5ID0gdXRjV2Vla2RheSg2KTtcblxuZXhwb3J0IGNvbnN0IHV0Y1N1bmRheXMgPSB1dGNTdW5kYXkucmFuZ2U7XG5leHBvcnQgY29uc3QgdXRjTW9uZGF5cyA9IHV0Y01vbmRheS5yYW5nZTtcbmV4cG9ydCBjb25zdCB1dGNUdWVzZGF5cyA9IHV0Y1R1ZXNkYXkucmFuZ2U7XG5leHBvcnQgY29uc3QgdXRjV2VkbmVzZGF5cyA9IHV0Y1dlZG5lc2RheS5yYW5nZTtcbmV4cG9ydCBjb25zdCB1dGNUaHVyc2RheXMgPSB1dGNUaHVyc2RheS5yYW5nZTtcbmV4cG9ydCBjb25zdCB1dGNGcmlkYXlzID0gdXRjRnJpZGF5LnJhbmdlO1xuZXhwb3J0IGNvbnN0IHV0Y1NhdHVyZGF5cyA9IHV0Y1NhdHVyZGF5LnJhbmdlO1xuIiwKICAgICJpbXBvcnQge3RpbWVJbnRlcnZhbH0gZnJvbSBcIi4vaW50ZXJ2YWwuanNcIjtcblxuZXhwb3J0IGNvbnN0IHRpbWVNb250aCA9IHRpbWVJbnRlcnZhbCgoZGF0ZSkgPT4ge1xuICBkYXRlLnNldERhdGUoMSk7XG4gIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG59LCAoZGF0ZSwgc3RlcCkgPT4ge1xuICBkYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIHN0ZXApO1xufSwgKHN0YXJ0LCBlbmQpID0+IHtcbiAgcmV0dXJuIGVuZC5nZXRNb250aCgpIC0gc3RhcnQuZ2V0TW9udGgoKSArIChlbmQuZ2V0RnVsbFllYXIoKSAtIHN0YXJ0LmdldEZ1bGxZZWFyKCkpICogMTI7XG59LCAoZGF0ZSkgPT4ge1xuICByZXR1cm4gZGF0ZS5nZXRNb250aCgpO1xufSk7XG5cbmV4cG9ydCBjb25zdCB0aW1lTW9udGhzID0gdGltZU1vbnRoLnJhbmdlO1xuXG5leHBvcnQgY29uc3QgdXRjTW9udGggPSB0aW1lSW50ZXJ2YWwoKGRhdGUpID0+IHtcbiAgZGF0ZS5zZXRVVENEYXRlKDEpO1xuICBkYXRlLnNldFVUQ0hvdXJzKDAsIDAsIDAsIDApO1xufSwgKGRhdGUsIHN0ZXApID0+IHtcbiAgZGF0ZS5zZXRVVENNb250aChkYXRlLmdldFVUQ01vbnRoKCkgKyBzdGVwKTtcbn0sIChzdGFydCwgZW5kKSA9PiB7XG4gIHJldHVybiBlbmQuZ2V0VVRDTW9udGgoKSAtIHN0YXJ0LmdldFVUQ01vbnRoKCkgKyAoZW5kLmdldFVUQ0Z1bGxZZWFyKCkgLSBzdGFydC5nZXRVVENGdWxsWWVhcigpKSAqIDEyO1xufSwgKGRhdGUpID0+IHtcbiAgcmV0dXJuIGRhdGUuZ2V0VVRDTW9udGgoKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgdXRjTW9udGhzID0gdXRjTW9udGgucmFuZ2U7XG4iLAogICAgImltcG9ydCB7dGltZUludGVydmFsfSBmcm9tIFwiLi9pbnRlcnZhbC5qc1wiO1xuXG5leHBvcnQgY29uc3QgdGltZVllYXIgPSB0aW1lSW50ZXJ2YWwoKGRhdGUpID0+IHtcbiAgZGF0ZS5zZXRNb250aCgwLCAxKTtcbiAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbn0sIChkYXRlLCBzdGVwKSA9PiB7XG4gIGRhdGUuc2V0RnVsbFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpICsgc3RlcCk7XG59LCAoc3RhcnQsIGVuZCkgPT4ge1xuICByZXR1cm4gZW5kLmdldEZ1bGxZZWFyKCkgLSBzdGFydC5nZXRGdWxsWWVhcigpO1xufSwgKGRhdGUpID0+IHtcbiAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbn0pO1xuXG4vLyBBbiBvcHRpbWl6ZWQgaW1wbGVtZW50YXRpb24gZm9yIHRoaXMgc2ltcGxlIGNhc2UuXG50aW1lWWVhci5ldmVyeSA9IChrKSA9PiB7XG4gIHJldHVybiAhaXNGaW5pdGUoayA9IE1hdGguZmxvb3IoaykpIHx8ICEoayA+IDApID8gbnVsbCA6IHRpbWVJbnRlcnZhbCgoZGF0ZSkgPT4ge1xuICAgIGRhdGUuc2V0RnVsbFllYXIoTWF0aC5mbG9vcihkYXRlLmdldEZ1bGxZZWFyKCkgLyBrKSAqIGspO1xuICAgIGRhdGUuc2V0TW9udGgoMCwgMSk7XG4gICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgfSwgKGRhdGUsIHN0ZXApID0+IHtcbiAgICBkYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSArIHN0ZXAgKiBrKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdGltZVllYXJzID0gdGltZVllYXIucmFuZ2U7XG5cbmV4cG9ydCBjb25zdCB1dGNZZWFyID0gdGltZUludGVydmFsKChkYXRlKSA9PiB7XG4gIGRhdGUuc2V0VVRDTW9udGgoMCwgMSk7XG4gIGRhdGUuc2V0VVRDSG91cnMoMCwgMCwgMCwgMCk7XG59LCAoZGF0ZSwgc3RlcCkgPT4ge1xuICBkYXRlLnNldFVUQ0Z1bGxZZWFyKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSArIHN0ZXApO1xufSwgKHN0YXJ0LCBlbmQpID0+IHtcbiAgcmV0dXJuIGVuZC5nZXRVVENGdWxsWWVhcigpIC0gc3RhcnQuZ2V0VVRDRnVsbFllYXIoKTtcbn0sIChkYXRlKSA9PiB7XG4gIHJldHVybiBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XG59KTtcblxuLy8gQW4gb3B0aW1pemVkIGltcGxlbWVudGF0aW9uIGZvciB0aGlzIHNpbXBsZSBjYXNlLlxudXRjWWVhci5ldmVyeSA9IChrKSA9PiB7XG4gIHJldHVybiAhaXNGaW5pdGUoayA9IE1hdGguZmxvb3IoaykpIHx8ICEoayA+IDApID8gbnVsbCA6IHRpbWVJbnRlcnZhbCgoZGF0ZSkgPT4ge1xuICAgIGRhdGUuc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcihkYXRlLmdldFVUQ0Z1bGxZZWFyKCkgLyBrKSAqIGspO1xuICAgIGRhdGUuc2V0VVRDTW9udGgoMCwgMSk7XG4gICAgZGF0ZS5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgfSwgKGRhdGUsIHN0ZXApID0+IHtcbiAgICBkYXRlLnNldFVUQ0Z1bGxZZWFyKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSArIHN0ZXAgKiBrKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXRjWWVhcnMgPSB1dGNZZWFyLnJhbmdlO1xuIiwKICAgICJpbXBvcnQge2Jpc2VjdG9yLCB0aWNrU3RlcH0gZnJvbSBcImQzLWFycmF5XCI7XG5pbXBvcnQge2R1cmF0aW9uRGF5LCBkdXJhdGlvbkhvdXIsIGR1cmF0aW9uTWludXRlLCBkdXJhdGlvbk1vbnRoLCBkdXJhdGlvblNlY29uZCwgZHVyYXRpb25XZWVrLCBkdXJhdGlvblllYXJ9IGZyb20gXCIuL2R1cmF0aW9uLmpzXCI7XG5pbXBvcnQge21pbGxpc2Vjb25kfSBmcm9tIFwiLi9taWxsaXNlY29uZC5qc1wiO1xuaW1wb3J0IHtzZWNvbmR9IGZyb20gXCIuL3NlY29uZC5qc1wiO1xuaW1wb3J0IHt0aW1lTWludXRlLCB1dGNNaW51dGV9IGZyb20gXCIuL21pbnV0ZS5qc1wiO1xuaW1wb3J0IHt0aW1lSG91ciwgdXRjSG91cn0gZnJvbSBcIi4vaG91ci5qc1wiO1xuaW1wb3J0IHt0aW1lRGF5LCB1bml4RGF5fSBmcm9tIFwiLi9kYXkuanNcIjtcbmltcG9ydCB7dGltZVN1bmRheSwgdXRjU3VuZGF5fSBmcm9tIFwiLi93ZWVrLmpzXCI7XG5pbXBvcnQge3RpbWVNb250aCwgdXRjTW9udGh9IGZyb20gXCIuL21vbnRoLmpzXCI7XG5pbXBvcnQge3RpbWVZZWFyLCB1dGNZZWFyfSBmcm9tIFwiLi95ZWFyLmpzXCI7XG5cbmZ1bmN0aW9uIHRpY2tlcih5ZWFyLCBtb250aCwgd2VlaywgZGF5LCBob3VyLCBtaW51dGUpIHtcblxuICBjb25zdCB0aWNrSW50ZXJ2YWxzID0gW1xuICAgIFtzZWNvbmQsICAxLCAgICAgIGR1cmF0aW9uU2Vjb25kXSxcbiAgICBbc2Vjb25kLCAgNSwgIDUgKiBkdXJhdGlvblNlY29uZF0sXG4gICAgW3NlY29uZCwgMTUsIDE1ICogZHVyYXRpb25TZWNvbmRdLFxuICAgIFtzZWNvbmQsIDMwLCAzMCAqIGR1cmF0aW9uU2Vjb25kXSxcbiAgICBbbWludXRlLCAgMSwgICAgICBkdXJhdGlvbk1pbnV0ZV0sXG4gICAgW21pbnV0ZSwgIDUsICA1ICogZHVyYXRpb25NaW51dGVdLFxuICAgIFttaW51dGUsIDE1LCAxNSAqIGR1cmF0aW9uTWludXRlXSxcbiAgICBbbWludXRlLCAzMCwgMzAgKiBkdXJhdGlvbk1pbnV0ZV0sXG4gICAgWyAgaG91ciwgIDEsICAgICAgZHVyYXRpb25Ib3VyICBdLFxuICAgIFsgIGhvdXIsICAzLCAgMyAqIGR1cmF0aW9uSG91ciAgXSxcbiAgICBbICBob3VyLCAgNiwgIDYgKiBkdXJhdGlvbkhvdXIgIF0sXG4gICAgWyAgaG91ciwgMTIsIDEyICogZHVyYXRpb25Ib3VyICBdLFxuICAgIFsgICBkYXksICAxLCAgICAgIGR1cmF0aW9uRGF5ICAgXSxcbiAgICBbICAgZGF5LCAgMiwgIDIgKiBkdXJhdGlvbkRheSAgIF0sXG4gICAgWyAgd2VlaywgIDEsICAgICAgZHVyYXRpb25XZWVrICBdLFxuICAgIFsgbW9udGgsICAxLCAgICAgIGR1cmF0aW9uTW9udGggXSxcbiAgICBbIG1vbnRoLCAgMywgIDMgKiBkdXJhdGlvbk1vbnRoIF0sXG4gICAgWyAgeWVhciwgIDEsICAgICAgZHVyYXRpb25ZZWFyICBdXG4gIF07XG5cbiAgZnVuY3Rpb24gdGlja3Moc3RhcnQsIHN0b3AsIGNvdW50KSB7XG4gICAgY29uc3QgcmV2ZXJzZSA9IHN0b3AgPCBzdGFydDtcbiAgICBpZiAocmV2ZXJzZSkgW3N0YXJ0LCBzdG9wXSA9IFtzdG9wLCBzdGFydF07XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBjb3VudCAmJiB0eXBlb2YgY291bnQucmFuZ2UgPT09IFwiZnVuY3Rpb25cIiA/IGNvdW50IDogdGlja0ludGVydmFsKHN0YXJ0LCBzdG9wLCBjb3VudCk7XG4gICAgY29uc3QgdGlja3MgPSBpbnRlcnZhbCA/IGludGVydmFsLnJhbmdlKHN0YXJ0LCArc3RvcCArIDEpIDogW107IC8vIGluY2x1c2l2ZSBzdG9wXG4gICAgcmV0dXJuIHJldmVyc2UgPyB0aWNrcy5yZXZlcnNlKCkgOiB0aWNrcztcbiAgfVxuXG4gIGZ1bmN0aW9uIHRpY2tJbnRlcnZhbChzdGFydCwgc3RvcCwgY291bnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBNYXRoLmFicyhzdG9wIC0gc3RhcnQpIC8gY291bnQ7XG4gICAgY29uc3QgaSA9IGJpc2VjdG9yKChbLCwgc3RlcF0pID0+IHN0ZXApLnJpZ2h0KHRpY2tJbnRlcnZhbHMsIHRhcmdldCk7XG4gICAgaWYgKGkgPT09IHRpY2tJbnRlcnZhbHMubGVuZ3RoKSByZXR1cm4geWVhci5ldmVyeSh0aWNrU3RlcChzdGFydCAvIGR1cmF0aW9uWWVhciwgc3RvcCAvIGR1cmF0aW9uWWVhciwgY291bnQpKTtcbiAgICBpZiAoaSA9PT0gMCkgcmV0dXJuIG1pbGxpc2Vjb25kLmV2ZXJ5KE1hdGgubWF4KHRpY2tTdGVwKHN0YXJ0LCBzdG9wLCBjb3VudCksIDEpKTtcbiAgICBjb25zdCBbdCwgc3RlcF0gPSB0aWNrSW50ZXJ2YWxzW3RhcmdldCAvIHRpY2tJbnRlcnZhbHNbaSAtIDFdWzJdIDwgdGlja0ludGVydmFsc1tpXVsyXSAvIHRhcmdldCA/IGkgLSAxIDogaV07XG4gICAgcmV0dXJuIHQuZXZlcnkoc3RlcCk7XG4gIH1cblxuICByZXR1cm4gW3RpY2tzLCB0aWNrSW50ZXJ2YWxdO1xufVxuXG5jb25zdCBbdXRjVGlja3MsIHV0Y1RpY2tJbnRlcnZhbF0gPSB0aWNrZXIodXRjWWVhciwgdXRjTW9udGgsIHV0Y1N1bmRheSwgdW5peERheSwgdXRjSG91ciwgdXRjTWludXRlKTtcbmNvbnN0IFt0aW1lVGlja3MsIHRpbWVUaWNrSW50ZXJ2YWxdID0gdGlja2VyKHRpbWVZZWFyLCB0aW1lTW9udGgsIHRpbWVTdW5kYXksIHRpbWVEYXksIHRpbWVIb3VyLCB0aW1lTWludXRlKTtcblxuZXhwb3J0IHt1dGNUaWNrcywgdXRjVGlja0ludGVydmFsLCB0aW1lVGlja3MsIHRpbWVUaWNrSW50ZXJ2YWx9O1xuIiwKICAgICJleHBvcnQge1xuICB0aW1lSW50ZXJ2YWxcbn0gZnJvbSBcIi4vaW50ZXJ2YWwuanNcIjtcblxuZXhwb3J0IHtcbiAgbWlsbGlzZWNvbmQgYXMgdXRjTWlsbGlzZWNvbmQsXG4gIG1pbGxpc2Vjb25kcyBhcyB1dGNNaWxsaXNlY29uZHMsXG4gIG1pbGxpc2Vjb25kIGFzIHRpbWVNaWxsaXNlY29uZCxcbiAgbWlsbGlzZWNvbmRzIGFzIHRpbWVNaWxsaXNlY29uZHNcbn0gZnJvbSBcIi4vbWlsbGlzZWNvbmQuanNcIjtcblxuZXhwb3J0IHtcbiAgc2Vjb25kIGFzIHV0Y1NlY29uZCxcbiAgc2Vjb25kcyBhcyB1dGNTZWNvbmRzLFxuICBzZWNvbmQgYXMgdGltZVNlY29uZCxcbiAgc2Vjb25kcyBhcyB0aW1lU2Vjb25kc1xufSBmcm9tIFwiLi9zZWNvbmQuanNcIjtcblxuZXhwb3J0IHtcbiAgdGltZU1pbnV0ZSxcbiAgdGltZU1pbnV0ZXMsXG4gIHV0Y01pbnV0ZSxcbiAgdXRjTWludXRlc1xufSBmcm9tIFwiLi9taW51dGUuanNcIjtcblxuZXhwb3J0IHtcbiAgdGltZUhvdXIsXG4gIHRpbWVIb3VycyxcbiAgdXRjSG91cixcbiAgdXRjSG91cnNcbn0gZnJvbSBcIi4vaG91ci5qc1wiO1xuXG5leHBvcnQge1xuICB0aW1lRGF5LFxuICB0aW1lRGF5cyxcbiAgdXRjRGF5LFxuICB1dGNEYXlzLFxuICB1bml4RGF5LFxuICB1bml4RGF5c1xufSBmcm9tIFwiLi9kYXkuanNcIjtcblxuZXhwb3J0IHtcbiAgdGltZVN1bmRheSBhcyB0aW1lV2VlayxcbiAgdGltZVN1bmRheXMgYXMgdGltZVdlZWtzLFxuICB0aW1lU3VuZGF5LFxuICB0aW1lU3VuZGF5cyxcbiAgdGltZU1vbmRheSxcbiAgdGltZU1vbmRheXMsXG4gIHRpbWVUdWVzZGF5LFxuICB0aW1lVHVlc2RheXMsXG4gIHRpbWVXZWRuZXNkYXksXG4gIHRpbWVXZWRuZXNkYXlzLFxuICB0aW1lVGh1cnNkYXksXG4gIHRpbWVUaHVyc2RheXMsXG4gIHRpbWVGcmlkYXksXG4gIHRpbWVGcmlkYXlzLFxuICB0aW1lU2F0dXJkYXksXG4gIHRpbWVTYXR1cmRheXMsXG4gIHV0Y1N1bmRheSBhcyB1dGNXZWVrLFxuICB1dGNTdW5kYXlzIGFzIHV0Y1dlZWtzLFxuICB1dGNTdW5kYXksXG4gIHV0Y1N1bmRheXMsXG4gIHV0Y01vbmRheSxcbiAgdXRjTW9uZGF5cyxcbiAgdXRjVHVlc2RheSxcbiAgdXRjVHVlc2RheXMsXG4gIHV0Y1dlZG5lc2RheSxcbiAgdXRjV2VkbmVzZGF5cyxcbiAgdXRjVGh1cnNkYXksXG4gIHV0Y1RodXJzZGF5cyxcbiAgdXRjRnJpZGF5LFxuICB1dGNGcmlkYXlzLFxuICB1dGNTYXR1cmRheSxcbiAgdXRjU2F0dXJkYXlzXG59IGZyb20gXCIuL3dlZWsuanNcIjtcblxuZXhwb3J0IHtcbiAgdGltZU1vbnRoLFxuICB0aW1lTW9udGhzLFxuICB1dGNNb250aCxcbiAgdXRjTW9udGhzXG59IGZyb20gXCIuL21vbnRoLmpzXCI7XG5cbmV4cG9ydCB7XG4gIHRpbWVZZWFyLFxuICB0aW1lWWVhcnMsXG4gIHV0Y1llYXIsXG4gIHV0Y1llYXJzXG59IGZyb20gXCIuL3llYXIuanNcIjtcblxuZXhwb3J0IHtcbiAgdXRjVGlja3MsXG4gIHV0Y1RpY2tJbnRlcnZhbCxcbiAgdGltZVRpY2tzLFxuICB0aW1lVGlja0ludGVydmFsXG59IGZyb20gXCIuL3RpY2tzLmpzXCI7XG4iLAogICAgImltcG9ydCB7XG4gIHRpbWVEYXksXG4gIHRpbWVTdW5kYXksXG4gIHRpbWVNb25kYXksXG4gIHRpbWVUaHVyc2RheSxcbiAgdGltZVllYXIsXG4gIHV0Y0RheSxcbiAgdXRjU3VuZGF5LFxuICB1dGNNb25kYXksXG4gIHV0Y1RodXJzZGF5LFxuICB1dGNZZWFyXG59IGZyb20gXCJkMy10aW1lXCI7XG5cbmZ1bmN0aW9uIGxvY2FsRGF0ZShkKSB7XG4gIGlmICgwIDw9IGQueSAmJiBkLnkgPCAxMDApIHtcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKC0xLCBkLm0sIGQuZCwgZC5ILCBkLk0sIGQuUywgZC5MKTtcbiAgICBkYXRlLnNldEZ1bGxZZWFyKGQueSk7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbiAgcmV0dXJuIG5ldyBEYXRlKGQueSwgZC5tLCBkLmQsIGQuSCwgZC5NLCBkLlMsIGQuTCk7XG59XG5cbmZ1bmN0aW9uIHV0Y0RhdGUoZCkge1xuICBpZiAoMCA8PSBkLnkgJiYgZC55IDwgMTAwKSB7XG4gICAgdmFyIGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQygtMSwgZC5tLCBkLmQsIGQuSCwgZC5NLCBkLlMsIGQuTCkpO1xuICAgIGRhdGUuc2V0VVRDRnVsbFllYXIoZC55KTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoZC55LCBkLm0sIGQuZCwgZC5ILCBkLk0sIGQuUywgZC5MKSk7XG59XG5cbmZ1bmN0aW9uIG5ld0RhdGUoeSwgbSwgZCkge1xuICByZXR1cm4ge3k6IHksIG06IG0sIGQ6IGQsIEg6IDAsIE06IDAsIFM6IDAsIEw6IDB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmb3JtYXRMb2NhbGUobG9jYWxlKSB7XG4gIHZhciBsb2NhbGVfZGF0ZVRpbWUgPSBsb2NhbGUuZGF0ZVRpbWUsXG4gICAgICBsb2NhbGVfZGF0ZSA9IGxvY2FsZS5kYXRlLFxuICAgICAgbG9jYWxlX3RpbWUgPSBsb2NhbGUudGltZSxcbiAgICAgIGxvY2FsZV9wZXJpb2RzID0gbG9jYWxlLnBlcmlvZHMsXG4gICAgICBsb2NhbGVfd2Vla2RheXMgPSBsb2NhbGUuZGF5cyxcbiAgICAgIGxvY2FsZV9zaG9ydFdlZWtkYXlzID0gbG9jYWxlLnNob3J0RGF5cyxcbiAgICAgIGxvY2FsZV9tb250aHMgPSBsb2NhbGUubW9udGhzLFxuICAgICAgbG9jYWxlX3Nob3J0TW9udGhzID0gbG9jYWxlLnNob3J0TW9udGhzO1xuXG4gIHZhciBwZXJpb2RSZSA9IGZvcm1hdFJlKGxvY2FsZV9wZXJpb2RzKSxcbiAgICAgIHBlcmlvZExvb2t1cCA9IGZvcm1hdExvb2t1cChsb2NhbGVfcGVyaW9kcyksXG4gICAgICB3ZWVrZGF5UmUgPSBmb3JtYXRSZShsb2NhbGVfd2Vla2RheXMpLFxuICAgICAgd2Vla2RheUxvb2t1cCA9IGZvcm1hdExvb2t1cChsb2NhbGVfd2Vla2RheXMpLFxuICAgICAgc2hvcnRXZWVrZGF5UmUgPSBmb3JtYXRSZShsb2NhbGVfc2hvcnRXZWVrZGF5cyksXG4gICAgICBzaG9ydFdlZWtkYXlMb29rdXAgPSBmb3JtYXRMb29rdXAobG9jYWxlX3Nob3J0V2Vla2RheXMpLFxuICAgICAgbW9udGhSZSA9IGZvcm1hdFJlKGxvY2FsZV9tb250aHMpLFxuICAgICAgbW9udGhMb29rdXAgPSBmb3JtYXRMb29rdXAobG9jYWxlX21vbnRocyksXG4gICAgICBzaG9ydE1vbnRoUmUgPSBmb3JtYXRSZShsb2NhbGVfc2hvcnRNb250aHMpLFxuICAgICAgc2hvcnRNb250aExvb2t1cCA9IGZvcm1hdExvb2t1cChsb2NhbGVfc2hvcnRNb250aHMpO1xuXG4gIHZhciBmb3JtYXRzID0ge1xuICAgIFwiYVwiOiBmb3JtYXRTaG9ydFdlZWtkYXksXG4gICAgXCJBXCI6IGZvcm1hdFdlZWtkYXksXG4gICAgXCJiXCI6IGZvcm1hdFNob3J0TW9udGgsXG4gICAgXCJCXCI6IGZvcm1hdE1vbnRoLFxuICAgIFwiY1wiOiBudWxsLFxuICAgIFwiZFwiOiBmb3JtYXREYXlPZk1vbnRoLFxuICAgIFwiZVwiOiBmb3JtYXREYXlPZk1vbnRoLFxuICAgIFwiZlwiOiBmb3JtYXRNaWNyb3NlY29uZHMsXG4gICAgXCJnXCI6IGZvcm1hdFllYXJJU08sXG4gICAgXCJHXCI6IGZvcm1hdEZ1bGxZZWFySVNPLFxuICAgIFwiSFwiOiBmb3JtYXRIb3VyMjQsXG4gICAgXCJJXCI6IGZvcm1hdEhvdXIxMixcbiAgICBcImpcIjogZm9ybWF0RGF5T2ZZZWFyLFxuICAgIFwiTFwiOiBmb3JtYXRNaWxsaXNlY29uZHMsXG4gICAgXCJtXCI6IGZvcm1hdE1vbnRoTnVtYmVyLFxuICAgIFwiTVwiOiBmb3JtYXRNaW51dGVzLFxuICAgIFwicFwiOiBmb3JtYXRQZXJpb2QsXG4gICAgXCJxXCI6IGZvcm1hdFF1YXJ0ZXIsXG4gICAgXCJRXCI6IGZvcm1hdFVuaXhUaW1lc3RhbXAsXG4gICAgXCJzXCI6IGZvcm1hdFVuaXhUaW1lc3RhbXBTZWNvbmRzLFxuICAgIFwiU1wiOiBmb3JtYXRTZWNvbmRzLFxuICAgIFwidVwiOiBmb3JtYXRXZWVrZGF5TnVtYmVyTW9uZGF5LFxuICAgIFwiVVwiOiBmb3JtYXRXZWVrTnVtYmVyU3VuZGF5LFxuICAgIFwiVlwiOiBmb3JtYXRXZWVrTnVtYmVySVNPLFxuICAgIFwid1wiOiBmb3JtYXRXZWVrZGF5TnVtYmVyU3VuZGF5LFxuICAgIFwiV1wiOiBmb3JtYXRXZWVrTnVtYmVyTW9uZGF5LFxuICAgIFwieFwiOiBudWxsLFxuICAgIFwiWFwiOiBudWxsLFxuICAgIFwieVwiOiBmb3JtYXRZZWFyLFxuICAgIFwiWVwiOiBmb3JtYXRGdWxsWWVhcixcbiAgICBcIlpcIjogZm9ybWF0Wm9uZSxcbiAgICBcIiVcIjogZm9ybWF0TGl0ZXJhbFBlcmNlbnRcbiAgfTtcblxuICB2YXIgdXRjRm9ybWF0cyA9IHtcbiAgICBcImFcIjogZm9ybWF0VVRDU2hvcnRXZWVrZGF5LFxuICAgIFwiQVwiOiBmb3JtYXRVVENXZWVrZGF5LFxuICAgIFwiYlwiOiBmb3JtYXRVVENTaG9ydE1vbnRoLFxuICAgIFwiQlwiOiBmb3JtYXRVVENNb250aCxcbiAgICBcImNcIjogbnVsbCxcbiAgICBcImRcIjogZm9ybWF0VVRDRGF5T2ZNb250aCxcbiAgICBcImVcIjogZm9ybWF0VVRDRGF5T2ZNb250aCxcbiAgICBcImZcIjogZm9ybWF0VVRDTWljcm9zZWNvbmRzLFxuICAgIFwiZ1wiOiBmb3JtYXRVVENZZWFySVNPLFxuICAgIFwiR1wiOiBmb3JtYXRVVENGdWxsWWVhcklTTyxcbiAgICBcIkhcIjogZm9ybWF0VVRDSG91cjI0LFxuICAgIFwiSVwiOiBmb3JtYXRVVENIb3VyMTIsXG4gICAgXCJqXCI6IGZvcm1hdFVUQ0RheU9mWWVhcixcbiAgICBcIkxcIjogZm9ybWF0VVRDTWlsbGlzZWNvbmRzLFxuICAgIFwibVwiOiBmb3JtYXRVVENNb250aE51bWJlcixcbiAgICBcIk1cIjogZm9ybWF0VVRDTWludXRlcyxcbiAgICBcInBcIjogZm9ybWF0VVRDUGVyaW9kLFxuICAgIFwicVwiOiBmb3JtYXRVVENRdWFydGVyLFxuICAgIFwiUVwiOiBmb3JtYXRVbml4VGltZXN0YW1wLFxuICAgIFwic1wiOiBmb3JtYXRVbml4VGltZXN0YW1wU2Vjb25kcyxcbiAgICBcIlNcIjogZm9ybWF0VVRDU2Vjb25kcyxcbiAgICBcInVcIjogZm9ybWF0VVRDV2Vla2RheU51bWJlck1vbmRheSxcbiAgICBcIlVcIjogZm9ybWF0VVRDV2Vla051bWJlclN1bmRheSxcbiAgICBcIlZcIjogZm9ybWF0VVRDV2Vla051bWJlcklTTyxcbiAgICBcIndcIjogZm9ybWF0VVRDV2Vla2RheU51bWJlclN1bmRheSxcbiAgICBcIldcIjogZm9ybWF0VVRDV2Vla051bWJlck1vbmRheSxcbiAgICBcInhcIjogbnVsbCxcbiAgICBcIlhcIjogbnVsbCxcbiAgICBcInlcIjogZm9ybWF0VVRDWWVhcixcbiAgICBcIllcIjogZm9ybWF0VVRDRnVsbFllYXIsXG4gICAgXCJaXCI6IGZvcm1hdFVUQ1pvbmUsXG4gICAgXCIlXCI6IGZvcm1hdExpdGVyYWxQZXJjZW50XG4gIH07XG5cbiAgdmFyIHBhcnNlcyA9IHtcbiAgICBcImFcIjogcGFyc2VTaG9ydFdlZWtkYXksXG4gICAgXCJBXCI6IHBhcnNlV2Vla2RheSxcbiAgICBcImJcIjogcGFyc2VTaG9ydE1vbnRoLFxuICAgIFwiQlwiOiBwYXJzZU1vbnRoLFxuICAgIFwiY1wiOiBwYXJzZUxvY2FsZURhdGVUaW1lLFxuICAgIFwiZFwiOiBwYXJzZURheU9mTW9udGgsXG4gICAgXCJlXCI6IHBhcnNlRGF5T2ZNb250aCxcbiAgICBcImZcIjogcGFyc2VNaWNyb3NlY29uZHMsXG4gICAgXCJnXCI6IHBhcnNlWWVhcixcbiAgICBcIkdcIjogcGFyc2VGdWxsWWVhcixcbiAgICBcIkhcIjogcGFyc2VIb3VyMjQsXG4gICAgXCJJXCI6IHBhcnNlSG91cjI0LFxuICAgIFwialwiOiBwYXJzZURheU9mWWVhcixcbiAgICBcIkxcIjogcGFyc2VNaWxsaXNlY29uZHMsXG4gICAgXCJtXCI6IHBhcnNlTW9udGhOdW1iZXIsXG4gICAgXCJNXCI6IHBhcnNlTWludXRlcyxcbiAgICBcInBcIjogcGFyc2VQZXJpb2QsXG4gICAgXCJxXCI6IHBhcnNlUXVhcnRlcixcbiAgICBcIlFcIjogcGFyc2VVbml4VGltZXN0YW1wLFxuICAgIFwic1wiOiBwYXJzZVVuaXhUaW1lc3RhbXBTZWNvbmRzLFxuICAgIFwiU1wiOiBwYXJzZVNlY29uZHMsXG4gICAgXCJ1XCI6IHBhcnNlV2Vla2RheU51bWJlck1vbmRheSxcbiAgICBcIlVcIjogcGFyc2VXZWVrTnVtYmVyU3VuZGF5LFxuICAgIFwiVlwiOiBwYXJzZVdlZWtOdW1iZXJJU08sXG4gICAgXCJ3XCI6IHBhcnNlV2Vla2RheU51bWJlclN1bmRheSxcbiAgICBcIldcIjogcGFyc2VXZWVrTnVtYmVyTW9uZGF5LFxuICAgIFwieFwiOiBwYXJzZUxvY2FsZURhdGUsXG4gICAgXCJYXCI6IHBhcnNlTG9jYWxlVGltZSxcbiAgICBcInlcIjogcGFyc2VZZWFyLFxuICAgIFwiWVwiOiBwYXJzZUZ1bGxZZWFyLFxuICAgIFwiWlwiOiBwYXJzZVpvbmUsXG4gICAgXCIlXCI6IHBhcnNlTGl0ZXJhbFBlcmNlbnRcbiAgfTtcblxuICAvLyBUaGVzZSByZWN1cnNpdmUgZGlyZWN0aXZlIGRlZmluaXRpb25zIG11c3QgYmUgZGVmZXJyZWQuXG4gIGZvcm1hdHMueCA9IG5ld0Zvcm1hdChsb2NhbGVfZGF0ZSwgZm9ybWF0cyk7XG4gIGZvcm1hdHMuWCA9IG5ld0Zvcm1hdChsb2NhbGVfdGltZSwgZm9ybWF0cyk7XG4gIGZvcm1hdHMuYyA9IG5ld0Zvcm1hdChsb2NhbGVfZGF0ZVRpbWUsIGZvcm1hdHMpO1xuICB1dGNGb3JtYXRzLnggPSBuZXdGb3JtYXQobG9jYWxlX2RhdGUsIHV0Y0Zvcm1hdHMpO1xuICB1dGNGb3JtYXRzLlggPSBuZXdGb3JtYXQobG9jYWxlX3RpbWUsIHV0Y0Zvcm1hdHMpO1xuICB1dGNGb3JtYXRzLmMgPSBuZXdGb3JtYXQobG9jYWxlX2RhdGVUaW1lLCB1dGNGb3JtYXRzKTtcblxuICBmdW5jdGlvbiBuZXdGb3JtYXQoc3BlY2lmaWVyLCBmb3JtYXRzKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGRhdGUpIHtcbiAgICAgIHZhciBzdHJpbmcgPSBbXSxcbiAgICAgICAgICBpID0gLTEsXG4gICAgICAgICAgaiA9IDAsXG4gICAgICAgICAgbiA9IHNwZWNpZmllci5sZW5ndGgsXG4gICAgICAgICAgYyxcbiAgICAgICAgICBwYWQsXG4gICAgICAgICAgZm9ybWF0O1xuXG4gICAgICBpZiAoIShkYXRlIGluc3RhbmNlb2YgRGF0ZSkpIGRhdGUgPSBuZXcgRGF0ZSgrZGF0ZSk7XG5cbiAgICAgIHdoaWxlICgrK2kgPCBuKSB7XG4gICAgICAgIGlmIChzcGVjaWZpZXIuY2hhckNvZGVBdChpKSA9PT0gMzcpIHtcbiAgICAgICAgICBzdHJpbmcucHVzaChzcGVjaWZpZXIuc2xpY2UoaiwgaSkpO1xuICAgICAgICAgIGlmICgocGFkID0gcGFkc1tjID0gc3BlY2lmaWVyLmNoYXJBdCgrK2kpXSkgIT0gbnVsbCkgYyA9IHNwZWNpZmllci5jaGFyQXQoKytpKTtcbiAgICAgICAgICBlbHNlIHBhZCA9IGMgPT09IFwiZVwiID8gXCIgXCIgOiBcIjBcIjtcbiAgICAgICAgICBpZiAoZm9ybWF0ID0gZm9ybWF0c1tjXSkgYyA9IGZvcm1hdChkYXRlLCBwYWQpO1xuICAgICAgICAgIHN0cmluZy5wdXNoKGMpO1xuICAgICAgICAgIGogPSBpICsgMTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzdHJpbmcucHVzaChzcGVjaWZpZXIuc2xpY2UoaiwgaSkpO1xuICAgICAgcmV0dXJuIHN0cmluZy5qb2luKFwiXCIpO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBuZXdQYXJzZShzcGVjaWZpZXIsIFopIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICB2YXIgZCA9IG5ld0RhdGUoMTkwMCwgdW5kZWZpbmVkLCAxKSxcbiAgICAgICAgICBpID0gcGFyc2VTcGVjaWZpZXIoZCwgc3BlY2lmaWVyLCBzdHJpbmcgKz0gXCJcIiwgMCksXG4gICAgICAgICAgd2VlaywgZGF5O1xuICAgICAgaWYgKGkgIT0gc3RyaW5nLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIC8vIElmIGEgVU5JWCB0aW1lc3RhbXAgaXMgc3BlY2lmaWVkLCByZXR1cm4gaXQuXG4gICAgICBpZiAoXCJRXCIgaW4gZCkgcmV0dXJuIG5ldyBEYXRlKGQuUSk7XG4gICAgICBpZiAoXCJzXCIgaW4gZCkgcmV0dXJuIG5ldyBEYXRlKGQucyAqIDEwMDAgKyAoXCJMXCIgaW4gZCA/IGQuTCA6IDApKTtcblxuICAgICAgLy8gSWYgdGhpcyBpcyB1dGNQYXJzZSwgbmV2ZXIgdXNlIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAgICAgIGlmIChaICYmICEoXCJaXCIgaW4gZCkpIGQuWiA9IDA7XG5cbiAgICAgIC8vIFRoZSBhbS1wbSBmbGFnIGlzIDAgZm9yIEFNLCBhbmQgMSBmb3IgUE0uXG4gICAgICBpZiAoXCJwXCIgaW4gZCkgZC5IID0gZC5IICUgMTIgKyBkLnAgKiAxMjtcblxuICAgICAgLy8gSWYgdGhlIG1vbnRoIHdhcyBub3Qgc3BlY2lmaWVkLCBpbmhlcml0IGZyb20gdGhlIHF1YXJ0ZXIuXG4gICAgICBpZiAoZC5tID09PSB1bmRlZmluZWQpIGQubSA9IFwicVwiIGluIGQgPyBkLnEgOiAwO1xuXG4gICAgICAvLyBDb252ZXJ0IGRheS1vZi13ZWVrIGFuZCB3ZWVrLW9mLXllYXIgdG8gZGF5LW9mLXllYXIuXG4gICAgICBpZiAoXCJWXCIgaW4gZCkge1xuICAgICAgICBpZiAoZC5WIDwgMSB8fCBkLlYgPiA1MykgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmICghKFwid1wiIGluIGQpKSBkLncgPSAxO1xuICAgICAgICBpZiAoXCJaXCIgaW4gZCkge1xuICAgICAgICAgIHdlZWsgPSB1dGNEYXRlKG5ld0RhdGUoZC55LCAwLCAxKSksIGRheSA9IHdlZWsuZ2V0VVRDRGF5KCk7XG4gICAgICAgICAgd2VlayA9IGRheSA+IDQgfHwgZGF5ID09PSAwID8gdXRjTW9uZGF5LmNlaWwod2VlaykgOiB1dGNNb25kYXkod2Vlayk7XG4gICAgICAgICAgd2VlayA9IHV0Y0RheS5vZmZzZXQod2VlaywgKGQuViAtIDEpICogNyk7XG4gICAgICAgICAgZC55ID0gd2Vlay5nZXRVVENGdWxsWWVhcigpO1xuICAgICAgICAgIGQubSA9IHdlZWsuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgICBkLmQgPSB3ZWVrLmdldFVUQ0RhdGUoKSArIChkLncgKyA2KSAlIDc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2VlayA9IGxvY2FsRGF0ZShuZXdEYXRlKGQueSwgMCwgMSkpLCBkYXkgPSB3ZWVrLmdldERheSgpO1xuICAgICAgICAgIHdlZWsgPSBkYXkgPiA0IHx8IGRheSA9PT0gMCA/IHRpbWVNb25kYXkuY2VpbCh3ZWVrKSA6IHRpbWVNb25kYXkod2Vlayk7XG4gICAgICAgICAgd2VlayA9IHRpbWVEYXkub2Zmc2V0KHdlZWssIChkLlYgLSAxKSAqIDcpO1xuICAgICAgICAgIGQueSA9IHdlZWsuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgICBkLm0gPSB3ZWVrLmdldE1vbnRoKCk7XG4gICAgICAgICAgZC5kID0gd2Vlay5nZXREYXRlKCkgKyAoZC53ICsgNikgJSA3O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFwiV1wiIGluIGQgfHwgXCJVXCIgaW4gZCkge1xuICAgICAgICBpZiAoIShcIndcIiBpbiBkKSkgZC53ID0gXCJ1XCIgaW4gZCA/IGQudSAlIDcgOiBcIldcIiBpbiBkID8gMSA6IDA7XG4gICAgICAgIGRheSA9IFwiWlwiIGluIGQgPyB1dGNEYXRlKG5ld0RhdGUoZC55LCAwLCAxKSkuZ2V0VVRDRGF5KCkgOiBsb2NhbERhdGUobmV3RGF0ZShkLnksIDAsIDEpKS5nZXREYXkoKTtcbiAgICAgICAgZC5tID0gMDtcbiAgICAgICAgZC5kID0gXCJXXCIgaW4gZCA/IChkLncgKyA2KSAlIDcgKyBkLlcgKiA3IC0gKGRheSArIDUpICUgNyA6IGQudyArIGQuVSAqIDcgLSAoZGF5ICsgNikgJSA3O1xuICAgICAgfVxuXG4gICAgICAvLyBJZiBhIHRpbWUgem9uZSBpcyBzcGVjaWZpZWQsIGFsbCBmaWVsZHMgYXJlIGludGVycHJldGVkIGFzIFVUQyBhbmQgdGhlblxuICAgICAgLy8gb2Zmc2V0IGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZS5cbiAgICAgIGlmIChcIlpcIiBpbiBkKSB7XG4gICAgICAgIGQuSCArPSBkLlogLyAxMDAgfCAwO1xuICAgICAgICBkLk0gKz0gZC5aICUgMTAwO1xuICAgICAgICByZXR1cm4gdXRjRGF0ZShkKTtcbiAgICAgIH1cblxuICAgICAgLy8gT3RoZXJ3aXNlLCBhbGwgZmllbGRzIGFyZSBpbiBsb2NhbCB0aW1lLlxuICAgICAgcmV0dXJuIGxvY2FsRGF0ZShkKTtcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcGFyc2VTcGVjaWZpZXIoZCwgc3BlY2lmaWVyLCBzdHJpbmcsIGopIHtcbiAgICB2YXIgaSA9IDAsXG4gICAgICAgIG4gPSBzcGVjaWZpZXIubGVuZ3RoLFxuICAgICAgICBtID0gc3RyaW5nLmxlbmd0aCxcbiAgICAgICAgYyxcbiAgICAgICAgcGFyc2U7XG5cbiAgICB3aGlsZSAoaSA8IG4pIHtcbiAgICAgIGlmIChqID49IG0pIHJldHVybiAtMTtcbiAgICAgIGMgPSBzcGVjaWZpZXIuY2hhckNvZGVBdChpKyspO1xuICAgICAgaWYgKGMgPT09IDM3KSB7XG4gICAgICAgIGMgPSBzcGVjaWZpZXIuY2hhckF0KGkrKyk7XG4gICAgICAgIHBhcnNlID0gcGFyc2VzW2MgaW4gcGFkcyA/IHNwZWNpZmllci5jaGFyQXQoaSsrKSA6IGNdO1xuICAgICAgICBpZiAoIXBhcnNlIHx8ICgoaiA9IHBhcnNlKGQsIHN0cmluZywgaikpIDwgMCkpIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSBpZiAoYyAhPSBzdHJpbmcuY2hhckNvZGVBdChqKyspKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gajtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBhcnNlUGVyaW9kKGQsIHN0cmluZywgaSkge1xuICAgIHZhciBuID0gcGVyaW9kUmUuZXhlYyhzdHJpbmcuc2xpY2UoaSkpO1xuICAgIHJldHVybiBuID8gKGQucCA9IHBlcmlvZExvb2t1cC5nZXQoblswXS50b0xvd2VyQ2FzZSgpKSwgaSArIG5bMF0ubGVuZ3RoKSA6IC0xO1xuICB9XG5cbiAgZnVuY3Rpb24gcGFyc2VTaG9ydFdlZWtkYXkoZCwgc3RyaW5nLCBpKSB7XG4gICAgdmFyIG4gPSBzaG9ydFdlZWtkYXlSZS5leGVjKHN0cmluZy5zbGljZShpKSk7XG4gICAgcmV0dXJuIG4gPyAoZC53ID0gc2hvcnRXZWVrZGF5TG9va3VwLmdldChuWzBdLnRvTG93ZXJDYXNlKCkpLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG4gIH1cblxuICBmdW5jdGlvbiBwYXJzZVdlZWtkYXkoZCwgc3RyaW5nLCBpKSB7XG4gICAgdmFyIG4gPSB3ZWVrZGF5UmUuZXhlYyhzdHJpbmcuc2xpY2UoaSkpO1xuICAgIHJldHVybiBuID8gKGQudyA9IHdlZWtkYXlMb29rdXAuZ2V0KG5bMF0udG9Mb3dlckNhc2UoKSksIGkgKyBuWzBdLmxlbmd0aCkgOiAtMTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBhcnNlU2hvcnRNb250aChkLCBzdHJpbmcsIGkpIHtcbiAgICB2YXIgbiA9IHNob3J0TW9udGhSZS5leGVjKHN0cmluZy5zbGljZShpKSk7XG4gICAgcmV0dXJuIG4gPyAoZC5tID0gc2hvcnRNb250aExvb2t1cC5nZXQoblswXS50b0xvd2VyQ2FzZSgpKSwgaSArIG5bMF0ubGVuZ3RoKSA6IC0xO1xuICB9XG5cbiAgZnVuY3Rpb24gcGFyc2VNb250aChkLCBzdHJpbmcsIGkpIHtcbiAgICB2YXIgbiA9IG1vbnRoUmUuZXhlYyhzdHJpbmcuc2xpY2UoaSkpO1xuICAgIHJldHVybiBuID8gKGQubSA9IG1vbnRoTG9va3VwLmdldChuWzBdLnRvTG93ZXJDYXNlKCkpLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG4gIH1cblxuICBmdW5jdGlvbiBwYXJzZUxvY2FsZURhdGVUaW1lKGQsIHN0cmluZywgaSkge1xuICAgIHJldHVybiBwYXJzZVNwZWNpZmllcihkLCBsb2NhbGVfZGF0ZVRpbWUsIHN0cmluZywgaSk7XG4gIH1cblxuICBmdW5jdGlvbiBwYXJzZUxvY2FsZURhdGUoZCwgc3RyaW5nLCBpKSB7XG4gICAgcmV0dXJuIHBhcnNlU3BlY2lmaWVyKGQsIGxvY2FsZV9kYXRlLCBzdHJpbmcsIGkpO1xuICB9XG5cbiAgZnVuY3Rpb24gcGFyc2VMb2NhbGVUaW1lKGQsIHN0cmluZywgaSkge1xuICAgIHJldHVybiBwYXJzZVNwZWNpZmllcihkLCBsb2NhbGVfdGltZSwgc3RyaW5nLCBpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1hdFNob3J0V2Vla2RheShkKSB7XG4gICAgcmV0dXJuIGxvY2FsZV9zaG9ydFdlZWtkYXlzW2QuZ2V0RGF5KCldO1xuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0V2Vla2RheShkKSB7XG4gICAgcmV0dXJuIGxvY2FsZV93ZWVrZGF5c1tkLmdldERheSgpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1hdFNob3J0TW9udGgoZCkge1xuICAgIHJldHVybiBsb2NhbGVfc2hvcnRNb250aHNbZC5nZXRNb250aCgpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1hdE1vbnRoKGQpIHtcbiAgICByZXR1cm4gbG9jYWxlX21vbnRoc1tkLmdldE1vbnRoKCldO1xuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0UGVyaW9kKGQpIHtcbiAgICByZXR1cm4gbG9jYWxlX3BlcmlvZHNbKyhkLmdldEhvdXJzKCkgPj0gMTIpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1hdFF1YXJ0ZXIoZCkge1xuICAgIHJldHVybiAxICsgfn4oZC5nZXRNb250aCgpIC8gMyk7XG4gIH1cblxuICBmdW5jdGlvbiBmb3JtYXRVVENTaG9ydFdlZWtkYXkoZCkge1xuICAgIHJldHVybiBsb2NhbGVfc2hvcnRXZWVrZGF5c1tkLmdldFVUQ0RheSgpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1hdFVUQ1dlZWtkYXkoZCkge1xuICAgIHJldHVybiBsb2NhbGVfd2Vla2RheXNbZC5nZXRVVENEYXkoKV07XG4gIH1cblxuICBmdW5jdGlvbiBmb3JtYXRVVENTaG9ydE1vbnRoKGQpIHtcbiAgICByZXR1cm4gbG9jYWxlX3Nob3J0TW9udGhzW2QuZ2V0VVRDTW9udGgoKV07XG4gIH1cblxuICBmdW5jdGlvbiBmb3JtYXRVVENNb250aChkKSB7XG4gICAgcmV0dXJuIGxvY2FsZV9tb250aHNbZC5nZXRVVENNb250aCgpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1hdFVUQ1BlcmlvZChkKSB7XG4gICAgcmV0dXJuIGxvY2FsZV9wZXJpb2RzWysoZC5nZXRVVENIb3VycygpID49IDEyKV07XG4gIH1cblxuICBmdW5jdGlvbiBmb3JtYXRVVENRdWFydGVyKGQpIHtcbiAgICByZXR1cm4gMSArIH5+KGQuZ2V0VVRDTW9udGgoKSAvIDMpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmb3JtYXQ6IGZ1bmN0aW9uKHNwZWNpZmllcikge1xuICAgICAgdmFyIGYgPSBuZXdGb3JtYXQoc3BlY2lmaWVyICs9IFwiXCIsIGZvcm1hdHMpO1xuICAgICAgZi50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gc3BlY2lmaWVyOyB9O1xuICAgICAgcmV0dXJuIGY7XG4gICAgfSxcbiAgICBwYXJzZTogZnVuY3Rpb24oc3BlY2lmaWVyKSB7XG4gICAgICB2YXIgcCA9IG5ld1BhcnNlKHNwZWNpZmllciArPSBcIlwiLCBmYWxzZSk7XG4gICAgICBwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHJldHVybiBzcGVjaWZpZXI7IH07XG4gICAgICByZXR1cm4gcDtcbiAgICB9LFxuICAgIHV0Y0Zvcm1hdDogZnVuY3Rpb24oc3BlY2lmaWVyKSB7XG4gICAgICB2YXIgZiA9IG5ld0Zvcm1hdChzcGVjaWZpZXIgKz0gXCJcIiwgdXRjRm9ybWF0cyk7XG4gICAgICBmLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHJldHVybiBzcGVjaWZpZXI7IH07XG4gICAgICByZXR1cm4gZjtcbiAgICB9LFxuICAgIHV0Y1BhcnNlOiBmdW5jdGlvbihzcGVjaWZpZXIpIHtcbiAgICAgIHZhciBwID0gbmV3UGFyc2Uoc3BlY2lmaWVyICs9IFwiXCIsIHRydWUpO1xuICAgICAgcC50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gc3BlY2lmaWVyOyB9O1xuICAgICAgcmV0dXJuIHA7XG4gICAgfVxuICB9O1xufVxuXG52YXIgcGFkcyA9IHtcIi1cIjogXCJcIiwgXCJfXCI6IFwiIFwiLCBcIjBcIjogXCIwXCJ9LFxuICAgIG51bWJlclJlID0gL15cXHMqXFxkKy8sIC8vIG5vdGU6IGlnbm9yZXMgbmV4dCBkaXJlY3RpdmVcbiAgICBwZXJjZW50UmUgPSAvXiUvLFxuICAgIHJlcXVvdGVSZSA9IC9bXFxcXF4kKis/fFtcXF0oKS57fV0vZztcblxuZnVuY3Rpb24gcGFkKHZhbHVlLCBmaWxsLCB3aWR0aCkge1xuICB2YXIgc2lnbiA9IHZhbHVlIDwgMCA/IFwiLVwiIDogXCJcIixcbiAgICAgIHN0cmluZyA9IChzaWduID8gLXZhbHVlIDogdmFsdWUpICsgXCJcIixcbiAgICAgIGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG4gIHJldHVybiBzaWduICsgKGxlbmd0aCA8IHdpZHRoID8gbmV3IEFycmF5KHdpZHRoIC0gbGVuZ3RoICsgMSkuam9pbihmaWxsKSArIHN0cmluZyA6IHN0cmluZyk7XG59XG5cbmZ1bmN0aW9uIHJlcXVvdGUocykge1xuICByZXR1cm4gcy5yZXBsYWNlKHJlcXVvdGVSZSwgXCJcXFxcJCZcIik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFJlKG5hbWVzKSB7XG4gIHJldHVybiBuZXcgUmVnRXhwKFwiXig/OlwiICsgbmFtZXMubWFwKHJlcXVvdGUpLmpvaW4oXCJ8XCIpICsgXCIpXCIsIFwiaVwiKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0TG9va3VwKG5hbWVzKSB7XG4gIHJldHVybiBuZXcgTWFwKG5hbWVzLm1hcCgobmFtZSwgaSkgPT4gW25hbWUudG9Mb3dlckNhc2UoKSwgaV0pKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VXZWVrZGF5TnVtYmVyU3VuZGF5KGQsIHN0cmluZywgaSkge1xuICB2YXIgbiA9IG51bWJlclJlLmV4ZWMoc3RyaW5nLnNsaWNlKGksIGkgKyAxKSk7XG4gIHJldHVybiBuID8gKGQudyA9ICtuWzBdLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlV2Vla2RheU51bWJlck1vbmRheShkLCBzdHJpbmcsIGkpIHtcbiAgdmFyIG4gPSBudW1iZXJSZS5leGVjKHN0cmluZy5zbGljZShpLCBpICsgMSkpO1xuICByZXR1cm4gbiA/IChkLnUgPSArblswXSwgaSArIG5bMF0ubGVuZ3RoKSA6IC0xO1xufVxuXG5mdW5jdGlvbiBwYXJzZVdlZWtOdW1iZXJTdW5kYXkoZCwgc3RyaW5nLCBpKSB7XG4gIHZhciBuID0gbnVtYmVyUmUuZXhlYyhzdHJpbmcuc2xpY2UoaSwgaSArIDIpKTtcbiAgcmV0dXJuIG4gPyAoZC5VID0gK25bMF0sIGkgKyBuWzBdLmxlbmd0aCkgOiAtMTtcbn1cblxuZnVuY3Rpb24gcGFyc2VXZWVrTnVtYmVySVNPKGQsIHN0cmluZywgaSkge1xuICB2YXIgbiA9IG51bWJlclJlLmV4ZWMoc3RyaW5nLnNsaWNlKGksIGkgKyAyKSk7XG4gIHJldHVybiBuID8gKGQuViA9ICtuWzBdLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlV2Vla051bWJlck1vbmRheShkLCBzdHJpbmcsIGkpIHtcbiAgdmFyIG4gPSBudW1iZXJSZS5leGVjKHN0cmluZy5zbGljZShpLCBpICsgMikpO1xuICByZXR1cm4gbiA/IChkLlcgPSArblswXSwgaSArIG5bMF0ubGVuZ3RoKSA6IC0xO1xufVxuXG5mdW5jdGlvbiBwYXJzZUZ1bGxZZWFyKGQsIHN0cmluZywgaSkge1xuICB2YXIgbiA9IG51bWJlclJlLmV4ZWMoc3RyaW5nLnNsaWNlKGksIGkgKyA0KSk7XG4gIHJldHVybiBuID8gKGQueSA9ICtuWzBdLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlWWVhcihkLCBzdHJpbmcsIGkpIHtcbiAgdmFyIG4gPSBudW1iZXJSZS5leGVjKHN0cmluZy5zbGljZShpLCBpICsgMikpO1xuICByZXR1cm4gbiA/IChkLnkgPSArblswXSArICgrblswXSA+IDY4ID8gMTkwMCA6IDIwMDApLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlWm9uZShkLCBzdHJpbmcsIGkpIHtcbiAgdmFyIG4gPSAvXihaKXwoWystXVxcZFxcZCkoPzo6PyhcXGRcXGQpKT8vLmV4ZWMoc3RyaW5nLnNsaWNlKGksIGkgKyA2KSk7XG4gIHJldHVybiBuID8gKGQuWiA9IG5bMV0gPyAwIDogLShuWzJdICsgKG5bM10gfHwgXCIwMFwiKSksIGkgKyBuWzBdLmxlbmd0aCkgOiAtMTtcbn1cblxuZnVuY3Rpb24gcGFyc2VRdWFydGVyKGQsIHN0cmluZywgaSkge1xuICB2YXIgbiA9IG51bWJlclJlLmV4ZWMoc3RyaW5nLnNsaWNlKGksIGkgKyAxKSk7XG4gIHJldHVybiBuID8gKGQucSA9IG5bMF0gKiAzIC0gMywgaSArIG5bMF0ubGVuZ3RoKSA6IC0xO1xufVxuXG5mdW5jdGlvbiBwYXJzZU1vbnRoTnVtYmVyKGQsIHN0cmluZywgaSkge1xuICB2YXIgbiA9IG51bWJlclJlLmV4ZWMoc3RyaW5nLnNsaWNlKGksIGkgKyAyKSk7XG4gIHJldHVybiBuID8gKGQubSA9IG5bMF0gLSAxLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF5T2ZNb250aChkLCBzdHJpbmcsIGkpIHtcbiAgdmFyIG4gPSBudW1iZXJSZS5leGVjKHN0cmluZy5zbGljZShpLCBpICsgMikpO1xuICByZXR1cm4gbiA/IChkLmQgPSArblswXSwgaSArIG5bMF0ubGVuZ3RoKSA6IC0xO1xufVxuXG5mdW5jdGlvbiBwYXJzZURheU9mWWVhcihkLCBzdHJpbmcsIGkpIHtcbiAgdmFyIG4gPSBudW1iZXJSZS5leGVjKHN0cmluZy5zbGljZShpLCBpICsgMykpO1xuICByZXR1cm4gbiA/IChkLm0gPSAwLCBkLmQgPSArblswXSwgaSArIG5bMF0ubGVuZ3RoKSA6IC0xO1xufVxuXG5mdW5jdGlvbiBwYXJzZUhvdXIyNChkLCBzdHJpbmcsIGkpIHtcbiAgdmFyIG4gPSBudW1iZXJSZS5leGVjKHN0cmluZy5zbGljZShpLCBpICsgMikpO1xuICByZXR1cm4gbiA/IChkLkggPSArblswXSwgaSArIG5bMF0ubGVuZ3RoKSA6IC0xO1xufVxuXG5mdW5jdGlvbiBwYXJzZU1pbnV0ZXMoZCwgc3RyaW5nLCBpKSB7XG4gIHZhciBuID0gbnVtYmVyUmUuZXhlYyhzdHJpbmcuc2xpY2UoaSwgaSArIDIpKTtcbiAgcmV0dXJuIG4gPyAoZC5NID0gK25bMF0sIGkgKyBuWzBdLmxlbmd0aCkgOiAtMTtcbn1cblxuZnVuY3Rpb24gcGFyc2VTZWNvbmRzKGQsIHN0cmluZywgaSkge1xuICB2YXIgbiA9IG51bWJlclJlLmV4ZWMoc3RyaW5nLnNsaWNlKGksIGkgKyAyKSk7XG4gIHJldHVybiBuID8gKGQuUyA9ICtuWzBdLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTWlsbGlzZWNvbmRzKGQsIHN0cmluZywgaSkge1xuICB2YXIgbiA9IG51bWJlclJlLmV4ZWMoc3RyaW5nLnNsaWNlKGksIGkgKyAzKSk7XG4gIHJldHVybiBuID8gKGQuTCA9ICtuWzBdLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTWljcm9zZWNvbmRzKGQsIHN0cmluZywgaSkge1xuICB2YXIgbiA9IG51bWJlclJlLmV4ZWMoc3RyaW5nLnNsaWNlKGksIGkgKyA2KSk7XG4gIHJldHVybiBuID8gKGQuTCA9IE1hdGguZmxvb3IoblswXSAvIDEwMDApLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTGl0ZXJhbFBlcmNlbnQoZCwgc3RyaW5nLCBpKSB7XG4gIHZhciBuID0gcGVyY2VudFJlLmV4ZWMoc3RyaW5nLnNsaWNlKGksIGkgKyAxKSk7XG4gIHJldHVybiBuID8gaSArIG5bMF0ubGVuZ3RoIDogLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVW5peFRpbWVzdGFtcChkLCBzdHJpbmcsIGkpIHtcbiAgdmFyIG4gPSBudW1iZXJSZS5leGVjKHN0cmluZy5zbGljZShpKSk7XG4gIHJldHVybiBuID8gKGQuUSA9ICtuWzBdLCBpICsgblswXS5sZW5ndGgpIDogLTE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVW5peFRpbWVzdGFtcFNlY29uZHMoZCwgc3RyaW5nLCBpKSB7XG4gIHZhciBuID0gbnVtYmVyUmUuZXhlYyhzdHJpbmcuc2xpY2UoaSkpO1xuICByZXR1cm4gbiA/IChkLnMgPSArblswXSwgaSArIG5bMF0ubGVuZ3RoKSA6IC0xO1xufVxuXG5mdW5jdGlvbiBmb3JtYXREYXlPZk1vbnRoKGQsIHApIHtcbiAgcmV0dXJuIHBhZChkLmdldERhdGUoKSwgcCwgMik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEhvdXIyNChkLCBwKSB7XG4gIHJldHVybiBwYWQoZC5nZXRIb3VycygpLCBwLCAyKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0SG91cjEyKGQsIHApIHtcbiAgcmV0dXJuIHBhZChkLmdldEhvdXJzKCkgJSAxMiB8fCAxMiwgcCwgMik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdERheU9mWWVhcihkLCBwKSB7XG4gIHJldHVybiBwYWQoMSArIHRpbWVEYXkuY291bnQodGltZVllYXIoZCksIGQpLCBwLCAzKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0TWlsbGlzZWNvbmRzKGQsIHApIHtcbiAgcmV0dXJuIHBhZChkLmdldE1pbGxpc2Vjb25kcygpLCBwLCAzKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0TWljcm9zZWNvbmRzKGQsIHApIHtcbiAgcmV0dXJuIGZvcm1hdE1pbGxpc2Vjb25kcyhkLCBwKSArIFwiMDAwXCI7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdE1vbnRoTnVtYmVyKGQsIHApIHtcbiAgcmV0dXJuIHBhZChkLmdldE1vbnRoKCkgKyAxLCBwLCAyKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0TWludXRlcyhkLCBwKSB7XG4gIHJldHVybiBwYWQoZC5nZXRNaW51dGVzKCksIHAsIDIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRTZWNvbmRzKGQsIHApIHtcbiAgcmV0dXJuIHBhZChkLmdldFNlY29uZHMoKSwgcCwgMik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFdlZWtkYXlOdW1iZXJNb25kYXkoZCkge1xuICB2YXIgZGF5ID0gZC5nZXREYXkoKTtcbiAgcmV0dXJuIGRheSA9PT0gMCA/IDcgOiBkYXk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFdlZWtOdW1iZXJTdW5kYXkoZCwgcCkge1xuICByZXR1cm4gcGFkKHRpbWVTdW5kYXkuY291bnQodGltZVllYXIoZCkgLSAxLCBkKSwgcCwgMik7XG59XG5cbmZ1bmN0aW9uIGRJU08oZCkge1xuICB2YXIgZGF5ID0gZC5nZXREYXkoKTtcbiAgcmV0dXJuIChkYXkgPj0gNCB8fCBkYXkgPT09IDApID8gdGltZVRodXJzZGF5KGQpIDogdGltZVRodXJzZGF5LmNlaWwoZCk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFdlZWtOdW1iZXJJU08oZCwgcCkge1xuICBkID0gZElTTyhkKTtcbiAgcmV0dXJuIHBhZCh0aW1lVGh1cnNkYXkuY291bnQodGltZVllYXIoZCksIGQpICsgKHRpbWVZZWFyKGQpLmdldERheSgpID09PSA0KSwgcCwgMik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFdlZWtkYXlOdW1iZXJTdW5kYXkoZCkge1xuICByZXR1cm4gZC5nZXREYXkoKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0V2Vla051bWJlck1vbmRheShkLCBwKSB7XG4gIHJldHVybiBwYWQodGltZU1vbmRheS5jb3VudCh0aW1lWWVhcihkKSAtIDEsIGQpLCBwLCAyKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0WWVhcihkLCBwKSB7XG4gIHJldHVybiBwYWQoZC5nZXRGdWxsWWVhcigpICUgMTAwLCBwLCAyKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0WWVhcklTTyhkLCBwKSB7XG4gIGQgPSBkSVNPKGQpO1xuICByZXR1cm4gcGFkKGQuZ2V0RnVsbFllYXIoKSAlIDEwMCwgcCwgMik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEZ1bGxZZWFyKGQsIHApIHtcbiAgcmV0dXJuIHBhZChkLmdldEZ1bGxZZWFyKCkgJSAxMDAwMCwgcCwgNCk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEZ1bGxZZWFySVNPKGQsIHApIHtcbiAgdmFyIGRheSA9IGQuZ2V0RGF5KCk7XG4gIGQgPSAoZGF5ID49IDQgfHwgZGF5ID09PSAwKSA/IHRpbWVUaHVyc2RheShkKSA6IHRpbWVUaHVyc2RheS5jZWlsKGQpO1xuICByZXR1cm4gcGFkKGQuZ2V0RnVsbFllYXIoKSAlIDEwMDAwLCBwLCA0KTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0Wm9uZShkKSB7XG4gIHZhciB6ID0gZC5nZXRUaW1lem9uZU9mZnNldCgpO1xuICByZXR1cm4gKHogPiAwID8gXCItXCIgOiAoeiAqPSAtMSwgXCIrXCIpKVxuICAgICAgKyBwYWQoeiAvIDYwIHwgMCwgXCIwXCIsIDIpXG4gICAgICArIHBhZCh6ICUgNjAsIFwiMFwiLCAyKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VVRDRGF5T2ZNb250aChkLCBwKSB7XG4gIHJldHVybiBwYWQoZC5nZXRVVENEYXRlKCksIHAsIDIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRVVENIb3VyMjQoZCwgcCkge1xuICByZXR1cm4gcGFkKGQuZ2V0VVRDSG91cnMoKSwgcCwgMik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFVUQ0hvdXIxMihkLCBwKSB7XG4gIHJldHVybiBwYWQoZC5nZXRVVENIb3VycygpICUgMTIgfHwgMTIsIHAsIDIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRVVENEYXlPZlllYXIoZCwgcCkge1xuICByZXR1cm4gcGFkKDEgKyB1dGNEYXkuY291bnQodXRjWWVhcihkKSwgZCksIHAsIDMpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRVVENNaWxsaXNlY29uZHMoZCwgcCkge1xuICByZXR1cm4gcGFkKGQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksIHAsIDMpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRVVENNaWNyb3NlY29uZHMoZCwgcCkge1xuICByZXR1cm4gZm9ybWF0VVRDTWlsbGlzZWNvbmRzKGQsIHApICsgXCIwMDBcIjtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VVRDTW9udGhOdW1iZXIoZCwgcCkge1xuICByZXR1cm4gcGFkKGQuZ2V0VVRDTW9udGgoKSArIDEsIHAsIDIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRVVENNaW51dGVzKGQsIHApIHtcbiAgcmV0dXJuIHBhZChkLmdldFVUQ01pbnV0ZXMoKSwgcCwgMik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFVUQ1NlY29uZHMoZCwgcCkge1xuICByZXR1cm4gcGFkKGQuZ2V0VVRDU2Vjb25kcygpLCBwLCAyKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VVRDV2Vla2RheU51bWJlck1vbmRheShkKSB7XG4gIHZhciBkb3cgPSBkLmdldFVUQ0RheSgpO1xuICByZXR1cm4gZG93ID09PSAwID8gNyA6IGRvdztcbn1cblxuZnVuY3Rpb24gZm9ybWF0VVRDV2Vla051bWJlclN1bmRheShkLCBwKSB7XG4gIHJldHVybiBwYWQodXRjU3VuZGF5LmNvdW50KHV0Y1llYXIoZCkgLSAxLCBkKSwgcCwgMik7XG59XG5cbmZ1bmN0aW9uIFVUQ2RJU08oZCkge1xuICB2YXIgZGF5ID0gZC5nZXRVVENEYXkoKTtcbiAgcmV0dXJuIChkYXkgPj0gNCB8fCBkYXkgPT09IDApID8gdXRjVGh1cnNkYXkoZCkgOiB1dGNUaHVyc2RheS5jZWlsKGQpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRVVENXZWVrTnVtYmVySVNPKGQsIHApIHtcbiAgZCA9IFVUQ2RJU08oZCk7XG4gIHJldHVybiBwYWQodXRjVGh1cnNkYXkuY291bnQodXRjWWVhcihkKSwgZCkgKyAodXRjWWVhcihkKS5nZXRVVENEYXkoKSA9PT0gNCksIHAsIDIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRVVENXZWVrZGF5TnVtYmVyU3VuZGF5KGQpIHtcbiAgcmV0dXJuIGQuZ2V0VVRDRGF5KCk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFVUQ1dlZWtOdW1iZXJNb25kYXkoZCwgcCkge1xuICByZXR1cm4gcGFkKHV0Y01vbmRheS5jb3VudCh1dGNZZWFyKGQpIC0gMSwgZCksIHAsIDIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRVVENZZWFyKGQsIHApIHtcbiAgcmV0dXJuIHBhZChkLmdldFVUQ0Z1bGxZZWFyKCkgJSAxMDAsIHAsIDIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRVVENZZWFySVNPKGQsIHApIHtcbiAgZCA9IFVUQ2RJU08oZCk7XG4gIHJldHVybiBwYWQoZC5nZXRVVENGdWxsWWVhcigpICUgMTAwLCBwLCAyKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VVRDRnVsbFllYXIoZCwgcCkge1xuICByZXR1cm4gcGFkKGQuZ2V0VVRDRnVsbFllYXIoKSAlIDEwMDAwLCBwLCA0KTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VVRDRnVsbFllYXJJU08oZCwgcCkge1xuICB2YXIgZGF5ID0gZC5nZXRVVENEYXkoKTtcbiAgZCA9IChkYXkgPj0gNCB8fCBkYXkgPT09IDApID8gdXRjVGh1cnNkYXkoZCkgOiB1dGNUaHVyc2RheS5jZWlsKGQpO1xuICByZXR1cm4gcGFkKGQuZ2V0VVRDRnVsbFllYXIoKSAlIDEwMDAwLCBwLCA0KTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VVRDWm9uZSgpIHtcbiAgcmV0dXJuIFwiKzAwMDBcIjtcbn1cblxuZnVuY3Rpb24gZm9ybWF0TGl0ZXJhbFBlcmNlbnQoKSB7XG4gIHJldHVybiBcIiVcIjtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VW5peFRpbWVzdGFtcChkKSB7XG4gIHJldHVybiArZDtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VW5peFRpbWVzdGFtcFNlY29uZHMoZCkge1xuICByZXR1cm4gTWF0aC5mbG9vcigrZCAvIDEwMDApO1xufVxuIiwKICAgICJpbXBvcnQgZm9ybWF0TG9jYWxlIGZyb20gXCIuL2xvY2FsZS5qc1wiO1xuXG52YXIgbG9jYWxlO1xuZXhwb3J0IHZhciB0aW1lRm9ybWF0O1xuZXhwb3J0IHZhciB0aW1lUGFyc2U7XG5leHBvcnQgdmFyIHV0Y0Zvcm1hdDtcbmV4cG9ydCB2YXIgdXRjUGFyc2U7XG5cbmRlZmF1bHRMb2NhbGUoe1xuICBkYXRlVGltZTogXCIleCwgJVhcIixcbiAgZGF0ZTogXCIlLW0vJS1kLyVZXCIsXG4gIHRpbWU6IFwiJS1JOiVNOiVTICVwXCIsXG4gIHBlcmlvZHM6IFtcIkFNXCIsIFwiUE1cIl0sXG4gIGRheXM6IFtcIlN1bmRheVwiLCBcIk1vbmRheVwiLCBcIlR1ZXNkYXlcIiwgXCJXZWRuZXNkYXlcIiwgXCJUaHVyc2RheVwiLCBcIkZyaWRheVwiLCBcIlNhdHVyZGF5XCJdLFxuICBzaG9ydERheXM6IFtcIlN1blwiLCBcIk1vblwiLCBcIlR1ZVwiLCBcIldlZFwiLCBcIlRodVwiLCBcIkZyaVwiLCBcIlNhdFwiXSxcbiAgbW9udGhzOiBbXCJKYW51YXJ5XCIsIFwiRmVicnVhcnlcIiwgXCJNYXJjaFwiLCBcIkFwcmlsXCIsIFwiTWF5XCIsIFwiSnVuZVwiLCBcIkp1bHlcIiwgXCJBdWd1c3RcIiwgXCJTZXB0ZW1iZXJcIiwgXCJPY3RvYmVyXCIsIFwiTm92ZW1iZXJcIiwgXCJEZWNlbWJlclwiXSxcbiAgc2hvcnRNb250aHM6IFtcIkphblwiLCBcIkZlYlwiLCBcIk1hclwiLCBcIkFwclwiLCBcIk1heVwiLCBcIkp1blwiLCBcIkp1bFwiLCBcIkF1Z1wiLCBcIlNlcFwiLCBcIk9jdFwiLCBcIk5vdlwiLCBcIkRlY1wiXVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlZmF1bHRMb2NhbGUoZGVmaW5pdGlvbikge1xuICBsb2NhbGUgPSBmb3JtYXRMb2NhbGUoZGVmaW5pdGlvbik7XG4gIHRpbWVGb3JtYXQgPSBsb2NhbGUuZm9ybWF0O1xuICB0aW1lUGFyc2UgPSBsb2NhbGUucGFyc2U7XG4gIHV0Y0Zvcm1hdCA9IGxvY2FsZS51dGNGb3JtYXQ7XG4gIHV0Y1BhcnNlID0gbG9jYWxlLnV0Y1BhcnNlO1xuICByZXR1cm4gbG9jYWxlO1xufVxuIiwKICAgICJleHBvcnQge2RlZmF1bHQgYXMgdGltZUZvcm1hdERlZmF1bHRMb2NhbGUsIHRpbWVGb3JtYXQsIHRpbWVQYXJzZSwgdXRjRm9ybWF0LCB1dGNQYXJzZX0gZnJvbSBcIi4vZGVmYXVsdExvY2FsZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHRpbWVGb3JtYXRMb2NhbGV9IGZyb20gXCIuL2xvY2FsZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGlzb0Zvcm1hdH0gZnJvbSBcIi4vaXNvRm9ybWF0LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaXNvUGFyc2V9IGZyb20gXCIuL2lzb1BhcnNlLmpzXCI7XG4iLAogICAgImltcG9ydCB7dGltZVllYXIsIHRpbWVNb250aCwgdGltZVdlZWssIHRpbWVEYXksIHRpbWVIb3VyLCB0aW1lTWludXRlLCB0aW1lU2Vjb25kLCB0aW1lVGlja3MsIHRpbWVUaWNrSW50ZXJ2YWx9IGZyb20gXCJkMy10aW1lXCI7XG5pbXBvcnQge3RpbWVGb3JtYXR9IGZyb20gXCJkMy10aW1lLWZvcm1hdFwiO1xuaW1wb3J0IGNvbnRpbnVvdXMsIHtjb3B5fSBmcm9tIFwiLi9jb250aW51b3VzLmpzXCI7XG5pbXBvcnQge2luaXRSYW5nZX0gZnJvbSBcIi4vaW5pdC5qc1wiO1xuaW1wb3J0IG5pY2UgZnJvbSBcIi4vbmljZS5qc1wiO1xuXG5mdW5jdGlvbiBkYXRlKHQpIHtcbiAgcmV0dXJuIG5ldyBEYXRlKHQpO1xufVxuXG5mdW5jdGlvbiBudW1iZXIodCkge1xuICByZXR1cm4gdCBpbnN0YW5jZW9mIERhdGUgPyArdCA6ICtuZXcgRGF0ZSgrdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxlbmRhcih0aWNrcywgdGlja0ludGVydmFsLCB5ZWFyLCBtb250aCwgd2VlaywgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgZm9ybWF0KSB7XG4gIHZhciBzY2FsZSA9IGNvbnRpbnVvdXMoKSxcbiAgICAgIGludmVydCA9IHNjYWxlLmludmVydCxcbiAgICAgIGRvbWFpbiA9IHNjYWxlLmRvbWFpbjtcblxuICB2YXIgZm9ybWF0TWlsbGlzZWNvbmQgPSBmb3JtYXQoXCIuJUxcIiksXG4gICAgICBmb3JtYXRTZWNvbmQgPSBmb3JtYXQoXCI6JVNcIiksXG4gICAgICBmb3JtYXRNaW51dGUgPSBmb3JtYXQoXCIlSTolTVwiKSxcbiAgICAgIGZvcm1hdEhvdXIgPSBmb3JtYXQoXCIlSSAlcFwiKSxcbiAgICAgIGZvcm1hdERheSA9IGZvcm1hdChcIiVhICVkXCIpLFxuICAgICAgZm9ybWF0V2VlayA9IGZvcm1hdChcIiViICVkXCIpLFxuICAgICAgZm9ybWF0TW9udGggPSBmb3JtYXQoXCIlQlwiKSxcbiAgICAgIGZvcm1hdFllYXIgPSBmb3JtYXQoXCIlWVwiKTtcblxuICBmdW5jdGlvbiB0aWNrRm9ybWF0KGRhdGUpIHtcbiAgICByZXR1cm4gKHNlY29uZChkYXRlKSA8IGRhdGUgPyBmb3JtYXRNaWxsaXNlY29uZFxuICAgICAgICA6IG1pbnV0ZShkYXRlKSA8IGRhdGUgPyBmb3JtYXRTZWNvbmRcbiAgICAgICAgOiBob3VyKGRhdGUpIDwgZGF0ZSA/IGZvcm1hdE1pbnV0ZVxuICAgICAgICA6IGRheShkYXRlKSA8IGRhdGUgPyBmb3JtYXRIb3VyXG4gICAgICAgIDogbW9udGgoZGF0ZSkgPCBkYXRlID8gKHdlZWsoZGF0ZSkgPCBkYXRlID8gZm9ybWF0RGF5IDogZm9ybWF0V2VlaylcbiAgICAgICAgOiB5ZWFyKGRhdGUpIDwgZGF0ZSA/IGZvcm1hdE1vbnRoXG4gICAgICAgIDogZm9ybWF0WWVhcikoZGF0ZSk7XG4gIH1cblxuICBzY2FsZS5pbnZlcnQgPSBmdW5jdGlvbih5KSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGludmVydCh5KSk7XG4gIH07XG5cbiAgc2NhbGUuZG9tYWluID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gZG9tYWluKEFycmF5LmZyb20oXywgbnVtYmVyKSkgOiBkb21haW4oKS5tYXAoZGF0ZSk7XG4gIH07XG5cbiAgc2NhbGUudGlja3MgPSBmdW5jdGlvbihpbnRlcnZhbCkge1xuICAgIHZhciBkID0gZG9tYWluKCk7XG4gICAgcmV0dXJuIHRpY2tzKGRbMF0sIGRbZC5sZW5ndGggLSAxXSwgaW50ZXJ2YWwgPT0gbnVsbCA/IDEwIDogaW50ZXJ2YWwpO1xuICB9O1xuXG4gIHNjYWxlLnRpY2tGb3JtYXQgPSBmdW5jdGlvbihjb3VudCwgc3BlY2lmaWVyKSB7XG4gICAgcmV0dXJuIHNwZWNpZmllciA9PSBudWxsID8gdGlja0Zvcm1hdCA6IGZvcm1hdChzcGVjaWZpZXIpO1xuICB9O1xuXG4gIHNjYWxlLm5pY2UgPSBmdW5jdGlvbihpbnRlcnZhbCkge1xuICAgIHZhciBkID0gZG9tYWluKCk7XG4gICAgaWYgKCFpbnRlcnZhbCB8fCB0eXBlb2YgaW50ZXJ2YWwucmFuZ2UgIT09IFwiZnVuY3Rpb25cIikgaW50ZXJ2YWwgPSB0aWNrSW50ZXJ2YWwoZFswXSwgZFtkLmxlbmd0aCAtIDFdLCBpbnRlcnZhbCA9PSBudWxsID8gMTAgOiBpbnRlcnZhbCk7XG4gICAgcmV0dXJuIGludGVydmFsID8gZG9tYWluKG5pY2UoZCwgaW50ZXJ2YWwpKSA6IHNjYWxlO1xuICB9O1xuXG4gIHNjYWxlLmNvcHkgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gY29weShzY2FsZSwgY2FsZW5kYXIodGlja3MsIHRpY2tJbnRlcnZhbCwgeWVhciwgbW9udGgsIHdlZWssIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZvcm1hdCkpO1xuICB9O1xuXG4gIHJldHVybiBzY2FsZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdGltZSgpIHtcbiAgcmV0dXJuIGluaXRSYW5nZS5hcHBseShjYWxlbmRhcih0aW1lVGlja3MsIHRpbWVUaWNrSW50ZXJ2YWwsIHRpbWVZZWFyLCB0aW1lTW9udGgsIHRpbWVXZWVrLCB0aW1lRGF5LCB0aW1lSG91ciwgdGltZU1pbnV0ZSwgdGltZVNlY29uZCwgdGltZUZvcm1hdCkuZG9tYWluKFtuZXcgRGF0ZSgyMDAwLCAwLCAxKSwgbmV3IERhdGUoMjAwMCwgMCwgMildKSwgYXJndW1lbnRzKTtcbn1cbiIsCiAgICAiZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBzY2FsZUJhbmQsXG4gIHBvaW50IGFzIHNjYWxlUG9pbnRcbn0gZnJvbSBcIi4vYmFuZC5qc1wiO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIHNjYWxlSWRlbnRpdHlcbn0gZnJvbSBcIi4vaWRlbnRpdHkuanNcIjtcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBzY2FsZUxpbmVhclxufSBmcm9tIFwiLi9saW5lYXIuanNcIjtcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBzY2FsZUxvZ1xufSBmcm9tIFwiLi9sb2cuanNcIjtcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBzY2FsZVN5bWxvZ1xufSBmcm9tIFwiLi9zeW1sb2cuanNcIjtcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBzY2FsZU9yZGluYWwsXG4gIGltcGxpY2l0IGFzIHNjYWxlSW1wbGljaXRcbn0gZnJvbSBcIi4vb3JkaW5hbC5qc1wiO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIHNjYWxlUG93LFxuICBzcXJ0IGFzIHNjYWxlU3FydFxufSBmcm9tIFwiLi9wb3cuanNcIjtcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBzY2FsZVJhZGlhbFxufSBmcm9tIFwiLi9yYWRpYWwuanNcIjtcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBzY2FsZVF1YW50aWxlXG59IGZyb20gXCIuL3F1YW50aWxlLmpzXCI7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgc2NhbGVRdWFudGl6ZVxufSBmcm9tIFwiLi9xdWFudGl6ZS5qc1wiO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIHNjYWxlVGhyZXNob2xkXG59IGZyb20gXCIuL3RocmVzaG9sZC5qc1wiO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIHNjYWxlVGltZVxufSBmcm9tIFwiLi90aW1lLmpzXCI7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgc2NhbGVVdGNcbn0gZnJvbSBcIi4vdXRjVGltZS5qc1wiO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIHNjYWxlU2VxdWVudGlhbCxcbiAgc2VxdWVudGlhbExvZyBhcyBzY2FsZVNlcXVlbnRpYWxMb2csXG4gIHNlcXVlbnRpYWxQb3cgYXMgc2NhbGVTZXF1ZW50aWFsUG93LFxuICBzZXF1ZW50aWFsU3FydCBhcyBzY2FsZVNlcXVlbnRpYWxTcXJ0LFxuICBzZXF1ZW50aWFsU3ltbG9nIGFzIHNjYWxlU2VxdWVudGlhbFN5bWxvZ1xufSBmcm9tIFwiLi9zZXF1ZW50aWFsLmpzXCI7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgc2NhbGVTZXF1ZW50aWFsUXVhbnRpbGVcbn0gZnJvbSBcIi4vc2VxdWVudGlhbFF1YW50aWxlLmpzXCI7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgc2NhbGVEaXZlcmdpbmcsXG4gIGRpdmVyZ2luZ0xvZyBhcyBzY2FsZURpdmVyZ2luZ0xvZyxcbiAgZGl2ZXJnaW5nUG93IGFzIHNjYWxlRGl2ZXJnaW5nUG93LFxuICBkaXZlcmdpbmdTcXJ0IGFzIHNjYWxlRGl2ZXJnaW5nU3FydCxcbiAgZGl2ZXJnaW5nU3ltbG9nIGFzIHNjYWxlRGl2ZXJnaW5nU3ltbG9nXG59IGZyb20gXCIuL2RpdmVyZ2luZy5qc1wiO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIHRpY2tGb3JtYXRcbn0gZnJvbSBcIi4vdGlja0Zvcm1hdC5qc1wiO1xuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzcGVjaWZpZXIpIHtcbiAgdmFyIG4gPSBzcGVjaWZpZXIubGVuZ3RoIC8gNiB8IDAsIGNvbG9ycyA9IG5ldyBBcnJheShuKSwgaSA9IDA7XG4gIHdoaWxlIChpIDwgbikgY29sb3JzW2ldID0gXCIjXCIgKyBzcGVjaWZpZXIuc2xpY2UoaSAqIDYsICsraSAqIDYpO1xuICByZXR1cm4gY29sb3JzO1xufVxuIiwKICAgICJpbXBvcnQgY29sb3JzIGZyb20gXCIuLi9jb2xvcnMuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY29sb3JzKFwiNGU3OWE3ZjI4ZTJjZTE1NzU5NzZiN2IyNTlhMTRmZWRjOTQ5YWY3YWExZmY5ZGE3OWM3NTVmYmFiMGFiXCIpO1xuIiwKICAgICJleHBvcnQge2RlZmF1bHQgYXMgc2NoZW1lQ2F0ZWdvcnkxMH0gZnJvbSBcIi4vY2F0ZWdvcmljYWwvY2F0ZWdvcnkxMC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHNjaGVtZUFjY2VudH0gZnJvbSBcIi4vY2F0ZWdvcmljYWwvQWNjZW50LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc2NoZW1lRGFyazJ9IGZyb20gXCIuL2NhdGVnb3JpY2FsL0RhcmsyLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc2NoZW1lT2JzZXJ2YWJsZTEwfSBmcm9tIFwiLi9jYXRlZ29yaWNhbC9vYnNlcnZhYmxlMTAuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzY2hlbWVQYWlyZWR9IGZyb20gXCIuL2NhdGVnb3JpY2FsL1BhaXJlZC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHNjaGVtZVBhc3RlbDF9IGZyb20gXCIuL2NhdGVnb3JpY2FsL1Bhc3RlbDEuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzY2hlbWVQYXN0ZWwyfSBmcm9tIFwiLi9jYXRlZ29yaWNhbC9QYXN0ZWwyLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc2NoZW1lU2V0MX0gZnJvbSBcIi4vY2F0ZWdvcmljYWwvU2V0MS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHNjaGVtZVNldDJ9IGZyb20gXCIuL2NhdGVnb3JpY2FsL1NldDIuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzY2hlbWVTZXQzfSBmcm9tIFwiLi9jYXRlZ29yaWNhbC9TZXQzLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc2NoZW1lVGFibGVhdTEwfSBmcm9tIFwiLi9jYXRlZ29yaWNhbC9UYWJsZWF1MTAuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZUJyQkcsIHNjaGVtZSBhcyBzY2hlbWVCckJHfSBmcm9tIFwiLi9kaXZlcmdpbmcvQnJCRy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycG9sYXRlUFJHbiwgc2NoZW1lIGFzIHNjaGVtZVBSR259IGZyb20gXCIuL2RpdmVyZ2luZy9QUkduLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVQaVlHLCBzY2hlbWUgYXMgc2NoZW1lUGlZR30gZnJvbSBcIi4vZGl2ZXJnaW5nL1BpWUcuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVB1T3IsIHNjaGVtZSBhcyBzY2hlbWVQdU9yfSBmcm9tIFwiLi9kaXZlcmdpbmcvUHVPci5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycG9sYXRlUmRCdSwgc2NoZW1lIGFzIHNjaGVtZVJkQnV9IGZyb20gXCIuL2RpdmVyZ2luZy9SZEJ1LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVSZEd5LCBzY2hlbWUgYXMgc2NoZW1lUmRHeX0gZnJvbSBcIi4vZGl2ZXJnaW5nL1JkR3kuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVJkWWxCdSwgc2NoZW1lIGFzIHNjaGVtZVJkWWxCdX0gZnJvbSBcIi4vZGl2ZXJnaW5nL1JkWWxCdS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycG9sYXRlUmRZbEduLCBzY2hlbWUgYXMgc2NoZW1lUmRZbEdufSBmcm9tIFwiLi9kaXZlcmdpbmcvUmRZbEduLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVTcGVjdHJhbCwgc2NoZW1lIGFzIHNjaGVtZVNwZWN0cmFsfSBmcm9tIFwiLi9kaXZlcmdpbmcvU3BlY3RyYWwuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZUJ1R24sIHNjaGVtZSBhcyBzY2hlbWVCdUdufSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL0J1R24uanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZUJ1UHUsIHNjaGVtZSBhcyBzY2hlbWVCdVB1fSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL0J1UHUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZUduQnUsIHNjaGVtZSBhcyBzY2hlbWVHbkJ1fSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL0duQnUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZU9yUmQsIHNjaGVtZSBhcyBzY2hlbWVPclJkfSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL09yUmQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVB1QnVHbiwgc2NoZW1lIGFzIHNjaGVtZVB1QnVHbn0gZnJvbSBcIi4vc2VxdWVudGlhbC1tdWx0aS9QdUJ1R24uanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVB1QnUsIHNjaGVtZSBhcyBzY2hlbWVQdUJ1fSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL1B1QnUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVB1UmQsIHNjaGVtZSBhcyBzY2hlbWVQdVJkfSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL1B1UmQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVJkUHUsIHNjaGVtZSBhcyBzY2hlbWVSZFB1fSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL1JkUHUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVlsR25CdSwgc2NoZW1lIGFzIHNjaGVtZVlsR25CdX0gZnJvbSBcIi4vc2VxdWVudGlhbC1tdWx0aS9ZbEduQnUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVlsR24sIHNjaGVtZSBhcyBzY2hlbWVZbEdufSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL1lsR24uanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVlsT3JCciwgc2NoZW1lIGFzIHNjaGVtZVlsT3JCcn0gZnJvbSBcIi4vc2VxdWVudGlhbC1tdWx0aS9ZbE9yQnIuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVlsT3JSZCwgc2NoZW1lIGFzIHNjaGVtZVlsT3JSZH0gZnJvbSBcIi4vc2VxdWVudGlhbC1tdWx0aS9ZbE9yUmQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZUJsdWVzLCBzY2hlbWUgYXMgc2NoZW1lQmx1ZXN9IGZyb20gXCIuL3NlcXVlbnRpYWwtc2luZ2xlL0JsdWVzLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVHcmVlbnMsIHNjaGVtZSBhcyBzY2hlbWVHcmVlbnN9IGZyb20gXCIuL3NlcXVlbnRpYWwtc2luZ2xlL0dyZWVucy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycG9sYXRlR3JleXMsIHNjaGVtZSBhcyBzY2hlbWVHcmV5c30gZnJvbSBcIi4vc2VxdWVudGlhbC1zaW5nbGUvR3JleXMuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVB1cnBsZXMsIHNjaGVtZSBhcyBzY2hlbWVQdXJwbGVzfSBmcm9tIFwiLi9zZXF1ZW50aWFsLXNpbmdsZS9QdXJwbGVzLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVSZWRzLCBzY2hlbWUgYXMgc2NoZW1lUmVkc30gZnJvbSBcIi4vc2VxdWVudGlhbC1zaW5nbGUvUmVkcy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycG9sYXRlT3Jhbmdlcywgc2NoZW1lIGFzIHNjaGVtZU9yYW5nZXN9IGZyb20gXCIuL3NlcXVlbnRpYWwtc2luZ2xlL09yYW5nZXMuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZUNpdmlkaXN9IGZyb20gXCIuL3NlcXVlbnRpYWwtbXVsdGkvY2l2aWRpcy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGludGVycG9sYXRlQ3ViZWhlbGl4RGVmYXVsdH0gZnJvbSBcIi4vc2VxdWVudGlhbC1tdWx0aS9jdWJlaGVsaXguanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVJhaW5ib3csIHdhcm0gYXMgaW50ZXJwb2xhdGVXYXJtLCBjb29sIGFzIGludGVycG9sYXRlQ29vbH0gZnJvbSBcIi4vc2VxdWVudGlhbC1tdWx0aS9yYWluYm93LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVTaW5lYm93fSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL3NpbmVib3cuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBpbnRlcnBvbGF0ZVR1cmJvfSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL3R1cmJvLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgaW50ZXJwb2xhdGVWaXJpZGlzLCBtYWdtYSBhcyBpbnRlcnBvbGF0ZU1hZ21hLCBpbmZlcm5vIGFzIGludGVycG9sYXRlSW5mZXJubywgcGxhc21hIGFzIGludGVycG9sYXRlUGxhc21hfSBmcm9tIFwiLi9zZXF1ZW50aWFsLW11bHRpL3ZpcmlkaXMuanNcIjtcbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4gZnVuY3Rpb24gY29uc3RhbnQoKSB7XG4gICAgcmV0dXJuIHg7XG4gIH07XG59XG4iLAogICAgImV4cG9ydCBjb25zdCBhYnMgPSBNYXRoLmFicztcbmV4cG9ydCBjb25zdCBhdGFuMiA9IE1hdGguYXRhbjI7XG5leHBvcnQgY29uc3QgY29zID0gTWF0aC5jb3M7XG5leHBvcnQgY29uc3QgbWF4ID0gTWF0aC5tYXg7XG5leHBvcnQgY29uc3QgbWluID0gTWF0aC5taW47XG5leHBvcnQgY29uc3Qgc2luID0gTWF0aC5zaW47XG5leHBvcnQgY29uc3Qgc3FydCA9IE1hdGguc3FydDtcblxuZXhwb3J0IGNvbnN0IGVwc2lsb24gPSAxZS0xMjtcbmV4cG9ydCBjb25zdCBwaSA9IE1hdGguUEk7XG5leHBvcnQgY29uc3QgaGFsZlBpID0gcGkgLyAyO1xuZXhwb3J0IGNvbnN0IHRhdSA9IDIgKiBwaTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFjb3MoeCkge1xuICByZXR1cm4geCA+IDEgPyAwIDogeCA8IC0xID8gcGkgOiBNYXRoLmFjb3MoeCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc2luKHgpIHtcbiAgcmV0dXJuIHggPj0gMSA/IGhhbGZQaSA6IHggPD0gLTEgPyAtaGFsZlBpIDogTWF0aC5hc2luKHgpO1xufVxuIiwKICAgICJpbXBvcnQge1BhdGh9IGZyb20gXCJkMy1wYXRoXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUGF0aChzaGFwZSkge1xuICBsZXQgZGlnaXRzID0gMztcblxuICBzaGFwZS5kaWdpdHMgPSBmdW5jdGlvbihfKSB7XG4gICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSByZXR1cm4gZGlnaXRzO1xuICAgIGlmIChfID09IG51bGwpIHtcbiAgICAgIGRpZ2l0cyA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGQgPSBNYXRoLmZsb29yKF8pO1xuICAgICAgaWYgKCEoZCA+PSAwKSkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYGludmFsaWQgZGlnaXRzOiAke199YCk7XG4gICAgICBkaWdpdHMgPSBkO1xuICAgIH1cbiAgICByZXR1cm4gc2hhcGU7XG4gIH07XG5cbiAgcmV0dXJuICgpID0+IG5ldyBQYXRoKGRpZ2l0cyk7XG59XG4iLAogICAgImltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IHthYnMsIGFjb3MsIGFzaW4sIGF0YW4yLCBjb3MsIGVwc2lsb24sIGhhbGZQaSwgbWF4LCBtaW4sIHBpLCBzaW4sIHNxcnQsIHRhdX0gZnJvbSBcIi4vbWF0aC5qc1wiO1xuaW1wb3J0IHt3aXRoUGF0aH0gZnJvbSBcIi4vcGF0aC5qc1wiO1xuXG5mdW5jdGlvbiBhcmNJbm5lclJhZGl1cyhkKSB7XG4gIHJldHVybiBkLmlubmVyUmFkaXVzO1xufVxuXG5mdW5jdGlvbiBhcmNPdXRlclJhZGl1cyhkKSB7XG4gIHJldHVybiBkLm91dGVyUmFkaXVzO1xufVxuXG5mdW5jdGlvbiBhcmNTdGFydEFuZ2xlKGQpIHtcbiAgcmV0dXJuIGQuc3RhcnRBbmdsZTtcbn1cblxuZnVuY3Rpb24gYXJjRW5kQW5nbGUoZCkge1xuICByZXR1cm4gZC5lbmRBbmdsZTtcbn1cblxuZnVuY3Rpb24gYXJjUGFkQW5nbGUoZCkge1xuICByZXR1cm4gZCAmJiBkLnBhZEFuZ2xlOyAvLyBOb3RlOiBvcHRpb25hbCFcbn1cblxuZnVuY3Rpb24gaW50ZXJzZWN0KHgwLCB5MCwgeDEsIHkxLCB4MiwgeTIsIHgzLCB5Mykge1xuICB2YXIgeDEwID0geDEgLSB4MCwgeTEwID0geTEgLSB5MCxcbiAgICAgIHgzMiA9IHgzIC0geDIsIHkzMiA9IHkzIC0geTIsXG4gICAgICB0ID0geTMyICogeDEwIC0geDMyICogeTEwO1xuICBpZiAodCAqIHQgPCBlcHNpbG9uKSByZXR1cm47XG4gIHQgPSAoeDMyICogKHkwIC0geTIpIC0geTMyICogKHgwIC0geDIpKSAvIHQ7XG4gIHJldHVybiBbeDAgKyB0ICogeDEwLCB5MCArIHQgKiB5MTBdO1xufVxuXG4vLyBDb21wdXRlIHBlcnBlbmRpY3VsYXIgb2Zmc2V0IGxpbmUgb2YgbGVuZ3RoIHJjLlxuLy8gaHR0cDovL21hdGh3b3JsZC53b2xmcmFtLmNvbS9DaXJjbGUtTGluZUludGVyc2VjdGlvbi5odG1sXG5mdW5jdGlvbiBjb3JuZXJUYW5nZW50cyh4MCwgeTAsIHgxLCB5MSwgcjEsIHJjLCBjdykge1xuICB2YXIgeDAxID0geDAgLSB4MSxcbiAgICAgIHkwMSA9IHkwIC0geTEsXG4gICAgICBsbyA9IChjdyA/IHJjIDogLXJjKSAvIHNxcnQoeDAxICogeDAxICsgeTAxICogeTAxKSxcbiAgICAgIG94ID0gbG8gKiB5MDEsXG4gICAgICBveSA9IC1sbyAqIHgwMSxcbiAgICAgIHgxMSA9IHgwICsgb3gsXG4gICAgICB5MTEgPSB5MCArIG95LFxuICAgICAgeDEwID0geDEgKyBveCxcbiAgICAgIHkxMCA9IHkxICsgb3ksXG4gICAgICB4MDAgPSAoeDExICsgeDEwKSAvIDIsXG4gICAgICB5MDAgPSAoeTExICsgeTEwKSAvIDIsXG4gICAgICBkeCA9IHgxMCAtIHgxMSxcbiAgICAgIGR5ID0geTEwIC0geTExLFxuICAgICAgZDIgPSBkeCAqIGR4ICsgZHkgKiBkeSxcbiAgICAgIHIgPSByMSAtIHJjLFxuICAgICAgRCA9IHgxMSAqIHkxMCAtIHgxMCAqIHkxMSxcbiAgICAgIGQgPSAoZHkgPCAwID8gLTEgOiAxKSAqIHNxcnQobWF4KDAsIHIgKiByICogZDIgLSBEICogRCkpLFxuICAgICAgY3gwID0gKEQgKiBkeSAtIGR4ICogZCkgLyBkMixcbiAgICAgIGN5MCA9ICgtRCAqIGR4IC0gZHkgKiBkKSAvIGQyLFxuICAgICAgY3gxID0gKEQgKiBkeSArIGR4ICogZCkgLyBkMixcbiAgICAgIGN5MSA9ICgtRCAqIGR4ICsgZHkgKiBkKSAvIGQyLFxuICAgICAgZHgwID0gY3gwIC0geDAwLFxuICAgICAgZHkwID0gY3kwIC0geTAwLFxuICAgICAgZHgxID0gY3gxIC0geDAwLFxuICAgICAgZHkxID0gY3kxIC0geTAwO1xuXG4gIC8vIFBpY2sgdGhlIGNsb3NlciBvZiB0aGUgdHdvIGludGVyc2VjdGlvbiBwb2ludHMuXG4gIC8vIFRPRE8gSXMgdGhlcmUgYSBmYXN0ZXIgd2F5IHRvIGRldGVybWluZSB3aGljaCBpbnRlcnNlY3Rpb24gdG8gdXNlP1xuICBpZiAoZHgwICogZHgwICsgZHkwICogZHkwID4gZHgxICogZHgxICsgZHkxICogZHkxKSBjeDAgPSBjeDEsIGN5MCA9IGN5MTtcblxuICByZXR1cm4ge1xuICAgIGN4OiBjeDAsXG4gICAgY3k6IGN5MCxcbiAgICB4MDE6IC1veCxcbiAgICB5MDE6IC1veSxcbiAgICB4MTE6IGN4MCAqIChyMSAvIHIgLSAxKSxcbiAgICB5MTE6IGN5MCAqIChyMSAvIHIgLSAxKVxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIGlubmVyUmFkaXVzID0gYXJjSW5uZXJSYWRpdXMsXG4gICAgICBvdXRlclJhZGl1cyA9IGFyY091dGVyUmFkaXVzLFxuICAgICAgY29ybmVyUmFkaXVzID0gY29uc3RhbnQoMCksXG4gICAgICBwYWRSYWRpdXMgPSBudWxsLFxuICAgICAgc3RhcnRBbmdsZSA9IGFyY1N0YXJ0QW5nbGUsXG4gICAgICBlbmRBbmdsZSA9IGFyY0VuZEFuZ2xlLFxuICAgICAgcGFkQW5nbGUgPSBhcmNQYWRBbmdsZSxcbiAgICAgIGNvbnRleHQgPSBudWxsLFxuICAgICAgcGF0aCA9IHdpdGhQYXRoKGFyYyk7XG5cbiAgZnVuY3Rpb24gYXJjKCkge1xuICAgIHZhciBidWZmZXIsXG4gICAgICAgIHIsXG4gICAgICAgIHIwID0gK2lubmVyUmFkaXVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksXG4gICAgICAgIHIxID0gK291dGVyUmFkaXVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksXG4gICAgICAgIGEwID0gc3RhcnRBbmdsZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpIC0gaGFsZlBpLFxuICAgICAgICBhMSA9IGVuZEFuZ2xlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgLSBoYWxmUGksXG4gICAgICAgIGRhID0gYWJzKGExIC0gYTApLFxuICAgICAgICBjdyA9IGExID4gYTA7XG5cbiAgICBpZiAoIWNvbnRleHQpIGNvbnRleHQgPSBidWZmZXIgPSBwYXRoKCk7XG5cbiAgICAvLyBFbnN1cmUgdGhhdCB0aGUgb3V0ZXIgcmFkaXVzIGlzIGFsd2F5cyBsYXJnZXIgdGhhbiB0aGUgaW5uZXIgcmFkaXVzLlxuICAgIGlmIChyMSA8IHIwKSByID0gcjEsIHIxID0gcjAsIHIwID0gcjtcblxuICAgIC8vIElzIGl0IGEgcG9pbnQ/XG4gICAgaWYgKCEocjEgPiBlcHNpbG9uKSkgY29udGV4dC5tb3ZlVG8oMCwgMCk7XG5cbiAgICAvLyBPciBpcyBpdCBhIGNpcmNsZSBvciBhbm51bHVzP1xuICAgIGVsc2UgaWYgKGRhID4gdGF1IC0gZXBzaWxvbikge1xuICAgICAgY29udGV4dC5tb3ZlVG8ocjEgKiBjb3MoYTApLCByMSAqIHNpbihhMCkpO1xuICAgICAgY29udGV4dC5hcmMoMCwgMCwgcjEsIGEwLCBhMSwgIWN3KTtcbiAgICAgIGlmIChyMCA+IGVwc2lsb24pIHtcbiAgICAgICAgY29udGV4dC5tb3ZlVG8ocjAgKiBjb3MoYTEpLCByMCAqIHNpbihhMSkpO1xuICAgICAgICBjb250ZXh0LmFyYygwLCAwLCByMCwgYTEsIGEwLCBjdyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gT3IgaXMgaXQgYSBjaXJjdWxhciBvciBhbm51bGFyIHNlY3Rvcj9cbiAgICBlbHNlIHtcbiAgICAgIHZhciBhMDEgPSBhMCxcbiAgICAgICAgICBhMTEgPSBhMSxcbiAgICAgICAgICBhMDAgPSBhMCxcbiAgICAgICAgICBhMTAgPSBhMSxcbiAgICAgICAgICBkYTAgPSBkYSxcbiAgICAgICAgICBkYTEgPSBkYSxcbiAgICAgICAgICBhcCA9IHBhZEFuZ2xlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgLyAyLFxuICAgICAgICAgIHJwID0gKGFwID4gZXBzaWxvbikgJiYgKHBhZFJhZGl1cyA/ICtwYWRSYWRpdXMuYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHNxcnQocjAgKiByMCArIHIxICogcjEpKSxcbiAgICAgICAgICByYyA9IG1pbihhYnMocjEgLSByMCkgLyAyLCArY29ybmVyUmFkaXVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpLFxuICAgICAgICAgIHJjMCA9IHJjLFxuICAgICAgICAgIHJjMSA9IHJjLFxuICAgICAgICAgIHQwLFxuICAgICAgICAgIHQxO1xuXG4gICAgICAvLyBBcHBseSBwYWRkaW5nPyBOb3RlIHRoYXQgc2luY2UgcjEg4omlIHIwLCBkYTEg4omlIGRhMC5cbiAgICAgIGlmIChycCA+IGVwc2lsb24pIHtcbiAgICAgICAgdmFyIHAwID0gYXNpbihycCAvIHIwICogc2luKGFwKSksXG4gICAgICAgICAgICBwMSA9IGFzaW4ocnAgLyByMSAqIHNpbihhcCkpO1xuICAgICAgICBpZiAoKGRhMCAtPSBwMCAqIDIpID4gZXBzaWxvbikgcDAgKj0gKGN3ID8gMSA6IC0xKSwgYTAwICs9IHAwLCBhMTAgLT0gcDA7XG4gICAgICAgIGVsc2UgZGEwID0gMCwgYTAwID0gYTEwID0gKGEwICsgYTEpIC8gMjtcbiAgICAgICAgaWYgKChkYTEgLT0gcDEgKiAyKSA+IGVwc2lsb24pIHAxICo9IChjdyA/IDEgOiAtMSksIGEwMSArPSBwMSwgYTExIC09IHAxO1xuICAgICAgICBlbHNlIGRhMSA9IDAsIGEwMSA9IGExMSA9IChhMCArIGExKSAvIDI7XG4gICAgICB9XG5cbiAgICAgIHZhciB4MDEgPSByMSAqIGNvcyhhMDEpLFxuICAgICAgICAgIHkwMSA9IHIxICogc2luKGEwMSksXG4gICAgICAgICAgeDEwID0gcjAgKiBjb3MoYTEwKSxcbiAgICAgICAgICB5MTAgPSByMCAqIHNpbihhMTApO1xuXG4gICAgICAvLyBBcHBseSByb3VuZGVkIGNvcm5lcnM/XG4gICAgICBpZiAocmMgPiBlcHNpbG9uKSB7XG4gICAgICAgIHZhciB4MTEgPSByMSAqIGNvcyhhMTEpLFxuICAgICAgICAgICAgeTExID0gcjEgKiBzaW4oYTExKSxcbiAgICAgICAgICAgIHgwMCA9IHIwICogY29zKGEwMCksXG4gICAgICAgICAgICB5MDAgPSByMCAqIHNpbihhMDApLFxuICAgICAgICAgICAgb2M7XG5cbiAgICAgICAgLy8gUmVzdHJpY3QgdGhlIGNvcm5lciByYWRpdXMgYWNjb3JkaW5nIHRvIHRoZSBzZWN0b3IgYW5nbGUuIElmIHRoaXNcbiAgICAgICAgLy8gaW50ZXJzZWN0aW9uIGZhaWxzLCBpdOKAmXMgcHJvYmFibHkgYmVjYXVzZSB0aGUgYXJjIGlzIHRvbyBzbWFsbCwgc29cbiAgICAgICAgLy8gZGlzYWJsZSB0aGUgY29ybmVyIHJhZGl1cyBlbnRpcmVseS5cbiAgICAgICAgaWYgKGRhIDwgcGkpIHtcbiAgICAgICAgICBpZiAob2MgPSBpbnRlcnNlY3QoeDAxLCB5MDEsIHgwMCwgeTAwLCB4MTEsIHkxMSwgeDEwLCB5MTApKSB7XG4gICAgICAgICAgICB2YXIgYXggPSB4MDEgLSBvY1swXSxcbiAgICAgICAgICAgICAgICBheSA9IHkwMSAtIG9jWzFdLFxuICAgICAgICAgICAgICAgIGJ4ID0geDExIC0gb2NbMF0sXG4gICAgICAgICAgICAgICAgYnkgPSB5MTEgLSBvY1sxXSxcbiAgICAgICAgICAgICAgICBrYyA9IDEgLyBzaW4oYWNvcygoYXggKiBieCArIGF5ICogYnkpIC8gKHNxcnQoYXggKiBheCArIGF5ICogYXkpICogc3FydChieCAqIGJ4ICsgYnkgKiBieSkpKSAvIDIpLFxuICAgICAgICAgICAgICAgIGxjID0gc3FydChvY1swXSAqIG9jWzBdICsgb2NbMV0gKiBvY1sxXSk7XG4gICAgICAgICAgICByYzAgPSBtaW4ocmMsIChyMCAtIGxjKSAvIChrYyAtIDEpKTtcbiAgICAgICAgICAgIHJjMSA9IG1pbihyYywgKHIxIC0gbGMpIC8gKGtjICsgMSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByYzAgPSByYzEgPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJcyB0aGUgc2VjdG9yIGNvbGxhcHNlZCB0byBhIGxpbmU/XG4gICAgICBpZiAoIShkYTEgPiBlcHNpbG9uKSkgY29udGV4dC5tb3ZlVG8oeDAxLCB5MDEpO1xuXG4gICAgICAvLyBEb2VzIHRoZSBzZWN0b3LigJlzIG91dGVyIHJpbmcgaGF2ZSByb3VuZGVkIGNvcm5lcnM/XG4gICAgICBlbHNlIGlmIChyYzEgPiBlcHNpbG9uKSB7XG4gICAgICAgIHQwID0gY29ybmVyVGFuZ2VudHMoeDAwLCB5MDAsIHgwMSwgeTAxLCByMSwgcmMxLCBjdyk7XG4gICAgICAgIHQxID0gY29ybmVyVGFuZ2VudHMoeDExLCB5MTEsIHgxMCwgeTEwLCByMSwgcmMxLCBjdyk7XG5cbiAgICAgICAgY29udGV4dC5tb3ZlVG8odDAuY3ggKyB0MC54MDEsIHQwLmN5ICsgdDAueTAxKTtcblxuICAgICAgICAvLyBIYXZlIHRoZSBjb3JuZXJzIG1lcmdlZD9cbiAgICAgICAgaWYgKHJjMSA8IHJjKSBjb250ZXh0LmFyYyh0MC5jeCwgdDAuY3ksIHJjMSwgYXRhbjIodDAueTAxLCB0MC54MDEpLCBhdGFuMih0MS55MDEsIHQxLngwMSksICFjdyk7XG5cbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBkcmF3IHRoZSB0d28gY29ybmVycyBhbmQgdGhlIHJpbmcuXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGNvbnRleHQuYXJjKHQwLmN4LCB0MC5jeSwgcmMxLCBhdGFuMih0MC55MDEsIHQwLngwMSksIGF0YW4yKHQwLnkxMSwgdDAueDExKSwgIWN3KTtcbiAgICAgICAgICBjb250ZXh0LmFyYygwLCAwLCByMSwgYXRhbjIodDAuY3kgKyB0MC55MTEsIHQwLmN4ICsgdDAueDExKSwgYXRhbjIodDEuY3kgKyB0MS55MTEsIHQxLmN4ICsgdDEueDExKSwgIWN3KTtcbiAgICAgICAgICBjb250ZXh0LmFyYyh0MS5jeCwgdDEuY3ksIHJjMSwgYXRhbjIodDEueTExLCB0MS54MTEpLCBhdGFuMih0MS55MDEsIHQxLngwMSksICFjdyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT3IgaXMgdGhlIG91dGVyIHJpbmcganVzdCBhIGNpcmN1bGFyIGFyYz9cbiAgICAgIGVsc2UgY29udGV4dC5tb3ZlVG8oeDAxLCB5MDEpLCBjb250ZXh0LmFyYygwLCAwLCByMSwgYTAxLCBhMTEsICFjdyk7XG5cbiAgICAgIC8vIElzIHRoZXJlIG5vIGlubmVyIHJpbmcsIGFuZCBpdOKAmXMgYSBjaXJjdWxhciBzZWN0b3I/XG4gICAgICAvLyBPciBwZXJoYXBzIGl04oCZcyBhbiBhbm51bGFyIHNlY3RvciBjb2xsYXBzZWQgZHVlIHRvIHBhZGRpbmc/XG4gICAgICBpZiAoIShyMCA+IGVwc2lsb24pIHx8ICEoZGEwID4gZXBzaWxvbikpIGNvbnRleHQubGluZVRvKHgxMCwgeTEwKTtcblxuICAgICAgLy8gRG9lcyB0aGUgc2VjdG9y4oCZcyBpbm5lciByaW5nIChvciBwb2ludCkgaGF2ZSByb3VuZGVkIGNvcm5lcnM/XG4gICAgICBlbHNlIGlmIChyYzAgPiBlcHNpbG9uKSB7XG4gICAgICAgIHQwID0gY29ybmVyVGFuZ2VudHMoeDEwLCB5MTAsIHgxMSwgeTExLCByMCwgLXJjMCwgY3cpO1xuICAgICAgICB0MSA9IGNvcm5lclRhbmdlbnRzKHgwMSwgeTAxLCB4MDAsIHkwMCwgcjAsIC1yYzAsIGN3KTtcblxuICAgICAgICBjb250ZXh0LmxpbmVUbyh0MC5jeCArIHQwLngwMSwgdDAuY3kgKyB0MC55MDEpO1xuXG4gICAgICAgIC8vIEhhdmUgdGhlIGNvcm5lcnMgbWVyZ2VkP1xuICAgICAgICBpZiAocmMwIDwgcmMpIGNvbnRleHQuYXJjKHQwLmN4LCB0MC5jeSwgcmMwLCBhdGFuMih0MC55MDEsIHQwLngwMSksIGF0YW4yKHQxLnkwMSwgdDEueDAxKSwgIWN3KTtcblxuICAgICAgICAvLyBPdGhlcndpc2UsIGRyYXcgdGhlIHR3byBjb3JuZXJzIGFuZCB0aGUgcmluZy5cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY29udGV4dC5hcmModDAuY3gsIHQwLmN5LCByYzAsIGF0YW4yKHQwLnkwMSwgdDAueDAxKSwgYXRhbjIodDAueTExLCB0MC54MTEpLCAhY3cpO1xuICAgICAgICAgIGNvbnRleHQuYXJjKDAsIDAsIHIwLCBhdGFuMih0MC5jeSArIHQwLnkxMSwgdDAuY3ggKyB0MC54MTEpLCBhdGFuMih0MS5jeSArIHQxLnkxMSwgdDEuY3ggKyB0MS54MTEpLCBjdyk7XG4gICAgICAgICAgY29udGV4dC5hcmModDEuY3gsIHQxLmN5LCByYzAsIGF0YW4yKHQxLnkxMSwgdDEueDExKSwgYXRhbjIodDEueTAxLCB0MS54MDEpLCAhY3cpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9yIGlzIHRoZSBpbm5lciByaW5nIGp1c3QgYSBjaXJjdWxhciBhcmM/XG4gICAgICBlbHNlIGNvbnRleHQuYXJjKDAsIDAsIHIwLCBhMTAsIGEwMCwgY3cpO1xuICAgIH1cblxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XG5cbiAgICBpZiAoYnVmZmVyKSByZXR1cm4gY29udGV4dCA9IG51bGwsIGJ1ZmZlciArIFwiXCIgfHwgbnVsbDtcbiAgfVxuXG4gIGFyYy5jZW50cm9pZCA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciByID0gKCtpbm5lclJhZGl1cy5hcHBseSh0aGlzLCBhcmd1bWVudHMpICsgK291dGVyUmFkaXVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpIC8gMixcbiAgICAgICAgYSA9ICgrc3RhcnRBbmdsZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpICsgK2VuZEFuZ2xlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpIC8gMiAtIHBpIC8gMjtcbiAgICByZXR1cm4gW2NvcyhhKSAqIHIsIHNpbihhKSAqIHJdO1xuICB9O1xuXG4gIGFyYy5pbm5lclJhZGl1cyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChpbm5lclJhZGl1cyA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBhcmMpIDogaW5uZXJSYWRpdXM7XG4gIH07XG5cbiAgYXJjLm91dGVyUmFkaXVzID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKG91dGVyUmFkaXVzID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGFyYykgOiBvdXRlclJhZGl1cztcbiAgfTtcblxuICBhcmMuY29ybmVyUmFkaXVzID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGNvcm5lclJhZGl1cyA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBhcmMpIDogY29ybmVyUmFkaXVzO1xuICB9O1xuXG4gIGFyYy5wYWRSYWRpdXMgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkUmFkaXVzID0gXyA9PSBudWxsID8gbnVsbCA6IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBhcmMpIDogcGFkUmFkaXVzO1xuICB9O1xuXG4gIGFyYy5zdGFydEFuZ2xlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHN0YXJ0QW5nbGUgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgYXJjKSA6IHN0YXJ0QW5nbGU7XG4gIH07XG5cbiAgYXJjLmVuZEFuZ2xlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGVuZEFuZ2xlID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGFyYykgOiBlbmRBbmdsZTtcbiAgfTtcblxuICBhcmMucGFkQW5nbGUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkQW5nbGUgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgYXJjKSA6IHBhZEFuZ2xlO1xuICB9O1xuXG4gIGFyYy5jb250ZXh0ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKChjb250ZXh0ID0gXyA9PSBudWxsID8gbnVsbCA6IF8pLCBhcmMpIDogY29udGV4dDtcbiAgfTtcblxuICByZXR1cm4gYXJjO1xufVxuIiwKICAgICJleHBvcnQgdmFyIHNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4KSB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBcImxlbmd0aFwiIGluIHhcbiAgICA/IHggLy8gQXJyYXksIFR5cGVkQXJyYXksIE5vZGVMaXN0LCBhcnJheS1saWtlXG4gICAgOiBBcnJheS5mcm9tKHgpOyAvLyBNYXAsIFNldCwgaXRlcmFibGUsIHN0cmluZywgb3IgYW55dGhpbmcgZWxzZVxufVxuIiwKICAgICJmdW5jdGlvbiBMaW5lYXIoY29udGV4dCkge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbn1cblxuTGluZWFyLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gMDtcbiAgfSxcbiAgYXJlYUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IE5hTjtcbiAgfSxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9wb2ludCA9IDA7XG4gIH0sXG4gIGxpbmVFbmQ6IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLl9saW5lIHx8ICh0aGlzLl9saW5lICE9PSAwICYmIHRoaXMuX3BvaW50ID09PSAxKSkgdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTtcbiAgICB0aGlzLl9saW5lID0gMSAtIHRoaXMuX2xpbmU7XG4gIH0sXG4gIHBvaW50OiBmdW5jdGlvbih4LCB5KSB7XG4gICAgeCA9ICt4LCB5ID0gK3k7XG4gICAgc3dpdGNoICh0aGlzLl9wb2ludCkge1xuICAgICAgY2FzZSAwOiB0aGlzLl9wb2ludCA9IDE7IHRoaXMuX2xpbmUgPyB0aGlzLl9jb250ZXh0LmxpbmVUbyh4LCB5KSA6IHRoaXMuX2NvbnRleHQubW92ZVRvKHgsIHkpOyBicmVhaztcbiAgICAgIGNhc2UgMTogdGhpcy5fcG9pbnQgPSAyOyAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBkZWZhdWx0OiB0aGlzLl9jb250ZXh0LmxpbmVUbyh4LCB5KTsgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjb250ZXh0KSB7XG4gIHJldHVybiBuZXcgTGluZWFyKGNvbnRleHQpO1xufVxuIiwKICAgICJleHBvcnQgZnVuY3Rpb24geChwKSB7XG4gIHJldHVybiBwWzBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24geShwKSB7XG4gIHJldHVybiBwWzFdO1xufVxuIiwKICAgICJpbXBvcnQgYXJyYXkgZnJvbSBcIi4vYXJyYXkuanNcIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IGN1cnZlTGluZWFyIGZyb20gXCIuL2N1cnZlL2xpbmVhci5qc1wiO1xuaW1wb3J0IHt3aXRoUGF0aH0gZnJvbSBcIi4vcGF0aC5qc1wiO1xuaW1wb3J0IHt4IGFzIHBvaW50WCwgeSBhcyBwb2ludFl9IGZyb20gXCIuL3BvaW50LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgsIHkpIHtcbiAgdmFyIGRlZmluZWQgPSBjb25zdGFudCh0cnVlKSxcbiAgICAgIGNvbnRleHQgPSBudWxsLFxuICAgICAgY3VydmUgPSBjdXJ2ZUxpbmVhcixcbiAgICAgIG91dHB1dCA9IG51bGwsXG4gICAgICBwYXRoID0gd2l0aFBhdGgobGluZSk7XG5cbiAgeCA9IHR5cGVvZiB4ID09PSBcImZ1bmN0aW9uXCIgPyB4IDogKHggPT09IHVuZGVmaW5lZCkgPyBwb2ludFggOiBjb25zdGFudCh4KTtcbiAgeSA9IHR5cGVvZiB5ID09PSBcImZ1bmN0aW9uXCIgPyB5IDogKHkgPT09IHVuZGVmaW5lZCkgPyBwb2ludFkgOiBjb25zdGFudCh5KTtcblxuICBmdW5jdGlvbiBsaW5lKGRhdGEpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgbiA9IChkYXRhID0gYXJyYXkoZGF0YSkpLmxlbmd0aCxcbiAgICAgICAgZCxcbiAgICAgICAgZGVmaW5lZDAgPSBmYWxzZSxcbiAgICAgICAgYnVmZmVyO1xuXG4gICAgaWYgKGNvbnRleHQgPT0gbnVsbCkgb3V0cHV0ID0gY3VydmUoYnVmZmVyID0gcGF0aCgpKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPD0gbjsgKytpKSB7XG4gICAgICBpZiAoIShpIDwgbiAmJiBkZWZpbmVkKGQgPSBkYXRhW2ldLCBpLCBkYXRhKSkgPT09IGRlZmluZWQwKSB7XG4gICAgICAgIGlmIChkZWZpbmVkMCA9ICFkZWZpbmVkMCkgb3V0cHV0LmxpbmVTdGFydCgpO1xuICAgICAgICBlbHNlIG91dHB1dC5saW5lRW5kKCk7XG4gICAgICB9XG4gICAgICBpZiAoZGVmaW5lZDApIG91dHB1dC5wb2ludCgreChkLCBpLCBkYXRhKSwgK3koZCwgaSwgZGF0YSkpO1xuICAgIH1cblxuICAgIGlmIChidWZmZXIpIHJldHVybiBvdXRwdXQgPSBudWxsLCBidWZmZXIgKyBcIlwiIHx8IG51bGw7XG4gIH1cblxuICBsaW5lLnggPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoeCA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBsaW5lKSA6IHg7XG4gIH07XG5cbiAgbGluZS55ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHkgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgbGluZSkgOiB5O1xuICB9O1xuXG4gIGxpbmUuZGVmaW5lZCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkZWZpbmVkID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCghIV8pLCBsaW5lKSA6IGRlZmluZWQ7XG4gIH07XG5cbiAgbGluZS5jdXJ2ZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChjdXJ2ZSA9IF8sIGNvbnRleHQgIT0gbnVsbCAmJiAob3V0cHV0ID0gY3VydmUoY29udGV4dCkpLCBsaW5lKSA6IGN1cnZlO1xuICB9O1xuXG4gIGxpbmUuY29udGV4dCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChfID09IG51bGwgPyBjb250ZXh0ID0gb3V0cHV0ID0gbnVsbCA6IG91dHB1dCA9IGN1cnZlKGNvbnRleHQgPSBfKSwgbGluZSkgOiBjb250ZXh0O1xuICB9O1xuXG4gIHJldHVybiBsaW5lO1xufVxuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihhLCBiKSB7XG4gIHJldHVybiBiIDwgYSA/IC0xIDogYiA+IGEgPyAxIDogYiA+PSBhID8gMCA6IE5hTjtcbn1cbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oZCkge1xuICByZXR1cm4gZDtcbn1cbiIsCiAgICAiaW1wb3J0IGFycmF5IGZyb20gXCIuL2FycmF5LmpzXCI7XG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcIi4vY29uc3RhbnQuanNcIjtcbmltcG9ydCBkZXNjZW5kaW5nIGZyb20gXCIuL2Rlc2NlbmRpbmcuanNcIjtcbmltcG9ydCBpZGVudGl0eSBmcm9tIFwiLi9pZGVudGl0eS5qc1wiO1xuaW1wb3J0IHt0YXV9IGZyb20gXCIuL21hdGguanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciB2YWx1ZSA9IGlkZW50aXR5LFxuICAgICAgc29ydFZhbHVlcyA9IGRlc2NlbmRpbmcsXG4gICAgICBzb3J0ID0gbnVsbCxcbiAgICAgIHN0YXJ0QW5nbGUgPSBjb25zdGFudCgwKSxcbiAgICAgIGVuZEFuZ2xlID0gY29uc3RhbnQodGF1KSxcbiAgICAgIHBhZEFuZ2xlID0gY29uc3RhbnQoMCk7XG5cbiAgZnVuY3Rpb24gcGllKGRhdGEpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgbiA9IChkYXRhID0gYXJyYXkoZGF0YSkpLmxlbmd0aCxcbiAgICAgICAgaixcbiAgICAgICAgayxcbiAgICAgICAgc3VtID0gMCxcbiAgICAgICAgaW5kZXggPSBuZXcgQXJyYXkobiksXG4gICAgICAgIGFyY3MgPSBuZXcgQXJyYXkobiksXG4gICAgICAgIGEwID0gK3N0YXJ0QW5nbGUuYXBwbHkodGhpcywgYXJndW1lbnRzKSxcbiAgICAgICAgZGEgPSBNYXRoLm1pbih0YXUsIE1hdGgubWF4KC10YXUsIGVuZEFuZ2xlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgLSBhMCkpLFxuICAgICAgICBhMSxcbiAgICAgICAgcCA9IE1hdGgubWluKE1hdGguYWJzKGRhKSAvIG4sIHBhZEFuZ2xlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpLFxuICAgICAgICBwYSA9IHAgKiAoZGEgPCAwID8gLTEgOiAxKSxcbiAgICAgICAgdjtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmICgodiA9IGFyY3NbaW5kZXhbaV0gPSBpXSA9ICt2YWx1ZShkYXRhW2ldLCBpLCBkYXRhKSkgPiAwKSB7XG4gICAgICAgIHN1bSArPSB2O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9wdGlvbmFsbHkgc29ydCB0aGUgYXJjcyBieSBwcmV2aW91c2x5LWNvbXB1dGVkIHZhbHVlcyBvciBieSBkYXRhLlxuICAgIGlmIChzb3J0VmFsdWVzICE9IG51bGwpIGluZGV4LnNvcnQoZnVuY3Rpb24oaSwgaikgeyByZXR1cm4gc29ydFZhbHVlcyhhcmNzW2ldLCBhcmNzW2pdKTsgfSk7XG4gICAgZWxzZSBpZiAoc29ydCAhPSBudWxsKSBpbmRleC5zb3J0KGZ1bmN0aW9uKGksIGopIHsgcmV0dXJuIHNvcnQoZGF0YVtpXSwgZGF0YVtqXSk7IH0pO1xuXG4gICAgLy8gQ29tcHV0ZSB0aGUgYXJjcyEgVGhleSBhcmUgc3RvcmVkIGluIHRoZSBvcmlnaW5hbCBkYXRhJ3Mgb3JkZXIuXG4gICAgZm9yIChpID0gMCwgayA9IHN1bSA/IChkYSAtIG4gKiBwYSkgLyBzdW0gOiAwOyBpIDwgbjsgKytpLCBhMCA9IGExKSB7XG4gICAgICBqID0gaW5kZXhbaV0sIHYgPSBhcmNzW2pdLCBhMSA9IGEwICsgKHYgPiAwID8gdiAqIGsgOiAwKSArIHBhLCBhcmNzW2pdID0ge1xuICAgICAgICBkYXRhOiBkYXRhW2pdLFxuICAgICAgICBpbmRleDogaSxcbiAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgIHN0YXJ0QW5nbGU6IGEwLFxuICAgICAgICBlbmRBbmdsZTogYTEsXG4gICAgICAgIHBhZEFuZ2xlOiBwXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBhcmNzO1xuICB9XG5cbiAgcGllLnZhbHVlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHZhbHVlID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIHBpZSkgOiB2YWx1ZTtcbiAgfTtcblxuICBwaWUuc29ydFZhbHVlcyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChzb3J0VmFsdWVzID0gXywgc29ydCA9IG51bGwsIHBpZSkgOiBzb3J0VmFsdWVzO1xuICB9O1xuXG4gIHBpZS5zb3J0ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHNvcnQgPSBfLCBzb3J0VmFsdWVzID0gbnVsbCwgcGllKSA6IHNvcnQ7XG4gIH07XG5cbiAgcGllLnN0YXJ0QW5nbGUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoc3RhcnRBbmdsZSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBwaWUpIDogc3RhcnRBbmdsZTtcbiAgfTtcblxuICBwaWUuZW5kQW5nbGUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZW5kQW5nbGUgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgcGllKSA6IGVuZEFuZ2xlO1xuICB9O1xuXG4gIHBpZS5wYWRBbmdsZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChwYWRBbmdsZSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBwaWUpIDogcGFkQW5nbGU7XG4gIH07XG5cbiAgcmV0dXJuIHBpZTtcbn1cbiIsCiAgICAiaW1wb3J0IHBvaW50UmFkaWFsIGZyb20gXCIuLi9wb2ludFJhZGlhbC5qc1wiO1xuXG5jbGFzcyBCdW1wIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgeCkge1xuICAgIHRoaXMuX2NvbnRleHQgPSBjb250ZXh0O1xuICAgIHRoaXMuX3ggPSB4O1xuICB9XG4gIGFyZWFTdGFydCgpIHtcbiAgICB0aGlzLl9saW5lID0gMDtcbiAgfVxuICBhcmVhRW5kKCkge1xuICAgIHRoaXMuX2xpbmUgPSBOYU47XG4gIH1cbiAgbGluZVN0YXJ0KCkge1xuICAgIHRoaXMuX3BvaW50ID0gMDtcbiAgfVxuICBsaW5lRW5kKCkge1xuICAgIGlmICh0aGlzLl9saW5lIHx8ICh0aGlzLl9saW5lICE9PSAwICYmIHRoaXMuX3BvaW50ID09PSAxKSkgdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTtcbiAgICB0aGlzLl9saW5lID0gMSAtIHRoaXMuX2xpbmU7XG4gIH1cbiAgcG9pbnQoeCwgeSkge1xuICAgIHggPSAreCwgeSA9ICt5O1xuICAgIHN3aXRjaCAodGhpcy5fcG9pbnQpIHtcbiAgICAgIGNhc2UgMDoge1xuICAgICAgICB0aGlzLl9wb2ludCA9IDE7XG4gICAgICAgIGlmICh0aGlzLl9saW5lKSB0aGlzLl9jb250ZXh0LmxpbmVUbyh4LCB5KTtcbiAgICAgICAgZWxzZSB0aGlzLl9jb250ZXh0Lm1vdmVUbyh4LCB5KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDE6IHRoaXMuX3BvaW50ID0gMjsgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBpZiAodGhpcy5feCkgdGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHRoaXMuX3gwID0gKHRoaXMuX3gwICsgeCkgLyAyLCB0aGlzLl95MCwgdGhpcy5feDAsIHksIHgsIHkpO1xuICAgICAgICBlbHNlIHRoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyh0aGlzLl94MCwgdGhpcy5feTAgPSAodGhpcy5feTAgKyB5KSAvIDIsIHgsIHRoaXMuX3kwLCB4LCB5KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX3gwID0geCwgdGhpcy5feTAgPSB5O1xuICB9XG59XG5cbmNsYXNzIEJ1bXBSYWRpYWwge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0KSB7XG4gICAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG4gIH1cbiAgbGluZVN0YXJ0KCkge1xuICAgIHRoaXMuX3BvaW50ID0gMDtcbiAgfVxuICBsaW5lRW5kKCkge31cbiAgcG9pbnQoeCwgeSkge1xuICAgIHggPSAreCwgeSA9ICt5O1xuICAgIGlmICh0aGlzLl9wb2ludCA9PT0gMCkge1xuICAgICAgdGhpcy5fcG9pbnQgPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwMCA9IHBvaW50UmFkaWFsKHRoaXMuX3gwLCB0aGlzLl95MCk7XG4gICAgICBjb25zdCBwMSA9IHBvaW50UmFkaWFsKHRoaXMuX3gwLCB0aGlzLl95MCA9ICh0aGlzLl95MCArIHkpIC8gMik7XG4gICAgICBjb25zdCBwMiA9IHBvaW50UmFkaWFsKHgsIHRoaXMuX3kwKTtcbiAgICAgIGNvbnN0IHAzID0gcG9pbnRSYWRpYWwoeCwgeSk7XG4gICAgICB0aGlzLl9jb250ZXh0Lm1vdmVUbyguLi5wMCk7XG4gICAgICB0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oLi4ucDEsIC4uLnAyLCAuLi5wMyk7XG4gICAgfVxuICAgIHRoaXMuX3gwID0geCwgdGhpcy5feTAgPSB5O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidW1wWChjb250ZXh0KSB7XG4gIHJldHVybiBuZXcgQnVtcChjb250ZXh0LCB0cnVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1bXBZKGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBCdW1wKGNvbnRleHQsIGZhbHNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1bXBSYWRpYWwoY29udGV4dCkge1xuICByZXR1cm4gbmV3IEJ1bXBSYWRpYWwoY29udGV4dCk7XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge31cbiIsCiAgICAiZXhwb3J0IGZ1bmN0aW9uIHBvaW50KHRoYXQsIHgsIHkpIHtcbiAgdGhhdC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKFxuICAgICgyICogdGhhdC5feDAgKyB0aGF0Ll94MSkgLyAzLFxuICAgICgyICogdGhhdC5feTAgKyB0aGF0Ll95MSkgLyAzLFxuICAgICh0aGF0Ll94MCArIDIgKiB0aGF0Ll94MSkgLyAzLFxuICAgICh0aGF0Ll95MCArIDIgKiB0aGF0Ll95MSkgLyAzLFxuICAgICh0aGF0Ll94MCArIDQgKiB0aGF0Ll94MSArIHgpIC8gNixcbiAgICAodGhhdC5feTAgKyA0ICogdGhhdC5feTEgKyB5KSAvIDZcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEJhc2lzKGNvbnRleHQpIHtcbiAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG59XG5cbkJhc2lzLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gMDtcbiAgfSxcbiAgYXJlYUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IE5hTjtcbiAgfSxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxID1cbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxID0gTmFOO1xuICAgIHRoaXMuX3BvaW50ID0gMDtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgc3dpdGNoICh0aGlzLl9wb2ludCkge1xuICAgICAgY2FzZSAzOiBwb2ludCh0aGlzLCB0aGlzLl94MSwgdGhpcy5feTEpOyAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIDI6IHRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gxLCB0aGlzLl95MSk7IGJyZWFrO1xuICAgIH1cbiAgICBpZiAodGhpcy5fbGluZSB8fCAodGhpcy5fbGluZSAhPT0gMCAmJiB0aGlzLl9wb2ludCA9PT0gMSkpIHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7XG4gICAgdGhpcy5fbGluZSA9IDEgLSB0aGlzLl9saW5lO1xuICB9LFxuICBwb2ludDogZnVuY3Rpb24oeCwgeSkge1xuICAgIHggPSAreCwgeSA9ICt5O1xuICAgIHN3aXRjaCAodGhpcy5fcG9pbnQpIHtcbiAgICAgIGNhc2UgMDogdGhpcy5fcG9pbnQgPSAxOyB0aGlzLl9saW5lID8gdGhpcy5fY29udGV4dC5saW5lVG8oeCwgeSkgOiB0aGlzLl9jb250ZXh0Lm1vdmVUbyh4LCB5KTsgYnJlYWs7XG4gICAgICBjYXNlIDE6IHRoaXMuX3BvaW50ID0gMjsgYnJlYWs7XG4gICAgICBjYXNlIDI6IHRoaXMuX3BvaW50ID0gMzsgdGhpcy5fY29udGV4dC5saW5lVG8oKDUgKiB0aGlzLl94MCArIHRoaXMuX3gxKSAvIDYsICg1ICogdGhpcy5feTAgKyB0aGlzLl95MSkgLyA2KTsgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgZGVmYXVsdDogcG9pbnQodGhpcywgeCwgeSk7IGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxLCB0aGlzLl94MSA9IHg7XG4gICAgdGhpcy5feTAgPSB0aGlzLl95MSwgdGhpcy5feTEgPSB5O1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjb250ZXh0KSB7XG4gIHJldHVybiBuZXcgQmFzaXMoY29udGV4dCk7XG59XG4iLAogICAgImltcG9ydCBub29wIGZyb20gXCIuLi9ub29wLmpzXCI7XG5pbXBvcnQge3BvaW50fSBmcm9tIFwiLi9iYXNpcy5qc1wiO1xuXG5mdW5jdGlvbiBCYXNpc0Nsb3NlZChjb250ZXh0KSB7XG4gIHRoaXMuX2NvbnRleHQgPSBjb250ZXh0O1xufVxuXG5CYXNpc0Nsb3NlZC5wcm90b3R5cGUgPSB7XG4gIGFyZWFTdGFydDogbm9vcCxcbiAgYXJlYUVuZDogbm9vcCxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxID0gdGhpcy5feDIgPSB0aGlzLl94MyA9IHRoaXMuX3g0ID1cbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxID0gdGhpcy5feTIgPSB0aGlzLl95MyA9IHRoaXMuX3k0ID0gTmFOO1xuICAgIHRoaXMuX3BvaW50ID0gMDtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgc3dpdGNoICh0aGlzLl9wb2ludCkge1xuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLCB0aGlzLl95Mik7XG4gICAgICAgIHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIHRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MiArIDIgKiB0aGlzLl94MykgLyAzLCAodGhpcy5feTIgKyAyICogdGhpcy5feTMpIC8gMyk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQubGluZVRvKCh0aGlzLl94MyArIDIgKiB0aGlzLl94MikgLyAzLCAodGhpcy5feTMgKyAyICogdGhpcy5feTIpIC8gMyk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAzOiB7XG4gICAgICAgIHRoaXMucG9pbnQodGhpcy5feDIsIHRoaXMuX3kyKTtcbiAgICAgICAgdGhpcy5wb2ludCh0aGlzLl94MywgdGhpcy5feTMpO1xuICAgICAgICB0aGlzLnBvaW50KHRoaXMuX3g0LCB0aGlzLl95NCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgcG9pbnQ6IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICB4ID0gK3gsIHkgPSAreTtcbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDA6IHRoaXMuX3BvaW50ID0gMTsgdGhpcy5feDIgPSB4LCB0aGlzLl95MiA9IHk7IGJyZWFrO1xuICAgICAgY2FzZSAxOiB0aGlzLl9wb2ludCA9IDI7IHRoaXMuX3gzID0geCwgdGhpcy5feTMgPSB5OyBicmVhaztcbiAgICAgIGNhc2UgMjogdGhpcy5fcG9pbnQgPSAzOyB0aGlzLl94NCA9IHgsIHRoaXMuX3k0ID0geTsgdGhpcy5fY29udGV4dC5tb3ZlVG8oKHRoaXMuX3gwICsgNCAqIHRoaXMuX3gxICsgeCkgLyA2LCAodGhpcy5feTAgKyA0ICogdGhpcy5feTEgKyB5KSAvIDYpOyBicmVhaztcbiAgICAgIGRlZmF1bHQ6IHBvaW50KHRoaXMsIHgsIHkpOyBicmVhaztcbiAgICB9XG4gICAgdGhpcy5feDAgPSB0aGlzLl94MSwgdGhpcy5feDEgPSB4O1xuICAgIHRoaXMuX3kwID0gdGhpcy5feTEsIHRoaXMuX3kxID0geTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY29udGV4dCkge1xuICByZXR1cm4gbmV3IEJhc2lzQ2xvc2VkKGNvbnRleHQpO1xufVxuIiwKICAgICJpbXBvcnQge3BvaW50fSBmcm9tIFwiLi9iYXNpcy5qc1wiO1xuXG5mdW5jdGlvbiBCYXNpc09wZW4oY29udGV4dCkge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbn1cblxuQmFzaXNPcGVuLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gMDtcbiAgfSxcbiAgYXJlYUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IE5hTjtcbiAgfSxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxID1cbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxID0gTmFOO1xuICAgIHRoaXMuX3BvaW50ID0gMDtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuX2xpbmUgfHwgKHRoaXMuX2xpbmUgIT09IDAgJiYgdGhpcy5fcG9pbnQgPT09IDMpKSB0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIHRoaXMuX2xpbmUgPSAxIC0gdGhpcy5fbGluZTtcbiAgfSxcbiAgcG9pbnQ6IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICB4ID0gK3gsIHkgPSAreTtcbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDA6IHRoaXMuX3BvaW50ID0gMTsgYnJlYWs7XG4gICAgICBjYXNlIDE6IHRoaXMuX3BvaW50ID0gMjsgYnJlYWs7XG4gICAgICBjYXNlIDI6IHRoaXMuX3BvaW50ID0gMzsgdmFyIHgwID0gKHRoaXMuX3gwICsgNCAqIHRoaXMuX3gxICsgeCkgLyA2LCB5MCA9ICh0aGlzLl95MCArIDQgKiB0aGlzLl95MSArIHkpIC8gNjsgdGhpcy5fbGluZSA/IHRoaXMuX2NvbnRleHQubGluZVRvKHgwLCB5MCkgOiB0aGlzLl9jb250ZXh0Lm1vdmVUbyh4MCwgeTApOyBicmVhaztcbiAgICAgIGNhc2UgMzogdGhpcy5fcG9pbnQgPSA0OyAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBkZWZhdWx0OiBwb2ludCh0aGlzLCB4LCB5KTsgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuX3gwID0gdGhpcy5feDEsIHRoaXMuX3gxID0geDtcbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxLCB0aGlzLl95MSA9IHk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBCYXNpc09wZW4oY29udGV4dCk7XG59XG4iLAogICAgImltcG9ydCB7QmFzaXN9IGZyb20gXCIuL2Jhc2lzLmpzXCI7XG5cbmZ1bmN0aW9uIEJ1bmRsZShjb250ZXh0LCBiZXRhKSB7XG4gIHRoaXMuX2Jhc2lzID0gbmV3IEJhc2lzKGNvbnRleHQpO1xuICB0aGlzLl9iZXRhID0gYmV0YTtcbn1cblxuQnVuZGxlLnByb3RvdHlwZSA9IHtcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl94ID0gW107XG4gICAgdGhpcy5feSA9IFtdO1xuICAgIHRoaXMuX2Jhc2lzLmxpbmVTdGFydCgpO1xuICB9LFxuICBsaW5lRW5kOiBmdW5jdGlvbigpIHtcbiAgICB2YXIgeCA9IHRoaXMuX3gsXG4gICAgICAgIHkgPSB0aGlzLl95LFxuICAgICAgICBqID0geC5sZW5ndGggLSAxO1xuXG4gICAgaWYgKGogPiAwKSB7XG4gICAgICB2YXIgeDAgPSB4WzBdLFxuICAgICAgICAgIHkwID0geVswXSxcbiAgICAgICAgICBkeCA9IHhbal0gLSB4MCxcbiAgICAgICAgICBkeSA9IHlbal0gLSB5MCxcbiAgICAgICAgICBpID0gLTEsXG4gICAgICAgICAgdDtcblxuICAgICAgd2hpbGUgKCsraSA8PSBqKSB7XG4gICAgICAgIHQgPSBpIC8gajtcbiAgICAgICAgdGhpcy5fYmFzaXMucG9pbnQoXG4gICAgICAgICAgdGhpcy5fYmV0YSAqIHhbaV0gKyAoMSAtIHRoaXMuX2JldGEpICogKHgwICsgdCAqIGR4KSxcbiAgICAgICAgICB0aGlzLl9iZXRhICogeVtpXSArICgxIC0gdGhpcy5fYmV0YSkgKiAoeTAgKyB0ICogZHkpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5feCA9IHRoaXMuX3kgPSBudWxsO1xuICAgIHRoaXMuX2Jhc2lzLmxpbmVFbmQoKTtcbiAgfSxcbiAgcG9pbnQ6IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICB0aGlzLl94LnB1c2goK3gpO1xuICAgIHRoaXMuX3kucHVzaCgreSk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiBjdXN0b20oYmV0YSkge1xuXG4gIGZ1bmN0aW9uIGJ1bmRsZShjb250ZXh0KSB7XG4gICAgcmV0dXJuIGJldGEgPT09IDEgPyBuZXcgQmFzaXMoY29udGV4dCkgOiBuZXcgQnVuZGxlKGNvbnRleHQsIGJldGEpO1xuICB9XG5cbiAgYnVuZGxlLmJldGEgPSBmdW5jdGlvbihiZXRhKSB7XG4gICAgcmV0dXJuIGN1c3RvbSgrYmV0YSk7XG4gIH07XG5cbiAgcmV0dXJuIGJ1bmRsZTtcbn0pKDAuODUpO1xuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gcG9pbnQodGhhdCwgeCwgeSkge1xuICB0aGF0Ll9jb250ZXh0LmJlemllckN1cnZlVG8oXG4gICAgdGhhdC5feDEgKyB0aGF0Ll9rICogKHRoYXQuX3gyIC0gdGhhdC5feDApLFxuICAgIHRoYXQuX3kxICsgdGhhdC5fayAqICh0aGF0Ll95MiAtIHRoYXQuX3kwKSxcbiAgICB0aGF0Ll94MiArIHRoYXQuX2sgKiAodGhhdC5feDEgLSB4KSxcbiAgICB0aGF0Ll95MiArIHRoYXQuX2sgKiAodGhhdC5feTEgLSB5KSxcbiAgICB0aGF0Ll94MixcbiAgICB0aGF0Ll95MlxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2FyZGluYWwoY29udGV4dCwgdGVuc2lvbikge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbiAgdGhpcy5fayA9ICgxIC0gdGVuc2lvbikgLyA2O1xufVxuXG5DYXJkaW5hbC5wcm90b3R5cGUgPSB7XG4gIGFyZWFTdGFydDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IDA7XG4gIH0sXG4gIGFyZWFFbmQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX2xpbmUgPSBOYU47XG4gIH0sXG4gIGxpbmVTdGFydDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5feDAgPSB0aGlzLl94MSA9IHRoaXMuX3gyID1cbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxID0gdGhpcy5feTIgPSBOYU47XG4gICAgdGhpcy5fcG9pbnQgPSAwO1xuICB9LFxuICBsaW5lRW5kOiBmdW5jdGlvbigpIHtcbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDI6IHRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLCB0aGlzLl95Mik7IGJyZWFrO1xuICAgICAgY2FzZSAzOiBwb2ludCh0aGlzLCB0aGlzLl94MSwgdGhpcy5feTEpOyBicmVhaztcbiAgICB9XG4gICAgaWYgKHRoaXMuX2xpbmUgfHwgKHRoaXMuX2xpbmUgIT09IDAgJiYgdGhpcy5fcG9pbnQgPT09IDEpKSB0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIHRoaXMuX2xpbmUgPSAxIC0gdGhpcy5fbGluZTtcbiAgfSxcbiAgcG9pbnQ6IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICB4ID0gK3gsIHkgPSAreTtcbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDA6IHRoaXMuX3BvaW50ID0gMTsgdGhpcy5fbGluZSA/IHRoaXMuX2NvbnRleHQubGluZVRvKHgsIHkpIDogdGhpcy5fY29udGV4dC5tb3ZlVG8oeCwgeSk7IGJyZWFrO1xuICAgICAgY2FzZSAxOiB0aGlzLl9wb2ludCA9IDI7IHRoaXMuX3gxID0geCwgdGhpcy5feTEgPSB5OyBicmVhaztcbiAgICAgIGNhc2UgMjogdGhpcy5fcG9pbnQgPSAzOyAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBkZWZhdWx0OiBwb2ludCh0aGlzLCB4LCB5KTsgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuX3gwID0gdGhpcy5feDEsIHRoaXMuX3gxID0gdGhpcy5feDIsIHRoaXMuX3gyID0geDtcbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxLCB0aGlzLl95MSA9IHRoaXMuX3kyLCB0aGlzLl95MiA9IHk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiBjdXN0b20odGVuc2lvbikge1xuXG4gIGZ1bmN0aW9uIGNhcmRpbmFsKGNvbnRleHQpIHtcbiAgICByZXR1cm4gbmV3IENhcmRpbmFsKGNvbnRleHQsIHRlbnNpb24pO1xuICB9XG5cbiAgY2FyZGluYWwudGVuc2lvbiA9IGZ1bmN0aW9uKHRlbnNpb24pIHtcbiAgICByZXR1cm4gY3VzdG9tKCt0ZW5zaW9uKTtcbiAgfTtcblxuICByZXR1cm4gY2FyZGluYWw7XG59KSgwKTtcbiIsCiAgICAiaW1wb3J0IG5vb3AgZnJvbSBcIi4uL25vb3AuanNcIjtcbmltcG9ydCB7cG9pbnR9IGZyb20gXCIuL2NhcmRpbmFsLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBDYXJkaW5hbENsb3NlZChjb250ZXh0LCB0ZW5zaW9uKSB7XG4gIHRoaXMuX2NvbnRleHQgPSBjb250ZXh0O1xuICB0aGlzLl9rID0gKDEgLSB0ZW5zaW9uKSAvIDY7XG59XG5cbkNhcmRpbmFsQ2xvc2VkLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBub29wLFxuICBhcmVhRW5kOiBub29wLFxuICBsaW5lU3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX3gwID0gdGhpcy5feDEgPSB0aGlzLl94MiA9IHRoaXMuX3gzID0gdGhpcy5feDQgPSB0aGlzLl94NSA9XG4gICAgdGhpcy5feTAgPSB0aGlzLl95MSA9IHRoaXMuX3kyID0gdGhpcy5feTMgPSB0aGlzLl95NCA9IHRoaXMuX3k1ID0gTmFOO1xuICAgIHRoaXMuX3BvaW50ID0gMDtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgc3dpdGNoICh0aGlzLl9wb2ludCkge1xuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLCB0aGlzLl95Myk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIHRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLCB0aGlzLl95Myk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAzOiB7XG4gICAgICAgIHRoaXMucG9pbnQodGhpcy5feDMsIHRoaXMuX3kzKTtcbiAgICAgICAgdGhpcy5wb2ludCh0aGlzLl94NCwgdGhpcy5feTQpO1xuICAgICAgICB0aGlzLnBvaW50KHRoaXMuX3g1LCB0aGlzLl95NSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgcG9pbnQ6IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICB4ID0gK3gsIHkgPSAreTtcbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDA6IHRoaXMuX3BvaW50ID0gMTsgdGhpcy5feDMgPSB4LCB0aGlzLl95MyA9IHk7IGJyZWFrO1xuICAgICAgY2FzZSAxOiB0aGlzLl9wb2ludCA9IDI7IHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0ID0geCwgdGhpcy5feTQgPSB5KTsgYnJlYWs7XG4gICAgICBjYXNlIDI6IHRoaXMuX3BvaW50ID0gMzsgdGhpcy5feDUgPSB4LCB0aGlzLl95NSA9IHk7IGJyZWFrO1xuICAgICAgZGVmYXVsdDogcG9pbnQodGhpcywgeCwgeSk7IGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxLCB0aGlzLl94MSA9IHRoaXMuX3gyLCB0aGlzLl94MiA9IHg7XG4gICAgdGhpcy5feTAgPSB0aGlzLl95MSwgdGhpcy5feTEgPSB0aGlzLl95MiwgdGhpcy5feTIgPSB5O1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoZnVuY3Rpb24gY3VzdG9tKHRlbnNpb24pIHtcblxuICBmdW5jdGlvbiBjYXJkaW5hbChjb250ZXh0KSB7XG4gICAgcmV0dXJuIG5ldyBDYXJkaW5hbENsb3NlZChjb250ZXh0LCB0ZW5zaW9uKTtcbiAgfVxuXG4gIGNhcmRpbmFsLnRlbnNpb24gPSBmdW5jdGlvbih0ZW5zaW9uKSB7XG4gICAgcmV0dXJuIGN1c3RvbSgrdGVuc2lvbik7XG4gIH07XG5cbiAgcmV0dXJuIGNhcmRpbmFsO1xufSkoMCk7XG4iLAogICAgImltcG9ydCB7cG9pbnR9IGZyb20gXCIuL2NhcmRpbmFsLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBDYXJkaW5hbE9wZW4oY29udGV4dCwgdGVuc2lvbikge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbiAgdGhpcy5fayA9ICgxIC0gdGVuc2lvbikgLyA2O1xufVxuXG5DYXJkaW5hbE9wZW4ucHJvdG90eXBlID0ge1xuICBhcmVhU3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX2xpbmUgPSAwO1xuICB9LFxuICBhcmVhRW5kOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gTmFOO1xuICB9LFxuICBsaW5lU3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX3gwID0gdGhpcy5feDEgPSB0aGlzLl94MiA9XG4gICAgdGhpcy5feTAgPSB0aGlzLl95MSA9IHRoaXMuX3kyID0gTmFOO1xuICAgIHRoaXMuX3BvaW50ID0gMDtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuX2xpbmUgfHwgKHRoaXMuX2xpbmUgIT09IDAgJiYgdGhpcy5fcG9pbnQgPT09IDMpKSB0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIHRoaXMuX2xpbmUgPSAxIC0gdGhpcy5fbGluZTtcbiAgfSxcbiAgcG9pbnQ6IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICB4ID0gK3gsIHkgPSAreTtcbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDA6IHRoaXMuX3BvaW50ID0gMTsgYnJlYWs7XG4gICAgICBjYXNlIDE6IHRoaXMuX3BvaW50ID0gMjsgYnJlYWs7XG4gICAgICBjYXNlIDI6IHRoaXMuX3BvaW50ID0gMzsgdGhpcy5fbGluZSA/IHRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLCB0aGlzLl95MikgOiB0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94MiwgdGhpcy5feTIpOyBicmVhaztcbiAgICAgIGNhc2UgMzogdGhpcy5fcG9pbnQgPSA0OyAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBkZWZhdWx0OiBwb2ludCh0aGlzLCB4LCB5KTsgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuX3gwID0gdGhpcy5feDEsIHRoaXMuX3gxID0gdGhpcy5feDIsIHRoaXMuX3gyID0geDtcbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxLCB0aGlzLl95MSA9IHRoaXMuX3kyLCB0aGlzLl95MiA9IHk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiBjdXN0b20odGVuc2lvbikge1xuXG4gIGZ1bmN0aW9uIGNhcmRpbmFsKGNvbnRleHQpIHtcbiAgICByZXR1cm4gbmV3IENhcmRpbmFsT3Blbihjb250ZXh0LCB0ZW5zaW9uKTtcbiAgfVxuXG4gIGNhcmRpbmFsLnRlbnNpb24gPSBmdW5jdGlvbih0ZW5zaW9uKSB7XG4gICAgcmV0dXJuIGN1c3RvbSgrdGVuc2lvbik7XG4gIH07XG5cbiAgcmV0dXJuIGNhcmRpbmFsO1xufSkoMCk7XG4iLAogICAgImltcG9ydCB7ZXBzaWxvbn0gZnJvbSBcIi4uL21hdGguanNcIjtcbmltcG9ydCB7Q2FyZGluYWx9IGZyb20gXCIuL2NhcmRpbmFsLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwb2ludCh0aGF0LCB4LCB5KSB7XG4gIHZhciB4MSA9IHRoYXQuX3gxLFxuICAgICAgeTEgPSB0aGF0Ll95MSxcbiAgICAgIHgyID0gdGhhdC5feDIsXG4gICAgICB5MiA9IHRoYXQuX3kyO1xuXG4gIGlmICh0aGF0Ll9sMDFfYSA+IGVwc2lsb24pIHtcbiAgICB2YXIgYSA9IDIgKiB0aGF0Ll9sMDFfMmEgKyAzICogdGhhdC5fbDAxX2EgKiB0aGF0Ll9sMTJfYSArIHRoYXQuX2wxMl8yYSxcbiAgICAgICAgbiA9IDMgKiB0aGF0Ll9sMDFfYSAqICh0aGF0Ll9sMDFfYSArIHRoYXQuX2wxMl9hKTtcbiAgICB4MSA9ICh4MSAqIGEgLSB0aGF0Ll94MCAqIHRoYXQuX2wxMl8yYSArIHRoYXQuX3gyICogdGhhdC5fbDAxXzJhKSAvIG47XG4gICAgeTEgPSAoeTEgKiBhIC0gdGhhdC5feTAgKiB0aGF0Ll9sMTJfMmEgKyB0aGF0Ll95MiAqIHRoYXQuX2wwMV8yYSkgLyBuO1xuICB9XG5cbiAgaWYgKHRoYXQuX2wyM19hID4gZXBzaWxvbikge1xuICAgIHZhciBiID0gMiAqIHRoYXQuX2wyM18yYSArIDMgKiB0aGF0Ll9sMjNfYSAqIHRoYXQuX2wxMl9hICsgdGhhdC5fbDEyXzJhLFxuICAgICAgICBtID0gMyAqIHRoYXQuX2wyM19hICogKHRoYXQuX2wyM19hICsgdGhhdC5fbDEyX2EpO1xuICAgIHgyID0gKHgyICogYiArIHRoYXQuX3gxICogdGhhdC5fbDIzXzJhIC0geCAqIHRoYXQuX2wxMl8yYSkgLyBtO1xuICAgIHkyID0gKHkyICogYiArIHRoYXQuX3kxICogdGhhdC5fbDIzXzJhIC0geSAqIHRoYXQuX2wxMl8yYSkgLyBtO1xuICB9XG5cbiAgdGhhdC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHgxLCB5MSwgeDIsIHkyLCB0aGF0Ll94MiwgdGhhdC5feTIpO1xufVxuXG5mdW5jdGlvbiBDYXRtdWxsUm9tKGNvbnRleHQsIGFscGhhKSB7XG4gIHRoaXMuX2NvbnRleHQgPSBjb250ZXh0O1xuICB0aGlzLl9hbHBoYSA9IGFscGhhO1xufVxuXG5DYXRtdWxsUm9tLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gMDtcbiAgfSxcbiAgYXJlYUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IE5hTjtcbiAgfSxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxID0gdGhpcy5feDIgPVxuICAgIHRoaXMuX3kwID0gdGhpcy5feTEgPSB0aGlzLl95MiA9IE5hTjtcbiAgICB0aGlzLl9sMDFfYSA9IHRoaXMuX2wxMl9hID0gdGhpcy5fbDIzX2EgPVxuICAgIHRoaXMuX2wwMV8yYSA9IHRoaXMuX2wxMl8yYSA9IHRoaXMuX2wyM18yYSA9XG4gICAgdGhpcy5fcG9pbnQgPSAwO1xuICB9LFxuICBsaW5lRW5kOiBmdW5jdGlvbigpIHtcbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDI6IHRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLCB0aGlzLl95Mik7IGJyZWFrO1xuICAgICAgY2FzZSAzOiB0aGlzLnBvaW50KHRoaXMuX3gyLCB0aGlzLl95Mik7IGJyZWFrO1xuICAgIH1cbiAgICBpZiAodGhpcy5fbGluZSB8fCAodGhpcy5fbGluZSAhPT0gMCAmJiB0aGlzLl9wb2ludCA9PT0gMSkpIHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7XG4gICAgdGhpcy5fbGluZSA9IDEgLSB0aGlzLl9saW5lO1xuICB9LFxuICBwb2ludDogZnVuY3Rpb24oeCwgeSkge1xuICAgIHggPSAreCwgeSA9ICt5O1xuXG4gICAgaWYgKHRoaXMuX3BvaW50KSB7XG4gICAgICB2YXIgeDIzID0gdGhpcy5feDIgLSB4LFxuICAgICAgICAgIHkyMyA9IHRoaXMuX3kyIC0geTtcbiAgICAgIHRoaXMuX2wyM19hID0gTWF0aC5zcXJ0KHRoaXMuX2wyM18yYSA9IE1hdGgucG93KHgyMyAqIHgyMyArIHkyMyAqIHkyMywgdGhpcy5fYWxwaGEpKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDA6IHRoaXMuX3BvaW50ID0gMTsgdGhpcy5fbGluZSA/IHRoaXMuX2NvbnRleHQubGluZVRvKHgsIHkpIDogdGhpcy5fY29udGV4dC5tb3ZlVG8oeCwgeSk7IGJyZWFrO1xuICAgICAgY2FzZSAxOiB0aGlzLl9wb2ludCA9IDI7IGJyZWFrO1xuICAgICAgY2FzZSAyOiB0aGlzLl9wb2ludCA9IDM7IC8vIGZhbGxzIHRocm91Z2hcbiAgICAgIGRlZmF1bHQ6IHBvaW50KHRoaXMsIHgsIHkpOyBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLl9sMDFfYSA9IHRoaXMuX2wxMl9hLCB0aGlzLl9sMTJfYSA9IHRoaXMuX2wyM19hO1xuICAgIHRoaXMuX2wwMV8yYSA9IHRoaXMuX2wxMl8yYSwgdGhpcy5fbDEyXzJhID0gdGhpcy5fbDIzXzJhO1xuICAgIHRoaXMuX3gwID0gdGhpcy5feDEsIHRoaXMuX3gxID0gdGhpcy5feDIsIHRoaXMuX3gyID0geDtcbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxLCB0aGlzLl95MSA9IHRoaXMuX3kyLCB0aGlzLl95MiA9IHk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiBjdXN0b20oYWxwaGEpIHtcblxuICBmdW5jdGlvbiBjYXRtdWxsUm9tKGNvbnRleHQpIHtcbiAgICByZXR1cm4gYWxwaGEgPyBuZXcgQ2F0bXVsbFJvbShjb250ZXh0LCBhbHBoYSkgOiBuZXcgQ2FyZGluYWwoY29udGV4dCwgMCk7XG4gIH1cblxuICBjYXRtdWxsUm9tLmFscGhhID0gZnVuY3Rpb24oYWxwaGEpIHtcbiAgICByZXR1cm4gY3VzdG9tKCthbHBoYSk7XG4gIH07XG5cbiAgcmV0dXJuIGNhdG11bGxSb207XG59KSgwLjUpO1xuIiwKICAgICJpbXBvcnQge0NhcmRpbmFsQ2xvc2VkfSBmcm9tIFwiLi9jYXJkaW5hbENsb3NlZC5qc1wiO1xuaW1wb3J0IG5vb3AgZnJvbSBcIi4uL25vb3AuanNcIjtcbmltcG9ydCB7cG9pbnR9IGZyb20gXCIuL2NhdG11bGxSb20uanNcIjtcblxuZnVuY3Rpb24gQ2F0bXVsbFJvbUNsb3NlZChjb250ZXh0LCBhbHBoYSkge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbiAgdGhpcy5fYWxwaGEgPSBhbHBoYTtcbn1cblxuQ2F0bXVsbFJvbUNsb3NlZC5wcm90b3R5cGUgPSB7XG4gIGFyZWFTdGFydDogbm9vcCxcbiAgYXJlYUVuZDogbm9vcCxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxID0gdGhpcy5feDIgPSB0aGlzLl94MyA9IHRoaXMuX3g0ID0gdGhpcy5feDUgPVxuICAgIHRoaXMuX3kwID0gdGhpcy5feTEgPSB0aGlzLl95MiA9IHRoaXMuX3kzID0gdGhpcy5feTQgPSB0aGlzLl95NSA9IE5hTjtcbiAgICB0aGlzLl9sMDFfYSA9IHRoaXMuX2wxMl9hID0gdGhpcy5fbDIzX2EgPVxuICAgIHRoaXMuX2wwMV8yYSA9IHRoaXMuX2wxMl8yYSA9IHRoaXMuX2wyM18yYSA9XG4gICAgdGhpcy5fcG9pbnQgPSAwO1xuICB9LFxuICBsaW5lRW5kOiBmdW5jdGlvbigpIHtcbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDE6IHtcbiAgICAgICAgdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsIHRoaXMuX3kzKTtcbiAgICAgICAgdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDI6IHtcbiAgICAgICAgdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsIHRoaXMuX3kzKTtcbiAgICAgICAgdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgdGhpcy5wb2ludCh0aGlzLl94MywgdGhpcy5feTMpO1xuICAgICAgICB0aGlzLnBvaW50KHRoaXMuX3g0LCB0aGlzLl95NCk7XG4gICAgICAgIHRoaXMucG9pbnQodGhpcy5feDUsIHRoaXMuX3k1KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBwb2ludDogZnVuY3Rpb24oeCwgeSkge1xuICAgIHggPSAreCwgeSA9ICt5O1xuXG4gICAgaWYgKHRoaXMuX3BvaW50KSB7XG4gICAgICB2YXIgeDIzID0gdGhpcy5feDIgLSB4LFxuICAgICAgICAgIHkyMyA9IHRoaXMuX3kyIC0geTtcbiAgICAgIHRoaXMuX2wyM19hID0gTWF0aC5zcXJ0KHRoaXMuX2wyM18yYSA9IE1hdGgucG93KHgyMyAqIHgyMyArIHkyMyAqIHkyMywgdGhpcy5fYWxwaGEpKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDA6IHRoaXMuX3BvaW50ID0gMTsgdGhpcy5feDMgPSB4LCB0aGlzLl95MyA9IHk7IGJyZWFrO1xuICAgICAgY2FzZSAxOiB0aGlzLl9wb2ludCA9IDI7IHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0ID0geCwgdGhpcy5feTQgPSB5KTsgYnJlYWs7XG4gICAgICBjYXNlIDI6IHRoaXMuX3BvaW50ID0gMzsgdGhpcy5feDUgPSB4LCB0aGlzLl95NSA9IHk7IGJyZWFrO1xuICAgICAgZGVmYXVsdDogcG9pbnQodGhpcywgeCwgeSk7IGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMuX2wwMV9hID0gdGhpcy5fbDEyX2EsIHRoaXMuX2wxMl9hID0gdGhpcy5fbDIzX2E7XG4gICAgdGhpcy5fbDAxXzJhID0gdGhpcy5fbDEyXzJhLCB0aGlzLl9sMTJfMmEgPSB0aGlzLl9sMjNfMmE7XG4gICAgdGhpcy5feDAgPSB0aGlzLl94MSwgdGhpcy5feDEgPSB0aGlzLl94MiwgdGhpcy5feDIgPSB4O1xuICAgIHRoaXMuX3kwID0gdGhpcy5feTEsIHRoaXMuX3kxID0gdGhpcy5feTIsIHRoaXMuX3kyID0geTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgKGZ1bmN0aW9uIGN1c3RvbShhbHBoYSkge1xuXG4gIGZ1bmN0aW9uIGNhdG11bGxSb20oY29udGV4dCkge1xuICAgIHJldHVybiBhbHBoYSA/IG5ldyBDYXRtdWxsUm9tQ2xvc2VkKGNvbnRleHQsIGFscGhhKSA6IG5ldyBDYXJkaW5hbENsb3NlZChjb250ZXh0LCAwKTtcbiAgfVxuXG4gIGNhdG11bGxSb20uYWxwaGEgPSBmdW5jdGlvbihhbHBoYSkge1xuICAgIHJldHVybiBjdXN0b20oK2FscGhhKTtcbiAgfTtcblxuICByZXR1cm4gY2F0bXVsbFJvbTtcbn0pKDAuNSk7XG4iLAogICAgImltcG9ydCB7Q2FyZGluYWxPcGVufSBmcm9tIFwiLi9jYXJkaW5hbE9wZW4uanNcIjtcbmltcG9ydCB7cG9pbnR9IGZyb20gXCIuL2NhdG11bGxSb20uanNcIjtcblxuZnVuY3Rpb24gQ2F0bXVsbFJvbU9wZW4oY29udGV4dCwgYWxwaGEpIHtcbiAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG4gIHRoaXMuX2FscGhhID0gYWxwaGE7XG59XG5cbkNhdG11bGxSb21PcGVuLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gMDtcbiAgfSxcbiAgYXJlYUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IE5hTjtcbiAgfSxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxID0gdGhpcy5feDIgPVxuICAgIHRoaXMuX3kwID0gdGhpcy5feTEgPSB0aGlzLl95MiA9IE5hTjtcbiAgICB0aGlzLl9sMDFfYSA9IHRoaXMuX2wxMl9hID0gdGhpcy5fbDIzX2EgPVxuICAgIHRoaXMuX2wwMV8yYSA9IHRoaXMuX2wxMl8yYSA9IHRoaXMuX2wyM18yYSA9XG4gICAgdGhpcy5fcG9pbnQgPSAwO1xuICB9LFxuICBsaW5lRW5kOiBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5fbGluZSB8fCAodGhpcy5fbGluZSAhPT0gMCAmJiB0aGlzLl9wb2ludCA9PT0gMykpIHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7XG4gICAgdGhpcy5fbGluZSA9IDEgLSB0aGlzLl9saW5lO1xuICB9LFxuICBwb2ludDogZnVuY3Rpb24oeCwgeSkge1xuICAgIHggPSAreCwgeSA9ICt5O1xuXG4gICAgaWYgKHRoaXMuX3BvaW50KSB7XG4gICAgICB2YXIgeDIzID0gdGhpcy5feDIgLSB4LFxuICAgICAgICAgIHkyMyA9IHRoaXMuX3kyIC0geTtcbiAgICAgIHRoaXMuX2wyM19hID0gTWF0aC5zcXJ0KHRoaXMuX2wyM18yYSA9IE1hdGgucG93KHgyMyAqIHgyMyArIHkyMyAqIHkyMywgdGhpcy5fYWxwaGEpKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDA6IHRoaXMuX3BvaW50ID0gMTsgYnJlYWs7XG4gICAgICBjYXNlIDE6IHRoaXMuX3BvaW50ID0gMjsgYnJlYWs7XG4gICAgICBjYXNlIDI6IHRoaXMuX3BvaW50ID0gMzsgdGhpcy5fbGluZSA/IHRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLCB0aGlzLl95MikgOiB0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94MiwgdGhpcy5feTIpOyBicmVhaztcbiAgICAgIGNhc2UgMzogdGhpcy5fcG9pbnQgPSA0OyAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBkZWZhdWx0OiBwb2ludCh0aGlzLCB4LCB5KTsgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy5fbDAxX2EgPSB0aGlzLl9sMTJfYSwgdGhpcy5fbDEyX2EgPSB0aGlzLl9sMjNfYTtcbiAgICB0aGlzLl9sMDFfMmEgPSB0aGlzLl9sMTJfMmEsIHRoaXMuX2wxMl8yYSA9IHRoaXMuX2wyM18yYTtcbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxLCB0aGlzLl94MSA9IHRoaXMuX3gyLCB0aGlzLl94MiA9IHg7XG4gICAgdGhpcy5feTAgPSB0aGlzLl95MSwgdGhpcy5feTEgPSB0aGlzLl95MiwgdGhpcy5feTIgPSB5O1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoZnVuY3Rpb24gY3VzdG9tKGFscGhhKSB7XG5cbiAgZnVuY3Rpb24gY2F0bXVsbFJvbShjb250ZXh0KSB7XG4gICAgcmV0dXJuIGFscGhhID8gbmV3IENhdG11bGxSb21PcGVuKGNvbnRleHQsIGFscGhhKSA6IG5ldyBDYXJkaW5hbE9wZW4oY29udGV4dCwgMCk7XG4gIH1cblxuICBjYXRtdWxsUm9tLmFscGhhID0gZnVuY3Rpb24oYWxwaGEpIHtcbiAgICByZXR1cm4gY3VzdG9tKCthbHBoYSk7XG4gIH07XG5cbiAgcmV0dXJuIGNhdG11bGxSb207XG59KSgwLjUpO1xuIiwKICAgICJpbXBvcnQgbm9vcCBmcm9tIFwiLi4vbm9vcC5qc1wiO1xuXG5mdW5jdGlvbiBMaW5lYXJDbG9zZWQoY29udGV4dCkge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbn1cblxuTGluZWFyQ2xvc2VkLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBub29wLFxuICBhcmVhRW5kOiBub29wLFxuICBsaW5lU3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX3BvaW50ID0gMDtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuX3BvaW50KSB0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO1xuICB9LFxuICBwb2ludDogZnVuY3Rpb24oeCwgeSkge1xuICAgIHggPSAreCwgeSA9ICt5O1xuICAgIGlmICh0aGlzLl9wb2ludCkgdGhpcy5fY29udGV4dC5saW5lVG8oeCwgeSk7XG4gICAgZWxzZSB0aGlzLl9wb2ludCA9IDEsIHRoaXMuX2NvbnRleHQubW92ZVRvKHgsIHkpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjb250ZXh0KSB7XG4gIHJldHVybiBuZXcgTGluZWFyQ2xvc2VkKGNvbnRleHQpO1xufVxuIiwKICAgICJmdW5jdGlvbiBzaWduKHgpIHtcbiAgcmV0dXJuIHggPCAwID8gLTEgOiAxO1xufVxuXG4vLyBDYWxjdWxhdGUgdGhlIHNsb3BlcyBvZiB0aGUgdGFuZ2VudHMgKEhlcm1pdGUtdHlwZSBpbnRlcnBvbGF0aW9uKSBiYXNlZCBvblxuLy8gdGhlIGZvbGxvd2luZyBwYXBlcjogU3RlZmZlbiwgTS4gMTk5MC4gQSBTaW1wbGUgTWV0aG9kIGZvciBNb25vdG9uaWNcbi8vIEludGVycG9sYXRpb24gaW4gT25lIERpbWVuc2lvbi4gQXN0cm9ub215IGFuZCBBc3Ryb3BoeXNpY3MsIFZvbC4gMjM5LCBOTy5cbi8vIE5PVihJSSksIFAuIDQ0MywgMTk5MC5cbmZ1bmN0aW9uIHNsb3BlMyh0aGF0LCB4MiwgeTIpIHtcbiAgdmFyIGgwID0gdGhhdC5feDEgLSB0aGF0Ll94MCxcbiAgICAgIGgxID0geDIgLSB0aGF0Ll94MSxcbiAgICAgIHMwID0gKHRoYXQuX3kxIC0gdGhhdC5feTApIC8gKGgwIHx8IGgxIDwgMCAmJiAtMCksXG4gICAgICBzMSA9ICh5MiAtIHRoYXQuX3kxKSAvIChoMSB8fCBoMCA8IDAgJiYgLTApLFxuICAgICAgcCA9IChzMCAqIGgxICsgczEgKiBoMCkgLyAoaDAgKyBoMSk7XG4gIHJldHVybiAoc2lnbihzMCkgKyBzaWduKHMxKSkgKiBNYXRoLm1pbihNYXRoLmFicyhzMCksIE1hdGguYWJzKHMxKSwgMC41ICogTWF0aC5hYnMocCkpIHx8IDA7XG59XG5cbi8vIENhbGN1bGF0ZSBhIG9uZS1zaWRlZCBzbG9wZS5cbmZ1bmN0aW9uIHNsb3BlMih0aGF0LCB0KSB7XG4gIHZhciBoID0gdGhhdC5feDEgLSB0aGF0Ll94MDtcbiAgcmV0dXJuIGggPyAoMyAqICh0aGF0Ll95MSAtIHRoYXQuX3kwKSAvIGggLSB0KSAvIDIgOiB0O1xufVxuXG4vLyBBY2NvcmRpbmcgdG8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ3ViaWNfSGVybWl0ZV9zcGxpbmUjUmVwcmVzZW50YXRpb25zXG4vLyBcInlvdSBjYW4gZXhwcmVzcyBjdWJpYyBIZXJtaXRlIGludGVycG9sYXRpb24gaW4gdGVybXMgb2YgY3ViaWMgQsOpemllciBjdXJ2ZXNcbi8vIHdpdGggcmVzcGVjdCB0byB0aGUgZm91ciB2YWx1ZXMgcDAsIHAwICsgbTAgLyAzLCBwMSAtIG0xIC8gMywgcDFcIi5cbmZ1bmN0aW9uIHBvaW50KHRoYXQsIHQwLCB0MSkge1xuICB2YXIgeDAgPSB0aGF0Ll94MCxcbiAgICAgIHkwID0gdGhhdC5feTAsXG4gICAgICB4MSA9IHRoYXQuX3gxLFxuICAgICAgeTEgPSB0aGF0Ll95MSxcbiAgICAgIGR4ID0gKHgxIC0geDApIC8gMztcbiAgdGhhdC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHgwICsgZHgsIHkwICsgZHggKiB0MCwgeDEgLSBkeCwgeTEgLSBkeCAqIHQxLCB4MSwgeTEpO1xufVxuXG5mdW5jdGlvbiBNb25vdG9uZVgoY29udGV4dCkge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbn1cblxuTW9ub3RvbmVYLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gMDtcbiAgfSxcbiAgYXJlYUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IE5hTjtcbiAgfSxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxID1cbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxID1cbiAgICB0aGlzLl90MCA9IE5hTjtcbiAgICB0aGlzLl9wb2ludCA9IDA7XG4gIH0sXG4gIGxpbmVFbmQ6IGZ1bmN0aW9uKCkge1xuICAgIHN3aXRjaCAodGhpcy5fcG9pbnQpIHtcbiAgICAgIGNhc2UgMjogdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsIHRoaXMuX3kxKTsgYnJlYWs7XG4gICAgICBjYXNlIDM6IHBvaW50KHRoaXMsIHRoaXMuX3QwLCBzbG9wZTIodGhpcywgdGhpcy5fdDApKTsgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0aGlzLl9saW5lIHx8ICh0aGlzLl9saW5lICE9PSAwICYmIHRoaXMuX3BvaW50ID09PSAxKSkgdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTtcbiAgICB0aGlzLl9saW5lID0gMSAtIHRoaXMuX2xpbmU7XG4gIH0sXG4gIHBvaW50OiBmdW5jdGlvbih4LCB5KSB7XG4gICAgdmFyIHQxID0gTmFOO1xuXG4gICAgeCA9ICt4LCB5ID0gK3k7XG4gICAgaWYgKHggPT09IHRoaXMuX3gxICYmIHkgPT09IHRoaXMuX3kxKSByZXR1cm47IC8vIElnbm9yZSBjb2luY2lkZW50IHBvaW50cy5cbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDA6IHRoaXMuX3BvaW50ID0gMTsgdGhpcy5fbGluZSA/IHRoaXMuX2NvbnRleHQubGluZVRvKHgsIHkpIDogdGhpcy5fY29udGV4dC5tb3ZlVG8oeCwgeSk7IGJyZWFrO1xuICAgICAgY2FzZSAxOiB0aGlzLl9wb2ludCA9IDI7IGJyZWFrO1xuICAgICAgY2FzZSAyOiB0aGlzLl9wb2ludCA9IDM7IHBvaW50KHRoaXMsIHNsb3BlMih0aGlzLCB0MSA9IHNsb3BlMyh0aGlzLCB4LCB5KSksIHQxKTsgYnJlYWs7XG4gICAgICBkZWZhdWx0OiBwb2ludCh0aGlzLCB0aGlzLl90MCwgdDEgPSBzbG9wZTModGhpcywgeCwgeSkpOyBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxLCB0aGlzLl94MSA9IHg7XG4gICAgdGhpcy5feTAgPSB0aGlzLl95MSwgdGhpcy5feTEgPSB5O1xuICAgIHRoaXMuX3QwID0gdDE7XG4gIH1cbn1cblxuZnVuY3Rpb24gTW9ub3RvbmVZKGNvbnRleHQpIHtcbiAgdGhpcy5fY29udGV4dCA9IG5ldyBSZWZsZWN0Q29udGV4dChjb250ZXh0KTtcbn1cblxuKE1vbm90b25lWS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKE1vbm90b25lWC5wcm90b3R5cGUpKS5wb2ludCA9IGZ1bmN0aW9uKHgsIHkpIHtcbiAgTW9ub3RvbmVYLnByb3RvdHlwZS5wb2ludC5jYWxsKHRoaXMsIHksIHgpO1xufTtcblxuZnVuY3Rpb24gUmVmbGVjdENvbnRleHQoY29udGV4dCkge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbn1cblxuUmVmbGVjdENvbnRleHQucHJvdG90eXBlID0ge1xuICBtb3ZlVG86IGZ1bmN0aW9uKHgsIHkpIHsgdGhpcy5fY29udGV4dC5tb3ZlVG8oeSwgeCk7IH0sXG4gIGNsb3NlUGF0aDogZnVuY3Rpb24oKSB7IHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7IH0sXG4gIGxpbmVUbzogZnVuY3Rpb24oeCwgeSkgeyB0aGlzLl9jb250ZXh0LmxpbmVUbyh5LCB4KTsgfSxcbiAgYmV6aWVyQ3VydmVUbzogZnVuY3Rpb24oeDEsIHkxLCB4MiwgeTIsIHgsIHkpIHsgdGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHkxLCB4MSwgeTIsIHgyLCB5LCB4KTsgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1vbm90b25lWChjb250ZXh0KSB7XG4gIHJldHVybiBuZXcgTW9ub3RvbmVYKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ub3RvbmVZKGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBNb25vdG9uZVkoY29udGV4dCk7XG59XG4iLAogICAgImZ1bmN0aW9uIE5hdHVyYWwoY29udGV4dCkge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbn1cblxuTmF0dXJhbC5wcm90b3R5cGUgPSB7XG4gIGFyZWFTdGFydDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IDA7XG4gIH0sXG4gIGFyZWFFbmQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX2xpbmUgPSBOYU47XG4gIH0sXG4gIGxpbmVTdGFydDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5feCA9IFtdO1xuICAgIHRoaXMuX3kgPSBbXTtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdmFyIHggPSB0aGlzLl94LFxuICAgICAgICB5ID0gdGhpcy5feSxcbiAgICAgICAgbiA9IHgubGVuZ3RoO1xuXG4gICAgaWYgKG4pIHtcbiAgICAgIHRoaXMuX2xpbmUgPyB0aGlzLl9jb250ZXh0LmxpbmVUbyh4WzBdLCB5WzBdKSA6IHRoaXMuX2NvbnRleHQubW92ZVRvKHhbMF0sIHlbMF0pO1xuICAgICAgaWYgKG4gPT09IDIpIHtcbiAgICAgICAgdGhpcy5fY29udGV4dC5saW5lVG8oeFsxXSwgeVsxXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcHggPSBjb250cm9sUG9pbnRzKHgpLFxuICAgICAgICAgICAgcHkgPSBjb250cm9sUG9pbnRzKHkpO1xuICAgICAgICBmb3IgKHZhciBpMCA9IDAsIGkxID0gMTsgaTEgPCBuOyArK2kwLCArK2kxKSB7XG4gICAgICAgICAgdGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHB4WzBdW2kwXSwgcHlbMF1baTBdLCBweFsxXVtpMF0sIHB5WzFdW2kwXSwgeFtpMV0sIHlbaTFdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9saW5lIHx8ICh0aGlzLl9saW5lICE9PSAwICYmIG4gPT09IDEpKSB0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIHRoaXMuX2xpbmUgPSAxIC0gdGhpcy5fbGluZTtcbiAgICB0aGlzLl94ID0gdGhpcy5feSA9IG51bGw7XG4gIH0sXG4gIHBvaW50OiBmdW5jdGlvbih4LCB5KSB7XG4gICAgdGhpcy5feC5wdXNoKCt4KTtcbiAgICB0aGlzLl95LnB1c2goK3kpO1xuICB9XG59O1xuXG4vLyBTZWUgaHR0cHM6Ly93d3cucGFydGljbGVpbmNlbGwuY29tLzIwMTIvYmV6aWVyLXNwbGluZXMvIGZvciBkZXJpdmF0aW9uLlxuZnVuY3Rpb24gY29udHJvbFBvaW50cyh4KSB7XG4gIHZhciBpLFxuICAgICAgbiA9IHgubGVuZ3RoIC0gMSxcbiAgICAgIG0sXG4gICAgICBhID0gbmV3IEFycmF5KG4pLFxuICAgICAgYiA9IG5ldyBBcnJheShuKSxcbiAgICAgIHIgPSBuZXcgQXJyYXkobik7XG4gIGFbMF0gPSAwLCBiWzBdID0gMiwgclswXSA9IHhbMF0gKyAyICogeFsxXTtcbiAgZm9yIChpID0gMTsgaSA8IG4gLSAxOyArK2kpIGFbaV0gPSAxLCBiW2ldID0gNCwgcltpXSA9IDQgKiB4W2ldICsgMiAqIHhbaSArIDFdO1xuICBhW24gLSAxXSA9IDIsIGJbbiAtIDFdID0gNywgcltuIC0gMV0gPSA4ICogeFtuIC0gMV0gKyB4W25dO1xuICBmb3IgKGkgPSAxOyBpIDwgbjsgKytpKSBtID0gYVtpXSAvIGJbaSAtIDFdLCBiW2ldIC09IG0sIHJbaV0gLT0gbSAqIHJbaSAtIDFdO1xuICBhW24gLSAxXSA9IHJbbiAtIDFdIC8gYltuIC0gMV07XG4gIGZvciAoaSA9IG4gLSAyOyBpID49IDA7IC0taSkgYVtpXSA9IChyW2ldIC0gYVtpICsgMV0pIC8gYltpXTtcbiAgYltuIC0gMV0gPSAoeFtuXSArIGFbbiAtIDFdKSAvIDI7XG4gIGZvciAoaSA9IDA7IGkgPCBuIC0gMTsgKytpKSBiW2ldID0gMiAqIHhbaSArIDFdIC0gYVtpICsgMV07XG4gIHJldHVybiBbYSwgYl07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBOYXR1cmFsKGNvbnRleHQpO1xufVxuIiwKICAgICJmdW5jdGlvbiBTdGVwKGNvbnRleHQsIHQpIHtcbiAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG4gIHRoaXMuX3QgPSB0O1xufVxuXG5TdGVwLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gMDtcbiAgfSxcbiAgYXJlYUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IE5hTjtcbiAgfSxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl94ID0gdGhpcy5feSA9IE5hTjtcbiAgICB0aGlzLl9wb2ludCA9IDA7XG4gIH0sXG4gIGxpbmVFbmQ6IGZ1bmN0aW9uKCkge1xuICAgIGlmICgwIDwgdGhpcy5fdCAmJiB0aGlzLl90IDwgMSAmJiB0aGlzLl9wb2ludCA9PT0gMikgdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feCwgdGhpcy5feSk7XG4gICAgaWYgKHRoaXMuX2xpbmUgfHwgKHRoaXMuX2xpbmUgIT09IDAgJiYgdGhpcy5fcG9pbnQgPT09IDEpKSB0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIGlmICh0aGlzLl9saW5lID49IDApIHRoaXMuX3QgPSAxIC0gdGhpcy5fdCwgdGhpcy5fbGluZSA9IDEgLSB0aGlzLl9saW5lO1xuICB9LFxuICBwb2ludDogZnVuY3Rpb24oeCwgeSkge1xuICAgIHggPSAreCwgeSA9ICt5O1xuICAgIHN3aXRjaCAodGhpcy5fcG9pbnQpIHtcbiAgICAgIGNhc2UgMDogdGhpcy5fcG9pbnQgPSAxOyB0aGlzLl9saW5lID8gdGhpcy5fY29udGV4dC5saW5lVG8oeCwgeSkgOiB0aGlzLl9jb250ZXh0Lm1vdmVUbyh4LCB5KTsgYnJlYWs7XG4gICAgICBjYXNlIDE6IHRoaXMuX3BvaW50ID0gMjsgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBpZiAodGhpcy5fdCA8PSAwKSB7XG4gICAgICAgICAgdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feCwgeSk7XG4gICAgICAgICAgdGhpcy5fY29udGV4dC5saW5lVG8oeCwgeSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHgxID0gdGhpcy5feCAqICgxIC0gdGhpcy5fdCkgKyB4ICogdGhpcy5fdDtcbiAgICAgICAgICB0aGlzLl9jb250ZXh0LmxpbmVUbyh4MSwgdGhpcy5feSk7XG4gICAgICAgICAgdGhpcy5fY29udGV4dC5saW5lVG8oeDEsIHkpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl94ID0geCwgdGhpcy5feSA9IHk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBTdGVwKGNvbnRleHQsIDAuNSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGVwQmVmb3JlKGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBTdGVwKGNvbnRleHQsIDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RlcEFmdGVyKGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBTdGVwKGNvbnRleHQsIDEpO1xufVxuIiwKICAgICJleHBvcnQge2RlZmF1bHQgYXMgYXJjfSBmcm9tIFwiLi9hcmMuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBhcmVhfSBmcm9tIFwiLi9hcmVhLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgbGluZX0gZnJvbSBcIi4vbGluZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHBpZX0gZnJvbSBcIi4vcGllLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgYXJlYVJhZGlhbCwgZGVmYXVsdCBhcyByYWRpYWxBcmVhfSBmcm9tIFwiLi9hcmVhUmFkaWFsLmpzXCI7IC8vIE5vdGU6IHJhZGlhbEFyZWEgaXMgZGVwcmVjYXRlZCFcbmV4cG9ydCB7ZGVmYXVsdCBhcyBsaW5lUmFkaWFsLCBkZWZhdWx0IGFzIHJhZGlhbExpbmV9IGZyb20gXCIuL2xpbmVSYWRpYWwuanNcIjsgLy8gTm90ZTogcmFkaWFsTGluZSBpcyBkZXByZWNhdGVkIVxuZXhwb3J0IHtkZWZhdWx0IGFzIHBvaW50UmFkaWFsfSBmcm9tIFwiLi9wb2ludFJhZGlhbC5qc1wiO1xuZXhwb3J0IHtsaW5rLCBsaW5rSG9yaXpvbnRhbCwgbGlua1ZlcnRpY2FsLCBsaW5rUmFkaWFsfSBmcm9tIFwiLi9saW5rLmpzXCI7XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBzeW1ib2wsIHN5bWJvbHNTdHJva2UsIHN5bWJvbHNGaWxsLCBzeW1ib2xzRmlsbCBhcyBzeW1ib2xzfSBmcm9tIFwiLi9zeW1ib2wuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzeW1ib2xBc3Rlcmlza30gZnJvbSBcIi4vc3ltYm9sL2FzdGVyaXNrLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3ltYm9sQ2lyY2xlfSBmcm9tIFwiLi9zeW1ib2wvY2lyY2xlLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3ltYm9sQ3Jvc3N9IGZyb20gXCIuL3N5bWJvbC9jcm9zcy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN5bWJvbERpYW1vbmR9IGZyb20gXCIuL3N5bWJvbC9kaWFtb25kLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3ltYm9sRGlhbW9uZDJ9IGZyb20gXCIuL3N5bWJvbC9kaWFtb25kMi5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN5bWJvbFBsdXN9IGZyb20gXCIuL3N5bWJvbC9wbHVzLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3ltYm9sU3F1YXJlfSBmcm9tIFwiLi9zeW1ib2wvc3F1YXJlLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3ltYm9sU3F1YXJlMn0gZnJvbSBcIi4vc3ltYm9sL3NxdWFyZTIuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzeW1ib2xTdGFyfSBmcm9tIFwiLi9zeW1ib2wvc3Rhci5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN5bWJvbFRyaWFuZ2xlfSBmcm9tIFwiLi9zeW1ib2wvdHJpYW5nbGUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzeW1ib2xUcmlhbmdsZTJ9IGZyb20gXCIuL3N5bWJvbC90cmlhbmdsZTIuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzeW1ib2xXeWV9IGZyb20gXCIuL3N5bWJvbC93eWUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzeW1ib2xUaW1lcywgZGVmYXVsdCBhcyBzeW1ib2xYfSBmcm9tIFwiLi9zeW1ib2wvdGltZXMuanNcIjtcblxuZXhwb3J0IHtkZWZhdWx0IGFzIGN1cnZlQmFzaXNDbG9zZWR9IGZyb20gXCIuL2N1cnZlL2Jhc2lzQ2xvc2VkLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgY3VydmVCYXNpc09wZW59IGZyb20gXCIuL2N1cnZlL2Jhc2lzT3Blbi5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGN1cnZlQmFzaXN9IGZyb20gXCIuL2N1cnZlL2Jhc2lzLmpzXCI7XG5leHBvcnQge2J1bXBYIGFzIGN1cnZlQnVtcFgsIGJ1bXBZIGFzIGN1cnZlQnVtcFl9IGZyb20gXCIuL2N1cnZlL2J1bXAuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUJ1bmRsZX0gZnJvbSBcIi4vY3VydmUvYnVuZGxlLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgY3VydmVDYXJkaW5hbENsb3NlZH0gZnJvbSBcIi4vY3VydmUvY2FyZGluYWxDbG9zZWQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUNhcmRpbmFsT3Blbn0gZnJvbSBcIi4vY3VydmUvY2FyZGluYWxPcGVuLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgY3VydmVDYXJkaW5hbH0gZnJvbSBcIi4vY3VydmUvY2FyZGluYWwuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUNhdG11bGxSb21DbG9zZWR9IGZyb20gXCIuL2N1cnZlL2NhdG11bGxSb21DbG9zZWQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUNhdG11bGxSb21PcGVufSBmcm9tIFwiLi9jdXJ2ZS9jYXRtdWxsUm9tT3Blbi5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGN1cnZlQ2F0bXVsbFJvbX0gZnJvbSBcIi4vY3VydmUvY2F0bXVsbFJvbS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGN1cnZlTGluZWFyQ2xvc2VkfSBmcm9tIFwiLi9jdXJ2ZS9saW5lYXJDbG9zZWQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUxpbmVhcn0gZnJvbSBcIi4vY3VydmUvbGluZWFyLmpzXCI7XG5leHBvcnQge21vbm90b25lWCBhcyBjdXJ2ZU1vbm90b25lWCwgbW9ub3RvbmVZIGFzIGN1cnZlTW9ub3RvbmVZfSBmcm9tIFwiLi9jdXJ2ZS9tb25vdG9uZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGN1cnZlTmF0dXJhbH0gZnJvbSBcIi4vY3VydmUvbmF0dXJhbC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGN1cnZlU3RlcCwgc3RlcEFmdGVyIGFzIGN1cnZlU3RlcEFmdGVyLCBzdGVwQmVmb3JlIGFzIGN1cnZlU3RlcEJlZm9yZX0gZnJvbSBcIi4vY3VydmUvc3RlcC5qc1wiO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgc3RhY2t9IGZyb20gXCIuL3N0YWNrLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3RhY2tPZmZzZXRFeHBhbmR9IGZyb20gXCIuL29mZnNldC9leHBhbmQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzdGFja09mZnNldERpdmVyZ2luZ30gZnJvbSBcIi4vb2Zmc2V0L2RpdmVyZ2luZy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN0YWNrT2Zmc2V0Tm9uZX0gZnJvbSBcIi4vb2Zmc2V0L25vbmUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzdGFja09mZnNldFNpbGhvdWV0dGV9IGZyb20gXCIuL29mZnNldC9zaWxob3VldHRlLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3RhY2tPZmZzZXRXaWdnbGV9IGZyb20gXCIuL29mZnNldC93aWdnbGUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzdGFja09yZGVyQXBwZWFyYW5jZX0gZnJvbSBcIi4vb3JkZXIvYXBwZWFyYW5jZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN0YWNrT3JkZXJBc2NlbmRpbmd9IGZyb20gXCIuL29yZGVyL2FzY2VuZGluZy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN0YWNrT3JkZXJEZXNjZW5kaW5nfSBmcm9tIFwiLi9vcmRlci9kZXNjZW5kaW5nLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3RhY2tPcmRlckluc2lkZU91dH0gZnJvbSBcIi4vb3JkZXIvaW5zaWRlT3V0LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3RhY2tPcmRlck5vbmV9IGZyb20gXCIuL29yZGVyL25vbmUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzdGFja09yZGVyUmV2ZXJzZX0gZnJvbSBcIi4vb3JkZXIvcmV2ZXJzZS5qc1wiO1xuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gVHJhbnNmb3JtKGssIHgsIHkpIHtcbiAgdGhpcy5rID0gaztcbiAgdGhpcy54ID0geDtcbiAgdGhpcy55ID0geTtcbn1cblxuVHJhbnNmb3JtLnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IFRyYW5zZm9ybSxcbiAgc2NhbGU6IGZ1bmN0aW9uKGspIHtcbiAgICByZXR1cm4gayA9PT0gMSA/IHRoaXMgOiBuZXcgVHJhbnNmb3JtKHRoaXMuayAqIGssIHRoaXMueCwgdGhpcy55KTtcbiAgfSxcbiAgdHJhbnNsYXRlOiBmdW5jdGlvbih4LCB5KSB7XG4gICAgcmV0dXJuIHggPT09IDAgJiB5ID09PSAwID8gdGhpcyA6IG5ldyBUcmFuc2Zvcm0odGhpcy5rLCB0aGlzLnggKyB0aGlzLmsgKiB4LCB0aGlzLnkgKyB0aGlzLmsgKiB5KTtcbiAgfSxcbiAgYXBwbHk6IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIFtwb2ludFswXSAqIHRoaXMuayArIHRoaXMueCwgcG9pbnRbMV0gKiB0aGlzLmsgKyB0aGlzLnldO1xuICB9LFxuICBhcHBseVg6IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4geCAqIHRoaXMuayArIHRoaXMueDtcbiAgfSxcbiAgYXBwbHlZOiBmdW5jdGlvbih5KSB7XG4gICAgcmV0dXJuIHkgKiB0aGlzLmsgKyB0aGlzLnk7XG4gIH0sXG4gIGludmVydDogZnVuY3Rpb24obG9jYXRpb24pIHtcbiAgICByZXR1cm4gWyhsb2NhdGlvblswXSAtIHRoaXMueCkgLyB0aGlzLmssIChsb2NhdGlvblsxXSAtIHRoaXMueSkgLyB0aGlzLmtdO1xuICB9LFxuICBpbnZlcnRYOiBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuICh4IC0gdGhpcy54KSAvIHRoaXMuaztcbiAgfSxcbiAgaW52ZXJ0WTogZnVuY3Rpb24oeSkge1xuICAgIHJldHVybiAoeSAtIHRoaXMueSkgLyB0aGlzLms7XG4gIH0sXG4gIHJlc2NhbGVYOiBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIHguY29weSgpLmRvbWFpbih4LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WCwgdGhpcykubWFwKHguaW52ZXJ0LCB4KSk7XG4gIH0sXG4gIHJlc2NhbGVZOiBmdW5jdGlvbih5KSB7XG4gICAgcmV0dXJuIHkuY29weSgpLmRvbWFpbih5LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WSwgdGhpcykubWFwKHkuaW52ZXJ0LCB5KSk7XG4gIH0sXG4gIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gXCJ0cmFuc2xhdGUoXCIgKyB0aGlzLnggKyBcIixcIiArIHRoaXMueSArIFwiKSBzY2FsZShcIiArIHRoaXMuayArIFwiKVwiO1xuICB9XG59O1xuXG5leHBvcnQgdmFyIGlkZW50aXR5ID0gbmV3IFRyYW5zZm9ybSgxLCAwLCAwKTtcblxudHJhbnNmb3JtLnByb3RvdHlwZSA9IFRyYW5zZm9ybS5wcm90b3R5cGU7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zZm9ybShub2RlKSB7XG4gIHdoaWxlICghbm9kZS5fX3pvb20pIGlmICghKG5vZGUgPSBub2RlLnBhcmVudE5vZGUpKSByZXR1cm4gaWRlbnRpdHk7XG4gIHJldHVybiBub2RlLl9fem9vbTtcbn1cbiIsCiAgICAiaW1wb3J0IHtkaXNwYXRjaH0gZnJvbSBcImQzLWRpc3BhdGNoXCI7XG5pbXBvcnQge2RyYWdEaXNhYmxlLCBkcmFnRW5hYmxlfSBmcm9tIFwiZDMtZHJhZ1wiO1xuaW1wb3J0IHtpbnRlcnBvbGF0ZVpvb219IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuaW1wb3J0IHtzZWxlY3QsIHBvaW50ZXJ9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcbmltcG9ydCB7aW50ZXJydXB0fSBmcm9tIFwiZDMtdHJhbnNpdGlvblwiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQgWm9vbUV2ZW50IGZyb20gXCIuL2V2ZW50LmpzXCI7XG5pbXBvcnQge1RyYW5zZm9ybSwgaWRlbnRpdHl9IGZyb20gXCIuL3RyYW5zZm9ybS5qc1wiO1xuaW1wb3J0IG5vZXZlbnQsIHtub3Byb3BhZ2F0aW9ufSBmcm9tIFwiLi9ub2V2ZW50LmpzXCI7XG5cbi8vIElnbm9yZSByaWdodC1jbGljaywgc2luY2UgdGhhdCBzaG91bGQgb3BlbiB0aGUgY29udGV4dCBtZW51LlxuLy8gZXhjZXB0IGZvciBwaW5jaC10by16b29tLCB3aGljaCBpcyBzZW50IGFzIGEgd2hlZWwrY3RybEtleSBldmVudFxuZnVuY3Rpb24gZGVmYXVsdEZpbHRlcihldmVudCkge1xuICByZXR1cm4gKCFldmVudC5jdHJsS2V5IHx8IGV2ZW50LnR5cGUgPT09ICd3aGVlbCcpICYmICFldmVudC5idXR0b247XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRFeHRlbnQoKSB7XG4gIHZhciBlID0gdGhpcztcbiAgaWYgKGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50KSB7XG4gICAgZSA9IGUub3duZXJTVkdFbGVtZW50IHx8IGU7XG4gICAgaWYgKGUuaGFzQXR0cmlidXRlKFwidmlld0JveFwiKSkge1xuICAgICAgZSA9IGUudmlld0JveC5iYXNlVmFsO1xuICAgICAgcmV0dXJuIFtbZS54LCBlLnldLCBbZS54ICsgZS53aWR0aCwgZS55ICsgZS5oZWlnaHRdXTtcbiAgICB9XG4gICAgcmV0dXJuIFtbMCwgMF0sIFtlLndpZHRoLmJhc2VWYWwudmFsdWUsIGUuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXTtcbiAgfVxuICByZXR1cm4gW1swLCAwXSwgW2UuY2xpZW50V2lkdGgsIGUuY2xpZW50SGVpZ2h0XV07XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRUcmFuc2Zvcm0oKSB7XG4gIHJldHVybiB0aGlzLl9fem9vbSB8fCBpZGVudGl0eTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFdoZWVsRGVsdGEoZXZlbnQpIHtcbiAgcmV0dXJuIC1ldmVudC5kZWx0YVkgKiAoZXZlbnQuZGVsdGFNb2RlID09PSAxID8gMC4wNSA6IGV2ZW50LmRlbHRhTW9kZSA/IDEgOiAwLjAwMikgKiAoZXZlbnQuY3RybEtleSA/IDEwIDogMSk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRUb3VjaGFibGUoKSB7XG4gIHJldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgfHwgKFwib250b3VjaHN0YXJ0XCIgaW4gdGhpcyk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRDb25zdHJhaW4odHJhbnNmb3JtLCBleHRlbnQsIHRyYW5zbGF0ZUV4dGVudCkge1xuICB2YXIgZHgwID0gdHJhbnNmb3JtLmludmVydFgoZXh0ZW50WzBdWzBdKSAtIHRyYW5zbGF0ZUV4dGVudFswXVswXSxcbiAgICAgIGR4MSA9IHRyYW5zZm9ybS5pbnZlcnRYKGV4dGVudFsxXVswXSkgLSB0cmFuc2xhdGVFeHRlbnRbMV1bMF0sXG4gICAgICBkeTAgPSB0cmFuc2Zvcm0uaW52ZXJ0WShleHRlbnRbMF1bMV0pIC0gdHJhbnNsYXRlRXh0ZW50WzBdWzFdLFxuICAgICAgZHkxID0gdHJhbnNmb3JtLmludmVydFkoZXh0ZW50WzFdWzFdKSAtIHRyYW5zbGF0ZUV4dGVudFsxXVsxXTtcbiAgcmV0dXJuIHRyYW5zZm9ybS50cmFuc2xhdGUoXG4gICAgZHgxID4gZHgwID8gKGR4MCArIGR4MSkgLyAyIDogTWF0aC5taW4oMCwgZHgwKSB8fCBNYXRoLm1heCgwLCBkeDEpLFxuICAgIGR5MSA+IGR5MCA/IChkeTAgKyBkeTEpIC8gMiA6IE1hdGgubWluKDAsIGR5MCkgfHwgTWF0aC5tYXgoMCwgZHkxKVxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIGZpbHRlciA9IGRlZmF1bHRGaWx0ZXIsXG4gICAgICBleHRlbnQgPSBkZWZhdWx0RXh0ZW50LFxuICAgICAgY29uc3RyYWluID0gZGVmYXVsdENvbnN0cmFpbixcbiAgICAgIHdoZWVsRGVsdGEgPSBkZWZhdWx0V2hlZWxEZWx0YSxcbiAgICAgIHRvdWNoYWJsZSA9IGRlZmF1bHRUb3VjaGFibGUsXG4gICAgICBzY2FsZUV4dGVudCA9IFswLCBJbmZpbml0eV0sXG4gICAgICB0cmFuc2xhdGVFeHRlbnQgPSBbWy1JbmZpbml0eSwgLUluZmluaXR5XSwgW0luZmluaXR5LCBJbmZpbml0eV1dLFxuICAgICAgZHVyYXRpb24gPSAyNTAsXG4gICAgICBpbnRlcnBvbGF0ZSA9IGludGVycG9sYXRlWm9vbSxcbiAgICAgIGxpc3RlbmVycyA9IGRpc3BhdGNoKFwic3RhcnRcIiwgXCJ6b29tXCIsIFwiZW5kXCIpLFxuICAgICAgdG91Y2hzdGFydGluZyxcbiAgICAgIHRvdWNoZmlyc3QsXG4gICAgICB0b3VjaGVuZGluZyxcbiAgICAgIHRvdWNoRGVsYXkgPSA1MDAsXG4gICAgICB3aGVlbERlbGF5ID0gMTUwLFxuICAgICAgY2xpY2tEaXN0YW5jZTIgPSAwLFxuICAgICAgdGFwRGlzdGFuY2UgPSAxMDtcblxuICBmdW5jdGlvbiB6b29tKHNlbGVjdGlvbikge1xuICAgIHNlbGVjdGlvblxuICAgICAgICAucHJvcGVydHkoXCJfX3pvb21cIiwgZGVmYXVsdFRyYW5zZm9ybSlcbiAgICAgICAgLm9uKFwid2hlZWwuem9vbVwiLCB3aGVlbGVkLCB7cGFzc2l2ZTogZmFsc2V9KVxuICAgICAgICAub24oXCJtb3VzZWRvd24uem9vbVwiLCBtb3VzZWRvd25lZClcbiAgICAgICAgLm9uKFwiZGJsY2xpY2suem9vbVwiLCBkYmxjbGlja2VkKVxuICAgICAgLmZpbHRlcih0b3VjaGFibGUpXG4gICAgICAgIC5vbihcInRvdWNoc3RhcnQuem9vbVwiLCB0b3VjaHN0YXJ0ZWQpXG4gICAgICAgIC5vbihcInRvdWNobW92ZS56b29tXCIsIHRvdWNobW92ZWQpXG4gICAgICAgIC5vbihcInRvdWNoZW5kLnpvb20gdG91Y2hjYW5jZWwuem9vbVwiLCB0b3VjaGVuZGVkKVxuICAgICAgICAuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIiwgXCJyZ2JhKDAsMCwwLDApXCIpO1xuICB9XG5cbiAgem9vbS50cmFuc2Zvcm0gPSBmdW5jdGlvbihjb2xsZWN0aW9uLCB0cmFuc2Zvcm0sIHBvaW50LCBldmVudCkge1xuICAgIHZhciBzZWxlY3Rpb24gPSBjb2xsZWN0aW9uLnNlbGVjdGlvbiA/IGNvbGxlY3Rpb24uc2VsZWN0aW9uKCkgOiBjb2xsZWN0aW9uO1xuICAgIHNlbGVjdGlvbi5wcm9wZXJ0eShcIl9fem9vbVwiLCBkZWZhdWx0VHJhbnNmb3JtKTtcbiAgICBpZiAoY29sbGVjdGlvbiAhPT0gc2VsZWN0aW9uKSB7XG4gICAgICBzY2hlZHVsZShjb2xsZWN0aW9uLCB0cmFuc2Zvcm0sIHBvaW50LCBldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGVjdGlvbi5pbnRlcnJ1cHQoKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICBnZXN0dXJlKHRoaXMsIGFyZ3VtZW50cylcbiAgICAgICAgICAuZXZlbnQoZXZlbnQpXG4gICAgICAgICAgLnN0YXJ0KClcbiAgICAgICAgICAuem9vbShudWxsLCB0eXBlb2YgdHJhbnNmb3JtID09PSBcImZ1bmN0aW9uXCIgPyB0cmFuc2Zvcm0uYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHRyYW5zZm9ybSlcbiAgICAgICAgICAuZW5kKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgem9vbS5zY2FsZUJ5ID0gZnVuY3Rpb24oc2VsZWN0aW9uLCBrLCBwLCBldmVudCkge1xuICAgIHpvb20uc2NhbGVUbyhzZWxlY3Rpb24sIGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGswID0gdGhpcy5fX3pvb20uayxcbiAgICAgICAgICBrMSA9IHR5cGVvZiBrID09PSBcImZ1bmN0aW9uXCIgPyBrLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiBrO1xuICAgICAgcmV0dXJuIGswICogazE7XG4gICAgfSwgcCwgZXZlbnQpO1xuICB9O1xuXG4gIHpvb20uc2NhbGVUbyA9IGZ1bmN0aW9uKHNlbGVjdGlvbiwgaywgcCwgZXZlbnQpIHtcbiAgICB6b29tLnRyYW5zZm9ybShzZWxlY3Rpb24sIGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGUgPSBleHRlbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKSxcbiAgICAgICAgICB0MCA9IHRoaXMuX196b29tLFxuICAgICAgICAgIHAwID0gcCA9PSBudWxsID8gY2VudHJvaWQoZSkgOiB0eXBlb2YgcCA9PT0gXCJmdW5jdGlvblwiID8gcC5hcHBseSh0aGlzLCBhcmd1bWVudHMpIDogcCxcbiAgICAgICAgICBwMSA9IHQwLmludmVydChwMCksXG4gICAgICAgICAgazEgPSB0eXBlb2YgayA9PT0gXCJmdW5jdGlvblwiID8gay5hcHBseSh0aGlzLCBhcmd1bWVudHMpIDogaztcbiAgICAgIHJldHVybiBjb25zdHJhaW4odHJhbnNsYXRlKHNjYWxlKHQwLCBrMSksIHAwLCBwMSksIGUsIHRyYW5zbGF0ZUV4dGVudCk7XG4gICAgfSwgcCwgZXZlbnQpO1xuICB9O1xuXG4gIHpvb20udHJhbnNsYXRlQnkgPSBmdW5jdGlvbihzZWxlY3Rpb24sIHgsIHksIGV2ZW50KSB7XG4gICAgem9vbS50cmFuc2Zvcm0oc2VsZWN0aW9uLCBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBjb25zdHJhaW4odGhpcy5fX3pvb20udHJhbnNsYXRlKFxuICAgICAgICB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiID8geC5hcHBseSh0aGlzLCBhcmd1bWVudHMpIDogeCxcbiAgICAgICAgdHlwZW9mIHkgPT09IFwiZnVuY3Rpb25cIiA/IHkuYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHlcbiAgICAgICksIGV4dGVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpLCB0cmFuc2xhdGVFeHRlbnQpO1xuICAgIH0sIG51bGwsIGV2ZW50KTtcbiAgfTtcblxuICB6b29tLnRyYW5zbGF0ZVRvID0gZnVuY3Rpb24oc2VsZWN0aW9uLCB4LCB5LCBwLCBldmVudCkge1xuICAgIHpvb20udHJhbnNmb3JtKHNlbGVjdGlvbiwgZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgZSA9IGV4dGVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpLFxuICAgICAgICAgIHQgPSB0aGlzLl9fem9vbSxcbiAgICAgICAgICBwMCA9IHAgPT0gbnVsbCA/IGNlbnRyb2lkKGUpIDogdHlwZW9mIHAgPT09IFwiZnVuY3Rpb25cIiA/IHAuYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHA7XG4gICAgICByZXR1cm4gY29uc3RyYWluKGlkZW50aXR5LnRyYW5zbGF0ZShwMFswXSwgcDBbMV0pLnNjYWxlKHQuaykudHJhbnNsYXRlKFxuICAgICAgICB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiID8gLXguYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IC14LFxuICAgICAgICB0eXBlb2YgeSA9PT0gXCJmdW5jdGlvblwiID8gLXkuYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IC15XG4gICAgICApLCBlLCB0cmFuc2xhdGVFeHRlbnQpO1xuICAgIH0sIHAsIGV2ZW50KTtcbiAgfTtcblxuICBmdW5jdGlvbiBzY2FsZSh0cmFuc2Zvcm0sIGspIHtcbiAgICBrID0gTWF0aC5tYXgoc2NhbGVFeHRlbnRbMF0sIE1hdGgubWluKHNjYWxlRXh0ZW50WzFdLCBrKSk7XG4gICAgcmV0dXJuIGsgPT09IHRyYW5zZm9ybS5rID8gdHJhbnNmb3JtIDogbmV3IFRyYW5zZm9ybShrLCB0cmFuc2Zvcm0ueCwgdHJhbnNmb3JtLnkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNsYXRlKHRyYW5zZm9ybSwgcDAsIHAxKSB7XG4gICAgdmFyIHggPSBwMFswXSAtIHAxWzBdICogdHJhbnNmb3JtLmssIHkgPSBwMFsxXSAtIHAxWzFdICogdHJhbnNmb3JtLms7XG4gICAgcmV0dXJuIHggPT09IHRyYW5zZm9ybS54ICYmIHkgPT09IHRyYW5zZm9ybS55ID8gdHJhbnNmb3JtIDogbmV3IFRyYW5zZm9ybSh0cmFuc2Zvcm0uaywgeCwgeSk7XG4gIH1cblxuICBmdW5jdGlvbiBjZW50cm9pZChleHRlbnQpIHtcbiAgICByZXR1cm4gWygrZXh0ZW50WzBdWzBdICsgK2V4dGVudFsxXVswXSkgLyAyLCAoK2V4dGVudFswXVsxXSArICtleHRlbnRbMV1bMV0pIC8gMl07XG4gIH1cblxuICBmdW5jdGlvbiBzY2hlZHVsZSh0cmFuc2l0aW9uLCB0cmFuc2Zvcm0sIHBvaW50LCBldmVudCkge1xuICAgIHRyYW5zaXRpb25cbiAgICAgICAgLm9uKFwic3RhcnQuem9vbVwiLCBmdW5jdGlvbigpIHsgZ2VzdHVyZSh0aGlzLCBhcmd1bWVudHMpLmV2ZW50KGV2ZW50KS5zdGFydCgpOyB9KVxuICAgICAgICAub24oXCJpbnRlcnJ1cHQuem9vbSBlbmQuem9vbVwiLCBmdW5jdGlvbigpIHsgZ2VzdHVyZSh0aGlzLCBhcmd1bWVudHMpLmV2ZW50KGV2ZW50KS5lbmQoKTsgfSlcbiAgICAgICAgLnR3ZWVuKFwiem9vbVwiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsXG4gICAgICAgICAgICAgIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICAgIGcgPSBnZXN0dXJlKHRoYXQsIGFyZ3MpLmV2ZW50KGV2ZW50KSxcbiAgICAgICAgICAgICAgZSA9IGV4dGVudC5hcHBseSh0aGF0LCBhcmdzKSxcbiAgICAgICAgICAgICAgcCA9IHBvaW50ID09IG51bGwgPyBjZW50cm9pZChlKSA6IHR5cGVvZiBwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gcG9pbnQuYXBwbHkodGhhdCwgYXJncykgOiBwb2ludCxcbiAgICAgICAgICAgICAgdyA9IE1hdGgubWF4KGVbMV1bMF0gLSBlWzBdWzBdLCBlWzFdWzFdIC0gZVswXVsxXSksXG4gICAgICAgICAgICAgIGEgPSB0aGF0Ll9fem9vbSxcbiAgICAgICAgICAgICAgYiA9IHR5cGVvZiB0cmFuc2Zvcm0gPT09IFwiZnVuY3Rpb25cIiA/IHRyYW5zZm9ybS5hcHBseSh0aGF0LCBhcmdzKSA6IHRyYW5zZm9ybSxcbiAgICAgICAgICAgICAgaSA9IGludGVycG9sYXRlKGEuaW52ZXJ0KHApLmNvbmNhdCh3IC8gYS5rKSwgYi5pbnZlcnQocCkuY29uY2F0KHcgLyBiLmspKTtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgICAgICAgICAgaWYgKHQgPT09IDEpIHQgPSBiOyAvLyBBdm9pZCByb3VuZGluZyBlcnJvciBvbiBlbmQuXG4gICAgICAgICAgICBlbHNlIHsgdmFyIGwgPSBpKHQpLCBrID0gdyAvIGxbMl07IHQgPSBuZXcgVHJhbnNmb3JtKGssIHBbMF0gLSBsWzBdICogaywgcFsxXSAtIGxbMV0gKiBrKTsgfVxuICAgICAgICAgICAgZy56b29tKG51bGwsIHQpO1xuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2VzdHVyZSh0aGF0LCBhcmdzLCBjbGVhbikge1xuICAgIHJldHVybiAoIWNsZWFuICYmIHRoYXQuX196b29taW5nKSB8fCBuZXcgR2VzdHVyZSh0aGF0LCBhcmdzKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIEdlc3R1cmUodGhhdCwgYXJncykge1xuICAgIHRoaXMudGhhdCA9IHRoYXQ7XG4gICAgdGhpcy5hcmdzID0gYXJncztcbiAgICB0aGlzLmFjdGl2ZSA9IDA7XG4gICAgdGhpcy5zb3VyY2VFdmVudCA9IG51bGw7XG4gICAgdGhpcy5leHRlbnQgPSBleHRlbnQuYXBwbHkodGhhdCwgYXJncyk7XG4gICAgdGhpcy50YXBzID0gMDtcbiAgfVxuXG4gIEdlc3R1cmUucHJvdG90eXBlID0ge1xuICAgIGV2ZW50OiBmdW5jdGlvbihldmVudCkge1xuICAgICAgaWYgKGV2ZW50KSB0aGlzLnNvdXJjZUV2ZW50ID0gZXZlbnQ7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIHN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICAgIGlmICgrK3RoaXMuYWN0aXZlID09PSAxKSB7XG4gICAgICAgIHRoaXMudGhhdC5fX3pvb21pbmcgPSB0aGlzO1xuICAgICAgICB0aGlzLmVtaXQoXCJzdGFydFwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgem9vbTogZnVuY3Rpb24oa2V5LCB0cmFuc2Zvcm0pIHtcbiAgICAgIGlmICh0aGlzLm1vdXNlICYmIGtleSAhPT0gXCJtb3VzZVwiKSB0aGlzLm1vdXNlWzFdID0gdHJhbnNmb3JtLmludmVydCh0aGlzLm1vdXNlWzBdKTtcbiAgICAgIGlmICh0aGlzLnRvdWNoMCAmJiBrZXkgIT09IFwidG91Y2hcIikgdGhpcy50b3VjaDBbMV0gPSB0cmFuc2Zvcm0uaW52ZXJ0KHRoaXMudG91Y2gwWzBdKTtcbiAgICAgIGlmICh0aGlzLnRvdWNoMSAmJiBrZXkgIT09IFwidG91Y2hcIikgdGhpcy50b3VjaDFbMV0gPSB0cmFuc2Zvcm0uaW52ZXJ0KHRoaXMudG91Y2gxWzBdKTtcbiAgICAgIHRoaXMudGhhdC5fX3pvb20gPSB0cmFuc2Zvcm07XG4gICAgICB0aGlzLmVtaXQoXCJ6b29tXCIpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBlbmQ6IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKC0tdGhpcy5hY3RpdmUgPT09IDApIHtcbiAgICAgICAgZGVsZXRlIHRoaXMudGhhdC5fX3pvb21pbmc7XG4gICAgICAgIHRoaXMuZW1pdChcImVuZFwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgZW1pdDogZnVuY3Rpb24odHlwZSkge1xuICAgICAgdmFyIGQgPSBzZWxlY3QodGhpcy50aGF0KS5kYXR1bSgpO1xuICAgICAgbGlzdGVuZXJzLmNhbGwoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIHRoaXMudGhhdCxcbiAgICAgICAgbmV3IFpvb21FdmVudCh0eXBlLCB7XG4gICAgICAgICAgc291cmNlRXZlbnQ6IHRoaXMuc291cmNlRXZlbnQsXG4gICAgICAgICAgdGFyZ2V0OiB6b29tLFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgdHJhbnNmb3JtOiB0aGlzLnRoYXQuX196b29tLFxuICAgICAgICAgIGRpc3BhdGNoOiBsaXN0ZW5lcnNcbiAgICAgICAgfSksXG4gICAgICAgIGRcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHdoZWVsZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAoIWZpbHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSByZXR1cm47XG4gICAgdmFyIGcgPSBnZXN0dXJlKHRoaXMsIGFyZ3MpLmV2ZW50KGV2ZW50KSxcbiAgICAgICAgdCA9IHRoaXMuX196b29tLFxuICAgICAgICBrID0gTWF0aC5tYXgoc2NhbGVFeHRlbnRbMF0sIE1hdGgubWluKHNjYWxlRXh0ZW50WzFdLCB0LmsgKiBNYXRoLnBvdygyLCB3aGVlbERlbHRhLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpKSksXG4gICAgICAgIHAgPSBwb2ludGVyKGV2ZW50KTtcblxuICAgIC8vIElmIHRoZSBtb3VzZSBpcyBpbiB0aGUgc2FtZSBsb2NhdGlvbiBhcyBiZWZvcmUsIHJldXNlIGl0LlxuICAgIC8vIElmIHRoZXJlIHdlcmUgcmVjZW50IHdoZWVsIGV2ZW50cywgcmVzZXQgdGhlIHdoZWVsIGlkbGUgdGltZW91dC5cbiAgICBpZiAoZy53aGVlbCkge1xuICAgICAgaWYgKGcubW91c2VbMF1bMF0gIT09IHBbMF0gfHwgZy5tb3VzZVswXVsxXSAhPT0gcFsxXSkge1xuICAgICAgICBnLm1vdXNlWzFdID0gdC5pbnZlcnQoZy5tb3VzZVswXSA9IHApO1xuICAgICAgfVxuICAgICAgY2xlYXJUaW1lb3V0KGcud2hlZWwpO1xuICAgIH1cblxuICAgIC8vIElmIHRoaXMgd2hlZWwgZXZlbnQgd29u4oCZdCB0cmlnZ2VyIGEgdHJhbnNmb3JtIGNoYW5nZSwgaWdub3JlIGl0LlxuICAgIGVsc2UgaWYgKHQuayA9PT0gaykgcmV0dXJuO1xuXG4gICAgLy8gT3RoZXJ3aXNlLCBjYXB0dXJlIHRoZSBtb3VzZSBwb2ludCBhbmQgbG9jYXRpb24gYXQgdGhlIHN0YXJ0LlxuICAgIGVsc2Uge1xuICAgICAgZy5tb3VzZSA9IFtwLCB0LmludmVydChwKV07XG4gICAgICBpbnRlcnJ1cHQodGhpcyk7XG4gICAgICBnLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgbm9ldmVudChldmVudCk7XG4gICAgZy53aGVlbCA9IHNldFRpbWVvdXQod2hlZWxpZGxlZCwgd2hlZWxEZWxheSk7XG4gICAgZy56b29tKFwibW91c2VcIiwgY29uc3RyYWluKHRyYW5zbGF0ZShzY2FsZSh0LCBrKSwgZy5tb3VzZVswXSwgZy5tb3VzZVsxXSksIGcuZXh0ZW50LCB0cmFuc2xhdGVFeHRlbnQpKTtcblxuICAgIGZ1bmN0aW9uIHdoZWVsaWRsZWQoKSB7XG4gICAgICBnLndoZWVsID0gbnVsbDtcbiAgICAgIGcuZW5kKCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gbW91c2Vkb3duZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAodG91Y2hlbmRpbmcgfHwgIWZpbHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSByZXR1cm47XG4gICAgdmFyIGN1cnJlbnRUYXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0LFxuICAgICAgICBnID0gZ2VzdHVyZSh0aGlzLCBhcmdzLCB0cnVlKS5ldmVudChldmVudCksXG4gICAgICAgIHYgPSBzZWxlY3QoZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuem9vbVwiLCBtb3VzZW1vdmVkLCB0cnVlKS5vbihcIm1vdXNldXAuem9vbVwiLCBtb3VzZXVwcGVkLCB0cnVlKSxcbiAgICAgICAgcCA9IHBvaW50ZXIoZXZlbnQsIGN1cnJlbnRUYXJnZXQpLFxuICAgICAgICB4MCA9IGV2ZW50LmNsaWVudFgsXG4gICAgICAgIHkwID0gZXZlbnQuY2xpZW50WTtcblxuICAgIGRyYWdEaXNhYmxlKGV2ZW50LnZpZXcpO1xuICAgIG5vcHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIGcubW91c2UgPSBbcCwgdGhpcy5fX3pvb20uaW52ZXJ0KHApXTtcbiAgICBpbnRlcnJ1cHQodGhpcyk7XG4gICAgZy5zdGFydCgpO1xuXG4gICAgZnVuY3Rpb24gbW91c2Vtb3ZlZChldmVudCkge1xuICAgICAgbm9ldmVudChldmVudCk7XG4gICAgICBpZiAoIWcubW92ZWQpIHtcbiAgICAgICAgdmFyIGR4ID0gZXZlbnQuY2xpZW50WCAtIHgwLCBkeSA9IGV2ZW50LmNsaWVudFkgLSB5MDtcbiAgICAgICAgZy5tb3ZlZCA9IGR4ICogZHggKyBkeSAqIGR5ID4gY2xpY2tEaXN0YW5jZTI7XG4gICAgICB9XG4gICAgICBnLmV2ZW50KGV2ZW50KVxuICAgICAgIC56b29tKFwibW91c2VcIiwgY29uc3RyYWluKHRyYW5zbGF0ZShnLnRoYXQuX196b29tLCBnLm1vdXNlWzBdID0gcG9pbnRlcihldmVudCwgY3VycmVudFRhcmdldCksIGcubW91c2VbMV0pLCBnLmV4dGVudCwgdHJhbnNsYXRlRXh0ZW50KSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW91c2V1cHBlZChldmVudCkge1xuICAgICAgdi5vbihcIm1vdXNlbW92ZS56b29tIG1vdXNldXAuem9vbVwiLCBudWxsKTtcbiAgICAgIGRyYWdFbmFibGUoZXZlbnQudmlldywgZy5tb3ZlZCk7XG4gICAgICBub2V2ZW50KGV2ZW50KTtcbiAgICAgIGcuZXZlbnQoZXZlbnQpLmVuZCgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGRibGNsaWNrZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAoIWZpbHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSByZXR1cm47XG4gICAgdmFyIHQwID0gdGhpcy5fX3pvb20sXG4gICAgICAgIHAwID0gcG9pbnRlcihldmVudC5jaGFuZ2VkVG91Y2hlcyA/IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdIDogZXZlbnQsIHRoaXMpLFxuICAgICAgICBwMSA9IHQwLmludmVydChwMCksXG4gICAgICAgIGsxID0gdDAuayAqIChldmVudC5zaGlmdEtleSA/IDAuNSA6IDIpLFxuICAgICAgICB0MSA9IGNvbnN0cmFpbih0cmFuc2xhdGUoc2NhbGUodDAsIGsxKSwgcDAsIHAxKSwgZXh0ZW50LmFwcGx5KHRoaXMsIGFyZ3MpLCB0cmFuc2xhdGVFeHRlbnQpO1xuXG4gICAgbm9ldmVudChldmVudCk7XG4gICAgaWYgKGR1cmF0aW9uID4gMCkgc2VsZWN0KHRoaXMpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihkdXJhdGlvbikuY2FsbChzY2hlZHVsZSwgdDEsIHAwLCBldmVudCk7XG4gICAgZWxzZSBzZWxlY3QodGhpcykuY2FsbCh6b29tLnRyYW5zZm9ybSwgdDEsIHAwLCBldmVudCk7XG4gIH1cblxuICBmdW5jdGlvbiB0b3VjaHN0YXJ0ZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAoIWZpbHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSByZXR1cm47XG4gICAgdmFyIHRvdWNoZXMgPSBldmVudC50b3VjaGVzLFxuICAgICAgICBuID0gdG91Y2hlcy5sZW5ndGgsXG4gICAgICAgIGcgPSBnZXN0dXJlKHRoaXMsIGFyZ3MsIGV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA9PT0gbikuZXZlbnQoZXZlbnQpLFxuICAgICAgICBzdGFydGVkLCBpLCB0LCBwO1xuXG4gICAgbm9wcm9wYWdhdGlvbihldmVudCk7XG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgdCA9IHRvdWNoZXNbaV0sIHAgPSBwb2ludGVyKHQsIHRoaXMpO1xuICAgICAgcCA9IFtwLCB0aGlzLl9fem9vbS5pbnZlcnQocCksIHQuaWRlbnRpZmllcl07XG4gICAgICBpZiAoIWcudG91Y2gwKSBnLnRvdWNoMCA9IHAsIHN0YXJ0ZWQgPSB0cnVlLCBnLnRhcHMgPSAxICsgISF0b3VjaHN0YXJ0aW5nO1xuICAgICAgZWxzZSBpZiAoIWcudG91Y2gxICYmIGcudG91Y2gwWzJdICE9PSBwWzJdKSBnLnRvdWNoMSA9IHAsIGcudGFwcyA9IDA7XG4gICAgfVxuXG4gICAgaWYgKHRvdWNoc3RhcnRpbmcpIHRvdWNoc3RhcnRpbmcgPSBjbGVhclRpbWVvdXQodG91Y2hzdGFydGluZyk7XG5cbiAgICBpZiAoc3RhcnRlZCkge1xuICAgICAgaWYgKGcudGFwcyA8IDIpIHRvdWNoZmlyc3QgPSBwWzBdLCB0b3VjaHN0YXJ0aW5nID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsgdG91Y2hzdGFydGluZyA9IG51bGw7IH0sIHRvdWNoRGVsYXkpO1xuICAgICAgaW50ZXJydXB0KHRoaXMpO1xuICAgICAgZy5zdGFydCgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHRvdWNobW92ZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAoIXRoaXMuX196b29taW5nKSByZXR1cm47XG4gICAgdmFyIGcgPSBnZXN0dXJlKHRoaXMsIGFyZ3MpLmV2ZW50KGV2ZW50KSxcbiAgICAgICAgdG91Y2hlcyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzLFxuICAgICAgICBuID0gdG91Y2hlcy5sZW5ndGgsIGksIHQsIHAsIGw7XG5cbiAgICBub2V2ZW50KGV2ZW50KTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICB0ID0gdG91Y2hlc1tpXSwgcCA9IHBvaW50ZXIodCwgdGhpcyk7XG4gICAgICBpZiAoZy50b3VjaDAgJiYgZy50b3VjaDBbMl0gPT09IHQuaWRlbnRpZmllcikgZy50b3VjaDBbMF0gPSBwO1xuICAgICAgZWxzZSBpZiAoZy50b3VjaDEgJiYgZy50b3VjaDFbMl0gPT09IHQuaWRlbnRpZmllcikgZy50b3VjaDFbMF0gPSBwO1xuICAgIH1cbiAgICB0ID0gZy50aGF0Ll9fem9vbTtcbiAgICBpZiAoZy50b3VjaDEpIHtcbiAgICAgIHZhciBwMCA9IGcudG91Y2gwWzBdLCBsMCA9IGcudG91Y2gwWzFdLFxuICAgICAgICAgIHAxID0gZy50b3VjaDFbMF0sIGwxID0gZy50b3VjaDFbMV0sXG4gICAgICAgICAgZHAgPSAoZHAgPSBwMVswXSAtIHAwWzBdKSAqIGRwICsgKGRwID0gcDFbMV0gLSBwMFsxXSkgKiBkcCxcbiAgICAgICAgICBkbCA9IChkbCA9IGwxWzBdIC0gbDBbMF0pICogZGwgKyAoZGwgPSBsMVsxXSAtIGwwWzFdKSAqIGRsO1xuICAgICAgdCA9IHNjYWxlKHQsIE1hdGguc3FydChkcCAvIGRsKSk7XG4gICAgICBwID0gWyhwMFswXSArIHAxWzBdKSAvIDIsIChwMFsxXSArIHAxWzFdKSAvIDJdO1xuICAgICAgbCA9IFsobDBbMF0gKyBsMVswXSkgLyAyLCAobDBbMV0gKyBsMVsxXSkgLyAyXTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZy50b3VjaDApIHAgPSBnLnRvdWNoMFswXSwgbCA9IGcudG91Y2gwWzFdO1xuICAgIGVsc2UgcmV0dXJuO1xuXG4gICAgZy56b29tKFwidG91Y2hcIiwgY29uc3RyYWluKHRyYW5zbGF0ZSh0LCBwLCBsKSwgZy5leHRlbnQsIHRyYW5zbGF0ZUV4dGVudCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdG91Y2hlbmRlZChldmVudCwgLi4uYXJncykge1xuICAgIGlmICghdGhpcy5fX3pvb21pbmcpIHJldHVybjtcbiAgICB2YXIgZyA9IGdlc3R1cmUodGhpcywgYXJncykuZXZlbnQoZXZlbnQpLFxuICAgICAgICB0b3VjaGVzID0gZXZlbnQuY2hhbmdlZFRvdWNoZXMsXG4gICAgICAgIG4gPSB0b3VjaGVzLmxlbmd0aCwgaSwgdDtcblxuICAgIG5vcHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIGlmICh0b3VjaGVuZGluZykgY2xlYXJUaW1lb3V0KHRvdWNoZW5kaW5nKTtcbiAgICB0b3VjaGVuZGluZyA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRvdWNoZW5kaW5nID0gbnVsbDsgfSwgdG91Y2hEZWxheSk7XG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgdCA9IHRvdWNoZXNbaV07XG4gICAgICBpZiAoZy50b3VjaDAgJiYgZy50b3VjaDBbMl0gPT09IHQuaWRlbnRpZmllcikgZGVsZXRlIGcudG91Y2gwO1xuICAgICAgZWxzZSBpZiAoZy50b3VjaDEgJiYgZy50b3VjaDFbMl0gPT09IHQuaWRlbnRpZmllcikgZGVsZXRlIGcudG91Y2gxO1xuICAgIH1cbiAgICBpZiAoZy50b3VjaDEgJiYgIWcudG91Y2gwKSBnLnRvdWNoMCA9IGcudG91Y2gxLCBkZWxldGUgZy50b3VjaDE7XG4gICAgaWYgKGcudG91Y2gwKSBnLnRvdWNoMFsxXSA9IHRoaXMuX196b29tLmludmVydChnLnRvdWNoMFswXSk7XG4gICAgZWxzZSB7XG4gICAgICBnLmVuZCgpO1xuICAgICAgLy8gSWYgdGhpcyB3YXMgYSBkYmx0YXAsIHJlcm91dGUgdG8gdGhlIChvcHRpb25hbCkgZGJsY2xpY2suem9vbSBoYW5kbGVyLlxuICAgICAgaWYgKGcudGFwcyA9PT0gMikge1xuICAgICAgICB0ID0gcG9pbnRlcih0LCB0aGlzKTtcbiAgICAgICAgaWYgKE1hdGguaHlwb3QodG91Y2hmaXJzdFswXSAtIHRbMF0sIHRvdWNoZmlyc3RbMV0gLSB0WzFdKSA8IHRhcERpc3RhbmNlKSB7XG4gICAgICAgICAgdmFyIHAgPSBzZWxlY3QodGhpcykub24oXCJkYmxjbGljay56b29tXCIpO1xuICAgICAgICAgIGlmIChwKSBwLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB6b29tLndoZWVsRGVsdGEgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAod2hlZWxEZWx0YSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCB6b29tKSA6IHdoZWVsRGVsdGE7XG4gIH07XG5cbiAgem9vbS5maWx0ZXIgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZmlsdGVyID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCghIV8pLCB6b29tKSA6IGZpbHRlcjtcbiAgfTtcblxuICB6b29tLnRvdWNoYWJsZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0b3VjaGFibGUgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCEhXyksIHpvb20pIDogdG91Y2hhYmxlO1xuICB9O1xuXG4gIHpvb20uZXh0ZW50ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGV4dGVudCA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoW1srX1swXVswXSwgK19bMF1bMV1dLCBbK19bMV1bMF0sICtfWzFdWzFdXV0pLCB6b29tKSA6IGV4dGVudDtcbiAgfTtcblxuICB6b29tLnNjYWxlRXh0ZW50ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHNjYWxlRXh0ZW50WzBdID0gK19bMF0sIHNjYWxlRXh0ZW50WzFdID0gK19bMV0sIHpvb20pIDogW3NjYWxlRXh0ZW50WzBdLCBzY2FsZUV4dGVudFsxXV07XG4gIH07XG5cbiAgem9vbS50cmFuc2xhdGVFeHRlbnQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAodHJhbnNsYXRlRXh0ZW50WzBdWzBdID0gK19bMF1bMF0sIHRyYW5zbGF0ZUV4dGVudFsxXVswXSA9ICtfWzFdWzBdLCB0cmFuc2xhdGVFeHRlbnRbMF1bMV0gPSArX1swXVsxXSwgdHJhbnNsYXRlRXh0ZW50WzFdWzFdID0gK19bMV1bMV0sIHpvb20pIDogW1t0cmFuc2xhdGVFeHRlbnRbMF1bMF0sIHRyYW5zbGF0ZUV4dGVudFswXVsxXV0sIFt0cmFuc2xhdGVFeHRlbnRbMV1bMF0sIHRyYW5zbGF0ZUV4dGVudFsxXVsxXV1dO1xuICB9O1xuXG4gIHpvb20uY29uc3RyYWluID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGNvbnN0cmFpbiA9IF8sIHpvb20pIDogY29uc3RyYWluO1xuICB9O1xuXG4gIHpvb20uZHVyYXRpb24gPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZHVyYXRpb24gPSArXywgem9vbSkgOiBkdXJhdGlvbjtcbiAgfTtcblxuICB6b29tLmludGVycG9sYXRlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGludGVycG9sYXRlID0gXywgem9vbSkgOiBpbnRlcnBvbGF0ZTtcbiAgfTtcblxuICB6b29tLm9uID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHZhbHVlID0gbGlzdGVuZXJzLm9uLmFwcGx5KGxpc3RlbmVycywgYXJndW1lbnRzKTtcbiAgICByZXR1cm4gdmFsdWUgPT09IGxpc3RlbmVycyA/IHpvb20gOiB2YWx1ZTtcbiAgfTtcblxuICB6b29tLmNsaWNrRGlzdGFuY2UgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoY2xpY2tEaXN0YW5jZTIgPSAoXyA9ICtfKSAqIF8sIHpvb20pIDogTWF0aC5zcXJ0KGNsaWNrRGlzdGFuY2UyKTtcbiAgfTtcblxuICB6b29tLnRhcERpc3RhbmNlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRhcERpc3RhbmNlID0gK18sIHpvb20pIDogdGFwRGlzdGFuY2U7XG4gIH07XG5cbiAgcmV0dXJuIHpvb207XG59XG4iLAogICAgImV4cG9ydCB7ZGVmYXVsdCBhcyB6b29tfSBmcm9tIFwiLi96b29tLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgem9vbVRyYW5zZm9ybSwgaWRlbnRpdHkgYXMgem9vbUlkZW50aXR5LCBUcmFuc2Zvcm0gYXMgWm9vbVRyYW5zZm9ybX0gZnJvbSBcIi4vdHJhbnNmb3JtLmpzXCI7XG4iLAogICAgImV4cG9ydCAqIGZyb20gXCJkMy1hcnJheVwiO1xuZXhwb3J0ICogZnJvbSBcImQzLWF4aXNcIjtcbmV4cG9ydCAqIGZyb20gXCJkMy1icnVzaFwiO1xuZXhwb3J0ICogZnJvbSBcImQzLWNob3JkXCI7XG5leHBvcnQgKiBmcm9tIFwiZDMtY29sb3JcIjtcbmV4cG9ydCAqIGZyb20gXCJkMy1jb250b3VyXCI7XG5leHBvcnQgKiBmcm9tIFwiZDMtZGVsYXVuYXlcIjtcbmV4cG9ydCAqIGZyb20gXCJkMy1kaXNwYXRjaFwiO1xuZXhwb3J0ICogZnJvbSBcImQzLWRyYWdcIjtcbmV4cG9ydCAqIGZyb20gXCJkMy1kc3ZcIjtcbmV4cG9ydCAqIGZyb20gXCJkMy1lYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiZDMtZmV0Y2hcIjtcbmV4cG9ydCAqIGZyb20gXCJkMy1mb3JjZVwiO1xuZXhwb3J0ICogZnJvbSBcImQzLWZvcm1hdFwiO1xuZXhwb3J0ICogZnJvbSBcImQzLWdlb1wiO1xuZXhwb3J0ICogZnJvbSBcImQzLWhpZXJhcmNoeVwiO1xuZXhwb3J0ICogZnJvbSBcImQzLWludGVycG9sYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiZDMtcGF0aFwiO1xuZXhwb3J0ICogZnJvbSBcImQzLXBvbHlnb25cIjtcbmV4cG9ydCAqIGZyb20gXCJkMy1xdWFkdHJlZVwiO1xuZXhwb3J0ICogZnJvbSBcImQzLXJhbmRvbVwiO1xuZXhwb3J0ICogZnJvbSBcImQzLXNjYWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiZDMtc2NhbGUtY2hyb21hdGljXCI7XG5leHBvcnQgKiBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiZDMtc2hhcGVcIjtcbmV4cG9ydCAqIGZyb20gXCJkMy10aW1lXCI7XG5leHBvcnQgKiBmcm9tIFwiZDMtdGltZS1mb3JtYXRcIjtcbmV4cG9ydCAqIGZyb20gXCJkMy10aW1lclwiO1xuZXhwb3J0ICogZnJvbSBcImQzLXRyYW5zaXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCJkMy16b29tXCI7XG4iLAogICAgIi8qISBAbGljZW5zZSBET01QdXJpZnkgMy4xLjYgfCAoYykgQ3VyZTUzIGFuZCBvdGhlciBjb250cmlidXRvcnMgfCBSZWxlYXNlZCB1bmRlciB0aGUgQXBhY2hlIGxpY2Vuc2UgMi4wIGFuZCBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIDIuMCB8IGdpdGh1Yi5jb20vY3VyZTUzL0RPTVB1cmlmeS9ibG9iLzMuMS42L0xJQ0VOU0UgKi9cblxuKGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuICAoZ2xvYmFsID0gdHlwZW9mIGdsb2JhbFRoaXMgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsVGhpcyA6IGdsb2JhbCB8fCBzZWxmLCBnbG9iYWwuRE9NUHVyaWZ5ID0gZmFjdG9yeSgpKTtcbn0pKHRoaXMsIChmdW5jdGlvbiAoKSB7ICd1c2Ugc3RyaWN0JztcblxuICBjb25zdCB7XG4gICAgZW50cmllcyxcbiAgICBzZXRQcm90b3R5cGVPZixcbiAgICBpc0Zyb3plbixcbiAgICBnZXRQcm90b3R5cGVPZixcbiAgICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JcbiAgfSA9IE9iamVjdDtcbiAgbGV0IHtcbiAgICBmcmVlemUsXG4gICAgc2VhbCxcbiAgICBjcmVhdGVcbiAgfSA9IE9iamVjdDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBpbXBvcnQvbm8tbXV0YWJsZS1leHBvcnRzXG4gIGxldCB7XG4gICAgYXBwbHksXG4gICAgY29uc3RydWN0XG4gIH0gPSB0eXBlb2YgUmVmbGVjdCAhPT0gJ3VuZGVmaW5lZCcgJiYgUmVmbGVjdDtcbiAgaWYgKCFmcmVlemUpIHtcbiAgICBmcmVlemUgPSBmdW5jdGlvbiBmcmVlemUoeCkge1xuICAgICAgcmV0dXJuIHg7XG4gICAgfTtcbiAgfVxuICBpZiAoIXNlYWwpIHtcbiAgICBzZWFsID0gZnVuY3Rpb24gc2VhbCh4KSB7XG4gICAgICByZXR1cm4geDtcbiAgICB9O1xuICB9XG4gIGlmICghYXBwbHkpIHtcbiAgICBhcHBseSA9IGZ1bmN0aW9uIGFwcGx5KGZ1biwgdGhpc1ZhbHVlLCBhcmdzKSB7XG4gICAgICByZXR1cm4gZnVuLmFwcGx5KHRoaXNWYWx1ZSwgYXJncyk7XG4gICAgfTtcbiAgfVxuICBpZiAoIWNvbnN0cnVjdCkge1xuICAgIGNvbnN0cnVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdChGdW5jLCBhcmdzKSB7XG4gICAgICByZXR1cm4gbmV3IEZ1bmMoLi4uYXJncyk7XG4gICAgfTtcbiAgfVxuICBjb25zdCBhcnJheUZvckVhY2ggPSB1bmFwcGx5KEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTtcbiAgY29uc3QgYXJyYXlQb3AgPSB1bmFwcGx5KEFycmF5LnByb3RvdHlwZS5wb3ApO1xuICBjb25zdCBhcnJheVB1c2ggPSB1bmFwcGx5KEFycmF5LnByb3RvdHlwZS5wdXNoKTtcbiAgY29uc3Qgc3RyaW5nVG9Mb3dlckNhc2UgPSB1bmFwcGx5KFN0cmluZy5wcm90b3R5cGUudG9Mb3dlckNhc2UpO1xuICBjb25zdCBzdHJpbmdUb1N0cmluZyA9IHVuYXBwbHkoU3RyaW5nLnByb3RvdHlwZS50b1N0cmluZyk7XG4gIGNvbnN0IHN0cmluZ01hdGNoID0gdW5hcHBseShTdHJpbmcucHJvdG90eXBlLm1hdGNoKTtcbiAgY29uc3Qgc3RyaW5nUmVwbGFjZSA9IHVuYXBwbHkoU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKTtcbiAgY29uc3Qgc3RyaW5nSW5kZXhPZiA9IHVuYXBwbHkoU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mKTtcbiAgY29uc3Qgc3RyaW5nVHJpbSA9IHVuYXBwbHkoU3RyaW5nLnByb3RvdHlwZS50cmltKTtcbiAgY29uc3Qgb2JqZWN0SGFzT3duUHJvcGVydHkgPSB1bmFwcGx5KE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuICBjb25zdCByZWdFeHBUZXN0ID0gdW5hcHBseShSZWdFeHAucHJvdG90eXBlLnRlc3QpO1xuICBjb25zdCB0eXBlRXJyb3JDcmVhdGUgPSB1bmNvbnN0cnVjdChUeXBlRXJyb3IpO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGZ1bmN0aW9uIHRoYXQgY2FsbHMgdGhlIGdpdmVuIGZ1bmN0aW9uIHdpdGggYSBzcGVjaWZpZWQgdGhpc0FyZyBhbmQgYXJndW1lbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIC0gVGhlIGZ1bmN0aW9uIHRvIGJlIHdyYXBwZWQgYW5kIGNhbGxlZC5cbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBBIG5ldyBmdW5jdGlvbiB0aGF0IGNhbGxzIHRoZSBnaXZlbiBmdW5jdGlvbiB3aXRoIGEgc3BlY2lmaWVkIHRoaXNBcmcgYW5kIGFyZ3VtZW50cy5cbiAgICovXG4gIGZ1bmN0aW9uIHVuYXBwbHkoZnVuYykge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGhpc0FyZykge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzQXJnLCBhcmdzKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZnVuY3Rpb24gdGhhdCBjb25zdHJ1Y3RzIGFuIGluc3RhbmNlIG9mIHRoZSBnaXZlbiBjb25zdHJ1Y3RvciBmdW5jdGlvbiB3aXRoIHRoZSBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgLSBUaGUgY29uc3RydWN0b3IgZnVuY3Rpb24gdG8gYmUgd3JhcHBlZCBhbmQgY2FsbGVkLlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IEEgbmV3IGZ1bmN0aW9uIHRoYXQgY29uc3RydWN0cyBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gY29uc3RydWN0b3IgZnVuY3Rpb24gd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgKi9cbiAgZnVuY3Rpb24gdW5jb25zdHJ1Y3QoZnVuYykge1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnN0cnVjdChmdW5jLCBhcmdzKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBwcm9wZXJ0aWVzIHRvIGEgbG9va3VwIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzZXQgLSBUaGUgc2V0IHRvIHdoaWNoIGVsZW1lbnRzIHdpbGwgYmUgYWRkZWQuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IC0gVGhlIGFycmF5IGNvbnRhaW5pbmcgZWxlbWVudHMgdG8gYmUgYWRkZWQgdG8gdGhlIHNldC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtQ2FzZUZ1bmMgLSBBbiBvcHRpb25hbCBmdW5jdGlvbiB0byB0cmFuc2Zvcm0gdGhlIGNhc2Ugb2YgZWFjaCBlbGVtZW50IGJlZm9yZSBhZGRpbmcgdG8gdGhlIHNldC5cbiAgICogQHJldHVybnMge09iamVjdH0gVGhlIG1vZGlmaWVkIHNldCB3aXRoIGFkZGVkIGVsZW1lbnRzLlxuICAgKi9cbiAgZnVuY3Rpb24gYWRkVG9TZXQoc2V0LCBhcnJheSkge1xuICAgIGxldCB0cmFuc2Zvcm1DYXNlRnVuYyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogc3RyaW5nVG9Mb3dlckNhc2U7XG4gICAgaWYgKHNldFByb3RvdHlwZU9mKSB7XG4gICAgICAvLyBNYWtlICdpbicgYW5kIHRydXRoeSBjaGVja3MgbGlrZSBCb29sZWFuKHNldC5jb25zdHJ1Y3RvcilcbiAgICAgIC8vIGluZGVwZW5kZW50IG9mIGFueSBwcm9wZXJ0aWVzIGRlZmluZWQgb24gT2JqZWN0LnByb3RvdHlwZS5cbiAgICAgIC8vIFByZXZlbnQgcHJvdG90eXBlIHNldHRlcnMgZnJvbSBpbnRlcmNlcHRpbmcgc2V0IGFzIGEgdGhpcyB2YWx1ZS5cbiAgICAgIHNldFByb3RvdHlwZU9mKHNldCwgbnVsbCk7XG4gICAgfVxuICAgIGxldCBsID0gYXJyYXkubGVuZ3RoO1xuICAgIHdoaWxlIChsLS0pIHtcbiAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbbF07XG4gICAgICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IGxjRWxlbWVudCA9IHRyYW5zZm9ybUNhc2VGdW5jKGVsZW1lbnQpO1xuICAgICAgICBpZiAobGNFbGVtZW50ICE9PSBlbGVtZW50KSB7XG4gICAgICAgICAgLy8gQ29uZmlnIHByZXNldHMgKGUuZy4gdGFncy5qcywgYXR0cnMuanMpIGFyZSBpbW11dGFibGUuXG4gICAgICAgICAgaWYgKCFpc0Zyb3plbihhcnJheSkpIHtcbiAgICAgICAgICAgIGFycmF5W2xdID0gbGNFbGVtZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbGVtZW50ID0gbGNFbGVtZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzZXRbZWxlbWVudF0gPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gc2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFuIHVwIGFuIGFycmF5IHRvIGhhcmRlbiBhZ2FpbnN0IENTUFBcbiAgICpcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgLSBUaGUgYXJyYXkgdG8gYmUgY2xlYW5lZC5cbiAgICogQHJldHVybnMge0FycmF5fSBUaGUgY2xlYW5lZCB2ZXJzaW9uIG9mIHRoZSBhcnJheVxuICAgKi9cbiAgZnVuY3Rpb24gY2xlYW5BcnJheShhcnJheSkge1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhcnJheS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGlzUHJvcGVydHlFeGlzdCA9IG9iamVjdEhhc093blByb3BlcnR5KGFycmF5LCBpbmRleCk7XG4gICAgICBpZiAoIWlzUHJvcGVydHlFeGlzdCkge1xuICAgICAgICBhcnJheVtpbmRleF0gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cblxuICAvKipcbiAgICogU2hhbGxvdyBjbG9uZSBhbiBvYmplY3RcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCAtIFRoZSBvYmplY3QgdG8gYmUgY2xvbmVkLlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBBIG5ldyBvYmplY3QgdGhhdCBjb3BpZXMgdGhlIG9yaWdpbmFsLlxuICAgKi9cbiAgZnVuY3Rpb24gY2xvbmUob2JqZWN0KSB7XG4gICAgY29uc3QgbmV3T2JqZWN0ID0gY3JlYXRlKG51bGwpO1xuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCB2YWx1ZV0gb2YgZW50cmllcyhvYmplY3QpKSB7XG4gICAgICBjb25zdCBpc1Byb3BlcnR5RXhpc3QgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShvYmplY3QsIHByb3BlcnR5KTtcbiAgICAgIGlmIChpc1Byb3BlcnR5RXhpc3QpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgbmV3T2JqZWN0W3Byb3BlcnR5XSA9IGNsZWFuQXJyYXkodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICAgICAgICAgIG5ld09iamVjdFtwcm9wZXJ0eV0gPSBjbG9uZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3T2JqZWN0W3Byb3BlcnR5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmplY3Q7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgYXV0b21hdGljYWxseSBjaGVja3MgaWYgdGhlIHByb3AgaXMgZnVuY3Rpb24gb3IgZ2V0dGVyIGFuZCBiZWhhdmVzIGFjY29yZGluZ2x5LlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IC0gVGhlIG9iamVjdCB0byBsb29rIHVwIHRoZSBnZXR0ZXIgZnVuY3Rpb24gaW4gaXRzIHByb3RvdHlwZSBjaGFpbi5cbiAgICogQHBhcmFtIHtTdHJpbmd9IHByb3AgLSBUaGUgcHJvcGVydHkgbmFtZSBmb3Igd2hpY2ggdG8gZmluZCB0aGUgZ2V0dGVyIGZ1bmN0aW9uLlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFRoZSBnZXR0ZXIgZnVuY3Rpb24gZm91bmQgaW4gdGhlIHByb3RvdHlwZSBjaGFpbiBvciBhIGZhbGxiYWNrIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gbG9va3VwR2V0dGVyKG9iamVjdCwgcHJvcCkge1xuICAgIHdoaWxlIChvYmplY3QgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRlc2MgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBwcm9wKTtcbiAgICAgIGlmIChkZXNjKSB7XG4gICAgICAgIGlmIChkZXNjLmdldCkge1xuICAgICAgICAgIHJldHVybiB1bmFwcGx5KGRlc2MuZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGRlc2MudmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gdW5hcHBseShkZXNjLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgb2JqZWN0ID0gZ2V0UHJvdG90eXBlT2Yob2JqZWN0KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmFsbGJhY2tWYWx1ZSgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gZmFsbGJhY2tWYWx1ZTtcbiAgfVxuXG4gIGNvbnN0IGh0bWwkMSA9IGZyZWV6ZShbJ2EnLCAnYWJicicsICdhY3JvbnltJywgJ2FkZHJlc3MnLCAnYXJlYScsICdhcnRpY2xlJywgJ2FzaWRlJywgJ2F1ZGlvJywgJ2InLCAnYmRpJywgJ2JkbycsICdiaWcnLCAnYmxpbmsnLCAnYmxvY2txdW90ZScsICdib2R5JywgJ2JyJywgJ2J1dHRvbicsICdjYW52YXMnLCAnY2FwdGlvbicsICdjZW50ZXInLCAnY2l0ZScsICdjb2RlJywgJ2NvbCcsICdjb2xncm91cCcsICdjb250ZW50JywgJ2RhdGEnLCAnZGF0YWxpc3QnLCAnZGQnLCAnZGVjb3JhdG9yJywgJ2RlbCcsICdkZXRhaWxzJywgJ2RmbicsICdkaWFsb2cnLCAnZGlyJywgJ2RpdicsICdkbCcsICdkdCcsICdlbGVtZW50JywgJ2VtJywgJ2ZpZWxkc2V0JywgJ2ZpZ2NhcHRpb24nLCAnZmlndXJlJywgJ2ZvbnQnLCAnZm9vdGVyJywgJ2Zvcm0nLCAnaDEnLCAnaDInLCAnaDMnLCAnaDQnLCAnaDUnLCAnaDYnLCAnaGVhZCcsICdoZWFkZXInLCAnaGdyb3VwJywgJ2hyJywgJ2h0bWwnLCAnaScsICdpbWcnLCAnaW5wdXQnLCAnaW5zJywgJ2tiZCcsICdsYWJlbCcsICdsZWdlbmQnLCAnbGknLCAnbWFpbicsICdtYXAnLCAnbWFyaycsICdtYXJxdWVlJywgJ21lbnUnLCAnbWVudWl0ZW0nLCAnbWV0ZXInLCAnbmF2JywgJ25vYnInLCAnb2wnLCAnb3B0Z3JvdXAnLCAnb3B0aW9uJywgJ291dHB1dCcsICdwJywgJ3BpY3R1cmUnLCAncHJlJywgJ3Byb2dyZXNzJywgJ3EnLCAncnAnLCAncnQnLCAncnVieScsICdzJywgJ3NhbXAnLCAnc2VjdGlvbicsICdzZWxlY3QnLCAnc2hhZG93JywgJ3NtYWxsJywgJ3NvdXJjZScsICdzcGFjZXInLCAnc3BhbicsICdzdHJpa2UnLCAnc3Ryb25nJywgJ3N0eWxlJywgJ3N1YicsICdzdW1tYXJ5JywgJ3N1cCcsICd0YWJsZScsICd0Ym9keScsICd0ZCcsICd0ZW1wbGF0ZScsICd0ZXh0YXJlYScsICd0Zm9vdCcsICd0aCcsICd0aGVhZCcsICd0aW1lJywgJ3RyJywgJ3RyYWNrJywgJ3R0JywgJ3UnLCAndWwnLCAndmFyJywgJ3ZpZGVvJywgJ3diciddKTtcblxuICAvLyBTVkdcbiAgY29uc3Qgc3ZnJDEgPSBmcmVlemUoWydzdmcnLCAnYScsICdhbHRnbHlwaCcsICdhbHRnbHlwaGRlZicsICdhbHRnbHlwaGl0ZW0nLCAnYW5pbWF0ZWNvbG9yJywgJ2FuaW1hdGVtb3Rpb24nLCAnYW5pbWF0ZXRyYW5zZm9ybScsICdjaXJjbGUnLCAnY2xpcHBhdGgnLCAnZGVmcycsICdkZXNjJywgJ2VsbGlwc2UnLCAnZmlsdGVyJywgJ2ZvbnQnLCAnZycsICdnbHlwaCcsICdnbHlwaHJlZicsICdoa2VybicsICdpbWFnZScsICdsaW5lJywgJ2xpbmVhcmdyYWRpZW50JywgJ21hcmtlcicsICdtYXNrJywgJ21ldGFkYXRhJywgJ21wYXRoJywgJ3BhdGgnLCAncGF0dGVybicsICdwb2x5Z29uJywgJ3BvbHlsaW5lJywgJ3JhZGlhbGdyYWRpZW50JywgJ3JlY3QnLCAnc3RvcCcsICdzdHlsZScsICdzd2l0Y2gnLCAnc3ltYm9sJywgJ3RleHQnLCAndGV4dHBhdGgnLCAndGl0bGUnLCAndHJlZicsICd0c3BhbicsICd2aWV3JywgJ3ZrZXJuJ10pO1xuICBjb25zdCBzdmdGaWx0ZXJzID0gZnJlZXplKFsnZmVCbGVuZCcsICdmZUNvbG9yTWF0cml4JywgJ2ZlQ29tcG9uZW50VHJhbnNmZXInLCAnZmVDb21wb3NpdGUnLCAnZmVDb252b2x2ZU1hdHJpeCcsICdmZURpZmZ1c2VMaWdodGluZycsICdmZURpc3BsYWNlbWVudE1hcCcsICdmZURpc3RhbnRMaWdodCcsICdmZURyb3BTaGFkb3cnLCAnZmVGbG9vZCcsICdmZUZ1bmNBJywgJ2ZlRnVuY0InLCAnZmVGdW5jRycsICdmZUZ1bmNSJywgJ2ZlR2F1c3NpYW5CbHVyJywgJ2ZlSW1hZ2UnLCAnZmVNZXJnZScsICdmZU1lcmdlTm9kZScsICdmZU1vcnBob2xvZ3knLCAnZmVPZmZzZXQnLCAnZmVQb2ludExpZ2h0JywgJ2ZlU3BlY3VsYXJMaWdodGluZycsICdmZVNwb3RMaWdodCcsICdmZVRpbGUnLCAnZmVUdXJidWxlbmNlJ10pO1xuXG4gIC8vIExpc3Qgb2YgU1ZHIGVsZW1lbnRzIHRoYXQgYXJlIGRpc2FsbG93ZWQgYnkgZGVmYXVsdC5cbiAgLy8gV2Ugc3RpbGwgbmVlZCB0byBrbm93IHRoZW0gc28gdGhhdCB3ZSBjYW4gZG8gbmFtZXNwYWNlXG4gIC8vIGNoZWNrcyBwcm9wZXJseSBpbiBjYXNlIG9uZSB3YW50cyB0byBhZGQgdGhlbSB0b1xuICAvLyBhbGxvdy1saXN0LlxuICBjb25zdCBzdmdEaXNhbGxvd2VkID0gZnJlZXplKFsnYW5pbWF0ZScsICdjb2xvci1wcm9maWxlJywgJ2N1cnNvcicsICdkaXNjYXJkJywgJ2ZvbnQtZmFjZScsICdmb250LWZhY2UtZm9ybWF0JywgJ2ZvbnQtZmFjZS1uYW1lJywgJ2ZvbnQtZmFjZS1zcmMnLCAnZm9udC1mYWNlLXVyaScsICdmb3JlaWdub2JqZWN0JywgJ2hhdGNoJywgJ2hhdGNocGF0aCcsICdtZXNoJywgJ21lc2hncmFkaWVudCcsICdtZXNocGF0Y2gnLCAnbWVzaHJvdycsICdtaXNzaW5nLWdseXBoJywgJ3NjcmlwdCcsICdzZXQnLCAnc29saWRjb2xvcicsICd1bmtub3duJywgJ3VzZSddKTtcbiAgY29uc3QgbWF0aE1sJDEgPSBmcmVlemUoWydtYXRoJywgJ21lbmNsb3NlJywgJ21lcnJvcicsICdtZmVuY2VkJywgJ21mcmFjJywgJ21nbHlwaCcsICdtaScsICdtbGFiZWxlZHRyJywgJ21tdWx0aXNjcmlwdHMnLCAnbW4nLCAnbW8nLCAnbW92ZXInLCAnbXBhZGRlZCcsICdtcGhhbnRvbScsICdtcm9vdCcsICdtcm93JywgJ21zJywgJ21zcGFjZScsICdtc3FydCcsICdtc3R5bGUnLCAnbXN1YicsICdtc3VwJywgJ21zdWJzdXAnLCAnbXRhYmxlJywgJ210ZCcsICdtdGV4dCcsICdtdHInLCAnbXVuZGVyJywgJ211bmRlcm92ZXInLCAnbXByZXNjcmlwdHMnXSk7XG5cbiAgLy8gU2ltaWxhcmx5IHRvIFNWRywgd2Ugd2FudCB0byBrbm93IGFsbCBNYXRoTUwgZWxlbWVudHMsXG4gIC8vIGV2ZW4gdGhvc2UgdGhhdCB3ZSBkaXNhbGxvdyBieSBkZWZhdWx0LlxuICBjb25zdCBtYXRoTWxEaXNhbGxvd2VkID0gZnJlZXplKFsnbWFjdGlvbicsICdtYWxpZ25ncm91cCcsICdtYWxpZ25tYXJrJywgJ21sb25nZGl2JywgJ21zY2FycmllcycsICdtc2NhcnJ5JywgJ21zZ3JvdXAnLCAnbXN0YWNrJywgJ21zbGluZScsICdtc3JvdycsICdzZW1hbnRpY3MnLCAnYW5ub3RhdGlvbicsICdhbm5vdGF0aW9uLXhtbCcsICdtcHJlc2NyaXB0cycsICdub25lJ10pO1xuICBjb25zdCB0ZXh0ID0gZnJlZXplKFsnI3RleHQnXSk7XG5cbiAgY29uc3QgaHRtbCA9IGZyZWV6ZShbJ2FjY2VwdCcsICdhY3Rpb24nLCAnYWxpZ24nLCAnYWx0JywgJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvcGljdHVyZWlucGljdHVyZScsICdhdXRvcGxheScsICdiYWNrZ3JvdW5kJywgJ2JnY29sb3InLCAnYm9yZGVyJywgJ2NhcHR1cmUnLCAnY2VsbHBhZGRpbmcnLCAnY2VsbHNwYWNpbmcnLCAnY2hlY2tlZCcsICdjaXRlJywgJ2NsYXNzJywgJ2NsZWFyJywgJ2NvbG9yJywgJ2NvbHMnLCAnY29sc3BhbicsICdjb250cm9scycsICdjb250cm9sc2xpc3QnLCAnY29vcmRzJywgJ2Nyb3Nzb3JpZ2luJywgJ2RhdGV0aW1lJywgJ2RlY29kaW5nJywgJ2RlZmF1bHQnLCAnZGlyJywgJ2Rpc2FibGVkJywgJ2Rpc2FibGVwaWN0dXJlaW5waWN0dXJlJywgJ2Rpc2FibGVyZW1vdGVwbGF5YmFjaycsICdkb3dubG9hZCcsICdkcmFnZ2FibGUnLCAnZW5jdHlwZScsICdlbnRlcmtleWhpbnQnLCAnZmFjZScsICdmb3InLCAnaGVhZGVycycsICdoZWlnaHQnLCAnaGlkZGVuJywgJ2hpZ2gnLCAnaHJlZicsICdocmVmbGFuZycsICdpZCcsICdpbnB1dG1vZGUnLCAnaW50ZWdyaXR5JywgJ2lzbWFwJywgJ2tpbmQnLCAnbGFiZWwnLCAnbGFuZycsICdsaXN0JywgJ2xvYWRpbmcnLCAnbG9vcCcsICdsb3cnLCAnbWF4JywgJ21heGxlbmd0aCcsICdtZWRpYScsICdtZXRob2QnLCAnbWluJywgJ21pbmxlbmd0aCcsICdtdWx0aXBsZScsICdtdXRlZCcsICduYW1lJywgJ25vbmNlJywgJ25vc2hhZGUnLCAnbm92YWxpZGF0ZScsICdub3dyYXAnLCAnb3BlbicsICdvcHRpbXVtJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncGxheXNpbmxpbmUnLCAncG9wb3ZlcicsICdwb3BvdmVydGFyZ2V0JywgJ3BvcG92ZXJ0YXJnZXRhY3Rpb24nLCAncG9zdGVyJywgJ3ByZWxvYWQnLCAncHViZGF0ZScsICdyYWRpb2dyb3VwJywgJ3JlYWRvbmx5JywgJ3JlbCcsICdyZXF1aXJlZCcsICdyZXYnLCAncmV2ZXJzZWQnLCAncm9sZScsICdyb3dzJywgJ3Jvd3NwYW4nLCAnc3BlbGxjaGVjaycsICdzY29wZScsICdzZWxlY3RlZCcsICdzaGFwZScsICdzaXplJywgJ3NpemVzJywgJ3NwYW4nLCAnc3JjbGFuZycsICdzdGFydCcsICdzcmMnLCAnc3Jjc2V0JywgJ3N0ZXAnLCAnc3R5bGUnLCAnc3VtbWFyeScsICd0YWJpbmRleCcsICd0aXRsZScsICd0cmFuc2xhdGUnLCAndHlwZScsICd1c2VtYXAnLCAndmFsaWduJywgJ3ZhbHVlJywgJ3dpZHRoJywgJ3dyYXAnLCAneG1sbnMnLCAnc2xvdCddKTtcbiAgY29uc3Qgc3ZnID0gZnJlZXplKFsnYWNjZW50LWhlaWdodCcsICdhY2N1bXVsYXRlJywgJ2FkZGl0aXZlJywgJ2FsaWdubWVudC1iYXNlbGluZScsICdhc2NlbnQnLCAnYXR0cmlidXRlbmFtZScsICdhdHRyaWJ1dGV0eXBlJywgJ2F6aW11dGgnLCAnYmFzZWZyZXF1ZW5jeScsICdiYXNlbGluZS1zaGlmdCcsICdiZWdpbicsICdiaWFzJywgJ2J5JywgJ2NsYXNzJywgJ2NsaXAnLCAnY2xpcHBhdGh1bml0cycsICdjbGlwLXBhdGgnLCAnY2xpcC1ydWxlJywgJ2NvbG9yJywgJ2NvbG9yLWludGVycG9sYXRpb24nLCAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJywgJ2NvbG9yLXByb2ZpbGUnLCAnY29sb3ItcmVuZGVyaW5nJywgJ2N4JywgJ2N5JywgJ2QnLCAnZHgnLCAnZHknLCAnZGlmZnVzZWNvbnN0YW50JywgJ2RpcmVjdGlvbicsICdkaXNwbGF5JywgJ2Rpdmlzb3InLCAnZHVyJywgJ2VkZ2Vtb2RlJywgJ2VsZXZhdGlvbicsICdlbmQnLCAnZmlsbCcsICdmaWxsLW9wYWNpdHknLCAnZmlsbC1ydWxlJywgJ2ZpbHRlcicsICdmaWx0ZXJ1bml0cycsICdmbG9vZC1jb2xvcicsICdmbG9vZC1vcGFjaXR5JywgJ2ZvbnQtZmFtaWx5JywgJ2ZvbnQtc2l6ZScsICdmb250LXNpemUtYWRqdXN0JywgJ2ZvbnQtc3RyZXRjaCcsICdmb250LXN0eWxlJywgJ2ZvbnQtdmFyaWFudCcsICdmb250LXdlaWdodCcsICdmeCcsICdmeScsICdnMScsICdnMicsICdnbHlwaC1uYW1lJywgJ2dseXBocmVmJywgJ2dyYWRpZW50dW5pdHMnLCAnZ3JhZGllbnR0cmFuc2Zvcm0nLCAnaGVpZ2h0JywgJ2hyZWYnLCAnaWQnLCAnaW1hZ2UtcmVuZGVyaW5nJywgJ2luJywgJ2luMicsICdrJywgJ2sxJywgJ2syJywgJ2szJywgJ2s0JywgJ2tlcm5pbmcnLCAna2V5cG9pbnRzJywgJ2tleXNwbGluZXMnLCAna2V5dGltZXMnLCAnbGFuZycsICdsZW5ndGhhZGp1c3QnLCAnbGV0dGVyLXNwYWNpbmcnLCAna2VybmVsbWF0cml4JywgJ2tlcm5lbHVuaXRsZW5ndGgnLCAnbGlnaHRpbmctY29sb3InLCAnbG9jYWwnLCAnbWFya2VyLWVuZCcsICdtYXJrZXItbWlkJywgJ21hcmtlci1zdGFydCcsICdtYXJrZXJoZWlnaHQnLCAnbWFya2VydW5pdHMnLCAnbWFya2Vyd2lkdGgnLCAnbWFza2NvbnRlbnR1bml0cycsICdtYXNrdW5pdHMnLCAnbWF4JywgJ21hc2snLCAnbWVkaWEnLCAnbWV0aG9kJywgJ21vZGUnLCAnbWluJywgJ25hbWUnLCAnbnVtb2N0YXZlcycsICdvZmZzZXQnLCAnb3BlcmF0b3InLCAnb3BhY2l0eScsICdvcmRlcicsICdvcmllbnQnLCAnb3JpZW50YXRpb24nLCAnb3JpZ2luJywgJ292ZXJmbG93JywgJ3BhaW50LW9yZGVyJywgJ3BhdGgnLCAncGF0aGxlbmd0aCcsICdwYXR0ZXJuY29udGVudHVuaXRzJywgJ3BhdHRlcm50cmFuc2Zvcm0nLCAncGF0dGVybnVuaXRzJywgJ3BvaW50cycsICdwcmVzZXJ2ZWFscGhhJywgJ3ByZXNlcnZlYXNwZWN0cmF0aW8nLCAncHJpbWl0aXZldW5pdHMnLCAncicsICdyeCcsICdyeScsICdyYWRpdXMnLCAncmVmeCcsICdyZWZ5JywgJ3JlcGVhdGNvdW50JywgJ3JlcGVhdGR1cicsICdyZXN0YXJ0JywgJ3Jlc3VsdCcsICdyb3RhdGUnLCAnc2NhbGUnLCAnc2VlZCcsICdzaGFwZS1yZW5kZXJpbmcnLCAnc3BlY3VsYXJjb25zdGFudCcsICdzcGVjdWxhcmV4cG9uZW50JywgJ3NwcmVhZG1ldGhvZCcsICdzdGFydG9mZnNldCcsICdzdGRkZXZpYXRpb24nLCAnc3RpdGNodGlsZXMnLCAnc3RvcC1jb2xvcicsICdzdG9wLW9wYWNpdHknLCAnc3Ryb2tlLWRhc2hhcnJheScsICdzdHJva2UtZGFzaG9mZnNldCcsICdzdHJva2UtbGluZWNhcCcsICdzdHJva2UtbGluZWpvaW4nLCAnc3Ryb2tlLW1pdGVybGltaXQnLCAnc3Ryb2tlLW9wYWNpdHknLCAnc3Ryb2tlJywgJ3N0cm9rZS13aWR0aCcsICdzdHlsZScsICdzdXJmYWNlc2NhbGUnLCAnc3lzdGVtbGFuZ3VhZ2UnLCAndGFiaW5kZXgnLCAndGFyZ2V0eCcsICd0YXJnZXR5JywgJ3RyYW5zZm9ybScsICd0cmFuc2Zvcm0tb3JpZ2luJywgJ3RleHQtYW5jaG9yJywgJ3RleHQtZGVjb3JhdGlvbicsICd0ZXh0LXJlbmRlcmluZycsICd0ZXh0bGVuZ3RoJywgJ3R5cGUnLCAndTEnLCAndTInLCAndW5pY29kZScsICd2YWx1ZXMnLCAndmlld2JveCcsICd2aXNpYmlsaXR5JywgJ3ZlcnNpb24nLCAndmVydC1hZHYteScsICd2ZXJ0LW9yaWdpbi14JywgJ3ZlcnQtb3JpZ2luLXknLCAnd2lkdGgnLCAnd29yZC1zcGFjaW5nJywgJ3dyYXAnLCAnd3JpdGluZy1tb2RlJywgJ3hjaGFubmVsc2VsZWN0b3InLCAneWNoYW5uZWxzZWxlY3RvcicsICd4JywgJ3gxJywgJ3gyJywgJ3htbG5zJywgJ3knLCAneTEnLCAneTInLCAneicsICd6b29tYW5kcGFuJ10pO1xuICBjb25zdCBtYXRoTWwgPSBmcmVlemUoWydhY2NlbnQnLCAnYWNjZW50dW5kZXInLCAnYWxpZ24nLCAnYmV2ZWxsZWQnLCAnY2xvc2UnLCAnY29sdW1uc2FsaWduJywgJ2NvbHVtbmxpbmVzJywgJ2NvbHVtbnNwYW4nLCAnZGVub21hbGlnbicsICdkZXB0aCcsICdkaXInLCAnZGlzcGxheScsICdkaXNwbGF5c3R5bGUnLCAnZW5jb2RpbmcnLCAnZmVuY2UnLCAnZnJhbWUnLCAnaGVpZ2h0JywgJ2hyZWYnLCAnaWQnLCAnbGFyZ2VvcCcsICdsZW5ndGgnLCAnbGluZXRoaWNrbmVzcycsICdsc3BhY2UnLCAnbHF1b3RlJywgJ21hdGhiYWNrZ3JvdW5kJywgJ21hdGhjb2xvcicsICdtYXRoc2l6ZScsICdtYXRodmFyaWFudCcsICdtYXhzaXplJywgJ21pbnNpemUnLCAnbW92YWJsZWxpbWl0cycsICdub3RhdGlvbicsICdudW1hbGlnbicsICdvcGVuJywgJ3Jvd2FsaWduJywgJ3Jvd2xpbmVzJywgJ3Jvd3NwYWNpbmcnLCAncm93c3BhbicsICdyc3BhY2UnLCAncnF1b3RlJywgJ3NjcmlwdGxldmVsJywgJ3NjcmlwdG1pbnNpemUnLCAnc2NyaXB0c2l6ZW11bHRpcGxpZXInLCAnc2VsZWN0aW9uJywgJ3NlcGFyYXRvcicsICdzZXBhcmF0b3JzJywgJ3N0cmV0Y2h5JywgJ3N1YnNjcmlwdHNoaWZ0JywgJ3N1cHNjcmlwdHNoaWZ0JywgJ3N5bW1ldHJpYycsICd2b2Zmc2V0JywgJ3dpZHRoJywgJ3htbG5zJ10pO1xuICBjb25zdCB4bWwgPSBmcmVlemUoWyd4bGluazpocmVmJywgJ3htbDppZCcsICd4bGluazp0aXRsZScsICd4bWw6c3BhY2UnLCAneG1sbnM6eGxpbmsnXSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vYmV0dGVyLXJlZ2V4XG4gIGNvbnN0IE1VU1RBQ0hFX0VYUFIgPSBzZWFsKC9cXHtcXHtbXFx3XFxXXSp8W1xcd1xcV10qXFx9XFx9L2dtKTsgLy8gU3BlY2lmeSB0ZW1wbGF0ZSBkZXRlY3Rpb24gcmVnZXggZm9yIFNBRkVfRk9SX1RFTVBMQVRFUyBtb2RlXG4gIGNvbnN0IEVSQl9FWFBSID0gc2VhbCgvPCVbXFx3XFxXXSp8W1xcd1xcV10qJT4vZ20pO1xuICBjb25zdCBUTVBMSVRfRVhQUiA9IHNlYWwoL1xcJHtbXFx3XFxXXSp9L2dtKTtcbiAgY29uc3QgREFUQV9BVFRSID0gc2VhbCgvXmRhdGEtW1xcLVxcdy5cXHUwMEI3LVxcdUZGRkZdLyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbiAgY29uc3QgQVJJQV9BVFRSID0gc2VhbCgvXmFyaWEtW1xcLVxcd10rJC8pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gIGNvbnN0IElTX0FMTE9XRURfVVJJID0gc2VhbCgvXig/Oig/Oig/OmZ8aHQpdHBzP3xtYWlsdG98dGVsfGNhbGx0b3xzbXN8Y2lkfHhtcHApOnxbXmEtel18W2EteisuXFwtXSsoPzpbXmEteisuXFwtOl18JCkpL2kgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICApO1xuICBjb25zdCBJU19TQ1JJUFRfT1JfREFUQSA9IHNlYWwoL14oPzpcXHcrc2NyaXB0fGRhdGEpOi9pKTtcbiAgY29uc3QgQVRUUl9XSElURVNQQUNFID0gc2VhbCgvW1xcdTAwMDAtXFx1MDAyMFxcdTAwQTBcXHUxNjgwXFx1MTgwRVxcdTIwMDAtXFx1MjAyOVxcdTIwNUZcXHUzMDAwXS9nIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29udHJvbC1yZWdleFxuICApO1xuICBjb25zdCBET0NUWVBFX05BTUUgPSBzZWFsKC9eaHRtbCQvaSk7XG4gIGNvbnN0IENVU1RPTV9FTEVNRU5UID0gc2VhbCgvXlthLXpdWy5cXHddKigtWy5cXHddKykrJC9pKTtcblxuICB2YXIgRVhQUkVTU0lPTlMgPSAvKiNfX1BVUkVfXyovT2JqZWN0LmZyZWV6ZSh7XG4gICAgX19wcm90b19fOiBudWxsLFxuICAgIE1VU1RBQ0hFX0VYUFI6IE1VU1RBQ0hFX0VYUFIsXG4gICAgRVJCX0VYUFI6IEVSQl9FWFBSLFxuICAgIFRNUExJVF9FWFBSOiBUTVBMSVRfRVhQUixcbiAgICBEQVRBX0FUVFI6IERBVEFfQVRUUixcbiAgICBBUklBX0FUVFI6IEFSSUFfQVRUUixcbiAgICBJU19BTExPV0VEX1VSSTogSVNfQUxMT1dFRF9VUkksXG4gICAgSVNfU0NSSVBUX09SX0RBVEE6IElTX1NDUklQVF9PUl9EQVRBLFxuICAgIEFUVFJfV0hJVEVTUEFDRTogQVRUUl9XSElURVNQQUNFLFxuICAgIERPQ1RZUEVfTkFNRTogRE9DVFlQRV9OQU1FLFxuICAgIENVU1RPTV9FTEVNRU5UOiBDVVNUT01fRUxFTUVOVFxuICB9KTtcblxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTm9kZS9ub2RlVHlwZVxuICBjb25zdCBOT0RFX1RZUEUgPSB7XG4gICAgZWxlbWVudDogMSxcbiAgICBhdHRyaWJ1dGU6IDIsXG4gICAgdGV4dDogMyxcbiAgICBjZGF0YVNlY3Rpb246IDQsXG4gICAgZW50aXR5UmVmZXJlbmNlOiA1LFxuICAgIC8vIERlcHJlY2F0ZWRcbiAgICBlbnRpdHlOb2RlOiA2LFxuICAgIC8vIERlcHJlY2F0ZWRcbiAgICBwcm9ncmVzc2luZ0luc3RydWN0aW9uOiA3LFxuICAgIGNvbW1lbnQ6IDgsXG4gICAgZG9jdW1lbnQ6IDksXG4gICAgZG9jdW1lbnRUeXBlOiAxMCxcbiAgICBkb2N1bWVudEZyYWdtZW50OiAxMSxcbiAgICBub3RhdGlvbjogMTIgLy8gRGVwcmVjYXRlZFxuICB9O1xuICBjb25zdCBnZXRHbG9iYWwgPSBmdW5jdGlvbiBnZXRHbG9iYWwoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IHdpbmRvdztcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5vLW9wIHBvbGljeSBmb3IgaW50ZXJuYWwgdXNlIG9ubHkuXG4gICAqIERvbid0IGV4cG9ydCB0aGlzIGZ1bmN0aW9uIG91dHNpZGUgdGhpcyBtb2R1bGUhXG4gICAqIEBwYXJhbSB7VHJ1c3RlZFR5cGVQb2xpY3lGYWN0b3J5fSB0cnVzdGVkVHlwZXMgVGhlIHBvbGljeSBmYWN0b3J5LlxuICAgKiBAcGFyYW0ge0hUTUxTY3JpcHRFbGVtZW50fSBwdXJpZnlIb3N0RWxlbWVudCBUaGUgU2NyaXB0IGVsZW1lbnQgdXNlZCB0byBsb2FkIERPTVB1cmlmeSAodG8gZGV0ZXJtaW5lIHBvbGljeSBuYW1lIHN1ZmZpeCkuXG4gICAqIEByZXR1cm4ge1RydXN0ZWRUeXBlUG9saWN5fSBUaGUgcG9saWN5IGNyZWF0ZWQgKG9yIG51bGwsIGlmIFRydXN0ZWQgVHlwZXNcbiAgICogYXJlIG5vdCBzdXBwb3J0ZWQgb3IgY3JlYXRpbmcgdGhlIHBvbGljeSBmYWlsZWQpLlxuICAgKi9cbiAgY29uc3QgX2NyZWF0ZVRydXN0ZWRUeXBlc1BvbGljeSA9IGZ1bmN0aW9uIF9jcmVhdGVUcnVzdGVkVHlwZXNQb2xpY3kodHJ1c3RlZFR5cGVzLCBwdXJpZnlIb3N0RWxlbWVudCkge1xuICAgIGlmICh0eXBlb2YgdHJ1c3RlZFR5cGVzICE9PSAnb2JqZWN0JyB8fCB0eXBlb2YgdHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgdGhlIGNhbGxlcnMgdG8gY29udHJvbCB0aGUgdW5pcXVlIHBvbGljeSBuYW1lXG4gICAgLy8gYnkgYWRkaW5nIGEgZGF0YS10dC1wb2xpY3ktc3VmZml4IHRvIHRoZSBzY3JpcHQgZWxlbWVudCB3aXRoIHRoZSBET01QdXJpZnkuXG4gICAgLy8gUG9saWN5IGNyZWF0aW9uIHdpdGggZHVwbGljYXRlIG5hbWVzIHRocm93cyBpbiBUcnVzdGVkIFR5cGVzLlxuICAgIGxldCBzdWZmaXggPSBudWxsO1xuICAgIGNvbnN0IEFUVFJfTkFNRSA9ICdkYXRhLXR0LXBvbGljeS1zdWZmaXgnO1xuICAgIGlmIChwdXJpZnlIb3N0RWxlbWVudCAmJiBwdXJpZnlIb3N0RWxlbWVudC5oYXNBdHRyaWJ1dGUoQVRUUl9OQU1FKSkge1xuICAgICAgc3VmZml4ID0gcHVyaWZ5SG9zdEVsZW1lbnQuZ2V0QXR0cmlidXRlKEFUVFJfTkFNRSk7XG4gICAgfVxuICAgIGNvbnN0IHBvbGljeU5hbWUgPSAnZG9tcHVyaWZ5JyArIChzdWZmaXggPyAnIycgKyBzdWZmaXggOiAnJyk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KHBvbGljeU5hbWUsIHtcbiAgICAgICAgY3JlYXRlSFRNTChodG1sKSB7XG4gICAgICAgICAgcmV0dXJuIGh0bWw7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWF0ZVNjcmlwdFVSTChzY3JpcHRVcmwpIHtcbiAgICAgICAgICByZXR1cm4gc2NyaXB0VXJsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICAvLyBQb2xpY3kgY3JlYXRpb24gZmFpbGVkIChtb3N0IGxpa2VseSBhbm90aGVyIERPTVB1cmlmeSBzY3JpcHQgaGFzXG4gICAgICAvLyBhbHJlYWR5IHJ1bikuIFNraXAgY3JlYXRpbmcgdGhlIHBvbGljeSwgYXMgdGhpcyB3aWxsIG9ubHkgY2F1c2UgZXJyb3JzXG4gICAgICAvLyBpZiBUVCBhcmUgZW5mb3JjZWQuXG4gICAgICBjb25zb2xlLndhcm4oJ1RydXN0ZWRUeXBlcyBwb2xpY3kgJyArIHBvbGljeU5hbWUgKyAnIGNvdWxkIG5vdCBiZSBjcmVhdGVkLicpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuICBmdW5jdGlvbiBjcmVhdGVET01QdXJpZnkoKSB7XG4gICAgbGV0IHdpbmRvdyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogZ2V0R2xvYmFsKCk7XG4gICAgY29uc3QgRE9NUHVyaWZ5ID0gcm9vdCA9PiBjcmVhdGVET01QdXJpZnkocm9vdCk7XG5cbiAgICAvKipcbiAgICAgKiBWZXJzaW9uIGxhYmVsLCBleHBvc2VkIGZvciBlYXNpZXIgY2hlY2tzXG4gICAgICogaWYgRE9NUHVyaWZ5IGlzIHVwIHRvIGRhdGUgb3Igbm90XG4gICAgICovXG4gICAgRE9NUHVyaWZ5LnZlcnNpb24gPSAnMy4xLjYnO1xuXG4gICAgLyoqXG4gICAgICogQXJyYXkgb2YgZWxlbWVudHMgdGhhdCBET01QdXJpZnkgcmVtb3ZlZCBkdXJpbmcgc2FuaXRhdGlvbi5cbiAgICAgKiBFbXB0eSBpZiBub3RoaW5nIHdhcyByZW1vdmVkLlxuICAgICAqL1xuICAgIERPTVB1cmlmeS5yZW1vdmVkID0gW107XG4gICAgaWYgKCF3aW5kb3cgfHwgIXdpbmRvdy5kb2N1bWVudCB8fCB3aW5kb3cuZG9jdW1lbnQubm9kZVR5cGUgIT09IE5PREVfVFlQRS5kb2N1bWVudCkge1xuICAgICAgLy8gTm90IHJ1bm5pbmcgaW4gYSBicm93c2VyLCBwcm92aWRlIGEgZmFjdG9yeSBmdW5jdGlvblxuICAgICAgLy8gc28gdGhhdCB5b3UgY2FuIHBhc3MgeW91ciBvd24gV2luZG93XG4gICAgICBET01QdXJpZnkuaXNTdXBwb3J0ZWQgPSBmYWxzZTtcbiAgICAgIHJldHVybiBET01QdXJpZnk7XG4gICAgfVxuICAgIGxldCB7XG4gICAgICBkb2N1bWVudFxuICAgIH0gPSB3aW5kb3c7XG4gICAgY29uc3Qgb3JpZ2luYWxEb2N1bWVudCA9IGRvY3VtZW50O1xuICAgIGNvbnN0IGN1cnJlbnRTY3JpcHQgPSBvcmlnaW5hbERvY3VtZW50LmN1cnJlbnRTY3JpcHQ7XG4gICAgY29uc3Qge1xuICAgICAgRG9jdW1lbnRGcmFnbWVudCxcbiAgICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQsXG4gICAgICBOb2RlLFxuICAgICAgRWxlbWVudCxcbiAgICAgIE5vZGVGaWx0ZXIsXG4gICAgICBOYW1lZE5vZGVNYXAgPSB3aW5kb3cuTmFtZWROb2RlTWFwIHx8IHdpbmRvdy5Nb3pOYW1lZEF0dHJNYXAsXG4gICAgICBIVE1MRm9ybUVsZW1lbnQsXG4gICAgICBET01QYXJzZXIsXG4gICAgICB0cnVzdGVkVHlwZXNcbiAgICB9ID0gd2luZG93O1xuICAgIGNvbnN0IEVsZW1lbnRQcm90b3R5cGUgPSBFbGVtZW50LnByb3RvdHlwZTtcbiAgICBjb25zdCBjbG9uZU5vZGUgPSBsb29rdXBHZXR0ZXIoRWxlbWVudFByb3RvdHlwZSwgJ2Nsb25lTm9kZScpO1xuICAgIGNvbnN0IHJlbW92ZSA9IGxvb2t1cEdldHRlcihFbGVtZW50UHJvdG90eXBlLCAncmVtb3ZlJyk7XG4gICAgY29uc3QgZ2V0TmV4dFNpYmxpbmcgPSBsb29rdXBHZXR0ZXIoRWxlbWVudFByb3RvdHlwZSwgJ25leHRTaWJsaW5nJyk7XG4gICAgY29uc3QgZ2V0Q2hpbGROb2RlcyA9IGxvb2t1cEdldHRlcihFbGVtZW50UHJvdG90eXBlLCAnY2hpbGROb2RlcycpO1xuICAgIGNvbnN0IGdldFBhcmVudE5vZGUgPSBsb29rdXBHZXR0ZXIoRWxlbWVudFByb3RvdHlwZSwgJ3BhcmVudE5vZGUnKTtcblxuICAgIC8vIEFzIHBlciBpc3N1ZSAjNDcsIHRoZSB3ZWItY29tcG9uZW50cyByZWdpc3RyeSBpcyBpbmhlcml0ZWQgYnkgYVxuICAgIC8vIG5ldyBkb2N1bWVudCBjcmVhdGVkIHZpYSBjcmVhdGVIVE1MRG9jdW1lbnQuIEFzIHBlciB0aGUgc3BlY1xuICAgIC8vIChodHRwOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvY3VzdG9tLyNjcmVhdGluZy1hbmQtcGFzc2luZy1yZWdpc3RyaWVzKVxuICAgIC8vIGEgbmV3IGVtcHR5IHJlZ2lzdHJ5IGlzIHVzZWQgd2hlbiBjcmVhdGluZyBhIHRlbXBsYXRlIGNvbnRlbnRzIG93bmVyXG4gICAgLy8gZG9jdW1lbnQsIHNvIHdlIHVzZSB0aGF0IGFzIG91ciBwYXJlbnQgZG9jdW1lbnQgdG8gZW5zdXJlIG5vdGhpbmdcbiAgICAvLyBpcyBpbmhlcml0ZWQuXG4gICAgaWYgKHR5cGVvZiBIVE1MVGVtcGxhdGVFbGVtZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gICAgICBpZiAodGVtcGxhdGUuY29udGVudCAmJiB0ZW1wbGF0ZS5jb250ZW50Lm93bmVyRG9jdW1lbnQpIHtcbiAgICAgICAgZG9jdW1lbnQgPSB0ZW1wbGF0ZS5jb250ZW50Lm93bmVyRG9jdW1lbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCB0cnVzdGVkVHlwZXNQb2xpY3k7XG4gICAgbGV0IGVtcHR5SFRNTCA9ICcnO1xuICAgIGNvbnN0IHtcbiAgICAgIGltcGxlbWVudGF0aW9uLFxuICAgICAgY3JlYXRlTm9kZUl0ZXJhdG9yLFxuICAgICAgY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxcbiAgICAgIGdldEVsZW1lbnRzQnlUYWdOYW1lXG4gICAgfSA9IGRvY3VtZW50O1xuICAgIGNvbnN0IHtcbiAgICAgIGltcG9ydE5vZGVcbiAgICB9ID0gb3JpZ2luYWxEb2N1bWVudDtcbiAgICBsZXQgaG9va3MgPSB7fTtcblxuICAgIC8qKlxuICAgICAqIEV4cG9zZSB3aGV0aGVyIHRoaXMgYnJvd3NlciBzdXBwb3J0cyBydW5uaW5nIHRoZSBmdWxsIERPTVB1cmlmeS5cbiAgICAgKi9cbiAgICBET01QdXJpZnkuaXNTdXBwb3J0ZWQgPSB0eXBlb2YgZW50cmllcyA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZ2V0UGFyZW50Tm9kZSA9PT0gJ2Z1bmN0aW9uJyAmJiBpbXBsZW1lbnRhdGlvbiAmJiBpbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQgIT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCB7XG4gICAgICBNVVNUQUNIRV9FWFBSLFxuICAgICAgRVJCX0VYUFIsXG4gICAgICBUTVBMSVRfRVhQUixcbiAgICAgIERBVEFfQVRUUixcbiAgICAgIEFSSUFfQVRUUixcbiAgICAgIElTX1NDUklQVF9PUl9EQVRBLFxuICAgICAgQVRUUl9XSElURVNQQUNFLFxuICAgICAgQ1VTVE9NX0VMRU1FTlRcbiAgICB9ID0gRVhQUkVTU0lPTlM7XG4gICAgbGV0IHtcbiAgICAgIElTX0FMTE9XRURfVVJJOiBJU19BTExPV0VEX1VSSSQxXG4gICAgfSA9IEVYUFJFU1NJT05TO1xuXG4gICAgLyoqXG4gICAgICogV2UgY29uc2lkZXIgdGhlIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIGJlbG93IHRvIGJlIHNhZmUuIElkZWFsbHlcbiAgICAgKiBkb24ndCBhZGQgYW55IG5ldyBvbmVzIGJ1dCBmZWVsIGZyZWUgdG8gcmVtb3ZlIHVud2FudGVkIG9uZXMuXG4gICAgICovXG5cbiAgICAvKiBhbGxvd2VkIGVsZW1lbnQgbmFtZXMgKi9cbiAgICBsZXQgQUxMT1dFRF9UQUdTID0gbnVsbDtcbiAgICBjb25zdCBERUZBVUxUX0FMTE9XRURfVEFHUyA9IGFkZFRvU2V0KHt9LCBbLi4uaHRtbCQxLCAuLi5zdmckMSwgLi4uc3ZnRmlsdGVycywgLi4ubWF0aE1sJDEsIC4uLnRleHRdKTtcblxuICAgIC8qIEFsbG93ZWQgYXR0cmlidXRlIG5hbWVzICovXG4gICAgbGV0IEFMTE9XRURfQVRUUiA9IG51bGw7XG4gICAgY29uc3QgREVGQVVMVF9BTExPV0VEX0FUVFIgPSBhZGRUb1NldCh7fSwgWy4uLmh0bWwsIC4uLnN2ZywgLi4ubWF0aE1sLCAuLi54bWxdKTtcblxuICAgIC8qXG4gICAgICogQ29uZmlndXJlIGhvdyBET01QVXJpZnkgc2hvdWxkIGhhbmRsZSBjdXN0b20gZWxlbWVudHMgYW5kIHRoZWlyIGF0dHJpYnV0ZXMgYXMgd2VsbCBhcyBjdXN0b21pemVkIGJ1aWx0LWluIGVsZW1lbnRzLlxuICAgICAqIEBwcm9wZXJ0eSB7UmVnRXhwfEZ1bmN0aW9ufG51bGx9IHRhZ05hbWVDaGVjayBvbmUgb2YgW251bGwsIHJlZ2V4UGF0dGVybiwgcHJlZGljYXRlXS4gRGVmYXVsdDogYG51bGxgIChkaXNhbGxvdyBhbnkgY3VzdG9tIGVsZW1lbnRzKVxuICAgICAqIEBwcm9wZXJ0eSB7UmVnRXhwfEZ1bmN0aW9ufG51bGx9IGF0dHJpYnV0ZU5hbWVDaGVjayBvbmUgb2YgW251bGwsIHJlZ2V4UGF0dGVybiwgcHJlZGljYXRlXS4gRGVmYXVsdDogYG51bGxgIChkaXNhbGxvdyBhbnkgYXR0cmlidXRlcyBub3Qgb24gdGhlIGFsbG93IGxpc3QpXG4gICAgICogQHByb3BlcnR5IHtib29sZWFufSBhbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHMgYWxsb3cgY3VzdG9tIGVsZW1lbnRzIGRlcml2ZWQgZnJvbSBidWlsdC1pbnMgaWYgdGhleSBwYXNzIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLnRhZ05hbWVDaGVjay4gRGVmYXVsdDogYGZhbHNlYC5cbiAgICAgKi9cbiAgICBsZXQgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcgPSBPYmplY3Quc2VhbChjcmVhdGUobnVsbCwge1xuICAgICAgdGFnTmFtZUNoZWNrOiB7XG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgfSxcbiAgICAgIGF0dHJpYnV0ZU5hbWVDaGVjazoge1xuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgIH0sXG4gICAgICBhbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHM6IHtcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBmYWxzZVxuICAgICAgfVxuICAgIH0pKTtcblxuICAgIC8qIEV4cGxpY2l0bHkgZm9yYmlkZGVuIHRhZ3MgKG92ZXJyaWRlcyBBTExPV0VEX1RBR1MvQUREX1RBR1MpICovXG4gICAgbGV0IEZPUkJJRF9UQUdTID0gbnVsbDtcblxuICAgIC8qIEV4cGxpY2l0bHkgZm9yYmlkZGVuIGF0dHJpYnV0ZXMgKG92ZXJyaWRlcyBBTExPV0VEX0FUVFIvQUREX0FUVFIpICovXG4gICAgbGV0IEZPUkJJRF9BVFRSID0gbnVsbDtcblxuICAgIC8qIERlY2lkZSBpZiBBUklBIGF0dHJpYnV0ZXMgYXJlIG9rYXkgKi9cbiAgICBsZXQgQUxMT1dfQVJJQV9BVFRSID0gdHJ1ZTtcblxuICAgIC8qIERlY2lkZSBpZiBjdXN0b20gZGF0YSBhdHRyaWJ1dGVzIGFyZSBva2F5ICovXG4gICAgbGV0IEFMTE9XX0RBVEFfQVRUUiA9IHRydWU7XG5cbiAgICAvKiBEZWNpZGUgaWYgdW5rbm93biBwcm90b2NvbHMgYXJlIG9rYXkgKi9cbiAgICBsZXQgQUxMT1dfVU5LTk9XTl9QUk9UT0NPTFMgPSBmYWxzZTtcblxuICAgIC8qIERlY2lkZSBpZiBzZWxmLWNsb3NpbmcgdGFncyBpbiBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkLlxuICAgICAqIFVzdWFsbHkgcmVtb3ZlZCBkdWUgdG8gYSBtWFNTIGlzc3VlIGluIGpRdWVyeSAzLjAgKi9cbiAgICBsZXQgQUxMT1dfU0VMRl9DTE9TRV9JTl9BVFRSID0gdHJ1ZTtcblxuICAgIC8qIE91dHB1dCBzaG91bGQgYmUgc2FmZSBmb3IgY29tbW9uIHRlbXBsYXRlIGVuZ2luZXMuXG4gICAgICogVGhpcyBtZWFucywgRE9NUHVyaWZ5IHJlbW92ZXMgZGF0YSBhdHRyaWJ1dGVzLCBtdXN0YWNoZXMgYW5kIEVSQlxuICAgICAqL1xuICAgIGxldCBTQUZFX0ZPUl9URU1QTEFURVMgPSBmYWxzZTtcblxuICAgIC8qIE91dHB1dCBzaG91bGQgYmUgc2FmZSBldmVuIGZvciBYTUwgdXNlZCB3aXRoaW4gSFRNTCBhbmQgYWxpa2UuXG4gICAgICogVGhpcyBtZWFucywgRE9NUHVyaWZ5IHJlbW92ZXMgY29tbWVudHMgd2hlbiBjb250YWluaW5nIHJpc2t5IGNvbnRlbnQuXG4gICAgICovXG4gICAgbGV0IFNBRkVfRk9SX1hNTCA9IHRydWU7XG5cbiAgICAvKiBEZWNpZGUgaWYgZG9jdW1lbnQgd2l0aCA8aHRtbD4uLi4gc2hvdWxkIGJlIHJldHVybmVkICovXG4gICAgbGV0IFdIT0xFX0RPQ1VNRU5UID0gZmFsc2U7XG5cbiAgICAvKiBUcmFjayB3aGV0aGVyIGNvbmZpZyBpcyBhbHJlYWR5IHNldCBvbiB0aGlzIGluc3RhbmNlIG9mIERPTVB1cmlmeS4gKi9cbiAgICBsZXQgU0VUX0NPTkZJRyA9IGZhbHNlO1xuXG4gICAgLyogRGVjaWRlIGlmIGFsbCBlbGVtZW50cyAoZS5nLiBzdHlsZSwgc2NyaXB0KSBtdXN0IGJlIGNoaWxkcmVuIG9mXG4gICAgICogZG9jdW1lbnQuYm9keS4gQnkgZGVmYXVsdCwgYnJvd3NlcnMgbWlnaHQgbW92ZSB0aGVtIHRvIGRvY3VtZW50LmhlYWQgKi9cbiAgICBsZXQgRk9SQ0VfQk9EWSA9IGZhbHNlO1xuXG4gICAgLyogRGVjaWRlIGlmIGEgRE9NIGBIVE1MQm9keUVsZW1lbnRgIHNob3VsZCBiZSByZXR1cm5lZCwgaW5zdGVhZCBvZiBhIGh0bWxcbiAgICAgKiBzdHJpbmcgKG9yIGEgVHJ1c3RlZEhUTUwgb2JqZWN0IGlmIFRydXN0ZWQgVHlwZXMgYXJlIHN1cHBvcnRlZCkuXG4gICAgICogSWYgYFdIT0xFX0RPQ1VNRU5UYCBpcyBlbmFibGVkIGEgYEhUTUxIdG1sRWxlbWVudGAgd2lsbCBiZSByZXR1cm5lZCBpbnN0ZWFkXG4gICAgICovXG4gICAgbGV0IFJFVFVSTl9ET00gPSBmYWxzZTtcblxuICAgIC8qIERlY2lkZSBpZiBhIERPTSBgRG9jdW1lbnRGcmFnbWVudGAgc2hvdWxkIGJlIHJldHVybmVkLCBpbnN0ZWFkIG9mIGEgaHRtbFxuICAgICAqIHN0cmluZyAgKG9yIGEgVHJ1c3RlZEhUTUwgb2JqZWN0IGlmIFRydXN0ZWQgVHlwZXMgYXJlIHN1cHBvcnRlZCkgKi9cbiAgICBsZXQgUkVUVVJOX0RPTV9GUkFHTUVOVCA9IGZhbHNlO1xuXG4gICAgLyogVHJ5IHRvIHJldHVybiBhIFRydXN0ZWQgVHlwZSBvYmplY3QgaW5zdGVhZCBvZiBhIHN0cmluZywgcmV0dXJuIGEgc3RyaW5nIGluXG4gICAgICogY2FzZSBUcnVzdGVkIFR5cGVzIGFyZSBub3Qgc3VwcG9ydGVkICAqL1xuICAgIGxldCBSRVRVUk5fVFJVU1RFRF9UWVBFID0gZmFsc2U7XG5cbiAgICAvKiBPdXRwdXQgc2hvdWxkIGJlIGZyZWUgZnJvbSBET00gY2xvYmJlcmluZyBhdHRhY2tzP1xuICAgICAqIFRoaXMgc2FuaXRpemVzIG1hcmt1cHMgbmFtZWQgd2l0aCBjb2xsaWRpbmcsIGNsb2JiZXJhYmxlIGJ1aWx0LWluIERPTSBBUElzLlxuICAgICAqL1xuICAgIGxldCBTQU5JVElaRV9ET00gPSB0cnVlO1xuXG4gICAgLyogQWNoaWV2ZSBmdWxsIERPTSBDbG9iYmVyaW5nIHByb3RlY3Rpb24gYnkgaXNvbGF0aW5nIHRoZSBuYW1lc3BhY2Ugb2YgbmFtZWRcbiAgICAgKiBwcm9wZXJ0aWVzIGFuZCBKUyB2YXJpYWJsZXMsIG1pdGlnYXRpbmcgYXR0YWNrcyB0aGF0IGFidXNlIHRoZSBIVE1ML0RPTSBzcGVjIHJ1bGVzLlxuICAgICAqXG4gICAgICogSFRNTC9ET00gc3BlYyBydWxlcyB0aGF0IGVuYWJsZSBET00gQ2xvYmJlcmluZzpcbiAgICAgKiAgIC0gTmFtZWQgQWNjZXNzIG9uIFdpbmRvdyAowqc3LjMuMylcbiAgICAgKiAgIC0gRE9NIFRyZWUgQWNjZXNzb3JzICjCpzMuMS41KVxuICAgICAqICAgLSBGb3JtIEVsZW1lbnQgUGFyZW50LUNoaWxkIFJlbGF0aW9ucyAowqc0LjEwLjMpXG4gICAgICogICAtIElmcmFtZSBzcmNkb2MgLyBOZXN0ZWQgV2luZG93UHJveGllcyAowqc0LjguNSlcbiAgICAgKiAgIC0gSFRNTENvbGxlY3Rpb24gKMKnNC4yLjEwLjIpXG4gICAgICpcbiAgICAgKiBOYW1lc3BhY2UgaXNvbGF0aW9uIGlzIGltcGxlbWVudGVkIGJ5IHByZWZpeGluZyBgaWRgIGFuZCBgbmFtZWAgYXR0cmlidXRlc1xuICAgICAqIHdpdGggYSBjb25zdGFudCBzdHJpbmcsIGkuZS4sIGB1c2VyLWNvbnRlbnQtYFxuICAgICAqL1xuICAgIGxldCBTQU5JVElaRV9OQU1FRF9QUk9QUyA9IGZhbHNlO1xuICAgIGNvbnN0IFNBTklUSVpFX05BTUVEX1BST1BTX1BSRUZJWCA9ICd1c2VyLWNvbnRlbnQtJztcblxuICAgIC8qIEtlZXAgZWxlbWVudCBjb250ZW50IHdoZW4gcmVtb3ZpbmcgZWxlbWVudD8gKi9cbiAgICBsZXQgS0VFUF9DT05URU5UID0gdHJ1ZTtcblxuICAgIC8qIElmIGEgYE5vZGVgIGlzIHBhc3NlZCB0byBzYW5pdGl6ZSgpLCB0aGVuIHBlcmZvcm1zIHNhbml0aXphdGlvbiBpbi1wbGFjZSBpbnN0ZWFkXG4gICAgICogb2YgaW1wb3J0aW5nIGl0IGludG8gYSBuZXcgRG9jdW1lbnQgYW5kIHJldHVybmluZyBhIHNhbml0aXplZCBjb3B5ICovXG4gICAgbGV0IElOX1BMQUNFID0gZmFsc2U7XG5cbiAgICAvKiBBbGxvdyB1c2FnZSBvZiBwcm9maWxlcyBsaWtlIGh0bWwsIHN2ZyBhbmQgbWF0aE1sICovXG4gICAgbGV0IFVTRV9QUk9GSUxFUyA9IHt9O1xuXG4gICAgLyogVGFncyB0byBpZ25vcmUgY29udGVudCBvZiB3aGVuIEtFRVBfQ09OVEVOVCBpcyB0cnVlICovXG4gICAgbGV0IEZPUkJJRF9DT05URU5UUyA9IG51bGw7XG4gICAgY29uc3QgREVGQVVMVF9GT1JCSURfQ09OVEVOVFMgPSBhZGRUb1NldCh7fSwgWydhbm5vdGF0aW9uLXhtbCcsICdhdWRpbycsICdjb2xncm91cCcsICdkZXNjJywgJ2ZvcmVpZ25vYmplY3QnLCAnaGVhZCcsICdpZnJhbWUnLCAnbWF0aCcsICdtaScsICdtbicsICdtbycsICdtcycsICdtdGV4dCcsICdub2VtYmVkJywgJ25vZnJhbWVzJywgJ25vc2NyaXB0JywgJ3BsYWludGV4dCcsICdzY3JpcHQnLCAnc3R5bGUnLCAnc3ZnJywgJ3RlbXBsYXRlJywgJ3RoZWFkJywgJ3RpdGxlJywgJ3ZpZGVvJywgJ3htcCddKTtcblxuICAgIC8qIFRhZ3MgdGhhdCBhcmUgc2FmZSBmb3IgZGF0YTogVVJJcyAqL1xuICAgIGxldCBEQVRBX1VSSV9UQUdTID0gbnVsbDtcbiAgICBjb25zdCBERUZBVUxUX0RBVEFfVVJJX1RBR1MgPSBhZGRUb1NldCh7fSwgWydhdWRpbycsICd2aWRlbycsICdpbWcnLCAnc291cmNlJywgJ2ltYWdlJywgJ3RyYWNrJ10pO1xuXG4gICAgLyogQXR0cmlidXRlcyBzYWZlIGZvciB2YWx1ZXMgbGlrZSBcImphdmFzY3JpcHQ6XCIgKi9cbiAgICBsZXQgVVJJX1NBRkVfQVRUUklCVVRFUyA9IG51bGw7XG4gICAgY29uc3QgREVGQVVMVF9VUklfU0FGRV9BVFRSSUJVVEVTID0gYWRkVG9TZXQoe30sIFsnYWx0JywgJ2NsYXNzJywgJ2ZvcicsICdpZCcsICdsYWJlbCcsICduYW1lJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncm9sZScsICdzdW1tYXJ5JywgJ3RpdGxlJywgJ3ZhbHVlJywgJ3N0eWxlJywgJ3htbG5zJ10pO1xuICAgIGNvbnN0IE1BVEhNTF9OQU1FU1BBQ0UgPSAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCc7XG4gICAgY29uc3QgU1ZHX05BTUVTUEFDRSA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7XG4gICAgY29uc3QgSFRNTF9OQU1FU1BBQ0UgPSAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc7XG4gICAgLyogRG9jdW1lbnQgbmFtZXNwYWNlICovXG4gICAgbGV0IE5BTUVTUEFDRSA9IEhUTUxfTkFNRVNQQUNFO1xuICAgIGxldCBJU19FTVBUWV9JTlBVVCA9IGZhbHNlO1xuXG4gICAgLyogQWxsb3dlZCBYSFRNTCtYTUwgbmFtZXNwYWNlcyAqL1xuICAgIGxldCBBTExPV0VEX05BTUVTUEFDRVMgPSBudWxsO1xuICAgIGNvbnN0IERFRkFVTFRfQUxMT1dFRF9OQU1FU1BBQ0VTID0gYWRkVG9TZXQoe30sIFtNQVRITUxfTkFNRVNQQUNFLCBTVkdfTkFNRVNQQUNFLCBIVE1MX05BTUVTUEFDRV0sIHN0cmluZ1RvU3RyaW5nKTtcblxuICAgIC8qIFBhcnNpbmcgb2Ygc3RyaWN0IFhIVE1MIGRvY3VtZW50cyAqL1xuICAgIGxldCBQQVJTRVJfTUVESUFfVFlQRSA9IG51bGw7XG4gICAgY29uc3QgU1VQUE9SVEVEX1BBUlNFUl9NRURJQV9UWVBFUyA9IFsnYXBwbGljYXRpb24veGh0bWwreG1sJywgJ3RleHQvaHRtbCddO1xuICAgIGNvbnN0IERFRkFVTFRfUEFSU0VSX01FRElBX1RZUEUgPSAndGV4dC9odG1sJztcbiAgICBsZXQgdHJhbnNmb3JtQ2FzZUZ1bmMgPSBudWxsO1xuXG4gICAgLyogS2VlcCBhIHJlZmVyZW5jZSB0byBjb25maWcgdG8gcGFzcyB0byBob29rcyAqL1xuICAgIGxldCBDT05GSUcgPSBudWxsO1xuXG4gICAgLyogSWRlYWxseSwgZG8gbm90IHRvdWNoIGFueXRoaW5nIGJlbG93IHRoaXMgbGluZSAqL1xuICAgIC8qIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gKi9cblxuICAgIGNvbnN0IGZvcm1FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO1xuICAgIGNvbnN0IGlzUmVnZXhPckZ1bmN0aW9uID0gZnVuY3Rpb24gaXNSZWdleE9yRnVuY3Rpb24odGVzdFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGVzdFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwIHx8IHRlc3RWYWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBfcGFyc2VDb25maWdcbiAgICAgKlxuICAgICAqIEBwYXJhbSAge09iamVjdH0gY2ZnIG9wdGlvbmFsIGNvbmZpZyBsaXRlcmFsXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgICBjb25zdCBfcGFyc2VDb25maWcgPSBmdW5jdGlvbiBfcGFyc2VDb25maWcoKSB7XG4gICAgICBsZXQgY2ZnID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIGlmIChDT05GSUcgJiYgQ09ORklHID09PSBjZmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvKiBTaGllbGQgY29uZmlndXJhdGlvbiBvYmplY3QgZnJvbSB0YW1wZXJpbmcgKi9cbiAgICAgIGlmICghY2ZnIHx8IHR5cGVvZiBjZmcgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNmZyA9IHt9O1xuICAgICAgfVxuXG4gICAgICAvKiBTaGllbGQgY29uZmlndXJhdGlvbiBvYmplY3QgZnJvbSBwcm90b3R5cGUgcG9sbHV0aW9uICovXG4gICAgICBjZmcgPSBjbG9uZShjZmcpO1xuICAgICAgUEFSU0VSX01FRElBX1RZUEUgPVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWluY2x1ZGVzXG4gICAgICBTVVBQT1JURURfUEFSU0VSX01FRElBX1RZUEVTLmluZGV4T2YoY2ZnLlBBUlNFUl9NRURJQV9UWVBFKSA9PT0gLTEgPyBERUZBVUxUX1BBUlNFUl9NRURJQV9UWVBFIDogY2ZnLlBBUlNFUl9NRURJQV9UWVBFO1xuXG4gICAgICAvLyBIVE1MIHRhZ3MgYW5kIGF0dHJpYnV0ZXMgYXJlIG5vdCBjYXNlLXNlbnNpdGl2ZSwgY29udmVydGluZyB0byBsb3dlcmNhc2UuIEtlZXBpbmcgWEhUTUwgYXMgaXMuXG4gICAgICB0cmFuc2Zvcm1DYXNlRnVuYyA9IFBBUlNFUl9NRURJQV9UWVBFID09PSAnYXBwbGljYXRpb24veGh0bWwreG1sJyA/IHN0cmluZ1RvU3RyaW5nIDogc3RyaW5nVG9Mb3dlckNhc2U7XG5cbiAgICAgIC8qIFNldCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgKi9cbiAgICAgIEFMTE9XRURfVEFHUyA9IG9iamVjdEhhc093blByb3BlcnR5KGNmZywgJ0FMTE9XRURfVEFHUycpID8gYWRkVG9TZXQoe30sIGNmZy5BTExPV0VEX1RBR1MsIHRyYW5zZm9ybUNhc2VGdW5jKSA6IERFRkFVTFRfQUxMT1dFRF9UQUdTO1xuICAgICAgQUxMT1dFRF9BVFRSID0gb2JqZWN0SGFzT3duUHJvcGVydHkoY2ZnLCAnQUxMT1dFRF9BVFRSJykgPyBhZGRUb1NldCh7fSwgY2ZnLkFMTE9XRURfQVRUUiwgdHJhbnNmb3JtQ2FzZUZ1bmMpIDogREVGQVVMVF9BTExPV0VEX0FUVFI7XG4gICAgICBBTExPV0VEX05BTUVTUEFDRVMgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdBTExPV0VEX05BTUVTUEFDRVMnKSA/IGFkZFRvU2V0KHt9LCBjZmcuQUxMT1dFRF9OQU1FU1BBQ0VTLCBzdHJpbmdUb1N0cmluZykgOiBERUZBVUxUX0FMTE9XRURfTkFNRVNQQUNFUztcbiAgICAgIFVSSV9TQUZFX0FUVFJJQlVURVMgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdBRERfVVJJX1NBRkVfQVRUUicpID8gYWRkVG9TZXQoY2xvbmUoREVGQVVMVF9VUklfU0FGRV9BVFRSSUJVVEVTKSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgaW5kZW50XG4gICAgICBjZmcuQUREX1VSSV9TQUZFX0FUVFIsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGluZGVudFxuICAgICAgdHJhbnNmb3JtQ2FzZUZ1bmMgLy8gZXNsaW50LWRpc2FibGUtbGluZSBpbmRlbnRcbiAgICAgICkgLy8gZXNsaW50LWRpc2FibGUtbGluZSBpbmRlbnRcbiAgICAgIDogREVGQVVMVF9VUklfU0FGRV9BVFRSSUJVVEVTO1xuICAgICAgREFUQV9VUklfVEFHUyA9IG9iamVjdEhhc093blByb3BlcnR5KGNmZywgJ0FERF9EQVRBX1VSSV9UQUdTJykgPyBhZGRUb1NldChjbG9uZShERUZBVUxUX0RBVEFfVVJJX1RBR1MpLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBpbmRlbnRcbiAgICAgIGNmZy5BRERfREFUQV9VUklfVEFHUyxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgaW5kZW50XG4gICAgICB0cmFuc2Zvcm1DYXNlRnVuYyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGluZGVudFxuICAgICAgKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGluZGVudFxuICAgICAgOiBERUZBVUxUX0RBVEFfVVJJX1RBR1M7XG4gICAgICBGT1JCSURfQ09OVEVOVFMgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdGT1JCSURfQ09OVEVOVFMnKSA/IGFkZFRvU2V0KHt9LCBjZmcuRk9SQklEX0NPTlRFTlRTLCB0cmFuc2Zvcm1DYXNlRnVuYykgOiBERUZBVUxUX0ZPUkJJRF9DT05URU5UUztcbiAgICAgIEZPUkJJRF9UQUdTID0gb2JqZWN0SGFzT3duUHJvcGVydHkoY2ZnLCAnRk9SQklEX1RBR1MnKSA/IGFkZFRvU2V0KHt9LCBjZmcuRk9SQklEX1RBR1MsIHRyYW5zZm9ybUNhc2VGdW5jKSA6IHt9O1xuICAgICAgRk9SQklEX0FUVFIgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdGT1JCSURfQVRUUicpID8gYWRkVG9TZXQoe30sIGNmZy5GT1JCSURfQVRUUiwgdHJhbnNmb3JtQ2FzZUZ1bmMpIDoge307XG4gICAgICBVU0VfUFJPRklMRVMgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdVU0VfUFJPRklMRVMnKSA/IGNmZy5VU0VfUFJPRklMRVMgOiBmYWxzZTtcbiAgICAgIEFMTE9XX0FSSUFfQVRUUiA9IGNmZy5BTExPV19BUklBX0FUVFIgIT09IGZhbHNlOyAvLyBEZWZhdWx0IHRydWVcbiAgICAgIEFMTE9XX0RBVEFfQVRUUiA9IGNmZy5BTExPV19EQVRBX0FUVFIgIT09IGZhbHNlOyAvLyBEZWZhdWx0IHRydWVcbiAgICAgIEFMTE9XX1VOS05PV05fUFJPVE9DT0xTID0gY2ZnLkFMTE9XX1VOS05PV05fUFJPVE9DT0xTIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgICBBTExPV19TRUxGX0NMT1NFX0lOX0FUVFIgPSBjZmcuQUxMT1dfU0VMRl9DTE9TRV9JTl9BVFRSICE9PSBmYWxzZTsgLy8gRGVmYXVsdCB0cnVlXG4gICAgICBTQUZFX0ZPUl9URU1QTEFURVMgPSBjZmcuU0FGRV9GT1JfVEVNUExBVEVTIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgICBTQUZFX0ZPUl9YTUwgPSBjZmcuU0FGRV9GT1JfWE1MICE9PSBmYWxzZTsgLy8gRGVmYXVsdCB0cnVlXG4gICAgICBXSE9MRV9ET0NVTUVOVCA9IGNmZy5XSE9MRV9ET0NVTUVOVCB8fCBmYWxzZTsgLy8gRGVmYXVsdCBmYWxzZVxuICAgICAgUkVUVVJOX0RPTSA9IGNmZy5SRVRVUk5fRE9NIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgICBSRVRVUk5fRE9NX0ZSQUdNRU5UID0gY2ZnLlJFVFVSTl9ET01fRlJBR01FTlQgfHwgZmFsc2U7IC8vIERlZmF1bHQgZmFsc2VcbiAgICAgIFJFVFVSTl9UUlVTVEVEX1RZUEUgPSBjZmcuUkVUVVJOX1RSVVNURURfVFlQRSB8fCBmYWxzZTsgLy8gRGVmYXVsdCBmYWxzZVxuICAgICAgRk9SQ0VfQk9EWSA9IGNmZy5GT1JDRV9CT0RZIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgICBTQU5JVElaRV9ET00gPSBjZmcuU0FOSVRJWkVfRE9NICE9PSBmYWxzZTsgLy8gRGVmYXVsdCB0cnVlXG4gICAgICBTQU5JVElaRV9OQU1FRF9QUk9QUyA9IGNmZy5TQU5JVElaRV9OQU1FRF9QUk9QUyB8fCBmYWxzZTsgLy8gRGVmYXVsdCBmYWxzZVxuICAgICAgS0VFUF9DT05URU5UID0gY2ZnLktFRVBfQ09OVEVOVCAhPT0gZmFsc2U7IC8vIERlZmF1bHQgdHJ1ZVxuICAgICAgSU5fUExBQ0UgPSBjZmcuSU5fUExBQ0UgfHwgZmFsc2U7IC8vIERlZmF1bHQgZmFsc2VcbiAgICAgIElTX0FMTE9XRURfVVJJJDEgPSBjZmcuQUxMT1dFRF9VUklfUkVHRVhQIHx8IElTX0FMTE9XRURfVVJJO1xuICAgICAgTkFNRVNQQUNFID0gY2ZnLk5BTUVTUEFDRSB8fCBIVE1MX05BTUVTUEFDRTtcbiAgICAgIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HID0gY2ZnLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HIHx8IHt9O1xuICAgICAgaWYgKGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORyAmJiBpc1JlZ2V4T3JGdW5jdGlvbihjZmcuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKSkge1xuICAgICAgICBDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2sgPSBjZmcuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrO1xuICAgICAgfVxuICAgICAgaWYgKGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORyAmJiBpc1JlZ2V4T3JGdW5jdGlvbihjZmcuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYXR0cmlidXRlTmFtZUNoZWNrKSkge1xuICAgICAgICBDVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2sgPSBjZmcuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYXR0cmlidXRlTmFtZUNoZWNrO1xuICAgICAgfVxuICAgICAgaWYgKGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORyAmJiB0eXBlb2YgY2ZnLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyA9IGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHM7XG4gICAgICB9XG4gICAgICBpZiAoU0FGRV9GT1JfVEVNUExBVEVTKSB7XG4gICAgICAgIEFMTE9XX0RBVEFfQVRUUiA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKFJFVFVSTl9ET01fRlJBR01FTlQpIHtcbiAgICAgICAgUkVUVVJOX0RPTSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8qIFBhcnNlIHByb2ZpbGUgaW5mbyAqL1xuICAgICAgaWYgKFVTRV9QUk9GSUxFUykge1xuICAgICAgICBBTExPV0VEX1RBR1MgPSBhZGRUb1NldCh7fSwgdGV4dCk7XG4gICAgICAgIEFMTE9XRURfQVRUUiA9IFtdO1xuICAgICAgICBpZiAoVVNFX1BST0ZJTEVTLmh0bWwgPT09IHRydWUpIHtcbiAgICAgICAgICBhZGRUb1NldChBTExPV0VEX1RBR1MsIGh0bWwkMSk7XG4gICAgICAgICAgYWRkVG9TZXQoQUxMT1dFRF9BVFRSLCBodG1sKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoVVNFX1BST0ZJTEVTLnN2ZyA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGFkZFRvU2V0KEFMTE9XRURfVEFHUywgc3ZnJDEpO1xuICAgICAgICAgIGFkZFRvU2V0KEFMTE9XRURfQVRUUiwgc3ZnKTtcbiAgICAgICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIHhtbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFVTRV9QUk9GSUxFUy5zdmdGaWx0ZXJzID09PSB0cnVlKSB7XG4gICAgICAgICAgYWRkVG9TZXQoQUxMT1dFRF9UQUdTLCBzdmdGaWx0ZXJzKTtcbiAgICAgICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIHN2Zyk7XG4gICAgICAgICAgYWRkVG9TZXQoQUxMT1dFRF9BVFRSLCB4bWwpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChVU0VfUFJPRklMRVMubWF0aE1sID09PSB0cnVlKSB7XG4gICAgICAgICAgYWRkVG9TZXQoQUxMT1dFRF9UQUdTLCBtYXRoTWwkMSk7XG4gICAgICAgICAgYWRkVG9TZXQoQUxMT1dFRF9BVFRSLCBtYXRoTWwpO1xuICAgICAgICAgIGFkZFRvU2V0KEFMTE9XRURfQVRUUiwgeG1sKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvKiBNZXJnZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgKi9cbiAgICAgIGlmIChjZmcuQUREX1RBR1MpIHtcbiAgICAgICAgaWYgKEFMTE9XRURfVEFHUyA9PT0gREVGQVVMVF9BTExPV0VEX1RBR1MpIHtcbiAgICAgICAgICBBTExPV0VEX1RBR1MgPSBjbG9uZShBTExPV0VEX1RBR1MpO1xuICAgICAgICB9XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfVEFHUywgY2ZnLkFERF9UQUdTLCB0cmFuc2Zvcm1DYXNlRnVuYyk7XG4gICAgICB9XG4gICAgICBpZiAoY2ZnLkFERF9BVFRSKSB7XG4gICAgICAgIGlmIChBTExPV0VEX0FUVFIgPT09IERFRkFVTFRfQUxMT1dFRF9BVFRSKSB7XG4gICAgICAgICAgQUxMT1dFRF9BVFRSID0gY2xvbmUoQUxMT1dFRF9BVFRSKTtcbiAgICAgICAgfVxuICAgICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIGNmZy5BRERfQVRUUiwgdHJhbnNmb3JtQ2FzZUZ1bmMpO1xuICAgICAgfVxuICAgICAgaWYgKGNmZy5BRERfVVJJX1NBRkVfQVRUUikge1xuICAgICAgICBhZGRUb1NldChVUklfU0FGRV9BVFRSSUJVVEVTLCBjZmcuQUREX1VSSV9TQUZFX0FUVFIsIHRyYW5zZm9ybUNhc2VGdW5jKTtcbiAgICAgIH1cbiAgICAgIGlmIChjZmcuRk9SQklEX0NPTlRFTlRTKSB7XG4gICAgICAgIGlmIChGT1JCSURfQ09OVEVOVFMgPT09IERFRkFVTFRfRk9SQklEX0NPTlRFTlRTKSB7XG4gICAgICAgICAgRk9SQklEX0NPTlRFTlRTID0gY2xvbmUoRk9SQklEX0NPTlRFTlRTKTtcbiAgICAgICAgfVxuICAgICAgICBhZGRUb1NldChGT1JCSURfQ09OVEVOVFMsIGNmZy5GT1JCSURfQ09OVEVOVFMsIHRyYW5zZm9ybUNhc2VGdW5jKTtcbiAgICAgIH1cblxuICAgICAgLyogQWRkICN0ZXh0IGluIGNhc2UgS0VFUF9DT05URU5UIGlzIHNldCB0byB0cnVlICovXG4gICAgICBpZiAoS0VFUF9DT05URU5UKSB7XG4gICAgICAgIEFMTE9XRURfVEFHU1snI3RleHQnXSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8qIEFkZCBodG1sLCBoZWFkIGFuZCBib2R5IHRvIEFMTE9XRURfVEFHUyBpbiBjYXNlIFdIT0xFX0RPQ1VNRU5UIGlzIHRydWUgKi9cbiAgICAgIGlmIChXSE9MRV9ET0NVTUVOVCkge1xuICAgICAgICBhZGRUb1NldChBTExPV0VEX1RBR1MsIFsnaHRtbCcsICdoZWFkJywgJ2JvZHknXSk7XG4gICAgICB9XG5cbiAgICAgIC8qIEFkZCB0Ym9keSB0byBBTExPV0VEX1RBR1MgaW4gY2FzZSB0YWJsZXMgYXJlIHBlcm1pdHRlZCwgc2VlICMyODYsICMzNjUgKi9cbiAgICAgIGlmIChBTExPV0VEX1RBR1MudGFibGUpIHtcbiAgICAgICAgYWRkVG9TZXQoQUxMT1dFRF9UQUdTLCBbJ3Rib2R5J10pO1xuICAgICAgICBkZWxldGUgRk9SQklEX1RBR1MudGJvZHk7XG4gICAgICB9XG4gICAgICBpZiAoY2ZnLlRSVVNURURfVFlQRVNfUE9MSUNZKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2ZnLlRSVVNURURfVFlQRVNfUE9MSUNZLmNyZWF0ZUhUTUwgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyB0eXBlRXJyb3JDcmVhdGUoJ1RSVVNURURfVFlQRVNfUE9MSUNZIGNvbmZpZ3VyYXRpb24gb3B0aW9uIG11c3QgcHJvdmlkZSBhIFwiY3JlYXRlSFRNTFwiIGhvb2suJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBjZmcuVFJVU1RFRF9UWVBFU19QT0xJQ1kuY3JlYXRlU2NyaXB0VVJMICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhyb3cgdHlwZUVycm9yQ3JlYXRlKCdUUlVTVEVEX1RZUEVTX1BPTElDWSBjb25maWd1cmF0aW9uIG9wdGlvbiBtdXN0IHByb3ZpZGUgYSBcImNyZWF0ZVNjcmlwdFVSTFwiIGhvb2suJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPdmVyd3JpdGUgZXhpc3RpbmcgVHJ1c3RlZFR5cGVzIHBvbGljeS5cbiAgICAgICAgdHJ1c3RlZFR5cGVzUG9saWN5ID0gY2ZnLlRSVVNURURfVFlQRVNfUE9MSUNZO1xuXG4gICAgICAgIC8vIFNpZ24gbG9jYWwgdmFyaWFibGVzIHJlcXVpcmVkIGJ5IGBzYW5pdGl6ZWAuXG4gICAgICAgIGVtcHR5SFRNTCA9IHRydXN0ZWRUeXBlc1BvbGljeS5jcmVhdGVIVE1MKCcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFVuaW5pdGlhbGl6ZWQgcG9saWN5LCBhdHRlbXB0IHRvIGluaXRpYWxpemUgdGhlIGludGVybmFsIGRvbXB1cmlmeSBwb2xpY3kuXG4gICAgICAgIGlmICh0cnVzdGVkVHlwZXNQb2xpY3kgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRydXN0ZWRUeXBlc1BvbGljeSA9IF9jcmVhdGVUcnVzdGVkVHlwZXNQb2xpY3kodHJ1c3RlZFR5cGVzLCBjdXJyZW50U2NyaXB0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGNyZWF0aW5nIHRoZSBpbnRlcm5hbCBwb2xpY3kgc3VjY2VlZGVkIHNpZ24gaW50ZXJuYWwgdmFyaWFibGVzLlxuICAgICAgICBpZiAodHJ1c3RlZFR5cGVzUG9saWN5ICE9PSBudWxsICYmIHR5cGVvZiBlbXB0eUhUTUwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgZW1wdHlIVE1MID0gdHJ1c3RlZFR5cGVzUG9saWN5LmNyZWF0ZUhUTUwoJycpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFByZXZlbnQgZnVydGhlciBtYW5pcHVsYXRpb24gb2YgY29uZmlndXJhdGlvbi5cbiAgICAgIC8vIE5vdCBhdmFpbGFibGUgaW4gSUU4LCBTYWZhcmkgNSwgZXRjLlxuICAgICAgaWYgKGZyZWV6ZSkge1xuICAgICAgICBmcmVlemUoY2ZnKTtcbiAgICAgIH1cbiAgICAgIENPTkZJRyA9IGNmZztcbiAgICB9O1xuICAgIGNvbnN0IE1BVEhNTF9URVhUX0lOVEVHUkFUSU9OX1BPSU5UUyA9IGFkZFRvU2V0KHt9LCBbJ21pJywgJ21vJywgJ21uJywgJ21zJywgJ210ZXh0J10pO1xuICAgIGNvbnN0IEhUTUxfSU5URUdSQVRJT05fUE9JTlRTID0gYWRkVG9TZXQoe30sIFsnZm9yZWlnbm9iamVjdCcsICdhbm5vdGF0aW9uLXhtbCddKTtcblxuICAgIC8vIENlcnRhaW4gZWxlbWVudHMgYXJlIGFsbG93ZWQgaW4gYm90aCBTVkcgYW5kIEhUTUxcbiAgICAvLyBuYW1lc3BhY2UuIFdlIG5lZWQgdG8gc3BlY2lmeSB0aGVtIGV4cGxpY2l0bHlcbiAgICAvLyBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGVycm9uZW91c2x5IGRlbGV0ZWQgZnJvbVxuICAgIC8vIEhUTUwgbmFtZXNwYWNlLlxuICAgIGNvbnN0IENPTU1PTl9TVkdfQU5EX0hUTUxfRUxFTUVOVFMgPSBhZGRUb1NldCh7fSwgWyd0aXRsZScsICdzdHlsZScsICdmb250JywgJ2EnLCAnc2NyaXB0J10pO1xuXG4gICAgLyogS2VlcCB0cmFjayBvZiBhbGwgcG9zc2libGUgU1ZHIGFuZCBNYXRoTUwgdGFnc1xuICAgICAqIHNvIHRoYXQgd2UgY2FuIHBlcmZvcm0gdGhlIG5hbWVzcGFjZSBjaGVja3NcbiAgICAgKiBjb3JyZWN0bHkuICovXG4gICAgY29uc3QgQUxMX1NWR19UQUdTID0gYWRkVG9TZXQoe30sIFsuLi5zdmckMSwgLi4uc3ZnRmlsdGVycywgLi4uc3ZnRGlzYWxsb3dlZF0pO1xuICAgIGNvbnN0IEFMTF9NQVRITUxfVEFHUyA9IGFkZFRvU2V0KHt9LCBbLi4ubWF0aE1sJDEsIC4uLm1hdGhNbERpc2FsbG93ZWRdKTtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSAge0VsZW1lbnR9IGVsZW1lbnQgYSBET00gZWxlbWVudCB3aG9zZSBuYW1lc3BhY2UgaXMgYmVpbmcgY2hlY2tlZFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm4gZmFsc2UgaWYgdGhlIGVsZW1lbnQgaGFzIGFcbiAgICAgKiAgbmFtZXNwYWNlIHRoYXQgYSBzcGVjLWNvbXBsaWFudCBwYXJzZXIgd291bGQgbmV2ZXJcbiAgICAgKiAgcmV0dXJuLiBSZXR1cm4gdHJ1ZSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgY29uc3QgX2NoZWNrVmFsaWROYW1lc3BhY2UgPSBmdW5jdGlvbiBfY2hlY2tWYWxpZE5hbWVzcGFjZShlbGVtZW50KSB7XG4gICAgICBsZXQgcGFyZW50ID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcblxuICAgICAgLy8gSW4gSlNET00sIGlmIHdlJ3JlIGluc2lkZSBzaGFkb3cgRE9NLCB0aGVuIHBhcmVudE5vZGVcbiAgICAgIC8vIGNhbiBiZSBudWxsLiBXZSBqdXN0IHNpbXVsYXRlIHBhcmVudCBpbiB0aGlzIGNhc2UuXG4gICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LnRhZ05hbWUpIHtcbiAgICAgICAgcGFyZW50ID0ge1xuICAgICAgICAgIG5hbWVzcGFjZVVSSTogTkFNRVNQQUNFLFxuICAgICAgICAgIHRhZ05hbWU6ICd0ZW1wbGF0ZSdcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhZ05hbWUgPSBzdHJpbmdUb0xvd2VyQ2FzZShlbGVtZW50LnRhZ05hbWUpO1xuICAgICAgY29uc3QgcGFyZW50VGFnTmFtZSA9IHN0cmluZ1RvTG93ZXJDYXNlKHBhcmVudC50YWdOYW1lKTtcbiAgICAgIGlmICghQUxMT1dFRF9OQU1FU1BBQ0VTW2VsZW1lbnQubmFtZXNwYWNlVVJJXSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoZWxlbWVudC5uYW1lc3BhY2VVUkkgPT09IFNWR19OQU1FU1BBQ0UpIHtcbiAgICAgICAgLy8gVGhlIG9ubHkgd2F5IHRvIHN3aXRjaCBmcm9tIEhUTUwgbmFtZXNwYWNlIHRvIFNWR1xuICAgICAgICAvLyBpcyB2aWEgPHN2Zz4uIElmIGl0IGhhcHBlbnMgdmlhIGFueSBvdGhlciB0YWcsIHRoZW5cbiAgICAgICAgLy8gaXQgc2hvdWxkIGJlIGtpbGxlZC5cbiAgICAgICAgaWYgKHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAgICAgICAgcmV0dXJuIHRhZ05hbWUgPT09ICdzdmcnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIG9ubHkgd2F5IHRvIHN3aXRjaCBmcm9tIE1hdGhNTCB0byBTVkcgaXMgdmlhYFxuICAgICAgICAvLyBzdmcgaWYgcGFyZW50IGlzIGVpdGhlciA8YW5ub3RhdGlvbi14bWw+IG9yIE1hdGhNTFxuICAgICAgICAvLyB0ZXh0IGludGVncmF0aW9uIHBvaW50cy5cbiAgICAgICAgaWYgKHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IE1BVEhNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgICByZXR1cm4gdGFnTmFtZSA9PT0gJ3N2ZycgJiYgKHBhcmVudFRhZ05hbWUgPT09ICdhbm5vdGF0aW9uLXhtbCcgfHwgTUFUSE1MX1RFWFRfSU5URUdSQVRJT05fUE9JTlRTW3BhcmVudFRhZ05hbWVdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlIG9ubHkgYWxsb3cgZWxlbWVudHMgdGhhdCBhcmUgZGVmaW5lZCBpbiBTVkdcbiAgICAgICAgLy8gc3BlYy4gQWxsIG90aGVycyBhcmUgZGlzYWxsb3dlZCBpbiBTVkcgbmFtZXNwYWNlLlxuICAgICAgICByZXR1cm4gQm9vbGVhbihBTExfU1ZHX1RBR1NbdGFnTmFtZV0pO1xuICAgICAgfVxuICAgICAgaWYgKGVsZW1lbnQubmFtZXNwYWNlVVJJID09PSBNQVRITUxfTkFNRVNQQUNFKSB7XG4gICAgICAgIC8vIFRoZSBvbmx5IHdheSB0byBzd2l0Y2ggZnJvbSBIVE1MIG5hbWVzcGFjZSB0byBNYXRoTUxcbiAgICAgICAgLy8gaXMgdmlhIDxtYXRoPi4gSWYgaXQgaGFwcGVucyB2aWEgYW55IG90aGVyIHRhZywgdGhlblxuICAgICAgICAvLyBpdCBzaG91bGQgYmUga2lsbGVkLlxuICAgICAgICBpZiAocGFyZW50Lm5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgICByZXR1cm4gdGFnTmFtZSA9PT0gJ21hdGgnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIG9ubHkgd2F5IHRvIHN3aXRjaCBmcm9tIFNWRyB0byBNYXRoTUwgaXMgdmlhXG4gICAgICAgIC8vIDxtYXRoPiBhbmQgSFRNTCBpbnRlZ3JhdGlvbiBwb2ludHNcbiAgICAgICAgaWYgKHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IFNWR19OQU1FU1BBQ0UpIHtcbiAgICAgICAgICByZXR1cm4gdGFnTmFtZSA9PT0gJ21hdGgnICYmIEhUTUxfSU5URUdSQVRJT05fUE9JTlRTW3BhcmVudFRhZ05hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2Ugb25seSBhbGxvdyBlbGVtZW50cyB0aGF0IGFyZSBkZWZpbmVkIGluIE1hdGhNTFxuICAgICAgICAvLyBzcGVjLiBBbGwgb3RoZXJzIGFyZSBkaXNhbGxvd2VkIGluIE1hdGhNTCBuYW1lc3BhY2UuXG4gICAgICAgIHJldHVybiBCb29sZWFuKEFMTF9NQVRITUxfVEFHU1t0YWdOYW1lXSk7XG4gICAgICB9XG4gICAgICBpZiAoZWxlbWVudC5uYW1lc3BhY2VVUkkgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAgICAgIC8vIFRoZSBvbmx5IHdheSB0byBzd2l0Y2ggZnJvbSBTVkcgdG8gSFRNTCBpcyB2aWFcbiAgICAgICAgLy8gSFRNTCBpbnRlZ3JhdGlvbiBwb2ludHMsIGFuZCBmcm9tIE1hdGhNTCB0byBIVE1MXG4gICAgICAgIC8vIGlzIHZpYSBNYXRoTUwgdGV4dCBpbnRlZ3JhdGlvbiBwb2ludHNcbiAgICAgICAgaWYgKHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IFNWR19OQU1FU1BBQ0UgJiYgIUhUTUxfSU5URUdSQVRJT05fUE9JTlRTW3BhcmVudFRhZ05hbWVdKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJlbnQubmFtZXNwYWNlVVJJID09PSBNQVRITUxfTkFNRVNQQUNFICYmICFNQVRITUxfVEVYVF9JTlRFR1JBVElPTl9QT0lOVFNbcGFyZW50VGFnTmFtZV0pIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBkaXNhbGxvdyB0YWdzIHRoYXQgYXJlIHNwZWNpZmljIGZvciBNYXRoTUxcbiAgICAgICAgLy8gb3IgU1ZHIGFuZCBzaG91bGQgbmV2ZXIgYXBwZWFyIGluIEhUTUwgbmFtZXNwYWNlXG4gICAgICAgIHJldHVybiAhQUxMX01BVEhNTF9UQUdTW3RhZ05hbWVdICYmIChDT01NT05fU1ZHX0FORF9IVE1MX0VMRU1FTlRTW3RhZ05hbWVdIHx8ICFBTExfU1ZHX1RBR1NbdGFnTmFtZV0pO1xuICAgICAgfVxuXG4gICAgICAvLyBGb3IgWEhUTUwgYW5kIFhNTCBkb2N1bWVudHMgdGhhdCBzdXBwb3J0IGN1c3RvbSBuYW1lc3BhY2VzXG4gICAgICBpZiAoUEFSU0VSX01FRElBX1RZUEUgPT09ICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnICYmIEFMTE9XRURfTkFNRVNQQUNFU1tlbGVtZW50Lm5hbWVzcGFjZVVSSV0pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIFRoZSBjb2RlIHNob3VsZCBuZXZlciByZWFjaCB0aGlzIHBsYWNlICh0aGlzIG1lYW5zXG4gICAgICAvLyB0aGF0IHRoZSBlbGVtZW50IHNvbWVob3cgZ290IG5hbWVzcGFjZSB0aGF0IGlzIG5vdFxuICAgICAgLy8gSFRNTCwgU1ZHLCBNYXRoTUwgb3IgYWxsb3dlZCB2aWEgQUxMT1dFRF9OQU1FU1BBQ0VTKS5cbiAgICAgIC8vIFJldHVybiBmYWxzZSBqdXN0IGluIGNhc2UuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIF9mb3JjZVJlbW92ZVxuICAgICAqXG4gICAgICogQHBhcmFtICB7Tm9kZX0gbm9kZSBhIERPTSBub2RlXG4gICAgICovXG4gICAgY29uc3QgX2ZvcmNlUmVtb3ZlID0gZnVuY3Rpb24gX2ZvcmNlUmVtb3ZlKG5vZGUpIHtcbiAgICAgIGFycmF5UHVzaChET01QdXJpZnkucmVtb3ZlZCwge1xuICAgICAgICBlbGVtZW50OiBub2RlXG4gICAgICB9KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL3ByZWZlci1kb20tbm9kZS1yZW1vdmVcbiAgICAgICAgZ2V0UGFyZW50Tm9kZShub2RlKS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgcmVtb3ZlKG5vZGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBfcmVtb3ZlQXR0cmlidXRlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gIHtTdHJpbmd9IG5hbWUgYW4gQXR0cmlidXRlIG5hbWVcbiAgICAgKiBAcGFyYW0gIHtOb2RlfSBub2RlIGEgRE9NIG5vZGVcbiAgICAgKi9cbiAgICBjb25zdCBfcmVtb3ZlQXR0cmlidXRlID0gZnVuY3Rpb24gX3JlbW92ZUF0dHJpYnV0ZShuYW1lLCBub2RlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhcnJheVB1c2goRE9NUHVyaWZ5LnJlbW92ZWQsIHtcbiAgICAgICAgICBhdHRyaWJ1dGU6IG5vZGUuZ2V0QXR0cmlidXRlTm9kZShuYW1lKSxcbiAgICAgICAgICBmcm9tOiBub2RlXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICBhcnJheVB1c2goRE9NUHVyaWZ5LnJlbW92ZWQsIHtcbiAgICAgICAgICBhdHRyaWJ1dGU6IG51bGwsXG4gICAgICAgICAgZnJvbTogbm9kZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuXG4gICAgICAvLyBXZSB2b2lkIGF0dHJpYnV0ZSB2YWx1ZXMgZm9yIHVucmVtb3ZhYmxlIFwiaXNcIlwiIGF0dHJpYnV0ZXNcbiAgICAgIGlmIChuYW1lID09PSAnaXMnICYmICFBTExPV0VEX0FUVFJbbmFtZV0pIHtcbiAgICAgICAgaWYgKFJFVFVSTl9ET00gfHwgUkVUVVJOX0RPTV9GUkFHTUVOVCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBfZm9yY2VSZW1vdmUobm9kZSk7XG4gICAgICAgICAgfSBjYXRjaCAoXykge31cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUobmFtZSwgJycpO1xuICAgICAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogX2luaXREb2N1bWVudFxuICAgICAqXG4gICAgICogQHBhcmFtICB7U3RyaW5nfSBkaXJ0eSBhIHN0cmluZyBvZiBkaXJ0eSBtYXJrdXBcbiAgICAgKiBAcmV0dXJuIHtEb2N1bWVudH0gYSBET00sIGZpbGxlZCB3aXRoIHRoZSBkaXJ0eSBtYXJrdXBcbiAgICAgKi9cbiAgICBjb25zdCBfaW5pdERvY3VtZW50ID0gZnVuY3Rpb24gX2luaXREb2N1bWVudChkaXJ0eSkge1xuICAgICAgLyogQ3JlYXRlIGEgSFRNTCBkb2N1bWVudCAqL1xuICAgICAgbGV0IGRvYyA9IG51bGw7XG4gICAgICBsZXQgbGVhZGluZ1doaXRlc3BhY2UgPSBudWxsO1xuICAgICAgaWYgKEZPUkNFX0JPRFkpIHtcbiAgICAgICAgZGlydHkgPSAnPHJlbW92ZT48L3JlbW92ZT4nICsgZGlydHk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvKiBJZiBGT1JDRV9CT0RZIGlzbid0IHVzZWQsIGxlYWRpbmcgd2hpdGVzcGFjZSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQgbWFudWFsbHkgKi9cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHN0cmluZ01hdGNoKGRpcnR5LCAvXltcXHJcXG5cXHQgXSsvKTtcbiAgICAgICAgbGVhZGluZ1doaXRlc3BhY2UgPSBtYXRjaGVzICYmIG1hdGNoZXNbMF07XG4gICAgICB9XG4gICAgICBpZiAoUEFSU0VSX01FRElBX1RZUEUgPT09ICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnICYmIE5BTUVTUEFDRSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgLy8gUm9vdCBvZiBYSFRNTCBkb2MgbXVzdCBjb250YWluIHhtbG5zIGRlY2xhcmF0aW9uIChzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3hodG1sMS9ub3JtYXRpdmUuaHRtbCNzdHJpY3QpXG4gICAgICAgIGRpcnR5ID0gJzxodG1sIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPjxoZWFkPjwvaGVhZD48Ym9keT4nICsgZGlydHkgKyAnPC9ib2R5PjwvaHRtbD4nO1xuICAgICAgfVxuICAgICAgY29uc3QgZGlydHlQYXlsb2FkID0gdHJ1c3RlZFR5cGVzUG9saWN5ID8gdHJ1c3RlZFR5cGVzUG9saWN5LmNyZWF0ZUhUTUwoZGlydHkpIDogZGlydHk7XG4gICAgICAvKlxuICAgICAgICogVXNlIHRoZSBET01QYXJzZXIgQVBJIGJ5IGRlZmF1bHQsIGZhbGxiYWNrIGxhdGVyIGlmIG5lZWRzIGJlXG4gICAgICAgKiBET01QYXJzZXIgbm90IHdvcmsgZm9yIHN2ZyB3aGVuIGhhcyBtdWx0aXBsZSByb290IGVsZW1lbnQuXG4gICAgICAgKi9cbiAgICAgIGlmIChOQU1FU1BBQ0UgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhkaXJ0eVBheWxvYWQsIFBBUlNFUl9NRURJQV9UWVBFKTtcbiAgICAgICAgfSBjYXRjaCAoXykge31cbiAgICAgIH1cblxuICAgICAgLyogVXNlIGNyZWF0ZUhUTUxEb2N1bWVudCBpbiBjYXNlIERPTVBhcnNlciBpcyBub3QgYXZhaWxhYmxlICovXG4gICAgICBpZiAoIWRvYyB8fCAhZG9jLmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgICBkb2MgPSBpbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChOQU1FU1BBQ0UsICd0ZW1wbGF0ZScsIG51bGwpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MID0gSVNfRU1QVFlfSU5QVVQgPyBlbXB0eUhUTUwgOiBkaXJ0eVBheWxvYWQ7XG4gICAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgICAvLyBTeW50YXggZXJyb3IgaWYgZGlydHlQYXlsb2FkIGlzIGludmFsaWQgeG1sXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGJvZHkgPSBkb2MuYm9keSB8fCBkb2MuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgaWYgKGRpcnR5ICYmIGxlYWRpbmdXaGl0ZXNwYWNlKSB7XG4gICAgICAgIGJvZHkuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxlYWRpbmdXaGl0ZXNwYWNlKSwgYm9keS5jaGlsZE5vZGVzWzBdIHx8IG51bGwpO1xuICAgICAgfVxuXG4gICAgICAvKiBXb3JrIG9uIHdob2xlIGRvY3VtZW50IG9yIGp1c3QgaXRzIGJvZHkgKi9cbiAgICAgIGlmIChOQU1FU1BBQ0UgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAgICAgIHJldHVybiBnZXRFbGVtZW50c0J5VGFnTmFtZS5jYWxsKGRvYywgV0hPTEVfRE9DVU1FTlQgPyAnaHRtbCcgOiAnYm9keScpWzBdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFdIT0xFX0RPQ1VNRU5UID8gZG9jLmRvY3VtZW50RWxlbWVudCA6IGJvZHk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBOb2RlSXRlcmF0b3Igb2JqZWN0IHRoYXQgeW91IGNhbiB1c2UgdG8gdHJhdmVyc2UgZmlsdGVyZWQgbGlzdHMgb2Ygbm9kZXMgb3IgZWxlbWVudHMgaW4gYSBkb2N1bWVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSAge05vZGV9IHJvb3QgVGhlIHJvb3QgZWxlbWVudCBvciBub2RlIHRvIHN0YXJ0IHRyYXZlcnNpbmcgb24uXG4gICAgICogQHJldHVybiB7Tm9kZUl0ZXJhdG9yfSBUaGUgY3JlYXRlZCBOb2RlSXRlcmF0b3JcbiAgICAgKi9cbiAgICBjb25zdCBfY3JlYXRlTm9kZUl0ZXJhdG9yID0gZnVuY3Rpb24gX2NyZWF0ZU5vZGVJdGVyYXRvcihyb290KSB7XG4gICAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yLmNhbGwocm9vdC5vd25lckRvY3VtZW50IHx8IHJvb3QsIHJvb3QsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICAgICAgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfQ09NTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19URVhUIHwgTm9kZUZpbHRlci5TSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gfCBOb2RlRmlsdGVyLlNIT1dfQ0RBVEFfU0VDVElPTiwgbnVsbCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIF9pc0Nsb2JiZXJlZFxuICAgICAqXG4gICAgICogQHBhcmFtICB7Tm9kZX0gZWxtIGVsZW1lbnQgdG8gY2hlY2sgZm9yIGNsb2JiZXJpbmcgYXR0YWNrc1xuICAgICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaWYgY2xvYmJlcmVkLCBmYWxzZSBpZiBzYWZlXG4gICAgICovXG4gICAgY29uc3QgX2lzQ2xvYmJlcmVkID0gZnVuY3Rpb24gX2lzQ2xvYmJlcmVkKGVsbSkge1xuICAgICAgcmV0dXJuIGVsbSBpbnN0YW5jZW9mIEhUTUxGb3JtRWxlbWVudCAmJiAodHlwZW9mIGVsbS5ub2RlTmFtZSAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIGVsbS50ZXh0Q29udGVudCAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIGVsbS5yZW1vdmVDaGlsZCAhPT0gJ2Z1bmN0aW9uJyB8fCAhKGVsbS5hdHRyaWJ1dGVzIGluc3RhbmNlb2YgTmFtZWROb2RlTWFwKSB8fCB0eXBlb2YgZWxtLnJlbW92ZUF0dHJpYnV0ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgZWxtLnNldEF0dHJpYnV0ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgZWxtLm5hbWVzcGFjZVVSSSAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIGVsbS5pbnNlcnRCZWZvcmUgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGVsbS5oYXNDaGlsZE5vZGVzICE9PSAnZnVuY3Rpb24nKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBpcyBhIERPTSBub2RlLlxuICAgICAqXG4gICAgICogQHBhcmFtICB7Tm9kZX0gb2JqZWN0IG9iamVjdCB0byBjaGVjayB3aGV0aGVyIGl0J3MgYSBET00gbm9kZVxuICAgICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaXMgb2JqZWN0IGlzIGEgRE9NIG5vZGVcbiAgICAgKi9cbiAgICBjb25zdCBfaXNOb2RlID0gZnVuY3Rpb24gX2lzTm9kZShvYmplY3QpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgTm9kZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvYmplY3QgaW5zdGFuY2VvZiBOb2RlO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBfZXhlY3V0ZUhvb2tcbiAgICAgKiBFeGVjdXRlIHVzZXIgY29uZmlndXJhYmxlIGhvb2tzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gIHtTdHJpbmd9IGVudHJ5UG9pbnQgIE5hbWUgb2YgdGhlIGhvb2sncyBlbnRyeSBwb2ludFxuICAgICAqIEBwYXJhbSAge05vZGV9IGN1cnJlbnROb2RlIG5vZGUgdG8gd29yayBvbiB3aXRoIHRoZSBob29rXG4gICAgICogQHBhcmFtICB7T2JqZWN0fSBkYXRhIGFkZGl0aW9uYWwgaG9vayBwYXJhbWV0ZXJzXG4gICAgICovXG4gICAgY29uc3QgX2V4ZWN1dGVIb29rID0gZnVuY3Rpb24gX2V4ZWN1dGVIb29rKGVudHJ5UG9pbnQsIGN1cnJlbnROb2RlLCBkYXRhKSB7XG4gICAgICBpZiAoIWhvb2tzW2VudHJ5UG9pbnRdKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGFycmF5Rm9yRWFjaChob29rc1tlbnRyeVBvaW50XSwgaG9vayA9PiB7XG4gICAgICAgIGhvb2suY2FsbChET01QdXJpZnksIGN1cnJlbnROb2RlLCBkYXRhLCBDT05GSUcpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIF9zYW5pdGl6ZUVsZW1lbnRzXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdCBub2RlTmFtZVxuICAgICAqIEBwcm90ZWN0IHRleHRDb250ZW50XG4gICAgICogQHByb3RlY3QgcmVtb3ZlQ2hpbGRcbiAgICAgKlxuICAgICAqIEBwYXJhbSAgIHtOb2RlfSBjdXJyZW50Tm9kZSB0byBjaGVjayBmb3IgcGVybWlzc2lvbiB0byBleGlzdFxuICAgICAqIEByZXR1cm4gIHtCb29sZWFufSB0cnVlIGlmIG5vZGUgd2FzIGtpbGxlZCwgZmFsc2UgaWYgbGVmdCBhbGl2ZVxuICAgICAqL1xuICAgIGNvbnN0IF9zYW5pdGl6ZUVsZW1lbnRzID0gZnVuY3Rpb24gX3Nhbml0aXplRWxlbWVudHMoY3VycmVudE5vZGUpIHtcbiAgICAgIGxldCBjb250ZW50ID0gbnVsbDtcblxuICAgICAgLyogRXhlY3V0ZSBhIGhvb2sgaWYgcHJlc2VudCAqL1xuICAgICAgX2V4ZWN1dGVIb29rKCdiZWZvcmVTYW5pdGl6ZUVsZW1lbnRzJywgY3VycmVudE5vZGUsIG51bGwpO1xuXG4gICAgICAvKiBDaGVjayBpZiBlbGVtZW50IGlzIGNsb2JiZXJlZCBvciBjYW4gY2xvYmJlciAqL1xuICAgICAgaWYgKF9pc0Nsb2JiZXJlZChjdXJyZW50Tm9kZSkpIHtcbiAgICAgICAgX2ZvcmNlUmVtb3ZlKGN1cnJlbnROb2RlKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8qIE5vdyBsZXQncyBjaGVjayB0aGUgZWxlbWVudCdzIHR5cGUgYW5kIG5hbWUgKi9cbiAgICAgIGNvbnN0IHRhZ05hbWUgPSB0cmFuc2Zvcm1DYXNlRnVuYyhjdXJyZW50Tm9kZS5ub2RlTmFtZSk7XG5cbiAgICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICAgIF9leGVjdXRlSG9vaygndXBvblNhbml0aXplRWxlbWVudCcsIGN1cnJlbnROb2RlLCB7XG4gICAgICAgIHRhZ05hbWUsXG4gICAgICAgIGFsbG93ZWRUYWdzOiBBTExPV0VEX1RBR1NcbiAgICAgIH0pO1xuXG4gICAgICAvKiBEZXRlY3QgbVhTUyBhdHRlbXB0cyBhYnVzaW5nIG5hbWVzcGFjZSBjb25mdXNpb24gKi9cbiAgICAgIGlmIChjdXJyZW50Tm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgIV9pc05vZGUoY3VycmVudE5vZGUuZmlyc3RFbGVtZW50Q2hpbGQpICYmIHJlZ0V4cFRlc3QoLzxbL1xcd10vZywgY3VycmVudE5vZGUuaW5uZXJIVE1MKSAmJiByZWdFeHBUZXN0KC88Wy9cXHddL2csIGN1cnJlbnROb2RlLnRleHRDb250ZW50KSkge1xuICAgICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyogUmVtb3ZlIGFueSBvY2N1cnJlbmNlIG9mIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zICovXG4gICAgICBpZiAoY3VycmVudE5vZGUubm9kZVR5cGUgPT09IE5PREVfVFlQRS5wcm9ncmVzc2luZ0luc3RydWN0aW9uKSB7XG4gICAgICAgIF9mb3JjZVJlbW92ZShjdXJyZW50Tm9kZSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKiBSZW1vdmUgYW55IGtpbmQgb2YgcG9zc2libHkgaGFybWZ1bCBjb21tZW50cyAqL1xuICAgICAgaWYgKFNBRkVfRk9SX1hNTCAmJiBjdXJyZW50Tm9kZS5ub2RlVHlwZSA9PT0gTk9ERV9UWVBFLmNvbW1lbnQgJiYgcmVnRXhwVGVzdCgvPFsvXFx3XS9nLCBjdXJyZW50Tm9kZS5kYXRhKSkge1xuICAgICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyogUmVtb3ZlIGVsZW1lbnQgaWYgYW55dGhpbmcgZm9yYmlkcyBpdHMgcHJlc2VuY2UgKi9cbiAgICAgIGlmICghQUxMT1dFRF9UQUdTW3RhZ05hbWVdIHx8IEZPUkJJRF9UQUdTW3RhZ05hbWVdKSB7XG4gICAgICAgIC8qIENoZWNrIGlmIHdlIGhhdmUgYSBjdXN0b20gZWxlbWVudCB0byBoYW5kbGUgKi9cbiAgICAgICAgaWYgKCFGT1JCSURfVEFHU1t0YWdOYW1lXSAmJiBfaXNCYXNpY0N1c3RvbUVsZW1lbnQodGFnTmFtZSkpIHtcbiAgICAgICAgICBpZiAoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwICYmIHJlZ0V4cFRlc3QoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrLCB0YWdOYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24gJiYgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKHRhZ05hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogS2VlcCBjb250ZW50IGV4Y2VwdCBmb3IgYmFkLWxpc3RlZCBlbGVtZW50cyAqL1xuICAgICAgICBpZiAoS0VFUF9DT05URU5UICYmICFGT1JCSURfQ09OVEVOVFNbdGFnTmFtZV0pIHtcbiAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShjdXJyZW50Tm9kZSkgfHwgY3VycmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgICBjb25zdCBjaGlsZE5vZGVzID0gZ2V0Q2hpbGROb2RlcyhjdXJyZW50Tm9kZSkgfHwgY3VycmVudE5vZGUuY2hpbGROb2RlcztcbiAgICAgICAgICBpZiAoY2hpbGROb2RlcyAmJiBwYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZENvdW50ID0gY2hpbGROb2Rlcy5sZW5ndGg7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gY2hpbGRDb3VudCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkQ2xvbmUgPSBjbG9uZU5vZGUoY2hpbGROb2Rlc1tpXSwgdHJ1ZSk7XG4gICAgICAgICAgICAgIGNoaWxkQ2xvbmUuX19yZW1vdmFsQ291bnQgPSAoY3VycmVudE5vZGUuX19yZW1vdmFsQ291bnQgfHwgMCkgKyAxO1xuICAgICAgICAgICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShjaGlsZENsb25lLCBnZXROZXh0U2libGluZyhjdXJyZW50Tm9kZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyogQ2hlY2sgd2hldGhlciBlbGVtZW50IGhhcyBhIHZhbGlkIG5hbWVzcGFjZSAqL1xuICAgICAgaWYgKGN1cnJlbnROb2RlIGluc3RhbmNlb2YgRWxlbWVudCAmJiAhX2NoZWNrVmFsaWROYW1lc3BhY2UoY3VycmVudE5vZGUpKSB7XG4gICAgICAgIF9mb3JjZVJlbW92ZShjdXJyZW50Tm9kZSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKiBNYWtlIHN1cmUgdGhhdCBvbGRlciBicm93c2VycyBkb24ndCBnZXQgZmFsbGJhY2stdGFnIG1YU1MgKi9cbiAgICAgIGlmICgodGFnTmFtZSA9PT0gJ25vc2NyaXB0JyB8fCB0YWdOYW1lID09PSAnbm9lbWJlZCcgfHwgdGFnTmFtZSA9PT0gJ25vZnJhbWVzJykgJiYgcmVnRXhwVGVzdCgvPFxcL25vKHNjcmlwdHxlbWJlZHxmcmFtZXMpL2ksIGN1cnJlbnROb2RlLmlubmVySFRNTCkpIHtcbiAgICAgICAgX2ZvcmNlUmVtb3ZlKGN1cnJlbnROb2RlKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8qIFNhbml0aXplIGVsZW1lbnQgY29udGVudCB0byBiZSB0ZW1wbGF0ZS1zYWZlICovXG4gICAgICBpZiAoU0FGRV9GT1JfVEVNUExBVEVTICYmIGN1cnJlbnROb2RlLm5vZGVUeXBlID09PSBOT0RFX1RZUEUudGV4dCkge1xuICAgICAgICAvKiBHZXQgdGhlIGVsZW1lbnQncyB0ZXh0IGNvbnRlbnQgKi9cbiAgICAgICAgY29udGVudCA9IGN1cnJlbnROb2RlLnRleHRDb250ZW50O1xuICAgICAgICBhcnJheUZvckVhY2goW01VU1RBQ0hFX0VYUFIsIEVSQl9FWFBSLCBUTVBMSVRfRVhQUl0sIGV4cHIgPT4ge1xuICAgICAgICAgIGNvbnRlbnQgPSBzdHJpbmdSZXBsYWNlKGNvbnRlbnQsIGV4cHIsICcgJyk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY3VycmVudE5vZGUudGV4dENvbnRlbnQgIT09IGNvbnRlbnQpIHtcbiAgICAgICAgICBhcnJheVB1c2goRE9NUHVyaWZ5LnJlbW92ZWQsIHtcbiAgICAgICAgICAgIGVsZW1lbnQ6IGN1cnJlbnROb2RlLmNsb25lTm9kZSgpXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY3VycmVudE5vZGUudGV4dENvbnRlbnQgPSBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICAgIF9leGVjdXRlSG9vaygnYWZ0ZXJTYW5pdGl6ZUVsZW1lbnRzJywgY3VycmVudE5vZGUsIG51bGwpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBfaXNWYWxpZEF0dHJpYnV0ZVxuICAgICAqXG4gICAgICogQHBhcmFtICB7c3RyaW5nfSBsY1RhZyBMb3dlcmNhc2UgdGFnIG5hbWUgb2YgY29udGFpbmluZyBlbGVtZW50LlxuICAgICAqIEBwYXJhbSAge3N0cmluZ30gbGNOYW1lIExvd2VyY2FzZSBhdHRyaWJ1dGUgbmFtZS5cbiAgICAgKiBAcGFyYW0gIHtzdHJpbmd9IHZhbHVlIEF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKiBAcmV0dXJuIHtCb29sZWFufSBSZXR1cm5zIHRydWUgaWYgYHZhbHVlYCBpcyB2YWxpZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gICAgY29uc3QgX2lzVmFsaWRBdHRyaWJ1dGUgPSBmdW5jdGlvbiBfaXNWYWxpZEF0dHJpYnV0ZShsY1RhZywgbGNOYW1lLCB2YWx1ZSkge1xuICAgICAgLyogTWFrZSBzdXJlIGF0dHJpYnV0ZSBjYW5ub3QgY2xvYmJlciAqL1xuICAgICAgaWYgKFNBTklUSVpFX0RPTSAmJiAobGNOYW1lID09PSAnaWQnIHx8IGxjTmFtZSA9PT0gJ25hbWUnKSAmJiAodmFsdWUgaW4gZG9jdW1lbnQgfHwgdmFsdWUgaW4gZm9ybUVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLyogQWxsb3cgdmFsaWQgZGF0YS0qIGF0dHJpYnV0ZXM6IEF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgYWZ0ZXIgXCItXCJcbiAgICAgICAgICAoaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjZW1iZWRkaW5nLWN1c3RvbS1ub24tdmlzaWJsZS1kYXRhLXdpdGgtdGhlLWRhdGEtKi1hdHRyaWJ1dGVzKVxuICAgICAgICAgIFhNTC1jb21wYXRpYmxlIChodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9pbmZyYXN0cnVjdHVyZS5odG1sI3htbC1jb21wYXRpYmxlIGFuZCBodHRwOi8vd3d3LnczLm9yZy9UUi94bWwvI2QwZTgwNClcbiAgICAgICAgICBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIHRoZSB2YWx1ZTsgaXQncyBhbHdheXMgVVJJIHNhZmUuICovXG4gICAgICBpZiAoQUxMT1dfREFUQV9BVFRSICYmICFGT1JCSURfQVRUUltsY05hbWVdICYmIHJlZ0V4cFRlc3QoREFUQV9BVFRSLCBsY05hbWUpKSA7IGVsc2UgaWYgKEFMTE9XX0FSSUFfQVRUUiAmJiByZWdFeHBUZXN0KEFSSUFfQVRUUiwgbGNOYW1lKSkgOyBlbHNlIGlmICghQUxMT1dFRF9BVFRSW2xjTmFtZV0gfHwgRk9SQklEX0FUVFJbbGNOYW1lXSkge1xuICAgICAgICBpZiAoXG4gICAgICAgIC8vIEZpcnN0IGNvbmRpdGlvbiBkb2VzIGEgdmVyeSBiYXNpYyBjaGVjayBpZiBhKSBpdCdzIGJhc2ljYWxseSBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IHRhZ25hbWUgQU5EXG4gICAgICAgIC8vIGIpIGlmIHRoZSB0YWdOYW1lIHBhc3NlcyB3aGF0ZXZlciB0aGUgdXNlciBoYXMgY29uZmlndXJlZCBmb3IgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrXG4gICAgICAgIC8vIGFuZCBjKSBpZiB0aGUgYXR0cmlidXRlIG5hbWUgcGFzc2VzIHdoYXRldmVyIHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIGZvciBDVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2tcbiAgICAgICAgX2lzQmFzaWNDdXN0b21FbGVtZW50KGxjVGFnKSAmJiAoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwICYmIHJlZ0V4cFRlc3QoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrLCBsY1RhZykgfHwgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24gJiYgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKGxjVGFnKSkgJiYgKENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjayBpbnN0YW5jZW9mIFJlZ0V4cCAmJiByZWdFeHBUZXN0KENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjaywgbGNOYW1lKSB8fCBDVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiAmJiBDVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2sobGNOYW1lKSkgfHxcbiAgICAgICAgLy8gQWx0ZXJuYXRpdmUsIHNlY29uZCBjb25kaXRpb24gY2hlY2tzIGlmIGl0J3MgYW4gYGlzYC1hdHRyaWJ1dGUsIEFORFxuICAgICAgICAvLyB0aGUgdmFsdWUgcGFzc2VzIHdoYXRldmVyIHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIGZvciBDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2tcbiAgICAgICAgbGNOYW1lID09PSAnaXMnICYmIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyAmJiAoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwICYmIHJlZ0V4cFRlc3QoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrLCB2YWx1ZSkgfHwgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24gJiYgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKHZhbHVlKSkpIDsgZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8qIENoZWNrIHZhbHVlIGlzIHNhZmUuIEZpcnN0LCBpcyBhdHRyIGluZXJ0PyBJZiBzbywgaXMgc2FmZSAqL1xuICAgICAgfSBlbHNlIGlmIChVUklfU0FGRV9BVFRSSUJVVEVTW2xjTmFtZV0pIDsgZWxzZSBpZiAocmVnRXhwVGVzdChJU19BTExPV0VEX1VSSSQxLCBzdHJpbmdSZXBsYWNlKHZhbHVlLCBBVFRSX1dISVRFU1BBQ0UsICcnKSkpIDsgZWxzZSBpZiAoKGxjTmFtZSA9PT0gJ3NyYycgfHwgbGNOYW1lID09PSAneGxpbms6aHJlZicgfHwgbGNOYW1lID09PSAnaHJlZicpICYmIGxjVGFnICE9PSAnc2NyaXB0JyAmJiBzdHJpbmdJbmRleE9mKHZhbHVlLCAnZGF0YTonKSA9PT0gMCAmJiBEQVRBX1VSSV9UQUdTW2xjVGFnXSkgOyBlbHNlIGlmIChBTExPV19VTktOT1dOX1BST1RPQ09MUyAmJiAhcmVnRXhwVGVzdChJU19TQ1JJUFRfT1JfREFUQSwgc3RyaW5nUmVwbGFjZSh2YWx1ZSwgQVRUUl9XSElURVNQQUNFLCAnJykpKSA7IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gZWxzZSA7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogX2lzQmFzaWNDdXN0b21FbGVtZW50XG4gICAgICogY2hlY2tzIGlmIGF0IGxlYXN0IG9uZSBkYXNoIGlzIGluY2x1ZGVkIGluIHRhZ05hbWUsIGFuZCBpdCdzIG5vdCB0aGUgZmlyc3QgY2hhclxuICAgICAqIGZvciBtb3JlIHNvcGhpc3RpY2F0ZWQgY2hlY2tpbmcgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvdmFsaWRhdGUtZWxlbWVudC1uYW1lXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnTmFtZSBuYW1lIG9mIHRoZSB0YWcgb2YgdGhlIG5vZGUgdG8gc2FuaXRpemVcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIHRoZSB0YWcgbmFtZSBtZWV0cyB0aGUgYmFzaWMgY3JpdGVyaWEgZm9yIGEgY3VzdG9tIGVsZW1lbnQsIG90aGVyd2lzZSBmYWxzZS5cbiAgICAgKi9cbiAgICBjb25zdCBfaXNCYXNpY0N1c3RvbUVsZW1lbnQgPSBmdW5jdGlvbiBfaXNCYXNpY0N1c3RvbUVsZW1lbnQodGFnTmFtZSkge1xuICAgICAgcmV0dXJuIHRhZ05hbWUgIT09ICdhbm5vdGF0aW9uLXhtbCcgJiYgc3RyaW5nTWF0Y2godGFnTmFtZSwgQ1VTVE9NX0VMRU1FTlQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBfc2FuaXRpemVBdHRyaWJ1dGVzXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdCBhdHRyaWJ1dGVzXG4gICAgICogQHByb3RlY3Qgbm9kZU5hbWVcbiAgICAgKiBAcHJvdGVjdCByZW1vdmVBdHRyaWJ1dGVcbiAgICAgKiBAcHJvdGVjdCBzZXRBdHRyaWJ1dGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSAge05vZGV9IGN1cnJlbnROb2RlIHRvIHNhbml0aXplXG4gICAgICovXG4gICAgY29uc3QgX3Nhbml0aXplQXR0cmlidXRlcyA9IGZ1bmN0aW9uIF9zYW5pdGl6ZUF0dHJpYnV0ZXMoY3VycmVudE5vZGUpIHtcbiAgICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICAgIF9leGVjdXRlSG9vaygnYmVmb3JlU2FuaXRpemVBdHRyaWJ1dGVzJywgY3VycmVudE5vZGUsIG51bGwpO1xuICAgICAgY29uc3Qge1xuICAgICAgICBhdHRyaWJ1dGVzXG4gICAgICB9ID0gY3VycmVudE5vZGU7XG5cbiAgICAgIC8qIENoZWNrIGlmIHdlIGhhdmUgYXR0cmlidXRlczsgaWYgbm90IHdlIG1pZ2h0IGhhdmUgYSB0ZXh0IG5vZGUgKi9cbiAgICAgIGlmICghYXR0cmlidXRlcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBob29rRXZlbnQgPSB7XG4gICAgICAgIGF0dHJOYW1lOiAnJyxcbiAgICAgICAgYXR0clZhbHVlOiAnJyxcbiAgICAgICAga2VlcEF0dHI6IHRydWUsXG4gICAgICAgIGFsbG93ZWRBdHRyaWJ1dGVzOiBBTExPV0VEX0FUVFJcbiAgICAgIH07XG4gICAgICBsZXQgbCA9IGF0dHJpYnV0ZXMubGVuZ3RoO1xuXG4gICAgICAvKiBHbyBiYWNrd2FyZHMgb3ZlciBhbGwgYXR0cmlidXRlczsgc2FmZWx5IHJlbW92ZSBiYWQgb25lcyAqL1xuICAgICAgd2hpbGUgKGwtLSkge1xuICAgICAgICBjb25zdCBhdHRyID0gYXR0cmlidXRlc1tsXTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgbmFtZXNwYWNlVVJJLFxuICAgICAgICAgIHZhbHVlOiBhdHRyVmFsdWVcbiAgICAgICAgfSA9IGF0dHI7XG4gICAgICAgIGNvbnN0IGxjTmFtZSA9IHRyYW5zZm9ybUNhc2VGdW5jKG5hbWUpO1xuICAgICAgICBsZXQgdmFsdWUgPSBuYW1lID09PSAndmFsdWUnID8gYXR0clZhbHVlIDogc3RyaW5nVHJpbShhdHRyVmFsdWUpO1xuXG4gICAgICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICAgICAgaG9va0V2ZW50LmF0dHJOYW1lID0gbGNOYW1lO1xuICAgICAgICBob29rRXZlbnQuYXR0clZhbHVlID0gdmFsdWU7XG4gICAgICAgIGhvb2tFdmVudC5rZWVwQXR0ciA9IHRydWU7XG4gICAgICAgIGhvb2tFdmVudC5mb3JjZUtlZXBBdHRyID0gdW5kZWZpbmVkOyAvLyBBbGxvd3MgZGV2ZWxvcGVycyB0byBzZWUgdGhpcyBpcyBhIHByb3BlcnR5IHRoZXkgY2FuIHNldFxuICAgICAgICBfZXhlY3V0ZUhvb2soJ3Vwb25TYW5pdGl6ZUF0dHJpYnV0ZScsIGN1cnJlbnROb2RlLCBob29rRXZlbnQpO1xuICAgICAgICB2YWx1ZSA9IGhvb2tFdmVudC5hdHRyVmFsdWU7XG5cbiAgICAgICAgLyogV29yayBhcm91bmQgYSBzZWN1cml0eSBpc3N1ZSB3aXRoIGNvbW1lbnRzIGluc2lkZSBhdHRyaWJ1dGVzICovXG4gICAgICAgIGlmIChTQUZFX0ZPUl9YTUwgJiYgcmVnRXhwVGVzdCgvKCgtLSE/fF0pPil8PFxcLyhzdHlsZXx0aXRsZSkvaSwgdmFsdWUpKSB7XG4gICAgICAgICAgX3JlbW92ZUF0dHJpYnV0ZShuYW1lLCBjdXJyZW50Tm9kZSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBEaWQgdGhlIGhvb2tzIGFwcHJvdmUgb2YgdGhlIGF0dHJpYnV0ZT8gKi9cbiAgICAgICAgaWYgKGhvb2tFdmVudC5mb3JjZUtlZXBBdHRyKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBSZW1vdmUgYXR0cmlidXRlICovXG4gICAgICAgIF9yZW1vdmVBdHRyaWJ1dGUobmFtZSwgY3VycmVudE5vZGUpO1xuXG4gICAgICAgIC8qIERpZCB0aGUgaG9va3MgYXBwcm92ZSBvZiB0aGUgYXR0cmlidXRlPyAqL1xuICAgICAgICBpZiAoIWhvb2tFdmVudC5rZWVwQXR0cikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogV29yayBhcm91bmQgYSBzZWN1cml0eSBpc3N1ZSBpbiBqUXVlcnkgMy4wICovXG4gICAgICAgIGlmICghQUxMT1dfU0VMRl9DTE9TRV9JTl9BVFRSICYmIHJlZ0V4cFRlc3QoL1xcLz4vaSwgdmFsdWUpKSB7XG4gICAgICAgICAgX3JlbW92ZUF0dHJpYnV0ZShuYW1lLCBjdXJyZW50Tm9kZSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBTYW5pdGl6ZSBhdHRyaWJ1dGUgY29udGVudCB0byBiZSB0ZW1wbGF0ZS1zYWZlICovXG4gICAgICAgIGlmIChTQUZFX0ZPUl9URU1QTEFURVMpIHtcbiAgICAgICAgICBhcnJheUZvckVhY2goW01VU1RBQ0hFX0VYUFIsIEVSQl9FWFBSLCBUTVBMSVRfRVhQUl0sIGV4cHIgPT4ge1xuICAgICAgICAgICAgdmFsdWUgPSBzdHJpbmdSZXBsYWNlKHZhbHVlLCBleHByLCAnICcpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogSXMgYHZhbHVlYCB2YWxpZCBmb3IgdGhpcyBhdHRyaWJ1dGU/ICovXG4gICAgICAgIGNvbnN0IGxjVGFnID0gdHJhbnNmb3JtQ2FzZUZ1bmMoY3VycmVudE5vZGUubm9kZU5hbWUpO1xuICAgICAgICBpZiAoIV9pc1ZhbGlkQXR0cmlidXRlKGxjVGFnLCBsY05hbWUsIHZhbHVlKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogRnVsbCBET00gQ2xvYmJlcmluZyBwcm90ZWN0aW9uIHZpYSBuYW1lc3BhY2UgaXNvbGF0aW9uLFxuICAgICAgICAgKiBQcmVmaXggaWQgYW5kIG5hbWUgYXR0cmlidXRlcyB3aXRoIGB1c2VyLWNvbnRlbnQtYFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKFNBTklUSVpFX05BTUVEX1BST1BTICYmIChsY05hbWUgPT09ICdpZCcgfHwgbGNOYW1lID09PSAnbmFtZScpKSB7XG4gICAgICAgICAgLy8gUmVtb3ZlIHRoZSBhdHRyaWJ1dGUgd2l0aCB0aGlzIHZhbHVlXG4gICAgICAgICAgX3JlbW92ZUF0dHJpYnV0ZShuYW1lLCBjdXJyZW50Tm9kZSk7XG5cbiAgICAgICAgICAvLyBQcmVmaXggdGhlIHZhbHVlIGFuZCBsYXRlciByZS1jcmVhdGUgdGhlIGF0dHJpYnV0ZSB3aXRoIHRoZSBzYW5pdGl6ZWQgdmFsdWVcbiAgICAgICAgICB2YWx1ZSA9IFNBTklUSVpFX05BTUVEX1BST1BTX1BSRUZJWCArIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogSGFuZGxlIGF0dHJpYnV0ZXMgdGhhdCByZXF1aXJlIFRydXN0ZWQgVHlwZXMgKi9cbiAgICAgICAgaWYgKHRydXN0ZWRUeXBlc1BvbGljeSAmJiB0eXBlb2YgdHJ1c3RlZFR5cGVzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdHJ1c3RlZFR5cGVzLmdldEF0dHJpYnV0ZVR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBpZiAobmFtZXNwYWNlVVJJKSA7IGVsc2Uge1xuICAgICAgICAgICAgc3dpdGNoICh0cnVzdGVkVHlwZXMuZ2V0QXR0cmlidXRlVHlwZShsY1RhZywgbGNOYW1lKSkge1xuICAgICAgICAgICAgICBjYXNlICdUcnVzdGVkSFRNTCc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0cnVzdGVkVHlwZXNQb2xpY3kuY3JlYXRlSFRNTCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgJ1RydXN0ZWRTY3JpcHRVUkwnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gdHJ1c3RlZFR5cGVzUG9saWN5LmNyZWF0ZVNjcmlwdFVSTCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogSGFuZGxlIGludmFsaWQgZGF0YS0qIGF0dHJpYnV0ZSBzZXQgYnkgdHJ5LWNhdGNoaW5nIGl0ICovXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKG5hbWVzcGFjZVVSSSkge1xuICAgICAgICAgICAgY3VycmVudE5vZGUuc2V0QXR0cmlidXRlTlMobmFtZXNwYWNlVVJJLCBuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8qIEZhbGxiYWNrIHRvIHNldEF0dHJpYnV0ZSgpIGZvciBicm93c2VyLXVucmVjb2duaXplZCBuYW1lc3BhY2VzIGUuZy4gXCJ4LXNjaGVtYVwiLiAqL1xuICAgICAgICAgICAgY3VycmVudE5vZGUuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKF9pc0Nsb2JiZXJlZChjdXJyZW50Tm9kZSkpIHtcbiAgICAgICAgICAgIF9mb3JjZVJlbW92ZShjdXJyZW50Tm9kZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFycmF5UG9wKERPTVB1cmlmeS5yZW1vdmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgICB9XG5cbiAgICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICAgIF9leGVjdXRlSG9vaygnYWZ0ZXJTYW5pdGl6ZUF0dHJpYnV0ZXMnLCBjdXJyZW50Tm9kZSwgbnVsbCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIF9zYW5pdGl6ZVNoYWRvd0RPTVxuICAgICAqXG4gICAgICogQHBhcmFtICB7RG9jdW1lbnRGcmFnbWVudH0gZnJhZ21lbnQgdG8gaXRlcmF0ZSBvdmVyIHJlY3Vyc2l2ZWx5XG4gICAgICovXG4gICAgY29uc3QgX3Nhbml0aXplU2hhZG93RE9NID0gZnVuY3Rpb24gX3Nhbml0aXplU2hhZG93RE9NKGZyYWdtZW50KSB7XG4gICAgICBsZXQgc2hhZG93Tm9kZSA9IG51bGw7XG4gICAgICBjb25zdCBzaGFkb3dJdGVyYXRvciA9IF9jcmVhdGVOb2RlSXRlcmF0b3IoZnJhZ21lbnQpO1xuXG4gICAgICAvKiBFeGVjdXRlIGEgaG9vayBpZiBwcmVzZW50ICovXG4gICAgICBfZXhlY3V0ZUhvb2soJ2JlZm9yZVNhbml0aXplU2hhZG93RE9NJywgZnJhZ21lbnQsIG51bGwpO1xuICAgICAgd2hpbGUgKHNoYWRvd05vZGUgPSBzaGFkb3dJdGVyYXRvci5uZXh0Tm9kZSgpKSB7XG4gICAgICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICAgICAgX2V4ZWN1dGVIb29rKCd1cG9uU2FuaXRpemVTaGFkb3dOb2RlJywgc2hhZG93Tm9kZSwgbnVsbCk7XG5cbiAgICAgICAgLyogU2FuaXRpemUgdGFncyBhbmQgZWxlbWVudHMgKi9cbiAgICAgICAgaWYgKF9zYW5pdGl6ZUVsZW1lbnRzKHNoYWRvd05vZGUpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBEZWVwIHNoYWRvdyBET00gZGV0ZWN0ZWQgKi9cbiAgICAgICAgaWYgKHNoYWRvd05vZGUuY29udGVudCBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpIHtcbiAgICAgICAgICBfc2FuaXRpemVTaGFkb3dET00oc2hhZG93Tm9kZS5jb250ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIENoZWNrIGF0dHJpYnV0ZXMsIHNhbml0aXplIGlmIG5lY2Vzc2FyeSAqL1xuICAgICAgICBfc2FuaXRpemVBdHRyaWJ1dGVzKHNoYWRvd05vZGUpO1xuICAgICAgfVxuXG4gICAgICAvKiBFeGVjdXRlIGEgaG9vayBpZiBwcmVzZW50ICovXG4gICAgICBfZXhlY3V0ZUhvb2soJ2FmdGVyU2FuaXRpemVTaGFkb3dET00nLCBmcmFnbWVudCwgbnVsbCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNhbml0aXplXG4gICAgICogUHVibGljIG1ldGhvZCBwcm92aWRpbmcgY29yZSBzYW5pdGF0aW9uIGZ1bmN0aW9uYWxpdHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfE5vZGV9IGRpcnR5IHN0cmluZyBvciBET00gbm9kZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjZmcgb2JqZWN0XG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgICBET01QdXJpZnkuc2FuaXRpemUgPSBmdW5jdGlvbiAoZGlydHkpIHtcbiAgICAgIGxldCBjZmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgICAgbGV0IGJvZHkgPSBudWxsO1xuICAgICAgbGV0IGltcG9ydGVkTm9kZSA9IG51bGw7XG4gICAgICBsZXQgY3VycmVudE5vZGUgPSBudWxsO1xuICAgICAgbGV0IHJldHVybk5vZGUgPSBudWxsO1xuICAgICAgLyogTWFrZSBzdXJlIHdlIGhhdmUgYSBzdHJpbmcgdG8gc2FuaXRpemUuXG4gICAgICAgIERPIE5PVCByZXR1cm4gZWFybHksIGFzIHRoaXMgd2lsbCByZXR1cm4gdGhlIHdyb25nIHR5cGUgaWZcbiAgICAgICAgdGhlIHVzZXIgaGFzIHJlcXVlc3RlZCBhIERPTSBvYmplY3QgcmF0aGVyIHRoYW4gYSBzdHJpbmcgKi9cbiAgICAgIElTX0VNUFRZX0lOUFVUID0gIWRpcnR5O1xuICAgICAgaWYgKElTX0VNUFRZX0lOUFVUKSB7XG4gICAgICAgIGRpcnR5ID0gJzwhLS0+JztcbiAgICAgIH1cblxuICAgICAgLyogU3RyaW5naWZ5LCBpbiBjYXNlIGRpcnR5IGlzIGFuIG9iamVjdCAqL1xuICAgICAgaWYgKHR5cGVvZiBkaXJ0eSAhPT0gJ3N0cmluZycgJiYgIV9pc05vZGUoZGlydHkpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGlydHkudG9TdHJpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBkaXJ0eSA9IGRpcnR5LnRvU3RyaW5nKCk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBkaXJ0eSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnJvckNyZWF0ZSgnZGlydHkgaXMgbm90IGEgc3RyaW5nLCBhYm9ydGluZycpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyB0eXBlRXJyb3JDcmVhdGUoJ3RvU3RyaW5nIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyogUmV0dXJuIGRpcnR5IEhUTUwgaWYgRE9NUHVyaWZ5IGNhbm5vdCBydW4gKi9cbiAgICAgIGlmICghRE9NUHVyaWZ5LmlzU3VwcG9ydGVkKSB7XG4gICAgICAgIHJldHVybiBkaXJ0eTtcbiAgICAgIH1cblxuICAgICAgLyogQXNzaWduIGNvbmZpZyB2YXJzICovXG4gICAgICBpZiAoIVNFVF9DT05GSUcpIHtcbiAgICAgICAgX3BhcnNlQ29uZmlnKGNmZyk7XG4gICAgICB9XG5cbiAgICAgIC8qIENsZWFuIHVwIHJlbW92ZWQgZWxlbWVudHMgKi9cbiAgICAgIERPTVB1cmlmeS5yZW1vdmVkID0gW107XG5cbiAgICAgIC8qIENoZWNrIGlmIGRpcnR5IGlzIGNvcnJlY3RseSB0eXBlZCBmb3IgSU5fUExBQ0UgKi9cbiAgICAgIGlmICh0eXBlb2YgZGlydHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIElOX1BMQUNFID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoSU5fUExBQ0UpIHtcbiAgICAgICAgLyogRG8gc29tZSBlYXJseSBwcmUtc2FuaXRpemF0aW9uIHRvIGF2b2lkIHVuc2FmZSByb290IG5vZGVzICovXG4gICAgICAgIGlmIChkaXJ0eS5ub2RlTmFtZSkge1xuICAgICAgICAgIGNvbnN0IHRhZ05hbWUgPSB0cmFuc2Zvcm1DYXNlRnVuYyhkaXJ0eS5ub2RlTmFtZSk7XG4gICAgICAgICAgaWYgKCFBTExPV0VEX1RBR1NbdGFnTmFtZV0gfHwgRk9SQklEX1RBR1NbdGFnTmFtZV0pIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnJvckNyZWF0ZSgncm9vdCBub2RlIGlzIGZvcmJpZGRlbiBhbmQgY2Fubm90IGJlIHNhbml0aXplZCBpbi1wbGFjZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChkaXJ0eSBpbnN0YW5jZW9mIE5vZGUpIHtcbiAgICAgICAgLyogSWYgZGlydHkgaXMgYSBET00gZWxlbWVudCwgYXBwZW5kIHRvIGFuIGVtcHR5IGRvY3VtZW50IHRvIGF2b2lkXG4gICAgICAgICAgIGVsZW1lbnRzIGJlaW5nIHN0cmlwcGVkIGJ5IHRoZSBwYXJzZXIgKi9cbiAgICAgICAgYm9keSA9IF9pbml0RG9jdW1lbnQoJzwhLS0tLT4nKTtcbiAgICAgICAgaW1wb3J0ZWROb2RlID0gYm9keS5vd25lckRvY3VtZW50LmltcG9ydE5vZGUoZGlydHksIHRydWUpO1xuICAgICAgICBpZiAoaW1wb3J0ZWROb2RlLm5vZGVUeXBlID09PSBOT0RFX1RZUEUuZWxlbWVudCAmJiBpbXBvcnRlZE5vZGUubm9kZU5hbWUgPT09ICdCT0RZJykge1xuICAgICAgICAgIC8qIE5vZGUgaXMgYWxyZWFkeSBhIGJvZHksIHVzZSBhcyBpcyAqL1xuICAgICAgICAgIGJvZHkgPSBpbXBvcnRlZE5vZGU7XG4gICAgICAgIH0gZWxzZSBpZiAoaW1wb3J0ZWROb2RlLm5vZGVOYW1lID09PSAnSFRNTCcpIHtcbiAgICAgICAgICBib2R5ID0gaW1wb3J0ZWROb2RlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL3ByZWZlci1kb20tbm9kZS1hcHBlbmRcbiAgICAgICAgICBib2R5LmFwcGVuZENoaWxkKGltcG9ydGVkTm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qIEV4aXQgZGlyZWN0bHkgaWYgd2UgaGF2ZSBub3RoaW5nIHRvIGRvICovXG4gICAgICAgIGlmICghUkVUVVJOX0RPTSAmJiAhU0FGRV9GT1JfVEVNUExBVEVTICYmICFXSE9MRV9ET0NVTUVOVCAmJlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9wcmVmZXItaW5jbHVkZXNcbiAgICAgICAgZGlydHkuaW5kZXhPZignPCcpID09PSAtMSkge1xuICAgICAgICAgIHJldHVybiB0cnVzdGVkVHlwZXNQb2xpY3kgJiYgUkVUVVJOX1RSVVNURURfVFlQRSA/IHRydXN0ZWRUeXBlc1BvbGljeS5jcmVhdGVIVE1MKGRpcnR5KSA6IGRpcnR5O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogSW5pdGlhbGl6ZSB0aGUgZG9jdW1lbnQgdG8gd29yayBvbiAqL1xuICAgICAgICBib2R5ID0gX2luaXREb2N1bWVudChkaXJ0eSk7XG5cbiAgICAgICAgLyogQ2hlY2sgd2UgaGF2ZSBhIERPTSBub2RlIGZyb20gdGhlIGRhdGEgKi9cbiAgICAgICAgaWYgKCFib2R5KSB7XG4gICAgICAgICAgcmV0dXJuIFJFVFVSTl9ET00gPyBudWxsIDogUkVUVVJOX1RSVVNURURfVFlQRSA/IGVtcHR5SFRNTCA6ICcnO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8qIFJlbW92ZSBmaXJzdCBlbGVtZW50IG5vZGUgKG91cnMpIGlmIEZPUkNFX0JPRFkgaXMgc2V0ICovXG4gICAgICBpZiAoYm9keSAmJiBGT1JDRV9CT0RZKSB7XG4gICAgICAgIF9mb3JjZVJlbW92ZShib2R5LmZpcnN0Q2hpbGQpO1xuICAgICAgfVxuXG4gICAgICAvKiBHZXQgbm9kZSBpdGVyYXRvciAqL1xuICAgICAgY29uc3Qgbm9kZUl0ZXJhdG9yID0gX2NyZWF0ZU5vZGVJdGVyYXRvcihJTl9QTEFDRSA/IGRpcnR5IDogYm9keSk7XG5cbiAgICAgIC8qIE5vdyBzdGFydCBpdGVyYXRpbmcgb3ZlciB0aGUgY3JlYXRlZCBkb2N1bWVudCAqL1xuICAgICAgd2hpbGUgKGN1cnJlbnROb2RlID0gbm9kZUl0ZXJhdG9yLm5leHROb2RlKCkpIHtcbiAgICAgICAgLyogU2FuaXRpemUgdGFncyBhbmQgZWxlbWVudHMgKi9cbiAgICAgICAgaWYgKF9zYW5pdGl6ZUVsZW1lbnRzKGN1cnJlbnROb2RlKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogU2hhZG93IERPTSBkZXRlY3RlZCwgc2FuaXRpemUgaXQgKi9cbiAgICAgICAgaWYgKGN1cnJlbnROb2RlLmNvbnRlbnQgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KSB7XG4gICAgICAgICAgX3Nhbml0aXplU2hhZG93RE9NKGN1cnJlbnROb2RlLmNvbnRlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogQ2hlY2sgYXR0cmlidXRlcywgc2FuaXRpemUgaWYgbmVjZXNzYXJ5ICovXG4gICAgICAgIF9zYW5pdGl6ZUF0dHJpYnV0ZXMoY3VycmVudE5vZGUpO1xuICAgICAgfVxuXG4gICAgICAvKiBJZiB3ZSBzYW5pdGl6ZWQgYGRpcnR5YCBpbi1wbGFjZSwgcmV0dXJuIGl0LiAqL1xuICAgICAgaWYgKElOX1BMQUNFKSB7XG4gICAgICAgIHJldHVybiBkaXJ0eTtcbiAgICAgIH1cblxuICAgICAgLyogUmV0dXJuIHNhbml0aXplZCBzdHJpbmcgb3IgRE9NICovXG4gICAgICBpZiAoUkVUVVJOX0RPTSkge1xuICAgICAgICBpZiAoUkVUVVJOX0RPTV9GUkFHTUVOVCkge1xuICAgICAgICAgIHJldHVybk5vZGUgPSBjcmVhdGVEb2N1bWVudEZyYWdtZW50LmNhbGwoYm9keS5vd25lckRvY3VtZW50KTtcbiAgICAgICAgICB3aGlsZSAoYm9keS5maXJzdENoaWxkKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9wcmVmZXItZG9tLW5vZGUtYXBwZW5kXG4gICAgICAgICAgICByZXR1cm5Ob2RlLmFwcGVuZENoaWxkKGJvZHkuZmlyc3RDaGlsZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybk5vZGUgPSBib2R5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChBTExPV0VEX0FUVFIuc2hhZG93cm9vdCB8fCBBTExPV0VEX0FUVFIuc2hhZG93cm9vdG1vZGUpIHtcbiAgICAgICAgICAvKlxuICAgICAgICAgICAgQWRvcHROb2RlKCkgaXMgbm90IHVzZWQgYmVjYXVzZSBpbnRlcm5hbCBzdGF0ZSBpcyBub3QgcmVzZXRcbiAgICAgICAgICAgIChlLmcuIHRoZSBwYXN0IG5hbWVzIG1hcCBvZiBhIEhUTUxGb3JtRWxlbWVudCksIHRoaXMgaXMgc2FmZVxuICAgICAgICAgICAgaW4gdGhlb3J5IGJ1dCB3ZSB3b3VsZCByYXRoZXIgbm90IHJpc2sgYW5vdGhlciBhdHRhY2sgdmVjdG9yLlxuICAgICAgICAgICAgVGhlIHN0YXRlIHRoYXQgaXMgY2xvbmVkIGJ5IGltcG9ydE5vZGUoKSBpcyBleHBsaWNpdGx5IGRlZmluZWRcbiAgICAgICAgICAgIGJ5IHRoZSBzcGVjcy5cbiAgICAgICAgICAqL1xuICAgICAgICAgIHJldHVybk5vZGUgPSBpbXBvcnROb2RlLmNhbGwob3JpZ2luYWxEb2N1bWVudCwgcmV0dXJuTm9kZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldHVybk5vZGU7XG4gICAgICB9XG4gICAgICBsZXQgc2VyaWFsaXplZEhUTUwgPSBXSE9MRV9ET0NVTUVOVCA/IGJvZHkub3V0ZXJIVE1MIDogYm9keS5pbm5lckhUTUw7XG5cbiAgICAgIC8qIFNlcmlhbGl6ZSBkb2N0eXBlIGlmIGFsbG93ZWQgKi9cbiAgICAgIGlmIChXSE9MRV9ET0NVTUVOVCAmJiBBTExPV0VEX1RBR1NbJyFkb2N0eXBlJ10gJiYgYm9keS5vd25lckRvY3VtZW50ICYmIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlICYmIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUgJiYgcmVnRXhwVGVzdChET0NUWVBFX05BTUUsIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUpKSB7XG4gICAgICAgIHNlcmlhbGl6ZWRIVE1MID0gJzwhRE9DVFlQRSAnICsgYm9keS5vd25lckRvY3VtZW50LmRvY3R5cGUubmFtZSArICc+XFxuJyArIHNlcmlhbGl6ZWRIVE1MO1xuICAgICAgfVxuXG4gICAgICAvKiBTYW5pdGl6ZSBmaW5hbCBzdHJpbmcgdGVtcGxhdGUtc2FmZSAqL1xuICAgICAgaWYgKFNBRkVfRk9SX1RFTVBMQVRFUykge1xuICAgICAgICBhcnJheUZvckVhY2goW01VU1RBQ0hFX0VYUFIsIEVSQl9FWFBSLCBUTVBMSVRfRVhQUl0sIGV4cHIgPT4ge1xuICAgICAgICAgIHNlcmlhbGl6ZWRIVE1MID0gc3RyaW5nUmVwbGFjZShzZXJpYWxpemVkSFRNTCwgZXhwciwgJyAnKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1c3RlZFR5cGVzUG9saWN5ICYmIFJFVFVSTl9UUlVTVEVEX1RZUEUgPyB0cnVzdGVkVHlwZXNQb2xpY3kuY3JlYXRlSFRNTChzZXJpYWxpemVkSFRNTCkgOiBzZXJpYWxpemVkSFRNTDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUHVibGljIG1ldGhvZCB0byBzZXQgdGhlIGNvbmZpZ3VyYXRpb24gb25jZVxuICAgICAqIHNldENvbmZpZ1xuICAgICAqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGNmZyBjb25maWd1cmF0aW9uIG9iamVjdFxuICAgICAqL1xuICAgIERPTVB1cmlmeS5zZXRDb25maWcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBsZXQgY2ZnID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIF9wYXJzZUNvbmZpZyhjZmcpO1xuICAgICAgU0VUX0NPTkZJRyA9IHRydWU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFB1YmxpYyBtZXRob2QgdG8gcmVtb3ZlIHRoZSBjb25maWd1cmF0aW9uXG4gICAgICogY2xlYXJDb25maWdcbiAgICAgKlxuICAgICAqL1xuICAgIERPTVB1cmlmeS5jbGVhckNvbmZpZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIENPTkZJRyA9IG51bGw7XG4gICAgICBTRVRfQ09ORklHID0gZmFsc2U7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFB1YmxpYyBtZXRob2QgdG8gY2hlY2sgaWYgYW4gYXR0cmlidXRlIHZhbHVlIGlzIHZhbGlkLlxuICAgICAqIFVzZXMgbGFzdCBzZXQgY29uZmlnLCBpZiBhbnkuIE90aGVyd2lzZSwgdXNlcyBjb25maWcgZGVmYXVsdHMuXG4gICAgICogaXNWYWxpZEF0dHJpYnV0ZVxuICAgICAqXG4gICAgICogQHBhcmFtICB7U3RyaW5nfSB0YWcgVGFnIG5hbWUgb2YgY29udGFpbmluZyBlbGVtZW50LlxuICAgICAqIEBwYXJhbSAge1N0cmluZ30gYXR0ciBBdHRyaWJ1dGUgbmFtZS5cbiAgICAgKiBAcGFyYW0gIHtTdHJpbmd9IHZhbHVlIEF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKiBAcmV0dXJuIHtCb29sZWFufSBSZXR1cm5zIHRydWUgaWYgYHZhbHVlYCBpcyB2YWxpZC4gT3RoZXJ3aXNlLCByZXR1cm5zIGZhbHNlLlxuICAgICAqL1xuICAgIERPTVB1cmlmeS5pc1ZhbGlkQXR0cmlidXRlID0gZnVuY3Rpb24gKHRhZywgYXR0ciwgdmFsdWUpIHtcbiAgICAgIC8qIEluaXRpYWxpemUgc2hhcmVkIGNvbmZpZyB2YXJzIGlmIG5lY2Vzc2FyeS4gKi9cbiAgICAgIGlmICghQ09ORklHKSB7XG4gICAgICAgIF9wYXJzZUNvbmZpZyh7fSk7XG4gICAgICB9XG4gICAgICBjb25zdCBsY1RhZyA9IHRyYW5zZm9ybUNhc2VGdW5jKHRhZyk7XG4gICAgICBjb25zdCBsY05hbWUgPSB0cmFuc2Zvcm1DYXNlRnVuYyhhdHRyKTtcbiAgICAgIHJldHVybiBfaXNWYWxpZEF0dHJpYnV0ZShsY1RhZywgbGNOYW1lLCB2YWx1ZSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFkZEhvb2tcbiAgICAgKiBQdWJsaWMgbWV0aG9kIHRvIGFkZCBET01QdXJpZnkgaG9va3NcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBlbnRyeVBvaW50IGVudHJ5IHBvaW50IGZvciB0aGUgaG9vayB0byBhZGRcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBob29rRnVuY3Rpb24gZnVuY3Rpb24gdG8gZXhlY3V0ZVxuICAgICAqL1xuICAgIERPTVB1cmlmeS5hZGRIb29rID0gZnVuY3Rpb24gKGVudHJ5UG9pbnQsIGhvb2tGdW5jdGlvbikge1xuICAgICAgaWYgKHR5cGVvZiBob29rRnVuY3Rpb24gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaG9va3NbZW50cnlQb2ludF0gPSBob29rc1tlbnRyeVBvaW50XSB8fCBbXTtcbiAgICAgIGFycmF5UHVzaChob29rc1tlbnRyeVBvaW50XSwgaG9va0Z1bmN0aW9uKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlSG9va1xuICAgICAqIFB1YmxpYyBtZXRob2QgdG8gcmVtb3ZlIGEgRE9NUHVyaWZ5IGhvb2sgYXQgYSBnaXZlbiBlbnRyeVBvaW50XG4gICAgICogKHBvcHMgaXQgZnJvbSB0aGUgc3RhY2sgb2YgaG9va3MgaWYgbW9yZSBhcmUgcHJlc2VudClcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBlbnRyeVBvaW50IGVudHJ5IHBvaW50IGZvciB0aGUgaG9vayB0byByZW1vdmVcbiAgICAgKiBAcmV0dXJuIHtGdW5jdGlvbn0gcmVtb3ZlZChwb3BwZWQpIGhvb2tcbiAgICAgKi9cbiAgICBET01QdXJpZnkucmVtb3ZlSG9vayA9IGZ1bmN0aW9uIChlbnRyeVBvaW50KSB7XG4gICAgICBpZiAoaG9va3NbZW50cnlQb2ludF0pIHtcbiAgICAgICAgcmV0dXJuIGFycmF5UG9wKGhvb2tzW2VudHJ5UG9pbnRdKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlSG9va3NcbiAgICAgKiBQdWJsaWMgbWV0aG9kIHRvIHJlbW92ZSBhbGwgRE9NUHVyaWZ5IGhvb2tzIGF0IGEgZ2l2ZW4gZW50cnlQb2ludFxuICAgICAqXG4gICAgICogQHBhcmFtICB7U3RyaW5nfSBlbnRyeVBvaW50IGVudHJ5IHBvaW50IGZvciB0aGUgaG9va3MgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgRE9NUHVyaWZ5LnJlbW92ZUhvb2tzID0gZnVuY3Rpb24gKGVudHJ5UG9pbnQpIHtcbiAgICAgIGlmIChob29rc1tlbnRyeVBvaW50XSkge1xuICAgICAgICBob29rc1tlbnRyeVBvaW50XSA9IFtdO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVBbGxIb29rc1xuICAgICAqIFB1YmxpYyBtZXRob2QgdG8gcmVtb3ZlIGFsbCBET01QdXJpZnkgaG9va3NcbiAgICAgKi9cbiAgICBET01QdXJpZnkucmVtb3ZlQWxsSG9va3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBob29rcyA9IHt9O1xuICAgIH07XG4gICAgcmV0dXJuIERPTVB1cmlmeTtcbiAgfVxuICB2YXIgcHVyaWZ5ID0gY3JlYXRlRE9NUHVyaWZ5KCk7XG5cbiAgcmV0dXJuIHB1cmlmeTtcblxufSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHVyaWZ5LmpzLm1hcFxuIiwKICAgICIvKiBJTVBPUlQgKi9cbi8qIE1BSU4gKi9cbmNvbnN0IENoYW5uZWwgPSB7XG4gICAgLyogQ0xBTVAgKi9cbiAgICBtaW46IHtcbiAgICAgICAgcjogMCxcbiAgICAgICAgZzogMCxcbiAgICAgICAgYjogMCxcbiAgICAgICAgczogMCxcbiAgICAgICAgbDogMCxcbiAgICAgICAgYTogMFxuICAgIH0sXG4gICAgbWF4OiB7XG4gICAgICAgIHI6IDI1NSxcbiAgICAgICAgZzogMjU1LFxuICAgICAgICBiOiAyNTUsXG4gICAgICAgIGg6IDM2MCxcbiAgICAgICAgczogMTAwLFxuICAgICAgICBsOiAxMDAsXG4gICAgICAgIGE6IDFcbiAgICB9LFxuICAgIGNsYW1wOiB7XG4gICAgICAgIHI6IChyKSA9PiByID49IDI1NSA/IDI1NSA6IChyIDwgMCA/IDAgOiByKSxcbiAgICAgICAgZzogKGcpID0+IGcgPj0gMjU1ID8gMjU1IDogKGcgPCAwID8gMCA6IGcpLFxuICAgICAgICBiOiAoYikgPT4gYiA+PSAyNTUgPyAyNTUgOiAoYiA8IDAgPyAwIDogYiksXG4gICAgICAgIGg6IChoKSA9PiBoICUgMzYwLFxuICAgICAgICBzOiAocykgPT4gcyA+PSAxMDAgPyAxMDAgOiAocyA8IDAgPyAwIDogcyksXG4gICAgICAgIGw6IChsKSA9PiBsID49IDEwMCA/IDEwMCA6IChsIDwgMCA/IDAgOiBsKSxcbiAgICAgICAgYTogKGEpID0+IGEgPj0gMSA/IDEgOiAoYSA8IDAgPyAwIDogYSlcbiAgICB9LFxuICAgIC8qIENPTlZFUlNJT04gKi9cbiAgICAvL1NPVVJDRTogaHR0cHM6Ly9wbGFuZXRjYWxjLmNvbS83Nzc5XG4gICAgdG9MaW5lYXI6IChjKSA9PiB7XG4gICAgICAgIGNvbnN0IG4gPSBjIC8gMjU1O1xuICAgICAgICByZXR1cm4gYyA+IC4wMzkyOCA/IE1hdGgucG93KCgobiArIC4wNTUpIC8gMS4wNTUpLCAyLjQpIDogbiAvIDEyLjkyO1xuICAgIH0sXG4gICAgLy9TT1VSQ0U6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL21qYWNrc29uLzUzMTEyNTZcbiAgICBodWUycmdiOiAocCwgcSwgdCkgPT4ge1xuICAgICAgICBpZiAodCA8IDApXG4gICAgICAgICAgICB0ICs9IDE7XG4gICAgICAgIGlmICh0ID4gMSlcbiAgICAgICAgICAgIHQgLT0gMTtcbiAgICAgICAgaWYgKHQgPCAxIC8gNilcbiAgICAgICAgICAgIHJldHVybiBwICsgKHEgLSBwKSAqIDYgKiB0O1xuICAgICAgICBpZiAodCA8IDEgLyAyKVxuICAgICAgICAgICAgcmV0dXJuIHE7XG4gICAgICAgIGlmICh0IDwgMiAvIDMpXG4gICAgICAgICAgICByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0KSAqIDY7XG4gICAgICAgIHJldHVybiBwO1xuICAgIH0sXG4gICAgaHNsMnJnYjogKHsgaCwgcywgbCB9LCBjaGFubmVsKSA9PiB7XG4gICAgICAgIGlmICghcylcbiAgICAgICAgICAgIHJldHVybiBsICogMi41NTsgLy8gQWNocm9tYXRpY1xuICAgICAgICBoIC89IDM2MDtcbiAgICAgICAgcyAvPSAxMDA7XG4gICAgICAgIGwgLz0gMTAwO1xuICAgICAgICBjb25zdCBxID0gKGwgPCAuNSkgPyBsICogKDEgKyBzKSA6IChsICsgcykgLSAobCAqIHMpO1xuICAgICAgICBjb25zdCBwID0gMiAqIGwgLSBxO1xuICAgICAgICBzd2l0Y2ggKGNoYW5uZWwpIHtcbiAgICAgICAgICAgIGNhc2UgJ3InOiByZXR1cm4gQ2hhbm5lbC5odWUycmdiKHAsIHEsIGggKyAxIC8gMykgKiAyNTU7XG4gICAgICAgICAgICBjYXNlICdnJzogcmV0dXJuIENoYW5uZWwuaHVlMnJnYihwLCBxLCBoKSAqIDI1NTtcbiAgICAgICAgICAgIGNhc2UgJ2InOiByZXR1cm4gQ2hhbm5lbC5odWUycmdiKHAsIHEsIGggLSAxIC8gMykgKiAyNTU7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHJnYjJoc2w6ICh7IHIsIGcsIGIgfSwgY2hhbm5lbCkgPT4ge1xuICAgICAgICByIC89IDI1NTtcbiAgICAgICAgZyAvPSAyNTU7XG4gICAgICAgIGIgLz0gMjU1O1xuICAgICAgICBjb25zdCBtYXggPSBNYXRoLm1heChyLCBnLCBiKTtcbiAgICAgICAgY29uc3QgbWluID0gTWF0aC5taW4ociwgZywgYik7XG4gICAgICAgIGNvbnN0IGwgPSAobWF4ICsgbWluKSAvIDI7XG4gICAgICAgIGlmIChjaGFubmVsID09PSAnbCcpXG4gICAgICAgICAgICByZXR1cm4gbCAqIDEwMDtcbiAgICAgICAgaWYgKG1heCA9PT0gbWluKVxuICAgICAgICAgICAgcmV0dXJuIDA7IC8vIEFjaHJvbWF0aWNcbiAgICAgICAgY29uc3QgZCA9IG1heCAtIG1pbjtcbiAgICAgICAgY29uc3QgcyA9IChsID4gLjUpID8gZCAvICgyIC0gbWF4IC0gbWluKSA6IGQgLyAobWF4ICsgbWluKTtcbiAgICAgICAgaWYgKGNoYW5uZWwgPT09ICdzJylcbiAgICAgICAgICAgIHJldHVybiBzICogMTAwO1xuICAgICAgICBzd2l0Y2ggKG1heCkge1xuICAgICAgICAgICAgY2FzZSByOiByZXR1cm4gKChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApKSAqIDYwO1xuICAgICAgICAgICAgY2FzZSBnOiByZXR1cm4gKChiIC0gcikgLyBkICsgMikgKiA2MDtcbiAgICAgICAgICAgIGNhc2UgYjogcmV0dXJuICgociAtIGcpIC8gZCArIDQpICogNjA7XG4gICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gLTE7IC8vVFNDOiBUeXBlU2NyaXB0IGlzIHN0dXBpZCBhbmQgY29tcGxhaW5zIGlmIHRoZXJlIGlzbid0IHRoaXMgdXNlbGVzcyBkZWZhdWx0IHN0YXRlbWVudFxuICAgICAgICB9XG4gICAgfVxufTtcbi8qIEVYUE9SVCAqL1xuZXhwb3J0IGRlZmF1bHQgQ2hhbm5lbDtcbiIsCiAgICAiLyogTUFJTiAqL1xuY29uc3QgTGFuZyA9IHtcbiAgICAvKiBBUEkgKi9cbiAgICBjbGFtcDogKG51bWJlciwgbG93ZXIsIHVwcGVyKSA9PiB7XG4gICAgICAgIGlmIChsb3dlciA+IHVwcGVyKVxuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKGxvd2VyLCBNYXRoLm1heCh1cHBlciwgbnVtYmVyKSk7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbih1cHBlciwgTWF0aC5tYXgobG93ZXIsIG51bWJlcikpO1xuICAgIH0sXG4gICAgcm91bmQ6IChudW1iZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtYmVyICogMTAwMDAwMDAwMDApIC8gMTAwMDAwMDAwMDA7XG4gICAgfVxufTtcbi8qIEVYUE9SVCAqL1xuZXhwb3J0IGRlZmF1bHQgTGFuZztcbiIsCiAgICAiLyogTUFJTiAqL1xuY29uc3QgVW5pdCA9IHtcbiAgICAvKiBBUEkgKi9cbiAgICBkZWMyaGV4OiAoZGVjKSA9PiB7XG4gICAgICAgIGNvbnN0IGhleCA9IE1hdGgucm91bmQoZGVjKS50b1N0cmluZygxNik7XG4gICAgICAgIHJldHVybiBoZXgubGVuZ3RoID4gMSA/IGhleCA6IGAwJHtoZXh9YDtcbiAgICB9XG59O1xuLyogRVhQT1JUICovXG5leHBvcnQgZGVmYXVsdCBVbml0O1xuIiwKICAgICIvKiBJTVBPUlQgKi9cbmltcG9ydCBjaGFubmVsIGZyb20gJy4vY2hhbm5lbC5qcyc7XG5pbXBvcnQgbGFuZyBmcm9tICcuL2xhbmcuanMnO1xuaW1wb3J0IHVuaXQgZnJvbSAnLi91bml0LmpzJztcbi8qIE1BSU4gKi9cbmNvbnN0IFV0aWxzID0ge1xuICAgIGNoYW5uZWwsXG4gICAgbGFuZyxcbiAgICB1bml0XG59O1xuLyogRVhQT1JUICovXG5leHBvcnQgZGVmYXVsdCBVdGlscztcbiIsCiAgICAiLyogSU1QT1JUICovXG5pbXBvcnQgXyBmcm9tICcuL3V0aWxzL2luZGV4LmpzJztcbi8qIE1BSU4gKi9cbmNvbnN0IERFQzJIRVggPSB7fTtcbmZvciAobGV0IGkgPSAwOyBpIDw9IDI1NTsgaSsrKVxuICAgIERFQzJIRVhbaV0gPSBfLnVuaXQuZGVjMmhleChpKTsgLy8gUG9wdWxhdGluZyBkeW5hbWljYWxseSwgc3RyaWtpbmcgYSBiYWxhbmNlIGJldHdlZW4gY29kZSBzaXplIGFuZCBwZXJmb3JtYW5jZVxuY29uc3QgVFlQRSA9IHtcbiAgICBBTEw6IDAsXG4gICAgUkdCOiAxLFxuICAgIEhTTDogMlxufTtcbi8qIEVYUE9SVCAqL1xuZXhwb3J0IHsgREVDMkhFWCwgVFlQRSB9O1xuIiwKICAgICIvKiBJTVBPUlQgKi9cbmltcG9ydCB7IFRZUEUgfSBmcm9tICcuLi9jb25zdGFudHMuanMnO1xuLyogTUFJTiAqL1xuY2xhc3MgVHlwZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8qIFZBUklBQkxFUyAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBUWVBFLkFMTDtcbiAgICB9XG4gICAgLyogQVBJICovXG4gICAgZ2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlO1xuICAgIH1cbiAgICBzZXQodHlwZSkge1xuICAgICAgICBpZiAodGhpcy50eXBlICYmIHRoaXMudHlwZSAhPT0gdHlwZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNoYW5nZSBib3RoIFJHQiBhbmQgSFNMIGNoYW5uZWxzIGF0IHRoZSBzYW1lIHRpbWUnKTtcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IFRZUEUuQUxMO1xuICAgIH1cbiAgICBpcyh0eXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IHR5cGU7XG4gICAgfVxufVxuLyogRVhQT1JUICovXG5leHBvcnQgZGVmYXVsdCBUeXBlO1xuIiwKICAgICIvKiBJTVBPUlQgKi9cbmltcG9ydCBfIGZyb20gJy4uL3V0aWxzL2luZGV4LmpzJztcbmltcG9ydCBUeXBlIGZyb20gJy4vdHlwZS5qcyc7XG5pbXBvcnQgeyBUWVBFIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJztcbi8qIE1BSU4gKi9cbmNsYXNzIENoYW5uZWxzIHtcbiAgICAvKiBDT05TVFJVQ1RPUiAqL1xuICAgIGNvbnN0cnVjdG9yKGRhdGEsIGNvbG9yKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBjb2xvcjtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7IC8vVFNDXG4gICAgICAgIHRoaXMudHlwZSA9IG5ldyBUeXBlKCk7XG4gICAgfVxuICAgIC8qIEFQSSAqL1xuICAgIHNldChkYXRhLCBjb2xvcikge1xuICAgICAgICB0aGlzLmNvbG9yID0gY29sb3I7XG4gICAgICAgIHRoaXMuY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhOyAvL1RTQ1xuICAgICAgICB0aGlzLnR5cGUudHlwZSA9IFRZUEUuQUxMO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyogSEVMUEVSUyAqL1xuICAgIF9lbnN1cmVIU0woKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGE7XG4gICAgICAgIGNvbnN0IHsgaCwgcywgbCB9ID0gZGF0YTtcbiAgICAgICAgaWYgKGggPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIGRhdGEuaCA9IF8uY2hhbm5lbC5yZ2IyaHNsKGRhdGEsICdoJyk7XG4gICAgICAgIGlmIChzID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICBkYXRhLnMgPSBfLmNoYW5uZWwucmdiMmhzbChkYXRhLCAncycpO1xuICAgICAgICBpZiAobCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgZGF0YS5sID0gXy5jaGFubmVsLnJnYjJoc2woZGF0YSwgJ2wnKTtcbiAgICB9XG4gICAgX2Vuc3VyZVJHQigpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YTtcbiAgICAgICAgY29uc3QgeyByLCBnLCBiIH0gPSBkYXRhO1xuICAgICAgICBpZiAociA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgZGF0YS5yID0gXy5jaGFubmVsLmhzbDJyZ2IoZGF0YSwgJ3InKTtcbiAgICAgICAgaWYgKGcgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIGRhdGEuZyA9IF8uY2hhbm5lbC5oc2wycmdiKGRhdGEsICdnJyk7XG4gICAgICAgIGlmIChiID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICBkYXRhLmIgPSBfLmNoYW5uZWwuaHNsMnJnYihkYXRhLCAnYicpO1xuICAgIH1cbiAgICAvKiBHRVRURVJTICovXG4gICAgZ2V0IHIoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGE7XG4gICAgICAgIGNvbnN0IHIgPSBkYXRhLnI7XG4gICAgICAgIGlmICghdGhpcy50eXBlLmlzKFRZUEUuSFNMKSAmJiByICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgdGhpcy5fZW5zdXJlSFNMKCk7XG4gICAgICAgIHJldHVybiBfLmNoYW5uZWwuaHNsMnJnYihkYXRhLCAncicpO1xuICAgIH1cbiAgICBnZXQgZygpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YTtcbiAgICAgICAgY29uc3QgZyA9IGRhdGEuZztcbiAgICAgICAgaWYgKCF0aGlzLnR5cGUuaXMoVFlQRS5IU0wpICYmIGcgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiBnO1xuICAgICAgICB0aGlzLl9lbnN1cmVIU0woKTtcbiAgICAgICAgcmV0dXJuIF8uY2hhbm5lbC5oc2wycmdiKGRhdGEsICdnJyk7XG4gICAgfVxuICAgIGdldCBiKCkge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICBjb25zdCBiID0gZGF0YS5iO1xuICAgICAgICBpZiAoIXRoaXMudHlwZS5pcyhUWVBFLkhTTCkgJiYgYiAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuIGI7XG4gICAgICAgIHRoaXMuX2Vuc3VyZUhTTCgpO1xuICAgICAgICByZXR1cm4gXy5jaGFubmVsLmhzbDJyZ2IoZGF0YSwgJ2InKTtcbiAgICB9XG4gICAgZ2V0IGgoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGE7XG4gICAgICAgIGNvbnN0IGggPSBkYXRhLmg7XG4gICAgICAgIGlmICghdGhpcy50eXBlLmlzKFRZUEUuUkdCKSAmJiBoICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gaDtcbiAgICAgICAgdGhpcy5fZW5zdXJlUkdCKCk7XG4gICAgICAgIHJldHVybiBfLmNoYW5uZWwucmdiMmhzbChkYXRhLCAnaCcpO1xuICAgIH1cbiAgICBnZXQgcygpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YTtcbiAgICAgICAgY29uc3QgcyA9IGRhdGEucztcbiAgICAgICAgaWYgKCF0aGlzLnR5cGUuaXMoVFlQRS5SR0IpICYmIHMgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiBzO1xuICAgICAgICB0aGlzLl9lbnN1cmVSR0IoKTtcbiAgICAgICAgcmV0dXJuIF8uY2hhbm5lbC5yZ2IyaHNsKGRhdGEsICdzJyk7XG4gICAgfVxuICAgIGdldCBsKCkge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICBjb25zdCBsID0gZGF0YS5sO1xuICAgICAgICBpZiAoIXRoaXMudHlwZS5pcyhUWVBFLlJHQikgJiYgbCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuIGw7XG4gICAgICAgIHRoaXMuX2Vuc3VyZVJHQigpO1xuICAgICAgICByZXR1cm4gXy5jaGFubmVsLnJnYjJoc2woZGF0YSwgJ2wnKTtcbiAgICB9XG4gICAgZ2V0IGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuYTtcbiAgICB9XG4gICAgLyogU0VUVEVSUyAqL1xuICAgIHNldCByKHIpIHtcbiAgICAgICAgdGhpcy50eXBlLnNldChUWVBFLlJHQik7XG4gICAgICAgIHRoaXMuY2hhbmdlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZGF0YS5yID0gcjtcbiAgICB9XG4gICAgc2V0IGcoZykge1xuICAgICAgICB0aGlzLnR5cGUuc2V0KFRZUEUuUkdCKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kYXRhLmcgPSBnO1xuICAgIH1cbiAgICBzZXQgYihiKSB7XG4gICAgICAgIHRoaXMudHlwZS5zZXQoVFlQRS5SR0IpO1xuICAgICAgICB0aGlzLmNoYW5nZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmRhdGEuYiA9IGI7XG4gICAgfVxuICAgIHNldCBoKGgpIHtcbiAgICAgICAgdGhpcy50eXBlLnNldChUWVBFLkhTTCk7XG4gICAgICAgIHRoaXMuY2hhbmdlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZGF0YS5oID0gaDtcbiAgICB9XG4gICAgc2V0IHMocykge1xuICAgICAgICB0aGlzLnR5cGUuc2V0KFRZUEUuSFNMKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kYXRhLnMgPSBzO1xuICAgIH1cbiAgICBzZXQgbChsKSB7XG4gICAgICAgIHRoaXMudHlwZS5zZXQoVFlQRS5IU0wpO1xuICAgICAgICB0aGlzLmNoYW5nZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmRhdGEubCA9IGw7XG4gICAgfVxuICAgIHNldCBhKGEpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kYXRhLmEgPSBhO1xuICAgIH1cbn1cbi8qIEVYUE9SVCAqL1xuZXhwb3J0IGRlZmF1bHQgQ2hhbm5lbHM7XG4iLAogICAgIi8qIElNUE9SVCAqL1xuaW1wb3J0IENoYW5uZWxzIGZyb20gJy4vL2luZGV4LmpzJztcbi8qIE1BSU4gKi9cbmNvbnN0IGNoYW5uZWxzID0gbmV3IENoYW5uZWxzKHsgcjogMCwgZzogMCwgYjogMCwgYTogMCB9LCAndHJhbnNwYXJlbnQnKTtcbi8qIEVYUE9SVCAqL1xuZXhwb3J0IGRlZmF1bHQgY2hhbm5lbHM7XG4iLAogICAgIi8qIElNUE9SVCAqL1xuaW1wb3J0IF8gZnJvbSAnLi4vdXRpbHMvaW5kZXguanMnO1xuaW1wb3J0IENoYW5uZWxzUmV1c2FibGUgZnJvbSAnLi4vY2hhbm5lbHMvcmV1c2FibGUuanMnO1xuaW1wb3J0IHsgREVDMkhFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcyc7XG4vKiBNQUlOICovXG5jb25zdCBIZXggPSB7XG4gICAgLyogVkFSSUFCTEVTICovXG4gICAgcmU6IC9eIygoPzpbYS1mMC05XXsyfSl7Miw0fXxbYS1mMC05XXszfSkkL2ksXG4gICAgLyogQVBJICovXG4gICAgcGFyc2U6IChjb2xvcikgPT4ge1xuICAgICAgICBpZiAoY29sb3IuY2hhckNvZGVBdCgwKSAhPT0gMzUpXG4gICAgICAgICAgICByZXR1cm47IC8vICcjJ1xuICAgICAgICBjb25zdCBtYXRjaCA9IGNvbG9yLm1hdGNoKEhleC5yZSk7XG4gICAgICAgIGlmICghbWF0Y2gpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGhleCA9IG1hdGNoWzFdO1xuICAgICAgICBjb25zdCBkZWMgPSBwYXJzZUludChoZXgsIDE2KTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gaGV4Lmxlbmd0aDtcbiAgICAgICAgY29uc3QgaGFzQWxwaGEgPSBsZW5ndGggJSA0ID09PSAwO1xuICAgICAgICBjb25zdCBpc0Z1bGxMZW5ndGggPSBsZW5ndGggPiA0O1xuICAgICAgICBjb25zdCBtdWx0aXBsaWVyID0gaXNGdWxsTGVuZ3RoID8gMSA6IDE3O1xuICAgICAgICBjb25zdCBiaXRzID0gaXNGdWxsTGVuZ3RoID8gOCA6IDQ7XG4gICAgICAgIGNvbnN0IGJpdHNPZmZzZXQgPSBoYXNBbHBoYSA/IDAgOiAtMTtcbiAgICAgICAgY29uc3QgbWFzayA9IGlzRnVsbExlbmd0aCA/IDI1NSA6IDE1O1xuICAgICAgICByZXR1cm4gQ2hhbm5lbHNSZXVzYWJsZS5zZXQoe1xuICAgICAgICAgICAgcjogKChkZWMgPj4gKGJpdHMgKiAoYml0c09mZnNldCArIDMpKSkgJiBtYXNrKSAqIG11bHRpcGxpZXIsXG4gICAgICAgICAgICBnOiAoKGRlYyA+PiAoYml0cyAqIChiaXRzT2Zmc2V0ICsgMikpKSAmIG1hc2spICogbXVsdGlwbGllcixcbiAgICAgICAgICAgIGI6ICgoZGVjID4+IChiaXRzICogKGJpdHNPZmZzZXQgKyAxKSkpICYgbWFzaykgKiBtdWx0aXBsaWVyLFxuICAgICAgICAgICAgYTogaGFzQWxwaGEgPyAoZGVjICYgbWFzaykgKiBtdWx0aXBsaWVyIC8gMjU1IDogMVxuICAgICAgICB9LCBjb2xvcik7XG4gICAgfSxcbiAgICBzdHJpbmdpZnk6IChjaGFubmVscykgPT4ge1xuICAgICAgICBjb25zdCB7IHIsIGcsIGIsIGEgfSA9IGNoYW5uZWxzO1xuICAgICAgICBpZiAoYSA8IDEpIHsgLy8gI1JSR0dCQkFBXG4gICAgICAgICAgICByZXR1cm4gYCMke0RFQzJIRVhbTWF0aC5yb3VuZChyKV19JHtERUMySEVYW01hdGgucm91bmQoZyldfSR7REVDMkhFWFtNYXRoLnJvdW5kKGIpXX0ke0RFQzJIRVhbTWF0aC5yb3VuZChhICogMjU1KV19YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHsgLy8gI1JSR0dCQlxuICAgICAgICAgICAgcmV0dXJuIGAjJHtERUMySEVYW01hdGgucm91bmQocildfSR7REVDMkhFWFtNYXRoLnJvdW5kKGcpXX0ke0RFQzJIRVhbTWF0aC5yb3VuZChiKV19YDtcbiAgICAgICAgfVxuICAgIH1cbn07XG4vKiBFWFBPUlQgKi9cbmV4cG9ydCBkZWZhdWx0IEhleDtcbiIsCiAgICAiLyogSU1QT1JUICovXG5pbXBvcnQgXyBmcm9tICcuLi91dGlscy9pbmRleC5qcyc7XG5pbXBvcnQgQ2hhbm5lbHNSZXVzYWJsZSBmcm9tICcuLi9jaGFubmVscy9yZXVzYWJsZS5qcyc7XG4vKiBNQUlOICovXG5jb25zdCBIU0wgPSB7XG4gICAgLyogVkFSSUFCTEVTICovXG4gICAgcmU6IC9eaHNsYT9cXChcXHMqPygtPyg/OlxcZCsoPzpcXC5cXGQrKT98KD86XFwuXFxkKykpKD86ZS0/XFxkKyk/KD86ZGVnfGdyYWR8cmFkfHR1cm4pPylcXHMqPyg/Oix8XFxzKVxccyo/KC0/KD86XFxkKyg/OlxcLlxcZCspP3woPzpcXC5cXGQrKSkoPzplLT9cXGQrKT8lKVxccyo/KD86LHxcXHMpXFxzKj8oLT8oPzpcXGQrKD86XFwuXFxkKyk/fCg/OlxcLlxcZCspKSg/OmUtP1xcZCspPyUpKD86XFxzKj8oPzosfFxcLylcXHMqP1xcKz8oLT8oPzpcXGQrKD86XFwuXFxkKyk/fCg/OlxcLlxcZCspKSg/OmUtP1xcZCspPyglKT8pKT9cXHMqP1xcKSQvaSxcbiAgICBodWVSZTogL14oLis/KShkZWd8Z3JhZHxyYWR8dHVybikkL2ksXG4gICAgLyogSEVMUEVSUyAqL1xuICAgIF9odWUyZGVnOiAoaHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gaHVlLm1hdGNoKEhTTC5odWVSZSk7XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgY29uc3QgWywgbnVtYmVyLCB1bml0XSA9IG1hdGNoO1xuICAgICAgICAgICAgc3dpdGNoICh1bml0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZ3JhZCc6IHJldHVybiBfLmNoYW5uZWwuY2xhbXAuaChwYXJzZUZsb2F0KG51bWJlcikgKiAuOSk7XG4gICAgICAgICAgICAgICAgY2FzZSAncmFkJzogcmV0dXJuIF8uY2hhbm5lbC5jbGFtcC5oKHBhcnNlRmxvYXQobnVtYmVyKSAqIDE4MCAvIE1hdGguUEkpO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3R1cm4nOiByZXR1cm4gXy5jaGFubmVsLmNsYW1wLmgocGFyc2VGbG9hdChudW1iZXIpICogMzYwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXy5jaGFubmVsLmNsYW1wLmgocGFyc2VGbG9hdChodWUpKTtcbiAgICB9LFxuICAgIC8qIEFQSSAqL1xuICAgIHBhcnNlOiAoY29sb3IpID0+IHtcbiAgICAgICAgY29uc3QgY2hhckNvZGUgPSBjb2xvci5jaGFyQ29kZUF0KDApO1xuICAgICAgICBpZiAoY2hhckNvZGUgIT09IDEwNCAmJiBjaGFyQ29kZSAhPT0gNzIpXG4gICAgICAgICAgICByZXR1cm47IC8vICdoJy8nSCdcbiAgICAgICAgY29uc3QgbWF0Y2ggPSBjb2xvci5tYXRjaChIU0wucmUpO1xuICAgICAgICBpZiAoIW1hdGNoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBbLCBoLCBzLCBsLCBhLCBpc0FscGhhUGVyY2VudGFnZV0gPSBtYXRjaDtcbiAgICAgICAgcmV0dXJuIENoYW5uZWxzUmV1c2FibGUuc2V0KHtcbiAgICAgICAgICAgIGg6IEhTTC5faHVlMmRlZyhoKSxcbiAgICAgICAgICAgIHM6IF8uY2hhbm5lbC5jbGFtcC5zKHBhcnNlRmxvYXQocykpLFxuICAgICAgICAgICAgbDogXy5jaGFubmVsLmNsYW1wLmwocGFyc2VGbG9hdChsKSksXG4gICAgICAgICAgICBhOiBhID8gXy5jaGFubmVsLmNsYW1wLmEoaXNBbHBoYVBlcmNlbnRhZ2UgPyBwYXJzZUZsb2F0KGEpIC8gMTAwIDogcGFyc2VGbG9hdChhKSkgOiAxXG4gICAgICAgIH0sIGNvbG9yKTtcbiAgICB9LFxuICAgIHN0cmluZ2lmeTogKGNoYW5uZWxzKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgaCwgcywgbCwgYSB9ID0gY2hhbm5lbHM7XG4gICAgICAgIGlmIChhIDwgMSkgeyAvLyBIU0xBXG4gICAgICAgICAgICByZXR1cm4gYGhzbGEoJHtfLmxhbmcucm91bmQoaCl9LCAke18ubGFuZy5yb3VuZChzKX0lLCAke18ubGFuZy5yb3VuZChsKX0lLCAke2F9KWA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7IC8vIEhTTFxuICAgICAgICAgICAgcmV0dXJuIGBoc2woJHtfLmxhbmcucm91bmQoaCl9LCAke18ubGFuZy5yb3VuZChzKX0lLCAke18ubGFuZy5yb3VuZChsKX0lKWA7XG4gICAgICAgIH1cbiAgICB9XG59O1xuLyogRVhQT1JUICovXG5leHBvcnQgZGVmYXVsdCBIU0w7XG4iLAogICAgIi8qIElNUE9SVCAqL1xuaW1wb3J0IEhleCBmcm9tICcuL2hleC5qcyc7XG4vKiBNQUlOICovXG5jb25zdCBLZXl3b3JkID0ge1xuICAgIC8qIFZBUklBQkxFUyAqL1xuICAgIGNvbG9yczoge1xuICAgICAgICBhbGljZWJsdWU6ICcjZjBmOGZmJyxcbiAgICAgICAgYW50aXF1ZXdoaXRlOiAnI2ZhZWJkNycsXG4gICAgICAgIGFxdWE6ICcjMDBmZmZmJyxcbiAgICAgICAgYXF1YW1hcmluZTogJyM3ZmZmZDQnLFxuICAgICAgICBhenVyZTogJyNmMGZmZmYnLFxuICAgICAgICBiZWlnZTogJyNmNWY1ZGMnLFxuICAgICAgICBiaXNxdWU6ICcjZmZlNGM0JyxcbiAgICAgICAgYmxhY2s6ICcjMDAwMDAwJyxcbiAgICAgICAgYmxhbmNoZWRhbG1vbmQ6ICcjZmZlYmNkJyxcbiAgICAgICAgYmx1ZTogJyMwMDAwZmYnLFxuICAgICAgICBibHVldmlvbGV0OiAnIzhhMmJlMicsXG4gICAgICAgIGJyb3duOiAnI2E1MmEyYScsXG4gICAgICAgIGJ1cmx5d29vZDogJyNkZWI4ODcnLFxuICAgICAgICBjYWRldGJsdWU6ICcjNWY5ZWEwJyxcbiAgICAgICAgY2hhcnRyZXVzZTogJyM3ZmZmMDAnLFxuICAgICAgICBjaG9jb2xhdGU6ICcjZDI2OTFlJyxcbiAgICAgICAgY29yYWw6ICcjZmY3ZjUwJyxcbiAgICAgICAgY29ybmZsb3dlcmJsdWU6ICcjNjQ5NWVkJyxcbiAgICAgICAgY29ybnNpbGs6ICcjZmZmOGRjJyxcbiAgICAgICAgY3JpbXNvbjogJyNkYzE0M2MnLFxuICAgICAgICBjeWFuYXF1YTogJyMwMGZmZmYnLFxuICAgICAgICBkYXJrYmx1ZTogJyMwMDAwOGInLFxuICAgICAgICBkYXJrY3lhbjogJyMwMDhiOGInLFxuICAgICAgICBkYXJrZ29sZGVucm9kOiAnI2I4ODYwYicsXG4gICAgICAgIGRhcmtncmF5OiAnI2E5YTlhOScsXG4gICAgICAgIGRhcmtncmVlbjogJyMwMDY0MDAnLFxuICAgICAgICBkYXJrZ3JleTogJyNhOWE5YTknLFxuICAgICAgICBkYXJra2hha2k6ICcjYmRiNzZiJyxcbiAgICAgICAgZGFya21hZ2VudGE6ICcjOGIwMDhiJyxcbiAgICAgICAgZGFya29saXZlZ3JlZW46ICcjNTU2YjJmJyxcbiAgICAgICAgZGFya29yYW5nZTogJyNmZjhjMDAnLFxuICAgICAgICBkYXJrb3JjaGlkOiAnIzk5MzJjYycsXG4gICAgICAgIGRhcmtyZWQ6ICcjOGIwMDAwJyxcbiAgICAgICAgZGFya3NhbG1vbjogJyNlOTk2N2EnLFxuICAgICAgICBkYXJrc2VhZ3JlZW46ICcjOGZiYzhmJyxcbiAgICAgICAgZGFya3NsYXRlYmx1ZTogJyM0ODNkOGInLFxuICAgICAgICBkYXJrc2xhdGVncmF5OiAnIzJmNGY0ZicsXG4gICAgICAgIGRhcmtzbGF0ZWdyZXk6ICcjMmY0ZjRmJyxcbiAgICAgICAgZGFya3R1cnF1b2lzZTogJyMwMGNlZDEnLFxuICAgICAgICBkYXJrdmlvbGV0OiAnIzk0MDBkMycsXG4gICAgICAgIGRlZXBwaW5rOiAnI2ZmMTQ5MycsXG4gICAgICAgIGRlZXBza3libHVlOiAnIzAwYmZmZicsXG4gICAgICAgIGRpbWdyYXk6ICcjNjk2OTY5JyxcbiAgICAgICAgZGltZ3JleTogJyM2OTY5NjknLFxuICAgICAgICBkb2RnZXJibHVlOiAnIzFlOTBmZicsXG4gICAgICAgIGZpcmVicmljazogJyNiMjIyMjInLFxuICAgICAgICBmbG9yYWx3aGl0ZTogJyNmZmZhZjAnLFxuICAgICAgICBmb3Jlc3RncmVlbjogJyMyMjhiMjInLFxuICAgICAgICBmdWNoc2lhOiAnI2ZmMDBmZicsXG4gICAgICAgIGdhaW5zYm9ybzogJyNkY2RjZGMnLFxuICAgICAgICBnaG9zdHdoaXRlOiAnI2Y4ZjhmZicsXG4gICAgICAgIGdvbGQ6ICcjZmZkNzAwJyxcbiAgICAgICAgZ29sZGVucm9kOiAnI2RhYTUyMCcsXG4gICAgICAgIGdyYXk6ICcjODA4MDgwJyxcbiAgICAgICAgZ3JlZW46ICcjMDA4MDAwJyxcbiAgICAgICAgZ3JlZW55ZWxsb3c6ICcjYWRmZjJmJyxcbiAgICAgICAgZ3JleTogJyM4MDgwODAnLFxuICAgICAgICBob25leWRldzogJyNmMGZmZjAnLFxuICAgICAgICBob3RwaW5rOiAnI2ZmNjliNCcsXG4gICAgICAgIGluZGlhbnJlZDogJyNjZDVjNWMnLFxuICAgICAgICBpbmRpZ286ICcjNGIwMDgyJyxcbiAgICAgICAgaXZvcnk6ICcjZmZmZmYwJyxcbiAgICAgICAga2hha2k6ICcjZjBlNjhjJyxcbiAgICAgICAgbGF2ZW5kZXI6ICcjZTZlNmZhJyxcbiAgICAgICAgbGF2ZW5kZXJibHVzaDogJyNmZmYwZjUnLFxuICAgICAgICBsYXduZ3JlZW46ICcjN2NmYzAwJyxcbiAgICAgICAgbGVtb25jaGlmZm9uOiAnI2ZmZmFjZCcsXG4gICAgICAgIGxpZ2h0Ymx1ZTogJyNhZGQ4ZTYnLFxuICAgICAgICBsaWdodGNvcmFsOiAnI2YwODA4MCcsXG4gICAgICAgIGxpZ2h0Y3lhbjogJyNlMGZmZmYnLFxuICAgICAgICBsaWdodGdvbGRlbnJvZHllbGxvdzogJyNmYWZhZDInLFxuICAgICAgICBsaWdodGdyYXk6ICcjZDNkM2QzJyxcbiAgICAgICAgbGlnaHRncmVlbjogJyM5MGVlOTAnLFxuICAgICAgICBsaWdodGdyZXk6ICcjZDNkM2QzJyxcbiAgICAgICAgbGlnaHRwaW5rOiAnI2ZmYjZjMScsXG4gICAgICAgIGxpZ2h0c2FsbW9uOiAnI2ZmYTA3YScsXG4gICAgICAgIGxpZ2h0c2VhZ3JlZW46ICcjMjBiMmFhJyxcbiAgICAgICAgbGlnaHRza3libHVlOiAnIzg3Y2VmYScsXG4gICAgICAgIGxpZ2h0c2xhdGVncmF5OiAnIzc3ODg5OScsXG4gICAgICAgIGxpZ2h0c2xhdGVncmV5OiAnIzc3ODg5OScsXG4gICAgICAgIGxpZ2h0c3RlZWxibHVlOiAnI2IwYzRkZScsXG4gICAgICAgIGxpZ2h0eWVsbG93OiAnI2ZmZmZlMCcsXG4gICAgICAgIGxpbWU6ICcjMDBmZjAwJyxcbiAgICAgICAgbGltZWdyZWVuOiAnIzMyY2QzMicsXG4gICAgICAgIGxpbmVuOiAnI2ZhZjBlNicsXG4gICAgICAgIG1hZ2VudGE6ICcjZmYwMGZmJyxcbiAgICAgICAgbWFyb29uOiAnIzgwMDAwMCcsXG4gICAgICAgIG1lZGl1bWFxdWFtYXJpbmU6ICcjNjZjZGFhJyxcbiAgICAgICAgbWVkaXVtYmx1ZTogJyMwMDAwY2QnLFxuICAgICAgICBtZWRpdW1vcmNoaWQ6ICcjYmE1NWQzJyxcbiAgICAgICAgbWVkaXVtcHVycGxlOiAnIzkzNzBkYicsXG4gICAgICAgIG1lZGl1bXNlYWdyZWVuOiAnIzNjYjM3MScsXG4gICAgICAgIG1lZGl1bXNsYXRlYmx1ZTogJyM3YjY4ZWUnLFxuICAgICAgICBtZWRpdW1zcHJpbmdncmVlbjogJyMwMGZhOWEnLFxuICAgICAgICBtZWRpdW10dXJxdW9pc2U6ICcjNDhkMWNjJyxcbiAgICAgICAgbWVkaXVtdmlvbGV0cmVkOiAnI2M3MTU4NScsXG4gICAgICAgIG1pZG5pZ2h0Ymx1ZTogJyMxOTE5NzAnLFxuICAgICAgICBtaW50Y3JlYW06ICcjZjVmZmZhJyxcbiAgICAgICAgbWlzdHlyb3NlOiAnI2ZmZTRlMScsXG4gICAgICAgIG1vY2Nhc2luOiAnI2ZmZTRiNScsXG4gICAgICAgIG5hdmFqb3doaXRlOiAnI2ZmZGVhZCcsXG4gICAgICAgIG5hdnk6ICcjMDAwMDgwJyxcbiAgICAgICAgb2xkbGFjZTogJyNmZGY1ZTYnLFxuICAgICAgICBvbGl2ZTogJyM4MDgwMDAnLFxuICAgICAgICBvbGl2ZWRyYWI6ICcjNmI4ZTIzJyxcbiAgICAgICAgb3JhbmdlOiAnI2ZmYTUwMCcsXG4gICAgICAgIG9yYW5nZXJlZDogJyNmZjQ1MDAnLFxuICAgICAgICBvcmNoaWQ6ICcjZGE3MGQ2JyxcbiAgICAgICAgcGFsZWdvbGRlbnJvZDogJyNlZWU4YWEnLFxuICAgICAgICBwYWxlZ3JlZW46ICcjOThmYjk4JyxcbiAgICAgICAgcGFsZXR1cnF1b2lzZTogJyNhZmVlZWUnLFxuICAgICAgICBwYWxldmlvbGV0cmVkOiAnI2RiNzA5MycsXG4gICAgICAgIHBhcGF5YXdoaXA6ICcjZmZlZmQ1JyxcbiAgICAgICAgcGVhY2hwdWZmOiAnI2ZmZGFiOScsXG4gICAgICAgIHBlcnU6ICcjY2Q4NTNmJyxcbiAgICAgICAgcGluazogJyNmZmMwY2InLFxuICAgICAgICBwbHVtOiAnI2RkYTBkZCcsXG4gICAgICAgIHBvd2RlcmJsdWU6ICcjYjBlMGU2JyxcbiAgICAgICAgcHVycGxlOiAnIzgwMDA4MCcsXG4gICAgICAgIHJlYmVjY2FwdXJwbGU6ICcjNjYzMzk5JyxcbiAgICAgICAgcmVkOiAnI2ZmMDAwMCcsXG4gICAgICAgIHJvc3licm93bjogJyNiYzhmOGYnLFxuICAgICAgICByb3lhbGJsdWU6ICcjNDE2OWUxJyxcbiAgICAgICAgc2FkZGxlYnJvd246ICcjOGI0NTEzJyxcbiAgICAgICAgc2FsbW9uOiAnI2ZhODA3MicsXG4gICAgICAgIHNhbmR5YnJvd246ICcjZjRhNDYwJyxcbiAgICAgICAgc2VhZ3JlZW46ICcjMmU4YjU3JyxcbiAgICAgICAgc2Vhc2hlbGw6ICcjZmZmNWVlJyxcbiAgICAgICAgc2llbm5hOiAnI2EwNTIyZCcsXG4gICAgICAgIHNpbHZlcjogJyNjMGMwYzAnLFxuICAgICAgICBza3libHVlOiAnIzg3Y2VlYicsXG4gICAgICAgIHNsYXRlYmx1ZTogJyM2YTVhY2QnLFxuICAgICAgICBzbGF0ZWdyYXk6ICcjNzA4MDkwJyxcbiAgICAgICAgc2xhdGVncmV5OiAnIzcwODA5MCcsXG4gICAgICAgIHNub3c6ICcjZmZmYWZhJyxcbiAgICAgICAgc3ByaW5nZ3JlZW46ICcjMDBmZjdmJyxcbiAgICAgICAgdGFuOiAnI2QyYjQ4YycsXG4gICAgICAgIHRlYWw6ICcjMDA4MDgwJyxcbiAgICAgICAgdGhpc3RsZTogJyNkOGJmZDgnLFxuICAgICAgICB0cmFuc3BhcmVudDogJyMwMDAwMDAwMCcsXG4gICAgICAgIHR1cnF1b2lzZTogJyM0MGUwZDAnLFxuICAgICAgICB2aW9sZXQ6ICcjZWU4MmVlJyxcbiAgICAgICAgd2hlYXQ6ICcjZjVkZWIzJyxcbiAgICAgICAgd2hpdGU6ICcjZmZmZmZmJyxcbiAgICAgICAgd2hpdGVzbW9rZTogJyNmNWY1ZjUnLFxuICAgICAgICB5ZWxsb3c6ICcjZmZmZjAwJyxcbiAgICAgICAgeWVsbG93Z3JlZW46ICcjOWFjZDMyJ1xuICAgIH0sXG4gICAgLyogQVBJICovXG4gICAgcGFyc2U6IChjb2xvcikgPT4ge1xuICAgICAgICBjb2xvciA9IGNvbG9yLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGhleCA9IEtleXdvcmQuY29sb3JzW2NvbG9yXTtcbiAgICAgICAgaWYgKCFoZXgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHJldHVybiBIZXgucGFyc2UoaGV4KTtcbiAgICB9LFxuICAgIHN0cmluZ2lmeTogKGNoYW5uZWxzKSA9PiB7XG4gICAgICAgIGNvbnN0IGhleCA9IEhleC5zdHJpbmdpZnkoY2hhbm5lbHMpO1xuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gS2V5d29yZC5jb2xvcnMpIHtcbiAgICAgICAgICAgIGlmIChLZXl3b3JkLmNvbG9yc1tuYW1lXSA9PT0gaGV4KVxuICAgICAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG59O1xuLyogRVhQT1JUICovXG5leHBvcnQgZGVmYXVsdCBLZXl3b3JkO1xuIiwKICAgICIvKiBJTVBPUlQgKi9cbmltcG9ydCBfIGZyb20gJy4uL3V0aWxzL2luZGV4LmpzJztcbmltcG9ydCBDaGFubmVsc1JldXNhYmxlIGZyb20gJy4uL2NoYW5uZWxzL3JldXNhYmxlLmpzJztcbi8qIE1BSU4gKi9cbmNvbnN0IFJHQiA9IHtcbiAgICAvKiBWQVJJQUJMRVMgKi9cbiAgICByZTogL15yZ2JhP1xcKFxccyo/KC0/KD86XFxkKyg/OlxcLlxcZCspP3woPzpcXC5cXGQrKSkoPzplXFxkKyk/KCU/KSlcXHMqPyg/Oix8XFxzKVxccyo/KC0/KD86XFxkKyg/OlxcLlxcZCspP3woPzpcXC5cXGQrKSkoPzplXFxkKyk/KCU/KSlcXHMqPyg/Oix8XFxzKVxccyo/KC0/KD86XFxkKyg/OlxcLlxcZCspP3woPzpcXC5cXGQrKSkoPzplXFxkKyk/KCU/KSkoPzpcXHMqPyg/Oix8XFwvKVxccyo/XFwrPygtPyg/OlxcZCsoPzpcXC5cXGQrKT98KD86XFwuXFxkKykpKD86ZVxcZCspPyglPykpKT9cXHMqP1xcKSQvaSxcbiAgICAvKiBBUEkgKi9cbiAgICBwYXJzZTogKGNvbG9yKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYXJDb2RlID0gY29sb3IuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgaWYgKGNoYXJDb2RlICE9PSAxMTQgJiYgY2hhckNvZGUgIT09IDgyKVxuICAgICAgICAgICAgcmV0dXJuOyAvLyAncicvJ1InXG4gICAgICAgIGNvbnN0IG1hdGNoID0gY29sb3IubWF0Y2goUkdCLnJlKTtcbiAgICAgICAgaWYgKCFtYXRjaClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgWywgciwgaXNSZWRQZXJjZW50YWdlLCBnLCBpc0dyZWVuUGVyY2VudGFnZSwgYiwgaXNCbHVlUGVyY2VudGFnZSwgYSwgaXNBbHBoYVBlcmNlbnRhZ2VdID0gbWF0Y2g7XG4gICAgICAgIHJldHVybiBDaGFubmVsc1JldXNhYmxlLnNldCh7XG4gICAgICAgICAgICByOiBfLmNoYW5uZWwuY2xhbXAucihpc1JlZFBlcmNlbnRhZ2UgPyBwYXJzZUZsb2F0KHIpICogMi41NSA6IHBhcnNlRmxvYXQocikpLFxuICAgICAgICAgICAgZzogXy5jaGFubmVsLmNsYW1wLmcoaXNHcmVlblBlcmNlbnRhZ2UgPyBwYXJzZUZsb2F0KGcpICogMi41NSA6IHBhcnNlRmxvYXQoZykpLFxuICAgICAgICAgICAgYjogXy5jaGFubmVsLmNsYW1wLmIoaXNCbHVlUGVyY2VudGFnZSA/IHBhcnNlRmxvYXQoYikgKiAyLjU1IDogcGFyc2VGbG9hdChiKSksXG4gICAgICAgICAgICBhOiBhID8gXy5jaGFubmVsLmNsYW1wLmEoaXNBbHBoYVBlcmNlbnRhZ2UgPyBwYXJzZUZsb2F0KGEpIC8gMTAwIDogcGFyc2VGbG9hdChhKSkgOiAxXG4gICAgICAgIH0sIGNvbG9yKTtcbiAgICB9LFxuICAgIHN0cmluZ2lmeTogKGNoYW5uZWxzKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgciwgZywgYiwgYSB9ID0gY2hhbm5lbHM7XG4gICAgICAgIGlmIChhIDwgMSkgeyAvLyBSR0JBXG4gICAgICAgICAgICByZXR1cm4gYHJnYmEoJHtfLmxhbmcucm91bmQocil9LCAke18ubGFuZy5yb3VuZChnKX0sICR7Xy5sYW5nLnJvdW5kKGIpfSwgJHtfLmxhbmcucm91bmQoYSl9KWA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7IC8vIFJHQlxuICAgICAgICAgICAgcmV0dXJuIGByZ2IoJHtfLmxhbmcucm91bmQocil9LCAke18ubGFuZy5yb3VuZChnKX0sICR7Xy5sYW5nLnJvdW5kKGIpfSlgO1xuICAgICAgICB9XG4gICAgfVxufTtcbi8qIEVYUE9SVCAqL1xuZXhwb3J0IGRlZmF1bHQgUkdCO1xuIiwKICAgICIvKiBJTVBPUlQgKi9cbmltcG9ydCBfIGZyb20gJy4uL3V0aWxzL2luZGV4LmpzJztcbmltcG9ydCBIZXggZnJvbSAnLi9oZXguanMnO1xuaW1wb3J0IEhTTCBmcm9tICcuL2hzbC5qcyc7XG5pbXBvcnQgS2V5d29yZCBmcm9tICcuL2tleXdvcmQuanMnO1xuaW1wb3J0IFJHQiBmcm9tICcuL3JnYi5qcyc7XG5pbXBvcnQgeyBUWVBFIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJztcbi8qIE1BSU4gKi9cbmNvbnN0IENvbG9yID0ge1xuICAgIC8qIFZBUklBQkxFUyAqL1xuICAgIGZvcm1hdDoge1xuICAgICAgICBrZXl3b3JkOiBLZXl3b3JkLFxuICAgICAgICBoZXg6IEhleCxcbiAgICAgICAgcmdiOiBSR0IsXG4gICAgICAgIHJnYmE6IFJHQixcbiAgICAgICAgaHNsOiBIU0wsXG4gICAgICAgIGhzbGE6IEhTTFxuICAgIH0sXG4gICAgLyogQVBJICovXG4gICAgcGFyc2U6IChjb2xvcikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbG9yICE9PSAnc3RyaW5nJylcbiAgICAgICAgICAgIHJldHVybiBjb2xvcjtcbiAgICAgICAgY29uc3QgY2hhbm5lbHMgPSBIZXgucGFyc2UoY29sb3IpIHx8IFJHQi5wYXJzZShjb2xvcikgfHwgSFNMLnBhcnNlKGNvbG9yKSB8fCBLZXl3b3JkLnBhcnNlKGNvbG9yKTsgLy8gQ29sb3IgcHJvdmlkZXJzIG9yZGVyZWQgd2l0aCBwZXJmb3JtYW5jZSBpbiBtaW5kXG4gICAgICAgIGlmIChjaGFubmVscylcbiAgICAgICAgICAgIHJldHVybiBjaGFubmVscztcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBjb2xvciBmb3JtYXQ6IFwiJHtjb2xvcn1cImApO1xuICAgIH0sXG4gICAgc3RyaW5naWZ5OiAoY2hhbm5lbHMpID0+IHtcbiAgICAgICAgLy8gU0FTUyByZXR1cm5zIGEga2V5d29yZCBpZiBwb3NzaWJsZSwgYnV0IHdlIGF2b2lkIGRvaW5nIHRoYXQgYXMgaXQncyBzbG93ZXIgYW5kIGRvZXNuJ3QgcmVhbGx5IGFkZCBhbnkgdmFsdWVcbiAgICAgICAgaWYgKCFjaGFubmVscy5jaGFuZ2VkICYmIGNoYW5uZWxzLmNvbG9yKVxuICAgICAgICAgICAgcmV0dXJuIGNoYW5uZWxzLmNvbG9yO1xuICAgICAgICBpZiAoY2hhbm5lbHMudHlwZS5pcyhUWVBFLkhTTCkgfHwgY2hhbm5lbHMuZGF0YS5yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBIU0wuc3RyaW5naWZ5KGNoYW5uZWxzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjaGFubmVscy5hIDwgMSB8fCAhTnVtYmVyLmlzSW50ZWdlcihjaGFubmVscy5yKSB8fCAhTnVtYmVyLmlzSW50ZWdlcihjaGFubmVscy5nKSB8fCAhTnVtYmVyLmlzSW50ZWdlcihjaGFubmVscy5iKSkge1xuICAgICAgICAgICAgcmV0dXJuIFJHQi5zdHJpbmdpZnkoY2hhbm5lbHMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIEhleC5zdHJpbmdpZnkoY2hhbm5lbHMpO1xuICAgICAgICB9XG4gICAgfVxufTtcbi8qIEVYUE9SVCAqL1xuZXhwb3J0IGRlZmF1bHQgQ29sb3I7XG4iLAogICAgIi8qIElNUE9SVCAqL1xuaW1wb3J0IF8gZnJvbSAnLi4vdXRpbHMvaW5kZXguanMnO1xuaW1wb3J0IENvbG9yIGZyb20gJy4uL2NvbG9yL2luZGV4LmpzJztcbi8qIE1BSU4gKi9cbmNvbnN0IGNoYW5nZSA9IChjb2xvciwgY2hhbm5lbHMpID0+IHtcbiAgICBjb25zdCBjaCA9IENvbG9yLnBhcnNlKGNvbG9yKTtcbiAgICBmb3IgKGNvbnN0IGMgaW4gY2hhbm5lbHMpIHtcbiAgICAgICAgY2hbY10gPSBfLmNoYW5uZWwuY2xhbXBbY10oY2hhbm5lbHNbY10pO1xuICAgIH1cbiAgICByZXR1cm4gQ29sb3Iuc3RyaW5naWZ5KGNoKTtcbn07XG4vKiBFWFBPUlQgKi9cbmV4cG9ydCBkZWZhdWx0IGNoYW5nZTtcbiIsCiAgICAiLyogSU1QT1JUICovXG5pbXBvcnQgXyBmcm9tICcuLi91dGlscy9pbmRleC5qcyc7XG5pbXBvcnQgQ2hhbm5lbHNSZXVzYWJsZSBmcm9tICcuLi9jaGFubmVscy9yZXVzYWJsZS5qcyc7XG5pbXBvcnQgQ29sb3IgZnJvbSAnLi4vY29sb3IvaW5kZXguanMnO1xuaW1wb3J0IGNoYW5nZSBmcm9tICcuL2NoYW5nZS5qcyc7XG4vKiBNQUlOICovXG5jb25zdCByZ2JhID0gKHIsIGcsIGIgPSAwLCBhID0gMSkgPT4ge1xuICAgIGlmICh0eXBlb2YgciAhPT0gJ251bWJlcicpXG4gICAgICAgIHJldHVybiBjaGFuZ2UociwgeyBhOiBnIH0pO1xuICAgIGNvbnN0IGNoYW5uZWxzID0gQ2hhbm5lbHNSZXVzYWJsZS5zZXQoe1xuICAgICAgICByOiBfLmNoYW5uZWwuY2xhbXAucihyKSxcbiAgICAgICAgZzogXy5jaGFubmVsLmNsYW1wLmcoZyksXG4gICAgICAgIGI6IF8uY2hhbm5lbC5jbGFtcC5iKGIpLFxuICAgICAgICBhOiBfLmNoYW5uZWwuY2xhbXAuYShhKVxuICAgIH0pO1xuICAgIHJldHVybiBDb2xvci5zdHJpbmdpZnkoY2hhbm5lbHMpO1xufTtcbi8qIEVYUE9SVCAqL1xuZXhwb3J0IGRlZmF1bHQgcmdiYTtcbiIsCiAgICAiLyogSU1QT1JUICovXG5pbXBvcnQgXyBmcm9tICcuLi91dGlscy9pbmRleC5qcyc7XG5pbXBvcnQgQ29sb3IgZnJvbSAnLi4vY29sb3IvaW5kZXguanMnO1xuLyogTUFJTiAqL1xuY29uc3QgY2hhbm5lbCA9IChjb2xvciwgY2hhbm5lbCkgPT4ge1xuICAgIHJldHVybiBfLmxhbmcucm91bmQoQ29sb3IucGFyc2UoY29sb3IpW2NoYW5uZWxdKTtcbn07XG4vKiBFWFBPUlQgKi9cbmV4cG9ydCBkZWZhdWx0IGNoYW5uZWw7XG4iLAogICAgIi8qIElNUE9SVCAqL1xuaW1wb3J0IF8gZnJvbSAnLi4vdXRpbHMvaW5kZXguanMnO1xuaW1wb3J0IENvbG9yIGZyb20gJy4uL2NvbG9yL2luZGV4LmpzJztcbi8qIE1BSU4gKi9cbi8vU09VUkNFOiBodHRwczovL3BsYW5ldGNhbGMuY29tLzc3NzlcbmNvbnN0IGx1bWluYW5jZSA9IChjb2xvcikgPT4ge1xuICAgIGNvbnN0IHsgciwgZywgYiB9ID0gQ29sb3IucGFyc2UoY29sb3IpO1xuICAgIGNvbnN0IGx1bWluYW5jZSA9IC4yMTI2ICogXy5jaGFubmVsLnRvTGluZWFyKHIpICsgLjcxNTIgKiBfLmNoYW5uZWwudG9MaW5lYXIoZykgKyAuMDcyMiAqIF8uY2hhbm5lbC50b0xpbmVhcihiKTtcbiAgICByZXR1cm4gXy5sYW5nLnJvdW5kKGx1bWluYW5jZSk7XG59O1xuLyogRVhQT1JUICovXG5leHBvcnQgZGVmYXVsdCBsdW1pbmFuY2U7XG4iLAogICAgIi8qIElNUE9SVCAqL1xuaW1wb3J0IGx1bWluYW5jZSBmcm9tICcuL2x1bWluYW5jZS5qcyc7XG4vKiBNQUlOICovXG5jb25zdCBpc0xpZ2h0ID0gKGNvbG9yKSA9PiB7XG4gICAgcmV0dXJuIGx1bWluYW5jZShjb2xvcikgPj0gLjU7XG59O1xuLyogRVhQT1JUICovXG5leHBvcnQgZGVmYXVsdCBpc0xpZ2h0O1xuIiwKICAgICIvKiBJTVBPUlQgKi9cbmltcG9ydCBpc0xpZ2h0IGZyb20gJy4vaXNfbGlnaHQuanMnO1xuLyogTUFJTiAqL1xuY29uc3QgaXNEYXJrID0gKGNvbG9yKSA9PiB7XG4gICAgcmV0dXJuICFpc0xpZ2h0KGNvbG9yKTtcbn07XG4vKiBFWFBPUlQgKi9cbmV4cG9ydCBkZWZhdWx0IGlzRGFyaztcbiIsCiAgICAiLyogSU1QT1JUICovXG5pbXBvcnQgXyBmcm9tICcuLi91dGlscy9pbmRleC5qcyc7XG5pbXBvcnQgQ29sb3IgZnJvbSAnLi4vY29sb3IvaW5kZXguanMnO1xuLyogTUFJTiAqL1xuY29uc3QgYWRqdXN0Q2hhbm5lbCA9IChjb2xvciwgY2hhbm5lbCwgYW1vdW50KSA9PiB7XG4gICAgY29uc3QgY2hhbm5lbHMgPSBDb2xvci5wYXJzZShjb2xvcik7XG4gICAgY29uc3QgYW1vdW50Q3VycmVudCA9IGNoYW5uZWxzW2NoYW5uZWxdO1xuICAgIGNvbnN0IGFtb3VudE5leHQgPSBfLmNoYW5uZWwuY2xhbXBbY2hhbm5lbF0oYW1vdW50Q3VycmVudCArIGFtb3VudCk7XG4gICAgaWYgKGFtb3VudEN1cnJlbnQgIT09IGFtb3VudE5leHQpXG4gICAgICAgIGNoYW5uZWxzW2NoYW5uZWxdID0gYW1vdW50TmV4dDtcbiAgICByZXR1cm4gQ29sb3Iuc3RyaW5naWZ5KGNoYW5uZWxzKTtcbn07XG4vKiBFWFBPUlQgKi9cbmV4cG9ydCBkZWZhdWx0IGFkanVzdENoYW5uZWw7XG4iLAogICAgIi8qIElNUE9SVCAqL1xuaW1wb3J0IGFkanVzdENoYW5uZWwgZnJvbSAnLi9hZGp1c3RfY2hhbm5lbC5qcyc7XG4vKiBNQUlOICovXG5jb25zdCBsaWdodGVuID0gKGNvbG9yLCBhbW91bnQpID0+IHtcbiAgICByZXR1cm4gYWRqdXN0Q2hhbm5lbChjb2xvciwgJ2wnLCBhbW91bnQpO1xufTtcbi8qIEVYUE9SVCAqL1xuZXhwb3J0IGRlZmF1bHQgbGlnaHRlbjtcbiIsCiAgICAiLyogSU1QT1JUICovXG5pbXBvcnQgYWRqdXN0Q2hhbm5lbCBmcm9tICcuL2FkanVzdF9jaGFubmVsLmpzJztcbi8qIE1BSU4gKi9cbmNvbnN0IGRhcmtlbiA9IChjb2xvciwgYW1vdW50KSA9PiB7XG4gICAgcmV0dXJuIGFkanVzdENoYW5uZWwoY29sb3IsICdsJywgLWFtb3VudCk7XG59O1xuLyogRVhQT1JUICovXG5leHBvcnQgZGVmYXVsdCBkYXJrZW47XG4iLAogICAgIi8qIElNUE9SVCAqL1xuaW1wb3J0IENvbG9yIGZyb20gJy4uL2NvbG9yL2luZGV4LmpzJztcbmltcG9ydCBjaGFuZ2UgZnJvbSAnLi9jaGFuZ2UuanMnO1xuLyogTUFJTiAqL1xuY29uc3QgYWRqdXN0ID0gKGNvbG9yLCBjaGFubmVscykgPT4ge1xuICAgIGNvbnN0IGNoID0gQ29sb3IucGFyc2UoY29sb3IpO1xuICAgIGNvbnN0IGNoYW5nZXMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGMgaW4gY2hhbm5lbHMpIHtcbiAgICAgICAgaWYgKCFjaGFubmVsc1tjXSlcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjaGFuZ2VzW2NdID0gY2hbY10gKyBjaGFubmVsc1tjXTtcbiAgICB9XG4gICAgcmV0dXJuIGNoYW5nZShjb2xvciwgY2hhbmdlcyk7XG59O1xuLyogRVhQT1JUICovXG5leHBvcnQgZGVmYXVsdCBhZGp1c3Q7XG4iLAogICAgIi8qIElNUE9SVCAqL1xuaW1wb3J0IENvbG9yIGZyb20gJy4uL2NvbG9yL2luZGV4LmpzJztcbmltcG9ydCByZ2JhIGZyb20gJy4vcmdiYS5qcyc7XG4vKiBNQUlOICovXG4vL1NPVVJDRTogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvZGFydC1zYXNzL2Jsb2IvNzQ1N2QyZTllN2U2MjNkOTg0NGZmZDAzN2EwNzBjZjMyZDM5YzM0OC9saWIvc3JjL2Z1bmN0aW9ucy9jb2xvci5kYXJ0I0w3MTgtTDc1NlxuY29uc3QgbWl4ID0gKGNvbG9yMSwgY29sb3IyLCB3ZWlnaHQgPSA1MCkgPT4ge1xuICAgIGNvbnN0IHsgcjogcjEsIGc6IGcxLCBiOiBiMSwgYTogYTEgfSA9IENvbG9yLnBhcnNlKGNvbG9yMSk7XG4gICAgY29uc3QgeyByOiByMiwgZzogZzIsIGI6IGIyLCBhOiBhMiB9ID0gQ29sb3IucGFyc2UoY29sb3IyKTtcbiAgICBjb25zdCB3ZWlnaHRTY2FsZSA9IHdlaWdodCAvIDEwMDtcbiAgICBjb25zdCB3ZWlnaHROb3JtYWxpemVkID0gKHdlaWdodFNjYWxlICogMikgLSAxO1xuICAgIGNvbnN0IGFscGhhRGVsdGEgPSBhMSAtIGEyO1xuICAgIGNvbnN0IHdlaWdodDFjb21iaW5lZCA9ICgod2VpZ2h0Tm9ybWFsaXplZCAqIGFscGhhRGVsdGEpID09PSAtMSkgPyB3ZWlnaHROb3JtYWxpemVkIDogKHdlaWdodE5vcm1hbGl6ZWQgKyBhbHBoYURlbHRhKSAvICgxICsgd2VpZ2h0Tm9ybWFsaXplZCAqIGFscGhhRGVsdGEpO1xuICAgIGNvbnN0IHdlaWdodDEgPSAod2VpZ2h0MWNvbWJpbmVkICsgMSkgLyAyO1xuICAgIGNvbnN0IHdlaWdodDIgPSAxIC0gd2VpZ2h0MTtcbiAgICBjb25zdCByID0gKHIxICogd2VpZ2h0MSkgKyAocjIgKiB3ZWlnaHQyKTtcbiAgICBjb25zdCBnID0gKGcxICogd2VpZ2h0MSkgKyAoZzIgKiB3ZWlnaHQyKTtcbiAgICBjb25zdCBiID0gKGIxICogd2VpZ2h0MSkgKyAoYjIgKiB3ZWlnaHQyKTtcbiAgICBjb25zdCBhID0gKGExICogd2VpZ2h0U2NhbGUpICsgKGEyICogKDEgLSB3ZWlnaHRTY2FsZSkpO1xuICAgIHJldHVybiByZ2JhKHIsIGcsIGIsIGEpO1xufTtcbi8qIEVYUE9SVCAqL1xuZXhwb3J0IGRlZmF1bHQgbWl4O1xuIiwKICAgICIvKiBJTVBPUlQgKi9cbmltcG9ydCBDb2xvciBmcm9tICcuLi9jb2xvci9pbmRleC5qcyc7XG5pbXBvcnQgbWl4IGZyb20gJy4vbWl4LmpzJztcbi8qIE1BSU4gKi9cbmNvbnN0IGludmVydCA9IChjb2xvciwgd2VpZ2h0ID0gMTAwKSA9PiB7XG4gICAgY29uc3QgaW52ZXJzZSA9IENvbG9yLnBhcnNlKGNvbG9yKTtcbiAgICBpbnZlcnNlLnIgPSAyNTUgLSBpbnZlcnNlLnI7XG4gICAgaW52ZXJzZS5nID0gMjU1IC0gaW52ZXJzZS5nO1xuICAgIGludmVyc2UuYiA9IDI1NSAtIGludmVyc2UuYjtcbiAgICByZXR1cm4gbWl4KGludmVyc2UsIGNvbG9yLCB3ZWlnaHQpO1xufTtcbi8qIEVYUE9SVCAqL1xuZXhwb3J0IGRlZmF1bHQgaW52ZXJ0O1xuIiwKICAgICIvKiBJTVBPUlQgKi9cbmltcG9ydCBoZXggZnJvbSAnLi9yZ2JhLmpzJzsgLy8gQWxpYXNcbmltcG9ydCByZ2IgZnJvbSAnLi9yZ2JhLmpzJzsgLy8gQWxpYXNcbmltcG9ydCByZ2JhIGZyb20gJy4vcmdiYS5qcyc7XG5pbXBvcnQgaHNsIGZyb20gJy4vaHNsYS5qcyc7IC8vIEFsaWFzXG5pbXBvcnQgaHNsYSBmcm9tICcuL2hzbGEuanMnO1xuaW1wb3J0IHRvS2V5d29yZCBmcm9tICcuL3RvX2tleXdvcmQuanMnO1xuaW1wb3J0IHRvSGV4IGZyb20gJy4vdG9faGV4LmpzJztcbmltcG9ydCB0b1JnYmEgZnJvbSAnLi90b19yZ2JhLmpzJztcbmltcG9ydCB0b0hzbGEgZnJvbSAnLi90b19oc2xhLmpzJztcbmltcG9ydCBjaGFubmVsIGZyb20gJy4vY2hhbm5lbC5qcyc7XG5pbXBvcnQgcmVkIGZyb20gJy4vcmVkLmpzJztcbmltcG9ydCBncmVlbiBmcm9tICcuL2dyZWVuLmpzJztcbmltcG9ydCBibHVlIGZyb20gJy4vYmx1ZS5qcyc7XG5pbXBvcnQgaHVlIGZyb20gJy4vaHVlLmpzJztcbmltcG9ydCBzYXR1cmF0aW9uIGZyb20gJy4vc2F0dXJhdGlvbi5qcyc7XG5pbXBvcnQgbGlnaHRuZXNzIGZyb20gJy4vbGlnaHRuZXNzLmpzJztcbmltcG9ydCBhbHBoYSBmcm9tICcuL2FscGhhLmpzJztcbmltcG9ydCBvcGFjaXR5IGZyb20gJy4vYWxwaGEuanMnOyAvLyBBbGlhc1xuaW1wb3J0IGNvbnRyYXN0IGZyb20gJy4vY29udHJhc3QuanMnO1xuaW1wb3J0IGx1bWluYW5jZSBmcm9tICcuL2x1bWluYW5jZS5qcyc7XG5pbXBvcnQgaXNEYXJrIGZyb20gJy4vaXNfZGFyay5qcyc7XG5pbXBvcnQgaXNMaWdodCBmcm9tICcuL2lzX2xpZ2h0LmpzJztcbmltcG9ydCBpc1RyYW5zcGFyZW50IGZyb20gJy4vaXNfdHJhbnNwYXJlbnQuanMnO1xuaW1wb3J0IGlzVmFsaWQgZnJvbSAnLi9pc192YWxpZC5qcyc7XG5pbXBvcnQgc2F0dXJhdGUgZnJvbSAnLi9zYXR1cmF0ZS5qcyc7XG5pbXBvcnQgZGVzYXR1cmF0ZSBmcm9tICcuL2Rlc2F0dXJhdGUuanMnO1xuaW1wb3J0IGxpZ2h0ZW4gZnJvbSAnLi9saWdodGVuLmpzJztcbmltcG9ydCBkYXJrZW4gZnJvbSAnLi9kYXJrZW4uanMnO1xuaW1wb3J0IG9wYWNpZnkgZnJvbSAnLi9vcGFjaWZ5LmpzJztcbmltcG9ydCBmYWRlSW4gZnJvbSAnLi9vcGFjaWZ5LmpzJzsgLy8gQWxpYXNcbmltcG9ydCB0cmFuc3BhcmVudGl6ZSBmcm9tICcuL3RyYW5zcGFyZW50aXplLmpzJztcbmltcG9ydCBmYWRlT3V0IGZyb20gJy4vdHJhbnNwYXJlbnRpemUuanMnOyAvLyBBbGlhc1xuaW1wb3J0IGNvbXBsZW1lbnQgZnJvbSAnLi9jb21wbGVtZW50LmpzJztcbmltcG9ydCBncmF5c2NhbGUgZnJvbSAnLi9ncmF5c2NhbGUuanMnO1xuaW1wb3J0IGFkanVzdCBmcm9tICcuL2FkanVzdC5qcyc7XG5pbXBvcnQgY2hhbmdlIGZyb20gJy4vY2hhbmdlLmpzJztcbmltcG9ydCBpbnZlcnQgZnJvbSAnLi9pbnZlcnQuanMnO1xuaW1wb3J0IG1peCBmcm9tICcuL21peC5qcyc7XG5pbXBvcnQgc2NhbGUgZnJvbSAnLi9zY2FsZS5qcyc7XG4vKiBFWFBPUlQgKi9cbmV4cG9ydCB7IFxuLyogQ1JFQVRFICovXG5oZXgsIHJnYiwgcmdiYSwgaHNsLCBoc2xhLCBcbi8qIENPTlZFUlQgKi9cbnRvS2V5d29yZCwgdG9IZXgsIHRvUmdiYSwgdG9Ic2xhLCBcbi8qIEdFVCAtIENIQU5ORUwgKi9cbmNoYW5uZWwsIHJlZCwgZ3JlZW4sIGJsdWUsIGh1ZSwgc2F0dXJhdGlvbiwgbGlnaHRuZXNzLCBhbHBoYSwgb3BhY2l0eSwgXG4vKiBHRVQgLSBNT1JFICovXG5jb250cmFzdCwgbHVtaW5hbmNlLCBpc0RhcmssIGlzTGlnaHQsIGlzVHJhbnNwYXJlbnQsIGlzVmFsaWQsIFxuLyogRURJVCAtIENIQU5ORUwgKi9cbnNhdHVyYXRlLCBkZXNhdHVyYXRlLCBsaWdodGVuLCBkYXJrZW4sIG9wYWNpZnksIGZhZGVJbiwgdHJhbnNwYXJlbnRpemUsIGZhZGVPdXQsIGNvbXBsZW1lbnQsIGdyYXlzY2FsZSwgXG4vKiBFRElUIC0gTU9SRSAqL1xuYWRqdXN0LCBjaGFuZ2UsIGludmVydCwgbWl4LCBzY2FsZSB9O1xuIiwKICAgICIvKiBFWFBPUlQgKi9cbmV4cG9ydCAqIGZyb20gJy4vbWV0aG9kcy9pbmRleC5qcyc7XG4iLAogICAgIi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbmV4cG9ydCBkZWZhdWx0IGZyZWVHbG9iYWw7XG4iLAogICAgImltcG9ydCBmcmVlR2xvYmFsIGZyb20gJy4vX2ZyZWVHbG9iYWwuanMnO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHNlbGZgLiAqL1xudmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG5cbi8qKiBVc2VkIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgb2JqZWN0LiAqL1xudmFyIHJvb3QgPSBmcmVlR2xvYmFsIHx8IGZyZWVTZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHJvb3Q7XG4iLAogICAgImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxuZXhwb3J0IGRlZmF1bHQgU3ltYm9sO1xuIiwKICAgICJpbXBvcnQgU3ltYm9sIGZyb20gJy4vX1N5bWJvbC5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VHZXRUYWdgIHdoaWNoIGlnbm9yZXMgYFN5bWJvbC50b1N0cmluZ1RhZ2AgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHJhdyBgdG9TdHJpbmdUYWdgLlxuICovXG5mdW5jdGlvbiBnZXRSYXdUYWcodmFsdWUpIHtcbiAgdmFyIGlzT3duID0gaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgc3ltVG9TdHJpbmdUYWcpLFxuICAgICAgdGFnID0gdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuXG4gIHRyeSB7XG4gICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdW5kZWZpbmVkO1xuICAgIHZhciB1bm1hc2tlZCA9IHRydWU7XG4gIH0gY2F0Y2ggKGUpIHt9XG5cbiAgdmFyIHJlc3VsdCA9IG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICBpZiAodW5tYXNrZWQpIHtcbiAgICBpZiAoaXNPd24pIHtcbiAgICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHRhZztcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0UmF3VGFnO1xuIiwKICAgICIvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgbmF0aXZlT2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIHVzaW5nIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIG9iamVjdFRvU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgb2JqZWN0VG9TdHJpbmc7XG4iLAogICAgImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcbmltcG9ydCBnZXRSYXdUYWcgZnJvbSAnLi9fZ2V0UmF3VGFnLmpzJztcbmltcG9ydCBvYmplY3RUb1N0cmluZyBmcm9tICcuL19vYmplY3RUb1N0cmluZy5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBudWxsVGFnID0gJ1tvYmplY3QgTnVsbF0nLFxuICAgIHVuZGVmaW5lZFRhZyA9ICdbb2JqZWN0IFVuZGVmaW5lZF0nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYCB3aXRob3V0IGZhbGxiYWNrcyBmb3IgYnVnZ3kgZW52aXJvbm1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gIH1cbiAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxuICAgIDogb2JqZWN0VG9TdHJpbmcodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlR2V0VGFnO1xuIiwKICAgICIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxuICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChfLm5vb3ApO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNPYmplY3Q7XG4iLAogICAgImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXN5bmNUYWcgPSAnW29iamVjdCBBc3luY0Z1bmN0aW9uXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgZ2VuVGFnID0gJ1tvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dJyxcbiAgICBwcm94eVRhZyA9ICdbb2JqZWN0IFByb3h5XSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0Z1bmN0aW9uKF8pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAvLyBpbiBTYWZhcmkgOSB3aGljaCByZXR1cm5zICdvYmplY3QnIGZvciB0eXBlZCBhcnJheXMgYW5kIG90aGVyIGNvbnN0cnVjdG9ycy5cbiAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICByZXR1cm4gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZyB8fCB0YWcgPT0gYXN5bmNUYWcgfHwgdGFnID09IHByb3h5VGFnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0Z1bmN0aW9uO1xuIiwKICAgICJpbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG92ZXJyZWFjaGluZyBjb3JlLWpzIHNoaW1zLiAqL1xudmFyIGNvcmVKc0RhdGEgPSByb290WydfX2NvcmUtanNfc2hhcmVkX18nXTtcblxuZXhwb3J0IGRlZmF1bHQgY29yZUpzRGF0YTtcbiIsCiAgICAiaW1wb3J0IGNvcmVKc0RhdGEgZnJvbSAnLi9fY29yZUpzRGF0YS5qcyc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG52YXIgbWFza1NyY0tleSA9IChmdW5jdGlvbigpIHtcbiAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xufSgpKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBpdHMgc291cmNlIG1hc2tlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc01hc2tlZChmdW5jKSB7XG4gIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzTWFza2VkO1xuIiwKICAgICIvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZnVuY1Byb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGBmdW5jYCB0byBpdHMgc291cmNlIGNvZGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzb3VyY2UgY29kZS5cbiAqL1xuZnVuY3Rpb24gdG9Tb3VyY2UoZnVuYykge1xuICBpZiAoZnVuYyAhPSBudWxsKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBmdW5jVG9TdHJpbmcuY2FsbChmdW5jKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gKGZ1bmMgKyAnJyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRvU291cmNlO1xuIiwKICAgICJpbXBvcnQgaXNGdW5jdGlvbiBmcm9tICcuL2lzRnVuY3Rpb24uanMnO1xuaW1wb3J0IGlzTWFza2VkIGZyb20gJy4vX2lzTWFza2VkLmpzJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcbmltcG9ydCB0b1NvdXJjZSBmcm9tICcuL190b1NvdXJjZS5qcyc7XG5cbi8qKlxuICogVXNlZCB0byBtYXRjaCBgUmVnRXhwYFxuICogW3N5bnRheCBjaGFyYWN0ZXJzXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1wYXR0ZXJucykuXG4gKi9cbnZhciByZVJlZ0V4cENoYXIgPSAvW1xcXFxeJC4qKz8oKVtcXF17fXxdL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBob3N0IGNvbnN0cnVjdG9ycyAoU2FmYXJpKS4gKi9cbnZhciByZUlzSG9zdEN0b3IgPSAvXlxcW29iamVjdCAuKz9Db25zdHJ1Y3RvclxcXSQvO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZnVuY1Byb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlLFxuICAgIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgZGVjb21waWxlZCBzb3VyY2Ugb2YgZnVuY3Rpb25zLiAqL1xudmFyIGZ1bmNUb1N0cmluZyA9IGZ1bmNQcm90by50b1N0cmluZztcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGlmIGEgbWV0aG9kIGlzIG5hdGl2ZS4gKi9cbnZhciByZUlzTmF0aXZlID0gUmVnRXhwKCdeJyArXG4gIGZ1bmNUb1N0cmluZy5jYWxsKGhhc093blByb3BlcnR5KS5yZXBsYWNlKHJlUmVnRXhwQ2hhciwgJ1xcXFwkJicpXG4gIC5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcXFxcKCl8IGZvciAuKz8oPz1cXFxcXFxdKS9nLCAnJDEuKj8nKSArICckJ1xuKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc05hdGl2ZWAgd2l0aG91dCBiYWQgc2hpbSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBuYXRpdmUgZnVuY3Rpb24sXG4gKiAgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNOYXRpdmUodmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkgfHwgaXNNYXNrZWQodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwYXR0ZXJuID0gaXNGdW5jdGlvbih2YWx1ZSkgPyByZUlzTmF0aXZlIDogcmVJc0hvc3RDdG9yO1xuICByZXR1cm4gcGF0dGVybi50ZXN0KHRvU291cmNlKHZhbHVlKSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VJc05hdGl2ZTtcbiIsCiAgICAiLyoqXG4gKiBHZXRzIHRoZSB2YWx1ZSBhdCBga2V5YCBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gZ2V0VmFsdWUob2JqZWN0LCBrZXkpIHtcbiAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFZhbHVlO1xuIiwKICAgICJpbXBvcnQgYmFzZUlzTmF0aXZlIGZyb20gJy4vX2Jhc2VJc05hdGl2ZS5qcyc7XG5pbXBvcnQgZ2V0VmFsdWUgZnJvbSAnLi9fZ2V0VmFsdWUuanMnO1xuXG4vKipcbiAqIEdldHMgdGhlIG5hdGl2ZSBmdW5jdGlvbiBhdCBga2V5YCBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBtZXRob2QgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZ1bmN0aW9uIGlmIGl0J3MgbmF0aXZlLCBlbHNlIGB1bmRlZmluZWRgLlxuICovXG5mdW5jdGlvbiBnZXROYXRpdmUob2JqZWN0LCBrZXkpIHtcbiAgdmFyIHZhbHVlID0gZ2V0VmFsdWUob2JqZWN0LCBrZXkpO1xuICByZXR1cm4gYmFzZUlzTmF0aXZlKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXROYXRpdmU7XG4iLAogICAgImltcG9ydCBnZXROYXRpdmUgZnJvbSAnLi9fZ2V0TmF0aXZlLmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIG5hdGl2ZUNyZWF0ZSA9IGdldE5hdGl2ZShPYmplY3QsICdjcmVhdGUnKTtcblxuZXhwb3J0IGRlZmF1bHQgbmF0aXZlQ3JlYXRlO1xuIiwKICAgICJpbXBvcnQgbmF0aXZlQ3JlYXRlIGZyb20gJy4vX25hdGl2ZUNyZWF0ZS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgaGFzaC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKi9cbmZ1bmN0aW9uIGhhc2hDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoQ2xlYXI7XG4iLAogICAgIi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGhhc2guXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7T2JqZWN0fSBoYXNoIFRoZSBoYXNoIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBoYXNoRGVsZXRlKGtleSkge1xuICB2YXIgcmVzdWx0ID0gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xuICB0aGlzLnNpemUgLT0gcmVzdWx0ID8gMSA6IDA7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGhhc2hEZWxldGU7XG4iLAogICAgImltcG9ydCBuYXRpdmVDcmVhdGUgZnJvbSAnLi9fbmF0aXZlQ3JlYXRlLmpzJztcblxuLyoqIFVzZWQgdG8gc3RhbmQtaW4gZm9yIGB1bmRlZmluZWRgIGhhc2ggdmFsdWVzLiAqL1xudmFyIEhBU0hfVU5ERUZJTkVEID0gJ19fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18nO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEdldHMgdGhlIGhhc2ggdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gaGFzaEdldChrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAobmF0aXZlQ3JlYXRlKSB7XG4gICAgdmFyIHJlc3VsdCA9IGRhdGFba2V5XTtcbiAgICByZXR1cm4gcmVzdWx0ID09PSBIQVNIX1VOREVGSU5FRCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbiAgfVxuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoR2V0O1xuIiwKICAgICJpbXBvcnQgbmF0aXZlQ3JlYXRlIGZyb20gJy4vX25hdGl2ZUNyZWF0ZS5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgaGFzaCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaGFzaEhhcyhrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICByZXR1cm4gbmF0aXZlQ3JlYXRlID8gKGRhdGFba2V5XSAhPT0gdW5kZWZpbmVkKSA6IGhhc093blByb3BlcnR5LmNhbGwoZGF0YSwga2V5KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaGFzaEhhcztcbiIsCiAgICAiaW1wb3J0IG5hdGl2ZUNyZWF0ZSBmcm9tICcuL19uYXRpdmVDcmVhdGUuanMnO1xuXG4vKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG52YXIgSEFTSF9VTkRFRklORUQgPSAnX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyc7XG5cbi8qKlxuICogU2V0cyB0aGUgaGFzaCBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGhhc2ggaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIGhhc2hTZXQoa2V5LCB2YWx1ZSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX187XG4gIHRoaXMuc2l6ZSArPSB0aGlzLmhhcyhrZXkpID8gMCA6IDE7XG4gIGRhdGFba2V5XSA9IChuYXRpdmVDcmVhdGUgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkgPyBIQVNIX1VOREVGSU5FRCA6IHZhbHVlO1xuICByZXR1cm4gdGhpcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaGFzaFNldDtcbiIsCiAgICAiaW1wb3J0IGhhc2hDbGVhciBmcm9tICcuL19oYXNoQ2xlYXIuanMnO1xuaW1wb3J0IGhhc2hEZWxldGUgZnJvbSAnLi9faGFzaERlbGV0ZS5qcyc7XG5pbXBvcnQgaGFzaEdldCBmcm9tICcuL19oYXNoR2V0LmpzJztcbmltcG9ydCBoYXNoSGFzIGZyb20gJy4vX2hhc2hIYXMuanMnO1xuaW1wb3J0IGhhc2hTZXQgZnJvbSAnLi9faGFzaFNldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGhhc2ggb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBIYXNoKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYEhhc2hgLlxuSGFzaC5wcm90b3R5cGUuY2xlYXIgPSBoYXNoQ2xlYXI7XG5IYXNoLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBoYXNoRGVsZXRlO1xuSGFzaC5wcm90b3R5cGUuZ2V0ID0gaGFzaEdldDtcbkhhc2gucHJvdG90eXBlLmhhcyA9IGhhc2hIYXM7XG5IYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNoU2V0O1xuXG5leHBvcnQgZGVmYXVsdCBIYXNoO1xuIiwKICAgICIvKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGNsZWFyXG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUNsZWFyKCkge1xuICB0aGlzLl9fZGF0YV9fID0gW107XG4gIHRoaXMuc2l6ZSA9IDA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxpc3RDYWNoZUNsZWFyO1xuIiwKICAgICIvKipcbiAqIFBlcmZvcm1zIGFcbiAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gKiBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgZXF1aXZhbGVudC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2EnOiAxIH07XG4gKlxuICogXy5lcShvYmplY3QsIG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcShvYmplY3QsIG90aGVyKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcSgnYScsICdhJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcSgnYScsIE9iamVjdCgnYScpKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcShOYU4sIE5hTik7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGVxKHZhbHVlLCBvdGhlcikge1xuICByZXR1cm4gdmFsdWUgPT09IG90aGVyIHx8ICh2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXE7XG4iLAogICAgImltcG9ydCBlcSBmcm9tICcuL2VxLmpzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgYGtleWAgaXMgZm91bmQgaW4gYGFycmF5YCBvZiBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAqL1xuZnVuY3Rpb24gYXNzb2NJbmRleE9mKGFycmF5LCBrZXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgaWYgKGVxKGFycmF5W2xlbmd0aF1bMF0sIGtleSkpIHtcbiAgICAgIHJldHVybiBsZW5ndGg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXNzb2NJbmRleE9mO1xuIiwKICAgICJpbXBvcnQgYXNzb2NJbmRleE9mIGZyb20gJy4vX2Fzc29jSW5kZXhPZi5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBhcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzcGxpY2UgPSBhcnJheVByb3RvLnNwbGljZTtcblxuLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgbGlzdCBjYWNoZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlRGVsZXRlKGtleSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gIGlmIChpbmRleCA8IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGxhc3RJbmRleCA9IGRhdGEubGVuZ3RoIC0gMTtcbiAgaWYgKGluZGV4ID09IGxhc3RJbmRleCkge1xuICAgIGRhdGEucG9wKCk7XG4gIH0gZWxzZSB7XG4gICAgc3BsaWNlLmNhbGwoZGF0YSwgaW5kZXgsIDEpO1xuICB9XG4gIC0tdGhpcy5zaXplO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbGlzdENhY2hlRGVsZXRlO1xuIiwKICAgICJpbXBvcnQgYXNzb2NJbmRleE9mIGZyb20gJy4vX2Fzc29jSW5kZXhPZi5qcyc7XG5cbi8qKlxuICogR2V0cyB0aGUgbGlzdCBjYWNoZSB2YWx1ZSBmb3IgYGtleWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGdldFxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUdldChrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICByZXR1cm4gaW5kZXggPCAwID8gdW5kZWZpbmVkIDogZGF0YVtpbmRleF1bMV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxpc3RDYWNoZUdldDtcbiIsCiAgICAiaW1wb3J0IGFzc29jSW5kZXhPZiBmcm9tICcuL19hc3NvY0luZGV4T2YuanMnO1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlSGFzKGtleSkge1xuICByZXR1cm4gYXNzb2NJbmRleE9mKHRoaXMuX19kYXRhX18sIGtleSkgPiAtMTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbGlzdENhY2hlSGFzO1xuIiwKICAgICJpbXBvcnQgYXNzb2NJbmRleE9mIGZyb20gJy4vX2Fzc29jSW5kZXhPZi5qcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgbGlzdCBjYWNoZSBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbGlzdCBjYWNoZSBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgKyt0aGlzLnNpemU7XG4gICAgZGF0YS5wdXNoKFtrZXksIHZhbHVlXSk7XG4gIH0gZWxzZSB7XG4gICAgZGF0YVtpbmRleF1bMV0gPSB2YWx1ZTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgbGlzdENhY2hlU2V0O1xuIiwKICAgICJpbXBvcnQgbGlzdENhY2hlQ2xlYXIgZnJvbSAnLi9fbGlzdENhY2hlQ2xlYXIuanMnO1xuaW1wb3J0IGxpc3RDYWNoZURlbGV0ZSBmcm9tICcuL19saXN0Q2FjaGVEZWxldGUuanMnO1xuaW1wb3J0IGxpc3RDYWNoZUdldCBmcm9tICcuL19saXN0Q2FjaGVHZXQuanMnO1xuaW1wb3J0IGxpc3RDYWNoZUhhcyBmcm9tICcuL19saXN0Q2FjaGVIYXMuanMnO1xuaW1wb3J0IGxpc3RDYWNoZVNldCBmcm9tICcuL19saXN0Q2FjaGVTZXQuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gbGlzdCBjYWNoZSBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIExpc3RDYWNoZShlbnRyaWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuXG4gIHRoaXMuY2xlYXIoKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICB9XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBMaXN0Q2FjaGVgLlxuTGlzdENhY2hlLnByb3RvdHlwZS5jbGVhciA9IGxpc3RDYWNoZUNsZWFyO1xuTGlzdENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBsaXN0Q2FjaGVEZWxldGU7XG5MaXN0Q2FjaGUucHJvdG90eXBlLmdldCA9IGxpc3RDYWNoZUdldDtcbkxpc3RDYWNoZS5wcm90b3R5cGUuaGFzID0gbGlzdENhY2hlSGFzO1xuTGlzdENhY2hlLnByb3RvdHlwZS5zZXQgPSBsaXN0Q2FjaGVTZXQ7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RDYWNoZTtcbiIsCiAgICAiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBNYXAgPSBnZXROYXRpdmUocm9vdCwgJ01hcCcpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXA7XG4iLAogICAgImltcG9ydCBIYXNoIGZyb20gJy4vX0hhc2guanMnO1xuaW1wb3J0IExpc3RDYWNoZSBmcm9tICcuL19MaXN0Q2FjaGUuanMnO1xuaW1wb3J0IE1hcCBmcm9tICcuL19NYXAuanMnO1xuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUNsZWFyKCkge1xuICB0aGlzLnNpemUgPSAwO1xuICB0aGlzLl9fZGF0YV9fID0ge1xuICAgICdoYXNoJzogbmV3IEhhc2gsXG4gICAgJ21hcCc6IG5ldyAoTWFwIHx8IExpc3RDYWNoZSksXG4gICAgJ3N0cmluZyc6IG5ldyBIYXNoXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1hcENhY2hlQ2xlYXI7XG4iLAogICAgIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHVzZSBhcyB1bmlxdWUgb2JqZWN0IGtleS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0tleWFibGUodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAodHlwZSA9PSAnc3RyaW5nJyB8fCB0eXBlID09ICdudW1iZXInIHx8IHR5cGUgPT0gJ3N5bWJvbCcgfHwgdHlwZSA9PSAnYm9vbGVhbicpXG4gICAgPyAodmFsdWUgIT09ICdfX3Byb3RvX18nKVxuICAgIDogKHZhbHVlID09PSBudWxsKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNLZXlhYmxlO1xuIiwKICAgICJpbXBvcnQgaXNLZXlhYmxlIGZyb20gJy4vX2lzS2V5YWJsZS5qcyc7XG5cbi8qKlxuICogR2V0cyB0aGUgZGF0YSBmb3IgYG1hcGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXAgVGhlIG1hcCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIHJlZmVyZW5jZSBrZXkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWFwIGRhdGEuXG4gKi9cbmZ1bmN0aW9uIGdldE1hcERhdGEobWFwLCBrZXkpIHtcbiAgdmFyIGRhdGEgPSBtYXAuX19kYXRhX187XG4gIHJldHVybiBpc0tleWFibGUoa2V5KVxuICAgID8gZGF0YVt0eXBlb2Yga2V5ID09ICdzdHJpbmcnID8gJ3N0cmluZycgOiAnaGFzaCddXG4gICAgOiBkYXRhLm1hcDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0TWFwRGF0YTtcbiIsCiAgICAiaW1wb3J0IGdldE1hcERhdGEgZnJvbSAnLi9fZ2V0TWFwRGF0YS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShrZXkpIHtcbiAgdmFyIHJlc3VsdCA9IGdldE1hcERhdGEodGhpcywga2V5KVsnZGVsZXRlJ10oa2V5KTtcbiAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZURlbGV0ZTtcbiIsCiAgICAiaW1wb3J0IGdldE1hcERhdGEgZnJvbSAnLi9fZ2V0TWFwRGF0YS5qcyc7XG5cbi8qKlxuICogR2V0cyB0aGUgbWFwIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUdldChrZXkpIHtcbiAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5nZXQoa2V5KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWFwQ2FjaGVHZXQ7XG4iLAogICAgImltcG9ydCBnZXRNYXBEYXRhIGZyb20gJy4vX2dldE1hcERhdGEuanMnO1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIG1hcCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlSGFzKGtleSkge1xuICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmhhcyhrZXkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZUhhcztcbiIsCiAgICAiaW1wb3J0IGdldE1hcERhdGEgZnJvbSAnLi9fZ2V0TWFwRGF0YS5qcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgbWFwIGBrZXlgIHRvIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIHNldFxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG1hcCBjYWNoZSBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVTZXQoa2V5LCB2YWx1ZSkge1xuICB2YXIgZGF0YSA9IGdldE1hcERhdGEodGhpcywga2V5KSxcbiAgICAgIHNpemUgPSBkYXRhLnNpemU7XG5cbiAgZGF0YS5zZXQoa2V5LCB2YWx1ZSk7XG4gIHRoaXMuc2l6ZSArPSBkYXRhLnNpemUgPT0gc2l6ZSA/IDAgOiAxO1xuICByZXR1cm4gdGhpcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWFwQ2FjaGVTZXQ7XG4iLAogICAgImltcG9ydCBtYXBDYWNoZUNsZWFyIGZyb20gJy4vX21hcENhY2hlQ2xlYXIuanMnO1xuaW1wb3J0IG1hcENhY2hlRGVsZXRlIGZyb20gJy4vX21hcENhY2hlRGVsZXRlLmpzJztcbmltcG9ydCBtYXBDYWNoZUdldCBmcm9tICcuL19tYXBDYWNoZUdldC5qcyc7XG5pbXBvcnQgbWFwQ2FjaGVIYXMgZnJvbSAnLi9fbWFwQ2FjaGVIYXMuanMnO1xuaW1wb3J0IG1hcENhY2hlU2V0IGZyb20gJy4vX21hcENhY2hlU2V0LmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgbWFwIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIE1hcENhY2hlKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYE1hcENhY2hlYC5cbk1hcENhY2hlLnByb3RvdHlwZS5jbGVhciA9IG1hcENhY2hlQ2xlYXI7XG5NYXBDYWNoZS5wcm90b3R5cGVbJ2RlbGV0ZSddID0gbWFwQ2FjaGVEZWxldGU7XG5NYXBDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbWFwQ2FjaGVHZXQ7XG5NYXBDYWNoZS5wcm90b3R5cGUuaGFzID0gbWFwQ2FjaGVIYXM7XG5NYXBDYWNoZS5wcm90b3R5cGUuc2V0ID0gbWFwQ2FjaGVTZXQ7XG5cbmV4cG9ydCBkZWZhdWx0IE1hcENhY2hlO1xuIiwKICAgICJpbXBvcnQgTWFwQ2FjaGUgZnJvbSAnLi9fTWFwQ2FjaGUuanMnO1xuXG4vKiogRXJyb3IgbWVzc2FnZSBjb25zdGFudHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG1lbW9pemVzIHRoZSByZXN1bHQgb2YgYGZ1bmNgLiBJZiBgcmVzb2x2ZXJgIGlzXG4gKiBwcm92aWRlZCwgaXQgZGV0ZXJtaW5lcyB0aGUgY2FjaGUga2V5IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlXG4gKiBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uLiBCeSBkZWZhdWx0LCB0aGUgZmlyc3QgYXJndW1lbnRcbiAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSBtYXAgY2FjaGUga2V5LiBUaGUgYGZ1bmNgXG4gKiBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogVGhlIGNhY2hlIGlzIGV4cG9zZWQgYXMgdGhlIGBjYWNoZWAgcHJvcGVydHkgb24gdGhlIG1lbW9pemVkXG4gKiBmdW5jdGlvbi4gSXRzIGNyZWF0aW9uIG1heSBiZSBjdXN0b21pemVkIGJ5IHJlcGxhY2luZyB0aGUgYF8ubWVtb2l6ZS5DYWNoZWBcbiAqIGNvbnN0cnVjdG9yIHdpdGggb25lIHdob3NlIGluc3RhbmNlcyBpbXBsZW1lbnQgdGhlXG4gKiBbYE1hcGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxuICogbWV0aG9kIGludGVyZmFjZSBvZiBgY2xlYXJgLCBgZGVsZXRlYCwgYGdldGAsIGBoYXNgLCBhbmQgYHNldGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcmVzb2x2ZXJdIFRoZSBmdW5jdGlvbiB0byByZXNvbHZlIHRoZSBjYWNoZSBrZXkuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2MnOiAzLCAnZCc6IDQgfTtcbiAqXG4gKiB2YXIgdmFsdWVzID0gXy5tZW1vaXplKF8udmFsdWVzKTtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogdmFsdWVzKG90aGVyKTtcbiAqIC8vID0+IFszLCA0XVxuICpcbiAqIG9iamVjdC5hID0gMjtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogLy8gTW9kaWZ5IHRoZSByZXN1bHQgY2FjaGUuXG4gKiB2YWx1ZXMuY2FjaGUuc2V0KG9iamVjdCwgWydhJywgJ2InXSk7XG4gKiB2YWx1ZXMob2JqZWN0KTtcbiAqIC8vID0+IFsnYScsICdiJ11cbiAqXG4gKiAvLyBSZXBsYWNlIGBfLm1lbW9pemUuQ2FjaGVgLlxuICogXy5tZW1vaXplLkNhY2hlID0gV2Vha01hcDtcbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZShmdW5jLCByZXNvbHZlcikge1xuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJyB8fCAocmVzb2x2ZXIgIT0gbnVsbCAmJiB0eXBlb2YgcmVzb2x2ZXIgIT0gJ2Z1bmN0aW9uJykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgdmFyIG1lbW9pemVkID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgIGtleSA9IHJlc29sdmVyID8gcmVzb2x2ZXIuYXBwbHkodGhpcywgYXJncykgOiBhcmdzWzBdLFxuICAgICAgICBjYWNoZSA9IG1lbW9pemVkLmNhY2hlO1xuXG4gICAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0KSB8fCBjYWNoZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICBtZW1vaXplZC5jYWNoZSA9IG5ldyAobWVtb2l6ZS5DYWNoZSB8fCBNYXBDYWNoZSk7XG4gIHJldHVybiBtZW1vaXplZDtcbn1cblxuLy8gRXhwb3NlIGBNYXBDYWNoZWAuXG5tZW1vaXplLkNhY2hlID0gTWFwQ2FjaGU7XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW9pemU7XG4iLAogICAgImltcG9ydCBMaXN0Q2FjaGUgZnJvbSAnLi9fTGlzdENhY2hlLmpzJztcblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBzdGFjay5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBTdGFja1xuICovXG5mdW5jdGlvbiBzdGFja0NsZWFyKCkge1xuICB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZTtcbiAgdGhpcy5zaXplID0gMDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3RhY2tDbGVhcjtcbiIsCiAgICAiLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc3RhY2tEZWxldGUoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIHJlc3VsdCA9IGRhdGFbJ2RlbGV0ZSddKGtleSk7XG5cbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja0RlbGV0ZTtcbiIsCiAgICAiLyoqXG4gKiBHZXRzIHRoZSBzdGFjayB2YWx1ZSBmb3IgYGtleWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGdldFxuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gc3RhY2tHZXQoa2V5KSB7XG4gIHJldHVybiB0aGlzLl9fZGF0YV9fLmdldChrZXkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja0dldDtcbiIsCiAgICAiLyoqXG4gKiBDaGVja3MgaWYgYSBzdGFjayB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBTdGFja1xuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrSGFzKGtleSkge1xuICByZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoa2V5KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3RhY2tIYXM7XG4iLAogICAgImltcG9ydCBMaXN0Q2FjaGUgZnJvbSAnLi9fTGlzdENhY2hlLmpzJztcbmltcG9ydCBNYXAgZnJvbSAnLi9fTWFwLmpzJztcbmltcG9ydCBNYXBDYWNoZSBmcm9tICcuL19NYXBDYWNoZS5qcyc7XG5cbi8qKiBVc2VkIGFzIHRoZSBzaXplIHRvIGVuYWJsZSBsYXJnZSBhcnJheSBvcHRpbWl6YXRpb25zLiAqL1xudmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbi8qKlxuICogU2V0cyB0aGUgc3RhY2sgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgc3RhY2sgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAoZGF0YSBpbnN0YW5jZW9mIExpc3RDYWNoZSkge1xuICAgIHZhciBwYWlycyA9IGRhdGEuX19kYXRhX187XG4gICAgaWYgKCFNYXAgfHwgKHBhaXJzLmxlbmd0aCA8IExBUkdFX0FSUkFZX1NJWkUgLSAxKSkge1xuICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgdGhpcy5zaXplID0gKytkYXRhLnNpemU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUocGFpcnMpO1xuICB9XG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja1NldDtcbiIsCiAgICAiaW1wb3J0IExpc3RDYWNoZSBmcm9tICcuL19MaXN0Q2FjaGUuanMnO1xuaW1wb3J0IHN0YWNrQ2xlYXIgZnJvbSAnLi9fc3RhY2tDbGVhci5qcyc7XG5pbXBvcnQgc3RhY2tEZWxldGUgZnJvbSAnLi9fc3RhY2tEZWxldGUuanMnO1xuaW1wb3J0IHN0YWNrR2V0IGZyb20gJy4vX3N0YWNrR2V0LmpzJztcbmltcG9ydCBzdGFja0hhcyBmcm9tICcuL19zdGFja0hhcy5qcyc7XG5pbXBvcnQgc3RhY2tTZXQgZnJvbSAnLi9fc3RhY2tTZXQuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGFjayBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBTdGFjayhlbnRyaWVzKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyA9IG5ldyBMaXN0Q2FjaGUoZW50cmllcyk7XG4gIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZTtcbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYFN0YWNrYC5cblN0YWNrLnByb3RvdHlwZS5jbGVhciA9IHN0YWNrQ2xlYXI7XG5TdGFjay5wcm90b3R5cGVbJ2RlbGV0ZSddID0gc3RhY2tEZWxldGU7XG5TdGFjay5wcm90b3R5cGUuZ2V0ID0gc3RhY2tHZXQ7XG5TdGFjay5wcm90b3R5cGUuaGFzID0gc3RhY2tIYXM7XG5TdGFjay5wcm90b3R5cGUuc2V0ID0gc3RhY2tTZXQ7XG5cbmV4cG9ydCBkZWZhdWx0IFN0YWNrO1xuIiwKICAgICJpbXBvcnQgZ2V0TmF0aXZlIGZyb20gJy4vX2dldE5hdGl2ZS5qcyc7XG5cbnZhciBkZWZpbmVQcm9wZXJ0eSA9IChmdW5jdGlvbigpIHtcbiAgdHJ5IHtcbiAgICB2YXIgZnVuYyA9IGdldE5hdGl2ZShPYmplY3QsICdkZWZpbmVQcm9wZXJ0eScpO1xuICAgIGZ1bmMoe30sICcnLCB7fSk7XG4gICAgcmV0dXJuIGZ1bmM7XG4gIH0gY2F0Y2ggKGUpIHt9XG59KCkpO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVQcm9wZXJ0eTtcbiIsCiAgICAiaW1wb3J0IGRlZmluZVByb3BlcnR5IGZyb20gJy4vX2RlZmluZVByb3BlcnR5LmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgYXNzaWduVmFsdWVgIGFuZCBgYXNzaWduTWVyZ2VWYWx1ZWAgd2l0aG91dFxuICogdmFsdWUgY2hlY2tzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgaWYgKGtleSA9PSAnX19wcm90b19fJyAmJiBkZWZpbmVQcm9wZXJ0eSkge1xuICAgIGRlZmluZVByb3BlcnR5KG9iamVjdCwga2V5LCB7XG4gICAgICAnY29uZmlndXJhYmxlJzogdHJ1ZSxcbiAgICAgICdlbnVtZXJhYmxlJzogdHJ1ZSxcbiAgICAgICd2YWx1ZSc6IHZhbHVlLFxuICAgICAgJ3dyaXRhYmxlJzogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUFzc2lnblZhbHVlO1xuIiwKICAgICJpbXBvcnQgYmFzZUFzc2lnblZhbHVlIGZyb20gJy4vX2Jhc2VBc3NpZ25WYWx1ZS5qcyc7XG5pbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhc3NpZ25WYWx1ZWAgZXhjZXB0IHRoYXQgaXQgZG9lc24ndCBhc3NpZ25cbiAqIGB1bmRlZmluZWRgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWVxKG9iamVjdFtrZXldLCB2YWx1ZSkpIHx8XG4gICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSkge1xuICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzc2lnbk1lcmdlVmFsdWU7XG4iLAogICAgIi8qKlxuICogQ3JlYXRlcyBhIGJhc2UgZnVuY3Rpb24gZm9yIG1ldGhvZHMgbGlrZSBgXy5mb3JJbmAgYW5kIGBfLmZvck93bmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFzZUZvcihmcm9tUmlnaHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgaXRlcmF0ZWUsIGtleXNGdW5jKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGl0ZXJhYmxlID0gT2JqZWN0KG9iamVjdCksXG4gICAgICAgIHByb3BzID0ga2V5c0Z1bmMob2JqZWN0KSxcbiAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICB2YXIga2V5ID0gcHJvcHNbZnJvbVJpZ2h0ID8gbGVuZ3RoIDogKytpbmRleF07XG4gICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVba2V5XSwga2V5LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVCYXNlRm9yO1xuIiwKICAgICJpbXBvcnQgY3JlYXRlQmFzZUZvciBmcm9tICcuL19jcmVhdGVCYXNlRm9yLmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgYmFzZUZvck93bmAgd2hpY2ggaXRlcmF0ZXMgb3ZlciBgb2JqZWN0YFxuICogcHJvcGVydGllcyByZXR1cm5lZCBieSBga2V5c0Z1bmNgIGFuZCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGVhY2ggcHJvcGVydHkuXG4gKiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHtGdW5jdGlvbn0ga2V5c0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBvZiBgb2JqZWN0YC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbnZhciBiYXNlRm9yID0gY3JlYXRlQmFzZUZvcigpO1xuXG5leHBvcnQgZGVmYXVsdCBiYXNlRm9yO1xuIiwKICAgICJpbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi9cbnZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xudmFyIGZyZWVNb2R1bGUgPSBmcmVlRXhwb3J0cyAmJiB0eXBlb2YgbW9kdWxlID09ICdvYmplY3QnICYmIG1vZHVsZSAmJiAhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblxuLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbnZhciBtb2R1bGVFeHBvcnRzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLmV4cG9ydHMgPT09IGZyZWVFeHBvcnRzO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBCdWZmZXIgPSBtb2R1bGVFeHBvcnRzID8gcm9vdC5CdWZmZXIgOiB1bmRlZmluZWQsXG4gICAgYWxsb2NVbnNhZmUgPSBCdWZmZXIgPyBCdWZmZXIuYWxsb2NVbnNhZmUgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mICBgYnVmZmVyYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtCdWZmZXJ9IGJ1ZmZlciBUaGUgYnVmZmVyIHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQnVmZmVyKGJ1ZmZlciwgaXNEZWVwKSB7XG4gIGlmIChpc0RlZXApIHtcbiAgICByZXR1cm4gYnVmZmVyLnNsaWNlKCk7XG4gIH1cbiAgdmFyIGxlbmd0aCA9IGJ1ZmZlci5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBhbGxvY1Vuc2FmZSA/IGFsbG9jVW5zYWZlKGxlbmd0aCkgOiBuZXcgYnVmZmVyLmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgYnVmZmVyLmNvcHkocmVzdWx0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVCdWZmZXI7XG4iLAogICAgImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBVaW50OEFycmF5ID0gcm9vdC5VaW50OEFycmF5O1xuXG5leHBvcnQgZGVmYXVsdCBVaW50OEFycmF5O1xuIiwKICAgICJpbXBvcnQgVWludDhBcnJheSBmcm9tICcuL19VaW50OEFycmF5LmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYGFycmF5QnVmZmVyYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheUJ1ZmZlcn0gYXJyYXlCdWZmZXIgVGhlIGFycmF5IGJ1ZmZlciB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtBcnJheUJ1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGFycmF5IGJ1ZmZlci5cbiAqL1xuZnVuY3Rpb24gY2xvbmVBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlcikge1xuICB2YXIgcmVzdWx0ID0gbmV3IGFycmF5QnVmZmVyLmNvbnN0cnVjdG9yKGFycmF5QnVmZmVyLmJ5dGVMZW5ndGgpO1xuICBuZXcgVWludDhBcnJheShyZXN1bHQpLnNldChuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbG9uZUFycmF5QnVmZmVyO1xuIiwKICAgICJpbXBvcnQgY2xvbmVBcnJheUJ1ZmZlciBmcm9tICcuL19jbG9uZUFycmF5QnVmZmVyLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHR5cGVkQXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gdHlwZWRBcnJheSBUaGUgdHlwZWQgYXJyYXkgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHR5cGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBjbG9uZVR5cGVkQXJyYXkodHlwZWRBcnJheSwgaXNEZWVwKSB7XG4gIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKHR5cGVkQXJyYXkuYnVmZmVyKSA6IHR5cGVkQXJyYXkuYnVmZmVyO1xuICByZXR1cm4gbmV3IHR5cGVkQXJyYXkuY29uc3RydWN0b3IoYnVmZmVyLCB0eXBlZEFycmF5LmJ5dGVPZmZzZXQsIHR5cGVkQXJyYXkubGVuZ3RoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVUeXBlZEFycmF5O1xuIiwKICAgICIvKipcbiAqIENvcGllcyB0aGUgdmFsdWVzIG9mIGBzb3VyY2VgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlBcnJheShzb3VyY2UsIGFycmF5KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gc291cmNlLmxlbmd0aDtcblxuICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhcnJheVtpbmRleF0gPSBzb3VyY2VbaW5kZXhdO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29weUFycmF5O1xuIiwKICAgICJpbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdENyZWF0ZSA9IE9iamVjdC5jcmVhdGU7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY3JlYXRlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFzc2lnbmluZ1xuICogcHJvcGVydGllcyB0byB0aGUgY3JlYXRlZCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm90byBUaGUgb2JqZWN0IHRvIGluaGVyaXQgZnJvbS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbnZhciBiYXNlQ3JlYXRlID0gKGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiBvYmplY3QoKSB7fVxuICByZXR1cm4gZnVuY3Rpb24ocHJvdG8pIHtcbiAgICBpZiAoIWlzT2JqZWN0KHByb3RvKSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBpZiAob2JqZWN0Q3JlYXRlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0Q3JlYXRlKHByb3RvKTtcbiAgICB9XG4gICAgb2JqZWN0LnByb3RvdHlwZSA9IHByb3RvO1xuICAgIHZhciByZXN1bHQgPSBuZXcgb2JqZWN0O1xuICAgIG9iamVjdC5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VDcmVhdGU7XG4iLAogICAgIi8qKlxuICogQ3JlYXRlcyBhIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnQgdHJhbnNmb3JtZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIGFyZ3VtZW50IHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBvdmVyQXJnKGZ1bmMsIHRyYW5zZm9ybSkge1xuICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBvdmVyQXJnO1xuIiwKICAgICJpbXBvcnQgb3ZlckFyZyBmcm9tICcuL19vdmVyQXJnLmpzJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgZ2V0UHJvdG90eXBlID0gb3ZlckFyZyhPYmplY3QuZ2V0UHJvdG90eXBlT2YsIE9iamVjdCk7XG5cbmV4cG9ydCBkZWZhdWx0IGdldFByb3RvdHlwZTtcbiIsCiAgICAiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYSBwcm90b3R5cGUgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvdG90eXBlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvdG90eXBlKHZhbHVlKSB7XG4gIHZhciBDdG9yID0gdmFsdWUgJiYgdmFsdWUuY29uc3RydWN0b3IsXG4gICAgICBwcm90byA9ICh0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IucHJvdG90eXBlKSB8fCBvYmplY3RQcm90bztcblxuICByZXR1cm4gdmFsdWUgPT09IHByb3RvO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc1Byb3RvdHlwZTtcbiIsCiAgICAiaW1wb3J0IGJhc2VDcmVhdGUgZnJvbSAnLi9fYmFzZUNyZWF0ZS5qcyc7XG5pbXBvcnQgZ2V0UHJvdG90eXBlIGZyb20gJy4vX2dldFByb3RvdHlwZS5qcyc7XG5pbXBvcnQgaXNQcm90b3R5cGUgZnJvbSAnLi9faXNQcm90b3R5cGUuanMnO1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZU9iamVjdChvYmplY3QpIHtcbiAgcmV0dXJuICh0eXBlb2Ygb2JqZWN0LmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgIWlzUHJvdG90eXBlKG9iamVjdCkpXG4gICAgPyBiYXNlQ3JlYXRlKGdldFByb3RvdHlwZShvYmplY3QpKVxuICAgIDoge307XG59XG5cbmV4cG9ydCBkZWZhdWx0IGluaXRDbG9uZU9iamVjdDtcbiIsCiAgICAiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzT2JqZWN0TGlrZTtcbiIsCiAgICAiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzQXJndW1lbnRzO1xuIiwKICAgICJpbXBvcnQgYmFzZUlzQXJndW1lbnRzIGZyb20gJy4vX2Jhc2VJc0FyZ3VtZW50cy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJndW1lbnRzID0gYmFzZUlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID8gYmFzZUlzQXJndW1lbnRzIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpICYmXG4gICAgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGlzQXJndW1lbnRzO1xuIiwKICAgICIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5YCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgaXNBcnJheTtcbiIsCiAgICAiLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTE7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGxlbmd0aC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvblxuICogW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvbGVuZ3RoKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGxlbmd0aCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzTGVuZ3RoKDMpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNMZW5ndGgoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoSW5maW5pdHkpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzTGVuZ3RoKCczJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0xlbmd0aCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmXG4gICAgdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0xlbmd0aDtcbiIsCiAgICAiaW1wb3J0IGlzRnVuY3Rpb24gZnJvbSAnLi9pc0Z1bmN0aW9uLmpzJztcbmltcG9ydCBpc0xlbmd0aCBmcm9tICcuL2lzTGVuZ3RoLmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLiBBIHZhbHVlIGlzIGNvbnNpZGVyZWQgYXJyYXktbGlrZSBpZiBpdCdzXG4gKiBub3QgYSBmdW5jdGlvbiBhbmQgaGFzIGEgYHZhbHVlLmxlbmd0aGAgdGhhdCdzIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIG9yXG4gKiBlcXVhbCB0byBgMGAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZSgnYWJjJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzQXJyYXlMaWtlO1xuIiwKICAgICJpbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmlzQXJyYXlMaWtlYCBleGNlcHQgdGhhdCBpdCBhbHNvIGNoZWNrcyBpZiBgdmFsdWVgXG4gKiBpcyBhbiBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXktbGlrZSBvYmplY3QsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZU9iamVjdChkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlT2JqZWN0KCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5TGlrZU9iamVjdChfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2VPYmplY3QodmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNBcnJheUxpa2UodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0FycmF5TGlrZU9iamVjdDtcbiIsCiAgICAiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGBmYWxzZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjEzLjBcbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRpbWVzKDIsIF8uc3R1YkZhbHNlKTtcbiAqIC8vID0+IFtmYWxzZSwgZmFsc2VdXG4gKi9cbmZ1bmN0aW9uIHN0dWJGYWxzZSgpIHtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdHViRmFsc2U7XG4iLAogICAgImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuaW1wb3J0IHN0dWJGYWxzZSBmcm9tICcuL3N0dWJGYWxzZS5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxuZXhwb3J0IGRlZmF1bHQgaXNCdWZmZXI7XG4iLAogICAgImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGdldFByb3RvdHlwZSBmcm9tICcuL19nZXRQcm90b3R5cGUuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBVc2VkIHRvIGluZmVyIHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3Rvci4gKi9cbnZhciBvYmplY3RDdG9yU3RyaW5nID0gZnVuY1RvU3RyaW5nLmNhbGwoT2JqZWN0KTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHBsYWluIG9iamVjdCwgdGhhdCBpcywgYW4gb2JqZWN0IGNyZWF0ZWQgYnkgdGhlXG4gKiBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBvbmUgd2l0aCBhIGBbW1Byb3RvdHlwZV1dYCBvZiBgbnVsbGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjguMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogfVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgfHwgYmFzZUdldFRhZyh2YWx1ZSkgIT0gb2JqZWN0VGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwcm90byA9IGdldFByb3RvdHlwZSh2YWx1ZSk7XG4gIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgJ2NvbnN0cnVjdG9yJykgJiYgcHJvdG8uY29uc3RydWN0b3I7XG4gIHJldHVybiB0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IgaW5zdGFuY2VvZiBDdG9yICYmXG4gICAgZnVuY1RvU3RyaW5nLmNhbGwoQ3RvcikgPT0gb2JqZWN0Q3RvclN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQbGFpbk9iamVjdDtcbiIsCiAgICAiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNMZW5ndGggZnJvbSAnLi9pc0xlbmd0aC5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcbiAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBtYXBUYWcgPSAnW29iamVjdCBNYXBdJyxcbiAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJyxcbiAgICB3ZWFrTWFwVGFnID0gJ1tvYmplY3QgV2Vha01hcF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgb2YgdHlwZWQgYXJyYXlzLiAqL1xudmFyIHR5cGVkQXJyYXlUYWdzID0ge307XG50eXBlZEFycmF5VGFnc1tmbG9hdDMyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Zsb2F0NjRUYWddID1cbnR5cGVkQXJyYXlUYWdzW2ludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW2ludDMyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQ4VGFnXSA9XG50eXBlZEFycmF5VGFnc1t1aW50OENsYW1wZWRUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDE2VGFnXSA9XG50eXBlZEFycmF5VGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbnR5cGVkQXJyYXlUYWdzW2FyZ3NUYWddID0gdHlwZWRBcnJheVRhZ3NbYXJyYXlUYWddID1cbnR5cGVkQXJyYXlUYWdzW2FycmF5QnVmZmVyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Jvb2xUYWddID1cbnR5cGVkQXJyYXlUYWdzW2RhdGFWaWV3VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2RhdGVUYWddID1cbnR5cGVkQXJyYXlUYWdzW2Vycm9yVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Z1bmNUYWddID1cbnR5cGVkQXJyYXlUYWdzW21hcFRhZ10gPSB0eXBlZEFycmF5VGFnc1tudW1iZXJUYWddID1cbnR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPSB0eXBlZEFycmF5VGFnc1tyZWdleHBUYWddID1cbnR5cGVkQXJyYXlUYWdzW3NldFRhZ10gPSB0eXBlZEFycmF5VGFnc1tzdHJpbmdUYWddID1cbnR5cGVkQXJyYXlUYWdzW3dlYWtNYXBUYWddID0gZmFsc2U7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNUeXBlZEFycmF5YCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc1R5cGVkQXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiZcbiAgICBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICEhdHlwZWRBcnJheVRhZ3NbYmFzZUdldFRhZyh2YWx1ZSldO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNUeXBlZEFycmF5O1xuIiwKICAgICIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuYXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0b3JpbmcgbWV0YWRhdGEuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlVW5hcnkoZnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gZnVuYyh2YWx1ZSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VVbmFyeTtcbiIsCiAgICAiaW1wb3J0IGZyZWVHbG9iYWwgZnJvbSAnLi9fZnJlZUdsb2JhbC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZVByb2Nlc3MgPSBtb2R1bGVFeHBvcnRzICYmIGZyZWVHbG9iYWwucHJvY2VzcztcblxuLyoqIFVzZWQgdG8gYWNjZXNzIGZhc3RlciBOb2RlLmpzIGhlbHBlcnMuICovXG52YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgLy8gVXNlIGB1dGlsLnR5cGVzYCBmb3IgTm9kZS5qcyAxMCsuXG4gICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICBpZiAodHlwZXMpIHtcbiAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG5cbiAgICAvLyBMZWdhY3kgYHByb2Nlc3MuYmluZGluZygndXRpbCcpYCBmb3IgTm9kZS5qcyA8IDEwLlxuICAgIHJldHVybiBmcmVlUHJvY2VzcyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKTtcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IG5vZGVVdGlsO1xuIiwKICAgICJpbXBvcnQgYmFzZUlzVHlwZWRBcnJheSBmcm9tICcuL19iYXNlSXNUeXBlZEFycmF5LmpzJztcbmltcG9ydCBiYXNlVW5hcnkgZnJvbSAnLi9fYmFzZVVuYXJ5LmpzJztcbmltcG9ydCBub2RlVXRpbCBmcm9tICcuL19ub2RlVXRpbC5qcyc7XG5cbi8qIE5vZGUuanMgaGVscGVyIHJlZmVyZW5jZXMuICovXG52YXIgbm9kZUlzVHlwZWRBcnJheSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzVHlwZWRBcnJheTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgdHlwZWQgYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzVHlwZWRBcnJheShuZXcgVWludDhBcnJheSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkoW10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzVHlwZWRBcnJheSA9IG5vZGVJc1R5cGVkQXJyYXkgPyBiYXNlVW5hcnkobm9kZUlzVHlwZWRBcnJheSkgOiBiYXNlSXNUeXBlZEFycmF5O1xuXG5leHBvcnQgZGVmYXVsdCBpc1R5cGVkQXJyYXk7XG4iLAogICAgIi8qKlxuICogR2V0cyB0aGUgdmFsdWUgYXQgYGtleWAsIHVubGVzcyBga2V5YCBpcyBcIl9fcHJvdG9fX1wiIG9yIFwiY29uc3RydWN0b3JcIi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHNhZmVHZXQob2JqZWN0LCBrZXkpIHtcbiAgaWYgKGtleSA9PT0gJ2NvbnN0cnVjdG9yJyAmJiB0eXBlb2Ygb2JqZWN0W2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIG9iamVjdFtrZXldO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzYWZlR2V0O1xuIiwKICAgICJpbXBvcnQgYmFzZUFzc2lnblZhbHVlIGZyb20gJy4vX2Jhc2VBc3NpZ25WYWx1ZS5qcyc7XG5pbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQXNzaWducyBgdmFsdWVgIHRvIGBrZXlgIG9mIGBvYmplY3RgIGlmIHRoZSBleGlzdGluZyB2YWx1ZSBpcyBub3QgZXF1aXZhbGVudFxuICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV07XG4gIGlmICghKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpICYmIGVxKG9ialZhbHVlLCB2YWx1ZSkpIHx8XG4gICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSkge1xuICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzc2lnblZhbHVlO1xuIiwKICAgICJpbXBvcnQgYXNzaWduVmFsdWUgZnJvbSAnLi9fYXNzaWduVmFsdWUuanMnO1xuaW1wb3J0IGJhc2VBc3NpZ25WYWx1ZSBmcm9tICcuL19iYXNlQXNzaWduVmFsdWUuanMnO1xuXG4vKipcbiAqIENvcGllcyBwcm9wZXJ0aWVzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMgdG8gY29weS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0by5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvcGllZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb3B5T2JqZWN0KHNvdXJjZSwgcHJvcHMsIG9iamVjdCwgY3VzdG9taXplcikge1xuICB2YXIgaXNOZXcgPSAhb2JqZWN0O1xuICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG5cbiAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgICA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNvdXJjZVtrZXldLCBrZXksIG9iamVjdCwgc291cmNlKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3VmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gICAgaWYgKGlzTmV3KSB7XG4gICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29weU9iamVjdDtcbiIsCiAgICAiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50aW1lc2Agd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzXG4gKiBvciBtYXggYXJyYXkgbGVuZ3RoIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IEFycmF5KG4pO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShpbmRleCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVRpbWVzO1xuIiwKICAgICIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xudmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcblxuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgKHR5cGUgIT0gJ3N5bWJvbCcgJiYgcmVJc1VpbnQudGVzdCh2YWx1ZSkpKSAmJlxuICAgICAgICAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzSW5kZXg7XG4iLAogICAgImltcG9ydCBiYXNlVGltZXMgZnJvbSAnLi9fYmFzZVRpbWVzLmpzJztcbmltcG9ydCBpc0FyZ3VtZW50cyBmcm9tICcuL2lzQXJndW1lbnRzLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5pbXBvcnQgaXNCdWZmZXIgZnJvbSAnLi9pc0J1ZmZlci5qcyc7XG5pbXBvcnQgaXNJbmRleCBmcm9tICcuL19pc0luZGV4LmpzJztcbmltcG9ydCBpc1R5cGVkQXJyYXkgZnJvbSAnLi9pc1R5cGVkQXJyYXkuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIGFycmF5LWxpa2UgYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluaGVyaXRlZCBTcGVjaWZ5IHJldHVybmluZyBpbmhlcml0ZWQgcHJvcGVydHkgbmFtZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBhcnJheUxpa2VLZXlzKHZhbHVlLCBpbmhlcml0ZWQpIHtcbiAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSksXG4gICAgICBpc0FyZyA9ICFpc0FyciAmJiBpc0FyZ3VtZW50cyh2YWx1ZSksXG4gICAgICBpc0J1ZmYgPSAhaXNBcnIgJiYgIWlzQXJnICYmIGlzQnVmZmVyKHZhbHVlKSxcbiAgICAgIGlzVHlwZSA9ICFpc0FyciAmJiAhaXNBcmcgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkodmFsdWUpLFxuICAgICAgc2tpcEluZGV4ZXMgPSBpc0FyciB8fCBpc0FyZyB8fCBpc0J1ZmYgfHwgaXNUeXBlLFxuICAgICAgcmVzdWx0ID0gc2tpcEluZGV4ZXMgPyBiYXNlVGltZXModmFsdWUubGVuZ3RoLCBTdHJpbmcpIDogW10sXG4gICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgIGlmICgoaW5oZXJpdGVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpICYmXG4gICAgICAgICEoc2tpcEluZGV4ZXMgJiYgKFxuICAgICAgICAgICAvLyBTYWZhcmkgOSBoYXMgZW51bWVyYWJsZSBgYXJndW1lbnRzLmxlbmd0aGAgaW4gc3RyaWN0IG1vZGUuXG4gICAgICAgICAgIGtleSA9PSAnbGVuZ3RoJyB8fFxuICAgICAgICAgICAvLyBOb2RlLmpzIDAuMTAgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gYnVmZmVycy5cbiAgICAgICAgICAgKGlzQnVmZiAmJiAoa2V5ID09ICdvZmZzZXQnIHx8IGtleSA9PSAncGFyZW50JykpIHx8XG4gICAgICAgICAgIC8vIFBoYW50b21KUyAyIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIHR5cGVkIGFycmF5cy5cbiAgICAgICAgICAgKGlzVHlwZSAmJiAoa2V5ID09ICdidWZmZXInIHx8IGtleSA9PSAnYnl0ZUxlbmd0aCcgfHwga2V5ID09ICdieXRlT2Zmc2V0JykpIHx8XG4gICAgICAgICAgIC8vIFNraXAgaW5kZXggcHJvcGVydGllcy5cbiAgICAgICAgICAgaXNJbmRleChrZXksIGxlbmd0aClcbiAgICAgICAgKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFycmF5TGlrZUtleXM7XG4iLAogICAgIi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlXG4gKiBbYE9iamVjdC5rZXlzYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXG4gKiBleGNlcHQgdGhhdCBpdCBpbmNsdWRlcyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBuYXRpdmVLZXlzSW4ob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgaWYgKG9iamVjdCAhPSBudWxsKSB7XG4gICAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVLZXlzSW47XG4iLAogICAgImltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcbmltcG9ydCBpc1Byb3RvdHlwZSBmcm9tICcuL19pc1Byb3RvdHlwZS5qcyc7XG5pbXBvcnQgbmF0aXZlS2V5c0luIGZyb20gJy4vX25hdGl2ZUtleXNJbi5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c0luYCB3aGljaCBkb2Vzbid0IHRyZWF0IHNwYXJzZSBhcnJheXMgYXMgZGVuc2UuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VLZXlzSW4ob2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBuYXRpdmVLZXlzSW4ob2JqZWN0KTtcbiAgfVxuICB2YXIgaXNQcm90byA9IGlzUHJvdG90eXBlKG9iamVjdCksXG4gICAgICByZXN1bHQgPSBbXTtcblxuICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG4gICAgaWYgKCEoa2V5ID09ICdjb25zdHJ1Y3RvcicgJiYgKGlzUHJvdG8gfHwgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VLZXlzSW47XG4iLAogICAgImltcG9ydCBhcnJheUxpa2VLZXlzIGZyb20gJy4vX2FycmF5TGlrZUtleXMuanMnO1xuaW1wb3J0IGJhc2VLZXlzSW4gZnJvbSAnLi9fYmFzZUtleXNJbi5qcyc7XG5pbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXNJbihuZXcgRm9vKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICovXG5mdW5jdGlvbiBrZXlzSW4ob2JqZWN0KSB7XG4gIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QsIHRydWUpIDogYmFzZUtleXNJbihvYmplY3QpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBrZXlzSW47XG4iLAogICAgImltcG9ydCBjb3B5T2JqZWN0IGZyb20gJy4vX2NvcHlPYmplY3QuanMnO1xuaW1wb3J0IGtleXNJbiBmcm9tICcuL2tleXNJbi5qcyc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHBsYWluIG9iamVjdCBmbGF0dGVuaW5nIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZ1xuICoga2V5ZWQgcHJvcGVydGllcyBvZiBgdmFsdWVgIHRvIG93biBwcm9wZXJ0aWVzIG9mIHRoZSBwbGFpbiBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgcGxhaW4gb2JqZWN0LlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmFzc2lnbih7ICdhJzogMSB9LCBuZXcgRm9vKTtcbiAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICpcbiAqIF8uYXNzaWduKHsgJ2EnOiAxIH0sIF8udG9QbGFpbk9iamVjdChuZXcgRm9vKSk7XG4gKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfVxuICovXG5mdW5jdGlvbiB0b1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiBjb3B5T2JqZWN0KHZhbHVlLCBrZXlzSW4odmFsdWUpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9QbGFpbk9iamVjdDtcbiIsCiAgICAiaW1wb3J0IGFzc2lnbk1lcmdlVmFsdWUgZnJvbSAnLi9fYXNzaWduTWVyZ2VWYWx1ZS5qcyc7XG5pbXBvcnQgY2xvbmVCdWZmZXIgZnJvbSAnLi9fY2xvbmVCdWZmZXIuanMnO1xuaW1wb3J0IGNsb25lVHlwZWRBcnJheSBmcm9tICcuL19jbG9uZVR5cGVkQXJyYXkuanMnO1xuaW1wb3J0IGNvcHlBcnJheSBmcm9tICcuL19jb3B5QXJyYXkuanMnO1xuaW1wb3J0IGluaXRDbG9uZU9iamVjdCBmcm9tICcuL19pbml0Q2xvbmVPYmplY3QuanMnO1xuaW1wb3J0IGlzQXJndW1lbnRzIGZyb20gJy4vaXNBcmd1bWVudHMuanMnO1xuaW1wb3J0IGlzQXJyYXkgZnJvbSAnLi9pc0FycmF5LmpzJztcbmltcG9ydCBpc0FycmF5TGlrZU9iamVjdCBmcm9tICcuL2lzQXJyYXlMaWtlT2JqZWN0LmpzJztcbmltcG9ydCBpc0J1ZmZlciBmcm9tICcuL2lzQnVmZmVyLmpzJztcbmltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICcuL2lzUGxhaW5PYmplY3QuanMnO1xuaW1wb3J0IGlzVHlwZWRBcnJheSBmcm9tICcuL2lzVHlwZWRBcnJheS5qcyc7XG5pbXBvcnQgc2FmZUdldCBmcm9tICcuL19zYWZlR2V0LmpzJztcbmltcG9ydCB0b1BsYWluT2JqZWN0IGZyb20gJy4vdG9QbGFpbk9iamVjdC5qcyc7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlTWVyZ2VgIGZvciBhcnJheXMgYW5kIG9iamVjdHMgd2hpY2ggcGVyZm9ybXNcbiAqIGRlZXAgbWVyZ2VzIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gKiByZWZlcmVuY2VzIHRvIGJlIG1lcmdlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gbWVyZ2UuXG4gKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gbWVyZ2VGdW5jIFRoZSBmdW5jdGlvbiB0byBtZXJnZSB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICogIGNvdW50ZXJwYXJ0cy5cbiAqL1xuZnVuY3Rpb24gYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgbWVyZ2VGdW5jLCBjdXN0b21pemVyLCBzdGFjaykge1xuICB2YXIgb2JqVmFsdWUgPSBzYWZlR2V0KG9iamVjdCwga2V5KSxcbiAgICAgIHNyY1ZhbHVlID0gc2FmZUdldChzb3VyY2UsIGtleSksXG4gICAgICBzdGFja2VkID0gc3RhY2suZ2V0KHNyY1ZhbHVlKTtcblxuICBpZiAoc3RhY2tlZCkge1xuICAgIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIHN0YWNrZWQpO1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgPyBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSwgKGtleSArICcnKSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIHZhciBpc0NvbW1vbiA9IG5ld1ZhbHVlID09PSB1bmRlZmluZWQ7XG5cbiAgaWYgKGlzQ29tbW9uKSB7XG4gICAgdmFyIGlzQXJyID0gaXNBcnJheShzcmNWYWx1ZSksXG4gICAgICAgIGlzQnVmZiA9ICFpc0FyciAmJiBpc0J1ZmZlcihzcmNWYWx1ZSksXG4gICAgICAgIGlzVHlwZWQgPSAhaXNBcnIgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkoc3JjVmFsdWUpO1xuXG4gICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICBpZiAoaXNBcnIgfHwgaXNCdWZmIHx8IGlzVHlwZWQpIHtcbiAgICAgIGlmIChpc0FycmF5KG9ialZhbHVlKSkge1xuICAgICAgICBuZXdWYWx1ZSA9IG9ialZhbHVlO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoaXNBcnJheUxpa2VPYmplY3Qob2JqVmFsdWUpKSB7XG4gICAgICAgIG5ld1ZhbHVlID0gY29weUFycmF5KG9ialZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGlzQnVmZikge1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICBuZXdWYWx1ZSA9IGNsb25lQnVmZmVyKHNyY1ZhbHVlLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGlzVHlwZWQpIHtcbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgbmV3VmFsdWUgPSBjbG9uZVR5cGVkQXJyYXkoc3JjVmFsdWUsIHRydWUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIG5ld1ZhbHVlID0gW107XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzUGxhaW5PYmplY3Qoc3JjVmFsdWUpIHx8IGlzQXJndW1lbnRzKHNyY1ZhbHVlKSkge1xuICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcbiAgICAgIGlmIChpc0FyZ3VtZW50cyhvYmpWYWx1ZSkpIHtcbiAgICAgICAgbmV3VmFsdWUgPSB0b1BsYWluT2JqZWN0KG9ialZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKCFpc09iamVjdChvYmpWYWx1ZSkgfHwgaXNGdW5jdGlvbihvYmpWYWx1ZSkpIHtcbiAgICAgICAgbmV3VmFsdWUgPSBpbml0Q2xvbmVPYmplY3Qoc3JjVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIGlmIChpc0NvbW1vbikge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IG1lcmdlIG9iamVjdHMgYW5kIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIHN0YWNrLnNldChzcmNWYWx1ZSwgbmV3VmFsdWUpO1xuICAgIG1lcmdlRnVuYyhuZXdWYWx1ZSwgc3JjVmFsdWUsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgc3RhY2tbJ2RlbGV0ZSddKHNyY1ZhbHVlKTtcbiAgfVxuICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VNZXJnZURlZXA7XG4iLAogICAgImltcG9ydCBTdGFjayBmcm9tICcuL19TdGFjay5qcyc7XG5pbXBvcnQgYXNzaWduTWVyZ2VWYWx1ZSBmcm9tICcuL19hc3NpZ25NZXJnZVZhbHVlLmpzJztcbmltcG9ydCBiYXNlRm9yIGZyb20gJy4vX2Jhc2VGb3IuanMnO1xuaW1wb3J0IGJhc2VNZXJnZURlZXAgZnJvbSAnLi9fYmFzZU1lcmdlRGVlcC5qcyc7XG5pbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5pbXBvcnQga2V5c0luIGZyb20gJy4va2V5c0luLmpzJztcbmltcG9ydCBzYWZlR2V0IGZyb20gJy4vX3NhZmVHZXQuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lcmdlYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgbWVyZ2VkIHZhbHVlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIHZhbHVlcyBhbmQgdGhlaXIgbWVyZ2VkXG4gKiAgY291bnRlcnBhcnRzLlxuICovXG5mdW5jdGlvbiBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjaykge1xuICBpZiAob2JqZWN0ID09PSBzb3VyY2UpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYmFzZUZvcihzb3VyY2UsIGZ1bmN0aW9uKHNyY1ZhbHVlLCBrZXkpIHtcbiAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgIGlmIChpc09iamVjdChzcmNWYWx1ZSkpIHtcbiAgICAgIGJhc2VNZXJnZURlZXAob2JqZWN0LCBzb3VyY2UsIGtleSwgc3JjSW5kZXgsIGJhc2VNZXJnZSwgY3VzdG9taXplciwgc3RhY2spO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICAgICAgPyBjdXN0b21pemVyKHNhZmVHZXQob2JqZWN0LCBrZXkpLCBzcmNWYWx1ZSwgKGtleSArICcnKSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICB9XG4gIH0sIGtleXNJbik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VNZXJnZTtcbiIsCiAgICAiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBpdCByZWNlaXZlcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHsqfSB2YWx1ZSBBbnkgdmFsdWUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyBgdmFsdWVgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqXG4gKiBjb25zb2xlLmxvZyhfLmlkZW50aXR5KG9iamVjdCkgPT09IG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlkZW50aXR5KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaWRlbnRpdHk7XG4iLAogICAgIi8qKlxuICogQSBmYXN0ZXIgYWx0ZXJuYXRpdmUgdG8gYEZ1bmN0aW9uI2FwcGx5YCwgdGhpcyBmdW5jdGlvbiBpbnZva2VzIGBmdW5jYFxuICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgIGFuZCB0aGUgYXJndW1lbnRzIG9mIGBhcmdzYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxuICogQHBhcmFtIHsqfSB0aGlzQXJnIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gKiBAcGFyYW0ge0FycmF5fSBhcmdzIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuXG4gKi9cbmZ1bmN0aW9uIGFwcGx5KGZ1bmMsIHRoaXNBcmcsIGFyZ3MpIHtcbiAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgIGNhc2UgMDogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnKTtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSk7XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTtcbiAgfVxuICByZXR1cm4gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXBwbHk7XG4iLAogICAgImltcG9ydCBhcHBseSBmcm9tICcuL19hcHBseS5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heDtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VSZXN0YCB3aGljaCB0cmFuc2Zvcm1zIHRoZSByZXN0IGFycmF5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtIFRoZSByZXN0IGFycmF5IHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBvdmVyUmVzdChmdW5jLCBzdGFydCwgdHJhbnNmb3JtKSB7XG4gIHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0ID09PSB1bmRlZmluZWQgPyAoZnVuYy5sZW5ndGggLSAxKSA6IHN0YXJ0LCAwKTtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBhcmdzID0gYXJndW1lbnRzLFxuICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBuYXRpdmVNYXgoYXJncy5sZW5ndGggLSBzdGFydCwgMCksXG4gICAgICAgIGFycmF5ID0gQXJyYXkobGVuZ3RoKTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBhcnJheVtpbmRleF0gPSBhcmdzW3N0YXJ0ICsgaW5kZXhdO1xuICAgIH1cbiAgICBpbmRleCA9IC0xO1xuICAgIHZhciBvdGhlckFyZ3MgPSBBcnJheShzdGFydCArIDEpO1xuICAgIHdoaWxlICgrK2luZGV4IDwgc3RhcnQpIHtcbiAgICAgIG90aGVyQXJnc1tpbmRleF0gPSBhcmdzW2luZGV4XTtcbiAgICB9XG4gICAgb3RoZXJBcmdzW3N0YXJ0XSA9IHRyYW5zZm9ybShhcnJheSk7XG4gICAgcmV0dXJuIGFwcGx5KGZ1bmMsIHRoaXMsIG90aGVyQXJncyk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IG92ZXJSZXN0O1xuIiwKICAgICIvKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYHZhbHVlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuNC4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmV0dXJuIGZyb20gdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbnN0YW50IGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IF8udGltZXMoMiwgXy5jb25zdGFudCh7ICdhJzogMSB9KSk7XG4gKlxuICogY29uc29sZS5sb2cob2JqZWN0cyk7XG4gKiAvLyA9PiBbeyAnYSc6IDEgfSwgeyAnYSc6IDEgfV1cbiAqXG4gKiBjb25zb2xlLmxvZyhvYmplY3RzWzBdID09PSBvYmplY3RzWzFdKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gY29uc3RhbnQodmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29uc3RhbnQ7XG4iLAogICAgImltcG9ydCBjb25zdGFudCBmcm9tICcuL2NvbnN0YW50LmpzJztcbmltcG9ydCBkZWZpbmVQcm9wZXJ0eSBmcm9tICcuL19kZWZpbmVQcm9wZXJ0eS5qcyc7XG5pbXBvcnQgaWRlbnRpdHkgZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHNldFRvU3RyaW5nYCB3aXRob3V0IHN1cHBvcnQgZm9yIGhvdCBsb29wIHNob3J0aW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzdHJpbmcgVGhlIGB0b1N0cmluZ2AgcmVzdWx0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAqL1xudmFyIGJhc2VTZXRUb1N0cmluZyA9ICFkZWZpbmVQcm9wZXJ0eSA/IGlkZW50aXR5IDogZnVuY3Rpb24oZnVuYywgc3RyaW5nKSB7XG4gIHJldHVybiBkZWZpbmVQcm9wZXJ0eShmdW5jLCAndG9TdHJpbmcnLCB7XG4gICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXG4gICAgJ2VudW1lcmFibGUnOiBmYWxzZSxcbiAgICAndmFsdWUnOiBjb25zdGFudChzdHJpbmcpLFxuICAgICd3cml0YWJsZSc6IHRydWVcbiAgfSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBiYXNlU2V0VG9TdHJpbmc7XG4iLAogICAgIi8qKiBVc2VkIHRvIGRldGVjdCBob3QgZnVuY3Rpb25zIGJ5IG51bWJlciBvZiBjYWxscyB3aXRoaW4gYSBzcGFuIG9mIG1pbGxpc2Vjb25kcy4gKi9cbnZhciBIT1RfQ09VTlQgPSA4MDAsXG4gICAgSE9UX1NQQU4gPSAxNjtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU5vdyA9IERhdGUubm93O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0J2xsIHNob3J0IG91dCBhbmQgaW52b2tlIGBpZGVudGl0eWAgaW5zdGVhZFxuICogb2YgYGZ1bmNgIHdoZW4gaXQncyBjYWxsZWQgYEhPVF9DT1VOVGAgb3IgbW9yZSB0aW1lcyBpbiBgSE9UX1NQQU5gXG4gKiBtaWxsaXNlY29uZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHJlc3RyaWN0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc2hvcnRhYmxlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBzaG9ydE91dChmdW5jKSB7XG4gIHZhciBjb3VudCA9IDAsXG4gICAgICBsYXN0Q2FsbGVkID0gMDtcblxuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0YW1wID0gbmF0aXZlTm93KCksXG4gICAgICAgIHJlbWFpbmluZyA9IEhPVF9TUEFOIC0gKHN0YW1wIC0gbGFzdENhbGxlZCk7XG5cbiAgICBsYXN0Q2FsbGVkID0gc3RhbXA7XG4gICAgaWYgKHJlbWFpbmluZyA+IDApIHtcbiAgICAgIGlmICgrK2NvdW50ID49IEhPVF9DT1VOVCkge1xuICAgICAgICByZXR1cm4gYXJndW1lbnRzWzBdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb3VudCA9IDA7XG4gICAgfVxuICAgIHJldHVybiBmdW5jLmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2hvcnRPdXQ7XG4iLAogICAgImltcG9ydCBiYXNlU2V0VG9TdHJpbmcgZnJvbSAnLi9fYmFzZVNldFRvU3RyaW5nLmpzJztcbmltcG9ydCBzaG9ydE91dCBmcm9tICcuL19zaG9ydE91dC5qcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgYHRvU3RyaW5nYCBtZXRob2Qgb2YgYGZ1bmNgIHRvIHJldHVybiBgc3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gKi9cbnZhciBzZXRUb1N0cmluZyA9IHNob3J0T3V0KGJhc2VTZXRUb1N0cmluZyk7XG5cbmV4cG9ydCBkZWZhdWx0IHNldFRvU3RyaW5nO1xuIiwKICAgICJpbXBvcnQgaWRlbnRpdHkgZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgb3ZlclJlc3QgZnJvbSAnLi9fb3ZlclJlc3QuanMnO1xuaW1wb3J0IHNldFRvU3RyaW5nIGZyb20gJy4vX3NldFRvU3RyaW5nLmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZXN0YCB3aGljaCBkb2Vzbid0IHZhbGlkYXRlIG9yIGNvZXJjZSBhcmd1bWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVJlc3QoZnVuYywgc3RhcnQpIHtcbiAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCBpZGVudGl0eSksIGZ1bmMgKyAnJyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VSZXN0O1xuIiwKICAgICJpbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5pbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5pbXBvcnQgaXNJbmRleCBmcm9tICcuL19pc0luZGV4LmpzJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gKiBAcGFyYW0geyp9IGluZGV4IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgaW5kZXggb3Iga2V5IGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBvYmplY3QgYXJndW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLFxuICogIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB0eXBlID0gdHlwZW9mIGluZGV4O1xuICBpZiAodHlwZSA9PSAnbnVtYmVyJ1xuICAgICAgICA/IChpc0FycmF5TGlrZShvYmplY3QpICYmIGlzSW5kZXgoaW5kZXgsIG9iamVjdC5sZW5ndGgpKVxuICAgICAgICA6ICh0eXBlID09ICdzdHJpbmcnICYmIGluZGV4IGluIG9iamVjdClcbiAgICAgICkge1xuICAgIHJldHVybiBlcShvYmplY3RbaW5kZXhdLCB2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0l0ZXJhdGVlQ2FsbDtcbiIsCiAgICAiaW1wb3J0IGJhc2VSZXN0IGZyb20gJy4vX2Jhc2VSZXN0LmpzJztcbmltcG9ydCBpc0l0ZXJhdGVlQ2FsbCBmcm9tICcuL19pc0l0ZXJhdGVlQ2FsbC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhc3NpZ25lciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA+IDEgPyBzb3VyY2VzW2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkLFxuICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gICAgY3VzdG9taXplciA9IChhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpXG4gICAgICA/IChsZW5ndGgtLSwgY3VzdG9taXplcilcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA8IDMgPyB1bmRlZmluZWQgOiBjdXN0b21pemVyO1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9XG4gICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUFzc2lnbmVyO1xuIiwKICAgICJpbXBvcnQgYmFzZU1lcmdlIGZyb20gJy4vX2Jhc2VNZXJnZS5qcyc7XG5pbXBvcnQgY3JlYXRlQXNzaWduZXIgZnJvbSAnLi9fY3JlYXRlQXNzaWduZXIuanMnO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBtZXJnZXMgb3duIGFuZFxuICogaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdHMgaW50byB0aGVcbiAqIGRlc3RpbmF0aW9uIG9iamVjdC4gU291cmNlIHByb3BlcnRpZXMgdGhhdCByZXNvbHZlIHRvIGB1bmRlZmluZWRgIGFyZVxuICogc2tpcHBlZCBpZiBhIGRlc3RpbmF0aW9uIHZhbHVlIGV4aXN0cy4gQXJyYXkgYW5kIHBsYWluIG9iamVjdCBwcm9wZXJ0aWVzXG4gKiBhcmUgbWVyZ2VkIHJlY3Vyc2l2ZWx5LiBPdGhlciBvYmplY3RzIGFuZCB2YWx1ZSB0eXBlcyBhcmUgb3ZlcnJpZGRlbiBieVxuICogYXNzaWdubWVudC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LiBTdWJzZXF1ZW50XG4gKiBzb3VyY2VzIG92ZXJ3cml0ZSBwcm9wZXJ0eSBhc3NpZ25tZW50cyBvZiBwcmV2aW91cyBzb3VyY2VzLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC41LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHtcbiAqICAgJ2EnOiBbeyAnYic6IDIgfSwgeyAnZCc6IDQgfV1cbiAqIH07XG4gKlxuICogdmFyIG90aGVyID0ge1xuICogICAnYSc6IFt7ICdjJzogMyB9LCB7ICdlJzogNSB9XVxuICogfTtcbiAqXG4gKiBfLm1lcmdlKG9iamVjdCwgb3RoZXIpO1xuICogLy8gPT4geyAnYSc6IFt7ICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2QnOiA0LCAnZSc6IDUgfV0gfVxuICovXG52YXIgbWVyZ2UgPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgpIHtcbiAgYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgbWVyZ2U7XG4iLAogICAgImV4cG9ydCB2YXIgTVMgPSAnLW1zLSdcbmV4cG9ydCB2YXIgTU9aID0gJy1tb3otJ1xuZXhwb3J0IHZhciBXRUJLSVQgPSAnLXdlYmtpdC0nXG5cbmV4cG9ydCB2YXIgQ09NTUVOVCA9ICdjb21tJ1xuZXhwb3J0IHZhciBSVUxFU0VUID0gJ3J1bGUnXG5leHBvcnQgdmFyIERFQ0xBUkFUSU9OID0gJ2RlY2wnXG5cbmV4cG9ydCB2YXIgUEFHRSA9ICdAcGFnZSdcbmV4cG9ydCB2YXIgTUVESUEgPSAnQG1lZGlhJ1xuZXhwb3J0IHZhciBJTVBPUlQgPSAnQGltcG9ydCdcbmV4cG9ydCB2YXIgQ0hBUlNFVCA9ICdAY2hhcnNldCdcbmV4cG9ydCB2YXIgVklFV1BPUlQgPSAnQHZpZXdwb3J0J1xuZXhwb3J0IHZhciBTVVBQT1JUUyA9ICdAc3VwcG9ydHMnXG5leHBvcnQgdmFyIERPQ1VNRU5UID0gJ0Bkb2N1bWVudCdcbmV4cG9ydCB2YXIgTkFNRVNQQUNFID0gJ0BuYW1lc3BhY2UnXG5leHBvcnQgdmFyIEtFWUZSQU1FUyA9ICdAa2V5ZnJhbWVzJ1xuZXhwb3J0IHZhciBGT05UX0ZBQ0UgPSAnQGZvbnQtZmFjZSdcbmV4cG9ydCB2YXIgQ09VTlRFUl9TVFlMRSA9ICdAY291bnRlci1zdHlsZSdcbmV4cG9ydCB2YXIgRk9OVF9GRUFUVVJFX1ZBTFVFUyA9ICdAZm9udC1mZWF0dXJlLXZhbHVlcydcbmV4cG9ydCB2YXIgTEFZRVIgPSAnQGxheWVyJ1xuZXhwb3J0IHZhciBTQ09QRSA9ICdAc2NvcGUnXG4iLAogICAgIi8qKlxuICogQHBhcmFtIHtudW1iZXJ9XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCB2YXIgYWJzID0gTWF0aC5hYnNcblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn1cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IHZhciBmcm9tID0gU3RyaW5nLmZyb21DaGFyQ29kZVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fVxuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgdmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ25cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGhcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2ggKHZhbHVlLCBsZW5ndGgpIHtcblx0cmV0dXJuIGNoYXJhdCh2YWx1ZSwgMCkgXiA0NSA/ICgoKCgoKChsZW5ndGggPDwgMikgXiBjaGFyYXQodmFsdWUsIDApKSA8PCAyKSBeIGNoYXJhdCh2YWx1ZSwgMSkpIDw8IDIpIF4gY2hhcmF0KHZhbHVlLCAyKSkgPDwgMikgXiBjaGFyYXQodmFsdWUsIDMpIDogMFxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJpbSAodmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlLnRyaW0oKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtSZWdFeHB9IHBhdHRlcm5cbiAqIEByZXR1cm4ge3N0cmluZz99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaCAodmFsdWUsIHBhdHRlcm4pIHtcblx0cmV0dXJuICh2YWx1ZSA9IHBhdHRlcm4uZXhlYyh2YWx1ZSkpID8gdmFsdWVbMF0gOiB2YWx1ZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHsoc3RyaW5nfFJlZ0V4cCl9IHBhdHRlcm5cbiAqIEBwYXJhbSB7c3RyaW5nfSByZXBsYWNlbWVudFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZSAodmFsdWUsIHBhdHRlcm4sIHJlcGxhY2VtZW50KSB7XG5cdHJldHVybiB2YWx1ZS5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VtZW50KVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFxuICogQHBhcmFtIHtudW1iZXJ9IHBvc2l0aW9uXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleG9mICh2YWx1ZSwgc2VhcmNoLCBwb3NpdGlvbikge1xuXHRyZXR1cm4gdmFsdWUuaW5kZXhPZihzZWFyY2gsIHBvc2l0aW9uKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGFyYXQgKHZhbHVlLCBpbmRleCkge1xuXHRyZXR1cm4gdmFsdWUuY2hhckNvZGVBdChpbmRleCkgfCAwXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcn0gYmVnaW5cbiAqIEBwYXJhbSB7bnVtYmVyfSBlbmRcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1YnN0ciAodmFsdWUsIGJlZ2luLCBlbmQpIHtcblx0cmV0dXJuIHZhbHVlLnNsaWNlKGJlZ2luLCBlbmQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJsZW4gKHZhbHVlKSB7XG5cdHJldHVybiB2YWx1ZS5sZW5ndGhcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2FueVtdfSB2YWx1ZVxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2l6ZW9mICh2YWx1ZSkge1xuXHRyZXR1cm4gdmFsdWUubGVuZ3RoXG59XG5cbi8qKlxuICogQHBhcmFtIHthbnl9IHZhbHVlXG4gKiBAcGFyYW0ge2FueVtdfSBhcnJheVxuICogQHJldHVybiB7YW55fVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kICh2YWx1ZSwgYXJyYXkpIHtcblx0cmV0dXJuIGFycmF5LnB1c2godmFsdWUpLCB2YWx1ZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nW119IGFycmF5XG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZSAoYXJyYXksIGNhbGxiYWNrKSB7XG5cdHJldHVybiBhcnJheS5tYXAoY2FsbGJhY2spLmpvaW4oJycpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gYXJyYXlcbiAqIEBwYXJhbSB7UmVnRXhwfSBwYXR0ZXJuXG4gKiBAcmV0dXJuIHtzdHJpbmdbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlciAoYXJyYXksIHBhdHRlcm4pIHtcblx0cmV0dXJuIGFycmF5LmZpbHRlcihmdW5jdGlvbiAodmFsdWUpIHsgcmV0dXJuICFtYXRjaCh2YWx1ZSwgcGF0dGVybikgfSlcbn1cbiIsCiAgICAiaW1wb3J0IHtmcm9tLCB0cmltLCBjaGFyYXQsIHN0cmxlbiwgc3Vic3RyLCBhcHBlbmQsIGFzc2lnbn0gZnJvbSAnLi9VdGlsaXR5LmpzJ1xuXG5leHBvcnQgdmFyIGxpbmUgPSAxXG5leHBvcnQgdmFyIGNvbHVtbiA9IDFcbmV4cG9ydCB2YXIgbGVuZ3RoID0gMFxuZXhwb3J0IHZhciBwb3NpdGlvbiA9IDBcbmV4cG9ydCB2YXIgY2hhcmFjdGVyID0gMFxuZXhwb3J0IHZhciBjaGFyYWN0ZXJzID0gJydcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7b2JqZWN0IHwgbnVsbH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3QgfCBudWxsfSBwYXJlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge3N0cmluZ1tdIHwgc3RyaW5nfSBwcm9wc1xuICogQHBhcmFtIHtvYmplY3RbXSB8IHN0cmluZ30gY2hpbGRyZW5cbiAqIEBwYXJhbSB7b2JqZWN0W119IHNpYmxpbmdzXG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub2RlICh2YWx1ZSwgcm9vdCwgcGFyZW50LCB0eXBlLCBwcm9wcywgY2hpbGRyZW4sIGxlbmd0aCwgc2libGluZ3MpIHtcblx0cmV0dXJuIHt2YWx1ZTogdmFsdWUsIHJvb3Q6IHJvb3QsIHBhcmVudDogcGFyZW50LCB0eXBlOiB0eXBlLCBwcm9wczogcHJvcHMsIGNoaWxkcmVuOiBjaGlsZHJlbiwgbGluZTogbGluZSwgY29sdW1uOiBjb2x1bW4sIGxlbmd0aDogbGVuZ3RoLCByZXR1cm46ICcnLCBzaWJsaW5nczogc2libGluZ3N9XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29weSAocm9vdCwgcHJvcHMpIHtcblx0cmV0dXJuIGFzc2lnbihub2RlKCcnLCBudWxsLCBudWxsLCAnJywgbnVsbCwgbnVsbCwgMCwgcm9vdC5zaWJsaW5ncyksIHJvb3QsIHtsZW5ndGg6IC1yb290Lmxlbmd0aH0sIHByb3BzKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSByb290XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaWZ0IChyb290KSB7XG5cdHdoaWxlIChyb290LnJvb3QpXG5cdFx0cm9vdCA9IGNvcHkocm9vdC5yb290LCB7Y2hpbGRyZW46IFtyb290XX0pXG5cblx0YXBwZW5kKHJvb3QsIHJvb3Quc2libGluZ3MpXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhciAoKSB7XG5cdHJldHVybiBjaGFyYWN0ZXJcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmV2ICgpIHtcblx0Y2hhcmFjdGVyID0gcG9zaXRpb24gPiAwID8gY2hhcmF0KGNoYXJhY3RlcnMsIC0tcG9zaXRpb24pIDogMFxuXG5cdGlmIChjb2x1bW4tLSwgY2hhcmFjdGVyID09PSAxMClcblx0XHRjb2x1bW4gPSAxLCBsaW5lLS1cblxuXHRyZXR1cm4gY2hhcmFjdGVyXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbmV4dCAoKSB7XG5cdGNoYXJhY3RlciA9IHBvc2l0aW9uIDwgbGVuZ3RoID8gY2hhcmF0KGNoYXJhY3RlcnMsIHBvc2l0aW9uKyspIDogMFxuXG5cdGlmIChjb2x1bW4rKywgY2hhcmFjdGVyID09PSAxMClcblx0XHRjb2x1bW4gPSAxLCBsaW5lKytcblxuXHRyZXR1cm4gY2hhcmFjdGVyXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGVlayAoKSB7XG5cdHJldHVybiBjaGFyYXQoY2hhcmFjdGVycywgcG9zaXRpb24pXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FyZXQgKCkge1xuXHRyZXR1cm4gcG9zaXRpb25cbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gYmVnaW5cbiAqIEBwYXJhbSB7bnVtYmVyfSBlbmRcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNsaWNlIChiZWdpbiwgZW5kKSB7XG5cdHJldHVybiBzdWJzdHIoY2hhcmFjdGVycywgYmVnaW4sIGVuZClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZVxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9rZW4gKHR5cGUpIHtcblx0c3dpdGNoICh0eXBlKSB7XG5cdFx0Ly8gXFwwIFxcdCBcXG4gXFxyIFxccyB3aGl0ZXNwYWNlIHRva2VuXG5cdFx0Y2FzZSAwOiBjYXNlIDk6IGNhc2UgMTA6IGNhc2UgMTM6IGNhc2UgMzI6XG5cdFx0XHRyZXR1cm4gNVxuXHRcdC8vICEgKyAsIC8gPiBAIH4gaXNvbGF0ZSB0b2tlblxuXHRcdGNhc2UgMzM6IGNhc2UgNDM6IGNhc2UgNDQ6IGNhc2UgNDc6IGNhc2UgNjI6IGNhc2UgNjQ6IGNhc2UgMTI2OlxuXHRcdC8vIDsgeyB9IGJyZWFrcG9pbnQgdG9rZW5cblx0XHRjYXNlIDU5OiBjYXNlIDEyMzogY2FzZSAxMjU6XG5cdFx0XHRyZXR1cm4gNFxuXHRcdC8vIDogYWNjb21wYW5pZWQgdG9rZW5cblx0XHRjYXNlIDU4OlxuXHRcdFx0cmV0dXJuIDNcblx0XHQvLyBcIiAnICggWyBvcGVuaW5nIGRlbGltaXQgdG9rZW5cblx0XHRjYXNlIDM0OiBjYXNlIDM5OiBjYXNlIDQwOiBjYXNlIDkxOlxuXHRcdFx0cmV0dXJuIDJcblx0XHQvLyApIF0gY2xvc2luZyBkZWxpbWl0IHRva2VuXG5cdFx0Y2FzZSA0MTogY2FzZSA5Mzpcblx0XHRcdHJldHVybiAxXG5cdH1cblxuXHRyZXR1cm4gMFxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7YW55W119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGxvYyAodmFsdWUpIHtcblx0cmV0dXJuIGxpbmUgPSBjb2x1bW4gPSAxLCBsZW5ndGggPSBzdHJsZW4oY2hhcmFjdGVycyA9IHZhbHVlKSwgcG9zaXRpb24gPSAwLCBbXVxufVxuXG4vKipcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICogQHJldHVybiB7YW55fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVhbGxvYyAodmFsdWUpIHtcblx0cmV0dXJuIGNoYXJhY3RlcnMgPSAnJywgdmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVsaW1pdCAodHlwZSkge1xuXHRyZXR1cm4gdHJpbShzbGljZShwb3NpdGlvbiAtIDEsIGRlbGltaXRlcih0eXBlID09PSA5MSA/IHR5cGUgKyAyIDogdHlwZSA9PT0gNDAgPyB0eXBlICsgMSA6IHR5cGUpKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4ge3N0cmluZ1tdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5pemUgKHZhbHVlKSB7XG5cdHJldHVybiBkZWFsbG9jKHRva2VuaXplcihhbGxvYyh2YWx1ZSkpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aGl0ZXNwYWNlICh0eXBlKSB7XG5cdHdoaWxlIChjaGFyYWN0ZXIgPSBwZWVrKCkpXG5cdFx0aWYgKGNoYXJhY3RlciA8IDMzKVxuXHRcdFx0bmV4dCgpXG5cdFx0ZWxzZVxuXHRcdFx0YnJlYWtcblxuXHRyZXR1cm4gdG9rZW4odHlwZSkgPiAyIHx8IHRva2VuKGNoYXJhY3RlcikgPiAzID8gJycgOiAnICdcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBjaGlsZHJlblxuICogQHJldHVybiB7c3RyaW5nW119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b2tlbml6ZXIgKGNoaWxkcmVuKSB7XG5cdHdoaWxlIChuZXh0KCkpXG5cdFx0c3dpdGNoICh0b2tlbihjaGFyYWN0ZXIpKSB7XG5cdFx0XHRjYXNlIDA6IGFwcGVuZChpZGVudGlmaWVyKHBvc2l0aW9uIC0gMSksIGNoaWxkcmVuKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Y2FzZSAyOiBhcHBlbmQoZGVsaW1pdChjaGFyYWN0ZXIpLCBjaGlsZHJlbilcblx0XHRcdFx0YnJlYWtcblx0XHRcdGRlZmF1bHQ6IGFwcGVuZChmcm9tKGNoYXJhY3RlciksIGNoaWxkcmVuKVxuXHRcdH1cblxuXHRyZXR1cm4gY2hpbGRyZW5cbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb3VudFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBpbmcgKGluZGV4LCBjb3VudCkge1xuXHR3aGlsZSAoLS1jb3VudCAmJiBuZXh0KCkpXG5cdFx0Ly8gbm90IDAtOSBBLUYgYS1mXG5cdFx0aWYgKGNoYXJhY3RlciA8IDQ4IHx8IGNoYXJhY3RlciA+IDEwMiB8fCAoY2hhcmFjdGVyID4gNTcgJiYgY2hhcmFjdGVyIDwgNjUpIHx8IChjaGFyYWN0ZXIgPiA3MCAmJiBjaGFyYWN0ZXIgPCA5NykpXG5cdFx0XHRicmVha1xuXG5cdHJldHVybiBzbGljZShpbmRleCwgY2FyZXQoKSArIChjb3VudCA8IDYgJiYgcGVlaygpID09IDMyICYmIG5leHQoKSA9PSAzMikpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGltaXRlciAodHlwZSkge1xuXHR3aGlsZSAobmV4dCgpKVxuXHRcdHN3aXRjaCAoY2hhcmFjdGVyKSB7XG5cdFx0XHQvLyBdICkgXCIgJ1xuXHRcdFx0Y2FzZSB0eXBlOlxuXHRcdFx0XHRyZXR1cm4gcG9zaXRpb25cblx0XHRcdC8vIFwiICdcblx0XHRcdGNhc2UgMzQ6IGNhc2UgMzk6XG5cdFx0XHRcdGlmICh0eXBlICE9PSAzNCAmJiB0eXBlICE9PSAzOSlcblx0XHRcdFx0XHRkZWxpbWl0ZXIoY2hhcmFjdGVyKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Ly8gKFxuXHRcdFx0Y2FzZSA0MDpcblx0XHRcdFx0aWYgKHR5cGUgPT09IDQxKVxuXHRcdFx0XHRcdGRlbGltaXRlcih0eXBlKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Ly8gXFxcblx0XHRcdGNhc2UgOTI6XG5cdFx0XHRcdG5leHQoKVxuXHRcdFx0XHRicmVha1xuXHRcdH1cblxuXHRyZXR1cm4gcG9zaXRpb25cbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZVxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21tZW50ZXIgKHR5cGUsIGluZGV4KSB7XG5cdHdoaWxlIChuZXh0KCkpXG5cdFx0Ly8gLy9cblx0XHRpZiAodHlwZSArIGNoYXJhY3RlciA9PT0gNDcgKyAxMClcblx0XHRcdGJyZWFrXG5cdFx0Ly8gLypcblx0XHRlbHNlIGlmICh0eXBlICsgY2hhcmFjdGVyID09PSA0MiArIDQyICYmIHBlZWsoKSA9PT0gNDcpXG5cdFx0XHRicmVha1xuXG5cdHJldHVybiAnLyonICsgc2xpY2UoaW5kZXgsIHBvc2l0aW9uIC0gMSkgKyAnKicgKyBmcm9tKHR5cGUgPT09IDQ3ID8gdHlwZSA6IG5leHQoKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlkZW50aWZpZXIgKGluZGV4KSB7XG5cdHdoaWxlICghdG9rZW4ocGVlaygpKSlcblx0XHRuZXh0KClcblxuXHRyZXR1cm4gc2xpY2UoaW5kZXgsIHBvc2l0aW9uKVxufVxuIiwKICAgICJpbXBvcnQge0NPTU1FTlQsIFJVTEVTRVQsIERFQ0xBUkFUSU9OfSBmcm9tICcuL0VudW0uanMnXG5pbXBvcnQge2FicywgY2hhcmF0LCB0cmltLCBmcm9tLCBzaXplb2YsIHN0cmxlbiwgc3Vic3RyLCBhcHBlbmQsIHJlcGxhY2UsIGluZGV4b2Z9IGZyb20gJy4vVXRpbGl0eS5qcydcbmltcG9ydCB7bm9kZSwgY2hhciwgcHJldiwgbmV4dCwgcGVlaywgdG9rZW4sIGNhcmV0LCBhbGxvYywgZGVhbGxvYywgZGVsaW1pdCwgd2hpdGVzcGFjZSwgZXNjYXBpbmcsIGlkZW50aWZpZXIsIGNvbW1lbnRlcn0gZnJvbSAnLi9Ub2tlbml6ZXIuanMnXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtvYmplY3RbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGUgKHZhbHVlKSB7XG5cdHJldHVybiBkZWFsbG9jKHBhcnNlKCcnLCBudWxsLCBudWxsLCBudWxsLCBbJyddLCB2YWx1ZSA9IGFsbG9jKHZhbHVlKSwgMCwgWzBdLCB2YWx1ZSkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3Q/fSBwYXJlbnRcbiAqIEBwYXJhbSB7c3RyaW5nW119IHJ1bGVcbiAqIEBwYXJhbSB7c3RyaW5nW119IHJ1bGVzXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBydWxlc2V0c1xuICogQHBhcmFtIHtudW1iZXJbXX0gcHNldWRvXG4gKiBAcGFyYW0ge251bWJlcltdfSBwb2ludHNcbiAqIEBwYXJhbSB7c3RyaW5nW119IGRlY2xhcmF0aW9uc1xuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UgKHZhbHVlLCByb290LCBwYXJlbnQsIHJ1bGUsIHJ1bGVzLCBydWxlc2V0cywgcHNldWRvLCBwb2ludHMsIGRlY2xhcmF0aW9ucykge1xuXHR2YXIgaW5kZXggPSAwXG5cdHZhciBvZmZzZXQgPSAwXG5cdHZhciBsZW5ndGggPSBwc2V1ZG9cblx0dmFyIGF0cnVsZSA9IDBcblx0dmFyIHByb3BlcnR5ID0gMFxuXHR2YXIgcHJldmlvdXMgPSAwXG5cdHZhciB2YXJpYWJsZSA9IDFcblx0dmFyIHNjYW5uaW5nID0gMVxuXHR2YXIgYW1wZXJzYW5kID0gMVxuXHR2YXIgY2hhcmFjdGVyID0gMFxuXHR2YXIgdHlwZSA9ICcnXG5cdHZhciBwcm9wcyA9IHJ1bGVzXG5cdHZhciBjaGlsZHJlbiA9IHJ1bGVzZXRzXG5cdHZhciByZWZlcmVuY2UgPSBydWxlXG5cdHZhciBjaGFyYWN0ZXJzID0gdHlwZVxuXG5cdHdoaWxlIChzY2FubmluZylcblx0XHRzd2l0Y2ggKHByZXZpb3VzID0gY2hhcmFjdGVyLCBjaGFyYWN0ZXIgPSBuZXh0KCkpIHtcblx0XHRcdC8vIChcblx0XHRcdGNhc2UgNDA6XG5cdFx0XHRcdGlmIChwcmV2aW91cyAhPSAxMDggJiYgY2hhcmF0KGNoYXJhY3RlcnMsIGxlbmd0aCAtIDEpID09IDU4KSB7XG5cdFx0XHRcdFx0aWYgKGluZGV4b2YoY2hhcmFjdGVycyArPSByZXBsYWNlKGRlbGltaXQoY2hhcmFjdGVyKSwgJyYnLCAnJlxcZicpLCAnJlxcZicsIGFicyhpbmRleCA/IHBvaW50c1tpbmRleCAtIDFdIDogMCkpICE9IC0xKVxuXHRcdFx0XHRcdFx0YW1wZXJzYW5kID0gLTFcblx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHR9XG5cdFx0XHQvLyBcIiAnIFtcblx0XHRcdGNhc2UgMzQ6IGNhc2UgMzk6IGNhc2UgOTE6XG5cdFx0XHRcdGNoYXJhY3RlcnMgKz0gZGVsaW1pdChjaGFyYWN0ZXIpXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyBcXHQgXFxuIFxcciBcXHNcblx0XHRcdGNhc2UgOTogY2FzZSAxMDogY2FzZSAxMzogY2FzZSAzMjpcblx0XHRcdFx0Y2hhcmFjdGVycyArPSB3aGl0ZXNwYWNlKHByZXZpb3VzKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Ly8gXFxcblx0XHRcdGNhc2UgOTI6XG5cdFx0XHRcdGNoYXJhY3RlcnMgKz0gZXNjYXBpbmcoY2FyZXQoKSAtIDEsIDcpXG5cdFx0XHRcdGNvbnRpbnVlXG5cdFx0XHQvLyAvXG5cdFx0XHRjYXNlIDQ3OlxuXHRcdFx0XHRzd2l0Y2ggKHBlZWsoKSkge1xuXHRcdFx0XHRcdGNhc2UgNDI6IGNhc2UgNDc6XG5cdFx0XHRcdFx0XHRhcHBlbmQoY29tbWVudChjb21tZW50ZXIobmV4dCgpLCBjYXJldCgpKSwgcm9vdCwgcGFyZW50LCBkZWNsYXJhdGlvbnMpLCBkZWNsYXJhdGlvbnMpXG5cdFx0XHRcdFx0XHRpZiAoKHRva2VuKHByZXZpb3VzIHx8IDEpID09IDUgfHwgdG9rZW4ocGVlaygpIHx8IDEpID09IDUpICYmIHN0cmxlbihjaGFyYWN0ZXJzKSAmJiBzdWJzdHIoY2hhcmFjdGVycywgLTEsIHZvaWQgMCkgIT09ICcgJykgY2hhcmFjdGVycyArPSAnICdcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdGNoYXJhY3RlcnMgKz0gJy8nXG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIHtcblx0XHRcdGNhc2UgMTIzICogdmFyaWFibGU6XG5cdFx0XHRcdHBvaW50c1tpbmRleCsrXSA9IHN0cmxlbihjaGFyYWN0ZXJzKSAqIGFtcGVyc2FuZFxuXHRcdFx0Ly8gfSA7IFxcMFxuXHRcdFx0Y2FzZSAxMjUgKiB2YXJpYWJsZTogY2FzZSA1OTogY2FzZSAwOlxuXHRcdFx0XHRzd2l0Y2ggKGNoYXJhY3Rlcikge1xuXHRcdFx0XHRcdC8vIFxcMCB9XG5cdFx0XHRcdFx0Y2FzZSAwOiBjYXNlIDEyNTogc2Nhbm5pbmcgPSAwXG5cdFx0XHRcdFx0Ly8gO1xuXHRcdFx0XHRcdGNhc2UgNTkgKyBvZmZzZXQ6IGlmIChhbXBlcnNhbmQgPT0gLTEpIGNoYXJhY3RlcnMgPSByZXBsYWNlKGNoYXJhY3RlcnMsIC9cXGYvZywgJycpXG5cdFx0XHRcdFx0XHRpZiAocHJvcGVydHkgPiAwICYmIChzdHJsZW4oY2hhcmFjdGVycykgLSBsZW5ndGggfHwgKHZhcmlhYmxlID09PSAwICYmIHByZXZpb3VzID09PSA0NykpKVxuXHRcdFx0XHRcdFx0XHRhcHBlbmQocHJvcGVydHkgPiAzMiA/IGRlY2xhcmF0aW9uKGNoYXJhY3RlcnMgKyAnOycsIHJ1bGUsIHBhcmVudCwgbGVuZ3RoIC0gMSwgZGVjbGFyYXRpb25zKSA6IGRlY2xhcmF0aW9uKHJlcGxhY2UoY2hhcmFjdGVycywgJyAnLCAnJykgKyAnOycsIHJ1bGUsIHBhcmVudCwgbGVuZ3RoIC0gMiwgZGVjbGFyYXRpb25zKSwgZGVjbGFyYXRpb25zKVxuXHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHQvLyBAIDtcblx0XHRcdFx0XHRjYXNlIDU5OiBjaGFyYWN0ZXJzICs9ICc7J1xuXHRcdFx0XHRcdC8vIHsgcnVsZS9hdC1ydWxlXG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdGFwcGVuZChyZWZlcmVuY2UgPSBydWxlc2V0KGNoYXJhY3RlcnMsIHJvb3QsIHBhcmVudCwgaW5kZXgsIG9mZnNldCwgcnVsZXMsIHBvaW50cywgdHlwZSwgcHJvcHMgPSBbXSwgY2hpbGRyZW4gPSBbXSwgbGVuZ3RoLCBydWxlc2V0cyksIHJ1bGVzZXRzKVxuXG5cdFx0XHRcdFx0XHRpZiAoY2hhcmFjdGVyID09PSAxMjMpXG5cdFx0XHRcdFx0XHRcdGlmIChvZmZzZXQgPT09IDApXG5cdFx0XHRcdFx0XHRcdFx0cGFyc2UoY2hhcmFjdGVycywgcm9vdCwgcmVmZXJlbmNlLCByZWZlcmVuY2UsIHByb3BzLCBydWxlc2V0cywgbGVuZ3RoLCBwb2ludHMsIGNoaWxkcmVuKVxuXHRcdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdFx0c3dpdGNoIChhdHJ1bGUgPT09IDk5ICYmIGNoYXJhdChjaGFyYWN0ZXJzLCAzKSA9PT0gMTEwID8gMTAwIDogYXRydWxlKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBkIGwgbSBzXG5cdFx0XHRcdFx0XHRcdFx0XHRjYXNlIDEwMDogY2FzZSAxMDg6IGNhc2UgMTA5OiBjYXNlIDExNTpcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFyc2UodmFsdWUsIHJlZmVyZW5jZSwgcmVmZXJlbmNlLCBydWxlICYmIGFwcGVuZChydWxlc2V0KHZhbHVlLCByZWZlcmVuY2UsIHJlZmVyZW5jZSwgMCwgMCwgcnVsZXMsIHBvaW50cywgdHlwZSwgcnVsZXMsIHByb3BzID0gW10sIGxlbmd0aCwgY2hpbGRyZW4pLCBjaGlsZHJlbiksIHJ1bGVzLCBjaGlsZHJlbiwgbGVuZ3RoLCBwb2ludHMsIHJ1bGUgPyBwcm9wcyA6IGNoaWxkcmVuKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFyc2UoY2hhcmFjdGVycywgcmVmZXJlbmNlLCByZWZlcmVuY2UsIHJlZmVyZW5jZSwgWycnXSwgY2hpbGRyZW4sIDAsIHBvaW50cywgY2hpbGRyZW4pXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aW5kZXggPSBvZmZzZXQgPSBwcm9wZXJ0eSA9IDAsIHZhcmlhYmxlID0gYW1wZXJzYW5kID0gMSwgdHlwZSA9IGNoYXJhY3RlcnMgPSAnJywgbGVuZ3RoID0gcHNldWRvXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyA6XG5cdFx0XHRjYXNlIDU4OlxuXHRcdFx0XHRsZW5ndGggPSAxICsgc3RybGVuKGNoYXJhY3RlcnMpLCBwcm9wZXJ0eSA9IHByZXZpb3VzXG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRpZiAodmFyaWFibGUgPCAxKVxuXHRcdFx0XHRcdGlmIChjaGFyYWN0ZXIgPT0gMTIzKVxuXHRcdFx0XHRcdFx0LS12YXJpYWJsZVxuXHRcdFx0XHRcdGVsc2UgaWYgKGNoYXJhY3RlciA9PSAxMjUgJiYgdmFyaWFibGUrKyA9PSAwICYmIHByZXYoKSA9PSAxMjUpXG5cdFx0XHRcdFx0XHRjb250aW51ZVxuXG5cdFx0XHRcdHN3aXRjaCAoY2hhcmFjdGVycyArPSBmcm9tKGNoYXJhY3RlciksIGNoYXJhY3RlciAqIHZhcmlhYmxlKSB7XG5cdFx0XHRcdFx0Ly8gJlxuXHRcdFx0XHRcdGNhc2UgMzg6XG5cdFx0XHRcdFx0XHRhbXBlcnNhbmQgPSBvZmZzZXQgPiAwID8gMSA6IChjaGFyYWN0ZXJzICs9ICdcXGYnLCAtMSlcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0Ly8gLFxuXHRcdFx0XHRcdGNhc2UgNDQ6XG5cdFx0XHRcdFx0XHRwb2ludHNbaW5kZXgrK10gPSAoc3RybGVuKGNoYXJhY3RlcnMpIC0gMSkgKiBhbXBlcnNhbmQsIGFtcGVyc2FuZCA9IDFcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0Ly8gQFxuXHRcdFx0XHRcdGNhc2UgNjQ6XG5cdFx0XHRcdFx0XHQvLyAtXG5cdFx0XHRcdFx0XHRpZiAocGVlaygpID09PSA0NSlcblx0XHRcdFx0XHRcdFx0Y2hhcmFjdGVycyArPSBkZWxpbWl0KG5leHQoKSlcblxuXHRcdFx0XHRcdFx0YXRydWxlID0gcGVlaygpLCBvZmZzZXQgPSBsZW5ndGggPSBzdHJsZW4odHlwZSA9IGNoYXJhY3RlcnMgKz0gaWRlbnRpZmllcihjYXJldCgpKSksIGNoYXJhY3RlcisrXG5cdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdC8vIC1cblx0XHRcdFx0XHRjYXNlIDQ1OlxuXHRcdFx0XHRcdFx0aWYgKHByZXZpb3VzID09PSA0NSAmJiBzdHJsZW4oY2hhcmFjdGVycykgPT0gMilcblx0XHRcdFx0XHRcdFx0dmFyaWFibGUgPSAwXG5cdFx0XHRcdH1cblx0XHR9XG5cblx0cmV0dXJuIHJ1bGVzZXRzXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3Q/fSBwYXJlbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldFxuICogQHBhcmFtIHtzdHJpbmdbXX0gcnVsZXNcbiAqIEBwYXJhbSB7bnVtYmVyW119IHBvaW50c1xuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7c3RyaW5nW119IHByb3BzXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBjaGlsZHJlblxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICogQHBhcmFtIHtvYmplY3RbXX0gc2libGluZ3NcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bGVzZXQgKHZhbHVlLCByb290LCBwYXJlbnQsIGluZGV4LCBvZmZzZXQsIHJ1bGVzLCBwb2ludHMsIHR5cGUsIHByb3BzLCBjaGlsZHJlbiwgbGVuZ3RoLCBzaWJsaW5ncykge1xuXHR2YXIgcG9zdCA9IG9mZnNldCAtIDFcblx0dmFyIHJ1bGUgPSBvZmZzZXQgPT09IDAgPyBydWxlcyA6IFsnJ11cblx0dmFyIHNpemUgPSBzaXplb2YocnVsZSlcblxuXHRmb3IgKHZhciBpID0gMCwgaiA9IDAsIGsgPSAwOyBpIDwgaW5kZXg7ICsraSlcblx0XHRmb3IgKHZhciB4ID0gMCwgeSA9IHN1YnN0cih2YWx1ZSwgcG9zdCArIDEsIHBvc3QgPSBhYnMoaiA9IHBvaW50c1tpXSkpLCB6ID0gdmFsdWU7IHggPCBzaXplOyArK3gpXG5cdFx0XHRpZiAoeiA9IHRyaW0oaiA+IDAgPyBydWxlW3hdICsgJyAnICsgeSA6IHJlcGxhY2UoeSwgLyZcXGYvZywgcnVsZVt4XSkpKVxuXHRcdFx0XHRwcm9wc1trKytdID0gelxuXG5cdHJldHVybiBub2RlKHZhbHVlLCByb290LCBwYXJlbnQsIG9mZnNldCA9PT0gMCA/IFJVTEVTRVQgOiB0eXBlLCBwcm9wcywgY2hpbGRyZW4sIGxlbmd0aCwgc2libGluZ3MpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3Q/fSBwYXJlbnRcbiAqIEBwYXJhbSB7b2JqZWN0W119IHNpYmxpbmdzXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21tZW50ICh2YWx1ZSwgcm9vdCwgcGFyZW50LCBzaWJsaW5ncykge1xuXHRyZXR1cm4gbm9kZSh2YWx1ZSwgcm9vdCwgcGFyZW50LCBDT01NRU5ULCBmcm9tKGNoYXIoKSksIHN1YnN0cih2YWx1ZSwgMiwgLTIpLCAwLCBzaWJsaW5ncylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7b2JqZWN0fSByb290XG4gKiBAcGFyYW0ge29iamVjdD99IHBhcmVudFxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICogQHBhcmFtIHtvYmplY3RbXX0gc2libGluZ3NcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmF0aW9uICh2YWx1ZSwgcm9vdCwgcGFyZW50LCBsZW5ndGgsIHNpYmxpbmdzKSB7XG5cdHJldHVybiBub2RlKHZhbHVlLCByb290LCBwYXJlbnQsIERFQ0xBUkFUSU9OLCBzdWJzdHIodmFsdWUsIDAsIGxlbmd0aCksIHN1YnN0cih2YWx1ZSwgbGVuZ3RoICsgMSwgLTEpLCBsZW5ndGgsIHNpYmxpbmdzKVxufVxuIiwKICAgICJpbXBvcnQge0lNUE9SVCwgTEFZRVIsIENPTU1FTlQsIFJVTEVTRVQsIERFQ0xBUkFUSU9OLCBLRVlGUkFNRVN9IGZyb20gJy4vRW51bS5qcydcbmltcG9ydCB7c3RybGVufSBmcm9tICcuL1V0aWxpdHkuanMnXG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3RbXX0gY2hpbGRyZW5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUgKGNoaWxkcmVuLCBjYWxsYmFjaykge1xuXHR2YXIgb3V0cHV0ID0gJydcblxuXHRmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxuXHRcdG91dHB1dCArPSBjYWxsYmFjayhjaGlsZHJlbltpXSwgaSwgY2hpbGRyZW4sIGNhbGxiYWNrKSB8fCAnJ1xuXG5cdHJldHVybiBvdXRwdXRcbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZWxlbWVudFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge29iamVjdFtdfSBjaGlsZHJlblxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSAoZWxlbWVudCwgaW5kZXgsIGNoaWxkcmVuLCBjYWxsYmFjaykge1xuXHRzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuXHRcdGNhc2UgTEFZRVI6IGlmIChlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCkgYnJlYWtcblx0XHRjYXNlIElNUE9SVDogY2FzZSBERUNMQVJBVElPTjogcmV0dXJuIGVsZW1lbnQucmV0dXJuID0gZWxlbWVudC5yZXR1cm4gfHwgZWxlbWVudC52YWx1ZVxuXHRcdGNhc2UgQ09NTUVOVDogcmV0dXJuICcnXG5cdFx0Y2FzZSBLRVlGUkFNRVM6IHJldHVybiBlbGVtZW50LnJldHVybiA9IGVsZW1lbnQudmFsdWUgKyAneycgKyBzZXJpYWxpemUoZWxlbWVudC5jaGlsZHJlbiwgY2FsbGJhY2spICsgJ30nXG5cdFx0Y2FzZSBSVUxFU0VUOiBpZiAoIXN0cmxlbihlbGVtZW50LnZhbHVlID0gZWxlbWVudC5wcm9wcy5qb2luKCcsJykpKSByZXR1cm4gJydcblx0fVxuXG5cdHJldHVybiBzdHJsZW4oY2hpbGRyZW4gPSBzZXJpYWxpemUoZWxlbWVudC5jaGlsZHJlbiwgY2FsbGJhY2spKSA/IGVsZW1lbnQucmV0dXJuID0gZWxlbWVudC52YWx1ZSArICd7JyArIGNoaWxkcmVuICsgJ30nIDogJydcbn1cbiIsCiAgICAiZXhwb3J0ICogZnJvbSAnLi9zcmMvRW51bS5qcydcbmV4cG9ydCAqIGZyb20gJy4vc3JjL1V0aWxpdHkuanMnXG5leHBvcnQgKiBmcm9tICcuL3NyYy9QYXJzZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL3NyYy9QcmVmaXhlci5qcydcbmV4cG9ydCAqIGZyb20gJy4vc3JjL1Rva2VuaXplci5qcydcbmV4cG9ydCAqIGZyb20gJy4vc3JjL1NlcmlhbGl6ZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL3NyYy9NaWRkbGV3YXJlLmpzJ1xuIiwKICAgICJpbXBvcnQgb3ZlckFyZyBmcm9tICcuL19vdmVyQXJnLmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUtleXMgPSBvdmVyQXJnKE9iamVjdC5rZXlzLCBPYmplY3QpO1xuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVLZXlzO1xuIiwKICAgICJpbXBvcnQgaXNQcm90b3R5cGUgZnJvbSAnLi9faXNQcm90b3R5cGUuanMnO1xuaW1wb3J0IG5hdGl2ZUtleXMgZnJvbSAnLi9fbmF0aXZlS2V5cy5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgaWYgKCFpc1Byb3RvdHlwZShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUtleXM7XG4iLAogICAgImltcG9ydCBnZXROYXRpdmUgZnJvbSAnLi9fZ2V0TmF0aXZlLmpzJztcbmltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgRGF0YVZpZXcgPSBnZXROYXRpdmUocm9vdCwgJ0RhdGFWaWV3Jyk7XG5cbmV4cG9ydCBkZWZhdWx0IERhdGFWaWV3O1xuIiwKICAgICJpbXBvcnQgZ2V0TmF0aXZlIGZyb20gJy4vX2dldE5hdGl2ZS5qcyc7XG5pbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIFByb21pc2UgPSBnZXROYXRpdmUocm9vdCwgJ1Byb21pc2UnKTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvbWlzZTtcbiIsCiAgICAiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBTZXQgPSBnZXROYXRpdmUocm9vdCwgJ1NldCcpO1xuXG5leHBvcnQgZGVmYXVsdCBTZXQ7XG4iLAogICAgImltcG9ydCBnZXROYXRpdmUgZnJvbSAnLi9fZ2V0TmF0aXZlLmpzJztcbmltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgV2Vha01hcCA9IGdldE5hdGl2ZShyb290LCAnV2Vha01hcCcpO1xuXG5leHBvcnQgZGVmYXVsdCBXZWFrTWFwO1xuIiwKICAgICJpbXBvcnQgRGF0YVZpZXcgZnJvbSAnLi9fRGF0YVZpZXcuanMnO1xuaW1wb3J0IE1hcCBmcm9tICcuL19NYXAuanMnO1xuaW1wb3J0IFByb21pc2UgZnJvbSAnLi9fUHJvbWlzZS5qcyc7XG5pbXBvcnQgU2V0IGZyb20gJy4vX1NldC5qcyc7XG5pbXBvcnQgV2Vha01hcCBmcm9tICcuL19XZWFrTWFwLmpzJztcbmltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IHRvU291cmNlIGZyb20gJy4vX3RvU291cmNlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHByb21pc2VUYWcgPSAnW29iamVjdCBQcm9taXNlXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG1hcHMsIHNldHMsIGFuZCB3ZWFrbWFwcy4gKi9cbnZhciBkYXRhVmlld0N0b3JTdHJpbmcgPSB0b1NvdXJjZShEYXRhVmlldyksXG4gICAgbWFwQ3RvclN0cmluZyA9IHRvU291cmNlKE1hcCksXG4gICAgcHJvbWlzZUN0b3JTdHJpbmcgPSB0b1NvdXJjZShQcm9taXNlKSxcbiAgICBzZXRDdG9yU3RyaW5nID0gdG9Tb3VyY2UoU2V0KSxcbiAgICB3ZWFrTWFwQ3RvclN0cmluZyA9IHRvU291cmNlKFdlYWtNYXApO1xuXG4vKipcbiAqIEdldHMgdGhlIGB0b1N0cmluZ1RhZ2Agb2YgYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBgdG9TdHJpbmdUYWdgLlxuICovXG52YXIgZ2V0VGFnID0gYmFzZUdldFRhZztcblxuLy8gRmFsbGJhY2sgZm9yIGRhdGEgdmlld3MsIG1hcHMsIHNldHMsIGFuZCB3ZWFrIG1hcHMgaW4gSUUgMTEgYW5kIHByb21pc2VzIGluIE5vZGUuanMgPCA2LlxuaWYgKChEYXRhVmlldyAmJiBnZXRUYWcobmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxKSkpICE9IGRhdGFWaWV3VGFnKSB8fFxuICAgIChNYXAgJiYgZ2V0VGFnKG5ldyBNYXApICE9IG1hcFRhZykgfHxcbiAgICAoUHJvbWlzZSAmJiBnZXRUYWcoUHJvbWlzZS5yZXNvbHZlKCkpICE9IHByb21pc2VUYWcpIHx8XG4gICAgKFNldCAmJiBnZXRUYWcobmV3IFNldCkgIT0gc2V0VGFnKSB8fFxuICAgIChXZWFrTWFwICYmIGdldFRhZyhuZXcgV2Vha01hcCkgIT0gd2Vha01hcFRhZykpIHtcbiAgZ2V0VGFnID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICB2YXIgcmVzdWx0ID0gYmFzZUdldFRhZyh2YWx1ZSksXG4gICAgICAgIEN0b3IgPSByZXN1bHQgPT0gb2JqZWN0VGFnID8gdmFsdWUuY29uc3RydWN0b3IgOiB1bmRlZmluZWQsXG4gICAgICAgIGN0b3JTdHJpbmcgPSBDdG9yID8gdG9Tb3VyY2UoQ3RvcikgOiAnJztcblxuICAgIGlmIChjdG9yU3RyaW5nKSB7XG4gICAgICBzd2l0Y2ggKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgY2FzZSBkYXRhVmlld0N0b3JTdHJpbmc6IHJldHVybiBkYXRhVmlld1RhZztcbiAgICAgICAgY2FzZSBtYXBDdG9yU3RyaW5nOiByZXR1cm4gbWFwVGFnO1xuICAgICAgICBjYXNlIHByb21pc2VDdG9yU3RyaW5nOiByZXR1cm4gcHJvbWlzZVRhZztcbiAgICAgICAgY2FzZSBzZXRDdG9yU3RyaW5nOiByZXR1cm4gc2V0VGFnO1xuICAgICAgICBjYXNlIHdlYWtNYXBDdG9yU3RyaW5nOiByZXR1cm4gd2Vha01hcFRhZztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0VGFnO1xuIiwKICAgICJpbXBvcnQgYmFzZUtleXMgZnJvbSAnLi9fYmFzZUtleXMuanMnO1xuaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGlzQXJndW1lbnRzIGZyb20gJy4vaXNBcmd1bWVudHMuanMnO1xuaW1wb3J0IGlzQXJyYXkgZnJvbSAnLi9pc0FycmF5LmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcbmltcG9ydCBpc0J1ZmZlciBmcm9tICcuL2lzQnVmZmVyLmpzJztcbmltcG9ydCBpc1Byb3RvdHlwZSBmcm9tICcuL19pc1Byb3RvdHlwZS5qcyc7XG5pbXBvcnQgaXNUeXBlZEFycmF5IGZyb20gJy4vaXNUeXBlZEFycmF5LmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGVtcHR5IG9iamVjdCwgY29sbGVjdGlvbiwgbWFwLCBvciBzZXQuXG4gKlxuICogT2JqZWN0cyBhcmUgY29uc2lkZXJlZCBlbXB0eSBpZiB0aGV5IGhhdmUgbm8gb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkXG4gKiBwcm9wZXJ0aWVzLlxuICpcbiAqIEFycmF5LWxpa2UgdmFsdWVzIHN1Y2ggYXMgYGFyZ3VtZW50c2Agb2JqZWN0cywgYXJyYXlzLCBidWZmZXJzLCBzdHJpbmdzLCBvclxuICogalF1ZXJ5LWxpa2UgY29sbGVjdGlvbnMgYXJlIGNvbnNpZGVyZWQgZW1wdHkgaWYgdGhleSBoYXZlIGEgYGxlbmd0aGAgb2YgYDBgLlxuICogU2ltaWxhcmx5LCBtYXBzIGFuZCBzZXRzIGFyZSBjb25zaWRlcmVkIGVtcHR5IGlmIHRoZXkgaGF2ZSBhIGBzaXplYCBvZiBgMGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZW1wdHksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0VtcHR5KG51bGwpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNFbXB0eSh0cnVlKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRW1wdHkoMSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0VtcHR5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNFbXB0eSh7ICdhJzogMSB9KTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoaXNBcnJheUxpa2UodmFsdWUpICYmXG4gICAgICAoaXNBcnJheSh2YWx1ZSkgfHwgdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZS5zcGxpY2UgPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICBpc0J1ZmZlcih2YWx1ZSkgfHwgaXNUeXBlZEFycmF5KHZhbHVlKSB8fCBpc0FyZ3VtZW50cyh2YWx1ZSkpKSB7XG4gICAgcmV0dXJuICF2YWx1ZS5sZW5ndGg7XG4gIH1cbiAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSk7XG4gIGlmICh0YWcgPT0gbWFwVGFnIHx8IHRhZyA9PSBzZXRUYWcpIHtcbiAgICByZXR1cm4gIXZhbHVlLnNpemU7XG4gIH1cbiAgaWYgKGlzUHJvdG90eXBlKHZhbHVlKSkge1xuICAgIHJldHVybiAhYmFzZUtleXModmFsdWUpLmxlbmd0aDtcbiAgfVxuICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwga2V5KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNFbXB0eTtcbiIsCiAgICAiLyoqXG4gKiBMZXhpbmcgb3IgcGFyc2luZyBwb3NpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBlcnJvciByZXBvcnRpbmcuXG4gKiBUaGlzIG9iamVjdCBpcyBpbW11dGFibGUuXG4gKi9cbmNsYXNzIFNvdXJjZUxvY2F0aW9uIHtcbiAgLy8gVGhlICsgcHJlZml4IGluZGljYXRlcyB0aGF0IHRoZXNlIGZpZWxkcyBhcmVuJ3Qgd3JpdGVhYmxlXG4gIC8vIExleGVyIGhvbGRpbmcgdGhlIGlucHV0IHN0cmluZy5cbiAgLy8gU3RhcnQgb2Zmc2V0LCB6ZXJvLWJhc2VkIGluY2x1c2l2ZS5cbiAgLy8gRW5kIG9mZnNldCwgemVyby1iYXNlZCBleGNsdXNpdmUuXG4gIGNvbnN0cnVjdG9yKGxleGVyLCBzdGFydCwgZW5kKSB7XG4gICAgdGhpcy5sZXhlciA9IHZvaWQgMDtcbiAgICB0aGlzLnN0YXJ0ID0gdm9pZCAwO1xuICAgIHRoaXMuZW5kID0gdm9pZCAwO1xuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7XG4gICAgdGhpcy5lbmQgPSBlbmQ7XG4gIH1cbiAgLyoqXG4gICAqIE1lcmdlcyB0d28gYFNvdXJjZUxvY2F0aW9uYHMgZnJvbSBsb2NhdGlvbiBwcm92aWRlcnMsIGdpdmVuIHRoZXkgYXJlXG4gICAqIHByb3ZpZGVkIGluIG9yZGVyIG9mIGFwcGVhcmFuY2UuXG4gICAqIC0gUmV0dXJucyB0aGUgZmlyc3Qgb25lJ3MgbG9jYXRpb24gaWYgb25seSB0aGUgZmlyc3QgaXMgcHJvdmlkZWQuXG4gICAqIC0gUmV0dXJucyBhIG1lcmdlZCByYW5nZSBvZiB0aGUgZmlyc3QgYW5kIHRoZSBsYXN0IGlmIGJvdGggYXJlIHByb3ZpZGVkXG4gICAqICAgYW5kIHRoZWlyIGxleGVycyBtYXRjaC5cbiAgICogLSBPdGhlcndpc2UsIHJldHVybnMgbnVsbC5cbiAgICovXG5cblxuICBzdGF0aWMgcmFuZ2UoZmlyc3QsIHNlY29uZCkge1xuICAgIGlmICghc2Vjb25kKSB7XG4gICAgICByZXR1cm4gZmlyc3QgJiYgZmlyc3QubG9jO1xuICAgIH0gZWxzZSBpZiAoIWZpcnN0IHx8ICFmaXJzdC5sb2MgfHwgIXNlY29uZC5sb2MgfHwgZmlyc3QubG9jLmxleGVyICE9PSBzZWNvbmQubG9jLmxleGVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBTb3VyY2VMb2NhdGlvbihmaXJzdC5sb2MubGV4ZXIsIGZpcnN0LmxvYy5zdGFydCwgc2Vjb25kLmxvYy5lbmQpO1xuICAgIH1cbiAgfVxuXG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcXVpcmVkIHRvIGJyZWFrIGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbiBUb2tlbiwgTGV4ZXIsIGFuZFxuICogUGFyc2VFcnJvci5cbiAqL1xuXG4vKipcbiAqIFRoZSByZXN1bHRpbmcgdG9rZW4gcmV0dXJuZWQgZnJvbSBgbGV4YC5cbiAqXG4gKiBJdCBjb25zaXN0cyBvZiB0aGUgdG9rZW4gdGV4dCBwbHVzIHNvbWUgcG9zaXRpb24gaW5mb3JtYXRpb24uXG4gKiBUaGUgcG9zaXRpb24gaW5mb3JtYXRpb24gaXMgZXNzZW50aWFsbHkgYSByYW5nZSBpbiBhbiBpbnB1dCBzdHJpbmcsXG4gKiBidXQgaW5zdGVhZCBvZiByZWZlcmVuY2luZyB0aGUgYmFyZSBpbnB1dCBzdHJpbmcsIHdlIHJlZmVyIHRvIHRoZSBsZXhlci5cbiAqIFRoYXQgd2F5IGl0IGlzIHBvc3NpYmxlIHRvIGF0dGFjaCBleHRyYSBtZXRhZGF0YSB0byB0aGUgaW5wdXQgc3RyaW5nLFxuICogbGlrZSBmb3IgZXhhbXBsZSBhIGZpbGUgbmFtZSBvciBzaW1pbGFyLlxuICpcbiAqIFRoZSBwb3NpdGlvbiBpbmZvcm1hdGlvbiBpcyBvcHRpb25hbCwgc28gaXQgaXMgT0sgdG8gY29uc3RydWN0IHN5bnRoZXRpY1xuICogdG9rZW5zIGlmIGFwcHJvcHJpYXRlLiBOb3QgcHJvdmlkaW5nIGF2YWlsYWJsZSBwb3NpdGlvbiBpbmZvcm1hdGlvbiBtYXlcbiAqIGxlYWQgdG8gZGVncmFkZWQgZXJyb3IgcmVwb3J0aW5nLCB0aG91Z2guXG4gKi9cbmNsYXNzIFRva2VuIHtcbiAgLy8gZG9uJ3QgZXhwYW5kIHRoZSB0b2tlblxuICAvLyB1c2VkIGluIFxcbm9leHBhbmRcbiAgY29uc3RydWN0b3IodGV4dCwgLy8gdGhlIHRleHQgb2YgdGhpcyB0b2tlblxuICBsb2MpIHtcbiAgICB0aGlzLnRleHQgPSB2b2lkIDA7XG4gICAgdGhpcy5sb2MgPSB2b2lkIDA7XG4gICAgdGhpcy5ub2V4cGFuZCA9IHZvaWQgMDtcbiAgICB0aGlzLnRyZWF0QXNSZWxheCA9IHZvaWQgMDtcbiAgICB0aGlzLnRleHQgPSB0ZXh0O1xuICAgIHRoaXMubG9jID0gbG9jO1xuICB9XG4gIC8qKlxuICAgKiBHaXZlbiBhIHBhaXIgb2YgdG9rZW5zICh0aGlzIGFuZCBlbmRUb2tlbiksIGNvbXB1dGUgYSBgVG9rZW5gIGVuY29tcGFzc2luZ1xuICAgKiB0aGUgd2hvbGUgaW5wdXQgcmFuZ2UgZW5jbG9zZWQgYnkgdGhlc2UgdHdvLlxuICAgKi9cblxuXG4gIHJhbmdlKGVuZFRva2VuLCAvLyBsYXN0IHRva2VuIG9mIHRoZSByYW5nZSwgaW5jbHVzaXZlXG4gIHRleHQgLy8gdGhlIHRleHQgb2YgdGhlIG5ld2x5IGNvbnN0cnVjdGVkIHRva2VuXG4gICkge1xuICAgIHJldHVybiBuZXcgVG9rZW4odGV4dCwgU291cmNlTG9jYXRpb24ucmFuZ2UodGhpcywgZW5kVG9rZW4pKTtcbiAgfVxuXG59XG5cbi8qKlxuICogVGhpcyBpcyB0aGUgUGFyc2VFcnJvciBjbGFzcywgd2hpY2ggaXMgdGhlIG1haW4gZXJyb3IgdGhyb3duIGJ5IEthVGVYXG4gKiBmdW5jdGlvbnMgd2hlbiBzb21ldGhpbmcgaGFzIGdvbmUgd3JvbmcuIFRoaXMgaXMgdXNlZCB0byBkaXN0aW5ndWlzaCBpbnRlcm5hbFxuICogZXJyb3JzIGZyb20gZXJyb3JzIGluIHRoZSBleHByZXNzaW9uIHRoYXQgdGhlIHVzZXIgcHJvdmlkZWQuXG4gKlxuICogSWYgcG9zc2libGUsIGEgY2FsbGVyIHNob3VsZCBwcm92aWRlIGEgVG9rZW4gb3IgUGFyc2VOb2RlIHdpdGggaW5mb3JtYXRpb25cbiAqIGFib3V0IHdoZXJlIGluIHRoZSBzb3VyY2Ugc3RyaW5nIHRoZSBwcm9ibGVtIG9jY3VycmVkLlxuICovXG5jbGFzcyBQYXJzZUVycm9yIHtcbiAgLy8gRXJyb3Igc3RhcnQgcG9zaXRpb24gYmFzZWQgb24gcGFzc2VkLWluIFRva2VuIG9yIFBhcnNlTm9kZS5cbiAgLy8gTGVuZ3RoIG9mIGFmZmVjdGVkIHRleHQgYmFzZWQgb24gcGFzc2VkLWluIFRva2VuIG9yIFBhcnNlTm9kZS5cbiAgLy8gVGhlIHVuZGVybHlpbmcgZXJyb3IgbWVzc2FnZSB3aXRob3V0IGFueSBjb250ZXh0IGFkZGVkLlxuICBjb25zdHJ1Y3RvcihtZXNzYWdlLCAvLyBUaGUgZXJyb3IgbWVzc2FnZVxuICB0b2tlbiAvLyBBbiBvYmplY3QgcHJvdmlkaW5nIHBvc2l0aW9uIGluZm9ybWF0aW9uXG4gICkge1xuICAgIHRoaXMubmFtZSA9IHZvaWQgMDtcbiAgICB0aGlzLnBvc2l0aW9uID0gdm9pZCAwO1xuICAgIHRoaXMubGVuZ3RoID0gdm9pZCAwO1xuICAgIHRoaXMucmF3TWVzc2FnZSA9IHZvaWQgMDtcbiAgICB2YXIgZXJyb3IgPSBcIkthVGVYIHBhcnNlIGVycm9yOiBcIiArIG1lc3NhZ2U7XG4gICAgdmFyIHN0YXJ0O1xuICAgIHZhciBlbmQ7XG4gICAgdmFyIGxvYyA9IHRva2VuICYmIHRva2VuLmxvYztcblxuICAgIGlmIChsb2MgJiYgbG9jLnN0YXJ0IDw9IGxvYy5lbmQpIHtcbiAgICAgIC8vIElmIHdlIGhhdmUgdGhlIGlucHV0IGFuZCBhIHBvc2l0aW9uLCBtYWtlIHRoZSBlcnJvciBhIGJpdCBmYW5jaWVyXG4gICAgICAvLyBHZXQgdGhlIGlucHV0XG4gICAgICB2YXIgaW5wdXQgPSBsb2MubGV4ZXIuaW5wdXQ7IC8vIFByZXBlbmQgc29tZSBpbmZvcm1hdGlvblxuXG4gICAgICBzdGFydCA9IGxvYy5zdGFydDtcbiAgICAgIGVuZCA9IGxvYy5lbmQ7XG5cbiAgICAgIGlmIChzdGFydCA9PT0gaW5wdXQubGVuZ3RoKSB7XG4gICAgICAgIGVycm9yICs9IFwiIGF0IGVuZCBvZiBpbnB1dDogXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvciArPSBcIiBhdCBwb3NpdGlvbiBcIiArIChzdGFydCArIDEpICsgXCI6IFwiO1xuICAgICAgfSAvLyBVbmRlcmxpbmUgdG9rZW4gaW4gcXVlc3Rpb24gdXNpbmcgY29tYmluaW5nIHVuZGVyc2NvcmVzXG5cblxuICAgICAgdmFyIHVuZGVybGluZWQgPSBpbnB1dC5zbGljZShzdGFydCwgZW5kKS5yZXBsYWNlKC9bXl0vZywgXCIkJlxcdTAzMzJcIik7IC8vIEV4dHJhY3Qgc29tZSBjb250ZXh0IGZyb20gdGhlIGlucHV0IGFuZCBhZGQgaXQgdG8gdGhlIGVycm9yXG5cbiAgICAgIHZhciBsZWZ0O1xuXG4gICAgICBpZiAoc3RhcnQgPiAxNSkge1xuICAgICAgICBsZWZ0ID0gXCLigKZcIiArIGlucHV0LnNsaWNlKHN0YXJ0IC0gMTUsIHN0YXJ0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxlZnQgPSBpbnB1dC5zbGljZSgwLCBzdGFydCk7XG4gICAgICB9XG5cbiAgICAgIHZhciByaWdodDtcblxuICAgICAgaWYgKGVuZCArIDE1IDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgICAgIHJpZ2h0ID0gaW5wdXQuc2xpY2UoZW5kLCBlbmQgKyAxNSkgKyBcIuKAplwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmlnaHQgPSBpbnB1dC5zbGljZShlbmQpO1xuICAgICAgfVxuXG4gICAgICBlcnJvciArPSBsZWZ0ICsgdW5kZXJsaW5lZCArIHJpZ2h0O1xuICAgIH0gLy8gU29tZSBoYWNrZXJ5IHRvIG1ha2UgUGFyc2VFcnJvciBhIHByb3RvdHlwZSBvZiBFcnJvclxuICAgIC8vIFNlZSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS84NDYwNzUzXG4gICAgLy8gJEZsb3dGaXhNZVxuXG5cbiAgICB2YXIgc2VsZiA9IG5ldyBFcnJvcihlcnJvcik7XG4gICAgc2VsZi5uYW1lID0gXCJQYXJzZUVycm9yXCI7IC8vICRGbG93Rml4TWVcblxuICAgIHNlbGYuX19wcm90b19fID0gUGFyc2VFcnJvci5wcm90b3R5cGU7XG4gICAgc2VsZi5wb3NpdGlvbiA9IHN0YXJ0O1xuXG4gICAgaWYgKHN0YXJ0ICE9IG51bGwgJiYgZW5kICE9IG51bGwpIHtcbiAgICAgIHNlbGYubGVuZ3RoID0gZW5kIC0gc3RhcnQ7XG4gICAgfVxuXG4gICAgc2VsZi5yYXdNZXNzYWdlID0gbWVzc2FnZTtcbiAgICByZXR1cm4gc2VsZjtcbiAgfVxuXG59IC8vICRGbG93Rml4TWUgTW9yZSBoYWNrZXJ5XG5cblxuUGFyc2VFcnJvci5wcm90b3R5cGUuX19wcm90b19fID0gRXJyb3IucHJvdG90eXBlO1xuXG4vKipcbiAqIFRoaXMgZmlsZSBjb250YWlucyBhIGxpc3Qgb2YgdXRpbGl0eSBmdW5jdGlvbnMgd2hpY2ggYXJlIHVzZWZ1bCBpbiBvdGhlclxuICogZmlsZXMuXG4gKi9cblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciBhbiBlbGVtZW50IGlzIGNvbnRhaW5lZCBpbiBhIGxpc3RcbiAqL1xudmFyIGNvbnRhaW5zID0gZnVuY3Rpb24gY29udGFpbnMobGlzdCwgZWxlbSkge1xuICByZXR1cm4gbGlzdC5pbmRleE9mKGVsZW0pICE9PSAtMTtcbn07XG4vKipcbiAqIFByb3ZpZGUgYSBkZWZhdWx0IHZhbHVlIGlmIGEgc2V0dGluZyBpcyB1bmRlZmluZWRcbiAqIE5PVEU6IENvdWxkbid0IHVzZSBgVGAgYXMgdGhlIG91dHB1dCB0eXBlIGR1ZSB0byBmYWNlYm9vay9mbG93IzUwMjIuXG4gKi9cblxuXG52YXIgZGVmbHQgPSBmdW5jdGlvbiBkZWZsdChzZXR0aW5nLCBkZWZhdWx0SWZVbmRlZmluZWQpIHtcbiAgcmV0dXJuIHNldHRpbmcgPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRJZlVuZGVmaW5lZCA6IHNldHRpbmc7XG59OyAvLyBoeXBoZW5hdGUgYW5kIGVzY2FwZSBhZGFwdGVkIGZyb20gRmFjZWJvb2sncyBSZWFjdCB1bmRlciBBcGFjaGUgMiBsaWNlbnNlXG5cblxudmFyIHVwcGVyY2FzZSA9IC8oW0EtWl0pL2c7XG5cbnZhciBoeXBoZW5hdGUgPSBmdW5jdGlvbiBoeXBoZW5hdGUoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSh1cHBlcmNhc2UsIFwiLSQxXCIpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG52YXIgRVNDQVBFX0xPT0tVUCA9IHtcbiAgXCImXCI6IFwiJmFtcDtcIixcbiAgXCI+XCI6IFwiJmd0O1wiLFxuICBcIjxcIjogXCImbHQ7XCIsXG4gIFwiXFxcIlwiOiBcIiZxdW90O1wiLFxuICBcIidcIjogXCImI3gyNztcIlxufTtcbnZhciBFU0NBUEVfUkVHRVggPSAvWyY+PFwiJ10vZztcbi8qKlxuICogRXNjYXBlcyB0ZXh0IHRvIHByZXZlbnQgc2NyaXB0aW5nIGF0dGFja3MuXG4gKi9cblxuZnVuY3Rpb24gZXNjYXBlKHRleHQpIHtcbiAgcmV0dXJuIFN0cmluZyh0ZXh0KS5yZXBsYWNlKEVTQ0FQRV9SRUdFWCwgbWF0Y2ggPT4gRVNDQVBFX0xPT0tVUFttYXRjaF0pO1xufVxuLyoqXG4gKiBTb21ldGltZXMgd2Ugd2FudCB0byBwdWxsIG91dCB0aGUgaW5uZXJtb3N0IGVsZW1lbnQgb2YgYSBncm91cC4gSW4gbW9zdFxuICogY2FzZXMsIHRoaXMgd2lsbCBqdXN0IGJlIHRoZSBncm91cCBpdHNlbGYsIGJ1dCB3aGVuIG9yZGdyb3VwcyBhbmQgY29sb3JzIGhhdmVcbiAqIGEgc2luZ2xlIGVsZW1lbnQsIHdlIHdhbnQgdG8gcHVsbCB0aGF0IG91dC5cbiAqL1xuXG5cbnZhciBnZXRCYXNlRWxlbSA9IGZ1bmN0aW9uIGdldEJhc2VFbGVtKGdyb3VwKSB7XG4gIGlmIChncm91cC50eXBlID09PSBcIm9yZGdyb3VwXCIpIHtcbiAgICBpZiAoZ3JvdXAuYm9keS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBnZXRCYXNlRWxlbShncm91cC5ib2R5WzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGdyb3VwO1xuICAgIH1cbiAgfSBlbHNlIGlmIChncm91cC50eXBlID09PSBcImNvbG9yXCIpIHtcbiAgICBpZiAoZ3JvdXAuYm9keS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBnZXRCYXNlRWxlbShncm91cC5ib2R5WzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGdyb3VwO1xuICAgIH1cbiAgfSBlbHNlIGlmIChncm91cC50eXBlID09PSBcImZvbnRcIikge1xuICAgIHJldHVybiBnZXRCYXNlRWxlbShncm91cC5ib2R5KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZ3JvdXA7XG4gIH1cbn07XG4vKipcbiAqIFRlWGJvb2sgYWxnb3JpdGhtcyBvZnRlbiByZWZlcmVuY2UgXCJjaGFyYWN0ZXIgYm94ZXNcIiwgd2hpY2ggYXJlIHNpbXBseSBncm91cHNcbiAqIHdpdGggYSBzaW5nbGUgY2hhcmFjdGVyIGluIHRoZW0uIFRvIGRlY2lkZSBpZiBzb21ldGhpbmcgaXMgYSBjaGFyYWN0ZXIgYm94LFxuICogd2UgZmluZCBpdHMgaW5uZXJtb3N0IGdyb3VwLCBhbmQgc2VlIGlmIGl0IGlzIGEgc2luZ2xlIGNoYXJhY3Rlci5cbiAqL1xuXG5cbnZhciBpc0NoYXJhY3RlckJveCA9IGZ1bmN0aW9uIGlzQ2hhcmFjdGVyQm94KGdyb3VwKSB7XG4gIHZhciBiYXNlRWxlbSA9IGdldEJhc2VFbGVtKGdyb3VwKTsgLy8gVGhlc2UgYXJlIGFsbCB0aGV5IHR5cGVzIG9mIGdyb3VwcyB3aGljaCBob2xkIHNpbmdsZSBjaGFyYWN0ZXJzXG5cbiAgcmV0dXJuIGJhc2VFbGVtLnR5cGUgPT09IFwibWF0aG9yZFwiIHx8IGJhc2VFbGVtLnR5cGUgPT09IFwidGV4dG9yZFwiIHx8IGJhc2VFbGVtLnR5cGUgPT09IFwiYXRvbVwiO1xufTtcblxudmFyIGFzc2VydCA9IGZ1bmN0aW9uIGFzc2VydCh2YWx1ZSkge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBub24tbnVsbCwgYnV0IGdvdCAnICsgU3RyaW5nKHZhbHVlKSk7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59O1xuLyoqXG4gKiBSZXR1cm4gdGhlIHByb3RvY29sIG9mIGEgVVJMLCBvciBcIl9yZWxhdGl2ZVwiIGlmIHRoZSBVUkwgZG9lcyBub3Qgc3BlY2lmeSBhXG4gKiBwcm90b2NvbCAoYW5kIHRodXMgaXMgcmVsYXRpdmUpLCBvciBgbnVsbGAgaWYgVVJMIGhhcyBpbnZhbGlkIHByb3RvY29sXG4gKiAoc28gc2hvdWxkIGJlIG91dHJpZ2h0IHJlamVjdGVkKS5cbiAqL1xuXG52YXIgcHJvdG9jb2xGcm9tVXJsID0gZnVuY3Rpb24gcHJvdG9jb2xGcm9tVXJsKHVybCkge1xuICAvLyBDaGVjayBmb3IgcG9zc2libGUgbGVhZGluZyBwcm90b2NvbC5cbiAgLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyN1cmwtcGFyc2luZyBzdHJpcHMgbGVhZGluZyB3aGl0ZXNwYWNlXG4gIC8vIChVKzIwKSBvciBDMCBjb250cm9sIChVKzAwLVUrMUYpIGNoYXJhY3RlcnMuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gIHZhciBwcm90b2NvbCA9IC9eW1xceDAwLVxceDIwXSooW15cXFxcLyM/XSo/KSg6fCYjMCo1OHwmI3gwKjNhfCZjb2xvbikvaS5leGVjKHVybCk7XG5cbiAgaWYgKCFwcm90b2NvbCkge1xuICAgIHJldHVybiBcIl9yZWxhdGl2ZVwiO1xuICB9IC8vIFJlamVjdCB3ZWlyZCBjb2xvbnNcblxuXG4gIGlmIChwcm90b2NvbFsyXSAhPT0gXCI6XCIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSAvLyBSZWplY3QgaW52YWxpZCBjaGFyYWN0ZXJzIGluIHNjaGVtZSBhY2NvcmRpbmcgdG9cbiAgLy8gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG5cblxuICBpZiAoIS9eW2EtekEtWl1bYS16QS1aMC05K1xcLS5dKiQvLnRlc3QocHJvdG9jb2xbMV0pKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gTG93ZXJjYXNlIHRoZSBwcm90b2NvbFxuXG5cbiAgcmV0dXJuIHByb3RvY29sWzFdLnRvTG93ZXJDYXNlKCk7XG59O1xudmFyIHV0aWxzID0ge1xuICBjb250YWlucyxcbiAgZGVmbHQsXG4gIGVzY2FwZSxcbiAgaHlwaGVuYXRlLFxuICBnZXRCYXNlRWxlbSxcbiAgaXNDaGFyYWN0ZXJCb3gsXG4gIHByb3RvY29sRnJvbVVybFxufTtcblxuLyogZXNsaW50IG5vLWNvbnNvbGU6MCAqL1xuLy8gVE9ETzogYXV0b21hdGljYWxseSBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uXG4vLyBUT0RPOiBjaGVjayBhbGwgcHJvcGVydGllcyBvbiBTZXR0aW5ncyBleGlzdFxuLy8gVE9ETzogY2hlY2sgdGhlIHR5cGUgb2YgYSBwcm9wZXJ0eSBvbiBTZXR0aW5ncyBtYXRjaGVzXG52YXIgU0VUVElOR1NfU0NIRU1BID0ge1xuICBkaXNwbGF5TW9kZToge1xuICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIlJlbmRlciBtYXRoIGluIGRpc3BsYXkgbW9kZSwgd2hpY2ggcHV0cyB0aGUgbWF0aCBpbiBcIiArIFwiZGlzcGxheSBzdHlsZSAoc28gXFxcXGludCBhbmQgXFxcXHN1bSBhcmUgbGFyZ2UsIGZvciBleGFtcGxlKSwgYW5kIFwiICsgXCJjZW50ZXJzIHRoZSBtYXRoIG9uIHRoZSBwYWdlIG9uIGl0cyBvd24gbGluZS5cIixcbiAgICBjbGk6IFwiLWQsIC0tZGlzcGxheS1tb2RlXCJcbiAgfSxcbiAgb3V0cHV0OiB7XG4gICAgdHlwZToge1xuICAgICAgZW51bTogW1wiaHRtbEFuZE1hdGhtbFwiLCBcImh0bWxcIiwgXCJtYXRobWxcIl1cbiAgICB9LFxuICAgIGRlc2NyaXB0aW9uOiBcIkRldGVybWluZXMgdGhlIG1hcmt1cCBsYW5ndWFnZSBvZiB0aGUgb3V0cHV0LlwiLFxuICAgIGNsaTogXCItRiwgLS1mb3JtYXQgPHR5cGU+XCJcbiAgfSxcbiAgbGVxbm86IHtcbiAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICBkZXNjcmlwdGlvbjogXCJSZW5kZXIgZGlzcGxheSBtYXRoIGluIGxlcW5vIHN0eWxlIChsZWZ0LWp1c3RpZmllZCB0YWdzKS5cIlxuICB9LFxuICBmbGVxbjoge1xuICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIlJlbmRlciBkaXNwbGF5IG1hdGggZmx1c2ggbGVmdC5cIlxuICB9LFxuICB0aHJvd09uRXJyb3I6IHtcbiAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICAgIGNsaTogXCItdCwgLS1uby10aHJvdy1vbi1lcnJvclwiLFxuICAgIGNsaURlc2NyaXB0aW9uOiBcIlJlbmRlciBlcnJvcnMgKGluIHRoZSBjb2xvciBnaXZlbiBieSAtLWVycm9yLWNvbG9yKSBpbnNcIiArIFwidGVhZCBvZiB0aHJvd2luZyBhIFBhcnNlRXJyb3IgZXhjZXB0aW9uIHdoZW4gZW5jb3VudGVyaW5nIGFuIGVycm9yLlwiXG4gIH0sXG4gIGVycm9yQ29sb3I6IHtcbiAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgIGRlZmF1bHQ6IFwiI2NjMDAwMFwiLFxuICAgIGNsaTogXCItYywgLS1lcnJvci1jb2xvciA8Y29sb3I+XCIsXG4gICAgY2xpRGVzY3JpcHRpb246IFwiQSBjb2xvciBzdHJpbmcgZ2l2ZW4gaW4gdGhlIGZvcm1hdCAncmdiJyBvciAncnJnZ2JiJyBcIiArIFwiKG5vICMpLiBUaGlzIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBjb2xvciBvZiBlcnJvcnMgcmVuZGVyZWQgYnkgdGhlIFwiICsgXCItdCBvcHRpb24uXCIsXG4gICAgY2xpUHJvY2Vzc29yOiBjb2xvciA9PiBcIiNcIiArIGNvbG9yXG4gIH0sXG4gIG1hY3Jvczoge1xuICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgY2xpOiBcIi1tLCAtLW1hY3JvIDxkZWY+XCIsXG4gICAgY2xpRGVzY3JpcHRpb246IFwiRGVmaW5lIGN1c3RvbSBtYWNybyBvZiB0aGUgZm9ybSAnXFxcXGZvbzpleHBhbnNpb24nICh1c2UgXCIgKyBcIm11bHRpcGxlIC1tIGFyZ3VtZW50cyBmb3IgbXVsdGlwbGUgbWFjcm9zKS5cIixcbiAgICBjbGlEZWZhdWx0OiBbXSxcbiAgICBjbGlQcm9jZXNzb3I6IChkZWYsIGRlZnMpID0+IHtcbiAgICAgIGRlZnMucHVzaChkZWYpO1xuICAgICAgcmV0dXJuIGRlZnM7XG4gICAgfVxuICB9LFxuICBtaW5SdWxlVGhpY2tuZXNzOiB7XG4gICAgdHlwZTogXCJudW1iZXJcIixcbiAgICBkZXNjcmlwdGlvbjogXCJTcGVjaWZpZXMgYSBtaW5pbXVtIHRoaWNrbmVzcywgaW4gZW1zLCBmb3IgZnJhY3Rpb24gbGluZXMsXCIgKyBcIiBgXFxcXHNxcnRgIHRvcCBsaW5lcywgYHthcnJheX1gIHZlcnRpY2FsIGxpbmVzLCBgXFxcXGhsaW5lYCwgXCIgKyBcImBcXFxcaGRhc2hsaW5lYCwgYFxcXFx1bmRlcmxpbmVgLCBgXFxcXG92ZXJsaW5lYCwgYW5kIHRoZSBib3JkZXJzIG9mIFwiICsgXCJgXFxcXGZib3hgLCBgXFxcXGJveGVkYCwgYW5kIGBcXFxcZmNvbG9yYm94YC5cIixcbiAgICBwcm9jZXNzb3I6IHQgPT4gTWF0aC5tYXgoMCwgdCksXG4gICAgY2xpOiBcIi0tbWluLXJ1bGUtdGhpY2tuZXNzIDxzaXplPlwiLFxuICAgIGNsaVByb2Nlc3NvcjogcGFyc2VGbG9hdFxuICB9LFxuICBjb2xvcklzVGV4dENvbG9yOiB7XG4gICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgZGVzY3JpcHRpb246IFwiTWFrZXMgXFxcXGNvbG9yIGJlaGF2ZSBsaWtlIExhVGVYJ3MgMi1hcmd1bWVudCBcXFxcdGV4dGNvbG9yLCBcIiArIFwiaW5zdGVhZCBvZiBMYVRlWCdzIG9uZS1hcmd1bWVudCBcXFxcY29sb3IgbW9kZSBjaGFuZ2UuXCIsXG4gICAgY2xpOiBcIi1iLCAtLWNvbG9yLWlzLXRleHQtY29sb3JcIlxuICB9LFxuICBzdHJpY3Q6IHtcbiAgICB0eXBlOiBbe1xuICAgICAgZW51bTogW1wid2FyblwiLCBcImlnbm9yZVwiLCBcImVycm9yXCJdXG4gICAgfSwgXCJib29sZWFuXCIsIFwiZnVuY3Rpb25cIl0sXG4gICAgZGVzY3JpcHRpb246IFwiVHVybiBvbiBzdHJpY3QgLyBMYVRlWCBmYWl0aGZ1bG5lc3MgbW9kZSwgd2hpY2ggdGhyb3dzIGFuIFwiICsgXCJlcnJvciBpZiB0aGUgaW5wdXQgdXNlcyBmZWF0dXJlcyB0aGF0IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IExhVGVYLlwiLFxuICAgIGNsaTogXCItUywgLS1zdHJpY3RcIixcbiAgICBjbGlEZWZhdWx0OiBmYWxzZVxuICB9LFxuICB0cnVzdDoge1xuICAgIHR5cGU6IFtcImJvb2xlYW5cIiwgXCJmdW5jdGlvblwiXSxcbiAgICBkZXNjcmlwdGlvbjogXCJUcnVzdCB0aGUgaW5wdXQsIGVuYWJsaW5nIGFsbCBIVE1MIGZlYXR1cmVzIHN1Y2ggYXMgXFxcXHVybC5cIixcbiAgICBjbGk6IFwiLVQsIC0tdHJ1c3RcIlxuICB9LFxuICBtYXhTaXplOiB7XG4gICAgdHlwZTogXCJudW1iZXJcIixcbiAgICBkZWZhdWx0OiBJbmZpbml0eSxcbiAgICBkZXNjcmlwdGlvbjogXCJJZiBub24temVybywgYWxsIHVzZXItc3BlY2lmaWVkIHNpemVzLCBlLmcuIGluIFwiICsgXCJcXFxccnVsZXs1MDBlbX17NTAwZW19LCB3aWxsIGJlIGNhcHBlZCB0byBtYXhTaXplIGVtcy4gT3RoZXJ3aXNlLCBcIiArIFwiZWxlbWVudHMgYW5kIHNwYWNlcyBjYW4gYmUgYXJiaXRyYXJpbHkgbGFyZ2VcIixcbiAgICBwcm9jZXNzb3I6IHMgPT4gTWF0aC5tYXgoMCwgcyksXG4gICAgY2xpOiBcIi1zLCAtLW1heC1zaXplIDxuPlwiLFxuICAgIGNsaVByb2Nlc3NvcjogcGFyc2VJbnRcbiAgfSxcbiAgbWF4RXhwYW5kOiB7XG4gICAgdHlwZTogXCJudW1iZXJcIixcbiAgICBkZWZhdWx0OiAxMDAwLFxuICAgIGRlc2NyaXB0aW9uOiBcIkxpbWl0IHRoZSBudW1iZXIgb2YgbWFjcm8gZXhwYW5zaW9ucyB0byB0aGUgc3BlY2lmaWVkIFwiICsgXCJudW1iZXIsIHRvIHByZXZlbnQgZS5nLiBpbmZpbml0ZSBtYWNybyBsb29wcy4gSWYgc2V0IHRvIEluZmluaXR5LCBcIiArIFwidGhlIG1hY3JvIGV4cGFuZGVyIHdpbGwgdHJ5IHRvIGZ1bGx5IGV4cGFuZCBhcyBpbiBMYVRlWC5cIixcbiAgICBwcm9jZXNzb3I6IG4gPT4gTWF0aC5tYXgoMCwgbiksXG4gICAgY2xpOiBcIi1lLCAtLW1heC1leHBhbmQgPG4+XCIsXG4gICAgY2xpUHJvY2Vzc29yOiBuID0+IG4gPT09IFwiSW5maW5pdHlcIiA/IEluZmluaXR5IDogcGFyc2VJbnQobilcbiAgfSxcbiAgZ2xvYmFsR3JvdXA6IHtcbiAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICBjbGk6IGZhbHNlXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRWYWx1ZShzY2hlbWEpIHtcbiAgaWYgKHNjaGVtYS5kZWZhdWx0KSB7XG4gICAgcmV0dXJuIHNjaGVtYS5kZWZhdWx0O1xuICB9XG5cbiAgdmFyIHR5cGUgPSBzY2hlbWEudHlwZTtcbiAgdmFyIGRlZmF1bHRUeXBlID0gQXJyYXkuaXNBcnJheSh0eXBlKSA/IHR5cGVbMF0gOiB0eXBlO1xuXG4gIGlmICh0eXBlb2YgZGVmYXVsdFR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRUeXBlLmVudW1bMF07XG4gIH1cblxuICBzd2l0Y2ggKGRlZmF1bHRUeXBlKSB7XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgcmV0dXJuICcnO1xuXG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIHJldHVybiAwO1xuXG4gICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgIHJldHVybiB7fTtcbiAgfVxufVxuLyoqXG4gKiBUaGUgbWFpbiBTZXR0aW5ncyBvYmplY3RcbiAqXG4gKiBUaGUgY3VycmVudCBvcHRpb25zIHN0b3JlZCBhcmU6XG4gKiAgLSBkaXNwbGF5TW9kZTogV2hldGhlciB0aGUgZXhwcmVzc2lvbiBzaG91bGQgYmUgdHlwZXNldCBhcyBpbmxpbmUgbWF0aFxuICogICAgICAgICAgICAgICAgIChmYWxzZSwgdGhlIGRlZmF1bHQpLCBtZWFuaW5nIHRoYXQgdGhlIG1hdGggc3RhcnRzIGluXG4gKiAgICAgICAgICAgICAgICAgXFx0ZXh0c3R5bGUgYW5kIGlzIHBsYWNlZCBpbiBhbiBpbmxpbmUtYmxvY2spOyBvciBhcyBkaXNwbGF5XG4gKiAgICAgICAgICAgICAgICAgbWF0aCAodHJ1ZSksIG1lYW5pbmcgdGhhdCB0aGUgbWF0aCBzdGFydHMgaW4gXFxkaXNwbGF5c3R5bGVcbiAqICAgICAgICAgICAgICAgICBhbmQgaXMgcGxhY2VkIGluIGEgYmxvY2sgd2l0aCB2ZXJ0aWNhbCBtYXJnaW4uXG4gKi9cblxuXG5jbGFzcyBTZXR0aW5ncyB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICB0aGlzLmRpc3BsYXlNb2RlID0gdm9pZCAwO1xuICAgIHRoaXMub3V0cHV0ID0gdm9pZCAwO1xuICAgIHRoaXMubGVxbm8gPSB2b2lkIDA7XG4gICAgdGhpcy5mbGVxbiA9IHZvaWQgMDtcbiAgICB0aGlzLnRocm93T25FcnJvciA9IHZvaWQgMDtcbiAgICB0aGlzLmVycm9yQ29sb3IgPSB2b2lkIDA7XG4gICAgdGhpcy5tYWNyb3MgPSB2b2lkIDA7XG4gICAgdGhpcy5taW5SdWxlVGhpY2tuZXNzID0gdm9pZCAwO1xuICAgIHRoaXMuY29sb3JJc1RleHRDb2xvciA9IHZvaWQgMDtcbiAgICB0aGlzLnN0cmljdCA9IHZvaWQgMDtcbiAgICB0aGlzLnRydXN0ID0gdm9pZCAwO1xuICAgIHRoaXMubWF4U2l6ZSA9IHZvaWQgMDtcbiAgICB0aGlzLm1heEV4cGFuZCA9IHZvaWQgMDtcbiAgICB0aGlzLmdsb2JhbEdyb3VwID0gdm9pZCAwO1xuICAgIC8vIGFsbG93IG51bGwgb3B0aW9uc1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgZm9yICh2YXIgcHJvcCBpbiBTRVRUSU5HU19TQ0hFTUEpIHtcbiAgICAgIGlmIChTRVRUSU5HU19TQ0hFTUEuaGFzT3duUHJvcGVydHkocHJvcCkpIHtcbiAgICAgICAgLy8gJEZsb3dGaXhNZVxuICAgICAgICB2YXIgc2NoZW1hID0gU0VUVElOR1NfU0NIRU1BW3Byb3BdOyAvLyBUT0RPOiB2YWxpZGF0ZSBvcHRpb25zXG4gICAgICAgIC8vICRGbG93Rml4TWVcblxuICAgICAgICB0aGlzW3Byb3BdID0gb3B0aW9uc1twcm9wXSAhPT0gdW5kZWZpbmVkID8gc2NoZW1hLnByb2Nlc3NvciA/IHNjaGVtYS5wcm9jZXNzb3Iob3B0aW9uc1twcm9wXSkgOiBvcHRpb25zW3Byb3BdIDogZ2V0RGVmYXVsdFZhbHVlKHNjaGVtYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXBvcnQgbm9uc3RyaWN0IChub24tTGFUZVgtY29tcGF0aWJsZSkgaW5wdXQuXG4gICAqIENhbiBzYWZlbHkgbm90IGJlIGNhbGxlZCBpZiBgdGhpcy5zdHJpY3RgIGlzIGZhbHNlIGluIEphdmFTY3JpcHQuXG4gICAqL1xuXG5cbiAgcmVwb3J0Tm9uc3RyaWN0KGVycm9yQ29kZSwgZXJyb3JNc2csIHRva2VuKSB7XG4gICAgdmFyIHN0cmljdCA9IHRoaXMuc3RyaWN0O1xuXG4gICAgaWYgKHR5cGVvZiBzdHJpY3QgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgLy8gQWxsb3cgcmV0dXJuIHZhbHVlIG9mIHN0cmljdCBmdW5jdGlvbiB0byBiZSBib29sZWFuIG9yIHN0cmluZ1xuICAgICAgLy8gKG9yIG51bGwvdW5kZWZpbmVkLCBtZWFuaW5nIG5vIGZ1cnRoZXIgcHJvY2Vzc2luZykuXG4gICAgICBzdHJpY3QgPSBzdHJpY3QoZXJyb3JDb2RlLCBlcnJvck1zZywgdG9rZW4pO1xuICAgIH1cblxuICAgIGlmICghc3RyaWN0IHx8IHN0cmljdCA9PT0gXCJpZ25vcmVcIikge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoc3RyaWN0ID09PSB0cnVlIHx8IHN0cmljdCA9PT0gXCJlcnJvclwiKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkxhVGVYLWluY29tcGF0aWJsZSBpbnB1dCBhbmQgc3RyaWN0IG1vZGUgaXMgc2V0IHRvICdlcnJvcic6IFwiICsgKGVycm9yTXNnICsgXCIgW1wiICsgZXJyb3JDb2RlICsgXCJdXCIpLCB0b2tlbik7XG4gICAgfSBlbHNlIGlmIChzdHJpY3QgPT09IFwid2FyblwiKSB7XG4gICAgICB0eXBlb2YgY29uc29sZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBjb25zb2xlLndhcm4oXCJMYVRlWC1pbmNvbXBhdGlibGUgaW5wdXQgYW5kIHN0cmljdCBtb2RlIGlzIHNldCB0byAnd2Fybic6IFwiICsgKGVycm9yTXNnICsgXCIgW1wiICsgZXJyb3JDb2RlICsgXCJdXCIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gd29uJ3QgaGFwcGVuIGluIHR5cGUtc2FmZSBjb2RlXG4gICAgICB0eXBlb2YgY29uc29sZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBjb25zb2xlLndhcm4oXCJMYVRlWC1pbmNvbXBhdGlibGUgaW5wdXQgYW5kIHN0cmljdCBtb2RlIGlzIHNldCB0byBcIiArIChcInVucmVjb2duaXplZCAnXCIgKyBzdHJpY3QgKyBcIic6IFwiICsgZXJyb3JNc2cgKyBcIiBbXCIgKyBlcnJvckNvZGUgKyBcIl1cIikpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciB0byBhcHBseSBzdHJpY3QgKExhVGVYLWFkaGVyaW5nKSBiZWhhdmlvciBmb3IgdW51c3VhbFxuICAgKiBpbnB1dCAobGlrZSBgXFxcXGApLiAgVW5saWtlIGBub25zdHJpY3RgLCB3aWxsIG5vdCB0aHJvdyBhbiBlcnJvcjtcbiAgICogaW5zdGVhZCwgXCJlcnJvclwiIHRyYW5zbGF0ZXMgdG8gYSByZXR1cm4gdmFsdWUgb2YgYHRydWVgLCB3aGlsZSBcImlnbm9yZVwiXG4gICAqIHRyYW5zbGF0ZXMgdG8gYSByZXR1cm4gdmFsdWUgb2YgYGZhbHNlYC4gIE1heSBzdGlsbCBwcmludCBhIHdhcm5pbmc6XG4gICAqIFwid2FyblwiIHByaW50cyBhIHdhcm5pbmcgYW5kIHJldHVybnMgYGZhbHNlYC5cbiAgICogVGhpcyBpcyBmb3IgdGhlIHNlY29uZCBjYXRlZ29yeSBvZiBgZXJyb3JDb2RlYHMgbGlzdGVkIGluIHRoZSBSRUFETUUuXG4gICAqL1xuXG5cbiAgdXNlU3RyaWN0QmVoYXZpb3IoZXJyb3JDb2RlLCBlcnJvck1zZywgdG9rZW4pIHtcbiAgICB2YXIgc3RyaWN0ID0gdGhpcy5zdHJpY3Q7XG5cbiAgICBpZiAodHlwZW9mIHN0cmljdCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAvLyBBbGxvdyByZXR1cm4gdmFsdWUgb2Ygc3RyaWN0IGZ1bmN0aW9uIHRvIGJlIGJvb2xlYW4gb3Igc3RyaW5nXG4gICAgICAvLyAob3IgbnVsbC91bmRlZmluZWQsIG1lYW5pbmcgbm8gZnVydGhlciBwcm9jZXNzaW5nKS5cbiAgICAgIC8vIEJ1dCBjYXRjaCBhbnkgZXhjZXB0aW9ucyB0aHJvd24gYnkgZnVuY3Rpb24sIHRyZWF0aW5nIHRoZW1cbiAgICAgIC8vIGxpa2UgXCJlcnJvclwiLlxuICAgICAgdHJ5IHtcbiAgICAgICAgc3RyaWN0ID0gc3RyaWN0KGVycm9yQ29kZSwgZXJyb3JNc2csIHRva2VuKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHN0cmljdCA9IFwiZXJyb3JcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXN0cmljdCB8fCBzdHJpY3QgPT09IFwiaWdub3JlXCIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHN0cmljdCA9PT0gdHJ1ZSB8fCBzdHJpY3QgPT09IFwiZXJyb3JcIikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChzdHJpY3QgPT09IFwid2FyblwiKSB7XG4gICAgICB0eXBlb2YgY29uc29sZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBjb25zb2xlLndhcm4oXCJMYVRlWC1pbmNvbXBhdGlibGUgaW5wdXQgYW5kIHN0cmljdCBtb2RlIGlzIHNldCB0byAnd2Fybic6IFwiICsgKGVycm9yTXNnICsgXCIgW1wiICsgZXJyb3JDb2RlICsgXCJdXCIpKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gd29uJ3QgaGFwcGVuIGluIHR5cGUtc2FmZSBjb2RlXG4gICAgICB0eXBlb2YgY29uc29sZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBjb25zb2xlLndhcm4oXCJMYVRlWC1pbmNvbXBhdGlibGUgaW5wdXQgYW5kIHN0cmljdCBtb2RlIGlzIHNldCB0byBcIiArIChcInVucmVjb2duaXplZCAnXCIgKyBzdHJpY3QgKyBcIic6IFwiICsgZXJyb3JNc2cgKyBcIiBbXCIgKyBlcnJvckNvZGUgKyBcIl1cIikpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciB0byB0ZXN0IHBvdGVudGlhbGx5IGRhbmdlcm91cyBpbnB1dCwgYW5kIHJldHVyblxuICAgKiBgdHJ1ZWAgKHRydXN0ZWQpIG9yIGBmYWxzZWAgKHVudHJ1c3RlZCkuICBUaGUgc29sZSBhcmd1bWVudCBgY29udGV4dGBcbiAgICogc2hvdWxkIGJlIGFuIG9iamVjdCB3aXRoIGBjb21tYW5kYCBmaWVsZCBzcGVjaWZ5aW5nIHRoZSByZWxldmFudCBMYVRlWFxuICAgKiBjb21tYW5kIChhcyBhIHN0cmluZyBzdGFydGluZyB3aXRoIGBcXGApLCBhbmQgYW55IG90aGVyIGFyZ3VtZW50cywgZXRjLlxuICAgKiBJZiBgY29udGV4dGAgaGFzIGEgYHVybGAgZmllbGQsIGEgYHByb3RvY29sYCBmaWVsZCB3aWxsIGF1dG9tYXRpY2FsbHlcbiAgICogZ2V0IGFkZGVkIGJ5IHRoaXMgZnVuY3Rpb24gKGNoYW5naW5nIHRoZSBzcGVjaWZpZWQgb2JqZWN0KS5cbiAgICovXG5cblxuICBpc1RydXN0ZWQoY29udGV4dCkge1xuICAgIGlmIChjb250ZXh0LnVybCAmJiAhY29udGV4dC5wcm90b2NvbCkge1xuICAgICAgdmFyIHByb3RvY29sID0gdXRpbHMucHJvdG9jb2xGcm9tVXJsKGNvbnRleHQudXJsKTtcblxuICAgICAgaWYgKHByb3RvY29sID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0LnByb3RvY29sID0gcHJvdG9jb2w7XG4gICAgfVxuXG4gICAgdmFyIHRydXN0ID0gdHlwZW9mIHRoaXMudHJ1c3QgPT09IFwiZnVuY3Rpb25cIiA/IHRoaXMudHJ1c3QoY29udGV4dCkgOiB0aGlzLnRydXN0O1xuICAgIHJldHVybiBCb29sZWFuKHRydXN0KTtcbiAgfVxuXG59XG5cbi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFuZCBjbGFzc2VzIGZvciB0aGUgdmFyaW91cyBraW5kcyBvZiBzdHlsZXNcbiAqIHVzZWQgaW4gVGVYLiBJdCBwcm92aWRlcyBhIGdlbmVyaWMgYFN0eWxlYCBjbGFzcywgd2hpY2ggaG9sZHMgaW5mb3JtYXRpb25cbiAqIGFib3V0IGEgc3BlY2lmaWMgc3R5bGUuIEl0IHRoZW4gcHJvdmlkZXMgaW5zdGFuY2VzIG9mIGFsbCB0aGUgZGlmZmVyZW50IGtpbmRzXG4gKiBvZiBzdHlsZXMgcG9zc2libGUsIGFuZCBwcm92aWRlcyBmdW5jdGlvbnMgdG8gbW92ZSBiZXR3ZWVuIHRoZW0gYW5kIGdldFxuICogaW5mb3JtYXRpb24gYWJvdXQgdGhlbS5cbiAqL1xuXG4vKipcbiAqIFRoZSBtYWluIHN0eWxlIGNsYXNzLiBDb250YWlucyBhIHVuaXF1ZSBpZCBmb3IgdGhlIHN0eWxlLCBhIHNpemUgKHdoaWNoIGlzXG4gKiB0aGUgc2FtZSBmb3IgY3JhbXBlZCBhbmQgdW5jcmFtcGVkIHZlcnNpb24gb2YgYSBzdHlsZSksIGFuZCBhIGNyYW1wZWQgZmxhZy5cbiAqL1xuY2xhc3MgU3R5bGUge1xuICBjb25zdHJ1Y3RvcihpZCwgc2l6ZSwgY3JhbXBlZCkge1xuICAgIHRoaXMuaWQgPSB2b2lkIDA7XG4gICAgdGhpcy5zaXplID0gdm9pZCAwO1xuICAgIHRoaXMuY3JhbXBlZCA9IHZvaWQgMDtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgICB0aGlzLmNyYW1wZWQgPSBjcmFtcGVkO1xuICB9XG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0eWxlIG9mIGEgc3VwZXJzY3JpcHQgZ2l2ZW4gYSBiYXNlIGluIHRoZSBjdXJyZW50IHN0eWxlLlxuICAgKi9cblxuXG4gIHN1cCgpIHtcbiAgICByZXR1cm4gc3R5bGVzW3N1cFt0aGlzLmlkXV07XG4gIH1cbiAgLyoqXG4gICAqIEdldCB0aGUgc3R5bGUgb2YgYSBzdWJzY3JpcHQgZ2l2ZW4gYSBiYXNlIGluIHRoZSBjdXJyZW50IHN0eWxlLlxuICAgKi9cblxuXG4gIHN1YigpIHtcbiAgICByZXR1cm4gc3R5bGVzW3N1Ylt0aGlzLmlkXV07XG4gIH1cbiAgLyoqXG4gICAqIEdldCB0aGUgc3R5bGUgb2YgYSBmcmFjdGlvbiBudW1lcmF0b3IgZ2l2ZW4gdGhlIGZyYWN0aW9uIGluIHRoZSBjdXJyZW50XG4gICAqIHN0eWxlLlxuICAgKi9cblxuXG4gIGZyYWNOdW0oKSB7XG4gICAgcmV0dXJuIHN0eWxlc1tmcmFjTnVtW3RoaXMuaWRdXTtcbiAgfVxuICAvKipcbiAgICogR2V0IHRoZSBzdHlsZSBvZiBhIGZyYWN0aW9uIGRlbm9taW5hdG9yIGdpdmVuIHRoZSBmcmFjdGlvbiBpbiB0aGUgY3VycmVudFxuICAgKiBzdHlsZS5cbiAgICovXG5cblxuICBmcmFjRGVuKCkge1xuICAgIHJldHVybiBzdHlsZXNbZnJhY0Rlblt0aGlzLmlkXV07XG4gIH1cbiAgLyoqXG4gICAqIEdldCB0aGUgY3JhbXBlZCB2ZXJzaW9uIG9mIGEgc3R5bGUgKGluIHBhcnRpY3VsYXIsIGNyYW1waW5nIGEgY3JhbXBlZCBzdHlsZVxuICAgKiBkb2Vzbid0IGNoYW5nZSB0aGUgc3R5bGUpLlxuICAgKi9cblxuXG4gIGNyYW1wKCkge1xuICAgIHJldHVybiBzdHlsZXNbY3JhbXBbdGhpcy5pZF1dO1xuICB9XG4gIC8qKlxuICAgKiBHZXQgYSB0ZXh0IG9yIGRpc3BsYXkgdmVyc2lvbiBvZiB0aGlzIHN0eWxlLlxuICAgKi9cblxuXG4gIHRleHQoKSB7XG4gICAgcmV0dXJuIHN0eWxlc1t0ZXh0JDFbdGhpcy5pZF1dO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIHN0eWxlIGlzIHRpZ2h0bHkgc3BhY2VkIChzY3JpcHRzdHlsZS9zY3JpcHRzY3JpcHRzdHlsZSlcbiAgICovXG5cblxuICBpc1RpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLnNpemUgPj0gMjtcbiAgfVxuXG59IC8vIEV4cG9ydCBhbiBpbnRlcmZhY2UgZm9yIHR5cGUgY2hlY2tpbmcsIGJ1dCBkb24ndCBleHBvc2UgdGhlIGltcGxlbWVudGF0aW9uLlxuLy8gVGhpcyB3YXksIG5vIG1vcmUgc3R5bGVzIGNhbiBiZSBnZW5lcmF0ZWQuXG5cblxuLy8gSURzIG9mIHRoZSBkaWZmZXJlbnQgc3R5bGVzXG52YXIgRCA9IDA7XG52YXIgRGMgPSAxO1xudmFyIFQgPSAyO1xudmFyIFRjID0gMztcbnZhciBTID0gNDtcbnZhciBTYyA9IDU7XG52YXIgU1MgPSA2O1xudmFyIFNTYyA9IDc7IC8vIEluc3RhbmNlcyBvZiB0aGUgZGlmZmVyZW50IHN0eWxlc1xuXG52YXIgc3R5bGVzID0gW25ldyBTdHlsZShELCAwLCBmYWxzZSksIG5ldyBTdHlsZShEYywgMCwgdHJ1ZSksIG5ldyBTdHlsZShULCAxLCBmYWxzZSksIG5ldyBTdHlsZShUYywgMSwgdHJ1ZSksIG5ldyBTdHlsZShTLCAyLCBmYWxzZSksIG5ldyBTdHlsZShTYywgMiwgdHJ1ZSksIG5ldyBTdHlsZShTUywgMywgZmFsc2UpLCBuZXcgU3R5bGUoU1NjLCAzLCB0cnVlKV07IC8vIExvb2t1cCB0YWJsZXMgZm9yIHN3aXRjaGluZyBmcm9tIG9uZSBzdHlsZSB0byBhbm90aGVyXG5cbnZhciBzdXAgPSBbUywgU2MsIFMsIFNjLCBTUywgU1NjLCBTUywgU1NjXTtcbnZhciBzdWIgPSBbU2MsIFNjLCBTYywgU2MsIFNTYywgU1NjLCBTU2MsIFNTY107XG52YXIgZnJhY051bSA9IFtULCBUYywgUywgU2MsIFNTLCBTU2MsIFNTLCBTU2NdO1xudmFyIGZyYWNEZW4gPSBbVGMsIFRjLCBTYywgU2MsIFNTYywgU1NjLCBTU2MsIFNTY107XG52YXIgY3JhbXAgPSBbRGMsIERjLCBUYywgVGMsIFNjLCBTYywgU1NjLCBTU2NdO1xudmFyIHRleHQkMSA9IFtELCBEYywgVCwgVGMsIFQsIFRjLCBULCBUY107IC8vIFdlIG9ubHkgZXhwb3J0IHNvbWUgb2YgdGhlIHN0eWxlcy5cblxudmFyIFN0eWxlJDEgPSB7XG4gIERJU1BMQVk6IHN0eWxlc1tEXSxcbiAgVEVYVDogc3R5bGVzW1RdLFxuICBTQ1JJUFQ6IHN0eWxlc1tTXSxcbiAgU0NSSVBUU0NSSVBUOiBzdHlsZXNbU1NdXG59O1xuXG4vKlxuICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIFVuaWNvZGUgc2NyaXB0cyBhbmQgc2NyaXB0IGZhbWlsaWVzIHRoYXQgd2VcbiAqIHN1cHBvcnQuIFRvIGFkZCBuZXcgc2NyaXB0cyBvciBmYW1pbGllcywganVzdCBhZGQgYSBuZXcgZW50cnkgdG8gdGhlXG4gKiBzY3JpcHREYXRhIGFycmF5IGJlbG93LiBBZGRpbmcgc2NyaXB0cyB0byB0aGUgc2NyaXB0RGF0YSBhcnJheSBhbGxvd3NcbiAqIGNoYXJhY3RlcnMgZnJvbSB0aGF0IHNjcmlwdCB0byBhcHBlYXIgaW4gXFx0ZXh0e30gZW52aXJvbm1lbnRzLlxuICovXG5cbi8qKlxuICogRWFjaCBzY3JpcHQgb3Igc2NyaXB0IGZhbWlseSBoYXMgYSBuYW1lIGFuZCBhbiBhcnJheSBvZiBibG9ja3MuXG4gKiBFYWNoIGJsb2NrIGlzIGFuIGFycmF5IG9mIHR3byBudW1iZXJzIHdoaWNoIHNwZWNpZnkgdGhlIHN0YXJ0IGFuZFxuICogZW5kIHBvaW50cyAoaW5jbHVzaXZlKSBvZiBhIGJsb2NrIG9mIFVuaWNvZGUgY29kZXBvaW50cy5cbiAqL1xuXG4vKipcbiAqIFVuaWNvZGUgYmxvY2sgZGF0YSBmb3IgdGhlIGZhbWlsaWVzIG9mIHNjcmlwdHMgd2Ugc3VwcG9ydCBpbiBcXHRleHR7fS5cbiAqIFNjcmlwdHMgb25seSBuZWVkIHRvIGFwcGVhciBoZXJlIGlmIHRoZXkgZG8gbm90IGhhdmUgZm9udCBtZXRyaWNzLlxuICovXG52YXIgc2NyaXB0RGF0YSA9IFt7XG4gIC8vIExhdGluIGNoYXJhY3RlcnMgYmV5b25kIHRoZSBMYXRpbi0xIGNoYXJhY3RlcnMgd2UgaGF2ZSBtZXRyaWNzIGZvci5cbiAgLy8gTmVlZGVkIGZvciBDemVjaCwgSHVuZ2FyaWFuIGFuZCBUdXJraXNoIHRleHQsIGZvciBleGFtcGxlLlxuICBuYW1lOiAnbGF0aW4nLFxuICBibG9ja3M6IFtbMHgwMTAwLCAweDAyNGZdLCAvLyBMYXRpbiBFeHRlbmRlZC1BIGFuZCBMYXRpbiBFeHRlbmRlZC1CXG4gIFsweDAzMDAsIDB4MDM2Zl0gLy8gQ29tYmluaW5nIERpYWNyaXRpY2FsIG1hcmtzXG4gIF1cbn0sIHtcbiAgLy8gVGhlIEN5cmlsbGljIHNjcmlwdCB1c2VkIGJ5IFJ1c3NpYW4gYW5kIHJlbGF0ZWQgbGFuZ3VhZ2VzLlxuICAvLyBBIEN5cmlsbGljIHN1YnNldCB1c2VkIHRvIGJlIHN1cHBvcnRlZCBhcyBleHBsaWNpdGx5IGRlZmluZWRcbiAgLy8gc3ltYm9scyBpbiBzeW1ib2xzLmpzXG4gIG5hbWU6ICdjeXJpbGxpYycsXG4gIGJsb2NrczogW1sweDA0MDAsIDB4MDRmZl1dXG59LCB7XG4gIC8vIEFybWVuaWFuXG4gIG5hbWU6ICdhcm1lbmlhbicsXG4gIGJsb2NrczogW1sweDA1MzAsIDB4MDU4Rl1dXG59LCB7XG4gIC8vIFRoZSBCcmFobWljIHNjcmlwdHMgb2YgU291dGggYW5kIFNvdXRoZWFzdCBBc2lhXG4gIC8vIERldmFuYWdhcmkgKDA5MDDigJMwOTdGKVxuICAvLyBCZW5nYWxpICgwOTgw4oCTMDlGRilcbiAgLy8gR3VybXVraGkgKDBBMDDigJMwQTdGKVxuICAvLyBHdWphcmF0aSAoMEE4MOKAkzBBRkYpXG4gIC8vIE9yaXlhICgwQjAw4oCTMEI3RilcbiAgLy8gVGFtaWwgKDBCODDigJMwQkZGKVxuICAvLyBUZWx1Z3UgKDBDMDDigJMwQzdGKVxuICAvLyBLYW5uYWRhICgwQzgw4oCTMENGRilcbiAgLy8gTWFsYXlhbGFtICgwRDAw4oCTMEQ3RilcbiAgLy8gU2luaGFsYSAoMEQ4MOKAkzBERkYpXG4gIC8vIFRoYWkgKDBFMDDigJMwRTdGKVxuICAvLyBMYW8gKDBFODDigJMwRUZGKVxuICAvLyBUaWJldGFuICgwRjAw4oCTMEZGRilcbiAgLy8gTXlhbm1hciAoMTAwMOKAkzEwOUYpXG4gIG5hbWU6ICdicmFobWljJyxcbiAgYmxvY2tzOiBbWzB4MDkwMCwgMHgxMDlGXV1cbn0sIHtcbiAgbmFtZTogJ2dlb3JnaWFuJyxcbiAgYmxvY2tzOiBbWzB4MTBBMCwgMHgxMGZmXV1cbn0sIHtcbiAgLy8gQ2hpbmVzZSBhbmQgSmFwYW5lc2UuXG4gIC8vIFRoZSBcImtcIiBpbiBjamsgaXMgZm9yIEtvcmVhbiwgYnV0IHdlJ3ZlIHNlcGFyYXRlZCBLb3JlYW4gb3V0XG4gIG5hbWU6IFwiY2prXCIsXG4gIGJsb2NrczogW1sweDMwMDAsIDB4MzBGRl0sIC8vIENKSyBzeW1ib2xzIGFuZCBwdW5jdHVhdGlvbiwgSGlyYWdhbmEsIEthdGFrYW5hXG4gIFsweDRFMDAsIDB4OUZBRl0sIC8vIENKSyBpZGVvZ3JhbXNcbiAgWzB4RkYwMCwgMHhGRjYwXSAvLyBGdWxsd2lkdGggcHVuY3R1YXRpb25cbiAgLy8gVE9ETzogYWRkIGhhbGZ3aWR0aCBLYXRha2FuYSBhbmQgUm9tYW5qaSBnbHlwaHNcbiAgXVxufSwge1xuICAvLyBLb3JlYW5cbiAgbmFtZTogJ2hhbmd1bCcsXG4gIGJsb2NrczogW1sweEFDMDAsIDB4RDdBRl1dXG59XTtcbi8qKlxuICogR2l2ZW4gYSBjb2RlcG9pbnQsIHJldHVybiB0aGUgbmFtZSBvZiB0aGUgc2NyaXB0IG9yIHNjcmlwdCBmYW1pbHlcbiAqIGl0IGlzIGZyb20sIG9yIG51bGwgaWYgaXQgaXMgbm90IHBhcnQgb2YgYSBrbm93biBibG9ja1xuICovXG5cbmZ1bmN0aW9uIHNjcmlwdEZyb21Db2RlcG9pbnQoY29kZXBvaW50KSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0RGF0YS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzY3JpcHQgPSBzY3JpcHREYXRhW2ldO1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHNjcmlwdC5ibG9ja3MubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgYmxvY2sgPSBzY3JpcHQuYmxvY2tzW19pXTtcblxuICAgICAgaWYgKGNvZGVwb2ludCA+PSBibG9ja1swXSAmJiBjb2RlcG9pbnQgPD0gYmxvY2tbMV0pIHtcbiAgICAgICAgcmV0dXJuIHNjcmlwdC5uYW1lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuLyoqXG4gKiBBIGZsYXR0ZW5lZCB2ZXJzaW9uIG9mIGFsbCB0aGUgc3VwcG9ydGVkIGJsb2NrcyBpbiBhIHNpbmdsZSBhcnJheS5cbiAqIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIHRvIG1ha2Ugc3VwcG9ydGVkQ29kZXBvaW50KCkgZmFzdC5cbiAqL1xuXG52YXIgYWxsQmxvY2tzID0gW107XG5zY3JpcHREYXRhLmZvckVhY2gocyA9PiBzLmJsb2Nrcy5mb3JFYWNoKGIgPT4gYWxsQmxvY2tzLnB1c2goLi4uYikpKTtcbi8qKlxuICogR2l2ZW4gYSBjb2RlcG9pbnQsIHJldHVybiB0cnVlIGlmIGl0IGZhbGxzIHdpdGhpbiBvbmUgb2YgdGhlXG4gKiBzY3JpcHRzIG9yIHNjcmlwdCBmYW1pbGllcyBkZWZpbmVkIGFib3ZlIGFuZCBmYWxzZSBvdGhlcndpc2UuXG4gKlxuICogTWljcm8gYmVuY2htYXJrcyBzaG93cyB0aGF0IHRoaXMgaXMgZmFzdGVyIHRoYW5cbiAqIC9bXFx1MzAwMC1cXHUzMEZGXFx1NEUwMC1cXHU5RkFGXFx1RkYwMC1cXHVGRjYwXFx1QUMwMC1cXHVEN0FGXFx1MDkwMC1cXHUxMDlGXS8udGVzdCgpXG4gKiBpbiBGaXJlZm94LCBDaHJvbWUgYW5kIE5vZGUuXG4gKi9cblxuZnVuY3Rpb24gc3VwcG9ydGVkQ29kZXBvaW50KGNvZGVwb2ludCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIGlmIChjb2RlcG9pbnQgPj0gYWxsQmxvY2tzW2ldICYmIGNvZGVwb2ludCA8PSBhbGxCbG9ja3NbaSArIDFdKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogVGhpcyBmaWxlIHByb3ZpZGVzIHN1cHBvcnQgdG8gZG9tVHJlZS5qcyBhbmQgZGVsaW1pdGVyLmpzLlxuICogSXQncyBhIHN0b3JlaG91c2Ugb2YgcGF0aCBnZW9tZXRyeSBmb3IgU1ZHIGltYWdlcy5cbiAqL1xuLy8gSW4gYWxsIHBhdGhzIGJlbG93LCB0aGUgdmlld0JveC10by1lbSBzY2FsZSBpcyAxMDAwOjEuXG52YXIgaExpbmVQYWQgPSA4MDsgLy8gcGFkZGluZyBhYm92ZSBhIHNxcnQgdmluY3VsdW0uIFByZXZlbnRzIGltYWdlIGNyb3BwaW5nLlxuLy8gVGhlIHZpbmN1bHVtIG9mIGEgXFxzcXJ0IGNhbiBiZSBtYWRlIHRoaWNrZXIgYnkgYSBLYVRlWCByZW5kZXJpbmcgb3B0aW9uLlxuLy8gVGhpbmsgb2YgdmFyaWFibGUgZXh0cmFWaW5jdWx1bSBhcyB0d28gZGV0b3VycyBpbiB0aGUgU1ZHIHBhdGguXG4vLyBUaGUgZGV0b3VyIGJlZ2lucyBhdCB0aGUgbG93ZXIgbGVmdCBvZiB0aGUgYXJlYSBsYWJlbGVkIGV4dHJhVmluY3VsdW0gYmVsb3cuXG4vLyBUaGUgZGV0b3VyIHByb2NlZWRzIG9uZSBleHRyYVZpbmN1bHVtIGRpc3RhbmNlIHVwIGFuZCBzbGlnaHRseSB0byB0aGUgcmlnaHQsXG4vLyBkaXNwbGFjaW5nIHRoZSByYWRpdXNlZCBjb3JuZXIgYmV0d2VlbiBzdXJkIGFuZCB2aW5jdWx1bS4gVGhlIHJhZGl1cyBpc1xuLy8gdHJhdmVyc2VkIGFzIHVzdWFsLCB0aGVuIHRoZSBkZXRvdXIgcmVzdW1lcy4gSXQgZ29lcyByaWdodCwgdG8gdGhlIGVuZCBvZlxuLy8gdGhlIHZlcnkgbG9uZyB2aW5jdWx1bSwgdGhlbiBkb3duIG9uZSBleHRyYVZpbmN1bHVtIGRpc3RhbmNlLFxuLy8gYWZ0ZXIgd2hpY2ggaXQgcmVzdW1lcyByZWd1bGFyIHBhdGggZ2VvbWV0cnkgZm9yIHRoZSByYWRpY2FsLlxuXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmluY3VsdW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC9cbiAgICAgICAgIC/ilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLilpLihpBleHRyYVZpbmN1bHVtXG4gICAgICAgIC8g4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4oaQMC4wNGVtICg0MCB1bml0KSBzdGQgdmluY3VsdW0gdGhpY2tuZXNzXG4gICAgICAgLyAvXG4gICAgICAvIC9cbiAgICAgLyAvXFxcbiAgICAvIC8gc3VyZFxuKi9cblxudmFyIHNxcnRNYWluID0gZnVuY3Rpb24gc3FydE1haW4oZXh0cmFWaW5jdWx1bSwgaExpbmVQYWQpIHtcbiAgLy8gc3FydE1haW4gcGF0aCBnZW9tZXRyeSBpcyBmcm9tIGdseXBoIFUyMjFBIGluIHRoZSBmb250IEthVGVYIE1haW5cbiAgcmV0dXJuIFwiTTk1LFwiICsgKDYyMiArIGV4dHJhVmluY3VsdW0gKyBoTGluZVBhZCkgKyBcIlxcbmMtMi43LDAsLTcuMTcsLTIuNywtMTMuNSwtOGMtNS44LC01LjMsLTkuNSwtMTAsLTkuNSwtMTRcXG5jMCwtMiwwLjMsLTMuMywxLC00YzEuMywtMi43LDIzLjgzLC0yMC43LDY3LjUsLTU0XFxuYzQ0LjIsLTMzLjMsNjUuOCwtNTAuMyw2Ni41LC01MWMxLjMsLTEuMywzLC0yLDUsLTJjNC43LDAsOC43LDMuMywxMiwxMFxcbnMxNzMsMzc4LDE3MywzNzhjMC43LDAsMzUuMywtNzEsMTA0LC0yMTNjNjguNywtMTQyLDEzNy41LC0yODUsMjA2LjUsLTQyOVxcbmM2OSwtMTQ0LDEwNC41LC0yMTcuNywxMDYuNSwtMjIxXFxubFwiICsgZXh0cmFWaW5jdWx1bSAvIDIuMDc1ICsgXCIgLVwiICsgZXh0cmFWaW5jdWx1bSArIFwiXFxuYzUuMywtOS4zLDEyLC0xNCwyMCwtMTRcXG5INDAwMDAwdlwiICsgKDQwICsgZXh0cmFWaW5jdWx1bSkgKyBcIkg4NDUuMjcyNFxcbnMtMjI1LjI3Miw0NjcsLTIyNS4yNzIsNDY3cy0yMzUsNDg2LC0yMzUsNDg2Yy0yLjcsNC43LC05LDcsLTE5LDdcXG5jLTYsMCwtMTAsLTEsLTEyLC0zcy0xOTQsLTQyMiwtMTk0LC00MjJzLTY1LDQ3LC02NSw0N3pcXG5NXCIgKyAoODM0ICsgZXh0cmFWaW5jdWx1bSkgKyBcIiBcIiArIGhMaW5lUGFkICsgXCJoNDAwMDAwdlwiICsgKDQwICsgZXh0cmFWaW5jdWx1bSkgKyBcImgtNDAwMDAwelwiO1xufTtcblxudmFyIHNxcnRTaXplMSA9IGZ1bmN0aW9uIHNxcnRTaXplMShleHRyYVZpbmN1bHVtLCBoTGluZVBhZCkge1xuICAvLyBzaXplMSBpcyBmcm9tIGdseXBoIFUyMjFBIGluIHRoZSBmb250IEthVGVYX1NpemUxLVJlZ3VsYXJcbiAgcmV0dXJuIFwiTTI2MyxcIiArICg2MDEgKyBleHRyYVZpbmN1bHVtICsgaExpbmVQYWQpICsgXCJjMC43LDAsMTgsMzkuNyw1MiwxMTlcXG5jMzQsNzkuMyw2OC4xNjcsMTU4LjcsMTAyLjUsMjM4YzM0LjMsNzkuMyw1MS44LDExOS4zLDUyLjUsMTIwXFxuYzM0MCwtNzA0LjcsNTEwLjcsLTEwNjAuMyw1MTIsLTEwNjdcXG5sXCIgKyBleHRyYVZpbmN1bHVtIC8gMi4wODQgKyBcIiAtXCIgKyBleHRyYVZpbmN1bHVtICsgXCJcXG5jNC43LC03LjMsMTEsLTExLDE5LC0xMVxcbkg0MDAwMHZcIiArICg0MCArIGV4dHJhVmluY3VsdW0pICsgXCJIMTAxMi4zXFxucy0yNzEuMyw1NjcsLTI3MS4zLDU2N2MtMzguNyw4MC43LC04NCwxNzUsLTEzNiwyODNjLTUyLDEwOCwtODkuMTY3LDE4NS4zLC0xMTEuNSwyMzJcXG5jLTIyLjMsNDYuNywtMzMuOCw3MC4zLC0zNC41LDcxYy00LjcsNC43LC0xMi4zLDcsLTIzLDdzLTEyLC0xLC0xMiwtMVxcbnMtMTA5LC0yNTMsLTEwOSwtMjUzYy03Mi43LC0xNjgsLTEwOS4zLC0yNTIsLTExMCwtMjUyYy0xMC43LDgsLTIyLDE2LjcsLTM0LDI2XFxuYy0yMiwxNy4zLC0zMy4zLDI2LC0zNCwyNnMtMjYsLTI2LC0yNiwtMjZzNzYsLTU5LDc2LC01OXM3NiwtNjAsNzYsLTYwelxcbk1cIiArICgxMDAxICsgZXh0cmFWaW5jdWx1bSkgKyBcIiBcIiArIGhMaW5lUGFkICsgXCJoNDAwMDAwdlwiICsgKDQwICsgZXh0cmFWaW5jdWx1bSkgKyBcImgtNDAwMDAwelwiO1xufTtcblxudmFyIHNxcnRTaXplMiA9IGZ1bmN0aW9uIHNxcnRTaXplMihleHRyYVZpbmN1bHVtLCBoTGluZVBhZCkge1xuICAvLyBzaXplMiBpcyBmcm9tIGdseXBoIFUyMjFBIGluIHRoZSBmb250IEthVGVYX1NpemUyLVJlZ3VsYXJcbiAgcmV0dXJuIFwiTTk4MyBcIiArICgxMCArIGV4dHJhVmluY3VsdW0gKyBoTGluZVBhZCkgKyBcIlxcbmxcIiArIGV4dHJhVmluY3VsdW0gLyAzLjEzICsgXCIgLVwiICsgZXh0cmFWaW5jdWx1bSArIFwiXFxuYzQsLTYuNywxMCwtMTAsMTgsLTEwIEg0MDAwMDB2XCIgKyAoNDAgKyBleHRyYVZpbmN1bHVtKSArIFwiXFxuSDEwMTMuMXMtODMuNCwyNjgsLTI2NC4xLDg0MGMtMTgwLjcsNTcyLC0yNzcsODc2LjMsLTI4OSw5MTNjLTQuNyw0LjcsLTEyLjcsNywtMjQsN1xcbnMtMTIsMCwtMTIsMGMtMS4zLC0zLjMsLTMuNywtMTEuNywtNywtMjVjLTM1LjMsLTEyNS4zLC0xMDYuNywtMzczLjMsLTIxNCwtNzQ0XFxuYy0xMCwxMiwtMjEsMjUsLTMzLDM5cy0zMiwzOSwtMzIsMzljLTYsLTUuMywtMTUsLTE0LC0yNywtMjZzMjUsLTMwLDI1LC0zMFxcbmMyNi43LC0zMi43LDUyLC02Myw3NiwtOTFzNTIsLTYwLDUyLC02MHMyMDgsNzIyLDIwOCw3MjJcXG5jNTYsLTE3NS4zLDEyNi4zLC0zOTcuMywyMTEsLTY2NmM4NC43LC0yNjguNywxNTMuOCwtNDg4LjIsMjA3LjUsLTY1OC41XFxuYzUzLjcsLTE3MC4zLDg0LjUsLTI2Ni44LDkyLjUsLTI4OS41elxcbk1cIiArICgxMDAxICsgZXh0cmFWaW5jdWx1bSkgKyBcIiBcIiArIGhMaW5lUGFkICsgXCJoNDAwMDAwdlwiICsgKDQwICsgZXh0cmFWaW5jdWx1bSkgKyBcImgtNDAwMDAwelwiO1xufTtcblxudmFyIHNxcnRTaXplMyA9IGZ1bmN0aW9uIHNxcnRTaXplMyhleHRyYVZpbmN1bHVtLCBoTGluZVBhZCkge1xuICAvLyBzaXplMyBpcyBmcm9tIGdseXBoIFUyMjFBIGluIHRoZSBmb250IEthVGVYX1NpemUzLVJlZ3VsYXJcbiAgcmV0dXJuIFwiTTQyNCxcIiArICgyMzk4ICsgZXh0cmFWaW5jdWx1bSArIGhMaW5lUGFkKSArIFwiXFxuYy0xLjMsLTAuNywtMzguNSwtMTcyLC0xMTEuNSwtNTE0Yy03MywtMzQyLC0xMDkuOCwtNTEzLjMsLTExMC41LC01MTRcXG5jMCwtMiwtMTAuNywxNC4zLC0zMiw0OWMtNC43LDcuMywtOS44LDE1LjcsLTE1LjUsMjVjLTUuNyw5LjMsLTkuOCwxNiwtMTIuNSwyMFxcbnMtNSw3LC01LDdjLTQsLTMuMywtOC4zLC03LjcsLTEzLC0xM3MtMTMsLTEzLC0xMywtMTNzNzYsLTEyMiw3NiwtMTIyczc3LC0xMjEsNzcsLTEyMVxcbnMyMDksOTY4LDIwOSw5NjhjMCwtMiw4NC43LC0zNjEuNywyNTQsLTEwNzljMTY5LjMsLTcxNy4zLDI1NC43LC0xMDc3LjcsMjU2LC0xMDgxXFxubFwiICsgZXh0cmFWaW5jdWx1bSAvIDQuMjIzICsgXCIgLVwiICsgZXh0cmFWaW5jdWx1bSArIFwiYzQsLTYuNywxMCwtMTAsMTgsLTEwIEg0MDAwMDBcXG52XCIgKyAoNDAgKyBleHRyYVZpbmN1bHVtKSArIFwiSDEwMTQuNlxcbnMtODcuMywzNzguNywtMjcyLjYsMTE2NmMtMTg1LjMsNzg3LjMsLTI3OS4zLDExODIuMywtMjgyLDExODVcXG5jLTIsNiwtMTAsOSwtMjQsOVxcbmMtOCwwLC0xMiwtMC43LC0xMiwtMnogTVwiICsgKDEwMDEgKyBleHRyYVZpbmN1bHVtKSArIFwiIFwiICsgaExpbmVQYWQgKyBcIlxcbmg0MDAwMDB2XCIgKyAoNDAgKyBleHRyYVZpbmN1bHVtKSArIFwiaC00MDAwMDB6XCI7XG59O1xuXG52YXIgc3FydFNpemU0ID0gZnVuY3Rpb24gc3FydFNpemU0KGV4dHJhVmluY3VsdW0sIGhMaW5lUGFkKSB7XG4gIC8vIHNpemU0IGlzIGZyb20gZ2x5cGggVTIyMUEgaW4gdGhlIGZvbnQgS2FUZVhfU2l6ZTQtUmVndWxhclxuICByZXR1cm4gXCJNNDczLFwiICsgKDI3MTMgKyBleHRyYVZpbmN1bHVtICsgaExpbmVQYWQpICsgXCJcXG5jMzM5LjMsLTE3OTkuMyw1MDkuMywtMjcwMCw1MTAsLTI3MDIgbFwiICsgZXh0cmFWaW5jdWx1bSAvIDUuMjk4ICsgXCIgLVwiICsgZXh0cmFWaW5jdWx1bSArIFwiXFxuYzMuMywtNy4zLDkuMywtMTEsMTgsLTExIEg0MDAwMDB2XCIgKyAoNDAgKyBleHRyYVZpbmN1bHVtKSArIFwiSDEwMTcuN1xcbnMtOTAuNSw0NzgsLTI3Ni4yLDE0NjZjLTE4NS43LDk4OCwtMjc5LjUsMTQ4MywtMjgxLjUsMTQ4NWMtMiw2LC0xMCw5LC0yNCw5XFxuYy04LDAsLTEyLC0wLjcsLTEyLC0yYzAsLTEuMywtNS4zLC0zMiwtMTYsLTkyYy01MC43LC0yOTMuMywtMTE5LjcsLTY5My4zLC0yMDcsLTEyMDBcXG5jMCwtMS4zLC01LjMsOC43LC0xNiwzMGMtMTAuNywyMS4zLC0yMS4zLDQyLjcsLTMyLDY0cy0xNiwzMywtMTYsMzNzLTI2LC0yNiwtMjYsLTI2XFxuczc2LC0xNTMsNzYsLTE1M3M3NywtMTUxLDc3LC0xNTFjMC43LDAuNywzNS43LDIwMiwxMDUsNjA0YzY3LjMsNDAwLjcsMTAyLDYwMi43LDEwNCxcXG42MDZ6TVwiICsgKDEwMDEgKyBleHRyYVZpbmN1bHVtKSArIFwiIFwiICsgaExpbmVQYWQgKyBcImg0MDAwMDB2XCIgKyAoNDAgKyBleHRyYVZpbmN1bHVtKSArIFwiSDEwMTcuN3pcIjtcbn07XG5cbnZhciBwaGFzZVBhdGggPSBmdW5jdGlvbiBwaGFzZVBhdGgoeSkge1xuICB2YXIgeCA9IHkgLyAyOyAvLyB4IGNvb3JkaW5hdGUgYXQgdG9wIG9mIGFuZ2xlXG5cbiAgcmV0dXJuIFwiTTQwMDAwMCBcIiArIHkgKyBcIiBIMCBMXCIgKyB4ICsgXCIgMCBsNjUgNDUgTDE0NSBcIiArICh5IC0gODApICsgXCIgSDQwMDAwMHpcIjtcbn07XG5cbnZhciBzcXJ0VGFsbCA9IGZ1bmN0aW9uIHNxcnRUYWxsKGV4dHJhVmluY3VsdW0sIGhMaW5lUGFkLCB2aWV3Qm94SGVpZ2h0KSB7XG4gIC8vIHNxcnRUYWxsIGlzIGZyb20gZ2x5cGggVTIzQjcgaW4gdGhlIGZvbnQgS2FUZVhfU2l6ZTQtUmVndWxhclxuICAvLyBPbmUgcGF0aCBlZGdlIGhhcyBhIHZhcmlhYmxlIGxlbmd0aC4gSXQgcnVucyB2ZXJ0aWNhbGx5IGZyb20gdGhlIHZpbmN1bHVtXG4gIC8vIHRvIGEgcG9pbnQgbmVhciAoMTQgdW5pdHMpIHRoZSBib3R0b20gb2YgdGhlIHN1cmQuIFRoZSB2aW5jdWx1bVxuICAvLyBpcyBub3JtYWxseSA0MCB1bml0cyB0aGljay4gU28gdGhlIGxlbmd0aCBvZiB0aGUgbGluZSBpbiBxdWVzdGlvbiBpczpcbiAgdmFyIHZlcnRTZWdtZW50ID0gdmlld0JveEhlaWdodCAtIDU0IC0gaExpbmVQYWQgLSBleHRyYVZpbmN1bHVtO1xuICByZXR1cm4gXCJNNzAyIFwiICsgKGV4dHJhVmluY3VsdW0gKyBoTGluZVBhZCkgKyBcIkg0MDAwMDBcIiArICg0MCArIGV4dHJhVmluY3VsdW0pICsgXCJcXG5INzQydlwiICsgdmVydFNlZ21lbnQgKyBcImwtNCA0LTQgNGMtLjY2Ny43IC0yIDEuNS00IDIuNXMtNC4xNjcgMS44MzMtNi41IDIuNS01LjUgMS05LjUgMVxcbmgtMTJsLTI4LTg0Yy0xNi42NjctNTItOTYuNjY3IC0yOTQuMzMzLTI0MC03MjdsLTIxMiAtNjQzIC04NSAxNzBcXG5jLTQtMy4zMzMtOC4zMzMtNy42NjctMTMgLTEzbC0xMy0xM2w3Ny0xNTUgNzctMTU2YzY2IDE5OS4zMzMgMTM5IDQxOS42NjdcXG4yMTkgNjYxIGwyMTggNjYxek03MDIgXCIgKyBoTGluZVBhZCArIFwiSDQwMDAwMHZcIiArICg0MCArIGV4dHJhVmluY3VsdW0pICsgXCJINzQyelwiO1xufTtcblxudmFyIHNxcnRQYXRoID0gZnVuY3Rpb24gc3FydFBhdGgoc2l6ZSwgZXh0cmFWaW5jdWx1bSwgdmlld0JveEhlaWdodCkge1xuICBleHRyYVZpbmN1bHVtID0gMTAwMCAqIGV4dHJhVmluY3VsdW07IC8vIENvbnZlcnQgZnJvbSBkb2N1bWVudCBlbXMgdG8gdmlld0JveC5cblxuICB2YXIgcGF0aCA9IFwiXCI7XG5cbiAgc3dpdGNoIChzaXplKSB7XG4gICAgY2FzZSBcInNxcnRNYWluXCI6XG4gICAgICBwYXRoID0gc3FydE1haW4oZXh0cmFWaW5jdWx1bSwgaExpbmVQYWQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFwic3FydFNpemUxXCI6XG4gICAgICBwYXRoID0gc3FydFNpemUxKGV4dHJhVmluY3VsdW0sIGhMaW5lUGFkKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBcInNxcnRTaXplMlwiOlxuICAgICAgcGF0aCA9IHNxcnRTaXplMihleHRyYVZpbmN1bHVtLCBoTGluZVBhZCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgXCJzcXJ0U2l6ZTNcIjpcbiAgICAgIHBhdGggPSBzcXJ0U2l6ZTMoZXh0cmFWaW5jdWx1bSwgaExpbmVQYWQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFwic3FydFNpemU0XCI6XG4gICAgICBwYXRoID0gc3FydFNpemU0KGV4dHJhVmluY3VsdW0sIGhMaW5lUGFkKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBcInNxcnRUYWxsXCI6XG4gICAgICBwYXRoID0gc3FydFRhbGwoZXh0cmFWaW5jdWx1bSwgaExpbmVQYWQsIHZpZXdCb3hIZWlnaHQpO1xuICB9XG5cbiAgcmV0dXJuIHBhdGg7XG59O1xudmFyIGlubmVyUGF0aCA9IGZ1bmN0aW9uIGlubmVyUGF0aChuYW1lLCBoZWlnaHQpIHtcbiAgLy8gVGhlIGlubmVyIHBhcnQgb2Ygc3RyZXRjaHkgdGFsbCBkZWxpbWl0ZXJzXG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgXCJcXHUyMzljXCI6XG4gICAgICByZXR1cm4gXCJNMjkxIDAgSDQxNyBWXCIgKyBoZWlnaHQgKyBcIiBIMjkxeiBNMjkxIDAgSDQxNyBWXCIgKyBoZWlnaHQgKyBcIiBIMjkxelwiO1xuXG4gICAgY2FzZSBcIlxcdTIyMjNcIjpcbiAgICAgIHJldHVybiBcIk0xNDUgMCBIMTg4IFZcIiArIGhlaWdodCArIFwiIEgxNDV6IE0xNDUgMCBIMTg4IFZcIiArIGhlaWdodCArIFwiIEgxNDV6XCI7XG5cbiAgICBjYXNlIFwiXFx1MjIyNVwiOlxuICAgICAgcmV0dXJuIFwiTTE0NSAwIEgxODggVlwiICsgaGVpZ2h0ICsgXCIgSDE0NXogTTE0NSAwIEgxODggVlwiICsgaGVpZ2h0ICsgXCIgSDE0NXpcIiArIChcIk0zNjcgMCBINDEwIFZcIiArIGhlaWdodCArIFwiIEgzNjd6IE0zNjcgMCBINDEwIFZcIiArIGhlaWdodCArIFwiIEgzNjd6XCIpO1xuXG4gICAgY2FzZSBcIlxcdTIzOWZcIjpcbiAgICAgIHJldHVybiBcIk00NTcgMCBINTgzIFZcIiArIGhlaWdodCArIFwiIEg0NTd6IE00NTcgMCBINTgzIFZcIiArIGhlaWdodCArIFwiIEg0NTd6XCI7XG5cbiAgICBjYXNlIFwiXFx1MjNhMlwiOlxuICAgICAgcmV0dXJuIFwiTTMxOSAwIEg0MDMgVlwiICsgaGVpZ2h0ICsgXCIgSDMxOXogTTMxOSAwIEg0MDMgVlwiICsgaGVpZ2h0ICsgXCIgSDMxOXpcIjtcblxuICAgIGNhc2UgXCJcXHUyM2E1XCI6XG4gICAgICByZXR1cm4gXCJNMjYzIDAgSDM0NyBWXCIgKyBoZWlnaHQgKyBcIiBIMjYzeiBNMjYzIDAgSDM0NyBWXCIgKyBoZWlnaHQgKyBcIiBIMjYzelwiO1xuXG4gICAgY2FzZSBcIlxcdTIzYWFcIjpcbiAgICAgIHJldHVybiBcIk0zODQgMCBINTA0IFZcIiArIGhlaWdodCArIFwiIEgzODR6IE0zODQgMCBINTA0IFZcIiArIGhlaWdodCArIFwiIEgzODR6XCI7XG5cbiAgICBjYXNlIFwiXFx1MjNkMFwiOlxuICAgICAgcmV0dXJuIFwiTTMxMiAwIEgzNTUgVlwiICsgaGVpZ2h0ICsgXCIgSDMxMnogTTMxMiAwIEgzNTUgVlwiICsgaGVpZ2h0ICsgXCIgSDMxMnpcIjtcblxuICAgIGNhc2UgXCJcXHUyMDE2XCI6XG4gICAgICByZXR1cm4gXCJNMjU3IDAgSDMwMCBWXCIgKyBoZWlnaHQgKyBcIiBIMjU3eiBNMjU3IDAgSDMwMCBWXCIgKyBoZWlnaHQgKyBcIiBIMjU3elwiICsgKFwiTTQ3OCAwIEg1MjEgVlwiICsgaGVpZ2h0ICsgXCIgSDQ3OHogTTQ3OCAwIEg1MjEgVlwiICsgaGVpZ2h0ICsgXCIgSDQ3OHpcIik7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFwiXCI7XG4gIH1cbn07XG52YXIgcGF0aCA9IHtcbiAgLy8gVGhlIGRvdWJsZWxlZnRhcnJvdyBnZW9tZXRyeSBpcyBmcm9tIGdseXBoIFUrMjFEMCBpbiB0aGUgZm9udCBLYVRlWCBNYWluXG4gIGRvdWJsZWxlZnRhcnJvdzogXCJNMjYyIDE1N1xcbmwxMC0xMGMzNC0zNiA2Mi43LTc3IDg2LTEyMyAzLjMtOCA1LTEzLjMgNS0xNiAwLTUuMy02LjctOC0yMC04LTcuM1xcbiAwLTEyLjIuNS0xNC41IDEuNS0yLjMgMS00LjggNC41LTcuNSAxMC41LTQ5LjMgOTcuMy0xMjEuNyAxNjkuMy0yMTcgMjE2LTI4XFxuIDE0LTU3LjMgMjUtODggMzMtNi43IDItMTEgMy44LTEzIDUuNS0yIDEuNy0zIDQuMi0zIDcuNXMxIDUuOCAzIDcuNVxcbmMyIDEuNyA2LjMgMy41IDEzIDUuNSA2OCAxNy4zIDEyOC4yIDQ3LjggMTgwLjUgOTEuNSA1Mi4zIDQzLjcgOTMuOCA5Ni4yIDEyNC41XFxuIDE1Ny41IDkuMyA4IDE1LjMgMTIuMyAxOCAxM2g2YzEyLS43IDE4LTQgMTgtMTAgMC0yLTEuNy03LTUtMTUtMjMuMy00Ni01Mi04N1xcbi04Ni0xMjNsLTEwLTEwaDM5OTczOHYtNDBIMjE4YzMyOCAwIDAgMCAwIDBsLTEwLThjLTI2LjctMjAtNjUuNy00My0xMTctNjkgMi43XFxuLTIgNi0zLjcgMTAtNSAzNi43LTE2IDcyLjMtMzcuMyAxMDctNjRsMTAtOGgzOTk3ODJ2LTQwelxcbm04IDB2NDBoMzk5NzMwdi00MHptMCAxOTR2NDBoMzk5NzMwdi00MHpcIixcbiAgLy8gZG91YmxlcmlnaHRhcnJvdyBpcyBmcm9tIGdseXBoIFUrMjFEMiBpbiBmb250IEthVGVYIE1haW5cbiAgZG91YmxlcmlnaHRhcnJvdzogXCJNMzk5NzM4IDM5MmxcXG4tMTAgMTBjLTM0IDM2LTYyLjcgNzctODYgMTIzLTMuMyA4LTUgMTMuMy01IDE2IDAgNS4zIDYuNyA4IDIwIDggNy4zIDAgMTIuMi0uNVxcbiAxNC41LTEuNSAyLjMtMSA0LjgtNC41IDcuNS0xMC41IDQ5LjMtOTcuMyAxMjEuNy0xNjkuMyAyMTctMjE2IDI4LTE0IDU3LjMtMjUgODhcXG4tMzMgNi43LTIgMTEtMy44IDEzLTUuNSAyLTEuNyAzLTQuMiAzLTcuNXMtMS01LjgtMy03LjVjLTItMS43LTYuMy0zLjUtMTMtNS41LTY4XFxuLTE3LjMtMTI4LjItNDcuOC0xODAuNS05MS41LTUyLjMtNDMuNy05My44LTk2LjItMTI0LjUtMTU3LjUtOS4zLTgtMTUuMy0xMi4zLTE4XFxuLTEzaC02Yy0xMiAuNy0xOCA0LTE4IDEwIDAgMiAxLjcgNyA1IDE1IDIzLjMgNDYgNTIgODcgODYgMTIzbDEwIDEwSDB2NDBoMzk5NzgyXFxuYy0zMjggMCAwIDAgMCAwbDEwIDhjMjYuNyAyMCA2NS43IDQzIDExNyA2OS0yLjcgMi02IDMuNy0xMCA1LTM2LjcgMTYtNzIuMyAzNy4zXFxuLTEwNyA2NGwtMTAgOEgwdjQwek0wIDE1N3Y0MGgzOTk3MzB2LTQwem0wIDE5NHY0MGgzOTk3MzB2LTQwelwiLFxuICAvLyBsZWZ0YXJyb3cgaXMgZnJvbSBnbHlwaCBVKzIxOTAgaW4gZm9udCBLYVRlWCBNYWluXG4gIGxlZnRhcnJvdzogXCJNNDAwMDAwIDI0MUgxMTBsMy0zYzY4LjctNTIuNyAxMTMuNy0xMjBcXG4gMTM1LTIwMiA0LTE0LjcgNi0yMyA2LTI1IDAtNy4zLTctMTEtMjEtMTEtOCAwLTEzLjIuOC0xNS41IDIuNS0yLjMgMS43LTQuMiA1LjhcXG4tNS41IDEyLjUtMS4zIDQuNy0yLjcgMTAuMy00IDE3LTEyIDQ4LjctMzQuOCA5Mi02OC41IDEzMFM2NS4zIDIyOC4zIDE4IDI0N1xcbmMtMTAgNC0xNiA3LjctMTggMTEgMCA4LjcgNiAxNC4zIDE4IDE3IDQ3LjMgMTguNyA4Ny44IDQ3IDEyMS41IDg1UzE5NiA0NDEuMyAyMDhcXG4gNDkwYy43IDIgMS4zIDUgMiA5czEuMiA2LjcgMS41IDhjLjMgMS4zIDEgMy4zIDIgNnMyLjIgNC41IDMuNSA1LjVjMS4zIDEgMy4zXFxuIDEuOCA2IDIuNXM2IDEgMTAgMWMxNCAwIDIxLTMuNyAyMS0xMSAwLTItMi0xMC4zLTYtMjUtMjAtNzkuMy02NS0xNDYuNy0xMzUtMjAyXFxuIGwtMy0zaDM5OTg5MHpNMTAwIDI0MXY0MGgzOTk5MDB2LTQwelwiLFxuICAvLyBvdmVyYnJhY2UgaXMgZnJvbSBnbHlwaHMgVSsyM0E5LzIzQTgvMjNBNyBpbiBmb250IEthVGVYX1NpemU0LVJlZ3VsYXJcbiAgbGVmdGJyYWNlOiBcIk02IDU0OGwtNi02di0zNWw2LTExYzU2LTEwNCAxMzUuMy0xODEuMyAyMzgtMjMyIDU3LjMtMjguNyAxMTdcXG4tNDUgMTc5LTUwaDM5OTU3N3YxMjBINDAzYy00My4zIDctODEgMTUtMTEzIDI2LTEwMC43IDMzLTE3OS43IDkxLTIzNyAxNzQtMi43XFxuIDUtNiA5LTEwIDEzLS43IDEtNy4zIDEtMjAgMUg2elwiLFxuICBsZWZ0YnJhY2V1bmRlcjogXCJNMCA2bDYtNmgxN2MxMi42ODggMCAxOS4zMTMuMyAyMCAxIDQgNCA3LjMxMyA4LjMgMTAgMTNcXG4gMzUuMzEzIDUxLjMgODAuODEzIDkzLjggMTM2LjUgMTI3LjUgNTUuNjg4IDMzLjcgMTE3LjE4OCA1NS44IDE4NC41IDY2LjUuNjg4XFxuIDAgMiAuMyA0IDEgMTguNjg4IDIuNyA3NiA0LjMgMTcyIDVoMzk5NDUwdjEyMEg0MjlsLTYtMWMtMTI0LjY4OC04LTIzNS02MS43XFxuLTMzMS0xNjFDNjAuNjg3IDEzOC43IDMyLjMxMiA5OS4zIDcgNTRMMCA0MVY2elwiLFxuICAvLyBvdmVyZ3JvdXAgaXMgZnJvbSB0aGUgTW5TeW1ib2wgcGFja2FnZSAocHVibGljIGRvbWFpbilcbiAgbGVmdGdyb3VwOiBcIk00MDAwMDAgODBcXG5INDM1QzY0IDgwIDE2OC4zIDIyOS40IDIxIDI2MGMtNS45IDEuMi0xOCAwLTE4IDAtMiAwLTMtMS0zLTN2LTM4Qzc2IDYxIDI1NyAwXFxuIDQzNSAwaDM5OTU2NXpcIixcbiAgbGVmdGdyb3VwdW5kZXI6IFwiTTQwMDAwMCAyNjJcXG5INDM1QzY0IDI2MiAxNjguMyAxMTIuNiAyMSA4MmMtNS45LTEuMi0xOCAwLTE4IDAtMiAwLTMgMS0zIDN2MzhjNzYgMTU4IDI1NyAyMTlcXG4gNDM1IDIxOWgzOTk1NjV6XCIsXG4gIC8vIEhhcnBvb25zIGFyZSBmcm9tIGdseXBoIFUrMjFCRCBpbiBmb250IEthVGVYIE1haW5cbiAgbGVmdGhhcnBvb246IFwiTTAgMjY3Yy43IDUuMyAzIDEwIDcgMTRoMzk5OTkzdi00MEg5M2MzLjNcXG4tMy4zIDEwLjItOS41IDIwLjUtMTguNXMxNy44LTE1LjggMjIuNS0yMC41YzUwLjctNTIgODgtMTEwLjMgMTEyLTE3NSA0LTExLjMgNVxcbi0xOC4zIDMtMjEtMS4zLTQtNy4zLTYtMTgtNi04IDAtMTMgLjctMTUgMnMtNC43IDYuNy04IDE2Yy00MiA5OC43LTEwNy4zIDE3NC43XFxuLTE5NiAyMjgtNi43IDQuNy0xMC43IDgtMTIgMTAtMS4zIDItMiA1LjctMiAxMXptMTAwLTI2djQwaDM5OTkwMHYtNDB6XCIsXG4gIGxlZnRoYXJwb29ucGx1czogXCJNMCAyNjdjLjcgNS4zIDMgMTAgNyAxNGgzOTk5OTN2LTQwSDkzYzMuMy0zLjMgMTAuMi05LjVcXG4gMjAuNS0xOC41czE3LjgtMTUuOCAyMi41LTIwLjVjNTAuNy01MiA4OC0xMTAuMyAxMTItMTc1IDQtMTEuMyA1LTE4LjMgMy0yMS0xLjNcXG4tNC03LjMtNi0xOC02LTggMC0xMyAuNy0xNSAycy00LjcgNi43LTggMTZjLTQyIDk4LjctMTA3LjMgMTc0LjctMTk2IDIyOC02LjcgNC43XFxuLTEwLjcgOC0xMiAxMC0xLjMgMi0yIDUuNy0yIDExem0xMDAtMjZ2NDBoMzk5OTAwdi00MHpNMCA0MzV2NDBoNDAwMDAwdi00MHpcXG5tMCAwdjQwaDQwMDAwMHYtNDB6XCIsXG4gIGxlZnRoYXJwb29uZG93bjogXCJNNyAyNDFjLTQgNC02LjMzMyA4LjY2Ny03IDE0IDAgNS4zMzMuNjY3IDkgMiAxMXM1LjMzM1xcbiA1LjMzMyAxMiAxMGM5MC42NjcgNTQgMTU2IDEzMCAxOTYgMjI4IDMuMzMzIDEwLjY2NyA2LjMzMyAxNi4zMzMgOSAxNyAyIC42NjcgNVxcbiAxIDkgMWg1YzEwLjY2NyAwIDE2LjY2Ny0yIDE4LTYgMi0yLjY2NyAxLTkuNjY3LTMtMjEtMzItODcuMzMzLTgyLjY2Ny0xNTcuNjY3XFxuLTE1Mi0yMTFsLTMtM2gzOTk5MDd2LTQwek05MyAyODEgSDQwMDAwMCB2LTQwTDcgMjQxelwiLFxuICBsZWZ0aGFycG9vbmRvd25wbHVzOiBcIk03IDQzNWMtNCA0LTYuMyA4LjctNyAxNCAwIDUuMy43IDkgMiAxMXM1LjMgNS4zIDEyXFxuIDEwYzkwLjcgNTQgMTU2IDEzMCAxOTYgMjI4IDMuMyAxMC43IDYuMyAxNi4zIDkgMTcgMiAuNyA1IDEgOSAxaDVjMTAuNyAwIDE2LjdcXG4tMiAxOC02IDItMi43IDEtOS43LTMtMjEtMzItODcuMy04Mi43LTE1Ny43LTE1Mi0yMTFsLTMtM2gzOTk5MDd2LTQwSDd6bTkzIDBcXG52NDBoMzk5OTAwdi00MHpNMCAyNDF2NDBoMzk5OTAwdi00MHptMCAwdjQwaDM5OTkwMHYtNDB6XCIsXG4gIC8vIGhvb2sgaXMgZnJvbSBnbHlwaCBVKzIxQTkgaW4gZm9udCBLYVRlWCBNYWluXG4gIGxlZnRob29rOiBcIk00MDAwMDAgMjgxIEgxMDNzLTMzLTExLjItNjEtMzMuNVMwIDE5Ny4zIDAgMTY0czE0LjItNjEuMiA0Mi41XFxuLTgzLjVDNzAuOCA1OC4yIDEwNCA0NyAxNDIgNDcgYzE2LjcgMCAyNSA2LjcgMjUgMjAgMCAxMi04LjcgMTguNy0yNiAyMC00MCAzLjNcXG4tNjguNyAxNS43LTg2IDM3LTEwIDEyLTE1IDI1LjMtMTUgNDAgMCAyMi43IDkuOCA0MC43IDI5LjUgNTQgMTkuNyAxMy4zIDQzLjUgMjFcXG4gNzEuNSAyM2gzOTk4NTl6TTEwMyAyODF2LTQwaDM5OTg5N3Y0MHpcIixcbiAgbGVmdGxpbmVzZWdtZW50OiBcIk00MCAyODEgVjQyOCBIMCBWOTQgSDQwIFYyNDEgSDQwMDAwMCB2NDB6XFxuTTQwIDI4MSBWNDI4IEgwIFY5NCBINDAgVjI0MSBINDAwMDAwIHY0MHpcIixcbiAgbGVmdG1hcHN0bzogXCJNNDAgMjgxIFY0NDhIMFY3NEg0MFYyNDFINDAwMDAwdjQwelxcbk00MCAyODEgVjQ0OEgwVjc0SDQwVjI0MUg0MDAwMDB2NDB6XCIsXG4gIC8vIHRvZnJvbSBpcyBmcm9tIGdseXBoIFUrMjFDNCBpbiBmb250IEthVGVYIEFNUyBSZWd1bGFyXG4gIGxlZnRUb0Zyb206IFwiTTAgMTQ3aDQwMDAwMHY0MEgwem0wIDIxNGM2OCA0MCAxMTUuNyA5NS43IDE0MyAxNjdoMjJjMTUuMyAwIDIzXFxuLS4zIDIzLTEgMC0xLjMtNS4zLTEzLjctMTYtMzctMTgtMzUuMy00MS4zLTY5LTcwLTEwMWwtNy04aDM5OTkwNXYtNDBIOTVsNy04XFxuYzI4LjctMzIgNTItNjUuNyA3MC0xMDEgMTAuNy0yMy4zIDE2LTM1LjcgMTYtMzcgMC0uNy03LjctMS0yMy0xaC0yMkMxMTUuNyAyNjUuM1xcbiA2OCAzMjEgMCAzNjF6bTAtMTc0di00MGgzOTk5MDB2NDB6bTEwMCAxNTR2NDBoMzk5OTAwdi00MHpcIixcbiAgbG9uZ2VxdWFsOiBcIk0wIDUwIGg0MDAwMDAgdjQwSDB6IG0wIDE5NGg0MDAwMHY0MEgwelxcbk0wIDUwIGg0MDAwMDAgdjQwSDB6IG0wIDE5NGg0MDAwMHY0MEgwelwiLFxuICBtaWRicmFjZTogXCJNMjAwNDI4IDMzNFxcbmMtMTAwLjctOC4zLTE5NS4zLTQ0LTI4MC0xMDgtNTUuMy00Mi0xMDEuNy05My0xMzktMTUzbC05LTE0Yy0yLjcgNC01LjcgOC43LTkgMTRcXG4tNTMuMyA4Ni43LTEyMy43IDE1My0yMTEgMTk5LTY2LjcgMzYtMTM3LjMgNTYuMy0yMTIgNjJIMFYyMTRoMTk5NTY4YzE3OC4zLTExLjdcXG4gMzExLjctNzguMyA0MDMtMjAxIDYtOCA5LjctMTIgMTEtMTIgLjctLjcgNi43LTEgMTgtMXMxNy4zLjMgMTggMWMxLjMgMCA1IDQgMTFcXG4gMTIgNDQuNyA1OS4zIDEwMS4zIDEwNi4zIDE3MCAxNDFzMTQ1LjMgNTQuMyAyMjkgNjBoMTk5NTcydjEyMHpcIixcbiAgbWlkYnJhY2V1bmRlcjogXCJNMTk5NTcyIDIxNFxcbmMxMDAuNyA4LjMgMTk1LjMgNDQgMjgwIDEwOCA1NS4zIDQyIDEwMS43IDkzIDEzOSAxNTNsOSAxNGMyLjctNCA1LjctOC43IDktMTRcXG4gNTMuMy04Ni43IDEyMy43LTE1MyAyMTEtMTk5IDY2LjctMzYgMTM3LjMtNTYuMyAyMTItNjJoMTk5NTY4djEyMEgyMDA0MzJjLTE3OC4zXFxuIDExLjctMzExLjcgNzguMy00MDMgMjAxLTYgOC05LjcgMTItMTEgMTItLjcuNy02LjcgMS0xOCAxcy0xNy4zLS4zLTE4LTFjLTEuMyAwXFxuLTUtNC0xMS0xMi00NC43LTU5LjMtMTAxLjMtMTA2LjMtMTcwLTE0MXMtMTQ1LjMtNTQuMy0yMjktNjBIMFYyMTR6XCIsXG4gIG9paW50U2l6ZTE6IFwiTTUxMi42IDcxLjZjMjcyLjYgMCAzMjAuMyAxMDYuOCAzMjAuMyAxNzguMiAwIDcwLjgtNDcuNyAxNzcuNlxcbi0zMjAuMyAxNzcuNlMxOTMuMSAzMjAuNiAxOTMuMSAyNDkuOGMwLTcxLjQgNDYuOS0xNzguMiAzMTkuNS0xNzguMnpcXG5tMzY4LjEgMTc4LjJjMC04Ni40LTYwLjktMjE1LjQtMzY4LjEtMjE1LjQtMzA2LjQgMC0zNjcuMyAxMjktMzY3LjMgMjE1LjQgMCA4NS44XFxuNjAuOSAyMTQuOCAzNjcuMyAyMTQuOCAzMDcuMiAwIDM2OC4xLTEyOSAzNjguMS0yMTQuOHpcIixcbiAgb2lpbnRTaXplMjogXCJNNzU3LjggMTAwLjFjMzg0LjcgMCA0NTEuMSAxMzcuNiA0NTEuMSAyMzAgMCA5MS4zLTY2LjQgMjI4LjhcXG4tNDUxLjEgMjI4LjgtMzg2LjMgMC00NTIuNy0xMzcuNS00NTIuNy0yMjguOCAwLTkyLjQgNjYuNC0yMzAgNDUyLjctMjMwelxcbm01MDIuNCAyMzBjMC0xMTEuMi04Mi40LTI3Ny4yLTUwMi40LTI3Ny4ycy01MDQgMTY2LTUwNCAyNzcuMlxcbmMwIDExMCA4NCAyNzYgNTA0IDI3NnM1MDIuNC0xNjYgNTAyLjQtMjc2elwiLFxuICBvaWlpbnRTaXplMTogXCJNNjgxLjQgNzEuNmM0MDguOSAwIDQ4MC41IDEwNi44IDQ4MC41IDE3OC4yIDAgNzAuOC03MS42IDE3Ny42XFxuLTQ4MC41IDE3Ny42UzIwMi4xIDMyMC42IDIwMi4xIDI0OS44YzAtNzEuNCA3MC41LTE3OC4yIDQ3OS4zLTE3OC4yelxcbm01MjUuOCAxNzguMmMwLTg2LjQtODYuOC0yMTUuNC01MjUuNy0yMTUuNC00MzcuOSAwLTUyNC43IDEyOS01MjQuNyAyMTUuNCAwXFxuODUuOCA4Ni44IDIxNC44IDUyNC43IDIxNC44IDQzOC45IDAgNTI1LjctMTI5IDUyNS43LTIxNC44elwiLFxuICBvaWlpbnRTaXplMjogXCJNMTAyMS4yIDUzYzYwMy42IDAgNzA3LjggMTY1LjggNzA3LjggMjc3LjIgMCAxMTAtMTA0LjIgMjc1LjhcXG4tNzA3LjggMjc1LjgtNjA2IDAtNzEwLjItMTY1LjgtNzEwLjItMjc1LjhDMzExIDIxOC44IDQxNS4yIDUzIDEwMjEuMiA1M3pcXG5tNzcwLjQgMjc3LjFjMC0xMzEuMi0xMjYuNC0zMjcuNi03NzAuNS0zMjcuNlMyNDguNCAxOTguOSAyNDguNCAzMzAuMVxcbmMwIDEzMCAxMjguOCAzMjYuNCA3NzIuNyAzMjYuNHM3NzAuNS0xOTYuNCA3NzAuNS0zMjYuNHpcIixcbiAgcmlnaHRhcnJvdzogXCJNMCAyNDF2NDBoMzk5ODkxYy00Ny4zIDM1LjMtODQgNzgtMTEwIDEyOFxcbi0xNi43IDMyLTI3LjcgNjMuNy0zMyA5NSAwIDEuMy0uMiAyLjctLjUgNC0uMyAxLjMtLjUgMi4zLS41IDMgMCA3LjMgNi43IDExIDIwXFxuIDExIDggMCAxMy4yLS44IDE1LjUtMi41IDIuMy0xLjcgNC4yLTUuNSA1LjUtMTEuNSAyLTEzLjMgNS43LTI3IDExLTQxIDE0LjctNDQuN1xcbiAzOS04NC41IDczLTExOS41czczLjctNjAuMiAxMTktNzUuNWM2LTIgOS01LjcgOS0xMXMtMy05LTktMTFjLTQ1LjMtMTUuMy04NVxcbi00MC41LTExOS03NS41cy01OC4zLTc0LjgtNzMtMTE5LjVjLTQuNy0xNC04LjMtMjcuMy0xMS00MC0xLjMtNi43LTMuMi0xMC44LTUuNVxcbi0xMi41LTIuMy0xLjctNy41LTIuNS0xNS41LTIuNS0xNCAwLTIxIDMuNy0yMSAxMSAwIDIgMiAxMC4zIDYgMjUgMjAuNyA4My4zIDY3XFxuIDE1MS43IDEzOSAyMDV6bTAgMHY0MGgzOTk5MDB2LTQwelwiLFxuICByaWdodGJyYWNlOiBcIk00MDAwMDAgNTQybFxcbi02IDZoLTE3Yy0xMi43IDAtMTkuMy0uMy0yMC0xLTQtNC03LjMtOC4zLTEwLTEzLTM1LjMtNTEuMy04MC44LTkzLjgtMTM2LjUtMTI3LjVcXG5zLTExNy4yLTU1LjgtMTg0LjUtNjYuNWMtLjcgMC0yLS4zLTQtMS0xOC43LTIuNy03Ni00LjMtMTcyLTVIMFYyMTRoMzk5NTcxbDYgMVxcbmMxMjQuNyA4IDIzNSA2MS43IDMzMSAxNjEgMzEuMyAzMy4zIDU5LjcgNzIuNyA4NSAxMThsNyAxM3YzNXpcIixcbiAgcmlnaHRicmFjZXVuZGVyOiBcIk0zOTk5OTQgMGw2IDZ2MzVsLTYgMTFjLTU2IDEwNC0xMzUuMyAxODEuMy0yMzggMjMyLTU3LjNcXG4gMjguNy0xMTcgNDUtMTc5IDUwSC0zMDBWMjE0aDM5OTg5N2M0My4zLTcgODEtMTUgMTEzLTI2IDEwMC43LTMzIDE3OS43LTkxIDIzN1xcbi0xNzQgMi43LTUgNi05IDEwLTEzIC43LTEgNy4zLTEgMjAtMWgxN3pcIixcbiAgcmlnaHRncm91cDogXCJNMCA4MGgzOTk1NjVjMzcxIDAgMjY2LjcgMTQ5LjQgNDE0IDE4MCA1LjkgMS4yIDE4IDAgMTggMCAyIDBcXG4gMy0xIDMtM3YtMzhjLTc2LTE1OC0yNTctMjE5LTQzNS0yMTlIMHpcIixcbiAgcmlnaHRncm91cHVuZGVyOiBcIk0wIDI2MmgzOTk1NjVjMzcxIDAgMjY2LjctMTQ5LjQgNDE0LTE4MCA1LjktMS4yIDE4IDAgMThcXG4gMCAyIDAgMyAxIDMgM3YzOGMtNzYgMTU4LTI1NyAyMTktNDM1IDIxOUgwelwiLFxuICByaWdodGhhcnBvb246IFwiTTAgMjQxdjQwaDM5OTk5M2M0LjctNC43IDctOS4zIDctMTQgMC05LjNcXG4tMy43LTE1LjMtMTEtMTgtOTIuNy01Ni43LTE1OS0xMzMuNy0xOTktMjMxLTMuMy05LjMtNi0xNC43LTgtMTYtMi0xLjMtNy0yLTE1LTJcXG4tMTAuNyAwLTE2LjcgMi0xOCA2LTIgMi43LTEgOS43IDMgMjEgMTUuMyA0MiAzNi43IDgxLjggNjQgMTE5LjUgMjcuMyAzNy43IDU4XFxuIDY5LjIgOTIgOTQuNXptMCAwdjQwaDM5OTkwMHYtNDB6XCIsXG4gIHJpZ2h0aGFycG9vbnBsdXM6IFwiTTAgMjQxdjQwaDM5OTk5M2M0LjctNC43IDctOS4zIDctMTQgMC05LjMtMy43LTE1LjMtMTFcXG4tMTgtOTIuNy01Ni43LTE1OS0xMzMuNy0xOTktMjMxLTMuMy05LjMtNi0xNC43LTgtMTYtMi0xLjMtNy0yLTE1LTItMTAuNyAwLTE2LjdcXG4gMi0xOCA2LTIgMi43LTEgOS43IDMgMjEgMTUuMyA0MiAzNi43IDgxLjggNjQgMTE5LjUgMjcuMyAzNy43IDU4IDY5LjIgOTIgOTQuNXpcXG5tMCAwdjQwaDM5OTkwMHYtNDB6IG0xMDAgMTk0djQwaDM5OTkwMHYtNDB6bTAgMHY0MGgzOTk5MDB2LTQwelwiLFxuICByaWdodGhhcnBvb25kb3duOiBcIk0zOTk3NDcgNTExYzAgNy4zIDYuNyAxMSAyMCAxMSA4IDAgMTMtLjggMTUtMi41czQuNy02LjhcXG4gOC0xNS41YzQwLTk0IDk5LjMtMTY2LjMgMTc4LTIxNyAxMy4zLTggMjAuMy0xMi4zIDIxLTEzIDUuMy0zLjMgOC41LTUuOCA5LjVcXG4tNy41IDEtMS43IDEuNS01LjIgMS41LTEwLjVzLTIuMy0xMC4zLTctMTVIMHY0MGgzOTk5MDhjLTM0IDI1LjMtNjQuNyA1Ny05MiA5NVxcbi0yNy4zIDM4LTQ4LjcgNzcuNy02NCAxMTktMy4zIDguNy01IDE0LTUgMTZ6TTAgMjQxdjQwaDM5OTkwMHYtNDB6XCIsXG4gIHJpZ2h0aGFycG9vbmRvd25wbHVzOiBcIk0zOTk3NDcgNzA1YzAgNy4zIDYuNyAxMSAyMCAxMSA4IDAgMTMtLjhcXG4gMTUtMi41czQuNy02LjggOC0xNS41YzQwLTk0IDk5LjMtMTY2LjMgMTc4LTIxNyAxMy4zLTggMjAuMy0xMi4zIDIxLTEzIDUuMy0zLjNcXG4gOC41LTUuOCA5LjUtNy41IDEtMS43IDEuNS01LjIgMS41LTEwLjVzLTIuMy0xMC4zLTctMTVIMHY0MGgzOTk5MDhjLTM0IDI1LjNcXG4tNjQuNyA1Ny05MiA5NS0yNy4zIDM4LTQ4LjcgNzcuNy02NCAxMTktMy4zIDguNy01IDE0LTUgMTZ6TTAgNDM1djQwaDM5OTkwMHYtNDB6XFxubTAtMTk0djQwaDQwMDAwMHYtNDB6bTAgMHY0MGg0MDAwMDB2LTQwelwiLFxuICByaWdodGhvb2s6IFwiTTM5OTg1OSAyNDFjLTc2NCAwIDAgMCAwIDAgNDAtMy4zIDY4LjctMTUuNyA4Ni0zNyAxMC0xMiAxNS0yNS4zXFxuIDE1LTQwIDAtMjIuNy05LjgtNDAuNy0yOS41LTU0LTE5LjctMTMuMy00My41LTIxLTcxLjUtMjMtMTcuMy0xLjMtMjYtOC0yNi0yMCAwXFxuLTEzLjMgOC43LTIwIDI2LTIwIDM4IDAgNzEgMTEuMiA5OSAzMy41IDAgMCA3IDUuNiAyMSAxNi43IDE0IDExLjIgMjEgMzMuNSAyMVxcbiA2Ni44cy0xNCA2MS4yLTQyIDgzLjVjLTI4IDIyLjMtNjEgMzMuNS05OSAzMy41TDAgMjQxeiBNMCAyODF2LTQwaDM5OTg1OXY0MHpcIixcbiAgcmlnaHRsaW5lc2VnbWVudDogXCJNMzk5OTYwIDI0MSBWOTQgaDQwIFY0MjggaC00MCBWMjgxIEgwIHYtNDB6XFxuTTM5OTk2MCAyNDEgVjk0IGg0MCBWNDI4IGgtNDAgVjI4MSBIMCB2LTQwelwiLFxuICByaWdodFRvRnJvbTogXCJNNDAwMDAwIDE2N2MtNzAuNy00Mi0xMTgtOTcuNy0xNDItMTY3aC0yM2MtMTUuMyAwLTIzIC4zLTIzXFxuIDEgMCAxLjMgNS4zIDEzLjcgMTYgMzcgMTggMzUuMyA0MS4zIDY5IDcwIDEwMWw3IDhIMHY0MGgzOTk5MDVsLTcgOGMtMjguNyAzMlxcbi01MiA2NS43LTcwIDEwMS0xMC43IDIzLjMtMTYgMzUuNy0xNiAzNyAwIC43IDcuNyAxIDIzIDFoMjNjMjQtNjkuMyA3MS4zLTEyNSAxNDJcXG4tMTY3eiBNMTAwIDE0N3Y0MGgzOTk5MDB2LTQwek0wIDM0MXY0MGgzOTk5MDB2LTQwelwiLFxuICAvLyB0d29oZWFkbGVmdGFycm93IGlzIGZyb20gZ2x5cGggVSsyMTlFIGluIGZvbnQgS2FUZVggQU1TIFJlZ3VsYXJcbiAgdHdvaGVhZGxlZnRhcnJvdzogXCJNMCAxNjdjNjggNDBcXG4gMTE1LjcgOTUuNyAxNDMgMTY3aDIyYzE1LjMgMCAyMy0uMyAyMy0xIDAtMS4zLTUuMy0xMy43LTE2LTM3LTE4LTM1LjMtNDEuMy02OVxcbi03MC0xMDFsLTctOGgxMjVsOSA3YzUwLjcgMzkuMyA4NSA4NiAxMDMgMTQwaDQ2YzAtNC43LTYuMy0xOC43LTE5LTQyLTE4LTM1LjNcXG4tNDAtNjcuMy02Ni05NmwtOS05aDM5OTcxNnYtNDBIMjg0bDktOWMyNi0yOC43IDQ4LTYwLjcgNjYtOTYgMTIuNy0yMy4zMzMgMTlcXG4tMzcuMzMzIDE5LTQyaC00NmMtMTggNTQtNTIuMyAxMDAuNy0xMDMgMTQwbC05IDdIOTVsNy04YzI4LjctMzIgNTItNjUuNyA3MC0xMDFcXG4gMTAuNy0yMy4zMzMgMTYtMzUuNyAxNi0zNyAwLS43LTcuNy0xLTIzLTFoLTIyQzExNS43IDcxLjMgNjggMTI3IDAgMTY3elwiLFxuICB0d29oZWFkcmlnaHRhcnJvdzogXCJNNDAwMDAwIDE2N1xcbmMtNjgtNDAtMTE1LjctOTUuNy0xNDMtMTY3aC0yMmMtMTUuMyAwLTIzIC4zLTIzIDEgMCAxLjMgNS4zIDEzLjcgMTYgMzcgMTggMzUuM1xcbiA0MS4zIDY5IDcwIDEwMWw3IDhoLTEyNWwtOS03Yy01MC43LTM5LjMtODUtODYtMTAzLTE0MGgtNDZjMCA0LjcgNi4zIDE4LjcgMTkgNDJcXG4gMTggMzUuMyA0MCA2Ny4zIDY2IDk2bDkgOUgwdjQwaDM5OTcxNmwtOSA5Yy0yNiAyOC43LTQ4IDYwLjctNjYgOTYtMTIuNyAyMy4zMzNcXG4tMTkgMzcuMzMzLTE5IDQyaDQ2YzE4LTU0IDUyLjMtMTAwLjcgMTAzLTE0MGw5LTdoMTI1bC03IDhjLTI4LjcgMzItNTIgNjUuNy03MFxcbiAxMDEtMTAuNyAyMy4zMzMtMTYgMzUuNy0xNiAzNyAwIC43IDcuNyAxIDIzIDFoMjJjMjcuMy03MS4zIDc1LTEyNyAxNDMtMTY3elwiLFxuICAvLyB0aWxkZTEgaXMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIGEgZ2x5cGggZnJvbSB0aGUgTW5TeW1ib2wgcGFja2FnZVxuICB0aWxkZTE6IFwiTTIwMCA1NS41MzhjLTc3IDAtMTY4IDczLjk1My0xNzcgNzMuOTUzLTMgMC03XFxuLTIuMTc1LTktNS40MzdMMiA5N2MtMS0yLTItNC0yLTYgMC00IDItNyA1LTlsMjAtMTJDMTE2IDEyIDE3MSAwIDIwNyAwYzg2IDBcXG4gMTE0IDY4IDE5MSA2OCA3OCAwIDE2OC02OCAxNzctNjggNCAwIDcgMiA5IDVsMTIgMTljMSAyLjE3NSAyIDQuMzUgMiA2LjUyNSAwXFxuIDQuMzUtMiA3LjYxMy01IDkuNzg4bC0xOSAxMy4wNWMtOTIgNjMuMDc3LTExNi45MzcgNzUuMzA4LTE4MyA3Ni4xMjhcXG4tNjguMjY3Ljg0Ny0xMTMtNzMuOTUyLTE5MS03My45NTJ6XCIsXG4gIC8vIGRpdHRvIHRpbGRlMiwgdGlsZGUzLCAmIHRpbGRlNFxuICB0aWxkZTI6IFwiTTM0NCA1NS4yNjZjLTE0MiAwLTMwMC42MzggODEuMzE2LTMxMS41IDg2LjQxOFxcbi04LjAxIDMuNzYyLTIyLjUgMTAuOTEtMjMuNSA1LjU2MkwxIDEyMGMtMS0yLTEtMy0xLTQgMC01IDMtOSA4LTEwbDE4LjQtOUMxNjAuOVxcbiAzMS45IDI4MyAwIDM1OCAwYzE0OCAwIDE4OCAxMjIgMzMxIDEyMnMzMTQtOTcgMzI2LTk3YzQgMCA4IDIgMTAgN2w3IDIxLjExNFxcbmMxIDIuMTQgMSAzLjIxIDEgNC4yOCAwIDUuMzQ3LTMgOS42MjYtNyAxMC42OTZsLTIyLjMgMTIuNjIyQzg1Mi42IDE1OC4zNzIgNzUxXFxuIDE4MS40NzYgNjc2IDE4MS40NzZjLTE0OSAwLTE4OS0xMjYuMjEtMzMyLTEyNi4yMXpcIixcbiAgdGlsZGUzOiBcIk03ODYgNTlDNDU3IDU5IDMyIDE3NS4yNDIgMTMgMTc1LjI0MmMtNiAwLTEwLTMuNDU3XFxuLTExLTEwLjM3TC4xNSAxMzhjLTEtNyAzLTEyIDEwLTEzbDE5LjItNi40QzM3OC40IDQwLjcgNjM0LjMgMCA4MDQuMyAwYzMzNyAwXFxuIDQxMS44IDE1NyA3NDYuOCAxNTcgMzI4IDAgNzU0LTExMiA3NzMtMTEyIDUgMCAxMCAzIDExIDlsMSAxNC4wNzVjMSA4LjA2Ni0uNjk3XFxuIDE2LjU5NS02LjY5NyAxNy40OTJsLTIxLjA1MiA3LjMxYy0zNjcuOSA5OC4xNDYtNjA5LjE1IDEyMi42OTYtNzc4LjE1IDEyMi42OTZcXG4gLTMzOCAwLTQwOS0xNTYuNTczLTc0NC0xNTYuNTczelwiLFxuICB0aWxkZTQ6IFwiTTc4NiA1OEM0NTcgNTggMzIgMTc3LjQ4NyAxMyAxNzcuNDg3Yy02IDAtMTAtMy4zNDVcXG4tMTEtMTAuMDM1TC4xNSAxNDNjLTEtNyAzLTEyIDEwLTEzbDIyLTYuN0MzODEuMiAzNSA2MzcuMTUgMCA4MDcuMTUgMGMzMzcgMCA0MDlcXG4gMTc3IDc0NCAxNzcgMzI4IDAgNzU0LTEyNyA3NzMtMTI3IDUgMCAxMCAzIDExIDlsMSAxNC43OTRjMSA3LjgwNS0zIDEzLjM4LTlcXG4gMTQuNDk1bC0yMC43IDUuNTc0Yy0zNjYuODUgOTkuNzktNjA3LjMgMTM5LjM3Mi03NzYuMyAxMzkuMzcyLTMzOCAwLTQwOVxcbiAtMTc1LjIzNi03NDQtMTc1LjIzNnpcIixcbiAgLy8gdmVjIGlzIGZyb20gZ2x5cGggVSsyMEQ3IGluIGZvbnQgS2FUZVggTWFpblxuICB2ZWM6IFwiTTM3NyAyMGMwLTUuMzMzIDEuODMzLTEwIDUuNS0xNFMzOTEgMCAzOTcgMGM0LjY2NyAwIDguNjY3IDEuNjY3IDEyIDVcXG4zLjMzMyAyLjY2NyA2LjY2NyA5IDEwIDE5IDYuNjY3IDI0LjY2NyAyMC4zMzMgNDMuNjY3IDQxIDU3IDcuMzMzIDQuNjY3IDExXFxuMTAuNjY3IDExIDE4IDAgNi0xIDEwLTMgMTJzLTYuNjY3IDUtMTQgOWMtMjguNjY3IDE0LjY2Ny01My42NjcgMzUuNjY3LTc1IDYzXFxuLTEuMzMzIDEuMzMzLTMuMTY3IDMuNS01LjUgNi41cy00IDQuODMzLTUgNS41Yy0xIC42NjctMi41IDEuMzMzLTQuNSAycy00LjMzMyAxXFxuLTcgMWMtNC42NjcgMC05LjE2Ny0xLjgzMy0xMy41LTUuNVMzMzcgMTg0IDMzNyAxNzhjMC0xMi42NjcgMTUuNjY3LTMyLjMzMyA0Ny01OVxcbkgyMTNsLTE3MS0xYy04LjY2Ny02LTEzLTEyLjMzMy0xMy0xOSAwLTQuNjY3IDQuMzMzLTExLjMzMyAxMy0yMGgzNTlcXG5jLTE2LTI1LjMzMy0yNC00NS0yNC01OXpcIixcbiAgLy8gd2lkZWhhdDEgaXMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIGEgZ2x5cGggZnJvbSB0aGUgTW5TeW1ib2wgcGFja2FnZVxuICB3aWRlaGF0MTogXCJNNTI5IDBoNWw1MTkgMTE1YzUgMSA5IDUgOSAxMCAwIDEtMSAyLTEgM2wtNCAyMlxcbmMtMSA1LTUgOS0xMSA5aC0yTDUzMiA2NyAxOSAxNTloLTJjLTUgMC05LTQtMTEtOWwtNS0yMmMtMS02IDItMTIgOC0xM3pcIixcbiAgLy8gZGl0dG8gd2lkZWhhdDIsIHdpZGVoYXQzLCAmIHdpZGVoYXQ0XG4gIHdpZGVoYXQyOiBcIk0xMTgxIDBoMmwxMTcxIDE3NmM2IDAgMTAgNSAxMCAxMWwtMiAyM2MtMSA2LTUgMTBcXG4tMTEgMTBoLTFMMTE4MiA2NyAxNSAyMjBoLTFjLTYgMC0xMC00LTExLTEwbC0yLTIzYy0xLTYgNC0xMSAxMC0xMXpcIixcbiAgd2lkZWhhdDM6IFwiTTExODEgMGgybDExNzEgMjM2YzYgMCAxMCA1IDEwIDExbC0yIDIzYy0xIDYtNSAxMFxcbi0xMSAxMGgtMUwxMTgyIDY3IDE1IDI4MGgtMWMtNiAwLTEwLTQtMTEtMTBsLTItMjNjLTEtNiA0LTExIDEwLTExelwiLFxuICB3aWRlaGF0NDogXCJNMTE4MSAwaDJsMTE3MSAyOTZjNiAwIDEwIDUgMTAgMTFsLTIgMjNjLTEgNi01IDEwXFxuLTExIDEwaC0xTDExODIgNjcgMTUgMzQwaC0xYy02IDAtMTAtNC0xMS0xMGwtMi0yM2MtMS02IDQtMTEgMTAtMTF6XCIsXG4gIC8vIHdpZGVjaGVjayBwYXRocyBhcmUgYWxsIGludmVydGVkIHZlcnNpb25zIG9mIHdpZGVoYXRcbiAgd2lkZWNoZWNrMTogXCJNNTI5LDE1OWg1bDUxOSwtMTE1YzUsLTEsOSwtNSw5LC0xMGMwLC0xLC0xLC0yLC0xLC0zbC00LC0yMmMtMSxcXG4tNSwtNSwtOSwtMTEsLTloLTJsLTUxMiw5MmwtNTEzLC05MmgtMmMtNSwwLC05LDQsLTExLDlsLTUsMjJjLTEsNiwyLDEyLDgsMTN6XCIsXG4gIHdpZGVjaGVjazI6IFwiTTExODEsMjIwaDJsMTE3MSwtMTc2YzYsMCwxMCwtNSwxMCwtMTFsLTIsLTIzYy0xLC02LC01LC0xMCxcXG4tMTEsLTEwaC0xbC0xMTY4LDE1M2wtMTE2NywtMTUzaC0xYy02LDAsLTEwLDQsLTExLDEwbC0yLDIzYy0xLDYsNCwxMSwxMCwxMXpcIixcbiAgd2lkZWNoZWNrMzogXCJNMTE4MSwyODBoMmwxMTcxLC0yMzZjNiwwLDEwLC01LDEwLC0xMWwtMiwtMjNjLTEsLTYsLTUsLTEwLFxcbi0xMSwtMTBoLTFsLTExNjgsMjEzbC0xMTY3LC0yMTNoLTFjLTYsMCwtMTAsNCwtMTEsMTBsLTIsMjNjLTEsNiw0LDExLDEwLDExelwiLFxuICB3aWRlY2hlY2s0OiBcIk0xMTgxLDM0MGgybDExNzEsLTI5NmM2LDAsMTAsLTUsMTAsLTExbC0yLC0yM2MtMSwtNiwtNSwtMTAsXFxuLTExLC0xMGgtMWwtMTE2OCwyNzNsLTExNjcsLTI3M2gtMWMtNiwwLC0xMCw0LC0xMSwxMGwtMiwyM2MtMSw2LDQsMTEsMTAsMTF6XCIsXG4gIC8vIFRoZSBuZXh0IHRlbiBwYXRocyBzdXBwb3J0IHJlYWN0aW9uIGFycm93cyBmcm9tIHRoZSBtaGNoZW0gcGFja2FnZS5cbiAgLy8gQXJyb3dzIGZvciBcXGNlezwtLT59IGFyZSBvZmZzZXQgZnJvbSB4QXhpcyBieSAwLjIyZXgsIHBlciBtaGNoZW0gaW4gTGFUZVhcbiAgLy8gYmFyYWJvdmVsZWZ0YXJyb3cgaXMgbW9zdGx5IGZyb20gZ2x5cGggVSsyMTkwIGluIGZvbnQgS2FUZVggTWFpblxuICBiYXJhYm92ZWxlZnRhcnJvdzogXCJNNDAwMDAwIDYyMGgtMzk5ODkwbDMgLTNjNjguNyAtNTIuNyAxMTMuNyAtMTIwIDEzNSAtMjAyXFxuYzQgLTE0LjcgNiAtMjMgNiAtMjVjMCAtNy4zIC03IC0xMSAtMjEgLTExYy04IDAgLTEzLjIgMC44IC0xNS41IDIuNVxcbmMtMi4zIDEuNyAtNC4yIDUuOCAtNS41IDEyLjVjLTEuMyA0LjcgLTIuNyAxMC4zIC00IDE3Yy0xMiA0OC43IC0zNC44IDkyIC02OC41IDEzMFxcbnMtNzQuMiA2Ni4zIC0xMjEuNSA4NWMtMTAgNCAtMTYgNy43IC0xOCAxMWMwIDguNyA2IDE0LjMgMTggMTdjNDcuMyAxOC43IDg3LjggNDdcXG4xMjEuNSA4NXM1Ni41IDgxLjMgNjguNSAxMzBjMC43IDIgMS4zIDUgMiA5czEuMiA2LjcgMS41IDhjMC4zIDEuMyAxIDMuMyAyIDZcXG5zMi4yIDQuNSAzLjUgNS41YzEuMyAxIDMuMyAxLjggNiAyLjVzNiAxIDEwIDFjMTQgMCAyMSAtMy43IDIxIC0xMVxcbmMwIC0yIC0yIC0xMC4zIC02IC0yNWMtMjAgLTc5LjMgLTY1IC0xNDYuNyAtMTM1IC0yMDJsLTMgLTNoMzk5ODkwelxcbk0xMDAgNjIwdjQwaDM5OTkwMHYtNDB6IE0wIDI0MXY0MGgzOTk5MDB2LTQwek0wIDI0MXY0MGgzOTk5MDB2LTQwelwiLFxuICAvLyByaWdodGFycm93YWJvdmViYXIgaXMgbW9zdGx5IGZyb20gZ2x5cGggVSsyMTkyLCBLYVRlWCBNYWluXG4gIHJpZ2h0YXJyb3dhYm92ZWJhcjogXCJNMCAyNDF2NDBoMzk5ODkxYy00Ny4zIDM1LjMtODQgNzgtMTEwIDEyOC0xNi43IDMyXFxuLTI3LjcgNjMuNy0zMyA5NSAwIDEuMy0uMiAyLjctLjUgNC0uMyAxLjMtLjUgMi4zLS41IDMgMCA3LjMgNi43IDExIDIwIDExIDggMFxcbjEzLjItLjggMTUuNS0yLjUgMi4zLTEuNyA0LjItNS41IDUuNS0xMS41IDItMTMuMyA1LjctMjcgMTEtNDEgMTQuNy00NC43IDM5XFxuLTg0LjUgNzMtMTE5LjVzNzMuNy02MC4yIDExOS03NS41YzYtMiA5LTUuNyA5LTExcy0zLTktOS0xMWMtNDUuMy0xNS4zLTg1LTQwLjVcXG4tMTE5LTc1LjVzLTU4LjMtNzQuOC03My0xMTkuNWMtNC43LTE0LTguMy0yNy4zLTExLTQwLTEuMy02LjctMy4yLTEwLjgtNS41XFxuLTEyLjUtMi4zLTEuNy03LjUtMi41LTE1LjUtMi41LTE0IDAtMjEgMy43LTIxIDExIDAgMiAyIDEwLjMgNiAyNSAyMC43IDgzLjMgNjdcXG4xNTEuNyAxMzkgMjA1em05NiAzNzloMzk5ODk0djQwSDB6bTAgMGgzOTk5MDR2NDBIMHpcIixcbiAgLy8gVGhlIHNob3J0IGxlZnQgaGFycG9vbiBoYXMgMC41ZW0gKGkuZS4gNTAwIHVuaXRzKSBrZXJuIG9uIHRoZSBsZWZ0IGVuZC5cbiAgLy8gUmVmIGZyb20gbWhjaGVtLnN0eTogXFxybGFwe1xccmFpc2Vib3h7LS4yMmV4fXskXFxrZXJuMC41ZW1cbiAgYmFyYWJvdmVzaG9ydGxlZnRoYXJwb29uOiBcIk01MDcsNDM1Yy00LDQsLTYuMyw4LjcsLTcsMTRjMCw1LjMsMC43LDksMiwxMVxcbmMxLjMsMiw1LjMsNS4zLDEyLDEwYzkwLjcsNTQsMTU2LDEzMCwxOTYsMjI4YzMuMywxMC43LDYuMywxNi4zLDksMTdcXG5jMiwwLjcsNSwxLDksMWMwLDAsNSwwLDUsMGMxMC43LDAsMTYuNywtMiwxOCwtNmMyLC0yLjcsMSwtOS43LC0zLC0yMVxcbmMtMzIsLTg3LjMsLTgyLjcsLTE1Ny43LC0xNTIsLTIxMWMwLDAsLTMsLTMsLTMsLTNsMzk5MzUxLDBsMCwtNDBcXG5jLTM5ODU3MCwwLC0zOTk0MzcsMCwtMzk5NDM3LDB6IE01OTMgNDM1IHY0MCBIMzk5NTAwIHYtNDB6XFxuTTAgMjgxIHYtNDAgSDM5OTkwOCB2NDB6IE0wIDI4MSB2LTQwIEgzOTk5MDggdjQwelwiLFxuICByaWdodGhhcnBvb25hYm92ZXNob3J0YmFyOiBcIk0wLDI0MSBsMCw0MGMzOTkxMjYsMCwzOTk5OTMsMCwzOTk5OTMsMFxcbmM0LjcsLTQuNyw3LC05LjMsNywtMTRjMCwtOS4zLC0zLjcsLTE1LjMsLTExLC0xOGMtOTIuNywtNTYuNywtMTU5LC0xMzMuNywtMTk5LFxcbi0yMzFjLTMuMywtOS4zLC02LC0xNC43LC04LC0xNmMtMiwtMS4zLC03LC0yLC0xNSwtMmMtMTAuNywwLC0xNi43LDIsLTE4LDZcXG5jLTIsMi43LC0xLDkuNywzLDIxYzE1LjMsNDIsMzYuNyw4MS44LDY0LDExOS41YzI3LjMsMzcuNyw1OCw2OS4yLDkyLDk0LjV6XFxuTTAgMjQxIHY0MCBIMzk5OTA4IHYtNDB6IE0wIDQ3NSB2LTQwIEgzOTk1MDAgdjQweiBNMCA0NzUgdi00MCBIMzk5NTAwIHY0MHpcIixcbiAgc2hvcnRiYXJhYm92ZWxlZnRoYXJwb29uOiBcIk03LDQzNWMtNCw0LC02LjMsOC43LC03LDE0YzAsNS4zLDAuNyw5LDIsMTFcXG5jMS4zLDIsNS4zLDUuMywxMiwxMGM5MC43LDU0LDE1NiwxMzAsMTk2LDIyOGMzLjMsMTAuNyw2LjMsMTYuMyw5LDE3YzIsMC43LDUsMSw5LFxcbjFjMCwwLDUsMCw1LDBjMTAuNywwLDE2LjcsLTIsMTgsLTZjMiwtMi43LDEsLTkuNywtMywtMjFjLTMyLC04Ny4zLC04Mi43LC0xNTcuNyxcXG4tMTUyLC0yMTFjMCwwLC0zLC0zLC0zLC0zbDM5OTkwNywwbDAsLTQwYy0zOTkxMjYsMCwtMzk5OTkzLDAsLTM5OTk5Mywwelxcbk05MyA0MzUgdjQwIEg0MDAwMDAgdi00MHogTTUwMCAyNDEgdjQwIEg0MDAwMDAgdi00MHogTTUwMCAyNDEgdjQwIEg0MDAwMDAgdi00MHpcIixcbiAgc2hvcnRyaWdodGhhcnBvb25hYm92ZWJhcjogXCJNNTMsMjQxbDAsNDBjMzk4NTcwLDAsMzk5NDM3LDAsMzk5NDM3LDBcXG5jNC43LC00LjcsNywtOS4zLDcsLTE0YzAsLTkuMywtMy43LC0xNS4zLC0xMSwtMThjLTkyLjcsLTU2LjcsLTE1OSwtMTMzLjcsLTE5OSxcXG4tMjMxYy0zLjMsLTkuMywtNiwtMTQuNywtOCwtMTZjLTIsLTEuMywtNywtMiwtMTUsLTJjLTEwLjcsMCwtMTYuNywyLC0xOCw2XFxuYy0yLDIuNywtMSw5LjcsMywyMWMxNS4zLDQyLDM2LjcsODEuOCw2NCwxMTkuNWMyNy4zLDM3LjcsNTgsNjkuMiw5Miw5NC41elxcbk01MDAgMjQxIHY0MCBIMzk5NDA4IHYtNDB6IE01MDAgNDM1IHY0MCBINDAwMDAwIHYtNDB6XCJcbn07XG52YXIgdGFsbERlbGltID0gZnVuY3Rpb24gdGFsbERlbGltKGxhYmVsLCBtaWRIZWlnaHQpIHtcbiAgc3dpdGNoIChsYWJlbCkge1xuICAgIGNhc2UgXCJsYnJhY2tcIjpcbiAgICAgIHJldHVybiBcIk00MDMgMTc1OSBWODQgSDY2NiBWMCBIMzE5IFYxNzU5IHZcIiArIG1pZEhlaWdodCArIFwiIHYxNzU5IGgzNDcgdi04NFxcbkg0MDN6IE00MDMgMTc1OSBWMCBIMzE5IFYxNzU5IHZcIiArIG1pZEhlaWdodCArIFwiIHYxNzU5IGg4NHpcIjtcblxuICAgIGNhc2UgXCJyYnJhY2tcIjpcbiAgICAgIHJldHVybiBcIk0zNDcgMTc1OSBWMCBIMCBWODQgSDI2MyBWMTc1OSB2XCIgKyBtaWRIZWlnaHQgKyBcIiB2MTc1OSBIMCB2ODQgSDM0N3pcXG5NMzQ3IDE3NTkgVjAgSDI2MyBWMTc1OSB2XCIgKyBtaWRIZWlnaHQgKyBcIiB2MTc1OSBoODR6XCI7XG5cbiAgICBjYXNlIFwidmVydFwiOlxuICAgICAgcmV0dXJuIFwiTTE0NSAxNSB2NTg1IHZcIiArIG1pZEhlaWdodCArIFwiIHY1ODUgYzIuNjY3LDEwLDkuNjY3LDE1LDIxLDE1XFxuYzEwLDAsMTYuNjY3LC01LDIwLC0xNSB2LTU4NSB2XCIgKyAtbWlkSGVpZ2h0ICsgXCIgdi01ODUgYy0yLjY2NywtMTAsLTkuNjY3LC0xNSwtMjEsLTE1XFxuYy0xMCwwLC0xNi42NjcsNSwtMjAsMTV6IE0xODggMTUgSDE0NSB2NTg1IHZcIiArIG1pZEhlaWdodCArIFwiIHY1ODUgaDQzelwiO1xuXG4gICAgY2FzZSBcImRvdWJsZXZlcnRcIjpcbiAgICAgIHJldHVybiBcIk0xNDUgMTUgdjU4NSB2XCIgKyBtaWRIZWlnaHQgKyBcIiB2NTg1IGMyLjY2NywxMCw5LjY2NywxNSwyMSwxNVxcbmMxMCwwLDE2LjY2NywtNSwyMCwtMTUgdi01ODUgdlwiICsgLW1pZEhlaWdodCArIFwiIHYtNTg1IGMtMi42NjcsLTEwLC05LjY2NywtMTUsLTIxLC0xNVxcbmMtMTAsMCwtMTYuNjY3LDUsLTIwLDE1eiBNMTg4IDE1IEgxNDUgdjU4NSB2XCIgKyBtaWRIZWlnaHQgKyBcIiB2NTg1IGg0M3pcXG5NMzY3IDE1IHY1ODUgdlwiICsgbWlkSGVpZ2h0ICsgXCIgdjU4NSBjMi42NjcsMTAsOS42NjcsMTUsMjEsMTVcXG5jMTAsMCwxNi42NjcsLTUsMjAsLTE1IHYtNTg1IHZcIiArIC1taWRIZWlnaHQgKyBcIiB2LTU4NSBjLTIuNjY3LC0xMCwtOS42NjcsLTE1LC0yMSwtMTVcXG5jLTEwLDAsLTE2LjY2Nyw1LC0yMCwxNXogTTQxMCAxNSBIMzY3IHY1ODUgdlwiICsgbWlkSGVpZ2h0ICsgXCIgdjU4NSBoNDN6XCI7XG5cbiAgICBjYXNlIFwibGZsb29yXCI6XG4gICAgICByZXR1cm4gXCJNMzE5IDYwMiBWMCBINDAzIFY2MDIgdlwiICsgbWlkSGVpZ2h0ICsgXCIgdjE3MTUgaDI2MyB2ODQgSDMxOXpcXG5NTTMxOSA2MDIgVjAgSDQwMyBWNjAyIHZcIiArIG1pZEhlaWdodCArIFwiIHYxNzE1IEgzMTl6XCI7XG5cbiAgICBjYXNlIFwicmZsb29yXCI6XG4gICAgICByZXR1cm4gXCJNMzE5IDYwMiBWMCBINDAzIFY2MDIgdlwiICsgbWlkSGVpZ2h0ICsgXCIgdjE3OTkgSDAgdi04NCBIMzE5elxcbk1NMzE5IDYwMiBWMCBINDAzIFY2MDIgdlwiICsgbWlkSGVpZ2h0ICsgXCIgdjE3MTUgSDMxOXpcIjtcblxuICAgIGNhc2UgXCJsY2VpbFwiOlxuICAgICAgcmV0dXJuIFwiTTQwMyAxNzU5IFY4NCBINjY2IFYwIEgzMTkgVjE3NTkgdlwiICsgbWlkSGVpZ2h0ICsgXCIgdjYwMiBoODR6XFxuTTQwMyAxNzU5IFYwIEgzMTkgVjE3NTkgdlwiICsgbWlkSGVpZ2h0ICsgXCIgdjYwMiBoODR6XCI7XG5cbiAgICBjYXNlIFwicmNlaWxcIjpcbiAgICAgIHJldHVybiBcIk0zNDcgMTc1OSBWMCBIMCBWODQgSDI2MyBWMTc1OSB2XCIgKyBtaWRIZWlnaHQgKyBcIiB2NjAyIGg4NHpcXG5NMzQ3IDE3NTkgVjAgaC04NCBWMTc1OSB2XCIgKyBtaWRIZWlnaHQgKyBcIiB2NjAyIGg4NHpcIjtcblxuICAgIGNhc2UgXCJscGFyZW5cIjpcbiAgICAgIHJldHVybiBcIk04NjMsOWMwLC0yLC0yLC01LC02LC05YzAsMCwtMTcsMCwtMTcsMGMtMTIuNywwLC0xOS4zLDAuMywtMjAsMVxcbmMtNS4zLDUuMywtMTAuMywxMSwtMTUsMTdjLTI0Mi43LDI5NC43LC0zOTUuMyw2ODIsLTQ1OCwxMTYyYy0yMS4zLDE2My4zLC0zMy4zLDM0OSxcXG4tMzYsNTU3IGwwLFwiICsgKG1pZEhlaWdodCArIDg0KSArIFwiYzAuMiw2LDAsMjYsMCw2MGMyLDE1OS4zLDEwLDMxMC43LDI0LDQ1NGM1My4zLDUyOCwyMTAsXFxuOTQ5LjcsNDcwLDEyNjVjNC43LDYsOS43LDExLjcsMTUsMTdjMC43LDAuNyw3LDEsMTksMWMwLDAsMTgsMCwxOCwwYzQsLTQsNiwtNyw2LC05XFxuYzAsLTIuNywtMy4zLC04LjcsLTEwLC0xOGMtMTM1LjMsLTE5Mi43LC0yMzUuNSwtNDE0LjMsLTMwMC41LC02NjVjLTY1LC0yNTAuNywtMTAyLjUsXFxuLTU0NC43LC0xMTIuNSwtODgyYy0yLC0xMDQsLTMsLTE2NywtMywtMTg5XFxubDAsLVwiICsgKG1pZEhlaWdodCArIDkyKSArIFwiYzAsLTE2Mi43LDUuNywtMzE0LDE3LC00NTRjMjAuNywtMjcyLDYzLjcsLTUxMywxMjksLTcyM2M2NS4zLFxcbi0yMTAsMTU1LjMsLTM5Ni4zLDI3MCwtNTU5YzYuNywtOS4zLDEwLC0xNS4zLDEwLC0xOHpcIjtcblxuICAgIGNhc2UgXCJycGFyZW5cIjpcbiAgICAgIHJldHVybiBcIk03NiwwYy0xNi43LDAsLTI1LDMsLTI1LDljMCwyLDIsNi4zLDYsMTNjMjEuMywyOC43LDQyLjMsNjAuMyxcXG42Myw5NWM5Ni43LDE1Ni43LDE3Mi44LDMzMi41LDIyOC41LDUyNy41YzU1LjcsMTk1LDkyLjgsNDE2LjUsMTExLjUsNjY0LjVcXG5jMTEuMywxMzkuMywxNywyOTAuNywxNyw0NTRjMCwyOCwxLjcsNDMsMy4zLDQ1bDAsXCIgKyAobWlkSGVpZ2h0ICsgOSkgKyBcIlxcbmMtMyw0LC0zLjMsMTYuNywtMy4zLDM4YzAsMTYyLC01LjcsMzEzLjcsLTE3LDQ1NWMtMTguNywyNDgsLTU1LjgsNDY5LjMsLTExMS41LDY2NFxcbmMtNTUuNywxOTQuNywtMTMxLjgsMzcwLjMsLTIyOC41LDUyN2MtMjAuNywzNC43LC00MS43LDY2LjMsLTYzLDk1Yy0yLDMuMywtNCw3LC02LDExXFxuYzAsNy4zLDUuNywxMSwxNywxMWMwLDAsMTEsMCwxMSwwYzkuMywwLDE0LjMsLTAuMywxNSwtMWM1LjMsLTUuMywxMC4zLC0xMSwxNSwtMTdcXG5jMjQyLjcsLTI5NC43LDM5NS4zLC02ODEuNyw0NTgsLTExNjFjMjEuMywtMTY0LjcsMzMuMywtMzUwLjcsMzYsLTU1OFxcbmwwLC1cIiArIChtaWRIZWlnaHQgKyAxNDQpICsgXCJjLTIsLTE1OS4zLC0xMCwtMzEwLjcsLTI0LC00NTRjLTUzLjMsLTUyOCwtMjEwLC05NDkuNyxcXG4tNDcwLC0xMjY1Yy00LjcsLTYsLTkuNywtMTEuNywtMTUsLTE3Yy0wLjcsLTAuNywtNi43LC0xLC0xOCwtMXpcIjtcblxuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBXZSBzaG91bGQgbm90IGV2ZXIgZ2V0IGhlcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIHN0cmV0Y2h5IGRlbGltaXRlci5cIik7XG4gIH1cbn07XG5cbi8qKlxuICogVGhpcyBub2RlIHJlcHJlc2VudHMgYSBkb2N1bWVudCBmcmFnbWVudCwgd2hpY2ggY29udGFpbnMgZWxlbWVudHMsIGJ1dCB3aGVuXG4gKiBwbGFjZWQgaW50byB0aGUgRE9NIGRvZXNuJ3QgaGF2ZSBhbnkgcmVwcmVzZW50YXRpb24gaXRzZWxmLiBJdCBvbmx5IGNvbnRhaW5zXG4gKiBjaGlsZHJlbiBhbmQgZG9lc24ndCBoYXZlIGFueSBET00gbm9kZSBwcm9wZXJ0aWVzLlxuICovXG5jbGFzcyBEb2N1bWVudEZyYWdtZW50IHtcbiAgLy8gSHRtbERvbU5vZGVcbiAgLy8gTmV2ZXIgdXNlZDsgbmVlZGVkIGZvciBzYXRpc2Z5aW5nIGludGVyZmFjZS5cbiAgY29uc3RydWN0b3IoY2hpbGRyZW4pIHtcbiAgICB0aGlzLmNoaWxkcmVuID0gdm9pZCAwO1xuICAgIHRoaXMuY2xhc3NlcyA9IHZvaWQgMDtcbiAgICB0aGlzLmhlaWdodCA9IHZvaWQgMDtcbiAgICB0aGlzLmRlcHRoID0gdm9pZCAwO1xuICAgIHRoaXMubWF4Rm9udFNpemUgPSB2b2lkIDA7XG4gICAgdGhpcy5zdHlsZSA9IHZvaWQgMDtcbiAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgdGhpcy5jbGFzc2VzID0gW107XG4gICAgdGhpcy5oZWlnaHQgPSAwO1xuICAgIHRoaXMuZGVwdGggPSAwO1xuICAgIHRoaXMubWF4Rm9udFNpemUgPSAwO1xuICAgIHRoaXMuc3R5bGUgPSB7fTtcbiAgfVxuXG4gIGhhc0NsYXNzKGNsYXNzTmFtZSkge1xuICAgIHJldHVybiB1dGlscy5jb250YWlucyh0aGlzLmNsYXNzZXMsIGNsYXNzTmFtZSk7XG4gIH1cbiAgLyoqIENvbnZlcnQgdGhlIGZyYWdtZW50IGludG8gYSBub2RlLiAqL1xuXG5cbiAgdG9Ob2RlKCkge1xuICAgIHZhciBmcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmcmFnLmFwcGVuZENoaWxkKHRoaXMuY2hpbGRyZW5baV0udG9Ob2RlKCkpO1xuICAgIH1cblxuICAgIHJldHVybiBmcmFnO1xuICB9XG4gIC8qKiBDb252ZXJ0IHRoZSBmcmFnbWVudCBpbnRvIEhUTUwgbWFya3VwLiAqL1xuXG5cbiAgdG9NYXJrdXAoKSB7XG4gICAgdmFyIG1hcmt1cCA9IFwiXCI7IC8vIFNpbXBseSBjb25jYXRlbmF0ZSB0aGUgbWFya3VwIGZvciB0aGUgY2hpbGRyZW4gdG9nZXRoZXIuXG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIG1hcmt1cCArPSB0aGlzLmNoaWxkcmVuW2ldLnRvTWFya3VwKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcmt1cDtcbiAgfVxuICAvKipcbiAgICogQ29udmVydHMgdGhlIG1hdGggbm9kZSBpbnRvIGEgc3RyaW5nLCBzaW1pbGFyIHRvIGlubmVyVGV4dC4gQXBwbGllcyB0b1xuICAgKiBNYXRoRG9tTm9kZSdzIG9ubHkuXG4gICAqL1xuXG5cbiAgdG9UZXh0KCkge1xuICAgIC8vIFRvIGF2b2lkIHRoaXMsIHdlIHdvdWxkIHN1YmNsYXNzIGRvY3VtZW50RnJhZ21lbnQgc2VwYXJhdGVseSBmb3JcbiAgICAvLyBNYXRoTUwsIGJ1dCBwb2x5ZmlsbHMgZm9yIHN1YmNsYXNzaW5nIGlzIGV4cGVuc2l2ZSBwZXIgUFIgMTQ2OS5cbiAgICAvLyAkRmxvd0ZpeE1lOiBPbmx5IHdvcmtzIGZvciBDaGlsZFR5cGUgPSBNYXRoRG9tTm9kZS5cbiAgICB2YXIgdG9UZXh0ID0gY2hpbGQgPT4gY2hpbGQudG9UZXh0KCk7XG5cbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5tYXAodG9UZXh0KS5qb2luKFwiXCIpO1xuICB9XG5cbn1cblxuLy8gVGhpcyBmaWxlIGlzIEdFTkVSQVRFRCBieSBidWlsZE1ldHJpY3Muc2guIERPIE5PVCBNT0RJRlkuXG52YXIgZm9udE1ldHJpY3NEYXRhID0ge1xuICBcIkFNUy1SZWd1bGFyXCI6IHtcbiAgICBcIjMyXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjY1XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjcyMjIyXSxcbiAgICBcIjY2XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjY2NjY3XSxcbiAgICBcIjY3XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjcyMjIyXSxcbiAgICBcIjY4XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjcyMjIyXSxcbiAgICBcIjY5XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjY2NjY3XSxcbiAgICBcIjcwXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjcxXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjcyXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjczXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjM4ODg5XSxcbiAgICBcIjc0XCI6IFswLjE2NjY3LCAwLjY4ODg5LCAwLCAwLCAwLjVdLFxuICAgIFwiNzVcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiNzZcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiNzdcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuOTQ0NDVdLFxuICAgIFwiNzhcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiNzlcIjogWzAuMTY2NjcsIDAuNjg4ODksIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODBcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNjExMTFdLFxuICAgIFwiODFcIjogWzAuMTY2NjcsIDAuNjg4ODksIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODJcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiODNcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNTU1NTZdLFxuICAgIFwiODRcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiODVcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiODZcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiODdcIjogWzAsIDAuNjg4ODksIDAsIDAsIDEuMF0sXG4gICAgXCI4OFwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC43MjIyMl0sXG4gICAgXCI4OVwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC43MjIyMl0sXG4gICAgXCI5MFwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC42NjY2N10sXG4gICAgXCIxMDdcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNTU1NTZdLFxuICAgIFwiMTYwXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjE2NVwiOiBbMCwgMC42NzUsIDAuMDI1LCAwLCAwLjc1XSxcbiAgICBcIjE3NFwiOiBbMC4xNTU1OSwgMC42OTIyNCwgMCwgMCwgMC45NDY2Nl0sXG4gICAgXCIyNDBcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNTU1NTZdLFxuICAgIFwiMjk1XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjU0MDI4XSxcbiAgICBcIjcxMFwiOiBbMCwgMC44MjUsIDAsIDAsIDIuMzMzMzRdLFxuICAgIFwiNzMyXCI6IFswLCAwLjksIDAsIDAsIDIuMzMzMzRdLFxuICAgIFwiNzcwXCI6IFswLCAwLjgyNSwgMCwgMCwgMi4zMzMzNF0sXG4gICAgXCI3NzFcIjogWzAsIDAuOSwgMCwgMCwgMi4zMzMzNF0sXG4gICAgXCI5ODlcIjogWzAuMDgxNjcsIDAuNTgxNjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiMTAwOFwiOiBbMCwgMC40MzA1NiwgMC4wNDAyOCwgMCwgMC42NjY2N10sXG4gICAgXCI4MjQ1XCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjI3NV0sXG4gICAgXCI4NDYzXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjU0MDI4XSxcbiAgICBcIjg0ODdcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiODQ5OFwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC41NTU1Nl0sXG4gICAgXCI4NTAyXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjY2NjY3XSxcbiAgICBcIjg1MDNcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNDQ0NDVdLFxuICAgIFwiODUwNFwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI4NTEzXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjYzODg5XSxcbiAgICBcIjg1OTJcIjogWy0wLjAzNTk4LCAwLjQ2NDAyLCAwLCAwLCAwLjVdLFxuICAgIFwiODU5NFwiOiBbLTAuMDM1OTgsIDAuNDY0MDIsIDAsIDAsIDAuNV0sXG4gICAgXCI4NjAyXCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICBcIjg2MDNcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAxLjBdLFxuICAgIFwiODYwNlwiOiBbMC4wMTM1NCwgMC41MjIzOSwgMCwgMCwgMS4wXSxcbiAgICBcIjg2MDhcIjogWzAuMDEzNTQsIDAuNTIyMzksIDAsIDAsIDEuMF0sXG4gICAgXCI4NjEwXCI6IFswLjAxMzU0LCAwLjUyMjM5LCAwLCAwLCAxLjExMTExXSxcbiAgICBcIjg2MTFcIjogWzAuMDEzNTQsIDAuNTIyMzksIDAsIDAsIDEuMTExMTFdLFxuICAgIFwiODYxOVwiOiBbMCwgMC41NDk4NiwgMCwgMCwgMS4wXSxcbiAgICBcIjg2MjBcIjogWzAsIDAuNTQ5ODYsIDAsIDAsIDEuMF0sXG4gICAgXCI4NjIxXCI6IFstMC4xMzMxMywgMC4zNzc4OCwgMCwgMCwgMS4zODg4OV0sXG4gICAgXCI4NjIyXCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICBcIjg2MjRcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNV0sXG4gICAgXCI4NjI1XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjVdLFxuICAgIFwiODYzMFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMS4wXSxcbiAgICBcIjg2MzFcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDEuMF0sXG4gICAgXCI4NjM0XCI6IFswLjA4MTk4LCAwLjU4MTk4LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg2MzVcIjogWzAuMDgxOTgsIDAuNTgxOTgsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODYzOFwiOiBbMC4xOTQ0NCwgMC42OTIyNCwgMCwgMCwgMC40MTY2N10sXG4gICAgXCI4NjM5XCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjQxNjY3XSxcbiAgICBcIjg2NDJcIjogWzAuMTk0NDQsIDAuNjkyMjQsIDAsIDAsIDAuNDE2NjddLFxuICAgIFwiODY0M1wiOiBbMC4xOTQ0NCwgMC42OTIyNCwgMCwgMCwgMC40MTY2N10sXG4gICAgXCI4NjQ0XCI6IFswLjE4MDgsIDAuNjc1LCAwLCAwLCAxLjBdLFxuICAgIFwiODY0NlwiOiBbMC4xODA4LCAwLjY3NSwgMCwgMCwgMS4wXSxcbiAgICBcIjg2NDdcIjogWzAuMTgwOCwgMC42NzUsIDAsIDAsIDEuMF0sXG4gICAgXCI4NjQ4XCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjgzMzM0XSxcbiAgICBcIjg2NDlcIjogWzAuMTgwOCwgMC42NzUsIDAsIDAsIDEuMF0sXG4gICAgXCI4NjUwXCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjgzMzM0XSxcbiAgICBcIjg2NTFcIjogWzAuMDEzNTQsIDAuNTIyMzksIDAsIDAsIDEuMF0sXG4gICAgXCI4NjUyXCI6IFswLjAxMzU0LCAwLjUyMjM5LCAwLCAwLCAxLjBdLFxuICAgIFwiODY1M1wiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgXCI4NjU0XCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICBcIjg2NTVcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAxLjBdLFxuICAgIFwiODY2NlwiOiBbMC4xMzY2NywgMC42MzY2NywgMCwgMCwgMS4wXSxcbiAgICBcIjg2NjdcIjogWzAuMTM2NjcsIDAuNjM2NjcsIDAsIDAsIDEuMF0sXG4gICAgXCI4NjY5XCI6IFstMC4xMzMxMywgMC4zNzc4OCwgMCwgMCwgMS4wXSxcbiAgICBcIjg2NzJcIjogWy0wLjA2NCwgMC40MzcsIDAsIDAsIDEuMzM0XSxcbiAgICBcIjg2NzRcIjogWy0wLjA2NCwgMC40MzcsIDAsIDAsIDEuMzM0XSxcbiAgICBcIjg3MDVcIjogWzAsIDAuODI1LCAwLCAwLCAwLjVdLFxuICAgIFwiODcwOFwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC41NTU1Nl0sXG4gICAgXCI4NzA5XCI6IFswLjA4MTY3LCAwLjU4MTY3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3MTdcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNDI5MTddLFxuICAgIFwiODcyMlwiOiBbLTAuMDM1OTgsIDAuNDY0MDIsIDAsIDAsIDAuNV0sXG4gICAgXCI4NzI0XCI6IFswLjA4MTk4LCAwLjY5MjI0LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3MjZcIjogWzAuMDgxNjcsIDAuNTgxNjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODczM1wiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4NzM2XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjcyMjIyXSxcbiAgICBcIjg3MzdcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiODczOFwiOiBbMC4wMzUxNywgMC41MjIzOSwgMCwgMCwgMC43MjIyMl0sXG4gICAgXCI4NzM5XCI6IFswLjA4MTY3LCAwLjU4MTY3LCAwLCAwLCAwLjIyMjIyXSxcbiAgICBcIjg3NDBcIjogWzAuMjUxNDIsIDAuNzQxMTEsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiODc0MVwiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC4zODg4OV0sXG4gICAgXCI4NzQyXCI6IFswLjI1MTQyLCAwLjc0MTExLCAwLCAwLCAwLjVdLFxuICAgIFwiODc1NlwiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI4NzU3XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICBcIjg3NjRcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3NjVcIjogWy0wLjEzMzEzLCAwLjM3Nzg4LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3NjlcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3NzBcIjogWy0wLjAzNjI1LCAwLjQ2Mzc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3NzRcIjogWzAuMzAyNzQsIDAuNzkzODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODc3NlwiOiBbLTAuMDE2ODgsIDAuNDgzMTIsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODc3OFwiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4NzgyXCI6IFswLjA2MDYyLCAwLjU0OTg2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3ODNcIjogWzAuMDYwNjIsIDAuNTQ5ODYsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODc4NVwiOiBbMC4wODE5OCwgMC41ODE5OCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4Nzg2XCI6IFswLjA4MTk4LCAwLjU4MTk4LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3ODdcIjogWzAuMDgxOTgsIDAuNTgxOTgsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODc5MFwiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4NzkxXCI6IFswLjIyOTU4LCAwLjcyOTU4LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3OTZcIjogWzAuMDgxOTgsIDAuOTE2NjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgwNlwiOiBbMC4yNTU4MywgMC43NTU4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODA3XCI6IFswLjI1NTgzLCAwLjc1NTgzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4MDhcIjogWzAuMjUxNDIsIDAuNzU3MjYsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgwOVwiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODEyXCI6IFswLjI1NTgzLCAwLjc1NTgzLCAwLCAwLCAwLjVdLFxuICAgIFwiODgxNFwiOiBbMC4yMDU3NiwgMC43MDU3NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODE1XCI6IFswLjIwNTc2LCAwLjcwNTc2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4MTZcIjogWzAuMzAyNzQsIDAuNzkzODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgxN1wiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODE4XCI6IFswLjIyOTU4LCAwLjcyOTU4LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4MTlcIjogWzAuMjI5NTgsIDAuNzI5NTgsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgyMlwiOiBbMC4xODA4LCAwLjY3NSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODIzXCI6IFswLjE4MDgsIDAuNjc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4MjhcIjogWzAuMTM2NjcsIDAuNjM2NjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgyOVwiOiBbMC4xMzY2NywgMC42MzY2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODMwXCI6IFswLjIyOTU4LCAwLjcyOTU4LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4MzFcIjogWzAuMjI5NTgsIDAuNzI5NTgsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgzMlwiOiBbMC4yMDU3NiwgMC43MDU3NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODMzXCI6IFswLjIwNTc2LCAwLjcwNTc2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NDBcIjogWzAuMzAyNzQsIDAuNzkzODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODg0MVwiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODQyXCI6IFswLjEzNTk3LCAwLjYzNTk3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NDNcIjogWzAuMTM1OTcsIDAuNjM1OTcsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODg0N1wiOiBbMC4wMzUxNywgMC41NDk4NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODQ4XCI6IFswLjAzNTE3LCAwLjU0OTg2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NThcIjogWzAuMDgxOTgsIDAuNTgxOTgsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODg1OVwiOiBbMC4wODE5OCwgMC41ODE5OCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODYxXCI6IFswLjA4MTk4LCAwLjU4MTk4LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NjJcIjogWzAsIDAuNjc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NjNcIjogWzAsIDAuNjc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NjRcIjogWzAsIDAuNjc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NjVcIjogWzAsIDAuNjc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NzJcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNjExMTFdLFxuICAgIFwiODg3M1wiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC43MjIyMl0sXG4gICAgXCI4ODc0XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjg4ODg5XSxcbiAgICBcIjg4NzZcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNjExMTFdLFxuICAgIFwiODg3N1wiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC42MTExMV0sXG4gICAgXCI4ODc4XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjcyMjIyXSxcbiAgICBcIjg4NzlcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiODg4MlwiOiBbMC4wMzUxNywgMC41NDk4NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODgzXCI6IFswLjAzNTE3LCAwLjU0OTg2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4ODRcIjogWzAuMTM2NjcsIDAuNjM2NjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODg4NVwiOiBbMC4xMzY2NywgMC42MzY2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODg4XCI6IFswLCAwLjU0OTg2LCAwLCAwLCAxLjExMTExXSxcbiAgICBcIjg4OTBcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAsIDAuNTU1NTZdLFxuICAgIFwiODg5MVwiOiBbMC4xOTQ0NCwgMC42OTIyNCwgMCwgMCwgMC42MTExMV0sXG4gICAgXCI4ODkyXCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjg5MDFcIjogWzAsIDAuNTQ5ODYsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiODkwM1wiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4OTA1XCI6IFswLjA4MTY3LCAwLjU4MTY3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg5MDZcIjogWzAuMDgxNjcsIDAuNTgxNjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODkwN1wiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4OTA4XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg5MDlcIjogWy0wLjAzNTk4LCAwLjQ2NDAyLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg5MTBcIjogWzAsIDAuNTQ5ODYsIDAsIDAsIDAuNzYwNDJdLFxuICAgIFwiODkxMVwiOiBbMCwgMC41NDk4NiwgMCwgMCwgMC43NjA0Ml0sXG4gICAgXCI4OTEyXCI6IFswLjAzNTE3LCAwLjU0OTg2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg5MTNcIjogWzAuMDM1MTcsIDAuNTQ5ODYsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODkxNFwiOiBbMCwgMC41NDk4NiwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI4OTE1XCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjY2NjY3XSxcbiAgICBcIjg5MTZcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiODkxOFwiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODkxOVwiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODkyMFwiOiBbMC4wMzUxNywgMC41NDk4NiwgMCwgMCwgMS4zMzMzNF0sXG4gICAgXCI4OTIxXCI6IFswLjAzNTE3LCAwLjU0OTg2LCAwLCAwLCAxLjMzMzM0XSxcbiAgICBcIjg5MjJcIjogWzAuMzg1NjksIDAuODg1NjksIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODkyM1wiOiBbMC4zODU2OSwgMC44ODU2OSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4OTI2XCI6IFswLjEzNjY3LCAwLjYzNjY3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg5MjdcIjogWzAuMTM2NjcsIDAuNjM2NjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODkyOFwiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4OTI5XCI6IFswLjMwMjc0LCAwLjc5MzgzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg5MzRcIjogWzAuMjMyMjIsIDAuNzQxMTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODkzNVwiOiBbMC4yMzIyMiwgMC43NDExMSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4OTM2XCI6IFswLjIzMjIyLCAwLjc0MTExLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg5MzdcIjogWzAuMjMyMjIsIDAuNzQxMTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODkzOFwiOiBbMC4yMDU3NiwgMC43MDU3NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4OTM5XCI6IFswLjIwNTc2LCAwLjcwNTc2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg5NDBcIjogWzAuMzAyNzQsIDAuNzkzODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODk0MVwiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4OTk0XCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg5OTVcIjogWzAuMTk0NDQsIDAuNjkyMjQsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiOTQxNlwiOiBbMC4xNTU1OSwgMC42OTIyNCwgMCwgMCwgMC45MDIyMl0sXG4gICAgXCI5NDg0XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjVdLFxuICAgIFwiOTQ4OFwiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC41XSxcbiAgICBcIjk0OTJcIjogWzAsIDAuMzc3ODgsIDAsIDAsIDAuNV0sXG4gICAgXCI5NDk2XCI6IFswLCAwLjM3Nzg4LCAwLCAwLCAwLjVdLFxuICAgIFwiOTU4NVwiOiBbMC4xOTQ0NCwgMC42ODg4OSwgMCwgMCwgMC44ODg4OV0sXG4gICAgXCI5NTg2XCI6IFswLjE5NDQ0LCAwLjc0MTExLCAwLCAwLCAwLjg4ODg5XSxcbiAgICBcIjk2MzJcIjogWzAsIDAuNjc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjk2MzNcIjogWzAsIDAuNjc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjk2NTBcIjogWzAsIDAuNTQ5ODYsIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiOTY1MVwiOiBbMCwgMC41NDk4NiwgMCwgMCwgMC43MjIyMl0sXG4gICAgXCI5NjU0XCI6IFswLjAzNTE3LCAwLjU0OTg2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjk2NjBcIjogWzAsIDAuNTQ5ODYsIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiOTY2MVwiOiBbMCwgMC41NDk4NiwgMCwgMCwgMC43MjIyMl0sXG4gICAgXCI5NjY0XCI6IFswLjAzNTE3LCAwLjU0OTg2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjk2NzRcIjogWzAuMTExMTEsIDAuNjkyMjQsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiOTczM1wiOiBbMC4xOTQ0NCwgMC42OTIyNCwgMCwgMCwgMC45NDQ0NV0sXG4gICAgXCIxMDAwM1wiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC44MzMzNF0sXG4gICAgXCIxMDAxNlwiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC44MzMzNF0sXG4gICAgXCIxMDczMVwiOiBbMC4xMTExMSwgMC42OTIyNCwgMCwgMCwgMC42NjY2N10sXG4gICAgXCIxMDg0NlwiOiBbMC4xOTQ0NCwgMC43NTU4MywgMCwgMCwgMC42MTExMV0sXG4gICAgXCIxMDg3N1wiOiBbMC4xMzY2NywgMC42MzY2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDg3OFwiOiBbMC4xMzY2NywgMC42MzY2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDg4NVwiOiBbMC4yNTU4MywgMC43NTU4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDg4NlwiOiBbMC4yNTU4MywgMC43NTU4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDg4N1wiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDg4OFwiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDg4OVwiOiBbMC4yNjE2NywgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDg5MFwiOiBbMC4yNjE2NywgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDg5MVwiOiBbMC40ODI1NiwgMC45ODI1NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDg5MlwiOiBbMC40ODI1NiwgMC45ODI1NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDkwMVwiOiBbMC4xMzY2NywgMC42MzY2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDkwMlwiOiBbMC4xMzY2NywgMC42MzY2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDkzM1wiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDkzNFwiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDkzNVwiOiBbMC4yNjE2NywgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDkzNlwiOiBbMC4yNjE2NywgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDkzN1wiOiBbMC4yNjE2NywgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDkzOFwiOiBbMC4yNjE2NywgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDk0OVwiOiBbMC4yNTU4MywgMC43NTU4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDk1MFwiOiBbMC4yNTU4MywgMC43NTU4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDk1NVwiOiBbMC4yODQ4MSwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDk1NlwiOiBbMC4yODQ4MSwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM1MFwiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC4yMjIyMl0sXG4gICAgXCI1NzM1MVwiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC4zODg4OV0sXG4gICAgXCI1NzM1MlwiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM1M1wiOiBbMCwgMC40MzA1NiwgMC4wNDAyOCwgMCwgMC42NjY2N10sXG4gICAgXCI1NzM1NlwiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM1N1wiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM1OFwiOiBbMC40MTk1MSwgMC45MTk1MSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM1OVwiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM2MFwiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM2MVwiOiBbMC40MTk1MSwgMC45MTk1MSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM2NlwiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM2N1wiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM2OFwiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM2OVwiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM3MFwiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM3MVwiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF1cbiAgfSxcbiAgXCJDYWxpZ3JhcGhpYy1SZWd1bGFyXCI6IHtcbiAgICBcIjMyXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjY1XCI6IFswLCAwLjY4MzMzLCAwLCAwLjE5NDQ1LCAwLjc5ODQ3XSxcbiAgICBcIjY2XCI6IFswLCAwLjY4MzMzLCAwLjAzMDQxLCAwLjEzODg5LCAwLjY1NjgxXSxcbiAgICBcIjY3XCI6IFswLCAwLjY4MzMzLCAwLjA1ODM0LCAwLjEzODg5LCAwLjUyNjUzXSxcbiAgICBcIjY4XCI6IFswLCAwLjY4MzMzLCAwLjAyNzc4LCAwLjA4MzM0LCAwLjc3MTM5XSxcbiAgICBcIjY5XCI6IFswLCAwLjY4MzMzLCAwLjA4OTQ0LCAwLjExMTExLCAwLjUyNzc4XSxcbiAgICBcIjcwXCI6IFswLCAwLjY4MzMzLCAwLjA5OTMxLCAwLjExMTExLCAwLjcxODc1XSxcbiAgICBcIjcxXCI6IFswLjA5NzIyLCAwLjY4MzMzLCAwLjA1OTMsIDAuMTExMTEsIDAuNTk0ODddLFxuICAgIFwiNzJcIjogWzAsIDAuNjgzMzMsIDAuMDA5NjUsIDAuMTExMTEsIDAuODQ0NTJdLFxuICAgIFwiNzNcIjogWzAsIDAuNjgzMzMsIDAuMDczODIsIDAsIDAuNTQ0NTJdLFxuICAgIFwiNzRcIjogWzAuMDk3MjIsIDAuNjgzMzMsIDAuMTg0NzIsIDAuMTY2NjcsIDAuNjc3NzhdLFxuICAgIFwiNzVcIjogWzAsIDAuNjgzMzMsIDAuMDE0NDUsIDAuMDU1NTYsIDAuNzYxOTVdLFxuICAgIFwiNzZcIjogWzAsIDAuNjgzMzMsIDAsIDAuMTM4ODksIDAuNjg5NzJdLFxuICAgIFwiNzdcIjogWzAsIDAuNjgzMzMsIDAsIDAuMTM4ODksIDEuMjAwOV0sXG4gICAgXCI3OFwiOiBbMCwgMC42ODMzMywgMC4xNDczNiwgMC4wODMzNCwgMC44MjA0OV0sXG4gICAgXCI3OVwiOiBbMCwgMC42ODMzMywgMC4wMjc3OCwgMC4xMTExMSwgMC43OTYxMV0sXG4gICAgXCI4MFwiOiBbMCwgMC42ODMzMywgMC4wODIyMiwgMC4wODMzNCwgMC42OTU1Nl0sXG4gICAgXCI4MVwiOiBbMC4wOTcyMiwgMC42ODMzMywgMCwgMC4xMTExMSwgMC44MTY2N10sXG4gICAgXCI4MlwiOiBbMCwgMC42ODMzMywgMCwgMC4wODMzNCwgMC44NDc1XSxcbiAgICBcIjgzXCI6IFswLCAwLjY4MzMzLCAwLjA3NSwgMC4xMzg4OSwgMC42MDU1Nl0sXG4gICAgXCI4NFwiOiBbMCwgMC42ODMzMywgMC4yNTQxNywgMCwgMC41NDQ2NF0sXG4gICAgXCI4NVwiOiBbMCwgMC42ODMzMywgMC4wOTkzMSwgMC4wODMzNCwgMC42MjU4M10sXG4gICAgXCI4NlwiOiBbMCwgMC42ODMzMywgMC4wODIyMiwgMCwgMC42MTI3OF0sXG4gICAgXCI4N1wiOiBbMCwgMC42ODMzMywgMC4wODIyMiwgMC4wODMzNCwgMC45ODc3OF0sXG4gICAgXCI4OFwiOiBbMCwgMC42ODMzMywgMC4xNDY0MywgMC4xMzg4OSwgMC43MTMzXSxcbiAgICBcIjg5XCI6IFswLjA5NzIyLCAwLjY4MzMzLCAwLjA4MjIyLCAwLjA4MzM0LCAwLjY2ODM0XSxcbiAgICBcIjkwXCI6IFswLCAwLjY4MzMzLCAwLjA3OTQ0LCAwLjEzODg5LCAwLjcyNDczXSxcbiAgICBcIjE2MFwiOiBbMCwgMCwgMCwgMCwgMC4yNV1cbiAgfSxcbiAgXCJGcmFrdHVyLVJlZ3VsYXJcIjoge1xuICAgIFwiMzJcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiMzNcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuMjk1NzRdLFxuICAgIFwiMzRcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuMjE0NzFdLFxuICAgIFwiMzhcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNzM3ODZdLFxuICAgIFwiMzlcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuMjEyMDFdLFxuICAgIFwiNDBcIjogWzAuMjQ5ODIsIDAuNzQ5NDcsIDAsIDAsIDAuMzg4NjVdLFxuICAgIFwiNDFcIjogWzAuMjQ5ODIsIDAuNzQ5NDcsIDAsIDAsIDAuMzg4NjVdLFxuICAgIFwiNDJcIjogWzAsIDAuNjIxMTksIDAsIDAsIDAuMjc3NjRdLFxuICAgIFwiNDNcIjogWzAuMDgzMTksIDAuNTgyODMsIDAsIDAsIDAuNzU2MjNdLFxuICAgIFwiNDRcIjogWzAsIDAuMTA4MDMsIDAsIDAsIDAuMjc3NjRdLFxuICAgIFwiNDVcIjogWzAuMDgzMTksIDAuNTgyODMsIDAsIDAsIDAuNzU2MjNdLFxuICAgIFwiNDZcIjogWzAsIDAuMTA4MDMsIDAsIDAsIDAuMjc3NjRdLFxuICAgIFwiNDdcIjogWzAuMjQ5ODIsIDAuNzQ5NDcsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNDhcIjogWzAsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNDlcIjogWzAsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNTBcIjogWzAsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNTFcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNTJcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNTNcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNTRcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNTVcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNTZcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNTdcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgIFwiNThcIjogWzAsIDAuNDc1MzQsIDAsIDAsIDAuMjE2MDZdLFxuICAgIFwiNTlcIjogWzAuMTI2MDQsIDAuNDc1MzQsIDAsIDAsIDAuMjE2MDZdLFxuICAgIFwiNjFcIjogWy0wLjEzMDk5LCAwLjM2ODY2LCAwLCAwLCAwLjc1NjIzXSxcbiAgICBcIjYzXCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjM2MjQ1XSxcbiAgICBcIjY1XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjcxNzZdLFxuICAgIFwiNjZcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuODgzOTddLFxuICAgIFwiNjdcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNjEyNTRdLFxuICAgIFwiNjhcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuODMxNThdLFxuICAgIFwiNjlcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNjYyNzhdLFxuICAgIFwiNzBcIjogWzAuMTI2MDQsIDAuNjkxNDEsIDAsIDAsIDAuNjExMTldLFxuICAgIFwiNzFcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNzg1MzldLFxuICAgIFwiNzJcIjogWzAuMDYzMDIsIDAuNjkxNDEsIDAsIDAsIDAuNzIwM10sXG4gICAgXCI3M1wiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC41NTQ0OF0sXG4gICAgXCI3NFwiOiBbMC4xMjYwNCwgMC42OTE0MSwgMCwgMCwgMC41NTIzMV0sXG4gICAgXCI3NVwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC42Njg0NV0sXG4gICAgXCI3NlwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC42NjYwMl0sXG4gICAgXCI3N1wiOiBbMCwgMC42OTE0MSwgMCwgMCwgMS4wNDk1M10sXG4gICAgXCI3OFwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC44MzIxMl0sXG4gICAgXCI3OVwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC44MjY5OV0sXG4gICAgXCI4MFwiOiBbMC4xODkwNiwgMC42OTE0MSwgMCwgMCwgMC44Mjc1M10sXG4gICAgXCI4MVwiOiBbMC4wMzc4MSwgMC42OTE0MSwgMCwgMCwgMC44MjY5OV0sXG4gICAgXCI4MlwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC44MjgwN10sXG4gICAgXCI4M1wiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC44Mjg2MV0sXG4gICAgXCI4NFwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC42Njg5OV0sXG4gICAgXCI4NVwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC42NDU3Nl0sXG4gICAgXCI4NlwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC44MzEzMV0sXG4gICAgXCI4N1wiOiBbMCwgMC42OTE0MSwgMCwgMCwgMS4wNDYwMl0sXG4gICAgXCI4OFwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC43MTkyMl0sXG4gICAgXCI4OVwiOiBbMC4xODkwNiwgMC42OTE0MSwgMCwgMCwgMC44MzI5M10sXG4gICAgXCI5MFwiOiBbMC4xMjYwNCwgMC42OTE0MSwgMCwgMCwgMC42MDIwMV0sXG4gICAgXCI5MVwiOiBbMC4yNDk4MiwgMC43NDk0NywgMCwgMCwgMC4yNzc2NF0sXG4gICAgXCI5M1wiOiBbMC4yNDk4MiwgMC43NDk0NywgMCwgMCwgMC4yNzc2NF0sXG4gICAgXCI5NFwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC40OTk2NV0sXG4gICAgXCI5N1wiOiBbMCwgMC40NzUzNCwgMCwgMCwgMC41MDA0Nl0sXG4gICAgXCI5OFwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC41MTMxNV0sXG4gICAgXCI5OVwiOiBbMCwgMC40NzUzNCwgMCwgMCwgMC4zODk0Nl0sXG4gICAgXCIxMDBcIjogWzAsIDAuNjIxMTksIDAsIDAsIDAuNDk4NTddLFxuICAgIFwiMTAxXCI6IFswLCAwLjQ3NTM0LCAwLCAwLCAwLjQwMDUzXSxcbiAgICBcIjEwMlwiOiBbMC4xODkwNiwgMC42OTE0MSwgMCwgMCwgMC4zMjYyNl0sXG4gICAgXCIxMDNcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuNTAzN10sXG4gICAgXCIxMDRcIjogWzAuMTg5MDYsIDAuNjkxNDEsIDAsIDAsIDAuNTIxMjZdLFxuICAgIFwiMTA1XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjI3ODk5XSxcbiAgICBcIjEwNlwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC4yODA4OF0sXG4gICAgXCIxMDdcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuMzg5NDZdLFxuICAgIFwiMTA4XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjI3OTUzXSxcbiAgICBcIjEwOVwiOiBbMCwgMC40NzUzNCwgMCwgMCwgMC43NjY3Nl0sXG4gICAgXCIxMTBcIjogWzAsIDAuNDc1MzQsIDAsIDAsIDAuNTI2NjZdLFxuICAgIFwiMTExXCI6IFswLCAwLjQ3NTM0LCAwLCAwLCAwLjQ4ODg1XSxcbiAgICBcIjExMlwiOiBbMC4xODkwNiwgMC41MjM5NiwgMCwgMCwgMC41MDA0Nl0sXG4gICAgXCIxMTNcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuNDg5MTJdLFxuICAgIFwiMTE0XCI6IFswLCAwLjQ3NTM0LCAwLCAwLCAwLjM4OTE5XSxcbiAgICBcIjExNVwiOiBbMCwgMC40NzUzNCwgMCwgMCwgMC40NDI2Nl0sXG4gICAgXCIxMTZcIjogWzAsIDAuNjIxMTksIDAsIDAsIDAuMzMzMDFdLFxuICAgIFwiMTE3XCI6IFswLCAwLjQ3NTM0LCAwLCAwLCAwLjUxNzJdLFxuICAgIFwiMTE4XCI6IFswLCAwLjUyMzk2LCAwLCAwLCAwLjUxMThdLFxuICAgIFwiMTE5XCI6IFswLCAwLjUyMzk2LCAwLCAwLCAwLjc3MzUxXSxcbiAgICBcIjEyMFwiOiBbMC4xODkwNiwgMC40NzUzNCwgMCwgMCwgMC4zODg2NV0sXG4gICAgXCIxMjFcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuNDk4ODRdLFxuICAgIFwiMTIyXCI6IFswLjE4OTA2LCAwLjQ3NTM0LCAwLCAwLCAwLjM5MDU0XSxcbiAgICBcIjE2MFwiOiBbMCwgMCwgMCwgMCwgMC4yNV0sXG4gICAgXCI4MjE2XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjIxNDcxXSxcbiAgICBcIjgyMTdcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuMjE0NzFdLFxuICAgIFwiNTgxMTJcIjogWzAsIDAuNjIxMTksIDAsIDAsIDAuNDk3NDldLFxuICAgIFwiNTgxMTNcIjogWzAsIDAuNjIxMTksIDAsIDAsIDAuNDk4M10sXG4gICAgXCI1ODExNFwiOiBbMC4xODkwNiwgMC42OTE0MSwgMCwgMCwgMC4zMzMyOF0sXG4gICAgXCI1ODExNVwiOiBbMC4xODkwNiwgMC42OTE0MSwgMCwgMCwgMC4zMjkyM10sXG4gICAgXCI1ODExNlwiOiBbMC4xODkwNiwgMC40NzUzNCwgMCwgMCwgMC41MDM0M10sXG4gICAgXCI1ODExN1wiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC4zMzMwMV0sXG4gICAgXCI1ODExOFwiOiBbMCwgMC42MjExOSwgMCwgMCwgMC4zMzQwOV0sXG4gICAgXCI1ODExOVwiOiBbMCwgMC40NzUzNCwgMCwgMCwgMC41MDA3M11cbiAgfSxcbiAgXCJNYWluLUJvbGRcIjoge1xuICAgIFwiMzJcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiMzNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzVdLFxuICAgIFwiMzRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjAyNzhdLFxuICAgIFwiMzVcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuOTU4MzNdLFxuICAgIFwiMzZcIjogWzAuMDU1NTYsIDAuNzUsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjM3XCI6IFswLjA1NTU2LCAwLjc1LCAwLCAwLCAwLjk1ODMzXSxcbiAgICBcIjM4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjM5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjMxOTQ0XSxcbiAgICBcIjQwXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjQ0NzIyXSxcbiAgICBcIjQxXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjQ0NzIyXSxcbiAgICBcIjQyXCI6IFswLCAwLjc1LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI0M1wiOiBbMC4xMzMzMywgMC42MzMzMywgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI0NFwiOiBbMC4xOTQ0NCwgMC4xNTU1NiwgMCwgMCwgMC4zMTk0NF0sXG4gICAgXCI0NVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC4zODMzM10sXG4gICAgXCI0NlwiOiBbMCwgMC4xNTU1NiwgMCwgMCwgMC4zMTk0NF0sXG4gICAgXCI0N1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41NzVdLFxuICAgIFwiNDhcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjQ5XCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI1MFwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiNTFcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjUyXCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI1M1wiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiNTRcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjU1XCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI1NlwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiNTdcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjU4XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjMxOTQ0XSxcbiAgICBcIjU5XCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjMxOTQ0XSxcbiAgICBcIjYwXCI6IFswLjA4NTU2LCAwLjU4NTU2LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjYxXCI6IFstMC4xMDg4OSwgMC4zOTExMSwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI2MlwiOiBbMC4wODU1NiwgMC41ODU1NiwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI2M1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NDMwNV0sXG4gICAgXCI2NFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI2NVwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44Njk0NF0sXG4gICAgXCI2NlwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44MTgwNV0sXG4gICAgXCI2N1wiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44MzA1NV0sXG4gICAgXCI2OFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44ODE5NF0sXG4gICAgXCI2OVwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC43NTU1NV0sXG4gICAgXCI3MFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC43MjM2MV0sXG4gICAgXCI3MVwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45MDQxNl0sXG4gICAgXCI3MlwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45XSxcbiAgICBcIjczXCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjQzNjExXSxcbiAgICBcIjc0XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjU5NDQ0XSxcbiAgICBcIjc1XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjkwMTM4XSxcbiAgICBcIjc2XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjY5MTY2XSxcbiAgICBcIjc3XCI6IFswLCAwLjY4NjExLCAwLCAwLCAxLjA5MTY2XSxcbiAgICBcIjc4XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjldLFxuICAgIFwiNzlcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODYzODhdLFxuICAgIFwiODBcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuNzg2MTFdLFxuICAgIFwiODFcIjogWzAuMTk0NDQsIDAuNjg2MTEsIDAsIDAsIDAuODYzODhdLFxuICAgIFwiODJcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODYyNV0sXG4gICAgXCI4M1wiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC42Mzg4OV0sXG4gICAgXCI4NFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44XSxcbiAgICBcIjg1XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjg4NDcyXSxcbiAgICBcIjg2XCI6IFswLCAwLjY4NjExLCAwLjAxNTk3LCAwLCAwLjg2OTQ0XSxcbiAgICBcIjg3XCI6IFswLCAwLjY4NjExLCAwLjAxNTk3LCAwLCAxLjE4ODg4XSxcbiAgICBcIjg4XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjg2OTQ0XSxcbiAgICBcIjg5XCI6IFswLCAwLjY4NjExLCAwLjAyODc1LCAwLCAwLjg2OTQ0XSxcbiAgICBcIjkwXCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjcwMjc3XSxcbiAgICBcIjkxXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjMxOTQ0XSxcbiAgICBcIjkyXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI5M1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zMTk0NF0sXG4gICAgXCI5NFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiOTVcIjogWzAuMzEsIDAuMTM0NDQsIDAuMDMxOTQsIDAsIDAuNTc1XSxcbiAgICBcIjk3XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjU1OTAyXSxcbiAgICBcIjk4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYzODg5XSxcbiAgICBcIjk5XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjUxMTExXSxcbiAgICBcIjEwMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42Mzg4OV0sXG4gICAgXCIxMDFcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNTI3MDhdLFxuICAgIFwiMTAyXCI6IFswLCAwLjY5NDQ0LCAwLjEwOTAzLCAwLCAwLjM1MTM5XSxcbiAgICBcIjEwM1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wMTU5NywgMCwgMC41NzVdLFxuICAgIFwiMTA0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYzODg5XSxcbiAgICBcIjEwNVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4zMTk0NF0sXG4gICAgXCIxMDZcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuMzUxMzldLFxuICAgIFwiMTA3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYwNjk0XSxcbiAgICBcIjEwOFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4zMTk0NF0sXG4gICAgXCIxMDlcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuOTU4MzNdLFxuICAgIFwiMTEwXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjYzODg5XSxcbiAgICBcIjExMVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiMTEyXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjYzODg5XSxcbiAgICBcIjExM1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMCwgMCwgMC42MDY5NF0sXG4gICAgXCIxMTRcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNDczNjFdLFxuICAgIFwiMTE1XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjQ1MzYxXSxcbiAgICBcIjExNlwiOiBbMCwgMC42MzQ5MiwgMCwgMCwgMC40NDcyMl0sXG4gICAgXCIxMTdcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNjM4ODldLFxuICAgIFwiMTE4XCI6IFswLCAwLjQ0NDQ0LCAwLjAxNTk3LCAwLCAwLjYwNjk0XSxcbiAgICBcIjExOVwiOiBbMCwgMC40NDQ0NCwgMC4wMTU5NywgMCwgMC44MzA1NV0sXG4gICAgXCIxMjBcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNjA2OTRdLFxuICAgIFwiMTIxXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjAxNTk3LCAwLCAwLjYwNjk0XSxcbiAgICBcIjEyMlwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41MTExMV0sXG4gICAgXCIxMjNcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjEyNFwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zMTk0NF0sXG4gICAgXCIxMjVcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjEyNlwiOiBbMC4zNSwgMC4zNDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiMTYwXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjE2M1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44Njg1M10sXG4gICAgXCIxNjhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjE3MlwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC43NjY2Nl0sXG4gICAgXCIxNzZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuODY5NDRdLFxuICAgIFwiMTc3XCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjE4NFwiOiBbMC4xNzAxNCwgMCwgMCwgMCwgMC41MTExMV0sXG4gICAgXCIxOThcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDEuMDQxNjZdLFxuICAgIFwiMjE1XCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjIxNlwiOiBbMC4wNDg2MSwgMC43MzQ3MiwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCIyMjNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTk3MjJdLFxuICAgIFwiMjMwXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjgzMDU1XSxcbiAgICBcIjI0N1wiOiBbMC4xMzMzMywgMC42MzMzMywgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCIyNDhcIjogWzAuMDk3MjIsIDAuNTQxNjcsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjMwNVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC4zMTk0NF0sXG4gICAgXCIzMzhcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDEuMTY5NDRdLFxuICAgIFwiMzM5XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjU2N1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMCwgMCwgMC4zNTEzOV0sXG4gICAgXCI3MTBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjcxMVwiOiBbMCwgMC42MzE5NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiNzEzXCI6IFswLCAwLjU5NjExLCAwLCAwLCAwLjU3NV0sXG4gICAgXCI3MTRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjcxNVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiNzI4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI3MjlcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzE5NDRdLFxuICAgIFwiNzMwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg2OTQ0XSxcbiAgICBcIjczMlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiNzMzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI5MTVcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuNjkxNjZdLFxuICAgIFwiOTE2XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjk1ODMzXSxcbiAgICBcIjkyMFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI5MjNcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODA1NTVdLFxuICAgIFwiOTI2XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjc2NjY2XSxcbiAgICBcIjkyOFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45XSxcbiAgICBcIjkzMVwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44MzA1NV0sXG4gICAgXCI5MzNcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODk0NDRdLFxuICAgIFwiOTM0XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjgzMDU1XSxcbiAgICBcIjkzNlwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI5MzdcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODMwNTVdLFxuICAgIFwiODIxMVwiOiBbMCwgMC40NDQ0NCwgMC4wMzE5NCwgMCwgMC41NzVdLFxuICAgIFwiODIxMlwiOiBbMCwgMC40NDQ0NCwgMC4wMzE5NCwgMCwgMS4xNDk5OV0sXG4gICAgXCI4MjE2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjMxOTQ0XSxcbiAgICBcIjgyMTdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzE5NDRdLFxuICAgIFwiODIyMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42MDI3OF0sXG4gICAgXCI4MjIxXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYwMjc4XSxcbiAgICBcIjgyMjRcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNTExMTFdLFxuICAgIFwiODIyNVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC41MTExMV0sXG4gICAgXCI4MjQyXCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjM0NDQ0XSxcbiAgICBcIjg0MDdcIjogWzAsIDAuNzI0NDQsIDAuMTU0ODYsIDAsIDAuNTc1XSxcbiAgICBcIjg0NjNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjY3NTldLFxuICAgIFwiODQ2NVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44MzA1NV0sXG4gICAgXCI4NDY3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjQ3MzYxXSxcbiAgICBcIjg0NzJcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuNzQwMjddLFxuICAgIFwiODQ3NlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44MzA1NV0sXG4gICAgXCI4NTAxXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcwMjc3XSxcbiAgICBcIjg1OTJcIjogWy0wLjEwODg5LCAwLjM5MTExLCAwLCAwLCAxLjE0OTk5XSxcbiAgICBcIjg1OTNcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjg1OTRcIjogWy0wLjEwODg5LCAwLjM5MTExLCAwLCAwLCAxLjE0OTk5XSxcbiAgICBcIjg1OTVcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjg1OTZcIjogWy0wLjEwODg5LCAwLjM5MTExLCAwLCAwLCAxLjE0OTk5XSxcbiAgICBcIjg1OTdcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjg1OThcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDEuMTQ5OTldLFxuICAgIFwiODU5OVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMS4xNDk5OV0sXG4gICAgXCI4NjAwXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjE0OTk5XSxcbiAgICBcIjg2MDFcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDEuMTQ5OTldLFxuICAgIFwiODYzNlwiOiBbLTAuMTA4ODksIDAuMzkxMTEsIDAsIDAsIDEuMTQ5OTldLFxuICAgIFwiODYzN1wiOiBbLTAuMTA4ODksIDAuMzkxMTEsIDAsIDAsIDEuMTQ5OTldLFxuICAgIFwiODY0MFwiOiBbLTAuMTA4ODksIDAuMzkxMTEsIDAsIDAsIDEuMTQ5OTldLFxuICAgIFwiODY0MVwiOiBbLTAuMTA4ODksIDAuMzkxMTEsIDAsIDAsIDEuMTQ5OTldLFxuICAgIFwiODY1NlwiOiBbLTAuMTA4ODksIDAuMzkxMTEsIDAsIDAsIDEuMTQ5OTldLFxuICAgIFwiODY1N1wiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC43MDI3N10sXG4gICAgXCI4NjU4XCI6IFstMC4xMDg4OSwgMC4zOTExMSwgMCwgMCwgMS4xNDk5OV0sXG4gICAgXCI4NjU5XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjcwMjc3XSxcbiAgICBcIjg2NjBcIjogWy0wLjEwODg5LCAwLjM5MTExLCAwLCAwLCAxLjE0OTk5XSxcbiAgICBcIjg2NjFcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNzAyNzddLFxuICAgIFwiODcwNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42Mzg4OV0sXG4gICAgXCI4NzA2XCI6IFswLCAwLjY5NDQ0LCAwLjA2Mzg5LCAwLCAwLjYyODQ3XSxcbiAgICBcIjg3MDdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjM4ODldLFxuICAgIFwiODcwOVwiOiBbMC4wNTU1NiwgMC43NSwgMCwgMCwgMC41NzVdLFxuICAgIFwiODcxMVwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45NTgzM10sXG4gICAgXCI4NzEyXCI6IFswLjA4NTU2LCAwLjU4NTU2LCAwLCAwLCAwLjc2NjY2XSxcbiAgICBcIjg3MTVcIjogWzAuMDg1NTYsIDAuNTg1NTYsIDAsIDAsIDAuNzY2NjZdLFxuICAgIFwiODcyMlwiOiBbMC4xMzMzMywgMC42MzMzMywgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI4NzIzXCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjg3MjVcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjg3MjZcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjg3MjdcIjogWy0wLjAyNzc4LCAwLjQ3MjIyLCAwLCAwLCAwLjU3NV0sXG4gICAgXCI4NzI4XCI6IFstMC4wMjYzOSwgMC40NzM2MSwgMCwgMCwgMC41NzVdLFxuICAgIFwiODcyOVwiOiBbLTAuMDI2MzksIDAuNDczNjEsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjg3MzBcIjogWzAuMTgsIDAuODIsIDAsIDAsIDAuOTU4MzNdLFxuICAgIFwiODczM1wiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI4NzM0XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAxLjE0OTk5XSxcbiAgICBcIjg3MzZcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiODczOVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zMTk0NF0sXG4gICAgXCI4NzQxXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI4NzQzXCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjc2NjY2XSxcbiAgICBcIjg3NDRcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNzY2NjZdLFxuICAgIFwiODc0NVwiOiBbMCwgMC41NTU1NiwgMCwgMCwgMC43NjY2Nl0sXG4gICAgXCI4NzQ2XCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjc2NjY2XSxcbiAgICBcIjg3NDdcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMTI3NzgsIDAsIDAuNTY4NzVdLFxuICAgIFwiODc2NFwiOiBbLTAuMTA4ODksIDAuMzkxMTEsIDAsIDAsIDAuODk0NDRdLFxuICAgIFwiODc2OFwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC4zMTk0NF0sXG4gICAgXCI4NzcxXCI6IFswLjAwMjIyLCAwLjUwMjIyLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjg3NzNcIjogWzAuMDI3LCAwLjYzOCwgMCwgMCwgMC44OTRdLFxuICAgIFwiODc3NlwiOiBbMC4wMjQ0NCwgMC41MjQ0NCwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI4NzgxXCI6IFswLjAwMjIyLCAwLjUwMjIyLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjg4MDFcIjogWzAuMDAyMjIsIDAuNTAyMjIsIDAsIDAsIDAuODk0NDRdLFxuICAgIFwiODgwNFwiOiBbMC4xOTY2NywgMC42OTY2NywgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI4ODA1XCI6IFswLjE5NjY3LCAwLjY5NjY3LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjg4MTBcIjogWzAuMDg1NTYsIDAuNTg1NTYsIDAsIDAsIDEuMTQ5OTldLFxuICAgIFwiODgxMVwiOiBbMC4wODU1NiwgMC41ODU1NiwgMCwgMCwgMS4xNDk5OV0sXG4gICAgXCI4ODI2XCI6IFswLjA4NTU2LCAwLjU4NTU2LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjg4MjdcIjogWzAuMDg1NTYsIDAuNTg1NTYsIDAsIDAsIDAuODk0NDRdLFxuICAgIFwiODgzNFwiOiBbMC4wODU1NiwgMC41ODU1NiwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI4ODM1XCI6IFswLjA4NTU2LCAwLjU4NTU2LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjg4MzhcIjogWzAuMTk2NjcsIDAuNjk2NjcsIDAsIDAsIDAuODk0NDRdLFxuICAgIFwiODgzOVwiOiBbMC4xOTY2NywgMC42OTY2NywgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI4ODQ2XCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjc2NjY2XSxcbiAgICBcIjg4NDlcIjogWzAuMTk2NjcsIDAuNjk2NjcsIDAsIDAsIDAuODk0NDRdLFxuICAgIFwiODg1MFwiOiBbMC4xOTY2NywgMC42OTY2NywgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI4ODUxXCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjc2NjY2XSxcbiAgICBcIjg4NTJcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNzY2NjZdLFxuICAgIFwiODg1M1wiOiBbMC4xMzMzMywgMC42MzMzMywgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI4ODU0XCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjg4NTVcIjogWzAuMTMzMzMsIDAuNjMzMzMsIDAsIDAsIDAuODk0NDRdLFxuICAgIFwiODg1NlwiOiBbMC4xMzMzMywgMC42MzMzMywgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI4ODU3XCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjg4NjZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzAyNzddLFxuICAgIFwiODg2N1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43MDI3N10sXG4gICAgXCI4ODY4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjg4NjlcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuODk0NDRdLFxuICAgIFwiODkwMFwiOiBbLTAuMDI2MzksIDAuNDczNjEsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjg5MDFcIjogWy0wLjAyNjM5LCAwLjQ3MzYxLCAwLCAwLCAwLjMxOTQ0XSxcbiAgICBcIjg5MDJcIjogWy0wLjAyNzc4LCAwLjQ3MjIyLCAwLCAwLCAwLjU3NV0sXG4gICAgXCI4OTY4XCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjUxMTExXSxcbiAgICBcIjg5NjlcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTExMTFdLFxuICAgIFwiODk3MFwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41MTExMV0sXG4gICAgXCI4OTcxXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjUxMTExXSxcbiAgICBcIjg5OTRcIjogWy0wLjEzODg5LCAwLjM2MTExLCAwLCAwLCAxLjE0OTk5XSxcbiAgICBcIjg5OTVcIjogWy0wLjEzODg5LCAwLjM2MTExLCAwLCAwLCAxLjE0OTk5XSxcbiAgICBcIjk2NTFcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDEuMDIyMjJdLFxuICAgIFwiOTY1N1wiOiBbLTAuMDI3NzgsIDAuNDcyMjIsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjk2NjFcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDEuMDIyMjJdLFxuICAgIFwiOTY2N1wiOiBbLTAuMDI3NzgsIDAuNDcyMjIsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjk3MTFcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDEuMTQ5OTldLFxuICAgIFwiOTgyNFwiOiBbMC4xMjk2MywgMC42OTQ0NCwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI5ODI1XCI6IFswLjEyOTYzLCAwLjY5NDQ0LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjk4MjZcIjogWzAuMTI5NjMsIDAuNjk0NDQsIDAsIDAsIDAuODk0NDRdLFxuICAgIFwiOTgyN1wiOiBbMC4xMjk2MywgMC42OTQ0NCwgMCwgMCwgMC44OTQ0NF0sXG4gICAgXCI5ODM3XCI6IFswLCAwLjc1LCAwLCAwLCAwLjQ0NzIyXSxcbiAgICBcIjk4MzhcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNDQ3MjJdLFxuICAgIFwiOTgzOVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC40NDcyMl0sXG4gICAgXCIxMDIxNlwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC40NDcyMl0sXG4gICAgXCIxMDIxN1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC40NDcyMl0sXG4gICAgXCIxMDgxNVwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45XSxcbiAgICBcIjEwOTI3XCI6IFswLjE5NjY3LCAwLjY5NjY3LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjEwOTI4XCI6IFswLjE5NjY3LCAwLjY5NjY3LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICBcIjU3Mzc2XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwXVxuICB9LFxuICBcIk1haW4tQm9sZEl0YWxpY1wiOiB7XG4gICAgXCIzMlwiOiBbMCwgMCwgMCwgMCwgMC4yNV0sXG4gICAgXCIzM1wiOiBbMCwgMC42OTQ0NCwgMC4xMTQxNywgMCwgMC4zODYxMV0sXG4gICAgXCIzNFwiOiBbMCwgMC42OTQ0NCwgMC4wNzkzOSwgMCwgMC42MjA1NV0sXG4gICAgXCIzNVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4wNjgzMywgMCwgMC45NDQ0NF0sXG4gICAgXCIzN1wiOiBbMC4wNTU1NiwgMC43NSwgMC4xMjg2MSwgMCwgMC45NDQ0NF0sXG4gICAgXCIzOFwiOiBbMCwgMC42OTQ0NCwgMC4wODUyOCwgMCwgMC44ODU1NV0sXG4gICAgXCIzOVwiOiBbMCwgMC42OTQ0NCwgMC4xMjk0NSwgMCwgMC4zNTU1NV0sXG4gICAgXCI0MFwiOiBbMC4yNSwgMC43NSwgMC4xNTgwNiwgMCwgMC40NzMzM10sXG4gICAgXCI0MVwiOiBbMC4yNSwgMC43NSwgMC4wMzMwNiwgMCwgMC40NzMzM10sXG4gICAgXCI0MlwiOiBbMCwgMC43NSwgMC4xNDMzMywgMCwgMC41OTExMV0sXG4gICAgXCI0M1wiOiBbMC4xMDMzMywgMC42MDMzMywgMC4wMzMwNiwgMCwgMC44ODU1NV0sXG4gICAgXCI0NFwiOiBbMC4xOTQ0NCwgMC4xNDcyMiwgMCwgMCwgMC4zNTU1NV0sXG4gICAgXCI0NVwiOiBbMCwgMC40NDQ0NCwgMC4wMjYxMSwgMCwgMC40MTQ0NF0sXG4gICAgXCI0NlwiOiBbMCwgMC4xNDcyMiwgMCwgMCwgMC4zNTU1NV0sXG4gICAgXCI0N1wiOiBbMC4yNSwgMC43NSwgMC4xNTgwNiwgMCwgMC41OTExMV0sXG4gICAgXCI0OFwiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgXCI0OVwiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgXCI1MFwiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgXCI1MVwiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgXCI1MlwiOiBbMC4xOTQ0NCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgXCI1M1wiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgXCI1NFwiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgXCI1NVwiOiBbMC4xOTQ0NCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgXCI1NlwiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgXCI1N1wiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgXCI1OFwiOiBbMCwgMC40NDQ0NCwgMC4wNjY5NSwgMCwgMC4zNTU1NV0sXG4gICAgXCI1OVwiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wNjY5NSwgMCwgMC4zNTU1NV0sXG4gICAgXCI2MVwiOiBbLTAuMTA4ODksIDAuMzkxMTEsIDAuMDY4MzMsIDAsIDAuODg1NTVdLFxuICAgIFwiNjNcIjogWzAsIDAuNjk0NDQsIDAuMTE0NzIsIDAsIDAuNTkxMTFdLFxuICAgIFwiNjRcIjogWzAsIDAuNjk0NDQsIDAuMDkyMDgsIDAsIDAuODg1NTVdLFxuICAgIFwiNjVcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODY1NTVdLFxuICAgIFwiNjZcIjogWzAsIDAuNjg2MTEsIDAuMDk5MiwgMCwgMC44MTY2Nl0sXG4gICAgXCI2N1wiOiBbMCwgMC42ODYxMSwgMC4xNDIwOCwgMCwgMC44MjY2Nl0sXG4gICAgXCI2OFwiOiBbMCwgMC42ODYxMSwgMC4wOTA2MiwgMCwgMC44NzU1NV0sXG4gICAgXCI2OVwiOiBbMCwgMC42ODYxMSwgMC4xMTQzMSwgMCwgMC43NTY2Nl0sXG4gICAgXCI3MFwiOiBbMCwgMC42ODYxMSwgMC4xMjkwMywgMCwgMC43MjcyMl0sXG4gICAgXCI3MVwiOiBbMCwgMC42ODYxMSwgMC4wNzM0NywgMCwgMC44OTUyN10sXG4gICAgXCI3MlwiOiBbMCwgMC42ODYxMSwgMC4xNzIwOCwgMCwgMC44OTYxXSxcbiAgICBcIjczXCI6IFswLCAwLjY4NjExLCAwLjE1NjgxLCAwLCAwLjQ3MTY2XSxcbiAgICBcIjc0XCI6IFswLCAwLjY4NjExLCAwLjE0NSwgMCwgMC42MTA1NV0sXG4gICAgXCI3NVwiOiBbMCwgMC42ODYxMSwgMC4xNDIwOCwgMCwgMC44OTQ5OV0sXG4gICAgXCI3NlwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC42OTc3N10sXG4gICAgXCI3N1wiOiBbMCwgMC42ODYxMSwgMC4xNzIwOCwgMCwgMS4wNzI3N10sXG4gICAgXCI3OFwiOiBbMCwgMC42ODYxMSwgMC4xNzIwOCwgMCwgMC44OTYxXSxcbiAgICBcIjc5XCI6IFswLCAwLjY4NjExLCAwLjA5MDYyLCAwLCAwLjg1NDk5XSxcbiAgICBcIjgwXCI6IFswLCAwLjY4NjExLCAwLjA5OTIsIDAsIDAuNzg3MjFdLFxuICAgIFwiODFcIjogWzAuMTk0NDQsIDAuNjg2MTEsIDAuMDkwNjIsIDAsIDAuODU0OTldLFxuICAgIFwiODJcIjogWzAsIDAuNjg2MTEsIDAuMDI1NTksIDAsIDAuODU5NDRdLFxuICAgIFwiODNcIjogWzAsIDAuNjg2MTEsIDAuMTEyNjQsIDAsIDAuNjQ5OTldLFxuICAgIFwiODRcIjogWzAsIDAuNjg2MTEsIDAuMTI5MDMsIDAsIDAuNzk2MV0sXG4gICAgXCI4NVwiOiBbMCwgMC42ODYxMSwgMC4xNzIwOCwgMCwgMC44ODA4M10sXG4gICAgXCI4NlwiOiBbMCwgMC42ODYxMSwgMC4xODYyNSwgMCwgMC44NjU1NV0sXG4gICAgXCI4N1wiOiBbMCwgMC42ODYxMSwgMC4xODYyNSwgMCwgMS4xNTk5OV0sXG4gICAgXCI4OFwiOiBbMCwgMC42ODYxMSwgMC4xNTY4MSwgMCwgMC44NjU1NV0sXG4gICAgXCI4OVwiOiBbMCwgMC42ODYxMSwgMC4xOTgwMywgMCwgMC44NjU1NV0sXG4gICAgXCI5MFwiOiBbMCwgMC42ODYxMSwgMC4xNDIwOCwgMCwgMC43MDg4OF0sXG4gICAgXCI5MVwiOiBbMC4yNSwgMC43NSwgMC4xODc1LCAwLCAwLjM1NjExXSxcbiAgICBcIjkzXCI6IFswLjI1LCAwLjc1LCAwLjA5OTcyLCAwLCAwLjM1NjExXSxcbiAgICBcIjk0XCI6IFswLCAwLjY5NDQ0LCAwLjA2NzA5LCAwLCAwLjU5MTExXSxcbiAgICBcIjk1XCI6IFswLjMxLCAwLjEzNDQ0LCAwLjA5ODExLCAwLCAwLjU5MTExXSxcbiAgICBcIjk3XCI6IFswLCAwLjQ0NDQ0LCAwLjA5NDI2LCAwLCAwLjU5MTExXSxcbiAgICBcIjk4XCI6IFswLCAwLjY5NDQ0LCAwLjA3ODYxLCAwLCAwLjUzMjIyXSxcbiAgICBcIjk5XCI6IFswLCAwLjQ0NDQ0LCAwLjA1MjIyLCAwLCAwLjUzMjIyXSxcbiAgICBcIjEwMFwiOiBbMCwgMC42OTQ0NCwgMC4xMDg2MSwgMCwgMC41OTExMV0sXG4gICAgXCIxMDFcIjogWzAsIDAuNDQ0NDQsIDAuMDg1LCAwLCAwLjUzMjIyXSxcbiAgICBcIjEwMlwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4yMTc3OCwgMCwgMC40XSxcbiAgICBcIjEwM1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4xMDUsIDAsIDAuNTMyMjJdLFxuICAgIFwiMTA0XCI6IFswLCAwLjY5NDQ0LCAwLjA5NDI2LCAwLCAwLjU5MTExXSxcbiAgICBcIjEwNVwiOiBbMCwgMC42OTMyNiwgMC4xMTM4NywgMCwgMC4zNTU1NV0sXG4gICAgXCIxMDZcIjogWzAuMTk0NDQsIDAuNjkzMjYsIDAuMTY3MiwgMCwgMC4zNTU1NV0sXG4gICAgXCIxMDdcIjogWzAsIDAuNjk0NDQsIDAuMTExMTEsIDAsIDAuNTMyMjJdLFxuICAgIFwiMTA4XCI6IFswLCAwLjY5NDQ0LCAwLjEwODYxLCAwLCAwLjI5NjY2XSxcbiAgICBcIjEwOVwiOiBbMCwgMC40NDQ0NCwgMC4wOTQyNiwgMCwgMC45NDQ0NF0sXG4gICAgXCIxMTBcIjogWzAsIDAuNDQ0NDQsIDAuMDk0MjYsIDAsIDAuNjQ5OTldLFxuICAgIFwiMTExXCI6IFswLCAwLjQ0NDQ0LCAwLjA3ODYxLCAwLCAwLjU5MTExXSxcbiAgICBcIjExMlwiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wNzg2MSwgMCwgMC41OTExMV0sXG4gICAgXCIxMTNcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMTA1LCAwLCAwLjUzMjIyXSxcbiAgICBcIjExNFwiOiBbMCwgMC40NDQ0NCwgMC4xMTExMSwgMCwgMC41MDE2N10sXG4gICAgXCIxMTVcIjogWzAsIDAuNDQ0NDQsIDAuMDgxNjcsIDAsIDAuNDg2OTRdLFxuICAgIFwiMTE2XCI6IFswLCAwLjYzNDkyLCAwLjA5NjM5LCAwLCAwLjM4NV0sXG4gICAgXCIxMTdcIjogWzAsIDAuNDQ0NDQsIDAuMDk0MjYsIDAsIDAuNjIwNTVdLFxuICAgIFwiMTE4XCI6IFswLCAwLjQ0NDQ0LCAwLjExMTExLCAwLCAwLjUzMjIyXSxcbiAgICBcIjExOVwiOiBbMCwgMC40NDQ0NCwgMC4xMTExMSwgMCwgMC43Njc3N10sXG4gICAgXCIxMjBcIjogWzAsIDAuNDQ0NDQsIDAuMTI1ODMsIDAsIDAuNTYwNTVdLFxuICAgIFwiMTIxXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjEwNSwgMCwgMC41NjE2Nl0sXG4gICAgXCIxMjJcIjogWzAsIDAuNDQ0NDQsIDAuMTM4ODksIDAsIDAuNDkwNTVdLFxuICAgIFwiMTI2XCI6IFswLjM1LCAwLjM0NDQ0LCAwLjExNDcyLCAwLCAwLjU5MTExXSxcbiAgICBcIjE2MFwiOiBbMCwgMCwgMCwgMCwgMC4yNV0sXG4gICAgXCIxNjhcIjogWzAsIDAuNjk0NDQsIDAuMTE0NzMsIDAsIDAuNTkxMTFdLFxuICAgIFwiMTc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjk0ODg4XSxcbiAgICBcIjE4NFwiOiBbMC4xNzAxNCwgMCwgMCwgMCwgMC41MzIyMl0sXG4gICAgXCIxOThcIjogWzAsIDAuNjg2MTEsIDAuMTE0MzEsIDAsIDEuMDIyNzddLFxuICAgIFwiMjE2XCI6IFswLjA0ODYxLCAwLjczNDcyLCAwLjA5MDYyLCAwLCAwLjg4NTU1XSxcbiAgICBcIjIyM1wiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4wOTczNiwgMCwgMC42NjVdLFxuICAgIFwiMjMwXCI6IFswLCAwLjQ0NDQ0LCAwLjA4NSwgMCwgMC44MjY2Nl0sXG4gICAgXCIyNDhcIjogWzAuMDk3MjIsIDAuNTQxNjcsIDAuMDk0NTgsIDAsIDAuNTkxMTFdLFxuICAgIFwiMzA1XCI6IFswLCAwLjQ0NDQ0LCAwLjA5NDI2LCAwLCAwLjM1NTU1XSxcbiAgICBcIjMzOFwiOiBbMCwgMC42ODYxMSwgMC4xMTQzMSwgMCwgMS4xNDA1NF0sXG4gICAgXCIzMzlcIjogWzAsIDAuNDQ0NDQsIDAuMDg1LCAwLCAwLjgyNjY2XSxcbiAgICBcIjU2N1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wNDYxMSwgMCwgMC4zODVdLFxuICAgIFwiNzEwXCI6IFswLCAwLjY5NDQ0LCAwLjA2NzA5LCAwLCAwLjU5MTExXSxcbiAgICBcIjcxMVwiOiBbMCwgMC42MzE5NCwgMC4wODI3MSwgMCwgMC41OTExMV0sXG4gICAgXCI3MTNcIjogWzAsIDAuNTk0NDQsIDAuMTA0NDQsIDAsIDAuNTkxMTFdLFxuICAgIFwiNzE0XCI6IFswLCAwLjY5NDQ0LCAwLjA4NTI4LCAwLCAwLjU5MTExXSxcbiAgICBcIjcxNVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41OTExMV0sXG4gICAgXCI3MjhcIjogWzAsIDAuNjk0NDQsIDAuMTAzMzMsIDAsIDAuNTkxMTFdLFxuICAgIFwiNzI5XCI6IFswLCAwLjY5NDQ0LCAwLjEyOTQ1LCAwLCAwLjM1NTU1XSxcbiAgICBcIjczMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC45NDg4OF0sXG4gICAgXCI3MzJcIjogWzAsIDAuNjk0NDQsIDAuMTE0NzIsIDAsIDAuNTkxMTFdLFxuICAgIFwiNzMzXCI6IFswLCAwLjY5NDQ0LCAwLjExNDcyLCAwLCAwLjU5MTExXSxcbiAgICBcIjkxNVwiOiBbMCwgMC42ODYxMSwgMC4xMjkwMywgMCwgMC42OTc3N10sXG4gICAgXCI5MTZcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuOTQ0NDRdLFxuICAgIFwiOTIwXCI6IFswLCAwLjY4NjExLCAwLjA5MDYyLCAwLCAwLjg4NTU1XSxcbiAgICBcIjkyM1wiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44MDY2Nl0sXG4gICAgXCI5MjZcIjogWzAsIDAuNjg2MTEsIDAuMTUwOTIsIDAsIDAuNzY3NzddLFxuICAgIFwiOTI4XCI6IFswLCAwLjY4NjExLCAwLjE3MjA4LCAwLCAwLjg5NjFdLFxuICAgIFwiOTMxXCI6IFswLCAwLjY4NjExLCAwLjExNDMxLCAwLCAwLjgyNjY2XSxcbiAgICBcIjkzM1wiOiBbMCwgMC42ODYxMSwgMC4xMDc3OCwgMCwgMC44ODU1NV0sXG4gICAgXCI5MzRcIjogWzAsIDAuNjg2MTEsIDAuMDU2MzIsIDAsIDAuODI2NjZdLFxuICAgIFwiOTM2XCI6IFswLCAwLjY4NjExLCAwLjEwNzc4LCAwLCAwLjg4NTU1XSxcbiAgICBcIjkzN1wiOiBbMCwgMC42ODYxMSwgMC4wOTkyLCAwLCAwLjgyNjY2XSxcbiAgICBcIjgyMTFcIjogWzAsIDAuNDQ0NDQsIDAuMDk4MTEsIDAsIDAuNTkxMTFdLFxuICAgIFwiODIxMlwiOiBbMCwgMC40NDQ0NCwgMC4wOTgxMSwgMCwgMS4xODIyMV0sXG4gICAgXCI4MjE2XCI6IFswLCAwLjY5NDQ0LCAwLjEyOTQ1LCAwLCAwLjM1NTU1XSxcbiAgICBcIjgyMTdcIjogWzAsIDAuNjk0NDQsIDAuMTI5NDUsIDAsIDAuMzU1NTVdLFxuICAgIFwiODIyMFwiOiBbMCwgMC42OTQ0NCwgMC4xNjc3MiwgMCwgMC42MjA1NV0sXG4gICAgXCI4MjIxXCI6IFswLCAwLjY5NDQ0LCAwLjA3OTM5LCAwLCAwLjYyMDU1XVxuICB9LFxuICBcIk1haW4tSXRhbGljXCI6IHtcbiAgICBcIjMyXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjMzXCI6IFswLCAwLjY5NDQ0LCAwLjEyNDE3LCAwLCAwLjMwNjY3XSxcbiAgICBcIjM0XCI6IFswLCAwLjY5NDQ0LCAwLjA2OTYxLCAwLCAwLjUxNDQ0XSxcbiAgICBcIjM1XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjA2NjE2LCAwLCAwLjgxNzc3XSxcbiAgICBcIjM3XCI6IFswLjA1NTU2LCAwLjc1LCAwLjEzNjM5LCAwLCAwLjgxNzc3XSxcbiAgICBcIjM4XCI6IFswLCAwLjY5NDQ0LCAwLjA5Njk0LCAwLCAwLjc2NjY2XSxcbiAgICBcIjM5XCI6IFswLCAwLjY5NDQ0LCAwLjEyNDE3LCAwLCAwLjMwNjY3XSxcbiAgICBcIjQwXCI6IFswLjI1LCAwLjc1LCAwLjE2MTk0LCAwLCAwLjQwODg5XSxcbiAgICBcIjQxXCI6IFswLjI1LCAwLjc1LCAwLjAzNjk0LCAwLCAwLjQwODg5XSxcbiAgICBcIjQyXCI6IFswLCAwLjc1LCAwLjE0OTE3LCAwLCAwLjUxMTExXSxcbiAgICBcIjQzXCI6IFswLjA1NjY3LCAwLjU2MTY3LCAwLjAzNjk0LCAwLCAwLjc2NjY2XSxcbiAgICBcIjQ0XCI6IFswLjE5NDQ0LCAwLjEwNTU2LCAwLCAwLCAwLjMwNjY3XSxcbiAgICBcIjQ1XCI6IFswLCAwLjQzMDU2LCAwLjAyODI2LCAwLCAwLjM1Nzc4XSxcbiAgICBcIjQ2XCI6IFswLCAwLjEwNTU2LCAwLCAwLCAwLjMwNjY3XSxcbiAgICBcIjQ3XCI6IFswLjI1LCAwLjc1LCAwLjE2MTk0LCAwLCAwLjUxMTExXSxcbiAgICBcIjQ4XCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICBcIjQ5XCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICBcIjUwXCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICBcIjUxXCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICBcIjUyXCI6IFswLjE5NDQ0LCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICBcIjUzXCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICBcIjU0XCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICBcIjU1XCI6IFswLjE5NDQ0LCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICBcIjU2XCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICBcIjU3XCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICBcIjU4XCI6IFswLCAwLjQzMDU2LCAwLjA1ODIsIDAsIDAuMzA2NjddLFxuICAgIFwiNTlcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDU4MiwgMCwgMC4zMDY2N10sXG4gICAgXCI2MVwiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAuMDY2MTYsIDAsIDAuNzY2NjZdLFxuICAgIFwiNjNcIjogWzAsIDAuNjk0NDQsIDAuMTIyNSwgMCwgMC41MTExMV0sXG4gICAgXCI2NFwiOiBbMCwgMC42OTQ0NCwgMC4wOTU5NywgMCwgMC43NjY2Nl0sXG4gICAgXCI2NVwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC43NDMzM10sXG4gICAgXCI2NlwiOiBbMCwgMC42ODMzMywgMC4xMDI1NywgMCwgMC43MDM4OV0sXG4gICAgXCI2N1wiOiBbMCwgMC42ODMzMywgMC4xNDUyOCwgMCwgMC43MTU1NV0sXG4gICAgXCI2OFwiOiBbMCwgMC42ODMzMywgMC4wOTQwMywgMCwgMC43NTVdLFxuICAgIFwiNjlcIjogWzAsIDAuNjgzMzMsIDAuMTIwMjgsIDAsIDAuNjc4MzNdLFxuICAgIFwiNzBcIjogWzAsIDAuNjgzMzMsIDAuMTMzMDUsIDAsIDAuNjUyNzddLFxuICAgIFwiNzFcIjogWzAsIDAuNjgzMzMsIDAuMDg3MjIsIDAsIDAuNzczNjFdLFxuICAgIFwiNzJcIjogWzAsIDAuNjgzMzMsIDAuMTYzODksIDAsIDAuNzQzMzNdLFxuICAgIFwiNzNcIjogWzAsIDAuNjgzMzMsIDAuMTU4MDYsIDAsIDAuMzg1NTVdLFxuICAgIFwiNzRcIjogWzAsIDAuNjgzMzMsIDAuMTQwMjgsIDAsIDAuNTI1XSxcbiAgICBcIjc1XCI6IFswLCAwLjY4MzMzLCAwLjE0NTI4LCAwLCAwLjc2ODg4XSxcbiAgICBcIjc2XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjYyNzIyXSxcbiAgICBcIjc3XCI6IFswLCAwLjY4MzMzLCAwLjE2Mzg5LCAwLCAwLjg5NjY2XSxcbiAgICBcIjc4XCI6IFswLCAwLjY4MzMzLCAwLjE2Mzg5LCAwLCAwLjc0MzMzXSxcbiAgICBcIjc5XCI6IFswLCAwLjY4MzMzLCAwLjA5NDAzLCAwLCAwLjc2NjY2XSxcbiAgICBcIjgwXCI6IFswLCAwLjY4MzMzLCAwLjEwMjU3LCAwLCAwLjY3ODMzXSxcbiAgICBcIjgxXCI6IFswLjE5NDQ0LCAwLjY4MzMzLCAwLjA5NDAzLCAwLCAwLjc2NjY2XSxcbiAgICBcIjgyXCI6IFswLCAwLjY4MzMzLCAwLjAzODY4LCAwLCAwLjcyOTQ0XSxcbiAgICBcIjgzXCI6IFswLCAwLjY4MzMzLCAwLjExOTcyLCAwLCAwLjU2MjIyXSxcbiAgICBcIjg0XCI6IFswLCAwLjY4MzMzLCAwLjEzMzA1LCAwLCAwLjcxNTU1XSxcbiAgICBcIjg1XCI6IFswLCAwLjY4MzMzLCAwLjE2Mzg5LCAwLCAwLjc0MzMzXSxcbiAgICBcIjg2XCI6IFswLCAwLjY4MzMzLCAwLjE4MzYxLCAwLCAwLjc0MzMzXSxcbiAgICBcIjg3XCI6IFswLCAwLjY4MzMzLCAwLjE4MzYxLCAwLCAwLjk5ODg4XSxcbiAgICBcIjg4XCI6IFswLCAwLjY4MzMzLCAwLjE1ODA2LCAwLCAwLjc0MzMzXSxcbiAgICBcIjg5XCI6IFswLCAwLjY4MzMzLCAwLjE5MzgzLCAwLCAwLjc0MzMzXSxcbiAgICBcIjkwXCI6IFswLCAwLjY4MzMzLCAwLjE0NTI4LCAwLCAwLjYxMzMzXSxcbiAgICBcIjkxXCI6IFswLjI1LCAwLjc1LCAwLjE4NzUsIDAsIDAuMzA2NjddLFxuICAgIFwiOTNcIjogWzAuMjUsIDAuNzUsIDAuMTA1MjgsIDAsIDAuMzA2NjddLFxuICAgIFwiOTRcIjogWzAsIDAuNjk0NDQsIDAuMDY2NDYsIDAsIDAuNTExMTFdLFxuICAgIFwiOTVcIjogWzAuMzEsIDAuMTIwNTYsIDAuMDkyMDgsIDAsIDAuNTExMTFdLFxuICAgIFwiOTdcIjogWzAsIDAuNDMwNTYsIDAuMDc2NzEsIDAsIDAuNTExMTFdLFxuICAgIFwiOThcIjogWzAsIDAuNjk0NDQsIDAuMDYzMTIsIDAsIDAuNDZdLFxuICAgIFwiOTlcIjogWzAsIDAuNDMwNTYsIDAuMDU2NTMsIDAsIDAuNDZdLFxuICAgIFwiMTAwXCI6IFswLCAwLjY5NDQ0LCAwLjEwMzMzLCAwLCAwLjUxMTExXSxcbiAgICBcIjEwMVwiOiBbMCwgMC40MzA1NiwgMC4wNzUxNCwgMCwgMC40Nl0sXG4gICAgXCIxMDJcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMjExOTQsIDAsIDAuMzA2NjddLFxuICAgIFwiMTAzXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLjA4ODQ3LCAwLCAwLjQ2XSxcbiAgICBcIjEwNFwiOiBbMCwgMC42OTQ0NCwgMC4wNzY3MSwgMCwgMC41MTExMV0sXG4gICAgXCIxMDVcIjogWzAsIDAuNjU1MzYsIDAuMTAxOSwgMCwgMC4zMDY2N10sXG4gICAgXCIxMDZcIjogWzAuMTk0NDQsIDAuNjU1MzYsIDAuMTQ0NjcsIDAsIDAuMzA2NjddLFxuICAgIFwiMTA3XCI6IFswLCAwLjY5NDQ0LCAwLjEwNzY0LCAwLCAwLjQ2XSxcbiAgICBcIjEwOFwiOiBbMCwgMC42OTQ0NCwgMC4xMDMzMywgMCwgMC4yNTU1NV0sXG4gICAgXCIxMDlcIjogWzAsIDAuNDMwNTYsIDAuMDc2NzEsIDAsIDAuODE3NzddLFxuICAgIFwiMTEwXCI6IFswLCAwLjQzMDU2LCAwLjA3NjcxLCAwLCAwLjU2MjIyXSxcbiAgICBcIjExMVwiOiBbMCwgMC40MzA1NiwgMC4wNjMxMiwgMCwgMC41MTExMV0sXG4gICAgXCIxMTJcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDYzMTIsIDAsIDAuNTExMTFdLFxuICAgIFwiMTEzXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLjA4ODQ3LCAwLCAwLjQ2XSxcbiAgICBcIjExNFwiOiBbMCwgMC40MzA1NiwgMC4xMDc2NCwgMCwgMC40MjE2Nl0sXG4gICAgXCIxMTVcIjogWzAsIDAuNDMwNTYsIDAuMDgyMDgsIDAsIDAuNDA4ODldLFxuICAgIFwiMTE2XCI6IFswLCAwLjYxNTA4LCAwLjA5NDg2LCAwLCAwLjMzMjIyXSxcbiAgICBcIjExN1wiOiBbMCwgMC40MzA1NiwgMC4wNzY3MSwgMCwgMC41MzY2Nl0sXG4gICAgXCIxMThcIjogWzAsIDAuNDMwNTYsIDAuMTA3NjQsIDAsIDAuNDZdLFxuICAgIFwiMTE5XCI6IFswLCAwLjQzMDU2LCAwLjEwNzY0LCAwLCAwLjY2NDQ0XSxcbiAgICBcIjEyMFwiOiBbMCwgMC40MzA1NiwgMC4xMjA0MiwgMCwgMC40NjM4OV0sXG4gICAgXCIxMjFcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDg4NDcsIDAsIDAuNDg1NTVdLFxuICAgIFwiMTIyXCI6IFswLCAwLjQzMDU2LCAwLjEyMjkyLCAwLCAwLjQwODg5XSxcbiAgICBcIjEyNlwiOiBbMC4zNSwgMC4zMTc4NiwgMC4xMTU4NSwgMCwgMC41MTExMV0sXG4gICAgXCIxNjBcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiMTY4XCI6IFswLCAwLjY2Nzg2LCAwLjEwNDc0LCAwLCAwLjUxMTExXSxcbiAgICBcIjE3NlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44MzEyOV0sXG4gICAgXCIxODRcIjogWzAuMTcwMTQsIDAsIDAsIDAsIDAuNDZdLFxuICAgIFwiMTk4XCI6IFswLCAwLjY4MzMzLCAwLjEyMDI4LCAwLCAwLjg4Mjc3XSxcbiAgICBcIjIxNlwiOiBbMC4wNDg2MSwgMC43MzE5NCwgMC4wOTQwMywgMCwgMC43NjY2Nl0sXG4gICAgXCIyMjNcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMTA1MTQsIDAsIDAuNTM2NjZdLFxuICAgIFwiMjMwXCI6IFswLCAwLjQzMDU2LCAwLjA3NTE0LCAwLCAwLjcxNTU1XSxcbiAgICBcIjI0OFwiOiBbMC4wOTcyMiwgMC41Mjc3OCwgMC4wOTE5NCwgMCwgMC41MTExMV0sXG4gICAgXCIzMzhcIjogWzAsIDAuNjgzMzMsIDAuMTIwMjgsIDAsIDAuOTg0OTldLFxuICAgIFwiMzM5XCI6IFswLCAwLjQzMDU2LCAwLjA3NTE0LCAwLCAwLjcxNTU1XSxcbiAgICBcIjcxMFwiOiBbMCwgMC42OTQ0NCwgMC4wNjY0NiwgMCwgMC41MTExMV0sXG4gICAgXCI3MTFcIjogWzAsIDAuNjI4NDcsIDAuMDgyOTUsIDAsIDAuNTExMTFdLFxuICAgIFwiNzEzXCI6IFswLCAwLjU2MTY3LCAwLjEwMzMzLCAwLCAwLjUxMTExXSxcbiAgICBcIjcxNFwiOiBbMCwgMC42OTQ0NCwgMC4wOTY5NCwgMCwgMC41MTExMV0sXG4gICAgXCI3MTVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTExMTFdLFxuICAgIFwiNzI4XCI6IFswLCAwLjY5NDQ0LCAwLjEwODA2LCAwLCAwLjUxMTExXSxcbiAgICBcIjcyOVwiOiBbMCwgMC42Njc4NiwgMC4xMTc1MiwgMCwgMC4zMDY2N10sXG4gICAgXCI3MzBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuODMxMjldLFxuICAgIFwiNzMyXCI6IFswLCAwLjY2Nzg2LCAwLjExNTg1LCAwLCAwLjUxMTExXSxcbiAgICBcIjczM1wiOiBbMCwgMC42OTQ0NCwgMC4xMjI1LCAwLCAwLjUxMTExXSxcbiAgICBcIjkxNVwiOiBbMCwgMC42ODMzMywgMC4xMzMwNSwgMCwgMC42MjcyMl0sXG4gICAgXCI5MTZcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuODE3NzddLFxuICAgIFwiOTIwXCI6IFswLCAwLjY4MzMzLCAwLjA5NDAzLCAwLCAwLjc2NjY2XSxcbiAgICBcIjkyM1wiOiBbMCwgMC42ODMzMywgMCwgMCwgMC42OTIyMl0sXG4gICAgXCI5MjZcIjogWzAsIDAuNjgzMzMsIDAuMTUyOTQsIDAsIDAuNjY0NDRdLFxuICAgIFwiOTI4XCI6IFswLCAwLjY4MzMzLCAwLjE2Mzg5LCAwLCAwLjc0MzMzXSxcbiAgICBcIjkzMVwiOiBbMCwgMC42ODMzMywgMC4xMjAyOCwgMCwgMC43MTU1NV0sXG4gICAgXCI5MzNcIjogWzAsIDAuNjgzMzMsIDAuMTExMTEsIDAsIDAuNzY2NjZdLFxuICAgIFwiOTM0XCI6IFswLCAwLjY4MzMzLCAwLjA1OTg2LCAwLCAwLjcxNTU1XSxcbiAgICBcIjkzNlwiOiBbMCwgMC42ODMzMywgMC4xMTExMSwgMCwgMC43NjY2Nl0sXG4gICAgXCI5MzdcIjogWzAsIDAuNjgzMzMsIDAuMTAyNTcsIDAsIDAuNzE1NTVdLFxuICAgIFwiODIxMVwiOiBbMCwgMC40MzA1NiwgMC4wOTIwOCwgMCwgMC41MTExMV0sXG4gICAgXCI4MjEyXCI6IFswLCAwLjQzMDU2LCAwLjA5MjA4LCAwLCAxLjAyMjIyXSxcbiAgICBcIjgyMTZcIjogWzAsIDAuNjk0NDQsIDAuMTI0MTcsIDAsIDAuMzA2NjddLFxuICAgIFwiODIxN1wiOiBbMCwgMC42OTQ0NCwgMC4xMjQxNywgMCwgMC4zMDY2N10sXG4gICAgXCI4MjIwXCI6IFswLCAwLjY5NDQ0LCAwLjE2ODUsIDAsIDAuNTE0NDRdLFxuICAgIFwiODIyMVwiOiBbMCwgMC42OTQ0NCwgMC4wNjk2MSwgMCwgMC41MTQ0NF0sXG4gICAgXCI4NDYzXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjU0MDI4XVxuICB9LFxuICBcIk1haW4tUmVndWxhclwiOiB7XG4gICAgXCIzMlwiOiBbMCwgMCwgMCwgMCwgMC4yNV0sXG4gICAgXCIzM1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCIzNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjM1XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjgzMzM0XSxcbiAgICBcIjM2XCI6IFswLjA1NTU2LCAwLjc1LCAwLCAwLCAwLjVdLFxuICAgIFwiMzdcIjogWzAuMDU1NTYsIDAuNzUsIDAsIDAsIDAuODMzMzRdLFxuICAgIFwiMzhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiMzlcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiNDBcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMzg4ODldLFxuICAgIFwiNDFcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMzg4ODldLFxuICAgIFwiNDJcIjogWzAsIDAuNzUsIDAsIDAsIDAuNV0sXG4gICAgXCI0M1wiOiBbMC4wODMzMywgMC41ODMzMywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI0NFwiOiBbMC4xOTQ0NCwgMC4xMDU1NiwgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI0NVwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC4zMzMzM10sXG4gICAgXCI0NlwiOiBbMCwgMC4xMDU1NiwgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI0N1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICBcIjQ4XCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiNDlcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNV0sXG4gICAgXCI1MFwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjUxXCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiNTJcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNV0sXG4gICAgXCI1M1wiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjU0XCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiNTVcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNV0sXG4gICAgXCI1NlwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjU3XCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiNThcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiNTlcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiNjBcIjogWzAuMDM5MSwgMC41MzkxLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjYxXCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI2MlwiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiNjNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNDcyMjJdLFxuICAgIFwiNjRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiNjVcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzVdLFxuICAgIFwiNjZcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzA4MzRdLFxuICAgIFwiNjdcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiNjhcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzYzODldLFxuICAgIFwiNjlcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNjgwNTZdLFxuICAgIFwiNzBcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNjUyNzhdLFxuICAgIFwiNzFcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzg0NzJdLFxuICAgIFwiNzJcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzVdLFxuICAgIFwiNzNcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuMzYxMTFdLFxuICAgIFwiNzRcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNTEzODldLFxuICAgIFwiNzVcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiNzZcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNjI1XSxcbiAgICBcIjc3XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjkxNjY3XSxcbiAgICBcIjc4XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc1XSxcbiAgICBcIjc5XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjgwXCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjY4MDU2XSxcbiAgICBcIjgxXCI6IFswLjE5NDQ0LCAwLjY4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjgyXCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjczNjExXSxcbiAgICBcIjgzXCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjU1NTU2XSxcbiAgICBcIjg0XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjcyMjIyXSxcbiAgICBcIjg1XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc1XSxcbiAgICBcIjg2XCI6IFswLCAwLjY4MzMzLCAwLjAxMzg5LCAwLCAwLjc1XSxcbiAgICBcIjg3XCI6IFswLCAwLjY4MzMzLCAwLjAxMzg5LCAwLCAxLjAyNzc4XSxcbiAgICBcIjg4XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc1XSxcbiAgICBcIjg5XCI6IFswLCAwLjY4MzMzLCAwLjAyNSwgMCwgMC43NV0sXG4gICAgXCI5MFwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC42MTExMV0sXG4gICAgXCI5MVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI5MlwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICBcIjkzXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICBcIjk0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiOTVcIjogWzAuMzEsIDAuMTIwNTYsIDAuMDI3NzgsIDAsIDAuNV0sXG4gICAgXCI5N1wiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICBcIjk4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU1NTU2XSxcbiAgICBcIjk5XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICBcIjEwMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NTU1Nl0sXG4gICAgXCIxMDFcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNDQ0NDVdLFxuICAgIFwiMTAyXCI6IFswLCAwLjY5NDQ0LCAwLjA3Nzc4LCAwLCAwLjMwNTU2XSxcbiAgICBcIjEwM1wiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMC4wMTM4OSwgMCwgMC41XSxcbiAgICBcIjEwNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NTU1Nl0sXG4gICAgXCIxMDVcIjogWzAsIDAuNjY3ODYsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiMTA2XCI6IFswLjE5NDQ0LCAwLjY2Nzg2LCAwLCAwLCAwLjMwNTU2XSxcbiAgICBcIjEwN1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41Mjc3OF0sXG4gICAgXCIxMDhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiMTA5XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjgzMzM0XSxcbiAgICBcIjExMFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41NTU1Nl0sXG4gICAgXCIxMTFcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNV0sXG4gICAgXCIxMTJcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAsIDAuNTU1NTZdLFxuICAgIFwiMTEzXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLCAwLjUyNzc4XSxcbiAgICBcIjExNFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC4zOTE2N10sXG4gICAgXCIxMTVcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuMzk0NDVdLFxuICAgIFwiMTE2XCI6IFswLCAwLjYxNTA4LCAwLCAwLCAwLjM4ODg5XSxcbiAgICBcIjExN1wiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41NTU1Nl0sXG4gICAgXCIxMThcIjogWzAsIDAuNDMwNTYsIDAuMDEzODksIDAsIDAuNTI3NzhdLFxuICAgIFwiMTE5XCI6IFswLCAwLjQzMDU2LCAwLjAxMzg5LCAwLCAwLjcyMjIyXSxcbiAgICBcIjEyMFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41Mjc3OF0sXG4gICAgXCIxMjFcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDEzODksIDAsIDAuNTI3NzhdLFxuICAgIFwiMTIyXCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICBcIjEyM1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICBcIjEyNFwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCIxMjVcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNV0sXG4gICAgXCIxMjZcIjogWzAuMzUsIDAuMzE3ODYsIDAsIDAsIDAuNV0sXG4gICAgXCIxNjBcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiMTYzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc2OTA5XSxcbiAgICBcIjE2N1wiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC40NDQ0NV0sXG4gICAgXCIxNjhcIjogWzAsIDAuNjY3ODYsIDAsIDAsIDAuNV0sXG4gICAgXCIxNzJcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiMTc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc1XSxcbiAgICBcIjE3N1wiOiBbMC4wODMzMywgMC41ODMzMywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxODJcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNjExMTFdLFxuICAgIFwiMTg0XCI6IFswLjE3MDE0LCAwLCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICBcIjE5OFwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC45MDI3OF0sXG4gICAgXCIyMTVcIjogWzAuMDgzMzMsIDAuNTgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiMjE2XCI6IFswLjA0ODYxLCAwLjczMTk0LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjIyM1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjIzMFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC43MjIyMl0sXG4gICAgXCIyNDdcIjogWzAuMDgzMzMsIDAuNTgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiMjQ4XCI6IFswLjA5NzIyLCAwLjUyNzc4LCAwLCAwLCAwLjVdLFxuICAgIFwiMzA1XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICBcIjMzOFwiOiBbMCwgMC42ODMzMywgMCwgMCwgMS4wMTM4OV0sXG4gICAgXCIzMzlcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiNTY3XCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLCAwLjMwNTU2XSxcbiAgICBcIjcxMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjcxMVwiOiBbMCwgMC42Mjg0NywgMCwgMCwgMC41XSxcbiAgICBcIjcxM1wiOiBbMCwgMC41Njc3OCwgMCwgMCwgMC41XSxcbiAgICBcIjcxNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjcxNVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjcyOFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjcyOVwiOiBbMCwgMC42Njc4NiwgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI3MzBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzVdLFxuICAgIFwiNzMyXCI6IFswLCAwLjY2Nzg2LCAwLCAwLCAwLjVdLFxuICAgIFwiNzMzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiOTE1XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjYyNV0sXG4gICAgXCI5MTZcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuODMzMzRdLFxuICAgIFwiOTIwXCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjkyM1wiOiBbMCwgMC42ODMzMywgMCwgMCwgMC42OTQ0NV0sXG4gICAgXCI5MjZcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiOTI4XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc1XSxcbiAgICBcIjkzMVwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC43MjIyMl0sXG4gICAgXCI5MzNcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiOTM0XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjcyMjIyXSxcbiAgICBcIjkzNlwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI5MzdcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiODIxMVwiOiBbMCwgMC40MzA1NiwgMC4wMjc3OCwgMCwgMC41XSxcbiAgICBcIjgyMTJcIjogWzAsIDAuNDMwNTYsIDAuMDI3NzgsIDAsIDEuMF0sXG4gICAgXCI4MjE2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICBcIjgyMTdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiODIyMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjgyMjFcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNV0sXG4gICAgXCI4MjI0XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICBcIjgyMjVcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNDQ0NDVdLFxuICAgIFwiODIzMFwiOiBbMCwgMC4xMjMsIDAsIDAsIDEuMTcyXSxcbiAgICBcIjgyNDJcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuMjc1XSxcbiAgICBcIjg0MDdcIjogWzAsIDAuNzE0NDQsIDAuMTUzODIsIDAsIDAuNV0sXG4gICAgXCI4NDYzXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjU0MDI4XSxcbiAgICBcIjg0NjVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiODQ2N1wiOiBbMCwgMC42OTQ0NCwgMCwgMC4xMTExMSwgMC40MTY2N10sXG4gICAgXCI4NDcyXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjExMTExLCAwLjYzNjQ2XSxcbiAgICBcIjg0NzZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiODUwMVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42MTExMV0sXG4gICAgXCI4NTkyXCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICBcIjg1OTNcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNV0sXG4gICAgXCI4NTk0XCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICBcIjg1OTVcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNV0sXG4gICAgXCI4NTk2XCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICBcIjg1OTdcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNV0sXG4gICAgXCI4NTk4XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjBdLFxuICAgIFwiODU5OVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMS4wXSxcbiAgICBcIjg2MDBcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDEuMF0sXG4gICAgXCI4NjAxXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjBdLFxuICAgIFwiODYxNFwiOiBbMC4wMTEsIDAuNTExLCAwLCAwLCAxLjBdLFxuICAgIFwiODYxN1wiOiBbMC4wMTEsIDAuNTExLCAwLCAwLCAxLjEyNl0sXG4gICAgXCI4NjE4XCI6IFswLjAxMSwgMC41MTEsIDAsIDAsIDEuMTI2XSxcbiAgICBcIjg2MzZcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAxLjBdLFxuICAgIFwiODYzN1wiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgXCI4NjQwXCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICBcIjg2NDFcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAxLjBdLFxuICAgIFwiODY1MlwiOiBbMC4wMTEsIDAuNjcxLCAwLCAwLCAxLjBdLFxuICAgIFwiODY1NlwiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgXCI4NjU3XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjg2NThcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAxLjBdLFxuICAgIFwiODY1OVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC42MTExMV0sXG4gICAgXCI4NjYwXCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICBcIjg2NjFcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNjExMTFdLFxuICAgIFwiODcwNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NTU1Nl0sXG4gICAgXCI4NzA2XCI6IFswLCAwLjY5NDQ0LCAwLjA1NTU2LCAwLjA4MzM0LCAwLjUzMDldLFxuICAgIFwiODcwN1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NTU1Nl0sXG4gICAgXCI4NzA5XCI6IFswLjA1NTU2LCAwLjc1LCAwLCAwLCAwLjVdLFxuICAgIFwiODcxMVwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC44MzMzNF0sXG4gICAgXCI4NzEyXCI6IFswLjAzOTEsIDAuNTM5MSwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI4NzE1XCI6IFswLjAzOTEsIDAuNTM5MSwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI4NzIyXCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3MjNcIjogWzAuMDgzMzMsIDAuNTgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODcyNVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICBcIjg3MjZcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNV0sXG4gICAgXCI4NzI3XCI6IFstMC4wMzQ3MiwgMC40NjUyOCwgMCwgMCwgMC41XSxcbiAgICBcIjg3MjhcIjogWy0wLjA1NTU1LCAwLjQ0NDQ1LCAwLCAwLCAwLjVdLFxuICAgIFwiODcyOVwiOiBbLTAuMDU1NTUsIDAuNDQ0NDUsIDAsIDAsIDAuNV0sXG4gICAgXCI4NzMwXCI6IFswLjIsIDAuOCwgMCwgMCwgMC44MzMzNF0sXG4gICAgXCI4NzMzXCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3MzRcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDEuMF0sXG4gICAgXCI4NzM2XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjcyMjIyXSxcbiAgICBcIjg3MzlcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiODc0MVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICBcIjg3NDNcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiODc0NFwiOiBbMCwgMC41NTU1NiwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI4NzQ1XCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjY2NjY3XSxcbiAgICBcIjg3NDZcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiODc0N1wiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4xMTExMSwgMCwgMC40MTY2N10sXG4gICAgXCI4NzY0XCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4NzY4XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICBcIjg3NzFcIjogWy0wLjAzNjI1LCAwLjQ2Mzc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3NzNcIjogWy0wLjAyMiwgMC41ODksIDAsIDAsIDAuNzc4XSxcbiAgICBcIjg3NzZcIjogWy0wLjAxNjg4LCAwLjQ4MzEyLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3ODFcIjogWy0wLjAzNjI1LCAwLjQ2Mzc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3ODRcIjogWy0wLjEzMywgMC42NzMsIDAsIDAsIDAuNzc4XSxcbiAgICBcIjg4MDFcIjogWy0wLjAzNjI1LCAwLjQ2Mzc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4MDRcIjogWzAuMTM1OTcsIDAuNjM1OTcsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgwNVwiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODEwXCI6IFswLjAzOTEsIDAuNTM5MSwgMCwgMCwgMS4wXSxcbiAgICBcIjg4MTFcIjogWzAuMDM5MSwgMC41MzkxLCAwLCAwLCAxLjBdLFxuICAgIFwiODgyNlwiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgyN1wiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgzNFwiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgzNVwiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODgzOFwiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODM5XCI6IFswLjEzNTk3LCAwLjYzNTk3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NDZcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiODg0OVwiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODUwXCI6IFswLjEzNTk3LCAwLjYzNTk3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NTFcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiODg1MlwiOiBbMCwgMC41NTU1NiwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI4ODUzXCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NTRcIjogWzAuMDgzMzMsIDAuNTgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODg1NVwiOiBbMC4wODMzMywgMC41ODMzMywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODU2XCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg4NTdcIjogWzAuMDgzMzMsIDAuNTgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODg2NlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42MTExMV0sXG4gICAgXCI4ODY3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjg4NjhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiODg2OVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4ODcyXCI6IFswLjI0OSwgMC43NSwgMCwgMCwgMC44NjddLFxuICAgIFwiODkwMFwiOiBbLTAuMDU1NTUsIDAuNDQ0NDUsIDAsIDAsIDAuNV0sXG4gICAgXCI4OTAxXCI6IFstMC4wNTU1NSwgMC40NDQ0NSwgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI4OTAyXCI6IFstMC4wMzQ3MiwgMC40NjUyOCwgMCwgMCwgMC41XSxcbiAgICBcIjg5MDRcIjogWzAuMDA1LCAwLjUwNSwgMCwgMCwgMC45XSxcbiAgICBcIjg5NDJcIjogWzAuMDMsIDAuOTAzLCAwLCAwLCAwLjI3OF0sXG4gICAgXCI4OTQzXCI6IFstMC4xOSwgMC4zMTMsIDAsIDAsIDEuMTcyXSxcbiAgICBcIjg5NDVcIjogWy0wLjEsIDAuODIzLCAwLCAwLCAxLjI4Ml0sXG4gICAgXCI4OTY4XCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICBcIjg5NjlcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNDQ0NDVdLFxuICAgIFwiODk3MFwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC40NDQ0NV0sXG4gICAgXCI4OTcxXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICBcIjg5OTRcIjogWy0wLjE0MjM2LCAwLjM1NzY0LCAwLCAwLCAxLjBdLFxuICAgIFwiODk5NVwiOiBbLTAuMTQyMzYsIDAuMzU3NjQsIDAsIDAsIDEuMF0sXG4gICAgXCI5MTM2XCI6IFswLjI0NCwgMC43NDQsIDAsIDAsIDAuNDEyXSxcbiAgICBcIjkxMzdcIjogWzAuMjQ0LCAwLjc0NSwgMCwgMCwgMC40MTJdLFxuICAgIFwiOTY1MVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC44ODg4OV0sXG4gICAgXCI5NjU3XCI6IFstMC4wMzQ3MiwgMC40NjUyOCwgMCwgMCwgMC41XSxcbiAgICBcIjk2NjFcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuODg4ODldLFxuICAgIFwiOTY2N1wiOiBbLTAuMDM0NzIsIDAuNDY1MjgsIDAsIDAsIDAuNV0sXG4gICAgXCI5NzExXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjBdLFxuICAgIFwiOTgyNFwiOiBbMC4xMjk2MywgMC42OTQ0NCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI5ODI1XCI6IFswLjEyOTYzLCAwLjY5NDQ0LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjk4MjZcIjogWzAuMTI5NjMsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiOTgyN1wiOiBbMC4xMjk2MywgMC42OTQ0NCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI5ODM3XCI6IFswLCAwLjc1LCAwLCAwLCAwLjM4ODg5XSxcbiAgICBcIjk4MzhcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuMzg4ODldLFxuICAgIFwiOTgzOVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC4zODg4OV0sXG4gICAgXCIxMDIxNlwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zODg4OV0sXG4gICAgXCIxMDIxN1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zODg4OV0sXG4gICAgXCIxMDIyMlwiOiBbMC4yNDQsIDAuNzQ0LCAwLCAwLCAwLjQxMl0sXG4gICAgXCIxMDIyM1wiOiBbMC4yNDQsIDAuNzQ1LCAwLCAwLCAwLjQxMl0sXG4gICAgXCIxMDIyOVwiOiBbMC4wMTEsIDAuNTExLCAwLCAwLCAxLjYwOV0sXG4gICAgXCIxMDIzMFwiOiBbMC4wMTEsIDAuNTExLCAwLCAwLCAxLjYzOF0sXG4gICAgXCIxMDIzMVwiOiBbMC4wMTEsIDAuNTExLCAwLCAwLCAxLjg1OV0sXG4gICAgXCIxMDIzMlwiOiBbMC4wMjQsIDAuNTI1LCAwLCAwLCAxLjYwOV0sXG4gICAgXCIxMDIzM1wiOiBbMC4wMjQsIDAuNTI1LCAwLCAwLCAxLjYzOF0sXG4gICAgXCIxMDIzNFwiOiBbMC4wMjQsIDAuNTI1LCAwLCAwLCAxLjg1OF0sXG4gICAgXCIxMDIzNlwiOiBbMC4wMTEsIDAuNTExLCAwLCAwLCAxLjYzOF0sXG4gICAgXCIxMDgxNVwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC43NV0sXG4gICAgXCIxMDkyN1wiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCIxMDkyOFwiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI1NzM3NlwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMF1cbiAgfSxcbiAgXCJNYXRoLUJvbGRJdGFsaWNcIjoge1xuICAgIFwiMzJcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiNDhcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjQ5XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI1MFwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiNTFcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjUyXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI1M1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiNTRcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjU1XCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgXCI1NlwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgIFwiNTdcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICBcIjY1XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjg2OTQ0XSxcbiAgICBcIjY2XCI6IFswLCAwLjY4NjExLCAwLjA0ODM1LCAwLCAwLjg2NjRdLFxuICAgIFwiNjdcIjogWzAsIDAuNjg2MTEsIDAuMDY5NzksIDAsIDAuODE2OTRdLFxuICAgIFwiNjhcIjogWzAsIDAuNjg2MTEsIDAuMDMxOTQsIDAsIDAuOTM4MTJdLFxuICAgIFwiNjlcIjogWzAsIDAuNjg2MTEsIDAuMDU0NTEsIDAsIDAuODEwMDddLFxuICAgIFwiNzBcIjogWzAsIDAuNjg2MTEsIDAuMTU5NzIsIDAsIDAuNjg4ODldLFxuICAgIFwiNzFcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODg2NzNdLFxuICAgIFwiNzJcIjogWzAsIDAuNjg2MTEsIDAuMDgyMjksIDAsIDAuOTgyMjldLFxuICAgIFwiNzNcIjogWzAsIDAuNjg2MTEsIDAuMDc3NzgsIDAsIDAuNTExMTFdLFxuICAgIFwiNzRcIjogWzAsIDAuNjg2MTEsIDAuMTAwNjksIDAsIDAuNjMxMjVdLFxuICAgIFwiNzVcIjogWzAsIDAuNjg2MTEsIDAuMDY5NzksIDAsIDAuOTcxMThdLFxuICAgIFwiNzZcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuNzU1NTVdLFxuICAgIFwiNzdcIjogWzAsIDAuNjg2MTEsIDAuMTE0MjQsIDAsIDEuMTQyMDFdLFxuICAgIFwiNzhcIjogWzAsIDAuNjg2MTEsIDAuMTE0MjQsIDAsIDAuOTUwMzRdLFxuICAgIFwiNzlcIjogWzAsIDAuNjg2MTEsIDAuMDMxOTQsIDAsIDAuODM2NjZdLFxuICAgIFwiODBcIjogWzAsIDAuNjg2MTEsIDAuMTU5NzIsIDAsIDAuNzIzMDldLFxuICAgIFwiODFcIjogWzAuMTk0NDQsIDAuNjg2MTEsIDAsIDAsIDAuODY4NjFdLFxuICAgIFwiODJcIjogWzAsIDAuNjg2MTEsIDAuMDA0MjEsIDAsIDAuODcyMzVdLFxuICAgIFwiODNcIjogWzAsIDAuNjg2MTEsIDAuMDUzODIsIDAsIDAuNjkyNzFdLFxuICAgIFwiODRcIjogWzAsIDAuNjg2MTEsIDAuMTU5NzIsIDAsIDAuNjM2NjNdLFxuICAgIFwiODVcIjogWzAsIDAuNjg2MTEsIDAuMTE0MjQsIDAsIDAuODAwMjddLFxuICAgIFwiODZcIjogWzAsIDAuNjg2MTEsIDAuMjU1NTUsIDAsIDAuNjc3NzhdLFxuICAgIFwiODdcIjogWzAsIDAuNjg2MTEsIDAuMTU5NzIsIDAsIDEuMDkzMDVdLFxuICAgIFwiODhcIjogWzAsIDAuNjg2MTEsIDAuMDc3NzgsIDAsIDAuOTQ3MjJdLFxuICAgIFwiODlcIjogWzAsIDAuNjg2MTEsIDAuMjU1NTUsIDAsIDAuNjc0NThdLFxuICAgIFwiOTBcIjogWzAsIDAuNjg2MTEsIDAuMDY5NzksIDAsIDAuNzcyNTddLFxuICAgIFwiOTdcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNjMyODddLFxuICAgIFwiOThcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTIwODNdLFxuICAgIFwiOTlcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNTEzNDJdLFxuICAgIFwiMTAwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYwOTcyXSxcbiAgICBcIjEwMVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41NTM2MV0sXG4gICAgXCIxMDJcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMTEwNDIsIDAsIDAuNTY4MDZdLFxuICAgIFwiMTAzXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjAzNzA0LCAwLCAwLjU0NDldLFxuICAgIFwiMTA0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY2NzU5XSxcbiAgICBcIjEwNVwiOiBbMCwgMC42OTMyNiwgMCwgMCwgMC40MDQ4XSxcbiAgICBcIjEwNlwiOiBbMC4xOTQ0NCwgMC42OTMyNiwgMC4wNjIyLCAwLCAwLjQ3MDgzXSxcbiAgICBcIjEwN1wiOiBbMCwgMC42OTQ0NCwgMC4wMTg1MiwgMCwgMC42MDM3XSxcbiAgICBcIjEwOFwiOiBbMCwgMC42OTQ0NCwgMC4wMDg4LCAwLCAwLjM0ODE1XSxcbiAgICBcIjEwOVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMS4wMzI0XSxcbiAgICBcIjExMFwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC43MTI5Nl0sXG4gICAgXCIxMTFcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNTg0NzJdLFxuICAgIFwiMTEyXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjYwMDkyXSxcbiAgICBcIjExM1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wMzcwNCwgMCwgMC41NDIxM10sXG4gICAgXCIxMTRcIjogWzAsIDAuNDQ0NDQsIDAuMDMxOTQsIDAsIDAuNTI4N10sXG4gICAgXCIxMTVcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNTMxMjVdLFxuICAgIFwiMTE2XCI6IFswLCAwLjYzNDkyLCAwLCAwLCAwLjQxNTI4XSxcbiAgICBcIjExN1wiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC42ODEwMl0sXG4gICAgXCIxMThcIjogWzAsIDAuNDQ0NDQsIDAuMDM3MDQsIDAsIDAuNTY2NjZdLFxuICAgIFwiMTE5XCI6IFswLCAwLjQ0NDQ0LCAwLjAyNzc4LCAwLCAwLjgzMTQ4XSxcbiAgICBcIjEyMFwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC42NTkwM10sXG4gICAgXCIxMjFcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMDM3MDQsIDAsIDAuNTkwMjhdLFxuICAgIFwiMTIyXCI6IFswLCAwLjQ0NDQ0LCAwLjA0MjEzLCAwLCAwLjU1NTA5XSxcbiAgICBcIjE2MFwiOiBbMCwgMCwgMCwgMCwgMC4yNV0sXG4gICAgXCI5MTVcIjogWzAsIDAuNjg2MTEsIDAuMTU5NzIsIDAsIDAuNjU2OTRdLFxuICAgIFwiOTE2XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjk1ODMzXSxcbiAgICBcIjkyMFwiOiBbMCwgMC42ODYxMSwgMC4wMzE5NCwgMCwgMC44NjcyMl0sXG4gICAgXCI5MjNcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODA1NTVdLFxuICAgIFwiOTI2XCI6IFswLCAwLjY4NjExLCAwLjA3NDU4LCAwLCAwLjg0MTI1XSxcbiAgICBcIjkyOFwiOiBbMCwgMC42ODYxMSwgMC4wODIyOSwgMCwgMC45ODIyOV0sXG4gICAgXCI5MzFcIjogWzAsIDAuNjg2MTEsIDAuMDU0NTEsIDAsIDAuODg1MDddLFxuICAgIFwiOTMzXCI6IFswLCAwLjY4NjExLCAwLjE1OTcyLCAwLCAwLjY3MDgzXSxcbiAgICBcIjkzNFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC43NjY2Nl0sXG4gICAgXCI5MzZcIjogWzAsIDAuNjg2MTEsIDAuMTE2NTMsIDAsIDAuNzE0MDJdLFxuICAgIFwiOTM3XCI6IFswLCAwLjY4NjExLCAwLjA0ODM1LCAwLCAwLjg3ODldLFxuICAgIFwiOTQ1XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjc2MDY0XSxcbiAgICBcIjk0NlwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4wMzQwMywgMCwgMC42NTk3Ml0sXG4gICAgXCI5NDdcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMDYzODksIDAsIDAuNTkwMDNdLFxuICAgIFwiOTQ4XCI6IFswLCAwLjY5NDQ0LCAwLjAzODE5LCAwLCAwLjUyMjIyXSxcbiAgICBcIjk0OVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41Mjg4Ml0sXG4gICAgXCI5NTBcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMDYyMTUsIDAsIDAuNTA4MzNdLFxuICAgIFwiOTUxXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjAzNzA0LCAwLCAwLjZdLFxuICAgIFwiOTUyXCI6IFswLCAwLjY5NDQ0LCAwLjAzMTk0LCAwLCAwLjU2MThdLFxuICAgIFwiOTUzXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjQxMjA0XSxcbiAgICBcIjk1NFwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC42Njc1OV0sXG4gICAgXCI5NTVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjcwODNdLFxuICAgIFwiOTU2XCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjcwNzg3XSxcbiAgICBcIjk1N1wiOiBbMCwgMC40NDQ0NCwgMC4wNjg5OCwgMCwgMC41NzY4NV0sXG4gICAgXCI5NThcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMDMwMjEsIDAsIDAuNTA4MzNdLFxuICAgIFwiOTU5XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjU4NDcyXSxcbiAgICBcIjk2MFwiOiBbMCwgMC40NDQ0NCwgMC4wMzcwNCwgMCwgMC42ODI0MV0sXG4gICAgXCI5NjFcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuNjExOF0sXG4gICAgXCI5NjJcIjogWzAuMDk3MjIsIDAuNDQ0NDQsIDAuMDc5MTcsIDAsIDAuNDIzNjFdLFxuICAgIFwiOTYzXCI6IFswLCAwLjQ0NDQ0LCAwLjAzNzA0LCAwLCAwLjY4NTg4XSxcbiAgICBcIjk2NFwiOiBbMCwgMC40NDQ0NCwgMC4xMzQ3MiwgMCwgMC41MjA4M10sXG4gICAgXCI5NjVcIjogWzAsIDAuNDQ0NDQsIDAuMDM3MDQsIDAsIDAuNjMwNTVdLFxuICAgIFwiOTY2XCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjc0NzIyXSxcbiAgICBcIjk2N1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMCwgMCwgMC43MTgwNV0sXG4gICAgXCI5NjhcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMDM3MDQsIDAsIDAuNzU4MzNdLFxuICAgIFwiOTY5XCI6IFswLCAwLjQ0NDQ0LCAwLjAzNzA0LCAwLCAwLjcxNzgyXSxcbiAgICBcIjk3N1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42OTE1NV0sXG4gICAgXCI5ODFcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNzEyNV0sXG4gICAgXCI5ODJcIjogWzAsIDAuNDQ0NDQsIDAuMDMxOTQsIDAsIDAuOTc1XSxcbiAgICBcIjEwMDlcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuNjExOF0sXG4gICAgXCIxMDEzXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjQ4MzMzXSxcbiAgICBcIjU3NjQ5XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjM5MzUyXSxcbiAgICBcIjU3OTExXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjQzODg5XVxuICB9LFxuICBcIk1hdGgtSXRhbGljXCI6IHtcbiAgICBcIjMyXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjQ4XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjVdLFxuICAgIFwiNDlcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNV0sXG4gICAgXCI1MFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICBcIjUxXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLCAwLjVdLFxuICAgIFwiNTJcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAsIDAuNV0sXG4gICAgXCI1M1wiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICBcIjU0XCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiNTVcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAsIDAuNV0sXG4gICAgXCI1NlwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjU3XCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLCAwLjVdLFxuICAgIFwiNjVcIjogWzAsIDAuNjgzMzMsIDAsIDAuMTM4ODksIDAuNzVdLFxuICAgIFwiNjZcIjogWzAsIDAuNjgzMzMsIDAuMDUwMTcsIDAuMDgzMzQsIDAuNzU4NTFdLFxuICAgIFwiNjdcIjogWzAsIDAuNjgzMzMsIDAuMDcxNTMsIDAuMDgzMzQsIDAuNzE0NzJdLFxuICAgIFwiNjhcIjogWzAsIDAuNjgzMzMsIDAuMDI3NzgsIDAuMDU1NTYsIDAuODI3OTJdLFxuICAgIFwiNjlcIjogWzAsIDAuNjgzMzMsIDAuMDU3NjQsIDAuMDgzMzQsIDAuNzM4Ml0sXG4gICAgXCI3MFwiOiBbMCwgMC42ODMzMywgMC4xMzg4OSwgMC4wODMzNCwgMC42NDMwNl0sXG4gICAgXCI3MVwiOiBbMCwgMC42ODMzMywgMCwgMC4wODMzNCwgMC43ODYyNV0sXG4gICAgXCI3MlwiOiBbMCwgMC42ODMzMywgMC4wODEyNSwgMC4wNTU1NiwgMC44MzEyNV0sXG4gICAgXCI3M1wiOiBbMCwgMC42ODMzMywgMC4wNzg0NywgMC4xMTExMSwgMC40Mzk1OF0sXG4gICAgXCI3NFwiOiBbMCwgMC42ODMzMywgMC4wOTYxOCwgMC4xNjY2NywgMC41NTQ1MV0sXG4gICAgXCI3NVwiOiBbMCwgMC42ODMzMywgMC4wNzE1MywgMC4wNTU1NiwgMC44NDkzMV0sXG4gICAgXCI3NlwiOiBbMCwgMC42ODMzMywgMCwgMC4wMjc3OCwgMC42ODA1Nl0sXG4gICAgXCI3N1wiOiBbMCwgMC42ODMzMywgMC4xMDkwMywgMC4wODMzNCwgMC45NzAxNF0sXG4gICAgXCI3OFwiOiBbMCwgMC42ODMzMywgMC4xMDkwMywgMC4wODMzNCwgMC44MDM0N10sXG4gICAgXCI3OVwiOiBbMCwgMC42ODMzMywgMC4wMjc3OCwgMC4wODMzNCwgMC43NjI3OF0sXG4gICAgXCI4MFwiOiBbMCwgMC42ODMzMywgMC4xMzg4OSwgMC4wODMzNCwgMC42NDIwMV0sXG4gICAgXCI4MVwiOiBbMC4xOTQ0NCwgMC42ODMzMywgMCwgMC4wODMzNCwgMC43OTA1Nl0sXG4gICAgXCI4MlwiOiBbMCwgMC42ODMzMywgMC4wMDc3MywgMC4wODMzNCwgMC43NTkyOV0sXG4gICAgXCI4M1wiOiBbMCwgMC42ODMzMywgMC4wNTc2NCwgMC4wODMzNCwgMC42MTMyXSxcbiAgICBcIjg0XCI6IFswLCAwLjY4MzMzLCAwLjEzODg5LCAwLjA4MzM0LCAwLjU4NDM4XSxcbiAgICBcIjg1XCI6IFswLCAwLjY4MzMzLCAwLjEwOTAzLCAwLjAyNzc4LCAwLjY4Mjc4XSxcbiAgICBcIjg2XCI6IFswLCAwLjY4MzMzLCAwLjIyMjIyLCAwLCAwLjU4MzMzXSxcbiAgICBcIjg3XCI6IFswLCAwLjY4MzMzLCAwLjEzODg5LCAwLCAwLjk0NDQ1XSxcbiAgICBcIjg4XCI6IFswLCAwLjY4MzMzLCAwLjA3ODQ3LCAwLjA4MzM0LCAwLjgyODQ3XSxcbiAgICBcIjg5XCI6IFswLCAwLjY4MzMzLCAwLjIyMjIyLCAwLCAwLjU4MDU2XSxcbiAgICBcIjkwXCI6IFswLCAwLjY4MzMzLCAwLjA3MTUzLCAwLjA4MzM0LCAwLjY4MjY0XSxcbiAgICBcIjk3XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjUyODU5XSxcbiAgICBcIjk4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjQyOTE3XSxcbiAgICBcIjk5XCI6IFswLCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjQzMjc2XSxcbiAgICBcIjEwMFwiOiBbMCwgMC42OTQ0NCwgMCwgMC4xNjY2NywgMC41MjA0OV0sXG4gICAgXCIxMDFcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDU1NTYsIDAuNDY1NjNdLFxuICAgIFwiMTAyXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjEwNzY0LCAwLjE2NjY3LCAwLjQ4OTU5XSxcbiAgICBcIjEwM1wiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMC4wMzU4OCwgMC4wMjc3OCwgMC40NzY5N10sXG4gICAgXCIxMDRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTc2MTZdLFxuICAgIFwiMTA1XCI6IFswLCAwLjY1OTUyLCAwLCAwLCAwLjM0NDUxXSxcbiAgICBcIjEwNlwiOiBbMC4xOTQ0NCwgMC42NTk1MiwgMC4wNTcyNCwgMCwgMC40MTE4MV0sXG4gICAgXCIxMDdcIjogWzAsIDAuNjk0NDQsIDAuMDMxNDgsIDAsIDAuNTIwNl0sXG4gICAgXCIxMDhcIjogWzAsIDAuNjk0NDQsIDAuMDE5NjgsIDAuMDgzMzQsIDAuMjk4MzhdLFxuICAgIFwiMTA5XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjg3ODAxXSxcbiAgICBcIjExMFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC42MDAyM10sXG4gICAgXCIxMTFcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDU1NTYsIDAuNDg0NzJdLFxuICAgIFwiMTEyXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjA4MzM0LCAwLjUwMzEzXSxcbiAgICBcIjExM1wiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMC4wMzU4OCwgMC4wODMzNCwgMC40NDY0MV0sXG4gICAgXCIxMTRcIjogWzAsIDAuNDMwNTYsIDAuMDI3NzgsIDAuMDU1NTYsIDAuNDUxMTZdLFxuICAgIFwiMTE1XCI6IFswLCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjQ2ODc1XSxcbiAgICBcIjExNlwiOiBbMCwgMC42MTUwOCwgMCwgMC4wODMzNCwgMC4zNjExMV0sXG4gICAgXCIxMTdcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDI3NzgsIDAuNTcyNDZdLFxuICAgIFwiMTE4XCI6IFswLCAwLjQzMDU2LCAwLjAzNTg4LCAwLjAyNzc4LCAwLjQ4NDcyXSxcbiAgICBcIjExOVwiOiBbMCwgMC40MzA1NiwgMC4wMjY5MSwgMC4wODMzNCwgMC43MTU5Ml0sXG4gICAgXCIxMjBcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDI3NzgsIDAuNTcxNTNdLFxuICAgIFwiMTIxXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLjAzNTg4LCAwLjA1NTU2LCAwLjQ5MDI4XSxcbiAgICBcIjEyMlwiOiBbMCwgMC40MzA1NiwgMC4wNDM5OCwgMC4wNTU1NiwgMC40NjUwNV0sXG4gICAgXCIxNjBcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiOTE1XCI6IFswLCAwLjY4MzMzLCAwLjEzODg5LCAwLjA4MzM0LCAwLjYxNTI4XSxcbiAgICBcIjkxNlwiOiBbMCwgMC42ODMzMywgMCwgMC4xNjY2NywgMC44MzMzNF0sXG4gICAgXCI5MjBcIjogWzAsIDAuNjgzMzMsIDAuMDI3NzgsIDAuMDgzMzQsIDAuNzYyNzhdLFxuICAgIFwiOTIzXCI6IFswLCAwLjY4MzMzLCAwLCAwLjE2NjY3LCAwLjY5NDQ1XSxcbiAgICBcIjkyNlwiOiBbMCwgMC42ODMzMywgMC4wNzU2OSwgMC4wODMzNCwgMC43NDIzNl0sXG4gICAgXCI5MjhcIjogWzAsIDAuNjgzMzMsIDAuMDgxMjUsIDAuMDU1NTYsIDAuODMxMjVdLFxuICAgIFwiOTMxXCI6IFswLCAwLjY4MzMzLCAwLjA1NzY0LCAwLjA4MzM0LCAwLjc3OTg2XSxcbiAgICBcIjkzM1wiOiBbMCwgMC42ODMzMywgMC4xMzg4OSwgMC4wNTU1NiwgMC41ODMzM10sXG4gICAgXCI5MzRcIjogWzAsIDAuNjgzMzMsIDAsIDAuMDgzMzQsIDAuNjY2NjddLFxuICAgIFwiOTM2XCI6IFswLCAwLjY4MzMzLCAwLjExLCAwLjA1NTU2LCAwLjYxMjIyXSxcbiAgICBcIjkzN1wiOiBbMCwgMC42ODMzMywgMC4wNTAxNywgMC4wODMzNCwgMC43NzI0XSxcbiAgICBcIjk0NVwiOiBbMCwgMC40MzA1NiwgMC4wMDM3LCAwLjAyNzc4LCAwLjYzOTddLFxuICAgIFwiOTQ2XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjA1Mjc4LCAwLjA4MzM0LCAwLjU2NTYzXSxcbiAgICBcIjk0N1wiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMC4wNTU1NiwgMCwgMC41MTc3M10sXG4gICAgXCI5NDhcIjogWzAsIDAuNjk0NDQsIDAuMDM3ODUsIDAuMDU1NTYsIDAuNDQ0NDRdLFxuICAgIFwiOTQ5XCI6IFswLCAwLjQzMDU2LCAwLCAwLjA4MzM0LCAwLjQ2NjMyXSxcbiAgICBcIjk1MFwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4wNzM3OCwgMC4wODMzNCwgMC40Mzc1XSxcbiAgICBcIjk1MVwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMC4wMzU4OCwgMC4wNTU1NiwgMC40OTY1M10sXG4gICAgXCI5NTJcIjogWzAsIDAuNjk0NDQsIDAuMDI3NzgsIDAuMDgzMzQsIDAuNDY5NDRdLFxuICAgIFwiOTUzXCI6IFswLCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjM1Mzk0XSxcbiAgICBcIjk1NFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41NzYxNl0sXG4gICAgXCI5NTVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTgzMzRdLFxuICAgIFwiOTU2XCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjAyNzc4LCAwLjYwMjU1XSxcbiAgICBcIjk1N1wiOiBbMCwgMC40MzA1NiwgMC4wNjM2NiwgMC4wMjc3OCwgMC40OTM5OF0sXG4gICAgXCI5NThcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMDQ2MDEsIDAuMTExMTEsIDAuNDM3NV0sXG4gICAgXCI5NTlcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDU1NTYsIDAuNDg0NzJdLFxuICAgIFwiOTYwXCI6IFswLCAwLjQzMDU2LCAwLjAzNTg4LCAwLCAwLjU3MDAzXSxcbiAgICBcIjk2MVwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMC4wODMzNCwgMC41MTcwMl0sXG4gICAgXCI5NjJcIjogWzAuMDk3MjIsIDAuNDMwNTYsIDAuMDc5ODYsIDAuMDgzMzQsIDAuMzYyODVdLFxuICAgIFwiOTYzXCI6IFswLCAwLjQzMDU2LCAwLjAzNTg4LCAwLCAwLjU3MTQxXSxcbiAgICBcIjk2NFwiOiBbMCwgMC40MzA1NiwgMC4xMTMyLCAwLjAyNzc4LCAwLjQzNzE1XSxcbiAgICBcIjk2NVwiOiBbMCwgMC40MzA1NiwgMC4wMzU4OCwgMC4wMjc3OCwgMC41NDAyOF0sXG4gICAgXCI5NjZcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAuMDgzMzQsIDAuNjU0MTddLFxuICAgIFwiOTY3XCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjYyNTY5XSxcbiAgICBcIjk2OFwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4wMzU4OCwgMC4xMTExMSwgMC42NTEzOV0sXG4gICAgXCI5NjlcIjogWzAsIDAuNDMwNTYsIDAuMDM1ODgsIDAsIDAuNjIyNDVdLFxuICAgIFwiOTc3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLjA4MzM0LCAwLjU5MTQ0XSxcbiAgICBcIjk4MVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMC4wODMzNCwgMC41OTU4M10sXG4gICAgXCI5ODJcIjogWzAsIDAuNDMwNTYsIDAuMDI3NzgsIDAsIDAuODI4MTNdLFxuICAgIFwiMTAwOVwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMC4wODMzNCwgMC41MTcwMl0sXG4gICAgXCIxMDEzXCI6IFswLCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjQwNTldLFxuICAgIFwiNTc2NDlcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDI3NzgsIDAuMzIyNDZdLFxuICAgIFwiNTc5MTFcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAuMDgzMzQsIDAuMzg0MDNdXG4gIH0sXG4gIFwiU2Fuc1NlcmlmLUJvbGRcIjoge1xuICAgIFwiMzJcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiMzNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzY2NjddLFxuICAgIFwiMzRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTU4MzRdLFxuICAgIFwiMzVcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuOTE2NjddLFxuICAgIFwiMzZcIjogWzAuMDU1NTYsIDAuNzUsIDAsIDAsIDAuNTVdLFxuICAgIFwiMzdcIjogWzAuMDU1NTYsIDAuNzUsIDAsIDAsIDEuMDI5MTJdLFxuICAgIFwiMzhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuODMwNTZdLFxuICAgIFwiMzlcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzA1NTZdLFxuICAgIFwiNDBcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNDI3NzhdLFxuICAgIFwiNDFcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNDI3NzhdLFxuICAgIFwiNDJcIjogWzAsIDAuNzUsIDAsIDAsIDAuNTVdLFxuICAgIFwiNDNcIjogWzAuMTE2NjcsIDAuNjE2NjcsIDAsIDAsIDAuODU1NTZdLFxuICAgIFwiNDRcIjogWzAuMTA1NTYsIDAuMTMwNTYsIDAsIDAsIDAuMzA1NTZdLFxuICAgIFwiNDVcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuMzY2NjddLFxuICAgIFwiNDZcIjogWzAsIDAuMTMwNTYsIDAsIDAsIDAuMzA1NTZdLFxuICAgIFwiNDdcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTVdLFxuICAgIFwiNDhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNDlcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNTBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNTFcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNTJcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNTNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNTRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNTVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNTZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNTdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNThcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuMzA1NTZdLFxuICAgIFwiNTlcIjogWzAuMTA1NTYsIDAuNDU4MzMsIDAsIDAsIDAuMzA1NTZdLFxuICAgIFwiNjFcIjogWy0wLjA5Mzc1LCAwLjQwNjI1LCAwLCAwLCAwLjg1NTU2XSxcbiAgICBcIjYzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjUxOTQ1XSxcbiAgICBcIjY0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICBcIjY1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICBcIjY2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICBcIjY3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcwMjc4XSxcbiAgICBcIjY4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc5NDQ1XSxcbiAgICBcIjY5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY0MTY3XSxcbiAgICBcIjcwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjcxXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICBcIjcyXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc5NDQ1XSxcbiAgICBcIjczXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjMzMDU2XSxcbiAgICBcIjc0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjUxOTQ1XSxcbiAgICBcIjc1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc2Mzg5XSxcbiAgICBcIjc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU4MDU2XSxcbiAgICBcIjc3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjk3Nzc4XSxcbiAgICBcIjc4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc5NDQ1XSxcbiAgICBcIjc5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc5NDQ1XSxcbiAgICBcIjgwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcwMjc4XSxcbiAgICBcIjgxXCI6IFswLjEwNTU2LCAwLjY5NDQ0LCAwLCAwLCAwLjc5NDQ1XSxcbiAgICBcIjgyXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcwMjc4XSxcbiAgICBcIjgzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjg0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICBcIjg1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc2Mzg5XSxcbiAgICBcIjg2XCI6IFswLCAwLjY5NDQ0LCAwLjAxNTI4LCAwLCAwLjczMzM0XSxcbiAgICBcIjg3XCI6IFswLCAwLjY5NDQ0LCAwLjAxNTI4LCAwLCAxLjAzODg5XSxcbiAgICBcIjg4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICBcIjg5XCI6IFswLCAwLjY5NDQ0LCAwLjAyNzUsIDAsIDAuNzMzMzRdLFxuICAgIFwiOTBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjcyMjNdLFxuICAgIFwiOTFcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMzQzMDZdLFxuICAgIFwiOTNcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMzQzMDZdLFxuICAgIFwiOTRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiOTVcIjogWzAuMzUsIDAuMTA4MzMsIDAuMDMwNTYsIDAsIDAuNTVdLFxuICAgIFwiOTdcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjk4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU2MTExXSxcbiAgICBcIjk5XCI6IFswLCAwLjQ1ODMzLCAwLCAwLCAwLjQ4ODg5XSxcbiAgICBcIjEwMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NjExMV0sXG4gICAgXCIxMDFcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuNTExMTFdLFxuICAgIFwiMTAyXCI6IFswLCAwLjY5NDQ0LCAwLjA3NjM5LCAwLCAwLjMzNjExXSxcbiAgICBcIjEwM1wiOiBbMC4xOTQ0NCwgMC40NTgzMywgMC4wMTUyOCwgMCwgMC41NV0sXG4gICAgXCIxMDRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTYxMTFdLFxuICAgIFwiMTA1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjI1NTU2XSxcbiAgICBcIjEwNlwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC4yODYxMV0sXG4gICAgXCIxMDdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTMwNTZdLFxuICAgIFwiMTA4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjI1NTU2XSxcbiAgICBcIjEwOVwiOiBbMCwgMC40NTgzMywgMCwgMCwgMC44NjY2N10sXG4gICAgXCIxMTBcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuNTYxMTFdLFxuICAgIFwiMTExXCI6IFswLCAwLjQ1ODMzLCAwLCAwLCAwLjU1XSxcbiAgICBcIjExMlwiOiBbMC4xOTQ0NCwgMC40NTgzMywgMCwgMCwgMC41NjExMV0sXG4gICAgXCIxMTNcIjogWzAuMTk0NDQsIDAuNDU4MzMsIDAsIDAsIDAuNTYxMTFdLFxuICAgIFwiMTE0XCI6IFswLCAwLjQ1ODMzLCAwLjAxNTI4LCAwLCAwLjM3MjIyXSxcbiAgICBcIjExNVwiOiBbMCwgMC40NTgzMywgMCwgMCwgMC40MjE2N10sXG4gICAgXCIxMTZcIjogWzAsIDAuNTg5MjksIDAsIDAsIDAuNDA0MTddLFxuICAgIFwiMTE3XCI6IFswLCAwLjQ1ODMzLCAwLCAwLCAwLjU2MTExXSxcbiAgICBcIjExOFwiOiBbMCwgMC40NTgzMywgMC4wMTUyOCwgMCwgMC41XSxcbiAgICBcIjExOVwiOiBbMCwgMC40NTgzMywgMC4wMTUyOCwgMCwgMC43NDQ0NV0sXG4gICAgXCIxMjBcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuNV0sXG4gICAgXCIxMjFcIjogWzAuMTk0NDQsIDAuNDU4MzMsIDAuMDE1MjgsIDAsIDAuNV0sXG4gICAgXCIxMjJcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuNDc2MzldLFxuICAgIFwiMTI2XCI6IFswLjM1LCAwLjM0NDQ0LCAwLCAwLCAwLjU1XSxcbiAgICBcIjE2MFwiOiBbMCwgMCwgMCwgMCwgMC4yNV0sXG4gICAgXCIxNjhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiMTc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICBcIjE4MFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NV0sXG4gICAgXCIxODRcIjogWzAuMTcwMTQsIDAsIDAsIDAsIDAuNDg4ODldLFxuICAgIFwiMzA1XCI6IFswLCAwLjQ1ODMzLCAwLCAwLCAwLjI1NTU2XSxcbiAgICBcIjU2N1wiOiBbMC4xOTQ0NCwgMC40NTgzMywgMCwgMCwgMC4yODYxMV0sXG4gICAgXCI3MTBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNzExXCI6IFswLCAwLjYzNTQyLCAwLCAwLCAwLjU1XSxcbiAgICBcIjcxM1wiOiBbMCwgMC42Mzc3OCwgMCwgMCwgMC41NV0sXG4gICAgXCI3MjhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNzI5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjMwNTU2XSxcbiAgICBcIjczMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43MzMzNF0sXG4gICAgXCI3MzJcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgIFwiNzMzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU1XSxcbiAgICBcIjkxNVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41ODA1Nl0sXG4gICAgXCI5MTZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuOTE2NjddLFxuICAgIFwiOTIwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg1NTU2XSxcbiAgICBcIjkyM1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NzIyM10sXG4gICAgXCI5MjZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzMzMzRdLFxuICAgIFwiOTI4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc5NDQ1XSxcbiAgICBcIjkzMVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43OTQ0NV0sXG4gICAgXCI5MzNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuODU1NTZdLFxuICAgIFwiOTM0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc5NDQ1XSxcbiAgICBcIjkzNlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44NTU1Nl0sXG4gICAgXCI5MzdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzk0NDVdLFxuICAgIFwiODIxMVwiOiBbMCwgMC40NTgzMywgMC4wMzA1NiwgMCwgMC41NV0sXG4gICAgXCI4MjEyXCI6IFswLCAwLjQ1ODMzLCAwLjAzMDU2LCAwLCAxLjEwMDAxXSxcbiAgICBcIjgyMTZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzA1NTZdLFxuICAgIFwiODIxN1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4zMDU1Nl0sXG4gICAgXCI4MjIwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU1ODM0XSxcbiAgICBcIjgyMjFcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTU4MzRdXG4gIH0sXG4gIFwiU2Fuc1NlcmlmLUl0YWxpY1wiOiB7XG4gICAgXCIzMlwiOiBbMCwgMCwgMCwgMCwgMC4yNV0sXG4gICAgXCIzM1wiOiBbMCwgMC42OTQ0NCwgMC4wNTczMywgMCwgMC4zMTk0NV0sXG4gICAgXCIzNFwiOiBbMCwgMC42OTQ0NCwgMC4wMDMxNiwgMCwgMC41XSxcbiAgICBcIjM1XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjA1MDg3LCAwLCAwLjgzMzM0XSxcbiAgICBcIjM2XCI6IFswLjA1NTU2LCAwLjc1LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgIFwiMzdcIjogWzAuMDU1NTYsIDAuNzUsIDAuMDMxMjYsIDAsIDAuODMzMzRdLFxuICAgIFwiMzhcIjogWzAsIDAuNjk0NDQsIDAuMDMwNTgsIDAsIDAuNzU4MzRdLFxuICAgIFwiMzlcIjogWzAsIDAuNjk0NDQsIDAuMDc4MTYsIDAsIDAuMjc3NzhdLFxuICAgIFwiNDBcIjogWzAuMjUsIDAuNzUsIDAuMTMxNjQsIDAsIDAuMzg4ODldLFxuICAgIFwiNDFcIjogWzAuMjUsIDAuNzUsIDAuMDI1MzYsIDAsIDAuMzg4ODldLFxuICAgIFwiNDJcIjogWzAsIDAuNzUsIDAuMTE3NzUsIDAsIDAuNV0sXG4gICAgXCI0M1wiOiBbMC4wODMzMywgMC41ODMzMywgMC4wMjUzNiwgMCwgMC43Nzc3OF0sXG4gICAgXCI0NFwiOiBbMC4xMjUsIDAuMDgzMzMsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiNDVcIjogWzAsIDAuNDQ0NDQsIDAuMDE5NDYsIDAsIDAuMzMzMzNdLFxuICAgIFwiNDZcIjogWzAsIDAuMDgzMzMsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiNDdcIjogWzAuMjUsIDAuNzUsIDAuMTMxNjQsIDAsIDAuNV0sXG4gICAgXCI0OFwiOiBbMCwgMC42NTU1NiwgMC4xMTE1NiwgMCwgMC41XSxcbiAgICBcIjQ5XCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgIFwiNTBcIjogWzAsIDAuNjU1NTYsIDAuMTExNTYsIDAsIDAuNV0sXG4gICAgXCI1MVwiOiBbMCwgMC42NTU1NiwgMC4xMTE1NiwgMCwgMC41XSxcbiAgICBcIjUyXCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgIFwiNTNcIjogWzAsIDAuNjU1NTYsIDAuMTExNTYsIDAsIDAuNV0sXG4gICAgXCI1NFwiOiBbMCwgMC42NTU1NiwgMC4xMTE1NiwgMCwgMC41XSxcbiAgICBcIjU1XCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgIFwiNTZcIjogWzAsIDAuNjU1NTYsIDAuMTExNTYsIDAsIDAuNV0sXG4gICAgXCI1N1wiOiBbMCwgMC42NTU1NiwgMC4xMTE1NiwgMCwgMC41XSxcbiAgICBcIjU4XCI6IFswLCAwLjQ0NDQ0LCAwLjAyNTAyLCAwLCAwLjI3Nzc4XSxcbiAgICBcIjU5XCI6IFswLjEyNSwgMC40NDQ0NCwgMC4wMjUwMiwgMCwgMC4yNzc3OF0sXG4gICAgXCI2MVwiOiBbLTAuMTMsIDAuMzcsIDAuMDUwODcsIDAsIDAuNzc3NzhdLFxuICAgIFwiNjNcIjogWzAsIDAuNjk0NDQsIDAuMTE4MDksIDAsIDAuNDcyMjJdLFxuICAgIFwiNjRcIjogWzAsIDAuNjk0NDQsIDAuMDc1NTUsIDAsIDAuNjY2NjddLFxuICAgIFwiNjVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiNjZcIjogWzAsIDAuNjk0NDQsIDAuMDgyOTMsIDAsIDAuNjY2NjddLFxuICAgIFwiNjdcIjogWzAsIDAuNjk0NDQsIDAuMTE5ODMsIDAsIDAuNjM4ODldLFxuICAgIFwiNjhcIjogWzAsIDAuNjk0NDQsIDAuMDc1NTUsIDAsIDAuNzIyMjNdLFxuICAgIFwiNjlcIjogWzAsIDAuNjk0NDQsIDAuMTE5ODMsIDAsIDAuNTk3MjJdLFxuICAgIFwiNzBcIjogWzAsIDAuNjk0NDQsIDAuMTMzNzIsIDAsIDAuNTY5NDVdLFxuICAgIFwiNzFcIjogWzAsIDAuNjk0NDQsIDAuMTE5ODMsIDAsIDAuNjY2NjddLFxuICAgIFwiNzJcIjogWzAsIDAuNjk0NDQsIDAuMDgwOTQsIDAsIDAuNzA4MzRdLFxuICAgIFwiNzNcIjogWzAsIDAuNjk0NDQsIDAuMTMzNzIsIDAsIDAuMjc3NzhdLFxuICAgIFwiNzRcIjogWzAsIDAuNjk0NDQsIDAuMDgwOTQsIDAsIDAuNDcyMjJdLFxuICAgIFwiNzVcIjogWzAsIDAuNjk0NDQsIDAuMTE5ODMsIDAsIDAuNjk0NDVdLFxuICAgIFwiNzZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTQxNjddLFxuICAgIFwiNzdcIjogWzAsIDAuNjk0NDQsIDAuMDgwOTQsIDAsIDAuODc1XSxcbiAgICBcIjc4XCI6IFswLCAwLjY5NDQ0LCAwLjA4MDk0LCAwLCAwLjcwODM0XSxcbiAgICBcIjc5XCI6IFswLCAwLjY5NDQ0LCAwLjA3NTU1LCAwLCAwLjczNjExXSxcbiAgICBcIjgwXCI6IFswLCAwLjY5NDQ0LCAwLjA4MjkzLCAwLCAwLjYzODg5XSxcbiAgICBcIjgxXCI6IFswLjEyNSwgMC42OTQ0NCwgMC4wNzU1NSwgMCwgMC43MzYxMV0sXG4gICAgXCI4MlwiOiBbMCwgMC42OTQ0NCwgMC4wODI5MywgMCwgMC42NDU4NF0sXG4gICAgXCI4M1wiOiBbMCwgMC42OTQ0NCwgMC4wOTIwNSwgMCwgMC41NTU1Nl0sXG4gICAgXCI4NFwiOiBbMCwgMC42OTQ0NCwgMC4xMzM3MiwgMCwgMC42ODA1Nl0sXG4gICAgXCI4NVwiOiBbMCwgMC42OTQ0NCwgMC4wODA5NCwgMCwgMC42ODc1XSxcbiAgICBcIjg2XCI6IFswLCAwLjY5NDQ0LCAwLjE2MTUsIDAsIDAuNjY2NjddLFxuICAgIFwiODdcIjogWzAsIDAuNjk0NDQsIDAuMTYxNSwgMCwgMC45NDQ0NV0sXG4gICAgXCI4OFwiOiBbMCwgMC42OTQ0NCwgMC4xMzM3MiwgMCwgMC42NjY2N10sXG4gICAgXCI4OVwiOiBbMCwgMC42OTQ0NCwgMC4xNzI2MSwgMCwgMC42NjY2N10sXG4gICAgXCI5MFwiOiBbMCwgMC42OTQ0NCwgMC4xMTk4MywgMCwgMC42MTExMV0sXG4gICAgXCI5MVwiOiBbMC4yNSwgMC43NSwgMC4xNTk0MiwgMCwgMC4yODg4OV0sXG4gICAgXCI5M1wiOiBbMC4yNSwgMC43NSwgMC4wODcxOSwgMCwgMC4yODg4OV0sXG4gICAgXCI5NFwiOiBbMCwgMC42OTQ0NCwgMC4wNzk5LCAwLCAwLjVdLFxuICAgIFwiOTVcIjogWzAuMzUsIDAuMDk0NDQsIDAuMDg2MTYsIDAsIDAuNV0sXG4gICAgXCI5N1wiOiBbMCwgMC40NDQ0NCwgMC4wMDk4MSwgMCwgMC40ODA1Nl0sXG4gICAgXCI5OFwiOiBbMCwgMC42OTQ0NCwgMC4wMzA1NywgMCwgMC41MTY2N10sXG4gICAgXCI5OVwiOiBbMCwgMC40NDQ0NCwgMC4wODMzNiwgMCwgMC40NDQ0NV0sXG4gICAgXCIxMDBcIjogWzAsIDAuNjk0NDQsIDAuMDk0ODMsIDAsIDAuNTE2NjddLFxuICAgIFwiMTAxXCI6IFswLCAwLjQ0NDQ0LCAwLjA2Nzc4LCAwLCAwLjQ0NDQ1XSxcbiAgICBcIjEwMlwiOiBbMCwgMC42OTQ0NCwgMC4yMTcwNSwgMCwgMC4zMDU1Nl0sXG4gICAgXCIxMDNcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMTA4MzYsIDAsIDAuNV0sXG4gICAgXCIxMDRcIjogWzAsIDAuNjk0NDQsIDAuMDE3NzgsIDAsIDAuNTE2NjddLFxuICAgIFwiMTA1XCI6IFswLCAwLjY3OTM3LCAwLjA5NzE4LCAwLCAwLjIzODg5XSxcbiAgICBcIjEwNlwiOiBbMC4xOTQ0NCwgMC42NzkzNywgMC4wOTE2MiwgMCwgMC4yNjY2N10sXG4gICAgXCIxMDdcIjogWzAsIDAuNjk0NDQsIDAuMDgzMzYsIDAsIDAuNDg4ODldLFxuICAgIFwiMTA4XCI6IFswLCAwLjY5NDQ0LCAwLjA5NDgzLCAwLCAwLjIzODg5XSxcbiAgICBcIjEwOVwiOiBbMCwgMC40NDQ0NCwgMC4wMTc3OCwgMCwgMC43OTQ0NV0sXG4gICAgXCIxMTBcIjogWzAsIDAuNDQ0NDQsIDAuMDE3NzgsIDAsIDAuNTE2NjddLFxuICAgIFwiMTExXCI6IFswLCAwLjQ0NDQ0LCAwLjA2NjEzLCAwLCAwLjVdLFxuICAgIFwiMTEyXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjAzODksIDAsIDAuNTE2NjddLFxuICAgIFwiMTEzXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjA0MTY5LCAwLCAwLjUxNjY3XSxcbiAgICBcIjExNFwiOiBbMCwgMC40NDQ0NCwgMC4xMDgzNiwgMCwgMC4zNDE2N10sXG4gICAgXCIxMTVcIjogWzAsIDAuNDQ0NDQsIDAuMDc3OCwgMCwgMC4zODMzM10sXG4gICAgXCIxMTZcIjogWzAsIDAuNTcxNDMsIDAuMDcyMjUsIDAsIDAuMzYxMTFdLFxuICAgIFwiMTE3XCI6IFswLCAwLjQ0NDQ0LCAwLjA0MTY5LCAwLCAwLjUxNjY3XSxcbiAgICBcIjExOFwiOiBbMCwgMC40NDQ0NCwgMC4xMDgzNiwgMCwgMC40NjExMV0sXG4gICAgXCIxMTlcIjogWzAsIDAuNDQ0NDQsIDAuMTA4MzYsIDAsIDAuNjgzMzRdLFxuICAgIFwiMTIwXCI6IFswLCAwLjQ0NDQ0LCAwLjA5MTY5LCAwLCAwLjQ2MTExXSxcbiAgICBcIjEyMVwiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4xMDgzNiwgMCwgMC40NjExMV0sXG4gICAgXCIxMjJcIjogWzAsIDAuNDQ0NDQsIDAuMDg3NTIsIDAsIDAuNDM0NzJdLFxuICAgIFwiMTI2XCI6IFswLjM1LCAwLjMyNjU5LCAwLjA4ODI2LCAwLCAwLjVdLFxuICAgIFwiMTYwXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjE2OFwiOiBbMCwgMC42NzkzNywgMC4wNjM4NSwgMCwgMC41XSxcbiAgICBcIjE3NlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43Mzc1Ml0sXG4gICAgXCIxODRcIjogWzAuMTcwMTQsIDAsIDAsIDAsIDAuNDQ0NDVdLFxuICAgIFwiMzA1XCI6IFswLCAwLjQ0NDQ0LCAwLjA0MTY5LCAwLCAwLjIzODg5XSxcbiAgICBcIjU2N1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wNDE2OSwgMCwgMC4yNjY2N10sXG4gICAgXCI3MTBcIjogWzAsIDAuNjk0NDQsIDAuMDc5OSwgMCwgMC41XSxcbiAgICBcIjcxMVwiOiBbMCwgMC42MzE5NCwgMC4wODQzMiwgMCwgMC41XSxcbiAgICBcIjcxM1wiOiBbMCwgMC42MDg4OSwgMC4wODc3NiwgMCwgMC41XSxcbiAgICBcIjcxNFwiOiBbMCwgMC42OTQ0NCwgMC4wOTIwNSwgMCwgMC41XSxcbiAgICBcIjcxNVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjcyOFwiOiBbMCwgMC42OTQ0NCwgMC4wOTQ4MywgMCwgMC41XSxcbiAgICBcIjcyOVwiOiBbMCwgMC42NzkzNywgMC4wNzc3NCwgMCwgMC4yNzc3OF0sXG4gICAgXCI3MzBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzM3NTJdLFxuICAgIFwiNzMyXCI6IFswLCAwLjY3NjU5LCAwLjA4ODI2LCAwLCAwLjVdLFxuICAgIFwiNzMzXCI6IFswLCAwLjY5NDQ0LCAwLjA5MjA1LCAwLCAwLjVdLFxuICAgIFwiOTE1XCI6IFswLCAwLjY5NDQ0LCAwLjEzMzcyLCAwLCAwLjU0MTY3XSxcbiAgICBcIjkxNlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44MzMzNF0sXG4gICAgXCI5MjBcIjogWzAsIDAuNjk0NDQsIDAuMDc1NTUsIDAsIDAuNzc3NzhdLFxuICAgIFwiOTIzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjkyNlwiOiBbMCwgMC42OTQ0NCwgMC4xMjgxNiwgMCwgMC42NjY2N10sXG4gICAgXCI5MjhcIjogWzAsIDAuNjk0NDQsIDAuMDgwOTQsIDAsIDAuNzA4MzRdLFxuICAgIFwiOTMxXCI6IFswLCAwLjY5NDQ0LCAwLjExOTgzLCAwLCAwLjcyMjIyXSxcbiAgICBcIjkzM1wiOiBbMCwgMC42OTQ0NCwgMC4wOTAzMSwgMCwgMC43Nzc3OF0sXG4gICAgXCI5MzRcIjogWzAsIDAuNjk0NDQsIDAuMDQ2MDMsIDAsIDAuNzIyMjJdLFxuICAgIFwiOTM2XCI6IFswLCAwLjY5NDQ0LCAwLjA5MDMxLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjkzN1wiOiBbMCwgMC42OTQ0NCwgMC4wODI5MywgMCwgMC43MjIyMl0sXG4gICAgXCI4MjExXCI6IFswLCAwLjQ0NDQ0LCAwLjA4NjE2LCAwLCAwLjVdLFxuICAgIFwiODIxMlwiOiBbMCwgMC40NDQ0NCwgMC4wODYxNiwgMCwgMS4wXSxcbiAgICBcIjgyMTZcIjogWzAsIDAuNjk0NDQsIDAuMDc4MTYsIDAsIDAuMjc3NzhdLFxuICAgIFwiODIxN1wiOiBbMCwgMC42OTQ0NCwgMC4wNzgxNiwgMCwgMC4yNzc3OF0sXG4gICAgXCI4MjIwXCI6IFswLCAwLjY5NDQ0LCAwLjE0MjA1LCAwLCAwLjVdLFxuICAgIFwiODIyMVwiOiBbMCwgMC42OTQ0NCwgMC4wMDMxNiwgMCwgMC41XVxuICB9LFxuICBcIlNhbnNTZXJpZi1SZWd1bGFyXCI6IHtcbiAgICBcIjMyXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjMzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjMxOTQ1XSxcbiAgICBcIjM0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiMzVcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuODMzMzRdLFxuICAgIFwiMzZcIjogWzAuMDU1NTYsIDAuNzUsIDAsIDAsIDAuNV0sXG4gICAgXCIzN1wiOiBbMC4wNTU1NiwgMC43NSwgMCwgMCwgMC44MzMzNF0sXG4gICAgXCIzOFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43NTgzNF0sXG4gICAgXCIzOVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI0MFwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zODg4OV0sXG4gICAgXCI0MVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zODg4OV0sXG4gICAgXCI0MlwiOiBbMCwgMC43NSwgMCwgMCwgMC41XSxcbiAgICBcIjQzXCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjQ0XCI6IFswLjEyNSwgMC4wODMzMywgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI0NVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC4zMzMzM10sXG4gICAgXCI0NlwiOiBbMCwgMC4wODMzMywgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI0N1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICBcIjQ4XCI6IFswLCAwLjY1NTU2LCAwLCAwLCAwLjVdLFxuICAgIFwiNDlcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgXCI1MFwiOiBbMCwgMC42NTU1NiwgMCwgMCwgMC41XSxcbiAgICBcIjUxXCI6IFswLCAwLjY1NTU2LCAwLCAwLCAwLjVdLFxuICAgIFwiNTJcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgXCI1M1wiOiBbMCwgMC42NTU1NiwgMCwgMCwgMC41XSxcbiAgICBcIjU0XCI6IFswLCAwLjY1NTU2LCAwLCAwLCAwLjVdLFxuICAgIFwiNTVcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgXCI1NlwiOiBbMCwgMC42NTU1NiwgMCwgMCwgMC41XSxcbiAgICBcIjU3XCI6IFswLCAwLjY1NTU2LCAwLCAwLCAwLjVdLFxuICAgIFwiNThcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiNTlcIjogWzAuMTI1LCAwLjQ0NDQ0LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICBcIjYxXCI6IFstMC4xMywgMC4zNywgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI2M1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC40NzIyMl0sXG4gICAgXCI2NFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI2NVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI2NlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI2N1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42Mzg4OV0sXG4gICAgXCI2OFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43MjIyM10sXG4gICAgXCI2OVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41OTcyMl0sXG4gICAgXCI3MFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41Njk0NV0sXG4gICAgXCI3MVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI3MlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43MDgzNF0sXG4gICAgXCI3M1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI3NFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC40NzIyMl0sXG4gICAgXCI3NVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42OTQ0NV0sXG4gICAgXCI3NlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NDE2N10sXG4gICAgXCI3N1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44NzVdLFxuICAgIFwiNzhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzA4MzRdLFxuICAgIFwiNzlcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzM2MTFdLFxuICAgIFwiODBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjM4ODldLFxuICAgIFwiODFcIjogWzAuMTI1LCAwLjY5NDQ0LCAwLCAwLCAwLjczNjExXSxcbiAgICBcIjgyXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY0NTg0XSxcbiAgICBcIjgzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU1NTU2XSxcbiAgICBcIjg0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY4MDU2XSxcbiAgICBcIjg1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY4NzVdLFxuICAgIFwiODZcIjogWzAsIDAuNjk0NDQsIDAuMDEzODksIDAsIDAuNjY2NjddLFxuICAgIFwiODdcIjogWzAsIDAuNjk0NDQsIDAuMDEzODksIDAsIDAuOTQ0NDVdLFxuICAgIFwiODhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiODlcIjogWzAsIDAuNjk0NDQsIDAuMDI1LCAwLCAwLjY2NjY3XSxcbiAgICBcIjkwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjkxXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjI4ODg5XSxcbiAgICBcIjkzXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjI4ODg5XSxcbiAgICBcIjk0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiOTVcIjogWzAuMzUsIDAuMDk0NDQsIDAuMDI3NzgsIDAsIDAuNV0sXG4gICAgXCI5N1wiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC40ODA1Nl0sXG4gICAgXCI5OFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41MTY2N10sXG4gICAgXCI5OVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC40NDQ0NV0sXG4gICAgXCIxMDBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTE2NjddLFxuICAgIFwiMTAxXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICBcIjEwMlwiOiBbMCwgMC42OTQ0NCwgMC4wNjk0NCwgMCwgMC4zMDU1Nl0sXG4gICAgXCIxMDNcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMDEzODksIDAsIDAuNV0sXG4gICAgXCIxMDRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTE2NjddLFxuICAgIFwiMTA1XCI6IFswLCAwLjY3OTM3LCAwLCAwLCAwLjIzODg5XSxcbiAgICBcIjEwNlwiOiBbMC4xOTQ0NCwgMC42NzkzNywgMCwgMCwgMC4yNjY2N10sXG4gICAgXCIxMDdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNDg4ODldLFxuICAgIFwiMTA4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjIzODg5XSxcbiAgICBcIjEwOVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC43OTQ0NV0sXG4gICAgXCIxMTBcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNTE2NjddLFxuICAgIFwiMTExXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiMTEyXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjUxNjY3XSxcbiAgICBcIjExM1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMCwgMCwgMC41MTY2N10sXG4gICAgXCIxMTRcIjogWzAsIDAuNDQ0NDQsIDAuMDEzODksIDAsIDAuMzQxNjddLFxuICAgIFwiMTE1XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjM4MzMzXSxcbiAgICBcIjExNlwiOiBbMCwgMC41NzE0MywgMCwgMCwgMC4zNjExMV0sXG4gICAgXCIxMTdcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNTE2NjddLFxuICAgIFwiMTE4XCI6IFswLCAwLjQ0NDQ0LCAwLjAxMzg5LCAwLCAwLjQ2MTExXSxcbiAgICBcIjExOVwiOiBbMCwgMC40NDQ0NCwgMC4wMTM4OSwgMCwgMC42ODMzNF0sXG4gICAgXCIxMjBcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNDYxMTFdLFxuICAgIFwiMTIxXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjAxMzg5LCAwLCAwLjQ2MTExXSxcbiAgICBcIjEyMlwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC40MzQ3Ml0sXG4gICAgXCIxMjZcIjogWzAuMzUsIDAuMzI2NTksIDAsIDAsIDAuNV0sXG4gICAgXCIxNjBcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiMTY4XCI6IFswLCAwLjY3OTM3LCAwLCAwLCAwLjVdLFxuICAgIFwiMTc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICBcIjE4NFwiOiBbMC4xNzAxNCwgMCwgMCwgMCwgMC40NDQ0NV0sXG4gICAgXCIzMDVcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuMjM4ODldLFxuICAgIFwiNTY3XCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjI2NjY3XSxcbiAgICBcIjcxMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjcxMVwiOiBbMCwgMC42MzE5NCwgMCwgMCwgMC41XSxcbiAgICBcIjcxM1wiOiBbMCwgMC42MDg4OSwgMCwgMCwgMC41XSxcbiAgICBcIjcxNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjcxNVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjcyOFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICBcIjcyOVwiOiBbMCwgMC42NzkzNywgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI3MzBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiNzMyXCI6IFswLCAwLjY3NjU5LCAwLCAwLCAwLjVdLFxuICAgIFwiNzMzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiOTE1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU0MTY3XSxcbiAgICBcIjkxNlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44MzMzNF0sXG4gICAgXCI5MjBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgIFwiOTIzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjkyNlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI5MjhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzA4MzRdLFxuICAgIFwiOTMxXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcyMjIyXSxcbiAgICBcIjkzM1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI5MzRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzIyMjJdLFxuICAgIFwiOTM2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjkzN1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43MjIyMl0sXG4gICAgXCI4MjExXCI6IFswLCAwLjQ0NDQ0LCAwLjAyNzc4LCAwLCAwLjVdLFxuICAgIFwiODIxMlwiOiBbMCwgMC40NDQ0NCwgMC4wMjc3OCwgMCwgMS4wXSxcbiAgICBcIjgyMTZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgIFwiODIxN1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4yNzc3OF0sXG4gICAgXCI4MjIwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgIFwiODIyMVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XVxuICB9LFxuICBcIlNjcmlwdC1SZWd1bGFyXCI6IHtcbiAgICBcIjMyXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjY1XCI6IFswLCAwLjcsIDAuMjI5MjUsIDAsIDAuODAyNTNdLFxuICAgIFwiNjZcIjogWzAsIDAuNywgMC4wNDA4NywgMCwgMC45MDc1N10sXG4gICAgXCI2N1wiOiBbMCwgMC43LCAwLjE2ODksIDAsIDAuNjY2MTldLFxuICAgIFwiNjhcIjogWzAsIDAuNywgMC4wOTM3MSwgMCwgMC43NzQ0M10sXG4gICAgXCI2OVwiOiBbMCwgMC43LCAwLjE4NTgzLCAwLCAwLjU2MTYyXSxcbiAgICBcIjcwXCI6IFswLCAwLjcsIDAuMTM2MzQsIDAsIDAuODk1NDRdLFxuICAgIFwiNzFcIjogWzAsIDAuNywgMC4xNzMyMiwgMCwgMC42MDk2MV0sXG4gICAgXCI3MlwiOiBbMCwgMC43LCAwLjI5Njk0LCAwLCAwLjk2OTE5XSxcbiAgICBcIjczXCI6IFswLCAwLjcsIDAuMTkxODksIDAsIDAuODA5MDddLFxuICAgIFwiNzRcIjogWzAuMjc3NzgsIDAuNywgMC4xOTE4OSwgMCwgMS4wNTE1OV0sXG4gICAgXCI3NVwiOiBbMCwgMC43LCAwLjMxMjU5LCAwLCAwLjkxMzY0XSxcbiAgICBcIjc2XCI6IFswLCAwLjcsIDAuMTkxODksIDAsIDAuODczNzNdLFxuICAgIFwiNzdcIjogWzAsIDAuNywgMC4xNTk4MSwgMCwgMS4wODAzMV0sXG4gICAgXCI3OFwiOiBbMCwgMC43LCAwLjM1MjUsIDAsIDAuOTAxNV0sXG4gICAgXCI3OVwiOiBbMCwgMC43LCAwLjA4MDc4LCAwLCAwLjczNzg3XSxcbiAgICBcIjgwXCI6IFswLCAwLjcsIDAuMDgwNzgsIDAsIDEuMDEyNjJdLFxuICAgIFwiODFcIjogWzAsIDAuNywgMC4wMzMwNSwgMCwgMC44ODI4Ml0sXG4gICAgXCI4MlwiOiBbMCwgMC43LCAwLjA2MjU5LCAwLCAwLjg1XSxcbiAgICBcIjgzXCI6IFswLCAwLjcsIDAuMTkxODksIDAsIDAuODY3NjddLFxuICAgIFwiODRcIjogWzAsIDAuNywgMC4yOTA4NywgMCwgMC43NDY5N10sXG4gICAgXCI4NVwiOiBbMCwgMC43LCAwLjI1ODE1LCAwLCAwLjc5OTk2XSxcbiAgICBcIjg2XCI6IFswLCAwLjcsIDAuMjc1MjMsIDAsIDAuNjIyMDRdLFxuICAgIFwiODdcIjogWzAsIDAuNywgMC4yNzUyMywgMCwgMC44MDUzMl0sXG4gICAgXCI4OFwiOiBbMCwgMC43LCAwLjI2MDA2LCAwLCAwLjk0NDQ1XSxcbiAgICBcIjg5XCI6IFswLCAwLjcsIDAuMjkzOSwgMCwgMC43MDk2MV0sXG4gICAgXCI5MFwiOiBbMCwgMC43LCAwLjI0MDM3LCAwLCAwLjgyMTJdLFxuICAgIFwiMTYwXCI6IFswLCAwLCAwLCAwLCAwLjI1XVxuICB9LFxuICBcIlNpemUxLVJlZ3VsYXJcIjoge1xuICAgIFwiMzJcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiNDBcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDAuNDU4MzRdLFxuICAgIFwiNDFcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDAuNDU4MzRdLFxuICAgIFwiNDdcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDAuNTc3NzhdLFxuICAgIFwiOTFcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDAuNDE2NjddLFxuICAgIFwiOTJcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDAuNTc3NzhdLFxuICAgIFwiOTNcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDAuNDE2NjddLFxuICAgIFwiMTIzXCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjU4MzM0XSxcbiAgICBcIjEyNVwiOiBbMC4zNTAwMSwgMC44NSwgMCwgMCwgMC41ODMzNF0sXG4gICAgXCIxNjBcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiNzEwXCI6IFswLCAwLjcyMjIyLCAwLCAwLCAwLjU1NTU2XSxcbiAgICBcIjczMlwiOiBbMCwgMC43MjIyMiwgMCwgMCwgMC41NTU1Nl0sXG4gICAgXCI3NzBcIjogWzAsIDAuNzIyMjIsIDAsIDAsIDAuNTU1NTZdLFxuICAgIFwiNzcxXCI6IFswLCAwLjcyMjIyLCAwLCAwLCAwLjU1NTU2XSxcbiAgICBcIjgyMTRcIjogWy0wLjAwMDk5LCAwLjYwMSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4NTkzXCI6IFsxZS0wNSwgMC42LCAwLCAwLCAwLjY2NjY3XSxcbiAgICBcIjg1OTVcIjogWzFlLTA1LCAwLjYsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiODY1N1wiOiBbMWUtMDUsIDAuNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgXCI4NjU5XCI6IFsxZS0wNSwgMC42LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICBcIjg3MTlcIjogWzAuMjUwMDEsIDAuNzUsIDAsIDAsIDAuOTQ0NDVdLFxuICAgIFwiODcyMFwiOiBbMC4yNTAwMSwgMC43NSwgMCwgMCwgMC45NDQ0NV0sXG4gICAgXCI4NzIxXCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAxLjA1NTU2XSxcbiAgICBcIjg3MzBcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDEuMF0sXG4gICAgXCI4NzM5XCI6IFstMC4wMDU5OSwgMC42MDYsIDAsIDAsIDAuMzMzMzNdLFxuICAgIFwiODc0MVwiOiBbLTAuMDA1OTksIDAuNjA2LCAwLCAwLCAwLjU1NTU2XSxcbiAgICBcIjg3NDdcIjogWzAuMzA2MTIsIDAuODA1LCAwLjE5NDQ1LCAwLCAwLjQ3MjIyXSxcbiAgICBcIjg3NDhcIjogWzAuMzA2LCAwLjgwNSwgMC4xOTQ0NSwgMCwgMC40NzIyMl0sXG4gICAgXCI4NzQ5XCI6IFswLjMwNiwgMC44MDUsIDAuMTk0NDUsIDAsIDAuNDcyMjJdLFxuICAgIFwiODc1MFwiOiBbMC4zMDYxMiwgMC44MDUsIDAuMTk0NDUsIDAsIDAuNDcyMjJdLFxuICAgIFwiODg5NlwiOiBbMC4yNTAwMSwgMC43NSwgMCwgMCwgMC44MzMzNF0sXG4gICAgXCI4ODk3XCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAwLjgzMzM0XSxcbiAgICBcIjg4OThcIjogWzAuMjUwMDEsIDAuNzUsIDAsIDAsIDAuODMzMzRdLFxuICAgIFwiODg5OVwiOiBbMC4yNTAwMSwgMC43NSwgMCwgMCwgMC44MzMzNF0sXG4gICAgXCI4OTY4XCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICBcIjg5NjlcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDAuNDcyMjJdLFxuICAgIFwiODk3MFwiOiBbMC4zNTAwMSwgMC44NSwgMCwgMCwgMC40NzIyMl0sXG4gICAgXCI4OTcxXCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICBcIjkxNjhcIjogWy0wLjAwMDk5LCAwLjYwMSwgMCwgMCwgMC42NjY2N10sXG4gICAgXCIxMDIxNlwiOiBbMC4zNTAwMSwgMC44NSwgMCwgMCwgMC40NzIyMl0sXG4gICAgXCIxMDIxN1wiOiBbMC4zNTAwMSwgMC44NSwgMCwgMCwgMC40NzIyMl0sXG4gICAgXCIxMDc1MlwiOiBbMC4yNTAwMSwgMC43NSwgMCwgMCwgMS4xMTExMV0sXG4gICAgXCIxMDc1M1wiOiBbMC4yNTAwMSwgMC43NSwgMCwgMCwgMS4xMTExMV0sXG4gICAgXCIxMDc1NFwiOiBbMC4yNTAwMSwgMC43NSwgMCwgMCwgMS4xMTExMV0sXG4gICAgXCIxMDc1NlwiOiBbMC4yNTAwMSwgMC43NSwgMCwgMCwgMC44MzMzNF0sXG4gICAgXCIxMDc1OFwiOiBbMC4yNTAwMSwgMC43NSwgMCwgMCwgMC44MzMzNF1cbiAgfSxcbiAgXCJTaXplMi1SZWd1bGFyXCI6IHtcbiAgICBcIjMyXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjQwXCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjU5NzIyXSxcbiAgICBcIjQxXCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjU5NzIyXSxcbiAgICBcIjQ3XCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjgxMTExXSxcbiAgICBcIjkxXCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICBcIjkyXCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjgxMTExXSxcbiAgICBcIjkzXCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICBcIjEyM1wiOiBbMC42NTAwMiwgMS4xNSwgMCwgMCwgMC42NjY2N10sXG4gICAgXCIxMjVcIjogWzAuNjUwMDIsIDEuMTUsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiMTYwXCI6IFswLCAwLCAwLCAwLCAwLjI1XSxcbiAgICBcIjcxMFwiOiBbMCwgMC43NSwgMCwgMCwgMS4wXSxcbiAgICBcIjczMlwiOiBbMCwgMC43NSwgMCwgMCwgMS4wXSxcbiAgICBcIjc3MFwiOiBbMCwgMC43NSwgMCwgMCwgMS4wXSxcbiAgICBcIjc3MVwiOiBbMCwgMC43NSwgMCwgMCwgMS4wXSxcbiAgICBcIjg3MTlcIjogWzAuNTUwMDEsIDEuMDUsIDAsIDAsIDEuMjc3NzhdLFxuICAgIFwiODcyMFwiOiBbMC41NTAwMSwgMS4wNSwgMCwgMCwgMS4yNzc3OF0sXG4gICAgXCI4NzIxXCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjQ0NDQ1XSxcbiAgICBcIjg3MzBcIjogWzAuNjUwMDIsIDEuMTUsIDAsIDAsIDEuMF0sXG4gICAgXCI4NzQ3XCI6IFswLjg2MjI1LCAxLjM2LCAwLjQ0NDQ1LCAwLCAwLjU1NTU2XSxcbiAgICBcIjg3NDhcIjogWzAuODYyLCAxLjM2LCAwLjQ0NDQ1LCAwLCAwLjU1NTU2XSxcbiAgICBcIjg3NDlcIjogWzAuODYyLCAxLjM2LCAwLjQ0NDQ1LCAwLCAwLjU1NTU2XSxcbiAgICBcIjg3NTBcIjogWzAuODYyMjUsIDEuMzYsIDAuNDQ0NDUsIDAsIDAuNTU1NTZdLFxuICAgIFwiODg5NlwiOiBbMC41NTAwMSwgMS4wNSwgMCwgMCwgMS4xMTExMV0sXG4gICAgXCI4ODk3XCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjExMTExXSxcbiAgICBcIjg4OThcIjogWzAuNTUwMDEsIDEuMDUsIDAsIDAsIDEuMTExMTFdLFxuICAgIFwiODg5OVwiOiBbMC41NTAwMSwgMS4wNSwgMCwgMCwgMS4xMTExMV0sXG4gICAgXCI4OTY4XCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjUyNzc4XSxcbiAgICBcIjg5NjlcIjogWzAuNjUwMDIsIDEuMTUsIDAsIDAsIDAuNTI3NzhdLFxuICAgIFwiODk3MFwiOiBbMC42NTAwMiwgMS4xNSwgMCwgMCwgMC41Mjc3OF0sXG4gICAgXCI4OTcxXCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjUyNzc4XSxcbiAgICBcIjEwMjE2XCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjEwMjE3XCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjYxMTExXSxcbiAgICBcIjEwNzUyXCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjUxMTEyXSxcbiAgICBcIjEwNzUzXCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjUxMTEyXSxcbiAgICBcIjEwNzU0XCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjUxMTEyXSxcbiAgICBcIjEwNzU2XCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjExMTExXSxcbiAgICBcIjEwNzU4XCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjExMTExXVxuICB9LFxuICBcIlNpemUzLVJlZ3VsYXJcIjoge1xuICAgIFwiMzJcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiNDBcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDAuNzM2MTFdLFxuICAgIFwiNDFcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDAuNzM2MTFdLFxuICAgIFwiNDdcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDEuMDQ0NDVdLFxuICAgIFwiOTFcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDAuNTI3NzhdLFxuICAgIFwiOTJcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDEuMDQ0NDVdLFxuICAgIFwiOTNcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDAuNTI3NzhdLFxuICAgIFwiMTIzXCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjc1XSxcbiAgICBcIjEyNVwiOiBbMC45NTAwMywgMS40NSwgMCwgMCwgMC43NV0sXG4gICAgXCIxNjBcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiNzEwXCI6IFswLCAwLjc1LCAwLCAwLCAxLjQ0NDQ1XSxcbiAgICBcIjczMlwiOiBbMCwgMC43NSwgMCwgMCwgMS40NDQ0NV0sXG4gICAgXCI3NzBcIjogWzAsIDAuNzUsIDAsIDAsIDEuNDQ0NDVdLFxuICAgIFwiNzcxXCI6IFswLCAwLjc1LCAwLCAwLCAxLjQ0NDQ1XSxcbiAgICBcIjg3MzBcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDEuMF0sXG4gICAgXCI4OTY4XCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjU4MzM0XSxcbiAgICBcIjg5NjlcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDAuNTgzMzRdLFxuICAgIFwiODk3MFwiOiBbMC45NTAwMywgMS40NSwgMCwgMCwgMC41ODMzNF0sXG4gICAgXCI4OTcxXCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjU4MzM0XSxcbiAgICBcIjEwMjE2XCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjc1XSxcbiAgICBcIjEwMjE3XCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjc1XVxuICB9LFxuICBcIlNpemU0LVJlZ3VsYXJcIjoge1xuICAgIFwiMzJcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiNDBcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDAuNzkxNjddLFxuICAgIFwiNDFcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDAuNzkxNjddLFxuICAgIFwiNDdcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDEuMjc3NzhdLFxuICAgIFwiOTFcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDAuNTgzMzRdLFxuICAgIFwiOTJcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDEuMjc3NzhdLFxuICAgIFwiOTNcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDAuNTgzMzRdLFxuICAgIFwiMTIzXCI6IFsxLjI1MDAzLCAxLjc1LCAwLCAwLCAwLjgwNTU2XSxcbiAgICBcIjEyNVwiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMC44MDU1Nl0sXG4gICAgXCIxNjBcIjogWzAsIDAsIDAsIDAsIDAuMjVdLFxuICAgIFwiNzEwXCI6IFswLCAwLjgyNSwgMCwgMCwgMS44ODg5XSxcbiAgICBcIjczMlwiOiBbMCwgMC44MjUsIDAsIDAsIDEuODg4OV0sXG4gICAgXCI3NzBcIjogWzAsIDAuODI1LCAwLCAwLCAxLjg4ODldLFxuICAgIFwiNzcxXCI6IFswLCAwLjgyNSwgMCwgMCwgMS44ODg5XSxcbiAgICBcIjg3MzBcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDEuMF0sXG4gICAgXCI4OTY4XCI6IFsxLjI1MDAzLCAxLjc1LCAwLCAwLCAwLjYzODg5XSxcbiAgICBcIjg5NjlcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDAuNjM4ODldLFxuICAgIFwiODk3MFwiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMC42Mzg4OV0sXG4gICAgXCI4OTcxXCI6IFsxLjI1MDAzLCAxLjc1LCAwLCAwLCAwLjYzODg5XSxcbiAgICBcIjkxMTVcIjogWzAuNjQ1MDIsIDEuMTU1LCAwLCAwLCAwLjg3NV0sXG4gICAgXCI5MTE2XCI6IFsxZS0wNSwgMC42LCAwLCAwLCAwLjg3NV0sXG4gICAgXCI5MTE3XCI6IFswLjY0NTAyLCAxLjE1NSwgMCwgMCwgMC44NzVdLFxuICAgIFwiOTExOFwiOiBbMC42NDUwMiwgMS4xNTUsIDAsIDAsIDAuODc1XSxcbiAgICBcIjkxMTlcIjogWzFlLTA1LCAwLjYsIDAsIDAsIDAuODc1XSxcbiAgICBcIjkxMjBcIjogWzAuNjQ1MDIsIDEuMTU1LCAwLCAwLCAwLjg3NV0sXG4gICAgXCI5MTIxXCI6IFswLjY0NTAyLCAxLjE1NSwgMCwgMCwgMC42NjY2N10sXG4gICAgXCI5MTIyXCI6IFstMC4wMDA5OSwgMC42MDEsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiOTEyM1wiOiBbMC42NDUwMiwgMS4xNTUsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiOTEyNFwiOiBbMC42NDUwMiwgMS4xNTUsIDAsIDAsIDAuNjY2NjddLFxuICAgIFwiOTEyNVwiOiBbLTAuMDAwOTksIDAuNjAxLCAwLCAwLCAwLjY2NjY3XSxcbiAgICBcIjkxMjZcIjogWzAuNjQ1MDIsIDEuMTU1LCAwLCAwLCAwLjY2NjY3XSxcbiAgICBcIjkxMjdcIjogWzFlLTA1LCAwLjksIDAsIDAsIDAuODg4ODldLFxuICAgIFwiOTEyOFwiOiBbMC42NTAwMiwgMS4xNSwgMCwgMCwgMC44ODg4OV0sXG4gICAgXCI5MTI5XCI6IFswLjkwMDAxLCAwLCAwLCAwLCAwLjg4ODg5XSxcbiAgICBcIjkxMzBcIjogWzAsIDAuMywgMCwgMCwgMC44ODg4OV0sXG4gICAgXCI5MTMxXCI6IFsxZS0wNSwgMC45LCAwLCAwLCAwLjg4ODg5XSxcbiAgICBcIjkxMzJcIjogWzAuNjUwMDIsIDEuMTUsIDAsIDAsIDAuODg4ODldLFxuICAgIFwiOTEzM1wiOiBbMC45MDAwMSwgMCwgMCwgMCwgMC44ODg4OV0sXG4gICAgXCI5MTQzXCI6IFswLjg4NTAyLCAwLjkxNSwgMCwgMCwgMS4wNTU1Nl0sXG4gICAgXCIxMDIxNlwiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMC44MDU1Nl0sXG4gICAgXCIxMDIxN1wiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMC44MDU1Nl0sXG4gICAgXCI1NzM0NFwiOiBbLTAuMDA0OTksIDAuNjA1LCAwLCAwLCAxLjA1NTU2XSxcbiAgICBcIjU3MzQ1XCI6IFstMC4wMDQ5OSwgMC42MDUsIDAsIDAsIDEuMDU1NTZdLFxuICAgIFwiNTc2ODBcIjogWzAsIDAuMTIsIDAsIDAsIDAuNDVdLFxuICAgIFwiNTc2ODFcIjogWzAsIDAuMTIsIDAsIDAsIDAuNDVdLFxuICAgIFwiNTc2ODJcIjogWzAsIDAuMTIsIDAsIDAsIDAuNDVdLFxuICAgIFwiNTc2ODNcIjogWzAsIDAuMTIsIDAsIDAsIDAuNDVdXG4gIH0sXG4gIFwiVHlwZXdyaXRlci1SZWd1bGFyXCI6IHtcbiAgICBcIjMyXCI6IFswLCAwLCAwLCAwLCAwLjUyNV0sXG4gICAgXCIzM1wiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiMzRcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjM1XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCIzNlwiOiBbMC4wODMzMywgMC42OTQ0NCwgMCwgMCwgMC41MjVdLFxuICAgIFwiMzdcIjogWzAuMDgzMzMsIDAuNjk0NDQsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjM4XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCIzOVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNDBcIjogWzAuMDgzMzMsIDAuNjk0NDQsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjQxXCI6IFswLjA4MzMzLCAwLjY5NDQ0LCAwLCAwLCAwLjUyNV0sXG4gICAgXCI0MlwiOiBbMCwgMC41MjA4MywgMCwgMCwgMC41MjVdLFxuICAgIFwiNDNcIjogWy0wLjA4MDU2LCAwLjUzMDU1LCAwLCAwLCAwLjUyNV0sXG4gICAgXCI0NFwiOiBbMC4xMzg4OSwgMC4xMjUsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjQ1XCI6IFstMC4wODA1NiwgMC41MzA1NSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNDZcIjogWzAsIDAuMTI1LCAwLCAwLCAwLjUyNV0sXG4gICAgXCI0N1wiOiBbMC4wODMzMywgMC42OTQ0NCwgMCwgMCwgMC41MjVdLFxuICAgIFwiNDhcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjQ5XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI1MFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNTFcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjUyXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI1M1wiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNTRcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjU1XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI1NlwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNTdcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjU4XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjUyNV0sXG4gICAgXCI1OVwiOiBbMC4xMzg4OSwgMC40MzA1NiwgMCwgMCwgMC41MjVdLFxuICAgIFwiNjBcIjogWy0wLjA1NTU2LCAwLjU1NTU2LCAwLCAwLCAwLjUyNV0sXG4gICAgXCI2MVwiOiBbLTAuMTk1NDksIDAuNDE1NjIsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjYyXCI6IFstMC4wNTU1NiwgMC41NTU1NiwgMCwgMCwgMC41MjVdLFxuICAgIFwiNjNcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjY0XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI2NVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNjZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjY3XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI2OFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNjlcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjcwXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI3MVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNzJcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjczXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI3NFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNzVcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjc2XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI3N1wiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNzhcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjc5XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI4MFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiODFcIjogWzAuMTM4ODksIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjgyXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI4M1wiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiODRcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjg1XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI4NlwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiODdcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjg4XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI4OVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiOTBcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjkxXCI6IFswLjA4MzMzLCAwLjY5NDQ0LCAwLCAwLCAwLjUyNV0sXG4gICAgXCI5MlwiOiBbMC4wODMzMywgMC42OTQ0NCwgMCwgMCwgMC41MjVdLFxuICAgIFwiOTNcIjogWzAuMDgzMzMsIDAuNjk0NDQsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjk0XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI5NVwiOiBbMC4wOTUxNCwgMCwgMCwgMCwgMC41MjVdLFxuICAgIFwiOTZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjk3XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjUyNV0sXG4gICAgXCI5OFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiOTlcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjEwMFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiMTAxXCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjUyNV0sXG4gICAgXCIxMDJcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjEwM1wiOiBbMC4yMjIyMiwgMC40MzA1NiwgMCwgMCwgMC41MjVdLFxuICAgIFwiMTA0XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCIxMDVcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjEwNlwiOiBbMC4yMjIyMiwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiMTA3XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCIxMDhcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjEwOVwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41MjVdLFxuICAgIFwiMTEwXCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjUyNV0sXG4gICAgXCIxMTFcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjExMlwiOiBbMC4yMjIyMiwgMC40MzA1NiwgMCwgMCwgMC41MjVdLFxuICAgIFwiMTEzXCI6IFswLjIyMjIyLCAwLjQzMDU2LCAwLCAwLCAwLjUyNV0sXG4gICAgXCIxMTRcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjExNVwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41MjVdLFxuICAgIFwiMTE2XCI6IFswLCAwLjU1MzU4LCAwLCAwLCAwLjUyNV0sXG4gICAgXCIxMTdcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjExOFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41MjVdLFxuICAgIFwiMTE5XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjUyNV0sXG4gICAgXCIxMjBcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjEyMVwiOiBbMC4yMjIyMiwgMC40MzA1NiwgMCwgMCwgMC41MjVdLFxuICAgIFwiMTIyXCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjUyNV0sXG4gICAgXCIxMjNcIjogWzAuMDgzMzMsIDAuNjk0NDQsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjEyNFwiOiBbMC4wODMzMywgMC42OTQ0NCwgMCwgMCwgMC41MjVdLFxuICAgIFwiMTI1XCI6IFswLjA4MzMzLCAwLjY5NDQ0LCAwLCAwLCAwLjUyNV0sXG4gICAgXCIxMjZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjEyN1wiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiMTYwXCI6IFswLCAwLCAwLCAwLCAwLjUyNV0sXG4gICAgXCIxNzZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjE4NFwiOiBbMC4xOTQ0NSwgMCwgMCwgMCwgMC41MjVdLFxuICAgIFwiMzA1XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjUyNV0sXG4gICAgXCI1NjdcIjogWzAuMjIyMjIsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjcxMVwiOiBbMCwgMC41NjU5NywgMCwgMCwgMC41MjVdLFxuICAgIFwiNzEzXCI6IFswLCAwLjU2NTU1LCAwLCAwLCAwLjUyNV0sXG4gICAgXCI3MTRcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjcxNVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNzI4XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI3MzBcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjc3MFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiNzcxXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI3NzZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjkxNVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiOTE2XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI5MjBcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjkyM1wiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiOTI2XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI5MjhcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjkzMVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiOTMzXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI5MzRcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICBcIjkzNlwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgIFwiOTM3XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI4MjE2XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI4MjE3XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI4MjQyXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgXCI5MjUxXCI6IFswLjExMTExLCAwLjIxOTQ0LCAwLCAwLCAwLjUyNV1cbiAgfVxufTtcblxuLyoqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgbWV0cmljcyByZWdhcmRpbmcgZm9udHMgYW5kIGluZGl2aWR1YWwgc3ltYm9scy4gVGhlIHNpZ21hXG4gKiBhbmQgeGkgdmFyaWFibGVzLCBhcyB3ZWxsIGFzIHRoZSBtZXRyaWNNYXAgbWFwIGNvbnRhaW4gZGF0YSBleHRyYWN0ZWQgZnJvbVxuICogVGVYLCBUZVggZm9udCBtZXRyaWNzLCBhbmQgdGhlIFRURiBmaWxlcy4gVGhlc2UgZGF0YSBhcmUgdGhlbiBleHBvc2VkIHZpYSB0aGVcbiAqIGBtZXRyaWNzYCB2YXJpYWJsZSBhbmQgdGhlIGdldENoYXJhY3Rlck1ldHJpY3MgZnVuY3Rpb24uXG4gKi9cbi8vIEluIFRlWCwgdGhlcmUgYXJlIGFjdHVhbGx5IHRocmVlIHNldHMgb2YgZGltZW5zaW9ucywgb25lIGZvciBlYWNoIG9mXG4vLyB0ZXh0c3R5bGUgKHNpemUgaW5kZXggNSBhbmQgaGlnaGVyOiA+PTlwdCksIHNjcmlwdHN0eWxlIChzaXplIGluZGV4IDMgYW5kIDQ6XG4vLyA3LThwdCksIGFuZCBzY3JpcHRzY3JpcHRzdHlsZSAoc2l6ZSBpbmRleCAxIGFuZCAyOiA1LTZwdCkuICBUaGVzZSBhcmVcbi8vIHByb3ZpZGVkIGluIHRoZSBhcnJheXMgYmVsb3csIGluIHRoYXQgb3JkZXIuXG4vL1xuLy8gVGhlIGZvbnQgbWV0cmljcyBhcmUgc3RvcmVkIGluIGZvbnRzIGNtc3kxMCwgY21zeTcsIGFuZCBjbXN5NSByZXNwZWN0aXZlbHkuXG4vLyBUaGlzIHdhcyBkZXRlcm1pbmVkIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBzY3JpcHQ6XG4vL1xuLy8gICAgIGxhdGV4IC1pbnRlcmFjdGlvbj1ub25zdG9wbW9kZSBcXFxuLy8gICAgICdcXGRvY3VtZW50Y2xhc3N7YXJ0aWNsZX1cXHVzZXBhY2thZ2V7YW1zbWF0aH1cXGJlZ2lue2RvY3VtZW50fScgXFxcbi8vICAgICAnJGEkIFxcZXhwYW5kYWZ0ZXJcXHNob3dcXHRoZVxcdGV4dGZvbnQyJyBcXFxuLy8gICAgICdcXGV4cGFuZGFmdGVyXFxzaG93XFx0aGVcXHNjcmlwdGZvbnQyJyBcXFxuLy8gICAgICdcXGV4cGFuZGFmdGVyXFxzaG93XFx0aGVcXHNjcmlwdHNjcmlwdGZvbnQyJyBcXFxuLy8gICAgICdcXHN0b3AnXG4vL1xuLy8gVGhlIG1ldHJpY3MgdGhlbXNlbHZlcyB3ZXJlIHJldHJpZXZlZCB1c2luZyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOlxuLy9cbi8vICAgICB0ZnRvcGwgY21zeTEwXG4vLyAgICAgdGZ0b3BsIGNtc3k3XG4vLyAgICAgdGZ0b3BsIGNtc3k1XG4vL1xuLy8gVGhlIG91dHB1dCBvZiBlYWNoIG9mIHRoZXNlIGNvbW1hbmRzIGlzIHF1aXRlIGxlbmd0aHkuICBUaGUgb25seSBwYXJ0IHdlXG4vLyBjYXJlIGFib3V0IGlzIHRoZSBGT05URElNRU4gc2VjdGlvbi4gRWFjaCB2YWx1ZSBpcyBtZWFzdXJlZCBpbiBFTXMuXG52YXIgc2lnbWFzQW5kWGlzID0ge1xuICBzbGFudDogWzAuMjUwLCAwLjI1MCwgMC4yNTBdLFxuICAvLyBzaWdtYTFcbiAgc3BhY2U6IFswLjAwMCwgMC4wMDAsIDAuMDAwXSxcbiAgLy8gc2lnbWEyXG4gIHN0cmV0Y2g6IFswLjAwMCwgMC4wMDAsIDAuMDAwXSxcbiAgLy8gc2lnbWEzXG4gIHNocmluazogWzAuMDAwLCAwLjAwMCwgMC4wMDBdLFxuICAvLyBzaWdtYTRcbiAgeEhlaWdodDogWzAuNDMxLCAwLjQzMSwgMC40MzFdLFxuICAvLyBzaWdtYTVcbiAgcXVhZDogWzEuMDAwLCAxLjE3MSwgMS40NzJdLFxuICAvLyBzaWdtYTZcbiAgZXh0cmFTcGFjZTogWzAuMDAwLCAwLjAwMCwgMC4wMDBdLFxuICAvLyBzaWdtYTdcbiAgbnVtMTogWzAuNjc3LCAwLjczMiwgMC45MjVdLFxuICAvLyBzaWdtYThcbiAgbnVtMjogWzAuMzk0LCAwLjM4NCwgMC4zODddLFxuICAvLyBzaWdtYTlcbiAgbnVtMzogWzAuNDQ0LCAwLjQ3MSwgMC41MDRdLFxuICAvLyBzaWdtYTEwXG4gIGRlbm9tMTogWzAuNjg2LCAwLjc1MiwgMS4wMjVdLFxuICAvLyBzaWdtYTExXG4gIGRlbm9tMjogWzAuMzQ1LCAwLjM0NCwgMC41MzJdLFxuICAvLyBzaWdtYTEyXG4gIHN1cDE6IFswLjQxMywgMC41MDMsIDAuNTA0XSxcbiAgLy8gc2lnbWExM1xuICBzdXAyOiBbMC4zNjMsIDAuNDMxLCAwLjQwNF0sXG4gIC8vIHNpZ21hMTRcbiAgc3VwMzogWzAuMjg5LCAwLjI4NiwgMC4yOTRdLFxuICAvLyBzaWdtYTE1XG4gIHN1YjE6IFswLjE1MCwgMC4xNDMsIDAuMjAwXSxcbiAgLy8gc2lnbWExNlxuICBzdWIyOiBbMC4yNDcsIDAuMjg2LCAwLjQwMF0sXG4gIC8vIHNpZ21hMTdcbiAgc3VwRHJvcDogWzAuMzg2LCAwLjM1MywgMC40OTRdLFxuICAvLyBzaWdtYTE4XG4gIHN1YkRyb3A6IFswLjA1MCwgMC4wNzEsIDAuMTAwXSxcbiAgLy8gc2lnbWExOVxuICBkZWxpbTE6IFsyLjM5MCwgMS43MDAsIDEuOTgwXSxcbiAgLy8gc2lnbWEyMFxuICBkZWxpbTI6IFsxLjAxMCwgMS4xNTcsIDEuNDIwXSxcbiAgLy8gc2lnbWEyMVxuICBheGlzSGVpZ2h0OiBbMC4yNTAsIDAuMjUwLCAwLjI1MF0sXG4gIC8vIHNpZ21hMjJcbiAgLy8gVGhlc2UgZm9udCBtZXRyaWNzIGFyZSBleHRyYWN0ZWQgZnJvbSBUZVggYnkgdXNpbmcgdGZ0b3BsIG9uIGNtZXgxMC50Zm07XG4gIC8vIHRoZXkgY29ycmVzcG9uZCB0byB0aGUgZm9udCBwYXJhbWV0ZXJzIG9mIHRoZSBleHRlbnNpb24gZm9udHMgKGZhbWlseSAzKS5cbiAgLy8gU2VlIHRoZSBUZVhib29rLCBwYWdlIDQ0MS4gSW4gQU1TVGVYLCB0aGUgZXh0ZW5zaW9uIGZvbnRzIHNjYWxlOyB0b1xuICAvLyBtYXRjaCBjbWV4Nywgd2UnZCB1c2UgY21leDcudGZtIHZhbHVlcyBmb3Igc2NyaXB0IGFuZCBzY3JpcHRzY3JpcHRcbiAgLy8gdmFsdWVzLlxuICBkZWZhdWx0UnVsZVRoaWNrbmVzczogWzAuMDQsIDAuMDQ5LCAwLjA0OV0sXG4gIC8vIHhpODsgY21leDc6IDAuMDQ5XG4gIGJpZ09wU3BhY2luZzE6IFswLjExMSwgMC4xMTEsIDAuMTExXSxcbiAgLy8geGk5XG4gIGJpZ09wU3BhY2luZzI6IFswLjE2NiwgMC4xNjYsIDAuMTY2XSxcbiAgLy8geGkxMFxuICBiaWdPcFNwYWNpbmczOiBbMC4yLCAwLjIsIDAuMl0sXG4gIC8vIHhpMTFcbiAgYmlnT3BTcGFjaW5nNDogWzAuNiwgMC42MTEsIDAuNjExXSxcbiAgLy8geGkxMjsgY21leDc6IDAuNjExXG4gIGJpZ09wU3BhY2luZzU6IFswLjEsIDAuMTQzLCAwLjE0M10sXG4gIC8vIHhpMTM7IGNtZXg3OiAwLjE0M1xuICAvLyBUaGUgXFxzcXJ0IHJ1bGUgd2lkdGggaXMgdGFrZW4gZnJvbSB0aGUgaGVpZ2h0IG9mIHRoZSBzdXJkIGNoYXJhY3Rlci5cbiAgLy8gU2luY2Ugd2UgdXNlIHRoZSBzYW1lIGZvbnQgYXQgYWxsIHNpemVzLCB0aGlzIHRoaWNrbmVzcyBkb2Vzbid0IHNjYWxlLlxuICBzcXJ0UnVsZVRoaWNrbmVzczogWzAuMDQsIDAuMDQsIDAuMDRdLFxuICAvLyBUaGlzIHZhbHVlIGRldGVybWluZXMgaG93IGxhcmdlIGEgcHQgaXMsIGZvciBtZXRyaWNzIHdoaWNoIGFyZSBkZWZpbmVkXG4gIC8vIGluIHRlcm1zIG9mIHB0cy5cbiAgLy8gVGhpcyB2YWx1ZSBpcyBhbHNvIHVzZWQgaW4ga2F0ZXguc2NzczsgaWYgeW91IGNoYW5nZSBpdCBtYWtlIHN1cmUgdGhlXG4gIC8vIHZhbHVlcyBtYXRjaC5cbiAgcHRQZXJFbTogWzEwLjAsIDEwLjAsIDEwLjBdLFxuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiBhZGphY2VudCBgfGAgY29sdW1ucyBpbiBhbiBhcnJheSBkZWZpbml0aW9uLiBGcm9tXG4gIC8vIGBcXHNob3d0aGVcXGRvdWJsZXJ1bGVzZXBgIGluIExhVGVYLiBFcXVhbHMgMi4wIC8gcHRQZXJFbS5cbiAgZG91YmxlUnVsZVNlcDogWzAuMiwgMC4yLCAwLjJdLFxuICAvLyBUaGUgd2lkdGggb2Ygc2VwYXJhdG9yIGxpbmVzIGluIHthcnJheX0gZW52aXJvbm1lbnRzLiBGcm9tXG4gIC8vIGBcXHNob3d0aGVcXGFycmF5cnVsZXdpZHRoYCBpbiBMYVRlWC4gRXF1YWxzIDAuNCAvIHB0UGVyRW0uXG4gIGFycmF5UnVsZVdpZHRoOiBbMC4wNCwgMC4wNCwgMC4wNF0sXG4gIC8vIFR3byB2YWx1ZXMgZnJvbSBMYVRlWCBzb3VyY2UyZTpcbiAgZmJveHNlcDogWzAuMywgMC4zLCAwLjNdLFxuICAvLyAgICAgICAgMyBwdCAvIHB0UGVyRW1cbiAgZmJveHJ1bGU6IFswLjA0LCAwLjA0LCAwLjA0XSAvLyAwLjQgcHQgLyBwdFBlckVtXG5cbn07IC8vIFRoaXMgbWFwIGNvbnRhaW5zIGEgbWFwcGluZyBmcm9tIGZvbnQgbmFtZSBhbmQgY2hhcmFjdGVyIGNvZGUgdG8gY2hhcmFjdGVyXG4vLyBzaG91bGQgaGF2ZSBMYXRpbi0xIGFuZCBDeXJpbGxpYyBjaGFyYWN0ZXJzLCBidXQgbWF5IG5vdCBkZXBlbmRpbmcgb24gdGhlXG4vLyBvcGVyYXRpbmcgc3lzdGVtLiAgVGhlIG1ldHJpY3MgZG8gbm90IGFjY291bnQgZm9yIGV4dHJhIGhlaWdodCBmcm9tIHRoZVxuLy8gYWNjZW50cy4gIEluIHRoZSBjYXNlIG9mIEN5cmlsbGljIGNoYXJhY3RlcnMgd2hpY2ggaGF2ZSBib3RoIGFzY2VuZGVycyBhbmRcbi8vIGRlc2NlbmRlcnMgd2UgcHJlZmVyIGFwcHJveGltYXRpb25zIHdpdGggYXNjZW5kZXJzLCBwcmltYXJpbHkgdG8gcHJldmVudFxuLy8gdGhlIGZyYWN0aW9uIGJhciBvciByb290IGxpbmUgZnJvbSBpbnRlcnNlY3RpbmcgdGhlIGdseXBoLlxuLy8gVE9ETyhrZXZpbmIpIGFsbG93IHVuaW9uIG9mIG11bHRpcGxlIGdseXBoIG1ldHJpY3MgZm9yIGJldHRlciBhY2N1cmFjeS5cblxudmFyIGV4dHJhQ2hhcmFjdGVyTWFwID0ge1xuICAvLyBMYXRpbi0xXG4gICfDhSc6ICdBJyxcbiAgJ8OQJzogJ0QnLFxuICAnw54nOiAnbycsXG4gICfDpSc6ICdhJyxcbiAgJ8OwJzogJ2QnLFxuICAnw74nOiAnbycsXG4gIC8vIEN5cmlsbGljXG4gICfQkCc6ICdBJyxcbiAgJ9CRJzogJ0InLFxuICAn0JInOiAnQicsXG4gICfQkyc6ICdGJyxcbiAgJ9CUJzogJ0EnLFxuICAn0JUnOiAnRScsXG4gICfQlic6ICdLJyxcbiAgJ9CXJzogJzMnLFxuICAn0JgnOiAnTicsXG4gICfQmSc6ICdOJyxcbiAgJ9CaJzogJ0snLFxuICAn0JsnOiAnTicsXG4gICfQnCc6ICdNJyxcbiAgJ9CdJzogJ0gnLFxuICAn0J4nOiAnTycsXG4gICfQnyc6ICdOJyxcbiAgJ9CgJzogJ1AnLFxuICAn0KEnOiAnQycsXG4gICfQoic6ICdUJyxcbiAgJ9CjJzogJ3knLFxuICAn0KQnOiAnTycsXG4gICfQpSc6ICdYJyxcbiAgJ9CmJzogJ1UnLFxuICAn0KcnOiAnaCcsXG4gICfQqCc6ICdXJyxcbiAgJ9CpJzogJ1cnLFxuICAn0KonOiAnQicsXG4gICfQqyc6ICdYJyxcbiAgJ9CsJzogJ0InLFxuICAn0K0nOiAnMycsXG4gICfQric6ICdYJyxcbiAgJ9CvJzogJ1InLFxuICAn0LAnOiAnYScsXG4gICfQsSc6ICdiJyxcbiAgJ9CyJzogJ2EnLFxuICAn0LMnOiAncicsXG4gICfQtCc6ICd5JyxcbiAgJ9C1JzogJ2UnLFxuICAn0LYnOiAnbScsXG4gICfQtyc6ICdlJyxcbiAgJ9C4JzogJ24nLFxuICAn0LknOiAnbicsXG4gICfQuic6ICduJyxcbiAgJ9C7JzogJ24nLFxuICAn0LwnOiAnbScsXG4gICfQvSc6ICduJyxcbiAgJ9C+JzogJ28nLFxuICAn0L8nOiAnbicsXG4gICfRgCc6ICdwJyxcbiAgJ9GBJzogJ2MnLFxuICAn0YInOiAnbycsXG4gICfRgyc6ICd5JyxcbiAgJ9GEJzogJ2InLFxuICAn0YUnOiAneCcsXG4gICfRhic6ICduJyxcbiAgJ9GHJzogJ24nLFxuICAn0YgnOiAndycsXG4gICfRiSc6ICd3JyxcbiAgJ9GKJzogJ2EnLFxuICAn0YsnOiAnbScsXG4gICfRjCc6ICdhJyxcbiAgJ9GNJzogJ2UnLFxuICAn0Y4nOiAnbScsXG4gICfRjyc6ICdyJ1xufTtcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFkZHMgbmV3IGZvbnQgbWV0cmljcyB0byBkZWZhdWx0IG1ldHJpY01hcFxuICogSXQgY2FuIGFsc28gb3ZlcnJpZGUgZXhpc3RpbmcgbWV0cmljc1xuICovXG5mdW5jdGlvbiBzZXRGb250TWV0cmljcyhmb250TmFtZSwgbWV0cmljcykge1xuICBmb250TWV0cmljc0RhdGFbZm9udE5hbWVdID0gbWV0cmljcztcbn1cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBsb29raW5nIHVwIGluZm9ybWF0aW9uIGluIHRoZVxuICogbWV0cmljTWFwIHRhYmxlLiBJdCB0YWtlcyBhIGNoYXJhY3RlciBhcyBhIHN0cmluZywgYW5kIGEgZm9udC5cbiAqXG4gKiBOb3RlOiB0aGUgYHdpZHRoYCBwcm9wZXJ0eSBtYXkgYmUgdW5kZWZpbmVkIGlmIGZvbnRNZXRyaWNzRGF0YS5qcyB3YXNuJ3RcbiAqIGJ1aWx0IHVzaW5nIGBNYWtlIGV4dGVuZGVkX21ldHJpY3NgLlxuICovXG5cbmZ1bmN0aW9uIGdldENoYXJhY3Rlck1ldHJpY3MoY2hhcmFjdGVyLCBmb250LCBtb2RlKSB7XG4gIGlmICghZm9udE1ldHJpY3NEYXRhW2ZvbnRdKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRm9udCBtZXRyaWNzIG5vdCBmb3VuZCBmb3IgZm9udDogXCIgKyBmb250ICsgXCIuXCIpO1xuICB9XG5cbiAgdmFyIGNoID0gY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCk7XG4gIHZhciBtZXRyaWNzID0gZm9udE1ldHJpY3NEYXRhW2ZvbnRdW2NoXTtcblxuICBpZiAoIW1ldHJpY3MgJiYgY2hhcmFjdGVyWzBdIGluIGV4dHJhQ2hhcmFjdGVyTWFwKSB7XG4gICAgY2ggPSBleHRyYUNoYXJhY3Rlck1hcFtjaGFyYWN0ZXJbMF1dLmNoYXJDb2RlQXQoMCk7XG4gICAgbWV0cmljcyA9IGZvbnRNZXRyaWNzRGF0YVtmb250XVtjaF07XG4gIH1cblxuICBpZiAoIW1ldHJpY3MgJiYgbW9kZSA9PT0gJ3RleHQnKSB7XG4gICAgLy8gV2UgZG9uJ3QgdHlwaWNhbGx5IGhhdmUgZm9udCBtZXRyaWNzIGZvciBBc2lhbiBzY3JpcHRzLlxuICAgIC8vIEJ1dCBzaW5jZSB3ZSBzdXBwb3J0IHRoZW0gaW4gdGV4dCBtb2RlLCB3ZSBuZWVkIHRvIHJldHVyblxuICAgIC8vIHNvbWUgc29ydCBvZiBtZXRyaWNzLlxuICAgIC8vIFNvIGlmIHRoZSBjaGFyYWN0ZXIgaXMgaW4gYSBzY3JpcHQgd2Ugc3VwcG9ydCBidXQgd2VcbiAgICAvLyBkb24ndCBoYXZlIG1ldHJpY3MgZm9yIGl0LCBqdXN0IHVzZSB0aGUgbWV0cmljcyBmb3JcbiAgICAvLyB0aGUgTGF0aW4gY2FwaXRhbCBsZXR0ZXIgTS4gVGhpcyBpcyBjbG9zZSBlbm91Z2ggYmVjYXVzZVxuICAgIC8vIHdlIChjdXJyZW50bHkpIG9ubHkgY2FyZSBhYm91dCB0aGUgaGVpZ2h0IG9mIHRoZSBnbHlwaFxuICAgIC8vIG5vdCBpdHMgd2lkdGguXG4gICAgaWYgKHN1cHBvcnRlZENvZGVwb2ludChjaCkpIHtcbiAgICAgIG1ldHJpY3MgPSBmb250TWV0cmljc0RhdGFbZm9udF1bNzddOyAvLyA3NyBpcyB0aGUgY2hhcmNvZGUgZm9yICdNJ1xuICAgIH1cbiAgfVxuXG4gIGlmIChtZXRyaWNzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRlcHRoOiBtZXRyaWNzWzBdLFxuICAgICAgaGVpZ2h0OiBtZXRyaWNzWzFdLFxuICAgICAgaXRhbGljOiBtZXRyaWNzWzJdLFxuICAgICAgc2tldzogbWV0cmljc1szXSxcbiAgICAgIHdpZHRoOiBtZXRyaWNzWzRdXG4gICAgfTtcbiAgfVxufVxudmFyIGZvbnRNZXRyaWNzQnlTaXplSW5kZXggPSB7fTtcbi8qKlxuICogR2V0IHRoZSBmb250IG1ldHJpY3MgZm9yIGEgZ2l2ZW4gc2l6ZS5cbiAqL1xuXG5mdW5jdGlvbiBnZXRHbG9iYWxNZXRyaWNzKHNpemUpIHtcbiAgdmFyIHNpemVJbmRleDtcblxuICBpZiAoc2l6ZSA+PSA1KSB7XG4gICAgc2l6ZUluZGV4ID0gMDtcbiAgfSBlbHNlIGlmIChzaXplID49IDMpIHtcbiAgICBzaXplSW5kZXggPSAxO1xuICB9IGVsc2Uge1xuICAgIHNpemVJbmRleCA9IDI7XG4gIH1cblxuICBpZiAoIWZvbnRNZXRyaWNzQnlTaXplSW5kZXhbc2l6ZUluZGV4XSkge1xuICAgIHZhciBtZXRyaWNzID0gZm9udE1ldHJpY3NCeVNpemVJbmRleFtzaXplSW5kZXhdID0ge1xuICAgICAgY3NzRW1QZXJNdTogc2lnbWFzQW5kWGlzLnF1YWRbc2l6ZUluZGV4XSAvIDE4XG4gICAgfTtcblxuICAgIGZvciAodmFyIGtleSBpbiBzaWdtYXNBbmRYaXMpIHtcbiAgICAgIGlmIChzaWdtYXNBbmRYaXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBtZXRyaWNzW2tleV0gPSBzaWdtYXNBbmRYaXNba2V5XVtzaXplSW5kZXhdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmb250TWV0cmljc0J5U2l6ZUluZGV4W3NpemVJbmRleF07XG59XG5cbi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcHRpb25zIHRoYXQgdGhlIFBhcnNlciBjYXJyaWVzXG4gKiBhcm91bmQgd2l0aCBpdCB3aGlsZSBwYXJzaW5nLiBEYXRhIGlzIGhlbGQgaW4gYW4gYE9wdGlvbnNgIG9iamVjdCwgYW5kIHdoZW5cbiAqIHJlY3Vyc2luZywgYSBuZXcgYE9wdGlvbnNgIG9iamVjdCBjYW4gYmUgY3JlYXRlZCB3aXRoIHRoZSBgLndpdGgqYCBhbmRcbiAqIGAucmVzZXRgIGZ1bmN0aW9ucy5cbiAqL1xudmFyIHNpemVTdHlsZU1hcCA9IFsvLyBFYWNoIGVsZW1lbnQgY29udGFpbnMgW3RleHRzaXplLCBzY3JpcHRzaXplLCBzY3JpcHRzY3JpcHRzaXplXS5cbi8vIFRoZSBzaXplIG1hcHBpbmdzIGFyZSB0YWtlbiBmcm9tIFRlWCB3aXRoIFxcbm9ybWFsc2l6ZT0xMHB0LlxuWzEsIDEsIDFdLCAvLyBzaXplMTogWzUsIDUsIDVdICAgICAgICAgICAgICBcXHRpbnlcblsyLCAxLCAxXSwgLy8gc2l6ZTI6IFs2LCA1LCA1XVxuWzMsIDEsIDFdLCAvLyBzaXplMzogWzcsIDUsIDVdICAgICAgICAgICAgICBcXHNjcmlwdHNpemVcbls0LCAyLCAxXSwgLy8gc2l6ZTQ6IFs4LCA2LCA1XSAgICAgICAgICAgICAgXFxmb290bm90ZXNpemVcbls1LCAyLCAxXSwgLy8gc2l6ZTU6IFs5LCA2LCA1XSAgICAgICAgICAgICAgXFxzbWFsbFxuWzYsIDMsIDFdLCAvLyBzaXplNjogWzEwLCA3LCA1XSAgICAgICAgICAgICBcXG5vcm1hbHNpemVcbls3LCA0LCAyXSwgLy8gc2l6ZTc6IFsxMiwgOCwgNl0gICAgICAgICAgICAgXFxsYXJnZVxuWzgsIDYsIDNdLCAvLyBzaXplODogWzE0LjQsIDEwLCA3XSAgICAgICAgICBcXExhcmdlXG5bOSwgNywgNl0sIC8vIHNpemU5OiBbMTcuMjgsIDEyLCAxMF0gICAgICAgIFxcTEFSR0VcblsxMCwgOCwgN10sIC8vIHNpemUxMDogWzIwLjc0LCAxNC40LCAxMl0gICAgIFxcaHVnZVxuWzExLCAxMCwgOV0gLy8gc2l6ZTExOiBbMjQuODgsIDIwLjc0LCAxNy4yOF0gXFxIVUdFXG5dO1xudmFyIHNpemVNdWx0aXBsaWVycyA9IFsvLyBmb250TWV0cmljcy5qczpnZXRHbG9iYWxNZXRyaWNzIGFsc28gdXNlcyBzaXplIGluZGV4ZXMsIHNvIGlmXG4vLyB5b3UgY2hhbmdlIHNpemUgaW5kZXhlcywgY2hhbmdlIHRoYXQgZnVuY3Rpb24uXG4wLjUsIDAuNiwgMC43LCAwLjgsIDAuOSwgMS4wLCAxLjIsIDEuNDQsIDEuNzI4LCAyLjA3NCwgMi40ODhdO1xuXG52YXIgc2l6ZUF0U3R5bGUgPSBmdW5jdGlvbiBzaXplQXRTdHlsZShzaXplLCBzdHlsZSkge1xuICByZXR1cm4gc3R5bGUuc2l6ZSA8IDIgPyBzaXplIDogc2l6ZVN0eWxlTWFwW3NpemUgLSAxXVtzdHlsZS5zaXplIC0gMV07XG59OyAvLyBJbiB0aGVzZSB0eXBlcywgXCJcIiAoZW1wdHkgc3RyaW5nKSBtZWFucyBcIm5vIGNoYW5nZVwiLlxuXG5cbi8qKlxuICogVGhpcyBpcyB0aGUgbWFpbiBvcHRpb25zIGNsYXNzLiBJdCBjb250YWlucyB0aGUgY3VycmVudCBzdHlsZSwgc2l6ZSwgY29sb3IsXG4gKiBhbmQgZm9udC5cbiAqXG4gKiBPcHRpb25zIG9iamVjdHMgc2hvdWxkIG5vdCBiZSBtb2RpZmllZC4gVG8gY3JlYXRlIGEgbmV3IE9wdGlvbnMgd2l0aFxuICogZGlmZmVyZW50IHByb3BlcnRpZXMsIGNhbGwgYSBgLmhhdmluZypgIG1ldGhvZC5cbiAqL1xuY2xhc3MgT3B0aW9ucyB7XG4gIC8vIEEgZm9udCBmYW1pbHkgYXBwbGllcyB0byBhIGdyb3VwIG9mIGZvbnRzIChpLmUuIFNhbnNTZXJpZiksIHdoaWxlIGEgZm9udFxuICAvLyByZXByZXNlbnRzIGEgc3BlY2lmaWMgZm9udCAoaS5lLiBTYW5zU2VyaWYgQm9sZCkuXG4gIC8vIFNlZTogaHR0cHM6Ly90ZXguc3RhY2tleGNoYW5nZS5jb20vcXVlc3Rpb25zLzIyMzUwL2RpZmZlcmVuY2UtYmV0d2Vlbi10ZXh0cm0tYW5kLW1hdGhybVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBzaXplIGluZGV4LlxuICAgKi9cbiAgY29uc3RydWN0b3IoZGF0YSkge1xuICAgIHRoaXMuc3R5bGUgPSB2b2lkIDA7XG4gICAgdGhpcy5jb2xvciA9IHZvaWQgMDtcbiAgICB0aGlzLnNpemUgPSB2b2lkIDA7XG4gICAgdGhpcy50ZXh0U2l6ZSA9IHZvaWQgMDtcbiAgICB0aGlzLnBoYW50b20gPSB2b2lkIDA7XG4gICAgdGhpcy5mb250ID0gdm9pZCAwO1xuICAgIHRoaXMuZm9udEZhbWlseSA9IHZvaWQgMDtcbiAgICB0aGlzLmZvbnRXZWlnaHQgPSB2b2lkIDA7XG4gICAgdGhpcy5mb250U2hhcGUgPSB2b2lkIDA7XG4gICAgdGhpcy5zaXplTXVsdGlwbGllciA9IHZvaWQgMDtcbiAgICB0aGlzLm1heFNpemUgPSB2b2lkIDA7XG4gICAgdGhpcy5taW5SdWxlVGhpY2tuZXNzID0gdm9pZCAwO1xuICAgIHRoaXMuX2ZvbnRNZXRyaWNzID0gdm9pZCAwO1xuICAgIHRoaXMuc3R5bGUgPSBkYXRhLnN0eWxlO1xuICAgIHRoaXMuY29sb3IgPSBkYXRhLmNvbG9yO1xuICAgIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZSB8fCBPcHRpb25zLkJBU0VTSVpFO1xuICAgIHRoaXMudGV4dFNpemUgPSBkYXRhLnRleHRTaXplIHx8IHRoaXMuc2l6ZTtcbiAgICB0aGlzLnBoYW50b20gPSAhIWRhdGEucGhhbnRvbTtcbiAgICB0aGlzLmZvbnQgPSBkYXRhLmZvbnQgfHwgXCJcIjtcbiAgICB0aGlzLmZvbnRGYW1pbHkgPSBkYXRhLmZvbnRGYW1pbHkgfHwgXCJcIjtcbiAgICB0aGlzLmZvbnRXZWlnaHQgPSBkYXRhLmZvbnRXZWlnaHQgfHwgJyc7XG4gICAgdGhpcy5mb250U2hhcGUgPSBkYXRhLmZvbnRTaGFwZSB8fCAnJztcbiAgICB0aGlzLnNpemVNdWx0aXBsaWVyID0gc2l6ZU11bHRpcGxpZXJzW3RoaXMuc2l6ZSAtIDFdO1xuICAgIHRoaXMubWF4U2l6ZSA9IGRhdGEubWF4U2l6ZTtcbiAgICB0aGlzLm1pblJ1bGVUaGlja25lc3MgPSBkYXRhLm1pblJ1bGVUaGlja25lc3M7XG4gICAgdGhpcy5fZm9udE1ldHJpY3MgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgYSBuZXcgb3B0aW9ucyBvYmplY3Qgd2l0aCB0aGUgc2FtZSBwcm9wZXJ0aWVzIGFzIFwidGhpc1wiLiAgUHJvcGVydGllc1xuICAgKiBmcm9tIFwiZXh0ZW5zaW9uXCIgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIG5ldyBvcHRpb25zIG9iamVjdC5cbiAgICovXG5cblxuICBleHRlbmQoZXh0ZW5zaW9uKSB7XG4gICAgdmFyIGRhdGEgPSB7XG4gICAgICBzdHlsZTogdGhpcy5zdHlsZSxcbiAgICAgIHNpemU6IHRoaXMuc2l6ZSxcbiAgICAgIHRleHRTaXplOiB0aGlzLnRleHRTaXplLFxuICAgICAgY29sb3I6IHRoaXMuY29sb3IsXG4gICAgICBwaGFudG9tOiB0aGlzLnBoYW50b20sXG4gICAgICBmb250OiB0aGlzLmZvbnQsXG4gICAgICBmb250RmFtaWx5OiB0aGlzLmZvbnRGYW1pbHksXG4gICAgICBmb250V2VpZ2h0OiB0aGlzLmZvbnRXZWlnaHQsXG4gICAgICBmb250U2hhcGU6IHRoaXMuZm9udFNoYXBlLFxuICAgICAgbWF4U2l6ZTogdGhpcy5tYXhTaXplLFxuICAgICAgbWluUnVsZVRoaWNrbmVzczogdGhpcy5taW5SdWxlVGhpY2tuZXNzXG4gICAgfTtcblxuICAgIGZvciAodmFyIGtleSBpbiBleHRlbnNpb24pIHtcbiAgICAgIGlmIChleHRlbnNpb24uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBkYXRhW2tleV0gPSBleHRlbnNpb25ba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE9wdGlvbnMoZGF0YSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybiBhbiBvcHRpb25zIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBzdHlsZS4gSWYgYHRoaXMuc3R5bGUgPT09IHN0eWxlYCxcbiAgICogcmV0dXJucyBgdGhpc2AuXG4gICAqL1xuXG5cbiAgaGF2aW5nU3R5bGUoc3R5bGUpIHtcbiAgICBpZiAodGhpcy5zdHlsZSA9PT0gc3R5bGUpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgICBzdHlsZTogc3R5bGUsXG4gICAgICAgIHNpemU6IHNpemVBdFN0eWxlKHRoaXMudGV4dFNpemUsIHN0eWxlKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gb3B0aW9ucyBvYmplY3Qgd2l0aCBhIGNyYW1wZWQgdmVyc2lvbiBvZiB0aGUgY3VycmVudCBzdHlsZS4gSWZcbiAgICogdGhlIGN1cnJlbnQgc3R5bGUgaXMgY3JhbXBlZCwgcmV0dXJucyBgdGhpc2AuXG4gICAqL1xuXG5cbiAgaGF2aW5nQ3JhbXBlZFN0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLmhhdmluZ1N0eWxlKHRoaXMuc3R5bGUuY3JhbXAoKSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybiBhbiBvcHRpb25zIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBzaXplIGFuZCBpbiBhdCBsZWFzdCBgXFx0ZXh0c3R5bGVgLlxuICAgKiBSZXR1cm5zIGB0aGlzYCBpZiBhcHByb3ByaWF0ZS5cbiAgICovXG5cblxuICBoYXZpbmdTaXplKHNpemUpIHtcbiAgICBpZiAodGhpcy5zaXplID09PSBzaXplICYmIHRoaXMudGV4dFNpemUgPT09IHNpemUpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgICBzdHlsZTogdGhpcy5zdHlsZS50ZXh0KCksXG4gICAgICAgIHNpemU6IHNpemUsXG4gICAgICAgIHRleHRTaXplOiBzaXplLFxuICAgICAgICBzaXplTXVsdGlwbGllcjogc2l6ZU11bHRpcGxpZXJzW3NpemUgLSAxXVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBMaWtlIGB0aGlzLmhhdmluZ1NpemUoQkFTRVNJWkUpLmhhdmluZ1N0eWxlKHN0eWxlKWAuIElmIGBzdHlsZWAgaXMgb21pdHRlZCxcbiAgICogY2hhbmdlcyB0byBhdCBsZWFzdCBgXFx0ZXh0c3R5bGVgLlxuICAgKi9cblxuXG4gIGhhdmluZ0Jhc2VTdHlsZShzdHlsZSkge1xuICAgIHN0eWxlID0gc3R5bGUgfHwgdGhpcy5zdHlsZS50ZXh0KCk7XG4gICAgdmFyIHdhbnRTaXplID0gc2l6ZUF0U3R5bGUoT3B0aW9ucy5CQVNFU0laRSwgc3R5bGUpO1xuXG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gd2FudFNpemUgJiYgdGhpcy50ZXh0U2l6ZSA9PT0gT3B0aW9ucy5CQVNFU0laRSAmJiB0aGlzLnN0eWxlID09PSBzdHlsZSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgc2l6ZTogd2FudFNpemVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBlZmZlY3Qgb2Ygc2l6aW5nIGNoYW5nZXMgc3VjaCBhcyBcXEh1Z2UuXG4gICAqIEtlZXAgdGhlIGVmZmVjdCBvZiB0aGUgY3VycmVudCBzdHlsZSwgc3VjaCBhcyBcXHNjcmlwdHN0eWxlLlxuICAgKi9cblxuXG4gIGhhdmluZ0Jhc2VTaXppbmcoKSB7XG4gICAgdmFyIHNpemU7XG5cbiAgICBzd2l0Y2ggKHRoaXMuc3R5bGUuaWQpIHtcbiAgICAgIGNhc2UgNDpcbiAgICAgIGNhc2UgNTpcbiAgICAgICAgc2l6ZSA9IDM7IC8vIG5vcm1hbHNpemUgaW4gc2NyaXB0c3R5bGVcblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSA2OlxuICAgICAgY2FzZSA3OlxuICAgICAgICBzaXplID0gMTsgLy8gbm9ybWFsc2l6ZSBpbiBzY3JpcHRzY3JpcHRzdHlsZVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBzaXplID0gNjtcbiAgICAgIC8vIG5vcm1hbHNpemUgaW4gdGV4dHN0eWxlIG9yIGRpc3BsYXlzdHlsZVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBzdHlsZTogdGhpcy5zdHlsZS50ZXh0KCksXG4gICAgICBzaXplOiBzaXplXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBvcHRpb25zIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBjb2xvci5cbiAgICovXG5cblxuICB3aXRoQ29sb3IoY29sb3IpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgY29sb3I6IGNvbG9yXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBvcHRpb25zIG9iamVjdCB3aXRoIFwicGhhbnRvbVwiIHNldCB0byB0cnVlLlxuICAgKi9cblxuXG4gIHdpdGhQaGFudG9tKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBwaGFudG9tOiB0cnVlXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgb3B0aW9ucyBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gbWF0aCBmb250IG9yIG9sZCB0ZXh0IGZvbnQuXG4gICAqIEB0eXBlIHtbdHlwZV19XG4gICAqL1xuXG5cbiAgd2l0aEZvbnQoZm9udCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBmb250XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBvcHRpb25zIG9iamVjdHMgd2l0aCB0aGUgZ2l2ZW4gZm9udEZhbWlseS5cbiAgICovXG5cblxuICB3aXRoVGV4dEZvbnRGYW1pbHkoZm9udEZhbWlseSkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBmb250RmFtaWx5LFxuICAgICAgZm9udDogXCJcIlxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG9wdGlvbnMgb2JqZWN0IHdpdGggdGhlIGdpdmVuIGZvbnQgd2VpZ2h0XG4gICAqL1xuXG5cbiAgd2l0aFRleHRGb250V2VpZ2h0KGZvbnRXZWlnaHQpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgZm9udFdlaWdodCxcbiAgICAgIGZvbnQ6IFwiXCJcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBvcHRpb25zIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBmb250IHdlaWdodFxuICAgKi9cblxuXG4gIHdpdGhUZXh0Rm9udFNoYXBlKGZvbnRTaGFwZSkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBmb250U2hhcGUsXG4gICAgICBmb250OiBcIlwiXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgQ1NTIHNpemluZyBjbGFzc2VzIHJlcXVpcmVkIHRvIHN3aXRjaCBmcm9tIGVuY2xvc2luZyBvcHRpb25zXG4gICAqIGBvbGRPcHRpb25zYCB0byBgdGhpc2AuIFJldHVybnMgYW4gYXJyYXkgb2YgY2xhc3Nlcy5cbiAgICovXG5cblxuICBzaXppbmdDbGFzc2VzKG9sZE9wdGlvbnMpIHtcbiAgICBpZiAob2xkT3B0aW9ucy5zaXplICE9PSB0aGlzLnNpemUpIHtcbiAgICAgIHJldHVybiBbXCJzaXppbmdcIiwgXCJyZXNldC1zaXplXCIgKyBvbGRPcHRpb25zLnNpemUsIFwic2l6ZVwiICsgdGhpcy5zaXplXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBDU1Mgc2l6aW5nIGNsYXNzZXMgcmVxdWlyZWQgdG8gc3dpdGNoIHRvIHRoZSBiYXNlIHNpemUuIExpa2VcbiAgICogYHRoaXMuaGF2aW5nU2l6ZShCQVNFU0laRSkuc2l6aW5nQ2xhc3Nlcyh0aGlzKWAuXG4gICAqL1xuXG5cbiAgYmFzZVNpemluZ0NsYXNzZXMoKSB7XG4gICAgaWYgKHRoaXMuc2l6ZSAhPT0gT3B0aW9ucy5CQVNFU0laRSkge1xuICAgICAgcmV0dXJuIFtcInNpemluZ1wiLCBcInJlc2V0LXNpemVcIiArIHRoaXMuc2l6ZSwgXCJzaXplXCIgKyBPcHRpb25zLkJBU0VTSVpFXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBmb250IG1ldHJpY3MgZm9yIHRoaXMgc2l6ZS5cbiAgICovXG5cblxuICBmb250TWV0cmljcygpIHtcbiAgICBpZiAoIXRoaXMuX2ZvbnRNZXRyaWNzKSB7XG4gICAgICB0aGlzLl9mb250TWV0cmljcyA9IGdldEdsb2JhbE1ldHJpY3ModGhpcy5zaXplKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZm9udE1ldHJpY3M7XG4gIH1cbiAgLyoqXG4gICAqIEdldHMgdGhlIENTUyBjb2xvciBvZiB0aGUgY3VycmVudCBvcHRpb25zIG9iamVjdFxuICAgKi9cblxuXG4gIGdldENvbG9yKCkge1xuICAgIGlmICh0aGlzLnBoYW50b20pIHtcbiAgICAgIHJldHVybiBcInRyYW5zcGFyZW50XCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbG9yO1xuICAgIH1cbiAgfVxuXG59XG5cbk9wdGlvbnMuQkFTRVNJWkUgPSA2O1xuXG4vKipcbiAqIFRoaXMgZmlsZSBkb2VzIGNvbnZlcnNpb24gYmV0d2VlbiB1bml0cy4gIEluIHBhcnRpY3VsYXIsIGl0IHByb3ZpZGVzXG4gKiBjYWxjdWxhdGVTaXplIHRvIGNvbnZlcnQgb3RoZXIgdW5pdHMgaW50byBlbXMuXG4gKi9cbi8vIFRodXMsIG11bHRpcGx5aW5nIGEgbGVuZ3RoIGJ5IHRoaXMgbnVtYmVyIGNvbnZlcnRzIHRoZSBsZW5ndGggZnJvbSB1bml0c1xuLy8gaW50byBwdHMuICBEaXZpZGluZyB0aGUgcmVzdWx0IGJ5IHB0UGVyRW0gZ2l2ZXMgdGhlIG51bWJlciBvZiBlbXNcbi8vICphc3N1bWluZyogYSBmb250IHNpemUgb2YgcHRQZXJFbSAobm9ybWFsIHNpemUsIG5vcm1hbCBzdHlsZSkuXG5cbnZhciBwdFBlclVuaXQgPSB7XG4gIC8vIGh0dHBzOi8vZW4ud2lraWJvb2tzLm9yZy93aWtpL0xhVGVYL0xlbmd0aHMgYW5kXG4gIC8vIGh0dHBzOi8vdGV4LnN0YWNrZXhjaGFuZ2UuY29tL2EvODI2M1xuICBcInB0XCI6IDEsXG4gIC8vIFRlWCBwb2ludFxuICBcIm1tXCI6IDcyMjcgLyAyNTQwLFxuICAvLyBtaWxsaW1ldGVyXG4gIFwiY21cIjogNzIyNyAvIDI1NCxcbiAgLy8gY2VudGltZXRlclxuICBcImluXCI6IDcyLjI3LFxuICAvLyBpbmNoXG4gIFwiYnBcIjogODAzIC8gODAwLFxuICAvLyBiaWcgKFBvc3RTY3JpcHQpIHBvaW50c1xuICBcInBjXCI6IDEyLFxuICAvLyBwaWNhXG4gIFwiZGRcIjogMTIzOCAvIDExNTcsXG4gIC8vIGRpZG90XG4gIFwiY2NcIjogMTQ4NTYgLyAxMTU3LFxuICAvLyBjaWNlcm8gKDEyIGRpZG90KVxuICBcIm5kXCI6IDY4NSAvIDY0MixcbiAgLy8gbmV3IGRpZG90XG4gIFwibmNcIjogMTM3MCAvIDEwNyxcbiAgLy8gbmV3IGNpY2VybyAoMTIgbmV3IGRpZG90KVxuICBcInNwXCI6IDEgLyA2NTUzNixcbiAgLy8gc2NhbGVkIHBvaW50IChUZVgncyBpbnRlcm5hbCBzbWFsbGVzdCB1bml0KVxuICAvLyBodHRwczovL3RleC5zdGFja2V4Y2hhbmdlLmNvbS9hLzQxMzcxXG4gIFwicHhcIjogODAzIC8gODAwIC8vIFxccGRmcHhkaW1lbiBkZWZhdWx0cyB0byAxIGJwIGluIHBkZlRlWCBhbmQgTHVhVGVYXG5cbn07IC8vIERpY3Rpb25hcnkgb2YgcmVsYXRpdmUgdW5pdHMsIGZvciBmYXN0IHZhbGlkaXR5IHRlc3RpbmcuXG5cbnZhciByZWxhdGl2ZVVuaXQgPSB7XG4gIFwiZXhcIjogdHJ1ZSxcbiAgXCJlbVwiOiB0cnVlLFxuICBcIm11XCI6IHRydWVcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNwZWNpZmllZCB1bml0IChlaXRoZXIgYSBzdHJpbmcgZGVmaW5pbmcgdGhlIHVuaXRcbiAqIG9yIGEgXCJzaXplXCIgcGFyc2Ugbm9kZSBjb250YWluaW5nIGEgdW5pdCBmaWVsZCkgaXMgdmFsaWQuXG4gKi9cbnZhciB2YWxpZFVuaXQgPSBmdW5jdGlvbiB2YWxpZFVuaXQodW5pdCkge1xuICBpZiAodHlwZW9mIHVuaXQgIT09IFwic3RyaW5nXCIpIHtcbiAgICB1bml0ID0gdW5pdC51bml0O1xuICB9XG5cbiAgcmV0dXJuIHVuaXQgaW4gcHRQZXJVbml0IHx8IHVuaXQgaW4gcmVsYXRpdmVVbml0IHx8IHVuaXQgPT09IFwiZXhcIjtcbn07XG4vKlxuICogQ29udmVydCBhIFwic2l6ZVwiIHBhcnNlIG5vZGUgKHdpdGggbnVtZXJpYyBcIm51bWJlclwiIGFuZCBzdHJpbmcgXCJ1bml0XCIgZmllbGRzLFxuICogYXMgcGFyc2VkIGJ5IGZ1bmN0aW9ucy5qcyBhcmdUeXBlIFwic2l6ZVwiKSBpbnRvIGEgQ1NTIGVtIHZhbHVlIGZvciB0aGVcbiAqIGN1cnJlbnQgc3R5bGUvc2NhbGUuICBgb3B0aW9uc2AgZ2l2ZXMgdGhlIGN1cnJlbnQgb3B0aW9ucy5cbiAqL1xuXG52YXIgY2FsY3VsYXRlU2l6ZSA9IGZ1bmN0aW9uIGNhbGN1bGF0ZVNpemUoc2l6ZVZhbHVlLCBvcHRpb25zKSB7XG4gIHZhciBzY2FsZTtcblxuICBpZiAoc2l6ZVZhbHVlLnVuaXQgaW4gcHRQZXJVbml0KSB7XG4gICAgLy8gQWJzb2x1dGUgdW5pdHNcbiAgICBzY2FsZSA9IHB0UGVyVW5pdFtzaXplVmFsdWUudW5pdF0gLy8gQ29udmVydCB1bml0IHRvIHB0XG4gICAgLyBvcHRpb25zLmZvbnRNZXRyaWNzKCkucHRQZXJFbSAvLyBDb252ZXJ0IHB0IHRvIENTUyBlbVxuICAgIC8gb3B0aW9ucy5zaXplTXVsdGlwbGllcjsgLy8gVW5zY2FsZSB0byBtYWtlIGFic29sdXRlIHVuaXRzXG4gIH0gZWxzZSBpZiAoc2l6ZVZhbHVlLnVuaXQgPT09IFwibXVcIikge1xuICAgIC8vIGBtdWAgdW5pdHMgc2NhbGUgd2l0aCBzY3JpcHRzdHlsZS9zY3JpcHRzY3JpcHRzdHlsZS5cbiAgICBzY2FsZSA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5jc3NFbVBlck11O1xuICB9IGVsc2Uge1xuICAgIC8vIE90aGVyIHJlbGF0aXZlIHVuaXRzIGFsd2F5cyByZWZlciB0byB0aGUgKnRleHRzdHlsZSogZm9udFxuICAgIC8vIGluIHRoZSBjdXJyZW50IHNpemUuXG4gICAgdmFyIHVuaXRPcHRpb25zO1xuXG4gICAgaWYgKG9wdGlvbnMuc3R5bGUuaXNUaWdodCgpKSB7XG4gICAgICAvLyBpc1RpZ2h0KCkgbWVhbnMgY3VycmVudCBzdHlsZSBpcyBzY3JpcHQvc2NyaXB0c2NyaXB0LlxuICAgICAgdW5pdE9wdGlvbnMgPSBvcHRpb25zLmhhdmluZ1N0eWxlKG9wdGlvbnMuc3R5bGUudGV4dCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5pdE9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH0gLy8gVE9ETzogSW4gVGVYIHRoZXNlIHVuaXRzIGFyZSByZWxhdGl2ZSB0byB0aGUgcXVhZCBvZiB0aGUgY3VycmVudFxuICAgIC8vICp0ZXh0KiBmb250LCBlLmcuIGNtcjEwLiBLYVRlWCBpbnN0ZWFkIHVzZXMgdmFsdWVzIGZyb20gdGhlXG4gICAgLy8gY29tcGFyYWJseS1zaXplZCAqQ29tcHV0ZXIgTW9kZXJuIHN5bWJvbCogZm9udC4gQXQgMTBwdCwgdGhlc2VcbiAgICAvLyBtYXRjaC4gQXQgN3B0IGFuZCA1cHQsIHRoZXkgZGlmZmVyOiBjbXI3PTEuMTM4ODk0LCBjbXN5Nz0xLjE3MDY0MTtcbiAgICAvLyBjbXI1PTEuMzYxMTMzLCBjbXN5NT0xLjQ3MjI0MS4gQ29uc2lkZXIgJFxcc2NyaXB0c2l6ZSBhXFxrZXJuMWVtYiQuXG4gICAgLy8gVGVYIFxcc2hvd2xpc3RzIHNob3dzIGEga2VybiBvZiAxLjEzODg5ICogZm9udHNpemU7XG4gICAgLy8gS2FUZVggc2hvd3MgYSBrZXJuIG9mIDEuMTcxICogZm9udHNpemUuXG5cblxuICAgIGlmIChzaXplVmFsdWUudW5pdCA9PT0gXCJleFwiKSB7XG4gICAgICBzY2FsZSA9IHVuaXRPcHRpb25zLmZvbnRNZXRyaWNzKCkueEhlaWdodDtcbiAgICB9IGVsc2UgaWYgKHNpemVWYWx1ZS51bml0ID09PSBcImVtXCIpIHtcbiAgICAgIHNjYWxlID0gdW5pdE9wdGlvbnMuZm9udE1ldHJpY3MoKS5xdWFkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkludmFsaWQgdW5pdDogJ1wiICsgc2l6ZVZhbHVlLnVuaXQgKyBcIidcIik7XG4gICAgfVxuXG4gICAgaWYgKHVuaXRPcHRpb25zICE9PSBvcHRpb25zKSB7XG4gICAgICBzY2FsZSAqPSB1bml0T3B0aW9ucy5zaXplTXVsdGlwbGllciAvIG9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIE1hdGgubWluKHNpemVWYWx1ZS5udW1iZXIgKiBzY2FsZSwgb3B0aW9ucy5tYXhTaXplKTtcbn07XG4vKipcbiAqIFJvdW5kIGBuYCB0byA0IGRlY2ltYWwgcGxhY2VzLCBvciB0byB0aGUgbmVhcmVzdCAxLzEwLDAwMHRoIGVtLiBTZWVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9LYVRlWC9LYVRlWC9wdWxsLzI0NjAuXG4gKi9cblxudmFyIG1ha2VFbSA9IGZ1bmN0aW9uIG1ha2VFbShuKSB7XG4gIHJldHVybiArbi50b0ZpeGVkKDQpICsgXCJlbVwiO1xufTtcblxuLyoqXG4gKiBUaGVzZSBvYmplY3RzIHN0b3JlIHRoZSBkYXRhIGFib3V0IHRoZSBET00gbm9kZXMgd2UgY3JlYXRlLCBhcyB3ZWxsIGFzIHNvbWVcbiAqIGV4dHJhIGRhdGEuIFRoZXkgY2FuIHRoZW4gYmUgdHJhbnNmb3JtZWQgaW50byByZWFsIERPTSBub2RlcyB3aXRoIHRoZVxuICogYHRvTm9kZWAgZnVuY3Rpb24gb3IgSFRNTCBtYXJrdXAgdXNpbmcgYHRvTWFya3VwYC4gVGhleSBhcmUgdXNlZnVsIGZvciBib3RoXG4gKiBzdG9yaW5nIGV4dHJhIHByb3BlcnRpZXMgb24gdGhlIG5vZGVzLCBhcyB3ZWxsIGFzIHByb3ZpZGluZyBhIHdheSB0byBlYXNpbHlcbiAqIHdvcmsgd2l0aCB0aGUgRE9NLlxuICpcbiAqIFNpbWlsYXIgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggTWF0aE1MIG5vZGVzIGV4aXN0IGluIG1hdGhNTFRyZWUuanMuXG4gKlxuICogVE9ETzogcmVmYWN0b3IgYHNwYW5gIGFuZCBgYW5jaG9yYCBpbnRvIGNvbW1vbiBzdXBlcmNsYXNzIHdoZW5cbiAqIHRhcmdldCBlbnZpcm9ubWVudHMgc3VwcG9ydCBjbGFzcyBpbmhlcml0YW5jZVxuICovXG5cbi8qKlxuICogQ3JlYXRlIGFuIEhUTUwgY2xhc3NOYW1lIGJhc2VkIG9uIGEgbGlzdCBvZiBjbGFzc2VzLiBJbiBhZGRpdGlvbiB0byBqb2luaW5nXG4gKiB3aXRoIHNwYWNlcywgd2UgYWxzbyByZW1vdmUgZW1wdHkgY2xhc3Nlcy5cbiAqL1xudmFyIGNyZWF0ZUNsYXNzID0gZnVuY3Rpb24gY3JlYXRlQ2xhc3MoY2xhc3Nlcykge1xuICByZXR1cm4gY2xhc3Nlcy5maWx0ZXIoY2xzID0+IGNscykuam9pbihcIiBcIik7XG59O1xuXG52YXIgaW5pdE5vZGUgPSBmdW5jdGlvbiBpbml0Tm9kZShjbGFzc2VzLCBvcHRpb25zLCBzdHlsZSkge1xuICB0aGlzLmNsYXNzZXMgPSBjbGFzc2VzIHx8IFtdO1xuICB0aGlzLmF0dHJpYnV0ZXMgPSB7fTtcbiAgdGhpcy5oZWlnaHQgPSAwO1xuICB0aGlzLmRlcHRoID0gMDtcbiAgdGhpcy5tYXhGb250U2l6ZSA9IDA7XG4gIHRoaXMuc3R5bGUgPSBzdHlsZSB8fCB7fTtcblxuICBpZiAob3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLnN0eWxlLmlzVGlnaHQoKSkge1xuICAgICAgdGhpcy5jbGFzc2VzLnB1c2goXCJtdGlnaHRcIik7XG4gICAgfVxuXG4gICAgdmFyIGNvbG9yID0gb3B0aW9ucy5nZXRDb2xvcigpO1xuXG4gICAgaWYgKGNvbG9yKSB7XG4gICAgICB0aGlzLnN0eWxlLmNvbG9yID0gY29sb3I7XG4gICAgfVxuICB9XG59O1xuLyoqXG4gKiBDb252ZXJ0IGludG8gYW4gSFRNTCBub2RlXG4gKi9cblxuXG52YXIgdG9Ob2RlID0gZnVuY3Rpb24gdG9Ob2RlKHRhZ05hbWUpIHtcbiAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOyAvLyBBcHBseSB0aGUgY2xhc3NcblxuICBub2RlLmNsYXNzTmFtZSA9IGNyZWF0ZUNsYXNzKHRoaXMuY2xhc3Nlcyk7IC8vIEFwcGx5IGlubGluZSBzdHlsZXNcblxuICBmb3IgKHZhciBzdHlsZSBpbiB0aGlzLnN0eWxlKSB7XG4gICAgaWYgKHRoaXMuc3R5bGUuaGFzT3duUHJvcGVydHkoc3R5bGUpKSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lIEZsb3cgZG9lc24ndCBzZWVtIHRvIHVuZGVyc3RhbmQgc3Bhbi5zdHlsZSdzIHR5cGUuXG4gICAgICBub2RlLnN0eWxlW3N0eWxlXSA9IHRoaXMuc3R5bGVbc3R5bGVdO1xuICAgIH1cbiAgfSAvLyBBcHBseSBhdHRyaWJ1dGVzXG5cblxuICBmb3IgKHZhciBhdHRyIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoYXR0cikpIHtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKGF0dHIsIHRoaXMuYXR0cmlidXRlc1thdHRyXSk7XG4gICAgfVxuICB9IC8vIEFwcGVuZCB0aGUgY2hpbGRyZW4sIGFsc28gYXMgSFRNTCBub2Rlc1xuXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgbm9kZS5hcHBlbmRDaGlsZCh0aGlzLmNoaWxkcmVuW2ldLnRvTm9kZSgpKTtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufTtcbi8qKlxuICogQ29udmVydCBpbnRvIGFuIEhUTUwgbWFya3VwIHN0cmluZ1xuICovXG5cblxudmFyIHRvTWFya3VwID0gZnVuY3Rpb24gdG9NYXJrdXAodGFnTmFtZSkge1xuICB2YXIgbWFya3VwID0gXCI8XCIgKyB0YWdOYW1lOyAvLyBBZGQgdGhlIGNsYXNzXG5cbiAgaWYgKHRoaXMuY2xhc3Nlcy5sZW5ndGgpIHtcbiAgICBtYXJrdXAgKz0gXCIgY2xhc3M9XFxcIlwiICsgdXRpbHMuZXNjYXBlKGNyZWF0ZUNsYXNzKHRoaXMuY2xhc3NlcykpICsgXCJcXFwiXCI7XG4gIH1cblxuICB2YXIgc3R5bGVzID0gXCJcIjsgLy8gQWRkIHRoZSBzdHlsZXMsIGFmdGVyIGh5cGhlbmF0aW9uXG5cbiAgZm9yICh2YXIgc3R5bGUgaW4gdGhpcy5zdHlsZSkge1xuICAgIGlmICh0aGlzLnN0eWxlLmhhc093blByb3BlcnR5KHN0eWxlKSkge1xuICAgICAgc3R5bGVzICs9IHV0aWxzLmh5cGhlbmF0ZShzdHlsZSkgKyBcIjpcIiArIHRoaXMuc3R5bGVbc3R5bGVdICsgXCI7XCI7XG4gICAgfVxuICB9XG5cbiAgaWYgKHN0eWxlcykge1xuICAgIG1hcmt1cCArPSBcIiBzdHlsZT1cXFwiXCIgKyB1dGlscy5lc2NhcGUoc3R5bGVzKSArIFwiXFxcIlwiO1xuICB9IC8vIEFkZCB0aGUgYXR0cmlidXRlc1xuXG5cbiAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KGF0dHIpKSB7XG4gICAgICBtYXJrdXAgKz0gXCIgXCIgKyBhdHRyICsgXCI9XFxcIlwiICsgdXRpbHMuZXNjYXBlKHRoaXMuYXR0cmlidXRlc1thdHRyXSkgKyBcIlxcXCJcIjtcbiAgICB9XG4gIH1cblxuICBtYXJrdXAgKz0gXCI+XCI7IC8vIEFkZCB0aGUgbWFya3VwIG9mIHRoZSBjaGlsZHJlbiwgYWxzbyBhcyBtYXJrdXBcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICBtYXJrdXAgKz0gdGhpcy5jaGlsZHJlbltpXS50b01hcmt1cCgpO1xuICB9XG5cbiAgbWFya3VwICs9IFwiPC9cIiArIHRhZ05hbWUgKyBcIj5cIjtcbiAgcmV0dXJuIG1hcmt1cDtcbn07IC8vIE1ha2luZyB0aGUgdHlwZSBiZWxvdyBleGFjdCB3aXRoIGFsbCBvcHRpb25hbCBmaWVsZHMgZG9lc24ndCB3b3JrIGR1ZSB0b1xuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svZmxvdy9pc3N1ZXMvNDU4MlxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svZmxvdy9pc3N1ZXMvNTY4OFxuLy8gSG93ZXZlciwgc2luY2UgKmFsbCogZmllbGRzIGFyZSBvcHRpb25hbCwgJFNoYXBlPD4gd29ya3MgYXMgc3VnZ2VzdGVkIGluIDU2ODhcbi8vIGFib3ZlLlxuLy8gVGhpcyB0eXBlIGRvZXMgbm90IGluY2x1ZGUgYWxsIENTUyBwcm9wZXJ0aWVzLiBBZGRpdGlvbmFsIHByb3BlcnRpZXMgc2hvdWxkXG4vLyBiZSBhZGRlZCBhcyBuZWVkZWQuXG5cblxuLyoqXG4gKiBUaGlzIG5vZGUgcmVwcmVzZW50cyBhIHNwYW4gbm9kZSwgd2l0aCBhIGNsYXNzTmFtZSwgYSBsaXN0IG9mIGNoaWxkcmVuLCBhbmRcbiAqIGFuIGlubGluZSBzdHlsZS4gSXQgYWxzbyBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBpdHMgaGVpZ2h0LCBkZXB0aCwgYW5kXG4gKiBtYXhGb250U2l6ZS5cbiAqXG4gKiBSZXByZXNlbnRzIHR3byB0eXBlcyB3aXRoIGRpZmZlcmVudCB1c2VzOiBTdmdTcGFuIHRvIHdyYXAgYW4gU1ZHIGFuZCBEb21TcGFuXG4gKiBvdGhlcndpc2UuIFRoaXMgdHlwZXNhZmV0eSBpcyBpbXBvcnRhbnQgd2hlbiBIVE1MIGJ1aWxkZXJzIGFjY2VzcyBhIHNwYW4nc1xuICogY2hpbGRyZW4uXG4gKi9cbmNsYXNzIFNwYW4ge1xuICBjb25zdHJ1Y3RvcihjbGFzc2VzLCBjaGlsZHJlbiwgb3B0aW9ucywgc3R5bGUpIHtcbiAgICB0aGlzLmNoaWxkcmVuID0gdm9pZCAwO1xuICAgIHRoaXMuYXR0cmlidXRlcyA9IHZvaWQgMDtcbiAgICB0aGlzLmNsYXNzZXMgPSB2b2lkIDA7XG4gICAgdGhpcy5oZWlnaHQgPSB2b2lkIDA7XG4gICAgdGhpcy5kZXB0aCA9IHZvaWQgMDtcbiAgICB0aGlzLndpZHRoID0gdm9pZCAwO1xuICAgIHRoaXMubWF4Rm9udFNpemUgPSB2b2lkIDA7XG4gICAgdGhpcy5zdHlsZSA9IHZvaWQgMDtcbiAgICBpbml0Tm9kZS5jYWxsKHRoaXMsIGNsYXNzZXMsIG9wdGlvbnMsIHN0eWxlKTtcbiAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW4gfHwgW107XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgYW4gYXJiaXRyYXJ5IGF0dHJpYnV0ZSBvbiB0aGUgc3Bhbi4gV2FybmluZzogdXNlIHRoaXMgd2lzZWx5LiBOb3RcbiAgICogYWxsIGJyb3dzZXJzIHN1cHBvcnQgYXR0cmlidXRlcyB0aGUgc2FtZSwgYW5kIGhhdmluZyB0b28gbWFueSBjdXN0b21cbiAgICogYXR0cmlidXRlcyBpcyBwcm9iYWJseSBiYWQuXG4gICAqL1xuXG5cbiAgc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpIHtcbiAgICB0aGlzLmF0dHJpYnV0ZXNbYXR0cmlidXRlXSA9IHZhbHVlO1xuICB9XG5cbiAgaGFzQ2xhc3MoY2xhc3NOYW1lKSB7XG4gICAgcmV0dXJuIHV0aWxzLmNvbnRhaW5zKHRoaXMuY2xhc3NlcywgY2xhc3NOYW1lKTtcbiAgfVxuXG4gIHRvTm9kZSgpIHtcbiAgICByZXR1cm4gdG9Ob2RlLmNhbGwodGhpcywgXCJzcGFuXCIpO1xuICB9XG5cbiAgdG9NYXJrdXAoKSB7XG4gICAgcmV0dXJuIHRvTWFya3VwLmNhbGwodGhpcywgXCJzcGFuXCIpO1xuICB9XG5cbn1cbi8qKlxuICogVGhpcyBub2RlIHJlcHJlc2VudHMgYW4gYW5jaG9yICg8YT4pIGVsZW1lbnQgd2l0aCBhIGh5cGVybGluay4gIFNlZSBgc3BhbmBcbiAqIGZvciBmdXJ0aGVyIGRldGFpbHMuXG4gKi9cblxuY2xhc3MgQW5jaG9yIHtcbiAgY29uc3RydWN0b3IoaHJlZiwgY2xhc3NlcywgY2hpbGRyZW4sIG9wdGlvbnMpIHtcbiAgICB0aGlzLmNoaWxkcmVuID0gdm9pZCAwO1xuICAgIHRoaXMuYXR0cmlidXRlcyA9IHZvaWQgMDtcbiAgICB0aGlzLmNsYXNzZXMgPSB2b2lkIDA7XG4gICAgdGhpcy5oZWlnaHQgPSB2b2lkIDA7XG4gICAgdGhpcy5kZXB0aCA9IHZvaWQgMDtcbiAgICB0aGlzLm1heEZvbnRTaXplID0gdm9pZCAwO1xuICAgIHRoaXMuc3R5bGUgPSB2b2lkIDA7XG4gICAgaW5pdE5vZGUuY2FsbCh0aGlzLCBjbGFzc2VzLCBvcHRpb25zKTtcbiAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW4gfHwgW107XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTtcbiAgfVxuXG4gIHNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV0gPSB2YWx1ZTtcbiAgfVxuXG4gIGhhc0NsYXNzKGNsYXNzTmFtZSkge1xuICAgIHJldHVybiB1dGlscy5jb250YWlucyh0aGlzLmNsYXNzZXMsIGNsYXNzTmFtZSk7XG4gIH1cblxuICB0b05vZGUoKSB7XG4gICAgcmV0dXJuIHRvTm9kZS5jYWxsKHRoaXMsIFwiYVwiKTtcbiAgfVxuXG4gIHRvTWFya3VwKCkge1xuICAgIHJldHVybiB0b01hcmt1cC5jYWxsKHRoaXMsIFwiYVwiKTtcbiAgfVxuXG59XG4vKipcbiAqIFRoaXMgbm9kZSByZXByZXNlbnRzIGFuIGltYWdlIGVtYmVkICg8aW1nPikgZWxlbWVudC5cbiAqL1xuXG5jbGFzcyBJbWcge1xuICBjb25zdHJ1Y3RvcihzcmMsIGFsdCwgc3R5bGUpIHtcbiAgICB0aGlzLnNyYyA9IHZvaWQgMDtcbiAgICB0aGlzLmFsdCA9IHZvaWQgMDtcbiAgICB0aGlzLmNsYXNzZXMgPSB2b2lkIDA7XG4gICAgdGhpcy5oZWlnaHQgPSB2b2lkIDA7XG4gICAgdGhpcy5kZXB0aCA9IHZvaWQgMDtcbiAgICB0aGlzLm1heEZvbnRTaXplID0gdm9pZCAwO1xuICAgIHRoaXMuc3R5bGUgPSB2b2lkIDA7XG4gICAgdGhpcy5hbHQgPSBhbHQ7XG4gICAgdGhpcy5zcmMgPSBzcmM7XG4gICAgdGhpcy5jbGFzc2VzID0gW1wibW9yZFwiXTtcbiAgICB0aGlzLnN0eWxlID0gc3R5bGU7XG4gIH1cblxuICBoYXNDbGFzcyhjbGFzc05hbWUpIHtcbiAgICByZXR1cm4gdXRpbHMuY29udGFpbnModGhpcy5jbGFzc2VzLCBjbGFzc05hbWUpO1xuICB9XG5cbiAgdG9Ob2RlKCkge1xuICAgIHZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImltZ1wiKTtcbiAgICBub2RlLnNyYyA9IHRoaXMuc3JjO1xuICAgIG5vZGUuYWx0ID0gdGhpcy5hbHQ7XG4gICAgbm9kZS5jbGFzc05hbWUgPSBcIm1vcmRcIjsgLy8gQXBwbHkgaW5saW5lIHN0eWxlc1xuXG4gICAgZm9yICh2YXIgc3R5bGUgaW4gdGhpcy5zdHlsZSkge1xuICAgICAgaWYgKHRoaXMuc3R5bGUuaGFzT3duUHJvcGVydHkoc3R5bGUpKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWVcbiAgICAgICAgbm9kZS5zdHlsZVtzdHlsZV0gPSB0aGlzLnN0eWxlW3N0eWxlXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHRvTWFya3VwKCkge1xuICAgIHZhciBtYXJrdXAgPSBcIjxpbWcgc3JjPVxcXCJcIiArIHV0aWxzLmVzY2FwZSh0aGlzLnNyYykgKyBcIlxcXCJcIiArIChcIiBhbHQ9XFxcIlwiICsgdXRpbHMuZXNjYXBlKHRoaXMuYWx0KSArIFwiXFxcIlwiKTsgLy8gQWRkIHRoZSBzdHlsZXMsIGFmdGVyIGh5cGhlbmF0aW9uXG5cbiAgICB2YXIgc3R5bGVzID0gXCJcIjtcblxuICAgIGZvciAodmFyIHN0eWxlIGluIHRoaXMuc3R5bGUpIHtcbiAgICAgIGlmICh0aGlzLnN0eWxlLmhhc093blByb3BlcnR5KHN0eWxlKSkge1xuICAgICAgICBzdHlsZXMgKz0gdXRpbHMuaHlwaGVuYXRlKHN0eWxlKSArIFwiOlwiICsgdGhpcy5zdHlsZVtzdHlsZV0gKyBcIjtcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3R5bGVzKSB7XG4gICAgICBtYXJrdXAgKz0gXCIgc3R5bGU9XFxcIlwiICsgdXRpbHMuZXNjYXBlKHN0eWxlcykgKyBcIlxcXCJcIjtcbiAgICB9XG5cbiAgICBtYXJrdXAgKz0gXCInLz5cIjtcbiAgICByZXR1cm4gbWFya3VwO1xuICB9XG5cbn1cbnZhciBpQ29tYmluYXRpb25zID0ge1xuICAnw64nOiAnXFx1MDEzMVxcdTAzMDInLFxuICAnw68nOiAnXFx1MDEzMVxcdTAzMDgnLFxuICAnw60nOiAnXFx1MDEzMVxcdTAzMDEnLFxuICAvLyAnxKsnOiAnXFx1MDEzMVxcdTAzMDQnLCAvLyBlbmFibGUgd2hlbiB3ZSBhZGQgRXh0ZW5kZWQgTGF0aW5cbiAgJ8OsJzogJ1xcdTAxMzFcXHUwMzAwJ1xufTtcbi8qKlxuICogQSBzeW1ib2wgbm9kZSBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBzeW1ib2wuIEl0IGVpdGhlciByZW5kZXJzXG4gKiB0byBhIHNpbmdsZSB0ZXh0IG5vZGUsIG9yIGEgc3BhbiB3aXRoIGEgc2luZ2xlIHRleHQgbm9kZSBpbiBpdCwgZGVwZW5kaW5nIG9uXG4gKiB3aGV0aGVyIGl0IGhhcyBDU1MgY2xhc3Nlcywgc3R5bGVzLCBvciBuZWVkcyBpdGFsaWMgY29ycmVjdGlvbi5cbiAqL1xuXG5jbGFzcyBTeW1ib2xOb2RlIHtcbiAgY29uc3RydWN0b3IodGV4dCwgaGVpZ2h0LCBkZXB0aCwgaXRhbGljLCBza2V3LCB3aWR0aCwgY2xhc3Nlcywgc3R5bGUpIHtcbiAgICB0aGlzLnRleHQgPSB2b2lkIDA7XG4gICAgdGhpcy5oZWlnaHQgPSB2b2lkIDA7XG4gICAgdGhpcy5kZXB0aCA9IHZvaWQgMDtcbiAgICB0aGlzLml0YWxpYyA9IHZvaWQgMDtcbiAgICB0aGlzLnNrZXcgPSB2b2lkIDA7XG4gICAgdGhpcy53aWR0aCA9IHZvaWQgMDtcbiAgICB0aGlzLm1heEZvbnRTaXplID0gdm9pZCAwO1xuICAgIHRoaXMuY2xhc3NlcyA9IHZvaWQgMDtcbiAgICB0aGlzLnN0eWxlID0gdm9pZCAwO1xuICAgIHRoaXMudGV4dCA9IHRleHQ7XG4gICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQgfHwgMDtcbiAgICB0aGlzLmRlcHRoID0gZGVwdGggfHwgMDtcbiAgICB0aGlzLml0YWxpYyA9IGl0YWxpYyB8fCAwO1xuICAgIHRoaXMuc2tldyA9IHNrZXcgfHwgMDtcbiAgICB0aGlzLndpZHRoID0gd2lkdGggfHwgMDtcbiAgICB0aGlzLmNsYXNzZXMgPSBjbGFzc2VzIHx8IFtdO1xuICAgIHRoaXMuc3R5bGUgPSBzdHlsZSB8fCB7fTtcbiAgICB0aGlzLm1heEZvbnRTaXplID0gMDsgLy8gTWFyayB0ZXh0IGZyb20gbm9uLUxhdGluIHNjcmlwdHMgd2l0aCBzcGVjaWZpYyBjbGFzc2VzIHNvIHRoYXQgd2VcbiAgICAvLyBjYW4gc3BlY2lmeSB3aGljaCBmb250cyB0byB1c2UuICBUaGlzIGFsbG93cyB1cyB0byByZW5kZXIgdGhlc2VcbiAgICAvLyBjaGFyYWN0ZXJzIHdpdGggYSBzZXJpZiBmb250IGluIHNpdHVhdGlvbnMgd2hlcmUgdGhlIGJyb3dzZXIgd291bGRcbiAgICAvLyBlaXRoZXIgZGVmYXVsdCB0byBhIHNhbnMgc2VyaWYgb3IgcmVuZGVyIGEgcGxhY2Vob2xkZXIgY2hhcmFjdGVyLlxuICAgIC8vIFdlIHVzZSBDU1MgY2xhc3MgbmFtZXMgbGlrZSBjamtfZmFsbGJhY2ssIGhhbmd1bF9mYWxsYmFjayBhbmRcbiAgICAvLyBicmFobWljX2ZhbGxiYWNrLiBTZWUgLi91bmljb2RlU2NyaXB0cy5qcyBmb3IgdGhlIHNldCBvZiBwb3NzaWJsZVxuICAgIC8vIHNjcmlwdCBuYW1lc1xuXG4gICAgdmFyIHNjcmlwdCA9IHNjcmlwdEZyb21Db2RlcG9pbnQodGhpcy50ZXh0LmNoYXJDb2RlQXQoMCkpO1xuXG4gICAgaWYgKHNjcmlwdCkge1xuICAgICAgdGhpcy5jbGFzc2VzLnB1c2goc2NyaXB0ICsgXCJfZmFsbGJhY2tcIik7XG4gICAgfVxuXG4gICAgaWYgKC9bw67Dr8Otw6xdLy50ZXN0KHRoaXMudGV4dCkpIHtcbiAgICAgIC8vIGFkZCDEqyB3aGVuIHdlIGFkZCBFeHRlbmRlZCBMYXRpblxuICAgICAgdGhpcy50ZXh0ID0gaUNvbWJpbmF0aW9uc1t0aGlzLnRleHRdO1xuICAgIH1cbiAgfVxuXG4gIGhhc0NsYXNzKGNsYXNzTmFtZSkge1xuICAgIHJldHVybiB1dGlscy5jb250YWlucyh0aGlzLmNsYXNzZXMsIGNsYXNzTmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB0ZXh0IG5vZGUgb3Igc3BhbiBmcm9tIGEgc3ltYm9sIG5vZGUuIE5vdGUgdGhhdCBhIHNwYW4gaXMgb25seVxuICAgKiBjcmVhdGVkIGlmIGl0IGlzIG5lZWRlZC5cbiAgICovXG5cblxuICB0b05vZGUoKSB7XG4gICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLnRleHQpO1xuICAgIHZhciBzcGFuID0gbnVsbDtcblxuICAgIGlmICh0aGlzLml0YWxpYyA+IDApIHtcbiAgICAgIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKTtcbiAgICAgIHNwYW4uc3R5bGUubWFyZ2luUmlnaHQgPSBtYWtlRW0odGhpcy5pdGFsaWMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNsYXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgc3BhbiA9IHNwYW4gfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gICAgICBzcGFuLmNsYXNzTmFtZSA9IGNyZWF0ZUNsYXNzKHRoaXMuY2xhc3Nlcyk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgc3R5bGUgaW4gdGhpcy5zdHlsZSkge1xuICAgICAgaWYgKHRoaXMuc3R5bGUuaGFzT3duUHJvcGVydHkoc3R5bGUpKSB7XG4gICAgICAgIHNwYW4gPSBzcGFuIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpOyAvLyAkRmxvd0ZpeE1lIEZsb3cgZG9lc24ndCBzZWVtIHRvIHVuZGVyc3RhbmQgc3Bhbi5zdHlsZSdzIHR5cGUuXG5cbiAgICAgICAgc3Bhbi5zdHlsZVtzdHlsZV0gPSB0aGlzLnN0eWxlW3N0eWxlXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3Bhbikge1xuICAgICAgc3Bhbi5hcHBlbmRDaGlsZChub2RlKTtcbiAgICAgIHJldHVybiBzcGFuO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgbWFya3VwIGZvciBhIHN5bWJvbCBub2RlLlxuICAgKi9cblxuXG4gIHRvTWFya3VwKCkge1xuICAgIC8vIFRPRE8oYWxwZXJ0KTogTW9yZSBkdXBsaWNhdGlvbiB0aGFuIEknZCBsaWtlIGZyb21cbiAgICAvLyBzcGFuLnByb3RvdHlwZS50b01hcmt1cCBhbmQgc3ltYm9sTm9kZS5wcm90b3R5cGUudG9Ob2RlLi4uXG4gICAgdmFyIG5lZWRzU3BhbiA9IGZhbHNlO1xuICAgIHZhciBtYXJrdXAgPSBcIjxzcGFuXCI7XG5cbiAgICBpZiAodGhpcy5jbGFzc2VzLmxlbmd0aCkge1xuICAgICAgbmVlZHNTcGFuID0gdHJ1ZTtcbiAgICAgIG1hcmt1cCArPSBcIiBjbGFzcz1cXFwiXCI7XG4gICAgICBtYXJrdXAgKz0gdXRpbHMuZXNjYXBlKGNyZWF0ZUNsYXNzKHRoaXMuY2xhc3NlcykpO1xuICAgICAgbWFya3VwICs9IFwiXFxcIlwiO1xuICAgIH1cblxuICAgIHZhciBzdHlsZXMgPSBcIlwiO1xuXG4gICAgaWYgKHRoaXMuaXRhbGljID4gMCkge1xuICAgICAgc3R5bGVzICs9IFwibWFyZ2luLXJpZ2h0OlwiICsgdGhpcy5pdGFsaWMgKyBcImVtO1wiO1xuICAgIH1cblxuICAgIGZvciAodmFyIHN0eWxlIGluIHRoaXMuc3R5bGUpIHtcbiAgICAgIGlmICh0aGlzLnN0eWxlLmhhc093blByb3BlcnR5KHN0eWxlKSkge1xuICAgICAgICBzdHlsZXMgKz0gdXRpbHMuaHlwaGVuYXRlKHN0eWxlKSArIFwiOlwiICsgdGhpcy5zdHlsZVtzdHlsZV0gKyBcIjtcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3R5bGVzKSB7XG4gICAgICBuZWVkc1NwYW4gPSB0cnVlO1xuICAgICAgbWFya3VwICs9IFwiIHN0eWxlPVxcXCJcIiArIHV0aWxzLmVzY2FwZShzdHlsZXMpICsgXCJcXFwiXCI7XG4gICAgfVxuXG4gICAgdmFyIGVzY2FwZWQgPSB1dGlscy5lc2NhcGUodGhpcy50ZXh0KTtcblxuICAgIGlmIChuZWVkc1NwYW4pIHtcbiAgICAgIG1hcmt1cCArPSBcIj5cIjtcbiAgICAgIG1hcmt1cCArPSBlc2NhcGVkO1xuICAgICAgbWFya3VwICs9IFwiPC9zcGFuPlwiO1xuICAgICAgcmV0dXJuIG1hcmt1cDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVzY2FwZWQ7XG4gICAgfVxuICB9XG5cbn1cbi8qKlxuICogU1ZHIG5vZGVzIGFyZSB1c2VkIHRvIHJlbmRlciBzdHJldGNoeSB3aWRlIGVsZW1lbnRzLlxuICovXG5cbmNsYXNzIFN2Z05vZGUge1xuICBjb25zdHJ1Y3RvcihjaGlsZHJlbiwgYXR0cmlidXRlcykge1xuICAgIHRoaXMuY2hpbGRyZW4gPSB2b2lkIDA7XG4gICAgdGhpcy5hdHRyaWJ1dGVzID0gdm9pZCAwO1xuICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbiB8fCBbXTtcbiAgICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzIHx8IHt9O1xuICB9XG5cbiAgdG9Ob2RlKCkge1xuICAgIHZhciBzdmdOUyA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbiAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzdmdOUywgXCJzdmdcIik7IC8vIEFwcGx5IGF0dHJpYnV0ZXNcblxuICAgIGZvciAodmFyIGF0dHIgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcywgYXR0cikpIHtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoYXR0ciwgdGhpcy5hdHRyaWJ1dGVzW2F0dHJdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIG5vZGUuYXBwZW5kQ2hpbGQodGhpcy5jaGlsZHJlbltpXS50b05vZGUoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICB0b01hcmt1cCgpIHtcbiAgICB2YXIgbWFya3VwID0gXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCJcIjsgLy8gQXBwbHkgYXR0cmlidXRlc1xuXG4gICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLCBhdHRyKSkge1xuICAgICAgICBtYXJrdXAgKz0gXCIgXCIgKyBhdHRyICsgXCI9XFxcIlwiICsgdXRpbHMuZXNjYXBlKHRoaXMuYXR0cmlidXRlc1thdHRyXSkgKyBcIlxcXCJcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBtYXJrdXAgKz0gXCI+XCI7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIG1hcmt1cCArPSB0aGlzLmNoaWxkcmVuW2ldLnRvTWFya3VwKCk7XG4gICAgfVxuXG4gICAgbWFya3VwICs9IFwiPC9zdmc+XCI7XG4gICAgcmV0dXJuIG1hcmt1cDtcbiAgfVxuXG59XG5jbGFzcyBQYXRoTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHBhdGhOYW1lLCBhbHRlcm5hdGUpIHtcbiAgICB0aGlzLnBhdGhOYW1lID0gdm9pZCAwO1xuICAgIHRoaXMuYWx0ZXJuYXRlID0gdm9pZCAwO1xuICAgIHRoaXMucGF0aE5hbWUgPSBwYXRoTmFtZTtcbiAgICB0aGlzLmFsdGVybmF0ZSA9IGFsdGVybmF0ZTsgLy8gVXNlZCBvbmx5IGZvciBcXHNxcnQsIFxccGhhc2UsICYgdGFsbCBkZWxpbXNcbiAgfVxuXG4gIHRvTm9kZSgpIHtcbiAgICB2YXIgc3ZnTlMgPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI7XG4gICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsIFwicGF0aFwiKTtcblxuICAgIGlmICh0aGlzLmFsdGVybmF0ZSkge1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJkXCIsIHRoaXMuYWx0ZXJuYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJkXCIsIHBhdGhbdGhpcy5wYXRoTmFtZV0pO1xuICAgIH1cblxuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgdG9NYXJrdXAoKSB7XG4gICAgaWYgKHRoaXMuYWx0ZXJuYXRlKSB7XG4gICAgICByZXR1cm4gXCI8cGF0aCBkPVxcXCJcIiArIHV0aWxzLmVzY2FwZSh0aGlzLmFsdGVybmF0ZSkgKyBcIlxcXCIvPlwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCI8cGF0aCBkPVxcXCJcIiArIHV0aWxzLmVzY2FwZShwYXRoW3RoaXMucGF0aE5hbWVdKSArIFwiXFxcIi8+XCI7XG4gICAgfVxuICB9XG5cbn1cbmNsYXNzIExpbmVOb2RlIHtcbiAgY29uc3RydWN0b3IoYXR0cmlidXRlcykge1xuICAgIHRoaXMuYXR0cmlidXRlcyA9IHZvaWQgMDtcbiAgICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzIHx8IHt9O1xuICB9XG5cbiAgdG9Ob2RlKCkge1xuICAgIHZhciBzdmdOUyA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbiAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzdmdOUywgXCJsaW5lXCIpOyAvLyBBcHBseSBhdHRyaWJ1dGVzXG5cbiAgICBmb3IgKHZhciBhdHRyIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmF0dHJpYnV0ZXMsIGF0dHIpKSB7XG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKGF0dHIsIHRoaXMuYXR0cmlidXRlc1thdHRyXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICB0b01hcmt1cCgpIHtcbiAgICB2YXIgbWFya3VwID0gXCI8bGluZVwiO1xuXG4gICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLCBhdHRyKSkge1xuICAgICAgICBtYXJrdXAgKz0gXCIgXCIgKyBhdHRyICsgXCI9XFxcIlwiICsgdXRpbHMuZXNjYXBlKHRoaXMuYXR0cmlidXRlc1thdHRyXSkgKyBcIlxcXCJcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBtYXJrdXAgKz0gXCIvPlwiO1xuICAgIHJldHVybiBtYXJrdXA7XG4gIH1cblxufVxuZnVuY3Rpb24gYXNzZXJ0U3ltYm9sRG9tTm9kZShncm91cCkge1xuICBpZiAoZ3JvdXAgaW5zdGFuY2VvZiBTeW1ib2xOb2RlKSB7XG4gICAgcmV0dXJuIGdyb3VwO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHN5bWJvbE5vZGUgYnV0IGdvdCBcIiArIFN0cmluZyhncm91cCkgKyBcIi5cIik7XG4gIH1cbn1cbmZ1bmN0aW9uIGFzc2VydFNwYW4oZ3JvdXApIHtcbiAgaWYgKGdyb3VwIGluc3RhbmNlb2YgU3Bhbikge1xuICAgIHJldHVybiBncm91cDtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBzcGFuPEh0bWxEb21Ob2RlPiBidXQgZ290IFwiICsgU3RyaW5nKGdyb3VwKSArIFwiLlwiKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgZmlsZSBob2xkcyBhIGxpc3Qgb2YgYWxsIG5vLWFyZ3VtZW50IGZ1bmN0aW9ucyBhbmQgc2luZ2xlLWNoYXJhY3RlclxuICogc3ltYm9scyAobGlrZSAnYScgb3IgJzsnKS5cbiAqXG4gKiBGb3IgZWFjaCBvZiB0aGUgc3ltYm9scywgdGhlcmUgYXJlIHRocmVlIHByb3BlcnRpZXMgdGhleSBjYW4gaGF2ZTpcbiAqIC0gZm9udCAocmVxdWlyZWQpOiB0aGUgZm9udCB0byBiZSB1c2VkIGZvciB0aGlzIHN5bWJvbC4gRWl0aGVyIFwibWFpblwiICh0aGVcbiAgICAgbm9ybWFsIGZvbnQpLCBvciBcImFtc1wiICh0aGUgYW1zIGZvbnRzKS5cbiAqIC0gZ3JvdXAgKHJlcXVpcmVkKTogdGhlIFBhcnNlTm9kZSBncm91cCB0eXBlIHRoZSBzeW1ib2wgc2hvdWxkIGhhdmUgKGkuZS5cbiAgICAgXCJ0ZXh0b3JkXCIsIFwibWF0aG9yZFwiLCBldGMpLlxuICAgICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL0thVGVYL0thVGVYL3dpa2kvRXhhbWluaW5nLVRlWCNncm91cC10eXBlc1xuICogLSByZXBsYWNlOiB0aGUgY2hhcmFjdGVyIHRoYXQgdGhpcyBzeW1ib2wgb3IgZnVuY3Rpb24gc2hvdWxkIGJlXG4gKiAgIHJlcGxhY2VkIHdpdGggKGkuZS4gXCJcXHBoaVwiIGhhcyBhIHJlcGxhY2UgdmFsdWUgb2YgXCJcXHUwM2Q1XCIsIHRoZSBwaGlcbiAqICAgY2hhcmFjdGVyIGluIHRoZSBtYWluIGZvbnQpLlxuICpcbiAqIFRoZSBvdXRlcm1vc3QgbWFwIGluIHRoZSB0YWJsZSBpbmRpY2F0ZXMgd2hhdCBtb2RlIHRoZSBzeW1ib2xzIHNob3VsZCBiZVxuICogYWNjZXB0ZWQgaW4gKGUuZy4gXCJtYXRoXCIgb3IgXCJ0ZXh0XCIpLlxuICovXG4vLyBTb21lIG9mIHRoZXNlIGhhdmUgYSBcIi10b2tlblwiIHN1ZmZpeCBzaW5jZSB0aGVzZSBhcmUgYWxzbyB1c2VkIGFzIGBQYXJzZU5vZGVgXG4vLyB0eXBlcyBmb3IgcmF3IHRleHQgdG9rZW5zLCBhbmQgd2Ugd2FudCB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBoaWdoZXItbGV2ZWxcbi8vIGBQYXJzZU5vZGVgIHR5cGVzLiBUaGVzZSBgUGFyc2VOb2RlYHMgYXJlIGNvbnN0cnVjdGVkIHdpdGhpbiBgUGFyc2VyYCBieVxuLy8gbG9va2luZyB1cCB0aGUgYHN5bWJvbHNgIG1hcC5cbnZhciBBVE9NUyA9IHtcbiAgXCJiaW5cIjogMSxcbiAgXCJjbG9zZVwiOiAxLFxuICBcImlubmVyXCI6IDEsXG4gIFwib3BlblwiOiAxLFxuICBcInB1bmN0XCI6IDEsXG4gIFwicmVsXCI6IDFcbn07XG52YXIgTk9OX0FUT01TID0ge1xuICBcImFjY2VudC10b2tlblwiOiAxLFxuICBcIm1hdGhvcmRcIjogMSxcbiAgXCJvcC10b2tlblwiOiAxLFxuICBcInNwYWNpbmdcIjogMSxcbiAgXCJ0ZXh0b3JkXCI6IDFcbn07XG52YXIgc3ltYm9scyA9IHtcbiAgXCJtYXRoXCI6IHt9LFxuICBcInRleHRcIjoge31cbn07XG4vKiogYGFjY2VwdFVuaWNvZGVDaGFyID0gdHJ1ZWAgaXMgb25seSBhcHBsaWNhYmxlIGlmIGByZXBsYWNlYCBpcyBzZXQuICovXG5cbmZ1bmN0aW9uIGRlZmluZVN5bWJvbChtb2RlLCBmb250LCBncm91cCwgcmVwbGFjZSwgbmFtZSwgYWNjZXB0VW5pY29kZUNoYXIpIHtcbiAgc3ltYm9sc1ttb2RlXVtuYW1lXSA9IHtcbiAgICBmb250LFxuICAgIGdyb3VwLFxuICAgIHJlcGxhY2VcbiAgfTtcblxuICBpZiAoYWNjZXB0VW5pY29kZUNoYXIgJiYgcmVwbGFjZSkge1xuICAgIHN5bWJvbHNbbW9kZV1bcmVwbGFjZV0gPSBzeW1ib2xzW21vZGVdW25hbWVdO1xuICB9XG59IC8vIFNvbWUgYWJicmV2aWF0aW9ucyBmb3IgY29tbW9ubHkgdXNlZCBzdHJpbmdzLlxuLy8gVGhpcyBoZWxwcyBtaW5pZnkgdGhlIGNvZGUsIGFuZCBhbHNvIHNwb3R0aW5nIHR5cG9zIHVzaW5nIGpzaGludC5cbi8vIG1vZGVzOlxuXG52YXIgbWF0aCA9IFwibWF0aFwiO1xudmFyIHRleHQgPSBcInRleHRcIjsgLy8gZm9udHM6XG5cbnZhciBtYWluID0gXCJtYWluXCI7XG52YXIgYW1zID0gXCJhbXNcIjsgLy8gZ3JvdXBzOlxuXG52YXIgYWNjZW50ID0gXCJhY2NlbnQtdG9rZW5cIjtcbnZhciBiaW4gPSBcImJpblwiO1xudmFyIGNsb3NlID0gXCJjbG9zZVwiO1xudmFyIGlubmVyID0gXCJpbm5lclwiO1xudmFyIG1hdGhvcmQgPSBcIm1hdGhvcmRcIjtcbnZhciBvcCA9IFwib3AtdG9rZW5cIjtcbnZhciBvcGVuID0gXCJvcGVuXCI7XG52YXIgcHVuY3QgPSBcInB1bmN0XCI7XG52YXIgcmVsID0gXCJyZWxcIjtcbnZhciBzcGFjaW5nID0gXCJzcGFjaW5nXCI7XG52YXIgdGV4dG9yZCA9IFwidGV4dG9yZFwiOyAvLyBOb3cgY29tZXMgdGhlIHN5bWJvbCB0YWJsZVxuLy8gUmVsYXRpb24gU3ltYm9sc1xuXG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNjFcIiwgXCJcXFxcZXF1aXZcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyN2FcIiwgXCJcXFxccHJlY1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI3YlwiLCBcIlxcXFxzdWNjXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjNjXCIsIFwiXFxcXHNpbVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjJhNVwiLCBcIlxcXFxwZXJwXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyYWFmXCIsIFwiXFxcXHByZWNlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MmFiMFwiLCBcIlxcXFxzdWNjZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNDNcIiwgXCJcXFxcc2ltZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyMjNcIiwgXCJcXFxcbWlkXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjZhXCIsIFwiXFxcXGxsXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjZiXCIsIFwiXFxcXGdnXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjRkXCIsIFwiXFxcXGFzeW1wXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjI1XCIsIFwiXFxcXHBhcmFsbGVsXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMmM4XCIsIFwiXFxcXGJvd3RpZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjMyM1wiLCBcIlxcXFxzbWlsZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI5MVwiLCBcIlxcXFxzcXN1YnNldGVxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjkyXCIsIFwiXFxcXHNxc3Vwc2V0ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNTBcIiwgXCJcXFxcZG90ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIzMjJcIiwgXCJcXFxcZnJvd25cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyMGJcIiwgXCJcXFxcbmlcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyMWRcIiwgXCJcXFxccHJvcHRvXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMmEyXCIsIFwiXFxcXHZkYXNoXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMmEzXCIsIFwiXFxcXGRhc2h2XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjBiXCIsIFwiXFxcXG93bnNcIik7IC8vIFB1bmN0dWF0aW9uXG5cbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBwdW5jdCwgXCJcXHUwMDJlXCIsIFwiXFxcXGxkb3RwXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHB1bmN0LCBcIlxcdTIyYzVcIiwgXCJcXFxcY2RvdHBcIik7IC8vIE1pc2MgU3ltYm9sc1xuXG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMDIzXCIsIFwiXFxcXCNcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMDIzXCIsIFwiXFxcXCNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMDI2XCIsIFwiXFxcXCZcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMDI2XCIsIFwiXFxcXCZcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMTM1XCIsIFwiXFxcXGFsZXBoXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjIwMFwiLCBcIlxcXFxmb3JhbGxcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMTBmXCIsIFwiXFxcXGhiYXJcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMjAzXCIsIFwiXFxcXGV4aXN0c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMDdcIiwgXCJcXFxcbmFibGFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyNjZkXCIsIFwiXFxcXGZsYXRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMTEzXCIsIFwiXFxcXGVsbFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTI2NmVcIiwgXCJcXFxcbmF0dXJhbFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTI2NjNcIiwgXCJcXFxcY2x1YnN1aXRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMTE4XCIsIFwiXFxcXHdwXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjY2ZlwiLCBcIlxcXFxzaGFycFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTI2NjJcIiwgXCJcXFxcZGlhbW9uZHN1aXRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMTFjXCIsIFwiXFxcXFJlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjY2MVwiLCBcIlxcXFxoZWFydHN1aXRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMTExXCIsIFwiXFxcXEltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjY2MFwiLCBcIlxcXFxzcGFkZXN1aXRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMGE3XCIsIFwiXFxcXFNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMGE3XCIsIFwiXFxcXFNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMGI2XCIsIFwiXFxcXFBcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMGI2XCIsIFwiXFxcXFBcIik7IC8vIE1hdGggYW5kIFRleHRcblxuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAyMFwiLCBcIlxcXFxkYWdcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDIwXCIsIFwiXFxcXGRhZ1wiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMjBcIiwgXCJcXFxcdGV4dGRhZ2dlclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMjFcIiwgXCJcXFxcZGRhZ1wiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMjFcIiwgXCJcXFxcZGRhZ1wiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMjFcIiwgXCJcXFxcdGV4dGRhZ2dlcmRibFwiKTsgLy8gTGFyZ2UgRGVsaW1pdGVyc1xuXG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgY2xvc2UsIFwiXFx1MjNiMVwiLCBcIlxcXFxybW91c3RhY2hlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wZW4sIFwiXFx1MjNiMFwiLCBcIlxcXFxsbW91c3RhY2hlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIlxcdTI3ZWZcIiwgXCJcXFxccmdyb3VwXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wZW4sIFwiXFx1MjdlZVwiLCBcIlxcXFxsZ3JvdXBcIiwgdHJ1ZSk7IC8vIEJpbmFyeSBPcGVyYXRvcnNcblxuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjEzXCIsIFwiXFxcXG1wXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjk2XCIsIFwiXFxcXG9taW51c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjI4ZVwiLCBcIlxcXFx1cGx1c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjI5M1wiLCBcIlxcXFxzcWNhcFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIxN1wiLCBcIlxcXFxhc3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyOTRcIiwgXCJcXFxcc3FjdXBcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTI1ZWZcIiwgXCJcXFxcYmlnY2lyY1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIxOVwiLCBcIlxcXFxidWxsZXRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIwMjFcIiwgXCJcXFxcZGRhZ2dlclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjI0MFwiLCBcIlxcXFx3clwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MmEzZlwiLCBcIlxcXFxhbWFsZ1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MDAyNlwiLCBcIlxcXFxBbmRcIik7IC8vIGZyb20gYW1zbWF0aFxuLy8gQXJyb3cgU3ltYm9sc1xuXG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTI3ZjVcIiwgXCJcXFxcbG9uZ2xlZnRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFkMFwiLCBcIlxcXFxMZWZ0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTI3ZjhcIiwgXCJcXFxcTG9uZ2xlZnRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjdmNlwiLCBcIlxcXFxsb25ncmlnaHRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFkMlwiLCBcIlxcXFxSaWdodGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyN2Y5XCIsIFwiXFxcXExvbmdyaWdodGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMTk0XCIsIFwiXFxcXGxlZnRyaWdodGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyN2Y3XCIsIFwiXFxcXGxvbmdsZWZ0cmlnaHRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFkNFwiLCBcIlxcXFxMZWZ0cmlnaHRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjdmYVwiLCBcIlxcXFxMb25nbGVmdHJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxYTZcIiwgXCJcXFxcbWFwc3RvXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyN2ZjXCIsIFwiXFxcXGxvbmdtYXBzdG9cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxOTdcIiwgXCJcXFxcbmVhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFhOVwiLCBcIlxcXFxob29rbGVmdGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMWFhXCIsIFwiXFxcXGhvb2tyaWdodGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMTk4XCIsIFwiXFxcXHNlYXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxYmNcIiwgXCJcXFxcbGVmdGhhcnBvb251cFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFjMFwiLCBcIlxcXFxyaWdodGhhcnBvb251cFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjE5OVwiLCBcIlxcXFxzd2Fycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMWJkXCIsIFwiXFxcXGxlZnRoYXJwb29uZG93blwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFjMVwiLCBcIlxcXFxyaWdodGhhcnBvb25kb3duXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMTk2XCIsIFwiXFxcXG53YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxY2NcIiwgXCJcXFxccmlnaHRsZWZ0aGFycG9vbnNcIiwgdHJ1ZSk7IC8vIEFNUyBOZWdhdGVkIEJpbmFyeSBSZWxhdGlvbnNcblxuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNmVcIiwgXCJcXFxcbmxlc3NcIiwgdHJ1ZSk7IC8vIFN5bWJvbCBuYW1lcyBwcmVjZWRlZCBieSBcIkBcIiBlYWNoIGhhdmUgYSBjb3JyZXNwb25kaW5nIG1hY3JvLlxuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1ZTAxMFwiLCBcIlxcXFxAbmxlcXNsYW50XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdWUwMTFcIiwgXCJcXFxcQG5sZXFxXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhODdcIiwgXCJcXFxcbG5lcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjY4XCIsIFwiXFxcXGxuZXFxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdWUwMGNcIiwgXCJcXFxcQGx2ZXJ0bmVxcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmU2XCIsIFwiXFxcXGxuc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhODlcIiwgXCJcXFxcbG5hcHByb3hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI4MFwiLCBcIlxcXFxucHJlY1wiLCB0cnVlKTsgLy8gdW5pY29kZS1tYXRoIG1hcHMgXFx1MjJlMCB0byBcXG5wcmVjY3VybHllcS4gV2UnbGwgdXNlIHRoZSBBTVMgc3lub255bS5cblxuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZTBcIiwgXCJcXFxcbnByZWNlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmU4XCIsIFwiXFxcXHByZWNuc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhYjlcIiwgXCJcXFxccHJlY25hcHByb3hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI0MVwiLCBcIlxcXFxuc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdWUwMDZcIiwgXCJcXFxcQG5zaG9ydG1pZFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjI0XCIsIFwiXFxcXG5taWRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJhY1wiLCBcIlxcXFxudmRhc2hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJhZFwiLCBcIlxcXFxudkRhc2hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJlYVwiLCBcIlxcXFxudHJpYW5nbGVsZWZ0XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZWNcIiwgXCJcXFxcbnRyaWFuZ2xlbGVmdGVxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyOGFcIiwgXCJcXFxcc3Vic2V0bmVxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdWUwMWFcIiwgXCJcXFxcQHZhcnN1YnNldG5lcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyYWNiXCIsIFwiXFxcXHN1YnNldG5lcXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1ZTAxN1wiLCBcIlxcXFxAdmFyc3Vic2V0bmVxcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjZmXCIsIFwiXFxcXG5ndHJcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1ZTAwZlwiLCBcIlxcXFxAbmdlcXNsYW50XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdWUwMGVcIiwgXCJcXFxcQG5nZXFxXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhODhcIiwgXCJcXFxcZ25lcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjY5XCIsIFwiXFxcXGduZXFxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdWUwMGRcIiwgXCJcXFxcQGd2ZXJ0bmVxcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmU3XCIsIFwiXFxcXGduc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhOGFcIiwgXCJcXFxcZ25hcHByb3hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI4MVwiLCBcIlxcXFxuc3VjY1wiLCB0cnVlKTsgLy8gdW5pY29kZS1tYXRoIG1hcHMgXFx1MjJlMSB0byBcXG5zdWNjY3VybHllcS4gV2UnbGwgdXNlIHRoZSBBTVMgc3lub255bS5cblxuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZTFcIiwgXCJcXFxcbnN1Y2NlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmU5XCIsIFwiXFxcXHN1Y2Nuc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhYmFcIiwgXCJcXFxcc3VjY25hcHByb3hcIiwgdHJ1ZSk7IC8vIHVuaWNvZGUtbWF0aCBtYXBzIFxcdTIyNDYgdG8gXFxzaW1uZXFxLiBXZSdsbCB1c2UgdGhlIEFNUyBzeW5vbnltLlxuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI0NlwiLCBcIlxcXFxuY29uZ1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHVlMDA3XCIsIFwiXFxcXEBuc2hvcnRwYXJhbGxlbFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjI2XCIsIFwiXFxcXG5wYXJhbGxlbFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmFmXCIsIFwiXFxcXG5WRGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmViXCIsIFwiXFxcXG50cmlhbmdsZXJpZ2h0XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZWRcIiwgXCJcXFxcbnRyaWFuZ2xlcmlnaHRlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHVlMDE4XCIsIFwiXFxcXEBuc3Vwc2V0ZXFxXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyOGJcIiwgXCJcXFxcc3Vwc2V0bmVxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdWUwMWJcIiwgXCJcXFxcQHZhcnN1cHNldG5lcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyYWNjXCIsIFwiXFxcXHN1cHNldG5lcXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1ZTAxOVwiLCBcIlxcXFxAdmFyc3Vwc2V0bmVxcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmFlXCIsIFwiXFxcXG5WZGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyYWI1XCIsIFwiXFxcXHByZWNuZXFxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhYjZcIiwgXCJcXFxcc3VjY25lcXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1ZTAxNlwiLCBcIlxcXFxAbnN1YnNldGVxcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMmI0XCIsIFwiXFxcXHVubGhkXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyYjVcIiwgXCJcXFxcdW5yaGRcIik7IC8vIEFNUyBOZWdhdGVkIEFycm93c1xuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjE5YVwiLCBcIlxcXFxubGVmdGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxOWJcIiwgXCJcXFxcbnJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFjZFwiLCBcIlxcXFxuTGVmdGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxY2ZcIiwgXCJcXFxcblJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFhZVwiLCBcIlxcXFxubGVmdHJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFjZVwiLCBcIlxcXFxuTGVmdHJpZ2h0YXJyb3dcIiwgdHJ1ZSk7IC8vIEFNUyBNaXNjXG5cbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyNWIzXCIsIFwiXFxcXHZhcnRyaWFuZ2xlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyMTBmXCIsIFwiXFxcXGhzbGFzaFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjViZFwiLCBcIlxcXFx0cmlhbmdsZWRvd25cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI1Y2FcIiwgXCJcXFxcbG96ZW5nZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjRjOFwiLCBcIlxcXFxjaXJjbGVkU1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MDBhZVwiLCBcIlxcXFxjaXJjbGVkUlwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBhbXMsIHRleHRvcmQsIFwiXFx1MDBhZVwiLCBcIlxcXFxjaXJjbGVkUlwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjIyMVwiLCBcIlxcXFxtZWFzdXJlZGFuZ2xlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyMjA0XCIsIFwiXFxcXG5leGlzdHNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTIxMjdcIiwgXCJcXFxcbWhvXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyMTMyXCIsIFwiXFxcXEZpbnZcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTIxNDFcIiwgXCJcXFxcR2FtZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjAzNVwiLCBcIlxcXFxiYWNrcHJpbWVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI1YjJcIiwgXCJcXFxcYmxhY2t0cmlhbmdsZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjViY1wiLCBcIlxcXFxibGFja3RyaWFuZ2xlZG93blwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjVhMFwiLCBcIlxcXFxibGFja3NxdWFyZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjllYlwiLCBcIlxcXFxibGFja2xvemVuZ2VcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI2MDVcIiwgXCJcXFxcYmlnc3RhclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjIyMlwiLCBcIlxcXFxzcGhlcmljYWxhbmdsZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjIwMVwiLCBcIlxcXFxjb21wbGVtZW50XCIsIHRydWUpOyAvLyB1bmljb2RlLW1hdGggbWFwcyBVK0YwIHRvIFxcbWF0aGV0aC4gV2UgbWFwIHRvIEFNUyBmdW5jdGlvbiBcXGV0aFxuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTAwZjBcIiwgXCJcXFxcZXRoXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MDBmMFwiLCBcIlxcdTAwZjBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI1NzFcIiwgXCJcXFxcZGlhZ3VwXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyNTcyXCIsIFwiXFxcXGRpYWdkb3duXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyNWExXCIsIFwiXFxcXHNxdWFyZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjVhMVwiLCBcIlxcXFxCb3hcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI1Y2FcIiwgXCJcXFxcRGlhbW9uZFwiKTsgLy8gdW5pY29kZS1tYXRoIG1hcHMgVStBNSB0byBcXG1hdGh5ZW4uIFdlIG1hcCB0byBBTVMgZnVuY3Rpb24gXFx5ZW5cblxuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUwMGE1XCIsIFwiXFxcXHllblwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBhbXMsIHRleHRvcmQsIFwiXFx1MDBhNVwiLCBcIlxcXFx5ZW5cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI3MTNcIiwgXCJcXFxcY2hlY2ttYXJrXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIGFtcywgdGV4dG9yZCwgXCJcXHUyNzEzXCIsIFwiXFxcXGNoZWNrbWFya1wiKTsgLy8gQU1TIEhlYnJld1xuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTIxMzZcIiwgXCJcXFxcYmV0aFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjEzOFwiLCBcIlxcXFxkYWxldGhcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTIxMzdcIiwgXCJcXFxcZ2ltZWxcIiwgdHJ1ZSk7IC8vIEFNUyBHcmVla1xuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTAzZGRcIiwgXCJcXFxcZGlnYW1tYVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MDNmMFwiLCBcIlxcXFx2YXJrYXBwYVwiKTsgLy8gQU1TIERlbGltaXRlcnNcblxuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgb3BlbiwgXCJcXHUyNTBjXCIsIFwiXFxcXEB1bGNvcm5lclwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGNsb3NlLCBcIlxcdTI1MTBcIiwgXCJcXFxcQHVyY29ybmVyXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgb3BlbiwgXCJcXHUyNTE0XCIsIFwiXFxcXEBsbGNvcm5lclwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGNsb3NlLCBcIlxcdTI1MThcIiwgXCJcXFxcQGxyY29ybmVyXCIsIHRydWUpOyAvLyBBTVMgQmluYXJ5IFJlbGF0aW9uc1xuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI2NlwiLCBcIlxcXFxsZXFxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhN2RcIiwgXCJcXFxcbGVxc2xhbnRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MmE5NVwiLCBcIlxcXFxlcXNsYW50bGVzc1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjcyXCIsIFwiXFxcXGxlc3NzaW1cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MmE4NVwiLCBcIlxcXFxsZXNzYXBwcm94XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNGFcIiwgXCJcXFxcYXBwcm94ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJkNlwiLCBcIlxcXFxsZXNzZG90XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZDhcIiwgXCJcXFxcbGxsXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNzZcIiwgXCJcXFxcbGVzc2d0clwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmRhXCIsIFwiXFxcXGxlc3NlcWd0clwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyYThiXCIsIFwiXFxcXGxlc3NlcXFndHJcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI1MVwiLCBcIlxcXFxkb3RlcWRvdFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjUzXCIsIFwiXFxcXHJpc2luZ2RvdHNlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjUyXCIsIFwiXFxcXGZhbGxpbmdkb3RzZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjIzZFwiLCBcIlxcXFxiYWNrc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyY2RcIiwgXCJcXFxcYmFja3NpbWVxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhYzVcIiwgXCJcXFxcc3Vic2V0ZXFxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZDBcIiwgXCJcXFxcU3Vic2V0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyOGZcIiwgXCJcXFxcc3FzdWJzZXRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI3Y1wiLCBcIlxcXFxwcmVjY3VybHllcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmRlXCIsIFwiXFxcXGN1cmx5ZXFwcmVjXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyN2VcIiwgXCJcXFxccHJlY3NpbVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyYWI3XCIsIFwiXFxcXHByZWNhcHByb3hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJiMlwiLCBcIlxcXFx2YXJ0cmlhbmdsZWxlZnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJiNFwiLCBcIlxcXFx0cmlhbmdsZWxlZnRlcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmE4XCIsIFwiXFxcXHZEYXNoXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyYWFcIiwgXCJcXFxcVnZkYXNoXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIzMjNcIiwgXCJcXFxcc21hbGxzbWlsZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMzIyXCIsIFwiXFxcXHNtYWxsZnJvd25cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI0ZlwiLCBcIlxcXFxidW1wZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI0ZVwiLCBcIlxcXFxCdW1wZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI2N1wiLCBcIlxcXFxnZXFxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhN2VcIiwgXCJcXFxcZ2Vxc2xhbnRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MmE5NlwiLCBcIlxcXFxlcXNsYW50Z3RyXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNzNcIiwgXCJcXFxcZ3Ryc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhODZcIiwgXCJcXFxcZ3RyYXBwcm94XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyZDdcIiwgXCJcXFxcZ3RyZG90XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZDlcIiwgXCJcXFxcZ2dnXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNzdcIiwgXCJcXFxcZ3RybGVzc1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmRiXCIsIFwiXFxcXGd0cmVxbGVzc1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyYThjXCIsIFwiXFxcXGd0cmVxcWxlc3NcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI1NlwiLCBcIlxcXFxlcWNpcmNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI1N1wiLCBcIlxcXFxjaXJjZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI1Y1wiLCBcIlxcXFx0cmlhbmdsZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjIzY1wiLCBcIlxcXFx0aGlja3NpbVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjQ4XCIsIFwiXFxcXHRoaWNrYXBwcm94XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJhYzZcIiwgXCJcXFxcc3Vwc2V0ZXFxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZDFcIiwgXCJcXFxcU3Vwc2V0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyOTBcIiwgXCJcXFxcc3FzdXBzZXRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI3ZFwiLCBcIlxcXFxzdWNjY3VybHllcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMmRmXCIsIFwiXFxcXGN1cmx5ZXFzdWNjXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyN2ZcIiwgXCJcXFxcc3VjY3NpbVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyYWI4XCIsIFwiXFxcXHN1Y2NhcHByb3hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJiM1wiLCBcIlxcXFx2YXJ0cmlhbmdsZXJpZ2h0XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyYjVcIiwgXCJcXFxcdHJpYW5nbGVyaWdodGVxXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyYTlcIiwgXCJcXFxcVmRhc2hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjIyM1wiLCBcIlxcXFxzaG9ydG1pZFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjI1XCIsIFwiXFxcXHNob3J0cGFyYWxsZWxcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI2Y1wiLCBcIlxcXFxiZXR3ZWVuXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZDRcIiwgXCJcXFxccGl0Y2hmb3JrXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyMWRcIiwgXCJcXFxcdmFycHJvcHRvXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTI1YzBcIiwgXCJcXFxcYmxhY2t0cmlhbmdsZWxlZnRcIik7IC8vIHVuaWNvZGUtbWF0aCBzYXlzIHRoYXQgXFx0aGVyZWZvcmUgaXMgYSBtYXRob3JkIGF0b20uXG4vLyBXZSBrZXB0IHRoZSBhbXNzeW1iIGF0b20gdHlwZSwgd2hpY2ggaXMgcmVsLlxuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjIzNFwiLCBcIlxcXFx0aGVyZWZvcmVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjIwZFwiLCBcIlxcXFxiYWNrZXBzaWxvblwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyNWI2XCIsIFwiXFxcXGJsYWNrdHJpYW5nbGVyaWdodFwiKTsgLy8gdW5pY29kZS1tYXRoIHNheXMgdGhhdCBcXGJlY2F1c2UgaXMgYSBtYXRob3JkIGF0b20uXG4vLyBXZSBrZXB0IHRoZSBhbXNzeW1iIGF0b20gdHlwZSwgd2hpY2ggaXMgcmVsLlxuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjIzNVwiLCBcIlxcXFxiZWNhdXNlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZDhcIiwgXCJcXFxcbGxsZXNzXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyZDlcIiwgXCJcXFxcZ2dndHJcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJiMlwiLCBcIlxcXFxsaGRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJiM1wiLCBcIlxcXFxyaGRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI0MlwiLCBcIlxcXFxlcXNpbVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjJjOFwiLCBcIlxcXFxKb2luXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNTFcIiwgXCJcXFxcRG90ZXFcIiwgdHJ1ZSk7IC8vIEFNUyBCaW5hcnkgT3BlcmF0b3JzXG5cbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMjE0XCIsIFwiXFxcXGRvdHBsdXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjIxNlwiLCBcIlxcXFxzbWFsbHNldG1pbnVzXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyZDJcIiwgXCJcXFxcQ2FwXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyZDNcIiwgXCJcXFxcQ3VwXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTJhNWVcIiwgXCJcXFxcZG91YmxlYmFyd2VkZ2VcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjI5ZlwiLCBcIlxcXFxib3htaW51c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMjllXCIsIFwiXFxcXGJveHBsdXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJjN1wiLCBcIlxcXFxkaXZpZGVvbnRpbWVzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyYzlcIiwgXCJcXFxcbHRpbWVzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyY2FcIiwgXCJcXFxccnRpbWVzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyY2JcIiwgXCJcXFxcbGVmdHRocmVldGltZXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJjY1wiLCBcIlxcXFxyaWdodHRocmVldGltZXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJjZlwiLCBcIlxcXFxjdXJseXdlZGdlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyY2VcIiwgXCJcXFxcY3VybHl2ZWVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjI5ZFwiLCBcIlxcXFxjaXJjbGVkZGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMjliXCIsIFwiXFxcXGNpcmNsZWRhc3RcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJjNVwiLCBcIlxcXFxjZW50ZXJkb3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJiYVwiLCBcIlxcXFxpbnRlcmNhbFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMmQyXCIsIFwiXFxcXGRvdWJsZWNhcFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMmQzXCIsIFwiXFxcXGRvdWJsZWN1cFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMmEwXCIsIFwiXFxcXGJveHRpbWVzXCIsIHRydWUpOyAvLyBBTVMgQXJyb3dzXG4vLyBOb3RlOiB1bmljb2RlLW1hdGggbWFwcyBcXHUyMWUyIHRvIHRoZWlyIG93biBmdW5jdGlvbiBcXHJpZ2h0ZGFzaGFycm93LlxuLy8gV2UnbGwgbWFwIGl0IHRvIEFNUyBmdW5jdGlvbiBcXGRhc2hyaWdodGFycm93LiBJdCBwcm9kdWNlcyB0aGUgc2FtZSBhdG9tLlxuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFlMlwiLCBcIlxcXFxkYXNocmlnaHRhcnJvd1wiLCB0cnVlKTsgLy8gdW5pY29kZS1tYXRoIG1hcHMgXFx1MjFlMCB0byBcXGxlZnRkYXNoYXJyb3cuIFdlJ2xsIHVzZSB0aGUgQU1TIHN5bm9ueW0uXG5cbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWUwXCIsIFwiXFxcXGRhc2hsZWZ0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFjN1wiLCBcIlxcXFxsZWZ0bGVmdGFycm93c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWM2XCIsIFwiXFxcXGxlZnRyaWdodGFycm93c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWRhXCIsIFwiXFxcXExsZWZ0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjE5ZVwiLCBcIlxcXFx0d29oZWFkbGVmdGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxYTJcIiwgXCJcXFxcbGVmdGFycm93dGFpbFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWFiXCIsIFwiXFxcXGxvb3BhcnJvd2xlZnRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFjYlwiLCBcIlxcXFxsZWZ0cmlnaHRoYXJwb29uc1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWI2XCIsIFwiXFxcXGN1cnZlYXJyb3dsZWZ0XCIsIHRydWUpOyAvLyB1bmljb2RlLW1hdGggbWFwcyBcXHUyMWJhIHRvIFxcYWN3b3BlbmNpcmNsZWFycm93LiBXZSdsbCB1c2UgdGhlIEFNUyBzeW5vbnltLlxuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFiYVwiLCBcIlxcXFxjaXJjbGVhcnJvd2xlZnRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFiMFwiLCBcIlxcXFxMc2hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFjOFwiLCBcIlxcXFx1cHVwYXJyb3dzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxYmZcIiwgXCJcXFxcdXBoYXJwb29ubGVmdFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWMzXCIsIFwiXFxcXGRvd25oYXJwb29ubGVmdFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjJiNlwiLCBcIlxcXFxvcmlnb2ZcIiwgdHJ1ZSk7IC8vIG5vdCBpbiBmb250XG5cbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjJiN1wiLCBcIlxcXFxpbWFnZW9mXCIsIHRydWUpOyAvLyBub3QgaW4gZm9udFxuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJiOFwiLCBcIlxcXFxtdWx0aW1hcFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWFkXCIsIFwiXFxcXGxlZnRyaWdodHNxdWlnYXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFjOVwiLCBcIlxcXFxyaWdodHJpZ2h0YXJyb3dzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxYzRcIiwgXCJcXFxccmlnaHRsZWZ0YXJyb3dzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxYTBcIiwgXCJcXFxcdHdvaGVhZHJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFhM1wiLCBcIlxcXFxyaWdodGFycm93dGFpbFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWFjXCIsIFwiXFxcXGxvb3BhcnJvd3JpZ2h0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxYjdcIiwgXCJcXFxcY3VydmVhcnJvd3JpZ2h0XCIsIHRydWUpOyAvLyB1bmljb2RlLW1hdGggbWFwcyBcXHUyMWJiIHRvIFxcY3dvcGVuY2lyY2xlYXJyb3cuIFdlJ2xsIHVzZSB0aGUgQU1TIHN5bm9ueW0uXG5cbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWJiXCIsIFwiXFxcXGNpcmNsZWFycm93cmlnaHRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFiMVwiLCBcIlxcXFxSc2hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFjYVwiLCBcIlxcXFxkb3duZG93bmFycm93c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWJlXCIsIFwiXFxcXHVwaGFycG9vbnJpZ2h0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxYzJcIiwgXCJcXFxcZG93bmhhcnBvb25yaWdodFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWRkXCIsIFwiXFxcXHJpZ2h0c3F1aWdhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWRkXCIsIFwiXFxcXGxlYWRzdG9cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFkYlwiLCBcIlxcXFxScmlnaHRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMWJlXCIsIFwiXFxcXHJlc3RyaWN0aW9uXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxOFwiLCBcImBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCIkXCIsIFwiXFxcXCRcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCIkXCIsIFwiXFxcXCRcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCIkXCIsIFwiXFxcXHRleHRkb2xsYXJcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCIlXCIsIFwiXFxcXCVcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCIlXCIsIFwiXFxcXCVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJfXCIsIFwiXFxcXF9cIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJfXCIsIFwiXFxcXF9cIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJfXCIsIFwiXFxcXHRleHR1bmRlcnNjb3JlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjIyMFwiLCBcIlxcXFxhbmdsZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMWVcIiwgXCJcXFxcaW5mdHlcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDMyXCIsIFwiXFxcXHByaW1lXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjViM1wiLCBcIlxcXFx0cmlhbmdsZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAzOTNcIiwgXCJcXFxcR2FtbWFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMzk0XCIsIFwiXFxcXERlbHRhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDM5OFwiLCBcIlxcXFxUaGV0YVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAzOWJcIiwgXCJcXFxcTGFtYmRhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDM5ZVwiLCBcIlxcXFxYaVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAzYTBcIiwgXCJcXFxcUGlcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwM2EzXCIsIFwiXFxcXFNpZ21hXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDNhNVwiLCBcIlxcXFxVcHNpbG9uXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDNhNlwiLCBcIlxcXFxQaGlcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwM2E4XCIsIFwiXFxcXFBzaVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAzYTlcIiwgXCJcXFxcT21lZ2FcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJBXCIsIFwiXFx1MDM5MVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIkJcIiwgXCJcXHUwMzkyXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiRVwiLCBcIlxcdTAzOTVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJaXCIsIFwiXFx1MDM5NlwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIkhcIiwgXCJcXHUwMzk3XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiSVwiLCBcIlxcdTAzOTlcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJLXCIsIFwiXFx1MDM5QVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIk1cIiwgXCJcXHUwMzlDXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiTlwiLCBcIlxcdTAzOURcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJPXCIsIFwiXFx1MDM5RlwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlBcIiwgXCJcXHUwM0ExXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiVFwiLCBcIlxcdTAzQTRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJYXCIsIFwiXFx1MDNBN1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAwYWNcIiwgXCJcXFxcbmVnXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDBhY1wiLCBcIlxcXFxsbm90XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjJhNFwiLCBcIlxcXFx0b3BcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMmE1XCIsIFwiXFxcXGJvdFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMDVcIiwgXCJcXFxcZW1wdHlzZXRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTIyMDVcIiwgXCJcXFxcdmFybm90aGluZ1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYjFcIiwgXCJcXFxcYWxwaGFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM2IyXCIsIFwiXFxcXGJldGFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM2IzXCIsIFwiXFxcXGdhbW1hXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNiNFwiLCBcIlxcXFxkZWx0YVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzZjVcIiwgXCJcXFxcZXBzaWxvblwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYjZcIiwgXCJcXFxcemV0YVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYjdcIiwgXCJcXFxcZXRhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNiOFwiLCBcIlxcXFx0aGV0YVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYjlcIiwgXCJcXFxcaW90YVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYmFcIiwgXCJcXFxca2FwcGFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM2JiXCIsIFwiXFxcXGxhbWJkYVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYmNcIiwgXCJcXFxcbXVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM2JkXCIsIFwiXFxcXG51XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNiZVwiLCBcIlxcXFx4aVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYmZcIiwgXCJcXFxcb21pY3JvblwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYzBcIiwgXCJcXFxccGlcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM2MxXCIsIFwiXFxcXHJob1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYzNcIiwgXCJcXFxcc2lnbWFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM2M0XCIsIFwiXFxcXHRhdVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYzVcIiwgXCJcXFxcdXBzaWxvblwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzZDVcIiwgXCJcXFxccGhpXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNjN1wiLCBcIlxcXFxjaGlcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM2M4XCIsIFwiXFxcXHBzaVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYzlcIiwgXCJcXFxcb21lZ2FcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM2I1XCIsIFwiXFxcXHZhcmVwc2lsb25cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM2QxXCIsIFwiXFxcXHZhcnRoZXRhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNkNlwiLCBcIlxcXFx2YXJwaVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzZjFcIiwgXCJcXFxcdmFycmhvXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNjMlwiLCBcIlxcXFx2YXJzaWdtYVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzYzZcIiwgXCJcXFxcdmFycGhpXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjE3XCIsIFwiKlwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiK1wiLCBcIitcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyMTJcIiwgXCItXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMmM1XCIsIFwiXFxcXGNkb3RcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyMThcIiwgXCJcXFxcY2lyY1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MDBmN1wiLCBcIlxcXFxkaXZcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTAwYjFcIiwgXCJcXFxccG1cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTAwZDdcIiwgXCJcXFxcdGltZXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyMjlcIiwgXCJcXFxcY2FwXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjJhXCIsIFwiXFxcXGN1cFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIxNlwiLCBcIlxcXFxzZXRtaW51c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIyN1wiLCBcIlxcXFxsYW5kXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjI4XCIsIFwiXFxcXGxvclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIyN1wiLCBcIlxcXFx3ZWRnZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIyOFwiLCBcIlxcXFx2ZWVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMjFhXCIsIFwiXFxcXHN1cmRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3BlbiwgXCJcXHUyN2U4XCIsIFwiXFxcXGxhbmdsZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcGVuLCBcIlxcdTIyMjNcIiwgXCJcXFxcbHZlcnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3BlbiwgXCJcXHUyMjI1XCIsIFwiXFxcXGxWZXJ0XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIj9cIiwgXCI/XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIiFcIiwgXCIhXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIlxcdTI3ZTlcIiwgXCJcXFxccmFuZ2xlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIlxcdTIyMjNcIiwgXCJcXFxccnZlcnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgY2xvc2UsIFwiXFx1MjIyNVwiLCBcIlxcXFxyVmVydFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiPVwiLCBcIj1cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIjpcIiwgXCI6XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjQ4XCIsIFwiXFxcXGFwcHJveFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI0NVwiLCBcIlxcXFxjb25nXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjY1XCIsIFwiXFxcXGdlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjY1XCIsIFwiXFxcXGdlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjE5MFwiLCBcIlxcXFxnZXRzXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCI+XCIsIFwiXFxcXGd0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjA4XCIsIFwiXFxcXGluXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHVlMDIwXCIsIFwiXFxcXEBub3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyODJcIiwgXCJcXFxcc3Vic2V0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjgzXCIsIFwiXFxcXHN1cHNldFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI4NlwiLCBcIlxcXFxzdWJzZXRlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI4N1wiLCBcIlxcXFxzdXBzZXRlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjg4XCIsIFwiXFxcXG5zdWJzZXRlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjg5XCIsIFwiXFxcXG5zdXBzZXRlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjJhOFwiLCBcIlxcXFxtb2RlbHNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxOTBcIiwgXCJcXFxcbGVmdGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjY0XCIsIFwiXFxcXGxlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjY0XCIsIFwiXFxcXGxlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiPFwiLCBcIlxcXFxsdFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjE5MlwiLCBcIlxcXFxyaWdodGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMTkyXCIsIFwiXFxcXHRvXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNzFcIiwgXCJcXFxcbmdlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjcwXCIsIFwiXFxcXG5sZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgc3BhY2luZywgXCJcXHUwMGEwXCIsIFwiXFxcXCBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgc3BhY2luZywgXCJcXHUwMGEwXCIsIFwiXFxcXHNwYWNlXCIpOyAvLyBSZWY6IExhVGVYIFNvdXJjZSAyZTogXFxEZWNsYXJlUm9idXN0Q29tbWFuZHtcXG5vYnJlYWtzcGFjZX17JVxuXG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgc3BhY2luZywgXCJcXHUwMGEwXCIsIFwiXFxcXG5vYnJlYWtzcGFjZVwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBzcGFjaW5nLCBcIlxcdTAwYTBcIiwgXCJcXFxcIFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBzcGFjaW5nLCBcIlxcdTAwYTBcIiwgXCIgXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHNwYWNpbmcsIFwiXFx1MDBhMFwiLCBcIlxcXFxzcGFjZVwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBzcGFjaW5nLCBcIlxcdTAwYTBcIiwgXCJcXFxcbm9icmVha3NwYWNlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHNwYWNpbmcsIG51bGwsIFwiXFxcXG5vYnJlYWtcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgc3BhY2luZywgbnVsbCwgXCJcXFxcYWxsb3dicmVha1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBwdW5jdCwgXCIsXCIsIFwiLFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBwdW5jdCwgXCI7XCIsIFwiO1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMmJjXCIsIFwiXFxcXGJhcndlZGdlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyYmJcIiwgXCJcXFxcdmVlYmFyXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjk5XCIsIFwiXFxcXG9kb3RcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyOTVcIiwgXCJcXFxcb3BsdXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyOTdcIiwgXCJcXFxcb3RpbWVzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjIwMlwiLCBcIlxcXFxwYXJ0aWFsXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjk4XCIsIFwiXFxcXG9zbGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMjlhXCIsIFwiXFxcXGNpcmNsZWRjaXJjXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyYTFcIiwgXCJcXFxcYm94ZG90XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyNWIzXCIsIFwiXFxcXGJpZ3RyaWFuZ2xldXBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTI1YmRcIiwgXCJcXFxcYmlndHJpYW5nbGVkb3duXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMDIwXCIsIFwiXFxcXGRhZ2dlclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjJjNFwiLCBcIlxcXFxkaWFtb25kXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMmM2XCIsIFwiXFxcXHN0YXJcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTI1YzNcIiwgXCJcXFxcdHJpYW5nbGVsZWZ0XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyNWI5XCIsIFwiXFxcXHRyaWFuZ2xlcmlnaHRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3BlbiwgXCJ7XCIsIFwiXFxcXHtcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJ7XCIsIFwiXFxcXHtcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJ7XCIsIFwiXFxcXHRleHRicmFjZWxlZnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgY2xvc2UsIFwifVwiLCBcIlxcXFx9XCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwifVwiLCBcIlxcXFx9XCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwifVwiLCBcIlxcXFx0ZXh0YnJhY2VyaWdodFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcGVuLCBcIntcIiwgXCJcXFxcbGJyYWNlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIn1cIiwgXCJcXFxccmJyYWNlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wZW4sIFwiW1wiLCBcIlxcXFxsYnJhY2tcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJbXCIsIFwiXFxcXGxicmFja1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBjbG9zZSwgXCJdXCIsIFwiXFxcXHJicmFja1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIl1cIiwgXCJcXFxccmJyYWNrXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wZW4sIFwiKFwiLCBcIlxcXFxscGFyZW5cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgY2xvc2UsIFwiKVwiLCBcIlxcXFxycGFyZW5cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCI8XCIsIFwiXFxcXHRleHRsZXNzXCIsIHRydWUpOyAvLyBpbiBUMSBmb250ZW5jXG5cbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIj5cIiwgXCJcXFxcdGV4dGdyZWF0ZXJcIiwgdHJ1ZSk7IC8vIGluIFQxIGZvbnRlbmNcblxuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wZW4sIFwiXFx1MjMwYVwiLCBcIlxcXFxsZmxvb3JcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgY2xvc2UsIFwiXFx1MjMwYlwiLCBcIlxcXFxyZmxvb3JcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3BlbiwgXCJcXHUyMzA4XCIsIFwiXFxcXGxjZWlsXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIlxcdTIzMDlcIiwgXCJcXFxccmNlaWxcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXFxcXCIsIFwiXFxcXGJhY2tzbGFzaFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMjNcIiwgXCJ8XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjIyM1wiLCBcIlxcXFx2ZXJ0XCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwifFwiLCBcIlxcXFx0ZXh0YmFyXCIsIHRydWUpOyAvLyBpbiBUMSBmb250ZW5jXG5cbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMjVcIiwgXCJcXFxcfFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMjVcIiwgXCJcXFxcVmVydFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMjVcIiwgXCJcXFxcdGV4dGJhcmRibFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIn5cIiwgXCJcXFxcdGV4dGFzY2lpdGlsZGVcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXFxcXCIsIFwiXFxcXHRleHRiYWNrc2xhc2hcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJeXCIsIFwiXFxcXHRleHRhc2NpaWNpcmN1bVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjE5MVwiLCBcIlxcXFx1cGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMWQxXCIsIFwiXFxcXFVwYXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxOTNcIiwgXCJcXFxcZG93bmFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMWQzXCIsIFwiXFxcXERvd25hcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjE5NVwiLCBcIlxcXFx1cGRvd25hcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFkNVwiLCBcIlxcXFxVcGRvd25hcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMjEwXCIsIFwiXFxcXGNvcHJvZFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMmMxXCIsIFwiXFxcXGJpZ3ZlZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMmMwXCIsIFwiXFxcXGJpZ3dlZGdlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wLCBcIlxcdTJhMDRcIiwgXCJcXFxcYmlndXBsdXNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjJjMlwiLCBcIlxcXFxiaWdjYXBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjJjM1wiLCBcIlxcXFxiaWdjdXBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIyYlwiLCBcIlxcXFxpbnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIyYlwiLCBcIlxcXFxpbnRvcFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMjJjXCIsIFwiXFxcXGlpbnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIyZFwiLCBcIlxcXFxpaWludFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMjBmXCIsIFwiXFxcXHByb2RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIxMVwiLCBcIlxcXFxzdW1cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MmEwMlwiLCBcIlxcXFxiaWdvdGltZXNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MmEwMVwiLCBcIlxcXFxiaWdvcGx1c1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyYTAwXCIsIFwiXFxcXGJpZ29kb3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIyZVwiLCBcIlxcXFxvaW50XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wLCBcIlxcdTIyMmZcIiwgXCJcXFxcb2lpbnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIzMFwiLCBcIlxcXFxvaWlpbnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MmEwNlwiLCBcIlxcXFxiaWdzcWN1cFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMjJiXCIsIFwiXFxcXHNtYWxsaW50XCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGlubmVyLCBcIlxcdTIwMjZcIiwgXCJcXFxcdGV4dGVsbGlwc2lzXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGlubmVyLCBcIlxcdTIwMjZcIiwgXCJcXFxcbWF0aGVsbGlwc2lzXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGlubmVyLCBcIlxcdTIwMjZcIiwgXCJcXFxcbGRvdHNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgaW5uZXIsIFwiXFx1MjAyNlwiLCBcIlxcXFxsZG90c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBpbm5lciwgXCJcXHUyMmVmXCIsIFwiXFxcXEBjZG90c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBpbm5lciwgXCJcXHUyMmYxXCIsIFwiXFxcXGRkb3RzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjJlZVwiLCBcIlxcXFx2YXJ2ZG90c1wiKTsgLy8gXFx2ZG90cyBpcyBhIG1hY3JvXG5cbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBhY2NlbnQsIFwiXFx1MDJjYVwiLCBcIlxcXFxhY3V0ZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBhY2NlbnQsIFwiXFx1MDJjYlwiLCBcIlxcXFxncmF2ZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBhY2NlbnQsIFwiXFx1MDBhOFwiLCBcIlxcXFxkZG90XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGFjY2VudCwgXCJcXHUwMDdlXCIsIFwiXFxcXHRpbGRlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGFjY2VudCwgXCJcXHUwMmM5XCIsIFwiXFxcXGJhclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBhY2NlbnQsIFwiXFx1MDJkOFwiLCBcIlxcXFxicmV2ZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBhY2NlbnQsIFwiXFx1MDJjN1wiLCBcIlxcXFxjaGVja1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBhY2NlbnQsIFwiXFx1MDA1ZVwiLCBcIlxcXFxoYXRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYWNjZW50LCBcIlxcdTIwZDdcIiwgXCJcXFxcdmVjXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGFjY2VudCwgXCJcXHUwMmQ5XCIsIFwiXFxcXGRvdFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBhY2NlbnQsIFwiXFx1MDJkYVwiLCBcIlxcXFxtYXRocmluZ1wiKTsgLy8gXFxpbWF0aCBhbmQgXFxqbWF0aCBzaG91bGQgYmUgaW52YXJpYW50IHRvIFxcbWF0aHJtLCBcXG1hdGhiZiwgZXRjLiwgc28gdXNlIFBVQVxuXG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHVlMTMxXCIsIFwiXFxcXEBpbWF0aFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdWUyMzdcIiwgXCJcXFxcQGptYXRoXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDEzMVwiLCBcIlxcdTAxMzFcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMjM3XCIsIFwiXFx1MDIzN1wiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAxMzFcIiwgXCJcXFxcaVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAyMzdcIiwgXCJcXFxcalwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAwZGZcIiwgXCJcXFxcc3NcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMGU2XCIsIFwiXFxcXGFlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MDE1M1wiLCBcIlxcXFxvZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAwZjhcIiwgXCJcXFxcb1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAwYzZcIiwgXCJcXFxcQUVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMTUyXCIsIFwiXFxcXE9FXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MDBkOFwiLCBcIlxcXFxPXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGFjY2VudCwgXCJcXHUwMmNhXCIsIFwiXFxcXCdcIik7IC8vIGFjdXRlXG5cbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBhY2NlbnQsIFwiXFx1MDJjYlwiLCBcIlxcXFxgXCIpOyAvLyBncmF2ZVxuXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyYzZcIiwgXCJcXFxcXlwiKTsgLy8gY2lyY3VtZmxleFxuXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyZGNcIiwgXCJcXFxcflwiKTsgLy8gdGlsZGVcblxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGFjY2VudCwgXCJcXHUwMmM5XCIsIFwiXFxcXD1cIik7IC8vIG1hY3JvblxuXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyZDhcIiwgXCJcXFxcdVwiKTsgLy8gYnJldmVcblxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGFjY2VudCwgXCJcXHUwMmQ5XCIsIFwiXFxcXC5cIik7IC8vIGRvdCBhYm92ZVxuXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxcdTAwYjhcIiwgXCJcXFxcY1wiKTsgLy8gY2VkaWxsYVxuXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyZGFcIiwgXCJcXFxcclwiKTsgLy8gcmluZyBhYm92ZVxuXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyYzdcIiwgXCJcXFxcdlwiKTsgLy8gY2Fyb25cblxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGFjY2VudCwgXCJcXHUwMGE4XCIsICdcXFxcXCInKTsgLy8gZGlhcmVzaXNcblxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGFjY2VudCwgXCJcXHUwMmRkXCIsIFwiXFxcXEhcIik7IC8vIGRvdWJsZSBhY3V0ZVxuXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxcdTI1ZWZcIiwgXCJcXFxcdGV4dGNpcmNsZWRcIik7IC8vIFxcYmlnY2lyYyBnbHlwaFxuLy8gVGhlc2UgbGlnYXR1cmVzIGFyZSBkZXRlY3RlZCBhbmQgY3JlYXRlZCBpbiBQYXJzZXIuanMncyBgZm9ybUxpZ2F0dXJlc2AuXG5cbnZhciBsaWdhdHVyZXMgPSB7XG4gIFwiLS1cIjogdHJ1ZSxcbiAgXCItLS1cIjogdHJ1ZSxcbiAgXCJgYFwiOiB0cnVlLFxuICBcIicnXCI6IHRydWVcbn07XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDEzXCIsIFwiLS1cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDEzXCIsIFwiXFxcXHRleHRlbmRhc2hcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDE0XCIsIFwiLS0tXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxNFwiLCBcIlxcXFx0ZXh0ZW1kYXNoXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxOFwiLCBcImBcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDE4XCIsIFwiXFxcXHRleHRxdW90ZWxlZnRcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDE5XCIsIFwiJ1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMTlcIiwgXCJcXFxcdGV4dHF1b3RlcmlnaHRcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDFjXCIsIFwiYGBcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDFjXCIsIFwiXFxcXHRleHRxdW90ZWRibGxlZnRcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDFkXCIsIFwiJydcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDFkXCIsIFwiXFxcXHRleHRxdW90ZWRibHJpZ2h0XCIpOyAvLyAgXFxkZWdyZWUgZnJvbSBnZW5zeW1iIHBhY2thZ2VcblxuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDBiMFwiLCBcIlxcXFxkZWdyZWVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMGIwXCIsIFwiXFxcXGRlZ3JlZVwiKTsgLy8gXFx0ZXh0ZGVncmVlIGZyb20gaW5wdXRlbmMgcGFja2FnZVxuXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMGIwXCIsIFwiXFxcXHRleHRkZWdyZWVcIiwgdHJ1ZSk7IC8vIFRPRE86IEluIExhVGVYLCBcXHBvdW5kcyBjYW4gZ2VuZXJhdGUgYSBkaWZmZXJlbnQgY2hhcmFjdGVyIGluIHRleHQgYW5kIG1hdGhcbi8vIG1vZGUsIGJ1dCBhbW9uZyBvdXIgZm9udHMsIG9ubHkgTWFpbi1SZWd1bGFyIGRlZmluZXMgdGhpcyBjaGFyYWN0ZXIgXCIxNjNcIi5cblxuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDBhM1wiLCBcIlxcXFxwb3VuZHNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMGEzXCIsIFwiXFxcXG1hdGhzdGVybGluZ1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAwYTNcIiwgXCJcXFxccG91bmRzXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MDBhM1wiLCBcIlxcXFx0ZXh0c3RlcmxpbmdcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI3MjBcIiwgXCJcXFxcbWFsdGVzZVwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBhbXMsIHRleHRvcmQsIFwiXFx1MjcyMFwiLCBcIlxcXFxtYWx0ZXNlXCIpOyAvLyBUaGVyZSBhcmUgbG90cyBvZiBzeW1ib2xzIHdoaWNoIGFyZSB0aGUgc2FtZSwgc28gd2UgYWRkIHRoZW0gaW4gYWZ0ZXJ3YXJkcy5cbi8vIEFsbCBvZiB0aGVzZSBhcmUgdGV4dG9yZHMgaW4gbWF0aCBtb2RlXG5cbnZhciBtYXRoVGV4dFN5bWJvbHMgPSBcIjAxMjM0NTY3ODkvQC5cXFwiXCI7XG5cbmZvciAodmFyIGkgPSAwOyBpIDwgbWF0aFRleHRTeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG4gIHZhciBjaCA9IG1hdGhUZXh0U3ltYm9scy5jaGFyQXQoaSk7XG4gIGRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBjaCwgY2gpO1xufSAvLyBBbGwgb2YgdGhlc2UgYXJlIHRleHRvcmRzIGluIHRleHQgbW9kZVxuXG5cbnZhciB0ZXh0U3ltYm9scyA9IFwiMDEyMzQ1Njc4OSFAKigpLT0rXFxcIjs6Py8uLFwiO1xuXG5mb3IgKHZhciBfaSA9IDA7IF9pIDwgdGV4dFN5bWJvbHMubGVuZ3RoOyBfaSsrKSB7XG4gIHZhciBfY2ggPSB0ZXh0U3ltYm9scy5jaGFyQXQoX2kpO1xuXG4gIGRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBfY2gsIF9jaCk7XG59IC8vIEFsbCBvZiB0aGVzZSBhcmUgdGV4dG9yZHMgaW4gdGV4dCBtb2RlLCBhbmQgbWF0aG9yZHMgaW4gbWF0aCBtb2RlXG5cblxudmFyIGxldHRlcnMgPSBcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcblxuZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgbGV0dGVycy5sZW5ndGg7IF9pMisrKSB7XG4gIHZhciBfY2gyID0gbGV0dGVycy5jaGFyQXQoX2kyKTtcblxuICBkZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgX2NoMiwgX2NoMik7XG4gIGRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBfY2gyLCBfY2gyKTtcbn0gLy8gQmxhY2tib2FyZCBib2xkIGFuZCBzY3JpcHQgbGV0dGVycyBpbiBVbmljb2RlIHJhbmdlXG5cblxuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJDXCIsIFwiXFx1MjEwMlwiKTsgLy8gYmxhY2tib2FyZCBib2xkXG5cbmRlZmluZVN5bWJvbCh0ZXh0LCBhbXMsIHRleHRvcmQsIFwiQ1wiLCBcIlxcdTIxMDJcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIkhcIiwgXCJcXHUyMTBEXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIGFtcywgdGV4dG9yZCwgXCJIXCIsIFwiXFx1MjEwRFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiTlwiLCBcIlxcdTIxMTVcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgYW1zLCB0ZXh0b3JkLCBcIk5cIiwgXCJcXHUyMTE1XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJQXCIsIFwiXFx1MjExOVwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBhbXMsIHRleHRvcmQsIFwiUFwiLCBcIlxcdTIxMTlcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlFcIiwgXCJcXHUyMTFBXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIGFtcywgdGV4dG9yZCwgXCJRXCIsIFwiXFx1MjExQVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiUlwiLCBcIlxcdTIxMURcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgYW1zLCB0ZXh0b3JkLCBcIlJcIiwgXCJcXHUyMTFEXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJaXCIsIFwiXFx1MjEyNFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBhbXMsIHRleHRvcmQsIFwiWlwiLCBcIlxcdTIxMjRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJoXCIsIFwiXFx1MjEwRVwiKTsgLy8gaXRhbGljIGgsIFBsYW5jayBjb25zdGFudFxuXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgbWF0aG9yZCwgXCJoXCIsIFwiXFx1MjEwRVwiKTsgLy8gVGhlIG5leHQgbG9vcCBsb2FkcyB3aWRlIChzdXJyb2dhdGUgcGFpcikgY2hhcmFjdGVycy5cbi8vIFdlIHN1cHBvcnQgc29tZSBsZXR0ZXJzIGluIHRoZSBVbmljb2RlIHJhbmdlIFUrMUQ0MDAgdG8gVSsxRDdGRixcbi8vIE1hdGhlbWF0aWNhbCBBbHBoYW51bWVyaWMgU3ltYm9scy5cbi8vIFNvbWUgZWRpdG9ycyBkbyBub3QgZGVhbCB3ZWxsIHdpdGggd2lkZSBjaGFyYWN0ZXJzLiBTbyBkb24ndCB3cml0ZSB0aGVcbi8vIHN0cmluZyBpbnRvIHRoaXMgZmlsZS4gSW5zdGVhZCwgY3JlYXRlIHRoZSBzdHJpbmcgZnJvbSB0aGUgc3Vycm9nYXRlIHBhaXIuXG5cbnZhciB3aWRlQ2hhciA9IFwiXCI7XG5cbmZvciAodmFyIF9pMyA9IDA7IF9pMyA8IGxldHRlcnMubGVuZ3RoOyBfaTMrKykge1xuICB2YXIgX2NoMyA9IGxldHRlcnMuY2hhckF0KF9pMyk7IC8vIFRoZSBoZXggbnVtYmVycyBpbiB0aGUgbmV4dCBsaW5lIGFyZSBhIHN1cnJvZ2F0ZSBwYWlyLlxuICAvLyAweEQ4MzUgaXMgdGhlIGhpZ2ggc3Vycm9nYXRlIGZvciBhbGwgbGV0dGVycyBpbiB0aGUgcmFuZ2Ugd2Ugc3VwcG9ydC5cbiAgLy8gMHhEQzAwIGlzIHRoZSBsb3cgc3Vycm9nYXRlIGZvciBib2xkIEEuXG5cblxuICB3aWRlQ2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhEODM1LCAweERDMDAgKyBfaTMpOyAvLyBBLVogYS16IGJvbGRcblxuICBkZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgX2NoMywgd2lkZUNoYXIpO1xuICBkZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgX2NoMywgd2lkZUNoYXIpO1xuICB3aWRlQ2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhEODM1LCAweERDMzQgKyBfaTMpOyAvLyBBLVogYS16IGl0YWxpY1xuXG4gIGRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBfY2gzLCB3aWRlQ2hhcik7XG4gIGRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBfY2gzLCB3aWRlQ2hhcik7XG4gIHdpZGVDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweEQ4MzUsIDB4REM2OCArIF9pMyk7IC8vIEEtWiBhLXogYm9sZCBpdGFsaWNcblxuICBkZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgX2NoMywgd2lkZUNoYXIpO1xuICBkZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgX2NoMywgd2lkZUNoYXIpO1xuICB3aWRlQ2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhEODM1LCAweEREMDQgKyBfaTMpOyAvLyBBLVogYS16IEZyYWt0dXJcblxuICBkZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgX2NoMywgd2lkZUNoYXIpO1xuICBkZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgX2NoMywgd2lkZUNoYXIpO1xuICB3aWRlQ2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhEODM1LCAweERENkMgKyBfaTMpOyAvLyBBLVogYS16IGJvbGQgRnJha3R1clxuXG4gIGRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBfY2gzLCB3aWRlQ2hhcik7XG4gIGRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBfY2gzLCB3aWRlQ2hhcik7XG4gIHdpZGVDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweEQ4MzUsIDB4RERBMCArIF9pMyk7IC8vIEEtWiBhLXogc2Fucy1zZXJpZlxuXG4gIGRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBfY2gzLCB3aWRlQ2hhcik7XG4gIGRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBfY2gzLCB3aWRlQ2hhcik7XG4gIHdpZGVDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweEQ4MzUsIDB4RERENCArIF9pMyk7IC8vIEEtWiBhLXogc2FucyBib2xkXG5cbiAgZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIF9jaDMsIHdpZGVDaGFyKTtcbiAgZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIF9jaDMsIHdpZGVDaGFyKTtcbiAgd2lkZUNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RDgzNSwgMHhERTA4ICsgX2kzKTsgLy8gQS1aIGEteiBzYW5zIGl0YWxpY1xuXG4gIGRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBfY2gzLCB3aWRlQ2hhcik7XG4gIGRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBfY2gzLCB3aWRlQ2hhcik7XG4gIHdpZGVDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweEQ4MzUsIDB4REU3MCArIF9pMyk7IC8vIEEtWiBhLXogbW9ub3NwYWNlXG5cbiAgZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIF9jaDMsIHdpZGVDaGFyKTtcbiAgZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIF9jaDMsIHdpZGVDaGFyKTtcblxuICBpZiAoX2kzIDwgMjYpIHtcbiAgICAvLyBLYVRlWCBmb250cyBoYXZlIG9ubHkgY2FwaXRhbCBsZXR0ZXJzIGZvciBibGFja2JvYXJkIGJvbGQgYW5kIHNjcmlwdC5cbiAgICAvLyBTZWUgZXhjZXB0aW9uIGZvciBrIGJlbG93LlxuICAgIHdpZGVDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweEQ4MzUsIDB4REQzOCArIF9pMyk7IC8vIEEtWiBkb3VibGUgc3RydWNrXG5cbiAgICBkZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgX2NoMywgd2lkZUNoYXIpO1xuICAgIGRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBfY2gzLCB3aWRlQ2hhcik7XG4gICAgd2lkZUNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RDgzNSwgMHhEQzlDICsgX2kzKTsgLy8gQS1aIHNjcmlwdFxuXG4gICAgZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIF9jaDMsIHdpZGVDaGFyKTtcbiAgICBkZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgX2NoMywgd2lkZUNoYXIpO1xuICB9IC8vIFRPRE86IEFkZCBib2xkIHNjcmlwdCB3aGVuIGl0IGlzIHN1cHBvcnRlZCBieSBhIEthVGVYIGZvbnQuXG5cbn0gLy8gXCJrXCIgaXMgdGhlIG9ubHkgZG91YmxlIHN0cnVjayBsb3dlciBjYXNlIGxldHRlciBpbiB0aGUgS2FUZVggZm9udHMuXG5cblxud2lkZUNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RDgzNSwgMHhERDVDKTsgLy8gayBkb3VibGUgc3RydWNrXG5cbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcImtcIiwgd2lkZUNoYXIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwia1wiLCB3aWRlQ2hhcik7IC8vIE5leHQsIHNvbWUgd2lkZSBjaGFyYWN0ZXIgbnVtZXJhbHNcblxuZm9yICh2YXIgX2k0ID0gMDsgX2k0IDwgMTA7IF9pNCsrKSB7XG4gIHZhciBfY2g0ID0gX2k0LnRvU3RyaW5nKCk7XG5cbiAgd2lkZUNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RDgzNSwgMHhERkNFICsgX2k0KTsgLy8gMC05IGJvbGRcblxuICBkZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgX2NoNCwgd2lkZUNoYXIpO1xuICBkZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgX2NoNCwgd2lkZUNoYXIpO1xuICB3aWRlQ2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhEODM1LCAweERGRTIgKyBfaTQpOyAvLyAwLTkgc2FucyBzZXJpZlxuXG4gIGRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBfY2g0LCB3aWRlQ2hhcik7XG4gIGRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBfY2g0LCB3aWRlQ2hhcik7XG4gIHdpZGVDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweEQ4MzUsIDB4REZFQyArIF9pNCk7IC8vIDAtOSBib2xkIHNhbnNcblxuICBkZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgX2NoNCwgd2lkZUNoYXIpO1xuICBkZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgX2NoNCwgd2lkZUNoYXIpO1xuICB3aWRlQ2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhEODM1LCAweERGRjYgKyBfaTQpOyAvLyAwLTkgbW9ub3NwYWNlXG5cbiAgZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIF9jaDQsIHdpZGVDaGFyKTtcbiAgZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIF9jaDQsIHdpZGVDaGFyKTtcbn0gLy8gV2UgYWRkIHRoZXNlIExhdGluLTEgbGV0dGVycyBhcyBzeW1ib2xzIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSxcbi8vIGJ1dCB0aGV5IGFyZSBub3QgYWN0dWFsbHkgaW4gdGhlIGZvbnQsIG5vciBhcmUgdGhleSBzdXBwb3J0ZWQgYnkgdGhlXG4vLyBVbmljb2RlIGFjY2VudCBtZWNoYW5pc20sIHNvIHRoZXkgZmFsbCBiYWNrIHRvIFRpbWVzIGZvbnQgYW5kIGxvb2sgdWdseS5cbi8vIFRPRE8oZWRlbWFpbmUpOiBGaXggdGhpcy5cblxuXG52YXIgZXh0cmFMYXRpbiA9IFwiXFx1MDBkMFxcdTAwZGVcXHUwMGZlXCI7XG5cbmZvciAodmFyIF9pNSA9IDA7IF9pNSA8IGV4dHJhTGF0aW4ubGVuZ3RoOyBfaTUrKykge1xuICB2YXIgX2NoNSA9IGV4dHJhTGF0aW4uY2hhckF0KF9pNSk7XG5cbiAgZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIF9jaDUsIF9jaDUpO1xuICBkZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgX2NoNSwgX2NoNSk7XG59XG5cbi8qKlxuICogVGhpcyBmaWxlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIFVuaWNvZGUgcmFuZ2UgVSsxRDQwMCB0byBVKzFEN0ZGLFxuICogTWF0aGVtYXRpY2FsIEFscGhhbnVtZXJpYyBTeW1ib2xzLlxuICpcbiAqIEZ1bmN0aW9uIHdpZGVDaGFyYWN0ZXJGb250IHRha2VzIGEgd2lkZSBjaGFyYWN0ZXIgYXMgaW5wdXQgYW5kIHJldHVybnNcbiAqIHRoZSBmb250IGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0byByZW5kZXIgaXQgcHJvcGVybHkuXG4gKi9cbi8qKlxuICogRGF0YSBiZWxvdyBpcyBmcm9tIGh0dHBzOi8vd3d3LnVuaWNvZGUub3JnL2NoYXJ0cy9QREYvVTFENDAwLnBkZlxuICogVGhhdCBkb2N1bWVudCBzb3J0cyBjaGFyYWN0ZXJzIGludG8gZ3JvdXBzIGJ5IGZvbnQgdHlwZSwgc2F5IGJvbGQgb3IgaXRhbGljLlxuICpcbiAqIEluIHRoZSBhcnJheXMgYmVsb3csIGVhY2ggc3ViYXJyYXkgY29uc2lzdHMgdGhyZWUgZWxlbWVudHM6XG4gKiAgICAgICogVGhlIENTUyBjbGFzcyBvZiB0aGF0IGdyb3VwIHdoZW4gaW4gbWF0aCBtb2RlLlxuICogICAgICAqIFRoZSBDU1MgY2xhc3Mgb2YgdGhhdCBncm91cCB3aGVuIGluIHRleHQgbW9kZS5cbiAqICAgICAgKiBUaGUgZm9udCBuYW1lLCBzbyB0aGF0IEthVGVYIGNhbiBnZXQgZm9udCBtZXRyaWNzLlxuICovXG5cbnZhciB3aWRlTGF0aW5MZXR0ZXJEYXRhID0gW1tcIm1hdGhiZlwiLCBcInRleHRiZlwiLCBcIk1haW4tQm9sZFwiXSwgLy8gQS1aIGJvbGQgdXByaWdodFxuW1wibWF0aGJmXCIsIFwidGV4dGJmXCIsIFwiTWFpbi1Cb2xkXCJdLCAvLyBhLXogYm9sZCB1cHJpZ2h0XG5bXCJtYXRobm9ybWFsXCIsIFwidGV4dGl0XCIsIFwiTWF0aC1JdGFsaWNcIl0sIC8vIEEtWiBpdGFsaWNcbltcIm1hdGhub3JtYWxcIiwgXCJ0ZXh0aXRcIiwgXCJNYXRoLUl0YWxpY1wiXSwgLy8gYS16IGl0YWxpY1xuW1wiYm9sZHN5bWJvbFwiLCBcImJvbGRzeW1ib2xcIiwgXCJNYWluLUJvbGRJdGFsaWNcIl0sIC8vIEEtWiBib2xkIGl0YWxpY1xuW1wiYm9sZHN5bWJvbFwiLCBcImJvbGRzeW1ib2xcIiwgXCJNYWluLUJvbGRJdGFsaWNcIl0sIC8vIGEteiBib2xkIGl0YWxpY1xuLy8gTWFwIGZhbmN5IEEtWiBsZXR0ZXJzIHRvIHNjcmlwdCwgbm90IGNhbGxpZ3JhcGhpYy5cbi8vIFRoaXMgYWxpZ25zIHdpdGggdW5pY29kZS1tYXRoIGFuZCBtYXRoIGZvbnRzIChleGNlcHQgQ2FtYnJpYSBNYXRoKS5cbltcIm1hdGhzY3JcIiwgXCJ0ZXh0c2NyXCIsIFwiU2NyaXB0LVJlZ3VsYXJcIl0sIC8vIEEtWiBzY3JpcHRcbltcIlwiLCBcIlwiLCBcIlwiXSwgLy8gYS16IHNjcmlwdC4gIE5vIGZvbnRcbltcIlwiLCBcIlwiLCBcIlwiXSwgLy8gQS1aIGJvbGQgc2NyaXB0LiBObyBmb250XG5bXCJcIiwgXCJcIiwgXCJcIl0sIC8vIGEteiBib2xkIHNjcmlwdC4gTm8gZm9udFxuW1wibWF0aGZyYWtcIiwgXCJ0ZXh0ZnJha1wiLCBcIkZyYWt0dXItUmVndWxhclwiXSwgLy8gQS1aIEZyYWt0dXJcbltcIm1hdGhmcmFrXCIsIFwidGV4dGZyYWtcIiwgXCJGcmFrdHVyLVJlZ3VsYXJcIl0sIC8vIGEteiBGcmFrdHVyXG5bXCJtYXRoYmJcIiwgXCJ0ZXh0YmJcIiwgXCJBTVMtUmVndWxhclwiXSwgLy8gQS1aIGRvdWJsZS1zdHJ1Y2tcbltcIm1hdGhiYlwiLCBcInRleHRiYlwiLCBcIkFNUy1SZWd1bGFyXCJdLCAvLyBrIGRvdWJsZS1zdHJ1Y2tcbi8vIE5vdGUgdGhhdCB3ZSBhcmUgdXNpbmcgYSBib2xkIGZvbnQsIGJ1dCBmb250IG1ldHJpY3MgZm9yIHJlZ3VsYXIgRnJha3R1ci5cbltcIm1hdGhib2xkZnJha1wiLCBcInRleHRib2xkZnJha1wiLCBcIkZyYWt0dXItUmVndWxhclwiXSwgLy8gQS1aIGJvbGQgRnJha3R1clxuW1wibWF0aGJvbGRmcmFrXCIsIFwidGV4dGJvbGRmcmFrXCIsIFwiRnJha3R1ci1SZWd1bGFyXCJdLCAvLyBhLXogYm9sZCBGcmFrdHVyXG5bXCJtYXRoc2ZcIiwgXCJ0ZXh0c2ZcIiwgXCJTYW5zU2VyaWYtUmVndWxhclwiXSwgLy8gQS1aIHNhbnMtc2VyaWZcbltcIm1hdGhzZlwiLCBcInRleHRzZlwiLCBcIlNhbnNTZXJpZi1SZWd1bGFyXCJdLCAvLyBhLXogc2Fucy1zZXJpZlxuW1wibWF0aGJvbGRzZlwiLCBcInRleHRib2xkc2ZcIiwgXCJTYW5zU2VyaWYtQm9sZFwiXSwgLy8gQS1aIGJvbGQgc2Fucy1zZXJpZlxuW1wibWF0aGJvbGRzZlwiLCBcInRleHRib2xkc2ZcIiwgXCJTYW5zU2VyaWYtQm9sZFwiXSwgLy8gYS16IGJvbGQgc2Fucy1zZXJpZlxuW1wibWF0aGl0c2ZcIiwgXCJ0ZXh0aXRzZlwiLCBcIlNhbnNTZXJpZi1JdGFsaWNcIl0sIC8vIEEtWiBpdGFsaWMgc2Fucy1zZXJpZlxuW1wibWF0aGl0c2ZcIiwgXCJ0ZXh0aXRzZlwiLCBcIlNhbnNTZXJpZi1JdGFsaWNcIl0sIC8vIGEteiBpdGFsaWMgc2Fucy1zZXJpZlxuW1wiXCIsIFwiXCIsIFwiXCJdLCAvLyBBLVogYm9sZCBpdGFsaWMgc2Fucy4gTm8gZm9udFxuW1wiXCIsIFwiXCIsIFwiXCJdLCAvLyBhLXogYm9sZCBpdGFsaWMgc2Fucy4gTm8gZm9udFxuW1wibWF0aHR0XCIsIFwidGV4dHR0XCIsIFwiVHlwZXdyaXRlci1SZWd1bGFyXCJdLCAvLyBBLVogbW9ub3NwYWNlXG5bXCJtYXRodHRcIiwgXCJ0ZXh0dHRcIiwgXCJUeXBld3JpdGVyLVJlZ3VsYXJcIl0gLy8gYS16IG1vbm9zcGFjZVxuXTtcbnZhciB3aWRlTnVtZXJhbERhdGEgPSBbW1wibWF0aGJmXCIsIFwidGV4dGJmXCIsIFwiTWFpbi1Cb2xkXCJdLCAvLyAwLTkgYm9sZFxuW1wiXCIsIFwiXCIsIFwiXCJdLCAvLyAwLTkgZG91YmxlLXN0cnVjay4gTm8gS2FUZVggZm9udC5cbltcIm1hdGhzZlwiLCBcInRleHRzZlwiLCBcIlNhbnNTZXJpZi1SZWd1bGFyXCJdLCAvLyAwLTkgc2Fucy1zZXJpZlxuW1wibWF0aGJvbGRzZlwiLCBcInRleHRib2xkc2ZcIiwgXCJTYW5zU2VyaWYtQm9sZFwiXSwgLy8gMC05IGJvbGQgc2Fucy1zZXJpZlxuW1wibWF0aHR0XCIsIFwidGV4dHR0XCIsIFwiVHlwZXdyaXRlci1SZWd1bGFyXCJdIC8vIDAtOSBtb25vc3BhY2Vcbl07XG52YXIgd2lkZUNoYXJhY3RlckZvbnQgPSBmdW5jdGlvbiB3aWRlQ2hhcmFjdGVyRm9udCh3aWRlQ2hhciwgbW9kZSkge1xuICAvLyBJRSBkb2Vzbid0IHN1cHBvcnQgY29kZVBvaW50QXQoKS4gU28gd29yayB3aXRoIHRoZSBzdXJyb2dhdGUgcGFpci5cbiAgdmFyIEggPSB3aWRlQ2hhci5jaGFyQ29kZUF0KDApOyAvLyBoaWdoIHN1cnJvZ2F0ZVxuXG4gIHZhciBMID0gd2lkZUNoYXIuY2hhckNvZGVBdCgxKTsgLy8gbG93IHN1cnJvZ2F0ZVxuXG4gIHZhciBjb2RlUG9pbnQgPSAoSCAtIDB4RDgwMCkgKiAweDQwMCArIChMIC0gMHhEQzAwKSArIDB4MTAwMDA7XG4gIHZhciBqID0gbW9kZSA9PT0gXCJtYXRoXCIgPyAwIDogMTsgLy8gY29sdW1uIGluZGV4IGZvciBDU1MgY2xhc3MuXG5cbiAgaWYgKDB4MUQ0MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8IDB4MUQ2QTQpIHtcbiAgICAvLyB3aWRlTGF0aW5MZXR0ZXJEYXRhIGNvbnRhaW5zIGV4YWN0bHkgMjYgY2hhcnMgb24gZWFjaCByb3cuXG4gICAgLy8gU28gd2UgY2FuIGNhbGN1bGF0ZSB0aGUgcmVsZXZhbnQgcm93LiBObyB0cmF2ZXJzZSBuZWNlc3NhcnkuXG4gICAgdmFyIGkgPSBNYXRoLmZsb29yKChjb2RlUG9pbnQgLSAweDFENDAwKSAvIDI2KTtcbiAgICByZXR1cm4gW3dpZGVMYXRpbkxldHRlckRhdGFbaV1bMl0sIHdpZGVMYXRpbkxldHRlckRhdGFbaV1bal1dO1xuICB9IGVsc2UgaWYgKDB4MUQ3Q0UgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFEN0ZGKSB7XG4gICAgLy8gTnVtZXJhbHMsIHRlbiBwZXIgcm93LlxuICAgIHZhciBfaSA9IE1hdGguZmxvb3IoKGNvZGVQb2ludCAtIDB4MUQ3Q0UpIC8gMTApO1xuXG4gICAgcmV0dXJuIFt3aWRlTnVtZXJhbERhdGFbX2ldWzJdLCB3aWRlTnVtZXJhbERhdGFbX2ldW2pdXTtcbiAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPT09IDB4MUQ2QTUgfHwgY29kZVBvaW50ID09PSAweDFENkE2KSB7XG4gICAgLy8gZG90bGVzcyBpIG9yIGpcbiAgICByZXR1cm4gW3dpZGVMYXRpbkxldHRlckRhdGFbMF1bMl0sIHdpZGVMYXRpbkxldHRlckRhdGFbMF1bal1dO1xuICB9IGVsc2UgaWYgKDB4MUQ2QTYgPCBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDwgMHgxRDdDRSkge1xuICAgIC8vIEdyZWVrIGxldHRlcnMuIE5vdCBzdXBwb3J0ZWQsIHlldC5cbiAgICByZXR1cm4gW1wiXCIsIFwiXCJdO1xuICB9IGVsc2Uge1xuICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgYW55IHdpZGUgY2hhcmFjdGVycyBvdXRzaWRlIDFENDAw4oCTMUQ3RkYuXG4gICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJVbnN1cHBvcnRlZCBjaGFyYWN0ZXI6IFwiICsgd2lkZUNoYXIpO1xuICB9XG59O1xuXG4vKiBlc2xpbnQgbm8tY29uc29sZTowICovXG5cbi8qKlxuICogTG9va3MgdXAgdGhlIGdpdmVuIHN5bWJvbCBpbiBmb250TWV0cmljcywgYWZ0ZXIgYXBwbHlpbmcgYW55IHN5bWJvbFxuICogcmVwbGFjZW1lbnRzIGRlZmluZWQgaW4gc3ltYm9sLmpzXG4gKi9cbnZhciBsb29rdXBTeW1ib2wgPSBmdW5jdGlvbiBsb29rdXBTeW1ib2wodmFsdWUsIC8vIFRPRE8oIzk2Myk6IFVzZSBhIHVuaW9uIHR5cGUgZm9yIHRoaXMuXG5mb250TmFtZSwgbW9kZSkge1xuICAvLyBSZXBsYWNlIHRoZSB2YWx1ZSB3aXRoIGl0cyByZXBsYWNlZCB2YWx1ZSBmcm9tIHN5bWJvbC5qc1xuICBpZiAoc3ltYm9sc1ttb2RlXVt2YWx1ZV0gJiYgc3ltYm9sc1ttb2RlXVt2YWx1ZV0ucmVwbGFjZSkge1xuICAgIHZhbHVlID0gc3ltYm9sc1ttb2RlXVt2YWx1ZV0ucmVwbGFjZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIG1ldHJpY3M6IGdldENoYXJhY3Rlck1ldHJpY3ModmFsdWUsIGZvbnROYW1lLCBtb2RlKVxuICB9O1xufTtcbi8qKlxuICogTWFrZXMgYSBzeW1ib2xOb2RlIGFmdGVyIHRyYW5zbGF0aW9uIHZpYSB0aGUgbGlzdCBvZiBzeW1ib2xzIGluIHN5bWJvbHMuanMuXG4gKiBDb3JyZWN0bHkgcHVsbHMgb3V0IG1ldHJpY3MgZm9yIHRoZSBjaGFyYWN0ZXIsIGFuZCBvcHRpb25hbGx5IHRha2VzIGEgbGlzdCBvZlxuICogY2xhc3NlcyB0byBiZSBhdHRhY2hlZCB0byB0aGUgbm9kZS5cbiAqXG4gKiBUT0RPOiBtYWtlIGFyZ3VtZW50IG9yZGVyIGNsb3NlciB0byBtYWtlU3BhblxuICogVE9ETzogYWRkIGEgc2VwYXJhdGUgYXJndW1lbnQgZm9yIG1hdGggY2xhc3MgKGUuZy4gYG1vcGAsIGBtYmluYCksIHdoaWNoXG4gKiBzaG91bGQgaWYgcHJlc2VudCBjb21lIGZpcnN0IGluIGBjbGFzc2VzYC5cbiAqIFRPRE8oIzk1Myk6IE1ha2UgYG9wdGlvbnNgIG1hbmRhdG9yeSBhbmQgYWx3YXlzIHBhc3MgaXQgaW4uXG4gKi9cblxuXG52YXIgbWFrZVN5bWJvbCA9IGZ1bmN0aW9uIG1ha2VTeW1ib2wodmFsdWUsIGZvbnROYW1lLCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzKSB7XG4gIHZhciBsb29rdXAgPSBsb29rdXBTeW1ib2wodmFsdWUsIGZvbnROYW1lLCBtb2RlKTtcbiAgdmFyIG1ldHJpY3MgPSBsb29rdXAubWV0cmljcztcbiAgdmFsdWUgPSBsb29rdXAudmFsdWU7XG4gIHZhciBzeW1ib2xOb2RlO1xuXG4gIGlmIChtZXRyaWNzKSB7XG4gICAgdmFyIGl0YWxpYyA9IG1ldHJpY3MuaXRhbGljO1xuXG4gICAgaWYgKG1vZGUgPT09IFwidGV4dFwiIHx8IG9wdGlvbnMgJiYgb3B0aW9ucy5mb250ID09PSBcIm1hdGhpdFwiKSB7XG4gICAgICBpdGFsaWMgPSAwO1xuICAgIH1cblxuICAgIHN5bWJvbE5vZGUgPSBuZXcgU3ltYm9sTm9kZSh2YWx1ZSwgbWV0cmljcy5oZWlnaHQsIG1ldHJpY3MuZGVwdGgsIGl0YWxpYywgbWV0cmljcy5za2V3LCBtZXRyaWNzLndpZHRoLCBjbGFzc2VzKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBUT0RPKGVtaWx5KTogRmlndXJlIG91dCBhIGdvb2Qgd2F5IHRvIG9ubHkgcHJpbnQgdGhpcyBpbiBkZXZlbG9wbWVudFxuICAgIHR5cGVvZiBjb25zb2xlICE9PSBcInVuZGVmaW5lZFwiICYmIGNvbnNvbGUud2FybihcIk5vIGNoYXJhY3RlciBtZXRyaWNzIFwiICsgKFwiZm9yICdcIiArIHZhbHVlICsgXCInIGluIHN0eWxlICdcIiArIGZvbnROYW1lICsgXCInIGFuZCBtb2RlICdcIiArIG1vZGUgKyBcIidcIikpO1xuICAgIHN5bWJvbE5vZGUgPSBuZXcgU3ltYm9sTm9kZSh2YWx1ZSwgMCwgMCwgMCwgMCwgMCwgY2xhc3Nlcyk7XG4gIH1cblxuICBpZiAob3B0aW9ucykge1xuICAgIHN5bWJvbE5vZGUubWF4Rm9udFNpemUgPSBvcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuXG4gICAgaWYgKG9wdGlvbnMuc3R5bGUuaXNUaWdodCgpKSB7XG4gICAgICBzeW1ib2xOb2RlLmNsYXNzZXMucHVzaChcIm10aWdodFwiKTtcbiAgICB9XG5cbiAgICB2YXIgY29sb3IgPSBvcHRpb25zLmdldENvbG9yKCk7XG5cbiAgICBpZiAoY29sb3IpIHtcbiAgICAgIHN5bWJvbE5vZGUuc3R5bGUuY29sb3IgPSBjb2xvcjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3ltYm9sTm9kZTtcbn07XG4vKipcbiAqIE1ha2VzIGEgc3ltYm9sIGluIE1haW4tUmVndWxhciBvciBBTVMtUmVndWxhci5cbiAqIFVzZWQgZm9yIHJlbCwgYmluLCBvcGVuLCBjbG9zZSwgaW5uZXIsIGFuZCBwdW5jdC5cbiAqL1xuXG5cbnZhciBtYXRoc3ltID0gZnVuY3Rpb24gbWF0aHN5bSh2YWx1ZSwgbW9kZSwgb3B0aW9ucywgY2xhc3Nlcykge1xuICBpZiAoY2xhc3NlcyA9PT0gdm9pZCAwKSB7XG4gICAgY2xhc3NlcyA9IFtdO1xuICB9XG5cbiAgLy8gRGVjaWRlIHdoYXQgZm9udCB0byByZW5kZXIgdGhlIHN5bWJvbCBpbiBieSBpdHMgZW50cnkgaW4gdGhlIHN5bWJvbHNcbiAgLy8gdGFibGUuXG4gIC8vIEhhdmUgYSBzcGVjaWFsIGNhc2UgZm9yIHdoZW4gdGhlIHZhbHVlID0gXFwgYmVjYXVzZSB0aGUgXFwgaXMgdXNlZCBhcyBhXG4gIC8vIHRleHRvcmQgaW4gdW5zdXBwb3J0ZWQgY29tbWFuZCBlcnJvcnMgYnV0IGNhbm5vdCBiZSBwYXJzZWQgYXMgYSByZWd1bGFyXG4gIC8vIHRleHQgb3JkaW5hbCBhbmQgaXMgdGhlcmVmb3JlIG5vdCBwcmVzZW50IGFzIGEgc3ltYm9sIGluIHRoZSBzeW1ib2xzXG4gIC8vIHRhYmxlIGZvciB0ZXh0LCBhcyB3ZWxsIGFzIGEgc3BlY2lhbCBjYXNlIGZvciBib2xkc3ltYm9sIGJlY2F1c2UgaXRcbiAgLy8gY2FuIGJlIHVzZWQgZm9yIGJvbGQgKyBhbmQgLVxuICBpZiAob3B0aW9ucy5mb250ID09PSBcImJvbGRzeW1ib2xcIiAmJiBsb29rdXBTeW1ib2wodmFsdWUsIFwiTWFpbi1Cb2xkXCIsIG1vZGUpLm1ldHJpY3MpIHtcbiAgICByZXR1cm4gbWFrZVN5bWJvbCh2YWx1ZSwgXCJNYWluLUJvbGRcIiwgbW9kZSwgb3B0aW9ucywgY2xhc3Nlcy5jb25jYXQoW1wibWF0aGJmXCJdKSk7XG4gIH0gZWxzZSBpZiAodmFsdWUgPT09IFwiXFxcXFwiIHx8IHN5bWJvbHNbbW9kZV1bdmFsdWVdLmZvbnQgPT09IFwibWFpblwiKSB7XG4gICAgcmV0dXJuIG1ha2VTeW1ib2wodmFsdWUsIFwiTWFpbi1SZWd1bGFyXCIsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBtYWtlU3ltYm9sKHZhbHVlLCBcIkFNUy1SZWd1bGFyXCIsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMuY29uY2F0KFtcImFtc3JtXCJdKSk7XG4gIH1cbn07XG4vKipcbiAqIERldGVybWluZXMgd2hpY2ggb2YgdGhlIHR3byBmb250IG5hbWVzIChNYWluLUJvbGQgYW5kIE1hdGgtQm9sZEl0YWxpYykgYW5kXG4gKiBjb3JyZXNwb25kaW5nIHN0eWxlIHRhZ3MgKG1hdGhiZiBvciBib2xkc3ltYm9sKSB0byB1c2UgZm9yIGZvbnQgXCJib2xkc3ltYm9sXCIsXG4gKiBkZXBlbmRpbmcgb24gdGhlIHN5bWJvbC4gIFVzZSB0aGlzIGZ1bmN0aW9uIGluc3RlYWQgb2YgZm9udE1hcCBmb3IgZm9udFxuICogXCJib2xkc3ltYm9sXCIuXG4gKi9cblxuXG52YXIgYm9sZHN5bWJvbCA9IGZ1bmN0aW9uIGJvbGRzeW1ib2wodmFsdWUsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMsIHR5cGUpIHtcbiAgaWYgKHR5cGUgIT09IFwidGV4dG9yZFwiICYmIGxvb2t1cFN5bWJvbCh2YWx1ZSwgXCJNYXRoLUJvbGRJdGFsaWNcIiwgbW9kZSkubWV0cmljcykge1xuICAgIHJldHVybiB7XG4gICAgICBmb250TmFtZTogXCJNYXRoLUJvbGRJdGFsaWNcIixcbiAgICAgIGZvbnRDbGFzczogXCJib2xkc3ltYm9sXCJcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIC8vIFNvbWUgZ2x5cGhzIGRvIG5vdCBleGlzdCBpbiBNYXRoLUJvbGRJdGFsaWMgc28gd2UgbmVlZCB0byB1c2VcbiAgICAvLyBNYWluLUJvbGQgaW5zdGVhZC5cbiAgICByZXR1cm4ge1xuICAgICAgZm9udE5hbWU6IFwiTWFpbi1Cb2xkXCIsXG4gICAgICBmb250Q2xhc3M6IFwibWF0aGJmXCJcbiAgICB9O1xuICB9XG59O1xuLyoqXG4gKiBNYWtlcyBlaXRoZXIgYSBtYXRob3JkIG9yIHRleHRvcmQgaW4gdGhlIGNvcnJlY3QgZm9udCBhbmQgY29sb3IuXG4gKi9cblxuXG52YXIgbWFrZU9yZCA9IGZ1bmN0aW9uIG1ha2VPcmQoZ3JvdXAsIG9wdGlvbnMsIHR5cGUpIHtcbiAgdmFyIG1vZGUgPSBncm91cC5tb2RlO1xuICB2YXIgdGV4dCA9IGdyb3VwLnRleHQ7XG4gIHZhciBjbGFzc2VzID0gW1wibW9yZFwiXTsgLy8gTWF0aCBtb2RlIG9yIE9sZCBmb250IChpLmUuIFxccm0pXG5cbiAgdmFyIGlzRm9udCA9IG1vZGUgPT09IFwibWF0aFwiIHx8IG1vZGUgPT09IFwidGV4dFwiICYmIG9wdGlvbnMuZm9udDtcbiAgdmFyIGZvbnRPckZhbWlseSA9IGlzRm9udCA/IG9wdGlvbnMuZm9udCA6IG9wdGlvbnMuZm9udEZhbWlseTtcbiAgdmFyIHdpZGVGb250TmFtZSA9IFwiXCI7XG4gIHZhciB3aWRlRm9udENsYXNzID0gXCJcIjtcblxuICBpZiAodGV4dC5jaGFyQ29kZUF0KDApID09PSAweEQ4MzUpIHtcbiAgICBbd2lkZUZvbnROYW1lLCB3aWRlRm9udENsYXNzXSA9IHdpZGVDaGFyYWN0ZXJGb250KHRleHQsIG1vZGUpO1xuICB9XG5cbiAgaWYgKHdpZGVGb250TmFtZS5sZW5ndGggPiAwKSB7XG4gICAgLy8gc3Vycm9nYXRlIHBhaXJzIGdldCBzcGVjaWFsIHRyZWF0bWVudFxuICAgIHJldHVybiBtYWtlU3ltYm9sKHRleHQsIHdpZGVGb250TmFtZSwgbW9kZSwgb3B0aW9ucywgY2xhc3Nlcy5jb25jYXQod2lkZUZvbnRDbGFzcykpO1xuICB9IGVsc2UgaWYgKGZvbnRPckZhbWlseSkge1xuICAgIHZhciBmb250TmFtZTtcbiAgICB2YXIgZm9udENsYXNzZXM7XG5cbiAgICBpZiAoZm9udE9yRmFtaWx5ID09PSBcImJvbGRzeW1ib2xcIikge1xuICAgICAgdmFyIGZvbnREYXRhID0gYm9sZHN5bWJvbCh0ZXh0LCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzLCB0eXBlKTtcbiAgICAgIGZvbnROYW1lID0gZm9udERhdGEuZm9udE5hbWU7XG4gICAgICBmb250Q2xhc3NlcyA9IFtmb250RGF0YS5mb250Q2xhc3NdO1xuICAgIH0gZWxzZSBpZiAoaXNGb250KSB7XG4gICAgICBmb250TmFtZSA9IGZvbnRNYXBbZm9udE9yRmFtaWx5XS5mb250TmFtZTtcbiAgICAgIGZvbnRDbGFzc2VzID0gW2ZvbnRPckZhbWlseV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvbnROYW1lID0gcmV0cmlldmVUZXh0Rm9udE5hbWUoZm9udE9yRmFtaWx5LCBvcHRpb25zLmZvbnRXZWlnaHQsIG9wdGlvbnMuZm9udFNoYXBlKTtcbiAgICAgIGZvbnRDbGFzc2VzID0gW2ZvbnRPckZhbWlseSwgb3B0aW9ucy5mb250V2VpZ2h0LCBvcHRpb25zLmZvbnRTaGFwZV07XG4gICAgfVxuXG4gICAgaWYgKGxvb2t1cFN5bWJvbCh0ZXh0LCBmb250TmFtZSwgbW9kZSkubWV0cmljcykge1xuICAgICAgcmV0dXJuIG1ha2VTeW1ib2wodGV4dCwgZm9udE5hbWUsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMuY29uY2F0KGZvbnRDbGFzc2VzKSk7XG4gICAgfSBlbHNlIGlmIChsaWdhdHVyZXMuaGFzT3duUHJvcGVydHkodGV4dCkgJiYgZm9udE5hbWUuc2xpY2UoMCwgMTApID09PSBcIlR5cGV3cml0ZXJcIikge1xuICAgICAgLy8gRGVjb25zdHJ1Y3QgbGlnYXR1cmVzIGluIG1vbm9zcGFjZSBmb250cyAoXFx0ZXh0dHQsIFxcdHQpLlxuICAgICAgdmFyIHBhcnRzID0gW107XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICBwYXJ0cy5wdXNoKG1ha2VTeW1ib2wodGV4dFtpXSwgZm9udE5hbWUsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMuY29uY2F0KGZvbnRDbGFzc2VzKSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbWFrZUZyYWdtZW50KHBhcnRzKTtcbiAgICB9XG4gIH0gLy8gTWFrZXMgYSBzeW1ib2wgaW4gdGhlIGRlZmF1bHQgZm9udCBmb3IgbWF0aG9yZHMgYW5kIHRleHRvcmRzLlxuXG5cbiAgaWYgKHR5cGUgPT09IFwibWF0aG9yZFwiKSB7XG4gICAgcmV0dXJuIG1ha2VTeW1ib2wodGV4dCwgXCJNYXRoLUl0YWxpY1wiLCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzLmNvbmNhdChbXCJtYXRobm9ybWFsXCJdKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJ0ZXh0b3JkXCIpIHtcbiAgICB2YXIgZm9udCA9IHN5bWJvbHNbbW9kZV1bdGV4dF0gJiYgc3ltYm9sc1ttb2RlXVt0ZXh0XS5mb250O1xuXG4gICAgaWYgKGZvbnQgPT09IFwiYW1zXCIpIHtcbiAgICAgIHZhciBfZm9udE5hbWUgPSByZXRyaWV2ZVRleHRGb250TmFtZShcImFtc3JtXCIsIG9wdGlvbnMuZm9udFdlaWdodCwgb3B0aW9ucy5mb250U2hhcGUpO1xuXG4gICAgICByZXR1cm4gbWFrZVN5bWJvbCh0ZXh0LCBfZm9udE5hbWUsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMuY29uY2F0KFwiYW1zcm1cIiwgb3B0aW9ucy5mb250V2VpZ2h0LCBvcHRpb25zLmZvbnRTaGFwZSkpO1xuICAgIH0gZWxzZSBpZiAoZm9udCA9PT0gXCJtYWluXCIgfHwgIWZvbnQpIHtcbiAgICAgIHZhciBfZm9udE5hbWUyID0gcmV0cmlldmVUZXh0Rm9udE5hbWUoXCJ0ZXh0cm1cIiwgb3B0aW9ucy5mb250V2VpZ2h0LCBvcHRpb25zLmZvbnRTaGFwZSk7XG5cbiAgICAgIHJldHVybiBtYWtlU3ltYm9sKHRleHQsIF9mb250TmFtZTIsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMuY29uY2F0KG9wdGlvbnMuZm9udFdlaWdodCwgb3B0aW9ucy5mb250U2hhcGUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZm9udHMgYWRkZWQgYnkgcGx1Z2luc1xuICAgICAgdmFyIF9mb250TmFtZTMgPSByZXRyaWV2ZVRleHRGb250TmFtZShmb250LCBvcHRpb25zLmZvbnRXZWlnaHQsIG9wdGlvbnMuZm9udFNoYXBlKTsgLy8gV2UgYWRkIGZvbnQgbmFtZSBhcyBhIGNzcyBjbGFzc1xuXG5cbiAgICAgIHJldHVybiBtYWtlU3ltYm9sKHRleHQsIF9mb250TmFtZTMsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMuY29uY2F0KF9mb250TmFtZTMsIG9wdGlvbnMuZm9udFdlaWdodCwgb3B0aW9ucy5mb250U2hhcGUpKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidW5leHBlY3RlZCB0eXBlOiBcIiArIHR5cGUgKyBcIiBpbiBtYWtlT3JkXCIpO1xuICB9XG59O1xuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgc3Vic2VxdWVudCBzeW1ib2xOb2RlcyBoYXZlIHRoZSBzYW1lIGNsYXNzZXMsIHNrZXcsIG1heEZvbnQsXG4gKiBhbmQgc3R5bGVzLlxuICovXG5cblxudmFyIGNhbkNvbWJpbmUgPSAocHJldiwgbmV4dCkgPT4ge1xuICBpZiAoY3JlYXRlQ2xhc3MocHJldi5jbGFzc2VzKSAhPT0gY3JlYXRlQ2xhc3MobmV4dC5jbGFzc2VzKSB8fCBwcmV2LnNrZXcgIT09IG5leHQuc2tldyB8fCBwcmV2Lm1heEZvbnRTaXplICE9PSBuZXh0Lm1heEZvbnRTaXplKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIElmIHByZXYgYW5kIG5leHQgYm90aCBhcmUganVzdCBcIm1iaW5cInMgb3IgXCJtb3JkXCJzIHdlIGRvbid0IGNvbWJpbmUgdGhlbVxuICAvLyBzbyB0aGF0IHRoZSBwcm9wZXIgc3BhY2luZyBjYW4gYmUgcHJlc2VydmVkLlxuXG5cbiAgaWYgKHByZXYuY2xhc3Nlcy5sZW5ndGggPT09IDEpIHtcbiAgICB2YXIgY2xzID0gcHJldi5jbGFzc2VzWzBdO1xuXG4gICAgaWYgKGNscyA9PT0gXCJtYmluXCIgfHwgY2xzID09PSBcIm1vcmRcIikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZvciAodmFyIHN0eWxlIGluIHByZXYuc3R5bGUpIHtcbiAgICBpZiAocHJldi5zdHlsZS5oYXNPd25Qcm9wZXJ0eShzdHlsZSkgJiYgcHJldi5zdHlsZVtzdHlsZV0gIT09IG5leHQuc3R5bGVbc3R5bGVdKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZm9yICh2YXIgX3N0eWxlIGluIG5leHQuc3R5bGUpIHtcbiAgICBpZiAobmV4dC5zdHlsZS5oYXNPd25Qcm9wZXJ0eShfc3R5bGUpICYmIHByZXYuc3R5bGVbX3N0eWxlXSAhPT0gbmV4dC5zdHlsZVtfc3R5bGVdKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuLyoqXG4gKiBDb21iaW5lIGNvbnNlY3V0aXZlIGRvbVRyZWUuc3ltYm9sTm9kZXMgaW50byBhIHNpbmdsZSBzeW1ib2xOb2RlLlxuICogTm90ZTogdGhpcyBmdW5jdGlvbiBtdXRhdGVzIHRoZSBhcmd1bWVudC5cbiAqL1xuXG5cbnZhciB0cnlDb21iaW5lQ2hhcnMgPSBjaGFycyA9PiB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgdmFyIHByZXYgPSBjaGFyc1tpXTtcbiAgICB2YXIgbmV4dCA9IGNoYXJzW2kgKyAxXTtcblxuICAgIGlmIChwcmV2IGluc3RhbmNlb2YgU3ltYm9sTm9kZSAmJiBuZXh0IGluc3RhbmNlb2YgU3ltYm9sTm9kZSAmJiBjYW5Db21iaW5lKHByZXYsIG5leHQpKSB7XG4gICAgICBwcmV2LnRleHQgKz0gbmV4dC50ZXh0O1xuICAgICAgcHJldi5oZWlnaHQgPSBNYXRoLm1heChwcmV2LmhlaWdodCwgbmV4dC5oZWlnaHQpO1xuICAgICAgcHJldi5kZXB0aCA9IE1hdGgubWF4KHByZXYuZGVwdGgsIG5leHQuZGVwdGgpOyAvLyBVc2UgdGhlIGxhc3QgY2hhcmFjdGVyJ3MgaXRhbGljIGNvcnJlY3Rpb24gc2luY2Ugd2UgdXNlXG4gICAgICAvLyBpdCB0byBhZGQgcGFkZGluZyB0byB0aGUgcmlnaHQgb2YgdGhlIHNwYW4gY3JlYXRlZCBmcm9tXG4gICAgICAvLyB0aGUgY29tYmluZWQgY2hhcmFjdGVycy5cblxuICAgICAgcHJldi5pdGFsaWMgPSBuZXh0Lml0YWxpYztcbiAgICAgIGNoYXJzLnNwbGljZShpICsgMSwgMSk7XG4gICAgICBpLS07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNoYXJzO1xufTtcbi8qKlxuICogQ2FsY3VsYXRlIHRoZSBoZWlnaHQsIGRlcHRoLCBhbmQgbWF4Rm9udFNpemUgb2YgYW4gZWxlbWVudCBiYXNlZCBvbiBpdHNcbiAqIGNoaWxkcmVuLlxuICovXG5cblxudmFyIHNpemVFbGVtZW50RnJvbUNoaWxkcmVuID0gZnVuY3Rpb24gc2l6ZUVsZW1lbnRGcm9tQ2hpbGRyZW4oZWxlbSkge1xuICB2YXIgaGVpZ2h0ID0gMDtcbiAgdmFyIGRlcHRoID0gMDtcbiAgdmFyIG1heEZvbnRTaXplID0gMDtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0uY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgY2hpbGQgPSBlbGVtLmNoaWxkcmVuW2ldO1xuXG4gICAgaWYgKGNoaWxkLmhlaWdodCA+IGhlaWdodCkge1xuICAgICAgaGVpZ2h0ID0gY2hpbGQuaGVpZ2h0O1xuICAgIH1cblxuICAgIGlmIChjaGlsZC5kZXB0aCA+IGRlcHRoKSB7XG4gICAgICBkZXB0aCA9IGNoaWxkLmRlcHRoO1xuICAgIH1cblxuICAgIGlmIChjaGlsZC5tYXhGb250U2l6ZSA+IG1heEZvbnRTaXplKSB7XG4gICAgICBtYXhGb250U2l6ZSA9IGNoaWxkLm1heEZvbnRTaXplO1xuICAgIH1cbiAgfVxuXG4gIGVsZW0uaGVpZ2h0ID0gaGVpZ2h0O1xuICBlbGVtLmRlcHRoID0gZGVwdGg7XG4gIGVsZW0ubWF4Rm9udFNpemUgPSBtYXhGb250U2l6ZTtcbn07XG4vKipcbiAqIE1ha2VzIGEgc3BhbiB3aXRoIHRoZSBnaXZlbiBsaXN0IG9mIGNsYXNzZXMsIGxpc3Qgb2YgY2hpbGRyZW4sIGFuZCBvcHRpb25zLlxuICpcbiAqIFRPRE8oIzk1Myk6IEVuc3VyZSB0aGF0IGBvcHRpb25zYCBpcyBhbHdheXMgcHJvdmlkZWQgKGN1cnJlbnRseSBzb21lIGNhbGxcbiAqIHNpdGVzIGRvbid0IHBhc3MgaXQpIGFuZCBtYWtlIHRoZSB0eXBlIGJlbG93IG1hbmRhdG9yeS5cbiAqIFRPRE86IGFkZCBhIHNlcGFyYXRlIGFyZ3VtZW50IGZvciBtYXRoIGNsYXNzIChlLmcuIGBtb3BgLCBgbWJpbmApLCB3aGljaFxuICogc2hvdWxkIGlmIHByZXNlbnQgY29tZSBmaXJzdCBpbiBgY2xhc3Nlc2AuXG4gKi9cblxuXG52YXIgbWFrZVNwYW4kMiA9IGZ1bmN0aW9uIG1ha2VTcGFuKGNsYXNzZXMsIGNoaWxkcmVuLCBvcHRpb25zLCBzdHlsZSkge1xuICB2YXIgc3BhbiA9IG5ldyBTcGFuKGNsYXNzZXMsIGNoaWxkcmVuLCBvcHRpb25zLCBzdHlsZSk7XG4gIHNpemVFbGVtZW50RnJvbUNoaWxkcmVuKHNwYW4pO1xuICByZXR1cm4gc3Bhbjtcbn07IC8vIFNWRyBvbmUgaXMgc2ltcGxlciAtLSBkb2Vzbid0IHJlcXVpcmUgaGVpZ2h0LCBkZXB0aCwgbWF4LWZvbnQgc2V0dGluZy5cbi8vIFRoaXMgaXMgYWxzbyBhIHNlcGFyYXRlIG1ldGhvZCBmb3IgdHlwZXNhZmV0eS5cblxuXG52YXIgbWFrZVN2Z1NwYW4gPSAoY2xhc3NlcywgY2hpbGRyZW4sIG9wdGlvbnMsIHN0eWxlKSA9PiBuZXcgU3BhbihjbGFzc2VzLCBjaGlsZHJlbiwgb3B0aW9ucywgc3R5bGUpO1xuXG52YXIgbWFrZUxpbmVTcGFuID0gZnVuY3Rpb24gbWFrZUxpbmVTcGFuKGNsYXNzTmFtZSwgb3B0aW9ucywgdGhpY2tuZXNzKSB7XG4gIHZhciBsaW5lID0gbWFrZVNwYW4kMihbY2xhc3NOYW1lXSwgW10sIG9wdGlvbnMpO1xuICBsaW5lLmhlaWdodCA9IE1hdGgubWF4KHRoaWNrbmVzcyB8fCBvcHRpb25zLmZvbnRNZXRyaWNzKCkuZGVmYXVsdFJ1bGVUaGlja25lc3MsIG9wdGlvbnMubWluUnVsZVRoaWNrbmVzcyk7XG4gIGxpbmUuc3R5bGUuYm9yZGVyQm90dG9tV2lkdGggPSBtYWtlRW0obGluZS5oZWlnaHQpO1xuICBsaW5lLm1heEZvbnRTaXplID0gMS4wO1xuICByZXR1cm4gbGluZTtcbn07XG4vKipcbiAqIE1ha2VzIGFuIGFuY2hvciB3aXRoIHRoZSBnaXZlbiBocmVmLCBsaXN0IG9mIGNsYXNzZXMsIGxpc3Qgb2YgY2hpbGRyZW4sXG4gKiBhbmQgb3B0aW9ucy5cbiAqL1xuXG5cbnZhciBtYWtlQW5jaG9yID0gZnVuY3Rpb24gbWFrZUFuY2hvcihocmVmLCBjbGFzc2VzLCBjaGlsZHJlbiwgb3B0aW9ucykge1xuICB2YXIgYW5jaG9yID0gbmV3IEFuY2hvcihocmVmLCBjbGFzc2VzLCBjaGlsZHJlbiwgb3B0aW9ucyk7XG4gIHNpemVFbGVtZW50RnJvbUNoaWxkcmVuKGFuY2hvcik7XG4gIHJldHVybiBhbmNob3I7XG59O1xuLyoqXG4gKiBNYWtlcyBhIGRvY3VtZW50IGZyYWdtZW50IHdpdGggdGhlIGdpdmVuIGxpc3Qgb2YgY2hpbGRyZW4uXG4gKi9cblxuXG52YXIgbWFrZUZyYWdtZW50ID0gZnVuY3Rpb24gbWFrZUZyYWdtZW50KGNoaWxkcmVuKSB7XG4gIHZhciBmcmFnbWVudCA9IG5ldyBEb2N1bWVudEZyYWdtZW50KGNoaWxkcmVuKTtcbiAgc2l6ZUVsZW1lbnRGcm9tQ2hpbGRyZW4oZnJhZ21lbnQpO1xuICByZXR1cm4gZnJhZ21lbnQ7XG59O1xuLyoqXG4gKiBXcmFwcyBncm91cCBpbiBhIHNwYW4gaWYgaXQncyBhIGRvY3VtZW50IGZyYWdtZW50LCBhbGxvd2luZyB0byBhcHBseSBjbGFzc2VzXG4gKiBhbmQgc3R5bGVzXG4gKi9cblxuXG52YXIgd3JhcEZyYWdtZW50ID0gZnVuY3Rpb24gd3JhcEZyYWdtZW50KGdyb3VwLCBvcHRpb25zKSB7XG4gIGlmIChncm91cCBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpIHtcbiAgICByZXR1cm4gbWFrZVNwYW4kMihbXSwgW2dyb3VwXSwgb3B0aW9ucyk7XG4gIH1cblxuICByZXR1cm4gZ3JvdXA7XG59OyAvLyBUaGVzZSBhcmUgZXhhY3Qgb2JqZWN0IHR5cGVzIHRvIGNhdGNoIHR5cG9zIGluIHRoZSBuYW1lcyBvZiB0aGUgb3B0aW9uYWwgZmllbGRzLlxuXG5cbi8vIENvbXB1dGVzIHRoZSB1cGRhdGVkIGBjaGlsZHJlbmAgbGlzdCBhbmQgdGhlIG92ZXJhbGwgZGVwdGguXG4vL1xuLy8gVGhpcyBoZWxwZXIgZnVuY3Rpb24gZm9yIG1ha2VWTGlzdCBtYWtlcyBpdCBlYXNpZXIgdG8gZW5mb3JjZSB0eXBlIHNhZmV0eSBieVxuLy8gYWxsb3dpbmcgZWFybHkgZXhpdHMgKHJldHVybnMpIGluIHRoZSBsb2dpYy5cbnZhciBnZXRWTGlzdENoaWxkcmVuQW5kRGVwdGggPSBmdW5jdGlvbiBnZXRWTGlzdENoaWxkcmVuQW5kRGVwdGgocGFyYW1zKSB7XG4gIGlmIChwYXJhbXMucG9zaXRpb25UeXBlID09PSBcImluZGl2aWR1YWxTaGlmdFwiKSB7XG4gICAgdmFyIG9sZENoaWxkcmVuID0gcGFyYW1zLmNoaWxkcmVuO1xuICAgIHZhciBjaGlsZHJlbiA9IFtvbGRDaGlsZHJlblswXV07IC8vIEFkZCBpbiBrZXJucyB0byB0aGUgbGlzdCBvZiBwYXJhbXMuY2hpbGRyZW4gdG8gZ2V0IGVhY2ggZWxlbWVudCB0byBiZVxuICAgIC8vIHNoaWZ0ZWQgdG8gdGhlIGNvcnJlY3Qgc3BlY2lmaWVkIHNoaWZ0XG5cbiAgICB2YXIgX2RlcHRoID0gLW9sZENoaWxkcmVuWzBdLnNoaWZ0IC0gb2xkQ2hpbGRyZW5bMF0uZWxlbS5kZXB0aDtcblxuICAgIHZhciBjdXJyUG9zID0gX2RlcHRoO1xuXG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBvbGRDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGRpZmYgPSAtb2xkQ2hpbGRyZW5baV0uc2hpZnQgLSBjdXJyUG9zIC0gb2xkQ2hpbGRyZW5baV0uZWxlbS5kZXB0aDtcbiAgICAgIHZhciBzaXplID0gZGlmZiAtIChvbGRDaGlsZHJlbltpIC0gMV0uZWxlbS5oZWlnaHQgKyBvbGRDaGlsZHJlbltpIC0gMV0uZWxlbS5kZXB0aCk7XG4gICAgICBjdXJyUG9zID0gY3VyclBvcyArIGRpZmY7XG4gICAgICBjaGlsZHJlbi5wdXNoKHtcbiAgICAgICAgdHlwZTogXCJrZXJuXCIsXG4gICAgICAgIHNpemVcbiAgICAgIH0pO1xuICAgICAgY2hpbGRyZW4ucHVzaChvbGRDaGlsZHJlbltpXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgZGVwdGg6IF9kZXB0aFxuICAgIH07XG4gIH1cblxuICB2YXIgZGVwdGg7XG5cbiAgaWYgKHBhcmFtcy5wb3NpdGlvblR5cGUgPT09IFwidG9wXCIpIHtcbiAgICAvLyBXZSBhbHdheXMgc3RhcnQgYXQgdGhlIGJvdHRvbSwgc28gY2FsY3VsYXRlIHRoZSBib3R0b20gYnkgYWRkaW5nIHVwXG4gICAgLy8gYWxsIHRoZSBzaXplc1xuICAgIHZhciBib3R0b20gPSBwYXJhbXMucG9zaXRpb25EYXRhO1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHBhcmFtcy5jaGlsZHJlbi5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBjaGlsZCA9IHBhcmFtcy5jaGlsZHJlbltfaV07XG4gICAgICBib3R0b20gLT0gY2hpbGQudHlwZSA9PT0gXCJrZXJuXCIgPyBjaGlsZC5zaXplIDogY2hpbGQuZWxlbS5oZWlnaHQgKyBjaGlsZC5lbGVtLmRlcHRoO1xuICAgIH1cblxuICAgIGRlcHRoID0gYm90dG9tO1xuICB9IGVsc2UgaWYgKHBhcmFtcy5wb3NpdGlvblR5cGUgPT09IFwiYm90dG9tXCIpIHtcbiAgICBkZXB0aCA9IC1wYXJhbXMucG9zaXRpb25EYXRhO1xuICB9IGVsc2Uge1xuICAgIHZhciBmaXJzdENoaWxkID0gcGFyYW1zLmNoaWxkcmVuWzBdO1xuXG4gICAgaWYgKGZpcnN0Q2hpbGQudHlwZSAhPT0gXCJlbGVtXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmlyc3QgY2hpbGQgbXVzdCBoYXZlIHR5cGUgXCJlbGVtXCIuJyk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5wb3NpdGlvblR5cGUgPT09IFwic2hpZnRcIikge1xuICAgICAgZGVwdGggPSAtZmlyc3RDaGlsZC5lbGVtLmRlcHRoIC0gcGFyYW1zLnBvc2l0aW9uRGF0YTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtcy5wb3NpdGlvblR5cGUgPT09IFwiZmlyc3RCYXNlbGluZVwiKSB7XG4gICAgICBkZXB0aCA9IC1maXJzdENoaWxkLmVsZW0uZGVwdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcG9zaXRpb25UeXBlIFwiICsgcGFyYW1zLnBvc2l0aW9uVHlwZSArIFwiLlwiKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNoaWxkcmVuOiBwYXJhbXMuY2hpbGRyZW4sXG4gICAgZGVwdGhcbiAgfTtcbn07XG4vKipcbiAqIE1ha2VzIGEgdmVydGljYWwgbGlzdCBieSBzdGFja2luZyBlbGVtZW50cyBhbmQga2VybnMgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gKiBBbGxvd3MgZm9yIG1hbnkgZGlmZmVyZW50IHdheXMgb2Ygc3BlY2lmeWluZyB0aGUgcG9zaXRpb25pbmcgbWV0aG9kLlxuICpcbiAqIFNlZSBWTGlzdFBhcmFtIGRvY3VtZW50YXRpb24gYWJvdmUuXG4gKi9cblxuXG52YXIgbWFrZVZMaXN0ID0gZnVuY3Rpb24gbWFrZVZMaXN0KHBhcmFtcywgb3B0aW9ucykge1xuICB2YXIge1xuICAgIGNoaWxkcmVuLFxuICAgIGRlcHRoXG4gIH0gPSBnZXRWTGlzdENoaWxkcmVuQW5kRGVwdGgocGFyYW1zKTsgLy8gQ3JlYXRlIGEgc3RydXQgdGhhdCBpcyB0YWxsZXIgdGhhbiBhbnkgbGlzdCBpdGVtLiBUaGUgc3RydXQgaXMgYWRkZWQgdG9cbiAgLy8gZWFjaCBpdGVtLCB3aGVyZSBpdCB3aWxsIGRldGVybWluZSB0aGUgaXRlbSdzIGJhc2VsaW5lLiBTaW5jZSBpdCBoYXNcbiAgLy8gYG92ZXJmbG93OmhpZGRlbmAsIHRoZSBzdHJ1dCdzIHRvcCBlZGdlIHdpbGwgc2l0IG9uIHRoZSBpdGVtJ3MgbGluZSBib3gnc1xuICAvLyB0b3AgZWRnZSBhbmQgdGhlIHN0cnV0J3MgYm90dG9tIGVkZ2Ugd2lsbCBzaXQgb24gdGhlIGl0ZW0ncyBiYXNlbGluZSxcbiAgLy8gd2l0aCBubyBhZGRpdGlvbmFsIGxpbmUtaGVpZ2h0IHNwYWNpbmcuIFRoaXMgYWxsb3dzIHRoZSBpdGVtIGJhc2VsaW5lIHRvXG4gIC8vIGJlIHBvc2l0aW9uZWQgcHJlY2lzZWx5IHdpdGhvdXQgd29ycnlpbmcgYWJvdXQgZm9udCBhc2NlbnQgYW5kXG4gIC8vIGxpbmUtaGVpZ2h0LlxuXG4gIHZhciBwc3RydXRTaXplID0gMDtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGNoaWxkID0gY2hpbGRyZW5baV07XG5cbiAgICBpZiAoY2hpbGQudHlwZSA9PT0gXCJlbGVtXCIpIHtcbiAgICAgIHZhciBlbGVtID0gY2hpbGQuZWxlbTtcbiAgICAgIHBzdHJ1dFNpemUgPSBNYXRoLm1heChwc3RydXRTaXplLCBlbGVtLm1heEZvbnRTaXplLCBlbGVtLmhlaWdodCk7XG4gICAgfVxuICB9XG5cbiAgcHN0cnV0U2l6ZSArPSAyO1xuICB2YXIgcHN0cnV0ID0gbWFrZVNwYW4kMihbXCJwc3RydXRcIl0sIFtdKTtcbiAgcHN0cnV0LnN0eWxlLmhlaWdodCA9IG1ha2VFbShwc3RydXRTaXplKTsgLy8gQ3JlYXRlIGEgbmV3IGxpc3Qgb2YgYWN0dWFsIGNoaWxkcmVuIGF0IHRoZSBjb3JyZWN0IG9mZnNldHNcblxuICB2YXIgcmVhbENoaWxkcmVuID0gW107XG4gIHZhciBtaW5Qb3MgPSBkZXB0aDtcbiAgdmFyIG1heFBvcyA9IGRlcHRoO1xuICB2YXIgY3VyclBvcyA9IGRlcHRoO1xuXG4gIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IGNoaWxkcmVuLmxlbmd0aDsgX2kyKyspIHtcbiAgICB2YXIgX2NoaWxkID0gY2hpbGRyZW5bX2kyXTtcblxuICAgIGlmIChfY2hpbGQudHlwZSA9PT0gXCJrZXJuXCIpIHtcbiAgICAgIGN1cnJQb3MgKz0gX2NoaWxkLnNpemU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBfZWxlbSA9IF9jaGlsZC5lbGVtO1xuICAgICAgdmFyIGNsYXNzZXMgPSBfY2hpbGQud3JhcHBlckNsYXNzZXMgfHwgW107XG4gICAgICB2YXIgc3R5bGUgPSBfY2hpbGQud3JhcHBlclN0eWxlIHx8IHt9O1xuICAgICAgdmFyIGNoaWxkV3JhcCA9IG1ha2VTcGFuJDIoY2xhc3NlcywgW3BzdHJ1dCwgX2VsZW1dLCB1bmRlZmluZWQsIHN0eWxlKTtcbiAgICAgIGNoaWxkV3JhcC5zdHlsZS50b3AgPSBtYWtlRW0oLXBzdHJ1dFNpemUgLSBjdXJyUG9zIC0gX2VsZW0uZGVwdGgpO1xuXG4gICAgICBpZiAoX2NoaWxkLm1hcmdpbkxlZnQpIHtcbiAgICAgICAgY2hpbGRXcmFwLnN0eWxlLm1hcmdpbkxlZnQgPSBfY2hpbGQubWFyZ2luTGVmdDtcbiAgICAgIH1cblxuICAgICAgaWYgKF9jaGlsZC5tYXJnaW5SaWdodCkge1xuICAgICAgICBjaGlsZFdyYXAuc3R5bGUubWFyZ2luUmlnaHQgPSBfY2hpbGQubWFyZ2luUmlnaHQ7XG4gICAgICB9XG5cbiAgICAgIHJlYWxDaGlsZHJlbi5wdXNoKGNoaWxkV3JhcCk7XG4gICAgICBjdXJyUG9zICs9IF9lbGVtLmhlaWdodCArIF9lbGVtLmRlcHRoO1xuICAgIH1cblxuICAgIG1pblBvcyA9IE1hdGgubWluKG1pblBvcywgY3VyclBvcyk7XG4gICAgbWF4UG9zID0gTWF0aC5tYXgobWF4UG9zLCBjdXJyUG9zKTtcbiAgfSAvLyBUaGUgdmxpc3QgY29udGVudHMgZ28gaW4gYSB0YWJsZS1jZWxsIHdpdGggYHZlcnRpY2FsLWFsaWduOmJvdHRvbWAuXG4gIC8vIFRoaXMgY2VsbCdzIGJvdHRvbSBlZGdlIHdpbGwgZGV0ZXJtaW5lIHRoZSBjb250YWluaW5nIHRhYmxlJ3MgYmFzZWxpbmVcbiAgLy8gd2l0aG91dCBvdmVybHkgZXhwYW5kaW5nIHRoZSBjb250YWluaW5nIGxpbmUtYm94LlxuXG5cbiAgdmFyIHZsaXN0ID0gbWFrZVNwYW4kMihbXCJ2bGlzdFwiXSwgcmVhbENoaWxkcmVuKTtcbiAgdmxpc3Quc3R5bGUuaGVpZ2h0ID0gbWFrZUVtKG1heFBvcyk7IC8vIEEgc2Vjb25kIHJvdyBpcyB1c2VkIGlmIG5lY2Vzc2FyeSB0byByZXByZXNlbnQgdGhlIHZsaXN0J3MgZGVwdGguXG5cbiAgdmFyIHJvd3M7XG5cbiAgaWYgKG1pblBvcyA8IDApIHtcbiAgICAvLyBXZSB3aWxsIGRlZmluZSBkZXB0aCBpbiBhbiBlbXB0eSBzcGFuIHdpdGggZGlzcGxheTogdGFibGUtY2VsbC5cbiAgICAvLyBJdCBzaG91bGQgcmVuZGVyIHdpdGggdGhlIGhlaWdodCB0aGF0IHdlIGRlZmluZS4gQnV0IENocm9tZSwgaW5cbiAgICAvLyBjb250ZW50ZWRpdGFibGUgbW9kZSBvbmx5LCB0cmVhdHMgdGhhdCBzcGFuIGFzIGlmIGl0IGNvbnRhaW5zIHNvbWVcbiAgICAvLyB0ZXh0IGNvbnRlbnQuIEFuZCB0aGF0IG1pbi1oZWlnaHQgb3Zlci1yaWRlcyBvdXIgZGVzaXJlZCBoZWlnaHQuXG4gICAgLy8gU28gd2UgcHV0IGFub3RoZXIgZW1wdHkgc3BhbiBpbnNpZGUgdGhlIGRlcHRoIHN0cnV0IHNwYW4uXG4gICAgdmFyIGVtcHR5U3BhbiA9IG1ha2VTcGFuJDIoW10sIFtdKTtcbiAgICB2YXIgZGVwdGhTdHJ1dCA9IG1ha2VTcGFuJDIoW1widmxpc3RcIl0sIFtlbXB0eVNwYW5dKTtcbiAgICBkZXB0aFN0cnV0LnN0eWxlLmhlaWdodCA9IG1ha2VFbSgtbWluUG9zKTsgLy8gU2FmYXJpIHdhbnRzIHRoZSBmaXJzdCByb3cgdG8gaGF2ZSBpbmxpbmUgY29udGVudDsgb3RoZXJ3aXNlIGl0XG4gICAgLy8gcHV0cyB0aGUgYm90dG9tIG9mIHRoZSAqc2Vjb25kKiByb3cgb24gdGhlIGJhc2VsaW5lLlxuXG4gICAgdmFyIHRvcFN0cnV0ID0gbWFrZVNwYW4kMihbXCJ2bGlzdC1zXCJdLCBbbmV3IFN5bWJvbE5vZGUoXCJcXHUyMDBiXCIpXSk7XG4gICAgcm93cyA9IFttYWtlU3BhbiQyKFtcInZsaXN0LXJcIl0sIFt2bGlzdCwgdG9wU3RydXRdKSwgbWFrZVNwYW4kMihbXCJ2bGlzdC1yXCJdLCBbZGVwdGhTdHJ1dF0pXTtcbiAgfSBlbHNlIHtcbiAgICByb3dzID0gW21ha2VTcGFuJDIoW1widmxpc3QtclwiXSwgW3ZsaXN0XSldO1xuICB9XG5cbiAgdmFyIHZ0YWJsZSA9IG1ha2VTcGFuJDIoW1widmxpc3QtdFwiXSwgcm93cyk7XG5cbiAgaWYgKHJvd3MubGVuZ3RoID09PSAyKSB7XG4gICAgdnRhYmxlLmNsYXNzZXMucHVzaChcInZsaXN0LXQyXCIpO1xuICB9XG5cbiAgdnRhYmxlLmhlaWdodCA9IG1heFBvcztcbiAgdnRhYmxlLmRlcHRoID0gLW1pblBvcztcbiAgcmV0dXJuIHZ0YWJsZTtcbn07IC8vIEdsdWUgaXMgYSBjb25jZXB0IGZyb20gVGVYIHdoaWNoIGlzIGEgZmxleGlibGUgc3BhY2UgYmV0d2VlbiBlbGVtZW50cyBpblxuLy8gZWl0aGVyIGEgdmVydGljYWwgb3IgaG9yaXpvbnRhbCBsaXN0LiBJbiBLYVRlWCwgYXQgbGVhc3QgZm9yIG5vdywgaXQnc1xuLy8gc3RhdGljIHNwYWNlIGJldHdlZW4gZWxlbWVudHMgaW4gYSBob3Jpem9udGFsIGxheW91dC5cblxuXG52YXIgbWFrZUdsdWUgPSAobWVhc3VyZW1lbnQsIG9wdGlvbnMpID0+IHtcbiAgLy8gTWFrZSBhbiBlbXB0eSBzcGFuIGZvciB0aGUgc3BhY2VcbiAgdmFyIHJ1bGUgPSBtYWtlU3BhbiQyKFtcIm1zcGFjZVwiXSwgW10sIG9wdGlvbnMpO1xuICB2YXIgc2l6ZSA9IGNhbGN1bGF0ZVNpemUobWVhc3VyZW1lbnQsIG9wdGlvbnMpO1xuICBydWxlLnN0eWxlLm1hcmdpblJpZ2h0ID0gbWFrZUVtKHNpemUpO1xuICByZXR1cm4gcnVsZTtcbn07IC8vIFRha2VzIGZvbnQgb3B0aW9ucywgYW5kIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIGZvbnRMb29rdXAgbmFtZVxuXG5cbnZhciByZXRyaWV2ZVRleHRGb250TmFtZSA9IGZ1bmN0aW9uIHJldHJpZXZlVGV4dEZvbnROYW1lKGZvbnRGYW1pbHksIGZvbnRXZWlnaHQsIGZvbnRTaGFwZSkge1xuICB2YXIgYmFzZUZvbnROYW1lID0gXCJcIjtcblxuICBzd2l0Y2ggKGZvbnRGYW1pbHkpIHtcbiAgICBjYXNlIFwiYW1zcm1cIjpcbiAgICAgIGJhc2VGb250TmFtZSA9IFwiQU1TXCI7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgXCJ0ZXh0cm1cIjpcbiAgICAgIGJhc2VGb250TmFtZSA9IFwiTWFpblwiO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFwidGV4dHNmXCI6XG4gICAgICBiYXNlRm9udE5hbWUgPSBcIlNhbnNTZXJpZlwiO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFwidGV4dHR0XCI6XG4gICAgICBiYXNlRm9udE5hbWUgPSBcIlR5cGV3cml0ZXJcIjtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGJhc2VGb250TmFtZSA9IGZvbnRGYW1pbHk7XG4gICAgLy8gdXNlIGZvbnRzIGFkZGVkIGJ5IGEgcGx1Z2luXG4gIH1cblxuICB2YXIgZm9udFN0eWxlc05hbWU7XG5cbiAgaWYgKGZvbnRXZWlnaHQgPT09IFwidGV4dGJmXCIgJiYgZm9udFNoYXBlID09PSBcInRleHRpdFwiKSB7XG4gICAgZm9udFN0eWxlc05hbWUgPSBcIkJvbGRJdGFsaWNcIjtcbiAgfSBlbHNlIGlmIChmb250V2VpZ2h0ID09PSBcInRleHRiZlwiKSB7XG4gICAgZm9udFN0eWxlc05hbWUgPSBcIkJvbGRcIjtcbiAgfSBlbHNlIGlmIChmb250V2VpZ2h0ID09PSBcInRleHRpdFwiKSB7XG4gICAgZm9udFN0eWxlc05hbWUgPSBcIkl0YWxpY1wiO1xuICB9IGVsc2Uge1xuICAgIGZvbnRTdHlsZXNOYW1lID0gXCJSZWd1bGFyXCI7XG4gIH1cblxuICByZXR1cm4gYmFzZUZvbnROYW1lICsgXCItXCIgKyBmb250U3R5bGVzTmFtZTtcbn07XG4vKipcbiAqIE1hcHMgVGVYIGZvbnQgY29tbWFuZHMgdG8gb2JqZWN0cyBjb250YWluaW5nOlxuICogLSB2YXJpYW50OiBzdHJpbmcgdXNlZCBmb3IgXCJtYXRodmFyaWFudFwiIGF0dHJpYnV0ZSBpbiBidWlsZE1hdGhNTC5qc1xuICogLSBmb250TmFtZTogdGhlIFwic3R5bGVcIiBwYXJhbWV0ZXIgdG8gZm9udE1ldHJpY3MuZ2V0Q2hhcmFjdGVyTWV0cmljc1xuICovXG4vLyBBIG1hcCBiZXR3ZWVuIHRleCBmb250IGNvbW1hbmRzIGFuIE1hdGhNTCBtYXRodmFyaWFudCBhdHRyaWJ1dGUgdmFsdWVzXG5cblxudmFyIGZvbnRNYXAgPSB7XG4gIC8vIHN0eWxlc1xuICBcIm1hdGhiZlwiOiB7XG4gICAgdmFyaWFudDogXCJib2xkXCIsXG4gICAgZm9udE5hbWU6IFwiTWFpbi1Cb2xkXCJcbiAgfSxcbiAgXCJtYXRocm1cIjoge1xuICAgIHZhcmlhbnQ6IFwibm9ybWFsXCIsXG4gICAgZm9udE5hbWU6IFwiTWFpbi1SZWd1bGFyXCJcbiAgfSxcbiAgXCJ0ZXh0aXRcIjoge1xuICAgIHZhcmlhbnQ6IFwiaXRhbGljXCIsXG4gICAgZm9udE5hbWU6IFwiTWFpbi1JdGFsaWNcIlxuICB9LFxuICBcIm1hdGhpdFwiOiB7XG4gICAgdmFyaWFudDogXCJpdGFsaWNcIixcbiAgICBmb250TmFtZTogXCJNYWluLUl0YWxpY1wiXG4gIH0sXG4gIFwibWF0aG5vcm1hbFwiOiB7XG4gICAgdmFyaWFudDogXCJpdGFsaWNcIixcbiAgICBmb250TmFtZTogXCJNYXRoLUl0YWxpY1wiXG4gIH0sXG4gIC8vIFwiYm9sZHN5bWJvbFwiIGlzIG1pc3NpbmcgYmVjYXVzZSB0aGV5IHJlcXVpcmUgdGhlIHVzZSBvZiBtdWx0aXBsZSBmb250czpcbiAgLy8gTWF0aC1Cb2xkSXRhbGljIGFuZCBNYWluLUJvbGQuICBUaGlzIGlzIGhhbmRsZWQgYnkgYSBzcGVjaWFsIGNhc2UgaW5cbiAgLy8gbWFrZU9yZCB3aGljaCBlbmRzIHVwIGNhbGxpbmcgYm9sZHN5bWJvbC5cbiAgLy8gZmFtaWxpZXNcbiAgXCJtYXRoYmJcIjoge1xuICAgIHZhcmlhbnQ6IFwiZG91YmxlLXN0cnVja1wiLFxuICAgIGZvbnROYW1lOiBcIkFNUy1SZWd1bGFyXCJcbiAgfSxcbiAgXCJtYXRoY2FsXCI6IHtcbiAgICB2YXJpYW50OiBcInNjcmlwdFwiLFxuICAgIGZvbnROYW1lOiBcIkNhbGlncmFwaGljLVJlZ3VsYXJcIlxuICB9LFxuICBcIm1hdGhmcmFrXCI6IHtcbiAgICB2YXJpYW50OiBcImZyYWt0dXJcIixcbiAgICBmb250TmFtZTogXCJGcmFrdHVyLVJlZ3VsYXJcIlxuICB9LFxuICBcIm1hdGhzY3JcIjoge1xuICAgIHZhcmlhbnQ6IFwic2NyaXB0XCIsXG4gICAgZm9udE5hbWU6IFwiU2NyaXB0LVJlZ3VsYXJcIlxuICB9LFxuICBcIm1hdGhzZlwiOiB7XG4gICAgdmFyaWFudDogXCJzYW5zLXNlcmlmXCIsXG4gICAgZm9udE5hbWU6IFwiU2Fuc1NlcmlmLVJlZ3VsYXJcIlxuICB9LFxuICBcIm1hdGh0dFwiOiB7XG4gICAgdmFyaWFudDogXCJtb25vc3BhY2VcIixcbiAgICBmb250TmFtZTogXCJUeXBld3JpdGVyLVJlZ3VsYXJcIlxuICB9XG59O1xudmFyIHN2Z0RhdGEgPSB7XG4gIC8vICAgcGF0aCwgd2lkdGgsIGhlaWdodFxuICB2ZWM6IFtcInZlY1wiLCAwLjQ3MSwgMC43MTRdLFxuICAvLyB2YWx1ZXMgZnJvbSB0aGUgZm9udCBnbHlwaFxuICBvaWludFNpemUxOiBbXCJvaWludFNpemUxXCIsIDAuOTU3LCAwLjQ5OV0sXG4gIC8vIG92YWwgdG8gb3ZlcmxheSB0aGUgaW50ZWdyYW5kXG4gIG9paW50U2l6ZTI6IFtcIm9paW50U2l6ZTJcIiwgMS40NzIsIDAuNjU5XSxcbiAgb2lpaW50U2l6ZTE6IFtcIm9paWludFNpemUxXCIsIDEuMzA0LCAwLjQ5OV0sXG4gIG9paWludFNpemUyOiBbXCJvaWlpbnRTaXplMlwiLCAxLjk4LCAwLjY1OV1cbn07XG5cbnZhciBzdGF0aWNTdmcgPSBmdW5jdGlvbiBzdGF0aWNTdmcodmFsdWUsIG9wdGlvbnMpIHtcbiAgLy8gQ3JlYXRlIGEgc3BhbiB3aXRoIGlubGluZSBTVkcgZm9yIHRoZSBlbGVtZW50LlxuICB2YXIgW3BhdGhOYW1lLCB3aWR0aCwgaGVpZ2h0XSA9IHN2Z0RhdGFbdmFsdWVdO1xuICB2YXIgcGF0aCA9IG5ldyBQYXRoTm9kZShwYXRoTmFtZSk7XG4gIHZhciBzdmdOb2RlID0gbmV3IFN2Z05vZGUoW3BhdGhdLCB7XG4gICAgXCJ3aWR0aFwiOiBtYWtlRW0od2lkdGgpLFxuICAgIFwiaGVpZ2h0XCI6IG1ha2VFbShoZWlnaHQpLFxuICAgIC8vIE92ZXJyaWRlIENTUyBydWxlIGAua2F0ZXggc3ZnIHsgd2lkdGg6IDEwMCUgfWBcbiAgICBcInN0eWxlXCI6IFwid2lkdGg6XCIgKyBtYWtlRW0od2lkdGgpLFxuICAgIFwidmlld0JveFwiOiBcIjAgMCBcIiArIDEwMDAgKiB3aWR0aCArIFwiIFwiICsgMTAwMCAqIGhlaWdodCxcbiAgICBcInByZXNlcnZlQXNwZWN0UmF0aW9cIjogXCJ4TWluWU1pblwiXG4gIH0pO1xuICB2YXIgc3BhbiA9IG1ha2VTdmdTcGFuKFtcIm92ZXJsYXlcIl0sIFtzdmdOb2RlXSwgb3B0aW9ucyk7XG4gIHNwYW4uaGVpZ2h0ID0gaGVpZ2h0O1xuICBzcGFuLnN0eWxlLmhlaWdodCA9IG1ha2VFbShoZWlnaHQpO1xuICBzcGFuLnN0eWxlLndpZHRoID0gbWFrZUVtKHdpZHRoKTtcbiAgcmV0dXJuIHNwYW47XG59O1xuXG52YXIgYnVpbGRDb21tb24gPSB7XG4gIGZvbnRNYXAsXG4gIG1ha2VTeW1ib2wsXG4gIG1hdGhzeW0sXG4gIG1ha2VTcGFuOiBtYWtlU3BhbiQyLFxuICBtYWtlU3ZnU3BhbixcbiAgbWFrZUxpbmVTcGFuLFxuICBtYWtlQW5jaG9yLFxuICBtYWtlRnJhZ21lbnQsXG4gIHdyYXBGcmFnbWVudCxcbiAgbWFrZVZMaXN0LFxuICBtYWtlT3JkLFxuICBtYWtlR2x1ZSxcbiAgc3RhdGljU3ZnLFxuICBzdmdEYXRhLFxuICB0cnlDb21iaW5lQ2hhcnNcbn07XG5cbi8qKlxuICogRGVzY3JpYmVzIHNwYWNlcyBiZXR3ZWVuIGRpZmZlcmVudCBjbGFzc2VzIG9mIGF0b21zLlxuICovXG52YXIgdGhpbnNwYWNlID0ge1xuICBudW1iZXI6IDMsXG4gIHVuaXQ6IFwibXVcIlxufTtcbnZhciBtZWRpdW1zcGFjZSA9IHtcbiAgbnVtYmVyOiA0LFxuICB1bml0OiBcIm11XCJcbn07XG52YXIgdGhpY2tzcGFjZSA9IHtcbiAgbnVtYmVyOiA1LFxuICB1bml0OiBcIm11XCJcbn07IC8vIE1ha2luZyB0aGUgdHlwZSBiZWxvdyBleGFjdCB3aXRoIGFsbCBvcHRpb25hbCBmaWVsZHMgZG9lc24ndCB3b3JrIGR1ZSB0b1xuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svZmxvdy9pc3N1ZXMvNDU4MlxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svZmxvdy9pc3N1ZXMvNTY4OFxuLy8gSG93ZXZlciwgc2luY2UgKmFsbCogZmllbGRzIGFyZSBvcHRpb25hbCwgJFNoYXBlPD4gd29ya3MgYXMgc3VnZ2VzdGVkIGluIDU2ODhcbi8vIGFib3ZlLlxuXG4vLyBTcGFjaW5nIHJlbGF0aW9uc2hpcHMgZm9yIGRpc3BsYXkgYW5kIHRleHQgc3R5bGVzXG52YXIgc3BhY2luZ3MgPSB7XG4gIG1vcmQ6IHtcbiAgICBtb3A6IHRoaW5zcGFjZSxcbiAgICBtYmluOiBtZWRpdW1zcGFjZSxcbiAgICBtcmVsOiB0aGlja3NwYWNlLFxuICAgIG1pbm5lcjogdGhpbnNwYWNlXG4gIH0sXG4gIG1vcDoge1xuICAgIG1vcmQ6IHRoaW5zcGFjZSxcbiAgICBtb3A6IHRoaW5zcGFjZSxcbiAgICBtcmVsOiB0aGlja3NwYWNlLFxuICAgIG1pbm5lcjogdGhpbnNwYWNlXG4gIH0sXG4gIG1iaW46IHtcbiAgICBtb3JkOiBtZWRpdW1zcGFjZSxcbiAgICBtb3A6IG1lZGl1bXNwYWNlLFxuICAgIG1vcGVuOiBtZWRpdW1zcGFjZSxcbiAgICBtaW5uZXI6IG1lZGl1bXNwYWNlXG4gIH0sXG4gIG1yZWw6IHtcbiAgICBtb3JkOiB0aGlja3NwYWNlLFxuICAgIG1vcDogdGhpY2tzcGFjZSxcbiAgICBtb3BlbjogdGhpY2tzcGFjZSxcbiAgICBtaW5uZXI6IHRoaWNrc3BhY2VcbiAgfSxcbiAgbW9wZW46IHt9LFxuICBtY2xvc2U6IHtcbiAgICBtb3A6IHRoaW5zcGFjZSxcbiAgICBtYmluOiBtZWRpdW1zcGFjZSxcbiAgICBtcmVsOiB0aGlja3NwYWNlLFxuICAgIG1pbm5lcjogdGhpbnNwYWNlXG4gIH0sXG4gIG1wdW5jdDoge1xuICAgIG1vcmQ6IHRoaW5zcGFjZSxcbiAgICBtb3A6IHRoaW5zcGFjZSxcbiAgICBtcmVsOiB0aGlja3NwYWNlLFxuICAgIG1vcGVuOiB0aGluc3BhY2UsXG4gICAgbWNsb3NlOiB0aGluc3BhY2UsXG4gICAgbXB1bmN0OiB0aGluc3BhY2UsXG4gICAgbWlubmVyOiB0aGluc3BhY2VcbiAgfSxcbiAgbWlubmVyOiB7XG4gICAgbW9yZDogdGhpbnNwYWNlLFxuICAgIG1vcDogdGhpbnNwYWNlLFxuICAgIG1iaW46IG1lZGl1bXNwYWNlLFxuICAgIG1yZWw6IHRoaWNrc3BhY2UsXG4gICAgbW9wZW46IHRoaW5zcGFjZSxcbiAgICBtcHVuY3Q6IHRoaW5zcGFjZSxcbiAgICBtaW5uZXI6IHRoaW5zcGFjZVxuICB9XG59OyAvLyBTcGFjaW5nIHJlbGF0aW9uc2hpcHMgZm9yIHNjcmlwdCBhbmQgc2NyaXB0c2NyaXB0IHN0eWxlc1xuXG52YXIgdGlnaHRTcGFjaW5ncyA9IHtcbiAgbW9yZDoge1xuICAgIG1vcDogdGhpbnNwYWNlXG4gIH0sXG4gIG1vcDoge1xuICAgIG1vcmQ6IHRoaW5zcGFjZSxcbiAgICBtb3A6IHRoaW5zcGFjZVxuICB9LFxuICBtYmluOiB7fSxcbiAgbXJlbDoge30sXG4gIG1vcGVuOiB7fSxcbiAgbWNsb3NlOiB7XG4gICAgbW9wOiB0aGluc3BhY2VcbiAgfSxcbiAgbXB1bmN0OiB7fSxcbiAgbWlubmVyOiB7XG4gICAgbW9wOiB0aGluc3BhY2VcbiAgfVxufTtcblxuLyoqIENvbnRleHQgcHJvdmlkZWQgdG8gZnVuY3Rpb24gaGFuZGxlcnMgZm9yIGVycm9yIG1lc3NhZ2VzLiAqL1xuLy8gTm90ZTogcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlIHJldHVybiB0eXBlIHVuaW9uIHdpbGwgY2F1c2UgYSBmbG93IGVycm9yLlxuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9mbG93L2lzc3Vlcy8zNjYzLlxuLy8gTW9yZSBnZW5lcmFsIHZlcnNpb24gb2YgYEh0bWxCdWlsZGVyYCBmb3Igbm9kZXMgKGUuZy4gXFxzdW0sIGFjY2VudCB0eXBlcylcbi8vIHdob3NlIHByZXNlbmNlIGltcGFjdHMgc3VwZXIvc3Vic2NyaXB0aW5nLiBJbiB0aGlzIGNhc2UsIFBhcnNlTm9kZTxcInN1cHN1YlwiPlxuLy8gZGVsZWdhdGVzIGl0cyBIVE1MIGJ1aWxkaW5nIHRvIHRoZSBIdG1sQnVpbGRlciBjb3JyZXNwb25kaW5nIHRvIHRoZXNlIG5vZGVzLlxuXG4vKipcbiAqIEZpbmFsIGZ1bmN0aW9uIHNwZWMgZm9yIHVzZSBhdCBwYXJzZSB0aW1lLlxuICogVGhpcyBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIGBGdW5jdGlvblByb3BTcGVjYCwgZXhjZXB0IGl0XG4gKiAxLiBpbmNsdWRlcyB0aGUgZnVuY3Rpb24gaGFuZGxlciwgYW5kXG4gKiAyLiByZXF1aXJlcyBhbGwgYXJndW1lbnRzIGV4Y2VwdCBhcmdUeXBlcy5cbiAqIEl0IGlzIGdlbmVyYXRlZCBieSBgZGVmaW5lRnVuY3Rpb24oKWAgYmVsb3cuXG4gKi9cblxuLyoqXG4gKiBBbGwgcmVnaXN0ZXJlZCBmdW5jdGlvbnMuXG4gKiBgZnVuY3Rpb25zLmpzYCBqdXN0IGV4cG9ydHMgdGhpcyBzYW1lIGRpY3Rpb25hcnkgYWdhaW4gYW5kIG1ha2VzIGl0IHB1YmxpYy5cbiAqIGBQYXJzZXIuanNgIHJlcXVpcmVzIHRoaXMgZGljdGlvbmFyeS5cbiAqL1xudmFyIF9mdW5jdGlvbnMgPSB7fTtcbi8qKlxuICogQWxsIEhUTUwgYnVpbGRlcnMuIFNob3VsZCBiZSBvbmx5IHVzZWQgaW4gdGhlIGBkZWZpbmUqYCBhbmQgdGhlIGBidWlsZCpNTGBcbiAqIGZ1bmN0aW9ucy5cbiAqL1xuXG52YXIgX2h0bWxHcm91cEJ1aWxkZXJzID0ge307XG4vKipcbiAqIEFsbCBNYXRoTUwgYnVpbGRlcnMuIFNob3VsZCBiZSBvbmx5IHVzZWQgaW4gdGhlIGBkZWZpbmUqYCBhbmQgdGhlIGBidWlsZCpNTGBcbiAqIGZ1bmN0aW9ucy5cbiAqL1xuXG52YXIgX21hdGhtbEdyb3VwQnVpbGRlcnMgPSB7fTtcbmZ1bmN0aW9uIGRlZmluZUZ1bmN0aW9uKF9yZWYpIHtcbiAgdmFyIHtcbiAgICB0eXBlLFxuICAgIG5hbWVzLFxuICAgIHByb3BzLFxuICAgIGhhbmRsZXIsXG4gICAgaHRtbEJ1aWxkZXIsXG4gICAgbWF0aG1sQnVpbGRlclxuICB9ID0gX3JlZjtcbiAgLy8gU2V0IGRlZmF1bHQgdmFsdWVzIG9mIGZ1bmN0aW9uc1xuICB2YXIgZGF0YSA9IHtcbiAgICB0eXBlLFxuICAgIG51bUFyZ3M6IHByb3BzLm51bUFyZ3MsXG4gICAgYXJnVHlwZXM6IHByb3BzLmFyZ1R5cGVzLFxuICAgIGFsbG93ZWRJbkFyZ3VtZW50OiAhIXByb3BzLmFsbG93ZWRJbkFyZ3VtZW50LFxuICAgIGFsbG93ZWRJblRleHQ6ICEhcHJvcHMuYWxsb3dlZEluVGV4dCxcbiAgICBhbGxvd2VkSW5NYXRoOiBwcm9wcy5hbGxvd2VkSW5NYXRoID09PSB1bmRlZmluZWQgPyB0cnVlIDogcHJvcHMuYWxsb3dlZEluTWF0aCxcbiAgICBudW1PcHRpb25hbEFyZ3M6IHByb3BzLm51bU9wdGlvbmFsQXJncyB8fCAwLFxuICAgIGluZml4OiAhIXByb3BzLmluZml4LFxuICAgIHByaW1pdGl2ZTogISFwcm9wcy5wcmltaXRpdmUsXG4gICAgaGFuZGxlcjogaGFuZGxlclxuICB9O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHtcbiAgICBfZnVuY3Rpb25zW25hbWVzW2ldXSA9IGRhdGE7XG4gIH1cblxuICBpZiAodHlwZSkge1xuICAgIGlmIChodG1sQnVpbGRlcikge1xuICAgICAgX2h0bWxHcm91cEJ1aWxkZXJzW3R5cGVdID0gaHRtbEJ1aWxkZXI7XG4gICAgfVxuXG4gICAgaWYgKG1hdGhtbEJ1aWxkZXIpIHtcbiAgICAgIF9tYXRobWxHcm91cEJ1aWxkZXJzW3R5cGVdID0gbWF0aG1sQnVpbGRlcjtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogVXNlIHRoaXMgdG8gcmVnaXN0ZXIgb25seSB0aGUgSFRNTCBhbmQgTWF0aE1MIGJ1aWxkZXJzIGZvciBhIGZ1bmN0aW9uIChlLmcuXG4gKiBpZiB0aGUgZnVuY3Rpb24ncyBQYXJzZU5vZGUgaXMgZ2VuZXJhdGVkIGluIFBhcnNlci5qcyByYXRoZXIgdGhhbiB2aWEgYVxuICogc3RhbmQtYWxvbmUgaGFuZGxlciBwcm92aWRlZCB0byBgZGVmaW5lRnVuY3Rpb25gKS5cbiAqL1xuXG5mdW5jdGlvbiBkZWZpbmVGdW5jdGlvbkJ1aWxkZXJzKF9yZWYyKSB7XG4gIHZhciB7XG4gICAgdHlwZSxcbiAgICBodG1sQnVpbGRlcixcbiAgICBtYXRobWxCdWlsZGVyXG4gIH0gPSBfcmVmMjtcbiAgZGVmaW5lRnVuY3Rpb24oe1xuICAgIHR5cGUsXG4gICAgbmFtZXM6IFtdLFxuICAgIHByb3BzOiB7XG4gICAgICBudW1BcmdzOiAwXG4gICAgfSxcblxuICAgIGhhbmRsZXIoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBuZXZlciBiZSBjYWxsZWQuJyk7XG4gICAgfSxcblxuICAgIGh0bWxCdWlsZGVyLFxuICAgIG1hdGhtbEJ1aWxkZXJcbiAgfSk7XG59XG52YXIgbm9ybWFsaXplQXJndW1lbnQgPSBmdW5jdGlvbiBub3JtYWxpemVBcmd1bWVudChhcmcpIHtcbiAgcmV0dXJuIGFyZy50eXBlID09PSBcIm9yZGdyb3VwXCIgJiYgYXJnLmJvZHkubGVuZ3RoID09PSAxID8gYXJnLmJvZHlbMF0gOiBhcmc7XG59OyAvLyBTaW5jZSB0aGUgY29ycmVzcG9uZGluZyBidWlsZEhUTUwvYnVpbGRNYXRoTUwgZnVuY3Rpb24gZXhwZWN0cyBhXG4vLyBsaXN0IG9mIGVsZW1lbnRzLCB3ZSBub3JtYWxpemUgZm9yIGRpZmZlcmVudCBraW5kcyBvZiBhcmd1bWVudHNcblxudmFyIG9yZGFyZ3VtZW50ID0gZnVuY3Rpb24gb3JkYXJndW1lbnQoYXJnKSB7XG4gIHJldHVybiBhcmcudHlwZSA9PT0gXCJvcmRncm91cFwiID8gYXJnLmJvZHkgOiBbYXJnXTtcbn07XG5cbi8qKlxuICogVGhpcyBmaWxlIGRvZXMgdGhlIG1haW4gd29yayBvZiBidWlsZGluZyBhIGRvbVRyZWUgc3RydWN0dXJlIGZyb20gYSBwYXJzZVxuICogdHJlZS4gVGhlIGVudHJ5IHBvaW50IGlzIHRoZSBgYnVpbGRIVE1MYCBmdW5jdGlvbiwgd2hpY2ggdGFrZXMgYSBwYXJzZSB0cmVlLlxuICogVGhlbiwgdGhlIGJ1aWxkRXhwcmVzc2lvbiwgYnVpbGRHcm91cCwgYW5kIHZhcmlvdXMgZ3JvdXBCdWlsZGVycyBmdW5jdGlvbnNcbiAqIGFyZSBjYWxsZWQsIHRvIHByb2R1Y2UgYSBmaW5hbCBIVE1MIHRyZWUuXG4gKi9cbnZhciBtYWtlU3BhbiQxID0gYnVpbGRDb21tb24ubWFrZVNwYW47IC8vIEJpbmFyeSBhdG9tcyAoZmlyc3QgY2xhc3MgYG1iaW5gKSBjaGFuZ2UgaW50byBvcmRpbmFyeSBhdG9tcyAoYG1vcmRgKVxuLy8gZGVwZW5kaW5nIG9uIHRoZWlyIHN1cnJvdW5kaW5ncy4gU2VlIFRlWGJvb2sgcGcuIDQ0Mi00NDYsIFJ1bGVzIDUgYW5kIDYsXG4vLyBhbmQgdGhlIHRleHQgYmVmb3JlIFJ1bGUgMTkuXG5cbnZhciBiaW5MZWZ0Q2FuY2VsbGVyID0gW1wibGVmdG1vc3RcIiwgXCJtYmluXCIsIFwibW9wZW5cIiwgXCJtcmVsXCIsIFwibW9wXCIsIFwibXB1bmN0XCJdO1xudmFyIGJpblJpZ2h0Q2FuY2VsbGVyID0gW1wicmlnaHRtb3N0XCIsIFwibXJlbFwiLCBcIm1jbG9zZVwiLCBcIm1wdW5jdFwiXTtcbnZhciBzdHlsZU1hcCQxID0ge1xuICBcImRpc3BsYXlcIjogU3R5bGUkMS5ESVNQTEFZLFxuICBcInRleHRcIjogU3R5bGUkMS5URVhULFxuICBcInNjcmlwdFwiOiBTdHlsZSQxLlNDUklQVCxcbiAgXCJzY3JpcHRzY3JpcHRcIjogU3R5bGUkMS5TQ1JJUFRTQ1JJUFRcbn07XG52YXIgRG9tRW51bSA9IHtcbiAgbW9yZDogXCJtb3JkXCIsXG4gIG1vcDogXCJtb3BcIixcbiAgbWJpbjogXCJtYmluXCIsXG4gIG1yZWw6IFwibXJlbFwiLFxuICBtb3BlbjogXCJtb3BlblwiLFxuICBtY2xvc2U6IFwibWNsb3NlXCIsXG4gIG1wdW5jdDogXCJtcHVuY3RcIixcbiAgbWlubmVyOiBcIm1pbm5lclwiXG59O1xuXG4vKipcbiAqIFRha2UgYSBsaXN0IG9mIG5vZGVzLCBidWlsZCB0aGVtIGluIG9yZGVyLCBhbmQgcmV0dXJuIGEgbGlzdCBvZiB0aGUgYnVpbHRcbiAqIG5vZGVzLiBkb2N1bWVudEZyYWdtZW50cyBhcmUgZmxhdHRlbmVkIGludG8gdGhlaXIgY29udGVudHMsIHNvIHRoZVxuICogcmV0dXJuZWQgbGlzdCBjb250YWlucyBubyBmcmFnbWVudHMuIGBpc1JlYWxHcm91cGAgaXMgdHJ1ZSBpZiBgZXhwcmVzc2lvbmBcbiAqIGlzIGEgcmVhbCBncm91cCAobm8gYXRvbXMgd2lsbCBiZSBhZGRlZCBvbiBlaXRoZXIgc2lkZSksIGFzIG9wcG9zZWQgdG9cbiAqIGEgcGFydGlhbCBncm91cCAoZS5nLiBvbmUgY3JlYXRlZCBieSBcXGNvbG9yKS4gYHN1cnJvdW5kaW5nYCBpcyBhbiBhcnJheVxuICogY29uc2lzdGluZyB0eXBlIG9mIG5vZGVzIHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgbGVmdCBhbmQgcmlnaHQuXG4gKi9cbnZhciBidWlsZEV4cHJlc3Npb24kMSA9IGZ1bmN0aW9uIGJ1aWxkRXhwcmVzc2lvbihleHByZXNzaW9uLCBvcHRpb25zLCBpc1JlYWxHcm91cCwgc3Vycm91bmRpbmcpIHtcbiAgaWYgKHN1cnJvdW5kaW5nID09PSB2b2lkIDApIHtcbiAgICBzdXJyb3VuZGluZyA9IFtudWxsLCBudWxsXTtcbiAgfVxuXG4gIC8vIFBhcnNlIGV4cHJlc3Npb25zIGludG8gYGdyb3Vwc2AuXG4gIHZhciBncm91cHMgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cHJlc3Npb24ubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgb3V0cHV0ID0gYnVpbGRHcm91cCQxKGV4cHJlc3Npb25baV0sIG9wdGlvbnMpO1xuXG4gICAgaWYgKG91dHB1dCBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IG91dHB1dC5jaGlsZHJlbjtcbiAgICAgIGdyb3Vwcy5wdXNoKC4uLmNoaWxkcmVuKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZ3JvdXBzLnB1c2gob3V0cHV0KTtcbiAgICB9XG4gIH0gLy8gQ29tYmluZSBjb25zZWN1dGl2ZSBkb21UcmVlLnN5bWJvbE5vZGVzIGludG8gYSBzaW5nbGUgc3ltYm9sTm9kZS5cblxuXG4gIGJ1aWxkQ29tbW9uLnRyeUNvbWJpbmVDaGFycyhncm91cHMpOyAvLyBJZiBgZXhwcmVzc2lvbmAgaXMgYSBwYXJ0aWFsIGdyb3VwLCBsZXQgdGhlIHBhcmVudCBoYW5kbGUgc3BhY2luZ3NcbiAgLy8gdG8gYXZvaWQgcHJvY2Vzc2luZyBncm91cHMgbXVsdGlwbGUgdGltZXMuXG5cbiAgaWYgKCFpc1JlYWxHcm91cCkge1xuICAgIHJldHVybiBncm91cHM7XG4gIH1cblxuICB2YXIgZ2x1ZU9wdGlvbnMgPSBvcHRpb25zO1xuXG4gIGlmIChleHByZXNzaW9uLmxlbmd0aCA9PT0gMSkge1xuICAgIHZhciBub2RlID0gZXhwcmVzc2lvblswXTtcblxuICAgIGlmIChub2RlLnR5cGUgPT09IFwic2l6aW5nXCIpIHtcbiAgICAgIGdsdWVPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTaXplKG5vZGUuc2l6ZSk7XG4gICAgfSBlbHNlIGlmIChub2RlLnR5cGUgPT09IFwic3R5bGluZ1wiKSB7XG4gICAgICBnbHVlT3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nU3R5bGUoc3R5bGVNYXAkMVtub2RlLnN0eWxlXSk7XG4gICAgfVxuICB9IC8vIER1bW15IHNwYW5zIGZvciBkZXRlcm1pbmluZyBzcGFjaW5ncyBiZXR3ZWVuIHN1cnJvdW5kaW5nIGF0b21zLlxuICAvLyBJZiBgZXhwcmVzc2lvbmAgaGFzIG5vIGF0b21zIG9uIHRoZSBsZWZ0IG9yIHJpZ2h0LCBjbGFzcyBcImxlZnRtb3N0XCJcbiAgLy8gb3IgXCJyaWdodG1vc3RcIiwgcmVzcGVjdGl2ZWx5LCBpcyB1c2VkIHRvIGluZGljYXRlIGl0LlxuXG5cbiAgdmFyIGR1bW15UHJldiA9IG1ha2VTcGFuJDEoW3N1cnJvdW5kaW5nWzBdIHx8IFwibGVmdG1vc3RcIl0sIFtdLCBvcHRpb25zKTtcbiAgdmFyIGR1bW15TmV4dCA9IG1ha2VTcGFuJDEoW3N1cnJvdW5kaW5nWzFdIHx8IFwicmlnaHRtb3N0XCJdLCBbXSwgb3B0aW9ucyk7IC8vIFRPRE86IFRoZXNlIGNvZGUgYXNzdW1lcyB0aGF0IGEgbm9kZSdzIG1hdGggY2xhc3MgaXMgdGhlIGZpcnN0IGVsZW1lbnRcbiAgLy8gb2YgaXRzIGBjbGFzc2VzYCBhcnJheS4gQSBsYXRlciBjbGVhbnVwIHNob3VsZCBlbnN1cmUgdGhpcywgZm9yXG4gIC8vIGluc3RhbmNlIGJ5IGNoYW5naW5nIHRoZSBzaWduYXR1cmUgb2YgYG1ha2VTcGFuYC5cbiAgLy8gQmVmb3JlIGRldGVybWluaW5nIHdoYXQgc3BhY2VzIHRvIGluc2VydCwgcGVyZm9ybSBiaW4gY2FuY2VsbGF0aW9uLlxuICAvLyBCaW5hcnkgb3BlcmF0b3JzIGNoYW5nZSB0byBvcmRpbmFyeSBzeW1ib2xzIGluIHNvbWUgY29udGV4dHMuXG5cbiAgdmFyIGlzUm9vdCA9IGlzUmVhbEdyb3VwID09PSBcInJvb3RcIjtcbiAgdHJhdmVyc2VOb25TcGFjZU5vZGVzKGdyb3VwcywgKG5vZGUsIHByZXYpID0+IHtcbiAgICB2YXIgcHJldlR5cGUgPSBwcmV2LmNsYXNzZXNbMF07XG4gICAgdmFyIHR5cGUgPSBub2RlLmNsYXNzZXNbMF07XG5cbiAgICBpZiAocHJldlR5cGUgPT09IFwibWJpblwiICYmIHV0aWxzLmNvbnRhaW5zKGJpblJpZ2h0Q2FuY2VsbGVyLCB0eXBlKSkge1xuICAgICAgcHJldi5jbGFzc2VzWzBdID0gXCJtb3JkXCI7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm1iaW5cIiAmJiB1dGlscy5jb250YWlucyhiaW5MZWZ0Q2FuY2VsbGVyLCBwcmV2VHlwZSkpIHtcbiAgICAgIG5vZGUuY2xhc3Nlc1swXSA9IFwibW9yZFwiO1xuICAgIH1cbiAgfSwge1xuICAgIG5vZGU6IGR1bW15UHJldlxuICB9LCBkdW1teU5leHQsIGlzUm9vdCk7XG4gIHRyYXZlcnNlTm9uU3BhY2VOb2Rlcyhncm91cHMsIChub2RlLCBwcmV2KSA9PiB7XG4gICAgdmFyIHByZXZUeXBlID0gZ2V0VHlwZU9mRG9tVHJlZShwcmV2KTtcbiAgICB2YXIgdHlwZSA9IGdldFR5cGVPZkRvbVRyZWUobm9kZSk7IC8vICdtdGlnaHQnIGluZGljYXRlcyB0aGF0IHRoZSBub2RlIGlzIHNjcmlwdCBvciBzY3JpcHRzY3JpcHQgc3R5bGUuXG5cbiAgICB2YXIgc3BhY2UgPSBwcmV2VHlwZSAmJiB0eXBlID8gbm9kZS5oYXNDbGFzcyhcIm10aWdodFwiKSA/IHRpZ2h0U3BhY2luZ3NbcHJldlR5cGVdW3R5cGVdIDogc3BhY2luZ3NbcHJldlR5cGVdW3R5cGVdIDogbnVsbDtcblxuICAgIGlmIChzcGFjZSkge1xuICAgICAgLy8gSW5zZXJ0IGdsdWUgKHNwYWNpbmcpIGFmdGVyIHRoZSBgcHJldmAuXG4gICAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZUdsdWUoc3BhY2UsIGdsdWVPcHRpb25zKTtcbiAgICB9XG4gIH0sIHtcbiAgICBub2RlOiBkdW1teVByZXZcbiAgfSwgZHVtbXlOZXh0LCBpc1Jvb3QpO1xuICByZXR1cm4gZ3JvdXBzO1xufTsgLy8gRGVwdGgtZmlyc3QgdHJhdmVyc2Ugbm9uLXNwYWNlIGBub2Rlc2AsIGNhbGxpbmcgYGNhbGxiYWNrYCB3aXRoIHRoZSBjdXJyZW50IGFuZFxuLy8gcHJldmlvdXMgbm9kZSBhcyBhcmd1bWVudHMsIG9wdGlvbmFsbHkgcmV0dXJuaW5nIGEgbm9kZSB0byBpbnNlcnQgYWZ0ZXIgdGhlXG4vLyBwcmV2aW91cyBub2RlLiBgcHJldmAgaXMgYW4gb2JqZWN0IHdpdGggdGhlIHByZXZpb3VzIG5vZGUgYW5kIGBpbnNlcnRBZnRlcmBcbi8vIGZ1bmN0aW9uIHRvIGluc2VydCBhZnRlciBpdC4gYG5leHRgIGlzIGEgbm9kZSB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIHJpZ2h0LlxuLy8gVXNlZCBmb3IgYmluIGNhbmNlbGxhdGlvbiBhbmQgaW5zZXJ0aW5nIHNwYWNpbmdzLlxuXG52YXIgdHJhdmVyc2VOb25TcGFjZU5vZGVzID0gZnVuY3Rpb24gdHJhdmVyc2VOb25TcGFjZU5vZGVzKG5vZGVzLCBjYWxsYmFjaywgcHJldiwgbmV4dCwgaXNSb290KSB7XG4gIGlmIChuZXh0KSB7XG4gICAgLy8gdGVtcG9yYXJpbHkgYXBwZW5kIHRoZSByaWdodCBub2RlLCBpZiBleGlzdHNcbiAgICBub2Rlcy5wdXNoKG5leHQpO1xuICB9XG5cbiAgdmFyIGkgPSAwO1xuXG4gIGZvciAoOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbm9kZSA9IG5vZGVzW2ldO1xuICAgIHZhciBwYXJ0aWFsR3JvdXAgPSBjaGVja1BhcnRpYWxHcm91cChub2RlKTtcblxuICAgIGlmIChwYXJ0aWFsR3JvdXApIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBERlNcbiAgICAgIC8vICRGbG93Rml4TWU6IG1ha2Ugbm9kZXMgYSAkUmVhZE9ubHlBcnJheSBieSByZXR1cm5pbmcgYSBuZXcgYXJyYXlcbiAgICAgIHRyYXZlcnNlTm9uU3BhY2VOb2RlcyhwYXJ0aWFsR3JvdXAuY2hpbGRyZW4sIGNhbGxiYWNrLCBwcmV2LCBudWxsLCBpc1Jvb3QpO1xuICAgICAgY29udGludWU7XG4gICAgfSAvLyBJZ25vcmUgZXhwbGljaXQgc3BhY2VzIChlLmcuLCBcXDssIFxcLCkgd2hlbiBkZXRlcm1pbmluZyB3aGF0IGltcGxpY2l0XG4gICAgLy8gc3BhY2luZyBzaG91bGQgZ28gYmV0d2VlbiBhdG9tcyBvZiBkaWZmZXJlbnQgY2xhc3Nlc1xuXG5cbiAgICB2YXIgbm9uc3BhY2UgPSAhbm9kZS5oYXNDbGFzcyhcIm1zcGFjZVwiKTtcblxuICAgIGlmIChub25zcGFjZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IGNhbGxiYWNrKG5vZGUsIHByZXYubm9kZSk7XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgaWYgKHByZXYuaW5zZXJ0QWZ0ZXIpIHtcbiAgICAgICAgICBwcmV2Lmluc2VydEFmdGVyKHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gaW5zZXJ0IGF0IGZyb250XG4gICAgICAgICAgbm9kZXMudW5zaGlmdChyZXN1bHQpO1xuICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChub25zcGFjZSkge1xuICAgICAgcHJldi5ub2RlID0gbm9kZTtcbiAgICB9IGVsc2UgaWYgKGlzUm9vdCAmJiBub2RlLmhhc0NsYXNzKFwibmV3bGluZVwiKSkge1xuICAgICAgcHJldi5ub2RlID0gbWFrZVNwYW4kMShbXCJsZWZ0bW9zdFwiXSk7IC8vIHRyZWF0IGxpa2UgYmVnaW5uaW5nIG9mIGxpbmVcbiAgICB9XG5cbiAgICBwcmV2Lmluc2VydEFmdGVyID0gKGluZGV4ID0+IG4gPT4ge1xuICAgICAgbm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgbik7XG4gICAgICBpKys7XG4gICAgfSkoaSk7XG4gIH1cblxuICBpZiAobmV4dCkge1xuICAgIG5vZGVzLnBvcCgpO1xuICB9XG59OyAvLyBDaGVjayBpZiBnaXZlbiBub2RlIGlzIGEgcGFydGlhbCBncm91cCwgaS5lLiwgZG9lcyBub3QgYWZmZWN0IHNwYWNpbmcgYXJvdW5kLlxuXG5cbnZhciBjaGVja1BhcnRpYWxHcm91cCA9IGZ1bmN0aW9uIGNoZWNrUGFydGlhbEdyb3VwKG5vZGUpIHtcbiAgaWYgKG5vZGUgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBBbmNob3IgfHwgbm9kZSBpbnN0YW5jZW9mIFNwYW4gJiYgbm9kZS5oYXNDbGFzcyhcImVuY2xvc2luZ1wiKSkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59OyAvLyBSZXR1cm4gdGhlIG91dGVybW9zdCBub2RlIG9mIGEgZG9tVHJlZS5cblxuXG52YXIgZ2V0T3V0ZXJtb3N0Tm9kZSA9IGZ1bmN0aW9uIGdldE91dGVybW9zdE5vZGUobm9kZSwgc2lkZSkge1xuICB2YXIgcGFydGlhbEdyb3VwID0gY2hlY2tQYXJ0aWFsR3JvdXAobm9kZSk7XG5cbiAgaWYgKHBhcnRpYWxHcm91cCkge1xuICAgIHZhciBjaGlsZHJlbiA9IHBhcnRpYWxHcm91cC5jaGlsZHJlbjtcblxuICAgIGlmIChjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIGlmIChzaWRlID09PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgcmV0dXJuIGdldE91dGVybW9zdE5vZGUoY2hpbGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV0sIFwicmlnaHRcIik7XG4gICAgICB9IGVsc2UgaWYgKHNpZGUgPT09IFwibGVmdFwiKSB7XG4gICAgICAgIHJldHVybiBnZXRPdXRlcm1vc3ROb2RlKGNoaWxkcmVuWzBdLCBcImxlZnRcIik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vZGU7XG59OyAvLyBSZXR1cm4gbWF0aCBhdG9tIGNsYXNzIChtY2xhc3MpIG9mIGEgZG9tVHJlZS5cbi8vIElmIGBzaWRlYCBpcyBnaXZlbiwgaXQgd2lsbCBnZXQgdGhlIHR5cGUgb2YgdGhlIG91dGVybW9zdCBub2RlIGF0IGdpdmVuIHNpZGUuXG5cblxudmFyIGdldFR5cGVPZkRvbVRyZWUgPSBmdW5jdGlvbiBnZXRUeXBlT2ZEb21UcmVlKG5vZGUsIHNpZGUpIHtcbiAgaWYgKCFub2RlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoc2lkZSkge1xuICAgIG5vZGUgPSBnZXRPdXRlcm1vc3ROb2RlKG5vZGUsIHNpZGUpO1xuICB9IC8vIFRoaXMgbWFrZXMgYSBsb3Qgb2YgYXNzdW1wdGlvbnMgYXMgdG8gd2hlcmUgdGhlIHR5cGUgb2YgYXRvbVxuICAvLyBhcHBlYXJzLiAgV2Ugc2hvdWxkIGRvIGEgYmV0dGVyIGpvYiBvZiBlbmZvcmNpbmcgdGhpcy5cblxuXG4gIHJldHVybiBEb21FbnVtW25vZGUuY2xhc3Nlc1swXV0gfHwgbnVsbDtcbn07XG52YXIgbWFrZU51bGxEZWxpbWl0ZXIgPSBmdW5jdGlvbiBtYWtlTnVsbERlbGltaXRlcihvcHRpb25zLCBjbGFzc2VzKSB7XG4gIHZhciBtb3JlQ2xhc3NlcyA9IFtcIm51bGxkZWxpbWl0ZXJcIl0uY29uY2F0KG9wdGlvbnMuYmFzZVNpemluZ0NsYXNzZXMoKSk7XG4gIHJldHVybiBtYWtlU3BhbiQxKGNsYXNzZXMuY29uY2F0KG1vcmVDbGFzc2VzKSk7XG59O1xuLyoqXG4gKiBidWlsZEdyb3VwIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgZ3JvdXAgYW5kIGNhbGxzIHRoZSBjb3JyZWN0IGdyb3VwVHlwZVxuICogZnVuY3Rpb24gZm9yIGl0LiBJdCBhbHNvIGhhbmRsZXMgdGhlIGludGVyYWN0aW9uIG9mIHNpemUgYW5kIHN0eWxlIGNoYW5nZXNcbiAqIGJldHdlZW4gcGFyZW50cyBhbmQgY2hpbGRyZW4uXG4gKi9cblxudmFyIGJ1aWxkR3JvdXAkMSA9IGZ1bmN0aW9uIGJ1aWxkR3JvdXAoZ3JvdXAsIG9wdGlvbnMsIGJhc2VPcHRpb25zKSB7XG4gIGlmICghZ3JvdXApIHtcbiAgICByZXR1cm4gbWFrZVNwYW4kMSgpO1xuICB9XG5cbiAgaWYgKF9odG1sR3JvdXBCdWlsZGVyc1tncm91cC50eXBlXSkge1xuICAgIC8vIENhbGwgdGhlIGdyb3VwQnVpbGRlcnMgZnVuY3Rpb25cbiAgICAvLyAkRmxvd0ZpeE1lXG4gICAgdmFyIGdyb3VwTm9kZSA9IF9odG1sR3JvdXBCdWlsZGVyc1tncm91cC50eXBlXShncm91cCwgb3B0aW9ucyk7IC8vIElmIHRoZSBzaXplIGNoYW5nZWQgYmV0d2VlbiB0aGUgcGFyZW50IGFuZCB0aGUgY3VycmVudCBncm91cCwgYWNjb3VudFxuICAgIC8vIGZvciB0aGF0IHNpemUgZGlmZmVyZW5jZS5cblxuICAgIGlmIChiYXNlT3B0aW9ucyAmJiBvcHRpb25zLnNpemUgIT09IGJhc2VPcHRpb25zLnNpemUpIHtcbiAgICAgIGdyb3VwTm9kZSA9IG1ha2VTcGFuJDEob3B0aW9ucy5zaXppbmdDbGFzc2VzKGJhc2VPcHRpb25zKSwgW2dyb3VwTm9kZV0sIG9wdGlvbnMpO1xuICAgICAgdmFyIG11bHRpcGxpZXIgPSBvcHRpb25zLnNpemVNdWx0aXBsaWVyIC8gYmFzZU9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gICAgICBncm91cE5vZGUuaGVpZ2h0ICo9IG11bHRpcGxpZXI7XG4gICAgICBncm91cE5vZGUuZGVwdGggKj0gbXVsdGlwbGllcjtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JvdXBOb2RlO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiR290IGdyb3VwIG9mIHVua25vd24gdHlwZTogJ1wiICsgZ3JvdXAudHlwZSArIFwiJ1wiKTtcbiAgfVxufTtcbi8qKlxuICogQ29tYmluZSBhbiBhcnJheSBvZiBIVE1MIERPTSBub2RlcyAoZS5nLiwgdGhlIG91dHB1dCBvZiBgYnVpbGRFeHByZXNzaW9uYClcbiAqIGludG8gYW4gdW5icmVha2FibGUgSFRNTCBub2RlIG9mIGNsYXNzIC5iYXNlLCB3aXRoIHByb3BlciBzdHJ1dHMgdG9cbiAqIGd1YXJhbnRlZSBjb3JyZWN0IHZlcnRpY2FsIGV4dGVudC4gIGBidWlsZEhUTUxgIGNhbGxzIHRoaXMgcmVwZWF0ZWRseSB0b1xuICogbWFrZSB1cCB0aGUgZW50aXJlIGV4cHJlc3Npb24gYXMgYSBzZXF1ZW5jZSBvZiB1bmJyZWFrYWJsZSB1bml0cy5cbiAqL1xuXG5mdW5jdGlvbiBidWlsZEhUTUxVbmJyZWFrYWJsZShjaGlsZHJlbiwgb3B0aW9ucykge1xuICAvLyBDb21wdXRlIGhlaWdodCBhbmQgZGVwdGggb2YgdGhpcyBjaHVuay5cbiAgdmFyIGJvZHkgPSBtYWtlU3BhbiQxKFtcImJhc2VcIl0sIGNoaWxkcmVuLCBvcHRpb25zKTsgLy8gQWRkIHN0cnV0LCB3aGljaCBlbnN1cmVzIHRoYXQgdGhlIHRvcCBvZiB0aGUgSFRNTCBlbGVtZW50IGZhbGxzIGF0XG4gIC8vIHRoZSBoZWlnaHQgb2YgdGhlIGV4cHJlc3Npb24sIGFuZCB0aGUgYm90dG9tIG9mIHRoZSBIVE1MIGVsZW1lbnRcbiAgLy8gZmFsbHMgYXQgdGhlIGRlcHRoIG9mIHRoZSBleHByZXNzaW9uLlxuXG4gIHZhciBzdHJ1dCA9IG1ha2VTcGFuJDEoW1wic3RydXRcIl0pO1xuICBzdHJ1dC5zdHlsZS5oZWlnaHQgPSBtYWtlRW0oYm9keS5oZWlnaHQgKyBib2R5LmRlcHRoKTtcblxuICBpZiAoYm9keS5kZXB0aCkge1xuICAgIHN0cnV0LnN0eWxlLnZlcnRpY2FsQWxpZ24gPSBtYWtlRW0oLWJvZHkuZGVwdGgpO1xuICB9XG5cbiAgYm9keS5jaGlsZHJlbi51bnNoaWZ0KHN0cnV0KTtcbiAgcmV0dXJuIGJvZHk7XG59XG4vKipcbiAqIFRha2UgYW4gZW50aXJlIHBhcnNlIHRyZWUsIGFuZCBidWlsZCBpdCBpbnRvIGFuIGFwcHJvcHJpYXRlIHNldCBvZiBIVE1MXG4gKiBub2Rlcy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGJ1aWxkSFRNTCh0cmVlLCBvcHRpb25zKSB7XG4gIC8vIFN0cmlwIG9mZiBvdXRlciB0YWcgd3JhcHBlciBmb3IgcHJvY2Vzc2luZyBiZWxvdy5cbiAgdmFyIHRhZyA9IG51bGw7XG5cbiAgaWYgKHRyZWUubGVuZ3RoID09PSAxICYmIHRyZWVbMF0udHlwZSA9PT0gXCJ0YWdcIikge1xuICAgIHRhZyA9IHRyZWVbMF0udGFnO1xuICAgIHRyZWUgPSB0cmVlWzBdLmJvZHk7XG4gIH0gLy8gQnVpbGQgdGhlIGV4cHJlc3Npb24gY29udGFpbmVkIGluIHRoZSB0cmVlXG5cblxuICB2YXIgZXhwcmVzc2lvbiA9IGJ1aWxkRXhwcmVzc2lvbiQxKHRyZWUsIG9wdGlvbnMsIFwicm9vdFwiKTtcbiAgdmFyIGVxbk51bTtcblxuICBpZiAoZXhwcmVzc2lvbi5sZW5ndGggPT09IDIgJiYgZXhwcmVzc2lvblsxXS5oYXNDbGFzcyhcInRhZ1wiKSkge1xuICAgIC8vIEFuIGVudmlyb25tZW50IHdpdGggYXV0b21hdGljIGVxdWF0aW9uIG51bWJlcnMsIGUuZy4ge2dhdGhlcn0uXG4gICAgZXFuTnVtID0gZXhwcmVzc2lvbi5wb3AoKTtcbiAgfVxuXG4gIHZhciBjaGlsZHJlbiA9IFtdOyAvLyBDcmVhdGUgb25lIGJhc2Ugbm9kZSBmb3IgZWFjaCBjaHVuayBiZXR3ZWVuIHBvdGVudGlhbCBsaW5lIGJyZWFrcy5cbiAgLy8gVGhlIFRlWEJvb2sgW3AuMTczXSBzYXlzIFwiQSBmb3JtdWxhIHdpbGwgYmUgYnJva2VuIG9ubHkgYWZ0ZXIgYVxuICAvLyByZWxhdGlvbiBzeW1ib2wgbGlrZSAkPSQgb3IgJDwkIG9yICRcXHJpZ2h0YXJyb3ckLCBvciBhZnRlciBhIGJpbmFyeVxuICAvLyBvcGVyYXRpb24gc3ltYm9sIGxpa2UgJCskIG9yICQtJCBvciAkXFx0aW1lcyQsIHdoZXJlIHRoZSByZWxhdGlvbiBvclxuICAvLyBiaW5hcnkgb3BlcmF0aW9uIGlzIG9uIHRoZSBgYG91dGVyIGxldmVsJycgb2YgdGhlIGZvcm11bGEgKGkuZS4sIG5vdFxuICAvLyBlbmNsb3NlZCBpbiB7Li4ufSBhbmQgbm90IHBhcnQgb2YgYW4gXFxvdmVyIGNvbnN0cnVjdGlvbikuXCJcblxuICB2YXIgcGFydHMgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cHJlc3Npb24ubGVuZ3RoOyBpKyspIHtcbiAgICBwYXJ0cy5wdXNoKGV4cHJlc3Npb25baV0pO1xuXG4gICAgaWYgKGV4cHJlc3Npb25baV0uaGFzQ2xhc3MoXCJtYmluXCIpIHx8IGV4cHJlc3Npb25baV0uaGFzQ2xhc3MoXCJtcmVsXCIpIHx8IGV4cHJlc3Npb25baV0uaGFzQ2xhc3MoXCJhbGxvd2JyZWFrXCIpKSB7XG4gICAgICAvLyBQdXQgYW55IHBvc3Qtb3BlcmF0b3IgZ2x1ZSBvbiBzYW1lIGxpbmUgYXMgb3BlcmF0b3IuXG4gICAgICAvLyBXYXRjaCBmb3IgXFxub2JyZWFrIGFsb25nIHRoZSB3YXksIGFuZCBzdG9wIGF0IFxcbmV3bGluZS5cbiAgICAgIHZhciBub2JyZWFrID0gZmFsc2U7XG5cbiAgICAgIHdoaWxlIChpIDwgZXhwcmVzc2lvbi5sZW5ndGggLSAxICYmIGV4cHJlc3Npb25baSArIDFdLmhhc0NsYXNzKFwibXNwYWNlXCIpICYmICFleHByZXNzaW9uW2kgKyAxXS5oYXNDbGFzcyhcIm5ld2xpbmVcIikpIHtcbiAgICAgICAgaSsrO1xuICAgICAgICBwYXJ0cy5wdXNoKGV4cHJlc3Npb25baV0pO1xuXG4gICAgICAgIGlmIChleHByZXNzaW9uW2ldLmhhc0NsYXNzKFwibm9icmVha1wiKSkge1xuICAgICAgICAgIG5vYnJlYWsgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IC8vIERvbid0IGFsbG93IGJyZWFrIGlmIFxcbm9icmVhayBhbW9uZyB0aGUgcG9zdC1vcGVyYXRvciBnbHVlLlxuXG5cbiAgICAgIGlmICghbm9icmVhaykge1xuICAgICAgICBjaGlsZHJlbi5wdXNoKGJ1aWxkSFRNTFVuYnJlYWthYmxlKHBhcnRzLCBvcHRpb25zKSk7XG4gICAgICAgIHBhcnRzID0gW107XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChleHByZXNzaW9uW2ldLmhhc0NsYXNzKFwibmV3bGluZVwiKSkge1xuICAgICAgLy8gV3JpdGUgdGhlIGxpbmUgZXhjZXB0IHRoZSBuZXdsaW5lXG4gICAgICBwYXJ0cy5wb3AoKTtcblxuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY2hpbGRyZW4ucHVzaChidWlsZEhUTUxVbmJyZWFrYWJsZShwYXJ0cywgb3B0aW9ucykpO1xuICAgICAgICBwYXJ0cyA9IFtdO1xuICAgICAgfSAvLyBQdXQgdGhlIG5ld2xpbmUgYXQgdGhlIHRvcCBsZXZlbFxuXG5cbiAgICAgIGNoaWxkcmVuLnB1c2goZXhwcmVzc2lvbltpXSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhcnRzLmxlbmd0aCA+IDApIHtcbiAgICBjaGlsZHJlbi5wdXNoKGJ1aWxkSFRNTFVuYnJlYWthYmxlKHBhcnRzLCBvcHRpb25zKSk7XG4gIH0gLy8gTm93LCBpZiB0aGVyZSB3YXMgYSB0YWcsIGJ1aWxkIGl0IHRvbyBhbmQgYXBwZW5kIGl0IGFzIGEgZmluYWwgY2hpbGQuXG5cblxuICB2YXIgdGFnQ2hpbGQ7XG5cbiAgaWYgKHRhZykge1xuICAgIHRhZ0NoaWxkID0gYnVpbGRIVE1MVW5icmVha2FibGUoYnVpbGRFeHByZXNzaW9uJDEodGFnLCBvcHRpb25zLCB0cnVlKSk7XG4gICAgdGFnQ2hpbGQuY2xhc3NlcyA9IFtcInRhZ1wiXTtcbiAgICBjaGlsZHJlbi5wdXNoKHRhZ0NoaWxkKTtcbiAgfSBlbHNlIGlmIChlcW5OdW0pIHtcbiAgICBjaGlsZHJlbi5wdXNoKGVxbk51bSk7XG4gIH1cblxuICB2YXIgaHRtbE5vZGUgPSBtYWtlU3BhbiQxKFtcImthdGV4LWh0bWxcIl0sIGNoaWxkcmVuKTtcbiAgaHRtbE5vZGUuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwgXCJ0cnVlXCIpOyAvLyBBZGp1c3QgdGhlIHN0cnV0IG9mIHRoZSB0YWcgdG8gYmUgdGhlIG1heGltdW0gaGVpZ2h0IG9mIGFsbCBjaGlsZHJlblxuICAvLyAodGhlIGhlaWdodCBvZiB0aGUgZW5jbG9zaW5nIGh0bWxOb2RlKSBmb3IgcHJvcGVyIHZlcnRpY2FsIGFsaWdubWVudC5cblxuICBpZiAodGFnQ2hpbGQpIHtcbiAgICB2YXIgc3RydXQgPSB0YWdDaGlsZC5jaGlsZHJlblswXTtcbiAgICBzdHJ1dC5zdHlsZS5oZWlnaHQgPSBtYWtlRW0oaHRtbE5vZGUuaGVpZ2h0ICsgaHRtbE5vZGUuZGVwdGgpO1xuXG4gICAgaWYgKGh0bWxOb2RlLmRlcHRoKSB7XG4gICAgICBzdHJ1dC5zdHlsZS52ZXJ0aWNhbEFsaWduID0gbWFrZUVtKC1odG1sTm9kZS5kZXB0aCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGh0bWxOb2RlO1xufVxuXG4vKipcbiAqIFRoZXNlIG9iamVjdHMgc3RvcmUgZGF0YSBhYm91dCBNYXRoTUwgbm9kZXMuIFRoaXMgaXMgdGhlIE1hdGhNTCBlcXVpdmFsZW50XG4gKiBvZiB0aGUgdHlwZXMgaW4gZG9tVHJlZS5qcy4gU2luY2UgTWF0aE1MIGhhbmRsZXMgaXRzIG93biByZW5kZXJpbmcsIGFuZFxuICogc2luY2Ugd2UncmUgbWFpbmx5IHVzaW5nIE1hdGhNTCB0byBpbXByb3ZlIGFjY2Vzc2liaWxpdHksIHdlIGRvbid0IG1hbmFnZVxuICogYW55IG9mIHRoZSBzdHlsaW5nIHN0YXRlIHRoYXQgdGhlIHBsYWluIERPTSBub2RlcyBkby5cbiAqXG4gKiBUaGUgYHRvTm9kZWAgYW5kIGB0b01hcmt1cGAgZnVuY3Rpb25zIHdvcmsgc2ltaWxhcmx5IHRvIGhvdyB0aGV5IGRvIGluXG4gKiBkb21UcmVlLmpzLCBjcmVhdGluZyBuYW1lc3BhY2VkIERPTSBub2RlcyBhbmQgSFRNTCB0ZXh0IG1hcmt1cCByZXNwZWN0aXZlbHkuXG4gKi9cbmZ1bmN0aW9uIG5ld0RvY3VtZW50RnJhZ21lbnQoY2hpbGRyZW4pIHtcbiAgcmV0dXJuIG5ldyBEb2N1bWVudEZyYWdtZW50KGNoaWxkcmVuKTtcbn1cbi8qKlxuICogVGhpcyBub2RlIHJlcHJlc2VudHMgYSBnZW5lcmFsIHB1cnBvc2UgTWF0aE1MIG5vZGUgb2YgYW55IHR5cGUuIFRoZVxuICogY29uc3RydWN0b3IgcmVxdWlyZXMgdGhlIHR5cGUgb2Ygbm9kZSB0byBjcmVhdGUgKGZvciBleGFtcGxlLCBgXCJtb1wiYCBvclxuICogYFwibXNwYWNlXCJgLCBjb3JyZXNwb25kaW5nIHRvIGA8bW8+YCBhbmQgYDxtc3BhY2U+YCB0YWdzKS5cbiAqL1xuXG5jbGFzcyBNYXRoTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHR5cGUsIGNoaWxkcmVuLCBjbGFzc2VzKSB7XG4gICAgdGhpcy50eXBlID0gdm9pZCAwO1xuICAgIHRoaXMuYXR0cmlidXRlcyA9IHZvaWQgMDtcbiAgICB0aGlzLmNoaWxkcmVuID0gdm9pZCAwO1xuICAgIHRoaXMuY2xhc3NlcyA9IHZvaWQgMDtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuYXR0cmlidXRlcyA9IHt9O1xuICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbiB8fCBbXTtcbiAgICB0aGlzLmNsYXNzZXMgPSBjbGFzc2VzIHx8IFtdO1xuICB9XG4gIC8qKlxuICAgKiBTZXRzIGFuIGF0dHJpYnV0ZSBvbiBhIE1hdGhNTCBub2RlLiBNYXRoTUwgZGVwZW5kcyBvbiBhdHRyaWJ1dGVzIHRvIGNvbnZleSBhXG4gICAqIHNlbWFudGljIGNvbnRlbnQsIHNvIHRoaXMgaXMgdXNlZCBoZWF2aWx5LlxuICAgKi9cblxuXG4gIHNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICB9XG4gIC8qKlxuICAgKiBHZXRzIGFuIGF0dHJpYnV0ZSBvbiBhIE1hdGhNTCBub2RlLlxuICAgKi9cblxuXG4gIGdldEF0dHJpYnV0ZShuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlc1tuYW1lXTtcbiAgfVxuICAvKipcbiAgICogQ29udmVydHMgdGhlIG1hdGggbm9kZSBpbnRvIGEgTWF0aE1MLW5hbWVzcGFjZWQgRE9NIGVsZW1lbnQuXG4gICAqL1xuXG5cbiAgdG9Ob2RlKCkge1xuICAgIHZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLCB0aGlzLnR5cGUpO1xuXG4gICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLCBhdHRyKSkge1xuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShhdHRyLCB0aGlzLmF0dHJpYnV0ZXNbYXR0cl0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNsYXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgbm9kZS5jbGFzc05hbWUgPSBjcmVhdGVDbGFzcyh0aGlzLmNsYXNzZXMpO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgbm9kZS5hcHBlbmRDaGlsZCh0aGlzLmNoaWxkcmVuW2ldLnRvTm9kZSgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuICAvKipcbiAgICogQ29udmVydHMgdGhlIG1hdGggbm9kZSBpbnRvIGFuIEhUTUwgbWFya3VwIHN0cmluZy5cbiAgICovXG5cblxuICB0b01hcmt1cCgpIHtcbiAgICB2YXIgbWFya3VwID0gXCI8XCIgKyB0aGlzLnR5cGU7IC8vIEFkZCB0aGUgYXR0cmlidXRlc1xuXG4gICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLCBhdHRyKSkge1xuICAgICAgICBtYXJrdXAgKz0gXCIgXCIgKyBhdHRyICsgXCI9XFxcIlwiO1xuICAgICAgICBtYXJrdXAgKz0gdXRpbHMuZXNjYXBlKHRoaXMuYXR0cmlidXRlc1thdHRyXSk7XG4gICAgICAgIG1hcmt1cCArPSBcIlxcXCJcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbGFzc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIG1hcmt1cCArPSBcIiBjbGFzcyA9XFxcIlwiICsgdXRpbHMuZXNjYXBlKGNyZWF0ZUNsYXNzKHRoaXMuY2xhc3NlcykpICsgXCJcXFwiXCI7XG4gICAgfVxuXG4gICAgbWFya3VwICs9IFwiPlwiO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICBtYXJrdXAgKz0gdGhpcy5jaGlsZHJlbltpXS50b01hcmt1cCgpO1xuICAgIH1cblxuICAgIG1hcmt1cCArPSBcIjwvXCIgKyB0aGlzLnR5cGUgKyBcIj5cIjtcbiAgICByZXR1cm4gbWFya3VwO1xuICB9XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgbWF0aCBub2RlIGludG8gYSBzdHJpbmcsIHNpbWlsYXIgdG8gaW5uZXJUZXh0LCBidXQgZXNjYXBlZC5cbiAgICovXG5cblxuICB0b1RleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubWFwKGNoaWxkID0+IGNoaWxkLnRvVGV4dCgpKS5qb2luKFwiXCIpO1xuICB9XG5cbn1cbi8qKlxuICogVGhpcyBub2RlIHJlcHJlc2VudHMgYSBwaWVjZSBvZiB0ZXh0LlxuICovXG5cbmNsYXNzIFRleHROb2RlIHtcbiAgY29uc3RydWN0b3IodGV4dCkge1xuICAgIHRoaXMudGV4dCA9IHZvaWQgMDtcbiAgICB0aGlzLnRleHQgPSB0ZXh0O1xuICB9XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgdGV4dCBub2RlIGludG8gYSBET00gdGV4dCBub2RlLlxuICAgKi9cblxuXG4gIHRvTm9kZSgpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy50ZXh0KTtcbiAgfVxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHRleHQgbm9kZSBpbnRvIGVzY2FwZWQgSFRNTCBtYXJrdXBcbiAgICogKHJlcHJlc2VudGluZyB0aGUgdGV4dCBpdHNlbGYpLlxuICAgKi9cblxuXG4gIHRvTWFya3VwKCkge1xuICAgIHJldHVybiB1dGlscy5lc2NhcGUodGhpcy50b1RleHQoKSk7XG4gIH1cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSB0ZXh0IG5vZGUgaW50byBhIHN0cmluZ1xuICAgKiAocmVwcmVzZW50aW5nIHRoZSB0ZXh0IGl0c2VsZikuXG4gICAqL1xuXG5cbiAgdG9UZXh0KCkge1xuICAgIHJldHVybiB0aGlzLnRleHQ7XG4gIH1cblxufVxuLyoqXG4gKiBUaGlzIG5vZGUgcmVwcmVzZW50cyBhIHNwYWNlLCBidXQgbWF5IHJlbmRlciBhcyA8bXNwYWNlLi4uLz4gb3IgYXMgdGV4dCxcbiAqIGRlcGVuZGluZyBvbiB0aGUgd2lkdGguXG4gKi9cblxuY2xhc3MgU3BhY2VOb2RlIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIFNwYWNlIG5vZGUgd2l0aCB3aWR0aCBnaXZlbiBpbiBDU1MgZW1zLlxuICAgKi9cbiAgY29uc3RydWN0b3Iod2lkdGgpIHtcbiAgICB0aGlzLndpZHRoID0gdm9pZCAwO1xuICAgIHRoaXMuY2hhcmFjdGVyID0gdm9pZCAwO1xuICAgIHRoaXMud2lkdGggPSB3aWR0aDsgLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi8yMDAwL1dELU1hdGhNTDItMjAwMDAzMjgvY2hhcHRlcjYuaHRtbFxuICAgIC8vIGZvciBhIHRhYmxlIG9mIHNwYWNlLWxpa2UgY2hhcmFjdGVycy4gIFdlIHVzZSBVbmljb2RlXG4gICAgLy8gcmVwcmVzZW50YXRpb25zIGluc3RlYWQgb2YgJkxvbmdOYW1lczsgYXMgaXQncyBub3QgY2xlYXIgaG93IHRvXG4gICAgLy8gbWFrZSB0aGUgbGF0dGVyIHZpYSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZS5cblxuICAgIGlmICh3aWR0aCA+PSAwLjA1NTU1ICYmIHdpZHRoIDw9IDAuMDU1NTYpIHtcbiAgICAgIHRoaXMuY2hhcmFjdGVyID0gXCJcXHUyMDBhXCI7IC8vICZWZXJ5VGhpblNwYWNlO1xuICAgIH0gZWxzZSBpZiAod2lkdGggPj0gMC4xNjY2ICYmIHdpZHRoIDw9IDAuMTY2Nykge1xuICAgICAgdGhpcy5jaGFyYWN0ZXIgPSBcIlxcdTIwMDlcIjsgLy8gJlRoaW5TcGFjZTtcbiAgICB9IGVsc2UgaWYgKHdpZHRoID49IDAuMjIyMiAmJiB3aWR0aCA8PSAwLjIyMjMpIHtcbiAgICAgIHRoaXMuY2hhcmFjdGVyID0gXCJcXHUyMDA1XCI7IC8vICZNZWRpdW1TcGFjZTtcbiAgICB9IGVsc2UgaWYgKHdpZHRoID49IDAuMjc3NyAmJiB3aWR0aCA8PSAwLjI3NzgpIHtcbiAgICAgIHRoaXMuY2hhcmFjdGVyID0gXCJcXHUyMDA1XFx1MjAwYVwiOyAvLyAmVGhpY2tTcGFjZTtcbiAgICB9IGVsc2UgaWYgKHdpZHRoID49IC0wLjA1NTU2ICYmIHdpZHRoIDw9IC0wLjA1NTU1KSB7XG4gICAgICB0aGlzLmNoYXJhY3RlciA9IFwiXFx1MjAwYVxcdTIwNjNcIjsgLy8gJk5lZ2F0aXZlVmVyeVRoaW5TcGFjZTtcbiAgICB9IGVsc2UgaWYgKHdpZHRoID49IC0wLjE2NjcgJiYgd2lkdGggPD0gLTAuMTY2Nikge1xuICAgICAgdGhpcy5jaGFyYWN0ZXIgPSBcIlxcdTIwMDlcXHUyMDYzXCI7IC8vICZOZWdhdGl2ZVRoaW5TcGFjZTtcbiAgICB9IGVsc2UgaWYgKHdpZHRoID49IC0wLjIyMjMgJiYgd2lkdGggPD0gLTAuMjIyMikge1xuICAgICAgdGhpcy5jaGFyYWN0ZXIgPSBcIlxcdTIwNWZcXHUyMDYzXCI7IC8vICZOZWdhdGl2ZU1lZGl1bVNwYWNlO1xuICAgIH0gZWxzZSBpZiAod2lkdGggPj0gLTAuMjc3OCAmJiB3aWR0aCA8PSAtMC4yNzc3KSB7XG4gICAgICB0aGlzLmNoYXJhY3RlciA9IFwiXFx1MjAwNVxcdTIwNjNcIjsgLy8gJk5lZ2F0aXZlVGhpY2tTcGFjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jaGFyYWN0ZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQ29udmVydHMgdGhlIG1hdGggbm9kZSBpbnRvIGEgTWF0aE1MLW5hbWVzcGFjZWQgRE9NIGVsZW1lbnQuXG4gICAqL1xuXG5cbiAgdG9Ob2RlKCkge1xuICAgIGlmICh0aGlzLmNoYXJhY3Rlcikge1xuICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMuY2hhcmFjdGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCIsIFwibXNwYWNlXCIpO1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLCBtYWtlRW0odGhpcy53aWR0aCkpO1xuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgbWF0aCBub2RlIGludG8gYW4gSFRNTCBtYXJrdXAgc3RyaW5nLlxuICAgKi9cblxuXG4gIHRvTWFya3VwKCkge1xuICAgIGlmICh0aGlzLmNoYXJhY3Rlcikge1xuICAgICAgcmV0dXJuIFwiPG10ZXh0PlwiICsgdGhpcy5jaGFyYWN0ZXIgKyBcIjwvbXRleHQ+XCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIjxtc3BhY2Ugd2lkdGg9XFxcIlwiICsgbWFrZUVtKHRoaXMud2lkdGgpICsgXCJcXFwiLz5cIjtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBtYXRoIG5vZGUgaW50byBhIHN0cmluZywgc2ltaWxhciB0byBpbm5lclRleHQuXG4gICAqL1xuXG5cbiAgdG9UZXh0KCkge1xuICAgIGlmICh0aGlzLmNoYXJhY3Rlcikge1xuICAgICAgcmV0dXJuIHRoaXMuY2hhcmFjdGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCIgXCI7XG4gICAgfVxuICB9XG5cbn1cblxudmFyIG1hdGhNTFRyZWUgPSB7XG4gIE1hdGhOb2RlLFxuICBUZXh0Tm9kZSxcbiAgU3BhY2VOb2RlLFxuICBuZXdEb2N1bWVudEZyYWdtZW50XG59O1xuXG4vKipcbiAqIFRoaXMgZmlsZSBjb252ZXJ0cyBhIHBhcnNlIHRyZWUgaW50byBhIGNvcnJlc3BvbmRpbmcgTWF0aE1MIHRyZWUuIFRoZSBtYWluXG4gKiBlbnRyeSBwb2ludCBpcyB0aGUgYGJ1aWxkTWF0aE1MYCBmdW5jdGlvbiwgd2hpY2ggdGFrZXMgYSBwYXJzZSB0cmVlIGZyb20gdGhlXG4gKiBwYXJzZXIuXG4gKi9cblxuLyoqXG4gKiBUYWtlcyBhIHN5bWJvbCBhbmQgY29udmVydHMgaXQgaW50byBhIE1hdGhNTCB0ZXh0IG5vZGUgYWZ0ZXIgcGVyZm9ybWluZ1xuICogb3B0aW9uYWwgcmVwbGFjZW1lbnQgZnJvbSBzeW1ib2xzLmpzLlxuICovXG52YXIgbWFrZVRleHQgPSBmdW5jdGlvbiBtYWtlVGV4dCh0ZXh0LCBtb2RlLCBvcHRpb25zKSB7XG4gIGlmIChzeW1ib2xzW21vZGVdW3RleHRdICYmIHN5bWJvbHNbbW9kZV1bdGV4dF0ucmVwbGFjZSAmJiB0ZXh0LmNoYXJDb2RlQXQoMCkgIT09IDB4RDgzNSAmJiAhKGxpZ2F0dXJlcy5oYXNPd25Qcm9wZXJ0eSh0ZXh0KSAmJiBvcHRpb25zICYmIChvcHRpb25zLmZvbnRGYW1pbHkgJiYgb3B0aW9ucy5mb250RmFtaWx5LnNsaWNlKDQsIDYpID09PSBcInR0XCIgfHwgb3B0aW9ucy5mb250ICYmIG9wdGlvbnMuZm9udC5zbGljZSg0LCA2KSA9PT0gXCJ0dFwiKSkpIHtcbiAgICB0ZXh0ID0gc3ltYm9sc1ttb2RlXVt0ZXh0XS5yZXBsYWNlO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBtYXRoTUxUcmVlLlRleHROb2RlKHRleHQpO1xufTtcbi8qKlxuICogV3JhcCB0aGUgZ2l2ZW4gYXJyYXkgb2Ygbm9kZXMgaW4gYW4gPG1yb3c+IG5vZGUgaWYgbmVlZGVkLCBpLmUuLFxuICogdW5sZXNzIHRoZSBhcnJheSBoYXMgbGVuZ3RoIDEuICBBbHdheXMgcmV0dXJucyBhIHNpbmdsZSBub2RlLlxuICovXG5cbnZhciBtYWtlUm93ID0gZnVuY3Rpb24gbWFrZVJvdyhib2R5KSB7XG4gIGlmIChib2R5Lmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBib2R5WzBdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1yb3dcIiwgYm9keSk7XG4gIH1cbn07XG4vKipcbiAqIFJldHVybnMgdGhlIG1hdGggdmFyaWFudCBhcyBhIHN0cmluZyBvciBudWxsIGlmIG5vbmUgaXMgcmVxdWlyZWQuXG4gKi9cblxudmFyIGdldFZhcmlhbnQgPSBmdW5jdGlvbiBnZXRWYXJpYW50KGdyb3VwLCBvcHRpb25zKSB7XG4gIC8vIEhhbmRsZSBcXHRleHQuLi4gZm9udCBzcGVjaWZpZXJzIGFzIGJlc3Qgd2UgY2FuLlxuICAvLyBNYXRoTUwgaGFzIGEgbGltaXRlZCBsaXN0IG9mIGFsbG93YWJsZSBtYXRodmFyaWFudCBzcGVjaWZpZXJzOyBzZWVcbiAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL01hdGhNTDMvY2hhcHRlcjMuaHRtbCNwcmVzbS5jb21tYXR0XG4gIGlmIChvcHRpb25zLmZvbnRGYW1pbHkgPT09IFwidGV4dHR0XCIpIHtcbiAgICByZXR1cm4gXCJtb25vc3BhY2VcIjtcbiAgfSBlbHNlIGlmIChvcHRpb25zLmZvbnRGYW1pbHkgPT09IFwidGV4dHNmXCIpIHtcbiAgICBpZiAob3B0aW9ucy5mb250U2hhcGUgPT09IFwidGV4dGl0XCIgJiYgb3B0aW9ucy5mb250V2VpZ2h0ID09PSBcInRleHRiZlwiKSB7XG4gICAgICByZXR1cm4gXCJzYW5zLXNlcmlmLWJvbGQtaXRhbGljXCI7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmZvbnRTaGFwZSA9PT0gXCJ0ZXh0aXRcIikge1xuICAgICAgcmV0dXJuIFwic2Fucy1zZXJpZi1pdGFsaWNcIjtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZm9udFdlaWdodCA9PT0gXCJ0ZXh0YmZcIikge1xuICAgICAgcmV0dXJuIFwiYm9sZC1zYW5zLXNlcmlmXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcInNhbnMtc2VyaWZcIjtcbiAgICB9XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5mb250U2hhcGUgPT09IFwidGV4dGl0XCIgJiYgb3B0aW9ucy5mb250V2VpZ2h0ID09PSBcInRleHRiZlwiKSB7XG4gICAgcmV0dXJuIFwiYm9sZC1pdGFsaWNcIjtcbiAgfSBlbHNlIGlmIChvcHRpb25zLmZvbnRTaGFwZSA9PT0gXCJ0ZXh0aXRcIikge1xuICAgIHJldHVybiBcIml0YWxpY1wiO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMuZm9udFdlaWdodCA9PT0gXCJ0ZXh0YmZcIikge1xuICAgIHJldHVybiBcImJvbGRcIjtcbiAgfVxuXG4gIHZhciBmb250ID0gb3B0aW9ucy5mb250O1xuXG4gIGlmICghZm9udCB8fCBmb250ID09PSBcIm1hdGhub3JtYWxcIikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIG1vZGUgPSBncm91cC5tb2RlO1xuXG4gIGlmIChmb250ID09PSBcIm1hdGhpdFwiKSB7XG4gICAgcmV0dXJuIFwiaXRhbGljXCI7XG4gIH0gZWxzZSBpZiAoZm9udCA9PT0gXCJib2xkc3ltYm9sXCIpIHtcbiAgICByZXR1cm4gZ3JvdXAudHlwZSA9PT0gXCJ0ZXh0b3JkXCIgPyBcImJvbGRcIiA6IFwiYm9sZC1pdGFsaWNcIjtcbiAgfSBlbHNlIGlmIChmb250ID09PSBcIm1hdGhiZlwiKSB7XG4gICAgcmV0dXJuIFwiYm9sZFwiO1xuICB9IGVsc2UgaWYgKGZvbnQgPT09IFwibWF0aGJiXCIpIHtcbiAgICByZXR1cm4gXCJkb3VibGUtc3RydWNrXCI7XG4gIH0gZWxzZSBpZiAoZm9udCA9PT0gXCJtYXRoZnJha1wiKSB7XG4gICAgcmV0dXJuIFwiZnJha3R1clwiO1xuICB9IGVsc2UgaWYgKGZvbnQgPT09IFwibWF0aHNjclwiIHx8IGZvbnQgPT09IFwibWF0aGNhbFwiKSB7XG4gICAgLy8gTWF0aE1MIG1ha2VzIG5vIGRpc3RpbmN0aW9uIGJldHdlZW4gc2NyaXB0IGFuZCBjYWxsaWdyYXBoaWNcbiAgICByZXR1cm4gXCJzY3JpcHRcIjtcbiAgfSBlbHNlIGlmIChmb250ID09PSBcIm1hdGhzZlwiKSB7XG4gICAgcmV0dXJuIFwic2Fucy1zZXJpZlwiO1xuICB9IGVsc2UgaWYgKGZvbnQgPT09IFwibWF0aHR0XCIpIHtcbiAgICByZXR1cm4gXCJtb25vc3BhY2VcIjtcbiAgfVxuXG4gIHZhciB0ZXh0ID0gZ3JvdXAudGV4dDtcblxuICBpZiAodXRpbHMuY29udGFpbnMoW1wiXFxcXGltYXRoXCIsIFwiXFxcXGptYXRoXCJdLCB0ZXh0KSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHN5bWJvbHNbbW9kZV1bdGV4dF0gJiYgc3ltYm9sc1ttb2RlXVt0ZXh0XS5yZXBsYWNlKSB7XG4gICAgdGV4dCA9IHN5bWJvbHNbbW9kZV1bdGV4dF0ucmVwbGFjZTtcbiAgfVxuXG4gIHZhciBmb250TmFtZSA9IGJ1aWxkQ29tbW9uLmZvbnRNYXBbZm9udF0uZm9udE5hbWU7XG5cbiAgaWYgKGdldENoYXJhY3Rlck1ldHJpY3ModGV4dCwgZm9udE5hbWUsIG1vZGUpKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLmZvbnRNYXBbZm9udF0udmFyaWFudDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcbi8qKlxuICogVGFrZXMgYSBsaXN0IG9mIG5vZGVzLCBidWlsZHMgdGhlbSwgYW5kIHJldHVybnMgYSBsaXN0IG9mIHRoZSBnZW5lcmF0ZWRcbiAqIE1hdGhNTCBub2Rlcy4gIEFsc28gY29tYmluZSBjb25zZWN1dGl2ZSA8bXRleHQ+IG91dHB1dHMgaW50byBhIHNpbmdsZVxuICogPG10ZXh0PiB0YWcuXG4gKi9cblxudmFyIGJ1aWxkRXhwcmVzc2lvbiA9IGZ1bmN0aW9uIGJ1aWxkRXhwcmVzc2lvbihleHByZXNzaW9uLCBvcHRpb25zLCBpc09yZGdyb3VwKSB7XG4gIGlmIChleHByZXNzaW9uLmxlbmd0aCA9PT0gMSkge1xuICAgIHZhciBncm91cCA9IGJ1aWxkR3JvdXAoZXhwcmVzc2lvblswXSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoaXNPcmRncm91cCAmJiBncm91cCBpbnN0YW5jZW9mIE1hdGhOb2RlICYmIGdyb3VwLnR5cGUgPT09IFwibW9cIikge1xuICAgICAgLy8gV2hlbiBUZVggd3JpdGVycyB3YW50IHRvIHN1cHByZXNzIHNwYWNpbmcgb24gYW4gb3BlcmF0b3IsXG4gICAgICAvLyB0aGV5IG9mdGVuIHB1dCB0aGUgb3BlcmF0b3IgYnkgaXRzZWxmIGluc2lkZSBicmFjZXMuXG4gICAgICBncm91cC5zZXRBdHRyaWJ1dGUoXCJsc3BhY2VcIiwgXCIwZW1cIik7XG4gICAgICBncm91cC5zZXRBdHRyaWJ1dGUoXCJyc3BhY2VcIiwgXCIwZW1cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtncm91cF07XG4gIH1cblxuICB2YXIgZ3JvdXBzID0gW107XG4gIHZhciBsYXN0R3JvdXA7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHByZXNzaW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIF9ncm91cCA9IGJ1aWxkR3JvdXAoZXhwcmVzc2lvbltpXSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoX2dyb3VwIGluc3RhbmNlb2YgTWF0aE5vZGUgJiYgbGFzdEdyb3VwIGluc3RhbmNlb2YgTWF0aE5vZGUpIHtcbiAgICAgIC8vIENvbmNhdGVuYXRlIGFkamFjZW50IDxtdGV4dD5zXG4gICAgICBpZiAoX2dyb3VwLnR5cGUgPT09ICdtdGV4dCcgJiYgbGFzdEdyb3VwLnR5cGUgPT09ICdtdGV4dCcgJiYgX2dyb3VwLmdldEF0dHJpYnV0ZSgnbWF0aHZhcmlhbnQnKSA9PT0gbGFzdEdyb3VwLmdldEF0dHJpYnV0ZSgnbWF0aHZhcmlhbnQnKSkge1xuICAgICAgICBsYXN0R3JvdXAuY2hpbGRyZW4ucHVzaCguLi5fZ3JvdXAuY2hpbGRyZW4pO1xuICAgICAgICBjb250aW51ZTsgLy8gQ29uY2F0ZW5hdGUgYWRqYWNlbnQgPG1uPnNcbiAgICAgIH0gZWxzZSBpZiAoX2dyb3VwLnR5cGUgPT09ICdtbicgJiYgbGFzdEdyb3VwLnR5cGUgPT09ICdtbicpIHtcbiAgICAgICAgbGFzdEdyb3VwLmNoaWxkcmVuLnB1c2goLi4uX2dyb3VwLmNoaWxkcmVuKTtcbiAgICAgICAgY29udGludWU7IC8vIENvbmNhdGVuYXRlIDxtbj4uLi48L21uPiBmb2xsb3dlZCBieSA8bWk+LjwvbWk+XG4gICAgICB9IGVsc2UgaWYgKF9ncm91cC50eXBlID09PSAnbWknICYmIF9ncm91cC5jaGlsZHJlbi5sZW5ndGggPT09IDEgJiYgbGFzdEdyb3VwLnR5cGUgPT09ICdtbicpIHtcbiAgICAgICAgdmFyIGNoaWxkID0gX2dyb3VwLmNoaWxkcmVuWzBdO1xuXG4gICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIFRleHROb2RlICYmIGNoaWxkLnRleHQgPT09ICcuJykge1xuICAgICAgICAgIGxhc3RHcm91cC5jaGlsZHJlbi5wdXNoKC4uLl9ncm91cC5jaGlsZHJlbik7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobGFzdEdyb3VwLnR5cGUgPT09ICdtaScgJiYgbGFzdEdyb3VwLmNoaWxkcmVuLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICB2YXIgbGFzdENoaWxkID0gbGFzdEdyb3VwLmNoaWxkcmVuWzBdO1xuXG4gICAgICAgIGlmIChsYXN0Q2hpbGQgaW5zdGFuY2VvZiBUZXh0Tm9kZSAmJiBsYXN0Q2hpbGQudGV4dCA9PT0gJ1xcdTAzMzgnICYmIChfZ3JvdXAudHlwZSA9PT0gJ21vJyB8fCBfZ3JvdXAudHlwZSA9PT0gJ21pJyB8fCBfZ3JvdXAudHlwZSA9PT0gJ21uJykpIHtcbiAgICAgICAgICB2YXIgX2NoaWxkID0gX2dyb3VwLmNoaWxkcmVuWzBdO1xuXG4gICAgICAgICAgaWYgKF9jaGlsZCBpbnN0YW5jZW9mIFRleHROb2RlICYmIF9jaGlsZC50ZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIE92ZXJsYXkgd2l0aCBjb21iaW5pbmcgY2hhcmFjdGVyIGxvbmcgc29saWR1c1xuICAgICAgICAgICAgX2NoaWxkLnRleHQgPSBfY2hpbGQudGV4dC5zbGljZSgwLCAxKSArIFwiXFx1MDMzOFwiICsgX2NoaWxkLnRleHQuc2xpY2UoMSk7XG4gICAgICAgICAgICBncm91cHMucG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZ3JvdXBzLnB1c2goX2dyb3VwKTtcbiAgICBsYXN0R3JvdXAgPSBfZ3JvdXA7XG4gIH1cblxuICByZXR1cm4gZ3JvdXBzO1xufTtcbi8qKlxuICogRXF1aXZhbGVudCB0byBidWlsZEV4cHJlc3Npb24sIGJ1dCB3cmFwcyB0aGUgZWxlbWVudHMgaW4gYW4gPG1yb3c+XG4gKiBpZiB0aGVyZSdzIG1vcmUgdGhhbiBvbmUuICBSZXR1cm5zIGEgc2luZ2xlIG5vZGUgaW5zdGVhZCBvZiBhbiBhcnJheS5cbiAqL1xuXG52YXIgYnVpbGRFeHByZXNzaW9uUm93ID0gZnVuY3Rpb24gYnVpbGRFeHByZXNzaW9uUm93KGV4cHJlc3Npb24sIG9wdGlvbnMsIGlzT3JkZ3JvdXApIHtcbiAgcmV0dXJuIG1ha2VSb3coYnVpbGRFeHByZXNzaW9uKGV4cHJlc3Npb24sIG9wdGlvbnMsIGlzT3JkZ3JvdXApKTtcbn07XG4vKipcbiAqIFRha2VzIGEgZ3JvdXAgZnJvbSB0aGUgcGFyc2VyIGFuZCBjYWxscyB0aGUgYXBwcm9wcmlhdGUgZ3JvdXBCdWlsZGVycyBmdW5jdGlvblxuICogb24gaXQgdG8gcHJvZHVjZSBhIE1hdGhNTCBub2RlLlxuICovXG5cbnZhciBidWlsZEdyb3VwID0gZnVuY3Rpb24gYnVpbGRHcm91cChncm91cCwgb3B0aW9ucykge1xuICBpZiAoIWdyb3VwKSB7XG4gICAgcmV0dXJuIG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXJvd1wiKTtcbiAgfVxuXG4gIGlmIChfbWF0aG1sR3JvdXBCdWlsZGVyc1tncm91cC50eXBlXSkge1xuICAgIC8vIENhbGwgdGhlIGdyb3VwQnVpbGRlcnMgZnVuY3Rpb25cbiAgICAvLyAkRmxvd0ZpeE1lXG4gICAgdmFyIHJlc3VsdCA9IF9tYXRobWxHcm91cEJ1aWxkZXJzW2dyb3VwLnR5cGVdKGdyb3VwLCBvcHRpb25zKTsgLy8gJEZsb3dGaXhNZVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkdvdCBncm91cCBvZiB1bmtub3duIHR5cGU6ICdcIiArIGdyb3VwLnR5cGUgKyBcIidcIik7XG4gIH1cbn07XG4vKipcbiAqIFRha2VzIGEgZnVsbCBwYXJzZSB0cmVlIGFuZCBzZXR0aW5ncyBhbmQgYnVpbGRzIGEgTWF0aE1MIHJlcHJlc2VudGF0aW9uIG9mXG4gKiBpdC4gSW4gcGFydGljdWxhciwgd2UgcHV0IHRoZSBlbGVtZW50cyBmcm9tIGJ1aWxkaW5nIHRoZSBwYXJzZSB0cmVlIGludG8gYVxuICogPHNlbWFudGljcz4gdGFnIHNvIHdlIGNhbiBhbHNvIGluY2x1ZGUgdGhhdCBUZVggc291cmNlIGFzIGFuIGFubm90YXRpb24uXG4gKlxuICogTm90ZSB0aGF0IHdlIGFjdHVhbGx5IHJldHVybiBhIGRvbVRyZWUgZWxlbWVudCB3aXRoIGEgYDxtYXRoPmAgaW5zaWRlIGl0IHNvXG4gKiB3ZSBjYW4gZG8gYXBwcm9wcmlhdGUgc3R5bGluZy5cbiAqL1xuXG5mdW5jdGlvbiBidWlsZE1hdGhNTCh0cmVlLCB0ZXhFeHByZXNzaW9uLCBvcHRpb25zLCBpc0Rpc3BsYXlNb2RlLCBmb3JNYXRobWxPbmx5KSB7XG4gIHZhciBleHByZXNzaW9uID0gYnVpbGRFeHByZXNzaW9uKHRyZWUsIG9wdGlvbnMpOyAvLyBUT0RPOiBNYWtlIGEgcGFzcyB0aHJ1IHRoZSBNYXRoTUwgc2ltaWxhciB0byBidWlsZEhUTUwudHJhdmVyc2VOb25TcGFjZU5vZGVzXG4gIC8vIGFuZCBhZGQgc3BhY2luZyBub2Rlcy4gVGhpcyBpcyBuZWNlc3Nhcnkgb25seSBhZGphY2VudCB0byBtYXRoIG9wZXJhdG9yc1xuICAvLyBsaWtlIFxcc2luIG9yIFxcbGltIG9yIHRvIHN1YnN1cCBlbGVtZW50cyB0aGF0IGNvbnRhaW4gbWF0aCBvcGVyYXRvcnMuXG4gIC8vIE1hdGhNTCB0YWtlcyBjYXJlIG9mIHRoZSBvdGhlciBzcGFjaW5nIGlzc3Vlcy5cbiAgLy8gV3JhcCB1cCB0aGUgZXhwcmVzc2lvbiBpbiBhbiBtcm93IHNvIGl0IGlzIHByZXNlbnRlZCBpbiB0aGUgc2VtYW50aWNzXG4gIC8vIHRhZyBjb3JyZWN0bHksIHVubGVzcyBpdCdzIGEgc2luZ2xlIDxtcm93PiBvciA8bXRhYmxlPi5cblxuICB2YXIgd3JhcHBlcjtcblxuICBpZiAoZXhwcmVzc2lvbi5sZW5ndGggPT09IDEgJiYgZXhwcmVzc2lvblswXSBpbnN0YW5jZW9mIE1hdGhOb2RlICYmIHV0aWxzLmNvbnRhaW5zKFtcIm1yb3dcIiwgXCJtdGFibGVcIl0sIGV4cHJlc3Npb25bMF0udHlwZSkpIHtcbiAgICB3cmFwcGVyID0gZXhwcmVzc2lvblswXTtcbiAgfSBlbHNlIHtcbiAgICB3cmFwcGVyID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtcm93XCIsIGV4cHJlc3Npb24pO1xuICB9IC8vIEJ1aWxkIGEgVGVYIGFubm90YXRpb24gb2YgdGhlIHNvdXJjZVxuXG5cbiAgdmFyIGFubm90YXRpb24gPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcImFubm90YXRpb25cIiwgW25ldyBtYXRoTUxUcmVlLlRleHROb2RlKHRleEV4cHJlc3Npb24pXSk7XG4gIGFubm90YXRpb24uc2V0QXR0cmlidXRlKFwiZW5jb2RpbmdcIiwgXCJhcHBsaWNhdGlvbi94LXRleFwiKTtcbiAgdmFyIHNlbWFudGljcyA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwic2VtYW50aWNzXCIsIFt3cmFwcGVyLCBhbm5vdGF0aW9uXSk7XG4gIHZhciBtYXRoID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtYXRoXCIsIFtzZW1hbnRpY3NdKTtcbiAgbWF0aC5zZXRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCBcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIik7XG5cbiAgaWYgKGlzRGlzcGxheU1vZGUpIHtcbiAgICBtYXRoLnNldEF0dHJpYnV0ZShcImRpc3BsYXlcIiwgXCJibG9ja1wiKTtcbiAgfSAvLyBZb3UgY2FuJ3Qgc3R5bGUgPG1hdGg+IG5vZGVzLCBzbyB3ZSB3cmFwIHRoZSBub2RlIGluIGEgc3Bhbi5cbiAgLy8gTk9URTogVGhlIHNwYW4gY2xhc3MgaXMgbm90IHR5cGVkIHRvIGhhdmUgPG1hdGg+IG5vZGVzIGFzIGNoaWxkcmVuLCBhbmRcbiAgLy8gd2UgZG9uJ3Qgd2FudCB0byBtYWtlIHRoZSBjaGlsZHJlbiB0eXBlIG1vcmUgZ2VuZXJpYyBzaW5jZSB0aGUgY2hpbGRyZW5cbiAgLy8gb2Ygc3BhbiBhcmUgZXhwZWN0ZWQgdG8gaGF2ZSBtb3JlIGZpZWxkcyBpbiBgYnVpbGRIdG1sYCBjb250ZXh0cy5cblxuXG4gIHZhciB3cmFwcGVyQ2xhc3MgPSBmb3JNYXRobWxPbmx5ID8gXCJrYXRleFwiIDogXCJrYXRleC1tYXRobWxcIjsgLy8gJEZsb3dGaXhNZVxuXG4gIHJldHVybiBidWlsZENvbW1vbi5tYWtlU3Bhbihbd3JhcHBlckNsYXNzXSwgW21hdGhdKTtcbn1cblxudmFyIG9wdGlvbnNGcm9tU2V0dGluZ3MgPSBmdW5jdGlvbiBvcHRpb25zRnJvbVNldHRpbmdzKHNldHRpbmdzKSB7XG4gIHJldHVybiBuZXcgT3B0aW9ucyh7XG4gICAgc3R5bGU6IHNldHRpbmdzLmRpc3BsYXlNb2RlID8gU3R5bGUkMS5ESVNQTEFZIDogU3R5bGUkMS5URVhULFxuICAgIG1heFNpemU6IHNldHRpbmdzLm1heFNpemUsXG4gICAgbWluUnVsZVRoaWNrbmVzczogc2V0dGluZ3MubWluUnVsZVRoaWNrbmVzc1xuICB9KTtcbn07XG5cbnZhciBkaXNwbGF5V3JhcCA9IGZ1bmN0aW9uIGRpc3BsYXlXcmFwKG5vZGUsIHNldHRpbmdzKSB7XG4gIGlmIChzZXR0aW5ncy5kaXNwbGF5TW9kZSkge1xuICAgIHZhciBjbGFzc2VzID0gW1wia2F0ZXgtZGlzcGxheVwiXTtcblxuICAgIGlmIChzZXR0aW5ncy5sZXFubykge1xuICAgICAgY2xhc3Nlcy5wdXNoKFwibGVxbm9cIik7XG4gICAgfVxuXG4gICAgaWYgKHNldHRpbmdzLmZsZXFuKSB7XG4gICAgICBjbGFzc2VzLnB1c2goXCJmbGVxblwiKTtcbiAgICB9XG5cbiAgICBub2RlID0gYnVpbGRDb21tb24ubWFrZVNwYW4oY2xhc3NlcywgW25vZGVdKTtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufTtcblxudmFyIGJ1aWxkVHJlZSA9IGZ1bmN0aW9uIGJ1aWxkVHJlZSh0cmVlLCBleHByZXNzaW9uLCBzZXR0aW5ncykge1xuICB2YXIgb3B0aW9ucyA9IG9wdGlvbnNGcm9tU2V0dGluZ3Moc2V0dGluZ3MpO1xuICB2YXIga2F0ZXhOb2RlO1xuXG4gIGlmIChzZXR0aW5ncy5vdXRwdXQgPT09IFwibWF0aG1sXCIpIHtcbiAgICByZXR1cm4gYnVpbGRNYXRoTUwodHJlZSwgZXhwcmVzc2lvbiwgb3B0aW9ucywgc2V0dGluZ3MuZGlzcGxheU1vZGUsIHRydWUpO1xuICB9IGVsc2UgaWYgKHNldHRpbmdzLm91dHB1dCA9PT0gXCJodG1sXCIpIHtcbiAgICB2YXIgaHRtbE5vZGUgPSBidWlsZEhUTUwodHJlZSwgb3B0aW9ucyk7XG4gICAga2F0ZXhOb2RlID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wia2F0ZXhcIl0sIFtodG1sTm9kZV0pO1xuICB9IGVsc2Uge1xuICAgIHZhciBtYXRoTUxOb2RlID0gYnVpbGRNYXRoTUwodHJlZSwgZXhwcmVzc2lvbiwgb3B0aW9ucywgc2V0dGluZ3MuZGlzcGxheU1vZGUsIGZhbHNlKTtcblxuICAgIHZhciBfaHRtbE5vZGUgPSBidWlsZEhUTUwodHJlZSwgb3B0aW9ucyk7XG5cbiAgICBrYXRleE5vZGUgPSBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJrYXRleFwiXSwgW21hdGhNTE5vZGUsIF9odG1sTm9kZV0pO1xuICB9XG5cbiAgcmV0dXJuIGRpc3BsYXlXcmFwKGthdGV4Tm9kZSwgc2V0dGluZ3MpO1xufTtcbnZhciBidWlsZEhUTUxUcmVlID0gZnVuY3Rpb24gYnVpbGRIVE1MVHJlZSh0cmVlLCBleHByZXNzaW9uLCBzZXR0aW5ncykge1xuICB2YXIgb3B0aW9ucyA9IG9wdGlvbnNGcm9tU2V0dGluZ3Moc2V0dGluZ3MpO1xuICB2YXIgaHRtbE5vZGUgPSBidWlsZEhUTUwodHJlZSwgb3B0aW9ucyk7XG4gIHZhciBrYXRleE5vZGUgPSBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJrYXRleFwiXSwgW2h0bWxOb2RlXSk7XG4gIHJldHVybiBkaXNwbGF5V3JhcChrYXRleE5vZGUsIHNldHRpbmdzKTtcbn07XG5cbi8qKlxuICogVGhpcyBmaWxlIHByb3ZpZGVzIHN1cHBvcnQgdG8gYnVpbGRNYXRoTUwuanMgYW5kIGJ1aWxkSFRNTC5qc1xuICogZm9yIHN0cmV0Y2h5IHdpZGUgZWxlbWVudHMgcmVuZGVyZWQgZnJvbSBTVkcgZmlsZXNcbiAqIGFuZCBvdGhlciBDU1MgdHJpY2tlcnkuXG4gKi9cbnZhciBzdHJldGNoeUNvZGVQb2ludCA9IHtcbiAgd2lkZWhhdDogXCJeXCIsXG4gIHdpZGVjaGVjazogXCLLh1wiLFxuICB3aWRldGlsZGU6IFwiflwiLFxuICB1dGlsZGU6IFwiflwiLFxuICBvdmVybGVmdGFycm93OiBcIlxcdTIxOTBcIixcbiAgdW5kZXJsZWZ0YXJyb3c6IFwiXFx1MjE5MFwiLFxuICB4bGVmdGFycm93OiBcIlxcdTIxOTBcIixcbiAgb3ZlcnJpZ2h0YXJyb3c6IFwiXFx1MjE5MlwiLFxuICB1bmRlcnJpZ2h0YXJyb3c6IFwiXFx1MjE5MlwiLFxuICB4cmlnaHRhcnJvdzogXCJcXHUyMTkyXCIsXG4gIHVuZGVyYnJhY2U6IFwiXFx1MjNkZlwiLFxuICBvdmVyYnJhY2U6IFwiXFx1MjNkZVwiLFxuICBvdmVyZ3JvdXA6IFwiXFx1MjNlMFwiLFxuICB1bmRlcmdyb3VwOiBcIlxcdTIzZTFcIixcbiAgb3ZlcmxlZnRyaWdodGFycm93OiBcIlxcdTIxOTRcIixcbiAgdW5kZXJsZWZ0cmlnaHRhcnJvdzogXCJcXHUyMTk0XCIsXG4gIHhsZWZ0cmlnaHRhcnJvdzogXCJcXHUyMTk0XCIsXG4gIE92ZXJyaWdodGFycm93OiBcIlxcdTIxZDJcIixcbiAgeFJpZ2h0YXJyb3c6IFwiXFx1MjFkMlwiLFxuICBvdmVybGVmdGhhcnBvb246IFwiXFx1MjFiY1wiLFxuICB4bGVmdGhhcnBvb251cDogXCJcXHUyMWJjXCIsXG4gIG92ZXJyaWdodGhhcnBvb246IFwiXFx1MjFjMFwiLFxuICB4cmlnaHRoYXJwb29udXA6IFwiXFx1MjFjMFwiLFxuICB4TGVmdGFycm93OiBcIlxcdTIxZDBcIixcbiAgeExlZnRyaWdodGFycm93OiBcIlxcdTIxZDRcIixcbiAgeGhvb2tsZWZ0YXJyb3c6IFwiXFx1MjFhOVwiLFxuICB4aG9va3JpZ2h0YXJyb3c6IFwiXFx1MjFhYVwiLFxuICB4bWFwc3RvOiBcIlxcdTIxYTZcIixcbiAgeHJpZ2h0aGFycG9vbmRvd246IFwiXFx1MjFjMVwiLFxuICB4bGVmdGhhcnBvb25kb3duOiBcIlxcdTIxYmRcIixcbiAgeHJpZ2h0bGVmdGhhcnBvb25zOiBcIlxcdTIxY2NcIixcbiAgeGxlZnRyaWdodGhhcnBvb25zOiBcIlxcdTIxY2JcIixcbiAgeHR3b2hlYWRsZWZ0YXJyb3c6IFwiXFx1MjE5ZVwiLFxuICB4dHdvaGVhZHJpZ2h0YXJyb3c6IFwiXFx1MjFhMFwiLFxuICB4bG9uZ2VxdWFsOiBcIj1cIixcbiAgeHRvZnJvbTogXCJcXHUyMWM0XCIsXG4gIHhyaWdodGxlZnRhcnJvd3M6IFwiXFx1MjFjNFwiLFxuICB4cmlnaHRlcXVpbGlicml1bTogXCJcXHUyMWNjXCIsXG4gIC8vIE5vdCBhIHBlcmZlY3QgbWF0Y2guXG4gIHhsZWZ0ZXF1aWxpYnJpdW06IFwiXFx1MjFjYlwiLFxuICAvLyBOb25lIGJldHRlciBhdmFpbGFibGUuXG4gIFwiXFxcXGNkcmlnaHRhcnJvd1wiOiBcIlxcdTIxOTJcIixcbiAgXCJcXFxcY2RsZWZ0YXJyb3dcIjogXCJcXHUyMTkwXCIsXG4gIFwiXFxcXGNkbG9uZ2VxdWFsXCI6IFwiPVwiXG59O1xuXG52YXIgbWF0aE1Mbm9kZSA9IGZ1bmN0aW9uIG1hdGhNTG5vZGUobGFiZWwpIHtcbiAgdmFyIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1vXCIsIFtuZXcgbWF0aE1MVHJlZS5UZXh0Tm9kZShzdHJldGNoeUNvZGVQb2ludFtsYWJlbC5yZXBsYWNlKC9eXFxcXC8sICcnKV0pXSk7XG4gIG5vZGUuc2V0QXR0cmlidXRlKFwic3RyZXRjaHlcIiwgXCJ0cnVlXCIpO1xuICByZXR1cm4gbm9kZTtcbn07IC8vIE1hbnkgb2YgdGhlIEthVGVYIFNWRyBpbWFnZXMgaGF2ZSBiZWVuIGFkYXB0ZWQgZnJvbSBnbHlwaHMgaW4gS2FUZVggZm9udHMuXG4vLyBDb3B5cmlnaHQgKGMpIDIwMDktMjAxMCwgRGVzaWduIFNjaWVuY2UsIEluYy4gKDx3d3cubWF0aGpheC5vcmc+KVxuLy8gQ29weXJpZ2h0IChjKSAyMDE0LTIwMTcgS2hhbiBBY2FkZW15ICg8d3d3LmtoYW5hY2FkZW15Lm9yZz4pXG4vLyBMaWNlbnNlZCB1bmRlciB0aGUgU0lMIE9wZW4gRm9udCBMaWNlbnNlLCBWZXJzaW9uIDEuMS5cbi8vIFNlZSBcXG5odHRwOi8vc2NyaXB0cy5zaWwub3JnL09GTFxuLy8gVmVyeSBMb25nIFNWR3Ncbi8vICAgIE1hbnkgb2YgdGhlIEthVGVYIHN0cmV0Y2h5IHdpZGUgZWxlbWVudHMgdXNlIGEgbG9uZyBTVkcgaW1hZ2UgYW5kIGFuXG4vLyAgICBvdmVyZmxvdzogaGlkZGVuIHRhY3RpYyB0byBhY2hpZXZlIGEgc3RyZXRjaHkgaW1hZ2Ugd2hpbGUgYXZvaWRpbmdcbi8vICAgIGRpc3RvcnRpb24gb2YgYXJyb3doZWFkcyBvciBicmFjZSBjb3JuZXJzLlxuLy8gICAgVGhlIFNWRyB0eXBpY2FsbHkgY29udGFpbnMgYSB2ZXJ5IGxvbmcgKDQwMCBlbSkgYXJyb3cuXG4vLyAgICBUaGUgU1ZHIGlzIGluIGEgY29udGFpbmVyIHNwYW4gdGhhdCBoYXMgb3ZlcmZsb3c6IGhpZGRlbiwgc28gdGhlIHNwYW5cbi8vICAgIGFjdHMgbGlrZSBhIHdpbmRvdyB0aGF0IGV4cG9zZXMgb25seSBwYXJ0IG9mIHRoZSAgU1ZHLlxuLy8gICAgVGhlIFNWRyBhbHdheXMgaGFzIGEgbG9uZ2VyLCB0aGlubmVyIGFzcGVjdCByYXRpbyB0aGFuIHRoZSBjb250YWluZXIgc3Bhbi5cbi8vICAgIEFmdGVyIHRoZSBTVkcgZmlsbHMgMTAwJSBvZiB0aGUgaGVpZ2h0IG9mIHRoZSBjb250YWluZXIgc3Bhbixcbi8vICAgIHRoZXJlIGlzIGEgbG9uZyBhcnJvdyBzaGFmdCBsZWZ0IG92ZXIuIFRoYXQgbGVmdC1vdmVyIHNoYWZ0IGlzIG5vdCBzaG93bi5cbi8vICAgIEluc3RlYWQsIGl0IGlzIHNsaWNlZCBvZmYgYmVjYXVzZSB0aGUgc3BhbidzIENTUyBoYXMgb3ZlcmZsb3c6IGhpZGRlbi5cbi8vICAgIFRodXMsIHRoZSByZWFkZXIgc2VlcyBhbiBhcnJvdyB0aGF0IG1hdGNoZXMgdGhlIHN1YmplY3QgbWF0dGVyIHdpZHRoXG4vLyAgICB3aXRob3V0IGRpc3RvcnRpb24uXG4vLyAgICBTb21lIGZ1bmN0aW9ucywgc3VjaCBhcyBcXGNhbmNlbCwgbmVlZCB0byB2YXJ5IHRoZWlyIGFzcGVjdCByYXRpby4gVGhlc2Vcbi8vICAgIGZ1bmN0aW9ucyBkbyBub3QgZ2V0IHRoZSBvdmVyZmxvdyBTVkcgdHJlYXRtZW50LlxuLy8gU2Vjb25kIEJydXNoIFN0cm9rZVxuLy8gICAgTG93IHJlc29sdXRpb24gbW9uaXRvcnMgc3RydWdnbGUgdG8gZGlzcGxheSBpbWFnZXMgaW4gZmluZSBkZXRhaWwuXG4vLyAgICBTbyBicm93c2VycyBhcHBseSBhbnRpLWFsaWFzaW5nLiBBIGxvbmcgc3RyYWlnaHQgYXJyb3cgc2hhZnQgdGhlcmVmb3JlXG4vLyAgICB3aWxsIHNvbWV0aW1lcyBhcHBlYXIgYXMgaWYgaXQgaGFzIGEgYmx1cnJlZCBlZGdlLlxuLy8gICAgVG8gbWl0aWdhdGUgdGhpcywgdGhlc2UgU1ZHIGZpbGVzIGNvbnRhaW4gYSBzZWNvbmQgXCJicnVzaC1zdHJva2VcIiBvbiB0aGVcbi8vICAgIGFycm93IHNoYWZ0cy4gVGhhdCBpcywgYSBzZWNvbmQgbG9uZyB0aGluIHJlY3Rhbmd1bGFyIFNWRyBwYXRoIGhhcyBiZWVuXG4vLyAgICB3cml0dGVuIGRpcmVjdGx5IG9uIHRvcCBvZiBlYWNoIGFycm93IHNoYWZ0LiBUaGlzIHJlaW5mb3JjZW1lbnQgY2F1c2VzXG4vLyAgICBzb21lIG9mIHRoZSBzY3JlZW4gcGl4ZWxzIHRvIGRpc3BsYXkgYXMgYmxhY2sgaW5zdGVhZCBvZiB0aGUgYW50aS1hbGlhc2VkXG4vLyAgICBncmF5IHBpeGVsIHRoYXQgYSAgc2luZ2xlIHBhdGggd291bGQgZ2VuZXJhdGUuIFNvIHdlIGdldCBhcnJvdyBzaGFmdHNcbi8vICAgIHdob3NlIGVkZ2VzIGFwcGVhciB0byBiZSBzaGFycGVyLlxuLy8gSW4gdGhlIGthdGV4SW1hZ2VzRGF0YSBvYmplY3QganVzdCBiZWxvdywgdGhlIGRpbWVuc2lvbnMgYWxsXG4vLyBjb3JyZXNwb25kIHRvIHBhdGggZ2VvbWV0cnkgaW5zaWRlIHRoZSByZWxldmFudCBTVkcuXG4vLyBGb3IgZXhhbXBsZSwgXFxvdmVycmlnaHRhcnJvdyB1c2VzIHRoZSBzYW1lIGFycm93aGVhZCBhcyBnbHlwaCBVKzIxOTJcbi8vIGZyb20gdGhlIEthVGVYIE1haW4gZm9udC4gVGhlIHNjYWxpbmcgZmFjdG9yIGlzIDEwMDAuXG4vLyBUaGF0IGlzLCBpbnNpZGUgdGhlIGZvbnQsIHRoYXQgYXJyb3doZWFkIGlzIDUyMiB1bml0cyB0YWxsLCB3aGljaFxuLy8gY29ycmVzcG9uZHMgdG8gMC41MjIgZW0gaW5zaWRlIHRoZSBkb2N1bWVudC5cblxuXG52YXIga2F0ZXhJbWFnZXNEYXRhID0ge1xuICAvLyAgIHBhdGgocyksIG1pbldpZHRoLCBoZWlnaHQsIGFsaWduXG4gIG92ZXJyaWdodGFycm93OiBbW1wicmlnaHRhcnJvd1wiXSwgMC44ODgsIDUyMiwgXCJ4TWF4WU1pblwiXSxcbiAgb3ZlcmxlZnRhcnJvdzogW1tcImxlZnRhcnJvd1wiXSwgMC44ODgsIDUyMiwgXCJ4TWluWU1pblwiXSxcbiAgdW5kZXJyaWdodGFycm93OiBbW1wicmlnaHRhcnJvd1wiXSwgMC44ODgsIDUyMiwgXCJ4TWF4WU1pblwiXSxcbiAgdW5kZXJsZWZ0YXJyb3c6IFtbXCJsZWZ0YXJyb3dcIl0sIDAuODg4LCA1MjIsIFwieE1pbllNaW5cIl0sXG4gIHhyaWdodGFycm93OiBbW1wicmlnaHRhcnJvd1wiXSwgMS40NjksIDUyMiwgXCJ4TWF4WU1pblwiXSxcbiAgXCJcXFxcY2RyaWdodGFycm93XCI6IFtbXCJyaWdodGFycm93XCJdLCAzLjAsIDUyMiwgXCJ4TWF4WU1pblwiXSxcbiAgLy8gQ0QgbWlud3dpZHRoMi41cGNcbiAgeGxlZnRhcnJvdzogW1tcImxlZnRhcnJvd1wiXSwgMS40NjksIDUyMiwgXCJ4TWluWU1pblwiXSxcbiAgXCJcXFxcY2RsZWZ0YXJyb3dcIjogW1tcImxlZnRhcnJvd1wiXSwgMy4wLCA1MjIsIFwieE1pbllNaW5cIl0sXG4gIE92ZXJyaWdodGFycm93OiBbW1wiZG91YmxlcmlnaHRhcnJvd1wiXSwgMC44ODgsIDU2MCwgXCJ4TWF4WU1pblwiXSxcbiAgeFJpZ2h0YXJyb3c6IFtbXCJkb3VibGVyaWdodGFycm93XCJdLCAxLjUyNiwgNTYwLCBcInhNYXhZTWluXCJdLFxuICB4TGVmdGFycm93OiBbW1wiZG91YmxlbGVmdGFycm93XCJdLCAxLjUyNiwgNTYwLCBcInhNaW5ZTWluXCJdLFxuICBvdmVybGVmdGhhcnBvb246IFtbXCJsZWZ0aGFycG9vblwiXSwgMC44ODgsIDUyMiwgXCJ4TWluWU1pblwiXSxcbiAgeGxlZnRoYXJwb29udXA6IFtbXCJsZWZ0aGFycG9vblwiXSwgMC44ODgsIDUyMiwgXCJ4TWluWU1pblwiXSxcbiAgeGxlZnRoYXJwb29uZG93bjogW1tcImxlZnRoYXJwb29uZG93blwiXSwgMC44ODgsIDUyMiwgXCJ4TWluWU1pblwiXSxcbiAgb3ZlcnJpZ2h0aGFycG9vbjogW1tcInJpZ2h0aGFycG9vblwiXSwgMC44ODgsIDUyMiwgXCJ4TWF4WU1pblwiXSxcbiAgeHJpZ2h0aGFycG9vbnVwOiBbW1wicmlnaHRoYXJwb29uXCJdLCAwLjg4OCwgNTIyLCBcInhNYXhZTWluXCJdLFxuICB4cmlnaHRoYXJwb29uZG93bjogW1tcInJpZ2h0aGFycG9vbmRvd25cIl0sIDAuODg4LCA1MjIsIFwieE1heFlNaW5cIl0sXG4gIHhsb25nZXF1YWw6IFtbXCJsb25nZXF1YWxcIl0sIDAuODg4LCAzMzQsIFwieE1pbllNaW5cIl0sXG4gIFwiXFxcXGNkbG9uZ2VxdWFsXCI6IFtbXCJsb25nZXF1YWxcIl0sIDMuMCwgMzM0LCBcInhNaW5ZTWluXCJdLFxuICB4dHdvaGVhZGxlZnRhcnJvdzogW1tcInR3b2hlYWRsZWZ0YXJyb3dcIl0sIDAuODg4LCAzMzQsIFwieE1pbllNaW5cIl0sXG4gIHh0d29oZWFkcmlnaHRhcnJvdzogW1tcInR3b2hlYWRyaWdodGFycm93XCJdLCAwLjg4OCwgMzM0LCBcInhNYXhZTWluXCJdLFxuICBvdmVybGVmdHJpZ2h0YXJyb3c6IFtbXCJsZWZ0YXJyb3dcIiwgXCJyaWdodGFycm93XCJdLCAwLjg4OCwgNTIyXSxcbiAgb3ZlcmJyYWNlOiBbW1wibGVmdGJyYWNlXCIsIFwibWlkYnJhY2VcIiwgXCJyaWdodGJyYWNlXCJdLCAxLjYsIDU0OF0sXG4gIHVuZGVyYnJhY2U6IFtbXCJsZWZ0YnJhY2V1bmRlclwiLCBcIm1pZGJyYWNldW5kZXJcIiwgXCJyaWdodGJyYWNldW5kZXJcIl0sIDEuNiwgNTQ4XSxcbiAgdW5kZXJsZWZ0cmlnaHRhcnJvdzogW1tcImxlZnRhcnJvd1wiLCBcInJpZ2h0YXJyb3dcIl0sIDAuODg4LCA1MjJdLFxuICB4bGVmdHJpZ2h0YXJyb3c6IFtbXCJsZWZ0YXJyb3dcIiwgXCJyaWdodGFycm93XCJdLCAxLjc1LCA1MjJdLFxuICB4TGVmdHJpZ2h0YXJyb3c6IFtbXCJkb3VibGVsZWZ0YXJyb3dcIiwgXCJkb3VibGVyaWdodGFycm93XCJdLCAxLjc1LCA1NjBdLFxuICB4cmlnaHRsZWZ0aGFycG9vbnM6IFtbXCJsZWZ0aGFycG9vbmRvd25wbHVzXCIsIFwicmlnaHRoYXJwb29ucGx1c1wiXSwgMS43NSwgNzE2XSxcbiAgeGxlZnRyaWdodGhhcnBvb25zOiBbW1wibGVmdGhhcnBvb25wbHVzXCIsIFwicmlnaHRoYXJwb29uZG93bnBsdXNcIl0sIDEuNzUsIDcxNl0sXG4gIHhob29rbGVmdGFycm93OiBbW1wibGVmdGFycm93XCIsIFwicmlnaHRob29rXCJdLCAxLjA4LCA1MjJdLFxuICB4aG9va3JpZ2h0YXJyb3c6IFtbXCJsZWZ0aG9va1wiLCBcInJpZ2h0YXJyb3dcIl0sIDEuMDgsIDUyMl0sXG4gIG92ZXJsaW5lc2VnbWVudDogW1tcImxlZnRsaW5lc2VnbWVudFwiLCBcInJpZ2h0bGluZXNlZ21lbnRcIl0sIDAuODg4LCA1MjJdLFxuICB1bmRlcmxpbmVzZWdtZW50OiBbW1wibGVmdGxpbmVzZWdtZW50XCIsIFwicmlnaHRsaW5lc2VnbWVudFwiXSwgMC44ODgsIDUyMl0sXG4gIG92ZXJncm91cDogW1tcImxlZnRncm91cFwiLCBcInJpZ2h0Z3JvdXBcIl0sIDAuODg4LCAzNDJdLFxuICB1bmRlcmdyb3VwOiBbW1wibGVmdGdyb3VwdW5kZXJcIiwgXCJyaWdodGdyb3VwdW5kZXJcIl0sIDAuODg4LCAzNDJdLFxuICB4bWFwc3RvOiBbW1wibGVmdG1hcHN0b1wiLCBcInJpZ2h0YXJyb3dcIl0sIDEuNSwgNTIyXSxcbiAgeHRvZnJvbTogW1tcImxlZnRUb0Zyb21cIiwgXCJyaWdodFRvRnJvbVwiXSwgMS43NSwgNTI4XSxcbiAgLy8gVGhlIG5leHQgdGhyZWUgYXJyb3dzIGFyZSBmcm9tIHRoZSBtaGNoZW0gcGFja2FnZS5cbiAgLy8gSW4gbWhjaGVtLnN0eSwgbWluLWxlbmd0aCBpcyAyLjBlbS4gQnV0IHRoZXNlIGFycm93cyBtaWdodCBhcHBlYXIgaW4gdGhlXG4gIC8vIGRvY3VtZW50IGFzIFxceHJpZ2h0YXJyb3cgb3IgXFx4cmlnaHRsZWZ0aGFycG9vbnMuIFRob3NlIGhhdmVcbiAgLy8gbWluLWxlbmd0aCA9IDEuNzVlbSwgc28gd2Ugc2V0IG1pbi1sZW5ndGggb24gdGhlc2UgbmV4dCB0aHJlZSB0byBtYXRjaC5cbiAgeHJpZ2h0bGVmdGFycm93czogW1tcImJhcmFib3ZlbGVmdGFycm93XCIsIFwicmlnaHRhcnJvd2Fib3ZlYmFyXCJdLCAxLjc1LCA5MDFdLFxuICB4cmlnaHRlcXVpbGlicml1bTogW1tcImJhcmFib3Zlc2hvcnRsZWZ0aGFycG9vblwiLCBcInJpZ2h0aGFycG9vbmFib3Zlc2hvcnRiYXJcIl0sIDEuNzUsIDcxNl0sXG4gIHhsZWZ0ZXF1aWxpYnJpdW06IFtbXCJzaG9ydGJhcmFib3ZlbGVmdGhhcnBvb25cIiwgXCJzaG9ydHJpZ2h0aGFycG9vbmFib3ZlYmFyXCJdLCAxLjc1LCA3MTZdXG59O1xuXG52YXIgZ3JvdXBMZW5ndGggPSBmdW5jdGlvbiBncm91cExlbmd0aChhcmcpIHtcbiAgaWYgKGFyZy50eXBlID09PSBcIm9yZGdyb3VwXCIpIHtcbiAgICByZXR1cm4gYXJnLmJvZHkubGVuZ3RoO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAxO1xuICB9XG59O1xuXG52YXIgc3ZnU3BhbiA9IGZ1bmN0aW9uIHN2Z1NwYW4oZ3JvdXAsIG9wdGlvbnMpIHtcbiAgLy8gQ3JlYXRlIGEgc3BhbiB3aXRoIGlubGluZSBTVkcgZm9yIHRoZSBlbGVtZW50LlxuICBmdW5jdGlvbiBidWlsZFN2Z1NwYW5fKCkge1xuICAgIHZhciB2aWV3Qm94V2lkdGggPSA0MDAwMDA7IC8vIGRlZmF1bHRcblxuICAgIHZhciBsYWJlbCA9IGdyb3VwLmxhYmVsLnNsaWNlKDEpO1xuXG4gICAgaWYgKHV0aWxzLmNvbnRhaW5zKFtcIndpZGVoYXRcIiwgXCJ3aWRlY2hlY2tcIiwgXCJ3aWRldGlsZGVcIiwgXCJ1dGlsZGVcIl0sIGxhYmVsKSkge1xuICAgICAgLy8gRWFjaCB0eXBlIGluIHRoZSBgaWZgIHN0YXRlbWVudCBjb3JyZXNwb25kcyB0byBvbmUgb2YgdGhlIFBhcnNlTm9kZVxuICAgICAgLy8gdHlwZXMgYmVsb3cuIFRoaXMgbmFycm93aW5nIGlzIHJlcXVpcmVkIHRvIGFjY2VzcyBgZ3JwLmJhc2VgLlxuICAgICAgLy8gJEZsb3dGaXhNZVxuICAgICAgdmFyIGdycCA9IGdyb3VwOyAvLyBUaGVyZSBhcmUgZm91ciBTVkcgaW1hZ2VzIGF2YWlsYWJsZSBmb3IgZWFjaCBmdW5jdGlvbi5cbiAgICAgIC8vIENob29zZSBhIHRhbGxlciBpbWFnZSB3aGVuIHRoZXJlIGFyZSBtb3JlIGNoYXJhY3RlcnMuXG5cbiAgICAgIHZhciBudW1DaGFycyA9IGdyb3VwTGVuZ3RoKGdycC5iYXNlKTtcbiAgICAgIHZhciB2aWV3Qm94SGVpZ2h0O1xuICAgICAgdmFyIHBhdGhOYW1lO1xuXG4gICAgICB2YXIgX2hlaWdodDtcblxuICAgICAgaWYgKG51bUNoYXJzID4gNSkge1xuICAgICAgICBpZiAobGFiZWwgPT09IFwid2lkZWhhdFwiIHx8IGxhYmVsID09PSBcIndpZGVjaGVja1wiKSB7XG4gICAgICAgICAgdmlld0JveEhlaWdodCA9IDQyMDtcbiAgICAgICAgICB2aWV3Qm94V2lkdGggPSAyMzY0O1xuICAgICAgICAgIF9oZWlnaHQgPSAwLjQyO1xuICAgICAgICAgIHBhdGhOYW1lID0gbGFiZWwgKyBcIjRcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2aWV3Qm94SGVpZ2h0ID0gMzEyO1xuICAgICAgICAgIHZpZXdCb3hXaWR0aCA9IDIzNDA7XG4gICAgICAgICAgX2hlaWdodCA9IDAuMzQ7XG4gICAgICAgICAgcGF0aE5hbWUgPSBcInRpbGRlNFwiO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgaW1nSW5kZXggPSBbMSwgMSwgMiwgMiwgMywgM11bbnVtQ2hhcnNdO1xuXG4gICAgICAgIGlmIChsYWJlbCA9PT0gXCJ3aWRlaGF0XCIgfHwgbGFiZWwgPT09IFwid2lkZWNoZWNrXCIpIHtcbiAgICAgICAgICB2aWV3Qm94V2lkdGggPSBbMCwgMTA2MiwgMjM2NCwgMjM2NCwgMjM2NF1baW1nSW5kZXhdO1xuICAgICAgICAgIHZpZXdCb3hIZWlnaHQgPSBbMCwgMjM5LCAzMDAsIDM2MCwgNDIwXVtpbWdJbmRleF07XG4gICAgICAgICAgX2hlaWdodCA9IFswLCAwLjI0LCAwLjMsIDAuMywgMC4zNiwgMC40Ml1baW1nSW5kZXhdO1xuICAgICAgICAgIHBhdGhOYW1lID0gbGFiZWwgKyBpbWdJbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2aWV3Qm94V2lkdGggPSBbMCwgNjAwLCAxMDMzLCAyMzM5LCAyMzQwXVtpbWdJbmRleF07XG4gICAgICAgICAgdmlld0JveEhlaWdodCA9IFswLCAyNjAsIDI4NiwgMzA2LCAzMTJdW2ltZ0luZGV4XTtcbiAgICAgICAgICBfaGVpZ2h0ID0gWzAsIDAuMjYsIDAuMjg2LCAwLjMsIDAuMzA2LCAwLjM0XVtpbWdJbmRleF07XG4gICAgICAgICAgcGF0aE5hbWUgPSBcInRpbGRlXCIgKyBpbWdJbmRleDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgcGF0aCA9IG5ldyBQYXRoTm9kZShwYXRoTmFtZSk7XG4gICAgICB2YXIgc3ZnTm9kZSA9IG5ldyBTdmdOb2RlKFtwYXRoXSwge1xuICAgICAgICBcIndpZHRoXCI6IFwiMTAwJVwiLFxuICAgICAgICBcImhlaWdodFwiOiBtYWtlRW0oX2hlaWdodCksXG4gICAgICAgIFwidmlld0JveFwiOiBcIjAgMCBcIiArIHZpZXdCb3hXaWR0aCArIFwiIFwiICsgdmlld0JveEhlaWdodCxcbiAgICAgICAgXCJwcmVzZXJ2ZUFzcGVjdFJhdGlvXCI6IFwibm9uZVwiXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNwYW46IGJ1aWxkQ29tbW9uLm1ha2VTdmdTcGFuKFtdLCBbc3ZnTm9kZV0sIG9wdGlvbnMpLFxuICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgaGVpZ2h0OiBfaGVpZ2h0XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgc3BhbnMgPSBbXTtcbiAgICAgIHZhciBkYXRhID0ga2F0ZXhJbWFnZXNEYXRhW2xhYmVsXTtcbiAgICAgIHZhciBbcGF0aHMsIF9taW5XaWR0aCwgX3ZpZXdCb3hIZWlnaHRdID0gZGF0YTtcblxuICAgICAgdmFyIF9oZWlnaHQyID0gX3ZpZXdCb3hIZWlnaHQgLyAxMDAwO1xuXG4gICAgICB2YXIgbnVtU3ZnQ2hpbGRyZW4gPSBwYXRocy5sZW5ndGg7XG4gICAgICB2YXIgd2lkdGhDbGFzc2VzO1xuICAgICAgdmFyIGFsaWducztcblxuICAgICAgaWYgKG51bVN2Z0NoaWxkcmVuID09PSAxKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWU6IEFsbCB0aGVzZSBjYXNlcyBtdXN0IGJlIG9mIHRoZSA0LXR1cGxlIHR5cGUuXG4gICAgICAgIHZhciBhbGlnbjEgPSBkYXRhWzNdO1xuICAgICAgICB3aWR0aENsYXNzZXMgPSBbXCJoaWRlLXRhaWxcIl07XG4gICAgICAgIGFsaWducyA9IFthbGlnbjFdO1xuICAgICAgfSBlbHNlIGlmIChudW1TdmdDaGlsZHJlbiA9PT0gMikge1xuICAgICAgICB3aWR0aENsYXNzZXMgPSBbXCJoYWxmYXJyb3ctbGVmdFwiLCBcImhhbGZhcnJvdy1yaWdodFwiXTtcbiAgICAgICAgYWxpZ25zID0gW1wieE1pbllNaW5cIiwgXCJ4TWF4WU1pblwiXTtcbiAgICAgIH0gZWxzZSBpZiAobnVtU3ZnQ2hpbGRyZW4gPT09IDMpIHtcbiAgICAgICAgd2lkdGhDbGFzc2VzID0gW1wiYnJhY2UtbGVmdFwiLCBcImJyYWNlLWNlbnRlclwiLCBcImJyYWNlLXJpZ2h0XCJdO1xuICAgICAgICBhbGlnbnMgPSBbXCJ4TWluWU1pblwiLCBcInhNaWRZTWluXCIsIFwieE1heFlNaW5cIl07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3JyZWN0IGthdGV4SW1hZ2VzRGF0YSBvciB1cGRhdGUgY29kZSBoZXJlIHRvIHN1cHBvcnRcXG4gICAgICAgICAgICAgICAgICAgIFwiICsgbnVtU3ZnQ2hpbGRyZW4gKyBcIiBjaGlsZHJlbi5cIik7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtU3ZnQ2hpbGRyZW47IGkrKykge1xuICAgICAgICB2YXIgX3BhdGggPSBuZXcgUGF0aE5vZGUocGF0aHNbaV0pO1xuXG4gICAgICAgIHZhciBfc3ZnTm9kZSA9IG5ldyBTdmdOb2RlKFtfcGF0aF0sIHtcbiAgICAgICAgICBcIndpZHRoXCI6IFwiNDAwZW1cIixcbiAgICAgICAgICBcImhlaWdodFwiOiBtYWtlRW0oX2hlaWdodDIpLFxuICAgICAgICAgIFwidmlld0JveFwiOiBcIjAgMCBcIiArIHZpZXdCb3hXaWR0aCArIFwiIFwiICsgX3ZpZXdCb3hIZWlnaHQsXG4gICAgICAgICAgXCJwcmVzZXJ2ZUFzcGVjdFJhdGlvXCI6IGFsaWduc1tpXSArIFwiIHNsaWNlXCJcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmFyIF9zcGFuID0gYnVpbGRDb21tb24ubWFrZVN2Z1NwYW4oW3dpZHRoQ2xhc3Nlc1tpXV0sIFtfc3ZnTm9kZV0sIG9wdGlvbnMpO1xuXG4gICAgICAgIGlmIChudW1TdmdDaGlsZHJlbiA9PT0gMSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzcGFuOiBfc3BhbixcbiAgICAgICAgICAgIG1pbldpZHRoOiBfbWluV2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IF9oZWlnaHQyXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfc3Bhbi5zdHlsZS5oZWlnaHQgPSBtYWtlRW0oX2hlaWdodDIpO1xuICAgICAgICAgIHNwYW5zLnB1c2goX3NwYW4pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNwYW46IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcInN0cmV0Y2h5XCJdLCBzcGFucywgb3B0aW9ucyksXG4gICAgICAgIG1pbldpZHRoOiBfbWluV2lkdGgsXG4gICAgICAgIGhlaWdodDogX2hlaWdodDJcbiAgICAgIH07XG4gICAgfVxuICB9IC8vIGJ1aWxkU3ZnU3Bhbl8oKVxuXG5cbiAgdmFyIHtcbiAgICBzcGFuLFxuICAgIG1pbldpZHRoLFxuICAgIGhlaWdodFxuICB9ID0gYnVpbGRTdmdTcGFuXygpOyAvLyBOb3RlIHRoYXQgd2UgYXJlIHJldHVybmluZyBzcGFuLmRlcHRoID0gMC5cbiAgLy8gQW55IGFkanVzdG1lbnRzIHJlbGF0aXZlIHRvIHRoZSBiYXNlbGluZSBtdXN0IGJlIGRvbmUgaW4gYnVpbGRIVE1MLlxuXG4gIHNwYW4uaGVpZ2h0ID0gaGVpZ2h0O1xuICBzcGFuLnN0eWxlLmhlaWdodCA9IG1ha2VFbShoZWlnaHQpO1xuXG4gIGlmIChtaW5XaWR0aCA+IDApIHtcbiAgICBzcGFuLnN0eWxlLm1pbldpZHRoID0gbWFrZUVtKG1pbldpZHRoKTtcbiAgfVxuXG4gIHJldHVybiBzcGFuO1xufTtcblxudmFyIGVuY2xvc2VTcGFuID0gZnVuY3Rpb24gZW5jbG9zZVNwYW4oaW5uZXIsIGxhYmVsLCB0b3BQYWQsIGJvdHRvbVBhZCwgb3B0aW9ucykge1xuICAvLyBSZXR1cm4gYW4gaW1hZ2Ugc3BhbiBmb3IgXFxjYW5jZWwsIFxcYmNhbmNlbCwgXFx4Y2FuY2VsLCBcXGZib3gsIG9yIFxcYW5nbFxuICB2YXIgaW1nO1xuICB2YXIgdG90YWxIZWlnaHQgPSBpbm5lci5oZWlnaHQgKyBpbm5lci5kZXB0aCArIHRvcFBhZCArIGJvdHRvbVBhZDtcblxuICBpZiAoL2Zib3h8Y29sb3J8YW5nbC8udGVzdChsYWJlbCkpIHtcbiAgICBpbWcgPSBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJzdHJldGNoeVwiLCBsYWJlbF0sIFtdLCBvcHRpb25zKTtcblxuICAgIGlmIChsYWJlbCA9PT0gXCJmYm94XCIpIHtcbiAgICAgIHZhciBjb2xvciA9IG9wdGlvbnMuY29sb3IgJiYgb3B0aW9ucy5nZXRDb2xvcigpO1xuXG4gICAgICBpZiAoY29sb3IpIHtcbiAgICAgICAgaW1nLnN0eWxlLmJvcmRlckNvbG9yID0gY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFxcY2FuY2VsLCBcXGJjYW5jZWwsIG9yIFxceGNhbmNlbFxuICAgIC8vIFNpbmNlIFxcY2FuY2VsJ3MgU1ZHIGlzIGlubGluZSBhbmQgaXQgb21pdHMgdGhlIHZpZXdCb3ggYXR0cmlidXRlLFxuICAgIC8vIGl0cyBzdHJva2Utd2lkdGggd2lsbCBub3QgdmFyeSB3aXRoIHNwYW4gYXJlYS5cbiAgICB2YXIgbGluZXMgPSBbXTtcblxuICAgIGlmICgvXltieF1jYW5jZWwkLy50ZXN0KGxhYmVsKSkge1xuICAgICAgbGluZXMucHVzaChuZXcgTGluZU5vZGUoe1xuICAgICAgICBcIngxXCI6IFwiMFwiLFxuICAgICAgICBcInkxXCI6IFwiMFwiLFxuICAgICAgICBcIngyXCI6IFwiMTAwJVwiLFxuICAgICAgICBcInkyXCI6IFwiMTAwJVwiLFxuICAgICAgICBcInN0cm9rZS13aWR0aFwiOiBcIjAuMDQ2ZW1cIlxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGlmICgvXng/Y2FuY2VsJC8udGVzdChsYWJlbCkpIHtcbiAgICAgIGxpbmVzLnB1c2gobmV3IExpbmVOb2RlKHtcbiAgICAgICAgXCJ4MVwiOiBcIjBcIixcbiAgICAgICAgXCJ5MVwiOiBcIjEwMCVcIixcbiAgICAgICAgXCJ4MlwiOiBcIjEwMCVcIixcbiAgICAgICAgXCJ5MlwiOiBcIjBcIixcbiAgICAgICAgXCJzdHJva2Utd2lkdGhcIjogXCIwLjA0NmVtXCJcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICB2YXIgc3ZnTm9kZSA9IG5ldyBTdmdOb2RlKGxpbmVzLCB7XG4gICAgICBcIndpZHRoXCI6IFwiMTAwJVwiLFxuICAgICAgXCJoZWlnaHRcIjogbWFrZUVtKHRvdGFsSGVpZ2h0KVxuICAgIH0pO1xuICAgIGltZyA9IGJ1aWxkQ29tbW9uLm1ha2VTdmdTcGFuKFtdLCBbc3ZnTm9kZV0sIG9wdGlvbnMpO1xuICB9XG5cbiAgaW1nLmhlaWdodCA9IHRvdGFsSGVpZ2h0O1xuICBpbWcuc3R5bGUuaGVpZ2h0ID0gbWFrZUVtKHRvdGFsSGVpZ2h0KTtcbiAgcmV0dXJuIGltZztcbn07XG5cbnZhciBzdHJldGNoeSA9IHtcbiAgZW5jbG9zZVNwYW4sXG4gIG1hdGhNTG5vZGUsXG4gIHN2Z1NwYW5cbn07XG5cbi8qKlxuICogQXNzZXJ0cyB0aGF0IHRoZSBub2RlIGlzIG9mIHRoZSBnaXZlbiB0eXBlIGFuZCByZXR1cm5zIGl0IHdpdGggc3RyaWN0ZXJcbiAqIHR5cGluZy4gVGhyb3dzIGlmIHRoZSBub2RlJ3MgdHlwZSBkb2VzIG5vdCBtYXRjaC5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9kZVR5cGUobm9kZSwgdHlwZSkge1xuICBpZiAoIW5vZGUgfHwgbm9kZS50eXBlICE9PSB0eXBlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgbm9kZSBvZiB0eXBlIFwiICsgdHlwZSArIFwiLCBidXQgZ290IFwiICsgKG5vZGUgPyBcIm5vZGUgb2YgdHlwZSBcIiArIG5vZGUudHlwZSA6IFN0cmluZyhub2RlKSkpO1xuICB9IC8vICRGbG93Rml4TWUsID49MC4xMjVcblxuXG4gIHJldHVybiBub2RlO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBub2RlIG1vcmUgc3RyaWN0bHkgdHlwZWQgaWZmIGl0IGlzIG9mIHRoZSBnaXZlbiB0eXBlLiBPdGhlcndpc2UsXG4gKiByZXR1cm5zIG51bGwuXG4gKi9cblxuZnVuY3Rpb24gYXNzZXJ0U3ltYm9sTm9kZVR5cGUobm9kZSkge1xuICB2YXIgdHlwZWROb2RlID0gY2hlY2tTeW1ib2xOb2RlVHlwZShub2RlKTtcblxuICBpZiAoIXR5cGVkTm9kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIG5vZGUgb2Ygc3ltYm9sIGdyb3VwIHR5cGUsIGJ1dCBnb3QgXCIgKyAobm9kZSA/IFwibm9kZSBvZiB0eXBlIFwiICsgbm9kZS50eXBlIDogU3RyaW5nKG5vZGUpKSk7XG4gIH1cblxuICByZXR1cm4gdHlwZWROb2RlO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBub2RlIG1vcmUgc3RyaWN0bHkgdHlwZWQgaWZmIGl0IGlzIG9mIHRoZSBnaXZlbiB0eXBlLiBPdGhlcndpc2UsXG4gKiByZXR1cm5zIG51bGwuXG4gKi9cblxuZnVuY3Rpb24gY2hlY2tTeW1ib2xOb2RlVHlwZShub2RlKSB7XG4gIGlmIChub2RlICYmIChub2RlLnR5cGUgPT09IFwiYXRvbVwiIHx8IE5PTl9BVE9NUy5oYXNPd25Qcm9wZXJ0eShub2RlLnR5cGUpKSkge1xuICAgIC8vICRGbG93Rml4TWVcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vLyBOT1RFOiBVbmxpa2UgbW9zdCBgaHRtbEJ1aWxkZXJgcywgdGhpcyBvbmUgaGFuZGxlcyBub3Qgb25seSBcImFjY2VudFwiLCBidXRcbi8vIGFsc28gXCJzdXBzdWJcIiBzaW5jZSBhbiBhY2NlbnQgY2FuIGFmZmVjdCBzdXBlci9zdWJzY3JpcHRpbmcuXG52YXIgaHRtbEJ1aWxkZXIkYSA9IChncnAsIG9wdGlvbnMpID0+IHtcbiAgLy8gQWNjZW50cyBhcmUgaGFuZGxlZCBpbiB0aGUgVGVYYm9vayBwZy4gNDQzLCBydWxlIDEyLlxuICB2YXIgYmFzZTtcbiAgdmFyIGdyb3VwO1xuICB2YXIgc3VwU3ViR3JvdXA7XG5cbiAgaWYgKGdycCAmJiBncnAudHlwZSA9PT0gXCJzdXBzdWJcIikge1xuICAgIC8vIElmIG91ciBiYXNlIGlzIGEgY2hhcmFjdGVyIGJveCwgYW5kIHdlIGhhdmUgc3VwZXJzY3JpcHRzIGFuZFxuICAgIC8vIHN1YnNjcmlwdHMsIHRoZSBzdXBzdWIgd2lsbCBkZWZlciB0byB1cy4gSW4gcGFydGljdWxhciwgd2Ugd2FudFxuICAgIC8vIHRvIGF0dGFjaCB0aGUgc3VwZXJzY3JpcHRzIGFuZCBzdWJzY3JpcHRzIHRvIHRoZSBpbm5lciBib2R5IChzb1xuICAgIC8vIHRoYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBzdXBlcnNjcmlwdHMgYW5kIHN1YnNjcmlwdHMgd29uJ3QgYmVcbiAgICAvLyBhZmZlY3RlZCBieSB0aGUgaGVpZ2h0IG9mIHRoZSBhY2NlbnQpLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnlcbiAgICAvLyBzdGlja2luZyB0aGUgYmFzZSBvZiB0aGUgYWNjZW50IGludG8gdGhlIGJhc2Ugb2YgdGhlIHN1cHN1YiwgYW5kXG4gICAgLy8gcmVuZGVyaW5nIHRoYXQsIHdoaWxlIGtlZXBpbmcgdHJhY2sgb2Ygd2hlcmUgdGhlIGFjY2VudCBpcy5cbiAgICAvLyBUaGUgcmVhbCBhY2NlbnQgZ3JvdXAgaXMgdGhlIGJhc2Ugb2YgdGhlIHN1cHN1YiBncm91cFxuICAgIGdyb3VwID0gYXNzZXJ0Tm9kZVR5cGUoZ3JwLmJhc2UsIFwiYWNjZW50XCIpOyAvLyBUaGUgY2hhcmFjdGVyIGJveCBpcyB0aGUgYmFzZSBvZiB0aGUgYWNjZW50IGdyb3VwXG5cbiAgICBiYXNlID0gZ3JvdXAuYmFzZTsgLy8gU3RpY2sgdGhlIGNoYXJhY3RlciBib3ggaW50byB0aGUgYmFzZSBvZiB0aGUgc3Vwc3ViIGdyb3VwXG5cbiAgICBncnAuYmFzZSA9IGJhc2U7IC8vIFJlcmVuZGVyIHRoZSBzdXBzdWIgZ3JvdXAgd2l0aCBpdHMgbmV3IGJhc2UsIGFuZCBzdG9yZSB0aGF0XG4gICAgLy8gcmVzdWx0LlxuXG4gICAgc3VwU3ViR3JvdXAgPSBhc3NlcnRTcGFuKGJ1aWxkR3JvdXAkMShncnAsIG9wdGlvbnMpKTsgLy8gcmVzZXQgb3JpZ2luYWwgYmFzZVxuXG4gICAgZ3JwLmJhc2UgPSBncm91cDtcbiAgfSBlbHNlIHtcbiAgICBncm91cCA9IGFzc2VydE5vZGVUeXBlKGdycCwgXCJhY2NlbnRcIik7XG4gICAgYmFzZSA9IGdyb3VwLmJhc2U7XG4gIH0gLy8gQnVpbGQgdGhlIGJhc2UgZ3JvdXBcblxuXG4gIHZhciBib2R5ID0gYnVpbGRHcm91cCQxKGJhc2UsIG9wdGlvbnMuaGF2aW5nQ3JhbXBlZFN0eWxlKCkpOyAvLyBEb2VzIHRoZSBhY2NlbnQgbmVlZCB0byBzaGlmdCBmb3IgdGhlIHNrZXcgb2YgYSBjaGFyYWN0ZXI/XG5cbiAgdmFyIG11c3RTaGlmdCA9IGdyb3VwLmlzU2hpZnR5ICYmIHV0aWxzLmlzQ2hhcmFjdGVyQm94KGJhc2UpOyAvLyBDYWxjdWxhdGUgdGhlIHNrZXcgb2YgdGhlIGFjY2VudC4gVGhpcyBpcyBiYXNlZCBvbiB0aGUgbGluZSBcIklmIHRoZVxuICAvLyBudWNsZXVzIGlzIG5vdCBhIHNpbmdsZSBjaGFyYWN0ZXIsIGxldCBzID0gMDsgb3RoZXJ3aXNlIHNldCBzIHRvIHRoZVxuICAvLyBrZXJuIGFtb3VudCBmb3IgdGhlIG51Y2xldXMgZm9sbG93ZWQgYnkgdGhlIFxcc2tld2NoYXIgb2YgaXRzIGZvbnQuXCJcbiAgLy8gTm90ZSB0aGF0IG91ciBza2V3IG1ldHJpY3MgYXJlIGp1c3QgdGhlIGtlcm4gYmV0d2VlbiBlYWNoIGNoYXJhY3RlclxuICAvLyBhbmQgdGhlIHNrZXdjaGFyLlxuXG4gIHZhciBza2V3ID0gMDtcblxuICBpZiAobXVzdFNoaWZ0KSB7XG4gICAgLy8gSWYgdGhlIGJhc2UgaXMgYSBjaGFyYWN0ZXIgYm94LCB0aGVuIHdlIHdhbnQgdGhlIHNrZXcgb2YgdGhlXG4gICAgLy8gaW5uZXJtb3N0IGNoYXJhY3Rlci4gVG8gZG8gdGhhdCwgd2UgZmluZCB0aGUgaW5uZXJtb3N0IGNoYXJhY3RlcjpcbiAgICB2YXIgYmFzZUNoYXIgPSB1dGlscy5nZXRCYXNlRWxlbShiYXNlKTsgLy8gVGhlbiwgd2UgcmVuZGVyIGl0cyBncm91cCB0byBnZXQgdGhlIHN5bWJvbCBpbnNpZGUgaXRcblxuICAgIHZhciBiYXNlR3JvdXAgPSBidWlsZEdyb3VwJDEoYmFzZUNoYXIsIG9wdGlvbnMuaGF2aW5nQ3JhbXBlZFN0eWxlKCkpOyAvLyBGaW5hbGx5LCB3ZSBwdWxsIHRoZSBza2V3IG9mZiBvZiB0aGUgc3ltYm9sLlxuXG4gICAgc2tldyA9IGFzc2VydFN5bWJvbERvbU5vZGUoYmFzZUdyb3VwKS5za2V3OyAvLyBOb3RlIHRoYXQgd2Ugbm93IHRocm93IGF3YXkgYmFzZUdyb3VwLCBiZWNhdXNlIHRoZSBsYXllcnMgd2VcbiAgICAvLyByZW1vdmVkIHdpdGggZ2V0QmFzZUVsZW0gbWlnaHQgY29udGFpbiB0aGluZ3MgbGlrZSBcXGNvbG9yIHdoaWNoXG4gICAgLy8gd2UgY2FuJ3QgZ2V0IHJpZCBvZi5cbiAgICAvLyBUT0RPKGVtaWx5KTogRmluZCBhIGJldHRlciB3YXkgdG8gZ2V0IHRoZSBza2V3XG4gIH1cblxuICB2YXIgYWNjZW50QmVsb3cgPSBncm91cC5sYWJlbCA9PT0gXCJcXFxcY1wiOyAvLyBjYWxjdWxhdGUgdGhlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIHRoZSBib2R5IGFuZCB0aGUgYWNjZW50XG5cbiAgdmFyIGNsZWFyYW5jZSA9IGFjY2VudEJlbG93ID8gYm9keS5oZWlnaHQgKyBib2R5LmRlcHRoIDogTWF0aC5taW4oYm9keS5oZWlnaHQsIG9wdGlvbnMuZm9udE1ldHJpY3MoKS54SGVpZ2h0KTsgLy8gQnVpbGQgdGhlIGFjY2VudFxuXG4gIHZhciBhY2NlbnRCb2R5O1xuXG4gIGlmICghZ3JvdXAuaXNTdHJldGNoeSkge1xuICAgIHZhciBhY2NlbnQ7XG4gICAgdmFyIHdpZHRoO1xuXG4gICAgaWYgKGdyb3VwLmxhYmVsID09PSBcIlxcXFx2ZWNcIikge1xuICAgICAgLy8gQmVmb3JlIHZlcnNpb24gMC45LCBcXHZlYyB1c2VkIHRoZSBjb21iaW5pbmcgZm9udCBnbHlwaCBVKzIwRDcuXG4gICAgICAvLyBCdXQgYnJvd3NlcnMsIGVzcGVjaWFsbHkgU2FmYXJpLCBhcmUgbm90IGNvbnNpc3RlbnQgaW4gaG93IHRoZXlcbiAgICAgIC8vIHJlbmRlciBjb21iaW5pbmcgY2hhcmFjdGVycyB3aGVuIG5vdCBwcmVjZWRlZCBieSBhIGNoYXJhY3Rlci5cbiAgICAgIC8vIFNvIG5vdyB3ZSB1c2UgYW4gU1ZHLlxuICAgICAgLy8gSWYgU2FmYXJpIHJlZm9ybXMsIHdlIHNob3VsZCBjb25zaWRlciByZXZlcnRpbmcgdG8gdGhlIGdseXBoLlxuICAgICAgYWNjZW50ID0gYnVpbGRDb21tb24uc3RhdGljU3ZnKFwidmVjXCIsIG9wdGlvbnMpO1xuICAgICAgd2lkdGggPSBidWlsZENvbW1vbi5zdmdEYXRhLnZlY1sxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjZW50ID0gYnVpbGRDb21tb24ubWFrZU9yZCh7XG4gICAgICAgIG1vZGU6IGdyb3VwLm1vZGUsXG4gICAgICAgIHRleHQ6IGdyb3VwLmxhYmVsXG4gICAgICB9LCBvcHRpb25zLCBcInRleHRvcmRcIik7XG4gICAgICBhY2NlbnQgPSBhc3NlcnRTeW1ib2xEb21Ob2RlKGFjY2VudCk7IC8vIFJlbW92ZSB0aGUgaXRhbGljIGNvcnJlY3Rpb24gb2YgdGhlIGFjY2VudCwgYmVjYXVzZSBpdCBvbmx5IHNlcnZlcyB0b1xuICAgICAgLy8gc2hpZnQgdGhlIGFjY2VudCBvdmVyIHRvIGEgcGxhY2Ugd2UgZG9uJ3Qgd2FudC5cblxuICAgICAgYWNjZW50Lml0YWxpYyA9IDA7XG4gICAgICB3aWR0aCA9IGFjY2VudC53aWR0aDtcblxuICAgICAgaWYgKGFjY2VudEJlbG93KSB7XG4gICAgICAgIGNsZWFyYW5jZSArPSBhY2NlbnQuZGVwdGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYWNjZW50Qm9keSA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcImFjY2VudC1ib2R5XCJdLCBbYWNjZW50XSk7IC8vIFwiRnVsbFwiIGFjY2VudHMgZXhwYW5kIHRoZSB3aWR0aCBvZiB0aGUgcmVzdWx0aW5nIHN5bWJvbCB0byBiZVxuICAgIC8vIGF0IGxlYXN0IHRoZSB3aWR0aCBvZiB0aGUgYWNjZW50LCBhbmQgb3ZlcmxhcCBkaXJlY3RseSBvbnRvIHRoZVxuICAgIC8vIGNoYXJhY3RlciB3aXRob3V0IGFueSB2ZXJ0aWNhbCBvZmZzZXQuXG5cbiAgICB2YXIgYWNjZW50RnVsbCA9IGdyb3VwLmxhYmVsID09PSBcIlxcXFx0ZXh0Y2lyY2xlZFwiO1xuXG4gICAgaWYgKGFjY2VudEZ1bGwpIHtcbiAgICAgIGFjY2VudEJvZHkuY2xhc3Nlcy5wdXNoKCdhY2NlbnQtZnVsbCcpO1xuICAgICAgY2xlYXJhbmNlID0gYm9keS5oZWlnaHQ7XG4gICAgfSAvLyBTaGlmdCB0aGUgYWNjZW50IG92ZXIgYnkgdGhlIHNrZXcuXG5cblxuICAgIHZhciBsZWZ0ID0gc2tldzsgLy8gQ1NTIGRlZmluZXMgYC5rYXRleCAuYWNjZW50IC5hY2NlbnQtYm9keTpub3QoLmFjY2VudC1mdWxsKSB7IHdpZHRoOiAwIH1gXG4gICAgLy8gc28gdGhhdCB0aGUgYWNjZW50IGRvZXNuJ3QgY29udHJpYnV0ZSB0byB0aGUgYm91bmRpbmcgYm94LlxuICAgIC8vIFdlIG5lZWQgdG8gc2hpZnQgdGhlIGNoYXJhY3RlciBieSBpdHMgd2lkdGggKGVmZmVjdGl2ZWx5IGhhbGZcbiAgICAvLyBpdHMgd2lkdGgpIHRvIGNvbXBlbnNhdGUuXG5cbiAgICBpZiAoIWFjY2VudEZ1bGwpIHtcbiAgICAgIGxlZnQgLT0gd2lkdGggLyAyO1xuICAgIH1cblxuICAgIGFjY2VudEJvZHkuc3R5bGUubGVmdCA9IG1ha2VFbShsZWZ0KTsgLy8gXFx0ZXh0Y2lyY2xlZCB1c2VzIHRoZSBcXGJpZ2NpcmMgZ2x5cGgsIHNvIGl0IG5lZWRzIHNvbWVcbiAgICAvLyB2ZXJ0aWNhbCBhZGp1c3RtZW50IHRvIG1hdGNoIExhVGVYLlxuXG4gICAgaWYgKGdyb3VwLmxhYmVsID09PSBcIlxcXFx0ZXh0Y2lyY2xlZFwiKSB7XG4gICAgICBhY2NlbnRCb2R5LnN0eWxlLnRvcCA9IFwiLjJlbVwiO1xuICAgIH1cblxuICAgIGFjY2VudEJvZHkgPSBidWlsZENvbW1vbi5tYWtlVkxpc3Qoe1xuICAgICAgcG9zaXRpb25UeXBlOiBcImZpcnN0QmFzZWxpbmVcIixcbiAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgZWxlbTogYm9keVxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogLWNsZWFyYW5jZVxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgZWxlbTogYWNjZW50Qm9keVxuICAgICAgfV1cbiAgICB9LCBvcHRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICBhY2NlbnRCb2R5ID0gc3RyZXRjaHkuc3ZnU3Bhbihncm91cCwgb3B0aW9ucyk7XG4gICAgYWNjZW50Qm9keSA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwiZmlyc3RCYXNlbGluZVwiLFxuICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBib2R5XG4gICAgICB9LCB7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBhY2NlbnRCb2R5LFxuICAgICAgICB3cmFwcGVyQ2xhc3NlczogW1wic3ZnLWFsaWduXCJdLFxuICAgICAgICB3cmFwcGVyU3R5bGU6IHNrZXcgPiAwID8ge1xuICAgICAgICAgIHdpZHRoOiBcImNhbGMoMTAwJSAtIFwiICsgbWFrZUVtKDIgKiBza2V3KSArIFwiKVwiLFxuICAgICAgICAgIG1hcmdpbkxlZnQ6IG1ha2VFbSgyICogc2tldylcbiAgICAgICAgfSA6IHVuZGVmaW5lZFxuICAgICAgfV1cbiAgICB9LCBvcHRpb25zKTtcbiAgfVxuXG4gIHZhciBhY2NlbnRXcmFwID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibW9yZFwiLCBcImFjY2VudFwiXSwgW2FjY2VudEJvZHldLCBvcHRpb25zKTtcblxuICBpZiAoc3VwU3ViR3JvdXApIHtcbiAgICAvLyBIZXJlLCB3ZSByZXBsYWNlIHRoZSBcImJhc2VcIiBjaGlsZCBvZiB0aGUgc3Vwc3ViIHdpdGggb3VyIG5ld2x5XG4gICAgLy8gZ2VuZXJhdGVkIGFjY2VudC5cbiAgICBzdXBTdWJHcm91cC5jaGlsZHJlblswXSA9IGFjY2VudFdyYXA7IC8vIFNpbmNlIHdlIGRvbid0IHJlcnVuIHRoZSBoZWlnaHQgY2FsY3VsYXRpb24gYWZ0ZXIgcmVwbGFjaW5nIHRoZVxuICAgIC8vIGFjY2VudCwgd2UgbWFudWFsbHkgcmVjYWxjdWxhdGUgaGVpZ2h0LlxuXG4gICAgc3VwU3ViR3JvdXAuaGVpZ2h0ID0gTWF0aC5tYXgoYWNjZW50V3JhcC5oZWlnaHQsIHN1cFN1Ykdyb3VwLmhlaWdodCk7IC8vIEFjY2VudHMgc2hvdWxkIGFsd2F5cyBiZSBvcmRzLCBldmVuIHdoZW4gdGhlaXIgaW5uYXJkcyBhcmUgbm90LlxuXG4gICAgc3VwU3ViR3JvdXAuY2xhc3Nlc1swXSA9IFwibW9yZFwiO1xuICAgIHJldHVybiBzdXBTdWJHcm91cDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYWNjZW50V3JhcDtcbiAgfVxufTtcblxudmFyIG1hdGhtbEJ1aWxkZXIkOSA9IChncm91cCwgb3B0aW9ucykgPT4ge1xuICB2YXIgYWNjZW50Tm9kZSA9IGdyb3VwLmlzU3RyZXRjaHkgPyBzdHJldGNoeS5tYXRoTUxub2RlKGdyb3VwLmxhYmVsKSA6IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibW9cIiwgW21ha2VUZXh0KGdyb3VwLmxhYmVsLCBncm91cC5tb2RlKV0pO1xuICB2YXIgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibW92ZXJcIiwgW2J1aWxkR3JvdXAoZ3JvdXAuYmFzZSwgb3B0aW9ucyksIGFjY2VudE5vZGVdKTtcbiAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJhY2NlbnRcIiwgXCJ0cnVlXCIpO1xuICByZXR1cm4gbm9kZTtcbn07XG5cbnZhciBOT05fU1RSRVRDSFlfQUNDRU5UX1JFR0VYID0gbmV3IFJlZ0V4cChbXCJcXFxcYWN1dGVcIiwgXCJcXFxcZ3JhdmVcIiwgXCJcXFxcZGRvdFwiLCBcIlxcXFx0aWxkZVwiLCBcIlxcXFxiYXJcIiwgXCJcXFxcYnJldmVcIiwgXCJcXFxcY2hlY2tcIiwgXCJcXFxcaGF0XCIsIFwiXFxcXHZlY1wiLCBcIlxcXFxkb3RcIiwgXCJcXFxcbWF0aHJpbmdcIl0ubWFwKGFjY2VudCA9PiBcIlxcXFxcIiArIGFjY2VudCkuam9pbihcInxcIikpOyAvLyBBY2NlbnRzXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJhY2NlbnRcIixcbiAgbmFtZXM6IFtcIlxcXFxhY3V0ZVwiLCBcIlxcXFxncmF2ZVwiLCBcIlxcXFxkZG90XCIsIFwiXFxcXHRpbGRlXCIsIFwiXFxcXGJhclwiLCBcIlxcXFxicmV2ZVwiLCBcIlxcXFxjaGVja1wiLCBcIlxcXFxoYXRcIiwgXCJcXFxcdmVjXCIsIFwiXFxcXGRvdFwiLCBcIlxcXFxtYXRocmluZ1wiLCBcIlxcXFx3aWRlY2hlY2tcIiwgXCJcXFxcd2lkZWhhdFwiLCBcIlxcXFx3aWRldGlsZGVcIiwgXCJcXFxcb3ZlcnJpZ2h0YXJyb3dcIiwgXCJcXFxcb3ZlcmxlZnRhcnJvd1wiLCBcIlxcXFxPdmVycmlnaHRhcnJvd1wiLCBcIlxcXFxvdmVybGVmdHJpZ2h0YXJyb3dcIiwgXCJcXFxcb3Zlcmdyb3VwXCIsIFwiXFxcXG92ZXJsaW5lc2VnbWVudFwiLCBcIlxcXFxvdmVybGVmdGhhcnBvb25cIiwgXCJcXFxcb3ZlcnJpZ2h0aGFycG9vblwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxXG4gIH0sXG4gIGhhbmRsZXI6IChjb250ZXh0LCBhcmdzKSA9PiB7XG4gICAgdmFyIGJhc2UgPSBub3JtYWxpemVBcmd1bWVudChhcmdzWzBdKTtcbiAgICB2YXIgaXNTdHJldGNoeSA9ICFOT05fU1RSRVRDSFlfQUNDRU5UX1JFR0VYLnRlc3QoY29udGV4dC5mdW5jTmFtZSk7XG4gICAgdmFyIGlzU2hpZnR5ID0gIWlzU3RyZXRjaHkgfHwgY29udGV4dC5mdW5jTmFtZSA9PT0gXCJcXFxcd2lkZWhhdFwiIHx8IGNvbnRleHQuZnVuY05hbWUgPT09IFwiXFxcXHdpZGV0aWxkZVwiIHx8IGNvbnRleHQuZnVuY05hbWUgPT09IFwiXFxcXHdpZGVjaGVja1wiO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImFjY2VudFwiLFxuICAgICAgbW9kZTogY29udGV4dC5wYXJzZXIubW9kZSxcbiAgICAgIGxhYmVsOiBjb250ZXh0LmZ1bmNOYW1lLFxuICAgICAgaXNTdHJldGNoeTogaXNTdHJldGNoeSxcbiAgICAgIGlzU2hpZnR5OiBpc1NoaWZ0eSxcbiAgICAgIGJhc2U6IGJhc2VcbiAgICB9O1xuICB9LFxuICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIkYSxcbiAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlciQ5XG59KTsgLy8gVGV4dC1tb2RlIGFjY2VudHNcblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImFjY2VudFwiLFxuICBuYW1lczogW1wiXFxcXCdcIiwgXCJcXFxcYFwiLCBcIlxcXFxeXCIsIFwiXFxcXH5cIiwgXCJcXFxcPVwiLCBcIlxcXFx1XCIsIFwiXFxcXC5cIiwgJ1xcXFxcIicsIFwiXFxcXGNcIiwgXCJcXFxcclwiLCBcIlxcXFxIXCIsIFwiXFxcXHZcIiwgXCJcXFxcdGV4dGNpcmNsZWRcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlLFxuICAgIGFsbG93ZWRJbk1hdGg6IHRydWUsXG4gICAgLy8gdW5sZXNzIGluIHN0cmljdCBtb2RlXG4gICAgYXJnVHlwZXM6IFtcInByaW1pdGl2ZVwiXVxuICB9LFxuICBoYW5kbGVyOiAoY29udGV4dCwgYXJncykgPT4ge1xuICAgIHZhciBiYXNlID0gYXJnc1swXTtcbiAgICB2YXIgbW9kZSA9IGNvbnRleHQucGFyc2VyLm1vZGU7XG5cbiAgICBpZiAobW9kZSA9PT0gXCJtYXRoXCIpIHtcbiAgICAgIGNvbnRleHQucGFyc2VyLnNldHRpbmdzLnJlcG9ydE5vbnN0cmljdChcIm1hdGhWc1RleHRBY2NlbnRzXCIsIFwiTGFUZVgncyBhY2NlbnQgXCIgKyBjb250ZXh0LmZ1bmNOYW1lICsgXCIgd29ya3Mgb25seSBpbiB0ZXh0IG1vZGVcIik7XG4gICAgICBtb2RlID0gXCJ0ZXh0XCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiYWNjZW50XCIsXG4gICAgICBtb2RlOiBtb2RlLFxuICAgICAgbGFiZWw6IGNvbnRleHQuZnVuY05hbWUsXG4gICAgICBpc1N0cmV0Y2h5OiBmYWxzZSxcbiAgICAgIGlzU2hpZnR5OiB0cnVlLFxuICAgICAgYmFzZTogYmFzZVxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciRhLFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDlcbn0pO1xuXG4vLyBIb3Jpem9udGFsIG92ZXJsYXAgZnVuY3Rpb25zXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiYWNjZW50VW5kZXJcIixcbiAgbmFtZXM6IFtcIlxcXFx1bmRlcmxlZnRhcnJvd1wiLCBcIlxcXFx1bmRlcnJpZ2h0YXJyb3dcIiwgXCJcXFxcdW5kZXJsZWZ0cmlnaHRhcnJvd1wiLCBcIlxcXFx1bmRlcmdyb3VwXCIsIFwiXFxcXHVuZGVybGluZXNlZ21lbnRcIiwgXCJcXFxcdXRpbGRlXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDFcbiAgfSxcbiAgaGFuZGxlcjogKF9yZWYsIGFyZ3MpID0+IHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyLFxuICAgICAgZnVuY05hbWVcbiAgICB9ID0gX3JlZjtcbiAgICB2YXIgYmFzZSA9IGFyZ3NbMF07XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiYWNjZW50VW5kZXJcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgbGFiZWw6IGZ1bmNOYW1lLFxuICAgICAgYmFzZTogYmFzZVxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICAvLyBUcmVhdCB1bmRlciBhY2NlbnRzIG11Y2ggbGlrZSB1bmRlcmxpbmVzLlxuICAgIHZhciBpbm5lckdyb3VwID0gYnVpbGRHcm91cCQxKGdyb3VwLmJhc2UsIG9wdGlvbnMpO1xuICAgIHZhciBhY2NlbnRCb2R5ID0gc3RyZXRjaHkuc3ZnU3Bhbihncm91cCwgb3B0aW9ucyk7XG4gICAgdmFyIGtlcm4gPSBncm91cC5sYWJlbCA9PT0gXCJcXFxcdXRpbGRlXCIgPyAwLjEyIDogMDsgLy8gR2VuZXJhdGUgdGhlIHZsaXN0LCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBrZXJuc1xuXG4gICAgdmFyIHZsaXN0ID0gYnVpbGRDb21tb24ubWFrZVZMaXN0KHtcbiAgICAgIHBvc2l0aW9uVHlwZTogXCJ0b3BcIixcbiAgICAgIHBvc2l0aW9uRGF0YTogaW5uZXJHcm91cC5oZWlnaHQsXG4gICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGFjY2VudEJvZHksXG4gICAgICAgIHdyYXBwZXJDbGFzc2VzOiBbXCJzdmctYWxpZ25cIl1cbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJrZXJuXCIsXG4gICAgICAgIHNpemU6IGtlcm5cbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGlubmVyR3JvdXBcbiAgICAgIH1dXG4gICAgfSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJhY2NlbnR1bmRlclwiXSwgW3ZsaXN0XSwgb3B0aW9ucyk7XG4gIH0sXG4gIG1hdGhtbEJ1aWxkZXI6IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAgIHZhciBhY2NlbnROb2RlID0gc3RyZXRjaHkubWF0aE1Mbm9kZShncm91cC5sYWJlbCk7XG4gICAgdmFyIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm11bmRlclwiLCBbYnVpbGRHcm91cChncm91cC5iYXNlLCBvcHRpb25zKSwgYWNjZW50Tm9kZV0pO1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKFwiYWNjZW50dW5kZXJcIiwgXCJ0cnVlXCIpO1xuICAgIHJldHVybiBub2RlO1xuICB9XG59KTtcblxuLy8gSGVscGVyIGZ1bmN0aW9uXG52YXIgcGFkZGVkTm9kZSA9IGdyb3VwID0+IHtcbiAgdmFyIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1wYWRkZWRcIiwgZ3JvdXAgPyBbZ3JvdXBdIDogW10pO1xuICBub2RlLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIFwiKzAuNmVtXCIpO1xuICBub2RlLnNldEF0dHJpYnV0ZShcImxzcGFjZVwiLCBcIjAuM2VtXCIpO1xuICByZXR1cm4gbm9kZTtcbn07IC8vIFN0cmV0Y2h5IGFycm93cyB3aXRoIGFuIG9wdGlvbmFsIGFyZ3VtZW50XG5cblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcInhBcnJvd1wiLFxuICBuYW1lczogW1wiXFxcXHhsZWZ0YXJyb3dcIiwgXCJcXFxceHJpZ2h0YXJyb3dcIiwgXCJcXFxceExlZnRhcnJvd1wiLCBcIlxcXFx4UmlnaHRhcnJvd1wiLCBcIlxcXFx4bGVmdHJpZ2h0YXJyb3dcIiwgXCJcXFxceExlZnRyaWdodGFycm93XCIsIFwiXFxcXHhob29rbGVmdGFycm93XCIsIFwiXFxcXHhob29rcmlnaHRhcnJvd1wiLCBcIlxcXFx4bWFwc3RvXCIsIFwiXFxcXHhyaWdodGhhcnBvb25kb3duXCIsIFwiXFxcXHhyaWdodGhhcnBvb251cFwiLCBcIlxcXFx4bGVmdGhhcnBvb25kb3duXCIsIFwiXFxcXHhsZWZ0aGFycG9vbnVwXCIsIFwiXFxcXHhyaWdodGxlZnRoYXJwb29uc1wiLCBcIlxcXFx4bGVmdHJpZ2h0aGFycG9vbnNcIiwgXCJcXFxceGxvbmdlcXVhbFwiLCBcIlxcXFx4dHdvaGVhZHJpZ2h0YXJyb3dcIiwgXCJcXFxceHR3b2hlYWRsZWZ0YXJyb3dcIiwgXCJcXFxceHRvZnJvbVwiLCAvLyBUaGUgbmV4dCAzIGZ1bmN0aW9ucyBhcmUgaGVyZSB0byBzdXBwb3J0IHRoZSBtaGNoZW0gZXh0ZW5zaW9uLlxuICAvLyBEaXJlY3QgdXNlIG9mIHRoZXNlIGZ1bmN0aW9ucyBpcyBkaXNjb3VyYWdlZCBhbmQgbWF5IGJyZWFrIHNvbWVkYXkuXG4gIFwiXFxcXHhyaWdodGxlZnRhcnJvd3NcIiwgXCJcXFxceHJpZ2h0ZXF1aWxpYnJpdW1cIiwgXCJcXFxceGxlZnRlcXVpbGlicml1bVwiLCAvLyBUaGUgbmV4dCAzIGZ1bmN0aW9ucyBhcmUgaGVyZSBvbmx5IHRvIHN1cHBvcnQgdGhlIHtDRH0gZW52aXJvbm1lbnQuXG4gIFwiXFxcXFxcXFxjZHJpZ2h0YXJyb3dcIiwgXCJcXFxcXFxcXGNkbGVmdGFycm93XCIsIFwiXFxcXFxcXFxjZGxvbmdlcXVhbFwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIG51bU9wdGlvbmFsQXJnczogMVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZiwgYXJncywgb3B0QXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcInhBcnJvd1wiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBsYWJlbDogZnVuY05hbWUsXG4gICAgICBib2R5OiBhcmdzWzBdLFxuICAgICAgYmVsb3c6IG9wdEFyZ3NbMF1cbiAgICB9O1xuICB9LFxuXG4gIC8vIEZsb3cgaXMgdW5hYmxlIHRvIGNvcnJlY3RseSBpbmZlciB0aGUgdHlwZSBvZiBgZ3JvdXBgLCBldmVuIHRob3VnaCBpdCdzXG4gIC8vIHVuYW1iaWd1b3VzbHkgZGV0ZXJtaW5lZCBmcm9tIHRoZSBwYXNzZWQtaW4gYHR5cGVgIGFib3ZlLlxuICBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBzdHlsZSA9IG9wdGlvbnMuc3R5bGU7IC8vIEJ1aWxkIHRoZSBhcmd1bWVudCBncm91cHMgaW4gdGhlIGFwcHJvcHJpYXRlIHN0eWxlLlxuICAgIC8vIFJlZjogYW1zbWF0aC5kdHg6ICAgXFxoYm94eyRcXHNjcmlwdHN0eWxlXFxta2VybiMzbXV7IzZ9XFxta2VybiM0bXUkfSVcbiAgICAvLyBTb21lIGdyb3VwcyBjYW4gcmV0dXJuIGRvY3VtZW50IGZyYWdtZW50cy4gIEhhbmRsZSB0aG9zZSBieSB3cmFwcGluZ1xuICAgIC8vIHRoZW0gaW4gYSBzcGFuLlxuXG4gICAgdmFyIG5ld09wdGlvbnMgPSBvcHRpb25zLmhhdmluZ1N0eWxlKHN0eWxlLnN1cCgpKTtcbiAgICB2YXIgdXBwZXJHcm91cCA9IGJ1aWxkQ29tbW9uLndyYXBGcmFnbWVudChidWlsZEdyb3VwJDEoZ3JvdXAuYm9keSwgbmV3T3B0aW9ucywgb3B0aW9ucyksIG9wdGlvbnMpO1xuICAgIHZhciBhcnJvd1ByZWZpeCA9IGdyb3VwLmxhYmVsLnNsaWNlKDAsIDIpID09PSBcIlxcXFx4XCIgPyBcInhcIiA6IFwiY2RcIjtcbiAgICB1cHBlckdyb3VwLmNsYXNzZXMucHVzaChhcnJvd1ByZWZpeCArIFwiLWFycm93LXBhZFwiKTtcbiAgICB2YXIgbG93ZXJHcm91cDtcblxuICAgIGlmIChncm91cC5iZWxvdykge1xuICAgICAgLy8gQnVpbGQgdGhlIGxvd2VyIGdyb3VwXG4gICAgICBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShzdHlsZS5zdWIoKSk7XG4gICAgICBsb3dlckdyb3VwID0gYnVpbGRDb21tb24ud3JhcEZyYWdtZW50KGJ1aWxkR3JvdXAkMShncm91cC5iZWxvdywgbmV3T3B0aW9ucywgb3B0aW9ucyksIG9wdGlvbnMpO1xuICAgICAgbG93ZXJHcm91cC5jbGFzc2VzLnB1c2goYXJyb3dQcmVmaXggKyBcIi1hcnJvdy1wYWRcIik7XG4gICAgfVxuXG4gICAgdmFyIGFycm93Qm9keSA9IHN0cmV0Y2h5LnN2Z1NwYW4oZ3JvdXAsIG9wdGlvbnMpOyAvLyBSZSBzaGlmdDogTm90ZSB0aGF0IHN0cmV0Y2h5LnN2Z1NwYW4gcmV0dXJuZWQgYXJyb3dCb2R5LmRlcHRoID0gMC5cbiAgICAvLyBUaGUgcG9pbnQgd2Ugd2FudCBvbiB0aGUgbWF0aCBheGlzIGlzIGF0IDAuNSAqIGFycm93Qm9keS5oZWlnaHQuXG5cbiAgICB2YXIgYXJyb3dTaGlmdCA9IC1vcHRpb25zLmZvbnRNZXRyaWNzKCkuYXhpc0hlaWdodCArIDAuNSAqIGFycm93Qm9keS5oZWlnaHQ7IC8vIDIgbXUga2Vybi4gUmVmOiBhbXNtYXRoLmR0eDogIzdcXGlmMCMyXFxlbHNlXFxta2VybiMybXVcXGZpXG5cbiAgICB2YXIgdXBwZXJTaGlmdCA9IC1vcHRpb25zLmZvbnRNZXRyaWNzKCkuYXhpc0hlaWdodCAtIDAuNSAqIGFycm93Qm9keS5oZWlnaHQgLSAwLjExMTsgLy8gMC4xMTEgZW0gPSAyIG11XG5cbiAgICBpZiAodXBwZXJHcm91cC5kZXB0aCA+IDAuMjUgfHwgZ3JvdXAubGFiZWwgPT09IFwiXFxcXHhsZWZ0ZXF1aWxpYnJpdW1cIikge1xuICAgICAgdXBwZXJTaGlmdCAtPSB1cHBlckdyb3VwLmRlcHRoOyAvLyBzaGlmdCB1cCBpZiBkZXB0aCBlbmNyb2FjaGVzXG4gICAgfSAvLyBHZW5lcmF0ZSB0aGUgdmxpc3RcblxuXG4gICAgdmFyIHZsaXN0O1xuXG4gICAgaWYgKGxvd2VyR3JvdXApIHtcbiAgICAgIHZhciBsb3dlclNoaWZ0ID0gLW9wdGlvbnMuZm9udE1ldHJpY3MoKS5heGlzSGVpZ2h0ICsgbG93ZXJHcm91cC5oZWlnaHQgKyAwLjUgKiBhcnJvd0JvZHkuaGVpZ2h0ICsgMC4xMTE7XG4gICAgICB2bGlzdCA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICAgIHBvc2l0aW9uVHlwZTogXCJpbmRpdmlkdWFsU2hpZnRcIixcbiAgICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgICAgZWxlbTogdXBwZXJHcm91cCxcbiAgICAgICAgICBzaGlmdDogdXBwZXJTaGlmdFxuICAgICAgICB9LCB7XG4gICAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgICAgZWxlbTogYXJyb3dCb2R5LFxuICAgICAgICAgIHNoaWZ0OiBhcnJvd1NoaWZ0XG4gICAgICAgIH0sIHtcbiAgICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgICBlbGVtOiBsb3dlckdyb3VwLFxuICAgICAgICAgIHNoaWZ0OiBsb3dlclNoaWZ0XG4gICAgICAgIH1dXG4gICAgICB9LCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmxpc3QgPSBidWlsZENvbW1vbi5tYWtlVkxpc3Qoe1xuICAgICAgICBwb3NpdGlvblR5cGU6IFwiaW5kaXZpZHVhbFNoaWZ0XCIsXG4gICAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICAgIGVsZW06IHVwcGVyR3JvdXAsXG4gICAgICAgICAgc2hpZnQ6IHVwcGVyU2hpZnRcbiAgICAgICAgfSwge1xuICAgICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICAgIGVsZW06IGFycm93Qm9keSxcbiAgICAgICAgICBzaGlmdDogYXJyb3dTaGlmdFxuICAgICAgICB9XVxuICAgICAgfSwgb3B0aW9ucyk7XG4gICAgfSAvLyAkRmxvd0ZpeE1lOiBSZXBsYWNlIHRoaXMgd2l0aCBwYXNzaW5nIFwic3ZnLWFsaWduXCIgaW50byBtYWtlVkxpc3QuXG5cblxuICAgIHZsaXN0LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNsYXNzZXMucHVzaChcInN2Zy1hbGlnblwiKTtcbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibXJlbFwiLCBcIngtYXJyb3dcIl0sIFt2bGlzdF0sIG9wdGlvbnMpO1xuICB9LFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgYXJyb3dOb2RlID0gc3RyZXRjaHkubWF0aE1Mbm9kZShncm91cC5sYWJlbCk7XG4gICAgYXJyb3dOb2RlLnNldEF0dHJpYnV0ZShcIm1pbnNpemVcIiwgZ3JvdXAubGFiZWwuY2hhckF0KDApID09PSBcInhcIiA/IFwiMS43NWVtXCIgOiBcIjMuMGVtXCIpO1xuICAgIHZhciBub2RlO1xuXG4gICAgaWYgKGdyb3VwLmJvZHkpIHtcbiAgICAgIHZhciB1cHBlck5vZGUgPSBwYWRkZWROb2RlKGJ1aWxkR3JvdXAoZ3JvdXAuYm9keSwgb3B0aW9ucykpO1xuXG4gICAgICBpZiAoZ3JvdXAuYmVsb3cpIHtcbiAgICAgICAgdmFyIGxvd2VyTm9kZSA9IHBhZGRlZE5vZGUoYnVpbGRHcm91cChncm91cC5iZWxvdywgb3B0aW9ucykpO1xuICAgICAgICBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtdW5kZXJvdmVyXCIsIFthcnJvd05vZGUsIGxvd2VyTm9kZSwgdXBwZXJOb2RlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtb3ZlclwiLCBbYXJyb3dOb2RlLCB1cHBlck5vZGVdKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGdyb3VwLmJlbG93KSB7XG4gICAgICB2YXIgX2xvd2VyTm9kZSA9IHBhZGRlZE5vZGUoYnVpbGRHcm91cChncm91cC5iZWxvdywgb3B0aW9ucykpO1xuXG4gICAgICBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtdW5kZXJcIiwgW2Fycm93Tm9kZSwgX2xvd2VyTm9kZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uXG4gICAgICAvLyBQYXJzZXIuanMgdGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIG5vIGFyZ3VtZW50LlxuICAgICAgbm9kZSA9IHBhZGRlZE5vZGUoKTtcbiAgICAgIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1vdmVyXCIsIFthcnJvd05vZGUsIG5vZGVdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG59KTtcblxudmFyIG1ha2VTcGFuID0gYnVpbGRDb21tb24ubWFrZVNwYW47XG5cbmZ1bmN0aW9uIGh0bWxCdWlsZGVyJDkoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgdmFyIGVsZW1lbnRzID0gYnVpbGRFeHByZXNzaW9uJDEoZ3JvdXAuYm9keSwgb3B0aW9ucywgdHJ1ZSk7XG4gIHJldHVybiBtYWtlU3BhbihbZ3JvdXAubWNsYXNzXSwgZWxlbWVudHMsIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBtYXRobWxCdWlsZGVyJDgoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgdmFyIG5vZGU7XG4gIHZhciBpbm5lciA9IGJ1aWxkRXhwcmVzc2lvbihncm91cC5ib2R5LCBvcHRpb25zKTtcblxuICBpZiAoZ3JvdXAubWNsYXNzID09PSBcIm1pbm5lclwiKSB7XG4gICAgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXBhZGRlZFwiLCBpbm5lcik7XG4gIH0gZWxzZSBpZiAoZ3JvdXAubWNsYXNzID09PSBcIm1vcmRcIikge1xuICAgIGlmIChncm91cC5pc0NoYXJhY3RlckJveCkge1xuICAgICAgbm9kZSA9IGlubmVyWzBdO1xuICAgICAgbm9kZS50eXBlID0gXCJtaVwiO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtaVwiLCBpbm5lcik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChncm91cC5pc0NoYXJhY3RlckJveCkge1xuICAgICAgbm9kZSA9IGlubmVyWzBdO1xuICAgICAgbm9kZS50eXBlID0gXCJtb1wiO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtb1wiLCBpbm5lcik7XG4gICAgfSAvLyBTZXQgc3BhY2luZyBiYXNlZCBvbiB3aGF0IGlzIHRoZSBtb3N0IGxpa2VseSBhZGphY2VudCBhdG9tIHR5cGUuXG4gICAgLy8gU2VlIFRlWGJvb2sgcDE3MC5cblxuXG4gICAgaWYgKGdyb3VwLm1jbGFzcyA9PT0gXCJtYmluXCIpIHtcbiAgICAgIG5vZGUuYXR0cmlidXRlcy5sc3BhY2UgPSBcIjAuMjJlbVwiOyAvLyBtZWRpdW0gc3BhY2VcblxuICAgICAgbm9kZS5hdHRyaWJ1dGVzLnJzcGFjZSA9IFwiMC4yMmVtXCI7XG4gICAgfSBlbHNlIGlmIChncm91cC5tY2xhc3MgPT09IFwibXB1bmN0XCIpIHtcbiAgICAgIG5vZGUuYXR0cmlidXRlcy5sc3BhY2UgPSBcIjBlbVwiO1xuICAgICAgbm9kZS5hdHRyaWJ1dGVzLnJzcGFjZSA9IFwiMC4xN2VtXCI7IC8vIHRoaW5zcGFjZVxuICAgIH0gZWxzZSBpZiAoZ3JvdXAubWNsYXNzID09PSBcIm1vcGVuXCIgfHwgZ3JvdXAubWNsYXNzID09PSBcIm1jbG9zZVwiKSB7XG4gICAgICBub2RlLmF0dHJpYnV0ZXMubHNwYWNlID0gXCIwZW1cIjtcbiAgICAgIG5vZGUuYXR0cmlidXRlcy5yc3BhY2UgPSBcIjBlbVwiO1xuICAgIH0gZWxzZSBpZiAoZ3JvdXAubWNsYXNzID09PSBcIm1pbm5lclwiKSB7XG4gICAgICBub2RlLmF0dHJpYnV0ZXMubHNwYWNlID0gXCIwLjA1NTZlbVwiOyAvLyAxIG11IGlzIHRoZSBtb3N0IGxpa2VseSBvcHRpb25cblxuICAgICAgbm9kZS5hdHRyaWJ1dGVzLndpZHRoID0gXCIrMC4xMTExZW1cIjtcbiAgICB9IC8vIE1hdGhNTCA8bW8+IGRlZmF1bHQgc3BhY2UgaXMgNS8xOCBlbSwgc28gPG1yZWw+IG5lZWRzIG5vIGFjdGlvbi5cbiAgICAvLyBSZWY6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL01hdGhNTC9FbGVtZW50L21vXG5cbiAgfVxuXG4gIHJldHVybiBub2RlO1xufSAvLyBNYXRoIGNsYXNzIGNvbW1hbmRzIGV4Y2VwdCBcXG1hdGhvcFxuXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJtY2xhc3NcIixcbiAgbmFtZXM6IFtcIlxcXFxtYXRob3JkXCIsIFwiXFxcXG1hdGhiaW5cIiwgXCJcXFxcbWF0aHJlbFwiLCBcIlxcXFxtYXRob3BlblwiLCBcIlxcXFxtYXRoY2xvc2VcIiwgXCJcXFxcbWF0aHB1bmN0XCIsIFwiXFxcXG1hdGhpbm5lclwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIHByaW1pdGl2ZTogdHJ1ZVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZiwgYXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJtY2xhc3NcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgbWNsYXNzOiBcIm1cIiArIGZ1bmNOYW1lLnNsaWNlKDUpLFxuICAgICAgLy8gVE9ETyhrZXZpbmIpOiBkb24ndCBwcmVmaXggd2l0aCAnbSdcbiAgICAgIGJvZHk6IG9yZGFyZ3VtZW50KGJvZHkpLFxuICAgICAgaXNDaGFyYWN0ZXJCb3g6IHV0aWxzLmlzQ2hhcmFjdGVyQm94KGJvZHkpXG4gICAgfTtcbiAgfSxcblxuICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIkOSxcbiAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlciQ4XG59KTtcbnZhciBiaW5yZWxDbGFzcyA9IGFyZyA9PiB7XG4gIC8vIFxcYmlucmVsQCBzcGFjaW5nIHZhcmllcyB3aXRoIChiaW58cmVsfG9yZCkgb2YgdGhlIGF0b20gaW4gdGhlIGFyZ3VtZW50LlxuICAvLyAoYnkgcmVuZGVyaW5nIHNlcGFyYXRlbHkgYW5kIHdpdGgge31zIGJlZm9yZSBhbmQgYWZ0ZXIsIGFuZCBtZWFzdXJpbmdcbiAgLy8gdGhlIGNoYW5nZSBpbiBzcGFjaW5nKS4gIFdlJ2xsIGRvIHJvdWdobHkgdGhlIHNhbWUgYnkgZGV0ZWN0aW5nIHRoZVxuICAvLyBhdG9tIHR5cGUgZGlyZWN0bHkuXG4gIHZhciBhdG9tID0gYXJnLnR5cGUgPT09IFwib3JkZ3JvdXBcIiAmJiBhcmcuYm9keS5sZW5ndGggPyBhcmcuYm9keVswXSA6IGFyZztcblxuICBpZiAoYXRvbS50eXBlID09PSBcImF0b21cIiAmJiAoYXRvbS5mYW1pbHkgPT09IFwiYmluXCIgfHwgYXRvbS5mYW1pbHkgPT09IFwicmVsXCIpKSB7XG4gICAgcmV0dXJuIFwibVwiICsgYXRvbS5mYW1pbHk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFwibW9yZFwiO1xuICB9XG59OyAvLyBcXEBiaW5yZWx7eH17eX0gcmVuZGVycyBsaWtlIHkgYnV0IGFzIG1iaW4vbXJlbC9tb3JkIGlmIHggaXMgbWJpbi9tcmVsL21vcmQuXG4vLyBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gXFxiaW5yZWxAe3h9XFxiaW5yZWxAQHt5fSBpbiBBTVNUZVguXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJtY2xhc3NcIixcbiAgbmFtZXM6IFtcIlxcXFxAYmlucmVsXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDJcbiAgfSxcblxuICBoYW5kbGVyKF9yZWYyLCBhcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmMjtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJtY2xhc3NcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgbWNsYXNzOiBiaW5yZWxDbGFzcyhhcmdzWzBdKSxcbiAgICAgIGJvZHk6IG9yZGFyZ3VtZW50KGFyZ3NbMV0pLFxuICAgICAgaXNDaGFyYWN0ZXJCb3g6IHV0aWxzLmlzQ2hhcmFjdGVyQm94KGFyZ3NbMV0pXG4gICAgfTtcbiAgfVxuXG59KTsgLy8gQnVpbGQgYSByZWxhdGlvbiBvciBzdGFja2VkIG9wIGJ5IHBsYWNpbmcgb25lIHN5bWJvbCBvbiB0b3Agb2YgYW5vdGhlclxuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwibWNsYXNzXCIsXG4gIG5hbWVzOiBbXCJcXFxcc3RhY2tyZWxcIiwgXCJcXFxcb3ZlcnNldFwiLCBcIlxcXFx1bmRlcnNldFwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAyXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmMywgYXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmMztcbiAgICB2YXIgYmFzZUFyZyA9IGFyZ3NbMV07XG4gICAgdmFyIHNoaWZ0ZWRBcmcgPSBhcmdzWzBdO1xuICAgIHZhciBtY2xhc3M7XG5cbiAgICBpZiAoZnVuY05hbWUgIT09IFwiXFxcXHN0YWNrcmVsXCIpIHtcbiAgICAgIC8vIExhVGVYIGFwcGxpZXMgXFxiaW5yZWwgc3BhY2luZyB0byBcXG92ZXJzZXQgYW5kIFxcdW5kZXJzZXQuXG4gICAgICBtY2xhc3MgPSBiaW5yZWxDbGFzcyhiYXNlQXJnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWNsYXNzID0gXCJtcmVsXCI7IC8vIGZvciBcXHN0YWNrcmVsXG4gICAgfVxuXG4gICAgdmFyIGJhc2VPcCA9IHtcbiAgICAgIHR5cGU6IFwib3BcIixcbiAgICAgIG1vZGU6IGJhc2VBcmcubW9kZSxcbiAgICAgIGxpbWl0czogdHJ1ZSxcbiAgICAgIGFsd2F5c0hhbmRsZVN1cFN1YjogdHJ1ZSxcbiAgICAgIHBhcmVudElzU3VwU3ViOiBmYWxzZSxcbiAgICAgIHN5bWJvbDogZmFsc2UsXG4gICAgICBzdXBwcmVzc0Jhc2VTaGlmdDogZnVuY05hbWUgIT09IFwiXFxcXHN0YWNrcmVsXCIsXG4gICAgICBib2R5OiBvcmRhcmd1bWVudChiYXNlQXJnKVxuICAgIH07XG4gICAgdmFyIHN1cHN1YiA9IHtcbiAgICAgIHR5cGU6IFwic3Vwc3ViXCIsXG4gICAgICBtb2RlOiBzaGlmdGVkQXJnLm1vZGUsXG4gICAgICBiYXNlOiBiYXNlT3AsXG4gICAgICBzdXA6IGZ1bmNOYW1lID09PSBcIlxcXFx1bmRlcnNldFwiID8gbnVsbCA6IHNoaWZ0ZWRBcmcsXG4gICAgICBzdWI6IGZ1bmNOYW1lID09PSBcIlxcXFx1bmRlcnNldFwiID8gc2hpZnRlZEFyZyA6IG51bGxcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcIm1jbGFzc1wiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBtY2xhc3MsXG4gICAgICBib2R5OiBbc3Vwc3ViXSxcbiAgICAgIGlzQ2hhcmFjdGVyQm94OiB1dGlscy5pc0NoYXJhY3RlckJveChzdXBzdWIpXG4gICAgfTtcbiAgfSxcblxuICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIkOSxcbiAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlciQ4XG59KTtcblxuLy8gXFxwbWIgaXMgYSBzaW11bGF0aW9uIG9mIGJvbGQgZm9udC5cbi8vIFRoZSB2ZXJzaW9uIG9mIFxccG1iIGluIGFtYnN5LnN0eSB3b3JrcyBieSB0eXBlc2V0dGluZyB0aHJlZSBjb3BpZXNcbi8vIHdpdGggc21hbGwgb2Zmc2V0cy4gV2UgdXNlIENTUyB0ZXh0LXNoYWRvdy5cbi8vIEl0J3MgYSBoYWNrLiBOb3QgYXMgZ29vZCBhcyBhIHJlYWwgYm9sZCBmb250LiBCZXR0ZXIgdGhhbiBub3RoaW5nLlxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcInBtYlwiLFxuICBuYW1lczogW1wiXFxcXHBtYlwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWVcbiAgfSxcblxuICBoYW5kbGVyKF9yZWYsIGFyZ3MpIHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyXG4gICAgfSA9IF9yZWY7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwicG1iXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIG1jbGFzczogYmlucmVsQ2xhc3MoYXJnc1swXSksXG4gICAgICBib2R5OiBvcmRhcmd1bWVudChhcmdzWzBdKVxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgZWxlbWVudHMgPSBidWlsZEV4cHJlc3Npb24kMShncm91cC5ib2R5LCBvcHRpb25zLCB0cnVlKTtcbiAgICB2YXIgbm9kZSA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtncm91cC5tY2xhc3NdLCBlbGVtZW50cywgb3B0aW9ucyk7XG4gICAgbm9kZS5zdHlsZS50ZXh0U2hhZG93ID0gXCIwLjAyZW0gMC4wMWVtIDAuMDRweFwiO1xuICAgIHJldHVybiBub2RlO1xuICB9LFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIHN0eWxlKSB7XG4gICAgdmFyIGlubmVyID0gYnVpbGRFeHByZXNzaW9uKGdyb3VwLmJvZHksIHN0eWxlKTsgLy8gV3JhcCB3aXRoIGFuIDxtc3R5bGU+IGVsZW1lbnQuXG5cbiAgICB2YXIgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXN0eWxlXCIsIGlubmVyKTtcbiAgICBub2RlLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIFwidGV4dC1zaGFkb3c6IDAuMDJlbSAwLjAxZW0gMC4wNHB4XCIpO1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbn0pO1xuXG52YXIgY2RBcnJvd0Z1bmN0aW9uTmFtZSA9IHtcbiAgXCI+XCI6IFwiXFxcXFxcXFxjZHJpZ2h0YXJyb3dcIixcbiAgXCI8XCI6IFwiXFxcXFxcXFxjZGxlZnRhcnJvd1wiLFxuICBcIj1cIjogXCJcXFxcXFxcXGNkbG9uZ2VxdWFsXCIsXG4gIFwiQVwiOiBcIlxcXFx1cGFycm93XCIsXG4gIFwiVlwiOiBcIlxcXFxkb3duYXJyb3dcIixcbiAgXCJ8XCI6IFwiXFxcXFZlcnRcIixcbiAgXCIuXCI6IFwibm8gYXJyb3dcIlxufTtcblxudmFyIG5ld0NlbGwgPSAoKSA9PiB7XG4gIC8vIENyZWF0ZSBhbiBlbXB0eSBjZWxsLCB0byBiZSBmaWxsZWQgYmVsb3cgd2l0aCBwYXJzZSBub2Rlcy5cbiAgLy8gVGhlIHBhcnNlVHJlZSBmcm9tIHRoaXMgbW9kdWxlIG11c3QgYmUgY29uc3RydWN0ZWQgbGlrZSB0aGVcbiAgLy8gb25lIGNyZWF0ZWQgYnkgcGFyc2VBcnJheSgpLCBzbyBhbiBlbXB0eSBDRCBjZWxsIG11c3RcbiAgLy8gYmUgYSBQYXJzZU5vZGU8XCJzdHlsaW5nXCI+LiBBbmQgQ0QgaXMgYWx3YXlzIGRpc3BsYXlzdHlsZS5cbiAgLy8gU28gdGhlc2UgdmFsdWVzIGFyZSBmaXhlZCBhbmQgZmxvdyBjYW4gZG8gaW1wbGljaXQgdHlwaW5nLlxuICByZXR1cm4ge1xuICAgIHR5cGU6IFwic3R5bGluZ1wiLFxuICAgIGJvZHk6IFtdLFxuICAgIG1vZGU6IFwibWF0aFwiLFxuICAgIHN0eWxlOiBcImRpc3BsYXlcIlxuICB9O1xufTtcblxudmFyIGlzU3RhcnRPZkFycm93ID0gbm9kZSA9PiB7XG4gIHJldHVybiBub2RlLnR5cGUgPT09IFwidGV4dG9yZFwiICYmIG5vZGUudGV4dCA9PT0gXCJAXCI7XG59O1xuXG52YXIgaXNMYWJlbEVuZCA9IChub2RlLCBlbmRDaGFyKSA9PiB7XG4gIHJldHVybiAobm9kZS50eXBlID09PSBcIm1hdGhvcmRcIiB8fCBub2RlLnR5cGUgPT09IFwiYXRvbVwiKSAmJiBub2RlLnRleHQgPT09IGVuZENoYXI7XG59O1xuXG5mdW5jdGlvbiBjZEFycm93KGFycm93Q2hhciwgbGFiZWxzLCBwYXJzZXIpIHtcbiAgLy8gUmV0dXJuIGEgcGFyc2UgdHJlZSBvZiBhbiBhcnJvdyBhbmQgaXRzIGxhYmVscy5cbiAgLy8gVGhpcyBhY3RzIGluIGEgd2F5IHNpbWlsYXIgdG8gYSBtYWNybyBleHBhbnNpb24uXG4gIHZhciBmdW5jTmFtZSA9IGNkQXJyb3dGdW5jdGlvbk5hbWVbYXJyb3dDaGFyXTtcblxuICBzd2l0Y2ggKGZ1bmNOYW1lKSB7XG4gICAgY2FzZSBcIlxcXFxcXFxcY2RyaWdodGFycm93XCI6XG4gICAgY2FzZSBcIlxcXFxcXFxcY2RsZWZ0YXJyb3dcIjpcbiAgICAgIHJldHVybiBwYXJzZXIuY2FsbEZ1bmN0aW9uKGZ1bmNOYW1lLCBbbGFiZWxzWzBdXSwgW2xhYmVsc1sxXV0pO1xuXG4gICAgY2FzZSBcIlxcXFx1cGFycm93XCI6XG4gICAgY2FzZSBcIlxcXFxkb3duYXJyb3dcIjpcbiAgICAgIHtcbiAgICAgICAgdmFyIGxlZnRMYWJlbCA9IHBhcnNlci5jYWxsRnVuY3Rpb24oXCJcXFxcXFxcXGNkbGVmdFwiLCBbbGFiZWxzWzBdXSwgW10pO1xuICAgICAgICB2YXIgYmFyZUFycm93ID0ge1xuICAgICAgICAgIHR5cGU6IFwiYXRvbVwiLFxuICAgICAgICAgIHRleHQ6IGZ1bmNOYW1lLFxuICAgICAgICAgIG1vZGU6IFwibWF0aFwiLFxuICAgICAgICAgIGZhbWlseTogXCJyZWxcIlxuICAgICAgICB9O1xuICAgICAgICB2YXIgc2l6ZWRBcnJvdyA9IHBhcnNlci5jYWxsRnVuY3Rpb24oXCJcXFxcQmlnXCIsIFtiYXJlQXJyb3ddLCBbXSk7XG4gICAgICAgIHZhciByaWdodExhYmVsID0gcGFyc2VyLmNhbGxGdW5jdGlvbihcIlxcXFxcXFxcY2RyaWdodFwiLCBbbGFiZWxzWzFdXSwgW10pO1xuICAgICAgICB2YXIgYXJyb3dHcm91cCA9IHtcbiAgICAgICAgICB0eXBlOiBcIm9yZGdyb3VwXCIsXG4gICAgICAgICAgbW9kZTogXCJtYXRoXCIsXG4gICAgICAgICAgYm9keTogW2xlZnRMYWJlbCwgc2l6ZWRBcnJvdywgcmlnaHRMYWJlbF1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHBhcnNlci5jYWxsRnVuY3Rpb24oXCJcXFxcXFxcXGNkcGFyZW50XCIsIFthcnJvd0dyb3VwXSwgW10pO1xuICAgICAgfVxuXG4gICAgY2FzZSBcIlxcXFxcXFxcY2Rsb25nZXF1YWxcIjpcbiAgICAgIHJldHVybiBwYXJzZXIuY2FsbEZ1bmN0aW9uKFwiXFxcXFxcXFxjZGxvbmdlcXVhbFwiLCBbXSwgW10pO1xuXG4gICAgY2FzZSBcIlxcXFxWZXJ0XCI6XG4gICAgICB7XG4gICAgICAgIHZhciBhcnJvdyA9IHtcbiAgICAgICAgICB0eXBlOiBcInRleHRvcmRcIixcbiAgICAgICAgICB0ZXh0OiBcIlxcXFxWZXJ0XCIsXG4gICAgICAgICAgbW9kZTogXCJtYXRoXCJcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHBhcnNlci5jYWxsRnVuY3Rpb24oXCJcXFxcQmlnXCIsIFthcnJvd10sIFtdKTtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcInRleHRvcmRcIixcbiAgICAgICAgdGV4dDogXCIgXCIsXG4gICAgICAgIG1vZGU6IFwibWF0aFwiXG4gICAgICB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ0QocGFyc2VyKSB7XG4gIC8vIEdldCB0aGUgYXJyYXkncyBwYXJzZSBub2RlcyB3aXRoIFxcXFwgdGVtcG9yYXJpbHkgbWFwcGVkIHRvIFxcY3IuXG4gIHZhciBwYXJzZWRSb3dzID0gW107XG4gIHBhcnNlci5ndWxsZXQuYmVnaW5Hcm91cCgpO1xuICBwYXJzZXIuZ3VsbGV0Lm1hY3Jvcy5zZXQoXCJcXFxcY3JcIiwgXCJcXFxcXFxcXFxcXFxyZWxheFwiKTtcbiAgcGFyc2VyLmd1bGxldC5iZWdpbkdyb3VwKCk7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICAgIC8vIEdldCB0aGUgcGFyc2Ugbm9kZXMgZm9yIHRoZSBuZXh0IHJvdy5cbiAgICBwYXJzZWRSb3dzLnB1c2gocGFyc2VyLnBhcnNlRXhwcmVzc2lvbihmYWxzZSwgXCJcXFxcXFxcXFwiKSk7XG4gICAgcGFyc2VyLmd1bGxldC5lbmRHcm91cCgpO1xuICAgIHBhcnNlci5ndWxsZXQuYmVnaW5Hcm91cCgpO1xuICAgIHZhciBuZXh0ID0gcGFyc2VyLmZldGNoKCkudGV4dDtcblxuICAgIGlmIChuZXh0ID09PSBcIiZcIiB8fCBuZXh0ID09PSBcIlxcXFxcXFxcXCIpIHtcbiAgICAgIHBhcnNlci5jb25zdW1lKCk7XG4gICAgfSBlbHNlIGlmIChuZXh0ID09PSBcIlxcXFxlbmRcIikge1xuICAgICAgaWYgKHBhcnNlZFJvd3NbcGFyc2VkUm93cy5sZW5ndGggLSAxXS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcGFyc2VkUm93cy5wb3AoKTsgLy8gZmluYWwgcm93IGVuZGVkIGluIFxcXFxcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiRXhwZWN0ZWQgXFxcXFxcXFwgb3IgXFxcXGNyIG9yIFxcXFxlbmRcIiwgcGFyc2VyLm5leHRUb2tlbik7XG4gICAgfVxuICB9XG5cbiAgdmFyIHJvdyA9IFtdO1xuICB2YXIgYm9keSA9IFtyb3ddOyAvLyBMb29wIHRocnUgdGhlIHBhcnNlIG5vZGVzLiBDb2xsZWN0IHRoZW0gaW50byBjZWxscyBhbmQgYXJyb3dzLlxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyc2VkUm93cy5sZW5ndGg7IGkrKykge1xuICAgIC8vIFN0YXJ0IGEgbmV3IHJvdy5cbiAgICB2YXIgcm93Tm9kZXMgPSBwYXJzZWRSb3dzW2ldOyAvLyBDcmVhdGUgdGhlIGZpcnN0IGNlbGwuXG5cbiAgICB2YXIgY2VsbCA9IG5ld0NlbGwoKTtcblxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgcm93Tm9kZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGlmICghaXNTdGFydE9mQXJyb3cocm93Tm9kZXNbal0pKSB7XG4gICAgICAgIC8vIElmIGEgcGFyc2VOb2RlIGlzIG5vdCBhbiBhcnJvdywgaXQgZ29lcyBpbnRvIGEgY2VsbC5cbiAgICAgICAgY2VsbC5ib2R5LnB1c2gocm93Tm9kZXNbal0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUGFyc2Ugbm9kZSBqIGlzIGFuIFwiQFwiLCB0aGUgc3RhcnQgb2YgYW4gYXJyb3cuXG4gICAgICAgIC8vIEJlZm9yZSBzdGFydGluZyBvbiB0aGUgYXJyb3csIHB1c2ggdGhlIGNlbGwgaW50byBgcm93YC5cbiAgICAgICAgcm93LnB1c2goY2VsbCk7IC8vIE5vdyBjb2xsZWN0IHBhcnNlTm9kZXMgaW50byBhbiBhcnJvdy5cbiAgICAgICAgLy8gVGhlIGNoYXJhY3RlciBhZnRlciBcIkBcIiBkZWZpbmVzIHRoZSBhcnJvdyB0eXBlLlxuXG4gICAgICAgIGogKz0gMTtcbiAgICAgICAgdmFyIGFycm93Q2hhciA9IGFzc2VydFN5bWJvbE5vZGVUeXBlKHJvd05vZGVzW2pdKS50ZXh0OyAvLyBDcmVhdGUgdHdvIGVtcHR5IGxhYmVsIG5vZGVzLiBXZSBtYXkgb3IgbWF5IG5vdCB1c2UgdGhlbS5cblxuICAgICAgICB2YXIgbGFiZWxzID0gbmV3IEFycmF5KDIpO1xuICAgICAgICBsYWJlbHNbMF0gPSB7XG4gICAgICAgICAgdHlwZTogXCJvcmRncm91cFwiLFxuICAgICAgICAgIG1vZGU6IFwibWF0aFwiLFxuICAgICAgICAgIGJvZHk6IFtdXG4gICAgICAgIH07XG4gICAgICAgIGxhYmVsc1sxXSA9IHtcbiAgICAgICAgICB0eXBlOiBcIm9yZGdyb3VwXCIsXG4gICAgICAgICAgbW9kZTogXCJtYXRoXCIsXG4gICAgICAgICAgYm9keTogW11cbiAgICAgICAgfTsgLy8gUHJvY2VzcyB0aGUgYXJyb3cuXG5cbiAgICAgICAgaWYgKFwiPXwuXCIuaW5kZXhPZihhcnJvd0NoYXIpID4gLTEpIDsgZWxzZSBpZiAoXCI8PkFWXCIuaW5kZXhPZihhcnJvd0NoYXIpID4gLTEpIHtcbiAgICAgICAgICAvLyBGb3VyIGFycm93cywgYEA+Pj5gLCBgQDw8PGAsIGBAQUFBYCwgYW5kIGBAVlZWYCwgZWFjaCB0YWtlXG4gICAgICAgICAgLy8gdHdvIG9wdGlvbmFsIGxhYmVscy4gRS5nLiB0aGUgcmlnaHQtcG9pbnQgYXJyb3cgc3ludGF4IGlzXG4gICAgICAgICAgLy8gcmVhbGx5OiAgQD57b3B0aW9uYWwgbGFiZWx9PntvcHRpb25hbCBsYWJlbH0+XG4gICAgICAgICAgLy8gQ29sbGVjdCBwYXJzZU5vZGVzIGludG8gbGFiZWxzLlxuICAgICAgICAgIGZvciAodmFyIGxhYmVsTnVtID0gMDsgbGFiZWxOdW0gPCAyOyBsYWJlbE51bSsrKSB7XG4gICAgICAgICAgICB2YXIgaW5MYWJlbCA9IHRydWU7XG5cbiAgICAgICAgICAgIGZvciAodmFyIGsgPSBqICsgMTsgayA8IHJvd05vZGVzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICAgIGlmIChpc0xhYmVsRW5kKHJvd05vZGVzW2tdLCBhcnJvd0NoYXIpKSB7XG4gICAgICAgICAgICAgICAgaW5MYWJlbCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGogPSBrO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGlzU3RhcnRPZkFycm93KHJvd05vZGVzW2tdKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiTWlzc2luZyBhIFwiICsgYXJyb3dDaGFyICsgXCIgY2hhcmFjdGVyIHRvIGNvbXBsZXRlIGEgQ0QgYXJyb3cuXCIsIHJvd05vZGVzW2tdKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGxhYmVsc1tsYWJlbE51bV0uYm9keS5wdXNoKHJvd05vZGVzW2tdKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGluTGFiZWwpIHtcbiAgICAgICAgICAgICAgLy8gaXNMYWJlbEVuZCBuZXZlciByZXR1cm5lZCBhIHRydWUuXG4gICAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiTWlzc2luZyBhIFwiICsgYXJyb3dDaGFyICsgXCIgY2hhcmFjdGVyIHRvIGNvbXBsZXRlIGEgQ0QgYXJyb3cuXCIsIHJvd05vZGVzW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJFeHBlY3RlZCBvbmUgb2YgXFxcIjw+QVY9fC5cXFwiIGFmdGVyIEBcIiwgcm93Tm9kZXNbal0pO1xuICAgICAgICB9IC8vIE5vdyBqb2luIHRoZSBhcnJvdyB0byBpdHMgbGFiZWxzLlxuXG5cbiAgICAgICAgdmFyIGFycm93ID0gY2RBcnJvdyhhcnJvd0NoYXIsIGxhYmVscywgcGFyc2VyKTsgLy8gV3JhcCB0aGUgYXJyb3cgaW4gIFBhcnNlTm9kZTxcInN0eWxpbmdcIj4uXG4gICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBtYXRjaCBwYXJzZUFycmF5KCkgYmVoYXZpb3IuXG5cbiAgICAgICAgdmFyIHdyYXBwZWRBcnJvdyA9IHtcbiAgICAgICAgICB0eXBlOiBcInN0eWxpbmdcIixcbiAgICAgICAgICBib2R5OiBbYXJyb3ddLFxuICAgICAgICAgIG1vZGU6IFwibWF0aFwiLFxuICAgICAgICAgIHN0eWxlOiBcImRpc3BsYXlcIiAvLyBDRCBpcyBhbHdheXMgZGlzcGxheXN0eWxlLlxuXG4gICAgICAgIH07XG4gICAgICAgIHJvdy5wdXNoKHdyYXBwZWRBcnJvdyk7IC8vIEluIENEJ3Mgc3ludGF4LCBjZWxscyBhcmUgaW1wbGljaXQuIFRoYXQgaXMsIGV2ZXJ5dGhpbmcgdGhhdFxuICAgICAgICAvLyBpcyBub3QgYW4gYXJyb3cgZ2V0cyBjb2xsZWN0ZWQgaW50byBhIGNlbGwuIFNvIGNyZWF0ZSBhbiBlbXB0eVxuICAgICAgICAvLyBjZWxsIG5vdy4gSXQgd2lsbCBjb2xsZWN0IHVwY29taW5nIHBhcnNlTm9kZXMuXG5cbiAgICAgICAgY2VsbCA9IG5ld0NlbGwoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSAlIDIgPT09IDApIHtcbiAgICAgIC8vIEV2ZW4tbnVtYmVyZWQgcm93cyBjb25zaXN0IG9mOiBjZWxsLCBhcnJvdywgY2VsbCwgYXJyb3csIC4uLiBjZWxsXG4gICAgICAvLyBUaGUgbGFzdCBjZWxsIGlzIG5vdCB5ZXQgcHVzaGVkIGludG8gYHJvd2AsIHNvOlxuICAgICAgcm93LnB1c2goY2VsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE9kZC1udW1iZXJlZCByb3dzIGNvbnNpc3Qgb2Y6IHZlcnQgYXJyb3csIGVtcHR5IGNlbGwsIC4uLiB2ZXJ0IGFycm93XG4gICAgICAvLyBSZW1vdmUgdGhlIGVtcHR5IGNlbGwgdGhhdCB3YXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcgb2YgYHJvd2AuXG4gICAgICByb3cuc2hpZnQoKTtcbiAgICB9XG5cbiAgICByb3cgPSBbXTtcbiAgICBib2R5LnB1c2gocm93KTtcbiAgfSAvLyBFbmQgcm93IGdyb3VwXG5cblxuICBwYXJzZXIuZ3VsbGV0LmVuZEdyb3VwKCk7IC8vIEVuZCBhcnJheSBncm91cCBkZWZpbmluZyBcXFxcXG5cbiAgcGFyc2VyLmd1bGxldC5lbmRHcm91cCgpOyAvLyBkZWZpbmUgY29sdW1uIHNlcGFyYXRpb24uXG5cbiAgdmFyIGNvbHMgPSBuZXcgQXJyYXkoYm9keVswXS5sZW5ndGgpLmZpbGwoe1xuICAgIHR5cGU6IFwiYWxpZ25cIixcbiAgICBhbGlnbjogXCJjXCIsXG4gICAgcHJlZ2FwOiAwLjI1LFxuICAgIC8vIENEIHBhY2thZ2Ugc2V0cyBcXGVuc2tpcCBiZXR3ZWVuIGNvbHVtbnMuXG4gICAgcG9zdGdhcDogMC4yNSAvLyBTbyBwcmUgYW5kIHBvc3QgZWFjaCBnZXQgaGFsZiBhbiBcXGVuc2tpcCwgaS5lLiAwLjI1ZW0uXG5cbiAgfSk7XG4gIHJldHVybiB7XG4gICAgdHlwZTogXCJhcnJheVwiLFxuICAgIG1vZGU6IFwibWF0aFwiLFxuICAgIGJvZHksXG4gICAgYXJyYXlzdHJldGNoOiAxLFxuICAgIGFkZEpvdDogdHJ1ZSxcbiAgICByb3dHYXBzOiBbbnVsbF0sXG4gICAgY29scyxcbiAgICBjb2xTZXBhcmF0aW9uVHlwZTogXCJDRFwiLFxuICAgIGhMaW5lc0JlZm9yZVJvdzogbmV3IEFycmF5KGJvZHkubGVuZ3RoICsgMSkuZmlsbChbXSlcbiAgfTtcbn0gLy8gVGhlIGZ1bmN0aW9ucyBiZWxvdyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgZ2VuZXJhbCB1c2UuXG4vLyBUaGV5IGFyZSBoZXJlIG9ubHkgZm9yIGludGVybmFsIHVzZSBieSB0aGUge0NEfSBlbnZpcm9ubWVudCBpbiBwbGFjaW5nIGxhYmVsc1xuLy8gbmV4dCB0byB2ZXJ0aWNhbCBhcnJvd3MuXG4vLyBXZSBkb24ndCBuZWVkIGFueSBzdWNoIGZ1bmN0aW9ucyBmb3IgaG9yaXpvbnRhbCBhcnJvd3MgYmVjYXVzZSB3ZSBjYW4gcmV1c2Vcbi8vIHRoZSBmdW5jdGlvbmFsaXR5IHRoYXQgYWxyZWFkeSBleGlzdHMgZm9yIGV4dGVuc2libGUgYXJyb3dzLlxuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiY2RsYWJlbFwiLFxuICBuYW1lczogW1wiXFxcXFxcXFxjZGxlZnRcIiwgXCJcXFxcXFxcXGNkcmlnaHRcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZiwgYXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImNkbGFiZWxcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgc2lkZTogZnVuY05hbWUuc2xpY2UoNCksXG4gICAgICBsYWJlbDogYXJnc1swXVxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nU3R5bGUob3B0aW9ucy5zdHlsZS5zdXAoKSk7XG4gICAgdmFyIGxhYmVsID0gYnVpbGRDb21tb24ud3JhcEZyYWdtZW50KGJ1aWxkR3JvdXAkMShncm91cC5sYWJlbCwgbmV3T3B0aW9ucywgb3B0aW9ucyksIG9wdGlvbnMpO1xuICAgIGxhYmVsLmNsYXNzZXMucHVzaChcImNkLWxhYmVsLVwiICsgZ3JvdXAuc2lkZSk7XG4gICAgbGFiZWwuc3R5bGUuYm90dG9tID0gbWFrZUVtKDAuOCAtIGxhYmVsLmRlcHRoKTsgLy8gWmVybyBvdXQgbGFiZWwgaGVpZ2h0ICYgZGVwdGgsIHNvIHZlcnRpY2FsIGFsaWduIG9mIGFycm93IGlzIHNldFxuICAgIC8vIGJ5IHRoZSBhcnJvdyBoZWlnaHQsIG5vdCBieSB0aGUgbGFiZWwuXG5cbiAgICBsYWJlbC5oZWlnaHQgPSAwO1xuICAgIGxhYmVsLmRlcHRoID0gMDtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH0sXG5cbiAgbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBsYWJlbCA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXJvd1wiLCBbYnVpbGRHcm91cChncm91cC5sYWJlbCwgb3B0aW9ucyldKTtcbiAgICBsYWJlbCA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXBhZGRlZFwiLCBbbGFiZWxdKTtcbiAgICBsYWJlbC5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLCBcIjBcIik7XG5cbiAgICBpZiAoZ3JvdXAuc2lkZSA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgIGxhYmVsLnNldEF0dHJpYnV0ZShcImxzcGFjZVwiLCBcIi0xd2lkdGhcIik7XG4gICAgfSAvLyBXZSBoYXZlIHRvIGd1ZXNzIGF0IHZlcnRpY2FsIGFsaWdubWVudC4gV2Uga25vdyB0aGUgYXJyb3cgaXMgMS44ZW0gdGFsbCxcbiAgICAvLyBCdXQgd2UgZG9uJ3Qga25vdyB0aGUgaGVpZ2h0IG9yIGRlcHRoIG9mIHRoZSBsYWJlbC5cblxuXG4gICAgbGFiZWwuc2V0QXR0cmlidXRlKFwidm9mZnNldFwiLCBcIjAuN2VtXCIpO1xuICAgIGxhYmVsID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtc3R5bGVcIiwgW2xhYmVsXSk7XG4gICAgbGFiZWwuc2V0QXR0cmlidXRlKFwiZGlzcGxheXN0eWxlXCIsIFwiZmFsc2VcIik7XG4gICAgbGFiZWwuc2V0QXR0cmlidXRlKFwic2NyaXB0bGV2ZWxcIiwgXCIxXCIpO1xuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG59KTtcbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJjZGxhYmVscGFyZW50XCIsXG4gIG5hbWVzOiBbXCJcXFxcXFxcXGNkcGFyZW50XCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDFcbiAgfSxcblxuICBoYW5kbGVyKF9yZWYyLCBhcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmMjtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJjZGxhYmVscGFyZW50XCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGZyYWdtZW50OiBhcmdzWzBdXG4gICAgfTtcbiAgfSxcblxuICBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIC8vIFdyYXAgdGhlIHZlcnRpY2FsIGFycm93IGFuZCBpdHMgbGFiZWxzLlxuICAgIC8vIFRoZSBwYXJlbnQgZ2V0cyBwb3NpdGlvbjogcmVsYXRpdmUuIFRoZSBjaGlsZCBnZXRzIHBvc2l0aW9uOiBhYnNvbHV0ZS5cbiAgICAvLyBTbyBDU1MgY2FuIGxvY2F0ZSB0aGUgbGFiZWwgY29ycmVjdGx5LlxuICAgIHZhciBwYXJlbnQgPSBidWlsZENvbW1vbi53cmFwRnJhZ21lbnQoYnVpbGRHcm91cCQxKGdyb3VwLmZyYWdtZW50LCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gICAgcGFyZW50LmNsYXNzZXMucHVzaChcImNkLXZlcnQtYXJyb3dcIik7XG4gICAgcmV0dXJuIHBhcmVudDtcbiAgfSxcblxuICBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXJvd1wiLCBbYnVpbGRHcm91cChncm91cC5mcmFnbWVudCwgb3B0aW9ucyldKTtcbiAgfVxuXG59KTtcblxuLy8gezEyM30gYW5kIGNvbnZlcnRzIGludG8gc3ltYm9sIHdpdGggY29kZSAxMjMuICBJdCBpcyB1c2VkIGJ5IHRoZSAqbWFjcm8qXG4vLyBcXGNoYXIgZGVmaW5lZCBpbiBtYWNyb3MuanMuXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJ0ZXh0b3JkXCIsXG4gIG5hbWVzOiBbXCJcXFxcQGNoYXJcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmLCBhcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBhcmcgPSBhc3NlcnROb2RlVHlwZShhcmdzWzBdLCBcIm9yZGdyb3VwXCIpO1xuICAgIHZhciBncm91cCA9IGFyZy5ib2R5O1xuICAgIHZhciBudW1iZXIgPSBcIlwiO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBncm91cC5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG5vZGUgPSBhc3NlcnROb2RlVHlwZShncm91cFtpXSwgXCJ0ZXh0b3JkXCIpO1xuICAgICAgbnVtYmVyICs9IG5vZGUudGV4dDtcbiAgICB9XG5cbiAgICB2YXIgY29kZSA9IHBhcnNlSW50KG51bWJlcik7XG4gICAgdmFyIHRleHQ7XG5cbiAgICBpZiAoaXNOYU4oY29kZSkpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiXFxcXEBjaGFyIGhhcyBub24tbnVtZXJpYyBhcmd1bWVudCBcIiArIG51bWJlcik7IC8vIElmIHdlIGRyb3AgSUUgc3VwcG9ydCwgdGhlIGZvbGxvd2luZyBjb2RlIGNvdWxkIGJlIHJlcGxhY2VkIHdpdGhcbiAgICAgIC8vIHRleHQgPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjb2RlKVxuICAgIH0gZWxzZSBpZiAoY29kZSA8IDAgfHwgY29kZSA+PSAweDEwZmZmZikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJcXFxcQGNoYXIgd2l0aCBpbnZhbGlkIGNvZGUgcG9pbnQgXCIgKyBudW1iZXIpO1xuICAgIH0gZWxzZSBpZiAoY29kZSA8PSAweGZmZmYpIHtcbiAgICAgIHRleHQgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBc3RyYWwgY29kZSBwb2ludDsgc3BsaXQgaW50byBzdXJyb2dhdGUgaGFsdmVzXG4gICAgICBjb2RlIC09IDB4MTAwMDA7XG4gICAgICB0ZXh0ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgoY29kZSA+PiAxMCkgKyAweGQ4MDAsIChjb2RlICYgMHgzZmYpICsgMHhkYzAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJ0ZXh0b3JkXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIHRleHQ6IHRleHRcbiAgICB9O1xuICB9XG5cbn0pO1xuXG52YXIgaHRtbEJ1aWxkZXIkOCA9IChncm91cCwgb3B0aW9ucykgPT4ge1xuICB2YXIgZWxlbWVudHMgPSBidWlsZEV4cHJlc3Npb24kMShncm91cC5ib2R5LCBvcHRpb25zLndpdGhDb2xvcihncm91cC5jb2xvciksIGZhbHNlKTsgLy8gXFxjb2xvciBpc24ndCBzdXBwb3NlZCB0byBhZmZlY3QgdGhlIHR5cGUgb2YgdGhlIGVsZW1lbnRzIGl0IGNvbnRhaW5zLlxuICAvLyBUbyBhY2NvbXBsaXNoIHRoaXMsIHdlIHdyYXAgdGhlIHJlc3VsdHMgaW4gYSBmcmFnbWVudCwgc28gdGhlIGlubmVyXG4gIC8vIGVsZW1lbnRzIHdpbGwgYmUgYWJsZSB0byBkaXJlY3RseSBpbnRlcmFjdCB3aXRoIHRoZWlyIG5laWdoYm9ycy4gRm9yXG4gIC8vIGV4YW1wbGUsIGBcXGNvbG9ye3JlZH17MiArfSAzYCBoYXMgdGhlIHNhbWUgc3BhY2luZyBhcyBgMiArIDNgXG5cbiAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VGcmFnbWVudChlbGVtZW50cyk7XG59O1xuXG52YXIgbWF0aG1sQnVpbGRlciQ3ID0gKGdyb3VwLCBvcHRpb25zKSA9PiB7XG4gIHZhciBpbm5lciA9IGJ1aWxkRXhwcmVzc2lvbihncm91cC5ib2R5LCBvcHRpb25zLndpdGhDb2xvcihncm91cC5jb2xvcikpO1xuICB2YXIgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXN0eWxlXCIsIGlubmVyKTtcbiAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJtYXRoY29sb3JcIiwgZ3JvdXAuY29sb3IpO1xuICByZXR1cm4gbm9kZTtcbn07XG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJjb2xvclwiLFxuICBuYW1lczogW1wiXFxcXHRleHRjb2xvclwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAyLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWUsXG4gICAgYXJnVHlwZXM6IFtcImNvbG9yXCIsIFwib3JpZ2luYWxcIl1cbiAgfSxcblxuICBoYW5kbGVyKF9yZWYsIGFyZ3MpIHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyXG4gICAgfSA9IF9yZWY7XG4gICAgdmFyIGNvbG9yID0gYXNzZXJ0Tm9kZVR5cGUoYXJnc1swXSwgXCJjb2xvci10b2tlblwiKS5jb2xvcjtcbiAgICB2YXIgYm9keSA9IGFyZ3NbMV07XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiY29sb3JcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgY29sb3IsXG4gICAgICBib2R5OiBvcmRhcmd1bWVudChib2R5KVxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDgsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkN1xufSk7XG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiY29sb3JcIixcbiAgbmFtZXM6IFtcIlxcXFxjb2xvclwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWUsXG4gICAgYXJnVHlwZXM6IFtcImNvbG9yXCJdXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmMiwgYXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBicmVha09uVG9rZW5UZXh0XG4gICAgfSA9IF9yZWYyO1xuICAgIHZhciBjb2xvciA9IGFzc2VydE5vZGVUeXBlKGFyZ3NbMF0sIFwiY29sb3ItdG9rZW5cIikuY29sb3I7IC8vIFNldCBtYWNybyBcXGN1cnJlbnRAY29sb3IgaW4gY3VycmVudCBuYW1lc3BhY2UgdG8gc3RvcmUgdGhlIGN1cnJlbnRcbiAgICAvLyBjb2xvciwgbWltaWNraW5nIHRoZSBiZWhhdmlvciBvZiBjb2xvci5zdHkuXG4gICAgLy8gVGhpcyBpcyBjdXJyZW50bHkgdXNlZCBqdXN0IHRvIGNvcnJlY3RseSBjb2xvciBhIFxccmlnaHRcbiAgICAvLyB0aGF0IGZvbGxvd3MgYSBcXGNvbG9yIGNvbW1hbmQuXG5cbiAgICBwYXJzZXIuZ3VsbGV0Lm1hY3Jvcy5zZXQoXCJcXFxcY3VycmVudEBjb2xvclwiLCBjb2xvcik7IC8vIFBhcnNlIG91dCB0aGUgaW1wbGljaXQgYm9keSB0aGF0IHNob3VsZCBiZSBjb2xvcmVkLlxuXG4gICAgdmFyIGJvZHkgPSBwYXJzZXIucGFyc2VFeHByZXNzaW9uKHRydWUsIGJyZWFrT25Ub2tlblRleHQpO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImNvbG9yXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGNvbG9yLFxuICAgICAgYm9keVxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDgsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkN1xufSk7XG5cbi8vIFJvdyBicmVha3Mgd2l0aGluIHRhYnVsYXIgZW52aXJvbm1lbnRzLCBhbmQgbGluZSBicmVha3MgYXQgdG9wIGxldmVsXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJjclwiLFxuICBuYW1lczogW1wiXFxcXFxcXFxcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMCxcbiAgICBudW1PcHRpb25hbEFyZ3M6IDAsXG4gICAgYWxsb3dlZEluVGV4dDogdHJ1ZVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZiwgYXJncywgb3B0QXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXJcbiAgICB9ID0gX3JlZjtcbiAgICB2YXIgc2l6ZSA9IHBhcnNlci5ndWxsZXQuZnV0dXJlKCkudGV4dCA9PT0gXCJbXCIgPyBwYXJzZXIucGFyc2VTaXplR3JvdXAodHJ1ZSkgOiBudWxsO1xuICAgIHZhciBuZXdMaW5lID0gIXBhcnNlci5zZXR0aW5ncy5kaXNwbGF5TW9kZSB8fCAhcGFyc2VyLnNldHRpbmdzLnVzZVN0cmljdEJlaGF2aW9yKFwibmV3TGluZUluRGlzcGxheU1vZGVcIiwgXCJJbiBMYVRlWCwgXFxcXFxcXFwgb3IgXFxcXG5ld2xpbmUgXCIgKyBcImRvZXMgbm90aGluZyBpbiBkaXNwbGF5IG1vZGVcIik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiY3JcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgbmV3TGluZSxcbiAgICAgIHNpemU6IHNpemUgJiYgYXNzZXJ0Tm9kZVR5cGUoc2l6ZSwgXCJzaXplXCIpLnZhbHVlXG4gICAgfTtcbiAgfSxcblxuICAvLyBUaGUgZm9sbG93aW5nIGJ1aWxkZXJzIGFyZSBjYWxsZWQgb25seSBhdCB0aGUgdG9wIGxldmVsLFxuICAvLyBub3Qgd2l0aGluIHRhYnVsYXIvYXJyYXkgZW52aXJvbm1lbnRzLlxuICBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBzcGFuID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibXNwYWNlXCJdLCBbXSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoZ3JvdXAubmV3TGluZSkge1xuICAgICAgc3Bhbi5jbGFzc2VzLnB1c2goXCJuZXdsaW5lXCIpO1xuXG4gICAgICBpZiAoZ3JvdXAuc2l6ZSkge1xuICAgICAgICBzcGFuLnN0eWxlLm1hcmdpblRvcCA9IG1ha2VFbShjYWxjdWxhdGVTaXplKGdyb3VwLnNpemUsIG9wdGlvbnMpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3BhbjtcbiAgfSxcblxuICBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1zcGFjZVwiKTtcblxuICAgIGlmIChncm91cC5uZXdMaW5lKSB7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShcImxpbmVicmVha1wiLCBcIm5ld2xpbmVcIik7XG5cbiAgICAgIGlmIChncm91cC5zaXplKSB7XG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIG1ha2VFbShjYWxjdWxhdGVTaXplKGdyb3VwLnNpemUsIG9wdGlvbnMpKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxufSk7XG5cbnZhciBnbG9iYWxNYXAgPSB7XG4gIFwiXFxcXGdsb2JhbFwiOiBcIlxcXFxnbG9iYWxcIixcbiAgXCJcXFxcbG9uZ1wiOiBcIlxcXFxcXFxcZ2xvYmFsbG9uZ1wiLFxuICBcIlxcXFxcXFxcZ2xvYmFsbG9uZ1wiOiBcIlxcXFxcXFxcZ2xvYmFsbG9uZ1wiLFxuICBcIlxcXFxkZWZcIjogXCJcXFxcZ2RlZlwiLFxuICBcIlxcXFxnZGVmXCI6IFwiXFxcXGdkZWZcIixcbiAgXCJcXFxcZWRlZlwiOiBcIlxcXFx4ZGVmXCIsXG4gIFwiXFxcXHhkZWZcIjogXCJcXFxceGRlZlwiLFxuICBcIlxcXFxsZXRcIjogXCJcXFxcXFxcXGdsb2JhbGxldFwiLFxuICBcIlxcXFxmdXR1cmVsZXRcIjogXCJcXFxcXFxcXGdsb2JhbGZ1dHVyZVwiXG59O1xuXG52YXIgY2hlY2tDb250cm9sU2VxdWVuY2UgPSB0b2sgPT4ge1xuICB2YXIgbmFtZSA9IHRvay50ZXh0O1xuXG4gIGlmICgvXig/OltcXFxce30kJiNeX118RU9GKSQvLnRlc3QobmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkV4cGVjdGVkIGEgY29udHJvbCBzZXF1ZW5jZVwiLCB0b2spO1xuICB9XG5cbiAgcmV0dXJuIG5hbWU7XG59O1xuXG52YXIgZ2V0UkhTID0gcGFyc2VyID0+IHtcbiAgdmFyIHRvayA9IHBhcnNlci5ndWxsZXQucG9wVG9rZW4oKTtcblxuICBpZiAodG9rLnRleHQgPT09IFwiPVwiKSB7XG4gICAgLy8gY29uc3VtZSBvcHRpb25hbCBlcXVhbHNcbiAgICB0b2sgPSBwYXJzZXIuZ3VsbGV0LnBvcFRva2VuKCk7XG5cbiAgICBpZiAodG9rLnRleHQgPT09IFwiIFwiKSB7XG4gICAgICAvLyBjb25zdW1lIG9uZSBvcHRpb25hbCBzcGFjZVxuICAgICAgdG9rID0gcGFyc2VyLmd1bGxldC5wb3BUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0b2s7XG59O1xuXG52YXIgbGV0Q29tbWFuZCA9IChwYXJzZXIsIG5hbWUsIHRvaywgZ2xvYmFsKSA9PiB7XG4gIHZhciBtYWNybyA9IHBhcnNlci5ndWxsZXQubWFjcm9zLmdldCh0b2sudGV4dCk7XG5cbiAgaWYgKG1hY3JvID09IG51bGwpIHtcbiAgICAvLyBkb24ndCBleHBhbmQgaXQgbGF0ZXIgZXZlbiBpZiBhIG1hY3JvIHdpdGggdGhlIHNhbWUgbmFtZSBpcyBkZWZpbmVkXG4gICAgLy8gZS5nLiwgXFxsZXRcXGZvbz1cXGZyYWMgXFxkZWZcXGZyYWN7XFxyZWxheH0gXFxmcmFjMTJcbiAgICB0b2subm9leHBhbmQgPSB0cnVlO1xuICAgIG1hY3JvID0ge1xuICAgICAgdG9rZW5zOiBbdG9rXSxcbiAgICAgIG51bUFyZ3M6IDAsXG4gICAgICAvLyByZXByb2R1Y2UgdGhlIHNhbWUgYmVoYXZpb3IgaW4gZXhwYW5zaW9uXG4gICAgICB1bmV4cGFuZGFibGU6ICFwYXJzZXIuZ3VsbGV0LmlzRXhwYW5kYWJsZSh0b2sudGV4dClcbiAgICB9O1xuICB9XG5cbiAgcGFyc2VyLmd1bGxldC5tYWNyb3Muc2V0KG5hbWUsIG1hY3JvLCBnbG9iYWwpO1xufTsgLy8gPGFzc2lnbm1lbnQ+IC0+IDxub24tbWFjcm8gYXNzaWdubWVudD58PG1hY3JvIGFzc2lnbm1lbnQ+XG4vLyA8bm9uLW1hY3JvIGFzc2lnbm1lbnQ+IC0+IDxzaW1wbGUgYXNzaWdubWVudD58XFxnbG9iYWw8bm9uLW1hY3JvIGFzc2lnbm1lbnQ+XG4vLyA8bWFjcm8gYXNzaWdubWVudD4gLT4gPGRlZmluaXRpb24+fDxwcmVmaXg+PG1hY3JvIGFzc2lnbm1lbnQ+XG4vLyA8cHJlZml4PiAtPiBcXGdsb2JhbHxcXGxvbmd8XFxvdXRlclxuXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJpbnRlcm5hbFwiLFxuICBuYW1lczogW1wiXFxcXGdsb2JhbFwiLCBcIlxcXFxsb25nXCIsIFwiXFxcXFxcXFxnbG9iYWxsb25nXCIgLy8gY2Fu4oCZdCBiZSBlbnRlcmVkIGRpcmVjdGx5XG4gIF0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMCxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlcixcbiAgICAgIGZ1bmNOYW1lXG4gICAgfSA9IF9yZWY7XG4gICAgcGFyc2VyLmNvbnN1bWVTcGFjZXMoKTtcbiAgICB2YXIgdG9rZW4gPSBwYXJzZXIuZmV0Y2goKTtcblxuICAgIGlmIChnbG9iYWxNYXBbdG9rZW4udGV4dF0pIHtcbiAgICAgIC8vIEthVGVYIGRvZXNuJ3QgaGF2ZSBcXHBhciwgc28gaWdub3JlIFxcbG9uZ1xuICAgICAgaWYgKGZ1bmNOYW1lID09PSBcIlxcXFxnbG9iYWxcIiB8fCBmdW5jTmFtZSA9PT0gXCJcXFxcXFxcXGdsb2JhbGxvbmdcIikge1xuICAgICAgICB0b2tlbi50ZXh0ID0gZ2xvYmFsTWFwW3Rva2VuLnRleHRdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXNzZXJ0Tm9kZVR5cGUocGFyc2VyLnBhcnNlRnVuY3Rpb24oKSwgXCJpbnRlcm5hbFwiKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkludmFsaWQgdG9rZW4gYWZ0ZXIgbWFjcm8gcHJlZml4XCIsIHRva2VuKTtcbiAgfVxuXG59KTsgLy8gQmFzaWMgc3VwcG9ydCBmb3IgbWFjcm8gZGVmaW5pdGlvbnM6IFxcZGVmLCBcXGdkZWYsIFxcZWRlZiwgXFx4ZGVmXG4vLyA8ZGVmaW5pdGlvbj4gLT4gPGRlZj48Y29udHJvbCBzZXF1ZW5jZT48ZGVmaW5pdGlvbiB0ZXh0PlxuLy8gPGRlZj4gLT4gXFxkZWZ8XFxnZGVmfFxcZWRlZnxcXHhkZWZcbi8vIDxkZWZpbml0aW9uIHRleHQ+IC0+IDxwYXJhbWV0ZXIgdGV4dD48bGVmdCBicmFjZT48YmFsYW5jZWQgdGV4dD48cmlnaHQgYnJhY2U+XG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJpbnRlcm5hbFwiLFxuICBuYW1lczogW1wiXFxcXGRlZlwiLCBcIlxcXFxnZGVmXCIsIFwiXFxcXGVkZWZcIiwgXCJcXFxceGRlZlwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAwLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWUsXG4gICAgcHJpbWl0aXZlOiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmMikge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmMjtcbiAgICB2YXIgdG9rID0gcGFyc2VyLmd1bGxldC5wb3BUb2tlbigpO1xuICAgIHZhciBuYW1lID0gdG9rLnRleHQ7XG5cbiAgICBpZiAoL14oPzpbXFxcXHt9JCYjXl9dfEVPRikkLy50ZXN0KG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkV4cGVjdGVkIGEgY29udHJvbCBzZXF1ZW5jZVwiLCB0b2spO1xuICAgIH1cblxuICAgIHZhciBudW1BcmdzID0gMDtcbiAgICB2YXIgaW5zZXJ0O1xuICAgIHZhciBkZWxpbWl0ZXJzID0gW1tdXTsgLy8gPHBhcmFtZXRlciB0ZXh0PiBjb250YWlucyBubyBicmFjZXNcblxuICAgIHdoaWxlIChwYXJzZXIuZ3VsbGV0LmZ1dHVyZSgpLnRleHQgIT09IFwie1wiKSB7XG4gICAgICB0b2sgPSBwYXJzZXIuZ3VsbGV0LnBvcFRva2VuKCk7XG5cbiAgICAgIGlmICh0b2sudGV4dCA9PT0gXCIjXCIpIHtcbiAgICAgICAgLy8gSWYgdGhlIHZlcnkgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIDxwYXJhbWV0ZXIgdGV4dD4gaXMgIywgc28gdGhhdFxuICAgICAgICAvLyB0aGlzICMgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgeywgVGVYIHdpbGwgYmVoYXZlIGFzIGlmIHRoZSB7XG4gICAgICAgIC8vIGhhZCBiZWVuIGluc2VydGVkIGF0IHRoZSByaWdodCBlbmQgb2YgYm90aCB0aGUgcGFyYW1ldGVyIHRleHRcbiAgICAgICAgLy8gYW5kIHRoZSByZXBsYWNlbWVudCB0ZXh0LlxuICAgICAgICBpZiAocGFyc2VyLmd1bGxldC5mdXR1cmUoKS50ZXh0ID09PSBcIntcIikge1xuICAgICAgICAgIGluc2VydCA9IHBhcnNlci5ndWxsZXQuZnV0dXJlKCk7XG4gICAgICAgICAgZGVsaW1pdGVyc1tudW1BcmdzXS5wdXNoKFwie1wiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSAvLyBBIHBhcmFtZXRlciwgdGhlIGZpcnN0IGFwcGVhcmFuY2Ugb2YgIyBtdXN0IGJlIGZvbGxvd2VkIGJ5IDEsXG4gICAgICAgIC8vIHRoZSBuZXh0IGJ5IDIsIGFuZCBzbyBvbjsgdXAgdG8gbmluZSAj4oCZcyBhcmUgYWxsb3dlZFxuXG5cbiAgICAgICAgdG9rID0gcGFyc2VyLmd1bGxldC5wb3BUb2tlbigpO1xuXG4gICAgICAgIGlmICghL15bMS05XSQvLnRlc3QodG9rLnRleHQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50IG51bWJlciBcXFwiXCIgKyB0b2sudGV4dCArIFwiXFxcIlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJzZUludCh0b2sudGV4dCkgIT09IG51bUFyZ3MgKyAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJBcmd1bWVudCBudW1iZXIgXFxcIlwiICsgdG9rLnRleHQgKyBcIlxcXCIgb3V0IG9mIG9yZGVyXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgbnVtQXJncysrO1xuICAgICAgICBkZWxpbWl0ZXJzLnB1c2goW10pO1xuICAgICAgfSBlbHNlIGlmICh0b2sudGV4dCA9PT0gXCJFT0ZcIikge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkV4cGVjdGVkIGEgbWFjcm8gZGVmaW5pdGlvblwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGltaXRlcnNbbnVtQXJnc10ucHVzaCh0b2sudGV4dCk7XG4gICAgICB9XG4gICAgfSAvLyByZXBsYWNlbWVudCB0ZXh0LCBlbmNsb3NlZCBpbiAneycgYW5kICd9JyBhbmQgcHJvcGVybHkgbmVzdGVkXG5cblxuICAgIHZhciB7XG4gICAgICB0b2tlbnNcbiAgICB9ID0gcGFyc2VyLmd1bGxldC5jb25zdW1lQXJnKCk7XG5cbiAgICBpZiAoaW5zZXJ0KSB7XG4gICAgICB0b2tlbnMudW5zaGlmdChpbnNlcnQpO1xuICAgIH1cblxuICAgIGlmIChmdW5jTmFtZSA9PT0gXCJcXFxcZWRlZlwiIHx8IGZ1bmNOYW1lID09PSBcIlxcXFx4ZGVmXCIpIHtcbiAgICAgIHRva2VucyA9IHBhcnNlci5ndWxsZXQuZXhwYW5kVG9rZW5zKHRva2Vucyk7XG4gICAgICB0b2tlbnMucmV2ZXJzZSgpOyAvLyB0byBmaXQgaW4gd2l0aCBzdGFjayBvcmRlclxuICAgIH0gLy8gRmluYWwgYXJnIGlzIHRoZSBleHBhbnNpb24gb2YgdGhlIG1hY3JvXG5cblxuICAgIHBhcnNlci5ndWxsZXQubWFjcm9zLnNldChuYW1lLCB7XG4gICAgICB0b2tlbnMsXG4gICAgICBudW1BcmdzLFxuICAgICAgZGVsaW1pdGVyc1xuICAgIH0sIGZ1bmNOYW1lID09PSBnbG9iYWxNYXBbZnVuY05hbWVdKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJpbnRlcm5hbFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGVcbiAgICB9O1xuICB9XG5cbn0pOyAvLyA8c2ltcGxlIGFzc2lnbm1lbnQ+IC0+IDxsZXQgYXNzaWdubWVudD5cbi8vIDxsZXQgYXNzaWdubWVudD4gLT4gXFxmdXR1cmVsZXQ8Y29udHJvbCBzZXF1ZW5jZT48dG9rZW4+PHRva2VuPlxuLy8gICAgIHwgXFxsZXQ8Y29udHJvbCBzZXF1ZW5jZT48ZXF1YWxzPjxvbmUgb3B0aW9uYWwgc3BhY2U+PHRva2VuPlxuLy8gPGVxdWFscz4gLT4gPG9wdGlvbmFsIHNwYWNlcz58PG9wdGlvbmFsIHNwYWNlcz49XG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJpbnRlcm5hbFwiLFxuICBuYW1lczogW1wiXFxcXGxldFwiLCBcIlxcXFxcXFxcZ2xvYmFsbGV0XCIgLy8gY2Fu4oCZdCBiZSBlbnRlcmVkIGRpcmVjdGx5XG4gIF0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMCxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlLFxuICAgIHByaW1pdGl2ZTogdHJ1ZVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZjMpIHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyLFxuICAgICAgZnVuY05hbWVcbiAgICB9ID0gX3JlZjM7XG4gICAgdmFyIG5hbWUgPSBjaGVja0NvbnRyb2xTZXF1ZW5jZShwYXJzZXIuZ3VsbGV0LnBvcFRva2VuKCkpO1xuICAgIHBhcnNlci5ndWxsZXQuY29uc3VtZVNwYWNlcygpO1xuICAgIHZhciB0b2sgPSBnZXRSSFMocGFyc2VyKTtcbiAgICBsZXRDb21tYW5kKHBhcnNlciwgbmFtZSwgdG9rLCBmdW5jTmFtZSA9PT0gXCJcXFxcXFxcXGdsb2JhbGxldFwiKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJpbnRlcm5hbFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGVcbiAgICB9O1xuICB9XG5cbn0pOyAvLyByZWY6IGh0dHBzOi8vd3d3LnR1Zy5vcmcvVFVHYm9hdC90YjA5LTMvdGIyMmJlY2h0b2xzaGVpbS5wZGZcblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImludGVybmFsXCIsXG4gIG5hbWVzOiBbXCJcXFxcZnV0dXJlbGV0XCIsIFwiXFxcXFxcXFxnbG9iYWxmdXR1cmVcIiAvLyBjYW7igJl0IGJlIGVudGVyZWQgZGlyZWN0bHlcbiAgXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAwLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWUsXG4gICAgcHJpbWl0aXZlOiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmNCkge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmNDtcbiAgICB2YXIgbmFtZSA9IGNoZWNrQ29udHJvbFNlcXVlbmNlKHBhcnNlci5ndWxsZXQucG9wVG9rZW4oKSk7XG4gICAgdmFyIG1pZGRsZSA9IHBhcnNlci5ndWxsZXQucG9wVG9rZW4oKTtcbiAgICB2YXIgdG9rID0gcGFyc2VyLmd1bGxldC5wb3BUb2tlbigpO1xuICAgIGxldENvbW1hbmQocGFyc2VyLCBuYW1lLCB0b2ssIGZ1bmNOYW1lID09PSBcIlxcXFxcXFxcZ2xvYmFsZnV0dXJlXCIpO1xuICAgIHBhcnNlci5ndWxsZXQucHVzaFRva2VuKHRvayk7XG4gICAgcGFyc2VyLmd1bGxldC5wdXNoVG9rZW4obWlkZGxlKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJpbnRlcm5hbFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGVcbiAgICB9O1xuICB9XG5cbn0pO1xuXG4vKipcbiAqIFRoaXMgZmlsZSBkZWFscyB3aXRoIGNyZWF0aW5nIGRlbGltaXRlcnMgb2YgdmFyaW91cyBzaXplcy4gVGhlIFRlWGJvb2tcbiAqIGRpc2N1c3NlcyB0aGVzZSByb3V0aW5lcyBvbiBwYWdlIDQ0MS00NDIsIGluIHRoZSBcIkFub3RoZXIgc3Vicm91dGluZSBzZXRzIGJveFxuICogeCB0byBhIHNwZWNpZmllZCB2YXJpYWJsZSBkZWxpbWl0ZXJcIiBwYXJhZ3JhcGguXG4gKlxuICogVGhlcmUgYXJlIHRocmVlIG1haW4gcm91dGluZXMgaGVyZS4gYG1ha2VTbWFsbERlbGltYCBtYWtlcyBhIGRlbGltaXRlciBpbiB0aGVcbiAqIG5vcm1hbCBmb250LCBidXQgaW4gZWl0aGVyIHRleHQsIHNjcmlwdCwgb3Igc2NyaXB0c2NyaXB0IHN0eWxlLlxuICogYG1ha2VMYXJnZURlbGltYCBtYWtlcyBhIGRlbGltaXRlciBpbiB0ZXh0c3R5bGUsIGJ1dCBpbiBvbmUgb2YgdGhlIFNpemUxLFxuICogU2l6ZTIsIFNpemUzLCBvciBTaXplNCBmb250cy4gYG1ha2VTdGFja2VkRGVsaW1gIG1ha2VzIGEgZGVsaW1pdGVyIG91dCBvZlxuICogc21hbGxlciBwaWVjZXMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2Ygb25lIGFub3RoZXIuXG4gKlxuICogVGhlIGZ1bmN0aW9ucyB0YWtlIGEgcGFyYW1ldGVyIGBjZW50ZXJgLCB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSBkZWxpbWl0ZXJcbiAqIHNob3VsZCBiZSBjZW50ZXJlZCBhcm91bmQgdGhlIGF4aXMuXG4gKlxuICogVGhlbiwgdGhlcmUgYXJlIHRocmVlIGV4cG9zZWQgZnVuY3Rpb25zLiBgc2l6ZWREZWxpbWAgbWFrZXMgYSBkZWxpbWl0ZXIgaW5cbiAqIG9uZSBvZiB0aGUgZ2l2ZW4gc2l6ZXMuIFRoaXMgaXMgdXNlZCBmb3IgdGhpbmdzIGxpa2UgYFxcYmlnbGAuXG4gKiBgY3VzdG9tU2l6ZWREZWxpbWAgbWFrZXMgYSBkZWxpbWl0ZXIgd2l0aCBhIGdpdmVuIHRvdGFsIGhlaWdodCtkZXB0aC4gSXQgaXNcbiAqIGNhbGxlZCBpbiBwbGFjZXMgbGlrZSBgXFxzcXJ0YC4gYGxlZnRSaWdodERlbGltYCBtYWtlcyBhbiBhcHByb3ByaWF0ZVxuICogZGVsaW1pdGVyIHdoaWNoIHN1cnJvdW5kcyBhbiBleHByZXNzaW9uIG9mIGEgZ2l2ZW4gaGVpZ2h0IGFuIGRlcHRoLiBJdCBpc1xuICogdXNlZCBpbiBgXFxsZWZ0YCBhbmQgYFxccmlnaHRgLlxuICovXG5cbi8qKlxuICogR2V0IHRoZSBtZXRyaWNzIGZvciBhIGdpdmVuIHN5bWJvbCBhbmQgZm9udCwgYWZ0ZXIgdHJhbnNmb3JtYXRpb24gKGkuZS5cbiAqIGFmdGVyIGZvbGxvd2luZyByZXBsYWNlbWVudCBmcm9tIHN5bWJvbHMuanMpXG4gKi9cbnZhciBnZXRNZXRyaWNzID0gZnVuY3Rpb24gZ2V0TWV0cmljcyhzeW1ib2wsIGZvbnQsIG1vZGUpIHtcbiAgdmFyIHJlcGxhY2UgPSBzeW1ib2xzLm1hdGhbc3ltYm9sXSAmJiBzeW1ib2xzLm1hdGhbc3ltYm9sXS5yZXBsYWNlO1xuICB2YXIgbWV0cmljcyA9IGdldENoYXJhY3Rlck1ldHJpY3MocmVwbGFjZSB8fCBzeW1ib2wsIGZvbnQsIG1vZGUpO1xuXG4gIGlmICghbWV0cmljcykge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIHN5bWJvbCBcIiArIHN5bWJvbCArIFwiIGFuZCBmb250IHNpemUgXCIgKyBmb250ICsgXCIuXCIpO1xuICB9XG5cbiAgcmV0dXJuIG1ldHJpY3M7XG59O1xuLyoqXG4gKiBQdXRzIGEgZGVsaW1pdGVyIHNwYW4gaW4gYSBnaXZlbiBzdHlsZSwgYW5kIGFkZHMgYXBwcm9wcmlhdGUgaGVpZ2h0LCBkZXB0aCxcbiAqIGFuZCBtYXhGb250U2l6ZXMuXG4gKi9cblxuXG52YXIgc3R5bGVXcmFwID0gZnVuY3Rpb24gc3R5bGVXcmFwKGRlbGltLCB0b1N0eWxlLCBvcHRpb25zLCBjbGFzc2VzKSB7XG4gIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdCYXNlU3R5bGUodG9TdHlsZSk7XG4gIHZhciBzcGFuID0gYnVpbGRDb21tb24ubWFrZVNwYW4oY2xhc3Nlcy5jb25jYXQobmV3T3B0aW9ucy5zaXppbmdDbGFzc2VzKG9wdGlvbnMpKSwgW2RlbGltXSwgb3B0aW9ucyk7XG4gIHZhciBkZWxpbVNpemVNdWx0aXBsaWVyID0gbmV3T3B0aW9ucy5zaXplTXVsdGlwbGllciAvIG9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gIHNwYW4uaGVpZ2h0ICo9IGRlbGltU2l6ZU11bHRpcGxpZXI7XG4gIHNwYW4uZGVwdGggKj0gZGVsaW1TaXplTXVsdGlwbGllcjtcbiAgc3Bhbi5tYXhGb250U2l6ZSA9IG5ld09wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gIHJldHVybiBzcGFuO1xufTtcblxudmFyIGNlbnRlclNwYW4gPSBmdW5jdGlvbiBjZW50ZXJTcGFuKHNwYW4sIG9wdGlvbnMsIHN0eWxlKSB7XG4gIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdCYXNlU3R5bGUoc3R5bGUpO1xuICB2YXIgc2hpZnQgPSAoMSAtIG9wdGlvbnMuc2l6ZU11bHRpcGxpZXIgLyBuZXdPcHRpb25zLnNpemVNdWx0aXBsaWVyKSAqIG9wdGlvbnMuZm9udE1ldHJpY3MoKS5heGlzSGVpZ2h0O1xuICBzcGFuLmNsYXNzZXMucHVzaChcImRlbGltY2VudGVyXCIpO1xuICBzcGFuLnN0eWxlLnRvcCA9IG1ha2VFbShzaGlmdCk7XG4gIHNwYW4uaGVpZ2h0IC09IHNoaWZ0O1xuICBzcGFuLmRlcHRoICs9IHNoaWZ0O1xufTtcbi8qKlxuICogTWFrZXMgYSBzbWFsbCBkZWxpbWl0ZXIuIFRoaXMgaXMgYSBkZWxpbWl0ZXIgdGhhdCBjb21lcyBpbiB0aGUgTWFpbi1SZWd1bGFyXG4gKiBmb250LCBidXQgaXMgcmVzdHlsZWQgdG8gZWl0aGVyIGJlIGluIHRleHRzdHlsZSwgc2NyaXB0c3R5bGUsIG9yXG4gKiBzY3JpcHRzY3JpcHRzdHlsZS5cbiAqL1xuXG5cbnZhciBtYWtlU21hbGxEZWxpbSA9IGZ1bmN0aW9uIG1ha2VTbWFsbERlbGltKGRlbGltLCBzdHlsZSwgY2VudGVyLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKSB7XG4gIHZhciB0ZXh0ID0gYnVpbGRDb21tb24ubWFrZVN5bWJvbChkZWxpbSwgXCJNYWluLVJlZ3VsYXJcIiwgbW9kZSwgb3B0aW9ucyk7XG4gIHZhciBzcGFuID0gc3R5bGVXcmFwKHRleHQsIHN0eWxlLCBvcHRpb25zLCBjbGFzc2VzKTtcblxuICBpZiAoY2VudGVyKSB7XG4gICAgY2VudGVyU3BhbihzcGFuLCBvcHRpb25zLCBzdHlsZSk7XG4gIH1cblxuICByZXR1cm4gc3Bhbjtcbn07XG4vKipcbiAqIEJ1aWxkcyBhIHN5bWJvbCBpbiB0aGUgZ2l2ZW4gZm9udCBzaXplIChub3RlIHNpemUgaXMgYW4gaW50ZWdlcilcbiAqL1xuXG5cbnZhciBtYXRocm1TaXplID0gZnVuY3Rpb24gbWF0aHJtU2l6ZSh2YWx1ZSwgc2l6ZSwgbW9kZSwgb3B0aW9ucykge1xuICByZXR1cm4gYnVpbGRDb21tb24ubWFrZVN5bWJvbCh2YWx1ZSwgXCJTaXplXCIgKyBzaXplICsgXCItUmVndWxhclwiLCBtb2RlLCBvcHRpb25zKTtcbn07XG4vKipcbiAqIE1ha2VzIGEgbGFyZ2UgZGVsaW1pdGVyLiBUaGlzIGlzIGEgZGVsaW1pdGVyIHRoYXQgY29tZXMgaW4gdGhlIFNpemUxLCBTaXplMixcbiAqIFNpemUzLCBvciBTaXplNCBmb250cy4gSXQgaXMgYWx3YXlzIHJlbmRlcmVkIGluIHRleHRzdHlsZS5cbiAqL1xuXG5cbnZhciBtYWtlTGFyZ2VEZWxpbSA9IGZ1bmN0aW9uIG1ha2VMYXJnZURlbGltKGRlbGltLCBzaXplLCBjZW50ZXIsIG9wdGlvbnMsIG1vZGUsIGNsYXNzZXMpIHtcbiAgdmFyIGlubmVyID0gbWF0aHJtU2l6ZShkZWxpbSwgc2l6ZSwgbW9kZSwgb3B0aW9ucyk7XG4gIHZhciBzcGFuID0gc3R5bGVXcmFwKGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcImRlbGltc2l6aW5nXCIsIFwic2l6ZVwiICsgc2l6ZV0sIFtpbm5lcl0sIG9wdGlvbnMpLCBTdHlsZSQxLlRFWFQsIG9wdGlvbnMsIGNsYXNzZXMpO1xuXG4gIGlmIChjZW50ZXIpIHtcbiAgICBjZW50ZXJTcGFuKHNwYW4sIG9wdGlvbnMsIFN0eWxlJDEuVEVYVCk7XG4gIH1cblxuICByZXR1cm4gc3Bhbjtcbn07XG4vKipcbiAqIE1ha2UgYSBzcGFuIGZyb20gYSBmb250IGdseXBoIHdpdGggdGhlIGdpdmVuIG9mZnNldCBhbmQgaW4gdGhlIGdpdmVuIGZvbnQuXG4gKiBUaGlzIGlzIHVzZWQgaW4gbWFrZVN0YWNrZWREZWxpbSB0byBtYWtlIHRoZSBzdGFja2luZyBwaWVjZXMgZm9yIHRoZSBkZWxpbWl0ZXIuXG4gKi9cblxuXG52YXIgbWFrZUdseXBoU3BhbiA9IGZ1bmN0aW9uIG1ha2VHbHlwaFNwYW4oc3ltYm9sLCBmb250LCBtb2RlKSB7XG4gIHZhciBzaXplQ2xhc3M7IC8vIEFwcGx5IHRoZSBjb3JyZWN0IENTUyBjbGFzcyB0byBjaG9vc2UgdGhlIHJpZ2h0IGZvbnQuXG5cbiAgaWYgKGZvbnQgPT09IFwiU2l6ZTEtUmVndWxhclwiKSB7XG4gICAgc2l6ZUNsYXNzID0gXCJkZWxpbS1zaXplMVwiO1xuICB9IGVsc2VcbiAgICAvKiBpZiAoZm9udCA9PT0gXCJTaXplNC1SZWd1bGFyXCIpICovXG4gICAge1xuICAgICAgc2l6ZUNsYXNzID0gXCJkZWxpbS1zaXplNFwiO1xuICAgIH1cblxuICB2YXIgY29ybmVyID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wiZGVsaW1zaXppbmdpbm5lclwiLCBzaXplQ2xhc3NdLCBbYnVpbGRDb21tb24ubWFrZVNwYW4oW10sIFtidWlsZENvbW1vbi5tYWtlU3ltYm9sKHN5bWJvbCwgZm9udCwgbW9kZSldKV0pOyAvLyBTaW5jZSB0aGlzIHdpbGwgYmUgcGFzc2VkIGludG8gYG1ha2VWTGlzdGAgaW4gdGhlIGVuZCwgd3JhcCB0aGUgZWxlbWVudFxuICAvLyBpbiB0aGUgYXBwcm9wcmlhdGUgdGFnIHRoYXQgVkxpc3QgdXNlcy5cblxuICByZXR1cm4ge1xuICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgIGVsZW06IGNvcm5lclxuICB9O1xufTtcblxudmFyIG1ha2VJbm5lciA9IGZ1bmN0aW9uIG1ha2VJbm5lcihjaCwgaGVpZ2h0LCBvcHRpb25zKSB7XG4gIC8vIENyZWF0ZSBhIHNwYW4gd2l0aCBpbmxpbmUgU1ZHIGZvciB0aGUgaW5uZXIgcGFydCBvZiBhIHRhbGwgc3RhY2tlZCBkZWxpbWl0ZXIuXG4gIHZhciB3aWR0aCA9IGZvbnRNZXRyaWNzRGF0YVsnU2l6ZTQtUmVndWxhciddW2NoLmNoYXJDb2RlQXQoMCldID8gZm9udE1ldHJpY3NEYXRhWydTaXplNC1SZWd1bGFyJ11bY2guY2hhckNvZGVBdCgwKV1bNF0gOiBmb250TWV0cmljc0RhdGFbJ1NpemUxLVJlZ3VsYXInXVtjaC5jaGFyQ29kZUF0KDApXVs0XTtcbiAgdmFyIHBhdGggPSBuZXcgUGF0aE5vZGUoXCJpbm5lclwiLCBpbm5lclBhdGgoY2gsIE1hdGgucm91bmQoMTAwMCAqIGhlaWdodCkpKTtcbiAgdmFyIHN2Z05vZGUgPSBuZXcgU3ZnTm9kZShbcGF0aF0sIHtcbiAgICBcIndpZHRoXCI6IG1ha2VFbSh3aWR0aCksXG4gICAgXCJoZWlnaHRcIjogbWFrZUVtKGhlaWdodCksXG4gICAgLy8gT3ZlcnJpZGUgQ1NTIHJ1bGUgYC5rYXRleCBzdmcgeyB3aWR0aDogMTAwJSB9YFxuICAgIFwic3R5bGVcIjogXCJ3aWR0aDpcIiArIG1ha2VFbSh3aWR0aCksXG4gICAgXCJ2aWV3Qm94XCI6IFwiMCAwIFwiICsgMTAwMCAqIHdpZHRoICsgXCIgXCIgKyBNYXRoLnJvdW5kKDEwMDAgKiBoZWlnaHQpLFxuICAgIFwicHJlc2VydmVBc3BlY3RSYXRpb1wiOiBcInhNaW5ZTWluXCJcbiAgfSk7XG4gIHZhciBzcGFuID0gYnVpbGRDb21tb24ubWFrZVN2Z1NwYW4oW10sIFtzdmdOb2RlXSwgb3B0aW9ucyk7XG4gIHNwYW4uaGVpZ2h0ID0gaGVpZ2h0O1xuICBzcGFuLnN0eWxlLmhlaWdodCA9IG1ha2VFbShoZWlnaHQpO1xuICBzcGFuLnN0eWxlLndpZHRoID0gbWFrZUVtKHdpZHRoKTtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBcImVsZW1cIixcbiAgICBlbGVtOiBzcGFuXG4gIH07XG59OyAvLyBIZWxwZXJzIGZvciBtYWtlU3RhY2tlZERlbGltXG5cblxudmFyIGxhcEluRW1zID0gMC4wMDg7XG52YXIgbGFwID0ge1xuICB0eXBlOiBcImtlcm5cIixcbiAgc2l6ZTogLTEgKiBsYXBJbkVtc1xufTtcbnZhciB2ZXJ0cyA9IFtcInxcIiwgXCJcXFxcbHZlcnRcIiwgXCJcXFxccnZlcnRcIiwgXCJcXFxcdmVydFwiXTtcbnZhciBkb3VibGVWZXJ0cyA9IFtcIlxcXFx8XCIsIFwiXFxcXGxWZXJ0XCIsIFwiXFxcXHJWZXJ0XCIsIFwiXFxcXFZlcnRcIl07XG4vKipcbiAqIE1ha2UgYSBzdGFja2VkIGRlbGltaXRlciBvdXQgb2YgYSBnaXZlbiBkZWxpbWl0ZXIsIHdpdGggdGhlIHRvdGFsIGhlaWdodCBhdFxuICogbGVhc3QgYGhlaWdodFRvdGFsYC4gVGhpcyByb3V0aW5lIGlzIG1lbnRpb25lZCBvbiBwYWdlIDQ0MiBvZiB0aGUgVGVYYm9vay5cbiAqL1xuXG52YXIgbWFrZVN0YWNrZWREZWxpbSA9IGZ1bmN0aW9uIG1ha2VTdGFja2VkRGVsaW0oZGVsaW0sIGhlaWdodFRvdGFsLCBjZW50ZXIsIG9wdGlvbnMsIG1vZGUsIGNsYXNzZXMpIHtcbiAgLy8gVGhlcmUgYXJlIGZvdXIgcGFydHMsIHRoZSB0b3AsIGFuIG9wdGlvbmFsIG1pZGRsZSwgYSByZXBlYXRlZCBwYXJ0LCBhbmQgYVxuICAvLyBib3R0b20uXG4gIHZhciB0b3A7XG4gIHZhciBtaWRkbGU7XG4gIHZhciByZXBlYXQ7XG4gIHZhciBib3R0b207XG4gIHZhciBzdmdMYWJlbCA9IFwiXCI7XG4gIHZhciB2aWV3Qm94V2lkdGggPSAwO1xuICB0b3AgPSByZXBlYXQgPSBib3R0b20gPSBkZWxpbTtcbiAgbWlkZGxlID0gbnVsbDsgLy8gQWxzbyBrZWVwIHRyYWNrIG9mIHdoYXQgZm9udCB0aGUgZGVsaW1pdGVycyBhcmUgaW5cblxuICB2YXIgZm9udCA9IFwiU2l6ZTEtUmVndWxhclwiOyAvLyBXZSBzZXQgdGhlIHBhcnRzIGFuZCBmb250IGJhc2VkIG9uIHRoZSBzeW1ib2wuIE5vdGUgdGhhdCB3ZSB1c2VcbiAgLy8gJ1xcdTIzZDAnIGluc3RlYWQgb2YgJ3wnIGFuZCAnXFx1MjAxNicgaW5zdGVhZCBvZiAnXFxcXHwnIGZvciB0aGVcbiAgLy8gcmVwZWF0cyBvZiB0aGUgYXJyb3dzXG5cbiAgaWYgKGRlbGltID09PSBcIlxcXFx1cGFycm93XCIpIHtcbiAgICByZXBlYXQgPSBib3R0b20gPSBcIlxcdTIzZDBcIjtcbiAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJcXFxcVXBhcnJvd1wiKSB7XG4gICAgcmVwZWF0ID0gYm90dG9tID0gXCJcXHUyMDE2XCI7XG4gIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXFxcXGRvd25hcnJvd1wiKSB7XG4gICAgdG9wID0gcmVwZWF0ID0gXCJcXHUyM2QwXCI7XG4gIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXFxcXERvd25hcnJvd1wiKSB7XG4gICAgdG9wID0gcmVwZWF0ID0gXCJcXHUyMDE2XCI7XG4gIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXFxcXHVwZG93bmFycm93XCIpIHtcbiAgICB0b3AgPSBcIlxcXFx1cGFycm93XCI7XG4gICAgcmVwZWF0ID0gXCJcXHUyM2QwXCI7XG4gICAgYm90dG9tID0gXCJcXFxcZG93bmFycm93XCI7XG4gIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXFxcXFVwZG93bmFycm93XCIpIHtcbiAgICB0b3AgPSBcIlxcXFxVcGFycm93XCI7XG4gICAgcmVwZWF0ID0gXCJcXHUyMDE2XCI7XG4gICAgYm90dG9tID0gXCJcXFxcRG93bmFycm93XCI7XG4gIH0gZWxzZSBpZiAodXRpbHMuY29udGFpbnModmVydHMsIGRlbGltKSkge1xuICAgIHJlcGVhdCA9IFwiXFx1MjIyM1wiO1xuICAgIHN2Z0xhYmVsID0gXCJ2ZXJ0XCI7XG4gICAgdmlld0JveFdpZHRoID0gMzMzO1xuICB9IGVsc2UgaWYgKHV0aWxzLmNvbnRhaW5zKGRvdWJsZVZlcnRzLCBkZWxpbSkpIHtcbiAgICByZXBlYXQgPSBcIlxcdTIyMjVcIjtcbiAgICBzdmdMYWJlbCA9IFwiZG91YmxldmVydFwiO1xuICAgIHZpZXdCb3hXaWR0aCA9IDU1NjtcbiAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJbXCIgfHwgZGVsaW0gPT09IFwiXFxcXGxicmFja1wiKSB7XG4gICAgdG9wID0gXCJcXHUyM2ExXCI7XG4gICAgcmVwZWF0ID0gXCJcXHUyM2EyXCI7XG4gICAgYm90dG9tID0gXCJcXHUyM2EzXCI7XG4gICAgZm9udCA9IFwiU2l6ZTQtUmVndWxhclwiO1xuICAgIHN2Z0xhYmVsID0gXCJsYnJhY2tcIjtcbiAgICB2aWV3Qm94V2lkdGggPSA2Njc7XG4gIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXVwiIHx8IGRlbGltID09PSBcIlxcXFxyYnJhY2tcIikge1xuICAgIHRvcCA9IFwiXFx1MjNhNFwiO1xuICAgIHJlcGVhdCA9IFwiXFx1MjNhNVwiO1xuICAgIGJvdHRvbSA9IFwiXFx1MjNhNlwiO1xuICAgIGZvbnQgPSBcIlNpemU0LVJlZ3VsYXJcIjtcbiAgICBzdmdMYWJlbCA9IFwicmJyYWNrXCI7XG4gICAgdmlld0JveFdpZHRoID0gNjY3O1xuICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFxsZmxvb3JcIiB8fCBkZWxpbSA9PT0gXCJcXHUyMzBhXCIpIHtcbiAgICByZXBlYXQgPSB0b3AgPSBcIlxcdTIzYTJcIjtcbiAgICBib3R0b20gPSBcIlxcdTIzYTNcIjtcbiAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gICAgc3ZnTGFiZWwgPSBcImxmbG9vclwiO1xuICAgIHZpZXdCb3hXaWR0aCA9IDY2NztcbiAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJcXFxcbGNlaWxcIiB8fCBkZWxpbSA9PT0gXCJcXHUyMzA4XCIpIHtcbiAgICB0b3AgPSBcIlxcdTIzYTFcIjtcbiAgICByZXBlYXQgPSBib3R0b20gPSBcIlxcdTIzYTJcIjtcbiAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gICAgc3ZnTGFiZWwgPSBcImxjZWlsXCI7XG4gICAgdmlld0JveFdpZHRoID0gNjY3O1xuICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFxyZmxvb3JcIiB8fCBkZWxpbSA9PT0gXCJcXHUyMzBiXCIpIHtcbiAgICByZXBlYXQgPSB0b3AgPSBcIlxcdTIzYTVcIjtcbiAgICBib3R0b20gPSBcIlxcdTIzYTZcIjtcbiAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gICAgc3ZnTGFiZWwgPSBcInJmbG9vclwiO1xuICAgIHZpZXdCb3hXaWR0aCA9IDY2NztcbiAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJcXFxccmNlaWxcIiB8fCBkZWxpbSA9PT0gXCJcXHUyMzA5XCIpIHtcbiAgICB0b3AgPSBcIlxcdTIzYTRcIjtcbiAgICByZXBlYXQgPSBib3R0b20gPSBcIlxcdTIzYTVcIjtcbiAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gICAgc3ZnTGFiZWwgPSBcInJjZWlsXCI7XG4gICAgdmlld0JveFdpZHRoID0gNjY3O1xuICB9IGVsc2UgaWYgKGRlbGltID09PSBcIihcIiB8fCBkZWxpbSA9PT0gXCJcXFxcbHBhcmVuXCIpIHtcbiAgICB0b3AgPSBcIlxcdTIzOWJcIjtcbiAgICByZXBlYXQgPSBcIlxcdTIzOWNcIjtcbiAgICBib3R0b20gPSBcIlxcdTIzOWRcIjtcbiAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gICAgc3ZnTGFiZWwgPSBcImxwYXJlblwiO1xuICAgIHZpZXdCb3hXaWR0aCA9IDg3NTtcbiAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCIpXCIgfHwgZGVsaW0gPT09IFwiXFxcXHJwYXJlblwiKSB7XG4gICAgdG9wID0gXCJcXHUyMzllXCI7XG4gICAgcmVwZWF0ID0gXCJcXHUyMzlmXCI7XG4gICAgYm90dG9tID0gXCJcXHUyM2EwXCI7XG4gICAgZm9udCA9IFwiU2l6ZTQtUmVndWxhclwiO1xuICAgIHN2Z0xhYmVsID0gXCJycGFyZW5cIjtcbiAgICB2aWV3Qm94V2lkdGggPSA4NzU7XG4gIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXFxcXHtcIiB8fCBkZWxpbSA9PT0gXCJcXFxcbGJyYWNlXCIpIHtcbiAgICB0b3AgPSBcIlxcdTIzYTdcIjtcbiAgICBtaWRkbGUgPSBcIlxcdTIzYThcIjtcbiAgICBib3R0b20gPSBcIlxcdTIzYTlcIjtcbiAgICByZXBlYXQgPSBcIlxcdTIzYWFcIjtcbiAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXFxcXH1cIiB8fCBkZWxpbSA9PT0gXCJcXFxccmJyYWNlXCIpIHtcbiAgICB0b3AgPSBcIlxcdTIzYWJcIjtcbiAgICBtaWRkbGUgPSBcIlxcdTIzYWNcIjtcbiAgICBib3R0b20gPSBcIlxcdTIzYWRcIjtcbiAgICByZXBlYXQgPSBcIlxcdTIzYWFcIjtcbiAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXFxcXGxncm91cFwiIHx8IGRlbGltID09PSBcIlxcdTI3ZWVcIikge1xuICAgIHRvcCA9IFwiXFx1MjNhN1wiO1xuICAgIGJvdHRvbSA9IFwiXFx1MjNhOVwiO1xuICAgIHJlcGVhdCA9IFwiXFx1MjNhYVwiO1xuICAgIGZvbnQgPSBcIlNpemU0LVJlZ3VsYXJcIjtcbiAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJcXFxccmdyb3VwXCIgfHwgZGVsaW0gPT09IFwiXFx1MjdlZlwiKSB7XG4gICAgdG9wID0gXCJcXHUyM2FiXCI7XG4gICAgYm90dG9tID0gXCJcXHUyM2FkXCI7XG4gICAgcmVwZWF0ID0gXCJcXHUyM2FhXCI7XG4gICAgZm9udCA9IFwiU2l6ZTQtUmVndWxhclwiO1xuICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFxsbW91c3RhY2hlXCIgfHwgZGVsaW0gPT09IFwiXFx1MjNiMFwiKSB7XG4gICAgdG9wID0gXCJcXHUyM2E3XCI7XG4gICAgYm90dG9tID0gXCJcXHUyM2FkXCI7XG4gICAgcmVwZWF0ID0gXCJcXHUyM2FhXCI7XG4gICAgZm9udCA9IFwiU2l6ZTQtUmVndWxhclwiO1xuICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFxybW91c3RhY2hlXCIgfHwgZGVsaW0gPT09IFwiXFx1MjNiMVwiKSB7XG4gICAgdG9wID0gXCJcXHUyM2FiXCI7XG4gICAgYm90dG9tID0gXCJcXHUyM2E5XCI7XG4gICAgcmVwZWF0ID0gXCJcXHUyM2FhXCI7XG4gICAgZm9udCA9IFwiU2l6ZTQtUmVndWxhclwiO1xuICB9IC8vIEdldCB0aGUgbWV0cmljcyBvZiB0aGUgZm91ciBzZWN0aW9uc1xuXG5cbiAgdmFyIHRvcE1ldHJpY3MgPSBnZXRNZXRyaWNzKHRvcCwgZm9udCwgbW9kZSk7XG4gIHZhciB0b3BIZWlnaHRUb3RhbCA9IHRvcE1ldHJpY3MuaGVpZ2h0ICsgdG9wTWV0cmljcy5kZXB0aDtcbiAgdmFyIHJlcGVhdE1ldHJpY3MgPSBnZXRNZXRyaWNzKHJlcGVhdCwgZm9udCwgbW9kZSk7XG4gIHZhciByZXBlYXRIZWlnaHRUb3RhbCA9IHJlcGVhdE1ldHJpY3MuaGVpZ2h0ICsgcmVwZWF0TWV0cmljcy5kZXB0aDtcbiAgdmFyIGJvdHRvbU1ldHJpY3MgPSBnZXRNZXRyaWNzKGJvdHRvbSwgZm9udCwgbW9kZSk7XG4gIHZhciBib3R0b21IZWlnaHRUb3RhbCA9IGJvdHRvbU1ldHJpY3MuaGVpZ2h0ICsgYm90dG9tTWV0cmljcy5kZXB0aDtcbiAgdmFyIG1pZGRsZUhlaWdodFRvdGFsID0gMDtcbiAgdmFyIG1pZGRsZUZhY3RvciA9IDE7XG5cbiAgaWYgKG1pZGRsZSAhPT0gbnVsbCkge1xuICAgIHZhciBtaWRkbGVNZXRyaWNzID0gZ2V0TWV0cmljcyhtaWRkbGUsIGZvbnQsIG1vZGUpO1xuICAgIG1pZGRsZUhlaWdodFRvdGFsID0gbWlkZGxlTWV0cmljcy5oZWlnaHQgKyBtaWRkbGVNZXRyaWNzLmRlcHRoO1xuICAgIG1pZGRsZUZhY3RvciA9IDI7IC8vIHJlcGVhdCBzeW1tZXRyaWNhbGx5IGFib3ZlIGFuZCBiZWxvdyBtaWRkbGVcbiAgfSAvLyBDYWxjdWxhdGUgdGhlIG1pbmltYWwgaGVpZ2h0IHRoYXQgdGhlIGRlbGltaXRlciBjYW4gaGF2ZS5cbiAgLy8gSXQgaXMgYXQgbGVhc3QgdGhlIHNpemUgb2YgdGhlIHRvcCwgYm90dG9tLCBhbmQgb3B0aW9uYWwgbWlkZGxlIGNvbWJpbmVkLlxuXG5cbiAgdmFyIG1pbkhlaWdodCA9IHRvcEhlaWdodFRvdGFsICsgYm90dG9tSGVpZ2h0VG90YWwgKyBtaWRkbGVIZWlnaHRUb3RhbDsgLy8gQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIGNvcGllcyBvZiB0aGUgcmVwZWF0IHN5bWJvbCB3ZSB3aWxsIG5lZWRcblxuICB2YXIgcmVwZWF0Q291bnQgPSBNYXRoLm1heCgwLCBNYXRoLmNlaWwoKGhlaWdodFRvdGFsIC0gbWluSGVpZ2h0KSAvIChtaWRkbGVGYWN0b3IgKiByZXBlYXRIZWlnaHRUb3RhbCkpKTsgLy8gQ29tcHV0ZSB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBkZWxpbWl0ZXIgaW5jbHVkaW5nIGFsbCB0aGUgc3ltYm9sc1xuXG4gIHZhciByZWFsSGVpZ2h0VG90YWwgPSBtaW5IZWlnaHQgKyByZXBlYXRDb3VudCAqIG1pZGRsZUZhY3RvciAqIHJlcGVhdEhlaWdodFRvdGFsOyAvLyBUaGUgY2VudGVyIG9mIHRoZSBkZWxpbWl0ZXIgaXMgcGxhY2VkIGF0IHRoZSBjZW50ZXIgb2YgdGhlIGF4aXMuIE5vdGVcbiAgLy8gdGhhdCBpbiB0aGlzIGNvbnRleHQsIFwiY2VudGVyXCIgbWVhbnMgdGhhdCB0aGUgZGVsaW1pdGVyIHNob3VsZCBiZVxuICAvLyBjZW50ZXJlZCBhcm91bmQgdGhlIGF4aXMgaW4gdGhlIGN1cnJlbnQgc3R5bGUsIHdoaWxlIG5vcm1hbGx5IGl0IGlzXG4gIC8vIGNlbnRlcmVkIGFyb3VuZCB0aGUgYXhpcyBpbiB0ZXh0c3R5bGUuXG5cbiAgdmFyIGF4aXNIZWlnaHQgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuYXhpc0hlaWdodDtcblxuICBpZiAoY2VudGVyKSB7XG4gICAgYXhpc0hlaWdodCAqPSBvcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuICB9IC8vIENhbGN1bGF0ZSB0aGUgZGVwdGhcblxuXG4gIHZhciBkZXB0aCA9IHJlYWxIZWlnaHRUb3RhbCAvIDIgLSBheGlzSGVpZ2h0OyAvLyBOb3csIHdlIHN0YXJ0IGJ1aWxkaW5nIHRoZSBwaWVjZXMgdGhhdCB3aWxsIGdvIGludG8gdGhlIHZsaXN0XG4gIC8vIEtlZXAgYSBsaXN0IG9mIHRoZSBwaWVjZXMgb2YgdGhlIHN0YWNrZWQgZGVsaW1pdGVyXG5cbiAgdmFyIHN0YWNrID0gW107XG5cbiAgaWYgKHN2Z0xhYmVsLmxlbmd0aCA+IDApIHtcbiAgICAvLyBJbnN0ZWFkIG9mIHN0YWNraW5nIGdseXBocywgY3JlYXRlIGEgc2luZ2xlIFNWRy5cbiAgICAvLyBUaGlzIGV2YWRlcyBicm93c2VyIHByb2JsZW1zIHdpdGggaW1wcmVjaXNlIHBvc2l0aW9uaW5nIG9mIHNwYW5zLlxuICAgIHZhciBtaWRIZWlnaHQgPSByZWFsSGVpZ2h0VG90YWwgLSB0b3BIZWlnaHRUb3RhbCAtIGJvdHRvbUhlaWdodFRvdGFsO1xuICAgIHZhciB2aWV3Qm94SGVpZ2h0ID0gTWF0aC5yb3VuZChyZWFsSGVpZ2h0VG90YWwgKiAxMDAwKTtcbiAgICB2YXIgcGF0aFN0ciA9IHRhbGxEZWxpbShzdmdMYWJlbCwgTWF0aC5yb3VuZChtaWRIZWlnaHQgKiAxMDAwKSk7XG4gICAgdmFyIHBhdGggPSBuZXcgUGF0aE5vZGUoc3ZnTGFiZWwsIHBhdGhTdHIpO1xuICAgIHZhciB3aWR0aCA9ICh2aWV3Qm94V2lkdGggLyAxMDAwKS50b0ZpeGVkKDMpICsgXCJlbVwiO1xuICAgIHZhciBoZWlnaHQgPSAodmlld0JveEhlaWdodCAvIDEwMDApLnRvRml4ZWQoMykgKyBcImVtXCI7XG4gICAgdmFyIHN2ZyA9IG5ldyBTdmdOb2RlKFtwYXRoXSwge1xuICAgICAgXCJ3aWR0aFwiOiB3aWR0aCxcbiAgICAgIFwiaGVpZ2h0XCI6IGhlaWdodCxcbiAgICAgIFwidmlld0JveFwiOiBcIjAgMCBcIiArIHZpZXdCb3hXaWR0aCArIFwiIFwiICsgdmlld0JveEhlaWdodFxuICAgIH0pO1xuICAgIHZhciB3cmFwcGVyID0gYnVpbGRDb21tb24ubWFrZVN2Z1NwYW4oW10sIFtzdmddLCBvcHRpb25zKTtcbiAgICB3cmFwcGVyLmhlaWdodCA9IHZpZXdCb3hIZWlnaHQgLyAxMDAwO1xuICAgIHdyYXBwZXIuc3R5bGUud2lkdGggPSB3aWR0aDtcbiAgICB3cmFwcGVyLnN0eWxlLmhlaWdodCA9IGhlaWdodDtcbiAgICBzdGFjay5wdXNoKHtcbiAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgZWxlbTogd3JhcHBlclxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIFN0YWNrIGdseXBoc1xuICAgIC8vIFN0YXJ0IGJ5IGFkZGluZyB0aGUgYm90dG9tIHN5bWJvbFxuICAgIHN0YWNrLnB1c2gobWFrZUdseXBoU3Bhbihib3R0b20sIGZvbnQsIG1vZGUpKTtcbiAgICBzdGFjay5wdXNoKGxhcCk7IC8vIG92ZXJsYXBcblxuICAgIGlmIChtaWRkbGUgPT09IG51bGwpIHtcbiAgICAgIC8vIFRoZSBtaWRkbGUgc2VjdGlvbiB3aWxsIGJlIGFuIFNWRy4gTWFrZSBpdCBhbiBleHRyYSAwLjAxNmVtIHRhbGwuXG4gICAgICAvLyBXZSdsbCBvdmVybGFwIGJ5IDAuMDA4ZW0gYXQgdG9wIGFuZCBib3R0b20uXG4gICAgICB2YXIgaW5uZXJIZWlnaHQgPSByZWFsSGVpZ2h0VG90YWwgLSB0b3BIZWlnaHRUb3RhbCAtIGJvdHRvbUhlaWdodFRvdGFsICsgMiAqIGxhcEluRW1zO1xuICAgICAgc3RhY2sucHVzaChtYWtlSW5uZXIocmVwZWF0LCBpbm5lckhlaWdodCwgb3B0aW9ucykpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXaGVuIHRoZXJlIGlzIGEgbWlkZGxlIGJpdCwgd2UgbmVlZCB0aGUgbWlkZGxlIHBhcnQgYW5kIHR3byByZXBlYXRlZFxuICAgICAgLy8gc2VjdGlvbnNcbiAgICAgIHZhciBfaW5uZXJIZWlnaHQgPSAocmVhbEhlaWdodFRvdGFsIC0gdG9wSGVpZ2h0VG90YWwgLSBib3R0b21IZWlnaHRUb3RhbCAtIG1pZGRsZUhlaWdodFRvdGFsKSAvIDIgKyAyICogbGFwSW5FbXM7XG5cbiAgICAgIHN0YWNrLnB1c2gobWFrZUlubmVyKHJlcGVhdCwgX2lubmVySGVpZ2h0LCBvcHRpb25zKSk7IC8vIE5vdyBpbnNlcnQgdGhlIG1pZGRsZSBvZiB0aGUgYnJhY2UuXG5cbiAgICAgIHN0YWNrLnB1c2gobGFwKTtcbiAgICAgIHN0YWNrLnB1c2gobWFrZUdseXBoU3BhbihtaWRkbGUsIGZvbnQsIG1vZGUpKTtcbiAgICAgIHN0YWNrLnB1c2gobGFwKTtcbiAgICAgIHN0YWNrLnB1c2gobWFrZUlubmVyKHJlcGVhdCwgX2lubmVySGVpZ2h0LCBvcHRpb25zKSk7XG4gICAgfSAvLyBBZGQgdGhlIHRvcCBzeW1ib2xcblxuXG4gICAgc3RhY2sucHVzaChsYXApO1xuICAgIHN0YWNrLnB1c2gobWFrZUdseXBoU3Bhbih0b3AsIGZvbnQsIG1vZGUpKTtcbiAgfSAvLyBGaW5hbGx5LCBidWlsZCB0aGUgdmxpc3RcblxuXG4gIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdCYXNlU3R5bGUoU3R5bGUkMS5URVhUKTtcbiAgdmFyIGlubmVyID0gYnVpbGRDb21tb24ubWFrZVZMaXN0KHtcbiAgICBwb3NpdGlvblR5cGU6IFwiYm90dG9tXCIsXG4gICAgcG9zaXRpb25EYXRhOiBkZXB0aCxcbiAgICBjaGlsZHJlbjogc3RhY2tcbiAgfSwgbmV3T3B0aW9ucyk7XG4gIHJldHVybiBzdHlsZVdyYXAoYnVpbGRDb21tb24ubWFrZVNwYW4oW1wiZGVsaW1zaXppbmdcIiwgXCJtdWx0XCJdLCBbaW5uZXJdLCBuZXdPcHRpb25zKSwgU3R5bGUkMS5URVhULCBvcHRpb25zLCBjbGFzc2VzKTtcbn07IC8vIEFsbCBzdXJkcyBoYXZlIDAuMDhlbSBwYWRkaW5nIGFib3ZlIHRoZSB2aW5jdWx1bSBpbnNpZGUgdGhlIFNWRy5cbi8vIFRoYXQga2VlcHMgYnJvd3NlciBzcGFuIGhlaWdodCByb3VuZGluZyBlcnJvciBmcm9tIHBpbmNoaW5nIHRoZSBsaW5lLlxuXG5cbnZhciB2YlBhZCA9IDgwOyAvLyBwYWRkaW5nIGFib3ZlIHRoZSBzdXJkLCBtZWFzdXJlZCBpbnNpZGUgdGhlIHZpZXdCb3guXG5cbnZhciBlbVBhZCA9IDAuMDg7IC8vIHBhZGRpbmcsIGluIGVtcywgbWVhc3VyZWQgaW4gdGhlIGRvY3VtZW50LlxuXG52YXIgc3FydFN2ZyA9IGZ1bmN0aW9uIHNxcnRTdmcoc3FydE5hbWUsIGhlaWdodCwgdmlld0JveEhlaWdodCwgZXh0cmFWaW5jdWx1bSwgb3B0aW9ucykge1xuICB2YXIgcGF0aCA9IHNxcnRQYXRoKHNxcnROYW1lLCBleHRyYVZpbmN1bHVtLCB2aWV3Qm94SGVpZ2h0KTtcbiAgdmFyIHBhdGhOb2RlID0gbmV3IFBhdGhOb2RlKHNxcnROYW1lLCBwYXRoKTtcbiAgdmFyIHN2ZyA9IG5ldyBTdmdOb2RlKFtwYXRoTm9kZV0sIHtcbiAgICAvLyBOb3RlOiAxMDAwOjEgcmF0aW8gb2Ygdmlld0JveCB0byBkb2N1bWVudCBlbSB3aWR0aC5cbiAgICBcIndpZHRoXCI6IFwiNDAwZW1cIixcbiAgICBcImhlaWdodFwiOiBtYWtlRW0oaGVpZ2h0KSxcbiAgICBcInZpZXdCb3hcIjogXCIwIDAgNDAwMDAwIFwiICsgdmlld0JveEhlaWdodCxcbiAgICBcInByZXNlcnZlQXNwZWN0UmF0aW9cIjogXCJ4TWluWU1pbiBzbGljZVwiXG4gIH0pO1xuICByZXR1cm4gYnVpbGRDb21tb24ubWFrZVN2Z1NwYW4oW1wiaGlkZS10YWlsXCJdLCBbc3ZnXSwgb3B0aW9ucyk7XG59O1xuLyoqXG4gKiBNYWtlIGEgc3FydCBpbWFnZSBvZiB0aGUgZ2l2ZW4gaGVpZ2h0LFxuICovXG5cblxudmFyIG1ha2VTcXJ0SW1hZ2UgPSBmdW5jdGlvbiBtYWtlU3FydEltYWdlKGhlaWdodCwgb3B0aW9ucykge1xuICAvLyBEZWZpbmUgYSBuZXdPcHRpb25zIHRoYXQgcmVtb3ZlcyB0aGUgZWZmZWN0IG9mIHNpemUgY2hhbmdlcyBzdWNoIGFzIFxcSHVnZS5cbiAgLy8gV2UgZG9uJ3QgcGljayBkaWZmZXJlbnQgYSBoZWlnaHQgc3VyZCBmb3IgXFxIdWdlLiBGb3IgaXQsIHdlIHNjYWxlIHVwLlxuICB2YXIgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nQmFzZVNpemluZygpOyAvLyBQaWNrIHRoZSBkZXNpcmVkIHN1cmQgZ2x5cGggZnJvbSBhIHNlcXVlbmNlIG9mIHN1cmRzLlxuXG4gIHZhciBkZWxpbSA9IHRyYXZlcnNlU2VxdWVuY2UoXCJcXFxcc3VyZFwiLCBoZWlnaHQgKiBuZXdPcHRpb25zLnNpemVNdWx0aXBsaWVyLCBzdGFja0xhcmdlRGVsaW1pdGVyU2VxdWVuY2UsIG5ld09wdGlvbnMpO1xuICB2YXIgc2l6ZU11bHRpcGxpZXIgPSBuZXdPcHRpb25zLnNpemVNdWx0aXBsaWVyOyAvLyBkZWZhdWx0XG4gIC8vIFRoZSBzdGFuZGFyZCBzcXJ0IFNWR3MgZWFjaCBoYXZlIGEgMC4wNGVtIHRoaWNrIHZpbmN1bHVtLlxuICAvLyBJZiBTZXR0aW5ncy5taW5SdWxlVGhpY2tuZXNzIGlzIGxhcmdlciB0aGFuIHRoYXQsIHdlIGFkZCBleHRyYVZpbmN1bHVtLlxuXG4gIHZhciBleHRyYVZpbmN1bHVtID0gTWF0aC5tYXgoMCwgb3B0aW9ucy5taW5SdWxlVGhpY2tuZXNzIC0gb3B0aW9ucy5mb250TWV0cmljcygpLnNxcnRSdWxlVGhpY2tuZXNzKTsgLy8gQ3JlYXRlIGEgc3BhbiBjb250YWluaW5nIGFuIFNWRyBpbWFnZSBvZiBhIHNxcnQgc3ltYm9sLlxuXG4gIHZhciBzcGFuO1xuICB2YXIgc3BhbkhlaWdodCA9IDA7XG4gIHZhciB0ZXhIZWlnaHQgPSAwO1xuICB2YXIgdmlld0JveEhlaWdodCA9IDA7XG4gIHZhciBhZHZhbmNlV2lkdGg7IC8vIFdlIGNyZWF0ZSB2aWV3Qm94ZXMgd2l0aCA4MCB1bml0cyBvZiBcInBhZGRpbmdcIiBhYm92ZSBlYWNoIHN1cmQuXG4gIC8vIFRoZW4gYnJvd3NlciByb3VuZGluZyBlcnJvciBvbiB0aGUgcGFyZW50IHNwYW4gaGVpZ2h0IHdpbGwgbm90XG4gIC8vIGVuY3JvYWNoIG9uIHRoZSBpbmsgb2YgdGhlIHZpbmN1bHVtLiBCdXQgdGhhdCBwYWRkaW5nIGlzIG5vdFxuICAvLyBpbmNsdWRlZCBpbiB0aGUgVGVYLWxpa2UgYGhlaWdodGAgdXNlZCBmb3IgY2FsY3VsYXRpb24gb2ZcbiAgLy8gdmVydGljYWwgYWxpZ25tZW50LiBTbyB0ZXhIZWlnaHQgPSBzcGFuLmhlaWdodCA8IHNwYW4uc3R5bGUuaGVpZ2h0LlxuXG4gIGlmIChkZWxpbS50eXBlID09PSBcInNtYWxsXCIpIHtcbiAgICAvLyBHZXQgYW4gU1ZHIHRoYXQgaXMgZGVyaXZlZCBmcm9tIGdseXBoIFUrMjIxQSBpbiBmb250IEthVGVYLU1haW4uXG4gICAgLy8gMTAwMCB1bml0IG5vcm1hbCBnbHlwaCBoZWlnaHQuXG4gICAgdmlld0JveEhlaWdodCA9IDEwMDAgKyAxMDAwICogZXh0cmFWaW5jdWx1bSArIHZiUGFkO1xuXG4gICAgaWYgKGhlaWdodCA8IDEuMCkge1xuICAgICAgc2l6ZU11bHRpcGxpZXIgPSAxLjA7IC8vIG1pbWljIGEgXFx0ZXh0Zm9udCByYWRpY2FsXG4gICAgfSBlbHNlIGlmIChoZWlnaHQgPCAxLjQpIHtcbiAgICAgIHNpemVNdWx0aXBsaWVyID0gMC43OyAvLyBtaW1pYyBhIFxcc2NyaXB0Zm9udCByYWRpY2FsXG4gICAgfVxuXG4gICAgc3BhbkhlaWdodCA9ICgxLjAgKyBleHRyYVZpbmN1bHVtICsgZW1QYWQpIC8gc2l6ZU11bHRpcGxpZXI7XG4gICAgdGV4SGVpZ2h0ID0gKDEuMDAgKyBleHRyYVZpbmN1bHVtKSAvIHNpemVNdWx0aXBsaWVyO1xuICAgIHNwYW4gPSBzcXJ0U3ZnKFwic3FydE1haW5cIiwgc3BhbkhlaWdodCwgdmlld0JveEhlaWdodCwgZXh0cmFWaW5jdWx1bSwgb3B0aW9ucyk7XG4gICAgc3Bhbi5zdHlsZS5taW5XaWR0aCA9IFwiMC44NTNlbVwiO1xuICAgIGFkdmFuY2VXaWR0aCA9IDAuODMzIC8gc2l6ZU11bHRpcGxpZXI7IC8vIGZyb20gdGhlIGZvbnQuXG4gIH0gZWxzZSBpZiAoZGVsaW0udHlwZSA9PT0gXCJsYXJnZVwiKSB7XG4gICAgLy8gVGhlc2UgU1ZHcyBjb21lIGZyb20gZm9udHM6IEthVGVYX1NpemUxLCBfU2l6ZTIsIGV0Yy5cbiAgICB2aWV3Qm94SGVpZ2h0ID0gKDEwMDAgKyB2YlBhZCkgKiBzaXplVG9NYXhIZWlnaHRbZGVsaW0uc2l6ZV07XG4gICAgdGV4SGVpZ2h0ID0gKHNpemVUb01heEhlaWdodFtkZWxpbS5zaXplXSArIGV4dHJhVmluY3VsdW0pIC8gc2l6ZU11bHRpcGxpZXI7XG4gICAgc3BhbkhlaWdodCA9IChzaXplVG9NYXhIZWlnaHRbZGVsaW0uc2l6ZV0gKyBleHRyYVZpbmN1bHVtICsgZW1QYWQpIC8gc2l6ZU11bHRpcGxpZXI7XG4gICAgc3BhbiA9IHNxcnRTdmcoXCJzcXJ0U2l6ZVwiICsgZGVsaW0uc2l6ZSwgc3BhbkhlaWdodCwgdmlld0JveEhlaWdodCwgZXh0cmFWaW5jdWx1bSwgb3B0aW9ucyk7XG4gICAgc3Bhbi5zdHlsZS5taW5XaWR0aCA9IFwiMS4wMmVtXCI7XG4gICAgYWR2YW5jZVdpZHRoID0gMS4wIC8gc2l6ZU11bHRpcGxpZXI7IC8vIDEuMCBmcm9tIHRoZSBmb250LlxuICB9IGVsc2Uge1xuICAgIC8vIFRhbGwgc3FydC4gSW4gVGVYLCB0aGlzIHdvdWxkIGJlIHN0YWNrZWQgdXNpbmcgbXVsdGlwbGUgZ2x5cGhzLlxuICAgIC8vIFdlJ2xsIHVzZSBhIHNpbmdsZSBTVkcgdG8gYWNjb21wbGlzaCB0aGUgc2FtZSB0aGluZy5cbiAgICBzcGFuSGVpZ2h0ID0gaGVpZ2h0ICsgZXh0cmFWaW5jdWx1bSArIGVtUGFkO1xuICAgIHRleEhlaWdodCA9IGhlaWdodCArIGV4dHJhVmluY3VsdW07XG4gICAgdmlld0JveEhlaWdodCA9IE1hdGguZmxvb3IoMTAwMCAqIGhlaWdodCArIGV4dHJhVmluY3VsdW0pICsgdmJQYWQ7XG4gICAgc3BhbiA9IHNxcnRTdmcoXCJzcXJ0VGFsbFwiLCBzcGFuSGVpZ2h0LCB2aWV3Qm94SGVpZ2h0LCBleHRyYVZpbmN1bHVtLCBvcHRpb25zKTtcbiAgICBzcGFuLnN0eWxlLm1pbldpZHRoID0gXCIwLjc0MmVtXCI7XG4gICAgYWR2YW5jZVdpZHRoID0gMS4wNTY7XG4gIH1cblxuICBzcGFuLmhlaWdodCA9IHRleEhlaWdodDtcbiAgc3Bhbi5zdHlsZS5oZWlnaHQgPSBtYWtlRW0oc3BhbkhlaWdodCk7XG4gIHJldHVybiB7XG4gICAgc3BhbixcbiAgICBhZHZhbmNlV2lkdGgsXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBhY3R1YWwgbGluZSB3aWR0aC5cbiAgICAvLyBUaGlzIGFjdHVhbGx5IHNob3VsZCBkZXBlbmQgb24gdGhlIGNob3NlbiBmb250IC0tIGUuZy4gXFxib2xkbWF0aFxuICAgIC8vIHNob3VsZCB1c2UgdGhlIHRoaWNrZXIgc3VyZCBzeW1ib2xzIGZyb20gZS5nLiBLYVRlWF9NYWluLUJvbGQsIGFuZFxuICAgIC8vIGhhdmUgdGhpY2tlciBydWxlcy5cbiAgICBydWxlV2lkdGg6IChvcHRpb25zLmZvbnRNZXRyaWNzKCkuc3FydFJ1bGVUaGlja25lc3MgKyBleHRyYVZpbmN1bHVtKSAqIHNpemVNdWx0aXBsaWVyXG4gIH07XG59OyAvLyBUaGVyZSBhcmUgdGhyZWUga2luZHMgb2YgZGVsaW1pdGVycywgZGVsaW1pdGVycyB0aGF0IHN0YWNrIHdoZW4gdGhleSBiZWNvbWVcbi8vIHRvbyBsYXJnZVxuXG5cbnZhciBzdGFja0xhcmdlRGVsaW1pdGVycyA9IFtcIihcIiwgXCJcXFxcbHBhcmVuXCIsIFwiKVwiLCBcIlxcXFxycGFyZW5cIiwgXCJbXCIsIFwiXFxcXGxicmFja1wiLCBcIl1cIiwgXCJcXFxccmJyYWNrXCIsIFwiXFxcXHtcIiwgXCJcXFxcbGJyYWNlXCIsIFwiXFxcXH1cIiwgXCJcXFxccmJyYWNlXCIsIFwiXFxcXGxmbG9vclwiLCBcIlxcXFxyZmxvb3JcIiwgXCJcXHUyMzBhXCIsIFwiXFx1MjMwYlwiLCBcIlxcXFxsY2VpbFwiLCBcIlxcXFxyY2VpbFwiLCBcIlxcdTIzMDhcIiwgXCJcXHUyMzA5XCIsIFwiXFxcXHN1cmRcIl07IC8vIGRlbGltaXRlcnMgdGhhdCBhbHdheXMgc3RhY2tcblxudmFyIHN0YWNrQWx3YXlzRGVsaW1pdGVycyA9IFtcIlxcXFx1cGFycm93XCIsIFwiXFxcXGRvd25hcnJvd1wiLCBcIlxcXFx1cGRvd25hcnJvd1wiLCBcIlxcXFxVcGFycm93XCIsIFwiXFxcXERvd25hcnJvd1wiLCBcIlxcXFxVcGRvd25hcnJvd1wiLCBcInxcIiwgXCJcXFxcfFwiLCBcIlxcXFx2ZXJ0XCIsIFwiXFxcXFZlcnRcIiwgXCJcXFxcbHZlcnRcIiwgXCJcXFxccnZlcnRcIiwgXCJcXFxcbFZlcnRcIiwgXCJcXFxcclZlcnRcIiwgXCJcXFxcbGdyb3VwXCIsIFwiXFxcXHJncm91cFwiLCBcIlxcdTI3ZWVcIiwgXCJcXHUyN2VmXCIsIFwiXFxcXGxtb3VzdGFjaGVcIiwgXCJcXFxccm1vdXN0YWNoZVwiLCBcIlxcdTIzYjBcIiwgXCJcXHUyM2IxXCJdOyAvLyBhbmQgZGVsaW1pdGVycyB0aGF0IG5ldmVyIHN0YWNrXG5cbnZhciBzdGFja05ldmVyRGVsaW1pdGVycyA9IFtcIjxcIiwgXCI+XCIsIFwiXFxcXGxhbmdsZVwiLCBcIlxcXFxyYW5nbGVcIiwgXCIvXCIsIFwiXFxcXGJhY2tzbGFzaFwiLCBcIlxcXFxsdFwiLCBcIlxcXFxndFwiXTsgLy8gTWV0cmljcyBvZiB0aGUgZGlmZmVyZW50IHNpemVzLiBGb3VuZCBieSBsb29raW5nIGF0IFRlWCdzIG91dHB1dCBvZlxuLy8gJFxcYmlnbHwgLy8gXFxCaWdsfCBcXGJpZ2dsfCBcXEJpZ2dsfCBcXHNob3dsaXN0cyRcbi8vIFVzZWQgdG8gY3JlYXRlIHN0YWNrZWQgZGVsaW1pdGVycyBvZiBhcHByb3ByaWF0ZSBzaXplcyBpbiBtYWtlU2l6ZWREZWxpbS5cblxudmFyIHNpemVUb01heEhlaWdodCA9IFswLCAxLjIsIDEuOCwgMi40LCAzLjBdO1xuLyoqXG4gKiBVc2VkIHRvIGNyZWF0ZSBhIGRlbGltaXRlciBvZiBhIHNwZWNpZmljIHNpemUsIHdoZXJlIGBzaXplYCBpcyAxLCAyLCAzLCBvciA0LlxuICovXG5cbnZhciBtYWtlU2l6ZWREZWxpbSA9IGZ1bmN0aW9uIG1ha2VTaXplZERlbGltKGRlbGltLCBzaXplLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKSB7XG4gIC8vIDwgYW5kID4gdHVybiBpbnRvIFxcbGFuZ2xlIGFuZCBcXHJhbmdsZSBpbiBkZWxpbWl0ZXJzXG4gIGlmIChkZWxpbSA9PT0gXCI8XCIgfHwgZGVsaW0gPT09IFwiXFxcXGx0XCIgfHwgZGVsaW0gPT09IFwiXFx1MjdlOFwiKSB7XG4gICAgZGVsaW0gPSBcIlxcXFxsYW5nbGVcIjtcbiAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCI+XCIgfHwgZGVsaW0gPT09IFwiXFxcXGd0XCIgfHwgZGVsaW0gPT09IFwiXFx1MjdlOVwiKSB7XG4gICAgZGVsaW0gPSBcIlxcXFxyYW5nbGVcIjtcbiAgfSAvLyBTaXplZCBkZWxpbWl0ZXJzIGFyZSBuZXZlciBjZW50ZXJlZC5cblxuXG4gIGlmICh1dGlscy5jb250YWlucyhzdGFja0xhcmdlRGVsaW1pdGVycywgZGVsaW0pIHx8IHV0aWxzLmNvbnRhaW5zKHN0YWNrTmV2ZXJEZWxpbWl0ZXJzLCBkZWxpbSkpIHtcbiAgICByZXR1cm4gbWFrZUxhcmdlRGVsaW0oZGVsaW0sIHNpemUsIGZhbHNlLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKTtcbiAgfSBlbHNlIGlmICh1dGlscy5jb250YWlucyhzdGFja0Fsd2F5c0RlbGltaXRlcnMsIGRlbGltKSkge1xuICAgIHJldHVybiBtYWtlU3RhY2tlZERlbGltKGRlbGltLCBzaXplVG9NYXhIZWlnaHRbc2l6ZV0sIGZhbHNlLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIklsbGVnYWwgZGVsaW1pdGVyOiAnXCIgKyBkZWxpbSArIFwiJ1wiKTtcbiAgfVxufTtcbi8qKlxuICogVGhlcmUgYXJlIHRocmVlIGRpZmZlcmVudCBzZXF1ZW5jZXMgb2YgZGVsaW1pdGVyIHNpemVzIHRoYXQgdGhlIGRlbGltaXRlcnNcbiAqIGZvbGxvdyBkZXBlbmRpbmcgb24gdGhlIGtpbmQgb2YgZGVsaW1pdGVyLiBUaGlzIGlzIHVzZWQgd2hlbiBjcmVhdGluZyBjdXN0b21cbiAqIHNpemVkIGRlbGltaXRlcnMgdG8gZGVjaWRlIHdoZXRoZXIgdG8gY3JlYXRlIGEgc21hbGwsIGxhcmdlLCBvciBzdGFja2VkXG4gKiBkZWxpbWl0ZXIuXG4gKlxuICogSW4gcmVhbCBUZVgsIHRoZXNlIHNlcXVlbmNlcyBhcmVuJ3QgZXhwbGljaXRseSBkZWZpbmVkLCBidXQgYXJlIGluc3RlYWRcbiAqIGRlZmluZWQgaW5zaWRlIHRoZSBmb250IG1ldHJpY3MuIFNpbmNlIHRoZXJlIGFyZSBvbmx5IHRocmVlIHNlcXVlbmNlcyB0aGF0XG4gKiBhcmUgcG9zc2libGUgZm9yIHRoZSBkZWxpbWl0ZXJzIHRoYXQgVGVYIGRlZmluZXMsIGl0IGlzIGVhc2llciB0byBqdXN0IGVuY29kZVxuICogdGhlbSBleHBsaWNpdGx5IGhlcmUuXG4gKi9cblxuXG4vLyBEZWxpbWl0ZXJzIHRoYXQgbmV2ZXIgc3RhY2sgdHJ5IHNtYWxsIGRlbGltaXRlcnMgYW5kIGxhcmdlIGRlbGltaXRlcnMgb25seVxudmFyIHN0YWNrTmV2ZXJEZWxpbWl0ZXJTZXF1ZW5jZSA9IFt7XG4gIHR5cGU6IFwic21hbGxcIixcbiAgc3R5bGU6IFN0eWxlJDEuU0NSSVBUU0NSSVBUXG59LCB7XG4gIHR5cGU6IFwic21hbGxcIixcbiAgc3R5bGU6IFN0eWxlJDEuU0NSSVBUXG59LCB7XG4gIHR5cGU6IFwic21hbGxcIixcbiAgc3R5bGU6IFN0eWxlJDEuVEVYVFxufSwge1xuICB0eXBlOiBcImxhcmdlXCIsXG4gIHNpemU6IDFcbn0sIHtcbiAgdHlwZTogXCJsYXJnZVwiLFxuICBzaXplOiAyXG59LCB7XG4gIHR5cGU6IFwibGFyZ2VcIixcbiAgc2l6ZTogM1xufSwge1xuICB0eXBlOiBcImxhcmdlXCIsXG4gIHNpemU6IDRcbn1dOyAvLyBEZWxpbWl0ZXJzIHRoYXQgYWx3YXlzIHN0YWNrIHRyeSB0aGUgc21hbGwgZGVsaW1pdGVycyBmaXJzdCwgdGhlbiBzdGFja1xuXG52YXIgc3RhY2tBbHdheXNEZWxpbWl0ZXJTZXF1ZW5jZSA9IFt7XG4gIHR5cGU6IFwic21hbGxcIixcbiAgc3R5bGU6IFN0eWxlJDEuU0NSSVBUU0NSSVBUXG59LCB7XG4gIHR5cGU6IFwic21hbGxcIixcbiAgc3R5bGU6IFN0eWxlJDEuU0NSSVBUXG59LCB7XG4gIHR5cGU6IFwic21hbGxcIixcbiAgc3R5bGU6IFN0eWxlJDEuVEVYVFxufSwge1xuICB0eXBlOiBcInN0YWNrXCJcbn1dOyAvLyBEZWxpbWl0ZXJzIHRoYXQgc3RhY2sgd2hlbiBsYXJnZSB0cnkgdGhlIHNtYWxsIGFuZCB0aGVuIGxhcmdlIGRlbGltaXRlcnMsIGFuZFxuLy8gc3RhY2sgYWZ0ZXJ3YXJkc1xuXG52YXIgc3RhY2tMYXJnZURlbGltaXRlclNlcXVlbmNlID0gW3tcbiAgdHlwZTogXCJzbWFsbFwiLFxuICBzdHlsZTogU3R5bGUkMS5TQ1JJUFRTQ1JJUFRcbn0sIHtcbiAgdHlwZTogXCJzbWFsbFwiLFxuICBzdHlsZTogU3R5bGUkMS5TQ1JJUFRcbn0sIHtcbiAgdHlwZTogXCJzbWFsbFwiLFxuICBzdHlsZTogU3R5bGUkMS5URVhUXG59LCB7XG4gIHR5cGU6IFwibGFyZ2VcIixcbiAgc2l6ZTogMVxufSwge1xuICB0eXBlOiBcImxhcmdlXCIsXG4gIHNpemU6IDJcbn0sIHtcbiAgdHlwZTogXCJsYXJnZVwiLFxuICBzaXplOiAzXG59LCB7XG4gIHR5cGU6IFwibGFyZ2VcIixcbiAgc2l6ZTogNFxufSwge1xuICB0eXBlOiBcInN0YWNrXCJcbn1dO1xuLyoqXG4gKiBHZXQgdGhlIGZvbnQgdXNlZCBpbiBhIGRlbGltaXRlciBiYXNlZCBvbiB3aGF0IGtpbmQgb2YgZGVsaW1pdGVyIGl0IGlzLlxuICogVE9ETygjOTYzKSBVc2UgbW9yZSBzcGVjaWZpYyBmb250IGZhbWlseSByZXR1cm4gdHlwZSBvbmNlIHRoYXQgaXMgaW50cm9kdWNlZC5cbiAqL1xuXG52YXIgZGVsaW1UeXBlVG9Gb250ID0gZnVuY3Rpb24gZGVsaW1UeXBlVG9Gb250KHR5cGUpIHtcbiAgaWYgKHR5cGUudHlwZSA9PT0gXCJzbWFsbFwiKSB7XG4gICAgcmV0dXJuIFwiTWFpbi1SZWd1bGFyXCI7XG4gIH0gZWxzZSBpZiAodHlwZS50eXBlID09PSBcImxhcmdlXCIpIHtcbiAgICByZXR1cm4gXCJTaXplXCIgKyB0eXBlLnNpemUgKyBcIi1SZWd1bGFyXCI7XG4gIH0gZWxzZSBpZiAodHlwZS50eXBlID09PSBcInN0YWNrXCIpIHtcbiAgICByZXR1cm4gXCJTaXplNC1SZWd1bGFyXCI7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQWRkIHN1cHBvcnQgZm9yIGRlbGltIHR5cGUgJ1wiICsgdHlwZS50eXBlICsgXCInIGhlcmUuXCIpO1xuICB9XG59O1xuLyoqXG4gKiBUcmF2ZXJzZSBhIHNlcXVlbmNlIG9mIHR5cGVzIG9mIGRlbGltaXRlcnMgdG8gZGVjaWRlIHdoYXQga2luZCBvZiBkZWxpbWl0ZXJcbiAqIHNob3VsZCBiZSB1c2VkIHRvIGNyZWF0ZSBhIGRlbGltaXRlciBvZiB0aGUgZ2l2ZW4gaGVpZ2h0K2RlcHRoLlxuICovXG5cblxudmFyIHRyYXZlcnNlU2VxdWVuY2UgPSBmdW5jdGlvbiB0cmF2ZXJzZVNlcXVlbmNlKGRlbGltLCBoZWlnaHQsIHNlcXVlbmNlLCBvcHRpb25zKSB7XG4gIC8vIEhlcmUsIHdlIGNob29zZSB0aGUgaW5kZXggd2Ugc2hvdWxkIHN0YXJ0IGF0IGluIHRoZSBzZXF1ZW5jZXMuIEluIHNtYWxsZXJcbiAgLy8gc2l6ZXMgKHdoaWNoIGNvcnJlc3BvbmQgdG8gbGFyZ2VyIG51bWJlcnMgaW4gc3R5bGUuc2l6ZSkgd2Ugc3RhcnQgZWFybGllclxuICAvLyBpbiB0aGUgc2VxdWVuY2UuIFRodXMsIHNjcmlwdHNjcmlwdCBzdGFydHMgYXQgaW5kZXggMy0zPTAsIHNjcmlwdCBzdGFydHNcbiAgLy8gYXQgaW5kZXggMy0yPTEsIHRleHQgc3RhcnRzIGF0IDMtMT0yLCBhbmQgZGlzcGxheSBzdGFydHMgYXQgbWluKDIsMy0wKT0yXG4gIHZhciBzdGFydCA9IE1hdGgubWluKDIsIDMgLSBvcHRpb25zLnN0eWxlLnNpemUpO1xuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IHNlcXVlbmNlLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHNlcXVlbmNlW2ldLnR5cGUgPT09IFwic3RhY2tcIikge1xuICAgICAgLy8gVGhpcyBpcyBhbHdheXMgdGhlIGxhc3QgZGVsaW1pdGVyLCBzbyB3ZSBqdXN0IGJyZWFrIHRoZSBsb29wIG5vdy5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHZhciBtZXRyaWNzID0gZ2V0TWV0cmljcyhkZWxpbSwgZGVsaW1UeXBlVG9Gb250KHNlcXVlbmNlW2ldKSwgXCJtYXRoXCIpO1xuICAgIHZhciBoZWlnaHREZXB0aCA9IG1ldHJpY3MuaGVpZ2h0ICsgbWV0cmljcy5kZXB0aDsgLy8gU21hbGwgZGVsaW1pdGVycyBhcmUgc2NhbGVkIGRvd24gdmVyc2lvbnMgb2YgdGhlIHNhbWUgZm9udCwgc28gd2VcbiAgICAvLyBhY2NvdW50IGZvciB0aGUgc3R5bGUgY2hhbmdlIHNpemUuXG5cbiAgICBpZiAoc2VxdWVuY2VbaV0udHlwZSA9PT0gXCJzbWFsbFwiKSB7XG4gICAgICB2YXIgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nQmFzZVN0eWxlKHNlcXVlbmNlW2ldLnN0eWxlKTtcbiAgICAgIGhlaWdodERlcHRoICo9IG5ld09wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gICAgfSAvLyBDaGVjayBpZiB0aGUgZGVsaW1pdGVyIGF0IHRoaXMgc2l6ZSB3b3JrcyBmb3IgdGhlIGdpdmVuIGhlaWdodC5cblxuXG4gICAgaWYgKGhlaWdodERlcHRoID4gaGVpZ2h0KSB7XG4gICAgICByZXR1cm4gc2VxdWVuY2VbaV07XG4gICAgfVxuICB9IC8vIElmIHdlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgc2VxdWVuY2UsIHJldHVybiB0aGUgbGFzdCBzZXF1ZW5jZSBlbGVtZW50LlxuXG5cbiAgcmV0dXJuIHNlcXVlbmNlW3NlcXVlbmNlLmxlbmd0aCAtIDFdO1xufTtcbi8qKlxuICogTWFrZSBhIGRlbGltaXRlciBvZiBhIGdpdmVuIGhlaWdodCtkZXB0aCwgd2l0aCBvcHRpb25hbCBjZW50ZXJpbmcuIEhlcmUsIHdlXG4gKiB0cmF2ZXJzZSB0aGUgc2VxdWVuY2VzLCBhbmQgY3JlYXRlIGEgZGVsaW1pdGVyIHRoYXQgdGhlIHNlcXVlbmNlIHRlbGxzIHVzIHRvLlxuICovXG5cblxudmFyIG1ha2VDdXN0b21TaXplZERlbGltID0gZnVuY3Rpb24gbWFrZUN1c3RvbVNpemVkRGVsaW0oZGVsaW0sIGhlaWdodCwgY2VudGVyLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKSB7XG4gIGlmIChkZWxpbSA9PT0gXCI8XCIgfHwgZGVsaW0gPT09IFwiXFxcXGx0XCIgfHwgZGVsaW0gPT09IFwiXFx1MjdlOFwiKSB7XG4gICAgZGVsaW0gPSBcIlxcXFxsYW5nbGVcIjtcbiAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCI+XCIgfHwgZGVsaW0gPT09IFwiXFxcXGd0XCIgfHwgZGVsaW0gPT09IFwiXFx1MjdlOVwiKSB7XG4gICAgZGVsaW0gPSBcIlxcXFxyYW5nbGVcIjtcbiAgfSAvLyBEZWNpZGUgd2hhdCBzZXF1ZW5jZSB0byB1c2VcblxuXG4gIHZhciBzZXF1ZW5jZTtcblxuICBpZiAodXRpbHMuY29udGFpbnMoc3RhY2tOZXZlckRlbGltaXRlcnMsIGRlbGltKSkge1xuICAgIHNlcXVlbmNlID0gc3RhY2tOZXZlckRlbGltaXRlclNlcXVlbmNlO1xuICB9IGVsc2UgaWYgKHV0aWxzLmNvbnRhaW5zKHN0YWNrTGFyZ2VEZWxpbWl0ZXJzLCBkZWxpbSkpIHtcbiAgICBzZXF1ZW5jZSA9IHN0YWNrTGFyZ2VEZWxpbWl0ZXJTZXF1ZW5jZTtcbiAgfSBlbHNlIHtcbiAgICBzZXF1ZW5jZSA9IHN0YWNrQWx3YXlzRGVsaW1pdGVyU2VxdWVuY2U7XG4gIH0gLy8gTG9vayB0aHJvdWdoIHRoZSBzZXF1ZW5jZVxuXG5cbiAgdmFyIGRlbGltVHlwZSA9IHRyYXZlcnNlU2VxdWVuY2UoZGVsaW0sIGhlaWdodCwgc2VxdWVuY2UsIG9wdGlvbnMpOyAvLyBHZXQgdGhlIGRlbGltaXRlciBmcm9tIGZvbnQgZ2x5cGhzLlxuICAvLyBEZXBlbmRpbmcgb24gdGhlIHNlcXVlbmNlIGVsZW1lbnQgd2UgZGVjaWRlZCBvbiwgY2FsbCB0aGVcbiAgLy8gYXBwcm9wcmlhdGUgZnVuY3Rpb24uXG5cbiAgaWYgKGRlbGltVHlwZS50eXBlID09PSBcInNtYWxsXCIpIHtcbiAgICByZXR1cm4gbWFrZVNtYWxsRGVsaW0oZGVsaW0sIGRlbGltVHlwZS5zdHlsZSwgY2VudGVyLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKTtcbiAgfSBlbHNlIGlmIChkZWxpbVR5cGUudHlwZSA9PT0gXCJsYXJnZVwiKSB7XG4gICAgcmV0dXJuIG1ha2VMYXJnZURlbGltKGRlbGltLCBkZWxpbVR5cGUuc2l6ZSwgY2VudGVyLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKTtcbiAgfSBlbHNlXG4gICAgLyogaWYgKGRlbGltVHlwZS50eXBlID09PSBcInN0YWNrXCIpICovXG4gICAge1xuICAgICAgcmV0dXJuIG1ha2VTdGFja2VkRGVsaW0oZGVsaW0sIGhlaWdodCwgY2VudGVyLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKTtcbiAgICB9XG59O1xuLyoqXG4gKiBNYWtlIGEgZGVsaW1pdGVyIGZvciB1c2Ugd2l0aCBgXFxsZWZ0YCBhbmQgYFxccmlnaHRgLCBnaXZlbiBhIGhlaWdodCBhbmQgZGVwdGhcbiAqIG9mIGFuIGV4cHJlc3Npb24gdGhhdCB0aGUgZGVsaW1pdGVycyBzdXJyb3VuZC5cbiAqL1xuXG5cbnZhciBtYWtlTGVmdFJpZ2h0RGVsaW0gPSBmdW5jdGlvbiBtYWtlTGVmdFJpZ2h0RGVsaW0oZGVsaW0sIGhlaWdodCwgZGVwdGgsIG9wdGlvbnMsIG1vZGUsIGNsYXNzZXMpIHtcbiAgLy8gV2UgYWx3YXlzIGNlbnRlciBcXGxlZnQvXFxyaWdodCBkZWxpbWl0ZXJzLCBzbyB0aGUgYXhpcyBpcyBhbHdheXMgc2hpZnRlZFxuICB2YXIgYXhpc0hlaWdodCA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5heGlzSGVpZ2h0ICogb3B0aW9ucy5zaXplTXVsdGlwbGllcjsgLy8gVGFrZW4gZnJvbSBUZVggc291cmNlLCB0ZXgud2ViLCBmdW5jdGlvbiBtYWtlX2xlZnRfcmlnaHRcblxuICB2YXIgZGVsaW1pdGVyRmFjdG9yID0gOTAxO1xuICB2YXIgZGVsaW1pdGVyRXh0ZW5kID0gNS4wIC8gb3B0aW9ucy5mb250TWV0cmljcygpLnB0UGVyRW07XG4gIHZhciBtYXhEaXN0RnJvbUF4aXMgPSBNYXRoLm1heChoZWlnaHQgLSBheGlzSGVpZ2h0LCBkZXB0aCArIGF4aXNIZWlnaHQpO1xuICB2YXIgdG90YWxIZWlnaHQgPSBNYXRoLm1heCggLy8gSW4gcmVhbCBUZVgsIGNhbGN1bGF0aW9ucyBhcmUgZG9uZSB1c2luZyBpbnRlZ3JhbCB2YWx1ZXMgd2hpY2ggYXJlXG4gIC8vIDY1NTM2IHBlciBwdCwgb3IgNjU1MzYwIHBlciBlbS4gU28sIHRoZSBkaXZpc2lvbiBoZXJlIHRydW5jYXRlcyBpblxuICAvLyBUZVggYnV0IGRvZXNuJ3QgaGVyZSwgcHJvZHVjaW5nIGRpZmZlcmVudCByZXN1bHRzLiBJZiB3ZSB3YW50ZWQgdG9cbiAgLy8gZXhhY3RseSBtYXRjaCBUZVgncyBjYWxjdWxhdGlvbiwgd2UgY291bGQgZG9cbiAgLy8gICBNYXRoLmZsb29yKDY1NTM2MCAqIG1heERpc3RGcm9tQXhpcyAvIDUwMCkgKlxuICAvLyAgICBkZWxpbWl0ZXJGYWN0b3IgLyA2NTUzNjBcbiAgLy8gKFRvIHNlZSB0aGUgZGlmZmVyZW5jZSwgY29tcGFyZVxuICAvLyAgICB4Xnt4XntcXGxlZnQoXFxydWxlezAuMWVtfXswLjY4ZW19XFxyaWdodCl9fVxuICAvLyBpbiBUZVggYW5kIEthVGVYKVxuICBtYXhEaXN0RnJvbUF4aXMgLyA1MDAgKiBkZWxpbWl0ZXJGYWN0b3IsIDIgKiBtYXhEaXN0RnJvbUF4aXMgLSBkZWxpbWl0ZXJFeHRlbmQpOyAvLyBGaW5hbGx5LCB3ZSBkZWZlciB0byBgbWFrZUN1c3RvbVNpemVkRGVsaW1gIHdpdGggb3VyIGNhbGN1bGF0ZWQgdG90YWxcbiAgLy8gaGVpZ2h0XG5cbiAgcmV0dXJuIG1ha2VDdXN0b21TaXplZERlbGltKGRlbGltLCB0b3RhbEhlaWdodCwgdHJ1ZSwgb3B0aW9ucywgbW9kZSwgY2xhc3Nlcyk7XG59O1xuXG52YXIgZGVsaW1pdGVyID0ge1xuICBzcXJ0SW1hZ2U6IG1ha2VTcXJ0SW1hZ2UsXG4gIHNpemVkRGVsaW06IG1ha2VTaXplZERlbGltLFxuICBzaXplVG9NYXhIZWlnaHQ6IHNpemVUb01heEhlaWdodCxcbiAgY3VzdG9tU2l6ZWREZWxpbTogbWFrZUN1c3RvbVNpemVkRGVsaW0sXG4gIGxlZnRSaWdodERlbGltOiBtYWtlTGVmdFJpZ2h0RGVsaW1cbn07XG5cbi8vIEV4dHJhIGRhdGEgbmVlZGVkIGZvciB0aGUgZGVsaW1pdGVyIGhhbmRsZXIgZG93biBiZWxvd1xudmFyIGRlbGltaXRlclNpemVzID0ge1xuICBcIlxcXFxiaWdsXCI6IHtcbiAgICBtY2xhc3M6IFwibW9wZW5cIixcbiAgICBzaXplOiAxXG4gIH0sXG4gIFwiXFxcXEJpZ2xcIjoge1xuICAgIG1jbGFzczogXCJtb3BlblwiLFxuICAgIHNpemU6IDJcbiAgfSxcbiAgXCJcXFxcYmlnZ2xcIjoge1xuICAgIG1jbGFzczogXCJtb3BlblwiLFxuICAgIHNpemU6IDNcbiAgfSxcbiAgXCJcXFxcQmlnZ2xcIjoge1xuICAgIG1jbGFzczogXCJtb3BlblwiLFxuICAgIHNpemU6IDRcbiAgfSxcbiAgXCJcXFxcYmlnclwiOiB7XG4gICAgbWNsYXNzOiBcIm1jbG9zZVwiLFxuICAgIHNpemU6IDFcbiAgfSxcbiAgXCJcXFxcQmlnclwiOiB7XG4gICAgbWNsYXNzOiBcIm1jbG9zZVwiLFxuICAgIHNpemU6IDJcbiAgfSxcbiAgXCJcXFxcYmlnZ3JcIjoge1xuICAgIG1jbGFzczogXCJtY2xvc2VcIixcbiAgICBzaXplOiAzXG4gIH0sXG4gIFwiXFxcXEJpZ2dyXCI6IHtcbiAgICBtY2xhc3M6IFwibWNsb3NlXCIsXG4gICAgc2l6ZTogNFxuICB9LFxuICBcIlxcXFxiaWdtXCI6IHtcbiAgICBtY2xhc3M6IFwibXJlbFwiLFxuICAgIHNpemU6IDFcbiAgfSxcbiAgXCJcXFxcQmlnbVwiOiB7XG4gICAgbWNsYXNzOiBcIm1yZWxcIixcbiAgICBzaXplOiAyXG4gIH0sXG4gIFwiXFxcXGJpZ2dtXCI6IHtcbiAgICBtY2xhc3M6IFwibXJlbFwiLFxuICAgIHNpemU6IDNcbiAgfSxcbiAgXCJcXFxcQmlnZ21cIjoge1xuICAgIG1jbGFzczogXCJtcmVsXCIsXG4gICAgc2l6ZTogNFxuICB9LFxuICBcIlxcXFxiaWdcIjoge1xuICAgIG1jbGFzczogXCJtb3JkXCIsXG4gICAgc2l6ZTogMVxuICB9LFxuICBcIlxcXFxCaWdcIjoge1xuICAgIG1jbGFzczogXCJtb3JkXCIsXG4gICAgc2l6ZTogMlxuICB9LFxuICBcIlxcXFxiaWdnXCI6IHtcbiAgICBtY2xhc3M6IFwibW9yZFwiLFxuICAgIHNpemU6IDNcbiAgfSxcbiAgXCJcXFxcQmlnZ1wiOiB7XG4gICAgbWNsYXNzOiBcIm1vcmRcIixcbiAgICBzaXplOiA0XG4gIH1cbn07XG52YXIgZGVsaW1pdGVycyA9IFtcIihcIiwgXCJcXFxcbHBhcmVuXCIsIFwiKVwiLCBcIlxcXFxycGFyZW5cIiwgXCJbXCIsIFwiXFxcXGxicmFja1wiLCBcIl1cIiwgXCJcXFxccmJyYWNrXCIsIFwiXFxcXHtcIiwgXCJcXFxcbGJyYWNlXCIsIFwiXFxcXH1cIiwgXCJcXFxccmJyYWNlXCIsIFwiXFxcXGxmbG9vclwiLCBcIlxcXFxyZmxvb3JcIiwgXCJcXHUyMzBhXCIsIFwiXFx1MjMwYlwiLCBcIlxcXFxsY2VpbFwiLCBcIlxcXFxyY2VpbFwiLCBcIlxcdTIzMDhcIiwgXCJcXHUyMzA5XCIsIFwiPFwiLCBcIj5cIiwgXCJcXFxcbGFuZ2xlXCIsIFwiXFx1MjdlOFwiLCBcIlxcXFxyYW5nbGVcIiwgXCJcXHUyN2U5XCIsIFwiXFxcXGx0XCIsIFwiXFxcXGd0XCIsIFwiXFxcXGx2ZXJ0XCIsIFwiXFxcXHJ2ZXJ0XCIsIFwiXFxcXGxWZXJ0XCIsIFwiXFxcXHJWZXJ0XCIsIFwiXFxcXGxncm91cFwiLCBcIlxcXFxyZ3JvdXBcIiwgXCJcXHUyN2VlXCIsIFwiXFx1MjdlZlwiLCBcIlxcXFxsbW91c3RhY2hlXCIsIFwiXFxcXHJtb3VzdGFjaGVcIiwgXCJcXHUyM2IwXCIsIFwiXFx1MjNiMVwiLCBcIi9cIiwgXCJcXFxcYmFja3NsYXNoXCIsIFwifFwiLCBcIlxcXFx2ZXJ0XCIsIFwiXFxcXHxcIiwgXCJcXFxcVmVydFwiLCBcIlxcXFx1cGFycm93XCIsIFwiXFxcXFVwYXJyb3dcIiwgXCJcXFxcZG93bmFycm93XCIsIFwiXFxcXERvd25hcnJvd1wiLCBcIlxcXFx1cGRvd25hcnJvd1wiLCBcIlxcXFxVcGRvd25hcnJvd1wiLCBcIi5cIl07XG5cbi8vIERlbGltaXRlciBmdW5jdGlvbnNcbmZ1bmN0aW9uIGNoZWNrRGVsaW1pdGVyKGRlbGltLCBjb250ZXh0KSB7XG4gIHZhciBzeW1EZWxpbSA9IGNoZWNrU3ltYm9sTm9kZVR5cGUoZGVsaW0pO1xuXG4gIGlmIChzeW1EZWxpbSAmJiB1dGlscy5jb250YWlucyhkZWxpbWl0ZXJzLCBzeW1EZWxpbS50ZXh0KSkge1xuICAgIHJldHVybiBzeW1EZWxpbTtcbiAgfSBlbHNlIGlmIChzeW1EZWxpbSkge1xuICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiSW52YWxpZCBkZWxpbWl0ZXIgJ1wiICsgc3ltRGVsaW0udGV4dCArIFwiJyBhZnRlciAnXCIgKyBjb250ZXh0LmZ1bmNOYW1lICsgXCInXCIsIGRlbGltKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkludmFsaWQgZGVsaW1pdGVyIHR5cGUgJ1wiICsgZGVsaW0udHlwZSArIFwiJ1wiLCBkZWxpbSk7XG4gIH1cbn1cblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImRlbGltc2l6aW5nXCIsXG4gIG5hbWVzOiBbXCJcXFxcYmlnbFwiLCBcIlxcXFxCaWdsXCIsIFwiXFxcXGJpZ2dsXCIsIFwiXFxcXEJpZ2dsXCIsIFwiXFxcXGJpZ3JcIiwgXCJcXFxcQmlnclwiLCBcIlxcXFxiaWdnclwiLCBcIlxcXFxCaWdnclwiLCBcIlxcXFxiaWdtXCIsIFwiXFxcXEJpZ21cIiwgXCJcXFxcYmlnZ21cIiwgXCJcXFxcQmlnZ21cIiwgXCJcXFxcYmlnXCIsIFwiXFxcXEJpZ1wiLCBcIlxcXFxiaWdnXCIsIFwiXFxcXEJpZ2dcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBhcmdUeXBlczogW1wicHJpbWl0aXZlXCJdXG4gIH0sXG4gIGhhbmRsZXI6IChjb250ZXh0LCBhcmdzKSA9PiB7XG4gICAgdmFyIGRlbGltID0gY2hlY2tEZWxpbWl0ZXIoYXJnc1swXSwgY29udGV4dCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiZGVsaW1zaXppbmdcIixcbiAgICAgIG1vZGU6IGNvbnRleHQucGFyc2VyLm1vZGUsXG4gICAgICBzaXplOiBkZWxpbWl0ZXJTaXplc1tjb250ZXh0LmZ1bmNOYW1lXS5zaXplLFxuICAgICAgbWNsYXNzOiBkZWxpbWl0ZXJTaXplc1tjb250ZXh0LmZ1bmNOYW1lXS5tY2xhc3MsXG4gICAgICBkZWxpbTogZGVsaW0udGV4dFxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICBpZiAoZ3JvdXAuZGVsaW0gPT09IFwiLlwiKSB7XG4gICAgICAvLyBFbXB0eSBkZWxpbWl0ZXJzIHN0aWxsIGNvdW50IGFzIGVsZW1lbnRzLCBldmVuIHRob3VnaCB0aGV5IGRvbid0XG4gICAgICAvLyBzaG93IGFueXRoaW5nLlxuICAgICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtncm91cC5tY2xhc3NdKTtcbiAgICB9IC8vIFVzZSBkZWxpbWl0ZXIuc2l6ZWREZWxpbSB0byBnZW5lcmF0ZSB0aGUgZGVsaW1pdGVyLlxuXG5cbiAgICByZXR1cm4gZGVsaW1pdGVyLnNpemVkRGVsaW0oZ3JvdXAuZGVsaW0sIGdyb3VwLnNpemUsIG9wdGlvbnMsIGdyb3VwLm1vZGUsIFtncm91cC5tY2xhc3NdKTtcbiAgfSxcbiAgbWF0aG1sQnVpbGRlcjogZ3JvdXAgPT4ge1xuICAgIHZhciBjaGlsZHJlbiA9IFtdO1xuXG4gICAgaWYgKGdyb3VwLmRlbGltICE9PSBcIi5cIikge1xuICAgICAgY2hpbGRyZW4ucHVzaChtYWtlVGV4dChncm91cC5kZWxpbSwgZ3JvdXAubW9kZSkpO1xuICAgIH1cblxuICAgIHZhciBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtb1wiLCBjaGlsZHJlbik7XG5cbiAgICBpZiAoZ3JvdXAubWNsYXNzID09PSBcIm1vcGVuXCIgfHwgZ3JvdXAubWNsYXNzID09PSBcIm1jbG9zZVwiKSB7XG4gICAgICAvLyBPbmx5IHNvbWUgb2YgdGhlIGRlbGltc2l6aW5nIGZ1bmN0aW9ucyBhY3QgYXMgZmVuY2VzLCBhbmQgdGhleVxuICAgICAgLy8gcmV0dXJuIFwibW9wZW5cIiBvciBcIm1jbG9zZVwiIG1jbGFzcy5cbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwiZmVuY2VcIiwgXCJ0cnVlXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBFeHBsaWNpdGx5IGRpc2FibGUgZmVuY2luZyBpZiBpdCdzIG5vdCBhIGZlbmNlLCB0byBvdmVycmlkZSB0aGVcbiAgICAgIC8vIGRlZmF1bHRzLlxuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJmZW5jZVwiLCBcImZhbHNlXCIpO1xuICAgIH1cblxuICAgIG5vZGUuc2V0QXR0cmlidXRlKFwic3RyZXRjaHlcIiwgXCJ0cnVlXCIpO1xuICAgIHZhciBzaXplID0gbWFrZUVtKGRlbGltaXRlci5zaXplVG9NYXhIZWlnaHRbZ3JvdXAuc2l6ZV0pO1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibWluc2l6ZVwiLCBzaXplKTtcbiAgICBub2RlLnNldEF0dHJpYnV0ZShcIm1heHNpemVcIiwgc2l6ZSk7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBhc3NlcnRQYXJzZWQoZ3JvdXApIHtcbiAgaWYgKCFncm91cC5ib2R5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQnVnOiBUaGUgbGVmdHJpZ2h0IFBhcnNlTm9kZSB3YXNuJ3QgZnVsbHkgcGFyc2VkLlwiKTtcbiAgfVxufVxuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwibGVmdHJpZ2h0LXJpZ2h0XCIsXG4gIG5hbWVzOiBbXCJcXFxccmlnaHRcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBwcmltaXRpdmU6IHRydWVcbiAgfSxcbiAgaGFuZGxlcjogKGNvbnRleHQsIGFyZ3MpID0+IHtcbiAgICAvLyBcXGxlZnQgY2FzZSBiZWxvdyB0cmlnZ2VycyBwYXJzaW5nIG9mIFxccmlnaHQgaW5cbiAgICAvLyAgIGBjb25zdCByaWdodCA9IHBhcnNlci5wYXJzZUZ1bmN0aW9uKCk7YFxuICAgIC8vIHVzZXMgdGhpcyByZXR1cm4gdmFsdWUuXG4gICAgdmFyIGNvbG9yID0gY29udGV4dC5wYXJzZXIuZ3VsbGV0Lm1hY3Jvcy5nZXQoXCJcXFxcY3VycmVudEBjb2xvclwiKTtcblxuICAgIGlmIChjb2xvciAmJiB0eXBlb2YgY29sb3IgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiXFxcXGN1cnJlbnRAY29sb3Igc2V0IHRvIG5vbi1zdHJpbmcgaW4gXFxcXHJpZ2h0XCIpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImxlZnRyaWdodC1yaWdodFwiLFxuICAgICAgbW9kZTogY29udGV4dC5wYXJzZXIubW9kZSxcbiAgICAgIGRlbGltOiBjaGVja0RlbGltaXRlcihhcmdzWzBdLCBjb250ZXh0KS50ZXh0LFxuICAgICAgY29sb3IgLy8gdW5kZWZpbmVkIGlmIG5vdCBzZXQgdmlhIFxcY29sb3JcblxuICAgIH07XG4gIH1cbn0pO1xuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImxlZnRyaWdodFwiLFxuICBuYW1lczogW1wiXFxcXGxlZnRcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBwcmltaXRpdmU6IHRydWVcbiAgfSxcbiAgaGFuZGxlcjogKGNvbnRleHQsIGFyZ3MpID0+IHtcbiAgICB2YXIgZGVsaW0gPSBjaGVja0RlbGltaXRlcihhcmdzWzBdLCBjb250ZXh0KTtcbiAgICB2YXIgcGFyc2VyID0gY29udGV4dC5wYXJzZXI7IC8vIFBhcnNlIG91dCB0aGUgaW1wbGljaXQgYm9keVxuXG4gICAgKytwYXJzZXIubGVmdHJpZ2h0RGVwdGg7IC8vIHBhcnNlRXhwcmVzc2lvbiBzdG9wcyBiZWZvcmUgJ1xcXFxyaWdodCdcblxuICAgIHZhciBib2R5ID0gcGFyc2VyLnBhcnNlRXhwcmVzc2lvbihmYWxzZSk7XG4gICAgLS1wYXJzZXIubGVmdHJpZ2h0RGVwdGg7IC8vIENoZWNrIHRoZSBuZXh0IHRva2VuXG5cbiAgICBwYXJzZXIuZXhwZWN0KFwiXFxcXHJpZ2h0XCIsIGZhbHNlKTtcbiAgICB2YXIgcmlnaHQgPSBhc3NlcnROb2RlVHlwZShwYXJzZXIucGFyc2VGdW5jdGlvbigpLCBcImxlZnRyaWdodC1yaWdodFwiKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJsZWZ0cmlnaHRcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgYm9keSxcbiAgICAgIGxlZnQ6IGRlbGltLnRleHQsXG4gICAgICByaWdodDogcmlnaHQuZGVsaW0sXG4gICAgICByaWdodENvbG9yOiByaWdodC5jb2xvclxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICBhc3NlcnRQYXJzZWQoZ3JvdXApOyAvLyBCdWlsZCB0aGUgaW5uZXIgZXhwcmVzc2lvblxuXG4gICAgdmFyIGlubmVyID0gYnVpbGRFeHByZXNzaW9uJDEoZ3JvdXAuYm9keSwgb3B0aW9ucywgdHJ1ZSwgW1wibW9wZW5cIiwgXCJtY2xvc2VcIl0pO1xuICAgIHZhciBpbm5lckhlaWdodCA9IDA7XG4gICAgdmFyIGlubmVyRGVwdGggPSAwO1xuICAgIHZhciBoYWRNaWRkbGUgPSBmYWxzZTsgLy8gQ2FsY3VsYXRlIGl0cyBoZWlnaHQgYW5kIGRlcHRoXG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlubmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBQcm9wZXJ0eSBgaXNNaWRkbGVgIG5vdCBkZWZpbmVkIG9uIGBzcGFuYC4gU2VlIGNvbW1lbnQgaW5cbiAgICAgIC8vIFwibWlkZGxlXCIncyBodG1sQnVpbGRlci5cbiAgICAgIC8vICRGbG93Rml4TWVcbiAgICAgIGlmIChpbm5lcltpXS5pc01pZGRsZSkge1xuICAgICAgICBoYWRNaWRkbGUgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5uZXJIZWlnaHQgPSBNYXRoLm1heChpbm5lcltpXS5oZWlnaHQsIGlubmVySGVpZ2h0KTtcbiAgICAgICAgaW5uZXJEZXB0aCA9IE1hdGgubWF4KGlubmVyW2ldLmRlcHRoLCBpbm5lckRlcHRoKTtcbiAgICAgIH1cbiAgICB9IC8vIFRoZSBzaXplIG9mIGRlbGltaXRlcnMgaXMgdGhlIHNhbWUsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBzdHlsZSB3ZSBhcmVcbiAgICAvLyBpbi4gVGh1cywgdG8gY29ycmVjdGx5IGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiBkZWxpbWl0ZXIgd2UgbmVlZCBhcm91bmRcbiAgICAvLyBhIGdyb3VwLCB3ZSBzY2FsZSBkb3duIHRoZSBpbm5lciBzaXplIGJhc2VkIG9uIHRoZSBzaXplLlxuXG5cbiAgICBpbm5lckhlaWdodCAqPSBvcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuICAgIGlubmVyRGVwdGggKj0gb3B0aW9ucy5zaXplTXVsdGlwbGllcjtcbiAgICB2YXIgbGVmdERlbGltO1xuXG4gICAgaWYgKGdyb3VwLmxlZnQgPT09IFwiLlwiKSB7XG4gICAgICAvLyBFbXB0eSBkZWxpbWl0ZXJzIGluIFxcbGVmdCBhbmQgXFxyaWdodCBtYWtlIG51bGwgZGVsaW1pdGVyIHNwYWNlcy5cbiAgICAgIGxlZnREZWxpbSA9IG1ha2VOdWxsRGVsaW1pdGVyKG9wdGlvbnMsIFtcIm1vcGVuXCJdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT3RoZXJ3aXNlLCB1c2UgbGVmdFJpZ2h0RGVsaW0gdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3Qgc2l6ZWRcbiAgICAgIC8vIGRlbGltaXRlci5cbiAgICAgIGxlZnREZWxpbSA9IGRlbGltaXRlci5sZWZ0UmlnaHREZWxpbShncm91cC5sZWZ0LCBpbm5lckhlaWdodCwgaW5uZXJEZXB0aCwgb3B0aW9ucywgZ3JvdXAubW9kZSwgW1wibW9wZW5cIl0pO1xuICAgIH0gLy8gQWRkIGl0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGV4cHJlc3Npb25cblxuXG4gICAgaW5uZXIudW5zaGlmdChsZWZ0RGVsaW0pOyAvLyBIYW5kbGUgbWlkZGxlIGRlbGltaXRlcnNcblxuICAgIGlmIChoYWRNaWRkbGUpIHtcbiAgICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBpbm5lci5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgdmFyIG1pZGRsZURlbGltID0gaW5uZXJbX2ldOyAvLyBQcm9wZXJ0eSBgaXNNaWRkbGVgIG5vdCBkZWZpbmVkIG9uIGBzcGFuYC4gU2VlIGNvbW1lbnQgaW5cbiAgICAgICAgLy8gXCJtaWRkbGVcIidzIGh0bWxCdWlsZGVyLlxuICAgICAgICAvLyAkRmxvd0ZpeE1lXG5cbiAgICAgICAgdmFyIGlzTWlkZGxlID0gbWlkZGxlRGVsaW0uaXNNaWRkbGU7XG5cbiAgICAgICAgaWYgKGlzTWlkZGxlKSB7XG4gICAgICAgICAgLy8gQXBwbHkgdGhlIG9wdGlvbnMgdGhhdCB3ZXJlIGFjdGl2ZSB3aGVuIFxcbWlkZGxlIHdhcyBjYWxsZWRcbiAgICAgICAgICBpbm5lcltfaV0gPSBkZWxpbWl0ZXIubGVmdFJpZ2h0RGVsaW0oaXNNaWRkbGUuZGVsaW0sIGlubmVySGVpZ2h0LCBpbm5lckRlcHRoLCBpc01pZGRsZS5vcHRpb25zLCBncm91cC5tb2RlLCBbXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcmlnaHREZWxpbTsgLy8gU2FtZSBmb3IgdGhlIHJpZ2h0IGRlbGltaXRlciwgYnV0IHVzaW5nIGNvbG9yIHNwZWNpZmllZCBieSBcXGNvbG9yXG5cbiAgICBpZiAoZ3JvdXAucmlnaHQgPT09IFwiLlwiKSB7XG4gICAgICByaWdodERlbGltID0gbWFrZU51bGxEZWxpbWl0ZXIob3B0aW9ucywgW1wibWNsb3NlXCJdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGNvbG9yT3B0aW9ucyA9IGdyb3VwLnJpZ2h0Q29sb3IgPyBvcHRpb25zLndpdGhDb2xvcihncm91cC5yaWdodENvbG9yKSA6IG9wdGlvbnM7XG4gICAgICByaWdodERlbGltID0gZGVsaW1pdGVyLmxlZnRSaWdodERlbGltKGdyb3VwLnJpZ2h0LCBpbm5lckhlaWdodCwgaW5uZXJEZXB0aCwgY29sb3JPcHRpb25zLCBncm91cC5tb2RlLCBbXCJtY2xvc2VcIl0pO1xuICAgIH0gLy8gQWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGV4cHJlc3Npb24uXG5cblxuICAgIGlubmVyLnB1c2gocmlnaHREZWxpbSk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1pbm5lclwiXSwgaW5uZXIsIG9wdGlvbnMpO1xuICB9LFxuICBtYXRobWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICBhc3NlcnRQYXJzZWQoZ3JvdXApO1xuICAgIHZhciBpbm5lciA9IGJ1aWxkRXhwcmVzc2lvbihncm91cC5ib2R5LCBvcHRpb25zKTtcblxuICAgIGlmIChncm91cC5sZWZ0ICE9PSBcIi5cIikge1xuICAgICAgdmFyIGxlZnROb2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtb1wiLCBbbWFrZVRleHQoZ3JvdXAubGVmdCwgZ3JvdXAubW9kZSldKTtcbiAgICAgIGxlZnROb2RlLnNldEF0dHJpYnV0ZShcImZlbmNlXCIsIFwidHJ1ZVwiKTtcbiAgICAgIGlubmVyLnVuc2hpZnQobGVmdE5vZGUpO1xuICAgIH1cblxuICAgIGlmIChncm91cC5yaWdodCAhPT0gXCIuXCIpIHtcbiAgICAgIHZhciByaWdodE5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1vXCIsIFttYWtlVGV4dChncm91cC5yaWdodCwgZ3JvdXAubW9kZSldKTtcbiAgICAgIHJpZ2h0Tm9kZS5zZXRBdHRyaWJ1dGUoXCJmZW5jZVwiLCBcInRydWVcIik7XG5cbiAgICAgIGlmIChncm91cC5yaWdodENvbG9yKSB7XG4gICAgICAgIHJpZ2h0Tm9kZS5zZXRBdHRyaWJ1dGUoXCJtYXRoY29sb3JcIiwgZ3JvdXAucmlnaHRDb2xvcik7XG4gICAgICB9XG5cbiAgICAgIGlubmVyLnB1c2gocmlnaHROb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFrZVJvdyhpbm5lcik7XG4gIH1cbn0pO1xuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcIm1pZGRsZVwiLFxuICBuYW1lczogW1wiXFxcXG1pZGRsZVwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIHByaW1pdGl2ZTogdHJ1ZVxuICB9LFxuICBoYW5kbGVyOiAoY29udGV4dCwgYXJncykgPT4ge1xuICAgIHZhciBkZWxpbSA9IGNoZWNrRGVsaW1pdGVyKGFyZ3NbMF0sIGNvbnRleHQpO1xuXG4gICAgaWYgKCFjb250ZXh0LnBhcnNlci5sZWZ0cmlnaHREZXB0aCkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJcXFxcbWlkZGxlIHdpdGhvdXQgcHJlY2VkaW5nIFxcXFxsZWZ0XCIsIGRlbGltKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJtaWRkbGVcIixcbiAgICAgIG1vZGU6IGNvbnRleHQucGFyc2VyLm1vZGUsXG4gICAgICBkZWxpbTogZGVsaW0udGV4dFxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICB2YXIgbWlkZGxlRGVsaW07XG5cbiAgICBpZiAoZ3JvdXAuZGVsaW0gPT09IFwiLlwiKSB7XG4gICAgICBtaWRkbGVEZWxpbSA9IG1ha2VOdWxsRGVsaW1pdGVyKG9wdGlvbnMsIFtdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWlkZGxlRGVsaW0gPSBkZWxpbWl0ZXIuc2l6ZWREZWxpbShncm91cC5kZWxpbSwgMSwgb3B0aW9ucywgZ3JvdXAubW9kZSwgW10pO1xuICAgICAgdmFyIGlzTWlkZGxlID0ge1xuICAgICAgICBkZWxpbTogZ3JvdXAuZGVsaW0sXG4gICAgICAgIG9wdGlvbnNcbiAgICAgIH07IC8vIFByb3BlcnR5IGBpc01pZGRsZWAgbm90IGRlZmluZWQgb24gYHNwYW5gLiBJdCBpcyBvbmx5IHVzZWQgaW5cbiAgICAgIC8vIHRoaXMgZmlsZSBhYm92ZS5cbiAgICAgIC8vIFRPRE86IEZpeCB0aGlzIHZpb2xhdGlvbiBvZiB0aGUgYHNwYW5gIHR5cGUgYW5kIHBvc3NpYmx5IHJlbmFtZVxuICAgICAgLy8gdGhpbmdzIHNpbmNlIGBpc01pZGRsZWAgc291bmRzIGxpa2UgYSBib29sZWFuLCBidXQgaXMgYSBzdHJ1Y3QuXG4gICAgICAvLyAkRmxvd0ZpeE1lXG5cbiAgICAgIG1pZGRsZURlbGltLmlzTWlkZGxlID0gaXNNaWRkbGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1pZGRsZURlbGltO1xuICB9LFxuICBtYXRobWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICAvLyBBIEZpcmVmb3ggXFxtaWRkbGUgd2lsbCBzdHJldGNoIGEgY2hhcmFjdGVyIHZlcnRpY2FsbHkgb25seSBpZiBpdFxuICAgIC8vIGlzIGluIHRoZSBmZW5jZSBwYXJ0IG9mIHRoZSBvcGVyYXRvciBkaWN0aW9uYXJ5IGF0OlxuICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9NYXRoTUwzL2FwcGVuZGl4Yy5odG1sLlxuICAgIC8vIFNvIHdlIG5lZWQgdG8gYXZvaWQgVSsyMjIzIGFuZCB1c2UgcGxhaW4gXCJ8XCIgaW5zdGVhZC5cbiAgICB2YXIgdGV4dE5vZGUgPSBncm91cC5kZWxpbSA9PT0gXCJcXFxcdmVydFwiIHx8IGdyb3VwLmRlbGltID09PSBcInxcIiA/IG1ha2VUZXh0KFwifFwiLCBcInRleHRcIikgOiBtYWtlVGV4dChncm91cC5kZWxpbSwgZ3JvdXAubW9kZSk7XG4gICAgdmFyIG1pZGRsZU5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1vXCIsIFt0ZXh0Tm9kZV0pO1xuICAgIG1pZGRsZU5vZGUuc2V0QXR0cmlidXRlKFwiZmVuY2VcIiwgXCJ0cnVlXCIpOyAvLyBNYXRoTUwgZ2l2ZXMgNS8xOGVtIHNwYWNpbmcgdG8gZWFjaCA8bW8+IGVsZW1lbnQuXG4gICAgLy8gXFxtaWRkbGUgc2hvdWxkIGdldCBkZWxpbWl0ZXIgc3BhY2luZyBpbnN0ZWFkLlxuXG4gICAgbWlkZGxlTm9kZS5zZXRBdHRyaWJ1dGUoXCJsc3BhY2VcIiwgXCIwLjA1ZW1cIik7XG4gICAgbWlkZGxlTm9kZS5zZXRBdHRyaWJ1dGUoXCJyc3BhY2VcIiwgXCIwLjA1ZW1cIik7XG4gICAgcmV0dXJuIG1pZGRsZU5vZGU7XG4gIH1cbn0pO1xuXG52YXIgaHRtbEJ1aWxkZXIkNyA9IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAvLyBcXGNhbmNlbCwgXFxiY2FuY2VsLCBcXHhjYW5jZWwsIFxcc291dCwgXFxmYm94LCBcXGNvbG9yYm94LCBcXGZjb2xvcmJveCwgXFxwaGFzZVxuICAvLyBTb21lIGdyb3VwcyBjYW4gcmV0dXJuIGRvY3VtZW50IGZyYWdtZW50cy4gIEhhbmRsZSB0aG9zZSBieSB3cmFwcGluZ1xuICAvLyB0aGVtIGluIGEgc3Bhbi5cbiAgdmFyIGlubmVyID0gYnVpbGRDb21tb24ud3JhcEZyYWdtZW50KGJ1aWxkR3JvdXAkMShncm91cC5ib2R5LCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gIHZhciBsYWJlbCA9IGdyb3VwLmxhYmVsLnNsaWNlKDEpO1xuICB2YXIgc2NhbGUgPSBvcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuICB2YXIgaW1nO1xuICB2YXIgaW1nU2hpZnQgPSAwOyAvLyBJbiB0aGUgTGFUZVggY2FuY2VsIHBhY2thZ2UsIGxpbmUgZ2VvbWV0cnkgaXMgc2xpZ2h0bHkgZGlmZmVyZW50XG4gIC8vIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBzdWJqZWN0IGlzIHdpZGVyIHRoYW4gaXQgaXMgdGFsbCwgb3IgdmljZSB2ZXJzYS5cbiAgLy8gV2UgZG9uJ3Qga25vdyB0aGUgd2lkdGggb2YgYSBncm91cCwgc28gYXMgYSBwcm94eSwgd2UgdGVzdCBpZlxuICAvLyB0aGUgc3ViamVjdCBpcyBhIHNpbmdsZSBjaGFyYWN0ZXIuIFRoaXMgY2FwdHVyZXMgbW9zdCBvZiB0aGVcbiAgLy8gc3ViamVjdHMgdGhhdCBzaG91bGQgZ2V0IHRoZSBcInRhbGxcIiB0cmVhdG1lbnQuXG5cbiAgdmFyIGlzU2luZ2xlQ2hhciA9IHV0aWxzLmlzQ2hhcmFjdGVyQm94KGdyb3VwLmJvZHkpO1xuXG4gIGlmIChsYWJlbCA9PT0gXCJzb3V0XCIpIHtcbiAgICBpbWcgPSBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJzdHJldGNoeVwiLCBcInNvdXRcIl0pO1xuICAgIGltZy5oZWlnaHQgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuZGVmYXVsdFJ1bGVUaGlja25lc3MgLyBzY2FsZTtcbiAgICBpbWdTaGlmdCA9IC0wLjUgKiBvcHRpb25zLmZvbnRNZXRyaWNzKCkueEhlaWdodDtcbiAgfSBlbHNlIGlmIChsYWJlbCA9PT0gXCJwaGFzZVwiKSB7XG4gICAgLy8gU2V0IGEgY291cGxlIG9mIGRpbWVuc2lvbnMgZnJvbSB0aGUgc3RlaW5tZXR6IHBhY2thZ2UuXG4gICAgdmFyIGxpbmVXZWlnaHQgPSBjYWxjdWxhdGVTaXplKHtcbiAgICAgIG51bWJlcjogMC42LFxuICAgICAgdW5pdDogXCJwdFwiXG4gICAgfSwgb3B0aW9ucyk7XG4gICAgdmFyIGNsZWFyYW5jZSA9IGNhbGN1bGF0ZVNpemUoe1xuICAgICAgbnVtYmVyOiAwLjM1LFxuICAgICAgdW5pdDogXCJleFwiXG4gICAgfSwgb3B0aW9ucyk7IC8vIFByZXZlbnQgc2l6ZSBjaGFuZ2VzIGxpa2UgXFxIdWdlIGZyb20gYWZmZWN0aW5nIGxpbmUgdGhpY2tuZXNzXG5cbiAgICB2YXIgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nQmFzZVNpemluZygpO1xuICAgIHNjYWxlID0gc2NhbGUgLyBuZXdPcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuICAgIHZhciBhbmdsZUhlaWdodCA9IGlubmVyLmhlaWdodCArIGlubmVyLmRlcHRoICsgbGluZVdlaWdodCArIGNsZWFyYW5jZTsgLy8gUmVzZXJ2ZSBhIGxlZnQgcGFkIGZvciB0aGUgYW5nbGUuXG5cbiAgICBpbm5lci5zdHlsZS5wYWRkaW5nTGVmdCA9IG1ha2VFbShhbmdsZUhlaWdodCAvIDIgKyBsaW5lV2VpZ2h0KTsgLy8gQ3JlYXRlIGFuIFNWR1xuXG4gICAgdmFyIHZpZXdCb3hIZWlnaHQgPSBNYXRoLmZsb29yKDEwMDAgKiBhbmdsZUhlaWdodCAqIHNjYWxlKTtcbiAgICB2YXIgcGF0aCA9IHBoYXNlUGF0aCh2aWV3Qm94SGVpZ2h0KTtcbiAgICB2YXIgc3ZnTm9kZSA9IG5ldyBTdmdOb2RlKFtuZXcgUGF0aE5vZGUoXCJwaGFzZVwiLCBwYXRoKV0sIHtcbiAgICAgIFwid2lkdGhcIjogXCI0MDBlbVwiLFxuICAgICAgXCJoZWlnaHRcIjogbWFrZUVtKHZpZXdCb3hIZWlnaHQgLyAxMDAwKSxcbiAgICAgIFwidmlld0JveFwiOiBcIjAgMCA0MDAwMDAgXCIgKyB2aWV3Qm94SGVpZ2h0LFxuICAgICAgXCJwcmVzZXJ2ZUFzcGVjdFJhdGlvXCI6IFwieE1pbllNaW4gc2xpY2VcIlxuICAgIH0pOyAvLyBXcmFwIGl0IGluIGEgc3BhbiB3aXRoIG92ZXJmbG93OiBoaWRkZW4uXG5cbiAgICBpbWcgPSBidWlsZENvbW1vbi5tYWtlU3ZnU3BhbihbXCJoaWRlLXRhaWxcIl0sIFtzdmdOb2RlXSwgb3B0aW9ucyk7XG4gICAgaW1nLnN0eWxlLmhlaWdodCA9IG1ha2VFbShhbmdsZUhlaWdodCk7XG4gICAgaW1nU2hpZnQgPSBpbm5lci5kZXB0aCArIGxpbmVXZWlnaHQgKyBjbGVhcmFuY2U7XG4gIH0gZWxzZSB7XG4gICAgLy8gQWRkIGhvcml6b250YWwgcGFkZGluZ1xuICAgIGlmICgvY2FuY2VsLy50ZXN0KGxhYmVsKSkge1xuICAgICAgaWYgKCFpc1NpbmdsZUNoYXIpIHtcbiAgICAgICAgaW5uZXIuY2xhc3Nlcy5wdXNoKFwiY2FuY2VsLXBhZFwiKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGxhYmVsID09PSBcImFuZ2xcIikge1xuICAgICAgaW5uZXIuY2xhc3Nlcy5wdXNoKFwiYW5nbHBhZFwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5uZXIuY2xhc3Nlcy5wdXNoKFwiYm94cGFkXCIpO1xuICAgIH0gLy8gQWRkIHZlcnRpY2FsIHBhZGRpbmdcblxuXG4gICAgdmFyIHRvcFBhZCA9IDA7XG4gICAgdmFyIGJvdHRvbVBhZCA9IDA7XG4gICAgdmFyIHJ1bGVUaGlja25lc3MgPSAwOyAvLyByZWY6IGNhbmNlbCBwYWNrYWdlOiBcXGFkdmFuY2VcXHRvdGFsaGVpZ2h0MlxccEAgJSBcIisyXCJcblxuICAgIGlmICgvYm94Ly50ZXN0KGxhYmVsKSkge1xuICAgICAgcnVsZVRoaWNrbmVzcyA9IE1hdGgubWF4KG9wdGlvbnMuZm9udE1ldHJpY3MoKS5mYm94cnVsZSwgLy8gZGVmYXVsdFxuICAgICAgb3B0aW9ucy5taW5SdWxlVGhpY2tuZXNzIC8vIFVzZXIgb3ZlcnJpZGUuXG4gICAgICApO1xuICAgICAgdG9wUGFkID0gb3B0aW9ucy5mb250TWV0cmljcygpLmZib3hzZXAgKyAobGFiZWwgPT09IFwiY29sb3Jib3hcIiA/IDAgOiBydWxlVGhpY2tuZXNzKTtcbiAgICAgIGJvdHRvbVBhZCA9IHRvcFBhZDtcbiAgICB9IGVsc2UgaWYgKGxhYmVsID09PSBcImFuZ2xcIikge1xuICAgICAgcnVsZVRoaWNrbmVzcyA9IE1hdGgubWF4KG9wdGlvbnMuZm9udE1ldHJpY3MoKS5kZWZhdWx0UnVsZVRoaWNrbmVzcywgb3B0aW9ucy5taW5SdWxlVGhpY2tuZXNzKTtcbiAgICAgIHRvcFBhZCA9IDQgKiBydWxlVGhpY2tuZXNzOyAvLyBnYXAgPSAzIMOXIGxpbmUsIHBsdXMgdGhlIGxpbmUgaXRzZWxmLlxuXG4gICAgICBib3R0b21QYWQgPSBNYXRoLm1heCgwLCAwLjI1IC0gaW5uZXIuZGVwdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b3BQYWQgPSBpc1NpbmdsZUNoYXIgPyAwLjIgOiAwO1xuICAgICAgYm90dG9tUGFkID0gdG9wUGFkO1xuICAgIH1cblxuICAgIGltZyA9IHN0cmV0Y2h5LmVuY2xvc2VTcGFuKGlubmVyLCBsYWJlbCwgdG9wUGFkLCBib3R0b21QYWQsIG9wdGlvbnMpO1xuXG4gICAgaWYgKC9mYm94fGJveGVkfGZjb2xvcmJveC8udGVzdChsYWJlbCkpIHtcbiAgICAgIGltZy5zdHlsZS5ib3JkZXJTdHlsZSA9IFwic29saWRcIjtcbiAgICAgIGltZy5zdHlsZS5ib3JkZXJXaWR0aCA9IG1ha2VFbShydWxlVGhpY2tuZXNzKTtcbiAgICB9IGVsc2UgaWYgKGxhYmVsID09PSBcImFuZ2xcIiAmJiBydWxlVGhpY2tuZXNzICE9PSAwLjA0OSkge1xuICAgICAgaW1nLnN0eWxlLmJvcmRlclRvcFdpZHRoID0gbWFrZUVtKHJ1bGVUaGlja25lc3MpO1xuICAgICAgaW1nLnN0eWxlLmJvcmRlclJpZ2h0V2lkdGggPSBtYWtlRW0ocnVsZVRoaWNrbmVzcyk7XG4gICAgfVxuXG4gICAgaW1nU2hpZnQgPSBpbm5lci5kZXB0aCArIGJvdHRvbVBhZDtcblxuICAgIGlmIChncm91cC5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIGltZy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBncm91cC5iYWNrZ3JvdW5kQ29sb3I7XG5cbiAgICAgIGlmIChncm91cC5ib3JkZXJDb2xvcikge1xuICAgICAgICBpbWcuc3R5bGUuYm9yZGVyQ29sb3IgPSBncm91cC5ib3JkZXJDb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgdmxpc3Q7XG5cbiAgaWYgKGdyb3VwLmJhY2tncm91bmRDb2xvcikge1xuICAgIHZsaXN0ID0gYnVpbGRDb21tb24ubWFrZVZMaXN0KHtcbiAgICAgIHBvc2l0aW9uVHlwZTogXCJpbmRpdmlkdWFsU2hpZnRcIixcbiAgICAgIGNoaWxkcmVuOiBbLy8gUHV0IHRoZSBjb2xvciBiYWNrZ3JvdW5kIGJlaGluZCBpbm5lcjtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGltZyxcbiAgICAgICAgc2hpZnQ6IGltZ1NoaWZ0XG4gICAgICB9LCB7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBpbm5lcixcbiAgICAgICAgc2hpZnQ6IDBcbiAgICAgIH1dXG4gICAgfSwgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGNsYXNzZXMgPSAvY2FuY2VsfHBoYXNlLy50ZXN0KGxhYmVsKSA/IFtcInN2Zy1hbGlnblwiXSA6IFtdO1xuICAgIHZsaXN0ID0gYnVpbGRDb21tb24ubWFrZVZMaXN0KHtcbiAgICAgIHBvc2l0aW9uVHlwZTogXCJpbmRpdmlkdWFsU2hpZnRcIixcbiAgICAgIGNoaWxkcmVuOiBbLy8gV3JpdGUgdGhlIFxcY2FuY2VsIHN0cm9rZSBvbiB0b3Agb2YgaW5uZXIuXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBpbm5lcixcbiAgICAgICAgc2hpZnQ6IDBcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGltZyxcbiAgICAgICAgc2hpZnQ6IGltZ1NoaWZ0LFxuICAgICAgICB3cmFwcGVyQ2xhc3NlczogY2xhc3Nlc1xuICAgICAgfV1cbiAgICB9LCBvcHRpb25zKTtcbiAgfVxuXG4gIGlmICgvY2FuY2VsLy50ZXN0KGxhYmVsKSkge1xuICAgIC8vIFRoZSBjYW5jZWwgcGFja2FnZSBkb2N1bWVudGF0aW9uIHNheXMgdGhhdCBjYW5jZWwgbGluZXMgYWRkIHRoZWlyIGhlaWdodFxuICAgIC8vIHRvIHRoZSBleHByZXNzaW9uLCBidXQgdGVzdHMgc2hvdyB0aGF0IGlzbid0IGhvdyBpdCBhY3R1YWxseSB3b3Jrcy5cbiAgICB2bGlzdC5oZWlnaHQgPSBpbm5lci5oZWlnaHQ7XG4gICAgdmxpc3QuZGVwdGggPSBpbm5lci5kZXB0aDtcbiAgfVxuXG4gIGlmICgvY2FuY2VsLy50ZXN0KGxhYmVsKSAmJiAhaXNTaW5nbGVDaGFyKSB7XG4gICAgLy8gY2FuY2VsIGRvZXMgbm90IGNyZWF0ZSBob3JpeiBzcGFjZSBmb3IgaXRzIGxpbmUgZXh0ZW5zaW9uLlxuICAgIHJldHVybiBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJtb3JkXCIsIFwiY2FuY2VsLWxhcFwiXSwgW3ZsaXN0XSwgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1vcmRcIl0sIFt2bGlzdF0sIG9wdGlvbnMpO1xuICB9XG59O1xuXG52YXIgbWF0aG1sQnVpbGRlciQ2ID0gKGdyb3VwLCBvcHRpb25zKSA9PiB7XG4gIHZhciBmYm94c2VwID0gMDtcbiAgdmFyIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShncm91cC5sYWJlbC5pbmRleE9mKFwiY29sb3Jib3hcIikgPiAtMSA/IFwibXBhZGRlZFwiIDogXCJtZW5jbG9zZVwiLCBbYnVpbGRHcm91cChncm91cC5ib2R5LCBvcHRpb25zKV0pO1xuXG4gIHN3aXRjaCAoZ3JvdXAubGFiZWwpIHtcbiAgICBjYXNlIFwiXFxcXGNhbmNlbFwiOlxuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJub3RhdGlvblwiLCBcInVwZGlhZ29uYWxzdHJpa2VcIik7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgXCJcXFxcYmNhbmNlbFwiOlxuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJub3RhdGlvblwiLCBcImRvd25kaWFnb25hbHN0cmlrZVwiKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBcIlxcXFxwaGFzZVwiOlxuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJub3RhdGlvblwiLCBcInBoYXNvcmFuZ2xlXCIpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFwiXFxcXHNvdXRcIjpcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibm90YXRpb25cIiwgXCJob3Jpem9udGFsc3RyaWtlXCIpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFwiXFxcXGZib3hcIjpcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibm90YXRpb25cIiwgXCJib3hcIik7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgXCJcXFxcYW5nbFwiOlxuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJub3RhdGlvblwiLCBcImFjdHVhcmlhbFwiKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBcIlxcXFxmY29sb3Jib3hcIjpcbiAgICBjYXNlIFwiXFxcXGNvbG9yYm94XCI6XG4gICAgICAvLyA8bWVuY2xvc2U+IGRvZXNuJ3QgaGF2ZSBhIGdvb2Qgbm90YXRpb24gb3B0aW9uLiBTbyB1c2UgPG1wYWRkZWQ+XG4gICAgICAvLyBpbnN0ZWFkLiBTZXQgc29tZSBhdHRyaWJ1dGVzIHRoYXQgY29tZSBpbmNsdWRlZCB3aXRoIDxtZW5jbG9zZT4uXG4gICAgICBmYm94c2VwID0gb3B0aW9ucy5mb250TWV0cmljcygpLmZib3hzZXAgKiBvcHRpb25zLmZvbnRNZXRyaWNzKCkucHRQZXJFbTtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgXCIrXCIgKyAyICogZmJveHNlcCArIFwicHRcIik7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBcIitcIiArIDIgKiBmYm94c2VwICsgXCJwdFwiKTtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibHNwYWNlXCIsIGZib3hzZXAgKyBcInB0XCIpOyAvL1xuXG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShcInZvZmZzZXRcIiwgZmJveHNlcCArIFwicHRcIik7XG5cbiAgICAgIGlmIChncm91cC5sYWJlbCA9PT0gXCJcXFxcZmNvbG9yYm94XCIpIHtcbiAgICAgICAgdmFyIHRoayA9IE1hdGgubWF4KG9wdGlvbnMuZm9udE1ldHJpY3MoKS5mYm94cnVsZSwgLy8gZGVmYXVsdFxuICAgICAgICBvcHRpb25zLm1pblJ1bGVUaGlja25lc3MgLy8gdXNlciBvdmVycmlkZVxuICAgICAgICApO1xuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIFwiYm9yZGVyOiBcIiArIHRoayArIFwiZW0gc29saWQgXCIgKyBTdHJpbmcoZ3JvdXAuYm9yZGVyQ29sb3IpKTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFwiXFxcXHhjYW5jZWxcIjpcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibm90YXRpb25cIiwgXCJ1cGRpYWdvbmFsc3RyaWtlIGRvd25kaWFnb25hbHN0cmlrZVwiKTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgaWYgKGdyb3VwLmJhY2tncm91bmRDb2xvcikge1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibWF0aGJhY2tncm91bmRcIiwgZ3JvdXAuYmFja2dyb3VuZENvbG9yKTtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufTtcblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImVuY2xvc2VcIixcbiAgbmFtZXM6IFtcIlxcXFxjb2xvcmJveFwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAyLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWUsXG4gICAgYXJnVHlwZXM6IFtcImNvbG9yXCIsIFwidGV4dFwiXVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZiwgYXJncywgb3B0QXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBjb2xvciA9IGFzc2VydE5vZGVUeXBlKGFyZ3NbMF0sIFwiY29sb3ItdG9rZW5cIikuY29sb3I7XG4gICAgdmFyIGJvZHkgPSBhcmdzWzFdO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImVuY2xvc2VcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgbGFiZWw6IGZ1bmNOYW1lLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcixcbiAgICAgIGJvZHlcbiAgICB9O1xuICB9LFxuXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciQ3LFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDZcbn0pO1xuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImVuY2xvc2VcIixcbiAgbmFtZXM6IFtcIlxcXFxmY29sb3Jib3hcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMyxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlLFxuICAgIGFyZ1R5cGVzOiBbXCJjb2xvclwiLCBcImNvbG9yXCIsIFwidGV4dFwiXVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZjIsIGFyZ3MsIG9wdEFyZ3MpIHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyLFxuICAgICAgZnVuY05hbWVcbiAgICB9ID0gX3JlZjI7XG4gICAgdmFyIGJvcmRlckNvbG9yID0gYXNzZXJ0Tm9kZVR5cGUoYXJnc1swXSwgXCJjb2xvci10b2tlblwiKS5jb2xvcjtcbiAgICB2YXIgYmFja2dyb3VuZENvbG9yID0gYXNzZXJ0Tm9kZVR5cGUoYXJnc1sxXSwgXCJjb2xvci10b2tlblwiKS5jb2xvcjtcbiAgICB2YXIgYm9keSA9IGFyZ3NbMl07XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiZW5jbG9zZVwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBsYWJlbDogZnVuY05hbWUsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBib3JkZXJDb2xvcixcbiAgICAgIGJvZHlcbiAgICB9O1xuICB9LFxuXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciQ3LFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDZcbn0pO1xuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImVuY2xvc2VcIixcbiAgbmFtZXM6IFtcIlxcXFxmYm94XCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDEsXG4gICAgYXJnVHlwZXM6IFtcImhib3hcIl0sXG4gICAgYWxsb3dlZEluVGV4dDogdHJ1ZVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZjMsIGFyZ3MpIHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyXG4gICAgfSA9IF9yZWYzO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImVuY2xvc2VcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgbGFiZWw6IFwiXFxcXGZib3hcIixcbiAgICAgIGJvZHk6IGFyZ3NbMF1cbiAgICB9O1xuICB9XG5cbn0pO1xuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImVuY2xvc2VcIixcbiAgbmFtZXM6IFtcIlxcXFxjYW5jZWxcIiwgXCJcXFxcYmNhbmNlbFwiLCBcIlxcXFx4Y2FuY2VsXCIsIFwiXFxcXHNvdXRcIiwgXCJcXFxccGhhc2VcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZjQsIGFyZ3MpIHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyLFxuICAgICAgZnVuY05hbWVcbiAgICB9ID0gX3JlZjQ7XG4gICAgdmFyIGJvZHkgPSBhcmdzWzBdO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImVuY2xvc2VcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgbGFiZWw6IGZ1bmNOYW1lLFxuICAgICAgYm9keVxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDcsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkNlxufSk7XG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiZW5jbG9zZVwiLFxuICBuYW1lczogW1wiXFxcXGFuZ2xcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBhcmdUeXBlczogW1wiaGJveFwiXSxcbiAgICBhbGxvd2VkSW5UZXh0OiBmYWxzZVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZjUsIGFyZ3MpIHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyXG4gICAgfSA9IF9yZWY1O1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImVuY2xvc2VcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgbGFiZWw6IFwiXFxcXGFuZ2xcIixcbiAgICAgIGJvZHk6IGFyZ3NbMF1cbiAgICB9O1xuICB9XG5cbn0pO1xuXG4vKipcbiAqIEFsbCByZWdpc3RlcmVkIGVudmlyb25tZW50cy5cbiAqIGBlbnZpcm9ubWVudHMuanNgIGV4cG9ydHMgdGhpcyBzYW1lIGRpY3Rpb25hcnkgYWdhaW4gYW5kIG1ha2VzIGl0IHB1YmxpYy5cbiAqIGBQYXJzZXIuanNgIHJlcXVpcmVzIHRoaXMgZGljdGlvbmFyeSB2aWEgYGVudmlyb25tZW50cy5qc2AuXG4gKi9cbnZhciBfZW52aXJvbm1lbnRzID0ge307XG5mdW5jdGlvbiBkZWZpbmVFbnZpcm9ubWVudChfcmVmKSB7XG4gIHZhciB7XG4gICAgdHlwZSxcbiAgICBuYW1lcyxcbiAgICBwcm9wcyxcbiAgICBoYW5kbGVyLFxuICAgIGh0bWxCdWlsZGVyLFxuICAgIG1hdGhtbEJ1aWxkZXJcbiAgfSA9IF9yZWY7XG4gIC8vIFNldCBkZWZhdWx0IHZhbHVlcyBvZiBlbnZpcm9ubWVudHMuXG4gIHZhciBkYXRhID0ge1xuICAgIHR5cGUsXG4gICAgbnVtQXJnczogcHJvcHMubnVtQXJncyB8fCAwLFxuICAgIGFsbG93ZWRJblRleHQ6IGZhbHNlLFxuICAgIG51bU9wdGlvbmFsQXJnczogMCxcbiAgICBoYW5kbGVyXG4gIH07XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkge1xuICAgIC8vIFRPRE86IFRoZSB2YWx1ZSB0eXBlIG9mIF9lbnZpcm9ubWVudHMgc2hvdWxkIGJlIGEgdHlwZSB1bmlvbiBvZiBhbGxcbiAgICAvLyBwb3NzaWJsZSBgRW52U3BlYzw+YCBwb3NzaWJpbGl0aWVzIGluc3RlYWQgb2YgYEVudlNwZWM8Kj5gLCB3aGljaCBpc1xuICAgIC8vIGFuIGV4aXN0ZW50aWFsIHR5cGUuXG4gICAgX2Vudmlyb25tZW50c1tuYW1lc1tpXV0gPSBkYXRhO1xuICB9XG5cbiAgaWYgKGh0bWxCdWlsZGVyKSB7XG4gICAgX2h0bWxHcm91cEJ1aWxkZXJzW3R5cGVdID0gaHRtbEJ1aWxkZXI7XG4gIH1cblxuICBpZiAobWF0aG1sQnVpbGRlcikge1xuICAgIF9tYXRobWxHcm91cEJ1aWxkZXJzW3R5cGVdID0gbWF0aG1sQnVpbGRlcjtcbiAgfVxufVxuXG4vKipcbiAqIEFsbCByZWdpc3RlcmVkIGdsb2JhbC9idWlsdC1pbiBtYWNyb3MuXG4gKiBgbWFjcm9zLmpzYCBleHBvcnRzIHRoaXMgc2FtZSBkaWN0aW9uYXJ5IGFnYWluIGFuZCBtYWtlcyBpdCBwdWJsaWMuXG4gKiBgUGFyc2VyLmpzYCByZXF1aXJlcyB0aGlzIGRpY3Rpb25hcnkgdmlhIGBtYWNyb3MuanNgLlxuICovXG52YXIgX21hY3JvcyA9IHt9OyAvLyBUaGlzIGZ1bmN0aW9uIG1pZ2h0IG9uZSBkYXkgYWNjZXB0IGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgYW5kIGRvIG1vcmUgdGhpbmdzLlxuXG5mdW5jdGlvbiBkZWZpbmVNYWNybyhuYW1lLCBib2R5KSB7XG4gIF9tYWNyb3NbbmFtZV0gPSBib2R5O1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb25zXG5mdW5jdGlvbiBnZXRITGluZXMocGFyc2VyKSB7XG4gIC8vIFJldHVybiBhbiBhcnJheS4gVGhlIGFycmF5IGxlbmd0aCA9IG51bWJlciBvZiBobGluZXMuXG4gIC8vIEVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdGVsbHMgaWYgdGhlIGxpbmUgaXMgZGFzaGVkLlxuICB2YXIgaGxpbmVJbmZvID0gW107XG4gIHBhcnNlci5jb25zdW1lU3BhY2VzKCk7XG4gIHZhciBueHQgPSBwYXJzZXIuZmV0Y2goKS50ZXh0O1xuXG4gIGlmIChueHQgPT09IFwiXFxcXHJlbGF4XCIpIHtcbiAgICAvLyBcXHJlbGF4IGlzIGFuIGFydGlmYWN0IG9mIHRoZSBcXGNyIG1hY3JvIGJlbG93XG4gICAgcGFyc2VyLmNvbnN1bWUoKTtcbiAgICBwYXJzZXIuY29uc3VtZVNwYWNlcygpO1xuICAgIG54dCA9IHBhcnNlci5mZXRjaCgpLnRleHQ7XG4gIH1cblxuICB3aGlsZSAobnh0ID09PSBcIlxcXFxobGluZVwiIHx8IG54dCA9PT0gXCJcXFxcaGRhc2hsaW5lXCIpIHtcbiAgICBwYXJzZXIuY29uc3VtZSgpO1xuICAgIGhsaW5lSW5mby5wdXNoKG54dCA9PT0gXCJcXFxcaGRhc2hsaW5lXCIpO1xuICAgIHBhcnNlci5jb25zdW1lU3BhY2VzKCk7XG4gICAgbnh0ID0gcGFyc2VyLmZldGNoKCkudGV4dDtcbiAgfVxuXG4gIHJldHVybiBobGluZUluZm87XG59XG5cbnZhciB2YWxpZGF0ZUFtc0Vudmlyb25tZW50Q29udGV4dCA9IGNvbnRleHQgPT4ge1xuICB2YXIgc2V0dGluZ3MgPSBjb250ZXh0LnBhcnNlci5zZXR0aW5ncztcblxuICBpZiAoIXNldHRpbmdzLmRpc3BsYXlNb2RlKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJ7XCIgKyBjb250ZXh0LmVudk5hbWUgKyBcIn0gY2FuIGJlIHVzZWQgb25seSBpblwiICsgXCIgZGlzcGxheSBtb2RlLlwiKTtcbiAgfVxufTsgLy8gYXV0b1RhZyAoYW4gYXJndW1lbnQgdG8gcGFyc2VBcnJheSkgY2FuIGJlIG9uZSBvZiB0aHJlZSB2YWx1ZXM6XG4vLyAqIHVuZGVmaW5lZDogUmVndWxhciAobm90LXRvcC1sZXZlbCkgYXJyYXk7IG5vIHRhZ3Mgb24gZWFjaCByb3dcbi8vICogdHJ1ZTogQXV0b21hdGljIGVxdWF0aW9uIG51bWJlcmluZywgb3ZlcnJpZGFibGUgYnkgXFx0YWdcbi8vICogZmFsc2U6IFRhZ3MgYWxsb3dlZCBvbiBlYWNoIHJvdywgYnV0IG5vIGF1dG9tYXRpYyBudW1iZXJpbmdcbi8vIFRoaXMgZnVuY3Rpb24gKmRvZXNuJ3QqIHdvcmsgd2l0aCB0aGUgXCJzcGxpdFwiIGVudmlyb25tZW50IG5hbWUuXG5cblxuZnVuY3Rpb24gZ2V0QXV0b1RhZyhuYW1lKSB7XG4gIGlmIChuYW1lLmluZGV4T2YoXCJlZFwiKSA9PT0gLTEpIHtcbiAgICByZXR1cm4gbmFtZS5pbmRleE9mKFwiKlwiKSA9PT0gLTE7XG4gIH0gLy8gcmV0dXJuIHVuZGVmaW5lZDtcblxufVxuLyoqXG4gKiBQYXJzZSB0aGUgYm9keSBvZiB0aGUgZW52aXJvbm1lbnQsIHdpdGggcm93cyBkZWxpbWl0ZWQgYnkgXFxcXCBhbmRcbiAqIGNvbHVtbnMgZGVsaW1pdGVkIGJ5ICYsIGFuZCBjcmVhdGUgYSBuZXN0ZWQgbGlzdCBpbiByb3ctbWFqb3Igb3JkZXJcbiAqIHdpdGggb25lIGdyb3VwIHBlciBjZWxsLiAgSWYgZ2l2ZW4gYW4gb3B0aW9uYWwgYXJndW1lbnQgc3R5bGVcbiAqIChcInRleHRcIiwgXCJkaXNwbGF5XCIsIGV0Yy4pLCB0aGVuIGVhY2ggY2VsbCBpcyBjYXN0IGludG8gdGhhdCBzdHlsZS5cbiAqL1xuXG5cbmZ1bmN0aW9uIHBhcnNlQXJyYXkocGFyc2VyLCBfcmVmLCBzdHlsZSkge1xuICB2YXIge1xuICAgIGhza2lwQmVmb3JlQW5kQWZ0ZXIsXG4gICAgYWRkSm90LFxuICAgIGNvbHMsXG4gICAgYXJyYXlzdHJldGNoLFxuICAgIGNvbFNlcGFyYXRpb25UeXBlLFxuICAgIGF1dG9UYWcsXG4gICAgc2luZ2xlUm93LFxuICAgIGVtcHR5U2luZ2xlUm93LFxuICAgIG1heE51bUNvbHMsXG4gICAgbGVxbm9cbiAgfSA9IF9yZWY7XG4gIHBhcnNlci5ndWxsZXQuYmVnaW5Hcm91cCgpO1xuXG4gIGlmICghc2luZ2xlUm93KSB7XG4gICAgLy8gXFxjciBpcyBlcXVpdmFsZW50IHRvIFxcXFwgd2l0aG91dCB0aGUgb3B0aW9uYWwgc2l6ZSBhcmd1bWVudCAoc2VlIGJlbG93KVxuICAgIC8vIFRPRE86IHByb3ZpZGUgaGVscGZ1bCBlcnJvciB3aGVuIFxcY3IgaXMgdXNlZCBvdXRzaWRlIGFycmF5IGVudmlyb25tZW50XG4gICAgcGFyc2VyLmd1bGxldC5tYWNyb3Muc2V0KFwiXFxcXGNyXCIsIFwiXFxcXFxcXFxcXFxccmVsYXhcIik7XG4gIH0gLy8gR2V0IGN1cnJlbnQgYXJyYXlzdHJldGNoIGlmIGl0J3Mgbm90IHNldCBieSB0aGUgZW52aXJvbm1lbnRcblxuXG4gIGlmICghYXJyYXlzdHJldGNoKSB7XG4gICAgdmFyIHN0cmV0Y2ggPSBwYXJzZXIuZ3VsbGV0LmV4cGFuZE1hY3JvQXNUZXh0KFwiXFxcXGFycmF5c3RyZXRjaFwiKTtcblxuICAgIGlmIChzdHJldGNoID09IG51bGwpIHtcbiAgICAgIC8vIERlZmF1bHQgXFxhcnJheXN0cmV0Y2ggZnJvbSBsdHRhYi5kdHhcbiAgICAgIGFycmF5c3RyZXRjaCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFycmF5c3RyZXRjaCA9IHBhcnNlRmxvYXQoc3RyZXRjaCk7XG5cbiAgICAgIGlmICghYXJyYXlzdHJldGNoIHx8IGFycmF5c3RyZXRjaCA8IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJJbnZhbGlkIFxcXFxhcnJheXN0cmV0Y2g6IFwiICsgc3RyZXRjaCk7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIFN0YXJ0IGdyb3VwIGZvciBmaXJzdCBjZWxsXG5cblxuICBwYXJzZXIuZ3VsbGV0LmJlZ2luR3JvdXAoKTtcbiAgdmFyIHJvdyA9IFtdO1xuICB2YXIgYm9keSA9IFtyb3ddO1xuICB2YXIgcm93R2FwcyA9IFtdO1xuICB2YXIgaExpbmVzQmVmb3JlUm93ID0gW107XG4gIHZhciB0YWdzID0gYXV0b1RhZyAhPSBudWxsID8gW10gOiB1bmRlZmluZWQ7IC8vIGFtc21hdGggdXNlcyBcXGdsb2JhbFxcQGVxbnN3dHJ1ZSBhbmQgXFxnbG9iYWxcXEBlcW5zd2ZhbHNlIHRvIHJlcHJlc2VudFxuICAvLyB3aGV0aGVyIHRoaXMgcm93IHNob3VsZCBoYXZlIGFuIGVxdWF0aW9uIG51bWJlci4gIFNpbXVsYXRlIHRoaXMgd2l0aFxuICAvLyBhIFxcQGVxbnN3IG1hY3JvIHNldCB0byAxIG9yIDAuXG5cbiAgZnVuY3Rpb24gYmVnaW5Sb3coKSB7XG4gICAgaWYgKGF1dG9UYWcpIHtcbiAgICAgIHBhcnNlci5ndWxsZXQubWFjcm9zLnNldChcIlxcXFxAZXFuc3dcIiwgXCIxXCIsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGVuZFJvdygpIHtcbiAgICBpZiAodGFncykge1xuICAgICAgaWYgKHBhcnNlci5ndWxsZXQubWFjcm9zLmdldChcIlxcXFxkZkB0YWdcIikpIHtcbiAgICAgICAgdGFncy5wdXNoKHBhcnNlci5zdWJwYXJzZShbbmV3IFRva2VuKFwiXFxcXGRmQHRhZ1wiKV0pKTtcbiAgICAgICAgcGFyc2VyLmd1bGxldC5tYWNyb3Muc2V0KFwiXFxcXGRmQHRhZ1wiLCB1bmRlZmluZWQsIHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFncy5wdXNoKEJvb2xlYW4oYXV0b1RhZykgJiYgcGFyc2VyLmd1bGxldC5tYWNyb3MuZ2V0KFwiXFxcXEBlcW5zd1wiKSA9PT0gXCIxXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJlZ2luUm93KCk7IC8vIFRlc3QgZm9yIFxcaGxpbmUgYXQgdGhlIHRvcCBvZiB0aGUgYXJyYXkuXG5cbiAgaExpbmVzQmVmb3JlUm93LnB1c2goZ2V0SExpbmVzKHBhcnNlcikpO1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICAvLyBQYXJzZSBlYWNoIGNlbGwgaW4gaXRzIG93biBncm91cCAobmFtZXNwYWNlKVxuICAgIHZhciBjZWxsID0gcGFyc2VyLnBhcnNlRXhwcmVzc2lvbihmYWxzZSwgc2luZ2xlUm93ID8gXCJcXFxcZW5kXCIgOiBcIlxcXFxcXFxcXCIpO1xuICAgIHBhcnNlci5ndWxsZXQuZW5kR3JvdXAoKTtcbiAgICBwYXJzZXIuZ3VsbGV0LmJlZ2luR3JvdXAoKTtcbiAgICBjZWxsID0ge1xuICAgICAgdHlwZTogXCJvcmRncm91cFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBib2R5OiBjZWxsXG4gICAgfTtcblxuICAgIGlmIChzdHlsZSkge1xuICAgICAgY2VsbCA9IHtcbiAgICAgICAgdHlwZTogXCJzdHlsaW5nXCIsXG4gICAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgICBzdHlsZSxcbiAgICAgICAgYm9keTogW2NlbGxdXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJvdy5wdXNoKGNlbGwpO1xuICAgIHZhciBuZXh0ID0gcGFyc2VyLmZldGNoKCkudGV4dDtcblxuICAgIGlmIChuZXh0ID09PSBcIiZcIikge1xuICAgICAgaWYgKG1heE51bUNvbHMgJiYgcm93Lmxlbmd0aCA9PT0gbWF4TnVtQ29scykge1xuICAgICAgICBpZiAoc2luZ2xlUm93IHx8IGNvbFNlcGFyYXRpb25UeXBlKSB7XG4gICAgICAgICAgLy8ge2VxdWF0aW9ufSBvciB7c3BsaXR9XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJUb28gbWFueSB0YWIgY2hhcmFjdGVyczogJlwiLCBwYXJzZXIubmV4dFRva2VuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB7YXJyYXl9IGVudmlyb25tZW50XG4gICAgICAgICAgcGFyc2VyLnNldHRpbmdzLnJlcG9ydE5vbnN0cmljdChcInRleHRFbnZcIiwgXCJUb28gZmV3IGNvbHVtbnMgXCIgKyBcInNwZWNpZmllZCBpbiB0aGUge2FycmF5fSBjb2x1bW4gYXJndW1lbnQuXCIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHBhcnNlci5jb25zdW1lKCk7XG4gICAgfSBlbHNlIGlmIChuZXh0ID09PSBcIlxcXFxlbmRcIikge1xuICAgICAgZW5kUm93KCk7IC8vIEFycmF5cyB0ZXJtaW5hdGUgbmV3bGluZXMgd2l0aCBgXFxjcmNyYCB3aGljaCBjb25zdW1lcyBhIGBcXGNyYCBpZlxuICAgICAgLy8gdGhlIGxhc3QgbGluZSBpcyBlbXB0eS4gIEhvd2V2ZXIsIEFNUyBlbnZpcm9ubWVudHMga2VlcCB0aGVcbiAgICAgIC8vIGVtcHR5IHJvdyBpZiBpdCdzIHRoZSBvbmx5IG9uZS5cbiAgICAgIC8vIE5PVEU6IEN1cnJlbnRseSwgYGNlbGxgIGlzIHRoZSBsYXN0IGl0ZW0gYWRkZWQgaW50byBgcm93YC5cblxuICAgICAgaWYgKHJvdy5sZW5ndGggPT09IDEgJiYgY2VsbC50eXBlID09PSBcInN0eWxpbmdcIiAmJiBjZWxsLmJvZHlbMF0uYm9keS5sZW5ndGggPT09IDAgJiYgKGJvZHkubGVuZ3RoID4gMSB8fCAhZW1wdHlTaW5nbGVSb3cpKSB7XG4gICAgICAgIGJvZHkucG9wKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChoTGluZXNCZWZvcmVSb3cubGVuZ3RoIDwgYm9keS5sZW5ndGggKyAxKSB7XG4gICAgICAgIGhMaW5lc0JlZm9yZVJvdy5wdXNoKFtdKTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIGlmIChuZXh0ID09PSBcIlxcXFxcXFxcXCIpIHtcbiAgICAgIHBhcnNlci5jb25zdW1lKCk7XG4gICAgICB2YXIgc2l6ZSA9IHZvaWQgMDsgLy8gXFxkZWZcXExldEB7XFxsZXRcXFxcXFxtYXRoQGNyfVxuICAgICAgLy8gXFxkZWZcXG1hdGhAY3J7Li4uXFxtYXRoQGNyQH1cbiAgICAgIC8vIFxcZGVmXFxtYXRoQGNyQHtcXG5ld0BpZm5leHRjaGFyW1xcbWF0aEBjckBAe1xcbWF0aEBjckBAW1xcekBdfX1cbiAgICAgIC8vIFxcZGVmXFxtYXRoQGNyQEBbIzFdey4uLlxcbWF0aEBjckBAQC4uLn1cbiAgICAgIC8vIFxcZGVmXFxtYXRoQGNyQEBAe1xcY3J9XG5cbiAgICAgIGlmIChwYXJzZXIuZ3VsbGV0LmZ1dHVyZSgpLnRleHQgIT09IFwiIFwiKSB7XG4gICAgICAgIHNpemUgPSBwYXJzZXIucGFyc2VTaXplR3JvdXAodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJvd0dhcHMucHVzaChzaXplID8gc2l6ZS52YWx1ZSA6IG51bGwpO1xuICAgICAgZW5kUm93KCk7IC8vIGNoZWNrIGZvciBcXGhsaW5lKHMpIGZvbGxvd2luZyB0aGUgcm93IHNlcGFyYXRvclxuXG4gICAgICBoTGluZXNCZWZvcmVSb3cucHVzaChnZXRITGluZXMocGFyc2VyKSk7XG4gICAgICByb3cgPSBbXTtcbiAgICAgIGJvZHkucHVzaChyb3cpO1xuICAgICAgYmVnaW5Sb3coKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJFeHBlY3RlZCAmIG9yIFxcXFxcXFxcIG9yIFxcXFxjciBvciBcXFxcZW5kXCIsIHBhcnNlci5uZXh0VG9rZW4pO1xuICAgIH1cbiAgfSAvLyBFbmQgY2VsbCBncm91cFxuXG5cbiAgcGFyc2VyLmd1bGxldC5lbmRHcm91cCgpOyAvLyBFbmQgYXJyYXkgZ3JvdXAgZGVmaW5pbmcgXFxjclxuXG4gIHBhcnNlci5ndWxsZXQuZW5kR3JvdXAoKTtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgYWRkSm90LFxuICAgIGFycmF5c3RyZXRjaCxcbiAgICBib2R5LFxuICAgIGNvbHMsXG4gICAgcm93R2FwcyxcbiAgICBoc2tpcEJlZm9yZUFuZEFmdGVyLFxuICAgIGhMaW5lc0JlZm9yZVJvdyxcbiAgICBjb2xTZXBhcmF0aW9uVHlwZSxcbiAgICB0YWdzLFxuICAgIGxlcW5vXG4gIH07XG59IC8vIERlY2lkZXMgb24gYSBzdHlsZSBmb3IgY2VsbHMgaW4gYW4gYXJyYXkgYWNjb3JkaW5nIHRvIHdoZXRoZXIgdGhlIGdpdmVuXG4vLyBlbnZpcm9ubWVudCBuYW1lIHN0YXJ0cyB3aXRoIHRoZSBsZXR0ZXIgJ2QnLlxuXG5cbmZ1bmN0aW9uIGRDZWxsU3R5bGUoZW52TmFtZSkge1xuICBpZiAoZW52TmFtZS5zbGljZSgwLCAxKSA9PT0gXCJkXCIpIHtcbiAgICByZXR1cm4gXCJkaXNwbGF5XCI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFwidGV4dFwiO1xuICB9XG59XG5cbnZhciBodG1sQnVpbGRlciQ2ID0gZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgdmFyIHI7XG4gIHZhciBjO1xuICB2YXIgbnIgPSBncm91cC5ib2R5Lmxlbmd0aDtcbiAgdmFyIGhMaW5lc0JlZm9yZVJvdyA9IGdyb3VwLmhMaW5lc0JlZm9yZVJvdztcbiAgdmFyIG5jID0gMDtcbiAgdmFyIGJvZHkgPSBuZXcgQXJyYXkobnIpO1xuICB2YXIgaGxpbmVzID0gW107XG4gIHZhciBydWxlVGhpY2tuZXNzID0gTWF0aC5tYXgoIC8vIEZyb20gTGFUZVggXFxzaG93dGhlXFxhcnJheXJ1bGV3aWR0aC4gRXF1YWxzIDAuMDQgZW0uXG4gIG9wdGlvbnMuZm9udE1ldHJpY3MoKS5hcnJheVJ1bGVXaWR0aCwgb3B0aW9ucy5taW5SdWxlVGhpY2tuZXNzIC8vIFVzZXIgb3ZlcnJpZGUuXG4gICk7IC8vIEhvcml6b250YWwgc3BhY2luZ1xuXG4gIHZhciBwdCA9IDEgLyBvcHRpb25zLmZvbnRNZXRyaWNzKCkucHRQZXJFbTtcbiAgdmFyIGFycmF5Y29sc2VwID0gNSAqIHB0OyAvLyBkZWZhdWx0IHZhbHVlLCBpLmUuIFxcYXJyYXljb2xzZXAgaW4gYXJ0aWNsZS5jbHNcblxuICBpZiAoZ3JvdXAuY29sU2VwYXJhdGlvblR5cGUgJiYgZ3JvdXAuY29sU2VwYXJhdGlvblR5cGUgPT09IFwic21hbGxcIikge1xuICAgIC8vIFdlJ3JlIGluIGEge3NtYWxsbWF0cml4fS4gRGVmYXVsdCBjb2x1bW4gc3BhY2UgaXMgXFx0aGlja3NwYWNlLFxuICAgIC8vIGkuZS4gNS8xOGVtID0gMC4yNzc4ZW0sIHBlciBhbXNtYXRoLmR0eCBmb3Ige3NtYWxsbWF0cml4fS5cbiAgICAvLyBCdXQgdGhhdCBuZWVkcyBhZGp1c3RtZW50IGJlY2F1c2UgTGFUZVggYXBwbGllcyBcXHNjcmlwdHN0eWxlIHRvIHRoZVxuICAgIC8vIGVudGlyZSBhcnJheSwgaW5jbHVkaW5nIHRoZSBjb2xzcGFjZSwgYnV0IHRoaXMgZnVuY3Rpb24gYXBwbGllc1xuICAgIC8vIFxcc2NyaXB0c3R5bGUgb25seSBpbnNpZGUgZWFjaCBlbGVtZW50LlxuICAgIHZhciBsb2NhbE11bHRpcGxpZXIgPSBvcHRpb25zLmhhdmluZ1N0eWxlKFN0eWxlJDEuU0NSSVBUKS5zaXplTXVsdGlwbGllcjtcbiAgICBhcnJheWNvbHNlcCA9IDAuMjc3OCAqIChsb2NhbE11bHRpcGxpZXIgLyBvcHRpb25zLnNpemVNdWx0aXBsaWVyKTtcbiAgfSAvLyBWZXJ0aWNhbCBzcGFjaW5nXG5cblxuICB2YXIgYmFzZWxpbmVza2lwID0gZ3JvdXAuY29sU2VwYXJhdGlvblR5cGUgPT09IFwiQ0RcIiA/IGNhbGN1bGF0ZVNpemUoe1xuICAgIG51bWJlcjogMyxcbiAgICB1bml0OiBcImV4XCJcbiAgfSwgb3B0aW9ucykgOiAxMiAqIHB0OyAvLyBzZWUgc2l6ZTEwLmNsb1xuICAvLyBEZWZhdWx0IFxcam90IGZyb20gbHRtYXRoLmR0eFxuICAvLyBUT0RPKGVkZW1haW5lKTogYWxsb3cgb3ZlcnJpZGluZyBcXGpvdCB2aWEgXFxzZXRsZW5ndGggKCM2ODcpXG5cbiAgdmFyIGpvdCA9IDMgKiBwdDtcbiAgdmFyIGFycmF5c2tpcCA9IGdyb3VwLmFycmF5c3RyZXRjaCAqIGJhc2VsaW5lc2tpcDtcbiAgdmFyIGFyc3RydXRIZWlnaHQgPSAwLjcgKiBhcnJheXNraXA7IC8vIFxcc3RydXRib3ggaW4gbHRmc3N0cmMuZHR4IGFuZFxuXG4gIHZhciBhcnN0cnV0RGVwdGggPSAwLjMgKiBhcnJheXNraXA7IC8vIFxcQGFyc3RydXRib3ggaW4gbHR0YWIuZHR4XG5cbiAgdmFyIHRvdGFsSGVpZ2h0ID0gMDsgLy8gU2V0IGEgcG9zaXRpb24gZm9yIFxcaGxpbmUocykgYXQgdGhlIHRvcCBvZiB0aGUgYXJyYXksIGlmIGFueS5cblxuICBmdW5jdGlvbiBzZXRITGluZVBvcyhobGluZXNJbkdhcCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGxpbmVzSW5HYXAubGVuZ3RoOyArK2kpIHtcbiAgICAgIGlmIChpID4gMCkge1xuICAgICAgICB0b3RhbEhlaWdodCArPSAwLjI1O1xuICAgICAgfVxuXG4gICAgICBobGluZXMucHVzaCh7XG4gICAgICAgIHBvczogdG90YWxIZWlnaHQsXG4gICAgICAgIGlzRGFzaGVkOiBobGluZXNJbkdhcFtpXVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0SExpbmVQb3MoaExpbmVzQmVmb3JlUm93WzBdKTtcblxuICBmb3IgKHIgPSAwOyByIDwgZ3JvdXAuYm9keS5sZW5ndGg7ICsrcikge1xuICAgIHZhciBpbnJvdyA9IGdyb3VwLmJvZHlbcl07XG4gICAgdmFyIGhlaWdodCA9IGFyc3RydXRIZWlnaHQ7IC8vIFxcQGFycmF5IGFkZHMgYW4gXFxAYXJzdHJ1dFxuXG4gICAgdmFyIGRlcHRoID0gYXJzdHJ1dERlcHRoOyAvLyB0byBlYWNoIHRvdyAodmlhIHRoZSB0ZW1wbGF0ZSlcblxuICAgIGlmIChuYyA8IGlucm93Lmxlbmd0aCkge1xuICAgICAgbmMgPSBpbnJvdy5sZW5ndGg7XG4gICAgfVxuXG4gICAgdmFyIG91dHJvdyA9IG5ldyBBcnJheShpbnJvdy5sZW5ndGgpO1xuXG4gICAgZm9yIChjID0gMDsgYyA8IGlucm93Lmxlbmd0aDsgKytjKSB7XG4gICAgICB2YXIgZWx0ID0gYnVpbGRHcm91cCQxKGlucm93W2NdLCBvcHRpb25zKTtcblxuICAgICAgaWYgKGRlcHRoIDwgZWx0LmRlcHRoKSB7XG4gICAgICAgIGRlcHRoID0gZWx0LmRlcHRoO1xuICAgICAgfVxuXG4gICAgICBpZiAoaGVpZ2h0IDwgZWx0LmhlaWdodCkge1xuICAgICAgICBoZWlnaHQgPSBlbHQuaGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICBvdXRyb3dbY10gPSBlbHQ7XG4gICAgfVxuXG4gICAgdmFyIHJvd0dhcCA9IGdyb3VwLnJvd0dhcHNbcl07XG4gICAgdmFyIGdhcCA9IDA7XG5cbiAgICBpZiAocm93R2FwKSB7XG4gICAgICBnYXAgPSBjYWxjdWxhdGVTaXplKHJvd0dhcCwgb3B0aW9ucyk7XG5cbiAgICAgIGlmIChnYXAgPiAwKSB7XG4gICAgICAgIC8vIFxcQGFyZ2FycmF5Y3JcbiAgICAgICAgZ2FwICs9IGFyc3RydXREZXB0aDtcblxuICAgICAgICBpZiAoZGVwdGggPCBnYXApIHtcbiAgICAgICAgICBkZXB0aCA9IGdhcDsgLy8gXFxAeGFyZ2FycmF5Y3JcbiAgICAgICAgfVxuXG4gICAgICAgIGdhcCA9IDA7XG4gICAgICB9XG4gICAgfSAvLyBJbiBBTVMgbXVsdGlsaW5lIGVudmlyb25tZW50cyBzdWNoIGFzIGFsaWduZWQgYW5kIGdhdGhlcmVkLCByb3dzXG4gICAgLy8gY29ycmVzcG9uZCB0byBsaW5lcyB0aGF0IGhhdmUgYWRkaXRpb25hbCBcXGpvdCBhZGRlZCB0byB0aGVcbiAgICAvLyBcXGJhc2VsaW5lc2tpcCB2aWEgXFxvcGVudXAuXG5cblxuICAgIGlmIChncm91cC5hZGRKb3QpIHtcbiAgICAgIGRlcHRoICs9IGpvdDtcbiAgICB9XG5cbiAgICBvdXRyb3cuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgIG91dHJvdy5kZXB0aCA9IGRlcHRoO1xuICAgIHRvdGFsSGVpZ2h0ICs9IGhlaWdodDtcbiAgICBvdXRyb3cucG9zID0gdG90YWxIZWlnaHQ7XG4gICAgdG90YWxIZWlnaHQgKz0gZGVwdGggKyBnYXA7IC8vIFxcQHlhcmdhcnJheWNyXG5cbiAgICBib2R5W3JdID0gb3V0cm93OyAvLyBTZXQgYSBwb3NpdGlvbiBmb3IgXFxobGluZShzKSwgaWYgYW55LlxuXG4gICAgc2V0SExpbmVQb3MoaExpbmVzQmVmb3JlUm93W3IgKyAxXSk7XG4gIH1cblxuICB2YXIgb2Zmc2V0ID0gdG90YWxIZWlnaHQgLyAyICsgb3B0aW9ucy5mb250TWV0cmljcygpLmF4aXNIZWlnaHQ7XG4gIHZhciBjb2xEZXNjcmlwdGlvbnMgPSBncm91cC5jb2xzIHx8IFtdO1xuICB2YXIgY29scyA9IFtdO1xuICB2YXIgY29sU2VwO1xuICB2YXIgY29sRGVzY3JOdW07XG4gIHZhciB0YWdTcGFucyA9IFtdO1xuXG4gIGlmIChncm91cC50YWdzICYmIGdyb3VwLnRhZ3Muc29tZSh0YWcgPT4gdGFnKSkge1xuICAgIC8vIEFuIGVudmlyb25tZW50IHdpdGggbWFudWFsIHRhZ3MgYW5kL29yIGF1dG9tYXRpYyBlcXVhdGlvbiBudW1iZXJzLlxuICAgIC8vIENyZWF0ZSBub2RlKHMpLCB0aGUgbGF0dGVyIG9mIHdoaWNoIHRyaWdnZXIgQ1NTIGNvdW50ZXIgaW5jcmVtZW50LlxuICAgIGZvciAociA9IDA7IHIgPCBucjsgKytyKSB7XG4gICAgICB2YXIgcncgPSBib2R5W3JdO1xuICAgICAgdmFyIHNoaWZ0ID0gcncucG9zIC0gb2Zmc2V0O1xuICAgICAgdmFyIHRhZyA9IGdyb3VwLnRhZ3Nbcl07XG4gICAgICB2YXIgdGFnU3BhbiA9IHZvaWQgMDtcblxuICAgICAgaWYgKHRhZyA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBhdXRvbWF0aWMgbnVtYmVyaW5nXG4gICAgICAgIHRhZ1NwYW4gPSBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJlcW4tbnVtXCJdLCBbXSwgb3B0aW9ucyk7XG4gICAgICB9IGVsc2UgaWYgKHRhZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gXFxub251bWJlci9cXG5vdGFnIG9yIHN0YXJyZWQgZW52aXJvbm1lbnRcbiAgICAgICAgdGFnU3BhbiA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtdLCBbXSwgb3B0aW9ucyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBtYW51YWwgXFx0YWdcbiAgICAgICAgdGFnU3BhbiA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtdLCBidWlsZEV4cHJlc3Npb24kMSh0YWcsIG9wdGlvbnMsIHRydWUpLCBvcHRpb25zKTtcbiAgICAgIH1cblxuICAgICAgdGFnU3Bhbi5kZXB0aCA9IHJ3LmRlcHRoO1xuICAgICAgdGFnU3Bhbi5oZWlnaHQgPSBydy5oZWlnaHQ7XG4gICAgICB0YWdTcGFucy5wdXNoKHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IHRhZ1NwYW4sXG4gICAgICAgIHNoaWZ0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmb3IgKGMgPSAwLCBjb2xEZXNjck51bSA9IDA7IC8vIENvbnRpbnVlIHdoaWxlIGVpdGhlciB0aGVyZSBhcmUgbW9yZSBjb2x1bW5zIG9yIG1vcmUgY29sdW1uXG4gIC8vIGRlc2NyaXB0aW9ucywgc28gdHJhaWxpbmcgc2VwYXJhdG9ycyBkb24ndCBnZXQgbG9zdC5cbiAgYyA8IG5jIHx8IGNvbERlc2NyTnVtIDwgY29sRGVzY3JpcHRpb25zLmxlbmd0aDsgKytjLCArK2NvbERlc2NyTnVtKSB7XG4gICAgdmFyIGNvbERlc2NyID0gY29sRGVzY3JpcHRpb25zW2NvbERlc2NyTnVtXSB8fCB7fTtcbiAgICB2YXIgZmlyc3RTZXBhcmF0b3IgPSB0cnVlO1xuXG4gICAgd2hpbGUgKGNvbERlc2NyLnR5cGUgPT09IFwic2VwYXJhdG9yXCIpIHtcbiAgICAgIC8vIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgc2VwYXJhdG9yIGluIGEgcm93LCBhZGQgYSBzcGFjZVxuICAgICAgLy8gYmV0d2VlbiB0aGVtLlxuICAgICAgaWYgKCFmaXJzdFNlcGFyYXRvcikge1xuICAgICAgICBjb2xTZXAgPSBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJhcnJheWNvbHNlcFwiXSwgW10pO1xuICAgICAgICBjb2xTZXAuc3R5bGUud2lkdGggPSBtYWtlRW0ob3B0aW9ucy5mb250TWV0cmljcygpLmRvdWJsZVJ1bGVTZXApO1xuICAgICAgICBjb2xzLnB1c2goY29sU2VwKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbERlc2NyLnNlcGFyYXRvciA9PT0gXCJ8XCIgfHwgY29sRGVzY3Iuc2VwYXJhdG9yID09PSBcIjpcIikge1xuICAgICAgICB2YXIgbGluZVR5cGUgPSBjb2xEZXNjci5zZXBhcmF0b3IgPT09IFwifFwiID8gXCJzb2xpZFwiIDogXCJkYXNoZWRcIjtcbiAgICAgICAgdmFyIHNlcGFyYXRvciA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcInZlcnRpY2FsLXNlcGFyYXRvclwiXSwgW10sIG9wdGlvbnMpO1xuICAgICAgICBzZXBhcmF0b3Iuc3R5bGUuaGVpZ2h0ID0gbWFrZUVtKHRvdGFsSGVpZ2h0KTtcbiAgICAgICAgc2VwYXJhdG9yLnN0eWxlLmJvcmRlclJpZ2h0V2lkdGggPSBtYWtlRW0ocnVsZVRoaWNrbmVzcyk7XG4gICAgICAgIHNlcGFyYXRvci5zdHlsZS5ib3JkZXJSaWdodFN0eWxlID0gbGluZVR5cGU7XG4gICAgICAgIHNlcGFyYXRvci5zdHlsZS5tYXJnaW4gPSBcIjAgXCIgKyBtYWtlRW0oLXJ1bGVUaGlja25lc3MgLyAyKTtcblxuICAgICAgICB2YXIgX3NoaWZ0ID0gdG90YWxIZWlnaHQgLSBvZmZzZXQ7XG5cbiAgICAgICAgaWYgKF9zaGlmdCkge1xuICAgICAgICAgIHNlcGFyYXRvci5zdHlsZS52ZXJ0aWNhbEFsaWduID0gbWFrZUVtKC1fc2hpZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29scy5wdXNoKHNlcGFyYXRvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkludmFsaWQgc2VwYXJhdG9yIHR5cGU6IFwiICsgY29sRGVzY3Iuc2VwYXJhdG9yKTtcbiAgICAgIH1cblxuICAgICAgY29sRGVzY3JOdW0rKztcbiAgICAgIGNvbERlc2NyID0gY29sRGVzY3JpcHRpb25zW2NvbERlc2NyTnVtXSB8fCB7fTtcbiAgICAgIGZpcnN0U2VwYXJhdG9yID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGMgPj0gbmMpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHZhciBzZXB3aWR0aCA9IHZvaWQgMDtcblxuICAgIGlmIChjID4gMCB8fCBncm91cC5oc2tpcEJlZm9yZUFuZEFmdGVyKSB7XG4gICAgICBzZXB3aWR0aCA9IHV0aWxzLmRlZmx0KGNvbERlc2NyLnByZWdhcCwgYXJyYXljb2xzZXApO1xuXG4gICAgICBpZiAoc2Vwd2lkdGggIT09IDApIHtcbiAgICAgICAgY29sU2VwID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wiYXJyYXljb2xzZXBcIl0sIFtdKTtcbiAgICAgICAgY29sU2VwLnN0eWxlLndpZHRoID0gbWFrZUVtKHNlcHdpZHRoKTtcbiAgICAgICAgY29scy5wdXNoKGNvbFNlcCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNvbCA9IFtdO1xuXG4gICAgZm9yIChyID0gMDsgciA8IG5yOyArK3IpIHtcbiAgICAgIHZhciByb3cgPSBib2R5W3JdO1xuICAgICAgdmFyIGVsZW0gPSByb3dbY107XG5cbiAgICAgIGlmICghZWxlbSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIF9zaGlmdDIgPSByb3cucG9zIC0gb2Zmc2V0O1xuXG4gICAgICBlbGVtLmRlcHRoID0gcm93LmRlcHRoO1xuICAgICAgZWxlbS5oZWlnaHQgPSByb3cuaGVpZ2h0O1xuICAgICAgY29sLnB1c2goe1xuICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgZWxlbTogZWxlbSxcbiAgICAgICAgc2hpZnQ6IF9zaGlmdDJcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbCA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwiaW5kaXZpZHVhbFNoaWZ0XCIsXG4gICAgICBjaGlsZHJlbjogY29sXG4gICAgfSwgb3B0aW9ucyk7XG4gICAgY29sID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wiY29sLWFsaWduLVwiICsgKGNvbERlc2NyLmFsaWduIHx8IFwiY1wiKV0sIFtjb2xdKTtcbiAgICBjb2xzLnB1c2goY29sKTtcblxuICAgIGlmIChjIDwgbmMgLSAxIHx8IGdyb3VwLmhza2lwQmVmb3JlQW5kQWZ0ZXIpIHtcbiAgICAgIHNlcHdpZHRoID0gdXRpbHMuZGVmbHQoY29sRGVzY3IucG9zdGdhcCwgYXJyYXljb2xzZXApO1xuXG4gICAgICBpZiAoc2Vwd2lkdGggIT09IDApIHtcbiAgICAgICAgY29sU2VwID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wiYXJyYXljb2xzZXBcIl0sIFtdKTtcbiAgICAgICAgY29sU2VwLnN0eWxlLndpZHRoID0gbWFrZUVtKHNlcHdpZHRoKTtcbiAgICAgICAgY29scy5wdXNoKGNvbFNlcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYm9keSA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm10YWJsZVwiXSwgY29scyk7IC8vIEFkZCBcXGhsaW5lKHMpLCBpZiBhbnkuXG5cbiAgaWYgKGhsaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgdmFyIGxpbmUgPSBidWlsZENvbW1vbi5tYWtlTGluZVNwYW4oXCJobGluZVwiLCBvcHRpb25zLCBydWxlVGhpY2tuZXNzKTtcbiAgICB2YXIgZGFzaGVzID0gYnVpbGRDb21tb24ubWFrZUxpbmVTcGFuKFwiaGRhc2hsaW5lXCIsIG9wdGlvbnMsIHJ1bGVUaGlja25lc3MpO1xuICAgIHZhciB2TGlzdEVsZW1zID0gW3tcbiAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgZWxlbTogYm9keSxcbiAgICAgIHNoaWZ0OiAwXG4gICAgfV07XG5cbiAgICB3aGlsZSAoaGxpbmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciBobGluZSA9IGhsaW5lcy5wb3AoKTtcbiAgICAgIHZhciBsaW5lU2hpZnQgPSBobGluZS5wb3MgLSBvZmZzZXQ7XG5cbiAgICAgIGlmIChobGluZS5pc0Rhc2hlZCkge1xuICAgICAgICB2TGlzdEVsZW1zLnB1c2goe1xuICAgICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICAgIGVsZW06IGRhc2hlcyxcbiAgICAgICAgICBzaGlmdDogbGluZVNoaWZ0XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdkxpc3RFbGVtcy5wdXNoKHtcbiAgICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgICBlbGVtOiBsaW5lLFxuICAgICAgICAgIHNoaWZ0OiBsaW5lU2hpZnRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYm9keSA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwiaW5kaXZpZHVhbFNoaWZ0XCIsXG4gICAgICBjaGlsZHJlbjogdkxpc3RFbGVtc1xuICAgIH0sIG9wdGlvbnMpO1xuICB9XG5cbiAgaWYgKHRhZ1NwYW5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJtb3JkXCJdLCBbYm9keV0sIG9wdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIHZhciBlcW5OdW1Db2wgPSBidWlsZENvbW1vbi5tYWtlVkxpc3Qoe1xuICAgICAgcG9zaXRpb25UeXBlOiBcImluZGl2aWR1YWxTaGlmdFwiLFxuICAgICAgY2hpbGRyZW46IHRhZ1NwYW5zXG4gICAgfSwgb3B0aW9ucyk7XG4gICAgZXFuTnVtQ29sID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1widGFnXCJdLCBbZXFuTnVtQ29sXSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VGcmFnbWVudChbYm9keSwgZXFuTnVtQ29sXSk7XG4gIH1cbn07XG5cbnZhciBhbGlnbk1hcCA9IHtcbiAgYzogXCJjZW50ZXIgXCIsXG4gIGw6IFwibGVmdCBcIixcbiAgcjogXCJyaWdodCBcIlxufTtcblxudmFyIG1hdGhtbEJ1aWxkZXIkNSA9IGZ1bmN0aW9uIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgdmFyIHRibCA9IFtdO1xuICB2YXIgZ2x1ZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXRkXCIsIFtdLCBbXCJtdHItZ2x1ZVwiXSk7XG4gIHZhciB0YWcgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm10ZFwiLCBbXSwgW1wibW1sLWVxbi1udW1cIl0pO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZ3JvdXAuYm9keS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBydyA9IGdyb3VwLmJvZHlbaV07XG4gICAgdmFyIHJvdyA9IFtdO1xuXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBydy5sZW5ndGg7IGorKykge1xuICAgICAgcm93LnB1c2gobmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtdGRcIiwgW2J1aWxkR3JvdXAocndbal0sIG9wdGlvbnMpXSkpO1xuICAgIH1cblxuICAgIGlmIChncm91cC50YWdzICYmIGdyb3VwLnRhZ3NbaV0pIHtcbiAgICAgIHJvdy51bnNoaWZ0KGdsdWUpO1xuICAgICAgcm93LnB1c2goZ2x1ZSk7XG5cbiAgICAgIGlmIChncm91cC5sZXFubykge1xuICAgICAgICByb3cudW5zaGlmdCh0YWcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcm93LnB1c2godGFnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0YmwucHVzaChuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm10clwiLCByb3cpKTtcbiAgfVxuXG4gIHZhciB0YWJsZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXRhYmxlXCIsIHRibCk7IC8vIFNldCBjb2x1bW4gYWxpZ25tZW50LCByb3cgc3BhY2luZywgY29sdW1uIHNwYWNpbmcsIGFuZFxuICAvLyBhcnJheSBsaW5lcyBieSBzZXR0aW5nIGF0dHJpYnV0ZXMgb24gdGhlIHRhYmxlIGVsZW1lbnQuXG4gIC8vIFNldCB0aGUgcm93IHNwYWNpbmcuIEluIE1hdGhNTCwgd2Ugc3BlY2lmeSBhIGdhcCBkaXN0YW5jZS5cbiAgLy8gV2UgZG8gbm90IHVzZSByb3dHYXBbXSBiZWNhdXNlIE1hdGhNTCBhdXRvbWF0aWNhbGx5IGluY3JlYXNlc1xuICAvLyBjZWxsIGhlaWdodCB3aXRoIHRoZSBoZWlnaHQvZGVwdGggb2YgdGhlIGVsZW1lbnQgY29udGVudC5cbiAgLy8gTGFUZVggXFxhcnJheXN0cmV0Y2ggbXVsdGlwbGllcyB0aGUgcm93IGJhc2VsaW5lLXRvLWJhc2VsaW5lIGRpc3RhbmNlLlxuICAvLyBXZSBzaW11bGF0ZSB0aGlzIGJ5IGFkZGluZyAoYXJyYXlzdHJldGNoIC0gMSllbSB0byB0aGUgZ2FwLiBUaGlzXG4gIC8vIGRvZXMgYSByZWFzb25hYmxlIGpvYiBvZiBhZGp1c3RpbmcgYXJyYXlzIGNvbnRhaW5pbmcgMSBlbSB0YWxsIGNvbnRlbnQuXG4gIC8vIFRoZSAwLjE2IGFuZCAwLjA5IHZhbHVlcyBhcmUgZm91bmQgZW1waXJpY2FsbHkuIFRoZXkgcHJvZHVjZSBhbiBhcnJheVxuICAvLyBzaW1pbGFyIHRvIExhVGVYIGFuZCBpbiB3aGljaCBjb250ZW50IGRvZXMgbm90IGludGVyZmVyZSB3aXRoIFxcaGxpbmVzLlxuXG4gIHZhciBnYXAgPSBncm91cC5hcnJheXN0cmV0Y2ggPT09IDAuNSA/IDAuMSAvLyB7c21hbGxtYXRyaXh9LCB7c3ViYXJyYXl9XG4gIDogMC4xNiArIGdyb3VwLmFycmF5c3RyZXRjaCAtIDEgKyAoZ3JvdXAuYWRkSm90ID8gMC4wOSA6IDApO1xuICB0YWJsZS5zZXRBdHRyaWJ1dGUoXCJyb3dzcGFjaW5nXCIsIG1ha2VFbShnYXApKTsgLy8gTWF0aE1MIHRhYmxlIGxpbmVzIGdvIG9ubHkgYmV0d2VlbiBjZWxscy5cbiAgLy8gVG8gcGxhY2UgYSBsaW5lIG9uIGFuIGVkZ2Ugd2UnbGwgdXNlIDxtZW5jbG9zZT4sIGlmIG5lY2Vzc2FyeS5cblxuICB2YXIgbWVuY2xvc2UgPSBcIlwiO1xuICB2YXIgYWxpZ24gPSBcIlwiO1xuXG4gIGlmIChncm91cC5jb2xzICYmIGdyb3VwLmNvbHMubGVuZ3RoID4gMCkge1xuICAgIC8vIEZpbmQgY29sdW1uIGFsaWdubWVudCwgY29sdW1uIHNwYWNpbmcsIGFuZCAgdmVydGljYWwgbGluZXMuXG4gICAgdmFyIGNvbHMgPSBncm91cC5jb2xzO1xuICAgIHZhciBjb2x1bW5MaW5lcyA9IFwiXCI7XG4gICAgdmFyIHByZXZUeXBlV2FzQWxpZ24gPSBmYWxzZTtcbiAgICB2YXIgaVN0YXJ0ID0gMDtcbiAgICB2YXIgaUVuZCA9IGNvbHMubGVuZ3RoO1xuXG4gICAgaWYgKGNvbHNbMF0udHlwZSA9PT0gXCJzZXBhcmF0b3JcIikge1xuICAgICAgbWVuY2xvc2UgKz0gXCJ0b3AgXCI7XG4gICAgICBpU3RhcnQgPSAxO1xuICAgIH1cblxuICAgIGlmIChjb2xzW2NvbHMubGVuZ3RoIC0gMV0udHlwZSA9PT0gXCJzZXBhcmF0b3JcIikge1xuICAgICAgbWVuY2xvc2UgKz0gXCJib3R0b20gXCI7XG4gICAgICBpRW5kIC09IDE7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2kgPSBpU3RhcnQ7IF9pIDwgaUVuZDsgX2krKykge1xuICAgICAgaWYgKGNvbHNbX2ldLnR5cGUgPT09IFwiYWxpZ25cIikge1xuICAgICAgICBhbGlnbiArPSBhbGlnbk1hcFtjb2xzW19pXS5hbGlnbl07XG5cbiAgICAgICAgaWYgKHByZXZUeXBlV2FzQWxpZ24pIHtcbiAgICAgICAgICBjb2x1bW5MaW5lcyArPSBcIm5vbmUgXCI7XG4gICAgICAgIH1cblxuICAgICAgICBwcmV2VHlwZVdhc0FsaWduID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoY29sc1tfaV0udHlwZSA9PT0gXCJzZXBhcmF0b3JcIikge1xuICAgICAgICAvLyBNYXRoTUwgYWNjZXB0cyBvbmx5IHNpbmdsZSBsaW5lcyBiZXR3ZWVuIGNlbGxzLlxuICAgICAgICAvLyBTbyB3ZSByZWFkIG9ubHkgdGhlIGZpcnN0IG9mIGNvbnNlY3V0aXZlIHNlcGFyYXRvcnMuXG4gICAgICAgIGlmIChwcmV2VHlwZVdhc0FsaWduKSB7XG4gICAgICAgICAgY29sdW1uTGluZXMgKz0gY29sc1tfaV0uc2VwYXJhdG9yID09PSBcInxcIiA/IFwic29saWQgXCIgOiBcImRhc2hlZCBcIjtcbiAgICAgICAgICBwcmV2VHlwZVdhc0FsaWduID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZS5zZXRBdHRyaWJ1dGUoXCJjb2x1bW5hbGlnblwiLCBhbGlnbi50cmltKCkpO1xuXG4gICAgaWYgKC9bc2RdLy50ZXN0KGNvbHVtbkxpbmVzKSkge1xuICAgICAgdGFibGUuc2V0QXR0cmlidXRlKFwiY29sdW1ubGluZXNcIiwgY29sdW1uTGluZXMudHJpbSgpKTtcbiAgICB9XG4gIH0gLy8gU2V0IGNvbHVtbiBzcGFjaW5nLlxuXG5cbiAgaWYgKGdyb3VwLmNvbFNlcGFyYXRpb25UeXBlID09PSBcImFsaWduXCIpIHtcbiAgICB2YXIgX2NvbHMgPSBncm91cC5jb2xzIHx8IFtdO1xuXG4gICAgdmFyIHNwYWNpbmcgPSBcIlwiO1xuXG4gICAgZm9yICh2YXIgX2kyID0gMTsgX2kyIDwgX2NvbHMubGVuZ3RoOyBfaTIrKykge1xuICAgICAgc3BhY2luZyArPSBfaTIgJSAyID8gXCIwZW0gXCIgOiBcIjFlbSBcIjtcbiAgICB9XG5cbiAgICB0YWJsZS5zZXRBdHRyaWJ1dGUoXCJjb2x1bW5zcGFjaW5nXCIsIHNwYWNpbmcudHJpbSgpKTtcbiAgfSBlbHNlIGlmIChncm91cC5jb2xTZXBhcmF0aW9uVHlwZSA9PT0gXCJhbGlnbmF0XCIgfHwgZ3JvdXAuY29sU2VwYXJhdGlvblR5cGUgPT09IFwiZ2F0aGVyXCIpIHtcbiAgICB0YWJsZS5zZXRBdHRyaWJ1dGUoXCJjb2x1bW5zcGFjaW5nXCIsIFwiMGVtXCIpO1xuICB9IGVsc2UgaWYgKGdyb3VwLmNvbFNlcGFyYXRpb25UeXBlID09PSBcInNtYWxsXCIpIHtcbiAgICB0YWJsZS5zZXRBdHRyaWJ1dGUoXCJjb2x1bW5zcGFjaW5nXCIsIFwiMC4yNzc4ZW1cIik7XG4gIH0gZWxzZSBpZiAoZ3JvdXAuY29sU2VwYXJhdGlvblR5cGUgPT09IFwiQ0RcIikge1xuICAgIHRhYmxlLnNldEF0dHJpYnV0ZShcImNvbHVtbnNwYWNpbmdcIiwgXCIwLjVlbVwiKTtcbiAgfSBlbHNlIHtcbiAgICB0YWJsZS5zZXRBdHRyaWJ1dGUoXCJjb2x1bW5zcGFjaW5nXCIsIFwiMWVtXCIpO1xuICB9IC8vIEFkZHJlc3MgXFxobGluZSBhbmQgXFxoZGFzaGxpbmVcblxuXG4gIHZhciByb3dMaW5lcyA9IFwiXCI7XG4gIHZhciBobGluZXMgPSBncm91cC5oTGluZXNCZWZvcmVSb3c7XG4gIG1lbmNsb3NlICs9IGhsaW5lc1swXS5sZW5ndGggPiAwID8gXCJsZWZ0IFwiIDogXCJcIjtcbiAgbWVuY2xvc2UgKz0gaGxpbmVzW2hsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGggPiAwID8gXCJyaWdodCBcIiA6IFwiXCI7XG5cbiAgZm9yICh2YXIgX2kzID0gMTsgX2kzIDwgaGxpbmVzLmxlbmd0aCAtIDE7IF9pMysrKSB7XG4gICAgcm93TGluZXMgKz0gaGxpbmVzW19pM10ubGVuZ3RoID09PSAwID8gXCJub25lIFwiIC8vIE1hdGhNTCBhY2NlcHRzIG9ubHkgYSBzaW5nbGUgbGluZSBiZXR3ZWVuIHJvd3MuIFJlYWQgb25lIGVsZW1lbnQuXG4gICAgOiBobGluZXNbX2kzXVswXSA/IFwiZGFzaGVkIFwiIDogXCJzb2xpZCBcIjtcbiAgfVxuXG4gIGlmICgvW3NkXS8udGVzdChyb3dMaW5lcykpIHtcbiAgICB0YWJsZS5zZXRBdHRyaWJ1dGUoXCJyb3dsaW5lc1wiLCByb3dMaW5lcy50cmltKCkpO1xuICB9XG5cbiAgaWYgKG1lbmNsb3NlICE9PSBcIlwiKSB7XG4gICAgdGFibGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1lbmNsb3NlXCIsIFt0YWJsZV0pO1xuICAgIHRhYmxlLnNldEF0dHJpYnV0ZShcIm5vdGF0aW9uXCIsIG1lbmNsb3NlLnRyaW0oKSk7XG4gIH1cblxuICBpZiAoZ3JvdXAuYXJyYXlzdHJldGNoICYmIGdyb3VwLmFycmF5c3RyZXRjaCA8IDEpIHtcbiAgICAvLyBBIHNtYWxsIGFycmF5LiBXcmFwIGluIHNjcmlwdHN0eWxlIHNvIHJvdyBnYXAgaXMgbm90IHRvbyBsYXJnZS5cbiAgICB0YWJsZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXN0eWxlXCIsIFt0YWJsZV0pO1xuICAgIHRhYmxlLnNldEF0dHJpYnV0ZShcInNjcmlwdGxldmVsXCIsIFwiMVwiKTtcbiAgfVxuXG4gIHJldHVybiB0YWJsZTtcbn07IC8vIENvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBhbGlnbiwgYWxpZ24qLCBhbGlnbmVkLCBhbGlnbmF0LCBhbGlnbmF0KiwgYWxpZ25lZGF0LlxuXG5cbnZhciBhbGlnbmVkSGFuZGxlciA9IGZ1bmN0aW9uIGFsaWduZWRIYW5kbGVyKGNvbnRleHQsIGFyZ3MpIHtcbiAgaWYgKGNvbnRleHQuZW52TmFtZS5pbmRleE9mKFwiZWRcIikgPT09IC0xKSB7XG4gICAgdmFsaWRhdGVBbXNFbnZpcm9ubWVudENvbnRleHQoY29udGV4dCk7XG4gIH1cblxuICB2YXIgY29scyA9IFtdO1xuICB2YXIgc2VwYXJhdGlvblR5cGUgPSBjb250ZXh0LmVudk5hbWUuaW5kZXhPZihcImF0XCIpID4gLTEgPyBcImFsaWduYXRcIiA6IFwiYWxpZ25cIjtcbiAgdmFyIGlzU3BsaXQgPSBjb250ZXh0LmVudk5hbWUgPT09IFwic3BsaXRcIjtcbiAgdmFyIHJlcyA9IHBhcnNlQXJyYXkoY29udGV4dC5wYXJzZXIsIHtcbiAgICBjb2xzLFxuICAgIGFkZEpvdDogdHJ1ZSxcbiAgICBhdXRvVGFnOiBpc1NwbGl0ID8gdW5kZWZpbmVkIDogZ2V0QXV0b1RhZyhjb250ZXh0LmVudk5hbWUpLFxuICAgIGVtcHR5U2luZ2xlUm93OiB0cnVlLFxuICAgIGNvbFNlcGFyYXRpb25UeXBlOiBzZXBhcmF0aW9uVHlwZSxcbiAgICBtYXhOdW1Db2xzOiBpc1NwbGl0ID8gMiA6IHVuZGVmaW5lZCxcbiAgICBsZXFubzogY29udGV4dC5wYXJzZXIuc2V0dGluZ3MubGVxbm9cbiAgfSwgXCJkaXNwbGF5XCIpOyAvLyBEZXRlcm1pbmluZyBudW1iZXIgb2YgY29sdW1ucy5cbiAgLy8gMS4gSWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGdpdmVuLCB3ZSB1c2UgaXQgYXMgYSBudW1iZXIgb2YgY29sdW1ucyxcbiAgLy8gICAgYW5kIG1ha2VzIHN1cmUgdGhhdCBlYWNoIHJvdyBkb2Vzbid0IGV4Y2VlZCB0aGF0IG51bWJlci5cbiAgLy8gMi4gT3RoZXJ3aXNlLCBqdXN0IGNvdW50IG51bWJlciBvZiBjb2x1bW5zID0gbWF4aW11bSBudW1iZXJcbiAgLy8gICAgb2YgY2VsbHMgaW4gZWFjaCByb3cgKFwiYWxpZ25lZFwiIG1vZGUgLS0gaXNBbGlnbmVkIHdpbGwgYmUgdHJ1ZSkuXG4gIC8vXG4gIC8vIEF0IHRoZSBzYW1lIHRpbWUsIHByZXBlbmQgZW1wdHkgZ3JvdXAge30gYXQgYmVnaW5uaW5nIG9mIGV2ZXJ5IHNlY29uZFxuICAvLyBjZWxsIGluIGVhY2ggcm93IChzdGFydGluZyB3aXRoIHNlY29uZCBjZWxsKSBzbyB0aGF0IG9wZXJhdG9ycyBiZWNvbWVcbiAgLy8gYmluYXJ5LiAgVGhpcyBiZWhhdmlvciBpcyBpbXBsZW1lbnRlZCBpbiBhbXNtYXRoJ3MgXFxzdGFydEBhbGlnbmVkLlxuXG4gIHZhciBudW1NYXRocztcbiAgdmFyIG51bUNvbHMgPSAwO1xuICB2YXIgZW1wdHlHcm91cCA9IHtcbiAgICB0eXBlOiBcIm9yZGdyb3VwXCIsXG4gICAgbW9kZTogY29udGV4dC5tb2RlLFxuICAgIGJvZHk6IFtdXG4gIH07XG5cbiAgaWYgKGFyZ3NbMF0gJiYgYXJnc1swXS50eXBlID09PSBcIm9yZGdyb3VwXCIpIHtcbiAgICB2YXIgYXJnMCA9IFwiXCI7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3NbMF0uYm9keS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHRleHRvcmQgPSBhc3NlcnROb2RlVHlwZShhcmdzWzBdLmJvZHlbaV0sIFwidGV4dG9yZFwiKTtcbiAgICAgIGFyZzAgKz0gdGV4dG9yZC50ZXh0O1xuICAgIH1cblxuICAgIG51bU1hdGhzID0gTnVtYmVyKGFyZzApO1xuICAgIG51bUNvbHMgPSBudW1NYXRocyAqIDI7XG4gIH1cblxuICB2YXIgaXNBbGlnbmVkID0gIW51bUNvbHM7XG4gIHJlcy5ib2R5LmZvckVhY2goZnVuY3Rpb24gKHJvdykge1xuICAgIGZvciAodmFyIF9pNCA9IDE7IF9pNCA8IHJvdy5sZW5ndGg7IF9pNCArPSAyKSB7XG4gICAgICAvLyBNb2RpZnkgb3JkZ3JvdXAgbm9kZSB3aXRoaW4gc3R5bGluZyBub2RlXG4gICAgICB2YXIgc3R5bGluZyA9IGFzc2VydE5vZGVUeXBlKHJvd1tfaTRdLCBcInN0eWxpbmdcIik7XG4gICAgICB2YXIgb3JkZ3JvdXAgPSBhc3NlcnROb2RlVHlwZShzdHlsaW5nLmJvZHlbMF0sIFwib3JkZ3JvdXBcIik7XG4gICAgICBvcmRncm91cC5ib2R5LnVuc2hpZnQoZW1wdHlHcm91cCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc0FsaWduZWQpIHtcbiAgICAgIC8vIENhc2UgMVxuICAgICAgdmFyIGN1ck1hdGhzID0gcm93Lmxlbmd0aCAvIDI7XG5cbiAgICAgIGlmIChudW1NYXRocyA8IGN1ck1hdGhzKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiVG9vIG1hbnkgbWF0aCBpbiBhIHJvdzogXCIgKyAoXCJleHBlY3RlZCBcIiArIG51bU1hdGhzICsgXCIsIGJ1dCBnb3QgXCIgKyBjdXJNYXRocyksIHJvd1swXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChudW1Db2xzIDwgcm93Lmxlbmd0aCkge1xuICAgICAgLy8gQ2FzZSAyXG4gICAgICBudW1Db2xzID0gcm93Lmxlbmd0aDtcbiAgICB9XG4gIH0pOyAvLyBBZGp1c3RpbmcgYWxpZ25tZW50LlxuICAvLyBJbiBhbGlnbmVkIG1vZGUsIHdlIGFkZCBvbmUgXFxxcXVhZCBiZXR3ZWVuIGNvbHVtbnM7XG4gIC8vIG90aGVyd2lzZSB3ZSBhZGQgbm90aGluZy5cblxuICBmb3IgKHZhciBfaTUgPSAwOyBfaTUgPCBudW1Db2xzOyArK19pNSkge1xuICAgIHZhciBhbGlnbiA9IFwiclwiO1xuICAgIHZhciBwcmVnYXAgPSAwO1xuXG4gICAgaWYgKF9pNSAlIDIgPT09IDEpIHtcbiAgICAgIGFsaWduID0gXCJsXCI7XG4gICAgfSBlbHNlIGlmIChfaTUgPiAwICYmIGlzQWxpZ25lZCkge1xuICAgICAgLy8gXCJhbGlnbmVkXCIgbW9kZS5cbiAgICAgIHByZWdhcCA9IDE7IC8vIGFkZCBvbmUgXFxxdWFkXG4gICAgfVxuXG4gICAgY29sc1tfaTVdID0ge1xuICAgICAgdHlwZTogXCJhbGlnblwiLFxuICAgICAgYWxpZ246IGFsaWduLFxuICAgICAgcHJlZ2FwOiBwcmVnYXAsXG4gICAgICBwb3N0Z2FwOiAwXG4gICAgfTtcbiAgfVxuXG4gIHJlcy5jb2xTZXBhcmF0aW9uVHlwZSA9IGlzQWxpZ25lZCA/IFwiYWxpZ25cIiA6IFwiYWxpZ25hdFwiO1xuICByZXR1cm4gcmVzO1xufTsgLy8gQXJyYXlzIGFyZSBwYXJ0IG9mIExhVGVYLCBkZWZpbmVkIGluIGx0dGFiLmR0eCBzbyBpdHMgZG9jdW1lbnRhdGlvblxuLy8gaXMgcGFydCBvZiB0aGUgc291cmNlMmUucGRmIGZpbGUgb2YgTGFUZVgyZSBzb3VyY2UgZG9jdW1lbnRhdGlvbi5cbi8vIHtkYXJyYXl9IGlzIGFuIHthcnJheX0gZW52aXJvbm1lbnQgd2hlcmUgY2VsbHMgYXJlIHNldCBpbiBcXGRpc3BsYXlzdHlsZSxcbi8vIGFzIGRlZmluZWQgaW4gbmNjbWF0aC5zdHkuXG5cblxuZGVmaW5lRW52aXJvbm1lbnQoe1xuICB0eXBlOiBcImFycmF5XCIsXG4gIG5hbWVzOiBbXCJhcnJheVwiLCBcImRhcnJheVwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxXG4gIH0sXG5cbiAgaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgLy8gU2luY2Ugbm8gdHlwZXMgYXJlIHNwZWNpZmllZCBhYm92ZSwgdGhlIHR3byBwb3NzaWJpbGl0aWVzIGFyZVxuICAgIC8vIC0gVGhlIGFyZ3VtZW50IGlzIHdyYXBwZWQgaW4ge30gb3IgW10sIGluIHdoaWNoIGNhc2UgUGFyc2VyJ3NcbiAgICAvLyAgIHBhcnNlR3JvdXAoKSByZXR1cm5zIGFuIFwib3JkZ3JvdXBcIiB3cmFwcGluZyBzb21lIHN5bWJvbCBub2RlLlxuICAgIC8vIC0gVGhlIGFyZ3VtZW50IGlzIGEgYmFyZSBzeW1ib2wgbm9kZS5cbiAgICB2YXIgc3ltTm9kZSA9IGNoZWNrU3ltYm9sTm9kZVR5cGUoYXJnc1swXSk7XG4gICAgdmFyIGNvbGFsaWduID0gc3ltTm9kZSA/IFthcmdzWzBdXSA6IGFzc2VydE5vZGVUeXBlKGFyZ3NbMF0sIFwib3JkZ3JvdXBcIikuYm9keTtcbiAgICB2YXIgY29scyA9IGNvbGFsaWduLm1hcChmdW5jdGlvbiAobmRlKSB7XG4gICAgICB2YXIgbm9kZSA9IGFzc2VydFN5bWJvbE5vZGVUeXBlKG5kZSk7XG4gICAgICB2YXIgY2EgPSBub2RlLnRleHQ7XG5cbiAgICAgIGlmIChcImxjclwiLmluZGV4T2YoY2EpICE9PSAtMSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6IFwiYWxpZ25cIixcbiAgICAgICAgICBhbGlnbjogY2FcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAoY2EgPT09IFwifFwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogXCJzZXBhcmF0b3JcIixcbiAgICAgICAgICBzZXBhcmF0b3I6IFwifFwiXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGNhID09PSBcIjpcIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6IFwic2VwYXJhdG9yXCIsXG4gICAgICAgICAgc2VwYXJhdG9yOiBcIjpcIlxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIlVua25vd24gY29sdW1uIGFsaWdubWVudDogXCIgKyBjYSwgbmRlKTtcbiAgICB9KTtcbiAgICB2YXIgcmVzID0ge1xuICAgICAgY29scyxcbiAgICAgIGhza2lwQmVmb3JlQW5kQWZ0ZXI6IHRydWUsXG4gICAgICAvLyBcXEBwcmVhbWJsZSBpbiBsdHRhYi5kdHhcbiAgICAgIG1heE51bUNvbHM6IGNvbHMubGVuZ3RoXG4gICAgfTtcbiAgICByZXR1cm4gcGFyc2VBcnJheShjb250ZXh0LnBhcnNlciwgcmVzLCBkQ2VsbFN0eWxlKGNvbnRleHQuZW52TmFtZSkpO1xuICB9LFxuXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciQ2LFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDVcbn0pOyAvLyBUaGUgbWF0cml4IGVudmlyb25tZW50cyBvZiBhbXNtYXRoIGJ1aWxkcyBvbiB0aGUgYXJyYXkgZW52aXJvbm1lbnRcbi8vIG9mIExhVGVYLCB3aGljaCBpcyBkaXNjdXNzZWQgYWJvdmUuXG4vLyBUaGUgbWF0aHRvb2xzIHBhY2thZ2UgYWRkcyBzdGFycmVkIHZlcnNpb25zIG9mIHRoZSBzYW1lIGVudmlyb25tZW50cy5cbi8vIFRoZXNlIGhhdmUgYW4gb3B0aW9uYWwgYXJndW1lbnQgdG8gY2hvb3NlIGxlZnR8Y2VudGVyfHJpZ2h0IGp1c3RpZmljYXRpb24uXG5cbmRlZmluZUVudmlyb25tZW50KHtcbiAgdHlwZTogXCJhcnJheVwiLFxuICBuYW1lczogW1wibWF0cml4XCIsIFwicG1hdHJpeFwiLCBcImJtYXRyaXhcIiwgXCJCbWF0cml4XCIsIFwidm1hdHJpeFwiLCBcIlZtYXRyaXhcIiwgXCJtYXRyaXgqXCIsIFwicG1hdHJpeCpcIiwgXCJibWF0cml4KlwiLCBcIkJtYXRyaXgqXCIsIFwidm1hdHJpeCpcIiwgXCJWbWF0cml4KlwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAwXG4gIH0sXG5cbiAgaGFuZGxlcihjb250ZXh0KSB7XG4gICAgdmFyIGRlbGltaXRlcnMgPSB7XG4gICAgICBcIm1hdHJpeFwiOiBudWxsLFxuICAgICAgXCJwbWF0cml4XCI6IFtcIihcIiwgXCIpXCJdLFxuICAgICAgXCJibWF0cml4XCI6IFtcIltcIiwgXCJdXCJdLFxuICAgICAgXCJCbWF0cml4XCI6IFtcIlxcXFx7XCIsIFwiXFxcXH1cIl0sXG4gICAgICBcInZtYXRyaXhcIjogW1wifFwiLCBcInxcIl0sXG4gICAgICBcIlZtYXRyaXhcIjogW1wiXFxcXFZlcnRcIiwgXCJcXFxcVmVydFwiXVxuICAgIH1bY29udGV4dC5lbnZOYW1lLnJlcGxhY2UoXCIqXCIsIFwiXCIpXTsgLy8gXFxoc2tpcCAtXFxhcnJheWNvbHNlcCBpbiBhbXNtYXRoXG5cbiAgICB2YXIgY29sQWxpZ24gPSBcImNcIjtcbiAgICB2YXIgcGF5bG9hZCA9IHtcbiAgICAgIGhza2lwQmVmb3JlQW5kQWZ0ZXI6IGZhbHNlLFxuICAgICAgY29sczogW3tcbiAgICAgICAgdHlwZTogXCJhbGlnblwiLFxuICAgICAgICBhbGlnbjogY29sQWxpZ25cbiAgICAgIH1dXG4gICAgfTtcblxuICAgIGlmIChjb250ZXh0LmVudk5hbWUuY2hhckF0KGNvbnRleHQuZW52TmFtZS5sZW5ndGggLSAxKSA9PT0gXCIqXCIpIHtcbiAgICAgIC8vIEl0J3Mgb25lIG9mIHRoZSBtYXRodG9vbHMgc3RhcnJlZCBmdW5jdGlvbnMuXG4gICAgICAvLyBQYXJzZSB0aGUgb3B0aW9uYWwgYWxpZ25tZW50IGFyZ3VtZW50LlxuICAgICAgdmFyIHBhcnNlciA9IGNvbnRleHQucGFyc2VyO1xuICAgICAgcGFyc2VyLmNvbnN1bWVTcGFjZXMoKTtcblxuICAgICAgaWYgKHBhcnNlci5mZXRjaCgpLnRleHQgPT09IFwiW1wiKSB7XG4gICAgICAgIHBhcnNlci5jb25zdW1lKCk7XG4gICAgICAgIHBhcnNlci5jb25zdW1lU3BhY2VzKCk7XG4gICAgICAgIGNvbEFsaWduID0gcGFyc2VyLmZldGNoKCkudGV4dDtcblxuICAgICAgICBpZiAoXCJsY3JcIi5pbmRleE9mKGNvbEFsaWduKSA9PT0gLTEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkV4cGVjdGVkIGwgb3IgYyBvciByXCIsIHBhcnNlci5uZXh0VG9rZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyc2VyLmNvbnN1bWUoKTtcbiAgICAgICAgcGFyc2VyLmNvbnN1bWVTcGFjZXMoKTtcbiAgICAgICAgcGFyc2VyLmV4cGVjdChcIl1cIik7XG4gICAgICAgIHBhcnNlci5jb25zdW1lKCk7XG4gICAgICAgIHBheWxvYWQuY29scyA9IFt7XG4gICAgICAgICAgdHlwZTogXCJhbGlnblwiLFxuICAgICAgICAgIGFsaWduOiBjb2xBbGlnblxuICAgICAgICB9XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcmVzID0gcGFyc2VBcnJheShjb250ZXh0LnBhcnNlciwgcGF5bG9hZCwgZENlbGxTdHlsZShjb250ZXh0LmVudk5hbWUpKTsgLy8gUG9wdWxhdGUgY29scyB3aXRoIHRoZSBjb3JyZWN0IG51bWJlciBvZiBjb2x1bW4gYWxpZ25tZW50IHNwZWNzLlxuXG4gICAgdmFyIG51bUNvbHMgPSBNYXRoLm1heCgwLCAuLi5yZXMuYm9keS5tYXAocm93ID0+IHJvdy5sZW5ndGgpKTtcbiAgICByZXMuY29scyA9IG5ldyBBcnJheShudW1Db2xzKS5maWxsKHtcbiAgICAgIHR5cGU6IFwiYWxpZ25cIixcbiAgICAgIGFsaWduOiBjb2xBbGlnblxuICAgIH0pO1xuICAgIHJldHVybiBkZWxpbWl0ZXJzID8ge1xuICAgICAgdHlwZTogXCJsZWZ0cmlnaHRcIixcbiAgICAgIG1vZGU6IGNvbnRleHQubW9kZSxcbiAgICAgIGJvZHk6IFtyZXNdLFxuICAgICAgbGVmdDogZGVsaW1pdGVyc1swXSxcbiAgICAgIHJpZ2h0OiBkZWxpbWl0ZXJzWzFdLFxuICAgICAgcmlnaHRDb2xvcjogdW5kZWZpbmVkIC8vIFxccmlnaHQgdW5pbmZsdWVuY2VkIGJ5IFxcY29sb3IgaW4gYXJyYXlcblxuICAgIH0gOiByZXM7XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDYsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkNVxufSk7XG5kZWZpbmVFbnZpcm9ubWVudCh7XG4gIHR5cGU6IFwiYXJyYXlcIixcbiAgbmFtZXM6IFtcInNtYWxsbWF0cml4XCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDBcbiAgfSxcblxuICBoYW5kbGVyKGNvbnRleHQpIHtcbiAgICB2YXIgcGF5bG9hZCA9IHtcbiAgICAgIGFycmF5c3RyZXRjaDogMC41XG4gICAgfTtcbiAgICB2YXIgcmVzID0gcGFyc2VBcnJheShjb250ZXh0LnBhcnNlciwgcGF5bG9hZCwgXCJzY3JpcHRcIik7XG4gICAgcmVzLmNvbFNlcGFyYXRpb25UeXBlID0gXCJzbWFsbFwiO1xuICAgIHJldHVybiByZXM7XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDYsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkNVxufSk7XG5kZWZpbmVFbnZpcm9ubWVudCh7XG4gIHR5cGU6IFwiYXJyYXlcIixcbiAgbmFtZXM6IFtcInN1YmFycmF5XCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDFcbiAgfSxcblxuICBoYW5kbGVyKGNvbnRleHQsIGFyZ3MpIHtcbiAgICAvLyBQYXJzaW5nIG9mIHtzdWJhcnJheX0gaXMgc2ltaWxhciB0byB7YXJyYXl9XG4gICAgdmFyIHN5bU5vZGUgPSBjaGVja1N5bWJvbE5vZGVUeXBlKGFyZ3NbMF0pO1xuICAgIHZhciBjb2xhbGlnbiA9IHN5bU5vZGUgPyBbYXJnc1swXV0gOiBhc3NlcnROb2RlVHlwZShhcmdzWzBdLCBcIm9yZGdyb3VwXCIpLmJvZHk7XG4gICAgdmFyIGNvbHMgPSBjb2xhbGlnbi5tYXAoZnVuY3Rpb24gKG5kZSkge1xuICAgICAgdmFyIG5vZGUgPSBhc3NlcnRTeW1ib2xOb2RlVHlwZShuZGUpO1xuICAgICAgdmFyIGNhID0gbm9kZS50ZXh0OyAvLyB7c3ViYXJyYXl9IG9ubHkgcmVjb2duaXplcyBcImxcIiAmIFwiY1wiXG5cbiAgICAgIGlmIChcImxjXCIuaW5kZXhPZihjYSkgIT09IC0xKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogXCJhbGlnblwiLFxuICAgICAgICAgIGFsaWduOiBjYVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIlVua25vd24gY29sdW1uIGFsaWdubWVudDogXCIgKyBjYSwgbmRlKTtcbiAgICB9KTtcblxuICAgIGlmIChjb2xzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwie3N1YmFycmF5fSBjYW4gY29udGFpbiBvbmx5IG9uZSBjb2x1bW5cIik7XG4gICAgfVxuXG4gICAgdmFyIHJlcyA9IHtcbiAgICAgIGNvbHMsXG4gICAgICBoc2tpcEJlZm9yZUFuZEFmdGVyOiBmYWxzZSxcbiAgICAgIGFycmF5c3RyZXRjaDogMC41XG4gICAgfTtcbiAgICByZXMgPSBwYXJzZUFycmF5KGNvbnRleHQucGFyc2VyLCByZXMsIFwic2NyaXB0XCIpO1xuXG4gICAgaWYgKHJlcy5ib2R5Lmxlbmd0aCA+IDAgJiYgcmVzLmJvZHlbMF0ubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJ7c3ViYXJyYXl9IGNhbiBjb250YWluIG9ubHkgb25lIGNvbHVtblwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9LFxuXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciQ2LFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDVcbn0pOyAvLyBBIGNhc2VzIGVudmlyb25tZW50IChpbiBhbXNtYXRoLnN0eSkgaXMgYWxtb3N0IGVxdWl2YWxlbnQgdG9cbi8vIFxcZGVmXFxhcnJheXN0cmV0Y2h7MS4yfSVcbi8vIFxcbGVmdFxce1xcYmVnaW57YXJyYXl9e0B7fWxAe1xccXVhZH1sQHt9fSDigKYgXFxlbmR7YXJyYXl9XFxyaWdodC5cbi8vIHtkY2FzZXN9IGlzIGEge2Nhc2VzfSBlbnZpcm9ubWVudCB3aGVyZSBjZWxscyBhcmUgc2V0IGluIFxcZGlzcGxheXN0eWxlLFxuLy8gYXMgZGVmaW5lZCBpbiBtYXRodG9vbHMuc3R5LlxuLy8ge3JjYXNlc30gaXMgYW5vdGhlciBtYXRodG9vbHMgZW52aXJvbm1lbnQuIEl0J3MgYnJhY2UgaXMgb24gdGhlIHJpZ2h0IHNpZGUuXG5cbmRlZmluZUVudmlyb25tZW50KHtcbiAgdHlwZTogXCJhcnJheVwiLFxuICBuYW1lczogW1wiY2FzZXNcIiwgXCJkY2FzZXNcIiwgXCJyY2FzZXNcIiwgXCJkcmNhc2VzXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDBcbiAgfSxcblxuICBoYW5kbGVyKGNvbnRleHQpIHtcbiAgICB2YXIgcGF5bG9hZCA9IHtcbiAgICAgIGFycmF5c3RyZXRjaDogMS4yLFxuICAgICAgY29sczogW3tcbiAgICAgICAgdHlwZTogXCJhbGlnblwiLFxuICAgICAgICBhbGlnbjogXCJsXCIsXG4gICAgICAgIHByZWdhcDogMCxcbiAgICAgICAgLy8gVE9ETyhrZXZpbmIpIGdldCB0aGUgY3VycmVudCBzdHlsZS5cbiAgICAgICAgLy8gRm9yIG5vdyB3ZSB1c2UgdGhlIG1ldHJpY3MgZm9yIFRFWFQgc3R5bGUgd2hpY2ggaXMgd2hhdCB3ZSB3ZXJlXG4gICAgICAgIC8vIGRvaW5nIGJlZm9yZS4gIEJlZm9yZSBhdHRlbXB0aW5nIHRvIGdldCB0aGUgY3VycmVudCBzdHlsZSB3ZVxuICAgICAgICAvLyBzaG91bGQgbG9vayBhdCBUZVgncyBiZWhhdmlvciBlc3BlY2lhbGx5IGZvciBcXG92ZXIgYW5kIG1hdHJpY2VzLlxuICAgICAgICBwb3N0Z2FwOiAxLjBcbiAgICAgICAgLyogMWVtIHF1YWQgKi9cblxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImFsaWduXCIsXG4gICAgICAgIGFsaWduOiBcImxcIixcbiAgICAgICAgcHJlZ2FwOiAwLFxuICAgICAgICBwb3N0Z2FwOiAwXG4gICAgICB9XVxuICAgIH07XG4gICAgdmFyIHJlcyA9IHBhcnNlQXJyYXkoY29udGV4dC5wYXJzZXIsIHBheWxvYWQsIGRDZWxsU3R5bGUoY29udGV4dC5lbnZOYW1lKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwibGVmdHJpZ2h0XCIsXG4gICAgICBtb2RlOiBjb250ZXh0Lm1vZGUsXG4gICAgICBib2R5OiBbcmVzXSxcbiAgICAgIGxlZnQ6IGNvbnRleHQuZW52TmFtZS5pbmRleE9mKFwiclwiKSA+IC0xID8gXCIuXCIgOiBcIlxcXFx7XCIsXG4gICAgICByaWdodDogY29udGV4dC5lbnZOYW1lLmluZGV4T2YoXCJyXCIpID4gLTEgPyBcIlxcXFx9XCIgOiBcIi5cIixcbiAgICAgIHJpZ2h0Q29sb3I6IHVuZGVmaW5lZFxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDYsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkNVxufSk7IC8vIEluIHRoZSBhbGlnbiBlbnZpcm9ubWVudCwgb25lIHVzZXMgYW1wZXJzYW5kcywgJiwgdG8gc3BlY2lmeSBudW1iZXIgb2Zcbi8vIGNvbHVtbnMgaW4gZWFjaCByb3csIGFuZCB0byBsb2NhdGUgc3BhY2luZyBiZXR3ZWVuIGVhY2ggY29sdW1uLlxuLy8gYWxpZ24gZ2V0cyBhdXRvbWF0aWMgbnVtYmVyaW5nLiBhbGlnbiogYW5kIGFsaWduZWQgZG8gbm90LlxuLy8gVGhlIGFsaWduZWRhdCBlbnZpcm9ubWVudCBjYW4gYmUgdXNlZCBpbiBtYXRoIG1vZGUuXG4vLyBOb3RlIHRoYXQgd2UgYXNzdW1lIFxcbm9tYWxsaW5lc2tpcGxpbWl0IHRvIGJlIHplcm8sXG4vLyBzbyB0aGF0IFxcc3RydXRAIGlzIHRoZSBzYW1lIGFzIFxcc3RydXQuXG5cbmRlZmluZUVudmlyb25tZW50KHtcbiAgdHlwZTogXCJhcnJheVwiLFxuICBuYW1lczogW1wiYWxpZ25cIiwgXCJhbGlnbipcIiwgXCJhbGlnbmVkXCIsIFwic3BsaXRcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMFxuICB9LFxuICBoYW5kbGVyOiBhbGlnbmVkSGFuZGxlcixcbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDYsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkNVxufSk7IC8vIEEgZ2F0aGVyZWQgZW52aXJvbm1lbnQgaXMgbGlrZSBhbiBhcnJheSBlbnZpcm9ubWVudCB3aXRoIG9uZSBjZW50ZXJlZFxuLy8gY29sdW1uLCBidXQgd2hlcmUgcm93cyBhcmUgY29uc2lkZXJlZCBsaW5lcyBzbyBnZXQgXFxqb3QgbGluZSBzcGFjaW5nXG4vLyBhbmQgY29udGVudHMgYXJlIHNldCBpbiBcXGRpc3BsYXlzdHlsZS5cblxuZGVmaW5lRW52aXJvbm1lbnQoe1xuICB0eXBlOiBcImFycmF5XCIsXG4gIG5hbWVzOiBbXCJnYXRoZXJlZFwiLCBcImdhdGhlclwiLCBcImdhdGhlcipcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMFxuICB9LFxuXG4gIGhhbmRsZXIoY29udGV4dCkge1xuICAgIGlmICh1dGlscy5jb250YWlucyhbXCJnYXRoZXJcIiwgXCJnYXRoZXIqXCJdLCBjb250ZXh0LmVudk5hbWUpKSB7XG4gICAgICB2YWxpZGF0ZUFtc0Vudmlyb25tZW50Q29udGV4dChjb250ZXh0KTtcbiAgICB9XG5cbiAgICB2YXIgcmVzID0ge1xuICAgICAgY29sczogW3tcbiAgICAgICAgdHlwZTogXCJhbGlnblwiLFxuICAgICAgICBhbGlnbjogXCJjXCJcbiAgICAgIH1dLFxuICAgICAgYWRkSm90OiB0cnVlLFxuICAgICAgY29sU2VwYXJhdGlvblR5cGU6IFwiZ2F0aGVyXCIsXG4gICAgICBhdXRvVGFnOiBnZXRBdXRvVGFnKGNvbnRleHQuZW52TmFtZSksXG4gICAgICBlbXB0eVNpbmdsZVJvdzogdHJ1ZSxcbiAgICAgIGxlcW5vOiBjb250ZXh0LnBhcnNlci5zZXR0aW5ncy5sZXFub1xuICAgIH07XG4gICAgcmV0dXJuIHBhcnNlQXJyYXkoY29udGV4dC5wYXJzZXIsIHJlcywgXCJkaXNwbGF5XCIpO1xuICB9LFxuXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciQ2LFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDVcbn0pOyAvLyBhbGlnbmF0IGVudmlyb25tZW50IGlzIGxpa2UgYW4gYWxpZ24gZW52aXJvbm1lbnQsIGJ1dCBvbmUgbXVzdCBleHBsaWNpdGx5XG4vLyBzcGVjaWZ5IG1heGltdW0gbnVtYmVyIG9mIGNvbHVtbnMgaW4gZWFjaCByb3csIGFuZCBjYW4gYWRqdXN0IHNwYWNpbmcgYmV0d2VlblxuLy8gZWFjaCBjb2x1bW5zLlxuXG5kZWZpbmVFbnZpcm9ubWVudCh7XG4gIHR5cGU6IFwiYXJyYXlcIixcbiAgbmFtZXM6IFtcImFsaWduYXRcIiwgXCJhbGlnbmF0KlwiLCBcImFsaWduZWRhdFwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxXG4gIH0sXG4gIGhhbmRsZXI6IGFsaWduZWRIYW5kbGVyLFxuICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIkNixcbiAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlciQ1XG59KTtcbmRlZmluZUVudmlyb25tZW50KHtcbiAgdHlwZTogXCJhcnJheVwiLFxuICBuYW1lczogW1wiZXF1YXRpb25cIiwgXCJlcXVhdGlvbipcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMFxuICB9LFxuXG4gIGhhbmRsZXIoY29udGV4dCkge1xuICAgIHZhbGlkYXRlQW1zRW52aXJvbm1lbnRDb250ZXh0KGNvbnRleHQpO1xuICAgIHZhciByZXMgPSB7XG4gICAgICBhdXRvVGFnOiBnZXRBdXRvVGFnKGNvbnRleHQuZW52TmFtZSksXG4gICAgICBlbXB0eVNpbmdsZVJvdzogdHJ1ZSxcbiAgICAgIHNpbmdsZVJvdzogdHJ1ZSxcbiAgICAgIG1heE51bUNvbHM6IDEsXG4gICAgICBsZXFubzogY29udGV4dC5wYXJzZXIuc2V0dGluZ3MubGVxbm9cbiAgICB9O1xuICAgIHJldHVybiBwYXJzZUFycmF5KGNvbnRleHQucGFyc2VyLCByZXMsIFwiZGlzcGxheVwiKTtcbiAgfSxcblxuICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIkNixcbiAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlciQ1XG59KTtcbmRlZmluZUVudmlyb25tZW50KHtcbiAgdHlwZTogXCJhcnJheVwiLFxuICBuYW1lczogW1wiQ0RcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMFxuICB9LFxuXG4gIGhhbmRsZXIoY29udGV4dCkge1xuICAgIHZhbGlkYXRlQW1zRW52aXJvbm1lbnRDb250ZXh0KGNvbnRleHQpO1xuICAgIHJldHVybiBwYXJzZUNEKGNvbnRleHQucGFyc2VyKTtcbiAgfSxcblxuICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIkNixcbiAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlciQ1XG59KTtcbmRlZmluZU1hY3JvKFwiXFxcXG5vbnVtYmVyXCIsIFwiXFxcXGdkZWZcXFxcQGVxbnN3ezB9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbm90YWdcIiwgXCJcXFxcbm9udW1iZXJcIik7IC8vIENhdGNoIFxcaGxpbmUgb3V0c2lkZSBhcnJheSBlbnZpcm9ubWVudFxuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwidGV4dFwiLFxuICAvLyBEb2Vzbid0IG1hdHRlciB3aGF0IHRoaXMgaXMuXG4gIG5hbWVzOiBbXCJcXFxcaGxpbmVcIiwgXCJcXFxcaGRhc2hsaW5lXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDAsXG4gICAgYWxsb3dlZEluVGV4dDogdHJ1ZSxcbiAgICBhbGxvd2VkSW5NYXRoOiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoY29udGV4dC5mdW5jTmFtZSArIFwiIHZhbGlkIG9ubHkgd2l0aGluIGFycmF5IGVudmlyb25tZW50XCIpO1xuICB9XG5cbn0pO1xuXG52YXIgZW52aXJvbm1lbnRzID0gX2Vudmlyb25tZW50cztcblxuLy8gZGVmaW5lRW52aXJvbm1lbnQgZGVmaW5pdGlvbnMuXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJlbnZpcm9ubWVudFwiLFxuICBuYW1lczogW1wiXFxcXGJlZ2luXCIsIFwiXFxcXGVuZFwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIGFyZ1R5cGVzOiBbXCJ0ZXh0XCJdXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmLCBhcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlcixcbiAgICAgIGZ1bmNOYW1lXG4gICAgfSA9IF9yZWY7XG4gICAgdmFyIG5hbWVHcm91cCA9IGFyZ3NbMF07XG5cbiAgICBpZiAobmFtZUdyb3VwLnR5cGUgIT09IFwib3JkZ3JvdXBcIikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJJbnZhbGlkIGVudmlyb25tZW50IG5hbWVcIiwgbmFtZUdyb3VwKTtcbiAgICB9XG5cbiAgICB2YXIgZW52TmFtZSA9IFwiXCI7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVHcm91cC5ib2R5Lmxlbmd0aDsgKytpKSB7XG4gICAgICBlbnZOYW1lICs9IGFzc2VydE5vZGVUeXBlKG5hbWVHcm91cC5ib2R5W2ldLCBcInRleHRvcmRcIikudGV4dDtcbiAgICB9XG5cbiAgICBpZiAoZnVuY05hbWUgPT09IFwiXFxcXGJlZ2luXCIpIHtcbiAgICAgIC8vIGJlZ2luLi4uZW5kIGlzIHNpbWlsYXIgdG8gbGVmdC4uLnJpZ2h0XG4gICAgICBpZiAoIWVudmlyb25tZW50cy5oYXNPd25Qcm9wZXJ0eShlbnZOYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIk5vIHN1Y2ggZW52aXJvbm1lbnQ6IFwiICsgZW52TmFtZSwgbmFtZUdyb3VwKTtcbiAgICAgIH0gLy8gQnVpbGQgdGhlIGVudmlyb25tZW50IG9iamVjdC4gQXJndW1lbnRzIGFuZCBvdGhlciBpbmZvcm1hdGlvbiB3aWxsXG4gICAgICAvLyBiZSBtYWRlIGF2YWlsYWJsZSB0byB0aGUgYmVnaW4gYW5kIGVuZCBtZXRob2RzIHVzaW5nIHByb3BlcnRpZXMuXG5cblxuICAgICAgdmFyIGVudiA9IGVudmlyb25tZW50c1tlbnZOYW1lXTtcbiAgICAgIHZhciB7XG4gICAgICAgIGFyZ3M6IF9hcmdzLFxuICAgICAgICBvcHRBcmdzXG4gICAgICB9ID0gcGFyc2VyLnBhcnNlQXJndW1lbnRzKFwiXFxcXGJlZ2lue1wiICsgZW52TmFtZSArIFwifVwiLCBlbnYpO1xuICAgICAgdmFyIGNvbnRleHQgPSB7XG4gICAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgICBlbnZOYW1lLFxuICAgICAgICBwYXJzZXJcbiAgICAgIH07XG4gICAgICB2YXIgcmVzdWx0ID0gZW52LmhhbmRsZXIoY29udGV4dCwgX2FyZ3MsIG9wdEFyZ3MpO1xuICAgICAgcGFyc2VyLmV4cGVjdChcIlxcXFxlbmRcIiwgZmFsc2UpO1xuICAgICAgdmFyIGVuZE5hbWVUb2tlbiA9IHBhcnNlci5uZXh0VG9rZW47XG4gICAgICB2YXIgZW5kID0gYXNzZXJ0Tm9kZVR5cGUocGFyc2VyLnBhcnNlRnVuY3Rpb24oKSwgXCJlbnZpcm9ubWVudFwiKTtcblxuICAgICAgaWYgKGVuZC5uYW1lICE9PSBlbnZOYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiTWlzbWF0Y2g6IFxcXFxiZWdpbntcIiArIGVudk5hbWUgKyBcIn0gbWF0Y2hlZCBieSBcXFxcZW5ke1wiICsgZW5kLm5hbWUgKyBcIn1cIiwgZW5kTmFtZVRva2VuKTtcbiAgICAgIH0gLy8gJEZsb3dGaXhNZSwgXCJlbnZpcm9ubWVudFwiIGhhbmRsZXIgcmV0dXJucyBhbiBlbnZpcm9ubWVudCBQYXJzZU5vZGVcblxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImVudmlyb25tZW50XCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIG5hbWU6IGVudk5hbWUsXG4gICAgICBuYW1lR3JvdXBcbiAgICB9O1xuICB9XG5cbn0pO1xuXG4vLyBUT0RPKGtldmluYik6IGltcGxlbWVudCBcXFxcc2wgYW5kIFxcXFxzY1xuXG52YXIgaHRtbEJ1aWxkZXIkNSA9IChncm91cCwgb3B0aW9ucykgPT4ge1xuICB2YXIgZm9udCA9IGdyb3VwLmZvbnQ7XG4gIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy53aXRoRm9udChmb250KTtcbiAgcmV0dXJuIGJ1aWxkR3JvdXAkMShncm91cC5ib2R5LCBuZXdPcHRpb25zKTtcbn07XG5cbnZhciBtYXRobWxCdWlsZGVyJDQgPSAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgdmFyIGZvbnQgPSBncm91cC5mb250O1xuICB2YXIgbmV3T3B0aW9ucyA9IG9wdGlvbnMud2l0aEZvbnQoZm9udCk7XG4gIHJldHVybiBidWlsZEdyb3VwKGdyb3VwLmJvZHksIG5ld09wdGlvbnMpO1xufTtcblxudmFyIGZvbnRBbGlhc2VzID0ge1xuICBcIlxcXFxCYmJcIjogXCJcXFxcbWF0aGJiXCIsXG4gIFwiXFxcXGJvbGRcIjogXCJcXFxcbWF0aGJmXCIsXG4gIFwiXFxcXGZyYWtcIjogXCJcXFxcbWF0aGZyYWtcIixcbiAgXCJcXFxcYm1cIjogXCJcXFxcYm9sZHN5bWJvbFwiXG59O1xuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImZvbnRcIixcbiAgbmFtZXM6IFsvLyBzdHlsZXMsIGV4Y2VwdCBcXGJvbGRzeW1ib2wgZGVmaW5lZCBiZWxvd1xuICBcIlxcXFxtYXRocm1cIiwgXCJcXFxcbWF0aGl0XCIsIFwiXFxcXG1hdGhiZlwiLCBcIlxcXFxtYXRobm9ybWFsXCIsIC8vIGZhbWlsaWVzXG4gIFwiXFxcXG1hdGhiYlwiLCBcIlxcXFxtYXRoY2FsXCIsIFwiXFxcXG1hdGhmcmFrXCIsIFwiXFxcXG1hdGhzY3JcIiwgXCJcXFxcbWF0aHNmXCIsIFwiXFxcXG1hdGh0dFwiLCAvLyBhbGlhc2VzLCBleGNlcHQgXFxibSBkZWZpbmVkIGJlbG93XG4gIFwiXFxcXEJiYlwiLCBcIlxcXFxib2xkXCIsIFwiXFxcXGZyYWtcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBhbGxvd2VkSW5Bcmd1bWVudDogdHJ1ZVxuICB9LFxuICBoYW5kbGVyOiAoX3JlZiwgYXJncykgPT4ge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBib2R5ID0gbm9ybWFsaXplQXJndW1lbnQoYXJnc1swXSk7XG4gICAgdmFyIGZ1bmMgPSBmdW5jTmFtZTtcblxuICAgIGlmIChmdW5jIGluIGZvbnRBbGlhc2VzKSB7XG4gICAgICBmdW5jID0gZm9udEFsaWFzZXNbZnVuY107XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiZm9udFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBmb250OiBmdW5jLnNsaWNlKDEpLFxuICAgICAgYm9keVxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciQ1LFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDRcbn0pO1xuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcIm1jbGFzc1wiLFxuICBuYW1lczogW1wiXFxcXGJvbGRzeW1ib2xcIiwgXCJcXFxcYm1cIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMVxuICB9LFxuICBoYW5kbGVyOiAoX3JlZjIsIGFyZ3MpID0+IHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyXG4gICAgfSA9IF9yZWYyO1xuICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICB2YXIgaXNDaGFyYWN0ZXJCb3ggPSB1dGlscy5pc0NoYXJhY3RlckJveChib2R5KTsgLy8gYW1zYnN5LnN0eSdzIFxcYm9sZHN5bWJvbCB1c2VzIFxcYmlucmVsIHNwYWNpbmcgdG8gaW5oZXJpdCB0aGVcbiAgICAvLyBhcmd1bWVudCdzIGJpbnxyZWx8b3JkIHN0YXR1c1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwibWNsYXNzXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIG1jbGFzczogYmlucmVsQ2xhc3MoYm9keSksXG4gICAgICBib2R5OiBbe1xuICAgICAgICB0eXBlOiBcImZvbnRcIixcbiAgICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICAgIGZvbnQ6IFwiYm9sZHN5bWJvbFwiLFxuICAgICAgICBib2R5XG4gICAgICB9XSxcbiAgICAgIGlzQ2hhcmFjdGVyQm94OiBpc0NoYXJhY3RlckJveFxuICAgIH07XG4gIH1cbn0pOyAvLyBPbGQgZm9udCBjaGFuZ2luZyBmdW5jdGlvbnNcblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImZvbnRcIixcbiAgbmFtZXM6IFtcIlxcXFxybVwiLCBcIlxcXFxzZlwiLCBcIlxcXFx0dFwiLCBcIlxcXFxiZlwiLCBcIlxcXFxpdFwiLCBcIlxcXFxjYWxcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMCxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG4gIGhhbmRsZXI6IChfcmVmMywgYXJncykgPT4ge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZSxcbiAgICAgIGJyZWFrT25Ub2tlblRleHRcbiAgICB9ID0gX3JlZjM7XG4gICAgdmFyIHtcbiAgICAgIG1vZGVcbiAgICB9ID0gcGFyc2VyO1xuICAgIHZhciBib2R5ID0gcGFyc2VyLnBhcnNlRXhwcmVzc2lvbih0cnVlLCBicmVha09uVG9rZW5UZXh0KTtcbiAgICB2YXIgc3R5bGUgPSBcIm1hdGhcIiArIGZ1bmNOYW1lLnNsaWNlKDEpO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImZvbnRcIixcbiAgICAgIG1vZGU6IG1vZGUsXG4gICAgICBmb250OiBzdHlsZSxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgdHlwZTogXCJvcmRncm91cFwiLFxuICAgICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgICAgYm9keVxuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciQ1LFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDRcbn0pO1xuXG52YXIgYWRqdXN0U3R5bGUgPSAoc2l6ZSwgb3JpZ2luYWxTdHlsZSkgPT4ge1xuICAvLyBGaWd1cmUgb3V0IHdoYXQgc3R5bGUgdGhpcyBmcmFjdGlvbiBzaG91bGQgYmUgaW4gYmFzZWQgb24gdGhlXG4gIC8vIGZ1bmN0aW9uIHVzZWRcbiAgdmFyIHN0eWxlID0gb3JpZ2luYWxTdHlsZTtcblxuICBpZiAoc2l6ZSA9PT0gXCJkaXNwbGF5XCIpIHtcbiAgICAvLyBHZXQgZGlzcGxheSBzdHlsZSBhcyBhIGRlZmF1bHQuXG4gICAgLy8gSWYgaW5jb21pbmcgc3R5bGUgaXMgc3ViL3N1cCwgdXNlIHN0eWxlLnRleHQoKSB0byBnZXQgY29ycmVjdCBzaXplLlxuICAgIHN0eWxlID0gc3R5bGUuaWQgPj0gU3R5bGUkMS5TQ1JJUFQuaWQgPyBzdHlsZS50ZXh0KCkgOiBTdHlsZSQxLkRJU1BMQVk7XG4gIH0gZWxzZSBpZiAoc2l6ZSA9PT0gXCJ0ZXh0XCIgJiYgc3R5bGUuc2l6ZSA9PT0gU3R5bGUkMS5ESVNQTEFZLnNpemUpIHtcbiAgICAvLyBXZSdyZSBpbiBhIFxcdGZyYWMgYnV0IGluY29taW5nIHN0eWxlIGlzIGRpc3BsYXlzdHlsZSwgc286XG4gICAgc3R5bGUgPSBTdHlsZSQxLlRFWFQ7XG4gIH0gZWxzZSBpZiAoc2l6ZSA9PT0gXCJzY3JpcHRcIikge1xuICAgIHN0eWxlID0gU3R5bGUkMS5TQ1JJUFQ7XG4gIH0gZWxzZSBpZiAoc2l6ZSA9PT0gXCJzY3JpcHRzY3JpcHRcIikge1xuICAgIHN0eWxlID0gU3R5bGUkMS5TQ1JJUFRTQ1JJUFQ7XG4gIH1cblxuICByZXR1cm4gc3R5bGU7XG59O1xuXG52YXIgaHRtbEJ1aWxkZXIkNCA9IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAvLyBGcmFjdGlvbnMgYXJlIGhhbmRsZWQgaW4gdGhlIFRlWGJvb2sgb24gcGFnZXMgNDQ0LTQ0NSwgcnVsZXMgMTUoYS1lKS5cbiAgdmFyIHN0eWxlID0gYWRqdXN0U3R5bGUoZ3JvdXAuc2l6ZSwgb3B0aW9ucy5zdHlsZSk7XG4gIHZhciBuc3R5bGUgPSBzdHlsZS5mcmFjTnVtKCk7XG4gIHZhciBkc3R5bGUgPSBzdHlsZS5mcmFjRGVuKCk7XG4gIHZhciBuZXdPcHRpb25zO1xuICBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShuc3R5bGUpO1xuICB2YXIgbnVtZXJtID0gYnVpbGRHcm91cCQxKGdyb3VwLm51bWVyLCBuZXdPcHRpb25zLCBvcHRpb25zKTtcblxuICBpZiAoZ3JvdXAuY29udGludWVkKSB7XG4gICAgLy8gXFxjZnJhYyBpbnNlcnRzIGEgXFxzdHJ1dCBpbnRvIHRoZSBudW1lcmF0b3IuXG4gICAgLy8gR2V0IFxcc3RydXQgZGltZW5zaW9ucyBmcm9tIFRlWGJvb2sgcGFnZSAzNTMuXG4gICAgdmFyIGhTdHJ1dCA9IDguNSAvIG9wdGlvbnMuZm9udE1ldHJpY3MoKS5wdFBlckVtO1xuICAgIHZhciBkU3RydXQgPSAzLjUgLyBvcHRpb25zLmZvbnRNZXRyaWNzKCkucHRQZXJFbTtcbiAgICBudW1lcm0uaGVpZ2h0ID0gbnVtZXJtLmhlaWdodCA8IGhTdHJ1dCA/IGhTdHJ1dCA6IG51bWVybS5oZWlnaHQ7XG4gICAgbnVtZXJtLmRlcHRoID0gbnVtZXJtLmRlcHRoIDwgZFN0cnV0ID8gZFN0cnV0IDogbnVtZXJtLmRlcHRoO1xuICB9XG5cbiAgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nU3R5bGUoZHN0eWxlKTtcbiAgdmFyIGRlbm9tbSA9IGJ1aWxkR3JvdXAkMShncm91cC5kZW5vbSwgbmV3T3B0aW9ucywgb3B0aW9ucyk7XG4gIHZhciBydWxlO1xuICB2YXIgcnVsZVdpZHRoO1xuICB2YXIgcnVsZVNwYWNpbmc7XG5cbiAgaWYgKGdyb3VwLmhhc0JhckxpbmUpIHtcbiAgICBpZiAoZ3JvdXAuYmFyU2l6ZSkge1xuICAgICAgcnVsZVdpZHRoID0gY2FsY3VsYXRlU2l6ZShncm91cC5iYXJTaXplLCBvcHRpb25zKTtcbiAgICAgIHJ1bGUgPSBidWlsZENvbW1vbi5tYWtlTGluZVNwYW4oXCJmcmFjLWxpbmVcIiwgb3B0aW9ucywgcnVsZVdpZHRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcnVsZSA9IGJ1aWxkQ29tbW9uLm1ha2VMaW5lU3BhbihcImZyYWMtbGluZVwiLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBydWxlV2lkdGggPSBydWxlLmhlaWdodDtcbiAgICBydWxlU3BhY2luZyA9IHJ1bGUuaGVpZ2h0O1xuICB9IGVsc2Uge1xuICAgIHJ1bGUgPSBudWxsO1xuICAgIHJ1bGVXaWR0aCA9IDA7XG4gICAgcnVsZVNwYWNpbmcgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuZGVmYXVsdFJ1bGVUaGlja25lc3M7XG4gIH0gLy8gUnVsZSAxNWJcblxuXG4gIHZhciBudW1TaGlmdDtcbiAgdmFyIGNsZWFyYW5jZTtcbiAgdmFyIGRlbm9tU2hpZnQ7XG5cbiAgaWYgKHN0eWxlLnNpemUgPT09IFN0eWxlJDEuRElTUExBWS5zaXplIHx8IGdyb3VwLnNpemUgPT09IFwiZGlzcGxheVwiKSB7XG4gICAgbnVtU2hpZnQgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkubnVtMTtcblxuICAgIGlmIChydWxlV2lkdGggPiAwKSB7XG4gICAgICBjbGVhcmFuY2UgPSAzICogcnVsZVNwYWNpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsZWFyYW5jZSA9IDcgKiBydWxlU3BhY2luZztcbiAgICB9XG5cbiAgICBkZW5vbVNoaWZ0ID0gb3B0aW9ucy5mb250TWV0cmljcygpLmRlbm9tMTtcbiAgfSBlbHNlIHtcbiAgICBpZiAocnVsZVdpZHRoID4gMCkge1xuICAgICAgbnVtU2hpZnQgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkubnVtMjtcbiAgICAgIGNsZWFyYW5jZSA9IHJ1bGVTcGFjaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICBudW1TaGlmdCA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5udW0zO1xuICAgICAgY2xlYXJhbmNlID0gMyAqIHJ1bGVTcGFjaW5nO1xuICAgIH1cblxuICAgIGRlbm9tU2hpZnQgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuZGVub20yO1xuICB9XG5cbiAgdmFyIGZyYWM7XG5cbiAgaWYgKCFydWxlKSB7XG4gICAgLy8gUnVsZSAxNWNcbiAgICB2YXIgY2FuZGlkYXRlQ2xlYXJhbmNlID0gbnVtU2hpZnQgLSBudW1lcm0uZGVwdGggLSAoZGVub21tLmhlaWdodCAtIGRlbm9tU2hpZnQpO1xuXG4gICAgaWYgKGNhbmRpZGF0ZUNsZWFyYW5jZSA8IGNsZWFyYW5jZSkge1xuICAgICAgbnVtU2hpZnQgKz0gMC41ICogKGNsZWFyYW5jZSAtIGNhbmRpZGF0ZUNsZWFyYW5jZSk7XG4gICAgICBkZW5vbVNoaWZ0ICs9IDAuNSAqIChjbGVhcmFuY2UgLSBjYW5kaWRhdGVDbGVhcmFuY2UpO1xuICAgIH1cblxuICAgIGZyYWMgPSBidWlsZENvbW1vbi5tYWtlVkxpc3Qoe1xuICAgICAgcG9zaXRpb25UeXBlOiBcImluZGl2aWR1YWxTaGlmdFwiLFxuICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBkZW5vbW0sXG4gICAgICAgIHNoaWZ0OiBkZW5vbVNoaWZ0XG4gICAgICB9LCB7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBudW1lcm0sXG4gICAgICAgIHNoaWZ0OiAtbnVtU2hpZnRcbiAgICAgIH1dXG4gICAgfSwgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgLy8gUnVsZSAxNWRcbiAgICB2YXIgYXhpc0hlaWdodCA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5heGlzSGVpZ2h0O1xuXG4gICAgaWYgKG51bVNoaWZ0IC0gbnVtZXJtLmRlcHRoIC0gKGF4aXNIZWlnaHQgKyAwLjUgKiBydWxlV2lkdGgpIDwgY2xlYXJhbmNlKSB7XG4gICAgICBudW1TaGlmdCArPSBjbGVhcmFuY2UgLSAobnVtU2hpZnQgLSBudW1lcm0uZGVwdGggLSAoYXhpc0hlaWdodCArIDAuNSAqIHJ1bGVXaWR0aCkpO1xuICAgIH1cblxuICAgIGlmIChheGlzSGVpZ2h0IC0gMC41ICogcnVsZVdpZHRoIC0gKGRlbm9tbS5oZWlnaHQgLSBkZW5vbVNoaWZ0KSA8IGNsZWFyYW5jZSkge1xuICAgICAgZGVub21TaGlmdCArPSBjbGVhcmFuY2UgLSAoYXhpc0hlaWdodCAtIDAuNSAqIHJ1bGVXaWR0aCAtIChkZW5vbW0uaGVpZ2h0IC0gZGVub21TaGlmdCkpO1xuICAgIH1cblxuICAgIHZhciBtaWRTaGlmdCA9IC0oYXhpc0hlaWdodCAtIDAuNSAqIHJ1bGVXaWR0aCk7XG4gICAgZnJhYyA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwiaW5kaXZpZHVhbFNoaWZ0XCIsXG4gICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGRlbm9tbSxcbiAgICAgICAgc2hpZnQ6IGRlbm9tU2hpZnRcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IHJ1bGUsXG4gICAgICAgIHNoaWZ0OiBtaWRTaGlmdFxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgZWxlbTogbnVtZXJtLFxuICAgICAgICBzaGlmdDogLW51bVNoaWZ0XG4gICAgICB9XVxuICAgIH0sIG9wdGlvbnMpO1xuICB9IC8vIFNpbmNlIHdlIG1hbnVhbGx5IGNoYW5nZSB0aGUgc3R5bGUgc29tZXRpbWVzICh3aXRoIFxcZGZyYWMgb3IgXFx0ZnJhYyksXG4gIC8vIGFjY291bnQgZm9yIHRoZSBwb3NzaWJsZSBzaXplIGNoYW5nZSBoZXJlLlxuXG5cbiAgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nU3R5bGUoc3R5bGUpO1xuICBmcmFjLmhlaWdodCAqPSBuZXdPcHRpb25zLnNpemVNdWx0aXBsaWVyIC8gb3B0aW9ucy5zaXplTXVsdGlwbGllcjtcbiAgZnJhYy5kZXB0aCAqPSBuZXdPcHRpb25zLnNpemVNdWx0aXBsaWVyIC8gb3B0aW9ucy5zaXplTXVsdGlwbGllcjsgLy8gUnVsZSAxNWVcblxuICB2YXIgZGVsaW1TaXplO1xuXG4gIGlmIChzdHlsZS5zaXplID09PSBTdHlsZSQxLkRJU1BMQVkuc2l6ZSkge1xuICAgIGRlbGltU2l6ZSA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5kZWxpbTE7XG4gIH0gZWxzZSBpZiAoc3R5bGUuc2l6ZSA9PT0gU3R5bGUkMS5TQ1JJUFRTQ1JJUFQuc2l6ZSkge1xuICAgIGRlbGltU2l6ZSA9IG9wdGlvbnMuaGF2aW5nU3R5bGUoU3R5bGUkMS5TQ1JJUFQpLmZvbnRNZXRyaWNzKCkuZGVsaW0yO1xuICB9IGVsc2Uge1xuICAgIGRlbGltU2l6ZSA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5kZWxpbTI7XG4gIH1cblxuICB2YXIgbGVmdERlbGltO1xuICB2YXIgcmlnaHREZWxpbTtcblxuICBpZiAoZ3JvdXAubGVmdERlbGltID09IG51bGwpIHtcbiAgICBsZWZ0RGVsaW0gPSBtYWtlTnVsbERlbGltaXRlcihvcHRpb25zLCBbXCJtb3BlblwiXSk7XG4gIH0gZWxzZSB7XG4gICAgbGVmdERlbGltID0gZGVsaW1pdGVyLmN1c3RvbVNpemVkRGVsaW0oZ3JvdXAubGVmdERlbGltLCBkZWxpbVNpemUsIHRydWUsIG9wdGlvbnMuaGF2aW5nU3R5bGUoc3R5bGUpLCBncm91cC5tb2RlLCBbXCJtb3BlblwiXSk7XG4gIH1cblxuICBpZiAoZ3JvdXAuY29udGludWVkKSB7XG4gICAgcmlnaHREZWxpbSA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtdKTsgLy8gemVybyB3aWR0aCBmb3IgXFxjZnJhY1xuICB9IGVsc2UgaWYgKGdyb3VwLnJpZ2h0RGVsaW0gPT0gbnVsbCkge1xuICAgIHJpZ2h0RGVsaW0gPSBtYWtlTnVsbERlbGltaXRlcihvcHRpb25zLCBbXCJtY2xvc2VcIl0pO1xuICB9IGVsc2Uge1xuICAgIHJpZ2h0RGVsaW0gPSBkZWxpbWl0ZXIuY3VzdG9tU2l6ZWREZWxpbShncm91cC5yaWdodERlbGltLCBkZWxpbVNpemUsIHRydWUsIG9wdGlvbnMuaGF2aW5nU3R5bGUoc3R5bGUpLCBncm91cC5tb2RlLCBbXCJtY2xvc2VcIl0pO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1vcmRcIl0uY29uY2F0KG5ld09wdGlvbnMuc2l6aW5nQ2xhc3NlcyhvcHRpb25zKSksIFtsZWZ0RGVsaW0sIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1mcmFjXCJdLCBbZnJhY10pLCByaWdodERlbGltXSwgb3B0aW9ucyk7XG59O1xuXG52YXIgbWF0aG1sQnVpbGRlciQzID0gKGdyb3VwLCBvcHRpb25zKSA9PiB7XG4gIHZhciBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtZnJhY1wiLCBbYnVpbGRHcm91cChncm91cC5udW1lciwgb3B0aW9ucyksIGJ1aWxkR3JvdXAoZ3JvdXAuZGVub20sIG9wdGlvbnMpXSk7XG5cbiAgaWYgKCFncm91cC5oYXNCYXJMaW5lKSB7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJsaW5ldGhpY2tuZXNzXCIsIFwiMHB4XCIpO1xuICB9IGVsc2UgaWYgKGdyb3VwLmJhclNpemUpIHtcbiAgICB2YXIgcnVsZVdpZHRoID0gY2FsY3VsYXRlU2l6ZShncm91cC5iYXJTaXplLCBvcHRpb25zKTtcbiAgICBub2RlLnNldEF0dHJpYnV0ZShcImxpbmV0aGlja25lc3NcIiwgbWFrZUVtKHJ1bGVXaWR0aCkpO1xuICB9XG5cbiAgdmFyIHN0eWxlID0gYWRqdXN0U3R5bGUoZ3JvdXAuc2l6ZSwgb3B0aW9ucy5zdHlsZSk7XG5cbiAgaWYgKHN0eWxlLnNpemUgIT09IG9wdGlvbnMuc3R5bGUuc2l6ZSkge1xuICAgIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1zdHlsZVwiLCBbbm9kZV0pO1xuICAgIHZhciBpc0Rpc3BsYXkgPSBzdHlsZS5zaXplID09PSBTdHlsZSQxLkRJU1BMQVkuc2l6ZSA/IFwidHJ1ZVwiIDogXCJmYWxzZVwiO1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKFwiZGlzcGxheXN0eWxlXCIsIGlzRGlzcGxheSk7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJzY3JpcHRsZXZlbFwiLCBcIjBcIik7XG4gIH1cblxuICBpZiAoZ3JvdXAubGVmdERlbGltICE9IG51bGwgfHwgZ3JvdXAucmlnaHREZWxpbSAhPSBudWxsKSB7XG4gICAgdmFyIHdpdGhEZWxpbXMgPSBbXTtcblxuICAgIGlmIChncm91cC5sZWZ0RGVsaW0gIT0gbnVsbCkge1xuICAgICAgdmFyIGxlZnRPcCA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibW9cIiwgW25ldyBtYXRoTUxUcmVlLlRleHROb2RlKGdyb3VwLmxlZnREZWxpbS5yZXBsYWNlKFwiXFxcXFwiLCBcIlwiKSldKTtcbiAgICAgIGxlZnRPcC5zZXRBdHRyaWJ1dGUoXCJmZW5jZVwiLCBcInRydWVcIik7XG4gICAgICB3aXRoRGVsaW1zLnB1c2gobGVmdE9wKTtcbiAgICB9XG5cbiAgICB3aXRoRGVsaW1zLnB1c2gobm9kZSk7XG5cbiAgICBpZiAoZ3JvdXAucmlnaHREZWxpbSAhPSBudWxsKSB7XG4gICAgICB2YXIgcmlnaHRPcCA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibW9cIiwgW25ldyBtYXRoTUxUcmVlLlRleHROb2RlKGdyb3VwLnJpZ2h0RGVsaW0ucmVwbGFjZShcIlxcXFxcIiwgXCJcIikpXSk7XG4gICAgICByaWdodE9wLnNldEF0dHJpYnV0ZShcImZlbmNlXCIsIFwidHJ1ZVwiKTtcbiAgICAgIHdpdGhEZWxpbXMucHVzaChyaWdodE9wKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFrZVJvdyh3aXRoRGVsaW1zKTtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufTtcblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImdlbmZyYWNcIixcbiAgbmFtZXM6IFtcIlxcXFxkZnJhY1wiLCBcIlxcXFxmcmFjXCIsIFwiXFxcXHRmcmFjXCIsIFwiXFxcXGRiaW5vbVwiLCBcIlxcXFxiaW5vbVwiLCBcIlxcXFx0Ymlub21cIiwgXCJcXFxcXFxcXGF0b3BmcmFjXCIsIC8vIGNhbuKAmXQgYmUgZW50ZXJlZCBkaXJlY3RseVxuICBcIlxcXFxcXFxcYnJhY2VmcmFjXCIsIFwiXFxcXFxcXFxicmFja2ZyYWNcIiAvLyBkaXR0b1xuICBdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDIsXG4gICAgYWxsb3dlZEluQXJndW1lbnQ6IHRydWVcbiAgfSxcbiAgaGFuZGxlcjogKF9yZWYsIGFyZ3MpID0+IHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyLFxuICAgICAgZnVuY05hbWVcbiAgICB9ID0gX3JlZjtcbiAgICB2YXIgbnVtZXIgPSBhcmdzWzBdO1xuICAgIHZhciBkZW5vbSA9IGFyZ3NbMV07XG4gICAgdmFyIGhhc0JhckxpbmU7XG4gICAgdmFyIGxlZnREZWxpbSA9IG51bGw7XG4gICAgdmFyIHJpZ2h0RGVsaW0gPSBudWxsO1xuICAgIHZhciBzaXplID0gXCJhdXRvXCI7XG5cbiAgICBzd2l0Y2ggKGZ1bmNOYW1lKSB7XG4gICAgICBjYXNlIFwiXFxcXGRmcmFjXCI6XG4gICAgICBjYXNlIFwiXFxcXGZyYWNcIjpcbiAgICAgIGNhc2UgXCJcXFxcdGZyYWNcIjpcbiAgICAgICAgaGFzQmFyTGluZSA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwiXFxcXFxcXFxhdG9wZnJhY1wiOlxuICAgICAgICBoYXNCYXJMaW5lID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwiXFxcXGRiaW5vbVwiOlxuICAgICAgY2FzZSBcIlxcXFxiaW5vbVwiOlxuICAgICAgY2FzZSBcIlxcXFx0Ymlub21cIjpcbiAgICAgICAgaGFzQmFyTGluZSA9IGZhbHNlO1xuICAgICAgICBsZWZ0RGVsaW0gPSBcIihcIjtcbiAgICAgICAgcmlnaHREZWxpbSA9IFwiKVwiO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcIlxcXFxcXFxcYnJhY2VmcmFjXCI6XG4gICAgICAgIGhhc0JhckxpbmUgPSBmYWxzZTtcbiAgICAgICAgbGVmdERlbGltID0gXCJcXFxce1wiO1xuICAgICAgICByaWdodERlbGltID0gXCJcXFxcfVwiO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcIlxcXFxcXFxcYnJhY2tmcmFjXCI6XG4gICAgICAgIGhhc0JhckxpbmUgPSBmYWxzZTtcbiAgICAgICAgbGVmdERlbGltID0gXCJbXCI7XG4gICAgICAgIHJpZ2h0RGVsaW0gPSBcIl1cIjtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVucmVjb2duaXplZCBnZW5mcmFjIGNvbW1hbmRcIik7XG4gICAgfVxuXG4gICAgc3dpdGNoIChmdW5jTmFtZSkge1xuICAgICAgY2FzZSBcIlxcXFxkZnJhY1wiOlxuICAgICAgY2FzZSBcIlxcXFxkYmlub21cIjpcbiAgICAgICAgc2l6ZSA9IFwiZGlzcGxheVwiO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcIlxcXFx0ZnJhY1wiOlxuICAgICAgY2FzZSBcIlxcXFx0Ymlub21cIjpcbiAgICAgICAgc2l6ZSA9IFwidGV4dFwiO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJnZW5mcmFjXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGNvbnRpbnVlZDogZmFsc2UsXG4gICAgICBudW1lcixcbiAgICAgIGRlbm9tLFxuICAgICAgaGFzQmFyTGluZSxcbiAgICAgIGxlZnREZWxpbSxcbiAgICAgIHJpZ2h0RGVsaW0sXG4gICAgICBzaXplLFxuICAgICAgYmFyU2l6ZTogbnVsbFxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciQ0LFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDNcbn0pO1xuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImdlbmZyYWNcIixcbiAgbmFtZXM6IFtcIlxcXFxjZnJhY1wiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAyXG4gIH0sXG4gIGhhbmRsZXI6IChfcmVmMiwgYXJncykgPT4ge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmMjtcbiAgICB2YXIgbnVtZXIgPSBhcmdzWzBdO1xuICAgIHZhciBkZW5vbSA9IGFyZ3NbMV07XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiZ2VuZnJhY1wiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBjb250aW51ZWQ6IHRydWUsXG4gICAgICBudW1lcixcbiAgICAgIGRlbm9tLFxuICAgICAgaGFzQmFyTGluZTogdHJ1ZSxcbiAgICAgIGxlZnREZWxpbTogbnVsbCxcbiAgICAgIHJpZ2h0RGVsaW06IG51bGwsXG4gICAgICBzaXplOiBcImRpc3BsYXlcIixcbiAgICAgIGJhclNpemU6IG51bGxcbiAgICB9O1xuICB9XG59KTsgLy8gSW5maXggZ2VuZXJhbGl6ZWQgZnJhY3Rpb25zIC0tIHRoZXNlIGFyZSBub3QgcmVuZGVyZWQgZGlyZWN0bHksIGJ1dCByZXBsYWNlZFxuLy8gaW1tZWRpYXRlbHkgYnkgb25lIG9mIHRoZSB2YXJpYW50cyBhYm92ZS5cblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImluZml4XCIsXG4gIG5hbWVzOiBbXCJcXFxcb3ZlclwiLCBcIlxcXFxjaG9vc2VcIiwgXCJcXFxcYXRvcFwiLCBcIlxcXFxicmFjZVwiLCBcIlxcXFxicmFja1wiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAwLFxuICAgIGluZml4OiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmMykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZSxcbiAgICAgIHRva2VuXG4gICAgfSA9IF9yZWYzO1xuICAgIHZhciByZXBsYWNlV2l0aDtcblxuICAgIHN3aXRjaCAoZnVuY05hbWUpIHtcbiAgICAgIGNhc2UgXCJcXFxcb3ZlclwiOlxuICAgICAgICByZXBsYWNlV2l0aCA9IFwiXFxcXGZyYWNcIjtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJcXFxcY2hvb3NlXCI6XG4gICAgICAgIHJlcGxhY2VXaXRoID0gXCJcXFxcYmlub21cIjtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJcXFxcYXRvcFwiOlxuICAgICAgICByZXBsYWNlV2l0aCA9IFwiXFxcXFxcXFxhdG9wZnJhY1wiO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcIlxcXFxicmFjZVwiOlxuICAgICAgICByZXBsYWNlV2l0aCA9IFwiXFxcXFxcXFxicmFjZWZyYWNcIjtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJcXFxcYnJhY2tcIjpcbiAgICAgICAgcmVwbGFjZVdpdGggPSBcIlxcXFxcXFxcYnJhY2tmcmFjXCI7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnJlY29nbml6ZWQgaW5maXggZ2VuZnJhYyBjb21tYW5kXCIpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImluZml4XCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIHJlcGxhY2VXaXRoLFxuICAgICAgdG9rZW5cbiAgICB9O1xuICB9XG5cbn0pO1xudmFyIHN0eWxBcnJheSA9IFtcImRpc3BsYXlcIiwgXCJ0ZXh0XCIsIFwic2NyaXB0XCIsIFwic2NyaXB0c2NyaXB0XCJdO1xuXG52YXIgZGVsaW1Gcm9tVmFsdWUgPSBmdW5jdGlvbiBkZWxpbUZyb21WYWx1ZShkZWxpbVN0cmluZykge1xuICB2YXIgZGVsaW0gPSBudWxsO1xuXG4gIGlmIChkZWxpbVN0cmluZy5sZW5ndGggPiAwKSB7XG4gICAgZGVsaW0gPSBkZWxpbVN0cmluZztcbiAgICBkZWxpbSA9IGRlbGltID09PSBcIi5cIiA/IG51bGwgOiBkZWxpbTtcbiAgfVxuXG4gIHJldHVybiBkZWxpbTtcbn07XG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJnZW5mcmFjXCIsXG4gIG5hbWVzOiBbXCJcXFxcZ2VuZnJhY1wiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiA2LFxuICAgIGFsbG93ZWRJbkFyZ3VtZW50OiB0cnVlLFxuICAgIGFyZ1R5cGVzOiBbXCJtYXRoXCIsIFwibWF0aFwiLCBcInNpemVcIiwgXCJ0ZXh0XCIsIFwibWF0aFwiLCBcIm1hdGhcIl1cbiAgfSxcblxuICBoYW5kbGVyKF9yZWY0LCBhcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmNDtcbiAgICB2YXIgbnVtZXIgPSBhcmdzWzRdO1xuICAgIHZhciBkZW5vbSA9IGFyZ3NbNV07IC8vIExvb2sgaW50byB0aGUgcGFyc2Ugbm9kZXMgdG8gZ2V0IHRoZSBkZXNpcmVkIGRlbGltaXRlcnMuXG5cbiAgICB2YXIgbGVmdE5vZGUgPSBub3JtYWxpemVBcmd1bWVudChhcmdzWzBdKTtcbiAgICB2YXIgbGVmdERlbGltID0gbGVmdE5vZGUudHlwZSA9PT0gXCJhdG9tXCIgJiYgbGVmdE5vZGUuZmFtaWx5ID09PSBcIm9wZW5cIiA/IGRlbGltRnJvbVZhbHVlKGxlZnROb2RlLnRleHQpIDogbnVsbDtcbiAgICB2YXIgcmlnaHROb2RlID0gbm9ybWFsaXplQXJndW1lbnQoYXJnc1sxXSk7XG4gICAgdmFyIHJpZ2h0RGVsaW0gPSByaWdodE5vZGUudHlwZSA9PT0gXCJhdG9tXCIgJiYgcmlnaHROb2RlLmZhbWlseSA9PT0gXCJjbG9zZVwiID8gZGVsaW1Gcm9tVmFsdWUocmlnaHROb2RlLnRleHQpIDogbnVsbDtcbiAgICB2YXIgYmFyTm9kZSA9IGFzc2VydE5vZGVUeXBlKGFyZ3NbMl0sIFwic2l6ZVwiKTtcbiAgICB2YXIgaGFzQmFyTGluZTtcbiAgICB2YXIgYmFyU2l6ZSA9IG51bGw7XG5cbiAgICBpZiAoYmFyTm9kZS5pc0JsYW5rKSB7XG4gICAgICAvLyBcXGdlbmZyYWMgYWN0cyBkaWZmZXJlbnRseSB0aGFuIFxcYWJvdmUuXG4gICAgICAvLyBcXGdlbmZyYWMgdHJlYXRzIGFuIGVtcHR5IHNpemUgZ3JvdXAgYXMgYSBzaWduYWwgdG8gdXNlIGFcbiAgICAgIC8vIHN0YW5kYXJkIGJhciBzaXplLiBcXGFib3ZlIHdvdWxkIHNlZSBzaXplID0gMCBhbmQgb21pdCB0aGUgYmFyLlxuICAgICAgaGFzQmFyTGluZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhclNpemUgPSBiYXJOb2RlLnZhbHVlO1xuICAgICAgaGFzQmFyTGluZSA9IGJhclNpemUubnVtYmVyID4gMDtcbiAgICB9IC8vIEZpbmQgb3V0IGlmIHdlIHdhbnQgZGlzcGxheXN0eWxlLCB0ZXh0c3R5bGUsIGV0Yy5cblxuXG4gICAgdmFyIHNpemUgPSBcImF1dG9cIjtcbiAgICB2YXIgc3R5bCA9IGFyZ3NbM107XG5cbiAgICBpZiAoc3R5bC50eXBlID09PSBcIm9yZGdyb3VwXCIpIHtcbiAgICAgIGlmIChzdHlsLmJvZHkubGVuZ3RoID4gMCkge1xuICAgICAgICB2YXIgdGV4dE9yZCA9IGFzc2VydE5vZGVUeXBlKHN0eWwuYm9keVswXSwgXCJ0ZXh0b3JkXCIpO1xuICAgICAgICBzaXplID0gc3R5bEFycmF5W051bWJlcih0ZXh0T3JkLnRleHQpXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bCA9IGFzc2VydE5vZGVUeXBlKHN0eWwsIFwidGV4dG9yZFwiKTtcbiAgICAgIHNpemUgPSBzdHlsQXJyYXlbTnVtYmVyKHN0eWwudGV4dCldO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImdlbmZyYWNcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgbnVtZXIsXG4gICAgICBkZW5vbSxcbiAgICAgIGNvbnRpbnVlZDogZmFsc2UsXG4gICAgICBoYXNCYXJMaW5lLFxuICAgICAgYmFyU2l6ZSxcbiAgICAgIGxlZnREZWxpbSxcbiAgICAgIHJpZ2h0RGVsaW0sXG4gICAgICBzaXplXG4gICAgfTtcbiAgfSxcblxuICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIkNCxcbiAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlciQzXG59KTsgLy8gXFxhYm92ZSBpcyBhbiBpbmZpeCBmcmFjdGlvbiB0aGF0IGFsc28gZGVmaW5lcyBhIGZyYWN0aW9uIGJhciBzaXplLlxuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiaW5maXhcIixcbiAgbmFtZXM6IFtcIlxcXFxhYm92ZVwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIGFyZ1R5cGVzOiBbXCJzaXplXCJdLFxuICAgIGluZml4OiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmNSwgYXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZSxcbiAgICAgIHRva2VuXG4gICAgfSA9IF9yZWY1O1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImluZml4XCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIHJlcGxhY2VXaXRoOiBcIlxcXFxcXFxcYWJvdmVmcmFjXCIsXG4gICAgICBzaXplOiBhc3NlcnROb2RlVHlwZShhcmdzWzBdLCBcInNpemVcIikudmFsdWUsXG4gICAgICB0b2tlblxuICAgIH07XG4gIH1cblxufSk7XG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiZ2VuZnJhY1wiLFxuICBuYW1lczogW1wiXFxcXFxcXFxhYm92ZWZyYWNcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMyxcbiAgICBhcmdUeXBlczogW1wibWF0aFwiLCBcInNpemVcIiwgXCJtYXRoXCJdXG4gIH0sXG4gIGhhbmRsZXI6IChfcmVmNiwgYXJncykgPT4ge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmNjtcbiAgICB2YXIgbnVtZXIgPSBhcmdzWzBdO1xuICAgIHZhciBiYXJTaXplID0gYXNzZXJ0KGFzc2VydE5vZGVUeXBlKGFyZ3NbMV0sIFwiaW5maXhcIikuc2l6ZSk7XG4gICAgdmFyIGRlbm9tID0gYXJnc1syXTtcbiAgICB2YXIgaGFzQmFyTGluZSA9IGJhclNpemUubnVtYmVyID4gMDtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJnZW5mcmFjXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIG51bWVyLFxuICAgICAgZGVub20sXG4gICAgICBjb250aW51ZWQ6IGZhbHNlLFxuICAgICAgaGFzQmFyTGluZSxcbiAgICAgIGJhclNpemUsXG4gICAgICBsZWZ0RGVsaW06IG51bGwsXG4gICAgICByaWdodERlbGltOiBudWxsLFxuICAgICAgc2l6ZTogXCJhdXRvXCJcbiAgICB9O1xuICB9LFxuICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIkNCxcbiAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlciQzXG59KTtcblxuLy8gTk9URTogVW5saWtlIG1vc3QgYGh0bWxCdWlsZGVyYHMsIHRoaXMgb25lIGhhbmRsZXMgbm90IG9ubHkgXCJob3JpekJyYWNlXCIsIGJ1dFxuLy8gYWxzbyBcInN1cHN1YlwiIHNpbmNlIGFuIG92ZXIvdW5kZXJicmFjZSBjYW4gYWZmZWN0IHN1cGVyL3N1YnNjcmlwdGluZy5cbnZhciBodG1sQnVpbGRlciQzID0gKGdycCwgb3B0aW9ucykgPT4ge1xuICB2YXIgc3R5bGUgPSBvcHRpb25zLnN0eWxlOyAvLyBQdWxsIG91dCB0aGUgYFBhcnNlTm9kZTxcImhvcml6QnJhY2VcIj5gIGlmIGBncnBgIGlzIGEgXCJzdXBzdWJcIiBub2RlLlxuXG4gIHZhciBzdXBTdWJHcm91cDtcbiAgdmFyIGdyb3VwO1xuXG4gIGlmIChncnAudHlwZSA9PT0gXCJzdXBzdWJcIikge1xuICAgIC8vIFJlZjogTGFUZVggc291cmNlMmU6IH19fX1cXGxpbWl0c31cbiAgICAvLyBpLmUuIExhVGVYIHRyZWF0cyB0aGUgYnJhY2Ugc2ltaWxhciB0byBhbiBvcCBhbmQgcGFzc2VzIGl0XG4gICAgLy8gd2l0aCBcXGxpbWl0cywgc28gd2UgbmVlZCB0byBhc3NpZ24gc3Vwc3ViIHN0eWxlLlxuICAgIHN1cFN1Ykdyb3VwID0gZ3JwLnN1cCA/IGJ1aWxkR3JvdXAkMShncnAuc3VwLCBvcHRpb25zLmhhdmluZ1N0eWxlKHN0eWxlLnN1cCgpKSwgb3B0aW9ucykgOiBidWlsZEdyb3VwJDEoZ3JwLnN1Yiwgb3B0aW9ucy5oYXZpbmdTdHlsZShzdHlsZS5zdWIoKSksIG9wdGlvbnMpO1xuICAgIGdyb3VwID0gYXNzZXJ0Tm9kZVR5cGUoZ3JwLmJhc2UsIFwiaG9yaXpCcmFjZVwiKTtcbiAgfSBlbHNlIHtcbiAgICBncm91cCA9IGFzc2VydE5vZGVUeXBlKGdycCwgXCJob3JpekJyYWNlXCIpO1xuICB9IC8vIEJ1aWxkIHRoZSBiYXNlIGdyb3VwXG5cblxuICB2YXIgYm9keSA9IGJ1aWxkR3JvdXAkMShncm91cC5iYXNlLCBvcHRpb25zLmhhdmluZ0Jhc2VTdHlsZShTdHlsZSQxLkRJU1BMQVkpKTsgLy8gQ3JlYXRlIHRoZSBzdHJldGNoeSBlbGVtZW50XG5cbiAgdmFyIGJyYWNlQm9keSA9IHN0cmV0Y2h5LnN2Z1NwYW4oZ3JvdXAsIG9wdGlvbnMpOyAvLyBHZW5lcmF0ZSB0aGUgdmxpc3QsIHdpdGggdGhlIGFwcHJvcHJpYXRlIGtlcm5zICAgICAgICDilI/ilIHilIHilIHilIHilIHilIHilIHilIHilJNcbiAgLy8gVGhpcyBmaXJzdCB2bGlzdCBjb250YWlucyB0aGUgY29udGVudCBhbmQgdGhlIGJyYWNlOiAgIGVxdWF0aW9uXG5cbiAgdmFyIHZsaXN0O1xuXG4gIGlmIChncm91cC5pc092ZXIpIHtcbiAgICB2bGlzdCA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwiZmlyc3RCYXNlbGluZVwiLFxuICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBib2R5XG4gICAgICB9LCB7XG4gICAgICAgIHR5cGU6IFwia2VyblwiLFxuICAgICAgICBzaXplOiAwLjFcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGJyYWNlQm9keVxuICAgICAgfV1cbiAgICB9LCBvcHRpb25zKTsgLy8gJEZsb3dGaXhNZTogUmVwbGFjZSB0aGlzIHdpdGggcGFzc2luZyBcInN2Zy1hbGlnblwiIGludG8gbWFrZVZMaXN0LlxuXG4gICAgdmxpc3QuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2xhc3Nlcy5wdXNoKFwic3ZnLWFsaWduXCIpO1xuICB9IGVsc2Uge1xuICAgIHZsaXN0ID0gYnVpbGRDb21tb24ubWFrZVZMaXN0KHtcbiAgICAgIHBvc2l0aW9uVHlwZTogXCJib3R0b21cIixcbiAgICAgIHBvc2l0aW9uRGF0YTogYm9keS5kZXB0aCArIDAuMSArIGJyYWNlQm9keS5oZWlnaHQsXG4gICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGJyYWNlQm9keVxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogMC4xXG4gICAgICB9LCB7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBib2R5XG4gICAgICB9XVxuICAgIH0sIG9wdGlvbnMpOyAvLyAkRmxvd0ZpeE1lOiBSZXBsYWNlIHRoaXMgd2l0aCBwYXNzaW5nIFwic3ZnLWFsaWduXCIgaW50byBtYWtlVkxpc3QuXG5cbiAgICB2bGlzdC5jaGlsZHJlblswXS5jaGlsZHJlblswXS5jaGlsZHJlblswXS5jbGFzc2VzLnB1c2goXCJzdmctYWxpZ25cIik7XG4gIH1cblxuICBpZiAoc3VwU3ViR3JvdXApIHtcbiAgICAvLyBUbyB3cml0ZSB0aGUgc3Vwc3ViLCB3cmFwIHRoZSBmaXJzdCB2bGlzdCBpbiBhbm90aGVyIHZsaXN0OlxuICAgIC8vIFRoZXkgY2FuJ3QgYWxsIGdvIGluIHRoZSBzYW1lIHZsaXN0LCBiZWNhdXNlIHRoZSBub3RlIG1pZ2h0IGJlXG4gICAgLy8gd2lkZXIgdGhhbiB0aGUgZXF1YXRpb24uIFdlIHdhbnQgdGhlIGVxdWF0aW9uIHRvIGNvbnRyb2wgdGhlXG4gICAgLy8gYnJhY2Ugd2lkdGguXG4gICAgLy8gICAgICBub3RlICAgICAgICAgIGxvbmcgbm90ZSAgICAgICAgICAgbG9uZyBub3RlXG4gICAgLy8gICDilI/ilIHilIHilIHilIHilIHilIHilIHilIHilJMgICBvciAgICDilI/ilIHilIHilIHilJMgICAgIG5vdCAgICDilI/ilIHilIHilIHilIHilIHilIHilIHilIHilIHilJNcbiAgICAvLyAgICBlcXVhdGlvbiAgICAgICAgICAgZXFuICAgICAgICAgICAgICAgICBlcW5cbiAgICB2YXIgdlNwYW4gPSBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJtb3JkXCIsIGdyb3VwLmlzT3ZlciA/IFwibW92ZXJcIiA6IFwibXVuZGVyXCJdLCBbdmxpc3RdLCBvcHRpb25zKTtcblxuICAgIGlmIChncm91cC5pc092ZXIpIHtcbiAgICAgIHZsaXN0ID0gYnVpbGRDb21tb24ubWFrZVZMaXN0KHtcbiAgICAgICAgcG9zaXRpb25UeXBlOiBcImZpcnN0QmFzZWxpbmVcIixcbiAgICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgICAgZWxlbTogdlNwYW5cbiAgICAgICAgfSwge1xuICAgICAgICAgIHR5cGU6IFwia2VyblwiLFxuICAgICAgICAgIHNpemU6IDAuMlxuICAgICAgICB9LCB7XG4gICAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgICAgZWxlbTogc3VwU3ViR3JvdXBcbiAgICAgICAgfV1cbiAgICAgIH0sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2bGlzdCA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICAgIHBvc2l0aW9uVHlwZTogXCJib3R0b21cIixcbiAgICAgICAgcG9zaXRpb25EYXRhOiB2U3Bhbi5kZXB0aCArIDAuMiArIHN1cFN1Ykdyb3VwLmhlaWdodCArIHN1cFN1Ykdyb3VwLmRlcHRoLFxuICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgICBlbGVtOiBzdXBTdWJHcm91cFxuICAgICAgICB9LCB7XG4gICAgICAgICAgdHlwZTogXCJrZXJuXCIsXG4gICAgICAgICAgc2l6ZTogMC4yXG4gICAgICAgIH0sIHtcbiAgICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgICBlbGVtOiB2U3BhblxuICAgICAgICB9XVxuICAgICAgfSwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1vcmRcIiwgZ3JvdXAuaXNPdmVyID8gXCJtb3ZlclwiIDogXCJtdW5kZXJcIl0sIFt2bGlzdF0sIG9wdGlvbnMpO1xufTtcblxudmFyIG1hdGhtbEJ1aWxkZXIkMiA9IChncm91cCwgb3B0aW9ucykgPT4ge1xuICB2YXIgYWNjZW50Tm9kZSA9IHN0cmV0Y2h5Lm1hdGhNTG5vZGUoZ3JvdXAubGFiZWwpO1xuICByZXR1cm4gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoZ3JvdXAuaXNPdmVyID8gXCJtb3ZlclwiIDogXCJtdW5kZXJcIiwgW2J1aWxkR3JvdXAoZ3JvdXAuYmFzZSwgb3B0aW9ucyksIGFjY2VudE5vZGVdKTtcbn07IC8vIEhvcml6b250YWwgc3RyZXRjaHkgYnJhY2VzXG5cblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImhvcml6QnJhY2VcIixcbiAgbmFtZXM6IFtcIlxcXFxvdmVyYnJhY2VcIiwgXCJcXFxcdW5kZXJicmFjZVwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmLCBhcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlcixcbiAgICAgIGZ1bmNOYW1lXG4gICAgfSA9IF9yZWY7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiaG9yaXpCcmFjZVwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBsYWJlbDogZnVuY05hbWUsXG4gICAgICBpc092ZXI6IC9eXFxcXG92ZXIvLnRlc3QoZnVuY05hbWUpLFxuICAgICAgYmFzZTogYXJnc1swXVxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDMsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkMlxufSk7XG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJocmVmXCIsXG4gIG5hbWVzOiBbXCJcXFxcaHJlZlwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAyLFxuICAgIGFyZ1R5cGVzOiBbXCJ1cmxcIiwgXCJvcmlnaW5hbFwiXSxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG4gIGhhbmRsZXI6IChfcmVmLCBhcmdzKSA9PiB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBib2R5ID0gYXJnc1sxXTtcbiAgICB2YXIgaHJlZiA9IGFzc2VydE5vZGVUeXBlKGFyZ3NbMF0sIFwidXJsXCIpLnVybDtcblxuICAgIGlmICghcGFyc2VyLnNldHRpbmdzLmlzVHJ1c3RlZCh7XG4gICAgICBjb21tYW5kOiBcIlxcXFxocmVmXCIsXG4gICAgICB1cmw6IGhyZWZcbiAgICB9KSkge1xuICAgICAgcmV0dXJuIHBhcnNlci5mb3JtYXRVbnN1cHBvcnRlZENtZChcIlxcXFxocmVmXCIpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImhyZWZcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgaHJlZixcbiAgICAgIGJvZHk6IG9yZGFyZ3VtZW50KGJvZHkpXG4gICAgfTtcbiAgfSxcbiAgaHRtbEJ1aWxkZXI6IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAgIHZhciBlbGVtZW50cyA9IGJ1aWxkRXhwcmVzc2lvbiQxKGdyb3VwLmJvZHksIG9wdGlvbnMsIGZhbHNlKTtcbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZUFuY2hvcihncm91cC5ocmVmLCBbXSwgZWxlbWVudHMsIG9wdGlvbnMpO1xuICB9LFxuICBtYXRobWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICB2YXIgbWF0aCA9IGJ1aWxkRXhwcmVzc2lvblJvdyhncm91cC5ib2R5LCBvcHRpb25zKTtcblxuICAgIGlmICghKG1hdGggaW5zdGFuY2VvZiBNYXRoTm9kZSkpIHtcbiAgICAgIG1hdGggPSBuZXcgTWF0aE5vZGUoXCJtcm93XCIsIFttYXRoXSk7XG4gICAgfVxuXG4gICAgbWF0aC5zZXRBdHRyaWJ1dGUoXCJocmVmXCIsIGdyb3VwLmhyZWYpO1xuICAgIHJldHVybiBtYXRoO1xuICB9XG59KTtcbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJocmVmXCIsXG4gIG5hbWVzOiBbXCJcXFxcdXJsXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDEsXG4gICAgYXJnVHlwZXM6IFtcInVybFwiXSxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG4gIGhhbmRsZXI6IChfcmVmMiwgYXJncykgPT4ge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXJcbiAgICB9ID0gX3JlZjI7XG4gICAgdmFyIGhyZWYgPSBhc3NlcnROb2RlVHlwZShhcmdzWzBdLCBcInVybFwiKS51cmw7XG5cbiAgICBpZiAoIXBhcnNlci5zZXR0aW5ncy5pc1RydXN0ZWQoe1xuICAgICAgY29tbWFuZDogXCJcXFxcdXJsXCIsXG4gICAgICB1cmw6IGhyZWZcbiAgICB9KSkge1xuICAgICAgcmV0dXJuIHBhcnNlci5mb3JtYXRVbnN1cHBvcnRlZENtZChcIlxcXFx1cmxcIik7XG4gICAgfVxuXG4gICAgdmFyIGNoYXJzID0gW107XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhyZWYubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjID0gaHJlZltpXTtcblxuICAgICAgaWYgKGMgPT09IFwiflwiKSB7XG4gICAgICAgIGMgPSBcIlxcXFx0ZXh0YXNjaWl0aWxkZVwiO1xuICAgICAgfVxuXG4gICAgICBjaGFycy5wdXNoKHtcbiAgICAgICAgdHlwZTogXCJ0ZXh0b3JkXCIsXG4gICAgICAgIG1vZGU6IFwidGV4dFwiLFxuICAgICAgICB0ZXh0OiBjXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB2YXIgYm9keSA9IHtcbiAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBmb250OiBcIlxcXFx0ZXh0dHRcIixcbiAgICAgIGJvZHk6IGNoYXJzXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJocmVmXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGhyZWYsXG4gICAgICBib2R5OiBvcmRhcmd1bWVudChib2R5KVxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBJbiBMYVRlWCwgXFx2Y2VudGVyIGNhbiBhY3Qgb25seSBvbiBhIGJveCwgYXMgaW5cbi8vIFxcdmNlbnRlcntcXGhib3h7JFxcZnJhY3thK2J9e1xcZGZyYWN7Y317ZH19JH19XG4vLyBUaGlzIGZ1bmN0aW9uIGJ5IGl0c2VsZiBkb2Vzbid0IGRvIGFueXRoaW5nIGJ1dCBwcmV2ZW50IGEgc29mdCBsaW5lIGJyZWFrLlxuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiaGJveFwiLFxuICBuYW1lczogW1wiXFxcXGhib3hcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBhcmdUeXBlczogW1widGV4dFwiXSxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlLFxuICAgIHByaW1pdGl2ZTogdHJ1ZVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZiwgYXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXJcbiAgICB9ID0gX3JlZjtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJoYm94XCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGJvZHk6IG9yZGFyZ3VtZW50KGFyZ3NbMF0pXG4gICAgfTtcbiAgfSxcblxuICBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBlbGVtZW50cyA9IGJ1aWxkRXhwcmVzc2lvbiQxKGdyb3VwLmJvZHksIG9wdGlvbnMsIGZhbHNlKTtcbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZUZyYWdtZW50KGVsZW1lbnRzKTtcbiAgfSxcblxuICBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXJvd1wiLCBidWlsZEV4cHJlc3Npb24oZ3JvdXAuYm9keSwgb3B0aW9ucykpO1xuICB9XG5cbn0pO1xuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiaHRtbFwiLFxuICBuYW1lczogW1wiXFxcXGh0bWxDbGFzc1wiLCBcIlxcXFxodG1sSWRcIiwgXCJcXFxcaHRtbFN0eWxlXCIsIFwiXFxcXGh0bWxEYXRhXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDIsXG4gICAgYXJnVHlwZXM6IFtcInJhd1wiLCBcIm9yaWdpbmFsXCJdLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWVcbiAgfSxcbiAgaGFuZGxlcjogKF9yZWYsIGFyZ3MpID0+IHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyLFxuICAgICAgZnVuY05hbWUsXG4gICAgICB0b2tlblxuICAgIH0gPSBfcmVmO1xuICAgIHZhciB2YWx1ZSA9IGFzc2VydE5vZGVUeXBlKGFyZ3NbMF0sIFwicmF3XCIpLnN0cmluZztcbiAgICB2YXIgYm9keSA9IGFyZ3NbMV07XG5cbiAgICBpZiAocGFyc2VyLnNldHRpbmdzLnN0cmljdCkge1xuICAgICAgcGFyc2VyLnNldHRpbmdzLnJlcG9ydE5vbnN0cmljdChcImh0bWxFeHRlbnNpb25cIiwgXCJIVE1MIGV4dGVuc2lvbiBpcyBkaXNhYmxlZCBvbiBzdHJpY3QgbW9kZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgdHJ1c3RDb250ZXh0O1xuICAgIHZhciBhdHRyaWJ1dGVzID0ge307XG5cbiAgICBzd2l0Y2ggKGZ1bmNOYW1lKSB7XG4gICAgICBjYXNlIFwiXFxcXGh0bWxDbGFzc1wiOlxuICAgICAgICBhdHRyaWJ1dGVzLmNsYXNzID0gdmFsdWU7XG4gICAgICAgIHRydXN0Q29udGV4dCA9IHtcbiAgICAgICAgICBjb21tYW5kOiBcIlxcXFxodG1sQ2xhc3NcIixcbiAgICAgICAgICBjbGFzczogdmFsdWVcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJcXFxcaHRtbElkXCI6XG4gICAgICAgIGF0dHJpYnV0ZXMuaWQgPSB2YWx1ZTtcbiAgICAgICAgdHJ1c3RDb250ZXh0ID0ge1xuICAgICAgICAgIGNvbW1hbmQ6IFwiXFxcXGh0bWxJZFwiLFxuICAgICAgICAgIGlkOiB2YWx1ZVxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcIlxcXFxodG1sU3R5bGVcIjpcbiAgICAgICAgYXR0cmlidXRlcy5zdHlsZSA9IHZhbHVlO1xuICAgICAgICB0cnVzdENvbnRleHQgPSB7XG4gICAgICAgICAgY29tbWFuZDogXCJcXFxcaHRtbFN0eWxlXCIsXG4gICAgICAgICAgc3R5bGU6IHZhbHVlXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwiXFxcXGh0bWxEYXRhXCI6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IHZhbHVlLnNwbGl0KFwiLFwiKTtcblxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGtleVZhbCA9IGRhdGFbaV0uc3BsaXQoXCI9XCIpO1xuXG4gICAgICAgICAgICBpZiAoa2V5VmFsLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkVycm9yIHBhcnNpbmcga2V5LXZhbHVlIGZvciBcXFxcaHRtbERhdGFcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF0dHJpYnV0ZXNbXCJkYXRhLVwiICsga2V5VmFsWzBdLnRyaW0oKV0gPSBrZXlWYWxbMV0udHJpbSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRydXN0Q29udGV4dCA9IHtcbiAgICAgICAgICAgIGNvbW1hbmQ6IFwiXFxcXGh0bWxEYXRhXCIsXG4gICAgICAgICAgICBhdHRyaWJ1dGVzXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnJlY29nbml6ZWQgaHRtbCBjb21tYW5kXCIpO1xuICAgIH1cblxuICAgIGlmICghcGFyc2VyLnNldHRpbmdzLmlzVHJ1c3RlZCh0cnVzdENvbnRleHQpKSB7XG4gICAgICByZXR1cm4gcGFyc2VyLmZvcm1hdFVuc3VwcG9ydGVkQ21kKGZ1bmNOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJodG1sXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICBib2R5OiBvcmRhcmd1bWVudChib2R5KVxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICB2YXIgZWxlbWVudHMgPSBidWlsZEV4cHJlc3Npb24kMShncm91cC5ib2R5LCBvcHRpb25zLCBmYWxzZSk7XG4gICAgdmFyIGNsYXNzZXMgPSBbXCJlbmNsb3NpbmdcIl07XG5cbiAgICBpZiAoZ3JvdXAuYXR0cmlidXRlcy5jbGFzcykge1xuICAgICAgY2xhc3Nlcy5wdXNoKC4uLmdyb3VwLmF0dHJpYnV0ZXMuY2xhc3MudHJpbSgpLnNwbGl0KC9cXHMrLykpO1xuICAgIH1cblxuICAgIHZhciBzcGFuID0gYnVpbGRDb21tb24ubWFrZVNwYW4oY2xhc3NlcywgZWxlbWVudHMsIG9wdGlvbnMpO1xuXG4gICAgZm9yICh2YXIgYXR0ciBpbiBncm91cC5hdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAoYXR0ciAhPT0gXCJjbGFzc1wiICYmIGdyb3VwLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoYXR0cikpIHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoYXR0ciwgZ3JvdXAuYXR0cmlidXRlc1thdHRyXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNwYW47XG4gIH0sXG4gIG1hdGhtbEJ1aWxkZXI6IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBidWlsZEV4cHJlc3Npb25Sb3coZ3JvdXAuYm9keSwgb3B0aW9ucyk7XG4gIH1cbn0pO1xuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiaHRtbG1hdGhtbFwiLFxuICBuYW1lczogW1wiXFxcXGh0bWxAbWF0aG1sXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDIsXG4gICAgYWxsb3dlZEluVGV4dDogdHJ1ZVxuICB9LFxuICBoYW5kbGVyOiAoX3JlZiwgYXJncykgPT4ge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXJcbiAgICB9ID0gX3JlZjtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJodG1sbWF0aG1sXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGh0bWw6IG9yZGFyZ3VtZW50KGFyZ3NbMF0pLFxuICAgICAgbWF0aG1sOiBvcmRhcmd1bWVudChhcmdzWzFdKVxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICB2YXIgZWxlbWVudHMgPSBidWlsZEV4cHJlc3Npb24kMShncm91cC5odG1sLCBvcHRpb25zLCBmYWxzZSk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VGcmFnbWVudChlbGVtZW50cyk7XG4gIH0sXG4gIG1hdGhtbEJ1aWxkZXI6IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBidWlsZEV4cHJlc3Npb25Sb3coZ3JvdXAubWF0aG1sLCBvcHRpb25zKTtcbiAgfVxufSk7XG5cbnZhciBzaXplRGF0YSA9IGZ1bmN0aW9uIHNpemVEYXRhKHN0cikge1xuICBpZiAoL15bLStdPyAqKFxcZCsoXFwuXFxkKik/fFxcLlxcZCspJC8udGVzdChzdHIpKSB7XG4gICAgLy8gc3RyIGlzIGEgbnVtYmVyIHdpdGggbm8gdW5pdCBzcGVjaWZpZWQuXG4gICAgLy8gZGVmYXVsdCB1bml0IGlzIGJwLCBwZXIgZ3JhcGhpeCBwYWNrYWdlLlxuICAgIHJldHVybiB7XG4gICAgICBudW1iZXI6ICtzdHIsXG4gICAgICB1bml0OiBcImJwXCJcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHZhciBtYXRjaCA9IC8oWy0rXT8pICooXFxkKyg/OlxcLlxcZCopP3xcXC5cXGQrKSAqKFthLXpdezJ9KS8uZXhlYyhzdHIpO1xuXG4gICAgaWYgKCFtYXRjaCkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJJbnZhbGlkIHNpemU6ICdcIiArIHN0ciArIFwiJyBpbiBcXFxcaW5jbHVkZWdyYXBoaWNzXCIpO1xuICAgIH1cblxuICAgIHZhciBkYXRhID0ge1xuICAgICAgbnVtYmVyOiArKG1hdGNoWzFdICsgbWF0Y2hbMl0pLFxuICAgICAgLy8gc2lnbiArIG1hZ25pdHVkZSwgY2FzdCB0byBudW1iZXJcbiAgICAgIHVuaXQ6IG1hdGNoWzNdXG4gICAgfTtcblxuICAgIGlmICghdmFsaWRVbml0KGRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkludmFsaWQgdW5pdDogJ1wiICsgZGF0YS51bml0ICsgXCInIGluIFxcXFxpbmNsdWRlZ3JhcGhpY3MuXCIpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XG59O1xuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiaW5jbHVkZWdyYXBoaWNzXCIsXG4gIG5hbWVzOiBbXCJcXFxcaW5jbHVkZWdyYXBoaWNzXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDEsXG4gICAgbnVtT3B0aW9uYWxBcmdzOiAxLFxuICAgIGFyZ1R5cGVzOiBbXCJyYXdcIiwgXCJ1cmxcIl0sXG4gICAgYWxsb3dlZEluVGV4dDogZmFsc2VcbiAgfSxcbiAgaGFuZGxlcjogKF9yZWYsIGFyZ3MsIG9wdEFyZ3MpID0+IHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyXG4gICAgfSA9IF9yZWY7XG4gICAgdmFyIHdpZHRoID0ge1xuICAgICAgbnVtYmVyOiAwLFxuICAgICAgdW5pdDogXCJlbVwiXG4gICAgfTtcbiAgICB2YXIgaGVpZ2h0ID0ge1xuICAgICAgbnVtYmVyOiAwLjksXG4gICAgICB1bml0OiBcImVtXCJcbiAgICB9OyAvLyBzb3J0YSBjaGFyYWN0ZXIgc2l6ZWQuXG5cbiAgICB2YXIgdG90YWxoZWlnaHQgPSB7XG4gICAgICBudW1iZXI6IDAsXG4gICAgICB1bml0OiBcImVtXCJcbiAgICB9O1xuICAgIHZhciBhbHQgPSBcIlwiO1xuXG4gICAgaWYgKG9wdEFyZ3NbMF0pIHtcbiAgICAgIHZhciBhdHRyaWJ1dGVTdHIgPSBhc3NlcnROb2RlVHlwZShvcHRBcmdzWzBdLCBcInJhd1wiKS5zdHJpbmc7IC8vIFBhcnNlci5qcyBkb2VzIG5vdCBwYXJzZSBrZXkvdmFsdWUgcGFpcnMuIFdlIGdldCBhIHN0cmluZy5cblxuICAgICAgdmFyIGF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVTdHIuc3BsaXQoXCIsXCIpO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGtleVZhbCA9IGF0dHJpYnV0ZXNbaV0uc3BsaXQoXCI9XCIpO1xuXG4gICAgICAgIGlmIChrZXlWYWwubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgdmFyIHN0ciA9IGtleVZhbFsxXS50cmltKCk7XG5cbiAgICAgICAgICBzd2l0Y2ggKGtleVZhbFswXS50cmltKCkpIHtcbiAgICAgICAgICAgIGNhc2UgXCJhbHRcIjpcbiAgICAgICAgICAgICAgYWx0ID0gc3RyO1xuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBcIndpZHRoXCI6XG4gICAgICAgICAgICAgIHdpZHRoID0gc2l6ZURhdGEoc3RyKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgXCJoZWlnaHRcIjpcbiAgICAgICAgICAgICAgaGVpZ2h0ID0gc2l6ZURhdGEoc3RyKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgXCJ0b3RhbGhlaWdodFwiOlxuICAgICAgICAgICAgICB0b3RhbGhlaWdodCA9IHNpemVEYXRhKHN0cik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkludmFsaWQga2V5OiAnXCIgKyBrZXlWYWxbMF0gKyBcIicgaW4gXFxcXGluY2x1ZGVncmFwaGljcy5cIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHNyYyA9IGFzc2VydE5vZGVUeXBlKGFyZ3NbMF0sIFwidXJsXCIpLnVybDtcblxuICAgIGlmIChhbHQgPT09IFwiXCIpIHtcbiAgICAgIC8vIE5vIGFsdCBnaXZlbi4gVXNlIHRoZSBmaWxlIG5hbWUuIFN0cmlwIGF3YXkgdGhlIHBhdGguXG4gICAgICBhbHQgPSBzcmM7XG4gICAgICBhbHQgPSBhbHQucmVwbGFjZSgvXi4qW1xcXFwvXS8sICcnKTtcbiAgICAgIGFsdCA9IGFsdC5zdWJzdHJpbmcoMCwgYWx0Lmxhc3RJbmRleE9mKCcuJykpO1xuICAgIH1cblxuICAgIGlmICghcGFyc2VyLnNldHRpbmdzLmlzVHJ1c3RlZCh7XG4gICAgICBjb21tYW5kOiBcIlxcXFxpbmNsdWRlZ3JhcGhpY3NcIixcbiAgICAgIHVybDogc3JjXG4gICAgfSkpIHtcbiAgICAgIHJldHVybiBwYXJzZXIuZm9ybWF0VW5zdXBwb3J0ZWRDbWQoXCJcXFxcaW5jbHVkZWdyYXBoaWNzXCIpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImluY2x1ZGVncmFwaGljc1wiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBhbHQ6IGFsdCxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgdG90YWxoZWlnaHQ6IHRvdGFsaGVpZ2h0LFxuICAgICAgc3JjOiBzcmNcbiAgICB9O1xuICB9LFxuICBodG1sQnVpbGRlcjogKGdyb3VwLCBvcHRpb25zKSA9PiB7XG4gICAgdmFyIGhlaWdodCA9IGNhbGN1bGF0ZVNpemUoZ3JvdXAuaGVpZ2h0LCBvcHRpb25zKTtcbiAgICB2YXIgZGVwdGggPSAwO1xuXG4gICAgaWYgKGdyb3VwLnRvdGFsaGVpZ2h0Lm51bWJlciA+IDApIHtcbiAgICAgIGRlcHRoID0gY2FsY3VsYXRlU2l6ZShncm91cC50b3RhbGhlaWdodCwgb3B0aW9ucykgLSBoZWlnaHQ7XG4gICAgfVxuXG4gICAgdmFyIHdpZHRoID0gMDtcblxuICAgIGlmIChncm91cC53aWR0aC5udW1iZXIgPiAwKSB7XG4gICAgICB3aWR0aCA9IGNhbGN1bGF0ZVNpemUoZ3JvdXAud2lkdGgsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHZhciBzdHlsZSA9IHtcbiAgICAgIGhlaWdodDogbWFrZUVtKGhlaWdodCArIGRlcHRoKVxuICAgIH07XG5cbiAgICBpZiAod2lkdGggPiAwKSB7XG4gICAgICBzdHlsZS53aWR0aCA9IG1ha2VFbSh3aWR0aCk7XG4gICAgfVxuXG4gICAgaWYgKGRlcHRoID4gMCkge1xuICAgICAgc3R5bGUudmVydGljYWxBbGlnbiA9IG1ha2VFbSgtZGVwdGgpO1xuICAgIH1cblxuICAgIHZhciBub2RlID0gbmV3IEltZyhncm91cC5zcmMsIGdyb3VwLmFsdCwgc3R5bGUpO1xuICAgIG5vZGUuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgIG5vZGUuZGVwdGggPSBkZXB0aDtcbiAgICByZXR1cm4gbm9kZTtcbiAgfSxcbiAgbWF0aG1sQnVpbGRlcjogKGdyb3VwLCBvcHRpb25zKSA9PiB7XG4gICAgdmFyIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1nbHlwaFwiLCBbXSk7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJhbHRcIiwgZ3JvdXAuYWx0KTtcbiAgICB2YXIgaGVpZ2h0ID0gY2FsY3VsYXRlU2l6ZShncm91cC5oZWlnaHQsIG9wdGlvbnMpO1xuICAgIHZhciBkZXB0aCA9IDA7XG5cbiAgICBpZiAoZ3JvdXAudG90YWxoZWlnaHQubnVtYmVyID4gMCkge1xuICAgICAgZGVwdGggPSBjYWxjdWxhdGVTaXplKGdyb3VwLnRvdGFsaGVpZ2h0LCBvcHRpb25zKSAtIGhlaWdodDtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwidmFsaWduXCIsIG1ha2VFbSgtZGVwdGgpKTtcbiAgICB9XG5cbiAgICBub2RlLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBtYWtlRW0oaGVpZ2h0ICsgZGVwdGgpKTtcblxuICAgIGlmIChncm91cC53aWR0aC5udW1iZXIgPiAwKSB7XG4gICAgICB2YXIgd2lkdGggPSBjYWxjdWxhdGVTaXplKGdyb3VwLndpZHRoLCBvcHRpb25zKTtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgbWFrZUVtKHdpZHRoKSk7XG4gICAgfVxuXG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJzcmNcIiwgZ3JvdXAuc3JjKTtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufSk7XG5cbi8vIEhvcml6b250YWwgc3BhY2luZyBjb21tYW5kc1xuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwia2VyblwiLFxuICBuYW1lczogW1wiXFxcXGtlcm5cIiwgXCJcXFxcbWtlcm5cIiwgXCJcXFxcaHNraXBcIiwgXCJcXFxcbXNraXBcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBhcmdUeXBlczogW1wic2l6ZVwiXSxcbiAgICBwcmltaXRpdmU6IHRydWUsXG4gICAgYWxsb3dlZEluVGV4dDogdHJ1ZVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZiwgYXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBzaXplID0gYXNzZXJ0Tm9kZVR5cGUoYXJnc1swXSwgXCJzaXplXCIpO1xuXG4gICAgaWYgKHBhcnNlci5zZXR0aW5ncy5zdHJpY3QpIHtcbiAgICAgIHZhciBtYXRoRnVuY3Rpb24gPSBmdW5jTmFtZVsxXSA9PT0gJ20nOyAvLyBcXG1rZXJuLCBcXG1za2lwXG5cbiAgICAgIHZhciBtdVVuaXQgPSBzaXplLnZhbHVlLnVuaXQgPT09ICdtdSc7XG5cbiAgICAgIGlmIChtYXRoRnVuY3Rpb24pIHtcbiAgICAgICAgaWYgKCFtdVVuaXQpIHtcbiAgICAgICAgICBwYXJzZXIuc2V0dGluZ3MucmVwb3J0Tm9uc3RyaWN0KFwibWF0aFZzVGV4dFVuaXRzXCIsIFwiTGFUZVgncyBcIiArIGZ1bmNOYW1lICsgXCIgc3VwcG9ydHMgb25seSBtdSB1bml0cywgXCIgKyAoXCJub3QgXCIgKyBzaXplLnZhbHVlLnVuaXQgKyBcIiB1bml0c1wiKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyc2VyLm1vZGUgIT09IFwibWF0aFwiKSB7XG4gICAgICAgICAgcGFyc2VyLnNldHRpbmdzLnJlcG9ydE5vbnN0cmljdChcIm1hdGhWc1RleHRVbml0c1wiLCBcIkxhVGVYJ3MgXCIgKyBmdW5jTmFtZSArIFwiIHdvcmtzIG9ubHkgaW4gbWF0aCBtb2RlXCIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAhbWF0aEZ1bmN0aW9uXG4gICAgICAgIGlmIChtdVVuaXQpIHtcbiAgICAgICAgICBwYXJzZXIuc2V0dGluZ3MucmVwb3J0Tm9uc3RyaWN0KFwibWF0aFZzVGV4dFVuaXRzXCIsIFwiTGFUZVgncyBcIiArIGZ1bmNOYW1lICsgXCIgZG9lc24ndCBzdXBwb3J0IG11IHVuaXRzXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwia2VyblwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBkaW1lbnNpb246IHNpemUudmFsdWVcbiAgICB9O1xuICB9LFxuXG4gIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VHbHVlKGdyb3VwLmRpbWVuc2lvbiwgb3B0aW9ucyk7XG4gIH0sXG5cbiAgbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBkaW1lbnNpb24gPSBjYWxjdWxhdGVTaXplKGdyb3VwLmRpbWVuc2lvbiwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG5ldyBtYXRoTUxUcmVlLlNwYWNlTm9kZShkaW1lbnNpb24pO1xuICB9XG5cbn0pO1xuXG4vLyBIb3Jpem9udGFsIG92ZXJsYXAgZnVuY3Rpb25zXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwibGFwXCIsXG4gIG5hbWVzOiBbXCJcXFxcbWF0aGxsYXBcIiwgXCJcXFxcbWF0aHJsYXBcIiwgXCJcXFxcbWF0aGNsYXBcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG4gIGhhbmRsZXI6IChfcmVmLCBhcmdzKSA9PiB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlcixcbiAgICAgIGZ1bmNOYW1lXG4gICAgfSA9IF9yZWY7XG4gICAgdmFyIGJvZHkgPSBhcmdzWzBdO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImxhcFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBhbGlnbm1lbnQ6IGZ1bmNOYW1lLnNsaWNlKDUpLFxuICAgICAgYm9keVxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICAvLyBtYXRobGxhcCwgbWF0aHJsYXAsIG1hdGhjbGFwXG4gICAgdmFyIGlubmVyO1xuXG4gICAgaWYgKGdyb3VwLmFsaWdubWVudCA9PT0gXCJjbGFwXCIpIHtcbiAgICAgIC8vIHJlZjogaHR0cHM6Ly93d3cubWF0aC5sc3UuZWR1L35hcGVybGlzL3B1YmxpY2F0aW9ucy9tYXRoY2xhcC9cbiAgICAgIGlubmVyID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW10sIFtidWlsZEdyb3VwJDEoZ3JvdXAuYm9keSwgb3B0aW9ucyldKTsgLy8gd3JhcCwgc2luY2UgQ1NTIHdpbGwgY2VudGVyIGEgLmNsYXAgPiAuaW5uZXIgPiBzcGFuXG5cbiAgICAgIGlubmVyID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wiaW5uZXJcIl0sIFtpbm5lcl0sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbm5lciA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcImlubmVyXCJdLCBbYnVpbGRHcm91cCQxKGdyb3VwLmJvZHksIG9wdGlvbnMpXSk7XG4gICAgfVxuXG4gICAgdmFyIGZpeCA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcImZpeFwiXSwgW10pO1xuICAgIHZhciBub2RlID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW2dyb3VwLmFsaWdubWVudF0sIFtpbm5lciwgZml4XSwgb3B0aW9ucyk7IC8vIEF0IHRoaXMgcG9pbnQsIHdlIGhhdmUgY29ycmVjdGx5IHNldCBob3Jpem9udGFsIGFsaWdubWVudCBvZiB0aGVcbiAgICAvLyB0d28gaXRlbXMgaW52b2x2ZWQgaW4gdGhlIGxhcC5cbiAgICAvLyBOZXh0LCB1c2UgYSBzdHJ1dCB0byBzZXQgdGhlIGhlaWdodCBvZiB0aGUgSFRNTCBib3VuZGluZyBib3guXG4gICAgLy8gT3RoZXJ3aXNlLCBhIHRhbGwgYXJndW1lbnQgbWF5IGJlIG1pc3BsYWNlZC5cbiAgICAvLyBUaGlzIGNvZGUgcmVzb2x2ZWQgaXNzdWUgIzExNTNcblxuICAgIHZhciBzdHJ1dCA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcInN0cnV0XCJdKTtcbiAgICBzdHJ1dC5zdHlsZS5oZWlnaHQgPSBtYWtlRW0obm9kZS5oZWlnaHQgKyBub2RlLmRlcHRoKTtcblxuICAgIGlmIChub2RlLmRlcHRoKSB7XG4gICAgICBzdHJ1dC5zdHlsZS52ZXJ0aWNhbEFsaWduID0gbWFrZUVtKC1ub2RlLmRlcHRoKTtcbiAgICB9XG5cbiAgICBub2RlLmNoaWxkcmVuLnVuc2hpZnQoc3RydXQpOyAvLyBOZXh0LCBwcmV2ZW50IHZlcnRpY2FsIG1pc3BsYWNlbWVudCB3aGVuIG5leHQgdG8gc29tZXRoaW5nIHRhbGwuXG4gICAgLy8gVGhpcyBjb2RlIHJlc29sdmVzIGlzc3VlICMxMjM0XG5cbiAgICBub2RlID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1widGhpbmJveFwiXSwgW25vZGVdLCBvcHRpb25zKTtcbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibW9yZFwiLCBcInZib3hcIl0sIFtub2RlXSwgb3B0aW9ucyk7XG4gIH0sXG4gIG1hdGhtbEJ1aWxkZXI6IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAgIC8vIG1hdGhsbGFwLCBtYXRocmxhcCwgbWF0aGNsYXBcbiAgICB2YXIgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXBhZGRlZFwiLCBbYnVpbGRHcm91cChncm91cC5ib2R5LCBvcHRpb25zKV0pO1xuXG4gICAgaWYgKGdyb3VwLmFsaWdubWVudCAhPT0gXCJybGFwXCIpIHtcbiAgICAgIHZhciBvZmZzZXQgPSBncm91cC5hbGlnbm1lbnQgPT09IFwibGxhcFwiID8gXCItMVwiIDogXCItMC41XCI7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShcImxzcGFjZVwiLCBvZmZzZXQgKyBcIndpZHRoXCIpO1xuICAgIH1cblxuICAgIG5vZGUuc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgXCIwcHhcIik7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbn0pO1xuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwic3R5bGluZ1wiLFxuICBuYW1lczogW1wiXFxcXChcIiwgXCIkXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDAsXG4gICAgYWxsb3dlZEluVGV4dDogdHJ1ZSxcbiAgICBhbGxvd2VkSW5NYXRoOiBmYWxzZVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZiwgYXJncykge1xuICAgIHZhciB7XG4gICAgICBmdW5jTmFtZSxcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBvdXRlck1vZGUgPSBwYXJzZXIubW9kZTtcbiAgICBwYXJzZXIuc3dpdGNoTW9kZShcIm1hdGhcIik7XG4gICAgdmFyIGNsb3NlID0gZnVuY05hbWUgPT09IFwiXFxcXChcIiA/IFwiXFxcXClcIiA6IFwiJFwiO1xuICAgIHZhciBib2R5ID0gcGFyc2VyLnBhcnNlRXhwcmVzc2lvbihmYWxzZSwgY2xvc2UpO1xuICAgIHBhcnNlci5leHBlY3QoY2xvc2UpO1xuICAgIHBhcnNlci5zd2l0Y2hNb2RlKG91dGVyTW9kZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwic3R5bGluZ1wiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBzdHlsZTogXCJ0ZXh0XCIsXG4gICAgICBib2R5XG4gICAgfTtcbiAgfVxuXG59KTsgLy8gQ2hlY2sgZm9yIGV4dHJhIGNsb3NpbmcgbWF0aCBkZWxpbWl0ZXJzXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJ0ZXh0XCIsXG4gIC8vIERvZXNuJ3QgbWF0dGVyIHdoYXQgdGhpcyBpcy5cbiAgbmFtZXM6IFtcIlxcXFwpXCIsIFwiXFxcXF1cIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMCxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlLFxuICAgIGFsbG93ZWRJbk1hdGg6IGZhbHNlXG4gIH0sXG5cbiAgaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJNaXNtYXRjaGVkIFwiICsgY29udGV4dC5mdW5jTmFtZSk7XG4gIH1cblxufSk7XG5cbnZhciBjaG9vc2VNYXRoU3R5bGUgPSAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgc3dpdGNoIChvcHRpb25zLnN0eWxlLnNpemUpIHtcbiAgICBjYXNlIFN0eWxlJDEuRElTUExBWS5zaXplOlxuICAgICAgcmV0dXJuIGdyb3VwLmRpc3BsYXk7XG5cbiAgICBjYXNlIFN0eWxlJDEuVEVYVC5zaXplOlxuICAgICAgcmV0dXJuIGdyb3VwLnRleHQ7XG5cbiAgICBjYXNlIFN0eWxlJDEuU0NSSVBULnNpemU6XG4gICAgICByZXR1cm4gZ3JvdXAuc2NyaXB0O1xuXG4gICAgY2FzZSBTdHlsZSQxLlNDUklQVFNDUklQVC5zaXplOlxuICAgICAgcmV0dXJuIGdyb3VwLnNjcmlwdHNjcmlwdDtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZ3JvdXAudGV4dDtcbiAgfVxufTtcblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcIm1hdGhjaG9pY2VcIixcbiAgbmFtZXM6IFtcIlxcXFxtYXRoY2hvaWNlXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDQsXG4gICAgcHJpbWl0aXZlOiB0cnVlXG4gIH0sXG4gIGhhbmRsZXI6IChfcmVmLCBhcmdzKSA9PiB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcIm1hdGhjaG9pY2VcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgZGlzcGxheTogb3JkYXJndW1lbnQoYXJnc1swXSksXG4gICAgICB0ZXh0OiBvcmRhcmd1bWVudChhcmdzWzFdKSxcbiAgICAgIHNjcmlwdDogb3JkYXJndW1lbnQoYXJnc1syXSksXG4gICAgICBzY3JpcHRzY3JpcHQ6IG9yZGFyZ3VtZW50KGFyZ3NbM10pXG4gICAgfTtcbiAgfSxcbiAgaHRtbEJ1aWxkZXI6IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAgIHZhciBib2R5ID0gY2hvb3NlTWF0aFN0eWxlKGdyb3VwLCBvcHRpb25zKTtcbiAgICB2YXIgZWxlbWVudHMgPSBidWlsZEV4cHJlc3Npb24kMShib2R5LCBvcHRpb25zLCBmYWxzZSk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VGcmFnbWVudChlbGVtZW50cyk7XG4gIH0sXG4gIG1hdGhtbEJ1aWxkZXI6IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAgIHZhciBib2R5ID0gY2hvb3NlTWF0aFN0eWxlKGdyb3VwLCBvcHRpb25zKTtcbiAgICByZXR1cm4gYnVpbGRFeHByZXNzaW9uUm93KGJvZHksIG9wdGlvbnMpO1xuICB9XG59KTtcblxudmFyIGFzc2VtYmxlU3VwU3ViID0gKGJhc2UsIHN1cEdyb3VwLCBzdWJHcm91cCwgb3B0aW9ucywgc3R5bGUsIHNsYW50LCBiYXNlU2hpZnQpID0+IHtcbiAgYmFzZSA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtdLCBbYmFzZV0pO1xuICB2YXIgc3ViSXNTaW5nbGVDaGFyYWN0ZXIgPSBzdWJHcm91cCAmJiB1dGlscy5pc0NoYXJhY3RlckJveChzdWJHcm91cCk7XG4gIHZhciBzdWI7XG4gIHZhciBzdXA7IC8vIFdlIG1hbnVhbGx5IGhhdmUgdG8gaGFuZGxlIHRoZSBzdXBlcnNjcmlwdHMgYW5kIHN1YnNjcmlwdHMuIFRoaXMsXG4gIC8vIGFzaWRlIGZyb20gdGhlIGtlcm4gY2FsY3VsYXRpb25zLCBpcyBjb3BpZWQgZnJvbSBzdXBzdWIuXG5cbiAgaWYgKHN1cEdyb3VwKSB7XG4gICAgdmFyIGVsZW0gPSBidWlsZEdyb3VwJDEoc3VwR3JvdXAsIG9wdGlvbnMuaGF2aW5nU3R5bGUoc3R5bGUuc3VwKCkpLCBvcHRpb25zKTtcbiAgICBzdXAgPSB7XG4gICAgICBlbGVtLFxuICAgICAga2VybjogTWF0aC5tYXgob3B0aW9ucy5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzEsIG9wdGlvbnMuZm9udE1ldHJpY3MoKS5iaWdPcFNwYWNpbmczIC0gZWxlbS5kZXB0aClcbiAgICB9O1xuICB9XG5cbiAgaWYgKHN1Ykdyb3VwKSB7XG4gICAgdmFyIF9lbGVtID0gYnVpbGRHcm91cCQxKHN1Ykdyb3VwLCBvcHRpb25zLmhhdmluZ1N0eWxlKHN0eWxlLnN1YigpKSwgb3B0aW9ucyk7XG5cbiAgICBzdWIgPSB7XG4gICAgICBlbGVtOiBfZWxlbSxcbiAgICAgIGtlcm46IE1hdGgubWF4KG9wdGlvbnMuZm9udE1ldHJpY3MoKS5iaWdPcFNwYWNpbmcyLCBvcHRpb25zLmZvbnRNZXRyaWNzKCkuYmlnT3BTcGFjaW5nNCAtIF9lbGVtLmhlaWdodClcbiAgICB9O1xuICB9IC8vIEJ1aWxkIHRoZSBmaW5hbCBncm91cCBhcyBhIHZsaXN0IG9mIHRoZSBwb3NzaWJsZSBzdWJzY3JpcHQsIGJhc2UsXG4gIC8vIGFuZCBwb3NzaWJsZSBzdXBlcnNjcmlwdC5cblxuXG4gIHZhciBmaW5hbEdyb3VwO1xuXG4gIGlmIChzdXAgJiYgc3ViKSB7XG4gICAgdmFyIGJvdHRvbSA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5iaWdPcFNwYWNpbmc1ICsgc3ViLmVsZW0uaGVpZ2h0ICsgc3ViLmVsZW0uZGVwdGggKyBzdWIua2VybiArIGJhc2UuZGVwdGggKyBiYXNlU2hpZnQ7XG4gICAgZmluYWxHcm91cCA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwiYm90dG9tXCIsXG4gICAgICBwb3NpdGlvbkRhdGE6IGJvdHRvbSxcbiAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogb3B0aW9ucy5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzVcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IHN1Yi5lbGVtLFxuICAgICAgICBtYXJnaW5MZWZ0OiBtYWtlRW0oLXNsYW50KVxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogc3ViLmtlcm5cbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGJhc2VcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJrZXJuXCIsXG4gICAgICAgIHNpemU6IHN1cC5rZXJuXG4gICAgICB9LCB7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBzdXAuZWxlbSxcbiAgICAgICAgbWFyZ2luTGVmdDogbWFrZUVtKHNsYW50KVxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogb3B0aW9ucy5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzVcbiAgICAgIH1dXG4gICAgfSwgb3B0aW9ucyk7XG4gIH0gZWxzZSBpZiAoc3ViKSB7XG4gICAgdmFyIHRvcCA9IGJhc2UuaGVpZ2h0IC0gYmFzZVNoaWZ0OyAvLyBTaGlmdCB0aGUgbGltaXRzIGJ5IHRoZSBzbGFudCBvZiB0aGUgc3ltYm9sLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBhcmUgc3VwcG9zZWQgdG8gc2hpZnQgdGhlIGxpbWl0cyBieSAxLzIgb2YgdGhlIHNsYW50LFxuICAgIC8vIGJ1dCBzaW5jZSB3ZSBhcmUgY2VudGVyaW5nIHRoZSBsaW1pdHMgYWRkaW5nIGEgZnVsbCBzbGFudCBvZlxuICAgIC8vIG1hcmdpbiB3aWxsIHNoaWZ0IGJ5IDEvMiB0aGF0LlxuXG4gICAgZmluYWxHcm91cCA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwidG9wXCIsXG4gICAgICBwb3NpdGlvbkRhdGE6IHRvcCxcbiAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogb3B0aW9ucy5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzVcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IHN1Yi5lbGVtLFxuICAgICAgICBtYXJnaW5MZWZ0OiBtYWtlRW0oLXNsYW50KVxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogc3ViLmtlcm5cbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGJhc2VcbiAgICAgIH1dXG4gICAgfSwgb3B0aW9ucyk7XG4gIH0gZWxzZSBpZiAoc3VwKSB7XG4gICAgdmFyIF9ib3R0b20gPSBiYXNlLmRlcHRoICsgYmFzZVNoaWZ0O1xuXG4gICAgZmluYWxHcm91cCA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwiYm90dG9tXCIsXG4gICAgICBwb3NpdGlvbkRhdGE6IF9ib3R0b20sXG4gICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGJhc2VcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJrZXJuXCIsXG4gICAgICAgIHNpemU6IHN1cC5rZXJuXG4gICAgICB9LCB7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBzdXAuZWxlbSxcbiAgICAgICAgbWFyZ2luTGVmdDogbWFrZUVtKHNsYW50KVxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogb3B0aW9ucy5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzVcbiAgICAgIH1dXG4gICAgfSwgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBjYXNlIHByb2JhYmx5IHNob3VsZG4ndCBvY2N1ciAodGhpcyB3b3VsZCBtZWFuIHRoZVxuICAgIC8vIHN1cHN1YiB3YXMgc2VuZGluZyB1cyBhIGdyb3VwIHdpdGggbm8gc3VwZXJzY3JpcHQgb3JcbiAgICAvLyBzdWJzY3JpcHQpIGJ1dCBiZSBzYWZlLlxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgdmFyIHBhcnRzID0gW2ZpbmFsR3JvdXBdO1xuXG4gIGlmIChzdWIgJiYgc2xhbnQgIT09IDAgJiYgIXN1YklzU2luZ2xlQ2hhcmFjdGVyKSB7XG4gICAgLy8gQSBuZWdhdGl2ZSBtYXJnaW4tbGVmdCB3YXMgYXBwbGllZCB0byB0aGUgbG93ZXIgbGltaXQuXG4gICAgLy8gQXZvaWQgYW4gb3ZlcmxhcCBieSBwbGFjaW5nIGEgc3BhY2VyIG9uIHRoZSBsZWZ0IG9uIHRoZSBncm91cC5cbiAgICB2YXIgc3BhY2VyID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibXNwYWNlXCJdLCBbXSwgb3B0aW9ucyk7XG4gICAgc3BhY2VyLnN0eWxlLm1hcmdpblJpZ2h0ID0gbWFrZUVtKHNsYW50KTtcbiAgICBwYXJ0cy51bnNoaWZ0KHNwYWNlcik7XG4gIH1cblxuICByZXR1cm4gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibW9wXCIsIFwib3AtbGltaXRzXCJdLCBwYXJ0cywgb3B0aW9ucyk7XG59O1xuXG4vLyBMaW1pdHMsIHN5bWJvbHNcbi8vIE1vc3Qgb3BlcmF0b3JzIGhhdmUgYSBsYXJnZSBzdWNjZXNzb3Igc3ltYm9sLCBidXQgdGhlc2UgZG9uJ3QuXG52YXIgbm9TdWNjZXNzb3IgPSBbXCJcXFxcc21hbGxpbnRcIl07IC8vIE5PVEU6IFVubGlrZSBtb3N0IGBodG1sQnVpbGRlcmBzLCB0aGlzIG9uZSBoYW5kbGVzIG5vdCBvbmx5IFwib3BcIiwgYnV0IGFsc29cbi8vIFwic3Vwc3ViXCIgc2luY2Ugc29tZSBvZiB0aGVtIChsaWtlIFxcaW50KSBjYW4gYWZmZWN0IHN1cGVyL3N1YnNjcmlwdGluZy5cblxudmFyIGh0bWxCdWlsZGVyJDIgPSAoZ3JwLCBvcHRpb25zKSA9PiB7XG4gIC8vIE9wZXJhdG9ycyBhcmUgaGFuZGxlZCBpbiB0aGUgVGVYYm9vayBwZy4gNDQzLTQ0NCwgcnVsZSAxMyhhKS5cbiAgdmFyIHN1cEdyb3VwO1xuICB2YXIgc3ViR3JvdXA7XG4gIHZhciBoYXNMaW1pdHMgPSBmYWxzZTtcbiAgdmFyIGdyb3VwO1xuXG4gIGlmIChncnAudHlwZSA9PT0gXCJzdXBzdWJcIikge1xuICAgIC8vIElmIHdlIGhhdmUgbGltaXRzLCBzdXBzdWIgd2lsbCBwYXNzIHVzIGl0cyBncm91cCB0byBoYW5kbGUuIFB1bGxcbiAgICAvLyBvdXQgdGhlIHN1cGVyc2NyaXB0IGFuZCBzdWJzY3JpcHQgYW5kIHNldCB0aGUgZ3JvdXAgdG8gdGhlIG9wIGluXG4gICAgLy8gaXRzIGJhc2UuXG4gICAgc3VwR3JvdXAgPSBncnAuc3VwO1xuICAgIHN1Ykdyb3VwID0gZ3JwLnN1YjtcbiAgICBncm91cCA9IGFzc2VydE5vZGVUeXBlKGdycC5iYXNlLCBcIm9wXCIpO1xuICAgIGhhc0xpbWl0cyA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgZ3JvdXAgPSBhc3NlcnROb2RlVHlwZShncnAsIFwib3BcIik7XG4gIH1cblxuICB2YXIgc3R5bGUgPSBvcHRpb25zLnN0eWxlO1xuICB2YXIgbGFyZ2UgPSBmYWxzZTtcblxuICBpZiAoc3R5bGUuc2l6ZSA9PT0gU3R5bGUkMS5ESVNQTEFZLnNpemUgJiYgZ3JvdXAuc3ltYm9sICYmICF1dGlscy5jb250YWlucyhub1N1Y2Nlc3NvciwgZ3JvdXAubmFtZSkpIHtcbiAgICAvLyBNb3N0IHN5bWJvbCBvcGVyYXRvcnMgZ2V0IGxhcmdlciBpbiBkaXNwbGF5c3R5bGUgKHJ1bGUgMTMpXG4gICAgbGFyZ2UgPSB0cnVlO1xuICB9XG5cbiAgdmFyIGJhc2U7XG5cbiAgaWYgKGdyb3VwLnN5bWJvbCkge1xuICAgIC8vIElmIHRoaXMgaXMgYSBzeW1ib2wsIGNyZWF0ZSB0aGUgc3ltYm9sLlxuICAgIHZhciBmb250TmFtZSA9IGxhcmdlID8gXCJTaXplMi1SZWd1bGFyXCIgOiBcIlNpemUxLVJlZ3VsYXJcIjtcbiAgICB2YXIgc3Rhc2ggPSBcIlwiO1xuXG4gICAgaWYgKGdyb3VwLm5hbWUgPT09IFwiXFxcXG9paW50XCIgfHwgZ3JvdXAubmFtZSA9PT0gXCJcXFxcb2lpaW50XCIpIHtcbiAgICAgIC8vIE5vIGZvbnQgZ2x5cGhzIHlldCwgc28gdXNlIGEgZ2x5cGggdy9vIHRoZSBvdmFsLlxuICAgICAgLy8gVE9ETzogV2hlbiBmb250IGdseXBocyBhcmUgYXZhaWxhYmxlLCBkZWxldGUgdGhpcyBjb2RlLlxuICAgICAgc3Rhc2ggPSBncm91cC5uYW1lLnNsaWNlKDEpO1xuICAgICAgZ3JvdXAubmFtZSA9IHN0YXNoID09PSBcIm9paW50XCIgPyBcIlxcXFxpaW50XCIgOiBcIlxcXFxpaWludFwiO1xuICAgIH1cblxuICAgIGJhc2UgPSBidWlsZENvbW1vbi5tYWtlU3ltYm9sKGdyb3VwLm5hbWUsIGZvbnROYW1lLCBcIm1hdGhcIiwgb3B0aW9ucywgW1wibW9wXCIsIFwib3Atc3ltYm9sXCIsIGxhcmdlID8gXCJsYXJnZS1vcFwiIDogXCJzbWFsbC1vcFwiXSk7XG5cbiAgICBpZiAoc3Rhc2gubGVuZ3RoID4gMCkge1xuICAgICAgLy8gV2UncmUgaW4gXFxvaWludCBvciBcXG9paWludC4gT3ZlcmxheSB0aGUgb3ZhbC5cbiAgICAgIC8vIFRPRE86IFdoZW4gZm9udCBnbHlwaHMgYXJlIGF2YWlsYWJsZSwgZGVsZXRlIHRoaXMgY29kZS5cbiAgICAgIHZhciBpdGFsaWMgPSBiYXNlLml0YWxpYztcbiAgICAgIHZhciBvdmFsID0gYnVpbGRDb21tb24uc3RhdGljU3ZnKHN0YXNoICsgXCJTaXplXCIgKyAobGFyZ2UgPyBcIjJcIiA6IFwiMVwiKSwgb3B0aW9ucyk7XG4gICAgICBiYXNlID0gYnVpbGRDb21tb24ubWFrZVZMaXN0KHtcbiAgICAgICAgcG9zaXRpb25UeXBlOiBcImluZGl2aWR1YWxTaGlmdFwiLFxuICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgICBlbGVtOiBiYXNlLFxuICAgICAgICAgIHNoaWZ0OiAwXG4gICAgICAgIH0sIHtcbiAgICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgICBlbGVtOiBvdmFsLFxuICAgICAgICAgIHNoaWZ0OiBsYXJnZSA/IDAuMDggOiAwXG4gICAgICAgIH1dXG4gICAgICB9LCBvcHRpb25zKTtcbiAgICAgIGdyb3VwLm5hbWUgPSBcIlxcXFxcIiArIHN0YXNoO1xuICAgICAgYmFzZS5jbGFzc2VzLnVuc2hpZnQoXCJtb3BcIik7IC8vICRGbG93Rml4TWVcblxuICAgICAgYmFzZS5pdGFsaWMgPSBpdGFsaWM7XG4gICAgfVxuICB9IGVsc2UgaWYgKGdyb3VwLmJvZHkpIHtcbiAgICAvLyBJZiB0aGlzIGlzIGEgbGlzdCwgY29tcG9zZSB0aGF0IGxpc3QuXG4gICAgdmFyIGlubmVyID0gYnVpbGRFeHByZXNzaW9uJDEoZ3JvdXAuYm9keSwgb3B0aW9ucywgdHJ1ZSk7XG5cbiAgICBpZiAoaW5uZXIubGVuZ3RoID09PSAxICYmIGlubmVyWzBdIGluc3RhbmNlb2YgU3ltYm9sTm9kZSkge1xuICAgICAgYmFzZSA9IGlubmVyWzBdO1xuICAgICAgYmFzZS5jbGFzc2VzWzBdID0gXCJtb3BcIjsgLy8gcmVwbGFjZSBvbGQgbWNsYXNzXG4gICAgfSBlbHNlIHtcbiAgICAgIGJhc2UgPSBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJtb3BcIl0sIGlubmVyLCBvcHRpb25zKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlLCB0aGlzIGlzIGEgdGV4dCBvcGVyYXRvci4gQnVpbGQgdGhlIHRleHQgZnJvbSB0aGVcbiAgICAvLyBvcGVyYXRvcidzIG5hbWUuXG4gICAgdmFyIG91dHB1dCA9IFtdO1xuXG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBncm91cC5uYW1lLmxlbmd0aDsgaSsrKSB7XG4gICAgICBvdXRwdXQucHVzaChidWlsZENvbW1vbi5tYXRoc3ltKGdyb3VwLm5hbWVbaV0sIGdyb3VwLm1vZGUsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBiYXNlID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibW9wXCJdLCBvdXRwdXQsIG9wdGlvbnMpO1xuICB9IC8vIElmIGNvbnRlbnQgb2Ygb3AgaXMgYSBzaW5nbGUgc3ltYm9sLCBzaGlmdCBpdCB2ZXJ0aWNhbGx5LlxuXG5cbiAgdmFyIGJhc2VTaGlmdCA9IDA7XG4gIHZhciBzbGFudCA9IDA7XG5cbiAgaWYgKChiYXNlIGluc3RhbmNlb2YgU3ltYm9sTm9kZSB8fCBncm91cC5uYW1lID09PSBcIlxcXFxvaWludFwiIHx8IGdyb3VwLm5hbWUgPT09IFwiXFxcXG9paWludFwiKSAmJiAhZ3JvdXAuc3VwcHJlc3NCYXNlU2hpZnQpIHtcbiAgICAvLyBXZSBzdXBwcmVzcyB0aGUgc2hpZnQgb2YgdGhlIGJhc2Ugb2YgXFxvdmVyc2V0IGFuZCBcXHVuZGVyc2V0LiBPdGhlcndpc2UsXG4gICAgLy8gc2hpZnQgdGhlIHN5bWJvbCBzbyBpdHMgY2VudGVyIGxpZXMgb24gdGhlIGF4aXMgKHJ1bGUgMTMpLiBJdFxuICAgIC8vIGFwcGVhcnMgdGhhdCBvdXIgZm9udHMgaGF2ZSB0aGUgY2VudGVycyBvZiB0aGUgc3ltYm9scyBhbHJlYWR5XG4gICAgLy8gYWxtb3N0IG9uIHRoZSBheGlzLCBzbyB0aGVzZSBudW1iZXJzIGFyZSB2ZXJ5IHNtYWxsLiBOb3RlIHdlXG4gICAgLy8gZG9uJ3QgYWN0dWFsbHkgYXBwbHkgdGhpcyBoZXJlLCBidXQgaW5zdGVhZCBpdCBpcyB1c2VkIGVpdGhlciBpblxuICAgIC8vIHRoZSB2bGlzdCBjcmVhdGlvbiBvciBzZXBhcmF0ZWx5IHdoZW4gdGhlcmUgYXJlIG5vIGxpbWl0cy5cbiAgICBiYXNlU2hpZnQgPSAoYmFzZS5oZWlnaHQgLSBiYXNlLmRlcHRoKSAvIDIgLSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuYXhpc0hlaWdodDsgLy8gVGhlIHNsYW50IG9mIHRoZSBzeW1ib2wgaXMganVzdCBpdHMgaXRhbGljIGNvcnJlY3Rpb24uXG4gICAgLy8gJEZsb3dGaXhNZVxuXG4gICAgc2xhbnQgPSBiYXNlLml0YWxpYztcbiAgfVxuXG4gIGlmIChoYXNMaW1pdHMpIHtcbiAgICByZXR1cm4gYXNzZW1ibGVTdXBTdWIoYmFzZSwgc3VwR3JvdXAsIHN1Ykdyb3VwLCBvcHRpb25zLCBzdHlsZSwgc2xhbnQsIGJhc2VTaGlmdCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGJhc2VTaGlmdCkge1xuICAgICAgYmFzZS5zdHlsZS5wb3NpdGlvbiA9IFwicmVsYXRpdmVcIjtcbiAgICAgIGJhc2Uuc3R5bGUudG9wID0gbWFrZUVtKGJhc2VTaGlmdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhc2U7XG4gIH1cbn07XG5cbnZhciBtYXRobWxCdWlsZGVyJDEgPSAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgdmFyIG5vZGU7XG5cbiAgaWYgKGdyb3VwLnN5bWJvbCkge1xuICAgIC8vIFRoaXMgaXMgYSBzeW1ib2wuIEp1c3QgYWRkIHRoZSBzeW1ib2wuXG4gICAgbm9kZSA9IG5ldyBNYXRoTm9kZShcIm1vXCIsIFttYWtlVGV4dChncm91cC5uYW1lLCBncm91cC5tb2RlKV0pO1xuXG4gICAgaWYgKHV0aWxzLmNvbnRhaW5zKG5vU3VjY2Vzc29yLCBncm91cC5uYW1lKSkge1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJsYXJnZW9wXCIsIFwiZmFsc2VcIik7XG4gICAgfVxuICB9IGVsc2UgaWYgKGdyb3VwLmJvZHkpIHtcbiAgICAvLyBUaGlzIGlzIGFuIG9wZXJhdG9yIHdpdGggY2hpbGRyZW4uIEFkZCB0aGVtLlxuICAgIG5vZGUgPSBuZXcgTWF0aE5vZGUoXCJtb1wiLCBidWlsZEV4cHJlc3Npb24oZ3JvdXAuYm9keSwgb3B0aW9ucykpO1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgaXMgYSB0ZXh0IG9wZXJhdG9yLiBBZGQgYWxsIG9mIHRoZSBjaGFyYWN0ZXJzIGZyb20gdGhlXG4gICAgLy8gb3BlcmF0b3IncyBuYW1lLlxuICAgIG5vZGUgPSBuZXcgTWF0aE5vZGUoXCJtaVwiLCBbbmV3IFRleHROb2RlKGdyb3VwLm5hbWUuc2xpY2UoMSkpXSk7IC8vIEFwcGVuZCBhbiA8bW8+JkFwcGx5RnVuY3Rpb247PC9tbz4uXG4gICAgLy8gcmVmOiBodHRwczovL3d3dy53My5vcmcvVFIvUkVDLU1hdGhNTC9jaGFwM18yLmh0bWwjc2VjMy4yLjRcblxuICAgIHZhciBvcGVyYXRvciA9IG5ldyBNYXRoTm9kZShcIm1vXCIsIFttYWtlVGV4dChcIlxcdTIwNjFcIiwgXCJ0ZXh0XCIpXSk7XG5cbiAgICBpZiAoZ3JvdXAucGFyZW50SXNTdXBTdWIpIHtcbiAgICAgIG5vZGUgPSBuZXcgTWF0aE5vZGUoXCJtcm93XCIsIFtub2RlLCBvcGVyYXRvcl0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlID0gbmV3RG9jdW1lbnRGcmFnbWVudChbbm9kZSwgb3BlcmF0b3JdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn07XG5cbnZhciBzaW5nbGVDaGFyQmlnT3BzID0ge1xuICBcIlxcdTIyMEZcIjogXCJcXFxccHJvZFwiLFxuICBcIlxcdTIyMTBcIjogXCJcXFxcY29wcm9kXCIsXG4gIFwiXFx1MjIxMVwiOiBcIlxcXFxzdW1cIixcbiAgXCJcXHUyMmMwXCI6IFwiXFxcXGJpZ3dlZGdlXCIsXG4gIFwiXFx1MjJjMVwiOiBcIlxcXFxiaWd2ZWVcIixcbiAgXCJcXHUyMmMyXCI6IFwiXFxcXGJpZ2NhcFwiLFxuICBcIlxcdTIyYzNcIjogXCJcXFxcYmlnY3VwXCIsXG4gIFwiXFx1MmEwMFwiOiBcIlxcXFxiaWdvZG90XCIsXG4gIFwiXFx1MmEwMVwiOiBcIlxcXFxiaWdvcGx1c1wiLFxuICBcIlxcdTJhMDJcIjogXCJcXFxcYmlnb3RpbWVzXCIsXG4gIFwiXFx1MmEwNFwiOiBcIlxcXFxiaWd1cGx1c1wiLFxuICBcIlxcdTJhMDZcIjogXCJcXFxcYmlnc3FjdXBcIlxufTtcbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJvcFwiLFxuICBuYW1lczogW1wiXFxcXGNvcHJvZFwiLCBcIlxcXFxiaWd2ZWVcIiwgXCJcXFxcYmlnd2VkZ2VcIiwgXCJcXFxcYmlndXBsdXNcIiwgXCJcXFxcYmlnY2FwXCIsIFwiXFxcXGJpZ2N1cFwiLCBcIlxcXFxpbnRvcFwiLCBcIlxcXFxwcm9kXCIsIFwiXFxcXHN1bVwiLCBcIlxcXFxiaWdvdGltZXNcIiwgXCJcXFxcYmlnb3BsdXNcIiwgXCJcXFxcYmlnb2RvdFwiLCBcIlxcXFxiaWdzcWN1cFwiLCBcIlxcXFxzbWFsbGludFwiLCBcIlxcdTIyMEZcIiwgXCJcXHUyMjEwXCIsIFwiXFx1MjIxMVwiLCBcIlxcdTIyYzBcIiwgXCJcXHUyMmMxXCIsIFwiXFx1MjJjMlwiLCBcIlxcdTIyYzNcIiwgXCJcXHUyYTAwXCIsIFwiXFx1MmEwMVwiLCBcIlxcdTJhMDJcIiwgXCJcXHUyYTA0XCIsIFwiXFx1MmEwNlwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAwXG4gIH0sXG4gIGhhbmRsZXI6IChfcmVmLCBhcmdzKSA9PiB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlcixcbiAgICAgIGZ1bmNOYW1lXG4gICAgfSA9IF9yZWY7XG4gICAgdmFyIGZOYW1lID0gZnVuY05hbWU7XG5cbiAgICBpZiAoZk5hbWUubGVuZ3RoID09PSAxKSB7XG4gICAgICBmTmFtZSA9IHNpbmdsZUNoYXJCaWdPcHNbZk5hbWVdO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcIm9wXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGxpbWl0czogdHJ1ZSxcbiAgICAgIHBhcmVudElzU3VwU3ViOiBmYWxzZSxcbiAgICAgIHN5bWJvbDogdHJ1ZSxcbiAgICAgIG5hbWU6IGZOYW1lXG4gICAgfTtcbiAgfSxcbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDIsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkMVxufSk7IC8vIE5vdGU6IGNhbGxpbmcgZGVmaW5lRnVuY3Rpb24gd2l0aCBhIHR5cGUgdGhhdCdzIGFscmVhZHkgYmVlbiBkZWZpbmVkIG9ubHlcbi8vIHdvcmtzIGJlY2F1c2UgdGhlIHNhbWUgaHRtbEJ1aWxkZXIgYW5kIG1hdGhtbEJ1aWxkZXIgYXJlIGJlaW5nIHVzZWQuXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJvcFwiLFxuICBuYW1lczogW1wiXFxcXG1hdGhvcFwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIHByaW1pdGl2ZTogdHJ1ZVxuICB9LFxuICBoYW5kbGVyOiAoX3JlZjIsIGFyZ3MpID0+IHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyXG4gICAgfSA9IF9yZWYyO1xuICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJvcFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBsaW1pdHM6IGZhbHNlLFxuICAgICAgcGFyZW50SXNTdXBTdWI6IGZhbHNlLFxuICAgICAgc3ltYm9sOiBmYWxzZSxcbiAgICAgIGJvZHk6IG9yZGFyZ3VtZW50KGJvZHkpXG4gICAgfTtcbiAgfSxcbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDIsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkMVxufSk7IC8vIFRoZXJlIGFyZSAyIGZsYWdzIGZvciBvcGVyYXRvcnM7IHdoZXRoZXIgdGhleSBwcm9kdWNlIGxpbWl0cyBpblxuLy8gZGlzcGxheXN0eWxlLCBhbmQgd2hldGhlciB0aGV5IGFyZSBzeW1ib2xzIGFuZCBzaG91bGQgZ3JvdyBpblxuLy8gZGlzcGxheXN0eWxlLiBUaGVzZSBmb3VyIGdyb3VwcyBjb3ZlciB0aGUgZm91ciBwb3NzaWJsZSBjaG9pY2VzLlxuXG52YXIgc2luZ2xlQ2hhckludGVncmFscyA9IHtcbiAgXCJcXHUyMjJiXCI6IFwiXFxcXGludFwiLFxuICBcIlxcdTIyMmNcIjogXCJcXFxcaWludFwiLFxuICBcIlxcdTIyMmRcIjogXCJcXFxcaWlpbnRcIixcbiAgXCJcXHUyMjJlXCI6IFwiXFxcXG9pbnRcIixcbiAgXCJcXHUyMjJmXCI6IFwiXFxcXG9paW50XCIsXG4gIFwiXFx1MjIzMFwiOiBcIlxcXFxvaWlpbnRcIlxufTsgLy8gTm8gbGltaXRzLCBub3Qgc3ltYm9sc1xuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwib3BcIixcbiAgbmFtZXM6IFtcIlxcXFxhcmNzaW5cIiwgXCJcXFxcYXJjY29zXCIsIFwiXFxcXGFyY3RhblwiLCBcIlxcXFxhcmN0Z1wiLCBcIlxcXFxhcmNjdGdcIiwgXCJcXFxcYXJnXCIsIFwiXFxcXGNoXCIsIFwiXFxcXGNvc1wiLCBcIlxcXFxjb3NlY1wiLCBcIlxcXFxjb3NoXCIsIFwiXFxcXGNvdFwiLCBcIlxcXFxjb3RnXCIsIFwiXFxcXGNvdGhcIiwgXCJcXFxcY3NjXCIsIFwiXFxcXGN0Z1wiLCBcIlxcXFxjdGhcIiwgXCJcXFxcZGVnXCIsIFwiXFxcXGRpbVwiLCBcIlxcXFxleHBcIiwgXCJcXFxcaG9tXCIsIFwiXFxcXGtlclwiLCBcIlxcXFxsZ1wiLCBcIlxcXFxsblwiLCBcIlxcXFxsb2dcIiwgXCJcXFxcc2VjXCIsIFwiXFxcXHNpblwiLCBcIlxcXFxzaW5oXCIsIFwiXFxcXHNoXCIsIFwiXFxcXHRhblwiLCBcIlxcXFx0YW5oXCIsIFwiXFxcXHRnXCIsIFwiXFxcXHRoXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDBcbiAgfSxcblxuICBoYW5kbGVyKF9yZWYzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlcixcbiAgICAgIGZ1bmNOYW1lXG4gICAgfSA9IF9yZWYzO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcIm9wXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGxpbWl0czogZmFsc2UsXG4gICAgICBwYXJlbnRJc1N1cFN1YjogZmFsc2UsXG4gICAgICBzeW1ib2w6IGZhbHNlLFxuICAgICAgbmFtZTogZnVuY05hbWVcbiAgICB9O1xuICB9LFxuXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciQyLFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDFcbn0pOyAvLyBMaW1pdHMsIG5vdCBzeW1ib2xzXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJvcFwiLFxuICBuYW1lczogW1wiXFxcXGRldFwiLCBcIlxcXFxnY2RcIiwgXCJcXFxcaW5mXCIsIFwiXFxcXGxpbVwiLCBcIlxcXFxtYXhcIiwgXCJcXFxcbWluXCIsIFwiXFxcXFByXCIsIFwiXFxcXHN1cFwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAwXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmNCkge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmNDtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJvcFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBsaW1pdHM6IHRydWUsXG4gICAgICBwYXJlbnRJc1N1cFN1YjogZmFsc2UsXG4gICAgICBzeW1ib2w6IGZhbHNlLFxuICAgICAgbmFtZTogZnVuY05hbWVcbiAgICB9O1xuICB9LFxuXG4gIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlciQyLFxuICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyJDFcbn0pOyAvLyBObyBsaW1pdHMsIHN5bWJvbHNcblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcIm9wXCIsXG4gIG5hbWVzOiBbXCJcXFxcaW50XCIsIFwiXFxcXGlpbnRcIiwgXCJcXFxcaWlpbnRcIiwgXCJcXFxcb2ludFwiLCBcIlxcXFxvaWludFwiLCBcIlxcXFxvaWlpbnRcIiwgXCJcXHUyMjJiXCIsIFwiXFx1MjIyY1wiLCBcIlxcdTIyMmRcIiwgXCJcXHUyMjJlXCIsIFwiXFx1MjIyZlwiLCBcIlxcdTIyMzBcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMFxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZjUpIHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyLFxuICAgICAgZnVuY05hbWVcbiAgICB9ID0gX3JlZjU7XG4gICAgdmFyIGZOYW1lID0gZnVuY05hbWU7XG5cbiAgICBpZiAoZk5hbWUubGVuZ3RoID09PSAxKSB7XG4gICAgICBmTmFtZSA9IHNpbmdsZUNoYXJJbnRlZ3JhbHNbZk5hbWVdO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcIm9wXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGxpbWl0czogZmFsc2UsXG4gICAgICBwYXJlbnRJc1N1cFN1YjogZmFsc2UsXG4gICAgICBzeW1ib2w6IHRydWUsXG4gICAgICBuYW1lOiBmTmFtZVxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDIsXG4gIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXIkMVxufSk7XG5cbi8vIE5PVEU6IFVubGlrZSBtb3N0IGBodG1sQnVpbGRlcmBzLCB0aGlzIG9uZSBoYW5kbGVzIG5vdCBvbmx5XG4vLyBcIm9wZXJhdG9ybmFtZVwiLCBidXQgYWxzbyAgXCJzdXBzdWJcIiBzaW5jZSBcXG9wZXJhdG9ybmFtZSogY2FuXG4vLyBhZmZlY3Qgc3VwZXIvc3Vic2NyaXB0aW5nLlxudmFyIGh0bWxCdWlsZGVyJDEgPSAoZ3JwLCBvcHRpb25zKSA9PiB7XG4gIC8vIE9wZXJhdG9ycyBhcmUgaGFuZGxlZCBpbiB0aGUgVGVYYm9vayBwZy4gNDQzLTQ0NCwgcnVsZSAxMyhhKS5cbiAgdmFyIHN1cEdyb3VwO1xuICB2YXIgc3ViR3JvdXA7XG4gIHZhciBoYXNMaW1pdHMgPSBmYWxzZTtcbiAgdmFyIGdyb3VwO1xuXG4gIGlmIChncnAudHlwZSA9PT0gXCJzdXBzdWJcIikge1xuICAgIC8vIElmIHdlIGhhdmUgbGltaXRzLCBzdXBzdWIgd2lsbCBwYXNzIHVzIGl0cyBncm91cCB0byBoYW5kbGUuIFB1bGxcbiAgICAvLyBvdXQgdGhlIHN1cGVyc2NyaXB0IGFuZCBzdWJzY3JpcHQgYW5kIHNldCB0aGUgZ3JvdXAgdG8gdGhlIG9wIGluXG4gICAgLy8gaXRzIGJhc2UuXG4gICAgc3VwR3JvdXAgPSBncnAuc3VwO1xuICAgIHN1Ykdyb3VwID0gZ3JwLnN1YjtcbiAgICBncm91cCA9IGFzc2VydE5vZGVUeXBlKGdycC5iYXNlLCBcIm9wZXJhdG9ybmFtZVwiKTtcbiAgICBoYXNMaW1pdHMgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIGdyb3VwID0gYXNzZXJ0Tm9kZVR5cGUoZ3JwLCBcIm9wZXJhdG9ybmFtZVwiKTtcbiAgfVxuXG4gIHZhciBiYXNlO1xuXG4gIGlmIChncm91cC5ib2R5Lmxlbmd0aCA+IDApIHtcbiAgICB2YXIgYm9keSA9IGdyb3VwLmJvZHkubWFwKGNoaWxkID0+IHtcbiAgICAgIC8vICRGbG93Rml4TWU6IENoZWNrIGlmIHRoZSBub2RlIGhhcyBhIHN0cmluZyBgdGV4dGAgcHJvcGVydHkuXG4gICAgICB2YXIgY2hpbGRUZXh0ID0gY2hpbGQudGV4dDtcblxuICAgICAgaWYgKHR5cGVvZiBjaGlsZFRleHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiBcInRleHRvcmRcIixcbiAgICAgICAgICBtb2RlOiBjaGlsZC5tb2RlLFxuICAgICAgICAgIHRleHQ6IGNoaWxkVGV4dFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuICAgIH0pOyAvLyBDb25zb2xpZGF0ZSBmdW5jdGlvbiBuYW1lcyBpbnRvIHN5bWJvbCBjaGFyYWN0ZXJzLlxuXG4gICAgdmFyIGV4cHJlc3Npb24gPSBidWlsZEV4cHJlc3Npb24kMShib2R5LCBvcHRpb25zLndpdGhGb250KFwibWF0aHJtXCIpLCB0cnVlKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwcmVzc2lvbi5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gZXhwcmVzc2lvbltpXTtcblxuICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgU3ltYm9sTm9kZSkge1xuICAgICAgICAvLyBQZXIgYW1zb3BuIHBhY2thZ2UsXG4gICAgICAgIC8vIGNoYW5nZSBtaW51cyB0byBoeXBoZW4gYW5kIFxcYXN0IHRvIGFzdGVyaXNrXG4gICAgICAgIGNoaWxkLnRleHQgPSBjaGlsZC50ZXh0LnJlcGxhY2UoL1xcdTIyMTIvLCBcIi1cIikucmVwbGFjZSgvXFx1MjIxNy8sIFwiKlwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYXNlID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibW9wXCJdLCBleHByZXNzaW9uLCBvcHRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICBiYXNlID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibW9wXCJdLCBbXSwgb3B0aW9ucyk7XG4gIH1cblxuICBpZiAoaGFzTGltaXRzKSB7XG4gICAgcmV0dXJuIGFzc2VtYmxlU3VwU3ViKGJhc2UsIHN1cEdyb3VwLCBzdWJHcm91cCwgb3B0aW9ucywgb3B0aW9ucy5zdHlsZSwgMCwgMCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJhc2U7XG4gIH1cbn07XG5cbnZhciBtYXRobWxCdWlsZGVyID0gKGdyb3VwLCBvcHRpb25zKSA9PiB7XG4gIC8vIFRoZSBzdGVwcyB0YWtlbiBoZXJlIGFyZSBzaW1pbGFyIHRvIHRoZSBodG1sIHZlcnNpb24uXG4gIHZhciBleHByZXNzaW9uID0gYnVpbGRFeHByZXNzaW9uKGdyb3VwLmJvZHksIG9wdGlvbnMud2l0aEZvbnQoXCJtYXRocm1cIikpOyAvLyBJcyBleHByZXNzaW9uIGEgc3RyaW5nIG9yIGhhcyBpdCBzb21ldGhpbmcgbGlrZSBhIGZyYWN0aW9uP1xuXG4gIHZhciBpc0FsbFN0cmluZyA9IHRydWU7IC8vIGRlZmF1bHRcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cHJlc3Npb24ubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbm9kZSA9IGV4cHJlc3Npb25baV07XG5cbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIG1hdGhNTFRyZWUuU3BhY2VOb2RlKSA7IGVsc2UgaWYgKG5vZGUgaW5zdGFuY2VvZiBtYXRoTUxUcmVlLk1hdGhOb2RlKSB7XG4gICAgICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgICBjYXNlIFwibWlcIjpcbiAgICAgICAgY2FzZSBcIm1uXCI6XG4gICAgICAgIGNhc2UgXCJtc1wiOlxuICAgICAgICBjYXNlIFwibXNwYWNlXCI6XG4gICAgICAgIGNhc2UgXCJtdGV4dFwiOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICAvLyBEbyBub3RoaW5nIHlldC5cblxuICAgICAgICBjYXNlIFwibW9cIjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgY2hpbGQgPSBub2RlLmNoaWxkcmVuWzBdO1xuXG4gICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDEgJiYgY2hpbGQgaW5zdGFuY2VvZiBtYXRoTUxUcmVlLlRleHROb2RlKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnRleHQgPSBjaGlsZC50ZXh0LnJlcGxhY2UoL1xcdTIyMTIvLCBcIi1cIikucmVwbGFjZSgvXFx1MjIxNy8sIFwiKlwiKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlzQWxsU3RyaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlzQWxsU3RyaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlzQWxsU3RyaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzQWxsU3RyaW5nKSB7XG4gICAgLy8gV3JpdGUgYSBzaW5nbGUgVGV4dE5vZGUgaW5zdGVhZCBvZiBtdWx0aXBsZSBuZXN0ZWQgdGFncy5cbiAgICB2YXIgd29yZCA9IGV4cHJlc3Npb24ubWFwKG5vZGUgPT4gbm9kZS50b1RleHQoKSkuam9pbihcIlwiKTtcbiAgICBleHByZXNzaW9uID0gW25ldyBtYXRoTUxUcmVlLlRleHROb2RlKHdvcmQpXTtcbiAgfVxuXG4gIHZhciBpZGVudGlmaWVyID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtaVwiLCBleHByZXNzaW9uKTtcbiAgaWRlbnRpZmllci5zZXRBdHRyaWJ1dGUoXCJtYXRodmFyaWFudFwiLCBcIm5vcm1hbFwiKTsgLy8gXFx1MjA2MSBpcyB0aGUgc2FtZSBhcyAmQXBwbHlGdW5jdGlvbjtcbiAgLy8gcmVmOiBodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2NoYXJzZXRzL3JlZl9odG1sX2VudGl0aWVzX2EuYXNwXG5cbiAgdmFyIG9wZXJhdG9yID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtb1wiLCBbbWFrZVRleHQoXCJcXHUyMDYxXCIsIFwidGV4dFwiKV0pO1xuXG4gIGlmIChncm91cC5wYXJlbnRJc1N1cFN1Yikge1xuICAgIHJldHVybiBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1yb3dcIiwgW2lkZW50aWZpZXIsIG9wZXJhdG9yXSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG1hdGhNTFRyZWUubmV3RG9jdW1lbnRGcmFnbWVudChbaWRlbnRpZmllciwgb3BlcmF0b3JdKTtcbiAgfVxufTsgLy8gXFxvcGVyYXRvcm5hbWVcbi8vIGFtc29wbi5kdHg6IFxcbWF0aG9weyMxXFxrZXJuXFx6QFxcb3BlcmF0b3JAZm9udCMzfVxcbmV3bWNvZGVzQFxuXG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJvcGVyYXRvcm5hbWVcIixcbiAgbmFtZXM6IFtcIlxcXFxvcGVyYXRvcm5hbWVAXCIsIFwiXFxcXG9wZXJhdG9ybmFtZXdpdGhsaW1pdHNcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMVxuICB9LFxuICBoYW5kbGVyOiAoX3JlZiwgYXJncykgPT4ge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXIsXG4gICAgICBmdW5jTmFtZVxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJvcGVyYXRvcm5hbWVcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgYm9keTogb3JkYXJndW1lbnQoYm9keSksXG4gICAgICBhbHdheXNIYW5kbGVTdXBTdWI6IGZ1bmNOYW1lID09PSBcIlxcXFxvcGVyYXRvcm5hbWV3aXRobGltaXRzXCIsXG4gICAgICBsaW1pdHM6IGZhbHNlLFxuICAgICAgcGFyZW50SXNTdXBTdWI6IGZhbHNlXG4gICAgfTtcbiAgfSxcbiAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyJDEsXG4gIG1hdGhtbEJ1aWxkZXJcbn0pO1xuZGVmaW5lTWFjcm8oXCJcXFxcb3BlcmF0b3JuYW1lXCIsIFwiXFxcXEBpZnN0YXJcXFxcb3BlcmF0b3JuYW1ld2l0aGxpbWl0c1xcXFxvcGVyYXRvcm5hbWVAXCIpO1xuXG5kZWZpbmVGdW5jdGlvbkJ1aWxkZXJzKHtcbiAgdHlwZTogXCJvcmRncm91cFwiLFxuXG4gIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgaWYgKGdyb3VwLnNlbWlzaW1wbGUpIHtcbiAgICAgIHJldHVybiBidWlsZENvbW1vbi5tYWtlRnJhZ21lbnQoYnVpbGRFeHByZXNzaW9uJDEoZ3JvdXAuYm9keSwgb3B0aW9ucywgZmFsc2UpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibW9yZFwiXSwgYnVpbGRFeHByZXNzaW9uJDEoZ3JvdXAuYm9keSwgb3B0aW9ucywgdHJ1ZSksIG9wdGlvbnMpO1xuICB9LFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gYnVpbGRFeHByZXNzaW9uUm93KGdyb3VwLmJvZHksIG9wdGlvbnMsIHRydWUpO1xuICB9XG5cbn0pO1xuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwib3ZlcmxpbmVcIixcbiAgbmFtZXM6IFtcIlxcXFxvdmVybGluZVwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmLCBhcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJvdmVybGluZVwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBib2R5XG4gICAgfTtcbiAgfSxcblxuICBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIC8vIE92ZXJsaW5lcyBhcmUgaGFuZGxlZCBpbiB0aGUgVGVYYm9vayBwZyA0NDMsIFJ1bGUgOS5cbiAgICAvLyBCdWlsZCB0aGUgaW5uZXIgZ3JvdXAgaW4gdGhlIGNyYW1wZWQgc3R5bGUuXG4gICAgdmFyIGlubmVyR3JvdXAgPSBidWlsZEdyb3VwJDEoZ3JvdXAuYm9keSwgb3B0aW9ucy5oYXZpbmdDcmFtcGVkU3R5bGUoKSk7IC8vIENyZWF0ZSB0aGUgbGluZSBhYm92ZSB0aGUgYm9keVxuXG4gICAgdmFyIGxpbmUgPSBidWlsZENvbW1vbi5tYWtlTGluZVNwYW4oXCJvdmVybGluZS1saW5lXCIsIG9wdGlvbnMpOyAvLyBHZW5lcmF0ZSB0aGUgdmxpc3QsIHdpdGggdGhlIGFwcHJvcHJpYXRlIGtlcm5zXG5cbiAgICB2YXIgZGVmYXVsdFJ1bGVUaGlja25lc3MgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuZGVmYXVsdFJ1bGVUaGlja25lc3M7XG4gICAgdmFyIHZsaXN0ID0gYnVpbGRDb21tb24ubWFrZVZMaXN0KHtcbiAgICAgIHBvc2l0aW9uVHlwZTogXCJmaXJzdEJhc2VsaW5lXCIsXG4gICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGlubmVyR3JvdXBcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJrZXJuXCIsXG4gICAgICAgIHNpemU6IDMgKiBkZWZhdWx0UnVsZVRoaWNrbmVzc1xuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgZWxlbTogbGluZVxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogZGVmYXVsdFJ1bGVUaGlja25lc3NcbiAgICAgIH1dXG4gICAgfSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJvdmVybGluZVwiXSwgW3ZsaXN0XSwgb3B0aW9ucyk7XG4gIH0sXG5cbiAgbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBvcGVyYXRvciA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibW9cIiwgW25ldyBtYXRoTUxUcmVlLlRleHROb2RlKFwiXFx1MjAzZVwiKV0pO1xuICAgIG9wZXJhdG9yLnNldEF0dHJpYnV0ZShcInN0cmV0Y2h5XCIsIFwidHJ1ZVwiKTtcbiAgICB2YXIgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibW92ZXJcIiwgW2J1aWxkR3JvdXAoZ3JvdXAuYm9keSwgb3B0aW9ucyksIG9wZXJhdG9yXSk7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJhY2NlbnRcIiwgXCJ0cnVlXCIpO1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbn0pO1xuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwicGhhbnRvbVwiLFxuICBuYW1lczogW1wiXFxcXHBoYW50b21cIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG4gIGhhbmRsZXI6IChfcmVmLCBhcmdzKSA9PiB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJwaGFudG9tXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGJvZHk6IG9yZGFyZ3VtZW50KGJvZHkpXG4gICAgfTtcbiAgfSxcbiAgaHRtbEJ1aWxkZXI6IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAgIHZhciBlbGVtZW50cyA9IGJ1aWxkRXhwcmVzc2lvbiQxKGdyb3VwLmJvZHksIG9wdGlvbnMud2l0aFBoYW50b20oKSwgZmFsc2UpOyAvLyBcXHBoYW50b20gaXNuJ3Qgc3VwcG9zZWQgdG8gYWZmZWN0IHRoZSBlbGVtZW50cyBpdCBjb250YWlucy5cbiAgICAvLyBTZWUgXCJjb2xvclwiIGZvciBtb3JlIGRldGFpbHMuXG5cbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZUZyYWdtZW50KGVsZW1lbnRzKTtcbiAgfSxcbiAgbWF0aG1sQnVpbGRlcjogKGdyb3VwLCBvcHRpb25zKSA9PiB7XG4gICAgdmFyIGlubmVyID0gYnVpbGRFeHByZXNzaW9uKGdyb3VwLmJvZHksIG9wdGlvbnMpO1xuICAgIHJldHVybiBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1waGFudG9tXCIsIGlubmVyKTtcbiAgfVxufSk7XG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwiaHBoYW50b21cIixcbiAgbmFtZXM6IFtcIlxcXFxocGhhbnRvbVwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWVcbiAgfSxcbiAgaGFuZGxlcjogKF9yZWYyLCBhcmdzKSA9PiB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmMjtcbiAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiaHBoYW50b21cIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgYm9keVxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICB2YXIgbm9kZSA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtdLCBbYnVpbGRHcm91cCQxKGdyb3VwLmJvZHksIG9wdGlvbnMud2l0aFBoYW50b20oKSldKTtcbiAgICBub2RlLmhlaWdodCA9IDA7XG4gICAgbm9kZS5kZXB0aCA9IDA7XG5cbiAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG5vZGUuY2hpbGRyZW5baV0uaGVpZ2h0ID0gMDtcbiAgICAgICAgbm9kZS5jaGlsZHJlbltpXS5kZXB0aCA9IDA7XG4gICAgICB9XG4gICAgfSAvLyBTZWUgc21hc2ggZm9yIGNvbW1lbnQgcmU6IHVzZSBvZiBtYWtlVkxpc3RcblxuXG4gICAgbm9kZSA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwiZmlyc3RCYXNlbGluZVwiLFxuICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBub2RlXG4gICAgICB9XVxuICAgIH0sIG9wdGlvbnMpOyAvLyBGb3Igc3BhY2luZywgVGVYIHRyZWF0cyBcXHNtYXNoIGFzIGEgbWF0aCBncm91cCAoc2FtZSBzcGFjaW5nIGFzIG9yZCkuXG5cbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibW9yZFwiXSwgW25vZGVdLCBvcHRpb25zKTtcbiAgfSxcbiAgbWF0aG1sQnVpbGRlcjogKGdyb3VwLCBvcHRpb25zKSA9PiB7XG4gICAgdmFyIGlubmVyID0gYnVpbGRFeHByZXNzaW9uKG9yZGFyZ3VtZW50KGdyb3VwLmJvZHkpLCBvcHRpb25zKTtcbiAgICB2YXIgcGhhbnRvbSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXBoYW50b21cIiwgaW5uZXIpO1xuICAgIHZhciBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtcGFkZGVkXCIsIFtwaGFudG9tXSk7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIiwgXCIwcHhcIik7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJkZXB0aFwiLCBcIjBweFwiKTtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufSk7XG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwidnBoYW50b21cIixcbiAgbmFtZXM6IFtcIlxcXFx2cGhhbnRvbVwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWVcbiAgfSxcbiAgaGFuZGxlcjogKF9yZWYzLCBhcmdzKSA9PiB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmMztcbiAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwidnBoYW50b21cIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgYm9keVxuICAgIH07XG4gIH0sXG4gIGh0bWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICB2YXIgaW5uZXIgPSBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJpbm5lclwiXSwgW2J1aWxkR3JvdXAkMShncm91cC5ib2R5LCBvcHRpb25zLndpdGhQaGFudG9tKCkpXSk7XG4gICAgdmFyIGZpeCA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcImZpeFwiXSwgW10pO1xuICAgIHJldHVybiBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJtb3JkXCIsIFwicmxhcFwiXSwgW2lubmVyLCBmaXhdLCBvcHRpb25zKTtcbiAgfSxcbiAgbWF0aG1sQnVpbGRlcjogKGdyb3VwLCBvcHRpb25zKSA9PiB7XG4gICAgdmFyIGlubmVyID0gYnVpbGRFeHByZXNzaW9uKG9yZGFyZ3VtZW50KGdyb3VwLmJvZHkpLCBvcHRpb25zKTtcbiAgICB2YXIgcGhhbnRvbSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXBoYW50b21cIiwgaW5uZXIpO1xuICAgIHZhciBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtcGFkZGVkXCIsIFtwaGFudG9tXSk7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLCBcIjBweFwiKTtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufSk7XG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJyYWlzZWJveFwiLFxuICBuYW1lczogW1wiXFxcXHJhaXNlYm94XCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDIsXG4gICAgYXJnVHlwZXM6IFtcInNpemVcIiwgXCJoYm94XCJdLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWVcbiAgfSxcblxuICBoYW5kbGVyKF9yZWYsIGFyZ3MpIHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyXG4gICAgfSA9IF9yZWY7XG4gICAgdmFyIGFtb3VudCA9IGFzc2VydE5vZGVUeXBlKGFyZ3NbMF0sIFwic2l6ZVwiKS52YWx1ZTtcbiAgICB2YXIgYm9keSA9IGFyZ3NbMV07XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwicmFpc2Vib3hcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgZHk6IGFtb3VudCxcbiAgICAgIGJvZHlcbiAgICB9O1xuICB9LFxuXG4gIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIGJvZHkgPSBidWlsZEdyb3VwJDEoZ3JvdXAuYm9keSwgb3B0aW9ucyk7XG4gICAgdmFyIGR5ID0gY2FsY3VsYXRlU2l6ZShncm91cC5keSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwic2hpZnRcIixcbiAgICAgIHBvc2l0aW9uRGF0YTogLWR5LFxuICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBib2R5XG4gICAgICB9XVxuICAgIH0sIG9wdGlvbnMpO1xuICB9LFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXBhZGRlZFwiLCBbYnVpbGRHcm91cChncm91cC5ib2R5LCBvcHRpb25zKV0pO1xuICAgIHZhciBkeSA9IGdyb3VwLmR5Lm51bWJlciArIGdyb3VwLmR5LnVuaXQ7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJ2b2Zmc2V0XCIsIGR5KTtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG59KTtcblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcImludGVybmFsXCIsXG4gIG5hbWVzOiBbXCJcXFxccmVsYXhcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMCxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImludGVybmFsXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZVxuICAgIH07XG4gIH1cblxufSk7XG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJydWxlXCIsXG4gIG5hbWVzOiBbXCJcXFxccnVsZVwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAyLFxuICAgIG51bU9wdGlvbmFsQXJnczogMSxcbiAgICBhcmdUeXBlczogW1wic2l6ZVwiLCBcInNpemVcIiwgXCJzaXplXCJdXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmLCBhcmdzLCBvcHRBcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBzaGlmdCA9IG9wdEFyZ3NbMF07XG4gICAgdmFyIHdpZHRoID0gYXNzZXJ0Tm9kZVR5cGUoYXJnc1swXSwgXCJzaXplXCIpO1xuICAgIHZhciBoZWlnaHQgPSBhc3NlcnROb2RlVHlwZShhcmdzWzFdLCBcInNpemVcIik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwicnVsZVwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBzaGlmdDogc2hpZnQgJiYgYXNzZXJ0Tm9kZVR5cGUoc2hpZnQsIFwic2l6ZVwiKS52YWx1ZSxcbiAgICAgIHdpZHRoOiB3aWR0aC52YWx1ZSxcbiAgICAgIGhlaWdodDogaGVpZ2h0LnZhbHVlXG4gICAgfTtcbiAgfSxcblxuICBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIC8vIE1ha2UgYW4gZW1wdHkgc3BhbiBmb3IgdGhlIHJ1bGVcbiAgICB2YXIgcnVsZSA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJydWxlXCJdLCBbXSwgb3B0aW9ucyk7IC8vIENhbGN1bGF0ZSB0aGUgc2hpZnQsIHdpZHRoLCBhbmQgaGVpZ2h0IG9mIHRoZSBydWxlLCBhbmQgYWNjb3VudCBmb3IgdW5pdHNcblxuICAgIHZhciB3aWR0aCA9IGNhbGN1bGF0ZVNpemUoZ3JvdXAud2lkdGgsIG9wdGlvbnMpO1xuICAgIHZhciBoZWlnaHQgPSBjYWxjdWxhdGVTaXplKGdyb3VwLmhlaWdodCwgb3B0aW9ucyk7XG4gICAgdmFyIHNoaWZ0ID0gZ3JvdXAuc2hpZnQgPyBjYWxjdWxhdGVTaXplKGdyb3VwLnNoaWZ0LCBvcHRpb25zKSA6IDA7IC8vIFN0eWxlIHRoZSBydWxlIHRvIHRoZSByaWdodCBzaXplXG5cbiAgICBydWxlLnN0eWxlLmJvcmRlclJpZ2h0V2lkdGggPSBtYWtlRW0od2lkdGgpO1xuICAgIHJ1bGUuc3R5bGUuYm9yZGVyVG9wV2lkdGggPSBtYWtlRW0oaGVpZ2h0KTtcbiAgICBydWxlLnN0eWxlLmJvdHRvbSA9IG1ha2VFbShzaGlmdCk7IC8vIFJlY29yZCB0aGUgaGVpZ2h0IGFuZCB3aWR0aFxuXG4gICAgcnVsZS53aWR0aCA9IHdpZHRoO1xuICAgIHJ1bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgc2hpZnQ7XG4gICAgcnVsZS5kZXB0aCA9IC1zaGlmdDsgLy8gRm9udCBzaXplIGlzIHRoZSBudW1iZXIgbGFyZ2UgZW5vdWdoIHRoYXQgdGhlIGJyb3dzZXIgd2lsbFxuICAgIC8vIHJlc2VydmUgYXQgbGVhc3QgYGFic0hlaWdodGAgc3BhY2UgYWJvdmUgdGhlIGJhc2VsaW5lLlxuICAgIC8vIFRoZSAxLjEyNSBmYWN0b3Igd2FzIGVtcGlyaWNhbGx5IGRldGVybWluZWRcblxuICAgIHJ1bGUubWF4Rm9udFNpemUgPSBoZWlnaHQgKiAxLjEyNSAqIG9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gICAgcmV0dXJuIHJ1bGU7XG4gIH0sXG5cbiAgbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciB3aWR0aCA9IGNhbGN1bGF0ZVNpemUoZ3JvdXAud2lkdGgsIG9wdGlvbnMpO1xuICAgIHZhciBoZWlnaHQgPSBjYWxjdWxhdGVTaXplKGdyb3VwLmhlaWdodCwgb3B0aW9ucyk7XG4gICAgdmFyIHNoaWZ0ID0gZ3JvdXAuc2hpZnQgPyBjYWxjdWxhdGVTaXplKGdyb3VwLnNoaWZ0LCBvcHRpb25zKSA6IDA7XG4gICAgdmFyIGNvbG9yID0gb3B0aW9ucy5jb2xvciAmJiBvcHRpb25zLmdldENvbG9yKCkgfHwgXCJibGFja1wiO1xuICAgIHZhciBydWxlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtc3BhY2VcIik7XG4gICAgcnVsZS5zZXRBdHRyaWJ1dGUoXCJtYXRoYmFja2dyb3VuZFwiLCBjb2xvcik7XG4gICAgcnVsZS5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLCBtYWtlRW0od2lkdGgpKTtcbiAgICBydWxlLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBtYWtlRW0oaGVpZ2h0KSk7XG4gICAgdmFyIHdyYXBwZXIgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1wYWRkZWRcIiwgW3J1bGVdKTtcblxuICAgIGlmIChzaGlmdCA+PSAwKSB7XG4gICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBtYWtlRW0oc2hpZnQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIiwgbWFrZUVtKHNoaWZ0KSk7XG4gICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZShcImRlcHRoXCIsIG1ha2VFbSgtc2hpZnQpKTtcbiAgICB9XG5cbiAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZShcInZvZmZzZXRcIiwgbWFrZUVtKHNoaWZ0KSk7XG4gICAgcmV0dXJuIHdyYXBwZXI7XG4gIH1cblxufSk7XG5cbmZ1bmN0aW9uIHNpemluZ0dyb3VwKHZhbHVlLCBvcHRpb25zLCBiYXNlT3B0aW9ucykge1xuICB2YXIgaW5uZXIgPSBidWlsZEV4cHJlc3Npb24kMSh2YWx1ZSwgb3B0aW9ucywgZmFsc2UpO1xuICB2YXIgbXVsdGlwbGllciA9IG9wdGlvbnMuc2l6ZU11bHRpcGxpZXIgLyBiYXNlT3B0aW9ucy5zaXplTXVsdGlwbGllcjsgLy8gQWRkIHNpemUtcmVzZXR0aW5nIGNsYXNzZXMgdG8gdGhlIGlubmVyIGxpc3QgYW5kIHNldCBtYXhGb250U2l6ZVxuICAvLyBtYW51YWxseS4gSGFuZGxlIG5lc3RlZCBzaXplIGNoYW5nZXMuXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbm5lci5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwb3MgPSBpbm5lcltpXS5jbGFzc2VzLmluZGV4T2YoXCJzaXppbmdcIik7XG5cbiAgICBpZiAocG9zIDwgMCkge1xuICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoaW5uZXJbaV0uY2xhc3Nlcywgb3B0aW9ucy5zaXppbmdDbGFzc2VzKGJhc2VPcHRpb25zKSk7XG4gICAgfSBlbHNlIGlmIChpbm5lcltpXS5jbGFzc2VzW3BvcyArIDFdID09PSBcInJlc2V0LXNpemVcIiArIG9wdGlvbnMuc2l6ZSkge1xuICAgICAgLy8gVGhpcyBpcyBhIG5lc3RlZCBzaXplIGNoYW5nZTogZS5nLiwgaW5uZXJbaV0gaXMgdGhlIFwiYlwiIGluXG4gICAgICAvLyBgXFxIdWdlIGEgXFxzbWFsbCBiYC4gT3ZlcnJpZGUgdGhlIG9sZCBzaXplICh0aGUgYHJlc2V0LWAgY2xhc3MpXG4gICAgICAvLyBidXQgbm90IHRoZSBuZXcgc2l6ZS5cbiAgICAgIGlubmVyW2ldLmNsYXNzZXNbcG9zICsgMV0gPSBcInJlc2V0LXNpemVcIiArIGJhc2VPcHRpb25zLnNpemU7XG4gICAgfVxuXG4gICAgaW5uZXJbaV0uaGVpZ2h0ICo9IG11bHRpcGxpZXI7XG4gICAgaW5uZXJbaV0uZGVwdGggKj0gbXVsdGlwbGllcjtcbiAgfVxuXG4gIHJldHVybiBidWlsZENvbW1vbi5tYWtlRnJhZ21lbnQoaW5uZXIpO1xufVxudmFyIHNpemVGdW5jcyA9IFtcIlxcXFx0aW55XCIsIFwiXFxcXHNpeHB0c2l6ZVwiLCBcIlxcXFxzY3JpcHRzaXplXCIsIFwiXFxcXGZvb3Rub3Rlc2l6ZVwiLCBcIlxcXFxzbWFsbFwiLCBcIlxcXFxub3JtYWxzaXplXCIsIFwiXFxcXGxhcmdlXCIsIFwiXFxcXExhcmdlXCIsIFwiXFxcXExBUkdFXCIsIFwiXFxcXGh1Z2VcIiwgXCJcXFxcSHVnZVwiXTtcbnZhciBodG1sQnVpbGRlciA9IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAvLyBIYW5kbGUgc2l6aW5nIG9wZXJhdG9ycyBsaWtlIFxcSHVnZS4gUmVhbCBUZVggZG9lc24ndCBhY3R1YWxseSBhbGxvd1xuICAvLyB0aGVzZSBmdW5jdGlvbnMgaW5zaWRlIG9mIG1hdGggZXhwcmVzc2lvbnMsIHNvIHdlIGRvIHNvbWUgc3BlY2lhbFxuICAvLyBoYW5kbGluZy5cbiAgdmFyIG5ld09wdGlvbnMgPSBvcHRpb25zLmhhdmluZ1NpemUoZ3JvdXAuc2l6ZSk7XG4gIHJldHVybiBzaXppbmdHcm91cChncm91cC5ib2R5LCBuZXdPcHRpb25zLCBvcHRpb25zKTtcbn07XG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwic2l6aW5nXCIsXG4gIG5hbWVzOiBzaXplRnVuY3MsXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMCxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG4gIGhhbmRsZXI6IChfcmVmLCBhcmdzKSA9PiB7XG4gICAgdmFyIHtcbiAgICAgIGJyZWFrT25Ub2tlblRleHQsXG4gICAgICBmdW5jTmFtZSxcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHZhciBib2R5ID0gcGFyc2VyLnBhcnNlRXhwcmVzc2lvbihmYWxzZSwgYnJlYWtPblRva2VuVGV4dCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwic2l6aW5nXCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIC8vIEZpZ3VyZSBvdXQgd2hhdCBzaXplIHRvIHVzZSBiYXNlZCBvbiB0aGUgbGlzdCBvZiBmdW5jdGlvbnMgYWJvdmVcbiAgICAgIHNpemU6IHNpemVGdW5jcy5pbmRleE9mKGZ1bmNOYW1lKSArIDEsXG4gICAgICBib2R5XG4gICAgfTtcbiAgfSxcbiAgaHRtbEJ1aWxkZXIsXG4gIG1hdGhtbEJ1aWxkZXI6IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAgIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTaXplKGdyb3VwLnNpemUpO1xuICAgIHZhciBpbm5lciA9IGJ1aWxkRXhwcmVzc2lvbihncm91cC5ib2R5LCBuZXdPcHRpb25zKTtcbiAgICB2YXIgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXN0eWxlXCIsIGlubmVyKTsgLy8gVE9ETyhlbWlseSk6IFRoaXMgZG9lc24ndCBwcm9kdWNlIHRoZSBjb3JyZWN0IHNpemUgZm9yIG5lc3RlZCBzaXplXG4gICAgLy8gY2hhbmdlcywgYmVjYXVzZSB3ZSBkb24ndCBrZWVwIHN0YXRlIG9mIHdoYXQgc3R5bGUgd2UncmUgY3VycmVudGx5XG4gICAgLy8gaW4sIHNvIHdlIGNhbid0IHJlc2V0IHRoZSBzaXplIHRvIG5vcm1hbCBiZWZvcmUgY2hhbmdpbmcgaXQuICBOb3dcbiAgICAvLyB0aGF0IHdlJ3JlIHBhc3NpbmcgYW4gb3B0aW9ucyBwYXJhbWV0ZXIgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZml4XG4gICAgLy8gdGhpcy5cblxuICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibWF0aHNpemVcIiwgbWFrZUVtKG5ld09wdGlvbnMuc2l6ZU11bHRpcGxpZXIpKTtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufSk7XG5cbi8vIHNtYXNoLCB3aXRoIG9wdGlvbmFsIFt0Yl0sIGFzIGluIEFNU1xuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcInNtYXNoXCIsXG4gIG5hbWVzOiBbXCJcXFxcc21hc2hcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBudW1PcHRpb25hbEFyZ3M6IDEsXG4gICAgYWxsb3dlZEluVGV4dDogdHJ1ZVxuICB9LFxuICBoYW5kbGVyOiAoX3JlZiwgYXJncywgb3B0QXJncykgPT4ge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXJcbiAgICB9ID0gX3JlZjtcbiAgICB2YXIgc21hc2hIZWlnaHQgPSBmYWxzZTtcbiAgICB2YXIgc21hc2hEZXB0aCA9IGZhbHNlO1xuICAgIHZhciB0YkFyZyA9IG9wdEFyZ3NbMF0gJiYgYXNzZXJ0Tm9kZVR5cGUob3B0QXJnc1swXSwgXCJvcmRncm91cFwiKTtcblxuICAgIGlmICh0YkFyZykge1xuICAgICAgLy8gT3B0aW9uYWwgW3RiXSBhcmd1bWVudCBpcyBlbmdhZ2VkLlxuICAgICAgLy8gcmVmOiBhbXNtYXRoOiBcXHJlbmV3Y29tbWFuZHtcXHNtYXNofVsxXVt0Yl17JVxuICAgICAgLy8gICAgICAgICAgICAgICBkZWZcXG1iQHR7XFxodH1cXGRlZlxcbWJAYntcXGRwfVxcZGVmXFxtYkB0YntcXGh0XFx6QFxcekBcXGRwfSVcbiAgICAgIHZhciBsZXR0ZXIgPSBcIlwiO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRiQXJnLmJvZHkubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgdmFyIG5vZGUgPSB0YkFyZy5ib2R5W2ldOyAvLyAkRmxvd0ZpeE1lOiBOb3QgZXZlcnkgbm9kZSB0eXBlIGhhcyBhIGB0ZXh0YCBwcm9wZXJ0eS5cblxuICAgICAgICBsZXR0ZXIgPSBub2RlLnRleHQ7XG5cbiAgICAgICAgaWYgKGxldHRlciA9PT0gXCJ0XCIpIHtcbiAgICAgICAgICBzbWFzaEhlaWdodCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAobGV0dGVyID09PSBcImJcIikge1xuICAgICAgICAgIHNtYXNoRGVwdGggPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNtYXNoSGVpZ2h0ID0gZmFsc2U7XG4gICAgICAgICAgc21hc2hEZXB0aCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNtYXNoSGVpZ2h0ID0gdHJ1ZTtcbiAgICAgIHNtYXNoRGVwdGggPSB0cnVlO1xuICAgIH1cblxuICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJzbWFzaFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBib2R5LFxuICAgICAgc21hc2hIZWlnaHQsXG4gICAgICBzbWFzaERlcHRoXG4gICAgfTtcbiAgfSxcbiAgaHRtbEJ1aWxkZXI6IChncm91cCwgb3B0aW9ucykgPT4ge1xuICAgIHZhciBub2RlID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW10sIFtidWlsZEdyb3VwJDEoZ3JvdXAuYm9keSwgb3B0aW9ucyldKTtcblxuICAgIGlmICghZ3JvdXAuc21hc2hIZWlnaHQgJiYgIWdyb3VwLnNtYXNoRGVwdGgpIHtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH1cblxuICAgIGlmIChncm91cC5zbWFzaEhlaWdodCkge1xuICAgICAgbm9kZS5oZWlnaHQgPSAwOyAvLyBJbiBvcmRlciB0byBpbmZsdWVuY2UgbWFrZVZMaXN0LCB3ZSBoYXZlIHRvIHJlc2V0IHRoZSBjaGlsZHJlbi5cblxuICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgbm9kZS5jaGlsZHJlbltpXS5oZWlnaHQgPSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGdyb3VwLnNtYXNoRGVwdGgpIHtcbiAgICAgIG5vZGUuZGVwdGggPSAwO1xuXG4gICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbm9kZS5jaGlsZHJlbi5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICBub2RlLmNoaWxkcmVuW19pXS5kZXB0aCA9IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IC8vIEF0IHRoaXMgcG9pbnQsIHdlJ3ZlIHJlc2V0IHRoZSBUZVgtbGlrZSBoZWlnaHQgYW5kIGRlcHRoIHZhbHVlcy5cbiAgICAvLyBCdXQgdGhlIHNwYW4gc3RpbGwgaGFzIGFuIEhUTUwgbGluZSBoZWlnaHQuXG4gICAgLy8gbWFrZVZMaXN0IGFwcGxpZXMgXCJkaXNwbGF5OiB0YWJsZS1jZWxsXCIsIHdoaWNoIHByZXZlbnRzIHRoZSBicm93c2VyXG4gICAgLy8gZnJvbSBhY3Rpbmcgb24gdGhhdCBsaW5lIGhlaWdodC4gU28gd2UnbGwgY2FsbCBtYWtlVkxpc3Qgbm93LlxuXG5cbiAgICB2YXIgc21hc2hlZE5vZGUgPSBidWlsZENvbW1vbi5tYWtlVkxpc3Qoe1xuICAgICAgcG9zaXRpb25UeXBlOiBcImZpcnN0QmFzZWxpbmVcIixcbiAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgZWxlbTogbm9kZVxuICAgICAgfV1cbiAgICB9LCBvcHRpb25zKTsgLy8gRm9yIHNwYWNpbmcsIFRlWCB0cmVhdHMgXFxocGhhbnRvbSBhcyBhIG1hdGggZ3JvdXAgKHNhbWUgc3BhY2luZyBhcyBvcmQpLlxuXG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1vcmRcIl0sIFtzbWFzaGVkTm9kZV0sIG9wdGlvbnMpO1xuICB9LFxuICBtYXRobWxCdWlsZGVyOiAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgICB2YXIgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXBhZGRlZFwiLCBbYnVpbGRHcm91cChncm91cC5ib2R5LCBvcHRpb25zKV0pO1xuXG4gICAgaWYgKGdyb3VwLnNtYXNoSGVpZ2h0KSB7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBcIjBweFwiKTtcbiAgICB9XG5cbiAgICBpZiAoZ3JvdXAuc21hc2hEZXB0aCkge1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJkZXB0aFwiLCBcIjBweFwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufSk7XG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJzcXJ0XCIsXG4gIG5hbWVzOiBbXCJcXFxcc3FydFwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIG51bU9wdGlvbmFsQXJnczogMVxuICB9LFxuXG4gIGhhbmRsZXIoX3JlZiwgYXJncywgb3B0QXJncykge1xuICAgIHZhciB7XG4gICAgICBwYXJzZXJcbiAgICB9ID0gX3JlZjtcbiAgICB2YXIgaW5kZXggPSBvcHRBcmdzWzBdO1xuICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJzcXJ0XCIsXG4gICAgICBtb2RlOiBwYXJzZXIubW9kZSxcbiAgICAgIGJvZHksXG4gICAgICBpbmRleFxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAvLyBTcXVhcmUgcm9vdHMgYXJlIGhhbmRsZWQgaW4gdGhlIFRlWGJvb2sgcGcuIDQ0MywgUnVsZSAxMS5cbiAgICAvLyBGaXJzdCwgd2UgZG8gdGhlIHNhbWUgc3RlcHMgYXMgaW4gb3ZlcmxpbmUgdG8gYnVpbGQgdGhlIGlubmVyIGdyb3VwXG4gICAgLy8gYW5kIGxpbmVcbiAgICB2YXIgaW5uZXIgPSBidWlsZEdyb3VwJDEoZ3JvdXAuYm9keSwgb3B0aW9ucy5oYXZpbmdDcmFtcGVkU3R5bGUoKSk7XG5cbiAgICBpZiAoaW5uZXIuaGVpZ2h0ID09PSAwKSB7XG4gICAgICAvLyBSZW5kZXIgYSBzbWFsbCBzdXJkLlxuICAgICAgaW5uZXIuaGVpZ2h0ID0gb3B0aW9ucy5mb250TWV0cmljcygpLnhIZWlnaHQ7XG4gICAgfSAvLyBTb21lIGdyb3VwcyBjYW4gcmV0dXJuIGRvY3VtZW50IGZyYWdtZW50cy4gIEhhbmRsZSB0aG9zZSBieSB3cmFwcGluZ1xuICAgIC8vIHRoZW0gaW4gYSBzcGFuLlxuXG5cbiAgICBpbm5lciA9IGJ1aWxkQ29tbW9uLndyYXBGcmFnbWVudChpbm5lciwgb3B0aW9ucyk7IC8vIENhbGN1bGF0ZSB0aGUgbWluaW11bSBzaXplIGZvciB0aGUgXFxzdXJkIGRlbGltaXRlclxuXG4gICAgdmFyIG1ldHJpY3MgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCk7XG4gICAgdmFyIHRoZXRhID0gbWV0cmljcy5kZWZhdWx0UnVsZVRoaWNrbmVzcztcbiAgICB2YXIgcGhpID0gdGhldGE7XG5cbiAgICBpZiAob3B0aW9ucy5zdHlsZS5pZCA8IFN0eWxlJDEuVEVYVC5pZCkge1xuICAgICAgcGhpID0gb3B0aW9ucy5mb250TWV0cmljcygpLnhIZWlnaHQ7XG4gICAgfSAvLyBDYWxjdWxhdGUgdGhlIGNsZWFyYW5jZSBiZXR3ZWVuIHRoZSBib2R5IGFuZCBsaW5lXG5cblxuICAgIHZhciBsaW5lQ2xlYXJhbmNlID0gdGhldGEgKyBwaGkgLyA0O1xuICAgIHZhciBtaW5EZWxpbWl0ZXJIZWlnaHQgPSBpbm5lci5oZWlnaHQgKyBpbm5lci5kZXB0aCArIGxpbmVDbGVhcmFuY2UgKyB0aGV0YTsgLy8gQ3JlYXRlIGEgc3FydCBTVkcgb2YgdGhlIHJlcXVpcmVkIG1pbmltdW0gc2l6ZVxuXG4gICAgdmFyIHtcbiAgICAgIHNwYW46IGltZyxcbiAgICAgIHJ1bGVXaWR0aCxcbiAgICAgIGFkdmFuY2VXaWR0aFxuICAgIH0gPSBkZWxpbWl0ZXIuc3FydEltYWdlKG1pbkRlbGltaXRlckhlaWdodCwgb3B0aW9ucyk7XG4gICAgdmFyIGRlbGltRGVwdGggPSBpbWcuaGVpZ2h0IC0gcnVsZVdpZHRoOyAvLyBBZGp1c3QgdGhlIGNsZWFyYW5jZSBiYXNlZCBvbiB0aGUgZGVsaW1pdGVyIHNpemVcblxuICAgIGlmIChkZWxpbURlcHRoID4gaW5uZXIuaGVpZ2h0ICsgaW5uZXIuZGVwdGggKyBsaW5lQ2xlYXJhbmNlKSB7XG4gICAgICBsaW5lQ2xlYXJhbmNlID0gKGxpbmVDbGVhcmFuY2UgKyBkZWxpbURlcHRoIC0gaW5uZXIuaGVpZ2h0IC0gaW5uZXIuZGVwdGgpIC8gMjtcbiAgICB9IC8vIFNoaWZ0IHRoZSBzcXJ0IGltYWdlXG5cblxuICAgIHZhciBpbWdTaGlmdCA9IGltZy5oZWlnaHQgLSBpbm5lci5oZWlnaHQgLSBsaW5lQ2xlYXJhbmNlIC0gcnVsZVdpZHRoO1xuICAgIGlubmVyLnN0eWxlLnBhZGRpbmdMZWZ0ID0gbWFrZUVtKGFkdmFuY2VXaWR0aCk7IC8vIE92ZXJsYXkgdGhlIGltYWdlIGFuZCB0aGUgYXJndW1lbnQuXG5cbiAgICB2YXIgYm9keSA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICBwb3NpdGlvblR5cGU6IFwiZmlyc3RCYXNlbGluZVwiLFxuICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBpbm5lcixcbiAgICAgICAgd3JhcHBlckNsYXNzZXM6IFtcInN2Zy1hbGlnblwiXVxuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogLShpbm5lci5oZWlnaHQgKyBpbWdTaGlmdClcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGltZ1xuICAgICAgfSwge1xuICAgICAgICB0eXBlOiBcImtlcm5cIixcbiAgICAgICAgc2l6ZTogcnVsZVdpZHRoXG4gICAgICB9XVxuICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFncm91cC5pbmRleCkge1xuICAgICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJzcXJ0XCJdLCBbYm9keV0sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBIYW5kbGUgdGhlIG9wdGlvbmFsIHJvb3QgaW5kZXhcbiAgICAgIC8vIFRoZSBpbmRleCBpcyBhbHdheXMgaW4gc2NyaXB0c2NyaXB0IHN0eWxlXG4gICAgICB2YXIgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nU3R5bGUoU3R5bGUkMS5TQ1JJUFRTQ1JJUFQpO1xuICAgICAgdmFyIHJvb3RtID0gYnVpbGRHcm91cCQxKGdyb3VwLmluZGV4LCBuZXdPcHRpb25zLCBvcHRpb25zKTsgLy8gVGhlIGFtb3VudCB0aGUgaW5kZXggaXMgc2hpZnRlZCBieS4gVGhpcyBpcyB0YWtlbiBmcm9tIHRoZSBUZVhcbiAgICAgIC8vIHNvdXJjZSwgaW4gdGhlIGRlZmluaXRpb24gb2YgYFxcckBAdGAuXG5cbiAgICAgIHZhciB0b1NoaWZ0ID0gMC42ICogKGJvZHkuaGVpZ2h0IC0gYm9keS5kZXB0aCk7IC8vIEJ1aWxkIGEgVkxpc3Qgd2l0aCB0aGUgc3VwZXJzY3JpcHQgc2hpZnRlZCB1cCBjb3JyZWN0bHlcblxuICAgICAgdmFyIHJvb3RWTGlzdCA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICAgIHBvc2l0aW9uVHlwZTogXCJzaGlmdFwiLFxuICAgICAgICBwb3NpdGlvbkRhdGE6IC10b1NoaWZ0LFxuICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgICBlbGVtOiByb290bVxuICAgICAgICB9XVxuICAgICAgfSwgb3B0aW9ucyk7IC8vIEFkZCBhIGNsYXNzIHN1cnJvdW5kaW5nIGl0IHNvIHdlIGNhbiBhZGQgb24gdGhlIGFwcHJvcHJpYXRlXG4gICAgICAvLyBrZXJuaW5nXG5cbiAgICAgIHZhciByb290Vkxpc3RXcmFwID0gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wicm9vdFwiXSwgW3Jvb3RWTGlzdF0pO1xuICAgICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJzcXJ0XCJdLCBbcm9vdFZMaXN0V3JhcCwgYm9keV0sIG9wdGlvbnMpO1xuICAgIH1cbiAgfSxcblxuICBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIHtcbiAgICAgIGJvZHksXG4gICAgICBpbmRleFxuICAgIH0gPSBncm91cDtcbiAgICByZXR1cm4gaW5kZXggPyBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1yb290XCIsIFtidWlsZEdyb3VwKGJvZHksIG9wdGlvbnMpLCBidWlsZEdyb3VwKGluZGV4LCBvcHRpb25zKV0pIDogbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtc3FydFwiLCBbYnVpbGRHcm91cChib2R5LCBvcHRpb25zKV0pO1xuICB9XG5cbn0pO1xuXG52YXIgc3R5bGVNYXAgPSB7XG4gIFwiZGlzcGxheVwiOiBTdHlsZSQxLkRJU1BMQVksXG4gIFwidGV4dFwiOiBTdHlsZSQxLlRFWFQsXG4gIFwic2NyaXB0XCI6IFN0eWxlJDEuU0NSSVBULFxuICBcInNjcmlwdHNjcmlwdFwiOiBTdHlsZSQxLlNDUklQVFNDUklQVFxufTtcbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJzdHlsaW5nXCIsXG4gIG5hbWVzOiBbXCJcXFxcZGlzcGxheXN0eWxlXCIsIFwiXFxcXHRleHRzdHlsZVwiLCBcIlxcXFxzY3JpcHRzdHlsZVwiLCBcIlxcXFxzY3JpcHRzY3JpcHRzdHlsZVwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAwLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWUsXG4gICAgcHJpbWl0aXZlOiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmLCBhcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIGJyZWFrT25Ub2tlblRleHQsXG4gICAgICBmdW5jTmFtZSxcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIC8vIHBhcnNlIG91dCB0aGUgaW1wbGljaXQgYm9keVxuICAgIHZhciBib2R5ID0gcGFyc2VyLnBhcnNlRXhwcmVzc2lvbih0cnVlLCBicmVha09uVG9rZW5UZXh0KTsgLy8gVE9ETzogUmVmYWN0b3IgdG8gYXZvaWQgZHVwbGljYXRpbmcgc3R5bGVNYXAgaW4gbXVsdGlwbGUgcGxhY2VzIChlLmcuXG4gICAgLy8gaGVyZSBhbmQgaW4gYnVpbGRIVE1MIGFuZCBkZS1kdXBlIHRoZSBlbnVtZXJhdGlvbiBvZiBhbGwgdGhlIHN0eWxlcykuXG4gICAgLy8gJEZsb3dGaXhNZTogVGhlIG5hbWVzIGFib3ZlIGV4YWN0bHkgbWF0Y2ggdGhlIHN0eWxlcy5cblxuICAgIHZhciBzdHlsZSA9IGZ1bmNOYW1lLnNsaWNlKDEsIGZ1bmNOYW1lLmxlbmd0aCAtIDUpO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcInN0eWxpbmdcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgLy8gRmlndXJlIG91dCB3aGF0IHN0eWxlIHRvIHVzZSBieSBwdWxsaW5nIG91dCB0aGUgc3R5bGUgZnJvbVxuICAgICAgLy8gdGhlIGZ1bmN0aW9uIG5hbWVcbiAgICAgIHN0eWxlLFxuICAgICAgYm9keVxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAvLyBTdHlsZSBjaGFuZ2VzIGFyZSBoYW5kbGVkIGluIHRoZSBUZVhib29rIG9uIHBnLiA0NDIsIFJ1bGUgMy5cbiAgICB2YXIgbmV3U3R5bGUgPSBzdHlsZU1hcFtncm91cC5zdHlsZV07XG4gICAgdmFyIG5ld09wdGlvbnMgPSBvcHRpb25zLmhhdmluZ1N0eWxlKG5ld1N0eWxlKS53aXRoRm9udCgnJyk7XG4gICAgcmV0dXJuIHNpemluZ0dyb3VwKGdyb3VwLmJvZHksIG5ld09wdGlvbnMsIG9wdGlvbnMpO1xuICB9LFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAvLyBGaWd1cmUgb3V0IHdoYXQgc3R5bGUgd2UncmUgY2hhbmdpbmcgdG8uXG4gICAgdmFyIG5ld1N0eWxlID0gc3R5bGVNYXBbZ3JvdXAuc3R5bGVdO1xuICAgIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShuZXdTdHlsZSk7XG4gICAgdmFyIGlubmVyID0gYnVpbGRFeHByZXNzaW9uKGdyb3VwLmJvZHksIG5ld09wdGlvbnMpO1xuICAgIHZhciBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtc3R5bGVcIiwgaW5uZXIpO1xuICAgIHZhciBzdHlsZUF0dHJpYnV0ZXMgPSB7XG4gICAgICBcImRpc3BsYXlcIjogW1wiMFwiLCBcInRydWVcIl0sXG4gICAgICBcInRleHRcIjogW1wiMFwiLCBcImZhbHNlXCJdLFxuICAgICAgXCJzY3JpcHRcIjogW1wiMVwiLCBcImZhbHNlXCJdLFxuICAgICAgXCJzY3JpcHRzY3JpcHRcIjogW1wiMlwiLCBcImZhbHNlXCJdXG4gICAgfTtcbiAgICB2YXIgYXR0ciA9IHN0eWxlQXR0cmlidXRlc1tncm91cC5zdHlsZV07XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJzY3JpcHRsZXZlbFwiLCBhdHRyWzBdKTtcbiAgICBub2RlLnNldEF0dHJpYnV0ZShcImRpc3BsYXlzdHlsZVwiLCBhdHRyWzFdKTtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG59KTtcblxuLyoqXG4gKiBTb21ldGltZXMsIGdyb3VwcyBwZXJmb3JtIHNwZWNpYWwgcnVsZXMgd2hlbiB0aGV5IGhhdmUgc3VwZXJzY3JpcHRzIG9yXG4gKiBzdWJzY3JpcHRzIGF0dGFjaGVkIHRvIHRoZW0uIFRoaXMgZnVuY3Rpb24gbGV0cyB0aGUgYHN1cHN1YmAgZ3JvdXAga25vdyB0aGF0XG4gKiBTb21ldGltZXMsIGdyb3VwcyBwZXJmb3JtIHNwZWNpYWwgcnVsZXMgd2hlbiB0aGV5IGhhdmUgc3VwZXJzY3JpcHRzIG9yXG4gKiBpdHMgaW5uZXIgZWxlbWVudCBzaG91bGQgaGFuZGxlIHRoZSBzdXBlcnNjcmlwdHMgYW5kIHN1YnNjcmlwdHMgaW5zdGVhZCBvZlxuICogaGFuZGxpbmcgdGhlbSBpdHNlbGYuXG4gKi9cbnZhciBodG1sQnVpbGRlckRlbGVnYXRlID0gZnVuY3Rpb24gaHRtbEJ1aWxkZXJEZWxlZ2F0ZShncm91cCwgb3B0aW9ucykge1xuICB2YXIgYmFzZSA9IGdyb3VwLmJhc2U7XG5cbiAgaWYgKCFiYXNlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSBpZiAoYmFzZS50eXBlID09PSBcIm9wXCIpIHtcbiAgICAvLyBPcGVyYXRvcnMgaGFuZGxlIHN1cHN1YnMgZGlmZmVyZW50bHkgd2hlbiB0aGV5IGhhdmUgbGltaXRzXG4gICAgLy8gKGUuZy4gYFxcZGlzcGxheXN0eWxlXFxzdW1fMl4zYClcbiAgICB2YXIgZGVsZWdhdGUgPSBiYXNlLmxpbWl0cyAmJiAob3B0aW9ucy5zdHlsZS5zaXplID09PSBTdHlsZSQxLkRJU1BMQVkuc2l6ZSB8fCBiYXNlLmFsd2F5c0hhbmRsZVN1cFN1Yik7XG4gICAgcmV0dXJuIGRlbGVnYXRlID8gaHRtbEJ1aWxkZXIkMiA6IG51bGw7XG4gIH0gZWxzZSBpZiAoYmFzZS50eXBlID09PSBcIm9wZXJhdG9ybmFtZVwiKSB7XG4gICAgdmFyIF9kZWxlZ2F0ZSA9IGJhc2UuYWx3YXlzSGFuZGxlU3VwU3ViICYmIChvcHRpb25zLnN0eWxlLnNpemUgPT09IFN0eWxlJDEuRElTUExBWS5zaXplIHx8IGJhc2UubGltaXRzKTtcblxuICAgIHJldHVybiBfZGVsZWdhdGUgPyBodG1sQnVpbGRlciQxIDogbnVsbDtcbiAgfSBlbHNlIGlmIChiYXNlLnR5cGUgPT09IFwiYWNjZW50XCIpIHtcbiAgICByZXR1cm4gdXRpbHMuaXNDaGFyYWN0ZXJCb3goYmFzZS5iYXNlKSA/IGh0bWxCdWlsZGVyJGEgOiBudWxsO1xuICB9IGVsc2UgaWYgKGJhc2UudHlwZSA9PT0gXCJob3JpekJyYWNlXCIpIHtcbiAgICB2YXIgaXNTdXAgPSAhZ3JvdXAuc3ViO1xuICAgIHJldHVybiBpc1N1cCA9PT0gYmFzZS5pc092ZXIgPyBodG1sQnVpbGRlciQzIDogbnVsbDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufTsgLy8gU3VwZXIgc2NyaXB0cyBhbmQgc3Vic2NyaXB0cywgd2hvc2UgcHJlY2lzZSBwbGFjZW1lbnQgY2FuIGRlcGVuZCBvbiBvdGhlclxuLy8gZnVuY3Rpb25zIHRoYXQgcHJlY2VkZSB0aGVtLlxuXG5cbmRlZmluZUZ1bmN0aW9uQnVpbGRlcnMoe1xuICB0eXBlOiBcInN1cHN1YlwiLFxuXG4gIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgLy8gU3VwZXJzY3JpcHQgYW5kIHN1YnNjcmlwdHMgYXJlIGhhbmRsZWQgaW4gdGhlIFRlWGJvb2sgb24gcGFnZVxuICAgIC8vIDQ0NS00NDYsIHJ1bGVzIDE4KGEtZikuXG4gICAgLy8gSGVyZSBpcyB3aGVyZSB3ZSBkZWZlciB0byB0aGUgaW5uZXIgZ3JvdXAgaWYgaXQgc2hvdWxkIGhhbmRsZVxuICAgIC8vIHN1cGVyc2NyaXB0cyBhbmQgc3Vic2NyaXB0cyBpdHNlbGYuXG4gICAgdmFyIGJ1aWxkZXJEZWxlZ2F0ZSA9IGh0bWxCdWlsZGVyRGVsZWdhdGUoZ3JvdXAsIG9wdGlvbnMpO1xuXG4gICAgaWYgKGJ1aWxkZXJEZWxlZ2F0ZSkge1xuICAgICAgcmV0dXJuIGJ1aWxkZXJEZWxlZ2F0ZShncm91cCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgdmFyIHtcbiAgICAgIGJhc2U6IHZhbHVlQmFzZSxcbiAgICAgIHN1cDogdmFsdWVTdXAsXG4gICAgICBzdWI6IHZhbHVlU3ViXG4gICAgfSA9IGdyb3VwO1xuICAgIHZhciBiYXNlID0gYnVpbGRHcm91cCQxKHZhbHVlQmFzZSwgb3B0aW9ucyk7XG4gICAgdmFyIHN1cG07XG4gICAgdmFyIHN1Ym07XG4gICAgdmFyIG1ldHJpY3MgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCk7IC8vIFJ1bGUgMThhXG5cbiAgICB2YXIgc3VwU2hpZnQgPSAwO1xuICAgIHZhciBzdWJTaGlmdCA9IDA7XG4gICAgdmFyIGlzQ2hhcmFjdGVyQm94ID0gdmFsdWVCYXNlICYmIHV0aWxzLmlzQ2hhcmFjdGVyQm94KHZhbHVlQmFzZSk7XG5cbiAgICBpZiAodmFsdWVTdXApIHtcbiAgICAgIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShvcHRpb25zLnN0eWxlLnN1cCgpKTtcbiAgICAgIHN1cG0gPSBidWlsZEdyb3VwJDEodmFsdWVTdXAsIG5ld09wdGlvbnMsIG9wdGlvbnMpO1xuXG4gICAgICBpZiAoIWlzQ2hhcmFjdGVyQm94KSB7XG4gICAgICAgIHN1cFNoaWZ0ID0gYmFzZS5oZWlnaHQgLSBuZXdPcHRpb25zLmZvbnRNZXRyaWNzKCkuc3VwRHJvcCAqIG5ld09wdGlvbnMuc2l6ZU11bHRpcGxpZXIgLyBvcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZVN1Yikge1xuICAgICAgdmFyIF9uZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShvcHRpb25zLnN0eWxlLnN1YigpKTtcblxuICAgICAgc3VibSA9IGJ1aWxkR3JvdXAkMSh2YWx1ZVN1YiwgX25ld09wdGlvbnMsIG9wdGlvbnMpO1xuXG4gICAgICBpZiAoIWlzQ2hhcmFjdGVyQm94KSB7XG4gICAgICAgIHN1YlNoaWZ0ID0gYmFzZS5kZXB0aCArIF9uZXdPcHRpb25zLmZvbnRNZXRyaWNzKCkuc3ViRHJvcCAqIF9uZXdPcHRpb25zLnNpemVNdWx0aXBsaWVyIC8gb3B0aW9ucy5zaXplTXVsdGlwbGllcjtcbiAgICAgIH1cbiAgICB9IC8vIFJ1bGUgMThjXG5cblxuICAgIHZhciBtaW5TdXBTaGlmdDtcblxuICAgIGlmIChvcHRpb25zLnN0eWxlID09PSBTdHlsZSQxLkRJU1BMQVkpIHtcbiAgICAgIG1pblN1cFNoaWZ0ID0gbWV0cmljcy5zdXAxO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5zdHlsZS5jcmFtcGVkKSB7XG4gICAgICBtaW5TdXBTaGlmdCA9IG1ldHJpY3Muc3VwMztcbiAgICB9IGVsc2Uge1xuICAgICAgbWluU3VwU2hpZnQgPSBtZXRyaWNzLnN1cDI7XG4gICAgfSAvLyBzY3JpcHRzcGFjZSBpcyBhIGZvbnQtc2l6ZS1pbmRlcGVuZGVudCBzaXplLCBzbyBzY2FsZSBpdFxuICAgIC8vIGFwcHJvcHJpYXRlbHkgZm9yIHVzZSBhcyB0aGUgbWFyZ2luUmlnaHQuXG5cblxuICAgIHZhciBtdWx0aXBsaWVyID0gb3B0aW9ucy5zaXplTXVsdGlwbGllcjtcbiAgICB2YXIgbWFyZ2luUmlnaHQgPSBtYWtlRW0oMC41IC8gbWV0cmljcy5wdFBlckVtIC8gbXVsdGlwbGllcik7XG4gICAgdmFyIG1hcmdpbkxlZnQgPSBudWxsO1xuXG4gICAgaWYgKHN1Ym0pIHtcbiAgICAgIC8vIFN1YnNjcmlwdHMgc2hvdWxkbid0IGJlIHNoaWZ0ZWQgYnkgdGhlIGJhc2UncyBpdGFsaWMgY29ycmVjdGlvbi5cbiAgICAgIC8vIEFjY291bnQgZm9yIHRoYXQgYnkgc2hpZnRpbmcgdGhlIHN1YnNjcmlwdCBiYWNrIHRoZSBhcHByb3ByaWF0ZVxuICAgICAgLy8gYW1vdW50LiBOb3RlIHdlIG9ubHkgZG8gdGhpcyB3aGVuIHRoZSBiYXNlIGlzIGEgc2luZ2xlIHN5bWJvbC5cbiAgICAgIHZhciBpc09paW50ID0gZ3JvdXAuYmFzZSAmJiBncm91cC5iYXNlLnR5cGUgPT09IFwib3BcIiAmJiBncm91cC5iYXNlLm5hbWUgJiYgKGdyb3VwLmJhc2UubmFtZSA9PT0gXCJcXFxcb2lpbnRcIiB8fCBncm91cC5iYXNlLm5hbWUgPT09IFwiXFxcXG9paWludFwiKTtcblxuICAgICAgaWYgKGJhc2UgaW5zdGFuY2VvZiBTeW1ib2xOb2RlIHx8IGlzT2lpbnQpIHtcbiAgICAgICAgLy8gJEZsb3dGaXhNZVxuICAgICAgICBtYXJnaW5MZWZ0ID0gbWFrZUVtKC1iYXNlLml0YWxpYyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHN1cHN1YjtcblxuICAgIGlmIChzdXBtICYmIHN1Ym0pIHtcbiAgICAgIHN1cFNoaWZ0ID0gTWF0aC5tYXgoc3VwU2hpZnQsIG1pblN1cFNoaWZ0LCBzdXBtLmRlcHRoICsgMC4yNSAqIG1ldHJpY3MueEhlaWdodCk7XG4gICAgICBzdWJTaGlmdCA9IE1hdGgubWF4KHN1YlNoaWZ0LCBtZXRyaWNzLnN1YjIpO1xuICAgICAgdmFyIHJ1bGVXaWR0aCA9IG1ldHJpY3MuZGVmYXVsdFJ1bGVUaGlja25lc3M7IC8vIFJ1bGUgMThlXG5cbiAgICAgIHZhciBtYXhXaWR0aCA9IDQgKiBydWxlV2lkdGg7XG5cbiAgICAgIGlmIChzdXBTaGlmdCAtIHN1cG0uZGVwdGggLSAoc3VibS5oZWlnaHQgLSBzdWJTaGlmdCkgPCBtYXhXaWR0aCkge1xuICAgICAgICBzdWJTaGlmdCA9IG1heFdpZHRoIC0gKHN1cFNoaWZ0IC0gc3VwbS5kZXB0aCkgKyBzdWJtLmhlaWdodDtcbiAgICAgICAgdmFyIHBzaSA9IDAuOCAqIG1ldHJpY3MueEhlaWdodCAtIChzdXBTaGlmdCAtIHN1cG0uZGVwdGgpO1xuXG4gICAgICAgIGlmIChwc2kgPiAwKSB7XG4gICAgICAgICAgc3VwU2hpZnQgKz0gcHNpO1xuICAgICAgICAgIHN1YlNoaWZ0IC09IHBzaTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgdmxpc3RFbGVtID0gW3tcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IHN1Ym0sXG4gICAgICAgIHNoaWZ0OiBzdWJTaGlmdCxcbiAgICAgICAgbWFyZ2luUmlnaHQsXG4gICAgICAgIG1hcmdpbkxlZnRcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IHN1cG0sXG4gICAgICAgIHNoaWZ0OiAtc3VwU2hpZnQsXG4gICAgICAgIG1hcmdpblJpZ2h0XG4gICAgICB9XTtcbiAgICAgIHN1cHN1YiA9IGJ1aWxkQ29tbW9uLm1ha2VWTGlzdCh7XG4gICAgICAgIHBvc2l0aW9uVHlwZTogXCJpbmRpdmlkdWFsU2hpZnRcIixcbiAgICAgICAgY2hpbGRyZW46IHZsaXN0RWxlbVxuICAgICAgfSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIGlmIChzdWJtKSB7XG4gICAgICAvLyBSdWxlIDE4YlxuICAgICAgc3ViU2hpZnQgPSBNYXRoLm1heChzdWJTaGlmdCwgbWV0cmljcy5zdWIxLCBzdWJtLmhlaWdodCAtIDAuOCAqIG1ldHJpY3MueEhlaWdodCk7XG4gICAgICB2YXIgX3ZsaXN0RWxlbSA9IFt7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBzdWJtLFxuICAgICAgICBtYXJnaW5MZWZ0LFxuICAgICAgICBtYXJnaW5SaWdodFxuICAgICAgfV07XG4gICAgICBzdXBzdWIgPSBidWlsZENvbW1vbi5tYWtlVkxpc3Qoe1xuICAgICAgICBwb3NpdGlvblR5cGU6IFwic2hpZnRcIixcbiAgICAgICAgcG9zaXRpb25EYXRhOiBzdWJTaGlmdCxcbiAgICAgICAgY2hpbGRyZW46IF92bGlzdEVsZW1cbiAgICAgIH0sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSBpZiAoc3VwbSkge1xuICAgICAgLy8gUnVsZSAxOGMsIGRcbiAgICAgIHN1cFNoaWZ0ID0gTWF0aC5tYXgoc3VwU2hpZnQsIG1pblN1cFNoaWZ0LCBzdXBtLmRlcHRoICsgMC4yNSAqIG1ldHJpY3MueEhlaWdodCk7XG4gICAgICBzdXBzdWIgPSBidWlsZENvbW1vbi5tYWtlVkxpc3Qoe1xuICAgICAgICBwb3NpdGlvblR5cGU6IFwic2hpZnRcIixcbiAgICAgICAgcG9zaXRpb25EYXRhOiAtc3VwU2hpZnQsXG4gICAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICAgIGVsZW06IHN1cG0sXG4gICAgICAgICAgbWFyZ2luUmlnaHRcbiAgICAgICAgfV1cbiAgICAgIH0sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzdXBzdWIgbXVzdCBoYXZlIGVpdGhlciBzdXAgb3Igc3ViLlwiKTtcbiAgICB9IC8vIFdyYXAgdGhlIHN1cHN1YiB2bGlzdCBpbiBhIHNwYW4ubXN1cHN1YiB0byByZXNldCB0ZXh0LWFsaWduLlxuXG5cbiAgICB2YXIgbWNsYXNzID0gZ2V0VHlwZU9mRG9tVHJlZShiYXNlLCBcInJpZ2h0XCIpIHx8IFwibW9yZFwiO1xuICAgIHJldHVybiBidWlsZENvbW1vbi5tYWtlU3BhbihbbWNsYXNzXSwgW2Jhc2UsIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1zdXBzdWJcIl0sIFtzdXBzdWJdKV0sIG9wdGlvbnMpO1xuICB9LFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAvLyBJcyB0aGUgaW5uZXIgZ3JvdXAgYSByZWxldmFudCBob3Jpem9uYWwgYnJhY2U/XG4gICAgdmFyIGlzQnJhY2UgPSBmYWxzZTtcbiAgICB2YXIgaXNPdmVyO1xuICAgIHZhciBpc1N1cDtcblxuICAgIGlmIChncm91cC5iYXNlICYmIGdyb3VwLmJhc2UudHlwZSA9PT0gXCJob3JpekJyYWNlXCIpIHtcbiAgICAgIGlzU3VwID0gISFncm91cC5zdXA7XG5cbiAgICAgIGlmIChpc1N1cCA9PT0gZ3JvdXAuYmFzZS5pc092ZXIpIHtcbiAgICAgICAgaXNCcmFjZSA9IHRydWU7XG4gICAgICAgIGlzT3ZlciA9IGdyb3VwLmJhc2UuaXNPdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChncm91cC5iYXNlICYmIChncm91cC5iYXNlLnR5cGUgPT09IFwib3BcIiB8fCBncm91cC5iYXNlLnR5cGUgPT09IFwib3BlcmF0b3JuYW1lXCIpKSB7XG4gICAgICBncm91cC5iYXNlLnBhcmVudElzU3VwU3ViID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgY2hpbGRyZW4gPSBbYnVpbGRHcm91cChncm91cC5iYXNlLCBvcHRpb25zKV07XG5cbiAgICBpZiAoZ3JvdXAuc3ViKSB7XG4gICAgICBjaGlsZHJlbi5wdXNoKGJ1aWxkR3JvdXAoZ3JvdXAuc3ViLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgaWYgKGdyb3VwLnN1cCkge1xuICAgICAgY2hpbGRyZW4ucHVzaChidWlsZEdyb3VwKGdyb3VwLnN1cCwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHZhciBub2RlVHlwZTtcblxuICAgIGlmIChpc0JyYWNlKSB7XG4gICAgICBub2RlVHlwZSA9IGlzT3ZlciA/IFwibW92ZXJcIiA6IFwibXVuZGVyXCI7XG4gICAgfSBlbHNlIGlmICghZ3JvdXAuc3ViKSB7XG4gICAgICB2YXIgYmFzZSA9IGdyb3VwLmJhc2U7XG5cbiAgICAgIGlmIChiYXNlICYmIGJhc2UudHlwZSA9PT0gXCJvcFwiICYmIGJhc2UubGltaXRzICYmIChvcHRpb25zLnN0eWxlID09PSBTdHlsZSQxLkRJU1BMQVkgfHwgYmFzZS5hbHdheXNIYW5kbGVTdXBTdWIpKSB7XG4gICAgICAgIG5vZGVUeXBlID0gXCJtb3ZlclwiO1xuICAgICAgfSBlbHNlIGlmIChiYXNlICYmIGJhc2UudHlwZSA9PT0gXCJvcGVyYXRvcm5hbWVcIiAmJiBiYXNlLmFsd2F5c0hhbmRsZVN1cFN1YiAmJiAoYmFzZS5saW1pdHMgfHwgb3B0aW9ucy5zdHlsZSA9PT0gU3R5bGUkMS5ESVNQTEFZKSkge1xuICAgICAgICBub2RlVHlwZSA9IFwibW92ZXJcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGVUeXBlID0gXCJtc3VwXCI7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghZ3JvdXAuc3VwKSB7XG4gICAgICB2YXIgX2Jhc2UgPSBncm91cC5iYXNlO1xuXG4gICAgICBpZiAoX2Jhc2UgJiYgX2Jhc2UudHlwZSA9PT0gXCJvcFwiICYmIF9iYXNlLmxpbWl0cyAmJiAob3B0aW9ucy5zdHlsZSA9PT0gU3R5bGUkMS5ESVNQTEFZIHx8IF9iYXNlLmFsd2F5c0hhbmRsZVN1cFN1YikpIHtcbiAgICAgICAgbm9kZVR5cGUgPSBcIm11bmRlclwiO1xuICAgICAgfSBlbHNlIGlmIChfYmFzZSAmJiBfYmFzZS50eXBlID09PSBcIm9wZXJhdG9ybmFtZVwiICYmIF9iYXNlLmFsd2F5c0hhbmRsZVN1cFN1YiAmJiAoX2Jhc2UubGltaXRzIHx8IG9wdGlvbnMuc3R5bGUgPT09IFN0eWxlJDEuRElTUExBWSkpIHtcbiAgICAgICAgbm9kZVR5cGUgPSBcIm11bmRlclwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZVR5cGUgPSBcIm1zdWJcIjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIF9iYXNlMiA9IGdyb3VwLmJhc2U7XG5cbiAgICAgIGlmIChfYmFzZTIgJiYgX2Jhc2UyLnR5cGUgPT09IFwib3BcIiAmJiBfYmFzZTIubGltaXRzICYmIG9wdGlvbnMuc3R5bGUgPT09IFN0eWxlJDEuRElTUExBWSkge1xuICAgICAgICBub2RlVHlwZSA9IFwibXVuZGVyb3ZlclwiO1xuICAgICAgfSBlbHNlIGlmIChfYmFzZTIgJiYgX2Jhc2UyLnR5cGUgPT09IFwib3BlcmF0b3JuYW1lXCIgJiYgX2Jhc2UyLmFsd2F5c0hhbmRsZVN1cFN1YiAmJiAob3B0aW9ucy5zdHlsZSA9PT0gU3R5bGUkMS5ESVNQTEFZIHx8IF9iYXNlMi5saW1pdHMpKSB7XG4gICAgICAgIG5vZGVUeXBlID0gXCJtdW5kZXJvdmVyXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlVHlwZSA9IFwibXN1YnN1cFwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShub2RlVHlwZSwgY2hpbGRyZW4pO1xuICB9XG5cbn0pO1xuXG5kZWZpbmVGdW5jdGlvbkJ1aWxkZXJzKHtcbiAgdHlwZTogXCJhdG9tXCIsXG5cbiAgaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWF0aHN5bShncm91cC50ZXh0LCBncm91cC5tb2RlLCBvcHRpb25zLCBbXCJtXCIgKyBncm91cC5mYW1pbHldKTtcbiAgfSxcblxuICBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1vXCIsIFttYWtlVGV4dChncm91cC50ZXh0LCBncm91cC5tb2RlKV0pO1xuXG4gICAgaWYgKGdyb3VwLmZhbWlseSA9PT0gXCJiaW5cIikge1xuICAgICAgdmFyIHZhcmlhbnQgPSBnZXRWYXJpYW50KGdyb3VwLCBvcHRpb25zKTtcblxuICAgICAgaWYgKHZhcmlhbnQgPT09IFwiYm9sZC1pdGFsaWNcIikge1xuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcIm1hdGh2YXJpYW50XCIsIHZhcmlhbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZ3JvdXAuZmFtaWx5ID09PSBcInB1bmN0XCIpIHtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwic2VwYXJhdG9yXCIsIFwidHJ1ZVwiKTtcbiAgICB9IGVsc2UgaWYgKGdyb3VwLmZhbWlseSA9PT0gXCJvcGVuXCIgfHwgZ3JvdXAuZmFtaWx5ID09PSBcImNsb3NlXCIpIHtcbiAgICAgIC8vIERlbGltcyBidWlsdCBoZXJlIHNob3VsZCBub3Qgc3RyZXRjaCB2ZXJ0aWNhbGx5LlxuICAgICAgLy8gU2VlIGRlbGltc2l6aW5nLmpzIGZvciBzdHJldGNoeSBkZWxpbXMuXG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShcInN0cmV0Y2h5XCIsIFwiZmFsc2VcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxufSk7XG5cbi8vIFwibWF0aG9yZFwiIGFuZCBcInRleHRvcmRcIiBQYXJzZU5vZGVzIGNyZWF0ZWQgaW4gUGFyc2VyLmpzIGZyb20gc3ltYm9sIEdyb3VwcyBpblxuLy8gc3JjL3N5bWJvbHMuanMuXG52YXIgZGVmYXVsdFZhcmlhbnQgPSB7XG4gIFwibWlcIjogXCJpdGFsaWNcIixcbiAgXCJtblwiOiBcIm5vcm1hbFwiLFxuICBcIm10ZXh0XCI6IFwibm9ybWFsXCJcbn07XG5kZWZpbmVGdW5jdGlvbkJ1aWxkZXJzKHtcbiAgdHlwZTogXCJtYXRob3JkXCIsXG5cbiAgaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZU9yZChncm91cCwgb3B0aW9ucywgXCJtYXRob3JkXCIpO1xuICB9LFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibWlcIiwgW21ha2VUZXh0KGdyb3VwLnRleHQsIGdyb3VwLm1vZGUsIG9wdGlvbnMpXSk7XG4gICAgdmFyIHZhcmlhbnQgPSBnZXRWYXJpYW50KGdyb3VwLCBvcHRpb25zKSB8fCBcIml0YWxpY1wiO1xuXG4gICAgaWYgKHZhcmlhbnQgIT09IGRlZmF1bHRWYXJpYW50W25vZGUudHlwZV0pIHtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibWF0aHZhcmlhbnRcIiwgdmFyaWFudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxufSk7XG5kZWZpbmVGdW5jdGlvbkJ1aWxkZXJzKHtcbiAgdHlwZTogXCJ0ZXh0b3JkXCIsXG5cbiAgaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZU9yZChncm91cCwgb3B0aW9ucywgXCJ0ZXh0b3JkXCIpO1xuICB9LFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgdGV4dCA9IG1ha2VUZXh0KGdyb3VwLnRleHQsIGdyb3VwLm1vZGUsIG9wdGlvbnMpO1xuICAgIHZhciB2YXJpYW50ID0gZ2V0VmFyaWFudChncm91cCwgb3B0aW9ucykgfHwgXCJub3JtYWxcIjtcbiAgICB2YXIgbm9kZTtcblxuICAgIGlmIChncm91cC5tb2RlID09PSAndGV4dCcpIHtcbiAgICAgIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm10ZXh0XCIsIFt0ZXh0XSk7XG4gICAgfSBlbHNlIGlmICgvWzAtOV0vLnRlc3QoZ3JvdXAudGV4dCkpIHtcbiAgICAgIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1uXCIsIFt0ZXh0XSk7XG4gICAgfSBlbHNlIGlmIChncm91cC50ZXh0ID09PSBcIlxcXFxwcmltZVwiKSB7XG4gICAgICBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtb1wiLCBbdGV4dF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtaVwiLCBbdGV4dF0pO1xuICAgIH1cblxuICAgIGlmICh2YXJpYW50ICE9PSBkZWZhdWx0VmFyaWFudFtub2RlLnR5cGVdKSB7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShcIm1hdGh2YXJpYW50XCIsIHZhcmlhbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBub2RlO1xuICB9XG5cbn0pO1xuXG52YXIgY3NzU3BhY2UgPSB7XG4gIFwiXFxcXG5vYnJlYWtcIjogXCJub2JyZWFrXCIsXG4gIFwiXFxcXGFsbG93YnJlYWtcIjogXCJhbGxvd2JyZWFrXCJcbn07IC8vIEEgbG9va3VwIHRhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIGEgc3BhY2luZyBmdW5jdGlvbi9zeW1ib2wgc2hvdWxkIGJlXG4vLyB0cmVhdGVkIGxpa2UgYSByZWd1bGFyIHNwYWNlIGNoYXJhY3Rlci4gIElmIGEgc3ltYm9sIG9yIGNvbW1hbmQgaXMgYSBrZXlcbi8vIGluIHRoaXMgdGFibGUsIHRoZW4gaXQgc2hvdWxkIGJlIGEgcmVndWxhciBzcGFjZSBjaGFyYWN0ZXIuICBGdXJ0aGVybW9yZSxcbi8vIHRoZSBhc3NvY2lhdGVkIHZhbHVlIG1heSBoYXZlIGEgYGNsYXNzTmFtZWAgc3BlY2lmeWluZyBhbiBleHRyYSBDU1MgY2xhc3Ncbi8vIHRvIGFkZCB0byB0aGUgY3JlYXRlZCBgc3BhbmAuXG5cbnZhciByZWd1bGFyU3BhY2UgPSB7XG4gIFwiIFwiOiB7fSxcbiAgXCJcXFxcIFwiOiB7fSxcbiAgXCJ+XCI6IHtcbiAgICBjbGFzc05hbWU6IFwibm9icmVha1wiXG4gIH0sXG4gIFwiXFxcXHNwYWNlXCI6IHt9LFxuICBcIlxcXFxub2JyZWFrc3BhY2VcIjoge1xuICAgIGNsYXNzTmFtZTogXCJub2JyZWFrXCJcbiAgfVxufTsgLy8gUGFyc2VOb2RlPFwic3BhY2luZ1wiPiBjcmVhdGVkIGluIFBhcnNlci5qcyBmcm9tIHRoZSBcInNwYWNpbmdcIiBzeW1ib2wgR3JvdXBzIGluXG4vLyBzcmMvc3ltYm9scy5qcy5cblxuZGVmaW5lRnVuY3Rpb25CdWlsZGVycyh7XG4gIHR5cGU6IFwic3BhY2luZ1wiLFxuXG4gIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgaWYgKHJlZ3VsYXJTcGFjZS5oYXNPd25Qcm9wZXJ0eShncm91cC50ZXh0KSkge1xuICAgICAgdmFyIGNsYXNzTmFtZSA9IHJlZ3VsYXJTcGFjZVtncm91cC50ZXh0XS5jbGFzc05hbWUgfHwgXCJcIjsgLy8gU3BhY2VzIGFyZSBnZW5lcmF0ZWQgYnkgYWRkaW5nIGFuIGFjdHVhbCBzcGFjZS4gRWFjaCBvZiB0aGVzZVxuICAgICAgLy8gdGhpbmdzIGhhcyBhbiBlbnRyeSBpbiB0aGUgc3ltYm9scyB0YWJsZSwgc28gdGhlc2Ugd2lsbCBiZSB0dXJuZWRcbiAgICAgIC8vIGludG8gYXBwcm9wcmlhdGUgb3V0cHV0cy5cblxuICAgICAgaWYgKGdyb3VwLm1vZGUgPT09IFwidGV4dFwiKSB7XG4gICAgICAgIHZhciBvcmQgPSBidWlsZENvbW1vbi5tYWtlT3JkKGdyb3VwLCBvcHRpb25zLCBcInRleHRvcmRcIik7XG4gICAgICAgIG9yZC5jbGFzc2VzLnB1c2goY2xhc3NOYW1lKTtcbiAgICAgICAgcmV0dXJuIG9yZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJtc3BhY2VcIiwgY2xhc3NOYW1lXSwgW2J1aWxkQ29tbW9uLm1hdGhzeW0oZ3JvdXAudGV4dCwgZ3JvdXAubW9kZSwgb3B0aW9ucyldLCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNzc1NwYWNlLmhhc093blByb3BlcnR5KGdyb3VwLnRleHQpKSB7XG4gICAgICAvLyBTcGFjZXMgYmFzZWQgb24ganVzdCBhIENTUyBjbGFzcy5cbiAgICAgIHJldHVybiBidWlsZENvbW1vbi5tYWtlU3BhbihbXCJtc3BhY2VcIiwgY3NzU3BhY2VbZ3JvdXAudGV4dF1dLCBbXSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiVW5rbm93biB0eXBlIG9mIHNwYWNlIFxcXCJcIiArIGdyb3VwLnRleHQgKyBcIlxcXCJcIik7XG4gICAgfVxuICB9LFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgbm9kZTtcblxuICAgIGlmIChyZWd1bGFyU3BhY2UuaGFzT3duUHJvcGVydHkoZ3JvdXAudGV4dCkpIHtcbiAgICAgIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm10ZXh0XCIsIFtuZXcgbWF0aE1MVHJlZS5UZXh0Tm9kZShcIlxcdTAwYTBcIildKTtcbiAgICB9IGVsc2UgaWYgKGNzc1NwYWNlLmhhc093blByb3BlcnR5KGdyb3VwLnRleHQpKSB7XG4gICAgICAvLyBDU1MtYmFzZWQgTWF0aE1MIHNwYWNlcyAoXFxub2JyZWFrLCBcXGFsbG93YnJlYWspIGFyZSBpZ25vcmVkXG4gICAgICByZXR1cm4gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtc3BhY2VcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiVW5rbm93biB0eXBlIG9mIHNwYWNlIFxcXCJcIiArIGdyb3VwLnRleHQgKyBcIlxcXCJcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxufSk7XG5cbnZhciBwYWQgPSAoKSA9PiB7XG4gIHZhciBwYWROb2RlID0gbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtdGRcIiwgW10pO1xuICBwYWROb2RlLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIFwiNTAlXCIpO1xuICByZXR1cm4gcGFkTm9kZTtcbn07XG5cbmRlZmluZUZ1bmN0aW9uQnVpbGRlcnMoe1xuICB0eXBlOiBcInRhZ1wiLFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgdGFibGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm10YWJsZVwiLCBbbmV3IG1hdGhNTFRyZWUuTWF0aE5vZGUoXCJtdHJcIiwgW3BhZCgpLCBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm10ZFwiLCBbYnVpbGRFeHByZXNzaW9uUm93KGdyb3VwLmJvZHksIG9wdGlvbnMpXSksIHBhZCgpLCBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm10ZFwiLCBbYnVpbGRFeHByZXNzaW9uUm93KGdyb3VwLnRhZywgb3B0aW9ucyldKV0pXSk7XG4gICAgdGFibGUuc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgXCIxMDAlXCIpO1xuICAgIHJldHVybiB0YWJsZTsgLy8gVE9ETzogTGVmdC1hbGlnbmVkIHRhZ3MuXG4gICAgLy8gQ3VycmVudGx5LCB0aGUgZ3JvdXAgYW5kIG9wdGlvbnMgcGFzc2VkIGhlcmUgZG8gbm90IGNvbnRhaW5cbiAgICAvLyBlbm91Z2ggaW5mbyB0byBzZXQgdGFnIGFsaWdubWVudC4gYGxlcW5vYCBpcyBpbiBTZXR0aW5ncyBidXQgaXQgaXNcbiAgICAvLyBub3QgcGFzc2VkIHRvIE9wdGlvbnMuIE9uIHRoZSBIVE1MIHNpZGUsIGxlcW5vIGlzXG4gICAgLy8gc2V0IGJ5IGEgQ1NTIGNsYXNzIGFwcGxpZWQgaW4gYnVpbGRUcmVlLmpzLiBUaGF0IHdvdWxkIGhhdmUgd29ya2VkXG4gICAgLy8gaW4gTWF0aE1MIGlmIGJyb3dzZXJzIHN1cHBvcnRlZCA8bWxhYmVsZWR0cj4uIFNpbmNlIHRoZXkgZG9uJ3QsIHdlXG4gICAgLy8gbmVlZCB0byByZXdyaXRlIHRoZSB3YXkgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQuXG4gIH1cblxufSk7XG5cbnZhciB0ZXh0Rm9udEZhbWlsaWVzID0ge1xuICBcIlxcXFx0ZXh0XCI6IHVuZGVmaW5lZCxcbiAgXCJcXFxcdGV4dHJtXCI6IFwidGV4dHJtXCIsXG4gIFwiXFxcXHRleHRzZlwiOiBcInRleHRzZlwiLFxuICBcIlxcXFx0ZXh0dHRcIjogXCJ0ZXh0dHRcIixcbiAgXCJcXFxcdGV4dG5vcm1hbFwiOiBcInRleHRybVwiXG59O1xudmFyIHRleHRGb250V2VpZ2h0cyA9IHtcbiAgXCJcXFxcdGV4dGJmXCI6IFwidGV4dGJmXCIsXG4gIFwiXFxcXHRleHRtZFwiOiBcInRleHRtZFwiXG59O1xudmFyIHRleHRGb250U2hhcGVzID0ge1xuICBcIlxcXFx0ZXh0aXRcIjogXCJ0ZXh0aXRcIixcbiAgXCJcXFxcdGV4dHVwXCI6IFwidGV4dHVwXCJcbn07XG5cbnZhciBvcHRpb25zV2l0aEZvbnQgPSAoZ3JvdXAsIG9wdGlvbnMpID0+IHtcbiAgdmFyIGZvbnQgPSBncm91cC5mb250OyAvLyBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGlzIGEgZm9udCBmYW1pbHkgb3IgYSBmb250IHN0eWxlLlxuXG4gIGlmICghZm9udCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9IGVsc2UgaWYgKHRleHRGb250RmFtaWxpZXNbZm9udF0pIHtcbiAgICByZXR1cm4gb3B0aW9ucy53aXRoVGV4dEZvbnRGYW1pbHkodGV4dEZvbnRGYW1pbGllc1tmb250XSk7XG4gIH0gZWxzZSBpZiAodGV4dEZvbnRXZWlnaHRzW2ZvbnRdKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMud2l0aFRleHRGb250V2VpZ2h0KHRleHRGb250V2VpZ2h0c1tmb250XSk7XG4gIH0gZWxzZSBpZiAoZm9udCA9PT0gXCJcXFxcZW1waFwiKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMuZm9udFNoYXBlID09PSBcInRleHRpdFwiID8gb3B0aW9ucy53aXRoVGV4dEZvbnRTaGFwZShcInRleHR1cFwiKSA6IG9wdGlvbnMud2l0aFRleHRGb250U2hhcGUoXCJ0ZXh0aXRcIik7XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucy53aXRoVGV4dEZvbnRTaGFwZSh0ZXh0Rm9udFNoYXBlc1tmb250XSk7XG59O1xuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwidGV4dFwiLFxuICBuYW1lczogWy8vIEZvbnQgZmFtaWxpZXNcbiAgXCJcXFxcdGV4dFwiLCBcIlxcXFx0ZXh0cm1cIiwgXCJcXFxcdGV4dHNmXCIsIFwiXFxcXHRleHR0dFwiLCBcIlxcXFx0ZXh0bm9ybWFsXCIsIC8vIEZvbnQgd2VpZ2h0c1xuICBcIlxcXFx0ZXh0YmZcIiwgXCJcXFxcdGV4dG1kXCIsIC8vIEZvbnQgU2hhcGVzXG4gIFwiXFxcXHRleHRpdFwiLCBcIlxcXFx0ZXh0dXBcIiwgXCJcXFxcZW1waFwiXSxcbiAgcHJvcHM6IHtcbiAgICBudW1BcmdzOiAxLFxuICAgIGFyZ1R5cGVzOiBbXCJ0ZXh0XCJdLFxuICAgIGFsbG93ZWRJbkFyZ3VtZW50OiB0cnVlLFxuICAgIGFsbG93ZWRJblRleHQ6IHRydWVcbiAgfSxcblxuICBoYW5kbGVyKF9yZWYsIGFyZ3MpIHtcbiAgICB2YXIge1xuICAgICAgcGFyc2VyLFxuICAgICAgZnVuY05hbWVcbiAgICB9ID0gX3JlZjtcbiAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBib2R5OiBvcmRhcmd1bWVudChib2R5KSxcbiAgICAgIGZvbnQ6IGZ1bmNOYW1lXG4gICAgfTtcbiAgfSxcblxuICBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBuZXdPcHRpb25zID0gb3B0aW9uc1dpdGhGb250KGdyb3VwLCBvcHRpb25zKTtcbiAgICB2YXIgaW5uZXIgPSBidWlsZEV4cHJlc3Npb24kMShncm91cC5ib2R5LCBuZXdPcHRpb25zLCB0cnVlKTtcbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibW9yZFwiLCBcInRleHRcIl0sIGlubmVyLCBuZXdPcHRpb25zKTtcbiAgfSxcblxuICBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIG5ld09wdGlvbnMgPSBvcHRpb25zV2l0aEZvbnQoZ3JvdXAsIG9wdGlvbnMpO1xuICAgIHJldHVybiBidWlsZEV4cHJlc3Npb25Sb3coZ3JvdXAuYm9keSwgbmV3T3B0aW9ucyk7XG4gIH1cblxufSk7XG5cbmRlZmluZUZ1bmN0aW9uKHtcbiAgdHlwZTogXCJ1bmRlcmxpbmVcIixcbiAgbmFtZXM6IFtcIlxcXFx1bmRlcmxpbmVcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMSxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmLCBhcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcInVuZGVybGluZVwiLFxuICAgICAgbW9kZTogcGFyc2VyLm1vZGUsXG4gICAgICBib2R5OiBhcmdzWzBdXG4gICAgfTtcbiAgfSxcblxuICBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIC8vIFVuZGVybGluZXMgYXJlIGhhbmRsZWQgaW4gdGhlIFRlWGJvb2sgcGcgNDQzLCBSdWxlIDEwLlxuICAgIC8vIEJ1aWxkIHRoZSBpbm5lciBncm91cC5cbiAgICB2YXIgaW5uZXJHcm91cCA9IGJ1aWxkR3JvdXAkMShncm91cC5ib2R5LCBvcHRpb25zKTsgLy8gQ3JlYXRlIHRoZSBsaW5lIHRvIGdvIGJlbG93IHRoZSBib2R5XG5cbiAgICB2YXIgbGluZSA9IGJ1aWxkQ29tbW9uLm1ha2VMaW5lU3BhbihcInVuZGVybGluZS1saW5lXCIsIG9wdGlvbnMpOyAvLyBHZW5lcmF0ZSB0aGUgdmxpc3QsIHdpdGggdGhlIGFwcHJvcHJpYXRlIGtlcm5zXG5cbiAgICB2YXIgZGVmYXVsdFJ1bGVUaGlja25lc3MgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuZGVmYXVsdFJ1bGVUaGlja25lc3M7XG4gICAgdmFyIHZsaXN0ID0gYnVpbGRDb21tb24ubWFrZVZMaXN0KHtcbiAgICAgIHBvc2l0aW9uVHlwZTogXCJ0b3BcIixcbiAgICAgIHBvc2l0aW9uRGF0YTogaW5uZXJHcm91cC5oZWlnaHQsXG4gICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgdHlwZTogXCJrZXJuXCIsXG4gICAgICAgIHNpemU6IGRlZmF1bHRSdWxlVGhpY2tuZXNzXG4gICAgICB9LCB7XG4gICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICBlbGVtOiBsaW5lXG4gICAgICB9LCB7XG4gICAgICAgIHR5cGU6IFwia2VyblwiLFxuICAgICAgICBzaXplOiAzICogZGVmYXVsdFJ1bGVUaGlja25lc3NcbiAgICAgIH0sIHtcbiAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgIGVsZW06IGlubmVyR3JvdXBcbiAgICAgIH1dXG4gICAgfSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJ1bmRlcmxpbmVcIl0sIFt2bGlzdF0sIG9wdGlvbnMpO1xuICB9LFxuXG4gIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgb3BlcmF0b3IgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm1vXCIsIFtuZXcgbWF0aE1MVHJlZS5UZXh0Tm9kZShcIlxcdTIwM2VcIildKTtcbiAgICBvcGVyYXRvci5zZXRBdHRyaWJ1dGUoXCJzdHJldGNoeVwiLCBcInRydWVcIik7XG4gICAgdmFyIG5vZGUgPSBuZXcgbWF0aE1MVHJlZS5NYXRoTm9kZShcIm11bmRlclwiLCBbYnVpbGRHcm91cChncm91cC5ib2R5LCBvcHRpb25zKSwgb3BlcmF0b3JdKTtcbiAgICBub2RlLnNldEF0dHJpYnV0ZShcImFjY2VudHVuZGVyXCIsIFwidHJ1ZVwiKTtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG59KTtcblxuZGVmaW5lRnVuY3Rpb24oe1xuICB0eXBlOiBcInZjZW50ZXJcIixcbiAgbmFtZXM6IFtcIlxcXFx2Y2VudGVyXCJdLFxuICBwcm9wczoge1xuICAgIG51bUFyZ3M6IDEsXG4gICAgYXJnVHlwZXM6IFtcIm9yaWdpbmFsXCJdLFxuICAgIC8vIEluIExhVGVYLCBcXHZjZW50ZXIgY2FuIGFjdCBvbmx5IG9uIGEgYm94LlxuICAgIGFsbG93ZWRJblRleHQ6IGZhbHNlXG4gIH0sXG5cbiAgaGFuZGxlcihfcmVmLCBhcmdzKSB7XG4gICAgdmFyIHtcbiAgICAgIHBhcnNlclxuICAgIH0gPSBfcmVmO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcInZjZW50ZXJcIixcbiAgICAgIG1vZGU6IHBhcnNlci5tb2RlLFxuICAgICAgYm9keTogYXJnc1swXVxuICAgIH07XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgYm9keSA9IGJ1aWxkR3JvdXAkMShncm91cC5ib2R5LCBvcHRpb25zKTtcbiAgICB2YXIgYXhpc0hlaWdodCA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5heGlzSGVpZ2h0O1xuICAgIHZhciBkeSA9IDAuNSAqIChib2R5LmhlaWdodCAtIGF4aXNIZWlnaHQgLSAoYm9keS5kZXB0aCArIGF4aXNIZWlnaHQpKTtcbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZVZMaXN0KHtcbiAgICAgIHBvc2l0aW9uVHlwZTogXCJzaGlmdFwiLFxuICAgICAgcG9zaXRpb25EYXRhOiBkeSxcbiAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICB0eXBlOiBcImVsZW1cIixcbiAgICAgICAgZWxlbTogYm9keVxuICAgICAgfV1cbiAgICB9LCBvcHRpb25zKTtcbiAgfSxcblxuICBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgLy8gVGhlcmUgaXMgbm8gd2F5IHRvIGRvIHRoaXMgaW4gTWF0aE1MLlxuICAgIC8vIFdyaXRlIGEgY2xhc3MgYXMgYSBicmVhZGNydW1iIGluIGNhc2Ugc29tZSBwb3N0LXByb2Nlc3NvciB3YW50c1xuICAgIC8vIHRvIHBlcmZvcm0gYSB2Y2VudGVyIGFkanVzdG1lbnQuXG4gICAgcmV0dXJuIG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXBhZGRlZFwiLCBbYnVpbGRHcm91cChncm91cC5ib2R5LCBvcHRpb25zKV0sIFtcInZjZW50ZXJcIl0pO1xuICB9XG5cbn0pO1xuXG5kZWZpbmVGdW5jdGlvbih7XG4gIHR5cGU6IFwidmVyYlwiLFxuICBuYW1lczogW1wiXFxcXHZlcmJcIl0sXG4gIHByb3BzOiB7XG4gICAgbnVtQXJnczogMCxcbiAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gIH0sXG5cbiAgaGFuZGxlcihjb250ZXh0LCBhcmdzLCBvcHRBcmdzKSB7XG4gICAgLy8gXFx2ZXJiIGFuZCBcXHZlcmIqIGFyZSBkZWFsdCB3aXRoIGRpcmVjdGx5IGluIFBhcnNlci5qcy5cbiAgICAvLyBJZiB3ZSBlbmQgdXAgaGVyZSwgaXQncyBiZWNhdXNlIG9mIGEgZmFpbHVyZSB0byBtYXRjaCB0aGUgdHdvIGRlbGltaXRlcnNcbiAgICAvLyBpbiB0aGUgcmVnZXggaW4gTGV4ZXIuanMuICBMYVRlWCByYWlzZXMgdGhlIGZvbGxvd2luZyBlcnJvciB3aGVuIFxcdmVyYiBpc1xuICAgIC8vIHRlcm1pbmF0ZWQgYnkgZW5kIG9mIGxpbmUgKG9yIGZpbGUpLlxuICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiXFxcXHZlcmIgZW5kZWQgYnkgZW5kIG9mIGxpbmUgaW5zdGVhZCBvZiBtYXRjaGluZyBkZWxpbWl0ZXJcIik7XG4gIH0sXG5cbiAgaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgdGV4dCA9IG1ha2VWZXJiKGdyb3VwKTtcbiAgICB2YXIgYm9keSA9IFtdOyAvLyBcXHZlcmIgZW50ZXJzIHRleHQgbW9kZSBhbmQgdGhlcmVmb3JlIGlzIHNpemVkIGxpa2UgXFx0ZXh0c3R5bGVcblxuICAgIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShvcHRpb25zLnN0eWxlLnRleHQoKSk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjID0gdGV4dFtpXTtcblxuICAgICAgaWYgKGMgPT09ICd+Jykge1xuICAgICAgICBjID0gJ1xcXFx0ZXh0YXNjaWl0aWxkZSc7XG4gICAgICB9XG5cbiAgICAgIGJvZHkucHVzaChidWlsZENvbW1vbi5tYWtlU3ltYm9sKGMsIFwiVHlwZXdyaXRlci1SZWd1bGFyXCIsIGdyb3VwLm1vZGUsIG5ld09wdGlvbnMsIFtcIm1vcmRcIiwgXCJ0ZXh0dHRcIl0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVpbGRDb21tb24ubWFrZVNwYW4oW1wibW9yZFwiLCBcInRleHRcIl0uY29uY2F0KG5ld09wdGlvbnMuc2l6aW5nQ2xhc3NlcyhvcHRpb25zKSksIGJ1aWxkQ29tbW9uLnRyeUNvbWJpbmVDaGFycyhib2R5KSwgbmV3T3B0aW9ucyk7XG4gIH0sXG5cbiAgbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciB0ZXh0ID0gbmV3IG1hdGhNTFRyZWUuVGV4dE5vZGUobWFrZVZlcmIoZ3JvdXApKTtcbiAgICB2YXIgbm9kZSA9IG5ldyBtYXRoTUxUcmVlLk1hdGhOb2RlKFwibXRleHRcIiwgW3RleHRdKTtcbiAgICBub2RlLnNldEF0dHJpYnV0ZShcIm1hdGh2YXJpYW50XCIsIFwibW9ub3NwYWNlXCIpO1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbn0pO1xuLyoqXG4gKiBDb252ZXJ0cyB2ZXJiIGdyb3VwIGludG8gYm9keSBzdHJpbmcuXG4gKlxuICogXFx2ZXJiKiByZXBsYWNlcyBlYWNoIHNwYWNlIHdpdGggYW4gb3BlbiBib3ggXFx1MjQyM1xuICogXFx2ZXJiIHJlcGxhY2VzIGVhY2ggc3BhY2Ugd2l0aCBhIG5vLWJyZWFrIHNwYWNlIFxceEEwXG4gKi9cblxudmFyIG1ha2VWZXJiID0gZ3JvdXAgPT4gZ3JvdXAuYm9keS5yZXBsYWNlKC8gL2csIGdyb3VwLnN0YXIgPyAnXFx1MjQyMycgOiAnXFx4QTAnKTtcblxuLyoqIEluY2x1ZGUgdGhpcyB0byBlbnN1cmUgdGhhdCBhbGwgZnVuY3Rpb25zIGFyZSBkZWZpbmVkLiAqL1xudmFyIGZ1bmN0aW9ucyA9IF9mdW5jdGlvbnM7XG5cbi8qKlxuICogVGhlIExleGVyIGNsYXNzIGhhbmRsZXMgdG9rZW5pemluZyB0aGUgaW5wdXQgaW4gdmFyaW91cyB3YXlzLiBTaW5jZSBvdXJcbiAqIHBhcnNlciBleHBlY3RzIHVzIHRvIGJlIGFibGUgdG8gYmFja3RyYWNrLCB0aGUgbGV4ZXIgYWxsb3dzIGxleGluZyBmcm9tIGFueVxuICogZ2l2ZW4gc3RhcnRpbmcgcG9pbnQuXG4gKlxuICogSXRzIG1haW4gZXhwb3NlZCBmdW5jdGlvbiBpcyB0aGUgYGxleGAgZnVuY3Rpb24sIHdoaWNoIHRha2VzIGEgcG9zaXRpb24gdG9cbiAqIGxleCBmcm9tIGFuZCBhIHR5cGUgb2YgdG9rZW4gdG8gbGV4LiBJdCBkZWZlcnMgdG8gdGhlIGFwcHJvcHJpYXRlIGBfaW5uZXJMZXhgXG4gKiBmdW5jdGlvbi5cbiAqXG4gKiBUaGUgdmFyaW91cyBgX2lubmVyTGV4YCBmdW5jdGlvbnMgcGVyZm9ybSB0aGUgYWN0dWFsIGxleGluZyBvZiBkaWZmZXJlbnRcbiAqIGtpbmRzLlxuICovXG5cbi8qIFRoZSBmb2xsb3dpbmcgdG9rZW5SZWdleFxuICogLSBtYXRjaGVzIHR5cGljYWwgd2hpdGVzcGFjZSAoYnV0IG5vdCBOQlNQIGV0Yy4pIHVzaW5nIGl0cyBmaXJzdCBncm91cFxuICogLSBkb2VzIG5vdCBtYXRjaCBhbnkgY29udHJvbCBjaGFyYWN0ZXIgXFx4MDAtXFx4MWYgZXhjZXB0IHdoaXRlc3BhY2VcbiAqIC0gZG9lcyBub3QgbWF0Y2ggYSBiYXJlIGJhY2tzbGFzaFxuICogLSBtYXRjaGVzIGFueSBBU0NJSSBjaGFyYWN0ZXIgZXhjZXB0IHRob3NlIGp1c3QgbWVudGlvbmVkXG4gKiAtIGRvZXMgbm90IG1hdGNoIHRoZSBCTVAgcHJpdmF0ZSB1c2UgYXJlYSBcXHVFMDAwLVxcdUY4RkZcbiAqIC0gZG9lcyBub3QgbWF0Y2ggYmFyZSBzdXJyb2dhdGUgY29kZSB1bml0c1xuICogLSBtYXRjaGVzIGFueSBCTVAgY2hhcmFjdGVyIGV4Y2VwdCBmb3IgdGhvc2UganVzdCBkZXNjcmliZWRcbiAqIC0gbWF0Y2hlcyBhbnkgdmFsaWQgVW5pY29kZSBzdXJyb2dhdGUgcGFpclxuICogLSBtYXRjaGVzIGEgYmFja3NsYXNoIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIHdoaXRlc3BhY2UgY2hhcmFjdGVyc1xuICogLSBtYXRjaGVzIGEgYmFja3NsYXNoIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGxldHRlcnMgdGhlbiB3aGl0ZXNwYWNlXG4gKiAtIG1hdGNoZXMgYSBiYWNrc2xhc2ggZm9sbG93ZWQgYnkgYW55IEJNUCBjaGFyYWN0ZXJcbiAqIENhcHR1cmluZyBncm91cHM6XG4gKiAgIFsxXSByZWd1bGFyIHdoaXRlc3BhY2VcbiAqICAgWzJdIGJhY2tzbGFzaCBmb2xsb3dlZCBieSB3aGl0ZXNwYWNlXG4gKiAgIFszXSBhbnl0aGluZyBlbHNlLCB3aGljaCBtYXkgaW5jbHVkZTpcbiAqICAgICBbNF0gbGVmdCBjaGFyYWN0ZXIgb2YgXFx2ZXJiKlxuICogICAgIFs1XSBsZWZ0IGNoYXJhY3RlciBvZiBcXHZlcmJcbiAqICAgICBbNl0gYmFja3NsYXNoIGZvbGxvd2VkIGJ5IHdvcmQsIGV4Y2x1ZGluZyBhbnkgdHJhaWxpbmcgd2hpdGVzcGFjZVxuICogSnVzdCBiZWNhdXNlIHRoZSBMZXhlciBtYXRjaGVzIHNvbWV0aGluZyBkb2Vzbid0IG1lYW4gaXQncyB2YWxpZCBpbnB1dDpcbiAqIElmIHRoZXJlIGlzIG5vIG1hdGNoaW5nIGZ1bmN0aW9uIG9yIHN5bWJvbCBkZWZpbml0aW9uLCB0aGUgUGFyc2VyIHdpbGxcbiAqIHN0aWxsIHJlamVjdCB0aGUgaW5wdXQuXG4gKi9cbnZhciBzcGFjZVJlZ2V4U3RyaW5nID0gXCJbIFxcclxcblxcdF1cIjtcbnZhciBjb250cm9sV29yZFJlZ2V4U3RyaW5nID0gXCJcXFxcXFxcXFthLXpBLVpAXStcIjtcbnZhciBjb250cm9sU3ltYm9sUmVnZXhTdHJpbmcgPSBcIlxcXFxcXFxcW15cXHVEODAwLVxcdURGRkZdXCI7XG52YXIgY29udHJvbFdvcmRXaGl0ZXNwYWNlUmVnZXhTdHJpbmcgPSBcIihcIiArIGNvbnRyb2xXb3JkUmVnZXhTdHJpbmcgKyBcIilcIiArIHNwYWNlUmVnZXhTdHJpbmcgKyBcIipcIjtcbnZhciBjb250cm9sU3BhY2VSZWdleFN0cmluZyA9IFwiXFxcXFxcXFwoXFxufFsgXFxyXFx0XStcXG4/KVsgXFxyXFx0XSpcIjtcbnZhciBjb21iaW5pbmdEaWFjcml0aWNhbE1hcmtTdHJpbmcgPSBcIltcXHUwMzAwLVxcdTAzNmZdXCI7XG52YXIgY29tYmluaW5nRGlhY3JpdGljYWxNYXJrc0VuZFJlZ2V4ID0gbmV3IFJlZ0V4cChjb21iaW5pbmdEaWFjcml0aWNhbE1hcmtTdHJpbmcgKyBcIiskXCIpO1xudmFyIHRva2VuUmVnZXhTdHJpbmcgPSBcIihcIiArIHNwYWNlUmVnZXhTdHJpbmcgKyBcIispfFwiICsgKCAvLyB3aGl0ZXNwYWNlXG5jb250cm9sU3BhY2VSZWdleFN0cmluZyArIFwifFwiKSArIC8vIFxcd2hpdGVzcGFjZVxuXCIoWyEtXFxcXFtcXFxcXS1cXHUyMDI3XFx1MjAyQS1cXHVEN0ZGXFx1RjkwMC1cXHVGRkZGXVwiICsgKCAvLyBzaW5nbGUgY29kZXBvaW50XG5jb21iaW5pbmdEaWFjcml0aWNhbE1hcmtTdHJpbmcgKyBcIipcIikgKyAvLyAuLi5wbHVzIGFjY2VudHNcblwifFtcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl1cIiArICggLy8gc3Vycm9nYXRlIHBhaXJcbmNvbWJpbmluZ0RpYWNyaXRpY2FsTWFya1N0cmluZyArIFwiKlwiKSArIC8vIC4uLnBsdXMgYWNjZW50c1xuXCJ8XFxcXFxcXFx2ZXJiXFxcXCooW15dKS4qP1xcXFw0XCIgKyAvLyBcXHZlcmIqXG5cInxcXFxcXFxcXHZlcmIoW14qYS16QS1aXSkuKj9cXFxcNVwiICsgKCAvLyBcXHZlcmIgdW5zdGFycmVkXG5cInxcIiArIGNvbnRyb2xXb3JkV2hpdGVzcGFjZVJlZ2V4U3RyaW5nKSArICggLy8gXFxtYWNyb05hbWUgKyBzcGFjZXNcblwifFwiICsgY29udHJvbFN5bWJvbFJlZ2V4U3RyaW5nICsgXCIpXCIpOyAvLyBcXFxcLCBcXCcsIGV0Yy5cblxuLyoqIE1haW4gTGV4ZXIgY2xhc3MgKi9cblxuY2xhc3MgTGV4ZXIge1xuICAvLyBDYXRlZ29yeSBjb2Rlcy4gVGhlIGxleGVyIG9ubHkgc3VwcG9ydHMgY29tbWVudCBjaGFyYWN0ZXJzICgxNCkgZm9yIG5vdy5cbiAgLy8gTWFjcm9FeHBhbmRlciBhZGRpdGlvbmFsbHkgZGlzdGluZ3Vpc2hlcyBhY3RpdmUgKDEzKS5cbiAgY29uc3RydWN0b3IoaW5wdXQsIHNldHRpbmdzKSB7XG4gICAgdGhpcy5pbnB1dCA9IHZvaWQgMDtcbiAgICB0aGlzLnNldHRpbmdzID0gdm9pZCAwO1xuICAgIHRoaXMudG9rZW5SZWdleCA9IHZvaWQgMDtcbiAgICB0aGlzLmNhdGNvZGVzID0gdm9pZCAwO1xuICAgIC8vIFNlcGFyYXRlIGFjY2VudHMgZnJvbSBjaGFyYWN0ZXJzXG4gICAgdGhpcy5pbnB1dCA9IGlucHV0O1xuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB0aGlzLnRva2VuUmVnZXggPSBuZXcgUmVnRXhwKHRva2VuUmVnZXhTdHJpbmcsICdnJyk7XG4gICAgdGhpcy5jYXRjb2RlcyA9IHtcbiAgICAgIFwiJVwiOiAxNCxcbiAgICAgIC8vIGNvbW1lbnQgY2hhcmFjdGVyXG4gICAgICBcIn5cIjogMTMgLy8gYWN0aXZlIGNoYXJhY3RlclxuXG4gICAgfTtcbiAgfVxuXG4gIHNldENhdGNvZGUoY2hhciwgY29kZSkge1xuICAgIHRoaXMuY2F0Y29kZXNbY2hhcl0gPSBjb2RlO1xuICB9XG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGxleGVzIGEgc2luZ2xlIHRva2VuLlxuICAgKi9cblxuXG4gIGxleCgpIHtcbiAgICB2YXIgaW5wdXQgPSB0aGlzLmlucHV0O1xuICAgIHZhciBwb3MgPSB0aGlzLnRva2VuUmVnZXgubGFzdEluZGV4O1xuXG4gICAgaWYgKHBvcyA9PT0gaW5wdXQubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbmV3IFRva2VuKFwiRU9GXCIsIG5ldyBTb3VyY2VMb2NhdGlvbih0aGlzLCBwb3MsIHBvcykpO1xuICAgIH1cblxuICAgIHZhciBtYXRjaCA9IHRoaXMudG9rZW5SZWdleC5leGVjKGlucHV0KTtcblxuICAgIGlmIChtYXRjaCA9PT0gbnVsbCB8fCBtYXRjaC5pbmRleCAhPT0gcG9zKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIlVuZXhwZWN0ZWQgY2hhcmFjdGVyOiAnXCIgKyBpbnB1dFtwb3NdICsgXCInXCIsIG5ldyBUb2tlbihpbnB1dFtwb3NdLCBuZXcgU291cmNlTG9jYXRpb24odGhpcywgcG9zLCBwb3MgKyAxKSkpO1xuICAgIH1cblxuICAgIHZhciB0ZXh0ID0gbWF0Y2hbNl0gfHwgbWF0Y2hbM10gfHwgKG1hdGNoWzJdID8gXCJcXFxcIFwiIDogXCIgXCIpO1xuXG4gICAgaWYgKHRoaXMuY2F0Y29kZXNbdGV4dF0gPT09IDE0KSB7XG4gICAgICAvLyBjb21tZW50IGNoYXJhY3RlclxuICAgICAgdmFyIG5sSW5kZXggPSBpbnB1dC5pbmRleE9mKCdcXG4nLCB0aGlzLnRva2VuUmVnZXgubGFzdEluZGV4KTtcblxuICAgICAgaWYgKG5sSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHRoaXMudG9rZW5SZWdleC5sYXN0SW5kZXggPSBpbnB1dC5sZW5ndGg7IC8vIEVPRlxuXG4gICAgICAgIHRoaXMuc2V0dGluZ3MucmVwb3J0Tm9uc3RyaWN0KFwiY29tbWVudEF0RW5kXCIsIFwiJSBjb21tZW50IGhhcyBubyB0ZXJtaW5hdGluZyBuZXdsaW5lOyBMYVRlWCB3b3VsZCBcIiArIFwiZmFpbCBiZWNhdXNlIG9mIGNvbW1lbnRpbmcgdGhlIGVuZCBvZiBtYXRoIG1vZGUgKGUuZy4gJClcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRva2VuUmVnZXgubGFzdEluZGV4ID0gbmxJbmRleCArIDE7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmxleCgpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgVG9rZW4odGV4dCwgbmV3IFNvdXJjZUxvY2F0aW9uKHRoaXMsIHBvcywgdGhpcy50b2tlblJlZ2V4Lmxhc3RJbmRleCkpO1xuICB9XG5cbn1cblxuLyoqXG4gKiBBIGBOYW1lc3BhY2VgIHJlZmVycyB0byBhIHNwYWNlIG9mIG5hbWVhYmxlIHRoaW5ncyBsaWtlIG1hY3JvcyBvciBsZW5ndGhzLFxuICogd2hpY2ggY2FuIGJlIGBzZXRgIGVpdGhlciBnbG9iYWxseSBvciBsb2NhbCB0byBhIG5lc3RlZCBncm91cCwgdXNpbmcgYW5cbiAqIHVuZG8gc3RhY2sgc2ltaWxhciB0byBob3cgVGVYIGltcGxlbWVudHMgdGhpcyBmdW5jdGlvbmFsaXR5LlxuICogUGVyZm9ybWFuY2Utd2lzZSwgYGdldGAgYW5kIGxvY2FsIGBzZXRgIHRha2UgY29uc3RhbnQgdGltZSwgd2hpbGUgZ2xvYmFsXG4gKiBgc2V0YCB0YWtlcyB0aW1lIHByb3BvcnRpb25hbCB0byB0aGUgZGVwdGggb2YgZ3JvdXAgbmVzdGluZy5cbiAqL1xuY2xhc3MgTmFtZXNwYWNlIHtcbiAgLyoqXG4gICAqIEJvdGggYXJndW1lbnRzIGFyZSBvcHRpb25hbC4gIFRoZSBmaXJzdCBhcmd1bWVudCBpcyBhbiBvYmplY3Qgb2ZcbiAgICogYnVpbHQtaW4gbWFwcGluZ3Mgd2hpY2ggbmV2ZXIgY2hhbmdlLiAgVGhlIHNlY29uZCBhcmd1bWVudCBpcyBhbiBvYmplY3RcbiAgICogb2YgaW5pdGlhbCAoZ2xvYmFsLWxldmVsKSBtYXBwaW5ncywgd2hpY2ggd2lsbCBjb25zdGFudGx5IGNoYW5nZVxuICAgKiBhY2NvcmRpbmcgdG8gYW55IGdsb2JhbC90b3AtbGV2ZWwgYHNldGBzIGRvbmUuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihidWlsdGlucywgZ2xvYmFsTWFjcm9zKSB7XG4gICAgaWYgKGJ1aWx0aW5zID09PSB2b2lkIDApIHtcbiAgICAgIGJ1aWx0aW5zID0ge307XG4gICAgfVxuXG4gICAgaWYgKGdsb2JhbE1hY3JvcyA9PT0gdm9pZCAwKSB7XG4gICAgICBnbG9iYWxNYWNyb3MgPSB7fTtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnQgPSB2b2lkIDA7XG4gICAgdGhpcy5idWlsdGlucyA9IHZvaWQgMDtcbiAgICB0aGlzLnVuZGVmU3RhY2sgPSB2b2lkIDA7XG4gICAgdGhpcy5jdXJyZW50ID0gZ2xvYmFsTWFjcm9zO1xuICAgIHRoaXMuYnVpbHRpbnMgPSBidWlsdGlucztcbiAgICB0aGlzLnVuZGVmU3RhY2sgPSBbXTtcbiAgfVxuICAvKipcbiAgICogU3RhcnQgYSBuZXcgbmVzdGVkIGdyb3VwLCBhZmZlY3RpbmcgZnV0dXJlIGxvY2FsIGBzZXRgcy5cbiAgICovXG5cblxuICBiZWdpbkdyb3VwKCkge1xuICAgIHRoaXMudW5kZWZTdGFjay5wdXNoKHt9KTtcbiAgfVxuICAvKipcbiAgICogRW5kIGN1cnJlbnQgbmVzdGVkIGdyb3VwLCByZXN0b3JpbmcgdmFsdWVzIGJlZm9yZSB0aGUgZ3JvdXAgYmVnYW4uXG4gICAqL1xuXG5cbiAgZW5kR3JvdXAoKSB7XG4gICAgaWYgKHRoaXMudW5kZWZTdGFjay5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiVW5iYWxhbmNlZCBuYW1lc3BhY2UgZGVzdHJ1Y3Rpb246IGF0dGVtcHQgXCIgKyBcInRvIHBvcCBnbG9iYWwgbmFtZXNwYWNlOyBwbGVhc2UgcmVwb3J0IHRoaXMgYXMgYSBidWdcIik7XG4gICAgfVxuXG4gICAgdmFyIHVuZGVmcyA9IHRoaXMudW5kZWZTdGFjay5wb3AoKTtcblxuICAgIGZvciAodmFyIHVuZGVmIGluIHVuZGVmcykge1xuICAgICAgaWYgKHVuZGVmcy5oYXNPd25Qcm9wZXJ0eSh1bmRlZikpIHtcbiAgICAgICAgaWYgKHVuZGVmc1t1bmRlZl0gPT0gbnVsbCkge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRbdW5kZWZdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY3VycmVudFt1bmRlZl0gPSB1bmRlZnNbdW5kZWZdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBFbmRzIGFsbCBjdXJyZW50bHkgbmVzdGVkIGdyb3VwcyAoaWYgYW55KSwgcmVzdG9yaW5nIHZhbHVlcyBiZWZvcmUgdGhlXG4gICAqIGdyb3VwcyBiZWdhbi4gIFVzZWZ1bCBpbiBjYXNlIG9mIGFuIGVycm9yIGluIHRoZSBtaWRkbGUgb2YgcGFyc2luZy5cbiAgICovXG5cblxuICBlbmRHcm91cHMoKSB7XG4gICAgd2hpbGUgKHRoaXMudW5kZWZTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmVuZEdyb3VwKCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBEZXRlY3Qgd2hldGhlciBgbmFtZWAgaGFzIGEgZGVmaW5pdGlvbi4gIEVxdWl2YWxlbnQgdG9cbiAgICogYGdldChuYW1lKSAhPSBudWxsYC5cbiAgICovXG5cblxuICBoYXMobmFtZSkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnQuaGFzT3duUHJvcGVydHkobmFtZSkgfHwgdGhpcy5idWlsdGlucy5oYXNPd25Qcm9wZXJ0eShuYW1lKTtcbiAgfVxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHZhbHVlIG9mIGEgbmFtZSwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlcmUgaXMgbm8gdmFsdWUuXG4gICAqXG4gICAqIE5vdGU6IERvIG5vdCB1c2UgYGlmIChuYW1lc3BhY2UuZ2V0KC4uLikpYCB0byBkZXRlY3Qgd2hldGhlciBhIG1hY3JvXG4gICAqIGlzIGRlZmluZWQsIGFzIHRoZSBkZWZpbml0aW9uIG1heSBiZSB0aGUgZW1wdHkgc3RyaW5nIHdoaWNoIGV2YWx1YXRlc1xuICAgKiB0byBgZmFsc2VgIGluIEphdmFTY3JpcHQuICBVc2UgYGlmIChuYW1lc3BhY2UuZ2V0KC4uLikgIT0gbnVsbClgIG9yXG4gICAqIGBpZiAobmFtZXNwYWNlLmhhcyguLi4pKWAuXG4gICAqL1xuXG5cbiAgZ2V0KG5hbWUpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50Lmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50W25hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5idWlsdGluc1tuYW1lXTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFNldCB0aGUgY3VycmVudCB2YWx1ZSBvZiBhIG5hbWUsIGFuZCBvcHRpb25hbGx5IHNldCBpdCBnbG9iYWxseSB0b28uXG4gICAqIExvY2FsIHNldCgpIHNldHMgdGhlIGN1cnJlbnQgdmFsdWUgYW5kICh3aGVuIGFwcHJvcHJpYXRlKSBhZGRzIGFuIHVuZG9cbiAgICogb3BlcmF0aW9uIHRvIHRoZSB1bmRvIHN0YWNrLiAgR2xvYmFsIHNldCgpIG1heSBjaGFuZ2UgdGhlIHVuZG9cbiAgICogb3BlcmF0aW9uIGF0IGV2ZXJ5IGxldmVsLCBzbyB0YWtlcyB0aW1lIGxpbmVhciBpbiB0aGVpciBudW1iZXIuXG4gICAqIEEgdmFsdWUgb2YgdW5kZWZpbmVkIG1lYW5zIHRvIGRlbGV0ZSBleGlzdGluZyBkZWZpbml0aW9ucy5cbiAgICovXG5cblxuICBzZXQobmFtZSwgdmFsdWUsIGdsb2JhbCkge1xuICAgIGlmIChnbG9iYWwgPT09IHZvaWQgMCkge1xuICAgICAgZ2xvYmFsID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGdsb2JhbCkge1xuICAgICAgLy8gR2xvYmFsIHNldCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgaW4gYWxsIGdyb3Vwcy4gIFNpbXVsYXRlIHRoaXNcbiAgICAgIC8vIGJ5IGRlc3Ryb3lpbmcgYW55IHVuZG9zIGN1cnJlbnRseSBzY2hlZHVsZWQgZm9yIHRoaXMgbmFtZSxcbiAgICAgIC8vIGFuZCBhZGRpbmcgYW4gdW5kbyB3aXRoIHRoZSAqbmV3KiB2YWx1ZSAoaW4gY2FzZSBpdCBsYXRlciBnZXRzXG4gICAgICAvLyBsb2NhbGx5IHJlc2V0IHdpdGhpbiB0aGlzIGVudmlyb25tZW50KS5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy51bmRlZlN0YWNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnVuZGVmU3RhY2tbaV1bbmFtZV07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnVuZGVmU3RhY2subGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnVuZGVmU3RhY2tbdGhpcy51bmRlZlN0YWNrLmxlbmd0aCAtIDFdW25hbWVdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVuZG8gdGhpcyBzZXQgYXQgZW5kIG9mIHRoaXMgZ3JvdXAgKHBvc3NpYmx5IHRvIGB1bmRlZmluZWRgKSxcbiAgICAgIC8vIHVubGVzcyBhbiB1bmRvIGlzIGFscmVhZHkgaW4gcGxhY2UsIGluIHdoaWNoIGNhc2UgdGhhdCBvbGRlclxuICAgICAgLy8gdmFsdWUgaXMgdGhlIGNvcnJlY3Qgb25lLlxuICAgICAgdmFyIHRvcCA9IHRoaXMudW5kZWZTdGFja1t0aGlzLnVuZGVmU3RhY2subGVuZ3RoIC0gMV07XG5cbiAgICAgIGlmICh0b3AgJiYgIXRvcC5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICB0b3BbbmFtZV0gPSB0aGlzLmN1cnJlbnRbbmFtZV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRbbmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudFtuYW1lXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG59XG5cbi8qKlxuICogUHJlZGVmaW5lZCBtYWNyb3MgZm9yIEthVGVYLlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBkZWZpbmUgc29tZSBjb21tYW5kcyBpbiB0ZXJtcyBvZiBvdGhlcnMuXG4gKi9cbnZhciBtYWNyb3MgPSBfbWFjcm9zO1xuLy8gbWFjcm8gdG9vbHNcblxuZGVmaW5lTWFjcm8oXCJcXFxcbm9leHBhbmRcIiwgZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgLy8gVGhlIGV4cGFuc2lvbiBpcyB0aGUgdG9rZW4gaXRzZWxmOyBidXQgdGhhdCB0b2tlbiBpcyBpbnRlcnByZXRlZFxuICAvLyBhcyBpZiBpdHMgbWVhbmluZyB3ZXJlIOKAmFxccmVsYXjigJkgaWYgaXQgaXMgYSBjb250cm9sIHNlcXVlbmNlIHRoYXRcbiAgLy8gd291bGQgb3JkaW5hcmlseSBiZSBleHBhbmRlZCBieSBUZVjigJlzIGV4cGFuc2lvbiBydWxlcy5cbiAgdmFyIHQgPSBjb250ZXh0LnBvcFRva2VuKCk7XG5cbiAgaWYgKGNvbnRleHQuaXNFeHBhbmRhYmxlKHQudGV4dCkpIHtcbiAgICB0Lm5vZXhwYW5kID0gdHJ1ZTtcbiAgICB0LnRyZWF0QXNSZWxheCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHRva2VuczogW3RdLFxuICAgIG51bUFyZ3M6IDBcbiAgfTtcbn0pO1xuZGVmaW5lTWFjcm8oXCJcXFxcZXhwYW5kYWZ0ZXJcIiwgZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgLy8gVGVYIGZpcnN0IHJlYWRzIHRoZSB0b2tlbiB0aGF0IGNvbWVzIGltbWVkaWF0ZWx5IGFmdGVyIFxcZXhwYW5kYWZ0ZXIsXG4gIC8vIHdpdGhvdXQgZXhwYW5kaW5nIGl0OyBsZXTigJlzIGNhbGwgdGhpcyB0b2tlbiB0LiBUaGVuIFRlWCByZWFkcyB0aGVcbiAgLy8gdG9rZW4gdGhhdCBjb21lcyBhZnRlciB0IChhbmQgcG9zc2libHkgbW9yZSB0b2tlbnMsIGlmIHRoYXQgdG9rZW5cbiAgLy8gaGFzIGFuIGFyZ3VtZW50KSwgcmVwbGFjaW5nIGl0IGJ5IGl0cyBleHBhbnNpb24uIEZpbmFsbHkgVGVYIHB1dHNcbiAgLy8gdCBiYWNrIGluIGZyb250IG9mIHRoYXQgZXhwYW5zaW9uLlxuICB2YXIgdCA9IGNvbnRleHQucG9wVG9rZW4oKTtcbiAgY29udGV4dC5leHBhbmRPbmNlKHRydWUpOyAvLyBleHBhbmQgb25seSBhbiBleHBhbmRhYmxlIHRva2VuXG5cbiAgcmV0dXJuIHtcbiAgICB0b2tlbnM6IFt0XSxcbiAgICBudW1BcmdzOiAwXG4gIH07XG59KTsgLy8gTGFUZVgncyBcXEBmaXJzdG9mdHdveyMxfXsjMn0gZXhwYW5kcyB0byAjMSwgc2tpcHBpbmcgIzJcbi8vIFRlWCBzb3VyY2U6IFxcbG9uZ1xcZGVmXFxAZmlyc3RvZnR3byMxIzJ7IzF9XG5cbmRlZmluZU1hY3JvKFwiXFxcXEBmaXJzdG9mdHdvXCIsIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIHZhciBhcmdzID0gY29udGV4dC5jb25zdW1lQXJncygyKTtcbiAgcmV0dXJuIHtcbiAgICB0b2tlbnM6IGFyZ3NbMF0sXG4gICAgbnVtQXJnczogMFxuICB9O1xufSk7IC8vIExhVGVYJ3MgXFxAc2Vjb25kb2Z0d297IzF9eyMyfSBleHBhbmRzIHRvICMyLCBza2lwcGluZyAjMVxuLy8gVGVYIHNvdXJjZTogXFxsb25nXFxkZWZcXEBzZWNvbmRvZnR3byMxIzJ7IzJ9XG5cbmRlZmluZU1hY3JvKFwiXFxcXEBzZWNvbmRvZnR3b1wiLCBmdW5jdGlvbiAoY29udGV4dCkge1xuICB2YXIgYXJncyA9IGNvbnRleHQuY29uc3VtZUFyZ3MoMik7XG4gIHJldHVybiB7XG4gICAgdG9rZW5zOiBhcmdzWzFdLFxuICAgIG51bUFyZ3M6IDBcbiAgfTtcbn0pOyAvLyBMYVRlWCdzIFxcQGlmbmV4dGNoYXJ7IzF9eyMyfXsjM30gbG9va3MgYWhlYWQgdG8gdGhlIG5leHQgKHVuZXhwYW5kZWQpXG4vLyBzeW1ib2wgdGhhdCBpc24ndCBhIHNwYWNlLCBjb25zdW1pbmcgYW55IHNwYWNlcyBidXQgbm90IGNvbnN1bWluZyB0aGVcbi8vIGZpcnN0IG5vbnNwYWNlIGNoYXJhY3Rlci4gIElmIHRoYXQgbm9uc3BhY2UgY2hhcmFjdGVyIG1hdGNoZXMgIzEsIHRoZW5cbi8vIHRoZSBtYWNybyBleHBhbmRzIHRvICMyOyBvdGhlcndpc2UsIGl0IGV4cGFuZHMgdG8gIzMuXG5cbmRlZmluZU1hY3JvKFwiXFxcXEBpZm5leHRjaGFyXCIsIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIHZhciBhcmdzID0gY29udGV4dC5jb25zdW1lQXJncygzKTsgLy8gc3ltYm9sLCBpZiwgZWxzZVxuXG4gIGNvbnRleHQuY29uc3VtZVNwYWNlcygpO1xuICB2YXIgbmV4dFRva2VuID0gY29udGV4dC5mdXR1cmUoKTtcblxuICBpZiAoYXJnc1swXS5sZW5ndGggPT09IDEgJiYgYXJnc1swXVswXS50ZXh0ID09PSBuZXh0VG9rZW4udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICB0b2tlbnM6IGFyZ3NbMV0sXG4gICAgICBudW1BcmdzOiAwXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW5zOiBhcmdzWzJdLFxuICAgICAgbnVtQXJnczogMFxuICAgIH07XG4gIH1cbn0pOyAvLyBMYVRlWCdzIFxcQGlmc3RhcnsjMX17IzJ9IGxvb2tzIGFoZWFkIHRvIHRoZSBuZXh0ICh1bmV4cGFuZGVkKSBzeW1ib2wuXG4vLyBJZiBpdCBpcyBgKmAsIHRoZW4gaXQgY29uc3VtZXMgdGhlIHN5bWJvbCwgYW5kIHRoZSBtYWNybyBleHBhbmRzIHRvICMxO1xuLy8gb3RoZXJ3aXNlLCB0aGUgbWFjcm8gZXhwYW5kcyB0byAjMiAod2l0aG91dCBjb25zdW1pbmcgdGhlIHN5bWJvbCkuXG4vLyBUZVggc291cmNlOiBcXGRlZlxcQGlmc3RhciMxe1xcQGlmbmV4dGNoYXIgKntcXEBmaXJzdG9mdHdveyMxfX19XG5cbmRlZmluZU1hY3JvKFwiXFxcXEBpZnN0YXJcIiwgXCJcXFxcQGlmbmV4dGNoYXIgKntcXFxcQGZpcnN0b2Z0d297IzF9fVwiKTsgLy8gTGFUZVgncyBcXFRleHRPck1hdGh7IzF9eyMyfSBleHBhbmRzIHRvICMxIGluIHRleHQgbW9kZSwgIzIgaW4gbWF0aCBtb2RlXG5cbmRlZmluZU1hY3JvKFwiXFxcXFRleHRPck1hdGhcIiwgZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgdmFyIGFyZ3MgPSBjb250ZXh0LmNvbnN1bWVBcmdzKDIpO1xuXG4gIGlmIChjb250ZXh0Lm1vZGUgPT09ICd0ZXh0Jykge1xuICAgIHJldHVybiB7XG4gICAgICB0b2tlbnM6IGFyZ3NbMF0sXG4gICAgICBudW1BcmdzOiAwXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW5zOiBhcmdzWzFdLFxuICAgICAgbnVtQXJnczogMFxuICAgIH07XG4gIH1cbn0pOyAvLyBMb29rdXAgdGFibGUgZm9yIHBhcnNpbmcgbnVtYmVycyBpbiBiYXNlIDggdGhyb3VnaCAxNlxuXG52YXIgZGlnaXRUb051bWJlciA9IHtcbiAgXCIwXCI6IDAsXG4gIFwiMVwiOiAxLFxuICBcIjJcIjogMixcbiAgXCIzXCI6IDMsXG4gIFwiNFwiOiA0LFxuICBcIjVcIjogNSxcbiAgXCI2XCI6IDYsXG4gIFwiN1wiOiA3LFxuICBcIjhcIjogOCxcbiAgXCI5XCI6IDksXG4gIFwiYVwiOiAxMCxcbiAgXCJBXCI6IDEwLFxuICBcImJcIjogMTEsXG4gIFwiQlwiOiAxMSxcbiAgXCJjXCI6IDEyLFxuICBcIkNcIjogMTIsXG4gIFwiZFwiOiAxMyxcbiAgXCJEXCI6IDEzLFxuICBcImVcIjogMTQsXG4gIFwiRVwiOiAxNCxcbiAgXCJmXCI6IDE1LFxuICBcIkZcIjogMTVcbn07IC8vIFRlWCBcXGNoYXIgbWFrZXMgYSBsaXRlcmFsIGNoYXJhY3RlciAoY2F0Y29kZSAxMikgdXNpbmcgdGhlIGZvbGxvd2luZyBmb3Jtczpcbi8vIChzZWUgVGhlIFRlWEJvb2ssIHAuIDQzKVxuLy8gICBcXGNoYXIxMjMgIC0tIGRlY2ltYWxcbi8vICAgXFxjaGFyJzEyMyAtLSBvY3RhbFxuLy8gICBcXGNoYXJcIjEyMyAtLSBoZXhcbi8vICAgXFxjaGFyYHggICAtLSBjaGFyYWN0ZXIgdGhhdCBjYW4gYmUgd3JpdHRlbiAoaS5lLiBpc24ndCBhY3RpdmUpXG4vLyAgIFxcY2hhcmBcXHggIC0tIGNoYXJhY3RlciB0aGF0IGNhbm5vdCBiZSB3cml0dGVuIChlLmcuICUpXG4vLyBUaGVzZSBhbGwgcmVmZXIgdG8gY2hhcmFjdGVycyBmcm9tIHRoZSBmb250LCBzbyB3ZSB0dXJuIHRoZW0gaW50byBzcGVjaWFsXG4vLyBjYWxscyB0byBhIGZ1bmN0aW9uIFxcQGNoYXIgZGVhbHQgd2l0aCBpbiB0aGUgUGFyc2VyLlxuXG5kZWZpbmVNYWNybyhcIlxcXFxjaGFyXCIsIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIHZhciB0b2tlbiA9IGNvbnRleHQucG9wVG9rZW4oKTtcbiAgdmFyIGJhc2U7XG4gIHZhciBudW1iZXIgPSAnJztcblxuICBpZiAodG9rZW4udGV4dCA9PT0gXCInXCIpIHtcbiAgICBiYXNlID0gODtcbiAgICB0b2tlbiA9IGNvbnRleHQucG9wVG9rZW4oKTtcbiAgfSBlbHNlIGlmICh0b2tlbi50ZXh0ID09PSAnXCInKSB7XG4gICAgYmFzZSA9IDE2O1xuICAgIHRva2VuID0gY29udGV4dC5wb3BUb2tlbigpO1xuICB9IGVsc2UgaWYgKHRva2VuLnRleHQgPT09IFwiYFwiKSB7XG4gICAgdG9rZW4gPSBjb250ZXh0LnBvcFRva2VuKCk7XG5cbiAgICBpZiAodG9rZW4udGV4dFswXSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgIG51bWJlciA9IHRva2VuLnRleHQuY2hhckNvZGVBdCgxKTtcbiAgICB9IGVsc2UgaWYgKHRva2VuLnRleHQgPT09IFwiRU9GXCIpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiXFxcXGNoYXJgIG1pc3NpbmcgYXJndW1lbnRcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIG51bWJlciA9IHRva2VuLnRleHQuY2hhckNvZGVBdCgwKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYmFzZSA9IDEwO1xuICB9XG5cbiAgaWYgKGJhc2UpIHtcbiAgICAvLyBQYXJzZSBhIG51bWJlciBpbiB0aGUgZ2l2ZW4gYmFzZSwgc3RhcnRpbmcgd2l0aCBmaXJzdCBgdG9rZW5gLlxuICAgIG51bWJlciA9IGRpZ2l0VG9OdW1iZXJbdG9rZW4udGV4dF07XG5cbiAgICBpZiAobnVtYmVyID09IG51bGwgfHwgbnVtYmVyID49IGJhc2UpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiSW52YWxpZCBiYXNlLVwiICsgYmFzZSArIFwiIGRpZ2l0IFwiICsgdG9rZW4udGV4dCk7XG4gICAgfVxuXG4gICAgdmFyIGRpZ2l0O1xuXG4gICAgd2hpbGUgKChkaWdpdCA9IGRpZ2l0VG9OdW1iZXJbY29udGV4dC5mdXR1cmUoKS50ZXh0XSkgIT0gbnVsbCAmJiBkaWdpdCA8IGJhc2UpIHtcbiAgICAgIG51bWJlciAqPSBiYXNlO1xuICAgICAgbnVtYmVyICs9IGRpZ2l0O1xuICAgICAgY29udGV4dC5wb3BUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBcIlxcXFxAY2hhcntcIiArIG51bWJlciArIFwifVwiO1xufSk7IC8vIFxcbmV3Y29tbWFuZHtcXG1hY3JvfVthcmdzXXtkZWZpbml0aW9ufVxuLy8gXFxyZW5ld2NvbW1hbmR7XFxtYWNyb31bYXJnc117ZGVmaW5pdGlvbn1cbi8vIFRPRE86IE9wdGlvbmFsIGFyZ3VtZW50czogXFxuZXdjb21tYW5ke1xcbWFjcm99W2FyZ3NdW2RlZmF1bHRde2RlZmluaXRpb259XG5cbnZhciBuZXdjb21tYW5kID0gKGNvbnRleHQsIGV4aXN0c09LLCBub25leGlzdHNPSykgPT4ge1xuICB2YXIgYXJnID0gY29udGV4dC5jb25zdW1lQXJnKCkudG9rZW5zO1xuXG4gIGlmIChhcmcubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJcXFxcbmV3Y29tbWFuZCdzIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBtYWNybyBuYW1lXCIpO1xuICB9XG5cbiAgdmFyIG5hbWUgPSBhcmdbMF0udGV4dDtcbiAgdmFyIGV4aXN0cyA9IGNvbnRleHQuaXNEZWZpbmVkKG5hbWUpO1xuXG4gIGlmIChleGlzdHMgJiYgIWV4aXN0c09LKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJcXFxcbmV3Y29tbWFuZHtcIiArIG5hbWUgKyBcIn0gYXR0ZW1wdGluZyB0byByZWRlZmluZSBcIiArIChuYW1lICsgXCI7IHVzZSBcXFxccmVuZXdjb21tYW5kXCIpKTtcbiAgfVxuXG4gIGlmICghZXhpc3RzICYmICFub25leGlzdHNPSykge1xuICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiXFxcXHJlbmV3Y29tbWFuZHtcIiArIG5hbWUgKyBcIn0gd2hlbiBjb21tYW5kIFwiICsgbmFtZSArIFwiIFwiICsgXCJkb2VzIG5vdCB5ZXQgZXhpc3Q7IHVzZSBcXFxcbmV3Y29tbWFuZFwiKTtcbiAgfVxuXG4gIHZhciBudW1BcmdzID0gMDtcbiAgYXJnID0gY29udGV4dC5jb25zdW1lQXJnKCkudG9rZW5zO1xuXG4gIGlmIChhcmcubGVuZ3RoID09PSAxICYmIGFyZ1swXS50ZXh0ID09PSBcIltcIikge1xuICAgIHZhciBhcmdUZXh0ID0gJyc7XG4gICAgdmFyIHRva2VuID0gY29udGV4dC5leHBhbmROZXh0VG9rZW4oKTtcblxuICAgIHdoaWxlICh0b2tlbi50ZXh0ICE9PSBcIl1cIiAmJiB0b2tlbi50ZXh0ICE9PSBcIkVPRlwiKSB7XG4gICAgICAvLyBUT0RPOiBTaG91bGQgcHJvcGVybHkgZXhwYW5kIGFyZywgZS5nLiwgaWdub3JlIHt9c1xuICAgICAgYXJnVGV4dCArPSB0b2tlbi50ZXh0O1xuICAgICAgdG9rZW4gPSBjb250ZXh0LmV4cGFuZE5leHRUb2tlbigpO1xuICAgIH1cblxuICAgIGlmICghYXJnVGV4dC5tYXRjaCgvXlxccypbMC05XStcXHMqJC8pKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50czogXCIgKyBhcmdUZXh0KTtcbiAgICB9XG5cbiAgICBudW1BcmdzID0gcGFyc2VJbnQoYXJnVGV4dCk7XG4gICAgYXJnID0gY29udGV4dC5jb25zdW1lQXJnKCkudG9rZW5zO1xuICB9IC8vIEZpbmFsIGFyZyBpcyB0aGUgZXhwYW5zaW9uIG9mIHRoZSBtYWNyb1xuXG5cbiAgY29udGV4dC5tYWNyb3Muc2V0KG5hbWUsIHtcbiAgICB0b2tlbnM6IGFyZyxcbiAgICBudW1BcmdzXG4gIH0pO1xuICByZXR1cm4gJyc7XG59O1xuXG5kZWZpbmVNYWNybyhcIlxcXFxuZXdjb21tYW5kXCIsIGNvbnRleHQgPT4gbmV3Y29tbWFuZChjb250ZXh0LCBmYWxzZSwgdHJ1ZSkpO1xuZGVmaW5lTWFjcm8oXCJcXFxccmVuZXdjb21tYW5kXCIsIGNvbnRleHQgPT4gbmV3Y29tbWFuZChjb250ZXh0LCB0cnVlLCBmYWxzZSkpO1xuZGVmaW5lTWFjcm8oXCJcXFxccHJvdmlkZWNvbW1hbmRcIiwgY29udGV4dCA9PiBuZXdjb21tYW5kKGNvbnRleHQsIHRydWUsIHRydWUpKTsgLy8gdGVybWluYWwgKGNvbnNvbGUpIHRvb2xzXG5cbmRlZmluZU1hY3JvKFwiXFxcXG1lc3NhZ2VcIiwgY29udGV4dCA9PiB7XG4gIHZhciBhcmcgPSBjb250ZXh0LmNvbnN1bWVBcmdzKDEpWzBdOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuXG4gIGNvbnNvbGUubG9nKGFyZy5yZXZlcnNlKCkubWFwKHRva2VuID0+IHRva2VuLnRleHQpLmpvaW4oXCJcIikpO1xuICByZXR1cm4gJyc7XG59KTtcbmRlZmluZU1hY3JvKFwiXFxcXGVycm1lc3NhZ2VcIiwgY29udGV4dCA9PiB7XG4gIHZhciBhcmcgPSBjb250ZXh0LmNvbnN1bWVBcmdzKDEpWzBdOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuXG4gIGNvbnNvbGUuZXJyb3IoYXJnLnJldmVyc2UoKS5tYXAodG9rZW4gPT4gdG9rZW4udGV4dCkuam9pbihcIlwiKSk7XG4gIHJldHVybiAnJztcbn0pO1xuZGVmaW5lTWFjcm8oXCJcXFxcc2hvd1wiLCBjb250ZXh0ID0+IHtcbiAgdmFyIHRvayA9IGNvbnRleHQucG9wVG9rZW4oKTtcbiAgdmFyIG5hbWUgPSB0b2sudGV4dDsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcblxuICBjb25zb2xlLmxvZyh0b2ssIGNvbnRleHQubWFjcm9zLmdldChuYW1lKSwgZnVuY3Rpb25zW25hbWVdLCBzeW1ib2xzLm1hdGhbbmFtZV0sIHN5bWJvbHMudGV4dFtuYW1lXSk7XG4gIHJldHVybiAnJztcbn0pOyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHcm91cGluZ1xuLy8gXFxsZXRcXGJncm91cD17IFxcbGV0XFxlZ3JvdXA9fVxuXG5kZWZpbmVNYWNybyhcIlxcXFxiZ3JvdXBcIiwgXCJ7XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZWdyb3VwXCIsIFwifVwiKTsgLy8gU3ltYm9scyBmcm9tIGxhdGV4Lmx0eDpcbi8vIFxcZGVmfntcXG5vYnJlYWtzcGFjZXt9fVxuLy8gXFxkZWZcXGxxe2B9XG4vLyBcXGRlZlxccnF7J31cbi8vIFxcZGVmIFxcYWEge1xcciBhfVxuLy8gXFxkZWYgXFxBQSB7XFxyIEF9XG5cbmRlZmluZU1hY3JvKFwiflwiLCBcIlxcXFxub2JyZWFrc3BhY2VcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxscVwiLCBcImBcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxycVwiLCBcIidcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxhYVwiLCBcIlxcXFxyIGFcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxBQVwiLCBcIlxcXFxyIEFcIik7IC8vIENvcHlyaWdodCAoQykgYW5kIHJlZ2lzdGVyZWQgKFIpIHN5bWJvbHMuIFVzZSByYXcgc3ltYm9sIGluIE1hdGhNTC5cbi8vIFxcRGVjbGFyZVRleHRDb21tYW5kRGVmYXVsdHtcXHRleHRjb3B5cmlnaHR9e1xcdGV4dGNpcmNsZWR7Y319XG4vLyBcXERlY2xhcmVUZXh0Q29tbWFuZERlZmF1bHR7XFx0ZXh0cmVnaXN0ZXJlZH17XFx0ZXh0Y2lyY2xlZHslXG4vLyAgICAgIFxcY2hlY2tAbWF0aGZvbnRzXFxmb250c2l6ZVxcc2ZAc2l6ZVxcekBcXG1hdGhAZm9udHNmYWxzZVxcc2VsZWN0Zm9udCBSfX1cbi8vIFxcRGVjbGFyZVJvYnVzdENvbW1hbmR7XFxjb3B5cmlnaHR9eyVcbi8vICAgIFxcaWZtbW9kZXtcXG5mc3NAdGV4dHtcXHRleHRjb3B5cmlnaHR9fVxcZWxzZVxcdGV4dGNvcHlyaWdodFxcZml9XG5cbmRlZmluZU1hY3JvKFwiXFxcXHRleHRjb3B5cmlnaHRcIiwgXCJcXFxcaHRtbEBtYXRobWx7XFxcXHRleHRjaXJjbGVke2N9fXtcXFxcY2hhcmDCqX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxjb3B5cmlnaHRcIiwgXCJcXFxcVGV4dE9yTWF0aHtcXFxcdGV4dGNvcHlyaWdodH17XFxcXHRleHR7XFxcXHRleHRjb3B5cmlnaHR9fVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHRleHRyZWdpc3RlcmVkXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFx0ZXh0Y2lyY2xlZHtcXFxcc2NyaXB0c2l6ZSBSfX17XFxcXGNoYXJgwq59XCIpOyAvLyBDaGFyYWN0ZXJzIG9taXR0ZWQgZnJvbSBVbmljb2RlIHJhbmdlIDFENDAw4oCTMUQ3RkZcblxuZGVmaW5lTWFjcm8oXCJcXHUyMTJDXCIsIFwiXFxcXG1hdGhzY3J7Qn1cIik7IC8vIHNjcmlwdFxuXG5kZWZpbmVNYWNybyhcIlxcdTIxMzBcIiwgXCJcXFxcbWF0aHNjcntFfVwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MjEzMVwiLCBcIlxcXFxtYXRoc2Nye0Z9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMTBCXCIsIFwiXFxcXG1hdGhzY3J7SH1cIik7XG5kZWZpbmVNYWNybyhcIlxcdTIxMTBcIiwgXCJcXFxcbWF0aHNjcntJfVwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MjExMlwiLCBcIlxcXFxtYXRoc2Nye0x9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMTMzXCIsIFwiXFxcXG1hdGhzY3J7TX1cIik7XG5kZWZpbmVNYWNybyhcIlxcdTIxMUJcIiwgXCJcXFxcbWF0aHNjcntSfVwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MjEyRFwiLCBcIlxcXFxtYXRoZnJha3tDfVwiKTsgLy8gRnJha3R1clxuXG5kZWZpbmVNYWNybyhcIlxcdTIxMENcIiwgXCJcXFxcbWF0aGZyYWt7SH1cIik7XG5kZWZpbmVNYWNybyhcIlxcdTIxMjhcIiwgXCJcXFxcbWF0aGZyYWt7Wn1cIik7IC8vIERlZmluZSBcXEJiYmsgd2l0aCBhIG1hY3JvIHRoYXQgd29ya3MgaW4gYm90aCBIVE1MIGFuZCBNYXRoTUwuXG5cbmRlZmluZU1hY3JvKFwiXFxcXEJiYmtcIiwgXCJcXFxcQmJie2t9XCIpOyAvLyBVbmljb2RlIG1pZGRsZSBkb3Rcbi8vIFRoZSBLYVRlWCBmb250cyBkbyBub3QgY29udGFpbiBVKzAwQjcuIEluc3RlYWQsIFxcY2RvdHAgZGlzcGxheXNcbi8vIHRoZSBkb3QgYXQgVSsyMkM1IGFuZCBnaXZlcyBpdCBwdW5jdCBzcGFjaW5nLlxuXG5kZWZpbmVNYWNybyhcIlxcdTAwYjdcIiwgXCJcXFxcY2RvdHBcIik7IC8vIFxcbGxhcCBhbmQgXFxybGFwIHJlbmRlciB0aGVpciBjb250ZW50cyBpbiB0ZXh0IG1vZGVcblxuZGVmaW5lTWFjcm8oXCJcXFxcbGxhcFwiLCBcIlxcXFxtYXRobGxhcHtcXFxcdGV4dHJteyMxfX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxybGFwXCIsIFwiXFxcXG1hdGhybGFwe1xcXFx0ZXh0cm17IzF9fVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGNsYXBcIiwgXCJcXFxcbWF0aGNsYXB7XFxcXHRleHRybXsjMX19XCIpOyAvLyBcXG1hdGhzdHJ1dCBmcm9tIHRoZSBUZVhib29rLCBwIDM2MFxuXG5kZWZpbmVNYWNybyhcIlxcXFxtYXRoc3RydXRcIiwgXCJcXFxcdnBoYW50b217KH1cIik7IC8vIFxcdW5kZXJiYXIgZnJvbSBUZVhib29rIHAgMzUzXG5cbmRlZmluZU1hY3JvKFwiXFxcXHVuZGVyYmFyXCIsIFwiXFxcXHVuZGVybGluZXtcXFxcdGV4dHsjMX19XCIpOyAvLyBcXG5vdCBpcyBkZWZpbmVkIGJ5IGJhc2UvZm9udG1hdGgubHR4IHZpYVxuLy8gXFxEZWNsYXJlTWF0aFN5bWJvbHtcXG5vdH17XFxtYXRocmVsfXtzeW1ib2xzfXtcIjM2fVxuLy8gSXQncyB0aHVzIHRyZWF0ZWQgbGlrZSBhIFxcbWF0aHJlbCwgYnV0IGRlZmluZWQgYnkgYSBzeW1ib2wgdGhhdCBoYXMgemVyb1xuLy8gd2lkdGggYnV0IGV4dGVuZHMgdG8gdGhlIHJpZ2h0LiAgV2UgdXNlIFxccmxhcCB0byBnZXQgdGhhdCBzcGFjaW5nLlxuLy8gRm9yIE1hdGhNTCB3ZSB3cml0ZSBVKzAzMzggaGVyZS4gYnVpbGRNYXRoTUwuanMgd2lsbCB0aGVuIGRvIHRoZSBvdmVybGF5LlxuXG5kZWZpbmVNYWNybyhcIlxcXFxub3RcIiwgJ1xcXFxodG1sQG1hdGhtbHtcXFxcbWF0aHJlbHtcXFxcbWF0aHJsYXBcXFxcQG5vdH19e1xcXFxjaGFyXCIzMzh9Jyk7IC8vIE5lZ2F0ZWQgc3ltYm9scyBmcm9tIGJhc2UvZm9udG1hdGgubHR4OlxuLy8gXFxkZWZcXG5lcXtcXG5vdD19IFxcbGV0XFxuZT1cXG5lcVxuLy8gXFxEZWNsYXJlUm9idXN0Q29tbWFuZFxuLy8gICBcXG5vdGlue1xcbWF0aHJlbHtcXG1AdGhcXG1hdGhwYWxldHRlXFxjQG5jZWxcXGlufX1cbi8vIFxcZGVmXFxjQG5jZWwjMSMye1xcbUB0aFxcb29hbGlnbnskXFxoZmlsIzFcXG1rZXJuMW11L1xcaGZpbCRcXGNyY3IkIzEjMiR9fVxuXG5kZWZpbmVNYWNybyhcIlxcXFxuZXFcIiwgXCJcXFxcaHRtbEBtYXRobWx7XFxcXG1hdGhyZWx7XFxcXG5vdD19fXtcXFxcbWF0aHJlbHtcXFxcY2hhcmDiiaB9fVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXG5lXCIsIFwiXFxcXG5lcVwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MjI2MFwiLCBcIlxcXFxuZXFcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxub3RpblwiLCBcIlxcXFxodG1sQG1hdGhtbHtcXFxcbWF0aHJlbHt7XFxcXGlufVxcXFxtYXRobGxhcHsvXFxcXG1za2lwMW11fX19XCIgKyBcIntcXFxcbWF0aHJlbHtcXFxcY2hhcmDiiIl9fVwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MjIwOVwiLCBcIlxcXFxub3RpblwiKTsgLy8gVW5pY29kZSBzdGFja2VkIHJlbGF0aW9uc1xuXG5kZWZpbmVNYWNybyhcIlxcdTIyNThcIiwgXCJcXFxcaHRtbEBtYXRobWx7XCIgKyBcIlxcXFxtYXRocmVsez1cXFxca2VybnstMWVtfVxcXFxyYWlzZWJveHswLjRlbX17JFxcXFxzY3JpcHRzaXplXFxcXGZyb3duJH19XCIgKyBcIn17XFxcXG1hdGhyZWx7XFxcXGNoYXJgXFx1MjI1OH19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMjU5XCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxzdGFja3JlbHtcXFxcdGlueVxcXFx3ZWRnZX17PX19e1xcXFxtYXRocmVse1xcXFxjaGFyYFxcdTIyNTh9fVwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MjI1QVwiLCBcIlxcXFxodG1sQG1hdGhtbHtcXFxcc3RhY2tyZWx7XFxcXHRpbnlcXFxcdmVlfXs9fX17XFxcXG1hdGhyZWx7XFxcXGNoYXJgXFx1MjI1QX19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMjVCXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxzdGFja3JlbHtcXFxcc2NyaXB0c2l6ZVxcXFxzdGFyfXs9fX1cIiArIFwie1xcXFxtYXRocmVse1xcXFxjaGFyYFxcdTIyNUJ9fVwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MjI1RFwiLCBcIlxcXFxodG1sQG1hdGhtbHtcXFxcc3RhY2tyZWx7XFxcXHRpbnlcXFxcbWF0aHJte2RlZn19ez19fVwiICsgXCJ7XFxcXG1hdGhyZWx7XFxcXGNoYXJgXFx1MjI1RH19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMjVFXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxzdGFja3JlbHtcXFxcdGlueVxcXFxtYXRocm17bX19ez19fVwiICsgXCJ7XFxcXG1hdGhyZWx7XFxcXGNoYXJgXFx1MjI1RX19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMjVGXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxzdGFja3JlbHtcXFxcdGlueT99ez19fXtcXFxcbWF0aHJlbHtcXFxcY2hhcmBcXHUyMjVGfX1cIik7IC8vIE1pc2MgVW5pY29kZVxuXG5kZWZpbmVNYWNybyhcIlxcdTI3QzJcIiwgXCJcXFxccGVycFwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MjAzQ1wiLCBcIlxcXFxtYXRoY2xvc2V7IVxcXFxta2Vybi0wLjhtdSF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMjBDXCIsIFwiXFxcXG5vdG5pXCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMzFDXCIsIFwiXFxcXHVsY29ybmVyXCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMzFEXCIsIFwiXFxcXHVyY29ybmVyXCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMzFFXCIsIFwiXFxcXGxsY29ybmVyXCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMzFGXCIsIFwiXFxcXGxyY29ybmVyXCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUwMEE5XCIsIFwiXFxcXGNvcHlyaWdodFwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MDBBRVwiLCBcIlxcXFx0ZXh0cmVnaXN0ZXJlZFwiKTtcbmRlZmluZU1hY3JvKFwiXFx1RkUwRlwiLCBcIlxcXFx0ZXh0cmVnaXN0ZXJlZFwiKTsgLy8gVGhlIEthVGVYIGZvbnRzIGhhdmUgY29ybmVycyBhdCBjb2RlcG9pbnRzIHRoYXQgZG9uJ3QgbWF0Y2ggVW5pY29kZS5cbi8vIEZvciBNYXRoTUwgcHVycG9zZXMsIHVzZSB0aGUgVW5pY29kZSBjb2RlIHBvaW50LlxuXG5kZWZpbmVNYWNybyhcIlxcXFx1bGNvcm5lclwiLCBcIlxcXFxodG1sQG1hdGhtbHtcXFxcQHVsY29ybmVyfXtcXFxcbWF0aG9we1xcXFxjaGFyXFxcIjIzMWN9fVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHVyY29ybmVyXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxAdXJjb3JuZXJ9e1xcXFxtYXRob3B7XFxcXGNoYXJcXFwiMjMxZH19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbGxjb3JuZXJcIiwgXCJcXFxcaHRtbEBtYXRobWx7XFxcXEBsbGNvcm5lcn17XFxcXG1hdGhvcHtcXFxcY2hhclxcXCIyMzFlfX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxscmNvcm5lclwiLCBcIlxcXFxodG1sQG1hdGhtbHtcXFxcQGxyY29ybmVyfXtcXFxcbWF0aG9we1xcXFxjaGFyXFxcIjIzMWZ9fVwiKTsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gTGFUZVhfMs61XG4vLyBcXHZkb3Rze1xcdmJveHtcXGJhc2VsaW5lc2tpcDRcXHBAICBcXGxpbmVza2lwbGltaXRcXHpAXG4vLyBcXGtlcm42XFxwQFxcaGJveHsufVxcaGJveHsufVxcaGJveHsufX19XG4vLyBXZSdsbCBjYWxsIFxcdmFydmRvdHMsIHdoaWNoIGdldHMgYSBnbHlwaCBmcm9tIHN5bWJvbHMuanMuXG4vLyBUaGUgemVyby13aWR0aCBydWxlIGdldHMgdXMgYW4gZXF1aXZhbGVudCB0byB0aGUgdmVydGljYWwgNnB0IGtlcm4uXG5cbmRlZmluZU1hY3JvKFwiXFxcXHZkb3RzXCIsIFwiXFxcXG1hdGhvcmR7XFxcXHZhcnZkb3RzXFxcXHJ1bGV7MHB0fXsxNXB0fX1cIik7XG5kZWZpbmVNYWNybyhcIlxcdTIyZWVcIiwgXCJcXFxcdmRvdHNcIik7IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFtc21hdGguc3R5XG4vLyBodHRwOi8vbWlycm9ycy5jb25jZXJ0cGFzcy5jb20vdGV4LWFyY2hpdmUvbWFjcm9zL2xhdGV4L3JlcXVpcmVkL2Ftc21hdGgvYW1zbWF0aC5wZGZcbi8vIEl0YWxpYyBHcmVlayBjYXBpdGFsIGxldHRlcnMuICBBTVMgZGVmaW5lcyB0aGVzZSB3aXRoIFxcRGVjbGFyZU1hdGhTeW1ib2wsXG4vLyBidXQgdGhleSBhcmUgZXF1aXZhbGVudCB0byBcXG1hdGhpdHtcXExldHRlcn0uXG5cbmRlZmluZU1hY3JvKFwiXFxcXHZhckdhbW1hXCIsIFwiXFxcXG1hdGhpdHtcXFxcR2FtbWF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdmFyRGVsdGFcIiwgXCJcXFxcbWF0aGl0e1xcXFxEZWx0YX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx2YXJUaGV0YVwiLCBcIlxcXFxtYXRoaXR7XFxcXFRoZXRhfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHZhckxhbWJkYVwiLCBcIlxcXFxtYXRoaXR7XFxcXExhbWJkYX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx2YXJYaVwiLCBcIlxcXFxtYXRoaXR7XFxcXFhpfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHZhclBpXCIsIFwiXFxcXG1hdGhpdHtcXFxcUGl9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdmFyU2lnbWFcIiwgXCJcXFxcbWF0aGl0e1xcXFxTaWdtYX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx2YXJVcHNpbG9uXCIsIFwiXFxcXG1hdGhpdHtcXFxcVXBzaWxvbn1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx2YXJQaGlcIiwgXCJcXFxcbWF0aGl0e1xcXFxQaGl9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdmFyUHNpXCIsIFwiXFxcXG1hdGhpdHtcXFxcUHNpfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHZhck9tZWdhXCIsIFwiXFxcXG1hdGhpdHtcXFxcT21lZ2F9XCIpOyAvL1xcbmV3Y29tbWFuZHtcXHN1YnN0YWNrfVsxXXtcXHN1YmFycmF5e2N9IzFcXGVuZHN1YmFycmF5fVxuXG5kZWZpbmVNYWNybyhcIlxcXFxzdWJzdGFja1wiLCBcIlxcXFxiZWdpbntzdWJhcnJheX17Y30jMVxcXFxlbmR7c3ViYXJyYXl9XCIpOyAvLyBcXHJlbmV3Y29tbWFuZHtcXGNvbG9ufXtcXG5vYnJlYWtcXG1za2lwMm11XFxtYXRocHVuY3R7fVxcbm9uc2NyaXB0XG4vLyBcXG1rZXJuLVxcdGhpbm11c2tpcHs6fVxcbXNraXA2bXVwbHVzMW11XFxyZWxheH1cblxuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25cIiwgXCJcXFxcbm9icmVha1xcXFxtc2tpcDJtdVxcXFxtYXRocHVuY3R7fVwiICsgXCJcXFxcbWF0aGNob2ljZXtcXFxcbWtlcm4tM211fXtcXFxcbWtlcm4tM211fXt9e317On1cXFxcbXNraXA2bXVcXFxccmVsYXhcIik7IC8vIFxcbmV3Y29tbWFuZHtcXGJveGVkfVsxXXtcXGZib3h7XFxtQHRoJFxcZGlzcGxheXN0eWxlIzEkfX1cblxuZGVmaW5lTWFjcm8oXCJcXFxcYm94ZWRcIiwgXCJcXFxcZmJveHskXFxcXGRpc3BsYXlzdHlsZXsjMX0kfVwiKTsgLy8gXFxkZWZcXGlmZntcXERPVFNCXFw7XFxMb25nbGVmdHJpZ2h0YXJyb3dcXDt9XG4vLyBcXGRlZlxcaW1wbGllc3tcXERPVFNCXFw7XFxMb25ncmlnaHRhcnJvd1xcO31cbi8vIFxcZGVmXFxpbXBsaWVkYnl7XFxET1RTQlxcO1xcTG9uZ2xlZnRhcnJvd1xcO31cblxuZGVmaW5lTWFjcm8oXCJcXFxcaWZmXCIsIFwiXFxcXERPVFNCXFxcXDtcXFxcTG9uZ2xlZnRyaWdodGFycm93XFxcXDtcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxpbXBsaWVzXCIsIFwiXFxcXERPVFNCXFxcXDtcXFxcTG9uZ3JpZ2h0YXJyb3dcXFxcO1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGltcGxpZWRieVwiLCBcIlxcXFxET1RTQlxcXFw7XFxcXExvbmdsZWZ0YXJyb3dcXFxcO1wiKTsgLy8gQU1TTWF0aCdzIGF1dG9tYXRpYyBcXGRvdHMsIGJhc2VkIG9uIFxcbWRvdHNAQCBtYWNyby5cblxudmFyIGRvdHNCeVRva2VuID0ge1xuICAnLCc6ICdcXFxcZG90c2MnLFxuICAnXFxcXG5vdCc6ICdcXFxcZG90c2InLFxuICAvLyBcXGtleWJpbkAgY2hlY2tzIGZvciB0aGUgZm9sbG93aW5nOlxuICAnKyc6ICdcXFxcZG90c2InLFxuICAnPSc6ICdcXFxcZG90c2InLFxuICAnPCc6ICdcXFxcZG90c2InLFxuICAnPic6ICdcXFxcZG90c2InLFxuICAnLSc6ICdcXFxcZG90c2InLFxuICAnKic6ICdcXFxcZG90c2InLFxuICAnOic6ICdcXFxcZG90c2InLFxuICAvLyBTeW1ib2xzIHdob3NlIGRlZmluaXRpb24gc3RhcnRzIHdpdGggXFxET1RTQjpcbiAgJ1xcXFxET1RTQic6ICdcXFxcZG90c2InLFxuICAnXFxcXGNvcHJvZCc6ICdcXFxcZG90c2InLFxuICAnXFxcXGJpZ3ZlZSc6ICdcXFxcZG90c2InLFxuICAnXFxcXGJpZ3dlZGdlJzogJ1xcXFxkb3RzYicsXG4gICdcXFxcYmlndXBsdXMnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxiaWdjYXAnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxiaWdjdXAnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxwcm9kJzogJ1xcXFxkb3RzYicsXG4gICdcXFxcc3VtJzogJ1xcXFxkb3RzYicsXG4gICdcXFxcYmlnb3RpbWVzJzogJ1xcXFxkb3RzYicsXG4gICdcXFxcYmlnb3BsdXMnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxiaWdvZG90JzogJ1xcXFxkb3RzYicsXG4gICdcXFxcYmlnc3FjdXAnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxBbmQnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxsb25ncmlnaHRhcnJvdyc6ICdcXFxcZG90c2InLFxuICAnXFxcXExvbmdyaWdodGFycm93JzogJ1xcXFxkb3RzYicsXG4gICdcXFxcbG9uZ2xlZnRhcnJvdyc6ICdcXFxcZG90c2InLFxuICAnXFxcXExvbmdsZWZ0YXJyb3cnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxsb25nbGVmdHJpZ2h0YXJyb3cnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxMb25nbGVmdHJpZ2h0YXJyb3cnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxtYXBzdG8nOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxsb25nbWFwc3RvJzogJ1xcXFxkb3RzYicsXG4gICdcXFxcaG9va3JpZ2h0YXJyb3cnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFxkb3RlcSc6ICdcXFxcZG90c2InLFxuICAvLyBTeW1ib2xzIHdob3NlIGRlZmluaXRpb24gc3RhcnRzIHdpdGggXFxtYXRoYmluOlxuICAnXFxcXG1hdGhiaW4nOiAnXFxcXGRvdHNiJyxcbiAgLy8gU3ltYm9scyB3aG9zZSBkZWZpbml0aW9uIHN0YXJ0cyB3aXRoIFxcbWF0aHJlbDpcbiAgJ1xcXFxtYXRocmVsJzogJ1xcXFxkb3RzYicsXG4gICdcXFxccmVsYmFyJzogJ1xcXFxkb3RzYicsXG4gICdcXFxcUmVsYmFyJzogJ1xcXFxkb3RzYicsXG4gICdcXFxceHJpZ2h0YXJyb3cnOiAnXFxcXGRvdHNiJyxcbiAgJ1xcXFx4bGVmdGFycm93JzogJ1xcXFxkb3RzYicsXG4gIC8vIFN5bWJvbHMgd2hvc2UgZGVmaW5pdGlvbiBzdGFydHMgd2l0aCBcXERPVFNJOlxuICAnXFxcXERPVFNJJzogJ1xcXFxkb3RzaScsXG4gICdcXFxcaW50JzogJ1xcXFxkb3RzaScsXG4gICdcXFxcb2ludCc6ICdcXFxcZG90c2knLFxuICAnXFxcXGlpbnQnOiAnXFxcXGRvdHNpJyxcbiAgJ1xcXFxpaWludCc6ICdcXFxcZG90c2knLFxuICAnXFxcXGlpaWludCc6ICdcXFxcZG90c2knLFxuICAnXFxcXGlkb3RzaW50JzogJ1xcXFxkb3RzaScsXG4gIC8vIFN5bWJvbHMgd2hvc2UgZGVmaW5pdGlvbiBzdGFydHMgd2l0aCBcXERPVFNYOlxuICAnXFxcXERPVFNYJzogJ1xcXFxkb3RzeCdcbn07XG5kZWZpbmVNYWNybyhcIlxcXFxkb3RzXCIsIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIC8vIFRPRE86IElmIHVzZWQgaW4gdGV4dCBtb2RlLCBzaG91bGQgZXhwYW5kIHRvIFxcdGV4dGVsbGlwc2lzLlxuICAvLyBIb3dldmVyLCBpbiBLYVRlWCwgXFx0ZXh0ZWxsaXBzaXMgYW5kIFxcbGRvdHMgYmVoYXZlIHRoZSBzYW1lXG4gIC8vIChpbiB0ZXh0IG1vZGUpLCBhbmQgaXQncyB1bmxpa2VseSB3ZSdkIHNlZSBhbnkgb2YgdGhlIG1hdGggY29tbWFuZHNcbiAgLy8gdGhhdCBhZmZlY3QgdGhlIGJlaGF2aW9yIG9mIFxcZG90cyB3aGVuIGluIHRleHQgbW9kZS4gIFNvIGZpbmUgZm9yIG5vd1xuICAvLyAodW50aWwgd2Ugc3VwcG9ydCBcXGlmbW1vZGUgLi4uIFxcZWxzZSAuLi4gXFxmaSkuXG4gIHZhciB0aGVkb3RzID0gJ1xcXFxkb3Rzbyc7XG4gIHZhciBuZXh0ID0gY29udGV4dC5leHBhbmRBZnRlckZ1dHVyZSgpLnRleHQ7XG5cbiAgaWYgKG5leHQgaW4gZG90c0J5VG9rZW4pIHtcbiAgICB0aGVkb3RzID0gZG90c0J5VG9rZW5bbmV4dF07XG4gIH0gZWxzZSBpZiAobmV4dC5zbGljZSgwLCA0KSA9PT0gJ1xcXFxub3QnKSB7XG4gICAgdGhlZG90cyA9ICdcXFxcZG90c2InO1xuICB9IGVsc2UgaWYgKG5leHQgaW4gc3ltYm9scy5tYXRoKSB7XG4gICAgaWYgKHV0aWxzLmNvbnRhaW5zKFsnYmluJywgJ3JlbCddLCBzeW1ib2xzLm1hdGhbbmV4dF0uZ3JvdXApKSB7XG4gICAgICB0aGVkb3RzID0gJ1xcXFxkb3RzYic7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoZWRvdHM7XG59KTtcbnZhciBzcGFjZUFmdGVyRG90cyA9IHtcbiAgLy8gXFxyaWdodGRlbGltQCBjaGVja3MgZm9yIHRoZSBmb2xsb3dpbmc6XG4gICcpJzogdHJ1ZSxcbiAgJ10nOiB0cnVlLFxuICAnXFxcXHJicmFjayc6IHRydWUsXG4gICdcXFxcfSc6IHRydWUsXG4gICdcXFxccmJyYWNlJzogdHJ1ZSxcbiAgJ1xcXFxyYW5nbGUnOiB0cnVlLFxuICAnXFxcXHJjZWlsJzogdHJ1ZSxcbiAgJ1xcXFxyZmxvb3InOiB0cnVlLFxuICAnXFxcXHJncm91cCc6IHRydWUsXG4gICdcXFxccm1vdXN0YWNoZSc6IHRydWUsXG4gICdcXFxccmlnaHQnOiB0cnVlLFxuICAnXFxcXGJpZ3InOiB0cnVlLFxuICAnXFxcXGJpZ2dyJzogdHJ1ZSxcbiAgJ1xcXFxCaWdyJzogdHJ1ZSxcbiAgJ1xcXFxCaWdncic6IHRydWUsXG4gIC8vIFxcZXh0cmFAIGFsc28gdGVzdHMgZm9yIHRoZSBmb2xsb3dpbmc6XG4gICckJzogdHJ1ZSxcbiAgLy8gXFxleHRyYXBAIGNoZWNrcyBmb3IgdGhlIGZvbGxvd2luZzpcbiAgJzsnOiB0cnVlLFxuICAnLic6IHRydWUsXG4gICcsJzogdHJ1ZVxufTtcbmRlZmluZU1hY3JvKFwiXFxcXGRvdHNvXCIsIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIHZhciBuZXh0ID0gY29udGV4dC5mdXR1cmUoKS50ZXh0O1xuXG4gIGlmIChuZXh0IGluIHNwYWNlQWZ0ZXJEb3RzKSB7XG4gICAgcmV0dXJuIFwiXFxcXGxkb3RzXFxcXCxcIjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gXCJcXFxcbGRvdHNcIjtcbiAgfVxufSk7XG5kZWZpbmVNYWNybyhcIlxcXFxkb3RzY1wiLCBmdW5jdGlvbiAoY29udGV4dCkge1xuICB2YXIgbmV4dCA9IGNvbnRleHQuZnV0dXJlKCkudGV4dDsgLy8gXFxkb3RzYyB1c2VzIFxcZXh0cmFAIGJ1dCBub3QgXFxleHRyYXBALCBpbnN0ZWFkIHNwZWNpYWxseSBjaGVja2luZyBmb3JcbiAgLy8gJzsnIGFuZCAnLicsIGJ1dCBkb2Vzbid0IGNoZWNrIGZvciAnLCcuXG5cbiAgaWYgKG5leHQgaW4gc3BhY2VBZnRlckRvdHMgJiYgbmV4dCAhPT0gJywnKSB7XG4gICAgcmV0dXJuIFwiXFxcXGxkb3RzXFxcXCxcIjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gXCJcXFxcbGRvdHNcIjtcbiAgfVxufSk7XG5kZWZpbmVNYWNybyhcIlxcXFxjZG90c1wiLCBmdW5jdGlvbiAoY29udGV4dCkge1xuICB2YXIgbmV4dCA9IGNvbnRleHQuZnV0dXJlKCkudGV4dDtcblxuICBpZiAobmV4dCBpbiBzcGFjZUFmdGVyRG90cykge1xuICAgIHJldHVybiBcIlxcXFxAY2RvdHNcXFxcLFwiO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBcIlxcXFxAY2RvdHNcIjtcbiAgfVxufSk7XG5kZWZpbmVNYWNybyhcIlxcXFxkb3RzYlwiLCBcIlxcXFxjZG90c1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGRvdHNtXCIsIFwiXFxcXGNkb3RzXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZG90c2lcIiwgXCJcXFxcIVxcXFxjZG90c1wiKTsgLy8gYW1zbWF0aCBkb2Vzbid0IGFjdHVhbGx5IGRlZmluZSBcXGRvdHN4LCBidXQgXFxkb3RzIGZvbGxvd2VkIGJ5IGEgbWFjcm9cbi8vIHN0YXJ0aW5nIHdpdGggXFxET1RTWCBpbXBsaWVzIFxcZG90c28sIGFuZCB0aGVuIFxcZXh0cmFAIGRldGVjdHMgdGhpcyBjYXNlXG4vLyBhbmQgZm9yY2VzIHRoZSBhZGRlZCBgXFwsYC5cblxuZGVmaW5lTWFjcm8oXCJcXFxcZG90c3hcIiwgXCJcXFxcbGRvdHNcXFxcLFwiKTsgLy8gXFxsZXRcXERPVFNJXFxyZWxheFxuLy8gXFxsZXRcXERPVFNCXFxyZWxheFxuLy8gXFxsZXRcXERPVFNYXFxyZWxheFxuXG5kZWZpbmVNYWNybyhcIlxcXFxET1RTSVwiLCBcIlxcXFxyZWxheFwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXERPVFNCXCIsIFwiXFxcXHJlbGF4XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcRE9UU1hcIiwgXCJcXFxccmVsYXhcIik7IC8vIFNwYWNpbmcsIGJhc2VkIG9uIGFtc21hdGguc3R5J3Mgb3ZlcnJpZGUgb2YgTGFUZVggZGVmYXVsdHNcbi8vIFxcRGVjbGFyZVJvYnVzdENvbW1hbmR7XFx0bXNwYWNlfVszXXslXG4vLyAgIFxcaWZtbW9kZVxcbXNraXAjMSMyXFxlbHNlXFxrZXJuIzEjM1xcZmlcXHJlbGF4fVxuXG5kZWZpbmVNYWNybyhcIlxcXFx0bXNwYWNlXCIsIFwiXFxcXFRleHRPck1hdGh7XFxcXGtlcm4jMSMzfXtcXFxcbXNraXAjMSMyfVxcXFxyZWxheFwiKTsgLy8gXFxyZW5ld2NvbW1hbmR7XFwsfXtcXHRtc3BhY2UrXFx0aGlubXVza2lwey4xNjY3ZW19fVxuLy8gVE9ETzogbWF0aCBtb2RlIHNob3VsZCB1c2UgXFx0aGlubXVza2lwXG5cbmRlZmluZU1hY3JvKFwiXFxcXCxcIiwgXCJcXFxcdG1zcGFjZSt7M211fXsuMTY2N2VtfVwiKTsgLy8gXFxsZXRcXHRoaW5zcGFjZVxcLFxuXG5kZWZpbmVNYWNybyhcIlxcXFx0aGluc3BhY2VcIiwgXCJcXFxcLFwiKTsgLy8gXFxkZWZcXD57XFxtc2tpcFxcbWVkbXVza2lwfVxuLy8gXFxyZW5ld2NvbW1hbmR7XFw6fXtcXHRtc3BhY2UrXFxtZWRtdXNraXB7LjIyMjJlbX19XG4vLyBUT0RPOiBcXD4gYW5kIG1hdGggbW9kZSBvZiBcXDogc2hvdWxkIHVzZSBcXG1lZG11c2tpcCA9IDRtdSBwbHVzIDJtdSBtaW51cyA0bXVcblxuZGVmaW5lTWFjcm8oXCJcXFxcPlwiLCBcIlxcXFxtc2tpcHs0bXV9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcOlwiLCBcIlxcXFx0bXNwYWNlK3s0bXV9ey4yMjIyZW19XCIpOyAvLyBcXGxldFxcbWVkc3BhY2VcXDpcblxuZGVmaW5lTWFjcm8oXCJcXFxcbWVkc3BhY2VcIiwgXCJcXFxcOlwiKTsgLy8gXFxyZW5ld2NvbW1hbmR7XFw7fXtcXHRtc3BhY2UrXFx0aGlja211c2tpcHsuMjc3N2VtfX1cbi8vIFRPRE86IG1hdGggbW9kZSBzaG91bGQgdXNlIFxcdGhpY2ttdXNraXAgPSA1bXUgcGx1cyA1bXVcblxuZGVmaW5lTWFjcm8oXCJcXFxcO1wiLCBcIlxcXFx0bXNwYWNlK3s1bXV9ey4yNzc3ZW19XCIpOyAvLyBcXGxldFxcdGhpY2tzcGFjZVxcO1xuXG5kZWZpbmVNYWNybyhcIlxcXFx0aGlja3NwYWNlXCIsIFwiXFxcXDtcIik7IC8vIFxccmVuZXdjb21tYW5ke1xcIX17XFx0bXNwYWNlLVxcdGhpbm11c2tpcHsuMTY2N2VtfX1cbi8vIFRPRE86IG1hdGggbW9kZSBzaG91bGQgdXNlIFxcdGhpbm11c2tpcFxuXG5kZWZpbmVNYWNybyhcIlxcXFwhXCIsIFwiXFxcXHRtc3BhY2UtezNtdX17LjE2NjdlbX1cIik7IC8vIFxcbGV0XFxuZWd0aGluc3BhY2VcXCFcblxuZGVmaW5lTWFjcm8oXCJcXFxcbmVndGhpbnNwYWNlXCIsIFwiXFxcXCFcIik7IC8vIFxcbmV3Y29tbWFuZHtcXG5lZ21lZHNwYWNlfXtcXHRtc3BhY2UtXFxtZWRtdXNraXB7LjIyMjJlbX19XG4vLyBUT0RPOiBtYXRoIG1vZGUgc2hvdWxkIHVzZSBcXG1lZG11c2tpcFxuXG5kZWZpbmVNYWNybyhcIlxcXFxuZWdtZWRzcGFjZVwiLCBcIlxcXFx0bXNwYWNlLXs0bXV9ey4yMjIyZW19XCIpOyAvLyBcXG5ld2NvbW1hbmR7XFxuZWd0aGlja3NwYWNlfXtcXHRtc3BhY2UtXFx0aGlja211c2tpcHsuMjc3N2VtfX1cbi8vIFRPRE86IG1hdGggbW9kZSBzaG91bGQgdXNlIFxcdGhpY2ttdXNraXBcblxuZGVmaW5lTWFjcm8oXCJcXFxcbmVndGhpY2tzcGFjZVwiLCBcIlxcXFx0bXNwYWNlLXs1bXV9ey4yNzdlbX1cIik7IC8vIFxcZGVmXFxlbnNwYWNle1xca2Vybi41ZW0gfVxuXG5kZWZpbmVNYWNybyhcIlxcXFxlbnNwYWNlXCIsIFwiXFxcXGtlcm4uNWVtIFwiKTsgLy8gXFxkZWZcXGVuc2tpcHtcXGhza2lwLjVlbVxccmVsYXh9XG5cbmRlZmluZU1hY3JvKFwiXFxcXGVuc2tpcFwiLCBcIlxcXFxoc2tpcC41ZW1cXFxccmVsYXhcIik7IC8vIFxcZGVmXFxxdWFke1xcaHNraXAxZW1cXHJlbGF4fVxuXG5kZWZpbmVNYWNybyhcIlxcXFxxdWFkXCIsIFwiXFxcXGhza2lwMWVtXFxcXHJlbGF4XCIpOyAvLyBcXGRlZlxccXF1YWR7XFxoc2tpcDJlbVxccmVsYXh9XG5cbmRlZmluZU1hY3JvKFwiXFxcXHFxdWFkXCIsIFwiXFxcXGhza2lwMmVtXFxcXHJlbGF4XCIpOyAvLyBcXHRhZ0BpbkBkaXNwbGF5IGZvcm0gb2YgXFx0YWdcblxuZGVmaW5lTWFjcm8oXCJcXFxcdGFnXCIsIFwiXFxcXEBpZnN0YXJcXFxcdGFnQGxpdGVyYWxcXFxcdGFnQHBhcmVuXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdGFnQHBhcmVuXCIsIFwiXFxcXHRhZ0BsaXRlcmFseyh7IzF9KX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx0YWdAbGl0ZXJhbFwiLCBjb250ZXh0ID0+IHtcbiAgaWYgKGNvbnRleHQubWFjcm9zLmdldChcIlxcXFxkZkB0YWdcIikpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIk11bHRpcGxlIFxcXFx0YWdcIik7XG4gIH1cblxuICByZXR1cm4gXCJcXFxcZ2RlZlxcXFxkZkB0YWd7XFxcXHRleHR7IzF9fVwiO1xufSk7IC8vIFxccmVuZXdjb21tYW5ke1xcYm1vZH17XFxub25zY3JpcHRcXG1za2lwLVxcbWVkbXVza2lwXFxta2VybjVtdVxcbWF0aGJpblxuLy8gICB7XFxvcGVyYXRvckBmb250IG1vZH1cXHBlbmFsdHk5MDBcbi8vICAgXFxta2VybjVtdVxcbm9uc2NyaXB0XFxtc2tpcC1cXG1lZG11c2tpcH1cbi8vIFxcbmV3Y29tbWFuZHtcXHBvZH1bMV17XFxhbGxvd2JyZWFrXG4vLyAgIFxcaWZAZGlzcGxheVxcbWtlcm4xOG11XFxlbHNlXFxta2VybjhtdVxcZmkoIzEpfVxuLy8gXFxyZW5ld2NvbW1hbmR7XFxwbW9kfVsxXXtcXHBvZHt7XFxvcGVyYXRvckBmb250IG1vZH1cXG1rZXJuNm11IzF9fVxuLy8gXFxuZXdjb21tYW5ke1xcbW9kfVsxXXtcXGFsbG93YnJlYWtcXGlmQGRpc3BsYXlcXG1rZXJuMThtdVxuLy8gICBcXGVsc2VcXG1rZXJuMTJtdVxcZml7XFxvcGVyYXRvckBmb250IG1vZH1cXCxcXCwjMX1cbi8vIFRPRE86IG1hdGggbW9kZSBzaG91bGQgdXNlIFxcbWVkbXVza2lwID0gNG11IHBsdXMgMm11IG1pbnVzIDRtdVxuXG5kZWZpbmVNYWNybyhcIlxcXFxibW9kXCIsIFwiXFxcXG1hdGhjaG9pY2V7XFxcXG1za2lwMW11fXtcXFxcbXNraXAxbXV9e1xcXFxtc2tpcDVtdX17XFxcXG1za2lwNW11fVwiICsgXCJcXFxcbWF0aGJpbntcXFxccm0gbW9kfVwiICsgXCJcXFxcbWF0aGNob2ljZXtcXFxcbXNraXAxbXV9e1xcXFxtc2tpcDFtdX17XFxcXG1za2lwNW11fXtcXFxcbXNraXA1bXV9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccG9kXCIsIFwiXFxcXGFsbG93YnJlYWtcIiArIFwiXFxcXG1hdGhjaG9pY2V7XFxcXG1rZXJuMThtdX17XFxcXG1rZXJuOG11fXtcXFxcbWtlcm44bXV9e1xcXFxta2VybjhtdX0oIzEpXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccG1vZFwiLCBcIlxcXFxwb2R7e1xcXFxybSBtb2R9XFxcXG1rZXJuNm11IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbW9kXCIsIFwiXFxcXGFsbG93YnJlYWtcIiArIFwiXFxcXG1hdGhjaG9pY2V7XFxcXG1rZXJuMThtdX17XFxcXG1rZXJuMTJtdX17XFxcXG1rZXJuMTJtdX17XFxcXG1rZXJuMTJtdX1cIiArIFwie1xcXFxybSBtb2R9XFxcXCxcXFxcLCMxXCIpOyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBMYVRlWCBzb3VyY2UyZVxuLy8gXFxleHBhbmRhZnRlclxcbGV0XFxleHBhbmRhZnRlclxcQG5vcm1hbGNyXG4vLyAgICAgXFxjc25hbWVcXGV4cGFuZGFmdGVyXFxAZ29iYmxlXFxzdHJpbmdcXFxcIFxcZW5kY3NuYW1lXG4vLyBcXERlY2xhcmVSb2J1c3RDb21tYW5kXFxuZXdsaW5le1xcQG5vcm1hbGNyXFxyZWxheH1cblxuZGVmaW5lTWFjcm8oXCJcXFxcbmV3bGluZVwiLCBcIlxcXFxcXFxcXFxcXHJlbGF4XCIpOyAvLyBcXGRlZlxcVGVYe1RcXGtlcm4tLjE2NjdlbVxcbG93ZXIuNWV4XFxoYm94e0V9XFxrZXJuLS4xMjVlbVhcXEB9XG4vLyBUT0RPOiBEb2Vzbid0IG5vcm1hbGx5IHdvcmsgaW4gbWF0aCBtb2RlIGJlY2F1c2UgXFxAIGZhaWxzLiAgS2FUZVggZG9lc24ndFxuLy8gc3VwcG9ydCBcXEAgeWV0LCBzbyB0aGF0J3Mgb21pdHRlZCwgYW5kIHdlIGFkZCBcXHRleHQgc28gdGhhdCB0aGUgcmVzdWx0XG4vLyBkb2Vzbid0IGxvb2sgZnVubnkgaW4gbWF0aCBtb2RlLlxuXG5kZWZpbmVNYWNybyhcIlxcXFxUZVhcIiwgXCJcXFxcdGV4dHJte1xcXFxodG1sQG1hdGhtbHtcIiArIFwiVFxcXFxrZXJuLS4xNjY3ZW1cXFxccmFpc2Vib3h7LS41ZXh9e0V9XFxcXGtlcm4tLjEyNWVtWFwiICsgXCJ9e1RlWH19XCIpOyAvLyBcXERlY2xhcmVSb2J1c3RDb21tYW5ke1xcTGFUZVh9e0xcXGtlcm4tLjM2ZW0lXG4vLyAgICAgICAgIHtcXHNib3hcXHpAIFQlXG4vLyAgICAgICAgICBcXHZib3ggdG9cXGh0XFx6QHtcXGhib3h7XFxjaGVja0BtYXRoZm9udHNcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcZm9udHNpemVcXHNmQHNpemVcXHpAXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG1hdGhAZm9udHNmYWxzZVxcc2VsZWN0Zm9udFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQX0lXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICBcXHZzc30lXG4vLyAgICAgICAgIH0lXG4vLyAgICAgICAgIFxca2Vybi0uMTVlbSVcbi8vICAgICAgICAgXFxUZVh9XG4vLyBUaGlzIGNvZGUgYWxpZ25zIHRoZSB0b3Agb2YgdGhlIEEgd2l0aCB0aGUgVCAoZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgVGVYJ3Ncbi8vIGJveGVzLCB0aG91Z2ggdmlzdWFsbHkgdGhlIEEgYXBwZWFycyB0byBleHRlbmQgYWJvdmUgc2xpZ2h0bHkpLlxuLy8gV2UgY29tcHV0ZSB0aGUgY29ycmVzcG9uZGluZyBcXHJhaXNlYm94IHdoZW4gQSBpcyByZW5kZXJlZCBpbiBcXG5vcm1hbHNpemVcbi8vIFxcc2NyaXB0c3R5bGUsIHdoaWNoIGhhcyBhIHNjYWxlIGZhY3RvciBvZiAwLjcgKHNlZSBPcHRpb25zLmpzKS5cblxudmFyIGxhdGV4UmFpc2VBID0gbWFrZUVtKGZvbnRNZXRyaWNzRGF0YVsnTWFpbi1SZWd1bGFyJ11bXCJUXCIuY2hhckNvZGVBdCgwKV1bMV0gLSAwLjcgKiBmb250TWV0cmljc0RhdGFbJ01haW4tUmVndWxhciddW1wiQVwiLmNoYXJDb2RlQXQoMCldWzFdKTtcbmRlZmluZU1hY3JvKFwiXFxcXExhVGVYXCIsIFwiXFxcXHRleHRybXtcXFxcaHRtbEBtYXRobWx7XCIgKyAoXCJMXFxcXGtlcm4tLjM2ZW1cXFxccmFpc2Vib3h7XCIgKyBsYXRleFJhaXNlQSArIFwifXtcXFxcc2NyaXB0c3R5bGUgQX1cIikgKyBcIlxcXFxrZXJuLS4xNWVtXFxcXFRlWH17TGFUZVh9fVwiKTsgLy8gTmV3IEthVGVYIGxvZ28gYmFzZWQgb24gdHdlYWtpbmcgTGFUZVggbG9nb1xuXG5kZWZpbmVNYWNybyhcIlxcXFxLYVRlWFwiLCBcIlxcXFx0ZXh0cm17XFxcXGh0bWxAbWF0aG1se1wiICsgKFwiS1xcXFxrZXJuLS4xN2VtXFxcXHJhaXNlYm94e1wiICsgbGF0ZXhSYWlzZUEgKyBcIn17XFxcXHNjcmlwdHN0eWxlIEF9XCIpICsgXCJcXFxca2Vybi0uMTVlbVxcXFxUZVh9e0thVGVYfX1cIik7IC8vIFxcRGVjbGFyZVJvYnVzdENvbW1hbmRcXGhzcGFjZXtcXEBpZnN0YXJcXEBoc3BhY2VyXFxAaHNwYWNlfVxuLy8gXFxkZWZcXEBoc3BhY2UjMXtcXGhza2lwICAjMVxccmVsYXh9XG4vLyBcXGRlZlxcQGhzcGFjZXIjMXtcXHZydWxlIFxcQHdpZHRoXFx6QFxcbm9icmVha1xuLy8gICAgICAgICAgICAgICAgIFxcaHNraXAgIzFcXGhza2lwIFxcekBza2lwfVxuXG5kZWZpbmVNYWNybyhcIlxcXFxoc3BhY2VcIiwgXCJcXFxcQGlmc3RhclxcXFxAaHNwYWNlclxcXFxAaHNwYWNlXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcQGhzcGFjZVwiLCBcIlxcXFxoc2tpcCAjMVxcXFxyZWxheFwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXEBoc3BhY2VyXCIsIFwiXFxcXHJ1bGV7MHB0fXswcHR9XFxcXGhza2lwICMxXFxcXHJlbGF4XCIpOyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBtYXRodG9vbHMuc3R5XG4vL1xccHJvdmlkZWNvbW1hbmRcXG9yZGluYXJ5Y29sb257On1cblxuZGVmaW5lTWFjcm8oXCJcXFxcb3JkaW5hcnljb2xvblwiLCBcIjpcIik7IC8vXFxkZWZcXHZjZW50Y29sb257XFxtYXRocmVse1xcbWF0aG9wXFxvcmRpbmFyeWNvbG9ufX1cbi8vVE9ETyhlZGVtYWluZSk6IE5vdCB5ZXQgY2VudGVyZWQuIEZpeCB2aWEgXFxyYWlzZWJveCBvciAjNzI2XG5cbmRlZmluZU1hY3JvKFwiXFxcXHZjZW50Y29sb25cIiwgXCJcXFxcbWF0aHJlbHtcXFxcbWF0aG9wXFxcXG9yZGluYXJ5Y29sb259XCIpOyAvLyBcXHByb3ZpZGVjb21tYW5kKlxcZGJsY29sb257XFx2Y2VudGNvbG9uXFxtYXRocmVse1xcbWtlcm4tLjltdX1cXHZjZW50Y29sb259XG5cbmRlZmluZU1hY3JvKFwiXFxcXGRibGNvbG9uXCIsIFwiXFxcXGh0bWxAbWF0aG1se1wiICsgXCJcXFxcbWF0aHJlbHtcXFxcdmNlbnRjb2xvblxcXFxtYXRocmVse1xcXFxta2Vybi0uOW11fVxcXFx2Y2VudGNvbG9ufX1cIiArIFwie1xcXFxtYXRob3B7XFxcXGNoYXJcXFwiMjIzN319XCIpOyAvLyBcXHByb3ZpZGVjb21tYW5kKlxcY29sb25lcXF7XFx2Y2VudGNvbG9uXFxtYXRocmVse1xcbWtlcm4tMS4ybXV9PX1cblxuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25lcXFcIiwgXCJcXFxcaHRtbEBtYXRobWx7XCIgKyBcIlxcXFxtYXRocmVse1xcXFx2Y2VudGNvbG9uXFxcXG1hdGhyZWx7XFxcXG1rZXJuLTEuMm11fT19fVwiICsgXCJ7XFxcXG1hdGhvcHtcXFxcY2hhclxcXCIyMjU0fX1cIik7IC8vIOKJlFxuLy8gXFxwcm92aWRlY29tbWFuZCpcXENvbG9uZXFxe1xcZGJsY29sb25cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX09fVxuXG5kZWZpbmVNYWNybyhcIlxcXFxDb2xvbmVxcVwiLCBcIlxcXFxodG1sQG1hdGhtbHtcIiArIFwiXFxcXG1hdGhyZWx7XFxcXGRibGNvbG9uXFxcXG1hdGhyZWx7XFxcXG1rZXJuLTEuMm11fT19fVwiICsgXCJ7XFxcXG1hdGhvcHtcXFxcY2hhclxcXCIyMjM3XFxcXGNoYXJcXFwiM2R9fVwiKTsgLy8gXFxwcm92aWRlY29tbWFuZCpcXGNvbG9uZXF7XFx2Y2VudGNvbG9uXFxtYXRocmVse1xcbWtlcm4tMS4ybXV9XFxtYXRocmVsey19fVxuXG5kZWZpbmVNYWNybyhcIlxcXFxjb2xvbmVxXCIsIFwiXFxcXGh0bWxAbWF0aG1se1wiICsgXCJcXFxcbWF0aHJlbHtcXFxcdmNlbnRjb2xvblxcXFxtYXRocmVse1xcXFxta2Vybi0xLjJtdX1cXFxcbWF0aHJlbHstfX19XCIgKyBcIntcXFxcbWF0aG9we1xcXFxjaGFyXFxcIjNhXFxcXGNoYXJcXFwiMjIxMn19XCIpOyAvLyBcXHByb3ZpZGVjb21tYW5kKlxcQ29sb25lcXtcXGRibGNvbG9uXFxtYXRocmVse1xcbWtlcm4tMS4ybXV9XFxtYXRocmVsey19fVxuXG5kZWZpbmVNYWNybyhcIlxcXFxDb2xvbmVxXCIsIFwiXFxcXGh0bWxAbWF0aG1se1wiICsgXCJcXFxcbWF0aHJlbHtcXFxcZGJsY29sb25cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXG1hdGhyZWx7LX19fVwiICsgXCJ7XFxcXG1hdGhvcHtcXFxcY2hhclxcXCIyMjM3XFxcXGNoYXJcXFwiMjIxMn19XCIpOyAvLyBcXHByb3ZpZGVjb21tYW5kKlxcZXFxY29sb257PVxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcdmNlbnRjb2xvbn1cblxuZGVmaW5lTWFjcm8oXCJcXFxcZXFxY29sb25cIiwgXCJcXFxcaHRtbEBtYXRobWx7XCIgKyBcIlxcXFxtYXRocmVsez1cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXHZjZW50Y29sb259fVwiICsgXCJ7XFxcXG1hdGhvcHtcXFxcY2hhclxcXCIyMjU1fX1cIik7IC8vIOKJlVxuLy8gXFxwcm92aWRlY29tbWFuZCpcXEVxcWNvbG9uez1cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX1cXGRibGNvbG9ufVxuXG5kZWZpbmVNYWNybyhcIlxcXFxFcXFjb2xvblwiLCBcIlxcXFxodG1sQG1hdGhtbHtcIiArIFwiXFxcXG1hdGhyZWx7PVxcXFxtYXRocmVse1xcXFxta2Vybi0xLjJtdX1cXFxcZGJsY29sb259fVwiICsgXCJ7XFxcXG1hdGhvcHtcXFxcY2hhclxcXCIzZFxcXFxjaGFyXFxcIjIyMzd9fVwiKTsgLy8gXFxwcm92aWRlY29tbWFuZCpcXGVxY29sb257XFxtYXRocmVsey19XFxtYXRocmVse1xcbWtlcm4tMS4ybXV9XFx2Y2VudGNvbG9ufVxuXG5kZWZpbmVNYWNybyhcIlxcXFxlcWNvbG9uXCIsIFwiXFxcXGh0bWxAbWF0aG1se1wiICsgXCJcXFxcbWF0aHJlbHtcXFxcbWF0aHJlbHstfVxcXFxtYXRocmVse1xcXFxta2Vybi0xLjJtdX1cXFxcdmNlbnRjb2xvbn19XCIgKyBcIntcXFxcbWF0aG9we1xcXFxjaGFyXFxcIjIyMzl9fVwiKTsgLy8gXFxwcm92aWRlY29tbWFuZCpcXEVxY29sb257XFxtYXRocmVsey19XFxtYXRocmVse1xcbWtlcm4tMS4ybXV9XFxkYmxjb2xvbn1cblxuZGVmaW5lTWFjcm8oXCJcXFxcRXFjb2xvblwiLCBcIlxcXFxodG1sQG1hdGhtbHtcIiArIFwiXFxcXG1hdGhyZWx7XFxcXG1hdGhyZWx7LX1cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXGRibGNvbG9ufX1cIiArIFwie1xcXFxtYXRob3B7XFxcXGNoYXJcXFwiMjIxMlxcXFxjaGFyXFxcIjIyMzd9fVwiKTsgLy8gXFxwcm92aWRlY29tbWFuZCpcXGNvbG9uYXBwcm94e1xcdmNlbnRjb2xvblxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcYXBwcm94fVxuXG5kZWZpbmVNYWNybyhcIlxcXFxjb2xvbmFwcHJveFwiLCBcIlxcXFxodG1sQG1hdGhtbHtcIiArIFwiXFxcXG1hdGhyZWx7XFxcXHZjZW50Y29sb25cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXGFwcHJveH19XCIgKyBcIntcXFxcbWF0aG9we1xcXFxjaGFyXFxcIjNhXFxcXGNoYXJcXFwiMjI0OH19XCIpOyAvLyBcXHByb3ZpZGVjb21tYW5kKlxcQ29sb25hcHByb3h7XFxkYmxjb2xvblxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcYXBwcm94fVxuXG5kZWZpbmVNYWNybyhcIlxcXFxDb2xvbmFwcHJveFwiLCBcIlxcXFxodG1sQG1hdGhtbHtcIiArIFwiXFxcXG1hdGhyZWx7XFxcXGRibGNvbG9uXFxcXG1hdGhyZWx7XFxcXG1rZXJuLTEuMm11fVxcXFxhcHByb3h9fVwiICsgXCJ7XFxcXG1hdGhvcHtcXFxcY2hhclxcXCIyMjM3XFxcXGNoYXJcXFwiMjI0OH19XCIpOyAvLyBcXHByb3ZpZGVjb21tYW5kKlxcY29sb25zaW17XFx2Y2VudGNvbG9uXFxtYXRocmVse1xcbWtlcm4tMS4ybXV9XFxzaW19XG5cbmRlZmluZU1hY3JvKFwiXFxcXGNvbG9uc2ltXCIsIFwiXFxcXGh0bWxAbWF0aG1se1wiICsgXCJcXFxcbWF0aHJlbHtcXFxcdmNlbnRjb2xvblxcXFxtYXRocmVse1xcXFxta2Vybi0xLjJtdX1cXFxcc2ltfX1cIiArIFwie1xcXFxtYXRob3B7XFxcXGNoYXJcXFwiM2FcXFxcY2hhclxcXCIyMjNjfX1cIik7IC8vIFxccHJvdmlkZWNvbW1hbmQqXFxDb2xvbnNpbXtcXGRibGNvbG9uXFxtYXRocmVse1xcbWtlcm4tMS4ybXV9XFxzaW19XG5cbmRlZmluZU1hY3JvKFwiXFxcXENvbG9uc2ltXCIsIFwiXFxcXGh0bWxAbWF0aG1se1wiICsgXCJcXFxcbWF0aHJlbHtcXFxcZGJsY29sb25cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXHNpbX19XCIgKyBcIntcXFxcbWF0aG9we1xcXFxjaGFyXFxcIjIyMzdcXFxcY2hhclxcXCIyMjNjfX1cIik7IC8vIFNvbWUgVW5pY29kZSBjaGFyYWN0ZXJzIGFyZSBpbXBsZW1lbnRlZCB3aXRoIG1hY3JvcyB0byBtYXRodG9vbHMgZnVuY3Rpb25zLlxuXG5kZWZpbmVNYWNybyhcIlxcdTIyMzdcIiwgXCJcXFxcZGJsY29sb25cIik7IC8vIDo6XG5cbmRlZmluZU1hY3JvKFwiXFx1MjIzOVwiLCBcIlxcXFxlcWNvbG9uXCIpOyAvLyAtOlxuXG5kZWZpbmVNYWNybyhcIlxcdTIyNTRcIiwgXCJcXFxcY29sb25lcXFcIik7IC8vIDo9XG5cbmRlZmluZU1hY3JvKFwiXFx1MjI1NVwiLCBcIlxcXFxlcXFjb2xvblwiKTsgLy8gPTpcblxuZGVmaW5lTWFjcm8oXCJcXHUyQTc0XCIsIFwiXFxcXENvbG9uZXFxXCIpOyAvLyA6Oj1cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGNvbG9uZXF1YWxzLnN0eVxuLy8gQWx0ZXJuYXRlIG5hbWVzIGZvciBtYXRodG9vbHMncyBtYWNyb3M6XG5cbmRlZmluZU1hY3JvKFwiXFxcXHJhdGlvXCIsIFwiXFxcXHZjZW50Y29sb25cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxjb2xvbmNvbG9uXCIsIFwiXFxcXGRibGNvbG9uXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25lcXVhbHNcIiwgXCJcXFxcY29sb25lcXFcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxjb2xvbmNvbG9uZXF1YWxzXCIsIFwiXFxcXENvbG9uZXFxXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZXF1YWxzY29sb25cIiwgXCJcXFxcZXFxY29sb25cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxlcXVhbHNjb2xvbmNvbG9uXCIsIFwiXFxcXEVxcWNvbG9uXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25taW51c1wiLCBcIlxcXFxjb2xvbmVxXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25jb2xvbm1pbnVzXCIsIFwiXFxcXENvbG9uZXFcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxtaW51c2NvbG9uXCIsIFwiXFxcXGVxY29sb25cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxtaW51c2NvbG9uY29sb25cIiwgXCJcXFxcRXFjb2xvblwiKTsgLy8gXFxjb2xvbmFwcHJveCBuYW1lIGlzIHNhbWUgaW4gbWF0aHRvb2xzIGFuZCBjb2xvbmVxdWFscy5cblxuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25jb2xvbmFwcHJveFwiLCBcIlxcXFxDb2xvbmFwcHJveFwiKTsgLy8gXFxjb2xvbnNpbSBuYW1lIGlzIHNhbWUgaW4gbWF0aHRvb2xzIGFuZCBjb2xvbmVxdWFscy5cblxuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25jb2xvbnNpbVwiLCBcIlxcXFxDb2xvbnNpbVwiKTsgLy8gQWRkaXRpb25hbCBtYWNyb3MsIGltcGxlbWVudGVkIGJ5IGFuYWxvZ3kgd2l0aCBtYXRodG9vbHMgZGVmaW5pdGlvbnM6XG5cbmRlZmluZU1hY3JvKFwiXFxcXHNpbWNvbG9uXCIsIFwiXFxcXG1hdGhyZWx7XFxcXHNpbVxcXFxtYXRocmVse1xcXFxta2Vybi0xLjJtdX1cXFxcdmNlbnRjb2xvbn1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxzaW1jb2xvbmNvbG9uXCIsIFwiXFxcXG1hdGhyZWx7XFxcXHNpbVxcXFxtYXRocmVse1xcXFxta2Vybi0xLjJtdX1cXFxcZGJsY29sb259XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcYXBwcm94Y29sb25cIiwgXCJcXFxcbWF0aHJlbHtcXFxcYXBwcm94XFxcXG1hdGhyZWx7XFxcXG1rZXJuLTEuMm11fVxcXFx2Y2VudGNvbG9ufVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGFwcHJveGNvbG9uY29sb25cIiwgXCJcXFxcbWF0aHJlbHtcXFxcYXBwcm94XFxcXG1hdGhyZWx7XFxcXG1rZXJuLTEuMm11fVxcXFxkYmxjb2xvbn1cIik7IC8vIFByZXNlbnQgaW4gbmV3dHhtYXRoLCBweGZvbnRzIGFuZCB0eGZvbnRzXG5cbmRlZmluZU1hY3JvKFwiXFxcXG5vdG5pXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxub3RcXFxcbml9e1xcXFxtYXRocmVse1xcXFxjaGFyYFxcdTIyMEN9fVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGxpbXN1cFwiLCBcIlxcXFxET1RTQlxcXFxvcGVyYXRvcm5hbWUqe2xpbVxcXFwsc3VwfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGxpbWluZlwiLCBcIlxcXFxET1RTQlxcXFxvcGVyYXRvcm5hbWUqe2xpbVxcXFwsaW5mfVwiKTsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRnJvbSBhbXNvcG4uc3R5XG5cbmRlZmluZU1hY3JvKFwiXFxcXGluamxpbVwiLCBcIlxcXFxET1RTQlxcXFxvcGVyYXRvcm5hbWUqe2lualxcXFwsbGltfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHByb2psaW1cIiwgXCJcXFxcRE9UU0JcXFxcb3BlcmF0b3JuYW1lKntwcm9qXFxcXCxsaW19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdmFybGltc3VwXCIsIFwiXFxcXERPVFNCXFxcXG9wZXJhdG9ybmFtZSp7XFxcXG92ZXJsaW5le2xpbX19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdmFybGltaW5mXCIsIFwiXFxcXERPVFNCXFxcXG9wZXJhdG9ybmFtZSp7XFxcXHVuZGVybGluZXtsaW19fVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHZhcmluamxpbVwiLCBcIlxcXFxET1RTQlxcXFxvcGVyYXRvcm5hbWUqe1xcXFx1bmRlcnJpZ2h0YXJyb3d7bGltfX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx2YXJwcm9qbGltXCIsIFwiXFxcXERPVFNCXFxcXG9wZXJhdG9ybmFtZSp7XFxcXHVuZGVybGVmdGFycm93e2xpbX19XCIpOyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBNYXRoTUwgYWx0ZXJuYXRlcyBmb3IgS2FUZVggZ2x5cGhzIGluIHRoZSBVbmljb2RlIHByaXZhdGUgYXJlYVxuXG5kZWZpbmVNYWNybyhcIlxcXFxndmVydG5lcXFcIiwgXCJcXFxcaHRtbEBtYXRobWx7XFxcXEBndmVydG5lcXF9e1xcdTIyNjl9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbHZlcnRuZXFxXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxAbHZlcnRuZXFxfXtcXHUyMjY4fVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXG5nZXFxXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxAbmdlcXF9e1xcdTIyNzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbmdlcXNsYW50XCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxAbmdlcXNsYW50fXtcXHUyMjcxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXG5sZXFxXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxAbmxlcXF9e1xcdTIyNzB9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbmxlcXNsYW50XCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxAbmxlcXNsYW50fXtcXHUyMjcwfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXG5zaG9ydG1pZFwiLCBcIlxcXFxodG1sQG1hdGhtbHtcXFxcQG5zaG9ydG1pZH174oikfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXG5zaG9ydHBhcmFsbGVsXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxAbnNob3J0cGFyYWxsZWx9e+KIpn1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxuc3Vic2V0ZXFxXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxAbnN1YnNldGVxcX17XFx1MjI4OH1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxuc3Vwc2V0ZXFxXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxAbnN1cHNldGVxcX17XFx1MjI4OX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx2YXJzdWJzZXRuZXFcIiwgXCJcXFxcaHRtbEBtYXRobWx7XFxcXEB2YXJzdWJzZXRuZXF9e+KKin1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx2YXJzdWJzZXRuZXFxXCIsIFwiXFxcXGh0bWxAbWF0aG1se1xcXFxAdmFyc3Vic2V0bmVxcX174quLfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHZhcnN1cHNldG5lcVwiLCBcIlxcXFxodG1sQG1hdGhtbHtcXFxcQHZhcnN1cHNldG5lcX174oqLfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHZhcnN1cHNldG5lcXFcIiwgXCJcXFxcaHRtbEBtYXRobWx7XFxcXEB2YXJzdXBzZXRuZXFxfXviq4x9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcaW1hdGhcIiwgXCJcXFxcaHRtbEBtYXRobWx7XFxcXEBpbWF0aH17XFx1MDEzMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxqbWF0aFwiLCBcIlxcXFxodG1sQG1hdGhtbHtcXFxcQGptYXRofXtcXHUwMjM3fVwiKTsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc3RtYXJ5cmQgYW5kIHNlbWFudGljXG4vLyBUaGUgc3RtYXJ5cmQgYW5kIHNlbWFudGljIHBhY2thZ2VzIHJlbmRlciB0aGUgbmV4dCBmb3VyIGl0ZW1zIGJ5IGNhbGxpbmcgYVxuLy8gZ2x5cGguIFRob3NlIGdseXBocyBkbyBub3QgZXhpc3QgaW4gdGhlIEthVGVYIGZvbnRzLiBIZW5jZSB0aGUgbWFjcm9zLlxuXG5kZWZpbmVNYWNybyhcIlxcXFxsbGJyYWNrZXRcIiwgXCJcXFxcaHRtbEBtYXRobWx7XCIgKyBcIlxcXFxtYXRob3BlbntbXFxcXG1rZXJuLTMuMm11W319XCIgKyBcIntcXFxcbWF0aG9wZW57XFxcXGNoYXJgXFx1MjdlNn19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccnJicmFja2V0XCIsIFwiXFxcXGh0bWxAbWF0aG1se1wiICsgXCJcXFxcbWF0aGNsb3Nle11cXFxcbWtlcm4tMy4ybXVdfX1cIiArIFwie1xcXFxtYXRoY2xvc2V7XFxcXGNoYXJgXFx1MjdlN319XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyN2U2XCIsIFwiXFxcXGxsYnJhY2tldFwiKTsgLy8gYmxhY2tib2FyZCBib2xkIFtcblxuZGVmaW5lTWFjcm8oXCJcXHUyN2U3XCIsIFwiXFxcXHJyYnJhY2tldFwiKTsgLy8gYmxhY2tib2FyZCBib2xkIF1cblxuZGVmaW5lTWFjcm8oXCJcXFxcbEJyYWNlXCIsIFwiXFxcXGh0bWxAbWF0aG1se1wiICsgXCJcXFxcbWF0aG9wZW57XFxcXHtcXFxcbWtlcm4tMy4ybXVbfX1cIiArIFwie1xcXFxtYXRob3BlbntcXFxcY2hhcmBcXHUyOTgzfX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxyQnJhY2VcIiwgXCJcXFxcaHRtbEBtYXRobWx7XCIgKyBcIlxcXFxtYXRoY2xvc2V7XVxcXFxta2Vybi0zLjJtdVxcXFx9fX1cIiArIFwie1xcXFxtYXRoY2xvc2V7XFxcXGNoYXJgXFx1Mjk4NH19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyOTgzXCIsIFwiXFxcXGxCcmFjZVwiKTsgLy8gYmxhY2tib2FyZCBib2xkIHtcblxuZGVmaW5lTWFjcm8oXCJcXHUyOTg0XCIsIFwiXFxcXHJCcmFjZVwiKTsgLy8gYmxhY2tib2FyZCBib2xkIH1cbi8vIFRPRE86IENyZWF0ZSB2YXJpYWJsZSBzaXplZCB2ZXJzaW9ucyBvZiB0aGUgbGFzdCB0d28gaXRlbXMuIEkgYmVsaWV2ZSB0aGF0XG4vLyB3aWxsIHJlcXVpcmUgbmV3IGZvbnQgZ2x5cGhzLlxuLy8gVGhlIHN0bWFyeXJkIGZ1bmN0aW9uIGBcXG1pbnVzb2AgcHJvdmlkZXMgYSBcIlBsaW1zb2xsXCIgc3ltYm9sIHRoYXRcbi8vIHN1cGVyaW1wb3NlcyB0aGUgY2hhcmFjdGVycyBcXGNpcmMgYW5kIFxcbWF0aG1pbnVzLiBVc2VkIGluIGNoZW1pc3RyeS5cblxuZGVmaW5lTWFjcm8oXCJcXFxcbWludXNvXCIsIFwiXFxcXG1hdGhiaW57XFxcXGh0bWxAbWF0aG1se1wiICsgXCJ7XFxcXG1hdGhybGFwe1xcXFxtYXRoY2hvaWNle1xcXFxrZXJuezAuMTQ1ZW19fXtcXFxca2VybnswLjE0NWVtfX1cIiArIFwie1xcXFxrZXJuezAuMTAxNWVtfX17XFxcXGtlcm57MC4wNzI1ZW19fVxcXFxjaXJjfXstfX19XCIgKyBcIntcXFxcY2hhcmDiprV9fVwiKTtcbmRlZmluZU1hY3JvKFwi4qa1XCIsIFwiXFxcXG1pbnVzb1wiKTsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gdGV4dmMuc3R5XG4vLyBUaGUgdGV4dmMgcGFja2FnZSBjb250YWlucyBtYWNyb3MgYXZhaWxhYmxlIGluIG1lZGlhd2lraSBwYWdlcy5cbi8vIFdlIG9taXQgdGhlIGZ1bmN0aW9ucyBkZXByZWNhdGVkIGF0XG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IZWxwOkRpc3BsYXlpbmdfYV9mb3JtdWxhI0RlcHJlY2F0ZWRfc3ludGF4XG4vLyBXZSBhbHNvIG9taXQgdGV4dmMncyBcXE8sIHdoaWNoIGNvbmZsaWN0cyB3aXRoIFxcdGV4dHtcXE99XG5cbmRlZmluZU1hY3JvKFwiXFxcXGRhcnJcIiwgXCJcXFxcZG93bmFycm93XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZEFyclwiLCBcIlxcXFxEb3duYXJyb3dcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxEYXJyXCIsIFwiXFxcXERvd25hcnJvd1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGxhbmdcIiwgXCJcXFxcbGFuZ2xlXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccmFuZ1wiLCBcIlxcXFxyYW5nbGVcIik7XG5kZWZpbmVNYWNybyhcIlxcXFx1YXJyXCIsIFwiXFxcXHVwYXJyb3dcIik7XG5kZWZpbmVNYWNybyhcIlxcXFx1QXJyXCIsIFwiXFxcXFVwYXJyb3dcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxVYXJyXCIsIFwiXFxcXFVwYXJyb3dcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxOXCIsIFwiXFxcXG1hdGhiYntOfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXFJcIiwgXCJcXFxcbWF0aGJie1J9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcWlwiLCBcIlxcXFxtYXRoYmJ7Wn1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxhbGVmXCIsIFwiXFxcXGFsZXBoXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcYWxlZnN5bVwiLCBcIlxcXFxhbGVwaFwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXEFscGhhXCIsIFwiXFxcXG1hdGhybXtBfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXEJldGFcIiwgXCJcXFxcbWF0aHJte0J9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcYnVsbFwiLCBcIlxcXFxidWxsZXRcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxDaGlcIiwgXCJcXFxcbWF0aHJte1h9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcY2x1YnNcIiwgXCJcXFxcY2x1YnN1aXRcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxjbnVtc1wiLCBcIlxcXFxtYXRoYmJ7Q31cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxDb21wbGV4XCIsIFwiXFxcXG1hdGhiYntDfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXERhZ2dlclwiLCBcIlxcXFxkZGFnZ2VyXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZGlhbW9uZHNcIiwgXCJcXFxcZGlhbW9uZHN1aXRcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxlbXB0eVwiLCBcIlxcXFxlbXB0eXNldFwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXEVwc2lsb25cIiwgXCJcXFxcbWF0aHJte0V9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcRXRhXCIsIFwiXFxcXG1hdGhybXtIfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGV4aXN0XCIsIFwiXFxcXGV4aXN0c1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGhhcnJcIiwgXCJcXFxcbGVmdHJpZ2h0YXJyb3dcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxoQXJyXCIsIFwiXFxcXExlZnRyaWdodGFycm93XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcSGFyclwiLCBcIlxcXFxMZWZ0cmlnaHRhcnJvd1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGhlYXJ0c1wiLCBcIlxcXFxoZWFydHN1aXRcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxpbWFnZVwiLCBcIlxcXFxJbVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGluZmluXCIsIFwiXFxcXGluZnR5XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcSW90YVwiLCBcIlxcXFxtYXRocm17SX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxpc2luXCIsIFwiXFxcXGluXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcS2FwcGFcIiwgXCJcXFxcbWF0aHJte0t9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbGFyclwiLCBcIlxcXFxsZWZ0YXJyb3dcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxsQXJyXCIsIFwiXFxcXExlZnRhcnJvd1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXExhcnJcIiwgXCJcXFxcTGVmdGFycm93XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbHJhcnJcIiwgXCJcXFxcbGVmdHJpZ2h0YXJyb3dcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxsckFyclwiLCBcIlxcXFxMZWZ0cmlnaHRhcnJvd1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXExyYXJyXCIsIFwiXFxcXExlZnRyaWdodGFycm93XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcTXVcIiwgXCJcXFxcbWF0aHJte019XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbmF0bnVtc1wiLCBcIlxcXFxtYXRoYmJ7Tn1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxOdVwiLCBcIlxcXFxtYXRocm17Tn1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxPbWljcm9uXCIsIFwiXFxcXG1hdGhybXtPfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHBsdXNtblwiLCBcIlxcXFxwbVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHJhcnJcIiwgXCJcXFxccmlnaHRhcnJvd1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHJBcnJcIiwgXCJcXFxcUmlnaHRhcnJvd1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXFJhcnJcIiwgXCJcXFxcUmlnaHRhcnJvd1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHJlYWxcIiwgXCJcXFxcUmVcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxyZWFsc1wiLCBcIlxcXFxtYXRoYmJ7Un1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxSZWFsc1wiLCBcIlxcXFxtYXRoYmJ7Un1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxSaG9cIiwgXCJcXFxcbWF0aHJte1B9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcc2RvdFwiLCBcIlxcXFxjZG90XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcc2VjdFwiLCBcIlxcXFxTXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcc3BhZGVzXCIsIFwiXFxcXHNwYWRlc3VpdFwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHN1YlwiLCBcIlxcXFxzdWJzZXRcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxzdWJlXCIsIFwiXFxcXHN1YnNldGVxXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcc3VwZVwiLCBcIlxcXFxzdXBzZXRlcVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXFRhdVwiLCBcIlxcXFxtYXRocm17VH1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx0aGV0YXN5bVwiLCBcIlxcXFx2YXJ0aGV0YVwiKTsgLy8gVE9ETzogZGVmaW5lTWFjcm8oXCJcXFxcdmFyY29wcGFcIiwgXCJcXFxcXFxtYm94e1xcXFxjb3BwYX1cIik7XG5cbmRlZmluZU1hY3JvKFwiXFxcXHdlaWVycFwiLCBcIlxcXFx3cFwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXFpldGFcIiwgXCJcXFxcbWF0aHJte1p9XCIpOyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzdGF0bWF0aC5zdHlcbi8vIGh0dHBzOi8vY3Rhbi5tYXRoLmlsbGlub2lzLmVkdS9tYWNyb3MvbGF0ZXgvY29udHJpYi9zdGF0bWF0aC9zdGF0bWF0aC5wZGZcblxuZGVmaW5lTWFjcm8oXCJcXFxcYXJnbWluXCIsIFwiXFxcXERPVFNCXFxcXG9wZXJhdG9ybmFtZSp7YXJnXFxcXCxtaW59XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcYXJnbWF4XCIsIFwiXFxcXERPVFNCXFxcXG9wZXJhdG9ybmFtZSp7YXJnXFxcXCxtYXh9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccGxpbVwiLCBcIlxcXFxET1RTQlxcXFxtYXRob3B7XFxcXG9wZXJhdG9ybmFtZXtwbGltfX1cXFxcbGltaXRzXCIpOyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBicmFrZXQuc3R5XG4vLyBodHRwOi8vY3Rhbi5tYXRoLndhc2hpbmd0b24uZWR1L3RleC1hcmNoaXZlL21hY3Jvcy9sYXRleC9jb250cmliL2JyYWtldC9icmFrZXQucGRmXG5cbmRlZmluZU1hY3JvKFwiXFxcXGJyYVwiLCBcIlxcXFxtYXRoaW5uZXJ7XFxcXGxhbmdsZXsjMX18fVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGtldFwiLCBcIlxcXFxtYXRoaW5uZXJ7fHsjMX1cXFxccmFuZ2xlfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGJyYWtldFwiLCBcIlxcXFxtYXRoaW5uZXJ7XFxcXGxhbmdsZXsjMX1cXFxccmFuZ2xlfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXEJyYVwiLCBcIlxcXFxsZWZ0XFxcXGxhbmdsZSMxXFxcXHJpZ2h0fFwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXEtldFwiLCBcIlxcXFxsZWZ0fCMxXFxcXHJpZ2h0XFxcXHJhbmdsZVwiKTtcblxudmFyIGJyYWtldEhlbHBlciA9IG9uZSA9PiBjb250ZXh0ID0+IHtcbiAgdmFyIGxlZnQgPSBjb250ZXh0LmNvbnN1bWVBcmcoKS50b2tlbnM7XG4gIHZhciBtaWRkbGUgPSBjb250ZXh0LmNvbnN1bWVBcmcoKS50b2tlbnM7XG4gIHZhciBtaWRkbGVEb3VibGUgPSBjb250ZXh0LmNvbnN1bWVBcmcoKS50b2tlbnM7XG4gIHZhciByaWdodCA9IGNvbnRleHQuY29uc3VtZUFyZygpLnRva2VucztcbiAgdmFyIG9sZE1pZGRsZSA9IGNvbnRleHQubWFjcm9zLmdldChcInxcIik7XG4gIHZhciBvbGRNaWRkbGVEb3VibGUgPSBjb250ZXh0Lm1hY3Jvcy5nZXQoXCJcXFxcfFwiKTtcbiAgY29udGV4dC5tYWNyb3MuYmVnaW5Hcm91cCgpO1xuXG4gIHZhciBtaWRNYWNybyA9IGRvdWJsZSA9PiBjb250ZXh0ID0+IHtcbiAgICBpZiAob25lKSB7XG4gICAgICAvLyBPbmx5IG1vZGlmeSB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgfCBvciBcXHxcbiAgICAgIGNvbnRleHQubWFjcm9zLnNldChcInxcIiwgb2xkTWlkZGxlKTtcblxuICAgICAgaWYgKG1pZGRsZURvdWJsZS5sZW5ndGgpIHtcbiAgICAgICAgY29udGV4dC5tYWNyb3Muc2V0KFwiXFxcXHxcIiwgb2xkTWlkZGxlRG91YmxlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZG91YmxlZCA9IGRvdWJsZTtcblxuICAgIGlmICghZG91YmxlICYmIG1pZGRsZURvdWJsZS5sZW5ndGgpIHtcbiAgICAgIC8vIE1pbWljIFxcQGlmbmV4dGNoYXJcbiAgICAgIHZhciBuZXh0VG9rZW4gPSBjb250ZXh0LmZ1dHVyZSgpO1xuXG4gICAgICBpZiAobmV4dFRva2VuLnRleHQgPT09IFwifFwiKSB7XG4gICAgICAgIGNvbnRleHQucG9wVG9rZW4oKTtcbiAgICAgICAgZG91YmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuczogZG91YmxlZCA/IG1pZGRsZURvdWJsZSA6IG1pZGRsZSxcbiAgICAgIG51bUFyZ3M6IDBcbiAgICB9O1xuICB9O1xuXG4gIGNvbnRleHQubWFjcm9zLnNldChcInxcIiwgbWlkTWFjcm8oZmFsc2UpKTtcblxuICBpZiAobWlkZGxlRG91YmxlLmxlbmd0aCkge1xuICAgIGNvbnRleHQubWFjcm9zLnNldChcIlxcXFx8XCIsIG1pZE1hY3JvKHRydWUpKTtcbiAgfVxuXG4gIHZhciBhcmcgPSBjb250ZXh0LmNvbnN1bWVBcmcoKS50b2tlbnM7XG4gIHZhciBleHBhbmRlZCA9IGNvbnRleHQuZXhwYW5kVG9rZW5zKFsuLi5yaWdodCwgLi4uYXJnLCAuLi5sZWZ0IC8vIHJldmVyc2VkXG4gIF0pO1xuICBjb250ZXh0Lm1hY3Jvcy5lbmRHcm91cCgpO1xuICByZXR1cm4ge1xuICAgIHRva2VuczogZXhwYW5kZWQucmV2ZXJzZSgpLFxuICAgIG51bUFyZ3M6IDBcbiAgfTtcbn07XG5cbmRlZmluZU1hY3JvKFwiXFxcXGJyYUBrZXRcIiwgYnJha2V0SGVscGVyKGZhbHNlKSk7XG5kZWZpbmVNYWNybyhcIlxcXFxicmFAc2V0XCIsIGJyYWtldEhlbHBlcih0cnVlKSk7XG5kZWZpbmVNYWNybyhcIlxcXFxCcmFrZXRcIiwgXCJcXFxcYnJhQGtldHtcXFxcbGVmdFxcXFxsYW5nbGV9XCIgKyBcIntcXFxcLFxcXFxtaWRkbGVcXFxcdmVydFxcXFwsfXtcXFxcLFxcXFxtaWRkbGVcXFxcdmVydFxcXFwsfXtcXFxccmlnaHRcXFxccmFuZ2xlfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXFNldFwiLCBcIlxcXFxicmFAc2V0e1xcXFxsZWZ0XFxcXHtcXFxcOn1cIiArIFwie1xcXFw7XFxcXG1pZGRsZVxcXFx2ZXJ0XFxcXDt9e1xcXFw7XFxcXG1pZGRsZVxcXFxWZXJ0XFxcXDt9e1xcXFw6XFxcXHJpZ2h0XFxcXH19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcc2V0XCIsIFwiXFxcXGJyYUBzZXR7XFxcXHtcXFxcLH17XFxcXG1pZH17fXtcXFxcLFxcXFx9fVwiKTsgLy8gaGFzIG5vIHN1cHBvcnQgZm9yIHNwZWNpYWwgfHwgb3IgXFx8XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhY3R1YXJpYWxhbmdsZS5kdHhcblxuZGVmaW5lTWFjcm8oXCJcXFxcYW5nbG5cIiwgXCJ7XFxcXGFuZ2wgbn1cIik7IC8vIEN1c3RvbSBLaGFuIEFjYWRlbXkgY29sb3JzLCBzaG91bGQgYmUgbW92ZWQgdG8gYW4gb3B0aW9uYWwgcGFja2FnZVxuXG5kZWZpbmVNYWNybyhcIlxcXFxibHVlXCIsIFwiXFxcXHRleHRjb2xvcnsjIzY0OTVlZH17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcb3JhbmdlXCIsIFwiXFxcXHRleHRjb2xvcnsjI2ZmYTUwMH17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccGlua1wiLCBcIlxcXFx0ZXh0Y29sb3J7IyNmZjAwYWZ9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHJlZFwiLCBcIlxcXFx0ZXh0Y29sb3J7IyNkZjAwMzB9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGdyZWVuXCIsIFwiXFxcXHRleHRjb2xvcnsjIzI4YWU3Yn17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZ3JheVwiLCBcIlxcXFx0ZXh0Y29sb3J7Z3JheX17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccHVycGxlXCIsIFwiXFxcXHRleHRjb2xvcnsjIzlkMzhiZH17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcYmx1ZUFcIiwgXCJcXFxcdGV4dGNvbG9yeyMjY2NmYWZmfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxibHVlQlwiLCBcIlxcXFx0ZXh0Y29sb3J7IyM4MGY2ZmZ9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGJsdWVDXCIsIFwiXFxcXHRleHRjb2xvcnsjIzYzZDllYX17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcYmx1ZURcIiwgXCJcXFxcdGV4dGNvbG9yeyMjMTFhY2NkfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxibHVlRVwiLCBcIlxcXFx0ZXh0Y29sb3J7IyMwYzdmOTl9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHRlYWxBXCIsIFwiXFxcXHRleHRjb2xvcnsjIzk0ZmZmNX17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdGVhbEJcIiwgXCJcXFxcdGV4dGNvbG9yeyMjMjZlZGQ1fXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx0ZWFsQ1wiLCBcIlxcXFx0ZXh0Y29sb3J7IyMwMWQxYzF9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHRlYWxEXCIsIFwiXFxcXHRleHRjb2xvcnsjIzAxYTk5NX17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdGVhbEVcIiwgXCJcXFxcdGV4dGNvbG9yeyMjMjA4MTcwfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxncmVlbkFcIiwgXCJcXFxcdGV4dGNvbG9yeyMjYjZmZmIwfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxncmVlbkJcIiwgXCJcXFxcdGV4dGNvbG9yeyMjOGFmMjgxfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxncmVlbkNcIiwgXCJcXFxcdGV4dGNvbG9yeyMjNzRjZjcwfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxncmVlbkRcIiwgXCJcXFxcdGV4dGNvbG9yeyMjMWZhYjU0fXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxncmVlbkVcIiwgXCJcXFxcdGV4dGNvbG9yeyMjMGQ5MjNmfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxnb2xkQVwiLCBcIlxcXFx0ZXh0Y29sb3J7IyNmZmQwYTl9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGdvbGRCXCIsIFwiXFxcXHRleHRjb2xvcnsjI2ZmYmI3MX17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZ29sZENcIiwgXCJcXFxcdGV4dGNvbG9yeyMjZmY5YzM5fXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxnb2xkRFwiLCBcIlxcXFx0ZXh0Y29sb3J7IyNlMDdkMTB9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGdvbGRFXCIsIFwiXFxcXHRleHRjb2xvcnsjI2E3NWEwNX17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccmVkQVwiLCBcIlxcXFx0ZXh0Y29sb3J7IyNmY2E5YTl9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHJlZEJcIiwgXCJcXFxcdGV4dGNvbG9yeyMjZmY4NDgyfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxyZWRDXCIsIFwiXFxcXHRleHRjb2xvcnsjI2Y5Njg1ZH17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccmVkRFwiLCBcIlxcXFx0ZXh0Y29sb3J7IyNlODRkMzl9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHJlZEVcIiwgXCJcXFxcdGV4dGNvbG9yeyMjYmMyNjEyfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxtYXJvb25BXCIsIFwiXFxcXHRleHRjb2xvcnsjI2ZmYmRlMH17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbWFyb29uQlwiLCBcIlxcXFx0ZXh0Y29sb3J7IyNmZjkyYzZ9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXG1hcm9vbkNcIiwgXCJcXFxcdGV4dGNvbG9yeyMjZWQ1ZmE2fXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxtYXJvb25EXCIsIFwiXFxcXHRleHRjb2xvcnsjI2NhMzM3Y317IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbWFyb29uRVwiLCBcIlxcXFx0ZXh0Y29sb3J7IyM5ZTAzNGV9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHB1cnBsZUFcIiwgXCJcXFxcdGV4dGNvbG9yeyMjZGRkN2ZmfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxwdXJwbGVCXCIsIFwiXFxcXHRleHRjb2xvcnsjI2M2YjlmY317IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccHVycGxlQ1wiLCBcIlxcXFx0ZXh0Y29sb3J7IyNhYTg3ZmZ9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHB1cnBsZURcIiwgXCJcXFxcdGV4dGNvbG9yeyMjNzg1NGFifXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxwdXJwbGVFXCIsIFwiXFxcXHRleHRjb2xvcnsjIzU0M2I3OH17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbWludEFcIiwgXCJcXFxcdGV4dGNvbG9yeyMjZjVmOWU4fXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxtaW50QlwiLCBcIlxcXFx0ZXh0Y29sb3J7IyNlZGYyZGZ9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXG1pbnRDXCIsIFwiXFxcXHRleHRjb2xvcnsjI2UwZTVjY317IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZ3JheUFcIiwgXCJcXFxcdGV4dGNvbG9yeyMjZjZmN2Y3fXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxncmF5QlwiLCBcIlxcXFx0ZXh0Y29sb3J7IyNmMGYxZjJ9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGdyYXlDXCIsIFwiXFxcXHRleHRjb2xvcnsjI2UzZTVlNn17IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZ3JheURcIiwgXCJcXFxcdGV4dGNvbG9yeyMjZDZkOGRhfXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxncmF5RVwiLCBcIlxcXFx0ZXh0Y29sb3J7IyNiYWJlYzJ9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGdyYXlGXCIsIFwiXFxcXHRleHRjb2xvcnsjIzg4OGQ5M317IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZ3JheUdcIiwgXCJcXFxcdGV4dGNvbG9yeyMjNjI2NTY5fXsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxncmF5SFwiLCBcIlxcXFx0ZXh0Y29sb3J7IyMzYjNlNDB9eyMxfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGdyYXlJXCIsIFwiXFxcXHRleHRjb2xvcnsjIzIxMjQyY317IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxca2FCbHVlXCIsIFwiXFxcXHRleHRjb2xvcnsjIzMxNDQ1M317IzF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxca2FHcmVlblwiLCBcIlxcXFx0ZXh0Y29sb3J7IyM3MUIzMDd9eyMxfVwiKTtcblxuLyoqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIOKAnGd1bGxldOKAnSB3aGVyZSBtYWNyb3MgYXJlIGV4cGFuZGVkXG4gKiB1bnRpbCBvbmx5IG5vbi1tYWNybyB0b2tlbnMgcmVtYWluLlxuICovXG4vLyBMaXN0IG9mIGNvbW1hbmRzIHRoYXQgYWN0IGxpa2UgbWFjcm9zIGJ1dCBhcmVuJ3QgZGVmaW5lZCBhcyBhIG1hY3JvLFxuLy8gZnVuY3Rpb24sIG9yIHN5bWJvbC4gIFVzZWQgaW4gYGlzRGVmaW5lZGAuXG52YXIgaW1wbGljaXRDb21tYW5kcyA9IHtcbiAgXCJeXCI6IHRydWUsXG4gIC8vIFBhcnNlci5qc1xuICBcIl9cIjogdHJ1ZSxcbiAgLy8gUGFyc2VyLmpzXG4gIFwiXFxcXGxpbWl0c1wiOiB0cnVlLFxuICAvLyBQYXJzZXIuanNcbiAgXCJcXFxcbm9saW1pdHNcIjogdHJ1ZSAvLyBQYXJzZXIuanNcblxufTtcbmNsYXNzIE1hY3JvRXhwYW5kZXIge1xuICBjb25zdHJ1Y3RvcihpbnB1dCwgc2V0dGluZ3MsIG1vZGUpIHtcbiAgICB0aGlzLnNldHRpbmdzID0gdm9pZCAwO1xuICAgIHRoaXMuZXhwYW5zaW9uQ291bnQgPSB2b2lkIDA7XG4gICAgdGhpcy5sZXhlciA9IHZvaWQgMDtcbiAgICB0aGlzLm1hY3JvcyA9IHZvaWQgMDtcbiAgICB0aGlzLnN0YWNrID0gdm9pZCAwO1xuICAgIHRoaXMubW9kZSA9IHZvaWQgMDtcbiAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgdGhpcy5leHBhbnNpb25Db3VudCA9IDA7XG4gICAgdGhpcy5mZWVkKGlucHV0KTsgLy8gTWFrZSBuZXcgZ2xvYmFsIG5hbWVzcGFjZVxuXG4gICAgdGhpcy5tYWNyb3MgPSBuZXcgTmFtZXNwYWNlKG1hY3Jvcywgc2V0dGluZ3MubWFjcm9zKTtcbiAgICB0aGlzLm1vZGUgPSBtb2RlO1xuICAgIHRoaXMuc3RhY2sgPSBbXTsgLy8gY29udGFpbnMgdG9rZW5zIGluIFJFVkVSU0Ugb3JkZXJcbiAgfVxuICAvKipcbiAgICogRmVlZCBhIG5ldyBpbnB1dCBzdHJpbmcgdG8gdGhlIHNhbWUgTWFjcm9FeHBhbmRlclxuICAgKiAod2l0aCBleGlzdGluZyBtYWNyb3MgZXRjLikuXG4gICAqL1xuXG5cbiAgZmVlZChpbnB1dCkge1xuICAgIHRoaXMubGV4ZXIgPSBuZXcgTGV4ZXIoaW5wdXQsIHRoaXMuc2V0dGluZ3MpO1xuICB9XG4gIC8qKlxuICAgKiBTd2l0Y2hlcyBiZXR3ZWVuIFwidGV4dFwiIGFuZCBcIm1hdGhcIiBtb2Rlcy5cbiAgICovXG5cblxuICBzd2l0Y2hNb2RlKG5ld01vZGUpIHtcbiAgICB0aGlzLm1vZGUgPSBuZXdNb2RlO1xuICB9XG4gIC8qKlxuICAgKiBTdGFydCBhIG5ldyBncm91cCBuZXN0aW5nIHdpdGhpbiBhbGwgbmFtZXNwYWNlcy5cbiAgICovXG5cblxuICBiZWdpbkdyb3VwKCkge1xuICAgIHRoaXMubWFjcm9zLmJlZ2luR3JvdXAoKTtcbiAgfVxuICAvKipcbiAgICogRW5kIGN1cnJlbnQgZ3JvdXAgbmVzdGluZyB3aXRoaW4gYWxsIG5hbWVzcGFjZXMuXG4gICAqL1xuXG5cbiAgZW5kR3JvdXAoKSB7XG4gICAgdGhpcy5tYWNyb3MuZW5kR3JvdXAoKTtcbiAgfVxuICAvKipcbiAgICogRW5kcyBhbGwgY3VycmVudGx5IG5lc3RlZCBncm91cHMgKGlmIGFueSksIHJlc3RvcmluZyB2YWx1ZXMgYmVmb3JlIHRoZVxuICAgKiBncm91cHMgYmVnYW4uICBVc2VmdWwgaW4gY2FzZSBvZiBhbiBlcnJvciBpbiB0aGUgbWlkZGxlIG9mIHBhcnNpbmcuXG4gICAqL1xuXG5cbiAgZW5kR3JvdXBzKCkge1xuICAgIHRoaXMubWFjcm9zLmVuZEdyb3VwcygpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB0b3Btb3N0IHRva2VuIG9uIHRoZSBzdGFjaywgd2l0aG91dCBleHBhbmRpbmcgaXQuXG4gICAqIFNpbWlsYXIgaW4gYmVoYXZpb3IgdG8gVGVYJ3MgYFxcZnV0dXJlbGV0YC5cbiAgICovXG5cblxuICBmdXR1cmUoKSB7XG4gICAgaWYgKHRoaXMuc3RhY2subGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnB1c2hUb2tlbih0aGlzLmxleGVyLmxleCgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgYW5kIHJldHVybiB0aGUgbmV4dCB1bmV4cGFuZGVkIHRva2VuLlxuICAgKi9cblxuXG4gIHBvcFRva2VuKCkge1xuICAgIHRoaXMuZnV0dXJlKCk7IC8vIGVuc3VyZSBub24tZW1wdHkgc3RhY2tcblxuICAgIHJldHVybiB0aGlzLnN0YWNrLnBvcCgpO1xuICB9XG4gIC8qKlxuICAgKiBBZGQgYSBnaXZlbiB0b2tlbiB0byB0aGUgdG9rZW4gc3RhY2suICBJbiBwYXJ0aWN1bGFyLCB0aGlzIGdldCBiZSB1c2VkXG4gICAqIHRvIHB1dCBiYWNrIGEgdG9rZW4gcmV0dXJuZWQgZnJvbSBvbmUgb2YgdGhlIG90aGVyIG1ldGhvZHMuXG4gICAqL1xuXG5cbiAgcHVzaFRva2VuKHRva2VuKSB7XG4gICAgdGhpcy5zdGFjay5wdXNoKHRva2VuKTtcbiAgfVxuICAvKipcbiAgICogQXBwZW5kIGFuIGFycmF5IG9mIHRva2VucyB0byB0aGUgdG9rZW4gc3RhY2suXG4gICAqL1xuXG5cbiAgcHVzaFRva2Vucyh0b2tlbnMpIHtcbiAgICB0aGlzLnN0YWNrLnB1c2goLi4udG9rZW5zKTtcbiAgfVxuICAvKipcbiAgICogRmluZCBhbiBtYWNybyBhcmd1bWVudCB3aXRob3V0IGV4cGFuZGluZyB0b2tlbnMgYW5kIGFwcGVuZCB0aGUgYXJyYXkgb2ZcbiAgICogdG9rZW5zIHRvIHRoZSB0b2tlbiBzdGFjay4gVXNlcyBUb2tlbiBhcyBhIGNvbnRhaW5lciBmb3IgdGhlIHJlc3VsdC5cbiAgICovXG5cblxuICBzY2FuQXJndW1lbnQoaXNPcHRpb25hbCkge1xuICAgIHZhciBzdGFydDtcbiAgICB2YXIgZW5kO1xuICAgIHZhciB0b2tlbnM7XG5cbiAgICBpZiAoaXNPcHRpb25hbCkge1xuICAgICAgdGhpcy5jb25zdW1lU3BhY2VzKCk7IC8vIFxcQGlmbmV4dGNoYXIgZ29iYmxlcyBhbnkgc3BhY2UgZm9sbG93aW5nIGl0XG5cbiAgICAgIGlmICh0aGlzLmZ1dHVyZSgpLnRleHQgIT09IFwiW1wiKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBzdGFydCA9IHRoaXMucG9wVG9rZW4oKTsgLy8gZG9uJ3QgaW5jbHVkZSBbIGluIHRva2Vuc1xuXG4gICAgICAoe1xuICAgICAgICB0b2tlbnMsXG4gICAgICAgIGVuZFxuICAgICAgfSA9IHRoaXMuY29uc3VtZUFyZyhbXCJdXCJdKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICh7XG4gICAgICAgIHRva2VucyxcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIGVuZFxuICAgICAgfSA9IHRoaXMuY29uc3VtZUFyZygpKTtcbiAgICB9IC8vIGluZGljYXRlIHRoZSBlbmQgb2YgYW4gYXJndW1lbnRcblxuXG4gICAgdGhpcy5wdXNoVG9rZW4obmV3IFRva2VuKFwiRU9GXCIsIGVuZC5sb2MpKTtcbiAgICB0aGlzLnB1c2hUb2tlbnModG9rZW5zKTtcbiAgICByZXR1cm4gc3RhcnQucmFuZ2UoZW5kLCBcIlwiKTtcbiAgfVxuICAvKipcbiAgICogQ29uc3VtZSBhbGwgZm9sbG93aW5nIHNwYWNlIHRva2Vucywgd2l0aG91dCBleHBhbnNpb24uXG4gICAqL1xuXG5cbiAgY29uc3VtZVNwYWNlcygpIHtcbiAgICBmb3IgKDs7KSB7XG4gICAgICB2YXIgdG9rZW4gPSB0aGlzLmZ1dHVyZSgpO1xuXG4gICAgICBpZiAodG9rZW4udGV4dCA9PT0gXCIgXCIpIHtcbiAgICAgICAgdGhpcy5zdGFjay5wb3AoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogQ29uc3VtZSBhbiBhcmd1bWVudCBmcm9tIHRoZSB0b2tlbiBzdHJlYW0sIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBhcnJheVxuICAgKiBvZiB0b2tlbnMgYW5kIHN0YXJ0L2VuZCB0b2tlbi5cbiAgICovXG5cblxuICBjb25zdW1lQXJnKGRlbGltcykge1xuICAgIC8vIFRoZSBhcmd1bWVudCBmb3IgYSBkZWxpbWl0ZWQgcGFyYW1ldGVyIGlzIHRoZSBzaG9ydGVzdCAocG9zc2libHlcbiAgICAvLyBlbXB0eSkgc2VxdWVuY2Ugb2YgdG9rZW5zIHdpdGggcHJvcGVybHkgbmVzdGVkIHsuLi59IGdyb3VwcyB0aGF0IGlzXG4gICAgLy8gZm9sbG93ZWQgLi4uIGJ5IHRoaXMgcGFydGljdWxhciBsaXN0IG9mIG5vbi1wYXJhbWV0ZXIgdG9rZW5zLlxuICAgIC8vIFRoZSBhcmd1bWVudCBmb3IgYW4gdW5kZWxpbWl0ZWQgcGFyYW1ldGVyIGlzIHRoZSBuZXh0IG5vbmJsYW5rXG4gICAgLy8gdG9rZW4sIHVubGVzcyB0aGF0IHRva2VuIGlzIOKAmHvigJksIHdoZW4gdGhlIGFyZ3VtZW50IHdpbGwgYmUgdGhlXG4gICAgLy8gZW50aXJlIHsuLi59IGdyb3VwIHRoYXQgZm9sbG93cy5cbiAgICB2YXIgdG9rZW5zID0gW107XG4gICAgdmFyIGlzRGVsaW1pdGVkID0gZGVsaW1zICYmIGRlbGltcy5sZW5ndGggPiAwO1xuXG4gICAgaWYgKCFpc0RlbGltaXRlZCkge1xuICAgICAgLy8gSWdub3JlIHNwYWNlcyBiZXR3ZWVuIGFyZ3VtZW50cy4gIEFzIHRoZSBUZVhib29rIHNheXM6XG4gICAgICAvLyBcIkFmdGVyIHlvdSBoYXZlIHNhaWQg4oCYXFxkZWZcXHJvdyMxIzJ7Li4ufeKAmSwgeW91IGFyZSBhbGxvd2VkIHRvXG4gICAgICAvLyAgcHV0IHNwYWNlcyBiZXR3ZWVuIHRoZSBhcmd1bWVudHMgKGUuZy4sIOKAmFxccm93IHggbuKAmSksIGJlY2F1c2VcbiAgICAgIC8vICBUZVggZG9lc27igJl0IHVzZSBzaW5nbGUgc3BhY2VzIGFzIHVuZGVsaW1pdGVkIGFyZ3VtZW50cy5cIlxuICAgICAgdGhpcy5jb25zdW1lU3BhY2VzKCk7XG4gICAgfVxuXG4gICAgdmFyIHN0YXJ0ID0gdGhpcy5mdXR1cmUoKTtcbiAgICB2YXIgdG9rO1xuICAgIHZhciBkZXB0aCA9IDA7XG4gICAgdmFyIG1hdGNoID0gMDtcblxuICAgIGRvIHtcbiAgICAgIHRvayA9IHRoaXMucG9wVG9rZW4oKTtcbiAgICAgIHRva2Vucy5wdXNoKHRvayk7XG5cbiAgICAgIGlmICh0b2sudGV4dCA9PT0gXCJ7XCIpIHtcbiAgICAgICAgKytkZXB0aDtcbiAgICAgIH0gZWxzZSBpZiAodG9rLnRleHQgPT09IFwifVwiKSB7XG4gICAgICAgIC0tZGVwdGg7XG5cbiAgICAgICAgaWYgKGRlcHRoID09PSAtMSkge1xuICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiRXh0cmEgfVwiLCB0b2spO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRvay50ZXh0ID09PSBcIkVPRlwiKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQgaW4gYSBtYWNybyBhcmd1bWVudFwiICsgXCIsIGV4cGVjdGVkICdcIiArIChkZWxpbXMgJiYgaXNEZWxpbWl0ZWQgPyBkZWxpbXNbbWF0Y2hdIDogXCJ9XCIpICsgXCInXCIsIHRvayk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkZWxpbXMgJiYgaXNEZWxpbWl0ZWQpIHtcbiAgICAgICAgaWYgKChkZXB0aCA9PT0gMCB8fCBkZXB0aCA9PT0gMSAmJiBkZWxpbXNbbWF0Y2hdID09PSBcIntcIikgJiYgdG9rLnRleHQgPT09IGRlbGltc1ttYXRjaF0pIHtcbiAgICAgICAgICArK21hdGNoO1xuXG4gICAgICAgICAgaWYgKG1hdGNoID09PSBkZWxpbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBkb24ndCBpbmNsdWRlIGRlbGltcyBpbiB0b2tlbnNcbiAgICAgICAgICAgIHRva2Vucy5zcGxpY2UoLW1hdGNoLCBtYXRjaCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWF0Y2ggPSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAoZGVwdGggIT09IDAgfHwgaXNEZWxpbWl0ZWQpOyAvLyBJZiB0aGUgYXJndW1lbnQgZm91bmQgLi4uIGhhcyB0aGUgZm9ybSDigJh7PG5lc3RlZCB0b2tlbnM+feKAmSxcbiAgICAvLyAuLi4gdGhlIG91dGVybW9zdCBicmFjZXMgZW5jbG9zaW5nIHRoZSBhcmd1bWVudCBhcmUgcmVtb3ZlZFxuXG5cbiAgICBpZiAoc3RhcnQudGV4dCA9PT0gXCJ7XCIgJiYgdG9rZW5zW3Rva2Vucy5sZW5ndGggLSAxXS50ZXh0ID09PSBcIn1cIikge1xuICAgICAgdG9rZW5zLnBvcCgpO1xuICAgICAgdG9rZW5zLnNoaWZ0KCk7XG4gICAgfVxuXG4gICAgdG9rZW5zLnJldmVyc2UoKTsgLy8gdG8gZml0IGluIHdpdGggc3RhY2sgb3JkZXJcblxuICAgIHJldHVybiB7XG4gICAgICB0b2tlbnMsXG4gICAgICBzdGFydCxcbiAgICAgIGVuZDogdG9rXG4gICAgfTtcbiAgfVxuICAvKipcbiAgICogQ29uc3VtZSB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiAoZGVsaW1pdGVkKSBhcmd1bWVudHMgZnJvbSB0aGUgdG9rZW5cbiAgICogc3RyZWFtIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBhcnJheSBvZiBhcmd1bWVudHMuXG4gICAqL1xuXG5cbiAgY29uc3VtZUFyZ3MobnVtQXJncywgZGVsaW1pdGVycykge1xuICAgIGlmIChkZWxpbWl0ZXJzKSB7XG4gICAgICBpZiAoZGVsaW1pdGVycy5sZW5ndGggIT09IG51bUFyZ3MgKyAxKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiVGhlIGxlbmd0aCBvZiBkZWxpbWl0ZXJzIGRvZXNuJ3QgbWF0Y2ggdGhlIG51bWJlciBvZiBhcmdzIVwiKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGRlbGltcyA9IGRlbGltaXRlcnNbMF07XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsaW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciB0b2sgPSB0aGlzLnBvcFRva2VuKCk7XG5cbiAgICAgICAgaWYgKGRlbGltc1tpXSAhPT0gdG9rLnRleHQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIlVzZSBvZiB0aGUgbWFjcm8gZG9lc24ndCBtYXRjaCBpdHMgZGVmaW5pdGlvblwiLCB0b2spO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGFyZ3MgPSBbXTtcblxuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBudW1BcmdzOyBfaSsrKSB7XG4gICAgICBhcmdzLnB1c2godGhpcy5jb25zdW1lQXJnKGRlbGltaXRlcnMgJiYgZGVsaW1pdGVyc1tfaSArIDFdKS50b2tlbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBhcmdzO1xuICB9XG4gIC8qKlxuICAgKiBJbmNyZW1lbnQgYGV4cGFuc2lvbkNvdW50YCBieSB0aGUgc3BlY2lmaWVkIGFtb3VudC5cbiAgICogVGhyb3cgYW4gZXJyb3IgaWYgaXQgZXhjZWVkcyBgbWF4RXhwYW5kYC5cbiAgICovXG5cblxuICBjb3VudEV4cGFuc2lvbihhbW91bnQpIHtcbiAgICB0aGlzLmV4cGFuc2lvbkNvdW50ICs9IGFtb3VudDtcblxuICAgIGlmICh0aGlzLmV4cGFuc2lvbkNvdW50ID4gdGhpcy5zZXR0aW5ncy5tYXhFeHBhbmQpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiVG9vIG1hbnkgZXhwYW5zaW9uczogaW5maW5pdGUgbG9vcCBvciBcIiArIFwibmVlZCB0byBpbmNyZWFzZSBtYXhFeHBhbmQgc2V0dGluZ1wiKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIEV4cGFuZCB0aGUgbmV4dCB0b2tlbiBvbmx5IG9uY2UgaWYgcG9zc2libGUuXG4gICAqXG4gICAqIElmIHRoZSB0b2tlbiBpcyBleHBhbmRlZCwgdGhlIHJlc3VsdGluZyB0b2tlbnMgd2lsbCBiZSBwdXNoZWQgb250b1xuICAgKiB0aGUgc3RhY2sgaW4gcmV2ZXJzZSBvcmRlciwgYW5kIHRoZSBudW1iZXIgb2Ygc3VjaCB0b2tlbnMgd2lsbCBiZVxuICAgKiByZXR1cm5lZC4gIFRoaXMgbnVtYmVyIG1pZ2h0IGJlIHplcm8gb3IgcG9zaXRpdmUuXG4gICAqXG4gICAqIElmIG5vdCwgdGhlIHJldHVybiB2YWx1ZSBpcyBgZmFsc2VgLCBhbmQgdGhlIG5leHQgdG9rZW4gcmVtYWlucyBhdCB0aGVcbiAgICogdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogSW4gZWl0aGVyIGNhc2UsIHRoZSBuZXh0IHRva2VuIHdpbGwgYmUgb24gdGhlIHRvcCBvZiB0aGUgc3RhY2ssXG4gICAqIG9yIHRoZSBzdGFjayB3aWxsIGJlIGVtcHR5IChpbiBjYXNlIG9mIGVtcHR5IGV4cGFuc2lvblxuICAgKiBhbmQgbm8gb3RoZXIgdG9rZW5zKS5cbiAgICpcbiAgICogVXNlZCB0byBpbXBsZW1lbnQgYGV4cGFuZEFmdGVyRnV0dXJlYCBhbmQgYGV4cGFuZE5leHRUb2tlbmAuXG4gICAqXG4gICAqIElmIGV4cGFuZGFibGVPbmx5LCBvbmx5IGV4cGFuZGFibGUgdG9rZW5zIGFyZSBleHBhbmRlZCBhbmRcbiAgICogYW4gdW5kZWZpbmVkIGNvbnRyb2wgc2VxdWVuY2UgcmVzdWx0cyBpbiBhbiBlcnJvci5cbiAgICovXG5cblxuICBleHBhbmRPbmNlKGV4cGFuZGFibGVPbmx5KSB7XG4gICAgdmFyIHRvcFRva2VuID0gdGhpcy5wb3BUb2tlbigpO1xuICAgIHZhciBuYW1lID0gdG9wVG9rZW4udGV4dDtcbiAgICB2YXIgZXhwYW5zaW9uID0gIXRvcFRva2VuLm5vZXhwYW5kID8gdGhpcy5fZ2V0RXhwYW5zaW9uKG5hbWUpIDogbnVsbDtcblxuICAgIGlmIChleHBhbnNpb24gPT0gbnVsbCB8fCBleHBhbmRhYmxlT25seSAmJiBleHBhbnNpb24udW5leHBhbmRhYmxlKSB7XG4gICAgICBpZiAoZXhwYW5kYWJsZU9ubHkgJiYgZXhwYW5zaW9uID09IG51bGwgJiYgbmFtZVswXSA9PT0gXCJcXFxcXCIgJiYgIXRoaXMuaXNEZWZpbmVkKG5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiVW5kZWZpbmVkIGNvbnRyb2wgc2VxdWVuY2U6IFwiICsgbmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHVzaFRva2VuKHRvcFRva2VuKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmNvdW50RXhwYW5zaW9uKDEpO1xuICAgIHZhciB0b2tlbnMgPSBleHBhbnNpb24udG9rZW5zO1xuICAgIHZhciBhcmdzID0gdGhpcy5jb25zdW1lQXJncyhleHBhbnNpb24ubnVtQXJncywgZXhwYW5zaW9uLmRlbGltaXRlcnMpO1xuXG4gICAgaWYgKGV4cGFuc2lvbi5udW1BcmdzKSB7XG4gICAgICAvLyBwYXN0ZSBhcmd1bWVudHMgaW4gcGxhY2Ugb2YgdGhlIHBsYWNlaG9sZGVyc1xuICAgICAgdG9rZW5zID0gdG9rZW5zLnNsaWNlKCk7IC8vIG1ha2UgYSBzaGFsbG93IGNvcHlcblxuICAgICAgZm9yICh2YXIgaSA9IHRva2Vucy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgdG9rID0gdG9rZW5zW2ldO1xuXG4gICAgICAgIGlmICh0b2sudGV4dCA9PT0gXCIjXCIpIHtcbiAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJJbmNvbXBsZXRlIHBsYWNlaG9sZGVyIGF0IGVuZCBvZiBtYWNybyBib2R5XCIsIHRvayk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdG9rID0gdG9rZW5zWy0taV07IC8vIG5leHQgdG9rZW4gb24gc3RhY2tcblxuICAgICAgICAgIGlmICh0b2sudGV4dCA9PT0gXCIjXCIpIHtcbiAgICAgICAgICAgIC8vICMjIOKGkiAjXG4gICAgICAgICAgICB0b2tlbnMuc3BsaWNlKGkgKyAxLCAxKTsgLy8gZHJvcCBmaXJzdCAjXG4gICAgICAgICAgfSBlbHNlIGlmICgvXlsxLTldJC8udGVzdCh0b2sudGV4dCkpIHtcbiAgICAgICAgICAgIC8vIHJlcGxhY2UgdGhlIHBsYWNlaG9sZGVyIHdpdGggdGhlIGluZGljYXRlZCBhcmd1bWVudFxuICAgICAgICAgICAgdG9rZW5zLnNwbGljZShpLCAyLCAuLi5hcmdzWyt0b2sudGV4dCAtIDFdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJOb3QgYSB2YWxpZCBhcmd1bWVudCBudW1iZXJcIiwgdG9rKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IC8vIENvbmNhdGVuYXRlIGV4cGFuc2lvbiBvbnRvIHRvcCBvZiBzdGFjay5cblxuXG4gICAgdGhpcy5wdXNoVG9rZW5zKHRva2Vucyk7XG4gICAgcmV0dXJuIHRva2Vucy5sZW5ndGg7XG4gIH1cbiAgLyoqXG4gICAqIEV4cGFuZCB0aGUgbmV4dCB0b2tlbiBvbmx5IG9uY2UgKGlmIHBvc3NpYmxlKSwgYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nXG4gICAqIHRvcCB0b2tlbiBvbiB0aGUgc3RhY2sgKHdpdGhvdXQgcmVtb3ZpbmcgYW55dGhpbmcgZnJvbSB0aGUgc3RhY2spLlxuICAgKiBTaW1pbGFyIGluIGJlaGF2aW9yIHRvIFRlWCdzIGBcXGV4cGFuZGFmdGVyXFxmdXR1cmVsZXRgLlxuICAgKiBFcXVpdmFsZW50IHRvIGV4cGFuZE9uY2UoKSBmb2xsb3dlZCBieSBmdXR1cmUoKS5cbiAgICovXG5cblxuICBleHBhbmRBZnRlckZ1dHVyZSgpIHtcbiAgICB0aGlzLmV4cGFuZE9uY2UoKTtcbiAgICByZXR1cm4gdGhpcy5mdXR1cmUoKTtcbiAgfVxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgZXhwYW5kIGZpcnN0IHRva2VuLCB0aGVuIHJldHVybiBmaXJzdCBub24tZXhwYW5kYWJsZSB0b2tlbi5cbiAgICovXG5cblxuICBleHBhbmROZXh0VG9rZW4oKSB7XG4gICAgZm9yICg7Oykge1xuICAgICAgaWYgKHRoaXMuZXhwYW5kT25jZSgpID09PSBmYWxzZSkge1xuICAgICAgICAvLyBmdWxseSBleHBhbmRlZFxuICAgICAgICB2YXIgdG9rZW4gPSB0aGlzLnN0YWNrLnBvcCgpOyAvLyB0aGUgdG9rZW4gYWZ0ZXIgXFxub2V4cGFuZCBpcyBpbnRlcnByZXRlZCBhcyBpZiBpdHMgbWVhbmluZ1xuICAgICAgICAvLyB3ZXJlIOKAmFxccmVsYXjigJlcblxuICAgICAgICBpZiAodG9rZW4udHJlYXRBc1JlbGF4KSB7XG4gICAgICAgICAgdG9rZW4udGV4dCA9IFwiXFxcXHJlbGF4XCI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICB9XG4gICAgfSAvLyBGbG93IHVuYWJsZSB0byBmaWd1cmUgb3V0IHRoYXQgdGhpcyBwYXRod2F5IGlzIGltcG9zc2libGUuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2Zsb3cvaXNzdWVzLzQ4MDhcblxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5yZWFjaGFibGVcbiAgfVxuICAvKipcbiAgICogRnVsbHkgZXhwYW5kIHRoZSBnaXZlbiBtYWNybyBuYW1lIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBsaXN0IG9mXG4gICAqIHRva2Vucywgb3IgcmV0dXJuIGB1bmRlZmluZWRgIGlmIG5vIHN1Y2ggbWFjcm8gaXMgZGVmaW5lZC5cbiAgICovXG5cblxuICBleHBhbmRNYWNybyhuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMubWFjcm9zLmhhcyhuYW1lKSA/IHRoaXMuZXhwYW5kVG9rZW5zKFtuZXcgVG9rZW4obmFtZSldKSA6IHVuZGVmaW5lZDtcbiAgfVxuICAvKipcbiAgICogRnVsbHkgZXhwYW5kIHRoZSBnaXZlbiB0b2tlbiBzdHJlYW0gYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nIGxpc3Qgb2ZcbiAgICogdG9rZW5zLiAgTm90ZSB0aGF0IHRoZSBpbnB1dCB0b2tlbnMgYXJlIGluIHJldmVyc2Ugb3JkZXIsIGJ1dCB0aGVcbiAgICogb3V0cHV0IHRva2VucyBhcmUgaW4gZm9yd2FyZCBvcmRlci5cbiAgICovXG5cblxuICBleHBhbmRUb2tlbnModG9rZW5zKSB7XG4gICAgdmFyIG91dHB1dCA9IFtdO1xuICAgIHZhciBvbGRTdGFja0xlbmd0aCA9IHRoaXMuc3RhY2subGVuZ3RoO1xuICAgIHRoaXMucHVzaFRva2Vucyh0b2tlbnMpO1xuXG4gICAgd2hpbGUgKHRoaXMuc3RhY2subGVuZ3RoID4gb2xkU3RhY2tMZW5ndGgpIHtcbiAgICAgIC8vIEV4cGFuZCBvbmx5IGV4cGFuZGFibGUgdG9rZW5zXG4gICAgICBpZiAodGhpcy5leHBhbmRPbmNlKHRydWUpID09PSBmYWxzZSkge1xuICAgICAgICAvLyBmdWxseSBleHBhbmRlZFxuICAgICAgICB2YXIgdG9rZW4gPSB0aGlzLnN0YWNrLnBvcCgpO1xuXG4gICAgICAgIGlmICh0b2tlbi50cmVhdEFzUmVsYXgpIHtcbiAgICAgICAgICAvLyB0aGUgZXhwYW5zaW9uIG9mIFxcbm9leHBhbmQgaXMgdGhlIHRva2VuIGl0c2VsZlxuICAgICAgICAgIHRva2VuLm5vZXhwYW5kID0gZmFsc2U7XG4gICAgICAgICAgdG9rZW4udHJlYXRBc1JlbGF4ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBvdXRwdXQucHVzaCh0b2tlbik7XG4gICAgICB9XG4gICAgfSAvLyBDb3VudCBhbGwgb2YgdGhlc2UgdG9rZW5zIGFzIGFkZGl0aW9uYWwgZXhwYW5zaW9ucywgdG8gcHJldmVudFxuICAgIC8vIGV4cG9uZW50aWFsIGJsb3d1cCBmcm9tIGxpbmVhcmx5IG1hbnkgXFxlZGVmJ3MuXG5cblxuICAgIHRoaXMuY291bnRFeHBhbnNpb24ob3V0cHV0Lmxlbmd0aCk7XG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuICAvKipcbiAgICogRnVsbHkgZXhwYW5kIHRoZSBnaXZlbiBtYWNybyBuYW1lIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyBhIHN0cmluZyxcbiAgICogb3IgcmV0dXJuIGB1bmRlZmluZWRgIGlmIG5vIHN1Y2ggbWFjcm8gaXMgZGVmaW5lZC5cbiAgICovXG5cblxuICBleHBhbmRNYWNyb0FzVGV4dChuYW1lKSB7XG4gICAgdmFyIHRva2VucyA9IHRoaXMuZXhwYW5kTWFjcm8obmFtZSk7XG5cbiAgICBpZiAodG9rZW5zKSB7XG4gICAgICByZXR1cm4gdG9rZW5zLm1hcCh0b2tlbiA9PiB0b2tlbi50ZXh0KS5qb2luKFwiXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdG9rZW5zO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXhwYW5kZWQgbWFjcm8gYXMgYSByZXZlcnNlZCBhcnJheSBvZiB0b2tlbnMgYW5kIGEgbWFjcm9cbiAgICogYXJndW1lbnQgY291bnQuICBPciByZXR1cm5zIGBudWxsYCBpZiBubyBzdWNoIG1hY3JvLlxuICAgKi9cblxuXG4gIF9nZXRFeHBhbnNpb24obmFtZSkge1xuICAgIHZhciBkZWZpbml0aW9uID0gdGhpcy5tYWNyb3MuZ2V0KG5hbWUpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gPT0gbnVsbCkge1xuICAgICAgLy8gbWFpbmx5IGNoZWNraW5nIGZvciB1bmRlZmluZWQgaGVyZVxuICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgfSAvLyBJZiBhIHNpbmdsZSBjaGFyYWN0ZXIgaGFzIGFuIGFzc29jaWF0ZWQgY2F0Y29kZSBvdGhlciB0aGFuIDEzXG4gICAgLy8gKGFjdGl2ZSBjaGFyYWN0ZXIpLCB0aGVuIGRvbid0IGV4cGFuZCBpdC5cblxuXG4gICAgaWYgKG5hbWUubGVuZ3RoID09PSAxKSB7XG4gICAgICB2YXIgY2F0Y29kZSA9IHRoaXMubGV4ZXIuY2F0Y29kZXNbbmFtZV07XG5cbiAgICAgIGlmIChjYXRjb2RlICE9IG51bGwgJiYgY2F0Y29kZSAhPT0gMTMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBleHBhbnNpb24gPSB0eXBlb2YgZGVmaW5pdGlvbiA9PT0gXCJmdW5jdGlvblwiID8gZGVmaW5pdGlvbih0aGlzKSA6IGRlZmluaXRpb247XG5cbiAgICBpZiAodHlwZW9mIGV4cGFuc2lvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdmFyIG51bUFyZ3MgPSAwO1xuXG4gICAgICBpZiAoZXhwYW5zaW9uLmluZGV4T2YoXCIjXCIpICE9PSAtMSkge1xuICAgICAgICB2YXIgc3RyaXBwZWQgPSBleHBhbnNpb24ucmVwbGFjZSgvIyMvZywgXCJcIik7XG5cbiAgICAgICAgd2hpbGUgKHN0cmlwcGVkLmluZGV4T2YoXCIjXCIgKyAobnVtQXJncyArIDEpKSAhPT0gLTEpIHtcbiAgICAgICAgICArK251bUFyZ3M7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIGJvZHlMZXhlciA9IG5ldyBMZXhlcihleHBhbnNpb24sIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgdmFyIHRva2VucyA9IFtdO1xuICAgICAgdmFyIHRvayA9IGJvZHlMZXhlci5sZXgoKTtcblxuICAgICAgd2hpbGUgKHRvay50ZXh0ICE9PSBcIkVPRlwiKSB7XG4gICAgICAgIHRva2Vucy5wdXNoKHRvayk7XG4gICAgICAgIHRvayA9IGJvZHlMZXhlci5sZXgoKTtcbiAgICAgIH1cblxuICAgICAgdG9rZW5zLnJldmVyc2UoKTsgLy8gdG8gZml0IGluIHdpdGggc3RhY2sgdXNpbmcgcHVzaCBhbmQgcG9wXG5cbiAgICAgIHZhciBleHBhbmRlZCA9IHtcbiAgICAgICAgdG9rZW5zLFxuICAgICAgICBudW1BcmdzXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGV4cGFuZGVkO1xuICAgIH1cblxuICAgIHJldHVybiBleHBhbnNpb247XG4gIH1cbiAgLyoqXG4gICAqIERldGVybWluZSB3aGV0aGVyIGEgY29tbWFuZCBpcyBjdXJyZW50bHkgXCJkZWZpbmVkXCIgKGhhcyBzb21lXG4gICAqIGZ1bmN0aW9uYWxpdHkpLCBtZWFuaW5nIHRoYXQgaXQncyBhIG1hY3JvIChpbiB0aGUgY3VycmVudCBncm91cCksXG4gICAqIGEgZnVuY3Rpb24sIGEgc3ltYm9sLCBvciBvbmUgb2YgdGhlIHNwZWNpYWwgY29tbWFuZHMgbGlzdGVkIGluXG4gICAqIGBpbXBsaWNpdENvbW1hbmRzYC5cbiAgICovXG5cblxuICBpc0RlZmluZWQobmFtZSkge1xuICAgIHJldHVybiB0aGlzLm1hY3Jvcy5oYXMobmFtZSkgfHwgZnVuY3Rpb25zLmhhc093blByb3BlcnR5KG5hbWUpIHx8IHN5bWJvbHMubWF0aC5oYXNPd25Qcm9wZXJ0eShuYW1lKSB8fCBzeW1ib2xzLnRleHQuaGFzT3duUHJvcGVydHkobmFtZSkgfHwgaW1wbGljaXRDb21tYW5kcy5oYXNPd25Qcm9wZXJ0eShuYW1lKTtcbiAgfVxuICAvKipcbiAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYSBjb21tYW5kIGlzIGV4cGFuZGFibGUuXG4gICAqL1xuXG5cbiAgaXNFeHBhbmRhYmxlKG5hbWUpIHtcbiAgICB2YXIgbWFjcm8gPSB0aGlzLm1hY3Jvcy5nZXQobmFtZSk7XG4gICAgcmV0dXJuIG1hY3JvICE9IG51bGwgPyB0eXBlb2YgbWFjcm8gPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIG1hY3JvID09PSBcImZ1bmN0aW9uXCIgfHwgIW1hY3JvLnVuZXhwYW5kYWJsZSA6IGZ1bmN0aW9ucy5oYXNPd25Qcm9wZXJ0eShuYW1lKSAmJiAhZnVuY3Rpb25zW25hbWVdLnByaW1pdGl2ZTtcbiAgfVxuXG59XG5cbi8vIEhlbHBlcnMgZm9yIFBhcnNlci5qcyBoYW5kbGluZyBvZiBVbmljb2RlIChzdWJ8c3VwZXIpc2NyaXB0IGNoYXJhY3RlcnMuXG52YXIgdW5pY29kZVN1YlJlZ0V4ID0gL15b4oKK4oKL4oKM4oKN4oKO4oKA4oKB4oKC4oKD4oKE4oKF4oKG4oKH4oKI4oKJ4oKQ4oKR4oKV4bWi4rG84oKW4oKX4oKY4oKZ4oKS4oKa4bWj4oKb4oKc4bWk4bWl4oKT4bWm4bWn4bWo4bWp4bWqXS87XG52YXIgdVN1YnNBbmRTdXBzID0gT2JqZWN0LmZyZWV6ZSh7XG4gICfigoonOiAnKycsXG4gICfigosnOiAnLScsXG4gICfigownOiAnPScsXG4gICfigo0nOiAnKCcsXG4gICfigo4nOiAnKScsXG4gICfigoAnOiAnMCcsXG4gICfigoEnOiAnMScsXG4gICfigoInOiAnMicsXG4gICfigoMnOiAnMycsXG4gICfigoQnOiAnNCcsXG4gICfigoUnOiAnNScsXG4gICfigoYnOiAnNicsXG4gICfigocnOiAnNycsXG4gICfigognOiAnOCcsXG4gICfigoknOiAnOScsXG4gICdcXHUyMDkwJzogJ2EnLFxuICAnXFx1MjA5MSc6ICdlJyxcbiAgJ1xcdTIwOTUnOiAnaCcsXG4gICdcXHUxRDYyJzogJ2knLFxuICAnXFx1MkM3Qyc6ICdqJyxcbiAgJ1xcdTIwOTYnOiAnaycsXG4gICdcXHUyMDk3JzogJ2wnLFxuICAnXFx1MjA5OCc6ICdtJyxcbiAgJ1xcdTIwOTknOiAnbicsXG4gICdcXHUyMDkyJzogJ28nLFxuICAnXFx1MjA5QSc6ICdwJyxcbiAgJ1xcdTFENjMnOiAncicsXG4gICdcXHUyMDlCJzogJ3MnLFxuICAnXFx1MjA5Qyc6ICd0JyxcbiAgJ1xcdTFENjQnOiAndScsXG4gICdcXHUxRDY1JzogJ3YnLFxuICAnXFx1MjA5Myc6ICd4JyxcbiAgJ1xcdTFENjYnOiAnzrInLFxuICAnXFx1MUQ2Nyc6ICfOsycsXG4gICdcXHUxRDY4JzogJ8+BJyxcbiAgJ1xcdTFENjknOiAnXFx1MDNkNScsXG4gICdcXHUxRDZBJzogJ8+HJyxcbiAgJ+KBuic6ICcrJyxcbiAgJ+KBuyc6ICctJyxcbiAgJ+KBvCc6ICc9JyxcbiAgJ+KBvSc6ICcoJyxcbiAgJ+KBvic6ICcpJyxcbiAgJ+KBsCc6ICcwJyxcbiAgJ8K5JzogJzEnLFxuICAnwrInOiAnMicsXG4gICfCsyc6ICczJyxcbiAgJ+KBtCc6ICc0JyxcbiAgJ+KBtSc6ICc1JyxcbiAgJ+KBtic6ICc2JyxcbiAgJ+KBtyc6ICc3JyxcbiAgJ+KBuCc6ICc4JyxcbiAgJ+KBuSc6ICc5JyxcbiAgJ1xcdTFEMkMnOiAnQScsXG4gICdcXHUxRDJFJzogJ0InLFxuICAnXFx1MUQzMCc6ICdEJyxcbiAgJ1xcdTFEMzEnOiAnRScsXG4gICdcXHUxRDMzJzogJ0cnLFxuICAnXFx1MUQzNCc6ICdIJyxcbiAgJ1xcdTFEMzUnOiAnSScsXG4gICdcXHUxRDM2JzogJ0onLFxuICAnXFx1MUQzNyc6ICdLJyxcbiAgJ1xcdTFEMzgnOiAnTCcsXG4gICdcXHUxRDM5JzogJ00nLFxuICAnXFx1MUQzQSc6ICdOJyxcbiAgJ1xcdTFEM0MnOiAnTycsXG4gICdcXHUxRDNFJzogJ1AnLFxuICAnXFx1MUQzRic6ICdSJyxcbiAgJ1xcdTFENDAnOiAnVCcsXG4gICdcXHUxRDQxJzogJ1UnLFxuICAnXFx1MkM3RCc6ICdWJyxcbiAgJ1xcdTFENDInOiAnVycsXG4gICdcXHUxRDQzJzogJ2EnLFxuICAnXFx1MUQ0Nyc6ICdiJyxcbiAgJ1xcdTFEOUMnOiAnYycsXG4gICdcXHUxRDQ4JzogJ2QnLFxuICAnXFx1MUQ0OSc6ICdlJyxcbiAgJ1xcdTFEQTAnOiAnZicsXG4gICdcXHUxRDREJzogJ2cnLFxuICAnXFx1MDJCMCc6ICdoJyxcbiAgJ1xcdTIwNzEnOiAnaScsXG4gICdcXHUwMkIyJzogJ2onLFxuICAnXFx1MUQ0Ric6ICdrJyxcbiAgJ1xcdTAyRTEnOiAnbCcsXG4gICdcXHUxRDUwJzogJ20nLFxuICAnXFx1MjA3Ric6ICduJyxcbiAgJ1xcdTFENTInOiAnbycsXG4gICdcXHUxRDU2JzogJ3AnLFxuICAnXFx1MDJCMyc6ICdyJyxcbiAgJ1xcdTAyRTInOiAncycsXG4gICdcXHUxRDU3JzogJ3QnLFxuICAnXFx1MUQ1OCc6ICd1JyxcbiAgJ1xcdTFENUInOiAndicsXG4gICdcXHUwMkI3JzogJ3cnLFxuICAnXFx1MDJFMyc6ICd4JyxcbiAgJ1xcdTAyQjgnOiAneScsXG4gICdcXHUxREJCJzogJ3onLFxuICAnXFx1MUQ1RCc6ICfOsicsXG4gICdcXHUxRDVFJzogJ86zJyxcbiAgJ1xcdTFENUYnOiAnzrQnLFxuICAnXFx1MUQ2MCc6ICdcXHUwM2Q1JyxcbiAgJ1xcdTFENjEnOiAnz4cnLFxuICAnXFx1MURCRic6ICfOuCdcbn0pO1xuXG4vKiBlc2xpbnQgbm8tY29uc3RhbnQtY29uZGl0aW9uOjAgKi9cblxudmFyIHVuaWNvZGVBY2NlbnRzID0ge1xuICBcIsyBXCI6IHtcbiAgICBcInRleHRcIjogXCJcXFxcJ1wiLFxuICAgIFwibWF0aFwiOiBcIlxcXFxhY3V0ZVwiXG4gIH0sXG4gIFwizIBcIjoge1xuICAgIFwidGV4dFwiOiBcIlxcXFxgXCIsXG4gICAgXCJtYXRoXCI6IFwiXFxcXGdyYXZlXCJcbiAgfSxcbiAgXCLMiFwiOiB7XG4gICAgXCJ0ZXh0XCI6IFwiXFxcXFxcXCJcIixcbiAgICBcIm1hdGhcIjogXCJcXFxcZGRvdFwiXG4gIH0sXG4gIFwizINcIjoge1xuICAgIFwidGV4dFwiOiBcIlxcXFx+XCIsXG4gICAgXCJtYXRoXCI6IFwiXFxcXHRpbGRlXCJcbiAgfSxcbiAgXCLMhFwiOiB7XG4gICAgXCJ0ZXh0XCI6IFwiXFxcXD1cIixcbiAgICBcIm1hdGhcIjogXCJcXFxcYmFyXCJcbiAgfSxcbiAgXCLMhlwiOiB7XG4gICAgXCJ0ZXh0XCI6IFwiXFxcXHVcIixcbiAgICBcIm1hdGhcIjogXCJcXFxcYnJldmVcIlxuICB9LFxuICBcIsyMXCI6IHtcbiAgICBcInRleHRcIjogXCJcXFxcdlwiLFxuICAgIFwibWF0aFwiOiBcIlxcXFxjaGVja1wiXG4gIH0sXG4gIFwizIJcIjoge1xuICAgIFwidGV4dFwiOiBcIlxcXFxeXCIsXG4gICAgXCJtYXRoXCI6IFwiXFxcXGhhdFwiXG4gIH0sXG4gIFwizIdcIjoge1xuICAgIFwidGV4dFwiOiBcIlxcXFwuXCIsXG4gICAgXCJtYXRoXCI6IFwiXFxcXGRvdFwiXG4gIH0sXG4gIFwizIpcIjoge1xuICAgIFwidGV4dFwiOiBcIlxcXFxyXCIsXG4gICAgXCJtYXRoXCI6IFwiXFxcXG1hdGhyaW5nXCJcbiAgfSxcbiAgXCLMi1wiOiB7XG4gICAgXCJ0ZXh0XCI6IFwiXFxcXEhcIlxuICB9LFxuICBcIsynXCI6IHtcbiAgICBcInRleHRcIjogXCJcXFxcY1wiXG4gIH1cbn07XG52YXIgdW5pY29kZVN5bWJvbHMgPSB7XG4gIFwiw6FcIjogXCJhzIFcIixcbiAgXCLDoFwiOiBcImHMgFwiLFxuICBcIsOkXCI6IFwiYcyIXCIsXG4gIFwix59cIjogXCJhzIjMhFwiLFxuICBcIsOjXCI6IFwiYcyDXCIsXG4gIFwixIFcIjogXCJhzIRcIixcbiAgXCLEg1wiOiBcImHMhlwiLFxuICBcIuG6r1wiOiBcImHMhsyBXCIsXG4gIFwi4bqxXCI6IFwiYcyGzIBcIixcbiAgXCLhurVcIjogXCJhzIbMg1wiLFxuICBcIseOXCI6IFwiYcyMXCIsXG4gIFwiw6JcIjogXCJhzIJcIixcbiAgXCLhuqVcIjogXCJhzILMgVwiLFxuICBcIuG6p1wiOiBcImHMgsyAXCIsXG4gIFwi4bqrXCI6IFwiYcyCzINcIixcbiAgXCLIp1wiOiBcImHMh1wiLFxuICBcIsehXCI6IFwiYcyHzIRcIixcbiAgXCLDpVwiOiBcImHMilwiLFxuICBcIse7XCI6IFwiYcyKzIFcIixcbiAgXCLhuINcIjogXCJizIdcIixcbiAgXCLEh1wiOiBcImPMgVwiLFxuICBcIuG4iVwiOiBcImPMp8yBXCIsXG4gIFwixI1cIjogXCJjzIxcIixcbiAgXCLEiVwiOiBcImPMglwiLFxuICBcIsSLXCI6IFwiY8yHXCIsXG4gIFwiw6dcIjogXCJjzKdcIixcbiAgXCLEj1wiOiBcImTMjFwiLFxuICBcIuG4i1wiOiBcImTMh1wiLFxuICBcIuG4kVwiOiBcImTMp1wiLFxuICBcIsOpXCI6IFwiZcyBXCIsXG4gIFwiw6hcIjogXCJlzIBcIixcbiAgXCLDq1wiOiBcImXMiFwiLFxuICBcIuG6vVwiOiBcImXMg1wiLFxuICBcIsSTXCI6IFwiZcyEXCIsXG4gIFwi4biXXCI6IFwiZcyEzIFcIixcbiAgXCLhuJVcIjogXCJlzITMgFwiLFxuICBcIsSVXCI6IFwiZcyGXCIsXG4gIFwi4bidXCI6IFwiZcynzIZcIixcbiAgXCLEm1wiOiBcImXMjFwiLFxuICBcIsOqXCI6IFwiZcyCXCIsXG4gIFwi4bq/XCI6IFwiZcyCzIFcIixcbiAgXCLhu4FcIjogXCJlzILMgFwiLFxuICBcIuG7hVwiOiBcImXMgsyDXCIsXG4gIFwixJdcIjogXCJlzIdcIixcbiAgXCLIqVwiOiBcImXMp1wiLFxuICBcIuG4n1wiOiBcImbMh1wiLFxuICBcIse1XCI6IFwiZ8yBXCIsXG4gIFwi4bihXCI6IFwiZ8yEXCIsXG4gIFwixJ9cIjogXCJnzIZcIixcbiAgXCLHp1wiOiBcImfMjFwiLFxuICBcIsSdXCI6IFwiZ8yCXCIsXG4gIFwixKFcIjogXCJnzIdcIixcbiAgXCLEo1wiOiBcImfMp1wiLFxuICBcIuG4p1wiOiBcImjMiFwiLFxuICBcIsifXCI6IFwiaMyMXCIsXG4gIFwixKVcIjogXCJozIJcIixcbiAgXCLhuKNcIjogXCJozIdcIixcbiAgXCLhuKlcIjogXCJozKdcIixcbiAgXCLDrVwiOiBcImnMgVwiLFxuICBcIsOsXCI6IFwiacyAXCIsXG4gIFwiw69cIjogXCJpzIhcIixcbiAgXCLhuK9cIjogXCJpzIjMgVwiLFxuICBcIsSpXCI6IFwiacyDXCIsXG4gIFwixKtcIjogXCJpzIRcIixcbiAgXCLErVwiOiBcImnMhlwiLFxuICBcIseQXCI6IFwiacyMXCIsXG4gIFwiw65cIjogXCJpzIJcIixcbiAgXCLHsFwiOiBcImrMjFwiLFxuICBcIsS1XCI6IFwiasyCXCIsXG4gIFwi4bixXCI6IFwia8yBXCIsXG4gIFwix6lcIjogXCJrzIxcIixcbiAgXCLEt1wiOiBcImvMp1wiLFxuICBcIsS6XCI6IFwibMyBXCIsXG4gIFwixL5cIjogXCJszIxcIixcbiAgXCLEvFwiOiBcImzMp1wiLFxuICBcIuG4v1wiOiBcIm3MgVwiLFxuICBcIuG5gVwiOiBcIm3Mh1wiLFxuICBcIsWEXCI6IFwibsyBXCIsXG4gIFwix7lcIjogXCJuzIBcIixcbiAgXCLDsVwiOiBcIm7Mg1wiLFxuICBcIsWIXCI6IFwibsyMXCIsXG4gIFwi4bmFXCI6IFwibsyHXCIsXG4gIFwixYZcIjogXCJuzKdcIixcbiAgXCLDs1wiOiBcIm/MgVwiLFxuICBcIsOyXCI6IFwib8yAXCIsXG4gIFwiw7ZcIjogXCJvzIhcIixcbiAgXCLIq1wiOiBcIm/MiMyEXCIsXG4gIFwiw7VcIjogXCJvzINcIixcbiAgXCLhuY1cIjogXCJvzIPMgVwiLFxuICBcIuG5j1wiOiBcIm/Mg8yIXCIsXG4gIFwiyK1cIjogXCJvzIPMhFwiLFxuICBcIsWNXCI6IFwib8yEXCIsXG4gIFwi4bmTXCI6IFwib8yEzIFcIixcbiAgXCLhuZFcIjogXCJvzITMgFwiLFxuICBcIsWPXCI6IFwib8yGXCIsXG4gIFwix5JcIjogXCJvzIxcIixcbiAgXCLDtFwiOiBcIm/MglwiLFxuICBcIuG7kVwiOiBcIm/MgsyBXCIsXG4gIFwi4buTXCI6IFwib8yCzIBcIixcbiAgXCLhu5dcIjogXCJvzILMg1wiLFxuICBcIsivXCI6IFwib8yHXCIsXG4gIFwiyLFcIjogXCJvzIfMhFwiLFxuICBcIsWRXCI6IFwib8yLXCIsXG4gIFwi4bmVXCI6IFwicMyBXCIsXG4gIFwi4bmXXCI6IFwicMyHXCIsXG4gIFwixZVcIjogXCJyzIFcIixcbiAgXCLFmVwiOiBcInLMjFwiLFxuICBcIuG5mVwiOiBcInLMh1wiLFxuICBcIsWXXCI6IFwicsynXCIsXG4gIFwixZtcIjogXCJzzIFcIixcbiAgXCLhuaVcIjogXCJzzIHMh1wiLFxuICBcIsWhXCI6IFwic8yMXCIsXG4gIFwi4bmnXCI6IFwic8yMzIdcIixcbiAgXCLFnVwiOiBcInPMglwiLFxuICBcIuG5oVwiOiBcInPMh1wiLFxuICBcIsWfXCI6IFwic8ynXCIsXG4gIFwi4bqXXCI6IFwidMyIXCIsXG4gIFwixaVcIjogXCJ0zIxcIixcbiAgXCLhuatcIjogXCJ0zIdcIixcbiAgXCLFo1wiOiBcInTMp1wiLFxuICBcIsO6XCI6IFwidcyBXCIsXG4gIFwiw7lcIjogXCJ1zIBcIixcbiAgXCLDvFwiOiBcInXMiFwiLFxuICBcIseYXCI6IFwidcyIzIFcIixcbiAgXCLHnFwiOiBcInXMiMyAXCIsXG4gIFwix5ZcIjogXCJ1zIjMhFwiLFxuICBcIseaXCI6IFwidcyIzIxcIixcbiAgXCLFqVwiOiBcInXMg1wiLFxuICBcIuG5uVwiOiBcInXMg8yBXCIsXG4gIFwixatcIjogXCJ1zIRcIixcbiAgXCLhubtcIjogXCJ1zITMiFwiLFxuICBcIsWtXCI6IFwidcyGXCIsXG4gIFwix5RcIjogXCJ1zIxcIixcbiAgXCLDu1wiOiBcInXMglwiLFxuICBcIsWvXCI6IFwidcyKXCIsXG4gIFwixbFcIjogXCJ1zItcIixcbiAgXCLhub1cIjogXCJ2zINcIixcbiAgXCLhuoNcIjogXCJ3zIFcIixcbiAgXCLhuoFcIjogXCJ3zIBcIixcbiAgXCLhuoVcIjogXCJ3zIhcIixcbiAgXCLFtVwiOiBcInfMglwiLFxuICBcIuG6h1wiOiBcInfMh1wiLFxuICBcIuG6mFwiOiBcInfMilwiLFxuICBcIuG6jVwiOiBcInjMiFwiLFxuICBcIuG6i1wiOiBcInjMh1wiLFxuICBcIsO9XCI6IFwiecyBXCIsXG4gIFwi4buzXCI6IFwiecyAXCIsXG4gIFwiw79cIjogXCJ5zIhcIixcbiAgXCLhu7lcIjogXCJ5zINcIixcbiAgXCLIs1wiOiBcInnMhFwiLFxuICBcIsW3XCI6IFwiecyCXCIsXG4gIFwi4bqPXCI6IFwiecyHXCIsXG4gIFwi4bqZXCI6IFwiecyKXCIsXG4gIFwixbpcIjogXCJ6zIFcIixcbiAgXCLFvlwiOiBcInrMjFwiLFxuICBcIuG6kVwiOiBcInrMglwiLFxuICBcIsW8XCI6IFwiesyHXCIsXG4gIFwiw4FcIjogXCJBzIFcIixcbiAgXCLDgFwiOiBcIkHMgFwiLFxuICBcIsOEXCI6IFwiQcyIXCIsXG4gIFwix55cIjogXCJBzIjMhFwiLFxuICBcIsODXCI6IFwiQcyDXCIsXG4gIFwixIBcIjogXCJBzIRcIixcbiAgXCLEglwiOiBcIkHMhlwiLFxuICBcIuG6rlwiOiBcIkHMhsyBXCIsXG4gIFwi4bqwXCI6IFwiQcyGzIBcIixcbiAgXCLhurRcIjogXCJBzIbMg1wiLFxuICBcIseNXCI6IFwiQcyMXCIsXG4gIFwiw4JcIjogXCJBzIJcIixcbiAgXCLhuqRcIjogXCJBzILMgVwiLFxuICBcIuG6plwiOiBcIkHMgsyAXCIsXG4gIFwi4bqqXCI6IFwiQcyCzINcIixcbiAgXCLIplwiOiBcIkHMh1wiLFxuICBcIsegXCI6IFwiQcyHzIRcIixcbiAgXCLDhVwiOiBcIkHMilwiLFxuICBcIse6XCI6IFwiQcyKzIFcIixcbiAgXCLhuIJcIjogXCJCzIdcIixcbiAgXCLEhlwiOiBcIkPMgVwiLFxuICBcIuG4iFwiOiBcIkPMp8yBXCIsXG4gIFwixIxcIjogXCJDzIxcIixcbiAgXCLEiFwiOiBcIkPMglwiLFxuICBcIsSKXCI6IFwiQ8yHXCIsXG4gIFwiw4dcIjogXCJDzKdcIixcbiAgXCLEjlwiOiBcIkTMjFwiLFxuICBcIuG4ilwiOiBcIkTMh1wiLFxuICBcIuG4kFwiOiBcIkTMp1wiLFxuICBcIsOJXCI6IFwiRcyBXCIsXG4gIFwiw4hcIjogXCJFzIBcIixcbiAgXCLDi1wiOiBcIkXMiFwiLFxuICBcIuG6vFwiOiBcIkXMg1wiLFxuICBcIsSSXCI6IFwiRcyEXCIsXG4gIFwi4biWXCI6IFwiRcyEzIFcIixcbiAgXCLhuJRcIjogXCJFzITMgFwiLFxuICBcIsSUXCI6IFwiRcyGXCIsXG4gIFwi4bicXCI6IFwiRcynzIZcIixcbiAgXCLEmlwiOiBcIkXMjFwiLFxuICBcIsOKXCI6IFwiRcyCXCIsXG4gIFwi4bq+XCI6IFwiRcyCzIFcIixcbiAgXCLhu4BcIjogXCJFzILMgFwiLFxuICBcIuG7hFwiOiBcIkXMgsyDXCIsXG4gIFwixJZcIjogXCJFzIdcIixcbiAgXCLIqFwiOiBcIkXMp1wiLFxuICBcIuG4nlwiOiBcIkbMh1wiLFxuICBcIse0XCI6IFwiR8yBXCIsXG4gIFwi4bigXCI6IFwiR8yEXCIsXG4gIFwixJ5cIjogXCJHzIZcIixcbiAgXCLHplwiOiBcIkfMjFwiLFxuICBcIsScXCI6IFwiR8yCXCIsXG4gIFwixKBcIjogXCJHzIdcIixcbiAgXCLEolwiOiBcIkfMp1wiLFxuICBcIuG4plwiOiBcIkjMiFwiLFxuICBcIsieXCI6IFwiSMyMXCIsXG4gIFwixKRcIjogXCJIzIJcIixcbiAgXCLhuKJcIjogXCJIzIdcIixcbiAgXCLhuKhcIjogXCJIzKdcIixcbiAgXCLDjVwiOiBcIknMgVwiLFxuICBcIsOMXCI6IFwiScyAXCIsXG4gIFwiw49cIjogXCJJzIhcIixcbiAgXCLhuK5cIjogXCJJzIjMgVwiLFxuICBcIsSoXCI6IFwiScyDXCIsXG4gIFwixKpcIjogXCJJzIRcIixcbiAgXCLErFwiOiBcIknMhlwiLFxuICBcIsePXCI6IFwiScyMXCIsXG4gIFwiw45cIjogXCJJzIJcIixcbiAgXCLEsFwiOiBcIknMh1wiLFxuICBcIsS0XCI6IFwiSsyCXCIsXG4gIFwi4biwXCI6IFwiS8yBXCIsXG4gIFwix6hcIjogXCJLzIxcIixcbiAgXCLEtlwiOiBcIkvMp1wiLFxuICBcIsS5XCI6IFwiTMyBXCIsXG4gIFwixL1cIjogXCJMzIxcIixcbiAgXCLEu1wiOiBcIkzMp1wiLFxuICBcIuG4vlwiOiBcIk3MgVwiLFxuICBcIuG5gFwiOiBcIk3Mh1wiLFxuICBcIsWDXCI6IFwiTsyBXCIsXG4gIFwix7hcIjogXCJOzIBcIixcbiAgXCLDkVwiOiBcIk7Mg1wiLFxuICBcIsWHXCI6IFwiTsyMXCIsXG4gIFwi4bmEXCI6IFwiTsyHXCIsXG4gIFwixYVcIjogXCJOzKdcIixcbiAgXCLDk1wiOiBcIk/MgVwiLFxuICBcIsOSXCI6IFwiT8yAXCIsXG4gIFwiw5ZcIjogXCJPzIhcIixcbiAgXCLIqlwiOiBcIk/MiMyEXCIsXG4gIFwiw5VcIjogXCJPzINcIixcbiAgXCLhuYxcIjogXCJPzIPMgVwiLFxuICBcIuG5jlwiOiBcIk/Mg8yIXCIsXG4gIFwiyKxcIjogXCJPzIPMhFwiLFxuICBcIsWMXCI6IFwiT8yEXCIsXG4gIFwi4bmSXCI6IFwiT8yEzIFcIixcbiAgXCLhuZBcIjogXCJPzITMgFwiLFxuICBcIsWOXCI6IFwiT8yGXCIsXG4gIFwix5FcIjogXCJPzIxcIixcbiAgXCLDlFwiOiBcIk/MglwiLFxuICBcIuG7kFwiOiBcIk/MgsyBXCIsXG4gIFwi4buSXCI6IFwiT8yCzIBcIixcbiAgXCLhu5ZcIjogXCJPzILMg1wiLFxuICBcIsiuXCI6IFwiT8yHXCIsXG4gIFwiyLBcIjogXCJPzIfMhFwiLFxuICBcIsWQXCI6IFwiT8yLXCIsXG4gIFwi4bmUXCI6IFwiUMyBXCIsXG4gIFwi4bmWXCI6IFwiUMyHXCIsXG4gIFwixZRcIjogXCJSzIFcIixcbiAgXCLFmFwiOiBcIlLMjFwiLFxuICBcIuG5mFwiOiBcIlLMh1wiLFxuICBcIsWWXCI6IFwiUsynXCIsXG4gIFwixZpcIjogXCJTzIFcIixcbiAgXCLhuaRcIjogXCJTzIHMh1wiLFxuICBcIsWgXCI6IFwiU8yMXCIsXG4gIFwi4bmmXCI6IFwiU8yMzIdcIixcbiAgXCLFnFwiOiBcIlPMglwiLFxuICBcIuG5oFwiOiBcIlPMh1wiLFxuICBcIsWeXCI6IFwiU8ynXCIsXG4gIFwixaRcIjogXCJUzIxcIixcbiAgXCLhuapcIjogXCJUzIdcIixcbiAgXCLFolwiOiBcIlTMp1wiLFxuICBcIsOaXCI6IFwiVcyBXCIsXG4gIFwiw5lcIjogXCJVzIBcIixcbiAgXCLDnFwiOiBcIlXMiFwiLFxuICBcIseXXCI6IFwiVcyIzIFcIixcbiAgXCLHm1wiOiBcIlXMiMyAXCIsXG4gIFwix5VcIjogXCJVzIjMhFwiLFxuICBcIseZXCI6IFwiVcyIzIxcIixcbiAgXCLFqFwiOiBcIlXMg1wiLFxuICBcIuG5uFwiOiBcIlXMg8yBXCIsXG4gIFwixapcIjogXCJVzIRcIixcbiAgXCLhubpcIjogXCJVzITMiFwiLFxuICBcIsWsXCI6IFwiVcyGXCIsXG4gIFwix5NcIjogXCJVzIxcIixcbiAgXCLDm1wiOiBcIlXMglwiLFxuICBcIsWuXCI6IFwiVcyKXCIsXG4gIFwixbBcIjogXCJVzItcIixcbiAgXCLhubxcIjogXCJWzINcIixcbiAgXCLhuoJcIjogXCJXzIFcIixcbiAgXCLhuoBcIjogXCJXzIBcIixcbiAgXCLhuoRcIjogXCJXzIhcIixcbiAgXCLFtFwiOiBcIlfMglwiLFxuICBcIuG6hlwiOiBcIlfMh1wiLFxuICBcIuG6jFwiOiBcIljMiFwiLFxuICBcIuG6ilwiOiBcIljMh1wiLFxuICBcIsOdXCI6IFwiWcyBXCIsXG4gIFwi4buyXCI6IFwiWcyAXCIsXG4gIFwixbhcIjogXCJZzIhcIixcbiAgXCLhu7hcIjogXCJZzINcIixcbiAgXCLIslwiOiBcIlnMhFwiLFxuICBcIsW2XCI6IFwiWcyCXCIsXG4gIFwi4bqOXCI6IFwiWcyHXCIsXG4gIFwixblcIjogXCJazIFcIixcbiAgXCLFvVwiOiBcIlrMjFwiLFxuICBcIuG6kFwiOiBcIlrMglwiLFxuICBcIsW7XCI6IFwiWsyHXCIsXG4gIFwizqxcIjogXCLOscyBXCIsXG4gIFwi4b2wXCI6IFwizrHMgFwiLFxuICBcIuG+sVwiOiBcIs6xzIRcIixcbiAgXCLhvrBcIjogXCLOscyGXCIsXG4gIFwizq1cIjogXCLOtcyBXCIsXG4gIFwi4b2yXCI6IFwizrXMgFwiLFxuICBcIs6uXCI6IFwizrfMgVwiLFxuICBcIuG9tFwiOiBcIs63zIBcIixcbiAgXCLOr1wiOiBcIs65zIFcIixcbiAgXCLhvbZcIjogXCLOucyAXCIsXG4gIFwiz4pcIjogXCLOucyIXCIsXG4gIFwizpBcIjogXCLOucyIzIFcIixcbiAgXCLhv5JcIjogXCLOucyIzIBcIixcbiAgXCLhv5FcIjogXCLOucyEXCIsXG4gIFwi4b+QXCI6IFwizrnMhlwiLFxuICBcIs+MXCI6IFwizr/MgVwiLFxuICBcIuG9uFwiOiBcIs6/zIBcIixcbiAgXCLPjVwiOiBcIs+FzIFcIixcbiAgXCLhvbpcIjogXCLPhcyAXCIsXG4gIFwiz4tcIjogXCLPhcyIXCIsXG4gIFwizrBcIjogXCLPhcyIzIFcIixcbiAgXCLhv6JcIjogXCLPhcyIzIBcIixcbiAgXCLhv6FcIjogXCLPhcyEXCIsXG4gIFwi4b+gXCI6IFwiz4XMhlwiLFxuICBcIs+OXCI6IFwiz4nMgVwiLFxuICBcIuG9vFwiOiBcIs+JzIBcIixcbiAgXCLOjlwiOiBcIs6lzIFcIixcbiAgXCLhv6pcIjogXCLOpcyAXCIsXG4gIFwizqtcIjogXCLOpcyIXCIsXG4gIFwi4b+pXCI6IFwizqXMhFwiLFxuICBcIuG/qFwiOiBcIs6lzIZcIixcbiAgXCLOj1wiOiBcIs6pzIFcIixcbiAgXCLhv7pcIjogXCLOqcyAXCJcbn07XG5cbi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBwYXJzZXIgdXNlZCB0byBwYXJzZSBvdXQgYSBUZVggZXhwcmVzc2lvbiBmcm9tIHRoZVxuICogaW5wdXQuIFNpbmNlIFRlWCBpc24ndCBjb250ZXh0LWZyZWUsIHN0YW5kYXJkIHBhcnNlcnMgZG9uJ3Qgd29yayBwYXJ0aWN1bGFybHlcbiAqIHdlbGwuXG4gKlxuICogVGhlIHN0cmF0ZWd5IG9mIHRoaXMgcGFyc2VyIGlzIGFzIHN1Y2g6XG4gKlxuICogVGhlIG1haW4gZnVuY3Rpb25zICh0aGUgYC5wYXJzZS4uLmAgb25lcykgdGFrZSBhIHBvc2l0aW9uIGluIHRoZSBjdXJyZW50XG4gKiBwYXJzZSBzdHJpbmcgdG8gcGFyc2UgdG9rZW5zIGZyb20uIFRoZSBsZXhlciAoZm91bmQgaW4gTGV4ZXIuanMsIHN0b3JlZCBhdFxuICogdGhpcy5ndWxsZXQubGV4ZXIpIGFsc28gc3VwcG9ydHMgcHVsbGluZyBvdXQgdG9rZW5zIGF0IGFyYml0cmFyeSBwbGFjZXMuIFdoZW5cbiAqIGluZGl2aWR1YWwgdG9rZW5zIGFyZSBuZWVkZWQgYXQgYSBwb3NpdGlvbiwgdGhlIGxleGVyIGlzIGNhbGxlZCB0byBwdWxsIG91dCBhXG4gKiB0b2tlbiwgd2hpY2ggaXMgdGhlbiB1c2VkLlxuICpcbiAqIFRoZSBwYXJzZXIgaGFzIGEgcHJvcGVydHkgY2FsbGVkIFwibW9kZVwiIGluZGljYXRpbmcgdGhlIG1vZGUgdGhhdFxuICogdGhlIHBhcnNlciBpcyBjdXJyZW50bHkgaW4uIEN1cnJlbnRseSBpdCBoYXMgdG8gYmUgb25lIG9mIFwibWF0aFwiIG9yXG4gKiBcInRleHRcIiwgd2hpY2ggZGVub3RlcyB3aGV0aGVyIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGlzIGEgbWF0aC15XG4gKiBvbmUgb3IgYSB0ZXh0LXkgb25lIChlLmcuIGluc2lkZSBcXHRleHQpLiBDdXJyZW50bHksIHRoaXMgc2VydmVzIHRvXG4gKiBsaW1pdCB0aGUgZnVuY3Rpb25zIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRleHQgbW9kZS5cbiAqXG4gKiBUaGUgbWFpbiBmdW5jdGlvbnMgdGhlbiByZXR1cm4gYW4gb2JqZWN0IHdoaWNoIGNvbnRhaW5zIHRoZSB1c2VmdWwgZGF0YSB0aGF0XG4gKiB3YXMgcGFyc2VkIGF0IGl0cyBnaXZlbiBwb2ludCwgYW5kIGEgbmV3IHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgdGhlIHBhcnNlZFxuICogZGF0YS4gVGhlIG1haW4gZnVuY3Rpb25zIGNhbiBjYWxsIGVhY2ggb3RoZXIgYW5kIGNvbnRpbnVlIHRoZSBwYXJzaW5nIGJ5XG4gKiB1c2luZyB0aGUgcmV0dXJuZWQgcG9zaXRpb24gYXMgYSBuZXcgc3RhcnRpbmcgcG9pbnQuXG4gKlxuICogVGhlcmUgYXJlIGFsc28gZXh0cmEgYC5oYW5kbGUuLi5gIGZ1bmN0aW9ucywgd2hpY2ggcHVsbCBvdXQgc29tZSByZXVzZWRcbiAqIGZ1bmN0aW9uYWxpdHkgaW50byBzZWxmLWNvbnRhaW5lZCBmdW5jdGlvbnMuXG4gKlxuICogVGhlIGZ1bmN0aW9ucyByZXR1cm4gUGFyc2VOb2Rlcy5cbiAqL1xuY2xhc3MgUGFyc2VyIHtcbiAgY29uc3RydWN0b3IoaW5wdXQsIHNldHRpbmdzKSB7XG4gICAgdGhpcy5tb2RlID0gdm9pZCAwO1xuICAgIHRoaXMuZ3VsbGV0ID0gdm9pZCAwO1xuICAgIHRoaXMuc2V0dGluZ3MgPSB2b2lkIDA7XG4gICAgdGhpcy5sZWZ0cmlnaHREZXB0aCA9IHZvaWQgMDtcbiAgICB0aGlzLm5leHRUb2tlbiA9IHZvaWQgMDtcbiAgICAvLyBTdGFydCBpbiBtYXRoIG1vZGVcbiAgICB0aGlzLm1vZGUgPSBcIm1hdGhcIjsgLy8gQ3JlYXRlIGEgbmV3IG1hY3JvIGV4cGFuZGVyIChndWxsZXQpIGFuZCAoaW5kaXJlY3RseSB2aWEgdGhhdCkgYWxzbyBhXG4gICAgLy8gbmV3IGxleGVyIChtb3V0aCkgZm9yIHRoaXMgcGFyc2VyIChzdG9tYWNoLCBpbiB0aGUgbGFuZ3VhZ2Ugb2YgVGVYKVxuXG4gICAgdGhpcy5ndWxsZXQgPSBuZXcgTWFjcm9FeHBhbmRlcihpbnB1dCwgc2V0dGluZ3MsIHRoaXMubW9kZSk7IC8vIFN0b3JlIHRoZSBzZXR0aW5ncyBmb3IgdXNlIGluIHBhcnNpbmdcblxuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5nczsgLy8gQ291bnQgbGVmdHJpZ2h0IGRlcHRoIChmb3IgXFxtaWRkbGUgZXJyb3JzKVxuXG4gICAgdGhpcy5sZWZ0cmlnaHREZXB0aCA9IDA7XG4gIH1cbiAgLyoqXG4gICAqIENoZWNrcyBhIHJlc3VsdCB0byBtYWtlIHN1cmUgaXQgaGFzIHRoZSByaWdodCB0eXBlLCBhbmQgdGhyb3dzIGFuXG4gICAqIGFwcHJvcHJpYXRlIGVycm9yIG90aGVyd2lzZS5cbiAgICovXG5cblxuICBleHBlY3QodGV4dCwgY29uc3VtZSkge1xuICAgIGlmIChjb25zdW1lID09PSB2b2lkIDApIHtcbiAgICAgIGNvbnN1bWUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZldGNoKCkudGV4dCAhPT0gdGV4dCkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJFeHBlY3RlZCAnXCIgKyB0ZXh0ICsgXCInLCBnb3QgJ1wiICsgdGhpcy5mZXRjaCgpLnRleHQgKyBcIidcIiwgdGhpcy5mZXRjaCgpKTtcbiAgICB9XG5cbiAgICBpZiAoY29uc3VtZSkge1xuICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBEaXNjYXJkcyB0aGUgY3VycmVudCBsb29rYWhlYWQgdG9rZW4sIGNvbnNpZGVyaW5nIGl0IGNvbnN1bWVkLlxuICAgKi9cblxuXG4gIGNvbnN1bWUoKSB7XG4gICAgdGhpcy5uZXh0VG9rZW4gPSBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgbG9va2FoZWFkIHRva2VuLCBvciBpZiB0aGVyZSBpc24ndCBvbmUgKGF0IHRoZVxuICAgKiBiZWdpbm5pbmcsIG9yIGlmIHRoZSBwcmV2aW91cyBsb29rYWhlYWQgdG9rZW4gd2FzIGNvbnN1bWUoKWQpLFxuICAgKiBmZXRjaCB0aGUgbmV4dCB0b2tlbiBhcyB0aGUgbmV3IGxvb2thaGVhZCB0b2tlbiBhbmQgcmV0dXJuIGl0LlxuICAgKi9cblxuXG4gIGZldGNoKCkge1xuICAgIGlmICh0aGlzLm5leHRUb2tlbiA9PSBudWxsKSB7XG4gICAgICB0aGlzLm5leHRUb2tlbiA9IHRoaXMuZ3VsbGV0LmV4cGFuZE5leHRUb2tlbigpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm5leHRUb2tlbjtcbiAgfVxuICAvKipcbiAgICogU3dpdGNoZXMgYmV0d2VlbiBcInRleHRcIiBhbmQgXCJtYXRoXCIgbW9kZXMuXG4gICAqL1xuXG5cbiAgc3dpdGNoTW9kZShuZXdNb2RlKSB7XG4gICAgdGhpcy5tb2RlID0gbmV3TW9kZTtcbiAgICB0aGlzLmd1bGxldC5zd2l0Y2hNb2RlKG5ld01vZGUpO1xuICB9XG4gIC8qKlxuICAgKiBNYWluIHBhcnNpbmcgZnVuY3Rpb24sIHdoaWNoIHBhcnNlcyBhbiBlbnRpcmUgaW5wdXQuXG4gICAqL1xuXG5cbiAgcGFyc2UoKSB7XG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLmdsb2JhbEdyb3VwKSB7XG4gICAgICAvLyBDcmVhdGUgYSBncm91cCBuYW1lc3BhY2UgZm9yIHRoZSBtYXRoIGV4cHJlc3Npb24uXG4gICAgICAvLyAoTGFUZVggY3JlYXRlcyBhIG5ldyBncm91cCBmb3IgZXZlcnkgJC4uLiQsICQkLi4uJCQsIFxcWy4uLlxcXS4pXG4gICAgICB0aGlzLmd1bGxldC5iZWdpbkdyb3VwKCk7XG4gICAgfSAvLyBVc2Ugb2xkIFxcY29sb3IgYmVoYXZpb3IgKHNhbWUgYXMgTGFUZVgncyBcXHRleHRjb2xvcikgaWYgcmVxdWVzdGVkLlxuICAgIC8vIFdlIGRvIHRoaXMgd2l0aGluIHRoZSBncm91cCBmb3IgdGhlIG1hdGggZXhwcmVzc2lvbiwgc28gaXQgZG9lc24ndFxuICAgIC8vIHBvbGx1dGUgc2V0dGluZ3MubWFjcm9zLlxuXG5cbiAgICBpZiAodGhpcy5zZXR0aW5ncy5jb2xvcklzVGV4dENvbG9yKSB7XG4gICAgICB0aGlzLmd1bGxldC5tYWNyb3Muc2V0KFwiXFxcXGNvbG9yXCIsIFwiXFxcXHRleHRjb2xvclwiKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gVHJ5IHRvIHBhcnNlIHRoZSBpbnB1dFxuICAgICAgdmFyIHBhcnNlID0gdGhpcy5wYXJzZUV4cHJlc3Npb24oZmFsc2UpOyAvLyBJZiB3ZSBzdWNjZWVkZWQsIG1ha2Ugc3VyZSB0aGVyZSdzIGFuIEVPRiBhdCB0aGUgZW5kXG5cbiAgICAgIHRoaXMuZXhwZWN0KFwiRU9GXCIpOyAvLyBFbmQgdGhlIGdyb3VwIG5hbWVzcGFjZSBmb3IgdGhlIGV4cHJlc3Npb25cblxuICAgICAgaWYgKCF0aGlzLnNldHRpbmdzLmdsb2JhbEdyb3VwKSB7XG4gICAgICAgIHRoaXMuZ3VsbGV0LmVuZEdyb3VwKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYXJzZTsgLy8gQ2xvc2UgYW55IGxlZnRvdmVyIGdyb3VwcyBpbiBjYXNlIG9mIGEgcGFyc2UgZXJyb3IuXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuZ3VsbGV0LmVuZEdyb3VwcygpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogRnVsbHkgcGFyc2UgYSBzZXBhcmF0ZSBzZXF1ZW5jZSBvZiB0b2tlbnMgYXMgYSBzZXBhcmF0ZSBqb2IuXG4gICAqIFRva2VucyBzaG91bGQgYmUgc3BlY2lmaWVkIGluIHJldmVyc2Ugb3JkZXIsIGFzIGluIGEgTWFjcm9EZWZpbml0aW9uLlxuICAgKi9cblxuXG4gIHN1YnBhcnNlKHRva2Vucykge1xuICAgIC8vIFNhdmUgdGhlIG5leHQgdG9rZW4gZnJvbSB0aGUgY3VycmVudCBqb2IuXG4gICAgdmFyIG9sZFRva2VuID0gdGhpcy5uZXh0VG9rZW47XG4gICAgdGhpcy5jb25zdW1lKCk7IC8vIFJ1biB0aGUgbmV3IGpvYiwgdGVybWluYXRpbmcgaXQgd2l0aCBhbiBleGNlc3MgJ30nXG5cbiAgICB0aGlzLmd1bGxldC5wdXNoVG9rZW4obmV3IFRva2VuKFwifVwiKSk7XG4gICAgdGhpcy5ndWxsZXQucHVzaFRva2Vucyh0b2tlbnMpO1xuICAgIHZhciBwYXJzZSA9IHRoaXMucGFyc2VFeHByZXNzaW9uKGZhbHNlKTtcbiAgICB0aGlzLmV4cGVjdChcIn1cIik7IC8vIFJlc3RvcmUgdGhlIG5leHQgdG9rZW4gZnJvbSB0aGUgY3VycmVudCBqb2IuXG5cbiAgICB0aGlzLm5leHRUb2tlbiA9IG9sZFRva2VuO1xuICAgIHJldHVybiBwYXJzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgYW4gXCJleHByZXNzaW9uXCIsIHdoaWNoIGlzIGEgbGlzdCBvZiBhdG9tcy5cbiAgICpcbiAgICogYGJyZWFrT25JbmZpeGA6IFNob3VsZCB0aGUgcGFyc2luZyBzdG9wIHdoZW4gd2UgaGl0IGluZml4IG5vZGVzPyBUaGlzXG4gICAqICAgICAgICAgICAgICAgICBoYXBwZW5zIHdoZW4gZnVuY3Rpb25zIGhhdmUgaGlnaGVyIHByZWNlZGVuY2UgaGFuIGluZml4XG4gICAqICAgICAgICAgICAgICAgICBub2RlcyBpbiBpbXBsaWNpdCBwYXJzZXMuXG4gICAqXG4gICAqIGBicmVha09uVG9rZW5UZXh0YDogVGhlIHRleHQgb2YgdGhlIHRva2VuIHRoYXQgdGhlIGV4cHJlc3Npb24gc2hvdWxkIGVuZFxuICAgKiAgICAgICAgICAgICAgICAgICAgIHdpdGgsIG9yIGBudWxsYCBpZiBzb21ldGhpbmcgZWxzZSBzaG91bGQgZW5kIHRoZVxuICAgKiAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb24uXG4gICAqL1xuICBwYXJzZUV4cHJlc3Npb24oYnJlYWtPbkluZml4LCBicmVha09uVG9rZW5UZXh0KSB7XG4gICAgdmFyIGJvZHkgPSBbXTsgLy8gS2VlcCBhZGRpbmcgYXRvbXMgdG8gdGhlIGJvZHkgdW50aWwgd2UgY2FuJ3QgcGFyc2UgYW55IG1vcmUgYXRvbXMgKGVpdGhlclxuICAgIC8vIHdlIHJlYWNoZWQgdGhlIGVuZCwgYSB9LCBvciBhIFxccmlnaHQpXG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgLy8gSWdub3JlIHNwYWNlcyBpbiBtYXRoIG1vZGVcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09IFwibWF0aFwiKSB7XG4gICAgICAgIHRoaXMuY29uc3VtZVNwYWNlcygpO1xuICAgICAgfVxuXG4gICAgICB2YXIgbGV4ID0gdGhpcy5mZXRjaCgpO1xuXG4gICAgICBpZiAoUGFyc2VyLmVuZE9mRXhwcmVzc2lvbi5pbmRleE9mKGxleC50ZXh0KSAhPT0gLTEpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChicmVha09uVG9rZW5UZXh0ICYmIGxleC50ZXh0ID09PSBicmVha09uVG9rZW5UZXh0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoYnJlYWtPbkluZml4ICYmIGZ1bmN0aW9uc1tsZXgudGV4dF0gJiYgZnVuY3Rpb25zW2xleC50ZXh0XS5pbmZpeCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgdmFyIGF0b20gPSB0aGlzLnBhcnNlQXRvbShicmVha09uVG9rZW5UZXh0KTtcblxuICAgICAgaWYgKCFhdG9tKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIGlmIChhdG9tLnR5cGUgPT09IFwiaW50ZXJuYWxcIikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgYm9keS5wdXNoKGF0b20pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1vZGUgPT09IFwidGV4dFwiKSB7XG4gICAgICB0aGlzLmZvcm1MaWdhdHVyZXMoYm9keSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlSW5maXhOb2Rlcyhib2R5KTtcbiAgfVxuICAvKipcbiAgICogUmV3cml0ZXMgaW5maXggb3BlcmF0b3JzIHN1Y2ggYXMgXFxvdmVyIHdpdGggY29ycmVzcG9uZGluZyBjb21tYW5kcyBzdWNoXG4gICAqIGFzIFxcZnJhYy5cbiAgICpcbiAgICogVGhlcmUgY2FuIG9ubHkgYmUgb25lIGluZml4IG9wZXJhdG9yIHBlciBncm91cC4gIElmIHRoZXJlJ3MgbW9yZSB0aGFuIG9uZVxuICAgKiB0aGVuIHRoZSBleHByZXNzaW9uIGlzIGFtYmlndW91cy4gIFRoaXMgY2FuIGJlIHJlc29sdmVkIGJ5IGFkZGluZyB7fS5cbiAgICovXG5cblxuICBoYW5kbGVJbmZpeE5vZGVzKGJvZHkpIHtcbiAgICB2YXIgb3ZlckluZGV4ID0gLTE7XG4gICAgdmFyIGZ1bmNOYW1lO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib2R5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYm9keVtpXS50eXBlID09PSBcImluZml4XCIpIHtcbiAgICAgICAgaWYgKG92ZXJJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIm9ubHkgb25lIGluZml4IG9wZXJhdG9yIHBlciBncm91cFwiLCBib2R5W2ldLnRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG92ZXJJbmRleCA9IGk7XG4gICAgICAgIGZ1bmNOYW1lID0gYm9keVtpXS5yZXBsYWNlV2l0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3ZlckluZGV4ICE9PSAtMSAmJiBmdW5jTmFtZSkge1xuICAgICAgdmFyIG51bWVyTm9kZTtcbiAgICAgIHZhciBkZW5vbU5vZGU7XG4gICAgICB2YXIgbnVtZXJCb2R5ID0gYm9keS5zbGljZSgwLCBvdmVySW5kZXgpO1xuICAgICAgdmFyIGRlbm9tQm9keSA9IGJvZHkuc2xpY2Uob3ZlckluZGV4ICsgMSk7XG5cbiAgICAgIGlmIChudW1lckJvZHkubGVuZ3RoID09PSAxICYmIG51bWVyQm9keVswXS50eXBlID09PSBcIm9yZGdyb3VwXCIpIHtcbiAgICAgICAgbnVtZXJOb2RlID0gbnVtZXJCb2R5WzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbnVtZXJOb2RlID0ge1xuICAgICAgICAgIHR5cGU6IFwib3JkZ3JvdXBcIixcbiAgICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgICAgYm9keTogbnVtZXJCb2R5XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChkZW5vbUJvZHkubGVuZ3RoID09PSAxICYmIGRlbm9tQm9keVswXS50eXBlID09PSBcIm9yZGdyb3VwXCIpIHtcbiAgICAgICAgZGVub21Ob2RlID0gZGVub21Cb2R5WzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVub21Ob2RlID0ge1xuICAgICAgICAgIHR5cGU6IFwib3JkZ3JvdXBcIixcbiAgICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgICAgYm9keTogZGVub21Cb2R5XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHZhciBub2RlO1xuXG4gICAgICBpZiAoZnVuY05hbWUgPT09IFwiXFxcXFxcXFxhYm92ZWZyYWNcIikge1xuICAgICAgICBub2RlID0gdGhpcy5jYWxsRnVuY3Rpb24oZnVuY05hbWUsIFtudW1lck5vZGUsIGJvZHlbb3ZlckluZGV4XSwgZGVub21Ob2RlXSwgW10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZSA9IHRoaXMuY2FsbEZ1bmN0aW9uKGZ1bmNOYW1lLCBbbnVtZXJOb2RlLCBkZW5vbU5vZGVdLCBbXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbbm9kZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBib2R5O1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogSGFuZGxlIGEgc3Vic2NyaXB0IG9yIHN1cGVyc2NyaXB0IHdpdGggbmljZSBlcnJvcnMuXG4gICAqL1xuXG5cbiAgaGFuZGxlU3VwU3Vic2NyaXB0KG5hbWUgLy8gRm9yIGVycm9yIHJlcG9ydGluZy5cbiAgKSB7XG4gICAgdmFyIHN5bWJvbFRva2VuID0gdGhpcy5mZXRjaCgpO1xuICAgIHZhciBzeW1ib2wgPSBzeW1ib2xUb2tlbi50ZXh0O1xuICAgIHRoaXMuY29uc3VtZSgpO1xuICAgIHRoaXMuY29uc3VtZVNwYWNlcygpOyAvLyBpZ25vcmUgc3BhY2VzIGJlZm9yZSBzdXAvc3Vic2NyaXB0IGFyZ3VtZW50XG5cbiAgICB2YXIgZ3JvdXAgPSB0aGlzLnBhcnNlR3JvdXAobmFtZSk7XG5cbiAgICBpZiAoIWdyb3VwKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkV4cGVjdGVkIGdyb3VwIGFmdGVyICdcIiArIHN5bWJvbCArIFwiJ1wiLCBzeW1ib2xUb2tlbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgdGV4dHVhbCBpbnB1dCBvZiBhbiB1bnN1cHBvcnRlZCBjb21tYW5kIGludG8gYSB0ZXh0IG5vZGVcbiAgICogY29udGFpbmVkIHdpdGhpbiBhIGNvbG9yIG5vZGUgd2hvc2UgY29sb3IgaXMgZGV0ZXJtaW5lZCBieSBlcnJvckNvbG9yXG4gICAqL1xuXG5cbiAgZm9ybWF0VW5zdXBwb3J0ZWRDbWQodGV4dCkge1xuICAgIHZhciB0ZXh0b3JkQXJyYXkgPSBbXTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgdGV4dG9yZEFycmF5LnB1c2goe1xuICAgICAgICB0eXBlOiBcInRleHRvcmRcIixcbiAgICAgICAgbW9kZTogXCJ0ZXh0XCIsXG4gICAgICAgIHRleHQ6IHRleHRbaV1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhciB0ZXh0Tm9kZSA9IHtcbiAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgYm9keTogdGV4dG9yZEFycmF5XG4gICAgfTtcbiAgICB2YXIgY29sb3JOb2RlID0ge1xuICAgICAgdHlwZTogXCJjb2xvclwiLFxuICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgY29sb3I6IHRoaXMuc2V0dGluZ3MuZXJyb3JDb2xvcixcbiAgICAgIGJvZHk6IFt0ZXh0Tm9kZV1cbiAgICB9O1xuICAgIHJldHVybiBjb2xvck5vZGU7XG4gIH1cbiAgLyoqXG4gICAqIFBhcnNlcyBhIGdyb3VwIHdpdGggb3B0aW9uYWwgc3VwZXIvc3Vic2NyaXB0cy5cbiAgICovXG5cblxuICBwYXJzZUF0b20oYnJlYWtPblRva2VuVGV4dCkge1xuICAgIC8vIFRoZSBib2R5IG9mIGFuIGF0b20gaXMgYW4gaW1wbGljaXQgZ3JvdXAsIHNvIHRoYXQgdGhpbmdzIGxpa2VcbiAgICAvLyBcXGxlZnQoeFxccmlnaHQpXjIgd29yayBjb3JyZWN0bHkuXG4gICAgdmFyIGJhc2UgPSB0aGlzLnBhcnNlR3JvdXAoXCJhdG9tXCIsIGJyZWFrT25Ub2tlblRleHQpOyAvLyBJbiB0ZXh0IG1vZGUsIHdlIGRvbid0IGhhdmUgc3VwZXJzY3JpcHRzIG9yIHN1YnNjcmlwdHNcblxuICAgIGlmICh0aGlzLm1vZGUgPT09IFwidGV4dFwiKSB7XG4gICAgICByZXR1cm4gYmFzZTtcbiAgICB9IC8vIE5vdGUgdGhhdCBiYXNlIG1heSBiZSBlbXB0eSAoaS5lLiBudWxsKSBhdCB0aGlzIHBvaW50LlxuXG5cbiAgICB2YXIgc3VwZXJzY3JpcHQ7XG4gICAgdmFyIHN1YnNjcmlwdDtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAvLyBHdWFyYW50ZWVkIGluIG1hdGggbW9kZSwgc28gZWF0IGFueSBzcGFjZXMgZmlyc3QuXG4gICAgICB0aGlzLmNvbnN1bWVTcGFjZXMoKTsgLy8gTGV4IHRoZSBmaXJzdCB0b2tlblxuXG4gICAgICB2YXIgbGV4ID0gdGhpcy5mZXRjaCgpO1xuXG4gICAgICBpZiAobGV4LnRleHQgPT09IFwiXFxcXGxpbWl0c1wiIHx8IGxleC50ZXh0ID09PSBcIlxcXFxub2xpbWl0c1wiKSB7XG4gICAgICAgIC8vIFdlIGdvdCBhIGxpbWl0IGNvbnRyb2xcbiAgICAgICAgaWYgKGJhc2UgJiYgYmFzZS50eXBlID09PSBcIm9wXCIpIHtcbiAgICAgICAgICB2YXIgbGltaXRzID0gbGV4LnRleHQgPT09IFwiXFxcXGxpbWl0c1wiO1xuICAgICAgICAgIGJhc2UubGltaXRzID0gbGltaXRzO1xuICAgICAgICAgIGJhc2UuYWx3YXlzSGFuZGxlU3VwU3ViID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChiYXNlICYmIGJhc2UudHlwZSA9PT0gXCJvcGVyYXRvcm5hbWVcIikge1xuICAgICAgICAgIGlmIChiYXNlLmFsd2F5c0hhbmRsZVN1cFN1Yikge1xuICAgICAgICAgICAgYmFzZS5saW1pdHMgPSBsZXgudGV4dCA9PT0gXCJcXFxcbGltaXRzXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiTGltaXQgY29udHJvbHMgbXVzdCBmb2xsb3cgYSBtYXRoIG9wZXJhdG9yXCIsIGxleCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgIH0gZWxzZSBpZiAobGV4LnRleHQgPT09IFwiXlwiKSB7XG4gICAgICAgIC8vIFdlIGdvdCBhIHN1cGVyc2NyaXB0IHN0YXJ0XG4gICAgICAgIGlmIChzdXBlcnNjcmlwdCkge1xuICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiRG91YmxlIHN1cGVyc2NyaXB0XCIsIGxleCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlcnNjcmlwdCA9IHRoaXMuaGFuZGxlU3VwU3Vic2NyaXB0KFwic3VwZXJzY3JpcHRcIik7XG4gICAgICB9IGVsc2UgaWYgKGxleC50ZXh0ID09PSBcIl9cIikge1xuICAgICAgICAvLyBXZSBnb3QgYSBzdWJzY3JpcHQgc3RhcnRcbiAgICAgICAgaWYgKHN1YnNjcmlwdCkge1xuICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiRG91YmxlIHN1YnNjcmlwdFwiLCBsZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3Vic2NyaXB0ID0gdGhpcy5oYW5kbGVTdXBTdWJzY3JpcHQoXCJzdWJzY3JpcHRcIik7XG4gICAgICB9IGVsc2UgaWYgKGxleC50ZXh0ID09PSBcIidcIikge1xuICAgICAgICAvLyBXZSBnb3QgYSBwcmltZVxuICAgICAgICBpZiAoc3VwZXJzY3JpcHQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkRvdWJsZSBzdXBlcnNjcmlwdFwiLCBsZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHByaW1lID0ge1xuICAgICAgICAgIHR5cGU6IFwidGV4dG9yZFwiLFxuICAgICAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgICAgICB0ZXh0OiBcIlxcXFxwcmltZVwiXG4gICAgICAgIH07IC8vIE1hbnkgcHJpbWVzIGNhbiBiZSBncm91cGVkIHRvZ2V0aGVyLCBzbyB3ZSBoYW5kbGUgdGhpcyBoZXJlXG5cbiAgICAgICAgdmFyIHByaW1lcyA9IFtwcmltZV07XG4gICAgICAgIHRoaXMuY29uc3VtZSgpOyAvLyBLZWVwIGxleGluZyB0b2tlbnMgdW50aWwgd2UgZ2V0IHNvbWV0aGluZyB0aGF0J3Mgbm90IGEgcHJpbWVcblxuICAgICAgICB3aGlsZSAodGhpcy5mZXRjaCgpLnRleHQgPT09IFwiJ1wiKSB7XG4gICAgICAgICAgLy8gRm9yIGVhY2ggb25lLCBhZGQgYW5vdGhlciBwcmltZSB0byB0aGUgbGlzdFxuICAgICAgICAgIHByaW1lcy5wdXNoKHByaW1lKTtcbiAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgfSAvLyBJZiB0aGVyZSdzIGEgc3VwZXJzY3JpcHQgZm9sbG93aW5nIHRoZSBwcmltZXMsIGNvbWJpbmUgdGhhdFxuICAgICAgICAvLyBzdXBlcnNjcmlwdCBpbiB3aXRoIHRoZSBwcmltZXMuXG5cblxuICAgICAgICBpZiAodGhpcy5mZXRjaCgpLnRleHQgPT09IFwiXlwiKSB7XG4gICAgICAgICAgcHJpbWVzLnB1c2godGhpcy5oYW5kbGVTdXBTdWJzY3JpcHQoXCJzdXBlcnNjcmlwdFwiKSk7XG4gICAgICAgIH0gLy8gUHV0IGV2ZXJ5dGhpbmcgaW50byBhbiBvcmRncm91cCBhcyB0aGUgc3VwZXJzY3JpcHRcblxuXG4gICAgICAgIHN1cGVyc2NyaXB0ID0ge1xuICAgICAgICAgIHR5cGU6IFwib3JkZ3JvdXBcIixcbiAgICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgICAgYm9keTogcHJpbWVzXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKHVTdWJzQW5kU3Vwc1tsZXgudGV4dF0pIHtcbiAgICAgICAgLy8gQSBVbmljb2RlIHN1YnNjcmlwdCBvciBzdXBlcnNjcmlwdCBjaGFyYWN0ZXIuXG4gICAgICAgIC8vIFdlIHRyZWF0IHRoZXNlIHNpbWlsYXJseSB0byB0aGUgdW5pY29kZS1tYXRoIHBhY2thZ2UuXG4gICAgICAgIC8vIFNvIHdlIHJlbmRlciBhIHN0cmluZyBvZiBVbmljb2RlIChzdWJ8c3VwZXIpc2NyaXB0cyB0aGVcbiAgICAgICAgLy8gc2FtZSBhcyBhIChzdWJ8c3VwZXIpc2NyaXB0IG9mIHJlZ3VsYXIgY2hhcmFjdGVycy5cbiAgICAgICAgdmFyIGlzU3ViID0gdW5pY29kZVN1YlJlZ0V4LnRlc3QobGV4LnRleHQpO1xuICAgICAgICB2YXIgc3Vic3VwVG9rZW5zID0gW107XG4gICAgICAgIHN1YnN1cFRva2Vucy5wdXNoKG5ldyBUb2tlbih1U3Vic0FuZFN1cHNbbGV4LnRleHRdKSk7XG4gICAgICAgIHRoaXMuY29uc3VtZSgpOyAvLyBDb250aW51ZSBmZXRjaGluZyB0b2tlbnMgdG8gZmlsbCBvdXQgdGhlIHN0cmluZy5cblxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgIHZhciB0b2tlbiA9IHRoaXMuZmV0Y2goKS50ZXh0O1xuXG4gICAgICAgICAgaWYgKCF1U3Vic0FuZFN1cHNbdG9rZW5dKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodW5pY29kZVN1YlJlZ0V4LnRlc3QodG9rZW4pICE9PSBpc1N1Yikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3Vic3VwVG9rZW5zLnVuc2hpZnQobmV3IFRva2VuKHVTdWJzQW5kU3Vwc1t0b2tlbl0pKTtcbiAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgfSAvLyBOb3cgY3JlYXRlIGEgKHN1YnxzdXBlcilzY3JpcHQuXG5cblxuICAgICAgICB2YXIgYm9keSA9IHRoaXMuc3VicGFyc2Uoc3Vic3VwVG9rZW5zKTtcblxuICAgICAgICBpZiAoaXNTdWIpIHtcbiAgICAgICAgICBzdWJzY3JpcHQgPSB7XG4gICAgICAgICAgICB0eXBlOiBcIm9yZGdyb3VwXCIsXG4gICAgICAgICAgICBtb2RlOiBcIm1hdGhcIixcbiAgICAgICAgICAgIGJvZHlcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN1cGVyc2NyaXB0ID0ge1xuICAgICAgICAgICAgdHlwZTogXCJvcmRncm91cFwiLFxuICAgICAgICAgICAgbW9kZTogXCJtYXRoXCIsXG4gICAgICAgICAgICBib2R5XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWYgaXQgd2Fzbid0IF4sIF8sIG9yICcsIHN0b3AgcGFyc2luZyBzdXBlci9zdWJzY3JpcHRzXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gLy8gQmFzZSBtdXN0IGJlIHNldCBpZiBzdXBlcnNjcmlwdCBvciBzdWJzY3JpcHQgYXJlIHNldCBwZXIgbG9naWMgYWJvdmUsXG4gICAgLy8gYnV0IG5lZWQgdG8gY2hlY2sgaGVyZSBmb3IgdHlwZSBjaGVjayB0byBwYXNzLlxuXG5cbiAgICBpZiAoc3VwZXJzY3JpcHQgfHwgc3Vic2NyaXB0KSB7XG4gICAgICAvLyBJZiB3ZSBnb3QgZWl0aGVyIGEgc3VwZXJzY3JpcHQgb3Igc3Vic2NyaXB0LCBjcmVhdGUgYSBzdXBzdWJcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwic3Vwc3ViXCIsXG4gICAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgICAgYmFzZTogYmFzZSxcbiAgICAgICAgc3VwOiBzdXBlcnNjcmlwdCxcbiAgICAgICAgc3ViOiBzdWJzY3JpcHRcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE90aGVyd2lzZSByZXR1cm4gdGhlIG9yaWdpbmFsIGJvZHlcbiAgICAgIHJldHVybiBiYXNlO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogUGFyc2VzIGFuIGVudGlyZSBmdW5jdGlvbiwgaW5jbHVkaW5nIGl0cyBiYXNlIGFuZCBhbGwgb2YgaXRzIGFyZ3VtZW50cy5cbiAgICovXG5cblxuICBwYXJzZUZ1bmN0aW9uKGJyZWFrT25Ub2tlblRleHQsIG5hbWUgLy8gRm9yIGRldGVybWluaW5nIGl0cyBjb250ZXh0XG4gICkge1xuICAgIHZhciB0b2tlbiA9IHRoaXMuZmV0Y2goKTtcbiAgICB2YXIgZnVuYyA9IHRva2VuLnRleHQ7XG4gICAgdmFyIGZ1bmNEYXRhID0gZnVuY3Rpb25zW2Z1bmNdO1xuXG4gICAgaWYgKCFmdW5jRGF0YSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5jb25zdW1lKCk7IC8vIGNvbnN1bWUgY29tbWFuZCB0b2tlblxuXG4gICAgaWYgKG5hbWUgJiYgbmFtZSAhPT0gXCJhdG9tXCIgJiYgIWZ1bmNEYXRhLmFsbG93ZWRJbkFyZ3VtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkdvdCBmdW5jdGlvbiAnXCIgKyBmdW5jICsgXCInIHdpdGggbm8gYXJndW1lbnRzXCIgKyAobmFtZSA/IFwiIGFzIFwiICsgbmFtZSA6IFwiXCIpLCB0b2tlbik7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09IFwidGV4dFwiICYmICFmdW5jRGF0YS5hbGxvd2VkSW5UZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkNhbid0IHVzZSBmdW5jdGlvbiAnXCIgKyBmdW5jICsgXCInIGluIHRleHQgbW9kZVwiLCB0b2tlbik7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09IFwibWF0aFwiICYmIGZ1bmNEYXRhLmFsbG93ZWRJbk1hdGggPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkNhbid0IHVzZSBmdW5jdGlvbiAnXCIgKyBmdW5jICsgXCInIGluIG1hdGggbW9kZVwiLCB0b2tlbik7XG4gICAgfVxuXG4gICAgdmFyIHtcbiAgICAgIGFyZ3MsXG4gICAgICBvcHRBcmdzXG4gICAgfSA9IHRoaXMucGFyc2VBcmd1bWVudHMoZnVuYywgZnVuY0RhdGEpO1xuICAgIHJldHVybiB0aGlzLmNhbGxGdW5jdGlvbihmdW5jLCBhcmdzLCBvcHRBcmdzLCB0b2tlbiwgYnJlYWtPblRva2VuVGV4dCk7XG4gIH1cbiAgLyoqXG4gICAqIENhbGwgYSBmdW5jdGlvbiBoYW5kbGVyIHdpdGggYSBzdWl0YWJsZSBjb250ZXh0IGFuZCBhcmd1bWVudHMuXG4gICAqL1xuXG5cbiAgY2FsbEZ1bmN0aW9uKG5hbWUsIGFyZ3MsIG9wdEFyZ3MsIHRva2VuLCBicmVha09uVG9rZW5UZXh0KSB7XG4gICAgdmFyIGNvbnRleHQgPSB7XG4gICAgICBmdW5jTmFtZTogbmFtZSxcbiAgICAgIHBhcnNlcjogdGhpcyxcbiAgICAgIHRva2VuLFxuICAgICAgYnJlYWtPblRva2VuVGV4dFxuICAgIH07XG4gICAgdmFyIGZ1bmMgPSBmdW5jdGlvbnNbbmFtZV07XG5cbiAgICBpZiAoZnVuYyAmJiBmdW5jLmhhbmRsZXIpIHtcbiAgICAgIHJldHVybiBmdW5jLmhhbmRsZXIoY29udGV4dCwgYXJncywgb3B0QXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiTm8gZnVuY3Rpb24gaGFuZGxlciBmb3IgXCIgKyBuYW1lKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFBhcnNlcyB0aGUgYXJndW1lbnRzIG9mIGEgZnVuY3Rpb24gb3IgZW52aXJvbm1lbnRcbiAgICovXG5cblxuICBwYXJzZUFyZ3VtZW50cyhmdW5jLCAvLyBTaG91bGQgbG9vayBsaWtlIFwiXFxuYW1lXCIgb3IgXCJcXGJlZ2lue25hbWV9XCIuXG4gIGZ1bmNEYXRhKSB7XG4gICAgdmFyIHRvdGFsQXJncyA9IGZ1bmNEYXRhLm51bUFyZ3MgKyBmdW5jRGF0YS5udW1PcHRpb25hbEFyZ3M7XG5cbiAgICBpZiAodG90YWxBcmdzID09PSAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhcmdzOiBbXSxcbiAgICAgICAgb3B0QXJnczogW11cbiAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIGFyZ3MgPSBbXTtcbiAgICB2YXIgb3B0QXJncyA9IFtdO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b3RhbEFyZ3M7IGkrKykge1xuICAgICAgdmFyIGFyZ1R5cGUgPSBmdW5jRGF0YS5hcmdUeXBlcyAmJiBmdW5jRGF0YS5hcmdUeXBlc1tpXTtcbiAgICAgIHZhciBpc09wdGlvbmFsID0gaSA8IGZ1bmNEYXRhLm51bU9wdGlvbmFsQXJncztcblxuICAgICAgaWYgKGZ1bmNEYXRhLnByaW1pdGl2ZSAmJiBhcmdUeXBlID09IG51bGwgfHwgLy8gXFxzcXJ0IGV4cGFuZHMgaW50byBwcmltaXRpdmUgaWYgb3B0aW9uYWwgYXJndW1lbnQgZG9lc24ndCBleGlzdFxuICAgICAgZnVuY0RhdGEudHlwZSA9PT0gXCJzcXJ0XCIgJiYgaSA9PT0gMSAmJiBvcHRBcmdzWzBdID09IG51bGwpIHtcbiAgICAgICAgYXJnVHlwZSA9IFwicHJpbWl0aXZlXCI7XG4gICAgICB9XG5cbiAgICAgIHZhciBhcmcgPSB0aGlzLnBhcnNlR3JvdXBPZlR5cGUoXCJhcmd1bWVudCB0byAnXCIgKyBmdW5jICsgXCInXCIsIGFyZ1R5cGUsIGlzT3B0aW9uYWwpO1xuXG4gICAgICBpZiAoaXNPcHRpb25hbCkge1xuICAgICAgICBvcHRBcmdzLnB1c2goYXJnKTtcbiAgICAgIH0gZWxzZSBpZiAoYXJnICE9IG51bGwpIHtcbiAgICAgICAgYXJncy5wdXNoKGFyZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzaG91bGQgYmUgdW5yZWFjaGFibGVcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJOdWxsIGFyZ3VtZW50LCBwbGVhc2UgcmVwb3J0IHRoaXMgYXMgYSBidWdcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3MsXG4gICAgICBvcHRBcmdzXG4gICAgfTtcbiAgfVxuICAvKipcbiAgICogUGFyc2VzIGEgZ3JvdXAgd2hlbiB0aGUgbW9kZSBpcyBjaGFuZ2luZy5cbiAgICovXG5cblxuICBwYXJzZUdyb3VwT2ZUeXBlKG5hbWUsIHR5cGUsIG9wdGlvbmFsKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFwiY29sb3JcIjpcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VDb2xvckdyb3VwKG9wdGlvbmFsKTtcblxuICAgICAgY2FzZSBcInNpemVcIjpcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VTaXplR3JvdXAob3B0aW9uYWwpO1xuXG4gICAgICBjYXNlIFwidXJsXCI6XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlVXJsR3JvdXAob3B0aW9uYWwpO1xuXG4gICAgICBjYXNlIFwibWF0aFwiOlxuICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VBcmd1bWVudEdyb3VwKG9wdGlvbmFsLCB0eXBlKTtcblxuICAgICAgY2FzZSBcImhib3hcIjpcbiAgICAgICAge1xuICAgICAgICAgIC8vIGhib3ggYXJndW1lbnQgdHlwZSB3cmFwcyB0aGUgYXJndW1lbnQgaW4gdGhlIGVxdWl2YWxlbnQgb2ZcbiAgICAgICAgICAvLyBcXGhib3gsIHdoaWNoIGlzIGxpa2UgXFx0ZXh0IGJ1dCBzd2l0Y2hpbmcgdG8gXFx0ZXh0c3R5bGUgc2l6ZS5cbiAgICAgICAgICB2YXIgZ3JvdXAgPSB0aGlzLnBhcnNlQXJndW1lbnRHcm91cChvcHRpb25hbCwgXCJ0ZXh0XCIpO1xuICAgICAgICAgIHJldHVybiBncm91cCAhPSBudWxsID8ge1xuICAgICAgICAgICAgdHlwZTogXCJzdHlsaW5nXCIsXG4gICAgICAgICAgICBtb2RlOiBncm91cC5tb2RlLFxuICAgICAgICAgICAgYm9keTogW2dyb3VwXSxcbiAgICAgICAgICAgIHN0eWxlOiBcInRleHRcIiAvLyBzaW11bGF0ZSBcXHRleHRzdHlsZVxuXG4gICAgICAgICAgfSA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBcInJhd1wiOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIHRva2VuID0gdGhpcy5wYXJzZVN0cmluZ0dyb3VwKFwicmF3XCIsIG9wdGlvbmFsKTtcbiAgICAgICAgICByZXR1cm4gdG9rZW4gIT0gbnVsbCA/IHtcbiAgICAgICAgICAgIHR5cGU6IFwicmF3XCIsXG4gICAgICAgICAgICBtb2RlOiBcInRleHRcIixcbiAgICAgICAgICAgIHN0cmluZzogdG9rZW4udGV4dFxuICAgICAgICAgIH0gOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgXCJwcmltaXRpdmVcIjpcbiAgICAgICAge1xuICAgICAgICAgIGlmIChvcHRpb25hbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJBIHByaW1pdGl2ZSBhcmd1bWVudCBjYW5ub3QgYmUgb3B0aW9uYWxcIik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIF9ncm91cCA9IHRoaXMucGFyc2VHcm91cChuYW1lKTtcblxuICAgICAgICAgIGlmIChfZ3JvdXAgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJFeHBlY3RlZCBncm91cCBhcyBcIiArIG5hbWUsIHRoaXMuZmV0Y2goKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIF9ncm91cDtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFwib3JpZ2luYWxcIjpcbiAgICAgIGNhc2UgbnVsbDpcbiAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUFyZ3VtZW50R3JvdXAob3B0aW9uYWwpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIlVua25vd24gZ3JvdXAgdHlwZSBhcyBcIiArIG5hbWUsIHRoaXMuZmV0Y2goKSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBEaXNjYXJkIGFueSBzcGFjZSB0b2tlbnMsIGZldGNoaW5nIHRoZSBuZXh0IG5vbi1zcGFjZSB0b2tlbi5cbiAgICovXG5cblxuICBjb25zdW1lU3BhY2VzKCkge1xuICAgIHdoaWxlICh0aGlzLmZldGNoKCkudGV4dCA9PT0gXCIgXCIpIHtcbiAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogUGFyc2VzIGEgZ3JvdXAsIGVzc2VudGlhbGx5IHJldHVybmluZyB0aGUgc3RyaW5nIGZvcm1lZCBieSB0aGVcbiAgICogYnJhY2UtZW5jbG9zZWQgdG9rZW5zIHBsdXMgc29tZSBwb3NpdGlvbiBpbmZvcm1hdGlvbi5cbiAgICovXG5cblxuICBwYXJzZVN0cmluZ0dyb3VwKG1vZGVOYW1lLCAvLyBVc2VkIHRvIGRlc2NyaWJlIHRoZSBtb2RlIGluIGVycm9yIG1lc3NhZ2VzLlxuICBvcHRpb25hbCkge1xuICAgIHZhciBhcmdUb2tlbiA9IHRoaXMuZ3VsbGV0LnNjYW5Bcmd1bWVudChvcHRpb25hbCk7XG5cbiAgICBpZiAoYXJnVG9rZW4gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIHN0ciA9IFwiXCI7XG4gICAgdmFyIG5leHRUb2tlbjtcblxuICAgIHdoaWxlICgobmV4dFRva2VuID0gdGhpcy5mZXRjaCgpKS50ZXh0ICE9PSBcIkVPRlwiKSB7XG4gICAgICBzdHIgKz0gbmV4dFRva2VuLnRleHQ7XG4gICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnN1bWUoKTsgLy8gY29uc3VtZSB0aGUgZW5kIG9mIHRoZSBhcmd1bWVudFxuXG4gICAgYXJnVG9rZW4udGV4dCA9IHN0cjtcbiAgICByZXR1cm4gYXJnVG9rZW47XG4gIH1cbiAgLyoqXG4gICAqIFBhcnNlcyBhIHJlZ2V4LWRlbGltaXRlZCBncm91cDogdGhlIGxhcmdlc3Qgc2VxdWVuY2Ugb2YgdG9rZW5zXG4gICAqIHdob3NlIGNvbmNhdGVuYXRlZCBzdHJpbmdzIG1hdGNoIGByZWdleGAuIFJldHVybnMgdGhlIHN0cmluZ1xuICAgKiBmb3JtZWQgYnkgdGhlIHRva2VucyBwbHVzIHNvbWUgcG9zaXRpb24gaW5mb3JtYXRpb24uXG4gICAqL1xuXG5cbiAgcGFyc2VSZWdleEdyb3VwKHJlZ2V4LCBtb2RlTmFtZSAvLyBVc2VkIHRvIGRlc2NyaWJlIHRoZSBtb2RlIGluIGVycm9yIG1lc3NhZ2VzLlxuICApIHtcbiAgICB2YXIgZmlyc3RUb2tlbiA9IHRoaXMuZmV0Y2goKTtcbiAgICB2YXIgbGFzdFRva2VuID0gZmlyc3RUb2tlbjtcbiAgICB2YXIgc3RyID0gXCJcIjtcbiAgICB2YXIgbmV4dFRva2VuO1xuXG4gICAgd2hpbGUgKChuZXh0VG9rZW4gPSB0aGlzLmZldGNoKCkpLnRleHQgIT09IFwiRU9GXCIgJiYgcmVnZXgudGVzdChzdHIgKyBuZXh0VG9rZW4udGV4dCkpIHtcbiAgICAgIGxhc3RUb2tlbiA9IG5leHRUb2tlbjtcbiAgICAgIHN0ciArPSBsYXN0VG9rZW4udGV4dDtcbiAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgIH1cblxuICAgIGlmIChzdHIgPT09IFwiXCIpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiSW52YWxpZCBcIiArIG1vZGVOYW1lICsgXCI6ICdcIiArIGZpcnN0VG9rZW4udGV4dCArIFwiJ1wiLCBmaXJzdFRva2VuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlyc3RUb2tlbi5yYW5nZShsYXN0VG9rZW4sIHN0cik7XG4gIH1cbiAgLyoqXG4gICAqIFBhcnNlcyBhIGNvbG9yIGRlc2NyaXB0aW9uLlxuICAgKi9cblxuXG4gIHBhcnNlQ29sb3JHcm91cChvcHRpb25hbCkge1xuICAgIHZhciByZXMgPSB0aGlzLnBhcnNlU3RyaW5nR3JvdXAoXCJjb2xvclwiLCBvcHRpb25hbCk7XG5cbiAgICBpZiAocmVzID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBtYXRjaCA9IC9eKCNbYS1mMC05XXszfXwjP1thLWYwLTldezZ9fFthLXpdKykkL2kuZXhlYyhyZXMudGV4dCk7XG5cbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkludmFsaWQgY29sb3I6ICdcIiArIHJlcy50ZXh0ICsgXCInXCIsIHJlcyk7XG4gICAgfVxuXG4gICAgdmFyIGNvbG9yID0gbWF0Y2hbMF07XG5cbiAgICBpZiAoL15bMC05YS1mXXs2fSQvaS50ZXN0KGNvbG9yKSkge1xuICAgICAgLy8gV2UgYWxsb3cgYSA2LWRpZ2l0IEhUTUwgY29sb3Igc3BlYyB3aXRob3V0IGEgbGVhZGluZyBcIiNcIi5cbiAgICAgIC8vIFRoaXMgZm9sbG93cyB0aGUgeGNvbG9yIHBhY2thZ2UncyBIVE1MIGNvbG9yIG1vZGVsLlxuICAgICAgLy8gUHJlZGVmaW5lZCBjb2xvciBuYW1lcyBhcmUgYWxsIG1pc3NlZCBieSB0aGlzIFJlZ0V4IHBhdHRlcm4uXG4gICAgICBjb2xvciA9IFwiI1wiICsgY29sb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiY29sb3ItdG9rZW5cIixcbiAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgIGNvbG9yXG4gICAgfTtcbiAgfVxuICAvKipcbiAgICogUGFyc2VzIGEgc2l6ZSBzcGVjaWZpY2F0aW9uLCBjb25zaXN0aW5nIG9mIG1hZ25pdHVkZSBhbmQgdW5pdC5cbiAgICovXG5cblxuICBwYXJzZVNpemVHcm91cChvcHRpb25hbCkge1xuICAgIHZhciByZXM7XG4gICAgdmFyIGlzQmxhbmsgPSBmYWxzZTsgLy8gZG9uJ3QgZXhwYW5kIGJlZm9yZSBwYXJzZVN0cmluZ0dyb3VwXG5cbiAgICB0aGlzLmd1bGxldC5jb25zdW1lU3BhY2VzKCk7XG5cbiAgICBpZiAoIW9wdGlvbmFsICYmIHRoaXMuZ3VsbGV0LmZ1dHVyZSgpLnRleHQgIT09IFwie1wiKSB7XG4gICAgICByZXMgPSB0aGlzLnBhcnNlUmVnZXhHcm91cCgvXlstK10/ICooPzokfFxcZCt8XFxkK1xcLlxcZCp8XFwuXFxkKikgKlthLXpdezAsMn0gKiQvLCBcInNpemVcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IHRoaXMucGFyc2VTdHJpbmdHcm91cChcInNpemVcIiwgb3B0aW9uYWwpO1xuICAgIH1cblxuICAgIGlmICghcmVzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbmFsICYmIHJlcy50ZXh0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gQmVjYXVzZSB3ZSd2ZSB0ZXN0ZWQgZm9yIHdoYXQgaXMgIW9wdGlvbmFsLCB0aGlzIGJsb2NrIHdvbid0XG4gICAgICAvLyBhZmZlY3QgXFxrZXJuLCBcXGhzcGFjZSwgZXRjLiBJdCB3aWxsIGNhcHR1cmUgdGhlIG1hbmRhdG9yeSBhcmd1bWVudHNcbiAgICAgIC8vIHRvIFxcZ2VuZnJhYyBhbmQgXFxhYm92ZS5cbiAgICAgIHJlcy50ZXh0ID0gXCIwcHRcIjsgLy8gRW5hYmxlIFxcYWJvdmV7fVxuXG4gICAgICBpc0JsYW5rID0gdHJ1ZTsgLy8gVGhpcyBpcyBoZXJlIHNwZWNpZmljYWxseSBmb3IgXFxnZW5mcmFjXG4gICAgfVxuXG4gICAgdmFyIG1hdGNoID0gLyhbLStdPykgKihcXGQrKD86XFwuXFxkKik/fFxcLlxcZCspICooW2Etel17Mn0pLy5leGVjKHJlcy50ZXh0KTtcblxuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiSW52YWxpZCBzaXplOiAnXCIgKyByZXMudGV4dCArIFwiJ1wiLCByZXMpO1xuICAgIH1cblxuICAgIHZhciBkYXRhID0ge1xuICAgICAgbnVtYmVyOiArKG1hdGNoWzFdICsgbWF0Y2hbMl0pLFxuICAgICAgLy8gc2lnbiArIG1hZ25pdHVkZSwgY2FzdCB0byBudW1iZXJcbiAgICAgIHVuaXQ6IG1hdGNoWzNdXG4gICAgfTtcblxuICAgIGlmICghdmFsaWRVbml0KGRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkludmFsaWQgdW5pdDogJ1wiICsgZGF0YS51bml0ICsgXCInXCIsIHJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwic2l6ZVwiLFxuICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgdmFsdWU6IGRhdGEsXG4gICAgICBpc0JsYW5rXG4gICAgfTtcbiAgfVxuICAvKipcbiAgICogUGFyc2VzIGFuIFVSTCwgY2hlY2tpbmcgZXNjYXBlZCBsZXR0ZXJzIGFuZCBhbGxvd2VkIHByb3RvY29scyxcbiAgICogYW5kIHNldHRpbmcgdGhlIGNhdGNvZGUgb2YgJSBhcyBhbiBhY3RpdmUgY2hhcmFjdGVyIChhcyBpbiBcXGh5cGVycmVmKS5cbiAgICovXG5cblxuICBwYXJzZVVybEdyb3VwKG9wdGlvbmFsKSB7XG4gICAgdGhpcy5ndWxsZXQubGV4ZXIuc2V0Q2F0Y29kZShcIiVcIiwgMTMpOyAvLyBhY3RpdmUgY2hhcmFjdGVyXG5cbiAgICB0aGlzLmd1bGxldC5sZXhlci5zZXRDYXRjb2RlKFwiflwiLCAxMik7IC8vIG90aGVyIGNoYXJhY3RlclxuXG4gICAgdmFyIHJlcyA9IHRoaXMucGFyc2VTdHJpbmdHcm91cChcInVybFwiLCBvcHRpb25hbCk7XG4gICAgdGhpcy5ndWxsZXQubGV4ZXIuc2V0Q2F0Y29kZShcIiVcIiwgMTQpOyAvLyBjb21tZW50IGNoYXJhY3RlclxuXG4gICAgdGhpcy5ndWxsZXQubGV4ZXIuc2V0Q2F0Y29kZShcIn5cIiwgMTMpOyAvLyBhY3RpdmUgY2hhcmFjdGVyXG5cbiAgICBpZiAocmVzID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gLy8gaHlwZXJyZWYgcGFja2FnZSBhbGxvd3MgYmFja3NsYXNoZXMgYWxvbmUgaW4gaHJlZiwgYnV0IGRvZXNuJ3RcbiAgICAvLyBnZW5lcmF0ZSB2YWxpZCBsaW5rcyBpbiBzdWNoIGNhc2VzOyB3ZSBpbnRlcnByZXQgdGhpcyBhc1xuICAgIC8vIFwidW5kZWZpbmVkXCIgYmVoYXZpb3VyLCBhbmQga2VlcCB0aGVtIGFzLWlzLiBTb21lIGJyb3dzZXIgd2lsbFxuICAgIC8vIHJlcGxhY2UgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkIHNsYXNoZXMuXG5cblxuICAgIHZhciB1cmwgPSByZXMudGV4dC5yZXBsYWNlKC9cXFxcKFsjJCUmfl9ee31dKS9nLCAnJDEnKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJ1cmxcIixcbiAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgIHVybFxuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIFBhcnNlcyBhbiBhcmd1bWVudCB3aXRoIHRoZSBtb2RlIHNwZWNpZmllZC5cbiAgICovXG5cblxuICBwYXJzZUFyZ3VtZW50R3JvdXAob3B0aW9uYWwsIG1vZGUpIHtcbiAgICB2YXIgYXJnVG9rZW4gPSB0aGlzLmd1bGxldC5zY2FuQXJndW1lbnQob3B0aW9uYWwpO1xuXG4gICAgaWYgKGFyZ1Rva2VuID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBvdXRlck1vZGUgPSB0aGlzLm1vZGU7XG5cbiAgICBpZiAobW9kZSkge1xuICAgICAgLy8gU3dpdGNoIHRvIHNwZWNpZmllZCBtb2RlXG4gICAgICB0aGlzLnN3aXRjaE1vZGUobW9kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5ndWxsZXQuYmVnaW5Hcm91cCgpO1xuICAgIHZhciBleHByZXNzaW9uID0gdGhpcy5wYXJzZUV4cHJlc3Npb24oZmFsc2UsIFwiRU9GXCIpOyAvLyBUT0RPOiBmaW5kIGFuIGFsdGVybmF0aXZlIHdheSB0byBkZW5vdGUgdGhlIGVuZFxuXG4gICAgdGhpcy5leHBlY3QoXCJFT0ZcIik7IC8vIGV4cGVjdCB0aGUgZW5kIG9mIHRoZSBhcmd1bWVudFxuXG4gICAgdGhpcy5ndWxsZXQuZW5kR3JvdXAoKTtcbiAgICB2YXIgcmVzdWx0ID0ge1xuICAgICAgdHlwZTogXCJvcmRncm91cFwiLFxuICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgbG9jOiBhcmdUb2tlbi5sb2MsXG4gICAgICBib2R5OiBleHByZXNzaW9uXG4gICAgfTtcblxuICAgIGlmIChtb2RlKSB7XG4gICAgICAvLyBTd2l0Y2ggbW9kZSBiYWNrXG4gICAgICB0aGlzLnN3aXRjaE1vZGUob3V0ZXJNb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBQYXJzZXMgYW4gb3JkaW5hcnkgZ3JvdXAsIHdoaWNoIGlzIGVpdGhlciBhIHNpbmdsZSBudWNsZXVzIChsaWtlIFwieFwiKVxuICAgKiBvciBhbiBleHByZXNzaW9uIGluIGJyYWNlcyAobGlrZSBcInt4K3l9XCIpIG9yIGFuIGltcGxpY2l0IGdyb3VwLCBhIGdyb3VwXG4gICAqIHRoYXQgc3RhcnRzIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uLCBhbmQgZW5kcyByaWdodCBiZWZvcmUgYSBoaWdoZXIgZXhwbGljaXRcbiAgICogZ3JvdXAgZW5kcywgb3IgYXQgRU9GLlxuICAgKi9cblxuXG4gIHBhcnNlR3JvdXAobmFtZSwgLy8gRm9yIGVycm9yIHJlcG9ydGluZy5cbiAgYnJlYWtPblRva2VuVGV4dCkge1xuICAgIHZhciBmaXJzdFRva2VuID0gdGhpcy5mZXRjaCgpO1xuICAgIHZhciB0ZXh0ID0gZmlyc3RUb2tlbi50ZXh0O1xuICAgIHZhciByZXN1bHQ7IC8vIFRyeSB0byBwYXJzZSBhbiBvcGVuIGJyYWNlIG9yIFxcYmVnaW5ncm91cFxuXG4gICAgaWYgKHRleHQgPT09IFwie1wiIHx8IHRleHQgPT09IFwiXFxcXGJlZ2luZ3JvdXBcIikge1xuICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICB2YXIgZ3JvdXBFbmQgPSB0ZXh0ID09PSBcIntcIiA/IFwifVwiIDogXCJcXFxcZW5kZ3JvdXBcIjtcbiAgICAgIHRoaXMuZ3VsbGV0LmJlZ2luR3JvdXAoKTsgLy8gSWYgd2UgZ2V0IGEgYnJhY2UsIHBhcnNlIGFuIGV4cHJlc3Npb25cblxuICAgICAgdmFyIGV4cHJlc3Npb24gPSB0aGlzLnBhcnNlRXhwcmVzc2lvbihmYWxzZSwgZ3JvdXBFbmQpO1xuICAgICAgdmFyIGxhc3RUb2tlbiA9IHRoaXMuZmV0Y2goKTtcbiAgICAgIHRoaXMuZXhwZWN0KGdyb3VwRW5kKTsgLy8gQ2hlY2sgdGhhdCB3ZSBnb3QgYSBtYXRjaGluZyBjbG9zaW5nIGJyYWNlXG5cbiAgICAgIHRoaXMuZ3VsbGV0LmVuZEdyb3VwKCk7XG4gICAgICByZXN1bHQgPSB7XG4gICAgICAgIHR5cGU6IFwib3JkZ3JvdXBcIixcbiAgICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgICBsb2M6IFNvdXJjZUxvY2F0aW9uLnJhbmdlKGZpcnN0VG9rZW4sIGxhc3RUb2tlbiksXG4gICAgICAgIGJvZHk6IGV4cHJlc3Npb24sXG4gICAgICAgIC8vIEEgZ3JvdXAgZm9ybWVkIGJ5IFxcYmVnaW5ncm91cC4uLlxcZW5kZ3JvdXAgaXMgYSBzZW1pLXNpbXBsZSBncm91cFxuICAgICAgICAvLyB3aGljaCBkb2Vzbid0IGFmZmVjdCBzcGFjaW5nIGluIG1hdGggbW9kZSwgaS5lLiwgaXMgdHJhbnNwYXJlbnQuXG4gICAgICAgIC8vIGh0dHBzOi8vdGV4LnN0YWNrZXhjaGFuZ2UuY29tL3F1ZXN0aW9ucy8xOTMwL3doZW4tc2hvdWxkLW9uZS1cbiAgICAgICAgLy8gdXNlLWJlZ2luZ3JvdXAtaW5zdGVhZC1vZi1iZ3JvdXBcbiAgICAgICAgc2VtaXNpbXBsZTogdGV4dCA9PT0gXCJcXFxcYmVnaW5ncm91cFwiIHx8IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlcmUgZXhpc3RzIGEgZnVuY3Rpb24gd2l0aCB0aGlzIG5hbWUsIHBhcnNlIHRoZSBmdW5jdGlvbi5cbiAgICAgIC8vIE90aGVyd2lzZSwganVzdCByZXR1cm4gYSBudWNsZXVzXG4gICAgICByZXN1bHQgPSB0aGlzLnBhcnNlRnVuY3Rpb24oYnJlYWtPblRva2VuVGV4dCwgbmFtZSkgfHwgdGhpcy5wYXJzZVN5bWJvbCgpO1xuXG4gICAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgdGV4dFswXSA9PT0gXCJcXFxcXCIgJiYgIWltcGxpY2l0Q29tbWFuZHMuaGFzT3duUHJvcGVydHkodGV4dCkpIHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MudGhyb3dPbkVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJVbmRlZmluZWQgY29udHJvbCBzZXF1ZW5jZTogXCIgKyB0ZXh0LCBmaXJzdFRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdCA9IHRoaXMuZm9ybWF0VW5zdXBwb3J0ZWRDbWQodGV4dCk7XG4gICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIEZvcm0gbGlnYXR1cmUtbGlrZSBjb21iaW5hdGlvbnMgb2YgY2hhcmFjdGVycyBmb3IgdGV4dCBtb2RlLlxuICAgKiBUaGlzIGluY2x1ZGVzIGlucHV0cyBsaWtlIFwiLS1cIiwgXCItLS1cIiwgXCJgYFwiIGFuZCBcIicnXCIuXG4gICAqIFRoZSByZXN1bHQgd2lsbCBzaW1wbHkgcmVwbGFjZSBtdWx0aXBsZSB0ZXh0b3JkIG5vZGVzIHdpdGggYSBzaW5nbGVcbiAgICogY2hhcmFjdGVyIGluIGVhY2ggdmFsdWUgYnkgYSBzaW5nbGUgdGV4dG9yZCBub2RlIGhhdmluZyBtdWx0aXBsZVxuICAgKiBjaGFyYWN0ZXJzIGluIGl0cyB2YWx1ZS4gIFRoZSByZXByZXNlbnRhdGlvbiBpcyBzdGlsbCBBU0NJSSBzb3VyY2UuXG4gICAqIFRoZSBncm91cCB3aWxsIGJlIG1vZGlmaWVkIGluIHBsYWNlLlxuICAgKi9cblxuXG4gIGZvcm1MaWdhdHVyZXMoZ3JvdXApIHtcbiAgICB2YXIgbiA9IGdyb3VwLmxlbmd0aCAtIDE7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgdmFyIGEgPSBncm91cFtpXTsgLy8gJEZsb3dGaXhNZTogTm90IGV2ZXJ5IG5vZGUgdHlwZSBoYXMgYSBgdGV4dGAgcHJvcGVydHkuXG5cbiAgICAgIHZhciB2ID0gYS50ZXh0O1xuXG4gICAgICBpZiAodiA9PT0gXCItXCIgJiYgZ3JvdXBbaSArIDFdLnRleHQgPT09IFwiLVwiKSB7XG4gICAgICAgIGlmIChpICsgMSA8IG4gJiYgZ3JvdXBbaSArIDJdLnRleHQgPT09IFwiLVwiKSB7XG4gICAgICAgICAgZ3JvdXAuc3BsaWNlKGksIDMsIHtcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dG9yZFwiLFxuICAgICAgICAgICAgbW9kZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICBsb2M6IFNvdXJjZUxvY2F0aW9uLnJhbmdlKGEsIGdyb3VwW2kgKyAyXSksXG4gICAgICAgICAgICB0ZXh0OiBcIi0tLVwiXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbiAtPSAyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwLnNwbGljZShpLCAyLCB7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRvcmRcIixcbiAgICAgICAgICAgIG1vZGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgbG9jOiBTb3VyY2VMb2NhdGlvbi5yYW5nZShhLCBncm91cFtpICsgMV0pLFxuICAgICAgICAgICAgdGV4dDogXCItLVwiXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbiAtPSAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICgodiA9PT0gXCInXCIgfHwgdiA9PT0gXCJgXCIpICYmIGdyb3VwW2kgKyAxXS50ZXh0ID09PSB2KSB7XG4gICAgICAgIGdyb3VwLnNwbGljZShpLCAyLCB7XG4gICAgICAgICAgdHlwZTogXCJ0ZXh0b3JkXCIsXG4gICAgICAgICAgbW9kZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgbG9jOiBTb3VyY2VMb2NhdGlvbi5yYW5nZShhLCBncm91cFtpICsgMV0pLFxuICAgICAgICAgIHRleHQ6IHYgKyB2XG4gICAgICAgIH0pO1xuICAgICAgICBuIC09IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBQYXJzZSBhIHNpbmdsZSBzeW1ib2wgb3V0IG9mIHRoZSBzdHJpbmcuIEhlcmUsIHdlIGhhbmRsZSBzaW5nbGUgY2hhcmFjdGVyXG4gICAqIHN5bWJvbHMgYW5kIHNwZWNpYWwgZnVuY3Rpb25zIGxpa2UgXFx2ZXJiLlxuICAgKi9cblxuXG4gIHBhcnNlU3ltYm9sKCkge1xuICAgIHZhciBudWNsZXVzID0gdGhpcy5mZXRjaCgpO1xuICAgIHZhciB0ZXh0ID0gbnVjbGV1cy50ZXh0O1xuXG4gICAgaWYgKC9eXFxcXHZlcmJbXmEtekEtWl0vLnRlc3QodGV4dCkpIHtcbiAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgdmFyIGFyZyA9IHRleHQuc2xpY2UoNSk7XG4gICAgICB2YXIgc3RhciA9IGFyZy5jaGFyQXQoMCkgPT09IFwiKlwiO1xuXG4gICAgICBpZiAoc3Rhcikge1xuICAgICAgICBhcmcgPSBhcmcuc2xpY2UoMSk7XG4gICAgICB9IC8vIExleGVyJ3MgdG9rZW5SZWdleCBpcyBjb25zdHJ1Y3RlZCB0byBhbHdheXMgaGF2ZSBtYXRjaGluZ1xuICAgICAgLy8gZmlyc3QvbGFzdCBjaGFyYWN0ZXJzLlxuXG5cbiAgICAgIGlmIChhcmcubGVuZ3RoIDwgMiB8fCBhcmcuY2hhckF0KDApICE9PSBhcmcuc2xpY2UoLTEpKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiXFxcXHZlcmIgYXNzZXJ0aW9uIGZhaWxlZCAtLVxcbiAgICAgICAgICAgICAgICAgICAgcGxlYXNlIHJlcG9ydCB3aGF0IGlucHV0IGNhdXNlZCB0aGlzIGJ1Z1wiKTtcbiAgICAgIH1cblxuICAgICAgYXJnID0gYXJnLnNsaWNlKDEsIC0xKTsgLy8gcmVtb3ZlIGZpcnN0IGFuZCBsYXN0IGNoYXJcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJ2ZXJiXCIsXG4gICAgICAgIG1vZGU6IFwidGV4dFwiLFxuICAgICAgICBib2R5OiBhcmcsXG4gICAgICAgIHN0YXJcbiAgICAgIH07XG4gICAgfSAvLyBBdCB0aGlzIHBvaW50LCB3ZSBzaG91bGQgaGF2ZSBhIHN5bWJvbCwgcG9zc2libHkgd2l0aCBhY2NlbnRzLlxuICAgIC8vIEZpcnN0IGV4cGFuZCBhbnkgYWNjZW50ZWQgYmFzZSBzeW1ib2wgYWNjb3JkaW5nIHRvIHVuaWNvZGVTeW1ib2xzLlxuXG5cbiAgICBpZiAodW5pY29kZVN5bWJvbHMuaGFzT3duUHJvcGVydHkodGV4dFswXSkgJiYgIXN5bWJvbHNbdGhpcy5tb2RlXVt0ZXh0WzBdXSkge1xuICAgICAgLy8gVGhpcyBiZWhhdmlvciBpcyBub3Qgc3RyaWN0IChYZVRlWC1jb21wYXRpYmxlKSBpbiBtYXRoIG1vZGUuXG4gICAgICBpZiAodGhpcy5zZXR0aW5ncy5zdHJpY3QgJiYgdGhpcy5tb2RlID09PSBcIm1hdGhcIikge1xuICAgICAgICB0aGlzLnNldHRpbmdzLnJlcG9ydE5vbnN0cmljdChcInVuaWNvZGVUZXh0SW5NYXRoTW9kZVwiLCBcIkFjY2VudGVkIFVuaWNvZGUgdGV4dCBjaGFyYWN0ZXIgXFxcIlwiICsgdGV4dFswXSArIFwiXFxcIiB1c2VkIGluIFwiICsgXCJtYXRoIG1vZGVcIiwgbnVjbGV1cyk7XG4gICAgICB9XG5cbiAgICAgIHRleHQgPSB1bmljb2RlU3ltYm9sc1t0ZXh0WzBdXSArIHRleHQuc2xpY2UoMSk7XG4gICAgfSAvLyBTdHJpcCBvZmYgYW55IGNvbWJpbmluZyBjaGFyYWN0ZXJzXG5cblxuICAgIHZhciBtYXRjaCA9IGNvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3NFbmRSZWdleC5leGVjKHRleHQpO1xuXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpO1xuXG4gICAgICBpZiAodGV4dCA9PT0gJ2knKSB7XG4gICAgICAgIHRleHQgPSAnXFx1MDEzMSc7IC8vIGRvdGxlc3MgaSwgaW4gbWF0aCBhbmQgdGV4dCBtb2RlXG4gICAgICB9IGVsc2UgaWYgKHRleHQgPT09ICdqJykge1xuICAgICAgICB0ZXh0ID0gJ1xcdTAyMzcnOyAvLyBkb3RsZXNzIGosIGluIG1hdGggYW5kIHRleHQgbW9kZVxuICAgICAgfVxuICAgIH0gLy8gUmVjb2duaXplIGJhc2Ugc3ltYm9sXG5cblxuICAgIHZhciBzeW1ib2w7XG5cbiAgICBpZiAoc3ltYm9sc1t0aGlzLm1vZGVdW3RleHRdKSB7XG4gICAgICBpZiAodGhpcy5zZXR0aW5ncy5zdHJpY3QgJiYgdGhpcy5tb2RlID09PSAnbWF0aCcgJiYgZXh0cmFMYXRpbi5pbmRleE9mKHRleHQpID49IDApIHtcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5yZXBvcnROb25zdHJpY3QoXCJ1bmljb2RlVGV4dEluTWF0aE1vZGVcIiwgXCJMYXRpbi0xL1VuaWNvZGUgdGV4dCBjaGFyYWN0ZXIgXFxcIlwiICsgdGV4dFswXSArIFwiXFxcIiB1c2VkIGluIFwiICsgXCJtYXRoIG1vZGVcIiwgbnVjbGV1cyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBncm91cCA9IHN5bWJvbHNbdGhpcy5tb2RlXVt0ZXh0XS5ncm91cDtcbiAgICAgIHZhciBsb2MgPSBTb3VyY2VMb2NhdGlvbi5yYW5nZShudWNsZXVzKTtcbiAgICAgIHZhciBzO1xuXG4gICAgICBpZiAoQVRPTVMuaGFzT3duUHJvcGVydHkoZ3JvdXApKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWVcbiAgICAgICAgdmFyIGZhbWlseSA9IGdyb3VwO1xuICAgICAgICBzID0ge1xuICAgICAgICAgIHR5cGU6IFwiYXRvbVwiLFxuICAgICAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgICAgICBmYW1pbHksXG4gICAgICAgICAgbG9jLFxuICAgICAgICAgIHRleHRcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vICRGbG93Rml4TWVcbiAgICAgICAgcyA9IHtcbiAgICAgICAgICB0eXBlOiBncm91cCxcbiAgICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgICAgbG9jLFxuICAgICAgICAgIHRleHRcbiAgICAgICAgfTtcbiAgICAgIH0gLy8gJEZsb3dGaXhNZVxuXG5cbiAgICAgIHN5bWJvbCA9IHM7XG4gICAgfSBlbHNlIGlmICh0ZXh0LmNoYXJDb2RlQXQoMCkgPj0gMHg4MCkge1xuICAgICAgLy8gbm8gc3ltYm9sIGZvciBlLmcuIF5cbiAgICAgIGlmICh0aGlzLnNldHRpbmdzLnN0cmljdCkge1xuICAgICAgICBpZiAoIXN1cHBvcnRlZENvZGVwb2ludCh0ZXh0LmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5yZXBvcnROb25zdHJpY3QoXCJ1bmtub3duU3ltYm9sXCIsIFwiVW5yZWNvZ25pemVkIFVuaWNvZGUgY2hhcmFjdGVyIFxcXCJcIiArIHRleHRbMF0gKyBcIlxcXCJcIiArIChcIiAoXCIgKyB0ZXh0LmNoYXJDb2RlQXQoMCkgKyBcIilcIiksIG51Y2xldXMpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gXCJtYXRoXCIpIHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnJlcG9ydE5vbnN0cmljdChcInVuaWNvZGVUZXh0SW5NYXRoTW9kZVwiLCBcIlVuaWNvZGUgdGV4dCBjaGFyYWN0ZXIgXFxcIlwiICsgdGV4dFswXSArIFwiXFxcIiB1c2VkIGluIG1hdGggbW9kZVwiLCBudWNsZXVzKTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBBbGwgbm9ubWF0aGVtYXRpY2FsIFVuaWNvZGUgY2hhcmFjdGVycyBhcmUgcmVuZGVyZWQgYXMgaWYgdGhleVxuICAgICAgLy8gYXJlIGluIHRleHQgbW9kZSAod3JhcHBlZCBpbiBcXHRleHQpIGJlY2F1c2UgdGhhdCdzIHdoYXQgaXRcbiAgICAgIC8vIHRha2VzIHRvIHJlbmRlciB0aGVtIGluIExhVGVYLiAgU2V0dGluZyBgbW9kZTogdGhpcy5tb2RlYCBpc1xuICAgICAgLy8gYW5vdGhlciBuYXR1cmFsIGNob2ljZSAodGhlIHVzZXIgcmVxdWVzdGVkIG1hdGggbW9kZSksIGJ1dFxuICAgICAgLy8gdGhpcyBtYWtlcyBpdCBtb3JlIGRpZmZpY3VsdCBmb3IgZ2V0Q2hhcmFjdGVyTWV0cmljcygpIHRvXG4gICAgICAvLyBkaXN0aW5ndWlzaCBVbmljb2RlIGNoYXJhY3RlcnMgd2l0aG91dCBtZXRyaWNzIGFuZCB0aG9zZSBmb3JcbiAgICAgIC8vIHdoaWNoIHdlIHdhbnQgdG8gc2ltdWxhdGUgdGhlIGxldHRlciBNLlxuXG5cbiAgICAgIHN5bWJvbCA9IHtcbiAgICAgICAgdHlwZTogXCJ0ZXh0b3JkXCIsXG4gICAgICAgIG1vZGU6IFwidGV4dFwiLFxuICAgICAgICBsb2M6IFNvdXJjZUxvY2F0aW9uLnJhbmdlKG51Y2xldXMpLFxuICAgICAgICB0ZXh0XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDsgLy8gRU9GLCBeLCBfLCB7LCB9LCBldGMuXG4gICAgfVxuXG4gICAgdGhpcy5jb25zdW1lKCk7IC8vIFRyYW5zZm9ybSBjb21iaW5pbmcgY2hhcmFjdGVycyBpbnRvIGFjY2VudHNcblxuICAgIGlmIChtYXRjaCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXRjaFswXS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgYWNjZW50ID0gbWF0Y2hbMF1baV07XG5cbiAgICAgICAgaWYgKCF1bmljb2RlQWNjZW50c1thY2NlbnRdKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJVbmtub3duIGFjY2VudCAnIFwiICsgYWNjZW50ICsgXCInXCIsIG51Y2xldXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNvbW1hbmQgPSB1bmljb2RlQWNjZW50c1thY2NlbnRdW3RoaXMubW9kZV0gfHwgdW5pY29kZUFjY2VudHNbYWNjZW50XS50ZXh0O1xuXG4gICAgICAgIGlmICghY29tbWFuZCkge1xuICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKFwiQWNjZW50IFwiICsgYWNjZW50ICsgXCIgdW5zdXBwb3J0ZWQgaW4gXCIgKyB0aGlzLm1vZGUgKyBcIiBtb2RlXCIsIG51Y2xldXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ltYm9sID0ge1xuICAgICAgICAgIHR5cGU6IFwiYWNjZW50XCIsXG4gICAgICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgICAgIGxvYzogU291cmNlTG9jYXRpb24ucmFuZ2UobnVjbGV1cyksXG4gICAgICAgICAgbGFiZWw6IGNvbW1hbmQsXG4gICAgICAgICAgaXNTdHJldGNoeTogZmFsc2UsXG4gICAgICAgICAgaXNTaGlmdHk6IHRydWUsXG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuICAgICAgICAgIGJhc2U6IHN5bWJvbFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gLy8gJEZsb3dGaXhNZVxuXG5cbiAgICByZXR1cm4gc3ltYm9sO1xuICB9XG5cbn1cblBhcnNlci5lbmRPZkV4cHJlc3Npb24gPSBbXCJ9XCIsIFwiXFxcXGVuZGdyb3VwXCIsIFwiXFxcXGVuZFwiLCBcIlxcXFxyaWdodFwiLCBcIiZcIl07XG5cbi8qKlxuICogUHJvdmlkZXMgYSBzaW5nbGUgZnVuY3Rpb24gZm9yIHBhcnNpbmcgYW4gZXhwcmVzc2lvbiB1c2luZyBhIFBhcnNlclxuICogVE9ETyhlbWlseSk6IFJlbW92ZSB0aGlzXG4gKi9cblxuLyoqXG4gKiBQYXJzZXMgYW4gZXhwcmVzc2lvbiB1c2luZyBhIFBhcnNlciwgdGhlbiByZXR1cm5zIHRoZSBwYXJzZWQgcmVzdWx0LlxuICovXG52YXIgcGFyc2VUcmVlID0gZnVuY3Rpb24gcGFyc2VUcmVlKHRvUGFyc2UsIHNldHRpbmdzKSB7XG4gIGlmICghKHR5cGVvZiB0b1BhcnNlID09PSAnc3RyaW5nJyB8fCB0b1BhcnNlIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0thVGVYIGNhbiBvbmx5IHBhcnNlIHN0cmluZyB0eXBlZCBleHByZXNzaW9uJyk7XG4gIH1cblxuICB2YXIgcGFyc2VyID0gbmV3IFBhcnNlcih0b1BhcnNlLCBzZXR0aW5ncyk7IC8vIEJsYW5rIG91dCBhbnkgXFxkZkB0YWcgdG8gYXZvaWQgc3B1cmlvdXMgXCJEdXBsaWNhdGUgXFx0YWdcIiBlcnJvcnNcblxuICBkZWxldGUgcGFyc2VyLmd1bGxldC5tYWNyb3MuY3VycmVudFtcIlxcXFxkZkB0YWdcIl07XG4gIHZhciB0cmVlID0gcGFyc2VyLnBhcnNlKCk7IC8vIFByZXZlbnQgYSBjb2xvciBkZWZpbml0aW9uIGZyb20gcGVyc2lzdGluZyBiZXR3ZWVuIGNhbGxzIHRvIGthdGV4LnJlbmRlcigpLlxuXG4gIGRlbGV0ZSBwYXJzZXIuZ3VsbGV0Lm1hY3Jvcy5jdXJyZW50W1wiXFxcXGN1cnJlbnRAY29sb3JcIl07XG4gIGRlbGV0ZSBwYXJzZXIuZ3VsbGV0Lm1hY3Jvcy5jdXJyZW50W1wiXFxcXGNvbG9yXCJdOyAvLyBJZiB0aGUgaW5wdXQgdXNlZCBcXHRhZywgaXQgd2lsbCBzZXQgdGhlIFxcZGZAdGFnIG1hY3JvIHRvIHRoZSB0YWcuXG4gIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2VwYXJhdGVseSBwYXJzZSB0aGUgdGFnIGFuZCB3cmFwIHRoZSB0cmVlLlxuXG4gIGlmIChwYXJzZXIuZ3VsbGV0Lm1hY3Jvcy5nZXQoXCJcXFxcZGZAdGFnXCIpKSB7XG4gICAgaWYgKCFzZXR0aW5ncy5kaXNwbGF5TW9kZSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoXCJcXFxcdGFnIHdvcmtzIG9ubHkgaW4gZGlzcGxheSBlcXVhdGlvbnNcIik7XG4gICAgfVxuXG4gICAgdHJlZSA9IFt7XG4gICAgICB0eXBlOiBcInRhZ1wiLFxuICAgICAgbW9kZTogXCJ0ZXh0XCIsXG4gICAgICBib2R5OiB0cmVlLFxuICAgICAgdGFnOiBwYXJzZXIuc3VicGFyc2UoW25ldyBUb2tlbihcIlxcXFxkZkB0YWdcIildKVxuICAgIH1dO1xuICB9XG5cbiAgcmV0dXJuIHRyZWU7XG59O1xuXG4vKiBlc2xpbnQgbm8tY29uc29sZTowICovXG5cbi8qKlxuICogUGFyc2UgYW5kIGJ1aWxkIGFuIGV4cHJlc3Npb24sIGFuZCBwbGFjZSB0aGF0IGV4cHJlc3Npb24gaW4gdGhlIERPTSBub2RlXG4gKiBnaXZlbi5cbiAqL1xudmFyIHJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcihleHByZXNzaW9uLCBiYXNlTm9kZSwgb3B0aW9ucykge1xuICBiYXNlTm9kZS50ZXh0Q29udGVudCA9IFwiXCI7XG4gIHZhciBub2RlID0gcmVuZGVyVG9Eb21UcmVlKGV4cHJlc3Npb24sIG9wdGlvbnMpLnRvTm9kZSgpO1xuICBiYXNlTm9kZS5hcHBlbmRDaGlsZChub2RlKTtcbn07IC8vIEthVGVYJ3Mgc3R5bGVzIGRvbid0IHdvcmsgcHJvcGVybHkgaW4gcXVpcmtzIG1vZGUuIFByaW50IG91dCBhbiBlcnJvciwgYW5kXG4vLyBkaXNhYmxlIHJlbmRlcmluZy5cblxuXG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gIGlmIChkb2N1bWVudC5jb21wYXRNb2RlICE9PSBcIkNTUzFDb21wYXRcIikge1xuICAgIHR5cGVvZiBjb25zb2xlICE9PSBcInVuZGVmaW5lZFwiICYmIGNvbnNvbGUud2FybihcIldhcm5pbmc6IEthVGVYIGRvZXNuJ3Qgd29yayBpbiBxdWlya3MgbW9kZS4gTWFrZSBzdXJlIHlvdXIgXCIgKyBcIndlYnNpdGUgaGFzIGEgc3VpdGFibGUgZG9jdHlwZS5cIik7XG5cbiAgICByZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihcIkthVGVYIGRvZXNuJ3Qgd29yayBpbiBxdWlya3MgbW9kZS5cIik7XG4gICAgfTtcbiAgfVxufVxuLyoqXG4gKiBQYXJzZSBhbmQgYnVpbGQgYW4gZXhwcmVzc2lvbiwgYW5kIHJldHVybiB0aGUgbWFya3VwIGZvciB0aGF0LlxuICovXG5cblxudmFyIHJlbmRlclRvU3RyaW5nID0gZnVuY3Rpb24gcmVuZGVyVG9TdHJpbmcoZXhwcmVzc2lvbiwgb3B0aW9ucykge1xuICB2YXIgbWFya3VwID0gcmVuZGVyVG9Eb21UcmVlKGV4cHJlc3Npb24sIG9wdGlvbnMpLnRvTWFya3VwKCk7XG4gIHJldHVybiBtYXJrdXA7XG59O1xuLyoqXG4gKiBQYXJzZSBhbiBleHByZXNzaW9uIGFuZCByZXR1cm4gdGhlIHBhcnNlIHRyZWUuXG4gKi9cblxuXG52YXIgZ2VuZXJhdGVQYXJzZVRyZWUgPSBmdW5jdGlvbiBnZW5lcmF0ZVBhcnNlVHJlZShleHByZXNzaW9uLCBvcHRpb25zKSB7XG4gIHZhciBzZXR0aW5ncyA9IG5ldyBTZXR0aW5ncyhvcHRpb25zKTtcbiAgcmV0dXJuIHBhcnNlVHJlZShleHByZXNzaW9uLCBzZXR0aW5ncyk7XG59O1xuLyoqXG4gKiBJZiB0aGUgZ2l2ZW4gZXJyb3IgaXMgYSBLYVRlWCBQYXJzZUVycm9yIGFuZCBvcHRpb25zLnRocm93T25FcnJvciBpcyBmYWxzZSxcbiAqIHJlbmRlcnMgdGhlIGludmFsaWQgTGFUZVggYXMgYSBzcGFuIHdpdGggaG92ZXIgdGl0bGUgZ2l2aW5nIHRoZSBLYVRlWFxuICogZXJyb3IgbWVzc2FnZS4gIE90aGVyd2lzZSwgc2ltcGx5IHRocm93cyB0aGUgZXJyb3IuXG4gKi9cblxuXG52YXIgcmVuZGVyRXJyb3IgPSBmdW5jdGlvbiByZW5kZXJFcnJvcihlcnJvciwgZXhwcmVzc2lvbiwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucy50aHJvd09uRXJyb3IgfHwgIShlcnJvciBpbnN0YW5jZW9mIFBhcnNlRXJyb3IpKSB7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICB2YXIgbm9kZSA9IGJ1aWxkQ29tbW9uLm1ha2VTcGFuKFtcImthdGV4LWVycm9yXCJdLCBbbmV3IFN5bWJvbE5vZGUoZXhwcmVzc2lvbildKTtcbiAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiLCBlcnJvci50b1N0cmluZygpKTtcbiAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBcImNvbG9yOlwiICsgb3B0aW9ucy5lcnJvckNvbG9yKTtcbiAgcmV0dXJuIG5vZGU7XG59O1xuLyoqXG4gKiBHZW5lcmF0ZXMgYW5kIHJldHVybnMgdGhlIGthdGV4IGJ1aWxkIHRyZWUuIFRoaXMgaXMgdXNlZCBmb3IgYWR2YW5jZWRcbiAqIHVzZSBjYXNlcyAobGlrZSByZW5kZXJpbmcgdG8gY3VzdG9tIG91dHB1dCkuXG4gKi9cblxuXG52YXIgcmVuZGVyVG9Eb21UcmVlID0gZnVuY3Rpb24gcmVuZGVyVG9Eb21UcmVlKGV4cHJlc3Npb24sIG9wdGlvbnMpIHtcbiAgdmFyIHNldHRpbmdzID0gbmV3IFNldHRpbmdzKG9wdGlvbnMpO1xuXG4gIHRyeSB7XG4gICAgdmFyIHRyZWUgPSBwYXJzZVRyZWUoZXhwcmVzc2lvbiwgc2V0dGluZ3MpO1xuICAgIHJldHVybiBidWlsZFRyZWUodHJlZSwgZXhwcmVzc2lvbiwgc2V0dGluZ3MpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiByZW5kZXJFcnJvcihlcnJvciwgZXhwcmVzc2lvbiwgc2V0dGluZ3MpO1xuICB9XG59O1xuLyoqXG4gKiBHZW5lcmF0ZXMgYW5kIHJldHVybnMgdGhlIGthdGV4IGJ1aWxkIHRyZWUsIHdpdGgganVzdCBIVE1MIChubyBNYXRoTUwpLlxuICogVGhpcyBpcyB1c2VkIGZvciBhZHZhbmNlZCB1c2UgY2FzZXMgKGxpa2UgcmVuZGVyaW5nIHRvIGN1c3RvbSBvdXRwdXQpLlxuICovXG5cblxudmFyIHJlbmRlclRvSFRNTFRyZWUgPSBmdW5jdGlvbiByZW5kZXJUb0hUTUxUcmVlKGV4cHJlc3Npb24sIG9wdGlvbnMpIHtcbiAgdmFyIHNldHRpbmdzID0gbmV3IFNldHRpbmdzKG9wdGlvbnMpO1xuXG4gIHRyeSB7XG4gICAgdmFyIHRyZWUgPSBwYXJzZVRyZWUoZXhwcmVzc2lvbiwgc2V0dGluZ3MpO1xuICAgIHJldHVybiBidWlsZEhUTUxUcmVlKHRyZWUsIGV4cHJlc3Npb24sIHNldHRpbmdzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gcmVuZGVyRXJyb3IoZXJyb3IsIGV4cHJlc3Npb24sIHNldHRpbmdzKTtcbiAgfVxufTtcblxudmFyIGthdGV4ID0ge1xuICAvKipcbiAgICogQ3VycmVudCBLYVRlWCB2ZXJzaW9uXG4gICAqL1xuICB2ZXJzaW9uOiBcIjAuMTYuMTFcIixcblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgZ2l2ZW4gTGFUZVggaW50byBhbiBIVE1MK01hdGhNTCBjb21iaW5hdGlvbiwgYW5kIGFkZHNcbiAgICogaXQgYXMgYSBjaGlsZCB0byB0aGUgc3BlY2lmaWVkIERPTSBub2RlLlxuICAgKi9cbiAgcmVuZGVyLFxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBnaXZlbiBMYVRlWCBpbnRvIGFuIEhUTUwrTWF0aE1MIGNvbWJpbmF0aW9uIHN0cmluZyxcbiAgICogZm9yIHNlbmRpbmcgdG8gdGhlIGNsaWVudC5cbiAgICovXG4gIHJlbmRlclRvU3RyaW5nLFxuXG4gIC8qKlxuICAgKiBLYVRlWCBlcnJvciwgdXN1YWxseSBkdXJpbmcgcGFyc2luZy5cbiAgICovXG4gIFBhcnNlRXJyb3IsXG5cbiAgLyoqXG4gICAqIFRoZSBzaGVtYSBvZiBTZXR0aW5nc1xuICAgKi9cbiAgU0VUVElOR1NfU0NIRU1BLFxuXG4gIC8qKlxuICAgKiBQYXJzZXMgdGhlIGdpdmVuIExhVGVYIGludG8gS2FUZVgncyBpbnRlcm5hbCBwYXJzZSB0cmVlIHN0cnVjdHVyZSxcbiAgICogd2l0aG91dCByZW5kZXJpbmcgdG8gSFRNTCBvciBNYXRoTUwuXG4gICAqXG4gICAqIE5PVEU6IFRoaXMgbWV0aG9kIGlzIG5vdCBjdXJyZW50bHkgcmVjb21tZW5kZWQgZm9yIHB1YmxpYyB1c2UuXG4gICAqIFRoZSBpbnRlcm5hbCB0cmVlIHJlcHJlc2VudGF0aW9uIGlzIHVuc3RhYmxlIGFuZCBpcyB2ZXJ5IGxpa2VseVxuICAgKiB0byBjaGFuZ2UuIFVzZSBhdCB5b3VyIG93biByaXNrLlxuICAgKi9cbiAgX19wYXJzZTogZ2VuZXJhdGVQYXJzZVRyZWUsXG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIGdpdmVuIExhVGVYIGludG8gYW4gSFRNTCtNYXRoTUwgaW50ZXJuYWwgRE9NIHRyZWVcbiAgICogcmVwcmVzZW50YXRpb24sIHdpdGhvdXQgZmxhdHRlbmluZyB0aGF0IHJlcHJlc2VudGF0aW9uIHRvIGEgc3RyaW5nLlxuICAgKlxuICAgKiBOT1RFOiBUaGlzIG1ldGhvZCBpcyBub3QgY3VycmVudGx5IHJlY29tbWVuZGVkIGZvciBwdWJsaWMgdXNlLlxuICAgKiBUaGUgaW50ZXJuYWwgdHJlZSByZXByZXNlbnRhdGlvbiBpcyB1bnN0YWJsZSBhbmQgaXMgdmVyeSBsaWtlbHlcbiAgICogdG8gY2hhbmdlLiBVc2UgYXQgeW91ciBvd24gcmlzay5cbiAgICovXG4gIF9fcmVuZGVyVG9Eb21UcmVlOiByZW5kZXJUb0RvbVRyZWUsXG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIGdpdmVuIExhVGVYIGludG8gYW4gSFRNTCBpbnRlcm5hbCBET00gdHJlZSByZXByZXNlbnRhdGlvbixcbiAgICogd2l0aG91dCBNYXRoTUwgYW5kIHdpdGhvdXQgZmxhdHRlbmluZyB0aGF0IHJlcHJlc2VudGF0aW9uIHRvIGEgc3RyaW5nLlxuICAgKlxuICAgKiBOT1RFOiBUaGlzIG1ldGhvZCBpcyBub3QgY3VycmVudGx5IHJlY29tbWVuZGVkIGZvciBwdWJsaWMgdXNlLlxuICAgKiBUaGUgaW50ZXJuYWwgdHJlZSByZXByZXNlbnRhdGlvbiBpcyB1bnN0YWJsZSBhbmQgaXMgdmVyeSBsaWtlbHlcbiAgICogdG8gY2hhbmdlLiBVc2UgYXQgeW91ciBvd24gcmlzay5cbiAgICovXG4gIF9fcmVuZGVyVG9IVE1MVHJlZTogcmVuZGVyVG9IVE1MVHJlZSxcblxuICAvKipcbiAgICogZXh0ZW5kcyBpbnRlcm5hbCBmb250IG1ldHJpY3Mgb2JqZWN0IHdpdGggYSBuZXcgb2JqZWN0XG4gICAqIGVhY2gga2V5IGluIHRoZSBuZXcgb2JqZWN0IHJlcHJlc2VudHMgYSBmb250IG5hbWVcbiAgKi9cbiAgX19zZXRGb250TWV0cmljczogc2V0Rm9udE1ldHJpY3MsXG5cbiAgLyoqXG4gICAqIGFkZHMgYSBuZXcgc3ltYm9sIHRvIGJ1aWx0aW4gc3ltYm9scyB0YWJsZVxuICAgKi9cbiAgX19kZWZpbmVTeW1ib2w6IGRlZmluZVN5bWJvbCxcblxuICAvKipcbiAgICogYWRkcyBhIG5ldyBmdW5jdGlvbiB0byBidWlsdGluIGZ1bmN0aW9uIGxpc3QsXG4gICAqIHdoaWNoIGRpcmVjdGx5IHByb2R1Y2UgcGFyc2UgdHJlZSBlbGVtZW50c1xuICAgKiBhbmQgaGF2ZSB0aGVpciBvd24gaHRtbC9tYXRobWwgYnVpbGRlcnNcbiAgICovXG4gIF9fZGVmaW5lRnVuY3Rpb246IGRlZmluZUZ1bmN0aW9uLFxuXG4gIC8qKlxuICAgKiBhZGRzIGEgbmV3IG1hY3JvIHRvIGJ1aWx0aW4gbWFjcm8gbGlzdFxuICAgKi9cbiAgX19kZWZpbmVNYWNybzogZGVmaW5lTWFjcm8sXG5cbiAgLyoqXG4gICAqIEV4cG9zZSB0aGUgZG9tIHRyZWUgbm9kZSB0eXBlcywgd2hpY2ggY2FuIGJlIHVzZWZ1bCBmb3IgdHlwZSBjaGVja2luZyBub2Rlcy5cbiAgICpcbiAgICogTk9URTogVGhpcyBtZXRob2QgaXMgbm90IGN1cnJlbnRseSByZWNvbW1lbmRlZCBmb3IgcHVibGljIHVzZS5cbiAgICogVGhlIGludGVybmFsIHRyZWUgcmVwcmVzZW50YXRpb24gaXMgdW5zdGFibGUgYW5kIGlzIHZlcnkgbGlrZWx5XG4gICAqIHRvIGNoYW5nZS4gVXNlIGF0IHlvdXIgb3duIHJpc2suXG4gICAqL1xuICBfX2RvbVRyZWU6IHtcbiAgICBTcGFuLFxuICAgIEFuY2hvcixcbiAgICBTeW1ib2xOb2RlLFxuICAgIFN2Z05vZGUsXG4gICAgUGF0aE5vZGUsXG4gICAgTGluZU5vZGVcbiAgfVxufTtcblxuZXhwb3J0IHsga2F0ZXggYXMgZGVmYXVsdCB9O1xuIiwKICAgICJpbXBvcnQgeyBzYW5pdGl6ZVVybCB9IGZyb20gXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IHsgSiBhcyBsaW5lQnJlYWtSZWdleCB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmNvbnN0IGRyYXdSZWN0ID0gKGVsZW1lbnQsIHJlY3REYXRhKSA9PiB7XG4gIGNvbnN0IHJlY3RFbGVtZW50ID0gZWxlbWVudC5hcHBlbmQoXCJyZWN0XCIpO1xuICByZWN0RWxlbWVudC5hdHRyKFwieFwiLCByZWN0RGF0YS54KTtcbiAgcmVjdEVsZW1lbnQuYXR0cihcInlcIiwgcmVjdERhdGEueSk7XG4gIHJlY3RFbGVtZW50LmF0dHIoXCJmaWxsXCIsIHJlY3REYXRhLmZpbGwpO1xuICByZWN0RWxlbWVudC5hdHRyKFwic3Ryb2tlXCIsIHJlY3REYXRhLnN0cm9rZSk7XG4gIHJlY3RFbGVtZW50LmF0dHIoXCJ3aWR0aFwiLCByZWN0RGF0YS53aWR0aCk7XG4gIHJlY3RFbGVtZW50LmF0dHIoXCJoZWlnaHRcIiwgcmVjdERhdGEuaGVpZ2h0KTtcbiAgaWYgKHJlY3REYXRhLm5hbWUpIHtcbiAgICByZWN0RWxlbWVudC5hdHRyKFwibmFtZVwiLCByZWN0RGF0YS5uYW1lKTtcbiAgfVxuICByZWN0RGF0YS5yeCAhPT0gdm9pZCAwICYmIHJlY3RFbGVtZW50LmF0dHIoXCJyeFwiLCByZWN0RGF0YS5yeCk7XG4gIHJlY3REYXRhLnJ5ICE9PSB2b2lkIDAgJiYgcmVjdEVsZW1lbnQuYXR0cihcInJ5XCIsIHJlY3REYXRhLnJ5KTtcbiAgaWYgKHJlY3REYXRhLmF0dHJzICE9PSB2b2lkIDApIHtcbiAgICBmb3IgKGNvbnN0IGF0dHJLZXkgaW4gcmVjdERhdGEuYXR0cnMpIHtcbiAgICAgIHJlY3RFbGVtZW50LmF0dHIoYXR0cktleSwgcmVjdERhdGEuYXR0cnNbYXR0cktleV0pO1xuICAgIH1cbiAgfVxuICByZWN0RGF0YS5jbGFzcyAhPT0gdm9pZCAwICYmIHJlY3RFbGVtZW50LmF0dHIoXCJjbGFzc1wiLCByZWN0RGF0YS5jbGFzcyk7XG4gIHJldHVybiByZWN0RWxlbWVudDtcbn07XG5jb25zdCBkcmF3QmFja2dyb3VuZFJlY3QgPSAoZWxlbWVudCwgYm91bmRzKSA9PiB7XG4gIGNvbnN0IHJlY3REYXRhID0ge1xuICAgIHg6IGJvdW5kcy5zdGFydHgsXG4gICAgeTogYm91bmRzLnN0YXJ0eSxcbiAgICB3aWR0aDogYm91bmRzLnN0b3B4IC0gYm91bmRzLnN0YXJ0eCxcbiAgICBoZWlnaHQ6IGJvdW5kcy5zdG9weSAtIGJvdW5kcy5zdGFydHksXG4gICAgZmlsbDogYm91bmRzLmZpbGwsXG4gICAgc3Ryb2tlOiBib3VuZHMuc3Ryb2tlLFxuICAgIGNsYXNzOiBcInJlY3RcIlxuICB9O1xuICBjb25zdCByZWN0RWxlbWVudCA9IGRyYXdSZWN0KGVsZW1lbnQsIHJlY3REYXRhKTtcbiAgcmVjdEVsZW1lbnQubG93ZXIoKTtcbn07XG5jb25zdCBkcmF3VGV4dCA9IChlbGVtZW50LCB0ZXh0RGF0YSkgPT4ge1xuICBjb25zdCBuVGV4dCA9IHRleHREYXRhLnRleHQucmVwbGFjZShsaW5lQnJlYWtSZWdleCwgXCIgXCIpO1xuICBjb25zdCB0ZXh0RWxlbSA9IGVsZW1lbnQuYXBwZW5kKFwidGV4dFwiKTtcbiAgdGV4dEVsZW0uYXR0cihcInhcIiwgdGV4dERhdGEueCk7XG4gIHRleHRFbGVtLmF0dHIoXCJ5XCIsIHRleHREYXRhLnkpO1xuICB0ZXh0RWxlbS5hdHRyKFwiY2xhc3NcIiwgXCJsZWdlbmRcIik7XG4gIHRleHRFbGVtLnN0eWxlKFwidGV4dC1hbmNob3JcIiwgdGV4dERhdGEuYW5jaG9yKTtcbiAgdGV4dERhdGEuY2xhc3MgIT09IHZvaWQgMCAmJiB0ZXh0RWxlbS5hdHRyKFwiY2xhc3NcIiwgdGV4dERhdGEuY2xhc3MpO1xuICBjb25zdCB0c3BhbiA9IHRleHRFbGVtLmFwcGVuZChcInRzcGFuXCIpO1xuICB0c3Bhbi5hdHRyKFwieFwiLCB0ZXh0RGF0YS54ICsgdGV4dERhdGEudGV4dE1hcmdpbiAqIDIpO1xuICB0c3Bhbi50ZXh0KG5UZXh0KTtcbiAgcmV0dXJuIHRleHRFbGVtO1xufTtcbmNvbnN0IGRyYXdJbWFnZSA9IChlbGVtLCB4LCB5LCBsaW5rKSA9PiB7XG4gIGNvbnN0IGltYWdlRWxlbWVudCA9IGVsZW0uYXBwZW5kKFwiaW1hZ2VcIik7XG4gIGltYWdlRWxlbWVudC5hdHRyKFwieFwiLCB4KTtcbiAgaW1hZ2VFbGVtZW50LmF0dHIoXCJ5XCIsIHkpO1xuICBjb25zdCBzYW5pdGl6ZWRMaW5rID0gc2FuaXRpemVVcmwobGluayk7XG4gIGltYWdlRWxlbWVudC5hdHRyKFwieGxpbms6aHJlZlwiLCBzYW5pdGl6ZWRMaW5rKTtcbn07XG5jb25zdCBkcmF3RW1iZWRkZWRJbWFnZSA9IChlbGVtZW50LCB4LCB5LCBsaW5rKSA9PiB7XG4gIGNvbnN0IGltYWdlRWxlbWVudCA9IGVsZW1lbnQuYXBwZW5kKFwidXNlXCIpO1xuICBpbWFnZUVsZW1lbnQuYXR0cihcInhcIiwgeCk7XG4gIGltYWdlRWxlbWVudC5hdHRyKFwieVwiLCB5KTtcbiAgY29uc3Qgc2FuaXRpemVkTGluayA9IHNhbml0aXplVXJsKGxpbmspO1xuICBpbWFnZUVsZW1lbnQuYXR0cihcInhsaW5rOmhyZWZcIiwgYCMke3Nhbml0aXplZExpbmt9YCk7XG59O1xuY29uc3QgZ2V0Tm90ZVJlY3QgPSAoKSA9PiB7XG4gIGNvbnN0IG5vdGVSZWN0RGF0YSA9IHtcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgd2lkdGg6IDEwMCxcbiAgICBoZWlnaHQ6IDEwMCxcbiAgICBmaWxsOiBcIiNFREYyQUVcIixcbiAgICBzdHJva2U6IFwiIzY2NlwiLFxuICAgIGFuY2hvcjogXCJzdGFydFwiLFxuICAgIHJ4OiAwLFxuICAgIHJ5OiAwXG4gIH07XG4gIHJldHVybiBub3RlUmVjdERhdGE7XG59O1xuY29uc3QgZ2V0VGV4dE9iaiA9ICgpID0+IHtcbiAgY29uc3QgdGVzdE9iamVjdCA9IHtcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgd2lkdGg6IDEwMCxcbiAgICBoZWlnaHQ6IDEwMCxcbiAgICBcInRleHQtYW5jaG9yXCI6IFwic3RhcnRcIixcbiAgICBzdHlsZTogXCIjNjY2XCIsXG4gICAgdGV4dE1hcmdpbjogMCxcbiAgICByeDogMCxcbiAgICByeTogMCxcbiAgICB0c3BhbjogdHJ1ZVxuICB9O1xuICByZXR1cm4gdGVzdE9iamVjdDtcbn07XG5leHBvcnQge1xuICBkcmF3QmFja2dyb3VuZFJlY3QgYXMgYSxcbiAgZHJhd0VtYmVkZGVkSW1hZ2UgYXMgYixcbiAgZHJhd0ltYWdlIGFzIGMsXG4gIGRyYXdSZWN0IGFzIGQsXG4gIGdldFRleHRPYmogYXMgZSxcbiAgZHJhd1RleHQgYXMgZixcbiAgZ2V0Tm90ZVJlY3QgYXMgZ1xufTtcbiIsCiAgICAiaW1wb3J0IHsgcyBhcyBzZXRBY2NUaXRsZSwgZyBhcyBnZXRBY2NUaXRsZSwgYSBhcyBnZXRBY2NEZXNjcmlwdGlvbiwgYiBhcyBzZXRBY2NEZXNjcmlwdGlvbiwgYyBhcyBnZXRDb25maWcsIGQgYXMgc2FuaXRpemVUZXh0LCBlIGFzIGNvbW1vbiwgZiBhcyBhc3NpZ25XaXRoRGVwdGgsIGggYXMgY2FsY3VsYXRlVGV4dFdpZHRoLCBsIGFzIGxvZywgaSBhcyBjb25maWd1cmVTdmdTaXplLCB3IGFzIHdyYXBMYWJlbCwgaiBhcyBjYWxjdWxhdGVUZXh0SGVpZ2h0IH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0IH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgeyBkIGFzIGRyYXdSZWN0JDEsIGcgYXMgZ2V0Tm90ZVJlY3QgfSBmcm9tIFwiLi9zdmdEcmF3Q29tbW9uLTVlMWNmZDFkLmpzXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZVVybCB9IGZyb20gXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IFwidHMtZGVkZW50XCI7XG5pbXBvcnQgXCJkYXlqc1wiO1xuaW1wb3J0IFwiZG9tcHVyaWZ5XCI7XG5pbXBvcnQgXCJraHJvbWFcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZW1vaXplLmpzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVyZ2UuanNcIjtcbmltcG9ydCBcInN0eWxpc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL2lzRW1wdHkuanNcIjtcbnZhciBwYXJzZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIG8gPSBmdW5jdGlvbihrLCB2LCBvMiwgbCkge1xuICAgIGZvciAobzIgPSBvMiB8fCB7fSwgbCA9IGsubGVuZ3RoOyBsLS07IG8yW2tbbF1dID0gdilcbiAgICAgIDtcbiAgICByZXR1cm4gbzI7XG4gIH0sICRWMCA9IFsxLCAyNF0sICRWMSA9IFsxLCAyNV0sICRWMiA9IFsxLCAyNl0sICRWMyA9IFsxLCAyN10sICRWNCA9IFsxLCAyOF0sICRWNSA9IFsxLCA2M10sICRWNiA9IFsxLCA2NF0sICRWNyA9IFsxLCA2NV0sICRWOCA9IFsxLCA2Nl0sICRWOSA9IFsxLCA2N10sICRWYSA9IFsxLCA2OF0sICRWYiA9IFsxLCA2OV0sICRWYyA9IFsxLCAyOV0sICRWZCA9IFsxLCAzMF0sICRWZSA9IFsxLCAzMV0sICRWZiA9IFsxLCAzMl0sICRWZyA9IFsxLCAzM10sICRWaCA9IFsxLCAzNF0sICRWaSA9IFsxLCAzNV0sICRWaiA9IFsxLCAzNl0sICRWayA9IFsxLCAzN10sICRWbCA9IFsxLCAzOF0sICRWbSA9IFsxLCAzOV0sICRWbiA9IFsxLCA0MF0sICRWbyA9IFsxLCA0MV0sICRWcCA9IFsxLCA0Ml0sICRWcSA9IFsxLCA0M10sICRWciA9IFsxLCA0NF0sICRWcyA9IFsxLCA0NV0sICRWdCA9IFsxLCA0Nl0sICRWdSA9IFsxLCA0N10sICRWdiA9IFsxLCA0OF0sICRWdyA9IFsxLCA1MF0sICRWeCA9IFsxLCA1MV0sICRWeSA9IFsxLCA1Ml0sICRWeiA9IFsxLCA1M10sICRWQSA9IFsxLCA1NF0sICRWQiA9IFsxLCA1NV0sICRWQyA9IFsxLCA1Nl0sICRWRCA9IFsxLCA1N10sICRWRSA9IFsxLCA1OF0sICRWRiA9IFsxLCA1OV0sICRWRyA9IFsxLCA2MF0sICRWSCA9IFsxNCwgNDJdLCAkVkkgPSBbMTQsIDM0LCAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzRdLCAkVkogPSBbMTIsIDE0LCAzNCwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA2NiwgNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0XSwgJFZLID0gWzEsIDgyXSwgJFZMID0gWzEsIDgzXSwgJFZNID0gWzEsIDg0XSwgJFZOID0gWzEsIDg1XSwgJFZPID0gWzEyLCAxNCwgNDJdLCAkVlAgPSBbMTIsIDE0LCAzMywgNDJdLCAkVlEgPSBbMTIsIDE0LCAzMywgNDIsIDc2LCA3NywgNzksIDgwXSwgJFZSID0gWzEyLCAzM10sICRWUyA9IFszNCwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzRdO1xuICB2YXIgcGFyc2VyMiA9IHtcbiAgICB0cmFjZTogZnVuY3Rpb24gdHJhY2UoKSB7XG4gICAgfSxcbiAgICB5eToge30sXG4gICAgc3ltYm9sc186IHsgXCJlcnJvclwiOiAyLCBcInN0YXJ0XCI6IDMsIFwibWVybWFpZERvY1wiOiA0LCBcImRpcmVjdGlvblwiOiA1LCBcImRpcmVjdGlvbl90YlwiOiA2LCBcImRpcmVjdGlvbl9idFwiOiA3LCBcImRpcmVjdGlvbl9ybFwiOiA4LCBcImRpcmVjdGlvbl9sclwiOiA5LCBcImdyYXBoQ29uZmlnXCI6IDEwLCBcIkM0X0NPTlRFWFRcIjogMTEsIFwiTkVXTElORVwiOiAxMiwgXCJzdGF0ZW1lbnRzXCI6IDEzLCBcIkVPRlwiOiAxNCwgXCJDNF9DT05UQUlORVJcIjogMTUsIFwiQzRfQ09NUE9ORU5UXCI6IDE2LCBcIkM0X0RZTkFNSUNcIjogMTcsIFwiQzRfREVQTE9ZTUVOVFwiOiAxOCwgXCJvdGhlclN0YXRlbWVudHNcIjogMTksIFwiZGlhZ3JhbVN0YXRlbWVudHNcIjogMjAsIFwib3RoZXJTdGF0ZW1lbnRcIjogMjEsIFwidGl0bGVcIjogMjIsIFwiYWNjRGVzY3JpcHRpb25cIjogMjMsIFwiYWNjX3RpdGxlXCI6IDI0LCBcImFjY190aXRsZV92YWx1ZVwiOiAyNSwgXCJhY2NfZGVzY3JcIjogMjYsIFwiYWNjX2Rlc2NyX3ZhbHVlXCI6IDI3LCBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIjogMjgsIFwiYm91bmRhcnlTdGF0ZW1lbnRcIjogMjksIFwiYm91bmRhcnlTdGFydFN0YXRlbWVudFwiOiAzMCwgXCJib3VuZGFyeVN0b3BTdGF0ZW1lbnRcIjogMzEsIFwiYm91bmRhcnlTdGFydFwiOiAzMiwgXCJMQlJBQ0VcIjogMzMsIFwiRU5URVJQUklTRV9CT1VOREFSWVwiOiAzNCwgXCJhdHRyaWJ1dGVzXCI6IDM1LCBcIlNZU1RFTV9CT1VOREFSWVwiOiAzNiwgXCJCT1VOREFSWVwiOiAzNywgXCJDT05UQUlORVJfQk9VTkRBUllcIjogMzgsIFwiTk9ERVwiOiAzOSwgXCJOT0RFX0xcIjogNDAsIFwiTk9ERV9SXCI6IDQxLCBcIlJCUkFDRVwiOiA0MiwgXCJkaWFncmFtU3RhdGVtZW50XCI6IDQzLCBcIlBFUlNPTlwiOiA0NCwgXCJQRVJTT05fRVhUXCI6IDQ1LCBcIlNZU1RFTVwiOiA0NiwgXCJTWVNURU1fREJcIjogNDcsIFwiU1lTVEVNX1FVRVVFXCI6IDQ4LCBcIlNZU1RFTV9FWFRcIjogNDksIFwiU1lTVEVNX0VYVF9EQlwiOiA1MCwgXCJTWVNURU1fRVhUX1FVRVVFXCI6IDUxLCBcIkNPTlRBSU5FUlwiOiA1MiwgXCJDT05UQUlORVJfREJcIjogNTMsIFwiQ09OVEFJTkVSX1FVRVVFXCI6IDU0LCBcIkNPTlRBSU5FUl9FWFRcIjogNTUsIFwiQ09OVEFJTkVSX0VYVF9EQlwiOiA1NiwgXCJDT05UQUlORVJfRVhUX1FVRVVFXCI6IDU3LCBcIkNPTVBPTkVOVFwiOiA1OCwgXCJDT01QT05FTlRfREJcIjogNTksIFwiQ09NUE9ORU5UX1FVRVVFXCI6IDYwLCBcIkNPTVBPTkVOVF9FWFRcIjogNjEsIFwiQ09NUE9ORU5UX0VYVF9EQlwiOiA2MiwgXCJDT01QT05FTlRfRVhUX1FVRVVFXCI6IDYzLCBcIlJFTFwiOiA2NCwgXCJCSVJFTFwiOiA2NSwgXCJSRUxfVVwiOiA2NiwgXCJSRUxfRFwiOiA2NywgXCJSRUxfTFwiOiA2OCwgXCJSRUxfUlwiOiA2OSwgXCJSRUxfQlwiOiA3MCwgXCJSRUxfSU5ERVhcIjogNzEsIFwiVVBEQVRFX0VMX1NUWUxFXCI6IDcyLCBcIlVQREFURV9SRUxfU1RZTEVcIjogNzMsIFwiVVBEQVRFX0xBWU9VVF9DT05GSUdcIjogNzQsIFwiYXR0cmlidXRlXCI6IDc1LCBcIlNUUlwiOiA3NiwgXCJTVFJfS0VZXCI6IDc3LCBcIlNUUl9WQUxVRVwiOiA3OCwgXCJBVFRSSUJVVEVcIjogNzksIFwiQVRUUklCVVRFX0VNUFRZXCI6IDgwLCBcIiRhY2NlcHRcIjogMCwgXCIkZW5kXCI6IDEgfSxcbiAgICB0ZXJtaW5hbHNfOiB7IDI6IFwiZXJyb3JcIiwgNjogXCJkaXJlY3Rpb25fdGJcIiwgNzogXCJkaXJlY3Rpb25fYnRcIiwgODogXCJkaXJlY3Rpb25fcmxcIiwgOTogXCJkaXJlY3Rpb25fbHJcIiwgMTE6IFwiQzRfQ09OVEVYVFwiLCAxMjogXCJORVdMSU5FXCIsIDE0OiBcIkVPRlwiLCAxNTogXCJDNF9DT05UQUlORVJcIiwgMTY6IFwiQzRfQ09NUE9ORU5UXCIsIDE3OiBcIkM0X0RZTkFNSUNcIiwgMTg6IFwiQzRfREVQTE9ZTUVOVFwiLCAyMjogXCJ0aXRsZVwiLCAyMzogXCJhY2NEZXNjcmlwdGlvblwiLCAyNDogXCJhY2NfdGl0bGVcIiwgMjU6IFwiYWNjX3RpdGxlX3ZhbHVlXCIsIDI2OiBcImFjY19kZXNjclwiLCAyNzogXCJhY2NfZGVzY3JfdmFsdWVcIiwgMjg6IFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiLCAzMzogXCJMQlJBQ0VcIiwgMzQ6IFwiRU5URVJQUklTRV9CT1VOREFSWVwiLCAzNjogXCJTWVNURU1fQk9VTkRBUllcIiwgMzc6IFwiQk9VTkRBUllcIiwgMzg6IFwiQ09OVEFJTkVSX0JPVU5EQVJZXCIsIDM5OiBcIk5PREVcIiwgNDA6IFwiTk9ERV9MXCIsIDQxOiBcIk5PREVfUlwiLCA0MjogXCJSQlJBQ0VcIiwgNDQ6IFwiUEVSU09OXCIsIDQ1OiBcIlBFUlNPTl9FWFRcIiwgNDY6IFwiU1lTVEVNXCIsIDQ3OiBcIlNZU1RFTV9EQlwiLCA0ODogXCJTWVNURU1fUVVFVUVcIiwgNDk6IFwiU1lTVEVNX0VYVFwiLCA1MDogXCJTWVNURU1fRVhUX0RCXCIsIDUxOiBcIlNZU1RFTV9FWFRfUVVFVUVcIiwgNTI6IFwiQ09OVEFJTkVSXCIsIDUzOiBcIkNPTlRBSU5FUl9EQlwiLCA1NDogXCJDT05UQUlORVJfUVVFVUVcIiwgNTU6IFwiQ09OVEFJTkVSX0VYVFwiLCA1NjogXCJDT05UQUlORVJfRVhUX0RCXCIsIDU3OiBcIkNPTlRBSU5FUl9FWFRfUVVFVUVcIiwgNTg6IFwiQ09NUE9ORU5UXCIsIDU5OiBcIkNPTVBPTkVOVF9EQlwiLCA2MDogXCJDT01QT05FTlRfUVVFVUVcIiwgNjE6IFwiQ09NUE9ORU5UX0VYVFwiLCA2MjogXCJDT01QT05FTlRfRVhUX0RCXCIsIDYzOiBcIkNPTVBPTkVOVF9FWFRfUVVFVUVcIiwgNjQ6IFwiUkVMXCIsIDY1OiBcIkJJUkVMXCIsIDY2OiBcIlJFTF9VXCIsIDY3OiBcIlJFTF9EXCIsIDY4OiBcIlJFTF9MXCIsIDY5OiBcIlJFTF9SXCIsIDcwOiBcIlJFTF9CXCIsIDcxOiBcIlJFTF9JTkRFWFwiLCA3MjogXCJVUERBVEVfRUxfU1RZTEVcIiwgNzM6IFwiVVBEQVRFX1JFTF9TVFlMRVwiLCA3NDogXCJVUERBVEVfTEFZT1VUX0NPTkZJR1wiLCA3NjogXCJTVFJcIiwgNzc6IFwiU1RSX0tFWVwiLCA3ODogXCJTVFJfVkFMVUVcIiwgNzk6IFwiQVRUUklCVVRFXCIsIDgwOiBcIkFUVFJJQlVURV9FTVBUWVwiIH0sXG4gICAgcHJvZHVjdGlvbnNfOiBbMCwgWzMsIDFdLCBbMywgMV0sIFs1LCAxXSwgWzUsIDFdLCBbNSwgMV0sIFs1LCAxXSwgWzQsIDFdLCBbMTAsIDRdLCBbMTAsIDRdLCBbMTAsIDRdLCBbMTAsIDRdLCBbMTAsIDRdLCBbMTMsIDFdLCBbMTMsIDFdLCBbMTMsIDJdLCBbMTksIDFdLCBbMTksIDJdLCBbMTksIDNdLCBbMjEsIDFdLCBbMjEsIDFdLCBbMjEsIDJdLCBbMjEsIDJdLCBbMjEsIDFdLCBbMjksIDNdLCBbMzAsIDNdLCBbMzAsIDNdLCBbMzAsIDRdLCBbMzIsIDJdLCBbMzIsIDJdLCBbMzIsIDJdLCBbMzIsIDJdLCBbMzIsIDJdLCBbMzIsIDJdLCBbMzIsIDJdLCBbMzEsIDFdLCBbMjAsIDFdLCBbMjAsIDJdLCBbMjAsIDNdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDFdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbNDMsIDJdLCBbMzUsIDFdLCBbMzUsIDJdLCBbNzUsIDFdLCBbNzUsIDJdLCBbNzUsIDFdLCBbNzUsIDFdXSxcbiAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXl0ZXh0LCB5eWxlbmcsIHl5bGluZW5vLCB5eSwgeXlzdGF0ZSwgJCQsIF8kKSB7XG4gICAgICB2YXIgJDAgPSAkJC5sZW5ndGggLSAxO1xuICAgICAgc3dpdGNoICh5eXN0YXRlKSB7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICB5eS5zZXREaXJlY3Rpb24oXCJUQlwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHl5LnNldERpcmVjdGlvbihcIkJUXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgeXkuc2V0RGlyZWN0aW9uKFwiUkxcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICB5eS5zZXREaXJlY3Rpb24oXCJMUlwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICBjYXNlIDk6XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgeXkuc2V0QzRUeXBlKCQkWyQwIC0gM10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgIHl5LnNldFRpdGxlKCQkWyQwXS5zdWJzdHJpbmcoNikpO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS5zdWJzdHJpbmcoNik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjA6XG4gICAgICAgICAgeXkuc2V0QWNjRGVzY3JpcHRpb24oJCRbJDBdLnN1YnN0cmluZygxNSkpO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS5zdWJzdHJpbmcoMTUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIxOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS50cmltKCk7XG4gICAgICAgICAgeXkuc2V0VGl0bGUodGhpcy4kKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgY2FzZSAyMzpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0udHJpbSgpO1xuICAgICAgICAgIHl5LnNldEFjY0Rlc2NyaXB0aW9uKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjg6XG4gICAgICAgIGNhc2UgMjk6XG4gICAgICAgICAgJCRbJDBdLnNwbGljZSgyLCAwLCBcIkVOVEVSUFJJU0VcIik7XG4gICAgICAgICAgeXkuYWRkUGVyc29uT3JTeXN0ZW1Cb3VuZGFyeSguLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICB5eS5hZGRQZXJzb25PclN5c3RlbUJvdW5kYXJ5KC4uLiQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgICQkWyQwXS5zcGxpY2UoMiwgMCwgXCJDT05UQUlORVJcIik7XG4gICAgICAgICAgeXkuYWRkQ29udGFpbmVyQm91bmRhcnkoLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgeXkuYWRkRGVwbG95bWVudE5vZGUoXCJub2RlXCIsIC4uLiQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMzOlxuICAgICAgICAgIHl5LmFkZERlcGxveW1lbnROb2RlKFwibm9kZUxcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzQ6XG4gICAgICAgICAgeXkuYWRkRGVwbG95bWVudE5vZGUoXCJub2RlUlwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNTpcbiAgICAgICAgICB5eS5wb3BCb3VuZGFyeVBhcnNlU3RhY2soKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOTpcbiAgICAgICAgICB5eS5hZGRQZXJzb25PclN5c3RlbShcInBlcnNvblwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MDpcbiAgICAgICAgICB5eS5hZGRQZXJzb25PclN5c3RlbShcImV4dGVybmFsX3BlcnNvblwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MTpcbiAgICAgICAgICB5eS5hZGRQZXJzb25PclN5c3RlbShcInN5c3RlbVwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MjpcbiAgICAgICAgICB5eS5hZGRQZXJzb25PclN5c3RlbShcInN5c3RlbV9kYlwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MzpcbiAgICAgICAgICB5eS5hZGRQZXJzb25PclN5c3RlbShcInN5c3RlbV9xdWV1ZVwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NDpcbiAgICAgICAgICB5eS5hZGRQZXJzb25PclN5c3RlbShcImV4dGVybmFsX3N5c3RlbVwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NTpcbiAgICAgICAgICB5eS5hZGRQZXJzb25PclN5c3RlbShcImV4dGVybmFsX3N5c3RlbV9kYlwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NjpcbiAgICAgICAgICB5eS5hZGRQZXJzb25PclN5c3RlbShcImV4dGVybmFsX3N5c3RlbV9xdWV1ZVwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NzpcbiAgICAgICAgICB5eS5hZGRDb250YWluZXIoXCJjb250YWluZXJcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDg6XG4gICAgICAgICAgeXkuYWRkQ29udGFpbmVyKFwiY29udGFpbmVyX2RiXCIsIC4uLiQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ5OlxuICAgICAgICAgIHl5LmFkZENvbnRhaW5lcihcImNvbnRhaW5lcl9xdWV1ZVwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1MDpcbiAgICAgICAgICB5eS5hZGRDb250YWluZXIoXCJleHRlcm5hbF9jb250YWluZXJcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTE6XG4gICAgICAgICAgeXkuYWRkQ29udGFpbmVyKFwiZXh0ZXJuYWxfY29udGFpbmVyX2RiXCIsIC4uLiQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDUyOlxuICAgICAgICAgIHl5LmFkZENvbnRhaW5lcihcImV4dGVybmFsX2NvbnRhaW5lcl9xdWV1ZVwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1MzpcbiAgICAgICAgICB5eS5hZGRDb21wb25lbnQoXCJjb21wb25lbnRcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTQ6XG4gICAgICAgICAgeXkuYWRkQ29tcG9uZW50KFwiY29tcG9uZW50X2RiXCIsIC4uLiQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU1OlxuICAgICAgICAgIHl5LmFkZENvbXBvbmVudChcImNvbXBvbmVudF9xdWV1ZVwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1NjpcbiAgICAgICAgICB5eS5hZGRDb21wb25lbnQoXCJleHRlcm5hbF9jb21wb25lbnRcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTc6XG4gICAgICAgICAgeXkuYWRkQ29tcG9uZW50KFwiZXh0ZXJuYWxfY29tcG9uZW50X2RiXCIsIC4uLiQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU4OlxuICAgICAgICAgIHl5LmFkZENvbXBvbmVudChcImV4dGVybmFsX2NvbXBvbmVudF9xdWV1ZVwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2MDpcbiAgICAgICAgICB5eS5hZGRSZWwoXCJyZWxcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjE6XG4gICAgICAgICAgeXkuYWRkUmVsKFwiYmlyZWxcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjI6XG4gICAgICAgICAgeXkuYWRkUmVsKFwicmVsX3VcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjM6XG4gICAgICAgICAgeXkuYWRkUmVsKFwicmVsX2RcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjQ6XG4gICAgICAgICAgeXkuYWRkUmVsKFwicmVsX2xcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjU6XG4gICAgICAgICAgeXkuYWRkUmVsKFwicmVsX3JcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjY6XG4gICAgICAgICAgeXkuYWRkUmVsKFwicmVsX2JcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjc6XG4gICAgICAgICAgJCRbJDBdLnNwbGljZSgwLCAxKTtcbiAgICAgICAgICB5eS5hZGRSZWwoXCJyZWxcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjg6XG4gICAgICAgICAgeXkudXBkYXRlRWxTdHlsZShcInVwZGF0ZV9lbF9zdHlsZVwiLCAuLi4kJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2OTpcbiAgICAgICAgICB5eS51cGRhdGVSZWxTdHlsZShcInVwZGF0ZV9yZWxfc3R5bGVcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzA6XG4gICAgICAgICAgeXkudXBkYXRlTGF5b3V0Q29uZmlnKFwidXBkYXRlX2xheW91dF9jb25maWdcIiwgLi4uJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzE6XG4gICAgICAgICAgdGhpcy4kID0gWyQkWyQwXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzI6XG4gICAgICAgICAgJCRbJDBdLnVuc2hpZnQoJCRbJDAgLSAxXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDczOlxuICAgICAgICBjYXNlIDc1OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS50cmltKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzQ6XG4gICAgICAgICAgbGV0IGt2ID0ge307XG4gICAgICAgICAga3ZbJCRbJDAgLSAxXS50cmltKCldID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB0aGlzLiQgPSBrdjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3NjpcbiAgICAgICAgICB0aGlzLiQgPSBcIlwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgdGFibGU6IFt7IDM6IDEsIDQ6IDIsIDU6IDMsIDY6IFsxLCA1XSwgNzogWzEsIDZdLCA4OiBbMSwgN10sIDk6IFsxLCA4XSwgMTA6IDQsIDExOiBbMSwgOV0sIDE1OiBbMSwgMTBdLCAxNjogWzEsIDExXSwgMTc6IFsxLCAxMl0sIDE4OiBbMSwgMTNdIH0sIHsgMTogWzNdIH0sIHsgMTogWzIsIDFdIH0sIHsgMTogWzIsIDJdIH0sIHsgMTogWzIsIDddIH0sIHsgMTogWzIsIDNdIH0sIHsgMTogWzIsIDRdIH0sIHsgMTogWzIsIDVdIH0sIHsgMTogWzIsIDZdIH0sIHsgMTI6IFsxLCAxNF0gfSwgeyAxMjogWzEsIDE1XSB9LCB7IDEyOiBbMSwgMTZdIH0sIHsgMTI6IFsxLCAxN10gfSwgeyAxMjogWzEsIDE4XSB9LCB7IDEzOiAxOSwgMTk6IDIwLCAyMDogMjEsIDIxOiAyMiwgMjI6ICRWMCwgMjM6ICRWMSwgMjQ6ICRWMiwgMjY6ICRWMywgMjg6ICRWNCwgMjk6IDQ5LCAzMDogNjEsIDMyOiA2MiwgMzQ6ICRWNSwgMzY6ICRWNiwgMzc6ICRWNywgMzg6ICRWOCwgMzk6ICRWOSwgNDA6ICRWYSwgNDE6ICRWYiwgNDM6IDIzLCA0NDogJFZjLCA0NTogJFZkLCA0NjogJFZlLCA0NzogJFZmLCA0ODogJFZnLCA0OTogJFZoLCA1MDogJFZpLCA1MTogJFZqLCA1MjogJFZrLCA1MzogJFZsLCA1NDogJFZtLCA1NTogJFZuLCA1NjogJFZvLCA1NzogJFZwLCA1ODogJFZxLCA1OTogJFZyLCA2MDogJFZzLCA2MTogJFZ0LCA2MjogJFZ1LCA2MzogJFZ2LCA2NDogJFZ3LCA2NTogJFZ4LCA2NjogJFZ5LCA2NzogJFZ6LCA2ODogJFZBLCA2OTogJFZCLCA3MDogJFZDLCA3MTogJFZELCA3MjogJFZFLCA3MzogJFZGLCA3NDogJFZHIH0sIHsgMTM6IDcwLCAxOTogMjAsIDIwOiAyMSwgMjE6IDIyLCAyMjogJFYwLCAyMzogJFYxLCAyNDogJFYyLCAyNjogJFYzLCAyODogJFY0LCAyOTogNDksIDMwOiA2MSwgMzI6IDYyLCAzNDogJFY1LCAzNjogJFY2LCAzNzogJFY3LCAzODogJFY4LCAzOTogJFY5LCA0MDogJFZhLCA0MTogJFZiLCA0MzogMjMsIDQ0OiAkVmMsIDQ1OiAkVmQsIDQ2OiAkVmUsIDQ3OiAkVmYsIDQ4OiAkVmcsIDQ5OiAkVmgsIDUwOiAkVmksIDUxOiAkVmosIDUyOiAkVmssIDUzOiAkVmwsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiAkVm8sIDU3OiAkVnAsIDU4OiAkVnEsIDU5OiAkVnIsIDYwOiAkVnMsIDYxOiAkVnQsIDYyOiAkVnUsIDYzOiAkVnYsIDY0OiAkVncsIDY1OiAkVngsIDY2OiAkVnksIDY3OiAkVnosIDY4OiAkVkEsIDY5OiAkVkIsIDcwOiAkVkMsIDcxOiAkVkQsIDcyOiAkVkUsIDczOiAkVkYsIDc0OiAkVkcgfSwgeyAxMzogNzEsIDE5OiAyMCwgMjA6IDIxLCAyMTogMjIsIDIyOiAkVjAsIDIzOiAkVjEsIDI0OiAkVjIsIDI2OiAkVjMsIDI4OiAkVjQsIDI5OiA0OSwgMzA6IDYxLCAzMjogNjIsIDM0OiAkVjUsIDM2OiAkVjYsIDM3OiAkVjcsIDM4OiAkVjgsIDM5OiAkVjksIDQwOiAkVmEsIDQxOiAkVmIsIDQzOiAyMywgNDQ6ICRWYywgNDU6ICRWZCwgNDY6ICRWZSwgNDc6ICRWZiwgNDg6ICRWZywgNDk6ICRWaCwgNTA6ICRWaSwgNTE6ICRWaiwgNTI6ICRWaywgNTM6ICRWbCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6ICRWbywgNTc6ICRWcCwgNTg6ICRWcSwgNTk6ICRWciwgNjA6ICRWcywgNjE6ICRWdCwgNjI6ICRWdSwgNjM6ICRWdiwgNjQ6ICRWdywgNjU6ICRWeCwgNjY6ICRWeSwgNjc6ICRWeiwgNjg6ICRWQSwgNjk6ICRWQiwgNzA6ICRWQywgNzE6ICRWRCwgNzI6ICRWRSwgNzM6ICRWRiwgNzQ6ICRWRyB9LCB7IDEzOiA3MiwgMTk6IDIwLCAyMDogMjEsIDIxOiAyMiwgMjI6ICRWMCwgMjM6ICRWMSwgMjQ6ICRWMiwgMjY6ICRWMywgMjg6ICRWNCwgMjk6IDQ5LCAzMDogNjEsIDMyOiA2MiwgMzQ6ICRWNSwgMzY6ICRWNiwgMzc6ICRWNywgMzg6ICRWOCwgMzk6ICRWOSwgNDA6ICRWYSwgNDE6ICRWYiwgNDM6IDIzLCA0NDogJFZjLCA0NTogJFZkLCA0NjogJFZlLCA0NzogJFZmLCA0ODogJFZnLCA0OTogJFZoLCA1MDogJFZpLCA1MTogJFZqLCA1MjogJFZrLCA1MzogJFZsLCA1NDogJFZtLCA1NTogJFZuLCA1NjogJFZvLCA1NzogJFZwLCA1ODogJFZxLCA1OTogJFZyLCA2MDogJFZzLCA2MTogJFZ0LCA2MjogJFZ1LCA2MzogJFZ2LCA2NDogJFZ3LCA2NTogJFZ4LCA2NjogJFZ5LCA2NzogJFZ6LCA2ODogJFZBLCA2OTogJFZCLCA3MDogJFZDLCA3MTogJFZELCA3MjogJFZFLCA3MzogJFZGLCA3NDogJFZHIH0sIHsgMTM6IDczLCAxOTogMjAsIDIwOiAyMSwgMjE6IDIyLCAyMjogJFYwLCAyMzogJFYxLCAyNDogJFYyLCAyNjogJFYzLCAyODogJFY0LCAyOTogNDksIDMwOiA2MSwgMzI6IDYyLCAzNDogJFY1LCAzNjogJFY2LCAzNzogJFY3LCAzODogJFY4LCAzOTogJFY5LCA0MDogJFZhLCA0MTogJFZiLCA0MzogMjMsIDQ0OiAkVmMsIDQ1OiAkVmQsIDQ2OiAkVmUsIDQ3OiAkVmYsIDQ4OiAkVmcsIDQ5OiAkVmgsIDUwOiAkVmksIDUxOiAkVmosIDUyOiAkVmssIDUzOiAkVmwsIDU0OiAkVm0sIDU1OiAkVm4sIDU2OiAkVm8sIDU3OiAkVnAsIDU4OiAkVnEsIDU5OiAkVnIsIDYwOiAkVnMsIDYxOiAkVnQsIDYyOiAkVnUsIDYzOiAkVnYsIDY0OiAkVncsIDY1OiAkVngsIDY2OiAkVnksIDY3OiAkVnosIDY4OiAkVkEsIDY5OiAkVkIsIDcwOiAkVkMsIDcxOiAkVkQsIDcyOiAkVkUsIDczOiAkVkYsIDc0OiAkVkcgfSwgeyAxNDogWzEsIDc0XSB9LCBvKCRWSCwgWzIsIDEzXSwgeyA0MzogMjMsIDI5OiA0OSwgMzA6IDYxLCAzMjogNjIsIDIwOiA3NSwgMzQ6ICRWNSwgMzY6ICRWNiwgMzc6ICRWNywgMzg6ICRWOCwgMzk6ICRWOSwgNDA6ICRWYSwgNDE6ICRWYiwgNDQ6ICRWYywgNDU6ICRWZCwgNDY6ICRWZSwgNDc6ICRWZiwgNDg6ICRWZywgNDk6ICRWaCwgNTA6ICRWaSwgNTE6ICRWaiwgNTI6ICRWaywgNTM6ICRWbCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6ICRWbywgNTc6ICRWcCwgNTg6ICRWcSwgNTk6ICRWciwgNjA6ICRWcywgNjE6ICRWdCwgNjI6ICRWdSwgNjM6ICRWdiwgNjQ6ICRWdywgNjU6ICRWeCwgNjY6ICRWeSwgNjc6ICRWeiwgNjg6ICRWQSwgNjk6ICRWQiwgNzA6ICRWQywgNzE6ICRWRCwgNzI6ICRWRSwgNzM6ICRWRiwgNzQ6ICRWRyB9KSwgbygkVkgsIFsyLCAxNF0pLCBvKCRWSSwgWzIsIDE2XSwgeyAxMjogWzEsIDc2XSB9KSwgbygkVkgsIFsyLCAzNl0sIHsgMTI6IFsxLCA3N10gfSksIG8oJFZKLCBbMiwgMTldKSwgbygkVkosIFsyLCAyMF0pLCB7IDI1OiBbMSwgNzhdIH0sIHsgMjc6IFsxLCA3OV0gfSwgbygkVkosIFsyLCAyM10pLCB7IDM1OiA4MCwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDg2LCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogODcsIDc1OiA4MSwgNzY6ICRWSywgNzc6ICRWTCwgNzk6ICRWTSwgODA6ICRWTiB9LCB7IDM1OiA4OCwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDg5LCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogOTAsIDc1OiA4MSwgNzY6ICRWSywgNzc6ICRWTCwgNzk6ICRWTSwgODA6ICRWTiB9LCB7IDM1OiA5MSwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDkyLCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogOTMsIDc1OiA4MSwgNzY6ICRWSywgNzc6ICRWTCwgNzk6ICRWTSwgODA6ICRWTiB9LCB7IDM1OiA5NCwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDk1LCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogOTYsIDc1OiA4MSwgNzY6ICRWSywgNzc6ICRWTCwgNzk6ICRWTSwgODA6ICRWTiB9LCB7IDM1OiA5NywgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDk4LCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogOTksIDc1OiA4MSwgNzY6ICRWSywgNzc6ICRWTCwgNzk6ICRWTSwgODA6ICRWTiB9LCB7IDM1OiAxMDAsIDc1OiA4MSwgNzY6ICRWSywgNzc6ICRWTCwgNzk6ICRWTSwgODA6ICRWTiB9LCB7IDM1OiAxMDEsIDc1OiA4MSwgNzY6ICRWSywgNzc6ICRWTCwgNzk6ICRWTSwgODA6ICRWTiB9LCB7IDM1OiAxMDIsIDc1OiA4MSwgNzY6ICRWSywgNzc6ICRWTCwgNzk6ICRWTSwgODA6ICRWTiB9LCB7IDM1OiAxMDMsIDc1OiA4MSwgNzY6ICRWSywgNzc6ICRWTCwgNzk6ICRWTSwgODA6ICRWTiB9LCB7IDM1OiAxMDQsIDc1OiA4MSwgNzY6ICRWSywgNzc6ICRWTCwgNzk6ICRWTSwgODA6ICRWTiB9LCBvKCRWTywgWzIsIDU5XSksIHsgMzU6IDEwNSwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDEwNiwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDEwNywgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDEwOCwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDEwOSwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDExMCwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDExMSwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDExMiwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDExMywgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDExNCwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMzU6IDExNSwgNzU6IDgxLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0sIHsgMjA6IDExNiwgMjk6IDQ5LCAzMDogNjEsIDMyOiA2MiwgMzQ6ICRWNSwgMzY6ICRWNiwgMzc6ICRWNywgMzg6ICRWOCwgMzk6ICRWOSwgNDA6ICRWYSwgNDE6ICRWYiwgNDM6IDIzLCA0NDogJFZjLCA0NTogJFZkLCA0NjogJFZlLCA0NzogJFZmLCA0ODogJFZnLCA0OTogJFZoLCA1MDogJFZpLCA1MTogJFZqLCA1MjogJFZrLCA1MzogJFZsLCA1NDogJFZtLCA1NTogJFZuLCA1NjogJFZvLCA1NzogJFZwLCA1ODogJFZxLCA1OTogJFZyLCA2MDogJFZzLCA2MTogJFZ0LCA2MjogJFZ1LCA2MzogJFZ2LCA2NDogJFZ3LCA2NTogJFZ4LCA2NjogJFZ5LCA2NzogJFZ6LCA2ODogJFZBLCA2OTogJFZCLCA3MDogJFZDLCA3MTogJFZELCA3MjogJFZFLCA3MzogJFZGLCA3NDogJFZHIH0sIHsgMTI6IFsxLCAxMThdLCAzMzogWzEsIDExN10gfSwgeyAzNTogMTE5LCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogMTIwLCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogMTIxLCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogMTIyLCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogMTIzLCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogMTI0LCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAzNTogMTI1LCA3NTogODEsIDc2OiAkVkssIDc3OiAkVkwsIDc5OiAkVk0sIDgwOiAkVk4gfSwgeyAxNDogWzEsIDEyNl0gfSwgeyAxNDogWzEsIDEyN10gfSwgeyAxNDogWzEsIDEyOF0gfSwgeyAxNDogWzEsIDEyOV0gfSwgeyAxOiBbMiwgOF0gfSwgbygkVkgsIFsyLCAxNV0pLCBvKCRWSSwgWzIsIDE3XSwgeyAyMTogMjIsIDE5OiAxMzAsIDIyOiAkVjAsIDIzOiAkVjEsIDI0OiAkVjIsIDI2OiAkVjMsIDI4OiAkVjQgfSksIG8oJFZILCBbMiwgMzddLCB7IDE5OiAyMCwgMjA6IDIxLCAyMTogMjIsIDQzOiAyMywgMjk6IDQ5LCAzMDogNjEsIDMyOiA2MiwgMTM6IDEzMSwgMjI6ICRWMCwgMjM6ICRWMSwgMjQ6ICRWMiwgMjY6ICRWMywgMjg6ICRWNCwgMzQ6ICRWNSwgMzY6ICRWNiwgMzc6ICRWNywgMzg6ICRWOCwgMzk6ICRWOSwgNDA6ICRWYSwgNDE6ICRWYiwgNDQ6ICRWYywgNDU6ICRWZCwgNDY6ICRWZSwgNDc6ICRWZiwgNDg6ICRWZywgNDk6ICRWaCwgNTA6ICRWaSwgNTE6ICRWaiwgNTI6ICRWaywgNTM6ICRWbCwgNTQ6ICRWbSwgNTU6ICRWbiwgNTY6ICRWbywgNTc6ICRWcCwgNTg6ICRWcSwgNTk6ICRWciwgNjA6ICRWcywgNjE6ICRWdCwgNjI6ICRWdSwgNjM6ICRWdiwgNjQ6ICRWdywgNjU6ICRWeCwgNjY6ICRWeSwgNjc6ICRWeiwgNjg6ICRWQSwgNjk6ICRWQiwgNzA6ICRWQywgNzE6ICRWRCwgNzI6ICRWRSwgNzM6ICRWRiwgNzQ6ICRWRyB9KSwgbygkVkosIFsyLCAyMV0pLCBvKCRWSiwgWzIsIDIyXSksIG8oJFZPLCBbMiwgMzldKSwgbygkVlAsIFsyLCA3MV0sIHsgNzU6IDgxLCAzNTogMTMyLCA3NjogJFZLLCA3NzogJFZMLCA3OTogJFZNLCA4MDogJFZOIH0pLCBvKCRWUSwgWzIsIDczXSksIHsgNzg6IFsxLCAxMzNdIH0sIG8oJFZRLCBbMiwgNzVdKSwgbygkVlEsIFsyLCA3Nl0pLCBvKCRWTywgWzIsIDQwXSksIG8oJFZPLCBbMiwgNDFdKSwgbygkVk8sIFsyLCA0Ml0pLCBvKCRWTywgWzIsIDQzXSksIG8oJFZPLCBbMiwgNDRdKSwgbygkVk8sIFsyLCA0NV0pLCBvKCRWTywgWzIsIDQ2XSksIG8oJFZPLCBbMiwgNDddKSwgbygkVk8sIFsyLCA0OF0pLCBvKCRWTywgWzIsIDQ5XSksIG8oJFZPLCBbMiwgNTBdKSwgbygkVk8sIFsyLCA1MV0pLCBvKCRWTywgWzIsIDUyXSksIG8oJFZPLCBbMiwgNTNdKSwgbygkVk8sIFsyLCA1NF0pLCBvKCRWTywgWzIsIDU1XSksIG8oJFZPLCBbMiwgNTZdKSwgbygkVk8sIFsyLCA1N10pLCBvKCRWTywgWzIsIDU4XSksIG8oJFZPLCBbMiwgNjBdKSwgbygkVk8sIFsyLCA2MV0pLCBvKCRWTywgWzIsIDYyXSksIG8oJFZPLCBbMiwgNjNdKSwgbygkVk8sIFsyLCA2NF0pLCBvKCRWTywgWzIsIDY1XSksIG8oJFZPLCBbMiwgNjZdKSwgbygkVk8sIFsyLCA2N10pLCBvKCRWTywgWzIsIDY4XSksIG8oJFZPLCBbMiwgNjldKSwgbygkVk8sIFsyLCA3MF0pLCB7IDMxOiAxMzQsIDQyOiBbMSwgMTM1XSB9LCB7IDEyOiBbMSwgMTM2XSB9LCB7IDMzOiBbMSwgMTM3XSB9LCBvKCRWUiwgWzIsIDI4XSksIG8oJFZSLCBbMiwgMjldKSwgbygkVlIsIFsyLCAzMF0pLCBvKCRWUiwgWzIsIDMxXSksIG8oJFZSLCBbMiwgMzJdKSwgbygkVlIsIFsyLCAzM10pLCBvKCRWUiwgWzIsIDM0XSksIHsgMTogWzIsIDldIH0sIHsgMTogWzIsIDEwXSB9LCB7IDE6IFsyLCAxMV0gfSwgeyAxOiBbMiwgMTJdIH0sIG8oJFZJLCBbMiwgMThdKSwgbygkVkgsIFsyLCAzOF0pLCBvKCRWUCwgWzIsIDcyXSksIG8oJFZRLCBbMiwgNzRdKSwgbygkVk8sIFsyLCAyNF0pLCBvKCRWTywgWzIsIDM1XSksIG8oJFZTLCBbMiwgMjVdKSwgbygkVlMsIFsyLCAyNl0sIHsgMTI6IFsxLCAxMzhdIH0pLCBvKCRWUywgWzIsIDI3XSldLFxuICAgIGRlZmF1bHRBY3Rpb25zOiB7IDI6IFsyLCAxXSwgMzogWzIsIDJdLCA0OiBbMiwgN10sIDU6IFsyLCAzXSwgNjogWzIsIDRdLCA3OiBbMiwgNV0sIDg6IFsyLCA2XSwgNzQ6IFsyLCA4XSwgMTI2OiBbMiwgOV0sIDEyNzogWzIsIDEwXSwgMTI4OiBbMiwgMTFdLCAxMjk6IFsyLCAxMl0gfSxcbiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgaWYgKGhhc2gucmVjb3ZlcmFibGUpIHtcbiAgICAgICAgdGhpcy50cmFjZShzdHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKHN0cik7XG4gICAgICAgIGVycm9yLmhhc2ggPSBoYXNoO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzLCBzdGFjayA9IFswXSwgdHN0YWNrID0gW10sIHZzdGFjayA9IFtudWxsXSwgbHN0YWNrID0gW10sIHRhYmxlID0gdGhpcy50YWJsZSwgeXl0ZXh0ID0gXCJcIiwgeXlsaW5lbm8gPSAwLCB5eWxlbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxO1xuICAgICAgdmFyIGFyZ3MgPSBsc3RhY2suc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGxleGVyMiA9IE9iamVjdC5jcmVhdGUodGhpcy5sZXhlcik7XG4gICAgICB2YXIgc2hhcmVkU3RhdGUgPSB7IHl5OiB7fSB9O1xuICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnl5KSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHtcbiAgICAgICAgICBzaGFyZWRTdGF0ZS55eVtrXSA9IHRoaXMueXlba107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxleGVyMi5zZXRJbnB1dChpbnB1dCwgc2hhcmVkU3RhdGUueXkpO1xuICAgICAgc2hhcmVkU3RhdGUueXkubGV4ZXIgPSBsZXhlcjI7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5wYXJzZXIgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBsZXhlcjIueXlsbG9jID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbGV4ZXIyLnl5bGxvYyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICAgIHZhciByYW5nZXMgPSBsZXhlcjIub3B0aW9ucyAmJiBsZXhlcjIub3B0aW9ucy5yYW5nZXM7XG4gICAgICBpZiAodHlwZW9mIHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCkgfHwgbGV4ZXIyLmxleCgpIHx8IEVPRjtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB0c3RhY2sgPSB0b2tlbjtcbiAgICAgICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0b2tlbiA9IHNlbGYuc3ltYm9sc19bdG9rZW5dIHx8IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cbiAgICAgIHZhciBzeW1ib2wsIHN0YXRlLCBhY3Rpb24sIHIsIHl5dmFsID0ge30sIHAsIGxlbiwgbmV3U3RhdGUsIGV4cGVjdGVkO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgc3RhdGUgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdKSB7XG4gICAgICAgICAgYWN0aW9uID0gdGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHN5bWJvbCA9PT0gbnVsbCB8fCB0eXBlb2Ygc3ltYm9sID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHN5bWJvbCA9IGxleCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhY3Rpb24gPSB0YWJsZVtzdGF0ZV0gJiYgdGFibGVbc3RhdGVdW3N5bWJvbF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09IFwidW5kZWZpbmVkXCIgfHwgIWFjdGlvbi5sZW5ndGggfHwgIWFjdGlvblswXSkge1xuICAgICAgICAgIHZhciBlcnJTdHIgPSBcIlwiO1xuICAgICAgICAgIGV4cGVjdGVkID0gW107XG4gICAgICAgICAgZm9yIChwIGluIHRhYmxlW3N0YXRlXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGVybWluYWxzX1twXSAmJiBwID4gVEVSUk9SKSB7XG4gICAgICAgICAgICAgIGV4cGVjdGVkLnB1c2goXCInXCIgKyB0aGlzLnRlcm1pbmFsc19bcF0gKyBcIidcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsZXhlcjIuc2hvd1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOlxcblwiICsgbGV4ZXIyLnNob3dQb3NpdGlvbigpICsgXCJcXG5FeHBlY3RpbmcgXCIgKyBleHBlY3RlZC5qb2luKFwiLCBcIikgKyBcIiwgZ290ICdcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6IFVuZXhwZWN0ZWQgXCIgKyAoc3ltYm9sID09IEVPRiA/IFwiZW5kIG9mIGlucHV0XCIgOiBcIidcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnBhcnNlRXJyb3IoZXJyU3RyLCB7XG4gICAgICAgICAgICB0ZXh0OiBsZXhlcjIubWF0Y2gsXG4gICAgICAgICAgICB0b2tlbjogdGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sLFxuICAgICAgICAgICAgbGluZTogbGV4ZXIyLnl5bGluZW5vLFxuICAgICAgICAgICAgbG9jOiB5eWxvYyxcbiAgICAgICAgICAgIGV4cGVjdGVkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblswXSBpbnN0YW5jZW9mIEFycmF5ICYmIGFjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyc2UgRXJyb3I6IG11bHRpcGxlIGFjdGlvbnMgcG9zc2libGUgYXQgc3RhdGU6IFwiICsgc3RhdGUgKyBcIiwgdG9rZW46IFwiICsgc3ltYm9sKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGFjdGlvblswXSkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHN0YWNrLnB1c2goc3ltYm9sKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKGxleGVyMi55eXRleHQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2gobGV4ZXIyLnl5bGxvYyk7XG4gICAgICAgICAgICBzdGFjay5wdXNoKGFjdGlvblsxXSk7XG4gICAgICAgICAgICBzeW1ib2wgPSBudWxsO1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB5eWxlbmcgPSBsZXhlcjIueXlsZW5nO1xuICAgICAgICAgICAgICB5eXRleHQgPSBsZXhlcjIueXl0ZXh0O1xuICAgICAgICAgICAgICB5eWxpbmVubyA9IGxleGVyMi55eWxpbmVubztcbiAgICAgICAgICAgICAgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgbGVuID0gdGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVsxXTtcbiAgICAgICAgICAgIHl5dmFsLiQgPSB2c3RhY2tbdnN0YWNrLmxlbmd0aCAtIGxlbl07XG4gICAgICAgICAgICB5eXZhbC5fJCA9IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyYW5nZXMpIHtcbiAgICAgICAgICAgICAgeXl2YWwuXyQucmFuZ2UgPSBbXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5yYW5nZVswXSxcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLnJhbmdlWzFdXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByID0gdGhpcy5wZXJmb3JtQWN0aW9uLmFwcGx5KHl5dmFsLCBbXG4gICAgICAgICAgICAgIHl5dGV4dCxcbiAgICAgICAgICAgICAgeXlsZW5nLFxuICAgICAgICAgICAgICB5eWxpbmVubyxcbiAgICAgICAgICAgICAgc2hhcmVkU3RhdGUueXksXG4gICAgICAgICAgICAgIGFjdGlvblsxXSxcbiAgICAgICAgICAgICAgdnN0YWNrLFxuICAgICAgICAgICAgICBsc3RhY2tcbiAgICAgICAgICAgIF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZW4pIHtcbiAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZSgwLCAtMSAqIGxlbiAqIDIpO1xuICAgICAgICAgICAgICB2c3RhY2sgPSB2c3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgICBsc3RhY2sgPSBsc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhY2sucHVzaCh0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzBdKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKHl5dmFsLiQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2goeXl2YWwuXyQpO1xuICAgICAgICAgICAgbmV3U3RhdGUgPSB0YWJsZVtzdGFja1tzdGFjay5sZW5ndGggLSAyXV1bc3RhY2tbc3RhY2subGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgc3RhY2sucHVzaChuZXdTdGF0ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9O1xuICB2YXIgbGV4ZXIgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGV4ZXIyID0ge1xuICAgICAgRU9GOiAxLFxuICAgICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgICAgaWYgKHRoaXMueXkucGFyc2VyKSB7XG4gICAgICAgICAgdGhpcy55eS5wYXJzZXIucGFyc2VFcnJvcihzdHIsIGhhc2gpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmVzZXRzIHRoZSBsZXhlciwgc2V0cyBuZXcgaW5wdXRcbiAgICAgIHNldElucHV0OiBmdW5jdGlvbihpbnB1dCwgeXkpIHtcbiAgICAgICAgdGhpcy55eSA9IHl5IHx8IHRoaXMueXkgfHwge307XG4gICAgICAgIHRoaXMuX2lucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0aGlzLl9iYWNrdHJhY2sgPSB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy55eWxpbmVubyA9IHRoaXMueXlsZW5nID0gMDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjayA9IFtcIklOSVRJQUxcIl07XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiAwLFxuICAgICAgICAgIGxhc3RfbGluZTogMSxcbiAgICAgICAgICBsYXN0X2NvbHVtbjogMFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gWzAsIDBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gY29uc3VtZXMgYW5kIHJldHVybnMgb25lIGNoYXIgZnJvbSB0aGUgaW5wdXRcbiAgICAgIGlucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGNoID0gdGhpcy5faW5wdXRbMF07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IGNoO1xuICAgICAgICB0aGlzLnl5bGVuZysrO1xuICAgICAgICB0aGlzLm9mZnNldCsrO1xuICAgICAgICB0aGlzLm1hdGNoICs9IGNoO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gY2g7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubysrO1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfbGluZSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfY29sdW1uKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZVsxXSsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UoMSk7XG4gICAgICAgIHJldHVybiBjaDtcbiAgICAgIH0sXG4gICAgICAvLyB1bnNoaWZ0cyBvbmUgY2hhciAob3IgYSBzdHJpbmcpIGludG8gdGhlIGlucHV0XG4gICAgICB1bnB1dDogZnVuY3Rpb24oY2gpIHtcbiAgICAgICAgdmFyIGxlbiA9IGNoLmxlbmd0aDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBjaCArIHRoaXMuX2lucHV0O1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMueXl0ZXh0LnN1YnN0cigwLCB0aGlzLnl5dGV4dC5sZW5ndGggLSBsZW4pO1xuICAgICAgICB0aGlzLm9mZnNldCAtPSBsZW47XG4gICAgICAgIHZhciBvbGRMaW5lcyA9IHRoaXMubWF0Y2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5tYXRjaCA9IHRoaXMubWF0Y2guc3Vic3RyKDAsIHRoaXMubWF0Y2gubGVuZ3RoIC0gMSk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIDEpO1xuICAgICAgICBpZiAobGluZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gLT0gbGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgciA9IHRoaXMueXlsbG9jLnJhbmdlO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gKGxpbmVzLmxlbmd0aCA9PT0gb2xkTGluZXMubGVuZ3RoID8gdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIDogMCkgKyBvbGRMaW5lc1tvbGRMaW5lcy5sZW5ndGggLSBsaW5lcy5sZW5ndGhdLmxlbmd0aCAtIGxpbmVzWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiAtIGxlblxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3JbMF0sIHJbMF0gKyB0aGlzLnl5bGVuZyAtIGxlbl07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBjYWNoZXMgbWF0Y2hlZCB0ZXh0IGFuZCBhcHBlbmRzIGl0IG9uIG5leHQgYWN0aW9uXG4gICAgICBtb3JlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBzaWduYWxzIHRoZSBsZXhlciB0aGF0IHRoaXMgcnVsZSBmYWlscyB0byBtYXRjaCB0aGUgaW5wdXQsIHNvIHRoZSBuZXh0IG1hdGNoaW5nIHJ1bGUgKHJlZ2V4KSBzaG91bGQgYmUgdGVzdGVkIGluc3RlYWQuXG4gICAgICByZWplY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gWW91IGNhbiBvbmx5IGludm9rZSByZWplY3QoKSBpbiB0aGUgbGV4ZXIgd2hlbiB0aGUgbGV4ZXIgaXMgb2YgdGhlIGJhY2t0cmFja2luZyBwZXJzdWFzaW9uIChvcHRpb25zLmJhY2t0cmFja19sZXhlciA9IHRydWUpLlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIHJldGFpbiBmaXJzdCBuIGNoYXJhY3RlcnMgb2YgdGhlIG1hdGNoXG4gICAgICBsZXNzOiBmdW5jdGlvbihuKSB7XG4gICAgICAgIHRoaXMudW5wdXQodGhpcy5tYXRjaC5zbGljZShuKSk7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgYWxyZWFkeSBtYXRjaGVkIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgcGFzdElucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHBhc3QgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSB0aGlzLm1hdGNoLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiAocGFzdC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSArIHBhc3Quc3Vic3RyKC0yMCkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHVwY29taW5nIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgdXBjb21pbmdJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5tYXRjaDtcbiAgICAgICAgaWYgKG5leHQubGVuZ3RoIDwgMjApIHtcbiAgICAgICAgICBuZXh0ICs9IHRoaXMuX2lucHV0LnN1YnN0cigwLCAyMCAtIG5leHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKG5leHQuc3Vic3RyKDAsIDIwKSArIChuZXh0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdGhlIGNoYXJhY3RlciBwb3NpdGlvbiB3aGVyZSB0aGUgbGV4aW5nIGVycm9yIG9jY3VycmVkLCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgc2hvd1Bvc2l0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHByZSA9IHRoaXMucGFzdElucHV0KCk7XG4gICAgICAgIHZhciBjMiA9IG5ldyBBcnJheShwcmUubGVuZ3RoICsgMSkuam9pbihcIi1cIik7XG4gICAgICAgIHJldHVybiBwcmUgKyB0aGlzLnVwY29taW5nSW5wdXQoKSArIFwiXFxuXCIgKyBjMiArIFwiXlwiO1xuICAgICAgfSxcbiAgICAgIC8vIHRlc3QgdGhlIGxleGVkIHRva2VuOiByZXR1cm4gRkFMU0Ugd2hlbiBub3QgYSBtYXRjaCwgb3RoZXJ3aXNlIHJldHVybiB0b2tlblxuICAgICAgdGVzdF9tYXRjaDogZnVuY3Rpb24obWF0Y2gsIGluZGV4ZWRfcnVsZSkge1xuICAgICAgICB2YXIgdG9rZW4sIGxpbmVzLCBiYWNrdXA7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgYmFja3VwID0ge1xuICAgICAgICAgICAgeXlsaW5lbm86IHRoaXMueXlsaW5lbm8sXG4gICAgICAgICAgICB5eWxsb2M6IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHl5dGV4dDogdGhpcy55eXRleHQsXG4gICAgICAgICAgICBtYXRjaDogdGhpcy5tYXRjaCxcbiAgICAgICAgICAgIG1hdGNoZXM6IHRoaXMubWF0Y2hlcyxcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRoaXMubWF0Y2hlZCxcbiAgICAgICAgICAgIHl5bGVuZzogdGhpcy55eWxlbmcsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgX21vcmU6IHRoaXMuX21vcmUsXG4gICAgICAgICAgICBfaW5wdXQ6IHRoaXMuX2lucHV0LFxuICAgICAgICAgICAgeXk6IHRoaXMueXksXG4gICAgICAgICAgICBjb25kaXRpb25TdGFjazogdGhpcy5jb25kaXRpb25TdGFjay5zbGljZSgwKSxcbiAgICAgICAgICAgIGRvbmU6IHRoaXMuZG9uZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICAgIGJhY2t1cC55eWxsb2MucmFuZ2UgPSB0aGlzLnl5bGxvYy5yYW5nZS5zbGljZSgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMgPSBtYXRjaFswXS5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gKz0gbGluZXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmxhc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoIC0gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubWF0Y2goL1xccj9cXG4/LylbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4gKyBtYXRjaFswXS5sZW5ndGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2hlcyA9IG1hdGNoO1xuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFt0aGlzLm9mZnNldCwgdGhpcy5vZmZzZXQgKz0gdGhpcy55eWxlbmddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21vcmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UobWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IG1hdGNoWzBdO1xuICAgICAgICB0b2tlbiA9IHRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHRoaXMsIHRoaXMueXksIHRoaXMsIGluZGV4ZWRfcnVsZSwgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSAmJiB0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICBmb3IgKHZhciBrIGluIGJhY2t1cCkge1xuICAgICAgICAgICAgdGhpc1trXSA9IGJhY2t1cFtrXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCBpbiBpbnB1dFxuICAgICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmRvbmUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRva2VuLCBtYXRjaCwgdGVtcE1hdGNoLCBpbmRleDtcbiAgICAgICAgaWYgKCF0aGlzLl9tb3JlKSB7XG4gICAgICAgICAgdGhpcy55eXRleHQgPSBcIlwiO1xuICAgICAgICAgIHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBydWxlcyA9IHRoaXMuX2N1cnJlbnRSdWxlcygpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGVtcE1hdGNoID0gdGhpcy5faW5wdXQubWF0Y2godGhpcy5ydWxlc1tydWxlc1tpXV0pO1xuICAgICAgICAgIGlmICh0ZW1wTWF0Y2ggJiYgKCFtYXRjaCB8fCB0ZW1wTWF0Y2hbMF0ubGVuZ3RoID4gbWF0Y2hbMF0ubGVuZ3RoKSkge1xuICAgICAgICAgICAgbWF0Y2ggPSB0ZW1wTWF0Y2g7XG4gICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaCh0ZW1wTWF0Y2gsIHJ1bGVzW2ldKTtcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRpb25zLmZsZXgpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKG1hdGNoLCBydWxlc1tpbmRleF0pO1xuICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dCA9PT0gXCJcIikge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBVbnJlY29nbml6ZWQgdGV4dC5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIHRoYXQgaGFzIGEgdG9rZW5cbiAgICAgIGxleDogZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgciA9IHRoaXMubmV4dCgpO1xuICAgICAgICBpZiAocikge1xuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxleCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWN0aXZhdGVzIGEgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSAocHVzaGVzIHRoZSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9udG8gdGhlIGNvbmRpdGlvbiBzdGFjaylcbiAgICAgIGJlZ2luOiBmdW5jdGlvbiBiZWdpbihjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjay5wdXNoKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcG9wIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGUgb2ZmIHRoZSBjb25kaXRpb24gc3RhY2tcbiAgICAgIHBvcFN0YXRlOiBmdW5jdGlvbiBwb3BTdGF0ZSgpIHtcbiAgICAgICAgdmFyIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDE7XG4gICAgICAgIGlmIChuID4gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLnBvcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrWzBdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcHJvZHVjZSB0aGUgbGV4ZXIgcnVsZSBzZXQgd2hpY2ggaXMgYWN0aXZlIGZvciB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGVcbiAgICAgIF9jdXJyZW50UnVsZXM6IGZ1bmN0aW9uIF9jdXJyZW50UnVsZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAmJiB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW3RoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXV0ucnVsZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1tcIklOSVRJQUxcIl0ucnVsZXM7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlOyB3aGVuIGFuIGluZGV4IGFyZ3VtZW50IGlzIHByb3ZpZGVkIGl0IHByb2R1Y2VzIHRoZSBOLXRoIHByZXZpb3VzIGNvbmRpdGlvbiBzdGF0ZSwgaWYgYXZhaWxhYmxlXG4gICAgICB0b3BTdGF0ZTogZnVuY3Rpb24gdG9wU3RhdGUobikge1xuICAgICAgICBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxIC0gTWF0aC5hYnMobiB8fCAwKTtcbiAgICAgICAgaWYgKG4gPj0gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrW25dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBcIklOSVRJQUxcIjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFsaWFzIGZvciBiZWdpbihjb25kaXRpb24pXG4gICAgICBwdXNoU3RhdGU6IGZ1bmN0aW9uIHB1c2hTdGF0ZShjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5iZWdpbihjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXRlcyBjdXJyZW50bHkgb24gdGhlIHN0YWNrXG4gICAgICBzdGF0ZVN0YWNrU2l6ZTogZnVuY3Rpb24gc3RhdGVTdGFja1NpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aDtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7fSxcbiAgICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eSwgeXlfLCAkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zLCBZWV9TVEFSVCkge1xuICAgICAgICBzd2l0Y2ggKCRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gNjtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXR1cm4gNztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gODtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gOTtcbiAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICByZXR1cm4gMjI7XG4gICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgcmV0dXJuIDIzO1xuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfdGl0bGVcIik7XG4gICAgICAgICAgICByZXR1cm4gMjQ7XG4gICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX3RpdGxlX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjclwiKTtcbiAgICAgICAgICAgIHJldHVybiAyNjtcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjcl9tdWx0aWxpbmVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgICAgIGM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgcmV0dXJuIDEyO1xuICAgICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDE3OlxuICAgICAgICAgICAgcmV0dXJuIDExO1xuICAgICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgICByZXR1cm4gMTU7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIHJldHVybiAxNjtcbiAgICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgICAgcmV0dXJuIDE3O1xuICAgICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgICByZXR1cm4gMTg7XG4gICAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJwZXJzb25fZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ1O1xuICAgICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwicGVyc29uXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ0O1xuICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwic3lzdGVtX2V4dF9xdWV1ZVwiKTtcbiAgICAgICAgICAgIHJldHVybiA1MTtcbiAgICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInN5c3RlbV9leHRfZGJcIik7XG4gICAgICAgICAgICByZXR1cm4gNTA7XG4gICAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJzeXN0ZW1fZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ5O1xuICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwic3lzdGVtX3F1ZXVlXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ4O1xuICAgICAgICAgIGNhc2UgMjg6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwic3lzdGVtX2RiXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ3O1xuICAgICAgICAgIGNhc2UgMjk6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwic3lzdGVtXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ2O1xuICAgICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiYm91bmRhcnlcIik7XG4gICAgICAgICAgICByZXR1cm4gMzc7XG4gICAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJlbnRlcnByaXNlX2JvdW5kYXJ5XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM0O1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwic3lzdGVtX2JvdW5kYXJ5XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY29udGFpbmVyX2V4dF9xdWV1ZVwiKTtcbiAgICAgICAgICAgIHJldHVybiA1NztcbiAgICAgICAgICBjYXNlIDM0OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImNvbnRhaW5lcl9leHRfZGJcIik7XG4gICAgICAgICAgICByZXR1cm4gNTY7XG4gICAgICAgICAgY2FzZSAzNTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJjb250YWluZXJfZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDU1O1xuICAgICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY29udGFpbmVyX3F1ZXVlXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDU0O1xuICAgICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY29udGFpbmVyX2RiXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDUzO1xuICAgICAgICAgIGNhc2UgMzg6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY29udGFpbmVyXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDUyO1xuICAgICAgICAgIGNhc2UgMzk6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY29udGFpbmVyX2JvdW5kYXJ5XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM4O1xuICAgICAgICAgIGNhc2UgNDA6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY29tcG9uZW50X2V4dF9xdWV1ZVwiKTtcbiAgICAgICAgICAgIHJldHVybiA2MztcbiAgICAgICAgICBjYXNlIDQxOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImNvbXBvbmVudF9leHRfZGJcIik7XG4gICAgICAgICAgICByZXR1cm4gNjI7XG4gICAgICAgICAgY2FzZSA0MjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJjb21wb25lbnRfZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDYxO1xuICAgICAgICAgIGNhc2UgNDM6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY29tcG9uZW50X3F1ZXVlXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDYwO1xuICAgICAgICAgIGNhc2UgNDQ6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY29tcG9uZW50X2RiXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDU5O1xuICAgICAgICAgIGNhc2UgNDU6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY29tcG9uZW50XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDU4O1xuICAgICAgICAgIGNhc2UgNDY6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwibm9kZVwiKTtcbiAgICAgICAgICAgIHJldHVybiAzOTtcbiAgICAgICAgICBjYXNlIDQ3OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIm5vZGVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzk7XG4gICAgICAgICAgY2FzZSA0ODpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJub2RlX2xcIik7XG4gICAgICAgICAgICByZXR1cm4gNDA7XG4gICAgICAgICAgY2FzZSA0OTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJub2RlX3JcIik7XG4gICAgICAgICAgICByZXR1cm4gNDE7XG4gICAgICAgICAgY2FzZSA1MDpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJyZWxcIik7XG4gICAgICAgICAgICByZXR1cm4gNjQ7XG4gICAgICAgICAgY2FzZSA1MTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJiaXJlbFwiKTtcbiAgICAgICAgICAgIHJldHVybiA2NTtcbiAgICAgICAgICBjYXNlIDUyOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInJlbF91XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDY2O1xuICAgICAgICAgIGNhc2UgNTM6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwicmVsX3VcIik7XG4gICAgICAgICAgICByZXR1cm4gNjY7XG4gICAgICAgICAgY2FzZSA1NDpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJyZWxfZFwiKTtcbiAgICAgICAgICAgIHJldHVybiA2NztcbiAgICAgICAgICBjYXNlIDU1OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInJlbF9kXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDY3O1xuICAgICAgICAgIGNhc2UgNTY6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwicmVsX2xcIik7XG4gICAgICAgICAgICByZXR1cm4gNjg7XG4gICAgICAgICAgY2FzZSA1NzpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJyZWxfbFwiKTtcbiAgICAgICAgICAgIHJldHVybiA2ODtcbiAgICAgICAgICBjYXNlIDU4OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInJlbF9yXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDY5O1xuICAgICAgICAgIGNhc2UgNTk6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwicmVsX3JcIik7XG4gICAgICAgICAgICByZXR1cm4gNjk7XG4gICAgICAgICAgY2FzZSA2MDpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJyZWxfYlwiKTtcbiAgICAgICAgICAgIHJldHVybiA3MDtcbiAgICAgICAgICBjYXNlIDYxOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInJlbF9pbmRleFwiKTtcbiAgICAgICAgICAgIHJldHVybiA3MTtcbiAgICAgICAgICBjYXNlIDYyOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInVwZGF0ZV9lbF9zdHlsZVwiKTtcbiAgICAgICAgICAgIHJldHVybiA3MjtcbiAgICAgICAgICBjYXNlIDYzOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInVwZGF0ZV9yZWxfc3R5bGVcIik7XG4gICAgICAgICAgICByZXR1cm4gNzM7XG4gICAgICAgICAgY2FzZSA2NDpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJ1cGRhdGVfbGF5b3V0X2NvbmZpZ1wiKTtcbiAgICAgICAgICAgIHJldHVybiA3NDtcbiAgICAgICAgICBjYXNlIDY1OlxuICAgICAgICAgICAgcmV0dXJuIFwiRU9GX0lOX1NUUlVDVFwiO1xuICAgICAgICAgIGNhc2UgNjY6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiYXR0cmlidXRlXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiQVRUUklCVVRFX0VNUFRZXCI7XG4gICAgICAgICAgY2FzZSA2NzpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhdHRyaWJ1dGVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDY4OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA2OTpcbiAgICAgICAgICAgIHJldHVybiA4MDtcbiAgICAgICAgICBjYXNlIDcwOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA3MTpcbiAgICAgICAgICAgIHJldHVybiA4MDtcbiAgICAgICAgICBjYXNlIDcyOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInN0cmluZ1wiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNzM6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDc0OlxuICAgICAgICAgICAgcmV0dXJuIFwiU1RSXCI7XG4gICAgICAgICAgY2FzZSA3NTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJzdHJpbmdfa3ZcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDc2OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInN0cmluZ19rdl9rZXlcIik7XG4gICAgICAgICAgICByZXR1cm4gXCJTVFJfS0VZXCI7XG4gICAgICAgICAgY2FzZSA3NzpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJzdHJpbmdfa3ZfdmFsdWVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDc4OlxuICAgICAgICAgICAgcmV0dXJuIFwiU1RSX1ZBTFVFXCI7XG4gICAgICAgICAgY2FzZSA3OTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgODA6XG4gICAgICAgICAgICByZXR1cm4gXCJTVFJcIjtcbiAgICAgICAgICBjYXNlIDgxOlxuICAgICAgICAgICAgcmV0dXJuIFwiTEJSQUNFXCI7XG4gICAgICAgICAgY2FzZSA4MjpcbiAgICAgICAgICAgIHJldHVybiBcIlJCUkFDRVwiO1xuICAgICAgICAgIGNhc2UgODM6XG4gICAgICAgICAgICByZXR1cm4gXCJTUEFDRVwiO1xuICAgICAgICAgIGNhc2UgODQ6XG4gICAgICAgICAgICByZXR1cm4gXCJFT0xcIjtcbiAgICAgICAgICBjYXNlIDg1OlxuICAgICAgICAgICAgcmV0dXJuIDE0O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcnVsZXM6IFsvXig/Oi4qZGlyZWN0aW9uXFxzK1RCW15cXG5dKikvLCAvXig/Oi4qZGlyZWN0aW9uXFxzK0JUW15cXG5dKikvLCAvXig/Oi4qZGlyZWN0aW9uXFxzK1JMW15cXG5dKikvLCAvXig/Oi4qZGlyZWN0aW9uXFxzK0xSW15cXG5dKikvLCAvXig/OnRpdGxlXFxzW14jXFxuO10rKS8sIC9eKD86YWNjRGVzY3JpcHRpb25cXHNbXiNcXG47XSspLywgL14oPzphY2NUaXRsZVxccyo6XFxzKikvLCAvXig/Oig/IVxcbnx8KSpbXlxcbl0qKS8sIC9eKD86YWNjRGVzY3JcXHMqOlxccyopLywgL14oPzooPyFcXG58fCkqW15cXG5dKikvLCAvXig/OmFjY0Rlc2NyXFxzKlxce1xccyopLywgL14oPzpbXFx9XSkvLCAvXig/OlteXFx9XSopLywgL14oPzolJSg/IVxceykqW15cXG5dKihcXHI/XFxuPykrKS8sIC9eKD86JSVbXlxcbl0qKFxccj9cXG4pKikvLCAvXig/OlxccyooXFxyP1xcbikrKS8sIC9eKD86XFxzKykvLCAvXig/OkM0Q29udGV4dFxcYikvLCAvXig/OkM0Q29udGFpbmVyXFxiKS8sIC9eKD86QzRDb21wb25lbnRcXGIpLywgL14oPzpDNER5bmFtaWNcXGIpLywgL14oPzpDNERlcGxveW1lbnRcXGIpLywgL14oPzpQZXJzb25fRXh0XFxiKS8sIC9eKD86UGVyc29uXFxiKS8sIC9eKD86U3lzdGVtUXVldWVfRXh0XFxiKS8sIC9eKD86U3lzdGVtRGJfRXh0XFxiKS8sIC9eKD86U3lzdGVtX0V4dFxcYikvLCAvXig/OlN5c3RlbVF1ZXVlXFxiKS8sIC9eKD86U3lzdGVtRGJcXGIpLywgL14oPzpTeXN0ZW1cXGIpLywgL14oPzpCb3VuZGFyeVxcYikvLCAvXig/OkVudGVycHJpc2VfQm91bmRhcnlcXGIpLywgL14oPzpTeXN0ZW1fQm91bmRhcnlcXGIpLywgL14oPzpDb250YWluZXJRdWV1ZV9FeHRcXGIpLywgL14oPzpDb250YWluZXJEYl9FeHRcXGIpLywgL14oPzpDb250YWluZXJfRXh0XFxiKS8sIC9eKD86Q29udGFpbmVyUXVldWVcXGIpLywgL14oPzpDb250YWluZXJEYlxcYikvLCAvXig/OkNvbnRhaW5lclxcYikvLCAvXig/OkNvbnRhaW5lcl9Cb3VuZGFyeVxcYikvLCAvXig/OkNvbXBvbmVudFF1ZXVlX0V4dFxcYikvLCAvXig/OkNvbXBvbmVudERiX0V4dFxcYikvLCAvXig/OkNvbXBvbmVudF9FeHRcXGIpLywgL14oPzpDb21wb25lbnRRdWV1ZVxcYikvLCAvXig/OkNvbXBvbmVudERiXFxiKS8sIC9eKD86Q29tcG9uZW50XFxiKS8sIC9eKD86RGVwbG95bWVudF9Ob2RlXFxiKS8sIC9eKD86Tm9kZVxcYikvLCAvXig/Ok5vZGVfTFxcYikvLCAvXig/Ok5vZGVfUlxcYikvLCAvXig/OlJlbFxcYikvLCAvXig/OkJpUmVsXFxiKS8sIC9eKD86UmVsX1VwXFxiKS8sIC9eKD86UmVsX1VcXGIpLywgL14oPzpSZWxfRG93blxcYikvLCAvXig/OlJlbF9EXFxiKS8sIC9eKD86UmVsX0xlZnRcXGIpLywgL14oPzpSZWxfTFxcYikvLCAvXig/OlJlbF9SaWdodFxcYikvLCAvXig/OlJlbF9SXFxiKS8sIC9eKD86UmVsX0JhY2tcXGIpLywgL14oPzpSZWxJbmRleFxcYikvLCAvXig/OlVwZGF0ZUVsZW1lbnRTdHlsZVxcYikvLCAvXig/OlVwZGF0ZVJlbFN0eWxlXFxiKS8sIC9eKD86VXBkYXRlTGF5b3V0Q29uZmlnXFxiKS8sIC9eKD86JCkvLCAvXig/OlsoXVsgXSpbLF0pLywgL14oPzpbKF0pLywgL14oPzpbKV0pLywgL14oPzosLCkvLCAvXig/OiwpLywgL14oPzpbIF0qW1wiXVtcIl0pLywgL14oPzpbIF0qW1wiXSkvLCAvXig/OltcIl0pLywgL14oPzpbXlwiXSopLywgL14oPzpbIF0qW1xcJF0pLywgL14oPzpbXj1dKikvLCAvXig/Ols9XVsgXSpbXCJdKS8sIC9eKD86W15cIl0rKS8sIC9eKD86W1wiXSkvLCAvXig/OlteLF0rKS8sIC9eKD86XFx7KS8sIC9eKD86XFx9KS8sIC9eKD86W1xcc10rKS8sIC9eKD86W1xcblxccl0rKS8sIC9eKD86JCkvXSxcbiAgICAgIGNvbmRpdGlvbnM6IHsgXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCI6IHsgXCJydWxlc1wiOiBbMTEsIDEyXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfZGVzY3JcIjogeyBcInJ1bGVzXCI6IFs5XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfdGl0bGVcIjogeyBcInJ1bGVzXCI6IFs3XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJzdHJpbmdfa3ZfdmFsdWVcIjogeyBcInJ1bGVzXCI6IFs3OCwgNzldLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInN0cmluZ19rdl9rZXlcIjogeyBcInJ1bGVzXCI6IFs3N10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwic3RyaW5nX2t2XCI6IHsgXCJydWxlc1wiOiBbNzZdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInN0cmluZ1wiOiB7IFwicnVsZXNcIjogWzczLCA3NF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYXR0cmlidXRlXCI6IHsgXCJydWxlc1wiOiBbNjgsIDY5LCA3MCwgNzEsIDcyLCA3NSwgODBdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInVwZGF0ZV9sYXlvdXRfY29uZmlnXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInVwZGF0ZV9yZWxfc3R5bGVcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwidXBkYXRlX2VsX3N0eWxlXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInJlbF9iXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInJlbF9yXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInJlbF9sXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInJlbF9kXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInJlbF91XCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInJlbF9iaVwiOiB7IFwicnVsZXNcIjogW10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwicmVsXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIm5vZGVfclwiOiB7IFwicnVsZXNcIjogWzY1LCA2NiwgNjcsIDY4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJub2RlX2xcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwibm9kZVwiOiB7IFwicnVsZXNcIjogWzY1LCA2NiwgNjcsIDY4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJpbmRleFwiOiB7IFwicnVsZXNcIjogW10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwicmVsX2luZGV4XCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImNvbXBvbmVudF9leHRfcXVldWVcIjogeyBcInJ1bGVzXCI6IFtdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImNvbXBvbmVudF9leHRfZGJcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiY29tcG9uZW50X2V4dFwiOiB7IFwicnVsZXNcIjogWzY1LCA2NiwgNjcsIDY4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJjb21wb25lbnRfcXVldWVcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiY29tcG9uZW50X2RiXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImNvbXBvbmVudFwiOiB7IFwicnVsZXNcIjogWzY1LCA2NiwgNjcsIDY4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJjb250YWluZXJfYm91bmRhcnlcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiY29udGFpbmVyX2V4dF9xdWV1ZVwiOiB7IFwicnVsZXNcIjogWzY1LCA2NiwgNjcsIDY4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJjb250YWluZXJfZXh0X2RiXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImNvbnRhaW5lcl9leHRcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiY29udGFpbmVyX3F1ZXVlXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImNvbnRhaW5lcl9kYlwiOiB7IFwicnVsZXNcIjogWzY1LCA2NiwgNjcsIDY4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJjb250YWluZXJcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYmlyZWxcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwic3lzdGVtX2JvdW5kYXJ5XCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImVudGVycHJpc2VfYm91bmRhcnlcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYm91bmRhcnlcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwic3lzdGVtX2V4dF9xdWV1ZVwiOiB7IFwicnVsZXNcIjogWzY1LCA2NiwgNjcsIDY4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJzeXN0ZW1fZXh0X2RiXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInN5c3RlbV9leHRcIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwic3lzdGVtX3F1ZXVlXCI6IHsgXCJydWxlc1wiOiBbNjUsIDY2LCA2NywgNjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInN5c3RlbV9kYlwiOiB7IFwicnVsZXNcIjogWzY1LCA2NiwgNjcsIDY4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJzeXN0ZW1cIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwicGVyc29uX2V4dFwiOiB7IFwicnVsZXNcIjogWzY1LCA2NiwgNjcsIDY4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJwZXJzb25cIjogeyBcInJ1bGVzXCI6IFs2NSwgNjYsIDY3LCA2OF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiSU5JVElBTFwiOiB7IFwicnVsZXNcIjogWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDgsIDEwLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgODEsIDgyLCA4MywgODQsIDg1XSwgXCJpbmNsdXNpdmVcIjogdHJ1ZSB9IH1cbiAgICB9O1xuICAgIHJldHVybiBsZXhlcjI7XG4gIH0oKTtcbiAgcGFyc2VyMi5sZXhlciA9IGxleGVyO1xuICBmdW5jdGlvbiBQYXJzZXIoKSB7XG4gICAgdGhpcy55eSA9IHt9O1xuICB9XG4gIFBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXIyO1xuICBwYXJzZXIyLlBhcnNlciA9IFBhcnNlcjtcbiAgcmV0dXJuIG5ldyBQYXJzZXIoKTtcbn0oKTtcbnBhcnNlci5wYXJzZXIgPSBwYXJzZXI7XG5jb25zdCBwYXJzZXIkMSA9IHBhcnNlcjtcbmxldCBjNFNoYXBlQXJyYXkgPSBbXTtcbmxldCBib3VuZGFyeVBhcnNlU3RhY2sgPSBbXCJcIl07XG5sZXQgY3VycmVudEJvdW5kYXJ5UGFyc2UgPSBcImdsb2JhbFwiO1xubGV0IHBhcmVudEJvdW5kYXJ5UGFyc2UgPSBcIlwiO1xubGV0IGJvdW5kYXJpZXMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJnbG9iYWxcIixcbiAgICBsYWJlbDogeyB0ZXh0OiBcImdsb2JhbFwiIH0sXG4gICAgdHlwZTogeyB0ZXh0OiBcImdsb2JhbFwiIH0sXG4gICAgdGFnczogbnVsbCxcbiAgICBsaW5rOiBudWxsLFxuICAgIHBhcmVudEJvdW5kYXJ5OiBcIlwiXG4gIH1cbl07XG5sZXQgcmVscyA9IFtdO1xubGV0IHRpdGxlID0gXCJcIjtcbmxldCB3cmFwRW5hYmxlZCA9IGZhbHNlO1xubGV0IGM0U2hhcGVJblJvdyQxID0gNDtcbmxldCBjNEJvdW5kYXJ5SW5Sb3ckMSA9IDI7XG52YXIgYzRUeXBlO1xuY29uc3QgZ2V0QzRUeXBlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBjNFR5cGU7XG59O1xuY29uc3Qgc2V0QzRUeXBlID0gZnVuY3Rpb24oYzRUeXBlUGFyYW0pIHtcbiAgbGV0IHNhbml0aXplZFRleHQgPSBzYW5pdGl6ZVRleHQoYzRUeXBlUGFyYW0sIGdldENvbmZpZygpKTtcbiAgYzRUeXBlID0gc2FuaXRpemVkVGV4dDtcbn07XG5jb25zdCBhZGRSZWwgPSBmdW5jdGlvbih0eXBlLCBmcm9tLCB0bywgbGFiZWwsIHRlY2huLCBkZXNjciwgc3ByaXRlLCB0YWdzLCBsaW5rKSB7XG4gIGlmICh0eXBlID09PSB2b2lkIDAgfHwgdHlwZSA9PT0gbnVsbCB8fCBmcm9tID09PSB2b2lkIDAgfHwgZnJvbSA9PT0gbnVsbCB8fCB0byA9PT0gdm9pZCAwIHx8IHRvID09PSBudWxsIHx8IGxhYmVsID09PSB2b2lkIDAgfHwgbGFiZWwgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbGV0IHJlbCA9IHt9O1xuICBjb25zdCBvbGQgPSByZWxzLmZpbmQoKHJlbDIpID0+IHJlbDIuZnJvbSA9PT0gZnJvbSAmJiByZWwyLnRvID09PSB0byk7XG4gIGlmIChvbGQpIHtcbiAgICByZWwgPSBvbGQ7XG4gIH0gZWxzZSB7XG4gICAgcmVscy5wdXNoKHJlbCk7XG4gIH1cbiAgcmVsLnR5cGUgPSB0eXBlO1xuICByZWwuZnJvbSA9IGZyb207XG4gIHJlbC50byA9IHRvO1xuICByZWwubGFiZWwgPSB7IHRleHQ6IGxhYmVsIH07XG4gIGlmICh0ZWNobiA9PT0gdm9pZCAwIHx8IHRlY2huID09PSBudWxsKSB7XG4gICAgcmVsLnRlY2huID0geyB0ZXh0OiBcIlwiIH07XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiB0ZWNobiA9PT0gXCJvYmplY3RcIikge1xuICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKHRlY2huKVswXTtcbiAgICAgIHJlbFtrZXldID0geyB0ZXh0OiB2YWx1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZWwudGVjaG4gPSB7IHRleHQ6IHRlY2huIH07XG4gICAgfVxuICB9XG4gIGlmIChkZXNjciA9PT0gdm9pZCAwIHx8IGRlc2NyID09PSBudWxsKSB7XG4gICAgcmVsLmRlc2NyID0geyB0ZXh0OiBcIlwiIH07XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBkZXNjciA9PT0gXCJvYmplY3RcIikge1xuICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKGRlc2NyKVswXTtcbiAgICAgIHJlbFtrZXldID0geyB0ZXh0OiB2YWx1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZWwuZGVzY3IgPSB7IHRleHQ6IGRlc2NyIH07XG4gICAgfVxuICB9XG4gIGlmICh0eXBlb2Ygc3ByaXRlID09PSBcIm9iamVjdFwiKSB7XG4gICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKHNwcml0ZSlbMF07XG4gICAgcmVsW2tleV0gPSB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICByZWwuc3ByaXRlID0gc3ByaXRlO1xuICB9XG4gIGlmICh0eXBlb2YgdGFncyA9PT0gXCJvYmplY3RcIikge1xuICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyh0YWdzKVswXTtcbiAgICByZWxba2V5XSA9IHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIHJlbC50YWdzID0gdGFncztcbiAgfVxuICBpZiAodHlwZW9mIGxpbmsgPT09IFwib2JqZWN0XCIpIHtcbiAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXMobGluaylbMF07XG4gICAgcmVsW2tleV0gPSB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICByZWwubGluayA9IGxpbms7XG4gIH1cbiAgcmVsLndyYXAgPSBhdXRvV3JhcCgpO1xufTtcbmNvbnN0IGFkZFBlcnNvbk9yU3lzdGVtID0gZnVuY3Rpb24odHlwZUM0U2hhcGUsIGFsaWFzLCBsYWJlbCwgZGVzY3IsIHNwcml0ZSwgdGFncywgbGluaykge1xuICBpZiAoYWxpYXMgPT09IG51bGwgfHwgbGFiZWwgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbGV0IHBlcnNvbk9yU3lzdGVtID0ge307XG4gIGNvbnN0IG9sZCA9IGM0U2hhcGVBcnJheS5maW5kKChwZXJzb25PclN5c3RlbTIpID0+IHBlcnNvbk9yU3lzdGVtMi5hbGlhcyA9PT0gYWxpYXMpO1xuICBpZiAob2xkICYmIGFsaWFzID09PSBvbGQuYWxpYXMpIHtcbiAgICBwZXJzb25PclN5c3RlbSA9IG9sZDtcbiAgfSBlbHNlIHtcbiAgICBwZXJzb25PclN5c3RlbS5hbGlhcyA9IGFsaWFzO1xuICAgIGM0U2hhcGVBcnJheS5wdXNoKHBlcnNvbk9yU3lzdGVtKTtcbiAgfVxuICBpZiAobGFiZWwgPT09IHZvaWQgMCB8fCBsYWJlbCA9PT0gbnVsbCkge1xuICAgIHBlcnNvbk9yU3lzdGVtLmxhYmVsID0geyB0ZXh0OiBcIlwiIH07XG4gIH0gZWxzZSB7XG4gICAgcGVyc29uT3JTeXN0ZW0ubGFiZWwgPSB7IHRleHQ6IGxhYmVsIH07XG4gIH1cbiAgaWYgKGRlc2NyID09PSB2b2lkIDAgfHwgZGVzY3IgPT09IG51bGwpIHtcbiAgICBwZXJzb25PclN5c3RlbS5kZXNjciA9IHsgdGV4dDogXCJcIiB9O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZGVzY3IgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyhkZXNjcilbMF07XG4gICAgICBwZXJzb25PclN5c3RlbVtrZXldID0geyB0ZXh0OiB2YWx1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBwZXJzb25PclN5c3RlbS5kZXNjciA9IHsgdGV4dDogZGVzY3IgfTtcbiAgICB9XG4gIH1cbiAgaWYgKHR5cGVvZiBzcHJpdGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXMoc3ByaXRlKVswXTtcbiAgICBwZXJzb25PclN5c3RlbVtrZXldID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgcGVyc29uT3JTeXN0ZW0uc3ByaXRlID0gc3ByaXRlO1xuICB9XG4gIGlmICh0eXBlb2YgdGFncyA9PT0gXCJvYmplY3RcIikge1xuICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyh0YWdzKVswXTtcbiAgICBwZXJzb25PclN5c3RlbVtrZXldID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgcGVyc29uT3JTeXN0ZW0udGFncyA9IHRhZ3M7XG4gIH1cbiAgaWYgKHR5cGVvZiBsaW5rID09PSBcIm9iamVjdFwiKSB7XG4gICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKGxpbmspWzBdO1xuICAgIHBlcnNvbk9yU3lzdGVtW2tleV0gPSB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICBwZXJzb25PclN5c3RlbS5saW5rID0gbGluaztcbiAgfVxuICBwZXJzb25PclN5c3RlbS50eXBlQzRTaGFwZSA9IHsgdGV4dDogdHlwZUM0U2hhcGUgfTtcbiAgcGVyc29uT3JTeXN0ZW0ucGFyZW50Qm91bmRhcnkgPSBjdXJyZW50Qm91bmRhcnlQYXJzZTtcbiAgcGVyc29uT3JTeXN0ZW0ud3JhcCA9IGF1dG9XcmFwKCk7XG59O1xuY29uc3QgYWRkQ29udGFpbmVyID0gZnVuY3Rpb24odHlwZUM0U2hhcGUsIGFsaWFzLCBsYWJlbCwgdGVjaG4sIGRlc2NyLCBzcHJpdGUsIHRhZ3MsIGxpbmspIHtcbiAgaWYgKGFsaWFzID09PSBudWxsIHx8IGxhYmVsID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGxldCBjb250YWluZXIgPSB7fTtcbiAgY29uc3Qgb2xkID0gYzRTaGFwZUFycmF5LmZpbmQoKGNvbnRhaW5lcjIpID0+IGNvbnRhaW5lcjIuYWxpYXMgPT09IGFsaWFzKTtcbiAgaWYgKG9sZCAmJiBhbGlhcyA9PT0gb2xkLmFsaWFzKSB7XG4gICAgY29udGFpbmVyID0gb2xkO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5hbGlhcyA9IGFsaWFzO1xuICAgIGM0U2hhcGVBcnJheS5wdXNoKGNvbnRhaW5lcik7XG4gIH1cbiAgaWYgKGxhYmVsID09PSB2b2lkIDAgfHwgbGFiZWwgPT09IG51bGwpIHtcbiAgICBjb250YWluZXIubGFiZWwgPSB7IHRleHQ6IFwiXCIgfTtcbiAgfSBlbHNlIHtcbiAgICBjb250YWluZXIubGFiZWwgPSB7IHRleHQ6IGxhYmVsIH07XG4gIH1cbiAgaWYgKHRlY2huID09PSB2b2lkIDAgfHwgdGVjaG4gPT09IG51bGwpIHtcbiAgICBjb250YWluZXIudGVjaG4gPSB7IHRleHQ6IFwiXCIgfTtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIHRlY2huID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXModGVjaG4pWzBdO1xuICAgICAgY29udGFpbmVyW2tleV0gPSB7IHRleHQ6IHZhbHVlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci50ZWNobiA9IHsgdGV4dDogdGVjaG4gfTtcbiAgICB9XG4gIH1cbiAgaWYgKGRlc2NyID09PSB2b2lkIDAgfHwgZGVzY3IgPT09IG51bGwpIHtcbiAgICBjb250YWluZXIuZGVzY3IgPSB7IHRleHQ6IFwiXCIgfTtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGRlc2NyID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXMoZGVzY3IpWzBdO1xuICAgICAgY29udGFpbmVyW2tleV0gPSB7IHRleHQ6IHZhbHVlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci5kZXNjciA9IHsgdGV4dDogZGVzY3IgfTtcbiAgICB9XG4gIH1cbiAgaWYgKHR5cGVvZiBzcHJpdGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXMoc3ByaXRlKVswXTtcbiAgICBjb250YWluZXJba2V5XSA9IHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5zcHJpdGUgPSBzcHJpdGU7XG4gIH1cbiAgaWYgKHR5cGVvZiB0YWdzID09PSBcIm9iamVjdFwiKSB7XG4gICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKHRhZ3MpWzBdO1xuICAgIGNvbnRhaW5lcltrZXldID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgY29udGFpbmVyLnRhZ3MgPSB0YWdzO1xuICB9XG4gIGlmICh0eXBlb2YgbGluayA9PT0gXCJvYmplY3RcIikge1xuICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyhsaW5rKVswXTtcbiAgICBjb250YWluZXJba2V5XSA9IHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5saW5rID0gbGluaztcbiAgfVxuICBjb250YWluZXIud3JhcCA9IGF1dG9XcmFwKCk7XG4gIGNvbnRhaW5lci50eXBlQzRTaGFwZSA9IHsgdGV4dDogdHlwZUM0U2hhcGUgfTtcbiAgY29udGFpbmVyLnBhcmVudEJvdW5kYXJ5ID0gY3VycmVudEJvdW5kYXJ5UGFyc2U7XG59O1xuY29uc3QgYWRkQ29tcG9uZW50ID0gZnVuY3Rpb24odHlwZUM0U2hhcGUsIGFsaWFzLCBsYWJlbCwgdGVjaG4sIGRlc2NyLCBzcHJpdGUsIHRhZ3MsIGxpbmspIHtcbiAgaWYgKGFsaWFzID09PSBudWxsIHx8IGxhYmVsID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGxldCBjb21wb25lbnQgPSB7fTtcbiAgY29uc3Qgb2xkID0gYzRTaGFwZUFycmF5LmZpbmQoKGNvbXBvbmVudDIpID0+IGNvbXBvbmVudDIuYWxpYXMgPT09IGFsaWFzKTtcbiAgaWYgKG9sZCAmJiBhbGlhcyA9PT0gb2xkLmFsaWFzKSB7XG4gICAgY29tcG9uZW50ID0gb2xkO1xuICB9IGVsc2Uge1xuICAgIGNvbXBvbmVudC5hbGlhcyA9IGFsaWFzO1xuICAgIGM0U2hhcGVBcnJheS5wdXNoKGNvbXBvbmVudCk7XG4gIH1cbiAgaWYgKGxhYmVsID09PSB2b2lkIDAgfHwgbGFiZWwgPT09IG51bGwpIHtcbiAgICBjb21wb25lbnQubGFiZWwgPSB7IHRleHQ6IFwiXCIgfTtcbiAgfSBlbHNlIHtcbiAgICBjb21wb25lbnQubGFiZWwgPSB7IHRleHQ6IGxhYmVsIH07XG4gIH1cbiAgaWYgKHRlY2huID09PSB2b2lkIDAgfHwgdGVjaG4gPT09IG51bGwpIHtcbiAgICBjb21wb25lbnQudGVjaG4gPSB7IHRleHQ6IFwiXCIgfTtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIHRlY2huID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXModGVjaG4pWzBdO1xuICAgICAgY29tcG9uZW50W2tleV0gPSB7IHRleHQ6IHZhbHVlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBvbmVudC50ZWNobiA9IHsgdGV4dDogdGVjaG4gfTtcbiAgICB9XG4gIH1cbiAgaWYgKGRlc2NyID09PSB2b2lkIDAgfHwgZGVzY3IgPT09IG51bGwpIHtcbiAgICBjb21wb25lbnQuZGVzY3IgPSB7IHRleHQ6IFwiXCIgfTtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGRlc2NyID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXMoZGVzY3IpWzBdO1xuICAgICAgY29tcG9uZW50W2tleV0gPSB7IHRleHQ6IHZhbHVlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBvbmVudC5kZXNjciA9IHsgdGV4dDogZGVzY3IgfTtcbiAgICB9XG4gIH1cbiAgaWYgKHR5cGVvZiBzcHJpdGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXMoc3ByaXRlKVswXTtcbiAgICBjb21wb25lbnRba2V5XSA9IHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIGNvbXBvbmVudC5zcHJpdGUgPSBzcHJpdGU7XG4gIH1cbiAgaWYgKHR5cGVvZiB0YWdzID09PSBcIm9iamVjdFwiKSB7XG4gICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKHRhZ3MpWzBdO1xuICAgIGNvbXBvbmVudFtrZXldID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgY29tcG9uZW50LnRhZ3MgPSB0YWdzO1xuICB9XG4gIGlmICh0eXBlb2YgbGluayA9PT0gXCJvYmplY3RcIikge1xuICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyhsaW5rKVswXTtcbiAgICBjb21wb25lbnRba2V5XSA9IHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIGNvbXBvbmVudC5saW5rID0gbGluaztcbiAgfVxuICBjb21wb25lbnQud3JhcCA9IGF1dG9XcmFwKCk7XG4gIGNvbXBvbmVudC50eXBlQzRTaGFwZSA9IHsgdGV4dDogdHlwZUM0U2hhcGUgfTtcbiAgY29tcG9uZW50LnBhcmVudEJvdW5kYXJ5ID0gY3VycmVudEJvdW5kYXJ5UGFyc2U7XG59O1xuY29uc3QgYWRkUGVyc29uT3JTeXN0ZW1Cb3VuZGFyeSA9IGZ1bmN0aW9uKGFsaWFzLCBsYWJlbCwgdHlwZSwgdGFncywgbGluaykge1xuICBpZiAoYWxpYXMgPT09IG51bGwgfHwgbGFiZWwgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbGV0IGJvdW5kYXJ5ID0ge307XG4gIGNvbnN0IG9sZCA9IGJvdW5kYXJpZXMuZmluZCgoYm91bmRhcnkyKSA9PiBib3VuZGFyeTIuYWxpYXMgPT09IGFsaWFzKTtcbiAgaWYgKG9sZCAmJiBhbGlhcyA9PT0gb2xkLmFsaWFzKSB7XG4gICAgYm91bmRhcnkgPSBvbGQ7XG4gIH0gZWxzZSB7XG4gICAgYm91bmRhcnkuYWxpYXMgPSBhbGlhcztcbiAgICBib3VuZGFyaWVzLnB1c2goYm91bmRhcnkpO1xuICB9XG4gIGlmIChsYWJlbCA9PT0gdm9pZCAwIHx8IGxhYmVsID09PSBudWxsKSB7XG4gICAgYm91bmRhcnkubGFiZWwgPSB7IHRleHQ6IFwiXCIgfTtcbiAgfSBlbHNlIHtcbiAgICBib3VuZGFyeS5sYWJlbCA9IHsgdGV4dDogbGFiZWwgfTtcbiAgfVxuICBpZiAodHlwZSA9PT0gdm9pZCAwIHx8IHR5cGUgPT09IG51bGwpIHtcbiAgICBib3VuZGFyeS50eXBlID0geyB0ZXh0OiBcInN5c3RlbVwiIH07XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXModHlwZSlbMF07XG4gICAgICBib3VuZGFyeVtrZXldID0geyB0ZXh0OiB2YWx1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBib3VuZGFyeS50eXBlID0geyB0ZXh0OiB0eXBlIH07XG4gICAgfVxuICB9XG4gIGlmICh0eXBlb2YgdGFncyA9PT0gXCJvYmplY3RcIikge1xuICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyh0YWdzKVswXTtcbiAgICBib3VuZGFyeVtrZXldID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgYm91bmRhcnkudGFncyA9IHRhZ3M7XG4gIH1cbiAgaWYgKHR5cGVvZiBsaW5rID09PSBcIm9iamVjdFwiKSB7XG4gICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKGxpbmspWzBdO1xuICAgIGJvdW5kYXJ5W2tleV0gPSB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICBib3VuZGFyeS5saW5rID0gbGluaztcbiAgfVxuICBib3VuZGFyeS5wYXJlbnRCb3VuZGFyeSA9IGN1cnJlbnRCb3VuZGFyeVBhcnNlO1xuICBib3VuZGFyeS53cmFwID0gYXV0b1dyYXAoKTtcbiAgcGFyZW50Qm91bmRhcnlQYXJzZSA9IGN1cnJlbnRCb3VuZGFyeVBhcnNlO1xuICBjdXJyZW50Qm91bmRhcnlQYXJzZSA9IGFsaWFzO1xuICBib3VuZGFyeVBhcnNlU3RhY2sucHVzaChwYXJlbnRCb3VuZGFyeVBhcnNlKTtcbn07XG5jb25zdCBhZGRDb250YWluZXJCb3VuZGFyeSA9IGZ1bmN0aW9uKGFsaWFzLCBsYWJlbCwgdHlwZSwgdGFncywgbGluaykge1xuICBpZiAoYWxpYXMgPT09IG51bGwgfHwgbGFiZWwgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbGV0IGJvdW5kYXJ5ID0ge307XG4gIGNvbnN0IG9sZCA9IGJvdW5kYXJpZXMuZmluZCgoYm91bmRhcnkyKSA9PiBib3VuZGFyeTIuYWxpYXMgPT09IGFsaWFzKTtcbiAgaWYgKG9sZCAmJiBhbGlhcyA9PT0gb2xkLmFsaWFzKSB7XG4gICAgYm91bmRhcnkgPSBvbGQ7XG4gIH0gZWxzZSB7XG4gICAgYm91bmRhcnkuYWxpYXMgPSBhbGlhcztcbiAgICBib3VuZGFyaWVzLnB1c2goYm91bmRhcnkpO1xuICB9XG4gIGlmIChsYWJlbCA9PT0gdm9pZCAwIHx8IGxhYmVsID09PSBudWxsKSB7XG4gICAgYm91bmRhcnkubGFiZWwgPSB7IHRleHQ6IFwiXCIgfTtcbiAgfSBlbHNlIHtcbiAgICBib3VuZGFyeS5sYWJlbCA9IHsgdGV4dDogbGFiZWwgfTtcbiAgfVxuICBpZiAodHlwZSA9PT0gdm9pZCAwIHx8IHR5cGUgPT09IG51bGwpIHtcbiAgICBib3VuZGFyeS50eXBlID0geyB0ZXh0OiBcImNvbnRhaW5lclwiIH07XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXModHlwZSlbMF07XG4gICAgICBib3VuZGFyeVtrZXldID0geyB0ZXh0OiB2YWx1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBib3VuZGFyeS50eXBlID0geyB0ZXh0OiB0eXBlIH07XG4gICAgfVxuICB9XG4gIGlmICh0eXBlb2YgdGFncyA9PT0gXCJvYmplY3RcIikge1xuICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyh0YWdzKVswXTtcbiAgICBib3VuZGFyeVtrZXldID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgYm91bmRhcnkudGFncyA9IHRhZ3M7XG4gIH1cbiAgaWYgKHR5cGVvZiBsaW5rID09PSBcIm9iamVjdFwiKSB7XG4gICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKGxpbmspWzBdO1xuICAgIGJvdW5kYXJ5W2tleV0gPSB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICBib3VuZGFyeS5saW5rID0gbGluaztcbiAgfVxuICBib3VuZGFyeS5wYXJlbnRCb3VuZGFyeSA9IGN1cnJlbnRCb3VuZGFyeVBhcnNlO1xuICBib3VuZGFyeS53cmFwID0gYXV0b1dyYXAoKTtcbiAgcGFyZW50Qm91bmRhcnlQYXJzZSA9IGN1cnJlbnRCb3VuZGFyeVBhcnNlO1xuICBjdXJyZW50Qm91bmRhcnlQYXJzZSA9IGFsaWFzO1xuICBib3VuZGFyeVBhcnNlU3RhY2sucHVzaChwYXJlbnRCb3VuZGFyeVBhcnNlKTtcbn07XG5jb25zdCBhZGREZXBsb3ltZW50Tm9kZSA9IGZ1bmN0aW9uKG5vZGVUeXBlLCBhbGlhcywgbGFiZWwsIHR5cGUsIGRlc2NyLCBzcHJpdGUsIHRhZ3MsIGxpbmspIHtcbiAgaWYgKGFsaWFzID09PSBudWxsIHx8IGxhYmVsID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGxldCBib3VuZGFyeSA9IHt9O1xuICBjb25zdCBvbGQgPSBib3VuZGFyaWVzLmZpbmQoKGJvdW5kYXJ5MikgPT4gYm91bmRhcnkyLmFsaWFzID09PSBhbGlhcyk7XG4gIGlmIChvbGQgJiYgYWxpYXMgPT09IG9sZC5hbGlhcykge1xuICAgIGJvdW5kYXJ5ID0gb2xkO1xuICB9IGVsc2Uge1xuICAgIGJvdW5kYXJ5LmFsaWFzID0gYWxpYXM7XG4gICAgYm91bmRhcmllcy5wdXNoKGJvdW5kYXJ5KTtcbiAgfVxuICBpZiAobGFiZWwgPT09IHZvaWQgMCB8fCBsYWJlbCA9PT0gbnVsbCkge1xuICAgIGJvdW5kYXJ5LmxhYmVsID0geyB0ZXh0OiBcIlwiIH07XG4gIH0gZWxzZSB7XG4gICAgYm91bmRhcnkubGFiZWwgPSB7IHRleHQ6IGxhYmVsIH07XG4gIH1cbiAgaWYgKHR5cGUgPT09IHZvaWQgMCB8fCB0eXBlID09PSBudWxsKSB7XG4gICAgYm91bmRhcnkudHlwZSA9IHsgdGV4dDogXCJub2RlXCIgfTtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyh0eXBlKVswXTtcbiAgICAgIGJvdW5kYXJ5W2tleV0gPSB7IHRleHQ6IHZhbHVlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGJvdW5kYXJ5LnR5cGUgPSB7IHRleHQ6IHR5cGUgfTtcbiAgICB9XG4gIH1cbiAgaWYgKGRlc2NyID09PSB2b2lkIDAgfHwgZGVzY3IgPT09IG51bGwpIHtcbiAgICBib3VuZGFyeS5kZXNjciA9IHsgdGV4dDogXCJcIiB9O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZGVzY3IgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyhkZXNjcilbMF07XG4gICAgICBib3VuZGFyeVtrZXldID0geyB0ZXh0OiB2YWx1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBib3VuZGFyeS5kZXNjciA9IHsgdGV4dDogZGVzY3IgfTtcbiAgICB9XG4gIH1cbiAgaWYgKHR5cGVvZiB0YWdzID09PSBcIm9iamVjdFwiKSB7XG4gICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKHRhZ3MpWzBdO1xuICAgIGJvdW5kYXJ5W2tleV0gPSB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICBib3VuZGFyeS50YWdzID0gdGFncztcbiAgfVxuICBpZiAodHlwZW9mIGxpbmsgPT09IFwib2JqZWN0XCIpIHtcbiAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXMobGluaylbMF07XG4gICAgYm91bmRhcnlba2V5XSA9IHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIGJvdW5kYXJ5LmxpbmsgPSBsaW5rO1xuICB9XG4gIGJvdW5kYXJ5Lm5vZGVUeXBlID0gbm9kZVR5cGU7XG4gIGJvdW5kYXJ5LnBhcmVudEJvdW5kYXJ5ID0gY3VycmVudEJvdW5kYXJ5UGFyc2U7XG4gIGJvdW5kYXJ5LndyYXAgPSBhdXRvV3JhcCgpO1xuICBwYXJlbnRCb3VuZGFyeVBhcnNlID0gY3VycmVudEJvdW5kYXJ5UGFyc2U7XG4gIGN1cnJlbnRCb3VuZGFyeVBhcnNlID0gYWxpYXM7XG4gIGJvdW5kYXJ5UGFyc2VTdGFjay5wdXNoKHBhcmVudEJvdW5kYXJ5UGFyc2UpO1xufTtcbmNvbnN0IHBvcEJvdW5kYXJ5UGFyc2VTdGFjayA9IGZ1bmN0aW9uKCkge1xuICBjdXJyZW50Qm91bmRhcnlQYXJzZSA9IHBhcmVudEJvdW5kYXJ5UGFyc2U7XG4gIGJvdW5kYXJ5UGFyc2VTdGFjay5wb3AoKTtcbiAgcGFyZW50Qm91bmRhcnlQYXJzZSA9IGJvdW5kYXJ5UGFyc2VTdGFjay5wb3AoKTtcbiAgYm91bmRhcnlQYXJzZVN0YWNrLnB1c2gocGFyZW50Qm91bmRhcnlQYXJzZSk7XG59O1xuY29uc3QgdXBkYXRlRWxTdHlsZSA9IGZ1bmN0aW9uKHR5cGVDNFNoYXBlLCBlbGVtZW50TmFtZSwgYmdDb2xvciwgZm9udENvbG9yLCBib3JkZXJDb2xvciwgc2hhZG93aW5nLCBzaGFwZSwgc3ByaXRlLCB0ZWNobiwgbGVnZW5kVGV4dCwgbGVnZW5kU3ByaXRlKSB7XG4gIGxldCBvbGQgPSBjNFNoYXBlQXJyYXkuZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5hbGlhcyA9PT0gZWxlbWVudE5hbWUpO1xuICBpZiAob2xkID09PSB2b2lkIDApIHtcbiAgICBvbGQgPSBib3VuZGFyaWVzLmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuYWxpYXMgPT09IGVsZW1lbnROYW1lKTtcbiAgICBpZiAob2xkID09PSB2b2lkIDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgaWYgKGJnQ29sb3IgIT09IHZvaWQgMCAmJiBiZ0NvbG9yICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGVvZiBiZ0NvbG9yID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXMoYmdDb2xvcilbMF07XG4gICAgICBvbGRba2V5XSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbGQuYmdDb2xvciA9IGJnQ29sb3I7XG4gICAgfVxuICB9XG4gIGlmIChmb250Q29sb3IgIT09IHZvaWQgMCAmJiBmb250Q29sb3IgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZW9mIGZvbnRDb2xvciA9PT0gXCJvYmplY3RcIikge1xuICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKGZvbnRDb2xvcilbMF07XG4gICAgICBvbGRba2V5XSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbGQuZm9udENvbG9yID0gZm9udENvbG9yO1xuICAgIH1cbiAgfVxuICBpZiAoYm9yZGVyQ29sb3IgIT09IHZvaWQgMCAmJiBib3JkZXJDb2xvciAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlb2YgYm9yZGVyQ29sb3IgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyhib3JkZXJDb2xvcilbMF07XG4gICAgICBvbGRba2V5XSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbGQuYm9yZGVyQ29sb3IgPSBib3JkZXJDb2xvcjtcbiAgICB9XG4gIH1cbiAgaWYgKHNoYWRvd2luZyAhPT0gdm9pZCAwICYmIHNoYWRvd2luZyAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlb2Ygc2hhZG93aW5nID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXMoc2hhZG93aW5nKVswXTtcbiAgICAgIG9sZFtrZXldID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9sZC5zaGFkb3dpbmcgPSBzaGFkb3dpbmc7XG4gICAgfVxuICB9XG4gIGlmIChzaGFwZSAhPT0gdm9pZCAwICYmIHNoYXBlICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGVvZiBzaGFwZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKHNoYXBlKVswXTtcbiAgICAgIG9sZFtrZXldID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9sZC5zaGFwZSA9IHNoYXBlO1xuICAgIH1cbiAgfVxuICBpZiAoc3ByaXRlICE9PSB2b2lkIDAgJiYgc3ByaXRlICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGVvZiBzcHJpdGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyhzcHJpdGUpWzBdO1xuICAgICAgb2xkW2tleV0gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2xkLnNwcml0ZSA9IHNwcml0ZTtcbiAgICB9XG4gIH1cbiAgaWYgKHRlY2huICE9PSB2b2lkIDAgJiYgdGVjaG4gIT09IG51bGwpIHtcbiAgICBpZiAodHlwZW9mIHRlY2huID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXModGVjaG4pWzBdO1xuICAgICAgb2xkW2tleV0gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2xkLnRlY2huID0gdGVjaG47XG4gICAgfVxuICB9XG4gIGlmIChsZWdlbmRUZXh0ICE9PSB2b2lkIDAgJiYgbGVnZW5kVGV4dCAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlb2YgbGVnZW5kVGV4dCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKGxlZ2VuZFRleHQpWzBdO1xuICAgICAgb2xkW2tleV0gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2xkLmxlZ2VuZFRleHQgPSBsZWdlbmRUZXh0O1xuICAgIH1cbiAgfVxuICBpZiAobGVnZW5kU3ByaXRlICE9PSB2b2lkIDAgJiYgbGVnZW5kU3ByaXRlICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGVvZiBsZWdlbmRTcHJpdGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyhsZWdlbmRTcHJpdGUpWzBdO1xuICAgICAgb2xkW2tleV0gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2xkLmxlZ2VuZFNwcml0ZSA9IGxlZ2VuZFNwcml0ZTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCB1cGRhdGVSZWxTdHlsZSA9IGZ1bmN0aW9uKHR5cGVDNFNoYXBlLCBmcm9tLCB0bywgdGV4dENvbG9yLCBsaW5lQ29sb3IsIG9mZnNldFgsIG9mZnNldFkpIHtcbiAgY29uc3Qgb2xkID0gcmVscy5maW5kKChyZWwpID0+IHJlbC5mcm9tID09PSBmcm9tICYmIHJlbC50byA9PT0gdG8pO1xuICBpZiAob2xkID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHRleHRDb2xvciAhPT0gdm9pZCAwICYmIHRleHRDb2xvciAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlb2YgdGV4dENvbG9yID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWVdID0gT2JqZWN0LmVudHJpZXModGV4dENvbG9yKVswXTtcbiAgICAgIG9sZFtrZXldID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9sZC50ZXh0Q29sb3IgPSB0ZXh0Q29sb3I7XG4gICAgfVxuICB9XG4gIGlmIChsaW5lQ29sb3IgIT09IHZvaWQgMCAmJiBsaW5lQ29sb3IgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZW9mIGxpbmVDb2xvciA9PT0gXCJvYmplY3RcIikge1xuICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKGxpbmVDb2xvcilbMF07XG4gICAgICBvbGRba2V5XSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbGQubGluZUNvbG9yID0gbGluZUNvbG9yO1xuICAgIH1cbiAgfVxuICBpZiAob2Zmc2V0WCAhPT0gdm9pZCAwICYmIG9mZnNldFggIT09IG51bGwpIHtcbiAgICBpZiAodHlwZW9mIG9mZnNldFggPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyhvZmZzZXRYKVswXTtcbiAgICAgIG9sZFtrZXldID0gcGFyc2VJbnQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbGQub2Zmc2V0WCA9IHBhcnNlSW50KG9mZnNldFgpO1xuICAgIH1cbiAgfVxuICBpZiAob2Zmc2V0WSAhPT0gdm9pZCAwICYmIG9mZnNldFkgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZW9mIG9mZnNldFkgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZV0gPSBPYmplY3QuZW50cmllcyhvZmZzZXRZKVswXTtcbiAgICAgIG9sZFtrZXldID0gcGFyc2VJbnQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbGQub2Zmc2V0WSA9IHBhcnNlSW50KG9mZnNldFkpO1xuICAgIH1cbiAgfVxufTtcbmNvbnN0IHVwZGF0ZUxheW91dENvbmZpZyA9IGZ1bmN0aW9uKHR5cGVDNFNoYXBlLCBjNFNoYXBlSW5Sb3dQYXJhbSwgYzRCb3VuZGFyeUluUm93UGFyYW0pIHtcbiAgbGV0IGM0U2hhcGVJblJvd1ZhbHVlID0gYzRTaGFwZUluUm93JDE7XG4gIGxldCBjNEJvdW5kYXJ5SW5Sb3dWYWx1ZSA9IGM0Qm91bmRhcnlJblJvdyQxO1xuICBpZiAodHlwZW9mIGM0U2hhcGVJblJvd1BhcmFtID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgdmFsdWUgPSBPYmplY3QudmFsdWVzKGM0U2hhcGVJblJvd1BhcmFtKVswXTtcbiAgICBjNFNoYXBlSW5Sb3dWYWx1ZSA9IHBhcnNlSW50KHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBjNFNoYXBlSW5Sb3dWYWx1ZSA9IHBhcnNlSW50KGM0U2hhcGVJblJvd1BhcmFtKTtcbiAgfVxuICBpZiAodHlwZW9mIGM0Qm91bmRhcnlJblJvd1BhcmFtID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgdmFsdWUgPSBPYmplY3QudmFsdWVzKGM0Qm91bmRhcnlJblJvd1BhcmFtKVswXTtcbiAgICBjNEJvdW5kYXJ5SW5Sb3dWYWx1ZSA9IHBhcnNlSW50KHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBjNEJvdW5kYXJ5SW5Sb3dWYWx1ZSA9IHBhcnNlSW50KGM0Qm91bmRhcnlJblJvd1BhcmFtKTtcbiAgfVxuICBpZiAoYzRTaGFwZUluUm93VmFsdWUgPj0gMSkge1xuICAgIGM0U2hhcGVJblJvdyQxID0gYzRTaGFwZUluUm93VmFsdWU7XG4gIH1cbiAgaWYgKGM0Qm91bmRhcnlJblJvd1ZhbHVlID49IDEpIHtcbiAgICBjNEJvdW5kYXJ5SW5Sb3ckMSA9IGM0Qm91bmRhcnlJblJvd1ZhbHVlO1xuICB9XG59O1xuY29uc3QgZ2V0QzRTaGFwZUluUm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBjNFNoYXBlSW5Sb3ckMTtcbn07XG5jb25zdCBnZXRDNEJvdW5kYXJ5SW5Sb3cgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGM0Qm91bmRhcnlJblJvdyQxO1xufTtcbmNvbnN0IGdldEN1cnJlbnRCb3VuZGFyeVBhcnNlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBjdXJyZW50Qm91bmRhcnlQYXJzZTtcbn07XG5jb25zdCBnZXRQYXJlbnRCb3VuZGFyeVBhcnNlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBwYXJlbnRCb3VuZGFyeVBhcnNlO1xufTtcbmNvbnN0IGdldEM0U2hhcGVBcnJheSA9IGZ1bmN0aW9uKHBhcmVudEJvdW5kYXJ5KSB7XG4gIGlmIChwYXJlbnRCb3VuZGFyeSA9PT0gdm9pZCAwIHx8IHBhcmVudEJvdW5kYXJ5ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGM0U2hhcGVBcnJheTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYzRTaGFwZUFycmF5LmZpbHRlcigocGVyc29uT3JTeXN0ZW0pID0+IHtcbiAgICAgIHJldHVybiBwZXJzb25PclN5c3RlbS5wYXJlbnRCb3VuZGFyeSA9PT0gcGFyZW50Qm91bmRhcnk7XG4gICAgfSk7XG4gIH1cbn07XG5jb25zdCBnZXRDNFNoYXBlID0gZnVuY3Rpb24oYWxpYXMpIHtcbiAgcmV0dXJuIGM0U2hhcGVBcnJheS5maW5kKChwZXJzb25PclN5c3RlbSkgPT4gcGVyc29uT3JTeXN0ZW0uYWxpYXMgPT09IGFsaWFzKTtcbn07XG5jb25zdCBnZXRDNFNoYXBlS2V5cyA9IGZ1bmN0aW9uKHBhcmVudEJvdW5kYXJ5KSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhnZXRDNFNoYXBlQXJyYXkocGFyZW50Qm91bmRhcnkpKTtcbn07XG5jb25zdCBnZXRCb3VuZGFyaWVzID0gZnVuY3Rpb24ocGFyZW50Qm91bmRhcnkpIHtcbiAgaWYgKHBhcmVudEJvdW5kYXJ5ID09PSB2b2lkIDAgfHwgcGFyZW50Qm91bmRhcnkgPT09IG51bGwpIHtcbiAgICByZXR1cm4gYm91bmRhcmllcztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYm91bmRhcmllcy5maWx0ZXIoKGJvdW5kYXJ5KSA9PiBib3VuZGFyeS5wYXJlbnRCb3VuZGFyeSA9PT0gcGFyZW50Qm91bmRhcnkpO1xuICB9XG59O1xuY29uc3QgZ2V0Qm91bmRhcnlzID0gZ2V0Qm91bmRhcmllcztcbmNvbnN0IGdldFJlbHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHJlbHM7XG59O1xuY29uc3QgZ2V0VGl0bGUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRpdGxlO1xufTtcbmNvbnN0IHNldFdyYXAgPSBmdW5jdGlvbih3cmFwU2V0dGluZykge1xuICB3cmFwRW5hYmxlZCA9IHdyYXBTZXR0aW5nO1xufTtcbmNvbnN0IGF1dG9XcmFwID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB3cmFwRW5hYmxlZDtcbn07XG5jb25zdCBjbGVhciA9IGZ1bmN0aW9uKCkge1xuICBjNFNoYXBlQXJyYXkgPSBbXTtcbiAgYm91bmRhcmllcyA9IFtcbiAgICB7XG4gICAgICBhbGlhczogXCJnbG9iYWxcIixcbiAgICAgIGxhYmVsOiB7IHRleHQ6IFwiZ2xvYmFsXCIgfSxcbiAgICAgIHR5cGU6IHsgdGV4dDogXCJnbG9iYWxcIiB9LFxuICAgICAgdGFnczogbnVsbCxcbiAgICAgIGxpbms6IG51bGwsXG4gICAgICBwYXJlbnRCb3VuZGFyeTogXCJcIlxuICAgIH1cbiAgXTtcbiAgcGFyZW50Qm91bmRhcnlQYXJzZSA9IFwiXCI7XG4gIGN1cnJlbnRCb3VuZGFyeVBhcnNlID0gXCJnbG9iYWxcIjtcbiAgYm91bmRhcnlQYXJzZVN0YWNrID0gW1wiXCJdO1xuICByZWxzID0gW107XG4gIGJvdW5kYXJ5UGFyc2VTdGFjayA9IFtcIlwiXTtcbiAgdGl0bGUgPSBcIlwiO1xuICB3cmFwRW5hYmxlZCA9IGZhbHNlO1xuICBjNFNoYXBlSW5Sb3ckMSA9IDQ7XG4gIGM0Qm91bmRhcnlJblJvdyQxID0gMjtcbn07XG5jb25zdCBMSU5FVFlQRSA9IHtcbiAgU09MSUQ6IDAsXG4gIERPVFRFRDogMSxcbiAgTk9URTogMixcbiAgU09MSURfQ1JPU1M6IDMsXG4gIERPVFRFRF9DUk9TUzogNCxcbiAgU09MSURfT1BFTjogNSxcbiAgRE9UVEVEX09QRU46IDYsXG4gIExPT1BfU1RBUlQ6IDEwLFxuICBMT09QX0VORDogMTEsXG4gIEFMVF9TVEFSVDogMTIsXG4gIEFMVF9FTFNFOiAxMyxcbiAgQUxUX0VORDogMTQsXG4gIE9QVF9TVEFSVDogMTUsXG4gIE9QVF9FTkQ6IDE2LFxuICBBQ1RJVkVfU1RBUlQ6IDE3LFxuICBBQ1RJVkVfRU5EOiAxOCxcbiAgUEFSX1NUQVJUOiAxOSxcbiAgUEFSX0FORDogMjAsXG4gIFBBUl9FTkQ6IDIxLFxuICBSRUNUX1NUQVJUOiAyMixcbiAgUkVDVF9FTkQ6IDIzLFxuICBTT0xJRF9QT0lOVDogMjQsXG4gIERPVFRFRF9QT0lOVDogMjVcbn07XG5jb25zdCBBUlJPV1RZUEUgPSB7XG4gIEZJTExFRDogMCxcbiAgT1BFTjogMVxufTtcbmNvbnN0IFBMQUNFTUVOVCA9IHtcbiAgTEVGVE9GOiAwLFxuICBSSUdIVE9GOiAxLFxuICBPVkVSOiAyXG59O1xuY29uc3Qgc2V0VGl0bGUgPSBmdW5jdGlvbih0eHQpIHtcbiAgbGV0IHNhbml0aXplZFRleHQgPSBzYW5pdGl6ZVRleHQodHh0LCBnZXRDb25maWcoKSk7XG4gIHRpdGxlID0gc2FuaXRpemVkVGV4dDtcbn07XG5jb25zdCBkYiA9IHtcbiAgYWRkUGVyc29uT3JTeXN0ZW0sXG4gIGFkZFBlcnNvbk9yU3lzdGVtQm91bmRhcnksXG4gIGFkZENvbnRhaW5lcixcbiAgYWRkQ29udGFpbmVyQm91bmRhcnksXG4gIGFkZENvbXBvbmVudCxcbiAgYWRkRGVwbG95bWVudE5vZGUsXG4gIHBvcEJvdW5kYXJ5UGFyc2VTdGFjayxcbiAgYWRkUmVsLFxuICB1cGRhdGVFbFN0eWxlLFxuICB1cGRhdGVSZWxTdHlsZSxcbiAgdXBkYXRlTGF5b3V0Q29uZmlnLFxuICBhdXRvV3JhcCxcbiAgc2V0V3JhcCxcbiAgZ2V0QzRTaGFwZUFycmF5LFxuICBnZXRDNFNoYXBlLFxuICBnZXRDNFNoYXBlS2V5cyxcbiAgZ2V0Qm91bmRhcmllcyxcbiAgZ2V0Qm91bmRhcnlzLFxuICBnZXRDdXJyZW50Qm91bmRhcnlQYXJzZSxcbiAgZ2V0UGFyZW50Qm91bmRhcnlQYXJzZSxcbiAgZ2V0UmVscyxcbiAgZ2V0VGl0bGUsXG4gIGdldEM0VHlwZSxcbiAgZ2V0QzRTaGFwZUluUm93LFxuICBnZXRDNEJvdW5kYXJ5SW5Sb3csXG4gIHNldEFjY1RpdGxlLFxuICBnZXRBY2NUaXRsZSxcbiAgZ2V0QWNjRGVzY3JpcHRpb24sXG4gIHNldEFjY0Rlc2NyaXB0aW9uLFxuICBnZXRDb25maWc6ICgpID0+IGdldENvbmZpZygpLmM0LFxuICBjbGVhcixcbiAgTElORVRZUEUsXG4gIEFSUk9XVFlQRSxcbiAgUExBQ0VNRU5ULFxuICBzZXRUaXRsZSxcbiAgc2V0QzRUeXBlXG4gIC8vIGFwcGx5LFxufTtcbmNvbnN0IGRyYXdSZWN0ID0gZnVuY3Rpb24oZWxlbSwgcmVjdERhdGEpIHtcbiAgcmV0dXJuIGRyYXdSZWN0JDEoZWxlbSwgcmVjdERhdGEpO1xufTtcbmNvbnN0IGRyYXdJbWFnZSA9IGZ1bmN0aW9uKGVsZW0sIHdpZHRoLCBoZWlnaHQsIHgsIHksIGxpbmspIHtcbiAgY29uc3QgaW1hZ2VFbGVtID0gZWxlbS5hcHBlbmQoXCJpbWFnZVwiKTtcbiAgaW1hZ2VFbGVtLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aCk7XG4gIGltYWdlRWxlbS5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodCk7XG4gIGltYWdlRWxlbS5hdHRyKFwieFwiLCB4KTtcbiAgaW1hZ2VFbGVtLmF0dHIoXCJ5XCIsIHkpO1xuICBsZXQgc2FuaXRpemVkTGluayA9IGxpbmsuc3RhcnRzV2l0aChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NFwiKSA/IGxpbmsgOiBzYW5pdGl6ZVVybChsaW5rKTtcbiAgaW1hZ2VFbGVtLmF0dHIoXCJ4bGluazpocmVmXCIsIHNhbml0aXplZExpbmspO1xufTtcbmNvbnN0IGRyYXdSZWxzJDEgPSAoZWxlbSwgcmVsczIsIGNvbmYyKSA9PiB7XG4gIGNvbnN0IHJlbHNFbGVtID0gZWxlbS5hcHBlbmQoXCJnXCIpO1xuICBsZXQgaSA9IDA7XG4gIGZvciAobGV0IHJlbCBvZiByZWxzMikge1xuICAgIGxldCB0ZXh0Q29sb3IgPSByZWwudGV4dENvbG9yID8gcmVsLnRleHRDb2xvciA6IFwiIzQ0NDQ0NFwiO1xuICAgIGxldCBzdHJva2VDb2xvciA9IHJlbC5saW5lQ29sb3IgPyByZWwubGluZUNvbG9yIDogXCIjNDQ0NDQ0XCI7XG4gICAgbGV0IG9mZnNldFggPSByZWwub2Zmc2V0WCA/IHBhcnNlSW50KHJlbC5vZmZzZXRYKSA6IDA7XG4gICAgbGV0IG9mZnNldFkgPSByZWwub2Zmc2V0WSA/IHBhcnNlSW50KHJlbC5vZmZzZXRZKSA6IDA7XG4gICAgbGV0IHVybCA9IFwiXCI7XG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGxldCBsaW5lID0gcmVsc0VsZW0uYXBwZW5kKFwibGluZVwiKTtcbiAgICAgIGxpbmUuYXR0cihcIngxXCIsIHJlbC5zdGFydFBvaW50LngpO1xuICAgICAgbGluZS5hdHRyKFwieTFcIiwgcmVsLnN0YXJ0UG9pbnQueSk7XG4gICAgICBsaW5lLmF0dHIoXCJ4MlwiLCByZWwuZW5kUG9pbnQueCk7XG4gICAgICBsaW5lLmF0dHIoXCJ5MlwiLCByZWwuZW5kUG9pbnQueSk7XG4gICAgICBsaW5lLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgXCIxXCIpO1xuICAgICAgbGluZS5hdHRyKFwic3Ryb2tlXCIsIHN0cm9rZUNvbG9yKTtcbiAgICAgIGxpbmUuc3R5bGUoXCJmaWxsXCIsIFwibm9uZVwiKTtcbiAgICAgIGlmIChyZWwudHlwZSAhPT0gXCJyZWxfYlwiKSB7XG4gICAgICAgIGxpbmUuYXR0cihcIm1hcmtlci1lbmRcIiwgXCJ1cmwoXCIgKyB1cmwgKyBcIiNhcnJvd2hlYWQpXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHJlbC50eXBlID09PSBcImJpcmVsXCIgfHwgcmVsLnR5cGUgPT09IFwicmVsX2JcIikge1xuICAgICAgICBsaW5lLmF0dHIoXCJtYXJrZXItc3RhcnRcIiwgXCJ1cmwoXCIgKyB1cmwgKyBcIiNhcnJvd2VuZClcIik7XG4gICAgICB9XG4gICAgICBpID0gLTE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBsaW5lID0gcmVsc0VsZW0uYXBwZW5kKFwicGF0aFwiKTtcbiAgICAgIGxpbmUuYXR0cihcImZpbGxcIiwgXCJub25lXCIpLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgXCIxXCIpLmF0dHIoXCJzdHJva2VcIiwgc3Ryb2tlQ29sb3IpLmF0dHIoXG4gICAgICAgIFwiZFwiLFxuICAgICAgICBcIk1zdGFydHgsc3RhcnR5IFFjb250cm9seCxjb250cm9seSBzdG9weCxzdG9weSBcIi5yZXBsYWNlQWxsKFwic3RhcnR4XCIsIHJlbC5zdGFydFBvaW50LngpLnJlcGxhY2VBbGwoXCJzdGFydHlcIiwgcmVsLnN0YXJ0UG9pbnQueSkucmVwbGFjZUFsbChcbiAgICAgICAgICBcImNvbnRyb2x4XCIsXG4gICAgICAgICAgcmVsLnN0YXJ0UG9pbnQueCArIChyZWwuZW5kUG9pbnQueCAtIHJlbC5zdGFydFBvaW50LngpIC8gMiAtIChyZWwuZW5kUG9pbnQueCAtIHJlbC5zdGFydFBvaW50LngpIC8gNFxuICAgICAgICApLnJlcGxhY2VBbGwoXCJjb250cm9seVwiLCByZWwuc3RhcnRQb2ludC55ICsgKHJlbC5lbmRQb2ludC55IC0gcmVsLnN0YXJ0UG9pbnQueSkgLyAyKS5yZXBsYWNlQWxsKFwic3RvcHhcIiwgcmVsLmVuZFBvaW50LngpLnJlcGxhY2VBbGwoXCJzdG9weVwiLCByZWwuZW5kUG9pbnQueSlcbiAgICAgICk7XG4gICAgICBpZiAocmVsLnR5cGUgIT09IFwicmVsX2JcIikge1xuICAgICAgICBsaW5lLmF0dHIoXCJtYXJrZXItZW5kXCIsIFwidXJsKFwiICsgdXJsICsgXCIjYXJyb3doZWFkKVwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZWwudHlwZSA9PT0gXCJiaXJlbFwiIHx8IHJlbC50eXBlID09PSBcInJlbF9iXCIpIHtcbiAgICAgICAgbGluZS5hdHRyKFwibWFya2VyLXN0YXJ0XCIsIFwidXJsKFwiICsgdXJsICsgXCIjYXJyb3dlbmQpXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgbWVzc2FnZUNvbmYgPSBjb25mMi5tZXNzYWdlRm9udCgpO1xuICAgIF9kcmF3VGV4dENhbmRpZGF0ZUZ1bmMoY29uZjIpKFxuICAgICAgcmVsLmxhYmVsLnRleHQsXG4gICAgICByZWxzRWxlbSxcbiAgICAgIE1hdGgubWluKHJlbC5zdGFydFBvaW50LngsIHJlbC5lbmRQb2ludC54KSArIE1hdGguYWJzKHJlbC5lbmRQb2ludC54IC0gcmVsLnN0YXJ0UG9pbnQueCkgLyAyICsgb2Zmc2V0WCxcbiAgICAgIE1hdGgubWluKHJlbC5zdGFydFBvaW50LnksIHJlbC5lbmRQb2ludC55KSArIE1hdGguYWJzKHJlbC5lbmRQb2ludC55IC0gcmVsLnN0YXJ0UG9pbnQueSkgLyAyICsgb2Zmc2V0WSxcbiAgICAgIHJlbC5sYWJlbC53aWR0aCxcbiAgICAgIHJlbC5sYWJlbC5oZWlnaHQsXG4gICAgICB7IGZpbGw6IHRleHRDb2xvciB9LFxuICAgICAgbWVzc2FnZUNvbmZcbiAgICApO1xuICAgIGlmIChyZWwudGVjaG4gJiYgcmVsLnRlY2huLnRleHQgIT09IFwiXCIpIHtcbiAgICAgIG1lc3NhZ2VDb25mID0gY29uZjIubWVzc2FnZUZvbnQoKTtcbiAgICAgIF9kcmF3VGV4dENhbmRpZGF0ZUZ1bmMoY29uZjIpKFxuICAgICAgICBcIltcIiArIHJlbC50ZWNobi50ZXh0ICsgXCJdXCIsXG4gICAgICAgIHJlbHNFbGVtLFxuICAgICAgICBNYXRoLm1pbihyZWwuc3RhcnRQb2ludC54LCByZWwuZW5kUG9pbnQueCkgKyBNYXRoLmFicyhyZWwuZW5kUG9pbnQueCAtIHJlbC5zdGFydFBvaW50LngpIC8gMiArIG9mZnNldFgsXG4gICAgICAgIE1hdGgubWluKHJlbC5zdGFydFBvaW50LnksIHJlbC5lbmRQb2ludC55KSArIE1hdGguYWJzKHJlbC5lbmRQb2ludC55IC0gcmVsLnN0YXJ0UG9pbnQueSkgLyAyICsgY29uZjIubWVzc2FnZUZvbnRTaXplICsgNSArIG9mZnNldFksXG4gICAgICAgIE1hdGgubWF4KHJlbC5sYWJlbC53aWR0aCwgcmVsLnRlY2huLndpZHRoKSxcbiAgICAgICAgcmVsLnRlY2huLmhlaWdodCxcbiAgICAgICAgeyBmaWxsOiB0ZXh0Q29sb3IsIFwiZm9udC1zdHlsZVwiOiBcIml0YWxpY1wiIH0sXG4gICAgICAgIG1lc3NhZ2VDb25mXG4gICAgICApO1xuICAgIH1cbiAgfVxufTtcbmNvbnN0IGRyYXdCb3VuZGFyeSQxID0gZnVuY3Rpb24oZWxlbSwgYm91bmRhcnksIGNvbmYyKSB7XG4gIGNvbnN0IGJvdW5kYXJ5RWxlbSA9IGVsZW0uYXBwZW5kKFwiZ1wiKTtcbiAgbGV0IGZpbGxDb2xvciA9IGJvdW5kYXJ5LmJnQ29sb3IgPyBib3VuZGFyeS5iZ0NvbG9yIDogXCJub25lXCI7XG4gIGxldCBzdHJva2VDb2xvciA9IGJvdW5kYXJ5LmJvcmRlckNvbG9yID8gYm91bmRhcnkuYm9yZGVyQ29sb3IgOiBcIiM0NDQ0NDRcIjtcbiAgbGV0IGZvbnRDb2xvciA9IGJvdW5kYXJ5LmZvbnRDb2xvciA/IGJvdW5kYXJ5LmZvbnRDb2xvciA6IFwiYmxhY2tcIjtcbiAgbGV0IGF0dHJzVmFsdWUgPSB7IFwic3Ryb2tlLXdpZHRoXCI6IDEsIFwic3Ryb2tlLWRhc2hhcnJheVwiOiBcIjcuMCw3LjBcIiB9O1xuICBpZiAoYm91bmRhcnkubm9kZVR5cGUpIHtcbiAgICBhdHRyc1ZhbHVlID0geyBcInN0cm9rZS13aWR0aFwiOiAxIH07XG4gIH1cbiAgbGV0IHJlY3REYXRhID0ge1xuICAgIHg6IGJvdW5kYXJ5LngsXG4gICAgeTogYm91bmRhcnkueSxcbiAgICBmaWxsOiBmaWxsQ29sb3IsXG4gICAgc3Ryb2tlOiBzdHJva2VDb2xvcixcbiAgICB3aWR0aDogYm91bmRhcnkud2lkdGgsXG4gICAgaGVpZ2h0OiBib3VuZGFyeS5oZWlnaHQsXG4gICAgcng6IDIuNSxcbiAgICByeTogMi41LFxuICAgIGF0dHJzOiBhdHRyc1ZhbHVlXG4gIH07XG4gIGRyYXdSZWN0KGJvdW5kYXJ5RWxlbSwgcmVjdERhdGEpO1xuICBsZXQgYm91bmRhcnlDb25mID0gY29uZjIuYm91bmRhcnlGb250KCk7XG4gIGJvdW5kYXJ5Q29uZi5mb250V2VpZ2h0ID0gXCJib2xkXCI7XG4gIGJvdW5kYXJ5Q29uZi5mb250U2l6ZSA9IGJvdW5kYXJ5Q29uZi5mb250U2l6ZSArIDI7XG4gIGJvdW5kYXJ5Q29uZi5mb250Q29sb3IgPSBmb250Q29sb3I7XG4gIF9kcmF3VGV4dENhbmRpZGF0ZUZ1bmMoY29uZjIpKFxuICAgIGJvdW5kYXJ5LmxhYmVsLnRleHQsXG4gICAgYm91bmRhcnlFbGVtLFxuICAgIGJvdW5kYXJ5LngsXG4gICAgYm91bmRhcnkueSArIGJvdW5kYXJ5LmxhYmVsLlksXG4gICAgYm91bmRhcnkud2lkdGgsXG4gICAgYm91bmRhcnkuaGVpZ2h0LFxuICAgIHsgZmlsbDogXCIjNDQ0NDQ0XCIgfSxcbiAgICBib3VuZGFyeUNvbmZcbiAgKTtcbiAgaWYgKGJvdW5kYXJ5LnR5cGUgJiYgYm91bmRhcnkudHlwZS50ZXh0ICE9PSBcIlwiKSB7XG4gICAgYm91bmRhcnlDb25mID0gY29uZjIuYm91bmRhcnlGb250KCk7XG4gICAgYm91bmRhcnlDb25mLmZvbnRDb2xvciA9IGZvbnRDb2xvcjtcbiAgICBfZHJhd1RleHRDYW5kaWRhdGVGdW5jKGNvbmYyKShcbiAgICAgIGJvdW5kYXJ5LnR5cGUudGV4dCxcbiAgICAgIGJvdW5kYXJ5RWxlbSxcbiAgICAgIGJvdW5kYXJ5LngsXG4gICAgICBib3VuZGFyeS55ICsgYm91bmRhcnkudHlwZS5ZLFxuICAgICAgYm91bmRhcnkud2lkdGgsXG4gICAgICBib3VuZGFyeS5oZWlnaHQsXG4gICAgICB7IGZpbGw6IFwiIzQ0NDQ0NFwiIH0sXG4gICAgICBib3VuZGFyeUNvbmZcbiAgICApO1xuICB9XG4gIGlmIChib3VuZGFyeS5kZXNjciAmJiBib3VuZGFyeS5kZXNjci50ZXh0ICE9PSBcIlwiKSB7XG4gICAgYm91bmRhcnlDb25mID0gY29uZjIuYm91bmRhcnlGb250KCk7XG4gICAgYm91bmRhcnlDb25mLmZvbnRTaXplID0gYm91bmRhcnlDb25mLmZvbnRTaXplIC0gMjtcbiAgICBib3VuZGFyeUNvbmYuZm9udENvbG9yID0gZm9udENvbG9yO1xuICAgIF9kcmF3VGV4dENhbmRpZGF0ZUZ1bmMoY29uZjIpKFxuICAgICAgYm91bmRhcnkuZGVzY3IudGV4dCxcbiAgICAgIGJvdW5kYXJ5RWxlbSxcbiAgICAgIGJvdW5kYXJ5LngsXG4gICAgICBib3VuZGFyeS55ICsgYm91bmRhcnkuZGVzY3IuWSxcbiAgICAgIGJvdW5kYXJ5LndpZHRoLFxuICAgICAgYm91bmRhcnkuaGVpZ2h0LFxuICAgICAgeyBmaWxsOiBcIiM0NDQ0NDRcIiB9LFxuICAgICAgYm91bmRhcnlDb25mXG4gICAgKTtcbiAgfVxufTtcbmNvbnN0IGRyYXdDNFNoYXBlID0gZnVuY3Rpb24oZWxlbSwgYzRTaGFwZSwgY29uZjIpIHtcbiAgdmFyIF9hO1xuICBsZXQgZmlsbENvbG9yID0gYzRTaGFwZS5iZ0NvbG9yID8gYzRTaGFwZS5iZ0NvbG9yIDogY29uZjJbYzRTaGFwZS50eXBlQzRTaGFwZS50ZXh0ICsgXCJfYmdfY29sb3JcIl07XG4gIGxldCBzdHJva2VDb2xvciA9IGM0U2hhcGUuYm9yZGVyQ29sb3IgPyBjNFNoYXBlLmJvcmRlckNvbG9yIDogY29uZjJbYzRTaGFwZS50eXBlQzRTaGFwZS50ZXh0ICsgXCJfYm9yZGVyX2NvbG9yXCJdO1xuICBsZXQgZm9udENvbG9yID0gYzRTaGFwZS5mb250Q29sb3IgPyBjNFNoYXBlLmZvbnRDb2xvciA6IFwiI0ZGRkZGRlwiO1xuICBsZXQgcGVyc29uSW1nID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQUlBQUFEWVlHN1FBQUFDRDBsRVFWUjRYdTJZb1U0RU1SQ0dUKzRqOEFpOEFoYUg0UUhnQVVqUXVGTUVDVWdNSVVnd0pBZ01oZ1FzQVlVaUpDaVFJQkJZK0VJVHNqZlRkbWU2VjI0djRjOHZ5R2JiK1pqT3ROMGJOY3ZqUVhta0g4M1d2WUJXdG82UExtNnY3cDd1SDEvdzJmWEQrUEJ5Y1gxUHYybDNJZERtL3ZuN3grZFhRaUF1YlJ6b1VSYTdnUlpXZDBpR1JJaUpiT25obmZZQlFaTkpqTmJ1eVkyZUpHOGZrREUzYmJHNGVwNk1IVUFzZ1l4bUUzblZzNlZzQldKU0djY3NPbEZQbUxJVmlNekxPQjdwQ1ZPMkF0SEpNb2hIN0ZoNnpxaXRRSzdtMHJKdkFWWWdHY0VwZS8vUExkRHo2NXNNNHBGOU43SUNjWERLSUI1TnY2ajd0RDBOb1NkTTJRclU5R2cwZXdFMUxxQmhIUjNCQmR2ajJ2YXBuaWRqSHhEL3E2dmQ3UHZocjMxQXdjWThlWE1UWEFLRUNaWkpGWHVFcTI3YUxnUUs1dUxNb2hDZW5HR3VHZXdPeFNqQnZZQnFlRzZCK05xaWJsZ2dkam5jK1pYRHkrRk5GcEZ6dzc2TzNVQkFST3VYaDZGb2lBY2Y1ZzllVHZVZ3p5MG5XZzZJOGNYSFJVcGc1Yk9WQkNvK0tEcEZhak9mMjNHZ1BtZTdSU1ErbGFjSUVOVWdKNmdnMWs2SGpnT2xxbkxxaXA0dEV1aHYwaE5FTVhVRDBjbHlYRTNwNnBaQTBTMm5udlRsWHdMSkVaV2xiN2NUUUgxK1VTZ1RONFZoQWVubS93ZWExT0NBT21xbzZmRTFXQ2I5V1NLQmFoK3JiVVdQV0FtRTJSdmswQXBpQjQ1ZU95TkF6VTh4Y1R2ajhLdmtLRW9PYUlZZUhOQTNadXlnQXZGTVVPMEFBQUFBU1VWT1JLNUNZSUk9XCI7XG4gIHN3aXRjaCAoYzRTaGFwZS50eXBlQzRTaGFwZS50ZXh0KSB7XG4gICAgY2FzZSBcInBlcnNvblwiOlxuICAgICAgcGVyc29uSW1nID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQUlBQUFEWVlHN1FBQUFDRDBsRVFWUjRYdTJZb1U0RU1SQ0dUKzRqOEFpOEFoYUg0UUhnQVVqUXVGTUVDVWdNSVVnd0pBZ01oZ1FzQVlVaUpDaVFJQkJZK0VJVHNqZlRkbWU2VjI0djRjOHZ5R2JiK1pqT3ROMGJOY3ZqUVhta0g4M1d2WUJXdG82UExtNnY3cDd1SDEvdzJmWEQrUEJ5Y1gxUHYybDNJZERtL3ZuN3grZFhRaUF1YlJ6b1VSYTdnUlpXZDBpR1JJaUpiT25obmZZQlFaTkpqTmJ1eVkyZUpHOGZrREUzYmJHNGVwNk1IVUFzZ1l4bUUzblZzNlZzQldKU0djY3NPbEZQbUxJVmlNekxPQjdwQ1ZPMkF0SEpNb2hIN0ZoNnpxaXRRSzdtMHJKdkFWWWdHY0VwZS8vUExkRHo2NXNNNHBGOU43SUNjWERLSUI1TnY2ajd0RDBOb1NkTTJRclU5R2cwZXdFMUxxQmhIUjNCQmR2ajJ2YXBuaWRqSHhEL3E2dmQ3UHZocjMxQXdjWThlWE1UWEFLRUNaWkpGWHVFcTI3YUxnUUs1dUxNb2hDZW5HR3VHZXdPeFNqQnZZQnFlRzZCK05xaWJsZ2dkam5jK1pYRHkrRk5GcEZ6dzc2TzNVQkFST3VYaDZGb2lBY2Y1ZzllVHZVZ3p5MG5XZzZJOGNYSFJVcGc1Yk9WQkNvK0tEcEZhak9mMjNHZ1BtZTdSU1ErbGFjSUVOVWdKNmdnMWs2SGpnT2xxbkxxaXA0dEV1aHYwaE5FTVhVRDBjbHlYRTNwNnBaQTBTMm5udlRsWHdMSkVaV2xiN2NUUUgxK1VTZ1RONFZoQWVubS93ZWExT0NBT21xbzZmRTFXQ2I5V1NLQmFoK3JiVVdQV0FtRTJSdmswQXBpQjQ1ZU95TkF6VTh4Y1R2ajhLdmtLRW9PYUlZZUhOQTNadXlnQXZGTVVPMEFBQUFBU1VWT1JLNUNZSUk9XCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZXh0ZXJuYWxfcGVyc29uXCI6XG4gICAgICBwZXJzb25JbWcgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBSUFBQURZWUc3UUFBQUI2RWxFUVZSNFh1MllMWStFTUJDRzkrZFdyMGFqMFdnMEdvMUdvMCtqOFhkdjJ1VEN2djFncHQwZWJIS1B1aERhZVc0NjA1WjltSnZ4NEFkWFV5VFVkZDA4eit1NmZsbVdaUm5Ic1drYWZrOURwdEF3RFB1K2YwZUFZdHUyUEVhR1d1ajVmQ0lackJBQzJlTEJBblJDc0Vra3htZWFKcDdpREoyUU1EZEhzTGc4U3hLRkVKYUFvOGxBWG5tdU9GSWhUTXB4eEtBVGVibzRVaUZrbnVObzRPbmlTSVhReVJ4RUEzWXNuakdDVkVqVlhEN3lMVUFxeEJHVXlQdi9ZNFcyYmVNZ0d1UzdrVlFJQnljSDBmRCtvaTVwZXpRRVR4ZEhLbVFLR2sxZVFFWWxkSytqdzVHeFBmWjl6N01rMFFuaGYxVzFtM3cvL0VVbjVCRG1TWnNiUjQ0UVFMQkVxckJIcU9ybVNLYVFBeGRuTEFyQ3J4WmNNN0E3WktzNGlvUnE4TEZDK05wQzNXQ0JKc3ZwVnc1ZWRtOWlFWEZ1eU5meFhBZ1N3ZnJGUTFjMGlOZGE4QWRlanZVZ25rdE90SlFReG1jZkZ6R2dsYzVXVkNqN29EZ0ZxVTE4Ym9lRlNzNTJDVWg4TEU4QklWUURUMUFCckIwSHRnU0VZbFg1ZG9KbkN3djlUWG9jS0NhS2Jud2hkREtQcTRsZjNTd1UzSExxNFYvK1dZaEhWTWEvM2I0SWxmeWlrQWR1Q2tjQmM3bVEzL3ovUXEvY1R1aWtoa3pCMTJBZS9tY0pDOVUrVm84RWoxZ1dBdGdiZUdnRnNBTUhyNTBCSVdPTENiZXp2aHBCRlVkWTZFSnVKL1FEVzBYb01YNjB6WjBBQUFBQVNVVk9SSzVDWUlJPVwiO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgY29uc3QgYzRTaGFwZUVsZW0gPSBlbGVtLmFwcGVuZChcImdcIik7XG4gIGM0U2hhcGVFbGVtLmF0dHIoXCJjbGFzc1wiLCBcInBlcnNvbi1tYW5cIik7XG4gIGNvbnN0IHJlY3QgPSBnZXROb3RlUmVjdCgpO1xuICBzd2l0Y2ggKGM0U2hhcGUudHlwZUM0U2hhcGUudGV4dCkge1xuICAgIGNhc2UgXCJwZXJzb25cIjpcbiAgICBjYXNlIFwiZXh0ZXJuYWxfcGVyc29uXCI6XG4gICAgY2FzZSBcInN5c3RlbVwiOlxuICAgIGNhc2UgXCJleHRlcm5hbF9zeXN0ZW1cIjpcbiAgICBjYXNlIFwiY29udGFpbmVyXCI6XG4gICAgY2FzZSBcImV4dGVybmFsX2NvbnRhaW5lclwiOlxuICAgIGNhc2UgXCJjb21wb25lbnRcIjpcbiAgICBjYXNlIFwiZXh0ZXJuYWxfY29tcG9uZW50XCI6XG4gICAgICByZWN0LnggPSBjNFNoYXBlLng7XG4gICAgICByZWN0LnkgPSBjNFNoYXBlLnk7XG4gICAgICByZWN0LmZpbGwgPSBmaWxsQ29sb3I7XG4gICAgICByZWN0LndpZHRoID0gYzRTaGFwZS53aWR0aDtcbiAgICAgIHJlY3QuaGVpZ2h0ID0gYzRTaGFwZS5oZWlnaHQ7XG4gICAgICByZWN0LnN0cm9rZSA9IHN0cm9rZUNvbG9yO1xuICAgICAgcmVjdC5yeCA9IDIuNTtcbiAgICAgIHJlY3QucnkgPSAyLjU7XG4gICAgICByZWN0LmF0dHJzID0geyBcInN0cm9rZS13aWR0aFwiOiAwLjUgfTtcbiAgICAgIGRyYXdSZWN0KGM0U2hhcGVFbGVtLCByZWN0KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJzeXN0ZW1fZGJcIjpcbiAgICBjYXNlIFwiZXh0ZXJuYWxfc3lzdGVtX2RiXCI6XG4gICAgY2FzZSBcImNvbnRhaW5lcl9kYlwiOlxuICAgIGNhc2UgXCJleHRlcm5hbF9jb250YWluZXJfZGJcIjpcbiAgICBjYXNlIFwiY29tcG9uZW50X2RiXCI6XG4gICAgY2FzZSBcImV4dGVybmFsX2NvbXBvbmVudF9kYlwiOlxuICAgICAgYzRTaGFwZUVsZW0uYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZmlsbFwiLCBmaWxsQ29sb3IpLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgXCIwLjVcIikuYXR0cihcInN0cm9rZVwiLCBzdHJva2VDb2xvcikuYXR0cihcbiAgICAgICAgXCJkXCIsXG4gICAgICAgIFwiTXN0YXJ0eCxzdGFydHljMCwtMTAgaGFsZiwtMTAgaGFsZiwtMTBjMCwwIGhhbGYsMCBoYWxmLDEwbDAsaGVpZ2h0YzAsMTAgLWhhbGYsMTAgLWhhbGYsMTBjMCwwIC1oYWxmLDAgLWhhbGYsLTEwbDAsLWhlaWdodFwiLnJlcGxhY2VBbGwoXCJzdGFydHhcIiwgYzRTaGFwZS54KS5yZXBsYWNlQWxsKFwic3RhcnR5XCIsIGM0U2hhcGUueSkucmVwbGFjZUFsbChcImhhbGZcIiwgYzRTaGFwZS53aWR0aCAvIDIpLnJlcGxhY2VBbGwoXCJoZWlnaHRcIiwgYzRTaGFwZS5oZWlnaHQpXG4gICAgICApO1xuICAgICAgYzRTaGFwZUVsZW0uYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIikuYXR0cihcInN0cm9rZS13aWR0aFwiLCBcIjAuNVwiKS5hdHRyKFwic3Ryb2tlXCIsIHN0cm9rZUNvbG9yKS5hdHRyKFxuICAgICAgICBcImRcIixcbiAgICAgICAgXCJNc3RhcnR4LHN0YXJ0eWMwLDEwIGhhbGYsMTAgaGFsZiwxMGMwLDAgaGFsZiwwIGhhbGYsLTEwXCIucmVwbGFjZUFsbChcInN0YXJ0eFwiLCBjNFNoYXBlLngpLnJlcGxhY2VBbGwoXCJzdGFydHlcIiwgYzRTaGFwZS55KS5yZXBsYWNlQWxsKFwiaGFsZlwiLCBjNFNoYXBlLndpZHRoIC8gMilcbiAgICAgICk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwic3lzdGVtX3F1ZXVlXCI6XG4gICAgY2FzZSBcImV4dGVybmFsX3N5c3RlbV9xdWV1ZVwiOlxuICAgIGNhc2UgXCJjb250YWluZXJfcXVldWVcIjpcbiAgICBjYXNlIFwiZXh0ZXJuYWxfY29udGFpbmVyX3F1ZXVlXCI6XG4gICAgY2FzZSBcImNvbXBvbmVudF9xdWV1ZVwiOlxuICAgIGNhc2UgXCJleHRlcm5hbF9jb21wb25lbnRfcXVldWVcIjpcbiAgICAgIGM0U2hhcGVFbGVtLmFwcGVuZChcInBhdGhcIikuYXR0cihcImZpbGxcIiwgZmlsbENvbG9yKS5hdHRyKFwic3Ryb2tlLXdpZHRoXCIsIFwiMC41XCIpLmF0dHIoXCJzdHJva2VcIiwgc3Ryb2tlQ29sb3IpLmF0dHIoXG4gICAgICAgIFwiZFwiLFxuICAgICAgICBcIk1zdGFydHgsc3RhcnR5bHdpZHRoLDBjNSwwIDUsaGFsZiA1LGhhbGZjMCwwIDAsaGFsZiAtNSxoYWxmbC13aWR0aCwwYy01LDAgLTUsLWhhbGYgLTUsLWhhbGZjMCwwIDAsLWhhbGYgNSwtaGFsZlwiLnJlcGxhY2VBbGwoXCJzdGFydHhcIiwgYzRTaGFwZS54KS5yZXBsYWNlQWxsKFwic3RhcnR5XCIsIGM0U2hhcGUueSkucmVwbGFjZUFsbChcIndpZHRoXCIsIGM0U2hhcGUud2lkdGgpLnJlcGxhY2VBbGwoXCJoYWxmXCIsIGM0U2hhcGUuaGVpZ2h0IC8gMilcbiAgICAgICk7XG4gICAgICBjNFNoYXBlRWxlbS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKS5hdHRyKFwic3Ryb2tlLXdpZHRoXCIsIFwiMC41XCIpLmF0dHIoXCJzdHJva2VcIiwgc3Ryb2tlQ29sb3IpLmF0dHIoXG4gICAgICAgIFwiZFwiLFxuICAgICAgICBcIk1zdGFydHgsc3RhcnR5Yy01LDAgLTUsaGFsZiAtNSxoYWxmYzAsaGFsZiA1LGhhbGYgNSxoYWxmXCIucmVwbGFjZUFsbChcInN0YXJ0eFwiLCBjNFNoYXBlLnggKyBjNFNoYXBlLndpZHRoKS5yZXBsYWNlQWxsKFwic3RhcnR5XCIsIGM0U2hhcGUueSkucmVwbGFjZUFsbChcImhhbGZcIiwgYzRTaGFwZS5oZWlnaHQgLyAyKVxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIGxldCBjNFNoYXBlRm9udENvbmYgPSBnZXRDNFNoYXBlRm9udChjb25mMiwgYzRTaGFwZS50eXBlQzRTaGFwZS50ZXh0KTtcbiAgYzRTaGFwZUVsZW0uYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwiZmlsbFwiLCBmb250Q29sb3IpLmF0dHIoXCJmb250LWZhbWlseVwiLCBjNFNoYXBlRm9udENvbmYuZm9udEZhbWlseSkuYXR0cihcImZvbnQtc2l6ZVwiLCBjNFNoYXBlRm9udENvbmYuZm9udFNpemUgLSAyKS5hdHRyKFwiZm9udC1zdHlsZVwiLCBcIml0YWxpY1wiKS5hdHRyKFwibGVuZ3RoQWRqdXN0XCIsIFwic3BhY2luZ1wiKS5hdHRyKFwidGV4dExlbmd0aFwiLCBjNFNoYXBlLnR5cGVDNFNoYXBlLndpZHRoKS5hdHRyKFwieFwiLCBjNFNoYXBlLnggKyBjNFNoYXBlLndpZHRoIC8gMiAtIGM0U2hhcGUudHlwZUM0U2hhcGUud2lkdGggLyAyKS5hdHRyKFwieVwiLCBjNFNoYXBlLnkgKyBjNFNoYXBlLnR5cGVDNFNoYXBlLlkpLnRleHQoXCI8PFwiICsgYzRTaGFwZS50eXBlQzRTaGFwZS50ZXh0ICsgXCI+PlwiKTtcbiAgc3dpdGNoIChjNFNoYXBlLnR5cGVDNFNoYXBlLnRleHQpIHtcbiAgICBjYXNlIFwicGVyc29uXCI6XG4gICAgY2FzZSBcImV4dGVybmFsX3BlcnNvblwiOlxuICAgICAgZHJhd0ltYWdlKFxuICAgICAgICBjNFNoYXBlRWxlbSxcbiAgICAgICAgNDgsXG4gICAgICAgIDQ4LFxuICAgICAgICBjNFNoYXBlLnggKyBjNFNoYXBlLndpZHRoIC8gMiAtIDI0LFxuICAgICAgICBjNFNoYXBlLnkgKyBjNFNoYXBlLmltYWdlLlksXG4gICAgICAgIHBlcnNvbkltZ1xuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIGxldCB0ZXh0Rm9udENvbmYgPSBjb25mMltjNFNoYXBlLnR5cGVDNFNoYXBlLnRleHQgKyBcIkZvbnRcIl0oKTtcbiAgdGV4dEZvbnRDb25mLmZvbnRXZWlnaHQgPSBcImJvbGRcIjtcbiAgdGV4dEZvbnRDb25mLmZvbnRTaXplID0gdGV4dEZvbnRDb25mLmZvbnRTaXplICsgMjtcbiAgdGV4dEZvbnRDb25mLmZvbnRDb2xvciA9IGZvbnRDb2xvcjtcbiAgX2RyYXdUZXh0Q2FuZGlkYXRlRnVuYyhjb25mMikoXG4gICAgYzRTaGFwZS5sYWJlbC50ZXh0LFxuICAgIGM0U2hhcGVFbGVtLFxuICAgIGM0U2hhcGUueCxcbiAgICBjNFNoYXBlLnkgKyBjNFNoYXBlLmxhYmVsLlksXG4gICAgYzRTaGFwZS53aWR0aCxcbiAgICBjNFNoYXBlLmhlaWdodCxcbiAgICB7IGZpbGw6IGZvbnRDb2xvciB9LFxuICAgIHRleHRGb250Q29uZlxuICApO1xuICB0ZXh0Rm9udENvbmYgPSBjb25mMltjNFNoYXBlLnR5cGVDNFNoYXBlLnRleHQgKyBcIkZvbnRcIl0oKTtcbiAgdGV4dEZvbnRDb25mLmZvbnRDb2xvciA9IGZvbnRDb2xvcjtcbiAgaWYgKGM0U2hhcGUudGVjaG4gJiYgKChfYSA9IGM0U2hhcGUudGVjaG4pID09IG51bGwgPyB2b2lkIDAgOiBfYS50ZXh0KSAhPT0gXCJcIikge1xuICAgIF9kcmF3VGV4dENhbmRpZGF0ZUZ1bmMoY29uZjIpKFxuICAgICAgYzRTaGFwZS50ZWNobi50ZXh0LFxuICAgICAgYzRTaGFwZUVsZW0sXG4gICAgICBjNFNoYXBlLngsXG4gICAgICBjNFNoYXBlLnkgKyBjNFNoYXBlLnRlY2huLlksXG4gICAgICBjNFNoYXBlLndpZHRoLFxuICAgICAgYzRTaGFwZS5oZWlnaHQsXG4gICAgICB7IGZpbGw6IGZvbnRDb2xvciwgXCJmb250LXN0eWxlXCI6IFwiaXRhbGljXCIgfSxcbiAgICAgIHRleHRGb250Q29uZlxuICAgICk7XG4gIH0gZWxzZSBpZiAoYzRTaGFwZS50eXBlICYmIGM0U2hhcGUudHlwZS50ZXh0ICE9PSBcIlwiKSB7XG4gICAgX2RyYXdUZXh0Q2FuZGlkYXRlRnVuYyhjb25mMikoXG4gICAgICBjNFNoYXBlLnR5cGUudGV4dCxcbiAgICAgIGM0U2hhcGVFbGVtLFxuICAgICAgYzRTaGFwZS54LFxuICAgICAgYzRTaGFwZS55ICsgYzRTaGFwZS50eXBlLlksXG4gICAgICBjNFNoYXBlLndpZHRoLFxuICAgICAgYzRTaGFwZS5oZWlnaHQsXG4gICAgICB7IGZpbGw6IGZvbnRDb2xvciwgXCJmb250LXN0eWxlXCI6IFwiaXRhbGljXCIgfSxcbiAgICAgIHRleHRGb250Q29uZlxuICAgICk7XG4gIH1cbiAgaWYgKGM0U2hhcGUuZGVzY3IgJiYgYzRTaGFwZS5kZXNjci50ZXh0ICE9PSBcIlwiKSB7XG4gICAgdGV4dEZvbnRDb25mID0gY29uZjIucGVyc29uRm9udCgpO1xuICAgIHRleHRGb250Q29uZi5mb250Q29sb3IgPSBmb250Q29sb3I7XG4gICAgX2RyYXdUZXh0Q2FuZGlkYXRlRnVuYyhjb25mMikoXG4gICAgICBjNFNoYXBlLmRlc2NyLnRleHQsXG4gICAgICBjNFNoYXBlRWxlbSxcbiAgICAgIGM0U2hhcGUueCxcbiAgICAgIGM0U2hhcGUueSArIGM0U2hhcGUuZGVzY3IuWSxcbiAgICAgIGM0U2hhcGUud2lkdGgsXG4gICAgICBjNFNoYXBlLmhlaWdodCxcbiAgICAgIHsgZmlsbDogZm9udENvbG9yIH0sXG4gICAgICB0ZXh0Rm9udENvbmZcbiAgICApO1xuICB9XG4gIHJldHVybiBjNFNoYXBlLmhlaWdodDtcbn07XG5jb25zdCBpbnNlcnREYXRhYmFzZUljb24gPSBmdW5jdGlvbihlbGVtKSB7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJzeW1ib2xcIikuYXR0cihcImlkXCIsIFwiZGF0YWJhc2VcIikuYXR0cihcImZpbGwtcnVsZVwiLCBcImV2ZW5vZGRcIikuYXR0cihcImNsaXAtcnVsZVwiLCBcImV2ZW5vZGRcIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwidHJhbnNmb3JtXCIsIFwic2NhbGUoLjUpXCIpLmF0dHIoXG4gICAgXCJkXCIsXG4gICAgXCJNMTIuMjU4LjAwMWwuMjU2LjAwNC4yNTUuMDA1LjI1My4wMDguMjUxLjAxLjI0OS4wMTIuMjQ3LjAxNS4yNDYuMDE2LjI0Mi4wMTkuMjQxLjAyLjIzOS4wMjMuMjM2LjAyNC4yMzMuMDI3LjIzMS4wMjguMjI5LjAzMS4yMjUuMDMyLjIyMy4wMzQuMjIuMDM2LjIxNy4wMzguMjE0LjA0LjIxMS4wNDEuMjA4LjA0My4yMDUuMDQ1LjIwMS4wNDYuMTk4LjA0OC4xOTQuMDUuMTkxLjA1MS4xODcuMDUzLjE4My4wNTQuMTguMDU2LjE3NS4wNTcuMTcyLjA1OS4xNjguMDYuMTYzLjA2MS4xNi4wNjMuMTU1LjA2NC4xNS4wNjYuMDc0LjAzMy4wNzMuMDMzLjA3MS4wMzQuMDcuMDM0LjA2OS4wMzUuMDY4LjAzNS4wNjcuMDM1LjA2Ni4wMzUuMDY0LjAzNi4wNjQuMDM2LjA2Mi4wMzYuMDYuMDM2LjA2LjAzNy4wNTguMDM3LjA1OC4wMzcuMDU1LjAzOC4wNTUuMDM4LjA1My4wMzguMDUyLjAzOC4wNTEuMDM5LjA1LjAzOS4wNDguMDM5LjA0Ny4wMzkuMDQ1LjA0LjA0NC4wNC4wNDMuMDQuMDQxLjA0LjA0LjA0MS4wMzkuMDQxLjAzNy4wNDEuMDM2LjA0MS4wMzQuMDQxLjAzMy4wNDIuMDMyLjA0Mi4wMy4wNDIuMDI5LjA0Mi4wMjcuMDQyLjAyNi4wNDMuMDI0LjA0My4wMjMuMDQzLjAyMS4wNDMuMDIuMDQzLjAxOC4wNDQuMDE3LjA0My4wMTUuMDQ0LjAxMy4wNDQuMDEyLjA0NC4wMTEuMDQ1LjAwOS4wNDQuMDA3LjA0NS4wMDYuMDQ1LjAwNC4wNDUuMDAyLjA0NS4wMDEuMDQ1djE3bC0uMDAxLjA0NS0uMDAyLjA0NS0uMDA0LjA0NS0uMDA2LjA0NS0uMDA3LjA0NS0uMDA5LjA0NC0uMDExLjA0NS0uMDEyLjA0NC0uMDEzLjA0NC0uMDE1LjA0NC0uMDE3LjA0My0uMDE4LjA0NC0uMDIuMDQzLS4wMjEuMDQzLS4wMjMuMDQzLS4wMjQuMDQzLS4wMjYuMDQzLS4wMjcuMDQyLS4wMjkuMDQyLS4wMy4wNDItLjAzMi4wNDItLjAzMy4wNDItLjAzNC4wNDEtLjAzNi4wNDEtLjAzNy4wNDEtLjAzOS4wNDEtLjA0LjA0MS0uMDQxLjA0LS4wNDMuMDQtLjA0NC4wNC0uMDQ1LjA0LS4wNDcuMDM5LS4wNDguMDM5LS4wNS4wMzktLjA1MS4wMzktLjA1Mi4wMzgtLjA1My4wMzgtLjA1NS4wMzgtLjA1NS4wMzgtLjA1OC4wMzctLjA1OC4wMzctLjA2LjAzNy0uMDYuMDM2LS4wNjIuMDM2LS4wNjQuMDM2LS4wNjQuMDM2LS4wNjYuMDM1LS4wNjcuMDM1LS4wNjguMDM1LS4wNjkuMDM1LS4wNy4wMzQtLjA3MS4wMzQtLjA3My4wMzMtLjA3NC4wMzMtLjE1LjA2Ni0uMTU1LjA2NC0uMTYuMDYzLS4xNjMuMDYxLS4xNjguMDYtLjE3Mi4wNTktLjE3NS4wNTctLjE4LjA1Ni0uMTgzLjA1NC0uMTg3LjA1My0uMTkxLjA1MS0uMTk0LjA1LS4xOTguMDQ4LS4yMDEuMDQ2LS4yMDUuMDQ1LS4yMDguMDQzLS4yMTEuMDQxLS4yMTQuMDQtLjIxNy4wMzgtLjIyLjAzNi0uMjIzLjAzNC0uMjI1LjAzMi0uMjI5LjAzMS0uMjMxLjAyOC0uMjMzLjAyNy0uMjM2LjAyNC0uMjM5LjAyMy0uMjQxLjAyLS4yNDIuMDE5LS4yNDYuMDE2LS4yNDcuMDE1LS4yNDkuMDEyLS4yNTEuMDEtLjI1My4wMDgtLjI1NS4wMDUtLjI1Ni4wMDQtLjI1OC4wMDEtLjI1OC0uMDAxLS4yNTYtLjAwNC0uMjU1LS4wMDUtLjI1My0uMDA4LS4yNTEtLjAxLS4yNDktLjAxMi0uMjQ3LS4wMTUtLjI0NS0uMDE2LS4yNDMtLjAxOS0uMjQxLS4wMi0uMjM4LS4wMjMtLjIzNi0uMDI0LS4yMzQtLjAyNy0uMjMxLS4wMjgtLjIyOC0uMDMxLS4yMjYtLjAzMi0uMjIzLS4wMzQtLjIyLS4wMzYtLjIxNy0uMDM4LS4yMTQtLjA0LS4yMTEtLjA0MS0uMjA4LS4wNDMtLjIwNC0uMDQ1LS4yMDEtLjA0Ni0uMTk4LS4wNDgtLjE5NS0uMDUtLjE5LS4wNTEtLjE4Ny0uMDUzLS4xODQtLjA1NC0uMTc5LS4wNTYtLjE3Ni0uMDU3LS4xNzItLjA1OS0uMTY3LS4wNi0uMTY0LS4wNjEtLjE1OS0uMDYzLS4xNTUtLjA2NC0uMTUxLS4wNjYtLjA3NC0uMDMzLS4wNzItLjAzMy0uMDcyLS4wMzQtLjA3LS4wMzQtLjA2OS0uMDM1LS4wNjgtLjAzNS0uMDY3LS4wMzUtLjA2Ni0uMDM1LS4wNjQtLjAzNi0uMDYzLS4wMzYtLjA2Mi0uMDM2LS4wNjEtLjAzNi0uMDYtLjAzNy0uMDU4LS4wMzctLjA1Ny0uMDM3LS4wNTYtLjAzOC0uMDU1LS4wMzgtLjA1My0uMDM4LS4wNTItLjAzOC0uMDUxLS4wMzktLjA0OS0uMDM5LS4wNDktLjAzOS0uMDQ2LS4wMzktLjA0Ni0uMDQtLjA0NC0uMDQtLjA0My0uMDQtLjA0MS0uMDQtLjA0LS4wNDEtLjAzOS0uMDQxLS4wMzctLjA0MS0uMDM2LS4wNDEtLjAzNC0uMDQxLS4wMzMtLjA0Mi0uMDMyLS4wNDItLjAzLS4wNDItLjAyOS0uMDQyLS4wMjctLjA0Mi0uMDI2LS4wNDMtLjAyNC0uMDQzLS4wMjMtLjA0My0uMDIxLS4wNDMtLjAyLS4wNDMtLjAxOC0uMDQ0LS4wMTctLjA0My0uMDE1LS4wNDQtLjAxMy0uMDQ0LS4wMTItLjA0NC0uMDExLS4wNDUtLjAwOS0uMDQ0LS4wMDctLjA0NS0uMDA2LS4wNDUtLjAwNC0uMDQ1LS4wMDItLjA0NS0uMDAxLS4wNDV2LTE3bC4wMDEtLjA0NS4wMDItLjA0NS4wMDQtLjA0NS4wMDYtLjA0NS4wMDctLjA0NS4wMDktLjA0NC4wMTEtLjA0NS4wMTItLjA0NC4wMTMtLjA0NC4wMTUtLjA0NC4wMTctLjA0My4wMTgtLjA0NC4wMi0uMDQzLjAyMS0uMDQzLjAyMy0uMDQzLjAyNC0uMDQzLjAyNi0uMDQzLjAyNy0uMDQyLjAyOS0uMDQyLjAzLS4wNDIuMDMyLS4wNDIuMDMzLS4wNDIuMDM0LS4wNDEuMDM2LS4wNDEuMDM3LS4wNDEuMDM5LS4wNDEuMDQtLjA0MS4wNDEtLjA0LjA0My0uMDQuMDQ0LS4wNC4wNDYtLjA0LjA0Ni0uMDM5LjA0OS0uMDM5LjA0OS0uMDM5LjA1MS0uMDM5LjA1Mi0uMDM4LjA1My0uMDM4LjA1NS0uMDM4LjA1Ni0uMDM4LjA1Ny0uMDM3LjA1OC0uMDM3LjA2LS4wMzcuMDYxLS4wMzYuMDYyLS4wMzYuMDYzLS4wMzYuMDY0LS4wMzYuMDY2LS4wMzUuMDY3LS4wMzUuMDY4LS4wMzUuMDY5LS4wMzUuMDctLjAzNC4wNzItLjAzNC4wNzItLjAzMy4wNzQtLjAzMy4xNTEtLjA2Ni4xNTUtLjA2NC4xNTktLjA2My4xNjQtLjA2MS4xNjctLjA2LjE3Mi0uMDU5LjE3Ni0uMDU3LjE3OS0uMDU2LjE4NC0uMDU0LjE4Ny0uMDUzLjE5LS4wNTEuMTk1LS4wNS4xOTgtLjA0OC4yMDEtLjA0Ni4yMDQtLjA0NS4yMDgtLjA0My4yMTEtLjA0MS4yMTQtLjA0LjIxNy0uMDM4LjIyLS4wMzYuMjIzLS4wMzQuMjI2LS4wMzIuMjI4LS4wMzEuMjMxLS4wMjguMjM0LS4wMjcuMjM2LS4wMjQuMjM4LS4wMjMuMjQxLS4wMi4yNDMtLjAxOS4yNDUtLjAxNi4yNDctLjAxNS4yNDktLjAxMi4yNTEtLjAxLjI1My0uMDA4LjI1NS0uMDA1LjI1Ni0uMDA0LjI1OC0uMDAxLjI1OC4wMDF6bS05LjI1OCAyMC40OTl2LjAxbC4wMDEuMDIxLjAwMy4wMjEuMDA0LjAyMi4wMDUuMDIxLjAwNi4wMjIuMDA3LjAyMi4wMDkuMDIzLjAxLjAyMi4wMTEuMDIzLjAxMi4wMjMuMDEzLjAyMy4wMTUuMDIzLjAxNi4wMjQuMDE3LjAyMy4wMTguMDI0LjAxOS4wMjQuMDIxLjAyNC4wMjIuMDI1LjAyMy4wMjQuMDI0LjAyNS4wNTIuMDQ5LjA1Ni4wNS4wNjEuMDUxLjA2Ni4wNTEuMDcuMDUxLjA3NS4wNTEuMDc5LjA1Mi4wODQuMDUyLjA4OC4wNTIuMDkyLjA1Mi4wOTcuMDUyLjEwMi4wNTEuMTA1LjA1Mi4xMS4wNTIuMTE0LjA1MS4xMTkuMDUxLjEyMy4wNTEuMTI3LjA1LjEzMS4wNS4xMzUuMDUuMTM5LjA0OC4xNDQuMDQ5LjE0Ny4wNDcuMTUyLjA0Ny4xNTUuMDQ3LjE2LjA0NS4xNjMuMDQ1LjE2Ny4wNDMuMTcxLjA0My4xNzYuMDQxLjE3OC4wNDEuMTgzLjAzOS4xODcuMDM5LjE5LjAzNy4xOTQuMDM1LjE5Ny4wMzUuMjAyLjAzMy4yMDQuMDMxLjIwOS4wMy4yMTIuMDI5LjIxNi4wMjcuMjE5LjAyNS4yMjIuMDI0LjIyNi4wMjEuMjMuMDIuMjMzLjAxOC4yMzYuMDE2LjI0LjAxNS4yNDMuMDEyLjI0Ni4wMS4yNDkuMDA4LjI1My4wMDUuMjU2LjAwNC4yNTkuMDAxLjI2LS4wMDEuMjU3LS4wMDQuMjU0LS4wMDUuMjUtLjAwOC4yNDctLjAxMS4yNDQtLjAxMi4yNDEtLjAxNC4yMzctLjAxNi4yMzMtLjAxOC4yMzEtLjAyMS4yMjYtLjAyMS4yMjQtLjAyNC4yMi0uMDI2LjIxNi0uMDI3LjIxMi0uMDI4LjIxLS4wMzEuMjA1LS4wMzEuMjAyLS4wMzQuMTk4LS4wMzQuMTk0LS4wMzYuMTkxLS4wMzcuMTg3LS4wMzkuMTgzLS4wNC4xNzktLjA0LjE3NS0uMDQyLjE3Mi0uMDQzLjE2OC0uMDQ0LjE2My0uMDQ1LjE2LS4wNDYuMTU1LS4wNDYuMTUyLS4wNDcuMTQ4LS4wNDguMTQzLS4wNDkuMTM5LS4wNDkuMTM2LS4wNS4xMzEtLjA1LjEyNi0uMDUuMTIzLS4wNTEuMTE4LS4wNTIuMTE0LS4wNTEuMTEtLjA1Mi4xMDYtLjA1Mi4xMDEtLjA1Mi4wOTYtLjA1Mi4wOTItLjA1Mi4wODgtLjA1My4wODMtLjA1MS4wNzktLjA1Mi4wNzQtLjA1Mi4wNy0uMDUxLjA2NS0uMDUxLjA2LS4wNTEuMDU2LS4wNS4wNTEtLjA1LjAyMy0uMDI0LjAyMy0uMDI1LjAyMS0uMDI0LjAyLS4wMjQuMDE5LS4wMjQuMDE4LS4wMjQuMDE3LS4wMjQuMDE1LS4wMjMuMDE0LS4wMjQuMDEzLS4wMjMuMDEyLS4wMjMuMDEtLjAyMy4wMS0uMDIyLjAwOC0uMDIyLjAwNi0uMDIyLjAwNi0uMDIyLjAwNC0uMDIyLjAwNC0uMDIxLjAwMS0uMDIxLjAwMS0uMDIxdi00LjEyN2wtLjA3Ny4wNTUtLjA4LjA1My0uMDgzLjA1NC0uMDg1LjA1My0uMDg3LjA1Mi0uMDkuMDUyLS4wOTMuMDUxLS4wOTUuMDUtLjA5Ny4wNS0uMS4wNDktLjEwMi4wNDktLjEwNS4wNDgtLjEwNi4wNDctLjEwOS4wNDctLjExMS4wNDYtLjExNC4wNDUtLjExNS4wNDUtLjExOC4wNDQtLjEyLjA0My0uMTIyLjA0Mi0uMTI0LjA0Mi0uMTI2LjA0MS0uMTI4LjA0LS4xMy4wNC0uMTMyLjAzOC0uMTM0LjAzOC0uMTM1LjAzNy0uMTM4LjAzNy0uMTM5LjAzNS0uMTQyLjAzNS0uMTQzLjAzNC0uMTQ0LjAzMy0uMTQ3LjAzMi0uMTQ4LjAzMS0uMTUuMDMtLjE1MS4wMy0uMTUzLjAyOS0uMTU0LjAyNy0uMTU2LjAyNy0uMTU4LjAyNi0uMTU5LjAyNS0uMTYxLjAyNC0uMTYyLjAyMy0uMTYzLjAyMi0uMTY1LjAyMS0uMTY2LjAyLS4xNjcuMDE5LS4xNjkuMDE4LS4xNjkuMDE3LS4xNzEuMDE2LS4xNzMuMDE1LS4xNzMuMDE0LS4xNzUuMDEzLS4xNzUuMDEyLS4xNzcuMDExLS4xNzguMDEtLjE3OS4wMDgtLjE3OS4wMDgtLjE4MS4wMDYtLjE4Mi4wMDUtLjE4Mi4wMDQtLjE4NC4wMDMtLjE4NC4wMDJoLS4zN2wtLjE4NC0uMDAyLS4xODQtLjAwMy0uMTgyLS4wMDQtLjE4Mi0uMDA1LS4xODEtLjAwNi0uMTc5LS4wMDgtLjE3OS0uMDA4LS4xNzgtLjAxLS4xNzYtLjAxMS0uMTc2LS4wMTItLjE3NS0uMDEzLS4xNzMtLjAxNC0uMTcyLS4wMTUtLjE3MS0uMDE2LS4xNy0uMDE3LS4xNjktLjAxOC0uMTY3LS4wMTktLjE2Ni0uMDItLjE2NS0uMDIxLS4xNjMtLjAyMi0uMTYyLS4wMjMtLjE2MS0uMDI0LS4xNTktLjAyNS0uMTU3LS4wMjYtLjE1Ni0uMDI3LS4xNTUtLjAyNy0uMTUzLS4wMjktLjE1MS0uMDMtLjE1LS4wMy0uMTQ4LS4wMzEtLjE0Ni0uMDMyLS4xNDUtLjAzMy0uMTQzLS4wMzQtLjE0MS0uMDM1LS4xNC0uMDM1LS4xMzctLjAzNy0uMTM2LS4wMzctLjEzNC0uMDM4LS4xMzItLjAzOC0uMTMtLjA0LS4xMjgtLjA0LS4xMjYtLjA0MS0uMTI0LS4wNDItLjEyMi0uMDQyLS4xMi0uMDQ0LS4xMTctLjA0My0uMTE2LS4wNDUtLjExMy0uMDQ1LS4xMTItLjA0Ni0uMTA5LS4wNDctLjEwNi0uMDQ3LS4xMDUtLjA0OC0uMTAyLS4wNDktLjEtLjA0OS0uMDk3LS4wNS0uMDk1LS4wNS0uMDkzLS4wNTItLjA5LS4wNTEtLjA4Ny0uMDUyLS4wODUtLjA1My0uMDgzLS4wNTQtLjA4LS4wNTQtLjA3Ny0uMDU0djQuMTI3em0wLTUuNjU0di4wMTFsLjAwMS4wMjEuMDAzLjAyMS4wMDQuMDIxLjAwNS4wMjIuMDA2LjAyMi4wMDcuMDIyLjAwOS4wMjIuMDEuMDIyLjAxMS4wMjMuMDEyLjAyMy4wMTMuMDIzLjAxNS4wMjQuMDE2LjAyMy4wMTcuMDI0LjAxOC4wMjQuMDE5LjAyNC4wMjEuMDI0LjAyMi4wMjQuMDIzLjAyNS4wMjQuMDI0LjA1Mi4wNS4wNTYuMDUuMDYxLjA1LjA2Ni4wNTEuMDcuMDUxLjA3NS4wNTIuMDc5LjA1MS4wODQuMDUyLjA4OC4wNTIuMDkyLjA1Mi4wOTcuMDUyLjEwMi4wNTIuMTA1LjA1Mi4xMS4wNTEuMTE0LjA1MS4xMTkuMDUyLjEyMy4wNS4xMjcuMDUxLjEzMS4wNS4xMzUuMDQ5LjEzOS4wNDkuMTQ0LjA0OC4xNDcuMDQ4LjE1Mi4wNDcuMTU1LjA0Ni4xNi4wNDUuMTYzLjA0NS4xNjcuMDQ0LjE3MS4wNDIuMTc2LjA0Mi4xNzguMDQuMTgzLjA0LjE4Ny4wMzguMTkuMDM3LjE5NC4wMzYuMTk3LjAzNC4yMDIuMDMzLjIwNC4wMzIuMjA5LjAzLjIxMi4wMjguMjE2LjAyNy4yMTkuMDI1LjIyMi4wMjQuMjI2LjAyMi4yMy4wMi4yMzMuMDE4LjIzNi4wMTYuMjQuMDE0LjI0My4wMTIuMjQ2LjAxLjI0OS4wMDguMjUzLjAwNi4yNTYuMDAzLjI1OS4wMDEuMjYtLjAwMS4yNTctLjAwMy4yNTQtLjAwNi4yNS0uMDA4LjI0Ny0uMDEuMjQ0LS4wMTIuMjQxLS4wMTUuMjM3LS4wMTYuMjMzLS4wMTguMjMxLS4wMi4yMjYtLjAyMi4yMjQtLjAyNC4yMi0uMDI1LjIxNi0uMDI3LjIxMi0uMDI5LjIxLS4wMy4yMDUtLjAzMi4yMDItLjAzMy4xOTgtLjAzNS4xOTQtLjAzNi4xOTEtLjAzNy4xODctLjAzOS4xODMtLjAzOS4xNzktLjA0MS4xNzUtLjA0Mi4xNzItLjA0My4xNjgtLjA0NC4xNjMtLjA0NS4xNi0uMDQ1LjE1NS0uMDQ3LjE1Mi0uMDQ3LjE0OC0uMDQ4LjE0My0uMDQ4LjEzOS0uMDUuMTM2LS4wNDkuMTMxLS4wNS4xMjYtLjA1MS4xMjMtLjA1MS4xMTgtLjA1MS4xMTQtLjA1Mi4xMS0uMDUyLjEwNi0uMDUyLjEwMS0uMDUyLjA5Ni0uMDUyLjA5Mi0uMDUyLjA4OC0uMDUyLjA4My0uMDUyLjA3OS0uMDUyLjA3NC0uMDUxLjA3LS4wNTIuMDY1LS4wNTEuMDYtLjA1LjA1Ni0uMDUxLjA1MS0uMDQ5LjAyMy0uMDI1LjAyMy0uMDI0LjAyMS0uMDI1LjAyLS4wMjQuMDE5LS4wMjQuMDE4LS4wMjQuMDE3LS4wMjQuMDE1LS4wMjMuMDE0LS4wMjMuMDEzLS4wMjQuMDEyLS4wMjIuMDEtLjAyMy4wMS0uMDIzLjAwOC0uMDIyLjAwNi0uMDIyLjAwNi0uMDIyLjAwNC0uMDIxLjAwNC0uMDIyLjAwMS0uMDIxLjAwMS0uMDIxdi00LjEzOWwtLjA3Ny4wNTQtLjA4LjA1NC0uMDgzLjA1NC0uMDg1LjA1Mi0uMDg3LjA1My0uMDkuMDUxLS4wOTMuMDUxLS4wOTUuMDUxLS4wOTcuMDUtLjEuMDQ5LS4xMDIuMDQ5LS4xMDUuMDQ4LS4xMDYuMDQ3LS4xMDkuMDQ3LS4xMTEuMDQ2LS4xMTQuMDQ1LS4xMTUuMDQ0LS4xMTguMDQ0LS4xMi4wNDQtLjEyMi4wNDItLjEyNC4wNDItLjEyNi4wNDEtLjEyOC4wNC0uMTMuMDM5LS4xMzIuMDM5LS4xMzQuMDM4LS4xMzUuMDM3LS4xMzguMDM2LS4xMzkuMDM2LS4xNDIuMDM1LS4xNDMuMDMzLS4xNDQuMDMzLS4xNDcuMDMzLS4xNDguMDMxLS4xNS4wMy0uMTUxLjAzLS4xNTMuMDI4LS4xNTQuMDI4LS4xNTYuMDI3LS4xNTguMDI2LS4xNTkuMDI1LS4xNjEuMDI0LS4xNjIuMDIzLS4xNjMuMDIyLS4xNjUuMDIxLS4xNjYuMDItLjE2Ny4wMTktLjE2OS4wMTgtLjE2OS4wMTctLjE3MS4wMTYtLjE3My4wMTUtLjE3My4wMTQtLjE3NS4wMTMtLjE3NS4wMTItLjE3Ny4wMTEtLjE3OC4wMDktLjE3OS4wMDktLjE3OS4wMDctLjE4MS4wMDctLjE4Mi4wMDUtLjE4Mi4wMDQtLjE4NC4wMDMtLjE4NC4wMDJoLS4zN2wtLjE4NC0uMDAyLS4xODQtLjAwMy0uMTgyLS4wMDQtLjE4Mi0uMDA1LS4xODEtLjAwNy0uMTc5LS4wMDctLjE3OS0uMDA5LS4xNzgtLjAwOS0uMTc2LS4wMTEtLjE3Ni0uMDEyLS4xNzUtLjAxMy0uMTczLS4wMTQtLjE3Mi0uMDE1LS4xNzEtLjAxNi0uMTctLjAxNy0uMTY5LS4wMTgtLjE2Ny0uMDE5LS4xNjYtLjAyLS4xNjUtLjAyMS0uMTYzLS4wMjItLjE2Mi0uMDIzLS4xNjEtLjAyNC0uMTU5LS4wMjUtLjE1Ny0uMDI2LS4xNTYtLjAyNy0uMTU1LS4wMjgtLjE1My0uMDI4LS4xNTEtLjAzLS4xNS0uMDMtLjE0OC0uMDMxLS4xNDYtLjAzMy0uMTQ1LS4wMzMtLjE0My0uMDMzLS4xNDEtLjAzNS0uMTQtLjAzNi0uMTM3LS4wMzYtLjEzNi0uMDM3LS4xMzQtLjAzOC0uMTMyLS4wMzktLjEzLS4wMzktLjEyOC0uMDQtLjEyNi0uMDQxLS4xMjQtLjA0Mi0uMTIyLS4wNDMtLjEyLS4wNDMtLjExNy0uMDQ0LS4xMTYtLjA0NC0uMTEzLS4wNDYtLjExMi0uMDQ2LS4xMDktLjA0Ni0uMTA2LS4wNDctLjEwNS0uMDQ4LS4xMDItLjA0OS0uMS0uMDQ5LS4wOTctLjA1LS4wOTUtLjA1MS0uMDkzLS4wNTEtLjA5LS4wNTEtLjA4Ny0uMDUzLS4wODUtLjA1Mi0uMDgzLS4wNTQtLjA4LS4wNTQtLjA3Ny0uMDU0djQuMTM5em0wLTUuNjY2di4wMTFsLjAwMS4wMi4wMDMuMDIyLjAwNC4wMjEuMDA1LjAyMi4wMDYuMDIxLjAwNy4wMjIuMDA5LjAyMy4wMS4wMjIuMDExLjAyMy4wMTIuMDIzLjAxMy4wMjMuMDE1LjAyMy4wMTYuMDI0LjAxNy4wMjQuMDE4LjAyMy4wMTkuMDI0LjAyMS4wMjUuMDIyLjAyNC4wMjMuMDI0LjAyNC4wMjUuMDUyLjA1LjA1Ni4wNS4wNjEuMDUuMDY2LjA1MS4wNy4wNTEuMDc1LjA1Mi4wNzkuMDUxLjA4NC4wNTIuMDg4LjA1Mi4wOTIuMDUyLjA5Ny4wNTIuMTAyLjA1Mi4xMDUuMDUxLjExLjA1Mi4xMTQuMDUxLjExOS4wNTEuMTIzLjA1MS4xMjcuMDUuMTMxLjA1LjEzNS4wNS4xMzkuMDQ5LjE0NC4wNDguMTQ3LjA0OC4xNTIuMDQ3LjE1NS4wNDYuMTYuMDQ1LjE2My4wNDUuMTY3LjA0My4xNzEuMDQzLjE3Ni4wNDIuMTc4LjA0LjE4My4wNC4xODcuMDM4LjE5LjAzNy4xOTQuMDM2LjE5Ny4wMzQuMjAyLjAzMy4yMDQuMDMyLjIwOS4wMy4yMTIuMDI4LjIxNi4wMjcuMjE5LjAyNS4yMjIuMDI0LjIyNi4wMjEuMjMuMDIuMjMzLjAxOC4yMzYuMDE3LjI0LjAxNC4yNDMuMDEyLjI0Ni4wMS4yNDkuMDA4LjI1My4wMDYuMjU2LjAwMy4yNTkuMDAxLjI2LS4wMDEuMjU3LS4wMDMuMjU0LS4wMDYuMjUtLjAwOC4yNDctLjAxLjI0NC0uMDEzLjI0MS0uMDE0LjIzNy0uMDE2LjIzMy0uMDE4LjIzMS0uMDIuMjI2LS4wMjIuMjI0LS4wMjQuMjItLjAyNS4yMTYtLjAyNy4yMTItLjAyOS4yMS0uMDMuMjA1LS4wMzIuMjAyLS4wMzMuMTk4LS4wMzUuMTk0LS4wMzYuMTkxLS4wMzcuMTg3LS4wMzkuMTgzLS4wMzkuMTc5LS4wNDEuMTc1LS4wNDIuMTcyLS4wNDMuMTY4LS4wNDQuMTYzLS4wNDUuMTYtLjA0NS4xNTUtLjA0Ny4xNTItLjA0Ny4xNDgtLjA0OC4xNDMtLjA0OS4xMzktLjA0OS4xMzYtLjA0OS4xMzEtLjA1MS4xMjYtLjA1LjEyMy0uMDUxLjExOC0uMDUyLjExNC0uMDUxLjExLS4wNTIuMTA2LS4wNTIuMTAxLS4wNTIuMDk2LS4wNTIuMDkyLS4wNTIuMDg4LS4wNTIuMDgzLS4wNTIuMDc5LS4wNTIuMDc0LS4wNTIuMDctLjA1MS4wNjUtLjA1MS4wNi0uMDUxLjA1Ni0uMDUuMDUxLS4wNDkuMDIzLS4wMjUuMDIzLS4wMjUuMDIxLS4wMjQuMDItLjAyNC4wMTktLjAyNC4wMTgtLjAyNC4wMTctLjAyNC4wMTUtLjAyMy4wMTQtLjAyNC4wMTMtLjAyMy4wMTItLjAyMy4wMS0uMDIyLjAxLS4wMjMuMDA4LS4wMjIuMDA2LS4wMjIuMDA2LS4wMjIuMDA0LS4wMjIuMDA0LS4wMjEuMDAxLS4wMjEuMDAxLS4wMjF2LTQuMTUzbC0uMDc3LjA1NC0uMDguMDU0LS4wODMuMDUzLS4wODUuMDUzLS4wODcuMDUzLS4wOS4wNTEtLjA5My4wNTEtLjA5NS4wNTEtLjA5Ny4wNS0uMS4wNDktLjEwMi4wNDgtLjEwNS4wNDgtLjEwNi4wNDgtLjEwOS4wNDYtLjExMS4wNDYtLjExNC4wNDYtLjExNS4wNDQtLjExOC4wNDQtLjEyLjA0My0uMTIyLjA0My0uMTI0LjA0Mi0uMTI2LjA0MS0uMTI4LjA0LS4xMy4wMzktLjEzMi4wMzktLjEzNC4wMzgtLjEzNS4wMzctLjEzOC4wMzYtLjEzOS4wMzYtLjE0Mi4wMzQtLjE0My4wMzQtLjE0NC4wMzMtLjE0Ny4wMzItLjE0OC4wMzItLjE1LjAzLS4xNTEuMDMtLjE1My4wMjgtLjE1NC4wMjgtLjE1Ni4wMjctLjE1OC4wMjYtLjE1OS4wMjQtLjE2MS4wMjQtLjE2Mi4wMjMtLjE2My4wMjMtLjE2NS4wMjEtLjE2Ni4wMi0uMTY3LjAxOS0uMTY5LjAxOC0uMTY5LjAxNy0uMTcxLjAxNi0uMTczLjAxNS0uMTczLjAxNC0uMTc1LjAxMy0uMTc1LjAxMi0uMTc3LjAxLS4xNzguMDEtLjE3OS4wMDktLjE3OS4wMDctLjE4MS4wMDYtLjE4Mi4wMDYtLjE4Mi4wMDQtLjE4NC4wMDMtLjE4NC4wMDEtLjE4NS4wMDEtLjE4NS0uMDAxLS4xODQtLjAwMS0uMTg0LS4wMDMtLjE4Mi0uMDA0LS4xODItLjAwNi0uMTgxLS4wMDYtLjE3OS0uMDA3LS4xNzktLjAwOS0uMTc4LS4wMS0uMTc2LS4wMS0uMTc2LS4wMTItLjE3NS0uMDEzLS4xNzMtLjAxNC0uMTcyLS4wMTUtLjE3MS0uMDE2LS4xNy0uMDE3LS4xNjktLjAxOC0uMTY3LS4wMTktLjE2Ni0uMDItLjE2NS0uMDIxLS4xNjMtLjAyMy0uMTYyLS4wMjMtLjE2MS0uMDI0LS4xNTktLjAyNC0uMTU3LS4wMjYtLjE1Ni0uMDI3LS4xNTUtLjAyOC0uMTUzLS4wMjgtLjE1MS0uMDMtLjE1LS4wMy0uMTQ4LS4wMzItLjE0Ni0uMDMyLS4xNDUtLjAzMy0uMTQzLS4wMzQtLjE0MS0uMDM0LS4xNC0uMDM2LS4xMzctLjAzNi0uMTM2LS4wMzctLjEzNC0uMDM4LS4xMzItLjAzOS0uMTMtLjAzOS0uMTI4LS4wNDEtLjEyNi0uMDQxLS4xMjQtLjA0MS0uMTIyLS4wNDMtLjEyLS4wNDMtLjExNy0uMDQ0LS4xMTYtLjA0NC0uMTEzLS4wNDYtLjExMi0uMDQ2LS4xMDktLjA0Ni0uMTA2LS4wNDgtLjEwNS0uMDQ4LS4xMDItLjA0OC0uMS0uMDUtLjA5Ny0uMDQ5LS4wOTUtLjA1MS0uMDkzLS4wNTEtLjA5LS4wNTItLjA4Ny0uMDUyLS4wODUtLjA1My0uMDgzLS4wNTMtLjA4LS4wNTQtLjA3Ny0uMDU0djQuMTUzem04Ljc0LTguMTc5bC0uMjU3LjAwNC0uMjU0LjAwNS0uMjUuMDA4LS4yNDcuMDExLS4yNDQuMDEyLS4yNDEuMDE0LS4yMzcuMDE2LS4yMzMuMDE4LS4yMzEuMDIxLS4yMjYuMDIyLS4yMjQuMDIzLS4yMi4wMjYtLjIxNi4wMjctLjIxMi4wMjgtLjIxLjAzMS0uMjA1LjAzMi0uMjAyLjAzMy0uMTk4LjAzNC0uMTk0LjAzNi0uMTkxLjAzOC0uMTg3LjAzOC0uMTgzLjA0LS4xNzkuMDQxLS4xNzUuMDQyLS4xNzIuMDQzLS4xNjguMDQzLS4xNjMuMDQ1LS4xNi4wNDYtLjE1NS4wNDYtLjE1Mi4wNDgtLjE0OC4wNDgtLjE0My4wNDgtLjEzOS4wNDktLjEzNi4wNS0uMTMxLjA1LS4xMjYuMDUxLS4xMjMuMDUxLS4xMTguMDUxLS4xMTQuMDUyLS4xMS4wNTItLjEwNi4wNTItLjEwMS4wNTItLjA5Ni4wNTItLjA5Mi4wNTItLjA4OC4wNTItLjA4My4wNTItLjA3OS4wNTItLjA3NC4wNTEtLjA3LjA1Mi0uMDY1LjA1MS0uMDYuMDUtLjA1Ni4wNS0uMDUxLjA1LS4wMjMuMDI1LS4wMjMuMDI0LS4wMjEuMDI0LS4wMi4wMjUtLjAxOS4wMjQtLjAxOC4wMjQtLjAxNy4wMjMtLjAxNS4wMjQtLjAxNC4wMjMtLjAxMy4wMjMtLjAxMi4wMjMtLjAxLjAyMy0uMDEuMDIyLS4wMDguMDIyLS4wMDYuMDIzLS4wMDYuMDIxLS4wMDQuMDIyLS4wMDQuMDIxLS4wMDEuMDIxLS4wMDEuMDIxLjAwMS4wMjEuMDAxLjAyMS4wMDQuMDIxLjAwNC4wMjIuMDA2LjAyMS4wMDYuMDIzLjAwOC4wMjIuMDEuMDIyLjAxLjAyMy4wMTIuMDIzLjAxMy4wMjMuMDE0LjAyMy4wMTUuMDI0LjAxNy4wMjMuMDE4LjAyNC4wMTkuMDI0LjAyLjAyNS4wMjEuMDI0LjAyMy4wMjQuMDIzLjAyNS4wNTEuMDUuMDU2LjA1LjA2LjA1LjA2NS4wNTEuMDcuMDUyLjA3NC4wNTEuMDc5LjA1Mi4wODMuMDUyLjA4OC4wNTIuMDkyLjA1Mi4wOTYuMDUyLjEwMS4wNTIuMTA2LjA1Mi4xMS4wNTIuMTE0LjA1Mi4xMTguMDUxLjEyMy4wNTEuMTI2LjA1MS4xMzEuMDUuMTM2LjA1LjEzOS4wNDkuMTQzLjA0OC4xNDguMDQ4LjE1Mi4wNDguMTU1LjA0Ni4xNi4wNDYuMTYzLjA0NS4xNjguMDQzLjE3Mi4wNDMuMTc1LjA0Mi4xNzkuMDQxLjE4My4wNC4xODcuMDM4LjE5MS4wMzguMTk0LjAzNi4xOTguMDM0LjIwMi4wMzMuMjA1LjAzMi4yMS4wMzEuMjEyLjAyOC4yMTYuMDI3LjIyLjAyNi4yMjQuMDIzLjIyNi4wMjIuMjMxLjAyMS4yMzMuMDE4LjIzNy4wMTYuMjQxLjAxNC4yNDQuMDEyLjI0Ny4wMTEuMjUuMDA4LjI1NC4wMDUuMjU3LjAwNC4yNi4wMDEuMjYtLjAwMS4yNTctLjAwNC4yNTQtLjAwNS4yNS0uMDA4LjI0Ny0uMDExLjI0NC0uMDEyLjI0MS0uMDE0LjIzNy0uMDE2LjIzMy0uMDE4LjIzMS0uMDIxLjIyNi0uMDIyLjIyNC0uMDIzLjIyLS4wMjYuMjE2LS4wMjcuMjEyLS4wMjguMjEtLjAzMS4yMDUtLjAzMi4yMDItLjAzMy4xOTgtLjAzNC4xOTQtLjAzNi4xOTEtLjAzOC4xODctLjAzOC4xODMtLjA0LjE3OS0uMDQxLjE3NS0uMDQyLjE3Mi0uMDQzLjE2OC0uMDQzLjE2My0uMDQ1LjE2LS4wNDYuMTU1LS4wNDYuMTUyLS4wNDguMTQ4LS4wNDguMTQzLS4wNDguMTM5LS4wNDkuMTM2LS4wNS4xMzEtLjA1LjEyNi0uMDUxLjEyMy0uMDUxLjExOC0uMDUxLjExNC0uMDUyLjExLS4wNTIuMTA2LS4wNTIuMTAxLS4wNTIuMDk2LS4wNTIuMDkyLS4wNTIuMDg4LS4wNTIuMDgzLS4wNTIuMDc5LS4wNTIuMDc0LS4wNTEuMDctLjA1Mi4wNjUtLjA1MS4wNi0uMDUuMDU2LS4wNS4wNTEtLjA1LjAyMy0uMDI1LjAyMy0uMDI0LjAyMS0uMDI0LjAyLS4wMjUuMDE5LS4wMjQuMDE4LS4wMjQuMDE3LS4wMjMuMDE1LS4wMjQuMDE0LS4wMjMuMDEzLS4wMjMuMDEyLS4wMjMuMDEtLjAyMy4wMS0uMDIyLjAwOC0uMDIyLjAwNi0uMDIzLjAwNi0uMDIxLjAwNC0uMDIyLjAwNC0uMDIxLjAwMS0uMDIxLjAwMS0uMDIxLS4wMDEtLjAyMS0uMDAxLS4wMjEtLjAwNC0uMDIxLS4wMDQtLjAyMi0uMDA2LS4wMjEtLjAwNi0uMDIzLS4wMDgtLjAyMi0uMDEtLjAyMi0uMDEtLjAyMy0uMDEyLS4wMjMtLjAxMy0uMDIzLS4wMTQtLjAyMy0uMDE1LS4wMjQtLjAxNy0uMDIzLS4wMTgtLjAyNC0uMDE5LS4wMjQtLjAyLS4wMjUtLjAyMS0uMDI0LS4wMjMtLjAyNC0uMDIzLS4wMjUtLjA1MS0uMDUtLjA1Ni0uMDUtLjA2LS4wNS0uMDY1LS4wNTEtLjA3LS4wNTItLjA3NC0uMDUxLS4wNzktLjA1Mi0uMDgzLS4wNTItLjA4OC0uMDUyLS4wOTItLjA1Mi0uMDk2LS4wNTItLjEwMS0uMDUyLS4xMDYtLjA1Mi0uMTEtLjA1Mi0uMTE0LS4wNTItLjExOC0uMDUxLS4xMjMtLjA1MS0uMTI2LS4wNTEtLjEzMS0uMDUtLjEzNi0uMDUtLjEzOS0uMDQ5LS4xNDMtLjA0OC0uMTQ4LS4wNDgtLjE1Mi0uMDQ4LS4xNTUtLjA0Ni0uMTYtLjA0Ni0uMTYzLS4wNDUtLjE2OC0uMDQzLS4xNzItLjA0My0uMTc1LS4wNDItLjE3OS0uMDQxLS4xODMtLjA0LS4xODctLjAzOC0uMTkxLS4wMzgtLjE5NC0uMDM2LS4xOTgtLjAzNC0uMjAyLS4wMzMtLjIwNS0uMDMyLS4yMS0uMDMxLS4yMTItLjAyOC0uMjE2LS4wMjctLjIyLS4wMjYtLjIyNC0uMDIzLS4yMjYtLjAyMi0uMjMxLS4wMjEtLjIzMy0uMDE4LS4yMzctLjAxNi0uMjQxLS4wMTQtLjI0NC0uMDEyLS4yNDctLjAxMS0uMjUtLjAwOC0uMjU0LS4wMDUtLjI1Ny0uMDA0LS4yNi0uMDAxLS4yNi4wMDF6XCJcbiAgKTtcbn07XG5jb25zdCBpbnNlcnRDb21wdXRlckljb24gPSBmdW5jdGlvbihlbGVtKSB7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJzeW1ib2xcIikuYXR0cihcImlkXCIsIFwiY29tcHV0ZXJcIikuYXR0cihcIndpZHRoXCIsIFwiMjRcIikuYXR0cihcImhlaWdodFwiLCBcIjI0XCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcInRyYW5zZm9ybVwiLCBcInNjYWxlKC41KVwiKS5hdHRyKFxuICAgIFwiZFwiLFxuICAgIFwiTTIgMnYxM2gyMHYtMTNoLTIwem0xOCAxMWgtMTZ2LTloMTZ2OXptLTEwLjIyOCA2bC40NjYtMWgzLjUyNGwuNDY3IDFoLTQuNDU3em0xNC4yMjggM2gtMjRsMi02aDIuMTA0bC0xLjMzIDRoMTguNDVsLTEuMjk3LTRoMi4wNzNsMiA2em0tNS0xMGgtMTR2LTdoMTR2N3pcIlxuICApO1xufTtcbmNvbnN0IGluc2VydENsb2NrSWNvbiA9IGZ1bmN0aW9uKGVsZW0pIHtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcInN5bWJvbFwiKS5hdHRyKFwiaWRcIiwgXCJjbG9ja1wiKS5hdHRyKFwid2lkdGhcIiwgXCIyNFwiKS5hdHRyKFwiaGVpZ2h0XCIsIFwiMjRcIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwidHJhbnNmb3JtXCIsIFwic2NhbGUoLjUpXCIpLmF0dHIoXG4gICAgXCJkXCIsXG4gICAgXCJNMTIgMmM1LjUxNCAwIDEwIDQuNDg2IDEwIDEwcy00LjQ4NiAxMC0xMCAxMC0xMC00LjQ4Ni0xMC0xMCA0LjQ4Ni0xMCAxMC0xMHptMC0yYy02LjYyNyAwLTEyIDUuMzczLTEyIDEyczUuMzczIDEyIDEyIDEyIDEyLTUuMzczIDEyLTEyLTUuMzczLTEyLTEyLTEyem01Ljg0OCAxMi40NTljLjIwMi4wMzguMjAyLjMzMy4wMDEuMzcyLTEuOTA3LjM2MS02LjA0NSAxLjExMS02LjU0NyAxLjExMS0uNzE5IDAtMS4zMDEtLjU4Mi0xLjMwMS0xLjMwMSAwLS41MTIuNzctNS40NDcgMS4xMjUtNy40NDUuMDM0LS4xOTIuMzEyLS4xODEuMzQzLjAxNGwuOTg1IDYuMjM4IDUuMzk0IDEuMDExelwiXG4gICk7XG59O1xuY29uc3QgaW5zZXJ0QXJyb3dIZWFkID0gZnVuY3Rpb24oZWxlbSkge1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBcImFycm93aGVhZFwiKS5hdHRyKFwicmVmWFwiLCA5KS5hdHRyKFwicmVmWVwiLCA1KS5hdHRyKFwibWFya2VyVW5pdHNcIiwgXCJ1c2VyU3BhY2VPblVzZVwiKS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTIpLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMTIpLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDAgMCBMIDEwIDUgTCAwIDEwIHpcIik7XG59O1xuY29uc3QgaW5zZXJ0QXJyb3dFbmQgPSBmdW5jdGlvbihlbGVtKSB7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIFwiYXJyb3dlbmRcIikuYXR0cihcInJlZlhcIiwgMSkuYXR0cihcInJlZllcIiwgNSkuYXR0cihcIm1hcmtlclVuaXRzXCIsIFwidXNlclNwYWNlT25Vc2VcIikuYXR0cihcIm1hcmtlcldpZHRoXCIsIDEyKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDEyKS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAxMCAwIEwgMCA1IEwgMTAgMTAgelwiKTtcbn07XG5jb25zdCBpbnNlcnRBcnJvd0ZpbGxlZEhlYWQgPSBmdW5jdGlvbihlbGVtKSB7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIFwiZmlsbGVkLWhlYWRcIikuYXR0cihcInJlZlhcIiwgMTgpLmF0dHIoXCJyZWZZXCIsIDcpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAyMCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCAyOCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gMTgsNyBMOSwxMyBMMTQsNyBMOSwxIFpcIik7XG59O1xuY29uc3QgaW5zZXJ0RHluYW1pY051bWJlciA9IGZ1bmN0aW9uKGVsZW0pIHtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgXCJzZXF1ZW5jZW51bWJlclwiKS5hdHRyKFwicmVmWFwiLCAxNSkuYXR0cihcInJlZllcIiwgMTUpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCA2MCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCA0MCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwiY2lyY2xlXCIpLmF0dHIoXCJjeFwiLCAxNSkuYXR0cihcImN5XCIsIDE1KS5hdHRyKFwiclwiLCA2KTtcbn07XG5jb25zdCBpbnNlcnRBcnJvd0Nyb3NzSGVhZCA9IGZ1bmN0aW9uKGVsZW0pIHtcbiAgY29uc3QgZGVmcyA9IGVsZW0uYXBwZW5kKFwiZGVmc1wiKTtcbiAgY29uc3QgbWFya2VyID0gZGVmcy5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIFwiY3Jvc3NoZWFkXCIpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAxNSkuYXR0cihcIm1hcmtlckhlaWdodFwiLCA4KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hdHRyKFwicmVmWFwiLCAxNikuYXR0cihcInJlZllcIiwgNCk7XG4gIG1hcmtlci5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJmaWxsXCIsIFwiYmxhY2tcIikuYXR0cihcInN0cm9rZVwiLCBcIiMwMDAwMDBcIikuc3R5bGUoXCJzdHJva2UtZGFzaGFycmF5XCIsIFwiMCwgMFwiKS5hdHRyKFwic3Ryb2tlLXdpZHRoXCIsIFwiMXB4XCIpLmF0dHIoXCJkXCIsIFwiTSA5LDIgViA2IEwxNiw0IFpcIik7XG4gIG1hcmtlci5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKS5hdHRyKFwic3Ryb2tlXCIsIFwiIzAwMDAwMFwiKS5zdHlsZShcInN0cm9rZS1kYXNoYXJyYXlcIiwgXCIwLCAwXCIpLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgXCIxcHhcIikuYXR0cihcImRcIiwgXCJNIDAsMSBMIDYsNyBNIDYsMSBMIDAsN1wiKTtcbn07XG5jb25zdCBnZXRDNFNoYXBlRm9udCA9IChjbmYsIHR5cGVDNFNoYXBlKSA9PiB7XG4gIHJldHVybiB7XG4gICAgZm9udEZhbWlseTogY25mW3R5cGVDNFNoYXBlICsgXCJGb250RmFtaWx5XCJdLFxuICAgIGZvbnRTaXplOiBjbmZbdHlwZUM0U2hhcGUgKyBcIkZvbnRTaXplXCJdLFxuICAgIGZvbnRXZWlnaHQ6IGNuZlt0eXBlQzRTaGFwZSArIFwiRm9udFdlaWdodFwiXVxuICB9O1xufTtcbmNvbnN0IF9kcmF3VGV4dENhbmRpZGF0ZUZ1bmMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gYnlUZXh0KGNvbnRlbnQsIGcsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHRleHRBdHRycykge1xuICAgIGNvbnN0IHRleHQgPSBnLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgeCArIHdpZHRoIC8gMikuYXR0cihcInlcIiwgeSArIGhlaWdodCAvIDIgKyA1KS5zdHlsZShcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpLnRleHQoY29udGVudCk7XG4gICAgX3NldFRleHRBdHRycyh0ZXh0LCB0ZXh0QXR0cnMpO1xuICB9XG4gIGZ1bmN0aW9uIGJ5VHNwYW4oY29udGVudCwgZywgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGV4dEF0dHJzLCBjb25mMikge1xuICAgIGNvbnN0IHsgZm9udFNpemUsIGZvbnRGYW1pbHksIGZvbnRXZWlnaHQgfSA9IGNvbmYyO1xuICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdChjb21tb24ubGluZUJyZWFrUmVnZXgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGR5ID0gaSAqIGZvbnRTaXplIC0gZm9udFNpemUgKiAobGluZXMubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgY29uc3QgdGV4dCA9IGcuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwieFwiLCB4ICsgd2lkdGggLyAyKS5hdHRyKFwieVwiLCB5KS5zdHlsZShcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpLmF0dHIoXCJkb21pbmFudC1iYXNlbGluZVwiLCBcIm1pZGRsZVwiKS5zdHlsZShcImZvbnQtc2l6ZVwiLCBmb250U2l6ZSkuc3R5bGUoXCJmb250LXdlaWdodFwiLCBmb250V2VpZ2h0KS5zdHlsZShcImZvbnQtZmFtaWx5XCIsIGZvbnRGYW1pbHkpO1xuICAgICAgdGV4dC5hcHBlbmQoXCJ0c3BhblwiKS5hdHRyKFwiZHlcIiwgZHkpLnRleHQobGluZXNbaV0pLmF0dHIoXCJhbGlnbm1lbnQtYmFzZWxpbmVcIiwgXCJtYXRoZW1hdGljYWxcIik7XG4gICAgICBfc2V0VGV4dEF0dHJzKHRleHQsIHRleHRBdHRycyk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIGJ5Rm8oY29udGVudCwgZywgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGV4dEF0dHJzLCBjb25mMikge1xuICAgIGNvbnN0IHMgPSBnLmFwcGVuZChcInN3aXRjaFwiKTtcbiAgICBjb25zdCBmID0gcy5hcHBlbmQoXCJmb3JlaWduT2JqZWN0XCIpLmF0dHIoXCJ4XCIsIHgpLmF0dHIoXCJ5XCIsIHkpLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aCkuYXR0cihcImhlaWdodFwiLCBoZWlnaHQpO1xuICAgIGNvbnN0IHRleHQgPSBmLmFwcGVuZChcInhodG1sOmRpdlwiKS5zdHlsZShcImRpc3BsYXlcIiwgXCJ0YWJsZVwiKS5zdHlsZShcImhlaWdodFwiLCBcIjEwMCVcIikuc3R5bGUoXCJ3aWR0aFwiLCBcIjEwMCVcIik7XG4gICAgdGV4dC5hcHBlbmQoXCJkaXZcIikuc3R5bGUoXCJkaXNwbGF5XCIsIFwidGFibGUtY2VsbFwiKS5zdHlsZShcInRleHQtYWxpZ25cIiwgXCJjZW50ZXJcIikuc3R5bGUoXCJ2ZXJ0aWNhbC1hbGlnblwiLCBcIm1pZGRsZVwiKS50ZXh0KGNvbnRlbnQpO1xuICAgIGJ5VHNwYW4oY29udGVudCwgcywgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGV4dEF0dHJzLCBjb25mMik7XG4gICAgX3NldFRleHRBdHRycyh0ZXh0LCB0ZXh0QXR0cnMpO1xuICB9XG4gIGZ1bmN0aW9uIF9zZXRUZXh0QXR0cnModG9UZXh0LCBmcm9tVGV4dEF0dHJzRGljdCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGZyb21UZXh0QXR0cnNEaWN0KSB7XG4gICAgICBpZiAoZnJvbVRleHRBdHRyc0RpY3QuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICB0b1RleHQuYXR0cihrZXksIGZyb21UZXh0QXR0cnNEaWN0W2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZnVuY3Rpb24oY29uZjIpIHtcbiAgICByZXR1cm4gY29uZjIudGV4dFBsYWNlbWVudCA9PT0gXCJmb1wiID8gYnlGbyA6IGNvbmYyLnRleHRQbGFjZW1lbnQgPT09IFwib2xkXCIgPyBieVRleHQgOiBieVRzcGFuO1xuICB9O1xufSgpO1xuY29uc3Qgc3ZnRHJhdyA9IHtcbiAgZHJhd1JlY3QsXG4gIGRyYXdCb3VuZGFyeTogZHJhd0JvdW5kYXJ5JDEsXG4gIGRyYXdDNFNoYXBlLFxuICBkcmF3UmVsczogZHJhd1JlbHMkMSxcbiAgZHJhd0ltYWdlLFxuICBpbnNlcnRBcnJvd0hlYWQsXG4gIGluc2VydEFycm93RW5kLFxuICBpbnNlcnRBcnJvd0ZpbGxlZEhlYWQsXG4gIGluc2VydER5bmFtaWNOdW1iZXIsXG4gIGluc2VydEFycm93Q3Jvc3NIZWFkLFxuICBpbnNlcnREYXRhYmFzZUljb24sXG4gIGluc2VydENvbXB1dGVySWNvbixcbiAgaW5zZXJ0Q2xvY2tJY29uXG59O1xubGV0IGdsb2JhbEJvdW5kYXJ5TWF4WCA9IDAsIGdsb2JhbEJvdW5kYXJ5TWF4WSA9IDA7XG5sZXQgYzRTaGFwZUluUm93ID0gNDtcbmxldCBjNEJvdW5kYXJ5SW5Sb3cgPSAyO1xucGFyc2VyLnl5ID0gZGI7XG5sZXQgY29uZiA9IHt9O1xuY2xhc3MgQm91bmRzIHtcbiAgY29uc3RydWN0b3IoZGlhZ09iaikge1xuICAgIHRoaXMubmFtZSA9IFwiXCI7XG4gICAgdGhpcy5kYXRhID0ge307XG4gICAgdGhpcy5kYXRhLnN0YXJ0eCA9IHZvaWQgMDtcbiAgICB0aGlzLmRhdGEuc3RvcHggPSB2b2lkIDA7XG4gICAgdGhpcy5kYXRhLnN0YXJ0eSA9IHZvaWQgMDtcbiAgICB0aGlzLmRhdGEuc3RvcHkgPSB2b2lkIDA7XG4gICAgdGhpcy5kYXRhLndpZHRoTGltaXQgPSB2b2lkIDA7XG4gICAgdGhpcy5uZXh0RGF0YSA9IHt9O1xuICAgIHRoaXMubmV4dERhdGEuc3RhcnR4ID0gdm9pZCAwO1xuICAgIHRoaXMubmV4dERhdGEuc3RvcHggPSB2b2lkIDA7XG4gICAgdGhpcy5uZXh0RGF0YS5zdGFydHkgPSB2b2lkIDA7XG4gICAgdGhpcy5uZXh0RGF0YS5zdG9weSA9IHZvaWQgMDtcbiAgICB0aGlzLm5leHREYXRhLmNudCA9IDA7XG4gICAgc2V0Q29uZihkaWFnT2JqLmRiLmdldENvbmZpZygpKTtcbiAgfVxuICBzZXREYXRhKHN0YXJ0eCwgc3RvcHgsIHN0YXJ0eSwgc3RvcHkpIHtcbiAgICB0aGlzLm5leHREYXRhLnN0YXJ0eCA9IHRoaXMuZGF0YS5zdGFydHggPSBzdGFydHg7XG4gICAgdGhpcy5uZXh0RGF0YS5zdG9weCA9IHRoaXMuZGF0YS5zdG9weCA9IHN0b3B4O1xuICAgIHRoaXMubmV4dERhdGEuc3RhcnR5ID0gdGhpcy5kYXRhLnN0YXJ0eSA9IHN0YXJ0eTtcbiAgICB0aGlzLm5leHREYXRhLnN0b3B5ID0gdGhpcy5kYXRhLnN0b3B5ID0gc3RvcHk7XG4gIH1cbiAgdXBkYXRlVmFsKG9iaiwga2V5LCB2YWwsIGZ1bikge1xuICAgIGlmIChvYmpba2V5XSA9PT0gdm9pZCAwKSB7XG4gICAgICBvYmpba2V5XSA9IHZhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqW2tleV0gPSBmdW4odmFsLCBvYmpba2V5XSk7XG4gICAgfVxuICB9XG4gIGluc2VydChjNFNoYXBlKSB7XG4gICAgdGhpcy5uZXh0RGF0YS5jbnQgPSB0aGlzLm5leHREYXRhLmNudCArIDE7XG4gICAgbGV0IF9zdGFydHggPSB0aGlzLm5leHREYXRhLnN0YXJ0eCA9PT0gdGhpcy5uZXh0RGF0YS5zdG9weCA/IHRoaXMubmV4dERhdGEuc3RvcHggKyBjNFNoYXBlLm1hcmdpbiA6IHRoaXMubmV4dERhdGEuc3RvcHggKyBjNFNoYXBlLm1hcmdpbiAqIDI7XG4gICAgbGV0IF9zdG9weCA9IF9zdGFydHggKyBjNFNoYXBlLndpZHRoO1xuICAgIGxldCBfc3RhcnR5ID0gdGhpcy5uZXh0RGF0YS5zdGFydHkgKyBjNFNoYXBlLm1hcmdpbiAqIDI7XG4gICAgbGV0IF9zdG9weSA9IF9zdGFydHkgKyBjNFNoYXBlLmhlaWdodDtcbiAgICBpZiAoX3N0YXJ0eCA+PSB0aGlzLmRhdGEud2lkdGhMaW1pdCB8fCBfc3RvcHggPj0gdGhpcy5kYXRhLndpZHRoTGltaXQgfHwgdGhpcy5uZXh0RGF0YS5jbnQgPiBjNFNoYXBlSW5Sb3cpIHtcbiAgICAgIF9zdGFydHggPSB0aGlzLm5leHREYXRhLnN0YXJ0eCArIGM0U2hhcGUubWFyZ2luICsgY29uZi5uZXh0TGluZVBhZGRpbmdYO1xuICAgICAgX3N0YXJ0eSA9IHRoaXMubmV4dERhdGEuc3RvcHkgKyBjNFNoYXBlLm1hcmdpbiAqIDI7XG4gICAgICB0aGlzLm5leHREYXRhLnN0b3B4ID0gX3N0b3B4ID0gX3N0YXJ0eCArIGM0U2hhcGUud2lkdGg7XG4gICAgICB0aGlzLm5leHREYXRhLnN0YXJ0eSA9IHRoaXMubmV4dERhdGEuc3RvcHk7XG4gICAgICB0aGlzLm5leHREYXRhLnN0b3B5ID0gX3N0b3B5ID0gX3N0YXJ0eSArIGM0U2hhcGUuaGVpZ2h0O1xuICAgICAgdGhpcy5uZXh0RGF0YS5jbnQgPSAxO1xuICAgIH1cbiAgICBjNFNoYXBlLnggPSBfc3RhcnR4O1xuICAgIGM0U2hhcGUueSA9IF9zdGFydHk7XG4gICAgdGhpcy51cGRhdGVWYWwodGhpcy5kYXRhLCBcInN0YXJ0eFwiLCBfc3RhcnR4LCBNYXRoLm1pbik7XG4gICAgdGhpcy51cGRhdGVWYWwodGhpcy5kYXRhLCBcInN0YXJ0eVwiLCBfc3RhcnR5LCBNYXRoLm1pbik7XG4gICAgdGhpcy51cGRhdGVWYWwodGhpcy5kYXRhLCBcInN0b3B4XCIsIF9zdG9weCwgTWF0aC5tYXgpO1xuICAgIHRoaXMudXBkYXRlVmFsKHRoaXMuZGF0YSwgXCJzdG9weVwiLCBfc3RvcHksIE1hdGgubWF4KTtcbiAgICB0aGlzLnVwZGF0ZVZhbCh0aGlzLm5leHREYXRhLCBcInN0YXJ0eFwiLCBfc3RhcnR4LCBNYXRoLm1pbik7XG4gICAgdGhpcy51cGRhdGVWYWwodGhpcy5uZXh0RGF0YSwgXCJzdGFydHlcIiwgX3N0YXJ0eSwgTWF0aC5taW4pO1xuICAgIHRoaXMudXBkYXRlVmFsKHRoaXMubmV4dERhdGEsIFwic3RvcHhcIiwgX3N0b3B4LCBNYXRoLm1heCk7XG4gICAgdGhpcy51cGRhdGVWYWwodGhpcy5uZXh0RGF0YSwgXCJzdG9weVwiLCBfc3RvcHksIE1hdGgubWF4KTtcbiAgfVxuICBpbml0KGRpYWdPYmopIHtcbiAgICB0aGlzLm5hbWUgPSBcIlwiO1xuICAgIHRoaXMuZGF0YSA9IHtcbiAgICAgIHN0YXJ0eDogdm9pZCAwLFxuICAgICAgc3RvcHg6IHZvaWQgMCxcbiAgICAgIHN0YXJ0eTogdm9pZCAwLFxuICAgICAgc3RvcHk6IHZvaWQgMCxcbiAgICAgIHdpZHRoTGltaXQ6IHZvaWQgMFxuICAgIH07XG4gICAgdGhpcy5uZXh0RGF0YSA9IHtcbiAgICAgIHN0YXJ0eDogdm9pZCAwLFxuICAgICAgc3RvcHg6IHZvaWQgMCxcbiAgICAgIHN0YXJ0eTogdm9pZCAwLFxuICAgICAgc3RvcHk6IHZvaWQgMCxcbiAgICAgIGNudDogMFxuICAgIH07XG4gICAgc2V0Q29uZihkaWFnT2JqLmRiLmdldENvbmZpZygpKTtcbiAgfVxuICBidW1wTGFzdE1hcmdpbihtYXJnaW4pIHtcbiAgICB0aGlzLmRhdGEuc3RvcHggKz0gbWFyZ2luO1xuICAgIHRoaXMuZGF0YS5zdG9weSArPSBtYXJnaW47XG4gIH1cbn1cbmNvbnN0IHNldENvbmYgPSBmdW5jdGlvbihjbmYpIHtcbiAgYXNzaWduV2l0aERlcHRoKGNvbmYsIGNuZik7XG4gIGlmIChjbmYuZm9udEZhbWlseSkge1xuICAgIGNvbmYucGVyc29uRm9udEZhbWlseSA9IGNvbmYuc3lzdGVtRm9udEZhbWlseSA9IGNvbmYubWVzc2FnZUZvbnRGYW1pbHkgPSBjbmYuZm9udEZhbWlseTtcbiAgfVxuICBpZiAoY25mLmZvbnRTaXplKSB7XG4gICAgY29uZi5wZXJzb25Gb250U2l6ZSA9IGNvbmYuc3lzdGVtRm9udFNpemUgPSBjb25mLm1lc3NhZ2VGb250U2l6ZSA9IGNuZi5mb250U2l6ZTtcbiAgfVxuICBpZiAoY25mLmZvbnRXZWlnaHQpIHtcbiAgICBjb25mLnBlcnNvbkZvbnRXZWlnaHQgPSBjb25mLnN5c3RlbUZvbnRXZWlnaHQgPSBjb25mLm1lc3NhZ2VGb250V2VpZ2h0ID0gY25mLmZvbnRXZWlnaHQ7XG4gIH1cbn07XG5jb25zdCBjNFNoYXBlRm9udCA9IChjbmYsIHR5cGVDNFNoYXBlKSA9PiB7XG4gIHJldHVybiB7XG4gICAgZm9udEZhbWlseTogY25mW3R5cGVDNFNoYXBlICsgXCJGb250RmFtaWx5XCJdLFxuICAgIGZvbnRTaXplOiBjbmZbdHlwZUM0U2hhcGUgKyBcIkZvbnRTaXplXCJdLFxuICAgIGZvbnRXZWlnaHQ6IGNuZlt0eXBlQzRTaGFwZSArIFwiRm9udFdlaWdodFwiXVxuICB9O1xufTtcbmNvbnN0IGJvdW5kYXJ5Rm9udCA9IChjbmYpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBmb250RmFtaWx5OiBjbmYuYm91bmRhcnlGb250RmFtaWx5LFxuICAgIGZvbnRTaXplOiBjbmYuYm91bmRhcnlGb250U2l6ZSxcbiAgICBmb250V2VpZ2h0OiBjbmYuYm91bmRhcnlGb250V2VpZ2h0XG4gIH07XG59O1xuY29uc3QgbWVzc2FnZUZvbnQgPSAoY25mKSA9PiB7XG4gIHJldHVybiB7XG4gICAgZm9udEZhbWlseTogY25mLm1lc3NhZ2VGb250RmFtaWx5LFxuICAgIGZvbnRTaXplOiBjbmYubWVzc2FnZUZvbnRTaXplLFxuICAgIGZvbnRXZWlnaHQ6IGNuZi5tZXNzYWdlRm9udFdlaWdodFxuICB9O1xufTtcbmZ1bmN0aW9uIGNhbGNDNFNoYXBlVGV4dFdIKHRleHRUeXBlLCBjNFNoYXBlLCBjNFNoYXBlVGV4dFdyYXAsIHRleHRDb25mLCB0ZXh0TGltaXRXaWR0aCkge1xuICBpZiAoIWM0U2hhcGVbdGV4dFR5cGVdLndpZHRoKSB7XG4gICAgaWYgKGM0U2hhcGVUZXh0V3JhcCkge1xuICAgICAgYzRTaGFwZVt0ZXh0VHlwZV0udGV4dCA9IHdyYXBMYWJlbChjNFNoYXBlW3RleHRUeXBlXS50ZXh0LCB0ZXh0TGltaXRXaWR0aCwgdGV4dENvbmYpO1xuICAgICAgYzRTaGFwZVt0ZXh0VHlwZV0udGV4dExpbmVzID0gYzRTaGFwZVt0ZXh0VHlwZV0udGV4dC5zcGxpdChjb21tb24ubGluZUJyZWFrUmVnZXgpLmxlbmd0aDtcbiAgICAgIGM0U2hhcGVbdGV4dFR5cGVdLndpZHRoID0gdGV4dExpbWl0V2lkdGg7XG4gICAgICBjNFNoYXBlW3RleHRUeXBlXS5oZWlnaHQgPSBjYWxjdWxhdGVUZXh0SGVpZ2h0KGM0U2hhcGVbdGV4dFR5cGVdLnRleHQsIHRleHRDb25mKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGxpbmVzID0gYzRTaGFwZVt0ZXh0VHlwZV0udGV4dC5zcGxpdChjb21tb24ubGluZUJyZWFrUmVnZXgpO1xuICAgICAgYzRTaGFwZVt0ZXh0VHlwZV0udGV4dExpbmVzID0gbGluZXMubGVuZ3RoO1xuICAgICAgbGV0IGxpbmVIZWlnaHQgPSAwO1xuICAgICAgYzRTaGFwZVt0ZXh0VHlwZV0uaGVpZ2h0ID0gMDtcbiAgICAgIGM0U2hhcGVbdGV4dFR5cGVdLndpZHRoID0gMDtcbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICBjNFNoYXBlW3RleHRUeXBlXS53aWR0aCA9IE1hdGgubWF4KFxuICAgICAgICAgIGNhbGN1bGF0ZVRleHRXaWR0aChsaW5lLCB0ZXh0Q29uZiksXG4gICAgICAgICAgYzRTaGFwZVt0ZXh0VHlwZV0ud2lkdGhcbiAgICAgICAgKTtcbiAgICAgICAgbGluZUhlaWdodCA9IGNhbGN1bGF0ZVRleHRIZWlnaHQobGluZSwgdGV4dENvbmYpO1xuICAgICAgICBjNFNoYXBlW3RleHRUeXBlXS5oZWlnaHQgPSBjNFNoYXBlW3RleHRUeXBlXS5oZWlnaHQgKyBsaW5lSGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuY29uc3QgZHJhd0JvdW5kYXJ5ID0gZnVuY3Rpb24oZGlhZ3JhbTIsIGJvdW5kYXJ5LCBib3VuZHMpIHtcbiAgYm91bmRhcnkueCA9IGJvdW5kcy5kYXRhLnN0YXJ0eDtcbiAgYm91bmRhcnkueSA9IGJvdW5kcy5kYXRhLnN0YXJ0eTtcbiAgYm91bmRhcnkud2lkdGggPSBib3VuZHMuZGF0YS5zdG9weCAtIGJvdW5kcy5kYXRhLnN0YXJ0eDtcbiAgYm91bmRhcnkuaGVpZ2h0ID0gYm91bmRzLmRhdGEuc3RvcHkgLSBib3VuZHMuZGF0YS5zdGFydHk7XG4gIGJvdW5kYXJ5LmxhYmVsLnkgPSBjb25mLmM0U2hhcGVNYXJnaW4gLSAzNTtcbiAgbGV0IGJvdW5kYXJ5VGV4dFdyYXAgPSBib3VuZGFyeS53cmFwICYmIGNvbmYud3JhcDtcbiAgbGV0IGJvdW5kYXJ5TGFiZWxDb25mID0gYm91bmRhcnlGb250KGNvbmYpO1xuICBib3VuZGFyeUxhYmVsQ29uZi5mb250U2l6ZSA9IGJvdW5kYXJ5TGFiZWxDb25mLmZvbnRTaXplICsgMjtcbiAgYm91bmRhcnlMYWJlbENvbmYuZm9udFdlaWdodCA9IFwiYm9sZFwiO1xuICBsZXQgdGV4dExpbWl0V2lkdGggPSBjYWxjdWxhdGVUZXh0V2lkdGgoYm91bmRhcnkubGFiZWwudGV4dCwgYm91bmRhcnlMYWJlbENvbmYpO1xuICBjYWxjQzRTaGFwZVRleHRXSChcImxhYmVsXCIsIGJvdW5kYXJ5LCBib3VuZGFyeVRleHRXcmFwLCBib3VuZGFyeUxhYmVsQ29uZiwgdGV4dExpbWl0V2lkdGgpO1xuICBzdmdEcmF3LmRyYXdCb3VuZGFyeShkaWFncmFtMiwgYm91bmRhcnksIGNvbmYpO1xufTtcbmNvbnN0IGRyYXdDNFNoYXBlQXJyYXkgPSBmdW5jdGlvbihjdXJyZW50Qm91bmRzLCBkaWFncmFtMiwgYzRTaGFwZUFycmF5MiwgYzRTaGFwZUtleXMpIHtcbiAgbGV0IFkgPSAwO1xuICBmb3IgKGNvbnN0IGM0U2hhcGVLZXkgb2YgYzRTaGFwZUtleXMpIHtcbiAgICBZID0gMDtcbiAgICBjb25zdCBjNFNoYXBlID0gYzRTaGFwZUFycmF5MltjNFNoYXBlS2V5XTtcbiAgICBsZXQgYzRTaGFwZVR5cGVDb25mID0gYzRTaGFwZUZvbnQoY29uZiwgYzRTaGFwZS50eXBlQzRTaGFwZS50ZXh0KTtcbiAgICBjNFNoYXBlVHlwZUNvbmYuZm9udFNpemUgPSBjNFNoYXBlVHlwZUNvbmYuZm9udFNpemUgLSAyO1xuICAgIGM0U2hhcGUudHlwZUM0U2hhcGUud2lkdGggPSBjYWxjdWxhdGVUZXh0V2lkdGgoXG4gICAgICBcIsKrXCIgKyBjNFNoYXBlLnR5cGVDNFNoYXBlLnRleHQgKyBcIsK7XCIsXG4gICAgICBjNFNoYXBlVHlwZUNvbmZcbiAgICApO1xuICAgIGM0U2hhcGUudHlwZUM0U2hhcGUuaGVpZ2h0ID0gYzRTaGFwZVR5cGVDb25mLmZvbnRTaXplICsgMjtcbiAgICBjNFNoYXBlLnR5cGVDNFNoYXBlLlkgPSBjb25mLmM0U2hhcGVQYWRkaW5nO1xuICAgIFkgPSBjNFNoYXBlLnR5cGVDNFNoYXBlLlkgKyBjNFNoYXBlLnR5cGVDNFNoYXBlLmhlaWdodCAtIDQ7XG4gICAgYzRTaGFwZS5pbWFnZSA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCwgWTogMCB9O1xuICAgIHN3aXRjaCAoYzRTaGFwZS50eXBlQzRTaGFwZS50ZXh0KSB7XG4gICAgICBjYXNlIFwicGVyc29uXCI6XG4gICAgICBjYXNlIFwiZXh0ZXJuYWxfcGVyc29uXCI6XG4gICAgICAgIGM0U2hhcGUuaW1hZ2Uud2lkdGggPSA0ODtcbiAgICAgICAgYzRTaGFwZS5pbWFnZS5oZWlnaHQgPSA0ODtcbiAgICAgICAgYzRTaGFwZS5pbWFnZS5ZID0gWTtcbiAgICAgICAgWSA9IGM0U2hhcGUuaW1hZ2UuWSArIGM0U2hhcGUuaW1hZ2UuaGVpZ2h0O1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKGM0U2hhcGUuc3ByaXRlKSB7XG4gICAgICBjNFNoYXBlLmltYWdlLndpZHRoID0gNDg7XG4gICAgICBjNFNoYXBlLmltYWdlLmhlaWdodCA9IDQ4O1xuICAgICAgYzRTaGFwZS5pbWFnZS5ZID0gWTtcbiAgICAgIFkgPSBjNFNoYXBlLmltYWdlLlkgKyBjNFNoYXBlLmltYWdlLmhlaWdodDtcbiAgICB9XG4gICAgbGV0IGM0U2hhcGVUZXh0V3JhcCA9IGM0U2hhcGUud3JhcCAmJiBjb25mLndyYXA7XG4gICAgbGV0IHRleHRMaW1pdFdpZHRoID0gY29uZi53aWR0aCAtIGNvbmYuYzRTaGFwZVBhZGRpbmcgKiAyO1xuICAgIGxldCBjNFNoYXBlTGFiZWxDb25mID0gYzRTaGFwZUZvbnQoY29uZiwgYzRTaGFwZS50eXBlQzRTaGFwZS50ZXh0KTtcbiAgICBjNFNoYXBlTGFiZWxDb25mLmZvbnRTaXplID0gYzRTaGFwZUxhYmVsQ29uZi5mb250U2l6ZSArIDI7XG4gICAgYzRTaGFwZUxhYmVsQ29uZi5mb250V2VpZ2h0ID0gXCJib2xkXCI7XG4gICAgY2FsY0M0U2hhcGVUZXh0V0goXCJsYWJlbFwiLCBjNFNoYXBlLCBjNFNoYXBlVGV4dFdyYXAsIGM0U2hhcGVMYWJlbENvbmYsIHRleHRMaW1pdFdpZHRoKTtcbiAgICBjNFNoYXBlW1wibGFiZWxcIl0uWSA9IFkgKyA4O1xuICAgIFkgPSBjNFNoYXBlW1wibGFiZWxcIl0uWSArIGM0U2hhcGVbXCJsYWJlbFwiXS5oZWlnaHQ7XG4gICAgaWYgKGM0U2hhcGUudHlwZSAmJiBjNFNoYXBlLnR5cGUudGV4dCAhPT0gXCJcIikge1xuICAgICAgYzRTaGFwZS50eXBlLnRleHQgPSBcIltcIiArIGM0U2hhcGUudHlwZS50ZXh0ICsgXCJdXCI7XG4gICAgICBsZXQgYzRTaGFwZVR5cGVDb25mMiA9IGM0U2hhcGVGb250KGNvbmYsIGM0U2hhcGUudHlwZUM0U2hhcGUudGV4dCk7XG4gICAgICBjYWxjQzRTaGFwZVRleHRXSChcInR5cGVcIiwgYzRTaGFwZSwgYzRTaGFwZVRleHRXcmFwLCBjNFNoYXBlVHlwZUNvbmYyLCB0ZXh0TGltaXRXaWR0aCk7XG4gICAgICBjNFNoYXBlW1widHlwZVwiXS5ZID0gWSArIDU7XG4gICAgICBZID0gYzRTaGFwZVtcInR5cGVcIl0uWSArIGM0U2hhcGVbXCJ0eXBlXCJdLmhlaWdodDtcbiAgICB9IGVsc2UgaWYgKGM0U2hhcGUudGVjaG4gJiYgYzRTaGFwZS50ZWNobi50ZXh0ICE9PSBcIlwiKSB7XG4gICAgICBjNFNoYXBlLnRlY2huLnRleHQgPSBcIltcIiArIGM0U2hhcGUudGVjaG4udGV4dCArIFwiXVwiO1xuICAgICAgbGV0IGM0U2hhcGVUZWNobkNvbmYgPSBjNFNoYXBlRm9udChjb25mLCBjNFNoYXBlLnRlY2huLnRleHQpO1xuICAgICAgY2FsY0M0U2hhcGVUZXh0V0goXCJ0ZWNoblwiLCBjNFNoYXBlLCBjNFNoYXBlVGV4dFdyYXAsIGM0U2hhcGVUZWNobkNvbmYsIHRleHRMaW1pdFdpZHRoKTtcbiAgICAgIGM0U2hhcGVbXCJ0ZWNoblwiXS5ZID0gWSArIDU7XG4gICAgICBZID0gYzRTaGFwZVtcInRlY2huXCJdLlkgKyBjNFNoYXBlW1widGVjaG5cIl0uaGVpZ2h0O1xuICAgIH1cbiAgICBsZXQgcmVjdEhlaWdodCA9IFk7XG4gICAgbGV0IHJlY3RXaWR0aCA9IGM0U2hhcGUubGFiZWwud2lkdGg7XG4gICAgaWYgKGM0U2hhcGUuZGVzY3IgJiYgYzRTaGFwZS5kZXNjci50ZXh0ICE9PSBcIlwiKSB7XG4gICAgICBsZXQgYzRTaGFwZURlc2NyQ29uZiA9IGM0U2hhcGVGb250KGNvbmYsIGM0U2hhcGUudHlwZUM0U2hhcGUudGV4dCk7XG4gICAgICBjYWxjQzRTaGFwZVRleHRXSChcImRlc2NyXCIsIGM0U2hhcGUsIGM0U2hhcGVUZXh0V3JhcCwgYzRTaGFwZURlc2NyQ29uZiwgdGV4dExpbWl0V2lkdGgpO1xuICAgICAgYzRTaGFwZVtcImRlc2NyXCJdLlkgPSBZICsgMjA7XG4gICAgICBZID0gYzRTaGFwZVtcImRlc2NyXCJdLlkgKyBjNFNoYXBlW1wiZGVzY3JcIl0uaGVpZ2h0O1xuICAgICAgcmVjdFdpZHRoID0gTWF0aC5tYXgoYzRTaGFwZS5sYWJlbC53aWR0aCwgYzRTaGFwZS5kZXNjci53aWR0aCk7XG4gICAgICByZWN0SGVpZ2h0ID0gWSAtIGM0U2hhcGVbXCJkZXNjclwiXS50ZXh0TGluZXMgKiA1O1xuICAgIH1cbiAgICByZWN0V2lkdGggPSByZWN0V2lkdGggKyBjb25mLmM0U2hhcGVQYWRkaW5nO1xuICAgIGM0U2hhcGUud2lkdGggPSBNYXRoLm1heChjNFNoYXBlLndpZHRoIHx8IGNvbmYud2lkdGgsIHJlY3RXaWR0aCwgY29uZi53aWR0aCk7XG4gICAgYzRTaGFwZS5oZWlnaHQgPSBNYXRoLm1heChjNFNoYXBlLmhlaWdodCB8fCBjb25mLmhlaWdodCwgcmVjdEhlaWdodCwgY29uZi5oZWlnaHQpO1xuICAgIGM0U2hhcGUubWFyZ2luID0gYzRTaGFwZS5tYXJnaW4gfHwgY29uZi5jNFNoYXBlTWFyZ2luO1xuICAgIGN1cnJlbnRCb3VuZHMuaW5zZXJ0KGM0U2hhcGUpO1xuICAgIHN2Z0RyYXcuZHJhd0M0U2hhcGUoZGlhZ3JhbTIsIGM0U2hhcGUsIGNvbmYpO1xuICB9XG4gIGN1cnJlbnRCb3VuZHMuYnVtcExhc3RNYXJnaW4oY29uZi5jNFNoYXBlTWFyZ2luKTtcbn07XG5jbGFzcyBQb2ludCB7XG4gIGNvbnN0cnVjdG9yKHgsIHkpIHtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG4gIH1cbn1cbmxldCBnZXRJbnRlcnNlY3RQb2ludCA9IGZ1bmN0aW9uKGZyb21Ob2RlLCBlbmRQb2ludCkge1xuICBsZXQgeDEgPSBmcm9tTm9kZS54O1xuICBsZXQgeTEgPSBmcm9tTm9kZS55O1xuICBsZXQgeDIgPSBlbmRQb2ludC54O1xuICBsZXQgeTIgPSBlbmRQb2ludC55O1xuICBsZXQgZnJvbUNlbnRlclggPSB4MSArIGZyb21Ob2RlLndpZHRoIC8gMjtcbiAgbGV0IGZyb21DZW50ZXJZID0geTEgKyBmcm9tTm9kZS5oZWlnaHQgLyAyO1xuICBsZXQgZHggPSBNYXRoLmFicyh4MSAtIHgyKTtcbiAgbGV0IGR5ID0gTWF0aC5hYnMoeTEgLSB5Mik7XG4gIGxldCB0YW5EWVggPSBkeSAvIGR4O1xuICBsZXQgZnJvbURZWCA9IGZyb21Ob2RlLmhlaWdodCAvIGZyb21Ob2RlLndpZHRoO1xuICBsZXQgcmV0dXJuUG9pbnQgPSBudWxsO1xuICBpZiAoeTEgPT0geTIgJiYgeDEgPCB4Mikge1xuICAgIHJldHVyblBvaW50ID0gbmV3IFBvaW50KHgxICsgZnJvbU5vZGUud2lkdGgsIGZyb21DZW50ZXJZKTtcbiAgfSBlbHNlIGlmICh5MSA9PSB5MiAmJiB4MSA+IHgyKSB7XG4gICAgcmV0dXJuUG9pbnQgPSBuZXcgUG9pbnQoeDEsIGZyb21DZW50ZXJZKTtcbiAgfSBlbHNlIGlmICh4MSA9PSB4MiAmJiB5MSA8IHkyKSB7XG4gICAgcmV0dXJuUG9pbnQgPSBuZXcgUG9pbnQoZnJvbUNlbnRlclgsIHkxICsgZnJvbU5vZGUuaGVpZ2h0KTtcbiAgfSBlbHNlIGlmICh4MSA9PSB4MiAmJiB5MSA+IHkyKSB7XG4gICAgcmV0dXJuUG9pbnQgPSBuZXcgUG9pbnQoZnJvbUNlbnRlclgsIHkxKTtcbiAgfVxuICBpZiAoeDEgPiB4MiAmJiB5MSA8IHkyKSB7XG4gICAgaWYgKGZyb21EWVggPj0gdGFuRFlYKSB7XG4gICAgICByZXR1cm5Qb2ludCA9IG5ldyBQb2ludCh4MSwgZnJvbUNlbnRlclkgKyB0YW5EWVggKiBmcm9tTm9kZS53aWR0aCAvIDIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm5Qb2ludCA9IG5ldyBQb2ludChcbiAgICAgICAgZnJvbUNlbnRlclggLSBkeCAvIGR5ICogZnJvbU5vZGUuaGVpZ2h0IC8gMixcbiAgICAgICAgeTEgKyBmcm9tTm9kZS5oZWlnaHRcbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHgxIDwgeDIgJiYgeTEgPCB5Mikge1xuICAgIGlmIChmcm9tRFlYID49IHRhbkRZWCkge1xuICAgICAgcmV0dXJuUG9pbnQgPSBuZXcgUG9pbnQoeDEgKyBmcm9tTm9kZS53aWR0aCwgZnJvbUNlbnRlclkgKyB0YW5EWVggKiBmcm9tTm9kZS53aWR0aCAvIDIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm5Qb2ludCA9IG5ldyBQb2ludChcbiAgICAgICAgZnJvbUNlbnRlclggKyBkeCAvIGR5ICogZnJvbU5vZGUuaGVpZ2h0IC8gMixcbiAgICAgICAgeTEgKyBmcm9tTm9kZS5oZWlnaHRcbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHgxIDwgeDIgJiYgeTEgPiB5Mikge1xuICAgIGlmIChmcm9tRFlYID49IHRhbkRZWCkge1xuICAgICAgcmV0dXJuUG9pbnQgPSBuZXcgUG9pbnQoeDEgKyBmcm9tTm9kZS53aWR0aCwgZnJvbUNlbnRlclkgLSB0YW5EWVggKiBmcm9tTm9kZS53aWR0aCAvIDIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm5Qb2ludCA9IG5ldyBQb2ludChmcm9tQ2VudGVyWCArIGZyb21Ob2RlLmhlaWdodCAvIDIgKiBkeCAvIGR5LCB5MSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHgxID4geDIgJiYgeTEgPiB5Mikge1xuICAgIGlmIChmcm9tRFlYID49IHRhbkRZWCkge1xuICAgICAgcmV0dXJuUG9pbnQgPSBuZXcgUG9pbnQoeDEsIGZyb21DZW50ZXJZIC0gZnJvbU5vZGUud2lkdGggLyAyICogdGFuRFlYKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuUG9pbnQgPSBuZXcgUG9pbnQoZnJvbUNlbnRlclggLSBmcm9tTm9kZS5oZWlnaHQgLyAyICogZHggLyBkeSwgeTEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0dXJuUG9pbnQ7XG59O1xubGV0IGdldEludGVyc2VjdFBvaW50cyA9IGZ1bmN0aW9uKGZyb21Ob2RlLCBlbmROb2RlKSB7XG4gIGxldCBlbmRJbnRlcnNlY3RQb2ludCA9IHsgeDogMCwgeTogMCB9O1xuICBlbmRJbnRlcnNlY3RQb2ludC54ID0gZW5kTm9kZS54ICsgZW5kTm9kZS53aWR0aCAvIDI7XG4gIGVuZEludGVyc2VjdFBvaW50LnkgPSBlbmROb2RlLnkgKyBlbmROb2RlLmhlaWdodCAvIDI7XG4gIGxldCBzdGFydFBvaW50ID0gZ2V0SW50ZXJzZWN0UG9pbnQoZnJvbU5vZGUsIGVuZEludGVyc2VjdFBvaW50KTtcbiAgZW5kSW50ZXJzZWN0UG9pbnQueCA9IGZyb21Ob2RlLnggKyBmcm9tTm9kZS53aWR0aCAvIDI7XG4gIGVuZEludGVyc2VjdFBvaW50LnkgPSBmcm9tTm9kZS55ICsgZnJvbU5vZGUuaGVpZ2h0IC8gMjtcbiAgbGV0IGVuZFBvaW50ID0gZ2V0SW50ZXJzZWN0UG9pbnQoZW5kTm9kZSwgZW5kSW50ZXJzZWN0UG9pbnQpO1xuICByZXR1cm4geyBzdGFydFBvaW50LCBlbmRQb2ludCB9O1xufTtcbmNvbnN0IGRyYXdSZWxzID0gZnVuY3Rpb24oZGlhZ3JhbTIsIHJlbHMyLCBnZXRDNFNoYXBlT2JqLCBkaWFnT2JqKSB7XG4gIGxldCBpID0gMDtcbiAgZm9yIChsZXQgcmVsIG9mIHJlbHMyKSB7XG4gICAgaSA9IGkgKyAxO1xuICAgIGxldCByZWxUZXh0V3JhcCA9IHJlbC53cmFwICYmIGNvbmYud3JhcDtcbiAgICBsZXQgcmVsQ29uZiA9IG1lc3NhZ2VGb250KGNvbmYpO1xuICAgIGxldCBkaWFncmFtVHlwZSA9IGRpYWdPYmouZGIuZ2V0QzRUeXBlKCk7XG4gICAgaWYgKGRpYWdyYW1UeXBlID09PSBcIkM0RHluYW1pY1wiKSB7XG4gICAgICByZWwubGFiZWwudGV4dCA9IGkgKyBcIjogXCIgKyByZWwubGFiZWwudGV4dDtcbiAgICB9XG4gICAgbGV0IHRleHRMaW1pdFdpZHRoID0gY2FsY3VsYXRlVGV4dFdpZHRoKHJlbC5sYWJlbC50ZXh0LCByZWxDb25mKTtcbiAgICBjYWxjQzRTaGFwZVRleHRXSChcImxhYmVsXCIsIHJlbCwgcmVsVGV4dFdyYXAsIHJlbENvbmYsIHRleHRMaW1pdFdpZHRoKTtcbiAgICBpZiAocmVsLnRlY2huICYmIHJlbC50ZWNobi50ZXh0ICE9PSBcIlwiKSB7XG4gICAgICB0ZXh0TGltaXRXaWR0aCA9IGNhbGN1bGF0ZVRleHRXaWR0aChyZWwudGVjaG4udGV4dCwgcmVsQ29uZik7XG4gICAgICBjYWxjQzRTaGFwZVRleHRXSChcInRlY2huXCIsIHJlbCwgcmVsVGV4dFdyYXAsIHJlbENvbmYsIHRleHRMaW1pdFdpZHRoKTtcbiAgICB9XG4gICAgaWYgKHJlbC5kZXNjciAmJiByZWwuZGVzY3IudGV4dCAhPT0gXCJcIikge1xuICAgICAgdGV4dExpbWl0V2lkdGggPSBjYWxjdWxhdGVUZXh0V2lkdGgocmVsLmRlc2NyLnRleHQsIHJlbENvbmYpO1xuICAgICAgY2FsY0M0U2hhcGVUZXh0V0goXCJkZXNjclwiLCByZWwsIHJlbFRleHRXcmFwLCByZWxDb25mLCB0ZXh0TGltaXRXaWR0aCk7XG4gICAgfVxuICAgIGxldCBmcm9tTm9kZSA9IGdldEM0U2hhcGVPYmoocmVsLmZyb20pO1xuICAgIGxldCBlbmROb2RlID0gZ2V0QzRTaGFwZU9iaihyZWwudG8pO1xuICAgIGxldCBwb2ludHMgPSBnZXRJbnRlcnNlY3RQb2ludHMoZnJvbU5vZGUsIGVuZE5vZGUpO1xuICAgIHJlbC5zdGFydFBvaW50ID0gcG9pbnRzLnN0YXJ0UG9pbnQ7XG4gICAgcmVsLmVuZFBvaW50ID0gcG9pbnRzLmVuZFBvaW50O1xuICB9XG4gIHN2Z0RyYXcuZHJhd1JlbHMoZGlhZ3JhbTIsIHJlbHMyLCBjb25mKTtcbn07XG5mdW5jdGlvbiBkcmF3SW5zaWRlQm91bmRhcnkoZGlhZ3JhbTIsIHBhcmVudEJvdW5kYXJ5QWxpYXMsIHBhcmVudEJvdW5kcywgY3VycmVudEJvdW5kYXJpZXMsIGRpYWdPYmopIHtcbiAgbGV0IGN1cnJlbnRCb3VuZHMgPSBuZXcgQm91bmRzKGRpYWdPYmopO1xuICBjdXJyZW50Qm91bmRzLmRhdGEud2lkdGhMaW1pdCA9IHBhcmVudEJvdW5kcy5kYXRhLndpZHRoTGltaXQgLyBNYXRoLm1pbihjNEJvdW5kYXJ5SW5Sb3csIGN1cnJlbnRCb3VuZGFyaWVzLmxlbmd0aCk7XG4gIGZvciAobGV0IFtpLCBjdXJyZW50Qm91bmRhcnldIG9mIGN1cnJlbnRCb3VuZGFyaWVzLmVudHJpZXMoKSkge1xuICAgIGxldCBZID0gMDtcbiAgICBjdXJyZW50Qm91bmRhcnkuaW1hZ2UgPSB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAsIFk6IDAgfTtcbiAgICBpZiAoY3VycmVudEJvdW5kYXJ5LnNwcml0ZSkge1xuICAgICAgY3VycmVudEJvdW5kYXJ5LmltYWdlLndpZHRoID0gNDg7XG4gICAgICBjdXJyZW50Qm91bmRhcnkuaW1hZ2UuaGVpZ2h0ID0gNDg7XG4gICAgICBjdXJyZW50Qm91bmRhcnkuaW1hZ2UuWSA9IFk7XG4gICAgICBZID0gY3VycmVudEJvdW5kYXJ5LmltYWdlLlkgKyBjdXJyZW50Qm91bmRhcnkuaW1hZ2UuaGVpZ2h0O1xuICAgIH1cbiAgICBsZXQgY3VycmVudEJvdW5kYXJ5VGV4dFdyYXAgPSBjdXJyZW50Qm91bmRhcnkud3JhcCAmJiBjb25mLndyYXA7XG4gICAgbGV0IGN1cnJlbnRCb3VuZGFyeUxhYmVsQ29uZiA9IGJvdW5kYXJ5Rm9udChjb25mKTtcbiAgICBjdXJyZW50Qm91bmRhcnlMYWJlbENvbmYuZm9udFNpemUgPSBjdXJyZW50Qm91bmRhcnlMYWJlbENvbmYuZm9udFNpemUgKyAyO1xuICAgIGN1cnJlbnRCb3VuZGFyeUxhYmVsQ29uZi5mb250V2VpZ2h0ID0gXCJib2xkXCI7XG4gICAgY2FsY0M0U2hhcGVUZXh0V0goXG4gICAgICBcImxhYmVsXCIsXG4gICAgICBjdXJyZW50Qm91bmRhcnksXG4gICAgICBjdXJyZW50Qm91bmRhcnlUZXh0V3JhcCxcbiAgICAgIGN1cnJlbnRCb3VuZGFyeUxhYmVsQ29uZixcbiAgICAgIGN1cnJlbnRCb3VuZHMuZGF0YS53aWR0aExpbWl0XG4gICAgKTtcbiAgICBjdXJyZW50Qm91bmRhcnlbXCJsYWJlbFwiXS5ZID0gWSArIDg7XG4gICAgWSA9IGN1cnJlbnRCb3VuZGFyeVtcImxhYmVsXCJdLlkgKyBjdXJyZW50Qm91bmRhcnlbXCJsYWJlbFwiXS5oZWlnaHQ7XG4gICAgaWYgKGN1cnJlbnRCb3VuZGFyeS50eXBlICYmIGN1cnJlbnRCb3VuZGFyeS50eXBlLnRleHQgIT09IFwiXCIpIHtcbiAgICAgIGN1cnJlbnRCb3VuZGFyeS50eXBlLnRleHQgPSBcIltcIiArIGN1cnJlbnRCb3VuZGFyeS50eXBlLnRleHQgKyBcIl1cIjtcbiAgICAgIGxldCBjdXJyZW50Qm91bmRhcnlUeXBlQ29uZiA9IGJvdW5kYXJ5Rm9udChjb25mKTtcbiAgICAgIGNhbGNDNFNoYXBlVGV4dFdIKFxuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgY3VycmVudEJvdW5kYXJ5LFxuICAgICAgICBjdXJyZW50Qm91bmRhcnlUZXh0V3JhcCxcbiAgICAgICAgY3VycmVudEJvdW5kYXJ5VHlwZUNvbmYsXG4gICAgICAgIGN1cnJlbnRCb3VuZHMuZGF0YS53aWR0aExpbWl0XG4gICAgICApO1xuICAgICAgY3VycmVudEJvdW5kYXJ5W1widHlwZVwiXS5ZID0gWSArIDU7XG4gICAgICBZID0gY3VycmVudEJvdW5kYXJ5W1widHlwZVwiXS5ZICsgY3VycmVudEJvdW5kYXJ5W1widHlwZVwiXS5oZWlnaHQ7XG4gICAgfVxuICAgIGlmIChjdXJyZW50Qm91bmRhcnkuZGVzY3IgJiYgY3VycmVudEJvdW5kYXJ5LmRlc2NyLnRleHQgIT09IFwiXCIpIHtcbiAgICAgIGxldCBjdXJyZW50Qm91bmRhcnlEZXNjckNvbmYgPSBib3VuZGFyeUZvbnQoY29uZik7XG4gICAgICBjdXJyZW50Qm91bmRhcnlEZXNjckNvbmYuZm9udFNpemUgPSBjdXJyZW50Qm91bmRhcnlEZXNjckNvbmYuZm9udFNpemUgLSAyO1xuICAgICAgY2FsY0M0U2hhcGVUZXh0V0goXG4gICAgICAgIFwiZGVzY3JcIixcbiAgICAgICAgY3VycmVudEJvdW5kYXJ5LFxuICAgICAgICBjdXJyZW50Qm91bmRhcnlUZXh0V3JhcCxcbiAgICAgICAgY3VycmVudEJvdW5kYXJ5RGVzY3JDb25mLFxuICAgICAgICBjdXJyZW50Qm91bmRzLmRhdGEud2lkdGhMaW1pdFxuICAgICAgKTtcbiAgICAgIGN1cnJlbnRCb3VuZGFyeVtcImRlc2NyXCJdLlkgPSBZICsgMjA7XG4gICAgICBZID0gY3VycmVudEJvdW5kYXJ5W1wiZGVzY3JcIl0uWSArIGN1cnJlbnRCb3VuZGFyeVtcImRlc2NyXCJdLmhlaWdodDtcbiAgICB9XG4gICAgaWYgKGkgPT0gMCB8fCBpICUgYzRCb3VuZGFyeUluUm93ID09PSAwKSB7XG4gICAgICBsZXQgX3ggPSBwYXJlbnRCb3VuZHMuZGF0YS5zdGFydHggKyBjb25mLmRpYWdyYW1NYXJnaW5YO1xuICAgICAgbGV0IF95ID0gcGFyZW50Qm91bmRzLmRhdGEuc3RvcHkgKyBjb25mLmRpYWdyYW1NYXJnaW5ZICsgWTtcbiAgICAgIGN1cnJlbnRCb3VuZHMuc2V0RGF0YShfeCwgX3gsIF95LCBfeSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBfeCA9IGN1cnJlbnRCb3VuZHMuZGF0YS5zdG9weCAhPT0gY3VycmVudEJvdW5kcy5kYXRhLnN0YXJ0eCA/IGN1cnJlbnRCb3VuZHMuZGF0YS5zdG9weCArIGNvbmYuZGlhZ3JhbU1hcmdpblggOiBjdXJyZW50Qm91bmRzLmRhdGEuc3RhcnR4O1xuICAgICAgbGV0IF95ID0gY3VycmVudEJvdW5kcy5kYXRhLnN0YXJ0eTtcbiAgICAgIGN1cnJlbnRCb3VuZHMuc2V0RGF0YShfeCwgX3gsIF95LCBfeSk7XG4gICAgfVxuICAgIGN1cnJlbnRCb3VuZHMubmFtZSA9IGN1cnJlbnRCb3VuZGFyeS5hbGlhcztcbiAgICBsZXQgY3VycmVudFBlcnNvbk9yU3lzdGVtQXJyYXkgPSBkaWFnT2JqLmRiLmdldEM0U2hhcGVBcnJheShjdXJyZW50Qm91bmRhcnkuYWxpYXMpO1xuICAgIGxldCBjdXJyZW50UGVyc29uT3JTeXN0ZW1LZXlzID0gZGlhZ09iai5kYi5nZXRDNFNoYXBlS2V5cyhjdXJyZW50Qm91bmRhcnkuYWxpYXMpO1xuICAgIGlmIChjdXJyZW50UGVyc29uT3JTeXN0ZW1LZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIGRyYXdDNFNoYXBlQXJyYXkoXG4gICAgICAgIGN1cnJlbnRCb3VuZHMsXG4gICAgICAgIGRpYWdyYW0yLFxuICAgICAgICBjdXJyZW50UGVyc29uT3JTeXN0ZW1BcnJheSxcbiAgICAgICAgY3VycmVudFBlcnNvbk9yU3lzdGVtS2V5c1xuICAgICAgKTtcbiAgICB9XG4gICAgcGFyZW50Qm91bmRhcnlBbGlhcyA9IGN1cnJlbnRCb3VuZGFyeS5hbGlhcztcbiAgICBsZXQgbmV4dEN1cnJlbnRCb3VuZGFyaWVzID0gZGlhZ09iai5kYi5nZXRCb3VuZGFyeXMocGFyZW50Qm91bmRhcnlBbGlhcyk7XG4gICAgaWYgKG5leHRDdXJyZW50Qm91bmRhcmllcy5sZW5ndGggPiAwKSB7XG4gICAgICBkcmF3SW5zaWRlQm91bmRhcnkoXG4gICAgICAgIGRpYWdyYW0yLFxuICAgICAgICBwYXJlbnRCb3VuZGFyeUFsaWFzLFxuICAgICAgICBjdXJyZW50Qm91bmRzLFxuICAgICAgICBuZXh0Q3VycmVudEJvdW5kYXJpZXMsXG4gICAgICAgIGRpYWdPYmpcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChjdXJyZW50Qm91bmRhcnkuYWxpYXMgIT09IFwiZ2xvYmFsXCIpIHtcbiAgICAgIGRyYXdCb3VuZGFyeShkaWFncmFtMiwgY3VycmVudEJvdW5kYXJ5LCBjdXJyZW50Qm91bmRzKTtcbiAgICB9XG4gICAgcGFyZW50Qm91bmRzLmRhdGEuc3RvcHkgPSBNYXRoLm1heChcbiAgICAgIGN1cnJlbnRCb3VuZHMuZGF0YS5zdG9weSArIGNvbmYuYzRTaGFwZU1hcmdpbixcbiAgICAgIHBhcmVudEJvdW5kcy5kYXRhLnN0b3B5XG4gICAgKTtcbiAgICBwYXJlbnRCb3VuZHMuZGF0YS5zdG9weCA9IE1hdGgubWF4KFxuICAgICAgY3VycmVudEJvdW5kcy5kYXRhLnN0b3B4ICsgY29uZi5jNFNoYXBlTWFyZ2luLFxuICAgICAgcGFyZW50Qm91bmRzLmRhdGEuc3RvcHhcbiAgICApO1xuICAgIGdsb2JhbEJvdW5kYXJ5TWF4WCA9IE1hdGgubWF4KGdsb2JhbEJvdW5kYXJ5TWF4WCwgcGFyZW50Qm91bmRzLmRhdGEuc3RvcHgpO1xuICAgIGdsb2JhbEJvdW5kYXJ5TWF4WSA9IE1hdGgubWF4KGdsb2JhbEJvdW5kYXJ5TWF4WSwgcGFyZW50Qm91bmRzLmRhdGEuc3RvcHkpO1xuICB9XG59XG5jb25zdCBkcmF3ID0gZnVuY3Rpb24oX3RleHQsIGlkLCBfdmVyc2lvbiwgZGlhZ09iaikge1xuICBjb25mID0gZ2V0Q29uZmlnKCkuYzQ7XG4gIGNvbnN0IHNlY3VyaXR5TGV2ZWwgPSBnZXRDb25maWcoKS5zZWN1cml0eUxldmVsO1xuICBsZXQgc2FuZGJveEVsZW1lbnQ7XG4gIGlmIChzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIikge1xuICAgIHNhbmRib3hFbGVtZW50ID0gc2VsZWN0KFwiI2lcIiArIGlkKTtcbiAgfVxuICBjb25zdCByb290ID0gc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIgPyBzZWxlY3Qoc2FuZGJveEVsZW1lbnQubm9kZXMoKVswXS5jb250ZW50RG9jdW1lbnQuYm9keSkgOiBzZWxlY3QoXCJib2R5XCIpO1xuICBsZXQgZGIyID0gZGlhZ09iai5kYjtcbiAgZGlhZ09iai5kYi5zZXRXcmFwKGNvbmYud3JhcCk7XG4gIGM0U2hhcGVJblJvdyA9IGRiMi5nZXRDNFNoYXBlSW5Sb3coKTtcbiAgYzRCb3VuZGFyeUluUm93ID0gZGIyLmdldEM0Qm91bmRhcnlJblJvdygpO1xuICBsb2cuZGVidWcoYEM6JHtKU09OLnN0cmluZ2lmeShjb25mLCBudWxsLCAyKX1gKTtcbiAgY29uc3QgZGlhZ3JhbTIgPSBzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIiA/IHJvb3Quc2VsZWN0KGBbaWQ9XCIke2lkfVwiXWApIDogc2VsZWN0KGBbaWQ9XCIke2lkfVwiXWApO1xuICBzdmdEcmF3Lmluc2VydENvbXB1dGVySWNvbihkaWFncmFtMik7XG4gIHN2Z0RyYXcuaW5zZXJ0RGF0YWJhc2VJY29uKGRpYWdyYW0yKTtcbiAgc3ZnRHJhdy5pbnNlcnRDbG9ja0ljb24oZGlhZ3JhbTIpO1xuICBsZXQgc2NyZWVuQm91bmRzID0gbmV3IEJvdW5kcyhkaWFnT2JqKTtcbiAgc2NyZWVuQm91bmRzLnNldERhdGEoXG4gICAgY29uZi5kaWFncmFtTWFyZ2luWCxcbiAgICBjb25mLmRpYWdyYW1NYXJnaW5YLFxuICAgIGNvbmYuZGlhZ3JhbU1hcmdpblksXG4gICAgY29uZi5kaWFncmFtTWFyZ2luWVxuICApO1xuICBzY3JlZW5Cb3VuZHMuZGF0YS53aWR0aExpbWl0ID0gc2NyZWVuLmF2YWlsV2lkdGg7XG4gIGdsb2JhbEJvdW5kYXJ5TWF4WCA9IGNvbmYuZGlhZ3JhbU1hcmdpblg7XG4gIGdsb2JhbEJvdW5kYXJ5TWF4WSA9IGNvbmYuZGlhZ3JhbU1hcmdpblk7XG4gIGNvbnN0IHRpdGxlMiA9IGRpYWdPYmouZGIuZ2V0VGl0bGUoKTtcbiAgbGV0IGN1cnJlbnRCb3VuZGFyaWVzID0gZGlhZ09iai5kYi5nZXRCb3VuZGFyeXMoXCJcIik7XG4gIGRyYXdJbnNpZGVCb3VuZGFyeShkaWFncmFtMiwgXCJcIiwgc2NyZWVuQm91bmRzLCBjdXJyZW50Qm91bmRhcmllcywgZGlhZ09iaik7XG4gIHN2Z0RyYXcuaW5zZXJ0QXJyb3dIZWFkKGRpYWdyYW0yKTtcbiAgc3ZnRHJhdy5pbnNlcnRBcnJvd0VuZChkaWFncmFtMik7XG4gIHN2Z0RyYXcuaW5zZXJ0QXJyb3dDcm9zc0hlYWQoZGlhZ3JhbTIpO1xuICBzdmdEcmF3Lmluc2VydEFycm93RmlsbGVkSGVhZChkaWFncmFtMik7XG4gIGRyYXdSZWxzKGRpYWdyYW0yLCBkaWFnT2JqLmRiLmdldFJlbHMoKSwgZGlhZ09iai5kYi5nZXRDNFNoYXBlLCBkaWFnT2JqKTtcbiAgc2NyZWVuQm91bmRzLmRhdGEuc3RvcHggPSBnbG9iYWxCb3VuZGFyeU1heFg7XG4gIHNjcmVlbkJvdW5kcy5kYXRhLnN0b3B5ID0gZ2xvYmFsQm91bmRhcnlNYXhZO1xuICBjb25zdCBib3ggPSBzY3JlZW5Cb3VuZHMuZGF0YTtcbiAgbGV0IGJveEhlaWdodCA9IGJveC5zdG9weSAtIGJveC5zdGFydHk7XG4gIGxldCBoZWlnaHQgPSBib3hIZWlnaHQgKyAyICogY29uZi5kaWFncmFtTWFyZ2luWTtcbiAgbGV0IGJveFdpZHRoID0gYm94LnN0b3B4IC0gYm94LnN0YXJ0eDtcbiAgY29uc3Qgd2lkdGggPSBib3hXaWR0aCArIDIgKiBjb25mLmRpYWdyYW1NYXJnaW5YO1xuICBpZiAodGl0bGUyKSB7XG4gICAgZGlhZ3JhbTIuYXBwZW5kKFwidGV4dFwiKS50ZXh0KHRpdGxlMikuYXR0cihcInhcIiwgKGJveC5zdG9weCAtIGJveC5zdGFydHgpIC8gMiAtIDQgKiBjb25mLmRpYWdyYW1NYXJnaW5YKS5hdHRyKFwieVwiLCBib3guc3RhcnR5ICsgY29uZi5kaWFncmFtTWFyZ2luWSk7XG4gIH1cbiAgY29uZmlndXJlU3ZnU2l6ZShkaWFncmFtMiwgaGVpZ2h0LCB3aWR0aCwgY29uZi51c2VNYXhXaWR0aCk7XG4gIGNvbnN0IGV4dHJhVmVydEZvclRpdGxlID0gdGl0bGUyID8gNjAgOiAwO1xuICBkaWFncmFtMi5hdHRyKFxuICAgIFwidmlld0JveFwiLFxuICAgIGJveC5zdGFydHggLSBjb25mLmRpYWdyYW1NYXJnaW5YICsgXCIgLVwiICsgKGNvbmYuZGlhZ3JhbU1hcmdpblkgKyBleHRyYVZlcnRGb3JUaXRsZSkgKyBcIiBcIiArIHdpZHRoICsgXCIgXCIgKyAoaGVpZ2h0ICsgZXh0cmFWZXJ0Rm9yVGl0bGUpXG4gICk7XG4gIGxvZy5kZWJ1ZyhgbW9kZWxzOmAsIGJveCk7XG59O1xuY29uc3QgcmVuZGVyZXIgPSB7XG4gIGRyYXdQZXJzb25PclN5c3RlbUFycmF5OiBkcmF3QzRTaGFwZUFycmF5LFxuICBkcmF3Qm91bmRhcnksXG4gIHNldENvbmYsXG4gIGRyYXdcbn07XG5jb25zdCBnZXRTdHlsZXMgPSAob3B0aW9ucykgPT4gYC5wZXJzb24ge1xuICAgIHN0cm9rZTogJHtvcHRpb25zLnBlcnNvbkJvcmRlcn07XG4gICAgZmlsbDogJHtvcHRpb25zLnBlcnNvbkJrZ307XG4gIH1cbmA7XG5jb25zdCBzdHlsZXMgPSBnZXRTdHlsZXM7XG5jb25zdCBkaWFncmFtID0ge1xuICBwYXJzZXI6IHBhcnNlciQxLFxuICBkYixcbiAgcmVuZGVyZXIsXG4gIHN0eWxlcyxcbiAgaW5pdDogKHsgYzQsIHdyYXAgfSkgPT4ge1xuICAgIHJlbmRlcmVyLnNldENvbmYoYzQpO1xuICAgIGRiLnNldFdyYXAod3JhcCk7XG4gIH1cbn07XG5leHBvcnQge1xuICBkaWFncmFtXG59O1xuIiwKICAgICJpbXBvcnQgeyBzZWxlY3QgfSBmcm9tIFwiZDNcIjtcbmltcG9ydCB7IEsgYXMgZGVmYXVsdENvbmZpZywgcyBhcyBzZXRBY2NUaXRsZSwgZyBhcyBnZXRBY2NUaXRsZSwgYSBhcyBnZXRBY2NEZXNjcmlwdGlvbiwgYiBhcyBzZXRBY2NEZXNjcmlwdGlvbiwgcSBhcyBzZXREaWFncmFtVGl0bGUsIHQgYXMgZ2V0RGlhZ3JhbVRpdGxlLCBjIGFzIGdldENvbmZpZywgbCBhcyBsb2csIHUgYXMgdXRpbHMsIHYgYXMgY2xlYXIkMSwgZSBhcyBjb21tb24gfSBmcm9tIFwiLi9tZXJtYWlkLTZkYzcyOTkxLmpzXCI7XG52YXIgcGFyc2VyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBvID0gZnVuY3Rpb24oaywgdiwgbzIsIGwpIHtcbiAgICBmb3IgKG8yID0gbzIgfHwge30sIGwgPSBrLmxlbmd0aDsgbC0tOyBvMltrW2xdXSA9IHYpXG4gICAgICA7XG4gICAgcmV0dXJuIG8yO1xuICB9LCAkVjAgPSBbMSwgNF0sICRWMSA9IFsxLCAzXSwgJFYyID0gWzEsIDVdLCAkVjMgPSBbMSwgOCwgOSwgMTAsIDExLCAyNywgMzQsIDM2LCAzOCwgNDIsIDU4LCA4MSwgODIsIDgzLCA4NCwgODUsIDg2LCA5OSwgMTAyLCAxMDMsIDEwNiwgMTA4LCAxMTEsIDExMiwgMTEzLCAxMTgsIDExOSwgMTIwLCAxMjFdLCAkVjQgPSBbMiwgMl0sICRWNSA9IFsxLCAxM10sICRWNiA9IFsxLCAxNF0sICRWNyA9IFsxLCAxNV0sICRWOCA9IFsxLCAxNl0sICRWOSA9IFsxLCAyM10sICRWYSA9IFsxLCAyNV0sICRWYiA9IFsxLCAyNl0sICRWYyA9IFsxLCAyN10sICRWZCA9IFsxLCA0OV0sICRWZSA9IFsxLCA0OF0sICRWZiA9IFsxLCAyOV0sICRWZyA9IFsxLCAzMF0sICRWaCA9IFsxLCAzMV0sICRWaSA9IFsxLCAzMl0sICRWaiA9IFsxLCAzM10sICRWayA9IFsxLCA0NF0sICRWbCA9IFsxLCA0Nl0sICRWbSA9IFsxLCA0Ml0sICRWbiA9IFsxLCA0N10sICRWbyA9IFsxLCA0M10sICRWcCA9IFsxLCA1MF0sICRWcSA9IFsxLCA0NV0sICRWciA9IFsxLCA1MV0sICRWcyA9IFsxLCA1Ml0sICRWdCA9IFsxLCAzNF0sICRWdSA9IFsxLCAzNV0sICRWdiA9IFsxLCAzNl0sICRWdyA9IFsxLCAzN10sICRWeCA9IFsxLCA1N10sICRWeSA9IFsxLCA4LCA5LCAxMCwgMTEsIDI3LCAzMiwgMzQsIDM2LCAzOCwgNDIsIDU4LCA4MSwgODIsIDgzLCA4NCwgODUsIDg2LCA5OSwgMTAyLCAxMDMsIDEwNiwgMTA4LCAxMTEsIDExMiwgMTEzLCAxMTgsIDExOSwgMTIwLCAxMjFdLCAkVnogPSBbMSwgNjFdLCAkVkEgPSBbMSwgNjBdLCAkVkIgPSBbMSwgNjJdLCAkVkMgPSBbOCwgOSwgMTEsIDczLCA3NV0sICRWRCA9IFsxLCA4OF0sICRWRSA9IFsxLCA5M10sICRWRiA9IFsxLCA5Ml0sICRWRyA9IFsxLCA4OV0sICRWSCA9IFsxLCA4NV0sICRWSSA9IFsxLCA5MV0sICRWSiA9IFsxLCA4N10sICRWSyA9IFsxLCA5NF0sICRWTCA9IFsxLCA5MF0sICRWTSA9IFsxLCA5NV0sICRWTiA9IFsxLCA4Nl0sICRWTyA9IFs4LCA5LCAxMCwgMTEsIDczLCA3NV0sICRWUCA9IFs4LCA5LCAxMCwgMTEsIDQ0LCA3MywgNzVdLCAkVlEgPSBbOCwgOSwgMTAsIDExLCAyOSwgNDIsIDQ0LCA0NiwgNDgsIDUwLCA1MiwgNTQsIDU2LCA1OCwgNjEsIDYzLCA2NSwgNjYsIDY4LCA3MywgNzUsIDg2LCA5OSwgMTAyLCAxMDMsIDEwNiwgMTA4LCAxMTEsIDExMiwgMTEzXSwgJFZSID0gWzgsIDksIDExLCA0MiwgNTgsIDczLCA3NSwgODYsIDk5LCAxMDIsIDEwMywgMTA2LCAxMDgsIDExMSwgMTEyLCAxMTNdLCAkVlMgPSBbNDIsIDU4LCA4NiwgOTksIDEwMiwgMTAzLCAxMDYsIDEwOCwgMTExLCAxMTIsIDExM10sICRWVCA9IFsxLCAxMjFdLCAkVlUgPSBbMSwgMTIwXSwgJFZWID0gWzEsIDEyOF0sICRWVyA9IFsxLCAxNDJdLCAkVlggPSBbMSwgMTQzXSwgJFZZID0gWzEsIDE0NF0sICRWWiA9IFsxLCAxNDVdLCAkVl8gPSBbMSwgMTMwXSwgJFYkID0gWzEsIDEzMl0sICRWMDEgPSBbMSwgMTM2XSwgJFYxMSA9IFsxLCAxMzddLCAkVjIxID0gWzEsIDEzOF0sICRWMzEgPSBbMSwgMTM5XSwgJFY0MSA9IFsxLCAxNDBdLCAkVjUxID0gWzEsIDE0MV0sICRWNjEgPSBbMSwgMTQ2XSwgJFY3MSA9IFsxLCAxNDddLCAkVjgxID0gWzEsIDEyNl0sICRWOTEgPSBbMSwgMTI3XSwgJFZhMSA9IFsxLCAxMzRdLCAkVmIxID0gWzEsIDEyOV0sICRWYzEgPSBbMSwgMTMzXSwgJFZkMSA9IFsxLCAxMzFdLCAkVmUxID0gWzgsIDksIDEwLCAxMSwgMjcsIDMyLCAzNCwgMzYsIDM4LCA0MiwgNTgsIDgxLCA4MiwgODMsIDg0LCA4NSwgODYsIDk5LCAxMDIsIDEwMywgMTA2LCAxMDgsIDExMSwgMTEyLCAxMTMsIDExOCwgMTE5LCAxMjAsIDEyMV0sICRWZjEgPSBbMSwgMTQ5XSwgJFZnMSA9IFs4LCA5LCAxMV0sICRWaDEgPSBbOCwgOSwgMTAsIDExLCAxNCwgNDIsIDU4LCA4NiwgMTAyLCAxMDMsIDEwNiwgMTA4LCAxMTEsIDExMiwgMTEzXSwgJFZpMSA9IFsxLCAxNjldLCAkVmoxID0gWzEsIDE2NV0sICRWazEgPSBbMSwgMTY2XSwgJFZsMSA9IFsxLCAxNzBdLCAkVm0xID0gWzEsIDE2N10sICRWbjEgPSBbMSwgMTY4XSwgJFZvMSA9IFs3NSwgMTEzLCAxMTZdLCAkVnAxID0gWzgsIDksIDEwLCAxMSwgMTIsIDE0LCAyNywgMjksIDMyLCA0MiwgNTgsIDczLCA4MSwgODIsIDgzLCA4NCwgODUsIDg2LCA4NywgMTAyLCAxMDYsIDEwOCwgMTExLCAxMTIsIDExM10sICRWcTEgPSBbMTAsIDEwM10sICRWcjEgPSBbMzEsIDQ3LCA0OSwgNTEsIDUzLCA1NSwgNjAsIDYyLCA2NCwgNjUsIDY3LCA2OSwgMTEzLCAxMTQsIDExNV0sICRWczEgPSBbMSwgMjM1XSwgJFZ0MSA9IFsxLCAyMzNdLCAkVnUxID0gWzEsIDIzN10sICRWdjEgPSBbMSwgMjMxXSwgJFZ3MSA9IFsxLCAyMzJdLCAkVngxID0gWzEsIDIzNF0sICRWeTEgPSBbMSwgMjM2XSwgJFZ6MSA9IFsxLCAyMzhdLCAkVkExID0gWzEsIDI1NV0sICRWQjEgPSBbOCwgOSwgMTEsIDEwM10sICRWQzEgPSBbOCwgOSwgMTAsIDExLCA1OCwgODEsIDEwMiwgMTAzLCAxMDYsIDEwNywgMTA4LCAxMDldO1xuICB2YXIgcGFyc2VyMiA9IHtcbiAgICB0cmFjZTogZnVuY3Rpb24gdHJhY2UoKSB7XG4gICAgfSxcbiAgICB5eToge30sXG4gICAgc3ltYm9sc186IHsgXCJlcnJvclwiOiAyLCBcInN0YXJ0XCI6IDMsIFwiZ3JhcGhDb25maWdcIjogNCwgXCJkb2N1bWVudFwiOiA1LCBcImxpbmVcIjogNiwgXCJzdGF0ZW1lbnRcIjogNywgXCJTRU1JXCI6IDgsIFwiTkVXTElORVwiOiA5LCBcIlNQQUNFXCI6IDEwLCBcIkVPRlwiOiAxMSwgXCJHUkFQSFwiOiAxMiwgXCJOT0RJUlwiOiAxMywgXCJESVJcIjogMTQsIFwiRmlyc3RTdG10U2VwYXJhdG9yXCI6IDE1LCBcImVuZGluZ1wiOiAxNiwgXCJlbmRUb2tlblwiOiAxNywgXCJzcGFjZUxpc3RcIjogMTgsIFwic3BhY2VMaXN0TmV3bGluZVwiOiAxOSwgXCJ2ZXJ0ZXhTdGF0ZW1lbnRcIjogMjAsIFwic2VwYXJhdG9yXCI6IDIxLCBcInN0eWxlU3RhdGVtZW50XCI6IDIyLCBcImxpbmtTdHlsZVN0YXRlbWVudFwiOiAyMywgXCJjbGFzc0RlZlN0YXRlbWVudFwiOiAyNCwgXCJjbGFzc1N0YXRlbWVudFwiOiAyNSwgXCJjbGlja1N0YXRlbWVudFwiOiAyNiwgXCJzdWJncmFwaFwiOiAyNywgXCJ0ZXh0Tm9UYWdzXCI6IDI4LCBcIlNRU1wiOiAyOSwgXCJ0ZXh0XCI6IDMwLCBcIlNRRVwiOiAzMSwgXCJlbmRcIjogMzIsIFwiZGlyZWN0aW9uXCI6IDMzLCBcImFjY190aXRsZVwiOiAzNCwgXCJhY2NfdGl0bGVfdmFsdWVcIjogMzUsIFwiYWNjX2Rlc2NyXCI6IDM2LCBcImFjY19kZXNjcl92YWx1ZVwiOiAzNywgXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCI6IDM4LCBcImxpbmtcIjogMzksIFwibm9kZVwiOiA0MCwgXCJzdHlsZWRWZXJ0ZXhcIjogNDEsIFwiQU1QXCI6IDQyLCBcInZlcnRleFwiOiA0MywgXCJTVFlMRV9TRVBBUkFUT1JcIjogNDQsIFwiaWRTdHJpbmdcIjogNDUsIFwiRE9VQkxFQ0lSQ0xFU1RBUlRcIjogNDYsIFwiRE9VQkxFQ0lSQ0xFRU5EXCI6IDQ3LCBcIlBTXCI6IDQ4LCBcIlBFXCI6IDQ5LCBcIigtXCI6IDUwLCBcIi0pXCI6IDUxLCBcIlNUQURJVU1TVEFSVFwiOiA1MiwgXCJTVEFESVVNRU5EXCI6IDUzLCBcIlNVQlJPVVRJTkVTVEFSVFwiOiA1NCwgXCJTVUJST1VUSU5FRU5EXCI6IDU1LCBcIlZFUlRFWF9XSVRIX1BST1BTX1NUQVJUXCI6IDU2LCBcIk5PREVfU1RSSU5HW2ZpZWxkXVwiOiA1NywgXCJDT0xPTlwiOiA1OCwgXCJOT0RFX1NUUklOR1t2YWx1ZV1cIjogNTksIFwiUElQRVwiOiA2MCwgXCJDWUxJTkRFUlNUQVJUXCI6IDYxLCBcIkNZTElOREVSRU5EXCI6IDYyLCBcIkRJQU1PTkRfU1RBUlRcIjogNjMsIFwiRElBTU9ORF9TVE9QXCI6IDY0LCBcIlRBR0VORFwiOiA2NSwgXCJUUkFQU1RBUlRcIjogNjYsIFwiVFJBUEVORFwiOiA2NywgXCJJTlZUUkFQU1RBUlRcIjogNjgsIFwiSU5WVFJBUEVORFwiOiA2OSwgXCJsaW5rU3RhdGVtZW50XCI6IDcwLCBcImFycm93VGV4dFwiOiA3MSwgXCJURVNUU1RSXCI6IDcyLCBcIlNUQVJUX0xJTktcIjogNzMsIFwiZWRnZVRleHRcIjogNzQsIFwiTElOS1wiOiA3NSwgXCJlZGdlVGV4dFRva2VuXCI6IDc2LCBcIlNUUlwiOiA3NywgXCJNRF9TVFJcIjogNzgsIFwidGV4dFRva2VuXCI6IDc5LCBcImtleXdvcmRzXCI6IDgwLCBcIlNUWUxFXCI6IDgxLCBcIkxJTktTVFlMRVwiOiA4MiwgXCJDTEFTU0RFRlwiOiA4MywgXCJDTEFTU1wiOiA4NCwgXCJDTElDS1wiOiA4NSwgXCJET1dOXCI6IDg2LCBcIlVQXCI6IDg3LCBcInRleHROb1RhZ3NUb2tlblwiOiA4OCwgXCJzdHlsZXNPcHRcIjogODksIFwiaWRTdHJpbmdbdmVydGV4XVwiOiA5MCwgXCJpZFN0cmluZ1tjbGFzc11cIjogOTEsIFwiQ0FMTEJBQ0tOQU1FXCI6IDkyLCBcIkNBTExCQUNLQVJHU1wiOiA5MywgXCJIUkVGXCI6IDk0LCBcIkxJTktfVEFSR0VUXCI6IDk1LCBcIlNUUltsaW5rXVwiOiA5NiwgXCJTVFJbdG9vbHRpcF1cIjogOTcsIFwiYWxwaGFOdW1cIjogOTgsIFwiREVGQVVMVFwiOiA5OSwgXCJudW1MaXN0XCI6IDEwMCwgXCJJTlRFUlBPTEFURVwiOiAxMDEsIFwiTlVNXCI6IDEwMiwgXCJDT01NQVwiOiAxMDMsIFwic3R5bGVcIjogMTA0LCBcInN0eWxlQ29tcG9uZW50XCI6IDEwNSwgXCJOT0RFX1NUUklOR1wiOiAxMDYsIFwiVU5JVFwiOiAxMDcsIFwiQlJLVFwiOiAxMDgsIFwiUENUXCI6IDEwOSwgXCJpZFN0cmluZ1Rva2VuXCI6IDExMCwgXCJNSU5VU1wiOiAxMTEsIFwiTVVMVFwiOiAxMTIsIFwiVU5JQ09ERV9URVhUXCI6IDExMywgXCJURVhUXCI6IDExNCwgXCJUQUdTVEFSVFwiOiAxMTUsIFwiRURHRV9URVhUXCI6IDExNiwgXCJhbHBoYU51bVRva2VuXCI6IDExNywgXCJkaXJlY3Rpb25fdGJcIjogMTE4LCBcImRpcmVjdGlvbl9idFwiOiAxMTksIFwiZGlyZWN0aW9uX3JsXCI6IDEyMCwgXCJkaXJlY3Rpb25fbHJcIjogMTIxLCBcIiRhY2NlcHRcIjogMCwgXCIkZW5kXCI6IDEgfSxcbiAgICB0ZXJtaW5hbHNfOiB7IDI6IFwiZXJyb3JcIiwgODogXCJTRU1JXCIsIDk6IFwiTkVXTElORVwiLCAxMDogXCJTUEFDRVwiLCAxMTogXCJFT0ZcIiwgMTI6IFwiR1JBUEhcIiwgMTM6IFwiTk9ESVJcIiwgMTQ6IFwiRElSXCIsIDI3OiBcInN1YmdyYXBoXCIsIDI5OiBcIlNRU1wiLCAzMTogXCJTUUVcIiwgMzI6IFwiZW5kXCIsIDM0OiBcImFjY190aXRsZVwiLCAzNTogXCJhY2NfdGl0bGVfdmFsdWVcIiwgMzY6IFwiYWNjX2Rlc2NyXCIsIDM3OiBcImFjY19kZXNjcl92YWx1ZVwiLCAzODogXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCIsIDQyOiBcIkFNUFwiLCA0NDogXCJTVFlMRV9TRVBBUkFUT1JcIiwgNDY6IFwiRE9VQkxFQ0lSQ0xFU1RBUlRcIiwgNDc6IFwiRE9VQkxFQ0lSQ0xFRU5EXCIsIDQ4OiBcIlBTXCIsIDQ5OiBcIlBFXCIsIDUwOiBcIigtXCIsIDUxOiBcIi0pXCIsIDUyOiBcIlNUQURJVU1TVEFSVFwiLCA1MzogXCJTVEFESVVNRU5EXCIsIDU0OiBcIlNVQlJPVVRJTkVTVEFSVFwiLCA1NTogXCJTVUJST1VUSU5FRU5EXCIsIDU2OiBcIlZFUlRFWF9XSVRIX1BST1BTX1NUQVJUXCIsIDU3OiBcIk5PREVfU1RSSU5HW2ZpZWxkXVwiLCA1ODogXCJDT0xPTlwiLCA1OTogXCJOT0RFX1NUUklOR1t2YWx1ZV1cIiwgNjA6IFwiUElQRVwiLCA2MTogXCJDWUxJTkRFUlNUQVJUXCIsIDYyOiBcIkNZTElOREVSRU5EXCIsIDYzOiBcIkRJQU1PTkRfU1RBUlRcIiwgNjQ6IFwiRElBTU9ORF9TVE9QXCIsIDY1OiBcIlRBR0VORFwiLCA2NjogXCJUUkFQU1RBUlRcIiwgNjc6IFwiVFJBUEVORFwiLCA2ODogXCJJTlZUUkFQU1RBUlRcIiwgNjk6IFwiSU5WVFJBUEVORFwiLCA3MjogXCJURVNUU1RSXCIsIDczOiBcIlNUQVJUX0xJTktcIiwgNzU6IFwiTElOS1wiLCA3NzogXCJTVFJcIiwgNzg6IFwiTURfU1RSXCIsIDgxOiBcIlNUWUxFXCIsIDgyOiBcIkxJTktTVFlMRVwiLCA4MzogXCJDTEFTU0RFRlwiLCA4NDogXCJDTEFTU1wiLCA4NTogXCJDTElDS1wiLCA4NjogXCJET1dOXCIsIDg3OiBcIlVQXCIsIDkwOiBcImlkU3RyaW5nW3ZlcnRleF1cIiwgOTE6IFwiaWRTdHJpbmdbY2xhc3NdXCIsIDkyOiBcIkNBTExCQUNLTkFNRVwiLCA5MzogXCJDQUxMQkFDS0FSR1NcIiwgOTQ6IFwiSFJFRlwiLCA5NTogXCJMSU5LX1RBUkdFVFwiLCA5NjogXCJTVFJbbGlua11cIiwgOTc6IFwiU1RSW3Rvb2x0aXBdXCIsIDk5OiBcIkRFRkFVTFRcIiwgMTAxOiBcIklOVEVSUE9MQVRFXCIsIDEwMjogXCJOVU1cIiwgMTAzOiBcIkNPTU1BXCIsIDEwNjogXCJOT0RFX1NUUklOR1wiLCAxMDc6IFwiVU5JVFwiLCAxMDg6IFwiQlJLVFwiLCAxMDk6IFwiUENUXCIsIDExMTogXCJNSU5VU1wiLCAxMTI6IFwiTVVMVFwiLCAxMTM6IFwiVU5JQ09ERV9URVhUXCIsIDExNDogXCJURVhUXCIsIDExNTogXCJUQUdTVEFSVFwiLCAxMTY6IFwiRURHRV9URVhUXCIsIDExODogXCJkaXJlY3Rpb25fdGJcIiwgMTE5OiBcImRpcmVjdGlvbl9idFwiLCAxMjA6IFwiZGlyZWN0aW9uX3JsXCIsIDEyMTogXCJkaXJlY3Rpb25fbHJcIiB9LFxuICAgIHByb2R1Y3Rpb25zXzogWzAsIFszLCAyXSwgWzUsIDBdLCBbNSwgMl0sIFs2LCAxXSwgWzYsIDFdLCBbNiwgMV0sIFs2LCAxXSwgWzYsIDFdLCBbNCwgMl0sIFs0LCAyXSwgWzQsIDJdLCBbNCwgM10sIFsxNiwgMl0sIFsxNiwgMV0sIFsxNywgMV0sIFsxNywgMV0sIFsxNywgMV0sIFsxNSwgMV0sIFsxNSwgMV0sIFsxNSwgMl0sIFsxOSwgMl0sIFsxOSwgMl0sIFsxOSwgMV0sIFsxOSwgMV0sIFsxOCwgMl0sIFsxOCwgMV0sIFs3LCAyXSwgWzcsIDJdLCBbNywgMl0sIFs3LCAyXSwgWzcsIDJdLCBbNywgMl0sIFs3LCA5XSwgWzcsIDZdLCBbNywgNF0sIFs3LCAxXSwgWzcsIDJdLCBbNywgMl0sIFs3LCAxXSwgWzIxLCAxXSwgWzIxLCAxXSwgWzIxLCAxXSwgWzIwLCAzXSwgWzIwLCA0XSwgWzIwLCAyXSwgWzIwLCAxXSwgWzQwLCAxXSwgWzQwLCA1XSwgWzQxLCAxXSwgWzQxLCAzXSwgWzQzLCA0XSwgWzQzLCA0XSwgWzQzLCA2XSwgWzQzLCA0XSwgWzQzLCA0XSwgWzQzLCA0XSwgWzQzLCA4XSwgWzQzLCA0XSwgWzQzLCA0XSwgWzQzLCA0XSwgWzQzLCA2XSwgWzQzLCA0XSwgWzQzLCA0XSwgWzQzLCA0XSwgWzQzLCA0XSwgWzQzLCA0XSwgWzQzLCAxXSwgWzM5LCAyXSwgWzM5LCAzXSwgWzM5LCAzXSwgWzM5LCAxXSwgWzM5LCAzXSwgWzc0LCAxXSwgWzc0LCAyXSwgWzc0LCAxXSwgWzc0LCAxXSwgWzcwLCAxXSwgWzcxLCAzXSwgWzMwLCAxXSwgWzMwLCAyXSwgWzMwLCAxXSwgWzMwLCAxXSwgWzgwLCAxXSwgWzgwLCAxXSwgWzgwLCAxXSwgWzgwLCAxXSwgWzgwLCAxXSwgWzgwLCAxXSwgWzgwLCAxXSwgWzgwLCAxXSwgWzgwLCAxXSwgWzgwLCAxXSwgWzgwLCAxXSwgWzI4LCAxXSwgWzI4LCAyXSwgWzI4LCAxXSwgWzI4LCAxXSwgWzI0LCA1XSwgWzI1LCA1XSwgWzI2LCAyXSwgWzI2LCA0XSwgWzI2LCAzXSwgWzI2LCA1XSwgWzI2LCAzXSwgWzI2LCA1XSwgWzI2LCA1XSwgWzI2LCA3XSwgWzI2LCAyXSwgWzI2LCA0XSwgWzI2LCAyXSwgWzI2LCA0XSwgWzI2LCA0XSwgWzI2LCA2XSwgWzIyLCA1XSwgWzIzLCA1XSwgWzIzLCA1XSwgWzIzLCA5XSwgWzIzLCA5XSwgWzIzLCA3XSwgWzIzLCA3XSwgWzEwMCwgMV0sIFsxMDAsIDNdLCBbODksIDFdLCBbODksIDNdLCBbMTA0LCAxXSwgWzEwNCwgMl0sIFsxMDUsIDFdLCBbMTA1LCAxXSwgWzEwNSwgMV0sIFsxMDUsIDFdLCBbMTA1LCAxXSwgWzEwNSwgMV0sIFsxMDUsIDFdLCBbMTA1LCAxXSwgWzExMCwgMV0sIFsxMTAsIDFdLCBbMTEwLCAxXSwgWzExMCwgMV0sIFsxMTAsIDFdLCBbMTEwLCAxXSwgWzExMCwgMV0sIFsxMTAsIDFdLCBbMTEwLCAxXSwgWzExMCwgMV0sIFsxMTAsIDFdLCBbNzksIDFdLCBbNzksIDFdLCBbNzksIDFdLCBbNzksIDFdLCBbODgsIDFdLCBbODgsIDFdLCBbODgsIDFdLCBbODgsIDFdLCBbODgsIDFdLCBbODgsIDFdLCBbODgsIDFdLCBbODgsIDFdLCBbODgsIDFdLCBbODgsIDFdLCBbODgsIDFdLCBbNzYsIDFdLCBbNzYsIDFdLCBbMTE3LCAxXSwgWzExNywgMV0sIFsxMTcsIDFdLCBbMTE3LCAxXSwgWzExNywgMV0sIFsxMTcsIDFdLCBbMTE3LCAxXSwgWzExNywgMV0sIFsxMTcsIDFdLCBbMTE3LCAxXSwgWzExNywgMV0sIFs0NSwgMV0sIFs0NSwgMl0sIFs5OCwgMV0sIFs5OCwgMl0sIFszMywgMV0sIFszMywgMV0sIFszMywgMV0sIFszMywgMV1dLFxuICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eXRleHQsIHl5bGVuZywgeXlsaW5lbm8sIHl5LCB5eXN0YXRlLCAkJCwgXyQpIHtcbiAgICAgIHZhciAkMCA9ICQkLmxlbmd0aCAtIDE7XG4gICAgICBzd2l0Y2ggKHl5c3RhdGUpIHtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHRoaXMuJCA9IFtdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KCQkWyQwXSkgfHwgJCRbJDBdLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCgkJFskMF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgIGNhc2UgMTc2OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICB5eS5zZXREaXJlY3Rpb24oXCJUQlwiKTtcbiAgICAgICAgICB0aGlzLiQgPSBcIlRCXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgeXkuc2V0RGlyZWN0aW9uKCQkWyQwIC0gMV0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXS5ub2RlcztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyODpcbiAgICAgICAgY2FzZSAyOTpcbiAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICB0aGlzLiQgPSBbXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMzpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5hZGRTdWJHcmFwaCgkJFskMCAtIDZdLCAkJFskMCAtIDFdLCAkJFskMCAtIDRdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5hZGRTdWJHcmFwaCgkJFskMCAtIDNdLCAkJFskMCAtIDFdLCAkJFskMCAtIDNdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNTpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5hZGRTdWJHcmFwaCh2b2lkIDAsICQkWyQwIC0gMV0sIHZvaWQgMCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5zZXRBY2NUaXRsZSh0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM4OlxuICAgICAgICBjYXNlIDM5OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS50cmltKCk7XG4gICAgICAgICAgeXkuc2V0QWNjRGVzY3JpcHRpb24odGhpcy4kKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MzpcbiAgICAgICAgICB5eS5hZGRMaW5rKCQkWyQwIC0gMl0uc3RtdCwgJCRbJDBdLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6ICQkWyQwXSwgbm9kZXM6ICQkWyQwXS5jb25jYXQoJCRbJDAgLSAyXS5ub2RlcykgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NDpcbiAgICAgICAgICB5eS5hZGRMaW5rKCQkWyQwIC0gM10uc3RtdCwgJCRbJDAgLSAxXSwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgdGhpcy4kID0geyBzdG10OiAkJFskMCAtIDFdLCBub2RlczogJCRbJDAgLSAxXS5jb25jYXQoJCRbJDAgLSAzXS5ub2RlcykgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NTpcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6ICQkWyQwIC0gMV0sIG5vZGVzOiAkJFskMCAtIDFdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDY6XG4gICAgICAgICAgdGhpcy4kID0geyBzdG10OiAkJFskMF0sIG5vZGVzOiAkJFskMF0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NzpcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDBdXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0ODpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDRdLmNvbmNhdCgkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ5OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1MDpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDJdO1xuICAgICAgICAgIHl5LnNldENsYXNzKCQkWyQwIC0gMl0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTE6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAzXTtcbiAgICAgICAgICB5eS5hZGRWZXJ0ZXgoJCRbJDAgLSAzXSwgJCRbJDAgLSAxXSwgXCJzcXVhcmVcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTI6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAzXTtcbiAgICAgICAgICB5eS5hZGRWZXJ0ZXgoJCRbJDAgLSAzXSwgJCRbJDAgLSAxXSwgXCJkb3VibGVjaXJjbGVcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTM6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSA1XTtcbiAgICAgICAgICB5eS5hZGRWZXJ0ZXgoJCRbJDAgLSA1XSwgJCRbJDAgLSAyXSwgXCJjaXJjbGVcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTQ6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAzXTtcbiAgICAgICAgICB5eS5hZGRWZXJ0ZXgoJCRbJDAgLSAzXSwgJCRbJDAgLSAxXSwgXCJlbGxpcHNlXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU1OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuYWRkVmVydGV4KCQkWyQwIC0gM10sICQkWyQwIC0gMV0sIFwic3RhZGl1bVwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1NjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDNdO1xuICAgICAgICAgIHl5LmFkZFZlcnRleCgkJFskMCAtIDNdLCAkJFskMCAtIDFdLCBcInN1YnJvdXRpbmVcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTc6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSA3XTtcbiAgICAgICAgICB5eS5hZGRWZXJ0ZXgoJCRbJDAgLSA3XSwgJCRbJDAgLSAxXSwgXCJyZWN0XCIsIHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIE9iamVjdC5mcm9tRW50cmllcyhbWyQkWyQwIC0gNV0sICQkWyQwIC0gM11dXSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU4OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuYWRkVmVydGV4KCQkWyQwIC0gM10sICQkWyQwIC0gMV0sIFwiY3lsaW5kZXJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTk6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAzXTtcbiAgICAgICAgICB5eS5hZGRWZXJ0ZXgoJCRbJDAgLSAzXSwgJCRbJDAgLSAxXSwgXCJyb3VuZFwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2MDpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDNdO1xuICAgICAgICAgIHl5LmFkZFZlcnRleCgkJFskMCAtIDNdLCAkJFskMCAtIDFdLCBcImRpYW1vbmRcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjE6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSA1XTtcbiAgICAgICAgICB5eS5hZGRWZXJ0ZXgoJCRbJDAgLSA1XSwgJCRbJDAgLSAyXSwgXCJoZXhhZ29uXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDYyOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuYWRkVmVydGV4KCQkWyQwIC0gM10sICQkWyQwIC0gMV0sIFwib2RkXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDYzOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuYWRkVmVydGV4KCQkWyQwIC0gM10sICQkWyQwIC0gMV0sIFwidHJhcGV6b2lkXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY0OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuYWRkVmVydGV4KCQkWyQwIC0gM10sICQkWyQwIC0gMV0sIFwiaW52X3RyYXBlem9pZFwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2NTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDNdO1xuICAgICAgICAgIHl5LmFkZFZlcnRleCgkJFskMCAtIDNdLCAkJFskMCAtIDFdLCBcImxlYW5fcmlnaHRcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjY6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAzXTtcbiAgICAgICAgICB5eS5hZGRWZXJ0ZXgoJCRbJDAgLSAzXSwgJCRbJDAgLSAxXSwgXCJsZWFuX2xlZnRcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjc6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIHl5LmFkZFZlcnRleCgkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY4OlxuICAgICAgICAgICQkWyQwIC0gMV0udGV4dCA9ICQkWyQwXTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY5OlxuICAgICAgICBjYXNlIDcwOlxuICAgICAgICAgICQkWyQwIC0gMl0udGV4dCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAyXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3MTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzI6XG4gICAgICAgICAgdmFyIGluZiA9IHl5LmRlc3RydWN0TGluaygkJFskMF0sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIHRoaXMuJCA9IHsgXCJ0eXBlXCI6IGluZi50eXBlLCBcInN0cm9rZVwiOiBpbmYuc3Ryb2tlLCBcImxlbmd0aFwiOiBpbmYubGVuZ3RoLCBcInRleHRcIjogJCRbJDAgLSAxXSB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDczOlxuICAgICAgICAgIHRoaXMuJCA9IHsgdGV4dDogJCRbJDBdLCB0eXBlOiBcInRleHRcIiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDc0OlxuICAgICAgICAgIHRoaXMuJCA9IHsgdGV4dDogJCRbJDAgLSAxXS50ZXh0ICsgXCJcIiArICQkWyQwXSwgdHlwZTogJCRbJDAgLSAxXS50eXBlIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzU6XG4gICAgICAgICAgdGhpcy4kID0geyB0ZXh0OiAkJFskMF0sIHR5cGU6IFwic3RyaW5nXCIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3NjpcbiAgICAgICAgICB0aGlzLiQgPSB7IHRleHQ6ICQkWyQwXSwgdHlwZTogXCJtYXJrZG93blwiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzc6XG4gICAgICAgICAgdmFyIGluZiA9IHl5LmRlc3RydWN0TGluaygkJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9IHsgXCJ0eXBlXCI6IGluZi50eXBlLCBcInN0cm9rZVwiOiBpbmYuc3Ryb2tlLCBcImxlbmd0aFwiOiBpbmYubGVuZ3RoIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzg6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3OTpcbiAgICAgICAgICB0aGlzLiQgPSB7IHRleHQ6ICQkWyQwXSwgdHlwZTogXCJ0ZXh0XCIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4MDpcbiAgICAgICAgICB0aGlzLiQgPSB7IHRleHQ6ICQkWyQwIC0gMV0udGV4dCArIFwiXCIgKyAkJFskMF0sIHR5cGU6ICQkWyQwIC0gMV0udHlwZSB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDgxOlxuICAgICAgICAgIHRoaXMuJCA9IHsgdGV4dDogJCRbJDBdLCB0eXBlOiBcInN0cmluZ1wiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODI6XG4gICAgICAgIGNhc2UgOTc6XG4gICAgICAgICAgdGhpcy4kID0geyB0ZXh0OiAkJFskMF0sIHR5cGU6IFwibWFya2Rvd25cIiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDk0OlxuICAgICAgICAgIHRoaXMuJCA9IHsgdGV4dDogJCRbJDBdLCB0eXBlOiBcInRleHRcIiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDk1OlxuICAgICAgICAgIHRoaXMuJCA9IHsgdGV4dDogJCRbJDAgLSAxXS50ZXh0ICsgXCJcIiArICQkWyQwXSwgdHlwZTogJCRbJDAgLSAxXS50eXBlIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTY6XG4gICAgICAgICAgdGhpcy4kID0geyB0ZXh0OiAkJFskMF0sIHR5cGU6IFwidGV4dFwiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTg6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSA0XTtcbiAgICAgICAgICB5eS5hZGRDbGFzcygkJFskMCAtIDJdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDk5OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gNF07XG4gICAgICAgICAgeXkuc2V0Q2xhc3MoJCRbJDAgLSAyXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDA6XG4gICAgICAgIGNhc2UgMTA4OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgeXkuc2V0Q2xpY2tFdmVudCgkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEwMTpcbiAgICAgICAgY2FzZSAxMDk6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAzXTtcbiAgICAgICAgICB5eS5zZXRDbGlja0V2ZW50KCQkWyQwIC0gM10sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIHl5LnNldFRvb2x0aXAoJCRbJDAgLSAzXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDI6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAyXTtcbiAgICAgICAgICB5eS5zZXRDbGlja0V2ZW50KCQkWyQwIC0gMl0sICQkWyQwIC0gMV0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTAzOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gNF07XG4gICAgICAgICAgeXkuc2V0Q2xpY2tFdmVudCgkJFskMCAtIDRdLCAkJFskMCAtIDNdLCAkJFskMCAtIDJdKTtcbiAgICAgICAgICB5eS5zZXRUb29sdGlwKCQkWyQwIC0gNF0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTA0OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMl07XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDJdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEwNTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDRdO1xuICAgICAgICAgIHl5LnNldExpbmsoJCRbJDAgLSA0XSwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgeXkuc2V0VG9vbHRpcCgkJFskMCAtIDRdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEwNjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDRdO1xuICAgICAgICAgIHl5LnNldExpbmsoJCRbJDAgLSA0XSwgJCRbJDAgLSAyXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDc6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSA2XTtcbiAgICAgICAgICB5eS5zZXRMaW5rKCQkWyQwIC0gNl0sICQkWyQwIC0gNF0sICQkWyQwXSk7XG4gICAgICAgICAgeXkuc2V0VG9vbHRpcCgkJFskMCAtIDZdLCAkJFskMCAtIDJdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTA6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICB5eS5zZXRMaW5rKCQkWyQwIC0gMV0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTExOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDNdLCAkJFskMCAtIDJdKTtcbiAgICAgICAgICB5eS5zZXRUb29sdGlwKCQkWyQwIC0gM10sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTEyOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDNdLCAkJFskMCAtIDJdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExMzpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDVdO1xuICAgICAgICAgIHl5LnNldExpbmsoJCRbJDAgLSA1XSwgJCRbJDAgLSA0XSwgJCRbJDBdKTtcbiAgICAgICAgICB5eS5zZXRUb29sdGlwKCQkWyQwIC0gNV0sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExNDpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDRdO1xuICAgICAgICAgIHl5LmFkZFZlcnRleCgkJFskMCAtIDJdLCB2b2lkIDAsIHZvaWQgMCwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTU6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSA0XTtcbiAgICAgICAgICB5eS51cGRhdGVMaW5rKFskJFskMCAtIDJdXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTY6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSA0XTtcbiAgICAgICAgICB5eS51cGRhdGVMaW5rKCQkWyQwIC0gMl0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTE3OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gOF07XG4gICAgICAgICAgeXkudXBkYXRlTGlua0ludGVycG9sYXRlKFskJFskMCAtIDZdXSwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgeXkudXBkYXRlTGluayhbJCRbJDAgLSA2XV0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTE4OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gOF07XG4gICAgICAgICAgeXkudXBkYXRlTGlua0ludGVycG9sYXRlKCQkWyQwIC0gNl0sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIHl5LnVwZGF0ZUxpbmsoJCRbJDAgLSA2XSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTk6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSA2XTtcbiAgICAgICAgICB5eS51cGRhdGVMaW5rSW50ZXJwb2xhdGUoWyQkWyQwIC0gNF1dLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyMDpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDZdO1xuICAgICAgICAgIHl5LnVwZGF0ZUxpbmtJbnRlcnBvbGF0ZSgkJFskMCAtIDRdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyMTpcbiAgICAgICAgY2FzZSAxMjM6XG4gICAgICAgICAgdGhpcy4kID0gWyQkWyQwXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTIyOlxuICAgICAgICBjYXNlIDEyNDpcbiAgICAgICAgICAkJFskMCAtIDJdLnB1c2goJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDJdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyNjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdICsgJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE3NDpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTc1OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV0gKyBcIlwiICsgJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE3NzpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdICsgXCJcIiArICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNzg6XG4gICAgICAgICAgdGhpcy4kID0geyBzdG10OiBcImRpclwiLCB2YWx1ZTogXCJUQlwiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTc5OlxuICAgICAgICAgIHRoaXMuJCA9IHsgc3RtdDogXCJkaXJcIiwgdmFsdWU6IFwiQlRcIiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE4MDpcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6IFwiZGlyXCIsIHZhbHVlOiBcIlJMXCIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxODE6XG4gICAgICAgICAgdGhpcy4kID0geyBzdG10OiBcImRpclwiLCB2YWx1ZTogXCJMUlwiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSxcbiAgICB0YWJsZTogW3sgMzogMSwgNDogMiwgOTogJFYwLCAxMDogJFYxLCAxMjogJFYyIH0sIHsgMTogWzNdIH0sIG8oJFYzLCAkVjQsIHsgNTogNiB9KSwgeyA0OiA3LCA5OiAkVjAsIDEwOiAkVjEsIDEyOiAkVjIgfSwgeyA0OiA4LCA5OiAkVjAsIDEwOiAkVjEsIDEyOiAkVjIgfSwgeyAxMzogWzEsIDldLCAxNDogWzEsIDEwXSB9LCB7IDE6IFsyLCAxXSwgNjogMTEsIDc6IDEyLCA4OiAkVjUsIDk6ICRWNiwgMTA6ICRWNywgMTE6ICRWOCwgMjA6IDE3LCAyMjogMTgsIDIzOiAxOSwgMjQ6IDIwLCAyNTogMjEsIDI2OiAyMiwgMjc6ICRWOSwgMzM6IDI0LCAzNDogJFZhLCAzNjogJFZiLCAzODogJFZjLCA0MDogMjgsIDQxOiAzOCwgNDI6ICRWZCwgNDM6IDM5LCA0NTogNDAsIDU4OiAkVmUsIDgxOiAkVmYsIDgyOiAkVmcsIDgzOiAkVmgsIDg0OiAkVmksIDg1OiAkVmosIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTA6IDQxLCAxMTE6ICRWcSwgMTEyOiAkVnIsIDExMzogJFZzLCAxMTg6ICRWdCwgMTE5OiAkVnUsIDEyMDogJFZ2LCAxMjE6ICRWdyB9LCBvKCRWMywgWzIsIDldKSwgbygkVjMsIFsyLCAxMF0pLCBvKCRWMywgWzIsIDExXSksIHsgODogWzEsIDU0XSwgOTogWzEsIDU1XSwgMTA6ICRWeCwgMTU6IDUzLCAxODogNTYgfSwgbygkVnksIFsyLCAzXSksIG8oJFZ5LCBbMiwgNF0pLCBvKCRWeSwgWzIsIDVdKSwgbygkVnksIFsyLCA2XSksIG8oJFZ5LCBbMiwgN10pLCBvKCRWeSwgWzIsIDhdKSwgeyA4OiAkVnosIDk6ICRWQSwgMTE6ICRWQiwgMjE6IDU4LCAzOTogNTksIDcwOiA2MywgNzM6IFsxLCA2NF0sIDc1OiBbMSwgNjVdIH0sIHsgODogJFZ6LCA5OiAkVkEsIDExOiAkVkIsIDIxOiA2NiB9LCB7IDg6ICRWeiwgOTogJFZBLCAxMTogJFZCLCAyMTogNjcgfSwgeyA4OiAkVnosIDk6ICRWQSwgMTE6ICRWQiwgMjE6IDY4IH0sIHsgODogJFZ6LCA5OiAkVkEsIDExOiAkVkIsIDIxOiA2OSB9LCB7IDg6ICRWeiwgOTogJFZBLCAxMTogJFZCLCAyMTogNzAgfSwgeyA4OiAkVnosIDk6ICRWQSwgMTA6IFsxLCA3MV0sIDExOiAkVkIsIDIxOiA3MiB9LCBvKCRWeSwgWzIsIDM2XSksIHsgMzU6IFsxLCA3M10gfSwgeyAzNzogWzEsIDc0XSB9LCBvKCRWeSwgWzIsIDM5XSksIG8oJFZDLCBbMiwgNDZdLCB7IDE4OiA3NSwgMTA6ICRWeCB9KSwgeyAxMDogWzEsIDc2XSB9LCB7IDEwOiBbMSwgNzddIH0sIHsgMTA6IFsxLCA3OF0gfSwgeyAxMDogWzEsIDc5XSB9LCB7IDE0OiAkVkQsIDQyOiAkVkUsIDU4OiAkVkYsIDc3OiBbMSwgODNdLCA4NjogJFZHLCA5MjogWzEsIDgwXSwgOTQ6IFsxLCA4MV0sIDk4OiA4MiwgMTAyOiAkVkgsIDEwMzogJFZJLCAxMDY6ICRWSiwgMTA4OiAkVkssIDExMTogJFZMLCAxMTI6ICRWTSwgMTEzOiAkVk4sIDExNzogODQgfSwgbygkVnksIFsyLCAxNzhdKSwgbygkVnksIFsyLCAxNzldKSwgbygkVnksIFsyLCAxODBdKSwgbygkVnksIFsyLCAxODFdKSwgbygkVk8sIFsyLCA0N10pLCBvKCRWTywgWzIsIDQ5XSwgeyA0NDogWzEsIDk2XSB9KSwgbygkVlAsIFsyLCA2N10sIHsgMTEwOiAxMDksIDI5OiBbMSwgOTddLCA0MjogJFZkLCA0NjogWzEsIDk4XSwgNDg6IFsxLCA5OV0sIDUwOiBbMSwgMTAwXSwgNTI6IFsxLCAxMDFdLCA1NDogWzEsIDEwMl0sIDU2OiBbMSwgMTAzXSwgNTg6ICRWZSwgNjE6IFsxLCAxMDRdLCA2MzogWzEsIDEwNV0sIDY1OiBbMSwgMTA2XSwgNjY6IFsxLCAxMDddLCA2ODogWzEsIDEwOF0sIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTE6ICRWcSwgMTEyOiAkVnIsIDExMzogJFZzIH0pLCBvKCRWUSwgWzIsIDE3NF0pLCBvKCRWUSwgWzIsIDEzNV0pLCBvKCRWUSwgWzIsIDEzNl0pLCBvKCRWUSwgWzIsIDEzN10pLCBvKCRWUSwgWzIsIDEzOF0pLCBvKCRWUSwgWzIsIDEzOV0pLCBvKCRWUSwgWzIsIDE0MF0pLCBvKCRWUSwgWzIsIDE0MV0pLCBvKCRWUSwgWzIsIDE0Ml0pLCBvKCRWUSwgWzIsIDE0M10pLCBvKCRWUSwgWzIsIDE0NF0pLCBvKCRWUSwgWzIsIDE0NV0pLCBvKCRWMywgWzIsIDEyXSksIG8oJFYzLCBbMiwgMThdKSwgbygkVjMsIFsyLCAxOV0pLCB7IDk6IFsxLCAxMTBdIH0sIG8oJFZSLCBbMiwgMjZdLCB7IDE4OiAxMTEsIDEwOiAkVnggfSksIG8oJFZ5LCBbMiwgMjddKSwgeyA0MDogMTEyLCA0MTogMzgsIDQyOiAkVmQsIDQzOiAzOSwgNDU6IDQwLCA1ODogJFZlLCA4NjogJFZrLCA5OTogJFZsLCAxMDI6ICRWbSwgMTAzOiAkVm4sIDEwNjogJFZvLCAxMDg6ICRWcCwgMTEwOiA0MSwgMTExOiAkVnEsIDExMjogJFZyLCAxMTM6ICRWcyB9LCBvKCRWeSwgWzIsIDQwXSksIG8oJFZ5LCBbMiwgNDFdKSwgbygkVnksIFsyLCA0Ml0pLCBvKCRWUywgWzIsIDcxXSwgeyA3MTogMTEzLCA2MDogWzEsIDExNV0sIDcyOiBbMSwgMTE0XSB9KSwgeyA3NDogMTE2LCA3NjogMTE3LCA3NzogWzEsIDExOF0sIDc4OiBbMSwgMTE5XSwgMTEzOiAkVlQsIDExNjogJFZVIH0sIG8oWzQyLCA1OCwgNjAsIDcyLCA4NiwgOTksIDEwMiwgMTAzLCAxMDYsIDEwOCwgMTExLCAxMTIsIDExM10sIFsyLCA3N10pLCBvKCRWeSwgWzIsIDI4XSksIG8oJFZ5LCBbMiwgMjldKSwgbygkVnksIFsyLCAzMF0pLCBvKCRWeSwgWzIsIDMxXSksIG8oJFZ5LCBbMiwgMzJdKSwgeyAxMDogJFZWLCAxMjogJFZXLCAxNDogJFZYLCAyNzogJFZZLCAyODogMTIyLCAzMjogJFZaLCA0MjogJFZfLCA1ODogJFYkLCA3MzogJFYwMSwgNzc6IFsxLCAxMjRdLCA3ODogWzEsIDEyNV0sIDgwOiAxMzUsIDgxOiAkVjExLCA4MjogJFYyMSwgODM6ICRWMzEsIDg0OiAkVjQxLCA4NTogJFY1MSwgODY6ICRWNjEsIDg3OiAkVjcxLCA4ODogMTIzLCAxMDI6ICRWODEsIDEwNjogJFY5MSwgMTA4OiAkVmExLCAxMTE6ICRWYjEsIDExMjogJFZjMSwgMTEzOiAkVmQxIH0sIG8oJFZlMSwgJFY0LCB7IDU6IDE0OCB9KSwgbygkVnksIFsyLCAzN10pLCBvKCRWeSwgWzIsIDM4XSksIG8oJFZDLCBbMiwgNDVdLCB7IDQyOiAkVmYxIH0pLCB7IDQyOiAkVmQsIDQ1OiAxNTAsIDU4OiAkVmUsIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTA6IDQxLCAxMTE6ICRWcSwgMTEyOiAkVnIsIDExMzogJFZzIH0sIHsgOTk6IFsxLCAxNTFdLCAxMDA6IDE1MiwgMTAyOiBbMSwgMTUzXSB9LCB7IDQyOiAkVmQsIDQ1OiAxNTQsIDU4OiAkVmUsIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTA6IDQxLCAxMTE6ICRWcSwgMTEyOiAkVnIsIDExMzogJFZzIH0sIHsgNDI6ICRWZCwgNDU6IDE1NSwgNTg6ICRWZSwgODY6ICRWaywgOTk6ICRWbCwgMTAyOiAkVm0sIDEwMzogJFZuLCAxMDY6ICRWbywgMTA4OiAkVnAsIDExMDogNDEsIDExMTogJFZxLCAxMTI6ICRWciwgMTEzOiAkVnMgfSwgbygkVmcxLCBbMiwgMTAwXSwgeyAxMDogWzEsIDE1Nl0sIDkzOiBbMSwgMTU3XSB9KSwgeyA3NzogWzEsIDE1OF0gfSwgbygkVmcxLCBbMiwgMTA4XSwgeyAxMTc6IDE2MCwgMTA6IFsxLCAxNTldLCAxNDogJFZELCA0MjogJFZFLCA1ODogJFZGLCA4NjogJFZHLCAxMDI6ICRWSCwgMTAzOiAkVkksIDEwNjogJFZKLCAxMDg6ICRWSywgMTExOiAkVkwsIDExMjogJFZNLCAxMTM6ICRWTiB9KSwgbygkVmcxLCBbMiwgMTEwXSwgeyAxMDogWzEsIDE2MV0gfSksIG8oJFZoMSwgWzIsIDE3Nl0pLCBvKCRWaDEsIFsyLCAxNjNdKSwgbygkVmgxLCBbMiwgMTY0XSksIG8oJFZoMSwgWzIsIDE2NV0pLCBvKCRWaDEsIFsyLCAxNjZdKSwgbygkVmgxLCBbMiwgMTY3XSksIG8oJFZoMSwgWzIsIDE2OF0pLCBvKCRWaDEsIFsyLCAxNjldKSwgbygkVmgxLCBbMiwgMTcwXSksIG8oJFZoMSwgWzIsIDE3MV0pLCBvKCRWaDEsIFsyLCAxNzJdKSwgbygkVmgxLCBbMiwgMTczXSksIHsgNDI6ICRWZCwgNDU6IDE2MiwgNTg6ICRWZSwgODY6ICRWaywgOTk6ICRWbCwgMTAyOiAkVm0sIDEwMzogJFZuLCAxMDY6ICRWbywgMTA4OiAkVnAsIDExMDogNDEsIDExMTogJFZxLCAxMTI6ICRWciwgMTEzOiAkVnMgfSwgeyAzMDogMTYzLCA2NTogJFZpMSwgNzc6ICRWajEsIDc4OiAkVmsxLCA3OTogMTY0LCAxMTM6ICRWbDEsIDExNDogJFZtMSwgMTE1OiAkVm4xIH0sIHsgMzA6IDE3MSwgNjU6ICRWaTEsIDc3OiAkVmoxLCA3ODogJFZrMSwgNzk6IDE2NCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDMwOiAxNzMsIDQ4OiBbMSwgMTcyXSwgNjU6ICRWaTEsIDc3OiAkVmoxLCA3ODogJFZrMSwgNzk6IDE2NCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDMwOiAxNzQsIDY1OiAkVmkxLCA3NzogJFZqMSwgNzg6ICRWazEsIDc5OiAxNjQsIDExMzogJFZsMSwgMTE0OiAkVm0xLCAxMTU6ICRWbjEgfSwgeyAzMDogMTc1LCA2NTogJFZpMSwgNzc6ICRWajEsIDc4OiAkVmsxLCA3OTogMTY0LCAxMTM6ICRWbDEsIDExNDogJFZtMSwgMTE1OiAkVm4xIH0sIHsgMzA6IDE3NiwgNjU6ICRWaTEsIDc3OiAkVmoxLCA3ODogJFZrMSwgNzk6IDE2NCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDEwNjogWzEsIDE3N10gfSwgeyAzMDogMTc4LCA2NTogJFZpMSwgNzc6ICRWajEsIDc4OiAkVmsxLCA3OTogMTY0LCAxMTM6ICRWbDEsIDExNDogJFZtMSwgMTE1OiAkVm4xIH0sIHsgMzA6IDE3OSwgNjM6IFsxLCAxODBdLCA2NTogJFZpMSwgNzc6ICRWajEsIDc4OiAkVmsxLCA3OTogMTY0LCAxMTM6ICRWbDEsIDExNDogJFZtMSwgMTE1OiAkVm4xIH0sIHsgMzA6IDE4MSwgNjU6ICRWaTEsIDc3OiAkVmoxLCA3ODogJFZrMSwgNzk6IDE2NCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDMwOiAxODIsIDY1OiAkVmkxLCA3NzogJFZqMSwgNzg6ICRWazEsIDc5OiAxNjQsIDExMzogJFZsMSwgMTE0OiAkVm0xLCAxMTU6ICRWbjEgfSwgeyAzMDogMTgzLCA2NTogJFZpMSwgNzc6ICRWajEsIDc4OiAkVmsxLCA3OTogMTY0LCAxMTM6ICRWbDEsIDExNDogJFZtMSwgMTE1OiAkVm4xIH0sIG8oJFZRLCBbMiwgMTc1XSksIG8oJFYzLCBbMiwgMjBdKSwgbygkVlIsIFsyLCAyNV0pLCBvKCRWQywgWzIsIDQzXSwgeyAxODogMTg0LCAxMDogJFZ4IH0pLCBvKCRWUywgWzIsIDY4XSwgeyAxMDogWzEsIDE4NV0gfSksIHsgMTA6IFsxLCAxODZdIH0sIHsgMzA6IDE4NywgNjU6ICRWaTEsIDc3OiAkVmoxLCA3ODogJFZrMSwgNzk6IDE2NCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDc1OiBbMSwgMTg4XSwgNzY6IDE4OSwgMTEzOiAkVlQsIDExNjogJFZVIH0sIG8oJFZvMSwgWzIsIDczXSksIG8oJFZvMSwgWzIsIDc1XSksIG8oJFZvMSwgWzIsIDc2XSksIG8oJFZvMSwgWzIsIDE2MV0pLCBvKCRWbzEsIFsyLCAxNjJdKSwgeyA4OiAkVnosIDk6ICRWQSwgMTA6ICRWViwgMTE6ICRWQiwgMTI6ICRWVywgMTQ6ICRWWCwgMjE6IDE5MSwgMjc6ICRWWSwgMjk6IFsxLCAxOTBdLCAzMjogJFZaLCA0MjogJFZfLCA1ODogJFYkLCA3MzogJFYwMSwgODA6IDEzNSwgODE6ICRWMTEsIDgyOiAkVjIxLCA4MzogJFYzMSwgODQ6ICRWNDEsIDg1OiAkVjUxLCA4NjogJFY2MSwgODc6ICRWNzEsIDg4OiAxOTIsIDEwMjogJFY4MSwgMTA2OiAkVjkxLCAxMDg6ICRWYTEsIDExMTogJFZiMSwgMTEyOiAkVmMxLCAxMTM6ICRWZDEgfSwgbygkVnAxLCBbMiwgOTRdKSwgbygkVnAxLCBbMiwgOTZdKSwgbygkVnAxLCBbMiwgOTddKSwgbygkVnAxLCBbMiwgMTUwXSksIG8oJFZwMSwgWzIsIDE1MV0pLCBvKCRWcDEsIFsyLCAxNTJdKSwgbygkVnAxLCBbMiwgMTUzXSksIG8oJFZwMSwgWzIsIDE1NF0pLCBvKCRWcDEsIFsyLCAxNTVdKSwgbygkVnAxLCBbMiwgMTU2XSksIG8oJFZwMSwgWzIsIDE1N10pLCBvKCRWcDEsIFsyLCAxNThdKSwgbygkVnAxLCBbMiwgMTU5XSksIG8oJFZwMSwgWzIsIDE2MF0pLCBvKCRWcDEsIFsyLCA4M10pLCBvKCRWcDEsIFsyLCA4NF0pLCBvKCRWcDEsIFsyLCA4NV0pLCBvKCRWcDEsIFsyLCA4Nl0pLCBvKCRWcDEsIFsyLCA4N10pLCBvKCRWcDEsIFsyLCA4OF0pLCBvKCRWcDEsIFsyLCA4OV0pLCBvKCRWcDEsIFsyLCA5MF0pLCBvKCRWcDEsIFsyLCA5MV0pLCBvKCRWcDEsIFsyLCA5Ml0pLCBvKCRWcDEsIFsyLCA5M10pLCB7IDY6IDExLCA3OiAxMiwgODogJFY1LCA5OiAkVjYsIDEwOiAkVjcsIDExOiAkVjgsIDIwOiAxNywgMjI6IDE4LCAyMzogMTksIDI0OiAyMCwgMjU6IDIxLCAyNjogMjIsIDI3OiAkVjksIDMyOiBbMSwgMTkzXSwgMzM6IDI0LCAzNDogJFZhLCAzNjogJFZiLCAzODogJFZjLCA0MDogMjgsIDQxOiAzOCwgNDI6ICRWZCwgNDM6IDM5LCA0NTogNDAsIDU4OiAkVmUsIDgxOiAkVmYsIDgyOiAkVmcsIDgzOiAkVmgsIDg0OiAkVmksIDg1OiAkVmosIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTA6IDQxLCAxMTE6ICRWcSwgMTEyOiAkVnIsIDExMzogJFZzLCAxMTg6ICRWdCwgMTE5OiAkVnUsIDEyMDogJFZ2LCAxMjE6ICRWdyB9LCB7IDEwOiAkVngsIDE4OiAxOTQgfSwgeyAxMDogWzEsIDE5NV0sIDQyOiAkVmQsIDU4OiAkVmUsIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTA6IDEwOSwgMTExOiAkVnEsIDExMjogJFZyLCAxMTM6ICRWcyB9LCB7IDEwOiBbMSwgMTk2XSB9LCB7IDEwOiBbMSwgMTk3XSwgMTAzOiBbMSwgMTk4XSB9LCBvKCRWcTEsIFsyLCAxMjFdKSwgeyAxMDogWzEsIDE5OV0sIDQyOiAkVmQsIDU4OiAkVmUsIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTA6IDEwOSwgMTExOiAkVnEsIDExMjogJFZyLCAxMTM6ICRWcyB9LCB7IDEwOiBbMSwgMjAwXSwgNDI6ICRWZCwgNTg6ICRWZSwgODY6ICRWaywgOTk6ICRWbCwgMTAyOiAkVm0sIDEwMzogJFZuLCAxMDY6ICRWbywgMTA4OiAkVnAsIDExMDogMTA5LCAxMTE6ICRWcSwgMTEyOiAkVnIsIDExMzogJFZzIH0sIHsgNzc6IFsxLCAyMDFdIH0sIG8oJFZnMSwgWzIsIDEwMl0sIHsgMTA6IFsxLCAyMDJdIH0pLCBvKCRWZzEsIFsyLCAxMDRdLCB7IDEwOiBbMSwgMjAzXSB9KSwgeyA3NzogWzEsIDIwNF0gfSwgbygkVmgxLCBbMiwgMTc3XSksIHsgNzc6IFsxLCAyMDVdLCA5NTogWzEsIDIwNl0gfSwgbygkVk8sIFsyLCA1MF0sIHsgMTEwOiAxMDksIDQyOiAkVmQsIDU4OiAkVmUsIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTE6ICRWcSwgMTEyOiAkVnIsIDExMzogJFZzIH0pLCB7IDMxOiBbMSwgMjA3XSwgNjU6ICRWaTEsIDc5OiAyMDgsIDExMzogJFZsMSwgMTE0OiAkVm0xLCAxMTU6ICRWbjEgfSwgbygkVnIxLCBbMiwgNzldKSwgbygkVnIxLCBbMiwgODFdKSwgbygkVnIxLCBbMiwgODJdKSwgbygkVnIxLCBbMiwgMTQ2XSksIG8oJFZyMSwgWzIsIDE0N10pLCBvKCRWcjEsIFsyLCAxNDhdKSwgbygkVnIxLCBbMiwgMTQ5XSksIHsgNDc6IFsxLCAyMDldLCA2NTogJFZpMSwgNzk6IDIwOCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDMwOiAyMTAsIDY1OiAkVmkxLCA3NzogJFZqMSwgNzg6ICRWazEsIDc5OiAxNjQsIDExMzogJFZsMSwgMTE0OiAkVm0xLCAxMTU6ICRWbjEgfSwgeyA0OTogWzEsIDIxMV0sIDY1OiAkVmkxLCA3OTogMjA4LCAxMTM6ICRWbDEsIDExNDogJFZtMSwgMTE1OiAkVm4xIH0sIHsgNTE6IFsxLCAyMTJdLCA2NTogJFZpMSwgNzk6IDIwOCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDUzOiBbMSwgMjEzXSwgNjU6ICRWaTEsIDc5OiAyMDgsIDExMzogJFZsMSwgMTE0OiAkVm0xLCAxMTU6ICRWbjEgfSwgeyA1NTogWzEsIDIxNF0sIDY1OiAkVmkxLCA3OTogMjA4LCAxMTM6ICRWbDEsIDExNDogJFZtMSwgMTE1OiAkVm4xIH0sIHsgNTg6IFsxLCAyMTVdIH0sIHsgNjI6IFsxLCAyMTZdLCA2NTogJFZpMSwgNzk6IDIwOCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDY0OiBbMSwgMjE3XSwgNjU6ICRWaTEsIDc5OiAyMDgsIDExMzogJFZsMSwgMTE0OiAkVm0xLCAxMTU6ICRWbjEgfSwgeyAzMDogMjE4LCA2NTogJFZpMSwgNzc6ICRWajEsIDc4OiAkVmsxLCA3OTogMTY0LCAxMTM6ICRWbDEsIDExNDogJFZtMSwgMTE1OiAkVm4xIH0sIHsgMzE6IFsxLCAyMTldLCA2NTogJFZpMSwgNzk6IDIwOCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDY1OiAkVmkxLCA2NzogWzEsIDIyMF0sIDY5OiBbMSwgMjIxXSwgNzk6IDIwOCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDY1OiAkVmkxLCA2NzogWzEsIDIyM10sIDY5OiBbMSwgMjIyXSwgNzk6IDIwOCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCBvKCRWQywgWzIsIDQ0XSwgeyA0MjogJFZmMSB9KSwgbygkVlMsIFsyLCA3MF0pLCBvKCRWUywgWzIsIDY5XSksIHsgNjA6IFsxLCAyMjRdLCA2NTogJFZpMSwgNzk6IDIwOCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCBvKCRWUywgWzIsIDcyXSksIG8oJFZvMSwgWzIsIDc0XSksIHsgMzA6IDIyNSwgNjU6ICRWaTEsIDc3OiAkVmoxLCA3ODogJFZrMSwgNzk6IDE2NCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCBvKCRWZTEsICRWNCwgeyA1OiAyMjYgfSksIG8oJFZwMSwgWzIsIDk1XSksIG8oJFZ5LCBbMiwgMzVdKSwgeyA0MTogMjI3LCA0MjogJFZkLCA0MzogMzksIDQ1OiA0MCwgNTg6ICRWZSwgODY6ICRWaywgOTk6ICRWbCwgMTAyOiAkVm0sIDEwMzogJFZuLCAxMDY6ICRWbywgMTA4OiAkVnAsIDExMDogNDEsIDExMTogJFZxLCAxMTI6ICRWciwgMTEzOiAkVnMgfSwgeyAxMDogJFZzMSwgNTg6ICRWdDEsIDgxOiAkVnUxLCA4OTogMjI4LCAxMDI6ICRWdjEsIDEwNDogMjI5LCAxMDU6IDIzMCwgMTA2OiAkVncxLCAxMDc6ICRWeDEsIDEwODogJFZ5MSwgMTA5OiAkVnoxIH0sIHsgMTA6ICRWczEsIDU4OiAkVnQxLCA4MTogJFZ1MSwgODk6IDIzOSwgMTAxOiBbMSwgMjQwXSwgMTAyOiAkVnYxLCAxMDQ6IDIyOSwgMTA1OiAyMzAsIDEwNjogJFZ3MSwgMTA3OiAkVngxLCAxMDg6ICRWeTEsIDEwOTogJFZ6MSB9LCB7IDEwOiAkVnMxLCA1ODogJFZ0MSwgODE6ICRWdTEsIDg5OiAyNDEsIDEwMTogWzEsIDI0Ml0sIDEwMjogJFZ2MSwgMTA0OiAyMjksIDEwNTogMjMwLCAxMDY6ICRWdzEsIDEwNzogJFZ4MSwgMTA4OiAkVnkxLCAxMDk6ICRWejEgfSwgeyAxMDI6IFsxLCAyNDNdIH0sIHsgMTA6ICRWczEsIDU4OiAkVnQxLCA4MTogJFZ1MSwgODk6IDI0NCwgMTAyOiAkVnYxLCAxMDQ6IDIyOSwgMTA1OiAyMzAsIDEwNjogJFZ3MSwgMTA3OiAkVngxLCAxMDg6ICRWeTEsIDEwOTogJFZ6MSB9LCB7IDQyOiAkVmQsIDQ1OiAyNDUsIDU4OiAkVmUsIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTA6IDQxLCAxMTE6ICRWcSwgMTEyOiAkVnIsIDExMzogJFZzIH0sIG8oJFZnMSwgWzIsIDEwMV0pLCB7IDc3OiBbMSwgMjQ2XSB9LCB7IDc3OiBbMSwgMjQ3XSwgOTU6IFsxLCAyNDhdIH0sIG8oJFZnMSwgWzIsIDEwOV0pLCBvKCRWZzEsIFsyLCAxMTFdLCB7IDEwOiBbMSwgMjQ5XSB9KSwgbygkVmcxLCBbMiwgMTEyXSksIG8oJFZQLCBbMiwgNTFdKSwgbygkVnIxLCBbMiwgODBdKSwgbygkVlAsIFsyLCA1Ml0pLCB7IDQ5OiBbMSwgMjUwXSwgNjU6ICRWaTEsIDc5OiAyMDgsIDExMzogJFZsMSwgMTE0OiAkVm0xLCAxMTU6ICRWbjEgfSwgbygkVlAsIFsyLCA1OV0pLCBvKCRWUCwgWzIsIDU0XSksIG8oJFZQLCBbMiwgNTVdKSwgbygkVlAsIFsyLCA1Nl0pLCB7IDEwNjogWzEsIDI1MV0gfSwgbygkVlAsIFsyLCA1OF0pLCBvKCRWUCwgWzIsIDYwXSksIHsgNjQ6IFsxLCAyNTJdLCA2NTogJFZpMSwgNzk6IDIwOCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCBvKCRWUCwgWzIsIDYyXSksIG8oJFZQLCBbMiwgNjNdKSwgbygkVlAsIFsyLCA2NV0pLCBvKCRWUCwgWzIsIDY0XSksIG8oJFZQLCBbMiwgNjZdKSwgbyhbMTAsIDQyLCA1OCwgODYsIDk5LCAxMDIsIDEwMywgMTA2LCAxMDgsIDExMSwgMTEyLCAxMTNdLCBbMiwgNzhdKSwgeyAzMTogWzEsIDI1M10sIDY1OiAkVmkxLCA3OTogMjA4LCAxMTM6ICRWbDEsIDExNDogJFZtMSwgMTE1OiAkVm4xIH0sIHsgNjogMTEsIDc6IDEyLCA4OiAkVjUsIDk6ICRWNiwgMTA6ICRWNywgMTE6ICRWOCwgMjA6IDE3LCAyMjogMTgsIDIzOiAxOSwgMjQ6IDIwLCAyNTogMjEsIDI2OiAyMiwgMjc6ICRWOSwgMzI6IFsxLCAyNTRdLCAzMzogMjQsIDM0OiAkVmEsIDM2OiAkVmIsIDM4OiAkVmMsIDQwOiAyOCwgNDE6IDM4LCA0MjogJFZkLCA0MzogMzksIDQ1OiA0MCwgNTg6ICRWZSwgODE6ICRWZiwgODI6ICRWZywgODM6ICRWaCwgODQ6ICRWaSwgODU6ICRWaiwgODY6ICRWaywgOTk6ICRWbCwgMTAyOiAkVm0sIDEwMzogJFZuLCAxMDY6ICRWbywgMTA4OiAkVnAsIDExMDogNDEsIDExMTogJFZxLCAxMTI6ICRWciwgMTEzOiAkVnMsIDExODogJFZ0LCAxMTk6ICRWdSwgMTIwOiAkVnYsIDEyMTogJFZ3IH0sIG8oJFZPLCBbMiwgNDhdKSwgbygkVmcxLCBbMiwgMTE0XSwgeyAxMDM6ICRWQTEgfSksIG8oJFZCMSwgWzIsIDEyM10sIHsgMTA1OiAyNTYsIDEwOiAkVnMxLCA1ODogJFZ0MSwgODE6ICRWdTEsIDEwMjogJFZ2MSwgMTA2OiAkVncxLCAxMDc6ICRWeDEsIDEwODogJFZ5MSwgMTA5OiAkVnoxIH0pLCBvKCRWQzEsIFsyLCAxMjVdKSwgbygkVkMxLCBbMiwgMTI3XSksIG8oJFZDMSwgWzIsIDEyOF0pLCBvKCRWQzEsIFsyLCAxMjldKSwgbygkVkMxLCBbMiwgMTMwXSksIG8oJFZDMSwgWzIsIDEzMV0pLCBvKCRWQzEsIFsyLCAxMzJdKSwgbygkVkMxLCBbMiwgMTMzXSksIG8oJFZDMSwgWzIsIDEzNF0pLCBvKCRWZzEsIFsyLCAxMTVdLCB7IDEwMzogJFZBMSB9KSwgeyAxMDogWzEsIDI1N10gfSwgbygkVmcxLCBbMiwgMTE2XSwgeyAxMDM6ICRWQTEgfSksIHsgMTA6IFsxLCAyNThdIH0sIG8oJFZxMSwgWzIsIDEyMl0pLCBvKCRWZzEsIFsyLCA5OF0sIHsgMTAzOiAkVkExIH0pLCBvKCRWZzEsIFsyLCA5OV0sIHsgMTEwOiAxMDksIDQyOiAkVmQsIDU4OiAkVmUsIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTE6ICRWcSwgMTEyOiAkVnIsIDExMzogJFZzIH0pLCBvKCRWZzEsIFsyLCAxMDNdKSwgbygkVmcxLCBbMiwgMTA1XSwgeyAxMDogWzEsIDI1OV0gfSksIG8oJFZnMSwgWzIsIDEwNl0pLCB7IDk1OiBbMSwgMjYwXSB9LCB7IDQ5OiBbMSwgMjYxXSB9LCB7IDYwOiBbMSwgMjYyXSB9LCB7IDY0OiBbMSwgMjYzXSB9LCB7IDg6ICRWeiwgOTogJFZBLCAxMTogJFZCLCAyMTogMjY0IH0sIG8oJFZ5LCBbMiwgMzRdKSwgeyAxMDogJFZzMSwgNTg6ICRWdDEsIDgxOiAkVnUxLCAxMDI6ICRWdjEsIDEwNDogMjY1LCAxMDU6IDIzMCwgMTA2OiAkVncxLCAxMDc6ICRWeDEsIDEwODogJFZ5MSwgMTA5OiAkVnoxIH0sIG8oJFZDMSwgWzIsIDEyNl0pLCB7IDE0OiAkVkQsIDQyOiAkVkUsIDU4OiAkVkYsIDg2OiAkVkcsIDk4OiAyNjYsIDEwMjogJFZILCAxMDM6ICRWSSwgMTA2OiAkVkosIDEwODogJFZLLCAxMTE6ICRWTCwgMTEyOiAkVk0sIDExMzogJFZOLCAxMTc6IDg0IH0sIHsgMTQ6ICRWRCwgNDI6ICRWRSwgNTg6ICRWRiwgODY6ICRWRywgOTg6IDI2NywgMTAyOiAkVkgsIDEwMzogJFZJLCAxMDY6ICRWSiwgMTA4OiAkVkssIDExMTogJFZMLCAxMTI6ICRWTSwgMTEzOiAkVk4sIDExNzogODQgfSwgeyA5NTogWzEsIDI2OF0gfSwgbygkVmcxLCBbMiwgMTEzXSksIG8oJFZQLCBbMiwgNTNdKSwgeyAzMDogMjY5LCA2NTogJFZpMSwgNzc6ICRWajEsIDc4OiAkVmsxLCA3OTogMTY0LCAxMTM6ICRWbDEsIDExNDogJFZtMSwgMTE1OiAkVm4xIH0sIG8oJFZQLCBbMiwgNjFdKSwgbygkVmUxLCAkVjQsIHsgNTogMjcwIH0pLCBvKCRWQjEsIFsyLCAxMjRdLCB7IDEwNTogMjU2LCAxMDogJFZzMSwgNTg6ICRWdDEsIDgxOiAkVnUxLCAxMDI6ICRWdjEsIDEwNjogJFZ3MSwgMTA3OiAkVngxLCAxMDg6ICRWeTEsIDEwOTogJFZ6MSB9KSwgbygkVmcxLCBbMiwgMTE5XSwgeyAxMTc6IDE2MCwgMTA6IFsxLCAyNzFdLCAxNDogJFZELCA0MjogJFZFLCA1ODogJFZGLCA4NjogJFZHLCAxMDI6ICRWSCwgMTAzOiAkVkksIDEwNjogJFZKLCAxMDg6ICRWSywgMTExOiAkVkwsIDExMjogJFZNLCAxMTM6ICRWTiB9KSwgbygkVmcxLCBbMiwgMTIwXSwgeyAxMTc6IDE2MCwgMTA6IFsxLCAyNzJdLCAxNDogJFZELCA0MjogJFZFLCA1ODogJFZGLCA4NjogJFZHLCAxMDI6ICRWSCwgMTAzOiAkVkksIDEwNjogJFZKLCAxMDg6ICRWSywgMTExOiAkVkwsIDExMjogJFZNLCAxMTM6ICRWTiB9KSwgbygkVmcxLCBbMiwgMTA3XSksIHsgMzE6IFsxLCAyNzNdLCA2NTogJFZpMSwgNzk6IDIwOCwgMTEzOiAkVmwxLCAxMTQ6ICRWbTEsIDExNTogJFZuMSB9LCB7IDY6IDExLCA3OiAxMiwgODogJFY1LCA5OiAkVjYsIDEwOiAkVjcsIDExOiAkVjgsIDIwOiAxNywgMjI6IDE4LCAyMzogMTksIDI0OiAyMCwgMjU6IDIxLCAyNjogMjIsIDI3OiAkVjksIDMyOiBbMSwgMjc0XSwgMzM6IDI0LCAzNDogJFZhLCAzNjogJFZiLCAzODogJFZjLCA0MDogMjgsIDQxOiAzOCwgNDI6ICRWZCwgNDM6IDM5LCA0NTogNDAsIDU4OiAkVmUsIDgxOiAkVmYsIDgyOiAkVmcsIDgzOiAkVmgsIDg0OiAkVmksIDg1OiAkVmosIDg2OiAkVmssIDk5OiAkVmwsIDEwMjogJFZtLCAxMDM6ICRWbiwgMTA2OiAkVm8sIDEwODogJFZwLCAxMTA6IDQxLCAxMTE6ICRWcSwgMTEyOiAkVnIsIDExMzogJFZzLCAxMTg6ICRWdCwgMTE5OiAkVnUsIDEyMDogJFZ2LCAxMjE6ICRWdyB9LCB7IDEwOiAkVnMxLCA1ODogJFZ0MSwgODE6ICRWdTEsIDg5OiAyNzUsIDEwMjogJFZ2MSwgMTA0OiAyMjksIDEwNTogMjMwLCAxMDY6ICRWdzEsIDEwNzogJFZ4MSwgMTA4OiAkVnkxLCAxMDk6ICRWejEgfSwgeyAxMDogJFZzMSwgNTg6ICRWdDEsIDgxOiAkVnUxLCA4OTogMjc2LCAxMDI6ICRWdjEsIDEwNDogMjI5LCAxMDU6IDIzMCwgMTA2OiAkVncxLCAxMDc6ICRWeDEsIDEwODogJFZ5MSwgMTA5OiAkVnoxIH0sIG8oJFZQLCBbMiwgNTddKSwgbygkVnksIFsyLCAzM10pLCBvKCRWZzEsIFsyLCAxMTddLCB7IDEwMzogJFZBMSB9KSwgbygkVmcxLCBbMiwgMTE4XSwgeyAxMDM6ICRWQTEgfSldLFxuICAgIGRlZmF1bHRBY3Rpb25zOiB7fSxcbiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgaWYgKGhhc2gucmVjb3ZlcmFibGUpIHtcbiAgICAgICAgdGhpcy50cmFjZShzdHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKHN0cik7XG4gICAgICAgIGVycm9yLmhhc2ggPSBoYXNoO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzLCBzdGFjayA9IFswXSwgdHN0YWNrID0gW10sIHZzdGFjayA9IFtudWxsXSwgbHN0YWNrID0gW10sIHRhYmxlID0gdGhpcy50YWJsZSwgeXl0ZXh0ID0gXCJcIiwgeXlsaW5lbm8gPSAwLCB5eWxlbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxO1xuICAgICAgdmFyIGFyZ3MgPSBsc3RhY2suc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGxleGVyMiA9IE9iamVjdC5jcmVhdGUodGhpcy5sZXhlcik7XG4gICAgICB2YXIgc2hhcmVkU3RhdGUgPSB7IHl5OiB7fSB9O1xuICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnl5KSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHtcbiAgICAgICAgICBzaGFyZWRTdGF0ZS55eVtrXSA9IHRoaXMueXlba107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxleGVyMi5zZXRJbnB1dChpbnB1dCwgc2hhcmVkU3RhdGUueXkpO1xuICAgICAgc2hhcmVkU3RhdGUueXkubGV4ZXIgPSBsZXhlcjI7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5wYXJzZXIgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBsZXhlcjIueXlsbG9jID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbGV4ZXIyLnl5bGxvYyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICAgIHZhciByYW5nZXMgPSBsZXhlcjIub3B0aW9ucyAmJiBsZXhlcjIub3B0aW9ucy5yYW5nZXM7XG4gICAgICBpZiAodHlwZW9mIHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBsZXgyKCkge1xuICAgICAgICB2YXIgdG9rZW47XG4gICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpIHx8IGxleGVyMi5sZXgoKSB8fCBFT0Y7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBpZiAodG9rZW4gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgdHN0YWNrID0gdG9rZW47XG4gICAgICAgICAgICB0b2tlbiA9IHRzdGFjay5wb3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdG9rZW4gPSBzZWxmLnN5bWJvbHNfW3Rva2VuXSB8fCB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICB9XG4gICAgICB2YXIgc3ltYm9sLCBzdGF0ZSwgYWN0aW9uLCByLCB5eXZhbCA9IHt9LCBwLCBsZW4sIG5ld1N0YXRlLCBleHBlY3RlZDtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHN0YXRlID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXSkge1xuICAgICAgICAgIGFjdGlvbiA9IHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChzeW1ib2wgPT09IG51bGwgfHwgdHlwZW9mIHN5bWJvbCA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBzeW1ib2wgPSBsZXgyKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjdGlvbiA9IHRhYmxlW3N0YXRlXSAmJiB0YWJsZVtzdGF0ZV1bc3ltYm9sXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhYWN0aW9uLmxlbmd0aCB8fCAhYWN0aW9uWzBdKSB7XG4gICAgICAgICAgdmFyIGVyclN0ciA9IFwiXCI7XG4gICAgICAgICAgZXhwZWN0ZWQgPSBbXTtcbiAgICAgICAgICBmb3IgKHAgaW4gdGFibGVbc3RhdGVdKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50ZXJtaW5hbHNfW3BdICYmIHAgPiBURVJST1IpIHtcbiAgICAgICAgICAgICAgZXhwZWN0ZWQucHVzaChcIidcIiArIHRoaXMudGVybWluYWxzX1twXSArIFwiJ1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGxleGVyMi5zaG93UG9zaXRpb24pIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6XFxuXCIgKyBsZXhlcjIuc2hvd1Bvc2l0aW9uKCkgKyBcIlxcbkV4cGVjdGluZyBcIiArIGV4cGVjdGVkLmpvaW4oXCIsIFwiKSArIFwiLCBnb3QgJ1wiICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyBcIidcIjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjogVW5leHBlY3RlZCBcIiArIChzeW1ib2wgPT0gRU9GID8gXCJlbmQgb2YgaW5wdXRcIiA6IFwiJ1wiICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyBcIidcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucGFyc2VFcnJvcihlcnJTdHIsIHtcbiAgICAgICAgICAgIHRleHQ6IGxleGVyMi5tYXRjaCxcbiAgICAgICAgICAgIHRva2VuOiB0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wsXG4gICAgICAgICAgICBsaW5lOiBsZXhlcjIueXlsaW5lbm8sXG4gICAgICAgICAgICBsb2M6IHl5bG9jLFxuICAgICAgICAgICAgZXhwZWN0ZWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uWzBdIGluc3RhbmNlb2YgQXJyYXkgJiYgYWN0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXJzZSBFcnJvcjogbXVsdGlwbGUgYWN0aW9ucyBwb3NzaWJsZSBhdCBzdGF0ZTogXCIgKyBzdGF0ZSArIFwiLCB0b2tlbjogXCIgKyBzeW1ib2wpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uWzBdKSB7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgc3RhY2sucHVzaChzeW1ib2wpO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2gobGV4ZXIyLnl5dGV4dCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaChsZXhlcjIueXlsbG9jKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goYWN0aW9uWzFdKTtcbiAgICAgICAgICAgIHN5bWJvbCA9IG51bGw7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHl5bGVuZyA9IGxleGVyMi55eWxlbmc7XG4gICAgICAgICAgICAgIHl5dGV4dCA9IGxleGVyMi55eXRleHQ7XG4gICAgICAgICAgICAgIHl5bGluZW5vID0gbGV4ZXIyLnl5bGluZW5vO1xuICAgICAgICAgICAgICB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICBsZW4gPSB0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzFdO1xuICAgICAgICAgICAgeXl2YWwuJCA9IHZzdGFja1t2c3RhY2subGVuZ3RoIC0gbGVuXTtcbiAgICAgICAgICAgIHl5dmFsLl8kID0ge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJhbmdlcykge1xuICAgICAgICAgICAgICB5eXZhbC5fJC5yYW5nZSA9IFtcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLnJhbmdlWzBdLFxuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ucmFuZ2VbMV1cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHIgPSB0aGlzLnBlcmZvcm1BY3Rpb24uYXBwbHkoeXl2YWwsIFtcbiAgICAgICAgICAgICAgeXl0ZXh0LFxuICAgICAgICAgICAgICB5eWxlbmcsXG4gICAgICAgICAgICAgIHl5bGluZW5vLFxuICAgICAgICAgICAgICBzaGFyZWRTdGF0ZS55eSxcbiAgICAgICAgICAgICAgYWN0aW9uWzFdLFxuICAgICAgICAgICAgICB2c3RhY2ssXG4gICAgICAgICAgICAgIGxzdGFja1xuICAgICAgICAgICAgXS5jb25jYXQoYXJncykpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlbikge1xuICAgICAgICAgICAgICBzdGFjayA9IHN0YWNrLnNsaWNlKDAsIC0xICogbGVuICogMik7XG4gICAgICAgICAgICAgIHZzdGFjayA9IHZzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICAgIGxzdGFjayA9IGxzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFjay5wdXNoKHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMF0pO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2goeXl2YWwuJCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaCh5eXZhbC5fJCk7XG4gICAgICAgICAgICBuZXdTdGF0ZSA9IHRhYmxlW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDJdXVtzdGFja1tzdGFjay5sZW5ndGggLSAxXV07XG4gICAgICAgICAgICBzdGFjay5wdXNoKG5ld1N0YXRlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH07XG4gIHZhciBsZXhlciA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBsZXhlcjIgPSB7XG4gICAgICBFT0Y6IDEsXG4gICAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgICBpZiAodGhpcy55eS5wYXJzZXIpIHtcbiAgICAgICAgICB0aGlzLnl5LnBhcnNlci5wYXJzZUVycm9yKHN0ciwgaGFzaCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHN0cik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXNldHMgdGhlIGxleGVyLCBzZXRzIG5ldyBpbnB1dFxuICAgICAgc2V0SW5wdXQ6IGZ1bmN0aW9uKGlucHV0LCB5eSkge1xuICAgICAgICB0aGlzLnl5ID0geXkgfHwgdGhpcy55eSB8fCB7fTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRoaXMuX2JhY2t0cmFjayA9IHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnl5bGluZW5vID0gdGhpcy55eWxlbmcgPSAwO1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrID0gW1wiSU5JVElBTFwiXTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IDAsXG4gICAgICAgICAgbGFzdF9saW5lOiAxLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiAwXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbMCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBjb25zdW1lcyBhbmQgcmV0dXJucyBvbmUgY2hhciBmcm9tIHRoZSBpbnB1dFxuICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY2ggPSB0aGlzLl9pbnB1dFswXTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gY2g7XG4gICAgICAgIHRoaXMueXlsZW5nKys7XG4gICAgICAgIHRoaXMub2Zmc2V0Kys7XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gY2g7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBjaDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2gubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vKys7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9saW5lKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9jb2x1bW4rKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlWzFdKys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZSgxKTtcbiAgICAgICAgcmV0dXJuIGNoO1xuICAgICAgfSxcbiAgICAgIC8vIHVuc2hpZnRzIG9uZSBjaGFyIChvciBhIHN0cmluZykgaW50byB0aGUgaW5wdXRcbiAgICAgIHVucHV0OiBmdW5jdGlvbihjaCkge1xuICAgICAgICB2YXIgbGVuID0gY2gubGVuZ3RoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGNoICsgdGhpcy5faW5wdXQ7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy55eXRleHQuc3Vic3RyKDAsIHRoaXMueXl0ZXh0Lmxlbmd0aCAtIGxlbik7XG4gICAgICAgIHRoaXMub2Zmc2V0IC09IGxlbjtcbiAgICAgICAgdmFyIG9sZExpbmVzID0gdGhpcy5tYXRjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLm1hdGNoID0gdGhpcy5tYXRjaC5zdWJzdHIoMCwgdGhpcy5tYXRjaC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gMSk7XG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyAtPSBsaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHZhciByID0gdGhpcy55eWxsb2MucmFuZ2U7XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyAobGluZXMubGVuZ3RoID09PSBvbGRMaW5lcy5sZW5ndGggPyB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gOiAwKSArIG9sZExpbmVzW29sZExpbmVzLmxlbmd0aCAtIGxpbmVzLmxlbmd0aF0ubGVuZ3RoIC0gbGluZXNbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIC0gbGVuXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbclswXSwgclswXSArIHRoaXMueXlsZW5nIC0gbGVuXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIGNhY2hlcyBtYXRjaGVkIHRleHQgYW5kIGFwcGVuZHMgaXQgb24gbmV4dCBhY3Rpb25cbiAgICAgIG1vcmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLl9tb3JlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIHNpZ25hbHMgdGhlIGxleGVyIHRoYXQgdGhpcyBydWxlIGZhaWxzIHRvIG1hdGNoIHRoZSBpbnB1dCwgc28gdGhlIG5leHQgbWF0Y2hpbmcgcnVsZSAocmVnZXgpIHNob3VsZCBiZSB0ZXN0ZWQgaW5zdGVhZC5cbiAgICAgIHJlamVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBZb3UgY2FuIG9ubHkgaW52b2tlIHJlamVjdCgpIGluIHRoZSBsZXhlciB3aGVuIHRoZSBsZXhlciBpcyBvZiB0aGUgYmFja3RyYWNraW5nIHBlcnN1YXNpb24gKG9wdGlvbnMuYmFja3RyYWNrX2xleGVyID0gdHJ1ZSkuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gcmV0YWluIGZpcnN0IG4gY2hhcmFjdGVycyBvZiB0aGUgbWF0Y2hcbiAgICAgIGxlc3M6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdGhpcy51bnB1dCh0aGlzLm1hdGNoLnNsaWNlKG4pKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyBhbHJlYWR5IG1hdGNoZWQgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBwYXN0SW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcGFzdCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIHRoaXMubWF0Y2gubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIChwYXN0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpICsgcGFzdC5zdWJzdHIoLTIwKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdXBjb21pbmcgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICB1cGNvbWluZ0lucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLm1hdGNoO1xuICAgICAgICBpZiAobmV4dC5sZW5ndGggPCAyMCkge1xuICAgICAgICAgIG5leHQgKz0gdGhpcy5faW5wdXQuc3Vic3RyKDAsIDIwIC0gbmV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAobmV4dC5zdWJzdHIoMCwgMjApICsgKG5leHQubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikpLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB0aGUgY2hhcmFjdGVyIHBvc2l0aW9uIHdoZXJlIHRoZSBsZXhpbmcgZXJyb3Igb2NjdXJyZWQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBzaG93UG9zaXRpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcHJlID0gdGhpcy5wYXN0SW5wdXQoKTtcbiAgICAgICAgdmFyIGMgPSBuZXcgQXJyYXkocHJlLmxlbmd0aCArIDEpLmpvaW4oXCItXCIpO1xuICAgICAgICByZXR1cm4gcHJlICsgdGhpcy51cGNvbWluZ0lucHV0KCkgKyBcIlxcblwiICsgYyArIFwiXlwiO1xuICAgICAgfSxcbiAgICAgIC8vIHRlc3QgdGhlIGxleGVkIHRva2VuOiByZXR1cm4gRkFMU0Ugd2hlbiBub3QgYSBtYXRjaCwgb3RoZXJ3aXNlIHJldHVybiB0b2tlblxuICAgICAgdGVzdF9tYXRjaDogZnVuY3Rpb24obWF0Y2gsIGluZGV4ZWRfcnVsZSkge1xuICAgICAgICB2YXIgdG9rZW4sIGxpbmVzLCBiYWNrdXA7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgYmFja3VwID0ge1xuICAgICAgICAgICAgeXlsaW5lbm86IHRoaXMueXlsaW5lbm8sXG4gICAgICAgICAgICB5eWxsb2M6IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHl5dGV4dDogdGhpcy55eXRleHQsXG4gICAgICAgICAgICBtYXRjaDogdGhpcy5tYXRjaCxcbiAgICAgICAgICAgIG1hdGNoZXM6IHRoaXMubWF0Y2hlcyxcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRoaXMubWF0Y2hlZCxcbiAgICAgICAgICAgIHl5bGVuZzogdGhpcy55eWxlbmcsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgX21vcmU6IHRoaXMuX21vcmUsXG4gICAgICAgICAgICBfaW5wdXQ6IHRoaXMuX2lucHV0LFxuICAgICAgICAgICAgeXk6IHRoaXMueXksXG4gICAgICAgICAgICBjb25kaXRpb25TdGFjazogdGhpcy5jb25kaXRpb25TdGFjay5zbGljZSgwKSxcbiAgICAgICAgICAgIGRvbmU6IHRoaXMuZG9uZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICAgIGJhY2t1cC55eWxsb2MucmFuZ2UgPSB0aGlzLnl5bGxvYy5yYW5nZS5zbGljZSgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMgPSBtYXRjaFswXS5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gKz0gbGluZXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmxhc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoIC0gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubWF0Y2goL1xccj9cXG4/LylbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4gKyBtYXRjaFswXS5sZW5ndGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2hlcyA9IG1hdGNoO1xuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFt0aGlzLm9mZnNldCwgdGhpcy5vZmZzZXQgKz0gdGhpcy55eWxlbmddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21vcmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UobWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IG1hdGNoWzBdO1xuICAgICAgICB0b2tlbiA9IHRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHRoaXMsIHRoaXMueXksIHRoaXMsIGluZGV4ZWRfcnVsZSwgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSAmJiB0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICBmb3IgKHZhciBrIGluIGJhY2t1cCkge1xuICAgICAgICAgICAgdGhpc1trXSA9IGJhY2t1cFtrXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCBpbiBpbnB1dFxuICAgICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmRvbmUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRva2VuLCBtYXRjaCwgdGVtcE1hdGNoLCBpbmRleDtcbiAgICAgICAgaWYgKCF0aGlzLl9tb3JlKSB7XG4gICAgICAgICAgdGhpcy55eXRleHQgPSBcIlwiO1xuICAgICAgICAgIHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBydWxlcyA9IHRoaXMuX2N1cnJlbnRSdWxlcygpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGVtcE1hdGNoID0gdGhpcy5faW5wdXQubWF0Y2godGhpcy5ydWxlc1tydWxlc1tpXV0pO1xuICAgICAgICAgIGlmICh0ZW1wTWF0Y2ggJiYgKCFtYXRjaCB8fCB0ZW1wTWF0Y2hbMF0ubGVuZ3RoID4gbWF0Y2hbMF0ubGVuZ3RoKSkge1xuICAgICAgICAgICAgbWF0Y2ggPSB0ZW1wTWF0Y2g7XG4gICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaCh0ZW1wTWF0Y2gsIHJ1bGVzW2ldKTtcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRpb25zLmZsZXgpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKG1hdGNoLCBydWxlc1tpbmRleF0pO1xuICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dCA9PT0gXCJcIikge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBVbnJlY29nbml6ZWQgdGV4dC5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIHRoYXQgaGFzIGEgdG9rZW5cbiAgICAgIGxleDogZnVuY3Rpb24gbGV4MigpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLm5leHQoKTtcbiAgICAgICAgaWYgKHIpIHtcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sZXgoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFjdGl2YXRlcyBhIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgKHB1c2hlcyB0aGUgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvbnRvIHRoZSBjb25kaXRpb24gc3RhY2spXG4gICAgICBiZWdpbjogZnVuY3Rpb24gYmVnaW4oY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sucHVzaChjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHBvcCB0aGUgcHJldmlvdXNseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9mZiB0aGUgY29uZGl0aW9uIHN0YWNrXG4gICAgICBwb3BTdGF0ZTogZnVuY3Rpb24gcG9wU3RhdGUoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxO1xuICAgICAgICBpZiAobiA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5wb3AoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1swXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHByb2R1Y2UgdGhlIGxleGVyIHJ1bGUgc2V0IHdoaWNoIGlzIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlXG4gICAgICBfY3VycmVudFJ1bGVzOiBmdW5jdGlvbiBfY3VycmVudFJ1bGVzKCkge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggJiYgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1t0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV1dLnJ1bGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbXCJJTklUSUFMXCJdLnJ1bGVzO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZTsgd2hlbiBhbiBpbmRleCBhcmd1bWVudCBpcyBwcm92aWRlZCBpdCBwcm9kdWNlcyB0aGUgTi10aCBwcmV2aW91cyBjb25kaXRpb24gc3RhdGUsIGlmIGF2YWlsYWJsZVxuICAgICAgdG9wU3RhdGU6IGZ1bmN0aW9uIHRvcFN0YXRlKG4pIHtcbiAgICAgICAgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMSAtIE1hdGguYWJzKG4gfHwgMCk7XG4gICAgICAgIGlmIChuID49IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1tuXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gXCJJTklUSUFMXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhbGlhcyBmb3IgYmVnaW4oY29uZGl0aW9uKVxuICAgICAgcHVzaFN0YXRlOiBmdW5jdGlvbiBwdXNoU3RhdGUoY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuYmVnaW4oY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0ZXMgY3VycmVudGx5IG9uIHRoZSBzdGFja1xuICAgICAgc3RhdGVTdGFja1NpemU6IGZ1bmN0aW9uIHN0YXRlU3RhY2tTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge30sXG4gICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXksIHl5XywgJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucywgWVlfU1RBUlQpIHtcbiAgICAgICAgc3dpdGNoICgkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zKSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY190aXRsZVwiKTtcbiAgICAgICAgICAgIHJldHVybiAzNDtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfdGl0bGVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiYWNjX2Rlc2NyXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjcl92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJjYWxsYmFja25hbWVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY2FsbGJhY2thcmdzXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIHJldHVybiA5MjtcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgIHJldHVybiA5MztcbiAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgcmV0dXJuIFwiTURfU1RSXCI7XG4gICAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwibWRfc3RyaW5nXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgIHJldHVybiBcIlNUUlwiO1xuICAgICAgICAgIGNhc2UgMTc6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJzdHJpbmdcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgICAgcmV0dXJuIDgxO1xuICAgICAgICAgIGNhc2UgMjA6XG4gICAgICAgICAgICByZXR1cm4gOTk7XG4gICAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICAgIHJldHVybiA4MjtcbiAgICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgICAgcmV0dXJuIDEwMTtcbiAgICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgICAgcmV0dXJuIDgzO1xuICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgICByZXR1cm4gODQ7XG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIHJldHVybiA5NDtcbiAgICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImNsaWNrXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjg6XG4gICAgICAgICAgICByZXR1cm4gODU7XG4gICAgICAgICAgY2FzZSAyOTpcbiAgICAgICAgICAgIGlmICh5eS5sZXguZmlyc3RHcmFwaCgpKSB7XG4gICAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJkaXJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gMTI7XG4gICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICAgIGlmICh5eS5sZXguZmlyc3RHcmFwaCgpKSB7XG4gICAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJkaXJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gMTI7XG4gICAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICAgIGlmICh5eS5sZXguZmlyc3RHcmFwaCgpKSB7XG4gICAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJkaXJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gMTI7XG4gICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAgIHJldHVybiAyNztcbiAgICAgICAgICBjYXNlIDMzOlxuICAgICAgICAgICAgcmV0dXJuIDMyO1xuICAgICAgICAgIGNhc2UgMzQ6XG4gICAgICAgICAgICByZXR1cm4gOTU7XG4gICAgICAgICAgY2FzZSAzNTpcbiAgICAgICAgICAgIHJldHVybiA5NTtcbiAgICAgICAgICBjYXNlIDM2OlxuICAgICAgICAgICAgcmV0dXJuIDk1O1xuICAgICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgICByZXR1cm4gOTU7XG4gICAgICAgICAgY2FzZSAzODpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiAxMztcbiAgICAgICAgICBjYXNlIDM5OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDE0O1xuICAgICAgICAgIGNhc2UgNDA6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gMTQ7XG4gICAgICAgICAgY2FzZSA0MTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiAxNDtcbiAgICAgICAgICBjYXNlIDQyOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDE0O1xuICAgICAgICAgIGNhc2UgNDM6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gMTQ7XG4gICAgICAgICAgY2FzZSA0NDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiAxNDtcbiAgICAgICAgICBjYXNlIDQ1OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDE0O1xuICAgICAgICAgIGNhc2UgNDY6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gMTQ7XG4gICAgICAgICAgY2FzZSA0NzpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiAxNDtcbiAgICAgICAgICBjYXNlIDQ4OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDE0O1xuICAgICAgICAgIGNhc2UgNDk6XG4gICAgICAgICAgICByZXR1cm4gMTE4O1xuICAgICAgICAgIGNhc2UgNTA6XG4gICAgICAgICAgICByZXR1cm4gMTE5O1xuICAgICAgICAgIGNhc2UgNTE6XG4gICAgICAgICAgICByZXR1cm4gMTIwO1xuICAgICAgICAgIGNhc2UgNTI6XG4gICAgICAgICAgICByZXR1cm4gMTIxO1xuICAgICAgICAgIGNhc2UgNTM6XG4gICAgICAgICAgICByZXR1cm4gMTAyO1xuICAgICAgICAgIGNhc2UgNTQ6XG4gICAgICAgICAgICByZXR1cm4gMTA4O1xuICAgICAgICAgIGNhc2UgNTU6XG4gICAgICAgICAgICByZXR1cm4gNDQ7XG4gICAgICAgICAgY2FzZSA1NjpcbiAgICAgICAgICAgIHJldHVybiA1ODtcbiAgICAgICAgICBjYXNlIDU3OlxuICAgICAgICAgICAgcmV0dXJuIDQyO1xuICAgICAgICAgIGNhc2UgNTg6XG4gICAgICAgICAgICByZXR1cm4gODtcbiAgICAgICAgICBjYXNlIDU5OlxuICAgICAgICAgICAgcmV0dXJuIDEwMztcbiAgICAgICAgICBjYXNlIDYwOlxuICAgICAgICAgICAgcmV0dXJuIDExMjtcbiAgICAgICAgICBjYXNlIDYxOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDc1O1xuICAgICAgICAgIGNhc2UgNjI6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcImVkZ2VUZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDczO1xuICAgICAgICAgIGNhc2UgNjM6XG4gICAgICAgICAgICByZXR1cm4gMTE2O1xuICAgICAgICAgIGNhc2UgNjQ6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gNzU7XG4gICAgICAgICAgY2FzZSA2NTpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwidGhpY2tFZGdlVGV4dFwiKTtcbiAgICAgICAgICAgIHJldHVybiA3MztcbiAgICAgICAgICBjYXNlIDY2OlxuICAgICAgICAgICAgcmV0dXJuIDExNjtcbiAgICAgICAgICBjYXNlIDY3OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDc1O1xuICAgICAgICAgIGNhc2UgNjg6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcImRvdHRlZEVkZ2VUZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDczO1xuICAgICAgICAgIGNhc2UgNjk6XG4gICAgICAgICAgICByZXR1cm4gMTE2O1xuICAgICAgICAgIGNhc2UgNzA6XG4gICAgICAgICAgICByZXR1cm4gNzU7XG4gICAgICAgICAgY2FzZSA3MTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiA1MTtcbiAgICAgICAgICBjYXNlIDcyOlxuICAgICAgICAgICAgcmV0dXJuIFwiVEVYVFwiO1xuICAgICAgICAgIGNhc2UgNzM6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcImVsbGlwc2VUZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDUwO1xuICAgICAgICAgIGNhc2UgNzQ6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gNTM7XG4gICAgICAgICAgY2FzZSA3NTpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwidGV4dFwiKTtcbiAgICAgICAgICAgIHJldHVybiA1MjtcbiAgICAgICAgICBjYXNlIDc2OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDU1O1xuICAgICAgICAgIGNhc2UgNzc6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcInRleHRcIik7XG4gICAgICAgICAgICByZXR1cm4gNTQ7XG4gICAgICAgICAgY2FzZSA3ODpcbiAgICAgICAgICAgIHJldHVybiA1NjtcbiAgICAgICAgICBjYXNlIDc5OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJ0ZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDY1O1xuICAgICAgICAgIGNhc2UgODA6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gNjI7XG4gICAgICAgICAgY2FzZSA4MTpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwidGV4dFwiKTtcbiAgICAgICAgICAgIHJldHVybiA2MTtcbiAgICAgICAgICBjYXNlIDgyOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDQ3O1xuICAgICAgICAgIGNhc2UgODM6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcInRleHRcIik7XG4gICAgICAgICAgICByZXR1cm4gNDY7XG4gICAgICAgICAgY2FzZSA4NDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiA2NztcbiAgICAgICAgICBjYXNlIDg1OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDY5O1xuICAgICAgICAgIGNhc2UgODY6XG4gICAgICAgICAgICByZXR1cm4gMTE0O1xuICAgICAgICAgIGNhc2UgODc6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcInRyYXBUZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDY2O1xuICAgICAgICAgIGNhc2UgODg6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcInRyYXBUZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDY4O1xuICAgICAgICAgIGNhc2UgODk6XG4gICAgICAgICAgICByZXR1cm4gMTE1O1xuICAgICAgICAgIGNhc2UgOTA6XG4gICAgICAgICAgICByZXR1cm4gNjU7XG4gICAgICAgICAgY2FzZSA5MTpcbiAgICAgICAgICAgIHJldHVybiA4NztcbiAgICAgICAgICBjYXNlIDkyOlxuICAgICAgICAgICAgcmV0dXJuIFwiU0VQXCI7XG4gICAgICAgICAgY2FzZSA5MzpcbiAgICAgICAgICAgIHJldHVybiA4NjtcbiAgICAgICAgICBjYXNlIDk0OlxuICAgICAgICAgICAgcmV0dXJuIDExMjtcbiAgICAgICAgICBjYXNlIDk1OlxuICAgICAgICAgICAgcmV0dXJuIDEwODtcbiAgICAgICAgICBjYXNlIDk2OlxuICAgICAgICAgICAgcmV0dXJuIDQyO1xuICAgICAgICAgIGNhc2UgOTc6XG4gICAgICAgICAgICByZXR1cm4gMTA2O1xuICAgICAgICAgIGNhc2UgOTg6XG4gICAgICAgICAgICByZXR1cm4gMTExO1xuICAgICAgICAgIGNhc2UgOTk6XG4gICAgICAgICAgICByZXR1cm4gMTEzO1xuICAgICAgICAgIGNhc2UgMTAwOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDYwO1xuICAgICAgICAgIGNhc2UgMTAxOlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJ0ZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDYwO1xuICAgICAgICAgIGNhc2UgMTAyOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDQ5O1xuICAgICAgICAgIGNhc2UgMTAzOlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJ0ZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ4O1xuICAgICAgICAgIGNhc2UgMTA0OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDMxO1xuICAgICAgICAgIGNhc2UgMTA1OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJ0ZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDI5O1xuICAgICAgICAgIGNhc2UgMTA2OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDY0O1xuICAgICAgICAgIGNhc2UgMTA3OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJ0ZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDYzO1xuICAgICAgICAgIGNhc2UgMTA4OlxuICAgICAgICAgICAgcmV0dXJuIFwiVEVYVFwiO1xuICAgICAgICAgIGNhc2UgMTA5OlxuICAgICAgICAgICAgcmV0dXJuIFwiUVVPVEVcIjtcbiAgICAgICAgICBjYXNlIDExMDpcbiAgICAgICAgICAgIHJldHVybiA5O1xuICAgICAgICAgIGNhc2UgMTExOlxuICAgICAgICAgICAgcmV0dXJuIDEwO1xuICAgICAgICAgIGNhc2UgMTEyOlxuICAgICAgICAgICAgcmV0dXJuIDExO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcnVsZXM6IFsvXig/OmFjY1RpdGxlXFxzKjpcXHMqKS8sIC9eKD86KD8hXFxufHwpKlteXFxuXSopLywgL14oPzphY2NEZXNjclxccyo6XFxzKikvLCAvXig/Oig/IVxcbnx8KSpbXlxcbl0qKS8sIC9eKD86YWNjRGVzY3JcXHMqXFx7XFxzKikvLCAvXig/OltcXH1dKS8sIC9eKD86W15cXH1dKikvLCAvXig/OmNhbGxbXFxzXSspLywgL14oPzpcXChbXFxzXSpcXCkpLywgL14oPzpcXCgpLywgL14oPzpbXihdKikvLCAvXig/OlxcKSkvLCAvXig/OlteKV0qKS8sIC9eKD86W15gXCJdKykvLCAvXig/OltgXVtcIl0pLywgL14oPzpbXCJdW2BdKS8sIC9eKD86W15cIl0rKS8sIC9eKD86W1wiXSkvLCAvXig/OltcIl0pLywgL14oPzpzdHlsZVxcYikvLCAvXig/OmRlZmF1bHRcXGIpLywgL14oPzpsaW5rU3R5bGVcXGIpLywgL14oPzppbnRlcnBvbGF0ZVxcYikvLCAvXig/OmNsYXNzRGVmXFxiKS8sIC9eKD86Y2xhc3NcXGIpLywgL14oPzpocmVmW1xcc10pLywgL14oPzpjbGlja1tcXHNdKykvLCAvXig/OltcXHNcXG5dKS8sIC9eKD86W15cXHNcXG5dKikvLCAvXig/OmZsb3djaGFydC1lbGtcXGIpLywgL14oPzpncmFwaFxcYikvLCAvXig/OmZsb3djaGFydFxcYikvLCAvXig/OnN1YmdyYXBoXFxiKS8sIC9eKD86ZW5kXFxiXFxzKikvLCAvXig/Ol9zZWxmXFxiKS8sIC9eKD86X2JsYW5rXFxiKS8sIC9eKD86X3BhcmVudFxcYikvLCAvXig/Ol90b3BcXGIpLywgL14oPzooXFxyP1xcbikqXFxzKlxcbikvLCAvXig/OlxccypMUlxcYikvLCAvXig/OlxccypSTFxcYikvLCAvXig/OlxccypUQlxcYikvLCAvXig/OlxccypCVFxcYikvLCAvXig/OlxccypURFxcYikvLCAvXig/OlxccypCUlxcYikvLCAvXig/Olxccyo8KS8sIC9eKD86XFxzKj4pLywgL14oPzpcXHMqXFxeKS8sIC9eKD86XFxzKnZcXGIpLywgL14oPzouKmRpcmVjdGlvblxccytUQlteXFxuXSopLywgL14oPzouKmRpcmVjdGlvblxccytCVFteXFxuXSopLywgL14oPzouKmRpcmVjdGlvblxccytSTFteXFxuXSopLywgL14oPzouKmRpcmVjdGlvblxccytMUlteXFxuXSopLywgL14oPzpbMC05XSspLywgL14oPzojKS8sIC9eKD86Ojo6KS8sIC9eKD86OikvLCAvXig/OiYpLywgL14oPzo7KS8sIC9eKD86LCkvLCAvXig/OlxcKikvLCAvXig/OlxccypbeG88XT8tLStbLXhvPl1cXHMqKS8sIC9eKD86XFxzKlt4bzxdPy0tXFxzKikvLCAvXig/OlteLV18LSg/IS0pKykvLCAvXig/OlxccypbeG88XT89PStbPXhvPl1cXHMqKS8sIC9eKD86XFxzKlt4bzxdPz09XFxzKikvLCAvXig/OltePV18PSg/ISkpLywgL14oPzpcXHMqW3hvPF0/LT9cXC4rLVt4bz5dP1xccyopLywgL14oPzpcXHMqW3hvPF0/LVxcLlxccyopLywgL14oPzpbXlxcLl18XFwuKD8hKSkvLCAvXig/Olxccyp+fltcXH5dK1xccyopLywgL14oPzpbLS9cXCldW1xcKV0pLywgL14oPzpbXlxcKFxcKVxcW1xcXVxce1xcfV18IVxcKSspLywgL14oPzpcXCgtKS8sIC9eKD86XFxdXFwpKS8sIC9eKD86XFwoXFxbKS8sIC9eKD86XFxdXFxdKS8sIC9eKD86XFxbXFxbKS8sIC9eKD86XFxbXFx8KS8sIC9eKD86PikvLCAvXig/OlxcKVxcXSkvLCAvXig/OlxcW1xcKCkvLCAvXig/OlxcKVxcKVxcKSkvLCAvXig/OlxcKFxcKFxcKCkvLCAvXig/OltcXFxcKD89XFxdKV1bXFxdXSkvLCAvXig/OlxcLyg/PVxcXSlcXF0pLywgL14oPzpcXC8oPyFcXF0pfFxcXFwoPyFcXF0pfFteXFxcXFxcW1xcXVxcKFxcKVxce1xcfVxcL10rKS8sIC9eKD86XFxbXFwvKS8sIC9eKD86XFxbXFxcXCkvLCAvXig/OjwpLywgL14oPzo+KS8sIC9eKD86XFxeKS8sIC9eKD86XFxcXFxcfCkvLCAvXig/OnZcXGIpLywgL14oPzpcXCopLywgL14oPzojKS8sIC9eKD86JikvLCAvXig/OihbQS1aYS16MC05IVwiXFwjJCUmJyorXFwuYD9cXFxcX1xcL118LSg/PVteXFw+XFwtXFwuXSl8KD8hKSkrKS8sIC9eKD86LSkvLCAvXig/OltcXHUwMEFBXFx1MDBCNVxcdTAwQkFcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZdfFtcXHUwMEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XXxbXFx1MDM3QS1cXHUwMzdEXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVdfFtcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MjdcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDVEMC1cXHUwNUVBXXxbXFx1MDVGMC1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXXxbXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQV18W1xcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4QTBdfFtcXHUwOEEyLVxcdTA4QUNcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk3N118W1xcdTA5NzktXFx1MDk3RlxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMl18W1xcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTBBMDUtXFx1MEEwQV18W1xcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XXxbXFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOF18W1xcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBCMDUtXFx1MEIwQ118W1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNEXFx1MEI1Q118W1xcdTBCNURcXHUwQjVGLVxcdTBCNjFcXHUwQjcxXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTldfFtcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXXxbXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzMzXFx1MEMzNS1cXHUwQzM5XFx1MEMzRF18W1xcdTBDNThcXHUwQzU5XFx1MEM2MFxcdTBDNjFcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNdfFtcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBdfFtcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENjBcXHUwRDYxXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXXxbXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBFMDEtXFx1MEUzMFxcdTBFMzJcXHUwRTMzXFx1MEU0MC1cXHUwRTQ2XFx1MEU4MV18W1xcdTBFODJcXHUwRTg0XFx1MEU4N1xcdTBFODhcXHUwRThBXFx1MEU4RFxcdTBFOTQtXFx1MEU5N1xcdTBFOTktXFx1MEU5RlxcdTBFQTEtXFx1MEVBM118W1xcdTBFQTVcXHUwRUE3XFx1MEVBQVxcdTBFQUJcXHUwRUFELVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XXxbXFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQV18W1xcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFdfFtcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERdfFtcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXXxbXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMF18W1xcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNFxcdTE0MDEtXFx1MTY2Q118W1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxMV18W1xcdTE3MjAtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDddfFtcXHUxN0RDXFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxQ118W1xcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QzEtXFx1MTlDN1xcdTFBMDAtXFx1MUExNl18W1xcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRl18W1xcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDRTktXFx1MUNFQ118W1xcdTFDRUUtXFx1MUNGMVxcdTFDRjVcXHUxQ0Y2XFx1MUQwMC1cXHUxREJGXFx1MUUwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXXxbXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXXxbXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM118W1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwNzFcXHUyMDdGXXxbXFx1MjA5MC1cXHUyMDlDXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XXxbXFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxODNcXHUyMTg0XXxbXFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNdfFtcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZdfFtcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VdfFtcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyRTJGXFx1MzAwNVxcdTMwMDZcXHUzMDMxLVxcdTMwMzVcXHUzMDNCXFx1MzAzQ118W1xcdTMwNDEtXFx1MzA5NlxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRF18W1xcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZDQ118W1xcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXXxbXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjk3XFx1QTZBMC1cXHVBNkU1XFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XXxbXFx1QTc4Qi1cXHVBNzhFXFx1QTc5MC1cXHVBNzkzXFx1QTdBMC1cXHVBN0FBXFx1QTdGOC1cXHVBODAxXFx1QTgwMy1cXHVBODA1XXxbXFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQl18W1xcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBQTAwLVxcdUFBMjhdfFtcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE4MC1cXHVBQUFGXFx1QUFCMVxcdUFBQjVdfFtcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRdfFtcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVdfFtcXHVBQkMwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRdfFtcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XXxbXFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RdfFtcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNdfFtcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZdfFtcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdKS8sIC9eKD86XFx8KS8sIC9eKD86XFx8KS8sIC9eKD86XFwpKS8sIC9eKD86XFwoKS8sIC9eKD86XFxdKS8sIC9eKD86XFxbKS8sIC9eKD86KFxcfSkpLywgL14oPzpcXHspLywgL14oPzpbXlxcW1xcXVxcKFxcKVxce1xcfVxcfFxcXCJdKykvLCAvXig/OlwiKS8sIC9eKD86KFxccj9cXG4pKykvLCAvXig/OlxccykvLCAvXig/OiQpL10sXG4gICAgICBjb25kaXRpb25zOiB7IFwiY2FsbGJhY2thcmdzXCI6IHsgXCJydWxlc1wiOiBbMTEsIDEyLCAxNSwgMTgsIDcwLCA3MywgNzUsIDc3LCA4MSwgODMsIDg3LCA4OCwgMTAxLCAxMDMsIDEwNSwgMTA3XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJjYWxsYmFja25hbWVcIjogeyBcInJ1bGVzXCI6IFs4LCA5LCAxMCwgMTUsIDE4LCA3MCwgNzMsIDc1LCA3NywgODEsIDgzLCA4NywgODgsIDEwMSwgMTAzLCAxMDUsIDEwN10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiaHJlZlwiOiB7IFwicnVsZXNcIjogWzE1LCAxOCwgNzAsIDczLCA3NSwgNzcsIDgxLCA4MywgODcsIDg4LCAxMDEsIDEwMywgMTA1LCAxMDddLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImNsaWNrXCI6IHsgXCJydWxlc1wiOiBbMTUsIDE4LCAyNywgMjgsIDcwLCA3MywgNzUsIDc3LCA4MSwgODMsIDg3LCA4OCwgMTAxLCAxMDMsIDEwNSwgMTA3XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJkb3R0ZWRFZGdlVGV4dFwiOiB7IFwicnVsZXNcIjogWzE1LCAxOCwgNjcsIDY5LCA3MCwgNzMsIDc1LCA3NywgODEsIDgzLCA4NywgODgsIDEwMSwgMTAzLCAxMDUsIDEwN10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwidGhpY2tFZGdlVGV4dFwiOiB7IFwicnVsZXNcIjogWzE1LCAxOCwgNjQsIDY2LCA3MCwgNzMsIDc1LCA3NywgODEsIDgzLCA4NywgODgsIDEwMSwgMTAzLCAxMDUsIDEwN10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiZWRnZVRleHRcIjogeyBcInJ1bGVzXCI6IFsxNSwgMTgsIDYxLCA2MywgNzAsIDczLCA3NSwgNzcsIDgxLCA4MywgODcsIDg4LCAxMDEsIDEwMywgMTA1LCAxMDddLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInRyYXBUZXh0XCI6IHsgXCJydWxlc1wiOiBbMTUsIDE4LCA3MCwgNzMsIDc1LCA3NywgODEsIDgzLCA4NCwgODUsIDg2LCA4NywgODgsIDEwMSwgMTAzLCAxMDUsIDEwN10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiZWxsaXBzZVRleHRcIjogeyBcInJ1bGVzXCI6IFsxNSwgMTgsIDcwLCA3MSwgNzIsIDczLCA3NSwgNzcsIDgxLCA4MywgODcsIDg4LCAxMDEsIDEwMywgMTA1LCAxMDddLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInRleHRcIjogeyBcInJ1bGVzXCI6IFsxNSwgMTgsIDcwLCA3MywgNzQsIDc1LCA3NiwgNzcsIDgwLCA4MSwgODIsIDgzLCA4NywgODgsIDEwMCwgMTAxLCAxMDIsIDEwMywgMTA0LCAxMDUsIDEwNiwgMTA3LCAxMDhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInZlcnRleFwiOiB7IFwicnVsZXNcIjogWzE1LCAxOCwgNzAsIDczLCA3NSwgNzcsIDgxLCA4MywgODcsIDg4LCAxMDEsIDEwMywgMTA1LCAxMDddLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImRpclwiOiB7IFwicnVsZXNcIjogWzE1LCAxOCwgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA3MCwgNzMsIDc1LCA3NywgODEsIDgzLCA4NywgODgsIDEwMSwgMTAzLCAxMDUsIDEwN10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX2Rlc2NyX211bHRpbGluZVwiOiB7IFwicnVsZXNcIjogWzUsIDYsIDE1LCAxOCwgNzAsIDczLCA3NSwgNzcsIDgxLCA4MywgODcsIDg4LCAxMDEsIDEwMywgMTA1LCAxMDddLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY19kZXNjclwiOiB7IFwicnVsZXNcIjogWzMsIDE1LCAxOCwgNzAsIDczLCA3NSwgNzcsIDgxLCA4MywgODcsIDg4LCAxMDEsIDEwMywgMTA1LCAxMDddLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY190aXRsZVwiOiB7IFwicnVsZXNcIjogWzEsIDE1LCAxOCwgNzAsIDczLCA3NSwgNzcsIDgxLCA4MywgODcsIDg4LCAxMDEsIDEwMywgMTA1LCAxMDddLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIm1kX3N0cmluZ1wiOiB7IFwicnVsZXNcIjogWzEzLCAxNCwgMTUsIDE4LCA3MCwgNzMsIDc1LCA3NywgODEsIDgzLCA4NywgODgsIDEwMSwgMTAzLCAxMDUsIDEwN10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwic3RyaW5nXCI6IHsgXCJydWxlc1wiOiBbMTUsIDE2LCAxNywgMTgsIDcwLCA3MywgNzUsIDc3LCA4MSwgODMsIDg3LCA4OCwgMTAxLCAxMDMsIDEwNSwgMTA3XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMiwgNCwgNywgMTUsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjQsIDY1LCA2NywgNjgsIDcwLCA3MywgNzUsIDc3LCA3OCwgNzksIDgxLCA4MywgODcsIDg4LCA4OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTksIDEwMSwgMTAzLCAxMDUsIDEwNywgMTA5LCAxMTAsIDExMSwgMTEyXSwgXCJpbmNsdXNpdmVcIjogdHJ1ZSB9IH1cbiAgICB9O1xuICAgIHJldHVybiBsZXhlcjI7XG4gIH0oKTtcbiAgcGFyc2VyMi5sZXhlciA9IGxleGVyO1xuICBmdW5jdGlvbiBQYXJzZXIoKSB7XG4gICAgdGhpcy55eSA9IHt9O1xuICB9XG4gIFBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXIyO1xuICBwYXJzZXIyLlBhcnNlciA9IFBhcnNlcjtcbiAgcmV0dXJuIG5ldyBQYXJzZXIoKTtcbn0oKTtcbnBhcnNlci5wYXJzZXIgPSBwYXJzZXI7XG5jb25zdCBwYXJzZXIkMSA9IHBhcnNlcjtcbmNvbnN0IE1FUk1BSURfRE9NX0lEX1BSRUZJWCA9IFwiZmxvd2NoYXJ0LVwiO1xubGV0IHZlcnRleENvdW50ZXIgPSAwO1xubGV0IGNvbmZpZyA9IGdldENvbmZpZygpO1xubGV0IHZlcnRpY2VzID0ge307XG5sZXQgZWRnZXMgPSBbXTtcbmxldCBjbGFzc2VzID0ge307XG5sZXQgc3ViR3JhcGhzID0gW107XG5sZXQgc3ViR3JhcGhMb29rdXAgPSB7fTtcbmxldCB0b29sdGlwcyA9IHt9O1xubGV0IHN1YkNvdW50ID0gMDtcbmxldCBmaXJzdEdyYXBoRmxhZyA9IHRydWU7XG5sZXQgZGlyZWN0aW9uO1xubGV0IHZlcnNpb247XG5sZXQgZnVucyA9IFtdO1xuY29uc3Qgc2FuaXRpemVUZXh0ID0gKHR4dCkgPT4gY29tbW9uLnNhbml0aXplVGV4dCh0eHQsIGNvbmZpZyk7XG5jb25zdCBsb29rVXBEb21JZCA9IGZ1bmN0aW9uKGlkKSB7XG4gIGNvbnN0IHZlcnRleEtleXMgPSBPYmplY3Qua2V5cyh2ZXJ0aWNlcyk7XG4gIGZvciAoY29uc3QgdmVydGV4S2V5IG9mIHZlcnRleEtleXMpIHtcbiAgICBpZiAodmVydGljZXNbdmVydGV4S2V5XS5pZCA9PT0gaWQpIHtcbiAgICAgIHJldHVybiB2ZXJ0aWNlc1t2ZXJ0ZXhLZXldLmRvbUlkO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaWQ7XG59O1xuY29uc3QgYWRkVmVydGV4ID0gZnVuY3Rpb24oX2lkLCB0ZXh0T2JqLCB0eXBlLCBzdHlsZSwgY2xhc3NlczIsIGRpciwgcHJvcHMgPSB7fSkge1xuICBsZXQgdHh0O1xuICBsZXQgaWQgPSBfaWQ7XG4gIGlmIChpZCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChpZC50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICh2ZXJ0aWNlc1tpZF0gPT09IHZvaWQgMCkge1xuICAgIHZlcnRpY2VzW2lkXSA9IHtcbiAgICAgIGlkLFxuICAgICAgbGFiZWxUeXBlOiBcInRleHRcIixcbiAgICAgIGRvbUlkOiBNRVJNQUlEX0RPTV9JRF9QUkVGSVggKyBpZCArIFwiLVwiICsgdmVydGV4Q291bnRlcixcbiAgICAgIHN0eWxlczogW10sXG4gICAgICBjbGFzc2VzOiBbXVxuICAgIH07XG4gIH1cbiAgdmVydGV4Q291bnRlcisrO1xuICBpZiAodGV4dE9iaiAhPT0gdm9pZCAwKSB7XG4gICAgY29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gICAgdHh0ID0gc2FuaXRpemVUZXh0KHRleHRPYmoudGV4dC50cmltKCkpO1xuICAgIHZlcnRpY2VzW2lkXS5sYWJlbFR5cGUgPSB0ZXh0T2JqLnR5cGU7XG4gICAgaWYgKHR4dFswXSA9PT0gJ1wiJyAmJiB0eHRbdHh0Lmxlbmd0aCAtIDFdID09PSAnXCInKSB7XG4gICAgICB0eHQgPSB0eHQuc3Vic3RyaW5nKDEsIHR4dC5sZW5ndGggLSAxKTtcbiAgICB9XG4gICAgdmVydGljZXNbaWRdLnRleHQgPSB0eHQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHZlcnRpY2VzW2lkXS50ZXh0ID09PSB2b2lkIDApIHtcbiAgICAgIHZlcnRpY2VzW2lkXS50ZXh0ID0gX2lkO1xuICAgIH1cbiAgfVxuICBpZiAodHlwZSAhPT0gdm9pZCAwKSB7XG4gICAgdmVydGljZXNbaWRdLnR5cGUgPSB0eXBlO1xuICB9XG4gIGlmIChzdHlsZSAhPT0gdm9pZCAwICYmIHN0eWxlICE9PSBudWxsKSB7XG4gICAgc3R5bGUuZm9yRWFjaChmdW5jdGlvbihzKSB7XG4gICAgICB2ZXJ0aWNlc1tpZF0uc3R5bGVzLnB1c2gocyk7XG4gICAgfSk7XG4gIH1cbiAgaWYgKGNsYXNzZXMyICE9PSB2b2lkIDAgJiYgY2xhc3NlczIgIT09IG51bGwpIHtcbiAgICBjbGFzc2VzMi5mb3JFYWNoKGZ1bmN0aW9uKHMpIHtcbiAgICAgIHZlcnRpY2VzW2lkXS5jbGFzc2VzLnB1c2gocyk7XG4gICAgfSk7XG4gIH1cbiAgaWYgKGRpciAhPT0gdm9pZCAwKSB7XG4gICAgdmVydGljZXNbaWRdLmRpciA9IGRpcjtcbiAgfVxuICBpZiAodmVydGljZXNbaWRdLnByb3BzID09PSB2b2lkIDApIHtcbiAgICB2ZXJ0aWNlc1tpZF0ucHJvcHMgPSBwcm9wcztcbiAgfSBlbHNlIGlmIChwcm9wcyAhPT0gdm9pZCAwKSB7XG4gICAgT2JqZWN0LmFzc2lnbih2ZXJ0aWNlc1tpZF0ucHJvcHMsIHByb3BzKTtcbiAgfVxufTtcbmNvbnN0IGFkZFNpbmdsZUxpbmsgPSBmdW5jdGlvbihfc3RhcnQsIF9lbmQsIHR5cGUpIHtcbiAgbGV0IHN0YXJ0ID0gX3N0YXJ0O1xuICBsZXQgZW5kID0gX2VuZDtcbiAgY29uc3QgZWRnZSA9IHsgc3RhcnQsIGVuZCwgdHlwZTogdm9pZCAwLCB0ZXh0OiBcIlwiLCBsYWJlbFR5cGU6IFwidGV4dFwiIH07XG4gIGxvZy5pbmZvKFwiYWJjNzggR290IGVkZ2UuLi5cIiwgZWRnZSk7XG4gIGNvbnN0IGxpbmtUZXh0T2JqID0gdHlwZS50ZXh0O1xuICBpZiAobGlua1RleHRPYmogIT09IHZvaWQgMCkge1xuICAgIGVkZ2UudGV4dCA9IHNhbml0aXplVGV4dChsaW5rVGV4dE9iai50ZXh0LnRyaW0oKSk7XG4gICAgaWYgKGVkZ2UudGV4dFswXSA9PT0gJ1wiJyAmJiBlZGdlLnRleHRbZWRnZS50ZXh0Lmxlbmd0aCAtIDFdID09PSAnXCInKSB7XG4gICAgICBlZGdlLnRleHQgPSBlZGdlLnRleHQuc3Vic3RyaW5nKDEsIGVkZ2UudGV4dC5sZW5ndGggLSAxKTtcbiAgICB9XG4gICAgZWRnZS5sYWJlbFR5cGUgPSBsaW5rVGV4dE9iai50eXBlO1xuICB9XG4gIGlmICh0eXBlICE9PSB2b2lkIDApIHtcbiAgICBlZGdlLnR5cGUgPSB0eXBlLnR5cGU7XG4gICAgZWRnZS5zdHJva2UgPSB0eXBlLnN0cm9rZTtcbiAgICBlZGdlLmxlbmd0aCA9IHR5cGUubGVuZ3RoO1xuICB9XG4gIGlmICgoZWRnZSA9PSBudWxsID8gdm9pZCAwIDogZWRnZS5sZW5ndGgpID4gMTApIHtcbiAgICBlZGdlLmxlbmd0aCA9IDEwO1xuICB9XG4gIGlmIChlZGdlcy5sZW5ndGggPCAoY29uZmlnLm1heEVkZ2VzID8/IDUwMCkpIHtcbiAgICBsb2cuaW5mbyhcImFiYzc4IHB1c2hpbmcgZWRnZS4uLlwiKTtcbiAgICBlZGdlcy5wdXNoKGVkZ2UpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBFZGdlIGxpbWl0IGV4Y2VlZGVkLiAke2VkZ2VzLmxlbmd0aH0gZWRnZXMgZm91bmQsIGJ1dCB0aGUgbGltaXQgaXMgJHtjb25maWcubWF4RWRnZXN9LlxuXG5Jbml0aWFsaXplIG1lcm1haWQgd2l0aCBtYXhFZGdlcyBzZXQgdG8gYSBoaWdoZXIgbnVtYmVyIHRvIGFsbG93IG1vcmUgZWRnZXMuXG5Zb3UgY2Fubm90IHNldCB0aGlzIGNvbmZpZyB2aWEgY29uZmlndXJhdGlvbiBpbnNpZGUgdGhlIGRpYWdyYW0gYXMgaXQgaXMgYSBzZWN1cmUgY29uZmlnLlxuWW91IGhhdmUgdG8gY2FsbCBtZXJtYWlkLmluaXRpYWxpemUuYFxuICAgICk7XG4gIH1cbn07XG5jb25zdCBhZGRMaW5rID0gZnVuY3Rpb24oX3N0YXJ0LCBfZW5kLCB0eXBlKSB7XG4gIGxvZy5pbmZvKFwiYWRkTGluayAoYWJjNzgpXCIsIF9zdGFydCwgX2VuZCwgdHlwZSk7XG4gIGxldCBpLCBqO1xuICBmb3IgKGkgPSAwOyBpIDwgX3N0YXJ0Lmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChqID0gMDsgaiA8IF9lbmQubGVuZ3RoOyBqKyspIHtcbiAgICAgIGFkZFNpbmdsZUxpbmsoX3N0YXJ0W2ldLCBfZW5kW2pdLCB0eXBlKTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCB1cGRhdGVMaW5rSW50ZXJwb2xhdGUgPSBmdW5jdGlvbihwb3NpdGlvbnMsIGludGVycCkge1xuICBwb3NpdGlvbnMuZm9yRWFjaChmdW5jdGlvbihwb3MpIHtcbiAgICBpZiAocG9zID09PSBcImRlZmF1bHRcIikge1xuICAgICAgZWRnZXMuZGVmYXVsdEludGVycG9sYXRlID0gaW50ZXJwO1xuICAgIH0gZWxzZSB7XG4gICAgICBlZGdlc1twb3NdLmludGVycG9sYXRlID0gaW50ZXJwO1xuICAgIH1cbiAgfSk7XG59O1xuY29uc3QgdXBkYXRlTGluayA9IGZ1bmN0aW9uKHBvc2l0aW9ucywgc3R5bGUpIHtcbiAgcG9zaXRpb25zLmZvckVhY2goZnVuY3Rpb24ocG9zKSB7XG4gICAgaWYgKHBvcyA+PSBlZGdlcy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSBpbmRleCAke3Bvc30gZm9yIGxpbmtTdHlsZSBpcyBvdXQgb2YgYm91bmRzLiBWYWxpZCBpbmRpY2VzIGZvciBsaW5rU3R5bGUgYXJlIGJldHdlZW4gMCBhbmQgJHtlZGdlcy5sZW5ndGggLSAxfS4gKEhlbHA6IEVuc3VyZSB0aGF0IHRoZSBpbmRleCBpcyB3aXRoaW4gdGhlIHJhbmdlIG9mIGV4aXN0aW5nIGVkZ2VzLilgXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocG9zID09PSBcImRlZmF1bHRcIikge1xuICAgICAgZWRnZXMuZGVmYXVsdFN0eWxlID0gc3R5bGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh1dGlscy5pc1N1YnN0cmluZ0luQXJyYXkoXCJmaWxsXCIsIHN0eWxlKSA9PT0gLTEpIHtcbiAgICAgICAgc3R5bGUucHVzaChcImZpbGw6bm9uZVwiKTtcbiAgICAgIH1cbiAgICAgIGVkZ2VzW3Bvc10uc3R5bGUgPSBzdHlsZTtcbiAgICB9XG4gIH0pO1xufTtcbmNvbnN0IGFkZENsYXNzID0gZnVuY3Rpb24oaWRzLCBzdHlsZSkge1xuICBpZHMuc3BsaXQoXCIsXCIpLmZvckVhY2goZnVuY3Rpb24oaWQpIHtcbiAgICBpZiAoY2xhc3Nlc1tpZF0gPT09IHZvaWQgMCkge1xuICAgICAgY2xhc3Nlc1tpZF0gPSB7IGlkLCBzdHlsZXM6IFtdLCB0ZXh0U3R5bGVzOiBbXSB9O1xuICAgIH1cbiAgICBpZiAoc3R5bGUgIT09IHZvaWQgMCAmJiBzdHlsZSAhPT0gbnVsbCkge1xuICAgICAgc3R5bGUuZm9yRWFjaChmdW5jdGlvbihzKSB7XG4gICAgICAgIGlmIChzLm1hdGNoKFwiY29sb3JcIikpIHtcbiAgICAgICAgICBjb25zdCBuZXdTdHlsZSA9IHMucmVwbGFjZShcImZpbGxcIiwgXCJiZ0ZpbGxcIikucmVwbGFjZShcImNvbG9yXCIsIFwiZmlsbFwiKTtcbiAgICAgICAgICBjbGFzc2VzW2lkXS50ZXh0U3R5bGVzLnB1c2gobmV3U3R5bGUpO1xuICAgICAgICB9XG4gICAgICAgIGNsYXNzZXNbaWRdLnN0eWxlcy5wdXNoKHMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbn07XG5jb25zdCBzZXREaXJlY3Rpb24gPSBmdW5jdGlvbihkaXIpIHtcbiAgZGlyZWN0aW9uID0gZGlyO1xuICBpZiAoZGlyZWN0aW9uLm1hdGNoKC8uKjwvKSkge1xuICAgIGRpcmVjdGlvbiA9IFwiUkxcIjtcbiAgfVxuICBpZiAoZGlyZWN0aW9uLm1hdGNoKC8uKlxcXi8pKSB7XG4gICAgZGlyZWN0aW9uID0gXCJCVFwiO1xuICB9XG4gIGlmIChkaXJlY3Rpb24ubWF0Y2goLy4qPi8pKSB7XG4gICAgZGlyZWN0aW9uID0gXCJMUlwiO1xuICB9XG4gIGlmIChkaXJlY3Rpb24ubWF0Y2goLy4qdi8pKSB7XG4gICAgZGlyZWN0aW9uID0gXCJUQlwiO1xuICB9XG4gIGlmIChkaXJlY3Rpb24gPT09IFwiVERcIikge1xuICAgIGRpcmVjdGlvbiA9IFwiVEJcIjtcbiAgfVxufTtcbmNvbnN0IHNldENsYXNzID0gZnVuY3Rpb24oaWRzLCBjbGFzc05hbWUpIHtcbiAgaWRzLnNwbGl0KFwiLFwiKS5mb3JFYWNoKGZ1bmN0aW9uKF9pZCkge1xuICAgIGxldCBpZCA9IF9pZDtcbiAgICBpZiAodmVydGljZXNbaWRdICE9PSB2b2lkIDApIHtcbiAgICAgIHZlcnRpY2VzW2lkXS5jbGFzc2VzLnB1c2goY2xhc3NOYW1lKTtcbiAgICB9XG4gICAgaWYgKHN1YkdyYXBoTG9va3VwW2lkXSAhPT0gdm9pZCAwKSB7XG4gICAgICBzdWJHcmFwaExvb2t1cFtpZF0uY2xhc3Nlcy5wdXNoKGNsYXNzTmFtZSk7XG4gICAgfVxuICB9KTtcbn07XG5jb25zdCBzZXRUb29sdGlwID0gZnVuY3Rpb24oaWRzLCB0b29sdGlwKSB7XG4gIGlkcy5zcGxpdChcIixcIikuZm9yRWFjaChmdW5jdGlvbihpZCkge1xuICAgIGlmICh0b29sdGlwICE9PSB2b2lkIDApIHtcbiAgICAgIHRvb2x0aXBzW3ZlcnNpb24gPT09IFwiZ2VuLTFcIiA/IGxvb2tVcERvbUlkKGlkKSA6IGlkXSA9IHNhbml0aXplVGV4dCh0b29sdGlwKTtcbiAgICB9XG4gIH0pO1xufTtcbmNvbnN0IHNldENsaWNrRnVuID0gZnVuY3Rpb24oaWQsIGZ1bmN0aW9uTmFtZSwgZnVuY3Rpb25BcmdzKSB7XG4gIGxldCBkb21JZCA9IGxvb2tVcERvbUlkKGlkKTtcbiAgaWYgKGdldENvbmZpZygpLnNlY3VyaXR5TGV2ZWwgIT09IFwibG9vc2VcIikge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoZnVuY3Rpb25OYW1lID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbGV0IGFyZ0xpc3QgPSBbXTtcbiAgaWYgKHR5cGVvZiBmdW5jdGlvbkFyZ3MgPT09IFwic3RyaW5nXCIpIHtcbiAgICBhcmdMaXN0ID0gZnVuY3Rpb25BcmdzLnNwbGl0KC8sKD89KD86KD86W15cIl0qXCIpezJ9KSpbXlwiXSokKS8pO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJnTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGl0ZW0gPSBhcmdMaXN0W2ldLnRyaW0oKTtcbiAgICAgIGlmIChpdGVtLmNoYXJBdCgwKSA9PT0gJ1wiJyAmJiBpdGVtLmNoYXJBdChpdGVtLmxlbmd0aCAtIDEpID09PSAnXCInKSB7XG4gICAgICAgIGl0ZW0gPSBpdGVtLnN1YnN0cigxLCBpdGVtLmxlbmd0aCAtIDIpO1xuICAgICAgfVxuICAgICAgYXJnTGlzdFtpXSA9IGl0ZW07XG4gICAgfVxuICB9XG4gIGlmIChhcmdMaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgIGFyZ0xpc3QucHVzaChpZCk7XG4gIH1cbiAgaWYgKHZlcnRpY2VzW2lkXSAhPT0gdm9pZCAwKSB7XG4gICAgdmVydGljZXNbaWRdLmhhdmVDYWxsYmFjayA9IHRydWU7XG4gICAgZnVucy5wdXNoKGZ1bmN0aW9uKCkge1xuICAgICAgY29uc3QgZWxlbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtpZD1cIiR7ZG9tSWR9XCJdYCk7XG4gICAgICBpZiAoZWxlbSAhPT0gbnVsbCkge1xuICAgICAgICBlbGVtLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgXCJjbGlja1wiLFxuICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdXRpbHMucnVuRnVuYyhmdW5jdGlvbk5hbWUsIC4uLmFyZ0xpc3QpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcbmNvbnN0IHNldExpbmsgPSBmdW5jdGlvbihpZHMsIGxpbmtTdHIsIHRhcmdldCkge1xuICBpZHMuc3BsaXQoXCIsXCIpLmZvckVhY2goZnVuY3Rpb24oaWQpIHtcbiAgICBpZiAodmVydGljZXNbaWRdICE9PSB2b2lkIDApIHtcbiAgICAgIHZlcnRpY2VzW2lkXS5saW5rID0gdXRpbHMuZm9ybWF0VXJsKGxpbmtTdHIsIGNvbmZpZyk7XG4gICAgICB2ZXJ0aWNlc1tpZF0ubGlua1RhcmdldCA9IHRhcmdldDtcbiAgICB9XG4gIH0pO1xuICBzZXRDbGFzcyhpZHMsIFwiY2xpY2thYmxlXCIpO1xufTtcbmNvbnN0IGdldFRvb2x0aXAgPSBmdW5jdGlvbihpZCkge1xuICBpZiAodG9vbHRpcHMuaGFzT3duUHJvcGVydHkoaWQpKSB7XG4gICAgcmV0dXJuIHRvb2x0aXBzW2lkXTtcbiAgfVxuICByZXR1cm4gdm9pZCAwO1xufTtcbmNvbnN0IHNldENsaWNrRXZlbnQgPSBmdW5jdGlvbihpZHMsIGZ1bmN0aW9uTmFtZSwgZnVuY3Rpb25BcmdzKSB7XG4gIGlkcy5zcGxpdChcIixcIikuZm9yRWFjaChmdW5jdGlvbihpZCkge1xuICAgIHNldENsaWNrRnVuKGlkLCBmdW5jdGlvbk5hbWUsIGZ1bmN0aW9uQXJncyk7XG4gIH0pO1xuICBzZXRDbGFzcyhpZHMsIFwiY2xpY2thYmxlXCIpO1xufTtcbmNvbnN0IGJpbmRGdW5jdGlvbnMgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gIGZ1bnMuZm9yRWFjaChmdW5jdGlvbihmdW4pIHtcbiAgICBmdW4oZWxlbWVudCk7XG4gIH0pO1xufTtcbmNvbnN0IGdldERpcmVjdGlvbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gZGlyZWN0aW9uLnRyaW0oKTtcbn07XG5jb25zdCBnZXRWZXJ0aWNlcyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdmVydGljZXM7XG59O1xuY29uc3QgZ2V0RWRnZXMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGVkZ2VzO1xufTtcbmNvbnN0IGdldENsYXNzZXMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGNsYXNzZXM7XG59O1xuY29uc3Qgc2V0dXBUb29sVGlwcyA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgbGV0IHRvb2x0aXBFbGVtID0gc2VsZWN0KFwiLm1lcm1haWRUb29sdGlwXCIpO1xuICBpZiAoKHRvb2x0aXBFbGVtLl9ncm91cHMgfHwgdG9vbHRpcEVsZW0pWzBdWzBdID09PSBudWxsKSB7XG4gICAgdG9vbHRpcEVsZW0gPSBzZWxlY3QoXCJib2R5XCIpLmFwcGVuZChcImRpdlwiKS5hdHRyKFwiY2xhc3NcIiwgXCJtZXJtYWlkVG9vbHRpcFwiKS5zdHlsZShcIm9wYWNpdHlcIiwgMCk7XG4gIH1cbiAgY29uc3Qgc3ZnID0gc2VsZWN0KGVsZW1lbnQpLnNlbGVjdChcInN2Z1wiKTtcbiAgY29uc3Qgbm9kZXMgPSBzdmcuc2VsZWN0QWxsKFwiZy5ub2RlXCIpO1xuICBub2Rlcy5vbihcIm1vdXNlb3ZlclwiLCBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBlbCA9IHNlbGVjdCh0aGlzKTtcbiAgICBjb25zdCB0aXRsZSA9IGVsLmF0dHIoXCJ0aXRsZVwiKTtcbiAgICBpZiAodGl0bGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdG9vbHRpcEVsZW0udHJhbnNpdGlvbigpLmR1cmF0aW9uKDIwMCkuc3R5bGUoXCJvcGFjaXR5XCIsIFwiLjlcIik7XG4gICAgdG9vbHRpcEVsZW0udGV4dChlbC5hdHRyKFwidGl0bGVcIikpLnN0eWxlKFwibGVmdFwiLCB3aW5kb3cuc2Nyb2xsWCArIHJlY3QubGVmdCArIChyZWN0LnJpZ2h0IC0gcmVjdC5sZWZ0KSAvIDIgKyBcInB4XCIpLnN0eWxlKFwidG9wXCIsIHdpbmRvdy5zY3JvbGxZICsgcmVjdC5ib3R0b20gKyBcInB4XCIpO1xuICAgIHRvb2x0aXBFbGVtLmh0bWwodG9vbHRpcEVsZW0uaHRtbCgpLnJlcGxhY2UoLyZsdDticlxcLyZndDsvZywgXCI8YnIvPlwiKSk7XG4gICAgZWwuY2xhc3NlZChcImhvdmVyXCIsIHRydWUpO1xuICB9KS5vbihcIm1vdXNlb3V0XCIsIGZ1bmN0aW9uKCkge1xuICAgIHRvb2x0aXBFbGVtLnRyYW5zaXRpb24oKS5kdXJhdGlvbig1MDApLnN0eWxlKFwib3BhY2l0eVwiLCAwKTtcbiAgICBjb25zdCBlbCA9IHNlbGVjdCh0aGlzKTtcbiAgICBlbC5jbGFzc2VkKFwiaG92ZXJcIiwgZmFsc2UpO1xuICB9KTtcbn07XG5mdW5zLnB1c2goc2V0dXBUb29sVGlwcyk7XG5jb25zdCBjbGVhciA9IGZ1bmN0aW9uKHZlciA9IFwiZ2VuLTFcIikge1xuICB2ZXJ0aWNlcyA9IHt9O1xuICBjbGFzc2VzID0ge307XG4gIGVkZ2VzID0gW107XG4gIGZ1bnMgPSBbc2V0dXBUb29sVGlwc107XG4gIHN1YkdyYXBocyA9IFtdO1xuICBzdWJHcmFwaExvb2t1cCA9IHt9O1xuICBzdWJDb3VudCA9IDA7XG4gIHRvb2x0aXBzID0ge307XG4gIGZpcnN0R3JhcGhGbGFnID0gdHJ1ZTtcbiAgdmVyc2lvbiA9IHZlcjtcbiAgY29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gIGNsZWFyJDEoKTtcbn07XG5jb25zdCBzZXRHZW4gPSAodmVyKSA9PiB7XG4gIHZlcnNpb24gPSB2ZXIgfHwgXCJnZW4tMlwiO1xufTtcbmNvbnN0IGRlZmF1bHRTdHlsZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gXCJmaWxsOiNmZmE7c3Ryb2tlOiAjZjY2OyBzdHJva2Utd2lkdGg6IDNweDsgc3Ryb2tlLWRhc2hhcnJheTogNSwgNTtmaWxsOiNmZmE7c3Ryb2tlOiAjNjY2O1wiO1xufTtcbmNvbnN0IGFkZFN1YkdyYXBoID0gZnVuY3Rpb24oX2lkLCBsaXN0LCBfdGl0bGUpIHtcbiAgbGV0IGlkID0gX2lkLnRleHQudHJpbSgpO1xuICBsZXQgdGl0bGUgPSBfdGl0bGUudGV4dDtcbiAgaWYgKF9pZCA9PT0gX3RpdGxlICYmIF90aXRsZS50ZXh0Lm1hdGNoKC9cXHMvKSkge1xuICAgIGlkID0gdm9pZCAwO1xuICB9XG4gIGZ1bmN0aW9uIHVuaXEoYSkge1xuICAgIGNvbnN0IHByaW1zID0geyBib29sZWFuOiB7fSwgbnVtYmVyOiB7fSwgc3RyaW5nOiB7fSB9O1xuICAgIGNvbnN0IG9ianMgPSBbXTtcbiAgICBsZXQgZGlyMjtcbiAgICBjb25zdCBub2RlTGlzdDIgPSBhLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7XG4gICAgICBjb25zdCB0eXBlID0gdHlwZW9mIGl0ZW07XG4gICAgICBpZiAoaXRlbS5zdG10ICYmIGl0ZW0uc3RtdCA9PT0gXCJkaXJcIikge1xuICAgICAgICBkaXIyID0gaXRlbS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW0udHJpbSgpID09PSBcIlwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlIGluIHByaW1zKSB7XG4gICAgICAgIHJldHVybiBwcmltc1t0eXBlXS5oYXNPd25Qcm9wZXJ0eShpdGVtKSA/IGZhbHNlIDogcHJpbXNbdHlwZV1baXRlbV0gPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9ianMuaW5jbHVkZXMoaXRlbSkgPyBmYWxzZSA6IG9ianMucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4geyBub2RlTGlzdDogbm9kZUxpc3QyLCBkaXI6IGRpcjIgfTtcbiAgfVxuICBsZXQgbm9kZUxpc3QgPSBbXTtcbiAgY29uc3QgeyBub2RlTGlzdDogbmwsIGRpciB9ID0gdW5pcShub2RlTGlzdC5jb25jYXQuYXBwbHkobm9kZUxpc3QsIGxpc3QpKTtcbiAgbm9kZUxpc3QgPSBubDtcbiAgaWYgKHZlcnNpb24gPT09IFwiZ2VuLTFcIikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIG5vZGVMaXN0W2ldID0gbG9va1VwRG9tSWQobm9kZUxpc3RbaV0pO1xuICAgIH1cbiAgfVxuICBpZCA9IGlkIHx8IFwic3ViR3JhcGhcIiArIHN1YkNvdW50O1xuICB0aXRsZSA9IHRpdGxlIHx8IFwiXCI7XG4gIHRpdGxlID0gc2FuaXRpemVUZXh0KHRpdGxlKTtcbiAgc3ViQ291bnQgPSBzdWJDb3VudCArIDE7XG4gIGNvbnN0IHN1YkdyYXBoID0ge1xuICAgIGlkLFxuICAgIG5vZGVzOiBub2RlTGlzdCxcbiAgICB0aXRsZTogdGl0bGUudHJpbSgpLFxuICAgIGNsYXNzZXM6IFtdLFxuICAgIGRpcixcbiAgICBsYWJlbFR5cGU6IF90aXRsZS50eXBlXG4gIH07XG4gIGxvZy5pbmZvKFwiQWRkaW5nXCIsIHN1YkdyYXBoLmlkLCBzdWJHcmFwaC5ub2Rlcywgc3ViR3JhcGguZGlyKTtcbiAgc3ViR3JhcGgubm9kZXMgPSBtYWtlVW5pcShzdWJHcmFwaCwgc3ViR3JhcGhzKS5ub2RlcztcbiAgc3ViR3JhcGhzLnB1c2goc3ViR3JhcGgpO1xuICBzdWJHcmFwaExvb2t1cFtpZF0gPSBzdWJHcmFwaDtcbiAgcmV0dXJuIGlkO1xufTtcbmNvbnN0IGdldFBvc0ZvcklkID0gZnVuY3Rpb24oaWQpIHtcbiAgZm9yIChjb25zdCBbaSwgc3ViR3JhcGhdIG9mIHN1YkdyYXBocy5lbnRyaWVzKCkpIHtcbiAgICBpZiAoc3ViR3JhcGguaWQgPT09IGlkKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufTtcbmxldCBzZWNDb3VudCA9IC0xO1xuY29uc3QgcG9zQ3Jvc3NSZWYgPSBbXTtcbmNvbnN0IGluZGV4Tm9kZXMyID0gZnVuY3Rpb24oaWQsIHBvcykge1xuICBjb25zdCBub2RlcyA9IHN1YkdyYXBoc1twb3NdLm5vZGVzO1xuICBzZWNDb3VudCA9IHNlY0NvdW50ICsgMTtcbiAgaWYgKHNlY0NvdW50ID4gMmUzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHBvc0Nyb3NzUmVmW3NlY0NvdW50XSA9IHBvcztcbiAgaWYgKHN1YkdyYXBoc1twb3NdLmlkID09PSBpZCkge1xuICAgIHJldHVybiB7XG4gICAgICByZXN1bHQ6IHRydWUsXG4gICAgICBjb3VudDogMFxuICAgIH07XG4gIH1cbiAgbGV0IGNvdW50ID0gMDtcbiAgbGV0IHBvc0NvdW50ID0gMTtcbiAgd2hpbGUgKGNvdW50IDwgbm9kZXMubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hpbGRQb3MgPSBnZXRQb3NGb3JJZChub2Rlc1tjb3VudF0pO1xuICAgIGlmIChjaGlsZFBvcyA+PSAwKSB7XG4gICAgICBjb25zdCByZXMgPSBpbmRleE5vZGVzMihpZCwgY2hpbGRQb3MpO1xuICAgICAgaWYgKHJlcy5yZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXN1bHQ6IHRydWUsXG4gICAgICAgICAgY291bnQ6IHBvc0NvdW50ICsgcmVzLmNvdW50XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3NDb3VudCA9IHBvc0NvdW50ICsgcmVzLmNvdW50O1xuICAgICAgfVxuICAgIH1cbiAgICBjb3VudCA9IGNvdW50ICsgMTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHJlc3VsdDogZmFsc2UsXG4gICAgY291bnQ6IHBvc0NvdW50XG4gIH07XG59O1xuY29uc3QgZ2V0RGVwdGhGaXJzdFBvcyA9IGZ1bmN0aW9uKHBvcykge1xuICByZXR1cm4gcG9zQ3Jvc3NSZWZbcG9zXTtcbn07XG5jb25zdCBpbmRleE5vZGVzID0gZnVuY3Rpb24oKSB7XG4gIHNlY0NvdW50ID0gLTE7XG4gIGlmIChzdWJHcmFwaHMubGVuZ3RoID4gMCkge1xuICAgIGluZGV4Tm9kZXMyKFwibm9uZVwiLCBzdWJHcmFwaHMubGVuZ3RoIC0gMSk7XG4gIH1cbn07XG5jb25zdCBnZXRTdWJHcmFwaHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHN1YkdyYXBocztcbn07XG5jb25zdCBmaXJzdEdyYXBoID0gKCkgPT4ge1xuICBpZiAoZmlyc3RHcmFwaEZsYWcpIHtcbiAgICBmaXJzdEdyYXBoRmxhZyA9IGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5jb25zdCBkZXN0cnVjdFN0YXJ0TGluayA9IChfc3RyKSA9PiB7XG4gIGxldCBzdHIgPSBfc3RyLnRyaW0oKTtcbiAgbGV0IHR5cGUgPSBcImFycm93X29wZW5cIjtcbiAgc3dpdGNoIChzdHJbMF0pIHtcbiAgICBjYXNlIFwiPFwiOlxuICAgICAgdHlwZSA9IFwiYXJyb3dfcG9pbnRcIjtcbiAgICAgIHN0ciA9IHN0ci5zbGljZSgxKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ4XCI6XG4gICAgICB0eXBlID0gXCJhcnJvd19jcm9zc1wiO1xuICAgICAgc3RyID0gc3RyLnNsaWNlKDEpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcIm9cIjpcbiAgICAgIHR5cGUgPSBcImFycm93X2NpcmNsZVwiO1xuICAgICAgc3RyID0gc3RyLnNsaWNlKDEpO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgbGV0IHN0cm9rZSA9IFwibm9ybWFsXCI7XG4gIGlmIChzdHIuaW5jbHVkZXMoXCI9XCIpKSB7XG4gICAgc3Ryb2tlID0gXCJ0aGlja1wiO1xuICB9XG4gIGlmIChzdHIuaW5jbHVkZXMoXCIuXCIpKSB7XG4gICAgc3Ryb2tlID0gXCJkb3R0ZWRcIjtcbiAgfVxuICByZXR1cm4geyB0eXBlLCBzdHJva2UgfTtcbn07XG5jb25zdCBjb3VudENoYXIgPSAoY2hhciwgc3RyKSA9PiB7XG4gIGNvbnN0IGxlbmd0aCA9IHN0ci5sZW5ndGg7XG4gIGxldCBjb3VudCA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoc3RyW2ldID09PSBjaGFyKSB7XG4gICAgICArK2NvdW50O1xuICAgIH1cbiAgfVxuICByZXR1cm4gY291bnQ7XG59O1xuY29uc3QgZGVzdHJ1Y3RFbmRMaW5rID0gKF9zdHIpID0+IHtcbiAgY29uc3Qgc3RyID0gX3N0ci50cmltKCk7XG4gIGxldCBsaW5lID0gc3RyLnNsaWNlKDAsIC0xKTtcbiAgbGV0IHR5cGUgPSBcImFycm93X29wZW5cIjtcbiAgc3dpdGNoIChzdHIuc2xpY2UoLTEpKSB7XG4gICAgY2FzZSBcInhcIjpcbiAgICAgIHR5cGUgPSBcImFycm93X2Nyb3NzXCI7XG4gICAgICBpZiAoc3RyWzBdID09PSBcInhcIikge1xuICAgICAgICB0eXBlID0gXCJkb3VibGVfXCIgKyB0eXBlO1xuICAgICAgICBsaW5lID0gbGluZS5zbGljZSgxKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCI+XCI6XG4gICAgICB0eXBlID0gXCJhcnJvd19wb2ludFwiO1xuICAgICAgaWYgKHN0clswXSA9PT0gXCI8XCIpIHtcbiAgICAgICAgdHlwZSA9IFwiZG91YmxlX1wiICsgdHlwZTtcbiAgICAgICAgbGluZSA9IGxpbmUuc2xpY2UoMSk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwib1wiOlxuICAgICAgdHlwZSA9IFwiYXJyb3dfY2lyY2xlXCI7XG4gICAgICBpZiAoc3RyWzBdID09PSBcIm9cIikge1xuICAgICAgICB0eXBlID0gXCJkb3VibGVfXCIgKyB0eXBlO1xuICAgICAgICBsaW5lID0gbGluZS5zbGljZSgxKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICB9XG4gIGxldCBzdHJva2UgPSBcIm5vcm1hbFwiO1xuICBsZXQgbGVuZ3RoID0gbGluZS5sZW5ndGggLSAxO1xuICBpZiAobGluZVswXSA9PT0gXCI9XCIpIHtcbiAgICBzdHJva2UgPSBcInRoaWNrXCI7XG4gIH1cbiAgaWYgKGxpbmVbMF0gPT09IFwiflwiKSB7XG4gICAgc3Ryb2tlID0gXCJpbnZpc2libGVcIjtcbiAgfVxuICBsZXQgZG90cyA9IGNvdW50Q2hhcihcIi5cIiwgbGluZSk7XG4gIGlmIChkb3RzKSB7XG4gICAgc3Ryb2tlID0gXCJkb3R0ZWRcIjtcbiAgICBsZW5ndGggPSBkb3RzO1xuICB9XG4gIHJldHVybiB7IHR5cGUsIHN0cm9rZSwgbGVuZ3RoIH07XG59O1xuY29uc3QgZGVzdHJ1Y3RMaW5rID0gKF9zdHIsIF9zdGFydFN0cikgPT4ge1xuICBjb25zdCBpbmZvID0gZGVzdHJ1Y3RFbmRMaW5rKF9zdHIpO1xuICBsZXQgc3RhcnRJbmZvO1xuICBpZiAoX3N0YXJ0U3RyKSB7XG4gICAgc3RhcnRJbmZvID0gZGVzdHJ1Y3RTdGFydExpbmsoX3N0YXJ0U3RyKTtcbiAgICBpZiAoc3RhcnRJbmZvLnN0cm9rZSAhPT0gaW5mby5zdHJva2UpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6IFwiSU5WQUxJRFwiLCBzdHJva2U6IFwiSU5WQUxJRFwiIH07XG4gICAgfVxuICAgIGlmIChzdGFydEluZm8udHlwZSA9PT0gXCJhcnJvd19vcGVuXCIpIHtcbiAgICAgIHN0YXJ0SW5mby50eXBlID0gaW5mby50eXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc3RhcnRJbmZvLnR5cGUgIT09IGluZm8udHlwZSkge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcIklOVkFMSURcIiwgc3Ryb2tlOiBcIklOVkFMSURcIiB9O1xuICAgICAgfVxuICAgICAgc3RhcnRJbmZvLnR5cGUgPSBcImRvdWJsZV9cIiArIHN0YXJ0SW5mby50eXBlO1xuICAgIH1cbiAgICBpZiAoc3RhcnRJbmZvLnR5cGUgPT09IFwiZG91YmxlX2Fycm93XCIpIHtcbiAgICAgIHN0YXJ0SW5mby50eXBlID0gXCJkb3VibGVfYXJyb3dfcG9pbnRcIjtcbiAgICB9XG4gICAgc3RhcnRJbmZvLmxlbmd0aCA9IGluZm8ubGVuZ3RoO1xuICAgIHJldHVybiBzdGFydEluZm87XG4gIH1cbiAgcmV0dXJuIGluZm87XG59O1xuY29uc3QgZXhpc3RzID0gKGFsbFNncywgX2lkKSA9PiB7XG4gIGxldCByZXMgPSBmYWxzZTtcbiAgYWxsU2dzLmZvckVhY2goKHNnKSA9PiB7XG4gICAgY29uc3QgcG9zID0gc2cubm9kZXMuaW5kZXhPZihfaWQpO1xuICAgIGlmIChwb3MgPj0gMCkge1xuICAgICAgcmVzID0gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzO1xufTtcbmNvbnN0IG1ha2VVbmlxID0gKHNnLCBhbGxTdWJncmFwaHMpID0+IHtcbiAgY29uc3QgcmVzID0gW107XG4gIHNnLm5vZGVzLmZvckVhY2goKF9pZCwgcG9zKSA9PiB7XG4gICAgaWYgKCFleGlzdHMoYWxsU3ViZ3JhcGhzLCBfaWQpKSB7XG4gICAgICByZXMucHVzaChzZy5ub2Rlc1twb3NdKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4geyBub2RlczogcmVzIH07XG59O1xuY29uc3QgbGV4ID0ge1xuICBmaXJzdEdyYXBoXG59O1xuY29uc3QgZmxvd0RiID0ge1xuICBkZWZhdWx0Q29uZmlnOiAoKSA9PiBkZWZhdWx0Q29uZmlnLmZsb3djaGFydCxcbiAgc2V0QWNjVGl0bGUsXG4gIGdldEFjY1RpdGxlLFxuICBnZXRBY2NEZXNjcmlwdGlvbixcbiAgc2V0QWNjRGVzY3JpcHRpb24sXG4gIGFkZFZlcnRleCxcbiAgbG9va1VwRG9tSWQsXG4gIGFkZExpbmssXG4gIHVwZGF0ZUxpbmtJbnRlcnBvbGF0ZSxcbiAgdXBkYXRlTGluayxcbiAgYWRkQ2xhc3MsXG4gIHNldERpcmVjdGlvbixcbiAgc2V0Q2xhc3MsXG4gIHNldFRvb2x0aXAsXG4gIGdldFRvb2x0aXAsXG4gIHNldENsaWNrRXZlbnQsXG4gIHNldExpbmssXG4gIGJpbmRGdW5jdGlvbnMsXG4gIGdldERpcmVjdGlvbixcbiAgZ2V0VmVydGljZXMsXG4gIGdldEVkZ2VzLFxuICBnZXRDbGFzc2VzLFxuICBjbGVhcixcbiAgc2V0R2VuLFxuICBkZWZhdWx0U3R5bGUsXG4gIGFkZFN1YkdyYXBoLFxuICBnZXREZXB0aEZpcnN0UG9zLFxuICBpbmRleE5vZGVzLFxuICBnZXRTdWJHcmFwaHMsXG4gIGRlc3RydWN0TGluayxcbiAgbGV4LFxuICBleGlzdHMsXG4gIG1ha2VVbmlxLFxuICBzZXREaWFncmFtVGl0bGUsXG4gIGdldERpYWdyYW1UaXRsZVxufTtcbmNvbnN0IGRiID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5mcmVlemUoLyogQF9fUFVSRV9fICovIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgYWRkQ2xhc3MsXG4gIGFkZExpbmssXG4gIGFkZFNpbmdsZUxpbmssXG4gIGFkZFN1YkdyYXBoLFxuICBhZGRWZXJ0ZXgsXG4gIGJpbmRGdW5jdGlvbnMsXG4gIGNsZWFyLFxuICBkZWZhdWx0OiBmbG93RGIsXG4gIGRlZmF1bHRTdHlsZSxcbiAgZGVzdHJ1Y3RMaW5rLFxuICBmaXJzdEdyYXBoLFxuICBnZXRDbGFzc2VzLFxuICBnZXREZXB0aEZpcnN0UG9zLFxuICBnZXREaXJlY3Rpb24sXG4gIGdldEVkZ2VzLFxuICBnZXRTdWJHcmFwaHMsXG4gIGdldFRvb2x0aXAsXG4gIGdldFZlcnRpY2VzLFxuICBpbmRleE5vZGVzLFxuICBsZXgsXG4gIGxvb2tVcERvbUlkLFxuICBzZXRDbGFzcyxcbiAgc2V0Q2xpY2tFdmVudCxcbiAgc2V0RGlyZWN0aW9uLFxuICBzZXRHZW4sXG4gIHNldExpbmssXG4gIHVwZGF0ZUxpbmssXG4gIHVwZGF0ZUxpbmtJbnRlcnBvbGF0ZVxufSwgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiBcIk1vZHVsZVwiIH0pKTtcbmV4cG9ydCB7XG4gIGRiIGFzIGQsXG4gIGZsb3dEYiBhcyBmLFxuICBwYXJzZXIkMSBhcyBwXG59O1xuIiwKICAgICJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN5bWJvbFRhZyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzU3ltYm9sO1xuIiwKICAgICIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tYXBgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZVxuICogc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheU1hcDtcbiIsCiAgICAiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuaW1wb3J0IGFycmF5TWFwIGZyb20gJy4vX2FycmF5TWFwLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5pbXBvcnQgaXNTeW1ib2wgZnJvbSAnLi9pc1N5bWJvbC5qcyc7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIElORklOSVRZID0gMSAvIDA7XG5cbi8qKiBVc2VkIHRvIGNvbnZlcnQgc3ltYm9scyB0byBwcmltaXRpdmVzIGFuZCBzdHJpbmdzLiAqL1xudmFyIHN5bWJvbFByb3RvID0gU3ltYm9sID8gU3ltYm9sLnByb3RvdHlwZSA6IHVuZGVmaW5lZCxcbiAgICBzeW1ib2xUb1N0cmluZyA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udG9TdHJpbmcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udG9TdHJpbmdgIHdoaWNoIGRvZXNuJ3QgY29udmVydCBudWxsaXNoXG4gKiB2YWx1ZXMgdG8gZW1wdHkgc3RyaW5ncy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRvU3RyaW5nKHZhbHVlKSB7XG4gIC8vIEV4aXQgZWFybHkgZm9yIHN0cmluZ3MgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBoaXQgaW4gc29tZSBlbnZpcm9ubWVudHMuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgLy8gUmVjdXJzaXZlbHkgY29udmVydCB2YWx1ZXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIGJhc2VUb1N0cmluZykgKyAnJztcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHN5bWJvbFRvU3RyaW5nID8gc3ltYm9sVG9TdHJpbmcuY2FsbCh2YWx1ZSkgOiAnJztcbiAgfVxuICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xuICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VUb1N0cmluZztcbiIsCiAgICAiLyoqIFVzZWQgdG8gbWF0Y2ggYSBzaW5nbGUgd2hpdGVzcGFjZSBjaGFyYWN0ZXIuICovXG52YXIgcmVXaGl0ZXNwYWNlID0gL1xccy87XG5cbi8qKlxuICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbUVuZGAgdG8gZ2V0IHRoZSBpbmRleCBvZiB0aGUgbGFzdCBub24td2hpdGVzcGFjZVxuICogY2hhcmFjdGVyIG9mIGBzdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rlci5cbiAqL1xuZnVuY3Rpb24gdHJpbW1lZEVuZEluZGV4KHN0cmluZykge1xuICB2YXIgaW5kZXggPSBzdHJpbmcubGVuZ3RoO1xuXG4gIHdoaWxlIChpbmRleC0tICYmIHJlV2hpdGVzcGFjZS50ZXN0KHN0cmluZy5jaGFyQXQoaW5kZXgpKSkge31cbiAgcmV0dXJuIGluZGV4O1xufVxuXG5leHBvcnQgZGVmYXVsdCB0cmltbWVkRW5kSW5kZXg7XG4iLAogICAgImltcG9ydCB0cmltbWVkRW5kSW5kZXggZnJvbSAnLi9fdHJpbW1lZEVuZEluZGV4LmpzJztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggbGVhZGluZyB3aGl0ZXNwYWNlLiAqL1xudmFyIHJlVHJpbVN0YXJ0ID0gL15cXHMrLztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50cmltYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB0cmltbWVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRyaW0oc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmdcbiAgICA/IHN0cmluZy5zbGljZSgwLCB0cmltbWVkRW5kSW5kZXgoc3RyaW5nKSArIDEpLnJlcGxhY2UocmVUcmltU3RhcnQsICcnKVxuICAgIDogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVHJpbTtcbiIsCiAgICAiaW1wb3J0IGJhc2VUcmltIGZyb20gJy4vX2Jhc2VUcmltLmpzJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcbmltcG9ydCBpc1N5bWJvbCBmcm9tICcuL2lzU3ltYm9sLmpzJztcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTkFOID0gMCAvIDA7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgbnVtYmVyLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvTnVtYmVyKDMuMik7XG4gKiAvLyA9PiAzLjJcbiAqXG4gKiBfLnRvTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gNWUtMzI0XG4gKlxuICogXy50b051bWJlcihJbmZpbml0eSk7XG4gKiAvLyA9PiBJbmZpbml0eVxuICpcbiAqIF8udG9OdW1iZXIoJzMuMicpO1xuICogLy8gPT4gMy4yXG4gKi9cbmZ1bmN0aW9uIHRvTnVtYmVyKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiBOQU47XG4gIH1cbiAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHZhciBvdGhlciA9IHR5cGVvZiB2YWx1ZS52YWx1ZU9mID09ICdmdW5jdGlvbicgPyB2YWx1ZS52YWx1ZU9mKCkgOiB2YWx1ZTtcbiAgICB2YWx1ZSA9IGlzT2JqZWN0KG90aGVyKSA/IChvdGhlciArICcnKSA6IG90aGVyO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6ICt2YWx1ZTtcbiAgfVxuICB2YWx1ZSA9IGJhc2VUcmltKHZhbHVlKTtcbiAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgOiAocmVJc0JhZEhleC50ZXN0KHZhbHVlKSA/IE5BTiA6ICt2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRvTnVtYmVyO1xuIiwKICAgICJpbXBvcnQgdG9OdW1iZXIgZnJvbSAnLi90b051bWJlci5qcyc7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIElORklOSVRZID0gMSAvIDAsXG4gICAgTUFYX0lOVEVHRVIgPSAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwODtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgZmluaXRlIG51bWJlci5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTIuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgbnVtYmVyLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvRmluaXRlKDMuMik7XG4gKiAvLyA9PiAzLjJcbiAqXG4gKiBfLnRvRmluaXRlKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gNWUtMzI0XG4gKlxuICogXy50b0Zpbml0ZShJbmZpbml0eSk7XG4gKiAvLyA9PiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOFxuICpcbiAqIF8udG9GaW5pdGUoJzMuMicpO1xuICogLy8gPT4gMy4yXG4gKi9cbmZ1bmN0aW9uIHRvRmluaXRlKHZhbHVlKSB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6IDA7XG4gIH1cbiAgdmFsdWUgPSB0b051bWJlcih2YWx1ZSk7XG4gIGlmICh2YWx1ZSA9PT0gSU5GSU5JVFkgfHwgdmFsdWUgPT09IC1JTkZJTklUWSkge1xuICAgIHZhciBzaWduID0gKHZhbHVlIDwgMCA/IC0xIDogMSk7XG4gICAgcmV0dXJuIHNpZ24gKiBNQVhfSU5URUdFUjtcbiAgfVxuICByZXR1cm4gdmFsdWUgPT09IHZhbHVlID8gdmFsdWUgOiAwO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b0Zpbml0ZTtcbiIsCiAgICAiaW1wb3J0IHRvRmluaXRlIGZyb20gJy4vdG9GaW5pdGUuanMnO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gaW50ZWdlci5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvblxuICogW2BUb0ludGVnZXJgXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9pbnRlZ2VyKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBpbnRlZ2VyLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvSW50ZWdlcigzLjIpO1xuICogLy8gPT4gM1xuICpcbiAqIF8udG9JbnRlZ2VyKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gMFxuICpcbiAqIF8udG9JbnRlZ2VyKEluZmluaXR5KTtcbiAqIC8vID0+IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4XG4gKlxuICogXy50b0ludGVnZXIoJzMuMicpO1xuICogLy8gPT4gM1xuICovXG5mdW5jdGlvbiB0b0ludGVnZXIodmFsdWUpIHtcbiAgdmFyIHJlc3VsdCA9IHRvRmluaXRlKHZhbHVlKSxcbiAgICAgIHJlbWFpbmRlciA9IHJlc3VsdCAlIDE7XG5cbiAgcmV0dXJuIHJlc3VsdCA9PT0gcmVzdWx0ID8gKHJlbWFpbmRlciA/IHJlc3VsdCAtIHJlbWFpbmRlciA6IHJlc3VsdCkgOiAwO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b0ludGVnZXI7XG4iLAogICAgIi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyBgdW5kZWZpbmVkYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuMy4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRpbWVzKDIsIF8ubm9vcCk7XG4gKiAvLyA9PiBbdW5kZWZpbmVkLCB1bmRlZmluZWRdXG4gKi9cbmZ1bmN0aW9uIG5vb3AoKSB7XG4gIC8vIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQuXG59XG5cbmV4cG9ydCBkZWZhdWx0IG5vb3A7XG4iLAogICAgIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZvckVhY2hgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBhcnJheUVhY2goYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpID09PSBmYWxzZSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlFYWNoO1xuIiwKICAgICIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbmRJbmRleGAgYW5kIGBfLmZpbmRMYXN0SW5kZXhgIHdpdGhvdXRcbiAqIHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgsIGZyb21SaWdodCkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgaW5kZXggPSBmcm9tSW5kZXggKyAoZnJvbVJpZ2h0ID8gMSA6IC0xKTtcblxuICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgIGlmIChwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUZpbmRJbmRleDtcbiIsCiAgICAiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc05hTmAgd2l0aG91dCBzdXBwb3J0IGZvciBudW1iZXIgb2JqZWN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBgTmFOYCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNOYU4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzTmFOO1xuIiwKICAgICIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5pbmRleE9mYCB3aGljaCBwZXJmb3JtcyBzdHJpY3QgZXF1YWxpdHlcbiAqIGNvbXBhcmlzb25zIG9mIHZhbHVlcywgaS5lLiBgPT09YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBzdHJpY3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsXG4gICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpZiAoYXJyYXlbaW5kZXhdID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0cmljdEluZGV4T2Y7XG4iLAogICAgImltcG9ydCBiYXNlRmluZEluZGV4IGZyb20gJy4vX2Jhc2VGaW5kSW5kZXguanMnO1xuaW1wb3J0IGJhc2VJc05hTiBmcm9tICcuL19iYXNlSXNOYU4uanMnO1xuaW1wb3J0IHN0cmljdEluZGV4T2YgZnJvbSAnLi9fc3RyaWN0SW5kZXhPZi5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW5kZXhPZmAgd2l0aG91dCBgZnJvbUluZGV4YCBib3VuZHMgY2hlY2tzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdmFsdWVcbiAgICA/IHN0cmljdEluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpXG4gICAgOiBiYXNlRmluZEluZGV4KGFycmF5LCBiYXNlSXNOYU4sIGZyb21JbmRleCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VJbmRleE9mO1xuIiwKICAgICJpbXBvcnQgYmFzZUluZGV4T2YgZnJvbSAnLi9fYmFzZUluZGV4T2YuanMnO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5pbmNsdWRlc2AgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gKiBzcGVjaWZ5aW5nIGFuIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHRhcmdldGAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlJbmNsdWRlcyhhcnJheSwgdmFsdWUpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICByZXR1cm4gISFsZW5ndGggJiYgYmFzZUluZGV4T2YoYXJyYXksIHZhbHVlLCAwKSA+IC0xO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheUluY2x1ZGVzO1xuIiwKICAgICJpbXBvcnQgYXJyYXlMaWtlS2V5cyBmcm9tICcuL19hcnJheUxpa2VLZXlzLmpzJztcbmltcG9ydCBiYXNlS2V5cyBmcm9tICcuL19iYXNlS2V5cy5qcyc7XG5pbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gKlxuICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuIFNlZSB0aGVcbiAqIFtFUyBzcGVjXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3Qua2V5cylcbiAqIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogICB0aGlzLmIgPSAyO1xuICogfVxuICpcbiAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gKlxuICogXy5rZXlzKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICpcbiAqIF8ua2V5cygnaGknKTtcbiAqIC8vID0+IFsnMCcsICcxJ11cbiAqL1xuZnVuY3Rpb24ga2V5cyhvYmplY3QpIHtcbiAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCkgOiBiYXNlS2V5cyhvYmplY3QpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBrZXlzO1xuIiwKICAgICJpbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzU3ltYm9sIGZyb20gJy4vaXNTeW1ib2wuanMnO1xuXG4vKiogVXNlZCB0byBtYXRjaCBwcm9wZXJ0eSBuYW1lcyB3aXRoaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgcmVJc0RlZXBQcm9wID0gL1xcLnxcXFsoPzpbXltcXF1dKnwoW1wiJ10pKD86KD8hXFwxKVteXFxcXF18XFxcXC4pKj9cXDEpXFxdLyxcbiAgICByZUlzUGxhaW5Qcm9wID0gL15cXHcqJC87XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0eSBuYW1lIGFuZCBub3QgYSBwcm9wZXJ0eSBwYXRoLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNLZXkodmFsdWUsIG9iamVjdCkge1xuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGlmICh0eXBlID09ICdudW1iZXInIHx8IHR5cGUgPT0gJ3N5bWJvbCcgfHwgdHlwZSA9PSAnYm9vbGVhbicgfHxcbiAgICAgIHZhbHVlID09IG51bGwgfHwgaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIHJlSXNQbGFpblByb3AudGVzdCh2YWx1ZSkgfHwgIXJlSXNEZWVwUHJvcC50ZXN0KHZhbHVlKSB8fFxuICAgIChvYmplY3QgIT0gbnVsbCAmJiB2YWx1ZSBpbiBPYmplY3Qob2JqZWN0KSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzS2V5O1xuIiwKICAgICJpbXBvcnQgbWVtb2l6ZSBmcm9tICcuL21lbW9pemUuanMnO1xuXG4vKiogVXNlZCBhcyB0aGUgbWF4aW11bSBtZW1vaXplIGNhY2hlIHNpemUuICovXG52YXIgTUFYX01FTU9JWkVfU0laRSA9IDUwMDtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWVtb2l6ZWAgd2hpY2ggY2xlYXJzIHRoZSBtZW1vaXplZCBmdW5jdGlvbidzXG4gKiBjYWNoZSB3aGVuIGl0IGV4Y2VlZHMgYE1BWF9NRU1PSVpFX1NJWkVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZUNhcHBlZChmdW5jKSB7XG4gIHZhciByZXN1bHQgPSBtZW1vaXplKGZ1bmMsIGZ1bmN0aW9uKGtleSkge1xuICAgIGlmIChjYWNoZS5zaXplID09PSBNQVhfTUVNT0laRV9TSVpFKSB7XG4gICAgICBjYWNoZS5jbGVhcigpO1xuICAgIH1cbiAgICByZXR1cm4ga2V5O1xuICB9KTtcblxuICB2YXIgY2FjaGUgPSByZXN1bHQuY2FjaGU7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW9pemVDYXBwZWQ7XG4iLAogICAgImltcG9ydCBtZW1vaXplQ2FwcGVkIGZyb20gJy4vX21lbW9pemVDYXBwZWQuanMnO1xuXG4vKiogVXNlZCB0byBtYXRjaCBwcm9wZXJ0eSBuYW1lcyB3aXRoaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgcmVQcm9wTmFtZSA9IC9bXi5bXFxdXSt8XFxbKD86KC0/XFxkKyg/OlxcLlxcZCspPyl8KFtcIiddKSgoPzooPyFcXDIpW15cXFxcXXxcXFxcLikqPylcXDIpXFxdfCg/PSg/OlxcLnxcXFtcXF0pKD86XFwufFxcW1xcXXwkKSkvZztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggYmFja3NsYXNoZXMgaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgcmVFc2NhcGVDaGFyID0gL1xcXFwoXFxcXCk/L2c7XG5cbi8qKlxuICogQ29udmVydHMgYHN0cmluZ2AgdG8gYSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAqL1xudmFyIHN0cmluZ1RvUGF0aCA9IG1lbW9pemVDYXBwZWQoZnVuY3Rpb24oc3RyaW5nKSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgaWYgKHN0cmluZy5jaGFyQ29kZUF0KDApID09PSA0NiAvKiAuICovKSB7XG4gICAgcmVzdWx0LnB1c2goJycpO1xuICB9XG4gIHN0cmluZy5yZXBsYWNlKHJlUHJvcE5hbWUsIGZ1bmN0aW9uKG1hdGNoLCBudW1iZXIsIHF1b3RlLCBzdWJTdHJpbmcpIHtcbiAgICByZXN1bHQucHVzaChxdW90ZSA/IHN1YlN0cmluZy5yZXBsYWNlKHJlRXNjYXBlQ2hhciwgJyQxJykgOiAobnVtYmVyIHx8IG1hdGNoKSk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHN0cmluZ1RvUGF0aDtcbiIsCiAgICAiaW1wb3J0IGJhc2VUb1N0cmluZyBmcm9tICcuL19iYXNlVG9TdHJpbmcuanMnO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBmb3IgYG51bGxgXG4gKiBhbmQgYHVuZGVmaW5lZGAgdmFsdWVzLiBUaGUgc2lnbiBvZiBgLTBgIGlzIHByZXNlcnZlZC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9TdHJpbmcobnVsbCk7XG4gKiAvLyA9PiAnJ1xuICpcbiAqIF8udG9TdHJpbmcoLTApO1xuICogLy8gPT4gJy0wJ1xuICpcbiAqIF8udG9TdHJpbmcoWzEsIDIsIDNdKTtcbiAqIC8vID0+ICcxLDIsMydcbiAqL1xuZnVuY3Rpb24gdG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnJyA6IGJhc2VUb1N0cmluZyh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRvU3RyaW5nO1xuIiwKICAgICJpbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzS2V5IGZyb20gJy4vX2lzS2V5LmpzJztcbmltcG9ydCBzdHJpbmdUb1BhdGggZnJvbSAnLi9fc3RyaW5nVG9QYXRoLmpzJztcbmltcG9ydCB0b1N0cmluZyBmcm9tICcuL3RvU3RyaW5nLmpzJztcblxuLyoqXG4gKiBDYXN0cyBgdmFsdWVgIHRvIGEgcGF0aCBhcnJheSBpZiBpdCdzIG5vdCBvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjYXN0IHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGNhc3RQYXRoKHZhbHVlLCBvYmplY3QpIHtcbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBpc0tleSh2YWx1ZSwgb2JqZWN0KSA/IFt2YWx1ZV0gOiBzdHJpbmdUb1BhdGgodG9TdHJpbmcodmFsdWUpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2FzdFBhdGg7XG4iLAogICAgImltcG9ydCBpc1N5bWJvbCBmcm9tICcuL2lzU3ltYm9sLmpzJztcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgSU5GSU5JVFkgPSAxIC8gMDtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIGtleSBpZiBpdCdzIG5vdCBhIHN0cmluZyBvciBzeW1ib2wuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfHN5bWJvbH0gUmV0dXJucyB0aGUga2V5LlxuICovXG5mdW5jdGlvbiB0b0tleSh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xuICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRvS2V5O1xuIiwKICAgICJpbXBvcnQgY2FzdFBhdGggZnJvbSAnLi9fY2FzdFBhdGguanMnO1xuaW1wb3J0IHRvS2V5IGZyb20gJy4vX3RvS2V5LmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5nZXRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVmYXVsdCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXQob2JqZWN0LCBwYXRoKSB7XG4gIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuXG4gIHZhciBpbmRleCA9IDAsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aDtcblxuICB3aGlsZSAob2JqZWN0ICE9IG51bGwgJiYgaW5kZXggPCBsZW5ndGgpIHtcbiAgICBvYmplY3QgPSBvYmplY3RbdG9LZXkocGF0aFtpbmRleCsrXSldO1xuICB9XG4gIHJldHVybiAoaW5kZXggJiYgaW5kZXggPT0gbGVuZ3RoKSA/IG9iamVjdCA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUdldDtcbiIsCiAgICAiaW1wb3J0IGJhc2VHZXQgZnJvbSAnLi9fYmFzZUdldC5qcyc7XG5cbi8qKlxuICogR2V0cyB0aGUgdmFsdWUgYXQgYHBhdGhgIG9mIGBvYmplY3RgLiBJZiB0aGUgcmVzb2x2ZWQgdmFsdWUgaXNcbiAqIGB1bmRlZmluZWRgLCB0aGUgYGRlZmF1bHRWYWx1ZWAgaXMgcmV0dXJuZWQgaW4gaXRzIHBsYWNlLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy43LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcGFyYW0geyp9IFtkZWZhdWx0VmFsdWVdIFRoZSB2YWx1ZSByZXR1cm5lZCBmb3IgYHVuZGVmaW5lZGAgcmVzb2x2ZWQgdmFsdWVzLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9XSB9O1xuICpcbiAqIF8uZ2V0KG9iamVjdCwgJ2FbMF0uYi5jJyk7XG4gKiAvLyA9PiAzXG4gKlxuICogXy5nZXQob2JqZWN0LCBbJ2EnLCAnMCcsICdiJywgJ2MnXSk7XG4gKiAvLyA9PiAzXG4gKlxuICogXy5nZXQob2JqZWN0LCAnYS5iLmMnLCAnZGVmYXVsdCcpO1xuICogLy8gPT4gJ2RlZmF1bHQnXG4gKi9cbmZ1bmN0aW9uIGdldChvYmplY3QsIHBhdGgsIGRlZmF1bHRWYWx1ZSkge1xuICB2YXIgcmVzdWx0ID0gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG4gIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRWYWx1ZSA6IHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0O1xuIiwKICAgICIvKipcbiAqIEFwcGVuZHMgdGhlIGVsZW1lbnRzIG9mIGB2YWx1ZXNgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhcHBlbmQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlQdXNoKGFycmF5LCB2YWx1ZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgb2Zmc2V0ID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYXJyYXlbb2Zmc2V0ICsgaW5kZXhdID0gdmFsdWVzW2luZGV4XTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFycmF5UHVzaDtcbiIsCiAgICAiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuaW1wb3J0IGlzQXJndW1lbnRzIGZyb20gJy4vaXNBcmd1bWVudHMuanMnO1xuaW1wb3J0IGlzQXJyYXkgZnJvbSAnLi9pc0FycmF5LmpzJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ByZWFkYWJsZVN5bWJvbCA9IFN5bWJvbCA/IFN5bWJvbC5pc0NvbmNhdFNwcmVhZGFibGUgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBmbGF0dGVuYWJsZSBgYXJndW1lbnRzYCBvYmplY3Qgb3IgYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZmxhdHRlbmFibGUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNGbGF0dGVuYWJsZSh2YWx1ZSkge1xuICByZXR1cm4gaXNBcnJheSh2YWx1ZSkgfHwgaXNBcmd1bWVudHModmFsdWUpIHx8XG4gICAgISEoc3ByZWFkYWJsZVN5bWJvbCAmJiB2YWx1ZSAmJiB2YWx1ZVtzcHJlYWRhYmxlU3ltYm9sXSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzRmxhdHRlbmFibGU7XG4iLAogICAgImltcG9ydCBhcnJheVB1c2ggZnJvbSAnLi9fYXJyYXlQdXNoLmpzJztcbmltcG9ydCBpc0ZsYXR0ZW5hYmxlIGZyb20gJy4vX2lzRmxhdHRlbmFibGUuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZsYXR0ZW5gIHdpdGggc3VwcG9ydCBmb3IgcmVzdHJpY3RpbmcgZmxhdHRlbmluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gKiBAcGFyYW0ge251bWJlcn0gZGVwdGggVGhlIG1heGltdW0gcmVjdXJzaW9uIGRlcHRoLlxuICogQHBhcmFtIHtib29sZWFufSBbcHJlZGljYXRlPWlzRmxhdHRlbmFibGVdIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc1N0cmljdF0gUmVzdHJpY3QgdG8gdmFsdWVzIHRoYXQgcGFzcyBgcHJlZGljYXRlYCBjaGVja3MuXG4gKiBAcGFyYW0ge0FycmF5fSBbcmVzdWx0PVtdXSBUaGUgaW5pdGlhbCByZXN1bHQgdmFsdWUuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGJhc2VGbGF0dGVuKGFycmF5LCBkZXB0aCwgcHJlZGljYXRlLCBpc1N0cmljdCwgcmVzdWx0KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHByZWRpY2F0ZSB8fCAocHJlZGljYXRlID0gaXNGbGF0dGVuYWJsZSk7XG4gIHJlc3VsdCB8fCAocmVzdWx0ID0gW10pO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgIGlmIChkZXB0aCA+IDAgJiYgcHJlZGljYXRlKHZhbHVlKSkge1xuICAgICAgaWYgKGRlcHRoID4gMSkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBmbGF0dGVuIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICBiYXNlRmxhdHRlbih2YWx1ZSwgZGVwdGggLSAxLCBwcmVkaWNhdGUsIGlzU3RyaWN0LCByZXN1bHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXJyYXlQdXNoKHJlc3VsdCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWlzU3RyaWN0KSB7XG4gICAgICByZXN1bHRbcmVzdWx0Lmxlbmd0aF0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUZsYXR0ZW47XG4iLAogICAgImltcG9ydCBiYXNlRmxhdHRlbiBmcm9tICcuL19iYXNlRmxhdHRlbi5qcyc7XG5cbi8qKlxuICogRmxhdHRlbnMgYGFycmF5YCBhIHNpbmdsZSBsZXZlbCBkZWVwLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uZmxhdHRlbihbMSwgWzIsIFszLCBbNF1dLCA1XV0pO1xuICogLy8gPT4gWzEsIDIsIFszLCBbNF1dLCA1XVxuICovXG5mdW5jdGlvbiBmbGF0dGVuKGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgcmV0dXJuIGxlbmd0aCA/IGJhc2VGbGF0dGVuKGFycmF5LCAxKSA6IFtdO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmbGF0dGVuO1xuIiwKICAgICJpbXBvcnQgZmxhdHRlbiBmcm9tICcuL2ZsYXR0ZW4uanMnO1xuaW1wb3J0IG92ZXJSZXN0IGZyb20gJy4vX292ZXJSZXN0LmpzJztcbmltcG9ydCBzZXRUb1N0cmluZyBmcm9tICcuL19zZXRUb1N0cmluZy5qcyc7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggZmxhdHRlbnMgdGhlIHJlc3QgYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gZmxhdFJlc3QoZnVuYykge1xuICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgdW5kZWZpbmVkLCBmbGF0dGVuKSwgZnVuYyArICcnKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZmxhdFJlc3Q7XG4iLAogICAgIi8qKiBVc2VkIHRvIGNvbXBvc2UgdW5pY29kZSBjaGFyYWN0ZXIgY2xhc3Nlcy4gKi9cbnZhciByc0FzdHJhbFJhbmdlID0gJ1xcXFx1ZDgwMC1cXFxcdWRmZmYnLFxuICAgIHJzQ29tYm9NYXJrc1JhbmdlID0gJ1xcXFx1MDMwMC1cXFxcdTAzNmYnLFxuICAgIHJlQ29tYm9IYWxmTWFya3NSYW5nZSA9ICdcXFxcdWZlMjAtXFxcXHVmZTJmJyxcbiAgICByc0NvbWJvU3ltYm9sc1JhbmdlID0gJ1xcXFx1MjBkMC1cXFxcdTIwZmYnLFxuICAgIHJzQ29tYm9SYW5nZSA9IHJzQ29tYm9NYXJrc1JhbmdlICsgcmVDb21ib0hhbGZNYXJrc1JhbmdlICsgcnNDb21ib1N5bWJvbHNSYW5nZSxcbiAgICByc1ZhclJhbmdlID0gJ1xcXFx1ZmUwZVxcXFx1ZmUwZic7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgdW5pY29kZSBjYXB0dXJlIGdyb3Vwcy4gKi9cbnZhciByc1pXSiA9ICdcXFxcdTIwMGQnO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgc3RyaW5ncyB3aXRoIFt6ZXJvLXdpZHRoIGpvaW5lcnMgb3IgY29kZSBwb2ludHMgZnJvbSB0aGUgYXN0cmFsIHBsYW5lc10oaHR0cDovL2Vldi5lZS9ibG9nLzIwMTUvMDkvMTIvZGFyay1jb3JuZXJzLW9mLXVuaWNvZGUvKS4gKi9cbnZhciByZUhhc1VuaWNvZGUgPSBSZWdFeHAoJ1snICsgcnNaV0ogKyByc0FzdHJhbFJhbmdlICArIHJzQ29tYm9SYW5nZSArIHJzVmFyUmFuZ2UgKyAnXScpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgc3RyaW5nYCBjb250YWlucyBVbmljb2RlIHN5bWJvbHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGEgc3ltYm9sIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGhhc1VuaWNvZGUoc3RyaW5nKSB7XG4gIHJldHVybiByZUhhc1VuaWNvZGUudGVzdChzdHJpbmcpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNVbmljb2RlO1xuIiwKICAgICIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5yZWR1Y2VgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luaXRBY2N1bV0gU3BlY2lmeSB1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgIGFzXG4gKiAgdGhlIGluaXRpYWwgdmFsdWUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGFycmF5UmVkdWNlKGFycmF5LCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gIGlmIChpbml0QWNjdW0gJiYgbGVuZ3RoKSB7XG4gICAgYWNjdW11bGF0b3IgPSBhcnJheVsrK2luZGV4XTtcbiAgfVxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGFjY3VtdWxhdG9yID0gaXRlcmF0ZWUoYWNjdW11bGF0b3IsIGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgfVxuICByZXR1cm4gYWNjdW11bGF0b3I7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFycmF5UmVkdWNlO1xuIiwKICAgICJpbXBvcnQgY29weU9iamVjdCBmcm9tICcuL19jb3B5T2JqZWN0LmpzJztcbmltcG9ydCBrZXlzIGZyb20gJy4va2V5cy5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXNzaWduYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXNcbiAqIG9yIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlQXNzaWduKG9iamVjdCwgc291cmNlKSB7XG4gIHJldHVybiBvYmplY3QgJiYgY29weU9iamVjdChzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUFzc2lnbjtcbiIsCiAgICAiaW1wb3J0IGNvcHlPYmplY3QgZnJvbSAnLi9fY29weU9iamVjdC5qcyc7XG5pbXBvcnQga2V5c0luIGZyb20gJy4va2V5c0luLmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25JbmAgd2l0aG91dCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2VzXG4gKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnbkluKG9iamVjdCwgc291cmNlKSB7XG4gIHJldHVybiBvYmplY3QgJiYgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlQXNzaWduSW47XG4iLAogICAgIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheUZpbHRlcihhcnJheSwgcHJlZGljYXRlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXNJbmRleCA9IDAsXG4gICAgICByZXN1bHQgPSBbXTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlGaWx0ZXI7XG4iLAogICAgIi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBlbXB0eSBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGVtcHR5IGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgYXJyYXlzID0gXy50aW1lcygyLCBfLnN0dWJBcnJheSk7XG4gKlxuICogY29uc29sZS5sb2coYXJyYXlzKTtcbiAqIC8vID0+IFtbXSwgW11dXG4gKlxuICogY29uc29sZS5sb2coYXJyYXlzWzBdID09PSBhcnJheXNbMV0pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gc3R1YkFycmF5KCkge1xuICByZXR1cm4gW107XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0dWJBcnJheTtcbiIsCiAgICAiaW1wb3J0IGFycmF5RmlsdGVyIGZyb20gJy4vX2FycmF5RmlsdGVyLmpzJztcbmltcG9ydCBzdHViQXJyYXkgZnJvbSAnLi9zdHViQXJyYXkuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlR2V0U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICovXG52YXIgZ2V0U3ltYm9scyA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgcmV0dXJuIGFycmF5RmlsdGVyKG5hdGl2ZUdldFN5bWJvbHMob2JqZWN0KSwgZnVuY3Rpb24oc3ltYm9sKSB7XG4gICAgcmV0dXJuIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCBzeW1ib2wpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldFN5bWJvbHM7XG4iLAogICAgImltcG9ydCBjb3B5T2JqZWN0IGZyb20gJy4vX2NvcHlPYmplY3QuanMnO1xuaW1wb3J0IGdldFN5bWJvbHMgZnJvbSAnLi9fZ2V0U3ltYm9scy5qcyc7XG5cbi8qKlxuICogQ29waWVzIG93biBzeW1ib2xzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBzeW1ib2xzIGZyb20uXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgdG8uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb3B5U3ltYm9scyhzb3VyY2UsIG9iamVjdCkge1xuICByZXR1cm4gY29weU9iamVjdChzb3VyY2UsIGdldFN5bWJvbHMoc291cmNlKSwgb2JqZWN0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29weVN5bWJvbHM7XG4iLAogICAgImltcG9ydCBhcnJheVB1c2ggZnJvbSAnLi9fYXJyYXlQdXNoLmpzJztcbmltcG9ydCBnZXRQcm90b3R5cGUgZnJvbSAnLi9fZ2V0UHJvdG90eXBlLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzIGZyb20gJy4vX2dldFN5bWJvbHMuanMnO1xuaW1wb3J0IHN0dWJBcnJheSBmcm9tICcuL3N0dWJBcnJheS5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVHZXRTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2Ygc3ltYm9scy5cbiAqL1xudmFyIGdldFN5bWJvbHNJbiA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgd2hpbGUgKG9iamVjdCkge1xuICAgIGFycmF5UHVzaChyZXN1bHQsIGdldFN5bWJvbHMob2JqZWN0KSk7XG4gICAgb2JqZWN0ID0gZ2V0UHJvdG90eXBlKG9iamVjdCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldFN5bWJvbHNJbjtcbiIsCiAgICAiaW1wb3J0IGNvcHlPYmplY3QgZnJvbSAnLi9fY29weU9iamVjdC5qcyc7XG5pbXBvcnQgZ2V0U3ltYm9sc0luIGZyb20gJy4vX2dldFN5bWJvbHNJbi5qcyc7XG5cbi8qKlxuICogQ29waWVzIG93biBhbmQgaW5oZXJpdGVkIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyB0by5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlTeW1ib2xzSW4oc291cmNlLCBvYmplY3QpIHtcbiAgcmV0dXJuIGNvcHlPYmplY3Qoc291cmNlLCBnZXRTeW1ib2xzSW4oc291cmNlKSwgb2JqZWN0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29weVN5bWJvbHNJbjtcbiIsCiAgICAiaW1wb3J0IGFycmF5UHVzaCBmcm9tICcuL19hcnJheVB1c2guanMnO1xuaW1wb3J0IGlzQXJyYXkgZnJvbSAnLi9pc0FycmF5LmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0QWxsS2V5c2AgYW5kIGBnZXRBbGxLZXlzSW5gIHdoaWNoIHVzZXNcbiAqIGBrZXlzRnVuY2AgYW5kIGBzeW1ib2xzRnVuY2AgdG8gZ2V0IHRoZSBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZFxuICogc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0ga2V5c0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBvZiBgb2JqZWN0YC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHN5bWJvbHNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzLlxuICovXG5mdW5jdGlvbiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXNGdW5jLCBzeW1ib2xzRnVuYykge1xuICB2YXIgcmVzdWx0ID0ga2V5c0Z1bmMob2JqZWN0KTtcbiAgcmV0dXJuIGlzQXJyYXkob2JqZWN0KSA/IHJlc3VsdCA6IGFycmF5UHVzaChyZXN1bHQsIHN5bWJvbHNGdW5jKG9iamVjdCkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlR2V0QWxsS2V5cztcbiIsCiAgICAiaW1wb3J0IGJhc2VHZXRBbGxLZXlzIGZyb20gJy4vX2Jhc2VHZXRBbGxLZXlzLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzIGZyb20gJy4vX2dldFN5bWJvbHMuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzLlxuICovXG5mdW5jdGlvbiBnZXRBbGxLZXlzKG9iamVjdCkge1xuICByZXR1cm4gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzLCBnZXRTeW1ib2xzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0QWxsS2V5cztcbiIsCiAgICAiaW1wb3J0IGJhc2VHZXRBbGxLZXlzIGZyb20gJy4vX2Jhc2VHZXRBbGxLZXlzLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzSW4gZnJvbSAnLi9fZ2V0U3ltYm9sc0luLmpzJztcbmltcG9ydCBrZXlzSW4gZnJvbSAnLi9rZXlzSW4uanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMuXG4gKi9cbmZ1bmN0aW9uIGdldEFsbEtleXNJbihvYmplY3QpIHtcbiAgcmV0dXJuIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5c0luLCBnZXRTeW1ib2xzSW4pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRBbGxLZXlzSW47XG4iLAogICAgIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgYW4gYXJyYXkgY2xvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZUFycmF5KGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBuZXcgYXJyYXkuY29uc3RydWN0b3IobGVuZ3RoKTtcblxuICAvLyBBZGQgcHJvcGVydGllcyBhc3NpZ25lZCBieSBgUmVnRXhwI2V4ZWNgLlxuICBpZiAobGVuZ3RoICYmIHR5cGVvZiBhcnJheVswXSA9PSAnc3RyaW5nJyAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGFycmF5LCAnaW5kZXgnKSkge1xuICAgIHJlc3VsdC5pbmRleCA9IGFycmF5LmluZGV4O1xuICAgIHJlc3VsdC5pbnB1dCA9IGFycmF5LmlucHV0O1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGluaXRDbG9uZUFycmF5O1xuIiwKICAgICJpbXBvcnQgY2xvbmVBcnJheUJ1ZmZlciBmcm9tICcuL19jbG9uZUFycmF5QnVmZmVyLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYGRhdGFWaWV3YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGRhdGFWaWV3IFRoZSBkYXRhIHZpZXcgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIGRhdGEgdmlldy5cbiAqL1xuZnVuY3Rpb24gY2xvbmVEYXRhVmlldyhkYXRhVmlldywgaXNEZWVwKSB7XG4gIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKGRhdGFWaWV3LmJ1ZmZlcikgOiBkYXRhVmlldy5idWZmZXI7XG4gIHJldHVybiBuZXcgZGF0YVZpZXcuY29uc3RydWN0b3IoYnVmZmVyLCBkYXRhVmlldy5ieXRlT2Zmc2V0LCBkYXRhVmlldy5ieXRlTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVEYXRhVmlldztcbiIsCiAgICAiLyoqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGAgZmxhZ3MgZnJvbSB0aGVpciBjb2VyY2VkIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVGbGFncyA9IC9cXHcqJC87XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGByZWdleHBgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gcmVnZXhwIFRoZSByZWdleHAgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgcmVnZXhwLlxuICovXG5mdW5jdGlvbiBjbG9uZVJlZ0V4cChyZWdleHApIHtcbiAgdmFyIHJlc3VsdCA9IG5ldyByZWdleHAuY29uc3RydWN0b3IocmVnZXhwLnNvdXJjZSwgcmVGbGFncy5leGVjKHJlZ2V4cCkpO1xuICByZXN1bHQubGFzdEluZGV4ID0gcmVnZXhwLmxhc3RJbmRleDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVSZWdFeHA7XG4iLAogICAgImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcblxuLyoqIFVzZWQgdG8gY29udmVydCBzeW1ib2xzIHRvIHByaW1pdGl2ZXMgYW5kIHN0cmluZ3MuICovXG52YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgIHN5bWJvbFZhbHVlT2YgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnZhbHVlT2YgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoZSBgc3ltYm9sYCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzeW1ib2wgVGhlIHN5bWJvbCBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgc3ltYm9sIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gY2xvbmVTeW1ib2woc3ltYm9sKSB7XG4gIHJldHVybiBzeW1ib2xWYWx1ZU9mID8gT2JqZWN0KHN5bWJvbFZhbHVlT2YuY2FsbChzeW1ib2wpKSA6IHt9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbG9uZVN5bWJvbDtcbiIsCiAgICAiaW1wb3J0IGNsb25lQXJyYXlCdWZmZXIgZnJvbSAnLi9fY2xvbmVBcnJheUJ1ZmZlci5qcyc7XG5pbXBvcnQgY2xvbmVEYXRhVmlldyBmcm9tICcuL19jbG9uZURhdGFWaWV3LmpzJztcbmltcG9ydCBjbG9uZVJlZ0V4cCBmcm9tICcuL19jbG9uZVJlZ0V4cC5qcyc7XG5pbXBvcnQgY2xvbmVTeW1ib2wgZnJvbSAnLi9fY2xvbmVTeW1ib2wuanMnO1xuaW1wb3J0IGNsb25lVHlwZWRBcnJheSBmcm9tICcuL19jbG9uZVR5cGVkQXJyYXkuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUgYmFzZWQgb24gaXRzIGB0b1N0cmluZ1RhZ2AuXG4gKlxuICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjbG9uaW5nIHZhbHVlcyB3aXRoIHRhZ3Mgb2ZcbiAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTWFwYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBgU2V0YCwgb3IgYFN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lQnlUYWcob2JqZWN0LCB0YWcsIGlzRGVlcCkge1xuICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgcmV0dXJuIGNsb25lQXJyYXlCdWZmZXIob2JqZWN0KTtcblxuICAgIGNhc2UgYm9vbFRhZzpcbiAgICBjYXNlIGRhdGVUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3IoK29iamVjdCk7XG5cbiAgICBjYXNlIGRhdGFWaWV3VGFnOlxuICAgICAgcmV0dXJuIGNsb25lRGF0YVZpZXcob2JqZWN0LCBpc0RlZXApO1xuXG4gICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxuICAgIGNhc2UgdWludDhUYWc6IGNhc2UgdWludDhDbGFtcGVkVGFnOiBjYXNlIHVpbnQxNlRhZzogY2FzZSB1aW50MzJUYWc6XG4gICAgICByZXR1cm4gY2xvbmVUeXBlZEFycmF5KG9iamVjdCwgaXNEZWVwKTtcblxuICAgIGNhc2UgbWFwVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yO1xuXG4gICAgY2FzZSBudW1iZXJUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3Iob2JqZWN0KTtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgcmV0dXJuIGNsb25lUmVnRXhwKG9iamVjdCk7XG5cbiAgICBjYXNlIHNldFRhZzpcbiAgICAgIHJldHVybiBuZXcgQ3RvcjtcblxuICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgcmV0dXJuIGNsb25lU3ltYm9sKG9iamVjdCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgaW5pdENsb25lQnlUYWc7XG4iLAogICAgImltcG9ydCBnZXRUYWcgZnJvbSAnLi9fZ2V0VGFnLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgbWFwVGFnID0gJ1tvYmplY3QgTWFwXSc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNNYXBgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbWFwLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc01hcCh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBnZXRUYWcodmFsdWUpID09IG1hcFRhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzTWFwO1xuIiwKICAgICJpbXBvcnQgYmFzZUlzTWFwIGZyb20gJy4vX2Jhc2VJc01hcC5qcyc7XG5pbXBvcnQgYmFzZVVuYXJ5IGZyb20gJy4vX2Jhc2VVbmFyeS5qcyc7XG5pbXBvcnQgbm9kZVV0aWwgZnJvbSAnLi9fbm9kZVV0aWwuanMnO1xuXG4vKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xudmFyIG5vZGVJc01hcCA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzTWFwO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgTWFwYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBtYXAsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc01hcChuZXcgTWFwKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzTWFwKG5ldyBXZWFrTWFwKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc01hcCA9IG5vZGVJc01hcCA/IGJhc2VVbmFyeShub2RlSXNNYXApIDogYmFzZUlzTWFwO1xuXG5leHBvcnQgZGVmYXVsdCBpc01hcDtcbiIsCiAgICAiaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzZXRUYWcgPSAnW29iamVjdCBTZXRdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1NldGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzZXQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzU2V0KHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gc2V0VGFnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNTZXQ7XG4iLAogICAgImltcG9ydCBiYXNlSXNTZXQgZnJvbSAnLi9fYmFzZUlzU2V0LmpzJztcbmltcG9ydCBiYXNlVW5hcnkgZnJvbSAnLi9fYmFzZVVuYXJ5LmpzJztcbmltcG9ydCBub2RlVXRpbCBmcm9tICcuL19ub2RlVXRpbC5qcyc7XG5cbi8qIE5vZGUuanMgaGVscGVyIHJlZmVyZW5jZXMuICovXG52YXIgbm9kZUlzU2V0ID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNTZXQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTZXRgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMy4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHNldCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzU2V0KG5ldyBTZXQpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTZXQobmV3IFdlYWtTZXQpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzU2V0ID0gbm9kZUlzU2V0ID8gYmFzZVVuYXJ5KG5vZGVJc1NldCkgOiBiYXNlSXNTZXQ7XG5cbmV4cG9ydCBkZWZhdWx0IGlzU2V0O1xuIiwKICAgICJpbXBvcnQgU3RhY2sgZnJvbSAnLi9fU3RhY2suanMnO1xuaW1wb3J0IGFycmF5RWFjaCBmcm9tICcuL19hcnJheUVhY2guanMnO1xuaW1wb3J0IGFzc2lnblZhbHVlIGZyb20gJy4vX2Fzc2lnblZhbHVlLmpzJztcbmltcG9ydCBiYXNlQXNzaWduIGZyb20gJy4vX2Jhc2VBc3NpZ24uanMnO1xuaW1wb3J0IGJhc2VBc3NpZ25JbiBmcm9tICcuL19iYXNlQXNzaWduSW4uanMnO1xuaW1wb3J0IGNsb25lQnVmZmVyIGZyb20gJy4vX2Nsb25lQnVmZmVyLmpzJztcbmltcG9ydCBjb3B5QXJyYXkgZnJvbSAnLi9fY29weUFycmF5LmpzJztcbmltcG9ydCBjb3B5U3ltYm9scyBmcm9tICcuL19jb3B5U3ltYm9scy5qcyc7XG5pbXBvcnQgY29weVN5bWJvbHNJbiBmcm9tICcuL19jb3B5U3ltYm9sc0luLmpzJztcbmltcG9ydCBnZXRBbGxLZXlzIGZyb20gJy4vX2dldEFsbEtleXMuanMnO1xuaW1wb3J0IGdldEFsbEtleXNJbiBmcm9tICcuL19nZXRBbGxLZXlzSW4uanMnO1xuaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGluaXRDbG9uZUFycmF5IGZyb20gJy4vX2luaXRDbG9uZUFycmF5LmpzJztcbmltcG9ydCBpbml0Q2xvbmVCeVRhZyBmcm9tICcuL19pbml0Q2xvbmVCeVRhZy5qcyc7XG5pbXBvcnQgaW5pdENsb25lT2JqZWN0IGZyb20gJy4vX2luaXRDbG9uZU9iamVjdC5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzQnVmZmVyIGZyb20gJy4vaXNCdWZmZXIuanMnO1xuaW1wb3J0IGlzTWFwIGZyb20gJy4vaXNNYXAuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IGlzU2V0IGZyb20gJy4vaXNTZXQuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcbmltcG9ydCBrZXlzSW4gZnJvbSAnLi9rZXlzSW4uanMnO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBjbG9uaW5nLiAqL1xudmFyIENMT05FX0RFRVBfRkxBRyA9IDEsXG4gICAgQ0xPTkVfRkxBVF9GTEFHID0gMixcbiAgICBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG52YXIgY2xvbmVhYmxlVGFncyA9IHt9O1xuY2xvbmVhYmxlVGFnc1thcmdzVGFnXSA9IGNsb25lYWJsZVRhZ3NbYXJyYXlUYWddID1cbmNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPVxuY2xvbmVhYmxlVGFnc1tib29sVGFnXSA9IGNsb25lYWJsZVRhZ3NbZGF0ZVRhZ10gPVxuY2xvbmVhYmxlVGFnc1tmbG9hdDMyVGFnXSA9IGNsb25lYWJsZVRhZ3NbZmxvYXQ2NFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID1cbmNsb25lYWJsZVRhZ3NbaW50MzJUYWddID0gY2xvbmVhYmxlVGFnc1ttYXBUYWddID1cbmNsb25lYWJsZVRhZ3NbbnVtYmVyVGFnXSA9IGNsb25lYWJsZVRhZ3Nbb2JqZWN0VGFnXSA9XG5jbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tzdHJpbmdUYWddID0gY2xvbmVhYmxlVGFnc1tzeW1ib2xUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDhUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50OENsYW1wZWRUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG5jbG9uZWFibGVUYWdzW2Vycm9yVGFnXSA9IGNsb25lYWJsZVRhZ3NbZnVuY1RhZ10gPVxuY2xvbmVhYmxlVGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCBhbmQgYF8uY2xvbmVEZWVwYCB3aGljaCB0cmFja3NcbiAqIHRyYXZlcnNlZCBvYmplY3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy5cbiAqICAxIC0gRGVlcCBjbG9uZVxuICogIDIgLSBGbGF0dGVuIGluaGVyaXRlZCBwcm9wZXJ0aWVzXG4gKiAgNCAtIENsb25lIHN5bWJvbHNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBwYXJlbnQgb2JqZWN0IG9mIGB2YWx1ZWAuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIG9iamVjdHMgYW5kIHRoZWlyIGNsb25lIGNvdW50ZXJwYXJ0cy5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VDbG9uZSh2YWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCBvYmplY3QsIHN0YWNrKSB7XG4gIHZhciByZXN1bHQsXG4gICAgICBpc0RlZXAgPSBiaXRtYXNrICYgQ0xPTkVfREVFUF9GTEFHLFxuICAgICAgaXNGbGF0ID0gYml0bWFzayAmIENMT05FX0ZMQVRfRkxBRyxcbiAgICAgIGlzRnVsbCA9IGJpdG1hc2sgJiBDTE9ORV9TWU1CT0xTX0ZMQUc7XG5cbiAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICByZXN1bHQgPSBvYmplY3QgPyBjdXN0b21pemVyKHZhbHVlLCBrZXksIG9iamVjdCwgc3RhY2spIDogY3VzdG9taXplcih2YWx1ZSk7XG4gIH1cbiAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKTtcbiAgaWYgKGlzQXJyKSB7XG4gICAgcmVzdWx0ID0gaW5pdENsb25lQXJyYXkodmFsdWUpO1xuICAgIGlmICghaXNEZWVwKSB7XG4gICAgICByZXR1cm4gY29weUFycmF5KHZhbHVlLCByZXN1bHQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKSxcbiAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZztcblxuICAgIGlmIChpc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBjbG9uZUJ1ZmZlcih2YWx1ZSwgaXNEZWVwKTtcbiAgICB9XG4gICAgaWYgKHRhZyA9PSBvYmplY3RUYWcgfHwgdGFnID09IGFyZ3NUYWcgfHwgKGlzRnVuYyAmJiAhb2JqZWN0KSkge1xuICAgICAgcmVzdWx0ID0gKGlzRmxhdCB8fCBpc0Z1bmMpID8ge30gOiBpbml0Q2xvbmVPYmplY3QodmFsdWUpO1xuICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgcmV0dXJuIGlzRmxhdFxuICAgICAgICAgID8gY29weVN5bWJvbHNJbih2YWx1ZSwgYmFzZUFzc2lnbkluKHJlc3VsdCwgdmFsdWUpKVxuICAgICAgICAgIDogY29weVN5bWJvbHModmFsdWUsIGJhc2VBc3NpZ24ocmVzdWx0LCB2YWx1ZSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWNsb25lYWJsZVRhZ3NbdGFnXSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID8gdmFsdWUgOiB7fTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUJ5VGFnKHZhbHVlLCB0YWcsIGlzRGVlcCk7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGZvciBjaXJjdWxhciByZWZlcmVuY2VzIGFuZCByZXR1cm4gaXRzIGNvcnJlc3BvbmRpbmcgY2xvbmUuXG4gIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KHZhbHVlKTtcbiAgaWYgKHN0YWNrZWQpIHtcbiAgICByZXR1cm4gc3RhY2tlZDtcbiAgfVxuICBzdGFjay5zZXQodmFsdWUsIHJlc3VsdCk7XG5cbiAgaWYgKGlzU2V0KHZhbHVlKSkge1xuICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUpIHtcbiAgICAgIHJlc3VsdC5hZGQoYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdWJWYWx1ZSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoaXNNYXAodmFsdWUpKSB7XG4gICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHQuc2V0KGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFyIGtleXNGdW5jID0gaXNGdWxsXG4gICAgPyAoaXNGbGF0ID8gZ2V0QWxsS2V5c0luIDogZ2V0QWxsS2V5cylcbiAgICA6IChpc0ZsYXQgPyBrZXlzSW4gOiBrZXlzKTtcblxuICB2YXIgcHJvcHMgPSBpc0FyciA/IHVuZGVmaW5lZCA6IGtleXNGdW5jKHZhbHVlKTtcbiAgYXJyYXlFYWNoKHByb3BzIHx8IHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgaWYgKHByb3BzKSB7XG4gICAgICBrZXkgPSBzdWJWYWx1ZTtcbiAgICAgIHN1YlZhbHVlID0gdmFsdWVba2V5XTtcbiAgICB9XG4gICAgLy8gUmVjdXJzaXZlbHkgcG9wdWxhdGUgY2xvbmUgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICBhc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUNsb25lO1xuIiwKICAgICJpbXBvcnQgYmFzZUNsb25lIGZyb20gJy4vX2Jhc2VDbG9uZS5qcyc7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIGNsb25pbmcuICovXG52YXIgQ0xPTkVfU1lNQk9MU19GTEFHID0gNDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgc2hhbGxvdyBjbG9uZSBvZiBgdmFsdWVgLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uIHRoZVxuICogW3N0cnVjdHVyZWQgY2xvbmUgYWxnb3JpdGhtXShodHRwczovL21kbi5pby9TdHJ1Y3R1cmVkX2Nsb25lX2FsZ29yaXRobSlcbiAqIGFuZCBzdXBwb3J0cyBjbG9uaW5nIGFycmF5cywgYXJyYXkgYnVmZmVycywgYm9vbGVhbnMsIGRhdGUgb2JqZWN0cywgbWFwcyxcbiAqIG51bWJlcnMsIGBPYmplY3RgIG9iamVjdHMsIHJlZ2V4ZXMsIHNldHMsIHN0cmluZ3MsIHN5bWJvbHMsIGFuZCB0eXBlZFxuICogYXJyYXlzLiBUaGUgb3duIGVudW1lcmFibGUgcHJvcGVydGllcyBvZiBgYXJndW1lbnRzYCBvYmplY3RzIGFyZSBjbG9uZWRcbiAqIGFzIHBsYWluIG9iamVjdHMuIEFuIGVtcHR5IG9iamVjdCBpcyByZXR1cm5lZCBmb3IgdW5jbG9uZWFibGUgdmFsdWVzIHN1Y2hcbiAqIGFzIGVycm9yIG9iamVjdHMsIGZ1bmN0aW9ucywgRE9NIG5vZGVzLCBhbmQgV2Vha01hcHMuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNsb25lLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGNsb25lZCB2YWx1ZS5cbiAqIEBzZWUgXy5jbG9uZURlZXBcbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBbeyAnYSc6IDEgfSwgeyAnYic6IDIgfV07XG4gKlxuICogdmFyIHNoYWxsb3cgPSBfLmNsb25lKG9iamVjdHMpO1xuICogY29uc29sZS5sb2coc2hhbGxvd1swXSA9PT0gb2JqZWN0c1swXSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGNsb25lKHZhbHVlKSB7XG4gIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX1NZTUJPTFNfRkxBRyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsb25lO1xuIiwKICAgICJpbXBvcnQgYmFzZUNsb25lIGZyb20gJy4vX2Jhc2VDbG9uZS5qcyc7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIGNsb25pbmcuICovXG52YXIgQ0xPTkVfREVFUF9GTEFHID0gMSxcbiAgICBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY2xvbmVgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGNsb25lcyBgdmFsdWVgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byByZWN1cnNpdmVseSBjbG9uZS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cbiAqIEBzZWUgXy5jbG9uZVxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IFt7ICdhJzogMSB9LCB7ICdiJzogMiB9XTtcbiAqXG4gKiB2YXIgZGVlcCA9IF8uY2xvbmVEZWVwKG9iamVjdHMpO1xuICogY29uc29sZS5sb2coZGVlcFswXSA9PT0gb2JqZWN0c1swXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBjbG9uZURlZXAodmFsdWUpIHtcbiAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfREVFUF9GTEFHIHwgQ0xPTkVfU1lNQk9MU19GTEFHKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVEZWVwO1xuIiwKICAgICIvKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG52YXIgSEFTSF9VTkRFRklORUQgPSAnX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyc7XG5cbi8qKlxuICogQWRkcyBgdmFsdWVgIHRvIHRoZSBhcnJheSBjYWNoZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgYWRkXG4gKiBAbWVtYmVyT2YgU2V0Q2FjaGVcbiAqIEBhbGlhcyBwdXNoXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjYWNoZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNhY2hlIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBzZXRDYWNoZUFkZCh2YWx1ZSkge1xuICB0aGlzLl9fZGF0YV9fLnNldCh2YWx1ZSwgSEFTSF9VTkRFRklORUQpO1xuICByZXR1cm4gdGhpcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2V0Q2FjaGVBZGQ7XG4iLAogICAgIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gdGhlIGFycmF5IGNhY2hlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBTZXRDYWNoZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc2V0Q2FjaGVIYXModmFsdWUpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHZhbHVlKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2V0Q2FjaGVIYXM7XG4iLAogICAgImltcG9ydCBNYXBDYWNoZSBmcm9tICcuL19NYXBDYWNoZS5qcyc7XG5pbXBvcnQgc2V0Q2FjaGVBZGQgZnJvbSAnLi9fc2V0Q2FjaGVBZGQuanMnO1xuaW1wb3J0IHNldENhY2hlSGFzIGZyb20gJy4vX3NldENhY2hlSGFzLmpzJztcblxuLyoqXG4gKlxuICogQ3JlYXRlcyBhbiBhcnJheSBjYWNoZSBvYmplY3QgdG8gc3RvcmUgdW5pcXVlIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBTZXRDYWNoZSh2YWx1ZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSB2YWx1ZXMgPT0gbnVsbCA/IDAgOiB2YWx1ZXMubGVuZ3RoO1xuXG4gIHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGU7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdGhpcy5hZGQodmFsdWVzW2luZGV4XSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYFNldENhY2hlYC5cblNldENhY2hlLnByb3RvdHlwZS5hZGQgPSBTZXRDYWNoZS5wcm90b3R5cGUucHVzaCA9IHNldENhY2hlQWRkO1xuU2V0Q2FjaGUucHJvdG90eXBlLmhhcyA9IHNldENhY2hlSGFzO1xuXG5leHBvcnQgZGVmYXVsdCBTZXRDYWNoZTtcbiIsCiAgICAiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uc29tZWAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlXG4gKiBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbnkgZWxlbWVudCBwYXNzZXMgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5U29tZShhcnJheSwgcHJlZGljYXRlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpZiAocHJlZGljYXRlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlTb21lO1xuIiwKICAgICIvKipcbiAqIENoZWNrcyBpZiBhIGBjYWNoZWAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGNhY2hlIFRoZSBjYWNoZSB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBjYWNoZUhhcyhjYWNoZSwga2V5KSB7XG4gIHJldHVybiBjYWNoZS5oYXMoa2V5KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2FjaGVIYXM7XG4iLAogICAgImltcG9ydCBTZXRDYWNoZSBmcm9tICcuL19TZXRDYWNoZS5qcyc7XG5pbXBvcnQgYXJyYXlTb21lIGZyb20gJy4vX2FycmF5U29tZS5qcyc7XG5pbXBvcnQgY2FjaGVIYXMgZnJvbSAnLi9fY2FjaGVIYXMuanMnO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB2YWx1ZSBjb21wYXJpc29ucy4gKi9cbnZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDEsXG4gICAgQ09NUEFSRV9VTk9SREVSRURfRkxBRyA9IDI7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBhcnJheXMgd2l0aCBzdXBwb3J0IGZvclxuICogcGFydGlhbCBkZWVwIGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7QXJyYXl9IG90aGVyIFRoZSBvdGhlciBhcnJheSB0byBjb21wYXJlLlxuICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgYXJyYXlgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFycmF5cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBlcXVhbEFycmF5cyhhcnJheSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgdmFyIGlzUGFydGlhbCA9IGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRyxcbiAgICAgIGFyckxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIG90aExlbmd0aCA9IG90aGVyLmxlbmd0aDtcblxuICBpZiAoYXJyTGVuZ3RoICE9IG90aExlbmd0aCAmJiAhKGlzUGFydGlhbCAmJiBvdGhMZW5ndGggPiBhcnJMZW5ndGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIENoZWNrIHRoYXQgY3ljbGljIHZhbHVlcyBhcmUgZXF1YWwuXG4gIHZhciBhcnJTdGFja2VkID0gc3RhY2suZ2V0KGFycmF5KTtcbiAgdmFyIG90aFN0YWNrZWQgPSBzdGFjay5nZXQob3RoZXIpO1xuICBpZiAoYXJyU3RhY2tlZCAmJiBvdGhTdGFja2VkKSB7XG4gICAgcmV0dXJuIGFyclN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBhcnJheTtcbiAgfVxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IHRydWUsXG4gICAgICBzZWVuID0gKGJpdG1hc2sgJiBDT01QQVJFX1VOT1JERVJFRF9GTEFHKSA/IG5ldyBTZXRDYWNoZSA6IHVuZGVmaW5lZDtcblxuICBzdGFjay5zZXQoYXJyYXksIG90aGVyKTtcbiAgc3RhY2suc2V0KG90aGVyLCBhcnJheSk7XG5cbiAgLy8gSWdub3JlIG5vbi1pbmRleCBwcm9wZXJ0aWVzLlxuICB3aGlsZSAoKytpbmRleCA8IGFyckxlbmd0aCkge1xuICAgIHZhciBhcnJWYWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltpbmRleF07XG5cbiAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgdmFyIGNvbXBhcmVkID0gaXNQYXJ0aWFsXG4gICAgICAgID8gY3VzdG9taXplcihvdGhWYWx1ZSwgYXJyVmFsdWUsIGluZGV4LCBvdGhlciwgYXJyYXksIHN0YWNrKVxuICAgICAgICA6IGN1c3RvbWl6ZXIoYXJyVmFsdWUsIG90aFZhbHVlLCBpbmRleCwgYXJyYXksIG90aGVyLCBzdGFjayk7XG4gICAgfVxuICAgIGlmIChjb21wYXJlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoY29tcGFyZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIGlmIChzZWVuKSB7XG4gICAgICBpZiAoIWFycmF5U29tZShvdGhlciwgZnVuY3Rpb24ob3RoVmFsdWUsIG90aEluZGV4KSB7XG4gICAgICAgICAgICBpZiAoIWNhY2hlSGFzKHNlZW4sIG90aEluZGV4KSAmJlxuICAgICAgICAgICAgICAgIChhcnJWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKSkge1xuICAgICAgICAgICAgICByZXR1cm4gc2Vlbi5wdXNoKG90aEluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSkge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghKFxuICAgICAgICAgIGFyclZhbHVlID09PSBvdGhWYWx1ZSB8fFxuICAgICAgICAgICAgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spXG4gICAgICAgICkpIHtcbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHN0YWNrWydkZWxldGUnXShhcnJheSk7XG4gIHN0YWNrWydkZWxldGUnXShvdGhlcik7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGVxdWFsQXJyYXlzO1xuIiwKICAgICIvKipcbiAqIENvbnZlcnRzIGBtYXBgIHRvIGl0cyBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXAgVGhlIG1hcCB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpcnMuXG4gKi9cbmZ1bmN0aW9uIG1hcFRvQXJyYXkobWFwKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gQXJyYXkobWFwLnNpemUpO1xuXG4gIG1hcC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICByZXN1bHRbKytpbmRleF0gPSBba2V5LCB2YWx1ZV07XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBUb0FycmF5O1xuIiwKICAgICIvKipcbiAqIENvbnZlcnRzIGBzZXRgIHRvIGFuIGFycmF5IG9mIGl0cyB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzZXQgVGhlIHNldCB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIHNldFRvQXJyYXkoc2V0KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gQXJyYXkoc2V0LnNpemUpO1xuXG4gIHNldC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmVzdWx0WysraW5kZXhdID0gdmFsdWU7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBzZXRUb0FycmF5O1xuIiwKICAgICJpbXBvcnQgU3ltYm9sIGZyb20gJy4vX1N5bWJvbC5qcyc7XG5pbXBvcnQgVWludDhBcnJheSBmcm9tICcuL19VaW50OEFycmF5LmpzJztcbmltcG9ydCBlcSBmcm9tICcuL2VxLmpzJztcbmltcG9ydCBlcXVhbEFycmF5cyBmcm9tICcuL19lcXVhbEFycmF5cy5qcyc7XG5pbXBvcnQgbWFwVG9BcnJheSBmcm9tICcuL19tYXBUb0FycmF5LmpzJztcbmltcG9ydCBzZXRUb0FycmF5IGZyb20gJy4vX3NldFRvQXJyYXkuanMnO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB2YWx1ZSBjb21wYXJpc29ucy4gKi9cbnZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDEsXG4gICAgQ09NUEFSRV9VTk9SREVSRURfRkxBRyA9IDI7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJztcblxuLyoqIFVzZWQgdG8gY29udmVydCBzeW1ib2xzIHRvIHByaW1pdGl2ZXMgYW5kIHN0cmluZ3MuICovXG52YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgIHN5bWJvbFZhbHVlT2YgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnZhbHVlT2YgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBjb21wYXJpbmcgb2JqZWN0cyBvZlxuICogdGhlIHNhbWUgYHRvU3RyaW5nVGFnYC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNvbXBhcmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBvciBgU3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgYHRvU3RyaW5nVGFnYCBvZiB0aGUgb2JqZWN0cyB0byBjb21wYXJlLlxuICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgb2JqZWN0YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgdGFnLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSBkYXRhVmlld1RhZzpcbiAgICAgIGlmICgob2JqZWN0LmJ5dGVMZW5ndGggIT0gb3RoZXIuYnl0ZUxlbmd0aCkgfHxcbiAgICAgICAgICAob2JqZWN0LmJ5dGVPZmZzZXQgIT0gb3RoZXIuYnl0ZU9mZnNldCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgb2JqZWN0ID0gb2JqZWN0LmJ1ZmZlcjtcbiAgICAgIG90aGVyID0gb3RoZXIuYnVmZmVyO1xuXG4gICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgIGlmICgob2JqZWN0LmJ5dGVMZW5ndGggIT0gb3RoZXIuYnl0ZUxlbmd0aCkgfHxcbiAgICAgICAgICAhZXF1YWxGdW5jKG5ldyBVaW50OEFycmF5KG9iamVjdCksIG5ldyBVaW50OEFycmF5KG90aGVyKSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICBjYXNlIGJvb2xUYWc6XG4gICAgY2FzZSBkYXRlVGFnOlxuICAgIGNhc2UgbnVtYmVyVGFnOlxuICAgICAgLy8gQ29lcmNlIGJvb2xlYW5zIHRvIGAxYCBvciBgMGAgYW5kIGRhdGVzIHRvIG1pbGxpc2Vjb25kcy5cbiAgICAgIC8vIEludmFsaWQgZGF0ZXMgYXJlIGNvZXJjZWQgdG8gYE5hTmAuXG4gICAgICByZXR1cm4gZXEoK29iamVjdCwgK290aGVyKTtcblxuICAgIGNhc2UgZXJyb3JUYWc6XG4gICAgICByZXR1cm4gb2JqZWN0Lm5hbWUgPT0gb3RoZXIubmFtZSAmJiBvYmplY3QubWVzc2FnZSA9PSBvdGhlci5tZXNzYWdlO1xuXG4gICAgY2FzZSByZWdleHBUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICAvLyBDb2VyY2UgcmVnZXhlcyB0byBzdHJpbmdzIGFuZCB0cmVhdCBzdHJpbmdzLCBwcmltaXRpdmVzIGFuZCBvYmplY3RzLFxuICAgICAgLy8gYXMgZXF1YWwuIFNlZSBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcmVnZXhwLnByb3RvdHlwZS50b3N0cmluZ1xuICAgICAgLy8gZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIHJldHVybiBvYmplY3QgPT0gKG90aGVyICsgJycpO1xuXG4gICAgY2FzZSBtYXBUYWc6XG4gICAgICB2YXIgY29udmVydCA9IG1hcFRvQXJyYXk7XG5cbiAgICBjYXNlIHNldFRhZzpcbiAgICAgIHZhciBpc1BhcnRpYWwgPSBiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUc7XG4gICAgICBjb252ZXJ0IHx8IChjb252ZXJ0ID0gc2V0VG9BcnJheSk7XG5cbiAgICAgIGlmIChvYmplY3Quc2l6ZSAhPSBvdGhlci5zaXplICYmICFpc1BhcnRpYWwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gQXNzdW1lIGN5Y2xpYyB2YWx1ZXMgYXJlIGVxdWFsLlxuICAgICAgdmFyIHN0YWNrZWQgPSBzdGFjay5nZXQob2JqZWN0KTtcbiAgICAgIGlmIChzdGFja2VkKSB7XG4gICAgICAgIHJldHVybiBzdGFja2VkID09IG90aGVyO1xuICAgICAgfVxuICAgICAgYml0bWFzayB8PSBDT01QQVJFX1VOT1JERVJFRF9GTEFHO1xuXG4gICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIG9iamVjdHMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgIHN0YWNrLnNldChvYmplY3QsIG90aGVyKTtcbiAgICAgIHZhciByZXN1bHQgPSBlcXVhbEFycmF5cyhjb252ZXJ0KG9iamVjdCksIGNvbnZlcnQob3RoZXIpLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKTtcbiAgICAgIHN0YWNrWydkZWxldGUnXShvYmplY3QpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcblxuICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgaWYgKHN5bWJvbFZhbHVlT2YpIHtcbiAgICAgICAgcmV0dXJuIHN5bWJvbFZhbHVlT2YuY2FsbChvYmplY3QpID09IHN5bWJvbFZhbHVlT2YuY2FsbChvdGhlcik7XG4gICAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBlcXVhbEJ5VGFnO1xuIiwKICAgICJpbXBvcnQgZ2V0QWxsS2V5cyBmcm9tICcuL19nZXRBbGxLZXlzLmpzJztcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgdmFsdWUgY29tcGFyaXNvbnMuICovXG52YXIgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgPSAxO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3Igb2JqZWN0cyB3aXRoIHN1cHBvcnQgZm9yXG4gKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGJhc2VJc0VxdWFsYCBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICogQHBhcmFtIHtPYmplY3R9IHN0YWNrIFRyYWNrcyB0cmF2ZXJzZWQgYG9iamVjdGAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBlcXVhbE9iamVjdHMob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaykge1xuICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHLFxuICAgICAgb2JqUHJvcHMgPSBnZXRBbGxLZXlzKG9iamVjdCksXG4gICAgICBvYmpMZW5ndGggPSBvYmpQcm9wcy5sZW5ndGgsXG4gICAgICBvdGhQcm9wcyA9IGdldEFsbEtleXMob3RoZXIpLFxuICAgICAgb3RoTGVuZ3RoID0gb3RoUHJvcHMubGVuZ3RoO1xuXG4gIGlmIChvYmpMZW5ndGggIT0gb3RoTGVuZ3RoICYmICFpc1BhcnRpYWwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGluZGV4ID0gb2JqTGVuZ3RoO1xuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIHZhciBrZXkgPSBvYmpQcm9wc1tpbmRleF07XG4gICAgaWYgKCEoaXNQYXJ0aWFsID8ga2V5IGluIG90aGVyIDogaGFzT3duUHJvcGVydHkuY2FsbChvdGhlciwga2V5KSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgdGhhdCBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgdmFyIG9ialN0YWNrZWQgPSBzdGFjay5nZXQob2JqZWN0KTtcbiAgdmFyIG90aFN0YWNrZWQgPSBzdGFjay5nZXQob3RoZXIpO1xuICBpZiAob2JqU3RhY2tlZCAmJiBvdGhTdGFja2VkKSB7XG4gICAgcmV0dXJuIG9ialN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBvYmplY3Q7XG4gIH1cbiAgdmFyIHJlc3VsdCA9IHRydWU7XG4gIHN0YWNrLnNldChvYmplY3QsIG90aGVyKTtcbiAgc3RhY2suc2V0KG90aGVyLCBvYmplY3QpO1xuXG4gIHZhciBza2lwQ3RvciA9IGlzUGFydGlhbDtcbiAgd2hpbGUgKCsraW5kZXggPCBvYmpMZW5ndGgpIHtcbiAgICBrZXkgPSBvYmpQcm9wc1tpbmRleF07XG4gICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgIG90aFZhbHVlID0gb3RoZXJba2V5XTtcblxuICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICB2YXIgY29tcGFyZWQgPSBpc1BhcnRpYWxcbiAgICAgICAgPyBjdXN0b21pemVyKG90aFZhbHVlLCBvYmpWYWx1ZSwga2V5LCBvdGhlciwgb2JqZWN0LCBzdGFjaylcbiAgICAgICAgOiBjdXN0b21pemVyKG9ialZhbHVlLCBvdGhWYWx1ZSwga2V5LCBvYmplY3QsIG90aGVyLCBzdGFjayk7XG4gICAgfVxuICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbXBhcmUgb2JqZWN0cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIGlmICghKGNvbXBhcmVkID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IChvYmpWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKG9ialZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKVxuICAgICAgICAgIDogY29tcGFyZWRcbiAgICAgICAgKSkge1xuICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgc2tpcEN0b3IgfHwgKHNraXBDdG9yID0ga2V5ID09ICdjb25zdHJ1Y3RvcicpO1xuICB9XG4gIGlmIChyZXN1bHQgJiYgIXNraXBDdG9yKSB7XG4gICAgdmFyIG9iakN0b3IgPSBvYmplY3QuY29uc3RydWN0b3IsXG4gICAgICAgIG90aEN0b3IgPSBvdGhlci5jb25zdHJ1Y3RvcjtcblxuICAgIC8vIE5vbiBgT2JqZWN0YCBvYmplY3QgaW5zdGFuY2VzIHdpdGggZGlmZmVyZW50IGNvbnN0cnVjdG9ycyBhcmUgbm90IGVxdWFsLlxuICAgIGlmIChvYmpDdG9yICE9IG90aEN0b3IgJiZcbiAgICAgICAgKCdjb25zdHJ1Y3RvcicgaW4gb2JqZWN0ICYmICdjb25zdHJ1Y3RvcicgaW4gb3RoZXIpICYmXG4gICAgICAgICEodHlwZW9mIG9iakN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBvYmpDdG9yIGluc3RhbmNlb2Ygb2JqQ3RvciAmJlxuICAgICAgICAgIHR5cGVvZiBvdGhDdG9yID09ICdmdW5jdGlvbicgJiYgb3RoQ3RvciBpbnN0YW5jZW9mIG90aEN0b3IpKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgc3RhY2tbJ2RlbGV0ZSddKG9iamVjdCk7XG4gIHN0YWNrWydkZWxldGUnXShvdGhlcik7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGVxdWFsT2JqZWN0cztcbiIsCiAgICAiaW1wb3J0IFN0YWNrIGZyb20gJy4vX1N0YWNrLmpzJztcbmltcG9ydCBlcXVhbEFycmF5cyBmcm9tICcuL19lcXVhbEFycmF5cy5qcyc7XG5pbXBvcnQgZXF1YWxCeVRhZyBmcm9tICcuL19lcXVhbEJ5VGFnLmpzJztcbmltcG9ydCBlcXVhbE9iamVjdHMgZnJvbSAnLi9fZXF1YWxPYmplY3RzLmpzJztcbmltcG9ydCBnZXRUYWcgZnJvbSAnLi9fZ2V0VGFnLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5pbXBvcnQgaXNCdWZmZXIgZnJvbSAnLi9pc0J1ZmZlci5qcyc7XG5pbXBvcnQgaXNUeXBlZEFycmF5IGZyb20gJy4vaXNUeXBlZEFycmF5LmpzJztcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgdmFsdWUgY29tcGFyaXNvbnMuICovXG52YXIgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgPSAxO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsYCBmb3IgYXJyYXlzIGFuZCBvYmplY3RzIHdoaWNoIHBlcmZvcm1zXG4gKiBkZWVwIGNvbXBhcmlzb25zIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gKiByZWZlcmVuY2VzIHRvIGJlIGNvbXBhcmVkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgYG9iamVjdGAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNFcXVhbERlZXAob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaykge1xuICB2YXIgb2JqSXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICBvdGhJc0FyciA9IGlzQXJyYXkob3RoZXIpLFxuICAgICAgb2JqVGFnID0gb2JqSXNBcnIgPyBhcnJheVRhZyA6IGdldFRhZyhvYmplY3QpLFxuICAgICAgb3RoVGFnID0gb3RoSXNBcnIgPyBhcnJheVRhZyA6IGdldFRhZyhvdGhlcik7XG5cbiAgb2JqVGFnID0gb2JqVGFnID09IGFyZ3NUYWcgPyBvYmplY3RUYWcgOiBvYmpUYWc7XG4gIG90aFRhZyA9IG90aFRhZyA9PSBhcmdzVGFnID8gb2JqZWN0VGFnIDogb3RoVGFnO1xuXG4gIHZhciBvYmpJc09iaiA9IG9ialRhZyA9PSBvYmplY3RUYWcsXG4gICAgICBvdGhJc09iaiA9IG90aFRhZyA9PSBvYmplY3RUYWcsXG4gICAgICBpc1NhbWVUYWcgPSBvYmpUYWcgPT0gb3RoVGFnO1xuXG4gIGlmIChpc1NhbWVUYWcgJiYgaXNCdWZmZXIob2JqZWN0KSkge1xuICAgIGlmICghaXNCdWZmZXIob3RoZXIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIG9iaklzQXJyID0gdHJ1ZTtcbiAgICBvYmpJc09iaiA9IGZhbHNlO1xuICB9XG4gIGlmIChpc1NhbWVUYWcgJiYgIW9iaklzT2JqKSB7XG4gICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcbiAgICByZXR1cm4gKG9iaklzQXJyIHx8IGlzVHlwZWRBcnJheShvYmplY3QpKVxuICAgICAgPyBlcXVhbEFycmF5cyhvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKVxuICAgICAgOiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIG9ialRhZywgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XG4gIH1cbiAgaWYgKCEoYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHKSkge1xuICAgIHZhciBvYmpJc1dyYXBwZWQgPSBvYmpJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgJ19fd3JhcHBlZF9fJyksXG4gICAgICAgIG90aElzV3JhcHBlZCA9IG90aElzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsICdfX3dyYXBwZWRfXycpO1xuXG4gICAgaWYgKG9iaklzV3JhcHBlZCB8fCBvdGhJc1dyYXBwZWQpIHtcbiAgICAgIHZhciBvYmpVbndyYXBwZWQgPSBvYmpJc1dyYXBwZWQgPyBvYmplY3QudmFsdWUoKSA6IG9iamVjdCxcbiAgICAgICAgICBvdGhVbndyYXBwZWQgPSBvdGhJc1dyYXBwZWQgPyBvdGhlci52YWx1ZSgpIDogb3RoZXI7XG5cbiAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gICAgICByZXR1cm4gZXF1YWxGdW5jKG9ialVud3JhcHBlZCwgb3RoVW53cmFwcGVkLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgfVxuICB9XG4gIGlmICghaXNTYW1lVGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gIHJldHVybiBlcXVhbE9iamVjdHMob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VJc0VxdWFsRGVlcDtcbiIsCiAgICAiaW1wb3J0IGJhc2VJc0VxdWFsRGVlcCBmcm9tICcuL19iYXNlSXNFcXVhbERlZXAuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNFcXVhbGAgd2hpY2ggc3VwcG9ydHMgcGFydGlhbCBjb21wYXJpc29uc1xuICogYW5kIHRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuXG4gKiAgMSAtIFVub3JkZXJlZCBjb21wYXJpc29uXG4gKiAgMiAtIFBhcnRpYWwgY29tcGFyaXNvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIGB2YWx1ZWAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spIHtcbiAgaWYgKHZhbHVlID09PSBvdGhlcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICh2YWx1ZSA9PSBudWxsIHx8IG90aGVyID09IG51bGwgfHwgKCFpc09iamVjdExpa2UodmFsdWUpICYmICFpc09iamVjdExpa2Uob3RoZXIpKSkge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyO1xuICB9XG4gIHJldHVybiBiYXNlSXNFcXVhbERlZXAodmFsdWUsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBiYXNlSXNFcXVhbCwgc3RhY2spO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNFcXVhbDtcbiIsCiAgICAiaW1wb3J0IFN0YWNrIGZyb20gJy4vX1N0YWNrLmpzJztcbmltcG9ydCBiYXNlSXNFcXVhbCBmcm9tICcuL19iYXNlSXNFcXVhbC5qcyc7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHZhbHVlIGNvbXBhcmlzb25zLiAqL1xudmFyIENPTVBBUkVfUEFSVElBTF9GTEFHID0gMSxcbiAgICBDT01QQVJFX1VOT1JERVJFRF9GTEFHID0gMjtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc01hdGNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAqIEBwYXJhbSB7QXJyYXl9IG1hdGNoRGF0YSBUaGUgcHJvcGVydHkgbmFtZXMsIHZhbHVlcywgYW5kIGNvbXBhcmUgZmxhZ3MgdG8gbWF0Y2guXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBtYXRjaERhdGEsIGN1c3RvbWl6ZXIpIHtcbiAgdmFyIGluZGV4ID0gbWF0Y2hEYXRhLmxlbmd0aCxcbiAgICAgIGxlbmd0aCA9IGluZGV4LFxuICAgICAgbm9DdXN0b21pemVyID0gIWN1c3RvbWl6ZXI7XG5cbiAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuICFsZW5ndGg7XG4gIH1cbiAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgdmFyIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xuICAgIGlmICgobm9DdXN0b21pemVyICYmIGRhdGFbMl0pXG4gICAgICAgICAgPyBkYXRhWzFdICE9PSBvYmplY3RbZGF0YVswXV1cbiAgICAgICAgICA6ICEoZGF0YVswXSBpbiBvYmplY3QpXG4gICAgICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xuICAgIHZhciBrZXkgPSBkYXRhWzBdLFxuICAgICAgICBvYmpWYWx1ZSA9IG9iamVjdFtrZXldLFxuICAgICAgICBzcmNWYWx1ZSA9IGRhdGFbMV07XG5cbiAgICBpZiAobm9DdXN0b21pemVyICYmIGRhdGFbMl0pIHtcbiAgICAgIGlmIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgc3RhY2sgPSBuZXcgU3RhY2s7XG4gICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICB2YXIgcmVzdWx0ID0gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKTtcbiAgICAgIH1cbiAgICAgIGlmICghKHJlc3VsdCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IGJhc2VJc0VxdWFsKHNyY1ZhbHVlLCBvYmpWYWx1ZSwgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgfCBDT01QQVJFX1VOT1JERVJFRF9GTEFHLCBjdXN0b21pemVyLCBzdGFjaylcbiAgICAgICAgICAgIDogcmVzdWx0XG4gICAgICAgICAgKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNNYXRjaDtcbiIsCiAgICAiaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaWYgc3VpdGFibGUgZm9yIHN0cmljdFxuICogIGVxdWFsaXR5IGNvbXBhcmlzb25zLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT09IHZhbHVlICYmICFpc09iamVjdCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzU3RyaWN0Q29tcGFyYWJsZTtcbiIsCiAgICAiaW1wb3J0IGlzU3RyaWN0Q29tcGFyYWJsZSBmcm9tICcuL19pc1N0cmljdENvbXBhcmFibGUuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBwcm9wZXJ0eSBuYW1lcywgdmFsdWVzLCBhbmQgY29tcGFyZSBmbGFncyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBtYXRjaCBkYXRhIG9mIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBnZXRNYXRjaERhdGEob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBrZXlzKG9iamVjdCksXG4gICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIHZhciBrZXkgPSByZXN1bHRbbGVuZ3RoXSxcbiAgICAgICAgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgIHJlc3VsdFtsZW5ndGhdID0gW2tleSwgdmFsdWUsIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSldO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldE1hdGNoRGF0YTtcbiIsCiAgICAiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYG1hdGNoZXNQcm9wZXJ0eWAgZm9yIHNvdXJjZSB2YWx1ZXMgc3VpdGFibGVcbiAqIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgdmFsdWUgdG8gbWF0Y2guXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZShrZXksIHNyY1ZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdFtrZXldID09PSBzcmNWYWx1ZSAmJlxuICAgICAgKHNyY1ZhbHVlICE9PSB1bmRlZmluZWQgfHwgKGtleSBpbiBPYmplY3Qob2JqZWN0KSkpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZTtcbiIsCiAgICAiaW1wb3J0IGJhc2VJc01hdGNoIGZyb20gJy4vX2Jhc2VJc01hdGNoLmpzJztcbmltcG9ydCBnZXRNYXRjaERhdGEgZnJvbSAnLi9fZ2V0TWF0Y2hEYXRhLmpzJztcbmltcG9ydCBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZSBmcm9tICcuL19tYXRjaGVzU3RyaWN0Q29tcGFyYWJsZS5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc2Agd2hpY2ggZG9lc24ndCBjbG9uZSBgc291cmNlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VNYXRjaGVzKHNvdXJjZSkge1xuICB2YXIgbWF0Y2hEYXRhID0gZ2V0TWF0Y2hEYXRhKHNvdXJjZSk7XG4gIGlmIChtYXRjaERhdGEubGVuZ3RoID09IDEgJiYgbWF0Y2hEYXRhWzBdWzJdKSB7XG4gICAgcmV0dXJuIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKG1hdGNoRGF0YVswXVswXSwgbWF0Y2hEYXRhWzBdWzFdKTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdCA9PT0gc291cmNlIHx8IGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBtYXRjaERhdGEpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlTWF0Y2hlcztcbiIsCiAgICAiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5oYXNJbmAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBrZXkgVGhlIGtleSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUhhc0luKG9iamVjdCwga2V5KSB7XG4gIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBrZXkgaW4gT2JqZWN0KG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VIYXNJbjtcbiIsCiAgICAiaW1wb3J0IGNhc3RQYXRoIGZyb20gJy4vX2Nhc3RQYXRoLmpzJztcbmltcG9ydCBpc0FyZ3VtZW50cyBmcm9tICcuL2lzQXJndW1lbnRzLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5pbXBvcnQgaXNJbmRleCBmcm9tICcuL19pc0luZGV4LmpzJztcbmltcG9ydCBpc0xlbmd0aCBmcm9tICcuL2lzTGVuZ3RoLmpzJztcbmltcG9ydCB0b0tleSBmcm9tICcuL190b0tleS5qcyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGBwYXRoYCBleGlzdHMgb24gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaGFzRnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2sgcHJvcGVydGllcy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgcGF0aGAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBoYXNGdW5jKSB7XG4gIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuXG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBmYWxzZTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSk7XG4gICAgaWYgKCEocmVzdWx0ID0gb2JqZWN0ICE9IG51bGwgJiYgaGFzRnVuYyhvYmplY3QsIGtleSkpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgb2JqZWN0ID0gb2JqZWN0W2tleV07XG4gIH1cbiAgaWYgKHJlc3VsdCB8fCArK2luZGV4ICE9IGxlbmd0aCkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgbGVuZ3RoID0gb2JqZWN0ID09IG51bGwgPyAwIDogb2JqZWN0Lmxlbmd0aDtcbiAgcmV0dXJuICEhbGVuZ3RoICYmIGlzTGVuZ3RoKGxlbmd0aCkgJiYgaXNJbmRleChrZXksIGxlbmd0aCkgJiZcbiAgICAoaXNBcnJheShvYmplY3QpIHx8IGlzQXJndW1lbnRzKG9iamVjdCkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNQYXRoO1xuIiwKICAgICJpbXBvcnQgYmFzZUhhc0luIGZyb20gJy4vX2Jhc2VIYXNJbi5qcyc7XG5pbXBvcnQgaGFzUGF0aCBmcm9tICcuL19oYXNQYXRoLmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHBhdGhgIGlzIGEgZGlyZWN0IG9yIGluaGVyaXRlZCBwcm9wZXJ0eSBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgcGF0aGAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSBfLmNyZWF0ZSh7ICdhJzogXy5jcmVhdGUoeyAnYic6IDIgfSkgfSk7XG4gKlxuICogXy5oYXNJbihvYmplY3QsICdhJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5oYXNJbihvYmplY3QsICdhLmInKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmhhc0luKG9iamVjdCwgWydhJywgJ2InXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5oYXNJbihvYmplY3QsICdiJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBoYXNJbihvYmplY3QsIHBhdGgpIHtcbiAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBiYXNlSGFzSW4pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNJbjtcbiIsCiAgICAiaW1wb3J0IGJhc2VJc0VxdWFsIGZyb20gJy4vX2Jhc2VJc0VxdWFsLmpzJztcbmltcG9ydCBnZXQgZnJvbSAnLi9nZXQuanMnO1xuaW1wb3J0IGhhc0luIGZyb20gJy4vaGFzSW4uanMnO1xuaW1wb3J0IGlzS2V5IGZyb20gJy4vX2lzS2V5LmpzJztcbmltcG9ydCBpc1N0cmljdENvbXBhcmFibGUgZnJvbSAnLi9faXNTdHJpY3RDb21wYXJhYmxlLmpzJztcbmltcG9ydCBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZSBmcm9tICcuL19tYXRjaGVzU3RyaWN0Q29tcGFyYWJsZS5qcyc7XG5pbXBvcnQgdG9LZXkgZnJvbSAnLi9fdG9LZXkuanMnO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB2YWx1ZSBjb21wYXJpc29ucy4gKi9cbnZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDEsXG4gICAgQ09NUEFSRV9VTk9SREVSRURfRkxBRyA9IDI7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc1Byb3BlcnR5YCB3aGljaCBkb2Vzbid0IGNsb25lIGBzcmNWYWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VNYXRjaGVzUHJvcGVydHkocGF0aCwgc3JjVmFsdWUpIHtcbiAgaWYgKGlzS2V5KHBhdGgpICYmIGlzU3RyaWN0Q29tcGFyYWJsZShzcmNWYWx1ZSkpIHtcbiAgICByZXR1cm4gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUodG9LZXkocGF0aCksIHNyY1ZhbHVlKTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgdmFyIG9ialZhbHVlID0gZ2V0KG9iamVjdCwgcGF0aCk7XG4gICAgcmV0dXJuIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG9ialZhbHVlID09PSBzcmNWYWx1ZSlcbiAgICAgID8gaGFzSW4ob2JqZWN0LCBwYXRoKVxuICAgICAgOiBiYXNlSXNFcXVhbChzcmNWYWx1ZSwgb2JqVmFsdWUsIENPTVBBUkVfUEFSVElBTF9GTEFHIHwgQ09NUEFSRV9VTk9SREVSRURfRkxBRyk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VNYXRjaGVzUHJvcGVydHk7XG4iLAogICAgIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVByb3BlcnR5KGtleSkge1xuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VQcm9wZXJ0eTtcbiIsCiAgICAiaW1wb3J0IGJhc2VHZXQgZnJvbSAnLi9fYmFzZUdldC5qcyc7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUHJvcGVydHlgIHdoaWNoIHN1cHBvcnRzIGRlZXAgcGF0aHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVByb3BlcnR5RGVlcChwYXRoKSB7XG4gIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICByZXR1cm4gYmFzZUdldChvYmplY3QsIHBhdGgpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlUHJvcGVydHlEZWVwO1xuIiwKICAgICJpbXBvcnQgYmFzZVByb3BlcnR5IGZyb20gJy4vX2Jhc2VQcm9wZXJ0eS5qcyc7XG5pbXBvcnQgYmFzZVByb3BlcnR5RGVlcCBmcm9tICcuL19iYXNlUHJvcGVydHlEZWVwLmpzJztcbmltcG9ydCBpc0tleSBmcm9tICcuL19pc0tleS5qcyc7XG5pbXBvcnQgdG9LZXkgZnJvbSAnLi9fdG9LZXkuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBhIGdpdmVuIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuNC4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IFtcbiAqICAgeyAnYSc6IHsgJ2InOiAyIH0gfSxcbiAqICAgeyAnYSc6IHsgJ2InOiAxIH0gfVxuICogXTtcbiAqXG4gKiBfLm1hcChvYmplY3RzLCBfLnByb3BlcnR5KCdhLmInKSk7XG4gKiAvLyA9PiBbMiwgMV1cbiAqXG4gKiBfLm1hcChfLnNvcnRCeShvYmplY3RzLCBfLnByb3BlcnR5KFsnYScsICdiJ10pKSwgJ2EuYicpO1xuICogLy8gPT4gWzEsIDJdXG4gKi9cbmZ1bmN0aW9uIHByb3BlcnR5KHBhdGgpIHtcbiAgcmV0dXJuIGlzS2V5KHBhdGgpID8gYmFzZVByb3BlcnR5KHRvS2V5KHBhdGgpKSA6IGJhc2VQcm9wZXJ0eURlZXAocGF0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHByb3BlcnR5O1xuIiwKICAgICJpbXBvcnQgYmFzZU1hdGNoZXMgZnJvbSAnLi9fYmFzZU1hdGNoZXMuanMnO1xuaW1wb3J0IGJhc2VNYXRjaGVzUHJvcGVydHkgZnJvbSAnLi9fYmFzZU1hdGNoZXNQcm9wZXJ0eS5qcyc7XG5pbXBvcnQgaWRlbnRpdHkgZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IHByb3BlcnR5IGZyb20gJy4vcHJvcGVydHkuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLml0ZXJhdGVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSBbdmFsdWU9Xy5pZGVudGl0eV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYW4gaXRlcmF0ZWUuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGl0ZXJhdGVlLlxuICovXG5mdW5jdGlvbiBiYXNlSXRlcmF0ZWUodmFsdWUpIHtcbiAgLy8gRG9uJ3Qgc3RvcmUgdGhlIGB0eXBlb2ZgIHJlc3VsdCBpbiBhIHZhcmlhYmxlIHRvIGF2b2lkIGEgSklUIGJ1ZyBpbiBTYWZhcmkgOS5cbiAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYwMzQgZm9yIG1vcmUgZGV0YWlscy5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGlkZW50aXR5O1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gYmFzZU1hdGNoZXNQcm9wZXJ0eSh2YWx1ZVswXSwgdmFsdWVbMV0pXG4gICAgICA6IGJhc2VNYXRjaGVzKHZhbHVlKTtcbiAgfVxuICByZXR1cm4gcHJvcGVydHkodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXRlcmF0ZWU7XG4iLAogICAgImltcG9ydCBiYXNlRm9yIGZyb20gJy4vX2Jhc2VGb3IuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JPd25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlRm9yT3duKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgcmV0dXJuIG9iamVjdCAmJiBiYXNlRm9yKG9iamVjdCwgaXRlcmF0ZWUsIGtleXMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlRm9yT3duO1xuIiwKICAgICJpbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGBiYXNlRWFjaGAgb3IgYGJhc2VFYWNoUmlnaHRgIGZ1bmN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFzZUVhY2goZWFjaEZ1bmMsIGZyb21SaWdodCkge1xuICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICB9XG4gICAgaWYgKCFpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgcmV0dXJuIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKTtcbiAgICB9XG4gICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoLFxuICAgICAgICBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xLFxuICAgICAgICBpdGVyYWJsZSA9IE9iamVjdChjb2xsZWN0aW9uKTtcblxuICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVbaW5kZXhdLCBpbmRleCwgaXRlcmFibGUpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUJhc2VFYWNoO1xuIiwKICAgICJpbXBvcnQgYmFzZUZvck93biBmcm9tICcuL19iYXNlRm9yT3duLmpzJztcbmltcG9ydCBjcmVhdGVCYXNlRWFjaCBmcm9tICcuL19jcmVhdGVCYXNlRWFjaC5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yRWFjaGAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gKi9cbnZhciBiYXNlRWFjaCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd24pO1xuXG5leHBvcnQgZGVmYXVsdCBiYXNlRWFjaDtcbiIsCiAgICAiaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qKlxuICogR2V0cyB0aGUgdGltZXN0YW1wIG9mIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRoYXQgaGF2ZSBlbGFwc2VkIHNpbmNlXG4gKiB0aGUgVW5peCBlcG9jaCAoMSBKYW51YXJ5IDE5NzAgMDA6MDA6MDAgVVRDKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuNC4wXG4gKiBAY2F0ZWdvcnkgRGF0ZVxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXN0YW1wLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmRlZmVyKGZ1bmN0aW9uKHN0YW1wKSB7XG4gKiAgIGNvbnNvbGUubG9nKF8ubm93KCkgLSBzdGFtcCk7XG4gKiB9LCBfLm5vdygpKTtcbiAqIC8vID0+IExvZ3MgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaXQgdG9vayBmb3IgdGhlIGRlZmVycmVkIGludm9jYXRpb24uXG4gKi9cbnZhciBub3cgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHJvb3QuRGF0ZS5ub3coKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IG5vdztcbiIsCiAgICAiaW1wb3J0IGJhc2VSZXN0IGZyb20gJy4vX2Jhc2VSZXN0LmpzJztcbmltcG9ydCBlcSBmcm9tICcuL2VxLmpzJztcbmltcG9ydCBpc0l0ZXJhdGVlQ2FsbCBmcm9tICcuL19pc0l0ZXJhdGVlQ2FsbC5qcyc7XG5pbXBvcnQga2V5c0luIGZyb20gJy4va2V5c0luLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBc3NpZ25zIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlXG4gKiBvYmplY3RzIHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QgZm9yIGFsbCBkZXN0aW5hdGlvbiBwcm9wZXJ0aWVzIHRoYXRcbiAqIHJlc29sdmUgdG8gYHVuZGVmaW5lZGAuIFNvdXJjZSBvYmplY3RzIGFyZSBhcHBsaWVkIGZyb20gbGVmdCB0byByaWdodC5cbiAqIE9uY2UgYSBwcm9wZXJ0eSBpcyBzZXQsIGFkZGl0aW9uYWwgdmFsdWVzIG9mIHRoZSBzYW1lIHByb3BlcnR5IGFyZSBpZ25vcmVkLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBzZWUgXy5kZWZhdWx0c0RlZXBcbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZhdWx0cyh7ICdhJzogMSB9LCB7ICdiJzogMiB9LCB7ICdhJzogMyB9KTtcbiAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICovXG52YXIgZGVmYXVsdHMgPSBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIHNvdXJjZXMpIHtcbiAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG5cbiAgdmFyIGluZGV4ID0gLTE7XG4gIHZhciBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aDtcbiAgdmFyIGd1YXJkID0gbGVuZ3RoID4gMiA/IHNvdXJjZXNbMl0gOiB1bmRlZmluZWQ7XG5cbiAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgIGxlbmd0aCA9IDE7XG4gIH1cblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICB2YXIgcHJvcHMgPSBrZXlzSW4oc291cmNlKTtcbiAgICB2YXIgcHJvcHNJbmRleCA9IC0xO1xuICAgIHZhciBwcm9wc0xlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICAgIHdoaWxlICgrK3Byb3BzSW5kZXggPCBwcm9wc0xlbmd0aCkge1xuICAgICAgdmFyIGtleSA9IHByb3BzW3Byb3BzSW5kZXhdO1xuICAgICAgdmFyIHZhbHVlID0gb2JqZWN0W2tleV07XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgKGVxKHZhbHVlLCBvYmplY3RQcm90b1trZXldKSAmJiAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSB7XG4gICAgICAgIG9iamVjdFtrZXldID0gc291cmNlW2tleV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG9iamVjdDtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZhdWx0cztcbiIsCiAgICAiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGFycmF5SW5jbHVkZXNgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYSBjb21wYXJhdG9yLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJhdG9yIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHRhcmdldGAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlJbmNsdWRlc1dpdGgoYXJyYXksIHZhbHVlLCBjb21wYXJhdG9yKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpZiAoY29tcGFyYXRvcih2YWx1ZSwgYXJyYXlbaW5kZXhdKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlJbmNsdWRlc1dpdGg7XG4iLAogICAgIi8qKlxuICogR2V0cyB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEFycmF5XG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8ubGFzdChbMSwgMiwgM10pO1xuICogLy8gPT4gM1xuICovXG5mdW5jdGlvbiBsYXN0KGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgcmV0dXJuIGxlbmd0aCA/IGFycmF5W2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBsYXN0O1xuIiwKICAgICJpbXBvcnQgaWRlbnRpdHkgZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5cbi8qKlxuICogQ2FzdHMgYHZhbHVlYCB0byBgaWRlbnRpdHlgIGlmIGl0J3Mgbm90IGEgZnVuY3Rpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgY2FzdCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY2FzdEZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlIDogaWRlbnRpdHk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNhc3RGdW5jdGlvbjtcbiIsCiAgICAiaW1wb3J0IGFycmF5RWFjaCBmcm9tICcuL19hcnJheUVhY2guanMnO1xuaW1wb3J0IGJhc2VFYWNoIGZyb20gJy4vX2Jhc2VFYWNoLmpzJztcbmltcG9ydCBjYXN0RnVuY3Rpb24gZnJvbSAnLi9fY2FzdEZ1bmN0aW9uLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5cbi8qKlxuICogSXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAgYW5kIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBlbGVtZW50LlxuICogVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAqIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdCBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAqXG4gKiAqKk5vdGU6KiogQXMgd2l0aCBvdGhlciBcIkNvbGxlY3Rpb25zXCIgbWV0aG9kcywgb2JqZWN0cyB3aXRoIGEgXCJsZW5ndGhcIlxuICogcHJvcGVydHkgYXJlIGl0ZXJhdGVkIGxpa2UgYXJyYXlzLiBUbyBhdm9pZCB0aGlzIGJlaGF2aW9yIHVzZSBgXy5mb3JJbmBcbiAqIG9yIGBfLmZvck93bmAgZm9yIG9iamVjdCBpdGVyYXRpb24uXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGFsaWFzIGVhY2hcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICogQHNlZSBfLmZvckVhY2hSaWdodFxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmZvckVhY2goWzEsIDJdLCBmdW5jdGlvbih2YWx1ZSkge1xuICogICBjb25zb2xlLmxvZyh2YWx1ZSk7XG4gKiB9KTtcbiAqIC8vID0+IExvZ3MgYDFgIHRoZW4gYDJgLlxuICpcbiAqIF8uZm9yRWFjaCh7ICdhJzogMSwgJ2InOiAyIH0sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAqICAgY29uc29sZS5sb2coa2V5KTtcbiAqIH0pO1xuICogLy8gPT4gTG9ncyAnYScgdGhlbiAnYicgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZCkuXG4gKi9cbmZ1bmN0aW9uIGZvckVhY2goY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlFYWNoIDogYmFzZUVhY2g7XG4gIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGNhc3RGdW5jdGlvbihpdGVyYXRlZSkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmb3JFYWNoO1xuIiwKICAgICJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi9mb3JFYWNoLmpzJ1xuIiwKICAgICJpbXBvcnQgYmFzZUVhY2ggZnJvbSAnLi9fYmFzZUVhY2guanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbHRlcmAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlRmlsdGVyKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSkge1xuICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VGaWx0ZXI7XG4iLAogICAgImltcG9ydCBhcnJheUZpbHRlciBmcm9tICcuL19hcnJheUZpbHRlci5qcyc7XG5pbXBvcnQgYmFzZUZpbHRlciBmcm9tICcuL19iYXNlRmlsdGVyLmpzJztcbmltcG9ydCBiYXNlSXRlcmF0ZWUgZnJvbSAnLi9fYmFzZUl0ZXJhdGVlLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5cbi8qKlxuICogSXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAsIHJldHVybmluZyBhbiBhcnJheSBvZiBhbGwgZWxlbWVudHNcbiAqIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvci4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGggdGhyZWVcbiAqIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICpcbiAqICoqTm90ZToqKiBVbmxpa2UgYF8ucmVtb3ZlYCwgdGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gKiBAc2VlIF8ucmVqZWN0XG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciB1c2VycyA9IFtcbiAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfVxuICogXTtcbiAqXG4gKiBfLmZpbHRlcih1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gIW8uYWN0aXZlOyB9KTtcbiAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCddXG4gKlxuICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAqIF8uZmlsdGVyKHVzZXJzLCB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXG4gKlxuICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICogXy5maWx0ZXIodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCddXG4gKlxuICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gKiBfLmZpbHRlcih1c2VycywgJ2FjdGl2ZScpO1xuICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknXVxuICpcbiAqIC8vIENvbWJpbmluZyBzZXZlcmFsIHByZWRpY2F0ZXMgdXNpbmcgYF8ub3ZlckV2ZXJ5YCBvciBgXy5vdmVyU29tZWAuXG4gKiBfLmZpbHRlcih1c2VycywgXy5vdmVyU29tZShbeyAnYWdlJzogMzYgfSwgWydhZ2UnLCA0MF1dKSk7XG4gKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAnYmFybmV5J11cbiAqL1xuZnVuY3Rpb24gZmlsdGVyKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUZpbHRlciA6IGJhc2VGaWx0ZXI7XG4gIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGJhc2VJdGVyYXRlZShwcmVkaWNhdGUsIDMpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZmlsdGVyO1xuIiwKICAgICJpbXBvcnQgYmFzZUl0ZXJhdGVlIGZyb20gJy4vX2Jhc2VJdGVyYXRlZS5qcyc7XG5pbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5pbXBvcnQga2V5cyBmcm9tICcuL2tleXMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBgXy5maW5kYCBvciBgXy5maW5kTGFzdGAgZnVuY3Rpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZpbmRJbmRleEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIGNvbGxlY3Rpb24gaW5kZXguXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmaW5kIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVGaW5kKGZpbmRJbmRleEZ1bmMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbUluZGV4KSB7XG4gICAgdmFyIGl0ZXJhYmxlID0gT2JqZWN0KGNvbGxlY3Rpb24pO1xuICAgIGlmICghaXNBcnJheUxpa2UoY29sbGVjdGlvbikpIHtcbiAgICAgIHZhciBpdGVyYXRlZSA9IGJhc2VJdGVyYXRlZShwcmVkaWNhdGUsIDMpO1xuICAgICAgY29sbGVjdGlvbiA9IGtleXMoY29sbGVjdGlvbik7XG4gICAgICBwcmVkaWNhdGUgPSBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIGl0ZXJhdGVlKGl0ZXJhYmxlW2tleV0sIGtleSwgaXRlcmFibGUpOyB9O1xuICAgIH1cbiAgICB2YXIgaW5kZXggPSBmaW5kSW5kZXhGdW5jKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbUluZGV4KTtcbiAgICByZXR1cm4gaW5kZXggPiAtMSA/IGl0ZXJhYmxlW2l0ZXJhdGVlID8gY29sbGVjdGlvbltpbmRleF0gOiBpbmRleF0gOiB1bmRlZmluZWQ7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUZpbmQ7XG4iLAogICAgImltcG9ydCBiYXNlRmluZEluZGV4IGZyb20gJy4vX2Jhc2VGaW5kSW5kZXguanMnO1xuaW1wb3J0IGJhc2VJdGVyYXRlZSBmcm9tICcuL19iYXNlSXRlcmF0ZWUuanMnO1xuaW1wb3J0IHRvSW50ZWdlciBmcm9tICcuL3RvSW50ZWdlci5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heDtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRgIGV4Y2VwdCB0aGF0IGl0IHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdFxuICogZWxlbWVudCBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgaW5zdGVhZCBvZiB0aGUgZWxlbWVudCBpdHNlbGYuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAxLjEuMFxuICogQGNhdGVnb3J5IEFycmF5XG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PTBdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmb3VuZCBlbGVtZW50LCBlbHNlIGAtMWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciB1c2VycyA9IFtcbiAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxuICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogdHJ1ZSB9XG4gKiBdO1xuICpcbiAqIF8uZmluZEluZGV4KHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLnVzZXIgPT0gJ2Jhcm5leSc7IH0pO1xuICogLy8gPT4gMFxuICpcbiAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gKiBfLmZpbmRJbmRleCh1c2VycywgeyAndXNlcic6ICdmcmVkJywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICogLy8gPT4gMVxuICpcbiAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAqIF8uZmluZEluZGV4KHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gKiAvLyA9PiAwXG4gKlxuICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gKiBfLmZpbmRJbmRleCh1c2VycywgJ2FjdGl2ZScpO1xuICogLy8gPT4gMlxuICovXG5mdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZSwgZnJvbUluZGV4KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgaWYgKCFsZW5ndGgpIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cbiAgdmFyIGluZGV4ID0gZnJvbUluZGV4ID09IG51bGwgPyAwIDogdG9JbnRlZ2VyKGZyb21JbmRleCk7XG4gIGlmIChpbmRleCA8IDApIHtcbiAgICBpbmRleCA9IG5hdGl2ZU1heChsZW5ndGggKyBpbmRleCwgMCk7XG4gIH1cbiAgcmV0dXJuIGJhc2VGaW5kSW5kZXgoYXJyYXksIGJhc2VJdGVyYXRlZShwcmVkaWNhdGUsIDMpLCBpbmRleCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZpbmRJbmRleDtcbiIsCiAgICAiaW1wb3J0IGNyZWF0ZUZpbmQgZnJvbSAnLi9fY3JlYXRlRmluZC5qcyc7XG5pbXBvcnQgZmluZEluZGV4IGZyb20gJy4vZmluZEluZGV4LmpzJztcblxuLyoqXG4gKiBJdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCwgcmV0dXJuaW5nIHRoZSBmaXJzdCBlbGVtZW50XG4gKiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoIHRocmVlXG4gKiBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PTBdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXRjaGVkIGVsZW1lbnQsIGVsc2UgYHVuZGVmaW5lZGAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciB1c2VycyA9IFtcbiAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9LFxuICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cbiAqIF07XG4gKlxuICogXy5maW5kKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLmFnZSA8IDQwOyB9KTtcbiAqIC8vID0+IG9iamVjdCBmb3IgJ2Jhcm5leSdcbiAqXG4gKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICogXy5maW5kKHVzZXJzLCB7ICdhZ2UnOiAxLCAnYWN0aXZlJzogdHJ1ZSB9KTtcbiAqIC8vID0+IG9iamVjdCBmb3IgJ3BlYmJsZXMnXG4gKlxuICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICogXy5maW5kKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gKiAvLyA9PiBvYmplY3QgZm9yICdmcmVkJ1xuICpcbiAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICogXy5maW5kKHVzZXJzLCAnYWN0aXZlJyk7XG4gKiAvLyA9PiBvYmplY3QgZm9yICdiYXJuZXknXG4gKi9cbnZhciBmaW5kID0gY3JlYXRlRmluZChmaW5kSW5kZXgpO1xuXG5leHBvcnQgZGVmYXVsdCBmaW5kO1xuIiwKICAgICJpbXBvcnQgYmFzZUVhY2ggZnJvbSAnLi9fYmFzZUVhY2guanMnO1xuaW1wb3J0IGlzQXJyYXlMaWtlIGZyb20gJy4vaXNBcnJheUxpa2UuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hcGAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlTWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gaXNBcnJheUxpa2UoY29sbGVjdGlvbikgPyBBcnJheShjb2xsZWN0aW9uLmxlbmd0aCkgOiBbXTtcblxuICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgcmVzdWx0WysraW5kZXhdID0gaXRlcmF0ZWUodmFsdWUsIGtleSwgY29sbGVjdGlvbik7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlTWFwO1xuIiwKICAgICJpbXBvcnQgYXJyYXlNYXAgZnJvbSAnLi9fYXJyYXlNYXAuanMnO1xuaW1wb3J0IGJhc2VJdGVyYXRlZSBmcm9tICcuL19iYXNlSXRlcmF0ZWUuanMnO1xuaW1wb3J0IGJhc2VNYXAgZnJvbSAnLi9fYmFzZU1hcC5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdmFsdWVzIGJ5IHJ1bm5pbmcgZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYCB0aHJ1XG4gKiBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAqICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAqXG4gKiBNYW55IGxvZGFzaCBtZXRob2RzIGFyZSBndWFyZGVkIHRvIHdvcmsgYXMgaXRlcmF0ZWVzIGZvciBtZXRob2RzIGxpa2VcbiAqIGBfLmV2ZXJ5YCwgYF8uZmlsdGVyYCwgYF8ubWFwYCwgYF8ubWFwVmFsdWVzYCwgYF8ucmVqZWN0YCwgYW5kIGBfLnNvbWVgLlxuICpcbiAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxuICogYGFyeWAsIGBjaHVua2AsIGBjdXJyeWAsIGBjdXJyeVJpZ2h0YCwgYGRyb3BgLCBgZHJvcFJpZ2h0YCwgYGV2ZXJ5YCxcbiAqIGBmaWxsYCwgYGludmVydGAsIGBwYXJzZUludGAsIGByYW5kb21gLCBgcmFuZ2VgLCBgcmFuZ2VSaWdodGAsIGByZXBlYXRgLFxuICogYHNhbXBsZVNpemVgLCBgc2xpY2VgLCBgc29tZWAsIGBzb3J0QnlgLCBgc3BsaXRgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLFxuICogYHRlbXBsYXRlYCwgYHRyaW1gLCBgdHJpbUVuZGAsIGB0cmltU3RhcnRgLCBhbmQgYHdvcmRzYFxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAqICAgcmV0dXJuIG4gKiBuO1xuICogfVxuICpcbiAqIF8ubWFwKFs0LCA4XSwgc3F1YXJlKTtcbiAqIC8vID0+IFsxNiwgNjRdXG4gKlxuICogXy5tYXAoeyAnYSc6IDQsICdiJzogOCB9LCBzcXVhcmUpO1xuICogLy8gPT4gWzE2LCA2NF0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqXG4gKiB2YXIgdXNlcnMgPSBbXG4gKiAgIHsgJ3VzZXInOiAnYmFybmV5JyB9LFxuICogICB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAqIF07XG4gKlxuICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gKiBfLm1hcCh1c2VycywgJ3VzZXInKTtcbiAqIC8vID0+IFsnYmFybmV5JywgJ2ZyZWQnXVxuICovXG5mdW5jdGlvbiBtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlNYXAgOiBiYXNlTWFwO1xuICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBiYXNlSXRlcmF0ZWUoaXRlcmF0ZWUsIDMpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWFwO1xuIiwKICAgICJpbXBvcnQgYmFzZUZvciBmcm9tICcuL19iYXNlRm9yLmpzJztcbmltcG9ydCBjYXN0RnVuY3Rpb24gZnJvbSAnLi9fY2FzdEZ1bmN0aW9uLmpzJztcbmltcG9ydCBrZXlzSW4gZnJvbSAnLi9rZXlzSW4uanMnO1xuXG4vKipcbiAqIEl0ZXJhdGVzIG92ZXIgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBhblxuICogb2JqZWN0IGFuZCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGVhY2ggcHJvcGVydHkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkXG4gKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBrZXksIG9iamVjdCkuIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdFxuICogaXRlcmF0aW9uIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjMuMFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBzZWUgXy5mb3JJblJpZ2h0XG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8uZm9ySW4obmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICogICBjb25zb2xlLmxvZyhrZXkpO1xuICogfSk7XG4gKiAvLyA9PiBMb2dzICdhJywgJ2InLCB0aGVuICdjJyAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKS5cbiAqL1xuZnVuY3Rpb24gZm9ySW4ob2JqZWN0LCBpdGVyYXRlZSkge1xuICByZXR1cm4gb2JqZWN0ID09IG51bGxcbiAgICA/IG9iamVjdFxuICAgIDogYmFzZUZvcihvYmplY3QsIGNhc3RGdW5jdGlvbihpdGVyYXRlZSksIGtleXNJbik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZvckluO1xuIiwKICAgICJpbXBvcnQgYmFzZUZvck93biBmcm9tICcuL19iYXNlRm9yT3duLmpzJztcbmltcG9ydCBjYXN0RnVuY3Rpb24gZnJvbSAnLi9fY2FzdEZ1bmN0aW9uLmpzJztcblxuLyoqXG4gKiBJdGVyYXRlcyBvdmVyIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdCBhbmRcbiAqIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBwcm9wZXJ0eS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aHJlZVxuICogYXJndW1lbnRzOiAodmFsdWUsIGtleSwgb2JqZWN0KS4gSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvblxuICogZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMy4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICogQHNlZSBfLmZvck93blJpZ2h0XG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8uZm9yT3duKG5ldyBGb28sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAqICAgY29uc29sZS5sb2coa2V5KTtcbiAqIH0pO1xuICogLy8gPT4gTG9ncyAnYScgdGhlbiAnYicgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZCkuXG4gKi9cbmZ1bmN0aW9uIGZvck93bihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gIHJldHVybiBvYmplY3QgJiYgYmFzZUZvck93bihvYmplY3QsIGNhc3RGdW5jdGlvbihpdGVyYXRlZSkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmb3JPd247XG4iLAogICAgIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZ3RgIHdoaWNoIGRvZXNuJ3QgY29lcmNlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBncmVhdGVyIHRoYW4gYG90aGVyYCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHdCh2YWx1ZSwgb3RoZXIpIHtcbiAgcmV0dXJuIHZhbHVlID4gb3RoZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VHdDtcbiIsCiAgICAiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5oYXNgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30ga2V5IFRoZSBrZXkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VIYXMob2JqZWN0LCBrZXkpIHtcbiAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSGFzO1xuIiwKICAgICJpbXBvcnQgYmFzZUhhcyBmcm9tICcuL19iYXNlSGFzLmpzJztcbmltcG9ydCBoYXNQYXRoIGZyb20gJy4vX2hhc1BhdGguanMnO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgcGF0aGAgaXMgYSBkaXJlY3QgcHJvcGVydHkgb2YgYG9iamVjdGAuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IHsgJ2InOiAyIH0gfTtcbiAqIHZhciBvdGhlciA9IF8uY3JlYXRlKHsgJ2EnOiBfLmNyZWF0ZSh7ICdiJzogMiB9KSB9KTtcbiAqXG4gKiBfLmhhcyhvYmplY3QsICdhJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5oYXMob2JqZWN0LCAnYS5iJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5oYXMob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmhhcyhvdGhlciwgJ2EnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGhhcyhvYmplY3QsIHBhdGgpIHtcbiAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBiYXNlSGFzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaGFzO1xuIiwKICAgICJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3RyaW5nYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3RyaW5nLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTdHJpbmcoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTdHJpbmcoMSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8XG4gICAgKCFpc0FycmF5KHZhbHVlKSAmJiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN0cmluZ1RhZyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzU3RyaW5nO1xuIiwKICAgICJpbXBvcnQgYXJyYXlNYXAgZnJvbSAnLi9fYXJyYXlNYXAuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnZhbHVlc2AgYW5kIGBfLnZhbHVlc0luYCB3aGljaCBjcmVhdGVzIGFuXG4gKiBhcnJheSBvZiBgb2JqZWN0YCBwcm9wZXJ0eSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvcGVydHkgbmFtZXNcbiAqIG9mIGBwcm9wc2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBuYW1lcyB0byBnZXQgdmFsdWVzIGZvci5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gYmFzZVZhbHVlcyhvYmplY3QsIHByb3BzKSB7XG4gIHJldHVybiBhcnJheU1hcChwcm9wcywgZnVuY3Rpb24oa2V5KSB7XG4gICAgcmV0dXJuIG9iamVjdFtrZXldO1xuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVZhbHVlcztcbiIsCiAgICAiaW1wb3J0IGJhc2VWYWx1ZXMgZnJvbSAnLi9fYmFzZVZhbHVlcy5qcyc7XG5pbXBvcnQga2V5cyBmcm9tICcuL2tleXMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0eSB2YWx1ZXMgb2YgYG9iamVjdGAuXG4gKlxuICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8udmFsdWVzKG5ldyBGb28pO1xuICogLy8gPT4gWzEsIDJdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy52YWx1ZXMoJ2hpJyk7XG4gKiAvLyA9PiBbJ2gnLCAnaSddXG4gKi9cbmZ1bmN0aW9uIHZhbHVlcyhvYmplY3QpIHtcbiAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gW10gOiBiYXNlVmFsdWVzKG9iamVjdCwga2V5cyhvYmplY3QpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdmFsdWVzO1xuIiwKICAgICIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGB1bmRlZmluZWRgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGB1bmRlZmluZWRgLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNVbmRlZmluZWQodm9pZCAwKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzVW5kZWZpbmVkKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzVW5kZWZpbmVkO1xuIiwKICAgICIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmx0YCB3aGljaCBkb2Vzbid0IGNvZXJjZSBhcmd1bWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgbGVzcyB0aGFuIGBvdGhlcmAsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlTHQodmFsdWUsIG90aGVyKSB7XG4gIHJldHVybiB2YWx1ZSA8IG90aGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlTHQ7XG4iLAogICAgImltcG9ydCBiYXNlQXNzaWduVmFsdWUgZnJvbSAnLi9fYmFzZUFzc2lnblZhbHVlLmpzJztcbmltcG9ydCBiYXNlRm9yT3duIGZyb20gJy4vX2Jhc2VGb3JPd24uanMnO1xuaW1wb3J0IGJhc2VJdGVyYXRlZSBmcm9tICcuL19iYXNlSXRlcmF0ZWUuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHdpdGggdGhlIHNhbWUga2V5cyBhcyBgb2JqZWN0YCBhbmQgdmFsdWVzIGdlbmVyYXRlZFxuICogYnkgcnVubmluZyBlYWNoIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0eSBvZiBgb2JqZWN0YCB0aHJ1XG4gKiBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAqICh2YWx1ZSwga2V5LCBvYmplY3QpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMi40LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgb2JqZWN0LlxuICogQHNlZSBfLm1hcEtleXNcbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIHVzZXJzID0ge1xuICogICAnZnJlZCc6ICAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhZ2UnOiA0MCB9LFxuICogICAncGViYmxlcyc6IHsgJ3VzZXInOiAncGViYmxlcycsICdhZ2UnOiAxIH1cbiAqIH07XG4gKlxuICogXy5tYXBWYWx1ZXModXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8uYWdlOyB9KTtcbiAqIC8vID0+IHsgJ2ZyZWQnOiA0MCwgJ3BlYmJsZXMnOiAxIH0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqXG4gKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAqIF8ubWFwVmFsdWVzKHVzZXJzLCAnYWdlJyk7XG4gKiAvLyA9PiB7ICdmcmVkJzogNDAsICdwZWJibGVzJzogMSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIG1hcFZhbHVlcyhvYmplY3QsIGl0ZXJhdGVlKSB7XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgaXRlcmF0ZWUgPSBiYXNlSXRlcmF0ZWUoaXRlcmF0ZWUsIDMpO1xuXG4gIGJhc2VGb3JPd24ob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwga2V5LCBvYmplY3QpIHtcbiAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0LCBrZXksIGl0ZXJhdGVlKHZhbHVlLCBrZXksIG9iamVjdCkpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWFwVmFsdWVzO1xuIiwKICAgICJpbXBvcnQgaXNTeW1ib2wgZnJvbSAnLi9pc1N5bWJvbC5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBsaWtlIGBfLm1heGAgYW5kIGBfLm1pbmAgd2hpY2ggYWNjZXB0cyBhXG4gKiBgY29tcGFyYXRvcmAgdG8gZGV0ZXJtaW5lIHRoZSBleHRyZW11bSB2YWx1ZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJhdG9yIFRoZSBjb21wYXJhdG9yIHVzZWQgdG8gY29tcGFyZSB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZXh0cmVtdW0gdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VFeHRyZW11bShhcnJheSwgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgIGN1cnJlbnQgPSBpdGVyYXRlZSh2YWx1ZSk7XG5cbiAgICBpZiAoY3VycmVudCAhPSBudWxsICYmIChjb21wdXRlZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyAoY3VycmVudCA9PT0gY3VycmVudCAmJiAhaXNTeW1ib2woY3VycmVudCkpXG4gICAgICAgICAgOiBjb21wYXJhdG9yKGN1cnJlbnQsIGNvbXB1dGVkKVxuICAgICAgICApKSB7XG4gICAgICB2YXIgY29tcHV0ZWQgPSBjdXJyZW50LFxuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlRXh0cmVtdW07XG4iLAogICAgImltcG9ydCBiYXNlRXh0cmVtdW0gZnJvbSAnLi9fYmFzZUV4dHJlbXVtLmpzJztcbmltcG9ydCBiYXNlR3QgZnJvbSAnLi9fYmFzZUd0LmpzJztcbmltcG9ydCBpZGVudGl0eSBmcm9tICcuL2lkZW50aXR5LmpzJztcblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgbWF4aW11bSB2YWx1ZSBvZiBgYXJyYXlgLiBJZiBgYXJyYXlgIGlzIGVtcHR5IG9yIGZhbHNleSxcbiAqIGB1bmRlZmluZWRgIGlzIHJldHVybmVkLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBNYXRoXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8ubWF4KFs0LCAyLCA4LCA2XSk7XG4gKiAvLyA9PiA4XG4gKlxuICogXy5tYXgoW10pO1xuICogLy8gPT4gdW5kZWZpbmVkXG4gKi9cbmZ1bmN0aW9uIG1heChhcnJheSkge1xuICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICA/IGJhc2VFeHRyZW11bShhcnJheSwgaWRlbnRpdHksIGJhc2VHdClcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWF4O1xuIiwKICAgICJpbXBvcnQgYmFzZUV4dHJlbXVtIGZyb20gJy4vX2Jhc2VFeHRyZW11bS5qcyc7XG5pbXBvcnQgYmFzZUx0IGZyb20gJy4vX2Jhc2VMdC5qcyc7XG5pbXBvcnQgaWRlbnRpdHkgZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIG1pbmltdW0gdmFsdWUgb2YgYGFycmF5YC4gSWYgYGFycmF5YCBpcyBlbXB0eSBvciBmYWxzZXksXG4gKiBgdW5kZWZpbmVkYCBpcyByZXR1cm5lZC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTWF0aFxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLm1pbihbNCwgMiwgOCwgNl0pO1xuICogLy8gPT4gMlxuICpcbiAqIF8ubWluKFtdKTtcbiAqIC8vID0+IHVuZGVmaW5lZFxuICovXG5mdW5jdGlvbiBtaW4oYXJyYXkpIHtcbiAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGlkZW50aXR5LCBiYXNlTHQpXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1pbjtcbiIsCiAgICAiaW1wb3J0IGJhc2VFeHRyZW11bSBmcm9tICcuL19iYXNlRXh0cmVtdW0uanMnO1xuaW1wb3J0IGJhc2VJdGVyYXRlZSBmcm9tICcuL19iYXNlSXRlcmF0ZWUuanMnO1xuaW1wb3J0IGJhc2VMdCBmcm9tICcuL19iYXNlTHQuanMnO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubWluYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnkgd2hpY2hcbiAqIHRoZSB2YWx1ZSBpcyByYW5rZWQuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBNYXRoXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1pbmltdW0gdmFsdWUuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3RzID0gW3sgJ24nOiAxIH0sIHsgJ24nOiAyIH1dO1xuICpcbiAqIF8ubWluQnkob2JqZWN0cywgZnVuY3Rpb24obykgeyByZXR1cm4gby5uOyB9KTtcbiAqIC8vID0+IHsgJ24nOiAxIH1cbiAqXG4gKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAqIF8ubWluQnkob2JqZWN0cywgJ24nKTtcbiAqIC8vID0+IHsgJ24nOiAxIH1cbiAqL1xuZnVuY3Rpb24gbWluQnkoYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgID8gYmFzZUV4dHJlbXVtKGFycmF5LCBiYXNlSXRlcmF0ZWUoaXRlcmF0ZWUsIDIpLCBiYXNlTHQpXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1pbkJ5O1xuIiwKICAgICJpbXBvcnQgYXNzaWduVmFsdWUgZnJvbSAnLi9fYXNzaWduVmFsdWUuanMnO1xuaW1wb3J0IGNhc3RQYXRoIGZyb20gJy4vX2Nhc3RQYXRoLmpzJztcbmltcG9ydCBpc0luZGV4IGZyb20gJy4vX2lzSW5kZXguanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IHRvS2V5IGZyb20gJy4vX3RvS2V5LmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zZXRgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIHBhdGggY3JlYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoLFxuICAgICAgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMSxcbiAgICAgIG5lc3RlZCA9IG9iamVjdDtcblxuICB3aGlsZSAobmVzdGVkICE9IG51bGwgJiYgKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSksXG4gICAgICAgIG5ld1ZhbHVlID0gdmFsdWU7XG5cbiAgICBpZiAoa2V5ID09PSAnX19wcm90b19fJyB8fCBrZXkgPT09ICdjb25zdHJ1Y3RvcicgfHwga2V5ID09PSAncHJvdG90eXBlJykge1xuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggIT0gbGFzdEluZGV4KSB7XG4gICAgICB2YXIgb2JqVmFsdWUgPSBuZXN0ZWRba2V5XTtcbiAgICAgIG5ld1ZhbHVlID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIob2JqVmFsdWUsIGtleSwgbmVzdGVkKSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG5ld1ZhbHVlID0gaXNPYmplY3Qob2JqVmFsdWUpXG4gICAgICAgICAgPyBvYmpWYWx1ZVxuICAgICAgICAgIDogKGlzSW5kZXgocGF0aFtpbmRleCArIDFdKSA/IFtdIDoge30pO1xuICAgICAgfVxuICAgIH1cbiAgICBhc3NpZ25WYWx1ZShuZXN0ZWQsIGtleSwgbmV3VmFsdWUpO1xuICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VTZXQ7XG4iLAogICAgImltcG9ydCBiYXNlR2V0IGZyb20gJy4vX2Jhc2VHZXQuanMnO1xuaW1wb3J0IGJhc2VTZXQgZnJvbSAnLi9fYmFzZVNldC5qcyc7XG5pbXBvcnQgY2FzdFBhdGggZnJvbSAnLi9fY2FzdFBhdGguanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mICBgXy5waWNrQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgc291cmNlIG9iamVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGhzIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBwcm9wZXJ0eS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgcHJlZGljYXRlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0ge307XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgcGF0aCA9IHBhdGhzW2luZGV4XSxcbiAgICAgICAgdmFsdWUgPSBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG5cbiAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBwYXRoKSkge1xuICAgICAgYmFzZVNldChyZXN1bHQsIGNhc3RQYXRoKHBhdGgsIG9iamVjdCksIHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVBpY2tCeTtcbiIsCiAgICAiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zb3J0QnlgIHdoaWNoIHVzZXMgYGNvbXBhcmVyYCB0byBkZWZpbmUgdGhlXG4gKiBzb3J0IG9yZGVyIG9mIGBhcnJheWAgYW5kIHJlcGxhY2VzIGNyaXRlcmlhIG9iamVjdHMgd2l0aCB0aGVpciBjb3JyZXNwb25kaW5nXG4gKiB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzb3J0LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY29tcGFyZXIgVGhlIGZ1bmN0aW9uIHRvIGRlZmluZSBzb3J0IG9yZGVyLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VTb3J0QnkoYXJyYXksIGNvbXBhcmVyKSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgYXJyYXkuc29ydChjb21wYXJlcik7XG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIGFycmF5W2xlbmd0aF0gPSBhcnJheVtsZW5ndGhdLnZhbHVlO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVNvcnRCeTtcbiIsCiAgICAiaW1wb3J0IGlzU3ltYm9sIGZyb20gJy4vaXNTeW1ib2wuanMnO1xuXG4vKipcbiAqIENvbXBhcmVzIHZhbHVlcyB0byBzb3J0IHRoZW0gaW4gYXNjZW5kaW5nIG9yZGVyLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHNvcnQgb3JkZXIgaW5kaWNhdG9yIGZvciBgdmFsdWVgLlxuICovXG5mdW5jdGlvbiBjb21wYXJlQXNjZW5kaW5nKHZhbHVlLCBvdGhlcikge1xuICBpZiAodmFsdWUgIT09IG90aGVyKSB7XG4gICAgdmFyIHZhbElzRGVmaW5lZCA9IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAgIHZhbElzTnVsbCA9IHZhbHVlID09PSBudWxsLFxuICAgICAgICB2YWxJc1JlZmxleGl2ZSA9IHZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgdmFsSXNTeW1ib2wgPSBpc1N5bWJvbCh2YWx1ZSk7XG5cbiAgICB2YXIgb3RoSXNEZWZpbmVkID0gb3RoZXIgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgb3RoSXNOdWxsID0gb3RoZXIgPT09IG51bGwsXG4gICAgICAgIG90aElzUmVmbGV4aXZlID0gb3RoZXIgPT09IG90aGVyLFxuICAgICAgICBvdGhJc1N5bWJvbCA9IGlzU3ltYm9sKG90aGVyKTtcblxuICAgIGlmICgoIW90aElzTnVsbCAmJiAhb3RoSXNTeW1ib2wgJiYgIXZhbElzU3ltYm9sICYmIHZhbHVlID4gb3RoZXIpIHx8XG4gICAgICAgICh2YWxJc1N5bWJvbCAmJiBvdGhJc0RlZmluZWQgJiYgb3RoSXNSZWZsZXhpdmUgJiYgIW90aElzTnVsbCAmJiAhb3RoSXNTeW1ib2wpIHx8XG4gICAgICAgICh2YWxJc051bGwgJiYgb3RoSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAoIXZhbElzRGVmaW5lZCAmJiBvdGhJc1JlZmxleGl2ZSkgfHxcbiAgICAgICAgIXZhbElzUmVmbGV4aXZlKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgaWYgKCghdmFsSXNOdWxsICYmICF2YWxJc1N5bWJvbCAmJiAhb3RoSXNTeW1ib2wgJiYgdmFsdWUgPCBvdGhlcikgfHxcbiAgICAgICAgKG90aElzU3ltYm9sICYmIHZhbElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSAmJiAhdmFsSXNOdWxsICYmICF2YWxJc1N5bWJvbCkgfHxcbiAgICAgICAgKG90aElzTnVsbCAmJiB2YWxJc0RlZmluZWQgJiYgdmFsSXNSZWZsZXhpdmUpIHx8XG4gICAgICAgICghb3RoSXNEZWZpbmVkICYmIHZhbElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAhb3RoSXNSZWZsZXhpdmUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBhcmVBc2NlbmRpbmc7XG4iLAogICAgImltcG9ydCBjb21wYXJlQXNjZW5kaW5nIGZyb20gJy4vX2NvbXBhcmVBc2NlbmRpbmcuanMnO1xuXG4vKipcbiAqIFVzZWQgYnkgYF8ub3JkZXJCeWAgdG8gY29tcGFyZSBtdWx0aXBsZSBwcm9wZXJ0aWVzIG9mIGEgdmFsdWUgdG8gYW5vdGhlclxuICogYW5kIHN0YWJsZSBzb3J0IHRoZW0uXG4gKlxuICogSWYgYG9yZGVyc2AgaXMgdW5zcGVjaWZpZWQsIGFsbCB2YWx1ZXMgYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuIE90aGVyd2lzZSxcbiAqIHNwZWNpZnkgYW4gb3JkZXIgb2YgXCJkZXNjXCIgZm9yIGRlc2NlbmRpbmcgb3IgXCJhc2NcIiBmb3IgYXNjZW5kaW5nIHNvcnQgb3JkZXJcbiAqIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW5bXXxzdHJpbmdbXX0gb3JkZXJzIFRoZSBvcmRlciB0byBzb3J0IGJ5IGZvciBlYWNoIHByb3BlcnR5LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc29ydCBvcmRlciBpbmRpY2F0b3IgZm9yIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgb2JqQ3JpdGVyaWEgPSBvYmplY3QuY3JpdGVyaWEsXG4gICAgICBvdGhDcml0ZXJpYSA9IG90aGVyLmNyaXRlcmlhLFxuICAgICAgbGVuZ3RoID0gb2JqQ3JpdGVyaWEubGVuZ3RoLFxuICAgICAgb3JkZXJzTGVuZ3RoID0gb3JkZXJzLmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciByZXN1bHQgPSBjb21wYXJlQXNjZW5kaW5nKG9iakNyaXRlcmlhW2luZGV4XSwgb3RoQ3JpdGVyaWFbaW5kZXhdKTtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBpZiAoaW5kZXggPj0gb3JkZXJzTGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICB2YXIgb3JkZXIgPSBvcmRlcnNbaW5kZXhdO1xuICAgICAgcmV0dXJuIHJlc3VsdCAqIChvcmRlciA9PSAnZGVzYycgPyAtMSA6IDEpO1xuICAgIH1cbiAgfVxuICAvLyBGaXhlcyBhbiBgQXJyYXkjc29ydGAgYnVnIGluIHRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgYXBwbGljYXRpb25zXG4gIC8vIHRoYXQgY2F1c2VzIGl0LCB1bmRlciBjZXJ0YWluIGNpcmN1bXN0YW5jZXMsIHRvIHByb3ZpZGUgdGhlIHNhbWUgdmFsdWUgZm9yXG4gIC8vIGBvYmplY3RgIGFuZCBgb3RoZXJgLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2phc2hrZW5hcy91bmRlcnNjb3JlL3B1bGwvMTI0N1xuICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAvL1xuICAvLyBUaGlzIGFsc28gZW5zdXJlcyBhIHN0YWJsZSBzb3J0IGluIFY4IGFuZCBvdGhlciBlbmdpbmVzLlxuICAvLyBTZWUgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9OTAgZm9yIG1vcmUgZGV0YWlscy5cbiAgcmV0dXJuIG9iamVjdC5pbmRleCAtIG90aGVyLmluZGV4O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb21wYXJlTXVsdGlwbGU7XG4iLAogICAgImltcG9ydCBhcnJheU1hcCBmcm9tICcuL19hcnJheU1hcC5qcyc7XG5pbXBvcnQgYmFzZUdldCBmcm9tICcuL19iYXNlR2V0LmpzJztcbmltcG9ydCBiYXNlSXRlcmF0ZWUgZnJvbSAnLi9fYmFzZUl0ZXJhdGVlLmpzJztcbmltcG9ydCBiYXNlTWFwIGZyb20gJy4vX2Jhc2VNYXAuanMnO1xuaW1wb3J0IGJhc2VTb3J0QnkgZnJvbSAnLi9fYmFzZVNvcnRCeS5qcyc7XG5pbXBvcnQgYmFzZVVuYXJ5IGZyb20gJy4vX2Jhc2VVbmFyeS5qcyc7XG5pbXBvcnQgY29tcGFyZU11bHRpcGxlIGZyb20gJy4vX2NvbXBhcmVNdWx0aXBsZS5qcyc7XG5pbXBvcnQgaWRlbnRpdHkgZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm9yZGVyQnlgIHdpdGhvdXQgcGFyYW0gZ3VhcmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9uW118T2JqZWN0W118c3RyaW5nW119IGl0ZXJhdGVlcyBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBvcmRlcnMgVGhlIHNvcnQgb3JkZXJzIG9mIGBpdGVyYXRlZXNgLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgc29ydGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycykge1xuICBpZiAoaXRlcmF0ZWVzLmxlbmd0aCkge1xuICAgIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgIGlmIChpc0FycmF5KGl0ZXJhdGVlKSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZUdldCh2YWx1ZSwgaXRlcmF0ZWUubGVuZ3RoID09PSAxID8gaXRlcmF0ZWVbMF0gOiBpdGVyYXRlZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBpdGVyYXRlZTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBpdGVyYXRlZXMgPSBbaWRlbnRpdHldO1xuICB9XG5cbiAgdmFyIGluZGV4ID0gLTE7XG4gIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgYmFzZVVuYXJ5KGJhc2VJdGVyYXRlZSkpO1xuXG4gIHZhciByZXN1bHQgPSBiYXNlTWFwKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICB2YXIgY3JpdGVyaWEgPSBhcnJheU1hcChpdGVyYXRlZXMsIGZ1bmN0aW9uKGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gaXRlcmF0ZWUodmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiB7ICdjcml0ZXJpYSc6IGNyaXRlcmlhLCAnaW5kZXgnOiArK2luZGV4LCAndmFsdWUnOiB2YWx1ZSB9O1xuICB9KTtcblxuICByZXR1cm4gYmFzZVNvcnRCeShyZXN1bHQsIGZ1bmN0aW9uKG9iamVjdCwgb3RoZXIpIHtcbiAgICByZXR1cm4gY29tcGFyZU11bHRpcGxlKG9iamVjdCwgb3RoZXIsIG9yZGVycyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlT3JkZXJCeTtcbiIsCiAgICAiaW1wb3J0IGJhc2VQcm9wZXJ0eSBmcm9tICcuL19iYXNlUHJvcGVydHkuanMnO1xuXG4vKipcbiAqIEdldHMgdGhlIHNpemUgb2YgYW4gQVNDSUkgYHN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyBpbnNwZWN0LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3RyaW5nIHNpemUuXG4gKi9cbnZhciBhc2NpaVNpemUgPSBiYXNlUHJvcGVydHkoJ2xlbmd0aCcpO1xuXG5leHBvcnQgZGVmYXVsdCBhc2NpaVNpemU7XG4iLAogICAgIi8qKiBVc2VkIHRvIGNvbXBvc2UgdW5pY29kZSBjaGFyYWN0ZXIgY2xhc3Nlcy4gKi9cbnZhciByc0FzdHJhbFJhbmdlID0gJ1xcXFx1ZDgwMC1cXFxcdWRmZmYnLFxuICAgIHJzQ29tYm9NYXJrc1JhbmdlID0gJ1xcXFx1MDMwMC1cXFxcdTAzNmYnLFxuICAgIHJlQ29tYm9IYWxmTWFya3NSYW5nZSA9ICdcXFxcdWZlMjAtXFxcXHVmZTJmJyxcbiAgICByc0NvbWJvU3ltYm9sc1JhbmdlID0gJ1xcXFx1MjBkMC1cXFxcdTIwZmYnLFxuICAgIHJzQ29tYm9SYW5nZSA9IHJzQ29tYm9NYXJrc1JhbmdlICsgcmVDb21ib0hhbGZNYXJrc1JhbmdlICsgcnNDb21ib1N5bWJvbHNSYW5nZSxcbiAgICByc1ZhclJhbmdlID0gJ1xcXFx1ZmUwZVxcXFx1ZmUwZic7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgdW5pY29kZSBjYXB0dXJlIGdyb3Vwcy4gKi9cbnZhciByc0FzdHJhbCA9ICdbJyArIHJzQXN0cmFsUmFuZ2UgKyAnXScsXG4gICAgcnNDb21ibyA9ICdbJyArIHJzQ29tYm9SYW5nZSArICddJyxcbiAgICByc0ZpdHogPSAnXFxcXHVkODNjW1xcXFx1ZGZmYi1cXFxcdWRmZmZdJyxcbiAgICByc01vZGlmaWVyID0gJyg/OicgKyByc0NvbWJvICsgJ3wnICsgcnNGaXR6ICsgJyknLFxuICAgIHJzTm9uQXN0cmFsID0gJ1teJyArIHJzQXN0cmFsUmFuZ2UgKyAnXScsXG4gICAgcnNSZWdpb25hbCA9ICcoPzpcXFxcdWQ4M2NbXFxcXHVkZGU2LVxcXFx1ZGRmZl0pezJ9JyxcbiAgICByc1N1cnJQYWlyID0gJ1tcXFxcdWQ4MDAtXFxcXHVkYmZmXVtcXFxcdWRjMDAtXFxcXHVkZmZmXScsXG4gICAgcnNaV0ogPSAnXFxcXHUyMDBkJztcblxuLyoqIFVzZWQgdG8gY29tcG9zZSB1bmljb2RlIHJlZ2V4ZXMuICovXG52YXIgcmVPcHRNb2QgPSByc01vZGlmaWVyICsgJz8nLFxuICAgIHJzT3B0VmFyID0gJ1snICsgcnNWYXJSYW5nZSArICddPycsXG4gICAgcnNPcHRKb2luID0gJyg/OicgKyByc1pXSiArICcoPzonICsgW3JzTm9uQXN0cmFsLCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyXS5qb2luKCd8JykgKyAnKScgKyByc09wdFZhciArIHJlT3B0TW9kICsgJykqJyxcbiAgICByc1NlcSA9IHJzT3B0VmFyICsgcmVPcHRNb2QgKyByc09wdEpvaW4sXG4gICAgcnNTeW1ib2wgPSAnKD86JyArIFtyc05vbkFzdHJhbCArIHJzQ29tYm8gKyAnPycsIHJzQ29tYm8sIHJzUmVnaW9uYWwsIHJzU3VyclBhaXIsIHJzQXN0cmFsXS5qb2luKCd8JykgKyAnKSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIFtzdHJpbmcgc3ltYm9sc10oaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtdW5pY29kZSkuICovXG52YXIgcmVVbmljb2RlID0gUmVnRXhwKHJzRml0eiArICcoPz0nICsgcnNGaXR6ICsgJyl8JyArIHJzU3ltYm9sICsgcnNTZXEsICdnJyk7XG5cbi8qKlxuICogR2V0cyB0aGUgc2l6ZSBvZiBhIFVuaWNvZGUgYHN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyBpbnNwZWN0LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3RyaW5nIHNpemUuXG4gKi9cbmZ1bmN0aW9uIHVuaWNvZGVTaXplKHN0cmluZykge1xuICB2YXIgcmVzdWx0ID0gcmVVbmljb2RlLmxhc3RJbmRleCA9IDA7XG4gIHdoaWxlIChyZVVuaWNvZGUudGVzdChzdHJpbmcpKSB7XG4gICAgKytyZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdW5pY29kZVNpemU7XG4iLAogICAgImltcG9ydCBhc2NpaVNpemUgZnJvbSAnLi9fYXNjaWlTaXplLmpzJztcbmltcG9ydCBoYXNVbmljb2RlIGZyb20gJy4vX2hhc1VuaWNvZGUuanMnO1xuaW1wb3J0IHVuaWNvZGVTaXplIGZyb20gJy4vX3VuaWNvZGVTaXplLmpzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBudW1iZXIgb2Ygc3ltYm9scyBpbiBgc3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdHJpbmcgc2l6ZS5cbiAqL1xuZnVuY3Rpb24gc3RyaW5nU2l6ZShzdHJpbmcpIHtcbiAgcmV0dXJuIGhhc1VuaWNvZGUoc3RyaW5nKVxuICAgID8gdW5pY29kZVNpemUoc3RyaW5nKVxuICAgIDogYXNjaWlTaXplKHN0cmluZyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0cmluZ1NpemU7XG4iLAogICAgImltcG9ydCBiYXNlUGlja0J5IGZyb20gJy4vX2Jhc2VQaWNrQnkuanMnO1xuaW1wb3J0IGhhc0luIGZyb20gJy4vaGFzSW4uanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnBpY2tgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbFxuICogcHJvcGVydHkgaWRlbnRpZmllcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRocyBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGJhc2VQaWNrKG9iamVjdCwgcGF0aHMpIHtcbiAgcmV0dXJuIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgICByZXR1cm4gaGFzSW4ob2JqZWN0LCBwYXRoKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VQaWNrO1xuIiwKICAgICJpbXBvcnQgYmFzZVBpY2sgZnJvbSAnLi9fYmFzZVBpY2suanMnO1xuaW1wb3J0IGZsYXRSZXN0IGZyb20gJy4vX2ZsYXRSZXN0LmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGUgcGlja2VkIGBvYmplY3RgIHByb3BlcnRpZXMuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgc291cmNlIG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogJzInLCAnYyc6IDMgfTtcbiAqXG4gKiBfLnBpY2sob2JqZWN0LCBbJ2EnLCAnYyddKTtcbiAqIC8vID0+IHsgJ2EnOiAxLCAnYyc6IDMgfVxuICovXG52YXIgcGljayA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgcGF0aHMpIHtcbiAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8ge30gOiBiYXNlUGljayhvYmplY3QsIHBhdGhzKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBwaWNrO1xuIiwKICAgICIvKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlQ2VpbCA9IE1hdGguY2VpbCxcbiAgICBuYXRpdmVNYXggPSBNYXRoLm1heDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yYW5nZWAgYW5kIGBfLnJhbmdlUmlnaHRgIHdoaWNoIGRvZXNuJ3RcbiAqIGNvZXJjZSBhcmd1bWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxuICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSByYW5nZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBzdGVwIFRoZSB2YWx1ZSB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IGJ5LlxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHJhbmdlIG9mIG51bWJlcnMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VSYW5nZShzdGFydCwgZW5kLCBzdGVwLCBmcm9tUmlnaHQpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBuYXRpdmVNYXgobmF0aXZlQ2VpbCgoZW5kIC0gc3RhcnQpIC8gKHN0ZXAgfHwgMSkpLCAwKSxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgcmVzdWx0W2Zyb21SaWdodCA/IGxlbmd0aCA6ICsraW5kZXhdID0gc3RhcnQ7XG4gICAgc3RhcnQgKz0gc3RlcDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlUmFuZ2U7XG4iLAogICAgImltcG9ydCBiYXNlUmFuZ2UgZnJvbSAnLi9fYmFzZVJhbmdlLmpzJztcbmltcG9ydCBpc0l0ZXJhdGVlQ2FsbCBmcm9tICcuL19pc0l0ZXJhdGVlQ2FsbC5qcyc7XG5pbXBvcnQgdG9GaW5pdGUgZnJvbSAnLi90b0Zpbml0ZS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGBfLnJhbmdlYCBvciBgXy5yYW5nZVJpZ2h0YCBmdW5jdGlvbi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByYW5nZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlUmFuZ2UoZnJvbVJpZ2h0KSB7XG4gIHJldHVybiBmdW5jdGlvbihzdGFydCwgZW5kLCBzdGVwKSB7XG4gICAgaWYgKHN0ZXAgJiYgdHlwZW9mIHN0ZXAgIT0gJ251bWJlcicgJiYgaXNJdGVyYXRlZUNhbGwoc3RhcnQsIGVuZCwgc3RlcCkpIHtcbiAgICAgIGVuZCA9IHN0ZXAgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8vIEVuc3VyZSB0aGUgc2lnbiBvZiBgLTBgIGlzIHByZXNlcnZlZC5cbiAgICBzdGFydCA9IHRvRmluaXRlKHN0YXJ0KTtcbiAgICBpZiAoZW5kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGVuZCA9IHN0YXJ0O1xuICAgICAgc3RhcnQgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmQgPSB0b0Zpbml0ZShlbmQpO1xuICAgIH1cbiAgICBzdGVwID0gc3RlcCA9PT0gdW5kZWZpbmVkID8gKHN0YXJ0IDwgZW5kID8gMSA6IC0xKSA6IHRvRmluaXRlKHN0ZXApO1xuICAgIHJldHVybiBiYXNlUmFuZ2Uoc3RhcnQsIGVuZCwgc3RlcCwgZnJvbVJpZ2h0KTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUmFuZ2U7XG4iLAogICAgImltcG9ydCBjcmVhdGVSYW5nZSBmcm9tICcuL19jcmVhdGVSYW5nZS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiBudW1iZXJzIChwb3NpdGl2ZSBhbmQvb3IgbmVnYXRpdmUpIHByb2dyZXNzaW5nIGZyb21cbiAqIGBzdGFydGAgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCBgZW5kYC4gQSBzdGVwIG9mIGAtMWAgaXMgdXNlZCBpZiBhIG5lZ2F0aXZlXG4gKiBgc3RhcnRgIGlzIHNwZWNpZmllZCB3aXRob3V0IGFuIGBlbmRgIG9yIGBzdGVwYC4gSWYgYGVuZGAgaXMgbm90IHNwZWNpZmllZCxcbiAqIGl0J3Mgc2V0IHRvIGBzdGFydGAgd2l0aCBgc3RhcnRgIHRoZW4gc2V0IHRvIGAwYC5cbiAqXG4gKiAqKk5vdGU6KiogSmF2YVNjcmlwdCBmb2xsb3dzIHRoZSBJRUVFLTc1NCBzdGFuZGFyZCBmb3IgcmVzb2x2aW5nXG4gKiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgd2hpY2ggY2FuIHByb2R1Y2UgdW5leHBlY3RlZCByZXN1bHRzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXG4gKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTFdIFRoZSB2YWx1ZSB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IGJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5nZSBvZiBudW1iZXJzLlxuICogQHNlZSBfLmluUmFuZ2UsIF8ucmFuZ2VSaWdodFxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnJhbmdlKDQpO1xuICogLy8gPT4gWzAsIDEsIDIsIDNdXG4gKlxuICogXy5yYW5nZSgtNCk7XG4gKiAvLyA9PiBbMCwgLTEsIC0yLCAtM11cbiAqXG4gKiBfLnJhbmdlKDEsIDUpO1xuICogLy8gPT4gWzEsIDIsIDMsIDRdXG4gKlxuICogXy5yYW5nZSgwLCAyMCwgNSk7XG4gKiAvLyA9PiBbMCwgNSwgMTAsIDE1XVxuICpcbiAqIF8ucmFuZ2UoMCwgLTQsIC0xKTtcbiAqIC8vID0+IFswLCAtMSwgLTIsIC0zXVxuICpcbiAqIF8ucmFuZ2UoMSwgNCwgMCk7XG4gKiAvLyA9PiBbMSwgMSwgMV1cbiAqXG4gKiBfLnJhbmdlKDApO1xuICogLy8gPT4gW11cbiAqL1xudmFyIHJhbmdlID0gY3JlYXRlUmFuZ2UoKTtcblxuZXhwb3J0IGRlZmF1bHQgcmFuZ2U7XG4iLAogICAgIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmVkdWNlYCBhbmQgYF8ucmVkdWNlUmlnaHRgLCB3aXRob3V0IHN1cHBvcnRcbiAqIGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLCB3aGljaCBpdGVyYXRlcyBvdmVyIGBjb2xsZWN0aW9uYCB1c2luZyBgZWFjaEZ1bmNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHsqfSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5pdEFjY3VtIFNwZWNpZnkgdXNpbmcgdGhlIGZpcnN0IG9yIGxhc3QgZWxlbWVudCBvZlxuICogIGBjb2xsZWN0aW9uYCBhcyB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVhY2hGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYGNvbGxlY3Rpb25gLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBiYXNlUmVkdWNlKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtLCBlYWNoRnVuYykge1xuICBlYWNoRnVuYyhjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICBhY2N1bXVsYXRvciA9IGluaXRBY2N1bVxuICAgICAgPyAoaW5pdEFjY3VtID0gZmFsc2UsIHZhbHVlKVxuICAgICAgOiBpdGVyYXRlZShhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcbiAgfSk7XG4gIHJldHVybiBhY2N1bXVsYXRvcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVJlZHVjZTtcbiIsCiAgICAiaW1wb3J0IGFycmF5UmVkdWNlIGZyb20gJy4vX2FycmF5UmVkdWNlLmpzJztcbmltcG9ydCBiYXNlRWFjaCBmcm9tICcuL19iYXNlRWFjaC5qcyc7XG5pbXBvcnQgYmFzZUl0ZXJhdGVlIGZyb20gJy4vX2Jhc2VJdGVyYXRlZS5qcyc7XG5pbXBvcnQgYmFzZVJlZHVjZSBmcm9tICcuL19iYXNlUmVkdWNlLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5cbi8qKlxuICogUmVkdWNlcyBgY29sbGVjdGlvbmAgdG8gYSB2YWx1ZSB3aGljaCBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0IG9mIHJ1bm5pbmdcbiAqIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAgdGhydSBgaXRlcmF0ZWVgLCB3aGVyZSBlYWNoIHN1Y2Nlc3NpdmVcbiAqIGludm9jYXRpb24gaXMgc3VwcGxpZWQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMuIElmIGBhY2N1bXVsYXRvcmBcbiAqIGlzIG5vdCBnaXZlbiwgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIGlzIHVzZWQgYXMgdGhlIGluaXRpYWxcbiAqIHZhbHVlLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIGZvdXIgYXJndW1lbnRzOlxuICogKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAqXG4gKiBNYW55IGxvZGFzaCBtZXRob2RzIGFyZSBndWFyZGVkIHRvIHdvcmsgYXMgaXRlcmF0ZWVzIGZvciBtZXRob2RzIGxpa2VcbiAqIGBfLnJlZHVjZWAsIGBfLnJlZHVjZVJpZ2h0YCwgYW5kIGBfLnRyYW5zZm9ybWAuXG4gKlxuICogVGhlIGd1YXJkZWQgbWV0aG9kcyBhcmU6XG4gKiBgYXNzaWduYCwgYGRlZmF1bHRzYCwgYGRlZmF1bHRzRGVlcGAsIGBpbmNsdWRlc2AsIGBtZXJnZWAsIGBvcmRlckJ5YCxcbiAqIGFuZCBgc29ydEJ5YFxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAqIEBzZWUgXy5yZWR1Y2VSaWdodFxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnJlZHVjZShbMSwgMl0sIGZ1bmN0aW9uKHN1bSwgbikge1xuICogICByZXR1cm4gc3VtICsgbjtcbiAqIH0sIDApO1xuICogLy8gPT4gM1xuICpcbiAqIF8ucmVkdWNlKHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMSB9LCBmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAqICAgKHJlc3VsdFt2YWx1ZV0gfHwgKHJlc3VsdFt2YWx1ZV0gPSBbXSkpLnB1c2goa2V5KTtcbiAqICAgcmV0dXJuIHJlc3VsdDtcbiAqIH0sIHt9KTtcbiAqIC8vID0+IHsgJzEnOiBbJ2EnLCAnYyddLCAnMic6IFsnYiddIH0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqL1xuZnVuY3Rpb24gcmVkdWNlKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xuICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVJlZHVjZSA6IGJhc2VSZWR1Y2UsXG4gICAgICBpbml0QWNjdW0gPSBhcmd1bWVudHMubGVuZ3RoIDwgMztcblxuICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBiYXNlSXRlcmF0ZWUoaXRlcmF0ZWUsIDQpLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtLCBiYXNlRWFjaCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHJlZHVjZTtcbiIsCiAgICAiaW1wb3J0IGJhc2VLZXlzIGZyb20gJy4vX2Jhc2VLZXlzLmpzJztcbmltcG9ydCBnZXRUYWcgZnJvbSAnLi9fZ2V0VGFnLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcbmltcG9ydCBpc1N0cmluZyBmcm9tICcuL2lzU3RyaW5nLmpzJztcbmltcG9ydCBzdHJpbmdTaXplIGZyb20gJy4vX3N0cmluZ1NpemUuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XSc7XG5cbi8qKlxuICogR2V0cyB0aGUgc2l6ZSBvZiBgY29sbGVjdGlvbmAgYnkgcmV0dXJuaW5nIGl0cyBsZW5ndGggZm9yIGFycmF5LWxpa2VcbiAqIHZhbHVlcyBvciB0aGUgbnVtYmVyIG9mIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIGZvciBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbGxlY3Rpb24gc2l6ZS5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5zaXplKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiAzXG4gKlxuICogXy5zaXplKHsgJ2EnOiAxLCAnYic6IDIgfSk7XG4gKiAvLyA9PiAyXG4gKlxuICogXy5zaXplKCdwZWJibGVzJyk7XG4gKiAvLyA9PiA3XG4gKi9cbmZ1bmN0aW9uIHNpemUoY29sbGVjdGlvbikge1xuICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgaWYgKGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pKSB7XG4gICAgcmV0dXJuIGlzU3RyaW5nKGNvbGxlY3Rpb24pID8gc3RyaW5nU2l6ZShjb2xsZWN0aW9uKSA6IGNvbGxlY3Rpb24ubGVuZ3RoO1xuICB9XG4gIHZhciB0YWcgPSBnZXRUYWcoY29sbGVjdGlvbik7XG4gIGlmICh0YWcgPT0gbWFwVGFnIHx8IHRhZyA9PSBzZXRUYWcpIHtcbiAgICByZXR1cm4gY29sbGVjdGlvbi5zaXplO1xuICB9XG4gIHJldHVybiBiYXNlS2V5cyhjb2xsZWN0aW9uKS5sZW5ndGg7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHNpemU7XG4iLAogICAgImltcG9ydCBiYXNlRmxhdHRlbiBmcm9tICcuL19iYXNlRmxhdHRlbi5qcyc7XG5pbXBvcnQgYmFzZU9yZGVyQnkgZnJvbSAnLi9fYmFzZU9yZGVyQnkuanMnO1xuaW1wb3J0IGJhc2VSZXN0IGZyb20gJy4vX2Jhc2VSZXN0LmpzJztcbmltcG9ydCBpc0l0ZXJhdGVlQ2FsbCBmcm9tICcuL19pc0l0ZXJhdGVlQ2FsbC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiBlbGVtZW50cywgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBieSB0aGUgcmVzdWx0cyBvZlxuICogcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYSBjb2xsZWN0aW9uIHRocnUgZWFjaCBpdGVyYXRlZS4gVGhpcyBtZXRob2RcbiAqIHBlcmZvcm1zIGEgc3RhYmxlIHNvcnQsIHRoYXQgaXMsIGl0IHByZXNlcnZlcyB0aGUgb3JpZ2luYWwgc29ydCBvcmRlciBvZlxuICogZXF1YWwgZWxlbWVudHMuIFRoZSBpdGVyYXRlZXMgYXJlIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbaXRlcmF0ZWVzPVtfLmlkZW50aXR5XV1cbiAqICBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciB1c2VycyA9IFtcbiAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDggfSxcbiAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfSxcbiAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogMzAgfSxcbiAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzQgfVxuICogXTtcbiAqXG4gKiBfLnNvcnRCeSh1c2VycywgW2Z1bmN0aW9uKG8pIHsgcmV0dXJuIG8udXNlcjsgfV0pO1xuICogLy8gPT4gb2JqZWN0cyBmb3IgW1snYmFybmV5JywgMzZdLCBbJ2Jhcm5leScsIDM0XSwgWydmcmVkJywgNDhdLCBbJ2ZyZWQnLCAzMF1dXG4gKlxuICogXy5zb3J0QnkodXNlcnMsIFsndXNlcicsICdhZ2UnXSk7XG4gKiAvLyA9PiBvYmplY3RzIGZvciBbWydiYXJuZXknLCAzNF0sIFsnYmFybmV5JywgMzZdLCBbJ2ZyZWQnLCAzMF0sIFsnZnJlZCcsIDQ4XV1cbiAqL1xudmFyIHNvcnRCeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlcykge1xuICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHZhciBsZW5ndGggPSBpdGVyYXRlZXMubGVuZ3RoO1xuICBpZiAobGVuZ3RoID4gMSAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBpdGVyYXRlZXNbMF0sIGl0ZXJhdGVlc1sxXSkpIHtcbiAgICBpdGVyYXRlZXMgPSBbXTtcbiAgfSBlbHNlIGlmIChsZW5ndGggPiAyICYmIGlzSXRlcmF0ZWVDYWxsKGl0ZXJhdGVlc1swXSwgaXRlcmF0ZWVzWzFdLCBpdGVyYXRlZXNbMl0pKSB7XG4gICAgaXRlcmF0ZWVzID0gW2l0ZXJhdGVlc1swXV07XG4gIH1cbiAgcmV0dXJuIGJhc2VPcmRlckJ5KGNvbGxlY3Rpb24sIGJhc2VGbGF0dGVuKGl0ZXJhdGVlcywgMSksIFtdKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBzb3J0Qnk7XG4iLAogICAgImltcG9ydCBTZXQgZnJvbSAnLi9fU2V0LmpzJztcbmltcG9ydCBub29wIGZyb20gJy4vbm9vcC5qcyc7XG5pbXBvcnQgc2V0VG9BcnJheSBmcm9tICcuL19zZXRUb0FycmF5LmpzJztcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgSU5GSU5JVFkgPSAxIC8gMDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgc2V0IG9iamVjdCBvZiBgdmFsdWVzYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gYWRkIHRvIHRoZSBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgc2V0LlxuICovXG52YXIgY3JlYXRlU2V0ID0gIShTZXQgJiYgKDEgLyBzZXRUb0FycmF5KG5ldyBTZXQoWywtMF0pKVsxXSkgPT0gSU5GSU5JVFkpID8gbm9vcCA6IGZ1bmN0aW9uKHZhbHVlcykge1xuICByZXR1cm4gbmV3IFNldCh2YWx1ZXMpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlU2V0O1xuIiwKICAgICJpbXBvcnQgU2V0Q2FjaGUgZnJvbSAnLi9fU2V0Q2FjaGUuanMnO1xuaW1wb3J0IGFycmF5SW5jbHVkZXMgZnJvbSAnLi9fYXJyYXlJbmNsdWRlcy5qcyc7XG5pbXBvcnQgYXJyYXlJbmNsdWRlc1dpdGggZnJvbSAnLi9fYXJyYXlJbmNsdWRlc1dpdGguanMnO1xuaW1wb3J0IGNhY2hlSGFzIGZyb20gJy4vX2NhY2hlSGFzLmpzJztcbmltcG9ydCBjcmVhdGVTZXQgZnJvbSAnLi9fY3JlYXRlU2V0LmpzJztcbmltcG9ydCBzZXRUb0FycmF5IGZyb20gJy4vX3NldFRvQXJyYXkuanMnO1xuXG4vKiogVXNlZCBhcyB0aGUgc2l6ZSB0byBlbmFibGUgbGFyZ2UgYXJyYXkgb3B0aW1pemF0aW9ucy4gKi9cbnZhciBMQVJHRV9BUlJBWV9TSVpFID0gMjAwO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuaXFCeWAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlVW5pcShhcnJheSwgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXMsXG4gICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICBpc0NvbW1vbiA9IHRydWUsXG4gICAgICByZXN1bHQgPSBbXSxcbiAgICAgIHNlZW4gPSByZXN1bHQ7XG5cbiAgaWYgKGNvbXBhcmF0b3IpIHtcbiAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgIGluY2x1ZGVzID0gYXJyYXlJbmNsdWRlc1dpdGg7XG4gIH1cbiAgZWxzZSBpZiAobGVuZ3RoID49IExBUkdFX0FSUkFZX1NJWkUpIHtcbiAgICB2YXIgc2V0ID0gaXRlcmF0ZWUgPyBudWxsIDogY3JlYXRlU2V0KGFycmF5KTtcbiAgICBpZiAoc2V0KSB7XG4gICAgICByZXR1cm4gc2V0VG9BcnJheShzZXQpO1xuICAgIH1cbiAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgIGluY2x1ZGVzID0gY2FjaGVIYXM7XG4gICAgc2VlbiA9IG5ldyBTZXRDYWNoZTtcbiAgfVxuICBlbHNlIHtcbiAgICBzZWVuID0gaXRlcmF0ZWUgPyBbXSA6IHJlc3VsdDtcbiAgfVxuICBvdXRlcjpcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcblxuICAgIHZhbHVlID0gKGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDApID8gdmFsdWUgOiAwO1xuICAgIGlmIChpc0NvbW1vbiAmJiBjb21wdXRlZCA9PT0gY29tcHV0ZWQpIHtcbiAgICAgIHZhciBzZWVuSW5kZXggPSBzZWVuLmxlbmd0aDtcbiAgICAgIHdoaWxlIChzZWVuSW5kZXgtLSkge1xuICAgICAgICBpZiAoc2VlbltzZWVuSW5kZXhdID09PSBjb21wdXRlZCkge1xuICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXRlcmF0ZWUpIHtcbiAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWluY2x1ZGVzKHNlZW4sIGNvbXB1dGVkLCBjb21wYXJhdG9yKSkge1xuICAgICAgaWYgKHNlZW4gIT09IHJlc3VsdCkge1xuICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVW5pcTtcbiIsCiAgICAiaW1wb3J0IGJhc2VGbGF0dGVuIGZyb20gJy4vX2Jhc2VGbGF0dGVuLmpzJztcbmltcG9ydCBiYXNlUmVzdCBmcm9tICcuL19iYXNlUmVzdC5qcyc7XG5pbXBvcnQgYmFzZVVuaXEgZnJvbSAnLi9fYmFzZVVuaXEuanMnO1xuaW1wb3J0IGlzQXJyYXlMaWtlT2JqZWN0IGZyb20gJy4vaXNBcnJheUxpa2VPYmplY3QuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdW5pcXVlIHZhbHVlcywgaW4gb3JkZXIsIGZyb20gYWxsIGdpdmVuIGFycmF5cyB1c2luZ1xuICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGNvbWJpbmVkIHZhbHVlcy5cbiAqIEBleGFtcGxlXG4gKlxuICogXy51bmlvbihbMl0sIFsxLCAyXSk7XG4gKiAvLyA9PiBbMiwgMV1cbiAqL1xudmFyIHVuaW9uID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihhcnJheXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdW5pb247XG4iLAogICAgImltcG9ydCB0b1N0cmluZyBmcm9tICcuL3RvU3RyaW5nLmpzJztcblxuLyoqIFVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcy4gKi9cbnZhciBpZENvdW50ZXIgPSAwO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBJRC4gSWYgYHByZWZpeGAgaXMgZ2l2ZW4sIHRoZSBJRCBpcyBhcHBlbmRlZCB0byBpdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHtzdHJpbmd9IFtwcmVmaXg9JyddIFRoZSB2YWx1ZSB0byBwcmVmaXggdGhlIElEIHdpdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1bmlxdWUgSUQuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udW5pcXVlSWQoJ2NvbnRhY3RfJyk7XG4gKiAvLyA9PiAnY29udGFjdF8xMDQnXG4gKlxuICogXy51bmlxdWVJZCgpO1xuICogLy8gPT4gJzEwNSdcbiAqL1xuZnVuY3Rpb24gdW5pcXVlSWQocHJlZml4KSB7XG4gIHZhciBpZCA9ICsraWRDb3VudGVyO1xuICByZXR1cm4gdG9TdHJpbmcocHJlZml4KSArIGlkO1xufVxuXG5leHBvcnQgZGVmYXVsdCB1bmlxdWVJZDtcbiIsCiAgICAiLyoqXG4gKiBUaGlzIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uemlwT2JqZWN0YCB3aGljaCBhc3NpZ25zIHZhbHVlcyB1c2luZyBgYXNzaWduRnVuY2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBpZGVudGlmaWVycy5cbiAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgcHJvcGVydHkgdmFsdWVzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduRnVuYyBUaGUgZnVuY3Rpb24gdG8gYXNzaWduIHZhbHVlcy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGJhc2VaaXBPYmplY3QocHJvcHMsIHZhbHVlcywgYXNzaWduRnVuYykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgIHZhbHNMZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0ge307XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgdmFsdWUgPSBpbmRleCA8IHZhbHNMZW5ndGggPyB2YWx1ZXNbaW5kZXhdIDogdW5kZWZpbmVkO1xuICAgIGFzc2lnbkZ1bmMocmVzdWx0LCBwcm9wc1tpbmRleF0sIHZhbHVlKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlWmlwT2JqZWN0O1xuIiwKICAgICJpbXBvcnQgYXNzaWduVmFsdWUgZnJvbSAnLi9fYXNzaWduVmFsdWUuanMnO1xuaW1wb3J0IGJhc2VaaXBPYmplY3QgZnJvbSAnLi9fYmFzZVppcE9iamVjdC5qcyc7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mcm9tUGFpcnNgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgdHdvIGFycmF5cyxcbiAqIG9uZSBvZiBwcm9wZXJ0eSBpZGVudGlmaWVycyBhbmQgb25lIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC40LjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHtBcnJheX0gW3Byb3BzPVtdXSBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMuXG4gKiBAcGFyYW0ge0FycmF5fSBbdmFsdWVzPVtdXSBUaGUgcHJvcGVydHkgdmFsdWVzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy56aXBPYmplY3QoWydhJywgJ2InXSwgWzEsIDJdKTtcbiAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICovXG5mdW5jdGlvbiB6aXBPYmplY3QocHJvcHMsIHZhbHVlcykge1xuICByZXR1cm4gYmFzZVppcE9iamVjdChwcm9wcyB8fCBbXSwgdmFsdWVzIHx8IFtdLCBhc3NpZ25WYWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHppcE9iamVjdDtcbiIsCiAgICAiLyoqXG4gKiBAbGljZW5zZVxuICogTG9kYXNoIChDdXN0b20gQnVpbGQpIDxodHRwczovL2xvZGFzaC5jb20vPlxuICogQnVpbGQ6IGBsb2Rhc2ggbW9kdWxhcml6ZSBleHBvcnRzPVwiZXNcIiAtbyAuL2BcbiAqIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIDxodHRwczovL29wZW5qc2Yub3JnLz5cbiAqIFJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlIDxodHRwczovL2xvZGFzaC5jb20vbGljZW5zZT5cbiAqIEJhc2VkIG9uIFVuZGVyc2NvcmUuanMgMS44LjMgPGh0dHA6Ly91bmRlcnNjb3JlanMub3JnL0xJQ0VOU0U+XG4gKiBDb3B5cmlnaHQgSmVyZW15IEFzaGtlbmFzLCBEb2N1bWVudENsb3VkIGFuZCBJbnZlc3RpZ2F0aXZlIFJlcG9ydGVycyAmIEVkaXRvcnNcbiAqL1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhZGQgfSBmcm9tICcuL2FkZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGFmdGVyIH0gZnJvbSAnLi9hZnRlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGFyeSB9IGZyb20gJy4vYXJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYXNzaWduIH0gZnJvbSAnLi9hc3NpZ24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhc3NpZ25JbiB9IGZyb20gJy4vYXNzaWduSW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhc3NpZ25JbldpdGggfSBmcm9tICcuL2Fzc2lnbkluV2l0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGFzc2lnbldpdGggfSBmcm9tICcuL2Fzc2lnbldpdGguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhdCB9IGZyb20gJy4vYXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhdHRlbXB0IH0gZnJvbSAnLi9hdHRlbXB0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYmVmb3JlIH0gZnJvbSAnLi9iZWZvcmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBiaW5kIH0gZnJvbSAnLi9iaW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYmluZEFsbCB9IGZyb20gJy4vYmluZEFsbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGJpbmRLZXkgfSBmcm9tICcuL2JpbmRLZXkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjYW1lbENhc2UgfSBmcm9tICcuL2NhbWVsQ2FzZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNhcGl0YWxpemUgfSBmcm9tICcuL2NhcGl0YWxpemUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjYXN0QXJyYXkgfSBmcm9tICcuL2Nhc3RBcnJheS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNlaWwgfSBmcm9tICcuL2NlaWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjaGFpbiB9IGZyb20gJy4vY2hhaW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjaHVuayB9IGZyb20gJy4vY2h1bmsuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjbGFtcCB9IGZyb20gJy4vY2xhbXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjbG9uZSB9IGZyb20gJy4vY2xvbmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjbG9uZURlZXAgfSBmcm9tICcuL2Nsb25lRGVlcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNsb25lRGVlcFdpdGggfSBmcm9tICcuL2Nsb25lRGVlcFdpdGguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjbG9uZVdpdGggfSBmcm9tICcuL2Nsb25lV2l0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNvbW1pdCB9IGZyb20gJy4vY29tbWl0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29tcGFjdCB9IGZyb20gJy4vY29tcGFjdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNvbmNhdCB9IGZyb20gJy4vY29uY2F0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29uZCB9IGZyb20gJy4vY29uZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNvbmZvcm1zIH0gZnJvbSAnLi9jb25mb3Jtcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNvbmZvcm1zVG8gfSBmcm9tICcuL2NvbmZvcm1zVG8uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjb25zdGFudCB9IGZyb20gJy4vY29uc3RhbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjb3VudEJ5IH0gZnJvbSAnLi9jb3VudEJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY3JlYXRlIH0gZnJvbSAnLi9jcmVhdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjdXJyeSB9IGZyb20gJy4vY3VycnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjdXJyeVJpZ2h0IH0gZnJvbSAnLi9jdXJyeVJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZGVib3VuY2UgfSBmcm9tICcuL2RlYm91bmNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZGVidXJyIH0gZnJvbSAnLi9kZWJ1cnIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkZWZhdWx0VG8gfSBmcm9tICcuL2RlZmF1bHRUby5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGRlZmF1bHRzIH0gZnJvbSAnLi9kZWZhdWx0cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGRlZmF1bHRzRGVlcCB9IGZyb20gJy4vZGVmYXVsdHNEZWVwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZGVmZXIgfSBmcm9tICcuL2RlZmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZGVsYXkgfSBmcm9tICcuL2RlbGF5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZGlmZmVyZW5jZSB9IGZyb20gJy4vZGlmZmVyZW5jZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGRpZmZlcmVuY2VCeSB9IGZyb20gJy4vZGlmZmVyZW5jZUJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZGlmZmVyZW5jZVdpdGggfSBmcm9tICcuL2RpZmZlcmVuY2VXaXRoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZGl2aWRlIH0gZnJvbSAnLi9kaXZpZGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkcm9wIH0gZnJvbSAnLi9kcm9wLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZHJvcFJpZ2h0IH0gZnJvbSAnLi9kcm9wUmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkcm9wUmlnaHRXaGlsZSB9IGZyb20gJy4vZHJvcFJpZ2h0V2hpbGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkcm9wV2hpbGUgfSBmcm9tICcuL2Ryb3BXaGlsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGVhY2ggfSBmcm9tICcuL2VhY2guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBlYWNoUmlnaHQgfSBmcm9tICcuL2VhY2hSaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGVuZHNXaXRoIH0gZnJvbSAnLi9lbmRzV2l0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGVudHJpZXMgfSBmcm9tICcuL2VudHJpZXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBlbnRyaWVzSW4gfSBmcm9tICcuL2VudHJpZXNJbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGVxIH0gZnJvbSAnLi9lcS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGVzY2FwZSB9IGZyb20gJy4vZXNjYXBlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZXNjYXBlUmVnRXhwIH0gZnJvbSAnLi9lc2NhcGVSZWdFeHAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBldmVyeSB9IGZyb20gJy4vZXZlcnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBleHRlbmQgfSBmcm9tICcuL2V4dGVuZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGV4dGVuZFdpdGggfSBmcm9tICcuL2V4dGVuZFdpdGguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmaWxsIH0gZnJvbSAnLi9maWxsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsdGVyIH0gZnJvbSAnLi9maWx0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmaW5kIH0gZnJvbSAnLi9maW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmluZEluZGV4IH0gZnJvbSAnLi9maW5kSW5kZXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmaW5kS2V5IH0gZnJvbSAnLi9maW5kS2V5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmluZExhc3QgfSBmcm9tICcuL2ZpbmRMYXN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmluZExhc3RJbmRleCB9IGZyb20gJy4vZmluZExhc3RJbmRleC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZpbmRMYXN0S2V5IH0gZnJvbSAnLi9maW5kTGFzdEtleS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZpcnN0IH0gZnJvbSAnLi9maXJzdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZsYXRNYXAgfSBmcm9tICcuL2ZsYXRNYXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmbGF0TWFwRGVlcCB9IGZyb20gJy4vZmxhdE1hcERlZXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmbGF0TWFwRGVwdGggfSBmcm9tICcuL2ZsYXRNYXBEZXB0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZsYXR0ZW4gfSBmcm9tICcuL2ZsYXR0ZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmbGF0dGVuRGVlcCB9IGZyb20gJy4vZmxhdHRlbkRlZXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmbGF0dGVuRGVwdGggfSBmcm9tICcuL2ZsYXR0ZW5EZXB0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZsaXAgfSBmcm9tICcuL2ZsaXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmbG9vciB9IGZyb20gJy4vZmxvb3IuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmbG93IH0gZnJvbSAnLi9mbG93LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmxvd1JpZ2h0IH0gZnJvbSAnLi9mbG93UmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmb3JFYWNoIH0gZnJvbSAnLi9mb3JFYWNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZm9yRWFjaFJpZ2h0IH0gZnJvbSAnLi9mb3JFYWNoUmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmb3JJbiB9IGZyb20gJy4vZm9ySW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmb3JJblJpZ2h0IH0gZnJvbSAnLi9mb3JJblJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZm9yT3duIH0gZnJvbSAnLi9mb3JPd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmb3JPd25SaWdodCB9IGZyb20gJy4vZm9yT3duUmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmcm9tUGFpcnMgfSBmcm9tICcuL2Zyb21QYWlycy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZ1bmN0aW9ucyB9IGZyb20gJy4vZnVuY3Rpb25zLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZnVuY3Rpb25zSW4gfSBmcm9tICcuL2Z1bmN0aW9uc0luLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZ2V0IH0gZnJvbSAnLi9nZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBncm91cEJ5IH0gZnJvbSAnLi9ncm91cEJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZ3QgfSBmcm9tICcuL2d0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZ3RlIH0gZnJvbSAnLi9ndGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBoYXMgfSBmcm9tICcuL2hhcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGhhc0luIH0gZnJvbSAnLi9oYXNJbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGhlYWQgfSBmcm9tICcuL2hlYWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpZGVudGl0eSB9IGZyb20gJy4vaWRlbnRpdHkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpblJhbmdlIH0gZnJvbSAnLi9pblJhbmdlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaW5jbHVkZXMgfSBmcm9tICcuL2luY2x1ZGVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaW5kZXhPZiB9IGZyb20gJy4vaW5kZXhPZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGluaXRpYWwgfSBmcm9tICcuL2luaXRpYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpbnRlcnNlY3Rpb24gfSBmcm9tICcuL2ludGVyc2VjdGlvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGludGVyc2VjdGlvbkJ5IH0gZnJvbSAnLi9pbnRlcnNlY3Rpb25CeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGludGVyc2VjdGlvbldpdGggfSBmcm9tICcuL2ludGVyc2VjdGlvbldpdGguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpbnZlcnQgfSBmcm9tICcuL2ludmVydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGludmVydEJ5IH0gZnJvbSAnLi9pbnZlcnRCeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGludm9rZSB9IGZyb20gJy4vaW52b2tlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaW52b2tlTWFwIH0gZnJvbSAnLi9pbnZva2VNYXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc0FyZ3VtZW50cyB9IGZyb20gJy4vaXNBcmd1bWVudHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc0FycmF5IH0gZnJvbSAnLi9pc0FycmF5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaXNBcnJheUJ1ZmZlciB9IGZyb20gJy4vaXNBcnJheUJ1ZmZlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzQXJyYXlMaWtlIH0gZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzQXJyYXlMaWtlT2JqZWN0IH0gZnJvbSAnLi9pc0FycmF5TGlrZU9iamVjdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzQm9vbGVhbiB9IGZyb20gJy4vaXNCb29sZWFuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaXNCdWZmZXIgfSBmcm9tICcuL2lzQnVmZmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaXNEYXRlIH0gZnJvbSAnLi9pc0RhdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc0VsZW1lbnQgfSBmcm9tICcuL2lzRWxlbWVudC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzRW1wdHkgfSBmcm9tICcuL2lzRW1wdHkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc0VxdWFsIH0gZnJvbSAnLi9pc0VxdWFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaXNFcXVhbFdpdGggfSBmcm9tICcuL2lzRXF1YWxXaXRoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaXNFcnJvciB9IGZyb20gJy4vaXNFcnJvci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzRmluaXRlIH0gZnJvbSAnLi9pc0Zpbml0ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzRnVuY3Rpb24gfSBmcm9tICcuL2lzRnVuY3Rpb24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc0ludGVnZXIgfSBmcm9tICcuL2lzSW50ZWdlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzTGVuZ3RoIH0gZnJvbSAnLi9pc0xlbmd0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzTWFwIH0gZnJvbSAnLi9pc01hcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzTWF0Y2ggfSBmcm9tICcuL2lzTWF0Y2guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc01hdGNoV2l0aCB9IGZyb20gJy4vaXNNYXRjaFdpdGguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc05hTiB9IGZyb20gJy4vaXNOYU4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc05hdGl2ZSB9IGZyb20gJy4vaXNOYXRpdmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc05pbCB9IGZyb20gJy4vaXNOaWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc051bGwgfSBmcm9tICcuL2lzTnVsbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzTnVtYmVyIH0gZnJvbSAnLi9pc051bWJlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzT2JqZWN0IH0gZnJvbSAnLi9pc09iamVjdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzT2JqZWN0TGlrZSB9IGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaXNQbGFpbk9iamVjdCB9IGZyb20gJy4vaXNQbGFpbk9iamVjdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzUmVnRXhwIH0gZnJvbSAnLi9pc1JlZ0V4cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzU2FmZUludGVnZXIgfSBmcm9tICcuL2lzU2FmZUludGVnZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc1NldCB9IGZyb20gJy4vaXNTZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc1N0cmluZyB9IGZyb20gJy4vaXNTdHJpbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc1N5bWJvbCB9IGZyb20gJy4vaXNTeW1ib2wuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpc1R5cGVkQXJyYXkgfSBmcm9tICcuL2lzVHlwZWRBcnJheS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzVW5kZWZpbmVkIH0gZnJvbSAnLi9pc1VuZGVmaW5lZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzV2Vha01hcCB9IGZyb20gJy4vaXNXZWFrTWFwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaXNXZWFrU2V0IH0gZnJvbSAnLi9pc1dlYWtTZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpdGVyYXRlZSB9IGZyb20gJy4vaXRlcmF0ZWUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBqb2luIH0gZnJvbSAnLi9qb2luLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMga2ViYWJDYXNlIH0gZnJvbSAnLi9rZWJhYkNhc2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBrZXlCeSB9IGZyb20gJy4va2V5QnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBrZXlzIH0gZnJvbSAnLi9rZXlzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMga2V5c0luIH0gZnJvbSAnLi9rZXlzSW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBsYXN0IH0gZnJvbSAnLi9sYXN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbGFzdEluZGV4T2YgfSBmcm9tICcuL2xhc3RJbmRleE9mLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbG9kYXNoIH0gZnJvbSAnLi93cmFwcGVyTG9kYXNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbG93ZXJDYXNlIH0gZnJvbSAnLi9sb3dlckNhc2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBsb3dlckZpcnN0IH0gZnJvbSAnLi9sb3dlckZpcnN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbHQgfSBmcm9tICcuL2x0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbHRlIH0gZnJvbSAnLi9sdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBtYXAgfSBmcm9tICcuL21hcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG1hcEtleXMgfSBmcm9tICcuL21hcEtleXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBtYXBWYWx1ZXMgfSBmcm9tICcuL21hcFZhbHVlcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG1hdGNoZXMgfSBmcm9tICcuL21hdGNoZXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBtYXRjaGVzUHJvcGVydHkgfSBmcm9tICcuL21hdGNoZXNQcm9wZXJ0eS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG1heCB9IGZyb20gJy4vbWF4LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbWF4QnkgfSBmcm9tICcuL21heEJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbWVhbiB9IGZyb20gJy4vbWVhbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG1lYW5CeSB9IGZyb20gJy4vbWVhbkJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbWVtb2l6ZSB9IGZyb20gJy4vbWVtb2l6ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG1lcmdlIH0gZnJvbSAnLi9tZXJnZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG1lcmdlV2l0aCB9IGZyb20gJy4vbWVyZ2VXaXRoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbWV0aG9kIH0gZnJvbSAnLi9tZXRob2QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBtZXRob2RPZiB9IGZyb20gJy4vbWV0aG9kT2YuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBtaW4gfSBmcm9tICcuL21pbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG1pbkJ5IH0gZnJvbSAnLi9taW5CeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG1peGluIH0gZnJvbSAnLi9taXhpbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG11bHRpcGx5IH0gZnJvbSAnLi9tdWx0aXBseS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5lZ2F0ZSB9IGZyb20gJy4vbmVnYXRlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbmV4dCB9IGZyb20gJy4vbmV4dC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vb3AgfSBmcm9tICcuL25vb3AuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBub3cgfSBmcm9tICcuL25vdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG50aCB9IGZyb20gJy4vbnRoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbnRoQXJnIH0gZnJvbSAnLi9udGhBcmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBvbWl0IH0gZnJvbSAnLi9vbWl0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgb21pdEJ5IH0gZnJvbSAnLi9vbWl0QnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBvbmNlIH0gZnJvbSAnLi9vbmNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgb3JkZXJCeSB9IGZyb20gJy4vb3JkZXJCeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG92ZXIgfSBmcm9tICcuL292ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBvdmVyQXJncyB9IGZyb20gJy4vb3ZlckFyZ3MuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBvdmVyRXZlcnkgfSBmcm9tICcuL292ZXJFdmVyeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG92ZXJTb21lIH0gZnJvbSAnLi9vdmVyU29tZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBhZCB9IGZyb20gJy4vcGFkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGFkRW5kIH0gZnJvbSAnLi9wYWRFbmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYWRTdGFydCB9IGZyb20gJy4vcGFkU3RhcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJzZUludCB9IGZyb20gJy4vcGFyc2VJbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJ0aWFsIH0gZnJvbSAnLi9wYXJ0aWFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGFydGlhbFJpZ2h0IH0gZnJvbSAnLi9wYXJ0aWFsUmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJ0aXRpb24gfSBmcm9tICcuL3BhcnRpdGlvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBpY2sgfSBmcm9tICcuL3BpY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwaWNrQnkgfSBmcm9tICcuL3BpY2tCeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBsYW50IH0gZnJvbSAnLi9wbGFudC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHByb3BlcnR5IH0gZnJvbSAnLi9wcm9wZXJ0eS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHByb3BlcnR5T2YgfSBmcm9tICcuL3Byb3BlcnR5T2YuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwdWxsIH0gZnJvbSAnLi9wdWxsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcHVsbEFsbCB9IGZyb20gJy4vcHVsbEFsbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHB1bGxBbGxCeSB9IGZyb20gJy4vcHVsbEFsbEJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcHVsbEFsbFdpdGggfSBmcm9tICcuL3B1bGxBbGxXaXRoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcHVsbEF0IH0gZnJvbSAnLi9wdWxsQXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByYW5kb20gfSBmcm9tICcuL3JhbmRvbS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJhbmdlIH0gZnJvbSAnLi9yYW5nZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJhbmdlUmlnaHQgfSBmcm9tICcuL3JhbmdlUmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZWFyZyB9IGZyb20gJy4vcmVhcmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZWR1Y2UgfSBmcm9tICcuL3JlZHVjZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlZHVjZVJpZ2h0IH0gZnJvbSAnLi9yZWR1Y2VSaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlamVjdCB9IGZyb20gJy4vcmVqZWN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcmVtb3ZlIH0gZnJvbSAnLi9yZW1vdmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZXBlYXQgfSBmcm9tICcuL3JlcGVhdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlcGxhY2UgfSBmcm9tICcuL3JlcGxhY2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZXN0IH0gZnJvbSAnLi9yZXN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcmVzdWx0IH0gZnJvbSAnLi9yZXN1bHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZXZlcnNlIH0gZnJvbSAnLi9yZXZlcnNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcm91bmQgfSBmcm9tICcuL3JvdW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc2FtcGxlIH0gZnJvbSAnLi9zYW1wbGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzYW1wbGVTaXplIH0gZnJvbSAnLi9zYW1wbGVTaXplLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc2V0IH0gZnJvbSAnLi9zZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzZXRXaXRoIH0gZnJvbSAnLi9zZXRXaXRoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc2h1ZmZsZSB9IGZyb20gJy4vc2h1ZmZsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHNpemUgfSBmcm9tICcuL3NpemUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzbGljZSB9IGZyb20gJy4vc2xpY2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzbmFrZUNhc2UgfSBmcm9tICcuL3NuYWtlQ2FzZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHNvbWUgfSBmcm9tICcuL3NvbWUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzb3J0QnkgfSBmcm9tICcuL3NvcnRCeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHNvcnRlZEluZGV4IH0gZnJvbSAnLi9zb3J0ZWRJbmRleC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHNvcnRlZEluZGV4QnkgfSBmcm9tICcuL3NvcnRlZEluZGV4QnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzb3J0ZWRJbmRleE9mIH0gZnJvbSAnLi9zb3J0ZWRJbmRleE9mLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc29ydGVkTGFzdEluZGV4IH0gZnJvbSAnLi9zb3J0ZWRMYXN0SW5kZXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzb3J0ZWRMYXN0SW5kZXhCeSB9IGZyb20gJy4vc29ydGVkTGFzdEluZGV4QnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzb3J0ZWRMYXN0SW5kZXhPZiB9IGZyb20gJy4vc29ydGVkTGFzdEluZGV4T2YuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzb3J0ZWRVbmlxIH0gZnJvbSAnLi9zb3J0ZWRVbmlxLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc29ydGVkVW5pcUJ5IH0gZnJvbSAnLi9zb3J0ZWRVbmlxQnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzcGxpdCB9IGZyb20gJy4vc3BsaXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzcHJlYWQgfSBmcm9tICcuL3NwcmVhZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN0YXJ0Q2FzZSB9IGZyb20gJy4vc3RhcnRDYXNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc3RhcnRzV2l0aCB9IGZyb20gJy4vc3RhcnRzV2l0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN0dWJBcnJheSB9IGZyb20gJy4vc3R1YkFycmF5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc3R1YkZhbHNlIH0gZnJvbSAnLi9zdHViRmFsc2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzdHViT2JqZWN0IH0gZnJvbSAnLi9zdHViT2JqZWN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc3R1YlN0cmluZyB9IGZyb20gJy4vc3R1YlN0cmluZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN0dWJUcnVlIH0gZnJvbSAnLi9zdHViVHJ1ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN1YnRyYWN0IH0gZnJvbSAnLi9zdWJ0cmFjdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN1bSB9IGZyb20gJy4vc3VtLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc3VtQnkgfSBmcm9tICcuL3N1bUJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdGFpbCB9IGZyb20gJy4vdGFpbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRha2UgfSBmcm9tICcuL3Rha2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0YWtlUmlnaHQgfSBmcm9tICcuL3Rha2VSaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRha2VSaWdodFdoaWxlIH0gZnJvbSAnLi90YWtlUmlnaHRXaGlsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRha2VXaGlsZSB9IGZyb20gJy4vdGFrZVdoaWxlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdGFwIH0gZnJvbSAnLi90YXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0ZW1wbGF0ZSB9IGZyb20gJy4vdGVtcGxhdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0ZW1wbGF0ZVNldHRpbmdzIH0gZnJvbSAnLi90ZW1wbGF0ZVNldHRpbmdzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdGhyb3R0bGUgfSBmcm9tICcuL3Rocm90dGxlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdGhydSB9IGZyb20gJy4vdGhydS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRpbWVzIH0gZnJvbSAnLi90aW1lcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRvQXJyYXkgfSBmcm9tICcuL3RvQXJyYXkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0b0Zpbml0ZSB9IGZyb20gJy4vdG9GaW5pdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0b0ludGVnZXIgfSBmcm9tICcuL3RvSW50ZWdlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRvSXRlcmF0b3IgfSBmcm9tICcuL3RvSXRlcmF0b3IuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0b0pTT04gfSBmcm9tICcuL3RvSlNPTi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRvTGVuZ3RoIH0gZnJvbSAnLi90b0xlbmd0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRvTG93ZXIgfSBmcm9tICcuL3RvTG93ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0b051bWJlciB9IGZyb20gJy4vdG9OdW1iZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0b1BhaXJzIH0gZnJvbSAnLi90b1BhaXJzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdG9QYWlyc0luIH0gZnJvbSAnLi90b1BhaXJzSW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0b1BhdGggfSBmcm9tICcuL3RvUGF0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRvUGxhaW5PYmplY3QgfSBmcm9tICcuL3RvUGxhaW5PYmplY3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0b1NhZmVJbnRlZ2VyIH0gZnJvbSAnLi90b1NhZmVJbnRlZ2VyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdG9TdHJpbmcgfSBmcm9tICcuL3RvU3RyaW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdG9VcHBlciB9IGZyb20gJy4vdG9VcHBlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRyYW5zZm9ybSB9IGZyb20gJy4vdHJhbnNmb3JtLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdHJpbSB9IGZyb20gJy4vdHJpbS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRyaW1FbmQgfSBmcm9tICcuL3RyaW1FbmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0cmltU3RhcnQgfSBmcm9tICcuL3RyaW1TdGFydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRydW5jYXRlIH0gZnJvbSAnLi90cnVuY2F0ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVuYXJ5IH0gZnJvbSAnLi91bmFyeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVuZXNjYXBlIH0gZnJvbSAnLi91bmVzY2FwZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVuaW9uIH0gZnJvbSAnLi91bmlvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVuaW9uQnkgfSBmcm9tICcuL3VuaW9uQnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1bmlvbldpdGggfSBmcm9tICcuL3VuaW9uV2l0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVuaXEgfSBmcm9tICcuL3VuaXEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1bmlxQnkgfSBmcm9tICcuL3VuaXFCeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVuaXFXaXRoIH0gZnJvbSAnLi91bmlxV2l0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVuaXF1ZUlkIH0gZnJvbSAnLi91bmlxdWVJZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVuc2V0IH0gZnJvbSAnLi91bnNldC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVuemlwIH0gZnJvbSAnLi91bnppcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVuemlwV2l0aCB9IGZyb20gJy4vdW56aXBXaXRoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXBkYXRlIH0gZnJvbSAnLi91cGRhdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1cGRhdGVXaXRoIH0gZnJvbSAnLi91cGRhdGVXaXRoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXBwZXJDYXNlIH0gZnJvbSAnLi91cHBlckNhc2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1cHBlckZpcnN0IH0gZnJvbSAnLi91cHBlckZpcnN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmFsdWUgfSBmcm9tICcuL3ZhbHVlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmFsdWVPZiB9IGZyb20gJy4vdmFsdWVPZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZhbHVlcyB9IGZyb20gJy4vdmFsdWVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmFsdWVzSW4gfSBmcm9tICcuL3ZhbHVlc0luLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgd2l0aG91dCB9IGZyb20gJy4vd2l0aG91dC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHdvcmRzIH0gZnJvbSAnLi93b3Jkcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHdyYXAgfSBmcm9tICcuL3dyYXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB3cmFwcGVyQXQgfSBmcm9tICcuL3dyYXBwZXJBdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHdyYXBwZXJDaGFpbiB9IGZyb20gJy4vd3JhcHBlckNoYWluLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgd3JhcHBlckNvbW1pdCB9IGZyb20gJy4vY29tbWl0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgd3JhcHBlckxvZGFzaCB9IGZyb20gJy4vd3JhcHBlckxvZGFzaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHdyYXBwZXJOZXh0IH0gZnJvbSAnLi9uZXh0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgd3JhcHBlclBsYW50IH0gZnJvbSAnLi9wbGFudC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHdyYXBwZXJSZXZlcnNlIH0gZnJvbSAnLi93cmFwcGVyUmV2ZXJzZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHdyYXBwZXJUb0l0ZXJhdG9yIH0gZnJvbSAnLi90b0l0ZXJhdG9yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgd3JhcHBlclZhbHVlIH0gZnJvbSAnLi93cmFwcGVyVmFsdWUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB4b3IgfSBmcm9tICcuL3hvci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHhvckJ5IH0gZnJvbSAnLi94b3JCeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHhvcldpdGggfSBmcm9tICcuL3hvcldpdGguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB6aXAgfSBmcm9tICcuL3ppcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHppcE9iamVjdCB9IGZyb20gJy4vemlwT2JqZWN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgemlwT2JqZWN0RGVlcCB9IGZyb20gJy4vemlwT2JqZWN0RGVlcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHppcFdpdGggfSBmcm9tICcuL3ppcFdpdGguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gJy4vbG9kYXNoLmRlZmF1bHQuanMnO1xuIiwKICAgICJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5cbnZhciBERUZBVUxUX0VER0VfTkFNRSA9ICdcXHgwMCc7XG52YXIgR1JBUEhfTk9ERSA9ICdcXHgwMCc7XG52YXIgRURHRV9LRVlfREVMSU0gPSAnXFx4MDEnO1xuXG4vLyBJbXBsZW1lbnRhdGlvbiBub3Rlczpcbi8vXG4vLyAgKiBOb2RlIGlkIHF1ZXJ5IGZ1bmN0aW9ucyBzaG91bGQgcmV0dXJuIHN0cmluZyBpZHMgZm9yIHRoZSBub2Rlc1xuLy8gICogRWRnZSBpZCBxdWVyeSBmdW5jdGlvbnMgc2hvdWxkIHJldHVybiBhbiBcImVkZ2VPYmpcIiwgZWRnZSBvYmplY3QsIHRoYXQgaXNcbi8vICAgIGNvbXBvc2VkIG9mIGVub3VnaCBpbmZvcm1hdGlvbiB0byB1bmlxdWVseSBpZGVudGlmeSBhbiBlZGdlOiB7diwgdywgbmFtZX0uXG4vLyAgKiBJbnRlcm5hbGx5IHdlIHVzZSBhbiBcImVkZ2VJZFwiLCBhIHN0cmluZ2lmaWVkIGZvcm0gb2YgdGhlIGVkZ2VPYmosIHRvXG4vLyAgICByZWZlcmVuY2UgZWRnZXMuIFRoaXMgaXMgYmVjYXVzZSB3ZSBuZWVkIGEgcGVyZm9ybWFudCB3YXkgdG8gbG9vayB0aGVzZVxuLy8gICAgZWRnZXMgdXAgYW5kLCBvYmplY3QgcHJvcGVydGllcywgd2hpY2ggaGF2ZSBzdHJpbmcga2V5cywgYXJlIHRoZSBjbG9zZXN0XG4vLyAgICB3ZSdyZSBnb2luZyB0byBnZXQgdG8gYSBwZXJmb3JtYW50IGhhc2h0YWJsZSBpbiBKYXZhU2NyaXB0LlxuXG4vLyBJbXBsZW1lbnRhdGlvbiBub3Rlczpcbi8vXG4vLyAgKiBOb2RlIGlkIHF1ZXJ5IGZ1bmN0aW9ucyBzaG91bGQgcmV0dXJuIHN0cmluZyBpZHMgZm9yIHRoZSBub2Rlc1xuLy8gICogRWRnZSBpZCBxdWVyeSBmdW5jdGlvbnMgc2hvdWxkIHJldHVybiBhbiBcImVkZ2VPYmpcIiwgZWRnZSBvYmplY3QsIHRoYXQgaXNcbi8vICAgIGNvbXBvc2VkIG9mIGVub3VnaCBpbmZvcm1hdGlvbiB0byB1bmlxdWVseSBpZGVudGlmeSBhbiBlZGdlOiB7diwgdywgbmFtZX0uXG4vLyAgKiBJbnRlcm5hbGx5IHdlIHVzZSBhbiBcImVkZ2VJZFwiLCBhIHN0cmluZ2lmaWVkIGZvcm0gb2YgdGhlIGVkZ2VPYmosIHRvXG4vLyAgICByZWZlcmVuY2UgZWRnZXMuIFRoaXMgaXMgYmVjYXVzZSB3ZSBuZWVkIGEgcGVyZm9ybWFudCB3YXkgdG8gbG9vayB0aGVzZVxuLy8gICAgZWRnZXMgdXAgYW5kLCBvYmplY3QgcHJvcGVydGllcywgd2hpY2ggaGF2ZSBzdHJpbmcga2V5cywgYXJlIHRoZSBjbG9zZXN0XG4vLyAgICB3ZSdyZSBnb2luZyB0byBnZXQgdG8gYSBwZXJmb3JtYW50IGhhc2h0YWJsZSBpbiBKYXZhU2NyaXB0LlxuZXhwb3J0IGNsYXNzIEdyYXBoIHtcbiAgY29uc3RydWN0b3Iob3B0cyA9IHt9KSB7XG4gICAgdGhpcy5faXNEaXJlY3RlZCA9IF8uaGFzKG9wdHMsICdkaXJlY3RlZCcpID8gb3B0cy5kaXJlY3RlZCA6IHRydWU7XG4gICAgdGhpcy5faXNNdWx0aWdyYXBoID0gXy5oYXMob3B0cywgJ211bHRpZ3JhcGgnKSA/IG9wdHMubXVsdGlncmFwaCA6IGZhbHNlO1xuICAgIHRoaXMuX2lzQ29tcG91bmQgPSBfLmhhcyhvcHRzLCAnY29tcG91bmQnKSA/IG9wdHMuY29tcG91bmQgOiBmYWxzZTtcblxuICAgIC8vIExhYmVsIGZvciB0aGUgZ3JhcGggaXRzZWxmXG4gICAgdGhpcy5fbGFiZWwgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBEZWZhdWx0cyB0byBiZSBzZXQgd2hlbiBjcmVhdGluZyBhIG5ldyBub2RlXG4gICAgdGhpcy5fZGVmYXVsdE5vZGVMYWJlbEZuID0gXy5jb25zdGFudCh1bmRlZmluZWQpO1xuXG4gICAgLy8gRGVmYXVsdHMgdG8gYmUgc2V0IHdoZW4gY3JlYXRpbmcgYSBuZXcgZWRnZVxuICAgIHRoaXMuX2RlZmF1bHRFZGdlTGFiZWxGbiA9IF8uY29uc3RhbnQodW5kZWZpbmVkKTtcblxuICAgIC8vIHYgLT4gbGFiZWxcbiAgICB0aGlzLl9ub2RlcyA9IHt9O1xuXG4gICAgaWYgKHRoaXMuX2lzQ29tcG91bmQpIHtcbiAgICAgIC8vIHYgLT4gcGFyZW50XG4gICAgICB0aGlzLl9wYXJlbnQgPSB7fTtcblxuICAgICAgLy8gdiAtPiBjaGlsZHJlblxuICAgICAgdGhpcy5fY2hpbGRyZW4gPSB7fTtcbiAgICAgIHRoaXMuX2NoaWxkcmVuW0dSQVBIX05PREVdID0ge307XG4gICAgfVxuXG4gICAgLy8gdiAtPiBlZGdlT2JqXG4gICAgdGhpcy5faW4gPSB7fTtcblxuICAgIC8vIHUgLT4gdiAtPiBOdW1iZXJcbiAgICB0aGlzLl9wcmVkcyA9IHt9O1xuXG4gICAgLy8gdiAtPiBlZGdlT2JqXG4gICAgdGhpcy5fb3V0ID0ge307XG5cbiAgICAvLyB2IC0+IHcgLT4gTnVtYmVyXG4gICAgdGhpcy5fc3VjcyA9IHt9O1xuXG4gICAgLy8gZSAtPiBlZGdlT2JqXG4gICAgdGhpcy5fZWRnZU9ianMgPSB7fTtcblxuICAgIC8vIGUgLT4gbGFiZWxcbiAgICB0aGlzLl9lZGdlTGFiZWxzID0ge307XG4gIH1cbiAgLyogPT09IEdyYXBoIGZ1bmN0aW9ucyA9PT09PT09PT0gKi9cbiAgaXNEaXJlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNEaXJlY3RlZDtcbiAgfVxuICBpc011bHRpZ3JhcGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTXVsdGlncmFwaDtcbiAgfVxuICBpc0NvbXBvdW5kKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0NvbXBvdW5kO1xuICB9XG4gIHNldEdyYXBoKGxhYmVsKSB7XG4gICAgdGhpcy5fbGFiZWwgPSBsYWJlbDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBncmFwaCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gIH1cbiAgLyogPT09IE5vZGUgZnVuY3Rpb25zID09PT09PT09PT0gKi9cbiAgc2V0RGVmYXVsdE5vZGVMYWJlbChuZXdEZWZhdWx0KSB7XG4gICAgaWYgKCFfLmlzRnVuY3Rpb24obmV3RGVmYXVsdCkpIHtcbiAgICAgIG5ld0RlZmF1bHQgPSBfLmNvbnN0YW50KG5ld0RlZmF1bHQpO1xuICAgIH1cbiAgICB0aGlzLl9kZWZhdWx0Tm9kZUxhYmVsRm4gPSBuZXdEZWZhdWx0O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG5vZGVDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbm9kZUNvdW50O1xuICB9XG4gIG5vZGVzKCkge1xuICAgIHJldHVybiBfLmtleXModGhpcy5fbm9kZXMpO1xuICB9XG4gIHNvdXJjZXMoKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiBfLmZpbHRlcih0aGlzLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgICByZXR1cm4gXy5pc0VtcHR5KHNlbGYuX2luW3ZdKTtcbiAgICB9KTtcbiAgfVxuICBzaW5rcygpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIF8uZmlsdGVyKHRoaXMubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICAgIHJldHVybiBfLmlzRW1wdHkoc2VsZi5fb3V0W3ZdKTtcbiAgICB9KTtcbiAgfVxuICBzZXROb2Rlcyh2cywgdmFsdWUpIHtcbiAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgXy5lYWNoKHZzLCBmdW5jdGlvbiAodikge1xuICAgICAgaWYgKGFyZ3MubGVuZ3RoID4gMSkge1xuICAgICAgICBzZWxmLnNldE5vZGUodiwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZi5zZXROb2RlKHYpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHNldE5vZGUodiwgdmFsdWUpIHtcbiAgICBpZiAoXy5oYXModGhpcy5fbm9kZXMsIHYpKSB7XG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhpcy5fbm9kZXNbdl0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICB0aGlzLl9ub2Rlc1t2XSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gdmFsdWUgOiB0aGlzLl9kZWZhdWx0Tm9kZUxhYmVsRm4odik7XG4gICAgaWYgKHRoaXMuX2lzQ29tcG91bmQpIHtcbiAgICAgIHRoaXMuX3BhcmVudFt2XSA9IEdSQVBIX05PREU7XG4gICAgICB0aGlzLl9jaGlsZHJlblt2XSA9IHt9O1xuICAgICAgdGhpcy5fY2hpbGRyZW5bR1JBUEhfTk9ERV1bdl0gPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLl9pblt2XSA9IHt9O1xuICAgIHRoaXMuX3ByZWRzW3ZdID0ge307XG4gICAgdGhpcy5fb3V0W3ZdID0ge307XG4gICAgdGhpcy5fc3Vjc1t2XSA9IHt9O1xuICAgICsrdGhpcy5fbm9kZUNvdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG5vZGUodikge1xuICAgIHJldHVybiB0aGlzLl9ub2Rlc1t2XTtcbiAgfVxuICBoYXNOb2RlKHYpIHtcbiAgICByZXR1cm4gXy5oYXModGhpcy5fbm9kZXMsIHYpO1xuICB9XG4gIHJlbW92ZU5vZGUodikge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBpZiAoXy5oYXModGhpcy5fbm9kZXMsIHYpKSB7XG4gICAgICB2YXIgcmVtb3ZlRWRnZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHNlbGYucmVtb3ZlRWRnZShzZWxmLl9lZGdlT2Jqc1tlXSk7XG4gICAgICB9O1xuICAgICAgZGVsZXRlIHRoaXMuX25vZGVzW3ZdO1xuICAgICAgaWYgKHRoaXMuX2lzQ29tcG91bmQpIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlRnJvbVBhcmVudHNDaGlsZExpc3Qodik7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9wYXJlbnRbdl07XG4gICAgICAgIF8uZWFjaCh0aGlzLmNoaWxkcmVuKHYpLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICBzZWxmLnNldFBhcmVudChjaGlsZCk7XG4gICAgICAgIH0pO1xuICAgICAgICBkZWxldGUgdGhpcy5fY2hpbGRyZW5bdl07XG4gICAgICB9XG4gICAgICBfLmVhY2goXy5rZXlzKHRoaXMuX2luW3ZdKSwgcmVtb3ZlRWRnZSk7XG4gICAgICBkZWxldGUgdGhpcy5faW5bdl07XG4gICAgICBkZWxldGUgdGhpcy5fcHJlZHNbdl07XG4gICAgICBfLmVhY2goXy5rZXlzKHRoaXMuX291dFt2XSksIHJlbW92ZUVkZ2UpO1xuICAgICAgZGVsZXRlIHRoaXMuX291dFt2XTtcbiAgICAgIGRlbGV0ZSB0aGlzLl9zdWNzW3ZdO1xuICAgICAgLS10aGlzLl9ub2RlQ291bnQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHNldFBhcmVudCh2LCBwYXJlbnQpIHtcbiAgICBpZiAoIXRoaXMuX2lzQ29tcG91bmQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHNldCBwYXJlbnQgaW4gYSBub24tY29tcG91bmQgZ3JhcGgnKTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChwYXJlbnQpKSB7XG4gICAgICBwYXJlbnQgPSBHUkFQSF9OT0RFO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb2VyY2UgcGFyZW50IHRvIHN0cmluZ1xuICAgICAgcGFyZW50ICs9ICcnO1xuICAgICAgZm9yICh2YXIgYW5jZXN0b3IgPSBwYXJlbnQ7ICFfLmlzVW5kZWZpbmVkKGFuY2VzdG9yKTsgYW5jZXN0b3IgPSB0aGlzLnBhcmVudChhbmNlc3RvcikpIHtcbiAgICAgICAgaWYgKGFuY2VzdG9yID09PSB2KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXR0aW5nICcgKyBwYXJlbnQgKyAnIGFzIHBhcmVudCBvZiAnICsgdiArICcgd291bGQgY3JlYXRlIGEgY3ljbGUnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLnNldE5vZGUocGFyZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLnNldE5vZGUodik7XG4gICAgdGhpcy5fcmVtb3ZlRnJvbVBhcmVudHNDaGlsZExpc3Qodik7XG4gICAgdGhpcy5fcGFyZW50W3ZdID0gcGFyZW50O1xuICAgIHRoaXMuX2NoaWxkcmVuW3BhcmVudF1bdl0gPSB0cnVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIF9yZW1vdmVGcm9tUGFyZW50c0NoaWxkTGlzdCh2KSB7XG4gICAgZGVsZXRlIHRoaXMuX2NoaWxkcmVuW3RoaXMuX3BhcmVudFt2XV1bdl07XG4gIH1cbiAgcGFyZW50KHYpIHtcbiAgICBpZiAodGhpcy5faXNDb21wb3VuZCkge1xuICAgICAgdmFyIHBhcmVudCA9IHRoaXMuX3BhcmVudFt2XTtcbiAgICAgIGlmIChwYXJlbnQgIT09IEdSQVBIX05PREUpIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY2hpbGRyZW4odikge1xuICAgIGlmIChfLmlzVW5kZWZpbmVkKHYpKSB7XG4gICAgICB2ID0gR1JBUEhfTk9ERTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNDb21wb3VuZCkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5fY2hpbGRyZW5bdl07XG4gICAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIF8ua2V5cyhjaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh2ID09PSBHUkFQSF9OT0RFKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2RlcygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNOb2RlKHYpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG4gIHByZWRlY2Vzc29ycyh2KSB7XG4gICAgdmFyIHByZWRzViA9IHRoaXMuX3ByZWRzW3ZdO1xuICAgIGlmIChwcmVkc1YpIHtcbiAgICAgIHJldHVybiBfLmtleXMocHJlZHNWKTtcbiAgICB9XG4gIH1cbiAgc3VjY2Vzc29ycyh2KSB7XG4gICAgdmFyIHN1Y3NWID0gdGhpcy5fc3Vjc1t2XTtcbiAgICBpZiAoc3Vjc1YpIHtcbiAgICAgIHJldHVybiBfLmtleXMoc3Vjc1YpO1xuICAgIH1cbiAgfVxuICBuZWlnaGJvcnModikge1xuICAgIHZhciBwcmVkcyA9IHRoaXMucHJlZGVjZXNzb3JzKHYpO1xuICAgIGlmIChwcmVkcykge1xuICAgICAgcmV0dXJuIF8udW5pb24ocHJlZHMsIHRoaXMuc3VjY2Vzc29ycyh2KSk7XG4gICAgfVxuICB9XG4gIGlzTGVhZih2KSB7XG4gICAgdmFyIG5laWdoYm9ycztcbiAgICBpZiAodGhpcy5pc0RpcmVjdGVkKCkpIHtcbiAgICAgIG5laWdoYm9ycyA9IHRoaXMuc3VjY2Vzc29ycyh2KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmVpZ2hib3JzID0gdGhpcy5uZWlnaGJvcnModik7XG4gICAgfVxuICAgIHJldHVybiBuZWlnaGJvcnMubGVuZ3RoID09PSAwO1xuICB9XG4gIGZpbHRlck5vZGVzKGZpbHRlcikge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICB2YXIgY29weSA9IG5ldyB0aGlzLmNvbnN0cnVjdG9yKHtcbiAgICAgIGRpcmVjdGVkOiB0aGlzLl9pc0RpcmVjdGVkLFxuICAgICAgbXVsdGlncmFwaDogdGhpcy5faXNNdWx0aWdyYXBoLFxuICAgICAgY29tcG91bmQ6IHRoaXMuX2lzQ29tcG91bmQsXG4gICAgfSk7XG5cbiAgICBjb3B5LnNldEdyYXBoKHRoaXMuZ3JhcGgoKSk7XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgXy5lYWNoKHRoaXMuX25vZGVzLCBmdW5jdGlvbiAodmFsdWUsIHYpIHtcbiAgICAgIGlmIChmaWx0ZXIodikpIHtcbiAgICAgICAgY29weS5zZXROb2RlKHYsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF8uZWFjaCh0aGlzLl9lZGdlT2JqcywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIGlmIChjb3B5Lmhhc05vZGUoZS52KSAmJiBjb3B5Lmhhc05vZGUoZS53KSkge1xuICAgICAgICBjb3B5LnNldEVkZ2UoZSwgc2VsZi5lZGdlKGUpKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciBwYXJlbnRzID0ge307XG4gICAgZnVuY3Rpb24gZmluZFBhcmVudCh2KSB7XG4gICAgICB2YXIgcGFyZW50ID0gc2VsZi5wYXJlbnQodik7XG4gICAgICBpZiAocGFyZW50ID09PSB1bmRlZmluZWQgfHwgY29weS5oYXNOb2RlKHBhcmVudCkpIHtcbiAgICAgICAgcGFyZW50c1t2XSA9IHBhcmVudDtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH0gZWxzZSBpZiAocGFyZW50IGluIHBhcmVudHMpIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudHNbcGFyZW50XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmaW5kUGFyZW50KHBhcmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2lzQ29tcG91bmQpIHtcbiAgICAgIF8uZWFjaChjb3B5Lm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIGNvcHkuc2V0UGFyZW50KHYsIGZpbmRQYXJlbnQodikpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvcHk7XG4gIH1cbiAgLyogPT09IEVkZ2UgZnVuY3Rpb25zID09PT09PT09PT0gKi9cbiAgc2V0RGVmYXVsdEVkZ2VMYWJlbChuZXdEZWZhdWx0KSB7XG4gICAgaWYgKCFfLmlzRnVuY3Rpb24obmV3RGVmYXVsdCkpIHtcbiAgICAgIG5ld0RlZmF1bHQgPSBfLmNvbnN0YW50KG5ld0RlZmF1bHQpO1xuICAgIH1cbiAgICB0aGlzLl9kZWZhdWx0RWRnZUxhYmVsRm4gPSBuZXdEZWZhdWx0O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGVkZ2VDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWRnZUNvdW50O1xuICB9XG4gIGVkZ2VzKCkge1xuICAgIHJldHVybiBfLnZhbHVlcyh0aGlzLl9lZGdlT2Jqcyk7XG4gIH1cbiAgc2V0UGF0aCh2cywgdmFsdWUpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgXy5yZWR1Y2UodnMsIGZ1bmN0aW9uICh2LCB3KSB7XG4gICAgICBpZiAoYXJncy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHNlbGYuc2V0RWRnZSh2LCB3LCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxmLnNldEVkZ2Uodiwgdyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdztcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKlxuICAgKiBzZXRFZGdlKHYsIHcsIFt2YWx1ZSwgW25hbWVdXSlcbiAgICogc2V0RWRnZSh7IHYsIHcsIFtuYW1lXSB9LCBbdmFsdWVdKVxuICAgKi9cbiAgc2V0RWRnZSgpIHtcbiAgICB2YXIgdiwgdywgbmFtZSwgdmFsdWU7XG4gICAgdmFyIHZhbHVlU3BlY2lmaWVkID0gZmFsc2U7XG4gICAgdmFyIGFyZzAgPSBhcmd1bWVudHNbMF07XG5cbiAgICBpZiAodHlwZW9mIGFyZzAgPT09ICdvYmplY3QnICYmIGFyZzAgIT09IG51bGwgJiYgJ3YnIGluIGFyZzApIHtcbiAgICAgIHYgPSBhcmcwLnY7XG4gICAgICB3ID0gYXJnMC53O1xuICAgICAgbmFtZSA9IGFyZzAubmFtZTtcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIHZhbHVlID0gYXJndW1lbnRzWzFdO1xuICAgICAgICB2YWx1ZVNwZWNpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHYgPSBhcmcwO1xuICAgICAgdyA9IGFyZ3VtZW50c1sxXTtcbiAgICAgIG5hbWUgPSBhcmd1bWVudHNbM107XG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgdmFsdWUgPSBhcmd1bWVudHNbMl07XG4gICAgICAgIHZhbHVlU3BlY2lmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2ID0gJycgKyB2O1xuICAgIHcgPSAnJyArIHc7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKG5hbWUpKSB7XG4gICAgICBuYW1lID0gJycgKyBuYW1lO1xuICAgIH1cblxuICAgIHZhciBlID0gZWRnZUFyZ3NUb0lkKHRoaXMuX2lzRGlyZWN0ZWQsIHYsIHcsIG5hbWUpO1xuICAgIGlmIChfLmhhcyh0aGlzLl9lZGdlTGFiZWxzLCBlKSkge1xuICAgICAgaWYgKHZhbHVlU3BlY2lmaWVkKSB7XG4gICAgICAgIHRoaXMuX2VkZ2VMYWJlbHNbZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGlmICghXy5pc1VuZGVmaW5lZChuYW1lKSAmJiAhdGhpcy5faXNNdWx0aWdyYXBoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzZXQgYSBuYW1lZCBlZGdlIHdoZW4gaXNNdWx0aWdyYXBoID0gZmFsc2UnKTtcbiAgICB9XG5cbiAgICAvLyBJdCBkaWRuJ3QgZXhpc3QsIHNvIHdlIG5lZWQgdG8gY3JlYXRlIGl0LlxuICAgIC8vIEZpcnN0IGVuc3VyZSB0aGUgbm9kZXMgZXhpc3QuXG4gICAgdGhpcy5zZXROb2RlKHYpO1xuICAgIHRoaXMuc2V0Tm9kZSh3KTtcblxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICB0aGlzLl9lZGdlTGFiZWxzW2VdID0gdmFsdWVTcGVjaWZpZWQgPyB2YWx1ZSA6IHRoaXMuX2RlZmF1bHRFZGdlTGFiZWxGbih2LCB3LCBuYW1lKTtcblxuICAgIHZhciBlZGdlT2JqID0gZWRnZUFyZ3NUb09iaih0aGlzLl9pc0RpcmVjdGVkLCB2LCB3LCBuYW1lKTtcbiAgICAvLyBFbnN1cmUgd2UgYWRkIHVuZGlyZWN0ZWQgZWRnZXMgaW4gYSBjb25zaXN0ZW50IHdheS5cbiAgICB2ID0gZWRnZU9iai52O1xuICAgIHcgPSBlZGdlT2JqLnc7XG5cbiAgICBPYmplY3QuZnJlZXplKGVkZ2VPYmopO1xuICAgIHRoaXMuX2VkZ2VPYmpzW2VdID0gZWRnZU9iajtcbiAgICBpbmNyZW1lbnRPckluaXRFbnRyeSh0aGlzLl9wcmVkc1t3XSwgdik7XG4gICAgaW5jcmVtZW50T3JJbml0RW50cnkodGhpcy5fc3Vjc1t2XSwgdyk7XG4gICAgdGhpcy5faW5bd11bZV0gPSBlZGdlT2JqO1xuICAgIHRoaXMuX291dFt2XVtlXSA9IGVkZ2VPYmo7XG4gICAgdGhpcy5fZWRnZUNvdW50Kys7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgZWRnZSh2LCB3LCBuYW1lKSB7XG4gICAgdmFyIGUgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA9PT0gMVxuICAgICAgICA/IGVkZ2VPYmpUb0lkKHRoaXMuX2lzRGlyZWN0ZWQsIGFyZ3VtZW50c1swXSlcbiAgICAgICAgOiBlZGdlQXJnc1RvSWQodGhpcy5faXNEaXJlY3RlZCwgdiwgdywgbmFtZSk7XG4gICAgcmV0dXJuIHRoaXMuX2VkZ2VMYWJlbHNbZV07XG4gIH1cbiAgaGFzRWRnZSh2LCB3LCBuYW1lKSB7XG4gICAgdmFyIGUgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA9PT0gMVxuICAgICAgICA/IGVkZ2VPYmpUb0lkKHRoaXMuX2lzRGlyZWN0ZWQsIGFyZ3VtZW50c1swXSlcbiAgICAgICAgOiBlZGdlQXJnc1RvSWQodGhpcy5faXNEaXJlY3RlZCwgdiwgdywgbmFtZSk7XG4gICAgcmV0dXJuIF8uaGFzKHRoaXMuX2VkZ2VMYWJlbHMsIGUpO1xuICB9XG4gIHJlbW92ZUVkZ2UodiwgdywgbmFtZSkge1xuICAgIHZhciBlID1cbiAgICAgIGFyZ3VtZW50cy5sZW5ndGggPT09IDFcbiAgICAgICAgPyBlZGdlT2JqVG9JZCh0aGlzLl9pc0RpcmVjdGVkLCBhcmd1bWVudHNbMF0pXG4gICAgICAgIDogZWRnZUFyZ3NUb0lkKHRoaXMuX2lzRGlyZWN0ZWQsIHYsIHcsIG5hbWUpO1xuICAgIHZhciBlZGdlID0gdGhpcy5fZWRnZU9ianNbZV07XG4gICAgaWYgKGVkZ2UpIHtcbiAgICAgIHYgPSBlZGdlLnY7XG4gICAgICB3ID0gZWRnZS53O1xuICAgICAgZGVsZXRlIHRoaXMuX2VkZ2VMYWJlbHNbZV07XG4gICAgICBkZWxldGUgdGhpcy5fZWRnZU9ianNbZV07XG4gICAgICBkZWNyZW1lbnRPclJlbW92ZUVudHJ5KHRoaXMuX3ByZWRzW3ddLCB2KTtcbiAgICAgIGRlY3JlbWVudE9yUmVtb3ZlRW50cnkodGhpcy5fc3Vjc1t2XSwgdyk7XG4gICAgICBkZWxldGUgdGhpcy5faW5bd11bZV07XG4gICAgICBkZWxldGUgdGhpcy5fb3V0W3ZdW2VdO1xuICAgICAgdGhpcy5fZWRnZUNvdW50LS07XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGluRWRnZXModiwgdSkge1xuICAgIHZhciBpblYgPSB0aGlzLl9pblt2XTtcbiAgICBpZiAoaW5WKSB7XG4gICAgICB2YXIgZWRnZXMgPSBfLnZhbHVlcyhpblYpO1xuICAgICAgaWYgKCF1KSB7XG4gICAgICAgIHJldHVybiBlZGdlcztcbiAgICAgIH1cbiAgICAgIHJldHVybiBfLmZpbHRlcihlZGdlcywgZnVuY3Rpb24gKGVkZ2UpIHtcbiAgICAgICAgcmV0dXJuIGVkZ2UudiA9PT0gdTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBvdXRFZGdlcyh2LCB3KSB7XG4gICAgdmFyIG91dFYgPSB0aGlzLl9vdXRbdl07XG4gICAgaWYgKG91dFYpIHtcbiAgICAgIHZhciBlZGdlcyA9IF8udmFsdWVzKG91dFYpO1xuICAgICAgaWYgKCF3KSB7XG4gICAgICAgIHJldHVybiBlZGdlcztcbiAgICAgIH1cbiAgICAgIHJldHVybiBfLmZpbHRlcihlZGdlcywgZnVuY3Rpb24gKGVkZ2UpIHtcbiAgICAgICAgcmV0dXJuIGVkZ2UudyA9PT0gdztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBub2RlRWRnZXModiwgdykge1xuICAgIHZhciBpbkVkZ2VzID0gdGhpcy5pbkVkZ2VzKHYsIHcpO1xuICAgIGlmIChpbkVkZ2VzKSB7XG4gICAgICByZXR1cm4gaW5FZGdlcy5jb25jYXQodGhpcy5vdXRFZGdlcyh2LCB3KSk7XG4gICAgfVxuICB9XG59XG5cbi8qIE51bWJlciBvZiBub2RlcyBpbiB0aGUgZ3JhcGguIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uLiAqL1xuR3JhcGgucHJvdG90eXBlLl9ub2RlQ291bnQgPSAwO1xuXG4vKiBOdW1iZXIgb2YgZWRnZXMgaW4gdGhlIGdyYXBoLiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbi4gKi9cbkdyYXBoLnByb3RvdHlwZS5fZWRnZUNvdW50ID0gMDtcblxuZnVuY3Rpb24gaW5jcmVtZW50T3JJbml0RW50cnkobWFwLCBrKSB7XG4gIGlmIChtYXBba10pIHtcbiAgICBtYXBba10rKztcbiAgfSBlbHNlIHtcbiAgICBtYXBba10gPSAxO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlY3JlbWVudE9yUmVtb3ZlRW50cnkobWFwLCBrKSB7XG4gIGlmICghLS1tYXBba10pIHtcbiAgICBkZWxldGUgbWFwW2tdO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVkZ2VBcmdzVG9JZChpc0RpcmVjdGVkLCB2Xywgd18sIG5hbWUpIHtcbiAgdmFyIHYgPSAnJyArIHZfO1xuICB2YXIgdyA9ICcnICsgd187XG4gIGlmICghaXNEaXJlY3RlZCAmJiB2ID4gdykge1xuICAgIHZhciB0bXAgPSB2O1xuICAgIHYgPSB3O1xuICAgIHcgPSB0bXA7XG4gIH1cbiAgcmV0dXJuIHYgKyBFREdFX0tFWV9ERUxJTSArIHcgKyBFREdFX0tFWV9ERUxJTSArIChfLmlzVW5kZWZpbmVkKG5hbWUpID8gREVGQVVMVF9FREdFX05BTUUgOiBuYW1lKTtcbn1cblxuZnVuY3Rpb24gZWRnZUFyZ3NUb09iaihpc0RpcmVjdGVkLCB2Xywgd18sIG5hbWUpIHtcbiAgdmFyIHYgPSAnJyArIHZfO1xuICB2YXIgdyA9ICcnICsgd187XG4gIGlmICghaXNEaXJlY3RlZCAmJiB2ID4gdykge1xuICAgIHZhciB0bXAgPSB2O1xuICAgIHYgPSB3O1xuICAgIHcgPSB0bXA7XG4gIH1cbiAgdmFyIGVkZ2VPYmogPSB7IHY6IHYsIHc6IHcgfTtcbiAgaWYgKG5hbWUpIHtcbiAgICBlZGdlT2JqLm5hbWUgPSBuYW1lO1xuICB9XG4gIHJldHVybiBlZGdlT2JqO1xufVxuXG5mdW5jdGlvbiBlZGdlT2JqVG9JZChpc0RpcmVjdGVkLCBlZGdlT2JqKSB7XG4gIHJldHVybiBlZGdlQXJnc1RvSWQoaXNEaXJlY3RlZCwgZWRnZU9iai52LCBlZGdlT2JqLncsIGVkZ2VPYmoubmFtZSk7XG59XG4iLAogICAgIi8vIEluY2x1ZGVzIG9ubHkgdGhlIFwiY29yZVwiIG9mIGdyYXBobGliXG5cbmltcG9ydCB7IEdyYXBoIH0gZnJvbSAnLi9ncmFwaC5qcyc7XG5cbmNvbnN0IHZlcnNpb24gPSAnMi4xLjktcHJlJztcblxuZXhwb3J0IHsgR3JhcGgsIHZlcnNpb24gfTtcbiIsCiAgICAiLypcbiAqIFNpbXBsZSBkb3VibHkgbGlua2VkIGxpc3QgaW1wbGVtZW50YXRpb24gZGVyaXZlZCBmcm9tIENvcm1lbiwgZXQgYWwuLFxuICogXCJJbnRyb2R1Y3Rpb24gdG8gQWxnb3JpdGhtc1wiLlxuICovXG5cbmV4cG9ydCB7IExpc3QgfTtcblxuY2xhc3MgTGlzdCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHZhciBzZW50aW5lbCA9IHt9O1xuICAgIHNlbnRpbmVsLl9uZXh0ID0gc2VudGluZWwuX3ByZXYgPSBzZW50aW5lbDtcbiAgICB0aGlzLl9zZW50aW5lbCA9IHNlbnRpbmVsO1xuICB9XG4gIGRlcXVldWUoKSB7XG4gICAgdmFyIHNlbnRpbmVsID0gdGhpcy5fc2VudGluZWw7XG4gICAgdmFyIGVudHJ5ID0gc2VudGluZWwuX3ByZXY7XG4gICAgaWYgKGVudHJ5ICE9PSBzZW50aW5lbCkge1xuICAgICAgdW5saW5rKGVudHJ5KTtcbiAgICAgIHJldHVybiBlbnRyeTtcbiAgICB9XG4gIH1cbiAgZW5xdWV1ZShlbnRyeSkge1xuICAgIHZhciBzZW50aW5lbCA9IHRoaXMuX3NlbnRpbmVsO1xuICAgIGlmIChlbnRyeS5fcHJldiAmJiBlbnRyeS5fbmV4dCkge1xuICAgICAgdW5saW5rKGVudHJ5KTtcbiAgICB9XG4gICAgZW50cnkuX25leHQgPSBzZW50aW5lbC5fbmV4dDtcbiAgICBzZW50aW5lbC5fbmV4dC5fcHJldiA9IGVudHJ5O1xuICAgIHNlbnRpbmVsLl9uZXh0ID0gZW50cnk7XG4gICAgZW50cnkuX3ByZXYgPSBzZW50aW5lbDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICB2YXIgc3RycyA9IFtdO1xuICAgIHZhciBzZW50aW5lbCA9IHRoaXMuX3NlbnRpbmVsO1xuICAgIHZhciBjdXJyID0gc2VudGluZWwuX3ByZXY7XG4gICAgd2hpbGUgKGN1cnIgIT09IHNlbnRpbmVsKSB7XG4gICAgICBzdHJzLnB1c2goSlNPTi5zdHJpbmdpZnkoY3VyciwgZmlsdGVyT3V0TGlua3MpKTtcbiAgICAgIGN1cnIgPSBjdXJyLl9wcmV2O1xuICAgIH1cbiAgICByZXR1cm4gJ1snICsgc3Rycy5qb2luKCcsICcpICsgJ10nO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVubGluayhlbnRyeSkge1xuICBlbnRyeS5fcHJldi5fbmV4dCA9IGVudHJ5Ll9uZXh0O1xuICBlbnRyeS5fbmV4dC5fcHJldiA9IGVudHJ5Ll9wcmV2O1xuICBkZWxldGUgZW50cnkuX25leHQ7XG4gIGRlbGV0ZSBlbnRyeS5fcHJldjtcbn1cblxuZnVuY3Rpb24gZmlsdGVyT3V0TGlua3Moaywgdikge1xuICBpZiAoayAhPT0gJ19uZXh0JyAmJiBrICE9PSAnX3ByZXYnKSB7XG4gICAgcmV0dXJuIHY7XG4gIH1cbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgR3JhcGggfSBmcm9tICcuLi9ncmFwaGxpYi9pbmRleC5qcyc7XG5pbXBvcnQgeyBMaXN0IH0gZnJvbSAnLi9kYXRhL2xpc3QuanMnO1xuXG4vKlxuICogQSBncmVlZHkgaGV1cmlzdGljIGZvciBmaW5kaW5nIGEgZmVlZGJhY2sgYXJjIHNldCBmb3IgYSBncmFwaC4gQSBmZWVkYmFja1xuICogYXJjIHNldCBpcyBhIHNldCBvZiBlZGdlcyB0aGF0IGNhbiBiZSByZW1vdmVkIHRvIG1ha2UgYSBncmFwaCBhY3ljbGljLlxuICogVGhlIGFsZ29yaXRobSBjb21lcyBmcm9tOiBQLiBFYWRlcywgWC4gTGluLCBhbmQgVy4gRi4gU215dGgsIFwiQSBmYXN0IGFuZFxuICogZWZmZWN0aXZlIGhldXJpc3RpYyBmb3IgdGhlIGZlZWRiYWNrIGFyYyBzZXQgcHJvYmxlbS5cIiBUaGlzIGltcGxlbWVudGF0aW9uXG4gKiBhZGp1c3RzIHRoYXQgZnJvbSB0aGUgcGFwZXIgdG8gYWxsb3cgZm9yIHdlaWdodGVkIGVkZ2VzLlxuICovXG5leHBvcnQgeyBncmVlZHlGQVMgfTtcblxudmFyIERFRkFVTFRfV0VJR0hUX0ZOID0gXy5jb25zdGFudCgxKTtcblxuZnVuY3Rpb24gZ3JlZWR5RkFTKGcsIHdlaWdodEZuKSB7XG4gIGlmIChnLm5vZGVDb3VudCgpIDw9IDEpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgdmFyIHN0YXRlID0gYnVpbGRTdGF0ZShnLCB3ZWlnaHRGbiB8fCBERUZBVUxUX1dFSUdIVF9GTik7XG4gIHZhciByZXN1bHRzID0gZG9HcmVlZHlGQVMoc3RhdGUuZ3JhcGgsIHN0YXRlLmJ1Y2tldHMsIHN0YXRlLnplcm9JZHgpO1xuXG4gIC8vIEV4cGFuZCBtdWx0aS1lZGdlc1xuICByZXR1cm4gXy5mbGF0dGVuKFxuICAgIF8ubWFwKHJlc3VsdHMsIGZ1bmN0aW9uIChlKSB7XG4gICAgICByZXR1cm4gZy5vdXRFZGdlcyhlLnYsIGUudyk7XG4gICAgfSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gZG9HcmVlZHlGQVMoZywgYnVja2V0cywgemVyb0lkeCkge1xuICB2YXIgcmVzdWx0cyA9IFtdO1xuICB2YXIgc291cmNlcyA9IGJ1Y2tldHNbYnVja2V0cy5sZW5ndGggLSAxXTtcbiAgdmFyIHNpbmtzID0gYnVja2V0c1swXTtcblxuICB2YXIgZW50cnk7XG4gIHdoaWxlIChnLm5vZGVDb3VudCgpKSB7XG4gICAgd2hpbGUgKChlbnRyeSA9IHNpbmtzLmRlcXVldWUoKSkpIHtcbiAgICAgIHJlbW92ZU5vZGUoZywgYnVja2V0cywgemVyb0lkeCwgZW50cnkpO1xuICAgIH1cbiAgICB3aGlsZSAoKGVudHJ5ID0gc291cmNlcy5kZXF1ZXVlKCkpKSB7XG4gICAgICByZW1vdmVOb2RlKGcsIGJ1Y2tldHMsIHplcm9JZHgsIGVudHJ5KTtcbiAgICB9XG4gICAgaWYgKGcubm9kZUNvdW50KCkpIHtcbiAgICAgIGZvciAodmFyIGkgPSBidWNrZXRzLmxlbmd0aCAtIDI7IGkgPiAwOyAtLWkpIHtcbiAgICAgICAgZW50cnkgPSBidWNrZXRzW2ldLmRlcXVldWUoKTtcbiAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgcmVzdWx0cyA9IHJlc3VsdHMuY29uY2F0KHJlbW92ZU5vZGUoZywgYnVja2V0cywgemVyb0lkeCwgZW50cnksIHRydWUpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufVxuXG5mdW5jdGlvbiByZW1vdmVOb2RlKGcsIGJ1Y2tldHMsIHplcm9JZHgsIGVudHJ5LCBjb2xsZWN0UHJlZGVjZXNzb3JzKSB7XG4gIHZhciByZXN1bHRzID0gY29sbGVjdFByZWRlY2Vzc29ycyA/IFtdIDogdW5kZWZpbmVkO1xuXG4gIF8uZm9yRWFjaChnLmluRWRnZXMoZW50cnkudiksIGZ1bmN0aW9uIChlZGdlKSB7XG4gICAgdmFyIHdlaWdodCA9IGcuZWRnZShlZGdlKTtcbiAgICB2YXIgdUVudHJ5ID0gZy5ub2RlKGVkZ2Uudik7XG5cbiAgICBpZiAoY29sbGVjdFByZWRlY2Vzc29ycykge1xuICAgICAgcmVzdWx0cy5wdXNoKHsgdjogZWRnZS52LCB3OiBlZGdlLncgfSk7XG4gICAgfVxuXG4gICAgdUVudHJ5Lm91dCAtPSB3ZWlnaHQ7XG4gICAgYXNzaWduQnVja2V0KGJ1Y2tldHMsIHplcm9JZHgsIHVFbnRyeSk7XG4gIH0pO1xuXG4gIF8uZm9yRWFjaChnLm91dEVkZ2VzKGVudHJ5LnYpLCBmdW5jdGlvbiAoZWRnZSkge1xuICAgIHZhciB3ZWlnaHQgPSBnLmVkZ2UoZWRnZSk7XG4gICAgdmFyIHcgPSBlZGdlLnc7XG4gICAgdmFyIHdFbnRyeSA9IGcubm9kZSh3KTtcbiAgICB3RW50cnlbJ2luJ10gLT0gd2VpZ2h0O1xuICAgIGFzc2lnbkJ1Y2tldChidWNrZXRzLCB6ZXJvSWR4LCB3RW50cnkpO1xuICB9KTtcblxuICBnLnJlbW92ZU5vZGUoZW50cnkudik7XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkU3RhdGUoZywgd2VpZ2h0Rm4pIHtcbiAgdmFyIGZhc0dyYXBoID0gbmV3IEdyYXBoKCk7XG4gIHZhciBtYXhJbiA9IDA7XG4gIHZhciBtYXhPdXQgPSAwO1xuXG4gIF8uZm9yRWFjaChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgZmFzR3JhcGguc2V0Tm9kZSh2LCB7IHY6IHYsIGluOiAwLCBvdXQ6IDAgfSk7XG4gIH0pO1xuXG4gIC8vIEFnZ3JlZ2F0ZSB3ZWlnaHRzIG9uIG5vZGVzLCBidXQgYWxzbyBzdW0gdGhlIHdlaWdodHMgYWNyb3NzIG11bHRpLWVkZ2VzXG4gIC8vIGludG8gYSBzaW5nbGUgZWRnZSBmb3IgdGhlIGZhc0dyYXBoLlxuICBfLmZvckVhY2goZy5lZGdlcygpLCBmdW5jdGlvbiAoZSkge1xuICAgIHZhciBwcmV2V2VpZ2h0ID0gZmFzR3JhcGguZWRnZShlLnYsIGUudykgfHwgMDtcbiAgICB2YXIgd2VpZ2h0ID0gd2VpZ2h0Rm4oZSk7XG4gICAgdmFyIGVkZ2VXZWlnaHQgPSBwcmV2V2VpZ2h0ICsgd2VpZ2h0O1xuICAgIGZhc0dyYXBoLnNldEVkZ2UoZS52LCBlLncsIGVkZ2VXZWlnaHQpO1xuICAgIG1heE91dCA9IE1hdGgubWF4KG1heE91dCwgKGZhc0dyYXBoLm5vZGUoZS52KS5vdXQgKz0gd2VpZ2h0KSk7XG4gICAgbWF4SW4gPSBNYXRoLm1heChtYXhJbiwgKGZhc0dyYXBoLm5vZGUoZS53KVsnaW4nXSArPSB3ZWlnaHQpKTtcbiAgfSk7XG5cbiAgdmFyIGJ1Y2tldHMgPSBfLnJhbmdlKG1heE91dCArIG1heEluICsgMykubWFwKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gbmV3IExpc3QoKTtcbiAgfSk7XG4gIHZhciB6ZXJvSWR4ID0gbWF4SW4gKyAxO1xuXG4gIF8uZm9yRWFjaChmYXNHcmFwaC5ub2RlcygpLCBmdW5jdGlvbiAodikge1xuICAgIGFzc2lnbkJ1Y2tldChidWNrZXRzLCB6ZXJvSWR4LCBmYXNHcmFwaC5ub2RlKHYpKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgZ3JhcGg6IGZhc0dyYXBoLCBidWNrZXRzOiBidWNrZXRzLCB6ZXJvSWR4OiB6ZXJvSWR4IH07XG59XG5cbmZ1bmN0aW9uIGFzc2lnbkJ1Y2tldChidWNrZXRzLCB6ZXJvSWR4LCBlbnRyeSkge1xuICBpZiAoIWVudHJ5Lm91dCkge1xuICAgIGJ1Y2tldHNbMF0uZW5xdWV1ZShlbnRyeSk7XG4gIH0gZWxzZSBpZiAoIWVudHJ5WydpbiddKSB7XG4gICAgYnVja2V0c1tidWNrZXRzLmxlbmd0aCAtIDFdLmVucXVldWUoZW50cnkpO1xuICB9IGVsc2Uge1xuICAgIGJ1Y2tldHNbZW50cnkub3V0IC0gZW50cnlbJ2luJ10gKyB6ZXJvSWR4XS5lbnF1ZXVlKGVudHJ5KTtcbiAgfVxufVxuIiwKICAgICJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBncmVlZHlGQVMgfSBmcm9tICcuL2dyZWVkeS1mYXMuanMnO1xuXG5leHBvcnQgeyBydW4sIHVuZG8gfTtcblxuZnVuY3Rpb24gcnVuKGcpIHtcbiAgdmFyIGZhcyA9IGcuZ3JhcGgoKS5hY3ljbGljZXIgPT09ICdncmVlZHknID8gZ3JlZWR5RkFTKGcsIHdlaWdodEZuKGcpKSA6IGRmc0ZBUyhnKTtcbiAgXy5mb3JFYWNoKGZhcywgZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgbGFiZWwgPSBnLmVkZ2UoZSk7XG4gICAgZy5yZW1vdmVFZGdlKGUpO1xuICAgIGxhYmVsLmZvcndhcmROYW1lID0gZS5uYW1lO1xuICAgIGxhYmVsLnJldmVyc2VkID0gdHJ1ZTtcbiAgICBnLnNldEVkZ2UoZS53LCBlLnYsIGxhYmVsLCBfLnVuaXF1ZUlkKCdyZXYnKSk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIHdlaWdodEZuKGcpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHJldHVybiBnLmVkZ2UoZSkud2VpZ2h0O1xuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gZGZzRkFTKGcpIHtcbiAgdmFyIGZhcyA9IFtdO1xuICB2YXIgc3RhY2sgPSB7fTtcbiAgdmFyIHZpc2l0ZWQgPSB7fTtcblxuICBmdW5jdGlvbiBkZnModikge1xuICAgIGlmIChfLmhhcyh2aXNpdGVkLCB2KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2aXNpdGVkW3ZdID0gdHJ1ZTtcbiAgICBzdGFja1t2XSA9IHRydWU7XG4gICAgXy5mb3JFYWNoKGcub3V0RWRnZXModiksIGZ1bmN0aW9uIChlKSB7XG4gICAgICBpZiAoXy5oYXMoc3RhY2ssIGUudykpIHtcbiAgICAgICAgZmFzLnB1c2goZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZnMoZS53KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBkZWxldGUgc3RhY2tbdl07XG4gIH1cblxuICBfLmZvckVhY2goZy5ub2RlcygpLCBkZnMpO1xuICByZXR1cm4gZmFzO1xufVxuXG5mdW5jdGlvbiB1bmRvKGcpIHtcbiAgXy5mb3JFYWNoKGcuZWRnZXMoKSwgZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgbGFiZWwgPSBnLmVkZ2UoZSk7XG4gICAgaWYgKGxhYmVsLnJldmVyc2VkKSB7XG4gICAgICBnLnJlbW92ZUVkZ2UoZSk7XG5cbiAgICAgIHZhciBmb3J3YXJkTmFtZSA9IGxhYmVsLmZvcndhcmROYW1lO1xuICAgICAgZGVsZXRlIGxhYmVsLnJldmVyc2VkO1xuICAgICAgZGVsZXRlIGxhYmVsLmZvcndhcmROYW1lO1xuICAgICAgZy5zZXRFZGdlKGUudywgZS52LCBsYWJlbCwgZm9yd2FyZE5hbWUpO1xuICAgIH1cbiAgfSk7XG59XG4iLAogICAgImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSAnLi4vZ3JhcGhsaWIvaW5kZXguanMnO1xuXG5leHBvcnQge1xuICBhZGREdW1teU5vZGUsXG4gIHNpbXBsaWZ5LFxuICBhc05vbkNvbXBvdW5kR3JhcGgsXG4gIHN1Y2Nlc3NvcldlaWdodHMsXG4gIHByZWRlY2Vzc29yV2VpZ2h0cyxcbiAgaW50ZXJzZWN0UmVjdCxcbiAgYnVpbGRMYXllck1hdHJpeCxcbiAgbm9ybWFsaXplUmFua3MsXG4gIHJlbW92ZUVtcHR5UmFua3MsXG4gIGFkZEJvcmRlck5vZGUsXG4gIG1heFJhbmssXG4gIHBhcnRpdGlvbixcbiAgdGltZSxcbiAgbm90aW1lLFxufTtcblxuLypcbiAqIEFkZHMgYSBkdW1teSBub2RlIHRvIHRoZSBncmFwaCBhbmQgcmV0dXJuIHYuXG4gKi9cbmZ1bmN0aW9uIGFkZER1bW15Tm9kZShnLCB0eXBlLCBhdHRycywgbmFtZSkge1xuICB2YXIgdjtcbiAgZG8ge1xuICAgIHYgPSBfLnVuaXF1ZUlkKG5hbWUpO1xuICB9IHdoaWxlIChnLmhhc05vZGUodikpO1xuXG4gIGF0dHJzLmR1bW15ID0gdHlwZTtcbiAgZy5zZXROb2RlKHYsIGF0dHJzKTtcbiAgcmV0dXJuIHY7XG59XG5cbi8qXG4gKiBSZXR1cm5zIGEgbmV3IGdyYXBoIHdpdGggb25seSBzaW1wbGUgZWRnZXMuIEhhbmRsZXMgYWdncmVnYXRpb24gb2YgZGF0YVxuICogYXNzb2NpYXRlZCB3aXRoIG11bHRpLWVkZ2VzLlxuICovXG5mdW5jdGlvbiBzaW1wbGlmeShnKSB7XG4gIHZhciBzaW1wbGlmaWVkID0gbmV3IEdyYXBoKCkuc2V0R3JhcGgoZy5ncmFwaCgpKTtcbiAgXy5mb3JFYWNoKGcubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICBzaW1wbGlmaWVkLnNldE5vZGUodiwgZy5ub2RlKHYpKTtcbiAgfSk7XG4gIF8uZm9yRWFjaChnLmVkZ2VzKCksIGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyIHNpbXBsZUxhYmVsID0gc2ltcGxpZmllZC5lZGdlKGUudiwgZS53KSB8fCB7IHdlaWdodDogMCwgbWlubGVuOiAxIH07XG4gICAgdmFyIGxhYmVsID0gZy5lZGdlKGUpO1xuICAgIHNpbXBsaWZpZWQuc2V0RWRnZShlLnYsIGUudywge1xuICAgICAgd2VpZ2h0OiBzaW1wbGVMYWJlbC53ZWlnaHQgKyBsYWJlbC53ZWlnaHQsXG4gICAgICBtaW5sZW46IE1hdGgubWF4KHNpbXBsZUxhYmVsLm1pbmxlbiwgbGFiZWwubWlubGVuKSxcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBzaW1wbGlmaWVkO1xufVxuXG5mdW5jdGlvbiBhc05vbkNvbXBvdW5kR3JhcGgoZykge1xuICB2YXIgc2ltcGxpZmllZCA9IG5ldyBHcmFwaCh7IG11bHRpZ3JhcGg6IGcuaXNNdWx0aWdyYXBoKCkgfSkuc2V0R3JhcGgoZy5ncmFwaCgpKTtcbiAgXy5mb3JFYWNoKGcubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICBpZiAoIWcuY2hpbGRyZW4odikubGVuZ3RoKSB7XG4gICAgICBzaW1wbGlmaWVkLnNldE5vZGUodiwgZy5ub2RlKHYpKTtcbiAgICB9XG4gIH0pO1xuICBfLmZvckVhY2goZy5lZGdlcygpLCBmdW5jdGlvbiAoZSkge1xuICAgIHNpbXBsaWZpZWQuc2V0RWRnZShlLCBnLmVkZ2UoZSkpO1xuICB9KTtcbiAgcmV0dXJuIHNpbXBsaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHN1Y2Nlc3NvcldlaWdodHMoZykge1xuICB2YXIgd2VpZ2h0TWFwID0gXy5tYXAoZy5ub2RlcygpLCBmdW5jdGlvbiAodikge1xuICAgIHZhciBzdWNzID0ge307XG4gICAgXy5mb3JFYWNoKGcub3V0RWRnZXModiksIGZ1bmN0aW9uIChlKSB7XG4gICAgICBzdWNzW2Uud10gPSAoc3Vjc1tlLnddIHx8IDApICsgZy5lZGdlKGUpLndlaWdodDtcbiAgICB9KTtcbiAgICByZXR1cm4gc3VjcztcbiAgfSk7XG4gIHJldHVybiBfLnppcE9iamVjdChnLm5vZGVzKCksIHdlaWdodE1hcCk7XG59XG5cbmZ1bmN0aW9uIHByZWRlY2Vzc29yV2VpZ2h0cyhnKSB7XG4gIHZhciB3ZWlnaHRNYXAgPSBfLm1hcChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgdmFyIHByZWRzID0ge307XG4gICAgXy5mb3JFYWNoKGcuaW5FZGdlcyh2KSwgZnVuY3Rpb24gKGUpIHtcbiAgICAgIHByZWRzW2Uudl0gPSAocHJlZHNbZS52XSB8fCAwKSArIGcuZWRnZShlKS53ZWlnaHQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHByZWRzO1xuICB9KTtcbiAgcmV0dXJuIF8uemlwT2JqZWN0KGcubm9kZXMoKSwgd2VpZ2h0TWFwKTtcbn1cblxuLypcbiAqIEZpbmRzIHdoZXJlIGEgbGluZSBzdGFydGluZyBhdCBwb2ludCAoe3gsIHl9KSB3b3VsZCBpbnRlcnNlY3QgYSByZWN0YW5nbGVcbiAqICh7eCwgeSwgd2lkdGgsIGhlaWdodH0pIGlmIGl0IHdlcmUgcG9pbnRpbmcgYXQgdGhlIHJlY3RhbmdsZSdzIGNlbnRlci5cbiAqL1xuZnVuY3Rpb24gaW50ZXJzZWN0UmVjdChyZWN0LCBwb2ludCkge1xuICB2YXIgeCA9IHJlY3QueDtcbiAgdmFyIHkgPSByZWN0Lnk7XG5cbiAgLy8gUmVjdGFuZ2xlIGludGVyc2VjdGlvbiBhbGdvcml0aG0gZnJvbTpcbiAgLy8gaHR0cDovL21hdGguc3RhY2tleGNoYW5nZS5jb20vcXVlc3Rpb25zLzEwODExMy9maW5kLWVkZ2UtYmV0d2Vlbi10d28tYm94ZXNcbiAgdmFyIGR4ID0gcG9pbnQueCAtIHg7XG4gIHZhciBkeSA9IHBvaW50LnkgLSB5O1xuICB2YXIgdyA9IHJlY3Qud2lkdGggLyAyO1xuICB2YXIgaCA9IHJlY3QuaGVpZ2h0IC8gMjtcblxuICBpZiAoIWR4ICYmICFkeSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IHBvc3NpYmxlIHRvIGZpbmQgaW50ZXJzZWN0aW9uIGluc2lkZSBvZiB0aGUgcmVjdGFuZ2xlJyk7XG4gIH1cblxuICB2YXIgc3gsIHN5O1xuICBpZiAoTWF0aC5hYnMoZHkpICogdyA+IE1hdGguYWJzKGR4KSAqIGgpIHtcbiAgICAvLyBJbnRlcnNlY3Rpb24gaXMgdG9wIG9yIGJvdHRvbSBvZiByZWN0LlxuICAgIGlmIChkeSA8IDApIHtcbiAgICAgIGggPSAtaDtcbiAgICB9XG4gICAgc3ggPSAoaCAqIGR4KSAvIGR5O1xuICAgIHN5ID0gaDtcbiAgfSBlbHNlIHtcbiAgICAvLyBJbnRlcnNlY3Rpb24gaXMgbGVmdCBvciByaWdodCBvZiByZWN0LlxuICAgIGlmIChkeCA8IDApIHtcbiAgICAgIHcgPSAtdztcbiAgICB9XG4gICAgc3ggPSB3O1xuICAgIHN5ID0gKHcgKiBkeSkgLyBkeDtcbiAgfVxuXG4gIHJldHVybiB7IHg6IHggKyBzeCwgeTogeSArIHN5IH07XG59XG5cbi8qXG4gKiBHaXZlbiBhIERBRyB3aXRoIGVhY2ggbm9kZSBhc3NpZ25lZCBcInJhbmtcIiBhbmQgXCJvcmRlclwiIHByb3BlcnRpZXMsIHRoaXNcbiAqIGZ1bmN0aW9uIHdpbGwgcHJvZHVjZSBhIG1hdHJpeCB3aXRoIHRoZSBpZHMgb2YgZWFjaCBub2RlLlxuICovXG5mdW5jdGlvbiBidWlsZExheWVyTWF0cml4KGcpIHtcbiAgdmFyIGxheWVyaW5nID0gXy5tYXAoXy5yYW5nZShtYXhSYW5rKGcpICsgMSksIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gW107XG4gIH0pO1xuICBfLmZvckVhY2goZy5ub2RlcygpLCBmdW5jdGlvbiAodikge1xuICAgIHZhciBub2RlID0gZy5ub2RlKHYpO1xuICAgIHZhciByYW5rID0gbm9kZS5yYW5rO1xuICAgIGlmICghXy5pc1VuZGVmaW5lZChyYW5rKSkge1xuICAgICAgbGF5ZXJpbmdbcmFua11bbm9kZS5vcmRlcl0gPSB2O1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBsYXllcmluZztcbn1cblxuLypcbiAqIEFkanVzdHMgdGhlIHJhbmtzIGZvciBhbGwgbm9kZXMgaW4gdGhlIGdyYXBoIHN1Y2ggdGhhdCBhbGwgbm9kZXMgdiBoYXZlXG4gKiByYW5rKHYpID49IDAgYW5kIGF0IGxlYXN0IG9uZSBub2RlIHcgaGFzIHJhbmsodykgPSAwLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVSYW5rcyhnKSB7XG4gIHZhciBtaW4gPSBfLm1pbihcbiAgICBfLm1hcChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgICByZXR1cm4gZy5ub2RlKHYpLnJhbms7XG4gICAgfSlcbiAgKTtcbiAgXy5mb3JFYWNoKGcubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICB2YXIgbm9kZSA9IGcubm9kZSh2KTtcbiAgICBpZiAoXy5oYXMobm9kZSwgJ3JhbmsnKSkge1xuICAgICAgbm9kZS5yYW5rIC09IG1pbjtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVFbXB0eVJhbmtzKGcpIHtcbiAgLy8gUmFua3MgbWF5IG5vdCBzdGFydCBhdCAwLCBzbyB3ZSBuZWVkIHRvIG9mZnNldCB0aGVtXG4gIHZhciBvZmZzZXQgPSBfLm1pbihcbiAgICBfLm1hcChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgICByZXR1cm4gZy5ub2RlKHYpLnJhbms7XG4gICAgfSlcbiAgKTtcblxuICB2YXIgbGF5ZXJzID0gW107XG4gIF8uZm9yRWFjaChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgdmFyIHJhbmsgPSBnLm5vZGUodikucmFuayAtIG9mZnNldDtcbiAgICBpZiAoIWxheWVyc1tyYW5rXSkge1xuICAgICAgbGF5ZXJzW3JhbmtdID0gW107XG4gICAgfVxuICAgIGxheWVyc1tyYW5rXS5wdXNoKHYpO1xuICB9KTtcblxuICB2YXIgZGVsdGEgPSAwO1xuICB2YXIgbm9kZVJhbmtGYWN0b3IgPSBnLmdyYXBoKCkubm9kZVJhbmtGYWN0b3I7XG4gIF8uZm9yRWFjaChsYXllcnMsIGZ1bmN0aW9uICh2cywgaSkge1xuICAgIGlmIChfLmlzVW5kZWZpbmVkKHZzKSAmJiBpICUgbm9kZVJhbmtGYWN0b3IgIT09IDApIHtcbiAgICAgIC0tZGVsdGE7XG4gICAgfSBlbHNlIGlmIChkZWx0YSkge1xuICAgICAgXy5mb3JFYWNoKHZzLCBmdW5jdGlvbiAodikge1xuICAgICAgICBnLm5vZGUodikucmFuayArPSBkZWx0YTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkZEJvcmRlck5vZGUoZywgcHJlZml4LCByYW5rLCBvcmRlcikge1xuICB2YXIgbm9kZSA9IHtcbiAgICB3aWR0aDogMCxcbiAgICBoZWlnaHQ6IDAsXG4gIH07XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID49IDQpIHtcbiAgICBub2RlLnJhbmsgPSByYW5rO1xuICAgIG5vZGUub3JkZXIgPSBvcmRlcjtcbiAgfVxuICByZXR1cm4gYWRkRHVtbXlOb2RlKGcsICdib3JkZXInLCBub2RlLCBwcmVmaXgpO1xufVxuXG5mdW5jdGlvbiBtYXhSYW5rKGcpIHtcbiAgcmV0dXJuIF8ubWF4KFxuICAgIF8ubWFwKGcubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICAgIHZhciByYW5rID0gZy5ub2RlKHYpLnJhbms7XG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQocmFuaykpIHtcbiAgICAgICAgcmV0dXJuIHJhbms7XG4gICAgICB9XG4gICAgfSlcbiAgKTtcbn1cblxuLypcbiAqIFBhcnRpdGlvbiBhIGNvbGxlY3Rpb24gaW50byB0d28gZ3JvdXBzOiBgbGhzYCBhbmQgYHJoc2AuIElmIHRoZSBzdXBwbGllZFxuICogZnVuY3Rpb24gcmV0dXJucyB0cnVlIGZvciBhbiBlbnRyeSBpdCBnb2VzIGludG8gYGxoc2AuIE90aGVyd2lzZSBpdCBnb2VzXG4gKiBpbnRvIGByaHMuXG4gKi9cbmZ1bmN0aW9uIHBhcnRpdGlvbihjb2xsZWN0aW9uLCBmbikge1xuICB2YXIgcmVzdWx0ID0geyBsaHM6IFtdLCByaHM6IFtdIH07XG4gIF8uZm9yRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBpZiAoZm4odmFsdWUpKSB7XG4gICAgICByZXN1bHQubGhzLnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQucmhzLnB1c2godmFsdWUpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qXG4gKiBSZXR1cm5zIGEgbmV3IGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZuYCB3aXRoIGEgdGltZXIuIFRoZSB3cmFwcGVyIGxvZ3MgdGhlXG4gKiB0aW1lIGl0IHRha2VzIHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiB0aW1lKG5hbWUsIGZuKSB7XG4gIHZhciBzdGFydCA9IF8ubm93KCk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuKCk7XG4gIH0gZmluYWxseSB7XG4gICAgY29uc29sZS5sb2cobmFtZSArICcgdGltZTogJyArIChfLm5vdygpIC0gc3RhcnQpICsgJ21zJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbm90aW1lKG5hbWUsIGZuKSB7XG4gIHJldHVybiBmbigpO1xufVxuIiwKICAgICJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4vdXRpbC5qcyc7XG5cbmV4cG9ydCB7IGFkZEJvcmRlclNlZ21lbnRzIH07XG5cbmZ1bmN0aW9uIGFkZEJvcmRlclNlZ21lbnRzKGcpIHtcbiAgZnVuY3Rpb24gZGZzKHYpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBnLmNoaWxkcmVuKHYpO1xuICAgIHZhciBub2RlID0gZy5ub2RlKHYpO1xuICAgIGlmIChjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIF8uZm9yRWFjaChjaGlsZHJlbiwgZGZzKTtcbiAgICB9XG5cbiAgICBpZiAoXy5oYXMobm9kZSwgJ21pblJhbmsnKSkge1xuICAgICAgbm9kZS5ib3JkZXJMZWZ0ID0gW107XG4gICAgICBub2RlLmJvcmRlclJpZ2h0ID0gW107XG4gICAgICBmb3IgKHZhciByYW5rID0gbm9kZS5taW5SYW5rLCBtYXhSYW5rID0gbm9kZS5tYXhSYW5rICsgMTsgcmFuayA8IG1heFJhbms7ICsrcmFuaykge1xuICAgICAgICBhZGRCb3JkZXJOb2RlKGcsICdib3JkZXJMZWZ0JywgJ19ibCcsIHYsIG5vZGUsIHJhbmspO1xuICAgICAgICBhZGRCb3JkZXJOb2RlKGcsICdib3JkZXJSaWdodCcsICdfYnInLCB2LCBub2RlLCByYW5rKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfLmZvckVhY2goZy5jaGlsZHJlbigpLCBkZnMpO1xufVxuXG5mdW5jdGlvbiBhZGRCb3JkZXJOb2RlKGcsIHByb3AsIHByZWZpeCwgc2csIHNnTm9kZSwgcmFuaykge1xuICB2YXIgbGFiZWwgPSB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAsIHJhbms6IHJhbmssIGJvcmRlclR5cGU6IHByb3AgfTtcbiAgdmFyIHByZXYgPSBzZ05vZGVbcHJvcF1bcmFuayAtIDFdO1xuICB2YXIgY3VyciA9IHV0aWwuYWRkRHVtbXlOb2RlKGcsICdib3JkZXInLCBsYWJlbCwgcHJlZml4KTtcbiAgc2dOb2RlW3Byb3BdW3JhbmtdID0gY3VycjtcbiAgZy5zZXRQYXJlbnQoY3Vyciwgc2cpO1xuICBpZiAocHJldikge1xuICAgIGcuc2V0RWRnZShwcmV2LCBjdXJyLCB7IHdlaWdodDogMSB9KTtcbiAgfVxufVxuIiwKICAgICJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCB7IGFkanVzdCwgdW5kbyB9O1xuXG5mdW5jdGlvbiBhZGp1c3QoZykge1xuICB2YXIgcmFua0RpciA9IGcuZ3JhcGgoKS5yYW5rZGlyLnRvTG93ZXJDYXNlKCk7XG4gIGlmIChyYW5rRGlyID09PSAnbHInIHx8IHJhbmtEaXIgPT09ICdybCcpIHtcbiAgICBzd2FwV2lkdGhIZWlnaHQoZyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdW5kbyhnKSB7XG4gIHZhciByYW5rRGlyID0gZy5ncmFwaCgpLnJhbmtkaXIudG9Mb3dlckNhc2UoKTtcbiAgaWYgKHJhbmtEaXIgPT09ICdidCcgfHwgcmFua0RpciA9PT0gJ3JsJykge1xuICAgIHJldmVyc2VZKGcpO1xuICB9XG5cbiAgaWYgKHJhbmtEaXIgPT09ICdscicgfHwgcmFua0RpciA9PT0gJ3JsJykge1xuICAgIHN3YXBYWShnKTtcbiAgICBzd2FwV2lkdGhIZWlnaHQoZyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3dhcFdpZHRoSGVpZ2h0KGcpIHtcbiAgXy5mb3JFYWNoKGcubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICBzd2FwV2lkdGhIZWlnaHRPbmUoZy5ub2RlKHYpKTtcbiAgfSk7XG4gIF8uZm9yRWFjaChnLmVkZ2VzKCksIGZ1bmN0aW9uIChlKSB7XG4gICAgc3dhcFdpZHRoSGVpZ2h0T25lKGcuZWRnZShlKSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzd2FwV2lkdGhIZWlnaHRPbmUoYXR0cnMpIHtcbiAgdmFyIHcgPSBhdHRycy53aWR0aDtcbiAgYXR0cnMud2lkdGggPSBhdHRycy5oZWlnaHQ7XG4gIGF0dHJzLmhlaWdodCA9IHc7XG59XG5cbmZ1bmN0aW9uIHJldmVyc2VZKGcpIHtcbiAgXy5mb3JFYWNoKGcubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICByZXZlcnNlWU9uZShnLm5vZGUodikpO1xuICB9KTtcblxuICBfLmZvckVhY2goZy5lZGdlcygpLCBmdW5jdGlvbiAoZSkge1xuICAgIHZhciBlZGdlID0gZy5lZGdlKGUpO1xuICAgIF8uZm9yRWFjaChlZGdlLnBvaW50cywgcmV2ZXJzZVlPbmUpO1xuICAgIGlmIChfLmhhcyhlZGdlLCAneScpKSB7XG4gICAgICByZXZlcnNlWU9uZShlZGdlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXZlcnNlWU9uZShhdHRycykge1xuICBhdHRycy55ID0gLWF0dHJzLnk7XG59XG5cbmZ1bmN0aW9uIHN3YXBYWShnKSB7XG4gIF8uZm9yRWFjaChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgc3dhcFhZT25lKGcubm9kZSh2KSk7XG4gIH0pO1xuXG4gIF8uZm9yRWFjaChnLmVkZ2VzKCksIGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyIGVkZ2UgPSBnLmVkZ2UoZSk7XG4gICAgXy5mb3JFYWNoKGVkZ2UucG9pbnRzLCBzd2FwWFlPbmUpO1xuICAgIGlmIChfLmhhcyhlZGdlLCAneCcpKSB7XG4gICAgICBzd2FwWFlPbmUoZWRnZSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gc3dhcFhZT25lKGF0dHJzKSB7XG4gIHZhciB4ID0gYXR0cnMueDtcbiAgYXR0cnMueCA9IGF0dHJzLnk7XG4gIGF0dHJzLnkgPSB4O1xufVxuIiwKICAgICJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4vdXRpbC5qcyc7XG5cbmV4cG9ydCB7IHJ1biwgdW5kbyB9O1xuXG4vKlxuICogQnJlYWtzIGFueSBsb25nIGVkZ2VzIGluIHRoZSBncmFwaCBpbnRvIHNob3J0IHNlZ21lbnRzIHRoYXQgc3BhbiAxIGxheWVyXG4gKiBlYWNoLiBUaGlzIG9wZXJhdGlvbiBpcyB1bmRvYWJsZSB3aXRoIHRoZSBkZW5vcm1hbGl6ZSBmdW5jdGlvbi5cbiAqXG4gKiBQcmUtY29uZGl0aW9uczpcbiAqXG4gKiAgICAxLiBUaGUgaW5wdXQgZ3JhcGggaXMgYSBEQUcuXG4gKiAgICAyLiBFYWNoIG5vZGUgaW4gdGhlIGdyYXBoIGhhcyBhIFwicmFua1wiIHByb3BlcnR5LlxuICpcbiAqIFBvc3QtY29uZGl0aW9uOlxuICpcbiAqICAgIDEuIEFsbCBlZGdlcyBpbiB0aGUgZ3JhcGggaGF2ZSBhIGxlbmd0aCBvZiAxLlxuICogICAgMi4gRHVtbXkgbm9kZXMgYXJlIGFkZGVkIHdoZXJlIGVkZ2VzIGhhdmUgYmVlbiBzcGxpdCBpbnRvIHNlZ21lbnRzLlxuICogICAgMy4gVGhlIGdyYXBoIGlzIGF1Z21lbnRlZCB3aXRoIGEgXCJkdW1teUNoYWluc1wiIGF0dHJpYnV0ZSB3aGljaCBjb250YWluc1xuICogICAgICAgdGhlIGZpcnN0IGR1bW15IGluIGVhY2ggY2hhaW4gb2YgZHVtbXkgbm9kZXMgcHJvZHVjZWQuXG4gKi9cbmZ1bmN0aW9uIHJ1bihnKSB7XG4gIGcuZ3JhcGgoKS5kdW1teUNoYWlucyA9IFtdO1xuICBfLmZvckVhY2goZy5lZGdlcygpLCBmdW5jdGlvbiAoZWRnZSkge1xuICAgIG5vcm1hbGl6ZUVkZ2UoZywgZWRnZSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVFZGdlKGcsIGUpIHtcbiAgdmFyIHYgPSBlLnY7XG4gIHZhciB2UmFuayA9IGcubm9kZSh2KS5yYW5rO1xuICB2YXIgdyA9IGUudztcbiAgdmFyIHdSYW5rID0gZy5ub2RlKHcpLnJhbms7XG4gIHZhciBuYW1lID0gZS5uYW1lO1xuICB2YXIgZWRnZUxhYmVsID0gZy5lZGdlKGUpO1xuICB2YXIgbGFiZWxSYW5rID0gZWRnZUxhYmVsLmxhYmVsUmFuaztcblxuICBpZiAod1JhbmsgPT09IHZSYW5rICsgMSkgcmV0dXJuO1xuXG4gIGcucmVtb3ZlRWRnZShlKTtcblxuICB2YXIgZHVtbXksIGF0dHJzLCBpO1xuICBmb3IgKGkgPSAwLCArK3ZSYW5rOyB2UmFuayA8IHdSYW5rOyArK2ksICsrdlJhbmspIHtcbiAgICBlZGdlTGFiZWwucG9pbnRzID0gW107XG4gICAgYXR0cnMgPSB7XG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIGVkZ2VMYWJlbDogZWRnZUxhYmVsLFxuICAgICAgZWRnZU9iajogZSxcbiAgICAgIHJhbms6IHZSYW5rLFxuICAgIH07XG4gICAgZHVtbXkgPSB1dGlsLmFkZER1bW15Tm9kZShnLCAnZWRnZScsIGF0dHJzLCAnX2QnKTtcbiAgICBpZiAodlJhbmsgPT09IGxhYmVsUmFuaykge1xuICAgICAgYXR0cnMud2lkdGggPSBlZGdlTGFiZWwud2lkdGg7XG4gICAgICBhdHRycy5oZWlnaHQgPSBlZGdlTGFiZWwuaGVpZ2h0O1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgYXR0cnMuZHVtbXkgPSAnZWRnZS1sYWJlbCc7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBhdHRycy5sYWJlbHBvcyA9IGVkZ2VMYWJlbC5sYWJlbHBvcztcbiAgICB9XG4gICAgZy5zZXRFZGdlKHYsIGR1bW15LCB7IHdlaWdodDogZWRnZUxhYmVsLndlaWdodCB9LCBuYW1lKTtcbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgZy5ncmFwaCgpLmR1bW15Q2hhaW5zLnB1c2goZHVtbXkpO1xuICAgIH1cbiAgICB2ID0gZHVtbXk7XG4gIH1cblxuICBnLnNldEVkZ2UodiwgdywgeyB3ZWlnaHQ6IGVkZ2VMYWJlbC53ZWlnaHQgfSwgbmFtZSk7XG59XG5cbmZ1bmN0aW9uIHVuZG8oZykge1xuICBfLmZvckVhY2goZy5ncmFwaCgpLmR1bW15Q2hhaW5zLCBmdW5jdGlvbiAodikge1xuICAgIHZhciBub2RlID0gZy5ub2RlKHYpO1xuICAgIHZhciBvcmlnTGFiZWwgPSBub2RlLmVkZ2VMYWJlbDtcbiAgICB2YXIgdztcbiAgICBnLnNldEVkZ2Uobm9kZS5lZGdlT2JqLCBvcmlnTGFiZWwpO1xuICAgIHdoaWxlIChub2RlLmR1bW15KSB7XG4gICAgICB3ID0gZy5zdWNjZXNzb3JzKHYpWzBdO1xuICAgICAgZy5yZW1vdmVOb2RlKHYpO1xuICAgICAgb3JpZ0xhYmVsLnBvaW50cy5wdXNoKHsgeDogbm9kZS54LCB5OiBub2RlLnkgfSk7XG4gICAgICBpZiAobm9kZS5kdW1teSA9PT0gJ2VkZ2UtbGFiZWwnKSB7XG4gICAgICAgIG9yaWdMYWJlbC54ID0gbm9kZS54O1xuICAgICAgICBvcmlnTGFiZWwueSA9IG5vZGUueTtcbiAgICAgICAgb3JpZ0xhYmVsLndpZHRoID0gbm9kZS53aWR0aDtcbiAgICAgICAgb3JpZ0xhYmVsLmhlaWdodCA9IG5vZGUuaGVpZ2h0O1xuICAgICAgfVxuICAgICAgdiA9IHc7XG4gICAgICBub2RlID0gZy5ub2RlKHYpO1xuICAgIH1cbiAgfSk7XG59XG4iLAogICAgImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IHsgbG9uZ2VzdFBhdGgsIHNsYWNrIH07XG5cbi8qXG4gKiBJbml0aWFsaXplcyByYW5rcyBmb3IgdGhlIGlucHV0IGdyYXBoIHVzaW5nIHRoZSBsb25nZXN0IHBhdGggYWxnb3JpdGhtLiBUaGlzXG4gKiBhbGdvcml0aG0gc2NhbGVzIHdlbGwgYW5kIGlzIGZhc3QgaW4gcHJhY3RpY2UsIGl0IHlpZWxkcyByYXRoZXIgcG9vclxuICogc29sdXRpb25zLiBOb2RlcyBhcmUgcHVzaGVkIHRvIHRoZSBsb3dlc3QgbGF5ZXIgcG9zc2libGUsIGxlYXZpbmcgdGhlIGJvdHRvbVxuICogcmFua3Mgd2lkZSBhbmQgbGVhdmluZyBlZGdlcyBsb25nZXIgdGhhbiBuZWNlc3NhcnkuIEhvd2V2ZXIsIGR1ZSB0byBpdHNcbiAqIHNwZWVkLCB0aGlzIGFsZ29yaXRobSBpcyBnb29kIGZvciBnZXR0aW5nIGFuIGluaXRpYWwgcmFua2luZyB0aGF0IGNhbiBiZSBmZWRcbiAqIGludG8gb3RoZXIgYWxnb3JpdGhtcy5cbiAqXG4gKiBUaGlzIGFsZ29yaXRobSBkb2VzIG5vdCBub3JtYWxpemUgbGF5ZXJzIGJlY2F1c2UgaXQgd2lsbCBiZSB1c2VkIGJ5IG90aGVyXG4gKiBhbGdvcml0aG1zIGluIG1vc3QgY2FzZXMuIElmIHVzaW5nIHRoaXMgYWxnb3JpdGhtIGRpcmVjdGx5LCBiZSBzdXJlIHRvXG4gKiBydW4gbm9ybWFsaXplIGF0IHRoZSBlbmQuXG4gKlxuICogUHJlLWNvbmRpdGlvbnM6XG4gKlxuICogICAgMS4gSW5wdXQgZ3JhcGggaXMgYSBEQUcuXG4gKiAgICAyLiBJbnB1dCBncmFwaCBub2RlIGxhYmVscyBjYW4gYmUgYXNzaWduZWQgcHJvcGVydGllcy5cbiAqXG4gKiBQb3N0LWNvbmRpdGlvbnM6XG4gKlxuICogICAgMS4gRWFjaCBub2RlIHdpbGwgYmUgYXNzaWduIGFuICh1bm5vcm1hbGl6ZWQpIFwicmFua1wiIHByb3BlcnR5LlxuICovXG5mdW5jdGlvbiBsb25nZXN0UGF0aChnKSB7XG4gIHZhciB2aXNpdGVkID0ge307XG5cbiAgZnVuY3Rpb24gZGZzKHYpIHtcbiAgICB2YXIgbGFiZWwgPSBnLm5vZGUodik7XG4gICAgaWYgKF8uaGFzKHZpc2l0ZWQsIHYpKSB7XG4gICAgICByZXR1cm4gbGFiZWwucmFuaztcbiAgICB9XG4gICAgdmlzaXRlZFt2XSA9IHRydWU7XG5cbiAgICB2YXIgcmFuayA9IF8ubWluKFxuICAgICAgXy5tYXAoZy5vdXRFZGdlcyh2KSwgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgcmV0dXJuIGRmcyhlLncpIC0gZy5lZGdlKGUpLm1pbmxlbjtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgIHJhbmsgPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSB8fCAvLyByZXR1cm4gdmFsdWUgb2YgXy5tYXAoW10pIGZvciBMb2Rhc2ggM1xuICAgICAgcmFuayA9PT0gdW5kZWZpbmVkIHx8IC8vIHJldHVybiB2YWx1ZSBvZiBfLm1hcChbXSkgZm9yIExvZGFzaCA0XG4gICAgICByYW5rID09PSBudWxsXG4gICAgKSB7XG4gICAgICAvLyByZXR1cm4gdmFsdWUgb2YgXy5tYXAoW251bGxdKVxuICAgICAgcmFuayA9IDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIChsYWJlbC5yYW5rID0gcmFuayk7XG4gIH1cblxuICBfLmZvckVhY2goZy5zb3VyY2VzKCksIGRmcyk7XG59XG5cbi8qXG4gKiBSZXR1cm5zIHRoZSBhbW91bnQgb2Ygc2xhY2sgZm9yIHRoZSBnaXZlbiBlZGdlLiBUaGUgc2xhY2sgaXMgZGVmaW5lZCBhcyB0aGVcbiAqIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbGVuZ3RoIG9mIHRoZSBlZGdlIGFuZCBpdHMgbWluaW11bSBsZW5ndGguXG4gKi9cbmZ1bmN0aW9uIHNsYWNrKGcsIGUpIHtcbiAgcmV0dXJuIGcubm9kZShlLncpLnJhbmsgLSBnLm5vZGUoZS52KS5yYW5rIC0gZy5lZGdlKGUpLm1pbmxlbjtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgR3JhcGggfSBmcm9tICcuLi8uLi9ncmFwaGxpYi9pbmRleC5qcyc7XG5pbXBvcnQgeyBzbGFjayB9IGZyb20gJy4vdXRpbC5qcyc7XG5cbmV4cG9ydCB7IGZlYXNpYmxlVHJlZSB9O1xuXG4vKlxuICogQ29uc3RydWN0cyBhIHNwYW5uaW5nIHRyZWUgd2l0aCB0aWdodCBlZGdlcyBhbmQgYWRqdXN0ZWQgdGhlIGlucHV0IG5vZGUnc1xuICogcmFua3MgdG8gYWNoaWV2ZSB0aGlzLiBBIHRpZ2h0IGVkZ2UgaXMgb25lIHRoYXQgaXMgaGFzIGEgbGVuZ3RoIHRoYXQgbWF0Y2hlc1xuICogaXRzIFwibWlubGVuXCIgYXR0cmlidXRlLlxuICpcbiAqIFRoZSBiYXNpYyBzdHJ1Y3R1cmUgZm9yIHRoaXMgZnVuY3Rpb24gaXMgZGVyaXZlZCBmcm9tIEdhbnNuZXIsIGV0IGFsLiwgXCJBXG4gKiBUZWNobmlxdWUgZm9yIERyYXdpbmcgRGlyZWN0ZWQgR3JhcGhzLlwiXG4gKlxuICogUHJlLWNvbmRpdGlvbnM6XG4gKlxuICogICAgMS4gR3JhcGggbXVzdCBiZSBhIERBRy5cbiAqICAgIDIuIEdyYXBoIG11c3QgYmUgY29ubmVjdGVkLlxuICogICAgMy4gR3JhcGggbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBub2RlLlxuICogICAgNS4gR3JhcGggbm9kZXMgbXVzdCBoYXZlIGJlZW4gcHJldmlvdXNseSBhc3NpZ25lZCBhIFwicmFua1wiIHByb3BlcnR5IHRoYXRcbiAqICAgICAgIHJlc3BlY3RzIHRoZSBcIm1pbmxlblwiIHByb3BlcnR5IG9mIGluY2lkZW50IGVkZ2VzLlxuICogICAgNi4gR3JhcGggZWRnZXMgbXVzdCBoYXZlIGEgXCJtaW5sZW5cIiBwcm9wZXJ0eS5cbiAqXG4gKiBQb3N0LWNvbmRpdGlvbnM6XG4gKlxuICogICAgLSBHcmFwaCBub2RlcyB3aWxsIGhhdmUgdGhlaXIgcmFuayBhZGp1c3RlZCB0byBlbnN1cmUgdGhhdCBhbGwgZWRnZXMgYXJlXG4gKiAgICAgIHRpZ2h0LlxuICpcbiAqIFJldHVybnMgYSB0cmVlICh1bmRpcmVjdGVkIGdyYXBoKSB0aGF0IGlzIGNvbnN0cnVjdGVkIHVzaW5nIG9ubHkgXCJ0aWdodFwiXG4gKiBlZGdlcy5cbiAqL1xuZnVuY3Rpb24gZmVhc2libGVUcmVlKGcpIHtcbiAgdmFyIHQgPSBuZXcgR3JhcGgoeyBkaXJlY3RlZDogZmFsc2UgfSk7XG5cbiAgLy8gQ2hvb3NlIGFyYml0cmFyeSBub2RlIGZyb20gd2hpY2ggdG8gc3RhcnQgb3VyIHRyZWVcbiAgdmFyIHN0YXJ0ID0gZy5ub2RlcygpWzBdO1xuICB2YXIgc2l6ZSA9IGcubm9kZUNvdW50KCk7XG4gIHQuc2V0Tm9kZShzdGFydCwge30pO1xuXG4gIHZhciBlZGdlLCBkZWx0YTtcbiAgd2hpbGUgKHRpZ2h0VHJlZSh0LCBnKSA8IHNpemUpIHtcbiAgICBlZGdlID0gZmluZE1pblNsYWNrRWRnZSh0LCBnKTtcbiAgICBkZWx0YSA9IHQuaGFzTm9kZShlZGdlLnYpID8gc2xhY2soZywgZWRnZSkgOiAtc2xhY2soZywgZWRnZSk7XG4gICAgc2hpZnRSYW5rcyh0LCBnLCBkZWx0YSk7XG4gIH1cblxuICByZXR1cm4gdDtcbn1cblxuLypcbiAqIEZpbmRzIGEgbWF4aW1hbCB0cmVlIG9mIHRpZ2h0IGVkZ2VzIGFuZCByZXR1cm5zIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gdGhlXG4gKiB0cmVlLlxuICovXG5mdW5jdGlvbiB0aWdodFRyZWUodCwgZykge1xuICBmdW5jdGlvbiBkZnModikge1xuICAgIF8uZm9yRWFjaChnLm5vZGVFZGdlcyh2KSwgZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBlZGdlViA9IGUudixcbiAgICAgICAgdyA9IHYgPT09IGVkZ2VWID8gZS53IDogZWRnZVY7XG4gICAgICBpZiAoIXQuaGFzTm9kZSh3KSAmJiAhc2xhY2soZywgZSkpIHtcbiAgICAgICAgdC5zZXROb2RlKHcsIHt9KTtcbiAgICAgICAgdC5zZXRFZGdlKHYsIHcsIHt9KTtcbiAgICAgICAgZGZzKHcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgXy5mb3JFYWNoKHQubm9kZXMoKSwgZGZzKTtcbiAgcmV0dXJuIHQubm9kZUNvdW50KCk7XG59XG5cbi8qXG4gKiBGaW5kcyB0aGUgZWRnZSB3aXRoIHRoZSBzbWFsbGVzdCBzbGFjayB0aGF0IGlzIGluY2lkZW50IG9uIHRyZWUgYW5kIHJldHVybnNcbiAqIGl0LlxuICovXG5mdW5jdGlvbiBmaW5kTWluU2xhY2tFZGdlKHQsIGcpIHtcbiAgcmV0dXJuIF8ubWluQnkoZy5lZGdlcygpLCBmdW5jdGlvbiAoZSkge1xuICAgIGlmICh0Lmhhc05vZGUoZS52KSAhPT0gdC5oYXNOb2RlKGUudykpIHtcbiAgICAgIHJldHVybiBzbGFjayhnLCBlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzaGlmdFJhbmtzKHQsIGcsIGRlbHRhKSB7XG4gIF8uZm9yRWFjaCh0Lm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgZy5ub2RlKHYpLnJhbmsgKz0gZGVsdGE7XG4gIH0pO1xufVxuIiwKICAgICJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBQcmlvcml0eVF1ZXVlIH0gZnJvbSAnLi4vZGF0YS9wcmlvcml0eS1xdWV1ZS5qcyc7XG5cbmV4cG9ydCB7IGRpamtzdHJhIH07XG5cbnZhciBERUZBVUxUX1dFSUdIVF9GVU5DID0gXy5jb25zdGFudCgxKTtcblxuZnVuY3Rpb24gZGlqa3N0cmEoZywgc291cmNlLCB3ZWlnaHRGbiwgZWRnZUZuKSB7XG4gIHJldHVybiBydW5EaWprc3RyYShcbiAgICBnLFxuICAgIFN0cmluZyhzb3VyY2UpLFxuICAgIHdlaWdodEZuIHx8IERFRkFVTFRfV0VJR0hUX0ZVTkMsXG4gICAgZWRnZUZuIHx8XG4gICAgICBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gZy5vdXRFZGdlcyh2KTtcbiAgICAgIH1cbiAgKTtcbn1cblxuZnVuY3Rpb24gcnVuRGlqa3N0cmEoZywgc291cmNlLCB3ZWlnaHRGbiwgZWRnZUZuKSB7XG4gIHZhciByZXN1bHRzID0ge307XG4gIHZhciBwcSA9IG5ldyBQcmlvcml0eVF1ZXVlKCk7XG4gIHZhciB2LCB2RW50cnk7XG5cbiAgdmFyIHVwZGF0ZU5laWdoYm9ycyA9IGZ1bmN0aW9uIChlZGdlKSB7XG4gICAgdmFyIHcgPSBlZGdlLnYgIT09IHYgPyBlZGdlLnYgOiBlZGdlLnc7XG4gICAgdmFyIHdFbnRyeSA9IHJlc3VsdHNbd107XG4gICAgdmFyIHdlaWdodCA9IHdlaWdodEZuKGVkZ2UpO1xuICAgIHZhciBkaXN0YW5jZSA9IHZFbnRyeS5kaXN0YW5jZSArIHdlaWdodDtcblxuICAgIGlmICh3ZWlnaHQgPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdkaWprc3RyYSBkb2VzIG5vdCBhbGxvdyBuZWdhdGl2ZSBlZGdlIHdlaWdodHMuICcgK1xuICAgICAgICAgICdCYWQgZWRnZTogJyArXG4gICAgICAgICAgZWRnZSArXG4gICAgICAgICAgJyBXZWlnaHQ6ICcgK1xuICAgICAgICAgIHdlaWdodFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZGlzdGFuY2UgPCB3RW50cnkuZGlzdGFuY2UpIHtcbiAgICAgIHdFbnRyeS5kaXN0YW5jZSA9IGRpc3RhbmNlO1xuICAgICAgd0VudHJ5LnByZWRlY2Vzc29yID0gdjtcbiAgICAgIHBxLmRlY3JlYXNlKHcsIGRpc3RhbmNlKTtcbiAgICB9XG4gIH07XG5cbiAgZy5ub2RlcygpLmZvckVhY2goZnVuY3Rpb24gKHYpIHtcbiAgICB2YXIgZGlzdGFuY2UgPSB2ID09PSBzb3VyY2UgPyAwIDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIHJlc3VsdHNbdl0gPSB7IGRpc3RhbmNlOiBkaXN0YW5jZSB9O1xuICAgIHBxLmFkZCh2LCBkaXN0YW5jZSk7XG4gIH0pO1xuXG4gIHdoaWxlIChwcS5zaXplKCkgPiAwKSB7XG4gICAgdiA9IHBxLnJlbW92ZU1pbigpO1xuICAgIHZFbnRyeSA9IHJlc3VsdHNbdl07XG4gICAgaWYgKHZFbnRyeS5kaXN0YW5jZSA9PT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBlZGdlRm4odikuZm9yRWFjaCh1cGRhdGVOZWlnaGJvcnMpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59XG4iLAogICAgImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGRpamtzdHJhIH0gZnJvbSAnLi9kaWprc3RyYS5qcyc7XG5cbmV4cG9ydCB7IGRpamtzdHJhQWxsIH07XG5cbmZ1bmN0aW9uIGRpamtzdHJhQWxsKGcsIHdlaWdodEZ1bmMsIGVkZ2VGdW5jKSB7XG4gIHJldHVybiBfLnRyYW5zZm9ybShcbiAgICBnLm5vZGVzKCksXG4gICAgZnVuY3Rpb24gKGFjYywgdikge1xuICAgICAgYWNjW3ZdID0gZGlqa3N0cmEoZywgdiwgd2VpZ2h0RnVuYywgZWRnZUZ1bmMpO1xuICAgIH0sXG4gICAge31cbiAgKTtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgdGFyamFuIH0gZnJvbSAnLi90YXJqYW4uanMnO1xuXG5leHBvcnQgeyBmaW5kQ3ljbGVzIH07XG5cbmZ1bmN0aW9uIGZpbmRDeWNsZXMoZykge1xuICByZXR1cm4gXy5maWx0ZXIodGFyamFuKGcpLCBmdW5jdGlvbiAoY21wdCkge1xuICAgIHJldHVybiBjbXB0Lmxlbmd0aCA+IDEgfHwgKGNtcHQubGVuZ3RoID09PSAxICYmIGcuaGFzRWRnZShjbXB0WzBdLCBjbXB0WzBdKSk7XG4gIH0pO1xufVxuIiwKICAgICJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCB7IGZsb3lkV2Fyc2hhbGwgfTtcblxudmFyIERFRkFVTFRfV0VJR0hUX0ZVTkMgPSBfLmNvbnN0YW50KDEpO1xuXG5mdW5jdGlvbiBmbG95ZFdhcnNoYWxsKGcsIHdlaWdodEZuLCBlZGdlRm4pIHtcbiAgcmV0dXJuIHJ1bkZsb3lkV2Fyc2hhbGwoXG4gICAgZyxcbiAgICB3ZWlnaHRGbiB8fCBERUZBVUxUX1dFSUdIVF9GVU5DLFxuICAgIGVkZ2VGbiB8fFxuICAgICAgZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIGcub3V0RWRnZXModik7XG4gICAgICB9XG4gICk7XG59XG5cbmZ1bmN0aW9uIHJ1bkZsb3lkV2Fyc2hhbGwoZywgd2VpZ2h0Rm4sIGVkZ2VGbikge1xuICB2YXIgcmVzdWx0cyA9IHt9O1xuICB2YXIgbm9kZXMgPSBnLm5vZGVzKCk7XG5cbiAgbm9kZXMuZm9yRWFjaChmdW5jdGlvbiAodikge1xuICAgIHJlc3VsdHNbdl0gPSB7fTtcbiAgICByZXN1bHRzW3ZdW3ZdID0geyBkaXN0YW5jZTogMCB9O1xuICAgIG5vZGVzLmZvckVhY2goZnVuY3Rpb24gKHcpIHtcbiAgICAgIGlmICh2ICE9PSB3KSB7XG4gICAgICAgIHJlc3VsdHNbdl1bd10gPSB7IGRpc3RhbmNlOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBlZGdlRm4odikuZm9yRWFjaChmdW5jdGlvbiAoZWRnZSkge1xuICAgICAgdmFyIHcgPSBlZGdlLnYgPT09IHYgPyBlZGdlLncgOiBlZGdlLnY7XG4gICAgICB2YXIgZCA9IHdlaWdodEZuKGVkZ2UpO1xuICAgICAgcmVzdWx0c1t2XVt3XSA9IHsgZGlzdGFuY2U6IGQsIHByZWRlY2Vzc29yOiB2IH07XG4gICAgfSk7XG4gIH0pO1xuXG4gIG5vZGVzLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICB2YXIgcm93SyA9IHJlc3VsdHNba107XG4gICAgbm9kZXMuZm9yRWFjaChmdW5jdGlvbiAoaSkge1xuICAgICAgdmFyIHJvd0kgPSByZXN1bHRzW2ldO1xuICAgICAgbm9kZXMuZm9yRWFjaChmdW5jdGlvbiAoaikge1xuICAgICAgICB2YXIgaWsgPSByb3dJW2tdO1xuICAgICAgICB2YXIga2ogPSByb3dLW2pdO1xuICAgICAgICB2YXIgaWogPSByb3dJW2pdO1xuICAgICAgICB2YXIgYWx0RGlzdGFuY2UgPSBpay5kaXN0YW5jZSArIGtqLmRpc3RhbmNlO1xuICAgICAgICBpZiAoYWx0RGlzdGFuY2UgPCBpai5kaXN0YW5jZSkge1xuICAgICAgICAgIGlqLmRpc3RhbmNlID0gYWx0RGlzdGFuY2U7XG4gICAgICAgICAgaWoucHJlZGVjZXNzb3IgPSBrai5wcmVkZWNlc3NvcjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHRzO1xufVxuIiwKICAgICJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCB7IHRvcHNvcnQsIEN5Y2xlRXhjZXB0aW9uIH07XG5cbnRvcHNvcnQuQ3ljbGVFeGNlcHRpb24gPSBDeWNsZUV4Y2VwdGlvbjtcblxuZnVuY3Rpb24gdG9wc29ydChnKSB7XG4gIHZhciB2aXNpdGVkID0ge307XG4gIHZhciBzdGFjayA9IHt9O1xuICB2YXIgcmVzdWx0cyA9IFtdO1xuXG4gIGZ1bmN0aW9uIHZpc2l0KG5vZGUpIHtcbiAgICBpZiAoXy5oYXMoc3RhY2ssIG5vZGUpKSB7XG4gICAgICB0aHJvdyBuZXcgQ3ljbGVFeGNlcHRpb24oKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaGFzKHZpc2l0ZWQsIG5vZGUpKSB7XG4gICAgICBzdGFja1tub2RlXSA9IHRydWU7XG4gICAgICB2aXNpdGVkW25vZGVdID0gdHJ1ZTtcbiAgICAgIF8uZWFjaChnLnByZWRlY2Vzc29ycyhub2RlKSwgdmlzaXQpO1xuICAgICAgZGVsZXRlIHN0YWNrW25vZGVdO1xuICAgICAgcmVzdWx0cy5wdXNoKG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIF8uZWFjaChnLnNpbmtzKCksIHZpc2l0KTtcblxuICBpZiAoXy5zaXplKHZpc2l0ZWQpICE9PSBnLm5vZGVDb3VudCgpKSB7XG4gICAgdGhyb3cgbmV3IEN5Y2xlRXhjZXB0aW9uKCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn1cblxuZnVuY3Rpb24gQ3ljbGVFeGNlcHRpb24oKSB7fVxuQ3ljbGVFeGNlcHRpb24ucHJvdG90eXBlID0gbmV3IEVycm9yKCk7IC8vIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRXJyb3IgdG8gcGFzcyB0ZXN0aW5nXG4iLAogICAgImltcG9ydCB7IHRvcHNvcnQsIEN5Y2xlRXhjZXB0aW9uIH0gZnJvbSAnLi90b3Bzb3J0LmpzJztcblxuZXhwb3J0IHsgaXNBY3ljbGljIH07XG5cbmZ1bmN0aW9uIGlzQWN5Y2xpYyhnKSB7XG4gIHRyeSB7XG4gICAgdG9wc29ydChnKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlIGluc3RhbmNlb2YgQ3ljbGVFeGNlcHRpb24pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgeyBkZnMgfTtcblxuLypcbiAqIEEgaGVscGVyIHRoYXQgcHJlZm9ybXMgYSBwcmUtIG9yIHBvc3Qtb3JkZXIgdHJhdmVyc2FsIG9uIHRoZSBpbnB1dCBncmFwaFxuICogYW5kIHJldHVybnMgdGhlIG5vZGVzIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgdmlzaXRlZC4gSWYgdGhlIGdyYXBoIGlzXG4gKiB1bmRpcmVjdGVkIHRoZW4gdGhpcyBhbGdvcml0aG0gd2lsbCBuYXZpZ2F0ZSB1c2luZyBuZWlnaGJvcnMuIElmIHRoZSBncmFwaFxuICogaXMgZGlyZWN0ZWQgdGhlbiB0aGlzIGFsZ29yaXRobSB3aWxsIG5hdmlnYXRlIHVzaW5nIHN1Y2Nlc3NvcnMuXG4gKlxuICogT3JkZXIgbXVzdCBiZSBvbmUgb2YgXCJwcmVcIiBvciBcInBvc3RcIi5cbiAqL1xuZnVuY3Rpb24gZGZzKGcsIHZzLCBvcmRlcikge1xuICBpZiAoIV8uaXNBcnJheSh2cykpIHtcbiAgICB2cyA9IFt2c107XG4gIH1cblxuICB2YXIgbmF2aWdhdGlvbiA9IChnLmlzRGlyZWN0ZWQoKSA/IGcuc3VjY2Vzc29ycyA6IGcubmVpZ2hib3JzKS5iaW5kKGcpO1xuXG4gIHZhciBhY2MgPSBbXTtcbiAgdmFyIHZpc2l0ZWQgPSB7fTtcbiAgXy5lYWNoKHZzLCBmdW5jdGlvbiAodikge1xuICAgIGlmICghZy5oYXNOb2RlKHYpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyYXBoIGRvZXMgbm90IGhhdmUgbm9kZTogJyArIHYpO1xuICAgIH1cblxuICAgIGRvRGZzKGcsIHYsIG9yZGVyID09PSAncG9zdCcsIHZpc2l0ZWQsIG5hdmlnYXRpb24sIGFjYyk7XG4gIH0pO1xuICByZXR1cm4gYWNjO1xufVxuXG5mdW5jdGlvbiBkb0RmcyhnLCB2LCBwb3N0b3JkZXIsIHZpc2l0ZWQsIG5hdmlnYXRpb24sIGFjYykge1xuICBpZiAoIV8uaGFzKHZpc2l0ZWQsIHYpKSB7XG4gICAgdmlzaXRlZFt2XSA9IHRydWU7XG5cbiAgICBpZiAoIXBvc3RvcmRlcikge1xuICAgICAgYWNjLnB1c2godik7XG4gICAgfVxuICAgIF8uZWFjaChuYXZpZ2F0aW9uKHYpLCBmdW5jdGlvbiAodykge1xuICAgICAgZG9EZnMoZywgdywgcG9zdG9yZGVyLCB2aXNpdGVkLCBuYXZpZ2F0aW9uLCBhY2MpO1xuICAgIH0pO1xuICAgIGlmIChwb3N0b3JkZXIpIHtcbiAgICAgIGFjYy5wdXNoKHYpO1xuICAgIH1cbiAgfVxufVxuIiwKICAgICJpbXBvcnQgeyBkZnMgfSBmcm9tICcuL2Rmcy5qcyc7XG5cbmV4cG9ydCB7IHBvc3RvcmRlciB9O1xuXG5mdW5jdGlvbiBwb3N0b3JkZXIoZywgdnMpIHtcbiAgcmV0dXJuIGRmcyhnLCB2cywgJ3Bvc3QnKTtcbn1cbiIsCiAgICAiaW1wb3J0IHsgZGZzIH0gZnJvbSAnLi9kZnMuanMnO1xuXG5leHBvcnQgeyBwcmVvcmRlciB9O1xuXG5mdW5jdGlvbiBwcmVvcmRlcihnLCB2cykge1xuICByZXR1cm4gZGZzKGcsIHZzLCAncHJlJyk7XG59XG4iLAogICAgImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFByaW9yaXR5UXVldWUgfSBmcm9tICcuLi9kYXRhL3ByaW9yaXR5LXF1ZXVlLmpzJztcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSAnLi4vZ3JhcGguanMnO1xuXG5leHBvcnQgeyBwcmltIH07XG5cbmZ1bmN0aW9uIHByaW0oZywgd2VpZ2h0RnVuYykge1xuICB2YXIgcmVzdWx0ID0gbmV3IEdyYXBoKCk7XG4gIHZhciBwYXJlbnRzID0ge307XG4gIHZhciBwcSA9IG5ldyBQcmlvcml0eVF1ZXVlKCk7XG4gIHZhciB2O1xuXG4gIGZ1bmN0aW9uIHVwZGF0ZU5laWdoYm9ycyhlZGdlKSB7XG4gICAgdmFyIHcgPSBlZGdlLnYgPT09IHYgPyBlZGdlLncgOiBlZGdlLnY7XG4gICAgdmFyIHByaSA9IHBxLnByaW9yaXR5KHcpO1xuICAgIGlmIChwcmkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGVkZ2VXZWlnaHQgPSB3ZWlnaHRGdW5jKGVkZ2UpO1xuICAgICAgaWYgKGVkZ2VXZWlnaHQgPCBwcmkpIHtcbiAgICAgICAgcGFyZW50c1t3XSA9IHY7XG4gICAgICAgIHBxLmRlY3JlYXNlKHcsIGVkZ2VXZWlnaHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChnLm5vZGVDb3VudCgpID09PSAwKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIF8uZWFjaChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgcHEuYWRkKHYsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7XG4gICAgcmVzdWx0LnNldE5vZGUodik7XG4gIH0pO1xuXG4gIC8vIFN0YXJ0IGZyb20gYW4gYXJiaXRyYXJ5IG5vZGVcbiAgcHEuZGVjcmVhc2UoZy5ub2RlcygpWzBdLCAwKTtcblxuICB2YXIgaW5pdCA9IGZhbHNlO1xuICB3aGlsZSAocHEuc2l6ZSgpID4gMCkge1xuICAgIHYgPSBwcS5yZW1vdmVNaW4oKTtcbiAgICBpZiAoXy5oYXMocGFyZW50cywgdikpIHtcbiAgICAgIHJlc3VsdC5zZXRFZGdlKHYsIHBhcmVudHNbdl0pO1xuICAgIH0gZWxzZSBpZiAoaW5pdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnB1dCBncmFwaCBpcyBub3QgY29ubmVjdGVkOiAnICsgZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluaXQgPSB0cnVlO1xuICAgIH1cblxuICAgIGcubm9kZUVkZ2VzKHYpLmZvckVhY2godXBkYXRlTmVpZ2hib3JzKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iLAogICAgImltcG9ydCB7IGNvbXBvbmVudHMgfSBmcm9tICcuL2NvbXBvbmVudHMuanMnO1xuaW1wb3J0IHsgZGlqa3N0cmEgfSBmcm9tICcuL2RpamtzdHJhLmpzJztcbmltcG9ydCB7IGRpamtzdHJhQWxsIH0gZnJvbSAnLi9kaWprc3RyYS1hbGwuanMnO1xuaW1wb3J0IHsgZmluZEN5Y2xlcyB9IGZyb20gJy4vZmluZC1jeWNsZXMuanMnO1xuaW1wb3J0IHsgZmxveWRXYXJzaGFsbCB9IGZyb20gJy4vZmxveWQtd2Fyc2hhbGwuanMnO1xuaW1wb3J0IHsgaXNBY3ljbGljIH0gZnJvbSAnLi9pcy1hY3ljbGljLmpzJztcbmltcG9ydCB7IHBvc3RvcmRlciB9IGZyb20gJy4vcG9zdG9yZGVyLmpzJztcbmltcG9ydCB7IHByZW9yZGVyIH0gZnJvbSAnLi9wcmVvcmRlci5qcyc7XG5pbXBvcnQgeyBwcmltIH0gZnJvbSAnLi9wcmltLmpzJztcbmltcG9ydCB7IHRhcmphbiB9IGZyb20gJy4vdGFyamFuLmpzJztcbmltcG9ydCB7IHRvcHNvcnQgfSBmcm9tICcuL3RvcHNvcnQuanMnO1xuXG5leHBvcnQge1xuICBjb21wb25lbnRzLFxuICBkaWprc3RyYSxcbiAgZGlqa3N0cmFBbGwsXG4gIGZpbmRDeWNsZXMsXG4gIGZsb3lkV2Fyc2hhbGwsXG4gIGlzQWN5Y2xpYyxcbiAgcG9zdG9yZGVyLFxuICBwcmVvcmRlcixcbiAgcHJpbSxcbiAgdGFyamFuLFxuICB0b3Bzb3J0LFxufTtcbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0ICogYXMgYWxnIGZyb20gJy4uLy4uL2dyYXBobGliL2FsZy9pbmRleC5qcyc7XG5pbXBvcnQgeyBzaW1wbGlmeSB9IGZyb20gJy4uL3V0aWwuanMnO1xuaW1wb3J0IHsgZmVhc2libGVUcmVlIH0gZnJvbSAnLi9mZWFzaWJsZS10cmVlLmpzJztcbmltcG9ydCB7IGxvbmdlc3RQYXRoLCBzbGFjayB9IGZyb20gJy4vdXRpbC5qcyc7XG5cbmV4cG9ydCB7IG5ldHdvcmtTaW1wbGV4IH07XG5cbi8vIEV4cG9zZSBzb21lIGludGVybmFscyBmb3IgdGVzdGluZyBwdXJwb3Nlc1xubmV0d29ya1NpbXBsZXguaW5pdExvd0xpbVZhbHVlcyA9IGluaXRMb3dMaW1WYWx1ZXM7XG5uZXR3b3JrU2ltcGxleC5pbml0Q3V0VmFsdWVzID0gaW5pdEN1dFZhbHVlcztcbm5ldHdvcmtTaW1wbGV4LmNhbGNDdXRWYWx1ZSA9IGNhbGNDdXRWYWx1ZTtcbm5ldHdvcmtTaW1wbGV4LmxlYXZlRWRnZSA9IGxlYXZlRWRnZTtcbm5ldHdvcmtTaW1wbGV4LmVudGVyRWRnZSA9IGVudGVyRWRnZTtcbm5ldHdvcmtTaW1wbGV4LmV4Y2hhbmdlRWRnZXMgPSBleGNoYW5nZUVkZ2VzO1xuXG4vKlxuICogVGhlIG5ldHdvcmsgc2ltcGxleCBhbGdvcml0aG0gYXNzaWducyByYW5rcyB0byBlYWNoIG5vZGUgaW4gdGhlIGlucHV0IGdyYXBoXG4gKiBhbmQgaXRlcmF0aXZlbHkgaW1wcm92ZXMgdGhlIHJhbmtpbmcgdG8gcmVkdWNlIHRoZSBsZW5ndGggb2YgZWRnZXMuXG4gKlxuICogUHJlY29uZGl0aW9uczpcbiAqXG4gKiAgICAxLiBUaGUgaW5wdXQgZ3JhcGggbXVzdCBiZSBhIERBRy5cbiAqICAgIDIuIEFsbCBub2RlcyBpbiB0aGUgZ3JhcGggbXVzdCBoYXZlIGFuIG9iamVjdCB2YWx1ZS5cbiAqICAgIDMuIEFsbCBlZGdlcyBpbiB0aGUgZ3JhcGggbXVzdCBoYXZlIFwibWlubGVuXCIgYW5kIFwid2VpZ2h0XCIgYXR0cmlidXRlcy5cbiAqXG4gKiBQb3N0Y29uZGl0aW9uczpcbiAqXG4gKiAgICAxLiBBbGwgbm9kZXMgaW4gdGhlIGdyYXBoIHdpbGwgaGF2ZSBhbiBhc3NpZ25lZCBcInJhbmtcIiBhdHRyaWJ1dGUgdGhhdCBoYXNcbiAqICAgICAgIGJlZW4gb3B0aW1pemVkIGJ5IHRoZSBuZXR3b3JrIHNpbXBsZXggYWxnb3JpdGhtLiBSYW5rcyBzdGFydCBhdCAwLlxuICpcbiAqXG4gKiBBIHJvdWdoIHNrZXRjaCBvZiB0aGUgYWxnb3JpdGhtIGlzIGFzIGZvbGxvd3M6XG4gKlxuICogICAgMS4gQXNzaWduIGluaXRpYWwgcmFua3MgdG8gZWFjaCBub2RlLiBXZSB1c2UgdGhlIGxvbmdlc3QgcGF0aCBhbGdvcml0aG0sXG4gKiAgICAgICB3aGljaCBhc3NpZ25zIHJhbmtzIHRvIHRoZSBsb3dlc3QgcG9zaXRpb24gcG9zc2libGUuIEluIGdlbmVyYWwgdGhpc1xuICogICAgICAgbGVhZHMgdG8gdmVyeSB3aWRlIGJvdHRvbSByYW5rcyBhbmQgdW5uZWNlc3NhcmlseSBsb25nIGVkZ2VzLlxuICogICAgMi4gQ29uc3RydWN0IGEgZmVhc2libGUgdGlnaHQgdHJlZS4gQSB0aWdodCB0cmVlIGlzIG9uZSBzdWNoIHRoYXQgYWxsXG4gKiAgICAgICBlZGdlcyBpbiB0aGUgdHJlZSBoYXZlIG5vIHNsYWNrIChkaWZmZXJlbmNlIGJldHdlZW4gbGVuZ3RoIG9mIGVkZ2VcbiAqICAgICAgIGFuZCBtaW5sZW4gZm9yIHRoZSBlZGdlKS4gVGhpcyBieSBpdHNlbGYgZ3JlYXRseSBpbXByb3ZlcyB0aGUgYXNzaWduZWRcbiAqICAgICAgIHJhbmtpbmdzIGJ5IHNob3J0aW5nIGVkZ2VzLlxuICogICAgMy4gSXRlcmF0aXZlbHkgZmluZCBlZGdlcyB0aGF0IGhhdmUgbmVnYXRpdmUgY3V0IHZhbHVlcy4gR2VuZXJhbGx5IGFcbiAqICAgICAgIG5lZ2F0aXZlIGN1dCB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgZWRnZSBjb3VsZCBiZSByZW1vdmVkIGFuZCBhIG5ld1xuICogICAgICAgdHJlZSBlZGdlIGNvdWxkIGJlIGFkZGVkIHRvIHByb2R1Y2UgYSBtb3JlIGNvbXBhY3QgZ3JhcGguXG4gKlxuICogTXVjaCBvZiB0aGUgYWxnb3JpdGhtcyBoZXJlIGFyZSBkZXJpdmVkIGZyb20gR2Fuc25lciwgZXQgYWwuLCBcIkEgVGVjaG5pcXVlXG4gKiBmb3IgRHJhd2luZyBEaXJlY3RlZCBHcmFwaHMuXCIgVGhlIHN0cnVjdHVyZSBvZiB0aGUgZmlsZSByb3VnaGx5IGZvbGxvd3MgdGhlXG4gKiBzdHJ1Y3R1cmUgb2YgdGhlIG92ZXJhbGwgYWxnb3JpdGhtLlxuICovXG5mdW5jdGlvbiBuZXR3b3JrU2ltcGxleChnKSB7XG4gIGcgPSBzaW1wbGlmeShnKTtcbiAgbG9uZ2VzdFBhdGgoZyk7XG4gIHZhciB0ID0gZmVhc2libGVUcmVlKGcpO1xuICBpbml0TG93TGltVmFsdWVzKHQpO1xuICBpbml0Q3V0VmFsdWVzKHQsIGcpO1xuXG4gIHZhciBlLCBmO1xuICB3aGlsZSAoKGUgPSBsZWF2ZUVkZ2UodCkpKSB7XG4gICAgZiA9IGVudGVyRWRnZSh0LCBnLCBlKTtcbiAgICBleGNoYW5nZUVkZ2VzKHQsIGcsIGUsIGYpO1xuICB9XG59XG5cbi8qXG4gKiBJbml0aWFsaXplcyBjdXQgdmFsdWVzIGZvciBhbGwgZWRnZXMgaW4gdGhlIHRyZWUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDdXRWYWx1ZXModCwgZykge1xuICB2YXIgdnMgPSBhbGcucG9zdG9yZGVyKHQsIHQubm9kZXMoKSk7XG4gIHZzID0gdnMuc2xpY2UoMCwgdnMubGVuZ3RoIC0gMSk7XG4gIF8uZm9yRWFjaCh2cywgZnVuY3Rpb24gKHYpIHtcbiAgICBhc3NpZ25DdXRWYWx1ZSh0LCBnLCB2KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFzc2lnbkN1dFZhbHVlKHQsIGcsIGNoaWxkKSB7XG4gIHZhciBjaGlsZExhYiA9IHQubm9kZShjaGlsZCk7XG4gIHZhciBwYXJlbnQgPSBjaGlsZExhYi5wYXJlbnQ7XG4gIHQuZWRnZShjaGlsZCwgcGFyZW50KS5jdXR2YWx1ZSA9IGNhbGNDdXRWYWx1ZSh0LCBnLCBjaGlsZCk7XG59XG5cbi8qXG4gKiBHaXZlbiB0aGUgdGlnaHQgdHJlZSwgaXRzIGdyYXBoLCBhbmQgYSBjaGlsZCBpbiB0aGUgZ3JhcGggY2FsY3VsYXRlIGFuZFxuICogcmV0dXJuIHRoZSBjdXQgdmFsdWUgZm9yIHRoZSBlZGdlIGJldHdlZW4gdGhlIGNoaWxkIGFuZCBpdHMgcGFyZW50LlxuICovXG5mdW5jdGlvbiBjYWxjQ3V0VmFsdWUodCwgZywgY2hpbGQpIHtcbiAgdmFyIGNoaWxkTGFiID0gdC5ub2RlKGNoaWxkKTtcbiAgdmFyIHBhcmVudCA9IGNoaWxkTGFiLnBhcmVudDtcbiAgLy8gVHJ1ZSBpZiB0aGUgY2hpbGQgaXMgb24gdGhlIHRhaWwgZW5kIG9mIHRoZSBlZGdlIGluIHRoZSBkaXJlY3RlZCBncmFwaFxuICB2YXIgY2hpbGRJc1RhaWwgPSB0cnVlO1xuICAvLyBUaGUgZ3JhcGgncyB2aWV3IG9mIHRoZSB0cmVlIGVkZ2Ugd2UncmUgaW5zcGVjdGluZ1xuICB2YXIgZ3JhcGhFZGdlID0gZy5lZGdlKGNoaWxkLCBwYXJlbnQpO1xuICAvLyBUaGUgYWNjdW11bGF0ZWQgY3V0IHZhbHVlIGZvciB0aGUgZWRnZSBiZXR3ZWVuIHRoaXMgbm9kZSBhbmQgaXRzIHBhcmVudFxuICB2YXIgY3V0VmFsdWUgPSAwO1xuXG4gIGlmICghZ3JhcGhFZGdlKSB7XG4gICAgY2hpbGRJc1RhaWwgPSBmYWxzZTtcbiAgICBncmFwaEVkZ2UgPSBnLmVkZ2UocGFyZW50LCBjaGlsZCk7XG4gIH1cblxuICBjdXRWYWx1ZSA9IGdyYXBoRWRnZS53ZWlnaHQ7XG5cbiAgXy5mb3JFYWNoKGcubm9kZUVkZ2VzKGNoaWxkKSwgZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgaXNPdXRFZGdlID0gZS52ID09PSBjaGlsZCxcbiAgICAgIG90aGVyID0gaXNPdXRFZGdlID8gZS53IDogZS52O1xuXG4gICAgaWYgKG90aGVyICE9PSBwYXJlbnQpIHtcbiAgICAgIHZhciBwb2ludHNUb0hlYWQgPSBpc091dEVkZ2UgPT09IGNoaWxkSXNUYWlsLFxuICAgICAgICBvdGhlcldlaWdodCA9IGcuZWRnZShlKS53ZWlnaHQ7XG5cbiAgICAgIGN1dFZhbHVlICs9IHBvaW50c1RvSGVhZCA/IG90aGVyV2VpZ2h0IDogLW90aGVyV2VpZ2h0O1xuICAgICAgaWYgKGlzVHJlZUVkZ2UodCwgY2hpbGQsIG90aGVyKSkge1xuICAgICAgICB2YXIgb3RoZXJDdXRWYWx1ZSA9IHQuZWRnZShjaGlsZCwgb3RoZXIpLmN1dHZhbHVlO1xuICAgICAgICBjdXRWYWx1ZSArPSBwb2ludHNUb0hlYWQgPyAtb3RoZXJDdXRWYWx1ZSA6IG90aGVyQ3V0VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gY3V0VmFsdWU7XG59XG5cbmZ1bmN0aW9uIGluaXRMb3dMaW1WYWx1ZXModHJlZSwgcm9vdCkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICByb290ID0gdHJlZS5ub2RlcygpWzBdO1xuICB9XG4gIGRmc0Fzc2lnbkxvd0xpbSh0cmVlLCB7fSwgMSwgcm9vdCk7XG59XG5cbmZ1bmN0aW9uIGRmc0Fzc2lnbkxvd0xpbSh0cmVlLCB2aXNpdGVkLCBuZXh0TGltLCB2LCBwYXJlbnQpIHtcbiAgdmFyIGxvdyA9IG5leHRMaW07XG4gIHZhciBsYWJlbCA9IHRyZWUubm9kZSh2KTtcblxuICB2aXNpdGVkW3ZdID0gdHJ1ZTtcbiAgXy5mb3JFYWNoKHRyZWUubmVpZ2hib3JzKHYpLCBmdW5jdGlvbiAodykge1xuICAgIGlmICghXy5oYXModmlzaXRlZCwgdykpIHtcbiAgICAgIG5leHRMaW0gPSBkZnNBc3NpZ25Mb3dMaW0odHJlZSwgdmlzaXRlZCwgbmV4dExpbSwgdywgdik7XG4gICAgfVxuICB9KTtcblxuICBsYWJlbC5sb3cgPSBsb3c7XG4gIGxhYmVsLmxpbSA9IG5leHRMaW0rKztcbiAgaWYgKHBhcmVudCkge1xuICAgIGxhYmVsLnBhcmVudCA9IHBhcmVudDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUT0RPIHNob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSB0aGlzIHdoZW4gd2UgaW5jcmVtZW50YWxseSB1cGRhdGUgbG93IGxpbVxuICAgIGRlbGV0ZSBsYWJlbC5wYXJlbnQ7XG4gIH1cblxuICByZXR1cm4gbmV4dExpbTtcbn1cblxuZnVuY3Rpb24gbGVhdmVFZGdlKHRyZWUpIHtcbiAgcmV0dXJuIF8uZmluZCh0cmVlLmVkZ2VzKCksIGZ1bmN0aW9uIChlKSB7XG4gICAgcmV0dXJuIHRyZWUuZWRnZShlKS5jdXR2YWx1ZSA8IDA7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBlbnRlckVkZ2UodCwgZywgZWRnZSkge1xuICB2YXIgdiA9IGVkZ2UudjtcbiAgdmFyIHcgPSBlZGdlLnc7XG5cbiAgLy8gRm9yIHRoZSByZXN0IG9mIHRoaXMgZnVuY3Rpb24gd2UgYXNzdW1lIHRoYXQgdiBpcyB0aGUgdGFpbCBhbmQgdyBpcyB0aGVcbiAgLy8gaGVhZCwgc28gaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIGVkZ2UgaW4gdGhlIGdyYXBoIHdlIHNob3VsZCBmbGlwIGl0IHRvXG4gIC8vIG1hdGNoIHRoZSBjb3JyZWN0IG9yaWVudGF0aW9uLlxuICBpZiAoIWcuaGFzRWRnZSh2LCB3KSkge1xuICAgIHYgPSBlZGdlLnc7XG4gICAgdyA9IGVkZ2UudjtcbiAgfVxuXG4gIHZhciB2TGFiZWwgPSB0Lm5vZGUodik7XG4gIHZhciB3TGFiZWwgPSB0Lm5vZGUodyk7XG4gIHZhciB0YWlsTGFiZWwgPSB2TGFiZWw7XG4gIHZhciBmbGlwID0gZmFsc2U7XG5cbiAgLy8gSWYgdGhlIHJvb3QgaXMgaW4gdGhlIHRhaWwgb2YgdGhlIGVkZ2UgdGhlbiB3ZSBuZWVkIHRvIGZsaXAgdGhlIGxvZ2ljIHRoYXRcbiAgLy8gY2hlY2tzIGZvciB0aGUgaGVhZCBhbmQgdGFpbCBub2RlcyBpbiB0aGUgY2FuZGlkYXRlcyBmdW5jdGlvbiBiZWxvdy5cbiAgaWYgKHZMYWJlbC5saW0gPiB3TGFiZWwubGltKSB7XG4gICAgdGFpbExhYmVsID0gd0xhYmVsO1xuICAgIGZsaXAgPSB0cnVlO1xuICB9XG5cbiAgdmFyIGNhbmRpZGF0ZXMgPSBfLmZpbHRlcihnLmVkZ2VzKCksIGZ1bmN0aW9uIChlZGdlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGZsaXAgPT09IGlzRGVzY2VuZGFudCh0LCB0Lm5vZGUoZWRnZS52KSwgdGFpbExhYmVsKSAmJlxuICAgICAgZmxpcCAhPT0gaXNEZXNjZW5kYW50KHQsIHQubm9kZShlZGdlLncpLCB0YWlsTGFiZWwpXG4gICAgKTtcbiAgfSk7XG5cbiAgcmV0dXJuIF8ubWluQnkoY2FuZGlkYXRlcywgZnVuY3Rpb24gKGVkZ2UpIHtcbiAgICByZXR1cm4gc2xhY2soZywgZWRnZSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBleGNoYW5nZUVkZ2VzKHQsIGcsIGUsIGYpIHtcbiAgdmFyIHYgPSBlLnY7XG4gIHZhciB3ID0gZS53O1xuICB0LnJlbW92ZUVkZ2Uodiwgdyk7XG4gIHQuc2V0RWRnZShmLnYsIGYudywge30pO1xuICBpbml0TG93TGltVmFsdWVzKHQpO1xuICBpbml0Q3V0VmFsdWVzKHQsIGcpO1xuICB1cGRhdGVSYW5rcyh0LCBnKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlUmFua3ModCwgZykge1xuICB2YXIgcm9vdCA9IF8uZmluZCh0Lm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgcmV0dXJuICFnLm5vZGUodikucGFyZW50O1xuICB9KTtcbiAgdmFyIHZzID0gYWxnLnByZW9yZGVyKHQsIHJvb3QpO1xuICB2cyA9IHZzLnNsaWNlKDEpO1xuICBfLmZvckVhY2godnMsIGZ1bmN0aW9uICh2KSB7XG4gICAgdmFyIHBhcmVudCA9IHQubm9kZSh2KS5wYXJlbnQsXG4gICAgICBlZGdlID0gZy5lZGdlKHYsIHBhcmVudCksXG4gICAgICBmbGlwcGVkID0gZmFsc2U7XG5cbiAgICBpZiAoIWVkZ2UpIHtcbiAgICAgIGVkZ2UgPSBnLmVkZ2UocGFyZW50LCB2KTtcbiAgICAgIGZsaXBwZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGcubm9kZSh2KS5yYW5rID0gZy5ub2RlKHBhcmVudCkucmFuayArIChmbGlwcGVkID8gZWRnZS5taW5sZW4gOiAtZWRnZS5taW5sZW4pO1xuICB9KTtcbn1cblxuLypcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZWRnZSBpcyBpbiB0aGUgdHJlZS5cbiAqL1xuZnVuY3Rpb24gaXNUcmVlRWRnZSh0cmVlLCB1LCB2KSB7XG4gIHJldHVybiB0cmVlLmhhc0VkZ2UodSwgdik7XG59XG5cbi8qXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBub2RlIGlzIGRlc2NlbmRhbnQgb2YgdGhlIHJvb3Qgbm9kZSBwZXIgdGhlXG4gKiBhc3NpZ25lZCBsb3cgYW5kIGxpbSBhdHRyaWJ1dGVzIGluIHRoZSB0cmVlLlxuICovXG5mdW5jdGlvbiBpc0Rlc2NlbmRhbnQodHJlZSwgdkxhYmVsLCByb290TGFiZWwpIHtcbiAgcmV0dXJuIHJvb3RMYWJlbC5sb3cgPD0gdkxhYmVsLmxpbSAmJiB2TGFiZWwubGltIDw9IHJvb3RMYWJlbC5saW07XG59XG4iLAogICAgImltcG9ydCB7IGZlYXNpYmxlVHJlZSB9IGZyb20gJy4vZmVhc2libGUtdHJlZS5qcyc7XG5pbXBvcnQgeyBuZXR3b3JrU2ltcGxleCB9IGZyb20gJy4vbmV0d29yay1zaW1wbGV4LmpzJztcbmltcG9ydCB7IGxvbmdlc3RQYXRoIH0gZnJvbSAnLi91dGlsLmpzJztcblxuZXhwb3J0IHsgcmFuayB9O1xuXG4vKlxuICogQXNzaWducyBhIHJhbmsgdG8gZWFjaCBub2RlIGluIHRoZSBpbnB1dCBncmFwaCB0aGF0IHJlc3BlY3RzIHRoZSBcIm1pbmxlblwiXG4gKiBjb25zdHJhaW50IHNwZWNpZmllZCBvbiBlZGdlcyBiZXR3ZWVuIG5vZGVzLlxuICpcbiAqIFRoaXMgYmFzaWMgc3RydWN0dXJlIGlzIGRlcml2ZWQgZnJvbSBHYW5zbmVyLCBldCBhbC4sIFwiQSBUZWNobmlxdWUgZm9yXG4gKiBEcmF3aW5nIERpcmVjdGVkIEdyYXBocy5cIlxuICpcbiAqIFByZS1jb25kaXRpb25zOlxuICpcbiAqICAgIDEuIEdyYXBoIG11c3QgYmUgYSBjb25uZWN0ZWQgREFHXG4gKiAgICAyLiBHcmFwaCBub2RlcyBtdXN0IGJlIG9iamVjdHNcbiAqICAgIDMuIEdyYXBoIGVkZ2VzIG11c3QgaGF2ZSBcIndlaWdodFwiIGFuZCBcIm1pbmxlblwiIGF0dHJpYnV0ZXNcbiAqXG4gKiBQb3N0LWNvbmRpdGlvbnM6XG4gKlxuICogICAgMS4gR3JhcGggbm9kZXMgd2lsbCBoYXZlIGEgXCJyYW5rXCIgYXR0cmlidXRlIGJhc2VkIG9uIHRoZSByZXN1bHRzIG9mIHRoZVxuICogICAgICAgYWxnb3JpdGhtLiBSYW5rcyBjYW4gc3RhcnQgYXQgYW55IGluZGV4IChpbmNsdWRpbmcgbmVnYXRpdmUpLCB3ZSdsbFxuICogICAgICAgZml4IHRoZW0gdXAgbGF0ZXIuXG4gKi9cbmZ1bmN0aW9uIHJhbmsoZykge1xuICBzd2l0Y2ggKGcuZ3JhcGgoKS5yYW5rZXIpIHtcbiAgICBjYXNlICduZXR3b3JrLXNpbXBsZXgnOlxuICAgICAgbmV0d29ya1NpbXBsZXhSYW5rZXIoZyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0aWdodC10cmVlJzpcbiAgICAgIHRpZ2h0VHJlZVJhbmtlcihnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xvbmdlc3QtcGF0aCc6XG4gICAgICBsb25nZXN0UGF0aFJhbmtlcihnKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBuZXR3b3JrU2ltcGxleFJhbmtlcihnKTtcbiAgfVxufVxuXG4vLyBBIGZhc3QgYW5kIHNpbXBsZSByYW5rZXIsIGJ1dCByZXN1bHRzIGFyZSBmYXIgZnJvbSBvcHRpbWFsLlxudmFyIGxvbmdlc3RQYXRoUmFua2VyID0gbG9uZ2VzdFBhdGg7XG5cbmZ1bmN0aW9uIHRpZ2h0VHJlZVJhbmtlcihnKSB7XG4gIGxvbmdlc3RQYXRoKGcpO1xuICBmZWFzaWJsZVRyZWUoZyk7XG59XG5cbmZ1bmN0aW9uIG5ldHdvcmtTaW1wbGV4UmFua2VyKGcpIHtcbiAgbmV0d29ya1NpbXBsZXgoZyk7XG59XG4iLAogICAgImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsLmpzJztcblxuZXhwb3J0IHsgcnVuLCBjbGVhbnVwIH07XG5cbi8qXG4gKiBBIG5lc3RpbmcgZ3JhcGggY3JlYXRlcyBkdW1teSBub2RlcyBmb3IgdGhlIHRvcHMgYW5kIGJvdHRvbXMgb2Ygc3ViZ3JhcGhzLFxuICogYWRkcyBhcHByb3ByaWF0ZSBlZGdlcyB0byBlbnN1cmUgdGhhdCBhbGwgY2x1c3RlciBub2RlcyBhcmUgcGxhY2VkIGJldHdlZW5cbiAqIHRoZXNlIGJvdW5kcmllcywgYW5kIGVuc3VyZXMgdGhhdCB0aGUgZ3JhcGggaXMgY29ubmVjdGVkLlxuICpcbiAqIEluIGFkZGl0aW9uIHdlIGVuc3VyZSwgdGhyb3VnaCB0aGUgdXNlIG9mIHRoZSBtaW5sZW4gcHJvcGVydHksIHRoYXQgbm9kZXNcbiAqIGFuZCBzdWJncmFwaCBib3JkZXIgbm9kZXMgdG8gbm90IGVuZCB1cCBvbiB0aGUgc2FtZSByYW5rLlxuICpcbiAqIFByZWNvbmRpdGlvbnM6XG4gKlxuICogICAgMS4gSW5wdXQgZ3JhcGggaXMgYSBEQUdcbiAqICAgIDIuIE5vZGVzIGluIHRoZSBpbnB1dCBncmFwaCBoYXMgYSBtaW5sZW4gYXR0cmlidXRlXG4gKlxuICogUG9zdGNvbmRpdGlvbnM6XG4gKlxuICogICAgMS4gSW5wdXQgZ3JhcGggaXMgY29ubmVjdGVkLlxuICogICAgMi4gRHVtbXkgbm9kZXMgYXJlIGFkZGVkIGZvciB0aGUgdG9wcyBhbmQgYm90dG9tcyBvZiBzdWJncmFwaHMuXG4gKiAgICAzLiBUaGUgbWlubGVuIGF0dHJpYnV0ZSBmb3Igbm9kZXMgaXMgYWRqdXN0ZWQgdG8gZW5zdXJlIG5vZGVzIGRvIG5vdFxuICogICAgICAgZ2V0IHBsYWNlZCBvbiB0aGUgc2FtZSByYW5rIGFzIHN1YmdyYXBoIGJvcmRlciBub2Rlcy5cbiAqXG4gKiBUaGUgbmVzdGluZyBncmFwaCBpZGVhIGNvbWVzIGZyb20gU2FuZGVyLCBcIkxheW91dCBvZiBDb21wb3VuZCBEaXJlY3RlZFxuICogR3JhcGhzLlwiXG4gKi9cbmZ1bmN0aW9uIHJ1bihnKSB7XG4gIHZhciByb290ID0gdXRpbC5hZGREdW1teU5vZGUoZywgJ3Jvb3QnLCB7fSwgJ19yb290Jyk7XG4gIHZhciBkZXB0aHMgPSB0cmVlRGVwdGhzKGcpO1xuICB2YXIgaGVpZ2h0ID0gXy5tYXgoXy52YWx1ZXMoZGVwdGhzKSkgLSAxOyAvLyBOb3RlOiBkZXB0aHMgaXMgYW4gT2JqZWN0IG5vdCBhbiBhcnJheVxuICB2YXIgbm9kZVNlcCA9IDIgKiBoZWlnaHQgKyAxO1xuXG4gIGcuZ3JhcGgoKS5uZXN0aW5nUm9vdCA9IHJvb3Q7XG5cbiAgLy8gTXVsdGlwbHkgbWlubGVuIGJ5IG5vZGVTZXAgdG8gYWxpZ24gbm9kZXMgb24gbm9uLWJvcmRlciByYW5rcy5cbiAgXy5mb3JFYWNoKGcuZWRnZXMoKSwgZnVuY3Rpb24gKGUpIHtcbiAgICBnLmVkZ2UoZSkubWlubGVuICo9IG5vZGVTZXA7XG4gIH0pO1xuXG4gIC8vIENhbGN1bGF0ZSBhIHdlaWdodCB0aGF0IGlzIHN1ZmZpY2llbnQgdG8ga2VlcCBzdWJncmFwaHMgdmVydGljYWxseSBjb21wYWN0XG4gIHZhciB3ZWlnaHQgPSBzdW1XZWlnaHRzKGcpICsgMTtcblxuICAvLyBDcmVhdGUgYm9yZGVyIG5vZGVzIGFuZCBsaW5rIHRoZW0gdXBcbiAgXy5mb3JFYWNoKGcuY2hpbGRyZW4oKSwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgZGZzKGcsIHJvb3QsIG5vZGVTZXAsIHdlaWdodCwgaGVpZ2h0LCBkZXB0aHMsIGNoaWxkKTtcbiAgfSk7XG5cbiAgLy8gU2F2ZSB0aGUgbXVsdGlwbGllciBmb3Igbm9kZSBsYXllcnMgZm9yIGxhdGVyIHJlbW92YWwgb2YgZW1wdHkgYm9yZGVyXG4gIC8vIGxheWVycy5cbiAgZy5ncmFwaCgpLm5vZGVSYW5rRmFjdG9yID0gbm9kZVNlcDtcbn1cblxuZnVuY3Rpb24gZGZzKGcsIHJvb3QsIG5vZGVTZXAsIHdlaWdodCwgaGVpZ2h0LCBkZXB0aHMsIHYpIHtcbiAgdmFyIGNoaWxkcmVuID0gZy5jaGlsZHJlbih2KTtcbiAgaWYgKCFjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICBpZiAodiAhPT0gcm9vdCkge1xuICAgICAgZy5zZXRFZGdlKHJvb3QsIHYsIHsgd2VpZ2h0OiAwLCBtaW5sZW46IG5vZGVTZXAgfSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciB0b3AgPSB1dGlsLmFkZEJvcmRlck5vZGUoZywgJ19idCcpO1xuICB2YXIgYm90dG9tID0gdXRpbC5hZGRCb3JkZXJOb2RlKGcsICdfYmInKTtcbiAgdmFyIGxhYmVsID0gZy5ub2RlKHYpO1xuXG4gIGcuc2V0UGFyZW50KHRvcCwgdik7XG4gIGxhYmVsLmJvcmRlclRvcCA9IHRvcDtcbiAgZy5zZXRQYXJlbnQoYm90dG9tLCB2KTtcbiAgbGFiZWwuYm9yZGVyQm90dG9tID0gYm90dG9tO1xuXG4gIF8uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgZGZzKGcsIHJvb3QsIG5vZGVTZXAsIHdlaWdodCwgaGVpZ2h0LCBkZXB0aHMsIGNoaWxkKTtcblxuICAgIHZhciBjaGlsZE5vZGUgPSBnLm5vZGUoY2hpbGQpO1xuICAgIHZhciBjaGlsZFRvcCA9IGNoaWxkTm9kZS5ib3JkZXJUb3AgPyBjaGlsZE5vZGUuYm9yZGVyVG9wIDogY2hpbGQ7XG4gICAgdmFyIGNoaWxkQm90dG9tID0gY2hpbGROb2RlLmJvcmRlckJvdHRvbSA/IGNoaWxkTm9kZS5ib3JkZXJCb3R0b20gOiBjaGlsZDtcbiAgICB2YXIgdGhpc1dlaWdodCA9IGNoaWxkTm9kZS5ib3JkZXJUb3AgPyB3ZWlnaHQgOiAyICogd2VpZ2h0O1xuICAgIHZhciBtaW5sZW4gPSBjaGlsZFRvcCAhPT0gY2hpbGRCb3R0b20gPyAxIDogaGVpZ2h0IC0gZGVwdGhzW3ZdICsgMTtcblxuICAgIGcuc2V0RWRnZSh0b3AsIGNoaWxkVG9wLCB7XG4gICAgICB3ZWlnaHQ6IHRoaXNXZWlnaHQsXG4gICAgICBtaW5sZW46IG1pbmxlbixcbiAgICAgIG5lc3RpbmdFZGdlOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgZy5zZXRFZGdlKGNoaWxkQm90dG9tLCBib3R0b20sIHtcbiAgICAgIHdlaWdodDogdGhpc1dlaWdodCxcbiAgICAgIG1pbmxlbjogbWlubGVuLFxuICAgICAgbmVzdGluZ0VkZ2U6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGlmICghZy5wYXJlbnQodikpIHtcbiAgICBnLnNldEVkZ2Uocm9vdCwgdG9wLCB7IHdlaWdodDogMCwgbWlubGVuOiBoZWlnaHQgKyBkZXB0aHNbdl0gfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJlZURlcHRocyhnKSB7XG4gIHZhciBkZXB0aHMgPSB7fTtcbiAgZnVuY3Rpb24gZGZzKHYsIGRlcHRoKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gZy5jaGlsZHJlbih2KTtcbiAgICBpZiAoY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICBfLmZvckVhY2goY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICBkZnMoY2hpbGQsIGRlcHRoICsgMSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZGVwdGhzW3ZdID0gZGVwdGg7XG4gIH1cbiAgXy5mb3JFYWNoKGcuY2hpbGRyZW4oKSwgZnVuY3Rpb24gKHYpIHtcbiAgICBkZnModiwgMSk7XG4gIH0pO1xuICByZXR1cm4gZGVwdGhzO1xufVxuXG5mdW5jdGlvbiBzdW1XZWlnaHRzKGcpIHtcbiAgcmV0dXJuIF8ucmVkdWNlKFxuICAgIGcuZWRnZXMoKSxcbiAgICBmdW5jdGlvbiAoYWNjLCBlKSB7XG4gICAgICByZXR1cm4gYWNjICsgZy5lZGdlKGUpLndlaWdodDtcbiAgICB9LFxuICAgIDBcbiAgKTtcbn1cblxuZnVuY3Rpb24gY2xlYW51cChnKSB7XG4gIHZhciBncmFwaExhYmVsID0gZy5ncmFwaCgpO1xuICBnLnJlbW92ZU5vZGUoZ3JhcGhMYWJlbC5uZXN0aW5nUm9vdCk7XG4gIGRlbGV0ZSBncmFwaExhYmVsLm5lc3RpbmdSb290O1xuICBfLmZvckVhY2goZy5lZGdlcygpLCBmdW5jdGlvbiAoZSkge1xuICAgIHZhciBlZGdlID0gZy5lZGdlKGUpO1xuICAgIGlmIChlZGdlLm5lc3RpbmdFZGdlKSB7XG4gICAgICBnLnJlbW92ZUVkZ2UoZSk7XG4gICAgfVxuICB9KTtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgeyBhZGRTdWJncmFwaENvbnN0cmFpbnRzIH07XG5cbmZ1bmN0aW9uIGFkZFN1YmdyYXBoQ29uc3RyYWludHMoZywgY2csIHZzKSB7XG4gIHZhciBwcmV2ID0ge30sXG4gICAgcm9vdFByZXY7XG5cbiAgXy5mb3JFYWNoKHZzLCBmdW5jdGlvbiAodikge1xuICAgIHZhciBjaGlsZCA9IGcucGFyZW50KHYpLFxuICAgICAgcGFyZW50LFxuICAgICAgcHJldkNoaWxkO1xuICAgIHdoaWxlIChjaGlsZCkge1xuICAgICAgcGFyZW50ID0gZy5wYXJlbnQoY2hpbGQpO1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICBwcmV2Q2hpbGQgPSBwcmV2W3BhcmVudF07XG4gICAgICAgIHByZXZbcGFyZW50XSA9IGNoaWxkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJldkNoaWxkID0gcm9vdFByZXY7XG4gICAgICAgIHJvb3RQcmV2ID0gY2hpbGQ7XG4gICAgICB9XG4gICAgICBpZiAocHJldkNoaWxkICYmIHByZXZDaGlsZCAhPT0gY2hpbGQpIHtcbiAgICAgICAgY2cuc2V0RWRnZShwcmV2Q2hpbGQsIGNoaWxkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2hpbGQgPSBwYXJlbnQ7XG4gICAgfVxuICB9KTtcblxuICAvKlxuICBmdW5jdGlvbiBkZnModikge1xuICAgIHZhciBjaGlsZHJlbiA9IHYgPyBnLmNoaWxkcmVuKHYpIDogZy5jaGlsZHJlbigpO1xuICAgIGlmIChjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIHZhciBtaW4gPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksXG4gICAgICAgICAgc3ViZ3JhcGhzID0gW107XG4gICAgICBfLmVhY2goY2hpbGRyZW4sIGZ1bmN0aW9uKGNoaWxkKSB7XG4gICAgICAgIHZhciBjaGlsZE1pbiA9IGRmcyhjaGlsZCk7XG4gICAgICAgIGlmIChnLmNoaWxkcmVuKGNoaWxkKS5sZW5ndGgpIHtcbiAgICAgICAgICBzdWJncmFwaHMucHVzaCh7IHY6IGNoaWxkLCBvcmRlcjogY2hpbGRNaW4gfSk7XG4gICAgICAgIH1cbiAgICAgICAgbWluID0gTWF0aC5taW4obWluLCBjaGlsZE1pbik7XG4gICAgICB9KTtcbiAgICAgIF8ucmVkdWNlKF8uc29ydEJ5KHN1YmdyYXBocywgXCJvcmRlclwiKSwgZnVuY3Rpb24ocHJldiwgY3Vycikge1xuICAgICAgICBjZy5zZXRFZGdlKHByZXYudiwgY3Vyci52KTtcbiAgICAgICAgcmV0dXJuIGN1cnI7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIHJldHVybiBnLm5vZGUodikub3JkZXI7XG4gIH1cbiAgZGZzKHVuZGVmaW5lZCk7XG4gICovXG59XG4iLAogICAgImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSAnLi4vLi4vZ3JhcGhsaWIvaW5kZXguanMnO1xuXG5leHBvcnQgeyBidWlsZExheWVyR3JhcGggfTtcblxuLypcbiAqIENvbnN0cnVjdHMgYSBncmFwaCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNvcnQgYSBsYXllciBvZiBub2Rlcy4gVGhlIGdyYXBoIHdpbGxcbiAqIGNvbnRhaW4gYWxsIGJhc2UgYW5kIHN1YmdyYXBoIG5vZGVzIGZyb20gdGhlIHJlcXVlc3QgbGF5ZXIgaW4gdGhlaXIgb3JpZ2luYWxcbiAqIGhpZXJhcmNoeSBhbmQgYW55IGVkZ2VzIHRoYXQgYXJlIGluY2lkZW50IG9uIHRoZXNlIG5vZGVzIGFuZCBhcmUgb2YgdGhlIHR5cGVcbiAqIHJlcXVlc3RlZCBieSB0aGUgXCJyZWxhdGlvbnNoaXBcIiBwYXJhbWV0ZXIuXG4gKlxuICogTm9kZXMgZnJvbSB0aGUgcmVxdWVzdGVkIHJhbmsgdGhhdCBkbyBub3QgaGF2ZSBwYXJlbnRzIGFyZSBhc3NpZ25lZCBhIHJvb3RcbiAqIG5vZGUgaW4gdGhlIG91dHB1dCBncmFwaCwgd2hpY2ggaXMgc2V0IGluIHRoZSByb290IGdyYXBoIGF0dHJpYnV0ZS4gVGhpc1xuICogbWFrZXMgaXQgZWFzeSB0byB3YWxrIHRoZSBoaWVyYXJjaHkgb2YgbW92YWJsZSBub2RlcyBkdXJpbmcgb3JkZXJpbmcuXG4gKlxuICogUHJlLWNvbmRpdGlvbnM6XG4gKlxuICogICAgMS4gSW5wdXQgZ3JhcGggaXMgYSBEQUdcbiAqICAgIDIuIEJhc2Ugbm9kZXMgaW4gdGhlIGlucHV0IGdyYXBoIGhhdmUgYSByYW5rIGF0dHJpYnV0ZVxuICogICAgMy4gU3ViZ3JhcGggbm9kZXMgaW4gdGhlIGlucHV0IGdyYXBoIGhhcyBtaW5SYW5rIGFuZCBtYXhSYW5rIGF0dHJpYnV0ZXNcbiAqICAgIDQuIEVkZ2VzIGhhdmUgYW4gYXNzaWduZWQgd2VpZ2h0XG4gKlxuICogUG9zdC1jb25kaXRpb25zOlxuICpcbiAqICAgIDEuIE91dHB1dCBncmFwaCBoYXMgYWxsIG5vZGVzIGluIHRoZSBtb3ZhYmxlIHJhbmsgd2l0aCBwcmVzZXJ2ZWRcbiAqICAgICAgIGhpZXJhcmNoeS5cbiAqICAgIDIuIFJvb3Qgbm9kZXMgaW4gdGhlIG1vdmFibGUgbGF5ZXIgYXJlIG1hZGUgY2hpbGRyZW4gb2YgdGhlIG5vZGVcbiAqICAgICAgIGluZGljYXRlZCBieSB0aGUgcm9vdCBhdHRyaWJ1dGUgb2YgdGhlIGdyYXBoLlxuICogICAgMy4gTm9uLW1vdmFibGUgbm9kZXMgaW5jaWRlbnQgb24gbW92YWJsZSBub2Rlcywgc2VsZWN0ZWQgYnkgdGhlXG4gKiAgICAgICByZWxhdGlvbnNoaXAgcGFyYW1ldGVyLCBhcmUgaW5jbHVkZWQgaW4gdGhlIGdyYXBoICh3aXRob3V0IGhpZXJhcmNoeSkuXG4gKiAgICA0LiBFZGdlcyBpbmNpZGVudCBvbiBtb3ZhYmxlIG5vZGVzLCBzZWxlY3RlZCBieSB0aGUgcmVsYXRpb25zaGlwXG4gKiAgICAgICBwYXJhbWV0ZXIsIGFyZSBhZGRlZCB0byB0aGUgb3V0cHV0IGdyYXBoLlxuICogICAgNS4gVGhlIHdlaWdodHMgZm9yIGNvcGllZCBlZGdlcyBhcmUgYWdncmVnYXRlZCBhcyBuZWVkLCBzaW5jZSB0aGUgb3V0cHV0XG4gKiAgICAgICBncmFwaCBpcyBub3QgYSBtdWx0aS1ncmFwaC5cbiAqL1xuZnVuY3Rpb24gYnVpbGRMYXllckdyYXBoKGcsIHJhbmssIHJlbGF0aW9uc2hpcCkge1xuICB2YXIgcm9vdCA9IGNyZWF0ZVJvb3ROb2RlKGcpLFxuICAgIHJlc3VsdCA9IG5ldyBHcmFwaCh7IGNvbXBvdW5kOiB0cnVlIH0pXG4gICAgICAuc2V0R3JhcGgoeyByb290OiByb290IH0pXG4gICAgICAuc2V0RGVmYXVsdE5vZGVMYWJlbChmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gZy5ub2RlKHYpO1xuICAgICAgfSk7XG5cbiAgXy5mb3JFYWNoKGcubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICB2YXIgbm9kZSA9IGcubm9kZSh2KSxcbiAgICAgIHBhcmVudCA9IGcucGFyZW50KHYpO1xuXG4gICAgaWYgKG5vZGUucmFuayA9PT0gcmFuayB8fCAobm9kZS5taW5SYW5rIDw9IHJhbmsgJiYgcmFuayA8PSBub2RlLm1heFJhbmspKSB7XG4gICAgICByZXN1bHQuc2V0Tm9kZSh2KTtcbiAgICAgIHJlc3VsdC5zZXRQYXJlbnQodiwgcGFyZW50IHx8IHJvb3QpO1xuXG4gICAgICAvLyBUaGlzIGFzc3VtZXMgd2UgaGF2ZSBvbmx5IHNob3J0IGVkZ2VzIVxuICAgICAgXy5mb3JFYWNoKGdbcmVsYXRpb25zaGlwXSh2KSwgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIHUgPSBlLnYgPT09IHYgPyBlLncgOiBlLnYsXG4gICAgICAgICAgZWRnZSA9IHJlc3VsdC5lZGdlKHUsIHYpLFxuICAgICAgICAgIHdlaWdodCA9ICFfLmlzVW5kZWZpbmVkKGVkZ2UpID8gZWRnZS53ZWlnaHQgOiAwO1xuICAgICAgICByZXN1bHQuc2V0RWRnZSh1LCB2LCB7IHdlaWdodDogZy5lZGdlKGUpLndlaWdodCArIHdlaWdodCB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoXy5oYXMobm9kZSwgJ21pblJhbmsnKSkge1xuICAgICAgICByZXN1bHQuc2V0Tm9kZSh2LCB7XG4gICAgICAgICAgYm9yZGVyTGVmdDogbm9kZS5ib3JkZXJMZWZ0W3JhbmtdLFxuICAgICAgICAgIGJvcmRlclJpZ2h0OiBub2RlLmJvcmRlclJpZ2h0W3JhbmtdLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvb3ROb2RlKGcpIHtcbiAgdmFyIHY7XG4gIHdoaWxlIChnLmhhc05vZGUoKHYgPSBfLnVuaXF1ZUlkKCdfcm9vdCcpKSkpO1xuICByZXR1cm4gdjtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgeyBjcm9zc0NvdW50IH07XG5cbi8qXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBsYXllcmluZyAoYW4gYXJyYXkgb2YgbGF5ZXJzLCBlYWNoIHdpdGggYW4gYXJyYXkgb2ZcbiAqIG9yZGVyZXJkIG5vZGVzKSBhbmQgYSBncmFwaCBhbmQgcmV0dXJucyBhIHdlaWdodGVkIGNyb3NzaW5nIGNvdW50LlxuICpcbiAqIFByZS1jb25kaXRpb25zOlxuICpcbiAqICAgIDEuIElucHV0IGdyYXBoIG11c3QgYmUgc2ltcGxlIChub3QgYSBtdWx0aWdyYXBoKSwgZGlyZWN0ZWQsIGFuZCBpbmNsdWRlXG4gKiAgICAgICBvbmx5IHNpbXBsZSBlZGdlcy5cbiAqICAgIDIuIEVkZ2VzIGluIHRoZSBpbnB1dCBncmFwaCBtdXN0IGhhdmUgYXNzaWduZWQgd2VpZ2h0cy5cbiAqXG4gKiBQb3N0LWNvbmRpdGlvbnM6XG4gKlxuICogICAgMS4gVGhlIGdyYXBoIGFuZCBsYXllcmluZyBtYXRyaXggYXJlIGxlZnQgdW5jaGFuZ2VkLlxuICpcbiAqIFRoaXMgYWxnb3JpdGhtIGlzIGRlcml2ZWQgZnJvbSBCYXJ0aCwgZXQgYWwuLCBcIkJpbGF5ZXIgQ3Jvc3MgQ291bnRpbmcuXCJcbiAqL1xuZnVuY3Rpb24gY3Jvc3NDb3VudChnLCBsYXllcmluZykge1xuICB2YXIgY2MgPSAwO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGxheWVyaW5nLmxlbmd0aDsgKytpKSB7XG4gICAgY2MgKz0gdHdvTGF5ZXJDcm9zc0NvdW50KGcsIGxheWVyaW5nW2kgLSAxXSwgbGF5ZXJpbmdbaV0pO1xuICB9XG4gIHJldHVybiBjYztcbn1cblxuZnVuY3Rpb24gdHdvTGF5ZXJDcm9zc0NvdW50KGcsIG5vcnRoTGF5ZXIsIHNvdXRoTGF5ZXIpIHtcbiAgLy8gU29ydCBhbGwgb2YgdGhlIGVkZ2VzIGJldHdlZW4gdGhlIG5vcnRoIGFuZCBzb3V0aCBsYXllcnMgYnkgdGhlaXIgcG9zaXRpb25cbiAgLy8gaW4gdGhlIG5vcnRoIGxheWVyIGFuZCB0aGVuIHRoZSBzb3V0aC4gTWFwIHRoZXNlIGVkZ2VzIHRvIHRoZSBwb3NpdGlvbiBvZlxuICAvLyB0aGVpciBoZWFkIGluIHRoZSBzb3V0aCBsYXllci5cbiAgdmFyIHNvdXRoUG9zID0gXy56aXBPYmplY3QoXG4gICAgc291dGhMYXllcixcbiAgICBfLm1hcChzb3V0aExheWVyLCBmdW5jdGlvbiAodiwgaSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfSlcbiAgKTtcbiAgdmFyIHNvdXRoRW50cmllcyA9IF8uZmxhdHRlbihcbiAgICBfLm1hcChub3J0aExheWVyLCBmdW5jdGlvbiAodikge1xuICAgICAgcmV0dXJuIF8uc29ydEJ5KFxuICAgICAgICBfLm1hcChnLm91dEVkZ2VzKHYpLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIHJldHVybiB7IHBvczogc291dGhQb3NbZS53XSwgd2VpZ2h0OiBnLmVkZ2UoZSkud2VpZ2h0IH07XG4gICAgICAgIH0pLFxuICAgICAgICAncG9zJ1xuICAgICAgKTtcbiAgICB9KVxuICApO1xuXG4gIC8vIEJ1aWxkIHRoZSBhY2N1bXVsYXRvciB0cmVlXG4gIHZhciBmaXJzdEluZGV4ID0gMTtcbiAgd2hpbGUgKGZpcnN0SW5kZXggPCBzb3V0aExheWVyLmxlbmd0aCkgZmlyc3RJbmRleCA8PD0gMTtcbiAgdmFyIHRyZWVTaXplID0gMiAqIGZpcnN0SW5kZXggLSAxO1xuICBmaXJzdEluZGV4IC09IDE7XG4gIHZhciB0cmVlID0gXy5tYXAobmV3IEFycmF5KHRyZWVTaXplKSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAwO1xuICB9KTtcblxuICAvLyBDYWxjdWxhdGUgdGhlIHdlaWdodGVkIGNyb3NzaW5nc1xuICB2YXIgY2MgPSAwO1xuICBfLmZvckVhY2goXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHNvdXRoRW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uIChlbnRyeSkge1xuICAgICAgdmFyIGluZGV4ID0gZW50cnkucG9zICsgZmlyc3RJbmRleDtcbiAgICAgIHRyZWVbaW5kZXhdICs9IGVudHJ5LndlaWdodDtcbiAgICAgIHZhciB3ZWlnaHRTdW0gPSAwO1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgd2hpbGUgKGluZGV4ID4gMCkge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgIGlmIChpbmRleCAlIDIpIHtcbiAgICAgICAgICB3ZWlnaHRTdW0gKz0gdHJlZVtpbmRleCArIDFdO1xuICAgICAgICB9XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgaW5kZXggPSAoaW5kZXggLSAxKSA+PiAxO1xuICAgICAgICB0cmVlW2luZGV4XSArPSBlbnRyeS53ZWlnaHQ7XG4gICAgICB9XG4gICAgICBjYyArPSBlbnRyeS53ZWlnaHQgKiB3ZWlnaHRTdW07XG4gICAgfSlcbiAgKTtcblxuICByZXR1cm4gY2M7XG59XG4iLAogICAgImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IHsgaW5pdE9yZGVyIH07XG5cbi8qXG4gKiBBc3NpZ25zIGFuIGluaXRpYWwgb3JkZXIgdmFsdWUgZm9yIGVhY2ggbm9kZSBieSBwZXJmb3JtaW5nIGEgREZTIHNlYXJjaFxuICogc3RhcnRpbmcgZnJvbSBub2RlcyBpbiB0aGUgZmlyc3QgcmFuay4gTm9kZXMgYXJlIGFzc2lnbmVkIGFuIG9yZGVyIGluIHRoZWlyXG4gKiByYW5rIGFzIHRoZXkgYXJlIGZpcnN0IHZpc2l0ZWQuXG4gKlxuICogVGhpcyBhcHByb2FjaCBjb21lcyBmcm9tIEdhbnNuZXIsIGV0IGFsLiwgXCJBIFRlY2huaXF1ZSBmb3IgRHJhd2luZyBEaXJlY3RlZFxuICogR3JhcGhzLlwiXG4gKlxuICogUmV0dXJucyBhIGxheWVyaW5nIG1hdHJpeCB3aXRoIGFuIGFycmF5IHBlciBsYXllciBhbmQgZWFjaCBsYXllciBzb3J0ZWQgYnlcbiAqIHRoZSBvcmRlciBvZiBpdHMgbm9kZXMuXG4gKi9cbmZ1bmN0aW9uIGluaXRPcmRlcihnKSB7XG4gIHZhciB2aXNpdGVkID0ge307XG4gIHZhciBzaW1wbGVOb2RlcyA9IF8uZmlsdGVyKGcubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICByZXR1cm4gIWcuY2hpbGRyZW4odikubGVuZ3RoO1xuICB9KTtcbiAgdmFyIG1heFJhbmsgPSBfLm1heChcbiAgICBfLm1hcChzaW1wbGVOb2RlcywgZnVuY3Rpb24gKHYpIHtcbiAgICAgIHJldHVybiBnLm5vZGUodikucmFuaztcbiAgICB9KVxuICApO1xuICB2YXIgbGF5ZXJzID0gXy5tYXAoXy5yYW5nZShtYXhSYW5rICsgMSksIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gW107XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGRmcyh2KSB7XG4gICAgaWYgKF8uaGFzKHZpc2l0ZWQsIHYpKSByZXR1cm47XG4gICAgdmlzaXRlZFt2XSA9IHRydWU7XG4gICAgdmFyIG5vZGUgPSBnLm5vZGUodik7XG4gICAgbGF5ZXJzW25vZGUucmFua10ucHVzaCh2KTtcbiAgICBfLmZvckVhY2goZy5zdWNjZXNzb3JzKHYpLCBkZnMpO1xuICB9XG5cbiAgdmFyIG9yZGVyZWRWcyA9IF8uc29ydEJ5KHNpbXBsZU5vZGVzLCBmdW5jdGlvbiAodikge1xuICAgIHJldHVybiBnLm5vZGUodikucmFuaztcbiAgfSk7XG4gIF8uZm9yRWFjaChvcmRlcmVkVnMsIGRmcyk7XG5cbiAgcmV0dXJuIGxheWVycztcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgeyBiYXJ5Y2VudGVyIH07XG5cbmZ1bmN0aW9uIGJhcnljZW50ZXIoZywgbW92YWJsZSkge1xuICByZXR1cm4gXy5tYXAobW92YWJsZSwgZnVuY3Rpb24gKHYpIHtcbiAgICB2YXIgaW5WID0gZy5pbkVkZ2VzKHYpO1xuICAgIGlmICghaW5WLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHsgdjogdiB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcmVzdWx0ID0gXy5yZWR1Y2UoXG4gICAgICAgIGluVixcbiAgICAgICAgZnVuY3Rpb24gKGFjYywgZSkge1xuICAgICAgICAgIHZhciBlZGdlID0gZy5lZGdlKGUpLFxuICAgICAgICAgICAgbm9kZVUgPSBnLm5vZGUoZS52KTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3VtOiBhY2Muc3VtICsgZWRnZS53ZWlnaHQgKiBub2RlVS5vcmRlcixcbiAgICAgICAgICAgIHdlaWdodDogYWNjLndlaWdodCArIGVkZ2Uud2VpZ2h0LFxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIHsgc3VtOiAwLCB3ZWlnaHQ6IDAgfVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdjogdixcbiAgICAgICAgYmFyeWNlbnRlcjogcmVzdWx0LnN1bSAvIHJlc3VsdC53ZWlnaHQsXG4gICAgICAgIHdlaWdodDogcmVzdWx0LndlaWdodCxcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgeyByZXNvbHZlQ29uZmxpY3RzIH07XG5cbi8qXG4gKiBHaXZlbiBhIGxpc3Qgb2YgZW50cmllcyBvZiB0aGUgZm9ybSB7diwgYmFyeWNlbnRlciwgd2VpZ2h0fSBhbmQgYVxuICogY29uc3RyYWludCBncmFwaCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmVzb2x2ZSBhbnkgY29uZmxpY3RzIGJldHdlZW4gdGhlXG4gKiBjb25zdHJhaW50IGdyYXBoIGFuZCB0aGUgYmFyeWNlbnRlcnMgZm9yIHRoZSBlbnRyaWVzLiBJZiB0aGUgYmFyeWNlbnRlcnMgZm9yXG4gKiBhbiBlbnRyeSB3b3VsZCB2aW9sYXRlIGEgY29uc3RyYWludCBpbiB0aGUgY29uc3RyYWludCBncmFwaCB0aGVuIHdlIGNvYWxlc2NlXG4gKiB0aGUgbm9kZXMgaW4gdGhlIGNvbmZsaWN0IGludG8gYSBuZXcgbm9kZSB0aGF0IHJlc3BlY3RzIHRoZSBjb250cmFpbnQgYW5kXG4gKiBhZ2dyZWdhdGVzIGJhcnljZW50ZXIgYW5kIHdlaWdodCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBUaGlzIGltcGxlbWVudGF0aW9uIGlzIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbiBpbiBGb3JzdGVyLCBcIkEgRmFzdCBhbmRcbiAqIFNpbXBsZSBIdWVyaXN0aWMgZm9yIENvbnN0cmFpbmVkIFR3by1MZXZlbCBDcm9zc2luZyBSZWR1Y3Rpb24sXCIgdGhvdWdodCBpdFxuICogZGlmZmVycyBpbiBzb21lIHNwZWNpZmljIGRldGFpbHMuXG4gKlxuICogUHJlLWNvbmRpdGlvbnM6XG4gKlxuICogICAgMS4gRWFjaCBlbnRyeSBoYXMgdGhlIGZvcm0ge3YsIGJhcnljZW50ZXIsIHdlaWdodH0sIG9yIGlmIHRoZSBub2RlIGhhc1xuICogICAgICAgbm8gYmFyeWNlbnRlciwgdGhlbiB7dn0uXG4gKlxuICogUmV0dXJuczpcbiAqXG4gKiAgICBBIG5ldyBsaXN0IG9mIGVudHJpZXMgb2YgdGhlIGZvcm0ge3ZzLCBpLCBiYXJ5Y2VudGVyLCB3ZWlnaHR9LiBUaGUgbGlzdFxuICogICAgYHZzYCBtYXkgZWl0aGVyIGJlIGEgc2luZ2xldG9uIG9yIGl0IG1heSBiZSBhbiBhZ2dyZWdhdGlvbiBvZiBub2Rlc1xuICogICAgb3JkZXJlZCBzdWNoIHRoYXQgdGhleSBkbyBub3QgdmlvbGF0ZSBjb25zdHJhaW50cyBmcm9tIHRoZSBjb25zdHJhaW50XG4gKiAgICBncmFwaC4gVGhlIHByb3BlcnR5IGBpYCBpcyB0aGUgbG93ZXN0IG9yaWdpbmFsIGluZGV4IG9mIGFueSBvZiB0aGVcbiAqICAgIGVsZW1lbnRzIGluIGB2c2AuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVDb25mbGljdHMoZW50cmllcywgY2cpIHtcbiAgdmFyIG1hcHBlZEVudHJpZXMgPSB7fTtcbiAgXy5mb3JFYWNoKGVudHJpZXMsIGZ1bmN0aW9uIChlbnRyeSwgaSkge1xuICAgIHZhciB0bXAgPSAobWFwcGVkRW50cmllc1tlbnRyeS52XSA9IHtcbiAgICAgIGluZGVncmVlOiAwLFxuICAgICAgaW46IFtdLFxuICAgICAgb3V0OiBbXSxcbiAgICAgIHZzOiBbZW50cnkudl0sXG4gICAgICBpOiBpLFxuICAgIH0pO1xuICAgIGlmICghXy5pc1VuZGVmaW5lZChlbnRyeS5iYXJ5Y2VudGVyKSkge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgdG1wLmJhcnljZW50ZXIgPSBlbnRyeS5iYXJ5Y2VudGVyO1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgdG1wLndlaWdodCA9IGVudHJ5LndlaWdodDtcbiAgICB9XG4gIH0pO1xuXG4gIF8uZm9yRWFjaChjZy5lZGdlcygpLCBmdW5jdGlvbiAoZSkge1xuICAgIHZhciBlbnRyeVYgPSBtYXBwZWRFbnRyaWVzW2Uudl07XG4gICAgdmFyIGVudHJ5VyA9IG1hcHBlZEVudHJpZXNbZS53XTtcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQoZW50cnlWKSAmJiAhXy5pc1VuZGVmaW5lZChlbnRyeVcpKSB7XG4gICAgICBlbnRyeVcuaW5kZWdyZWUrKztcbiAgICAgIGVudHJ5Vi5vdXQucHVzaChtYXBwZWRFbnRyaWVzW2Uud10pO1xuICAgIH1cbiAgfSk7XG5cbiAgdmFyIHNvdXJjZVNldCA9IF8uZmlsdGVyKG1hcHBlZEVudHJpZXMsIGZ1bmN0aW9uIChlbnRyeSkge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICByZXR1cm4gIWVudHJ5LmluZGVncmVlO1xuICB9KTtcblxuICByZXR1cm4gZG9SZXNvbHZlQ29uZmxpY3RzKHNvdXJjZVNldCk7XG59XG5cbmZ1bmN0aW9uIGRvUmVzb2x2ZUNvbmZsaWN0cyhzb3VyY2VTZXQpIHtcbiAgdmFyIGVudHJpZXMgPSBbXTtcblxuICBmdW5jdGlvbiBoYW5kbGVJbih2RW50cnkpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHVFbnRyeSkge1xuICAgICAgaWYgKHVFbnRyeS5tZXJnZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBfLmlzVW5kZWZpbmVkKHVFbnRyeS5iYXJ5Y2VudGVyKSB8fFxuICAgICAgICBfLmlzVW5kZWZpbmVkKHZFbnRyeS5iYXJ5Y2VudGVyKSB8fFxuICAgICAgICB1RW50cnkuYmFyeWNlbnRlciA+PSB2RW50cnkuYmFyeWNlbnRlclxuICAgICAgKSB7XG4gICAgICAgIG1lcmdlRW50cmllcyh2RW50cnksIHVFbnRyeSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZU91dCh2RW50cnkpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHdFbnRyeSkge1xuICAgICAgd0VudHJ5WydpbiddLnB1c2godkVudHJ5KTtcbiAgICAgIGlmICgtLXdFbnRyeS5pbmRlZ3JlZSA9PT0gMCkge1xuICAgICAgICBzb3VyY2VTZXQucHVzaCh3RW50cnkpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICB3aGlsZSAoc291cmNlU2V0Lmxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IHNvdXJjZVNldC5wb3AoKTtcbiAgICBlbnRyaWVzLnB1c2goZW50cnkpO1xuICAgIF8uZm9yRWFjaChlbnRyeVsnaW4nXS5yZXZlcnNlKCksIGhhbmRsZUluKGVudHJ5KSk7XG4gICAgXy5mb3JFYWNoKGVudHJ5Lm91dCwgaGFuZGxlT3V0KGVudHJ5KSk7XG4gIH1cblxuICByZXR1cm4gXy5tYXAoXG4gICAgXy5maWx0ZXIoZW50cmllcywgZnVuY3Rpb24gKGVudHJ5KSB7XG4gICAgICByZXR1cm4gIWVudHJ5Lm1lcmdlZDtcbiAgICB9KSxcbiAgICBmdW5jdGlvbiAoZW50cnkpIHtcbiAgICAgIHJldHVybiBfLnBpY2soZW50cnksIFsndnMnLCAnaScsICdiYXJ5Y2VudGVyJywgJ3dlaWdodCddKTtcbiAgICB9XG4gICk7XG59XG5cbmZ1bmN0aW9uIG1lcmdlRW50cmllcyh0YXJnZXQsIHNvdXJjZSkge1xuICB2YXIgc3VtID0gMDtcbiAgdmFyIHdlaWdodCA9IDA7XG5cbiAgaWYgKHRhcmdldC53ZWlnaHQpIHtcbiAgICBzdW0gKz0gdGFyZ2V0LmJhcnljZW50ZXIgKiB0YXJnZXQud2VpZ2h0O1xuICAgIHdlaWdodCArPSB0YXJnZXQud2VpZ2h0O1xuICB9XG5cbiAgaWYgKHNvdXJjZS53ZWlnaHQpIHtcbiAgICBzdW0gKz0gc291cmNlLmJhcnljZW50ZXIgKiBzb3VyY2Uud2VpZ2h0O1xuICAgIHdlaWdodCArPSBzb3VyY2Uud2VpZ2h0O1xuICB9XG5cbiAgdGFyZ2V0LnZzID0gc291cmNlLnZzLmNvbmNhdCh0YXJnZXQudnMpO1xuICB0YXJnZXQuYmFyeWNlbnRlciA9IHN1bSAvIHdlaWdodDtcbiAgdGFyZ2V0LndlaWdodCA9IHdlaWdodDtcbiAgdGFyZ2V0LmkgPSBNYXRoLm1pbihzb3VyY2UuaSwgdGFyZ2V0LmkpO1xuICBzb3VyY2UubWVyZ2VkID0gdHJ1ZTtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuLi91dGlsLmpzJztcblxuZXhwb3J0IHsgc29ydCB9O1xuXG5mdW5jdGlvbiBzb3J0KGVudHJpZXMsIGJpYXNSaWdodCkge1xuICB2YXIgcGFydHMgPSB1dGlsLnBhcnRpdGlvbihlbnRyaWVzLCBmdW5jdGlvbiAoZW50cnkpIHtcbiAgICByZXR1cm4gXy5oYXMoZW50cnksICdiYXJ5Y2VudGVyJyk7XG4gIH0pO1xuICB2YXIgc29ydGFibGUgPSBwYXJ0cy5saHMsXG4gICAgdW5zb3J0YWJsZSA9IF8uc29ydEJ5KHBhcnRzLnJocywgZnVuY3Rpb24gKGVudHJ5KSB7XG4gICAgICByZXR1cm4gLWVudHJ5Lmk7XG4gICAgfSksXG4gICAgdnMgPSBbXSxcbiAgICBzdW0gPSAwLFxuICAgIHdlaWdodCA9IDAsXG4gICAgdnNJbmRleCA9IDA7XG5cbiAgc29ydGFibGUuc29ydChjb21wYXJlV2l0aEJpYXMoISFiaWFzUmlnaHQpKTtcblxuICB2c0luZGV4ID0gY29uc3VtZVVuc29ydGFibGUodnMsIHVuc29ydGFibGUsIHZzSW5kZXgpO1xuXG4gIF8uZm9yRWFjaChzb3J0YWJsZSwgZnVuY3Rpb24gKGVudHJ5KSB7XG4gICAgdnNJbmRleCArPSBlbnRyeS52cy5sZW5ndGg7XG4gICAgdnMucHVzaChlbnRyeS52cyk7XG4gICAgc3VtICs9IGVudHJ5LmJhcnljZW50ZXIgKiBlbnRyeS53ZWlnaHQ7XG4gICAgd2VpZ2h0ICs9IGVudHJ5LndlaWdodDtcbiAgICB2c0luZGV4ID0gY29uc3VtZVVuc29ydGFibGUodnMsIHVuc29ydGFibGUsIHZzSW5kZXgpO1xuICB9KTtcblxuICB2YXIgcmVzdWx0ID0geyB2czogXy5mbGF0dGVuKHZzKSB9O1xuICBpZiAod2VpZ2h0KSB7XG4gICAgcmVzdWx0LmJhcnljZW50ZXIgPSBzdW0gLyB3ZWlnaHQ7XG4gICAgcmVzdWx0LndlaWdodCA9IHdlaWdodDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBjb25zdW1lVW5zb3J0YWJsZSh2cywgdW5zb3J0YWJsZSwgaW5kZXgpIHtcbiAgdmFyIGxhc3Q7XG4gIHdoaWxlICh1bnNvcnRhYmxlLmxlbmd0aCAmJiAobGFzdCA9IF8ubGFzdCh1bnNvcnRhYmxlKSkuaSA8PSBpbmRleCkge1xuICAgIHVuc29ydGFibGUucG9wKCk7XG4gICAgdnMucHVzaChsYXN0LnZzKTtcbiAgICBpbmRleCsrO1xuICB9XG4gIHJldHVybiBpbmRleDtcbn1cblxuZnVuY3Rpb24gY29tcGFyZVdpdGhCaWFzKGJpYXMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChlbnRyeVYsIGVudHJ5Vykge1xuICAgIGlmIChlbnRyeVYuYmFyeWNlbnRlciA8IGVudHJ5Vy5iYXJ5Y2VudGVyKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfSBlbHNlIGlmIChlbnRyeVYuYmFyeWNlbnRlciA+IGVudHJ5Vy5iYXJ5Y2VudGVyKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gIWJpYXMgPyBlbnRyeVYuaSAtIGVudHJ5Vy5pIDogZW50cnlXLmkgLSBlbnRyeVYuaTtcbiAgfTtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgYmFyeWNlbnRlciB9IGZyb20gJy4vYmFyeWNlbnRlci5qcyc7XG5pbXBvcnQgeyByZXNvbHZlQ29uZmxpY3RzIH0gZnJvbSAnLi9yZXNvbHZlLWNvbmZsaWN0cy5qcyc7XG5pbXBvcnQgeyBzb3J0IH0gZnJvbSAnLi9zb3J0LmpzJztcblxuZXhwb3J0IHsgc29ydFN1YmdyYXBoIH07XG5cbmZ1bmN0aW9uIHNvcnRTdWJncmFwaChnLCB2LCBjZywgYmlhc1JpZ2h0KSB7XG4gIHZhciBtb3ZhYmxlID0gZy5jaGlsZHJlbih2KTtcbiAgdmFyIG5vZGUgPSBnLm5vZGUodik7XG4gIHZhciBibCA9IG5vZGUgPyBub2RlLmJvcmRlckxlZnQgOiB1bmRlZmluZWQ7XG4gIHZhciBiciA9IG5vZGUgPyBub2RlLmJvcmRlclJpZ2h0IDogdW5kZWZpbmVkO1xuICB2YXIgc3ViZ3JhcGhzID0ge307XG5cbiAgaWYgKGJsKSB7XG4gICAgbW92YWJsZSA9IF8uZmlsdGVyKG1vdmFibGUsIGZ1bmN0aW9uICh3KSB7XG4gICAgICByZXR1cm4gdyAhPT0gYmwgJiYgdyAhPT0gYnI7XG4gICAgfSk7XG4gIH1cblxuICB2YXIgYmFyeWNlbnRlcnMgPSBiYXJ5Y2VudGVyKGcsIG1vdmFibGUpO1xuICBfLmZvckVhY2goYmFyeWNlbnRlcnMsIGZ1bmN0aW9uIChlbnRyeSkge1xuICAgIGlmIChnLmNoaWxkcmVuKGVudHJ5LnYpLmxlbmd0aCkge1xuICAgICAgdmFyIHN1YmdyYXBoUmVzdWx0ID0gc29ydFN1YmdyYXBoKGcsIGVudHJ5LnYsIGNnLCBiaWFzUmlnaHQpO1xuICAgICAgc3ViZ3JhcGhzW2VudHJ5LnZdID0gc3ViZ3JhcGhSZXN1bHQ7XG4gICAgICBpZiAoXy5oYXMoc3ViZ3JhcGhSZXN1bHQsICdiYXJ5Y2VudGVyJykpIHtcbiAgICAgICAgbWVyZ2VCYXJ5Y2VudGVycyhlbnRyeSwgc3ViZ3JhcGhSZXN1bHQpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgdmFyIGVudHJpZXMgPSByZXNvbHZlQ29uZmxpY3RzKGJhcnljZW50ZXJzLCBjZyk7XG4gIGV4cGFuZFN1YmdyYXBocyhlbnRyaWVzLCBzdWJncmFwaHMpO1xuXG4gIHZhciByZXN1bHQgPSBzb3J0KGVudHJpZXMsIGJpYXNSaWdodCk7XG5cbiAgaWYgKGJsKSB7XG4gICAgcmVzdWx0LnZzID0gXy5mbGF0dGVuKFtibCwgcmVzdWx0LnZzLCBicl0pO1xuICAgIGlmIChnLnByZWRlY2Vzc29ycyhibCkubGVuZ3RoKSB7XG4gICAgICB2YXIgYmxQcmVkID0gZy5ub2RlKGcucHJlZGVjZXNzb3JzKGJsKVswXSksXG4gICAgICAgIGJyUHJlZCA9IGcubm9kZShnLnByZWRlY2Vzc29ycyhicilbMF0pO1xuICAgICAgaWYgKCFfLmhhcyhyZXN1bHQsICdiYXJ5Y2VudGVyJykpIHtcbiAgICAgICAgcmVzdWx0LmJhcnljZW50ZXIgPSAwO1xuICAgICAgICByZXN1bHQud2VpZ2h0ID0gMDtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5iYXJ5Y2VudGVyID1cbiAgICAgICAgKHJlc3VsdC5iYXJ5Y2VudGVyICogcmVzdWx0LndlaWdodCArIGJsUHJlZC5vcmRlciArIGJyUHJlZC5vcmRlcikgLyAocmVzdWx0LndlaWdodCArIDIpO1xuICAgICAgcmVzdWx0LndlaWdodCArPSAyO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGV4cGFuZFN1YmdyYXBocyhlbnRyaWVzLCBzdWJncmFwaHMpIHtcbiAgXy5mb3JFYWNoKGVudHJpZXMsIGZ1bmN0aW9uIChlbnRyeSkge1xuICAgIGVudHJ5LnZzID0gXy5mbGF0dGVuKFxuICAgICAgZW50cnkudnMubWFwKGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIGlmIChzdWJncmFwaHNbdl0pIHtcbiAgICAgICAgICByZXR1cm4gc3ViZ3JhcGhzW3ZdLnZzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfSlcbiAgICApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWVyZ2VCYXJ5Y2VudGVycyh0YXJnZXQsIG90aGVyKSB7XG4gIGlmICghXy5pc1VuZGVmaW5lZCh0YXJnZXQuYmFyeWNlbnRlcikpIHtcbiAgICB0YXJnZXQuYmFyeWNlbnRlciA9XG4gICAgICAodGFyZ2V0LmJhcnljZW50ZXIgKiB0YXJnZXQud2VpZ2h0ICsgb3RoZXIuYmFyeWNlbnRlciAqIG90aGVyLndlaWdodCkgL1xuICAgICAgKHRhcmdldC53ZWlnaHQgKyBvdGhlci53ZWlnaHQpO1xuICAgIHRhcmdldC53ZWlnaHQgKz0gb3RoZXIud2VpZ2h0O1xuICB9IGVsc2Uge1xuICAgIHRhcmdldC5iYXJ5Y2VudGVyID0gb3RoZXIuYmFyeWNlbnRlcjtcbiAgICB0YXJnZXQud2VpZ2h0ID0gb3RoZXIud2VpZ2h0O1xuICB9XG59XG4iLAogICAgImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSAnLi4vLi4vZ3JhcGhsaWIvaW5kZXguanMnO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuLi91dGlsLmpzJztcbmltcG9ydCB7IGFkZFN1YmdyYXBoQ29uc3RyYWludHMgfSBmcm9tICcuL2FkZC1zdWJncmFwaC1jb25zdHJhaW50cy5qcyc7XG5pbXBvcnQgeyBidWlsZExheWVyR3JhcGggfSBmcm9tICcuL2J1aWxkLWxheWVyLWdyYXBoLmpzJztcbmltcG9ydCB7IGNyb3NzQ291bnQgfSBmcm9tICcuL2Nyb3NzLWNvdW50LmpzJztcbmltcG9ydCB7IGluaXRPcmRlciB9IGZyb20gJy4vaW5pdC1vcmRlci5qcyc7XG5pbXBvcnQgeyBzb3J0U3ViZ3JhcGggfSBmcm9tICcuL3NvcnQtc3ViZ3JhcGguanMnO1xuXG5leHBvcnQgeyBvcmRlciB9O1xuXG4vKlxuICogQXBwbGllcyBoZXVyaXN0aWNzIHRvIG1pbmltaXplIGVkZ2UgY3Jvc3NpbmdzIGluIHRoZSBncmFwaCBhbmQgc2V0cyB0aGUgYmVzdFxuICogb3JkZXIgc29sdXRpb24gYXMgYW4gb3JkZXIgYXR0cmlidXRlIG9uIGVhY2ggbm9kZS5cbiAqXG4gKiBQcmUtY29uZGl0aW9uczpcbiAqXG4gKiAgICAxLiBHcmFwaCBtdXN0IGJlIERBR1xuICogICAgMi4gR3JhcGggbm9kZXMgbXVzdCBiZSBvYmplY3RzIHdpdGggYSBcInJhbmtcIiBhdHRyaWJ1dGVcbiAqICAgIDMuIEdyYXBoIGVkZ2VzIG11c3QgaGF2ZSB0aGUgXCJ3ZWlnaHRcIiBhdHRyaWJ1dGVcbiAqXG4gKiBQb3N0LWNvbmRpdGlvbnM6XG4gKlxuICogICAgMS4gR3JhcGggbm9kZXMgd2lsbCBoYXZlIGFuIFwib3JkZXJcIiBhdHRyaWJ1dGUgYmFzZWQgb24gdGhlIHJlc3VsdHMgb2YgdGhlXG4gKiAgICAgICBhbGdvcml0aG0uXG4gKi9cbmZ1bmN0aW9uIG9yZGVyKGcpIHtcbiAgdmFyIG1heFJhbmsgPSB1dGlsLm1heFJhbmsoZyksXG4gICAgZG93bkxheWVyR3JhcGhzID0gYnVpbGRMYXllckdyYXBocyhnLCBfLnJhbmdlKDEsIG1heFJhbmsgKyAxKSwgJ2luRWRnZXMnKSxcbiAgICB1cExheWVyR3JhcGhzID0gYnVpbGRMYXllckdyYXBocyhnLCBfLnJhbmdlKG1heFJhbmsgLSAxLCAtMSwgLTEpLCAnb3V0RWRnZXMnKTtcblxuICB2YXIgbGF5ZXJpbmcgPSBpbml0T3JkZXIoZyk7XG4gIGFzc2lnbk9yZGVyKGcsIGxheWVyaW5nKTtcblxuICB2YXIgYmVzdENDID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFxuICAgIGJlc3Q7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGxhc3RCZXN0ID0gMDsgbGFzdEJlc3QgPCA0OyArK2ksICsrbGFzdEJlc3QpIHtcbiAgICBzd2VlcExheWVyR3JhcGhzKGkgJSAyID8gZG93bkxheWVyR3JhcGhzIDogdXBMYXllckdyYXBocywgaSAlIDQgPj0gMik7XG5cbiAgICBsYXllcmluZyA9IHV0aWwuYnVpbGRMYXllck1hdHJpeChnKTtcbiAgICB2YXIgY2MgPSBjcm9zc0NvdW50KGcsIGxheWVyaW5nKTtcbiAgICBpZiAoY2MgPCBiZXN0Q0MpIHtcbiAgICAgIGxhc3RCZXN0ID0gMDtcbiAgICAgIGJlc3QgPSBfLmNsb25lRGVlcChsYXllcmluZyk7XG4gICAgICBiZXN0Q0MgPSBjYztcbiAgICB9XG4gIH1cblxuICBhc3NpZ25PcmRlcihnLCBiZXN0KTtcbn1cblxuZnVuY3Rpb24gYnVpbGRMYXllckdyYXBocyhnLCByYW5rcywgcmVsYXRpb25zaGlwKSB7XG4gIHJldHVybiBfLm1hcChyYW5rcywgZnVuY3Rpb24gKHJhbmspIHtcbiAgICByZXR1cm4gYnVpbGRMYXllckdyYXBoKGcsIHJhbmssIHJlbGF0aW9uc2hpcCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzd2VlcExheWVyR3JhcGhzKGxheWVyR3JhcGhzLCBiaWFzUmlnaHQpIHtcbiAgdmFyIGNnID0gbmV3IEdyYXBoKCk7XG4gIF8uZm9yRWFjaChsYXllckdyYXBocywgZnVuY3Rpb24gKGxnKSB7XG4gICAgdmFyIHJvb3QgPSBsZy5ncmFwaCgpLnJvb3Q7XG4gICAgdmFyIHNvcnRlZCA9IHNvcnRTdWJncmFwaChsZywgcm9vdCwgY2csIGJpYXNSaWdodCk7XG4gICAgXy5mb3JFYWNoKHNvcnRlZC52cywgZnVuY3Rpb24gKHYsIGkpIHtcbiAgICAgIGxnLm5vZGUodikub3JkZXIgPSBpO1xuICAgIH0pO1xuICAgIGFkZFN1YmdyYXBoQ29uc3RyYWludHMobGcsIGNnLCBzb3J0ZWQudnMpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYXNzaWduT3JkZXIoZywgbGF5ZXJpbmcpIHtcbiAgXy5mb3JFYWNoKGxheWVyaW5nLCBmdW5jdGlvbiAobGF5ZXIpIHtcbiAgICBfLmZvckVhY2gobGF5ZXIsIGZ1bmN0aW9uICh2LCBpKSB7XG4gICAgICBnLm5vZGUodikub3JkZXIgPSBpO1xuICAgIH0pO1xuICB9KTtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgeyBwYXJlbnREdW1teUNoYWlucyB9O1xuXG5mdW5jdGlvbiBwYXJlbnREdW1teUNoYWlucyhnKSB7XG4gIHZhciBwb3N0b3JkZXJOdW1zID0gcG9zdG9yZGVyKGcpO1xuXG4gIF8uZm9yRWFjaChnLmdyYXBoKCkuZHVtbXlDaGFpbnMsIGZ1bmN0aW9uICh2KSB7XG4gICAgdmFyIG5vZGUgPSBnLm5vZGUodik7XG4gICAgdmFyIGVkZ2VPYmogPSBub2RlLmVkZ2VPYmo7XG4gICAgdmFyIHBhdGhEYXRhID0gZmluZFBhdGgoZywgcG9zdG9yZGVyTnVtcywgZWRnZU9iai52LCBlZGdlT2JqLncpO1xuICAgIHZhciBwYXRoID0gcGF0aERhdGEucGF0aDtcbiAgICB2YXIgbGNhID0gcGF0aERhdGEubGNhO1xuICAgIHZhciBwYXRoSWR4ID0gMDtcbiAgICB2YXIgcGF0aFYgPSBwYXRoW3BhdGhJZHhdO1xuICAgIHZhciBhc2NlbmRpbmcgPSB0cnVlO1xuXG4gICAgd2hpbGUgKHYgIT09IGVkZ2VPYmoudykge1xuICAgICAgbm9kZSA9IGcubm9kZSh2KTtcblxuICAgICAgaWYgKGFzY2VuZGluZykge1xuICAgICAgICB3aGlsZSAoKHBhdGhWID0gcGF0aFtwYXRoSWR4XSkgIT09IGxjYSAmJiBnLm5vZGUocGF0aFYpLm1heFJhbmsgPCBub2RlLnJhbmspIHtcbiAgICAgICAgICBwYXRoSWR4Kys7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGF0aFYgPT09IGxjYSkge1xuICAgICAgICAgIGFzY2VuZGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghYXNjZW5kaW5nKSB7XG4gICAgICAgIHdoaWxlIChcbiAgICAgICAgICBwYXRoSWR4IDwgcGF0aC5sZW5ndGggLSAxICYmXG4gICAgICAgICAgZy5ub2RlKChwYXRoViA9IHBhdGhbcGF0aElkeCArIDFdKSkubWluUmFuayA8PSBub2RlLnJhbmtcbiAgICAgICAgKSB7XG4gICAgICAgICAgcGF0aElkeCsrO1xuICAgICAgICB9XG4gICAgICAgIHBhdGhWID0gcGF0aFtwYXRoSWR4XTtcbiAgICAgIH1cblxuICAgICAgZy5zZXRQYXJlbnQodiwgcGF0aFYpO1xuICAgICAgdiA9IGcuc3VjY2Vzc29ycyh2KVswXTtcbiAgICB9XG4gIH0pO1xufVxuXG4vLyBGaW5kIGEgcGF0aCBmcm9tIHYgdG8gdyB0aHJvdWdoIHRoZSBsb3dlc3QgY29tbW9uIGFuY2VzdG9yIChMQ0EpLiBSZXR1cm4gdGhlXG4vLyBmdWxsIHBhdGggYW5kIHRoZSBMQ0EuXG5mdW5jdGlvbiBmaW5kUGF0aChnLCBwb3N0b3JkZXJOdW1zLCB2LCB3KSB7XG4gIHZhciB2UGF0aCA9IFtdO1xuICB2YXIgd1BhdGggPSBbXTtcbiAgdmFyIGxvdyA9IE1hdGgubWluKHBvc3RvcmRlck51bXNbdl0ubG93LCBwb3N0b3JkZXJOdW1zW3ddLmxvdyk7XG4gIHZhciBsaW0gPSBNYXRoLm1heChwb3N0b3JkZXJOdW1zW3ZdLmxpbSwgcG9zdG9yZGVyTnVtc1t3XS5saW0pO1xuICB2YXIgcGFyZW50O1xuICB2YXIgbGNhO1xuXG4gIC8vIFRyYXZlcnNlIHVwIGZyb20gdiB0byBmaW5kIHRoZSBMQ0FcbiAgcGFyZW50ID0gdjtcbiAgZG8ge1xuICAgIHBhcmVudCA9IGcucGFyZW50KHBhcmVudCk7XG4gICAgdlBhdGgucHVzaChwYXJlbnQpO1xuICB9IHdoaWxlIChwYXJlbnQgJiYgKHBvc3RvcmRlck51bXNbcGFyZW50XS5sb3cgPiBsb3cgfHwgbGltID4gcG9zdG9yZGVyTnVtc1twYXJlbnRdLmxpbSkpO1xuICBsY2EgPSBwYXJlbnQ7XG5cbiAgLy8gVHJhdmVyc2UgZnJvbSB3IHRvIExDQVxuICBwYXJlbnQgPSB3O1xuICB3aGlsZSAoKHBhcmVudCA9IGcucGFyZW50KHBhcmVudCkpICE9PSBsY2EpIHtcbiAgICB3UGF0aC5wdXNoKHBhcmVudCk7XG4gIH1cblxuICByZXR1cm4geyBwYXRoOiB2UGF0aC5jb25jYXQod1BhdGgucmV2ZXJzZSgpKSwgbGNhOiBsY2EgfTtcbn1cblxuZnVuY3Rpb24gcG9zdG9yZGVyKGcpIHtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuICB2YXIgbGltID0gMDtcblxuICBmdW5jdGlvbiBkZnModikge1xuICAgIHZhciBsb3cgPSBsaW07XG4gICAgXy5mb3JFYWNoKGcuY2hpbGRyZW4odiksIGRmcyk7XG4gICAgcmVzdWx0W3ZdID0geyBsb3c6IGxvdywgbGltOiBsaW0rKyB9O1xuICB9XG4gIF8uZm9yRWFjaChnLmNoaWxkcmVuKCksIGRmcyk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgR3JhcGggfSBmcm9tICcuLi8uLi9ncmFwaGxpYi9pbmRleC5qcyc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4uL3V0aWwuanMnO1xuXG4vKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgY29vcmRpbmF0ZSBhc3NpZ25tZW50IGJhc2VkIG9uIEJyYW5kZXMgYW5kIEvDtnBmLCBcIkZhc3RcbiAqIGFuZCBTaW1wbGUgSG9yaXpvbnRhbCBDb29yZGluYXRlIEFzc2lnbm1lbnQuXCJcbiAqL1xuXG5leHBvcnQge1xuICBwb3NpdGlvblgsXG4gIGZpbmRUeXBlMUNvbmZsaWN0cyxcbiAgZmluZFR5cGUyQ29uZmxpY3RzLFxuICBhZGRDb25mbGljdCxcbiAgaGFzQ29uZmxpY3QsXG4gIHZlcnRpY2FsQWxpZ25tZW50LFxuICBob3Jpem9udGFsQ29tcGFjdGlvbixcbiAgYWxpZ25Db29yZGluYXRlcyxcbiAgZmluZFNtYWxsZXN0V2lkdGhBbGlnbm1lbnQsXG4gIGJhbGFuY2UsXG59O1xuXG4vKlxuICogTWFya3MgYWxsIGVkZ2VzIGluIHRoZSBncmFwaCB3aXRoIGEgdHlwZS0xIGNvbmZsaWN0IHdpdGggdGhlIFwidHlwZTFDb25mbGljdFwiXG4gKiBwcm9wZXJ0eS4gQSB0eXBlLTEgY29uZmxpY3QgaXMgb25lIHdoZXJlIGEgbm9uLWlubmVyIHNlZ21lbnQgY3Jvc3NlcyBhblxuICogaW5uZXIgc2VnbWVudC4gQW4gaW5uZXIgc2VnbWVudCBpcyBhbiBlZGdlIHdpdGggYm90aCBpbmNpZGVudCBub2RlcyBtYXJrZWRcbiAqIHdpdGggdGhlIFwiZHVtbXlcIiBwcm9wZXJ0eS5cbiAqXG4gKiBUaGlzIGFsZ29yaXRobSBzY2FucyBsYXllciBieSBsYXllciwgc3RhcnRpbmcgd2l0aCB0aGUgc2Vjb25kLCBmb3IgdHlwZS0xXG4gKiBjb25mbGljdHMgYmV0d2VlbiB0aGUgY3VycmVudCBsYXllciBhbmQgdGhlIHByZXZpb3VzIGxheWVyLiBGb3IgZWFjaCBsYXllclxuICogaXQgc2NhbnMgdGhlIG5vZGVzIGZyb20gbGVmdCB0byByaWdodCB1bnRpbCBpdCByZWFjaGVzIG9uZSB0aGF0IGlzIGluY2lkZW50XG4gKiBvbiBhbiBpbm5lciBzZWdtZW50LiBJdCB0aGVuIHNjYW5zIHByZWRlY2Vzc29ycyB0byBkZXRlcm1pbmUgaWYgdGhleSBoYXZlXG4gKiBlZGdlcyB0aGF0IGNyb3NzIHRoYXQgaW5uZXIgc2VnbWVudC4gQXQgdGhlIGVuZCBhIGZpbmFsIHNjYW4gaXMgZG9uZSBmb3IgYWxsXG4gKiBub2RlcyBvbiB0aGUgY3VycmVudCByYW5rIHRvIHNlZSBpZiB0aGV5IGNyb3NzIHRoZSBsYXN0IHZpc2l0ZWQgaW5uZXJcbiAqIHNlZ21lbnQuXG4gKlxuICogVGhpcyBhbGdvcml0aG0gKHNhZmVseSkgYXNzdW1lcyB0aGF0IGEgZHVtbXkgbm9kZSB3aWxsIG9ubHkgYmUgaW5jaWRlbnQgb24gYVxuICogc2luZ2xlIG5vZGUgaW4gdGhlIGxheWVycyBiZWluZyBzY2FubmVkLlxuICovXG5mdW5jdGlvbiBmaW5kVHlwZTFDb25mbGljdHMoZywgbGF5ZXJpbmcpIHtcbiAgdmFyIGNvbmZsaWN0cyA9IHt9O1xuXG4gIGZ1bmN0aW9uIHZpc2l0TGF5ZXIocHJldkxheWVyLCBsYXllcikge1xuICAgIHZhciAvLyBsYXN0IHZpc2l0ZWQgbm9kZSBpbiB0aGUgcHJldmlvdXMgbGF5ZXIgdGhhdCBpcyBpbmNpZGVudCBvbiBhbiBpbm5lclxuICAgICAgLy8gc2VnbWVudC5cbiAgICAgIGswID0gMCxcbiAgICAgIC8vIFRyYWNrcyB0aGUgbGFzdCBub2RlIGluIHRoaXMgbGF5ZXIgc2Nhbm5lZCBmb3IgY3Jvc3NpbmdzIHdpdGggYSB0eXBlLTFcbiAgICAgIC8vIHNlZ21lbnQuXG4gICAgICBzY2FuUG9zID0gMCxcbiAgICAgIHByZXZMYXllckxlbmd0aCA9IHByZXZMYXllci5sZW5ndGgsXG4gICAgICBsYXN0Tm9kZSA9IF8ubGFzdChsYXllcik7XG5cbiAgICBfLmZvckVhY2gobGF5ZXIsIGZ1bmN0aW9uICh2LCBpKSB7XG4gICAgICB2YXIgdyA9IGZpbmRPdGhlcklubmVyU2VnbWVudE5vZGUoZywgdiksXG4gICAgICAgIGsxID0gdyA/IGcubm9kZSh3KS5vcmRlciA6IHByZXZMYXllckxlbmd0aDtcblxuICAgICAgaWYgKHcgfHwgdiA9PT0gbGFzdE5vZGUpIHtcbiAgICAgICAgXy5mb3JFYWNoKGxheWVyLnNsaWNlKHNjYW5Qb3MsIGkgKyAxKSwgZnVuY3Rpb24gKHNjYW5Ob2RlKSB7XG4gICAgICAgICAgXy5mb3JFYWNoKGcucHJlZGVjZXNzb3JzKHNjYW5Ob2RlKSwgZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgICAgIHZhciB1TGFiZWwgPSBnLm5vZGUodSksXG4gICAgICAgICAgICAgIHVQb3MgPSB1TGFiZWwub3JkZXI7XG4gICAgICAgICAgICBpZiAoKHVQb3MgPCBrMCB8fCBrMSA8IHVQb3MpICYmICEodUxhYmVsLmR1bW15ICYmIGcubm9kZShzY2FuTm9kZSkuZHVtbXkpKSB7XG4gICAgICAgICAgICAgIGFkZENvbmZsaWN0KGNvbmZsaWN0cywgdSwgc2Nhbk5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICBzY2FuUG9zID0gaSArIDE7XG4gICAgICAgIGswID0gazE7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbGF5ZXI7XG4gIH1cblxuICBfLnJlZHVjZShsYXllcmluZywgdmlzaXRMYXllcik7XG4gIHJldHVybiBjb25mbGljdHM7XG59XG5cbmZ1bmN0aW9uIGZpbmRUeXBlMkNvbmZsaWN0cyhnLCBsYXllcmluZykge1xuICB2YXIgY29uZmxpY3RzID0ge307XG5cbiAgZnVuY3Rpb24gc2Nhbihzb3V0aCwgc291dGhQb3MsIHNvdXRoRW5kLCBwcmV2Tm9ydGhCb3JkZXIsIG5leHROb3J0aEJvcmRlcikge1xuICAgIHZhciB2O1xuICAgIF8uZm9yRWFjaChfLnJhbmdlKHNvdXRoUG9zLCBzb3V0aEVuZCksIGZ1bmN0aW9uIChpKSB7XG4gICAgICB2ID0gc291dGhbaV07XG4gICAgICBpZiAoZy5ub2RlKHYpLmR1bW15KSB7XG4gICAgICAgIF8uZm9yRWFjaChnLnByZWRlY2Vzc29ycyh2KSwgZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgICB2YXIgdU5vZGUgPSBnLm5vZGUodSk7XG4gICAgICAgICAgaWYgKHVOb2RlLmR1bW15ICYmICh1Tm9kZS5vcmRlciA8IHByZXZOb3J0aEJvcmRlciB8fCB1Tm9kZS5vcmRlciA+IG5leHROb3J0aEJvcmRlcikpIHtcbiAgICAgICAgICAgIGFkZENvbmZsaWN0KGNvbmZsaWN0cywgdSwgdik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHZpc2l0TGF5ZXIobm9ydGgsIHNvdXRoKSB7XG4gICAgdmFyIHByZXZOb3J0aFBvcyA9IC0xLFxuICAgICAgbmV4dE5vcnRoUG9zLFxuICAgICAgc291dGhQb3MgPSAwO1xuXG4gICAgXy5mb3JFYWNoKHNvdXRoLCBmdW5jdGlvbiAodiwgc291dGhMb29rYWhlYWQpIHtcbiAgICAgIGlmIChnLm5vZGUodikuZHVtbXkgPT09ICdib3JkZXInKSB7XG4gICAgICAgIHZhciBwcmVkZWNlc3NvcnMgPSBnLnByZWRlY2Vzc29ycyh2KTtcbiAgICAgICAgaWYgKHByZWRlY2Vzc29ycy5sZW5ndGgpIHtcbiAgICAgICAgICBuZXh0Tm9ydGhQb3MgPSBnLm5vZGUocHJlZGVjZXNzb3JzWzBdKS5vcmRlcjtcbiAgICAgICAgICBzY2FuKHNvdXRoLCBzb3V0aFBvcywgc291dGhMb29rYWhlYWQsIHByZXZOb3J0aFBvcywgbmV4dE5vcnRoUG9zKTtcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgc291dGhQb3MgPSBzb3V0aExvb2thaGVhZDtcbiAgICAgICAgICBwcmV2Tm9ydGhQb3MgPSBuZXh0Tm9ydGhQb3M7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNjYW4oc291dGgsIHNvdXRoUG9zLCBzb3V0aC5sZW5ndGgsIG5leHROb3J0aFBvcywgbm9ydGgubGVuZ3RoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzb3V0aDtcbiAgfVxuXG4gIF8ucmVkdWNlKGxheWVyaW5nLCB2aXNpdExheWVyKTtcbiAgcmV0dXJuIGNvbmZsaWN0cztcbn1cblxuZnVuY3Rpb24gZmluZE90aGVySW5uZXJTZWdtZW50Tm9kZShnLCB2KSB7XG4gIGlmIChnLm5vZGUodikuZHVtbXkpIHtcbiAgICByZXR1cm4gXy5maW5kKGcucHJlZGVjZXNzb3JzKHYpLCBmdW5jdGlvbiAodSkge1xuICAgICAgcmV0dXJuIGcubm9kZSh1KS5kdW1teTtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRDb25mbGljdChjb25mbGljdHMsIHYsIHcpIHtcbiAgaWYgKHYgPiB3KSB7XG4gICAgdmFyIHRtcCA9IHY7XG4gICAgdiA9IHc7XG4gICAgdyA9IHRtcDtcbiAgfVxuXG4gIHZhciBjb25mbGljdHNWID0gY29uZmxpY3RzW3ZdO1xuICBpZiAoIWNvbmZsaWN0c1YpIHtcbiAgICBjb25mbGljdHNbdl0gPSBjb25mbGljdHNWID0ge307XG4gIH1cbiAgY29uZmxpY3RzVlt3XSA9IHRydWU7XG59XG5cbmZ1bmN0aW9uIGhhc0NvbmZsaWN0KGNvbmZsaWN0cywgdiwgdykge1xuICBpZiAodiA+IHcpIHtcbiAgICB2YXIgdG1wID0gdjtcbiAgICB2ID0gdztcbiAgICB3ID0gdG1wO1xuICB9XG4gIHJldHVybiBfLmhhcyhjb25mbGljdHNbdl0sIHcpO1xufVxuXG4vKlxuICogVHJ5IHRvIGFsaWduIG5vZGVzIGludG8gdmVydGljYWwgXCJibG9ja3NcIiB3aGVyZSBwb3NzaWJsZS4gVGhpcyBhbGdvcml0aG1cbiAqIGF0dGVtcHRzIHRvIGFsaWduIGEgbm9kZSB3aXRoIG9uZSBvZiBpdHMgbWVkaWFuIG5laWdoYm9ycy4gSWYgdGhlIGVkZ2VcbiAqIGNvbm5lY3RpbmcgYSBuZWlnaGJvciBpcyBhIHR5cGUtMSBjb25mbGljdCB0aGVuIHdlIGlnbm9yZSB0aGF0IHBvc3NpYmlsaXR5LlxuICogSWYgYSBwcmV2aW91cyBub2RlIGhhcyBhbHJlYWR5IGZvcm1lZCBhIGJsb2NrIHdpdGggYSBub2RlIGFmdGVyIHRoZSBub2RlXG4gKiB3ZSdyZSB0cnlpbmcgdG8gZm9ybSBhIGJsb2NrIHdpdGgsIHdlIGFsc28gaWdub3JlIHRoYXQgcG9zc2liaWxpdHkgLSBvdXJcbiAqIGJsb2NrcyB3b3VsZCBiZSBzcGxpdCBpbiB0aGF0IHNjZW5hcmlvLlxuICovXG5mdW5jdGlvbiB2ZXJ0aWNhbEFsaWdubWVudChnLCBsYXllcmluZywgY29uZmxpY3RzLCBuZWlnaGJvckZuKSB7XG4gIHZhciByb290ID0ge30sXG4gICAgYWxpZ24gPSB7fSxcbiAgICBwb3MgPSB7fTtcblxuICAvLyBXZSBjYWNoZSB0aGUgcG9zaXRpb24gaGVyZSBiYXNlZCBvbiB0aGUgbGF5ZXJpbmcgYmVjYXVzZSB0aGUgZ3JhcGggYW5kXG4gIC8vIGxheWVyaW5nIG1heSBiZSBvdXQgb2Ygc3luYy4gVGhlIGxheWVyaW5nIG1hdHJpeCBpcyBtYW5pcHVsYXRlZCB0b1xuICAvLyBnZW5lcmF0ZSBkaWZmZXJlbnQgZXh0cmVtZSBhbGlnbm1lbnRzLlxuICBfLmZvckVhY2gobGF5ZXJpbmcsIGZ1bmN0aW9uIChsYXllcikge1xuICAgIF8uZm9yRWFjaChsYXllciwgZnVuY3Rpb24gKHYsIG9yZGVyKSB7XG4gICAgICByb290W3ZdID0gdjtcbiAgICAgIGFsaWduW3ZdID0gdjtcbiAgICAgIHBvc1t2XSA9IG9yZGVyO1xuICAgIH0pO1xuICB9KTtcblxuICBfLmZvckVhY2gobGF5ZXJpbmcsIGZ1bmN0aW9uIChsYXllcikge1xuICAgIHZhciBwcmV2SWR4ID0gLTE7XG4gICAgXy5mb3JFYWNoKGxheWVyLCBmdW5jdGlvbiAodikge1xuICAgICAgdmFyIHdzID0gbmVpZ2hib3JGbih2KTtcbiAgICAgIGlmICh3cy5sZW5ndGgpIHtcbiAgICAgICAgd3MgPSBfLnNvcnRCeSh3cywgZnVuY3Rpb24gKHcpIHtcbiAgICAgICAgICByZXR1cm4gcG9zW3ddO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG1wID0gKHdzLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgZm9yICh2YXIgaSA9IE1hdGguZmxvb3IobXApLCBpbCA9IE1hdGguY2VpbChtcCk7IGkgPD0gaWw7ICsraSkge1xuICAgICAgICAgIHZhciB3ID0gd3NbaV07XG4gICAgICAgICAgaWYgKGFsaWduW3ZdID09PSB2ICYmIHByZXZJZHggPCBwb3Nbd10gJiYgIWhhc0NvbmZsaWN0KGNvbmZsaWN0cywgdiwgdykpIHtcbiAgICAgICAgICAgIGFsaWduW3ddID0gdjtcbiAgICAgICAgICAgIGFsaWduW3ZdID0gcm9vdFt2XSA9IHJvb3Rbd107XG4gICAgICAgICAgICBwcmV2SWR4ID0gcG9zW3ddO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4geyByb290OiByb290LCBhbGlnbjogYWxpZ24gfTtcbn1cblxuZnVuY3Rpb24gaG9yaXpvbnRhbENvbXBhY3Rpb24oZywgbGF5ZXJpbmcsIHJvb3QsIGFsaWduLCByZXZlcnNlU2VwKSB7XG4gIC8vIFRoaXMgcG9ydGlvbiBvZiB0aGUgYWxnb3JpdGhtIGRpZmZlcnMgZnJvbSBCSyBkdWUgdG8gYSBudW1iZXIgb2YgcHJvYmxlbXMuXG4gIC8vIEluc3RlYWQgb2YgdGhlaXIgYWxnb3JpdGhtIHdlIGNvbnN0cnVjdCBhIG5ldyBibG9jayBncmFwaCBhbmQgZG8gdHdvXG4gIC8vIHN3ZWVwcy4gVGhlIGZpcnN0IHN3ZWVwIHBsYWNlcyBibG9ja3Mgd2l0aCB0aGUgc21hbGxlc3QgcG9zc2libGVcbiAgLy8gY29vcmRpbmF0ZXMuIFRoZSBzZWNvbmQgc3dlZXAgcmVtb3ZlcyB1bnVzZWQgc3BhY2UgYnkgbW92aW5nIGJsb2NrcyB0byB0aGVcbiAgLy8gZ3JlYXRlc3QgY29vcmRpbmF0ZXMgd2l0aG91dCB2aW9sYXRpbmcgc2VwYXJhdGlvbi5cbiAgdmFyIHhzID0ge30sXG4gICAgYmxvY2tHID0gYnVpbGRCbG9ja0dyYXBoKGcsIGxheWVyaW5nLCByb290LCByZXZlcnNlU2VwKSxcbiAgICBib3JkZXJUeXBlID0gcmV2ZXJzZVNlcCA/ICdib3JkZXJMZWZ0JyA6ICdib3JkZXJSaWdodCc7XG5cbiAgZnVuY3Rpb24gaXRlcmF0ZShzZXRYc0Z1bmMsIG5leHROb2Rlc0Z1bmMpIHtcbiAgICB2YXIgc3RhY2sgPSBibG9ja0cubm9kZXMoKTtcbiAgICB2YXIgZWxlbSA9IHN0YWNrLnBvcCgpO1xuICAgIHZhciB2aXNpdGVkID0ge307XG4gICAgd2hpbGUgKGVsZW0pIHtcbiAgICAgIGlmICh2aXNpdGVkW2VsZW1dKSB7XG4gICAgICAgIHNldFhzRnVuYyhlbGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZpc2l0ZWRbZWxlbV0gPSB0cnVlO1xuICAgICAgICBzdGFjay5wdXNoKGVsZW0pO1xuICAgICAgICBzdGFjayA9IHN0YWNrLmNvbmNhdChuZXh0Tm9kZXNGdW5jKGVsZW0pKTtcbiAgICAgIH1cblxuICAgICAgZWxlbSA9IHN0YWNrLnBvcCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpcnN0IHBhc3MsIGFzc2lnbiBzbWFsbGVzdCBjb29yZGluYXRlc1xuICBmdW5jdGlvbiBwYXNzMShlbGVtKSB7XG4gICAgeHNbZWxlbV0gPSBibG9ja0cuaW5FZGdlcyhlbGVtKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgZSkge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KGFjYywgeHNbZS52XSArIGJsb2NrRy5lZGdlKGUpKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIC8vIFNlY29uZCBwYXNzLCBhc3NpZ24gZ3JlYXRlc3QgY29vcmRpbmF0ZXNcbiAgZnVuY3Rpb24gcGFzczIoZWxlbSkge1xuICAgIHZhciBtaW4gPSBibG9ja0cub3V0RWRnZXMoZWxlbSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGUpIHtcbiAgICAgIHJldHVybiBNYXRoLm1pbihhY2MsIHhzW2Uud10gLSBibG9ja0cuZWRnZShlKSk7XG4gICAgfSwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtcblxuICAgIHZhciBub2RlID0gZy5ub2RlKGVsZW0pO1xuICAgIGlmIChtaW4gIT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSAmJiBub2RlLmJvcmRlclR5cGUgIT09IGJvcmRlclR5cGUpIHtcbiAgICAgIHhzW2VsZW1dID0gTWF0aC5tYXgoeHNbZWxlbV0sIG1pbik7XG4gICAgfVxuICB9XG5cbiAgaXRlcmF0ZShwYXNzMSwgYmxvY2tHLnByZWRlY2Vzc29ycy5iaW5kKGJsb2NrRykpO1xuICBpdGVyYXRlKHBhc3MyLCBibG9ja0cuc3VjY2Vzc29ycy5iaW5kKGJsb2NrRykpO1xuXG4gIC8vIEFzc2lnbiB4IGNvb3JkaW5hdGVzIHRvIGFsbCBub2Rlc1xuICBfLmZvckVhY2goYWxpZ24sIGZ1bmN0aW9uICh2KSB7XG4gICAgeHNbdl0gPSB4c1tyb290W3ZdXTtcbiAgfSk7XG5cbiAgcmV0dXJuIHhzO1xufVxuXG5mdW5jdGlvbiBidWlsZEJsb2NrR3JhcGgoZywgbGF5ZXJpbmcsIHJvb3QsIHJldmVyc2VTZXApIHtcbiAgdmFyIGJsb2NrR3JhcGggPSBuZXcgR3JhcGgoKSxcbiAgICBncmFwaExhYmVsID0gZy5ncmFwaCgpLFxuICAgIHNlcEZuID0gc2VwKGdyYXBoTGFiZWwubm9kZXNlcCwgZ3JhcGhMYWJlbC5lZGdlc2VwLCByZXZlcnNlU2VwKTtcblxuICBfLmZvckVhY2gobGF5ZXJpbmcsIGZ1bmN0aW9uIChsYXllcikge1xuICAgIHZhciB1O1xuICAgIF8uZm9yRWFjaChsYXllciwgZnVuY3Rpb24gKHYpIHtcbiAgICAgIHZhciB2Um9vdCA9IHJvb3Rbdl07XG4gICAgICBibG9ja0dyYXBoLnNldE5vZGUodlJvb3QpO1xuICAgICAgaWYgKHUpIHtcbiAgICAgICAgdmFyIHVSb290ID0gcm9vdFt1XSxcbiAgICAgICAgICBwcmV2TWF4ID0gYmxvY2tHcmFwaC5lZGdlKHVSb290LCB2Um9vdCk7XG4gICAgICAgIGJsb2NrR3JhcGguc2V0RWRnZSh1Um9vdCwgdlJvb3QsIE1hdGgubWF4KHNlcEZuKGcsIHYsIHUpLCBwcmV2TWF4IHx8IDApKTtcbiAgICAgIH1cbiAgICAgIHUgPSB2O1xuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gYmxvY2tHcmFwaDtcbn1cblxuLypcbiAqIFJldHVybnMgdGhlIGFsaWdubWVudCB0aGF0IGhhcyB0aGUgc21hbGxlc3Qgd2lkdGggb2YgdGhlIGdpdmVuIGFsaWdubWVudHMuXG4gKi9cbmZ1bmN0aW9uIGZpbmRTbWFsbGVzdFdpZHRoQWxpZ25tZW50KGcsIHhzcykge1xuICByZXR1cm4gXy5taW5CeShfLnZhbHVlcyh4c3MpLCBmdW5jdGlvbiAoeHMpIHtcbiAgICB2YXIgbWF4ID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO1xuICAgIHZhciBtaW4gPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG5cbiAgICBfLmZvckluKHhzLCBmdW5jdGlvbiAoeCwgdikge1xuICAgICAgdmFyIGhhbGZXaWR0aCA9IHdpZHRoKGcsIHYpIC8gMjtcblxuICAgICAgbWF4ID0gTWF0aC5tYXgoeCArIGhhbGZXaWR0aCwgbWF4KTtcbiAgICAgIG1pbiA9IE1hdGgubWluKHggLSBoYWxmV2lkdGgsIG1pbik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWF4IC0gbWluO1xuICB9KTtcbn1cblxuLypcbiAqIEFsaWduIHRoZSBjb29yZGluYXRlcyBvZiBlYWNoIG9mIHRoZSBsYXlvdXQgYWxpZ25tZW50cyBzdWNoIHRoYXRcbiAqIGxlZnQtYmlhc2VkIGFsaWdubWVudHMgaGF2ZSB0aGVpciBtaW5pbXVtIGNvb3JkaW5hdGUgYXQgdGhlIHNhbWUgcG9pbnQgYXNcbiAqIHRoZSBtaW5pbXVtIGNvb3JkaW5hdGUgb2YgdGhlIHNtYWxsZXN0IHdpZHRoIGFsaWdubWVudCBhbmQgcmlnaHQtYmlhc2VkXG4gKiBhbGlnbm1lbnRzIGhhdmUgdGhlaXIgbWF4aW11bSBjb29yZGluYXRlIGF0IHRoZSBzYW1lIHBvaW50IGFzIHRoZSBtYXhpbXVtXG4gKiBjb29yZGluYXRlIG9mIHRoZSBzbWFsbGVzdCB3aWR0aCBhbGlnbm1lbnQuXG4gKi9cbmZ1bmN0aW9uIGFsaWduQ29vcmRpbmF0ZXMoeHNzLCBhbGlnblRvKSB7XG4gIHZhciBhbGlnblRvVmFscyA9IF8udmFsdWVzKGFsaWduVG8pLFxuICAgIGFsaWduVG9NaW4gPSBfLm1pbihhbGlnblRvVmFscyksXG4gICAgYWxpZ25Ub01heCA9IF8ubWF4KGFsaWduVG9WYWxzKTtcblxuICBfLmZvckVhY2goWyd1JywgJ2QnXSwgZnVuY3Rpb24gKHZlcnQpIHtcbiAgICBfLmZvckVhY2goWydsJywgJ3InXSwgZnVuY3Rpb24gKGhvcml6KSB7XG4gICAgICB2YXIgYWxpZ25tZW50ID0gdmVydCArIGhvcml6LFxuICAgICAgICB4cyA9IHhzc1thbGlnbm1lbnRdLFxuICAgICAgICBkZWx0YTtcbiAgICAgIGlmICh4cyA9PT0gYWxpZ25UbykgcmV0dXJuO1xuXG4gICAgICB2YXIgeHNWYWxzID0gXy52YWx1ZXMoeHMpO1xuICAgICAgZGVsdGEgPSBob3JpeiA9PT0gJ2wnID8gYWxpZ25Ub01pbiAtIF8ubWluKHhzVmFscykgOiBhbGlnblRvTWF4IC0gXy5tYXgoeHNWYWxzKTtcblxuICAgICAgaWYgKGRlbHRhKSB7XG4gICAgICAgIHhzc1thbGlnbm1lbnRdID0gXy5tYXBWYWx1ZXMoeHMsIGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgcmV0dXJuIHggKyBkZWx0YTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBiYWxhbmNlKHhzcywgYWxpZ24pIHtcbiAgcmV0dXJuIF8ubWFwVmFsdWVzKHhzcy51bCwgZnVuY3Rpb24gKGlnbm9yZSwgdikge1xuICAgIGlmIChhbGlnbikge1xuICAgICAgcmV0dXJuIHhzc1thbGlnbi50b0xvd2VyQ2FzZSgpXVt2XTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHhzID0gXy5zb3J0QnkoXy5tYXAoeHNzLCB2KSk7XG4gICAgICByZXR1cm4gKHhzWzFdICsgeHNbMl0pIC8gMjtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwb3NpdGlvblgoZykge1xuICB2YXIgbGF5ZXJpbmcgPSB1dGlsLmJ1aWxkTGF5ZXJNYXRyaXgoZyk7XG4gIHZhciBjb25mbGljdHMgPSBfLm1lcmdlKGZpbmRUeXBlMUNvbmZsaWN0cyhnLCBsYXllcmluZyksIGZpbmRUeXBlMkNvbmZsaWN0cyhnLCBsYXllcmluZykpO1xuXG4gIHZhciB4c3MgPSB7fTtcbiAgdmFyIGFkanVzdGVkTGF5ZXJpbmc7XG4gIF8uZm9yRWFjaChbJ3UnLCAnZCddLCBmdW5jdGlvbiAodmVydCkge1xuICAgIGFkanVzdGVkTGF5ZXJpbmcgPSB2ZXJ0ID09PSAndScgPyBsYXllcmluZyA6IF8udmFsdWVzKGxheWVyaW5nKS5yZXZlcnNlKCk7XG4gICAgXy5mb3JFYWNoKFsnbCcsICdyJ10sIGZ1bmN0aW9uIChob3Jpeikge1xuICAgICAgaWYgKGhvcml6ID09PSAncicpIHtcbiAgICAgICAgYWRqdXN0ZWRMYXllcmluZyA9IF8ubWFwKGFkanVzdGVkTGF5ZXJpbmcsIGZ1bmN0aW9uIChpbm5lcikge1xuICAgICAgICAgIHJldHVybiBfLnZhbHVlcyhpbm5lcikucmV2ZXJzZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5laWdoYm9yRm4gPSAodmVydCA9PT0gJ3UnID8gZy5wcmVkZWNlc3NvcnMgOiBnLnN1Y2Nlc3NvcnMpLmJpbmQoZyk7XG4gICAgICB2YXIgYWxpZ24gPSB2ZXJ0aWNhbEFsaWdubWVudChnLCBhZGp1c3RlZExheWVyaW5nLCBjb25mbGljdHMsIG5laWdoYm9yRm4pO1xuICAgICAgdmFyIHhzID0gaG9yaXpvbnRhbENvbXBhY3Rpb24oZywgYWRqdXN0ZWRMYXllcmluZywgYWxpZ24ucm9vdCwgYWxpZ24uYWxpZ24sIGhvcml6ID09PSAncicpO1xuICAgICAgaWYgKGhvcml6ID09PSAncicpIHtcbiAgICAgICAgeHMgPSBfLm1hcFZhbHVlcyh4cywgZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICByZXR1cm4gLXg7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgeHNzW3ZlcnQgKyBob3Jpel0gPSB4cztcbiAgICB9KTtcbiAgfSk7XG5cbiAgdmFyIHNtYWxsZXN0V2lkdGggPSBmaW5kU21hbGxlc3RXaWR0aEFsaWdubWVudChnLCB4c3MpO1xuICBhbGlnbkNvb3JkaW5hdGVzKHhzcywgc21hbGxlc3RXaWR0aCk7XG4gIHJldHVybiBiYWxhbmNlKHhzcywgZy5ncmFwaCgpLmFsaWduKTtcbn1cblxuZnVuY3Rpb24gc2VwKG5vZGVTZXAsIGVkZ2VTZXAsIHJldmVyc2VTZXApIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChnLCB2LCB3KSB7XG4gICAgdmFyIHZMYWJlbCA9IGcubm9kZSh2KTtcbiAgICB2YXIgd0xhYmVsID0gZy5ub2RlKHcpO1xuICAgIHZhciBzdW0gPSAwO1xuICAgIHZhciBkZWx0YTtcblxuICAgIHN1bSArPSB2TGFiZWwud2lkdGggLyAyO1xuICAgIGlmIChfLmhhcyh2TGFiZWwsICdsYWJlbHBvcycpKSB7XG4gICAgICBzd2l0Y2ggKHZMYWJlbC5sYWJlbHBvcy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgJ2wnOlxuICAgICAgICAgIGRlbHRhID0gLXZMYWJlbC53aWR0aCAvIDI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3InOlxuICAgICAgICAgIGRlbHRhID0gdkxhYmVsLndpZHRoIC8gMjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRlbHRhKSB7XG4gICAgICBzdW0gKz0gcmV2ZXJzZVNlcCA/IGRlbHRhIDogLWRlbHRhO1xuICAgIH1cbiAgICBkZWx0YSA9IDA7XG5cbiAgICBzdW0gKz0gKHZMYWJlbC5kdW1teSA/IGVkZ2VTZXAgOiBub2RlU2VwKSAvIDI7XG4gICAgc3VtICs9ICh3TGFiZWwuZHVtbXkgPyBlZGdlU2VwIDogbm9kZVNlcCkgLyAyO1xuXG4gICAgc3VtICs9IHdMYWJlbC53aWR0aCAvIDI7XG4gICAgaWYgKF8uaGFzKHdMYWJlbCwgJ2xhYmVscG9zJykpIHtcbiAgICAgIHN3aXRjaCAod0xhYmVsLmxhYmVscG9zLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgY2FzZSAnbCc6XG4gICAgICAgICAgZGVsdGEgPSB3TGFiZWwud2lkdGggLyAyO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyJzpcbiAgICAgICAgICBkZWx0YSA9IC13TGFiZWwud2lkdGggLyAyO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGVsdGEpIHtcbiAgICAgIHN1bSArPSByZXZlcnNlU2VwID8gZGVsdGEgOiAtZGVsdGE7XG4gICAgfVxuICAgIGRlbHRhID0gMDtcblxuICAgIHJldHVybiBzdW07XG4gIH07XG59XG5cbmZ1bmN0aW9uIHdpZHRoKGcsIHYpIHtcbiAgcmV0dXJuIGcubm9kZSh2KS53aWR0aDtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuLi91dGlsLmpzJztcbmltcG9ydCB7IHBvc2l0aW9uWCB9IGZyb20gJy4vYmsuanMnO1xuXG5leHBvcnQgeyBwb3NpdGlvbiB9O1xuXG5mdW5jdGlvbiBwb3NpdGlvbihnKSB7XG4gIGcgPSB1dGlsLmFzTm9uQ29tcG91bmRHcmFwaChnKTtcblxuICBwb3NpdGlvblkoZyk7XG4gIF8uZm9yT3duKHBvc2l0aW9uWChnKSwgZnVuY3Rpb24gKHgsIHYpIHtcbiAgICBnLm5vZGUodikueCA9IHg7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwb3NpdGlvblkoZykge1xuICB2YXIgbGF5ZXJpbmcgPSB1dGlsLmJ1aWxkTGF5ZXJNYXRyaXgoZyk7XG4gIHZhciByYW5rU2VwID0gZy5ncmFwaCgpLnJhbmtzZXA7XG4gIHZhciBwcmV2WSA9IDA7XG4gIF8uZm9yRWFjaChsYXllcmluZywgZnVuY3Rpb24gKGxheWVyKSB7XG4gICAgdmFyIG1heEhlaWdodCA9IF8ubWF4KFxuICAgICAgXy5tYXAobGF5ZXIsIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBnLm5vZGUodikuaGVpZ2h0O1xuICAgICAgfSlcbiAgICApO1xuICAgIF8uZm9yRWFjaChsYXllciwgZnVuY3Rpb24gKHYpIHtcbiAgICAgIGcubm9kZSh2KS55ID0gcHJldlkgKyBtYXhIZWlnaHQgLyAyO1xuICAgIH0pO1xuICAgIHByZXZZICs9IG1heEhlaWdodCArIHJhbmtTZXA7XG4gIH0pO1xufVxuIiwKICAgICJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBHcmFwaCB9IGZyb20gJy4uL2dyYXBobGliL2luZGV4LmpzJztcbmltcG9ydCB7IGFkZEJvcmRlclNlZ21lbnRzIH0gZnJvbSAnLi9hZGQtYm9yZGVyLXNlZ21lbnRzLmpzJztcbmltcG9ydCAqIGFzIGNvb3JkaW5hdGVTeXN0ZW0gZnJvbSAnLi9jb29yZGluYXRlLXN5c3RlbS5qcyc7XG5pbXBvcnQgKiBhcyBhY3ljbGljIGZyb20gJy4vYWN5Y2xpYy5qcyc7XG5pbXBvcnQgKiBhcyBub3JtYWxpemUgZnJvbSAnLi9ub3JtYWxpemUuanMnO1xuaW1wb3J0IHsgcmFuayB9IGZyb20gJy4vcmFuay9pbmRleC5qcyc7XG5pbXBvcnQgKiBhcyBuZXN0aW5nR3JhcGggZnJvbSAnLi9uZXN0aW5nLWdyYXBoLmpzJztcbmltcG9ydCB7IG9yZGVyIH0gZnJvbSAnLi9vcmRlci9pbmRleC5qcyc7XG5pbXBvcnQgeyBwYXJlbnREdW1teUNoYWlucyB9IGZyb20gJy4vcGFyZW50LWR1bW15LWNoYWlucy5qcyc7XG5pbXBvcnQgeyBwb3NpdGlvbiB9IGZyb20gJy4vcG9zaXRpb24vaW5kZXguanMnO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0aWwuanMnO1xuXG5leHBvcnQgeyBsYXlvdXQgfTtcblxuZnVuY3Rpb24gbGF5b3V0KGcsIG9wdHMpIHtcbiAgdmFyIHRpbWUgPSBvcHRzICYmIG9wdHMuZGVidWdUaW1pbmcgPyB1dGlsLnRpbWUgOiB1dGlsLm5vdGltZTtcbiAgdGltZSgnbGF5b3V0JywgZnVuY3Rpb24gKCkge1xuICAgIHZhciBsYXlvdXRHcmFwaCA9IHRpbWUoJyAgYnVpbGRMYXlvdXRHcmFwaCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBidWlsZExheW91dEdyYXBoKGcpO1xuICAgIH0pO1xuICAgIHRpbWUoJyAgcnVuTGF5b3V0JywgZnVuY3Rpb24gKCkge1xuICAgICAgcnVuTGF5b3V0KGxheW91dEdyYXBoLCB0aW1lKTtcbiAgICB9KTtcbiAgICB0aW1lKCcgIHVwZGF0ZUlucHV0R3JhcGgnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB1cGRhdGVJbnB1dEdyYXBoKGcsIGxheW91dEdyYXBoKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJ1bkxheW91dChnLCB0aW1lKSB7XG4gIHRpbWUoJyAgICBtYWtlU3BhY2VGb3JFZGdlTGFiZWxzJywgZnVuY3Rpb24gKCkge1xuICAgIG1ha2VTcGFjZUZvckVkZ2VMYWJlbHMoZyk7XG4gIH0pO1xuICB0aW1lKCcgICAgcmVtb3ZlU2VsZkVkZ2VzJywgZnVuY3Rpb24gKCkge1xuICAgIHJlbW92ZVNlbGZFZGdlcyhnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICBhY3ljbGljJywgZnVuY3Rpb24gKCkge1xuICAgIGFjeWNsaWMucnVuKGcpO1xuICB9KTtcbiAgdGltZSgnICAgIG5lc3RpbmdHcmFwaC5ydW4nLCBmdW5jdGlvbiAoKSB7XG4gICAgbmVzdGluZ0dyYXBoLnJ1bihnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICByYW5rJywgZnVuY3Rpb24gKCkge1xuICAgIHJhbmsodXRpbC5hc05vbkNvbXBvdW5kR3JhcGgoZykpO1xuICB9KTtcbiAgdGltZSgnICAgIGluamVjdEVkZ2VMYWJlbFByb3hpZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgaW5qZWN0RWRnZUxhYmVsUHJveGllcyhnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICByZW1vdmVFbXB0eVJhbmtzJywgZnVuY3Rpb24gKCkge1xuICAgIHV0aWwucmVtb3ZlRW1wdHlSYW5rcyhnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICBuZXN0aW5nR3JhcGguY2xlYW51cCcsIGZ1bmN0aW9uICgpIHtcbiAgICBuZXN0aW5nR3JhcGguY2xlYW51cChnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICBub3JtYWxpemVSYW5rcycsIGZ1bmN0aW9uICgpIHtcbiAgICB1dGlsLm5vcm1hbGl6ZVJhbmtzKGcpO1xuICB9KTtcbiAgdGltZSgnICAgIGFzc2lnblJhbmtNaW5NYXgnLCBmdW5jdGlvbiAoKSB7XG4gICAgYXNzaWduUmFua01pbk1heChnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICByZW1vdmVFZGdlTGFiZWxQcm94aWVzJywgZnVuY3Rpb24gKCkge1xuICAgIHJlbW92ZUVkZ2VMYWJlbFByb3hpZXMoZyk7XG4gIH0pO1xuICB0aW1lKCcgICAgbm9ybWFsaXplLnJ1bicsIGZ1bmN0aW9uICgpIHtcbiAgICBub3JtYWxpemUucnVuKGcpO1xuICB9KTtcbiAgdGltZSgnICAgIHBhcmVudER1bW15Q2hhaW5zJywgZnVuY3Rpb24gKCkge1xuICAgIHBhcmVudER1bW15Q2hhaW5zKGcpO1xuICB9KTtcbiAgdGltZSgnICAgIGFkZEJvcmRlclNlZ21lbnRzJywgZnVuY3Rpb24gKCkge1xuICAgIGFkZEJvcmRlclNlZ21lbnRzKGcpO1xuICB9KTtcbiAgdGltZSgnICAgIG9yZGVyJywgZnVuY3Rpb24gKCkge1xuICAgIG9yZGVyKGcpO1xuICB9KTtcbiAgdGltZSgnICAgIGluc2VydFNlbGZFZGdlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBpbnNlcnRTZWxmRWRnZXMoZyk7XG4gIH0pO1xuICB0aW1lKCcgICAgYWRqdXN0Q29vcmRpbmF0ZVN5c3RlbScsIGZ1bmN0aW9uICgpIHtcbiAgICBjb29yZGluYXRlU3lzdGVtLmFkanVzdChnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICBwb3NpdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBwb3NpdGlvbihnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICBwb3NpdGlvblNlbGZFZGdlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBwb3NpdGlvblNlbGZFZGdlcyhnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICByZW1vdmVCb3JkZXJOb2RlcycsIGZ1bmN0aW9uICgpIHtcbiAgICByZW1vdmVCb3JkZXJOb2RlcyhnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICBub3JtYWxpemUudW5kbycsIGZ1bmN0aW9uICgpIHtcbiAgICBub3JtYWxpemUudW5kbyhnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICBmaXh1cEVkZ2VMYWJlbENvb3JkcycsIGZ1bmN0aW9uICgpIHtcbiAgICBmaXh1cEVkZ2VMYWJlbENvb3JkcyhnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICB1bmRvQ29vcmRpbmF0ZVN5c3RlbScsIGZ1bmN0aW9uICgpIHtcbiAgICBjb29yZGluYXRlU3lzdGVtLnVuZG8oZyk7XG4gIH0pO1xuICB0aW1lKCcgICAgdHJhbnNsYXRlR3JhcGgnLCBmdW5jdGlvbiAoKSB7XG4gICAgdHJhbnNsYXRlR3JhcGgoZyk7XG4gIH0pO1xuICB0aW1lKCcgICAgYXNzaWduTm9kZUludGVyc2VjdHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgYXNzaWduTm9kZUludGVyc2VjdHMoZyk7XG4gIH0pO1xuICB0aW1lKCcgICAgcmV2ZXJzZVBvaW50cycsIGZ1bmN0aW9uICgpIHtcbiAgICByZXZlcnNlUG9pbnRzRm9yUmV2ZXJzZWRFZGdlcyhnKTtcbiAgfSk7XG4gIHRpbWUoJyAgICBhY3ljbGljLnVuZG8nLCBmdW5jdGlvbiAoKSB7XG4gICAgYWN5Y2xpYy51bmRvKGcpO1xuICB9KTtcbn1cblxuLypcbiAqIENvcGllcyBmaW5hbCBsYXlvdXQgaW5mb3JtYXRpb24gZnJvbSB0aGUgbGF5b3V0IGdyYXBoIGJhY2sgdG8gdGhlIGlucHV0XG4gKiBncmFwaC4gVGhpcyBwcm9jZXNzIG9ubHkgY29waWVzIHdoaXRlbGlzdGVkIGF0dHJpYnV0ZXMgZnJvbSB0aGUgbGF5b3V0IGdyYXBoXG4gKiB0byB0aGUgaW5wdXQgZ3JhcGgsIHNvIGl0IHNlcnZlcyBhcyBhIGdvb2QgcGxhY2UgdG8gZGV0ZXJtaW5lIHdoYXRcbiAqIGF0dHJpYnV0ZXMgY2FuIGluZmx1ZW5jZSBsYXlvdXQuXG4gKi9cbmZ1bmN0aW9uIHVwZGF0ZUlucHV0R3JhcGgoaW5wdXRHcmFwaCwgbGF5b3V0R3JhcGgpIHtcbiAgXy5mb3JFYWNoKGlucHV0R3JhcGgubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICB2YXIgaW5wdXRMYWJlbCA9IGlucHV0R3JhcGgubm9kZSh2KTtcbiAgICB2YXIgbGF5b3V0TGFiZWwgPSBsYXlvdXRHcmFwaC5ub2RlKHYpO1xuXG4gICAgaWYgKGlucHV0TGFiZWwpIHtcbiAgICAgIGlucHV0TGFiZWwueCA9IGxheW91dExhYmVsLng7XG4gICAgICBpbnB1dExhYmVsLnkgPSBsYXlvdXRMYWJlbC55O1xuXG4gICAgICBpZiAobGF5b3V0R3JhcGguY2hpbGRyZW4odikubGVuZ3RoKSB7XG4gICAgICAgIGlucHV0TGFiZWwud2lkdGggPSBsYXlvdXRMYWJlbC53aWR0aDtcbiAgICAgICAgaW5wdXRMYWJlbC5oZWlnaHQgPSBsYXlvdXRMYWJlbC5oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBfLmZvckVhY2goaW5wdXRHcmFwaC5lZGdlcygpLCBmdW5jdGlvbiAoZSkge1xuICAgIHZhciBpbnB1dExhYmVsID0gaW5wdXRHcmFwaC5lZGdlKGUpO1xuICAgIHZhciBsYXlvdXRMYWJlbCA9IGxheW91dEdyYXBoLmVkZ2UoZSk7XG5cbiAgICBpbnB1dExhYmVsLnBvaW50cyA9IGxheW91dExhYmVsLnBvaW50cztcbiAgICBpZiAoXy5oYXMobGF5b3V0TGFiZWwsICd4JykpIHtcbiAgICAgIGlucHV0TGFiZWwueCA9IGxheW91dExhYmVsLng7XG4gICAgICBpbnB1dExhYmVsLnkgPSBsYXlvdXRMYWJlbC55O1xuICAgIH1cbiAgfSk7XG5cbiAgaW5wdXRHcmFwaC5ncmFwaCgpLndpZHRoID0gbGF5b3V0R3JhcGguZ3JhcGgoKS53aWR0aDtcbiAgaW5wdXRHcmFwaC5ncmFwaCgpLmhlaWdodCA9IGxheW91dEdyYXBoLmdyYXBoKCkuaGVpZ2h0O1xufVxuXG52YXIgZ3JhcGhOdW1BdHRycyA9IFsnbm9kZXNlcCcsICdlZGdlc2VwJywgJ3JhbmtzZXAnLCAnbWFyZ2lueCcsICdtYXJnaW55J107XG52YXIgZ3JhcGhEZWZhdWx0cyA9IHsgcmFua3NlcDogNTAsIGVkZ2VzZXA6IDIwLCBub2Rlc2VwOiA1MCwgcmFua2RpcjogJ3RiJyB9O1xudmFyIGdyYXBoQXR0cnMgPSBbJ2FjeWNsaWNlcicsICdyYW5rZXInLCAncmFua2RpcicsICdhbGlnbiddO1xudmFyIG5vZGVOdW1BdHRycyA9IFsnd2lkdGgnLCAnaGVpZ2h0J107XG52YXIgbm9kZURlZmF1bHRzID0geyB3aWR0aDogMCwgaGVpZ2h0OiAwIH07XG52YXIgZWRnZU51bUF0dHJzID0gWydtaW5sZW4nLCAnd2VpZ2h0JywgJ3dpZHRoJywgJ2hlaWdodCcsICdsYWJlbG9mZnNldCddO1xudmFyIGVkZ2VEZWZhdWx0cyA9IHtcbiAgbWlubGVuOiAxLFxuICB3ZWlnaHQ6IDEsXG4gIHdpZHRoOiAwLFxuICBoZWlnaHQ6IDAsXG4gIGxhYmVsb2Zmc2V0OiAxMCxcbiAgbGFiZWxwb3M6ICdyJyxcbn07XG52YXIgZWRnZUF0dHJzID0gWydsYWJlbHBvcyddO1xuXG4vKlxuICogQ29uc3RydWN0cyBhIG5ldyBncmFwaCBmcm9tIHRoZSBpbnB1dCBncmFwaCwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGxheW91dC5cbiAqIFRoaXMgcHJvY2VzcyBjb3BpZXMgb25seSB3aGl0ZWxpc3RlZCBhdHRyaWJ1dGVzIGZyb20gdGhlIGlucHV0IGdyYXBoIHRvIHRoZVxuICogbGF5b3V0IGdyYXBoLiBUaHVzIHRoaXMgZnVuY3Rpb24gc2VydmVzIGFzIGEgZ29vZCBwbGFjZSB0byBkZXRlcm1pbmUgd2hhdFxuICogYXR0cmlidXRlcyBjYW4gaW5mbHVlbmNlIGxheW91dC5cbiAqL1xuZnVuY3Rpb24gYnVpbGRMYXlvdXRHcmFwaChpbnB1dEdyYXBoKSB7XG4gIHZhciBnID0gbmV3IEdyYXBoKHsgbXVsdGlncmFwaDogdHJ1ZSwgY29tcG91bmQ6IHRydWUgfSk7XG4gIHZhciBncmFwaCA9IGNhbm9uaWNhbGl6ZShpbnB1dEdyYXBoLmdyYXBoKCkpO1xuXG4gIGcuc2V0R3JhcGgoXG4gICAgXy5tZXJnZSh7fSwgZ3JhcGhEZWZhdWx0cywgc2VsZWN0TnVtYmVyQXR0cnMoZ3JhcGgsIGdyYXBoTnVtQXR0cnMpLCBfLnBpY2soZ3JhcGgsIGdyYXBoQXR0cnMpKVxuICApO1xuXG4gIF8uZm9yRWFjaChpbnB1dEdyYXBoLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgdmFyIG5vZGUgPSBjYW5vbmljYWxpemUoaW5wdXRHcmFwaC5ub2RlKHYpKTtcbiAgICBnLnNldE5vZGUodiwgXy5kZWZhdWx0cyhzZWxlY3ROdW1iZXJBdHRycyhub2RlLCBub2RlTnVtQXR0cnMpLCBub2RlRGVmYXVsdHMpKTtcbiAgICBnLnNldFBhcmVudCh2LCBpbnB1dEdyYXBoLnBhcmVudCh2KSk7XG4gIH0pO1xuXG4gIF8uZm9yRWFjaChpbnB1dEdyYXBoLmVkZ2VzKCksIGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyIGVkZ2UgPSBjYW5vbmljYWxpemUoaW5wdXRHcmFwaC5lZGdlKGUpKTtcbiAgICBnLnNldEVkZ2UoXG4gICAgICBlLFxuICAgICAgXy5tZXJnZSh7fSwgZWRnZURlZmF1bHRzLCBzZWxlY3ROdW1iZXJBdHRycyhlZGdlLCBlZGdlTnVtQXR0cnMpLCBfLnBpY2soZWRnZSwgZWRnZUF0dHJzKSlcbiAgICApO1xuICB9KTtcblxuICByZXR1cm4gZztcbn1cblxuLypcbiAqIFRoaXMgaWRlYSBjb21lcyBmcm9tIHRoZSBHYW5zbmVyIHBhcGVyOiB0byBhY2NvdW50IGZvciBlZGdlIGxhYmVscyBpbiBvdXJcbiAqIGxheW91dCB3ZSBzcGxpdCBlYWNoIHJhbmsgaW4gaGFsZiBieSBkb3VibGluZyBtaW5sZW4gYW5kIGhhbHZpbmcgcmFua3NlcC5cbiAqIFRoZW4gd2UgY2FuIHBsYWNlIGxhYmVscyBhdCB0aGVzZSBtaWQtcG9pbnRzIGJldHdlZW4gbm9kZXMuXG4gKlxuICogV2UgYWxzbyBhZGQgc29tZSBtaW5pbWFsIHBhZGRpbmcgdG8gdGhlIHdpZHRoIHRvIHB1c2ggdGhlIGxhYmVsIGZvciB0aGUgZWRnZVxuICogYXdheSBmcm9tIHRoZSBlZGdlIGl0c2VsZiBhIGJpdC5cbiAqL1xuZnVuY3Rpb24gbWFrZVNwYWNlRm9yRWRnZUxhYmVscyhnKSB7XG4gIHZhciBncmFwaCA9IGcuZ3JhcGgoKTtcbiAgZ3JhcGgucmFua3NlcCAvPSAyO1xuICBfLmZvckVhY2goZy5lZGdlcygpLCBmdW5jdGlvbiAoZSkge1xuICAgIHZhciBlZGdlID0gZy5lZGdlKGUpO1xuICAgIGVkZ2UubWlubGVuICo9IDI7XG4gICAgaWYgKGVkZ2UubGFiZWxwb3MudG9Mb3dlckNhc2UoKSAhPT0gJ2MnKSB7XG4gICAgICBpZiAoZ3JhcGgucmFua2RpciA9PT0gJ1RCJyB8fCBncmFwaC5yYW5rZGlyID09PSAnQlQnKSB7XG4gICAgICAgIGVkZ2Uud2lkdGggKz0gZWRnZS5sYWJlbG9mZnNldDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVkZ2UuaGVpZ2h0ICs9IGVkZ2UubGFiZWxvZmZzZXQ7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuLypcbiAqIENyZWF0ZXMgdGVtcG9yYXJ5IGR1bW15IG5vZGVzIHRoYXQgY2FwdHVyZSB0aGUgcmFuayBpbiB3aGljaCBlYWNoIGVkZ2Unc1xuICogbGFiZWwgaXMgZ29pbmcgdG8sIGlmIGl0IGhhcyBvbmUgb2Ygbm9uLXplcm8gd2lkdGggYW5kIGhlaWdodC4gV2UgZG8gdGhpc1xuICogc28gdGhhdCB3ZSBjYW4gc2FmZWx5IHJlbW92ZSBlbXB0eSByYW5rcyB3aGlsZSBwcmVzZXJ2aW5nIGJhbGFuY2UgZm9yIHRoZVxuICogbGFiZWwncyBwb3NpdGlvbi5cbiAqL1xuZnVuY3Rpb24gaW5qZWN0RWRnZUxhYmVsUHJveGllcyhnKSB7XG4gIF8uZm9yRWFjaChnLmVkZ2VzKCksIGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyIGVkZ2UgPSBnLmVkZ2UoZSk7XG4gICAgaWYgKGVkZ2Uud2lkdGggJiYgZWRnZS5oZWlnaHQpIHtcbiAgICAgIHZhciB2ID0gZy5ub2RlKGUudik7XG4gICAgICB2YXIgdyA9IGcubm9kZShlLncpO1xuICAgICAgdmFyIGxhYmVsID0geyByYW5rOiAody5yYW5rIC0gdi5yYW5rKSAvIDIgKyB2LnJhbmssIGU6IGUgfTtcbiAgICAgIHV0aWwuYWRkRHVtbXlOb2RlKGcsICdlZGdlLXByb3h5JywgbGFiZWwsICdfZXAnKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhc3NpZ25SYW5rTWluTWF4KGcpIHtcbiAgdmFyIG1heFJhbmsgPSAwO1xuICBfLmZvckVhY2goZy5ub2RlcygpLCBmdW5jdGlvbiAodikge1xuICAgIHZhciBub2RlID0gZy5ub2RlKHYpO1xuICAgIGlmIChub2RlLmJvcmRlclRvcCkge1xuICAgICAgbm9kZS5taW5SYW5rID0gZy5ub2RlKG5vZGUuYm9yZGVyVG9wKS5yYW5rO1xuICAgICAgbm9kZS5tYXhSYW5rID0gZy5ub2RlKG5vZGUuYm9yZGVyQm90dG9tKS5yYW5rO1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgbWF4UmFuayA9IF8ubWF4KG1heFJhbmssIG5vZGUubWF4UmFuayk7XG4gICAgfVxuICB9KTtcbiAgZy5ncmFwaCgpLm1heFJhbmsgPSBtYXhSYW5rO1xufVxuXG5mdW5jdGlvbiByZW1vdmVFZGdlTGFiZWxQcm94aWVzKGcpIHtcbiAgXy5mb3JFYWNoKGcubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICB2YXIgbm9kZSA9IGcubm9kZSh2KTtcbiAgICBpZiAobm9kZS5kdW1teSA9PT0gJ2VkZ2UtcHJveHknKSB7XG4gICAgICBnLmVkZ2Uobm9kZS5lKS5sYWJlbFJhbmsgPSBub2RlLnJhbms7XG4gICAgICBnLnJlbW92ZU5vZGUodik7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gdHJhbnNsYXRlR3JhcGgoZykge1xuICB2YXIgbWluWCA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgdmFyIG1heFggPSAwO1xuICB2YXIgbWluWSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgdmFyIG1heFkgPSAwO1xuICB2YXIgZ3JhcGhMYWJlbCA9IGcuZ3JhcGgoKTtcbiAgdmFyIG1hcmdpblggPSBncmFwaExhYmVsLm1hcmdpbnggfHwgMDtcbiAgdmFyIG1hcmdpblkgPSBncmFwaExhYmVsLm1hcmdpbnkgfHwgMDtcblxuICBmdW5jdGlvbiBnZXRFeHRyZW1lcyhhdHRycykge1xuICAgIHZhciB4ID0gYXR0cnMueDtcbiAgICB2YXIgeSA9IGF0dHJzLnk7XG4gICAgdmFyIHcgPSBhdHRycy53aWR0aDtcbiAgICB2YXIgaCA9IGF0dHJzLmhlaWdodDtcbiAgICBtaW5YID0gTWF0aC5taW4obWluWCwgeCAtIHcgLyAyKTtcbiAgICBtYXhYID0gTWF0aC5tYXgobWF4WCwgeCArIHcgLyAyKTtcbiAgICBtaW5ZID0gTWF0aC5taW4obWluWSwgeSAtIGggLyAyKTtcbiAgICBtYXhZID0gTWF0aC5tYXgobWF4WSwgeSArIGggLyAyKTtcbiAgfVxuXG4gIF8uZm9yRWFjaChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgZ2V0RXh0cmVtZXMoZy5ub2RlKHYpKTtcbiAgfSk7XG4gIF8uZm9yRWFjaChnLmVkZ2VzKCksIGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyIGVkZ2UgPSBnLmVkZ2UoZSk7XG4gICAgaWYgKF8uaGFzKGVkZ2UsICd4JykpIHtcbiAgICAgIGdldEV4dHJlbWVzKGVkZ2UpO1xuICAgIH1cbiAgfSk7XG5cbiAgbWluWCAtPSBtYXJnaW5YO1xuICBtaW5ZIC09IG1hcmdpblk7XG5cbiAgXy5mb3JFYWNoKGcubm9kZXMoKSwgZnVuY3Rpb24gKHYpIHtcbiAgICB2YXIgbm9kZSA9IGcubm9kZSh2KTtcbiAgICBub2RlLnggLT0gbWluWDtcbiAgICBub2RlLnkgLT0gbWluWTtcbiAgfSk7XG5cbiAgXy5mb3JFYWNoKGcuZWRnZXMoKSwgZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgZWRnZSA9IGcuZWRnZShlKTtcbiAgICBfLmZvckVhY2goZWRnZS5wb2ludHMsIGZ1bmN0aW9uIChwKSB7XG4gICAgICBwLnggLT0gbWluWDtcbiAgICAgIHAueSAtPSBtaW5ZO1xuICAgIH0pO1xuICAgIGlmIChfLmhhcyhlZGdlLCAneCcpKSB7XG4gICAgICBlZGdlLnggLT0gbWluWDtcbiAgICB9XG4gICAgaWYgKF8uaGFzKGVkZ2UsICd5JykpIHtcbiAgICAgIGVkZ2UueSAtPSBtaW5ZO1xuICAgIH1cbiAgfSk7XG5cbiAgZ3JhcGhMYWJlbC53aWR0aCA9IG1heFggLSBtaW5YICsgbWFyZ2luWDtcbiAgZ3JhcGhMYWJlbC5oZWlnaHQgPSBtYXhZIC0gbWluWSArIG1hcmdpblk7XG59XG5cbmZ1bmN0aW9uIGFzc2lnbk5vZGVJbnRlcnNlY3RzKGcpIHtcbiAgXy5mb3JFYWNoKGcuZWRnZXMoKSwgZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgZWRnZSA9IGcuZWRnZShlKTtcbiAgICB2YXIgbm9kZVYgPSBnLm5vZGUoZS52KTtcbiAgICB2YXIgbm9kZVcgPSBnLm5vZGUoZS53KTtcbiAgICB2YXIgcDEsIHAyO1xuICAgIGlmICghZWRnZS5wb2ludHMpIHtcbiAgICAgIGVkZ2UucG9pbnRzID0gW107XG4gICAgICBwMSA9IG5vZGVXO1xuICAgICAgcDIgPSBub2RlVjtcbiAgICB9IGVsc2Uge1xuICAgICAgcDEgPSBlZGdlLnBvaW50c1swXTtcbiAgICAgIHAyID0gZWRnZS5wb2ludHNbZWRnZS5wb2ludHMubGVuZ3RoIC0gMV07XG4gICAgfVxuICAgIGVkZ2UucG9pbnRzLnVuc2hpZnQodXRpbC5pbnRlcnNlY3RSZWN0KG5vZGVWLCBwMSkpO1xuICAgIGVkZ2UucG9pbnRzLnB1c2godXRpbC5pbnRlcnNlY3RSZWN0KG5vZGVXLCBwMikpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZml4dXBFZGdlTGFiZWxDb29yZHMoZykge1xuICBfLmZvckVhY2goZy5lZGdlcygpLCBmdW5jdGlvbiAoZSkge1xuICAgIHZhciBlZGdlID0gZy5lZGdlKGUpO1xuICAgIGlmIChfLmhhcyhlZGdlLCAneCcpKSB7XG4gICAgICBpZiAoZWRnZS5sYWJlbHBvcyA9PT0gJ2wnIHx8IGVkZ2UubGFiZWxwb3MgPT09ICdyJykge1xuICAgICAgICBlZGdlLndpZHRoIC09IGVkZ2UubGFiZWxvZmZzZXQ7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGVkZ2UubGFiZWxwb3MpIHtcbiAgICAgICAgY2FzZSAnbCc6XG4gICAgICAgICAgZWRnZS54IC09IGVkZ2Uud2lkdGggLyAyICsgZWRnZS5sYWJlbG9mZnNldDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncic6XG4gICAgICAgICAgZWRnZS54ICs9IGVkZ2Uud2lkdGggLyAyICsgZWRnZS5sYWJlbG9mZnNldDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXZlcnNlUG9pbnRzRm9yUmV2ZXJzZWRFZGdlcyhnKSB7XG4gIF8uZm9yRWFjaChnLmVkZ2VzKCksIGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyIGVkZ2UgPSBnLmVkZ2UoZSk7XG4gICAgaWYgKGVkZ2UucmV2ZXJzZWQpIHtcbiAgICAgIGVkZ2UucG9pbnRzLnJldmVyc2UoKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVCb3JkZXJOb2RlcyhnKSB7XG4gIF8uZm9yRWFjaChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgaWYgKGcuY2hpbGRyZW4odikubGVuZ3RoKSB7XG4gICAgICB2YXIgbm9kZSA9IGcubm9kZSh2KTtcbiAgICAgIHZhciB0ID0gZy5ub2RlKG5vZGUuYm9yZGVyVG9wKTtcbiAgICAgIHZhciBiID0gZy5ub2RlKG5vZGUuYm9yZGVyQm90dG9tKTtcbiAgICAgIHZhciBsID0gZy5ub2RlKF8ubGFzdChub2RlLmJvcmRlckxlZnQpKTtcbiAgICAgIHZhciByID0gZy5ub2RlKF8ubGFzdChub2RlLmJvcmRlclJpZ2h0KSk7XG5cbiAgICAgIG5vZGUud2lkdGggPSBNYXRoLmFicyhyLnggLSBsLngpO1xuICAgICAgbm9kZS5oZWlnaHQgPSBNYXRoLmFicyhiLnkgLSB0LnkpO1xuICAgICAgbm9kZS54ID0gbC54ICsgbm9kZS53aWR0aCAvIDI7XG4gICAgICBub2RlLnkgPSB0LnkgKyBub2RlLmhlaWdodCAvIDI7XG4gICAgfVxuICB9KTtcblxuICBfLmZvckVhY2goZy5ub2RlcygpLCBmdW5jdGlvbiAodikge1xuICAgIGlmIChnLm5vZGUodikuZHVtbXkgPT09ICdib3JkZXInKSB7XG4gICAgICBnLnJlbW92ZU5vZGUodik7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlU2VsZkVkZ2VzKGcpIHtcbiAgXy5mb3JFYWNoKGcuZWRnZXMoKSwgZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZS52ID09PSBlLncpIHtcbiAgICAgIHZhciBub2RlID0gZy5ub2RlKGUudik7XG4gICAgICBpZiAoIW5vZGUuc2VsZkVkZ2VzKSB7XG4gICAgICAgIG5vZGUuc2VsZkVkZ2VzID0gW107XG4gICAgICB9XG4gICAgICBub2RlLnNlbGZFZGdlcy5wdXNoKHsgZTogZSwgbGFiZWw6IGcuZWRnZShlKSB9KTtcbiAgICAgIGcucmVtb3ZlRWRnZShlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRTZWxmRWRnZXMoZykge1xuICB2YXIgbGF5ZXJzID0gdXRpbC5idWlsZExheWVyTWF0cml4KGcpO1xuICBfLmZvckVhY2gobGF5ZXJzLCBmdW5jdGlvbiAobGF5ZXIpIHtcbiAgICB2YXIgb3JkZXJTaGlmdCA9IDA7XG4gICAgXy5mb3JFYWNoKGxheWVyLCBmdW5jdGlvbiAodiwgaSkge1xuICAgICAgdmFyIG5vZGUgPSBnLm5vZGUodik7XG4gICAgICBub2RlLm9yZGVyID0gaSArIG9yZGVyU2hpZnQ7XG4gICAgICBfLmZvckVhY2gobm9kZS5zZWxmRWRnZXMsIGZ1bmN0aW9uIChzZWxmRWRnZSkge1xuICAgICAgICB1dGlsLmFkZER1bW15Tm9kZShcbiAgICAgICAgICBnLFxuICAgICAgICAgICdzZWxmZWRnZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgd2lkdGg6IHNlbGZFZGdlLmxhYmVsLndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBzZWxmRWRnZS5sYWJlbC5oZWlnaHQsXG4gICAgICAgICAgICByYW5rOiBub2RlLnJhbmssXG4gICAgICAgICAgICBvcmRlcjogaSArICsrb3JkZXJTaGlmdCxcbiAgICAgICAgICAgIGU6IHNlbGZFZGdlLmUsXG4gICAgICAgICAgICBsYWJlbDogc2VsZkVkZ2UubGFiZWwsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAnX3NlJ1xuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICBkZWxldGUgbm9kZS5zZWxmRWRnZXM7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwb3NpdGlvblNlbGZFZGdlcyhnKSB7XG4gIF8uZm9yRWFjaChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgdmFyIG5vZGUgPSBnLm5vZGUodik7XG4gICAgaWYgKG5vZGUuZHVtbXkgPT09ICdzZWxmZWRnZScpIHtcbiAgICAgIHZhciBzZWxmTm9kZSA9IGcubm9kZShub2RlLmUudik7XG4gICAgICB2YXIgeCA9IHNlbGZOb2RlLnggKyBzZWxmTm9kZS53aWR0aCAvIDI7XG4gICAgICB2YXIgeSA9IHNlbGZOb2RlLnk7XG4gICAgICB2YXIgZHggPSBub2RlLnggLSB4O1xuICAgICAgdmFyIGR5ID0gc2VsZk5vZGUuaGVpZ2h0IC8gMjtcbiAgICAgIGcuc2V0RWRnZShub2RlLmUsIG5vZGUubGFiZWwpO1xuICAgICAgZy5yZW1vdmVOb2RlKHYpO1xuICAgICAgbm9kZS5sYWJlbC5wb2ludHMgPSBbXG4gICAgICAgIHsgeDogeCArICgyICogZHgpIC8gMywgeTogeSAtIGR5IH0sXG4gICAgICAgIHsgeDogeCArICg1ICogZHgpIC8gNiwgeTogeSAtIGR5IH0sXG4gICAgICAgIHsgeDogeCArIGR4LCB5OiB5IH0sXG4gICAgICAgIHsgeDogeCArICg1ICogZHgpIC8gNiwgeTogeSArIGR5IH0sXG4gICAgICAgIHsgeDogeCArICgyICogZHgpIC8gMywgeTogeSArIGR5IH0sXG4gICAgICBdO1xuICAgICAgbm9kZS5sYWJlbC54ID0gbm9kZS54O1xuICAgICAgbm9kZS5sYWJlbC55ID0gbm9kZS55O1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdE51bWJlckF0dHJzKG9iaiwgYXR0cnMpIHtcbiAgcmV0dXJuIF8ubWFwVmFsdWVzKF8ucGljayhvYmosIGF0dHJzKSwgTnVtYmVyKTtcbn1cblxuZnVuY3Rpb24gY2Fub25pY2FsaXplKGF0dHJzKSB7XG4gIHZhciBuZXdBdHRycyA9IHt9O1xuICBfLmZvckVhY2goYXR0cnMsIGZ1bmN0aW9uICh2LCBrKSB7XG4gICAgbmV3QXR0cnNbay50b0xvd2VyQ2FzZSgpXSA9IHY7XG4gIH0pO1xuICByZXR1cm4gbmV3QXR0cnM7XG59XG4iLAogICAgImltcG9ydCAqIGFzIGFjeWNsaWMgZnJvbSAnLi9hY3ljbGljLmpzJztcbmltcG9ydCB7IGxheW91dCB9IGZyb20gJy4vbGF5b3V0LmpzJztcbmltcG9ydCAqIGFzIG5vcm1hbGl6ZSBmcm9tICcuL25vcm1hbGl6ZS5qcyc7XG5pbXBvcnQgeyByYW5rIH0gZnJvbSAnLi9yYW5rL2luZGV4LmpzJztcblxuZXhwb3J0IHsgYWN5Y2xpYywgbm9ybWFsaXplLCByYW5rLCBsYXlvdXQgfTtcbiIsCiAgICAiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuXG4vLyBQdWJsaWMgdXRpbGl0eSBmdW5jdGlvbnNcbmV4cG9ydCB7IGlzU3ViZ3JhcGgsIGVkZ2VUb0lkLCBhcHBseVN0eWxlLCBhcHBseUNsYXNzLCBhcHBseVRyYW5zaXRpb24gfTtcblxuLypcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIG5vZGUgaW4gdGhlIGdyYXBoIGlzIGEgc3ViZ3JhcGggbm9kZS4gQVxuICogc3ViZ3JhcGggbm9kZSBpcyBvbmUgdGhhdCBjb250YWlucyBvdGhlciBub2Rlcy5cbiAqL1xuZnVuY3Rpb24gaXNTdWJncmFwaChnLCB2KSB7XG4gIHJldHVybiAhIWcuY2hpbGRyZW4odikubGVuZ3RoO1xufVxuXG5mdW5jdGlvbiBlZGdlVG9JZChlKSB7XG4gIHJldHVybiBlc2NhcGVJZChlLnYpICsgJzonICsgZXNjYXBlSWQoZS53KSArICc6JyArIGVzY2FwZUlkKGUubmFtZSk7XG59XG5cbnZhciBJRF9ERUxJTSA9IC86L2c7XG5mdW5jdGlvbiBlc2NhcGVJZChzdHIpIHtcbiAgcmV0dXJuIHN0ciA/IFN0cmluZyhzdHIpLnJlcGxhY2UoSURfREVMSU0sICdcXFxcOicpIDogJyc7XG59XG5cbmZ1bmN0aW9uIGFwcGx5U3R5bGUoZG9tLCBzdHlsZUZuKSB7XG4gIGlmIChzdHlsZUZuKSB7XG4gICAgZG9tLmF0dHIoJ3N0eWxlJywgc3R5bGVGbik7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXBwbHlDbGFzcyhkb20sIGNsYXNzRm4sIG90aGVyQ2xhc3Nlcykge1xuICBpZiAoY2xhc3NGbikge1xuICAgIGRvbS5hdHRyKCdjbGFzcycsIGNsYXNzRm4pLmF0dHIoJ2NsYXNzJywgb3RoZXJDbGFzc2VzICsgJyAnICsgZG9tLmF0dHIoJ2NsYXNzJykpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFwcGx5VHJhbnNpdGlvbihzZWxlY3Rpb24sIGcpIHtcbiAgdmFyIGdyYXBoID0gZy5ncmFwaCgpO1xuXG4gIGlmIChfLmlzUGxhaW5PYmplY3QoZ3JhcGgpKSB7XG4gICAgdmFyIHRyYW5zaXRpb24gPSBncmFwaC50cmFuc2l0aW9uO1xuICAgIGlmIChfLmlzRnVuY3Rpb24odHJhbnNpdGlvbikpIHtcbiAgICAgIHJldHVybiB0cmFuc2l0aW9uKHNlbGVjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHNlbGVjdGlvbjtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0aWwuanMnO1xuXG5leHBvcnQgeyBhcnJvd3MsIHNldEFycm93cyB9O1xuXG52YXIgYXJyb3dzID0ge1xuICBub3JtYWwsXG4gIHZlZSxcbiAgdW5kaXJlY3RlZCxcbn07XG5cbmZ1bmN0aW9uIHNldEFycm93cyh2YWx1ZSkge1xuICBhcnJvd3MgPSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsKHBhcmVudCwgaWQsIGVkZ2UsIHR5cGUpIHtcbiAgdmFyIG1hcmtlciA9IHBhcmVudFxuICAgIC5hcHBlbmQoJ21hcmtlcicpXG4gICAgLmF0dHIoJ2lkJywgaWQpXG4gICAgLmF0dHIoJ3ZpZXdCb3gnLCAnMCAwIDEwIDEwJylcbiAgICAuYXR0cigncmVmWCcsIDkpXG4gICAgLmF0dHIoJ3JlZlknLCA1KVxuICAgIC5hdHRyKCdtYXJrZXJVbml0cycsICdzdHJva2VXaWR0aCcpXG4gICAgLmF0dHIoJ21hcmtlcldpZHRoJywgOClcbiAgICAuYXR0cignbWFya2VySGVpZ2h0JywgNilcbiAgICAuYXR0cignb3JpZW50JywgJ2F1dG8nKTtcblxuICB2YXIgcGF0aCA9IG1hcmtlclxuICAgIC5hcHBlbmQoJ3BhdGgnKVxuICAgIC5hdHRyKCdkJywgJ00gMCAwIEwgMTAgNSBMIDAgMTAgeicpXG4gICAgLnN0eWxlKCdzdHJva2Utd2lkdGgnLCAxKVxuICAgIC5zdHlsZSgnc3Ryb2tlLWRhc2hhcnJheScsICcxLDAnKTtcbiAgdXRpbC5hcHBseVN0eWxlKHBhdGgsIGVkZ2VbdHlwZSArICdTdHlsZSddKTtcbiAgaWYgKGVkZ2VbdHlwZSArICdDbGFzcyddKSB7XG4gICAgcGF0aC5hdHRyKCdjbGFzcycsIGVkZ2VbdHlwZSArICdDbGFzcyddKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2ZWUocGFyZW50LCBpZCwgZWRnZSwgdHlwZSkge1xuICB2YXIgbWFya2VyID0gcGFyZW50XG4gICAgLmFwcGVuZCgnbWFya2VyJylcbiAgICAuYXR0cignaWQnLCBpZClcbiAgICAuYXR0cigndmlld0JveCcsICcwIDAgMTAgMTAnKVxuICAgIC5hdHRyKCdyZWZYJywgOSlcbiAgICAuYXR0cigncmVmWScsIDUpXG4gICAgLmF0dHIoJ21hcmtlclVuaXRzJywgJ3N0cm9rZVdpZHRoJylcbiAgICAuYXR0cignbWFya2VyV2lkdGgnLCA4KVxuICAgIC5hdHRyKCdtYXJrZXJIZWlnaHQnLCA2KVxuICAgIC5hdHRyKCdvcmllbnQnLCAnYXV0bycpO1xuXG4gIHZhciBwYXRoID0gbWFya2VyXG4gICAgLmFwcGVuZCgncGF0aCcpXG4gICAgLmF0dHIoJ2QnLCAnTSAwIDAgTCAxMCA1IEwgMCAxMCBMIDQgNSB6JylcbiAgICAuc3R5bGUoJ3N0cm9rZS13aWR0aCcsIDEpXG4gICAgLnN0eWxlKCdzdHJva2UtZGFzaGFycmF5JywgJzEsMCcpO1xuICB1dGlsLmFwcGx5U3R5bGUocGF0aCwgZWRnZVt0eXBlICsgJ1N0eWxlJ10pO1xuICBpZiAoZWRnZVt0eXBlICsgJ0NsYXNzJ10pIHtcbiAgICBwYXRoLmF0dHIoJ2NsYXNzJywgZWRnZVt0eXBlICsgJ0NsYXNzJ10pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVuZGlyZWN0ZWQocGFyZW50LCBpZCwgZWRnZSwgdHlwZSkge1xuICB2YXIgbWFya2VyID0gcGFyZW50XG4gICAgLmFwcGVuZCgnbWFya2VyJylcbiAgICAuYXR0cignaWQnLCBpZClcbiAgICAuYXR0cigndmlld0JveCcsICcwIDAgMTAgMTAnKVxuICAgIC5hdHRyKCdyZWZYJywgOSlcbiAgICAuYXR0cigncmVmWScsIDUpXG4gICAgLmF0dHIoJ21hcmtlclVuaXRzJywgJ3N0cm9rZVdpZHRoJylcbiAgICAuYXR0cignbWFya2VyV2lkdGgnLCA4KVxuICAgIC5hdHRyKCdtYXJrZXJIZWlnaHQnLCA2KVxuICAgIC5hdHRyKCdvcmllbnQnLCAnYXV0bycpO1xuXG4gIHZhciBwYXRoID0gbWFya2VyXG4gICAgLmFwcGVuZCgncGF0aCcpXG4gICAgLmF0dHIoJ2QnLCAnTSAwIDUgTCAxMCA1JylcbiAgICAuc3R5bGUoJ3N0cm9rZS13aWR0aCcsIDEpXG4gICAgLnN0eWxlKCdzdHJva2UtZGFzaGFycmF5JywgJzEsMCcpO1xuICB1dGlsLmFwcGx5U3R5bGUocGF0aCwgZWRnZVt0eXBlICsgJ1N0eWxlJ10pO1xuICBpZiAoZWRnZVt0eXBlICsgJ0NsYXNzJ10pIHtcbiAgICBwYXRoLmF0dHIoJ2NsYXNzJywgZWRnZVt0eXBlICsgJ0NsYXNzJ10pO1xuICB9XG59XG4iLAogICAgImltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi4vdXRpbC5qcyc7XG5cbmV4cG9ydCB7IGFkZEh0bWxMYWJlbCB9O1xuXG5mdW5jdGlvbiBhZGRIdG1sTGFiZWwocm9vdCwgbm9kZSkge1xuICB2YXIgZm8gPSByb290LmFwcGVuZCgnZm9yZWlnbk9iamVjdCcpLmF0dHIoJ3dpZHRoJywgJzEwMDAwMCcpO1xuXG4gIHZhciBkaXYgPSBmby5hcHBlbmQoJ3hodG1sOmRpdicpO1xuICBkaXYuYXR0cigneG1sbnMnLCAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcpO1xuXG4gIHZhciBsYWJlbCA9IG5vZGUubGFiZWw7XG4gIHN3aXRjaCAodHlwZW9mIGxhYmVsKSB7XG4gICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgZGl2Lmluc2VydChsYWJlbCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdvYmplY3QnOlxuICAgICAgLy8gQ3VycmVudGx5IHdlIGFzc3VtZSB0aGlzIGlzIGEgRE9NIG9iamVjdC5cbiAgICAgIGRpdi5pbnNlcnQoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbGFiZWw7XG4gICAgICB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBkaXYuaHRtbChsYWJlbCk7XG4gIH1cblxuICB1dGlsLmFwcGx5U3R5bGUoZGl2LCBub2RlLmxhYmVsU3R5bGUpO1xuICBkaXYuc3R5bGUoJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyk7XG4gIC8vIEZpeCBmb3IgZmlyZWZveFxuICBkaXYuc3R5bGUoJ3doaXRlLXNwYWNlJywgJ25vd3JhcCcpO1xuXG4gIHZhciBjbGllbnQgPSBkaXYubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBmby5hdHRyKCd3aWR0aCcsIGNsaWVudC53aWR0aCkuYXR0cignaGVpZ2h0JywgY2xpZW50LmhlaWdodCk7XG5cbiAgcmV0dXJuIGZvO1xufVxuIiwKICAgICJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4uL3V0aWwuanMnO1xuXG5leHBvcnQgeyBhZGRTVkdMYWJlbCB9O1xuXG5mdW5jdGlvbiBhZGRTVkdMYWJlbChyb290LCBub2RlKSB7XG4gIHZhciBkb21Ob2RlID0gcm9vdDtcblxuICBkb21Ob2RlLm5vZGUoKS5hcHBlbmRDaGlsZChub2RlLmxhYmVsKTtcblxuICB1dGlsLmFwcGx5U3R5bGUoZG9tTm9kZSwgbm9kZS5sYWJlbFN0eWxlKTtcblxuICByZXR1cm4gZG9tTm9kZTtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuLi91dGlsLmpzJztcblxuZXhwb3J0IHsgYWRkVGV4dExhYmVsIH07XG5cbi8qXG4gKiBBdHRhY2hlcyBhIHRleHQgbGFiZWwgdG8gdGhlIHNwZWNpZmllZCByb290LiBIYW5kbGVzIGVzY2FwZSBzZXF1ZW5jZXMuXG4gKi9cbmZ1bmN0aW9uIGFkZFRleHRMYWJlbChyb290LCBub2RlKSB7XG4gIHZhciBkb21Ob2RlID0gcm9vdC5hcHBlbmQoJ3RleHQnKTtcblxuICB2YXIgbGluZXMgPSBwcm9jZXNzRXNjYXBlU2VxdWVuY2VzKG5vZGUubGFiZWwpLnNwbGl0KCdcXG4nKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGRvbU5vZGVcbiAgICAgIC5hcHBlbmQoJ3RzcGFuJylcbiAgICAgIC5hdHRyKCd4bWw6c3BhY2UnLCAncHJlc2VydmUnKVxuICAgICAgLmF0dHIoJ2R5JywgJzFlbScpXG4gICAgICAuYXR0cigneCcsICcxJylcbiAgICAgIC50ZXh0KGxpbmVzW2ldKTtcbiAgfVxuXG4gIHV0aWwuYXBwbHlTdHlsZShkb21Ob2RlLCBub2RlLmxhYmVsU3R5bGUpO1xuXG4gIHJldHVybiBkb21Ob2RlO1xufVxuXG5mdW5jdGlvbiBwcm9jZXNzRXNjYXBlU2VxdWVuY2VzKHRleHQpIHtcbiAgdmFyIG5ld1RleHQgPSAnJztcbiAgdmFyIGVzY2FwZWQgPSBmYWxzZTtcbiAgdmFyIGNoO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyArK2kpIHtcbiAgICBjaCA9IHRleHRbaV07XG4gICAgaWYgKGVzY2FwZWQpIHtcbiAgICAgIHN3aXRjaCAoY2gpIHtcbiAgICAgICAgY2FzZSAnbic6XG4gICAgICAgICAgbmV3VGV4dCArPSAnXFxuJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBuZXdUZXh0ICs9IGNoO1xuICAgICAgfVxuICAgICAgZXNjYXBlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoY2ggPT09ICdcXFxcJykge1xuICAgICAgZXNjYXBlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1RleHQgKz0gY2g7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdUZXh0O1xufVxuIiwKICAgICJpbXBvcnQgeyBhZGRIdG1sTGFiZWwgfSBmcm9tICcuL2FkZC1odG1sLWxhYmVsLmpzJztcbmltcG9ydCB7IGFkZFNWR0xhYmVsIH0gZnJvbSAnLi9hZGQtc3ZnLWxhYmVsLmpzJztcbmltcG9ydCB7IGFkZFRleHRMYWJlbCB9IGZyb20gJy4vYWRkLXRleHQtbGFiZWwuanMnO1xuXG5leHBvcnQgeyBhZGRMYWJlbCB9O1xuXG5mdW5jdGlvbiBhZGRMYWJlbChyb290LCBub2RlLCBsb2NhdGlvbikge1xuICB2YXIgbGFiZWwgPSBub2RlLmxhYmVsO1xuICB2YXIgbGFiZWxTdmcgPSByb290LmFwcGVuZCgnZycpO1xuXG4gIC8vIEFsbG93IHRoZSBsYWJlbCB0byBiZSBhIHN0cmluZywgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBET00gZWxlbWVudCwgb3JcbiAgLy8gYSBET00gZWxlbWVudCBpdHNlbGYuXG4gIGlmIChub2RlLmxhYmVsVHlwZSA9PT0gJ3N2ZycpIHtcbiAgICBhZGRTVkdMYWJlbChsYWJlbFN2Zywgbm9kZSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGxhYmVsICE9PSAnc3RyaW5nJyB8fCBub2RlLmxhYmVsVHlwZSA9PT0gJ2h0bWwnKSB7XG4gICAgYWRkSHRtbExhYmVsKGxhYmVsU3ZnLCBub2RlKTtcbiAgfSBlbHNlIHtcbiAgICBhZGRUZXh0TGFiZWwobGFiZWxTdmcsIG5vZGUpO1xuICB9XG5cbiAgdmFyIGxhYmVsQkJveCA9IGxhYmVsU3ZnLm5vZGUoKS5nZXRCQm94KCk7XG4gIHZhciB5O1xuICBzd2l0Y2ggKGxvY2F0aW9uKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHkgPSAtbm9kZS5oZWlnaHQgLyAyO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIHkgPSBub2RlLmhlaWdodCAvIDIgLSBsYWJlbEJCb3guaGVpZ2h0O1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHkgPSAtbGFiZWxCQm94LmhlaWdodCAvIDI7XG4gIH1cbiAgbGFiZWxTdmcuYXR0cigndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgnICsgLWxhYmVsQkJveC53aWR0aCAvIDIgKyAnLCcgKyB5ICsgJyknKTtcblxuICByZXR1cm4gbGFiZWxTdmc7XG59XG4iLAogICAgImltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7IGFkZExhYmVsIH0gZnJvbSAnLi9sYWJlbC9hZGQtbGFiZWwuanMnO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0aWwuanMnO1xuXG5leHBvcnQgeyBjcmVhdGVDbHVzdGVycywgc2V0Q3JlYXRlQ2x1c3RlcnMgfTtcblxudmFyIGNyZWF0ZUNsdXN0ZXJzID0gZnVuY3Rpb24gKHNlbGVjdGlvbiwgZykge1xuICB2YXIgY2x1c3RlcnMgPSBnLm5vZGVzKCkuZmlsdGVyKGZ1bmN0aW9uICh2KSB7XG4gICAgcmV0dXJuIHV0aWwuaXNTdWJncmFwaChnLCB2KTtcbiAgfSk7XG4gIHZhciBzdmdDbHVzdGVycyA9IHNlbGVjdGlvbi5zZWxlY3RBbGwoJ2cuY2x1c3RlcicpLmRhdGEoY2x1c3RlcnMsIGZ1bmN0aW9uICh2KSB7XG4gICAgcmV0dXJuIHY7XG4gIH0pO1xuXG4gIHV0aWwuYXBwbHlUcmFuc2l0aW9uKHN2Z0NsdXN0ZXJzLmV4aXQoKSwgZykuc3R5bGUoJ29wYWNpdHknLCAwKS5yZW1vdmUoKTtcblxuICB2YXIgZW50ZXJTZWxlY3Rpb24gPSBzdmdDbHVzdGVyc1xuICAgIC5lbnRlcigpXG4gICAgLmFwcGVuZCgnZycpXG4gICAgLmF0dHIoJ2NsYXNzJywgJ2NsdXN0ZXInKVxuICAgIC5hdHRyKCdpZCcsIGZ1bmN0aW9uICh2KSB7XG4gICAgICB2YXIgbm9kZSA9IGcubm9kZSh2KTtcbiAgICAgIHJldHVybiBub2RlLmlkO1xuICAgIH0pXG4gICAgLnN0eWxlKCdvcGFjaXR5JywgMClcbiAgICAuZWFjaChmdW5jdGlvbiAodikge1xuICAgICAgdmFyIG5vZGUgPSBnLm5vZGUodik7XG4gICAgICB2YXIgdGhpc0dyb3VwID0gZDMuc2VsZWN0KHRoaXMpO1xuICAgICAgZDMuc2VsZWN0KHRoaXMpLmFwcGVuZCgncmVjdCcpO1xuICAgICAgdmFyIGxhYmVsR3JvdXAgPSB0aGlzR3JvdXAuYXBwZW5kKCdnJykuYXR0cignY2xhc3MnLCAnbGFiZWwnKTtcbiAgICAgIGFkZExhYmVsKGxhYmVsR3JvdXAsIG5vZGUsIG5vZGUuY2x1c3RlckxhYmVsUG9zKTtcbiAgICB9KTtcblxuICBzdmdDbHVzdGVycyA9IHN2Z0NsdXN0ZXJzLm1lcmdlKGVudGVyU2VsZWN0aW9uKTtcblxuICBzdmdDbHVzdGVycyA9IHV0aWwuYXBwbHlUcmFuc2l0aW9uKHN2Z0NsdXN0ZXJzLCBnKS5zdHlsZSgnb3BhY2l0eScsIDEpO1xuXG4gIHN2Z0NsdXN0ZXJzLnNlbGVjdEFsbCgncmVjdCcpLmVhY2goZnVuY3Rpb24gKGMpIHtcbiAgICB2YXIgbm9kZSA9IGcubm9kZShjKTtcbiAgICB2YXIgZG9tQ2x1c3RlciA9IGQzLnNlbGVjdCh0aGlzKTtcbiAgICB1dGlsLmFwcGx5U3R5bGUoZG9tQ2x1c3Rlciwgbm9kZS5zdHlsZSk7XG4gIH0pO1xuXG4gIHJldHVybiBzdmdDbHVzdGVycztcbn07XG5cbmZ1bmN0aW9uIHNldENyZWF0ZUNsdXN0ZXJzKHZhbHVlKSB7XG4gIGNyZWF0ZUNsdXN0ZXJzID0gdmFsdWU7XG59XG4iLAogICAgImltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGFkZExhYmVsIH0gZnJvbSAnLi9sYWJlbC9hZGQtbGFiZWwuanMnO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0aWwuanMnO1xuXG5leHBvcnQgeyBjcmVhdGVFZGdlTGFiZWxzLCBzZXRDcmVhdGVFZGdlTGFiZWxzIH07XG5cbmxldCBjcmVhdGVFZGdlTGFiZWxzID0gZnVuY3Rpb24gKHNlbGVjdGlvbiwgZykge1xuICB2YXIgc3ZnRWRnZUxhYmVscyA9IHNlbGVjdGlvblxuICAgIC5zZWxlY3RBbGwoJ2cuZWRnZUxhYmVsJylcbiAgICAuZGF0YShnLmVkZ2VzKCksIGZ1bmN0aW9uIChlKSB7XG4gICAgICByZXR1cm4gdXRpbC5lZGdlVG9JZChlKTtcbiAgICB9KVxuICAgIC5jbGFzc2VkKCd1cGRhdGUnLCB0cnVlKTtcblxuICBzdmdFZGdlTGFiZWxzLmV4aXQoKS5yZW1vdmUoKTtcbiAgc3ZnRWRnZUxhYmVscy5lbnRlcigpLmFwcGVuZCgnZycpLmNsYXNzZWQoJ2VkZ2VMYWJlbCcsIHRydWUpLnN0eWxlKCdvcGFjaXR5JywgMCk7XG5cbiAgc3ZnRWRnZUxhYmVscyA9IHNlbGVjdGlvbi5zZWxlY3RBbGwoJ2cuZWRnZUxhYmVsJyk7XG5cbiAgc3ZnRWRnZUxhYmVscy5lYWNoKGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyIHJvb3QgPSBkMy5zZWxlY3QodGhpcyk7XG4gICAgcm9vdC5zZWxlY3QoJy5sYWJlbCcpLnJlbW92ZSgpO1xuICAgIHZhciBlZGdlID0gZy5lZGdlKGUpO1xuICAgIHZhciBsYWJlbCA9IGFkZExhYmVsKHJvb3QsIGcuZWRnZShlKSwgMCkuY2xhc3NlZCgnbGFiZWwnLCB0cnVlKTtcbiAgICB2YXIgYmJveCA9IGxhYmVsLm5vZGUoKS5nZXRCQm94KCk7XG5cbiAgICBpZiAoZWRnZS5sYWJlbElkKSB7XG4gICAgICBsYWJlbC5hdHRyKCdpZCcsIGVkZ2UubGFiZWxJZCk7XG4gICAgfVxuICAgIGlmICghXy5oYXMoZWRnZSwgJ3dpZHRoJykpIHtcbiAgICAgIGVkZ2Uud2lkdGggPSBiYm94LndpZHRoO1xuICAgIH1cbiAgICBpZiAoIV8uaGFzKGVkZ2UsICdoZWlnaHQnKSkge1xuICAgICAgZWRnZS5oZWlnaHQgPSBiYm94LmhlaWdodDtcbiAgICB9XG4gIH0pO1xuXG4gIHZhciBleGl0U2VsZWN0aW9uO1xuXG4gIGlmIChzdmdFZGdlTGFiZWxzLmV4aXQpIHtcbiAgICBleGl0U2VsZWN0aW9uID0gc3ZnRWRnZUxhYmVscy5leGl0KCk7XG4gIH0gZWxzZSB7XG4gICAgZXhpdFNlbGVjdGlvbiA9IHN2Z0VkZ2VMYWJlbHMuc2VsZWN0QWxsKG51bGwpOyAvLyBlbXB0eSBzZWxlY3Rpb25cbiAgfVxuXG4gIHV0aWwuYXBwbHlUcmFuc2l0aW9uKGV4aXRTZWxlY3Rpb24sIGcpLnN0eWxlKCdvcGFjaXR5JywgMCkucmVtb3ZlKCk7XG5cbiAgcmV0dXJuIHN2Z0VkZ2VMYWJlbHM7XG59O1xuXG5mdW5jdGlvbiBzZXRDcmVhdGVFZGdlTGFiZWxzKHZhbHVlKSB7XG4gIGNyZWF0ZUVkZ2VMYWJlbHMgPSB2YWx1ZTtcbn1cbiIsCiAgICAiZXhwb3J0IHsgaW50ZXJzZWN0Tm9kZSB9O1xuXG5mdW5jdGlvbiBpbnRlcnNlY3ROb2RlKG5vZGUsIHBvaW50KSB7XG4gIHJldHVybiBub2RlLmludGVyc2VjdChwb2ludCk7XG59XG4iLAogICAgImltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGludGVyc2VjdE5vZGUgfSBmcm9tICcuL2ludGVyc2VjdC9pbnRlcnNlY3Qtbm9kZS5qcyc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4vdXRpbC5qcyc7XG5cbmV4cG9ydCB7IGNyZWF0ZUVkZ2VQYXRocywgc2V0Q3JlYXRlRWRnZVBhdGhzIH07XG5cbnZhciBjcmVhdGVFZGdlUGF0aHMgPSBmdW5jdGlvbiAoc2VsZWN0aW9uLCBnLCBhcnJvd3MpIHtcbiAgdmFyIHByZXZpb3VzUGF0aHMgPSBzZWxlY3Rpb25cbiAgICAuc2VsZWN0QWxsKCdnLmVkZ2VQYXRoJylcbiAgICAuZGF0YShnLmVkZ2VzKCksIGZ1bmN0aW9uIChlKSB7XG4gICAgICByZXR1cm4gdXRpbC5lZGdlVG9JZChlKTtcbiAgICB9KVxuICAgIC5jbGFzc2VkKCd1cGRhdGUnLCB0cnVlKTtcblxuICB2YXIgbmV3UGF0aHMgPSBlbnRlcihwcmV2aW91c1BhdGhzLCBnKTtcbiAgZXhpdChwcmV2aW91c1BhdGhzLCBnKTtcblxuICB2YXIgc3ZnUGF0aHMgPSBwcmV2aW91c1BhdGhzLm1lcmdlICE9PSB1bmRlZmluZWQgPyBwcmV2aW91c1BhdGhzLm1lcmdlKG5ld1BhdGhzKSA6IHByZXZpb3VzUGF0aHM7XG4gIHV0aWwuYXBwbHlUcmFuc2l0aW9uKHN2Z1BhdGhzLCBnKS5zdHlsZSgnb3BhY2l0eScsIDEpO1xuXG4gIC8vIFNhdmUgRE9NIGVsZW1lbnQgaW4gdGhlIHBhdGggZ3JvdXAsIGFuZCBzZXQgSUQgYW5kIGNsYXNzXG4gIHN2Z1BhdGhzLmVhY2goZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgZG9tRWRnZSA9IGQzLnNlbGVjdCh0aGlzKTtcbiAgICB2YXIgZWRnZSA9IGcuZWRnZShlKTtcbiAgICBlZGdlLmVsZW0gPSB0aGlzO1xuXG4gICAgaWYgKGVkZ2UuaWQpIHtcbiAgICAgIGRvbUVkZ2UuYXR0cignaWQnLCBlZGdlLmlkKTtcbiAgICB9XG5cbiAgICB1dGlsLmFwcGx5Q2xhc3MoXG4gICAgICBkb21FZGdlLFxuICAgICAgZWRnZVsnY2xhc3MnXSxcbiAgICAgIChkb21FZGdlLmNsYXNzZWQoJ3VwZGF0ZScpID8gJ3VwZGF0ZSAnIDogJycpICsgJ2VkZ2VQYXRoJ1xuICAgICk7XG4gIH0pO1xuXG4gIHN2Z1BhdGhzLnNlbGVjdEFsbCgncGF0aC5wYXRoJykuZWFjaChmdW5jdGlvbiAoZSkge1xuICAgIHZhciBlZGdlID0gZy5lZGdlKGUpO1xuICAgIGVkZ2UuYXJyb3doZWFkSWQgPSBfLnVuaXF1ZUlkKCdhcnJvd2hlYWQnKTtcblxuICAgIHZhciBkb21FZGdlID0gZDNcbiAgICAgIC5zZWxlY3QodGhpcylcbiAgICAgIC5hdHRyKCdtYXJrZXItZW5kJywgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJ3VybCgnICsgbWFrZUZyYWdtZW50UmVmKGxvY2F0aW9uLmhyZWYsIGVkZ2UuYXJyb3doZWFkSWQpICsgJyknO1xuICAgICAgfSlcbiAgICAgIC5zdHlsZSgnZmlsbCcsICdub25lJyk7XG5cbiAgICB1dGlsLmFwcGx5VHJhbnNpdGlvbihkb21FZGdlLCBnKS5hdHRyKCdkJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIHJldHVybiBjYWxjUG9pbnRzKGcsIGUpO1xuICAgIH0pO1xuXG4gICAgdXRpbC5hcHBseVN0eWxlKGRvbUVkZ2UsIGVkZ2Uuc3R5bGUpO1xuICB9KTtcblxuICBzdmdQYXRocy5zZWxlY3RBbGwoJ2RlZnMgKicpLnJlbW92ZSgpO1xuICBzdmdQYXRocy5zZWxlY3RBbGwoJ2RlZnMnKS5lYWNoKGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyIGVkZ2UgPSBnLmVkZ2UoZSk7XG4gICAgdmFyIGFycm93aGVhZCA9IGFycm93c1tlZGdlLmFycm93aGVhZF07XG4gICAgYXJyb3doZWFkKGQzLnNlbGVjdCh0aGlzKSwgZWRnZS5hcnJvd2hlYWRJZCwgZWRnZSwgJ2Fycm93aGVhZCcpO1xuICB9KTtcblxuICByZXR1cm4gc3ZnUGF0aHM7XG59O1xuXG5mdW5jdGlvbiBzZXRDcmVhdGVFZGdlUGF0aHModmFsdWUpIHtcbiAgY3JlYXRlRWRnZVBhdGhzID0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIG1ha2VGcmFnbWVudFJlZih1cmwsIGZyYWdtZW50SWQpIHtcbiAgdmFyIGJhc2VVcmwgPSB1cmwuc3BsaXQoJyMnKVswXTtcbiAgcmV0dXJuIGJhc2VVcmwgKyAnIycgKyBmcmFnbWVudElkO1xufVxuXG5mdW5jdGlvbiBjYWxjUG9pbnRzKGcsIGUpIHtcbiAgdmFyIGVkZ2UgPSBnLmVkZ2UoZSk7XG4gIHZhciB0YWlsID0gZy5ub2RlKGUudik7XG4gIHZhciBoZWFkID0gZy5ub2RlKGUudyk7XG4gIHZhciBwb2ludHMgPSBlZGdlLnBvaW50cy5zbGljZSgxLCBlZGdlLnBvaW50cy5sZW5ndGggLSAxKTtcbiAgcG9pbnRzLnVuc2hpZnQoaW50ZXJzZWN0Tm9kZSh0YWlsLCBwb2ludHNbMF0pKTtcbiAgcG9pbnRzLnB1c2goaW50ZXJzZWN0Tm9kZShoZWFkLCBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdKSk7XG5cbiAgcmV0dXJuIGNyZWF0ZUxpbmUoZWRnZSwgcG9pbnRzKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTGluZShlZGdlLCBwb2ludHMpIHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICB2YXIgbGluZSA9IChkMy5saW5lIHx8IGQzLnN2Zy5saW5lKSgpXG4gICAgLngoZnVuY3Rpb24gKGQpIHtcbiAgICAgIHJldHVybiBkLng7XG4gICAgfSlcbiAgICAueShmdW5jdGlvbiAoZCkge1xuICAgICAgcmV0dXJuIGQueTtcbiAgICB9KTtcblxuICAobGluZS5jdXJ2ZSB8fCBsaW5lLmludGVycG9sYXRlKShlZGdlLmN1cnZlKTtcblxuICByZXR1cm4gbGluZShwb2ludHMpO1xufVxuXG5mdW5jdGlvbiBnZXRDb29yZHMoZWxlbSkge1xuICB2YXIgYmJveCA9IGVsZW0uZ2V0QkJveCgpO1xuICB2YXIgbWF0cml4ID0gZWxlbS5vd25lclNWR0VsZW1lbnRcbiAgICAuZ2V0U2NyZWVuQ1RNKClcbiAgICAuaW52ZXJzZSgpXG4gICAgLm11bHRpcGx5KGVsZW0uZ2V0U2NyZWVuQ1RNKCkpXG4gICAgLnRyYW5zbGF0ZShiYm94LndpZHRoIC8gMiwgYmJveC5oZWlnaHQgLyAyKTtcbiAgcmV0dXJuIHsgeDogbWF0cml4LmUsIHk6IG1hdHJpeC5mIH07XG59XG5cbmZ1bmN0aW9uIGVudGVyKHN2Z1BhdGhzLCBnKSB7XG4gIHZhciBzdmdQYXRoc0VudGVyID0gc3ZnUGF0aHMuZW50ZXIoKS5hcHBlbmQoJ2cnKS5hdHRyKCdjbGFzcycsICdlZGdlUGF0aCcpLnN0eWxlKCdvcGFjaXR5JywgMCk7XG4gIHN2Z1BhdGhzRW50ZXJcbiAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAuYXR0cignY2xhc3MnLCAncGF0aCcpXG4gICAgLmF0dHIoJ2QnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIGVkZ2UgPSBnLmVkZ2UoZSk7XG4gICAgICB2YXIgc291cmNlRWxlbSA9IGcubm9kZShlLnYpLmVsZW07XG4gICAgICB2YXIgcG9pbnRzID0gXy5yYW5nZShlZGdlLnBvaW50cy5sZW5ndGgpLm1hcChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBnZXRDb29yZHMoc291cmNlRWxlbSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjcmVhdGVMaW5lKGVkZ2UsIHBvaW50cyk7XG4gICAgfSk7XG4gIHN2Z1BhdGhzRW50ZXIuYXBwZW5kKCdkZWZzJyk7XG4gIHJldHVybiBzdmdQYXRoc0VudGVyO1xufVxuXG5mdW5jdGlvbiBleGl0KHN2Z1BhdGhzLCBnKSB7XG4gIHZhciBzdmdQYXRoRXhpdCA9IHN2Z1BhdGhzLmV4aXQoKTtcbiAgdXRpbC5hcHBseVRyYW5zaXRpb24oc3ZnUGF0aEV4aXQsIGcpLnN0eWxlKCdvcGFjaXR5JywgMCkucmVtb3ZlKCk7XG59XG4iLAogICAgImltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGFkZExhYmVsIH0gZnJvbSAnLi9sYWJlbC9hZGQtbGFiZWwuanMnO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0aWwuanMnO1xuXG5leHBvcnQgeyBjcmVhdGVOb2Rlcywgc2V0Q3JlYXRlTm9kZXMgfTtcblxudmFyIGNyZWF0ZU5vZGVzID0gZnVuY3Rpb24gKHNlbGVjdGlvbiwgZywgc2hhcGVzKSB7XG4gIHZhciBzaW1wbGVOb2RlcyA9IGcubm9kZXMoKS5maWx0ZXIoZnVuY3Rpb24gKHYpIHtcbiAgICByZXR1cm4gIXV0aWwuaXNTdWJncmFwaChnLCB2KTtcbiAgfSk7XG4gIHZhciBzdmdOb2RlcyA9IHNlbGVjdGlvblxuICAgIC5zZWxlY3RBbGwoJ2cubm9kZScpXG4gICAgLmRhdGEoc2ltcGxlTm9kZXMsIGZ1bmN0aW9uICh2KSB7XG4gICAgICByZXR1cm4gdjtcbiAgICB9KVxuICAgIC5jbGFzc2VkKCd1cGRhdGUnLCB0cnVlKTtcblxuICBzdmdOb2Rlcy5leGl0KCkucmVtb3ZlKCk7XG5cbiAgc3ZnTm9kZXMuZW50ZXIoKS5hcHBlbmQoJ2cnKS5hdHRyKCdjbGFzcycsICdub2RlJykuc3R5bGUoJ29wYWNpdHknLCAwKTtcblxuICBzdmdOb2RlcyA9IHNlbGVjdGlvbi5zZWxlY3RBbGwoJ2cubm9kZScpO1xuXG4gIHN2Z05vZGVzLmVhY2goZnVuY3Rpb24gKHYpIHtcbiAgICB2YXIgbm9kZSA9IGcubm9kZSh2KTtcbiAgICB2YXIgdGhpc0dyb3VwID0gZDMuc2VsZWN0KHRoaXMpO1xuICAgIHV0aWwuYXBwbHlDbGFzcyhcbiAgICAgIHRoaXNHcm91cCxcbiAgICAgIG5vZGVbJ2NsYXNzJ10sXG4gICAgICAodGhpc0dyb3VwLmNsYXNzZWQoJ3VwZGF0ZScpID8gJ3VwZGF0ZSAnIDogJycpICsgJ25vZGUnXG4gICAgKTtcblxuICAgIHRoaXNHcm91cC5zZWxlY3QoJ2cubGFiZWwnKS5yZW1vdmUoKTtcbiAgICB2YXIgbGFiZWxHcm91cCA9IHRoaXNHcm91cC5hcHBlbmQoJ2cnKS5hdHRyKCdjbGFzcycsICdsYWJlbCcpO1xuICAgIHZhciBsYWJlbERvbSA9IGFkZExhYmVsKGxhYmVsR3JvdXAsIG5vZGUpO1xuICAgIHZhciBzaGFwZSA9IHNoYXBlc1tub2RlLnNoYXBlXTtcbiAgICB2YXIgYmJveCA9IF8ucGljayhsYWJlbERvbS5ub2RlKCkuZ2V0QkJveCgpLCAnd2lkdGgnLCAnaGVpZ2h0Jyk7XG5cbiAgICBub2RlLmVsZW0gPSB0aGlzO1xuXG4gICAgaWYgKG5vZGUuaWQpIHtcbiAgICAgIHRoaXNHcm91cC5hdHRyKCdpZCcsIG5vZGUuaWQpO1xuICAgIH1cbiAgICBpZiAobm9kZS5sYWJlbElkKSB7XG4gICAgICBsYWJlbEdyb3VwLmF0dHIoJ2lkJywgbm9kZS5sYWJlbElkKTtcbiAgICB9XG5cbiAgICBpZiAoXy5oYXMobm9kZSwgJ3dpZHRoJykpIHtcbiAgICAgIGJib3gud2lkdGggPSBub2RlLndpZHRoO1xuICAgIH1cbiAgICBpZiAoXy5oYXMobm9kZSwgJ2hlaWdodCcpKSB7XG4gICAgICBiYm94LmhlaWdodCA9IG5vZGUuaGVpZ2h0O1xuICAgIH1cblxuICAgIGJib3gud2lkdGggKz0gbm9kZS5wYWRkaW5nTGVmdCArIG5vZGUucGFkZGluZ1JpZ2h0O1xuICAgIGJib3guaGVpZ2h0ICs9IG5vZGUucGFkZGluZ1RvcCArIG5vZGUucGFkZGluZ0JvdHRvbTtcbiAgICBsYWJlbEdyb3VwLmF0dHIoXG4gICAgICAndHJhbnNmb3JtJyxcbiAgICAgICd0cmFuc2xhdGUoJyArXG4gICAgICAgIChub2RlLnBhZGRpbmdMZWZ0IC0gbm9kZS5wYWRkaW5nUmlnaHQpIC8gMiArXG4gICAgICAgICcsJyArXG4gICAgICAgIChub2RlLnBhZGRpbmdUb3AgLSBub2RlLnBhZGRpbmdCb3R0b20pIC8gMiArXG4gICAgICAgICcpJ1xuICAgICk7XG5cbiAgICB2YXIgcm9vdCA9IGQzLnNlbGVjdCh0aGlzKTtcbiAgICByb290LnNlbGVjdCgnLmxhYmVsLWNvbnRhaW5lcicpLnJlbW92ZSgpO1xuICAgIHZhciBzaGFwZVN2ZyA9IHNoYXBlKHJvb3QsIGJib3gsIG5vZGUpLmNsYXNzZWQoJ2xhYmVsLWNvbnRhaW5lcicsIHRydWUpO1xuICAgIHV0aWwuYXBwbHlTdHlsZShzaGFwZVN2Zywgbm9kZS5zdHlsZSk7XG5cbiAgICB2YXIgc2hhcGVCQm94ID0gc2hhcGVTdmcubm9kZSgpLmdldEJCb3goKTtcbiAgICBub2RlLndpZHRoID0gc2hhcGVCQm94LndpZHRoO1xuICAgIG5vZGUuaGVpZ2h0ID0gc2hhcGVCQm94LmhlaWdodDtcbiAgfSk7XG5cbiAgdmFyIGV4aXRTZWxlY3Rpb247XG5cbiAgaWYgKHN2Z05vZGVzLmV4aXQpIHtcbiAgICBleGl0U2VsZWN0aW9uID0gc3ZnTm9kZXMuZXhpdCgpO1xuICB9IGVsc2Uge1xuICAgIGV4aXRTZWxlY3Rpb24gPSBzdmdOb2Rlcy5zZWxlY3RBbGwobnVsbCk7IC8vIGVtcHR5IHNlbGVjdGlvblxuICB9XG5cbiAgdXRpbC5hcHBseVRyYW5zaXRpb24oZXhpdFNlbGVjdGlvbiwgZykuc3R5bGUoJ29wYWNpdHknLCAwKS5yZW1vdmUoKTtcblxuICByZXR1cm4gc3ZnTm9kZXM7XG59O1xuXG5mdW5jdGlvbiBzZXRDcmVhdGVOb2Rlcyh2YWx1ZSkge1xuICBjcmVhdGVOb2RlcyA9IHZhbHVlO1xufVxuIiwKICAgICJpbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4vdXRpbC5qcyc7XG5cbmV4cG9ydCB7IHBvc2l0aW9uQ2x1c3RlcnMgfTtcblxuZnVuY3Rpb24gcG9zaXRpb25DbHVzdGVycyhzZWxlY3Rpb24sIGcpIHtcbiAgdmFyIGNyZWF0ZWQgPSBzZWxlY3Rpb24uZmlsdGVyKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gIWQzLnNlbGVjdCh0aGlzKS5jbGFzc2VkKCd1cGRhdGUnKTtcbiAgfSk7XG5cbiAgZnVuY3Rpb24gdHJhbnNsYXRlKHYpIHtcbiAgICB2YXIgbm9kZSA9IGcubm9kZSh2KTtcbiAgICByZXR1cm4gJ3RyYW5zbGF0ZSgnICsgbm9kZS54ICsgJywnICsgbm9kZS55ICsgJyknO1xuICB9XG5cbiAgY3JlYXRlZC5hdHRyKCd0cmFuc2Zvcm0nLCB0cmFuc2xhdGUpO1xuXG4gIHV0aWwuYXBwbHlUcmFuc2l0aW9uKHNlbGVjdGlvbiwgZykuc3R5bGUoJ29wYWNpdHknLCAxKS5hdHRyKCd0cmFuc2Zvcm0nLCB0cmFuc2xhdGUpO1xuXG4gIHV0aWxcbiAgICAuYXBwbHlUcmFuc2l0aW9uKGNyZWF0ZWQuc2VsZWN0QWxsKCdyZWN0JyksIGcpXG4gICAgLmF0dHIoJ3dpZHRoJywgZnVuY3Rpb24gKHYpIHtcbiAgICAgIHJldHVybiBnLm5vZGUodikud2lkdGg7XG4gICAgfSlcbiAgICAuYXR0cignaGVpZ2h0JywgZnVuY3Rpb24gKHYpIHtcbiAgICAgIHJldHVybiBnLm5vZGUodikuaGVpZ2h0O1xuICAgIH0pXG4gICAgLmF0dHIoJ3gnLCBmdW5jdGlvbiAodikge1xuICAgICAgdmFyIG5vZGUgPSBnLm5vZGUodik7XG4gICAgICByZXR1cm4gLW5vZGUud2lkdGggLyAyO1xuICAgIH0pXG4gICAgLmF0dHIoJ3knLCBmdW5jdGlvbiAodikge1xuICAgICAgdmFyIG5vZGUgPSBnLm5vZGUodik7XG4gICAgICByZXR1cm4gLW5vZGUuaGVpZ2h0IC8gMjtcbiAgICB9KTtcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0aWwuanMnO1xuXG5leHBvcnQgeyBwb3NpdGlvbkVkZ2VMYWJlbHMgfTtcblxuZnVuY3Rpb24gcG9zaXRpb25FZGdlTGFiZWxzKHNlbGVjdGlvbiwgZykge1xuICB2YXIgY3JlYXRlZCA9IHNlbGVjdGlvbi5maWx0ZXIoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhZDMuc2VsZWN0KHRoaXMpLmNsYXNzZWQoJ3VwZGF0ZScpO1xuICB9KTtcblxuICBmdW5jdGlvbiB0cmFuc2xhdGUoZSkge1xuICAgIHZhciBlZGdlID0gZy5lZGdlKGUpO1xuICAgIHJldHVybiBfLmhhcyhlZGdlLCAneCcpID8gJ3RyYW5zbGF0ZSgnICsgZWRnZS54ICsgJywnICsgZWRnZS55ICsgJyknIDogJyc7XG4gIH1cblxuICBjcmVhdGVkLmF0dHIoJ3RyYW5zZm9ybScsIHRyYW5zbGF0ZSk7XG5cbiAgdXRpbC5hcHBseVRyYW5zaXRpb24oc2VsZWN0aW9uLCBnKS5zdHlsZSgnb3BhY2l0eScsIDEpLmF0dHIoJ3RyYW5zZm9ybScsIHRyYW5zbGF0ZSk7XG59XG4iLAogICAgImltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsLmpzJztcblxuZXhwb3J0IHsgcG9zaXRpb25Ob2RlcyB9O1xuXG5mdW5jdGlvbiBwb3NpdGlvbk5vZGVzKHNlbGVjdGlvbiwgZykge1xuICB2YXIgY3JlYXRlZCA9IHNlbGVjdGlvbi5maWx0ZXIoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhZDMuc2VsZWN0KHRoaXMpLmNsYXNzZWQoJ3VwZGF0ZScpO1xuICB9KTtcblxuICBmdW5jdGlvbiB0cmFuc2xhdGUodikge1xuICAgIHZhciBub2RlID0gZy5ub2RlKHYpO1xuICAgIHJldHVybiAndHJhbnNsYXRlKCcgKyBub2RlLnggKyAnLCcgKyBub2RlLnkgKyAnKSc7XG4gIH1cblxuICBjcmVhdGVkLmF0dHIoJ3RyYW5zZm9ybScsIHRyYW5zbGF0ZSk7XG5cbiAgdXRpbC5hcHBseVRyYW5zaXRpb24oc2VsZWN0aW9uLCBnKS5zdHlsZSgnb3BhY2l0eScsIDEpLmF0dHIoJ3RyYW5zZm9ybScsIHRyYW5zbGF0ZSk7XG59XG4iLAogICAgImV4cG9ydCB7IGludGVyc2VjdEVsbGlwc2UgfTtcblxuZnVuY3Rpb24gaW50ZXJzZWN0RWxsaXBzZShub2RlLCByeCwgcnksIHBvaW50KSB7XG4gIC8vIEZvcm11bGFlIGZyb206IGh0dHA6Ly9tYXRod29ybGQud29sZnJhbS5jb20vRWxsaXBzZS1MaW5lSW50ZXJzZWN0aW9uLmh0bWxcblxuICB2YXIgY3ggPSBub2RlLng7XG4gIHZhciBjeSA9IG5vZGUueTtcblxuICB2YXIgcHggPSBjeCAtIHBvaW50Lng7XG4gIHZhciBweSA9IGN5IC0gcG9pbnQueTtcblxuICB2YXIgZGV0ID0gTWF0aC5zcXJ0KHJ4ICogcnggKiBweSAqIHB5ICsgcnkgKiByeSAqIHB4ICogcHgpO1xuXG4gIHZhciBkeCA9IE1hdGguYWJzKChyeCAqIHJ5ICogcHgpIC8gZGV0KTtcbiAgaWYgKHBvaW50LnggPCBjeCkge1xuICAgIGR4ID0gLWR4O1xuICB9XG4gIHZhciBkeSA9IE1hdGguYWJzKChyeCAqIHJ5ICogcHkpIC8gZGV0KTtcbiAgaWYgKHBvaW50LnkgPCBjeSkge1xuICAgIGR5ID0gLWR5O1xuICB9XG5cbiAgcmV0dXJuIHsgeDogY3ggKyBkeCwgeTogY3kgKyBkeSB9O1xufVxuIiwKICAgICJpbXBvcnQgeyBpbnRlcnNlY3RFbGxpcHNlIH0gZnJvbSAnLi9pbnRlcnNlY3QtZWxsaXBzZS5qcyc7XG5cbmV4cG9ydCB7IGludGVyc2VjdENpcmNsZSB9O1xuXG5mdW5jdGlvbiBpbnRlcnNlY3RDaXJjbGUobm9kZSwgcngsIHBvaW50KSB7XG4gIHJldHVybiBpbnRlcnNlY3RFbGxpcHNlKG5vZGUsIHJ4LCByeCwgcG9pbnQpO1xufVxuIiwKICAgICJleHBvcnQgeyBpbnRlcnNlY3RMaW5lIH07XG5cbi8qXG4gKiBSZXR1cm5zIHRoZSBwb2ludCBhdCB3aGljaCB0d28gbGluZXMsIHAgYW5kIHEsIGludGVyc2VjdCBvciByZXR1cm5zXG4gKiB1bmRlZmluZWQgaWYgdGhleSBkbyBub3QgaW50ZXJzZWN0LlxuICovXG5mdW5jdGlvbiBpbnRlcnNlY3RMaW5lKHAxLCBwMiwgcTEsIHEyKSB7XG4gIC8vIEFsZ29yaXRobSBmcm9tIEouIEF2cm8sIChlZC4pIEdyYXBoaWNzIEdlbXMsIE5vIDIsIE1vcmdhbiBLYXVmbWFubiwgMTk5NCxcbiAgLy8gcDcgYW5kIHA0NzMuXG5cbiAgdmFyIGExLCBhMiwgYjEsIGIyLCBjMSwgYzI7XG4gIHZhciByMSwgcjIsIHIzLCByNDtcbiAgdmFyIGRlbm9tLCBvZmZzZXQsIG51bTtcbiAgdmFyIHgsIHk7XG5cbiAgLy8gQ29tcHV0ZSBhMSwgYjEsIGMxLCB3aGVyZSBsaW5lIGpvaW5pbmcgcG9pbnRzIDEgYW5kIDIgaXMgRih4LHkpID0gYTEgeCArXG4gIC8vIGIxIHkgKyBjMSA9IDAuXG4gIGExID0gcDIueSAtIHAxLnk7XG4gIGIxID0gcDEueCAtIHAyLng7XG4gIGMxID0gcDIueCAqIHAxLnkgLSBwMS54ICogcDIueTtcblxuICAvLyBDb21wdXRlIHIzIGFuZCByNC5cbiAgcjMgPSBhMSAqIHExLnggKyBiMSAqIHExLnkgKyBjMTtcbiAgcjQgPSBhMSAqIHEyLnggKyBiMSAqIHEyLnkgKyBjMTtcblxuICAvLyBDaGVjayBzaWducyBvZiByMyBhbmQgcjQuIElmIGJvdGggcG9pbnQgMyBhbmQgcG9pbnQgNCBsaWUgb25cbiAgLy8gc2FtZSBzaWRlIG9mIGxpbmUgMSwgdGhlIGxpbmUgc2VnbWVudHMgZG8gbm90IGludGVyc2VjdC5cbiAgaWYgKHIzICE9PSAwICYmIHI0ICE9PSAwICYmIHNhbWVTaWduKHIzLCByNCkpIHtcbiAgICByZXR1cm4gLypET05UX0lOVEVSU0VDVCovO1xuICB9XG5cbiAgLy8gQ29tcHV0ZSBhMiwgYjIsIGMyIHdoZXJlIGxpbmUgam9pbmluZyBwb2ludHMgMyBhbmQgNCBpcyBHKHgseSkgPSBhMiB4ICsgYjIgeSArIGMyID0gMFxuICBhMiA9IHEyLnkgLSBxMS55O1xuICBiMiA9IHExLnggLSBxMi54O1xuICBjMiA9IHEyLnggKiBxMS55IC0gcTEueCAqIHEyLnk7XG5cbiAgLy8gQ29tcHV0ZSByMSBhbmQgcjJcbiAgcjEgPSBhMiAqIHAxLnggKyBiMiAqIHAxLnkgKyBjMjtcbiAgcjIgPSBhMiAqIHAyLnggKyBiMiAqIHAyLnkgKyBjMjtcblxuICAvLyBDaGVjayBzaWducyBvZiByMSBhbmQgcjIuIElmIGJvdGggcG9pbnQgMSBhbmQgcG9pbnQgMiBsaWVcbiAgLy8gb24gc2FtZSBzaWRlIG9mIHNlY29uZCBsaW5lIHNlZ21lbnQsIHRoZSBsaW5lIHNlZ21lbnRzIGRvXG4gIC8vIG5vdCBpbnRlcnNlY3QuXG4gIGlmIChyMSAhPT0gMCAmJiByMiAhPT0gMCAmJiBzYW1lU2lnbihyMSwgcjIpKSB7XG4gICAgcmV0dXJuIC8qRE9OVF9JTlRFUlNFQ1QqLztcbiAgfVxuXG4gIC8vIExpbmUgc2VnbWVudHMgaW50ZXJzZWN0OiBjb21wdXRlIGludGVyc2VjdGlvbiBwb2ludC5cbiAgZGVub20gPSBhMSAqIGIyIC0gYTIgKiBiMTtcbiAgaWYgKGRlbm9tID09PSAwKSB7XG4gICAgcmV0dXJuIC8qQ09MTElORUFSKi87XG4gIH1cblxuICBvZmZzZXQgPSBNYXRoLmFicyhkZW5vbSAvIDIpO1xuXG4gIC8vIFRoZSBkZW5vbS8yIGlzIHRvIGdldCByb3VuZGluZyBpbnN0ZWFkIG9mIHRydW5jYXRpbmcuIEl0XG4gIC8vIGlzIGFkZGVkIG9yIHN1YnRyYWN0ZWQgdG8gdGhlIG51bWVyYXRvciwgZGVwZW5kaW5nIHVwb24gdGhlXG4gIC8vIHNpZ24gb2YgdGhlIG51bWVyYXRvci5cbiAgbnVtID0gYjEgKiBjMiAtIGIyICogYzE7XG4gIHggPSBudW0gPCAwID8gKG51bSAtIG9mZnNldCkgLyBkZW5vbSA6IChudW0gKyBvZmZzZXQpIC8gZGVub207XG5cbiAgbnVtID0gYTIgKiBjMSAtIGExICogYzI7XG4gIHkgPSBudW0gPCAwID8gKG51bSAtIG9mZnNldCkgLyBkZW5vbSA6IChudW0gKyBvZmZzZXQpIC8gZGVub207XG5cbiAgcmV0dXJuIHsgeDogeCwgeTogeSB9O1xufVxuXG5mdW5jdGlvbiBzYW1lU2lnbihyMSwgcjIpIHtcbiAgcmV0dXJuIHIxICogcjIgPiAwO1xufVxuIiwKICAgICJpbXBvcnQgeyBpbnRlcnNlY3RMaW5lIH0gZnJvbSAnLi9pbnRlcnNlY3QtbGluZS5qcyc7XG5cbmV4cG9ydCB7IGludGVyc2VjdFBvbHlnb24gfTtcblxuLypcbiAqIFJldHVybnMgdGhlIHBvaW50ICh7eCwgeX0pIGF0IHdoaWNoIHRoZSBwb2ludCBhcmd1bWVudCBpbnRlcnNlY3RzIHdpdGggdGhlXG4gKiBub2RlIGFyZ3VtZW50IGFzc3VtaW5nIHRoYXQgaXQgaGFzIHRoZSBzaGFwZSBzcGVjaWZpZWQgYnkgcG9seWdvbi5cbiAqL1xuZnVuY3Rpb24gaW50ZXJzZWN0UG9seWdvbihub2RlLCBwb2x5UG9pbnRzLCBwb2ludCkge1xuICB2YXIgeDEgPSBub2RlLng7XG4gIHZhciB5MSA9IG5vZGUueTtcblxuICB2YXIgaW50ZXJzZWN0aW9ucyA9IFtdO1xuXG4gIHZhciBtaW5YID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICB2YXIgbWluWSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgcG9seVBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbnRyeSkge1xuICAgIG1pblggPSBNYXRoLm1pbihtaW5YLCBlbnRyeS54KTtcbiAgICBtaW5ZID0gTWF0aC5taW4obWluWSwgZW50cnkueSk7XG4gIH0pO1xuXG4gIHZhciBsZWZ0ID0geDEgLSBub2RlLndpZHRoIC8gMiAtIG1pblg7XG4gIHZhciB0b3AgPSB5MSAtIG5vZGUuaGVpZ2h0IC8gMiAtIG1pblk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb2x5UG9pbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHAxID0gcG9seVBvaW50c1tpXTtcbiAgICB2YXIgcDIgPSBwb2x5UG9pbnRzW2kgPCBwb2x5UG9pbnRzLmxlbmd0aCAtIDEgPyBpICsgMSA6IDBdO1xuICAgIHZhciBpbnRlcnNlY3QgPSBpbnRlcnNlY3RMaW5lKFxuICAgICAgbm9kZSxcbiAgICAgIHBvaW50LFxuICAgICAgeyB4OiBsZWZ0ICsgcDEueCwgeTogdG9wICsgcDEueSB9LFxuICAgICAgeyB4OiBsZWZ0ICsgcDIueCwgeTogdG9wICsgcDIueSB9XG4gICAgKTtcbiAgICBpZiAoaW50ZXJzZWN0KSB7XG4gICAgICBpbnRlcnNlY3Rpb25zLnB1c2goaW50ZXJzZWN0KTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWludGVyc2VjdGlvbnMubGVuZ3RoKSB7XG4gICAgY29uc29sZS5sb2coJ05PIElOVEVSU0VDVElPTiBGT1VORCwgUkVUVVJOIE5PREUgQ0VOVEVSJywgbm9kZSk7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBpZiAoaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgLy8gTW9yZSBpbnRlcnNlY3Rpb25zLCBmaW5kIHRoZSBvbmUgbmVhcmVzdCB0byBlZGdlIGVuZCBwb2ludFxuICAgIGludGVyc2VjdGlvbnMuc29ydChmdW5jdGlvbiAocCwgcSkge1xuICAgICAgdmFyIHBkeCA9IHAueCAtIHBvaW50Lng7XG4gICAgICB2YXIgcGR5ID0gcC55IC0gcG9pbnQueTtcbiAgICAgIHZhciBkaXN0cCA9IE1hdGguc3FydChwZHggKiBwZHggKyBwZHkgKiBwZHkpO1xuXG4gICAgICB2YXIgcWR4ID0gcS54IC0gcG9pbnQueDtcbiAgICAgIHZhciBxZHkgPSBxLnkgLSBwb2ludC55O1xuICAgICAgdmFyIGRpc3RxID0gTWF0aC5zcXJ0KHFkeCAqIHFkeCArIHFkeSAqIHFkeSk7XG5cbiAgICAgIHJldHVybiBkaXN0cCA8IGRpc3RxID8gLTEgOiBkaXN0cCA9PT0gZGlzdHEgPyAwIDogMTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gaW50ZXJzZWN0aW9uc1swXTtcbn1cbiIsCiAgICAiZXhwb3J0IHsgaW50ZXJzZWN0UmVjdCB9O1xuXG5mdW5jdGlvbiBpbnRlcnNlY3RSZWN0KG5vZGUsIHBvaW50KSB7XG4gIHZhciB4ID0gbm9kZS54O1xuICB2YXIgeSA9IG5vZGUueTtcblxuICAvLyBSZWN0YW5nbGUgaW50ZXJzZWN0aW9uIGFsZ29yaXRobSBmcm9tOlxuICAvLyBodHRwOi8vbWF0aC5zdGFja2V4Y2hhbmdlLmNvbS9xdWVzdGlvbnMvMTA4MTEzL2ZpbmQtZWRnZS1iZXR3ZWVuLXR3by1ib3hlc1xuICB2YXIgZHggPSBwb2ludC54IC0geDtcbiAgdmFyIGR5ID0gcG9pbnQueSAtIHk7XG4gIHZhciB3ID0gbm9kZS53aWR0aCAvIDI7XG4gIHZhciBoID0gbm9kZS5oZWlnaHQgLyAyO1xuXG4gIHZhciBzeCwgc3k7XG4gIGlmIChNYXRoLmFicyhkeSkgKiB3ID4gTWF0aC5hYnMoZHgpICogaCkge1xuICAgIC8vIEludGVyc2VjdGlvbiBpcyB0b3Agb3IgYm90dG9tIG9mIHJlY3QuXG4gICAgaWYgKGR5IDwgMCkge1xuICAgICAgaCA9IC1oO1xuICAgIH1cbiAgICBzeCA9IGR5ID09PSAwID8gMCA6IChoICogZHgpIC8gZHk7XG4gICAgc3kgPSBoO1xuICB9IGVsc2Uge1xuICAgIC8vIEludGVyc2VjdGlvbiBpcyBsZWZ0IG9yIHJpZ2h0IG9mIHJlY3QuXG4gICAgaWYgKGR4IDwgMCkge1xuICAgICAgdyA9IC13O1xuICAgIH1cbiAgICBzeCA9IHc7XG4gICAgc3kgPSBkeCA9PT0gMCA/IDAgOiAodyAqIGR5KSAvIGR4O1xuICB9XG5cbiAgcmV0dXJuIHsgeDogeCArIHN4LCB5OiB5ICsgc3kgfTtcbn1cbiIsCiAgICAiaW1wb3J0IHsgaW50ZXJzZWN0Q2lyY2xlIH0gZnJvbSAnLi9pbnRlcnNlY3QvaW50ZXJzZWN0LWNpcmNsZS5qcyc7XG5pbXBvcnQgeyBpbnRlcnNlY3RFbGxpcHNlIH0gZnJvbSAnLi9pbnRlcnNlY3QvaW50ZXJzZWN0LWVsbGlwc2UuanMnO1xuaW1wb3J0IHsgaW50ZXJzZWN0UG9seWdvbiB9IGZyb20gJy4vaW50ZXJzZWN0L2ludGVyc2VjdC1wb2x5Z29uLmpzJztcbmltcG9ydCB7IGludGVyc2VjdFJlY3QgfSBmcm9tICcuL2ludGVyc2VjdC9pbnRlcnNlY3QtcmVjdC5qcyc7XG5cbmV4cG9ydCB7IHNoYXBlcywgc2V0U2hhcGVzIH07XG5cbnZhciBzaGFwZXMgPSB7XG4gIHJlY3QsXG4gIGVsbGlwc2UsXG4gIGNpcmNsZSxcbiAgZGlhbW9uZCxcbn07XG5cbmZ1bmN0aW9uIHNldFNoYXBlcyh2YWx1ZSkge1xuICBzaGFwZXMgPSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gcmVjdChwYXJlbnQsIGJib3gsIG5vZGUpIHtcbiAgdmFyIHNoYXBlU3ZnID0gcGFyZW50XG4gICAgLmluc2VydCgncmVjdCcsICc6Zmlyc3QtY2hpbGQnKVxuICAgIC5hdHRyKCdyeCcsIG5vZGUucngpXG4gICAgLmF0dHIoJ3J5Jywgbm9kZS5yeSlcbiAgICAuYXR0cigneCcsIC1iYm94LndpZHRoIC8gMilcbiAgICAuYXR0cigneScsIC1iYm94LmhlaWdodCAvIDIpXG4gICAgLmF0dHIoJ3dpZHRoJywgYmJveC53aWR0aClcbiAgICAuYXR0cignaGVpZ2h0JywgYmJveC5oZWlnaHQpO1xuXG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24gKHBvaW50KSB7XG4gICAgcmV0dXJuIGludGVyc2VjdFJlY3Qobm9kZSwgcG9pbnQpO1xuICB9O1xuXG4gIHJldHVybiBzaGFwZVN2Zztcbn1cblxuZnVuY3Rpb24gZWxsaXBzZShwYXJlbnQsIGJib3gsIG5vZGUpIHtcbiAgdmFyIHJ4ID0gYmJveC53aWR0aCAvIDI7XG4gIHZhciByeSA9IGJib3guaGVpZ2h0IC8gMjtcbiAgdmFyIHNoYXBlU3ZnID0gcGFyZW50XG4gICAgLmluc2VydCgnZWxsaXBzZScsICc6Zmlyc3QtY2hpbGQnKVxuICAgIC5hdHRyKCd4JywgLWJib3gud2lkdGggLyAyKVxuICAgIC5hdHRyKCd5JywgLWJib3guaGVpZ2h0IC8gMilcbiAgICAuYXR0cigncngnLCByeClcbiAgICAuYXR0cigncnknLCByeSk7XG5cbiAgbm9kZS5pbnRlcnNlY3QgPSBmdW5jdGlvbiAocG9pbnQpIHtcbiAgICByZXR1cm4gaW50ZXJzZWN0RWxsaXBzZShub2RlLCByeCwgcnksIHBvaW50KTtcbiAgfTtcblxuICByZXR1cm4gc2hhcGVTdmc7XG59XG5cbmZ1bmN0aW9uIGNpcmNsZShwYXJlbnQsIGJib3gsIG5vZGUpIHtcbiAgdmFyIHIgPSBNYXRoLm1heChiYm94LndpZHRoLCBiYm94LmhlaWdodCkgLyAyO1xuICB2YXIgc2hhcGVTdmcgPSBwYXJlbnRcbiAgICAuaW5zZXJ0KCdjaXJjbGUnLCAnOmZpcnN0LWNoaWxkJylcbiAgICAuYXR0cigneCcsIC1iYm94LndpZHRoIC8gMilcbiAgICAuYXR0cigneScsIC1iYm94LmhlaWdodCAvIDIpXG4gICAgLmF0dHIoJ3InLCByKTtcblxuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uIChwb2ludCkge1xuICAgIHJldHVybiBpbnRlcnNlY3RDaXJjbGUobm9kZSwgciwgcG9pbnQpO1xuICB9O1xuXG4gIHJldHVybiBzaGFwZVN2Zztcbn1cblxuLy8gQ2lyY3Vtc2NyaWJlIGFuIGVsbGlwc2UgZm9yIHRoZSBib3VuZGluZyBib3ggd2l0aCBhIGRpYW1vbmQgc2hhcGUuIEkgZGVyaXZlZFxuLy8gdGhlIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgZGlhbW9uZCBzaGFwZSBmcm9tOlxuLy8gaHR0cDovL21hdGhmb3J1bS5vcmcva2IvbWVzc2FnZS5qc3BhP21lc3NhZ2VJRD0zNzUwMjM2XG5mdW5jdGlvbiBkaWFtb25kKHBhcmVudCwgYmJveCwgbm9kZSkge1xuICB2YXIgdyA9IChiYm94LndpZHRoICogTWF0aC5TUVJUMikgLyAyO1xuICB2YXIgaCA9IChiYm94LmhlaWdodCAqIE1hdGguU1FSVDIpIC8gMjtcbiAgdmFyIHBvaW50cyA9IFtcbiAgICB7IHg6IDAsIHk6IC1oIH0sXG4gICAgeyB4OiAtdywgeTogMCB9LFxuICAgIHsgeDogMCwgeTogaCB9LFxuICAgIHsgeDogdywgeTogMCB9LFxuICBdO1xuICB2YXIgc2hhcGVTdmcgPSBwYXJlbnQuaW5zZXJ0KCdwb2x5Z29uJywgJzpmaXJzdC1jaGlsZCcpLmF0dHIoXG4gICAgJ3BvaW50cycsXG4gICAgcG9pbnRzXG4gICAgICAubWFwKGZ1bmN0aW9uIChwKSB7XG4gICAgICAgIHJldHVybiBwLnggKyAnLCcgKyBwLnk7XG4gICAgICB9KVxuICAgICAgLmpvaW4oJyAnKVxuICApO1xuXG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24gKHApIHtcbiAgICByZXR1cm4gaW50ZXJzZWN0UG9seWdvbihub2RlLCBwb2ludHMsIHApO1xuICB9O1xuXG4gIHJldHVybiBzaGFwZVN2Zztcbn1cbiIsCiAgICAiaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgbGF5b3V0IH0gZnJvbSAnLi4vZGFncmUvaW5kZXguanMnO1xuaW1wb3J0IHsgYXJyb3dzLCBzZXRBcnJvd3MgfSBmcm9tICcuL2Fycm93cy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVDbHVzdGVycywgc2V0Q3JlYXRlQ2x1c3RlcnMgfSBmcm9tICcuL2NyZWF0ZS1jbHVzdGVycy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVFZGdlTGFiZWxzLCBzZXRDcmVhdGVFZGdlTGFiZWxzIH0gZnJvbSAnLi9jcmVhdGUtZWRnZS1sYWJlbHMuanMnO1xuaW1wb3J0IHsgY3JlYXRlRWRnZVBhdGhzLCBzZXRDcmVhdGVFZGdlUGF0aHMgfSBmcm9tICcuL2NyZWF0ZS1lZGdlLXBhdGhzLmpzJztcbmltcG9ydCB7IGNyZWF0ZU5vZGVzLCBzZXRDcmVhdGVOb2RlcyB9IGZyb20gJy4vY3JlYXRlLW5vZGVzLmpzJztcbmltcG9ydCB7IHBvc2l0aW9uQ2x1c3RlcnMgfSBmcm9tICcuL3Bvc2l0aW9uLWNsdXN0ZXJzLmpzJztcbmltcG9ydCB7IHBvc2l0aW9uRWRnZUxhYmVscyB9IGZyb20gJy4vcG9zaXRpb24tZWRnZS1sYWJlbHMuanMnO1xuaW1wb3J0IHsgcG9zaXRpb25Ob2RlcyB9IGZyb20gJy4vcG9zaXRpb24tbm9kZXMuanMnO1xuaW1wb3J0IHsgc2hhcGVzLCBzZXRTaGFwZXMgfSBmcm9tICcuL3NoYXBlcy5qcyc7XG5cbmV4cG9ydCB7IHJlbmRlciB9O1xuXG4vLyBUaGlzIGRlc2lnbiBpcyBiYXNlZCBvbiBodHRwOi8vYm9zdC5vY2tzLm9yZy9taWtlL2NoYXJ0Ly5cbmZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgdmFyIGZuID0gZnVuY3Rpb24gKHN2ZywgZykge1xuICAgIHByZVByb2Nlc3NHcmFwaChnKTtcblxuICAgIHZhciBvdXRwdXRHcm91cCA9IGNyZWF0ZU9yU2VsZWN0R3JvdXAoc3ZnLCAnb3V0cHV0Jyk7XG4gICAgdmFyIGNsdXN0ZXJzR3JvdXAgPSBjcmVhdGVPclNlbGVjdEdyb3VwKG91dHB1dEdyb3VwLCAnY2x1c3RlcnMnKTtcbiAgICB2YXIgZWRnZVBhdGhzR3JvdXAgPSBjcmVhdGVPclNlbGVjdEdyb3VwKG91dHB1dEdyb3VwLCAnZWRnZVBhdGhzJyk7XG4gICAgdmFyIGVkZ2VMYWJlbHMgPSBjcmVhdGVFZGdlTGFiZWxzKGNyZWF0ZU9yU2VsZWN0R3JvdXAob3V0cHV0R3JvdXAsICdlZGdlTGFiZWxzJyksIGcpO1xuICAgIHZhciBub2RlcyA9IGNyZWF0ZU5vZGVzKGNyZWF0ZU9yU2VsZWN0R3JvdXAob3V0cHV0R3JvdXAsICdub2RlcycpLCBnLCBzaGFwZXMpO1xuXG4gICAgbGF5b3V0KGcpO1xuXG4gICAgcG9zaXRpb25Ob2Rlcyhub2RlcywgZyk7XG4gICAgcG9zaXRpb25FZGdlTGFiZWxzKGVkZ2VMYWJlbHMsIGcpO1xuICAgIGNyZWF0ZUVkZ2VQYXRocyhlZGdlUGF0aHNHcm91cCwgZywgYXJyb3dzKTtcblxuICAgIHZhciBjbHVzdGVycyA9IGNyZWF0ZUNsdXN0ZXJzKGNsdXN0ZXJzR3JvdXAsIGcpO1xuICAgIHBvc2l0aW9uQ2x1c3RlcnMoY2x1c3RlcnMsIGcpO1xuXG4gICAgcG9zdFByb2Nlc3NHcmFwaChnKTtcbiAgfTtcblxuICBmbi5jcmVhdGVOb2RlcyA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkgcmV0dXJuIGNyZWF0ZU5vZGVzO1xuICAgIHNldENyZWF0ZU5vZGVzKHZhbHVlKTtcbiAgICByZXR1cm4gZm47XG4gIH07XG5cbiAgZm4uY3JlYXRlQ2x1c3RlcnMgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHJldHVybiBjcmVhdGVDbHVzdGVycztcbiAgICBzZXRDcmVhdGVDbHVzdGVycyh2YWx1ZSk7XG4gICAgcmV0dXJuIGZuO1xuICB9O1xuXG4gIGZuLmNyZWF0ZUVkZ2VMYWJlbHMgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHJldHVybiBjcmVhdGVFZGdlTGFiZWxzO1xuICAgIHNldENyZWF0ZUVkZ2VMYWJlbHModmFsdWUpO1xuICAgIHJldHVybiBmbjtcbiAgfTtcblxuICBmbi5jcmVhdGVFZGdlUGF0aHMgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHJldHVybiBjcmVhdGVFZGdlUGF0aHM7XG4gICAgc2V0Q3JlYXRlRWRnZVBhdGhzKHZhbHVlKTtcbiAgICByZXR1cm4gZm47XG4gIH07XG5cbiAgZm4uc2hhcGVzID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSByZXR1cm4gc2hhcGVzO1xuICAgIHNldFNoYXBlcyh2YWx1ZSk7XG4gICAgcmV0dXJuIGZuO1xuICB9O1xuXG4gIGZuLmFycm93cyA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkgcmV0dXJuIGFycm93cztcbiAgICBzZXRBcnJvd3ModmFsdWUpO1xuICAgIHJldHVybiBmbjtcbiAgfTtcblxuICByZXR1cm4gZm47XG59XG5cbnZhciBOT0RFX0RFRkFVTFRfQVRUUlMgPSB7XG4gIHBhZGRpbmdMZWZ0OiAxMCxcbiAgcGFkZGluZ1JpZ2h0OiAxMCxcbiAgcGFkZGluZ1RvcDogMTAsXG4gIHBhZGRpbmdCb3R0b206IDEwLFxuICByeDogMCxcbiAgcnk6IDAsXG4gIHNoYXBlOiAncmVjdCcsXG59O1xuXG52YXIgRURHRV9ERUZBVUxUX0FUVFJTID0ge1xuICBhcnJvd2hlYWQ6ICdub3JtYWwnLFxuICBjdXJ2ZTogZDMuY3VydmVMaW5lYXIsXG59O1xuXG5mdW5jdGlvbiBwcmVQcm9jZXNzR3JhcGgoZykge1xuICBnLm5vZGVzKCkuZm9yRWFjaChmdW5jdGlvbiAodikge1xuICAgIHZhciBub2RlID0gZy5ub2RlKHYpO1xuICAgIGlmICghXy5oYXMobm9kZSwgJ2xhYmVsJykgJiYgIWcuY2hpbGRyZW4odikubGVuZ3RoKSB7XG4gICAgICBub2RlLmxhYmVsID0gdjtcbiAgICB9XG5cbiAgICBpZiAoXy5oYXMobm9kZSwgJ3BhZGRpbmdYJykpIHtcbiAgICAgIF8uZGVmYXVsdHMobm9kZSwge1xuICAgICAgICBwYWRkaW5nTGVmdDogbm9kZS5wYWRkaW5nWCxcbiAgICAgICAgcGFkZGluZ1JpZ2h0OiBub2RlLnBhZGRpbmdYLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKF8uaGFzKG5vZGUsICdwYWRkaW5nWScpKSB7XG4gICAgICBfLmRlZmF1bHRzKG5vZGUsIHtcbiAgICAgICAgcGFkZGluZ1RvcDogbm9kZS5wYWRkaW5nWSxcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogbm9kZS5wYWRkaW5nWSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChfLmhhcyhub2RlLCAncGFkZGluZycpKSB7XG4gICAgICBfLmRlZmF1bHRzKG5vZGUsIHtcbiAgICAgICAgcGFkZGluZ0xlZnQ6IG5vZGUucGFkZGluZyxcbiAgICAgICAgcGFkZGluZ1JpZ2h0OiBub2RlLnBhZGRpbmcsXG4gICAgICAgIHBhZGRpbmdUb3A6IG5vZGUucGFkZGluZyxcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogbm9kZS5wYWRkaW5nLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgXy5kZWZhdWx0cyhub2RlLCBOT0RFX0RFRkFVTFRfQVRUUlMpO1xuXG4gICAgXy5lYWNoKFsncGFkZGluZ0xlZnQnLCAncGFkZGluZ1JpZ2h0JywgJ3BhZGRpbmdUb3AnLCAncGFkZGluZ0JvdHRvbSddLCBmdW5jdGlvbiAoaykge1xuICAgICAgbm9kZVtrXSA9IE51bWJlcihub2RlW2tdKTtcbiAgICB9KTtcblxuICAgIC8vIFNhdmUgZGltZW5zaW9ucyBmb3IgcmVzdG9yZSBkdXJpbmcgcG9zdC1wcm9jZXNzaW5nXG4gICAgaWYgKF8uaGFzKG5vZGUsICd3aWR0aCcpKSB7XG4gICAgICBub2RlLl9wcmV2V2lkdGggPSBub2RlLndpZHRoO1xuICAgIH1cbiAgICBpZiAoXy5oYXMobm9kZSwgJ2hlaWdodCcpKSB7XG4gICAgICBub2RlLl9wcmV2SGVpZ2h0ID0gbm9kZS5oZWlnaHQ7XG4gICAgfVxuICB9KTtcblxuICBnLmVkZ2VzKCkuZm9yRWFjaChmdW5jdGlvbiAoZSkge1xuICAgIHZhciBlZGdlID0gZy5lZGdlKGUpO1xuICAgIGlmICghXy5oYXMoZWRnZSwgJ2xhYmVsJykpIHtcbiAgICAgIGVkZ2UubGFiZWwgPSAnJztcbiAgICB9XG4gICAgXy5kZWZhdWx0cyhlZGdlLCBFREdFX0RFRkFVTFRfQVRUUlMpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcG9zdFByb2Nlc3NHcmFwaChnKSB7XG4gIF8uZWFjaChnLm5vZGVzKCksIGZ1bmN0aW9uICh2KSB7XG4gICAgdmFyIG5vZGUgPSBnLm5vZGUodik7XG5cbiAgICAvLyBSZXN0b3JlIG9yaWdpbmFsIGRpbWVuc2lvbnNcbiAgICBpZiAoXy5oYXMobm9kZSwgJ19wcmV2V2lkdGgnKSkge1xuICAgICAgbm9kZS53aWR0aCA9IG5vZGUuX3ByZXZXaWR0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIG5vZGUud2lkdGg7XG4gICAgfVxuXG4gICAgaWYgKF8uaGFzKG5vZGUsICdfcHJldkhlaWdodCcpKSB7XG4gICAgICBub2RlLmhlaWdodCA9IG5vZGUuX3ByZXZIZWlnaHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSBub2RlLmhlaWdodDtcbiAgICB9XG5cbiAgICBkZWxldGUgbm9kZS5fcHJldldpZHRoO1xuICAgIGRlbGV0ZSBub2RlLl9wcmV2SGVpZ2h0O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlT3JTZWxlY3RHcm91cChyb290LCBuYW1lKSB7XG4gIHZhciBzZWxlY3Rpb24gPSByb290LnNlbGVjdCgnZy4nICsgbmFtZSk7XG4gIGlmIChzZWxlY3Rpb24uZW1wdHkoKSkge1xuICAgIHNlbGVjdGlvbiA9IHJvb3QuYXBwZW5kKCdnJykuYXR0cignY2xhc3MnLCBuYW1lKTtcbiAgfVxuICByZXR1cm4gc2VsZWN0aW9uO1xufVxuIiwKICAgICJpbXBvcnQgKiBhcyBub2RlIGZyb20gJy4vaW50ZXJzZWN0LW5vZGUuanMnO1xuaW1wb3J0ICogYXMgY2lyY2xlIGZyb20gJy4vaW50ZXJzZWN0LWNpcmNsZS5qcyc7XG5pbXBvcnQgKiBhcyBlbGxpcHNlIGZyb20gJy4vaW50ZXJzZWN0LWVsbGlwc2UuanMnO1xuaW1wb3J0ICogYXMgcG9seWdvbiBmcm9tICcuL2ludGVyc2VjdC1wb2x5Z29uLmpzJztcbmltcG9ydCAqIGFzIHJlY3QgZnJvbSAnLi9pbnRlcnNlY3QtcmVjdC5qcyc7XG5cbmV4cG9ydCB7IG5vZGUsIGNpcmNsZSwgZWxsaXBzZSwgcG9seWdvbiwgcmVjdCB9O1xuIiwKICAgICJpbXBvcnQgeyByZW5kZXIgfSBmcm9tICcuL2RhZ3JlLWpzL3JlbmRlci5qcyc7XG5pbXBvcnQgKiBhcyBncmFwaGxpYiBmcm9tICcuL2dyYXBobGliL2luZGV4LmpzJztcblxuaW1wb3J0ICogYXMgaW50ZXJzZWN0IGZyb20gJy4vZGFncmUtanMvaW50ZXJzZWN0L2luZGV4LmpzJztcblxuZXhwb3J0IHsgZ3JhcGhsaWIsIGludGVyc2VjdCwgcmVuZGVyIH07XG4iLAogICAgImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSAnLi9ncmFwaC5qcyc7XG5cbmV4cG9ydCB7IHdyaXRlLCByZWFkIH07XG5cbmZ1bmN0aW9uIHdyaXRlKGcpIHtcbiAgdmFyIGpzb24gPSB7XG4gICAgb3B0aW9uczoge1xuICAgICAgZGlyZWN0ZWQ6IGcuaXNEaXJlY3RlZCgpLFxuICAgICAgbXVsdGlncmFwaDogZy5pc011bHRpZ3JhcGgoKSxcbiAgICAgIGNvbXBvdW5kOiBnLmlzQ29tcG91bmQoKSxcbiAgICB9LFxuICAgIG5vZGVzOiB3cml0ZU5vZGVzKGcpLFxuICAgIGVkZ2VzOiB3cml0ZUVkZ2VzKGcpLFxuICB9O1xuICBpZiAoIV8uaXNVbmRlZmluZWQoZy5ncmFwaCgpKSkge1xuICAgIGpzb24udmFsdWUgPSBfLmNsb25lKGcuZ3JhcGgoKSk7XG4gIH1cbiAgcmV0dXJuIGpzb247XG59XG5cbmZ1bmN0aW9uIHdyaXRlTm9kZXMoZykge1xuICByZXR1cm4gXy5tYXAoZy5ub2RlcygpLCBmdW5jdGlvbiAodikge1xuICAgIHZhciBub2RlVmFsdWUgPSBnLm5vZGUodik7XG4gICAgdmFyIHBhcmVudCA9IGcucGFyZW50KHYpO1xuICAgIHZhciBub2RlID0geyB2OiB2IH07XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKG5vZGVWYWx1ZSkpIHtcbiAgICAgIG5vZGUudmFsdWUgPSBub2RlVmFsdWU7XG4gICAgfVxuICAgIGlmICghXy5pc1VuZGVmaW5lZChwYXJlbnQpKSB7XG4gICAgICBub2RlLnBhcmVudCA9IHBhcmVudDtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB3cml0ZUVkZ2VzKGcpIHtcbiAgcmV0dXJuIF8ubWFwKGcuZWRnZXMoKSwgZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgZWRnZVZhbHVlID0gZy5lZGdlKGUpO1xuICAgIHZhciBlZGdlID0geyB2OiBlLnYsIHc6IGUudyB9O1xuICAgIGlmICghXy5pc1VuZGVmaW5lZChlLm5hbWUpKSB7XG4gICAgICBlZGdlLm5hbWUgPSBlLm5hbWU7XG4gICAgfVxuICAgIGlmICghXy5pc1VuZGVmaW5lZChlZGdlVmFsdWUpKSB7XG4gICAgICBlZGdlLnZhbHVlID0gZWRnZVZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZWRnZTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlYWQoanNvbikge1xuICB2YXIgZyA9IG5ldyBHcmFwaChqc29uLm9wdGlvbnMpLnNldEdyYXBoKGpzb24udmFsdWUpO1xuICBfLmVhY2goanNvbi5ub2RlcywgZnVuY3Rpb24gKGVudHJ5KSB7XG4gICAgZy5zZXROb2RlKGVudHJ5LnYsIGVudHJ5LnZhbHVlKTtcbiAgICBpZiAoZW50cnkucGFyZW50KSB7XG4gICAgICBnLnNldFBhcmVudChlbnRyeS52LCBlbnRyeS5wYXJlbnQpO1xuICAgIH1cbiAgfSk7XG4gIF8uZWFjaChqc29uLmVkZ2VzLCBmdW5jdGlvbiAoZW50cnkpIHtcbiAgICBnLnNldEVkZ2UoeyB2OiBlbnRyeS52LCB3OiBlbnRyeS53LCBuYW1lOiBlbnRyeS5uYW1lIH0sIGVudHJ5LnZhbHVlKTtcbiAgfSk7XG4gIHJldHVybiBnO1xufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUm9vdHxpbXBvcnQoJ21kYXN0JykuQ29udGVudH0gTm9kZVxuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2luY2x1ZGVJbWFnZUFsdD10cnVlXVxuICogICBXaGV0aGVyIHRvIHVzZSBgYWx0YCBmb3IgYGltYWdlYHMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbaW5jbHVkZUh0bWw9dHJ1ZV1cbiAqICAgV2hldGhlciB0byB1c2UgYHZhbHVlYCBvZiBIVE1MLlxuICovXG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKlxuICogR2V0IHRoZSB0ZXh0IGNvbnRlbnQgb2YgYSBub2RlIG9yIGxpc3Qgb2Ygbm9kZXMuXG4gKlxuICogUHJlZmVycyB0aGUgbm9kZeKAmXMgcGxhaW4tdGV4dCBmaWVsZHMsIG90aGVyd2lzZSBzZXJpYWxpemVzIGl0cyBjaGlsZHJlbixcbiAqIGFuZCBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gYXJyYXksIHNlcmlhbGl6ZSB0aGUgbm9kZXMgaW4gaXQuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICBUaGluZyB0byBzZXJpYWxpemUsIHR5cGljYWxseSBgTm9kZWAuXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBgdmFsdWVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9TdHJpbmcodmFsdWUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IGVtcHR5T3B0aW9uc1xuICBjb25zdCBpbmNsdWRlSW1hZ2VBbHQgPVxuICAgIHR5cGVvZiBzZXR0aW5ncy5pbmNsdWRlSW1hZ2VBbHQgPT09ICdib29sZWFuJ1xuICAgICAgPyBzZXR0aW5ncy5pbmNsdWRlSW1hZ2VBbHRcbiAgICAgIDogdHJ1ZVxuICBjb25zdCBpbmNsdWRlSHRtbCA9XG4gICAgdHlwZW9mIHNldHRpbmdzLmluY2x1ZGVIdG1sID09PSAnYm9vbGVhbicgPyBzZXR0aW5ncy5pbmNsdWRlSHRtbCA6IHRydWVcblxuICByZXR1cm4gb25lKHZhbHVlLCBpbmNsdWRlSW1hZ2VBbHQsIGluY2x1ZGVIdG1sKVxufVxuXG4vKipcbiAqIE9uZSBub2RlIG9yIHNldmVyYWwgbm9kZXMuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICBUaGluZyB0byBzZXJpYWxpemUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVJbWFnZUFsdFxuICogICBJbmNsdWRlIGltYWdlIGBhbHRgcy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5jbHVkZUh0bWxcbiAqICAgSW5jbHVkZSBIVE1MLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5mdW5jdGlvbiBvbmUodmFsdWUsIGluY2x1ZGVJbWFnZUFsdCwgaW5jbHVkZUh0bWwpIHtcbiAgaWYgKG5vZGUodmFsdWUpKSB7XG4gICAgaWYgKCd2YWx1ZScgaW4gdmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZS50eXBlID09PSAnaHRtbCcgJiYgIWluY2x1ZGVIdG1sID8gJycgOiB2YWx1ZS52YWx1ZVxuICAgIH1cblxuICAgIGlmIChpbmNsdWRlSW1hZ2VBbHQgJiYgJ2FsdCcgaW4gdmFsdWUgJiYgdmFsdWUuYWx0KSB7XG4gICAgICByZXR1cm4gdmFsdWUuYWx0XG4gICAgfVxuXG4gICAgaWYgKCdjaGlsZHJlbicgaW4gdmFsdWUpIHtcbiAgICAgIHJldHVybiBhbGwodmFsdWUuY2hpbGRyZW4sIGluY2x1ZGVJbWFnZUFsdCwgaW5jbHVkZUh0bWwpXG4gICAgfVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIGFsbCh2YWx1ZSwgaW5jbHVkZUltYWdlQWx0LCBpbmNsdWRlSHRtbClcbiAgfVxuXG4gIHJldHVybiAnJ1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGxpc3Qgb2Ygbm9kZXMuXG4gKlxuICogQHBhcmFtIHtBcnJheTx1bmtub3duPn0gdmFsdWVzXG4gKiAgIFRoaW5nIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5jbHVkZUltYWdlQWx0XG4gKiAgIEluY2x1ZGUgaW1hZ2UgYGFsdGBzLlxuICogQHBhcmFtIHtib29sZWFufSBpbmNsdWRlSHRtbFxuICogICBJbmNsdWRlIEhUTUwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGVzLlxuICovXG5mdW5jdGlvbiBhbGwodmFsdWVzLCBpbmNsdWRlSW1hZ2VBbHQsIGluY2x1ZGVIdG1sKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHZhbHVlcy5sZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gb25lKHZhbHVlc1tpbmRleF0sIGluY2x1ZGVJbWFnZUFsdCwgaW5jbHVkZUh0bWwpXG4gIH1cblxuICByZXR1cm4gcmVzdWx0LmpvaW4oJycpXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYHZhbHVlYCBsb29rcyBsaWtlIGEgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIFRoaW5nLlxuICogQHJldHVybnMge3ZhbHVlIGlzIE5vZGV9XG4gKiAgIFdoZXRoZXIgYHZhbHVlYCBpcyBhIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG5vZGUodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4odmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jylcbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi9pbmRleC5qcycpLk9wdGlvbnN9IE9wdGlvbnNcbiAqL1xuXG5leHBvcnQge3RvU3RyaW5nfSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsCiAgICAiLyoqXG4gKiBMaWtlIGBBcnJheSNzcGxpY2VgLCBidXQgc21hcnRlciBmb3IgZ2lhbnQgYXJyYXlzLlxuICpcbiAqIGBBcnJheSNzcGxpY2VgIHRha2VzIGFsbCBpdGVtcyB0byBiZSBpbnNlcnRlZCBhcyBpbmRpdmlkdWFsIGFyZ3VtZW50IHdoaWNoXG4gKiBjYXVzZXMgYSBzdGFjayBvdmVyZmxvdyBpbiBWOCB3aGVuIHRyeWluZyB0byBpbnNlcnQgMTAwayBpdGVtcyBmb3IgaW5zdGFuY2UuXG4gKlxuICogT3RoZXJ3aXNlLCB0aGlzIGRvZXMgbm90IHJldHVybiB0aGUgcmVtb3ZlZCBpdGVtcywgYW5kIHRha2VzIGBpdGVtc2AgYXMgYW5cbiAqIGFycmF5IGluc3RlYWQgb2YgcmVzdCBwYXJhbWV0ZXJzLlxuICpcbiAqIEB0ZW1wbGF0ZSB7dW5rbm93bn0gVFxuICogICBJdGVtIHR5cGUuXG4gKiBAcGFyYW0ge0FycmF5PFQ+fSBsaXN0XG4gKiAgIExpc3QgdG8gb3BlcmF0ZSBvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydFxuICogICBJbmRleCB0byByZW1vdmUvaW5zZXJ0IGF0IChjYW4gYmUgbmVnYXRpdmUpLlxuICogQHBhcmFtIHtudW1iZXJ9IHJlbW92ZVxuICogICBOdW1iZXIgb2YgaXRlbXMgdG8gcmVtb3ZlLlxuICogQHBhcmFtIHtBcnJheTxUPn0gaXRlbXNcbiAqICAgSXRlbXMgdG8gaW5qZWN0IGludG8gYGxpc3RgLlxuICogQHJldHVybnMge3ZvaWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpY2UobGlzdCwgc3RhcnQsIHJlbW92ZSwgaXRlbXMpIHtcbiAgY29uc3QgZW5kID0gbGlzdC5sZW5ndGhcbiAgbGV0IGNodW5rU3RhcnQgPSAwXG4gIC8qKiBAdHlwZSB7QXJyYXk8dW5rbm93bj59ICovXG4gIGxldCBwYXJhbWV0ZXJzXG5cbiAgLy8gTWFrZSBzdGFydCBiZXR3ZWVuIHplcm8gYW5kIGBlbmRgIChpbmNsdWRlZCkuXG4gIGlmIChzdGFydCA8IDApIHtcbiAgICBzdGFydCA9IC1zdGFydCA+IGVuZCA/IDAgOiBlbmQgKyBzdGFydFxuICB9IGVsc2Uge1xuICAgIHN0YXJ0ID0gc3RhcnQgPiBlbmQgPyBlbmQgOiBzdGFydFxuICB9XG4gIHJlbW92ZSA9IHJlbW92ZSA+IDAgPyByZW1vdmUgOiAwXG5cbiAgLy8gTm8gbmVlZCB0byBjaHVuayB0aGUgaXRlbXMgaWYgdGhlcmXigJlzIG9ubHkgYSBjb3VwbGUgKDEwaykgaXRlbXMuXG4gIGlmIChpdGVtcy5sZW5ndGggPCAxMDAwMCkge1xuICAgIHBhcmFtZXRlcnMgPSBBcnJheS5mcm9tKGl0ZW1zKVxuICAgIHBhcmFtZXRlcnMudW5zaGlmdChzdGFydCwgcmVtb3ZlKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgSHVzaCwgaXTigJlzIGZpbmUuXG4gICAgbGlzdC5zcGxpY2UoLi4ucGFyYW1ldGVycylcbiAgfSBlbHNlIHtcbiAgICAvLyBEZWxldGUgYHJlbW92ZWAgaXRlbXMgc3RhcnRpbmcgZnJvbSBgc3RhcnRgXG4gICAgaWYgKHJlbW92ZSkgbGlzdC5zcGxpY2Uoc3RhcnQsIHJlbW92ZSlcblxuICAgIC8vIEluc2VydCB0aGUgaXRlbXMgaW4gY2h1bmtzIHRvIG5vdCBjYXVzZSBzdGFjayBvdmVyZmxvd3MuXG4gICAgd2hpbGUgKGNodW5rU3RhcnQgPCBpdGVtcy5sZW5ndGgpIHtcbiAgICAgIHBhcmFtZXRlcnMgPSBpdGVtcy5zbGljZShjaHVua1N0YXJ0LCBjaHVua1N0YXJ0ICsgMTAwMDApXG4gICAgICBwYXJhbWV0ZXJzLnVuc2hpZnQoc3RhcnQsIDApXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEh1c2gsIGl04oCZcyBmaW5lLlxuICAgICAgbGlzdC5zcGxpY2UoLi4ucGFyYW1ldGVycylcbiAgICAgIGNodW5rU3RhcnQgKz0gMTAwMDBcbiAgICAgIHN0YXJ0ICs9IDEwMDAwXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQXBwZW5kIGBpdGVtc2AgKGFuIGFycmF5KSBhdCB0aGUgZW5kIG9mIGBsaXN0YCAoYW5vdGhlciBhcnJheSkuXG4gKiBXaGVuIGBsaXN0YCB3YXMgZW1wdHksIHJldHVybnMgYGl0ZW1zYCBpbnN0ZWFkLlxuICpcbiAqIFRoaXMgcHJldmVudHMgYSBwb3RlbnRpYWxseSBleHBlbnNpdmUgb3BlcmF0aW9uIHdoZW4gYGxpc3RgIGlzIGVtcHR5LFxuICogYW5kIGFkZHMgaXRlbXMgaW4gYmF0Y2hlcyB0byBwcmV2ZW50IFY4IGZyb20gaGFuZ2luZy5cbiAqXG4gKiBAdGVtcGxhdGUge3Vua25vd259IFRcbiAqICAgSXRlbSB0eXBlLlxuICogQHBhcmFtIHtBcnJheTxUPn0gbGlzdFxuICogICBMaXN0IHRvIG9wZXJhdGUgb24uXG4gKiBAcGFyYW0ge0FycmF5PFQ+fSBpdGVtc1xuICogICBJdGVtcyB0byBhZGQgdG8gYGxpc3RgLlxuICogQHJldHVybnMge0FycmF5PFQ+fVxuICogICBFaXRoZXIgYGxpc3RgIG9yIGBpdGVtc2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwdXNoKGxpc3QsIGl0ZW1zKSB7XG4gIGlmIChsaXN0Lmxlbmd0aCA+IDApIHtcbiAgICBzcGxpY2UobGlzdCwgbGlzdC5sZW5ndGgsIDAsIGl0ZW1zKVxuICAgIHJldHVybiBsaXN0XG4gIH1cbiAgcmV0dXJuIGl0ZW1zXG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FeHRlbnNpb259IEV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5IYW5kbGVzfSBIYW5kbGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkh0bWxFeHRlbnNpb259IEh0bWxFeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuTm9ybWFsaXplZEV4dGVuc2lvbn0gTm9ybWFsaXplZEV4dGVuc2lvblxuICovXG5cbmltcG9ydCB7c3BsaWNlfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaHVua2VkJ1xuXG5jb25zdCBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogQ29tYmluZSBtdWx0aXBsZSBzeW50YXggZXh0ZW5zaW9ucyBpbnRvIG9uZS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PEV4dGVuc2lvbj59IGV4dGVuc2lvbnNcbiAqICAgTGlzdCBvZiBzeW50YXggZXh0ZW5zaW9ucy5cbiAqIEByZXR1cm5zIHtOb3JtYWxpemVkRXh0ZW5zaW9ufVxuICogICBBIHNpbmdsZSBjb21iaW5lZCBleHRlbnNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRXh0ZW5zaW9ucyhleHRlbnNpb25zKSB7XG4gIC8qKiBAdHlwZSB7Tm9ybWFsaXplZEV4dGVuc2lvbn0gKi9cbiAgY29uc3QgYWxsID0ge31cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGV4dGVuc2lvbnMubGVuZ3RoKSB7XG4gICAgc3ludGF4RXh0ZW5zaW9uKGFsbCwgZXh0ZW5zaW9uc1tpbmRleF0pXG4gIH1cblxuICByZXR1cm4gYWxsXG59XG5cbi8qKlxuICogTWVyZ2UgYGV4dGVuc2lvbmAgaW50byBgYWxsYC5cbiAqXG4gKiBAcGFyYW0ge05vcm1hbGl6ZWRFeHRlbnNpb259IGFsbFxuICogICBFeHRlbnNpb24gdG8gbWVyZ2UgaW50by5cbiAqIEBwYXJhbSB7RXh0ZW5zaW9ufSBleHRlbnNpb25cbiAqICAgRXh0ZW5zaW9uIHRvIG1lcmdlLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIHN5bnRheEV4dGVuc2lvbihhbGwsIGV4dGVuc2lvbikge1xuICAvKiogQHR5cGUge2tleW9mIEV4dGVuc2lvbn0gKi9cbiAgbGV0IGhvb2tcblxuICBmb3IgKGhvb2sgaW4gZXh0ZW5zaW9uKSB7XG4gICAgY29uc3QgbWF5YmUgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKGFsbCwgaG9vaykgPyBhbGxbaG9va10gOiB1bmRlZmluZWRcbiAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAqL1xuICAgIGNvbnN0IGxlZnQgPSBtYXliZSB8fCAoYWxsW2hvb2tdID0ge30pXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZH0gKi9cbiAgICBjb25zdCByaWdodCA9IGV4dGVuc2lvbltob29rXVxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCBjb2RlXG5cbiAgICBpZiAocmlnaHQpIHtcbiAgICAgIGZvciAoY29kZSBpbiByaWdodCkge1xuICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwobGVmdCwgY29kZSkpIGxlZnRbY29kZV0gPSBbXVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHJpZ2h0W2NvZGVdXG4gICAgICAgIGNvbnN0cnVjdHMoXG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBMb29rcyBsaWtlIGEgbGlzdC5cbiAgICAgICAgICBsZWZ0W2NvZGVdLFxuICAgICAgICAgIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiB2YWx1ZSA/IFt2YWx1ZV0gOiBbXVxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogTWVyZ2UgYGxpc3RgIGludG8gYGV4aXN0aW5nYCAoYm90aCBsaXN0cyBvZiBjb25zdHJ1Y3RzKS5cbiAqIE11dGF0ZXMgYGV4aXN0aW5nYC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHVua25vd24+fSBleGlzdGluZ1xuICogQHBhcmFtIHtBcnJheTx1bmtub3duPn0gbGlzdFxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGNvbnN0cnVjdHMoZXhpc3RpbmcsIGxpc3QpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtBcnJheTx1bmtub3duPn0gKi9cbiAgY29uc3QgYmVmb3JlID0gW11cblxuICB3aGlsZSAoKytpbmRleCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBMb29rcyBsaWtlIGFuIG9iamVjdC5cbiAgICA7KGxpc3RbaW5kZXhdLmFkZCA9PT0gJ2FmdGVyJyA/IGV4aXN0aW5nIDogYmVmb3JlKS5wdXNoKGxpc3RbaW5kZXhdKVxuICB9XG5cbiAgc3BsaWNlKGV4aXN0aW5nLCAwLCAwLCBiZWZvcmUpXG59XG5cbi8qKlxuICogQ29tYmluZSBtdWx0aXBsZSBIVE1MIGV4dGVuc2lvbnMgaW50byBvbmUuXG4gKlxuICogQHBhcmFtIHtBcnJheTxIdG1sRXh0ZW5zaW9uPn0gaHRtbEV4dGVuc2lvbnNcbiAqICAgTGlzdCBvZiBIVE1MIGV4dGVuc2lvbnMuXG4gKiBAcmV0dXJucyB7SHRtbEV4dGVuc2lvbn1cbiAqICAgQSBzaW5nbGUgY29tYmluZWQgSFRNTCBleHRlbnNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lSHRtbEV4dGVuc2lvbnMoaHRtbEV4dGVuc2lvbnMpIHtcbiAgLyoqIEB0eXBlIHtIdG1sRXh0ZW5zaW9ufSAqL1xuICBjb25zdCBoYW5kbGVycyA9IHt9XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBodG1sRXh0ZW5zaW9ucy5sZW5ndGgpIHtcbiAgICBodG1sRXh0ZW5zaW9uKGhhbmRsZXJzLCBodG1sRXh0ZW5zaW9uc1tpbmRleF0pXG4gIH1cblxuICByZXR1cm4gaGFuZGxlcnNcbn1cblxuLyoqXG4gKiBNZXJnZSBgZXh0ZW5zaW9uYCBpbnRvIGBhbGxgLlxuICpcbiAqIEBwYXJhbSB7SHRtbEV4dGVuc2lvbn0gYWxsXG4gKiAgIEV4dGVuc2lvbiB0byBtZXJnZSBpbnRvLlxuICogQHBhcmFtIHtIdG1sRXh0ZW5zaW9ufSBleHRlbnNpb25cbiAqICAgRXh0ZW5zaW9uIHRvIG1lcmdlLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGh0bWxFeHRlbnNpb24oYWxsLCBleHRlbnNpb24pIHtcbiAgLyoqIEB0eXBlIHtrZXlvZiBIdG1sRXh0ZW5zaW9ufSAqL1xuICBsZXQgaG9va1xuXG4gIGZvciAoaG9vayBpbiBleHRlbnNpb24pIHtcbiAgICBjb25zdCBtYXliZSA9IGhhc093blByb3BlcnR5LmNhbGwoYWxsLCBob29rKSA/IGFsbFtob29rXSA6IHVuZGVmaW5lZFxuICAgIGNvbnN0IGxlZnQgPSBtYXliZSB8fCAoYWxsW2hvb2tdID0ge30pXG4gICAgY29uc3QgcmlnaHQgPSBleHRlbnNpb25baG9va11cbiAgICAvKiogQHR5cGUge2tleW9mIEhhbmRsZXN9ICovXG4gICAgbGV0IHR5cGVcblxuICAgIGlmIChyaWdodCkge1xuICAgICAgZm9yICh0eXBlIGluIHJpZ2h0KSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgYXNzdW1lIGRvY3VtZW50IHZzIHJlZ3VsYXIgaGFuZGxlciBhcmUgbWFuYWdlZCBjb3JyZWN0bHkuXG4gICAgICAgIGxlZnRbdHlwZV0gPSByaWdodFt0eXBlXVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwKICAgICIvLyBUaGlzIG1vZHVsZSBpcyBnZW5lcmF0ZWQgYnkgYHNjcmlwdC9gLlxuLy9cbi8vIENvbW1vbk1hcmsgaGFuZGxlcyBhdHRlbnRpb24gKGVtcGhhc2lzLCBzdHJvbmcpIG1hcmtlcnMgYmFzZWQgb24gd2hhdCBjb21lc1xuLy8gYmVmb3JlIG9yIGFmdGVyIHRoZW0uXG4vLyBPbmUgc3VjaCBkaWZmZXJlbmNlIGlzIGlmIHRob3NlIGNoYXJhY3RlcnMgYXJlIFVuaWNvZGUgcHVuY3R1YXRpb24uXG4vLyBUaGlzIHNjcmlwdCBpcyBnZW5lcmF0ZWQgZnJvbSB0aGUgVW5pY29kZSBkYXRhLlxuXG4vKipcbiAqIFJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IG1hdGNoZXMgYSB1bmljb2RlIHB1bmN0dWF0aW9uIGNoYXJhY3Rlci5cbiAqL1xuZXhwb3J0IGNvbnN0IHVuaWNvZGVQdW5jdHVhdGlvblJlZ2V4ID1cbiAgL1shLVxcLzotQFxcWy1gXFx7LX5cXHhBMVxceEE3XFx4QUJcXHhCNlxceEI3XFx4QkJcXHhCRlxcdTAzN0VcXHUwMzg3XFx1MDU1QS1cXHUwNTVGXFx1MDU4OVxcdTA1OEFcXHUwNUJFXFx1MDVDMFxcdTA1QzNcXHUwNUM2XFx1MDVGM1xcdTA1RjRcXHUwNjA5XFx1MDYwQVxcdTA2MENcXHUwNjBEXFx1MDYxQlxcdTA2MUQtXFx1MDYxRlxcdTA2NkEtXFx1MDY2RFxcdTA2RDRcXHUwNzAwLVxcdTA3MERcXHUwN0Y3LVxcdTA3RjlcXHUwODMwLVxcdTA4M0VcXHUwODVFXFx1MDk2NFxcdTA5NjVcXHUwOTcwXFx1MDlGRFxcdTBBNzZcXHUwQUYwXFx1MEM3N1xcdTBDODRcXHUwREY0XFx1MEU0RlxcdTBFNUFcXHUwRTVCXFx1MEYwNC1cXHUwRjEyXFx1MEYxNFxcdTBGM0EtXFx1MEYzRFxcdTBGODVcXHUwRkQwLVxcdTBGRDRcXHUwRkQ5XFx1MEZEQVxcdTEwNEEtXFx1MTA0RlxcdTEwRkJcXHUxMzYwLVxcdTEzNjhcXHUxNDAwXFx1MTY2RVxcdTE2OUJcXHUxNjlDXFx1MTZFQi1cXHUxNkVEXFx1MTczNVxcdTE3MzZcXHUxN0Q0LVxcdTE3RDZcXHUxN0Q4LVxcdTE3REFcXHUxODAwLVxcdTE4MEFcXHUxOTQ0XFx1MTk0NVxcdTFBMUVcXHUxQTFGXFx1MUFBMC1cXHUxQUE2XFx1MUFBOC1cXHUxQUFEXFx1MUI1QS1cXHUxQjYwXFx1MUI3RFxcdTFCN0VcXHUxQkZDLVxcdTFCRkZcXHUxQzNCLVxcdTFDM0ZcXHUxQzdFXFx1MUM3RlxcdTFDQzAtXFx1MUNDN1xcdTFDRDNcXHUyMDEwLVxcdTIwMjdcXHUyMDMwLVxcdTIwNDNcXHUyMDQ1LVxcdTIwNTFcXHUyMDUzLVxcdTIwNUVcXHUyMDdEXFx1MjA3RVxcdTIwOERcXHUyMDhFXFx1MjMwOC1cXHUyMzBCXFx1MjMyOVxcdTIzMkFcXHUyNzY4LVxcdTI3NzVcXHUyN0M1XFx1MjdDNlxcdTI3RTYtXFx1MjdFRlxcdTI5ODMtXFx1Mjk5OFxcdTI5RDgtXFx1MjlEQlxcdTI5RkNcXHUyOUZEXFx1MkNGOS1cXHUyQ0ZDXFx1MkNGRVxcdTJDRkZcXHUyRDcwXFx1MkUwMC1cXHUyRTJFXFx1MkUzMC1cXHUyRTRGXFx1MkU1Mi1cXHUyRTVEXFx1MzAwMS1cXHUzMDAzXFx1MzAwOC1cXHUzMDExXFx1MzAxNC1cXHUzMDFGXFx1MzAzMFxcdTMwM0RcXHUzMEEwXFx1MzBGQlxcdUE0RkVcXHVBNEZGXFx1QTYwRC1cXHVBNjBGXFx1QTY3M1xcdUE2N0VcXHVBNkYyLVxcdUE2RjdcXHVBODc0LVxcdUE4NzdcXHVBOENFXFx1QThDRlxcdUE4RjgtXFx1QThGQVxcdUE4RkNcXHVBOTJFXFx1QTkyRlxcdUE5NUZcXHVBOUMxLVxcdUE5Q0RcXHVBOURFXFx1QTlERlxcdUFBNUMtXFx1QUE1RlxcdUFBREVcXHVBQURGXFx1QUFGMFxcdUFBRjFcXHVBQkVCXFx1RkQzRVxcdUZEM0ZcXHVGRTEwLVxcdUZFMTlcXHVGRTMwLVxcdUZFNTJcXHVGRTU0LVxcdUZFNjFcXHVGRTYzXFx1RkU2OFxcdUZFNkFcXHVGRTZCXFx1RkYwMS1cXHVGRjAzXFx1RkYwNS1cXHVGRjBBXFx1RkYwQy1cXHVGRjBGXFx1RkYxQVxcdUZGMUJcXHVGRjFGXFx1RkYyMFxcdUZGM0ItXFx1RkYzRFxcdUZGM0ZcXHVGRjVCXFx1RkY1RFxcdUZGNUYtXFx1RkY2NV0vXG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db2RlfSBDb2RlXG4gKi9cblxuaW1wb3J0IHt1bmljb2RlUHVuY3R1YXRpb25SZWdleH0gZnJvbSAnLi9saWIvdW5pY29kZS1wdW5jdHVhdGlvbi1yZWdleC5qcydcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgY29kZSByZXByZXNlbnRzIGFuIEFTQ0lJIGFscGhhIChgYWAgdGhyb3VnaCBgemAsXG4gKiBjYXNlIGluc2Vuc2l0aXZlKS5cbiAqXG4gKiBBbiAqKkFTQ0lJIGFscGhhKiogaXMgYW4gQVNDSUkgdXBwZXIgYWxwaGEgb3IgQVNDSUkgbG93ZXIgYWxwaGEuXG4gKlxuICogQW4gKipBU0NJSSB1cHBlciBhbHBoYSoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDQxIChgQWApXG4gKiB0byBVKzAwNUEgKGBaYCkuXG4gKlxuICogQW4gKipBU0NJSSBsb3dlciBhbHBoYSoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDYxIChgYWApXG4gKiB0byBVKzAwN0EgKGB6YCkuXG4gKlxuICogQHBhcmFtIGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zXG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGFzY2lpQWxwaGEgPSByZWdleENoZWNrKC9bQS1aYS16XS8pXG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGNvZGUgcmVwcmVzZW50cyBhbiBBU0NJSSBhbHBoYW51bWVyaWMgKGBhYFxuICogdGhyb3VnaCBgemAsIGNhc2UgaW5zZW5zaXRpdmUsIG9yIGAwYCB0aHJvdWdoIGA5YCkuXG4gKlxuICogQW4gKipBU0NJSSBhbHBoYW51bWVyaWMqKiBpcyBhbiBBU0NJSSBkaWdpdCAoc2VlIGBhc2NpaURpZ2l0YCkgb3IgQVNDSUkgYWxwaGFcbiAqIChzZWUgYGFzY2lpQWxwaGFgKS5cbiAqXG4gKiBAcGFyYW0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnNcbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgYXNjaWlBbHBoYW51bWVyaWMgPSByZWdleENoZWNrKC9bXFxkQS1aYS16XS8pXG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGNvZGUgcmVwcmVzZW50cyBhbiBBU0NJSSBhdGV4dC5cbiAqXG4gKiBhdGV4dCBpcyBhbiBBU0NJSSBhbHBoYW51bWVyaWMgKHNlZSBgYXNjaWlBbHBoYW51bWVyaWNgKSwgb3IgYSBjaGFyYWN0ZXIgaW5cbiAqIHRoZSBpbmNsdXNpdmUgcmFuZ2VzIFUrMDAyMyBOVU1CRVIgU0lHTiAoYCNgKSB0byBVKzAwMjcgQVBPU1RST1BIRSAoYCdgKSxcbiAqIFUrMDAyQSBBU1RFUklTSyAoYCpgKSwgVSswMDJCIFBMVVMgU0lHTiAoYCtgKSwgVSswMDJEIERBU0ggKGAtYCksIFUrMDAyRlxuICogU0xBU0ggKGAvYCksIFUrMDAzRCBFUVVBTFMgVE8gKGA9YCksIFUrMDAzRiBRVUVTVElPTiBNQVJLIChgP2ApLCBVKzAwNUVcbiAqIENBUkVUIChgXmApIHRvIFUrMDA2MCBHUkFWRSBBQ0NFTlQgKGBgIGAgYGApLCBvciBVKzAwN0IgTEVGVCBDVVJMWSBCUkFDRVxuICogKGB7YCkgdG8gVSswMDdFIFRJTERFIChgfmApLlxuICpcbiAqIFNlZTpcbiAqICoqXFxbUkZDNTMyMl0qKjpcbiAqIFtJbnRlcm5ldCBNZXNzYWdlIEZvcm1hdF0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIpLlxuICogUC4gUmVzbmljay5cbiAqIElFVEYuXG4gKlxuICogQHBhcmFtIGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zXG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGFzY2lpQXRleHQgPSByZWdleENoZWNrKC9bIy0nKitcXC0tOT0/QS1aXi1+XS8pXG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIGNoYXJhY3RlciBjb2RlIGlzIGFuIEFTQ0lJIGNvbnRyb2wgY2hhcmFjdGVyLlxuICpcbiAqIEFuICoqQVNDSUkgY29udHJvbCoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDAwIE5VTEwgKE5VTClcbiAqIHRvIFUrMDAxRiAoVVMpLCBvciBVKzAwN0YgKERFTCkuXG4gKlxuICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNjaWlDb250cm9sKGNvZGUpIHtcbiAgcmV0dXJuIChcbiAgICAvLyBTcGVjaWFsIHdoaXRlc3BhY2UgY29kZXMgKHdoaWNoIGhhdmUgbmVnYXRpdmUgdmFsdWVzKSwgQzAgYW5kIENvbnRyb2xcbiAgICAvLyBjaGFyYWN0ZXIgREVMXG4gICAgY29kZSAhPT0gbnVsbCAmJiAoY29kZSA8IDMyIHx8IGNvZGUgPT09IDEyNylcbiAgKVxufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgYW4gQVNDSUkgZGlnaXQgKGAwYCB0aHJvdWdoIGA5YCkuXG4gKlxuICogQW4gKipBU0NJSSBkaWdpdCoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDMwIChgMGApIHRvXG4gKiBVKzAwMzkgKGA5YCkuXG4gKlxuICogQHBhcmFtIGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zXG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGFzY2lpRGlnaXQgPSByZWdleENoZWNrKC9cXGQvKVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgYW4gQVNDSUkgaGV4IGRpZ2l0IChgYWAgdGhyb3VnaFxuICogYGZgLCBjYXNlIGluc2Vuc2l0aXZlLCBvciBgMGAgdGhyb3VnaCBgOWApLlxuICpcbiAqIEFuICoqQVNDSUkgaGV4IGRpZ2l0KiogaXMgYW4gQVNDSUkgZGlnaXQgKHNlZSBgYXNjaWlEaWdpdGApLCBBU0NJSSB1cHBlciBoZXhcbiAqIGRpZ2l0LCBvciBhbiBBU0NJSSBsb3dlciBoZXggZGlnaXQuXG4gKlxuICogQW4gKipBU0NJSSB1cHBlciBoZXggZGlnaXQqKiBpcyBhIGNoYXJhY3RlciBpbiB0aGUgaW5jbHVzaXZlIHJhbmdlIFUrMDA0MVxuICogKGBBYCkgdG8gVSswMDQ2IChgRmApLlxuICpcbiAqIEFuICoqQVNDSUkgbG93ZXIgaGV4IGRpZ2l0KiogaXMgYSBjaGFyYWN0ZXIgaW4gdGhlIGluY2x1c2l2ZSByYW5nZSBVKzAwNjFcbiAqIChgYWApIHRvIFUrMDA2NiAoYGZgKS5cbiAqXG4gKiBAcGFyYW0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnNcbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgYXNjaWlIZXhEaWdpdCA9IHJlZ2V4Q2hlY2soL1tcXGRBLUZhLWZdLylcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgY29kZSByZXByZXNlbnRzIEFTQ0lJIHB1bmN0dWF0aW9uLlxuICpcbiAqIEFuICoqQVNDSUkgcHVuY3R1YXRpb24qKiBpcyBhIGNoYXJhY3RlciBpbiB0aGUgaW5jbHVzaXZlIHJhbmdlcyBVKzAwMjFcbiAqIEVYQ0xBTUFUSU9OIE1BUksgKGAhYCkgdG8gVSswMDJGIFNMQVNIIChgL2ApLCBVKzAwM0EgQ09MT04gKGA6YCkgdG8gVSswMDQwIEFUXG4gKiBTSUdOIChgQGApLCBVKzAwNUIgTEVGVCBTUVVBUkUgQlJBQ0tFVCAoYFtgKSB0byBVKzAwNjAgR1JBVkUgQUNDRU5UXG4gKiAoYGAgYCBgYCksIG9yIFUrMDA3QiBMRUZUIENVUkxZIEJSQUNFIChge2ApIHRvIFUrMDA3RSBUSUxERSAoYH5gKS5cbiAqXG4gKiBAcGFyYW0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnNcbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgYXNjaWlQdW5jdHVhdGlvbiA9IHJlZ2V4Q2hlY2soL1shLS86LUBbLWB7LX5dLylcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGEgY2hhcmFjdGVyIGNvZGUgaXMgYSBtYXJrZG93biBsaW5lIGVuZGluZy5cbiAqXG4gKiBBICoqbWFya2Rvd24gbGluZSBlbmRpbmcqKiBpcyB0aGUgdmlydHVhbCBjaGFyYWN0ZXJzIE0tMDAwMyBDQVJSSUFHRSBSRVRVUk5cbiAqIExJTkUgRkVFRCAoQ1JMRiksIE0tMDAwNCBMSU5FIEZFRUQgKExGKSBhbmQgTS0wMDA1IENBUlJJQUdFIFJFVFVSTiAoQ1IpLlxuICpcbiAqIEluIG1pY3JvbWFyaywgdGhlIGFjdHVhbCBjaGFyYWN0ZXIgVSswMDBBIExJTkUgRkVFRCAoTEYpIGFuZCBVKzAwMEQgQ0FSUklBR0VcbiAqIFJFVFVSTiAoQ1IpIGFyZSByZXBsYWNlZCBieSB0aGVzZSB2aXJ0dWFsIGNoYXJhY3RlcnMgZGVwZW5kaW5nIG9uIHdoZXRoZXJcbiAqIHRoZXkgb2NjdXJyZWQgdG9nZXRoZXIuXG4gKlxuICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpIHtcbiAgcmV0dXJuIGNvZGUgIT09IG51bGwgJiYgY29kZSA8IC0yXG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIGNoYXJhY3RlciBjb2RlIGlzIGEgbWFya2Rvd24gbGluZSBlbmRpbmcgKHNlZVxuICogYG1hcmtkb3duTGluZUVuZGluZ2ApIG9yIG1hcmtkb3duIHNwYWNlIChzZWUgYG1hcmtkb3duU3BhY2VgKS5cbiAqXG4gKiBAcGFyYW0ge0NvZGV9IGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIGl0IG1hdGNoZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpIHtcbiAgcmV0dXJuIGNvZGUgIT09IG51bGwgJiYgKGNvZGUgPCAwIHx8IGNvZGUgPT09IDMyKVxufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgYSBjaGFyYWN0ZXIgY29kZSBpcyBhIG1hcmtkb3duIHNwYWNlLlxuICpcbiAqIEEgKiptYXJrZG93biBzcGFjZSoqIGlzIHRoZSBjb25jcmV0ZSBjaGFyYWN0ZXIgVSswMDIwIFNQQUNFIChTUCkgYW5kIHRoZVxuICogdmlydHVhbCBjaGFyYWN0ZXJzIE0tMDAwMSBWSVJUVUFMIFNQQUNFIChWUykgYW5kIE0tMDAwMiBIT1JJWk9OVEFMIFRBQiAoSFQpLlxuICpcbiAqIEluIG1pY3JvbWFyaywgdGhlIGFjdHVhbCBjaGFyYWN0ZXIgVSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OIChIVCkgaXNcbiAqIHJlcGxhY2VkIGJ5IG9uZSBNLTAwMDIgSE9SSVpPTlRBTCBUQUIgKEhUKSBhbmQgYmV0d2VlbiAwIGFuZCAzIE0tMDAwMSBWSVJUVUFMXG4gKiBTUEFDRSAoVlMpIGNoYXJhY3RlcnMsIGRlcGVuZGluZyBvbiB0aGUgY29sdW1uIGF0IHdoaWNoIHRoZSB0YWIgb2NjdXJyZWQuXG4gKlxuICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya2Rvd25TcGFjZShjb2RlKSB7XG4gIHJldHVybiBjb2RlID09PSAtMiB8fCBjb2RlID09PSAtMSB8fCBjb2RlID09PSAzMlxufVxuXG4vLyBTaXplIG5vdGU6IHJlbW92aW5nIEFTQ0lJIGZyb20gdGhlIHJlZ2V4IGFuZCB1c2luZyBgYXNjaWlQdW5jdHVhdGlvbmAgaGVyZVxuLy8gSW4gZmFjdCBhZGRzIHRvIHRoZSBidW5kbGUgc2l6ZS5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGNvZGUgcmVwcmVzZW50cyBVbmljb2RlIHB1bmN0dWF0aW9uLlxuICpcbiAqIEEgKipVbmljb2RlIHB1bmN0dWF0aW9uKiogaXMgYSBjaGFyYWN0ZXIgaW4gdGhlIFVuaWNvZGUgYFBjYCAoUHVuY3R1YXRpb24sXG4gKiBDb25uZWN0b3IpLCBgUGRgIChQdW5jdHVhdGlvbiwgRGFzaCksIGBQZWAgKFB1bmN0dWF0aW9uLCBDbG9zZSksIGBQZmBcbiAqIChQdW5jdHVhdGlvbiwgRmluYWwgcXVvdGUpLCBgUGlgIChQdW5jdHVhdGlvbiwgSW5pdGlhbCBxdW90ZSksIGBQb2BcbiAqIChQdW5jdHVhdGlvbiwgT3RoZXIpLCBvciBgUHNgIChQdW5jdHVhdGlvbiwgT3BlbikgY2F0ZWdvcmllcywgb3IgYW4gQVNDSUlcbiAqIHB1bmN0dWF0aW9uIChzZWUgYGFzY2lpUHVuY3R1YXRpb25gKS5cbiAqXG4gKiBTZWU6XG4gKiAqKlxcW1VOSUNPREVdKio6XG4gKiBbVGhlIFVuaWNvZGUgU3RhbmRhcmRdKGh0dHBzOi8vd3d3LnVuaWNvZGUub3JnL3ZlcnNpb25zLykuXG4gKiBVbmljb2RlIENvbnNvcnRpdW0uXG4gKlxuICogQHBhcmFtIGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zXG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHVuaWNvZGVQdW5jdHVhdGlvbiA9IHJlZ2V4Q2hlY2sodW5pY29kZVB1bmN0dWF0aW9uUmVnZXgpXG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGNvZGUgcmVwcmVzZW50cyBVbmljb2RlIHdoaXRlc3BhY2UuXG4gKlxuICogTm90ZSB0aGF0IHRoaXMgZG9lcyBoYW5kbGUgbWljcm9tYXJrIHNwZWNpZmljIG1hcmtkb3duIHdoaXRlc3BhY2UgY2hhcmFjdGVycy5cbiAqIFNlZSBgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZWAgdG8gY2hlY2sgdGhhdC5cbiAqXG4gKiBBICoqVW5pY29kZSB3aGl0ZXNwYWNlKiogaXMgYSBjaGFyYWN0ZXIgaW4gdGhlIFVuaWNvZGUgYFpzYCAoU2VwYXJhdG9yLFxuICogU3BhY2UpIGNhdGVnb3J5LCBvciBVKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKEhUKSwgVSswMDBBIExJTkUgRkVFRCAoTEYpLFxuICogVSswMDBDIChGRiksIG9yIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSAoKipcXFtVTklDT0RFXSoqKS5cbiAqXG4gKiBTZWU6XG4gKiAqKlxcW1VOSUNPREVdKio6XG4gKiBbVGhlIFVuaWNvZGUgU3RhbmRhcmRdKGh0dHBzOi8vd3d3LnVuaWNvZGUub3JnL3ZlcnNpb25zLykuXG4gKiBVbmljb2RlIENvbnNvcnRpdW0uXG4gKlxuICogQHBhcmFtIGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zXG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHVuaWNvZGVXaGl0ZXNwYWNlID0gcmVnZXhDaGVjaygvXFxzLylcblxuLyoqXG4gKiBDcmVhdGUgYSBjb2RlIGNoZWNrIGZyb20gYSByZWdleC5cbiAqXG4gKiBAcGFyYW0ge1JlZ0V4cH0gcmVnZXhcbiAqIEByZXR1cm5zIHsoY29kZTogQ29kZSkgPT4gYm9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gcmVnZXhDaGVjayhyZWdleCkge1xuICByZXR1cm4gY2hlY2tcblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciBhIGNvZGUgbWF0Y2hlcyB0aGUgYm91bmQgcmVnZXguXG4gICAqXG4gICAqIEBwYXJhbSB7Q29kZX0gY29kZVxuICAgKiAgIENoYXJhY3RlciBjb2RlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICogICBXaGV0aGVyIHRoZSBjaGFyYWN0ZXIgY29kZSBtYXRjaGVzIHRoZSBib3VuZCByZWdleC5cbiAgICovXG4gIGZ1bmN0aW9uIGNoZWNrKGNvZGUpIHtcbiAgICByZXR1cm4gY29kZSAhPT0gbnVsbCAmJiByZWdleC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSkpXG4gIH1cbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkVmZmVjdHN9IEVmZmVjdHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuVHlwZX0gVG9rZW5UeXBlXG4gKi9cblxuaW1wb3J0IHttYXJrZG93blNwYWNlfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5cbi8vIFRvIGRvOiBpbXBsZW1lbnQgYHNwYWNlT3JUYWJgLCBgc3BhY2VPclRhYk1pbk1heGAsIGBzcGFjZU9yVGFiV2l0aE9wdGlvbnNgLlxuXG4vKipcbiAqIFBhcnNlIHNwYWNlcyBhbmQgdGFicy5cbiAqXG4gKiBUaGVyZSBpcyBubyBgbm9rYCBwYXJhbWV0ZXI6XG4gKlxuICogKiAgIHNwYWNlcyBpbiBtYXJrZG93biBhcmUgb2Z0ZW4gb3B0aW9uYWwsIGluIHdoaWNoIGNhc2UgdGhpcyBmYWN0b3J5IGNhbiBiZVxuICogICAgIHVzZWQgYW5kIGBva2Agd2lsbCBiZSBzd2l0Y2hlZCB0byB3aGV0aGVyIHNwYWNlcyB3ZXJlIGZvdW5kIG9yIG5vdFxuICogKiAgIG9uZSBsaW5lIGVuZGluZyBvciBzcGFjZSBjYW4gYmUgZGV0ZWN0ZWQgd2l0aCBgbWFya2Rvd25TcGFjZShjb2RlKWAgcmlnaHRcbiAqICAgICBiZWZvcmUgdXNpbmcgYGZhY3RvcnlTcGFjZWBcbiAqXG4gKiAjIyMjIyMgRXhhbXBsZXNcbiAqXG4gKiBXaGVyZSBg4pCJYCByZXByZXNlbnRzIGEgdGFiIChwbHVzIGhvdyBtdWNoIGl0IGV4cGFuZHMpIGFuZCBg4pCgYCByZXByZXNlbnRzIGFcbiAqIHNpbmdsZSBzcGFjZS5cbiAqXG4gKiBgYGBtYXJrZG93blxuICog4pCJXG4gKiDikKDikKDikKDikKBcbiAqIOKQieKQoFxuICogYGBgXG4gKlxuICogQHBhcmFtIHtFZmZlY3RzfSBlZmZlY3RzXG4gKiAgIENvbnRleHQuXG4gKiBAcGFyYW0ge1N0YXRlfSBva1xuICogICBTdGF0ZSBzd2l0Y2hlZCB0byB3aGVuIHN1Y2Nlc3NmdWwuXG4gKiBAcGFyYW0ge1Rva2VuVHlwZX0gdHlwZVxuICogICBUeXBlIChgJyBcXHQnYCkuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gW21heD1JbmZpbml0eV1cbiAqICAgTWF4IChleGNsdXNpdmUpLlxuICogQHJldHVybnNcbiAqICAgU3RhcnQgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgb2ssIHR5cGUsIG1heCkge1xuICBjb25zdCBsaW1pdCA9IG1heCA/IG1heCAtIDEgOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbiAgbGV0IHNpemUgPSAwXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcih0eXBlKVxuICAgICAgcmV0dXJuIHByZWZpeChjb2RlKVxuICAgIH1cbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHByZWZpeChjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkgJiYgc2l6ZSsrIDwgbGltaXQpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHByZWZpeFxuICAgIH1cbiAgICBlZmZlY3RzLmV4aXQodHlwZSlcbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSW5pdGlhbENvbnN0cnVjdH0gSW5pdGlhbENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Jbml0aWFsaXplcn0gSW5pdGlhbGl6ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICovXG5cbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG4vKiogQHR5cGUge0luaXRpYWxDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgY29udGVudCA9IHtcbiAgdG9rZW5pemU6IGluaXRpYWxpemVDb250ZW50XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtJbml0aWFsaXplcn1cbiAqL1xuZnVuY3Rpb24gaW5pdGlhbGl6ZUNvbnRlbnQoZWZmZWN0cykge1xuICBjb25zdCBjb250ZW50U3RhcnQgPSBlZmZlY3RzLmF0dGVtcHQoXG4gICAgdGhpcy5wYXJzZXIuY29uc3RydWN0cy5jb250ZW50SW5pdGlhbCxcbiAgICBhZnRlckNvbnRlbnRTdGFydENvbnN0cnVjdCxcbiAgICBwYXJhZ3JhcGhJbml0aWFsXG4gIClcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IHByZXZpb3VzXG4gIHJldHVybiBjb250ZW50U3RhcnRcblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBhZnRlckNvbnRlbnRTdGFydENvbnN0cnVjdChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoJ2xpbmVFbmRpbmcnKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCgnbGluZUVuZGluZycpXG4gICAgcmV0dXJuIGZhY3RvcnlTcGFjZShlZmZlY3RzLCBjb250ZW50U3RhcnQsICdsaW5lUHJlZml4JylcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHBhcmFncmFwaEluaXRpYWwoY29kZSkge1xuICAgIGVmZmVjdHMuZW50ZXIoJ3BhcmFncmFwaCcpXG4gICAgcmV0dXJuIGxpbmVTdGFydChjb2RlKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gbGluZVN0YXJ0KGNvZGUpIHtcbiAgICBjb25zdCB0b2tlbiA9IGVmZmVjdHMuZW50ZXIoJ2NodW5rVGV4dCcsIHtcbiAgICAgIGNvbnRlbnRUeXBlOiAndGV4dCcsXG4gICAgICBwcmV2aW91c1xuICAgIH0pXG4gICAgaWYgKHByZXZpb3VzKSB7XG4gICAgICBwcmV2aW91cy5uZXh0ID0gdG9rZW5cbiAgICB9XG4gICAgcHJldmlvdXMgPSB0b2tlblxuICAgIHJldHVybiBkYXRhKGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBkYXRhKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgZWZmZWN0cy5leGl0KCdjaHVua1RleHQnKVxuICAgICAgZWZmZWN0cy5leGl0KCdwYXJhZ3JhcGgnKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2NodW5rVGV4dCcpXG4gICAgICByZXR1cm4gbGluZVN0YXJ0XG4gICAgfVxuXG4gICAgLy8gRGF0YS5cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gZGF0YVxuICB9XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db250YWluZXJTdGF0ZX0gQ29udGFpbmVyU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSW5pdGlhbENvbnN0cnVjdH0gSW5pdGlhbENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Jbml0aWFsaXplcn0gSW5pdGlhbGl6ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbn0gVG9rZW5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtbQ29uc3RydWN0LCBDb250YWluZXJTdGF0ZV19IFN0YWNrSXRlbVxuICovXG5cbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge3NwbGljZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2h1bmtlZCdcbi8qKiBAdHlwZSB7SW5pdGlhbENvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBkb2N1bWVudCA9IHtcbiAgdG9rZW5pemU6IGluaXRpYWxpemVEb2N1bWVudFxufVxuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IGNvbnRhaW5lckNvbnN0cnVjdCA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplQ29udGFpbmVyXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtJbml0aWFsaXplcn1cbiAqL1xuZnVuY3Rpb24gaW5pdGlhbGl6ZURvY3VtZW50KGVmZmVjdHMpIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgLyoqIEB0eXBlIHtBcnJheTxTdGFja0l0ZW0+fSAqL1xuICBjb25zdCBzdGFjayA9IFtdXG4gIGxldCBjb250aW51ZWQgPSAwXG4gIC8qKiBAdHlwZSB7VG9rZW5pemVDb250ZXh0IHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY2hpbGRGbG93XG4gIC8qKiBAdHlwZSB7VG9rZW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBjaGlsZFRva2VuXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgbGluZVN0YXJ0T2Zmc2V0XG4gIHJldHVybiBzdGFydFxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAvLyBGaXJzdCB3ZSBpdGVyYXRlIHRocm91Z2ggdGhlIG9wZW4gYmxvY2tzLCBzdGFydGluZyB3aXRoIHRoZSByb290XG4gICAgLy8gZG9jdW1lbnQsIGFuZCBkZXNjZW5kaW5nIHRocm91Z2ggbGFzdCBjaGlsZHJlbiBkb3duIHRvIHRoZSBsYXN0IG9wZW5cbiAgICAvLyBibG9jay5cbiAgICAvLyBFYWNoIGJsb2NrIGltcG9zZXMgYSBjb25kaXRpb24gdGhhdCB0aGUgbGluZSBtdXN0IHNhdGlzZnkgaWYgdGhlIGJsb2NrIGlzXG4gICAgLy8gdG8gcmVtYWluIG9wZW4uXG4gICAgLy8gRm9yIGV4YW1wbGUsIGEgYmxvY2sgcXVvdGUgcmVxdWlyZXMgYSBgPmAgY2hhcmFjdGVyLlxuICAgIC8vIEEgcGFyYWdyYXBoIHJlcXVpcmVzIGEgbm9uLWJsYW5rIGxpbmUuXG4gICAgLy8gSW4gdGhpcyBwaGFzZSB3ZSBtYXkgbWF0Y2ggYWxsIG9yIGp1c3Qgc29tZSBvZiB0aGUgb3BlbiBibG9ja3MuXG4gICAgLy8gQnV0IHdlIGNhbm5vdCBjbG9zZSB1bm1hdGNoZWQgYmxvY2tzIHlldCwgYmVjYXVzZSB3ZSBtYXkgaGF2ZSBhIGxhenlcbiAgICAvLyBjb250aW51YXRpb24gbGluZS5cbiAgICBpZiAoY29udGludWVkIDwgc3RhY2subGVuZ3RoKSB7XG4gICAgICBjb25zdCBpdGVtID0gc3RhY2tbY29udGludWVkXVxuICAgICAgc2VsZi5jb250YWluZXJTdGF0ZSA9IGl0ZW1bMV1cbiAgICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoXG4gICAgICAgIGl0ZW1bMF0uY29udGludWF0aW9uLFxuICAgICAgICBkb2N1bWVudENvbnRpbnVlLFxuICAgICAgICBjaGVja05ld0NvbnRhaW5lcnNcbiAgICAgICkoY29kZSlcbiAgICB9XG5cbiAgICAvLyBEb25lLlxuICAgIHJldHVybiBjaGVja05ld0NvbnRhaW5lcnMoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGRvY3VtZW50Q29udGludWUoY29kZSkge1xuICAgIGNvbnRpbnVlZCsrXG5cbiAgICAvLyBOb3RlOiB0aGlzIGZpZWxkIGlzIGNhbGxlZCBgX2Nsb3NlRmxvd2AgYnV0IGl0IGFsc28gY2xvc2VzIGNvbnRhaW5lcnMuXG4gICAgLy8gUGVyaGFwcyBhIGdvb2QgaWRlYSB0byByZW5hbWUgaXQgYnV0IGl04oCZcyBhbHJlYWR5IHVzZWQgaW4gdGhlIHdpbGQgYnlcbiAgICAvLyBleHRlbnNpb25zLlxuICAgIGlmIChzZWxmLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cpIHtcbiAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyA9IHVuZGVmaW5lZFxuICAgICAgaWYgKGNoaWxkRmxvdykge1xuICAgICAgICBjbG9zZUZsb3coKVxuICAgICAgfVxuXG4gICAgICAvLyBOb3RlOiB0aGlzIGFsZ29yaXRobSBmb3IgbW92aW5nIGV2ZW50cyBhcm91bmQgaXMgc2ltaWxhciB0byB0aGVcbiAgICAgIC8vIGFsZ29yaXRobSB3aGVuIGRlYWxpbmcgd2l0aCBsYXp5IGxpbmVzIGluIGB3cml0ZVRvQ2hpbGRgLlxuICAgICAgY29uc3QgaW5kZXhCZWZvcmVFeGl0cyA9IHNlbGYuZXZlbnRzLmxlbmd0aFxuICAgICAgbGV0IGluZGV4QmVmb3JlRmxvdyA9IGluZGV4QmVmb3JlRXhpdHNcbiAgICAgIC8qKiBAdHlwZSB7UG9pbnQgfCB1bmRlZmluZWR9ICovXG4gICAgICBsZXQgcG9pbnRcblxuICAgICAgLy8gRmluZCB0aGUgZmxvdyBjaHVuay5cbiAgICAgIHdoaWxlIChpbmRleEJlZm9yZUZsb3ctLSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZi5ldmVudHNbaW5kZXhCZWZvcmVGbG93XVswXSA9PT0gJ2V4aXQnICYmXG4gICAgICAgICAgc2VsZi5ldmVudHNbaW5kZXhCZWZvcmVGbG93XVsxXS50eXBlID09PSAnY2h1bmtGbG93J1xuICAgICAgICApIHtcbiAgICAgICAgICBwb2ludCA9IHNlbGYuZXZlbnRzW2luZGV4QmVmb3JlRmxvd11bMV0uZW5kXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZXhpdENvbnRhaW5lcnMoY29udGludWVkKVxuXG4gICAgICAvLyBGaXggcG9zaXRpb25zLlxuICAgICAgbGV0IGluZGV4ID0gaW5kZXhCZWZvcmVFeGl0c1xuICAgICAgd2hpbGUgKGluZGV4IDwgc2VsZi5ldmVudHMubGVuZ3RoKSB7XG4gICAgICAgIHNlbGYuZXZlbnRzW2luZGV4XVsxXS5lbmQgPSBPYmplY3QuYXNzaWduKHt9LCBwb2ludClcbiAgICAgICAgaW5kZXgrK1xuICAgICAgfVxuXG4gICAgICAvLyBJbmplY3QgdGhlIGV4aXRzIGVhcmxpZXIgKHRoZXnigJlyZSBzdGlsbCBhbHNvIGF0IHRoZSBlbmQpLlxuICAgICAgc3BsaWNlKFxuICAgICAgICBzZWxmLmV2ZW50cyxcbiAgICAgICAgaW5kZXhCZWZvcmVGbG93ICsgMSxcbiAgICAgICAgMCxcbiAgICAgICAgc2VsZi5ldmVudHMuc2xpY2UoaW5kZXhCZWZvcmVFeGl0cylcbiAgICAgIClcblxuICAgICAgLy8gRGlzY2FyZCB0aGUgZHVwbGljYXRlIGV4aXRzLlxuICAgICAgc2VsZi5ldmVudHMubGVuZ3RoID0gaW5kZXhcbiAgICAgIHJldHVybiBjaGVja05ld0NvbnRhaW5lcnMoY29kZSlcbiAgICB9XG4gICAgcmV0dXJuIHN0YXJ0KGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBjaGVja05ld0NvbnRhaW5lcnMoY29kZSkge1xuICAgIC8vIE5leHQsIGFmdGVyIGNvbnN1bWluZyB0aGUgY29udGludWF0aW9uIG1hcmtlcnMgZm9yIGV4aXN0aW5nIGJsb2Nrcywgd2VcbiAgICAvLyBsb29rIGZvciBuZXcgYmxvY2sgc3RhcnRzIChlLmcuIGA+YCBmb3IgYSBibG9jayBxdW90ZSkuXG4gICAgLy8gSWYgd2UgZW5jb3VudGVyIGEgbmV3IGJsb2NrIHN0YXJ0LCB3ZSBjbG9zZSBhbnkgYmxvY2tzIHVubWF0Y2hlZCBpblxuICAgIC8vIHN0ZXAgMSBiZWZvcmUgY3JlYXRpbmcgdGhlIG5ldyBibG9jayBhcyBhIGNoaWxkIG9mIHRoZSBsYXN0IG1hdGNoZWRcbiAgICAvLyBibG9jay5cbiAgICBpZiAoY29udGludWVkID09PSBzdGFjay5sZW5ndGgpIHtcbiAgICAgIC8vIE5vIG5lZWQgdG8gYGNoZWNrYCB3aGV0aGVyIHRoZXJl4oCZcyBhIGNvbnRhaW5lciwgb2YgYGV4aXRDb250YWluZXJzYFxuICAgICAgLy8gd291bGQgYmUgbW9vdC5cbiAgICAgIC8vIFdlIGNhbiBpbnN0ZWFkIGltbWVkaWF0ZWx5IGBhdHRlbXB0YCB0byBwYXJzZSBvbmUuXG4gICAgICBpZiAoIWNoaWxkRmxvdykge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnRDb250aW51ZWQoY29kZSlcbiAgICAgIH1cblxuICAgICAgLy8gSWYgd2UgaGF2ZSBjb25jcmV0ZSBjb250ZW50LCBzdWNoIGFzIGJsb2NrIEhUTUwgb3IgZmVuY2VkIGNvZGUsXG4gICAgICAvLyB3ZSBjYW7igJl0IGhhdmUgY29udGFpbmVycyDigJxwaWVyY2XigJ0gaW50byB0aGVtLCBzbyB3ZSBjYW4gaW1tZWRpYXRlbHlcbiAgICAgIC8vIHN0YXJ0LlxuICAgICAgaWYgKGNoaWxkRmxvdy5jdXJyZW50Q29uc3RydWN0ICYmIGNoaWxkRmxvdy5jdXJyZW50Q29uc3RydWN0LmNvbmNyZXRlKSB7XG4gICAgICAgIHJldHVybiBmbG93U3RhcnQoY29kZSlcbiAgICAgIH1cblxuICAgICAgLy8gSWYgd2UgZG8gaGF2ZSBmbG93LCBpdCBjb3VsZCBzdGlsbCBiZSBhIGJsYW5rIGxpbmUsXG4gICAgICAvLyBidXQgd2XigJlkIGJlIGludGVycnVwdGluZyBpdCB3LyBhIG5ldyBjb250YWluZXIgaWYgdGhlcmXigJlzIGEgY3VycmVudFxuICAgICAgLy8gY29uc3RydWN0LlxuICAgICAgLy8gVG8gZG86IG5leHQgbWFqb3I6IHJlbW92ZSBgX2dmbVRhYmxlRHluYW1pY0ludGVycnVwdEhhY2tgIChubyBsb25nZXJcbiAgICAgIC8vIG5lZWRlZCBpbiBtaWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YWJsZUAxLjAuNikuXG4gICAgICBzZWxmLmludGVycnVwdCA9IEJvb2xlYW4oXG4gICAgICAgIGNoaWxkRmxvdy5jdXJyZW50Q29uc3RydWN0ICYmICFjaGlsZEZsb3cuX2dmbVRhYmxlRHluYW1pY0ludGVycnVwdEhhY2tcbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGVyZSBpcyBhIG5ldyBjb250YWluZXIuXG4gICAgc2VsZi5jb250YWluZXJTdGF0ZSA9IHt9XG4gICAgcmV0dXJuIGVmZmVjdHMuY2hlY2soXG4gICAgICBjb250YWluZXJDb25zdHJ1Y3QsXG4gICAgICB0aGVyZUlzQU5ld0NvbnRhaW5lcixcbiAgICAgIHRoZXJlSXNOb05ld0NvbnRhaW5lclxuICAgICkoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHRoZXJlSXNBTmV3Q29udGFpbmVyKGNvZGUpIHtcbiAgICBpZiAoY2hpbGRGbG93KSBjbG9zZUZsb3coKVxuICAgIGV4aXRDb250YWluZXJzKGNvbnRpbnVlZClcbiAgICByZXR1cm4gZG9jdW1lbnRDb250aW51ZWQoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHRoZXJlSXNOb05ld0NvbnRhaW5lcihjb2RlKSB7XG4gICAgc2VsZi5wYXJzZXIubGF6eVtzZWxmLm5vdygpLmxpbmVdID0gY29udGludWVkICE9PSBzdGFjay5sZW5ndGhcbiAgICBsaW5lU3RhcnRPZmZzZXQgPSBzZWxmLm5vdygpLm9mZnNldFxuICAgIHJldHVybiBmbG93U3RhcnQoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGRvY3VtZW50Q29udGludWVkKGNvZGUpIHtcbiAgICAvLyBUcnkgbmV3IGNvbnRhaW5lcnMuXG4gICAgc2VsZi5jb250YWluZXJTdGF0ZSA9IHt9XG4gICAgcmV0dXJuIGVmZmVjdHMuYXR0ZW1wdChcbiAgICAgIGNvbnRhaW5lckNvbnN0cnVjdCxcbiAgICAgIGNvbnRhaW5lckNvbnRpbnVlLFxuICAgICAgZmxvd1N0YXJ0XG4gICAgKShjb2RlKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gY29udGFpbmVyQ29udGludWUoY29kZSkge1xuICAgIGNvbnRpbnVlZCsrXG4gICAgc3RhY2sucHVzaChbc2VsZi5jdXJyZW50Q29uc3RydWN0LCBzZWxmLmNvbnRhaW5lclN0YXRlXSlcbiAgICAvLyBUcnkgYW5vdGhlci5cbiAgICByZXR1cm4gZG9jdW1lbnRDb250aW51ZWQoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGZsb3dTdGFydChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIGlmIChjaGlsZEZsb3cpIGNsb3NlRmxvdygpXG4gICAgICBleGl0Q29udGFpbmVycygwKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2hpbGRGbG93ID0gY2hpbGRGbG93IHx8IHNlbGYucGFyc2VyLmZsb3coc2VsZi5ub3coKSlcbiAgICBlZmZlY3RzLmVudGVyKCdjaHVua0Zsb3cnLCB7XG4gICAgICBjb250ZW50VHlwZTogJ2Zsb3cnLFxuICAgICAgcHJldmlvdXM6IGNoaWxkVG9rZW4sXG4gICAgICBfdG9rZW5pemVyOiBjaGlsZEZsb3dcbiAgICB9KVxuICAgIHJldHVybiBmbG93Q29udGludWUoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGZsb3dDb250aW51ZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIHdyaXRlVG9DaGlsZChlZmZlY3RzLmV4aXQoJ2NodW5rRmxvdycpLCB0cnVlKVxuICAgICAgZXhpdENvbnRhaW5lcnMoMClcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgd3JpdGVUb0NoaWxkKGVmZmVjdHMuZXhpdCgnY2h1bmtGbG93JykpXG4gICAgICAvLyBHZXQgcmVhZHkgZm9yIHRoZSBuZXh0IGxpbmUuXG4gICAgICBjb250aW51ZWQgPSAwXG4gICAgICBzZWxmLmludGVycnVwdCA9IHVuZGVmaW5lZFxuICAgICAgcmV0dXJuIHN0YXJ0XG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBmbG93Q29udGludWVcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1Rva2VufSB0b2tlblxuICAgKiBAcGFyYW0ge2Jvb2xlYW4gfCB1bmRlZmluZWR9IFtlb2ZdXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZnVuY3Rpb24gd3JpdGVUb0NoaWxkKHRva2VuLCBlb2YpIHtcbiAgICBjb25zdCBzdHJlYW0gPSBzZWxmLnNsaWNlU3RyZWFtKHRva2VuKVxuICAgIGlmIChlb2YpIHN0cmVhbS5wdXNoKG51bGwpXG4gICAgdG9rZW4ucHJldmlvdXMgPSBjaGlsZFRva2VuXG4gICAgaWYgKGNoaWxkVG9rZW4pIGNoaWxkVG9rZW4ubmV4dCA9IHRva2VuXG4gICAgY2hpbGRUb2tlbiA9IHRva2VuXG4gICAgY2hpbGRGbG93LmRlZmluZVNraXAodG9rZW4uc3RhcnQpXG4gICAgY2hpbGRGbG93LndyaXRlKHN0cmVhbSlcblxuICAgIC8vIEFscmlnaHQsIHNvIHdlIGp1c3QgYWRkZWQgYSBsYXp5IGxpbmU6XG4gICAgLy9cbiAgICAvLyBgYGBtYXJrZG93blxuICAgIC8vID4gYVxuICAgIC8vIGIuXG4gICAgLy9cbiAgICAvLyBPcjpcbiAgICAvL1xuICAgIC8vID4gfn5+Y1xuICAgIC8vIGRcbiAgICAvL1xuICAgIC8vIE9yOlxuICAgIC8vXG4gICAgLy8gPiB8IGUgfFxuICAgIC8vIGZcbiAgICAvLyBgYGBcbiAgICAvL1xuICAgIC8vIFRoZSBjb25zdHJ1Y3QgaW4gdGhlIHNlY29uZCBleGFtcGxlIChmZW5jZWQgY29kZSkgZG9lcyBub3QgYWNjZXB0IGxhenlcbiAgICAvLyBsaW5lcywgc28gaXQgbWFya2VkIGl0c2VsZiBhcyBkb25lIGF0IHRoZSBlbmQgb2YgaXRzIGZpcnN0IGxpbmUsIGFuZFxuICAgIC8vIHRoZW4gdGhlIGNvbnRlbnQgY29uc3RydWN0IHBhcnNlcyBgZGAuXG4gICAgLy8gTW9zdCBjb25zdHJ1Y3RzIGluIG1hcmtkb3duIG1hdGNoIG9uIHRoZSBmaXJzdCBsaW5lOiBpZiB0aGUgZmlyc3QgbGluZVxuICAgIC8vIGZvcm1zIGEgY29uc3RydWN0LCBhIG5vbi1sYXp5IGxpbmUgY2Fu4oCZdCDigJx1bm1ha2XigJ0gaXQuXG4gICAgLy9cbiAgICAvLyBUaGUgY29uc3RydWN0IGluIHRoZSB0aGlyZCBleGFtcGxlIGlzIHBvdGVudGlhbGx5IGEgR0ZNIHRhYmxlLCBhbmRcbiAgICAvLyB0aG9zZSBhcmUgKndlaXJkKi5cbiAgICAvLyBJdCAqY291bGQqIGJlIGEgdGFibGUsIGZyb20gdGhlIGZpcnN0IGxpbmUsIGlmIHRoZSBmb2xsb3dpbmcgbGluZVxuICAgIC8vIG1hdGNoZXMgYSBjb25kaXRpb24uXG4gICAgLy8gSW4gdGhpcyBjYXNlLCB0aGF0IHNlY29uZCBsaW5lIGlzIGxhenksIHdoaWNoIOKAnHVubWFrZXPigJ0gdGhlIGZpcnN0IGxpbmVcbiAgICAvLyBhbmQgdHVybnMgdGhlIHdob2xlIGludG8gb25lIGNvbnRlbnQgYmxvY2suXG4gICAgLy9cbiAgICAvLyBXZeKAmXZlIG5vdyBwYXJzZWQgdGhlIG5vbi1sYXp5IGFuZCB0aGUgbGF6eSBsaW5lLCBhbmQgY2FuIGZpZ3VyZSBvdXRcbiAgICAvLyB3aGV0aGVyIHRoZSBsYXp5IGxpbmUgc3RhcnRlZCBhIG5ldyBmbG93IGJsb2NrLlxuICAgIC8vIElmIGl0IGRpZCwgd2UgZXhpdCB0aGUgY3VycmVudCBjb250YWluZXJzIGJldHdlZW4gdGhlIHR3byBmbG93IGJsb2Nrcy5cbiAgICBpZiAoc2VsZi5wYXJzZXIubGF6eVt0b2tlbi5zdGFydC5saW5lXSkge1xuICAgICAgbGV0IGluZGV4ID0gY2hpbGRGbG93LmV2ZW50cy5sZW5ndGhcbiAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAvLyBUaGUgdG9rZW4gc3RhcnRzIGJlZm9yZSB0aGUgbGluZSBlbmRpbmfigKZcbiAgICAgICAgICBjaGlsZEZsb3cuZXZlbnRzW2luZGV4XVsxXS5zdGFydC5vZmZzZXQgPCBsaW5lU3RhcnRPZmZzZXQgJiZcbiAgICAgICAgICAvLyDigKZhbmQgZWl0aGVyIGlzIG5vdCBlbmRlZCB5ZXTigKZcbiAgICAgICAgICAoIWNoaWxkRmxvdy5ldmVudHNbaW5kZXhdWzFdLmVuZCB8fFxuICAgICAgICAgICAgLy8g4oCmb3IgZW5kcyBhZnRlciBpdC5cbiAgICAgICAgICAgIGNoaWxkRmxvdy5ldmVudHNbaW5kZXhdWzFdLmVuZC5vZmZzZXQgPiBsaW5lU3RhcnRPZmZzZXQpXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIEV4aXQ6IHRoZXJl4oCZcyBzdGlsbCBzb21ldGhpbmcgb3Blbiwgd2hpY2ggbWVhbnMgaXTigJlzIGEgbGF6eSBsaW5lXG4gICAgICAgICAgLy8gcGFydCBvZiBzb21ldGhpbmcuXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gTm90ZTogdGhpcyBhbGdvcml0aG0gZm9yIG1vdmluZyBldmVudHMgYXJvdW5kIGlzIHNpbWlsYXIgdG8gdGhlXG4gICAgICAvLyBhbGdvcml0aG0gd2hlbiBjbG9zaW5nIGZsb3cgaW4gYGRvY3VtZW50Q29udGludWVgLlxuICAgICAgY29uc3QgaW5kZXhCZWZvcmVFeGl0cyA9IHNlbGYuZXZlbnRzLmxlbmd0aFxuICAgICAgbGV0IGluZGV4QmVmb3JlRmxvdyA9IGluZGV4QmVmb3JlRXhpdHNcbiAgICAgIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgICAgIGxldCBzZWVuXG4gICAgICAvKiogQHR5cGUge1BvaW50IHwgdW5kZWZpbmVkfSAqL1xuICAgICAgbGV0IHBvaW50XG5cbiAgICAgIC8vIEZpbmQgdGhlIHByZXZpb3VzIGNodW5rICh0aGUgb25lIGJlZm9yZSB0aGUgbGF6eSBsaW5lKS5cbiAgICAgIHdoaWxlIChpbmRleEJlZm9yZUZsb3ctLSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZi5ldmVudHNbaW5kZXhCZWZvcmVGbG93XVswXSA9PT0gJ2V4aXQnICYmXG4gICAgICAgICAgc2VsZi5ldmVudHNbaW5kZXhCZWZvcmVGbG93XVsxXS50eXBlID09PSAnY2h1bmtGbG93J1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoc2Vlbikge1xuICAgICAgICAgICAgcG9pbnQgPSBzZWxmLmV2ZW50c1tpbmRleEJlZm9yZUZsb3ddWzFdLmVuZFxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2VlbiA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZXhpdENvbnRhaW5lcnMoY29udGludWVkKVxuXG4gICAgICAvLyBGaXggcG9zaXRpb25zLlxuICAgICAgaW5kZXggPSBpbmRleEJlZm9yZUV4aXRzXG4gICAgICB3aGlsZSAoaW5kZXggPCBzZWxmLmV2ZW50cy5sZW5ndGgpIHtcbiAgICAgICAgc2VsZi5ldmVudHNbaW5kZXhdWzFdLmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIHBvaW50KVxuICAgICAgICBpbmRleCsrXG4gICAgICB9XG5cbiAgICAgIC8vIEluamVjdCB0aGUgZXhpdHMgZWFybGllciAodGhleeKAmXJlIHN0aWxsIGFsc28gYXQgdGhlIGVuZCkuXG4gICAgICBzcGxpY2UoXG4gICAgICAgIHNlbGYuZXZlbnRzLFxuICAgICAgICBpbmRleEJlZm9yZUZsb3cgKyAxLFxuICAgICAgICAwLFxuICAgICAgICBzZWxmLmV2ZW50cy5zbGljZShpbmRleEJlZm9yZUV4aXRzKVxuICAgICAgKVxuXG4gICAgICAvLyBEaXNjYXJkIHRoZSBkdXBsaWNhdGUgZXhpdHMuXG4gICAgICBzZWxmLmV2ZW50cy5sZW5ndGggPSBpbmRleFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge251bWJlcn0gc2l6ZVxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGZ1bmN0aW9uIGV4aXRDb250YWluZXJzKHNpemUpIHtcbiAgICBsZXQgaW5kZXggPSBzdGFjay5sZW5ndGhcblxuICAgIC8vIEV4aXQgb3BlbiBjb250YWluZXJzLlxuICAgIHdoaWxlIChpbmRleC0tID4gc2l6ZSkge1xuICAgICAgY29uc3QgZW50cnkgPSBzdGFja1tpbmRleF1cbiAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUgPSBlbnRyeVsxXVxuICAgICAgZW50cnlbMF0uZXhpdC5jYWxsKHNlbGYsIGVmZmVjdHMpXG4gICAgfVxuICAgIHN0YWNrLmxlbmd0aCA9IHNpemVcbiAgfVxuICBmdW5jdGlvbiBjbG9zZUZsb3coKSB7XG4gICAgY2hpbGRGbG93LndyaXRlKFtudWxsXSlcbiAgICBjaGlsZFRva2VuID0gdW5kZWZpbmVkXG4gICAgY2hpbGRGbG93ID0gdW5kZWZpbmVkXG4gICAgc2VsZi5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93ID0gdW5kZWZpbmVkXG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVDb250YWluZXIoZWZmZWN0cywgb2ssIG5vaykge1xuICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuXG4gIHJldHVybiBmYWN0b3J5U3BhY2UoXG4gICAgZWZmZWN0cyxcbiAgICBlZmZlY3RzLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5kb2N1bWVudCwgb2ssIG5vayksXG4gICAgJ2xpbmVQcmVmaXgnLFxuICAgIHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCdjb2RlSW5kZW50ZWQnKSA/IHVuZGVmaW5lZCA6IDRcbiAgKVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICovXG5cbmltcG9ydCB7XG4gIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UsXG4gIHVuaWNvZGVQdW5jdHVhdGlvbixcbiAgdW5pY29kZVdoaXRlc3BhY2Vcbn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuLyoqXG4gKiBDbGFzc2lmeSB3aGV0aGVyIGEgY29kZSByZXByZXNlbnRzIHdoaXRlc3BhY2UsIHB1bmN0dWF0aW9uLCBvciBzb21ldGhpbmdcbiAqIGVsc2UuXG4gKlxuICogVXNlZCBmb3IgYXR0ZW50aW9uIChlbXBoYXNpcywgc3Ryb25nKSwgd2hvc2Ugc2VxdWVuY2VzIGNhbiBvcGVuIG9yIGNsb3NlXG4gKiBiYXNlZCBvbiB0aGUgY2xhc3Mgb2Ygc3Vycm91bmRpbmcgY2hhcmFjdGVycy5cbiAqXG4gKiA+IPCfkYkgKipOb3RlKio6IGVvZiAoYG51bGxgKSBpcyBzZWVuIGFzIHdoaXRlc3BhY2UuXG4gKlxuICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7dHlwZW9mIGNvbnN0YW50cy5jaGFyYWN0ZXJHcm91cFdoaXRlc3BhY2UgfCB0eXBlb2YgY29uc3RhbnRzLmNoYXJhY3Rlckdyb3VwUHVuY3R1YXRpb24gfCB1bmRlZmluZWR9XG4gKiAgIEdyb3VwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NpZnlDaGFyYWN0ZXIoY29kZSkge1xuICBpZiAoXG4gICAgY29kZSA9PT0gbnVsbCB8fFxuICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkgfHxcbiAgICB1bmljb2RlV2hpdGVzcGFjZShjb2RlKVxuICApIHtcbiAgICByZXR1cm4gMVxuICB9XG4gIGlmICh1bmljb2RlUHVuY3R1YXRpb24oY29kZSkpIHtcbiAgICByZXR1cm4gMlxuICB9XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FdmVudH0gRXZlbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUmVzb2x2ZXJ9IFJlc29sdmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKi9cblxuLyoqXG4gKiBDYWxsIGFsbCBgcmVzb2x2ZUFsbGBzLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8e3Jlc29sdmVBbGw/OiBSZXNvbHZlciB8IHVuZGVmaW5lZH0+fSBjb25zdHJ1Y3RzXG4gKiAgIExpc3Qgb2YgY29uc3RydWN0cywgb3B0aW9uYWxseSB3aXRoIGByZXNvbHZlQWxsYHMuXG4gKiBAcGFyYW0ge0FycmF5PEV2ZW50Pn0gZXZlbnRzXG4gKiAgIExpc3Qgb2YgZXZlbnRzLlxuICogQHBhcmFtIHtUb2tlbml6ZUNvbnRleHR9IGNvbnRleHRcbiAqICAgQ29udGV4dCB1c2VkIGJ5IGB0b2tlbml6ZWAuXG4gKiBAcmV0dXJucyB7QXJyYXk8RXZlbnQ+fVxuICogICBDaGFuZ2VkIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBbGwoY29uc3RydWN0cywgZXZlbnRzLCBjb250ZXh0KSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8UmVzb2x2ZXI+fSAqL1xuICBjb25zdCBjYWxsZWQgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgY29uc3RydWN0cy5sZW5ndGgpIHtcbiAgICBjb25zdCByZXNvbHZlID0gY29uc3RydWN0c1tpbmRleF0ucmVzb2x2ZUFsbFxuXG4gICAgaWYgKHJlc29sdmUgJiYgIWNhbGxlZC5pbmNsdWRlcyhyZXNvbHZlKSkge1xuICAgICAgZXZlbnRzID0gcmVzb2x2ZShldmVudHMsIGNvbnRleHQpXG4gICAgICBjYWxsZWQucHVzaChyZXNvbHZlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBldmVudHNcbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXZlbnR9IEV2ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7cHVzaCwgc3BsaWNlfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaHVua2VkJ1xuaW1wb3J0IHtjbGFzc2lmeUNoYXJhY3Rlcn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2xhc3NpZnktY2hhcmFjdGVyJ1xuaW1wb3J0IHtyZXNvbHZlQWxsfSBmcm9tICdtaWNyb21hcmstdXRpbC1yZXNvbHZlLWFsbCdcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGF0dGVudGlvbiA9IHtcbiAgbmFtZTogJ2F0dGVudGlvbicsXG4gIHRva2VuaXplOiB0b2tlbml6ZUF0dGVudGlvbixcbiAgcmVzb2x2ZUFsbDogcmVzb2x2ZUFsbEF0dGVudGlvblxufVxuXG4vKipcbiAqIFRha2UgYWxsIGV2ZW50cyBhbmQgcmVzb2x2ZSBhdHRlbnRpb24gdG8gZW1waGFzaXMgb3Igc3Ryb25nLlxuICpcbiAqIEB0eXBlIHtSZXNvbHZlcn1cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUFsbEF0dGVudGlvbihldmVudHMsIGNvbnRleHQpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBvcGVuXG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGxldCBncm91cFxuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBsZXQgdGV4dFxuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBsZXQgb3BlbmluZ1NlcXVlbmNlXG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGxldCBjbG9zaW5nU2VxdWVuY2VcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCB1c2VcbiAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gIGxldCBuZXh0RXZlbnRzXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgb2Zmc2V0XG5cbiAgLy8gV2FsayB0aHJvdWdoIGFsbCBldmVudHMuXG4gIC8vXG4gIC8vIE5vdGU6IHBlcmZvcm1hbmNlIG9mIHRoaXMgaXMgZmluZSBvbiBhbiBtYiBvZiBub3JtYWwgbWFya2Rvd24sIGJ1dCBpdOKAmXNcbiAgLy8gYSBib3R0bGVuZWNrIGZvciBtYWxpY2lvdXMgc3R1ZmYuXG4gIHdoaWxlICgrK2luZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuICAgIC8vIEZpbmQgYSB0b2tlbiB0aGF0IGNhbiBjbG9zZS5cbiAgICBpZiAoXG4gICAgICBldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInICYmXG4gICAgICBldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdhdHRlbnRpb25TZXF1ZW5jZScgJiZcbiAgICAgIGV2ZW50c1tpbmRleF1bMV0uX2Nsb3NlXG4gICAgKSB7XG4gICAgICBvcGVuID0gaW5kZXhcblxuICAgICAgLy8gTm93IHdhbGsgYmFjayB0byBmaW5kIGFuIG9wZW5lci5cbiAgICAgIHdoaWxlIChvcGVuLS0pIHtcbiAgICAgICAgLy8gRmluZCBhIHRva2VuIHRoYXQgY2FuIG9wZW4gdGhlIGNsb3Nlci5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50c1tvcGVuXVswXSA9PT0gJ2V4aXQnICYmXG4gICAgICAgICAgZXZlbnRzW29wZW5dWzFdLnR5cGUgPT09ICdhdHRlbnRpb25TZXF1ZW5jZScgJiZcbiAgICAgICAgICBldmVudHNbb3Blbl1bMV0uX29wZW4gJiZcbiAgICAgICAgICAvLyBJZiB0aGUgbWFya2VycyBhcmUgdGhlIHNhbWU6XG4gICAgICAgICAgY29udGV4dC5zbGljZVNlcmlhbGl6ZShldmVudHNbb3Blbl1bMV0pLmNoYXJDb2RlQXQoMCkgPT09XG4gICAgICAgICAgICBjb250ZXh0LnNsaWNlU2VyaWFsaXplKGV2ZW50c1tpbmRleF1bMV0pLmNoYXJDb2RlQXQoMClcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIG9wZW5pbmcgY2FuIGNsb3NlIG9yIHRoZSBjbG9zaW5nIGNhbiBvcGVuLFxuICAgICAgICAgIC8vIGFuZCB0aGUgY2xvc2Ugc2l6ZSAqaXMgbm90KiBhIG11bHRpcGxlIG9mIHRocmVlLFxuICAgICAgICAgIC8vIGJ1dCB0aGUgc3VtIG9mIHRoZSBvcGVuaW5nIGFuZCBjbG9zaW5nIHNpemUgKmlzKiBtdWx0aXBsZSBvZiB0aHJlZSxcbiAgICAgICAgICAvLyB0aGVuIGRvbuKAmXQgbWF0Y2guXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGV2ZW50c1tvcGVuXVsxXS5fY2xvc2UgfHwgZXZlbnRzW2luZGV4XVsxXS5fb3BlbikgJiZcbiAgICAgICAgICAgIChldmVudHNbaW5kZXhdWzFdLmVuZC5vZmZzZXQgLSBldmVudHNbaW5kZXhdWzFdLnN0YXJ0Lm9mZnNldCkgJSAzICYmXG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAoZXZlbnRzW29wZW5dWzFdLmVuZC5vZmZzZXQgLVxuICAgICAgICAgICAgICAgIGV2ZW50c1tvcGVuXVsxXS5zdGFydC5vZmZzZXQgK1xuICAgICAgICAgICAgICAgIGV2ZW50c1tpbmRleF1bMV0uZW5kLm9mZnNldCAtXG4gICAgICAgICAgICAgICAgZXZlbnRzW2luZGV4XVsxXS5zdGFydC5vZmZzZXQpICVcbiAgICAgICAgICAgICAgM1xuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBOdW1iZXIgb2YgbWFya2VycyB0byB1c2UgZnJvbSB0aGUgc2VxdWVuY2UuXG4gICAgICAgICAgdXNlID1cbiAgICAgICAgICAgIGV2ZW50c1tvcGVuXVsxXS5lbmQub2Zmc2V0IC0gZXZlbnRzW29wZW5dWzFdLnN0YXJ0Lm9mZnNldCA+IDEgJiZcbiAgICAgICAgICAgIGV2ZW50c1tpbmRleF1bMV0uZW5kLm9mZnNldCAtIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQub2Zmc2V0ID4gMVxuICAgICAgICAgICAgICA/IDJcbiAgICAgICAgICAgICAgOiAxXG4gICAgICAgICAgY29uc3Qgc3RhcnQgPSBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbb3Blbl1bMV0uZW5kKVxuICAgICAgICAgIGNvbnN0IGVuZCA9IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQpXG4gICAgICAgICAgbW92ZVBvaW50KHN0YXJ0LCAtdXNlKVxuICAgICAgICAgIG1vdmVQb2ludChlbmQsIHVzZSlcbiAgICAgICAgICBvcGVuaW5nU2VxdWVuY2UgPSB7XG4gICAgICAgICAgICB0eXBlOiB1c2UgPiAxID8gJ3N0cm9uZ1NlcXVlbmNlJyA6ICdlbXBoYXNpc1NlcXVlbmNlJyxcbiAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbb3Blbl1bMV0uZW5kKVxuICAgICAgICAgIH1cbiAgICAgICAgICBjbG9zaW5nU2VxdWVuY2UgPSB7XG4gICAgICAgICAgICB0eXBlOiB1c2UgPiAxID8gJ3N0cm9uZ1NlcXVlbmNlJyA6ICdlbXBoYXNpc1NlcXVlbmNlJyxcbiAgICAgICAgICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbaW5kZXhdWzFdLnN0YXJ0KSxcbiAgICAgICAgICAgIGVuZFxuICAgICAgICAgIH1cbiAgICAgICAgICB0ZXh0ID0ge1xuICAgICAgICAgICAgdHlwZTogdXNlID4gMSA/ICdzdHJvbmdUZXh0JyA6ICdlbXBoYXNpc1RleHQnLFxuICAgICAgICAgICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1tvcGVuXVsxXS5lbmQpLFxuICAgICAgICAgICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbaW5kZXhdWzFdLnN0YXJ0KVxuICAgICAgICAgIH1cbiAgICAgICAgICBncm91cCA9IHtcbiAgICAgICAgICAgIHR5cGU6IHVzZSA+IDEgPyAnc3Ryb25nJyA6ICdlbXBoYXNpcycsXG4gICAgICAgICAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgb3BlbmluZ1NlcXVlbmNlLnN0YXJ0KSxcbiAgICAgICAgICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgY2xvc2luZ1NlcXVlbmNlLmVuZClcbiAgICAgICAgICB9XG4gICAgICAgICAgZXZlbnRzW29wZW5dWzFdLmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIG9wZW5pbmdTZXF1ZW5jZS5zdGFydClcbiAgICAgICAgICBldmVudHNbaW5kZXhdWzFdLnN0YXJ0ID0gT2JqZWN0LmFzc2lnbih7fSwgY2xvc2luZ1NlcXVlbmNlLmVuZClcbiAgICAgICAgICBuZXh0RXZlbnRzID0gW11cblxuICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBtb3JlIG1hcmtlcnMgaW4gdGhlIG9wZW5pbmcsIGFkZCB0aGVtIGJlZm9yZS5cbiAgICAgICAgICBpZiAoZXZlbnRzW29wZW5dWzFdLmVuZC5vZmZzZXQgLSBldmVudHNbb3Blbl1bMV0uc3RhcnQub2Zmc2V0KSB7XG4gICAgICAgICAgICBuZXh0RXZlbnRzID0gcHVzaChuZXh0RXZlbnRzLCBbXG4gICAgICAgICAgICAgIFsnZW50ZXInLCBldmVudHNbb3Blbl1bMV0sIGNvbnRleHRdLFxuICAgICAgICAgICAgICBbJ2V4aXQnLCBldmVudHNbb3Blbl1bMV0sIGNvbnRleHRdXG4gICAgICAgICAgICBdKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIE9wZW5pbmcuXG4gICAgICAgICAgbmV4dEV2ZW50cyA9IHB1c2gobmV4dEV2ZW50cywgW1xuICAgICAgICAgICAgWydlbnRlcicsIGdyb3VwLCBjb250ZXh0XSxcbiAgICAgICAgICAgIFsnZW50ZXInLCBvcGVuaW5nU2VxdWVuY2UsIGNvbnRleHRdLFxuICAgICAgICAgICAgWydleGl0Jywgb3BlbmluZ1NlcXVlbmNlLCBjb250ZXh0XSxcbiAgICAgICAgICAgIFsnZW50ZXInLCB0ZXh0LCBjb250ZXh0XVxuICAgICAgICAgIF0pXG5cbiAgICAgICAgICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuXG4gICAgICAgICAgLy8gQmV0d2Vlbi5cbiAgICAgICAgICBuZXh0RXZlbnRzID0gcHVzaChcbiAgICAgICAgICAgIG5leHRFdmVudHMsXG4gICAgICAgICAgICByZXNvbHZlQWxsKFxuICAgICAgICAgICAgICBjb250ZXh0LnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCxcbiAgICAgICAgICAgICAgZXZlbnRzLnNsaWNlKG9wZW4gKyAxLCBpbmRleCksXG4gICAgICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG5cbiAgICAgICAgICAvLyBDbG9zaW5nLlxuICAgICAgICAgIG5leHRFdmVudHMgPSBwdXNoKG5leHRFdmVudHMsIFtcbiAgICAgICAgICAgIFsnZXhpdCcsIHRleHQsIGNvbnRleHRdLFxuICAgICAgICAgICAgWydlbnRlcicsIGNsb3NpbmdTZXF1ZW5jZSwgY29udGV4dF0sXG4gICAgICAgICAgICBbJ2V4aXQnLCBjbG9zaW5nU2VxdWVuY2UsIGNvbnRleHRdLFxuICAgICAgICAgICAgWydleGl0JywgZ3JvdXAsIGNvbnRleHRdXG4gICAgICAgICAgXSlcblxuICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBtb3JlIG1hcmtlcnMgaW4gdGhlIGNsb3NpbmcsIGFkZCB0aGVtIGFmdGVyLlxuICAgICAgICAgIGlmIChldmVudHNbaW5kZXhdWzFdLmVuZC5vZmZzZXQgLSBldmVudHNbaW5kZXhdWzFdLnN0YXJ0Lm9mZnNldCkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gMlxuICAgICAgICAgICAgbmV4dEV2ZW50cyA9IHB1c2gobmV4dEV2ZW50cywgW1xuICAgICAgICAgICAgICBbJ2VudGVyJywgZXZlbnRzW2luZGV4XVsxXSwgY29udGV4dF0sXG4gICAgICAgICAgICAgIFsnZXhpdCcsIGV2ZW50c1tpbmRleF1bMV0sIGNvbnRleHRdXG4gICAgICAgICAgICBdKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvZmZzZXQgPSAwXG4gICAgICAgICAgfVxuICAgICAgICAgIHNwbGljZShldmVudHMsIG9wZW4gLSAxLCBpbmRleCAtIG9wZW4gKyAzLCBuZXh0RXZlbnRzKVxuICAgICAgICAgIGluZGV4ID0gb3BlbiArIG5leHRFdmVudHMubGVuZ3RoIC0gb2Zmc2V0IC0gMlxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgcmVtYWluaW5nIHNlcXVlbmNlcy5cbiAgaW5kZXggPSAtMVxuICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICBpZiAoZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSAnYXR0ZW50aW9uU2VxdWVuY2UnKSB7XG4gICAgICBldmVudHNbaW5kZXhdWzFdLnR5cGUgPSAnZGF0YSdcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGV2ZW50c1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUF0dGVudGlvbihlZmZlY3RzLCBvaykge1xuICBjb25zdCBhdHRlbnRpb25NYXJrZXJzID0gdGhpcy5wYXJzZXIuY29uc3RydWN0cy5hdHRlbnRpb25NYXJrZXJzLm51bGxcbiAgY29uc3QgcHJldmlvdXMgPSB0aGlzLnByZXZpb3VzXG4gIGNvbnN0IGJlZm9yZSA9IGNsYXNzaWZ5Q2hhcmFjdGVyKHByZXZpb3VzKVxuXG4gIC8qKiBAdHlwZSB7Tm9uTnVsbGFibGU8Q29kZT59ICovXG4gIGxldCBtYXJrZXJcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIEJlZm9yZSBhIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKipcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBtYXJrZXIgPSBjb2RlXG4gICAgZWZmZWN0cy5lbnRlcignYXR0ZW50aW9uU2VxdWVuY2UnKVxuICAgIHJldHVybiBpbnNpZGUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBhIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKipcbiAgICogICAgIF5eXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBpbnNpZGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGluc2lkZVxuICAgIH1cbiAgICBjb25zdCB0b2tlbiA9IGVmZmVjdHMuZXhpdCgnYXR0ZW50aW9uU2VxdWVuY2UnKVxuXG4gICAgLy8gVG8gZG86IG5leHQgbWFqb3I6IG1vdmUgdGhpcyB0byByZXNvbHZlciwganVzdCBsaWtlIGBtYXJrZG93bi1yc2AuXG4gICAgY29uc3QgYWZ0ZXIgPSBjbGFzc2lmeUNoYXJhY3Rlcihjb2RlKVxuXG4gICAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cblxuICAgIGNvbnN0IG9wZW4gPVxuICAgICAgIWFmdGVyIHx8IChhZnRlciA9PT0gMiAmJiBiZWZvcmUpIHx8IGF0dGVudGlvbk1hcmtlcnMuaW5jbHVkZXMoY29kZSlcbiAgICBjb25zdCBjbG9zZSA9XG4gICAgICAhYmVmb3JlIHx8IChiZWZvcmUgPT09IDIgJiYgYWZ0ZXIpIHx8IGF0dGVudGlvbk1hcmtlcnMuaW5jbHVkZXMocHJldmlvdXMpXG4gICAgdG9rZW4uX29wZW4gPSBCb29sZWFuKG1hcmtlciA9PT0gNDIgPyBvcGVuIDogb3BlbiAmJiAoYmVmb3JlIHx8ICFjbG9zZSkpXG4gICAgdG9rZW4uX2Nsb3NlID0gQm9vbGVhbihtYXJrZXIgPT09IDQyID8gY2xvc2UgOiBjbG9zZSAmJiAoYWZ0ZXIgfHwgIW9wZW4pKVxuICAgIHJldHVybiBvayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogTW92ZSBhIHBvaW50IGEgYml0LlxuICpcbiAqIE5vdGU6IGBtb3ZlYCBvbmx5IHdvcmtzIGluc2lkZSBsaW5lcyEgSXTigJlzIG5vdCBwb3NzaWJsZSB0byBtb3ZlIHBhc3Qgb3RoZXJcbiAqIGNodW5rcyAocmVwbGFjZW1lbnQgY2hhcmFjdGVycywgdGFicywgb3IgbGluZSBlbmRpbmdzKS5cbiAqXG4gKiBAcGFyYW0ge1BvaW50fSBwb2ludFxuICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldFxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIG1vdmVQb2ludChwb2ludCwgb2Zmc2V0KSB7XG4gIHBvaW50LmNvbHVtbiArPSBvZmZzZXRcbiAgcG9pbnQub2Zmc2V0ICs9IG9mZnNldFxuICBwb2ludC5fYnVmZmVySW5kZXggKz0gb2Zmc2V0XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge1xuICBhc2NpaUFscGhhLFxuICBhc2NpaUFscGhhbnVtZXJpYyxcbiAgYXNjaWlBdGV4dCxcbiAgYXNjaWlDb250cm9sXG59IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcidcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGF1dG9saW5rID0ge1xuICBuYW1lOiAnYXV0b2xpbmsnLFxuICB0b2tlbml6ZTogdG9rZW5pemVBdXRvbGlua1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUF1dG9saW5rKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgbGV0IHNpemUgPSAwXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBhbiBhdXRvbGluay5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGE8aHR0cHM6Ly9leGFtcGxlLmNvbT5iXG4gICAqICAgICAgXlxuICAgKiA+IHwgYTx1c2VyQGV4YW1wbGUuY29tPmJcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignYXV0b2xpbmsnKVxuICAgIGVmZmVjdHMuZW50ZXIoJ2F1dG9saW5rTWFya2VyJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ2F1dG9saW5rTWFya2VyJylcbiAgICBlZmZlY3RzLmVudGVyKCdhdXRvbGlua1Byb3RvY29sJylcbiAgICByZXR1cm4gb3BlblxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8YCwgYXQgcHJvdG9jb2wgb3IgYXRleHQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhPGh0dHBzOi8vZXhhbXBsZS5jb20+YlxuICAgKiAgICAgICBeXG4gICAqID4gfCBhPHVzZXJAZXhhbXBsZS5jb20+YlxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBvcGVuKGNvZGUpIHtcbiAgICBpZiAoYXNjaWlBbHBoYShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gc2NoZW1lT3JFbWFpbEF0ZXh0XG4gICAgfVxuICAgIHJldHVybiBlbWFpbEF0ZXh0KGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQXQgc2Vjb25kIGJ5dGUgb2YgcHJvdG9jb2wgb3IgYXRleHQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhPGh0dHBzOi8vZXhhbXBsZS5jb20+YlxuICAgKiAgICAgICAgXlxuICAgKiA+IHwgYTx1c2VyQGV4YW1wbGUuY29tPmJcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHNjaGVtZU9yRW1haWxBdGV4dChjb2RlKSB7XG4gICAgLy8gQVNDSUkgYWxwaGFudW1lcmljIGFuZCBgK2AsIGAtYCwgYW5kIGAuYC5cbiAgICBpZiAoY29kZSA9PT0gNDMgfHwgY29kZSA9PT0gNDUgfHwgY29kZSA9PT0gNDYgfHwgYXNjaWlBbHBoYW51bWVyaWMoY29kZSkpIHtcbiAgICAgIC8vIENvdW50IHRoZSBwcmV2aW91cyBhbHBoYWJldGljYWwgZnJvbSBgb3BlbmAgdG9vLlxuICAgICAgc2l6ZSA9IDFcbiAgICAgIHJldHVybiBzY2hlbWVJbnNpZGVPckVtYWlsQXRleHQoY29kZSlcbiAgICB9XG4gICAgcmV0dXJuIGVtYWlsQXRleHQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBhbWJpZ3VvdXMgcHJvdG9jb2wgb3IgYXRleHQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhPGh0dHBzOi8vZXhhbXBsZS5jb20+YlxuICAgKiAgICAgICAgXlxuICAgKiA+IHwgYTx1c2VyQGV4YW1wbGUuY29tPmJcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHNjaGVtZUluc2lkZU9yRW1haWxBdGV4dChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDU4KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHNpemUgPSAwXG4gICAgICByZXR1cm4gdXJsSW5zaWRlXG4gICAgfVxuXG4gICAgLy8gQVNDSUkgYWxwaGFudW1lcmljIGFuZCBgK2AsIGAtYCwgYW5kIGAuYC5cbiAgICBpZiAoXG4gICAgICAoY29kZSA9PT0gNDMgfHwgY29kZSA9PT0gNDUgfHwgY29kZSA9PT0gNDYgfHwgYXNjaWlBbHBoYW51bWVyaWMoY29kZSkpICYmXG4gICAgICBzaXplKysgPCAzMlxuICAgICkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gc2NoZW1lSW5zaWRlT3JFbWFpbEF0ZXh0XG4gICAgfVxuICAgIHNpemUgPSAwXG4gICAgcmV0dXJuIGVtYWlsQXRleHQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBwcm90b2NvbCwgaW4gVVJMLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYTxodHRwczovL2V4YW1wbGUuY29tPmJcbiAgICogICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdXJsSW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjIpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCgnYXV0b2xpbmtQcm90b2NvbCcpXG4gICAgICBlZmZlY3RzLmVudGVyKCdhdXRvbGlua01hcmtlcicpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnYXV0b2xpbmtNYXJrZXInKVxuICAgICAgZWZmZWN0cy5leGl0KCdhdXRvbGluaycpXG4gICAgICByZXR1cm4gb2tcbiAgICB9XG5cbiAgICAvLyBBU0NJSSBjb250cm9sLCBzcGFjZSwgb3IgYDxgLlxuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDMyIHx8IGNvZGUgPT09IDYwIHx8IGFzY2lpQ29udHJvbChjb2RlKSkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gdXJsSW5zaWRlXG4gIH1cblxuICAvKipcbiAgICogSW4gZW1haWwgYXRleHQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhPHVzZXIubmFtZUBleGFtcGxlLmNvbT5iXG4gICAqICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBlbWFpbEF0ZXh0KGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjQpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGVtYWlsQXRTaWduT3JEb3RcbiAgICB9XG4gICAgaWYgKGFzY2lpQXRleHQoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGVtYWlsQXRleHRcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCBhZnRlciBhdC1zaWduIG9yIGRvdC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGE8dXNlci5uYW1lQGV4YW1wbGUuY29tPmJcbiAgICogICAgICAgICAgICAgICAgIF4gICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW1haWxBdFNpZ25PckRvdChjb2RlKSB7XG4gICAgcmV0dXJuIGFzY2lpQWxwaGFudW1lcmljKGNvZGUpID8gZW1haWxMYWJlbChjb2RlKSA6IG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCB3aGVyZSBgLmAgYW5kIGA+YCBhcmUgYWxsb3dlZC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGE8dXNlci5uYW1lQGV4YW1wbGUuY29tPmJcbiAgICogICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW1haWxMYWJlbChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ2KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHNpemUgPSAwXG4gICAgICByZXR1cm4gZW1haWxBdFNpZ25PckRvdFxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNjIpIHtcbiAgICAgIC8vIEV4aXQsIHRoZW4gY2hhbmdlIHRoZSB0b2tlbiB0eXBlLlxuICAgICAgZWZmZWN0cy5leGl0KCdhdXRvbGlua1Byb3RvY29sJykudHlwZSA9ICdhdXRvbGlua0VtYWlsJ1xuICAgICAgZWZmZWN0cy5lbnRlcignYXV0b2xpbmtNYXJrZXInKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2F1dG9saW5rTWFya2VyJylcbiAgICAgIGVmZmVjdHMuZXhpdCgnYXV0b2xpbmsnKVxuICAgICAgcmV0dXJuIG9rXG4gICAgfVxuICAgIHJldHVybiBlbWFpbFZhbHVlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gbGFiZWwsIHdoZXJlIGAuYCBhbmQgYD5gIGFyZSAqbm90KiBhbGxvd2VkLlxuICAgKlxuICAgKiBUaG91Z2gsIHRoaXMgaXMgYWxzbyB1c2VkIGluIGBlbWFpbExhYmVsYCB0byBwYXJzZSBvdGhlciB2YWx1ZXMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhPHVzZXIubmFtZUBleC1hbXBsZS5jb20+YlxuICAgKiAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW1haWxWYWx1ZShjb2RlKSB7XG4gICAgLy8gQVNDSUkgYWxwaGFudW1lcmljIG9yIGAtYC5cbiAgICBpZiAoKGNvZGUgPT09IDQ1IHx8IGFzY2lpQWxwaGFudW1lcmljKGNvZGUpKSAmJiBzaXplKysgPCA2Mykge1xuICAgICAgY29uc3QgbmV4dCA9IGNvZGUgPT09IDQ1ID8gZW1haWxWYWx1ZSA6IGVtYWlsTGFiZWxcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIG5leHRcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2ZhY3RvcnlTcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZywgbWFya2Rvd25TcGFjZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgYmxhbmtMaW5lID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVCbGFua0xpbmUsXG4gIHBhcnRpYWw6IHRydWVcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVCbGFua0xpbmUoZWZmZWN0cywgb2ssIG5vaykge1xuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgYmxhbmsgbGluZS5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiBg4pCgYCByZXByZXNlbnRzIGEgc3BhY2UgY2hhcmFjdGVyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwg4pCg4pCg4pCKXG4gICAqICAgICBeXG4gICAqID4gfCDikIpcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICByZXR1cm4gbWFya2Rvd25TcGFjZShjb2RlKVxuICAgICAgPyBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYWZ0ZXIsICdsaW5lUHJlZml4JykoY29kZSlcbiAgICAgIDogYWZ0ZXIoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBlb2YvZW9sLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiA+IPCfkYkgKipOb3RlKio6IGDikKBgIHJlcHJlc2VudHMgYSBzcGFjZSBjaGFyYWN0ZXIuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCDikKDikKDikIpcbiAgICogICAgICAgXlxuICAgKiA+IHwg4pCKXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgcmV0dXJuIGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpID8gb2soY29kZSkgOiBub2soY29kZSlcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXhpdGVyfSBFeGl0ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93blNwYWNlfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBibG9ja1F1b3RlID0ge1xuICBuYW1lOiAnYmxvY2tRdW90ZScsXG4gIHRva2VuaXplOiB0b2tlbml6ZUJsb2NrUXVvdGVTdGFydCxcbiAgY29udGludWF0aW9uOiB7XG4gICAgdG9rZW5pemU6IHRva2VuaXplQmxvY2tRdW90ZUNvbnRpbnVhdGlvblxuICB9LFxuICBleGl0XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQmxvY2tRdW90ZVN0YXJ0KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGJsb2NrIHF1b3RlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPiBhXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDYyKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IHNlbGYuY29udGFpbmVyU3RhdGVcbiAgICAgIGlmICghc3RhdGUub3Blbikge1xuICAgICAgICBlZmZlY3RzLmVudGVyKCdibG9ja1F1b3RlJywge1xuICAgICAgICAgIF9jb250YWluZXI6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgc3RhdGUub3BlbiA9IHRydWVcbiAgICAgIH1cbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2Jsb2NrUXVvdGVQcmVmaXgnKVxuICAgICAgZWZmZWN0cy5lbnRlcignYmxvY2tRdW90ZU1hcmtlcicpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnYmxvY2tRdW90ZU1hcmtlcicpXG4gICAgICByZXR1cm4gYWZ0ZXJcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA+YCwgYmVmb3JlIG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA+IGFcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2Jsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlJylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KCdibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZScpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2Jsb2NrUXVvdGVQcmVmaXgnKVxuICAgICAgcmV0dXJuIG9rXG4gICAgfVxuICAgIGVmZmVjdHMuZXhpdCgnYmxvY2tRdW90ZVByZWZpeCcpXG4gICAgcmV0dXJuIG9rKGNvZGUpXG4gIH1cbn1cblxuLyoqXG4gKiBTdGFydCBvZiBibG9jayBxdW90ZSBjb250aW51YXRpb24uXG4gKlxuICogYGBgbWFya2Rvd25cbiAqICAgfCA+IGFcbiAqID4gfCA+IGJcbiAqICAgICBeXG4gKiBgYGBcbiAqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVCbG9ja1F1b3RlQ29udGludWF0aW9uKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgcmV0dXJuIGNvbnRTdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBibG9jayBxdW90ZSBjb250aW51YXRpb24uXG4gICAqXG4gICAqIEFsc28gdXNlZCB0byBwYXJzZSB0aGUgZmlyc3QgYmxvY2sgcXVvdGUgb3BlbmluZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8ID4gYVxuICAgKiA+IHwgPiBiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250U3RhcnQoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuXG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKFxuICAgICAgICBlZmZlY3RzLFxuICAgICAgICBjb250QmVmb3JlLFxuICAgICAgICAnbGluZVByZWZpeCcsXG4gICAgICAgIHNlbGYucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCdjb2RlSW5kZW50ZWQnKVxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiA0XG4gICAgICApKGNvZGUpXG4gICAgfVxuICAgIHJldHVybiBjb250QmVmb3JlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQXQgYD5gLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBBbHNvIHVzZWQgdG8gcGFyc2UgdGhlIGZpcnN0IGJsb2NrIHF1b3RlIG9wZW5pbmcuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCA+IGFcbiAgICogPiB8ID4gYlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udEJlZm9yZShjb2RlKSB7XG4gICAgcmV0dXJuIGVmZmVjdHMuYXR0ZW1wdChibG9ja1F1b3RlLCBvaywgbm9rKShjb2RlKVxuICB9XG59XG5cbi8qKiBAdHlwZSB7RXhpdGVyfSAqL1xuZnVuY3Rpb24gZXhpdChlZmZlY3RzKSB7XG4gIGVmZmVjdHMuZXhpdCgnYmxvY2tRdW90ZScpXG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2FzY2lpUHVuY3R1YXRpb259IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcidcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckVzY2FwZSA9IHtcbiAgbmFtZTogJ2NoYXJhY3RlckVzY2FwZScsXG4gIHRva2VuaXplOiB0b2tlbml6ZUNoYXJhY3RlckVzY2FwZVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUNoYXJhY3RlckVzY2FwZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBjaGFyYWN0ZXIgZXNjYXBlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYVxcKmJcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignY2hhcmFjdGVyRXNjYXBlJylcbiAgICBlZmZlY3RzLmVudGVyKCdlc2NhcGVNYXJrZXInKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCgnZXNjYXBlTWFya2VyJylcbiAgICByZXR1cm4gaW5zaWRlXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYFxcYCwgYXQgcHVuY3R1YXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhXFwqYlxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBpbnNpZGUoY29kZSkge1xuICAgIC8vIEFTQ0lJIHB1bmN0dWF0aW9uLlxuICAgIGlmIChhc2NpaVB1bmN0dWF0aW9uKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCdjaGFyYWN0ZXJFc2NhcGVWYWx1ZScpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnY2hhcmFjdGVyRXNjYXBlVmFsdWUnKVxuICAgICAgZWZmZWN0cy5leGl0KCdjaGFyYWN0ZXJFc2NhcGUnKVxuICAgICAgcmV0dXJuIG9rXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxufVxuIiwKICAgICIvLy8gPHJlZmVyZW5jZSBsaWI9XCJkb21cIiAvPlxuXG4vKiBlc2xpbnQtZW52IGJyb3dzZXIgKi9cblxuY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ3xmYWxzZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKHZhbHVlKSB7XG4gIGNvbnN0IGNoYXJhY3RlclJlZmVyZW5jZSA9ICcmJyArIHZhbHVlICsgJzsnXG4gIGVsZW1lbnQuaW5uZXJIVE1MID0gY2hhcmFjdGVyUmVmZXJlbmNlXG4gIGNvbnN0IGNoYXIgPSBlbGVtZW50LnRleHRDb250ZW50XG5cbiAgLy8gU29tZSBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBkbyBub3QgcmVxdWlyZSB0aGUgY2xvc2luZyBzZW1pY29sb25cbiAgLy8gKGAmbm90YCwgZm9yIGluc3RhbmNlKSwgd2hpY2ggbGVhZHMgdG8gc2l0dWF0aW9ucyB3aGVyZSBwYXJzaW5nIHRoZSBhc3N1bWVkXG4gIC8vIG5hbWVkIHJlZmVyZW5jZSBvZiBgJm5vdGl0O2Agd2lsbCByZXN1bHQgaW4gdGhlIHN0cmluZyBgwqxpdDtgLlxuICAvLyBXaGVuIHdlIGVuY291bnRlciBhIHRyYWlsaW5nIHNlbWljb2xvbiBhZnRlciBwYXJzaW5nLCBhbmQgdGhlIGNoYXJhY3RlclxuICAvLyByZWZlcmVuY2UgdG8gZGVjb2RlIHdhcyBub3QgYSBzZW1pY29sb24gKGAmc2VtaTtgKSwgd2UgY2FuIGFzc3VtZSB0aGF0IHRoZVxuICAvLyBtYXRjaGluZyB3YXMgbm90IGNvbXBsZXRlLlxuICAvLyBAdHMtZXhwZWN0LWVycm9yOiBUeXBlU2NyaXB0IGlzIHdyb25nIHRoYXQgYHRleHRDb250ZW50YCBvbiBlbGVtZW50cyBjYW5cbiAgLy8geWllbGQgYG51bGxgLlxuICBpZiAoY2hhci5jaGFyQ29kZUF0KGNoYXIubGVuZ3RoIC0gMSkgPT09IDU5IC8qIGA7YCAqLyAmJiB2YWx1ZSAhPT0gJ3NlbWknKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBJZiB0aGUgZGVjb2RlZCBzdHJpbmcgaXMgZXF1YWwgdG8gdGhlIGlucHV0LCB0aGUgY2hhcmFjdGVyIHJlZmVyZW5jZSB3YXNcbiAgLy8gbm90IHZhbGlkLlxuICAvLyBAdHMtZXhwZWN0LWVycm9yOiBUeXBlU2NyaXB0IGlzIHdyb25nIHRoYXQgYHRleHRDb250ZW50YCBvbiBlbGVtZW50cyBjYW5cbiAgLy8geWllbGQgYG51bGxgLlxuICByZXR1cm4gY2hhciA9PT0gY2hhcmFjdGVyUmVmZXJlbmNlID8gZmFsc2UgOiBjaGFyXG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db2RlfSBDb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnN0cnVjdH0gQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7ZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2V9IGZyb20gJ2RlY29kZS1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlJ1xuaW1wb3J0IHtcbiAgYXNjaWlBbHBoYW51bWVyaWMsXG4gIGFzY2lpRGlnaXQsXG4gIGFzY2lpSGV4RGlnaXRcbn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgY2hhcmFjdGVyUmVmZXJlbmNlID0ge1xuICBuYW1lOiAnY2hhcmFjdGVyUmVmZXJlbmNlJyxcbiAgdG9rZW5pemU6IHRva2VuaXplQ2hhcmFjdGVyUmVmZXJlbmNlXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQ2hhcmFjdGVyUmVmZXJlbmNlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgbGV0IHNpemUgPSAwXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgbWF4XG4gIC8qKiBAdHlwZSB7KGNvZGU6IENvZGUpID0+IGJvb2xlYW59ICovXG4gIGxldCB0ZXN0XG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBjaGFyYWN0ZXIgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSZhbXA7YlxuICAgKiAgICAgIF5cbiAgICogPiB8IGEmIzEyMztiXG4gICAqICAgICAgXlxuICAgKiA+IHwgYSYjeDk7YlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKCdjaGFyYWN0ZXJSZWZlcmVuY2UnKVxuICAgIGVmZmVjdHMuZW50ZXIoJ2NoYXJhY3RlclJlZmVyZW5jZU1hcmtlcicpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXInKVxuICAgIHJldHVybiBvcGVuXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYCZgLCBhdCBgI2AgZm9yIG51bWVyaWMgcmVmZXJlbmNlcyBvciBhbHBoYW51bWVyaWMgZm9yIG5hbWVkXG4gICAqIHJlZmVyZW5jZXMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhJmFtcDtiXG4gICAqICAgICAgIF5cbiAgICogPiB8IGEmIzEyMztiXG4gICAqICAgICAgIF5cbiAgICogPiB8IGEmI3g5O2JcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gb3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDM1KSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCdjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljJylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KCdjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljJylcbiAgICAgIHJldHVybiBudW1lcmljXG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoJ2NoYXJhY3RlclJlZmVyZW5jZVZhbHVlJylcbiAgICBtYXggPSAzMVxuICAgIHRlc3QgPSBhc2NpaUFscGhhbnVtZXJpY1xuICAgIHJldHVybiB2YWx1ZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGAjYCwgYXQgYHhgIGZvciBoZXhhZGVjaW1hbHMgb3IgZGlnaXQgZm9yIGRlY2ltYWxzLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSYjMTIzO2JcbiAgICogICAgICAgIF5cbiAgICogPiB8IGEmI3g5O2JcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG51bWVyaWMoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA4OCB8fCBjb2RlID09PSAxMjApIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2NoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsJylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KCdjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCcpXG4gICAgICBlZmZlY3RzLmVudGVyKCdjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZScpXG4gICAgICBtYXggPSA2XG4gICAgICB0ZXN0ID0gYXNjaWlIZXhEaWdpdFxuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoJ2NoYXJhY3RlclJlZmVyZW5jZVZhbHVlJylcbiAgICBtYXggPSA3XG4gICAgdGVzdCA9IGFzY2lpRGlnaXRcbiAgICByZXR1cm4gdmFsdWUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBtYXJrZXJzIChgJiN4YCwgYCYjYCwgb3IgYCZgKSwgaW4gdmFsdWUsIGJlZm9yZSBgO2AuXG4gICAqXG4gICAqIFRoZSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGtpbmQgZGVmaW5lcyB3aGF0IGFuZCBob3cgbWFueSBjaGFyYWN0ZXJzIGFyZVxuICAgKiBhbGxvd2VkLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSZhbXA7YlxuICAgKiAgICAgICBeXl5cbiAgICogPiB8IGEmIzEyMztiXG4gICAqICAgICAgICBeXl5cbiAgICogPiB8IGEmI3g5O2JcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB2YWx1ZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDU5ICYmIHNpemUpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gZWZmZWN0cy5leGl0KCdjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZScpXG4gICAgICBpZiAoXG4gICAgICAgIHRlc3QgPT09IGFzY2lpQWxwaGFudW1lcmljICYmXG4gICAgICAgICFkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZShzZWxmLnNsaWNlU2VyaWFsaXplKHRva2VuKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgICB9XG5cbiAgICAgIC8vIFRvIGRvOiBgbWFya2Rvd24tcnNgIHVzZXMgYSBkaWZmZXJlbnQgbmFtZTpcbiAgICAgIC8vIGBDaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJTZW1pYC5cbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2NoYXJhY3RlclJlZmVyZW5jZU1hcmtlcicpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyJylcbiAgICAgIGVmZmVjdHMuZXhpdCgnY2hhcmFjdGVyUmVmZXJlbmNlJylcbiAgICAgIHJldHVybiBva1xuICAgIH1cbiAgICBpZiAodGVzdChjb2RlKSAmJiBzaXplKysgPCBtYXgpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2ZhY3RvcnlTcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZywgbWFya2Rvd25TcGFjZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5jb25zdCBub25MYXp5Q29udGludWF0aW9uID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVOb25MYXp5Q29udGludWF0aW9uLFxuICBwYXJ0aWFsOiB0cnVlXG59XG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGNvZGVGZW5jZWQgPSB7XG4gIG5hbWU6ICdjb2RlRmVuY2VkJyxcbiAgdG9rZW5pemU6IHRva2VuaXplQ29kZUZlbmNlZCxcbiAgY29uY3JldGU6IHRydWVcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVDb2RlRmVuY2VkKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG4gIGNvbnN0IGNsb3NlU3RhcnQgPSB7XG4gICAgdG9rZW5pemU6IHRva2VuaXplQ2xvc2VTdGFydCxcbiAgICBwYXJ0aWFsOiB0cnVlXG4gIH1cbiAgbGV0IGluaXRpYWxQcmVmaXggPSAwXG4gIGxldCBzaXplT3BlbiA9IDBcbiAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTxDb2RlPn0gKi9cbiAgbGV0IG1hcmtlclxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgY29kZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IH5+fmpzXG4gICAqICAgICBeXG4gICAqICAgfCBhbGVydCgxKVxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgLy8gVG8gZG86IHBhcnNlIHdoaXRlc3BhY2UgbGlrZSBgbWFya2Rvd24tcnNgLlxuICAgIHJldHVybiBiZWZvcmVTZXF1ZW5jZU9wZW4oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcGVuaW5nIGZlbmNlLCBhZnRlciBwcmVmaXgsIGF0IHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anNcbiAgICogICAgIF5cbiAgICogICB8IGFsZXJ0KDEpXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZVNlcXVlbmNlT3Blbihjb2RlKSB7XG4gICAgY29uc3QgdGFpbCA9IHNlbGYuZXZlbnRzW3NlbGYuZXZlbnRzLmxlbmd0aCAtIDFdXG4gICAgaW5pdGlhbFByZWZpeCA9XG4gICAgICB0YWlsICYmIHRhaWxbMV0udHlwZSA9PT0gJ2xpbmVQcmVmaXgnXG4gICAgICAgID8gdGFpbFsyXS5zbGljZVNlcmlhbGl6ZSh0YWlsWzFdLCB0cnVlKS5sZW5ndGhcbiAgICAgICAgOiAwXG4gICAgbWFya2VyID0gY29kZVxuICAgIGVmZmVjdHMuZW50ZXIoJ2NvZGVGZW5jZWQnKVxuICAgIGVmZmVjdHMuZW50ZXIoJ2NvZGVGZW5jZWRGZW5jZScpXG4gICAgZWZmZWN0cy5lbnRlcignY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UnKVxuICAgIHJldHVybiBzZXF1ZW5jZU9wZW4oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcGVuaW5nIGZlbmNlIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anNcbiAgICogICAgICBeXG4gICAqICAgfCBhbGVydCgxKVxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzZXF1ZW5jZU9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgIHNpemVPcGVuKytcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHNlcXVlbmNlT3BlblxuICAgIH1cbiAgICBpZiAoc2l6ZU9wZW4gPCAzKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuZXhpdCgnY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UnKVxuICAgIHJldHVybiBtYXJrZG93blNwYWNlKGNvZGUpXG4gICAgICA/IGZhY3RvcnlTcGFjZShlZmZlY3RzLCBpbmZvQmVmb3JlLCAnd2hpdGVzcGFjZScpKGNvZGUpXG4gICAgICA6IGluZm9CZWZvcmUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcGVuaW5nIGZlbmNlLCBhZnRlciB0aGUgc2VxdWVuY2UgKGFuZCBvcHRpb25hbCB3aGl0ZXNwYWNlKSwgYmVmb3JlIGluZm8uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB+fn5qc1xuICAgKiAgICAgICAgXlxuICAgKiAgIHwgYWxlcnQoMSlcbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5mb0JlZm9yZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2NvZGVGZW5jZWRGZW5jZScpXG4gICAgICByZXR1cm4gc2VsZi5pbnRlcnJ1cHRcbiAgICAgICAgPyBvayhjb2RlKVxuICAgICAgICA6IGVmZmVjdHMuY2hlY2sobm9uTGF6eUNvbnRpbnVhdGlvbiwgYXROb25MYXp5QnJlYWssIGFmdGVyKShjb2RlKVxuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKCdjb2RlRmVuY2VkRmVuY2VJbmZvJylcbiAgICBlZmZlY3RzLmVudGVyKCdjaHVua1N0cmluZycsIHtcbiAgICAgIGNvbnRlbnRUeXBlOiAnc3RyaW5nJ1xuICAgIH0pXG4gICAgcmV0dXJuIGluZm8oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBpbmZvLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anNcbiAgICogICAgICAgIF5cbiAgICogICB8IGFsZXJ0KDEpXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluZm8oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KCdjaHVua1N0cmluZycpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2NvZGVGZW5jZWRGZW5jZUluZm8nKVxuICAgICAgcmV0dXJuIGluZm9CZWZvcmUoY29kZSlcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCgnY2h1bmtTdHJpbmcnKVxuICAgICAgZWZmZWN0cy5leGl0KCdjb2RlRmVuY2VkRmVuY2VJbmZvJylcbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgbWV0YUJlZm9yZSwgJ3doaXRlc3BhY2UnKShjb2RlKVxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gOTYgJiYgY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBpbmZvXG4gIH1cblxuICAvKipcbiAgICogSW4gb3BlbmluZyBmZW5jZSwgYWZ0ZXIgaW5mbyBhbmQgd2hpdGVzcGFjZSwgYmVmb3JlIG1ldGEuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB+fn5qcyBldmFsXG4gICAqICAgICAgICAgICBeXG4gICAqICAgfCBhbGVydCgxKVxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBtZXRhQmVmb3JlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBpbmZvQmVmb3JlKGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoJ2NvZGVGZW5jZWRGZW5jZU1ldGEnKVxuICAgIGVmZmVjdHMuZW50ZXIoJ2NodW5rU3RyaW5nJywge1xuICAgICAgY29udGVudFR5cGU6ICdzdHJpbmcnXG4gICAgfSlcbiAgICByZXR1cm4gbWV0YShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIG1ldGEuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB+fn5qcyBldmFsXG4gICAqICAgICAgICAgICBeXG4gICAqICAgfCBhbGVydCgxKVxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBtZXRhKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCgnY2h1bmtTdHJpbmcnKVxuICAgICAgZWZmZWN0cy5leGl0KCdjb2RlRmVuY2VkRmVuY2VNZXRhJylcbiAgICAgIHJldHVybiBpbmZvQmVmb3JlKGNvZGUpXG4gICAgfVxuICAgIGlmIChjb2RlID09PSA5NiAmJiBjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIG1ldGFcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBlb2wvZW9mIGluIGNvZGUsIGJlZm9yZSBhIG5vbi1sYXp5IGNsb3NpbmcgZmVuY2Ugb3IgY29udGVudC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IH5+fmpzXG4gICAqICAgICAgICAgIF5cbiAgICogPiB8IGFsZXJ0KDEpXG4gICAqICAgICAgICAgICAgIF5cbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYXROb25MYXp5QnJlYWsoY29kZSkge1xuICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoY2xvc2VTdGFydCwgYWZ0ZXIsIGNvbnRlbnRCZWZvcmUpKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQmVmb3JlIGNvZGUgY29udGVudCwgbm90IGEgY2xvc2luZyBmZW5jZSwgYXQgZW9sLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfn5+anNcbiAgICogPiB8IGFsZXJ0KDEpXG4gICAqICAgICAgICAgICAgIF5cbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGVudEJlZm9yZShjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignbGluZUVuZGluZycpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdsaW5lRW5kaW5nJylcbiAgICByZXR1cm4gY29udGVudFN0YXJ0XG4gIH1cblxuICAvKipcbiAgICogQmVmb3JlIGNvZGUgY29udGVudCwgbm90IGEgY2xvc2luZyBmZW5jZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IH5+fmpzXG4gICAqID4gfCBhbGVydCgxKVxuICAgKiAgICAgXlxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250ZW50U3RhcnQoY29kZSkge1xuICAgIHJldHVybiBpbml0aWFsUHJlZml4ID4gMCAmJiBtYXJrZG93blNwYWNlKGNvZGUpXG4gICAgICA/IGZhY3RvcnlTcGFjZShcbiAgICAgICAgICBlZmZlY3RzLFxuICAgICAgICAgIGJlZm9yZUNvbnRlbnRDaHVuayxcbiAgICAgICAgICAnbGluZVByZWZpeCcsXG4gICAgICAgICAgaW5pdGlhbFByZWZpeCArIDFcbiAgICAgICAgKShjb2RlKVxuICAgICAgOiBiZWZvcmVDb250ZW50Q2h1bmsoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgY29kZSBjb250ZW50LCBhZnRlciBvcHRpb25hbCBwcmVmaXguXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB+fn5qc1xuICAgKiA+IHwgYWxlcnQoMSlcbiAgICogICAgIF5cbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYmVmb3JlQ29udGVudENodW5rKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBlZmZlY3RzLmNoZWNrKG5vbkxhenlDb250aW51YXRpb24sIGF0Tm9uTGF6eUJyZWFrLCBhZnRlcikoY29kZSlcbiAgICB9XG4gICAgZWZmZWN0cy5lbnRlcignY29kZUZsb3dWYWx1ZScpXG4gICAgcmV0dXJuIGNvbnRlbnRDaHVuayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGNvZGUgY29udGVudC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IH5+fmpzXG4gICAqID4gfCBhbGVydCgxKVxuICAgKiAgICAgXl5eXl5eXl5cbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGVudENodW5rKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCgnY29kZUZsb3dWYWx1ZScpXG4gICAgICByZXR1cm4gYmVmb3JlQ29udGVudENodW5rKGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb250ZW50Q2h1bmtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBjb2RlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfn5+anNcbiAgICogICB8IGFsZXJ0KDEpXG4gICAqID4gfCB+fn5cbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICBlZmZlY3RzLmV4aXQoJ2NvZGVGZW5jZWQnKVxuICAgIHJldHVybiBvayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gICAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gICAqL1xuICBmdW5jdGlvbiB0b2tlbml6ZUNsb3NlU3RhcnQoZWZmZWN0cywgb2ssIG5vaykge1xuICAgIGxldCBzaXplID0gMFxuICAgIHJldHVybiBzdGFydEJlZm9yZVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFydEJlZm9yZShjb2RlKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCdsaW5lRW5kaW5nJylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KCdsaW5lRW5kaW5nJylcbiAgICAgIHJldHVybiBzdGFydFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJlZm9yZSBjbG9zaW5nIGZlbmNlLCBhdCBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgICAqXG4gICAgICogYGBgbWFya2Rvd25cbiAgICAgKiAgIHwgfn5+anNcbiAgICAgKiAgIHwgYWxlcnQoMSlcbiAgICAgKiA+IHwgfn5+XG4gICAgICogICAgIF5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuXG4gICAgICAvLyBUbyBkbzogYGVudGVyYCBoZXJlIG9yIGluIG5leHQgc3RhdGU/XG4gICAgICBlZmZlY3RzLmVudGVyKCdjb2RlRmVuY2VkRmVuY2UnKVxuICAgICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICAgICAgPyBmYWN0b3J5U3BhY2UoXG4gICAgICAgICAgICBlZmZlY3RzLFxuICAgICAgICAgICAgYmVmb3JlU2VxdWVuY2VDbG9zZSxcbiAgICAgICAgICAgICdsaW5lUHJlZml4JyxcbiAgICAgICAgICAgIHNlbGYucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCdjb2RlSW5kZW50ZWQnKVxuICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA6IDRcbiAgICAgICAgICApKGNvZGUpXG4gICAgICAgIDogYmVmb3JlU2VxdWVuY2VDbG9zZShjb2RlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluIGNsb3NpbmcgZmVuY2UsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UsIGF0IHNlcXVlbmNlLlxuICAgICAqXG4gICAgICogYGBgbWFya2Rvd25cbiAgICAgKiAgIHwgfn5+anNcbiAgICAgKiAgIHwgYWxlcnQoMSlcbiAgICAgKiA+IHwgfn5+XG4gICAgICogICAgIF5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiZWZvcmVTZXF1ZW5jZUNsb3NlKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgICAgZWZmZWN0cy5lbnRlcignY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UnKVxuICAgICAgICByZXR1cm4gc2VxdWVuY2VDbG9zZShjb2RlKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluIGNsb3NpbmcgZmVuY2Ugc2VxdWVuY2UuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqICAgfCB+fn5qc1xuICAgICAqICAgfCBhbGVydCgxKVxuICAgICAqID4gfCB+fn5cbiAgICAgKiAgICAgXlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNlcXVlbmNlQ2xvc2UoY29kZSkge1xuICAgICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgICBzaXplKytcbiAgICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAgIHJldHVybiBzZXF1ZW5jZUNsb3NlXG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA+PSBzaXplT3Blbikge1xuICAgICAgICBlZmZlY3RzLmV4aXQoJ2NvZGVGZW5jZWRGZW5jZVNlcXVlbmNlJylcbiAgICAgICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICAgICAgICA/IGZhY3RvcnlTcGFjZShlZmZlY3RzLCBzZXF1ZW5jZUNsb3NlQWZ0ZXIsICd3aGl0ZXNwYWNlJykoY29kZSlcbiAgICAgICAgICA6IHNlcXVlbmNlQ2xvc2VBZnRlcihjb2RlKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFmdGVyIGNsb3NpbmcgZmVuY2Ugc2VxdWVuY2UsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqICAgfCB+fn5qc1xuICAgICAqICAgfCBhbGVydCgxKVxuICAgICAqID4gfCB+fn5cbiAgICAgKiAgICAgICAgXlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNlcXVlbmNlQ2xvc2VBZnRlcihjb2RlKSB7XG4gICAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgICAgZWZmZWN0cy5leGl0KCdjb2RlRmVuY2VkRmVuY2UnKVxuICAgICAgICByZXR1cm4gb2soY29kZSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVOb25MYXp5Q29udGludWF0aW9uKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKCdsaW5lRW5kaW5nJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ2xpbmVFbmRpbmcnKVxuICAgIHJldHVybiBsaW5lU3RhcnRcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBsaW5lU3RhcnQoY29kZSkge1xuICAgIHJldHVybiBzZWxmLnBhcnNlci5sYXp5W3NlbGYubm93KCkubGluZV0gPyBub2soY29kZSkgOiBvayhjb2RlKVxuICB9XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2ZhY3RvcnlTcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZywgbWFya2Rvd25TcGFjZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgY29kZUluZGVudGVkID0ge1xuICBuYW1lOiAnY29kZUluZGVudGVkJyxcbiAgdG9rZW5pemU6IHRva2VuaXplQ29kZUluZGVudGVkXG59XG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuY29uc3QgZnVydGhlclN0YXJ0ID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVGdXJ0aGVyU3RhcnQsXG4gIHBhcnRpYWw6IHRydWVcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVDb2RlSW5kZW50ZWQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgY29kZSAoaW5kZW50ZWQpLlxuICAgKlxuICAgKiA+ICoqUGFyc2luZyBub3RlKio6IGl0IGlzIG5vdCBuZWVkZWQgdG8gY2hlY2sgaWYgdGhpcyBmaXJzdCBsaW5lIGlzIGFcbiAgICogPiBmaWxsZWQgbGluZSAodGhhdCBpdCBoYXMgYSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIpLCBiZWNhdXNlIGJsYW5rIGxpbmVzXG4gICAqID4gYXJlIHBhcnNlZCBhbHJlYWR5LCBzbyB3ZSBuZXZlciBydW4gaW50byB0aGF0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgICAgIGFhYVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIC8vIFRvIGRvOiBtYW51YWxseSBjaGVjayBpZiBpbnRlcnJ1cHRpbmcgbGlrZSBgbWFya2Rvd24tcnNgLlxuXG4gICAgZWZmZWN0cy5lbnRlcignY29kZUluZGVudGVkJylcbiAgICAvLyBUbyBkbzogdXNlIGFuIGltcHJvdmVkIGBzcGFjZV9vcl90YWJgIGZ1bmN0aW9uIGxpa2UgYG1hcmtkb3duLXJzYCxcbiAgICAvLyBzbyB0aGF0IHdlIGNhbiBkcm9wIHRoZSBuZXh0IHN0YXRlLlxuICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYWZ0ZXJQcmVmaXgsICdsaW5lUHJlZml4JywgNCArIDEpKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQXQgc3RhcnQsIGFmdGVyIDEgb3IgNCBzcGFjZXMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAgICAgYWFhXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXJQcmVmaXgoY29kZSkge1xuICAgIGNvbnN0IHRhaWwgPSBzZWxmLmV2ZW50c1tzZWxmLmV2ZW50cy5sZW5ndGggLSAxXVxuICAgIHJldHVybiB0YWlsICYmXG4gICAgICB0YWlsWzFdLnR5cGUgPT09ICdsaW5lUHJlZml4JyAmJlxuICAgICAgdGFpbFsyXS5zbGljZVNlcmlhbGl6ZSh0YWlsWzFdLCB0cnVlKS5sZW5ndGggPj0gNFxuICAgICAgPyBhdEJyZWFrKGNvZGUpXG4gICAgICA6IG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IGEgYnJlYWsuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAgICAgYWFhXG4gICAqICAgICAgICAgXiAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYXRCcmVhayhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBhZnRlcihjb2RlKVxuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KGZ1cnRoZXJTdGFydCwgYXRCcmVhaywgYWZ0ZXIpKGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoJ2NvZGVGbG93VmFsdWUnKVxuICAgIHJldHVybiBpbnNpZGUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjb2RlIGNvbnRlbnQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAgICAgYWFhXG4gICAqICAgICAgICAgXl5eXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCgnY29kZUZsb3dWYWx1ZScpXG4gICAgICByZXR1cm4gYXRCcmVhayhjb2RlKVxuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gaW5zaWRlXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KCdjb2RlSW5kZW50ZWQnKVxuICAgIC8vIFRvIGRvOiBhbGxvdyBpbnRlcnJ1cHRpbmcgbGlrZSBgbWFya2Rvd24tcnNgLlxuICAgIC8vIEZlZWwgZnJlZSB0byBpbnRlcnJ1cHQuXG4gICAgLy8gdG9rZW5pemVyLmludGVycnVwdCA9IGZhbHNlXG4gICAgcmV0dXJuIG9rKGNvZGUpXG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVGdXJ0aGVyU3RhcnQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICByZXR1cm4gZnVydGhlclN0YXJ0XG5cbiAgLyoqXG4gICAqIEF0IGVvbCwgdHJ5aW5nIHRvIHBhcnNlIGFub3RoZXIgaW5kZW50LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgICAgIGFhYVxuICAgKiAgICAgICAgICAgIF5cbiAgICogICB8ICAgICBiYmJcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGZ1cnRoZXJTdGFydChjb2RlKSB7XG4gICAgLy8gVG8gZG86IGltcHJvdmUgYGxhenlgIC8gYHBpZXJjZWAgaGFuZGxpbmcuXG4gICAgLy8gSWYgdGhpcyBpcyBhIGxhenkgbGluZSwgaXQgY2Fu4oCZdCBiZSBjb2RlLlxuICAgIGlmIChzZWxmLnBhcnNlci5sYXp5W3NlbGYubm93KCkubGluZV0pIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcignbGluZUVuZGluZycpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnbGluZUVuZGluZycpXG4gICAgICByZXR1cm4gZnVydGhlclN0YXJ0XG4gICAgfVxuXG4gICAgLy8gVG8gZG86IHRoZSBjb2RlIGhlcmUgaW4gYG1pY3JvbWFyay1qc2AgaXMgYSBiaXQgZGlmZmVyZW50IGZyb21cbiAgICAvLyBgbWFya2Rvd24tcnNgIGJlY2F1c2UgdGhlcmUgaXQgY2FuIGF0dGVtcHQgc3BhY2VzLlxuICAgIC8vIFdlIGNhbuKAmXQgeWV0LlxuICAgIC8vXG4gICAgLy8gVG8gZG86IHVzZSBhbiBpbXByb3ZlZCBgc3BhY2Vfb3JfdGFiYCBmdW5jdGlvbiBsaWtlIGBtYXJrZG93bi1yc2AsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gZHJvcCB0aGUgbmV4dCBzdGF0ZS5cbiAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGFmdGVyUHJlZml4LCAnbGluZVByZWZpeCcsIDQgKyAxKShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IHN0YXJ0LCBhZnRlciAxIG9yIDQgc3BhY2VzLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgICAgIGFhYVxuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyUHJlZml4KGNvZGUpIHtcbiAgICBjb25zdCB0YWlsID0gc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV1cbiAgICByZXR1cm4gdGFpbCAmJlxuICAgICAgdGFpbFsxXS50eXBlID09PSAnbGluZVByZWZpeCcgJiZcbiAgICAgIHRhaWxbMl0uc2xpY2VTZXJpYWxpemUodGFpbFsxXSwgdHJ1ZSkubGVuZ3RoID49IDRcbiAgICAgID8gb2soY29kZSlcbiAgICAgIDogbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpXG4gICAgICA/IGZ1cnRoZXJTdGFydChjb2RlKVxuICAgICAgOiBub2soY29kZSlcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUHJldmlvdXN9IFByZXZpb3VzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlJlc29sdmVyfSBSZXNvbHZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW59IFRva2VuXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmd9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcidcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGNvZGVUZXh0ID0ge1xuICBuYW1lOiAnY29kZVRleHQnLFxuICB0b2tlbml6ZTogdG9rZW5pemVDb2RlVGV4dCxcbiAgcmVzb2x2ZTogcmVzb2x2ZUNvZGVUZXh0LFxuICBwcmV2aW91c1xufVxuXG4vLyBUbyBkbzogbmV4dCBtYWpvcjogZG9u4oCZdCByZXNvbHZlLCBsaWtlIGBtYXJrZG93bi1yc2AuXG4vKiogQHR5cGUge1Jlc29sdmVyfSAqL1xuZnVuY3Rpb24gcmVzb2x2ZUNvZGVUZXh0KGV2ZW50cykge1xuICBsZXQgdGFpbEV4aXRJbmRleCA9IGV2ZW50cy5sZW5ndGggLSA0XG4gIGxldCBoZWFkRW50ZXJJbmRleCA9IDNcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBpbmRleFxuICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGVudGVyXG5cbiAgLy8gSWYgd2Ugc3RhcnQgYW5kIGVuZCB3aXRoIGFuIEVPTCBvciBhIHNwYWNlLlxuICBpZiAoXG4gICAgKGV2ZW50c1toZWFkRW50ZXJJbmRleF1bMV0udHlwZSA9PT0gJ2xpbmVFbmRpbmcnIHx8XG4gICAgICBldmVudHNbaGVhZEVudGVySW5kZXhdWzFdLnR5cGUgPT09ICdzcGFjZScpICYmXG4gICAgKGV2ZW50c1t0YWlsRXhpdEluZGV4XVsxXS50eXBlID09PSAnbGluZUVuZGluZycgfHxcbiAgICAgIGV2ZW50c1t0YWlsRXhpdEluZGV4XVsxXS50eXBlID09PSAnc3BhY2UnKVxuICApIHtcbiAgICBpbmRleCA9IGhlYWRFbnRlckluZGV4XG5cbiAgICAvLyBBbmQgd2UgaGF2ZSBkYXRhLlxuICAgIHdoaWxlICgrK2luZGV4IDwgdGFpbEV4aXRJbmRleCkge1xuICAgICAgaWYgKGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gJ2NvZGVUZXh0RGF0YScpIHtcbiAgICAgICAgLy8gVGhlbiB3ZSBoYXZlIHBhZGRpbmcuXG4gICAgICAgIGV2ZW50c1toZWFkRW50ZXJJbmRleF1bMV0udHlwZSA9ICdjb2RlVGV4dFBhZGRpbmcnXG4gICAgICAgIGV2ZW50c1t0YWlsRXhpdEluZGV4XVsxXS50eXBlID0gJ2NvZGVUZXh0UGFkZGluZydcbiAgICAgICAgaGVhZEVudGVySW5kZXggKz0gMlxuICAgICAgICB0YWlsRXhpdEluZGV4IC09IDJcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBNZXJnZSBhZGphY2VudCBzcGFjZXMgYW5kIGRhdGEuXG4gIGluZGV4ID0gaGVhZEVudGVySW5kZXggLSAxXG4gIHRhaWxFeGl0SW5kZXgrK1xuICB3aGlsZSAoKytpbmRleCA8PSB0YWlsRXhpdEluZGV4KSB7XG4gICAgaWYgKGVudGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChpbmRleCAhPT0gdGFpbEV4aXRJbmRleCAmJiBldmVudHNbaW5kZXhdWzFdLnR5cGUgIT09ICdsaW5lRW5kaW5nJykge1xuICAgICAgICBlbnRlciA9IGluZGV4XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGluZGV4ID09PSB0YWlsRXhpdEluZGV4IHx8XG4gICAgICBldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdsaW5lRW5kaW5nJ1xuICAgICkge1xuICAgICAgZXZlbnRzW2VudGVyXVsxXS50eXBlID0gJ2NvZGVUZXh0RGF0YSdcbiAgICAgIGlmIChpbmRleCAhPT0gZW50ZXIgKyAyKSB7XG4gICAgICAgIGV2ZW50c1tlbnRlcl1bMV0uZW5kID0gZXZlbnRzW2luZGV4IC0gMV1bMV0uZW5kXG4gICAgICAgIGV2ZW50cy5zcGxpY2UoZW50ZXIgKyAyLCBpbmRleCAtIGVudGVyIC0gMilcbiAgICAgICAgdGFpbEV4aXRJbmRleCAtPSBpbmRleCAtIGVudGVyIC0gMlxuICAgICAgICBpbmRleCA9IGVudGVyICsgMlxuICAgICAgfVxuICAgICAgZW50ZXIgPSB1bmRlZmluZWRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGV2ZW50c1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7UHJldmlvdXN9XG4gKi9cbmZ1bmN0aW9uIHByZXZpb3VzKGNvZGUpIHtcbiAgLy8gSWYgdGhlcmUgaXMgYSBwcmV2aW91cyBjb2RlLCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBhIHRhaWwuXG4gIHJldHVybiAoXG4gICAgY29kZSAhPT0gOTYgfHxcbiAgICB0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGggLSAxXVsxXS50eXBlID09PSAnY2hhcmFjdGVyRXNjYXBlJ1xuICApXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQ29kZVRleHQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICBsZXQgc2l6ZU9wZW4gPSAwXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgc2l6ZVxuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBsZXQgdG9rZW5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGNvZGUgKHRleHQpLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYGFgXG4gICAqICAgICBeXG4gICAqID4gfCBcXGBhYFxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKCdjb2RlVGV4dCcpXG4gICAgZWZmZWN0cy5lbnRlcignY29kZVRleHRTZXF1ZW5jZScpXG4gICAgcmV0dXJuIHNlcXVlbmNlT3Blbihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIG9wZW5pbmcgc2VxdWVuY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBgYWBcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHNlcXVlbmNlT3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDk2KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHNpemVPcGVuKytcbiAgICAgIHJldHVybiBzZXF1ZW5jZU9wZW5cbiAgICB9XG4gICAgZWZmZWN0cy5leGl0KCdjb2RlVGV4dFNlcXVlbmNlJylcbiAgICByZXR1cm4gYmV0d2Vlbihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEJldHdlZW4gc29tZXRoaW5nIGFuZCBzb21ldGhpbmcgZWxzZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGBhYFxuICAgKiAgICAgIF5eXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBiZXR3ZWVuKGNvZGUpIHtcbiAgICAvLyBFT0YuXG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICAvLyBUbyBkbzogbmV4dCBtYWpvcjogZG9u4oCZdCBkbyBzcGFjZXMgaW4gcmVzb2x2ZSwgYnV0IHdoZW4gY29tcGlsaW5nLFxuICAgIC8vIGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICAvLyBUYWJzIGRvbuKAmXQgd29yaywgYW5kIHZpcnR1YWwgc3BhY2VzIGRvbuKAmXQgbWFrZSBzZW5zZS5cbiAgICBpZiAoY29kZSA9PT0gMzIpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ3NwYWNlJylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KCdzcGFjZScpXG4gICAgICByZXR1cm4gYmV0d2VlblxuICAgIH1cblxuICAgIC8vIENsb3NpbmcgZmVuY2U/IENvdWxkIGFsc28gYmUgZGF0YS5cbiAgICBpZiAoY29kZSA9PT0gOTYpIHtcbiAgICAgIHRva2VuID0gZWZmZWN0cy5lbnRlcignY29kZVRleHRTZXF1ZW5jZScpXG4gICAgICBzaXplID0gMFxuICAgICAgcmV0dXJuIHNlcXVlbmNlQ2xvc2UoY29kZSlcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcignbGluZUVuZGluZycpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnbGluZUVuZGluZycpXG4gICAgICByZXR1cm4gYmV0d2VlblxuICAgIH1cblxuICAgIC8vIERhdGEuXG4gICAgZWZmZWN0cy5lbnRlcignY29kZVRleHREYXRhJylcbiAgICByZXR1cm4gZGF0YShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGRhdGEuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBgYWBcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkYXRhKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBudWxsIHx8XG4gICAgICBjb2RlID09PSAzMiB8fFxuICAgICAgY29kZSA9PT0gOTYgfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZyhjb2RlKVxuICAgICkge1xuICAgICAgZWZmZWN0cy5leGl0KCdjb2RlVGV4dERhdGEnKVxuICAgICAgcmV0dXJuIGJldHdlZW4oY29kZSlcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjbG9zaW5nIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYGFgXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHNlcXVlbmNlQ2xvc2UoY29kZSkge1xuICAgIC8vIE1vcmUuXG4gICAgaWYgKGNvZGUgPT09IDk2KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHNpemUrK1xuICAgICAgcmV0dXJuIHNlcXVlbmNlQ2xvc2VcbiAgICB9XG5cbiAgICAvLyBEb25lIVxuICAgIGlmIChzaXplID09PSBzaXplT3Blbikge1xuICAgICAgZWZmZWN0cy5leGl0KCdjb2RlVGV4dFNlcXVlbmNlJylcbiAgICAgIGVmZmVjdHMuZXhpdCgnY29kZVRleHQnKVxuICAgICAgcmV0dXJuIG9rKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gTW9yZSBvciBsZXNzIGFjY2VudHM6IG1hcmsgYXMgZGF0YS5cbiAgICB0b2tlbi50eXBlID0gJ2NvZGVUZXh0RGF0YSdcbiAgICByZXR1cm4gZGF0YShjb2RlKVxuICB9XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5DaHVua30gQ2h1bmtcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXZlbnR9IEV2ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICovXG5cbmltcG9ydCB7c3BsaWNlfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaHVua2VkJ1xuLyoqXG4gKiBUb2tlbml6ZSBzdWJjb250ZW50LlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAqICAgTGlzdCBvZiBldmVudHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBzdWJ0b2tlbnMgd2VyZSBmb3VuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1YnRva2VuaXplKGV2ZW50cykge1xuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIG51bWJlcj59ICovXG4gIGNvbnN0IGp1bXBzID0ge31cbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtFdmVudH0gKi9cbiAgbGV0IGV2ZW50XG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgbGluZUluZGV4XG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgb3RoZXJJbmRleFxuICAvKiogQHR5cGUge0V2ZW50fSAqL1xuICBsZXQgb3RoZXJFdmVudFxuICAvKiogQHR5cGUge0FycmF5PEV2ZW50Pn0gKi9cbiAgbGV0IHBhcmFtZXRlcnNcbiAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gIGxldCBzdWJldmVudHNcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgbW9yZVxuICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICB3aGlsZSAoaW5kZXggaW4ganVtcHMpIHtcbiAgICAgIGluZGV4ID0ganVtcHNbaW5kZXhdXG4gICAgfVxuICAgIGV2ZW50ID0gZXZlbnRzW2luZGV4XVxuXG4gICAgLy8gQWRkIGEgaG9vayBmb3IgdGhlIEdGTSB0YXNrbGlzdCBleHRlbnNpb24sIHdoaWNoIG5lZWRzIHRvIGtub3cgaWYgdGV4dFxuICAgIC8vIGlzIGluIHRoZSBmaXJzdCBjb250ZW50IG9mIGEgbGlzdCBpdGVtLlxuICAgIGlmIChcbiAgICAgIGluZGV4ICYmXG4gICAgICBldmVudFsxXS50eXBlID09PSAnY2h1bmtGbG93JyAmJlxuICAgICAgZXZlbnRzW2luZGV4IC0gMV1bMV0udHlwZSA9PT0gJ2xpc3RJdGVtUHJlZml4J1xuICAgICkge1xuICAgICAgc3ViZXZlbnRzID0gZXZlbnRbMV0uX3Rva2VuaXplci5ldmVudHNcbiAgICAgIG90aGVySW5kZXggPSAwXG4gICAgICBpZiAoXG4gICAgICAgIG90aGVySW5kZXggPCBzdWJldmVudHMubGVuZ3RoICYmXG4gICAgICAgIHN1YmV2ZW50c1tvdGhlckluZGV4XVsxXS50eXBlID09PSAnbGluZUVuZGluZ0JsYW5rJ1xuICAgICAgKSB7XG4gICAgICAgIG90aGVySW5kZXggKz0gMlxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBvdGhlckluZGV4IDwgc3ViZXZlbnRzLmxlbmd0aCAmJlxuICAgICAgICBzdWJldmVudHNbb3RoZXJJbmRleF1bMV0udHlwZSA9PT0gJ2NvbnRlbnQnXG4gICAgICApIHtcbiAgICAgICAgd2hpbGUgKCsrb3RoZXJJbmRleCA8IHN1YmV2ZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICBpZiAoc3ViZXZlbnRzW290aGVySW5kZXhdWzFdLnR5cGUgPT09ICdjb250ZW50Jykge1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN1YmV2ZW50c1tvdGhlckluZGV4XVsxXS50eXBlID09PSAnY2h1bmtUZXh0Jykge1xuICAgICAgICAgICAgc3ViZXZlbnRzW290aGVySW5kZXhdWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSA9IHRydWVcbiAgICAgICAgICAgIG90aGVySW5kZXgrK1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVudGVyLlxuICAgIGlmIChldmVudFswXSA9PT0gJ2VudGVyJykge1xuICAgICAgaWYgKGV2ZW50WzFdLmNvbnRlbnRUeXBlKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oanVtcHMsIHN1YmNvbnRlbnQoZXZlbnRzLCBpbmRleCkpXG4gICAgICAgIGluZGV4ID0ganVtcHNbaW5kZXhdXG4gICAgICAgIG1vcmUgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIC8vIEV4aXQuXG4gICAgZWxzZSBpZiAoZXZlbnRbMV0uX2NvbnRhaW5lcikge1xuICAgICAgb3RoZXJJbmRleCA9IGluZGV4XG4gICAgICBsaW5lSW5kZXggPSB1bmRlZmluZWRcbiAgICAgIHdoaWxlIChvdGhlckluZGV4LS0pIHtcbiAgICAgICAgb3RoZXJFdmVudCA9IGV2ZW50c1tvdGhlckluZGV4XVxuICAgICAgICBpZiAoXG4gICAgICAgICAgb3RoZXJFdmVudFsxXS50eXBlID09PSAnbGluZUVuZGluZycgfHxcbiAgICAgICAgICBvdGhlckV2ZW50WzFdLnR5cGUgPT09ICdsaW5lRW5kaW5nQmxhbmsnXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChvdGhlckV2ZW50WzBdID09PSAnZW50ZXInKSB7XG4gICAgICAgICAgICBpZiAobGluZUluZGV4KSB7XG4gICAgICAgICAgICAgIGV2ZW50c1tsaW5lSW5kZXhdWzFdLnR5cGUgPSAnbGluZUVuZGluZ0JsYW5rJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3RoZXJFdmVudFsxXS50eXBlID0gJ2xpbmVFbmRpbmcnXG4gICAgICAgICAgICBsaW5lSW5kZXggPSBvdGhlckluZGV4XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChsaW5lSW5kZXgpIHtcbiAgICAgICAgLy8gRml4IHBvc2l0aW9uLlxuICAgICAgICBldmVudFsxXS5lbmQgPSBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbbGluZUluZGV4XVsxXS5zdGFydClcblxuICAgICAgICAvLyBTd2l0Y2ggY29udGFpbmVyIGV4aXQgdy8gbGluZSBlbmRpbmdzLlxuICAgICAgICBwYXJhbWV0ZXJzID0gZXZlbnRzLnNsaWNlKGxpbmVJbmRleCwgaW5kZXgpXG4gICAgICAgIHBhcmFtZXRlcnMudW5zaGlmdChldmVudClcbiAgICAgICAgc3BsaWNlKGV2ZW50cywgbGluZUluZGV4LCBpbmRleCAtIGxpbmVJbmRleCArIDEsIHBhcmFtZXRlcnMpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAhbW9yZVxufVxuXG4vKipcbiAqIFRva2VuaXplIGVtYmVkZGVkIHRva2Vucy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PEV2ZW50Pn0gZXZlbnRzXG4gKiBAcGFyYW0ge251bWJlcn0gZXZlbnRJbmRleFxuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIG51bWJlcj59XG4gKi9cbmZ1bmN0aW9uIHN1YmNvbnRlbnQoZXZlbnRzLCBldmVudEluZGV4KSB7XG4gIGNvbnN0IHRva2VuID0gZXZlbnRzW2V2ZW50SW5kZXhdWzFdXG4gIGNvbnN0IGNvbnRleHQgPSBldmVudHNbZXZlbnRJbmRleF1bMl1cbiAgbGV0IHN0YXJ0UG9zaXRpb24gPSBldmVudEluZGV4IC0gMVxuICAvKiogQHR5cGUge0FycmF5PG51bWJlcj59ICovXG4gIGNvbnN0IHN0YXJ0UG9zaXRpb25zID0gW11cbiAgY29uc3QgdG9rZW5pemVyID1cbiAgICB0b2tlbi5fdG9rZW5pemVyIHx8IGNvbnRleHQucGFyc2VyW3Rva2VuLmNvbnRlbnRUeXBlXSh0b2tlbi5zdGFydClcbiAgY29uc3QgY2hpbGRFdmVudHMgPSB0b2tlbml6ZXIuZXZlbnRzXG4gIC8qKiBAdHlwZSB7QXJyYXk8W251bWJlciwgbnVtYmVyXT59ICovXG4gIGNvbnN0IGp1bXBzID0gW11cbiAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBudW1iZXI+fSAqL1xuICBjb25zdCBnYXBzID0ge31cbiAgLyoqIEB0eXBlIHtBcnJheTxDaHVuaz59ICovXG4gIGxldCBzdHJlYW1cbiAgLyoqIEB0eXBlIHtUb2tlbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHByZXZpb3VzXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7VG9rZW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBjdXJyZW50ID0gdG9rZW5cbiAgbGV0IGFkanVzdCA9IDBcbiAgbGV0IHN0YXJ0ID0gMFxuICBjb25zdCBicmVha3MgPSBbc3RhcnRdXG5cbiAgLy8gTG9vcCBmb3J3YXJkIHRocm91Z2ggdGhlIGxpbmtlZCB0b2tlbnMgdG8gcGFzcyB0aGVtIGluIG9yZGVyIHRvIHRoZVxuICAvLyBzdWJ0b2tlbml6ZXIuXG4gIHdoaWxlIChjdXJyZW50KSB7XG4gICAgLy8gRmluZCB0aGUgcG9zaXRpb24gb2YgdGhlIGV2ZW50IGZvciB0aGlzIHRva2VuLlxuICAgIHdoaWxlIChldmVudHNbKytzdGFydFBvc2l0aW9uXVsxXSAhPT0gY3VycmVudCkge1xuICAgICAgLy8gRW1wdHkuXG4gICAgfVxuICAgIHN0YXJ0UG9zaXRpb25zLnB1c2goc3RhcnRQb3NpdGlvbilcbiAgICBpZiAoIWN1cnJlbnQuX3Rva2VuaXplcikge1xuICAgICAgc3RyZWFtID0gY29udGV4dC5zbGljZVN0cmVhbShjdXJyZW50KVxuICAgICAgaWYgKCFjdXJyZW50Lm5leHQpIHtcbiAgICAgICAgc3RyZWFtLnB1c2gobnVsbClcbiAgICAgIH1cbiAgICAgIGlmIChwcmV2aW91cykge1xuICAgICAgICB0b2tlbml6ZXIuZGVmaW5lU2tpcChjdXJyZW50LnN0YXJ0KVxuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnQuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtKSB7XG4gICAgICAgIHRva2VuaXplci5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtID0gdHJ1ZVxuICAgICAgfVxuICAgICAgdG9rZW5pemVyLndyaXRlKHN0cmVhbSlcbiAgICAgIGlmIChjdXJyZW50Ll9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSkge1xuICAgICAgICB0b2tlbml6ZXIuX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbSA9IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVucmF2ZWwgdGhlIG5leHQgdG9rZW4uXG4gICAgcHJldmlvdXMgPSBjdXJyZW50XG4gICAgY3VycmVudCA9IGN1cnJlbnQubmV4dFxuICB9XG5cbiAgLy8gTm93LCBsb29wIGJhY2sgdGhyb3VnaCBhbGwgZXZlbnRzIChhbmQgbGlua2VkIHRva2VucyksIHRvIGZpZ3VyZSBvdXQgd2hpY2hcbiAgLy8gcGFydHMgYmVsb25nIHdoZXJlLlxuICBjdXJyZW50ID0gdG9rZW5cbiAgd2hpbGUgKCsraW5kZXggPCBjaGlsZEV2ZW50cy5sZW5ndGgpIHtcbiAgICBpZiAoXG4gICAgICAvLyBGaW5kIGEgdm9pZCB0b2tlbiB0aGF0IGluY2x1ZGVzIGEgYnJlYWsuXG4gICAgICBjaGlsZEV2ZW50c1tpbmRleF1bMF0gPT09ICdleGl0JyAmJlxuICAgICAgY2hpbGRFdmVudHNbaW5kZXggLSAxXVswXSA9PT0gJ2VudGVyJyAmJlxuICAgICAgY2hpbGRFdmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IGNoaWxkRXZlbnRzW2luZGV4IC0gMV1bMV0udHlwZSAmJlxuICAgICAgY2hpbGRFdmVudHNbaW5kZXhdWzFdLnN0YXJ0LmxpbmUgIT09IGNoaWxkRXZlbnRzW2luZGV4XVsxXS5lbmQubGluZVxuICAgICkge1xuICAgICAgc3RhcnQgPSBpbmRleCArIDFcbiAgICAgIGJyZWFrcy5wdXNoKHN0YXJ0KVxuICAgICAgLy8gSGVscCBHQy5cbiAgICAgIGN1cnJlbnQuX3Rva2VuaXplciA9IHVuZGVmaW5lZFxuICAgICAgY3VycmVudC5wcmV2aW91cyA9IHVuZGVmaW5lZFxuICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dFxuICAgIH1cbiAgfVxuXG4gIC8vIEhlbHAgR0MuXG4gIHRva2VuaXplci5ldmVudHMgPSBbXVxuXG4gIC8vIElmIHRoZXJl4oCZcyBvbmUgbW9yZSB0b2tlbiAod2hpY2ggaXMgdGhlIGNhc2VzIGZvciBsaW5lcyB0aGF0IGVuZCBpbiBhblxuICAvLyBFT0YpLCB0aGF04oCZcyBwZXJmZWN0OiB0aGUgbGFzdCBwb2ludCB3ZSBmb3VuZCBzdGFydHMgaXQuXG4gIC8vIElmIHRoZXJlIGlzbuKAmXQgdGhlbiBtYWtlIHN1cmUgYW55IHJlbWFpbmluZyBjb250ZW50IGlzIGFkZGVkIHRvIGl0LlxuICBpZiAoY3VycmVudCkge1xuICAgIC8vIEhlbHAgR0MuXG4gICAgY3VycmVudC5fdG9rZW5pemVyID0gdW5kZWZpbmVkXG4gICAgY3VycmVudC5wcmV2aW91cyA9IHVuZGVmaW5lZFxuICB9IGVsc2Uge1xuICAgIGJyZWFrcy5wb3AoKVxuICB9XG5cbiAgLy8gTm93IHNwbGljZSB0aGUgZXZlbnRzIGZyb20gdGhlIHN1YnRva2VuaXplciBpbnRvIHRoZSBjdXJyZW50IGV2ZW50cyxcbiAgLy8gbW92aW5nIGJhY2sgdG8gZnJvbnQgc28gdGhhdCBzcGxpY2UgaW5kaWNlcyBhcmVu4oCZdCBhZmZlY3RlZC5cbiAgaW5kZXggPSBicmVha3MubGVuZ3RoXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgY29uc3Qgc2xpY2UgPSBjaGlsZEV2ZW50cy5zbGljZShicmVha3NbaW5kZXhdLCBicmVha3NbaW5kZXggKyAxXSlcbiAgICBjb25zdCBzdGFydCA9IHN0YXJ0UG9zaXRpb25zLnBvcCgpXG4gICAganVtcHMudW5zaGlmdChbc3RhcnQsIHN0YXJ0ICsgc2xpY2UubGVuZ3RoIC0gMV0pXG4gICAgc3BsaWNlKGV2ZW50cywgc3RhcnQsIDIsIHNsaWNlKVxuICB9XG4gIGluZGV4ID0gLTFcbiAgd2hpbGUgKCsraW5kZXggPCBqdW1wcy5sZW5ndGgpIHtcbiAgICBnYXBzW2FkanVzdCArIGp1bXBzW2luZGV4XVswXV0gPSBhZGp1c3QgKyBqdW1wc1tpbmRleF1bMV1cbiAgICBhZGp1c3QgKz0ganVtcHNbaW5kZXhdWzFdIC0ganVtcHNbaW5kZXhdWzBdIC0gMVxuICB9XG4gIHJldHVybiBnYXBzXG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge3N1YnRva2VuaXplfSBmcm9tICdtaWNyb21hcmstdXRpbC1zdWJ0b2tlbml6ZSdcbi8qKlxuICogTm8gbmFtZSBiZWNhdXNlIGl0IG11c3Qgbm90IGJlIHR1cm5lZCBvZmYuXG4gKiBAdHlwZSB7Q29uc3RydWN0fVxuICovXG5leHBvcnQgY29uc3QgY29udGVudCA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplQ29udGVudCxcbiAgcmVzb2x2ZTogcmVzb2x2ZUNvbnRlbnRcbn1cblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5jb25zdCBjb250aW51YXRpb25Db25zdHJ1Y3QgPSB7XG4gIHRva2VuaXplOiB0b2tlbml6ZUNvbnRpbnVhdGlvbixcbiAgcGFydGlhbDogdHJ1ZVxufVxuXG4vKipcbiAqIENvbnRlbnQgaXMgdHJhbnNwYXJlbnQ6IGl04oCZcyBwYXJzZWQgcmlnaHQgbm93LiBUaGF0IHdheSwgZGVmaW5pdGlvbnMgYXJlIGFsc29cbiAqIHBhcnNlZCByaWdodCBub3c6IGJlZm9yZSB0ZXh0IGluIHBhcmFncmFwaHMgKHNwZWNpZmljYWxseSwgbWVkaWEpIGFyZSBwYXJzZWQuXG4gKlxuICogQHR5cGUge1Jlc29sdmVyfVxuICovXG5mdW5jdGlvbiByZXNvbHZlQ29udGVudChldmVudHMpIHtcbiAgc3VidG9rZW5pemUoZXZlbnRzKVxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQ29udGVudChlZmZlY3RzLCBvaykge1xuICAvKiogQHR5cGUge1Rva2VuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcHJldmlvdXNcbiAgcmV0dXJuIGNodW5rU3RhcnRcblxuICAvKipcbiAgICogQmVmb3JlIGEgY29udGVudCBjaHVuay5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGFiY1xuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY2h1bmtTdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignY29udGVudCcpXG4gICAgcHJldmlvdXMgPSBlZmZlY3RzLmVudGVyKCdjaHVua0NvbnRlbnQnLCB7XG4gICAgICBjb250ZW50VHlwZTogJ2NvbnRlbnQnXG4gICAgfSlcbiAgICByZXR1cm4gY2h1bmtJbnNpZGUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBhIGNvbnRlbnQgY2h1bmsuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhYmNcbiAgICogICAgIF5eXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY2h1bmtJbnNpZGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gY29udGVudEVuZChjb2RlKVxuICAgIH1cblxuICAgIC8vIFRvIGRvOiBpbiBgbWFya2Rvd24tcnNgLCBlYWNoIGxpbmUgaXMgcGFyc2VkIG9uIGl0cyBvd24sIGFuZCBldmVyeXRoaW5nXG4gICAgLy8gaXMgc3RpdGNoZWQgdG9nZXRoZXIgcmVzb2x2aW5nLlxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBlZmZlY3RzLmNoZWNrKFxuICAgICAgICBjb250aW51YXRpb25Db25zdHJ1Y3QsXG4gICAgICAgIGNvbnRlbnRDb250aW51ZSxcbiAgICAgICAgY29udGVudEVuZFxuICAgICAgKShjb2RlKVxuICAgIH1cblxuICAgIC8vIERhdGEuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGNodW5rSW5zaWRlXG4gIH1cblxuICAvKipcbiAgICpcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGVudEVuZChjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KCdjaHVua0NvbnRlbnQnKVxuICAgIGVmZmVjdHMuZXhpdCgnY29udGVudCcpXG4gICAgcmV0dXJuIG9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICpcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGVudENvbnRpbnVlKGNvZGUpIHtcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ2NodW5rQ29udGVudCcpXG4gICAgcHJldmlvdXMubmV4dCA9IGVmZmVjdHMuZW50ZXIoJ2NodW5rQ29udGVudCcsIHtcbiAgICAgIGNvbnRlbnRUeXBlOiAnY29udGVudCcsXG4gICAgICBwcmV2aW91c1xuICAgIH0pXG4gICAgcHJldmlvdXMgPSBwcmV2aW91cy5uZXh0XG4gICAgcmV0dXJuIGNodW5rSW5zaWRlXG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVDb250aW51YXRpb24oZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICByZXR1cm4gc3RhcnRMb29rYWhlYWRcblxuICAvKipcbiAgICpcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnRMb29rYWhlYWQoY29kZSkge1xuICAgIGVmZmVjdHMuZXhpdCgnY2h1bmtDb250ZW50JylcbiAgICBlZmZlY3RzLmVudGVyKCdsaW5lRW5kaW5nJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ2xpbmVFbmRpbmcnKVxuICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgcHJlZml4ZWQsICdsaW5lUHJlZml4JylcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBwcmVmaXhlZChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cblxuICAgIGNvbnN0IHRhaWwgPSBzZWxmLmV2ZW50c1tzZWxmLmV2ZW50cy5sZW5ndGggLSAxXVxuICAgIGlmIChcbiAgICAgICFzZWxmLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygnY29kZUluZGVudGVkJykgJiZcbiAgICAgIHRhaWwgJiZcbiAgICAgIHRhaWxbMV0udHlwZSA9PT0gJ2xpbmVQcmVmaXgnICYmXG4gICAgICB0YWlsWzJdLnNsaWNlU2VyaWFsaXplKHRhaWxbMV0sIHRydWUpLmxlbmd0aCA+PSA0XG4gICAgKSB7XG4gICAgICByZXR1cm4gb2soY29kZSlcbiAgICB9XG4gICAgcmV0dXJuIGVmZmVjdHMuaW50ZXJydXB0KHNlbGYucGFyc2VyLmNvbnN0cnVjdHMuZmxvdywgbm9rLCBvaykoY29kZSlcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRWZmZWN0c30gRWZmZWN0c1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5UeXBlfSBUb2tlblR5cGVcbiAqL1xuXG5pbXBvcnQge1xuICBhc2NpaUNvbnRyb2wsXG4gIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UsXG4gIG1hcmtkb3duTGluZUVuZGluZ1xufSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG4vKipcbiAqIFBhcnNlIGRlc3RpbmF0aW9ucy5cbiAqXG4gKiAjIyMjIyMgRXhhbXBsZXNcbiAqXG4gKiBgYGBtYXJrZG93blxuICogPGE+XG4gKiA8YVxcPmI+XG4gKiA8YSBiPlxuICogPGEpPlxuICogYVxuICogYVxcKWJcbiAqIGEoYiljXG4gKiBhKGIpXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge0VmZmVjdHN9IGVmZmVjdHNcbiAqICAgQ29udGV4dC5cbiAqIEBwYXJhbSB7U3RhdGV9IG9rXG4gKiAgIFN0YXRlIHN3aXRjaGVkIHRvIHdoZW4gc3VjY2Vzc2Z1bC5cbiAqIEBwYXJhbSB7U3RhdGV9IG5va1xuICogICBTdGF0ZSBzd2l0Y2hlZCB0byB3aGVuIHVuc3VjY2Vzc2Z1bC5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSB0eXBlXG4gKiAgIFR5cGUgZm9yIHdob2xlIChgPGE+YCBvciBgYmApLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IGxpdGVyYWxUeXBlXG4gKiAgIFR5cGUgd2hlbiBlbmNsb3NlZCAoYDxhPmApLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IGxpdGVyYWxNYXJrZXJUeXBlXG4gKiAgIFR5cGUgZm9yIGVuY2xvc2luZyAoYDxgIGFuZCBgPmApLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IHJhd1R5cGVcbiAqICAgVHlwZSB3aGVuIG5vdCBlbmNsb3NlZCAoYGJgKS5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSBzdHJpbmdUeXBlXG4gKiAgIFR5cGUgZm9yIHRoZSB2YWx1ZSAoYGFgIG9yIGBiYCkuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gW21heD1JbmZpbml0eV1cbiAqICAgRGVwdGggb2YgbmVzdGVkIHBhcmVucyAoaW5jbHVzaXZlKS5cbiAqIEByZXR1cm5zIHtTdGF0ZX1cbiAqICAgU3RhcnQgc3RhdGUuXG4gKi8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1wYXJhbXNcbmV4cG9ydCBmdW5jdGlvbiBmYWN0b3J5RGVzdGluYXRpb24oXG4gIGVmZmVjdHMsXG4gIG9rLFxuICBub2ssXG4gIHR5cGUsXG4gIGxpdGVyYWxUeXBlLFxuICBsaXRlcmFsTWFya2VyVHlwZSxcbiAgcmF3VHlwZSxcbiAgc3RyaW5nVHlwZSxcbiAgbWF4XG4pIHtcbiAgY29uc3QgbGltaXQgPSBtYXggfHwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZXG4gIGxldCBiYWxhbmNlID0gMFxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YWE+XG4gICAqICAgICBeXG4gICAqID4gfCBhYVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA2MCkge1xuICAgICAgZWZmZWN0cy5lbnRlcih0eXBlKVxuICAgICAgZWZmZWN0cy5lbnRlcihsaXRlcmFsVHlwZSlcbiAgICAgIGVmZmVjdHMuZW50ZXIobGl0ZXJhbE1hcmtlclR5cGUpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdChsaXRlcmFsTWFya2VyVHlwZSlcbiAgICAgIHJldHVybiBlbmNsb3NlZEJlZm9yZVxuICAgIH1cblxuICAgIC8vIEFTQ0lJIGNvbnRyb2wsIHNwYWNlLCBjbG9zaW5nIHBhcmVuLlxuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDMyIHx8IGNvZGUgPT09IDQxIHx8IGFzY2lpQ29udHJvbChjb2RlKSkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKHR5cGUpXG4gICAgZWZmZWN0cy5lbnRlcihyYXdUeXBlKVxuICAgIGVmZmVjdHMuZW50ZXIoc3RyaW5nVHlwZSlcbiAgICBlZmZlY3RzLmVudGVyKCdjaHVua1N0cmluZycsIHtcbiAgICAgIGNvbnRlbnRUeXBlOiAnc3RyaW5nJ1xuICAgIH0pXG4gICAgcmV0dXJuIHJhdyhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8YCwgYXQgYW4gZW5jbG9zZWQgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YWE+XG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW5jbG9zZWRCZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA2Mikge1xuICAgICAgZWZmZWN0cy5lbnRlcihsaXRlcmFsTWFya2VyVHlwZSlcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KGxpdGVyYWxNYXJrZXJUeXBlKVxuICAgICAgZWZmZWN0cy5leGl0KGxpdGVyYWxUeXBlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGUpXG4gICAgICByZXR1cm4gb2tcbiAgICB9XG4gICAgZWZmZWN0cy5lbnRlcihzdHJpbmdUeXBlKVxuICAgIGVmZmVjdHMuZW50ZXIoJ2NodW5rU3RyaW5nJywge1xuICAgICAgY29udGVudFR5cGU6ICdzdHJpbmcnXG4gICAgfSlcbiAgICByZXR1cm4gZW5jbG9zZWQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBlbmNsb3NlZCBkZXN0aW5hdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhYT5cbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBlbmNsb3NlZChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDYyKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2NodW5rU3RyaW5nJylcbiAgICAgIGVmZmVjdHMuZXhpdChzdHJpbmdUeXBlKVxuICAgICAgcmV0dXJuIGVuY2xvc2VkQmVmb3JlKGNvZGUpXG4gICAgfVxuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDYwIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gY29kZSA9PT0gOTIgPyBlbmNsb3NlZEVzY2FwZSA6IGVuY2xvc2VkXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYFxcYCwgYXQgYSBzcGVjaWFsIGNoYXJhY3Rlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhXFwqYT5cbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVuY2xvc2VkRXNjYXBlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjAgfHwgY29kZSA9PT0gNjIgfHwgY29kZSA9PT0gOTIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGVuY2xvc2VkXG4gICAgfVxuICAgIHJldHVybiBlbmNsb3NlZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHJhdyBkZXN0aW5hdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGFhXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByYXcoY29kZSkge1xuICAgIGlmIChcbiAgICAgICFiYWxhbmNlICYmXG4gICAgICAoY29kZSA9PT0gbnVsbCB8fCBjb2RlID09PSA0MSB8fCBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpKVxuICAgICkge1xuICAgICAgZWZmZWN0cy5leGl0KCdjaHVua1N0cmluZycpXG4gICAgICBlZmZlY3RzLmV4aXQoc3RyaW5nVHlwZSlcbiAgICAgIGVmZmVjdHMuZXhpdChyYXdUeXBlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGUpXG4gICAgICByZXR1cm4gb2soY29kZSlcbiAgICB9XG4gICAgaWYgKGJhbGFuY2UgPCBsaW1pdCAmJiBjb2RlID09PSA0MCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBiYWxhbmNlKytcbiAgICAgIHJldHVybiByYXdcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDQxKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGJhbGFuY2UtLVxuICAgICAgcmV0dXJuIHJhd1xuICAgIH1cblxuICAgIC8vIEFTQ0lJIGNvbnRyb2wgKGJ1dCAqbm90KiBgXFwwYCkgYW5kIHNwYWNlIGFuZCBgKGAuXG4gICAgLy8gTm90ZTogaW4gYG1hcmtkb3duLXJzYCwgYFxcMGAgZXhpc3RzIGluIGNvZGVzLCBpbiBgbWljcm9tYXJrLWpzYCBpdFxuICAgIC8vIGRvZXNu4oCZdC5cbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBjb2RlID09PSAzMiB8fCBjb2RlID09PSA0MCB8fCBhc2NpaUNvbnRyb2woY29kZSkpIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGNvZGUgPT09IDkyID8gcmF3RXNjYXBlIDogcmF3XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYFxcYCwgYXQgc3BlY2lhbCBjaGFyYWN0ZXIuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhXFwqYVxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByYXdFc2NhcGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0MCB8fCBjb2RlID09PSA0MSB8fCBjb2RlID09PSA5Mikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gcmF3XG4gICAgfVxuICAgIHJldHVybiByYXcoY29kZSlcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRWZmZWN0c30gRWZmZWN0c1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5UeXBlfSBUb2tlblR5cGVcbiAqL1xuXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZywgbWFya2Rvd25TcGFjZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuLyoqXG4gKiBQYXJzZSBsYWJlbHMuXG4gKlxuICogPiDwn5GJICoqTm90ZSoqOiBsYWJlbHMgaW4gbWFya2Rvd24gYXJlIGNhcHBlZCBhdCA5OTkgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLlxuICpcbiAqICMjIyMjIyBFeGFtcGxlc1xuICpcbiAqIGBgYG1hcmtkb3duXG4gKiBbYV1cbiAqIFthXG4gKiBiXVxuICogW2FcXF1iXVxuICogYGBgXG4gKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqICAgVG9rZW5pemUgY29udGV4dC5cbiAqIEBwYXJhbSB7RWZmZWN0c30gZWZmZWN0c1xuICogICBDb250ZXh0LlxuICogQHBhcmFtIHtTdGF0ZX0gb2tcbiAqICAgU3RhdGUgc3dpdGNoZWQgdG8gd2hlbiBzdWNjZXNzZnVsLlxuICogQHBhcmFtIHtTdGF0ZX0gbm9rXG4gKiAgIFN0YXRlIHN3aXRjaGVkIHRvIHdoZW4gdW5zdWNjZXNzZnVsLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IHR5cGVcbiAqICAgVHlwZSBvZiB0aGUgd2hvbGUgbGFiZWwgKGBbYV1gKS5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSBtYXJrZXJUeXBlXG4gKiAgIFR5cGUgZm9yIHRoZSBtYXJrZXJzIChgW2AgYW5kIGBdYCkuXG4gKiBAcGFyYW0ge1Rva2VuVHlwZX0gc3RyaW5nVHlwZVxuICogICBUeXBlIGZvciB0aGUgaWRlbnRpZmllciAoYGFgKS5cbiAqIEByZXR1cm5zIHtTdGF0ZX1cbiAqICAgU3RhcnQgc3RhdGUuXG4gKi8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1wYXJhbXNcbmV4cG9ydCBmdW5jdGlvbiBmYWN0b3J5TGFiZWwoZWZmZWN0cywgb2ssIG5vaywgdHlwZSwgbWFya2VyVHlwZSwgc3RyaW5nVHlwZSkge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICBsZXQgc2l6ZSA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgc2VlblxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgbGFiZWwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV1cbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKHR5cGUpXG4gICAgZWZmZWN0cy5lbnRlcihtYXJrZXJUeXBlKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdChtYXJrZXJUeXBlKVxuICAgIGVmZmVjdHMuZW50ZXIoc3RyaW5nVHlwZSlcbiAgICByZXR1cm4gYXRCcmVha1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCBhdCBzb21ldGhpbmcsIGJlZm9yZSBzb21ldGhpbmcgZWxzZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXVxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGF0QnJlYWsoY29kZSkge1xuICAgIGlmIChcbiAgICAgIHNpemUgPiA5OTkgfHxcbiAgICAgIGNvZGUgPT09IG51bGwgfHxcbiAgICAgIGNvZGUgPT09IDkxIHx8XG4gICAgICAoY29kZSA9PT0gOTMgJiYgIXNlZW4pIHx8XG4gICAgICAvLyBUbyBkbzogcmVtb3ZlIGluIHRoZSBmdXR1cmUgb25jZSB3ZeKAmXZlIHN3aXRjaGVkIGZyb21cbiAgICAgIC8vIGBtaWNyb21hcmstZXh0ZW5zaW9uLWZvb3Rub3RlYCB0byBgbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGVgLFxuICAgICAgLy8gd2hpY2ggZG9lc27igJl0IG5lZWQgdGhpcy5cbiAgICAgIC8vIEhpZGRlbiBmb290bm90ZXMgaG9vay5cbiAgICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICAgIChjb2RlID09PSA5NCAmJlxuICAgICAgICAhc2l6ZSAmJlxuICAgICAgICAnX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCcgaW4gc2VsZi5wYXJzZXIuY29uc3RydWN0cylcbiAgICApIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDkzKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoc3RyaW5nVHlwZSlcbiAgICAgIGVmZmVjdHMuZW50ZXIobWFya2VyVHlwZSlcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KG1hcmtlclR5cGUpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZSlcbiAgICAgIHJldHVybiBva1xuICAgIH1cblxuICAgIC8vIFRvIGRvOiBpbmRlbnQ/IExpbmsgY2h1bmtzIGFuZCBFT0xzIHRvZ2V0aGVyP1xuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2xpbmVFbmRpbmcnKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2xpbmVFbmRpbmcnKVxuICAgICAgcmV0dXJuIGF0QnJlYWtcbiAgICB9XG4gICAgZWZmZWN0cy5lbnRlcignY2h1bmtTdHJpbmcnLCB7XG4gICAgICBjb250ZW50VHlwZTogJ3N0cmluZydcbiAgICB9KVxuICAgIHJldHVybiBsYWJlbEluc2lkZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCBpbiB0ZXh0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdXG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxJbnNpZGUoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IG51bGwgfHxcbiAgICAgIGNvZGUgPT09IDkxIHx8XG4gICAgICBjb2RlID09PSA5MyB8fFxuICAgICAgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpIHx8XG4gICAgICBzaXplKysgPiA5OTlcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuZXhpdCgnY2h1bmtTdHJpbmcnKVxuICAgICAgcmV0dXJuIGF0QnJlYWsoY29kZSlcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgaWYgKCFzZWVuKSBzZWVuID0gIW1hcmtkb3duU3BhY2UoY29kZSlcbiAgICByZXR1cm4gY29kZSA9PT0gOTIgPyBsYWJlbEVzY2FwZSA6IGxhYmVsSW5zaWRlXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYFxcYCwgYXQgYSBzcGVjaWFsIGNoYXJhY3Rlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXFwqYV1cbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGxhYmVsRXNjYXBlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gOTEgfHwgY29kZSA9PT0gOTIgfHwgY29kZSA9PT0gOTMpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgc2l6ZSsrXG4gICAgICByZXR1cm4gbGFiZWxJbnNpZGVcbiAgICB9XG4gICAgcmV0dXJuIGxhYmVsSW5zaWRlKGNvZGUpXG4gIH1cbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRWZmZWN0c30gRWZmZWN0c1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5UeXBlfSBUb2tlblR5cGVcbiAqL1xuXG5pbXBvcnQge2ZhY3RvcnlTcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZ30gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuLyoqXG4gKiBQYXJzZSB0aXRsZXMuXG4gKlxuICogIyMjIyMjIEV4YW1wbGVzXG4gKlxuICogYGBgbWFya2Rvd25cbiAqIFwiYVwiXG4gKiAnYidcbiAqIChjKVxuICogXCJhXG4gKiBiXCJcbiAqICdhXG4gKiAgICAgYidcbiAqIChhXFwpYilcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7RWZmZWN0c30gZWZmZWN0c1xuICogICBDb250ZXh0LlxuICogQHBhcmFtIHtTdGF0ZX0gb2tcbiAqICAgU3RhdGUgc3dpdGNoZWQgdG8gd2hlbiBzdWNjZXNzZnVsLlxuICogQHBhcmFtIHtTdGF0ZX0gbm9rXG4gKiAgIFN0YXRlIHN3aXRjaGVkIHRvIHdoZW4gdW5zdWNjZXNzZnVsLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IHR5cGVcbiAqICAgVHlwZSBvZiB0aGUgd2hvbGUgdGl0bGUgKGBcImFcImAsIGAnYidgLCBgKGMpYCkuXG4gKiBAcGFyYW0ge1Rva2VuVHlwZX0gbWFya2VyVHlwZVxuICogICBUeXBlIGZvciB0aGUgbWFya2VycyAoYFwiYCwgYCdgLCBgKGAsIGFuZCBgKWApLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IHN0cmluZ1R5cGVcbiAqICAgVHlwZSBmb3IgdGhlIHZhbHVlIChgYWApLlxuICogQHJldHVybnMge1N0YXRlfVxuICogICBTdGFydCBzdGF0ZS5cbiAqLyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXBhcmFtc1xuZXhwb3J0IGZ1bmN0aW9uIGZhY3RvcnlUaXRsZShlZmZlY3RzLCBvaywgbm9rLCB0eXBlLCBtYXJrZXJUeXBlLCBzdHJpbmdUeXBlKSB7XG4gIC8qKiBAdHlwZSB7Tm9uTnVsbGFibGU8Q29kZT59ICovXG4gIGxldCBtYXJrZXJcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIHRpdGxlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgXCJhXCJcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gMzQgfHwgY29kZSA9PT0gMzkgfHwgY29kZSA9PT0gNDApIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIodHlwZSlcbiAgICAgIGVmZmVjdHMuZW50ZXIobWFya2VyVHlwZSlcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KG1hcmtlclR5cGUpXG4gICAgICBtYXJrZXIgPSBjb2RlID09PSA0MCA/IDQxIDogY29kZVxuICAgICAgcmV0dXJuIGJlZ2luXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBvcGVuaW5nIG1hcmtlci5cbiAgICpcbiAgICogVGhpcyBpcyBhbHNvIHVzZWQgYXQgdGhlIGNsb3NpbmcgbWFya2VyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgXCJhXCJcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBiZWdpbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgZWZmZWN0cy5lbnRlcihtYXJrZXJUeXBlKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQobWFya2VyVHlwZSlcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlKVxuICAgICAgcmV0dXJuIG9rXG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoc3RyaW5nVHlwZSlcbiAgICByZXR1cm4gYXRCcmVhayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IHNvbWV0aGluZywgYmVmb3JlIHNvbWV0aGluZyBlbHNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgXCJhXCJcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhdEJyZWFrKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoc3RyaW5nVHlwZSlcbiAgICAgIHJldHVybiBiZWdpbihtYXJrZXIpXG4gICAgfVxuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gTm90ZTogYmxhbmsgbGluZXMgY2Fu4oCZdCBleGlzdCBpbiBjb250ZW50LlxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIC8vIFRvIGRvOiB1c2UgYHNwYWNlX29yX3RhYl9lb2xfd2l0aF9vcHRpb25zYCwgY29ubmVjdC5cbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2xpbmVFbmRpbmcnKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2xpbmVFbmRpbmcnKVxuICAgICAgcmV0dXJuIGZhY3RvcnlTcGFjZShlZmZlY3RzLCBhdEJyZWFrLCAnbGluZVByZWZpeCcpXG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoJ2NodW5rU3RyaW5nJywge1xuICAgICAgY29udGVudFR5cGU6ICdzdHJpbmcnXG4gICAgfSlcbiAgICByZXR1cm4gaW5zaWRlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICpcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyIHx8IGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2NodW5rU3RyaW5nJylcbiAgICAgIHJldHVybiBhdEJyZWFrKGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb2RlID09PSA5MiA/IGVzY2FwZSA6IGluc2lkZVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGBcXGAsIGF0IGEgc3BlY2lhbCBjaGFyYWN0ZXIuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBcImFcXCpiXCJcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBlc2NhcGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBtYXJrZXIgfHwgY29kZSA9PT0gOTIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGluc2lkZVxuICAgIH1cbiAgICByZXR1cm4gaW5zaWRlKGNvZGUpXG4gIH1cbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkVmZmVjdHN9IEVmZmVjdHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcidcbi8qKlxuICogUGFyc2Ugc3BhY2VzIGFuZCB0YWJzLlxuICpcbiAqIFRoZXJlIGlzIG5vIGBub2tgIHBhcmFtZXRlcjpcbiAqXG4gKiAqICAgbGluZSBlbmRpbmdzIG9yIHNwYWNlcyBpbiBtYXJrZG93biBhcmUgb2Z0ZW4gb3B0aW9uYWwsIGluIHdoaWNoIGNhc2UgdGhpc1xuICogICAgIGZhY3RvcnkgY2FuIGJlIHVzZWQgYW5kIGBva2Agd2lsbCBiZSBzd2l0Y2hlZCB0byB3aGV0aGVyIHNwYWNlcyB3ZXJlIGZvdW5kXG4gKiAgICAgb3Igbm90XG4gKiAqICAgb25lIGxpbmUgZW5kaW5nIG9yIHNwYWNlIGNhbiBiZSBkZXRlY3RlZCB3aXRoXG4gKiAgICAgYG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSlgIHJpZ2h0IGJlZm9yZSB1c2luZyBgZmFjdG9yeVdoaXRlc3BhY2VgXG4gKlxuICogQHBhcmFtIHtFZmZlY3RzfSBlZmZlY3RzXG4gKiAgIENvbnRleHQuXG4gKiBAcGFyYW0ge1N0YXRlfSBva1xuICogICBTdGF0ZSBzd2l0Y2hlZCB0byB3aGVuIHN1Y2Nlc3NmdWwuXG4gKiBAcmV0dXJuc1xuICogICBTdGFydCBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZhY3RvcnlXaGl0ZXNwYWNlKGVmZmVjdHMsIG9rKSB7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IHNlZW5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2xpbmVFbmRpbmcnKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2xpbmVFbmRpbmcnKVxuICAgICAgc2VlbiA9IHRydWVcbiAgICAgIHJldHVybiBzdGFydFxuICAgIH1cbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgcmV0dXJuIGZhY3RvcnlTcGFjZShcbiAgICAgICAgZWZmZWN0cyxcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIHNlZW4gPyAnbGluZVByZWZpeCcgOiAnbGluZVN1ZmZpeCdcbiAgICAgICkoY29kZSlcbiAgICB9XG4gICAgcmV0dXJuIG9rKGNvZGUpXG4gIH1cbn1cbiIsCiAgICAiLyoqXG4gKiBOb3JtYWxpemUgYW4gaWRlbnRpZmllciAoYXMgZm91bmQgaW4gcmVmZXJlbmNlcywgZGVmaW5pdGlvbnMpLlxuICpcbiAqIENvbGxhcHNlcyBtYXJrZG93biB3aGl0ZXNwYWNlLCB0cmltLCBhbmQgdGhlbiBsb3dlci0gYW5kIHVwcGVyY2FzZS5cbiAqXG4gKiBTb21lIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQg4oCcdXBwZXJjYXNl4oCdLCBzdWNoIGFzIFUrMDNGNCAoYM+0YCksIGJ1dCBpZiB0aGVpclxuICogbG93ZXJjYXNlIGNvdW50ZXJwYXJ0IChVKzAzQjggKGDOuGApKSBpcyB1cHBlcmNhc2VkIHdpbGwgcmVzdWx0IGluIGEgZGlmZmVyZW50XG4gKiB1cHBlcmNhc2UgY2hhcmFjdGVyIChVKzAzOTggKGDOmGApKS5cbiAqIFNvLCB0byBnZXQgYSBjYW5vbmljYWwgZm9ybSwgd2UgcGVyZm9ybSBib3RoIGxvd2VyLSBhbmQgdXBwZXJjYXNlLlxuICpcbiAqIFVzaW5nIHVwcGVyY2FzZSBsYXN0IG1ha2VzIHN1cmUga2V5cyB3aWxsIG5ldmVyIGludGVyYWN0IHdpdGggZGVmYXVsdFxuICogcHJvdG90eXBhbCB2YWx1ZXMgKHN1Y2ggYXMgYGNvbnN0cnVjdG9yYCk6IG5vdGhpbmcgaW4gdGhlIHByb3RvdHlwZSBvZlxuICogYE9iamVjdGAgaXMgdXBwZXJjYXNlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBJZGVudGlmaWVyIHRvIG5vcm1hbGl6ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIE5vcm1hbGl6ZWQgaWRlbnRpZmllci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUlkZW50aWZpZXIodmFsdWUpIHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZVxuICAgICAgLy8gQ29sbGFwc2UgbWFya2Rvd24gd2hpdGVzcGFjZS5cbiAgICAgIC5yZXBsYWNlKC9bXFx0XFxuXFxyIF0rL2csICcgJylcbiAgICAgIC8vIFRyaW0uXG4gICAgICAucmVwbGFjZSgvXiB8ICQvZywgJycpXG4gICAgICAvLyBTb21lIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQg4oCcdXBwZXJjYXNl4oCdLCBidXQgaWYgdGhlaXIgbG93ZXJjYXNlXG4gICAgICAvLyBjb3VudGVycGFydCBpcyB1cHBlcmNhc2VkIHdpbGwgcmVzdWx0IGluIGEgZGlmZmVyZW50IHVwcGVyY2FzZVxuICAgICAgLy8gY2hhcmFjdGVyLlxuICAgICAgLy8gSGVuY2UsIHRvIGdldCB0aGF0IGZvcm0sIHdlIHBlcmZvcm0gYm90aCBsb3dlci0gYW5kIHVwcGVyY2FzZS5cbiAgICAgIC8vIFVwcGVyIGNhc2UgbWFrZXMgc3VyZSBrZXlzIHdpbGwgbm90IGludGVyYWN0IHdpdGggZGVmYXVsdCBwcm90b3R5cGFsXG4gICAgICAvLyBtZXRob2RzOiBubyBtZXRob2QgaXMgdXBwZXJjYXNlLlxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC50b1VwcGVyQ2FzZSgpXG4gIClcbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnN0cnVjdH0gQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7ZmFjdG9yeURlc3RpbmF0aW9ufSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1kZXN0aW5hdGlvbidcbmltcG9ydCB7ZmFjdG9yeUxhYmVsfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1sYWJlbCdcbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7ZmFjdG9yeVRpdGxlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS10aXRsZSdcbmltcG9ydCB7ZmFjdG9yeVdoaXRlc3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXdoaXRlc3BhY2UnXG5pbXBvcnQge1xuICBtYXJrZG93bkxpbmVFbmRpbmcsXG4gIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UsXG4gIG1hcmtkb3duU3BhY2Vcbn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHtub3JtYWxpemVJZGVudGlmaWVyfSBmcm9tICdtaWNyb21hcmstdXRpbC1ub3JtYWxpemUtaWRlbnRpZmllcidcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGRlZmluaXRpb24gPSB7XG4gIG5hbWU6ICdkZWZpbml0aW9uJyxcbiAgdG9rZW5pemU6IHRva2VuaXplRGVmaW5pdGlvblxufVxuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IHRpdGxlQmVmb3JlID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVUaXRsZUJlZm9yZSxcbiAgcGFydGlhbDogdHJ1ZVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZURlZmluaXRpb24oZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGlkZW50aWZpZXJcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIEF0IHN0YXJ0IG9mIGEgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYiBcImNcIlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIC8vIERvIG5vdCBpbnRlcnJ1cHQgcGFyYWdyYXBocyAoYnV0IGRvIGZvbGxvdyBkZWZpbml0aW9ucykuXG4gICAgLy8gVG8gZG86IGRvIGBpbnRlcnJ1cHRgIHRoZSB3YXkgYG1hcmtkb3duLXJzYCBkb2VzLlxuICAgIC8vIFRvIGRvOiBwYXJzZSB3aGl0ZXNwYWNlIHRoZSB3YXkgYG1hcmtkb3duLXJzYCBkb2VzLlxuICAgIGVmZmVjdHMuZW50ZXIoJ2RlZmluaXRpb24nKVxuICAgIHJldHVybiBiZWZvcmUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLCBhdCBgW2AuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZShjb2RlKSB7XG4gICAgLy8gVG8gZG86IHBhcnNlIHdoaXRlc3BhY2UgdGhlIHdheSBgbWFya2Rvd24tcnNgIGRvZXMuXG5cbiAgICByZXR1cm4gZmFjdG9yeUxhYmVsLmNhbGwoXG4gICAgICBzZWxmLFxuICAgICAgZWZmZWN0cyxcbiAgICAgIGxhYmVsQWZ0ZXIsXG4gICAgICAvLyBOb3RlOiB3ZSBkb27igJl0IG5lZWQgdG8gcmVzZXQgdGhlIHdheSBgbWFya2Rvd24tcnNgIGRvZXMuXG4gICAgICBub2ssXG4gICAgICAnZGVmaW5pdGlvbkxhYmVsJyxcbiAgICAgICdkZWZpbml0aW9uTGFiZWxNYXJrZXInLFxuICAgICAgJ2RlZmluaXRpb25MYWJlbFN0cmluZydcbiAgICApKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgbGFiZWwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGxhYmVsQWZ0ZXIoY29kZSkge1xuICAgIGlkZW50aWZpZXIgPSBub3JtYWxpemVJZGVudGlmaWVyKFxuICAgICAgc2VsZi5zbGljZVNlcmlhbGl6ZShzZWxmLmV2ZW50c1tzZWxmLmV2ZW50cy5sZW5ndGggLSAxXVsxXSkuc2xpY2UoMSwgLTEpXG4gICAgKVxuICAgIGlmIChjb2RlID09PSA1OCkge1xuICAgICAgZWZmZWN0cy5lbnRlcignZGVmaW5pdGlvbk1hcmtlcicpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnZGVmaW5pdGlvbk1hcmtlcicpXG4gICAgICByZXR1cm4gbWFya2VyQWZ0ZXJcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIG1hcmtlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYiBcImNcIlxuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG1hcmtlckFmdGVyKGNvZGUpIHtcbiAgICAvLyBOb3RlOiB3aGl0ZXNwYWNlIGlzIG9wdGlvbmFsLlxuICAgIHJldHVybiBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpXG4gICAgICA/IGZhY3RvcnlXaGl0ZXNwYWNlKGVmZmVjdHMsIGRlc3RpbmF0aW9uQmVmb3JlKShjb2RlKVxuICAgICAgOiBkZXN0aW5hdGlvbkJlZm9yZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEJlZm9yZSBkZXN0aW5hdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYiBcImNcIlxuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkZXN0aW5hdGlvbkJlZm9yZShjb2RlKSB7XG4gICAgcmV0dXJuIGZhY3RvcnlEZXN0aW5hdGlvbihcbiAgICAgIGVmZmVjdHMsXG4gICAgICBkZXN0aW5hdGlvbkFmdGVyLFxuICAgICAgLy8gTm90ZTogd2UgZG9u4oCZdCBuZWVkIHRvIHJlc2V0IHRoZSB3YXkgYG1hcmtkb3duLXJzYCBkb2VzLlxuICAgICAgbm9rLFxuICAgICAgJ2RlZmluaXRpb25EZXN0aW5hdGlvbicsXG4gICAgICAnZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbCcsXG4gICAgICAnZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlcicsXG4gICAgICAnZGVmaW5pdGlvbkRlc3RpbmF0aW9uUmF3JyxcbiAgICAgICdkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmcnXG4gICAgKShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkZXN0aW5hdGlvbkFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KHRpdGxlQmVmb3JlLCBhZnRlciwgYWZ0ZXIpKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYlxuICAgKiAgICAgICAgICAgXlxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXIoY29kZSkge1xuICAgIHJldHVybiBtYXJrZG93blNwYWNlKGNvZGUpXG4gICAgICA/IGZhY3RvcnlTcGFjZShlZmZlY3RzLCBhZnRlcldoaXRlc3BhY2UsICd3aGl0ZXNwYWNlJykoY29kZSlcbiAgICAgIDogYWZ0ZXJXaGl0ZXNwYWNlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZGVmaW5pdGlvbiwgYWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYlxuICAgKiAgICAgICAgICAgXlxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXJXaGl0ZXNwYWNlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCgnZGVmaW5pdGlvbicpXG5cbiAgICAgIC8vIE5vdGU6IHdlIGRvbuKAmXQgY2FyZSBhYm91dCB1bmlxdWVuZXNzLlxuICAgICAgLy8gSXTigJlzIGxpa2VseSB0aGF0IHRoYXQgZG9lc27igJl0IGhhcHBlbiB2ZXJ5IGZyZXF1ZW50bHkuXG4gICAgICAvLyBJdCBpcyBtb3JlIGxpa2VseSB0aGF0IGl0IHdhc3RlcyBwcmVjaW91cyB0aW1lLlxuICAgICAgc2VsZi5wYXJzZXIuZGVmaW5lZC5wdXNoKGlkZW50aWZpZXIpXG5cbiAgICAgIC8vIFRvIGRvOiBgbWFya2Rvd24tcnNgIGludGVycnVwdC5cbiAgICAgIC8vIC8vIFlvdeKAmWQgYmUgaW50ZXJydXB0aW5nLlxuICAgICAgLy8gdG9rZW5pemVyLmludGVycnVwdCA9IHRydWVcbiAgICAgIHJldHVybiBvayhjb2RlKVxuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVUaXRsZUJlZm9yZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiB0aXRsZUJlZm9yZVxuXG4gIC8qKlxuICAgKiBBZnRlciBkZXN0aW5hdGlvbiwgYXQgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYlxuICAgKiAgICAgICAgICAgXlxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0aXRsZUJlZm9yZShjb2RlKSB7XG4gICAgcmV0dXJuIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSlcbiAgICAgID8gZmFjdG9yeVdoaXRlc3BhY2UoZWZmZWN0cywgYmVmb3JlTWFya2VyKShjb2RlKVxuICAgICAgOiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCB0aXRsZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IFthXTogYlxuICAgKiA+IHwgXCJjXCJcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZU1hcmtlcihjb2RlKSB7XG4gICAgcmV0dXJuIGZhY3RvcnlUaXRsZShcbiAgICAgIGVmZmVjdHMsXG4gICAgICB0aXRsZUFmdGVyLFxuICAgICAgbm9rLFxuICAgICAgJ2RlZmluaXRpb25UaXRsZScsXG4gICAgICAnZGVmaW5pdGlvblRpdGxlTWFya2VyJyxcbiAgICAgICdkZWZpbml0aW9uVGl0bGVTdHJpbmcnXG4gICAgKShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIHRpdGxlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGl0bGVBZnRlcihjb2RlKSB7XG4gICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICAgID8gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIHRpdGxlQWZ0ZXJPcHRpb25hbFdoaXRlc3BhY2UsICd3aGl0ZXNwYWNlJykoY29kZSlcbiAgICAgIDogdGl0bGVBZnRlck9wdGlvbmFsV2hpdGVzcGFjZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIHRpdGxlLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGl0bGVBZnRlck9wdGlvbmFsV2hpdGVzcGFjZShjb2RlKSB7XG4gICAgcmV0dXJuIGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpID8gb2soY29kZSkgOiBub2soY29kZSlcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmd9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcidcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGhhcmRCcmVha0VzY2FwZSA9IHtcbiAgbmFtZTogJ2hhcmRCcmVha0VzY2FwZScsXG4gIHRva2VuaXplOiB0b2tlbml6ZUhhcmRCcmVha0VzY2FwZVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUhhcmRCcmVha0VzY2FwZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBhIGhhcmQgYnJlYWsgKGVzY2FwZSkuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhXFxcbiAgICogICAgICBeXG4gICAqICAgfCBiXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignaGFyZEJyZWFrRXNjYXBlJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gYWZ0ZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXFxgLCBhdCBlb2wuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhXFxcbiAgICogICAgICAgXlxuICAgKiAgIHwgYlxuICAgKiBgYGBcbiAgICpcbiAgICogIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2hhcmRCcmVha0VzY2FwZScpXG4gICAgICByZXR1cm4gb2soY29kZSlcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7XG4gIG1hcmtkb3duTGluZUVuZGluZyxcbiAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSxcbiAgbWFya2Rvd25TcGFjZVxufSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge3NwbGljZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2h1bmtlZCdcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGhlYWRpbmdBdHggPSB7XG4gIG5hbWU6ICdoZWFkaW5nQXR4JyxcbiAgdG9rZW5pemU6IHRva2VuaXplSGVhZGluZ0F0eCxcbiAgcmVzb2x2ZTogcmVzb2x2ZUhlYWRpbmdBdHhcbn1cblxuLyoqIEB0eXBlIHtSZXNvbHZlcn0gKi9cbmZ1bmN0aW9uIHJlc29sdmVIZWFkaW5nQXR4KGV2ZW50cywgY29udGV4dCkge1xuICBsZXQgY29udGVudEVuZCA9IGV2ZW50cy5sZW5ndGggLSAyXG4gIGxldCBjb250ZW50U3RhcnQgPSAzXG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGxldCBjb250ZW50XG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGxldCB0ZXh0XG5cbiAgLy8gUHJlZml4IHdoaXRlc3BhY2UsIHBhcnQgb2YgdGhlIG9wZW5pbmcuXG4gIGlmIChldmVudHNbY29udGVudFN0YXJ0XVsxXS50eXBlID09PSAnd2hpdGVzcGFjZScpIHtcbiAgICBjb250ZW50U3RhcnQgKz0gMlxuICB9XG5cbiAgLy8gU3VmZml4IHdoaXRlc3BhY2UsIHBhcnQgb2YgdGhlIGNsb3NpbmcuXG4gIGlmIChcbiAgICBjb250ZW50RW5kIC0gMiA+IGNvbnRlbnRTdGFydCAmJlxuICAgIGV2ZW50c1tjb250ZW50RW5kXVsxXS50eXBlID09PSAnd2hpdGVzcGFjZSdcbiAgKSB7XG4gICAgY29udGVudEVuZCAtPSAyXG4gIH1cbiAgaWYgKFxuICAgIGV2ZW50c1tjb250ZW50RW5kXVsxXS50eXBlID09PSAnYXR4SGVhZGluZ1NlcXVlbmNlJyAmJlxuICAgIChjb250ZW50U3RhcnQgPT09IGNvbnRlbnRFbmQgLSAxIHx8XG4gICAgICAoY29udGVudEVuZCAtIDQgPiBjb250ZW50U3RhcnQgJiZcbiAgICAgICAgZXZlbnRzW2NvbnRlbnRFbmQgLSAyXVsxXS50eXBlID09PSAnd2hpdGVzcGFjZScpKVxuICApIHtcbiAgICBjb250ZW50RW5kIC09IGNvbnRlbnRTdGFydCArIDEgPT09IGNvbnRlbnRFbmQgPyAyIDogNFxuICB9XG4gIGlmIChjb250ZW50RW5kID4gY29udGVudFN0YXJ0KSB7XG4gICAgY29udGVudCA9IHtcbiAgICAgIHR5cGU6ICdhdHhIZWFkaW5nVGV4dCcsXG4gICAgICBzdGFydDogZXZlbnRzW2NvbnRlbnRTdGFydF1bMV0uc3RhcnQsXG4gICAgICBlbmQ6IGV2ZW50c1tjb250ZW50RW5kXVsxXS5lbmRcbiAgICB9XG4gICAgdGV4dCA9IHtcbiAgICAgIHR5cGU6ICdjaHVua1RleHQnLFxuICAgICAgc3RhcnQ6IGV2ZW50c1tjb250ZW50U3RhcnRdWzFdLnN0YXJ0LFxuICAgICAgZW5kOiBldmVudHNbY29udGVudEVuZF1bMV0uZW5kLFxuICAgICAgY29udGVudFR5cGU6ICd0ZXh0J1xuICAgIH1cbiAgICBzcGxpY2UoZXZlbnRzLCBjb250ZW50U3RhcnQsIGNvbnRlbnRFbmQgLSBjb250ZW50U3RhcnQgKyAxLCBbXG4gICAgICBbJ2VudGVyJywgY29udGVudCwgY29udGV4dF0sXG4gICAgICBbJ2VudGVyJywgdGV4dCwgY29udGV4dF0sXG4gICAgICBbJ2V4aXQnLCB0ZXh0LCBjb250ZXh0XSxcbiAgICAgIFsnZXhpdCcsIGNvbnRlbnQsIGNvbnRleHRdXG4gICAgXSlcbiAgfVxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplSGVhZGluZ0F0eChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGxldCBzaXplID0gMFxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgYSBoZWFkaW5nIChhdHgpLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgIyMgYWFcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAvLyBUbyBkbzogcGFyc2UgaW5kZW50IGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICBlZmZlY3RzLmVudGVyKCdhdHhIZWFkaW5nJylcbiAgICByZXR1cm4gYmVmb3JlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZSwgYXQgYCNgLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgIyMgYWFcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZShjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignYXR4SGVhZGluZ1NlcXVlbmNlJylcbiAgICByZXR1cm4gc2VxdWVuY2VPcGVuKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gb3BlbmluZyBzZXF1ZW5jZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICMjIGFhXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzZXF1ZW5jZU9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSAzNSAmJiBzaXplKysgPCA2KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBzZXF1ZW5jZU9wZW5cbiAgICB9XG5cbiAgICAvLyBBbHdheXMgYXQgbGVhc3Qgb25lIGAjYC5cbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2F0eEhlYWRpbmdTZXF1ZW5jZScpXG4gICAgICByZXR1cm4gYXRCcmVhayhjb2RlKVxuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgc29tZXRoaW5nLCBiZWZvcmUgc29tZXRoaW5nIGVsc2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAjIyBhYVxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhdEJyZWFrKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gMzUpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2F0eEhlYWRpbmdTZXF1ZW5jZScpXG4gICAgICByZXR1cm4gc2VxdWVuY2VGdXJ0aGVyKGNvZGUpXG4gICAgfVxuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KCdhdHhIZWFkaW5nJylcbiAgICAgIC8vIFRvIGRvOiBpbnRlcnJ1cHQgbGlrZSBgbWFya2Rvd24tcnNgLlxuICAgICAgLy8gLy8gRmVlbCBmcmVlIHRvIGludGVycnVwdC5cbiAgICAgIC8vIHRva2VuaXplci5pbnRlcnJ1cHQgPSBmYWxzZVxuICAgICAgcmV0dXJuIG9rKGNvZGUpXG4gICAgfVxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGF0QnJlYWssICd3aGl0ZXNwYWNlJykoY29kZSlcbiAgICB9XG5cbiAgICAvLyBUbyBkbzogZ2VuZXJhdGUgYGRhdGFgIHRva2VucywgYWRkIHRoZSBgdGV4dGAgdG9rZW4gbGF0ZXIuXG4gICAgLy8gTmVlZHMgZWRpdCBtYXAsIHNlZTogYG1hcmtkb3duLnJzYC5cbiAgICBlZmZlY3RzLmVudGVyKCdhdHhIZWFkaW5nVGV4dCcpXG4gICAgcmV0dXJuIGRhdGEoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBmdXJ0aGVyIHNlcXVlbmNlIChhZnRlciB3aGl0ZXNwYWNlKS5cbiAgICpcbiAgICogQ291bGQgYmUgbm9ybWFsIOKAnHZpc2libGXigJ0gaGFzaGVzIGluIHRoZSBoZWFkaW5nIG9yIGEgZmluYWwgc2VxdWVuY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAjIyBhYSAjI1xuICAgKiAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc2VxdWVuY2VGdXJ0aGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gMzUpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHNlcXVlbmNlRnVydGhlclxuICAgIH1cbiAgICBlZmZlY3RzLmV4aXQoJ2F0eEhlYWRpbmdTZXF1ZW5jZScpXG4gICAgcmV0dXJuIGF0QnJlYWsoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB0ZXh0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgIyMgYWFcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGRhdGEoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDM1IHx8IG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCgnYXR4SGVhZGluZ1RleHQnKVxuICAgICAgcmV0dXJuIGF0QnJlYWsoY29kZSlcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGRhdGFcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIExpc3Qgb2YgbG93ZXJjYXNlIEhUTUwg4oCcYmxvY2vigJ0gdGFnIG5hbWVzLlxuICpcbiAqIFRoZSBsaXN0LCB3aGVuIHBhcnNpbmcgSFRNTCAoZmxvdyksIHJlc3VsdHMgaW4gbW9yZSByZWxheGVkIHJ1bGVzIChjb25kaXRpb25cbiAqIDYpLlxuICogQmVjYXVzZSB0aGV5IGFyZSBrbm93biBibG9ja3MsIHRoZSBIVE1MLWxpa2Ugc3ludGF4IGRvZXNu4oCZdCBoYXZlIHRvIGJlXG4gKiBzdHJpY3RseSBwYXJzZWQuXG4gKiBGb3IgdGFnIG5hbWVzIG5vdCBpbiB0aGlzIGxpc3QsIGEgbW9yZSBzdHJpY3QgYWxnb3JpdGhtIChjb25kaXRpb24gNykgaXMgdXNlZFxuICogdG8gZGV0ZWN0IHdoZXRoZXIgdGhlIEhUTUwtbGlrZSBzeW50YXggaXMgc2VlbiBhcyBIVE1MIChmbG93KSBvciBub3QuXG4gKlxuICogVGhpcyBpcyBjb3BpZWQgZnJvbTpcbiAqIDxodHRwczovL3NwZWMuY29tbW9ubWFyay5vcmcvMC4zMC8jaHRtbC1ibG9ja3M+LlxuICpcbiAqID4g8J+RiSAqKk5vdGUqKjogYHNlYXJjaGAgd2FzIGFkZGVkIGluIGBDb21tb25NYXJrQDAuMzFgLlxuICovXG5leHBvcnQgY29uc3QgaHRtbEJsb2NrTmFtZXMgPSBbXG4gICdhZGRyZXNzJyxcbiAgJ2FydGljbGUnLFxuICAnYXNpZGUnLFxuICAnYmFzZScsXG4gICdiYXNlZm9udCcsXG4gICdibG9ja3F1b3RlJyxcbiAgJ2JvZHknLFxuICAnY2FwdGlvbicsXG4gICdjZW50ZXInLFxuICAnY29sJyxcbiAgJ2NvbGdyb3VwJyxcbiAgJ2RkJyxcbiAgJ2RldGFpbHMnLFxuICAnZGlhbG9nJyxcbiAgJ2RpcicsXG4gICdkaXYnLFxuICAnZGwnLFxuICAnZHQnLFxuICAnZmllbGRzZXQnLFxuICAnZmlnY2FwdGlvbicsXG4gICdmaWd1cmUnLFxuICAnZm9vdGVyJyxcbiAgJ2Zvcm0nLFxuICAnZnJhbWUnLFxuICAnZnJhbWVzZXQnLFxuICAnaDEnLFxuICAnaDInLFxuICAnaDMnLFxuICAnaDQnLFxuICAnaDUnLFxuICAnaDYnLFxuICAnaGVhZCcsXG4gICdoZWFkZXInLFxuICAnaHInLFxuICAnaHRtbCcsXG4gICdpZnJhbWUnLFxuICAnbGVnZW5kJyxcbiAgJ2xpJyxcbiAgJ2xpbmsnLFxuICAnbWFpbicsXG4gICdtZW51JyxcbiAgJ21lbnVpdGVtJyxcbiAgJ25hdicsXG4gICdub2ZyYW1lcycsXG4gICdvbCcsXG4gICdvcHRncm91cCcsXG4gICdvcHRpb24nLFxuICAncCcsXG4gICdwYXJhbScsXG4gICdzZWFyY2gnLFxuICAnc2VjdGlvbicsXG4gICdzdW1tYXJ5JyxcbiAgJ3RhYmxlJyxcbiAgJ3Rib2R5JyxcbiAgJ3RkJyxcbiAgJ3Rmb290JyxcbiAgJ3RoJyxcbiAgJ3RoZWFkJyxcbiAgJ3RpdGxlJyxcbiAgJ3RyJyxcbiAgJ3RyYWNrJyxcbiAgJ3VsJ1xuXVxuXG4vKipcbiAqIExpc3Qgb2YgbG93ZXJjYXNlIEhUTUwg4oCccmF34oCdIHRhZyBuYW1lcy5cbiAqXG4gKiBUaGUgbGlzdCwgd2hlbiBwYXJzaW5nIEhUTUwgKGZsb3cpLCByZXN1bHRzIGluIEhUTUwgdGhhdCBjYW4gaW5jbHVkZSBsaW5lc1xuICogd2l0aG91dCBleGl0aW5nLCB1bnRpbCBhIGNsb3NpbmcgdGFnIGFsc28gaW4gdGhpcyBsaXN0IGlzIGZvdW5kIChjb25kaXRpb25cbiAqIDEpLlxuICpcbiAqIFRoaXMgbW9kdWxlIGlzIGNvcGllZCBmcm9tOlxuICogPGh0dHBzOi8vc3BlYy5jb21tb25tYXJrLm9yZy8wLjMwLyNodG1sLWJsb2Nrcz4uXG4gKlxuICogPiDwn5GJICoqTm90ZSoqOiBgdGV4dGFyZWFgIHdhcyBhZGRlZCBpbiBgQ29tbW9uTWFya0AwLjMwYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGh0bWxSYXdOYW1lcyA9IFsncHJlJywgJ3NjcmlwdCcsICdzdHlsZScsICd0ZXh0YXJlYSddXG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db2RlfSBDb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnN0cnVjdH0gQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlJlc29sdmVyfSBSZXNvbHZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge1xuICBhc2NpaUFscGhhLFxuICBhc2NpaUFscGhhbnVtZXJpYyxcbiAgbWFya2Rvd25MaW5lRW5kaW5nLFxuICBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlLFxuICBtYXJrZG93blNwYWNlXG59IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7aHRtbEJsb2NrTmFtZXMsIGh0bWxSYXdOYW1lc30gZnJvbSAnbWljcm9tYXJrLXV0aWwtaHRtbC10YWctbmFtZSdcbmltcG9ydCB7YmxhbmtMaW5lfSBmcm9tICcuL2JsYW5rLWxpbmUuanMnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGh0bWxGbG93ID0ge1xuICBuYW1lOiAnaHRtbEZsb3cnLFxuICB0b2tlbml6ZTogdG9rZW5pemVIdG1sRmxvdyxcbiAgcmVzb2x2ZVRvOiByZXNvbHZlVG9IdG1sRmxvdyxcbiAgY29uY3JldGU6IHRydWVcbn1cblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5jb25zdCBibGFua0xpbmVCZWZvcmUgPSB7XG4gIHRva2VuaXplOiB0b2tlbml6ZUJsYW5rTGluZUJlZm9yZSxcbiAgcGFydGlhbDogdHJ1ZVxufVxuY29uc3Qgbm9uTGF6eUNvbnRpbnVhdGlvblN0YXJ0ID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVOb25MYXp5Q29udGludWF0aW9uU3RhcnQsXG4gIHBhcnRpYWw6IHRydWVcbn1cblxuLyoqIEB0eXBlIHtSZXNvbHZlcn0gKi9cbmZ1bmN0aW9uIHJlc29sdmVUb0h0bWxGbG93KGV2ZW50cykge1xuICBsZXQgaW5kZXggPSBldmVudHMubGVuZ3RoXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgaWYgKGV2ZW50c1tpbmRleF1bMF0gPT09ICdlbnRlcicgJiYgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSAnaHRtbEZsb3cnKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuICBpZiAoaW5kZXggPiAxICYmIGV2ZW50c1tpbmRleCAtIDJdWzFdLnR5cGUgPT09ICdsaW5lUHJlZml4Jykge1xuICAgIC8vIEFkZCB0aGUgcHJlZml4IHN0YXJ0IHRvIHRoZSBIVE1MIHRva2VuLlxuICAgIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQgPSBldmVudHNbaW5kZXggLSAyXVsxXS5zdGFydFxuICAgIC8vIEFkZCB0aGUgcHJlZml4IHN0YXJ0IHRvIHRoZSBIVE1MIGxpbmUgdG9rZW4uXG4gICAgZXZlbnRzW2luZGV4ICsgMV1bMV0uc3RhcnQgPSBldmVudHNbaW5kZXggLSAyXVsxXS5zdGFydFxuICAgIC8vIFJlbW92ZSB0aGUgbGluZSBwcmVmaXguXG4gICAgZXZlbnRzLnNwbGljZShpbmRleCAtIDIsIDIpXG4gIH1cbiAgcmV0dXJuIGV2ZW50c1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUh0bWxGbG93KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBtYXJrZXJcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgY2xvc2luZ1RhZ1xuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGJ1ZmZlclxuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IGluZGV4XG4gIC8qKiBAdHlwZSB7Q29kZX0gKi9cbiAgbGV0IG1hcmtlckJcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIEhUTUwgKGZsb3cpLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPHggLz5cbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAvLyBUbyBkbzogcGFyc2UgaW5kZW50IGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICByZXR1cm4gYmVmb3JlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQXQgYDxgLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPHggLz5cbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZShjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignaHRtbEZsb3cnKVxuICAgIGVmZmVjdHMuZW50ZXIoJ2h0bWxGbG93RGF0YScpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIG9wZW5cbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPGAsIGF0IHRhZyBuYW1lIG9yIG90aGVyIHN0dWZmLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPHggLz5cbiAgICogICAgICBeXG4gICAqID4gfCA8IWRvY3R5cGU+XG4gICAqICAgICAgXlxuICAgKiA+IHwgPCEtLXh4eC0tPlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSAzMykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gZGVjbGFyYXRpb25PcGVuXG4gICAgfVxuICAgIGlmIChjb2RlID09PSA0Nykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBjbG9zaW5nVGFnID0gdHJ1ZVxuICAgICAgcmV0dXJuIHRhZ0Nsb3NlU3RhcnRcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDYzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIG1hcmtlciA9IDNcbiAgICAgIC8vIFRvIGRvOlxuICAgICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gdHJ1ZVxuICAgICAgLy8gVG8gZG86IHVzZSBgbWFya2Rvd24tcnNgIHN0eWxlIGludGVycnVwdC5cbiAgICAgIC8vIFdoaWxlIHdl4oCZcmUgaW4gYW4gaW5zdHJ1Y3Rpb24gaW5zdGVhZCBvZiBhIGRlY2xhcmF0aW9uLCB3ZeKAmXJlIG9uIGEgYD9gXG4gICAgICAvLyByaWdodCBub3csIHNvIHdlIGRvIG5lZWQgdG8gc2VhcmNoIGZvciBgPmAsIHNpbWlsYXIgdG8gZGVjbGFyYXRpb25zLlxuICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2sgOiBjb250aW51YXRpb25EZWNsYXJhdGlvbkluc2lkZVxuICAgIH1cblxuICAgIC8vIEFTQ0lJIGFscGhhYmV0aWNhbC5cbiAgICBpZiAoYXNjaWlBbHBoYShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBub3QgbnVsbC5cbiAgICAgIGJ1ZmZlciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSlcbiAgICAgIHJldHVybiB0YWdOYW1lXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPCFgLCBhdCBkZWNsYXJhdGlvbiwgY29tbWVudCwgb3IgQ0RBVEEuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IWRvY3R5cGU+XG4gICAqICAgICAgIF5cbiAgICogPiB8IDwhLS14eHgtLT5cbiAgICogICAgICAgXlxuICAgKiA+IHwgPCFbQ0RBVEFbPiY8XV0+XG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGRlY2xhcmF0aW9uT3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ1KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIG1hcmtlciA9IDJcbiAgICAgIHJldHVybiBjb21tZW50T3Blbkluc2lkZVxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gOTEpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgbWFya2VyID0gNVxuICAgICAgaW5kZXggPSAwXG4gICAgICByZXR1cm4gY2RhdGFPcGVuSW5zaWRlXG4gICAgfVxuXG4gICAgLy8gQVNDSUkgYWxwaGFiZXRpY2FsLlxuICAgIGlmIChhc2NpaUFscGhhKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIG1hcmtlciA9IDRcbiAgICAgIC8vIC8vIERvIG5vdCBmb3JtIGNvbnRhaW5lcnMuXG4gICAgICAvLyB0b2tlbml6ZXIuY29uY3JldGUgPSB0cnVlXG4gICAgICByZXR1cm4gc2VsZi5pbnRlcnJ1cHQgPyBvayA6IGNvbnRpbnVhdGlvbkRlY2xhcmF0aW9uSW5zaWRlXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPCEtYCwgaW5zaWRlIGEgY29tbWVudCwgYXQgYW5vdGhlciBgLWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IS0teHh4LS0+XG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21tZW50T3Blbkluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ1KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIC8vIC8vIERvIG5vdCBmb3JtIGNvbnRhaW5lcnMuXG4gICAgICAvLyB0b2tlbml6ZXIuY29uY3JldGUgPSB0cnVlXG4gICAgICByZXR1cm4gc2VsZi5pbnRlcnJ1cHQgPyBvayA6IGNvbnRpbnVhdGlvbkRlY2xhcmF0aW9uSW5zaWRlXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPCFbYCwgaW5zaWRlIENEQVRBLCBleHBlY3RpbmcgYENEQVRBW2AuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IVtDREFUQVs+JjxdXT5cbiAgICogICAgICAgIF5eXl5eXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY2RhdGFPcGVuSW5zaWRlKGNvZGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICdDREFUQVsnXG4gICAgaWYgKGNvZGUgPT09IHZhbHVlLmNoYXJDb2RlQXQoaW5kZXgrKykpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgaWYgKGluZGV4ID09PSB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgLy8gLy8gRG8gbm90IGZvcm0gY29udGFpbmVycy5cbiAgICAgICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gdHJ1ZVxuICAgICAgICByZXR1cm4gc2VsZi5pbnRlcnJ1cHQgPyBvayA6IGNvbnRpbnVhdGlvblxuICAgICAgfVxuICAgICAgcmV0dXJuIGNkYXRhT3Blbkluc2lkZVxuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDwvYCwgaW4gY2xvc2luZyB0YWcsIGF0IHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPC94PlxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdDbG9zZVN0YXJ0KGNvZGUpIHtcbiAgICBpZiAoYXNjaWlBbHBoYShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBub3QgbnVsbC5cbiAgICAgIGJ1ZmZlciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSlcbiAgICAgIHJldHVybiB0YWdOYW1lXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhYj5cbiAgICogICAgICBeXlxuICAgKiA+IHwgPC9hYj5cbiAgICogICAgICAgXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ05hbWUoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IG51bGwgfHxcbiAgICAgIGNvZGUgPT09IDQ3IHx8XG4gICAgICBjb2RlID09PSA2MiB8fFxuICAgICAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKVxuICAgICkge1xuICAgICAgY29uc3Qgc2xhc2ggPSBjb2RlID09PSA0N1xuICAgICAgY29uc3QgbmFtZSA9IGJ1ZmZlci50b0xvd2VyQ2FzZSgpXG4gICAgICBpZiAoIXNsYXNoICYmICFjbG9zaW5nVGFnICYmIGh0bWxSYXdOYW1lcy5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgICBtYXJrZXIgPSAxXG4gICAgICAgIC8vIC8vIERvIG5vdCBmb3JtIGNvbnRhaW5lcnMuXG4gICAgICAgIC8vIHRva2VuaXplci5jb25jcmV0ZSA9IHRydWVcbiAgICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2soY29kZSkgOiBjb250aW51YXRpb24oY29kZSlcbiAgICAgIH1cbiAgICAgIGlmIChodG1sQmxvY2tOYW1lcy5pbmNsdWRlcyhidWZmZXIudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgbWFya2VyID0gNlxuICAgICAgICBpZiAoc2xhc2gpIHtcbiAgICAgICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgICAgICByZXR1cm4gYmFzaWNTZWxmQ2xvc2luZ1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gLy8gRG8gbm90IGZvcm0gY29udGFpbmVycy5cbiAgICAgICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gdHJ1ZVxuICAgICAgICByZXR1cm4gc2VsZi5pbnRlcnJ1cHQgPyBvayhjb2RlKSA6IGNvbnRpbnVhdGlvbihjb2RlKVxuICAgICAgfVxuICAgICAgbWFya2VyID0gN1xuICAgICAgLy8gRG8gbm90IHN1cHBvcnQgY29tcGxldGUgSFRNTCB3aGVuIGludGVycnVwdGluZy5cbiAgICAgIHJldHVybiBzZWxmLmludGVycnVwdCAmJiAhc2VsZi5wYXJzZXIubGF6eVtzZWxmLm5vdygpLmxpbmVdXG4gICAgICAgID8gbm9rKGNvZGUpXG4gICAgICAgIDogY2xvc2luZ1RhZ1xuICAgICAgICA/IGNvbXBsZXRlQ2xvc2luZ1RhZ0FmdGVyKGNvZGUpXG4gICAgICAgIDogY29tcGxldGVBdHRyaWJ1dGVOYW1lQmVmb3JlKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gQVNDSUkgYWxwaGFudW1lcmljYWwgYW5kIGAtYC5cbiAgICBpZiAoY29kZSA9PT0gNDUgfHwgYXNjaWlBbHBoYW51bWVyaWMoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgYnVmZmVyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSlcbiAgICAgIHJldHVybiB0YWdOYW1lXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBjbG9zaW5nIHNsYXNoIG9mIGEgYmFzaWMgdGFnIG5hbWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8ZGl2Lz5cbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYmFzaWNTZWxmQ2xvc2luZyhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDYyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIC8vIC8vIERvIG5vdCBmb3JtIGNvbnRhaW5lcnMuXG4gICAgICAvLyB0b2tlbml6ZXIuY29uY3JldGUgPSB0cnVlXG4gICAgICByZXR1cm4gc2VsZi5pbnRlcnJ1cHQgPyBvayA6IGNvbnRpbnVhdGlvblxuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgY2xvc2luZyBzbGFzaCBvZiBhIGNvbXBsZXRlIHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPHgvPlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVDbG9zaW5nVGFnQWZ0ZXIoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb21wbGV0ZUNsb3NpbmdUYWdBZnRlclxuICAgIH1cbiAgICByZXR1cm4gY29tcGxldGVFbmQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBhbiBhdHRyaWJ1dGUgbmFtZS5cbiAgICpcbiAgICogQXQgZmlyc3QsIHRoaXMgc3RhdGUgaXMgdXNlZCBhZnRlciBhIGNvbXBsZXRlIHRhZyBuYW1lLCBhZnRlciB3aGl0ZXNwYWNlLFxuICAgKiB3aGVyZSBpdCBleHBlY3RzIG9wdGlvbmFsIGF0dHJpYnV0ZXMgb3IgdGhlIGVuZCBvZiB0aGUgdGFnLlxuICAgKiBJdCBpcyBhbHNvIHJldXNlZCBhZnRlciBhdHRyaWJ1dGVzLCB3aGVuIGV4cGVjdGluZyBtb3JlIG9wdGlvbmFsXG4gICAqIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSAvPlxuICAgKiAgICAgICAgXlxuICAgKiA+IHwgPGEgOmI+XG4gICAqICAgICAgICBeXG4gICAqID4gfCA8YSBfYj5cbiAgICogICAgICAgIF5cbiAgICogPiB8IDxhIGI+XG4gICAqICAgICAgICBeXG4gICAqID4gfCA8YSA+XG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVCZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0Nykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29tcGxldGVFbmRcbiAgICB9XG5cbiAgICAvLyBBU0NJSSBhbHBoYW51bWVyaWNhbCBhbmQgYDpgIGFuZCBgX2AuXG4gICAgaWYgKGNvZGUgPT09IDU4IHx8IGNvZGUgPT09IDk1IHx8IGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlTmFtZVxuICAgIH1cbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVOYW1lQmVmb3JlXG4gICAgfVxuICAgIHJldHVybiBjb21wbGV0ZUVuZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGF0dHJpYnV0ZSBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGEgOmI+XG4gICAqICAgICAgICAgXlxuICAgKiA+IHwgPGEgX2I+XG4gICAqICAgICAgICAgXlxuICAgKiA+IHwgPGEgYj5cbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWUoY29kZSkge1xuICAgIC8vIEFTQ0lJIGFscGhhbnVtZXJpY2FsIGFuZCBgLWAsIGAuYCwgYDpgLCBhbmQgYF9gLlxuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IDQ1IHx8XG4gICAgICBjb2RlID09PSA0NiB8fFxuICAgICAgY29kZSA9PT0gNTggfHxcbiAgICAgIGNvZGUgPT09IDk1IHx8XG4gICAgICBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKVxuICAgICkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVOYW1lXG4gICAgfVxuICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVBZnRlcihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGF0dHJpYnV0ZSBuYW1lLCBhdCBhbiBvcHRpb25hbCBpbml0aWFsaXplciwgdGhlIGVuZCBvZiB0aGUgdGFnLCBvclxuICAgKiB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGEgYj5cbiAgICogICAgICAgICBeXG4gICAqID4gfCA8YSBiPWM+XG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVBdHRyaWJ1dGVOYW1lQWZ0ZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA2MSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZUJlZm9yZVxuICAgIH1cbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVOYW1lQWZ0ZXJcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlTmFtZUJlZm9yZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEJlZm9yZSB1bnF1b3RlZCwgZG91YmxlIHF1b3RlZCwgb3Igc2luZ2xlIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUsIGFsbG93aW5nXG4gICAqIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSBiPWM+XG4gICAqICAgICAgICAgIF5cbiAgICogPiB8IDxhIGI9XCJjXCI+XG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVCZWZvcmUoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IG51bGwgfHxcbiAgICAgIGNvZGUgPT09IDYwIHx8XG4gICAgICBjb2RlID09PSA2MSB8fFxuICAgICAgY29kZSA9PT0gNjIgfHxcbiAgICAgIGNvZGUgPT09IDk2XG4gICAgKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuICAgIGlmIChjb2RlID09PSAzNCB8fCBjb2RlID09PSAzOSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBtYXJrZXJCID0gY29kZVxuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVRdW90ZWRcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVCZWZvcmVcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGRvdWJsZSBvciBzaW5nbGUgcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhIGI9XCJjXCI+XG4gICAqICAgICAgICAgICBeXG4gICAqID4gfCA8YSBiPSdjJz5cbiAgICogICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVRdW90ZWQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBtYXJrZXJCKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIG1hcmtlckIgPSBudWxsXG4gICAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZVF1b3RlZEFmdGVyXG4gICAgfVxuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZVF1b3RlZFxuICB9XG5cbiAgLyoqXG4gICAqIEluIHVucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhIGI9Yz5cbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBudWxsIHx8XG4gICAgICBjb2RlID09PSAzNCB8fFxuICAgICAgY29kZSA9PT0gMzkgfHxcbiAgICAgIGNvZGUgPT09IDQ3IHx8XG4gICAgICBjb2RlID09PSA2MCB8fFxuICAgICAgY29kZSA9PT0gNjEgfHxcbiAgICAgIGNvZGUgPT09IDYyIHx8XG4gICAgICBjb2RlID09PSA5NiB8fFxuICAgICAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKVxuICAgICkge1xuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlTmFtZUFmdGVyKGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBkb3VibGUgb3Igc2luZ2xlIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUsIGJlZm9yZSB3aGl0ZXNwYWNlIG9yIHRoZVxuICAgKiBlbmQgb2YgdGhlIHRhZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhIGI9XCJjXCI+XG4gICAqICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZVF1b3RlZEFmdGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDcgfHwgY29kZSA9PT0gNjIgfHwgbWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlTmFtZUJlZm9yZShjb2RlKVxuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzIG9mIGEgY29tcGxldGUgdGFnIHdoZXJlIG9ubHkgYW4gYD5gIGlzIGFsbG93ZWQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSBiPVwiY1wiPlxuICAgKiAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21wbGV0ZUVuZChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDYyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb21wbGV0ZUFmdGVyXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPmAgaW4gYSBjb21wbGV0ZSB0YWcuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8eD5cbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBsZXRlQWZ0ZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgLy8gLy8gRG8gbm90IGZvcm0gY29udGFpbmVycy5cbiAgICAgIC8vIHRva2VuaXplci5jb25jcmV0ZSA9IHRydWVcbiAgICAgIHJldHVybiBjb250aW51YXRpb24oY29kZSlcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbXBsZXRlQWZ0ZXJcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGNvbnRpbnVhdGlvbiBvZiBhbnkgSFRNTCBraW5kLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPCEtLXh4eC0tPlxuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb24oY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0NSAmJiBtYXJrZXIgPT09IDIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkNvbW1lbnRJbnNpZGVcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDYwICYmIG1hcmtlciA9PT0gMSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29udGludWF0aW9uUmF3VGFnT3BlblxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNjIgJiYgbWFya2VyID09PSA0KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb250aW51YXRpb25DbG9zZVxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNjMgJiYgbWFya2VyID09PSAzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb250aW51YXRpb25EZWNsYXJhdGlvbkluc2lkZVxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gOTMgJiYgbWFya2VyID09PSA1KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb250aW51YXRpb25DZGF0YUluc2lkZVxuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpICYmIChtYXJrZXIgPT09IDYgfHwgbWFya2VyID09PSA3KSkge1xuICAgICAgZWZmZWN0cy5leGl0KCdodG1sRmxvd0RhdGEnKVxuICAgICAgcmV0dXJuIGVmZmVjdHMuY2hlY2soXG4gICAgICAgIGJsYW5rTGluZUJlZm9yZSxcbiAgICAgICAgY29udGludWF0aW9uQWZ0ZXIsXG4gICAgICAgIGNvbnRpbnVhdGlvblN0YXJ0XG4gICAgICApKGNvZGUpXG4gICAgfVxuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KCdodG1sRmxvd0RhdGEnKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvblN0YXJ0KGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb250aW51YXRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjb250aW51YXRpb24sIGF0IGVvbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDx4PlxuICAgKiAgICAgICAgXlxuICAgKiAgIHwgYXNkXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25TdGFydChjb2RlKSB7XG4gICAgcmV0dXJuIGVmZmVjdHMuY2hlY2soXG4gICAgICBub25MYXp5Q29udGludWF0aW9uU3RhcnQsXG4gICAgICBjb250aW51YXRpb25TdGFydE5vbkxhenksXG4gICAgICBjb250aW51YXRpb25BZnRlclxuICAgICkoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjb250aW51YXRpb24sIGF0IGVvbCwgYmVmb3JlIG5vbi1sYXp5IGNvbnRlbnQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8eD5cbiAgICogICAgICAgIF5cbiAgICogICB8IGFzZFxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGludWF0aW9uU3RhcnROb25MYXp5KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKCdsaW5lRW5kaW5nJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ2xpbmVFbmRpbmcnKVxuICAgIHJldHVybiBjb250aW51YXRpb25CZWZvcmVcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjb250aW51YXRpb24sIGJlZm9yZSBub24tbGF6eSBjb250ZW50LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgPHg+XG4gICAqID4gfCBhc2RcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRpbnVhdGlvbkJlZm9yZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm4gY29udGludWF0aW9uU3RhcnQoY29kZSlcbiAgICB9XG4gICAgZWZmZWN0cy5lbnRlcignaHRtbEZsb3dEYXRhJylcbiAgICByZXR1cm4gY29udGludWF0aW9uKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY29tbWVudCBjb250aW51YXRpb24sIGFmdGVyIG9uZSBgLWAsIGV4cGVjdGluZyBhbm90aGVyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPCEtLXh4eC0tPlxuICAgKiAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25Db21tZW50SW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDUpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkRlY2xhcmF0aW9uSW5zaWRlXG4gICAgfVxuICAgIHJldHVybiBjb250aW51YXRpb24oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByYXcgY29udGludWF0aW9uLCBhZnRlciBgPGAsIGF0IGAvYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxzY3JpcHQ+Y29uc29sZS5sb2coMSk8L3NjcmlwdD5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGludWF0aW9uUmF3VGFnT3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ3KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGJ1ZmZlciA9ICcnXG4gICAgICByZXR1cm4gY29udGludWF0aW9uUmF3RW5kVGFnXG4gICAgfVxuICAgIHJldHVybiBjb250aW51YXRpb24oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByYXcgY29udGludWF0aW9uLCBhZnRlciBgPC9gLCBpbiBhIHJhdyB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxzY3JpcHQ+Y29uc29sZS5sb2coMSk8L3NjcmlwdD5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGludWF0aW9uUmF3RW5kVGFnKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjIpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBidWZmZXIudG9Mb3dlckNhc2UoKVxuICAgICAgaWYgKGh0bWxSYXdOYW1lcy5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkNsb3NlXG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGNvZGUpXG4gICAgfVxuICAgIGlmIChhc2NpaUFscGhhKGNvZGUpICYmIGJ1ZmZlci5sZW5ndGggPCA4KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IG5vdCBudWxsLlxuICAgICAgYnVmZmVyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSlcbiAgICAgIHJldHVybiBjb250aW51YXRpb25SYXdFbmRUYWdcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGNkYXRhIGNvbnRpbnVhdGlvbiwgYWZ0ZXIgYF1gLCBleHBlY3RpbmcgYF0+YC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDwhW0NEQVRBWz4mPF1dPlxuICAgKiAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRpbnVhdGlvbkNkYXRhSW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gOTMpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkRlY2xhcmF0aW9uSW5zaWRlXG4gICAgfVxuICAgIHJldHVybiBjb250aW51YXRpb24oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBkZWNsYXJhdGlvbiBvciBpbnN0cnVjdGlvbiBjb250aW51YXRpb24sIGF0IGA+YC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDwhLS0+XG4gICAqICAgICAgICAgXlxuICAgKiA+IHwgPD8+XG4gICAqICAgICAgIF5cbiAgICogPiB8IDwhcT5cbiAgICogICAgICAgIF5cbiAgICogPiB8IDwhLS1hYi0tPlxuICAgKiAgICAgICAgICAgICBeXG4gICAqID4gfCA8IVtDREFUQVs+JjxdXT5cbiAgICogICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGludWF0aW9uRGVjbGFyYXRpb25JbnNpZGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA2Mikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29udGludWF0aW9uQ2xvc2VcbiAgICB9XG5cbiAgICAvLyBNb3JlIGRhc2hlcy5cbiAgICBpZiAoY29kZSA9PT0gNDUgJiYgbWFya2VyID09PSAyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb250aW51YXRpb25EZWNsYXJhdGlvbkluc2lkZVxuICAgIH1cbiAgICByZXR1cm4gY29udGludWF0aW9uKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY2xvc2VkIGNvbnRpbnVhdGlvbjogZXZlcnl0aGluZyB3ZSBnZXQgdW50aWwgdGhlIGVvbC9lb2YgaXMgcGFydCBvZiBpdC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDwhZG9jdHlwZT5cbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25DbG9zZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2h0bWxGbG93RGF0YScpXG4gICAgICByZXR1cm4gY29udGludWF0aW9uQWZ0ZXIoY29kZSlcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbkNsb3NlXG4gIH1cblxuICAvKipcbiAgICogRG9uZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDwhZG9jdHlwZT5cbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25BZnRlcihjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KCdodG1sRmxvdycpXG4gICAgLy8gLy8gRmVlbCBmcmVlIHRvIGludGVycnVwdC5cbiAgICAvLyB0b2tlbml6ZXIuaW50ZXJydXB0ID0gZmFsc2VcbiAgICAvLyAvLyBObyBsb25nZXIgY29uY3JldGUuXG4gICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gZmFsc2VcbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb25TdGFydChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBBdCBlb2wsIGJlZm9yZSBjb250aW51YXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqIGBgYGpzXG4gICAqICAgICAgICAgICAgXlxuICAgKiAgIHwgYlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2xpbmVFbmRpbmcnKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2xpbmVFbmRpbmcnKVxuICAgICAgcmV0dXJuIGFmdGVyXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGNvbnRpbnVhdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8ICogYGBganNcbiAgICogPiB8IGJcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gc2VsZi5wYXJzZXIubGF6eVtzZWxmLm5vdygpLmxpbmVdID8gbm9rKGNvZGUpIDogb2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUJsYW5rTGluZUJlZm9yZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBCZWZvcmUgZW9sLCBleHBlY3RpbmcgYmxhbmsgbGluZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxkaXY+XG4gICAqICAgICAgICAgIF5cbiAgICogICB8XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignbGluZUVuZGluZycpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdsaW5lRW5kaW5nJylcbiAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KGJsYW5rTGluZSwgb2ssIG5vaylcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2ZhY3RvcnlTcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnXG5pbXBvcnQge1xuICBhc2NpaUFscGhhLFxuICBhc2NpaUFscGhhbnVtZXJpYyxcbiAgbWFya2Rvd25MaW5lRW5kaW5nLFxuICBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlLFxuICBtYXJrZG93blNwYWNlXG59IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcidcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGh0bWxUZXh0ID0ge1xuICBuYW1lOiAnaHRtbFRleHQnLFxuICB0b2tlbml6ZTogdG9rZW5pemVIdG1sVGV4dFxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUh0bWxUZXh0KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTxDb2RlPiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IG1hcmtlclxuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IGluZGV4XG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGxldCByZXR1cm5TdGF0ZVxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgSFRNTCAodGV4dCkuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiPiBjXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKCdodG1sVGV4dCcpXG4gICAgZWZmZWN0cy5lbnRlcignaHRtbFRleHREYXRhJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gb3BlblxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8YCwgYXQgdGFnIG5hbWUgb3Igb3RoZXIgc3R1ZmYuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiPiBjXG4gICAqICAgICAgICBeXG4gICAqID4gfCBhIDwhZG9jdHlwZT4gY1xuICAgKiAgICAgICAgXlxuICAgKiA+IHwgYSA8IS0tYi0tPiBjXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBvcGVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gMzMpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uT3BlblxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNDcpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ0Nsb3NlU3RhcnRcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDYzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBpbnN0cnVjdGlvblxuICAgIH1cblxuICAgIC8vIEFTQ0lJIGFscGhhYmV0aWNhbC5cbiAgICBpZiAoYXNjaWlBbHBoYShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gdGFnT3BlblxuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDwhYCwgYXQgZGVjbGFyYXRpb24sIGNvbW1lbnQsIG9yIENEQVRBLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IWRvY3R5cGU+IGNcbiAgICogICAgICAgICBeXG4gICAqID4gfCBhIDwhLS1iLS0+IGNcbiAgICogICAgICAgICBeXG4gICAqID4gfCBhIDwhW0NEQVRBWz4mPF1dPiBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZGVjbGFyYXRpb25PcGVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDUpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbW1lbnRPcGVuSW5zaWRlXG4gICAgfVxuICAgIGlmIChjb2RlID09PSA5MSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBpbmRleCA9IDBcbiAgICAgIHJldHVybiBjZGF0YU9wZW5JbnNpZGVcbiAgICB9XG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBhIGNvbW1lbnQsIGFmdGVyIGA8IS1gLCBhdCBhbm90aGVyIGAtYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPCEtLWItLT4gY1xuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21tZW50T3Blbkluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ1KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb21tZW50RW5kXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjb21tZW50LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IS0tYi0tPiBjXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21tZW50KGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNDUpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbW1lbnRDbG9zZVxuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm5TdGF0ZSA9IGNvbW1lbnRcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb21tZW50XG4gIH1cblxuICAvKipcbiAgICogSW4gY29tbWVudCwgYWZ0ZXIgYC1gLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IS0tYi0tPiBjXG4gICAqICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbW1lbnRDbG9zZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ1KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb21tZW50RW5kXG4gICAgfVxuICAgIHJldHVybiBjb21tZW50KGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY29tbWVudCwgYWZ0ZXIgYC0tYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPCEtLWItLT4gY1xuICAgKiAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tbWVudEVuZChjb2RlKSB7XG4gICAgcmV0dXJuIGNvZGUgPT09IDYyXG4gICAgICA/IGVuZChjb2RlKVxuICAgICAgOiBjb2RlID09PSA0NVxuICAgICAgPyBjb21tZW50Q2xvc2UoY29kZSlcbiAgICAgIDogY29tbWVudChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8IVtgLCBpbiBDREFUQSwgZXhwZWN0aW5nIGBDREFUQVtgLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IVtDREFUQVs+JjxdXT4gYlxuICAgKiAgICAgICAgICBeXl5eXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNkYXRhT3Blbkluc2lkZShjb2RlKSB7XG4gICAgY29uc3QgdmFsdWUgPSAnQ0RBVEFbJ1xuICAgIGlmIChjb2RlID09PSB2YWx1ZS5jaGFyQ29kZUF0KGluZGV4KyspKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBpbmRleCA9PT0gdmFsdWUubGVuZ3RoID8gY2RhdGEgOiBjZGF0YU9wZW5JbnNpZGVcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIENEQVRBLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IVtDREFUQVs+JjxdXT4gYlxuICAgKiAgICAgICAgICAgICAgICBeXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNkYXRhKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gOTMpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNkYXRhQ2xvc2VcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSBjZGF0YVxuICAgICAgcmV0dXJuIGxpbmVFbmRpbmdCZWZvcmUoY29kZSlcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGNkYXRhXG4gIH1cblxuICAvKipcbiAgICogSW4gQ0RBVEEsIGFmdGVyIGBdYCwgYXQgYW5vdGhlciBgXWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDwhW0NEQVRBWz4mPF1dPiBiXG4gICAqICAgICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjZGF0YUNsb3NlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gOTMpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNkYXRhRW5kXG4gICAgfVxuICAgIHJldHVybiBjZGF0YShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIENEQVRBLCBhZnRlciBgXV1gLCBhdCBgPmAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDwhW0NEQVRBWz4mPF1dPiBiXG4gICAqICAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY2RhdGFFbmQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA2Mikge1xuICAgICAgcmV0dXJuIGVuZChjb2RlKVxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gOTMpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNkYXRhRW5kXG4gICAgfVxuICAgIHJldHVybiBjZGF0YShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGRlY2xhcmF0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IWI+IGNcbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZGVjbGFyYXRpb24oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDYyKSB7XG4gICAgICByZXR1cm4gZW5kKGNvZGUpXG4gICAgfVxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVyblN0YXRlID0gZGVjbGFyYXRpb25cbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBkZWNsYXJhdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIEluIGluc3RydWN0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8P2I/PiBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5zdHJ1Y3Rpb24oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuICAgIGlmIChjb2RlID09PSA2Mykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gaW5zdHJ1Y3Rpb25DbG9zZVxuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm5TdGF0ZSA9IGluc3RydWN0aW9uXG4gICAgICByZXR1cm4gbGluZUVuZGluZ0JlZm9yZShjb2RlKVxuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gaW5zdHJ1Y3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBpbnN0cnVjdGlvbiwgYWZ0ZXIgYD9gLCBhdCBgPmAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDw/Yj8+IGNcbiAgICogICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluc3RydWN0aW9uQ2xvc2UoY29kZSkge1xuICAgIHJldHVybiBjb2RlID09PSA2MiA/IGVuZChjb2RlKSA6IGluc3RydWN0aW9uKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDwvYCwgaW4gY2xvc2luZyB0YWcsIGF0IHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8L2I+IGNcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdDbG9zZVN0YXJ0KGNvZGUpIHtcbiAgICAvLyBBU0NJSSBhbHBoYWJldGljYWwuXG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ0Nsb3NlXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPC94YCwgaW4gYSB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPC9iPiBjXG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ0Nsb3NlKGNvZGUpIHtcbiAgICAvLyBBU0NJSSBhbHBoYW51bWVyaWNhbCBhbmQgYC1gLlxuICAgIGlmIChjb2RlID09PSA0NSB8fCBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gdGFnQ2xvc2VcbiAgICB9XG4gICAgcmV0dXJuIHRhZ0Nsb3NlQmV0d2Vlbihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGNsb3NpbmcgdGFnLCBhZnRlciB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPC9iPiBjXG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ0Nsb3NlQmV0d2Vlbihjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSB0YWdDbG9zZUJldHdlZW5cbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpXG4gICAgfVxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0YWdDbG9zZUJldHdlZW5cbiAgICB9XG4gICAgcmV0dXJuIGVuZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8eGAsIGluIG9wZW5pbmcgdGFnIG5hbWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiPiBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnT3Blbihjb2RlKSB7XG4gICAgLy8gQVNDSUkgYWxwaGFudW1lcmljYWwgYW5kIGAtYC5cbiAgICBpZiAoY29kZSA9PT0gNDUgfHwgYXNjaWlBbHBoYW51bWVyaWMoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ09wZW5cbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDQ3IHx8IGNvZGUgPT09IDYyIHx8IG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkpIHtcbiAgICAgIHJldHVybiB0YWdPcGVuQmV0d2Vlbihjb2RlKVxuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gb3BlbmluZyB0YWcsIGFmdGVyIHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8Yj4gY1xuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ09wZW5CZXR3ZWVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDcpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGVuZFxuICAgIH1cblxuICAgIC8vIEFTQ0lJIGFscGhhYmV0aWNhbCBhbmQgYDpgIGFuZCBgX2AuXG4gICAgaWYgKGNvZGUgPT09IDU4IHx8IGNvZGUgPT09IDk1IHx8IGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVOYW1lXG4gICAgfVxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVyblN0YXRlID0gdGFnT3BlbkJldHdlZW5cbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpXG4gICAgfVxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0YWdPcGVuQmV0d2VlblxuICAgIH1cbiAgICByZXR1cm4gZW5kKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gYXR0cmlidXRlIG5hbWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiIGM+IGRcbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnT3BlbkF0dHJpYnV0ZU5hbWUoY29kZSkge1xuICAgIC8vIEFTQ0lJIGFscGhhYmV0aWNhbCBhbmQgYC1gLCBgLmAsIGA6YCwgYW5kIGBfYC5cbiAgICBpZiAoXG4gICAgICBjb2RlID09PSA0NSB8fFxuICAgICAgY29kZSA9PT0gNDYgfHxcbiAgICAgIGNvZGUgPT09IDU4IHx8XG4gICAgICBjb2RlID09PSA5NSB8fFxuICAgICAgYXNjaWlBbHBoYW51bWVyaWMoY29kZSlcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVOYW1lXG4gICAgfVxuICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlTmFtZUFmdGVyKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYXR0cmlidXRlIG5hbWUsIGJlZm9yZSBpbml0aWFsaXplciwgdGhlIGVuZCBvZiB0aGUgdGFnLCBvclxuICAgKiB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8YiBjPiBkXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdPcGVuQXR0cmlidXRlTmFtZUFmdGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjEpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZUJlZm9yZVxuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm5TdGF0ZSA9IHRhZ09wZW5BdHRyaWJ1dGVOYW1lQWZ0ZXJcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpXG4gICAgfVxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlTmFtZUFmdGVyXG4gICAgfVxuICAgIHJldHVybiB0YWdPcGVuQmV0d2Vlbihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEJlZm9yZSB1bnF1b3RlZCwgZG91YmxlIHF1b3RlZCwgb3Igc2luZ2xlIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUsIGFsbG93aW5nXG4gICAqIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiIGM9ZD4gZVxuICAgKiAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZUJlZm9yZShjb2RlKSB7XG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gbnVsbCB8fFxuICAgICAgY29kZSA9PT0gNjAgfHxcbiAgICAgIGNvZGUgPT09IDYxIHx8XG4gICAgICBjb2RlID09PSA2MiB8fFxuICAgICAgY29kZSA9PT0gOTZcbiAgICApIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDM0IHx8IGNvZGUgPT09IDM5KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIG1hcmtlciA9IGNvZGVcbiAgICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlVmFsdWVRdW90ZWRcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSB0YWdPcGVuQXR0cmlidXRlVmFsdWVCZWZvcmVcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpXG4gICAgfVxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlVmFsdWVCZWZvcmVcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVVucXVvdGVkXG4gIH1cblxuICAvKipcbiAgICogSW4gZG91YmxlIG9yIHNpbmdsZSBxdW90ZWQgYXR0cmlidXRlIHZhbHVlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8YiBjPVwiZFwiPiBlXG4gICAqICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVF1b3RlZChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBtYXJrZXIgPSB1bmRlZmluZWRcbiAgICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlVmFsdWVRdW90ZWRBZnRlclxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm5TdGF0ZSA9IHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVF1b3RlZFxuICAgICAgcmV0dXJuIGxpbmVFbmRpbmdCZWZvcmUoY29kZSlcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVF1b3RlZFxuICB9XG5cbiAgLyoqXG4gICAqIEluIHVucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPGIgYz1kPiBlXG4gICAqICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnT3BlbkF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IG51bGwgfHxcbiAgICAgIGNvZGUgPT09IDM0IHx8XG4gICAgICBjb2RlID09PSAzOSB8fFxuICAgICAgY29kZSA9PT0gNjAgfHxcbiAgICAgIGNvZGUgPT09IDYxIHx8XG4gICAgICBjb2RlID09PSA5NlxuICAgICkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNDcgfHwgY29kZSA9PT0gNjIgfHwgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSkge1xuICAgICAgcmV0dXJuIHRhZ09wZW5CZXR3ZWVuKGNvZGUpXG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlVmFsdWVVbnF1b3RlZFxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGRvdWJsZSBvciBzaW5nbGUgcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSwgYmVmb3JlIHdoaXRlc3BhY2Ugb3IgdGhlIGVuZFxuICAgKiBvZiB0aGUgdGFnLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8YiBjPVwiZFwiPiBlXG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnT3BlbkF0dHJpYnV0ZVZhbHVlUXVvdGVkQWZ0ZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0NyB8fCBjb2RlID09PSA2MiB8fCBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gdGFnT3BlbkJldHdlZW4oY29kZSlcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcyBvZiBhIHRhZyB3aGVyZSBvbmx5IGFuIGA+YCBpcyBhbGxvd2VkLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8YiBjPVwiZFwiPiBlXG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW5kKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KCdodG1sVGV4dERhdGEnKVxuICAgICAgZWZmZWN0cy5leGl0KCdodG1sVGV4dCcpXG4gICAgICByZXR1cm4gb2tcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IGVvbC5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiB3ZSBjYW7igJl0IGhhdmUgYmxhbmsgbGluZXMgaW4gdGV4dCwgc28gbm8gbmVlZCB0byB3b3JyeSBhYm91dFxuICAgKiA+IGVtcHR5IHRva2Vucy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPCEtLWFcbiAgICogICAgICAgICAgICBeXG4gICAqICAgfCBiLS0+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpIHtcbiAgICBlZmZlY3RzLmV4aXQoJ2h0bWxUZXh0RGF0YScpXG4gICAgZWZmZWN0cy5lbnRlcignbGluZUVuZGluZycpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdsaW5lRW5kaW5nJylcbiAgICByZXR1cm4gbGluZUVuZGluZ0FmdGVyXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZW9sLCBhdCBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiA+IPCfkYkgKipOb3RlKio6IHdlIGNhbuKAmXQgaGF2ZSBibGFuayBsaW5lcyBpbiB0ZXh0LCBzbyBubyBuZWVkIHRvIHdvcnJ5IGFib3V0XG4gICAqID4gZW1wdHkgdG9rZW5zLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgYSA8IS0tYVxuICAgKiA+IHwgYi0tPlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGluZUVuZGluZ0FmdGVyKGNvZGUpIHtcbiAgICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuXG4gICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICAgID8gZmFjdG9yeVNwYWNlKFxuICAgICAgICAgIGVmZmVjdHMsXG4gICAgICAgICAgbGluZUVuZGluZ0FmdGVyUHJlZml4LFxuICAgICAgICAgICdsaW5lUHJlZml4JyxcbiAgICAgICAgICBzZWxmLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygnY29kZUluZGVudGVkJylcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICA6IDRcbiAgICAgICAgKShjb2RlKVxuICAgICAgOiBsaW5lRW5kaW5nQWZ0ZXJQcmVmaXgoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBlb2wsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogd2UgY2Fu4oCZdCBoYXZlIGJsYW5rIGxpbmVzIGluIHRleHQsIHNvIG5vIG5lZWQgdG8gd29ycnkgYWJvdXRcbiAgICogPiBlbXB0eSB0b2tlbnMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCBhIDwhLS1hXG4gICAqID4gfCBiLS0+XG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBsaW5lRW5kaW5nQWZ0ZXJQcmVmaXgoY29kZSkge1xuICAgIGVmZmVjdHMuZW50ZXIoJ2h0bWxUZXh0RGF0YScpXG4gICAgcmV0dXJuIHJldHVyblN0YXRlKGNvZGUpXG4gIH1cbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnN0cnVjdH0gQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkV2ZW50fSBFdmVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7ZmFjdG9yeURlc3RpbmF0aW9ufSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1kZXN0aW5hdGlvbidcbmltcG9ydCB7ZmFjdG9yeUxhYmVsfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1sYWJlbCdcbmltcG9ydCB7ZmFjdG9yeVRpdGxlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS10aXRsZSdcbmltcG9ydCB7ZmFjdG9yeVdoaXRlc3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXdoaXRlc3BhY2UnXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZ09yU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7cHVzaCwgc3BsaWNlfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaHVua2VkJ1xuaW1wb3J0IHtub3JtYWxpemVJZGVudGlmaWVyfSBmcm9tICdtaWNyb21hcmstdXRpbC1ub3JtYWxpemUtaWRlbnRpZmllcidcbmltcG9ydCB7cmVzb2x2ZUFsbH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtcmVzb2x2ZS1hbGwnXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBsYWJlbEVuZCA9IHtcbiAgbmFtZTogJ2xhYmVsRW5kJyxcbiAgdG9rZW5pemU6IHRva2VuaXplTGFiZWxFbmQsXG4gIHJlc29sdmVUbzogcmVzb2x2ZVRvTGFiZWxFbmQsXG4gIHJlc29sdmVBbGw6IHJlc29sdmVBbGxMYWJlbEVuZFxufVxuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IHJlc291cmNlQ29uc3RydWN0ID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVSZXNvdXJjZVxufVxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5jb25zdCByZWZlcmVuY2VGdWxsQ29uc3RydWN0ID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVSZWZlcmVuY2VGdWxsXG59XG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IHJlZmVyZW5jZUNvbGxhcHNlZENvbnN0cnVjdCA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplUmVmZXJlbmNlQ29sbGFwc2VkXG59XG5cbi8qKiBAdHlwZSB7UmVzb2x2ZXJ9ICovXG5mdW5jdGlvbiByZXNvbHZlQWxsTGFiZWxFbmQoZXZlbnRzKSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIHdoaWxlICgrK2luZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuICAgIGNvbnN0IHRva2VuID0gZXZlbnRzW2luZGV4XVsxXVxuICAgIGlmIChcbiAgICAgIHRva2VuLnR5cGUgPT09ICdsYWJlbEltYWdlJyB8fFxuICAgICAgdG9rZW4udHlwZSA9PT0gJ2xhYmVsTGluaycgfHxcbiAgICAgIHRva2VuLnR5cGUgPT09ICdsYWJlbEVuZCdcbiAgICApIHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgbWFya2VyLlxuICAgICAgZXZlbnRzLnNwbGljZShpbmRleCArIDEsIHRva2VuLnR5cGUgPT09ICdsYWJlbEltYWdlJyA/IDQgOiAyKVxuICAgICAgdG9rZW4udHlwZSA9ICdkYXRhJ1xuICAgICAgaW5kZXgrK1xuICAgIH1cbiAgfVxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKiBAdHlwZSB7UmVzb2x2ZXJ9ICovXG5mdW5jdGlvbiByZXNvbHZlVG9MYWJlbEVuZChldmVudHMsIGNvbnRleHQpIHtcbiAgbGV0IGluZGV4ID0gZXZlbnRzLmxlbmd0aFxuICBsZXQgb2Zmc2V0ID0gMFxuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBsZXQgdG9rZW5cbiAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gIGxldCBvcGVuXG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY2xvc2VcbiAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gIGxldCBtZWRpYVxuXG4gIC8vIEZpbmQgYW4gb3BlbmluZy5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICB0b2tlbiA9IGV2ZW50c1tpbmRleF1bMV1cbiAgICBpZiAob3Blbikge1xuICAgICAgLy8gSWYgd2Ugc2VlIGFub3RoZXIgbGluaywgb3IgaW5hY3RpdmUgbGluayBsYWJlbCwgd2XigJl2ZSBiZWVuIGhlcmUgYmVmb3JlLlxuICAgICAgaWYgKFxuICAgICAgICB0b2tlbi50eXBlID09PSAnbGluaycgfHxcbiAgICAgICAgKHRva2VuLnR5cGUgPT09ICdsYWJlbExpbmsnICYmIHRva2VuLl9pbmFjdGl2ZSlcbiAgICAgICkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICAvLyBNYXJrIG90aGVyIGxpbmsgb3BlbmluZ3MgYXMgaW5hY3RpdmUsIGFzIHdlIGNhbuKAmXQgaGF2ZSBsaW5rcyBpblxuICAgICAgLy8gbGlua3MuXG4gICAgICBpZiAoZXZlbnRzW2luZGV4XVswXSA9PT0gJ2VudGVyJyAmJiB0b2tlbi50eXBlID09PSAnbGFiZWxMaW5rJykge1xuICAgICAgICB0b2tlbi5faW5hY3RpdmUgPSB0cnVlXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjbG9zZSkge1xuICAgICAgaWYgKFxuICAgICAgICBldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInICYmXG4gICAgICAgICh0b2tlbi50eXBlID09PSAnbGFiZWxJbWFnZScgfHwgdG9rZW4udHlwZSA9PT0gJ2xhYmVsTGluaycpICYmXG4gICAgICAgICF0b2tlbi5fYmFsYW5jZWRcbiAgICAgICkge1xuICAgICAgICBvcGVuID0gaW5kZXhcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgIT09ICdsYWJlbExpbmsnKSB7XG4gICAgICAgICAgb2Zmc2V0ID0gMlxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUgPT09ICdsYWJlbEVuZCcpIHtcbiAgICAgIGNsb3NlID0gaW5kZXhcbiAgICB9XG4gIH1cbiAgY29uc3QgZ3JvdXAgPSB7XG4gICAgdHlwZTogZXZlbnRzW29wZW5dWzFdLnR5cGUgPT09ICdsYWJlbExpbmsnID8gJ2xpbmsnIDogJ2ltYWdlJyxcbiAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW29wZW5dWzFdLnN0YXJ0KSxcbiAgICBlbmQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV1bMV0uZW5kKVxuICB9XG4gIGNvbnN0IGxhYmVsID0ge1xuICAgIHR5cGU6ICdsYWJlbCcsXG4gICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1tvcGVuXVsxXS5zdGFydCksXG4gICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbY2xvc2VdWzFdLmVuZClcbiAgfVxuICBjb25zdCB0ZXh0ID0ge1xuICAgIHR5cGU6ICdsYWJlbFRleHQnLFxuICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbb3BlbiArIG9mZnNldCArIDJdWzFdLmVuZCksXG4gICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbY2xvc2UgLSAyXVsxXS5zdGFydClcbiAgfVxuICBtZWRpYSA9IFtcbiAgICBbJ2VudGVyJywgZ3JvdXAsIGNvbnRleHRdLFxuICAgIFsnZW50ZXInLCBsYWJlbCwgY29udGV4dF1cbiAgXVxuXG4gIC8vIE9wZW5pbmcgbWFya2VyLlxuICBtZWRpYSA9IHB1c2gobWVkaWEsIGV2ZW50cy5zbGljZShvcGVuICsgMSwgb3BlbiArIG9mZnNldCArIDMpKVxuXG4gIC8vIFRleHQgb3Blbi5cbiAgbWVkaWEgPSBwdXNoKG1lZGlhLCBbWydlbnRlcicsIHRleHQsIGNvbnRleHRdXSlcblxuICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuXG4gIC8vIEJldHdlZW4uXG4gIG1lZGlhID0gcHVzaChcbiAgICBtZWRpYSxcbiAgICByZXNvbHZlQWxsKFxuICAgICAgY29udGV4dC5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsXG4gICAgICBldmVudHMuc2xpY2Uob3BlbiArIG9mZnNldCArIDQsIGNsb3NlIC0gMyksXG4gICAgICBjb250ZXh0XG4gICAgKVxuICApXG5cbiAgLy8gVGV4dCBjbG9zZSwgbWFya2VyIGNsb3NlLCBsYWJlbCBjbG9zZS5cbiAgbWVkaWEgPSBwdXNoKG1lZGlhLCBbXG4gICAgWydleGl0JywgdGV4dCwgY29udGV4dF0sXG4gICAgZXZlbnRzW2Nsb3NlIC0gMl0sXG4gICAgZXZlbnRzW2Nsb3NlIC0gMV0sXG4gICAgWydleGl0JywgbGFiZWwsIGNvbnRleHRdXG4gIF0pXG5cbiAgLy8gUmVmZXJlbmNlLCByZXNvdXJjZSwgb3Igc28uXG4gIG1lZGlhID0gcHVzaChtZWRpYSwgZXZlbnRzLnNsaWNlKGNsb3NlICsgMSkpXG5cbiAgLy8gTWVkaWEgY2xvc2UuXG4gIG1lZGlhID0gcHVzaChtZWRpYSwgW1snZXhpdCcsIGdyb3VwLCBjb250ZXh0XV0pXG4gIHNwbGljZShldmVudHMsIG9wZW4sIGV2ZW50cy5sZW5ndGgsIG1lZGlhKVxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTGFiZWxFbmQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICBsZXQgaW5kZXggPSBzZWxmLmV2ZW50cy5sZW5ndGhcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IGxhYmVsU3RhcnRcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZGVmaW5lZFxuXG4gIC8vIEZpbmQgYW4gb3BlbmluZy5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBpZiAoXG4gICAgICAoc2VsZi5ldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdsYWJlbEltYWdlJyB8fFxuICAgICAgICBzZWxmLmV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gJ2xhYmVsTGluaycpICYmXG4gICAgICAhc2VsZi5ldmVudHNbaW5kZXhdWzFdLl9iYWxhbmNlZFxuICAgICkge1xuICAgICAgbGFiZWxTdGFydCA9IHNlbGYuZXZlbnRzW2luZGV4XVsxXVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGxhYmVsIGVuZC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiKSBjXG4gICAqICAgICAgIF5cbiAgICogPiB8IFthXVtiXSBjXG4gICAqICAgICAgIF5cbiAgICogPiB8IFthXVtdIGJcbiAgICogICAgICAgXlxuICAgKiA+IHwgW2FdIGJcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAvLyBJZiB0aGVyZSBpcyBub3QgYW4gb2theSBvcGVuaW5nLlxuICAgIGlmICghbGFiZWxTdGFydCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIC8vIElmIHRoZSBjb3JyZXNwb25kaW5nIGxhYmVsIChsaW5rKSBzdGFydCBpcyBtYXJrZWQgYXMgaW5hY3RpdmUsXG4gICAgLy8gaXQgbWVhbnMgd2XigJlkIGJlIHdyYXBwaW5nIGEgbGluaywgbGlrZSB0aGlzOlxuICAgIC8vXG4gICAgLy8gYGBgbWFya2Rvd25cbiAgICAvLyA+IHwgYSBbYiBbY10oZCkgZV0oZikgZy5cbiAgICAvLyAgICAgICAgICAgICAgICAgIF5cbiAgICAvLyBgYGBcbiAgICAvL1xuICAgIC8vIFdlIGNhbuKAmXQgaGF2ZSB0aGF0LCBzbyBpdOKAmXMganVzdCBiYWxhbmNlZCBicmFja2V0cy5cbiAgICBpZiAobGFiZWxTdGFydC5faW5hY3RpdmUpIHtcbiAgICAgIHJldHVybiBsYWJlbEVuZE5vayhjb2RlKVxuICAgIH1cbiAgICBkZWZpbmVkID0gc2VsZi5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhcbiAgICAgIG5vcm1hbGl6ZUlkZW50aWZpZXIoXG4gICAgICAgIHNlbGYuc2xpY2VTZXJpYWxpemUoe1xuICAgICAgICAgIHN0YXJ0OiBsYWJlbFN0YXJ0LmVuZCxcbiAgICAgICAgICBlbmQ6IHNlbGYubm93KClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApXG4gICAgZWZmZWN0cy5lbnRlcignbGFiZWxFbmQnKVxuICAgIGVmZmVjdHMuZW50ZXIoJ2xhYmVsTWFya2VyJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ2xhYmVsTWFya2VyJylcbiAgICBlZmZlY3RzLmV4aXQoJ2xhYmVsRW5kJylcbiAgICByZXR1cm4gYWZ0ZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgY1xuICAgKiAgICAgICBeXG4gICAqID4gfCBbYV1bYl0gY1xuICAgKiAgICAgICBeXG4gICAqID4gfCBbYV1bXSBiXG4gICAqICAgICAgIF5cbiAgICogPiB8IFthXSBiXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICAvLyBOb3RlOiBgbWFya2Rvd24tcnNgIGFsc28gcGFyc2VzIEdGTSBmb290bm90ZXMgaGVyZSwgd2hpY2ggZm9yIHVzIGlzIGluXG4gICAgLy8gYW4gZXh0ZW5zaW9uLlxuXG4gICAgLy8gUmVzb3VyY2UgKGBbYXNkXShmZ2gpYCk/XG4gICAgaWYgKGNvZGUgPT09IDQwKSB7XG4gICAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KFxuICAgICAgICByZXNvdXJjZUNvbnN0cnVjdCxcbiAgICAgICAgbGFiZWxFbmRPayxcbiAgICAgICAgZGVmaW5lZCA/IGxhYmVsRW5kT2sgOiBsYWJlbEVuZE5va1xuICAgICAgKShjb2RlKVxuICAgIH1cblxuICAgIC8vIEZ1bGwgKGBbYXNkXVtmZ2hdYCkgb3IgY29sbGFwc2VkIChgW2FzZF1bXWApIHJlZmVyZW5jZT9cbiAgICBpZiAoY29kZSA9PT0gOTEpIHtcbiAgICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoXG4gICAgICAgIHJlZmVyZW5jZUZ1bGxDb25zdHJ1Y3QsXG4gICAgICAgIGxhYmVsRW5kT2ssXG4gICAgICAgIGRlZmluZWQgPyByZWZlcmVuY2VOb3RGdWxsIDogbGFiZWxFbmROb2tcbiAgICAgICkoY29kZSlcbiAgICB9XG5cbiAgICAvLyBTaG9ydGN1dCAoYFthc2RdYCkgcmVmZXJlbmNlP1xuICAgIHJldHVybiBkZWZpbmVkID8gbGFiZWxFbmRPayhjb2RlKSA6IGxhYmVsRW5kTm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYF1gLCBhdCBgW2AsIGJ1dCBub3QgYXQgYSBmdWxsIHJlZmVyZW5jZS5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiB3ZSBvbmx5IGdldCBoZXJlIGlmIHRoZSBsYWJlbCBpcyBkZWZpbmVkLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdW10gYlxuICAgKiAgICAgICAgXlxuICAgKiA+IHwgW2FdIGJcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHJlZmVyZW5jZU5vdEZ1bGwoY29kZSkge1xuICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoXG4gICAgICByZWZlcmVuY2VDb2xsYXBzZWRDb25zdHJ1Y3QsXG4gICAgICBsYWJlbEVuZE9rLFxuICAgICAgbGFiZWxFbmROb2tcbiAgICApKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogRG9uZSwgd2UgZm91bmQgc29tZXRoaW5nLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdKGIpIGNcbiAgICogICAgICAgICAgIF5cbiAgICogPiB8IFthXVtiXSBjXG4gICAqICAgICAgICAgICBeXG4gICAqID4gfCBbYV1bXSBiXG4gICAqICAgICAgICAgIF5cbiAgICogPiB8IFthXSBiXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBsYWJlbEVuZE9rKGNvZGUpIHtcbiAgICAvLyBOb3RlOiBgbWFya2Rvd24tcnNgIGRvZXMgYSBidW5jaCBvZiBzdHVmZiBoZXJlLlxuICAgIHJldHVybiBvayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIERvbmUsIGl04oCZcyBub3RoaW5nLlxuICAgKlxuICAgKiBUaGVyZSB3YXMgYW4gb2theSBvcGVuaW5nLCBidXQgd2UgZGlkbuKAmXQgbWF0Y2ggYW55dGhpbmcuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYiBjXG4gICAqICAgICAgICBeXG4gICAqID4gfCBbYV1bYiBjXG4gICAqICAgICAgICBeXG4gICAqID4gfCBbYV0gYlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxFbmROb2soY29kZSkge1xuICAgIGxhYmVsU3RhcnQuX2JhbGFuY2VkID0gdHJ1ZVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVJlc291cmNlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgcmV0dXJuIHJlc291cmNlU3RhcnRcblxuICAvKipcbiAgICogQXQgYSByZXNvdXJjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiKSBjXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvdXJjZVN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKCdyZXNvdXJjZScpXG4gICAgZWZmZWN0cy5lbnRlcigncmVzb3VyY2VNYXJrZXInKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCgncmVzb3VyY2VNYXJrZXInKVxuICAgIHJldHVybiByZXNvdXJjZUJlZm9yZVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHJlc291cmNlLCBhZnRlciBgKGAsIGF0IG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgY1xuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHJlc291cmNlQmVmb3JlKGNvZGUpIHtcbiAgICByZXR1cm4gbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKVxuICAgICAgPyBmYWN0b3J5V2hpdGVzcGFjZShlZmZlY3RzLCByZXNvdXJjZU9wZW4pKGNvZGUpXG4gICAgICA6IHJlc291cmNlT3Blbihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHJlc291cmNlLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLCBhdCBgKWAgb3IgYSBkZXN0aW5hdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiKSBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzb3VyY2VPcGVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDEpIHtcbiAgICAgIHJldHVybiByZXNvdXJjZUVuZChjb2RlKVxuICAgIH1cbiAgICByZXR1cm4gZmFjdG9yeURlc3RpbmF0aW9uKFxuICAgICAgZWZmZWN0cyxcbiAgICAgIHJlc291cmNlRGVzdGluYXRpb25BZnRlcixcbiAgICAgIHJlc291cmNlRGVzdGluYXRpb25NaXNzaW5nLFxuICAgICAgJ3Jlc291cmNlRGVzdGluYXRpb24nLFxuICAgICAgJ3Jlc291cmNlRGVzdGluYXRpb25MaXRlcmFsJyxcbiAgICAgICdyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlcicsXG4gICAgICAncmVzb3VyY2VEZXN0aW5hdGlvblJhdycsXG4gICAgICAncmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZycsXG4gICAgICAzMlxuICAgICkoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByZXNvdXJjZSwgYWZ0ZXIgZGVzdGluYXRpb24sIGF0IG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgY1xuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvdXJjZURlc3RpbmF0aW9uQWZ0ZXIoY29kZSkge1xuICAgIHJldHVybiBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpXG4gICAgICA/IGZhY3RvcnlXaGl0ZXNwYWNlKGVmZmVjdHMsIHJlc291cmNlQmV0d2VlbikoY29kZSlcbiAgICAgIDogcmVzb3VyY2VFbmQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBpbnZhbGlkIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdKDw8KSBiXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzb3VyY2VEZXN0aW5hdGlvbk1pc3NpbmcoY29kZSkge1xuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByZXNvdXJjZSwgYWZ0ZXIgZGVzdGluYXRpb24gYW5kIHdoaXRlc3BhY2UsIGF0IGAoYCBvciB0aXRsZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiICkgY1xuICAgKiAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzb3VyY2VCZXR3ZWVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gMzQgfHwgY29kZSA9PT0gMzkgfHwgY29kZSA9PT0gNDApIHtcbiAgICAgIHJldHVybiBmYWN0b3J5VGl0bGUoXG4gICAgICAgIGVmZmVjdHMsXG4gICAgICAgIHJlc291cmNlVGl0bGVBZnRlcixcbiAgICAgICAgbm9rLFxuICAgICAgICAncmVzb3VyY2VUaXRsZScsXG4gICAgICAgICdyZXNvdXJjZVRpdGxlTWFya2VyJyxcbiAgICAgICAgJ3Jlc291cmNlVGl0bGVTdHJpbmcnXG4gICAgICApKGNvZGUpXG4gICAgfVxuICAgIHJldHVybiByZXNvdXJjZUVuZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHJlc291cmNlLCBhZnRlciB0aXRsZSwgYXQgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiIFwiY1wiKSBkXG4gICAqICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvdXJjZVRpdGxlQWZ0ZXIoY29kZSkge1xuICAgIHJldHVybiBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpXG4gICAgICA/IGZhY3RvcnlXaGl0ZXNwYWNlKGVmZmVjdHMsIHJlc291cmNlRW5kKShjb2RlKVxuICAgICAgOiByZXNvdXJjZUVuZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHJlc291cmNlLCBhdCBgKWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgZFxuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvdXJjZUVuZChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQxKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCdyZXNvdXJjZU1hcmtlcicpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgncmVzb3VyY2VNYXJrZXInKVxuICAgICAgZWZmZWN0cy5leGl0KCdyZXNvdXJjZScpXG4gICAgICByZXR1cm4gb2tcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplUmVmZXJlbmNlRnVsbChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIHJldHVybiByZWZlcmVuY2VGdWxsXG5cbiAgLyoqXG4gICAqIEluIGEgcmVmZXJlbmNlIChmdWxsKSwgYXQgdGhlIGBbYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXVtiXSBkXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZWZlcmVuY2VGdWxsKGNvZGUpIHtcbiAgICByZXR1cm4gZmFjdG9yeUxhYmVsLmNhbGwoXG4gICAgICBzZWxmLFxuICAgICAgZWZmZWN0cyxcbiAgICAgIHJlZmVyZW5jZUZ1bGxBZnRlcixcbiAgICAgIHJlZmVyZW5jZUZ1bGxNaXNzaW5nLFxuICAgICAgJ3JlZmVyZW5jZScsXG4gICAgICAncmVmZXJlbmNlTWFya2VyJyxcbiAgICAgICdyZWZlcmVuY2VTdHJpbmcnXG4gICAgKShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGEgcmVmZXJlbmNlIChmdWxsKSwgYWZ0ZXIgYF1gLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdW2JdIGRcbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVmZXJlbmNlRnVsbEFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gc2VsZi5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhcbiAgICAgIG5vcm1hbGl6ZUlkZW50aWZpZXIoXG4gICAgICAgIHNlbGYuc2xpY2VTZXJpYWxpemUoc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV1bMV0pLnNsaWNlKDEsIC0xKVxuICAgICAgKVxuICAgIClcbiAgICAgID8gb2soY29kZSlcbiAgICAgIDogbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gcmVmZXJlbmNlIChmdWxsKSB0aGF0IHdhcyBtaXNzaW5nLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdW2IgZFxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVmZXJlbmNlRnVsbE1pc3NpbmcoY29kZSkge1xuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVJlZmVyZW5jZUNvbGxhcHNlZChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiByZWZlcmVuY2VDb2xsYXBzZWRTdGFydFxuXG4gIC8qKlxuICAgKiBJbiByZWZlcmVuY2UgKGNvbGxhcHNlZCksIGF0IGBbYC5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiB3ZSBvbmx5IGdldCBoZXJlIGlmIHRoZSBsYWJlbCBpcyBkZWZpbmVkLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdW10gZFxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVmZXJlbmNlQ29sbGFwc2VkU3RhcnQoY29kZSkge1xuICAgIC8vIFdlIG9ubHkgYXR0ZW1wdCBhIGNvbGxhcHNlZCBsYWJlbCBpZiB0aGVyZeKAmXMgYSBgW2AuXG5cbiAgICBlZmZlY3RzLmVudGVyKCdyZWZlcmVuY2UnKVxuICAgIGVmZmVjdHMuZW50ZXIoJ3JlZmVyZW5jZU1hcmtlcicpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdyZWZlcmVuY2VNYXJrZXInKVxuICAgIHJldHVybiByZWZlcmVuY2VDb2xsYXBzZWRPcGVuXG4gIH1cblxuICAvKipcbiAgICogSW4gcmVmZXJlbmNlIChjb2xsYXBzZWQpLCBhdCBgXWAuXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogd2Ugb25seSBnZXQgaGVyZSBpZiB0aGUgbGFiZWwgaXMgZGVmaW5lZC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXVtdIGRcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiAgQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVmZXJlbmNlQ29sbGFwc2VkT3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDkzKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCdyZWZlcmVuY2VNYXJrZXInKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ3JlZmVyZW5jZU1hcmtlcicpXG4gICAgICBlZmZlY3RzLmV4aXQoJ3JlZmVyZW5jZScpXG4gICAgICByZXR1cm4gb2tcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2xhYmVsRW5kfSBmcm9tICcuL2xhYmVsLWVuZC5qcydcblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgbGFiZWxTdGFydEltYWdlID0ge1xuICBuYW1lOiAnbGFiZWxTdGFydEltYWdlJyxcbiAgdG9rZW5pemU6IHRva2VuaXplTGFiZWxTdGFydEltYWdlLFxuICByZXNvbHZlQWxsOiBsYWJlbEVuZC5yZXNvbHZlQWxsXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTGFiZWxTdGFydEltYWdlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGxhYmVsIChpbWFnZSkgc3RhcnQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhICFbYl0gY1xuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignbGFiZWxJbWFnZScpXG4gICAgZWZmZWN0cy5lbnRlcignbGFiZWxJbWFnZU1hcmtlcicpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdsYWJlbEltYWdlTWFya2VyJylcbiAgICByZXR1cm4gb3BlblxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGAhYCwgYXQgYFtgLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSAhW2JdIGNcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSA5MSkge1xuICAgICAgZWZmZWN0cy5lbnRlcignbGFiZWxNYXJrZXInKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2xhYmVsTWFya2VyJylcbiAgICAgIGVmZmVjdHMuZXhpdCgnbGFiZWxJbWFnZScpXG4gICAgICByZXR1cm4gYWZ0ZXJcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGAhW2AuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhICFbYl0gY1xuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIFRoaXMgaXMgbmVlZGVkIGluIGJlY2F1c2UsIHdoZW4gR0ZNIGZvb3Rub3RlcyBhcmUgZW5hYmxlZCwgaW1hZ2VzIG5ldmVyXG4gICAqIGZvcm0gd2hlbiBzdGFydGVkIHdpdGggYSBgXmAuXG4gICAqIEluc3RlYWQsIGxpbmtzIGZvcm06XG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICFbXmFdKGIpXG4gICAqXG4gICAqICFbXmFdW2JdXG4gICAqXG4gICAqIFtiXTogY1xuICAgKiBgYGBcbiAgICpcbiAgICogYGBgaHRtbFxuICAgKiA8cD4hPGEgaHJlZj1cXFwiYlxcXCI+XmE8L2E+PC9wPlxuICAgKiA8cD4hPGEgaHJlZj1cXFwiY1xcXCI+XmE8L2E+PC9wPlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXIoY29kZSkge1xuICAgIC8vIFRvIGRvOiB1c2UgYSBuZXcgZmllbGQgdG8gZG8gdGhpcywgdGhpcyBpcyBzdGlsbCBuZWVkZWQgZm9yXG4gICAgLy8gYG1pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlYCwgYnV0IHRoZSBgbGFiZWwtc3RhcnQtbGlua2BcbiAgICAvLyBiZWhhdmlvciBpc27igJl0LlxuICAgIC8vIEhpZGRlbiBmb290bm90ZXMgaG9vay5cbiAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgcmV0dXJuIGNvZGUgPT09IDk0ICYmICdfaGlkZGVuRm9vdG5vdGVTdXBwb3J0JyBpbiBzZWxmLnBhcnNlci5jb25zdHJ1Y3RzXG4gICAgICA/IG5vayhjb2RlKVxuICAgICAgOiBvayhjb2RlKVxuICB9XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2xhYmVsRW5kfSBmcm9tICcuL2xhYmVsLWVuZC5qcydcblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgbGFiZWxTdGFydExpbmsgPSB7XG4gIG5hbWU6ICdsYWJlbFN0YXJ0TGluaycsXG4gIHRva2VuaXplOiB0b2tlbml6ZUxhYmVsU3RhcnRMaW5rLFxuICByZXNvbHZlQWxsOiBsYWJlbEVuZC5yZXNvbHZlQWxsXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTGFiZWxTdGFydExpbmsoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgbGFiZWwgKGxpbmspIHN0YXJ0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSBbYl0gY1xuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignbGFiZWxMaW5rJylcbiAgICBlZmZlY3RzLmVudGVyKCdsYWJlbE1hcmtlcicpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdsYWJlbE1hcmtlcicpXG4gICAgZWZmZWN0cy5leGl0KCdsYWJlbExpbmsnKVxuICAgIHJldHVybiBhZnRlclxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gYWZ0ZXIoY29kZSkge1xuICAgIC8vIFRvIGRvOiB0aGlzIGlzbuKAmXQgbmVlZGVkIGluIGBtaWNyb21hcmstZXh0ZW5zaW9uLWdmbS1mb290bm90ZWAsXG4gICAgLy8gcmVtb3ZlLlxuICAgIC8vIEhpZGRlbiBmb290bm90ZXMgaG9vay5cbiAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgcmV0dXJuIGNvZGUgPT09IDk0ICYmICdfaGlkZGVuRm9vdG5vdGVTdXBwb3J0JyBpbiBzZWxmLnBhcnNlci5jb25zdHJ1Y3RzXG4gICAgICA/IG5vayhjb2RlKVxuICAgICAgOiBvayhjb2RlKVxuICB9XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2ZhY3RvcnlTcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZ30gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgbGluZUVuZGluZyA9IHtcbiAgbmFtZTogJ2xpbmVFbmRpbmcnLFxuICB0b2tlbml6ZTogdG9rZW5pemVMaW5lRW5kaW5nXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTGluZUVuZGluZyhlZmZlY3RzLCBvaykge1xuICByZXR1cm4gc3RhcnRcblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignbGluZUVuZGluZycpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdsaW5lRW5kaW5nJylcbiAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIG9rLCAnbGluZVByZWZpeCcpXG4gIH1cbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcidcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IHRoZW1hdGljQnJlYWsgPSB7XG4gIG5hbWU6ICd0aGVtYXRpY0JyZWFrJyxcbiAgdG9rZW5pemU6IHRva2VuaXplVGhlbWF0aWNCcmVha1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVRoZW1hdGljQnJlYWsoZWZmZWN0cywgb2ssIG5vaykge1xuICBsZXQgc2l6ZSA9IDBcbiAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTxDb2RlPn0gKi9cbiAgbGV0IG1hcmtlclxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgdGhlbWF0aWMgYnJlYWsuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqKipcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKCd0aGVtYXRpY0JyZWFrJylcbiAgICAvLyBUbyBkbzogcGFyc2UgaW5kZW50IGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICByZXR1cm4gYmVmb3JlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZSwgYXQgbWFya2VyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKioqXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBiZWZvcmUoY29kZSkge1xuICAgIG1hcmtlciA9IGNvZGVcbiAgICByZXR1cm4gYXRCcmVhayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIHNvbWV0aGluZywgYmVmb3JlIHNvbWV0aGluZyBlbHNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKioqXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhdEJyZWFrKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCd0aGVtYXRpY0JyZWFrU2VxdWVuY2UnKVxuICAgICAgcmV0dXJuIHNlcXVlbmNlKGNvZGUpXG4gICAgfVxuICAgIGlmIChzaXplID49IDMgJiYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSkge1xuICAgICAgZWZmZWN0cy5leGl0KCd0aGVtYXRpY0JyZWFrJylcbiAgICAgIHJldHVybiBvayhjb2RlKVxuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gc2VxdWVuY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqKipcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHNlcXVlbmNlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHNpemUrK1xuICAgICAgcmV0dXJuIHNlcXVlbmNlXG4gICAgfVxuICAgIGVmZmVjdHMuZXhpdCgndGhlbWF0aWNCcmVha1NlcXVlbmNlJylcbiAgICByZXR1cm4gbWFya2Rvd25TcGFjZShjb2RlKVxuICAgICAgPyBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYXRCcmVhaywgJ3doaXRlc3BhY2UnKShjb2RlKVxuICAgICAgOiBhdEJyZWFrKGNvZGUpXG4gIH1cbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29udGFpbmVyU3RhdGV9IENvbnRhaW5lclN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkV4aXRlcn0gRXhpdGVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7YXNjaWlEaWdpdCwgbWFya2Rvd25TcGFjZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHtibGFua0xpbmV9IGZyb20gJy4vYmxhbmstbGluZS5qcydcbmltcG9ydCB7dGhlbWF0aWNCcmVha30gZnJvbSAnLi90aGVtYXRpYy1icmVhay5qcydcblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgbGlzdCA9IHtcbiAgbmFtZTogJ2xpc3QnLFxuICB0b2tlbml6ZTogdG9rZW5pemVMaXN0U3RhcnQsXG4gIGNvbnRpbnVhdGlvbjoge1xuICAgIHRva2VuaXplOiB0b2tlbml6ZUxpc3RDb250aW51YXRpb25cbiAgfSxcbiAgZXhpdDogdG9rZW5pemVMaXN0RW5kXG59XG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuY29uc3QgbGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlQ29uc3RydWN0ID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVMaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UsXG4gIHBhcnRpYWw6IHRydWVcbn1cblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5jb25zdCBpbmRlbnRDb25zdHJ1Y3QgPSB7XG4gIHRva2VuaXplOiB0b2tlbml6ZUluZGVudCxcbiAgcGFydGlhbDogdHJ1ZVxufVxuXG4vLyBUbyBkbzogYG1hcmtkb3duLXJzYCBwYXJzZXMgbGlzdCBpdGVtcyBvbiB0aGVpciBvd24gYW5kIGxhdGVyIHN0aXRjaGVzIHRoZW1cbi8vIHRvZ2V0aGVyLlxuXG4vKipcbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUxpc3RTdGFydChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIGNvbnN0IHRhaWwgPSBzZWxmLmV2ZW50c1tzZWxmLmV2ZW50cy5sZW5ndGggLSAxXVxuICBsZXQgaW5pdGlhbFNpemUgPVxuICAgIHRhaWwgJiYgdGFpbFsxXS50eXBlID09PSAnbGluZVByZWZpeCdcbiAgICAgID8gdGFpbFsyXS5zbGljZVNlcmlhbGl6ZSh0YWlsWzFdLCB0cnVlKS5sZW5ndGhcbiAgICAgIDogMFxuICBsZXQgc2l6ZSA9IDBcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGNvbnN0IGtpbmQgPVxuICAgICAgc2VsZi5jb250YWluZXJTdGF0ZS50eXBlIHx8XG4gICAgICAoY29kZSA9PT0gNDIgfHwgY29kZSA9PT0gNDMgfHwgY29kZSA9PT0gNDVcbiAgICAgICAgPyAnbGlzdFVub3JkZXJlZCdcbiAgICAgICAgOiAnbGlzdE9yZGVyZWQnKVxuICAgIGlmIChcbiAgICAgIGtpbmQgPT09ICdsaXN0VW5vcmRlcmVkJ1xuICAgICAgICA/ICFzZWxmLmNvbnRhaW5lclN0YXRlLm1hcmtlciB8fCBjb2RlID09PSBzZWxmLmNvbnRhaW5lclN0YXRlLm1hcmtlclxuICAgICAgICA6IGFzY2lpRGlnaXQoY29kZSlcbiAgICApIHtcbiAgICAgIGlmICghc2VsZi5jb250YWluZXJTdGF0ZS50eXBlKSB7XG4gICAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUudHlwZSA9IGtpbmRcbiAgICAgICAgZWZmZWN0cy5lbnRlcihraW5kLCB7XG4gICAgICAgICAgX2NvbnRhaW5lcjogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaWYgKGtpbmQgPT09ICdsaXN0VW5vcmRlcmVkJykge1xuICAgICAgICBlZmZlY3RzLmVudGVyKCdsaXN0SXRlbVByZWZpeCcpXG4gICAgICAgIHJldHVybiBjb2RlID09PSA0MiB8fCBjb2RlID09PSA0NVxuICAgICAgICAgID8gZWZmZWN0cy5jaGVjayh0aGVtYXRpY0JyZWFrLCBub2ssIGF0TWFya2VyKShjb2RlKVxuICAgICAgICAgIDogYXRNYXJrZXIoY29kZSlcbiAgICAgIH1cbiAgICAgIGlmICghc2VsZi5pbnRlcnJ1cHQgfHwgY29kZSA9PT0gNDkpIHtcbiAgICAgICAgZWZmZWN0cy5lbnRlcignbGlzdEl0ZW1QcmVmaXgnKVxuICAgICAgICBlZmZlY3RzLmVudGVyKCdsaXN0SXRlbVZhbHVlJylcbiAgICAgICAgcmV0dXJuIGluc2lkZShjb2RlKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBpbnNpZGUoY29kZSkge1xuICAgIGlmIChhc2NpaURpZ2l0KGNvZGUpICYmICsrc2l6ZSA8IDEwKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBpbnNpZGVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKCFzZWxmLmludGVycnVwdCB8fCBzaXplIDwgMikgJiZcbiAgICAgIChzZWxmLmNvbnRhaW5lclN0YXRlLm1hcmtlclxuICAgICAgICA/IGNvZGUgPT09IHNlbGYuY29udGFpbmVyU3RhdGUubWFya2VyXG4gICAgICAgIDogY29kZSA9PT0gNDEgfHwgY29kZSA9PT0gNDYpXG4gICAgKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2xpc3RJdGVtVmFsdWUnKVxuICAgICAgcmV0dXJuIGF0TWFya2VyKGNvZGUpXG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqKi9cbiAgZnVuY3Rpb24gYXRNYXJrZXIoY29kZSkge1xuICAgIGVmZmVjdHMuZW50ZXIoJ2xpc3RJdGVtTWFya2VyJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ2xpc3RJdGVtTWFya2VyJylcbiAgICBzZWxmLmNvbnRhaW5lclN0YXRlLm1hcmtlciA9IHNlbGYuY29udGFpbmVyU3RhdGUubWFya2VyIHx8IGNvZGVcbiAgICByZXR1cm4gZWZmZWN0cy5jaGVjayhcbiAgICAgIGJsYW5rTGluZSxcbiAgICAgIC8vIENhbuKAmXQgYmUgZW1wdHkgd2hlbiBpbnRlcnJ1cHRpbmcuXG4gICAgICBzZWxmLmludGVycnVwdCA/IG5vayA6IG9uQmxhbmssXG4gICAgICBlZmZlY3RzLmF0dGVtcHQoXG4gICAgICAgIGxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZUNvbnN0cnVjdCxcbiAgICAgICAgZW5kT2ZQcmVmaXgsXG4gICAgICAgIG90aGVyUHJlZml4XG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gb25CbGFuayhjb2RlKSB7XG4gICAgc2VsZi5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lID0gdHJ1ZVxuICAgIGluaXRpYWxTaXplKytcbiAgICByZXR1cm4gZW5kT2ZQcmVmaXgoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIG90aGVyUHJlZml4KGNvZGUpIHtcbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcignbGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlJylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KCdsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UnKVxuICAgICAgcmV0dXJuIGVuZE9mUHJlZml4XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGVuZE9mUHJlZml4KGNvZGUpIHtcbiAgICBzZWxmLmNvbnRhaW5lclN0YXRlLnNpemUgPVxuICAgICAgaW5pdGlhbFNpemUgK1xuICAgICAgc2VsZi5zbGljZVNlcmlhbGl6ZShlZmZlY3RzLmV4aXQoJ2xpc3RJdGVtUHJlZml4JyksIHRydWUpLmxlbmd0aFxuICAgIHJldHVybiBvayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTGlzdENvbnRpbnVhdGlvbihlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIHNlbGYuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyA9IHVuZGVmaW5lZFxuICByZXR1cm4gZWZmZWN0cy5jaGVjayhibGFua0xpbmUsIG9uQmxhbmssIG5vdEJsYW5rKVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIG9uQmxhbmsoY29kZSkge1xuICAgIHNlbGYuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXMgPVxuICAgICAgc2VsZi5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcyB8fFxuICAgICAgc2VsZi5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lXG5cbiAgICAvLyBXZSBoYXZlIGEgYmxhbmsgbGluZS5cbiAgICAvLyBTdGlsbCwgdHJ5IHRvIGNvbnN1bWUgYXQgbW9zdCB0aGUgaXRlbXMgc2l6ZS5cbiAgICByZXR1cm4gZmFjdG9yeVNwYWNlKFxuICAgICAgZWZmZWN0cyxcbiAgICAgIG9rLFxuICAgICAgJ2xpc3RJdGVtSW5kZW50JyxcbiAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUuc2l6ZSArIDFcbiAgICApKGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBub3RCbGFuayhjb2RlKSB7XG4gICAgaWYgKHNlbGYuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXMgfHwgIW1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXMgPSB1bmRlZmluZWRcbiAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSA9IHVuZGVmaW5lZFxuICAgICAgcmV0dXJuIG5vdEluQ3VycmVudEl0ZW0oY29kZSlcbiAgICB9XG4gICAgc2VsZi5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcyA9IHVuZGVmaW5lZFxuICAgIHNlbGYuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSA9IHVuZGVmaW5lZFxuICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoaW5kZW50Q29uc3RydWN0LCBvaywgbm90SW5DdXJyZW50SXRlbSkoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIG5vdEluQ3VycmVudEl0ZW0oY29kZSkge1xuICAgIC8vIFdoaWxlIHdlIGRvIGNvbnRpbnVlLCB3ZSBzaWduYWwgdGhhdCB0aGUgZmxvdyBzaG91bGQgYmUgY2xvc2VkLlxuICAgIHNlbGYuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyA9IHRydWVcbiAgICAvLyBBcyB3ZeKAmXJlIGNsb3NpbmcgZmxvdywgd2XigJlyZSBubyBsb25nZXIgaW50ZXJydXB0aW5nLlxuICAgIHNlbGYuaW50ZXJydXB0ID0gdW5kZWZpbmVkXG4gICAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cblxuICAgIHJldHVybiBmYWN0b3J5U3BhY2UoXG4gICAgICBlZmZlY3RzLFxuICAgICAgZWZmZWN0cy5hdHRlbXB0KGxpc3QsIG9rLCBub2spLFxuICAgICAgJ2xpbmVQcmVmaXgnLFxuICAgICAgc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoJ2NvZGVJbmRlbnRlZCcpXG4gICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgIDogNFxuICAgICkoY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUluZGVudChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIHJldHVybiBmYWN0b3J5U3BhY2UoXG4gICAgZWZmZWN0cyxcbiAgICBhZnRlclByZWZpeCxcbiAgICAnbGlzdEl0ZW1JbmRlbnQnLFxuICAgIHNlbGYuY29udGFpbmVyU3RhdGUuc2l6ZSArIDFcbiAgKVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGFmdGVyUHJlZml4KGNvZGUpIHtcbiAgICBjb25zdCB0YWlsID0gc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV1cbiAgICByZXR1cm4gdGFpbCAmJlxuICAgICAgdGFpbFsxXS50eXBlID09PSAnbGlzdEl0ZW1JbmRlbnQnICYmXG4gICAgICB0YWlsWzJdLnNsaWNlU2VyaWFsaXplKHRhaWxbMV0sIHRydWUpLmxlbmd0aCA9PT0gc2VsZi5jb250YWluZXJTdGF0ZS5zaXplXG4gICAgICA/IG9rKGNvZGUpXG4gICAgICA6IG5vayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogQHR5cGUge0V4aXRlcn1cbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTGlzdEVuZChlZmZlY3RzKSB7XG4gIGVmZmVjdHMuZXhpdCh0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUpXG59XG5cbi8qKlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcblxuICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuXG4gIHJldHVybiBmYWN0b3J5U3BhY2UoXG4gICAgZWZmZWN0cyxcbiAgICBhZnRlclByZWZpeCxcbiAgICAnbGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlJyxcbiAgICBzZWxmLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygnY29kZUluZGVudGVkJylcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IDQgKyAxXG4gIClcblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBhZnRlclByZWZpeChjb2RlKSB7XG4gICAgY29uc3QgdGFpbCA9IHNlbGYuZXZlbnRzW3NlbGYuZXZlbnRzLmxlbmd0aCAtIDFdXG4gICAgcmV0dXJuICFtYXJrZG93blNwYWNlKGNvZGUpICYmXG4gICAgICB0YWlsICYmXG4gICAgICB0YWlsWzFdLnR5cGUgPT09ICdsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UnXG4gICAgICA/IG9rKGNvZGUpXG4gICAgICA6IG5vayhjb2RlKVxuICB9XG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db2RlfSBDb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnN0cnVjdH0gQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlJlc29sdmVyfSBSZXNvbHZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2ZhY3RvcnlTcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZywgbWFya2Rvd25TcGFjZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3Qgc2V0ZXh0VW5kZXJsaW5lID0ge1xuICBuYW1lOiAnc2V0ZXh0VW5kZXJsaW5lJyxcbiAgdG9rZW5pemU6IHRva2VuaXplU2V0ZXh0VW5kZXJsaW5lLFxuICByZXNvbHZlVG86IHJlc29sdmVUb1NldGV4dFVuZGVybGluZVxufVxuXG4vKiogQHR5cGUge1Jlc29sdmVyfSAqL1xuZnVuY3Rpb24gcmVzb2x2ZVRvU2V0ZXh0VW5kZXJsaW5lKGV2ZW50cywgY29udGV4dCkge1xuICAvLyBUbyBkbzogcmVzb2x2ZSBsaWtlIGBtYXJrZG93bi1yc2AuXG4gIGxldCBpbmRleCA9IGV2ZW50cy5sZW5ndGhcbiAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gIGxldCBjb250ZW50XG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdGV4dFxuICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGRlZmluaXRpb25cblxuICAvLyBGaW5kIHRoZSBvcGVuaW5nIG9mIHRoZSBjb250ZW50LlxuICAvLyBJdOKAmWxsIGFsd2F5cyBleGlzdDogd2UgZG9u4oCZdCB0b2tlbml6ZSBpZiBpdCBpc27igJl0IHRoZXJlLlxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGlmIChldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInKSB7XG4gICAgICBpZiAoZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSAnY29udGVudCcpIHtcbiAgICAgICAgY29udGVudCA9IGluZGV4XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBpZiAoZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSAncGFyYWdyYXBoJykge1xuICAgICAgICB0ZXh0ID0gaW5kZXhcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gRXhpdFxuICAgIGVsc2Uge1xuICAgICAgaWYgKGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gJ2NvbnRlbnQnKSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY29udGVudCBlbmQgKGlmIG5lZWRlZCB3ZeKAmWxsIGFkZCBpdCBsYXRlcilcbiAgICAgICAgZXZlbnRzLnNwbGljZShpbmRleCwgMSlcbiAgICAgIH1cbiAgICAgIGlmICghZGVmaW5pdGlvbiAmJiBldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdkZWZpbml0aW9uJykge1xuICAgICAgICBkZWZpbml0aW9uID0gaW5kZXhcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3QgaGVhZGluZyA9IHtcbiAgICB0eXBlOiAnc2V0ZXh0SGVhZGluZycsXG4gICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1t0ZXh0XVsxXS5zdGFydCksXG4gICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdWzFdLmVuZClcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgcGFyYWdyYXBoIHRvIHNldGV4dCBoZWFkaW5nIHRleHQuXG4gIGV2ZW50c1t0ZXh0XVsxXS50eXBlID0gJ3NldGV4dEhlYWRpbmdUZXh0J1xuXG4gIC8vIElmIHdlIGhhdmUgZGVmaW5pdGlvbnMgaW4gdGhlIGNvbnRlbnQsIHdl4oCZbGwga2VlcCBvbiBoYXZpbmcgY29udGVudCxcbiAgLy8gYnV0IHdlIG5lZWQgbW92ZSBpdC5cbiAgaWYgKGRlZmluaXRpb24pIHtcbiAgICBldmVudHMuc3BsaWNlKHRleHQsIDAsIFsnZW50ZXInLCBoZWFkaW5nLCBjb250ZXh0XSlcbiAgICBldmVudHMuc3BsaWNlKGRlZmluaXRpb24gKyAxLCAwLCBbJ2V4aXQnLCBldmVudHNbY29udGVudF1bMV0sIGNvbnRleHRdKVxuICAgIGV2ZW50c1tjb250ZW50XVsxXS5lbmQgPSBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbZGVmaW5pdGlvbl1bMV0uZW5kKVxuICB9IGVsc2Uge1xuICAgIGV2ZW50c1tjb250ZW50XVsxXSA9IGhlYWRpbmdcbiAgfVxuXG4gIC8vIEFkZCB0aGUgaGVhZGluZyBleGl0IGF0IHRoZSBlbmQuXG4gIGV2ZW50cy5wdXNoKFsnZXhpdCcsIGhlYWRpbmcsIGNvbnRleHRdKVxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplU2V0ZXh0VW5kZXJsaW5lKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTxDb2RlPn0gKi9cbiAgbGV0IG1hcmtlclxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogQXQgc3RhcnQgb2YgaGVhZGluZyAoc2V0ZXh0KSB1bmRlcmxpbmUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCBhYVxuICAgKiA+IHwgPT1cbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBsZXQgaW5kZXggPSBzZWxmLmV2ZW50cy5sZW5ndGhcbiAgICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IHBhcmFncmFwaFxuICAgIC8vIEZpbmQgYW4gb3BlbmluZy5cbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgLy8gU2tpcCBlbnRlci9leGl0IG9mIGxpbmUgZW5kaW5nLCBsaW5lIHByZWZpeCwgYW5kIGNvbnRlbnQuXG4gICAgICAvLyBXZSBjYW4gbm93IGVpdGhlciBoYXZlIGEgZGVmaW5pdGlvbiBvciBhIHBhcmFncmFwaC5cbiAgICAgIGlmIChcbiAgICAgICAgc2VsZi5ldmVudHNbaW5kZXhdWzFdLnR5cGUgIT09ICdsaW5lRW5kaW5nJyAmJlxuICAgICAgICBzZWxmLmV2ZW50c1tpbmRleF1bMV0udHlwZSAhPT0gJ2xpbmVQcmVmaXgnICYmXG4gICAgICAgIHNlbGYuZXZlbnRzW2luZGV4XVsxXS50eXBlICE9PSAnY29udGVudCdcbiAgICAgICkge1xuICAgICAgICBwYXJhZ3JhcGggPSBzZWxmLmV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gJ3BhcmFncmFwaCdcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUbyBkbzogaGFuZGxlIGxhenkvcGllcmNlIGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICAvLyBUbyBkbzogcGFyc2UgaW5kZW50IGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICBpZiAoIXNlbGYucGFyc2VyLmxhenlbc2VsZi5ub3coKS5saW5lXSAmJiAoc2VsZi5pbnRlcnJ1cHQgfHwgcGFyYWdyYXBoKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcignc2V0ZXh0SGVhZGluZ0xpbmUnKVxuICAgICAgbWFya2VyID0gY29kZVxuICAgICAgcmV0dXJuIGJlZm9yZShjb2RlKVxuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZSwgYXQgYC1gIG9yIGA9YC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IGFhXG4gICAqID4gfCA9PVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYmVmb3JlKGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKCdzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlJylcbiAgICByZXR1cm4gaW5zaWRlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gc2VxdWVuY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCBhYVxuICAgKiA+IHwgPT1cbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gaW5zaWRlXG4gICAgfVxuICAgIGVmZmVjdHMuZXhpdCgnc2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZScpXG4gICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICAgID8gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGFmdGVyLCAnbGluZVN1ZmZpeCcpKGNvZGUpXG4gICAgICA6IGFmdGVyKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgc2VxdWVuY2UsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCBhYVxuICAgKiA+IHwgPT1cbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KCdzZXRleHRIZWFkaW5nTGluZScpXG4gICAgICByZXR1cm4gb2soY29kZSlcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG4iLAogICAgImV4cG9ydCB7YXR0ZW50aW9ufSBmcm9tICcuL2xpYi9hdHRlbnRpb24uanMnXG5leHBvcnQge2F1dG9saW5rfSBmcm9tICcuL2xpYi9hdXRvbGluay5qcydcbmV4cG9ydCB7YmxhbmtMaW5lfSBmcm9tICcuL2xpYi9ibGFuay1saW5lLmpzJ1xuZXhwb3J0IHtibG9ja1F1b3RlfSBmcm9tICcuL2xpYi9ibG9jay1xdW90ZS5qcydcbmV4cG9ydCB7Y2hhcmFjdGVyRXNjYXBlfSBmcm9tICcuL2xpYi9jaGFyYWN0ZXItZXNjYXBlLmpzJ1xuZXhwb3J0IHtjaGFyYWN0ZXJSZWZlcmVuY2V9IGZyb20gJy4vbGliL2NoYXJhY3Rlci1yZWZlcmVuY2UuanMnXG5leHBvcnQge2NvZGVGZW5jZWR9IGZyb20gJy4vbGliL2NvZGUtZmVuY2VkLmpzJ1xuZXhwb3J0IHtjb2RlSW5kZW50ZWR9IGZyb20gJy4vbGliL2NvZGUtaW5kZW50ZWQuanMnXG5leHBvcnQge2NvZGVUZXh0fSBmcm9tICcuL2xpYi9jb2RlLXRleHQuanMnXG5leHBvcnQge2NvbnRlbnR9IGZyb20gJy4vbGliL2NvbnRlbnQuanMnXG5leHBvcnQge2RlZmluaXRpb259IGZyb20gJy4vbGliL2RlZmluaXRpb24uanMnXG5leHBvcnQge2hhcmRCcmVha0VzY2FwZX0gZnJvbSAnLi9saWIvaGFyZC1icmVhay1lc2NhcGUuanMnXG5leHBvcnQge2hlYWRpbmdBdHh9IGZyb20gJy4vbGliL2hlYWRpbmctYXR4LmpzJ1xuZXhwb3J0IHtodG1sRmxvd30gZnJvbSAnLi9saWIvaHRtbC1mbG93LmpzJ1xuZXhwb3J0IHtodG1sVGV4dH0gZnJvbSAnLi9saWIvaHRtbC10ZXh0LmpzJ1xuZXhwb3J0IHtsYWJlbEVuZH0gZnJvbSAnLi9saWIvbGFiZWwtZW5kLmpzJ1xuZXhwb3J0IHtsYWJlbFN0YXJ0SW1hZ2V9IGZyb20gJy4vbGliL2xhYmVsLXN0YXJ0LWltYWdlLmpzJ1xuZXhwb3J0IHtsYWJlbFN0YXJ0TGlua30gZnJvbSAnLi9saWIvbGFiZWwtc3RhcnQtbGluay5qcydcbmV4cG9ydCB7bGluZUVuZGluZ30gZnJvbSAnLi9saWIvbGluZS1lbmRpbmcuanMnXG5leHBvcnQge2xpc3R9IGZyb20gJy4vbGliL2xpc3QuanMnXG5leHBvcnQge3NldGV4dFVuZGVybGluZX0gZnJvbSAnLi9saWIvc2V0ZXh0LXVuZGVybGluZS5qcydcbmV4cG9ydCB7dGhlbWF0aWNCcmVha30gZnJvbSAnLi9saWIvdGhlbWF0aWMtYnJlYWsuanMnXG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Jbml0aWFsQ29uc3RydWN0fSBJbml0aWFsQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkluaXRpYWxpemVyfSBJbml0aWFsaXplclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqL1xuXG5pbXBvcnQge2JsYW5rTGluZSwgY29udGVudH0gZnJvbSAnbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyaydcbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG4vKiogQHR5cGUge0luaXRpYWxDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgZmxvdyA9IHtcbiAgdG9rZW5pemU6IGluaXRpYWxpemVGbG93XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtJbml0aWFsaXplcn1cbiAqL1xuZnVuY3Rpb24gaW5pdGlhbGl6ZUZsb3coZWZmZWN0cykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICBjb25zdCBpbml0aWFsID0gZWZmZWN0cy5hdHRlbXB0KFxuICAgIC8vIFRyeSB0byBwYXJzZSBhIGJsYW5rIGxpbmUuXG4gICAgYmxhbmtMaW5lLFxuICAgIGF0QmxhbmtFbmRpbmcsXG4gICAgLy8gVHJ5IHRvIHBhcnNlIGluaXRpYWwgZmxvdyAoZXNzZW50aWFsbHksIG9ubHkgY29kZSkuXG4gICAgZWZmZWN0cy5hdHRlbXB0KFxuICAgICAgdGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93SW5pdGlhbCxcbiAgICAgIGFmdGVyQ29uc3RydWN0LFxuICAgICAgZmFjdG9yeVNwYWNlKFxuICAgICAgICBlZmZlY3RzLFxuICAgICAgICBlZmZlY3RzLmF0dGVtcHQoXG4gICAgICAgICAgdGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93LFxuICAgICAgICAgIGFmdGVyQ29uc3RydWN0LFxuICAgICAgICAgIGVmZmVjdHMuYXR0ZW1wdChjb250ZW50LCBhZnRlckNvbnN0cnVjdClcbiAgICAgICAgKSxcbiAgICAgICAgJ2xpbmVQcmVmaXgnXG4gICAgICApXG4gICAgKVxuICApXG4gIHJldHVybiBpbml0aWFsXG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gYXRCbGFua0VuZGluZyhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoJ2xpbmVFbmRpbmdCbGFuaycpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdsaW5lRW5kaW5nQmxhbmsnKVxuICAgIHNlbGYuY3VycmVudENvbnN0cnVjdCA9IHVuZGVmaW5lZFxuICAgIHJldHVybiBpbml0aWFsXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBhZnRlckNvbnN0cnVjdChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoJ2xpbmVFbmRpbmcnKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCgnbGluZUVuZGluZycpXG4gICAgc2VsZi5jdXJyZW50Q29uc3RydWN0ID0gdW5kZWZpbmVkXG4gICAgcmV0dXJuIGluaXRpYWxcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Jbml0aWFsQ29uc3RydWN0fSBJbml0aWFsQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkluaXRpYWxpemVyfSBJbml0aWFsaXplclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKi9cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVyID0ge1xuICByZXNvbHZlQWxsOiBjcmVhdGVSZXNvbHZlcigpXG59XG5leHBvcnQgY29uc3Qgc3RyaW5nID0gaW5pdGlhbGl6ZUZhY3RvcnkoJ3N0cmluZycpXG5leHBvcnQgY29uc3QgdGV4dCA9IGluaXRpYWxpemVGYWN0b3J5KCd0ZXh0JylcblxuLyoqXG4gKiBAcGFyYW0geydzdHJpbmcnIHwgJ3RleHQnfSBmaWVsZFxuICogQHJldHVybnMge0luaXRpYWxDb25zdHJ1Y3R9XG4gKi9cbmZ1bmN0aW9uIGluaXRpYWxpemVGYWN0b3J5KGZpZWxkKSB7XG4gIHJldHVybiB7XG4gICAgdG9rZW5pemU6IGluaXRpYWxpemVUZXh0LFxuICAgIHJlc29sdmVBbGw6IGNyZWF0ZVJlc29sdmVyKFxuICAgICAgZmllbGQgPT09ICd0ZXh0JyA/IHJlc29sdmVBbGxMaW5lU3VmZml4ZXMgOiB1bmRlZmluZWRcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAgICogQHR5cGUge0luaXRpYWxpemVyfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5pdGlhbGl6ZVRleHQoZWZmZWN0cykge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzXG4gICAgY29uc3QgY29uc3RydWN0cyA9IHRoaXMucGFyc2VyLmNvbnN0cnVjdHNbZmllbGRdXG4gICAgY29uc3QgdGV4dCA9IGVmZmVjdHMuYXR0ZW1wdChjb25zdHJ1Y3RzLCBzdGFydCwgbm90VGV4dClcbiAgICByZXR1cm4gc3RhcnRcblxuICAgIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gICAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgICAgcmV0dXJuIGF0QnJlYWsoY29kZSkgPyB0ZXh0KGNvZGUpIDogbm90VGV4dChjb2RlKVxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gICAgZnVuY3Rpb24gbm90VGV4dChjb2RlKSB7XG4gICAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBlZmZlY3RzLmVudGVyKCdkYXRhJylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGRhdGFcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICAgIGZ1bmN0aW9uIGRhdGEoY29kZSkge1xuICAgICAgaWYgKGF0QnJlYWsoY29kZSkpIHtcbiAgICAgICAgZWZmZWN0cy5leGl0KCdkYXRhJylcbiAgICAgICAgcmV0dXJuIHRleHQoY29kZSlcbiAgICAgIH1cblxuICAgICAgLy8gRGF0YS5cbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGRhdGFcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge0NvZGV9IGNvZGVcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhdEJyZWFrKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICBjb25zdCBsaXN0ID0gY29uc3RydWN0c1tjb2RlXVxuICAgICAgbGV0IGluZGV4ID0gLTFcbiAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG5cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsaXN0Lmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBsaXN0W2luZGV4XVxuICAgICAgICAgIGlmICghaXRlbS5wcmV2aW91cyB8fCBpdGVtLnByZXZpb3VzLmNhbGwoc2VsZiwgc2VsZi5wcmV2aW91cykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge1Jlc29sdmVyIHwgdW5kZWZpbmVkfSBbZXh0cmFSZXNvbHZlcl1cbiAqIEByZXR1cm5zIHtSZXNvbHZlcn1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlUmVzb2x2ZXIoZXh0cmFSZXNvbHZlcikge1xuICByZXR1cm4gcmVzb2x2ZUFsbFRleHRcblxuICAvKiogQHR5cGUge1Jlc29sdmVyfSAqL1xuICBmdW5jdGlvbiByZXNvbHZlQWxsVGV4dChldmVudHMsIGNvbnRleHQpIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICAgIGxldCBlbnRlclxuXG4gICAgLy8gQSByYXRoZXIgYm9yaW5nIGNvbXB1dGF0aW9uICh0byBtZXJnZSBhZGphY2VudCBgZGF0YWAgZXZlbnRzKSB3aGljaFxuICAgIC8vIGltcHJvdmVzIG1tIHBlcmZvcm1hbmNlIGJ5IDI5JS5cbiAgICB3aGlsZSAoKytpbmRleCA8PSBldmVudHMubGVuZ3RoKSB7XG4gICAgICBpZiAoZW50ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoZXZlbnRzW2luZGV4XSAmJiBldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdkYXRhJykge1xuICAgICAgICAgIGVudGVyID0gaW5kZXhcbiAgICAgICAgICBpbmRleCsrXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWV2ZW50c1tpbmRleF0gfHwgZXZlbnRzW2luZGV4XVsxXS50eXBlICE9PSAnZGF0YScpIHtcbiAgICAgICAgLy8gRG9u4oCZdCBkbyBhbnl0aGluZyBpZiB0aGVyZSBpcyBvbmUgZGF0YSB0b2tlbi5cbiAgICAgICAgaWYgKGluZGV4ICE9PSBlbnRlciArIDIpIHtcbiAgICAgICAgICBldmVudHNbZW50ZXJdWzFdLmVuZCA9IGV2ZW50c1tpbmRleCAtIDFdWzFdLmVuZFxuICAgICAgICAgIGV2ZW50cy5zcGxpY2UoZW50ZXIgKyAyLCBpbmRleCAtIGVudGVyIC0gMilcbiAgICAgICAgICBpbmRleCA9IGVudGVyICsgMlxuICAgICAgICB9XG4gICAgICAgIGVudGVyID0gdW5kZWZpbmVkXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBleHRyYVJlc29sdmVyID8gZXh0cmFSZXNvbHZlcihldmVudHMsIGNvbnRleHQpIDogZXZlbnRzXG4gIH1cbn1cblxuLyoqXG4gKiBBIHJhdGhlciB1Z2x5IHNldCBvZiBpbnN0cnVjdGlvbnMgd2hpY2ggYWdhaW4gbG9va3MgYXQgY2h1bmtzIGluIHRoZSBpbnB1dFxuICogc3RyZWFtLlxuICogVGhlIHJlYXNvbiB0byBkbyB0aGlzIGhlcmUgaXMgdGhhdCBpdCBpcyAqbXVjaCogZmFzdGVyIHRvIHBhcnNlIGluIHJldmVyc2UuXG4gKiBBbmQgdGhhdCB3ZSBjYW7igJl0IGhvb2sgaW50byBgbnVsbGAgdG8gc3BsaXQgdGhlIGxpbmUgc3VmZml4IGJlZm9yZSBhbiBFT0YuXG4gKiBUbyBkbzogZmlndXJlIG91dCBpZiB3ZSBjYW4gbWFrZSB0aGlzIGludG8gYSBjbGVhbiB1dGlsaXR5LCBvciBldmVuIGluIGNvcmUuXG4gKiBBcyBpdCB3aWxsIGJlIHVzZWZ1bCBmb3IgR0ZNcyBsaXRlcmFsIGF1dG9saW5rIGV4dGVuc2lvbiAoYW5kIG1heWJlIGV2ZW5cbiAqIHRhYmxlcz8pXG4gKlxuICogQHR5cGUge1Jlc29sdmVyfVxuICovXG5mdW5jdGlvbiByZXNvbHZlQWxsTGluZVN1ZmZpeGVzKGV2ZW50cywgY29udGV4dCkge1xuICBsZXQgZXZlbnRJbmRleCA9IDAgLy8gU2tpcCBmaXJzdC5cblxuICB3aGlsZSAoKytldmVudEluZGV4IDw9IGV2ZW50cy5sZW5ndGgpIHtcbiAgICBpZiAoXG4gICAgICAoZXZlbnRJbmRleCA9PT0gZXZlbnRzLmxlbmd0aCB8fFxuICAgICAgICBldmVudHNbZXZlbnRJbmRleF1bMV0udHlwZSA9PT0gJ2xpbmVFbmRpbmcnKSAmJlxuICAgICAgZXZlbnRzW2V2ZW50SW5kZXggLSAxXVsxXS50eXBlID09PSAnZGF0YSdcbiAgICApIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBldmVudHNbZXZlbnRJbmRleCAtIDFdWzFdXG4gICAgICBjb25zdCBjaHVua3MgPSBjb250ZXh0LnNsaWNlU3RyZWFtKGRhdGEpXG4gICAgICBsZXQgaW5kZXggPSBjaHVua3MubGVuZ3RoXG4gICAgICBsZXQgYnVmZmVySW5kZXggPSAtMVxuICAgICAgbGV0IHNpemUgPSAwXG4gICAgICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gICAgICBsZXQgdGFic1xuICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgY29uc3QgY2h1bmsgPSBjaHVua3NbaW5kZXhdXG4gICAgICAgIGlmICh0eXBlb2YgY2h1bmsgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgYnVmZmVySW5kZXggPSBjaHVuay5sZW5ndGhcbiAgICAgICAgICB3aGlsZSAoY2h1bmsuY2hhckNvZGVBdChidWZmZXJJbmRleCAtIDEpID09PSAzMikge1xuICAgICAgICAgICAgc2l6ZSsrXG4gICAgICAgICAgICBidWZmZXJJbmRleC0tXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChidWZmZXJJbmRleCkgYnJlYWtcbiAgICAgICAgICBidWZmZXJJbmRleCA9IC0xXG4gICAgICAgIH1cbiAgICAgICAgLy8gTnVtYmVyXG4gICAgICAgIGVsc2UgaWYgKGNodW5rID09PSAtMikge1xuICAgICAgICAgIHRhYnMgPSB0cnVlXG4gICAgICAgICAgc2l6ZSsrXG4gICAgICAgIH0gZWxzZSBpZiAoY2h1bmsgPT09IC0xKSB7XG4gICAgICAgICAgLy8gRW1wdHlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBSZXBsYWNlbWVudCBjaGFyYWN0ZXIsIGV4aXQuXG4gICAgICAgICAgaW5kZXgrK1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzaXplKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0ge1xuICAgICAgICAgIHR5cGU6XG4gICAgICAgICAgICBldmVudEluZGV4ID09PSBldmVudHMubGVuZ3RoIHx8IHRhYnMgfHwgc2l6ZSA8IDJcbiAgICAgICAgICAgICAgPyAnbGluZVN1ZmZpeCdcbiAgICAgICAgICAgICAgOiAnaGFyZEJyZWFrVHJhaWxpbmcnLFxuICAgICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgICBsaW5lOiBkYXRhLmVuZC5saW5lLFxuICAgICAgICAgICAgY29sdW1uOiBkYXRhLmVuZC5jb2x1bW4gLSBzaXplLFxuICAgICAgICAgICAgb2Zmc2V0OiBkYXRhLmVuZC5vZmZzZXQgLSBzaXplLFxuICAgICAgICAgICAgX2luZGV4OiBkYXRhLnN0YXJ0Ll9pbmRleCArIGluZGV4LFxuICAgICAgICAgICAgX2J1ZmZlckluZGV4OiBpbmRleFxuICAgICAgICAgICAgICA/IGJ1ZmZlckluZGV4XG4gICAgICAgICAgICAgIDogZGF0YS5zdGFydC5fYnVmZmVySW5kZXggKyBidWZmZXJJbmRleFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBkYXRhLmVuZClcbiAgICAgICAgfVxuICAgICAgICBkYXRhLmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIHRva2VuLnN0YXJ0KVxuICAgICAgICBpZiAoZGF0YS5zdGFydC5vZmZzZXQgPT09IGRhdGEuZW5kLm9mZnNldCkge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YSwgdG9rZW4pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXZlbnRzLnNwbGljZShcbiAgICAgICAgICAgIGV2ZW50SW5kZXgsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgWydlbnRlcicsIHRva2VuLCBjb250ZXh0XSxcbiAgICAgICAgICAgIFsnZXhpdCcsIHRva2VuLCBjb250ZXh0XVxuICAgICAgICAgIClcbiAgICAgICAgICBldmVudEluZGV4ICs9IDJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZXZlbnRJbmRleCsrXG4gICAgfVxuICB9XG4gIHJldHVybiBldmVudHNcbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNodW5rfSBDaHVua1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db2RlfSBDb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnN0cnVjdH0gQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnN0cnVjdFJlY29yZH0gQ29uc3RydWN0UmVjb3JkXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkVmZmVjdHN9IEVmZmVjdHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSW5pdGlhbENvbnN0cnVjdH0gSW5pdGlhbENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5QYXJzZUNvbnRleHR9IFBhcnNlQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlblR5cGV9IFRva2VuVHlwZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIFJlc3RvcmVcbiAqIEByZXR1cm5zIHt2b2lkfVxuICpcbiAqIEB0eXBlZGVmIEluZm9cbiAqIEBwcm9wZXJ0eSB7UmVzdG9yZX0gcmVzdG9yZVxuICogQHByb3BlcnR5IHtudW1iZXJ9IGZyb21cbiAqXG4gKiBAY2FsbGJhY2sgUmV0dXJuSGFuZGxlXG4gKiAgIEhhbmRsZSBhIHN1Y2Nlc3NmdWwgcnVuLlxuICogQHBhcmFtIHtDb25zdHJ1Y3R9IGNvbnN0cnVjdFxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZ30gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHtwdXNoLCBzcGxpY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNodW5rZWQnXG5pbXBvcnQge3Jlc29sdmVBbGx9IGZyb20gJ21pY3JvbWFyay11dGlsLXJlc29sdmUtYWxsJ1xuLyoqXG4gKiBDcmVhdGUgYSB0b2tlbml6ZXIuXG4gKiBUb2tlbml6ZXJzIGRlYWwgd2l0aCBvbmUgdHlwZSBvZiBkYXRhIChlLmcuLCBjb250YWluZXJzLCBmbG93LCB0ZXh0KS5cbiAqIFRoZSBwYXJzZXIgaXMgdGhlIG9iamVjdCBkZWFsaW5nIHdpdGggaXQgYWxsLlxuICogYGluaXRpYWxpemVgIHdvcmtzIGxpa2Ugb3RoZXIgY29uc3RydWN0cywgZXhjZXB0IHRoYXQgb25seSBpdHMgYHRva2VuaXplYFxuICogZnVuY3Rpb24gaXMgdXNlZCwgaW4gd2hpY2ggY2FzZSBpdCBkb2VzbuKAmXQgcmVjZWl2ZSBhbiBgb2tgIG9yIGBub2tgLlxuICogYGZyb21gIGNhbiBiZSBnaXZlbiB0byBzZXQgdGhlIHBvaW50IGJlZm9yZSB0aGUgZmlyc3QgY2hhcmFjdGVyLCBhbHRob3VnaFxuICogd2hlbiBmdXJ0aGVyIGxpbmVzIGFyZSBpbmRlbnRlZCwgdGhleSBtdXN0IGJlIHNldCB3aXRoIGBkZWZpbmVTa2lwYC5cbiAqXG4gKiBAcGFyYW0ge1BhcnNlQ29udGV4dH0gcGFyc2VyXG4gKiBAcGFyYW0ge0luaXRpYWxDb25zdHJ1Y3R9IGluaXRpYWxpemVcbiAqIEBwYXJhbSB7T21pdDxQb2ludCwgJ19idWZmZXJJbmRleCcgfCAnX2luZGV4Jz4gfCB1bmRlZmluZWR9IFtmcm9tXVxuICogQHJldHVybnMge1Rva2VuaXplQ29udGV4dH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuaXplcihwYXJzZXIsIGluaXRpYWxpemUsIGZyb20pIHtcbiAgLyoqIEB0eXBlIHtQb2ludH0gKi9cbiAgbGV0IHBvaW50ID0gT2JqZWN0LmFzc2lnbihcbiAgICBmcm9tXG4gICAgICA/IE9iamVjdC5hc3NpZ24oe30sIGZyb20pXG4gICAgICA6IHtcbiAgICAgICAgICBsaW5lOiAxLFxuICAgICAgICAgIGNvbHVtbjogMSxcbiAgICAgICAgICBvZmZzZXQ6IDBcbiAgICAgICAgfSxcbiAgICB7XG4gICAgICBfaW5kZXg6IDAsXG4gICAgICBfYnVmZmVySW5kZXg6IC0xXG4gICAgfVxuICApXG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgbnVtYmVyPn0gKi9cbiAgY29uc3QgY29sdW1uU3RhcnQgPSB7fVxuICAvKiogQHR5cGUge0FycmF5PENvbnN0cnVjdD59ICovXG4gIGNvbnN0IHJlc29sdmVBbGxDb25zdHJ1Y3RzID0gW11cbiAgLyoqIEB0eXBlIHtBcnJheTxDaHVuaz59ICovXG4gIGxldCBjaHVua3MgPSBbXVxuICAvKiogQHR5cGUge0FycmF5PFRva2VuPn0gKi9cbiAgbGV0IHN0YWNrID0gW11cbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY29uc3VtZWQgPSB0cnVlXG5cbiAgLyoqXG4gICAqIFRvb2xzIHVzZWQgZm9yIHRva2VuaXppbmcuXG4gICAqXG4gICAqIEB0eXBlIHtFZmZlY3RzfVxuICAgKi9cbiAgY29uc3QgZWZmZWN0cyA9IHtcbiAgICBjb25zdW1lLFxuICAgIGVudGVyLFxuICAgIGV4aXQsXG4gICAgYXR0ZW1wdDogY29uc3RydWN0RmFjdG9yeShvbnN1Y2Nlc3NmdWxjb25zdHJ1Y3QpLFxuICAgIGNoZWNrOiBjb25zdHJ1Y3RGYWN0b3J5KG9uc3VjY2Vzc2Z1bGNoZWNrKSxcbiAgICBpbnRlcnJ1cHQ6IGNvbnN0cnVjdEZhY3Rvcnkob25zdWNjZXNzZnVsY2hlY2ssIHtcbiAgICAgIGludGVycnVwdDogdHJ1ZVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogU3RhdGUgYW5kIHRvb2xzIGZvciByZXNvbHZpbmcgYW5kIHNlcmlhbGl6aW5nLlxuICAgKlxuICAgKiBAdHlwZSB7VG9rZW5pemVDb250ZXh0fVxuICAgKi9cbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICBwcmV2aW91czogbnVsbCxcbiAgICBjb2RlOiBudWxsLFxuICAgIGNvbnRhaW5lclN0YXRlOiB7fSxcbiAgICBldmVudHM6IFtdLFxuICAgIHBhcnNlcixcbiAgICBzbGljZVN0cmVhbSxcbiAgICBzbGljZVNlcmlhbGl6ZSxcbiAgICBub3csXG4gICAgZGVmaW5lU2tpcCxcbiAgICB3cml0ZVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHR5cGUge1N0YXRlIHwgdm9pZH1cbiAgICovXG4gIGxldCBzdGF0ZSA9IGluaXRpYWxpemUudG9rZW5pemUuY2FsbChjb250ZXh0LCBlZmZlY3RzKVxuXG4gIC8qKlxuICAgKiBUcmFjayB3aGljaCBjaGFyYWN0ZXIgd2UgZXhwZWN0IHRvIGJlIGNvbnN1bWVkLCB0byBjYXRjaCBidWdzLlxuICAgKlxuICAgKiBAdHlwZSB7Q29kZX1cbiAgICovXG4gIGxldCBleHBlY3RlZENvZGVcbiAgaWYgKGluaXRpYWxpemUucmVzb2x2ZUFsbCkge1xuICAgIHJlc29sdmVBbGxDb25zdHJ1Y3RzLnB1c2goaW5pdGlhbGl6ZSlcbiAgfVxuICByZXR1cm4gY29udGV4dFxuXG4gIC8qKiBAdHlwZSB7VG9rZW5pemVDb250ZXh0Wyd3cml0ZSddfSAqL1xuICBmdW5jdGlvbiB3cml0ZShzbGljZSkge1xuICAgIGNodW5rcyA9IHB1c2goY2h1bmtzLCBzbGljZSlcbiAgICBtYWluKClcblxuICAgIC8vIEV4aXQgaWYgd2XigJlyZSBub3QgZG9uZSwgcmVzb2x2ZSBtaWdodCBjaGFuZ2Ugc3R1ZmYuXG4gICAgaWYgKGNodW5rc1tjaHVua3MubGVuZ3RoIC0gMV0gIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgICBhZGRSZXN1bHQoaW5pdGlhbGl6ZSwgMClcblxuICAgIC8vIE90aGVyd2lzZSwgcmVzb2x2ZSwgYW5kIGV4aXQuXG4gICAgY29udGV4dC5ldmVudHMgPSByZXNvbHZlQWxsKHJlc29sdmVBbGxDb25zdHJ1Y3RzLCBjb250ZXh0LmV2ZW50cywgY29udGV4dClcbiAgICByZXR1cm4gY29udGV4dC5ldmVudHNcbiAgfVxuXG4gIC8vXG4gIC8vIFRvb2xzLlxuICAvL1xuXG4gIC8qKiBAdHlwZSB7VG9rZW5pemVDb250ZXh0WydzbGljZVNlcmlhbGl6ZSddfSAqL1xuICBmdW5jdGlvbiBzbGljZVNlcmlhbGl6ZSh0b2tlbiwgZXhwYW5kVGFicykge1xuICAgIHJldHVybiBzZXJpYWxpemVDaHVua3Moc2xpY2VTdHJlYW0odG9rZW4pLCBleHBhbmRUYWJzKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtUb2tlbml6ZUNvbnRleHRbJ3NsaWNlU3RyZWFtJ119ICovXG4gIGZ1bmN0aW9uIHNsaWNlU3RyZWFtKHRva2VuKSB7XG4gICAgcmV0dXJuIHNsaWNlQ2h1bmtzKGNodW5rcywgdG9rZW4pXG4gIH1cblxuICAvKiogQHR5cGUge1Rva2VuaXplQ29udGV4dFsnbm93J119ICovXG4gIGZ1bmN0aW9uIG5vdygpIHtcbiAgICAvLyBUaGlzIGlzIGEgaG90IHBhdGgsIHNvIHdlIGNsb25lIG1hbnVhbGx5IGluc3RlYWQgb2YgYE9iamVjdC5hc3NpZ24oe30sIHBvaW50KWBcbiAgICBjb25zdCB7bGluZSwgY29sdW1uLCBvZmZzZXQsIF9pbmRleCwgX2J1ZmZlckluZGV4fSA9IHBvaW50XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmUsXG4gICAgICBjb2x1bW4sXG4gICAgICBvZmZzZXQsXG4gICAgICBfaW5kZXgsXG4gICAgICBfYnVmZmVySW5kZXhcbiAgICB9XG4gIH1cblxuICAvKiogQHR5cGUge1Rva2VuaXplQ29udGV4dFsnZGVmaW5lU2tpcCddfSAqL1xuICBmdW5jdGlvbiBkZWZpbmVTa2lwKHZhbHVlKSB7XG4gICAgY29sdW1uU3RhcnRbdmFsdWUubGluZV0gPSB2YWx1ZS5jb2x1bW5cbiAgICBhY2NvdW50Rm9yUG90ZW50aWFsU2tpcCgpXG4gIH1cblxuICAvL1xuICAvLyBTdGF0ZSBtYW5hZ2VtZW50LlxuICAvL1xuXG4gIC8qKlxuICAgKiBNYWluIGxvb3AgKG5vdGUgdGhhdCBgX2luZGV4YCBhbmQgYF9idWZmZXJJbmRleGAgaW4gYHBvaW50YCBhcmUgbW9kaWZpZWQgYnlcbiAgICogYGNvbnN1bWVgKS5cbiAgICogSGVyZSBpcyB3aGVyZSB3ZSB3YWxrIHRocm91Z2ggdGhlIGNodW5rcywgd2hpY2ggZWl0aGVyIGluY2x1ZGUgc3RyaW5ncyBvZlxuICAgKiBzZXZlcmFsIGNoYXJhY3RlcnMsIG9yIG51bWVyaWNhbCBjaGFyYWN0ZXIgY29kZXMuXG4gICAqIFRoZSByZWFzb24gdG8gZG8gdGhpcyBpbiBhIGxvb3AgaW5zdGVhZCBvZiBhIGNhbGwgaXMgc28gdGhlIHN0YWNrIGNhblxuICAgKiBkcmFpbi5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBmdW5jdGlvbiBtYWluKCkge1xuICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgIGxldCBjaHVua0luZGV4XG4gICAgd2hpbGUgKHBvaW50Ll9pbmRleCA8IGNodW5rcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGNodW5rID0gY2h1bmtzW3BvaW50Ll9pbmRleF1cblxuICAgICAgLy8gSWYgd2XigJlyZSBpbiBhIGJ1ZmZlciBjaHVuaywgbG9vcCB0aHJvdWdoIGl0LlxuICAgICAgaWYgKHR5cGVvZiBjaHVuayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY2h1bmtJbmRleCA9IHBvaW50Ll9pbmRleFxuICAgICAgICBpZiAocG9pbnQuX2J1ZmZlckluZGV4IDwgMCkge1xuICAgICAgICAgIHBvaW50Ll9idWZmZXJJbmRleCA9IDBcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgcG9pbnQuX2luZGV4ID09PSBjaHVua0luZGV4ICYmXG4gICAgICAgICAgcG9pbnQuX2J1ZmZlckluZGV4IDwgY2h1bmsubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgIGdvKGNodW5rLmNoYXJDb2RlQXQocG9pbnQuX2J1ZmZlckluZGV4KSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ28oY2h1bmspXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlYWwgd2l0aCBvbmUgY29kZS5cbiAgICpcbiAgICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZnVuY3Rpb24gZ28oY29kZSkge1xuICAgIGNvbnN1bWVkID0gdW5kZWZpbmVkXG4gICAgZXhwZWN0ZWRDb2RlID0gY29kZVxuICAgIHN0YXRlID0gc3RhdGUoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7RWZmZWN0c1snY29uc3VtZSddfSAqL1xuICBmdW5jdGlvbiBjb25zdW1lKGNvZGUpIHtcbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBwb2ludC5saW5lKytcbiAgICAgIHBvaW50LmNvbHVtbiA9IDFcbiAgICAgIHBvaW50Lm9mZnNldCArPSBjb2RlID09PSAtMyA/IDIgOiAxXG4gICAgICBhY2NvdW50Rm9yUG90ZW50aWFsU2tpcCgpXG4gICAgfSBlbHNlIGlmIChjb2RlICE9PSAtMSkge1xuICAgICAgcG9pbnQuY29sdW1uKytcbiAgICAgIHBvaW50Lm9mZnNldCsrXG4gICAgfVxuXG4gICAgLy8gTm90IGluIGEgc3RyaW5nIGNodW5rLlxuICAgIGlmIChwb2ludC5fYnVmZmVySW5kZXggPCAwKSB7XG4gICAgICBwb2ludC5faW5kZXgrK1xuICAgIH0gZWxzZSB7XG4gICAgICBwb2ludC5fYnVmZmVySW5kZXgrK1xuXG4gICAgICAvLyBBdCBlbmQgb2Ygc3RyaW5nIGNodW5rLlxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQb2ludHMgdy8gbm9uLW5lZ2F0aXZlIGBfYnVmZmVySW5kZXhgIHJlZmVyZW5jZVxuICAgICAgLy8gc3RyaW5ncy5cbiAgICAgIGlmIChwb2ludC5fYnVmZmVySW5kZXggPT09IGNodW5rc1twb2ludC5faW5kZXhdLmxlbmd0aCkge1xuICAgICAgICBwb2ludC5fYnVmZmVySW5kZXggPSAtMVxuICAgICAgICBwb2ludC5faW5kZXgrK1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cG9zZSB0aGUgcHJldmlvdXMgY2hhcmFjdGVyLlxuICAgIGNvbnRleHQucHJldmlvdXMgPSBjb2RlXG5cbiAgICAvLyBNYXJrIGFzIGNvbnN1bWVkLlxuICAgIGNvbnN1bWVkID0gdHJ1ZVxuICB9XG5cbiAgLyoqIEB0eXBlIHtFZmZlY3RzWydlbnRlciddfSAqL1xuICBmdW5jdGlvbiBlbnRlcih0eXBlLCBmaWVsZHMpIHtcbiAgICAvKiogQHR5cGUge1Rva2VufSAqL1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUGF0Y2ggaW5zdGVhZCBvZiBhc3NpZ24gcmVxdWlyZWQgZmllbGRzIHRvIGhlbHAgR0MuXG4gICAgY29uc3QgdG9rZW4gPSBmaWVsZHMgfHwge31cbiAgICB0b2tlbi50eXBlID0gdHlwZVxuICAgIHRva2VuLnN0YXJ0ID0gbm93KClcbiAgICBjb250ZXh0LmV2ZW50cy5wdXNoKFsnZW50ZXInLCB0b2tlbiwgY29udGV4dF0pXG4gICAgc3RhY2sucHVzaCh0b2tlbilcbiAgICByZXR1cm4gdG9rZW5cbiAgfVxuXG4gIC8qKiBAdHlwZSB7RWZmZWN0c1snZXhpdCddfSAqL1xuICBmdW5jdGlvbiBleGl0KHR5cGUpIHtcbiAgICBjb25zdCB0b2tlbiA9IHN0YWNrLnBvcCgpXG4gICAgdG9rZW4uZW5kID0gbm93KClcbiAgICBjb250ZXh0LmV2ZW50cy5wdXNoKFsnZXhpdCcsIHRva2VuLCBjb250ZXh0XSlcbiAgICByZXR1cm4gdG9rZW5cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgcmVzdWx0cy5cbiAgICpcbiAgICogQHR5cGUge1JldHVybkhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uc3VjY2Vzc2Z1bGNvbnN0cnVjdChjb25zdHJ1Y3QsIGluZm8pIHtcbiAgICBhZGRSZXN1bHQoY29uc3RydWN0LCBpbmZvLmZyb20pXG4gIH1cblxuICAvKipcbiAgICogRGlzY2FyZCByZXN1bHRzLlxuICAgKlxuICAgKiBAdHlwZSB7UmV0dXJuSGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25zdWNjZXNzZnVsY2hlY2soXywgaW5mbykge1xuICAgIGluZm8ucmVzdG9yZSgpXG4gIH1cblxuICAvKipcbiAgICogRmFjdG9yeSB0byBhdHRlbXB0L2NoZWNrL2ludGVycnVwdC5cbiAgICpcbiAgICogQHBhcmFtIHtSZXR1cm5IYW5kbGV9IG9ucmV0dXJuXG4gICAqIEBwYXJhbSB7e2ludGVycnVwdD86IGJvb2xlYW4gfCB1bmRlZmluZWR9IHwgdW5kZWZpbmVkfSBbZmllbGRzXVxuICAgKi9cbiAgZnVuY3Rpb24gY29uc3RydWN0RmFjdG9yeShvbnJldHVybiwgZmllbGRzKSB7XG4gICAgcmV0dXJuIGhvb2tcblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBlaXRoZXIgYW4gb2JqZWN0IG1hcHBpbmcgY29kZXMgdG8gY29uc3RydWN0cywgYSBsaXN0IG9mXG4gICAgICogY29uc3RydWN0cywgb3IgYSBzaW5nbGUgY29uc3RydWN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtBcnJheTxDb25zdHJ1Y3Q+IHwgQ29uc3RydWN0IHwgQ29uc3RydWN0UmVjb3JkfSBjb25zdHJ1Y3RzXG4gICAgICogQHBhcmFtIHtTdGF0ZX0gcmV0dXJuU3RhdGVcbiAgICAgKiBAcGFyYW0ge1N0YXRlIHwgdW5kZWZpbmVkfSBbYm9ndXNTdGF0ZV1cbiAgICAgKiBAcmV0dXJucyB7U3RhdGV9XG4gICAgICovXG4gICAgZnVuY3Rpb24gaG9vayhjb25zdHJ1Y3RzLCByZXR1cm5TdGF0ZSwgYm9ndXNTdGF0ZSkge1xuICAgICAgLyoqIEB0eXBlIHtBcnJheTxDb25zdHJ1Y3Q+fSAqL1xuICAgICAgbGV0IGxpc3RPZkNvbnN0cnVjdHNcbiAgICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgICAgbGV0IGNvbnN0cnVjdEluZGV4XG4gICAgICAvKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbiAgICAgIGxldCBjdXJyZW50Q29uc3RydWN0XG4gICAgICAvKiogQHR5cGUge0luZm99ICovXG4gICAgICBsZXQgaW5mb1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY29uc3RydWN0cykgLyogYzggaWdub3JlIG5leHQgMSAqL1xuICAgICAgICA/IGhhbmRsZUxpc3RPZkNvbnN0cnVjdHMoY29uc3RydWN0cylcbiAgICAgICAgOiAndG9rZW5pemUnIGluIGNvbnN0cnVjdHNcbiAgICAgICAgPyAvLyBAdHMtZXhwZWN0LWVycm9yIExvb2tzIGxpa2UgYSBjb25zdHJ1Y3QuXG4gICAgICAgICAgaGFuZGxlTGlzdE9mQ29uc3RydWN0cyhbY29uc3RydWN0c10pXG4gICAgICAgIDogaGFuZGxlTWFwT2ZDb25zdHJ1Y3RzKGNvbnN0cnVjdHMpXG5cbiAgICAgIC8qKlxuICAgICAgICogSGFuZGxlIGEgbGlzdCBvZiBjb25zdHJ1Y3QuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtDb25zdHJ1Y3RSZWNvcmR9IG1hcFxuICAgICAgICogQHJldHVybnMge1N0YXRlfVxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBoYW5kbGVNYXBPZkNvbnN0cnVjdHMobWFwKSB7XG4gICAgICAgIHJldHVybiBzdGFydFxuXG4gICAgICAgIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gICAgICAgIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAgICAgICBjb25zdCBkZWYgPSBjb2RlICE9PSBudWxsICYmIG1hcFtjb2RlXVxuICAgICAgICAgIGNvbnN0IGFsbCA9IGNvZGUgIT09IG51bGwgJiYgbWFwLm51bGxcbiAgICAgICAgICBjb25zdCBsaXN0ID0gW1xuICAgICAgICAgICAgLy8gVG8gZG86IGFkZCBtb3JlIGV4dGVuc2lvbiB0ZXN0cy5cbiAgICAgICAgICAgIC8qIGM4IGlnbm9yZSBuZXh0IDIgKi9cbiAgICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KGRlZikgPyBkZWYgOiBkZWYgPyBbZGVmXSA6IFtdKSxcbiAgICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KGFsbCkgPyBhbGwgOiBhbGwgPyBbYWxsXSA6IFtdKVxuICAgICAgICAgIF1cbiAgICAgICAgICByZXR1cm4gaGFuZGxlTGlzdE9mQ29uc3RydWN0cyhsaXN0KShjb2RlKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogSGFuZGxlIGEgbGlzdCBvZiBjb25zdHJ1Y3QuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtBcnJheTxDb25zdHJ1Y3Q+fSBsaXN0XG4gICAgICAgKiBAcmV0dXJucyB7U3RhdGV9XG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZUxpc3RPZkNvbnN0cnVjdHMobGlzdCkge1xuICAgICAgICBsaXN0T2ZDb25zdHJ1Y3RzID0gbGlzdFxuICAgICAgICBjb25zdHJ1Y3RJbmRleCA9IDBcbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGJvZ3VzU3RhdGVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFuZGxlQ29uc3RydWN0KGxpc3RbY29uc3RydWN0SW5kZXhdKVxuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIEhhbmRsZSBhIHNpbmdsZSBjb25zdHJ1Y3QuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtDb25zdHJ1Y3R9IGNvbnN0cnVjdFxuICAgICAgICogQHJldHVybnMge1N0YXRlfVxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBoYW5kbGVDb25zdHJ1Y3QoY29uc3RydWN0KSB7XG4gICAgICAgIHJldHVybiBzdGFydFxuXG4gICAgICAgIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gICAgICAgIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAgICAgICAvLyBUbyBkbzogbm90IG5lZWRlZCB0byBzdG9yZSBpZiB0aGVyZSBpcyBubyBib2d1cyBzdGF0ZSwgcHJvYmFibHk/XG4gICAgICAgICAgLy8gQ3VycmVudGx5IGRvZXNu4oCZdCB3b3JrIGJlY2F1c2UgYGluc3BlY3RgIGluIGRvY3VtZW50IGRvZXMgYSBjaGVja1xuICAgICAgICAgIC8vIHcvbyBhIGJvZ3VzLCB3aGljaCBkb2VzbuKAmXQgbWFrZSBzZW5zZS4gQnV0IGl0IGRvZXMgc2VlbSB0byBoZWxwIHBlcmZcbiAgICAgICAgICAvLyBieSBub3Qgc3RvcmluZy5cbiAgICAgICAgICBpbmZvID0gc3RvcmUoKVxuICAgICAgICAgIGN1cnJlbnRDb25zdHJ1Y3QgPSBjb25zdHJ1Y3RcbiAgICAgICAgICBpZiAoIWNvbnN0cnVjdC5wYXJ0aWFsKSB7XG4gICAgICAgICAgICBjb250ZXh0LmN1cnJlbnRDb25zdHJ1Y3QgPSBjb25zdHJ1Y3RcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uc3RydWN0Lm5hbWUgJiZcbiAgICAgICAgICAgIGNvbnRleHQucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKGNvbnN0cnVjdC5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY29uc3RydWN0LnRva2VuaXplLmNhbGwoXG4gICAgICAgICAgICAvLyBJZiB3ZSBkbyBoYXZlIGZpZWxkcywgY3JlYXRlIGFuIG9iamVjdCB3LyBgY29udGV4dGAgYXMgaXRzXG4gICAgICAgICAgICAvLyBwcm90b3R5cGUuXG4gICAgICAgICAgICAvLyBUaGlzIGFsbG93cyBhIOKAnGxpdmUgYmluZGluZ+KAnSwgd2hpY2ggaXMgbmVlZGVkIGZvciBgaW50ZXJydXB0YC5cbiAgICAgICAgICAgIGZpZWxkcyA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShjb250ZXh0KSwgZmllbGRzKSA6IGNvbnRleHQsXG4gICAgICAgICAgICBlZmZlY3RzLFxuICAgICAgICAgICAgb2ssXG4gICAgICAgICAgICBub2tcbiAgICAgICAgICApKGNvZGUpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgICAgIGZ1bmN0aW9uIG9rKGNvZGUpIHtcbiAgICAgICAgY29uc3VtZWQgPSB0cnVlXG4gICAgICAgIG9ucmV0dXJuKGN1cnJlbnRDb25zdHJ1Y3QsIGluZm8pXG4gICAgICAgIHJldHVybiByZXR1cm5TdGF0ZVxuICAgICAgfVxuXG4gICAgICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICAgICAgZnVuY3Rpb24gbm9rKGNvZGUpIHtcbiAgICAgICAgY29uc3VtZWQgPSB0cnVlXG4gICAgICAgIGluZm8ucmVzdG9yZSgpXG4gICAgICAgIGlmICgrK2NvbnN0cnVjdEluZGV4IDwgbGlzdE9mQ29uc3RydWN0cy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlQ29uc3RydWN0KGxpc3RPZkNvbnN0cnVjdHNbY29uc3RydWN0SW5kZXhdKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBib2d1c1N0YXRlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0fSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBmdW5jdGlvbiBhZGRSZXN1bHQoY29uc3RydWN0LCBmcm9tKSB7XG4gICAgaWYgKGNvbnN0cnVjdC5yZXNvbHZlQWxsICYmICFyZXNvbHZlQWxsQ29uc3RydWN0cy5pbmNsdWRlcyhjb25zdHJ1Y3QpKSB7XG4gICAgICByZXNvbHZlQWxsQ29uc3RydWN0cy5wdXNoKGNvbnN0cnVjdClcbiAgICB9XG4gICAgaWYgKGNvbnN0cnVjdC5yZXNvbHZlKSB7XG4gICAgICBzcGxpY2UoXG4gICAgICAgIGNvbnRleHQuZXZlbnRzLFxuICAgICAgICBmcm9tLFxuICAgICAgICBjb250ZXh0LmV2ZW50cy5sZW5ndGggLSBmcm9tLFxuICAgICAgICBjb25zdHJ1Y3QucmVzb2x2ZShjb250ZXh0LmV2ZW50cy5zbGljZShmcm9tKSwgY29udGV4dClcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKGNvbnN0cnVjdC5yZXNvbHZlVG8pIHtcbiAgICAgIGNvbnRleHQuZXZlbnRzID0gY29uc3RydWN0LnJlc29sdmVUbyhjb250ZXh0LmV2ZW50cywgY29udGV4dClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RvcmUgc3RhdGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtJbmZvfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RvcmUoKSB7XG4gICAgY29uc3Qgc3RhcnRQb2ludCA9IG5vdygpXG4gICAgY29uc3Qgc3RhcnRQcmV2aW91cyA9IGNvbnRleHQucHJldmlvdXNcbiAgICBjb25zdCBzdGFydEN1cnJlbnRDb25zdHJ1Y3QgPSBjb250ZXh0LmN1cnJlbnRDb25zdHJ1Y3RcbiAgICBjb25zdCBzdGFydEV2ZW50c0luZGV4ID0gY29udGV4dC5ldmVudHMubGVuZ3RoXG4gICAgY29uc3Qgc3RhcnRTdGFjayA9IEFycmF5LmZyb20oc3RhY2spXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc3RvcmUsXG4gICAgICBmcm9tOiBzdGFydEV2ZW50c0luZGV4XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzdG9yZSBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlc3RvcmUoKSB7XG4gICAgICBwb2ludCA9IHN0YXJ0UG9pbnRcbiAgICAgIGNvbnRleHQucHJldmlvdXMgPSBzdGFydFByZXZpb3VzXG4gICAgICBjb250ZXh0LmN1cnJlbnRDb25zdHJ1Y3QgPSBzdGFydEN1cnJlbnRDb25zdHJ1Y3RcbiAgICAgIGNvbnRleHQuZXZlbnRzLmxlbmd0aCA9IHN0YXJ0RXZlbnRzSW5kZXhcbiAgICAgIHN0YWNrID0gc3RhcnRTdGFja1xuICAgICAgYWNjb3VudEZvclBvdGVudGlhbFNraXAoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIHRoZSBjdXJyZW50IHBvaW50IGEgYml0IGZvcndhcmQgaW4gdGhlIGxpbmUgd2hlbiBpdOKAmXMgb24gYSBjb2x1bW5cbiAgICogc2tpcC5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBmdW5jdGlvbiBhY2NvdW50Rm9yUG90ZW50aWFsU2tpcCgpIHtcbiAgICBpZiAocG9pbnQubGluZSBpbiBjb2x1bW5TdGFydCAmJiBwb2ludC5jb2x1bW4gPCAyKSB7XG4gICAgICBwb2ludC5jb2x1bW4gPSBjb2x1bW5TdGFydFtwb2ludC5saW5lXVxuICAgICAgcG9pbnQub2Zmc2V0ICs9IGNvbHVtblN0YXJ0W3BvaW50LmxpbmVdIC0gMVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgY2h1bmtzIGZyb20gYSBzbGljZSBvZiBjaHVua3MgaW4gdGhlIHJhbmdlIG9mIGEgdG9rZW4uXG4gKlxuICogQHBhcmFtIHtBcnJheTxDaHVuaz59IGNodW5rc1xuICogQHBhcmFtIHtQaWNrPFRva2VuLCAnZW5kJyB8ICdzdGFydCc+fSB0b2tlblxuICogQHJldHVybnMge0FycmF5PENodW5rPn1cbiAqL1xuZnVuY3Rpb24gc2xpY2VDaHVua3MoY2h1bmtzLCB0b2tlbikge1xuICBjb25zdCBzdGFydEluZGV4ID0gdG9rZW4uc3RhcnQuX2luZGV4XG4gIGNvbnN0IHN0YXJ0QnVmZmVySW5kZXggPSB0b2tlbi5zdGFydC5fYnVmZmVySW5kZXhcbiAgY29uc3QgZW5kSW5kZXggPSB0b2tlbi5lbmQuX2luZGV4XG4gIGNvbnN0IGVuZEJ1ZmZlckluZGV4ID0gdG9rZW4uZW5kLl9idWZmZXJJbmRleFxuICAvKiogQHR5cGUge0FycmF5PENodW5rPn0gKi9cbiAgbGV0IHZpZXdcbiAgaWYgKHN0YXJ0SW5kZXggPT09IGVuZEluZGV4KSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBgX2J1ZmZlckluZGV4YCBpcyB1c2VkIG9uIHN0cmluZyBjaHVua3MuXG4gICAgdmlldyA9IFtjaHVua3Nbc3RhcnRJbmRleF0uc2xpY2Uoc3RhcnRCdWZmZXJJbmRleCwgZW5kQnVmZmVySW5kZXgpXVxuICB9IGVsc2Uge1xuICAgIHZpZXcgPSBjaHVua3Muc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpXG4gICAgaWYgKHN0YXJ0QnVmZmVySW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgaGVhZCA9IHZpZXdbMF1cbiAgICAgIGlmICh0eXBlb2YgaGVhZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdmlld1swXSA9IGhlYWQuc2xpY2Uoc3RhcnRCdWZmZXJJbmRleClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZpZXcuc2hpZnQoKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5kQnVmZmVySW5kZXggPiAwKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGBfYnVmZmVySW5kZXhgIGlzIHVzZWQgb24gc3RyaW5nIGNodW5rcy5cbiAgICAgIHZpZXcucHVzaChjaHVua3NbZW5kSW5kZXhdLnNsaWNlKDAsIGVuZEJ1ZmZlckluZGV4KSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHZpZXdcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHN0cmluZyB2YWx1ZSBvZiBhIHNsaWNlIG9mIGNodW5rcy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PENodW5rPn0gY2h1bmtzXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCB1bmRlZmluZWR9IFtleHBhbmRUYWJzPWZhbHNlXVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc2VyaWFsaXplQ2h1bmtzKGNodW5rcywgZXhwYW5kVGFicykge1xuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGF0VGFiXG4gIHdoaWxlICgrK2luZGV4IDwgY2h1bmtzLmxlbmd0aCkge1xuICAgIGNvbnN0IGNodW5rID0gY2h1bmtzW2luZGV4XVxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCB2YWx1ZVxuICAgIGlmICh0eXBlb2YgY2h1bmsgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZSA9IGNodW5rXG4gICAgfSBlbHNlXG4gICAgICBzd2l0Y2ggKGNodW5rKSB7XG4gICAgICAgIGNhc2UgLTU6IHtcbiAgICAgICAgICB2YWx1ZSA9ICdcXHInXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIC00OiB7XG4gICAgICAgICAgdmFsdWUgPSAnXFxuJ1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAtMzoge1xuICAgICAgICAgIHZhbHVlID0gJ1xccicgKyAnXFxuJ1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAtMjoge1xuICAgICAgICAgIHZhbHVlID0gZXhwYW5kVGFicyA/ICcgJyA6ICdcXHQnXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIC0xOiB7XG4gICAgICAgICAgaWYgKCFleHBhbmRUYWJzICYmIGF0VGFiKSBjb250aW51ZVxuICAgICAgICAgIHZhbHVlID0gJyAnXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgLy8gQ3VycmVudGx5IG9ubHkgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLlxuICAgICAgICAgIHZhbHVlID0gU3RyaW5nLmZyb21DaGFyQ29kZShjaHVuaylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGF0VGFiID0gY2h1bmsgPT09IC0yXG4gICAgcmVzdWx0LnB1c2godmFsdWUpXG4gIH1cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCcnKVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXh0ZW5zaW9ufSBFeHRlbnNpb25cbiAqL1xuXG5pbXBvcnQge1xuICBhdHRlbnRpb24sXG4gIGF1dG9saW5rLFxuICBibG9ja1F1b3RlLFxuICBjaGFyYWN0ZXJFc2NhcGUsXG4gIGNoYXJhY3RlclJlZmVyZW5jZSxcbiAgY29kZUZlbmNlZCxcbiAgY29kZUluZGVudGVkLFxuICBjb2RlVGV4dCxcbiAgZGVmaW5pdGlvbixcbiAgaGFyZEJyZWFrRXNjYXBlLFxuICBoZWFkaW5nQXR4LFxuICBodG1sRmxvdyxcbiAgaHRtbFRleHQsXG4gIGxhYmVsRW5kLFxuICBsYWJlbFN0YXJ0SW1hZ2UsXG4gIGxhYmVsU3RhcnRMaW5rLFxuICBsaW5lRW5kaW5nLFxuICBsaXN0LFxuICBzZXRleHRVbmRlcmxpbmUsXG4gIHRoZW1hdGljQnJlYWtcbn0gZnJvbSAnbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyaydcbmltcG9ydCB7cmVzb2x2ZXIgYXMgcmVzb2x2ZVRleHR9IGZyb20gJy4vaW5pdGlhbGl6ZS90ZXh0LmpzJ1xuXG4vKiogQHNhdGlzZmllcyB7RXh0ZW5zaW9uWydkb2N1bWVudCddfSAqL1xuZXhwb3J0IGNvbnN0IGRvY3VtZW50ID0ge1xuICBbNDJdOiBsaXN0LFxuICBbNDNdOiBsaXN0LFxuICBbNDVdOiBsaXN0LFxuICBbNDhdOiBsaXN0LFxuICBbNDldOiBsaXN0LFxuICBbNTBdOiBsaXN0LFxuICBbNTFdOiBsaXN0LFxuICBbNTJdOiBsaXN0LFxuICBbNTNdOiBsaXN0LFxuICBbNTRdOiBsaXN0LFxuICBbNTVdOiBsaXN0LFxuICBbNTZdOiBsaXN0LFxuICBbNTddOiBsaXN0LFxuICBbNjJdOiBibG9ja1F1b3RlXG59XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ2NvbnRlbnRJbml0aWFsJ119ICovXG5leHBvcnQgY29uc3QgY29udGVudEluaXRpYWwgPSB7XG4gIFs5MV06IGRlZmluaXRpb25cbn1cblxuLyoqIEBzYXRpc2ZpZXMge0V4dGVuc2lvblsnZmxvd0luaXRpYWwnXX0gKi9cbmV4cG9ydCBjb25zdCBmbG93SW5pdGlhbCA9IHtcbiAgWy0yXTogY29kZUluZGVudGVkLFxuICBbLTFdOiBjb2RlSW5kZW50ZWQsXG4gIFszMl06IGNvZGVJbmRlbnRlZFxufVxuXG4vKiogQHNhdGlzZmllcyB7RXh0ZW5zaW9uWydmbG93J119ICovXG5leHBvcnQgY29uc3QgZmxvdyA9IHtcbiAgWzM1XTogaGVhZGluZ0F0eCxcbiAgWzQyXTogdGhlbWF0aWNCcmVhayxcbiAgWzQ1XTogW3NldGV4dFVuZGVybGluZSwgdGhlbWF0aWNCcmVha10sXG4gIFs2MF06IGh0bWxGbG93LFxuICBbNjFdOiBzZXRleHRVbmRlcmxpbmUsXG4gIFs5NV06IHRoZW1hdGljQnJlYWssXG4gIFs5Nl06IGNvZGVGZW5jZWQsXG4gIFsxMjZdOiBjb2RlRmVuY2VkXG59XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ3N0cmluZyddfSAqL1xuZXhwb3J0IGNvbnN0IHN0cmluZyA9IHtcbiAgWzM4XTogY2hhcmFjdGVyUmVmZXJlbmNlLFxuICBbOTJdOiBjaGFyYWN0ZXJFc2NhcGVcbn1cblxuLyoqIEBzYXRpc2ZpZXMge0V4dGVuc2lvblsndGV4dCddfSAqL1xuZXhwb3J0IGNvbnN0IHRleHQgPSB7XG4gIFstNV06IGxpbmVFbmRpbmcsXG4gIFstNF06IGxpbmVFbmRpbmcsXG4gIFstM106IGxpbmVFbmRpbmcsXG4gIFszM106IGxhYmVsU3RhcnRJbWFnZSxcbiAgWzM4XTogY2hhcmFjdGVyUmVmZXJlbmNlLFxuICBbNDJdOiBhdHRlbnRpb24sXG4gIFs2MF06IFthdXRvbGluaywgaHRtbFRleHRdLFxuICBbOTFdOiBsYWJlbFN0YXJ0TGluayxcbiAgWzkyXTogW2hhcmRCcmVha0VzY2FwZSwgY2hhcmFjdGVyRXNjYXBlXSxcbiAgWzkzXTogbGFiZWxFbmQsXG4gIFs5NV06IGF0dGVudGlvbixcbiAgWzk2XTogY29kZVRleHRcbn1cblxuLyoqIEBzYXRpc2ZpZXMge0V4dGVuc2lvblsnaW5zaWRlU3BhbiddfSAqL1xuZXhwb3J0IGNvbnN0IGluc2lkZVNwYW4gPSB7XG4gIG51bGw6IFthdHRlbnRpb24sIHJlc29sdmVUZXh0XVxufVxuXG4vKiogQHNhdGlzZmllcyB7RXh0ZW5zaW9uWydhdHRlbnRpb25NYXJrZXJzJ119ICovXG5leHBvcnQgY29uc3QgYXR0ZW50aW9uTWFya2VycyA9IHtcbiAgbnVsbDogWzQyLCA5NV1cbn1cblxuLyoqIEBzYXRpc2ZpZXMge0V4dGVuc2lvblsnZGlzYWJsZSddfSAqL1xuZXhwb3J0IGNvbnN0IGRpc2FibGUgPSB7XG4gIG51bGw6IFtdXG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5DcmVhdGV9IENyZWF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5GdWxsTm9ybWFsaXplZEV4dGVuc2lvbn0gRnVsbE5vcm1hbGl6ZWRFeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSW5pdGlhbENvbnN0cnVjdH0gSW5pdGlhbENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5QYXJzZUNvbnRleHR9IFBhcnNlQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5QYXJzZU9wdGlvbnN9IFBhcnNlT3B0aW9uc1xuICovXG5cbmltcG9ydCB7Y29tYmluZUV4dGVuc2lvbnN9IGZyb20gJ21pY3JvbWFyay11dGlsLWNvbWJpbmUtZXh0ZW5zaW9ucydcbmltcG9ydCB7Y29udGVudH0gZnJvbSAnLi9pbml0aWFsaXplL2NvbnRlbnQuanMnXG5pbXBvcnQge2RvY3VtZW50fSBmcm9tICcuL2luaXRpYWxpemUvZG9jdW1lbnQuanMnXG5pbXBvcnQge2Zsb3d9IGZyb20gJy4vaW5pdGlhbGl6ZS9mbG93LmpzJ1xuaW1wb3J0IHt0ZXh0LCBzdHJpbmd9IGZyb20gJy4vaW5pdGlhbGl6ZS90ZXh0LmpzJ1xuaW1wb3J0IHtjcmVhdGVUb2tlbml6ZXJ9IGZyb20gJy4vY3JlYXRlLXRva2VuaXplci5qcydcbmltcG9ydCAqIGFzIGRlZmF1bHRDb25zdHJ1Y3RzIGZyb20gJy4vY29uc3RydWN0cy5qcydcblxuLyoqXG4gKiBAcGFyYW0ge1BhcnNlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogQHJldHVybnMge1BhcnNlQ29udGV4dH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG4gIGNvbnN0IGNvbnN0cnVjdHMgPVxuICAgIC8qKiBAdHlwZSB7RnVsbE5vcm1hbGl6ZWRFeHRlbnNpb259ICovXG4gICAgY29tYmluZUV4dGVuc2lvbnMoW2RlZmF1bHRDb25zdHJ1Y3RzLCAuLi4oc2V0dGluZ3MuZXh0ZW5zaW9ucyB8fCBbXSldKVxuXG4gIC8qKiBAdHlwZSB7UGFyc2VDb250ZXh0fSAqL1xuICBjb25zdCBwYXJzZXIgPSB7XG4gICAgZGVmaW5lZDogW10sXG4gICAgbGF6eToge30sXG4gICAgY29uc3RydWN0cyxcbiAgICBjb250ZW50OiBjcmVhdGUoY29udGVudCksXG4gICAgZG9jdW1lbnQ6IGNyZWF0ZShkb2N1bWVudCksXG4gICAgZmxvdzogY3JlYXRlKGZsb3cpLFxuICAgIHN0cmluZzogY3JlYXRlKHN0cmluZyksXG4gICAgdGV4dDogY3JlYXRlKHRleHQpXG4gIH1cbiAgcmV0dXJuIHBhcnNlclxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0luaXRpYWxDb25zdHJ1Y3R9IGluaXRpYWxcbiAgICovXG4gIGZ1bmN0aW9uIGNyZWF0ZShpbml0aWFsKSB7XG4gICAgcmV0dXJuIGNyZWF0b3JcbiAgICAvKiogQHR5cGUge0NyZWF0ZX0gKi9cbiAgICBmdW5jdGlvbiBjcmVhdG9yKGZyb20pIHtcbiAgICAgIHJldHVybiBjcmVhdGVUb2tlbml6ZXIocGFyc2VyLCBpbml0aWFsLCBmcm9tKVxuICAgIH1cbiAgfVxufVxuIiwKICAgICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ2h1bmt9IENodW5rXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRW5jb2Rpbmd9IEVuY29kaW5nXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlZhbHVlfSBWYWx1ZVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIFByZXByb2Nlc3NvclxuICogQHBhcmFtIHtWYWx1ZX0gdmFsdWVcbiAqIEBwYXJhbSB7RW5jb2RpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5jb2RpbmddXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5kPWZhbHNlXVxuICogQHJldHVybnMge0FycmF5PENodW5rPn1cbiAqL1xuXG5jb25zdCBzZWFyY2ggPSAvW1xcMFxcdFxcblxccl0vZ1xuXG4vKipcbiAqIEByZXR1cm5zIHtQcmVwcm9jZXNzb3J9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwcm9jZXNzKCkge1xuICBsZXQgY29sdW1uID0gMVxuICBsZXQgYnVmZmVyID0gJydcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgc3RhcnQgPSB0cnVlXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGF0Q2FycmlhZ2VSZXR1cm5cbiAgcmV0dXJuIHByZXByb2Nlc3NvclxuXG4gIC8qKiBAdHlwZSB7UHJlcHJvY2Vzc29yfSAqL1xuICBmdW5jdGlvbiBwcmVwcm9jZXNzb3IodmFsdWUsIGVuY29kaW5nLCBlbmQpIHtcbiAgICAvKiogQHR5cGUge0FycmF5PENodW5rPn0gKi9cbiAgICBjb25zdCBjaHVua3MgPSBbXVxuICAgIC8qKiBAdHlwZSB7UmVnRXhwTWF0Y2hBcnJheSB8IG51bGx9ICovXG4gICAgbGV0IG1hdGNoXG4gICAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gICAgbGV0IG5leHRcbiAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICBsZXQgc3RhcnRQb3NpdGlvblxuICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgIGxldCBlbmRQb3NpdGlvblxuICAgIC8qKiBAdHlwZSB7Q29kZX0gKi9cbiAgICBsZXQgY29kZVxuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBgQnVmZmVyYCBkb2VzIGFsbG93IGFuIGVuY29kaW5nLlxuICAgIHZhbHVlID0gYnVmZmVyICsgdmFsdWUudG9TdHJpbmcoZW5jb2RpbmcpXG4gICAgc3RhcnRQb3NpdGlvbiA9IDBcbiAgICBidWZmZXIgPSAnJ1xuICAgIGlmIChzdGFydCkge1xuICAgICAgLy8gVG8gZG86IGBtYXJrZG93bi1yc2AgYWN0dWFsbHkgcGFyc2VzIEJPTXMgKGJ5dGUgb3JkZXIgbWFyaykuXG4gICAgICBpZiAodmFsdWUuY2hhckNvZGVBdCgwKSA9PT0gNjUyNzkpIHtcbiAgICAgICAgc3RhcnRQb3NpdGlvbisrXG4gICAgICB9XG4gICAgICBzdGFydCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgICB3aGlsZSAoc3RhcnRQb3NpdGlvbiA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgc2VhcmNoLmxhc3RJbmRleCA9IHN0YXJ0UG9zaXRpb25cbiAgICAgIG1hdGNoID0gc2VhcmNoLmV4ZWModmFsdWUpXG4gICAgICBlbmRQb3NpdGlvbiA9XG4gICAgICAgIG1hdGNoICYmIG1hdGNoLmluZGV4ICE9PSB1bmRlZmluZWQgPyBtYXRjaC5pbmRleCA6IHZhbHVlLmxlbmd0aFxuICAgICAgY29kZSA9IHZhbHVlLmNoYXJDb2RlQXQoZW5kUG9zaXRpb24pXG4gICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIGJ1ZmZlciA9IHZhbHVlLnNsaWNlKHN0YXJ0UG9zaXRpb24pXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBpZiAoY29kZSA9PT0gMTAgJiYgc3RhcnRQb3NpdGlvbiA9PT0gZW5kUG9zaXRpb24gJiYgYXRDYXJyaWFnZVJldHVybikge1xuICAgICAgICBjaHVua3MucHVzaCgtMylcbiAgICAgICAgYXRDYXJyaWFnZVJldHVybiA9IHVuZGVmaW5lZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGF0Q2FycmlhZ2VSZXR1cm4pIHtcbiAgICAgICAgICBjaHVua3MucHVzaCgtNSlcbiAgICAgICAgICBhdENhcnJpYWdlUmV0dXJuID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0UG9zaXRpb24gPCBlbmRQb3NpdGlvbikge1xuICAgICAgICAgIGNodW5rcy5wdXNoKHZhbHVlLnNsaWNlKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKSlcbiAgICAgICAgICBjb2x1bW4gKz0gZW5kUG9zaXRpb24gLSBzdGFydFBvc2l0aW9uXG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgICAgY2FzZSAwOiB7XG4gICAgICAgICAgICBjaHVua3MucHVzaCg2NTUzMylcbiAgICAgICAgICAgIGNvbHVtbisrXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIDk6IHtcbiAgICAgICAgICAgIG5leHQgPSBNYXRoLmNlaWwoY29sdW1uIC8gNCkgKiA0XG4gICAgICAgICAgICBjaHVua3MucHVzaCgtMilcbiAgICAgICAgICAgIHdoaWxlIChjb2x1bW4rKyA8IG5leHQpIGNodW5rcy5wdXNoKC0xKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSAxMDoge1xuICAgICAgICAgICAgY2h1bmtzLnB1c2goLTQpXG4gICAgICAgICAgICBjb2x1bW4gPSAxXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBhdENhcnJpYWdlUmV0dXJuID0gdHJ1ZVxuICAgICAgICAgICAgY29sdW1uID0gMVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RhcnRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uICsgMVxuICAgIH1cbiAgICBpZiAoZW5kKSB7XG4gICAgICBpZiAoYXRDYXJyaWFnZVJldHVybikgY2h1bmtzLnB1c2goLTUpXG4gICAgICBpZiAoYnVmZmVyKSBjaHVua3MucHVzaChidWZmZXIpXG4gICAgICBjaHVua3MucHVzaChudWxsKVxuICAgIH1cbiAgICByZXR1cm4gY2h1bmtzXG4gIH1cbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkV2ZW50fSBFdmVudFxuICovXG5cbmltcG9ydCB7c3VidG9rZW5pemV9IGZyb20gJ21pY3JvbWFyay11dGlsLXN1YnRva2VuaXplJ1xuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAqIEByZXR1cm5zIHtBcnJheTxFdmVudD59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3N0cHJvY2VzcyhldmVudHMpIHtcbiAgd2hpbGUgKCFzdWJ0b2tlbml6ZShldmVudHMpKSB7XG4gICAgLy8gRW1wdHlcbiAgfVxuICByZXR1cm4gZXZlbnRzXG59XG4iLAogICAgIi8qKlxuICogVHVybiB0aGUgbnVtYmVyIChpbiBzdHJpbmcgZm9ybSBhcyBlaXRoZXIgaGV4YS0gb3IgcGxhaW4gZGVjaW1hbCkgY29taW5nIGZyb21cbiAqIGEgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlIGludG8gYSBjaGFyYWN0ZXIuXG4gKlxuICogU29ydCBvZiBsaWtlIGBTdHJpbmcuZnJvbUNoYXJDb2RlKE51bWJlci5wYXJzZUludCh2YWx1ZSwgYmFzZSkpYCwgYnV0IG1ha2VzXG4gKiBub24tY2hhcmFjdGVycyBhbmQgY29udHJvbCBjaGFyYWN0ZXJzIHNhZmUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGRlY29kZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBiYXNlXG4gKiAgIE51bWVyaWMgYmFzZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENoYXJhY3Rlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UodmFsdWUsIGJhc2UpIHtcbiAgY29uc3QgY29kZSA9IE51bWJlci5wYXJzZUludCh2YWx1ZSwgYmFzZSlcbiAgaWYgKFxuICAgIC8vIEMwIGV4Y2VwdCBmb3IgSFQsIExGLCBGRiwgQ1IsIHNwYWNlLlxuICAgIGNvZGUgPCA5IHx8XG4gICAgY29kZSA9PT0gMTEgfHxcbiAgICAoY29kZSA+IDEzICYmIGNvZGUgPCAzMikgfHxcbiAgICAvLyBDb250cm9sIGNoYXJhY3RlciAoREVMKSBvZiBDMCwgYW5kIEMxIGNvbnRyb2xzLlxuICAgIChjb2RlID4gMTI2ICYmIGNvZGUgPCAxNjApIHx8XG4gICAgLy8gTG9uZSBoaWdoIHN1cnJvZ2F0ZXMgYW5kIGxvdyBzdXJyb2dhdGVzLlxuICAgIChjb2RlID4gNTUyOTUgJiYgY29kZSA8IDU3MzQ0KSB8fFxuICAgIC8vIE5vbmNoYXJhY3RlcnMuXG4gICAgKGNvZGUgPiA2NDk3NSAmJiBjb2RlIDwgNjUwMDgpIC8qIGVzbGludC1kaXNhYmxlIG5vLWJpdHdpc2UgKi8gfHxcbiAgICAoY29kZSAmIDY1NTM1KSA9PT0gNjU1MzUgfHxcbiAgICAoY29kZSAmIDY1NTM1KSA9PT0gNjU1MzQgLyogZXNsaW50LWVuYWJsZSBuby1iaXR3aXNlICovIHx8XG4gICAgLy8gT3V0IG9mIHJhbmdlXG4gICAgY29kZSA+IDExMTQxMTFcbiAgKSB7XG4gICAgcmV0dXJuICdcXHVGRkZEJ1xuICB9XG4gIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpXG59XG4iLAogICAgImltcG9ydCB7ZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2V9IGZyb20gJ2RlY29kZS1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlJ1xuaW1wb3J0IHtkZWNvZGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlfSBmcm9tICdtaWNyb21hcmstdXRpbC1kZWNvZGUtbnVtZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNlJ1xuY29uc3QgY2hhcmFjdGVyRXNjYXBlT3JSZWZlcmVuY2UgPVxuICAvXFxcXChbIS0vOi1AWy1gey1+XSl8JigjKD86XFxkezEsN318eFtcXGRhLWZdezEsNn0pfFtcXGRhLXpdezEsMzF9KTsvZ2lcblxuLyoqXG4gKiBEZWNvZGUgbWFya2Rvd24gc3RyaW5ncyAod2hpY2ggb2NjdXIgaW4gcGxhY2VzIHN1Y2ggYXMgZmVuY2VkIGNvZGUgaW5mb1xuICogc3RyaW5ncywgZGVzdGluYXRpb25zLCBsYWJlbHMsIGFuZCB0aXRsZXMpLlxuICpcbiAqIFRoZSDigJxzdHJpbmfigJ0gY29udGVudCB0eXBlIGFsbG93cyBjaGFyYWN0ZXIgZXNjYXBlcyBhbmQgLXJlZmVyZW5jZXMuXG4gKiBUaGlzIGRlY29kZXMgdGhvc2UuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGRlY29kZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIERlY29kZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVTdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoY2hhcmFjdGVyRXNjYXBlT3JSZWZlcmVuY2UsIGRlY29kZSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMVxuICogQHBhcmFtIHtzdHJpbmd9ICQyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBkZWNvZGUoJDAsICQxLCAkMikge1xuICBpZiAoJDEpIHtcbiAgICAvLyBFc2NhcGUuXG4gICAgcmV0dXJuICQxXG4gIH1cblxuICAvLyBSZWZlcmVuY2UuXG4gIGNvbnN0IGhlYWQgPSAkMi5jaGFyQ29kZUF0KDApXG4gIGlmIChoZWFkID09PSAzNSkge1xuICAgIGNvbnN0IGhlYWQgPSAkMi5jaGFyQ29kZUF0KDEpXG4gICAgY29uc3QgaGV4ID0gaGVhZCA9PT0gMTIwIHx8IGhlYWQgPT09IDg4XG4gICAgcmV0dXJuIGRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoJDIuc2xpY2UoaGV4ID8gMiA6IDEpLCBoZXggPyAxNiA6IDEwKVxuICB9XG4gIHJldHVybiBkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZSgkMikgfHwgJDBcbn1cbiIsCiAgICAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgTm9kZUxpa2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0eXBlXG4gKiBAcHJvcGVydHkge1Bvc2l0aW9uTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtwb3NpdGlvbl1cbiAqXG4gKiBAdHlwZWRlZiBQb3NpdGlvbkxpa2VcbiAqIEBwcm9wZXJ0eSB7UG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3N0YXJ0XVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5kXVxuICpcbiAqIEB0eXBlZGVmIFBvaW50TGlrZVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbbGluZV1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NvbHVtbl1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqL1xuXG4vKipcbiAqIFNlcmlhbGl6ZSB0aGUgcG9zaXRpb25hbCBpbmZvIG9mIGEgcG9pbnQsIHBvc2l0aW9uIChzdGFydCBhbmQgZW5kIHBvaW50cyksXG4gKiBvciBub2RlLlxuICpcbiAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgUG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBQb2ludCB8IFBvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAqICAgTm9kZSwgcG9zaXRpb24sIG9yIHBvaW50LlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgUHJldHR5IHByaW50ZWQgcG9zaXRpb25hbCBpbmZvIG9mIGEgbm9kZSAoYHN0cmluZ2ApLlxuICpcbiAqICAgSW4gdGhlIGZvcm1hdCBvZiBhIHJhbmdlIGBsczpjcy1sZTpjZWAgKHdoZW4gZ2l2ZW4gYG5vZGVgIG9yIGBwb3NpdGlvbmApXG4gKiAgIG9yIGEgcG9pbnQgYGw6Y2AgKHdoZW4gZ2l2ZW4gYHBvaW50YCksIHdoZXJlIGBsYCBzdGFuZHMgZm9yIGxpbmUsIGBjYCBmb3JcbiAqICAgY29sdW1uLCBgc2AgZm9yIGBzdGFydGAsIGFuZCBgZWAgZm9yIGVuZC5cbiAqICAgQW4gZW1wdHkgc3RyaW5nIChgJydgKSBpcyByZXR1cm5lZCBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgbmVpdGhlciBgbm9kZWAsXG4gKiAgIGBwb3NpdGlvbmAsIG5vciBgcG9pbnRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5UG9zaXRpb24odmFsdWUpIHtcbiAgLy8gTm90aGluZy5cbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICAvLyBOb2RlLlxuICBpZiAoJ3Bvc2l0aW9uJyBpbiB2YWx1ZSB8fCAndHlwZScgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gcG9zaXRpb24odmFsdWUucG9zaXRpb24pXG4gIH1cblxuICAvLyBQb3NpdGlvbi5cbiAgaWYgKCdzdGFydCcgaW4gdmFsdWUgfHwgJ2VuZCcgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gcG9zaXRpb24odmFsdWUpXG4gIH1cblxuICAvLyBQb2ludC5cbiAgaWYgKCdsaW5lJyBpbiB2YWx1ZSB8fCAnY29sdW1uJyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBwb2ludCh2YWx1ZSlcbiAgfVxuXG4gIC8vID9cbiAgcmV0dXJuICcnXG59XG5cbi8qKlxuICogQHBhcmFtIHtQb2ludCB8IFBvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBvaW50XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBwb2ludChwb2ludCkge1xuICByZXR1cm4gaW5kZXgocG9pbnQgJiYgcG9pbnQubGluZSkgKyAnOicgKyBpbmRleChwb2ludCAmJiBwb2ludC5jb2x1bW4pXG59XG5cbi8qKlxuICogQHBhcmFtIHtQb3NpdGlvbiB8IFBvc2l0aW9uTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBvc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcG9zaXRpb24ocG9zKSB7XG4gIHJldHVybiBwb2ludChwb3MgJiYgcG9zLnN0YXJ0KSArICctJyArIHBvaW50KHBvcyAmJiBwb3MuZW5kKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gdmFsdWVcbiAqIEByZXR1cm5zIHtudW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIGluZGV4KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8gdmFsdWUgOiAxXG59XG4iLAogICAgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FbmNvZGluZ30gRW5jb2RpbmdcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXZlbnR9IEV2ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlBhcnNlT3B0aW9uc30gUGFyc2VPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5WYWx1ZX0gVmFsdWVcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBhcmVudH0gVW5pc3RQYXJlbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QaHJhc2luZ0NvbnRlbnR9IFBocmFzaW5nQ29udGVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5TdGF0aWNQaHJhc2luZ0NvbnRlbnR9IFN0YXRpY1BocmFzaW5nQ29udGVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5Db250ZW50fSBDb250ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkJyZWFrfSBCcmVha1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5CbG9ja3F1b3RlfSBCbG9ja3F1b3RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuRGVmaW5pdGlvbn0gRGVmaW5pdGlvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5FbXBoYXNpc30gRW1waGFzaXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuSGVhZGluZ30gSGVhZGluZ1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5IVE1MfSBIVE1MXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkltYWdlfSBJbWFnZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5JbWFnZVJlZmVyZW5jZX0gSW1hZ2VSZWZlcmVuY2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuSW5saW5lQ29kZX0gSW5saW5lQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5MaW5rfSBMaW5rXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkxpbmtSZWZlcmVuY2V9IExpbmtSZWZlcmVuY2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuTGlzdH0gTGlzdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5MaXN0SXRlbX0gTGlzdEl0ZW1cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyYWdyYXBofSBQYXJhZ3JhcGhcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5TdHJvbmd9IFN0cm9uZ1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5UZXh0fSBUZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlRoZW1hdGljQnJlYWt9IFRoZW1hdGljQnJlYWtcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUmVmZXJlbmNlVHlwZX0gUmVmZXJlbmNlVHlwZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5Db21waWxlRGF0YX0gQ29tcGlsZURhdGFcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtSb290IHwgQ29udGVudH0gTm9kZVxuICogQHR5cGVkZWYge0V4dHJhY3Q8Tm9kZSwgVW5pc3RQYXJlbnQ+fSBQYXJlbnRcbiAqXG4gKiBAdHlwZWRlZiB7T21pdDxVbmlzdFBhcmVudCwgJ3R5cGUnIHwgJ2NoaWxkcmVuJz4gJiB7dHlwZTogJ2ZyYWdtZW50JywgY2hpbGRyZW46IEFycmF5PFBocmFzaW5nQ29udGVudD59fSBGcmFnbWVudFxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIFRyYW5zZm9ybVxuICogICBFeHRyYSB0cmFuc2Zvcm0sIHRvIGNoYW5nZSB0aGUgQVNUIGFmdGVyd2FyZHMuXG4gKiBAcGFyYW0ge1Jvb3R9IHRyZWVcbiAqICAgVHJlZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7Um9vdCB8IHVuZGVmaW5lZCB8IG51bGwgfCB2b2lkfVxuICogICBOZXcgdHJlZSBvciBub3RoaW5nIChpbiB3aGljaCBjYXNlIHRoZSBjdXJyZW50IHRyZWUgaXMgdXNlZCkuXG4gKlxuICogQGNhbGxiYWNrIEhhbmRsZVxuICogICBIYW5kbGUgYSB0b2tlbi5cbiAqIEBwYXJhbSB7Q29tcGlsZUNvbnRleHR9IHRoaXNcbiAqICAgQ29udGV4dC5cbiAqIEBwYXJhbSB7VG9rZW59IHRva2VuXG4gKiAgIEN1cnJlbnQgdG9rZW4uXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqICAgTm90aGluZy5cbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgSGFuZGxlPn0gSGFuZGxlc1xuICogICBUb2tlbiB0eXBlcyBtYXBwaW5nIHRvIGhhbmRsZXNcbiAqXG4gKiBAY2FsbGJhY2sgT25FbnRlckVycm9yXG4gKiAgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgYHJpZ2h0YCB0b2tlbiBpcyBvcGVuLCBidXQgaXQgaXMgY2xvc2VkIChieSB0aGVcbiAqICAgYGxlZnRgIHRva2VuKSBvciBiZWNhdXNlIHdlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuXG4gKiBAcGFyYW0ge09taXQ8Q29tcGlsZUNvbnRleHQsICdzbGljZVNlcmlhbGl6ZSc+fSB0aGlzXG4gKiAgIENvbnRleHQuXG4gKiBAcGFyYW0ge1Rva2VuIHwgdW5kZWZpbmVkfSBsZWZ0XG4gKiAgIExlZnQgdG9rZW4uXG4gKiBAcGFyYW0ge1Rva2VufSByaWdodFxuICogICBSaWdodCB0b2tlbi5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICogICBOb3RoaW5nLlxuICpcbiAqIEBjYWxsYmFjayBPbkV4aXRFcnJvclxuICogICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGByaWdodGAgdG9rZW4gaXMgb3BlbiBidXQgaXQgaXMgY2xvc2VkIGJ5XG4gKiAgIGV4aXRpbmcgdGhlIGBsZWZ0YCB0b2tlbi5cbiAqIEBwYXJhbSB7T21pdDxDb21waWxlQ29udGV4dCwgJ3NsaWNlU2VyaWFsaXplJz59IHRoaXNcbiAqICAgQ29udGV4dC5cbiAqIEBwYXJhbSB7VG9rZW59IGxlZnRcbiAqICAgTGVmdCB0b2tlbi5cbiAqIEBwYXJhbSB7VG9rZW59IHJpZ2h0XG4gKiAgIFJpZ2h0IHRva2VuLlxuICogQHJldHVybnMge3ZvaWR9XG4gKiAgIE5vdGhpbmcuXG4gKlxuICogQHR5cGVkZWYge1tUb2tlbiwgT25FbnRlckVycm9yIHwgdW5kZWZpbmVkXX0gVG9rZW5UdXBsZVxuICogICBPcGVuIHRva2VuIG9uIHRoZSBzdGFjaywgd2l0aCBhbiBvcHRpb25hbCBlcnJvciBoYW5kbGVyIGZvciB3aGVuXG4gKiAgIHRoYXQgdG9rZW4gaXNu4oCZdCBjbG9zZWQgcHJvcGVybHkuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBDb25maWdcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqXG4gKiAgIFdlIGhhdmUgb3VyIGRlZmF1bHRzLCBidXQgZXh0ZW5zaW9ucyB3aWxsIGFkZCBtb3JlLlxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+fSBjYW5Db250YWluRW9sc1xuICogICBUb2tlbiB0eXBlcyB3aGVyZSBsaW5lIGVuZGluZ3MgYXJlIHVzZWQuXG4gKiBAcHJvcGVydHkge0hhbmRsZXN9IGVudGVyXG4gKiAgIE9wZW5pbmcgaGFuZGxlcy5cbiAqIEBwcm9wZXJ0eSB7SGFuZGxlc30gZXhpdFxuICogICBDbG9zaW5nIGhhbmRsZXMuXG4gKiBAcHJvcGVydHkge0FycmF5PFRyYW5zZm9ybT59IHRyYW5zZm9ybXNcbiAqICAgVHJlZSB0cmFuc2Zvcm1zLlxuICpcbiAqIEB0eXBlZGVmIHtQYXJ0aWFsPENvbmZpZz59IEV4dGVuc2lvblxuICogICBDaGFuZ2UgaG93IG1hcmtkb3duIHRva2VucyBmcm9tIG1pY3JvbWFyayBhcmUgdHVybmVkIGludG8gbWRhc3QuXG4gKlxuICogQHR5cGVkZWYgQ29tcGlsZUNvbnRleHRcbiAqICAgbWRhc3QgY29tcGlsZXIgY29udGV4dC5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8Tm9kZSB8IEZyYWdtZW50Pn0gc3RhY2tcbiAqICAgU3RhY2sgb2Ygbm9kZXMuXG4gKiBAcHJvcGVydHkge0FycmF5PFRva2VuVHVwbGU+fSB0b2tlblN0YWNrXG4gKiAgIFN0YWNrIG9mIHRva2Vucy5cbiAqIEBwcm9wZXJ0eSB7PEtleSBleHRlbmRzIGtleW9mIENvbXBpbGVEYXRhPihrZXk6IEtleSkgPT4gQ29tcGlsZURhdGFbS2V5XX0gZ2V0RGF0YVxuICogICBHZXQgZGF0YSBmcm9tIHRoZSBrZXkvdmFsdWUgc3RvcmUuXG4gKiBAcHJvcGVydHkgezxLZXkgZXh0ZW5kcyBrZXlvZiBDb21waWxlRGF0YT4oa2V5OiBLZXksIHZhbHVlPzogQ29tcGlsZURhdGFbS2V5XSkgPT4gdm9pZH0gc2V0RGF0YVxuICogICBTZXQgZGF0YSBpbnRvIHRoZSBrZXkvdmFsdWUgc3RvcmUuXG4gKiBAcHJvcGVydHkgeyh0aGlzOiBDb21waWxlQ29udGV4dCkgPT4gdm9pZH0gYnVmZmVyXG4gKiAgIENhcHR1cmUgc29tZSBvZiB0aGUgb3V0cHV0IGRhdGEuXG4gKiBAcHJvcGVydHkgeyh0aGlzOiBDb21waWxlQ29udGV4dCkgPT4gc3RyaW5nfSByZXN1bWVcbiAqICAgU3RvcCBjYXB0dXJpbmcgYW5kIGFjY2VzcyB0aGUgb3V0cHV0IGRhdGEuXG4gKiBAcHJvcGVydHkgezxLaW5kIGV4dGVuZHMgTm9kZT4odGhpczogQ29tcGlsZUNvbnRleHQsIG5vZGU6IEtpbmQsIHRva2VuOiBUb2tlbiwgb25FcnJvcj86IE9uRW50ZXJFcnJvcikgPT4gS2luZH0gZW50ZXJcbiAqICAgRW50ZXIgYSB0b2tlbi5cbiAqIEBwcm9wZXJ0eSB7KHRoaXM6IENvbXBpbGVDb250ZXh0LCB0b2tlbjogVG9rZW4sIG9uRXJyb3I/OiBPbkV4aXRFcnJvcikgPT4gTm9kZX0gZXhpdFxuICogICBFeGl0IGEgdG9rZW4uXG4gKiBAcHJvcGVydHkge1Rva2VuaXplQ29udGV4dFsnc2xpY2VTZXJpYWxpemUnXX0gc2xpY2VTZXJpYWxpemVcbiAqICAgR2V0IHRoZSBzdHJpbmcgdmFsdWUgb2YgYSB0b2tlbi5cbiAqIEBwcm9wZXJ0eSB7Q29uZmlnfSBjb25maWdcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqXG4gKiBAdHlwZWRlZiBGcm9tTWFya2Rvd25PcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGhvdyB0byBidWlsZCBtZGFzdC5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8RXh0ZW5zaW9uIHwgQXJyYXk8RXh0ZW5zaW9uPj4gfCBudWxsIHwgdW5kZWZpbmVkfSBbbWRhc3RFeHRlbnNpb25zXVxuICogICBFeHRlbnNpb25zIGZvciB0aGlzIHV0aWxpdHkgdG8gY2hhbmdlIGhvdyB0b2tlbnMgYXJlIHR1cm5lZCBpbnRvIGEgdHJlZS5cbiAqXG4gKiBAdHlwZWRlZiB7UGFyc2VPcHRpb25zICYgRnJvbU1hcmtkb3duT3B0aW9uc30gT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICovXG5cbi8vIFRvIGRvOiBtaWNyb21hcms6IGNyZWF0ZSBhIHJlZ2lzdHJ5IG9mIHRva2Vucz9cbi8vIFRvIGRvOiBuZXh0IG1ham9yOiBkb27igJl0IHJldHVybiBnaXZlbiBgTm9kZWAgZnJvbSBgZW50ZXJgLlxuLy8gVG8gZG86IG5leHQgbWFqb3I6IHJlbW92ZSBzZXR0ZXIvZ2V0dGVyLlxuXG5pbXBvcnQge3RvU3RyaW5nfSBmcm9tICdtZGFzdC11dGlsLXRvLXN0cmluZydcbmltcG9ydCB7cGFyc2V9IGZyb20gJ21pY3JvbWFyay9saWIvcGFyc2UuanMnXG5pbXBvcnQge3ByZXByb2Nlc3N9IGZyb20gJ21pY3JvbWFyay9saWIvcHJlcHJvY2Vzcy5qcydcbmltcG9ydCB7cG9zdHByb2Nlc3N9IGZyb20gJ21pY3JvbWFyay9saWIvcG9zdHByb2Nlc3MuanMnXG5pbXBvcnQge2RlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWRlY29kZS1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVuY2UnXG5pbXBvcnQge2RlY29kZVN0cmluZ30gZnJvbSAnbWljcm9tYXJrLXV0aWwtZGVjb2RlLXN0cmluZydcbmltcG9ydCB7bm9ybWFsaXplSWRlbnRpZmllcn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtbm9ybWFsaXplLWlkZW50aWZpZXInXG5pbXBvcnQge2RlY29kZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlfSBmcm9tICdkZWNvZGUtbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZSdcbmltcG9ydCB7c3RyaW5naWZ5UG9zaXRpb259IGZyb20gJ3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uJ1xuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBAcGFyYW0gdmFsdWVcbiAqICAgTWFya2Rvd24gdG8gcGFyc2UuXG4gKiBAcGFyYW0gZW5jb2RpbmdcbiAqICAgQ2hhcmFjdGVyIGVuY29kaW5nIGZvciB3aGVuIGB2YWx1ZWAgaXMgYEJ1ZmZlcmAuXG4gKiBAcGFyYW0gb3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnNcbiAqICAgbWRhc3QgdHJlZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGZyb21NYXJrZG93biA9XG4gIC8qKlxuICAgKiBAdHlwZSB7KFxuICAgKiAgICgodmFsdWU6IFZhbHVlLCBlbmNvZGluZzogRW5jb2RpbmcsIG9wdGlvbnM/OiBPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gUm9vdCkgJlxuICAgKiAgICgodmFsdWU6IFZhbHVlLCBvcHRpb25zPzogT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWQpID0+IFJvb3QpXG4gICAqICl9XG4gICAqL1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1ZhbHVlfSB2YWx1ZVxuICAgKiBAcGFyYW0ge0VuY29kaW5nIHwgT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmNvZGluZ11cbiAgICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zIHtSb290fVxuICAgKi9cbiAgZnVuY3Rpb24gKHZhbHVlLCBlbmNvZGluZywgb3B0aW9ucykge1xuICAgIGlmICh0eXBlb2YgZW5jb2RpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgICBvcHRpb25zID0gZW5jb2RpbmdcbiAgICAgIGVuY29kaW5nID0gdW5kZWZpbmVkXG4gICAgfVxuICAgIHJldHVybiBjb21waWxlcihvcHRpb25zKShcbiAgICAgIHBvc3Rwcm9jZXNzKFxuICAgICAgICBwYXJzZShvcHRpb25zKS5kb2N1bWVudCgpLndyaXRlKHByZXByb2Nlc3MoKSh2YWx1ZSwgZW5jb2RpbmcsIHRydWUpKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4vKipcbiAqIE5vdGUgdGhpcyBjb21waWxlciBvbmx5IHVuZGVyc3RhbmQgY29tcGxldGUgYnVmZmVyaW5nLCBub3Qgc3RyZWFtaW5nLlxuICpcbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICovXG5mdW5jdGlvbiBjb21waWxlcihvcHRpb25zKSB7XG4gIC8qKiBAdHlwZSB7Q29uZmlnfSAqL1xuICBjb25zdCBjb25maWcgPSB7XG4gICAgdHJhbnNmb3JtczogW10sXG4gICAgY2FuQ29udGFpbkVvbHM6IFsnZW1waGFzaXMnLCAnZnJhZ21lbnQnLCAnaGVhZGluZycsICdwYXJhZ3JhcGgnLCAnc3Ryb25nJ10sXG4gICAgZW50ZXI6IHtcbiAgICAgIGF1dG9saW5rOiBvcGVuZXIobGluayksXG4gICAgICBhdXRvbGlua1Byb3RvY29sOiBvbmVudGVyZGF0YSxcbiAgICAgIGF1dG9saW5rRW1haWw6IG9uZW50ZXJkYXRhLFxuICAgICAgYXR4SGVhZGluZzogb3BlbmVyKGhlYWRpbmcpLFxuICAgICAgYmxvY2tRdW90ZTogb3BlbmVyKGJsb2NrUXVvdGUpLFxuICAgICAgY2hhcmFjdGVyRXNjYXBlOiBvbmVudGVyZGF0YSxcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZTogb25lbnRlcmRhdGEsXG4gICAgICBjb2RlRmVuY2VkOiBvcGVuZXIoY29kZUZsb3cpLFxuICAgICAgY29kZUZlbmNlZEZlbmNlSW5mbzogYnVmZmVyLFxuICAgICAgY29kZUZlbmNlZEZlbmNlTWV0YTogYnVmZmVyLFxuICAgICAgY29kZUluZGVudGVkOiBvcGVuZXIoY29kZUZsb3csIGJ1ZmZlciksXG4gICAgICBjb2RlVGV4dDogb3BlbmVyKGNvZGVUZXh0LCBidWZmZXIpLFxuICAgICAgY29kZVRleHREYXRhOiBvbmVudGVyZGF0YSxcbiAgICAgIGRhdGE6IG9uZW50ZXJkYXRhLFxuICAgICAgY29kZUZsb3dWYWx1ZTogb25lbnRlcmRhdGEsXG4gICAgICBkZWZpbml0aW9uOiBvcGVuZXIoZGVmaW5pdGlvbiksXG4gICAgICBkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6IGJ1ZmZlcixcbiAgICAgIGRlZmluaXRpb25MYWJlbFN0cmluZzogYnVmZmVyLFxuICAgICAgZGVmaW5pdGlvblRpdGxlU3RyaW5nOiBidWZmZXIsXG4gICAgICBlbXBoYXNpczogb3BlbmVyKGVtcGhhc2lzKSxcbiAgICAgIGhhcmRCcmVha0VzY2FwZTogb3BlbmVyKGhhcmRCcmVhayksXG4gICAgICBoYXJkQnJlYWtUcmFpbGluZzogb3BlbmVyKGhhcmRCcmVhayksXG4gICAgICBodG1sRmxvdzogb3BlbmVyKGh0bWwsIGJ1ZmZlciksXG4gICAgICBodG1sRmxvd0RhdGE6IG9uZW50ZXJkYXRhLFxuICAgICAgaHRtbFRleHQ6IG9wZW5lcihodG1sLCBidWZmZXIpLFxuICAgICAgaHRtbFRleHREYXRhOiBvbmVudGVyZGF0YSxcbiAgICAgIGltYWdlOiBvcGVuZXIoaW1hZ2UpLFxuICAgICAgbGFiZWw6IGJ1ZmZlcixcbiAgICAgIGxpbms6IG9wZW5lcihsaW5rKSxcbiAgICAgIGxpc3RJdGVtOiBvcGVuZXIobGlzdEl0ZW0pLFxuICAgICAgbGlzdEl0ZW1WYWx1ZTogb25lbnRlcmxpc3RpdGVtdmFsdWUsXG4gICAgICBsaXN0T3JkZXJlZDogb3BlbmVyKGxpc3QsIG9uZW50ZXJsaXN0b3JkZXJlZCksXG4gICAgICBsaXN0VW5vcmRlcmVkOiBvcGVuZXIobGlzdCksXG4gICAgICBwYXJhZ3JhcGg6IG9wZW5lcihwYXJhZ3JhcGgpLFxuICAgICAgcmVmZXJlbmNlOiBvbmVudGVycmVmZXJlbmNlLFxuICAgICAgcmVmZXJlbmNlU3RyaW5nOiBidWZmZXIsXG4gICAgICByZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOiBidWZmZXIsXG4gICAgICByZXNvdXJjZVRpdGxlU3RyaW5nOiBidWZmZXIsXG4gICAgICBzZXRleHRIZWFkaW5nOiBvcGVuZXIoaGVhZGluZyksXG4gICAgICBzdHJvbmc6IG9wZW5lcihzdHJvbmcpLFxuICAgICAgdGhlbWF0aWNCcmVhazogb3BlbmVyKHRoZW1hdGljQnJlYWspXG4gICAgfSxcbiAgICBleGl0OiB7XG4gICAgICBhdHhIZWFkaW5nOiBjbG9zZXIoKSxcbiAgICAgIGF0eEhlYWRpbmdTZXF1ZW5jZTogb25leGl0YXR4aGVhZGluZ3NlcXVlbmNlLFxuICAgICAgYXV0b2xpbms6IGNsb3NlcigpLFxuICAgICAgYXV0b2xpbmtFbWFpbDogb25leGl0YXV0b2xpbmtlbWFpbCxcbiAgICAgIGF1dG9saW5rUHJvdG9jb2w6IG9uZXhpdGF1dG9saW5rcHJvdG9jb2wsXG4gICAgICBibG9ja1F1b3RlOiBjbG9zZXIoKSxcbiAgICAgIGNoYXJhY3RlckVzY2FwZVZhbHVlOiBvbmV4aXRkYXRhLFxuICAgICAgY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6IG9uZXhpdGNoYXJhY3RlcnJlZmVyZW5jZW1hcmtlcixcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6IG9uZXhpdGNoYXJhY3RlcnJlZmVyZW5jZW1hcmtlcixcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOiBvbmV4aXRjaGFyYWN0ZXJyZWZlcmVuY2V2YWx1ZSxcbiAgICAgIGNvZGVGZW5jZWQ6IGNsb3NlcihvbmV4aXRjb2RlZmVuY2VkKSxcbiAgICAgIGNvZGVGZW5jZWRGZW5jZTogb25leGl0Y29kZWZlbmNlZGZlbmNlLFxuICAgICAgY29kZUZlbmNlZEZlbmNlSW5mbzogb25leGl0Y29kZWZlbmNlZGZlbmNlaW5mbyxcbiAgICAgIGNvZGVGZW5jZWRGZW5jZU1ldGE6IG9uZXhpdGNvZGVmZW5jZWRmZW5jZW1ldGEsXG4gICAgICBjb2RlRmxvd1ZhbHVlOiBvbmV4aXRkYXRhLFxuICAgICAgY29kZUluZGVudGVkOiBjbG9zZXIob25leGl0Y29kZWluZGVudGVkKSxcbiAgICAgIGNvZGVUZXh0OiBjbG9zZXIob25leGl0Y29kZXRleHQpLFxuICAgICAgY29kZVRleHREYXRhOiBvbmV4aXRkYXRhLFxuICAgICAgZGF0YTogb25leGl0ZGF0YSxcbiAgICAgIGRlZmluaXRpb246IGNsb3NlcigpLFxuICAgICAgZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOiBvbmV4aXRkZWZpbml0aW9uZGVzdGluYXRpb25zdHJpbmcsXG4gICAgICBkZWZpbml0aW9uTGFiZWxTdHJpbmc6IG9uZXhpdGRlZmluaXRpb25sYWJlbHN0cmluZyxcbiAgICAgIGRlZmluaXRpb25UaXRsZVN0cmluZzogb25leGl0ZGVmaW5pdGlvbnRpdGxlc3RyaW5nLFxuICAgICAgZW1waGFzaXM6IGNsb3NlcigpLFxuICAgICAgaGFyZEJyZWFrRXNjYXBlOiBjbG9zZXIob25leGl0aGFyZGJyZWFrKSxcbiAgICAgIGhhcmRCcmVha1RyYWlsaW5nOiBjbG9zZXIob25leGl0aGFyZGJyZWFrKSxcbiAgICAgIGh0bWxGbG93OiBjbG9zZXIob25leGl0aHRtbGZsb3cpLFxuICAgICAgaHRtbEZsb3dEYXRhOiBvbmV4aXRkYXRhLFxuICAgICAgaHRtbFRleHQ6IGNsb3NlcihvbmV4aXRodG1sdGV4dCksXG4gICAgICBodG1sVGV4dERhdGE6IG9uZXhpdGRhdGEsXG4gICAgICBpbWFnZTogY2xvc2VyKG9uZXhpdGltYWdlKSxcbiAgICAgIGxhYmVsOiBvbmV4aXRsYWJlbCxcbiAgICAgIGxhYmVsVGV4dDogb25leGl0bGFiZWx0ZXh0LFxuICAgICAgbGluZUVuZGluZzogb25leGl0bGluZWVuZGluZyxcbiAgICAgIGxpbms6IGNsb3NlcihvbmV4aXRsaW5rKSxcbiAgICAgIGxpc3RJdGVtOiBjbG9zZXIoKSxcbiAgICAgIGxpc3RPcmRlcmVkOiBjbG9zZXIoKSxcbiAgICAgIGxpc3RVbm9yZGVyZWQ6IGNsb3NlcigpLFxuICAgICAgcGFyYWdyYXBoOiBjbG9zZXIoKSxcbiAgICAgIHJlZmVyZW5jZVN0cmluZzogb25leGl0cmVmZXJlbmNlc3RyaW5nLFxuICAgICAgcmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzogb25leGl0cmVzb3VyY2VkZXN0aW5hdGlvbnN0cmluZyxcbiAgICAgIHJlc291cmNlVGl0bGVTdHJpbmc6IG9uZXhpdHJlc291cmNldGl0bGVzdHJpbmcsXG4gICAgICByZXNvdXJjZTogb25leGl0cmVzb3VyY2UsXG4gICAgICBzZXRleHRIZWFkaW5nOiBjbG9zZXIob25leGl0c2V0ZXh0aGVhZGluZyksXG4gICAgICBzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOiBvbmV4aXRzZXRleHRoZWFkaW5nbGluZXNlcXVlbmNlLFxuICAgICAgc2V0ZXh0SGVhZGluZ1RleHQ6IG9uZXhpdHNldGV4dGhlYWRpbmd0ZXh0LFxuICAgICAgc3Ryb25nOiBjbG9zZXIoKSxcbiAgICAgIHRoZW1hdGljQnJlYWs6IGNsb3NlcigpXG4gICAgfVxuICB9XG4gIGNvbmZpZ3VyZShjb25maWcsIChvcHRpb25zIHx8IHt9KS5tZGFzdEV4dGVuc2lvbnMgfHwgW10pXG5cbiAgLyoqIEB0eXBlIHtDb21waWxlRGF0YX0gKi9cbiAgY29uc3QgZGF0YSA9IHt9XG4gIHJldHVybiBjb21waWxlXG5cbiAgLyoqXG4gICAqIFR1cm4gbWljcm9tYXJrIGV2ZW50cyBpbnRvIGFuIG1kYXN0IHRyZWUuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAgICogICBFdmVudHMuXG4gICAqIEByZXR1cm5zIHtSb290fVxuICAgKiAgIG1kYXN0IHRyZWUuXG4gICAqL1xuICBmdW5jdGlvbiBjb21waWxlKGV2ZW50cykge1xuICAgIC8qKiBAdHlwZSB7Um9vdH0gKi9cbiAgICBsZXQgdHJlZSA9IHtcbiAgICAgIHR5cGU6ICdyb290JyxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH1cbiAgICAvKiogQHR5cGUge09taXQ8Q29tcGlsZUNvbnRleHQsICdzbGljZVNlcmlhbGl6ZSc+fSAqL1xuICAgIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgICBzdGFjazogW3RyZWVdLFxuICAgICAgdG9rZW5TdGFjazogW10sXG4gICAgICBjb25maWcsXG4gICAgICBlbnRlcixcbiAgICAgIGV4aXQsXG4gICAgICBidWZmZXIsXG4gICAgICByZXN1bWUsXG4gICAgICBzZXREYXRhLFxuICAgICAgZ2V0RGF0YVxuICAgIH1cbiAgICAvKiogQHR5cGUge0FycmF5PG51bWJlcj59ICovXG4gICAgY29uc3QgbGlzdFN0YWNrID0gW11cbiAgICBsZXQgaW5kZXggPSAtMVxuICAgIHdoaWxlICgrK2luZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuICAgICAgLy8gV2UgcHJlcHJvY2VzcyBsaXN0cyB0byBhZGQgYGxpc3RJdGVtYCB0b2tlbnMsIGFuZCB0byBpbmZlciB3aGV0aGVyXG4gICAgICAvLyBpdGVtcyB0aGUgbGlzdCBpdHNlbGYgYXJlIHNwcmVhZCBvdXQuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gJ2xpc3RPcmRlcmVkJyB8fFxuICAgICAgICBldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdsaXN0VW5vcmRlcmVkJ1xuICAgICAgKSB7XG4gICAgICAgIGlmIChldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInKSB7XG4gICAgICAgICAgbGlzdFN0YWNrLnB1c2goaW5kZXgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdGFpbCA9IGxpc3RTdGFjay5wb3AoKVxuICAgICAgICAgIGluZGV4ID0gcHJlcGFyZUxpc3QoZXZlbnRzLCB0YWlsLCBpbmRleClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpbmRleCA9IC0xXG4gICAgd2hpbGUgKCsraW5kZXggPCBldmVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBoYW5kbGVyID0gY29uZmlnW2V2ZW50c1tpbmRleF1bMF1dXG4gICAgICBpZiAob3duLmNhbGwoaGFuZGxlciwgZXZlbnRzW2luZGV4XVsxXS50eXBlKSkge1xuICAgICAgICBoYW5kbGVyW2V2ZW50c1tpbmRleF1bMV0udHlwZV0uY2FsbChcbiAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzbGljZVNlcmlhbGl6ZTogZXZlbnRzW2luZGV4XVsyXS5zbGljZVNlcmlhbGl6ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgICApLFxuICAgICAgICAgIGV2ZW50c1tpbmRleF1bMV1cbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSB0b2tlbnMgc3RpbGwgYmVpbmcgb3Blbi5cbiAgICBpZiAoY29udGV4dC50b2tlblN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHRhaWwgPSBjb250ZXh0LnRva2VuU3RhY2tbY29udGV4dC50b2tlblN0YWNrLmxlbmd0aCAtIDFdXG4gICAgICBjb25zdCBoYW5kbGVyID0gdGFpbFsxXSB8fCBkZWZhdWx0T25FcnJvclxuICAgICAgaGFuZGxlci5jYWxsKGNvbnRleHQsIHVuZGVmaW5lZCwgdGFpbFswXSlcbiAgICB9XG5cbiAgICAvLyBGaWd1cmUgb3V0IGByb290YCBwb3NpdGlvbi5cbiAgICB0cmVlLnBvc2l0aW9uID0ge1xuICAgICAgc3RhcnQ6IHBvaW50KFxuICAgICAgICBldmVudHMubGVuZ3RoID4gMFxuICAgICAgICAgID8gZXZlbnRzWzBdWzFdLnN0YXJ0XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGxpbmU6IDEsXG4gICAgICAgICAgICAgIGNvbHVtbjogMSxcbiAgICAgICAgICAgICAgb2Zmc2V0OiAwXG4gICAgICAgICAgICB9XG4gICAgICApLFxuICAgICAgZW5kOiBwb2ludChcbiAgICAgICAgZXZlbnRzLmxlbmd0aCA+IDBcbiAgICAgICAgICA/IGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMl1bMV0uZW5kXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGxpbmU6IDEsXG4gICAgICAgICAgICAgIGNvbHVtbjogMSxcbiAgICAgICAgICAgICAgb2Zmc2V0OiAwXG4gICAgICAgICAgICB9XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gQ2FsbCB0cmFuc2Zvcm1zLlxuICAgIGluZGV4ID0gLTFcbiAgICB3aGlsZSAoKytpbmRleCA8IGNvbmZpZy50cmFuc2Zvcm1zLmxlbmd0aCkge1xuICAgICAgdHJlZSA9IGNvbmZpZy50cmFuc2Zvcm1zW2luZGV4XSh0cmVlKSB8fCB0cmVlXG4gICAgfVxuICAgIHJldHVybiB0cmVlXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtBcnJheTxFdmVudD59IGV2ZW50c1xuICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgKi9cbiAgZnVuY3Rpb24gcHJlcGFyZUxpc3QoZXZlbnRzLCBzdGFydCwgbGVuZ3RoKSB7XG4gICAgbGV0IGluZGV4ID0gc3RhcnQgLSAxXG4gICAgbGV0IGNvbnRhaW5lckJhbGFuY2UgPSAtMVxuICAgIGxldCBsaXN0U3ByZWFkID0gZmFsc2VcbiAgICAvKiogQHR5cGUge1Rva2VuIHwgdW5kZWZpbmVkfSAqL1xuICAgIGxldCBsaXN0SXRlbVxuICAgIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICAgIGxldCBsaW5lSW5kZXhcbiAgICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgZmlyc3RCbGFua0xpbmVJbmRleFxuICAgIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgYXRNYXJrZXJcbiAgICB3aGlsZSAoKytpbmRleCA8PSBsZW5ndGgpIHtcbiAgICAgIGNvbnN0IGV2ZW50ID0gZXZlbnRzW2luZGV4XVxuICAgICAgaWYgKFxuICAgICAgICBldmVudFsxXS50eXBlID09PSAnbGlzdFVub3JkZXJlZCcgfHxcbiAgICAgICAgZXZlbnRbMV0udHlwZSA9PT0gJ2xpc3RPcmRlcmVkJyB8fFxuICAgICAgICBldmVudFsxXS50eXBlID09PSAnYmxvY2tRdW90ZSdcbiAgICAgICkge1xuICAgICAgICBpZiAoZXZlbnRbMF0gPT09ICdlbnRlcicpIHtcbiAgICAgICAgICBjb250YWluZXJCYWxhbmNlKytcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250YWluZXJCYWxhbmNlLS1cbiAgICAgICAgfVxuICAgICAgICBhdE1hcmtlciA9IHVuZGVmaW5lZFxuICAgICAgfSBlbHNlIGlmIChldmVudFsxXS50eXBlID09PSAnbGluZUVuZGluZ0JsYW5rJykge1xuICAgICAgICBpZiAoZXZlbnRbMF0gPT09ICdlbnRlcicpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBsaXN0SXRlbSAmJlxuICAgICAgICAgICAgIWF0TWFya2VyICYmXG4gICAgICAgICAgICAhY29udGFpbmVyQmFsYW5jZSAmJlxuICAgICAgICAgICAgIWZpcnN0QmxhbmtMaW5lSW5kZXhcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGZpcnN0QmxhbmtMaW5lSW5kZXggPSBpbmRleFxuICAgICAgICAgIH1cbiAgICAgICAgICBhdE1hcmtlciA9IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBldmVudFsxXS50eXBlID09PSAnbGluZVByZWZpeCcgfHxcbiAgICAgICAgZXZlbnRbMV0udHlwZSA9PT0gJ2xpc3RJdGVtVmFsdWUnIHx8XG4gICAgICAgIGV2ZW50WzFdLnR5cGUgPT09ICdsaXN0SXRlbU1hcmtlcicgfHxcbiAgICAgICAgZXZlbnRbMV0udHlwZSA9PT0gJ2xpc3RJdGVtUHJlZml4JyB8fFxuICAgICAgICBldmVudFsxXS50eXBlID09PSAnbGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlJ1xuICAgICAgKSB7XG4gICAgICAgIC8vIEVtcHR5LlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXRNYXJrZXIgPSB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgKCFjb250YWluZXJCYWxhbmNlICYmXG4gICAgICAgICAgZXZlbnRbMF0gPT09ICdlbnRlcicgJiZcbiAgICAgICAgICBldmVudFsxXS50eXBlID09PSAnbGlzdEl0ZW1QcmVmaXgnKSB8fFxuICAgICAgICAoY29udGFpbmVyQmFsYW5jZSA9PT0gLTEgJiZcbiAgICAgICAgICBldmVudFswXSA9PT0gJ2V4aXQnICYmXG4gICAgICAgICAgKGV2ZW50WzFdLnR5cGUgPT09ICdsaXN0VW5vcmRlcmVkJyB8fFxuICAgICAgICAgICAgZXZlbnRbMV0udHlwZSA9PT0gJ2xpc3RPcmRlcmVkJykpXG4gICAgICApIHtcbiAgICAgICAgaWYgKGxpc3RJdGVtKSB7XG4gICAgICAgICAgbGV0IHRhaWxJbmRleCA9IGluZGV4XG4gICAgICAgICAgbGluZUluZGV4ID0gdW5kZWZpbmVkXG4gICAgICAgICAgd2hpbGUgKHRhaWxJbmRleC0tKSB7XG4gICAgICAgICAgICBjb25zdCB0YWlsRXZlbnQgPSBldmVudHNbdGFpbEluZGV4XVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0YWlsRXZlbnRbMV0udHlwZSA9PT0gJ2xpbmVFbmRpbmcnIHx8XG4gICAgICAgICAgICAgIHRhaWxFdmVudFsxXS50eXBlID09PSAnbGluZUVuZGluZ0JsYW5rJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGlmICh0YWlsRXZlbnRbMF0gPT09ICdleGl0JykgY29udGludWVcbiAgICAgICAgICAgICAgaWYgKGxpbmVJbmRleCkge1xuICAgICAgICAgICAgICAgIGV2ZW50c1tsaW5lSW5kZXhdWzFdLnR5cGUgPSAnbGluZUVuZGluZ0JsYW5rJ1xuICAgICAgICAgICAgICAgIGxpc3RTcHJlYWQgPSB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGFpbEV2ZW50WzFdLnR5cGUgPSAnbGluZUVuZGluZydcbiAgICAgICAgICAgICAgbGluZUluZGV4ID0gdGFpbEluZGV4XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICB0YWlsRXZlbnRbMV0udHlwZSA9PT0gJ2xpbmVQcmVmaXgnIHx8XG4gICAgICAgICAgICAgIHRhaWxFdmVudFsxXS50eXBlID09PSAnYmxvY2tRdW90ZVByZWZpeCcgfHxcbiAgICAgICAgICAgICAgdGFpbEV2ZW50WzFdLnR5cGUgPT09ICdibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZScgfHxcbiAgICAgICAgICAgICAgdGFpbEV2ZW50WzFdLnR5cGUgPT09ICdibG9ja1F1b3RlTWFya2VyJyB8fFxuICAgICAgICAgICAgICB0YWlsRXZlbnRbMV0udHlwZSA9PT0gJ2xpc3RJdGVtSW5kZW50J1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIC8vIEVtcHR5XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBmaXJzdEJsYW5rTGluZUluZGV4ICYmXG4gICAgICAgICAgICAoIWxpbmVJbmRleCB8fCBmaXJzdEJsYW5rTGluZUluZGV4IDwgbGluZUluZGV4KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgbGlzdEl0ZW0uX3NwcmVhZCA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGaXggcG9zaXRpb24uXG4gICAgICAgICAgbGlzdEl0ZW0uZW5kID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgbGluZUluZGV4ID8gZXZlbnRzW2xpbmVJbmRleF1bMV0uc3RhcnQgOiBldmVudFsxXS5lbmRcbiAgICAgICAgICApXG4gICAgICAgICAgZXZlbnRzLnNwbGljZShsaW5lSW5kZXggfHwgaW5kZXgsIDAsIFsnZXhpdCcsIGxpc3RJdGVtLCBldmVudFsyXV0pXG4gICAgICAgICAgaW5kZXgrK1xuICAgICAgICAgIGxlbmd0aCsrXG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgbGlzdCBpdGVtLlxuICAgICAgICBpZiAoZXZlbnRbMV0udHlwZSA9PT0gJ2xpc3RJdGVtUHJlZml4Jykge1xuICAgICAgICAgIGxpc3RJdGVtID0ge1xuICAgICAgICAgICAgdHlwZTogJ2xpc3RJdGVtJyxcbiAgICAgICAgICAgIF9zcHJlYWQ6IGZhbHNlLFxuICAgICAgICAgICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50WzFdLnN0YXJ0KSxcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHdl4oCZbGwgYWRkIGBlbmRgIGluIGEgc2Vjb25kLlxuICAgICAgICAgICAgZW5kOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYGxpc3RJdGVtYCBpcyBtb3N0IGRlZmluaXRlbHkgZGVmaW5lZCwgVFMuLi5cbiAgICAgICAgICBldmVudHMuc3BsaWNlKGluZGV4LCAwLCBbJ2VudGVyJywgbGlzdEl0ZW0sIGV2ZW50WzJdXSlcbiAgICAgICAgICBpbmRleCsrXG4gICAgICAgICAgbGVuZ3RoKytcbiAgICAgICAgICBmaXJzdEJsYW5rTGluZUluZGV4ID0gdW5kZWZpbmVkXG4gICAgICAgICAgYXRNYXJrZXIgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZXZlbnRzW3N0YXJ0XVsxXS5fc3ByZWFkID0gbGlzdFNwcmVhZFxuICAgIHJldHVybiBsZW5ndGhcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgZGF0YS5cbiAgICpcbiAgICogQHRlbXBsYXRlIHtrZXlvZiBDb21waWxlRGF0YX0gS2V5XG4gICAqICAgRmllbGQgdHlwZS5cbiAgICogQHBhcmFtIHtLZXl9IGtleVxuICAgKiAgIEtleSBvZiBmaWVsZC5cbiAgICogQHBhcmFtIHtDb21waWxlRGF0YVtLZXldfSBbdmFsdWVdXG4gICAqICAgTmV3IHZhbHVlLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gc2V0RGF0YShrZXksIHZhbHVlKSB7XG4gICAgZGF0YVtrZXldID0gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGF0YS5cbiAgICpcbiAgICogQHRlbXBsYXRlIHtrZXlvZiBDb21waWxlRGF0YX0gS2V5XG4gICAqICAgRmllbGQgdHlwZS5cbiAgICogQHBhcmFtIHtLZXl9IGtleVxuICAgKiAgIEtleSBvZiBmaWVsZC5cbiAgICogQHJldHVybnMge0NvbXBpbGVEYXRhW0tleV19XG4gICAqICAgVmFsdWUuXG4gICAqL1xuICBmdW5jdGlvbiBnZXREYXRhKGtleSkge1xuICAgIHJldHVybiBkYXRhW2tleV1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3BlbmVyIGhhbmRsZS5cbiAgICpcbiAgICogQHBhcmFtIHsodG9rZW46IFRva2VuKSA9PiBOb2RlfSBjcmVhdGVcbiAgICogICBDcmVhdGUgYSBub2RlLlxuICAgKiBAcGFyYW0ge0hhbmRsZX0gW2FuZF1cbiAgICogICBPcHRpb25hbCBmdW5jdGlvbiB0byBhbHNvIHJ1bi5cbiAgICogQHJldHVybnMge0hhbmRsZX1cbiAgICogICBIYW5kbGUuXG4gICAqL1xuICBmdW5jdGlvbiBvcGVuZXIoY3JlYXRlLCBhbmQpIHtcbiAgICByZXR1cm4gb3BlblxuXG4gICAgLyoqXG4gICAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgICAqIEBwYXJhbSB7VG9rZW59IHRva2VuXG4gICAgICogQHJldHVybnMge3ZvaWR9XG4gICAgICovXG4gICAgZnVuY3Rpb24gb3Blbih0b2tlbikge1xuICAgICAgZW50ZXIuY2FsbCh0aGlzLCBjcmVhdGUodG9rZW4pLCB0b2tlbilcbiAgICAgIGlmIChhbmQpIGFuZC5jYWxsKHRoaXMsIHRva2VuKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZnVuY3Rpb24gYnVmZmVyKCkge1xuICAgIHRoaXMuc3RhY2sucHVzaCh7XG4gICAgICB0eXBlOiAnZnJhZ21lbnQnLFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGVtcGxhdGUge05vZGV9IEtpbmRcbiAgICogICBOb2RlIHR5cGUuXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogICBDb250ZXh0LlxuICAgKiBAcGFyYW0ge0tpbmR9IG5vZGVcbiAgICogICBOb2RlIHRvIGVudGVyLlxuICAgKiBAcGFyYW0ge1Rva2VufSB0b2tlblxuICAgKiAgIENvcnJlc3BvbmRpbmcgdG9rZW4uXG4gICAqIEBwYXJhbSB7T25FbnRlckVycm9yIHwgdW5kZWZpbmVkfSBbZXJyb3JIYW5kbGVyXVxuICAgKiAgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGlzIHRva2VuIGlzIG9wZW4sIGJ1dCBpdCBpcyBjbG9zZWQgYnkgc29tZXRoaW5nIGVsc2UuXG4gICAqIEByZXR1cm5zIHtLaW5kfVxuICAgKiAgIFRoZSBnaXZlbiBub2RlLlxuICAgKi9cbiAgZnVuY3Rpb24gZW50ZXIobm9kZSwgdG9rZW4sIGVycm9ySGFuZGxlcikge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IEFzc3VtZSBgTm9kZWAgY2FuIGV4aXN0IGFzIGEgY2hpbGQgb2YgYHBhcmVudGAuXG4gICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSlcbiAgICB0aGlzLnN0YWNrLnB1c2gobm9kZSlcbiAgICB0aGlzLnRva2VuU3RhY2sucHVzaChbdG9rZW4sIGVycm9ySGFuZGxlcl0pXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYGVuZGAgd2lsbCBiZSBwYXRjaGVkIGxhdGVyLlxuICAgIG5vZGUucG9zaXRpb24gPSB7XG4gICAgICBzdGFydDogcG9pbnQodG9rZW4uc3RhcnQpXG4gICAgfVxuICAgIHJldHVybiBub2RlXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY2xvc2VyIGhhbmRsZS5cbiAgICpcbiAgICogQHBhcmFtIHtIYW5kbGV9IFthbmRdXG4gICAqICAgT3B0aW9uYWwgZnVuY3Rpb24gdG8gYWxzbyBydW4uXG4gICAqIEByZXR1cm5zIHtIYW5kbGV9XG4gICAqICAgSGFuZGxlLlxuICAgKi9cbiAgZnVuY3Rpb24gY2xvc2VyKGFuZCkge1xuICAgIHJldHVybiBjbG9zZVxuXG4gICAgLyoqXG4gICAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgICAqIEBwYXJhbSB7VG9rZW59IHRva2VuXG4gICAgICogQHJldHVybnMge3ZvaWR9XG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvc2UodG9rZW4pIHtcbiAgICAgIGlmIChhbmQpIGFuZC5jYWxsKHRoaXMsIHRva2VuKVxuICAgICAgZXhpdC5jYWxsKHRoaXMsIHRva2VuKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqICAgQ29udGV4dC5cbiAgICogQHBhcmFtIHtUb2tlbn0gdG9rZW5cbiAgICogICBDb3JyZXNwb25kaW5nIHRva2VuLlxuICAgKiBAcGFyYW0ge09uRXhpdEVycm9yIHwgdW5kZWZpbmVkfSBbb25FeGl0RXJyb3JdXG4gICAqICAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGFub3RoZXIgdG9rZW4gaXMgb3Blbi5cbiAgICogQHJldHVybnMge05vZGV9XG4gICAqICAgVGhlIGNsb3NlZCBub2RlLlxuICAgKi9cbiAgZnVuY3Rpb24gZXhpdCh0b2tlbiwgb25FeGl0RXJyb3IpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFjay5wb3AoKVxuICAgIGNvbnN0IG9wZW4gPSB0aGlzLnRva2VuU3RhY2sucG9wKClcbiAgICBpZiAoIW9wZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBjbG9zZSBgJyArXG4gICAgICAgICAgdG9rZW4udHlwZSArXG4gICAgICAgICAgJ2AgKCcgK1xuICAgICAgICAgIHN0cmluZ2lmeVBvc2l0aW9uKHtcbiAgICAgICAgICAgIHN0YXJ0OiB0b2tlbi5zdGFydCxcbiAgICAgICAgICAgIGVuZDogdG9rZW4uZW5kXG4gICAgICAgICAgfSkgK1xuICAgICAgICAgICcpOiBpdOKAmXMgbm90IG9wZW4nXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChvcGVuWzBdLnR5cGUgIT09IHRva2VuLnR5cGUpIHtcbiAgICAgIGlmIChvbkV4aXRFcnJvcikge1xuICAgICAgICBvbkV4aXRFcnJvci5jYWxsKHRoaXMsIHRva2VuLCBvcGVuWzBdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IG9wZW5bMV0gfHwgZGVmYXVsdE9uRXJyb3JcbiAgICAgICAgaGFuZGxlci5jYWxsKHRoaXMsIHRva2VuLCBvcGVuWzBdKVxuICAgICAgfVxuICAgIH1cbiAgICBub2RlLnBvc2l0aW9uLmVuZCA9IHBvaW50KHRva2VuLmVuZClcbiAgICByZXR1cm4gbm9kZVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGZ1bmN0aW9uIHJlc3VtZSgpIHtcbiAgICByZXR1cm4gdG9TdHJpbmcodGhpcy5zdGFjay5wb3AoKSlcbiAgfVxuXG4gIC8vXG4gIC8vIEhhbmRsZXJzLlxuICAvL1xuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVybGlzdG9yZGVyZWQoKSB7XG4gICAgc2V0RGF0YSgnZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlJywgdHJ1ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVybGlzdGl0ZW12YWx1ZSh0b2tlbikge1xuICAgIGlmIChnZXREYXRhKCdleHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWUnKSkge1xuICAgICAgY29uc3QgYW5jZXN0b3IgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMl1cbiAgICAgIGFuY2VzdG9yLnN0YXJ0ID0gTnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pLCAxMClcbiAgICAgIHNldERhdGEoJ2V4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZScpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGNvZGVmZW5jZWRmZW5jZWluZm8oKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmVzdW1lKClcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgbm9kZS5sYW5nID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGNvZGVmZW5jZWRmZW5jZW1ldGEoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmVzdW1lKClcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgbm9kZS5tZXRhID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGNvZGVmZW5jZWRmZW5jZSgpIHtcbiAgICAvLyBFeGl0IGlmIHRoaXMgaXMgdGhlIGNsb3NpbmcgZmVuY2UuXG4gICAgaWYgKGdldERhdGEoJ2Zsb3dDb2RlSW5zaWRlJykpIHJldHVyblxuICAgIHRoaXMuYnVmZmVyKClcbiAgICBzZXREYXRhKCdmbG93Q29kZUluc2lkZScsIHRydWUpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0Y29kZWZlbmNlZCgpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBub2RlLnZhbHVlID0gZGF0YS5yZXBsYWNlKC9eKFxccj9cXG58XFxyKXwoXFxyP1xcbnxcXHIpJC9nLCAnJylcbiAgICBzZXREYXRhKCdmbG93Q29kZUluc2lkZScpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0Y29kZWluZGVudGVkKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIG5vZGUudmFsdWUgPSBkYXRhLnJlcGxhY2UoLyhcXHI/XFxufFxccikkL2csICcnKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGRlZmluaXRpb25sYWJlbHN0cmluZyh0b2tlbikge1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBub2RlLmxhYmVsID0gbGFiZWxcbiAgICBub2RlLmlkZW50aWZpZXIgPSBub3JtYWxpemVJZGVudGlmaWVyKFxuICAgICAgdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbilcbiAgICApLnRvTG93ZXJDYXNlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRkZWZpbml0aW9udGl0bGVzdHJpbmcoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmVzdW1lKClcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgbm9kZS50aXRsZSA9IGRhdGFcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRkZWZpbml0aW9uZGVzdGluYXRpb25zdHJpbmcoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmVzdW1lKClcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgbm9kZS51cmwgPSBkYXRhXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0YXR4aGVhZGluZ3NlcXVlbmNlKHRva2VuKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGlmICghbm9kZS5kZXB0aCkge1xuICAgICAgY29uc3QgZGVwdGggPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKS5sZW5ndGhcbiAgICAgIG5vZGUuZGVwdGggPSBkZXB0aFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRzZXRleHRoZWFkaW5ndGV4dCgpIHtcbiAgICBzZXREYXRhKCdzZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nJywgdHJ1ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRzZXRleHRoZWFkaW5nbGluZXNlcXVlbmNlKHRva2VuKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIG5vZGUuZGVwdGggPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKS5jaGFyQ29kZUF0KDApID09PSA2MSA/IDEgOiAyXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0c2V0ZXh0aGVhZGluZygpIHtcbiAgICBzZXREYXRhKCdzZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nJylcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZW50ZXJkYXRhKHRva2VuKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGxldCB0YWlsID0gbm9kZS5jaGlsZHJlbltub2RlLmNoaWxkcmVuLmxlbmd0aCAtIDFdXG4gICAgaWYgKCF0YWlsIHx8IHRhaWwudHlwZSAhPT0gJ3RleHQnKSB7XG4gICAgICAvLyBBZGQgYSBuZXcgdGV4dCBub2RlLlxuICAgICAgdGFpbCA9IHRleHQoKVxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogd2XigJlsbCBhZGQgYGVuZGAgbGF0ZXIuXG4gICAgICB0YWlsLnBvc2l0aW9uID0ge1xuICAgICAgICBzdGFydDogcG9pbnQodG9rZW4uc3RhcnQpXG4gICAgICB9XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBBc3N1bWUgYHBhcmVudGAgYWNjZXB0cyBgdGV4dGAuXG4gICAgICBub2RlLmNoaWxkcmVuLnB1c2godGFpbClcbiAgICB9XG4gICAgdGhpcy5zdGFjay5wdXNoKHRhaWwpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRkYXRhKHRva2VuKSB7XG4gICAgY29uc3QgdGFpbCA9IHRoaXMuc3RhY2sucG9wKClcbiAgICB0YWlsLnZhbHVlICs9IHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pXG4gICAgdGFpbC5wb3NpdGlvbi5lbmQgPSBwb2ludCh0b2tlbi5lbmQpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRsaW5lZW5kaW5nKHRva2VuKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIC8vIElmIHdl4oCZcmUgYXQgYSBoYXJkIGJyZWFrLCBpbmNsdWRlIHRoZSBsaW5lIGVuZGluZyBpbiB0aGVyZS5cbiAgICBpZiAoZ2V0RGF0YSgnYXRIYXJkQnJlYWsnKSkge1xuICAgICAgY29uc3QgdGFpbCA9IGNvbnRleHQuY2hpbGRyZW5bY29udGV4dC5jaGlsZHJlbi5sZW5ndGggLSAxXVxuICAgICAgdGFpbC5wb3NpdGlvbi5lbmQgPSBwb2ludCh0b2tlbi5lbmQpXG4gICAgICBzZXREYXRhKCdhdEhhcmRCcmVhaycpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKFxuICAgICAgIWdldERhdGEoJ3NldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcnKSAmJlxuICAgICAgY29uZmlnLmNhbkNvbnRhaW5Fb2xzLmluY2x1ZGVzKGNvbnRleHQudHlwZSlcbiAgICApIHtcbiAgICAgIG9uZW50ZXJkYXRhLmNhbGwodGhpcywgdG9rZW4pXG4gICAgICBvbmV4aXRkYXRhLmNhbGwodGhpcywgdG9rZW4pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0aGFyZGJyZWFrKCkge1xuICAgIHNldERhdGEoJ2F0SGFyZEJyZWFrJywgdHJ1ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGh0bWxmbG93KCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIG5vZGUudmFsdWUgPSBkYXRhXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRodG1sdGV4dCgpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBub2RlLnZhbHVlID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0Y29kZXRleHQoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmVzdW1lKClcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgbm9kZS52YWx1ZSA9IGRhdGFcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGxpbmsoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIC8vIE5vdGU6IHRoZXJlIGFyZSBhbHNvIGBpZGVudGlmaWVyYCBhbmQgYGxhYmVsYCBmaWVsZHMgb24gdGhpcyBsaW5rIG5vZGUhXG4gICAgLy8gVGhlc2UgYXJlIHVzZWQgLyBjbGVhbmVkIGhlcmUuXG4gICAgLy8gVG8gZG86IGNsZWFuLlxuICAgIGlmIChnZXREYXRhKCdpblJlZmVyZW5jZScpKSB7XG4gICAgICAvKiogQHR5cGUge1JlZmVyZW5jZVR5cGV9ICovXG4gICAgICBjb25zdCByZWZlcmVuY2VUeXBlID0gZ2V0RGF0YSgncmVmZXJlbmNlVHlwZScpIHx8ICdzaG9ydGN1dCdcbiAgICAgIG5vZGUudHlwZSArPSAnUmVmZXJlbmNlJ1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbXV0YXRlLlxuICAgICAgbm9kZS5yZWZlcmVuY2VUeXBlID0gcmVmZXJlbmNlVHlwZVxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbXV0YXRlLlxuICAgICAgZGVsZXRlIG5vZGUudXJsXG4gICAgICBkZWxldGUgbm9kZS50aXRsZVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBtdXRhdGUuXG4gICAgICBkZWxldGUgbm9kZS5pZGVudGlmaWVyXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBtdXRhdGUuXG4gICAgICBkZWxldGUgbm9kZS5sYWJlbFxuICAgIH1cbiAgICBzZXREYXRhKCdyZWZlcmVuY2VUeXBlJylcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGltYWdlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICAvLyBOb3RlOiB0aGVyZSBhcmUgYWxzbyBgaWRlbnRpZmllcmAgYW5kIGBsYWJlbGAgZmllbGRzIG9uIHRoaXMgbGluayBub2RlIVxuICAgIC8vIFRoZXNlIGFyZSB1c2VkIC8gY2xlYW5lZCBoZXJlLlxuICAgIC8vIFRvIGRvOiBjbGVhbi5cbiAgICBpZiAoZ2V0RGF0YSgnaW5SZWZlcmVuY2UnKSkge1xuICAgICAgLyoqIEB0eXBlIHtSZWZlcmVuY2VUeXBlfSAqL1xuICAgICAgY29uc3QgcmVmZXJlbmNlVHlwZSA9IGdldERhdGEoJ3JlZmVyZW5jZVR5cGUnKSB8fCAnc2hvcnRjdXQnXG4gICAgICBub2RlLnR5cGUgKz0gJ1JlZmVyZW5jZSdcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IG11dGF0ZS5cbiAgICAgIG5vZGUucmVmZXJlbmNlVHlwZSA9IHJlZmVyZW5jZVR5cGVcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IG11dGF0ZS5cbiAgICAgIGRlbGV0ZSBub2RlLnVybFxuICAgICAgZGVsZXRlIG5vZGUudGl0bGVcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbXV0YXRlLlxuICAgICAgZGVsZXRlIG5vZGUuaWRlbnRpZmllclxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbXV0YXRlLlxuICAgICAgZGVsZXRlIG5vZGUubGFiZWxcbiAgICB9XG4gICAgc2V0RGF0YSgncmVmZXJlbmNlVHlwZScpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRsYWJlbHRleHQodG9rZW4pIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKVxuICAgIGNvbnN0IGFuY2VzdG9yID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDJdXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogc3Rhc2ggdGhpcyBvbiB0aGUgbm9kZSwgYXMgaXQgbWlnaHQgYmVjb21lIGEgcmVmZXJlbmNlXG4gICAgLy8gbGF0ZXIuXG4gICAgYW5jZXN0b3IubGFiZWwgPSBkZWNvZGVTdHJpbmcoc3RyaW5nKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHNhbWUgYXMgYWJvdmUuXG4gICAgYW5jZXN0b3IuaWRlbnRpZmllciA9IG5vcm1hbGl6ZUlkZW50aWZpZXIoc3RyaW5nKS50b0xvd2VyQ2FzZSgpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRsYWJlbCgpIHtcbiAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICAvLyBBc3N1bWUgYSByZWZlcmVuY2UuXG4gICAgc2V0RGF0YSgnaW5SZWZlcmVuY2UnLCB0cnVlKVxuICAgIGlmIChub2RlLnR5cGUgPT09ICdsaW5rJykge1xuICAgICAgLyoqIEB0eXBlIHtBcnJheTxTdGF0aWNQaHJhc2luZ0NvbnRlbnQ+fSAqL1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogQXNzdW1lIHN0YXRpYyBwaHJhc2luZyBjb250ZW50LlxuICAgICAgY29uc3QgY2hpbGRyZW4gPSBmcmFnbWVudC5jaGlsZHJlblxuICAgICAgbm9kZS5jaGlsZHJlbiA9IGNoaWxkcmVuXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuYWx0ID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRyZXNvdXJjZWRlc3RpbmF0aW9uc3RyaW5nKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIG5vZGUudXJsID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0cmVzb3VyY2V0aXRsZXN0cmluZygpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBub2RlLnRpdGxlID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0cmVzb3VyY2UoKSB7XG4gICAgc2V0RGF0YSgnaW5SZWZlcmVuY2UnKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25lbnRlcnJlZmVyZW5jZSgpIHtcbiAgICBzZXREYXRhKCdyZWZlcmVuY2VUeXBlJywgJ2NvbGxhcHNlZCcpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRyZWZlcmVuY2VzdHJpbmcodG9rZW4pIHtcbiAgICBjb25zdCBsYWJlbCA9IHRoaXMucmVzdW1lKClcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogc3Rhc2ggdGhpcyBvbiB0aGUgbm9kZSwgYXMgaXQgbWlnaHQgYmVjb21lIGEgcmVmZXJlbmNlXG4gICAgLy8gbGF0ZXIuXG4gICAgbm9kZS5sYWJlbCA9IGxhYmVsXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogc2FtZSBhcyBhYm92ZS5cbiAgICBub2RlLmlkZW50aWZpZXIgPSBub3JtYWxpemVJZGVudGlmaWVyKFxuICAgICAgdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbilcbiAgICApLnRvTG93ZXJDYXNlKClcbiAgICBzZXREYXRhKCdyZWZlcmVuY2VUeXBlJywgJ2Z1bGwnKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0Y2hhcmFjdGVycmVmZXJlbmNlbWFya2VyKHRva2VuKSB7XG4gICAgc2V0RGF0YSgnY2hhcmFjdGVyUmVmZXJlbmNlVHlwZScsIHRva2VuLnR5cGUpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0Y2hhcmFjdGVycmVmZXJlbmNldmFsdWUodG9rZW4pIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbilcbiAgICBjb25zdCB0eXBlID0gZ2V0RGF0YSgnY2hhcmFjdGVyUmVmZXJlbmNlVHlwZScpXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IHZhbHVlXG4gICAgaWYgKHR5cGUpIHtcbiAgICAgIHZhbHVlID0gZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZShcbiAgICAgICAgZGF0YSxcbiAgICAgICAgdHlwZSA9PT0gJ2NoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMnID8gMTAgOiAxNlxuICAgICAgKVxuICAgICAgc2V0RGF0YSgnY2hhcmFjdGVyUmVmZXJlbmNlVHlwZScpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGRlY29kZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGRhdGEpXG4gICAgICB2YWx1ZSA9IHJlc3VsdFxuICAgIH1cbiAgICBjb25zdCB0YWlsID0gdGhpcy5zdGFjay5wb3AoKVxuICAgIHRhaWwudmFsdWUgKz0gdmFsdWVcbiAgICB0YWlsLnBvc2l0aW9uLmVuZCA9IHBvaW50KHRva2VuLmVuZClcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRhdXRvbGlua3Byb3RvY29sKHRva2VuKSB7XG4gICAgb25leGl0ZGF0YS5jYWxsKHRoaXMsIHRva2VuKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBub2RlLnVybCA9IHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0YXV0b2xpbmtlbWFpbCh0b2tlbikge1xuICAgIG9uZXhpdGRhdGEuY2FsbCh0aGlzLCB0b2tlbilcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgbm9kZS51cmwgPSAnbWFpbHRvOicgKyB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKVxuICB9XG5cbiAgLy9cbiAgLy8gQ3JlYXRlcnMuXG4gIC8vXG5cbiAgLyoqIEByZXR1cm5zIHtCbG9ja3F1b3RlfSAqL1xuICBmdW5jdGlvbiBibG9ja1F1b3RlKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnYmxvY2txdW90ZScsXG4gICAgICBjaGlsZHJlbjogW11cbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge0NvZGV9ICovXG4gIGZ1bmN0aW9uIGNvZGVGbG93KCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnY29kZScsXG4gICAgICBsYW5nOiBudWxsLFxuICAgICAgbWV0YTogbnVsbCxcbiAgICAgIHZhbHVlOiAnJ1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7SW5saW5lQ29kZX0gKi9cbiAgZnVuY3Rpb24gY29kZVRleHQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdpbmxpbmVDb2RlJyxcbiAgICAgIHZhbHVlOiAnJ1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7RGVmaW5pdGlvbn0gKi9cbiAgZnVuY3Rpb24gZGVmaW5pdGlvbigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2RlZmluaXRpb24nLFxuICAgICAgaWRlbnRpZmllcjogJycsXG4gICAgICBsYWJlbDogbnVsbCxcbiAgICAgIHRpdGxlOiBudWxsLFxuICAgICAgdXJsOiAnJ1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7RW1waGFzaXN9ICovXG4gIGZ1bmN0aW9uIGVtcGhhc2lzKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZW1waGFzaXMnLFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtIZWFkaW5nfSAqL1xuICBmdW5jdGlvbiBoZWFkaW5nKCkge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgYGRlcHRoYCB3aWxsIGJlIHNldCBsYXRlci5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2hlYWRpbmcnLFxuICAgICAgZGVwdGg6IHVuZGVmaW5lZCxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7QnJlYWt9ICovXG4gIGZ1bmN0aW9uIGhhcmRCcmVhaygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2JyZWFrJ1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7SFRNTH0gKi9cbiAgZnVuY3Rpb24gaHRtbCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2h0bWwnLFxuICAgICAgdmFsdWU6ICcnXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtJbWFnZX0gKi9cbiAgZnVuY3Rpb24gaW1hZ2UoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICB0aXRsZTogbnVsbCxcbiAgICAgIHVybDogJycsXG4gICAgICBhbHQ6IG51bGxcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge0xpbmt9ICovXG4gIGZ1bmN0aW9uIGxpbmsoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdsaW5rJyxcbiAgICAgIHRpdGxlOiBudWxsLFxuICAgICAgdXJsOiAnJyxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1Rva2VufSB0b2tlblxuICAgKiBAcmV0dXJucyB7TGlzdH1cbiAgICovXG4gIGZ1bmN0aW9uIGxpc3QodG9rZW4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgb3JkZXJlZDogdG9rZW4udHlwZSA9PT0gJ2xpc3RPcmRlcmVkJyxcbiAgICAgIHN0YXJ0OiBudWxsLFxuICAgICAgc3ByZWFkOiB0b2tlbi5fc3ByZWFkLFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VG9rZW59IHRva2VuXG4gICAqIEByZXR1cm5zIHtMaXN0SXRlbX1cbiAgICovXG4gIGZ1bmN0aW9uIGxpc3RJdGVtKHRva2VuKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdsaXN0SXRlbScsXG4gICAgICBzcHJlYWQ6IHRva2VuLl9zcHJlYWQsXG4gICAgICBjaGVja2VkOiBudWxsLFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQYXJhZ3JhcGh9ICovXG4gIGZ1bmN0aW9uIHBhcmFncmFwaCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICBjaGlsZHJlbjogW11cbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge1N0cm9uZ30gKi9cbiAgZnVuY3Rpb24gc3Ryb25nKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnc3Ryb25nJyxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7VGV4dH0gKi9cbiAgZnVuY3Rpb24gdGV4dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgdmFsdWU6ICcnXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtUaGVtYXRpY0JyZWFrfSAqL1xuICBmdW5jdGlvbiB0aGVtYXRpY0JyZWFrKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAndGhlbWF0aWNCcmVhaydcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDb3B5IGEgcG9pbnQtbGlrZSB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge1BvaW50fSBkXG4gKiAgIFBvaW50LWxpa2UgdmFsdWUuXG4gKiBAcmV0dXJucyB7UG9pbnR9XG4gKiAgIHVuaXN0IHBvaW50LlxuICovXG5mdW5jdGlvbiBwb2ludChkKSB7XG4gIHJldHVybiB7XG4gICAgbGluZTogZC5saW5lLFxuICAgIGNvbHVtbjogZC5jb2x1bW4sXG4gICAgb2Zmc2V0OiBkLm9mZnNldFxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtDb25maWd9IGNvbWJpbmVkXG4gKiBAcGFyYW0ge0FycmF5PEV4dGVuc2lvbiB8IEFycmF5PEV4dGVuc2lvbj4+fSBleHRlbnNpb25zXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gY29uZmlndXJlKGNvbWJpbmVkLCBleHRlbnNpb25zKSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIHdoaWxlICgrK2luZGV4IDwgZXh0ZW5zaW9ucy5sZW5ndGgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV4dGVuc2lvbnNbaW5kZXhdXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBjb25maWd1cmUoY29tYmluZWQsIHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBleHRlbnNpb24oY29tYmluZWQsIHZhbHVlKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7Q29uZmlnfSBjb21iaW5lZFxuICogQHBhcmFtIHtFeHRlbnNpb259IGV4dGVuc2lvblxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGV4dGVuc2lvbihjb21iaW5lZCwgZXh0ZW5zaW9uKSB7XG4gIC8qKiBAdHlwZSB7a2V5b2YgRXh0ZW5zaW9ufSAqL1xuICBsZXQga2V5XG4gIGZvciAoa2V5IGluIGV4dGVuc2lvbikge1xuICAgIGlmIChvd24uY2FsbChleHRlbnNpb24sIGtleSkpIHtcbiAgICAgIGlmIChrZXkgPT09ICdjYW5Db250YWluRW9scycpIHtcbiAgICAgICAgY29uc3QgcmlnaHQgPSBleHRlbnNpb25ba2V5XVxuICAgICAgICBpZiAocmlnaHQpIHtcbiAgICAgICAgICBjb21iaW5lZFtrZXldLnB1c2goLi4ucmlnaHQpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAndHJhbnNmb3JtcycpIHtcbiAgICAgICAgY29uc3QgcmlnaHQgPSBleHRlbnNpb25ba2V5XVxuICAgICAgICBpZiAocmlnaHQpIHtcbiAgICAgICAgICBjb21iaW5lZFtrZXldLnB1c2goLi4ucmlnaHQpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnZW50ZXInIHx8IGtleSA9PT0gJ2V4aXQnKSB7XG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gZXh0ZW5zaW9uW2tleV1cbiAgICAgICAgaWYgKHJpZ2h0KSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihjb21iaW5lZFtrZXldLCByaWdodClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiogQHR5cGUge09uRW50ZXJFcnJvcn0gKi9cbmZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGxlZnQsIHJpZ2h0KSB7XG4gIGlmIChsZWZ0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBjbG9zZSBgJyArXG4gICAgICAgIGxlZnQudHlwZSArXG4gICAgICAgICdgICgnICtcbiAgICAgICAgc3RyaW5naWZ5UG9zaXRpb24oe1xuICAgICAgICAgIHN0YXJ0OiBsZWZ0LnN0YXJ0LFxuICAgICAgICAgIGVuZDogbGVmdC5lbmRcbiAgICAgICAgfSkgK1xuICAgICAgICAnKTogYSBkaWZmZXJlbnQgdG9rZW4gKGAnICtcbiAgICAgICAgcmlnaHQudHlwZSArXG4gICAgICAgICdgLCAnICtcbiAgICAgICAgc3RyaW5naWZ5UG9zaXRpb24oe1xuICAgICAgICAgIHN0YXJ0OiByaWdodC5zdGFydCxcbiAgICAgICAgICBlbmQ6IHJpZ2h0LmVuZFxuICAgICAgICB9KSArXG4gICAgICAgICcpIGlzIG9wZW4nXG4gICAgKVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYW5ub3QgY2xvc2UgZG9jdW1lbnQsIGEgdG9rZW4gKGAnICtcbiAgICAgICAgcmlnaHQudHlwZSArXG4gICAgICAgICdgLCAnICtcbiAgICAgICAgc3RyaW5naWZ5UG9zaXRpb24oe1xuICAgICAgICAgIHN0YXJ0OiByaWdodC5zdGFydCxcbiAgICAgICAgICBlbmQ6IHJpZ2h0LmVuZFxuICAgICAgICB9KSArXG4gICAgICAgICcpIGlzIHN0aWxsIG9wZW4nXG4gICAgKVxuICB9XG59XG4iLAogICAgIi8vIE5vdGU6IHR5cGVzIGV4cG9ydGVkIGZyb20gYGluZGV4LmQudHNgLlxuZXhwb3J0IHtmcm9tTWFya2Rvd259IGZyb20gJy4vbGliL2luZGV4LmpzJ1xuIiwKICAgICJpbXBvcnQgeyBsIGFzIGxvZywgTSBhcyBkZWNvZGVFbnRpdGllcyB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmltcG9ydCB7IGZyb21NYXJrZG93biB9IGZyb20gXCJtZGFzdC11dGlsLWZyb20tbWFya2Rvd25cIjtcbmltcG9ydCB7IGRlZGVudCB9IGZyb20gXCJ0cy1kZWRlbnRcIjtcbmZ1bmN0aW9uIHByZXByb2Nlc3NNYXJrZG93bihtYXJrZG93bikge1xuICBjb25zdCB3aXRob3V0TXVsdGlwbGVOZXdsaW5lcyA9IG1hcmtkb3duLnJlcGxhY2UoL1xcbnsyLH0vZywgXCJcXG5cIik7XG4gIGNvbnN0IHdpdGhvdXRFeHRyYVNwYWNlcyA9IGRlZGVudCh3aXRob3V0TXVsdGlwbGVOZXdsaW5lcyk7XG4gIHJldHVybiB3aXRob3V0RXh0cmFTcGFjZXM7XG59XG5mdW5jdGlvbiBtYXJrZG93blRvTGluZXMobWFya2Rvd24pIHtcbiAgY29uc3QgcHJlcHJvY2Vzc2VkTWFya2Rvd24gPSBwcmVwcm9jZXNzTWFya2Rvd24obWFya2Rvd24pO1xuICBjb25zdCB7IGNoaWxkcmVuIH0gPSBmcm9tTWFya2Rvd24ocHJlcHJvY2Vzc2VkTWFya2Rvd24pO1xuICBjb25zdCBsaW5lcyA9IFtbXV07XG4gIGxldCBjdXJyZW50TGluZSA9IDA7XG4gIGZ1bmN0aW9uIHByb2Nlc3NOb2RlKG5vZGUsIHBhcmVudFR5cGUgPSBcIm5vcm1hbFwiKSB7XG4gICAgaWYgKG5vZGUudHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICAgIGNvbnN0IHRleHRMaW5lcyA9IG5vZGUudmFsdWUuc3BsaXQoXCJcXG5cIik7XG4gICAgICB0ZXh0TGluZXMuZm9yRWFjaCgodGV4dExpbmUsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCAhPT0gMCkge1xuICAgICAgICAgIGN1cnJlbnRMaW5lKys7XG4gICAgICAgICAgbGluZXMucHVzaChbXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGV4dExpbmUuc3BsaXQoXCIgXCIpLmZvckVhY2goKHdvcmQpID0+IHtcbiAgICAgICAgICBpZiAod29yZCkge1xuICAgICAgICAgICAgbGluZXNbY3VycmVudExpbmVdLnB1c2goeyBjb250ZW50OiB3b3JkLCB0eXBlOiBwYXJlbnRUeXBlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG5vZGUudHlwZSA9PT0gXCJzdHJvbmdcIiB8fCBub2RlLnR5cGUgPT09IFwiZW1waGFzaXNcIikge1xuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjb250ZW50Tm9kZSkgPT4ge1xuICAgICAgICBwcm9jZXNzTm9kZShjb250ZW50Tm9kZSwgbm9kZS50eXBlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBjaGlsZHJlbi5mb3JFYWNoKCh0cmVlTm9kZSkgPT4ge1xuICAgIGlmICh0cmVlTm9kZS50eXBlID09PSBcInBhcmFncmFwaFwiKSB7XG4gICAgICB0cmVlTm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjb250ZW50Tm9kZSkgPT4ge1xuICAgICAgICBwcm9jZXNzTm9kZShjb250ZW50Tm9kZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbGluZXM7XG59XG5mdW5jdGlvbiBtYXJrZG93blRvSFRNTChtYXJrZG93bikge1xuICBjb25zdCB7IGNoaWxkcmVuIH0gPSBmcm9tTWFya2Rvd24obWFya2Rvd24pO1xuICBmdW5jdGlvbiBvdXRwdXQobm9kZSkge1xuICAgIGlmIChub2RlLnR5cGUgPT09IFwidGV4dFwiKSB7XG4gICAgICByZXR1cm4gbm9kZS52YWx1ZS5yZXBsYWNlKC9cXG4vZywgXCI8YnIvPlwiKTtcbiAgICB9IGVsc2UgaWYgKG5vZGUudHlwZSA9PT0gXCJzdHJvbmdcIikge1xuICAgICAgcmV0dXJuIGA8c3Ryb25nPiR7bm9kZS5jaGlsZHJlbi5tYXAob3V0cHV0KS5qb2luKFwiXCIpfTwvc3Ryb25nPmA7XG4gICAgfSBlbHNlIGlmIChub2RlLnR5cGUgPT09IFwiZW1waGFzaXNcIikge1xuICAgICAgcmV0dXJuIGA8ZW0+JHtub2RlLmNoaWxkcmVuLm1hcChvdXRwdXQpLmpvaW4oXCJcIil9PC9lbT5gO1xuICAgIH0gZWxzZSBpZiAobm9kZS50eXBlID09PSBcInBhcmFncmFwaFwiKSB7XG4gICAgICByZXR1cm4gYDxwPiR7bm9kZS5jaGlsZHJlbi5tYXAob3V0cHV0KS5qb2luKFwiXCIpfTwvcD5gO1xuICAgIH1cbiAgICByZXR1cm4gYFVuc3VwcG9ydGVkIG1hcmtkb3duOiAke25vZGUudHlwZX1gO1xuICB9XG4gIHJldHVybiBjaGlsZHJlbi5tYXAob3V0cHV0KS5qb2luKFwiXCIpO1xufVxuZnVuY3Rpb24gc3BsaXRUZXh0VG9DaGFycyh0ZXh0KSB7XG4gIGlmIChJbnRsLlNlZ21lbnRlcikge1xuICAgIHJldHVybiBbLi4ubmV3IEludGwuU2VnbWVudGVyKCkuc2VnbWVudCh0ZXh0KV0ubWFwKChzKSA9PiBzLnNlZ21lbnQpO1xuICB9XG4gIHJldHVybiBbLi4udGV4dF07XG59XG5mdW5jdGlvbiBzcGxpdFdvcmRUb0ZpdFdpZHRoKGNoZWNrRml0LCB3b3JkKSB7XG4gIGNvbnN0IGNoYXJhY3RlcnMgPSBzcGxpdFRleHRUb0NoYXJzKHdvcmQuY29udGVudCk7XG4gIHJldHVybiBzcGxpdFdvcmRUb0ZpdFdpZHRoUmVjdXJzaW9uKGNoZWNrRml0LCBbXSwgY2hhcmFjdGVycywgd29yZC50eXBlKTtcbn1cbmZ1bmN0aW9uIHNwbGl0V29yZFRvRml0V2lkdGhSZWN1cnNpb24oY2hlY2tGaXQsIHVzZWRDaGFycywgcmVtYWluaW5nQ2hhcnMsIHR5cGUpIHtcbiAgaWYgKHJlbWFpbmluZ0NoYXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXG4gICAgICB7IGNvbnRlbnQ6IHVzZWRDaGFycy5qb2luKFwiXCIpLCB0eXBlIH0sXG4gICAgICB7IGNvbnRlbnQ6IFwiXCIsIHR5cGUgfVxuICAgIF07XG4gIH1cbiAgY29uc3QgW25leHRDaGFyLCAuLi5yZXN0XSA9IHJlbWFpbmluZ0NoYXJzO1xuICBjb25zdCBuZXdXb3JkID0gWy4uLnVzZWRDaGFycywgbmV4dENoYXJdO1xuICBpZiAoY2hlY2tGaXQoW3sgY29udGVudDogbmV3V29yZC5qb2luKFwiXCIpLCB0eXBlIH1dKSkge1xuICAgIHJldHVybiBzcGxpdFdvcmRUb0ZpdFdpZHRoUmVjdXJzaW9uKGNoZWNrRml0LCBuZXdXb3JkLCByZXN0LCB0eXBlKTtcbiAgfVxuICBpZiAodXNlZENoYXJzLmxlbmd0aCA9PT0gMCAmJiBuZXh0Q2hhcikge1xuICAgIHVzZWRDaGFycy5wdXNoKG5leHRDaGFyKTtcbiAgICByZW1haW5pbmdDaGFycy5zaGlmdCgpO1xuICB9XG4gIHJldHVybiBbXG4gICAgeyBjb250ZW50OiB1c2VkQ2hhcnMuam9pbihcIlwiKSwgdHlwZSB9LFxuICAgIHsgY29udGVudDogcmVtYWluaW5nQ2hhcnMuam9pbihcIlwiKSwgdHlwZSB9XG4gIF07XG59XG5mdW5jdGlvbiBzcGxpdExpbmVUb0ZpdFdpZHRoKGxpbmUsIGNoZWNrRml0KSB7XG4gIGlmIChsaW5lLnNvbWUoKHsgY29udGVudCB9KSA9PiBjb250ZW50LmluY2x1ZGVzKFwiXFxuXCIpKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInNwbGl0TGluZVRvRml0V2lkdGggZG9lcyBub3Qgc3VwcG9ydCBuZXdsaW5lcyBpbiB0aGUgbGluZVwiKTtcbiAgfVxuICByZXR1cm4gc3BsaXRMaW5lVG9GaXRXaWR0aFJlY3Vyc2lvbihsaW5lLCBjaGVja0ZpdCk7XG59XG5mdW5jdGlvbiBzcGxpdExpbmVUb0ZpdFdpZHRoUmVjdXJzaW9uKHdvcmRzLCBjaGVja0ZpdCwgbGluZXMgPSBbXSwgbmV3TGluZSA9IFtdKSB7XG4gIGlmICh3b3Jkcy5sZW5ndGggPT09IDApIHtcbiAgICBpZiAobmV3TGluZS5sZW5ndGggPiAwKSB7XG4gICAgICBsaW5lcy5wdXNoKG5ld0xpbmUpO1xuICAgIH1cbiAgICByZXR1cm4gbGluZXMubGVuZ3RoID4gMCA/IGxpbmVzIDogW107XG4gIH1cbiAgbGV0IGpvaW5lciA9IFwiXCI7XG4gIGlmICh3b3Jkc1swXS5jb250ZW50ID09PSBcIiBcIikge1xuICAgIGpvaW5lciA9IFwiIFwiO1xuICAgIHdvcmRzLnNoaWZ0KCk7XG4gIH1cbiAgY29uc3QgbmV4dFdvcmQgPSB3b3Jkcy5zaGlmdCgpID8/IHsgY29udGVudDogXCIgXCIsIHR5cGU6IFwibm9ybWFsXCIgfTtcbiAgY29uc3QgbGluZVdpdGhOZXh0V29yZCA9IFsuLi5uZXdMaW5lXTtcbiAgaWYgKGpvaW5lciAhPT0gXCJcIikge1xuICAgIGxpbmVXaXRoTmV4dFdvcmQucHVzaCh7IGNvbnRlbnQ6IGpvaW5lciwgdHlwZTogXCJub3JtYWxcIiB9KTtcbiAgfVxuICBsaW5lV2l0aE5leHRXb3JkLnB1c2gobmV4dFdvcmQpO1xuICBpZiAoY2hlY2tGaXQobGluZVdpdGhOZXh0V29yZCkpIHtcbiAgICByZXR1cm4gc3BsaXRMaW5lVG9GaXRXaWR0aFJlY3Vyc2lvbih3b3JkcywgY2hlY2tGaXQsIGxpbmVzLCBsaW5lV2l0aE5leHRXb3JkKTtcbiAgfVxuICBpZiAobmV3TGluZS5sZW5ndGggPiAwKSB7XG4gICAgbGluZXMucHVzaChuZXdMaW5lKTtcbiAgICB3b3Jkcy51bnNoaWZ0KG5leHRXb3JkKTtcbiAgfSBlbHNlIGlmIChuZXh0V29yZC5jb250ZW50KSB7XG4gICAgY29uc3QgW2xpbmUsIHJlc3RdID0gc3BsaXRXb3JkVG9GaXRXaWR0aChjaGVja0ZpdCwgbmV4dFdvcmQpO1xuICAgIGxpbmVzLnB1c2goW2xpbmVdKTtcbiAgICBpZiAocmVzdC5jb250ZW50KSB7XG4gICAgICB3b3Jkcy51bnNoaWZ0KHJlc3QpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3BsaXRMaW5lVG9GaXRXaWR0aFJlY3Vyc2lvbih3b3JkcywgY2hlY2tGaXQsIGxpbmVzKTtcbn1cbmZ1bmN0aW9uIGFwcGx5U3R5bGUoZG9tLCBzdHlsZUZuKSB7XG4gIGlmIChzdHlsZUZuKSB7XG4gICAgZG9tLmF0dHIoXCJzdHlsZVwiLCBzdHlsZUZuKTtcbiAgfVxufVxuZnVuY3Rpb24gYWRkSHRtbFNwYW4oZWxlbWVudCwgbm9kZSwgd2lkdGgsIGNsYXNzZXMsIGFkZEJhY2tncm91bmQgPSBmYWxzZSkge1xuICBjb25zdCBmbyA9IGVsZW1lbnQuYXBwZW5kKFwiZm9yZWlnbk9iamVjdFwiKTtcbiAgY29uc3QgZGl2ID0gZm8uYXBwZW5kKFwieGh0bWw6ZGl2XCIpO1xuICBjb25zdCBsYWJlbCA9IG5vZGUubGFiZWw7XG4gIGNvbnN0IGxhYmVsQ2xhc3MgPSBub2RlLmlzTm9kZSA/IFwibm9kZUxhYmVsXCIgOiBcImVkZ2VMYWJlbFwiO1xuICBkaXYuaHRtbChcbiAgICBgXG4gICAgPHNwYW4gY2xhc3M9XCIke2xhYmVsQ2xhc3N9ICR7Y2xhc3Nlc31cIiBgICsgKG5vZGUubGFiZWxTdHlsZSA/ICdzdHlsZT1cIicgKyBub2RlLmxhYmVsU3R5bGUgKyAnXCInIDogXCJcIikgKyBcIj5cIiArIGxhYmVsICsgXCI8L3NwYW4+XCJcbiAgKTtcbiAgYXBwbHlTdHlsZShkaXYsIG5vZGUubGFiZWxTdHlsZSk7XG4gIGRpdi5zdHlsZShcImRpc3BsYXlcIiwgXCJ0YWJsZS1jZWxsXCIpO1xuICBkaXYuc3R5bGUoXCJ3aGl0ZS1zcGFjZVwiLCBcIm5vd3JhcFwiKTtcbiAgZGl2LnN0eWxlKFwibWF4LXdpZHRoXCIsIHdpZHRoICsgXCJweFwiKTtcbiAgZGl2LmF0dHIoXCJ4bWxuc1wiLCBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIik7XG4gIGlmIChhZGRCYWNrZ3JvdW5kKSB7XG4gICAgZGl2LmF0dHIoXCJjbGFzc1wiLCBcImxhYmVsQmtnXCIpO1xuICB9XG4gIGxldCBiYm94ID0gZGl2Lm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgaWYgKGJib3gud2lkdGggPT09IHdpZHRoKSB7XG4gICAgZGl2LnN0eWxlKFwiZGlzcGxheVwiLCBcInRhYmxlXCIpO1xuICAgIGRpdi5zdHlsZShcIndoaXRlLXNwYWNlXCIsIFwiYnJlYWstc3BhY2VzXCIpO1xuICAgIGRpdi5zdHlsZShcIndpZHRoXCIsIHdpZHRoICsgXCJweFwiKTtcbiAgICBiYm94ID0gZGl2Lm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfVxuICBmby5zdHlsZShcIndpZHRoXCIsIGJib3gud2lkdGgpO1xuICBmby5zdHlsZShcImhlaWdodFwiLCBiYm94LmhlaWdodCk7XG4gIHJldHVybiBmby5ub2RlKCk7XG59XG5mdW5jdGlvbiBjcmVhdGVUc3Bhbih0ZXh0RWxlbWVudCwgbGluZUluZGV4LCBsaW5lSGVpZ2h0KSB7XG4gIHJldHVybiB0ZXh0RWxlbWVudC5hcHBlbmQoXCJ0c3BhblwiKS5hdHRyKFwiY2xhc3NcIiwgXCJ0ZXh0LW91dGVyLXRzcGFuXCIpLmF0dHIoXCJ4XCIsIDApLmF0dHIoXCJ5XCIsIGxpbmVJbmRleCAqIGxpbmVIZWlnaHQgLSAwLjEgKyBcImVtXCIpLmF0dHIoXCJkeVwiLCBsaW5lSGVpZ2h0ICsgXCJlbVwiKTtcbn1cbmZ1bmN0aW9uIGNvbXB1dGVXaWR0aE9mVGV4dChwYXJlbnROb2RlLCBsaW5lSGVpZ2h0LCBsaW5lKSB7XG4gIGNvbnN0IHRlc3RFbGVtZW50ID0gcGFyZW50Tm9kZS5hcHBlbmQoXCJ0ZXh0XCIpO1xuICBjb25zdCB0ZXN0U3BhbiA9IGNyZWF0ZVRzcGFuKHRlc3RFbGVtZW50LCAxLCBsaW5lSGVpZ2h0KTtcbiAgdXBkYXRlVGV4dENvbnRlbnRBbmRTdHlsZXModGVzdFNwYW4sIGxpbmUpO1xuICBjb25zdCB0ZXh0TGVuZ3RoID0gdGVzdFNwYW4ubm9kZSgpLmdldENvbXB1dGVkVGV4dExlbmd0aCgpO1xuICB0ZXN0RWxlbWVudC5yZW1vdmUoKTtcbiAgcmV0dXJuIHRleHRMZW5ndGg7XG59XG5mdW5jdGlvbiBjb21wdXRlRGltZW5zaW9uT2ZUZXh0KHBhcmVudE5vZGUsIGxpbmVIZWlnaHQsIHRleHQpIHtcbiAgdmFyIF9hO1xuICBjb25zdCB0ZXN0RWxlbWVudCA9IHBhcmVudE5vZGUuYXBwZW5kKFwidGV4dFwiKTtcbiAgY29uc3QgdGVzdFNwYW4gPSBjcmVhdGVUc3Bhbih0ZXN0RWxlbWVudCwgMSwgbGluZUhlaWdodCk7XG4gIHVwZGF0ZVRleHRDb250ZW50QW5kU3R5bGVzKHRlc3RTcGFuLCBbeyBjb250ZW50OiB0ZXh0LCB0eXBlOiBcIm5vcm1hbFwiIH1dKTtcbiAgY29uc3QgdGV4dERpbWVuc2lvbiA9IChfYSA9IHRlc3RTcGFuLm5vZGUoKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBpZiAodGV4dERpbWVuc2lvbikge1xuICAgIHRlc3RFbGVtZW50LnJlbW92ZSgpO1xuICB9XG4gIHJldHVybiB0ZXh0RGltZW5zaW9uO1xufVxuZnVuY3Rpb24gY3JlYXRlRm9ybWF0dGVkVGV4dCh3aWR0aCwgZywgc3RydWN0dXJlZFRleHQsIGFkZEJhY2tncm91bmQgPSBmYWxzZSkge1xuICBjb25zdCBsaW5lSGVpZ2h0ID0gMS4xO1xuICBjb25zdCBsYWJlbEdyb3VwID0gZy5hcHBlbmQoXCJnXCIpO1xuICBjb25zdCBia2cgPSBsYWJlbEdyb3VwLmluc2VydChcInJlY3RcIikuYXR0cihcImNsYXNzXCIsIFwiYmFja2dyb3VuZFwiKTtcbiAgY29uc3QgdGV4dEVsZW1lbnQgPSBsYWJlbEdyb3VwLmFwcGVuZChcInRleHRcIikuYXR0cihcInlcIiwgXCItMTAuMVwiKTtcbiAgbGV0IGxpbmVJbmRleCA9IDA7XG4gIGZvciAoY29uc3QgbGluZSBvZiBzdHJ1Y3R1cmVkVGV4dCkge1xuICAgIGNvbnN0IGNoZWNrV2lkdGggPSAobGluZTIpID0+IGNvbXB1dGVXaWR0aE9mVGV4dChsYWJlbEdyb3VwLCBsaW5lSGVpZ2h0LCBsaW5lMikgPD0gd2lkdGg7XG4gICAgY29uc3QgbGluZXNVbmRlcldpZHRoID0gY2hlY2tXaWR0aChsaW5lKSA/IFtsaW5lXSA6IHNwbGl0TGluZVRvRml0V2lkdGgobGluZSwgY2hlY2tXaWR0aCk7XG4gICAgZm9yIChjb25zdCBwcmVwYXJlZExpbmUgb2YgbGluZXNVbmRlcldpZHRoKSB7XG4gICAgICBjb25zdCB0c3BhbiA9IGNyZWF0ZVRzcGFuKHRleHRFbGVtZW50LCBsaW5lSW5kZXgsIGxpbmVIZWlnaHQpO1xuICAgICAgdXBkYXRlVGV4dENvbnRlbnRBbmRTdHlsZXModHNwYW4sIHByZXBhcmVkTGluZSk7XG4gICAgICBsaW5lSW5kZXgrKztcbiAgICB9XG4gIH1cbiAgaWYgKGFkZEJhY2tncm91bmQpIHtcbiAgICBjb25zdCBiYm94ID0gdGV4dEVsZW1lbnQubm9kZSgpLmdldEJCb3goKTtcbiAgICBjb25zdCBwYWRkaW5nID0gMjtcbiAgICBia2cuYXR0cihcInhcIiwgLXBhZGRpbmcpLmF0dHIoXCJ5XCIsIC1wYWRkaW5nKS5hdHRyKFwid2lkdGhcIiwgYmJveC53aWR0aCArIDIgKiBwYWRkaW5nKS5hdHRyKFwiaGVpZ2h0XCIsIGJib3guaGVpZ2h0ICsgMiAqIHBhZGRpbmcpO1xuICAgIHJldHVybiBsYWJlbEdyb3VwLm5vZGUoKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdGV4dEVsZW1lbnQubm9kZSgpO1xuICB9XG59XG5mdW5jdGlvbiB1cGRhdGVUZXh0Q29udGVudEFuZFN0eWxlcyh0c3Bhbiwgd3JhcHBlZExpbmUpIHtcbiAgdHNwYW4udGV4dChcIlwiKTtcbiAgd3JhcHBlZExpbmUuZm9yRWFjaCgod29yZCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBpbm5lclRzcGFuID0gdHNwYW4uYXBwZW5kKFwidHNwYW5cIikuYXR0cihcImZvbnQtc3R5bGVcIiwgd29yZC50eXBlID09PSBcImVtcGhhc2lzXCIgPyBcIml0YWxpY1wiIDogXCJub3JtYWxcIikuYXR0cihcImNsYXNzXCIsIFwidGV4dC1pbm5lci10c3BhblwiKS5hdHRyKFwiZm9udC13ZWlnaHRcIiwgd29yZC50eXBlID09PSBcInN0cm9uZ1wiID8gXCJib2xkXCIgOiBcIm5vcm1hbFwiKTtcbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIGlubmVyVHNwYW4udGV4dCh3b3JkLmNvbnRlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbm5lclRzcGFuLnRleHQoXCIgXCIgKyB3b3JkLmNvbnRlbnQpO1xuICAgIH1cbiAgfSk7XG59XG5jb25zdCBjcmVhdGVUZXh0ID0gKGVsLCB0ZXh0ID0gXCJcIiwge1xuICBzdHlsZSA9IFwiXCIsXG4gIGlzVGl0bGUgPSBmYWxzZSxcbiAgY2xhc3NlcyA9IFwiXCIsXG4gIHVzZUh0bWxMYWJlbHMgPSB0cnVlLFxuICBpc05vZGUgPSB0cnVlLFxuICB3aWR0aCA9IDIwMCxcbiAgYWRkU3ZnQmFja2dyb3VuZCA9IGZhbHNlXG59ID0ge30pID0+IHtcbiAgbG9nLmluZm8oXCJjcmVhdGVUZXh0XCIsIHRleHQsIHN0eWxlLCBpc1RpdGxlLCBjbGFzc2VzLCB1c2VIdG1sTGFiZWxzLCBpc05vZGUsIGFkZFN2Z0JhY2tncm91bmQpO1xuICBpZiAodXNlSHRtbExhYmVscykge1xuICAgIGNvbnN0IGh0bWxUZXh0ID0gbWFya2Rvd25Ub0hUTUwodGV4dCk7XG4gICAgY29uc3Qgbm9kZSA9IHtcbiAgICAgIGlzTm9kZSxcbiAgICAgIGxhYmVsOiBkZWNvZGVFbnRpdGllcyhodG1sVGV4dCkucmVwbGFjZShcbiAgICAgICAgL2ZhW2JscnNdPzpmYS1bXFx3LV0rL2csXG4gICAgICAgIC8vIGNzcGVsbDogZGlzYWJsZS1saW5lXG4gICAgICAgIChzKSA9PiBgPGkgY2xhc3M9JyR7cy5yZXBsYWNlKFwiOlwiLCBcIiBcIil9Jz48L2k+YFxuICAgICAgKSxcbiAgICAgIGxhYmVsU3R5bGU6IHN0eWxlLnJlcGxhY2UoXCJmaWxsOlwiLCBcImNvbG9yOlwiKVxuICAgIH07XG4gICAgY29uc3QgdmVydGV4Tm9kZSA9IGFkZEh0bWxTcGFuKGVsLCBub2RlLCB3aWR0aCwgY2xhc3NlcywgYWRkU3ZnQmFja2dyb3VuZCk7XG4gICAgcmV0dXJuIHZlcnRleE5vZGU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgc3RydWN0dXJlZFRleHQgPSBtYXJrZG93blRvTGluZXModGV4dCk7XG4gICAgY29uc3Qgc3ZnTGFiZWwgPSBjcmVhdGVGb3JtYXR0ZWRUZXh0KHdpZHRoLCBlbCwgc3RydWN0dXJlZFRleHQsIGFkZFN2Z0JhY2tncm91bmQpO1xuICAgIHJldHVybiBzdmdMYWJlbDtcbiAgfVxufTtcbmV4cG9ydCB7XG4gIGNyZWF0ZVRleHQgYXMgYSxcbiAgY29tcHV0ZURpbWVuc2lvbk9mVGV4dCBhcyBjXG59O1xuIiwKICAgICJpbXBvcnQgeyBsIGFzIGxvZywgbSBhcyBldmFsdWF0ZSwgYyBhcyBnZXRDb25maWcsIE0gYXMgZGVjb2RlRW50aXRpZXMsIGQgYXMgc2FuaXRpemVUZXh0LCB1IGFzIHV0aWxzIH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0LCBsaW5lLCBjdXJ2ZUJhc2lzIH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgeyBhIGFzIGNyZWF0ZVRleHQgfSBmcm9tIFwiLi9jcmVhdGVUZXh0LWNhMGM1MjE2LmpzXCI7XG5jb25zdCBpbnNlcnRNYXJrZXJzID0gKGVsZW0sIG1hcmtlckFycmF5LCB0eXBlLCBpZCkgPT4ge1xuICBtYXJrZXJBcnJheS5mb3JFYWNoKChtYXJrZXJOYW1lKSA9PiB7XG4gICAgbWFya2Vyc1ttYXJrZXJOYW1lXShlbGVtLCB0eXBlLCBpZCk7XG4gIH0pO1xufTtcbmNvbnN0IGV4dGVuc2lvbiA9IChlbGVtLCB0eXBlLCBpZCkgPT4ge1xuICBsb2cudHJhY2UoXCJNYWtpbmcgbWFya2VycyBmb3IgXCIsIGlkKTtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgaWQgKyBcIl9cIiArIHR5cGUgKyBcIi1leHRlbnNpb25TdGFydFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJtYXJrZXIgZXh0ZW5zaW9uIFwiICsgdHlwZSkuYXR0cihcInJlZlhcIiwgMTgpLmF0dHIoXCJyZWZZXCIsIDcpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAxOTApLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMjQwKS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAxLDcgTDE4LDEzIFYgMSBaXCIpO1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBpZCArIFwiX1wiICsgdHlwZSArIFwiLWV4dGVuc2lvbkVuZFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJtYXJrZXIgZXh0ZW5zaW9uIFwiICsgdHlwZSkuYXR0cihcInJlZlhcIiwgMSkuYXR0cihcInJlZllcIiwgNykuYXR0cihcIm1hcmtlcldpZHRoXCIsIDIwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI4KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAxLDEgViAxMyBMMTgsNyBaXCIpO1xufTtcbmNvbnN0IGNvbXBvc2l0aW9uID0gKGVsZW0sIHR5cGUsIGlkKSA9PiB7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIGlkICsgXCJfXCIgKyB0eXBlICsgXCItY29tcG9zaXRpb25TdGFydFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJtYXJrZXIgY29tcG9zaXRpb24gXCIgKyB0eXBlKS5hdHRyKFwicmVmWFwiLCAxOCkuYXR0cihcInJlZllcIiwgNykuYXR0cihcIm1hcmtlcldpZHRoXCIsIDE5MCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCAyNDApLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDE4LDcgTDksMTMgTDEsNyBMOSwxIFpcIik7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIGlkICsgXCJfXCIgKyB0eXBlICsgXCItY29tcG9zaXRpb25FbmRcIikuYXR0cihcImNsYXNzXCIsIFwibWFya2VyIGNvbXBvc2l0aW9uIFwiICsgdHlwZSkuYXR0cihcInJlZlhcIiwgMSkuYXR0cihcInJlZllcIiwgNykuYXR0cihcIm1hcmtlcldpZHRoXCIsIDIwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI4KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAxOCw3IEw5LDEzIEwxLDcgTDksMSBaXCIpO1xufTtcbmNvbnN0IGFnZ3JlZ2F0aW9uID0gKGVsZW0sIHR5cGUsIGlkKSA9PiB7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIGlkICsgXCJfXCIgKyB0eXBlICsgXCItYWdncmVnYXRpb25TdGFydFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJtYXJrZXIgYWdncmVnYXRpb24gXCIgKyB0eXBlKS5hdHRyKFwicmVmWFwiLCAxOCkuYXR0cihcInJlZllcIiwgNykuYXR0cihcIm1hcmtlcldpZHRoXCIsIDE5MCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCAyNDApLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDE4LDcgTDksMTMgTDEsNyBMOSwxIFpcIik7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIGlkICsgXCJfXCIgKyB0eXBlICsgXCItYWdncmVnYXRpb25FbmRcIikuYXR0cihcImNsYXNzXCIsIFwibWFya2VyIGFnZ3JlZ2F0aW9uIFwiICsgdHlwZSkuYXR0cihcInJlZlhcIiwgMSkuYXR0cihcInJlZllcIiwgNykuYXR0cihcIm1hcmtlcldpZHRoXCIsIDIwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI4KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAxOCw3IEw5LDEzIEwxLDcgTDksMSBaXCIpO1xufTtcbmNvbnN0IGRlcGVuZGVuY3kgPSAoZWxlbSwgdHlwZSwgaWQpID0+IHtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgaWQgKyBcIl9cIiArIHR5cGUgKyBcIi1kZXBlbmRlbmN5U3RhcnRcIikuYXR0cihcImNsYXNzXCIsIFwibWFya2VyIGRlcGVuZGVuY3kgXCIgKyB0eXBlKS5hdHRyKFwicmVmWFwiLCA2KS5hdHRyKFwicmVmWVwiLCA3KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTkwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI0MCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gNSw3IEw5LDEzIEwxLDcgTDksMSBaXCIpO1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBpZCArIFwiX1wiICsgdHlwZSArIFwiLWRlcGVuZGVuY3lFbmRcIikuYXR0cihcImNsYXNzXCIsIFwibWFya2VyIGRlcGVuZGVuY3kgXCIgKyB0eXBlKS5hdHRyKFwicmVmWFwiLCAxMykuYXR0cihcInJlZllcIiwgNykuYXR0cihcIm1hcmtlcldpZHRoXCIsIDIwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI4KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAxOCw3IEw5LDEzIEwxNCw3IEw5LDEgWlwiKTtcbn07XG5jb25zdCBsb2xsaXBvcCA9IChlbGVtLCB0eXBlLCBpZCkgPT4ge1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBpZCArIFwiX1wiICsgdHlwZSArIFwiLWxvbGxpcG9wU3RhcnRcIikuYXR0cihcImNsYXNzXCIsIFwibWFya2VyIGxvbGxpcG9wIFwiICsgdHlwZSkuYXR0cihcInJlZlhcIiwgMTMpLmF0dHIoXCJyZWZZXCIsIDcpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAxOTApLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMjQwKS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJjaXJjbGVcIikuYXR0cihcInN0cm9rZVwiLCBcImJsYWNrXCIpLmF0dHIoXCJmaWxsXCIsIFwidHJhbnNwYXJlbnRcIikuYXR0cihcImN4XCIsIDcpLmF0dHIoXCJjeVwiLCA3KS5hdHRyKFwiclwiLCA2KTtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgaWQgKyBcIl9cIiArIHR5cGUgKyBcIi1sb2xsaXBvcEVuZFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJtYXJrZXIgbG9sbGlwb3AgXCIgKyB0eXBlKS5hdHRyKFwicmVmWFwiLCAxKS5hdHRyKFwicmVmWVwiLCA3KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTkwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI0MCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwiY2lyY2xlXCIpLmF0dHIoXCJzdHJva2VcIiwgXCJibGFja1wiKS5hdHRyKFwiZmlsbFwiLCBcInRyYW5zcGFyZW50XCIpLmF0dHIoXCJjeFwiLCA3KS5hdHRyKFwiY3lcIiwgNykuYXR0cihcInJcIiwgNik7XG59O1xuY29uc3QgcG9pbnQgPSAoZWxlbSwgdHlwZSwgaWQpID0+IHtcbiAgZWxlbS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIGlkICsgXCJfXCIgKyB0eXBlICsgXCItcG9pbnRFbmRcIikuYXR0cihcImNsYXNzXCIsIFwibWFya2VyIFwiICsgdHlwZSkuYXR0cihcInZpZXdCb3hcIiwgXCIwIDAgMTAgMTBcIikuYXR0cihcInJlZlhcIiwgNikuYXR0cihcInJlZllcIiwgNSkuYXR0cihcIm1hcmtlclVuaXRzXCIsIFwidXNlclNwYWNlT25Vc2VcIikuYXR0cihcIm1hcmtlcldpZHRoXCIsIDEyKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDEyKS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAwIDAgTCAxMCA1IEwgMCAxMCB6XCIpLmF0dHIoXCJjbGFzc1wiLCBcImFycm93TWFya2VyUGF0aFwiKS5zdHlsZShcInN0cm9rZS13aWR0aFwiLCAxKS5zdHlsZShcInN0cm9rZS1kYXNoYXJyYXlcIiwgXCIxLDBcIik7XG4gIGVsZW0uYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBpZCArIFwiX1wiICsgdHlwZSArIFwiLXBvaW50U3RhcnRcIikuYXR0cihcImNsYXNzXCIsIFwibWFya2VyIFwiICsgdHlwZSkuYXR0cihcInZpZXdCb3hcIiwgXCIwIDAgMTAgMTBcIikuYXR0cihcInJlZlhcIiwgNC41KS5hdHRyKFwicmVmWVwiLCA1KS5hdHRyKFwibWFya2VyVW5pdHNcIiwgXCJ1c2VyU3BhY2VPblVzZVwiKS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTIpLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMTIpLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDAgNSBMIDEwIDEwIEwgMTAgMCB6XCIpLmF0dHIoXCJjbGFzc1wiLCBcImFycm93TWFya2VyUGF0aFwiKS5zdHlsZShcInN0cm9rZS13aWR0aFwiLCAxKS5zdHlsZShcInN0cm9rZS1kYXNoYXJyYXlcIiwgXCIxLDBcIik7XG59O1xuY29uc3QgY2lyY2xlJDEgPSAoZWxlbSwgdHlwZSwgaWQpID0+IHtcbiAgZWxlbS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIGlkICsgXCJfXCIgKyB0eXBlICsgXCItY2lyY2xlRW5kXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm1hcmtlciBcIiArIHR5cGUpLmF0dHIoXCJ2aWV3Qm94XCIsIFwiMCAwIDEwIDEwXCIpLmF0dHIoXCJyZWZYXCIsIDExKS5hdHRyKFwicmVmWVwiLCA1KS5hdHRyKFwibWFya2VyVW5pdHNcIiwgXCJ1c2VyU3BhY2VPblVzZVwiKS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTEpLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMTEpLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwiY3hcIiwgXCI1XCIpLmF0dHIoXCJjeVwiLCBcIjVcIikuYXR0cihcInJcIiwgXCI1XCIpLmF0dHIoXCJjbGFzc1wiLCBcImFycm93TWFya2VyUGF0aFwiKS5zdHlsZShcInN0cm9rZS13aWR0aFwiLCAxKS5zdHlsZShcInN0cm9rZS1kYXNoYXJyYXlcIiwgXCIxLDBcIik7XG4gIGVsZW0uYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBpZCArIFwiX1wiICsgdHlwZSArIFwiLWNpcmNsZVN0YXJ0XCIpLmF0dHIoXCJjbGFzc1wiLCBcIm1hcmtlciBcIiArIHR5cGUpLmF0dHIoXCJ2aWV3Qm94XCIsIFwiMCAwIDEwIDEwXCIpLmF0dHIoXCJyZWZYXCIsIC0xKS5hdHRyKFwicmVmWVwiLCA1KS5hdHRyKFwibWFya2VyVW5pdHNcIiwgXCJ1c2VyU3BhY2VPblVzZVwiKS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTEpLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMTEpLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwiY3hcIiwgXCI1XCIpLmF0dHIoXCJjeVwiLCBcIjVcIikuYXR0cihcInJcIiwgXCI1XCIpLmF0dHIoXCJjbGFzc1wiLCBcImFycm93TWFya2VyUGF0aFwiKS5zdHlsZShcInN0cm9rZS13aWR0aFwiLCAxKS5zdHlsZShcInN0cm9rZS1kYXNoYXJyYXlcIiwgXCIxLDBcIik7XG59O1xuY29uc3QgY3Jvc3MgPSAoZWxlbSwgdHlwZSwgaWQpID0+IHtcbiAgZWxlbS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIGlkICsgXCJfXCIgKyB0eXBlICsgXCItY3Jvc3NFbmRcIikuYXR0cihcImNsYXNzXCIsIFwibWFya2VyIGNyb3NzIFwiICsgdHlwZSkuYXR0cihcInZpZXdCb3hcIiwgXCIwIDAgMTEgMTFcIikuYXR0cihcInJlZlhcIiwgMTIpLmF0dHIoXCJyZWZZXCIsIDUuMikuYXR0cihcIm1hcmtlclVuaXRzXCIsIFwidXNlclNwYWNlT25Vc2VcIikuYXR0cihcIm1hcmtlcldpZHRoXCIsIDExKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDExKS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAxLDEgbCA5LDkgTSAxMCwxIGwgLTksOVwiKS5hdHRyKFwiY2xhc3NcIiwgXCJhcnJvd01hcmtlclBhdGhcIikuc3R5bGUoXCJzdHJva2Utd2lkdGhcIiwgMikuc3R5bGUoXCJzdHJva2UtZGFzaGFycmF5XCIsIFwiMSwwXCIpO1xuICBlbGVtLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgaWQgKyBcIl9cIiArIHR5cGUgKyBcIi1jcm9zc1N0YXJ0XCIpLmF0dHIoXCJjbGFzc1wiLCBcIm1hcmtlciBjcm9zcyBcIiArIHR5cGUpLmF0dHIoXCJ2aWV3Qm94XCIsIFwiMCAwIDExIDExXCIpLmF0dHIoXCJyZWZYXCIsIC0xKS5hdHRyKFwicmVmWVwiLCA1LjIpLmF0dHIoXCJtYXJrZXJVbml0c1wiLCBcInVzZXJTcGFjZU9uVXNlXCIpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAxMSkuYXR0cihcIm1hcmtlckhlaWdodFwiLCAxMSkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gMSwxIGwgOSw5IE0gMTAsMSBsIC05LDlcIikuYXR0cihcImNsYXNzXCIsIFwiYXJyb3dNYXJrZXJQYXRoXCIpLnN0eWxlKFwic3Ryb2tlLXdpZHRoXCIsIDIpLnN0eWxlKFwic3Ryb2tlLWRhc2hhcnJheVwiLCBcIjEsMFwiKTtcbn07XG5jb25zdCBiYXJiID0gKGVsZW0sIHR5cGUsIGlkKSA9PiB7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIGlkICsgXCJfXCIgKyB0eXBlICsgXCItYmFyYkVuZFwiKS5hdHRyKFwicmVmWFwiLCAxOSkuYXR0cihcInJlZllcIiwgNykuYXR0cihcIm1hcmtlcldpZHRoXCIsIDIwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDE0KS5hdHRyKFwibWFya2VyVW5pdHNcIiwgXCJzdHJva2VXaWR0aFwiKS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAxOSw3IEw5LDEzIEwxNCw3IEw5LDEgWlwiKTtcbn07XG5jb25zdCBtYXJrZXJzID0ge1xuICBleHRlbnNpb24sXG4gIGNvbXBvc2l0aW9uLFxuICBhZ2dyZWdhdGlvbixcbiAgZGVwZW5kZW5jeSxcbiAgbG9sbGlwb3AsXG4gIHBvaW50LFxuICBjaXJjbGU6IGNpcmNsZSQxLFxuICBjcm9zcyxcbiAgYmFyYlxufTtcbmNvbnN0IGluc2VydE1hcmtlcnMkMSA9IGluc2VydE1hcmtlcnM7XG5mdW5jdGlvbiBhcHBseVN0eWxlKGRvbSwgc3R5bGVGbikge1xuICBpZiAoc3R5bGVGbikge1xuICAgIGRvbS5hdHRyKFwic3R5bGVcIiwgc3R5bGVGbik7XG4gIH1cbn1cbmZ1bmN0aW9uIGFkZEh0bWxMYWJlbChub2RlKSB7XG4gIGNvbnN0IGZvID0gc2VsZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwiZm9yZWlnbk9iamVjdFwiKSk7XG4gIGNvbnN0IGRpdiA9IGZvLmFwcGVuZChcInhodG1sOmRpdlwiKTtcbiAgY29uc3QgbGFiZWwgPSBub2RlLmxhYmVsO1xuICBjb25zdCBsYWJlbENsYXNzID0gbm9kZS5pc05vZGUgPyBcIm5vZGVMYWJlbFwiIDogXCJlZGdlTGFiZWxcIjtcbiAgZGl2Lmh0bWwoXG4gICAgJzxzcGFuIGNsYXNzPVwiJyArIGxhYmVsQ2xhc3MgKyAnXCIgJyArIChub2RlLmxhYmVsU3R5bGUgPyAnc3R5bGU9XCInICsgbm9kZS5sYWJlbFN0eWxlICsgJ1wiJyA6IFwiXCIpICsgXCI+XCIgKyBsYWJlbCArIFwiPC9zcGFuPlwiXG4gICk7XG4gIGFwcGx5U3R5bGUoZGl2LCBub2RlLmxhYmVsU3R5bGUpO1xuICBkaXYuc3R5bGUoXCJkaXNwbGF5XCIsIFwiaW5saW5lLWJsb2NrXCIpO1xuICBkaXYuc3R5bGUoXCJ3aGl0ZS1zcGFjZVwiLCBcIm5vd3JhcFwiKTtcbiAgZGl2LmF0dHIoXCJ4bWxuc1wiLCBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIik7XG4gIHJldHVybiBmby5ub2RlKCk7XG59XG5jb25zdCBjcmVhdGVMYWJlbCA9IChfdmVydGV4VGV4dCwgc3R5bGUsIGlzVGl0bGUsIGlzTm9kZSkgPT4ge1xuICBsZXQgdmVydGV4VGV4dCA9IF92ZXJ0ZXhUZXh0IHx8IFwiXCI7XG4gIGlmICh0eXBlb2YgdmVydGV4VGV4dCA9PT0gXCJvYmplY3RcIikge1xuICAgIHZlcnRleFRleHQgPSB2ZXJ0ZXhUZXh0WzBdO1xuICB9XG4gIGlmIChldmFsdWF0ZShnZXRDb25maWcoKS5mbG93Y2hhcnQuaHRtbExhYmVscykpIHtcbiAgICB2ZXJ0ZXhUZXh0ID0gdmVydGV4VGV4dC5yZXBsYWNlKC9cXFxcbnxcXG4vZywgXCI8YnIgLz5cIik7XG4gICAgbG9nLmRlYnVnKFwidmVydGV4VGV4dFwiICsgdmVydGV4VGV4dCk7XG4gICAgY29uc3Qgbm9kZSA9IHtcbiAgICAgIGlzTm9kZSxcbiAgICAgIGxhYmVsOiBkZWNvZGVFbnRpdGllcyh2ZXJ0ZXhUZXh0KS5yZXBsYWNlKFxuICAgICAgICAvZmFbYmxyc10/OmZhLVtcXHctXSsvZyxcbiAgICAgICAgLy8gY3NwZWxsOiBkaXNhYmxlLWxpbmVcbiAgICAgICAgKHMpID0+IGA8aSBjbGFzcz0nJHtzLnJlcGxhY2UoXCI6XCIsIFwiIFwiKX0nPjwvaT5gXG4gICAgICApLFxuICAgICAgbGFiZWxTdHlsZTogc3R5bGUucmVwbGFjZShcImZpbGw6XCIsIFwiY29sb3I6XCIpXG4gICAgfTtcbiAgICBsZXQgdmVydGV4Tm9kZSA9IGFkZEh0bWxMYWJlbChub2RlKTtcbiAgICByZXR1cm4gdmVydGV4Tm9kZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzdmdMYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwidGV4dFwiKTtcbiAgICBzdmdMYWJlbC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBzdHlsZS5yZXBsYWNlKFwiY29sb3I6XCIsIFwiZmlsbDpcIikpO1xuICAgIGxldCByb3dzID0gW107XG4gICAgaWYgKHR5cGVvZiB2ZXJ0ZXhUZXh0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByb3dzID0gdmVydGV4VGV4dC5zcGxpdCgvXFxcXG58XFxufDxiclxccypcXC8/Pi9naSk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZlcnRleFRleHQpKSB7XG4gICAgICByb3dzID0gdmVydGV4VGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgcm93cyA9IFtdO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgICBjb25zdCB0c3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwidHNwYW5cIik7XG4gICAgICB0c3Bhbi5zZXRBdHRyaWJ1dGVOUyhcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiLCBcInhtbDpzcGFjZVwiLCBcInByZXNlcnZlXCIpO1xuICAgICAgdHNwYW4uc2V0QXR0cmlidXRlKFwiZHlcIiwgXCIxZW1cIik7XG4gICAgICB0c3Bhbi5zZXRBdHRyaWJ1dGUoXCJ4XCIsIFwiMFwiKTtcbiAgICAgIGlmIChpc1RpdGxlKSB7XG4gICAgICAgIHRzcGFuLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIFwidGl0bGUtcm93XCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHNwYW4uc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgXCJyb3dcIik7XG4gICAgICB9XG4gICAgICB0c3Bhbi50ZXh0Q29udGVudCA9IHJvdy50cmltKCk7XG4gICAgICBzdmdMYWJlbC5hcHBlbmRDaGlsZCh0c3Bhbik7XG4gICAgfVxuICAgIHJldHVybiBzdmdMYWJlbDtcbiAgfVxufTtcbmNvbnN0IGNyZWF0ZUxhYmVsJDEgPSBjcmVhdGVMYWJlbDtcbmNvbnN0IGxhYmVsSGVscGVyID0gYXN5bmMgKHBhcmVudCwgbm9kZSwgX2NsYXNzZXMsIGlzTm9kZSkgPT4ge1xuICBsZXQgY2xhc3NlcztcbiAgY29uc3QgdXNlSHRtbExhYmVscyA9IG5vZGUudXNlSHRtbExhYmVscyB8fCBldmFsdWF0ZShnZXRDb25maWcoKS5mbG93Y2hhcnQuaHRtbExhYmVscyk7XG4gIGlmICghX2NsYXNzZXMpIHtcbiAgICBjbGFzc2VzID0gXCJub2RlIGRlZmF1bHRcIjtcbiAgfSBlbHNlIHtcbiAgICBjbGFzc2VzID0gX2NsYXNzZXM7XG4gIH1cbiAgY29uc3Qgc2hhcGVTdmcgPSBwYXJlbnQuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgY2xhc3NlcykuYXR0cihcImlkXCIsIG5vZGUuZG9tSWQgfHwgbm9kZS5pZCk7XG4gIGNvbnN0IGxhYmVsID0gc2hhcGVTdmcuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJsYWJlbFwiKS5hdHRyKFwic3R5bGVcIiwgbm9kZS5sYWJlbFN0eWxlKTtcbiAgbGV0IGxhYmVsVGV4dDtcbiAgaWYgKG5vZGUubGFiZWxUZXh0ID09PSB2b2lkIDApIHtcbiAgICBsYWJlbFRleHQgPSBcIlwiO1xuICB9IGVsc2Uge1xuICAgIGxhYmVsVGV4dCA9IHR5cGVvZiBub2RlLmxhYmVsVGV4dCA9PT0gXCJzdHJpbmdcIiA/IG5vZGUubGFiZWxUZXh0IDogbm9kZS5sYWJlbFRleHRbMF07XG4gIH1cbiAgY29uc3QgdGV4dE5vZGUgPSBsYWJlbC5ub2RlKCk7XG4gIGxldCB0ZXh0O1xuICBpZiAobm9kZS5sYWJlbFR5cGUgPT09IFwibWFya2Rvd25cIikge1xuICAgIHRleHQgPSBjcmVhdGVUZXh0KGxhYmVsLCBzYW5pdGl6ZVRleHQoZGVjb2RlRW50aXRpZXMobGFiZWxUZXh0KSwgZ2V0Q29uZmlnKCkpLCB7XG4gICAgICB1c2VIdG1sTGFiZWxzLFxuICAgICAgd2lkdGg6IG5vZGUud2lkdGggfHwgZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0LndyYXBwaW5nV2lkdGgsXG4gICAgICBjbGFzc2VzOiBcIm1hcmtkb3duLW5vZGUtbGFiZWxcIlxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRleHQgPSB0ZXh0Tm9kZS5hcHBlbmRDaGlsZChcbiAgICAgIGNyZWF0ZUxhYmVsJDEoXG4gICAgICAgIHNhbml0aXplVGV4dChkZWNvZGVFbnRpdGllcyhsYWJlbFRleHQpLCBnZXRDb25maWcoKSksXG4gICAgICAgIG5vZGUubGFiZWxTdHlsZSxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIGlzTm9kZVxuICAgICAgKVxuICAgICk7XG4gIH1cbiAgbGV0IGJib3ggPSB0ZXh0LmdldEJCb3goKTtcbiAgY29uc3QgaGFsZlBhZGRpbmcgPSBub2RlLnBhZGRpbmcgLyAyO1xuICBpZiAoZXZhbHVhdGUoZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMpKSB7XG4gICAgY29uc3QgZGl2ID0gdGV4dC5jaGlsZHJlblswXTtcbiAgICBjb25zdCBkdiA9IHNlbGVjdCh0ZXh0KTtcbiAgICBjb25zdCBpbWFnZXMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJpbWdcIik7XG4gICAgaWYgKGltYWdlcykge1xuICAgICAgY29uc3Qgbm9JbWdUZXh0ID0gbGFiZWxUZXh0LnJlcGxhY2UoLzxpbWdbXj5dKj4vZywgXCJcIikudHJpbSgpID09PSBcIlwiO1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIFsuLi5pbWFnZXNdLm1hcChcbiAgICAgICAgICAoaW1nKSA9PiBuZXcgUHJvbWlzZSgocmVzKSA9PiB7XG4gICAgICAgICAgICBmdW5jdGlvbiBzZXR1cEltYWdlKCkge1xuICAgICAgICAgICAgICBpbWcuc3R5bGUuZGlzcGxheSA9IFwiZmxleFwiO1xuICAgICAgICAgICAgICBpbWcuc3R5bGUuZmxleERpcmVjdGlvbiA9IFwiY29sdW1uXCI7XG4gICAgICAgICAgICAgIGlmIChub0ltZ1RleHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5Rm9udFNpemUgPSBnZXRDb25maWcoKS5mb250U2l6ZSA/IGdldENvbmZpZygpLmZvbnRTaXplIDogd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZm9udFNpemU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5sYXJnaW5nRmFjdG9yID0gNTtcbiAgICAgICAgICAgICAgICBjb25zdCB3aWR0aCA9IHBhcnNlSW50KGJvZHlGb250U2l6ZSwgMTApICogZW5sYXJnaW5nRmFjdG9yICsgXCJweFwiO1xuICAgICAgICAgICAgICAgIGltZy5zdHlsZS5taW5XaWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgICAgIGltZy5zdHlsZS5tYXhXaWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGltZy5zdHlsZS53aWR0aCA9IFwiMTAwJVwiO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlcyhpbWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChpbWcuY29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICBzZXR1cEltYWdlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLCBzZXR1cEltYWdlKTtcbiAgICAgICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCBzZXR1cEltYWdlKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICBiYm94ID0gZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGR2LmF0dHIoXCJ3aWR0aFwiLCBiYm94LndpZHRoKTtcbiAgICBkdi5hdHRyKFwiaGVpZ2h0XCIsIGJib3guaGVpZ2h0KTtcbiAgfVxuICBpZiAodXNlSHRtbExhYmVscykge1xuICAgIGxhYmVsLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyAtYmJveC53aWR0aCAvIDIgKyBcIiwgXCIgKyAtYmJveC5oZWlnaHQgLyAyICsgXCIpXCIpO1xuICB9IGVsc2Uge1xuICAgIGxhYmVsLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoMCwgXCIgKyAtYmJveC5oZWlnaHQgLyAyICsgXCIpXCIpO1xuICB9XG4gIGlmIChub2RlLmNlbnRlckxhYmVsKSB7XG4gICAgbGFiZWwuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIC1iYm94LndpZHRoIC8gMiArIFwiLCBcIiArIC1iYm94LmhlaWdodCAvIDIgKyBcIilcIik7XG4gIH1cbiAgbGFiZWwuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKTtcbiAgcmV0dXJuIHsgc2hhcGVTdmcsIGJib3gsIGhhbGZQYWRkaW5nLCBsYWJlbCB9O1xufTtcbmNvbnN0IHVwZGF0ZU5vZGVCb3VuZHMgPSAobm9kZSwgZWxlbWVudCkgPT4ge1xuICBjb25zdCBiYm94ID0gZWxlbWVudC5ub2RlKCkuZ2V0QkJveCgpO1xuICBub2RlLndpZHRoID0gYmJveC53aWR0aDtcbiAgbm9kZS5oZWlnaHQgPSBiYm94LmhlaWdodDtcbn07XG5mdW5jdGlvbiBpbnNlcnRQb2x5Z29uU2hhcGUocGFyZW50LCB3LCBoLCBwb2ludHMpIHtcbiAgcmV0dXJuIHBhcmVudC5pbnNlcnQoXCJwb2x5Z29uXCIsIFwiOmZpcnN0LWNoaWxkXCIpLmF0dHIoXG4gICAgXCJwb2ludHNcIixcbiAgICBwb2ludHMubWFwKGZ1bmN0aW9uKGQpIHtcbiAgICAgIHJldHVybiBkLnggKyBcIixcIiArIGQueTtcbiAgICB9KS5qb2luKFwiIFwiKVxuICApLmF0dHIoXCJjbGFzc1wiLCBcImxhYmVsLWNvbnRhaW5lclwiKS5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKFwiICsgLXcgLyAyICsgXCIsXCIgKyBoIC8gMiArIFwiKVwiKTtcbn1cbmZ1bmN0aW9uIGludGVyc2VjdE5vZGUobm9kZSwgcG9pbnQyKSB7XG4gIHJldHVybiBub2RlLmludGVyc2VjdChwb2ludDIpO1xufVxuZnVuY3Rpb24gaW50ZXJzZWN0RWxsaXBzZShub2RlLCByeCwgcnksIHBvaW50Mikge1xuICB2YXIgY3ggPSBub2RlLng7XG4gIHZhciBjeSA9IG5vZGUueTtcbiAgdmFyIHB4ID0gY3ggLSBwb2ludDIueDtcbiAgdmFyIHB5ID0gY3kgLSBwb2ludDIueTtcbiAgdmFyIGRldCA9IE1hdGguc3FydChyeCAqIHJ4ICogcHkgKiBweSArIHJ5ICogcnkgKiBweCAqIHB4KTtcbiAgdmFyIGR4ID0gTWF0aC5hYnMocnggKiByeSAqIHB4IC8gZGV0KTtcbiAgaWYgKHBvaW50Mi54IDwgY3gpIHtcbiAgICBkeCA9IC1keDtcbiAgfVxuICB2YXIgZHkgPSBNYXRoLmFicyhyeCAqIHJ5ICogcHkgLyBkZXQpO1xuICBpZiAocG9pbnQyLnkgPCBjeSkge1xuICAgIGR5ID0gLWR5O1xuICB9XG4gIHJldHVybiB7IHg6IGN4ICsgZHgsIHk6IGN5ICsgZHkgfTtcbn1cbmZ1bmN0aW9uIGludGVyc2VjdENpcmNsZShub2RlLCByeCwgcG9pbnQyKSB7XG4gIHJldHVybiBpbnRlcnNlY3RFbGxpcHNlKG5vZGUsIHJ4LCByeCwgcG9pbnQyKTtcbn1cbmZ1bmN0aW9uIGludGVyc2VjdExpbmUocDEsIHAyLCBxMSwgcTIpIHtcbiAgdmFyIGExLCBhMiwgYjEsIGIyLCBjMSwgYzI7XG4gIHZhciByMSwgcjIsIHIzLCByNDtcbiAgdmFyIGRlbm9tLCBvZmZzZXQsIG51bTtcbiAgdmFyIHgsIHk7XG4gIGExID0gcDIueSAtIHAxLnk7XG4gIGIxID0gcDEueCAtIHAyLng7XG4gIGMxID0gcDIueCAqIHAxLnkgLSBwMS54ICogcDIueTtcbiAgcjMgPSBhMSAqIHExLnggKyBiMSAqIHExLnkgKyBjMTtcbiAgcjQgPSBhMSAqIHEyLnggKyBiMSAqIHEyLnkgKyBjMTtcbiAgaWYgKHIzICE9PSAwICYmIHI0ICE9PSAwICYmIHNhbWVTaWduKHIzLCByNCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYTIgPSBxMi55IC0gcTEueTtcbiAgYjIgPSBxMS54IC0gcTIueDtcbiAgYzIgPSBxMi54ICogcTEueSAtIHExLnggKiBxMi55O1xuICByMSA9IGEyICogcDEueCArIGIyICogcDEueSArIGMyO1xuICByMiA9IGEyICogcDIueCArIGIyICogcDIueSArIGMyO1xuICBpZiAocjEgIT09IDAgJiYgcjIgIT09IDAgJiYgc2FtZVNpZ24ocjEsIHIyKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBkZW5vbSA9IGExICogYjIgLSBhMiAqIGIxO1xuICBpZiAoZGVub20gPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgb2Zmc2V0ID0gTWF0aC5hYnMoZGVub20gLyAyKTtcbiAgbnVtID0gYjEgKiBjMiAtIGIyICogYzE7XG4gIHggPSBudW0gPCAwID8gKG51bSAtIG9mZnNldCkgLyBkZW5vbSA6IChudW0gKyBvZmZzZXQpIC8gZGVub207XG4gIG51bSA9IGEyICogYzEgLSBhMSAqIGMyO1xuICB5ID0gbnVtIDwgMCA/IChudW0gLSBvZmZzZXQpIC8gZGVub20gOiAobnVtICsgb2Zmc2V0KSAvIGRlbm9tO1xuICByZXR1cm4geyB4LCB5IH07XG59XG5mdW5jdGlvbiBzYW1lU2lnbihyMSwgcjIpIHtcbiAgcmV0dXJuIHIxICogcjIgPiAwO1xufVxuZnVuY3Rpb24gaW50ZXJzZWN0UG9seWdvbihub2RlLCBwb2x5UG9pbnRzLCBwb2ludDIpIHtcbiAgdmFyIHgxID0gbm9kZS54O1xuICB2YXIgeTEgPSBub2RlLnk7XG4gIHZhciBpbnRlcnNlY3Rpb25zID0gW107XG4gIHZhciBtaW5YID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICB2YXIgbWluWSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgaWYgKHR5cGVvZiBwb2x5UG9pbnRzLmZvckVhY2ggPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHBvbHlQb2ludHMuZm9yRWFjaChmdW5jdGlvbihlbnRyeSkge1xuICAgICAgbWluWCA9IE1hdGgubWluKG1pblgsIGVudHJ5LngpO1xuICAgICAgbWluWSA9IE1hdGgubWluKG1pblksIGVudHJ5LnkpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIG1pblggPSBNYXRoLm1pbihtaW5YLCBwb2x5UG9pbnRzLngpO1xuICAgIG1pblkgPSBNYXRoLm1pbihtaW5ZLCBwb2x5UG9pbnRzLnkpO1xuICB9XG4gIHZhciBsZWZ0ID0geDEgLSBub2RlLndpZHRoIC8gMiAtIG1pblg7XG4gIHZhciB0b3AgPSB5MSAtIG5vZGUuaGVpZ2h0IC8gMiAtIG1pblk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcG9seVBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwMSA9IHBvbHlQb2ludHNbaV07XG4gICAgdmFyIHAyID0gcG9seVBvaW50c1tpIDwgcG9seVBvaW50cy5sZW5ndGggLSAxID8gaSArIDEgOiAwXTtcbiAgICB2YXIgaW50ZXJzZWN0MiA9IGludGVyc2VjdExpbmUoXG4gICAgICBub2RlLFxuICAgICAgcG9pbnQyLFxuICAgICAgeyB4OiBsZWZ0ICsgcDEueCwgeTogdG9wICsgcDEueSB9LFxuICAgICAgeyB4OiBsZWZ0ICsgcDIueCwgeTogdG9wICsgcDIueSB9XG4gICAgKTtcbiAgICBpZiAoaW50ZXJzZWN0Mikge1xuICAgICAgaW50ZXJzZWN0aW9ucy5wdXNoKGludGVyc2VjdDIpO1xuICAgIH1cbiAgfVxuICBpZiAoIWludGVyc2VjdGlvbnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbiAgaWYgKGludGVyc2VjdGlvbnMubGVuZ3RoID4gMSkge1xuICAgIGludGVyc2VjdGlvbnMuc29ydChmdW5jdGlvbihwLCBxKSB7XG4gICAgICB2YXIgcGR4ID0gcC54IC0gcG9pbnQyLng7XG4gICAgICB2YXIgcGR5ID0gcC55IC0gcG9pbnQyLnk7XG4gICAgICB2YXIgZGlzdHAgPSBNYXRoLnNxcnQocGR4ICogcGR4ICsgcGR5ICogcGR5KTtcbiAgICAgIHZhciBxZHggPSBxLnggLSBwb2ludDIueDtcbiAgICAgIHZhciBxZHkgPSBxLnkgLSBwb2ludDIueTtcbiAgICAgIHZhciBkaXN0cSA9IE1hdGguc3FydChxZHggKiBxZHggKyBxZHkgKiBxZHkpO1xuICAgICAgcmV0dXJuIGRpc3RwIDwgZGlzdHEgPyAtMSA6IGRpc3RwID09PSBkaXN0cSA/IDAgOiAxO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBpbnRlcnNlY3Rpb25zWzBdO1xufVxuY29uc3QgaW50ZXJzZWN0UmVjdCA9IChub2RlLCBwb2ludDIpID0+IHtcbiAgdmFyIHggPSBub2RlLng7XG4gIHZhciB5ID0gbm9kZS55O1xuICB2YXIgZHggPSBwb2ludDIueCAtIHg7XG4gIHZhciBkeSA9IHBvaW50Mi55IC0geTtcbiAgdmFyIHcgPSBub2RlLndpZHRoIC8gMjtcbiAgdmFyIGggPSBub2RlLmhlaWdodCAvIDI7XG4gIHZhciBzeCwgc3k7XG4gIGlmIChNYXRoLmFicyhkeSkgKiB3ID4gTWF0aC5hYnMoZHgpICogaCkge1xuICAgIGlmIChkeSA8IDApIHtcbiAgICAgIGggPSAtaDtcbiAgICB9XG4gICAgc3ggPSBkeSA9PT0gMCA/IDAgOiBoICogZHggLyBkeTtcbiAgICBzeSA9IGg7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGR4IDwgMCkge1xuICAgICAgdyA9IC13O1xuICAgIH1cbiAgICBzeCA9IHc7XG4gICAgc3kgPSBkeCA9PT0gMCA/IDAgOiB3ICogZHkgLyBkeDtcbiAgfVxuICByZXR1cm4geyB4OiB4ICsgc3gsIHk6IHkgKyBzeSB9O1xufTtcbmNvbnN0IGludGVyc2VjdFJlY3QkMSA9IGludGVyc2VjdFJlY3Q7XG5jb25zdCBpbnRlcnNlY3QgPSB7XG4gIG5vZGU6IGludGVyc2VjdE5vZGUsXG4gIGNpcmNsZTogaW50ZXJzZWN0Q2lyY2xlLFxuICBlbGxpcHNlOiBpbnRlcnNlY3RFbGxpcHNlLFxuICBwb2x5Z29uOiBpbnRlcnNlY3RQb2x5Z29uLFxuICByZWN0OiBpbnRlcnNlY3RSZWN0JDFcbn07XG5jb25zdCBub3RlID0gYXN5bmMgKHBhcmVudCwgbm9kZSkgPT4ge1xuICBjb25zdCB1c2VIdG1sTGFiZWxzID0gbm9kZS51c2VIdG1sTGFiZWxzIHx8IGdldENvbmZpZygpLmZsb3djaGFydC5odG1sTGFiZWxzO1xuICBpZiAoIXVzZUh0bWxMYWJlbHMpIHtcbiAgICBub2RlLmNlbnRlckxhYmVsID0gdHJ1ZTtcbiAgfVxuICBjb25zdCB7IHNoYXBlU3ZnLCBiYm94LCBoYWxmUGFkZGluZyB9ID0gYXdhaXQgbGFiZWxIZWxwZXIoXG4gICAgcGFyZW50LFxuICAgIG5vZGUsXG4gICAgXCJub2RlIFwiICsgbm9kZS5jbGFzc2VzLFxuICAgIHRydWVcbiAgKTtcbiAgbG9nLmluZm8oXCJDbGFzc2VzID0gXCIsIG5vZGUuY2xhc3Nlcyk7XG4gIGNvbnN0IHJlY3QyID0gc2hhcGVTdmcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKTtcbiAgcmVjdDIuYXR0cihcInJ4XCIsIG5vZGUucngpLmF0dHIoXCJyeVwiLCBub2RlLnJ5KS5hdHRyKFwieFwiLCAtYmJveC53aWR0aCAvIDIgLSBoYWxmUGFkZGluZykuYXR0cihcInlcIiwgLWJib3guaGVpZ2h0IC8gMiAtIGhhbGZQYWRkaW5nKS5hdHRyKFwid2lkdGhcIiwgYmJveC53aWR0aCArIG5vZGUucGFkZGluZykuYXR0cihcImhlaWdodFwiLCBiYm94LmhlaWdodCArIG5vZGUucGFkZGluZyk7XG4gIHVwZGF0ZU5vZGVCb3VuZHMobm9kZSwgcmVjdDIpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50Mikge1xuICAgIHJldHVybiBpbnRlcnNlY3QucmVjdChub2RlLCBwb2ludDIpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3Qgbm90ZSQxID0gbm90ZTtcbmNvbnN0IGV4cGFuZEFuZERlZHVwbGljYXRlRGlyZWN0aW9ucyA9IChkaXJlY3Rpb25zKSA9PiB7XG4gIGNvbnN0IHVuaXF1ZURpcmVjdGlvbnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpO1xuICBmb3IgKGNvbnN0IGRpcmVjdGlvbiBvZiBkaXJlY3Rpb25zKSB7XG4gICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcbiAgICAgIGNhc2UgXCJ4XCI6XG4gICAgICAgIHVuaXF1ZURpcmVjdGlvbnMuYWRkKFwicmlnaHRcIik7XG4gICAgICAgIHVuaXF1ZURpcmVjdGlvbnMuYWRkKFwibGVmdFwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwieVwiOlxuICAgICAgICB1bmlxdWVEaXJlY3Rpb25zLmFkZChcInVwXCIpO1xuICAgICAgICB1bmlxdWVEaXJlY3Rpb25zLmFkZChcImRvd25cIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdW5pcXVlRGlyZWN0aW9ucy5hZGQoZGlyZWN0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmlxdWVEaXJlY3Rpb25zO1xufTtcbmNvbnN0IGdldEFycm93UG9pbnRzID0gKGR1cGxpY2F0ZWREaXJlY3Rpb25zLCBiYm94LCBub2RlKSA9PiB7XG4gIGNvbnN0IGRpcmVjdGlvbnMgPSBleHBhbmRBbmREZWR1cGxpY2F0ZURpcmVjdGlvbnMoZHVwbGljYXRlZERpcmVjdGlvbnMpO1xuICBjb25zdCBmID0gMjtcbiAgY29uc3QgaGVpZ2h0ID0gYmJveC5oZWlnaHQgKyAyICogbm9kZS5wYWRkaW5nO1xuICBjb25zdCBtaWRwb2ludCA9IGhlaWdodCAvIGY7XG4gIGNvbnN0IHdpZHRoID0gYmJveC53aWR0aCArIDIgKiBtaWRwb2ludCArIG5vZGUucGFkZGluZztcbiAgY29uc3QgcGFkZGluZyA9IG5vZGUucGFkZGluZyAvIDI7XG4gIGlmIChkaXJlY3Rpb25zLmhhcyhcInJpZ2h0XCIpICYmIGRpcmVjdGlvbnMuaGFzKFwibGVmdFwiKSAmJiBkaXJlY3Rpb25zLmhhcyhcInVwXCIpICYmIGRpcmVjdGlvbnMuaGFzKFwiZG93blwiKSkge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBCb3R0b21cbiAgICAgIHsgeDogMCwgeTogMCB9LFxuICAgICAgeyB4OiBtaWRwb2ludCwgeTogMCB9LFxuICAgICAgeyB4OiB3aWR0aCAvIDIsIHk6IDIgKiBwYWRkaW5nIH0sXG4gICAgICB7IHg6IHdpZHRoIC0gbWlkcG9pbnQsIHk6IDAgfSxcbiAgICAgIHsgeDogd2lkdGgsIHk6IDAgfSxcbiAgICAgIC8vIFJpZ2h0XG4gICAgICB7IHg6IHdpZHRoLCB5OiAtaGVpZ2h0IC8gMyB9LFxuICAgICAgeyB4OiB3aWR0aCArIDIgKiBwYWRkaW5nLCB5OiAtaGVpZ2h0IC8gMiB9LFxuICAgICAgeyB4OiB3aWR0aCwgeTogLTIgKiBoZWlnaHQgLyAzIH0sXG4gICAgICB7IHg6IHdpZHRoLCB5OiAtaGVpZ2h0IH0sXG4gICAgICAvLyBUb3BcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogLWhlaWdodCB9LFxuICAgICAgeyB4OiB3aWR0aCAvIDIsIHk6IC1oZWlnaHQgLSAyICogcGFkZGluZyB9LFxuICAgICAgeyB4OiBtaWRwb2ludCwgeTogLWhlaWdodCB9LFxuICAgICAgLy8gTGVmdFxuICAgICAgeyB4OiAwLCB5OiAtaGVpZ2h0IH0sXG4gICAgICB7IHg6IDAsIHk6IC0yICogaGVpZ2h0IC8gMyB9LFxuICAgICAgeyB4OiAtMiAqIHBhZGRpbmcsIHk6IC1oZWlnaHQgLyAyIH0sXG4gICAgICB7IHg6IDAsIHk6IC1oZWlnaHQgLyAzIH1cbiAgICBdO1xuICB9XG4gIGlmIChkaXJlY3Rpb25zLmhhcyhcInJpZ2h0XCIpICYmIGRpcmVjdGlvbnMuaGFzKFwibGVmdFwiKSAmJiBkaXJlY3Rpb25zLmhhcyhcInVwXCIpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgeDogbWlkcG9pbnQsIHk6IDAgfSxcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogMCB9LFxuICAgICAgeyB4OiB3aWR0aCwgeTogLWhlaWdodCAvIDIgfSxcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogLWhlaWdodCB9LFxuICAgICAgeyB4OiBtaWRwb2ludCwgeTogLWhlaWdodCB9LFxuICAgICAgeyB4OiAwLCB5OiAtaGVpZ2h0IC8gMiB9XG4gICAgXTtcbiAgfVxuICBpZiAoZGlyZWN0aW9ucy5oYXMoXCJyaWdodFwiKSAmJiBkaXJlY3Rpb25zLmhhcyhcImxlZnRcIikgJiYgZGlyZWN0aW9ucy5oYXMoXCJkb3duXCIpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgeDogMCwgeTogMCB9LFxuICAgICAgeyB4OiBtaWRwb2ludCwgeTogLWhlaWdodCB9LFxuICAgICAgeyB4OiB3aWR0aCAtIG1pZHBvaW50LCB5OiAtaGVpZ2h0IH0sXG4gICAgICB7IHg6IHdpZHRoLCB5OiAwIH1cbiAgICBdO1xuICB9XG4gIGlmIChkaXJlY3Rpb25zLmhhcyhcInJpZ2h0XCIpICYmIGRpcmVjdGlvbnMuaGFzKFwidXBcIikgJiYgZGlyZWN0aW9ucy5oYXMoXCJkb3duXCIpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgeDogMCwgeTogMCB9LFxuICAgICAgeyB4OiB3aWR0aCwgeTogLW1pZHBvaW50IH0sXG4gICAgICB7IHg6IHdpZHRoLCB5OiAtaGVpZ2h0ICsgbWlkcG9pbnQgfSxcbiAgICAgIHsgeDogMCwgeTogLWhlaWdodCB9XG4gICAgXTtcbiAgfVxuICBpZiAoZGlyZWN0aW9ucy5oYXMoXCJsZWZ0XCIpICYmIGRpcmVjdGlvbnMuaGFzKFwidXBcIikgJiYgZGlyZWN0aW9ucy5oYXMoXCJkb3duXCIpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgeDogd2lkdGgsIHk6IDAgfSxcbiAgICAgIHsgeDogMCwgeTogLW1pZHBvaW50IH0sXG4gICAgICB7IHg6IDAsIHk6IC1oZWlnaHQgKyBtaWRwb2ludCB9LFxuICAgICAgeyB4OiB3aWR0aCwgeTogLWhlaWdodCB9XG4gICAgXTtcbiAgfVxuICBpZiAoZGlyZWN0aW9ucy5oYXMoXCJyaWdodFwiKSAmJiBkaXJlY3Rpb25zLmhhcyhcImxlZnRcIikpIHtcbiAgICByZXR1cm4gW1xuICAgICAgeyB4OiBtaWRwb2ludCwgeTogMCB9LFxuICAgICAgeyB4OiBtaWRwb2ludCwgeTogLXBhZGRpbmcgfSxcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogLXBhZGRpbmcgfSxcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogMCB9LFxuICAgICAgeyB4OiB3aWR0aCwgeTogLWhlaWdodCAvIDIgfSxcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogLWhlaWdodCB9LFxuICAgICAgeyB4OiB3aWR0aCAtIG1pZHBvaW50LCB5OiAtaGVpZ2h0ICsgcGFkZGluZyB9LFxuICAgICAgeyB4OiBtaWRwb2ludCwgeTogLWhlaWdodCArIHBhZGRpbmcgfSxcbiAgICAgIHsgeDogbWlkcG9pbnQsIHk6IC1oZWlnaHQgfSxcbiAgICAgIHsgeDogMCwgeTogLWhlaWdodCAvIDIgfVxuICAgIF07XG4gIH1cbiAgaWYgKGRpcmVjdGlvbnMuaGFzKFwidXBcIikgJiYgZGlyZWN0aW9ucy5oYXMoXCJkb3duXCIpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIEJvdHRvbSBjZW50ZXJcbiAgICAgIHsgeDogd2lkdGggLyAyLCB5OiAwIH0sXG4gICAgICAvLyBMZWZ0IHBvbnQgb2YgYm90dG9tIGFycm93XG4gICAgICB7IHg6IDAsIHk6IC1wYWRkaW5nIH0sXG4gICAgICB7IHg6IG1pZHBvaW50LCB5OiAtcGFkZGluZyB9LFxuICAgICAgLy8gTGVmdCB0b3Agb3ZlciB2ZXJ0aWNhbCBzZWN0aW9uXG4gICAgICB7IHg6IG1pZHBvaW50LCB5OiAtaGVpZ2h0ICsgcGFkZGluZyB9LFxuICAgICAgeyB4OiAwLCB5OiAtaGVpZ2h0ICsgcGFkZGluZyB9LFxuICAgICAgLy8gVG9wIG9mIGFycm93XG4gICAgICB7IHg6IHdpZHRoIC8gMiwgeTogLWhlaWdodCB9LFxuICAgICAgeyB4OiB3aWR0aCwgeTogLWhlaWdodCArIHBhZGRpbmcgfSxcbiAgICAgIC8vIFRvcCBvZiByaWdodCB2ZXJ0aWNhbCBiYXJcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogLWhlaWdodCArIHBhZGRpbmcgfSxcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogLXBhZGRpbmcgfSxcbiAgICAgIHsgeDogd2lkdGgsIHk6IC1wYWRkaW5nIH1cbiAgICBdO1xuICB9XG4gIGlmIChkaXJlY3Rpb25zLmhhcyhcInJpZ2h0XCIpICYmIGRpcmVjdGlvbnMuaGFzKFwidXBcIikpIHtcbiAgICByZXR1cm4gW1xuICAgICAgeyB4OiAwLCB5OiAwIH0sXG4gICAgICB7IHg6IHdpZHRoLCB5OiAtbWlkcG9pbnQgfSxcbiAgICAgIHsgeDogMCwgeTogLWhlaWdodCB9XG4gICAgXTtcbiAgfVxuICBpZiAoZGlyZWN0aW9ucy5oYXMoXCJyaWdodFwiKSAmJiBkaXJlY3Rpb25zLmhhcyhcImRvd25cIikpIHtcbiAgICByZXR1cm4gW1xuICAgICAgeyB4OiAwLCB5OiAwIH0sXG4gICAgICB7IHg6IHdpZHRoLCB5OiAwIH0sXG4gICAgICB7IHg6IDAsIHk6IC1oZWlnaHQgfVxuICAgIF07XG4gIH1cbiAgaWYgKGRpcmVjdGlvbnMuaGFzKFwibGVmdFwiKSAmJiBkaXJlY3Rpb25zLmhhcyhcInVwXCIpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgeDogd2lkdGgsIHk6IDAgfSxcbiAgICAgIHsgeDogMCwgeTogLW1pZHBvaW50IH0sXG4gICAgICB7IHg6IHdpZHRoLCB5OiAtaGVpZ2h0IH1cbiAgICBdO1xuICB9XG4gIGlmIChkaXJlY3Rpb25zLmhhcyhcImxlZnRcIikgJiYgZGlyZWN0aW9ucy5oYXMoXCJkb3duXCIpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgeDogd2lkdGgsIHk6IDAgfSxcbiAgICAgIHsgeDogMCwgeTogMCB9LFxuICAgICAgeyB4OiB3aWR0aCwgeTogLWhlaWdodCB9XG4gICAgXTtcbiAgfVxuICBpZiAoZGlyZWN0aW9ucy5oYXMoXCJyaWdodFwiKSkge1xuICAgIHJldHVybiBbXG4gICAgICB7IHg6IG1pZHBvaW50LCB5OiAtcGFkZGluZyB9LFxuICAgICAgeyB4OiBtaWRwb2ludCwgeTogLXBhZGRpbmcgfSxcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogLXBhZGRpbmcgfSxcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogMCB9LFxuICAgICAgeyB4OiB3aWR0aCwgeTogLWhlaWdodCAvIDIgfSxcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogLWhlaWdodCB9LFxuICAgICAgeyB4OiB3aWR0aCAtIG1pZHBvaW50LCB5OiAtaGVpZ2h0ICsgcGFkZGluZyB9LFxuICAgICAgLy8gdG9wIGxlZnQgY29ybmVyIG9mIGFycm93XG4gICAgICB7IHg6IG1pZHBvaW50LCB5OiAtaGVpZ2h0ICsgcGFkZGluZyB9LFxuICAgICAgeyB4OiBtaWRwb2ludCwgeTogLWhlaWdodCArIHBhZGRpbmcgfVxuICAgIF07XG4gIH1cbiAgaWYgKGRpcmVjdGlvbnMuaGFzKFwibGVmdFwiKSkge1xuICAgIHJldHVybiBbXG4gICAgICB7IHg6IG1pZHBvaW50LCB5OiAwIH0sXG4gICAgICB7IHg6IG1pZHBvaW50LCB5OiAtcGFkZGluZyB9LFxuICAgICAgLy8gVHdvIHBvaW50cywgdGhlIHJpZ2h0IGNvcm5lcnNcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogLXBhZGRpbmcgfSxcbiAgICAgIHsgeDogd2lkdGggLSBtaWRwb2ludCwgeTogLWhlaWdodCArIHBhZGRpbmcgfSxcbiAgICAgIHsgeDogbWlkcG9pbnQsIHk6IC1oZWlnaHQgKyBwYWRkaW5nIH0sXG4gICAgICB7IHg6IG1pZHBvaW50LCB5OiAtaGVpZ2h0IH0sXG4gICAgICB7IHg6IDAsIHk6IC1oZWlnaHQgLyAyIH1cbiAgICBdO1xuICB9XG4gIGlmIChkaXJlY3Rpb25zLmhhcyhcInVwXCIpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIEJvdHRvbSBjZW50ZXJcbiAgICAgIHsgeDogbWlkcG9pbnQsIHk6IC1wYWRkaW5nIH0sXG4gICAgICAvLyBMZWZ0IHRvcCBvdmVyIHZlcnRpY2FsIHNlY3Rpb25cbiAgICAgIHsgeDogbWlkcG9pbnQsIHk6IC1oZWlnaHQgKyBwYWRkaW5nIH0sXG4gICAgICB7IHg6IDAsIHk6IC1oZWlnaHQgKyBwYWRkaW5nIH0sXG4gICAgICAvLyBUb3Agb2YgYXJyb3dcbiAgICAgIHsgeDogd2lkdGggLyAyLCB5OiAtaGVpZ2h0IH0sXG4gICAgICB7IHg6IHdpZHRoLCB5OiAtaGVpZ2h0ICsgcGFkZGluZyB9LFxuICAgICAgLy8gVG9wIG9mIHJpZ2h0IHZlcnRpY2FsIGJhclxuICAgICAgeyB4OiB3aWR0aCAtIG1pZHBvaW50LCB5OiAtaGVpZ2h0ICsgcGFkZGluZyB9LFxuICAgICAgeyB4OiB3aWR0aCAtIG1pZHBvaW50LCB5OiAtcGFkZGluZyB9XG4gICAgXTtcbiAgfVxuICBpZiAoZGlyZWN0aW9ucy5oYXMoXCJkb3duXCIpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIEJvdHRvbSBjZW50ZXJcbiAgICAgIHsgeDogd2lkdGggLyAyLCB5OiAwIH0sXG4gICAgICAvLyBMZWZ0IHBvbnQgb2YgYm90dG9tIGFycm93XG4gICAgICB7IHg6IDAsIHk6IC1wYWRkaW5nIH0sXG4gICAgICB7IHg6IG1pZHBvaW50LCB5OiAtcGFkZGluZyB9LFxuICAgICAgLy8gTGVmdCB0b3Agb3ZlciB2ZXJ0aWNhbCBzZWN0aW9uXG4gICAgICB7IHg6IG1pZHBvaW50LCB5OiAtaGVpZ2h0ICsgcGFkZGluZyB9LFxuICAgICAgeyB4OiB3aWR0aCAtIG1pZHBvaW50LCB5OiAtaGVpZ2h0ICsgcGFkZGluZyB9LFxuICAgICAgeyB4OiB3aWR0aCAtIG1pZHBvaW50LCB5OiAtcGFkZGluZyB9LFxuICAgICAgeyB4OiB3aWR0aCwgeTogLXBhZGRpbmcgfVxuICAgIF07XG4gIH1cbiAgcmV0dXJuIFt7IHg6IDAsIHk6IDAgfV07XG59O1xuY29uc3QgZm9ybWF0Q2xhc3MgPSAoc3RyKSA9PiB7XG4gIGlmIChzdHIpIHtcbiAgICByZXR1cm4gXCIgXCIgKyBzdHI7XG4gIH1cbiAgcmV0dXJuIFwiXCI7XG59O1xuY29uc3QgZ2V0Q2xhc3Nlc0Zyb21Ob2RlID0gKG5vZGUsIG90aGVyQ2xhc3NlcykgPT4ge1xuICByZXR1cm4gYCR7b3RoZXJDbGFzc2VzID8gb3RoZXJDbGFzc2VzIDogXCJub2RlIGRlZmF1bHRcIn0ke2Zvcm1hdENsYXNzKG5vZGUuY2xhc3Nlcyl9ICR7Zm9ybWF0Q2xhc3MoXG4gICAgbm9kZS5jbGFzc1xuICApfWA7XG59O1xuY29uc3QgcXVlc3Rpb24gPSBhc3luYyAocGFyZW50LCBub2RlKSA9PiB7XG4gIGNvbnN0IHsgc2hhcGVTdmcsIGJib3ggfSA9IGF3YWl0IGxhYmVsSGVscGVyKFxuICAgIHBhcmVudCxcbiAgICBub2RlLFxuICAgIGdldENsYXNzZXNGcm9tTm9kZShub2RlLCB2b2lkIDApLFxuICAgIHRydWVcbiAgKTtcbiAgY29uc3QgdyA9IGJib3gud2lkdGggKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IGggPSBiYm94LmhlaWdodCArIG5vZGUucGFkZGluZztcbiAgY29uc3QgcyA9IHcgKyBoO1xuICBjb25zdCBwb2ludHMgPSBbXG4gICAgeyB4OiBzIC8gMiwgeTogMCB9LFxuICAgIHsgeDogcywgeTogLXMgLyAyIH0sXG4gICAgeyB4OiBzIC8gMiwgeTogLXMgfSxcbiAgICB7IHg6IDAsIHk6IC1zIC8gMiB9XG4gIF07XG4gIGxvZy5pbmZvKFwiUXVlc3Rpb24gbWFpbiAoQ2lyY2xlKVwiKTtcbiAgY29uc3QgcXVlc3Rpb25FbGVtID0gaW5zZXJ0UG9seWdvblNoYXBlKHNoYXBlU3ZnLCBzLCBzLCBwb2ludHMpO1xuICBxdWVzdGlvbkVsZW0uYXR0cihcInN0eWxlXCIsIG5vZGUuc3R5bGUpO1xuICB1cGRhdGVOb2RlQm91bmRzKG5vZGUsIHF1ZXN0aW9uRWxlbSk7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgbG9nLndhcm4oXCJJbnRlcnNlY3QgY2FsbGVkXCIpO1xuICAgIHJldHVybiBpbnRlcnNlY3QucG9seWdvbihub2RlLCBwb2ludHMsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5jb25zdCBjaG9pY2UgPSAocGFyZW50LCBub2RlKSA9PiB7XG4gIGNvbnN0IHNoYXBlU3ZnID0gcGFyZW50Lmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwibm9kZSBkZWZhdWx0XCIpLmF0dHIoXCJpZFwiLCBub2RlLmRvbUlkIHx8IG5vZGUuaWQpO1xuICBjb25zdCBzID0gMjg7XG4gIGNvbnN0IHBvaW50cyA9IFtcbiAgICB7IHg6IDAsIHk6IHMgLyAyIH0sXG4gICAgeyB4OiBzIC8gMiwgeTogMCB9LFxuICAgIHsgeDogMCwgeTogLXMgLyAyIH0sXG4gICAgeyB4OiAtcyAvIDIsIHk6IDAgfVxuICBdO1xuICBjb25zdCBjaG9pY2UyID0gc2hhcGVTdmcuaW5zZXJ0KFwicG9seWdvblwiLCBcIjpmaXJzdC1jaGlsZFwiKS5hdHRyKFxuICAgIFwicG9pbnRzXCIsXG4gICAgcG9pbnRzLm1hcChmdW5jdGlvbihkKSB7XG4gICAgICByZXR1cm4gZC54ICsgXCIsXCIgKyBkLnk7XG4gICAgfSkuam9pbihcIiBcIilcbiAgKTtcbiAgY2hvaWNlMi5hdHRyKFwiY2xhc3NcIiwgXCJzdGF0ZS1zdGFydFwiKS5hdHRyKFwiclwiLCA3KS5hdHRyKFwid2lkdGhcIiwgMjgpLmF0dHIoXCJoZWlnaHRcIiwgMjgpO1xuICBub2RlLndpZHRoID0gMjg7XG4gIG5vZGUuaGVpZ2h0ID0gMjg7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgcmV0dXJuIGludGVyc2VjdC5jaXJjbGUobm9kZSwgMTQsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5jb25zdCBoZXhhZ29uID0gYXN5bmMgKHBhcmVudCwgbm9kZSkgPT4ge1xuICBjb25zdCB7IHNoYXBlU3ZnLCBiYm94IH0gPSBhd2FpdCBsYWJlbEhlbHBlcihcbiAgICBwYXJlbnQsXG4gICAgbm9kZSxcbiAgICBnZXRDbGFzc2VzRnJvbU5vZGUobm9kZSwgdm9pZCAwKSxcbiAgICB0cnVlXG4gICk7XG4gIGNvbnN0IGYgPSA0O1xuICBjb25zdCBoID0gYmJveC5oZWlnaHQgKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IG0gPSBoIC8gZjtcbiAgY29uc3QgdyA9IGJib3gud2lkdGggKyAyICogbSArIG5vZGUucGFkZGluZztcbiAgY29uc3QgcG9pbnRzID0gW1xuICAgIHsgeDogbSwgeTogMCB9LFxuICAgIHsgeDogdyAtIG0sIHk6IDAgfSxcbiAgICB7IHg6IHcsIHk6IC1oIC8gMiB9LFxuICAgIHsgeDogdyAtIG0sIHk6IC1oIH0sXG4gICAgeyB4OiBtLCB5OiAtaCB9LFxuICAgIHsgeDogMCwgeTogLWggLyAyIH1cbiAgXTtcbiAgY29uc3QgaGV4ID0gaW5zZXJ0UG9seWdvblNoYXBlKHNoYXBlU3ZnLCB3LCBoLCBwb2ludHMpO1xuICBoZXguYXR0cihcInN0eWxlXCIsIG5vZGUuc3R5bGUpO1xuICB1cGRhdGVOb2RlQm91bmRzKG5vZGUsIGhleCk7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgcmV0dXJuIGludGVyc2VjdC5wb2x5Z29uKG5vZGUsIHBvaW50cywgcG9pbnQyKTtcbiAgfTtcbiAgcmV0dXJuIHNoYXBlU3ZnO1xufTtcbmNvbnN0IGJsb2NrX2Fycm93ID0gYXN5bmMgKHBhcmVudCwgbm9kZSkgPT4ge1xuICBjb25zdCB7IHNoYXBlU3ZnLCBiYm94IH0gPSBhd2FpdCBsYWJlbEhlbHBlcihwYXJlbnQsIG5vZGUsIHZvaWQgMCwgdHJ1ZSk7XG4gIGNvbnN0IGYgPSAyO1xuICBjb25zdCBoID0gYmJveC5oZWlnaHQgKyAyICogbm9kZS5wYWRkaW5nO1xuICBjb25zdCBtID0gaCAvIGY7XG4gIGNvbnN0IHcgPSBiYm94LndpZHRoICsgMiAqIG0gKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IHBvaW50cyA9IGdldEFycm93UG9pbnRzKG5vZGUuZGlyZWN0aW9ucywgYmJveCwgbm9kZSk7XG4gIGNvbnN0IGJsb2NrQXJyb3cgPSBpbnNlcnRQb2x5Z29uU2hhcGUoc2hhcGVTdmcsIHcsIGgsIHBvaW50cyk7XG4gIGJsb2NrQXJyb3cuYXR0cihcInN0eWxlXCIsIG5vZGUuc3R5bGUpO1xuICB1cGRhdGVOb2RlQm91bmRzKG5vZGUsIGJsb2NrQXJyb3cpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50Mikge1xuICAgIHJldHVybiBpbnRlcnNlY3QucG9seWdvbihub2RlLCBwb2ludHMsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5jb25zdCByZWN0X2xlZnRfaW52X2Fycm93ID0gYXN5bmMgKHBhcmVudCwgbm9kZSkgPT4ge1xuICBjb25zdCB7IHNoYXBlU3ZnLCBiYm94IH0gPSBhd2FpdCBsYWJlbEhlbHBlcihcbiAgICBwYXJlbnQsXG4gICAgbm9kZSxcbiAgICBnZXRDbGFzc2VzRnJvbU5vZGUobm9kZSwgdm9pZCAwKSxcbiAgICB0cnVlXG4gICk7XG4gIGNvbnN0IHcgPSBiYm94LndpZHRoICsgbm9kZS5wYWRkaW5nO1xuICBjb25zdCBoID0gYmJveC5oZWlnaHQgKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IHBvaW50cyA9IFtcbiAgICB7IHg6IC1oIC8gMiwgeTogMCB9LFxuICAgIHsgeDogdywgeTogMCB9LFxuICAgIHsgeDogdywgeTogLWggfSxcbiAgICB7IHg6IC1oIC8gMiwgeTogLWggfSxcbiAgICB7IHg6IDAsIHk6IC1oIC8gMiB9XG4gIF07XG4gIGNvbnN0IGVsID0gaW5zZXJ0UG9seWdvblNoYXBlKHNoYXBlU3ZnLCB3LCBoLCBwb2ludHMpO1xuICBlbC5hdHRyKFwic3R5bGVcIiwgbm9kZS5zdHlsZSk7XG4gIG5vZGUud2lkdGggPSB3ICsgaDtcbiAgbm9kZS5oZWlnaHQgPSBoO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50Mikge1xuICAgIHJldHVybiBpbnRlcnNlY3QucG9seWdvbihub2RlLCBwb2ludHMsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5jb25zdCBsZWFuX3JpZ2h0ID0gYXN5bmMgKHBhcmVudCwgbm9kZSkgPT4ge1xuICBjb25zdCB7IHNoYXBlU3ZnLCBiYm94IH0gPSBhd2FpdCBsYWJlbEhlbHBlcihwYXJlbnQsIG5vZGUsIGdldENsYXNzZXNGcm9tTm9kZShub2RlKSwgdHJ1ZSk7XG4gIGNvbnN0IHcgPSBiYm94LndpZHRoICsgbm9kZS5wYWRkaW5nO1xuICBjb25zdCBoID0gYmJveC5oZWlnaHQgKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IHBvaW50cyA9IFtcbiAgICB7IHg6IC0yICogaCAvIDYsIHk6IDAgfSxcbiAgICB7IHg6IHcgLSBoIC8gNiwgeTogMCB9LFxuICAgIHsgeDogdyArIDIgKiBoIC8gNiwgeTogLWggfSxcbiAgICB7IHg6IGggLyA2LCB5OiAtaCB9XG4gIF07XG4gIGNvbnN0IGVsID0gaW5zZXJ0UG9seWdvblNoYXBlKHNoYXBlU3ZnLCB3LCBoLCBwb2ludHMpO1xuICBlbC5hdHRyKFwic3R5bGVcIiwgbm9kZS5zdHlsZSk7XG4gIHVwZGF0ZU5vZGVCb3VuZHMobm9kZSwgZWwpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50Mikge1xuICAgIHJldHVybiBpbnRlcnNlY3QucG9seWdvbihub2RlLCBwb2ludHMsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5jb25zdCBsZWFuX2xlZnQgPSBhc3luYyAocGFyZW50LCBub2RlKSA9PiB7XG4gIGNvbnN0IHsgc2hhcGVTdmcsIGJib3ggfSA9IGF3YWl0IGxhYmVsSGVscGVyKFxuICAgIHBhcmVudCxcbiAgICBub2RlLFxuICAgIGdldENsYXNzZXNGcm9tTm9kZShub2RlLCB2b2lkIDApLFxuICAgIHRydWVcbiAgKTtcbiAgY29uc3QgdyA9IGJib3gud2lkdGggKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IGggPSBiYm94LmhlaWdodCArIG5vZGUucGFkZGluZztcbiAgY29uc3QgcG9pbnRzID0gW1xuICAgIHsgeDogMiAqIGggLyA2LCB5OiAwIH0sXG4gICAgeyB4OiB3ICsgaCAvIDYsIHk6IDAgfSxcbiAgICB7IHg6IHcgLSAyICogaCAvIDYsIHk6IC1oIH0sXG4gICAgeyB4OiAtaCAvIDYsIHk6IC1oIH1cbiAgXTtcbiAgY29uc3QgZWwgPSBpbnNlcnRQb2x5Z29uU2hhcGUoc2hhcGVTdmcsIHcsIGgsIHBvaW50cyk7XG4gIGVsLmF0dHIoXCJzdHlsZVwiLCBub2RlLnN0eWxlKTtcbiAgdXBkYXRlTm9kZUJvdW5kcyhub2RlLCBlbCk7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgcmV0dXJuIGludGVyc2VjdC5wb2x5Z29uKG5vZGUsIHBvaW50cywgcG9pbnQyKTtcbiAgfTtcbiAgcmV0dXJuIHNoYXBlU3ZnO1xufTtcbmNvbnN0IHRyYXBlem9pZCA9IGFzeW5jIChwYXJlbnQsIG5vZGUpID0+IHtcbiAgY29uc3QgeyBzaGFwZVN2ZywgYmJveCB9ID0gYXdhaXQgbGFiZWxIZWxwZXIoXG4gICAgcGFyZW50LFxuICAgIG5vZGUsXG4gICAgZ2V0Q2xhc3Nlc0Zyb21Ob2RlKG5vZGUsIHZvaWQgMCksXG4gICAgdHJ1ZVxuICApO1xuICBjb25zdCB3ID0gYmJveC53aWR0aCArIG5vZGUucGFkZGluZztcbiAgY29uc3QgaCA9IGJib3guaGVpZ2h0ICsgbm9kZS5wYWRkaW5nO1xuICBjb25zdCBwb2ludHMgPSBbXG4gICAgeyB4OiAtMiAqIGggLyA2LCB5OiAwIH0sXG4gICAgeyB4OiB3ICsgMiAqIGggLyA2LCB5OiAwIH0sXG4gICAgeyB4OiB3IC0gaCAvIDYsIHk6IC1oIH0sXG4gICAgeyB4OiBoIC8gNiwgeTogLWggfVxuICBdO1xuICBjb25zdCBlbCA9IGluc2VydFBvbHlnb25TaGFwZShzaGFwZVN2ZywgdywgaCwgcG9pbnRzKTtcbiAgZWwuYXR0cihcInN0eWxlXCIsIG5vZGUuc3R5bGUpO1xuICB1cGRhdGVOb2RlQm91bmRzKG5vZGUsIGVsKTtcbiAgbm9kZS5pbnRlcnNlY3QgPSBmdW5jdGlvbihwb2ludDIpIHtcbiAgICByZXR1cm4gaW50ZXJzZWN0LnBvbHlnb24obm9kZSwgcG9pbnRzLCBwb2ludDIpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3QgaW52X3RyYXBlem9pZCA9IGFzeW5jIChwYXJlbnQsIG5vZGUpID0+IHtcbiAgY29uc3QgeyBzaGFwZVN2ZywgYmJveCB9ID0gYXdhaXQgbGFiZWxIZWxwZXIoXG4gICAgcGFyZW50LFxuICAgIG5vZGUsXG4gICAgZ2V0Q2xhc3Nlc0Zyb21Ob2RlKG5vZGUsIHZvaWQgMCksXG4gICAgdHJ1ZVxuICApO1xuICBjb25zdCB3ID0gYmJveC53aWR0aCArIG5vZGUucGFkZGluZztcbiAgY29uc3QgaCA9IGJib3guaGVpZ2h0ICsgbm9kZS5wYWRkaW5nO1xuICBjb25zdCBwb2ludHMgPSBbXG4gICAgeyB4OiBoIC8gNiwgeTogMCB9LFxuICAgIHsgeDogdyAtIGggLyA2LCB5OiAwIH0sXG4gICAgeyB4OiB3ICsgMiAqIGggLyA2LCB5OiAtaCB9LFxuICAgIHsgeDogLTIgKiBoIC8gNiwgeTogLWggfVxuICBdO1xuICBjb25zdCBlbCA9IGluc2VydFBvbHlnb25TaGFwZShzaGFwZVN2ZywgdywgaCwgcG9pbnRzKTtcbiAgZWwuYXR0cihcInN0eWxlXCIsIG5vZGUuc3R5bGUpO1xuICB1cGRhdGVOb2RlQm91bmRzKG5vZGUsIGVsKTtcbiAgbm9kZS5pbnRlcnNlY3QgPSBmdW5jdGlvbihwb2ludDIpIHtcbiAgICByZXR1cm4gaW50ZXJzZWN0LnBvbHlnb24obm9kZSwgcG9pbnRzLCBwb2ludDIpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3QgcmVjdF9yaWdodF9pbnZfYXJyb3cgPSBhc3luYyAocGFyZW50LCBub2RlKSA9PiB7XG4gIGNvbnN0IHsgc2hhcGVTdmcsIGJib3ggfSA9IGF3YWl0IGxhYmVsSGVscGVyKFxuICAgIHBhcmVudCxcbiAgICBub2RlLFxuICAgIGdldENsYXNzZXNGcm9tTm9kZShub2RlLCB2b2lkIDApLFxuICAgIHRydWVcbiAgKTtcbiAgY29uc3QgdyA9IGJib3gud2lkdGggKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IGggPSBiYm94LmhlaWdodCArIG5vZGUucGFkZGluZztcbiAgY29uc3QgcG9pbnRzID0gW1xuICAgIHsgeDogMCwgeTogMCB9LFxuICAgIHsgeDogdyArIGggLyAyLCB5OiAwIH0sXG4gICAgeyB4OiB3LCB5OiAtaCAvIDIgfSxcbiAgICB7IHg6IHcgKyBoIC8gMiwgeTogLWggfSxcbiAgICB7IHg6IDAsIHk6IC1oIH1cbiAgXTtcbiAgY29uc3QgZWwgPSBpbnNlcnRQb2x5Z29uU2hhcGUoc2hhcGVTdmcsIHcsIGgsIHBvaW50cyk7XG4gIGVsLmF0dHIoXCJzdHlsZVwiLCBub2RlLnN0eWxlKTtcbiAgdXBkYXRlTm9kZUJvdW5kcyhub2RlLCBlbCk7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgcmV0dXJuIGludGVyc2VjdC5wb2x5Z29uKG5vZGUsIHBvaW50cywgcG9pbnQyKTtcbiAgfTtcbiAgcmV0dXJuIHNoYXBlU3ZnO1xufTtcbmNvbnN0IGN5bGluZGVyID0gYXN5bmMgKHBhcmVudCwgbm9kZSkgPT4ge1xuICBjb25zdCB7IHNoYXBlU3ZnLCBiYm94IH0gPSBhd2FpdCBsYWJlbEhlbHBlcihcbiAgICBwYXJlbnQsXG4gICAgbm9kZSxcbiAgICBnZXRDbGFzc2VzRnJvbU5vZGUobm9kZSwgdm9pZCAwKSxcbiAgICB0cnVlXG4gICk7XG4gIGNvbnN0IHcgPSBiYm94LndpZHRoICsgbm9kZS5wYWRkaW5nO1xuICBjb25zdCByeCA9IHcgLyAyO1xuICBjb25zdCByeSA9IHJ4IC8gKDIuNSArIHcgLyA1MCk7XG4gIGNvbnN0IGggPSBiYm94LmhlaWdodCArIHJ5ICsgbm9kZS5wYWRkaW5nO1xuICBjb25zdCBzaGFwZSA9IFwiTSAwLFwiICsgcnkgKyBcIiBhIFwiICsgcnggKyBcIixcIiArIHJ5ICsgXCIgMCwwLDAgXCIgKyB3ICsgXCIgMCBhIFwiICsgcnggKyBcIixcIiArIHJ5ICsgXCIgMCwwLDAgXCIgKyAtdyArIFwiIDAgbCAwLFwiICsgaCArIFwiIGEgXCIgKyByeCArIFwiLFwiICsgcnkgKyBcIiAwLDAsMCBcIiArIHcgKyBcIiAwIGwgMCxcIiArIC1oO1xuICBjb25zdCBlbCA9IHNoYXBlU3ZnLmF0dHIoXCJsYWJlbC1vZmZzZXQteVwiLCByeSkuaW5zZXJ0KFwicGF0aFwiLCBcIjpmaXJzdC1jaGlsZFwiKS5hdHRyKFwic3R5bGVcIiwgbm9kZS5zdHlsZSkuYXR0cihcImRcIiwgc2hhcGUpLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyAtdyAvIDIgKyBcIixcIiArIC0oaCAvIDIgKyByeSkgKyBcIilcIik7XG4gIHVwZGF0ZU5vZGVCb3VuZHMobm9kZSwgZWwpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50Mikge1xuICAgIGNvbnN0IHBvcyA9IGludGVyc2VjdC5yZWN0KG5vZGUsIHBvaW50Mik7XG4gICAgY29uc3QgeCA9IHBvcy54IC0gbm9kZS54O1xuICAgIGlmIChyeCAhPSAwICYmIChNYXRoLmFicyh4KSA8IG5vZGUud2lkdGggLyAyIHx8IE1hdGguYWJzKHgpID09IG5vZGUud2lkdGggLyAyICYmIE1hdGguYWJzKHBvcy55IC0gbm9kZS55KSA+IG5vZGUuaGVpZ2h0IC8gMiAtIHJ5KSkge1xuICAgICAgbGV0IHkgPSByeSAqIHJ5ICogKDEgLSB4ICogeCAvIChyeCAqIHJ4KSk7XG4gICAgICBpZiAoeSAhPSAwKSB7XG4gICAgICAgIHkgPSBNYXRoLnNxcnQoeSk7XG4gICAgICB9XG4gICAgICB5ID0gcnkgLSB5O1xuICAgICAgaWYgKHBvaW50Mi55IC0gbm9kZS55ID4gMCkge1xuICAgICAgICB5ID0gLXk7XG4gICAgICB9XG4gICAgICBwb3MueSArPSB5O1xuICAgIH1cbiAgICByZXR1cm4gcG9zO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3QgcmVjdCA9IGFzeW5jIChwYXJlbnQsIG5vZGUpID0+IHtcbiAgY29uc3QgeyBzaGFwZVN2ZywgYmJveCwgaGFsZlBhZGRpbmcgfSA9IGF3YWl0IGxhYmVsSGVscGVyKFxuICAgIHBhcmVudCxcbiAgICBub2RlLFxuICAgIFwibm9kZSBcIiArIG5vZGUuY2xhc3NlcyArIFwiIFwiICsgbm9kZS5jbGFzcyxcbiAgICB0cnVlXG4gICk7XG4gIGNvbnN0IHJlY3QyID0gc2hhcGVTdmcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKTtcbiAgY29uc3QgdG90YWxXaWR0aCA9IG5vZGUucG9zaXRpb25lZCA/IG5vZGUud2lkdGggOiBiYm94LndpZHRoICsgbm9kZS5wYWRkaW5nO1xuICBjb25zdCB0b3RhbEhlaWdodCA9IG5vZGUucG9zaXRpb25lZCA/IG5vZGUuaGVpZ2h0IDogYmJveC5oZWlnaHQgKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IHggPSBub2RlLnBvc2l0aW9uZWQgPyAtdG90YWxXaWR0aCAvIDIgOiAtYmJveC53aWR0aCAvIDIgLSBoYWxmUGFkZGluZztcbiAgY29uc3QgeSA9IG5vZGUucG9zaXRpb25lZCA/IC10b3RhbEhlaWdodCAvIDIgOiAtYmJveC5oZWlnaHQgLyAyIC0gaGFsZlBhZGRpbmc7XG4gIHJlY3QyLmF0dHIoXCJjbGFzc1wiLCBcImJhc2ljIGxhYmVsLWNvbnRhaW5lclwiKS5hdHRyKFwic3R5bGVcIiwgbm9kZS5zdHlsZSkuYXR0cihcInJ4XCIsIG5vZGUucngpLmF0dHIoXCJyeVwiLCBub2RlLnJ5KS5hdHRyKFwieFwiLCB4KS5hdHRyKFwieVwiLCB5KS5hdHRyKFwid2lkdGhcIiwgdG90YWxXaWR0aCkuYXR0cihcImhlaWdodFwiLCB0b3RhbEhlaWdodCk7XG4gIGlmIChub2RlLnByb3BzKSB7XG4gICAgY29uc3QgcHJvcEtleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKG5vZGUucHJvcHMpKTtcbiAgICBpZiAobm9kZS5wcm9wcy5ib3JkZXJzKSB7XG4gICAgICBhcHBseU5vZGVQcm9wZXJ0eUJvcmRlcnMocmVjdDIsIG5vZGUucHJvcHMuYm9yZGVycywgdG90YWxXaWR0aCwgdG90YWxIZWlnaHQpO1xuICAgICAgcHJvcEtleXMuZGVsZXRlKFwiYm9yZGVyc1wiKTtcbiAgICB9XG4gICAgcHJvcEtleXMuZm9yRWFjaCgocHJvcEtleSkgPT4ge1xuICAgICAgbG9nLndhcm4oYFVua25vd24gbm9kZSBwcm9wZXJ0eSAke3Byb3BLZXl9YCk7XG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlTm9kZUJvdW5kcyhub2RlLCByZWN0Mik7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgcmV0dXJuIGludGVyc2VjdC5yZWN0KG5vZGUsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5jb25zdCBjb21wb3NpdGUgPSBhc3luYyAocGFyZW50LCBub2RlKSA9PiB7XG4gIGNvbnN0IHsgc2hhcGVTdmcsIGJib3gsIGhhbGZQYWRkaW5nIH0gPSBhd2FpdCBsYWJlbEhlbHBlcihcbiAgICBwYXJlbnQsXG4gICAgbm9kZSxcbiAgICBcIm5vZGUgXCIgKyBub2RlLmNsYXNzZXMsXG4gICAgdHJ1ZVxuICApO1xuICBjb25zdCByZWN0MiA9IHNoYXBlU3ZnLmluc2VydChcInJlY3RcIiwgXCI6Zmlyc3QtY2hpbGRcIik7XG4gIGNvbnN0IHRvdGFsV2lkdGggPSBub2RlLnBvc2l0aW9uZWQgPyBub2RlLndpZHRoIDogYmJveC53aWR0aCArIG5vZGUucGFkZGluZztcbiAgY29uc3QgdG90YWxIZWlnaHQgPSBub2RlLnBvc2l0aW9uZWQgPyBub2RlLmhlaWdodCA6IGJib3guaGVpZ2h0ICsgbm9kZS5wYWRkaW5nO1xuICBjb25zdCB4ID0gbm9kZS5wb3NpdGlvbmVkID8gLXRvdGFsV2lkdGggLyAyIDogLWJib3gud2lkdGggLyAyIC0gaGFsZlBhZGRpbmc7XG4gIGNvbnN0IHkgPSBub2RlLnBvc2l0aW9uZWQgPyAtdG90YWxIZWlnaHQgLyAyIDogLWJib3guaGVpZ2h0IC8gMiAtIGhhbGZQYWRkaW5nO1xuICByZWN0Mi5hdHRyKFwiY2xhc3NcIiwgXCJiYXNpYyBjbHVzdGVyIGNvbXBvc2l0ZSBsYWJlbC1jb250YWluZXJcIikuYXR0cihcInN0eWxlXCIsIG5vZGUuc3R5bGUpLmF0dHIoXCJyeFwiLCBub2RlLnJ4KS5hdHRyKFwicnlcIiwgbm9kZS5yeSkuYXR0cihcInhcIiwgeCkuYXR0cihcInlcIiwgeSkuYXR0cihcIndpZHRoXCIsIHRvdGFsV2lkdGgpLmF0dHIoXCJoZWlnaHRcIiwgdG90YWxIZWlnaHQpO1xuICBpZiAobm9kZS5wcm9wcykge1xuICAgIGNvbnN0IHByb3BLZXlzID0gbmV3IFNldChPYmplY3Qua2V5cyhub2RlLnByb3BzKSk7XG4gICAgaWYgKG5vZGUucHJvcHMuYm9yZGVycykge1xuICAgICAgYXBwbHlOb2RlUHJvcGVydHlCb3JkZXJzKHJlY3QyLCBub2RlLnByb3BzLmJvcmRlcnMsIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0KTtcbiAgICAgIHByb3BLZXlzLmRlbGV0ZShcImJvcmRlcnNcIik7XG4gICAgfVxuICAgIHByb3BLZXlzLmZvckVhY2goKHByb3BLZXkpID0+IHtcbiAgICAgIGxvZy53YXJuKGBVbmtub3duIG5vZGUgcHJvcGVydHkgJHtwcm9wS2V5fWApO1xuICAgIH0pO1xuICB9XG4gIHVwZGF0ZU5vZGVCb3VuZHMobm9kZSwgcmVjdDIpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50Mikge1xuICAgIHJldHVybiBpbnRlcnNlY3QucmVjdChub2RlLCBwb2ludDIpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3QgbGFiZWxSZWN0ID0gYXN5bmMgKHBhcmVudCwgbm9kZSkgPT4ge1xuICBjb25zdCB7IHNoYXBlU3ZnIH0gPSBhd2FpdCBsYWJlbEhlbHBlcihwYXJlbnQsIG5vZGUsIFwibGFiZWxcIiwgdHJ1ZSk7XG4gIGxvZy50cmFjZShcIkNsYXNzZXMgPSBcIiwgbm9kZS5jbGFzcyk7XG4gIGNvbnN0IHJlY3QyID0gc2hhcGVTdmcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKTtcbiAgY29uc3QgdG90YWxXaWR0aCA9IDA7XG4gIGNvbnN0IHRvdGFsSGVpZ2h0ID0gMDtcbiAgcmVjdDIuYXR0cihcIndpZHRoXCIsIHRvdGFsV2lkdGgpLmF0dHIoXCJoZWlnaHRcIiwgdG90YWxIZWlnaHQpO1xuICBzaGFwZVN2Zy5hdHRyKFwiY2xhc3NcIiwgXCJsYWJlbCBlZGdlTGFiZWxcIik7XG4gIGlmIChub2RlLnByb3BzKSB7XG4gICAgY29uc3QgcHJvcEtleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKG5vZGUucHJvcHMpKTtcbiAgICBpZiAobm9kZS5wcm9wcy5ib3JkZXJzKSB7XG4gICAgICBhcHBseU5vZGVQcm9wZXJ0eUJvcmRlcnMocmVjdDIsIG5vZGUucHJvcHMuYm9yZGVycywgdG90YWxXaWR0aCwgdG90YWxIZWlnaHQpO1xuICAgICAgcHJvcEtleXMuZGVsZXRlKFwiYm9yZGVyc1wiKTtcbiAgICB9XG4gICAgcHJvcEtleXMuZm9yRWFjaCgocHJvcEtleSkgPT4ge1xuICAgICAgbG9nLndhcm4oYFVua25vd24gbm9kZSBwcm9wZXJ0eSAke3Byb3BLZXl9YCk7XG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlTm9kZUJvdW5kcyhub2RlLCByZWN0Mik7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgcmV0dXJuIGludGVyc2VjdC5yZWN0KG5vZGUsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5mdW5jdGlvbiBhcHBseU5vZGVQcm9wZXJ0eUJvcmRlcnMocmVjdDIsIGJvcmRlcnMsIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0KSB7XG4gIGNvbnN0IHN0cm9rZURhc2hBcnJheSA9IFtdO1xuICBjb25zdCBhZGRCb3JkZXIgPSAobGVuZ3RoKSA9PiB7XG4gICAgc3Ryb2tlRGFzaEFycmF5LnB1c2gobGVuZ3RoLCAwKTtcbiAgfTtcbiAgY29uc3Qgc2tpcEJvcmRlciA9IChsZW5ndGgpID0+IHtcbiAgICBzdHJva2VEYXNoQXJyYXkucHVzaCgwLCBsZW5ndGgpO1xuICB9O1xuICBpZiAoYm9yZGVycy5pbmNsdWRlcyhcInRcIikpIHtcbiAgICBsb2cuZGVidWcoXCJhZGQgdG9wIGJvcmRlclwiKTtcbiAgICBhZGRCb3JkZXIodG90YWxXaWR0aCk7XG4gIH0gZWxzZSB7XG4gICAgc2tpcEJvcmRlcih0b3RhbFdpZHRoKTtcbiAgfVxuICBpZiAoYm9yZGVycy5pbmNsdWRlcyhcInJcIikpIHtcbiAgICBsb2cuZGVidWcoXCJhZGQgcmlnaHQgYm9yZGVyXCIpO1xuICAgIGFkZEJvcmRlcih0b3RhbEhlaWdodCk7XG4gIH0gZWxzZSB7XG4gICAgc2tpcEJvcmRlcih0b3RhbEhlaWdodCk7XG4gIH1cbiAgaWYgKGJvcmRlcnMuaW5jbHVkZXMoXCJiXCIpKSB7XG4gICAgbG9nLmRlYnVnKFwiYWRkIGJvdHRvbSBib3JkZXJcIik7XG4gICAgYWRkQm9yZGVyKHRvdGFsV2lkdGgpO1xuICB9IGVsc2Uge1xuICAgIHNraXBCb3JkZXIodG90YWxXaWR0aCk7XG4gIH1cbiAgaWYgKGJvcmRlcnMuaW5jbHVkZXMoXCJsXCIpKSB7XG4gICAgbG9nLmRlYnVnKFwiYWRkIGxlZnQgYm9yZGVyXCIpO1xuICAgIGFkZEJvcmRlcih0b3RhbEhlaWdodCk7XG4gIH0gZWxzZSB7XG4gICAgc2tpcEJvcmRlcih0b3RhbEhlaWdodCk7XG4gIH1cbiAgcmVjdDIuYXR0cihcInN0cm9rZS1kYXNoYXJyYXlcIiwgc3Ryb2tlRGFzaEFycmF5LmpvaW4oXCIgXCIpKTtcbn1cbmNvbnN0IHJlY3RXaXRoVGl0bGUgPSAocGFyZW50LCBub2RlKSA9PiB7XG4gIGxldCBjbGFzc2VzO1xuICBpZiAoIW5vZGUuY2xhc3Nlcykge1xuICAgIGNsYXNzZXMgPSBcIm5vZGUgZGVmYXVsdFwiO1xuICB9IGVsc2Uge1xuICAgIGNsYXNzZXMgPSBcIm5vZGUgXCIgKyBub2RlLmNsYXNzZXM7XG4gIH1cbiAgY29uc3Qgc2hhcGVTdmcgPSBwYXJlbnQuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgY2xhc3NlcykuYXR0cihcImlkXCIsIG5vZGUuZG9tSWQgfHwgbm9kZS5pZCk7XG4gIGNvbnN0IHJlY3QyID0gc2hhcGVTdmcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKTtcbiAgY29uc3QgaW5uZXJMaW5lID0gc2hhcGVTdmcuaW5zZXJ0KFwibGluZVwiKTtcbiAgY29uc3QgbGFiZWwgPSBzaGFwZVN2Zy5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImxhYmVsXCIpO1xuICBjb25zdCB0ZXh0MiA9IG5vZGUubGFiZWxUZXh0LmZsYXQgPyBub2RlLmxhYmVsVGV4dC5mbGF0KCkgOiBub2RlLmxhYmVsVGV4dDtcbiAgbGV0IHRpdGxlID0gXCJcIjtcbiAgaWYgKHR5cGVvZiB0ZXh0MiA9PT0gXCJvYmplY3RcIikge1xuICAgIHRpdGxlID0gdGV4dDJbMF07XG4gIH0gZWxzZSB7XG4gICAgdGl0bGUgPSB0ZXh0MjtcbiAgfVxuICBsb2cuaW5mbyhcIkxhYmVsIHRleHQgYWJjNzlcIiwgdGl0bGUsIHRleHQyLCB0eXBlb2YgdGV4dDIgPT09IFwib2JqZWN0XCIpO1xuICBjb25zdCB0ZXh0ID0gbGFiZWwubm9kZSgpLmFwcGVuZENoaWxkKGNyZWF0ZUxhYmVsJDEodGl0bGUsIG5vZGUubGFiZWxTdHlsZSwgdHJ1ZSwgdHJ1ZSkpO1xuICBsZXQgYmJveCA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xuICBpZiAoZXZhbHVhdGUoZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMpKSB7XG4gICAgY29uc3QgZGl2ID0gdGV4dC5jaGlsZHJlblswXTtcbiAgICBjb25zdCBkdiA9IHNlbGVjdCh0ZXh0KTtcbiAgICBiYm94ID0gZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGR2LmF0dHIoXCJ3aWR0aFwiLCBiYm94LndpZHRoKTtcbiAgICBkdi5hdHRyKFwiaGVpZ2h0XCIsIGJib3guaGVpZ2h0KTtcbiAgfVxuICBsb2cuaW5mbyhcIlRleHQgMlwiLCB0ZXh0Mik7XG4gIGNvbnN0IHRleHRSb3dzID0gdGV4dDIuc2xpY2UoMSwgdGV4dDIubGVuZ3RoKTtcbiAgbGV0IHRpdGxlQm94ID0gdGV4dC5nZXRCQm94KCk7XG4gIGNvbnN0IGRlc2NyID0gbGFiZWwubm9kZSgpLmFwcGVuZENoaWxkKFxuICAgIGNyZWF0ZUxhYmVsJDEodGV4dFJvd3Muam9pbiA/IHRleHRSb3dzLmpvaW4oXCI8YnIvPlwiKSA6IHRleHRSb3dzLCBub2RlLmxhYmVsU3R5bGUsIHRydWUsIHRydWUpXG4gICk7XG4gIGlmIChldmFsdWF0ZShnZXRDb25maWcoKS5mbG93Y2hhcnQuaHRtbExhYmVscykpIHtcbiAgICBjb25zdCBkaXYgPSBkZXNjci5jaGlsZHJlblswXTtcbiAgICBjb25zdCBkdiA9IHNlbGVjdChkZXNjcik7XG4gICAgYmJveCA9IGRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBkdi5hdHRyKFwid2lkdGhcIiwgYmJveC53aWR0aCk7XG4gICAgZHYuYXR0cihcImhlaWdodFwiLCBiYm94LmhlaWdodCk7XG4gIH1cbiAgY29uc3QgaGFsZlBhZGRpbmcgPSBub2RlLnBhZGRpbmcgLyAyO1xuICBzZWxlY3QoZGVzY3IpLmF0dHIoXG4gICAgXCJ0cmFuc2Zvcm1cIixcbiAgICBcInRyYW5zbGF0ZSggXCIgKyAvLyAodGl0bGVCb3gud2lkdGggLSBiYm94LndpZHRoKSAvIDIgK1xuICAgIChiYm94LndpZHRoID4gdGl0bGVCb3gud2lkdGggPyAwIDogKHRpdGxlQm94LndpZHRoIC0gYmJveC53aWR0aCkgLyAyKSArIFwiLCBcIiArICh0aXRsZUJveC5oZWlnaHQgKyBoYWxmUGFkZGluZyArIDUpICsgXCIpXCJcbiAgKTtcbiAgc2VsZWN0KHRleHQpLmF0dHIoXG4gICAgXCJ0cmFuc2Zvcm1cIixcbiAgICBcInRyYW5zbGF0ZSggXCIgKyAvLyAodGl0bGVCb3gud2lkdGggLSBiYm94LndpZHRoKSAvIDIgK1xuICAgIChiYm94LndpZHRoIDwgdGl0bGVCb3gud2lkdGggPyAwIDogLSh0aXRsZUJveC53aWR0aCAtIGJib3gud2lkdGgpIC8gMikgKyBcIiwgMClcIlxuICApO1xuICBiYm94ID0gbGFiZWwubm9kZSgpLmdldEJCb3goKTtcbiAgbGFiZWwuYXR0cihcbiAgICBcInRyYW5zZm9ybVwiLFxuICAgIFwidHJhbnNsYXRlKFwiICsgLWJib3gud2lkdGggLyAyICsgXCIsIFwiICsgKC1iYm94LmhlaWdodCAvIDIgLSBoYWxmUGFkZGluZyArIDMpICsgXCIpXCJcbiAgKTtcbiAgcmVjdDIuYXR0cihcImNsYXNzXCIsIFwib3V0ZXIgdGl0bGUtc3RhdGVcIikuYXR0cihcInhcIiwgLWJib3gud2lkdGggLyAyIC0gaGFsZlBhZGRpbmcpLmF0dHIoXCJ5XCIsIC1iYm94LmhlaWdodCAvIDIgLSBoYWxmUGFkZGluZykuYXR0cihcIndpZHRoXCIsIGJib3gud2lkdGggKyBub2RlLnBhZGRpbmcpLmF0dHIoXCJoZWlnaHRcIiwgYmJveC5oZWlnaHQgKyBub2RlLnBhZGRpbmcpO1xuICBpbm5lckxpbmUuYXR0cihcImNsYXNzXCIsIFwiZGl2aWRlclwiKS5hdHRyKFwieDFcIiwgLWJib3gud2lkdGggLyAyIC0gaGFsZlBhZGRpbmcpLmF0dHIoXCJ4MlwiLCBiYm94LndpZHRoIC8gMiArIGhhbGZQYWRkaW5nKS5hdHRyKFwieTFcIiwgLWJib3guaGVpZ2h0IC8gMiAtIGhhbGZQYWRkaW5nICsgdGl0bGVCb3guaGVpZ2h0ICsgaGFsZlBhZGRpbmcpLmF0dHIoXCJ5MlwiLCAtYmJveC5oZWlnaHQgLyAyIC0gaGFsZlBhZGRpbmcgKyB0aXRsZUJveC5oZWlnaHQgKyBoYWxmUGFkZGluZyk7XG4gIHVwZGF0ZU5vZGVCb3VuZHMobm9kZSwgcmVjdDIpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50Mikge1xuICAgIHJldHVybiBpbnRlcnNlY3QucmVjdChub2RlLCBwb2ludDIpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3Qgc3RhZGl1bSA9IGFzeW5jIChwYXJlbnQsIG5vZGUpID0+IHtcbiAgY29uc3QgeyBzaGFwZVN2ZywgYmJveCB9ID0gYXdhaXQgbGFiZWxIZWxwZXIoXG4gICAgcGFyZW50LFxuICAgIG5vZGUsXG4gICAgZ2V0Q2xhc3Nlc0Zyb21Ob2RlKG5vZGUsIHZvaWQgMCksXG4gICAgdHJ1ZVxuICApO1xuICBjb25zdCBoID0gYmJveC5oZWlnaHQgKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IHcgPSBiYm94LndpZHRoICsgaCAvIDQgKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IHJlY3QyID0gc2hhcGVTdmcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKS5hdHRyKFwic3R5bGVcIiwgbm9kZS5zdHlsZSkuYXR0cihcInJ4XCIsIGggLyAyKS5hdHRyKFwicnlcIiwgaCAvIDIpLmF0dHIoXCJ4XCIsIC13IC8gMikuYXR0cihcInlcIiwgLWggLyAyKS5hdHRyKFwid2lkdGhcIiwgdykuYXR0cihcImhlaWdodFwiLCBoKTtcbiAgdXBkYXRlTm9kZUJvdW5kcyhub2RlLCByZWN0Mik7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgcmV0dXJuIGludGVyc2VjdC5yZWN0KG5vZGUsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5jb25zdCBjaXJjbGUgPSBhc3luYyAocGFyZW50LCBub2RlKSA9PiB7XG4gIGNvbnN0IHsgc2hhcGVTdmcsIGJib3gsIGhhbGZQYWRkaW5nIH0gPSBhd2FpdCBsYWJlbEhlbHBlcihcbiAgICBwYXJlbnQsXG4gICAgbm9kZSxcbiAgICBnZXRDbGFzc2VzRnJvbU5vZGUobm9kZSwgdm9pZCAwKSxcbiAgICB0cnVlXG4gICk7XG4gIGNvbnN0IGNpcmNsZTIgPSBzaGFwZVN2Zy5pbnNlcnQoXCJjaXJjbGVcIiwgXCI6Zmlyc3QtY2hpbGRcIik7XG4gIGNpcmNsZTIuYXR0cihcInN0eWxlXCIsIG5vZGUuc3R5bGUpLmF0dHIoXCJyeFwiLCBub2RlLnJ4KS5hdHRyKFwicnlcIiwgbm9kZS5yeSkuYXR0cihcInJcIiwgYmJveC53aWR0aCAvIDIgKyBoYWxmUGFkZGluZykuYXR0cihcIndpZHRoXCIsIGJib3gud2lkdGggKyBub2RlLnBhZGRpbmcpLmF0dHIoXCJoZWlnaHRcIiwgYmJveC5oZWlnaHQgKyBub2RlLnBhZGRpbmcpO1xuICBsb2cuaW5mbyhcIkNpcmNsZSBtYWluXCIpO1xuICB1cGRhdGVOb2RlQm91bmRzKG5vZGUsIGNpcmNsZTIpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50Mikge1xuICAgIGxvZy5pbmZvKFwiQ2lyY2xlIGludGVyc2VjdFwiLCBub2RlLCBiYm94LndpZHRoIC8gMiArIGhhbGZQYWRkaW5nLCBwb2ludDIpO1xuICAgIHJldHVybiBpbnRlcnNlY3QuY2lyY2xlKG5vZGUsIGJib3gud2lkdGggLyAyICsgaGFsZlBhZGRpbmcsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5jb25zdCBkb3VibGVjaXJjbGUgPSBhc3luYyAocGFyZW50LCBub2RlKSA9PiB7XG4gIGNvbnN0IHsgc2hhcGVTdmcsIGJib3gsIGhhbGZQYWRkaW5nIH0gPSBhd2FpdCBsYWJlbEhlbHBlcihcbiAgICBwYXJlbnQsXG4gICAgbm9kZSxcbiAgICBnZXRDbGFzc2VzRnJvbU5vZGUobm9kZSwgdm9pZCAwKSxcbiAgICB0cnVlXG4gICk7XG4gIGNvbnN0IGdhcCA9IDU7XG4gIGNvbnN0IGNpcmNsZUdyb3VwID0gc2hhcGVTdmcuaW5zZXJ0KFwiZ1wiLCBcIjpmaXJzdC1jaGlsZFwiKTtcbiAgY29uc3Qgb3V0ZXJDaXJjbGUgPSBjaXJjbGVHcm91cC5pbnNlcnQoXCJjaXJjbGVcIik7XG4gIGNvbnN0IGlubmVyQ2lyY2xlID0gY2lyY2xlR3JvdXAuaW5zZXJ0KFwiY2lyY2xlXCIpO1xuICBjaXJjbGVHcm91cC5hdHRyKFwiY2xhc3NcIiwgbm9kZS5jbGFzcyk7XG4gIG91dGVyQ2lyY2xlLmF0dHIoXCJzdHlsZVwiLCBub2RlLnN0eWxlKS5hdHRyKFwicnhcIiwgbm9kZS5yeCkuYXR0cihcInJ5XCIsIG5vZGUucnkpLmF0dHIoXCJyXCIsIGJib3gud2lkdGggLyAyICsgaGFsZlBhZGRpbmcgKyBnYXApLmF0dHIoXCJ3aWR0aFwiLCBiYm94LndpZHRoICsgbm9kZS5wYWRkaW5nICsgZ2FwICogMikuYXR0cihcImhlaWdodFwiLCBiYm94LmhlaWdodCArIG5vZGUucGFkZGluZyArIGdhcCAqIDIpO1xuICBpbm5lckNpcmNsZS5hdHRyKFwic3R5bGVcIiwgbm9kZS5zdHlsZSkuYXR0cihcInJ4XCIsIG5vZGUucngpLmF0dHIoXCJyeVwiLCBub2RlLnJ5KS5hdHRyKFwiclwiLCBiYm94LndpZHRoIC8gMiArIGhhbGZQYWRkaW5nKS5hdHRyKFwid2lkdGhcIiwgYmJveC53aWR0aCArIG5vZGUucGFkZGluZykuYXR0cihcImhlaWdodFwiLCBiYm94LmhlaWdodCArIG5vZGUucGFkZGluZyk7XG4gIGxvZy5pbmZvKFwiRG91YmxlQ2lyY2xlIG1haW5cIik7XG4gIHVwZGF0ZU5vZGVCb3VuZHMobm9kZSwgb3V0ZXJDaXJjbGUpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50Mikge1xuICAgIGxvZy5pbmZvKFwiRG91YmxlQ2lyY2xlIGludGVyc2VjdFwiLCBub2RlLCBiYm94LndpZHRoIC8gMiArIGhhbGZQYWRkaW5nICsgZ2FwLCBwb2ludDIpO1xuICAgIHJldHVybiBpbnRlcnNlY3QuY2lyY2xlKG5vZGUsIGJib3gud2lkdGggLyAyICsgaGFsZlBhZGRpbmcgKyBnYXAsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5jb25zdCBzdWJyb3V0aW5lID0gYXN5bmMgKHBhcmVudCwgbm9kZSkgPT4ge1xuICBjb25zdCB7IHNoYXBlU3ZnLCBiYm94IH0gPSBhd2FpdCBsYWJlbEhlbHBlcihcbiAgICBwYXJlbnQsXG4gICAgbm9kZSxcbiAgICBnZXRDbGFzc2VzRnJvbU5vZGUobm9kZSwgdm9pZCAwKSxcbiAgICB0cnVlXG4gICk7XG4gIGNvbnN0IHcgPSBiYm94LndpZHRoICsgbm9kZS5wYWRkaW5nO1xuICBjb25zdCBoID0gYmJveC5oZWlnaHQgKyBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IHBvaW50cyA9IFtcbiAgICB7IHg6IDAsIHk6IDAgfSxcbiAgICB7IHg6IHcsIHk6IDAgfSxcbiAgICB7IHg6IHcsIHk6IC1oIH0sXG4gICAgeyB4OiAwLCB5OiAtaCB9LFxuICAgIHsgeDogMCwgeTogMCB9LFxuICAgIHsgeDogLTgsIHk6IDAgfSxcbiAgICB7IHg6IHcgKyA4LCB5OiAwIH0sXG4gICAgeyB4OiB3ICsgOCwgeTogLWggfSxcbiAgICB7IHg6IC04LCB5OiAtaCB9LFxuICAgIHsgeDogLTgsIHk6IDAgfVxuICBdO1xuICBjb25zdCBlbCA9IGluc2VydFBvbHlnb25TaGFwZShzaGFwZVN2ZywgdywgaCwgcG9pbnRzKTtcbiAgZWwuYXR0cihcInN0eWxlXCIsIG5vZGUuc3R5bGUpO1xuICB1cGRhdGVOb2RlQm91bmRzKG5vZGUsIGVsKTtcbiAgbm9kZS5pbnRlcnNlY3QgPSBmdW5jdGlvbihwb2ludDIpIHtcbiAgICByZXR1cm4gaW50ZXJzZWN0LnBvbHlnb24obm9kZSwgcG9pbnRzLCBwb2ludDIpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3Qgc3RhcnQgPSAocGFyZW50LCBub2RlKSA9PiB7XG4gIGNvbnN0IHNoYXBlU3ZnID0gcGFyZW50Lmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwibm9kZSBkZWZhdWx0XCIpLmF0dHIoXCJpZFwiLCBub2RlLmRvbUlkIHx8IG5vZGUuaWQpO1xuICBjb25zdCBjaXJjbGUyID0gc2hhcGVTdmcuaW5zZXJ0KFwiY2lyY2xlXCIsIFwiOmZpcnN0LWNoaWxkXCIpO1xuICBjaXJjbGUyLmF0dHIoXCJjbGFzc1wiLCBcInN0YXRlLXN0YXJ0XCIpLmF0dHIoXCJyXCIsIDcpLmF0dHIoXCJ3aWR0aFwiLCAxNCkuYXR0cihcImhlaWdodFwiLCAxNCk7XG4gIHVwZGF0ZU5vZGVCb3VuZHMobm9kZSwgY2lyY2xlMik7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgcmV0dXJuIGludGVyc2VjdC5jaXJjbGUobm9kZSwgNywgcG9pbnQyKTtcbiAgfTtcbiAgcmV0dXJuIHNoYXBlU3ZnO1xufTtcbmNvbnN0IGZvcmtKb2luID0gKHBhcmVudCwgbm9kZSwgZGlyKSA9PiB7XG4gIGNvbnN0IHNoYXBlU3ZnID0gcGFyZW50Lmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwibm9kZSBkZWZhdWx0XCIpLmF0dHIoXCJpZFwiLCBub2RlLmRvbUlkIHx8IG5vZGUuaWQpO1xuICBsZXQgd2lkdGggPSA3MDtcbiAgbGV0IGhlaWdodCA9IDEwO1xuICBpZiAoZGlyID09PSBcIkxSXCIpIHtcbiAgICB3aWR0aCA9IDEwO1xuICAgIGhlaWdodCA9IDcwO1xuICB9XG4gIGNvbnN0IHNoYXBlID0gc2hhcGVTdmcuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwieFwiLCAtMSAqIHdpZHRoIC8gMikuYXR0cihcInlcIiwgLTEgKiBoZWlnaHQgLyAyKS5hdHRyKFwid2lkdGhcIiwgd2lkdGgpLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KS5hdHRyKFwiY2xhc3NcIiwgXCJmb3JrLWpvaW5cIik7XG4gIHVwZGF0ZU5vZGVCb3VuZHMobm9kZSwgc2hhcGUpO1xuICBub2RlLmhlaWdodCA9IG5vZGUuaGVpZ2h0ICsgbm9kZS5wYWRkaW5nIC8gMjtcbiAgbm9kZS53aWR0aCA9IG5vZGUud2lkdGggKyBub2RlLnBhZGRpbmcgLyAyO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50Mikge1xuICAgIHJldHVybiBpbnRlcnNlY3QucmVjdChub2RlLCBwb2ludDIpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3QgZW5kID0gKHBhcmVudCwgbm9kZSkgPT4ge1xuICBjb25zdCBzaGFwZVN2ZyA9IHBhcmVudC5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm5vZGUgZGVmYXVsdFwiKS5hdHRyKFwiaWRcIiwgbm9kZS5kb21JZCB8fCBub2RlLmlkKTtcbiAgY29uc3QgaW5uZXJDaXJjbGUgPSBzaGFwZVN2Zy5pbnNlcnQoXCJjaXJjbGVcIiwgXCI6Zmlyc3QtY2hpbGRcIik7XG4gIGNvbnN0IGNpcmNsZTIgPSBzaGFwZVN2Zy5pbnNlcnQoXCJjaXJjbGVcIiwgXCI6Zmlyc3QtY2hpbGRcIik7XG4gIGNpcmNsZTIuYXR0cihcImNsYXNzXCIsIFwic3RhdGUtc3RhcnRcIikuYXR0cihcInJcIiwgNykuYXR0cihcIndpZHRoXCIsIDE0KS5hdHRyKFwiaGVpZ2h0XCIsIDE0KTtcbiAgaW5uZXJDaXJjbGUuYXR0cihcImNsYXNzXCIsIFwic3RhdGUtZW5kXCIpLmF0dHIoXCJyXCIsIDUpLmF0dHIoXCJ3aWR0aFwiLCAxMCkuYXR0cihcImhlaWdodFwiLCAxMCk7XG4gIHVwZGF0ZU5vZGVCb3VuZHMobm9kZSwgY2lyY2xlMik7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgcmV0dXJuIGludGVyc2VjdC5jaXJjbGUobm9kZSwgNywgcG9pbnQyKTtcbiAgfTtcbiAgcmV0dXJuIHNoYXBlU3ZnO1xufTtcbmNvbnN0IGNsYXNzX2JveCA9IChwYXJlbnQsIG5vZGUpID0+IHtcbiAgY29uc3QgaGFsZlBhZGRpbmcgPSBub2RlLnBhZGRpbmcgLyAyO1xuICBjb25zdCByb3dQYWRkaW5nID0gNDtcbiAgY29uc3QgbGluZUhlaWdodCA9IDg7XG4gIGxldCBjbGFzc2VzO1xuICBpZiAoIW5vZGUuY2xhc3Nlcykge1xuICAgIGNsYXNzZXMgPSBcIm5vZGUgZGVmYXVsdFwiO1xuICB9IGVsc2Uge1xuICAgIGNsYXNzZXMgPSBcIm5vZGUgXCIgKyBub2RlLmNsYXNzZXM7XG4gIH1cbiAgY29uc3Qgc2hhcGVTdmcgPSBwYXJlbnQuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgY2xhc3NlcykuYXR0cihcImlkXCIsIG5vZGUuZG9tSWQgfHwgbm9kZS5pZCk7XG4gIGNvbnN0IHJlY3QyID0gc2hhcGVTdmcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKTtcbiAgY29uc3QgdG9wTGluZSA9IHNoYXBlU3ZnLmluc2VydChcImxpbmVcIik7XG4gIGNvbnN0IGJvdHRvbUxpbmUgPSBzaGFwZVN2Zy5pbnNlcnQoXCJsaW5lXCIpO1xuICBsZXQgbWF4V2lkdGggPSAwO1xuICBsZXQgbWF4SGVpZ2h0ID0gcm93UGFkZGluZztcbiAgY29uc3QgbGFiZWxDb250YWluZXIgPSBzaGFwZVN2Zy5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImxhYmVsXCIpO1xuICBsZXQgdmVydGljYWxQb3MgPSAwO1xuICBjb25zdCBoYXNJbnRlcmZhY2UgPSBub2RlLmNsYXNzRGF0YS5hbm5vdGF0aW9ucyAmJiBub2RlLmNsYXNzRGF0YS5hbm5vdGF0aW9uc1swXTtcbiAgY29uc3QgaW50ZXJmYWNlTGFiZWxUZXh0ID0gbm9kZS5jbGFzc0RhdGEuYW5ub3RhdGlvbnNbMF0gPyBcIsKrXCIgKyBub2RlLmNsYXNzRGF0YS5hbm5vdGF0aW9uc1swXSArIFwiwrtcIiA6IFwiXCI7XG4gIGNvbnN0IGludGVyZmFjZUxhYmVsID0gbGFiZWxDb250YWluZXIubm9kZSgpLmFwcGVuZENoaWxkKGNyZWF0ZUxhYmVsJDEoaW50ZXJmYWNlTGFiZWxUZXh0LCBub2RlLmxhYmVsU3R5bGUsIHRydWUsIHRydWUpKTtcbiAgbGV0IGludGVyZmFjZUJCb3ggPSBpbnRlcmZhY2VMYWJlbC5nZXRCQm94KCk7XG4gIGlmIChldmFsdWF0ZShnZXRDb25maWcoKS5mbG93Y2hhcnQuaHRtbExhYmVscykpIHtcbiAgICBjb25zdCBkaXYgPSBpbnRlcmZhY2VMYWJlbC5jaGlsZHJlblswXTtcbiAgICBjb25zdCBkdiA9IHNlbGVjdChpbnRlcmZhY2VMYWJlbCk7XG4gICAgaW50ZXJmYWNlQkJveCA9IGRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBkdi5hdHRyKFwid2lkdGhcIiwgaW50ZXJmYWNlQkJveC53aWR0aCk7XG4gICAgZHYuYXR0cihcImhlaWdodFwiLCBpbnRlcmZhY2VCQm94LmhlaWdodCk7XG4gIH1cbiAgaWYgKG5vZGUuY2xhc3NEYXRhLmFubm90YXRpb25zWzBdKSB7XG4gICAgbWF4SGVpZ2h0ICs9IGludGVyZmFjZUJCb3guaGVpZ2h0ICsgcm93UGFkZGluZztcbiAgICBtYXhXaWR0aCArPSBpbnRlcmZhY2VCQm94LndpZHRoO1xuICB9XG4gIGxldCBjbGFzc1RpdGxlU3RyaW5nID0gbm9kZS5jbGFzc0RhdGEubGFiZWw7XG4gIGlmIChub2RlLmNsYXNzRGF0YS50eXBlICE9PSB2b2lkIDAgJiYgbm9kZS5jbGFzc0RhdGEudHlwZSAhPT0gXCJcIikge1xuICAgIGlmIChnZXRDb25maWcoKS5mbG93Y2hhcnQuaHRtbExhYmVscykge1xuICAgICAgY2xhc3NUaXRsZVN0cmluZyArPSBcIiZsdDtcIiArIG5vZGUuY2xhc3NEYXRhLnR5cGUgKyBcIiZndDtcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xhc3NUaXRsZVN0cmluZyArPSBcIjxcIiArIG5vZGUuY2xhc3NEYXRhLnR5cGUgKyBcIj5cIjtcbiAgICB9XG4gIH1cbiAgY29uc3QgY2xhc3NUaXRsZUxhYmVsID0gbGFiZWxDb250YWluZXIubm9kZSgpLmFwcGVuZENoaWxkKGNyZWF0ZUxhYmVsJDEoY2xhc3NUaXRsZVN0cmluZywgbm9kZS5sYWJlbFN0eWxlLCB0cnVlLCB0cnVlKSk7XG4gIHNlbGVjdChjbGFzc1RpdGxlTGFiZWwpLmF0dHIoXCJjbGFzc1wiLCBcImNsYXNzVGl0bGVcIik7XG4gIGxldCBjbGFzc1RpdGxlQkJveCA9IGNsYXNzVGl0bGVMYWJlbC5nZXRCQm94KCk7XG4gIGlmIChldmFsdWF0ZShnZXRDb25maWcoKS5mbG93Y2hhcnQuaHRtbExhYmVscykpIHtcbiAgICBjb25zdCBkaXYgPSBjbGFzc1RpdGxlTGFiZWwuY2hpbGRyZW5bMF07XG4gICAgY29uc3QgZHYgPSBzZWxlY3QoY2xhc3NUaXRsZUxhYmVsKTtcbiAgICBjbGFzc1RpdGxlQkJveCA9IGRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBkdi5hdHRyKFwid2lkdGhcIiwgY2xhc3NUaXRsZUJCb3gud2lkdGgpO1xuICAgIGR2LmF0dHIoXCJoZWlnaHRcIiwgY2xhc3NUaXRsZUJCb3guaGVpZ2h0KTtcbiAgfVxuICBtYXhIZWlnaHQgKz0gY2xhc3NUaXRsZUJCb3guaGVpZ2h0ICsgcm93UGFkZGluZztcbiAgaWYgKGNsYXNzVGl0bGVCQm94LndpZHRoID4gbWF4V2lkdGgpIHtcbiAgICBtYXhXaWR0aCA9IGNsYXNzVGl0bGVCQm94LndpZHRoO1xuICB9XG4gIGNvbnN0IGNsYXNzQXR0cmlidXRlcyA9IFtdO1xuICBub2RlLmNsYXNzRGF0YS5tZW1iZXJzLmZvckVhY2goKG1lbWJlcikgPT4ge1xuICAgIGNvbnN0IHBhcnNlZEluZm8gPSBtZW1iZXIuZ2V0RGlzcGxheURldGFpbHMoKTtcbiAgICBsZXQgcGFyc2VkVGV4dCA9IHBhcnNlZEluZm8uZGlzcGxheVRleHQ7XG4gICAgaWYgKGdldENvbmZpZygpLmZsb3djaGFydC5odG1sTGFiZWxzKSB7XG4gICAgICBwYXJzZWRUZXh0ID0gcGFyc2VkVGV4dC5yZXBsYWNlKC88L2csIFwiJmx0O1wiKS5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKTtcbiAgICB9XG4gICAgY29uc3QgbGJsID0gbGFiZWxDb250YWluZXIubm9kZSgpLmFwcGVuZENoaWxkKFxuICAgICAgY3JlYXRlTGFiZWwkMShcbiAgICAgICAgcGFyc2VkVGV4dCxcbiAgICAgICAgcGFyc2VkSW5mby5jc3NTdHlsZSA/IHBhcnNlZEluZm8uY3NzU3R5bGUgOiBub2RlLmxhYmVsU3R5bGUsXG4gICAgICAgIHRydWUsXG4gICAgICAgIHRydWVcbiAgICAgIClcbiAgICApO1xuICAgIGxldCBiYm94ID0gbGJsLmdldEJCb3goKTtcbiAgICBpZiAoZXZhbHVhdGUoZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMpKSB7XG4gICAgICBjb25zdCBkaXYgPSBsYmwuY2hpbGRyZW5bMF07XG4gICAgICBjb25zdCBkdiA9IHNlbGVjdChsYmwpO1xuICAgICAgYmJveCA9IGRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGR2LmF0dHIoXCJ3aWR0aFwiLCBiYm94LndpZHRoKTtcbiAgICAgIGR2LmF0dHIoXCJoZWlnaHRcIiwgYmJveC5oZWlnaHQpO1xuICAgIH1cbiAgICBpZiAoYmJveC53aWR0aCA+IG1heFdpZHRoKSB7XG4gICAgICBtYXhXaWR0aCA9IGJib3gud2lkdGg7XG4gICAgfVxuICAgIG1heEhlaWdodCArPSBiYm94LmhlaWdodCArIHJvd1BhZGRpbmc7XG4gICAgY2xhc3NBdHRyaWJ1dGVzLnB1c2gobGJsKTtcbiAgfSk7XG4gIG1heEhlaWdodCArPSBsaW5lSGVpZ2h0O1xuICBjb25zdCBjbGFzc01ldGhvZHMgPSBbXTtcbiAgbm9kZS5jbGFzc0RhdGEubWV0aG9kcy5mb3JFYWNoKChtZW1iZXIpID0+IHtcbiAgICBjb25zdCBwYXJzZWRJbmZvID0gbWVtYmVyLmdldERpc3BsYXlEZXRhaWxzKCk7XG4gICAgbGV0IGRpc3BsYXlUZXh0ID0gcGFyc2VkSW5mby5kaXNwbGF5VGV4dDtcbiAgICBpZiAoZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMpIHtcbiAgICAgIGRpc3BsYXlUZXh0ID0gZGlzcGxheVRleHQucmVwbGFjZSgvPC9nLCBcIiZsdDtcIikucmVwbGFjZSgvPi9nLCBcIiZndDtcIik7XG4gICAgfVxuICAgIGNvbnN0IGxibCA9IGxhYmVsQ29udGFpbmVyLm5vZGUoKS5hcHBlbmRDaGlsZChcbiAgICAgIGNyZWF0ZUxhYmVsJDEoXG4gICAgICAgIGRpc3BsYXlUZXh0LFxuICAgICAgICBwYXJzZWRJbmZvLmNzc1N0eWxlID8gcGFyc2VkSW5mby5jc3NTdHlsZSA6IG5vZGUubGFiZWxTdHlsZSxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKVxuICAgICk7XG4gICAgbGV0IGJib3ggPSBsYmwuZ2V0QkJveCgpO1xuICAgIGlmIChldmFsdWF0ZShnZXRDb25maWcoKS5mbG93Y2hhcnQuaHRtbExhYmVscykpIHtcbiAgICAgIGNvbnN0IGRpdiA9IGxibC5jaGlsZHJlblswXTtcbiAgICAgIGNvbnN0IGR2ID0gc2VsZWN0KGxibCk7XG4gICAgICBiYm94ID0gZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgZHYuYXR0cihcIndpZHRoXCIsIGJib3gud2lkdGgpO1xuICAgICAgZHYuYXR0cihcImhlaWdodFwiLCBiYm94LmhlaWdodCk7XG4gICAgfVxuICAgIGlmIChiYm94LndpZHRoID4gbWF4V2lkdGgpIHtcbiAgICAgIG1heFdpZHRoID0gYmJveC53aWR0aDtcbiAgICB9XG4gICAgbWF4SGVpZ2h0ICs9IGJib3guaGVpZ2h0ICsgcm93UGFkZGluZztcbiAgICBjbGFzc01ldGhvZHMucHVzaChsYmwpO1xuICB9KTtcbiAgbWF4SGVpZ2h0ICs9IGxpbmVIZWlnaHQ7XG4gIGlmIChoYXNJbnRlcmZhY2UpIHtcbiAgICBsZXQgZGlmZlgyID0gKG1heFdpZHRoIC0gaW50ZXJmYWNlQkJveC53aWR0aCkgLyAyO1xuICAgIHNlbGVjdChpbnRlcmZhY2VMYWJlbCkuYXR0cihcbiAgICAgIFwidHJhbnNmb3JtXCIsXG4gICAgICBcInRyYW5zbGF0ZSggXCIgKyAoLTEgKiBtYXhXaWR0aCAvIDIgKyBkaWZmWDIpICsgXCIsIFwiICsgLTEgKiBtYXhIZWlnaHQgLyAyICsgXCIpXCJcbiAgICApO1xuICAgIHZlcnRpY2FsUG9zID0gaW50ZXJmYWNlQkJveC5oZWlnaHQgKyByb3dQYWRkaW5nO1xuICB9XG4gIGxldCBkaWZmWCA9IChtYXhXaWR0aCAtIGNsYXNzVGl0bGVCQm94LndpZHRoKSAvIDI7XG4gIHNlbGVjdChjbGFzc1RpdGxlTGFiZWwpLmF0dHIoXG4gICAgXCJ0cmFuc2Zvcm1cIixcbiAgICBcInRyYW5zbGF0ZSggXCIgKyAoLTEgKiBtYXhXaWR0aCAvIDIgKyBkaWZmWCkgKyBcIiwgXCIgKyAoLTEgKiBtYXhIZWlnaHQgLyAyICsgdmVydGljYWxQb3MpICsgXCIpXCJcbiAgKTtcbiAgdmVydGljYWxQb3MgKz0gY2xhc3NUaXRsZUJCb3guaGVpZ2h0ICsgcm93UGFkZGluZztcbiAgdG9wTGluZS5hdHRyKFwiY2xhc3NcIiwgXCJkaXZpZGVyXCIpLmF0dHIoXCJ4MVwiLCAtbWF4V2lkdGggLyAyIC0gaGFsZlBhZGRpbmcpLmF0dHIoXCJ4MlwiLCBtYXhXaWR0aCAvIDIgKyBoYWxmUGFkZGluZykuYXR0cihcInkxXCIsIC1tYXhIZWlnaHQgLyAyIC0gaGFsZlBhZGRpbmcgKyBsaW5lSGVpZ2h0ICsgdmVydGljYWxQb3MpLmF0dHIoXCJ5MlwiLCAtbWF4SGVpZ2h0IC8gMiAtIGhhbGZQYWRkaW5nICsgbGluZUhlaWdodCArIHZlcnRpY2FsUG9zKTtcbiAgdmVydGljYWxQb3MgKz0gbGluZUhlaWdodDtcbiAgY2xhc3NBdHRyaWJ1dGVzLmZvckVhY2goKGxibCkgPT4ge1xuICAgIHNlbGVjdChsYmwpLmF0dHIoXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgXCJ0cmFuc2xhdGUoIFwiICsgLW1heFdpZHRoIC8gMiArIFwiLCBcIiArICgtMSAqIG1heEhlaWdodCAvIDIgKyB2ZXJ0aWNhbFBvcyArIGxpbmVIZWlnaHQgLyAyKSArIFwiKVwiXG4gICAgKTtcbiAgICBjb25zdCBtZW1iZXJCQm94ID0gbGJsID09IG51bGwgPyB2b2lkIDAgOiBsYmwuZ2V0QkJveCgpO1xuICAgIHZlcnRpY2FsUG9zICs9ICgobWVtYmVyQkJveCA9PSBudWxsID8gdm9pZCAwIDogbWVtYmVyQkJveC5oZWlnaHQpID8/IDApICsgcm93UGFkZGluZztcbiAgfSk7XG4gIHZlcnRpY2FsUG9zICs9IGxpbmVIZWlnaHQ7XG4gIGJvdHRvbUxpbmUuYXR0cihcImNsYXNzXCIsIFwiZGl2aWRlclwiKS5hdHRyKFwieDFcIiwgLW1heFdpZHRoIC8gMiAtIGhhbGZQYWRkaW5nKS5hdHRyKFwieDJcIiwgbWF4V2lkdGggLyAyICsgaGFsZlBhZGRpbmcpLmF0dHIoXCJ5MVwiLCAtbWF4SGVpZ2h0IC8gMiAtIGhhbGZQYWRkaW5nICsgbGluZUhlaWdodCArIHZlcnRpY2FsUG9zKS5hdHRyKFwieTJcIiwgLW1heEhlaWdodCAvIDIgLSBoYWxmUGFkZGluZyArIGxpbmVIZWlnaHQgKyB2ZXJ0aWNhbFBvcyk7XG4gIHZlcnRpY2FsUG9zICs9IGxpbmVIZWlnaHQ7XG4gIGNsYXNzTWV0aG9kcy5mb3JFYWNoKChsYmwpID0+IHtcbiAgICBzZWxlY3QobGJsKS5hdHRyKFxuICAgICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAgIFwidHJhbnNsYXRlKCBcIiArIC1tYXhXaWR0aCAvIDIgKyBcIiwgXCIgKyAoLTEgKiBtYXhIZWlnaHQgLyAyICsgdmVydGljYWxQb3MpICsgXCIpXCJcbiAgICApO1xuICAgIGNvbnN0IG1lbWJlckJCb3ggPSBsYmwgPT0gbnVsbCA/IHZvaWQgMCA6IGxibC5nZXRCQm94KCk7XG4gICAgdmVydGljYWxQb3MgKz0gKChtZW1iZXJCQm94ID09IG51bGwgPyB2b2lkIDAgOiBtZW1iZXJCQm94LmhlaWdodCkgPz8gMCkgKyByb3dQYWRkaW5nO1xuICB9KTtcbiAgcmVjdDIuYXR0cihcInN0eWxlXCIsIG5vZGUuc3R5bGUpLmF0dHIoXCJjbGFzc1wiLCBcIm91dGVyIHRpdGxlLXN0YXRlXCIpLmF0dHIoXCJ4XCIsIC1tYXhXaWR0aCAvIDIgLSBoYWxmUGFkZGluZykuYXR0cihcInlcIiwgLShtYXhIZWlnaHQgLyAyKSAtIGhhbGZQYWRkaW5nKS5hdHRyKFwid2lkdGhcIiwgbWF4V2lkdGggKyBub2RlLnBhZGRpbmcpLmF0dHIoXCJoZWlnaHRcIiwgbWF4SGVpZ2h0ICsgbm9kZS5wYWRkaW5nKTtcbiAgdXBkYXRlTm9kZUJvdW5kcyhub2RlLCByZWN0Mik7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQyKSB7XG4gICAgcmV0dXJuIGludGVyc2VjdC5yZWN0KG5vZGUsIHBvaW50Mik7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn07XG5jb25zdCBzaGFwZXMgPSB7XG4gIHJob21idXM6IHF1ZXN0aW9uLFxuICBjb21wb3NpdGUsXG4gIHF1ZXN0aW9uLFxuICByZWN0LFxuICBsYWJlbFJlY3QsXG4gIHJlY3RXaXRoVGl0bGUsXG4gIGNob2ljZSxcbiAgY2lyY2xlLFxuICBkb3VibGVjaXJjbGUsXG4gIHN0YWRpdW0sXG4gIGhleGFnb24sXG4gIGJsb2NrX2Fycm93LFxuICByZWN0X2xlZnRfaW52X2Fycm93LFxuICBsZWFuX3JpZ2h0LFxuICBsZWFuX2xlZnQsXG4gIHRyYXBlem9pZCxcbiAgaW52X3RyYXBlem9pZCxcbiAgcmVjdF9yaWdodF9pbnZfYXJyb3csXG4gIGN5bGluZGVyLFxuICBzdGFydCxcbiAgZW5kLFxuICBub3RlOiBub3RlJDEsXG4gIHN1YnJvdXRpbmUsXG4gIGZvcms6IGZvcmtKb2luLFxuICBqb2luOiBmb3JrSm9pbixcbiAgY2xhc3NfYm94XG59O1xubGV0IG5vZGVFbGVtcyA9IHt9O1xuY29uc3QgaW5zZXJ0Tm9kZSA9IGFzeW5jIChlbGVtLCBub2RlLCBkaXIpID0+IHtcbiAgbGV0IG5ld0VsO1xuICBsZXQgZWw7XG4gIGlmIChub2RlLmxpbmspIHtcbiAgICBsZXQgdGFyZ2V0O1xuICAgIGlmIChnZXRDb25maWcoKS5zZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIikge1xuICAgICAgdGFyZ2V0ID0gXCJfdG9wXCI7XG4gICAgfSBlbHNlIGlmIChub2RlLmxpbmtUYXJnZXQpIHtcbiAgICAgIHRhcmdldCA9IG5vZGUubGlua1RhcmdldCB8fCBcIl9ibGFua1wiO1xuICAgIH1cbiAgICBuZXdFbCA9IGVsZW0uaW5zZXJ0KFwic3ZnOmFcIikuYXR0cihcInhsaW5rOmhyZWZcIiwgbm9kZS5saW5rKS5hdHRyKFwidGFyZ2V0XCIsIHRhcmdldCk7XG4gICAgZWwgPSBhd2FpdCBzaGFwZXNbbm9kZS5zaGFwZV0obmV3RWwsIG5vZGUsIGRpcik7XG4gIH0gZWxzZSB7XG4gICAgZWwgPSBhd2FpdCBzaGFwZXNbbm9kZS5zaGFwZV0oZWxlbSwgbm9kZSwgZGlyKTtcbiAgICBuZXdFbCA9IGVsO1xuICB9XG4gIGlmIChub2RlLnRvb2x0aXApIHtcbiAgICBlbC5hdHRyKFwidGl0bGVcIiwgbm9kZS50b29sdGlwKTtcbiAgfVxuICBpZiAobm9kZS5jbGFzcykge1xuICAgIGVsLmF0dHIoXCJjbGFzc1wiLCBcIm5vZGUgZGVmYXVsdCBcIiArIG5vZGUuY2xhc3MpO1xuICB9XG4gIG5ld0VsLmF0dHIoXCJkYXRhLW5vZGVcIiwgXCJ0cnVlXCIpO1xuICBuZXdFbC5hdHRyKFwiZGF0YS1pZFwiLCBub2RlLmlkKTtcbiAgbm9kZUVsZW1zW25vZGUuaWRdID0gbmV3RWw7XG4gIGlmIChub2RlLmhhdmVDYWxsYmFjaykge1xuICAgIG5vZGVFbGVtc1tub2RlLmlkXS5hdHRyKFwiY2xhc3NcIiwgbm9kZUVsZW1zW25vZGUuaWRdLmF0dHIoXCJjbGFzc1wiKSArIFwiIGNsaWNrYWJsZVwiKTtcbiAgfVxuICByZXR1cm4gbmV3RWw7XG59O1xuY29uc3Qgc2V0Tm9kZUVsZW0gPSAoZWxlbSwgbm9kZSkgPT4ge1xuICBub2RlRWxlbXNbbm9kZS5pZF0gPSBlbGVtO1xufTtcbmNvbnN0IGNsZWFyJDEgPSAoKSA9PiB7XG4gIG5vZGVFbGVtcyA9IHt9O1xufTtcbmNvbnN0IHBvc2l0aW9uTm9kZSA9IChub2RlKSA9PiB7XG4gIGNvbnN0IGVsID0gbm9kZUVsZW1zW25vZGUuaWRdO1xuICBsb2cudHJhY2UoXG4gICAgXCJUcmFuc2Zvcm1pbmcgbm9kZVwiLFxuICAgIG5vZGUuZGlmZixcbiAgICBub2RlLFxuICAgIFwidHJhbnNsYXRlKFwiICsgKG5vZGUueCAtIG5vZGUud2lkdGggLyAyIC0gNSkgKyBcIiwgXCIgKyBub2RlLndpZHRoIC8gMiArIFwiKVwiXG4gICk7XG4gIGNvbnN0IHBhZGRpbmcgPSA4O1xuICBjb25zdCBkaWZmID0gbm9kZS5kaWZmIHx8IDA7XG4gIGlmIChub2RlLmNsdXN0ZXJOb2RlKSB7XG4gICAgZWwuYXR0cihcbiAgICAgIFwidHJhbnNmb3JtXCIsXG4gICAgICBcInRyYW5zbGF0ZShcIiArIChub2RlLnggKyBkaWZmIC0gbm9kZS53aWR0aCAvIDIpICsgXCIsIFwiICsgKG5vZGUueSAtIG5vZGUuaGVpZ2h0IC8gMiAtIHBhZGRpbmcpICsgXCIpXCJcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGVsLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyBub2RlLnggKyBcIiwgXCIgKyBub2RlLnkgKyBcIilcIik7XG4gIH1cbiAgcmV0dXJuIGRpZmY7XG59O1xuY29uc3QgZ2V0U3ViR3JhcGhUaXRsZU1hcmdpbnMgPSAoe1xuICBmbG93Y2hhcnRcbn0pID0+IHtcbiAgdmFyIF9hLCBfYjtcbiAgY29uc3Qgc3ViR3JhcGhUaXRsZVRvcE1hcmdpbiA9ICgoX2EgPSBmbG93Y2hhcnQgPT0gbnVsbCA/IHZvaWQgMCA6IGZsb3djaGFydC5zdWJHcmFwaFRpdGxlTWFyZ2luKSA9PSBudWxsID8gdm9pZCAwIDogX2EudG9wKSA/PyAwO1xuICBjb25zdCBzdWJHcmFwaFRpdGxlQm90dG9tTWFyZ2luID0gKChfYiA9IGZsb3djaGFydCA9PSBudWxsID8gdm9pZCAwIDogZmxvd2NoYXJ0LnN1YkdyYXBoVGl0bGVNYXJnaW4pID09IG51bGwgPyB2b2lkIDAgOiBfYi5ib3R0b20pID8/IDA7XG4gIGNvbnN0IHN1YkdyYXBoVGl0bGVUb3RhbE1hcmdpbiA9IHN1YkdyYXBoVGl0bGVUb3BNYXJnaW4gKyBzdWJHcmFwaFRpdGxlQm90dG9tTWFyZ2luO1xuICByZXR1cm4ge1xuICAgIHN1YkdyYXBoVGl0bGVUb3BNYXJnaW4sXG4gICAgc3ViR3JhcGhUaXRsZUJvdHRvbU1hcmdpbixcbiAgICBzdWJHcmFwaFRpdGxlVG90YWxNYXJnaW5cbiAgfTtcbn07XG5jb25zdCBtYXJrZXJPZmZzZXRzID0ge1xuICBhZ2dyZWdhdGlvbjogMTgsXG4gIGV4dGVuc2lvbjogMTgsXG4gIGNvbXBvc2l0aW9uOiAxOCxcbiAgZGVwZW5kZW5jeTogNixcbiAgbG9sbGlwb3A6IDEzLjUsXG4gIGFycm93X3BvaW50OiA1LjNcbn07XG5mdW5jdGlvbiBjYWxjdWxhdGVEZWx0YUFuZEFuZ2xlKHBvaW50MSwgcG9pbnQyKSB7XG4gIGlmIChwb2ludDEgPT09IHZvaWQgMCB8fCBwb2ludDIgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB7IGFuZ2xlOiAwLCBkZWx0YVg6IDAsIGRlbHRhWTogMCB9O1xuICB9XG4gIHBvaW50MSA9IHBvaW50VHJhbnNmb3JtZXIocG9pbnQxKTtcbiAgcG9pbnQyID0gcG9pbnRUcmFuc2Zvcm1lcihwb2ludDIpO1xuICBjb25zdCBbeDEsIHkxXSA9IFtwb2ludDEueCwgcG9pbnQxLnldO1xuICBjb25zdCBbeDIsIHkyXSA9IFtwb2ludDIueCwgcG9pbnQyLnldO1xuICBjb25zdCBkZWx0YVggPSB4MiAtIHgxO1xuICBjb25zdCBkZWx0YVkgPSB5MiAtIHkxO1xuICByZXR1cm4geyBhbmdsZTogTWF0aC5hdGFuKGRlbHRhWSAvIGRlbHRhWCksIGRlbHRhWCwgZGVsdGFZIH07XG59XG5jb25zdCBwb2ludFRyYW5zZm9ybWVyID0gKGRhdGEpID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICByZXR1cm4geyB4OiBkYXRhWzBdLCB5OiBkYXRhWzFdIH07XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59O1xuY29uc3QgZ2V0TGluZUZ1bmN0aW9uc1dpdGhPZmZzZXQgPSAoZWRnZSkgPT4ge1xuICByZXR1cm4ge1xuICAgIHg6IGZ1bmN0aW9uKGQsIGksIGRhdGEpIHtcbiAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgaWYgKGkgPT09IDAgJiYgT2JqZWN0Lmhhc093bihtYXJrZXJPZmZzZXRzLCBlZGdlLmFycm93VHlwZVN0YXJ0KSkge1xuICAgICAgICBjb25zdCB7IGFuZ2xlLCBkZWx0YVggfSA9IGNhbGN1bGF0ZURlbHRhQW5kQW5nbGUoZGF0YVswXSwgZGF0YVsxXSk7XG4gICAgICAgIG9mZnNldCA9IG1hcmtlck9mZnNldHNbZWRnZS5hcnJvd1R5cGVTdGFydF0gKiBNYXRoLmNvcyhhbmdsZSkgKiAoZGVsdGFYID49IDAgPyAxIDogLTEpO1xuICAgICAgfSBlbHNlIGlmIChpID09PSBkYXRhLmxlbmd0aCAtIDEgJiYgT2JqZWN0Lmhhc093bihtYXJrZXJPZmZzZXRzLCBlZGdlLmFycm93VHlwZUVuZCkpIHtcbiAgICAgICAgY29uc3QgeyBhbmdsZSwgZGVsdGFYIH0gPSBjYWxjdWxhdGVEZWx0YUFuZEFuZ2xlKFxuICAgICAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXSxcbiAgICAgICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMl1cbiAgICAgICAgKTtcbiAgICAgICAgb2Zmc2V0ID0gbWFya2VyT2Zmc2V0c1tlZGdlLmFycm93VHlwZUVuZF0gKiBNYXRoLmNvcyhhbmdsZSkgKiAoZGVsdGFYID49IDAgPyAxIDogLTEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBvaW50VHJhbnNmb3JtZXIoZCkueCArIG9mZnNldDtcbiAgICB9LFxuICAgIHk6IGZ1bmN0aW9uKGQsIGksIGRhdGEpIHtcbiAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgaWYgKGkgPT09IDAgJiYgT2JqZWN0Lmhhc093bihtYXJrZXJPZmZzZXRzLCBlZGdlLmFycm93VHlwZVN0YXJ0KSkge1xuICAgICAgICBjb25zdCB7IGFuZ2xlLCBkZWx0YVkgfSA9IGNhbGN1bGF0ZURlbHRhQW5kQW5nbGUoZGF0YVswXSwgZGF0YVsxXSk7XG4gICAgICAgIG9mZnNldCA9IG1hcmtlck9mZnNldHNbZWRnZS5hcnJvd1R5cGVTdGFydF0gKiBNYXRoLmFicyhNYXRoLnNpbihhbmdsZSkpICogKGRlbHRhWSA+PSAwID8gMSA6IC0xKTtcbiAgICAgIH0gZWxzZSBpZiAoaSA9PT0gZGF0YS5sZW5ndGggLSAxICYmIE9iamVjdC5oYXNPd24obWFya2VyT2Zmc2V0cywgZWRnZS5hcnJvd1R5cGVFbmQpKSB7XG4gICAgICAgIGNvbnN0IHsgYW5nbGUsIGRlbHRhWSB9ID0gY2FsY3VsYXRlRGVsdGFBbmRBbmdsZShcbiAgICAgICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0sXG4gICAgICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDJdXG4gICAgICAgICk7XG4gICAgICAgIG9mZnNldCA9IG1hcmtlck9mZnNldHNbZWRnZS5hcnJvd1R5cGVFbmRdICogTWF0aC5hYnMoTWF0aC5zaW4oYW5nbGUpKSAqIChkZWx0YVkgPj0gMCA/IDEgOiAtMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcG9pbnRUcmFuc2Zvcm1lcihkKS55ICsgb2Zmc2V0O1xuICAgIH1cbiAgfTtcbn07XG5jb25zdCBhZGRFZGdlTWFya2VycyA9IChzdmdQYXRoLCBlZGdlLCB1cmwsIGlkLCBkaWFncmFtVHlwZSkgPT4ge1xuICBpZiAoZWRnZS5hcnJvd1R5cGVTdGFydCkge1xuICAgIGFkZEVkZ2VNYXJrZXIoc3ZnUGF0aCwgXCJzdGFydFwiLCBlZGdlLmFycm93VHlwZVN0YXJ0LCB1cmwsIGlkLCBkaWFncmFtVHlwZSk7XG4gIH1cbiAgaWYgKGVkZ2UuYXJyb3dUeXBlRW5kKSB7XG4gICAgYWRkRWRnZU1hcmtlcihzdmdQYXRoLCBcImVuZFwiLCBlZGdlLmFycm93VHlwZUVuZCwgdXJsLCBpZCwgZGlhZ3JhbVR5cGUpO1xuICB9XG59O1xuY29uc3QgYXJyb3dUeXBlc01hcCA9IHtcbiAgYXJyb3dfY3Jvc3M6IFwiY3Jvc3NcIixcbiAgYXJyb3dfcG9pbnQ6IFwicG9pbnRcIixcbiAgYXJyb3dfYmFyYjogXCJiYXJiXCIsXG4gIGFycm93X2NpcmNsZTogXCJjaXJjbGVcIixcbiAgYWdncmVnYXRpb246IFwiYWdncmVnYXRpb25cIixcbiAgZXh0ZW5zaW9uOiBcImV4dGVuc2lvblwiLFxuICBjb21wb3NpdGlvbjogXCJjb21wb3NpdGlvblwiLFxuICBkZXBlbmRlbmN5OiBcImRlcGVuZGVuY3lcIixcbiAgbG9sbGlwb3A6IFwibG9sbGlwb3BcIlxufTtcbmNvbnN0IGFkZEVkZ2VNYXJrZXIgPSAoc3ZnUGF0aCwgcG9zaXRpb24sIGFycm93VHlwZSwgdXJsLCBpZCwgZGlhZ3JhbVR5cGUpID0+IHtcbiAgY29uc3QgZW5kTWFya2VyVHlwZSA9IGFycm93VHlwZXNNYXBbYXJyb3dUeXBlXTtcbiAgaWYgKCFlbmRNYXJrZXJUeXBlKSB7XG4gICAgbG9nLndhcm4oYFVua25vd24gYXJyb3cgdHlwZTogJHthcnJvd1R5cGV9YCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IHN1ZmZpeCA9IHBvc2l0aW9uID09PSBcInN0YXJ0XCIgPyBcIlN0YXJ0XCIgOiBcIkVuZFwiO1xuICBzdmdQYXRoLmF0dHIoYG1hcmtlci0ke3Bvc2l0aW9ufWAsIGB1cmwoJHt1cmx9IyR7aWR9XyR7ZGlhZ3JhbVR5cGV9LSR7ZW5kTWFya2VyVHlwZX0ke3N1ZmZpeH0pYCk7XG59O1xubGV0IGVkZ2VMYWJlbHMgPSB7fTtcbmxldCB0ZXJtaW5hbExhYmVscyA9IHt9O1xuY29uc3QgY2xlYXIgPSAoKSA9PiB7XG4gIGVkZ2VMYWJlbHMgPSB7fTtcbiAgdGVybWluYWxMYWJlbHMgPSB7fTtcbn07XG5jb25zdCBpbnNlcnRFZGdlTGFiZWwgPSAoZWxlbSwgZWRnZSkgPT4ge1xuICBjb25zdCB1c2VIdG1sTGFiZWxzID0gZXZhbHVhdGUoZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMpO1xuICBjb25zdCBsYWJlbEVsZW1lbnQgPSBlZGdlLmxhYmVsVHlwZSA9PT0gXCJtYXJrZG93blwiID8gY3JlYXRlVGV4dChlbGVtLCBlZGdlLmxhYmVsLCB7XG4gICAgc3R5bGU6IGVkZ2UubGFiZWxTdHlsZSxcbiAgICB1c2VIdG1sTGFiZWxzLFxuICAgIGFkZFN2Z0JhY2tncm91bmQ6IHRydWVcbiAgfSkgOiBjcmVhdGVMYWJlbCQxKGVkZ2UubGFiZWwsIGVkZ2UubGFiZWxTdHlsZSk7XG4gIGNvbnN0IGVkZ2VMYWJlbCA9IGVsZW0uaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJlZGdlTGFiZWxcIik7XG4gIGNvbnN0IGxhYmVsID0gZWRnZUxhYmVsLmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwibGFiZWxcIik7XG4gIGxhYmVsLm5vZGUoKS5hcHBlbmRDaGlsZChsYWJlbEVsZW1lbnQpO1xuICBsZXQgYmJveCA9IGxhYmVsRWxlbWVudC5nZXRCQm94KCk7XG4gIGlmICh1c2VIdG1sTGFiZWxzKSB7XG4gICAgY29uc3QgZGl2ID0gbGFiZWxFbGVtZW50LmNoaWxkcmVuWzBdO1xuICAgIGNvbnN0IGR2ID0gc2VsZWN0KGxhYmVsRWxlbWVudCk7XG4gICAgYmJveCA9IGRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBkdi5hdHRyKFwid2lkdGhcIiwgYmJveC53aWR0aCk7XG4gICAgZHYuYXR0cihcImhlaWdodFwiLCBiYm94LmhlaWdodCk7XG4gIH1cbiAgbGFiZWwuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIC1iYm94LndpZHRoIC8gMiArIFwiLCBcIiArIC1iYm94LmhlaWdodCAvIDIgKyBcIilcIik7XG4gIGVkZ2VMYWJlbHNbZWRnZS5pZF0gPSBlZGdlTGFiZWw7XG4gIGVkZ2Uud2lkdGggPSBiYm94LndpZHRoO1xuICBlZGdlLmhlaWdodCA9IGJib3guaGVpZ2h0O1xuICBsZXQgZm87XG4gIGlmIChlZGdlLnN0YXJ0TGFiZWxMZWZ0KSB7XG4gICAgY29uc3Qgc3RhcnRMYWJlbEVsZW1lbnQgPSBjcmVhdGVMYWJlbCQxKGVkZ2Uuc3RhcnRMYWJlbExlZnQsIGVkZ2UubGFiZWxTdHlsZSk7XG4gICAgY29uc3Qgc3RhcnRFZGdlTGFiZWxMZWZ0ID0gZWxlbS5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImVkZ2VUZXJtaW5hbHNcIik7XG4gICAgY29uc3QgaW5uZXIgPSBzdGFydEVkZ2VMYWJlbExlZnQuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJpbm5lclwiKTtcbiAgICBmbyA9IGlubmVyLm5vZGUoKS5hcHBlbmRDaGlsZChzdGFydExhYmVsRWxlbWVudCk7XG4gICAgY29uc3Qgc2xCb3ggPSBzdGFydExhYmVsRWxlbWVudC5nZXRCQm94KCk7XG4gICAgaW5uZXIuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIC1zbEJveC53aWR0aCAvIDIgKyBcIiwgXCIgKyAtc2xCb3guaGVpZ2h0IC8gMiArIFwiKVwiKTtcbiAgICBpZiAoIXRlcm1pbmFsTGFiZWxzW2VkZ2UuaWRdKSB7XG4gICAgICB0ZXJtaW5hbExhYmVsc1tlZGdlLmlkXSA9IHt9O1xuICAgIH1cbiAgICB0ZXJtaW5hbExhYmVsc1tlZGdlLmlkXS5zdGFydExlZnQgPSBzdGFydEVkZ2VMYWJlbExlZnQ7XG4gICAgc2V0VGVybWluYWxXaWR0aChmbywgZWRnZS5zdGFydExhYmVsTGVmdCk7XG4gIH1cbiAgaWYgKGVkZ2Uuc3RhcnRMYWJlbFJpZ2h0KSB7XG4gICAgY29uc3Qgc3RhcnRMYWJlbEVsZW1lbnQgPSBjcmVhdGVMYWJlbCQxKGVkZ2Uuc3RhcnRMYWJlbFJpZ2h0LCBlZGdlLmxhYmVsU3R5bGUpO1xuICAgIGNvbnN0IHN0YXJ0RWRnZUxhYmVsUmlnaHQgPSBlbGVtLmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwiZWRnZVRlcm1pbmFsc1wiKTtcbiAgICBjb25zdCBpbm5lciA9IHN0YXJ0RWRnZUxhYmVsUmlnaHQuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJpbm5lclwiKTtcbiAgICBmbyA9IHN0YXJ0RWRnZUxhYmVsUmlnaHQubm9kZSgpLmFwcGVuZENoaWxkKHN0YXJ0TGFiZWxFbGVtZW50KTtcbiAgICBpbm5lci5ub2RlKCkuYXBwZW5kQ2hpbGQoc3RhcnRMYWJlbEVsZW1lbnQpO1xuICAgIGNvbnN0IHNsQm94ID0gc3RhcnRMYWJlbEVsZW1lbnQuZ2V0QkJveCgpO1xuICAgIGlubmVyLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyAtc2xCb3gud2lkdGggLyAyICsgXCIsIFwiICsgLXNsQm94LmhlaWdodCAvIDIgKyBcIilcIik7XG4gICAgaWYgKCF0ZXJtaW5hbExhYmVsc1tlZGdlLmlkXSkge1xuICAgICAgdGVybWluYWxMYWJlbHNbZWRnZS5pZF0gPSB7fTtcbiAgICB9XG4gICAgdGVybWluYWxMYWJlbHNbZWRnZS5pZF0uc3RhcnRSaWdodCA9IHN0YXJ0RWRnZUxhYmVsUmlnaHQ7XG4gICAgc2V0VGVybWluYWxXaWR0aChmbywgZWRnZS5zdGFydExhYmVsUmlnaHQpO1xuICB9XG4gIGlmIChlZGdlLmVuZExhYmVsTGVmdCkge1xuICAgIGNvbnN0IGVuZExhYmVsRWxlbWVudCA9IGNyZWF0ZUxhYmVsJDEoZWRnZS5lbmRMYWJlbExlZnQsIGVkZ2UubGFiZWxTdHlsZSk7XG4gICAgY29uc3QgZW5kRWRnZUxhYmVsTGVmdCA9IGVsZW0uaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJlZGdlVGVybWluYWxzXCIpO1xuICAgIGNvbnN0IGlubmVyID0gZW5kRWRnZUxhYmVsTGVmdC5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImlubmVyXCIpO1xuICAgIGZvID0gaW5uZXIubm9kZSgpLmFwcGVuZENoaWxkKGVuZExhYmVsRWxlbWVudCk7XG4gICAgY29uc3Qgc2xCb3ggPSBlbmRMYWJlbEVsZW1lbnQuZ2V0QkJveCgpO1xuICAgIGlubmVyLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyAtc2xCb3gud2lkdGggLyAyICsgXCIsIFwiICsgLXNsQm94LmhlaWdodCAvIDIgKyBcIilcIik7XG4gICAgZW5kRWRnZUxhYmVsTGVmdC5ub2RlKCkuYXBwZW5kQ2hpbGQoZW5kTGFiZWxFbGVtZW50KTtcbiAgICBpZiAoIXRlcm1pbmFsTGFiZWxzW2VkZ2UuaWRdKSB7XG4gICAgICB0ZXJtaW5hbExhYmVsc1tlZGdlLmlkXSA9IHt9O1xuICAgIH1cbiAgICB0ZXJtaW5hbExhYmVsc1tlZGdlLmlkXS5lbmRMZWZ0ID0gZW5kRWRnZUxhYmVsTGVmdDtcbiAgICBzZXRUZXJtaW5hbFdpZHRoKGZvLCBlZGdlLmVuZExhYmVsTGVmdCk7XG4gIH1cbiAgaWYgKGVkZ2UuZW5kTGFiZWxSaWdodCkge1xuICAgIGNvbnN0IGVuZExhYmVsRWxlbWVudCA9IGNyZWF0ZUxhYmVsJDEoZWRnZS5lbmRMYWJlbFJpZ2h0LCBlZGdlLmxhYmVsU3R5bGUpO1xuICAgIGNvbnN0IGVuZEVkZ2VMYWJlbFJpZ2h0ID0gZWxlbS5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImVkZ2VUZXJtaW5hbHNcIik7XG4gICAgY29uc3QgaW5uZXIgPSBlbmRFZGdlTGFiZWxSaWdodC5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImlubmVyXCIpO1xuICAgIGZvID0gaW5uZXIubm9kZSgpLmFwcGVuZENoaWxkKGVuZExhYmVsRWxlbWVudCk7XG4gICAgY29uc3Qgc2xCb3ggPSBlbmRMYWJlbEVsZW1lbnQuZ2V0QkJveCgpO1xuICAgIGlubmVyLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyAtc2xCb3gud2lkdGggLyAyICsgXCIsIFwiICsgLXNsQm94LmhlaWdodCAvIDIgKyBcIilcIik7XG4gICAgZW5kRWRnZUxhYmVsUmlnaHQubm9kZSgpLmFwcGVuZENoaWxkKGVuZExhYmVsRWxlbWVudCk7XG4gICAgaWYgKCF0ZXJtaW5hbExhYmVsc1tlZGdlLmlkXSkge1xuICAgICAgdGVybWluYWxMYWJlbHNbZWRnZS5pZF0gPSB7fTtcbiAgICB9XG4gICAgdGVybWluYWxMYWJlbHNbZWRnZS5pZF0uZW5kUmlnaHQgPSBlbmRFZGdlTGFiZWxSaWdodDtcbiAgICBzZXRUZXJtaW5hbFdpZHRoKGZvLCBlZGdlLmVuZExhYmVsUmlnaHQpO1xuICB9XG4gIHJldHVybiBsYWJlbEVsZW1lbnQ7XG59O1xuZnVuY3Rpb24gc2V0VGVybWluYWxXaWR0aChmbywgdmFsdWUpIHtcbiAgaWYgKGdldENvbmZpZygpLmZsb3djaGFydC5odG1sTGFiZWxzICYmIGZvKSB7XG4gICAgZm8uc3R5bGUud2lkdGggPSB2YWx1ZS5sZW5ndGggKiA5ICsgXCJweFwiO1xuICAgIGZvLnN0eWxlLmhlaWdodCA9IFwiMTJweFwiO1xuICB9XG59XG5jb25zdCBwb3NpdGlvbkVkZ2VMYWJlbCA9IChlZGdlLCBwYXRocykgPT4ge1xuICBsb2cuZGVidWcoXCJNb3ZpbmcgbGFiZWwgYWJjODggXCIsIGVkZ2UuaWQsIGVkZ2UubGFiZWwsIGVkZ2VMYWJlbHNbZWRnZS5pZF0sIHBhdGhzKTtcbiAgbGV0IHBhdGggPSBwYXRocy51cGRhdGVkUGF0aCA/IHBhdGhzLnVwZGF0ZWRQYXRoIDogcGF0aHMub3JpZ2luYWxQYXRoO1xuICBjb25zdCBzaXRlQ29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gIGNvbnN0IHsgc3ViR3JhcGhUaXRsZVRvdGFsTWFyZ2luIH0gPSBnZXRTdWJHcmFwaFRpdGxlTWFyZ2lucyhzaXRlQ29uZmlnKTtcbiAgaWYgKGVkZ2UubGFiZWwpIHtcbiAgICBjb25zdCBlbCA9IGVkZ2VMYWJlbHNbZWRnZS5pZF07XG4gICAgbGV0IHggPSBlZGdlLng7XG4gICAgbGV0IHkgPSBlZGdlLnk7XG4gICAgaWYgKHBhdGgpIHtcbiAgICAgIGNvbnN0IHBvcyA9IHV0aWxzLmNhbGNMYWJlbFBvc2l0aW9uKHBhdGgpO1xuICAgICAgbG9nLmRlYnVnKFxuICAgICAgICBcIk1vdmluZyBsYWJlbCBcIiArIGVkZ2UubGFiZWwgKyBcIiBmcm9tIChcIixcbiAgICAgICAgeCxcbiAgICAgICAgXCIsXCIsXG4gICAgICAgIHksXG4gICAgICAgIFwiKSB0byAoXCIsXG4gICAgICAgIHBvcy54LFxuICAgICAgICBcIixcIixcbiAgICAgICAgcG9zLnksXG4gICAgICAgIFwiKSBhYmM4OFwiXG4gICAgICApO1xuICAgICAgaWYgKHBhdGhzLnVwZGF0ZWRQYXRoKSB7XG4gICAgICAgIHggPSBwb3MueDtcbiAgICAgICAgeSA9IHBvcy55O1xuICAgICAgfVxuICAgIH1cbiAgICBlbC5hdHRyKFwidHJhbnNmb3JtXCIsIGB0cmFuc2xhdGUoJHt4fSwgJHt5ICsgc3ViR3JhcGhUaXRsZVRvdGFsTWFyZ2luIC8gMn0pYCk7XG4gIH1cbiAgaWYgKGVkZ2Uuc3RhcnRMYWJlbExlZnQpIHtcbiAgICBjb25zdCBlbCA9IHRlcm1pbmFsTGFiZWxzW2VkZ2UuaWRdLnN0YXJ0TGVmdDtcbiAgICBsZXQgeCA9IGVkZ2UueDtcbiAgICBsZXQgeSA9IGVkZ2UueTtcbiAgICBpZiAocGF0aCkge1xuICAgICAgY29uc3QgcG9zID0gdXRpbHMuY2FsY1Rlcm1pbmFsTGFiZWxQb3NpdGlvbihlZGdlLmFycm93VHlwZVN0YXJ0ID8gMTAgOiAwLCBcInN0YXJ0X2xlZnRcIiwgcGF0aCk7XG4gICAgICB4ID0gcG9zLng7XG4gICAgICB5ID0gcG9zLnk7XG4gICAgfVxuICAgIGVsLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgYHRyYW5zbGF0ZSgke3h9LCAke3l9KWApO1xuICB9XG4gIGlmIChlZGdlLnN0YXJ0TGFiZWxSaWdodCkge1xuICAgIGNvbnN0IGVsID0gdGVybWluYWxMYWJlbHNbZWRnZS5pZF0uc3RhcnRSaWdodDtcbiAgICBsZXQgeCA9IGVkZ2UueDtcbiAgICBsZXQgeSA9IGVkZ2UueTtcbiAgICBpZiAocGF0aCkge1xuICAgICAgY29uc3QgcG9zID0gdXRpbHMuY2FsY1Rlcm1pbmFsTGFiZWxQb3NpdGlvbihcbiAgICAgICAgZWRnZS5hcnJvd1R5cGVTdGFydCA/IDEwIDogMCxcbiAgICAgICAgXCJzdGFydF9yaWdodFwiLFxuICAgICAgICBwYXRoXG4gICAgICApO1xuICAgICAgeCA9IHBvcy54O1xuICAgICAgeSA9IHBvcy55O1xuICAgIH1cbiAgICBlbC5hdHRyKFwidHJhbnNmb3JtXCIsIGB0cmFuc2xhdGUoJHt4fSwgJHt5fSlgKTtcbiAgfVxuICBpZiAoZWRnZS5lbmRMYWJlbExlZnQpIHtcbiAgICBjb25zdCBlbCA9IHRlcm1pbmFsTGFiZWxzW2VkZ2UuaWRdLmVuZExlZnQ7XG4gICAgbGV0IHggPSBlZGdlLng7XG4gICAgbGV0IHkgPSBlZGdlLnk7XG4gICAgaWYgKHBhdGgpIHtcbiAgICAgIGNvbnN0IHBvcyA9IHV0aWxzLmNhbGNUZXJtaW5hbExhYmVsUG9zaXRpb24oZWRnZS5hcnJvd1R5cGVFbmQgPyAxMCA6IDAsIFwiZW5kX2xlZnRcIiwgcGF0aCk7XG4gICAgICB4ID0gcG9zLng7XG4gICAgICB5ID0gcG9zLnk7XG4gICAgfVxuICAgIGVsLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgYHRyYW5zbGF0ZSgke3h9LCAke3l9KWApO1xuICB9XG4gIGlmIChlZGdlLmVuZExhYmVsUmlnaHQpIHtcbiAgICBjb25zdCBlbCA9IHRlcm1pbmFsTGFiZWxzW2VkZ2UuaWRdLmVuZFJpZ2h0O1xuICAgIGxldCB4ID0gZWRnZS54O1xuICAgIGxldCB5ID0gZWRnZS55O1xuICAgIGlmIChwYXRoKSB7XG4gICAgICBjb25zdCBwb3MgPSB1dGlscy5jYWxjVGVybWluYWxMYWJlbFBvc2l0aW9uKGVkZ2UuYXJyb3dUeXBlRW5kID8gMTAgOiAwLCBcImVuZF9yaWdodFwiLCBwYXRoKTtcbiAgICAgIHggPSBwb3MueDtcbiAgICAgIHkgPSBwb3MueTtcbiAgICB9XG4gICAgZWwuYXR0cihcInRyYW5zZm9ybVwiLCBgdHJhbnNsYXRlKCR7eH0sICR7eX0pYCk7XG4gIH1cbn07XG5jb25zdCBvdXRzaWRlTm9kZSA9IChub2RlLCBwb2ludDIpID0+IHtcbiAgY29uc3QgeCA9IG5vZGUueDtcbiAgY29uc3QgeSA9IG5vZGUueTtcbiAgY29uc3QgZHggPSBNYXRoLmFicyhwb2ludDIueCAtIHgpO1xuICBjb25zdCBkeSA9IE1hdGguYWJzKHBvaW50Mi55IC0geSk7XG4gIGNvbnN0IHcgPSBub2RlLndpZHRoIC8gMjtcbiAgY29uc3QgaCA9IG5vZGUuaGVpZ2h0IC8gMjtcbiAgaWYgKGR4ID49IHcgfHwgZHkgPj0gaCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5jb25zdCBpbnRlcnNlY3Rpb24gPSAobm9kZSwgb3V0c2lkZVBvaW50LCBpbnNpZGVQb2ludCkgPT4ge1xuICBsb2cuZGVidWcoYGludGVyc2VjdGlvbiBjYWxjIGFiYzg5OlxuICBvdXRzaWRlUG9pbnQ6ICR7SlNPTi5zdHJpbmdpZnkob3V0c2lkZVBvaW50KX1cbiAgaW5zaWRlUG9pbnQgOiAke0pTT04uc3RyaW5naWZ5KGluc2lkZVBvaW50KX1cbiAgbm9kZSAgICAgICAgOiB4OiR7bm9kZS54fSB5OiR7bm9kZS55fSB3OiR7bm9kZS53aWR0aH0gaDoke25vZGUuaGVpZ2h0fWApO1xuICBjb25zdCB4ID0gbm9kZS54O1xuICBjb25zdCB5ID0gbm9kZS55O1xuICBjb25zdCBkeCA9IE1hdGguYWJzKHggLSBpbnNpZGVQb2ludC54KTtcbiAgY29uc3QgdyA9IG5vZGUud2lkdGggLyAyO1xuICBsZXQgciA9IGluc2lkZVBvaW50LnggPCBvdXRzaWRlUG9pbnQueCA/IHcgLSBkeCA6IHcgKyBkeDtcbiAgY29uc3QgaCA9IG5vZGUuaGVpZ2h0IC8gMjtcbiAgY29uc3QgUSA9IE1hdGguYWJzKG91dHNpZGVQb2ludC55IC0gaW5zaWRlUG9pbnQueSk7XG4gIGNvbnN0IFIgPSBNYXRoLmFicyhvdXRzaWRlUG9pbnQueCAtIGluc2lkZVBvaW50LngpO1xuICBpZiAoTWF0aC5hYnMoeSAtIG91dHNpZGVQb2ludC55KSAqIHcgPiBNYXRoLmFicyh4IC0gb3V0c2lkZVBvaW50LngpICogaCkge1xuICAgIGxldCBxID0gaW5zaWRlUG9pbnQueSA8IG91dHNpZGVQb2ludC55ID8gb3V0c2lkZVBvaW50LnkgLSBoIC0geSA6IHkgLSBoIC0gb3V0c2lkZVBvaW50Lnk7XG4gICAgciA9IFIgKiBxIC8gUTtcbiAgICBjb25zdCByZXMgPSB7XG4gICAgICB4OiBpbnNpZGVQb2ludC54IDwgb3V0c2lkZVBvaW50LnggPyBpbnNpZGVQb2ludC54ICsgciA6IGluc2lkZVBvaW50LnggLSBSICsgcixcbiAgICAgIHk6IGluc2lkZVBvaW50LnkgPCBvdXRzaWRlUG9pbnQueSA/IGluc2lkZVBvaW50LnkgKyBRIC0gcSA6IGluc2lkZVBvaW50LnkgLSBRICsgcVxuICAgIH07XG4gICAgaWYgKHIgPT09IDApIHtcbiAgICAgIHJlcy54ID0gb3V0c2lkZVBvaW50Lng7XG4gICAgICByZXMueSA9IG91dHNpZGVQb2ludC55O1xuICAgIH1cbiAgICBpZiAoUiA9PT0gMCkge1xuICAgICAgcmVzLnggPSBvdXRzaWRlUG9pbnQueDtcbiAgICB9XG4gICAgaWYgKFEgPT09IDApIHtcbiAgICAgIHJlcy55ID0gb3V0c2lkZVBvaW50Lnk7XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhgYWJjODkgdG9wcC9ib3R0IGNhbGMsIFEgJHtRfSwgcSAke3F9LCBSICR7Un0sIHIgJHtyfWAsIHJlcyk7XG4gICAgcmV0dXJuIHJlcztcbiAgfSBlbHNlIHtcbiAgICBpZiAoaW5zaWRlUG9pbnQueCA8IG91dHNpZGVQb2ludC54KSB7XG4gICAgICByID0gb3V0c2lkZVBvaW50LnggLSB3IC0geDtcbiAgICB9IGVsc2Uge1xuICAgICAgciA9IHggLSB3IC0gb3V0c2lkZVBvaW50Lng7XG4gICAgfVxuICAgIGxldCBxID0gUSAqIHIgLyBSO1xuICAgIGxldCBfeCA9IGluc2lkZVBvaW50LnggPCBvdXRzaWRlUG9pbnQueCA/IGluc2lkZVBvaW50LnggKyBSIC0gciA6IGluc2lkZVBvaW50LnggLSBSICsgcjtcbiAgICBsZXQgX3kgPSBpbnNpZGVQb2ludC55IDwgb3V0c2lkZVBvaW50LnkgPyBpbnNpZGVQb2ludC55ICsgcSA6IGluc2lkZVBvaW50LnkgLSBxO1xuICAgIGxvZy5kZWJ1Zyhgc2lkZXMgY2FsYyBhYmM4OSwgUSAke1F9LCBxICR7cX0sIFIgJHtSfSwgciAke3J9YCwgeyBfeCwgX3kgfSk7XG4gICAgaWYgKHIgPT09IDApIHtcbiAgICAgIF94ID0gb3V0c2lkZVBvaW50Lng7XG4gICAgICBfeSA9IG91dHNpZGVQb2ludC55O1xuICAgIH1cbiAgICBpZiAoUiA9PT0gMCkge1xuICAgICAgX3ggPSBvdXRzaWRlUG9pbnQueDtcbiAgICB9XG4gICAgaWYgKFEgPT09IDApIHtcbiAgICAgIF95ID0gb3V0c2lkZVBvaW50Lnk7XG4gICAgfVxuICAgIHJldHVybiB7IHg6IF94LCB5OiBfeSB9O1xuICB9XG59O1xuY29uc3QgY3V0UGF0aEF0SW50ZXJzZWN0ID0gKF9wb2ludHMsIGJvdW5kYXJ5Tm9kZSkgPT4ge1xuICBsb2cuZGVidWcoXCJhYmM4OCBjdXRQYXRoQXRJbnRlcnNlY3RcIiwgX3BvaW50cywgYm91bmRhcnlOb2RlKTtcbiAgbGV0IHBvaW50cyA9IFtdO1xuICBsZXQgbGFzdFBvaW50T3V0c2lkZSA9IF9wb2ludHNbMF07XG4gIGxldCBpc0luc2lkZSA9IGZhbHNlO1xuICBfcG9pbnRzLmZvckVhY2goKHBvaW50MikgPT4ge1xuICAgIGlmICghb3V0c2lkZU5vZGUoYm91bmRhcnlOb2RlLCBwb2ludDIpICYmICFpc0luc2lkZSkge1xuICAgICAgY29uc3QgaW50ZXIgPSBpbnRlcnNlY3Rpb24oYm91bmRhcnlOb2RlLCBsYXN0UG9pbnRPdXRzaWRlLCBwb2ludDIpO1xuICAgICAgbGV0IHBvaW50UHJlc2VudCA9IGZhbHNlO1xuICAgICAgcG9pbnRzLmZvckVhY2goKHApID0+IHtcbiAgICAgICAgcG9pbnRQcmVzZW50ID0gcG9pbnRQcmVzZW50IHx8IHAueCA9PT0gaW50ZXIueCAmJiBwLnkgPT09IGludGVyLnk7XG4gICAgICB9KTtcbiAgICAgIGlmICghcG9pbnRzLnNvbWUoKGUpID0+IGUueCA9PT0gaW50ZXIueCAmJiBlLnkgPT09IGludGVyLnkpKSB7XG4gICAgICAgIHBvaW50cy5wdXNoKGludGVyKTtcbiAgICAgIH1cbiAgICAgIGlzSW5zaWRlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGFzdFBvaW50T3V0c2lkZSA9IHBvaW50MjtcbiAgICAgIGlmICghaXNJbnNpZGUpIHtcbiAgICAgICAgcG9pbnRzLnB1c2gocG9pbnQyKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcG9pbnRzO1xufTtcbmNvbnN0IGluc2VydEVkZ2UgPSBmdW5jdGlvbihlbGVtLCBlLCBlZGdlLCBjbHVzdGVyRGIsIGRpYWdyYW1UeXBlLCBncmFwaCwgaWQpIHtcbiAgbGV0IHBvaW50cyA9IGVkZ2UucG9pbnRzO1xuICBsb2cuZGVidWcoXCJhYmM4OCBJbnNlcnRFZGdlOiBlZGdlPVwiLCBlZGdlLCBcImU9XCIsIGUpO1xuICBsZXQgcG9pbnRzSGFzQ2hhbmdlZCA9IGZhbHNlO1xuICBjb25zdCB0YWlsID0gZ3JhcGgubm9kZShlLnYpO1xuICB2YXIgaGVhZCA9IGdyYXBoLm5vZGUoZS53KTtcbiAgaWYgKChoZWFkID09IG51bGwgPyB2b2lkIDAgOiBoZWFkLmludGVyc2VjdCkgJiYgKHRhaWwgPT0gbnVsbCA/IHZvaWQgMCA6IHRhaWwuaW50ZXJzZWN0KSkge1xuICAgIHBvaW50cyA9IHBvaW50cy5zbGljZSgxLCBlZGdlLnBvaW50cy5sZW5ndGggLSAxKTtcbiAgICBwb2ludHMudW5zaGlmdCh0YWlsLmludGVyc2VjdChwb2ludHNbMF0pKTtcbiAgICBwb2ludHMucHVzaChoZWFkLmludGVyc2VjdChwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdKSk7XG4gIH1cbiAgaWYgKGVkZ2UudG9DbHVzdGVyKSB7XG4gICAgbG9nLmRlYnVnKFwidG8gY2x1c3RlciBhYmM4OFwiLCBjbHVzdGVyRGJbZWRnZS50b0NsdXN0ZXJdKTtcbiAgICBwb2ludHMgPSBjdXRQYXRoQXRJbnRlcnNlY3QoZWRnZS5wb2ludHMsIGNsdXN0ZXJEYltlZGdlLnRvQ2x1c3Rlcl0ubm9kZSk7XG4gICAgcG9pbnRzSGFzQ2hhbmdlZCA9IHRydWU7XG4gIH1cbiAgaWYgKGVkZ2UuZnJvbUNsdXN0ZXIpIHtcbiAgICBsb2cuZGVidWcoXCJmcm9tIGNsdXN0ZXIgYWJjODhcIiwgY2x1c3RlckRiW2VkZ2UuZnJvbUNsdXN0ZXJdKTtcbiAgICBwb2ludHMgPSBjdXRQYXRoQXRJbnRlcnNlY3QocG9pbnRzLnJldmVyc2UoKSwgY2x1c3RlckRiW2VkZ2UuZnJvbUNsdXN0ZXJdLm5vZGUpLnJldmVyc2UoKTtcbiAgICBwb2ludHNIYXNDaGFuZ2VkID0gdHJ1ZTtcbiAgfVxuICBjb25zdCBsaW5lRGF0YSA9IHBvaW50cy5maWx0ZXIoKHApID0+ICFOdW1iZXIuaXNOYU4ocC55KSk7XG4gIGxldCBjdXJ2ZSA9IGN1cnZlQmFzaXM7XG4gIGlmIChlZGdlLmN1cnZlICYmIChkaWFncmFtVHlwZSA9PT0gXCJncmFwaFwiIHx8IGRpYWdyYW1UeXBlID09PSBcImZsb3djaGFydFwiKSkge1xuICAgIGN1cnZlID0gZWRnZS5jdXJ2ZTtcbiAgfVxuICBjb25zdCB7IHgsIHkgfSA9IGdldExpbmVGdW5jdGlvbnNXaXRoT2Zmc2V0KGVkZ2UpO1xuICBjb25zdCBsaW5lRnVuY3Rpb24gPSBsaW5lKCkueCh4KS55KHkpLmN1cnZlKGN1cnZlKTtcbiAgbGV0IHN0cm9rZUNsYXNzZXM7XG4gIHN3aXRjaCAoZWRnZS50aGlja25lc3MpIHtcbiAgICBjYXNlIFwibm9ybWFsXCI6XG4gICAgICBzdHJva2VDbGFzc2VzID0gXCJlZGdlLXRoaWNrbmVzcy1ub3JtYWxcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ0aGlja1wiOlxuICAgICAgc3Ryb2tlQ2xhc3NlcyA9IFwiZWRnZS10aGlja25lc3MtdGhpY2tcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJpbnZpc2libGVcIjpcbiAgICAgIHN0cm9rZUNsYXNzZXMgPSBcImVkZ2UtdGhpY2tuZXNzLXRoaWNrXCI7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgc3Ryb2tlQ2xhc3NlcyA9IFwiXCI7XG4gIH1cbiAgc3dpdGNoIChlZGdlLnBhdHRlcm4pIHtcbiAgICBjYXNlIFwic29saWRcIjpcbiAgICAgIHN0cm9rZUNsYXNzZXMgKz0gXCIgZWRnZS1wYXR0ZXJuLXNvbGlkXCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZG90dGVkXCI6XG4gICAgICBzdHJva2VDbGFzc2VzICs9IFwiIGVkZ2UtcGF0dGVybi1kb3R0ZWRcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJkYXNoZWRcIjpcbiAgICAgIHN0cm9rZUNsYXNzZXMgKz0gXCIgZWRnZS1wYXR0ZXJuLWRhc2hlZFwiO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgY29uc3Qgc3ZnUGF0aCA9IGVsZW0uYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBsaW5lRnVuY3Rpb24obGluZURhdGEpKS5hdHRyKFwiaWRcIiwgZWRnZS5pZCkuYXR0cihcImNsYXNzXCIsIFwiIFwiICsgc3Ryb2tlQ2xhc3NlcyArIChlZGdlLmNsYXNzZXMgPyBcIiBcIiArIGVkZ2UuY2xhc3NlcyA6IFwiXCIpKS5hdHRyKFwic3R5bGVcIiwgZWRnZS5zdHlsZSk7XG4gIGxldCB1cmwgPSBcIlwiO1xuICBpZiAoZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0LmFycm93TWFya2VyQWJzb2x1dGUgfHwgZ2V0Q29uZmlnKCkuc3RhdGUuYXJyb3dNYXJrZXJBYnNvbHV0ZSkge1xuICAgIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaDtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgvXFwoL2csIFwiXFxcXChcIik7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoL1xcKS9nLCBcIlxcXFwpXCIpO1xuICB9XG4gIGFkZEVkZ2VNYXJrZXJzKHN2Z1BhdGgsIGVkZ2UsIHVybCwgaWQsIGRpYWdyYW1UeXBlKTtcbiAgbGV0IHBhdGhzID0ge307XG4gIGlmIChwb2ludHNIYXNDaGFuZ2VkKSB7XG4gICAgcGF0aHMudXBkYXRlZFBhdGggPSBwb2ludHM7XG4gIH1cbiAgcGF0aHMub3JpZ2luYWxQYXRoID0gZWRnZS5wb2ludHM7XG4gIHJldHVybiBwYXRocztcbn07XG5leHBvcnQge1xuICBpbnNlcnRNYXJrZXJzJDEgYXMgYSxcbiAgY2xlYXIkMSBhcyBiLFxuICBjcmVhdGVMYWJlbCQxIGFzIGMsXG4gIGNsZWFyIGFzIGQsXG4gIGluc2VydE5vZGUgYXMgZSxcbiAgaW5zZXJ0RWRnZUxhYmVsIGFzIGYsXG4gIGdldFN1YkdyYXBoVGl0bGVNYXJnaW5zIGFzIGcsXG4gIGluc2VydEVkZ2UgYXMgaCxcbiAgaW50ZXJzZWN0UmVjdCQxIGFzIGksXG4gIHBvc2l0aW9uRWRnZUxhYmVsIGFzIGosXG4gIGdldExpbmVGdW5jdGlvbnNXaXRoT2Zmc2V0IGFzIGssXG4gIGxhYmVsSGVscGVyIGFzIGwsXG4gIGFkZEVkZ2VNYXJrZXJzIGFzIG0sXG4gIHBvc2l0aW9uTm9kZSBhcyBwLFxuICBzZXROb2RlRWxlbSBhcyBzLFxuICB1cGRhdGVOb2RlQm91bmRzIGFzIHVcbn07XG4iLAogICAgImltcG9ydCB7IGxheW91dCB9IGZyb20gXCJkYWdyZS1kMy1lcy9zcmMvZGFncmUvaW5kZXguanNcIjtcbmltcG9ydCAqIGFzIGdyYXBobGliSnNvbiBmcm9tIFwiZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2pzb24uanNcIjtcbmltcG9ydCB7IGMgYXMgY3JlYXRlTGFiZWwsIGcgYXMgZ2V0U3ViR3JhcGhUaXRsZU1hcmdpbnMsIGkgYXMgaW50ZXJzZWN0UmVjdCwgYSBhcyBpbnNlcnRNYXJrZXJzLCBiIGFzIGNsZWFyJDIsIGQgYXMgY2xlYXIkMywgdSBhcyB1cGRhdGVOb2RlQm91bmRzLCBzIGFzIHNldE5vZGVFbGVtLCBlIGFzIGluc2VydE5vZGUsIGYgYXMgaW5zZXJ0RWRnZUxhYmVsLCBwIGFzIHBvc2l0aW9uTm9kZSwgaCBhcyBpbnNlcnRFZGdlLCBqIGFzIHBvc2l0aW9uRWRnZUxhYmVsIH0gZnJvbSBcIi4vZWRnZXMtMDY2YTU1NjEuanNcIjtcbmltcG9ydCB7IGwgYXMgbG9nLCBjIGFzIGdldENvbmZpZywgbSBhcyBldmFsdWF0ZSB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmltcG9ydCAqIGFzIGdyYXBobGliIGZyb20gXCJkYWdyZS1kMy1lcy9zcmMvZ3JhcGhsaWIvaW5kZXguanNcIjtcbmltcG9ydCB7IGEgYXMgY3JlYXRlVGV4dCB9IGZyb20gXCIuL2NyZWF0ZVRleHQtY2EwYzUyMTYuanNcIjtcbmltcG9ydCB7IHNlbGVjdCB9IGZyb20gXCJkM1wiO1xubGV0IGNsdXN0ZXJEYiA9IHt9O1xubGV0IGRlc2NlbmRhbnRzID0ge307XG5sZXQgcGFyZW50cyA9IHt9O1xuY29uc3QgY2xlYXIkMSA9ICgpID0+IHtcbiAgZGVzY2VuZGFudHMgPSB7fTtcbiAgcGFyZW50cyA9IHt9O1xuICBjbHVzdGVyRGIgPSB7fTtcbn07XG5jb25zdCBpc0Rlc2NlbmRhbnQgPSAoaWQsIGFuY2VzdG9ySWQpID0+IHtcbiAgbG9nLnRyYWNlKFwiSW4gaXNEZXNjZW5kYW50XCIsIGFuY2VzdG9ySWQsIFwiIFwiLCBpZCwgXCIgPSBcIiwgZGVzY2VuZGFudHNbYW5jZXN0b3JJZF0uaW5jbHVkZXMoaWQpKTtcbiAgaWYgKGRlc2NlbmRhbnRzW2FuY2VzdG9ySWRdLmluY2x1ZGVzKGlkKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5jb25zdCBlZGdlSW5DbHVzdGVyID0gKGVkZ2UsIGNsdXN0ZXJJZCkgPT4ge1xuICBsb2cuaW5mbyhcIkRlc2NlbmRhbnRzIG9mIFwiLCBjbHVzdGVySWQsIFwiIGlzIFwiLCBkZXNjZW5kYW50c1tjbHVzdGVySWRdKTtcbiAgbG9nLmluZm8oXCJFZGdlIGlzIFwiLCBlZGdlKTtcbiAgaWYgKGVkZ2UudiA9PT0gY2x1c3RlcklkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChlZGdlLncgPT09IGNsdXN0ZXJJZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWRlc2NlbmRhbnRzW2NsdXN0ZXJJZF0pIHtcbiAgICBsb2cuZGVidWcoXCJUaWx0LCBcIiwgY2x1c3RlcklkLCBcIixub3QgaW4gZGVzY2VuZGFudHNcIik7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBkZXNjZW5kYW50c1tjbHVzdGVySWRdLmluY2x1ZGVzKGVkZ2UudikgfHwgaXNEZXNjZW5kYW50KGVkZ2UudiwgY2x1c3RlcklkKSB8fCBpc0Rlc2NlbmRhbnQoZWRnZS53LCBjbHVzdGVySWQpIHx8IGRlc2NlbmRhbnRzW2NsdXN0ZXJJZF0uaW5jbHVkZXMoZWRnZS53KTtcbn07XG5jb25zdCBjb3B5ID0gKGNsdXN0ZXJJZCwgZ3JhcGgsIG5ld0dyYXBoLCByb290SWQpID0+IHtcbiAgbG9nLndhcm4oXG4gICAgXCJDb3B5aW5nIGNoaWxkcmVuIG9mIFwiLFxuICAgIGNsdXN0ZXJJZCxcbiAgICBcInJvb3RcIixcbiAgICByb290SWQsXG4gICAgXCJkYXRhXCIsXG4gICAgZ3JhcGgubm9kZShjbHVzdGVySWQpLFxuICAgIHJvb3RJZFxuICApO1xuICBjb25zdCBub2RlcyA9IGdyYXBoLmNoaWxkcmVuKGNsdXN0ZXJJZCkgfHwgW107XG4gIGlmIChjbHVzdGVySWQgIT09IHJvb3RJZCkge1xuICAgIG5vZGVzLnB1c2goY2x1c3RlcklkKTtcbiAgfVxuICBsb2cud2FybihcIkNvcHlpbmcgKG5vZGVzKSBjbHVzdGVySWRcIiwgY2x1c3RlcklkLCBcIm5vZGVzXCIsIG5vZGVzKTtcbiAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgIGlmIChncmFwaC5jaGlsZHJlbihub2RlKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb3B5KG5vZGUsIGdyYXBoLCBuZXdHcmFwaCwgcm9vdElkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGF0YSA9IGdyYXBoLm5vZGUobm9kZSk7XG4gICAgICBsb2cuaW5mbyhcImNwIFwiLCBub2RlLCBcIiB0byBcIiwgcm9vdElkLCBcIiB3aXRoIHBhcmVudCBcIiwgY2x1c3RlcklkKTtcbiAgICAgIG5ld0dyYXBoLnNldE5vZGUobm9kZSwgZGF0YSk7XG4gICAgICBpZiAocm9vdElkICE9PSBncmFwaC5wYXJlbnQobm9kZSkpIHtcbiAgICAgICAgbG9nLndhcm4oXCJTZXR0aW5nIHBhcmVudFwiLCBub2RlLCBncmFwaC5wYXJlbnQobm9kZSkpO1xuICAgICAgICBuZXdHcmFwaC5zZXRQYXJlbnQobm9kZSwgZ3JhcGgucGFyZW50KG5vZGUpKTtcbiAgICAgIH1cbiAgICAgIGlmIChjbHVzdGVySWQgIT09IHJvb3RJZCAmJiBub2RlICE9PSBjbHVzdGVySWQpIHtcbiAgICAgICAgbG9nLmRlYnVnKFwiU2V0dGluZyBwYXJlbnRcIiwgbm9kZSwgY2x1c3RlcklkKTtcbiAgICAgICAgbmV3R3JhcGguc2V0UGFyZW50KG5vZGUsIGNsdXN0ZXJJZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cuaW5mbyhcIkluIGNvcHkgXCIsIGNsdXN0ZXJJZCwgXCJyb290XCIsIHJvb3RJZCwgXCJkYXRhXCIsIGdyYXBoLm5vZGUoY2x1c3RlcklkKSwgcm9vdElkKTtcbiAgICAgICAgbG9nLmRlYnVnKFxuICAgICAgICAgIFwiTm90IFNldHRpbmcgcGFyZW50IGZvciBub2RlPVwiLFxuICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgXCJjbHVzdGVyIT09cm9vdElkXCIsXG4gICAgICAgICAgY2x1c3RlcklkICE9PSByb290SWQsXG4gICAgICAgICAgXCJub2RlIT09Y2x1c3RlcklkXCIsXG4gICAgICAgICAgbm9kZSAhPT0gY2x1c3RlcklkXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBlZGdlcyA9IGdyYXBoLmVkZ2VzKG5vZGUpO1xuICAgICAgbG9nLmRlYnVnKFwiQ29weWluZyBFZGdlc1wiLCBlZGdlcyk7XG4gICAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICAgIGxvZy5pbmZvKFwiRWRnZVwiLCBlZGdlKTtcbiAgICAgICAgY29uc3QgZGF0YTIgPSBncmFwaC5lZGdlKGVkZ2UudiwgZWRnZS53LCBlZGdlLm5hbWUpO1xuICAgICAgICBsb2cuaW5mbyhcIkVkZ2UgZGF0YVwiLCBkYXRhMiwgcm9vdElkKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoZWRnZUluQ2x1c3RlcihlZGdlLCByb290SWQpKSB7XG4gICAgICAgICAgICBsb2cuaW5mbyhcIkNvcHlpbmcgYXMgXCIsIGVkZ2UudiwgZWRnZS53LCBkYXRhMiwgZWRnZS5uYW1lKTtcbiAgICAgICAgICAgIG5ld0dyYXBoLnNldEVkZ2UoZWRnZS52LCBlZGdlLncsIGRhdGEyLCBlZGdlLm5hbWUpO1xuICAgICAgICAgICAgbG9nLmluZm8oXCJuZXdHcmFwaCBlZGdlcyBcIiwgbmV3R3JhcGguZWRnZXMoKSwgbmV3R3JhcGguZWRnZShuZXdHcmFwaC5lZGdlcygpWzBdKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvZy5pbmZvKFxuICAgICAgICAgICAgICBcIlNraXBwaW5nIGNvcHkgb2YgZWRnZSBcIixcbiAgICAgICAgICAgICAgZWRnZS52LFxuICAgICAgICAgICAgICBcIi0tPlwiLFxuICAgICAgICAgICAgICBlZGdlLncsXG4gICAgICAgICAgICAgIFwiIHJvb3RJZDogXCIsXG4gICAgICAgICAgICAgIHJvb3RJZCxcbiAgICAgICAgICAgICAgXCIgY2x1c3RlcklkOlwiLFxuICAgICAgICAgICAgICBjbHVzdGVySWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9nLmRlYnVnKFwiUmVtb3Zpbmcgbm9kZVwiLCBub2RlKTtcbiAgICBncmFwaC5yZW1vdmVOb2RlKG5vZGUpO1xuICB9KTtcbn07XG5jb25zdCBleHRyYWN0RGVzY2VuZGFudHMgPSAoaWQsIGdyYXBoKSA9PiB7XG4gIGNvbnN0IGNoaWxkcmVuID0gZ3JhcGguY2hpbGRyZW4oaWQpO1xuICBsZXQgcmVzID0gWy4uLmNoaWxkcmVuXTtcbiAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgIHBhcmVudHNbY2hpbGRdID0gaWQ7XG4gICAgcmVzID0gWy4uLnJlcywgLi4uZXh0cmFjdERlc2NlbmRhbnRzKGNoaWxkLCBncmFwaCldO1xuICB9XG4gIHJldHVybiByZXM7XG59O1xuY29uc3QgZmluZE5vbkNsdXN0ZXJDaGlsZCA9IChpZCwgZ3JhcGgpID0+IHtcbiAgbG9nLnRyYWNlKFwiU2VhcmNoaW5nXCIsIGlkKTtcbiAgY29uc3QgY2hpbGRyZW4gPSBncmFwaC5jaGlsZHJlbihpZCk7XG4gIGxvZy50cmFjZShcIlNlYXJjaGluZyBjaGlsZHJlbiBvZiBpZCBcIiwgaWQsIGNoaWxkcmVuKTtcbiAgaWYgKGNoaWxkcmVuLmxlbmd0aCA8IDEpIHtcbiAgICBsb2cudHJhY2UoXCJUaGlzIGlzIGEgdmFsaWQgbm9kZVwiLCBpZCk7XG4gICAgcmV0dXJuIGlkO1xuICB9XG4gIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICBjb25zdCBfaWQgPSBmaW5kTm9uQ2x1c3RlckNoaWxkKGNoaWxkLCBncmFwaCk7XG4gICAgaWYgKF9pZCkge1xuICAgICAgbG9nLnRyYWNlKFwiRm91bmQgcmVwbGFjZW1lbnQgZm9yXCIsIGlkLCBcIiA9PiBcIiwgX2lkKTtcbiAgICAgIHJldHVybiBfaWQ7XG4gICAgfVxuICB9XG59O1xuY29uc3QgZ2V0QW5jaG9ySWQgPSAoaWQpID0+IHtcbiAgaWYgKCFjbHVzdGVyRGJbaWRdKSB7XG4gICAgcmV0dXJuIGlkO1xuICB9XG4gIGlmICghY2x1c3RlckRiW2lkXS5leHRlcm5hbENvbm5lY3Rpb25zKSB7XG4gICAgcmV0dXJuIGlkO1xuICB9XG4gIGlmIChjbHVzdGVyRGJbaWRdKSB7XG4gICAgcmV0dXJuIGNsdXN0ZXJEYltpZF0uaWQ7XG4gIH1cbiAgcmV0dXJuIGlkO1xufTtcbmNvbnN0IGFkanVzdENsdXN0ZXJzQW5kRWRnZXMgPSAoZ3JhcGgsIGRlcHRoKSA9PiB7XG4gIGlmICghZ3JhcGggfHwgZGVwdGggPiAxMCkge1xuICAgIGxvZy5kZWJ1ZyhcIk9wdGluZyBvdXQsIG5vIGdyYXBoIFwiKTtcbiAgICByZXR1cm47XG4gIH0gZWxzZSB7XG4gICAgbG9nLmRlYnVnKFwiT3B0aW5nIGluLCBncmFwaCBcIik7XG4gIH1cbiAgZ3JhcGgubm9kZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBncmFwaC5jaGlsZHJlbihpZCk7XG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGxvZy53YXJuKFxuICAgICAgICBcIkNsdXN0ZXIgaWRlbnRpZmllZFwiLFxuICAgICAgICBpZCxcbiAgICAgICAgXCIgUmVwbGFjZW1lbnQgaWQgaW4gZWRnZXM6IFwiLFxuICAgICAgICBmaW5kTm9uQ2x1c3RlckNoaWxkKGlkLCBncmFwaClcbiAgICAgICk7XG4gICAgICBkZXNjZW5kYW50c1tpZF0gPSBleHRyYWN0RGVzY2VuZGFudHMoaWQsIGdyYXBoKTtcbiAgICAgIGNsdXN0ZXJEYltpZF0gPSB7IGlkOiBmaW5kTm9uQ2x1c3RlckNoaWxkKGlkLCBncmFwaCksIGNsdXN0ZXJEYXRhOiBncmFwaC5ub2RlKGlkKSB9O1xuICAgIH1cbiAgfSk7XG4gIGdyYXBoLm5vZGVzKCkuZm9yRWFjaChmdW5jdGlvbihpZCkge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gZ3JhcGguY2hpbGRyZW4oaWQpO1xuICAgIGNvbnN0IGVkZ2VzID0gZ3JhcGguZWRnZXMoKTtcbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgbG9nLmRlYnVnKFwiQ2x1c3RlciBpZGVudGlmaWVkXCIsIGlkLCBkZXNjZW5kYW50cyk7XG4gICAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICAgIGlmIChlZGdlLnYgIT09IGlkICYmIGVkZ2UudyAhPT0gaWQpIHtcbiAgICAgICAgICBjb25zdCBkMSA9IGlzRGVzY2VuZGFudChlZGdlLnYsIGlkKTtcbiAgICAgICAgICBjb25zdCBkMiA9IGlzRGVzY2VuZGFudChlZGdlLncsIGlkKTtcbiAgICAgICAgICBpZiAoZDEgXiBkMikge1xuICAgICAgICAgICAgbG9nLndhcm4oXCJFZGdlOiBcIiwgZWRnZSwgXCIgbGVhdmVzIGNsdXN0ZXIgXCIsIGlkKTtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRGVzY2VuZGFudHMgb2YgWFhYIFwiLCBpZCwgXCI6IFwiLCBkZXNjZW5kYW50c1tpZF0pO1xuICAgICAgICAgICAgY2x1c3RlckRiW2lkXS5leHRlcm5hbENvbm5lY3Rpb25zID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuZGVidWcoXCJOb3QgYSBjbHVzdGVyIFwiLCBpZCwgZGVzY2VuZGFudHMpO1xuICAgIH1cbiAgfSk7XG4gIGZvciAobGV0IGlkIG9mIE9iamVjdC5rZXlzKGNsdXN0ZXJEYikpIHtcbiAgICBjb25zdCBub25DbHVzdGVyQ2hpbGQgPSBjbHVzdGVyRGJbaWRdLmlkO1xuICAgIGNvbnN0IHBhcmVudCA9IGdyYXBoLnBhcmVudChub25DbHVzdGVyQ2hpbGQpO1xuICAgIGlmIChwYXJlbnQgIT09IGlkICYmIGNsdXN0ZXJEYltwYXJlbnRdICYmICFjbHVzdGVyRGJbcGFyZW50XS5leHRlcm5hbENvbm5lY3Rpb25zKSB7XG4gICAgICBjbHVzdGVyRGJbaWRdLmlkID0gcGFyZW50O1xuICAgIH1cbiAgfVxuICBncmFwaC5lZGdlcygpLmZvckVhY2goZnVuY3Rpb24oZSkge1xuICAgIGNvbnN0IGVkZ2UgPSBncmFwaC5lZGdlKGUpO1xuICAgIGxvZy53YXJuKFwiRWRnZSBcIiArIGUudiArIFwiIC0+IFwiICsgZS53ICsgXCI6IFwiICsgSlNPTi5zdHJpbmdpZnkoZSkpO1xuICAgIGxvZy53YXJuKFwiRWRnZSBcIiArIGUudiArIFwiIC0+IFwiICsgZS53ICsgXCI6IFwiICsgSlNPTi5zdHJpbmdpZnkoZ3JhcGguZWRnZShlKSkpO1xuICAgIGxldCB2ID0gZS52O1xuICAgIGxldCB3ID0gZS53O1xuICAgIGxvZy53YXJuKFxuICAgICAgXCJGaXggWFhYXCIsXG4gICAgICBjbHVzdGVyRGIsXG4gICAgICBcImlkczpcIixcbiAgICAgIGUudixcbiAgICAgIGUudyxcbiAgICAgIFwiVHJhbnNsYXRpbmc6IFwiLFxuICAgICAgY2x1c3RlckRiW2Uudl0sXG4gICAgICBcIiAtLS0gXCIsXG4gICAgICBjbHVzdGVyRGJbZS53XVxuICAgICk7XG4gICAgaWYgKGNsdXN0ZXJEYltlLnZdICYmIGNsdXN0ZXJEYltlLnddICYmIGNsdXN0ZXJEYltlLnZdID09PSBjbHVzdGVyRGJbZS53XSkge1xuICAgICAgbG9nLndhcm4oXCJGaXhpbmcgYW5kIHRyaXhpbmcgbGluayB0byBzZWxmIC0gcmVtb3ZpbmcgWFhYXCIsIGUudiwgZS53LCBlLm5hbWUpO1xuICAgICAgbG9nLndhcm4oXCJGaXhpbmcgYW5kIHRyaXhpbmcgLSByZW1vdmluZyBYWFhcIiwgZS52LCBlLncsIGUubmFtZSk7XG4gICAgICB2ID0gZ2V0QW5jaG9ySWQoZS52KTtcbiAgICAgIHcgPSBnZXRBbmNob3JJZChlLncpO1xuICAgICAgZ3JhcGgucmVtb3ZlRWRnZShlLnYsIGUudywgZS5uYW1lKTtcbiAgICAgIGNvbnN0IHNwZWNpYWxJZCA9IGUudyArIFwiLS0tXCIgKyBlLnY7XG4gICAgICBncmFwaC5zZXROb2RlKHNwZWNpYWxJZCwge1xuICAgICAgICBkb21JZDogc3BlY2lhbElkLFxuICAgICAgICBpZDogc3BlY2lhbElkLFxuICAgICAgICBsYWJlbFN0eWxlOiBcIlwiLFxuICAgICAgICBsYWJlbFRleHQ6IGVkZ2UubGFiZWwsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgIHNoYXBlOiBcImxhYmVsUmVjdFwiLFxuICAgICAgICBzdHlsZTogXCJcIlxuICAgICAgfSk7XG4gICAgICBjb25zdCBlZGdlMSA9IHN0cnVjdHVyZWRDbG9uZShlZGdlKTtcbiAgICAgIGNvbnN0IGVkZ2UyID0gc3RydWN0dXJlZENsb25lKGVkZ2UpO1xuICAgICAgZWRnZTEubGFiZWwgPSBcIlwiO1xuICAgICAgZWRnZTEuYXJyb3dUeXBlRW5kID0gXCJub25lXCI7XG4gICAgICBlZGdlMi5sYWJlbCA9IFwiXCI7XG4gICAgICBlZGdlMS5mcm9tQ2x1c3RlciA9IGUudjtcbiAgICAgIGVkZ2UyLnRvQ2x1c3RlciA9IGUudjtcbiAgICAgIGdyYXBoLnNldEVkZ2Uodiwgc3BlY2lhbElkLCBlZGdlMSwgZS5uYW1lICsgXCItY3ljbGljLXNwZWNpYWxcIik7XG4gICAgICBncmFwaC5zZXRFZGdlKHNwZWNpYWxJZCwgdywgZWRnZTIsIGUubmFtZSArIFwiLWN5Y2xpYy1zcGVjaWFsXCIpO1xuICAgIH0gZWxzZSBpZiAoY2x1c3RlckRiW2Uudl0gfHwgY2x1c3RlckRiW2Uud10pIHtcbiAgICAgIGxvZy53YXJuKFwiRml4aW5nIGFuZCB0cml4aW5nIC0gcmVtb3ZpbmcgWFhYXCIsIGUudiwgZS53LCBlLm5hbWUpO1xuICAgICAgdiA9IGdldEFuY2hvcklkKGUudik7XG4gICAgICB3ID0gZ2V0QW5jaG9ySWQoZS53KTtcbiAgICAgIGdyYXBoLnJlbW92ZUVkZ2UoZS52LCBlLncsIGUubmFtZSk7XG4gICAgICBpZiAodiAhPT0gZS52KSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGdyYXBoLnBhcmVudCh2KTtcbiAgICAgICAgY2x1c3RlckRiW3BhcmVudF0uZXh0ZXJuYWxDb25uZWN0aW9ucyA9IHRydWU7XG4gICAgICAgIGVkZ2UuZnJvbUNsdXN0ZXIgPSBlLnY7XG4gICAgICB9XG4gICAgICBpZiAodyAhPT0gZS53KSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGdyYXBoLnBhcmVudCh3KTtcbiAgICAgICAgY2x1c3RlckRiW3BhcmVudF0uZXh0ZXJuYWxDb25uZWN0aW9ucyA9IHRydWU7XG4gICAgICAgIGVkZ2UudG9DbHVzdGVyID0gZS53O1xuICAgICAgfVxuICAgICAgbG9nLndhcm4oXCJGaXggUmVwbGFjaW5nIHdpdGggWFhYXCIsIHYsIHcsIGUubmFtZSk7XG4gICAgICBncmFwaC5zZXRFZGdlKHYsIHcsIGVkZ2UsIGUubmFtZSk7XG4gICAgfVxuICB9KTtcbiAgbG9nLndhcm4oXCJBZGp1c3RlZCBHcmFwaFwiLCBncmFwaGxpYkpzb24ud3JpdGUoZ3JhcGgpKTtcbiAgZXh0cmFjdG9yKGdyYXBoLCAwKTtcbiAgbG9nLnRyYWNlKGNsdXN0ZXJEYik7XG59O1xuY29uc3QgZXh0cmFjdG9yID0gKGdyYXBoLCBkZXB0aCkgPT4ge1xuICBsb2cud2FybihcImV4dHJhY3RvciAtIFwiLCBkZXB0aCwgZ3JhcGhsaWJKc29uLndyaXRlKGdyYXBoKSwgZ3JhcGguY2hpbGRyZW4oXCJEXCIpKTtcbiAgaWYgKGRlcHRoID4gMTApIHtcbiAgICBsb2cuZXJyb3IoXCJCYWlsaW5nIG91dFwiKTtcbiAgICByZXR1cm47XG4gIH1cbiAgbGV0IG5vZGVzID0gZ3JhcGgubm9kZXMoKTtcbiAgbGV0IGhhc0NoaWxkcmVuID0gZmFsc2U7XG4gIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gZ3JhcGguY2hpbGRyZW4obm9kZSk7XG4gICAgaGFzQ2hpbGRyZW4gPSBoYXNDaGlsZHJlbiB8fCBjaGlsZHJlbi5sZW5ndGggPiAwO1xuICB9XG4gIGlmICghaGFzQ2hpbGRyZW4pIHtcbiAgICBsb2cuZGVidWcoXCJEb25lLCBubyBub2RlIGhhcyBjaGlsZHJlblwiLCBncmFwaC5ub2RlcygpKTtcbiAgICByZXR1cm47XG4gIH1cbiAgbG9nLmRlYnVnKFwiTm9kZXMgPSBcIiwgbm9kZXMsIGRlcHRoKTtcbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgXCJFeHRyYWN0aW5nIG5vZGVcIixcbiAgICAgIG5vZGUsXG4gICAgICBjbHVzdGVyRGIsXG4gICAgICBjbHVzdGVyRGJbbm9kZV0gJiYgIWNsdXN0ZXJEYltub2RlXS5leHRlcm5hbENvbm5lY3Rpb25zLFxuICAgICAgIWdyYXBoLnBhcmVudChub2RlKSxcbiAgICAgIGdyYXBoLm5vZGUobm9kZSksXG4gICAgICBncmFwaC5jaGlsZHJlbihcIkRcIiksXG4gICAgICBcIiBEZXB0aCBcIixcbiAgICAgIGRlcHRoXG4gICAgKTtcbiAgICBpZiAoIWNsdXN0ZXJEYltub2RlXSkge1xuICAgICAgbG9nLmRlYnVnKFwiTm90IGEgY2x1c3RlclwiLCBub2RlLCBkZXB0aCk7XG4gICAgfSBlbHNlIGlmICghY2x1c3RlckRiW25vZGVdLmV4dGVybmFsQ29ubmVjdGlvbnMgJiYgLy8gIWdyYXBoLnBhcmVudChub2RlKSAmJlxuICAgIGdyYXBoLmNoaWxkcmVuKG5vZGUpICYmIGdyYXBoLmNoaWxkcmVuKG5vZGUpLmxlbmd0aCA+IDApIHtcbiAgICAgIGxvZy53YXJuKFxuICAgICAgICBcIkNsdXN0ZXIgd2l0aG91dCBleHRlcm5hbCBjb25uZWN0aW9ucywgd2l0aG91dCBhIHBhcmVudCBhbmQgd2l0aCBjaGlsZHJlblwiLFxuICAgICAgICBub2RlLFxuICAgICAgICBkZXB0aFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGdyYXBoU2V0dGluZ3MgPSBncmFwaC5ncmFwaCgpO1xuICAgICAgbGV0IGRpciA9IGdyYXBoU2V0dGluZ3MucmFua2RpciA9PT0gXCJUQlwiID8gXCJMUlwiIDogXCJUQlwiO1xuICAgICAgaWYgKGNsdXN0ZXJEYltub2RlXSAmJiBjbHVzdGVyRGJbbm9kZV0uY2x1c3RlckRhdGEgJiYgY2x1c3RlckRiW25vZGVdLmNsdXN0ZXJEYXRhLmRpcikge1xuICAgICAgICBkaXIgPSBjbHVzdGVyRGJbbm9kZV0uY2x1c3RlckRhdGEuZGlyO1xuICAgICAgICBsb2cud2FybihcIkZpeGluZyBkaXJcIiwgY2x1c3RlckRiW25vZGVdLmNsdXN0ZXJEYXRhLmRpciwgZGlyKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNsdXN0ZXJHcmFwaCA9IG5ldyBncmFwaGxpYi5HcmFwaCh7XG4gICAgICAgIG11bHRpZ3JhcGg6IHRydWUsXG4gICAgICAgIGNvbXBvdW5kOiB0cnVlXG4gICAgICB9KS5zZXRHcmFwaCh7XG4gICAgICAgIHJhbmtkaXI6IGRpcixcbiAgICAgICAgLy8gVG9kbzogc2V0IHByb3BlciBzcGFjaW5nXG4gICAgICAgIG5vZGVzZXA6IDUwLFxuICAgICAgICByYW5rc2VwOiA1MCxcbiAgICAgICAgbWFyZ2lueDogOCxcbiAgICAgICAgbWFyZ2lueTogOFxuICAgICAgfSkuc2V0RGVmYXVsdEVkZ2VMYWJlbChmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfSk7XG4gICAgICBsb2cud2FybihcIk9sZCBncmFwaCBiZWZvcmUgY29weVwiLCBncmFwaGxpYkpzb24ud3JpdGUoZ3JhcGgpKTtcbiAgICAgIGNvcHkobm9kZSwgZ3JhcGgsIGNsdXN0ZXJHcmFwaCwgbm9kZSk7XG4gICAgICBncmFwaC5zZXROb2RlKG5vZGUsIHtcbiAgICAgICAgY2x1c3Rlck5vZGU6IHRydWUsXG4gICAgICAgIGlkOiBub2RlLFxuICAgICAgICBjbHVzdGVyRGF0YTogY2x1c3RlckRiW25vZGVdLmNsdXN0ZXJEYXRhLFxuICAgICAgICBsYWJlbFRleHQ6IGNsdXN0ZXJEYltub2RlXS5sYWJlbFRleHQsXG4gICAgICAgIGdyYXBoOiBjbHVzdGVyR3JhcGhcbiAgICAgIH0pO1xuICAgICAgbG9nLndhcm4oXCJOZXcgZ3JhcGggYWZ0ZXIgY29weSBub2RlOiAoXCIsIG5vZGUsIFwiKVwiLCBncmFwaGxpYkpzb24ud3JpdGUoY2x1c3RlckdyYXBoKSk7XG4gICAgICBsb2cuZGVidWcoXCJPbGQgZ3JhcGggYWZ0ZXIgY29weVwiLCBncmFwaGxpYkpzb24ud3JpdGUoZ3JhcGgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIFwiQ2x1c3RlciAqKiBcIixcbiAgICAgICAgbm9kZSxcbiAgICAgICAgXCIgKipub3QgbWVldGluZyB0aGUgY3JpdGVyaWEgIWV4dGVybmFsQ29ubmVjdGlvbnM6XCIsXG4gICAgICAgICFjbHVzdGVyRGJbbm9kZV0uZXh0ZXJuYWxDb25uZWN0aW9ucyxcbiAgICAgICAgXCIgbm8gcGFyZW50OiBcIixcbiAgICAgICAgIWdyYXBoLnBhcmVudChub2RlKSxcbiAgICAgICAgXCIgY2hpbGRyZW4gXCIsXG4gICAgICAgIGdyYXBoLmNoaWxkcmVuKG5vZGUpICYmIGdyYXBoLmNoaWxkcmVuKG5vZGUpLmxlbmd0aCA+IDAsXG4gICAgICAgIGdyYXBoLmNoaWxkcmVuKFwiRFwiKSxcbiAgICAgICAgZGVwdGhcbiAgICAgICk7XG4gICAgICBsb2cuZGVidWcoY2x1c3RlckRiKTtcbiAgICB9XG4gIH1cbiAgbm9kZXMgPSBncmFwaC5ub2RlcygpO1xuICBsb2cud2FybihcIk5ldyBsaXN0IG9mIG5vZGVzXCIsIG5vZGVzKTtcbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgY29uc3QgZGF0YSA9IGdyYXBoLm5vZGUobm9kZSk7XG4gICAgbG9nLndhcm4oXCIgTm93IG5leHQgbGV2ZWxcIiwgbm9kZSwgZGF0YSk7XG4gICAgaWYgKGRhdGEuY2x1c3Rlck5vZGUpIHtcbiAgICAgIGV4dHJhY3RvcihkYXRhLmdyYXBoLCBkZXB0aCArIDEpO1xuICAgIH1cbiAgfVxufTtcbmNvbnN0IHNvcnRlciA9IChncmFwaCwgbm9kZXMpID0+IHtcbiAgaWYgKG5vZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBsZXQgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbihub2Rlcyk7XG4gIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IGdyYXBoLmNoaWxkcmVuKG5vZGUpO1xuICAgIGNvbnN0IHNvcnRlZCA9IHNvcnRlcihncmFwaCwgY2hpbGRyZW4pO1xuICAgIHJlc3VsdCA9IFsuLi5yZXN1bHQsIC4uLnNvcnRlZF07XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufTtcbmNvbnN0IHNvcnROb2Rlc0J5SGllcmFyY2h5ID0gKGdyYXBoKSA9PiBzb3J0ZXIoZ3JhcGgsIGdyYXBoLmNoaWxkcmVuKCkpO1xuY29uc3QgcmVjdCA9IChwYXJlbnQsIG5vZGUpID0+IHtcbiAgbG9nLmluZm8oXCJDcmVhdGluZyBzdWJncmFwaCByZWN0IGZvciBcIiwgbm9kZS5pZCwgbm9kZSk7XG4gIGNvbnN0IHNpdGVDb25maWcgPSBnZXRDb25maWcoKTtcbiAgY29uc3Qgc2hhcGVTdmcgPSBwYXJlbnQuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJjbHVzdGVyXCIgKyAobm9kZS5jbGFzcyA/IFwiIFwiICsgbm9kZS5jbGFzcyA6IFwiXCIpKS5hdHRyKFwiaWRcIiwgbm9kZS5pZCk7XG4gIGNvbnN0IHJlY3QyID0gc2hhcGVTdmcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKTtcbiAgY29uc3QgdXNlSHRtbExhYmVscyA9IGV2YWx1YXRlKHNpdGVDb25maWcuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMpO1xuICBjb25zdCBsYWJlbCA9IHNoYXBlU3ZnLmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwiY2x1c3Rlci1sYWJlbFwiKTtcbiAgY29uc3QgdGV4dCA9IG5vZGUubGFiZWxUeXBlID09PSBcIm1hcmtkb3duXCIgPyBjcmVhdGVUZXh0KGxhYmVsLCBub2RlLmxhYmVsVGV4dCwgeyBzdHlsZTogbm9kZS5sYWJlbFN0eWxlLCB1c2VIdG1sTGFiZWxzIH0pIDogbGFiZWwubm9kZSgpLmFwcGVuZENoaWxkKGNyZWF0ZUxhYmVsKG5vZGUubGFiZWxUZXh0LCBub2RlLmxhYmVsU3R5bGUsIHZvaWQgMCwgdHJ1ZSkpO1xuICBsZXQgYmJveCA9IHRleHQuZ2V0QkJveCgpO1xuICBpZiAoZXZhbHVhdGUoc2l0ZUNvbmZpZy5mbG93Y2hhcnQuaHRtbExhYmVscykpIHtcbiAgICBjb25zdCBkaXYgPSB0ZXh0LmNoaWxkcmVuWzBdO1xuICAgIGNvbnN0IGR2ID0gc2VsZWN0KHRleHQpO1xuICAgIGJib3ggPSBkaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgZHYuYXR0cihcIndpZHRoXCIsIGJib3gud2lkdGgpO1xuICAgIGR2LmF0dHIoXCJoZWlnaHRcIiwgYmJveC5oZWlnaHQpO1xuICB9XG4gIGNvbnN0IHBhZGRpbmcgPSAwICogbm9kZS5wYWRkaW5nO1xuICBjb25zdCBoYWxmUGFkZGluZyA9IHBhZGRpbmcgLyAyO1xuICBjb25zdCB3aWR0aCA9IG5vZGUud2lkdGggPD0gYmJveC53aWR0aCArIHBhZGRpbmcgPyBiYm94LndpZHRoICsgcGFkZGluZyA6IG5vZGUud2lkdGg7XG4gIGlmIChub2RlLndpZHRoIDw9IGJib3gud2lkdGggKyBwYWRkaW5nKSB7XG4gICAgbm9kZS5kaWZmID0gKGJib3gud2lkdGggLSBub2RlLndpZHRoKSAvIDIgLSBub2RlLnBhZGRpbmcgLyAyO1xuICB9IGVsc2Uge1xuICAgIG5vZGUuZGlmZiA9IC1ub2RlLnBhZGRpbmcgLyAyO1xuICB9XG4gIGxvZy50cmFjZShcIkRhdGEgXCIsIG5vZGUsIEpTT04uc3RyaW5naWZ5KG5vZGUpKTtcbiAgcmVjdDIuYXR0cihcInN0eWxlXCIsIG5vZGUuc3R5bGUpLmF0dHIoXCJyeFwiLCBub2RlLnJ4KS5hdHRyKFwicnlcIiwgbm9kZS5yeSkuYXR0cihcInhcIiwgbm9kZS54IC0gd2lkdGggLyAyKS5hdHRyKFwieVwiLCBub2RlLnkgLSBub2RlLmhlaWdodCAvIDIgLSBoYWxmUGFkZGluZykuYXR0cihcIndpZHRoXCIsIHdpZHRoKS5hdHRyKFwiaGVpZ2h0XCIsIG5vZGUuaGVpZ2h0ICsgcGFkZGluZyk7XG4gIGNvbnN0IHsgc3ViR3JhcGhUaXRsZVRvcE1hcmdpbiB9ID0gZ2V0U3ViR3JhcGhUaXRsZU1hcmdpbnMoc2l0ZUNvbmZpZyk7XG4gIGlmICh1c2VIdG1sTGFiZWxzKSB7XG4gICAgbGFiZWwuYXR0cihcbiAgICAgIFwidHJhbnNmb3JtXCIsXG4gICAgICAvLyBUaGlzIHB1dHMgdGhlIGxhYmVsIG9uIHRvcCBvZiB0aGUgYm94IGluc3RlYWQgb2YgaW5zaWRlIGl0XG4gICAgICBgdHJhbnNsYXRlKCR7bm9kZS54IC0gYmJveC53aWR0aCAvIDJ9LCAke25vZGUueSAtIG5vZGUuaGVpZ2h0IC8gMiArIHN1YkdyYXBoVGl0bGVUb3BNYXJnaW59KWBcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxhYmVsLmF0dHIoXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgLy8gVGhpcyBwdXRzIHRoZSBsYWJlbCBvbiB0b3Agb2YgdGhlIGJveCBpbnN0ZWFkIG9mIGluc2lkZSBpdFxuICAgICAgYHRyYW5zbGF0ZSgke25vZGUueH0sICR7bm9kZS55IC0gbm9kZS5oZWlnaHQgLyAyICsgc3ViR3JhcGhUaXRsZVRvcE1hcmdpbn0pYFxuICAgICk7XG4gIH1cbiAgY29uc3QgcmVjdEJveCA9IHJlY3QyLm5vZGUoKS5nZXRCQm94KCk7XG4gIG5vZGUud2lkdGggPSByZWN0Qm94LndpZHRoO1xuICBub2RlLmhlaWdodCA9IHJlY3RCb3guaGVpZ2h0O1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIGludGVyc2VjdFJlY3Qobm9kZSwgcG9pbnQpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3Qgbm90ZUdyb3VwID0gKHBhcmVudCwgbm9kZSkgPT4ge1xuICBjb25zdCBzaGFwZVN2ZyA9IHBhcmVudC5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm5vdGUtY2x1c3RlclwiKS5hdHRyKFwiaWRcIiwgbm9kZS5pZCk7XG4gIGNvbnN0IHJlY3QyID0gc2hhcGVTdmcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKTtcbiAgY29uc3QgcGFkZGluZyA9IDAgKiBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IGhhbGZQYWRkaW5nID0gcGFkZGluZyAvIDI7XG4gIHJlY3QyLmF0dHIoXCJyeFwiLCBub2RlLnJ4KS5hdHRyKFwicnlcIiwgbm9kZS5yeSkuYXR0cihcInhcIiwgbm9kZS54IC0gbm9kZS53aWR0aCAvIDIgLSBoYWxmUGFkZGluZykuYXR0cihcInlcIiwgbm9kZS55IC0gbm9kZS5oZWlnaHQgLyAyIC0gaGFsZlBhZGRpbmcpLmF0dHIoXCJ3aWR0aFwiLCBub2RlLndpZHRoICsgcGFkZGluZykuYXR0cihcImhlaWdodFwiLCBub2RlLmhlaWdodCArIHBhZGRpbmcpLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKTtcbiAgY29uc3QgcmVjdEJveCA9IHJlY3QyLm5vZGUoKS5nZXRCQm94KCk7XG4gIG5vZGUud2lkdGggPSByZWN0Qm94LndpZHRoO1xuICBub2RlLmhlaWdodCA9IHJlY3RCb3guaGVpZ2h0O1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIGludGVyc2VjdFJlY3Qobm9kZSwgcG9pbnQpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3Qgcm91bmRlZFdpdGhUaXRsZSA9IChwYXJlbnQsIG5vZGUpID0+IHtcbiAgY29uc3Qgc2l0ZUNvbmZpZyA9IGdldENvbmZpZygpO1xuICBjb25zdCBzaGFwZVN2ZyA9IHBhcmVudC5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBub2RlLmNsYXNzZXMpLmF0dHIoXCJpZFwiLCBub2RlLmlkKTtcbiAgY29uc3QgcmVjdDIgPSBzaGFwZVN2Zy5pbnNlcnQoXCJyZWN0XCIsIFwiOmZpcnN0LWNoaWxkXCIpO1xuICBjb25zdCBsYWJlbCA9IHNoYXBlU3ZnLmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwiY2x1c3Rlci1sYWJlbFwiKTtcbiAgY29uc3QgaW5uZXJSZWN0ID0gc2hhcGVTdmcuYXBwZW5kKFwicmVjdFwiKTtcbiAgY29uc3QgdGV4dCA9IGxhYmVsLm5vZGUoKS5hcHBlbmRDaGlsZChjcmVhdGVMYWJlbChub2RlLmxhYmVsVGV4dCwgbm9kZS5sYWJlbFN0eWxlLCB2b2lkIDAsIHRydWUpKTtcbiAgbGV0IGJib3ggPSB0ZXh0LmdldEJCb3goKTtcbiAgaWYgKGV2YWx1YXRlKHNpdGVDb25maWcuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMpKSB7XG4gICAgY29uc3QgZGl2ID0gdGV4dC5jaGlsZHJlblswXTtcbiAgICBjb25zdCBkdiA9IHNlbGVjdCh0ZXh0KTtcbiAgICBiYm94ID0gZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGR2LmF0dHIoXCJ3aWR0aFwiLCBiYm94LndpZHRoKTtcbiAgICBkdi5hdHRyKFwiaGVpZ2h0XCIsIGJib3guaGVpZ2h0KTtcbiAgfVxuICBiYm94ID0gdGV4dC5nZXRCQm94KCk7XG4gIGNvbnN0IHBhZGRpbmcgPSAwICogbm9kZS5wYWRkaW5nO1xuICBjb25zdCBoYWxmUGFkZGluZyA9IHBhZGRpbmcgLyAyO1xuICBjb25zdCB3aWR0aCA9IG5vZGUud2lkdGggPD0gYmJveC53aWR0aCArIG5vZGUucGFkZGluZyA/IGJib3gud2lkdGggKyBub2RlLnBhZGRpbmcgOiBub2RlLndpZHRoO1xuICBpZiAobm9kZS53aWR0aCA8PSBiYm94LndpZHRoICsgbm9kZS5wYWRkaW5nKSB7XG4gICAgbm9kZS5kaWZmID0gKGJib3gud2lkdGggKyBub2RlLnBhZGRpbmcgKiAwIC0gbm9kZS53aWR0aCkgLyAyO1xuICB9IGVsc2Uge1xuICAgIG5vZGUuZGlmZiA9IC1ub2RlLnBhZGRpbmcgLyAyO1xuICB9XG4gIHJlY3QyLmF0dHIoXCJjbGFzc1wiLCBcIm91dGVyXCIpLmF0dHIoXCJ4XCIsIG5vZGUueCAtIHdpZHRoIC8gMiAtIGhhbGZQYWRkaW5nKS5hdHRyKFwieVwiLCBub2RlLnkgLSBub2RlLmhlaWdodCAvIDIgLSBoYWxmUGFkZGluZykuYXR0cihcIndpZHRoXCIsIHdpZHRoICsgcGFkZGluZykuYXR0cihcImhlaWdodFwiLCBub2RlLmhlaWdodCArIHBhZGRpbmcpO1xuICBpbm5lclJlY3QuYXR0cihcImNsYXNzXCIsIFwiaW5uZXJcIikuYXR0cihcInhcIiwgbm9kZS54IC0gd2lkdGggLyAyIC0gaGFsZlBhZGRpbmcpLmF0dHIoXCJ5XCIsIG5vZGUueSAtIG5vZGUuaGVpZ2h0IC8gMiAtIGhhbGZQYWRkaW5nICsgYmJveC5oZWlnaHQgLSAxKS5hdHRyKFwid2lkdGhcIiwgd2lkdGggKyBwYWRkaW5nKS5hdHRyKFwiaGVpZ2h0XCIsIG5vZGUuaGVpZ2h0ICsgcGFkZGluZyAtIGJib3guaGVpZ2h0IC0gMyk7XG4gIGNvbnN0IHsgc3ViR3JhcGhUaXRsZVRvcE1hcmdpbiB9ID0gZ2V0U3ViR3JhcGhUaXRsZU1hcmdpbnMoc2l0ZUNvbmZpZyk7XG4gIGxhYmVsLmF0dHIoXG4gICAgXCJ0cmFuc2Zvcm1cIixcbiAgICBgdHJhbnNsYXRlKCR7bm9kZS54IC0gYmJveC53aWR0aCAvIDJ9LCAke25vZGUueSAtIG5vZGUuaGVpZ2h0IC8gMiAtIG5vZGUucGFkZGluZyAvIDMgKyAoZXZhbHVhdGUoc2l0ZUNvbmZpZy5mbG93Y2hhcnQuaHRtbExhYmVscykgPyA1IDogMykgKyBzdWJHcmFwaFRpdGxlVG9wTWFyZ2lufSlgXG4gICk7XG4gIGNvbnN0IHJlY3RCb3ggPSByZWN0Mi5ub2RlKCkuZ2V0QkJveCgpO1xuICBub2RlLmhlaWdodCA9IHJlY3RCb3guaGVpZ2h0O1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIGludGVyc2VjdFJlY3Qobm9kZSwgcG9pbnQpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59O1xuY29uc3QgZGl2aWRlciA9IChwYXJlbnQsIG5vZGUpID0+IHtcbiAgY29uc3Qgc2hhcGVTdmcgPSBwYXJlbnQuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgbm9kZS5jbGFzc2VzKS5hdHRyKFwiaWRcIiwgbm9kZS5pZCk7XG4gIGNvbnN0IHJlY3QyID0gc2hhcGVTdmcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKTtcbiAgY29uc3QgcGFkZGluZyA9IDAgKiBub2RlLnBhZGRpbmc7XG4gIGNvbnN0IGhhbGZQYWRkaW5nID0gcGFkZGluZyAvIDI7XG4gIHJlY3QyLmF0dHIoXCJjbGFzc1wiLCBcImRpdmlkZXJcIikuYXR0cihcInhcIiwgbm9kZS54IC0gbm9kZS53aWR0aCAvIDIgLSBoYWxmUGFkZGluZykuYXR0cihcInlcIiwgbm9kZS55IC0gbm9kZS5oZWlnaHQgLyAyKS5hdHRyKFwid2lkdGhcIiwgbm9kZS53aWR0aCArIHBhZGRpbmcpLmF0dHIoXCJoZWlnaHRcIiwgbm9kZS5oZWlnaHQgKyBwYWRkaW5nKTtcbiAgY29uc3QgcmVjdEJveCA9IHJlY3QyLm5vZGUoKS5nZXRCQm94KCk7XG4gIG5vZGUud2lkdGggPSByZWN0Qm94LndpZHRoO1xuICBub2RlLmhlaWdodCA9IHJlY3RCb3guaGVpZ2h0O1xuICBub2RlLmRpZmYgPSAtbm9kZS5wYWRkaW5nIC8gMjtcbiAgbm9kZS5pbnRlcnNlY3QgPSBmdW5jdGlvbihwb2ludCkge1xuICAgIHJldHVybiBpbnRlcnNlY3RSZWN0KG5vZGUsIHBvaW50KTtcbiAgfTtcbiAgcmV0dXJuIHNoYXBlU3ZnO1xufTtcbmNvbnN0IHNoYXBlcyA9IHsgcmVjdCwgcm91bmRlZFdpdGhUaXRsZSwgbm90ZUdyb3VwLCBkaXZpZGVyIH07XG5sZXQgY2x1c3RlckVsZW1zID0ge307XG5jb25zdCBpbnNlcnRDbHVzdGVyID0gKGVsZW0sIG5vZGUpID0+IHtcbiAgbG9nLnRyYWNlKFwiSW5zZXJ0aW5nIGNsdXN0ZXJcIik7XG4gIGNvbnN0IHNoYXBlID0gbm9kZS5zaGFwZSB8fCBcInJlY3RcIjtcbiAgY2x1c3RlckVsZW1zW25vZGUuaWRdID0gc2hhcGVzW3NoYXBlXShlbGVtLCBub2RlKTtcbn07XG5jb25zdCBjbGVhciA9ICgpID0+IHtcbiAgY2x1c3RlckVsZW1zID0ge307XG59O1xuY29uc3QgcmVjdXJzaXZlUmVuZGVyID0gYXN5bmMgKF9lbGVtLCBncmFwaCwgZGlhZ3JhbVR5cGUsIGlkLCBwYXJlbnRDbHVzdGVyLCBzaXRlQ29uZmlnKSA9PiB7XG4gIGxvZy5pbmZvKFwiR3JhcGggaW4gcmVjdXJzaXZlIHJlbmRlcjogWFhYXCIsIGdyYXBobGliSnNvbi53cml0ZShncmFwaCksIHBhcmVudENsdXN0ZXIpO1xuICBjb25zdCBkaXIgPSBncmFwaC5ncmFwaCgpLnJhbmtkaXI7XG4gIGxvZy50cmFjZShcIkRpciBpbiByZWN1cnNpdmUgcmVuZGVyIC0gZGlyOlwiLCBkaXIpO1xuICBjb25zdCBlbGVtID0gX2VsZW0uaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJyb290XCIpO1xuICBpZiAoIWdyYXBoLm5vZGVzKCkpIHtcbiAgICBsb2cuaW5mbyhcIk5vIG5vZGVzIGZvdW5kIGZvclwiLCBncmFwaCk7XG4gIH0gZWxzZSB7XG4gICAgbG9nLmluZm8oXCJSZWN1cnNpdmUgcmVuZGVyIFhYWFwiLCBncmFwaC5ub2RlcygpKTtcbiAgfVxuICBpZiAoZ3JhcGguZWRnZXMoKS5sZW5ndGggPiAwKSB7XG4gICAgbG9nLnRyYWNlKFwiUmVjdXJzaXZlIGVkZ2VzXCIsIGdyYXBoLmVkZ2UoZ3JhcGguZWRnZXMoKVswXSkpO1xuICB9XG4gIGNvbnN0IGNsdXN0ZXJzID0gZWxlbS5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImNsdXN0ZXJzXCIpO1xuICBjb25zdCBlZGdlUGF0aHMgPSBlbGVtLmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwiZWRnZVBhdGhzXCIpO1xuICBjb25zdCBlZGdlTGFiZWxzID0gZWxlbS5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImVkZ2VMYWJlbHNcIik7XG4gIGNvbnN0IG5vZGVzID0gZWxlbS5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm5vZGVzXCIpO1xuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBncmFwaC5ub2RlcygpLm1hcChhc3luYyBmdW5jdGlvbih2KSB7XG4gICAgICBjb25zdCBub2RlID0gZ3JhcGgubm9kZSh2KTtcbiAgICAgIGlmIChwYXJlbnRDbHVzdGVyICE9PSB2b2lkIDApIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocGFyZW50Q2x1c3Rlci5jbHVzdGVyRGF0YSkpO1xuICAgICAgICBsb2cuaW5mbyhcIlNldHRpbmcgZGF0YSBmb3IgY2x1c3RlciBYWFggKFwiLCB2LCBcIikgXCIsIGRhdGEsIHBhcmVudENsdXN0ZXIpO1xuICAgICAgICBncmFwaC5zZXROb2RlKHBhcmVudENsdXN0ZXIuaWQsIGRhdGEpO1xuICAgICAgICBpZiAoIWdyYXBoLnBhcmVudCh2KSkge1xuICAgICAgICAgIGxvZy50cmFjZShcIlNldHRpbmcgcGFyZW50XCIsIHYsIHBhcmVudENsdXN0ZXIuaWQpO1xuICAgICAgICAgIGdyYXBoLnNldFBhcmVudCh2LCBwYXJlbnRDbHVzdGVyLmlkLCBkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbG9nLmluZm8oXCIoSW5zZXJ0KSBOb2RlIFhYWFwiICsgdiArIFwiOiBcIiArIEpTT04uc3RyaW5naWZ5KGdyYXBoLm5vZGUodikpKTtcbiAgICAgIGlmIChub2RlICYmIG5vZGUuY2x1c3Rlck5vZGUpIHtcbiAgICAgICAgbG9nLmluZm8oXCJDbHVzdGVyIGlkZW50aWZpZWRcIiwgdiwgbm9kZS53aWR0aCwgZ3JhcGgubm9kZSh2KSk7XG4gICAgICAgIGNvbnN0IG8gPSBhd2FpdCByZWN1cnNpdmVSZW5kZXIoXG4gICAgICAgICAgbm9kZXMsXG4gICAgICAgICAgbm9kZS5ncmFwaCxcbiAgICAgICAgICBkaWFncmFtVHlwZSxcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBncmFwaC5ub2RlKHYpLFxuICAgICAgICAgIHNpdGVDb25maWdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmV3RWwgPSBvLmVsZW07XG4gICAgICAgIHVwZGF0ZU5vZGVCb3VuZHMobm9kZSwgbmV3RWwpO1xuICAgICAgICBub2RlLmRpZmYgPSBvLmRpZmYgfHwgMDtcbiAgICAgICAgbG9nLmluZm8oXCJOb2RlIGJvdW5kcyAoYWJjMTIzKVwiLCB2LCBub2RlLCBub2RlLndpZHRoLCBub2RlLngsIG5vZGUueSk7XG4gICAgICAgIHNldE5vZGVFbGVtKG5ld0VsLCBub2RlKTtcbiAgICAgICAgbG9nLndhcm4oXCJSZWN1cnNpdmUgcmVuZGVyIGNvbXBsZXRlIFwiLCBuZXdFbCwgbm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZ3JhcGguY2hpbGRyZW4odikubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGxvZy5pbmZvKFwiQ2x1c3RlciAtIHRoZSBub24gcmVjdXJzaXZlIHBhdGggWFhYXCIsIHYsIG5vZGUuaWQsIG5vZGUsIGdyYXBoKTtcbiAgICAgICAgICBsb2cuaW5mbyhmaW5kTm9uQ2x1c3RlckNoaWxkKG5vZGUuaWQsIGdyYXBoKSk7XG4gICAgICAgICAgY2x1c3RlckRiW25vZGUuaWRdID0geyBpZDogZmluZE5vbkNsdXN0ZXJDaGlsZChub2RlLmlkLCBncmFwaCksIG5vZGUgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2cuaW5mbyhcIk5vZGUgLSB0aGUgbm9uIHJlY3Vyc2l2ZSBwYXRoXCIsIHYsIG5vZGUuaWQsIG5vZGUpO1xuICAgICAgICAgIGF3YWl0IGluc2VydE5vZGUobm9kZXMsIGdyYXBoLm5vZGUodiksIGRpcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICApO1xuICBncmFwaC5lZGdlcygpLmZvckVhY2goZnVuY3Rpb24oZSkge1xuICAgIGNvbnN0IGVkZ2UgPSBncmFwaC5lZGdlKGUudiwgZS53LCBlLm5hbWUpO1xuICAgIGxvZy5pbmZvKFwiRWRnZSBcIiArIGUudiArIFwiIC0+IFwiICsgZS53ICsgXCI6IFwiICsgSlNPTi5zdHJpbmdpZnkoZSkpO1xuICAgIGxvZy5pbmZvKFwiRWRnZSBcIiArIGUudiArIFwiIC0+IFwiICsgZS53ICsgXCI6IFwiLCBlLCBcIiBcIiwgSlNPTi5zdHJpbmdpZnkoZ3JhcGguZWRnZShlKSkpO1xuICAgIGxvZy5pbmZvKFwiRml4XCIsIGNsdXN0ZXJEYiwgXCJpZHM6XCIsIGUudiwgZS53LCBcIlRyYW5zbGF0aW5nOiBcIiwgY2x1c3RlckRiW2Uudl0sIGNsdXN0ZXJEYltlLnddKTtcbiAgICBpbnNlcnRFZGdlTGFiZWwoZWRnZUxhYmVscywgZWRnZSk7XG4gIH0pO1xuICBncmFwaC5lZGdlcygpLmZvckVhY2goZnVuY3Rpb24oZSkge1xuICAgIGxvZy5pbmZvKFwiRWRnZSBcIiArIGUudiArIFwiIC0+IFwiICsgZS53ICsgXCI6IFwiICsgSlNPTi5zdHJpbmdpZnkoZSkpO1xuICB9KTtcbiAgbG9nLmluZm8oXCIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcIik7XG4gIGxvZy5pbmZvKFwiIyMjICAgICAgICAgICAgICAgIExheW91dCAgICAgICAgICAgICAgICAgIyMjXCIpO1xuICBsb2cuaW5mbyhcIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1wiKTtcbiAgbG9nLmluZm8oZ3JhcGgpO1xuICBsYXlvdXQoZ3JhcGgpO1xuICBsb2cuaW5mbyhcIkdyYXBoIGFmdGVyIGxheW91dDpcIiwgZ3JhcGhsaWJKc29uLndyaXRlKGdyYXBoKSk7XG4gIGxldCBkaWZmID0gMDtcbiAgY29uc3QgeyBzdWJHcmFwaFRpdGxlVG90YWxNYXJnaW4gfSA9IGdldFN1YkdyYXBoVGl0bGVNYXJnaW5zKHNpdGVDb25maWcpO1xuICBzb3J0Tm9kZXNCeUhpZXJhcmNoeShncmFwaCkuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgY29uc3Qgbm9kZSA9IGdyYXBoLm5vZGUodik7XG4gICAgbG9nLmluZm8oXCJQb3NpdGlvbiBcIiArIHYgKyBcIjogXCIgKyBKU09OLnN0cmluZ2lmeShncmFwaC5ub2RlKHYpKSk7XG4gICAgbG9nLmluZm8oXG4gICAgICBcIlBvc2l0aW9uIFwiICsgdiArIFwiOiAoXCIgKyBub2RlLngsXG4gICAgICBcIixcIiArIG5vZGUueSxcbiAgICAgIFwiKSB3aWR0aDogXCIsXG4gICAgICBub2RlLndpZHRoLFxuICAgICAgXCIgaGVpZ2h0OiBcIixcbiAgICAgIG5vZGUuaGVpZ2h0XG4gICAgKTtcbiAgICBpZiAobm9kZSAmJiBub2RlLmNsdXN0ZXJOb2RlKSB7XG4gICAgICBub2RlLnkgKz0gc3ViR3JhcGhUaXRsZVRvdGFsTWFyZ2luO1xuICAgICAgcG9zaXRpb25Ob2RlKG5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZ3JhcGguY2hpbGRyZW4odikubGVuZ3RoID4gMCkge1xuICAgICAgICBub2RlLmhlaWdodCArPSBzdWJHcmFwaFRpdGxlVG90YWxNYXJnaW47XG4gICAgICAgIGluc2VydENsdXN0ZXIoY2x1c3RlcnMsIG5vZGUpO1xuICAgICAgICBjbHVzdGVyRGJbbm9kZS5pZF0ubm9kZSA9IG5vZGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLnkgKz0gc3ViR3JhcGhUaXRsZVRvdGFsTWFyZ2luIC8gMjtcbiAgICAgICAgcG9zaXRpb25Ob2RlKG5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIGdyYXBoLmVkZ2VzKCkuZm9yRWFjaChmdW5jdGlvbihlKSB7XG4gICAgY29uc3QgZWRnZSA9IGdyYXBoLmVkZ2UoZSk7XG4gICAgbG9nLmluZm8oXCJFZGdlIFwiICsgZS52ICsgXCIgLT4gXCIgKyBlLncgKyBcIjogXCIgKyBKU09OLnN0cmluZ2lmeShlZGdlKSwgZWRnZSk7XG4gICAgZWRnZS5wb2ludHMuZm9yRWFjaCgocG9pbnQpID0+IHBvaW50LnkgKz0gc3ViR3JhcGhUaXRsZVRvdGFsTWFyZ2luIC8gMik7XG4gICAgY29uc3QgcGF0aHMgPSBpbnNlcnRFZGdlKGVkZ2VQYXRocywgZSwgZWRnZSwgY2x1c3RlckRiLCBkaWFncmFtVHlwZSwgZ3JhcGgsIGlkKTtcbiAgICBwb3NpdGlvbkVkZ2VMYWJlbChlZGdlLCBwYXRocyk7XG4gIH0pO1xuICBncmFwaC5ub2RlcygpLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIGNvbnN0IG4gPSBncmFwaC5ub2RlKHYpO1xuICAgIGxvZy5pbmZvKHYsIG4udHlwZSwgbi5kaWZmKTtcbiAgICBpZiAobi50eXBlID09PSBcImdyb3VwXCIpIHtcbiAgICAgIGRpZmYgPSBuLmRpZmY7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHsgZWxlbSwgZGlmZiB9O1xufTtcbmNvbnN0IHJlbmRlciA9IGFzeW5jIChlbGVtLCBncmFwaCwgbWFya2VycywgZGlhZ3JhbVR5cGUsIGlkKSA9PiB7XG4gIGluc2VydE1hcmtlcnMoZWxlbSwgbWFya2VycywgZGlhZ3JhbVR5cGUsIGlkKTtcbiAgY2xlYXIkMigpO1xuICBjbGVhciQzKCk7XG4gIGNsZWFyKCk7XG4gIGNsZWFyJDEoKTtcbiAgbG9nLndhcm4oXCJHcmFwaCBhdCBmaXJzdDpcIiwgSlNPTi5zdHJpbmdpZnkoZ3JhcGhsaWJKc29uLndyaXRlKGdyYXBoKSkpO1xuICBhZGp1c3RDbHVzdGVyc0FuZEVkZ2VzKGdyYXBoKTtcbiAgbG9nLndhcm4oXCJHcmFwaCBhZnRlcjpcIiwgSlNPTi5zdHJpbmdpZnkoZ3JhcGhsaWJKc29uLndyaXRlKGdyYXBoKSkpO1xuICBjb25zdCBzaXRlQ29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gIGF3YWl0IHJlY3Vyc2l2ZVJlbmRlcihlbGVtLCBncmFwaCwgZGlhZ3JhbVR5cGUsIGlkLCB2b2lkIDAsIHNpdGVDb25maWcpO1xufTtcbmV4cG9ydCB7XG4gIHJlbmRlciBhcyByXG59O1xuIiwKICAgICJpbXBvcnQgKiBhcyBncmFwaGxpYiBmcm9tIFwiZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBjdXJ2ZUxpbmVhciwgc2VsZWN0LCBzZWxlY3RBbGwgfSBmcm9tIFwiZDNcIjtcbmltcG9ydCB7IGsgYXMgZ2V0U3R5bGVzRnJvbUFycmF5LCBsIGFzIGxvZywgbSBhcyBldmFsdWF0ZSwgYyBhcyBnZXRDb25maWcsIGUgYXMgY29tbW9uLCByIGFzIHJlbmRlckthdGV4LCBuIGFzIGludGVycG9sYXRlVG9DdXJ2ZSwgdSBhcyB1dGlscywgbyBhcyBzZXR1cEdyYXBoVmlld2JveCB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmltcG9ydCB7IHIgYXMgcmVuZGVyIH0gZnJvbSBcIi4vaW5kZXgtMDFmMzgxY2IuanNcIjtcbmltcG9ydCB7IGFkZEh0bWxMYWJlbCB9IGZyb20gXCJkYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvbGFiZWwvYWRkLWh0bWwtbGFiZWwuanNcIjtcbmltcG9ydCAqIGFzIGtocm9tYSBmcm9tIFwia2hyb21hXCI7XG5jb25zdCBjb25mID0ge307XG5jb25zdCBzZXRDb25mID0gZnVuY3Rpb24oY25mKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjbmYpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgY29uZltrZXldID0gY25mW2tleV07XG4gIH1cbn07XG5jb25zdCBhZGRWZXJ0aWNlcyA9IGFzeW5jIGZ1bmN0aW9uKHZlcnQsIGcsIHN2Z0lkLCByb290LCBkb2MsIGRpYWdPYmopIHtcbiAgY29uc3Qgc3ZnID0gcm9vdC5zZWxlY3QoYFtpZD1cIiR7c3ZnSWR9XCJdYCk7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2ZXJ0KTtcbiAgZm9yIChjb25zdCBpZCBvZiBrZXlzKSB7XG4gICAgY29uc3QgdmVydGV4ID0gdmVydFtpZF07XG4gICAgbGV0IGNsYXNzU3RyID0gXCJkZWZhdWx0XCI7XG4gICAgaWYgKHZlcnRleC5jbGFzc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNsYXNzU3RyID0gdmVydGV4LmNsYXNzZXMuam9pbihcIiBcIik7XG4gICAgfVxuICAgIGNsYXNzU3RyID0gY2xhc3NTdHIgKyBcIiBmbG93Y2hhcnQtbGFiZWxcIjtcbiAgICBjb25zdCBzdHlsZXMgPSBnZXRTdHlsZXNGcm9tQXJyYXkodmVydGV4LnN0eWxlcyk7XG4gICAgbGV0IHZlcnRleFRleHQgPSB2ZXJ0ZXgudGV4dCAhPT0gdm9pZCAwID8gdmVydGV4LnRleHQgOiB2ZXJ0ZXguaWQ7XG4gICAgbGV0IHZlcnRleE5vZGU7XG4gICAgbG9nLmluZm8oXCJ2ZXJ0ZXhcIiwgdmVydGV4LCB2ZXJ0ZXgubGFiZWxUeXBlKTtcbiAgICBpZiAodmVydGV4LmxhYmVsVHlwZSA9PT0gXCJtYXJrZG93blwiKSB7XG4gICAgICBsb2cuaW5mbyhcInZlcnRleFwiLCB2ZXJ0ZXgsIHZlcnRleC5sYWJlbFR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZXZhbHVhdGUoZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMpKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB7XG4gICAgICAgICAgbGFiZWw6IHZlcnRleFRleHRcbiAgICAgICAgfTtcbiAgICAgICAgdmVydGV4Tm9kZSA9IGFkZEh0bWxMYWJlbChzdmcsIG5vZGUpLm5vZGUoKTtcbiAgICAgICAgdmVydGV4Tm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHZlcnRleE5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3ZnTGFiZWwgPSBkb2MuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJ0ZXh0XCIpO1xuICAgICAgICBzdmdMYWJlbC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBzdHlsZXMubGFiZWxTdHlsZS5yZXBsYWNlKFwiY29sb3I6XCIsIFwiZmlsbDpcIikpO1xuICAgICAgICBjb25zdCByb3dzID0gdmVydGV4VGV4dC5zcGxpdChjb21tb24ubGluZUJyZWFrUmVnZXgpO1xuICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgICAgICAgY29uc3QgdHNwYW4gPSBkb2MuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJ0c3BhblwiKTtcbiAgICAgICAgICB0c3Bhbi5zZXRBdHRyaWJ1dGVOUyhcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiLCBcInhtbDpzcGFjZVwiLCBcInByZXNlcnZlXCIpO1xuICAgICAgICAgIHRzcGFuLnNldEF0dHJpYnV0ZShcImR5XCIsIFwiMWVtXCIpO1xuICAgICAgICAgIHRzcGFuLnNldEF0dHJpYnV0ZShcInhcIiwgXCIxXCIpO1xuICAgICAgICAgIHRzcGFuLnRleHRDb250ZW50ID0gcm93O1xuICAgICAgICAgIHN2Z0xhYmVsLmFwcGVuZENoaWxkKHRzcGFuKTtcbiAgICAgICAgfVxuICAgICAgICB2ZXJ0ZXhOb2RlID0gc3ZnTGFiZWw7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCByYWRpdXMgPSAwO1xuICAgIGxldCBfc2hhcGUgPSBcIlwiO1xuICAgIHN3aXRjaCAodmVydGV4LnR5cGUpIHtcbiAgICAgIGNhc2UgXCJyb3VuZFwiOlxuICAgICAgICByYWRpdXMgPSA1O1xuICAgICAgICBfc2hhcGUgPSBcInJlY3RcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwic3F1YXJlXCI6XG4gICAgICAgIF9zaGFwZSA9IFwicmVjdFwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkaWFtb25kXCI6XG4gICAgICAgIF9zaGFwZSA9IFwicXVlc3Rpb25cIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiaGV4YWdvblwiOlxuICAgICAgICBfc2hhcGUgPSBcImhleGFnb25cIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwib2RkXCI6XG4gICAgICAgIF9zaGFwZSA9IFwicmVjdF9sZWZ0X2ludl9hcnJvd1wiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJsZWFuX3JpZ2h0XCI6XG4gICAgICAgIF9zaGFwZSA9IFwibGVhbl9yaWdodFwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJsZWFuX2xlZnRcIjpcbiAgICAgICAgX3NoYXBlID0gXCJsZWFuX2xlZnRcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwidHJhcGV6b2lkXCI6XG4gICAgICAgIF9zaGFwZSA9IFwidHJhcGV6b2lkXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImludl90cmFwZXpvaWRcIjpcbiAgICAgICAgX3NoYXBlID0gXCJpbnZfdHJhcGV6b2lkXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm9kZF9yaWdodFwiOlxuICAgICAgICBfc2hhcGUgPSBcInJlY3RfbGVmdF9pbnZfYXJyb3dcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiY2lyY2xlXCI6XG4gICAgICAgIF9zaGFwZSA9IFwiY2lyY2xlXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImVsbGlwc2VcIjpcbiAgICAgICAgX3NoYXBlID0gXCJlbGxpcHNlXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInN0YWRpdW1cIjpcbiAgICAgICAgX3NoYXBlID0gXCJzdGFkaXVtXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInN1YnJvdXRpbmVcIjpcbiAgICAgICAgX3NoYXBlID0gXCJzdWJyb3V0aW5lXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImN5bGluZGVyXCI6XG4gICAgICAgIF9zaGFwZSA9IFwiY3lsaW5kZXJcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiZ3JvdXBcIjpcbiAgICAgICAgX3NoYXBlID0gXCJyZWN0XCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImRvdWJsZWNpcmNsZVwiOlxuICAgICAgICBfc2hhcGUgPSBcImRvdWJsZWNpcmNsZVwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIF9zaGFwZSA9IFwicmVjdFwiO1xuICAgIH1cbiAgICBjb25zdCBsYWJlbFRleHQgPSBhd2FpdCByZW5kZXJLYXRleCh2ZXJ0ZXhUZXh0LCBnZXRDb25maWcoKSk7XG4gICAgZy5zZXROb2RlKHZlcnRleC5pZCwge1xuICAgICAgbGFiZWxTdHlsZTogc3R5bGVzLmxhYmVsU3R5bGUsXG4gICAgICBzaGFwZTogX3NoYXBlLFxuICAgICAgbGFiZWxUZXh0LFxuICAgICAgbGFiZWxUeXBlOiB2ZXJ0ZXgubGFiZWxUeXBlLFxuICAgICAgcng6IHJhZGl1cyxcbiAgICAgIHJ5OiByYWRpdXMsXG4gICAgICBjbGFzczogY2xhc3NTdHIsXG4gICAgICBzdHlsZTogc3R5bGVzLnN0eWxlLFxuICAgICAgaWQ6IHZlcnRleC5pZCxcbiAgICAgIGxpbms6IHZlcnRleC5saW5rLFxuICAgICAgbGlua1RhcmdldDogdmVydGV4LmxpbmtUYXJnZXQsXG4gICAgICB0b29sdGlwOiBkaWFnT2JqLmRiLmdldFRvb2x0aXAodmVydGV4LmlkKSB8fCBcIlwiLFxuICAgICAgZG9tSWQ6IGRpYWdPYmouZGIubG9va1VwRG9tSWQodmVydGV4LmlkKSxcbiAgICAgIGhhdmVDYWxsYmFjazogdmVydGV4LmhhdmVDYWxsYmFjayxcbiAgICAgIHdpZHRoOiB2ZXJ0ZXgudHlwZSA9PT0gXCJncm91cFwiID8gNTAwIDogdm9pZCAwLFxuICAgICAgZGlyOiB2ZXJ0ZXguZGlyLFxuICAgICAgdHlwZTogdmVydGV4LnR5cGUsXG4gICAgICBwcm9wczogdmVydGV4LnByb3BzLFxuICAgICAgcGFkZGluZzogZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0LnBhZGRpbmdcbiAgICB9KTtcbiAgICBsb2cuaW5mbyhcInNldE5vZGVcIiwge1xuICAgICAgbGFiZWxTdHlsZTogc3R5bGVzLmxhYmVsU3R5bGUsXG4gICAgICBsYWJlbFR5cGU6IHZlcnRleC5sYWJlbFR5cGUsXG4gICAgICBzaGFwZTogX3NoYXBlLFxuICAgICAgbGFiZWxUZXh0LFxuICAgICAgcng6IHJhZGl1cyxcbiAgICAgIHJ5OiByYWRpdXMsXG4gICAgICBjbGFzczogY2xhc3NTdHIsXG4gICAgICBzdHlsZTogc3R5bGVzLnN0eWxlLFxuICAgICAgaWQ6IHZlcnRleC5pZCxcbiAgICAgIGRvbUlkOiBkaWFnT2JqLmRiLmxvb2tVcERvbUlkKHZlcnRleC5pZCksXG4gICAgICB3aWR0aDogdmVydGV4LnR5cGUgPT09IFwiZ3JvdXBcIiA/IDUwMCA6IHZvaWQgMCxcbiAgICAgIHR5cGU6IHZlcnRleC50eXBlLFxuICAgICAgZGlyOiB2ZXJ0ZXguZGlyLFxuICAgICAgcHJvcHM6IHZlcnRleC5wcm9wcyxcbiAgICAgIHBhZGRpbmc6IGdldENvbmZpZygpLmZsb3djaGFydC5wYWRkaW5nXG4gICAgfSk7XG4gIH1cbn07XG5jb25zdCBhZGRFZGdlcyA9IGFzeW5jIGZ1bmN0aW9uKGVkZ2VzLCBnLCBkaWFnT2JqKSB7XG4gIGxvZy5pbmZvKFwiYWJjNzggZWRnZXMgPSBcIiwgZWRnZXMpO1xuICBsZXQgY250ID0gMDtcbiAgbGV0IGxpbmtJZENudCA9IHt9O1xuICBsZXQgZGVmYXVsdFN0eWxlO1xuICBsZXQgZGVmYXVsdExhYmVsU3R5bGU7XG4gIGlmIChlZGdlcy5kZWZhdWx0U3R5bGUgIT09IHZvaWQgMCkge1xuICAgIGNvbnN0IGRlZmF1bHRTdHlsZXMgPSBnZXRTdHlsZXNGcm9tQXJyYXkoZWRnZXMuZGVmYXVsdFN0eWxlKTtcbiAgICBkZWZhdWx0U3R5bGUgPSBkZWZhdWx0U3R5bGVzLnN0eWxlO1xuICAgIGRlZmF1bHRMYWJlbFN0eWxlID0gZGVmYXVsdFN0eWxlcy5sYWJlbFN0eWxlO1xuICB9XG4gIGZvciAoY29uc3QgZWRnZSBvZiBlZGdlcykge1xuICAgIGNudCsrO1xuICAgIGNvbnN0IGxpbmtJZEJhc2UgPSBcIkwtXCIgKyBlZGdlLnN0YXJ0ICsgXCItXCIgKyBlZGdlLmVuZDtcbiAgICBpZiAobGlua0lkQ250W2xpbmtJZEJhc2VdID09PSB2b2lkIDApIHtcbiAgICAgIGxpbmtJZENudFtsaW5rSWRCYXNlXSA9IDA7XG4gICAgICBsb2cuaW5mbyhcImFiYzc4IG5ldyBlbnRyeVwiLCBsaW5rSWRCYXNlLCBsaW5rSWRDbnRbbGlua0lkQmFzZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaW5rSWRDbnRbbGlua0lkQmFzZV0rKztcbiAgICAgIGxvZy5pbmZvKFwiYWJjNzggbmV3IGVudHJ5XCIsIGxpbmtJZEJhc2UsIGxpbmtJZENudFtsaW5rSWRCYXNlXSk7XG4gICAgfVxuICAgIGxldCBsaW5rSWQgPSBsaW5rSWRCYXNlICsgXCItXCIgKyBsaW5rSWRDbnRbbGlua0lkQmFzZV07XG4gICAgbG9nLmluZm8oXCJhYmM3OCBuZXcgbGluayBpZCB0byBiZSB1c2VkIGlzXCIsIGxpbmtJZEJhc2UsIGxpbmtJZCwgbGlua0lkQ250W2xpbmtJZEJhc2VdKTtcbiAgICBjb25zdCBsaW5rTmFtZVN0YXJ0ID0gXCJMUy1cIiArIGVkZ2Uuc3RhcnQ7XG4gICAgY29uc3QgbGlua05hbWVFbmQgPSBcIkxFLVwiICsgZWRnZS5lbmQ7XG4gICAgY29uc3QgZWRnZURhdGEgPSB7IHN0eWxlOiBcIlwiLCBsYWJlbFN0eWxlOiBcIlwiIH07XG4gICAgZWRnZURhdGEubWlubGVuID0gZWRnZS5sZW5ndGggfHwgMTtcbiAgICBpZiAoZWRnZS50eXBlID09PSBcImFycm93X29wZW5cIikge1xuICAgICAgZWRnZURhdGEuYXJyb3doZWFkID0gXCJub25lXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVkZ2VEYXRhLmFycm93aGVhZCA9IFwibm9ybWFsXCI7XG4gICAgfVxuICAgIGVkZ2VEYXRhLmFycm93VHlwZVN0YXJ0ID0gXCJhcnJvd19vcGVuXCI7XG4gICAgZWRnZURhdGEuYXJyb3dUeXBlRW5kID0gXCJhcnJvd19vcGVuXCI7XG4gICAgc3dpdGNoIChlZGdlLnR5cGUpIHtcbiAgICAgIGNhc2UgXCJkb3VibGVfYXJyb3dfY3Jvc3NcIjpcbiAgICAgICAgZWRnZURhdGEuYXJyb3dUeXBlU3RhcnQgPSBcImFycm93X2Nyb3NzXCI7XG4gICAgICBjYXNlIFwiYXJyb3dfY3Jvc3NcIjpcbiAgICAgICAgZWRnZURhdGEuYXJyb3dUeXBlRW5kID0gXCJhcnJvd19jcm9zc1wiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkb3VibGVfYXJyb3dfcG9pbnRcIjpcbiAgICAgICAgZWRnZURhdGEuYXJyb3dUeXBlU3RhcnQgPSBcImFycm93X3BvaW50XCI7XG4gICAgICBjYXNlIFwiYXJyb3dfcG9pbnRcIjpcbiAgICAgICAgZWRnZURhdGEuYXJyb3dUeXBlRW5kID0gXCJhcnJvd19wb2ludFwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkb3VibGVfYXJyb3dfY2lyY2xlXCI6XG4gICAgICAgIGVkZ2VEYXRhLmFycm93VHlwZVN0YXJ0ID0gXCJhcnJvd19jaXJjbGVcIjtcbiAgICAgIGNhc2UgXCJhcnJvd19jaXJjbGVcIjpcbiAgICAgICAgZWRnZURhdGEuYXJyb3dUeXBlRW5kID0gXCJhcnJvd19jaXJjbGVcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGxldCBzdHlsZSA9IFwiXCI7XG4gICAgbGV0IGxhYmVsU3R5bGUgPSBcIlwiO1xuICAgIHN3aXRjaCAoZWRnZS5zdHJva2UpIHtcbiAgICAgIGNhc2UgXCJub3JtYWxcIjpcbiAgICAgICAgc3R5bGUgPSBcImZpbGw6bm9uZTtcIjtcbiAgICAgICAgaWYgKGRlZmF1bHRTdHlsZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgc3R5bGUgPSBkZWZhdWx0U3R5bGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZmF1bHRMYWJlbFN0eWxlICE9PSB2b2lkIDApIHtcbiAgICAgICAgICBsYWJlbFN0eWxlID0gZGVmYXVsdExhYmVsU3R5bGU7XG4gICAgICAgIH1cbiAgICAgICAgZWRnZURhdGEudGhpY2tuZXNzID0gXCJub3JtYWxcIjtcbiAgICAgICAgZWRnZURhdGEucGF0dGVybiA9IFwic29saWRcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiZG90dGVkXCI6XG4gICAgICAgIGVkZ2VEYXRhLnRoaWNrbmVzcyA9IFwibm9ybWFsXCI7XG4gICAgICAgIGVkZ2VEYXRhLnBhdHRlcm4gPSBcImRvdHRlZFwiO1xuICAgICAgICBlZGdlRGF0YS5zdHlsZSA9IFwiZmlsbDpub25lO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWRhc2hhcnJheTozO1wiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJ0aGlja1wiOlxuICAgICAgICBlZGdlRGF0YS50aGlja25lc3MgPSBcInRoaWNrXCI7XG4gICAgICAgIGVkZ2VEYXRhLnBhdHRlcm4gPSBcInNvbGlkXCI7XG4gICAgICAgIGVkZ2VEYXRhLnN0eWxlID0gXCJzdHJva2Utd2lkdGg6IDMuNXB4O2ZpbGw6bm9uZTtcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiaW52aXNpYmxlXCI6XG4gICAgICAgIGVkZ2VEYXRhLnRoaWNrbmVzcyA9IFwiaW52aXNpYmxlXCI7XG4gICAgICAgIGVkZ2VEYXRhLnBhdHRlcm4gPSBcInNvbGlkXCI7XG4gICAgICAgIGVkZ2VEYXRhLnN0eWxlID0gXCJzdHJva2Utd2lkdGg6IDA7ZmlsbDpub25lO1wiO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKGVkZ2Uuc3R5bGUgIT09IHZvaWQgMCkge1xuICAgICAgY29uc3Qgc3R5bGVzID0gZ2V0U3R5bGVzRnJvbUFycmF5KGVkZ2Uuc3R5bGUpO1xuICAgICAgc3R5bGUgPSBzdHlsZXMuc3R5bGU7XG4gICAgICBsYWJlbFN0eWxlID0gc3R5bGVzLmxhYmVsU3R5bGU7XG4gICAgfVxuICAgIGVkZ2VEYXRhLnN0eWxlID0gZWRnZURhdGEuc3R5bGUgKz0gc3R5bGU7XG4gICAgZWRnZURhdGEubGFiZWxTdHlsZSA9IGVkZ2VEYXRhLmxhYmVsU3R5bGUgKz0gbGFiZWxTdHlsZTtcbiAgICBpZiAoZWRnZS5pbnRlcnBvbGF0ZSAhPT0gdm9pZCAwKSB7XG4gICAgICBlZGdlRGF0YS5jdXJ2ZSA9IGludGVycG9sYXRlVG9DdXJ2ZShlZGdlLmludGVycG9sYXRlLCBjdXJ2ZUxpbmVhcik7XG4gICAgfSBlbHNlIGlmIChlZGdlcy5kZWZhdWx0SW50ZXJwb2xhdGUgIT09IHZvaWQgMCkge1xuICAgICAgZWRnZURhdGEuY3VydmUgPSBpbnRlcnBvbGF0ZVRvQ3VydmUoZWRnZXMuZGVmYXVsdEludGVycG9sYXRlLCBjdXJ2ZUxpbmVhcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVkZ2VEYXRhLmN1cnZlID0gaW50ZXJwb2xhdGVUb0N1cnZlKGNvbmYuY3VydmUsIGN1cnZlTGluZWFyKTtcbiAgICB9XG4gICAgaWYgKGVkZ2UudGV4dCA9PT0gdm9pZCAwKSB7XG4gICAgICBpZiAoZWRnZS5zdHlsZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgIGVkZ2VEYXRhLmFycm93aGVhZFN0eWxlID0gXCJmaWxsOiAjMzMzXCI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGVkZ2VEYXRhLmFycm93aGVhZFN0eWxlID0gXCJmaWxsOiAjMzMzXCI7XG4gICAgICBlZGdlRGF0YS5sYWJlbHBvcyA9IFwiY1wiO1xuICAgIH1cbiAgICBlZGdlRGF0YS5sYWJlbFR5cGUgPSBlZGdlLmxhYmVsVHlwZTtcbiAgICBlZGdlRGF0YS5sYWJlbCA9IGF3YWl0IHJlbmRlckthdGV4KGVkZ2UudGV4dC5yZXBsYWNlKGNvbW1vbi5saW5lQnJlYWtSZWdleCwgXCJcXG5cIiksIGdldENvbmZpZygpKTtcbiAgICBpZiAoZWRnZS5zdHlsZSA9PT0gdm9pZCAwKSB7XG4gICAgICBlZGdlRGF0YS5zdHlsZSA9IGVkZ2VEYXRhLnN0eWxlIHx8IFwic3Ryb2tlOiAjMzMzOyBzdHJva2Utd2lkdGg6IDEuNXB4O2ZpbGw6bm9uZTtcIjtcbiAgICB9XG4gICAgZWRnZURhdGEubGFiZWxTdHlsZSA9IGVkZ2VEYXRhLmxhYmVsU3R5bGUucmVwbGFjZShcImNvbG9yOlwiLCBcImZpbGw6XCIpO1xuICAgIGVkZ2VEYXRhLmlkID0gbGlua0lkO1xuICAgIGVkZ2VEYXRhLmNsYXNzZXMgPSBcImZsb3djaGFydC1saW5rIFwiICsgbGlua05hbWVTdGFydCArIFwiIFwiICsgbGlua05hbWVFbmQ7XG4gICAgZy5zZXRFZGdlKGVkZ2Uuc3RhcnQsIGVkZ2UuZW5kLCBlZGdlRGF0YSwgY250KTtcbiAgfVxufTtcbmNvbnN0IGdldENsYXNzZXMgPSBmdW5jdGlvbih0ZXh0LCBkaWFnT2JqKSB7XG4gIHJldHVybiBkaWFnT2JqLmRiLmdldENsYXNzZXMoKTtcbn07XG5jb25zdCBkcmF3ID0gYXN5bmMgZnVuY3Rpb24odGV4dCwgaWQsIF92ZXJzaW9uLCBkaWFnT2JqKSB7XG4gIGxvZy5pbmZvKFwiRHJhd2luZyBmbG93Y2hhcnRcIik7XG4gIGxldCBkaXIgPSBkaWFnT2JqLmRiLmdldERpcmVjdGlvbigpO1xuICBpZiAoZGlyID09PSB2b2lkIDApIHtcbiAgICBkaXIgPSBcIlREXCI7XG4gIH1cbiAgY29uc3QgeyBzZWN1cml0eUxldmVsLCBmbG93Y2hhcnQ6IGNvbmYyIH0gPSBnZXRDb25maWcoKTtcbiAgY29uc3Qgbm9kZVNwYWNpbmcgPSBjb25mMi5ub2RlU3BhY2luZyB8fCA1MDtcbiAgY29uc3QgcmFua1NwYWNpbmcgPSBjb25mMi5yYW5rU3BhY2luZyB8fCA1MDtcbiAgbGV0IHNhbmRib3hFbGVtZW50O1xuICBpZiAoc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIpIHtcbiAgICBzYW5kYm94RWxlbWVudCA9IHNlbGVjdChcIiNpXCIgKyBpZCk7XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gc2VsZWN0KHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50LmJvZHkpIDogc2VsZWN0KFwiYm9keVwiKTtcbiAgY29uc3QgZG9jID0gc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIgPyBzYW5kYm94RWxlbWVudC5ub2RlcygpWzBdLmNvbnRlbnREb2N1bWVudCA6IGRvY3VtZW50O1xuICBjb25zdCBnID0gbmV3IGdyYXBobGliLkdyYXBoKHtcbiAgICBtdWx0aWdyYXBoOiB0cnVlLFxuICAgIGNvbXBvdW5kOiB0cnVlXG4gIH0pLnNldEdyYXBoKHtcbiAgICByYW5rZGlyOiBkaXIsXG4gICAgbm9kZXNlcDogbm9kZVNwYWNpbmcsXG4gICAgcmFua3NlcDogcmFua1NwYWNpbmcsXG4gICAgbWFyZ2lueDogMCxcbiAgICBtYXJnaW55OiAwXG4gIH0pLnNldERlZmF1bHRFZGdlTGFiZWwoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9KTtcbiAgbGV0IHN1Ykc7XG4gIGNvbnN0IHN1YkdyYXBocyA9IGRpYWdPYmouZGIuZ2V0U3ViR3JhcGhzKCk7XG4gIGxvZy5pbmZvKFwiU3ViZ3JhcGhzIC0gXCIsIHN1YkdyYXBocyk7XG4gIGZvciAobGV0IGkyID0gc3ViR3JhcGhzLmxlbmd0aCAtIDE7IGkyID49IDA7IGkyLS0pIHtcbiAgICBzdWJHID0gc3ViR3JhcGhzW2kyXTtcbiAgICBsb2cuaW5mbyhcIlN1YmdyYXBoIC0gXCIsIHN1YkcpO1xuICAgIGRpYWdPYmouZGIuYWRkVmVydGV4KFxuICAgICAgc3ViRy5pZCxcbiAgICAgIHsgdGV4dDogc3ViRy50aXRsZSwgdHlwZTogc3ViRy5sYWJlbFR5cGUgfSxcbiAgICAgIFwiZ3JvdXBcIixcbiAgICAgIHZvaWQgMCxcbiAgICAgIHN1YkcuY2xhc3NlcyxcbiAgICAgIHN1YkcuZGlyXG4gICAgKTtcbiAgfVxuICBjb25zdCB2ZXJ0ID0gZGlhZ09iai5kYi5nZXRWZXJ0aWNlcygpO1xuICBjb25zdCBlZGdlcyA9IGRpYWdPYmouZGIuZ2V0RWRnZXMoKTtcbiAgbG9nLmluZm8oXCJFZGdlc1wiLCBlZGdlcyk7XG4gIGxldCBpID0gMDtcbiAgZm9yIChpID0gc3ViR3JhcGhzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgc3ViRyA9IHN1YkdyYXBoc1tpXTtcbiAgICBzZWxlY3RBbGwoXCJjbHVzdGVyXCIpLmFwcGVuZChcInRleHRcIik7XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBzdWJHLm5vZGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICBsb2cuaW5mbyhcIlNldHRpbmcgdXAgc3ViZ3JhcGhzXCIsIHN1Ykcubm9kZXNbal0sIHN1YkcuaWQpO1xuICAgICAgZy5zZXRQYXJlbnQoc3ViRy5ub2Rlc1tqXSwgc3ViRy5pZCk7XG4gICAgfVxuICB9XG4gIGF3YWl0IGFkZFZlcnRpY2VzKHZlcnQsIGcsIGlkLCByb290LCBkb2MsIGRpYWdPYmopO1xuICBhd2FpdCBhZGRFZGdlcyhlZGdlcywgZyk7XG4gIGNvbnN0IHN2ZyA9IHJvb3Quc2VsZWN0KGBbaWQ9XCIke2lkfVwiXWApO1xuICBjb25zdCBlbGVtZW50ID0gcm9vdC5zZWxlY3QoXCIjXCIgKyBpZCArIFwiIGdcIik7XG4gIGF3YWl0IHJlbmRlcihlbGVtZW50LCBnLCBbXCJwb2ludFwiLCBcImNpcmNsZVwiLCBcImNyb3NzXCJdLCBcImZsb3djaGFydFwiLCBpZCk7XG4gIHV0aWxzLmluc2VydFRpdGxlKHN2ZywgXCJmbG93Y2hhcnRUaXRsZVRleHRcIiwgY29uZjIudGl0bGVUb3BNYXJnaW4sIGRpYWdPYmouZGIuZ2V0RGlhZ3JhbVRpdGxlKCkpO1xuICBzZXR1cEdyYXBoVmlld2JveChnLCBzdmcsIGNvbmYyLmRpYWdyYW1QYWRkaW5nLCBjb25mMi51c2VNYXhXaWR0aCk7XG4gIGRpYWdPYmouZGIuaW5kZXhOb2RlcyhcInN1YkdyYXBoXCIgKyBpKTtcbiAgaWYgKCFjb25mMi5odG1sTGFiZWxzKSB7XG4gICAgY29uc3QgbGFiZWxzID0gZG9jLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tpZD1cIicgKyBpZCArICdcIl0gLmVkZ2VMYWJlbCAubGFiZWwnKTtcbiAgICBmb3IgKGNvbnN0IGxhYmVsIG9mIGxhYmVscykge1xuICAgICAgY29uc3QgZGltID0gbGFiZWwuZ2V0QkJveCgpO1xuICAgICAgY29uc3QgcmVjdCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcInJlY3RcIik7XG4gICAgICByZWN0LnNldEF0dHJpYnV0ZShcInJ4XCIsIDApO1xuICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJyeVwiLCAwKTtcbiAgICAgIHJlY3Quc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgZGltLndpZHRoKTtcbiAgICAgIHJlY3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGRpbS5oZWlnaHQpO1xuICAgICAgbGFiZWwuaW5zZXJ0QmVmb3JlKHJlY3QsIGxhYmVsLmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgfVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmVydCk7XG4gIGtleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICBjb25zdCB2ZXJ0ZXggPSB2ZXJ0W2tleV07XG4gICAgaWYgKHZlcnRleC5saW5rKSB7XG4gICAgICBjb25zdCBub2RlID0gc2VsZWN0KFwiI1wiICsgaWQgKyAnIFtpZD1cIicgKyBrZXkgKyAnXCJdJyk7XG4gICAgICBpZiAobm9kZSkge1xuICAgICAgICBjb25zdCBsaW5rID0gZG9jLmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwiYVwiKTtcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGVOUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwiY2xhc3NcIiwgdmVydGV4LmNsYXNzZXMuam9pbihcIiBcIikpO1xuICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZU5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJocmVmXCIsIHZlcnRleC5saW5rKTtcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGVOUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwicmVsXCIsIFwibm9vcGVuZXJcIik7XG4gICAgICAgIGlmIChzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIikge1xuICAgICAgICAgIGxpbmsuc2V0QXR0cmlidXRlTlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcInRhcmdldFwiLCBcIl90b3BcIik7XG4gICAgICAgIH0gZWxzZSBpZiAodmVydGV4LmxpbmtUYXJnZXQpIHtcbiAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZU5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJ0YXJnZXRcIiwgdmVydGV4LmxpbmtUYXJnZXQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxpbmtOb2RlID0gbm9kZS5pbnNlcnQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIGxpbms7XG4gICAgICAgIH0sIFwiOmZpcnN0LWNoaWxkXCIpO1xuICAgICAgICBjb25zdCBzaGFwZSA9IG5vZGUuc2VsZWN0KFwiLmxhYmVsLWNvbnRhaW5lclwiKTtcbiAgICAgICAgaWYgKHNoYXBlKSB7XG4gICAgICAgICAgbGlua05vZGUuYXBwZW5kKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHNoYXBlLm5vZGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYWJlbCA9IG5vZGUuc2VsZWN0KFwiLmxhYmVsXCIpO1xuICAgICAgICBpZiAobGFiZWwpIHtcbiAgICAgICAgICBsaW5rTm9kZS5hcHBlbmQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gbGFiZWwubm9kZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn07XG5jb25zdCBmbG93UmVuZGVyZXJWMiA9IHtcbiAgc2V0Q29uZixcbiAgYWRkVmVydGljZXMsXG4gIGFkZEVkZ2VzLFxuICBnZXRDbGFzc2VzLFxuICBkcmF3XG59O1xuY29uc3QgZmFkZSA9IChjb2xvciwgb3BhY2l0eSkgPT4ge1xuICBjb25zdCBjaGFubmVsID0ga2hyb21hLmNoYW5uZWw7XG4gIGNvbnN0IHIgPSBjaGFubmVsKGNvbG9yLCBcInJcIik7XG4gIGNvbnN0IGcgPSBjaGFubmVsKGNvbG9yLCBcImdcIik7XG4gIGNvbnN0IGIgPSBjaGFubmVsKGNvbG9yLCBcImJcIik7XG4gIHJldHVybiBraHJvbWEucmdiYShyLCBnLCBiLCBvcGFjaXR5KTtcbn07XG5jb25zdCBnZXRTdHlsZXMgPSAob3B0aW9ucykgPT4gYC5sYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6ICR7b3B0aW9ucy5mb250RmFtaWx5fTtcbiAgICBjb2xvcjogJHtvcHRpb25zLm5vZGVUZXh0Q29sb3IgfHwgb3B0aW9ucy50ZXh0Q29sb3J9O1xuICB9XG4gIC5jbHVzdGVyLWxhYmVsIHRleHQge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50aXRsZUNvbG9yfTtcbiAgfVxuICAuY2x1c3Rlci1sYWJlbCBzcGFuLHAge1xuICAgIGNvbG9yOiAke29wdGlvbnMudGl0bGVDb2xvcn07XG4gIH1cblxuICAubGFiZWwgdGV4dCxzcGFuLHAge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5ub2RlVGV4dENvbG9yIHx8IG9wdGlvbnMudGV4dENvbG9yfTtcbiAgICBjb2xvcjogJHtvcHRpb25zLm5vZGVUZXh0Q29sb3IgfHwgb3B0aW9ucy50ZXh0Q29sb3J9O1xuICB9XG5cbiAgLm5vZGUgcmVjdCxcbiAgLm5vZGUgY2lyY2xlLFxuICAubm9kZSBlbGxpcHNlLFxuICAubm9kZSBwb2x5Z29uLFxuICAubm9kZSBwYXRoIHtcbiAgICBmaWxsOiAke29wdGlvbnMubWFpbkJrZ307XG4gICAgc3Ryb2tlOiAke29wdGlvbnMubm9kZUJvcmRlcn07XG4gICAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gIH1cbiAgLmZsb3djaGFydC1sYWJlbCB0ZXh0IHtcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xuICB9XG4gIC8vIC5mbG93Y2hhcnQtbGFiZWwgLnRleHQtb3V0ZXItdHNwYW4ge1xuICAvLyAgIHRleHQtYW5jaG9yOiBtaWRkbGU7XG4gIC8vIH1cbiAgLy8gLmZsb3djaGFydC1sYWJlbCAudGV4dC1pbm5lci10c3BhbiB7XG4gIC8vICAgdGV4dC1hbmNob3I6IHN0YXJ0O1xuICAvLyB9XG5cbiAgLm5vZGUgLmthdGV4IHBhdGgge1xuICAgIGZpbGw6ICMwMDA7XG4gICAgc3Ryb2tlOiAjMDAwO1xuICAgIHN0cm9rZS13aWR0aDogMXB4O1xuICB9XG5cbiAgLm5vZGUgLmxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLm5vZGUuY2xpY2thYmxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAuYXJyb3doZWFkUGF0aCB7XG4gICAgZmlsbDogJHtvcHRpb25zLmFycm93aGVhZENvbG9yfTtcbiAgfVxuXG4gIC5lZGdlUGF0aCAucGF0aCB7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfTtcbiAgICBzdHJva2Utd2lkdGg6IDIuMHB4O1xuICB9XG5cbiAgLmZsb3djaGFydC1saW5rIHtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5saW5lQ29sb3J9O1xuICAgIGZpbGw6IG5vbmU7XG4gIH1cblxuICAuZWRnZUxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke29wdGlvbnMuZWRnZUxhYmVsQmFja2dyb3VuZH07XG4gICAgcmVjdCB7XG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke29wdGlvbnMuZWRnZUxhYmVsQmFja2dyb3VuZH07XG4gICAgICBmaWxsOiAke29wdGlvbnMuZWRnZUxhYmVsQmFja2dyb3VuZH07XG4gICAgfVxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8qIEZvciBodG1sIGxhYmVscyBvbmx5ICovXG4gIC5sYWJlbEJrZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtmYWRlKG9wdGlvbnMuZWRnZUxhYmVsQmFja2dyb3VuZCwgMC41KX07XG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogXG4gIH1cblxuICAuY2x1c3RlciByZWN0IHtcbiAgICBmaWxsOiAke29wdGlvbnMuY2x1c3RlckJrZ307XG4gICAgc3Ryb2tlOiAke29wdGlvbnMuY2x1c3RlckJvcmRlcn07XG4gICAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gIH1cblxuICAuY2x1c3RlciB0ZXh0IHtcbiAgICBmaWxsOiAke29wdGlvbnMudGl0bGVDb2xvcn07XG4gIH1cblxuICAuY2x1c3RlciBzcGFuLHAge1xuICAgIGNvbG9yOiAke29wdGlvbnMudGl0bGVDb2xvcn07XG4gIH1cbiAgLyogLmNsdXN0ZXIgZGl2IHtcbiAgICBjb2xvcjogJHtvcHRpb25zLnRpdGxlQ29sb3J9O1xuICB9ICovXG5cbiAgZGl2Lm1lcm1haWRUb29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIGZvbnQtZmFtaWx5OiAke29wdGlvbnMuZm9udEZhbWlseX07XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICR7b3B0aW9ucy50ZXJ0aWFyeUNvbG9yfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke29wdGlvbnMuYm9yZGVyMn07XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgfVxuXG4gIC5mbG93Y2hhcnRUaXRsZVRleHQge1xuICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZpbGw6ICR7b3B0aW9ucy50ZXh0Q29sb3J9O1xuICB9XG5gO1xuY29uc3QgZmxvd1N0eWxlcyA9IGdldFN0eWxlcztcbmV4cG9ydCB7XG4gIGZsb3dTdHlsZXMgYXMgYSxcbiAgZmxvd1JlbmRlcmVyVjIgYXMgZlxufTtcbiIsCiAgICAiaW1wb3J0IHsgcCBhcyBwYXJzZXIsIGYgYXMgZmxvd0RiIH0gZnJvbSBcIi4vZmxvd0RiLWMxODMzMDYzLmpzXCI7XG5pbXBvcnQgKiBhcyBncmFwaGxpYiBmcm9tIFwiZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzZWxlY3QsIGN1cnZlTGluZWFyLCBzZWxlY3RBbGwgfSBmcm9tIFwiZDNcIjtcbmltcG9ydCB7IGsgYXMgZ2V0U3R5bGVzRnJvbUFycmF5LCBtIGFzIGV2YWx1YXRlLCBjIGFzIGdldENvbmZpZywgciBhcyByZW5kZXJLYXRleCwgZSBhcyBjb21tb24sIGwgYXMgbG9nLCBuIGFzIGludGVycG9sYXRlVG9DdXJ2ZSwgbyBhcyBzZXR1cEdyYXBoVmlld2JveCB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gXCJkYWdyZS1kMy1lc1wiO1xuaW1wb3J0IHsgYXBwbHlTdHlsZSB9IGZyb20gXCJkYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvdXRpbC5qc1wiO1xuaW1wb3J0IHsgYWRkSHRtbExhYmVsIH0gZnJvbSBcImRhZ3JlLWQzLWVzL3NyYy9kYWdyZS1qcy9sYWJlbC9hZGQtaHRtbC1sYWJlbC5qc1wiO1xuaW1wb3J0IHsgaW50ZXJzZWN0UG9seWdvbiB9IGZyb20gXCJkYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvaW50ZXJzZWN0L2ludGVyc2VjdC1wb2x5Z29uLmpzXCI7XG5pbXBvcnQgeyBpbnRlcnNlY3RSZWN0IH0gZnJvbSBcImRhZ3JlLWQzLWVzL3NyYy9kYWdyZS1qcy9pbnRlcnNlY3QvaW50ZXJzZWN0LXJlY3QuanNcIjtcbmltcG9ydCB7IGYgYXMgZmxvd1JlbmRlcmVyVjIsIGEgYXMgZmxvd1N0eWxlcyB9IGZyb20gXCIuL3N0eWxlcy00ODNmYmZlYS5qc1wiO1xuaW1wb3J0IFwidHMtZGVkZW50XCI7XG5pbXBvcnQgXCJkYXlqc1wiO1xuaW1wb3J0IFwiQGJyYWludHJlZS9zYW5pdGl6ZS11cmxcIjtcbmltcG9ydCBcImRvbXB1cmlmeVwiO1xuaW1wb3J0IFwia2hyb21hXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lcmdlLmpzXCI7XG5pbXBvcnQgXCJzdHlsaXNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9pc0VtcHR5LmpzXCI7XG5pbXBvcnQgXCIuL2luZGV4LTAxZjM4MWNiLmpzXCI7XG5pbXBvcnQgXCJkYWdyZS1kMy1lcy9zcmMvZGFncmUvaW5kZXguanNcIjtcbmltcG9ydCBcImRhZ3JlLWQzLWVzL3NyYy9ncmFwaGxpYi9qc29uLmpzXCI7XG5pbXBvcnQgXCIuL2VkZ2VzLTA2NmE1NTYxLmpzXCI7XG5pbXBvcnQgXCIuL2NyZWF0ZVRleHQtY2EwYzUyMTYuanNcIjtcbmltcG9ydCBcIm1kYXN0LXV0aWwtZnJvbS1tYXJrZG93blwiO1xuZnVuY3Rpb24gcXVlc3Rpb24ocGFyZW50LCBiYm94LCBub2RlKSB7XG4gIGNvbnN0IHcgPSBiYm94LndpZHRoO1xuICBjb25zdCBoID0gYmJveC5oZWlnaHQ7XG4gIGNvbnN0IHMgPSAodyArIGgpICogMC45O1xuICBjb25zdCBwb2ludHMgPSBbXG4gICAgeyB4OiBzIC8gMiwgeTogMCB9LFxuICAgIHsgeDogcywgeTogLXMgLyAyIH0sXG4gICAgeyB4OiBzIC8gMiwgeTogLXMgfSxcbiAgICB7IHg6IDAsIHk6IC1zIC8gMiB9XG4gIF07XG4gIGNvbnN0IHNoYXBlU3ZnID0gaW5zZXJ0UG9seWdvblNoYXBlKHBhcmVudCwgcywgcywgcG9pbnRzKTtcbiAgbm9kZS5pbnRlcnNlY3QgPSBmdW5jdGlvbihwb2ludCkge1xuICAgIHJldHVybiBpbnRlcnNlY3RQb2x5Z29uKG5vZGUsIHBvaW50cywgcG9pbnQpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59XG5mdW5jdGlvbiBoZXhhZ29uKHBhcmVudCwgYmJveCwgbm9kZSkge1xuICBjb25zdCBmID0gNDtcbiAgY29uc3QgaCA9IGJib3guaGVpZ2h0O1xuICBjb25zdCBtID0gaCAvIGY7XG4gIGNvbnN0IHcgPSBiYm94LndpZHRoICsgMiAqIG07XG4gIGNvbnN0IHBvaW50cyA9IFtcbiAgICB7IHg6IG0sIHk6IDAgfSxcbiAgICB7IHg6IHcgLSBtLCB5OiAwIH0sXG4gICAgeyB4OiB3LCB5OiAtaCAvIDIgfSxcbiAgICB7IHg6IHcgLSBtLCB5OiAtaCB9LFxuICAgIHsgeDogbSwgeTogLWggfSxcbiAgICB7IHg6IDAsIHk6IC1oIC8gMiB9XG4gIF07XG4gIGNvbnN0IHNoYXBlU3ZnID0gaW5zZXJ0UG9seWdvblNoYXBlKHBhcmVudCwgdywgaCwgcG9pbnRzKTtcbiAgbm9kZS5pbnRlcnNlY3QgPSBmdW5jdGlvbihwb2ludCkge1xuICAgIHJldHVybiBpbnRlcnNlY3RQb2x5Z29uKG5vZGUsIHBvaW50cywgcG9pbnQpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59XG5mdW5jdGlvbiByZWN0X2xlZnRfaW52X2Fycm93KHBhcmVudCwgYmJveCwgbm9kZSkge1xuICBjb25zdCB3ID0gYmJveC53aWR0aDtcbiAgY29uc3QgaCA9IGJib3guaGVpZ2h0O1xuICBjb25zdCBwb2ludHMgPSBbXG4gICAgeyB4OiAtaCAvIDIsIHk6IDAgfSxcbiAgICB7IHg6IHcsIHk6IDAgfSxcbiAgICB7IHg6IHcsIHk6IC1oIH0sXG4gICAgeyB4OiAtaCAvIDIsIHk6IC1oIH0sXG4gICAgeyB4OiAwLCB5OiAtaCAvIDIgfVxuICBdO1xuICBjb25zdCBzaGFwZVN2ZyA9IGluc2VydFBvbHlnb25TaGFwZShwYXJlbnQsIHcsIGgsIHBvaW50cyk7XG4gIG5vZGUuaW50ZXJzZWN0ID0gZnVuY3Rpb24ocG9pbnQpIHtcbiAgICByZXR1cm4gaW50ZXJzZWN0UG9seWdvbihub2RlLCBwb2ludHMsIHBvaW50KTtcbiAgfTtcbiAgcmV0dXJuIHNoYXBlU3ZnO1xufVxuZnVuY3Rpb24gbGVhbl9yaWdodChwYXJlbnQsIGJib3gsIG5vZGUpIHtcbiAgY29uc3QgdyA9IGJib3gud2lkdGg7XG4gIGNvbnN0IGggPSBiYm94LmhlaWdodDtcbiAgY29uc3QgcG9pbnRzID0gW1xuICAgIHsgeDogLTIgKiBoIC8gNiwgeTogMCB9LFxuICAgIHsgeDogdyAtIGggLyA2LCB5OiAwIH0sXG4gICAgeyB4OiB3ICsgMiAqIGggLyA2LCB5OiAtaCB9LFxuICAgIHsgeDogaCAvIDYsIHk6IC1oIH1cbiAgXTtcbiAgY29uc3Qgc2hhcGVTdmcgPSBpbnNlcnRQb2x5Z29uU2hhcGUocGFyZW50LCB3LCBoLCBwb2ludHMpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIGludGVyc2VjdFBvbHlnb24obm9kZSwgcG9pbnRzLCBwb2ludCk7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn1cbmZ1bmN0aW9uIGxlYW5fbGVmdChwYXJlbnQsIGJib3gsIG5vZGUpIHtcbiAgY29uc3QgdyA9IGJib3gud2lkdGg7XG4gIGNvbnN0IGggPSBiYm94LmhlaWdodDtcbiAgY29uc3QgcG9pbnRzID0gW1xuICAgIHsgeDogMiAqIGggLyA2LCB5OiAwIH0sXG4gICAgeyB4OiB3ICsgaCAvIDYsIHk6IDAgfSxcbiAgICB7IHg6IHcgLSAyICogaCAvIDYsIHk6IC1oIH0sXG4gICAgeyB4OiAtaCAvIDYsIHk6IC1oIH1cbiAgXTtcbiAgY29uc3Qgc2hhcGVTdmcgPSBpbnNlcnRQb2x5Z29uU2hhcGUocGFyZW50LCB3LCBoLCBwb2ludHMpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIGludGVyc2VjdFBvbHlnb24obm9kZSwgcG9pbnRzLCBwb2ludCk7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn1cbmZ1bmN0aW9uIHRyYXBlem9pZChwYXJlbnQsIGJib3gsIG5vZGUpIHtcbiAgY29uc3QgdyA9IGJib3gud2lkdGg7XG4gIGNvbnN0IGggPSBiYm94LmhlaWdodDtcbiAgY29uc3QgcG9pbnRzID0gW1xuICAgIHsgeDogLTIgKiBoIC8gNiwgeTogMCB9LFxuICAgIHsgeDogdyArIDIgKiBoIC8gNiwgeTogMCB9LFxuICAgIHsgeDogdyAtIGggLyA2LCB5OiAtaCB9LFxuICAgIHsgeDogaCAvIDYsIHk6IC1oIH1cbiAgXTtcbiAgY29uc3Qgc2hhcGVTdmcgPSBpbnNlcnRQb2x5Z29uU2hhcGUocGFyZW50LCB3LCBoLCBwb2ludHMpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIGludGVyc2VjdFBvbHlnb24obm9kZSwgcG9pbnRzLCBwb2ludCk7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn1cbmZ1bmN0aW9uIGludl90cmFwZXpvaWQocGFyZW50LCBiYm94LCBub2RlKSB7XG4gIGNvbnN0IHcgPSBiYm94LndpZHRoO1xuICBjb25zdCBoID0gYmJveC5oZWlnaHQ7XG4gIGNvbnN0IHBvaW50cyA9IFtcbiAgICB7IHg6IGggLyA2LCB5OiAwIH0sXG4gICAgeyB4OiB3IC0gaCAvIDYsIHk6IDAgfSxcbiAgICB7IHg6IHcgKyAyICogaCAvIDYsIHk6IC1oIH0sXG4gICAgeyB4OiAtMiAqIGggLyA2LCB5OiAtaCB9XG4gIF07XG4gIGNvbnN0IHNoYXBlU3ZnID0gaW5zZXJ0UG9seWdvblNoYXBlKHBhcmVudCwgdywgaCwgcG9pbnRzKTtcbiAgbm9kZS5pbnRlcnNlY3QgPSBmdW5jdGlvbihwb2ludCkge1xuICAgIHJldHVybiBpbnRlcnNlY3RQb2x5Z29uKG5vZGUsIHBvaW50cywgcG9pbnQpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59XG5mdW5jdGlvbiByZWN0X3JpZ2h0X2ludl9hcnJvdyhwYXJlbnQsIGJib3gsIG5vZGUpIHtcbiAgY29uc3QgdyA9IGJib3gud2lkdGg7XG4gIGNvbnN0IGggPSBiYm94LmhlaWdodDtcbiAgY29uc3QgcG9pbnRzID0gW1xuICAgIHsgeDogMCwgeTogMCB9LFxuICAgIHsgeDogdyArIGggLyAyLCB5OiAwIH0sXG4gICAgeyB4OiB3LCB5OiAtaCAvIDIgfSxcbiAgICB7IHg6IHcgKyBoIC8gMiwgeTogLWggfSxcbiAgICB7IHg6IDAsIHk6IC1oIH1cbiAgXTtcbiAgY29uc3Qgc2hhcGVTdmcgPSBpbnNlcnRQb2x5Z29uU2hhcGUocGFyZW50LCB3LCBoLCBwb2ludHMpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIGludGVyc2VjdFBvbHlnb24obm9kZSwgcG9pbnRzLCBwb2ludCk7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn1cbmZ1bmN0aW9uIHN0YWRpdW0ocGFyZW50LCBiYm94LCBub2RlKSB7XG4gIGNvbnN0IGggPSBiYm94LmhlaWdodDtcbiAgY29uc3QgdyA9IGJib3gud2lkdGggKyBoIC8gNDtcbiAgY29uc3Qgc2hhcGVTdmcgPSBwYXJlbnQuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKS5hdHRyKFwicnhcIiwgaCAvIDIpLmF0dHIoXCJyeVwiLCBoIC8gMikuYXR0cihcInhcIiwgLXcgLyAyKS5hdHRyKFwieVwiLCAtaCAvIDIpLmF0dHIoXCJ3aWR0aFwiLCB3KS5hdHRyKFwiaGVpZ2h0XCIsIGgpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIGludGVyc2VjdFJlY3Qobm9kZSwgcG9pbnQpO1xuICB9O1xuICByZXR1cm4gc2hhcGVTdmc7XG59XG5mdW5jdGlvbiBzdWJyb3V0aW5lKHBhcmVudCwgYmJveCwgbm9kZSkge1xuICBjb25zdCB3ID0gYmJveC53aWR0aDtcbiAgY29uc3QgaCA9IGJib3guaGVpZ2h0O1xuICBjb25zdCBwb2ludHMgPSBbXG4gICAgeyB4OiAwLCB5OiAwIH0sXG4gICAgeyB4OiB3LCB5OiAwIH0sXG4gICAgeyB4OiB3LCB5OiAtaCB9LFxuICAgIHsgeDogMCwgeTogLWggfSxcbiAgICB7IHg6IDAsIHk6IDAgfSxcbiAgICB7IHg6IC04LCB5OiAwIH0sXG4gICAgeyB4OiB3ICsgOCwgeTogMCB9LFxuICAgIHsgeDogdyArIDgsIHk6IC1oIH0sXG4gICAgeyB4OiAtOCwgeTogLWggfSxcbiAgICB7IHg6IC04LCB5OiAwIH1cbiAgXTtcbiAgY29uc3Qgc2hhcGVTdmcgPSBpbnNlcnRQb2x5Z29uU2hhcGUocGFyZW50LCB3LCBoLCBwb2ludHMpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIGludGVyc2VjdFBvbHlnb24obm9kZSwgcG9pbnRzLCBwb2ludCk7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn1cbmZ1bmN0aW9uIGN5bGluZGVyKHBhcmVudCwgYmJveCwgbm9kZSkge1xuICBjb25zdCB3ID0gYmJveC53aWR0aDtcbiAgY29uc3QgcnggPSB3IC8gMjtcbiAgY29uc3QgcnkgPSByeCAvICgyLjUgKyB3IC8gNTApO1xuICBjb25zdCBoID0gYmJveC5oZWlnaHQgKyByeTtcbiAgY29uc3Qgc2hhcGUgPSBcIk0gMCxcIiArIHJ5ICsgXCIgYSBcIiArIHJ4ICsgXCIsXCIgKyByeSArIFwiIDAsMCwwIFwiICsgdyArIFwiIDAgYSBcIiArIHJ4ICsgXCIsXCIgKyByeSArIFwiIDAsMCwwIFwiICsgLXcgKyBcIiAwIGwgMCxcIiArIGggKyBcIiBhIFwiICsgcnggKyBcIixcIiArIHJ5ICsgXCIgMCwwLDAgXCIgKyB3ICsgXCIgMCBsIDAsXCIgKyAtaDtcbiAgY29uc3Qgc2hhcGVTdmcgPSBwYXJlbnQuYXR0cihcImxhYmVsLW9mZnNldC15XCIsIHJ5KS5pbnNlcnQoXCJwYXRoXCIsIFwiOmZpcnN0LWNoaWxkXCIpLmF0dHIoXCJkXCIsIHNoYXBlKS5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKFwiICsgLXcgLyAyICsgXCIsXCIgKyAtKGggLyAyICsgcnkpICsgXCIpXCIpO1xuICBub2RlLmludGVyc2VjdCA9IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgY29uc3QgcG9zID0gaW50ZXJzZWN0UmVjdChub2RlLCBwb2ludCk7XG4gICAgY29uc3QgeCA9IHBvcy54IC0gbm9kZS54O1xuICAgIGlmIChyeCAhPSAwICYmIChNYXRoLmFicyh4KSA8IG5vZGUud2lkdGggLyAyIHx8IE1hdGguYWJzKHgpID09IG5vZGUud2lkdGggLyAyICYmIE1hdGguYWJzKHBvcy55IC0gbm9kZS55KSA+IG5vZGUuaGVpZ2h0IC8gMiAtIHJ5KSkge1xuICAgICAgbGV0IHkgPSByeSAqIHJ5ICogKDEgLSB4ICogeCAvIChyeCAqIHJ4KSk7XG4gICAgICBpZiAoeSAhPSAwKSB7XG4gICAgICAgIHkgPSBNYXRoLnNxcnQoeSk7XG4gICAgICB9XG4gICAgICB5ID0gcnkgLSB5O1xuICAgICAgaWYgKHBvaW50LnkgLSBub2RlLnkgPiAwKSB7XG4gICAgICAgIHkgPSAteTtcbiAgICAgIH1cbiAgICAgIHBvcy55ICs9IHk7XG4gICAgfVxuICAgIHJldHVybiBwb3M7XG4gIH07XG4gIHJldHVybiBzaGFwZVN2Zztcbn1cbmZ1bmN0aW9uIGFkZFRvUmVuZGVyKHJlbmRlcjIpIHtcbiAgcmVuZGVyMi5zaGFwZXMoKS5xdWVzdGlvbiA9IHF1ZXN0aW9uO1xuICByZW5kZXIyLnNoYXBlcygpLmhleGFnb24gPSBoZXhhZ29uO1xuICByZW5kZXIyLnNoYXBlcygpLnN0YWRpdW0gPSBzdGFkaXVtO1xuICByZW5kZXIyLnNoYXBlcygpLnN1YnJvdXRpbmUgPSBzdWJyb3V0aW5lO1xuICByZW5kZXIyLnNoYXBlcygpLmN5bGluZGVyID0gY3lsaW5kZXI7XG4gIHJlbmRlcjIuc2hhcGVzKCkucmVjdF9sZWZ0X2ludl9hcnJvdyA9IHJlY3RfbGVmdF9pbnZfYXJyb3c7XG4gIHJlbmRlcjIuc2hhcGVzKCkubGVhbl9yaWdodCA9IGxlYW5fcmlnaHQ7XG4gIHJlbmRlcjIuc2hhcGVzKCkubGVhbl9sZWZ0ID0gbGVhbl9sZWZ0O1xuICByZW5kZXIyLnNoYXBlcygpLnRyYXBlem9pZCA9IHRyYXBlem9pZDtcbiAgcmVuZGVyMi5zaGFwZXMoKS5pbnZfdHJhcGV6b2lkID0gaW52X3RyYXBlem9pZDtcbiAgcmVuZGVyMi5zaGFwZXMoKS5yZWN0X3JpZ2h0X2ludl9hcnJvdyA9IHJlY3RfcmlnaHRfaW52X2Fycm93O1xufVxuZnVuY3Rpb24gYWRkVG9SZW5kZXJWMihhZGRTaGFwZSkge1xuICBhZGRTaGFwZSh7IHF1ZXN0aW9uIH0pO1xuICBhZGRTaGFwZSh7IGhleGFnb24gfSk7XG4gIGFkZFNoYXBlKHsgc3RhZGl1bSB9KTtcbiAgYWRkU2hhcGUoeyBzdWJyb3V0aW5lIH0pO1xuICBhZGRTaGFwZSh7IGN5bGluZGVyIH0pO1xuICBhZGRTaGFwZSh7IHJlY3RfbGVmdF9pbnZfYXJyb3cgfSk7XG4gIGFkZFNoYXBlKHsgbGVhbl9yaWdodCB9KTtcbiAgYWRkU2hhcGUoeyBsZWFuX2xlZnQgfSk7XG4gIGFkZFNoYXBlKHsgdHJhcGV6b2lkIH0pO1xuICBhZGRTaGFwZSh7IGludl90cmFwZXpvaWQgfSk7XG4gIGFkZFNoYXBlKHsgcmVjdF9yaWdodF9pbnZfYXJyb3cgfSk7XG59XG5mdW5jdGlvbiBpbnNlcnRQb2x5Z29uU2hhcGUocGFyZW50LCB3LCBoLCBwb2ludHMpIHtcbiAgcmV0dXJuIHBhcmVudC5pbnNlcnQoXCJwb2x5Z29uXCIsIFwiOmZpcnN0LWNoaWxkXCIpLmF0dHIoXG4gICAgXCJwb2ludHNcIixcbiAgICBwb2ludHMubWFwKGZ1bmN0aW9uKGQpIHtcbiAgICAgIHJldHVybiBkLnggKyBcIixcIiArIGQueTtcbiAgICB9KS5qb2luKFwiIFwiKVxuICApLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyAtdyAvIDIgKyBcIixcIiArIGggLyAyICsgXCIpXCIpO1xufVxuY29uc3QgZmxvd0NoYXJ0U2hhcGVzID0ge1xuICBhZGRUb1JlbmRlcixcbiAgYWRkVG9SZW5kZXJWMlxufTtcbmNvbnN0IGNvbmYgPSB7fTtcbmNvbnN0IHNldENvbmYgPSBmdW5jdGlvbihjbmYpIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNuZik7XG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICBjb25mW2tleV0gPSBjbmZba2V5XTtcbiAgfVxufTtcbmNvbnN0IGFkZFZlcnRpY2VzID0gYXN5bmMgZnVuY3Rpb24odmVydCwgZywgc3ZnSWQsIHJvb3QsIF9kb2MsIGRpYWdPYmopIHtcbiAgY29uc3Qgc3ZnID0gIXJvb3QgPyBzZWxlY3QoYFtpZD1cIiR7c3ZnSWR9XCJdYCkgOiByb290LnNlbGVjdChgW2lkPVwiJHtzdmdJZH1cIl1gKTtcbiAgY29uc3QgZG9jID0gIV9kb2MgPyBkb2N1bWVudCA6IF9kb2M7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2ZXJ0KTtcbiAgZm9yIChjb25zdCBpZCBvZiBrZXlzKSB7XG4gICAgY29uc3QgdmVydGV4ID0gdmVydFtpZF07XG4gICAgbGV0IGNsYXNzU3RyID0gXCJkZWZhdWx0XCI7XG4gICAgaWYgKHZlcnRleC5jbGFzc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNsYXNzU3RyID0gdmVydGV4LmNsYXNzZXMuam9pbihcIiBcIik7XG4gICAgfVxuICAgIGNvbnN0IHN0eWxlcyA9IGdldFN0eWxlc0Zyb21BcnJheSh2ZXJ0ZXguc3R5bGVzKTtcbiAgICBsZXQgdmVydGV4VGV4dCA9IHZlcnRleC50ZXh0ICE9PSB2b2lkIDAgPyB2ZXJ0ZXgudGV4dCA6IHZlcnRleC5pZDtcbiAgICBsZXQgdmVydGV4Tm9kZTtcbiAgICBpZiAoZXZhbHVhdGUoZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMpKSB7XG4gICAgICBjb25zdCBub2RlID0ge1xuICAgICAgICBsYWJlbDogYXdhaXQgcmVuZGVyS2F0ZXgoXG4gICAgICAgICAgdmVydGV4VGV4dC5yZXBsYWNlKFxuICAgICAgICAgICAgL2ZhW2JscnNdPzpmYS1bXFx3LV0rL2csXG4gICAgICAgICAgICAvLyBjc3BlbGw6ZGlzYWJsZS1saW5lXG4gICAgICAgICAgICAocykgPT4gYDxpIGNsYXNzPScke3MucmVwbGFjZShcIjpcIiwgXCIgXCIpfSc+PC9pPmBcbiAgICAgICAgICApLFxuICAgICAgICAgIGdldENvbmZpZygpXG4gICAgICAgIClcbiAgICAgIH07XG4gICAgICB2ZXJ0ZXhOb2RlID0gYWRkSHRtbExhYmVsKHN2Zywgbm9kZSkubm9kZSgpO1xuICAgICAgdmVydGV4Tm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHZlcnRleE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdmdMYWJlbCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcInRleHRcIik7XG4gICAgICBzdmdMYWJlbC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBzdHlsZXMubGFiZWxTdHlsZS5yZXBsYWNlKFwiY29sb3I6XCIsIFwiZmlsbDpcIikpO1xuICAgICAgY29uc3Qgcm93cyA9IHZlcnRleFRleHQuc3BsaXQoY29tbW9uLmxpbmVCcmVha1JlZ2V4KTtcbiAgICAgIGZvciAoY29uc3Qgcm93IG9mIHJvd3MpIHtcbiAgICAgICAgY29uc3QgdHNwYW4gPSBkb2MuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJ0c3BhblwiKTtcbiAgICAgICAgdHNwYW4uc2V0QXR0cmlidXRlTlMoXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIiwgXCJ4bWw6c3BhY2VcIiwgXCJwcmVzZXJ2ZVwiKTtcbiAgICAgICAgdHNwYW4uc2V0QXR0cmlidXRlKFwiZHlcIiwgXCIxZW1cIik7XG4gICAgICAgIHRzcGFuLnNldEF0dHJpYnV0ZShcInhcIiwgXCIxXCIpO1xuICAgICAgICB0c3Bhbi50ZXh0Q29udGVudCA9IHJvdztcbiAgICAgICAgc3ZnTGFiZWwuYXBwZW5kQ2hpbGQodHNwYW4pO1xuICAgICAgfVxuICAgICAgdmVydGV4Tm9kZSA9IHN2Z0xhYmVsO1xuICAgIH1cbiAgICBsZXQgcmFkaXVzID0gMDtcbiAgICBsZXQgX3NoYXBlID0gXCJcIjtcbiAgICBzd2l0Y2ggKHZlcnRleC50eXBlKSB7XG4gICAgICBjYXNlIFwicm91bmRcIjpcbiAgICAgICAgcmFkaXVzID0gNTtcbiAgICAgICAgX3NoYXBlID0gXCJyZWN0XCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInNxdWFyZVwiOlxuICAgICAgICBfc2hhcGUgPSBcInJlY3RcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiZGlhbW9uZFwiOlxuICAgICAgICBfc2hhcGUgPSBcInF1ZXN0aW9uXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImhleGFnb25cIjpcbiAgICAgICAgX3NoYXBlID0gXCJoZXhhZ29uXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm9kZFwiOlxuICAgICAgICBfc2hhcGUgPSBcInJlY3RfbGVmdF9pbnZfYXJyb3dcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibGVhbl9yaWdodFwiOlxuICAgICAgICBfc2hhcGUgPSBcImxlYW5fcmlnaHRcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibGVhbl9sZWZ0XCI6XG4gICAgICAgIF9zaGFwZSA9IFwibGVhbl9sZWZ0XCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInRyYXBlem9pZFwiOlxuICAgICAgICBfc2hhcGUgPSBcInRyYXBlem9pZFwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJpbnZfdHJhcGV6b2lkXCI6XG4gICAgICAgIF9zaGFwZSA9IFwiaW52X3RyYXBlem9pZFwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJvZGRfcmlnaHRcIjpcbiAgICAgICAgX3NoYXBlID0gXCJyZWN0X2xlZnRfaW52X2Fycm93XCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImNpcmNsZVwiOlxuICAgICAgICBfc2hhcGUgPSBcImNpcmNsZVwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJlbGxpcHNlXCI6XG4gICAgICAgIF9zaGFwZSA9IFwiZWxsaXBzZVwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJzdGFkaXVtXCI6XG4gICAgICAgIF9zaGFwZSA9IFwic3RhZGl1bVwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJzdWJyb3V0aW5lXCI6XG4gICAgICAgIF9zaGFwZSA9IFwic3Vicm91dGluZVwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJjeWxpbmRlclwiOlxuICAgICAgICBfc2hhcGUgPSBcImN5bGluZGVyXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImdyb3VwXCI6XG4gICAgICAgIF9zaGFwZSA9IFwicmVjdFwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIF9zaGFwZSA9IFwicmVjdFwiO1xuICAgIH1cbiAgICBsb2cud2FybihcIkFkZGluZyBub2RlXCIsIHZlcnRleC5pZCwgdmVydGV4LmRvbUlkKTtcbiAgICBnLnNldE5vZGUoZGlhZ09iai5kYi5sb29rVXBEb21JZCh2ZXJ0ZXguaWQpLCB7XG4gICAgICBsYWJlbFR5cGU6IFwic3ZnXCIsXG4gICAgICBsYWJlbFN0eWxlOiBzdHlsZXMubGFiZWxTdHlsZSxcbiAgICAgIHNoYXBlOiBfc2hhcGUsXG4gICAgICBsYWJlbDogdmVydGV4Tm9kZSxcbiAgICAgIHJ4OiByYWRpdXMsXG4gICAgICByeTogcmFkaXVzLFxuICAgICAgY2xhc3M6IGNsYXNzU3RyLFxuICAgICAgc3R5bGU6IHN0eWxlcy5zdHlsZSxcbiAgICAgIGlkOiBkaWFnT2JqLmRiLmxvb2tVcERvbUlkKHZlcnRleC5pZClcbiAgICB9KTtcbiAgfVxufTtcbmNvbnN0IGFkZEVkZ2VzID0gYXN5bmMgZnVuY3Rpb24oZWRnZXMsIGcsIGRpYWdPYmopIHtcbiAgbGV0IGNudCA9IDA7XG4gIGxldCBkZWZhdWx0U3R5bGU7XG4gIGxldCBkZWZhdWx0TGFiZWxTdHlsZTtcbiAgaWYgKGVkZ2VzLmRlZmF1bHRTdHlsZSAhPT0gdm9pZCAwKSB7XG4gICAgY29uc3QgZGVmYXVsdFN0eWxlcyA9IGdldFN0eWxlc0Zyb21BcnJheShlZGdlcy5kZWZhdWx0U3R5bGUpO1xuICAgIGRlZmF1bHRTdHlsZSA9IGRlZmF1bHRTdHlsZXMuc3R5bGU7XG4gICAgZGVmYXVsdExhYmVsU3R5bGUgPSBkZWZhdWx0U3R5bGVzLmxhYmVsU3R5bGU7XG4gIH1cbiAgZm9yIChjb25zdCBlZGdlIG9mIGVkZ2VzKSB7XG4gICAgY250Kys7XG4gICAgY29uc3QgbGlua0lkID0gXCJMLVwiICsgZWRnZS5zdGFydCArIFwiLVwiICsgZWRnZS5lbmQ7XG4gICAgY29uc3QgbGlua05hbWVTdGFydCA9IFwiTFMtXCIgKyBlZGdlLnN0YXJ0O1xuICAgIGNvbnN0IGxpbmtOYW1lRW5kID0gXCJMRS1cIiArIGVkZ2UuZW5kO1xuICAgIGNvbnN0IGVkZ2VEYXRhID0ge307XG4gICAgaWYgKGVkZ2UudHlwZSA9PT0gXCJhcnJvd19vcGVuXCIpIHtcbiAgICAgIGVkZ2VEYXRhLmFycm93aGVhZCA9IFwibm9uZVwiO1xuICAgIH0gZWxzZSB7XG4gICAgICBlZGdlRGF0YS5hcnJvd2hlYWQgPSBcIm5vcm1hbFwiO1xuICAgIH1cbiAgICBsZXQgc3R5bGUgPSBcIlwiO1xuICAgIGxldCBsYWJlbFN0eWxlID0gXCJcIjtcbiAgICBpZiAoZWRnZS5zdHlsZSAhPT0gdm9pZCAwKSB7XG4gICAgICBjb25zdCBzdHlsZXMgPSBnZXRTdHlsZXNGcm9tQXJyYXkoZWRnZS5zdHlsZSk7XG4gICAgICBzdHlsZSA9IHN0eWxlcy5zdHlsZTtcbiAgICAgIGxhYmVsU3R5bGUgPSBzdHlsZXMubGFiZWxTdHlsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoIChlZGdlLnN0cm9rZSkge1xuICAgICAgICBjYXNlIFwibm9ybWFsXCI6XG4gICAgICAgICAgc3R5bGUgPSBcImZpbGw6bm9uZVwiO1xuICAgICAgICAgIGlmIChkZWZhdWx0U3R5bGUgIT09IHZvaWQgMCkge1xuICAgICAgICAgICAgc3R5bGUgPSBkZWZhdWx0U3R5bGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWZhdWx0TGFiZWxTdHlsZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICBsYWJlbFN0eWxlID0gZGVmYXVsdExhYmVsU3R5bGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZG90dGVkXCI6XG4gICAgICAgICAgc3R5bGUgPSBcImZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1kYXNoYXJyYXk6MztcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRoaWNrXCI6XG4gICAgICAgICAgc3R5bGUgPSBcIiBzdHJva2Utd2lkdGg6IDMuNXB4O2ZpbGw6bm9uZVwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBlZGdlRGF0YS5zdHlsZSA9IHN0eWxlO1xuICAgIGVkZ2VEYXRhLmxhYmVsU3R5bGUgPSBsYWJlbFN0eWxlO1xuICAgIGlmIChlZGdlLmludGVycG9sYXRlICE9PSB2b2lkIDApIHtcbiAgICAgIGVkZ2VEYXRhLmN1cnZlID0gaW50ZXJwb2xhdGVUb0N1cnZlKGVkZ2UuaW50ZXJwb2xhdGUsIGN1cnZlTGluZWFyKTtcbiAgICB9IGVsc2UgaWYgKGVkZ2VzLmRlZmF1bHRJbnRlcnBvbGF0ZSAhPT0gdm9pZCAwKSB7XG4gICAgICBlZGdlRGF0YS5jdXJ2ZSA9IGludGVycG9sYXRlVG9DdXJ2ZShlZGdlcy5kZWZhdWx0SW50ZXJwb2xhdGUsIGN1cnZlTGluZWFyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWRnZURhdGEuY3VydmUgPSBpbnRlcnBvbGF0ZVRvQ3VydmUoY29uZi5jdXJ2ZSwgY3VydmVMaW5lYXIpO1xuICAgIH1cbiAgICBpZiAoZWRnZS50ZXh0ID09PSB2b2lkIDApIHtcbiAgICAgIGlmIChlZGdlLnN0eWxlICE9PSB2b2lkIDApIHtcbiAgICAgICAgZWRnZURhdGEuYXJyb3doZWFkU3R5bGUgPSBcImZpbGw6ICMzMzNcIjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZWRnZURhdGEuYXJyb3doZWFkU3R5bGUgPSBcImZpbGw6ICMzMzNcIjtcbiAgICAgIGVkZ2VEYXRhLmxhYmVscG9zID0gXCJjXCI7XG4gICAgICBpZiAoZXZhbHVhdGUoZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMpKSB7XG4gICAgICAgIGVkZ2VEYXRhLmxhYmVsVHlwZSA9IFwiaHRtbFwiO1xuICAgICAgICBlZGdlRGF0YS5sYWJlbCA9IGA8c3BhbiBpZD1cIkwtJHtsaW5rSWR9XCIgY2xhc3M9XCJlZGdlTGFiZWwgTC0ke2xpbmtOYW1lU3RhcnR9JyBMLSR7bGlua05hbWVFbmR9XCIgc3R5bGU9XCIke2VkZ2VEYXRhLmxhYmVsU3R5bGV9XCI+JHthd2FpdCByZW5kZXJLYXRleChcbiAgICAgICAgICBlZGdlLnRleHQucmVwbGFjZShcbiAgICAgICAgICAgIC9mYVtibHJzXT86ZmEtW1xcdy1dKy9nLFxuICAgICAgICAgICAgLy8gY3NwZWxsOmRpc2FibGUtbGluZVxuICAgICAgICAgICAgKHMpID0+IGA8aSBjbGFzcz0nJHtzLnJlcGxhY2UoXCI6XCIsIFwiIFwiKX0nPjwvaT5gXG4gICAgICAgICAgKSxcbiAgICAgICAgICBnZXRDb25maWcoKVxuICAgICAgICApfTwvc3Bhbj5gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWRnZURhdGEubGFiZWxUeXBlID0gXCJ0ZXh0XCI7XG4gICAgICAgIGVkZ2VEYXRhLmxhYmVsID0gZWRnZS50ZXh0LnJlcGxhY2UoY29tbW9uLmxpbmVCcmVha1JlZ2V4LCBcIlxcblwiKTtcbiAgICAgICAgaWYgKGVkZ2Uuc3R5bGUgPT09IHZvaWQgMCkge1xuICAgICAgICAgIGVkZ2VEYXRhLnN0eWxlID0gZWRnZURhdGEuc3R5bGUgfHwgXCJzdHJva2U6ICMzMzM7IHN0cm9rZS13aWR0aDogMS41cHg7ZmlsbDpub25lXCI7XG4gICAgICAgIH1cbiAgICAgICAgZWRnZURhdGEubGFiZWxTdHlsZSA9IGVkZ2VEYXRhLmxhYmVsU3R5bGUucmVwbGFjZShcImNvbG9yOlwiLCBcImZpbGw6XCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBlZGdlRGF0YS5pZCA9IGxpbmtJZDtcbiAgICBlZGdlRGF0YS5jbGFzcyA9IGxpbmtOYW1lU3RhcnQgKyBcIiBcIiArIGxpbmtOYW1lRW5kO1xuICAgIGVkZ2VEYXRhLm1pbmxlbiA9IGVkZ2UubGVuZ3RoIHx8IDE7XG4gICAgZy5zZXRFZGdlKGRpYWdPYmouZGIubG9va1VwRG9tSWQoZWRnZS5zdGFydCksIGRpYWdPYmouZGIubG9va1VwRG9tSWQoZWRnZS5lbmQpLCBlZGdlRGF0YSwgY250KTtcbiAgfVxufTtcbmNvbnN0IGdldENsYXNzZXMgPSBmdW5jdGlvbih0ZXh0LCBkaWFnT2JqKSB7XG4gIGxvZy5pbmZvKFwiRXh0cmFjdGluZyBjbGFzc2VzXCIpO1xuICByZXR1cm4gZGlhZ09iai5kYi5nZXRDbGFzc2VzKCk7XG59O1xuY29uc3QgZHJhdyA9IGFzeW5jIGZ1bmN0aW9uKHRleHQsIGlkLCBfdmVyc2lvbiwgZGlhZ09iaikge1xuICBsb2cuaW5mbyhcIkRyYXdpbmcgZmxvd2NoYXJ0XCIpO1xuICBjb25zdCB7IHNlY3VyaXR5TGV2ZWwsIGZsb3djaGFydDogY29uZjIgfSA9IGdldENvbmZpZygpO1xuICBsZXQgc2FuZGJveEVsZW1lbnQ7XG4gIGlmIChzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIikge1xuICAgIHNhbmRib3hFbGVtZW50ID0gc2VsZWN0KFwiI2lcIiArIGlkKTtcbiAgfVxuICBjb25zdCByb290ID0gc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIgPyBzZWxlY3Qoc2FuZGJveEVsZW1lbnQubm9kZXMoKVswXS5jb250ZW50RG9jdW1lbnQuYm9keSkgOiBzZWxlY3QoXCJib2R5XCIpO1xuICBjb25zdCBkb2MgPSBzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIiA/IHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50IDogZG9jdW1lbnQ7XG4gIGxldCBkaXIgPSBkaWFnT2JqLmRiLmdldERpcmVjdGlvbigpO1xuICBpZiAoZGlyID09PSB2b2lkIDApIHtcbiAgICBkaXIgPSBcIlREXCI7XG4gIH1cbiAgY29uc3Qgbm9kZVNwYWNpbmcgPSBjb25mMi5ub2RlU3BhY2luZyB8fCA1MDtcbiAgY29uc3QgcmFua1NwYWNpbmcgPSBjb25mMi5yYW5rU3BhY2luZyB8fCA1MDtcbiAgY29uc3QgZyA9IG5ldyBncmFwaGxpYi5HcmFwaCh7XG4gICAgbXVsdGlncmFwaDogdHJ1ZSxcbiAgICBjb21wb3VuZDogdHJ1ZVxuICB9KS5zZXRHcmFwaCh7XG4gICAgcmFua2RpcjogZGlyLFxuICAgIG5vZGVzZXA6IG5vZGVTcGFjaW5nLFxuICAgIHJhbmtzZXA6IHJhbmtTcGFjaW5nLFxuICAgIG1hcmdpbng6IDgsXG4gICAgbWFyZ2lueTogOFxuICB9KS5zZXREZWZhdWx0RWRnZUxhYmVsKGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB7fTtcbiAgfSk7XG4gIGxldCBzdWJHO1xuICBjb25zdCBzdWJHcmFwaHMgPSBkaWFnT2JqLmRiLmdldFN1YkdyYXBocygpO1xuICBmb3IgKGxldCBpMiA9IHN1YkdyYXBocy5sZW5ndGggLSAxOyBpMiA+PSAwOyBpMi0tKSB7XG4gICAgc3ViRyA9IHN1YkdyYXBoc1tpMl07XG4gICAgZGlhZ09iai5kYi5hZGRWZXJ0ZXgoc3ViRy5pZCwgc3ViRy50aXRsZSwgXCJncm91cFwiLCB2b2lkIDAsIHN1YkcuY2xhc3Nlcyk7XG4gIH1cbiAgY29uc3QgdmVydCA9IGRpYWdPYmouZGIuZ2V0VmVydGljZXMoKTtcbiAgbG9nLndhcm4oXCJHZXQgdmVydGljZXNcIiwgdmVydCk7XG4gIGNvbnN0IGVkZ2VzID0gZGlhZ09iai5kYi5nZXRFZGdlcygpO1xuICBsZXQgaSA9IDA7XG4gIGZvciAoaSA9IHN1YkdyYXBocy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIHN1YkcgPSBzdWJHcmFwaHNbaV07XG4gICAgc2VsZWN0QWxsKFwiY2x1c3RlclwiKS5hcHBlbmQoXCJ0ZXh0XCIpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgc3ViRy5ub2Rlcy5sZW5ndGg7IGorKykge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIFwiU2V0dGluZyBzdWJncmFwaFwiLFxuICAgICAgICBzdWJHLm5vZGVzW2pdLFxuICAgICAgICBkaWFnT2JqLmRiLmxvb2tVcERvbUlkKHN1Ykcubm9kZXNbal0pLFxuICAgICAgICBkaWFnT2JqLmRiLmxvb2tVcERvbUlkKHN1YkcuaWQpXG4gICAgICApO1xuICAgICAgZy5zZXRQYXJlbnQoZGlhZ09iai5kYi5sb29rVXBEb21JZChzdWJHLm5vZGVzW2pdKSwgZGlhZ09iai5kYi5sb29rVXBEb21JZChzdWJHLmlkKSk7XG4gICAgfVxuICB9XG4gIGF3YWl0IGFkZFZlcnRpY2VzKHZlcnQsIGcsIGlkLCByb290LCBkb2MsIGRpYWdPYmopO1xuICBhd2FpdCBhZGRFZGdlcyhlZGdlcywgZywgZGlhZ09iaik7XG4gIGNvbnN0IHJlbmRlciQxID0gbmV3IHJlbmRlcigpO1xuICBmbG93Q2hhcnRTaGFwZXMuYWRkVG9SZW5kZXIocmVuZGVyJDEpO1xuICByZW5kZXIkMS5hcnJvd3MoKS5ub25lID0gZnVuY3Rpb24gbm9ybWFsKHBhcmVudCwgaWQyLCBlZGdlLCB0eXBlKSB7XG4gICAgY29uc3QgbWFya2VyID0gcGFyZW50LmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgaWQyKS5hdHRyKFwidmlld0JveFwiLCBcIjAgMCAxMCAxMFwiKS5hdHRyKFwicmVmWFwiLCA5KS5hdHRyKFwicmVmWVwiLCA1KS5hdHRyKFwibWFya2VyVW5pdHNcIiwgXCJzdHJva2VXaWR0aFwiKS5hdHRyKFwibWFya2VyV2lkdGhcIiwgOCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCA2KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKTtcbiAgICBjb25zdCBwYXRoID0gbWFya2VyLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDAgMCBMIDAgMCBMIDAgMCB6XCIpO1xuICAgIGFwcGx5U3R5bGUocGF0aCwgZWRnZVt0eXBlICsgXCJTdHlsZVwiXSk7XG4gIH07XG4gIHJlbmRlciQxLmFycm93cygpLm5vcm1hbCA9IGZ1bmN0aW9uIG5vcm1hbChwYXJlbnQsIGlkMikge1xuICAgIGNvbnN0IG1hcmtlciA9IHBhcmVudC5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIGlkMikuYXR0cihcInZpZXdCb3hcIiwgXCIwIDAgMTAgMTBcIikuYXR0cihcInJlZlhcIiwgOSkuYXR0cihcInJlZllcIiwgNSkuYXR0cihcIm1hcmtlclVuaXRzXCIsIFwic3Ryb2tlV2lkdGhcIikuYXR0cihcIm1hcmtlcldpZHRoXCIsIDgpLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgNikuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIik7XG4gICAgbWFya2VyLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDAgMCBMIDEwIDUgTCAwIDEwIHpcIikuYXR0cihcImNsYXNzXCIsIFwiYXJyb3doZWFkUGF0aFwiKS5zdHlsZShcInN0cm9rZS13aWR0aFwiLCAxKS5zdHlsZShcInN0cm9rZS1kYXNoYXJyYXlcIiwgXCIxLDBcIik7XG4gIH07XG4gIGNvbnN0IHN2ZyA9IHJvb3Quc2VsZWN0KGBbaWQ9XCIke2lkfVwiXWApO1xuICBjb25zdCBlbGVtZW50ID0gcm9vdC5zZWxlY3QoXCIjXCIgKyBpZCArIFwiIGdcIik7XG4gIHJlbmRlciQxKGVsZW1lbnQsIGcpO1xuICBlbGVtZW50LnNlbGVjdEFsbChcImcubm9kZVwiKS5hdHRyKFwidGl0bGVcIiwgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRpYWdPYmouZGIuZ2V0VG9vbHRpcCh0aGlzLmlkKTtcbiAgfSk7XG4gIGRpYWdPYmouZGIuaW5kZXhOb2RlcyhcInN1YkdyYXBoXCIgKyBpKTtcbiAgZm9yIChpID0gMDsgaSA8IHN1YkdyYXBocy5sZW5ndGg7IGkrKykge1xuICAgIHN1YkcgPSBzdWJHcmFwaHNbaV07XG4gICAgaWYgKHN1YkcudGl0bGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvbnN0IGNsdXN0ZXJSZWN0cyA9IGRvYy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICBcIiNcIiArIGlkICsgJyBbaWQ9XCInICsgZGlhZ09iai5kYi5sb29rVXBEb21JZChzdWJHLmlkKSArICdcIl0gcmVjdCdcbiAgICAgICk7XG4gICAgICBjb25zdCBjbHVzdGVyRWwgPSBkb2MucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgXCIjXCIgKyBpZCArICcgW2lkPVwiJyArIGRpYWdPYmouZGIubG9va1VwRG9tSWQoc3ViRy5pZCkgKyAnXCJdJ1xuICAgICAgKTtcbiAgICAgIGNvbnN0IHhQb3MgPSBjbHVzdGVyUmVjdHNbMF0ueC5iYXNlVmFsLnZhbHVlO1xuICAgICAgY29uc3QgeVBvcyA9IGNsdXN0ZXJSZWN0c1swXS55LmJhc2VWYWwudmFsdWU7XG4gICAgICBjb25zdCBfd2lkdGggPSBjbHVzdGVyUmVjdHNbMF0ud2lkdGguYmFzZVZhbC52YWx1ZTtcbiAgICAgIGNvbnN0IGNsdXN0ZXIgPSBzZWxlY3QoY2x1c3RlckVsWzBdKTtcbiAgICAgIGNvbnN0IHRlID0gY2x1c3Rlci5zZWxlY3QoXCIubGFiZWxcIik7XG4gICAgICB0ZS5hdHRyKFwidHJhbnNmb3JtXCIsIGB0cmFuc2xhdGUoJHt4UG9zICsgX3dpZHRoIC8gMn0sICR7eVBvcyArIDE0fSlgKTtcbiAgICAgIHRlLmF0dHIoXCJpZFwiLCBpZCArIFwiVGV4dFwiKTtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc3ViRy5jbGFzc2VzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGNsdXN0ZXJFbFswXS5jbGFzc0xpc3QuYWRkKHN1YkcuY2xhc3Nlc1tqXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICghY29uZjIuaHRtbExhYmVscykge1xuICAgIGNvbnN0IGxhYmVscyA9IGRvYy5xdWVyeVNlbGVjdG9yQWxsKCdbaWQ9XCInICsgaWQgKyAnXCJdIC5lZGdlTGFiZWwgLmxhYmVsJyk7XG4gICAgZm9yIChjb25zdCBsYWJlbCBvZiBsYWJlbHMpIHtcbiAgICAgIGNvbnN0IGRpbSA9IGxhYmVsLmdldEJCb3goKTtcbiAgICAgIGNvbnN0IHJlY3QgPSBkb2MuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJyZWN0XCIpO1xuICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJyeFwiLCAwKTtcbiAgICAgIHJlY3Quc2V0QXR0cmlidXRlKFwicnlcIiwgMCk7XG4gICAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGRpbS53aWR0aCk7XG4gICAgICByZWN0LnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBkaW0uaGVpZ2h0KTtcbiAgICAgIGxhYmVsLmluc2VydEJlZm9yZShyZWN0LCBsYWJlbC5maXJzdENoaWxkKTtcbiAgICB9XG4gIH1cbiAgc2V0dXBHcmFwaFZpZXdib3goZywgc3ZnLCBjb25mMi5kaWFncmFtUGFkZGluZywgY29uZjIudXNlTWF4V2lkdGgpO1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmVydCk7XG4gIGtleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICBjb25zdCB2ZXJ0ZXggPSB2ZXJ0W2tleV07XG4gICAgaWYgKHZlcnRleC5saW5rKSB7XG4gICAgICBjb25zdCBub2RlID0gcm9vdC5zZWxlY3QoXCIjXCIgKyBpZCArICcgW2lkPVwiJyArIGRpYWdPYmouZGIubG9va1VwRG9tSWQoa2V5KSArICdcIl0nKTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIGNvbnN0IGxpbmsgPSBkb2MuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJhXCIpO1xuICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZU5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJjbGFzc1wiLCB2ZXJ0ZXguY2xhc3Nlcy5qb2luKFwiIFwiKSk7XG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlTlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcImhyZWZcIiwgdmVydGV4LmxpbmspO1xuICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZU5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJyZWxcIiwgXCJub29wZW5lclwiKTtcbiAgICAgICAgaWYgKHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiKSB7XG4gICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGVOUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwidGFyZ2V0XCIsIFwiX3RvcFwiKTtcbiAgICAgICAgfSBlbHNlIGlmICh2ZXJ0ZXgubGlua1RhcmdldCkge1xuICAgICAgICAgIGxpbmsuc2V0QXR0cmlidXRlTlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcInRhcmdldFwiLCB2ZXJ0ZXgubGlua1RhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGlua05vZGUgPSBub2RlLmluc2VydChmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gbGluaztcbiAgICAgICAgfSwgXCI6Zmlyc3QtY2hpbGRcIik7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gbm9kZS5zZWxlY3QoXCIubGFiZWwtY29udGFpbmVyXCIpO1xuICAgICAgICBpZiAoc2hhcGUpIHtcbiAgICAgICAgICBsaW5rTm9kZS5hcHBlbmQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gc2hhcGUubm9kZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhYmVsID0gbm9kZS5zZWxlY3QoXCIubGFiZWxcIik7XG4gICAgICAgIGlmIChsYWJlbCkge1xuICAgICAgICAgIGxpbmtOb2RlLmFwcGVuZChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBsYWJlbC5ub2RlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufTtcbmNvbnN0IGZsb3dSZW5kZXJlciA9IHtcbiAgc2V0Q29uZixcbiAgYWRkVmVydGljZXMsXG4gIGFkZEVkZ2VzLFxuICBnZXRDbGFzc2VzLFxuICBkcmF3XG59O1xuY29uc3QgZGlhZ3JhbSA9IHtcbiAgcGFyc2VyLFxuICBkYjogZmxvd0RiLFxuICByZW5kZXJlcjogZmxvd1JlbmRlcmVyVjIsXG4gIHN0eWxlczogZmxvd1N0eWxlcyxcbiAgaW5pdDogKGNuZikgPT4ge1xuICAgIGlmICghY25mLmZsb3djaGFydCkge1xuICAgICAgY25mLmZsb3djaGFydCA9IHt9O1xuICAgIH1cbiAgICBjbmYuZmxvd2NoYXJ0LmFycm93TWFya2VyQWJzb2x1dGUgPSBjbmYuYXJyb3dNYXJrZXJBYnNvbHV0ZTtcbiAgICBmbG93UmVuZGVyZXIuc2V0Q29uZihjbmYuZmxvd2NoYXJ0KTtcbiAgICBmbG93RGIuY2xlYXIoKTtcbiAgICBmbG93RGIuc2V0R2VuKFwiZ2VuLTFcIik7XG4gIH1cbn07XG5leHBvcnQge1xuICBkaWFncmFtXG59O1xuIiwKICAgICJpbXBvcnQgeyBwIGFzIHBhcnNlciwgZiBhcyBmbG93RGIgfSBmcm9tIFwiLi9mbG93RGItYzE4MzMwNjMuanNcIjtcbmltcG9ydCB7IGYgYXMgZmxvd1JlbmRlcmVyVjIsIGEgYXMgZmxvd1N0eWxlcyB9IGZyb20gXCIuL3N0eWxlcy00ODNmYmZlYS5qc1wiO1xuaW1wb3J0IHsgcCBhcyBzZXRDb25maWcgfSBmcm9tIFwiLi9tZXJtYWlkLTZkYzcyOTkxLmpzXCI7XG5pbXBvcnQgXCJkM1wiO1xuaW1wb3J0IFwiZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2luZGV4LmpzXCI7XG5pbXBvcnQgXCIuL2luZGV4LTAxZjM4MWNiLmpzXCI7XG5pbXBvcnQgXCJkYWdyZS1kMy1lcy9zcmMvZGFncmUvaW5kZXguanNcIjtcbmltcG9ydCBcImRhZ3JlLWQzLWVzL3NyYy9ncmFwaGxpYi9qc29uLmpzXCI7XG5pbXBvcnQgXCIuL2VkZ2VzLTA2NmE1NTYxLmpzXCI7XG5pbXBvcnQgXCIuL2NyZWF0ZVRleHQtY2EwYzUyMTYuanNcIjtcbmltcG9ydCBcIm1kYXN0LXV0aWwtZnJvbS1tYXJrZG93blwiO1xuaW1wb3J0IFwidHMtZGVkZW50XCI7XG5pbXBvcnQgXCJkYWdyZS1kMy1lcy9zcmMvZGFncmUtanMvbGFiZWwvYWRkLWh0bWwtbGFiZWwuanNcIjtcbmltcG9ydCBcImtocm9tYVwiO1xuaW1wb3J0IFwiZGF5anNcIjtcbmltcG9ydCBcIkBicmFpbnRyZWUvc2FuaXRpemUtdXJsXCI7XG5pbXBvcnQgXCJkb21wdXJpZnlcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZW1vaXplLmpzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVyZ2UuanNcIjtcbmltcG9ydCBcInN0eWxpc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL2lzRW1wdHkuanNcIjtcbmNvbnN0IGRpYWdyYW0gPSB7XG4gIHBhcnNlcixcbiAgZGI6IGZsb3dEYixcbiAgcmVuZGVyZXI6IGZsb3dSZW5kZXJlclYyLFxuICBzdHlsZXM6IGZsb3dTdHlsZXMsXG4gIGluaXQ6IChjbmYpID0+IHtcbiAgICBpZiAoIWNuZi5mbG93Y2hhcnQpIHtcbiAgICAgIGNuZi5mbG93Y2hhcnQgPSB7fTtcbiAgICB9XG4gICAgY25mLmZsb3djaGFydC5hcnJvd01hcmtlckFic29sdXRlID0gY25mLmFycm93TWFya2VyQWJzb2x1dGU7XG4gICAgc2V0Q29uZmlnKHsgZmxvd2NoYXJ0OiB7IGFycm93TWFya2VyQWJzb2x1dGU6IGNuZi5hcnJvd01hcmtlckFic29sdXRlIH0gfSk7XG4gICAgZmxvd1JlbmRlcmVyVjIuc2V0Q29uZihjbmYuZmxvd2NoYXJ0KTtcbiAgICBmbG93RGIuY2xlYXIoKTtcbiAgICBmbG93RGIuc2V0R2VuKFwiZ2VuLTJcIik7XG4gIH1cbn07XG5leHBvcnQge1xuICBkaWFncmFtXG59O1xuIiwKICAgICJleHBvcnQgZGVmYXVsdCAvXig/OlswLTlhLWZdezh9LVswLTlhLWZdezR9LVsxLTVdWzAtOWEtZl17M30tWzg5YWJdWzAtOWEtZl17M30tWzAtOWEtZl17MTJ9fDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCkkL2k7IiwKICAgICJpbXBvcnQgUkVHRVggZnJvbSAnLi9yZWdleC5qcyc7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlKHV1aWQpIHtcbiAgcmV0dXJuIHR5cGVvZiB1dWlkID09PSAnc3RyaW5nJyAmJiBSRUdFWC50ZXN0KHV1aWQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB2YWxpZGF0ZTsiLAogICAgImltcG9ydCB2YWxpZGF0ZSBmcm9tICcuL3ZhbGlkYXRlLmpzJztcbi8qKlxuICogQ29udmVydCBhcnJheSBvZiAxNiBieXRlIHZhbHVlcyB0byBVVUlEIHN0cmluZyBmb3JtYXQgb2YgdGhlIGZvcm06XG4gKiBYWFhYWFhYWC1YWFhYLVhYWFgtWFhYWC1YWFhYWFhYWFhYWFhcbiAqL1xuXG5jb25zdCBieXRlVG9IZXggPSBbXTtcblxuZm9yIChsZXQgaSA9IDA7IGkgPCAyNTY7ICsraSkge1xuICBieXRlVG9IZXgucHVzaCgoaSArIDB4MTAwKS50b1N0cmluZygxNikuc2xpY2UoMSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5zYWZlU3RyaW5naWZ5KGFyciwgb2Zmc2V0ID0gMCkge1xuICAvLyBOb3RlOiBCZSBjYXJlZnVsIGVkaXRpbmcgdGhpcyBjb2RlISAgSXQncyBiZWVuIHR1bmVkIGZvciBwZXJmb3JtYW5jZVxuICAvLyBhbmQgd29ya3MgaW4gd2F5cyB5b3UgbWF5IG5vdCBleHBlY3QuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdXVpZGpzL3V1aWQvcHVsbC80MzRcbiAgcmV0dXJuIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMF1dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAxXV0gKyBieXRlVG9IZXhbYXJyW29mZnNldCArIDJdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgM11dICsgJy0nICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyA0XV0gKyBieXRlVG9IZXhbYXJyW29mZnNldCArIDVdXSArICctJyArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgNl1dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyA3XV0gKyAnLScgKyBieXRlVG9IZXhbYXJyW29mZnNldCArIDhdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgOV1dICsgJy0nICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAxMF1dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAxMV1dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAxMl1dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAxM11dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAxNF1dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAxNV1dO1xufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnkoYXJyLCBvZmZzZXQgPSAwKSB7XG4gIGNvbnN0IHV1aWQgPSB1bnNhZmVTdHJpbmdpZnkoYXJyLCBvZmZzZXQpOyAvLyBDb25zaXN0ZW5jeSBjaGVjayBmb3IgdmFsaWQgVVVJRC4gIElmIHRoaXMgdGhyb3dzLCBpdCdzIGxpa2VseSBkdWUgdG8gb25lXG4gIC8vIG9mIHRoZSBmb2xsb3dpbmc6XG4gIC8vIC0gT25lIG9yIG1vcmUgaW5wdXQgYXJyYXkgdmFsdWVzIGRvbid0IG1hcCB0byBhIGhleCBvY3RldCAobGVhZGluZyB0b1xuICAvLyBcInVuZGVmaW5lZFwiIGluIHRoZSB1dWlkKVxuICAvLyAtIEludmFsaWQgaW5wdXQgdmFsdWVzIGZvciB0aGUgUkZDIGB2ZXJzaW9uYCBvciBgdmFyaWFudGAgZmllbGRzXG5cbiAgaWYgKCF2YWxpZGF0ZSh1dWlkKSkge1xuICAgIHRocm93IFR5cGVFcnJvcignU3RyaW5naWZpZWQgVVVJRCBpcyBpbnZhbGlkJyk7XG4gIH1cblxuICByZXR1cm4gdXVpZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3RyaW5naWZ5OyIsCiAgICAiaW1wb3J0IHZhbGlkYXRlIGZyb20gJy4vdmFsaWRhdGUuanMnO1xuXG5mdW5jdGlvbiBwYXJzZSh1dWlkKSB7XG4gIGlmICghdmFsaWRhdGUodXVpZCkpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ0ludmFsaWQgVVVJRCcpO1xuICB9XG5cbiAgbGV0IHY7XG4gIGNvbnN0IGFyciA9IG5ldyBVaW50OEFycmF5KDE2KTsgLy8gUGFyc2UgIyMjIyMjIyMtLi4uLi0uLi4uLS4uLi4tLi4uLi4uLi4uLi4uXG5cbiAgYXJyWzBdID0gKHYgPSBwYXJzZUludCh1dWlkLnNsaWNlKDAsIDgpLCAxNikpID4+PiAyNDtcbiAgYXJyWzFdID0gdiA+Pj4gMTYgJiAweGZmO1xuICBhcnJbMl0gPSB2ID4+PiA4ICYgMHhmZjtcbiAgYXJyWzNdID0gdiAmIDB4ZmY7IC8vIFBhcnNlIC4uLi4uLi4uLSMjIyMtLi4uLi0uLi4uLS4uLi4uLi4uLi4uLlxuXG4gIGFycls0XSA9ICh2ID0gcGFyc2VJbnQodXVpZC5zbGljZSg5LCAxMyksIDE2KSkgPj4+IDg7XG4gIGFycls1XSA9IHYgJiAweGZmOyAvLyBQYXJzZSAuLi4uLi4uLi0uLi4uLSMjIyMtLi4uLi0uLi4uLi4uLi4uLi5cblxuICBhcnJbNl0gPSAodiA9IHBhcnNlSW50KHV1aWQuc2xpY2UoMTQsIDE4KSwgMTYpKSA+Pj4gODtcbiAgYXJyWzddID0gdiAmIDB4ZmY7IC8vIFBhcnNlIC4uLi4uLi4uLS4uLi4tLi4uLi0jIyMjLS4uLi4uLi4uLi4uLlxuXG4gIGFycls4XSA9ICh2ID0gcGFyc2VJbnQodXVpZC5zbGljZSgxOSwgMjMpLCAxNikpID4+PiA4O1xuICBhcnJbOV0gPSB2ICYgMHhmZjsgLy8gUGFyc2UgLi4uLi4uLi4tLi4uLi0uLi4uLS4uLi4tIyMjIyMjIyMjIyMjXG4gIC8vIChVc2UgXCIvXCIgdG8gYXZvaWQgMzItYml0IHRydW5jYXRpb24gd2hlbiBiaXQtc2hpZnRpbmcgaGlnaC1vcmRlciBieXRlcylcblxuICBhcnJbMTBdID0gKHYgPSBwYXJzZUludCh1dWlkLnNsaWNlKDI0LCAzNiksIDE2KSkgLyAweDEwMDAwMDAwMDAwICYgMHhmZjtcbiAgYXJyWzExXSA9IHYgLyAweDEwMDAwMDAwMCAmIDB4ZmY7XG4gIGFyclsxMl0gPSB2ID4+PiAyNCAmIDB4ZmY7XG4gIGFyclsxM10gPSB2ID4+PiAxNiAmIDB4ZmY7XG4gIGFyclsxNF0gPSB2ID4+PiA4ICYgMHhmZjtcbiAgYXJyWzE1XSA9IHYgJiAweGZmO1xuICByZXR1cm4gYXJyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBwYXJzZTsiLAogICAgImltcG9ydCB7IHVuc2FmZVN0cmluZ2lmeSB9IGZyb20gJy4vc3RyaW5naWZ5LmpzJztcbmltcG9ydCBwYXJzZSBmcm9tICcuL3BhcnNlLmpzJztcblxuZnVuY3Rpb24gc3RyaW5nVG9CeXRlcyhzdHIpIHtcbiAgc3RyID0gdW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHN0cikpOyAvLyBVVEY4IGVzY2FwZVxuXG4gIGNvbnN0IGJ5dGVzID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpIHtcbiAgICBieXRlcy5wdXNoKHN0ci5jaGFyQ29kZUF0KGkpKTtcbiAgfVxuXG4gIHJldHVybiBieXRlcztcbn1cblxuZXhwb3J0IGNvbnN0IEROUyA9ICc2YmE3YjgxMC05ZGFkLTExZDEtODBiNC0wMGMwNGZkNDMwYzgnO1xuZXhwb3J0IGNvbnN0IFVSTCA9ICc2YmE3YjgxMS05ZGFkLTExZDEtODBiNC0wMGMwNGZkNDMwYzgnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdjM1KG5hbWUsIHZlcnNpb24sIGhhc2hmdW5jKSB7XG4gIGZ1bmN0aW9uIGdlbmVyYXRlVVVJRCh2YWx1ZSwgbmFtZXNwYWNlLCBidWYsIG9mZnNldCkge1xuICAgIHZhciBfbmFtZXNwYWNlO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhbHVlID0gc3RyaW5nVG9CeXRlcyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuYW1lc3BhY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBuYW1lc3BhY2UgPSBwYXJzZShuYW1lc3BhY2UpO1xuICAgIH1cblxuICAgIGlmICgoKF9uYW1lc3BhY2UgPSBuYW1lc3BhY2UpID09PSBudWxsIHx8IF9uYW1lc3BhY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9uYW1lc3BhY2UubGVuZ3RoKSAhPT0gMTYpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignTmFtZXNwYWNlIG11c3QgYmUgYXJyYXktbGlrZSAoMTYgaXRlcmFibGUgaW50ZWdlciB2YWx1ZXMsIDAtMjU1KScpO1xuICAgIH0gLy8gQ29tcHV0ZSBoYXNoIG9mIG5hbWVzcGFjZSBhbmQgdmFsdWUsIFBlciA0LjNcbiAgICAvLyBGdXR1cmU6IFVzZSBzcHJlYWQgc3ludGF4IHdoZW4gc3VwcG9ydGVkIG9uIGFsbCBwbGF0Zm9ybXMsIGUuZy4gYGJ5dGVzID1cbiAgICAvLyBoYXNoZnVuYyhbLi4ubmFtZXNwYWNlLCAuLi4gdmFsdWVdKWBcblxuXG4gICAgbGV0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoMTYgKyB2YWx1ZS5sZW5ndGgpO1xuICAgIGJ5dGVzLnNldChuYW1lc3BhY2UpO1xuICAgIGJ5dGVzLnNldCh2YWx1ZSwgbmFtZXNwYWNlLmxlbmd0aCk7XG4gICAgYnl0ZXMgPSBoYXNoZnVuYyhieXRlcyk7XG4gICAgYnl0ZXNbNl0gPSBieXRlc1s2XSAmIDB4MGYgfCB2ZXJzaW9uO1xuICAgIGJ5dGVzWzhdID0gYnl0ZXNbOF0gJiAweDNmIHwgMHg4MDtcblxuICAgIGlmIChidWYpIHtcbiAgICAgIG9mZnNldCA9IG9mZnNldCB8fCAwO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE2OyArK2kpIHtcbiAgICAgICAgYnVmW29mZnNldCArIGldID0gYnl0ZXNbaV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBidWY7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuc2FmZVN0cmluZ2lmeShieXRlcyk7XG4gIH0gLy8gRnVuY3Rpb24jbmFtZSBpcyBub3Qgc2V0dGFibGUgb24gc29tZSBwbGF0Zm9ybXMgKCMyNzApXG5cblxuICB0cnkge1xuICAgIGdlbmVyYXRlVVVJRC5uYW1lID0gbmFtZTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5XG4gIH0gY2F0Y2ggKGVycikge30gLy8gRm9yIENvbW1vbkpTIGRlZmF1bHQgZXhwb3J0IHN1cHBvcnRcblxuXG4gIGdlbmVyYXRlVVVJRC5ETlMgPSBETlM7XG4gIGdlbmVyYXRlVVVJRC5VUkwgPSBVUkw7XG4gIHJldHVybiBnZW5lcmF0ZVVVSUQ7XG59IiwKICAgICIvLyBBZGFwdGVkIGZyb20gQ2hyaXMgVmVuZXNzJyBTSEExIGNvZGUgYXRcbi8vIGh0dHA6Ly93d3cubW92YWJsZS10eXBlLmNvLnVrL3NjcmlwdHMvc2hhMS5odG1sXG5mdW5jdGlvbiBmKHMsIHgsIHksIHopIHtcbiAgc3dpdGNoIChzKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmV0dXJuIHggJiB5IF4gfnggJiB6O1xuXG4gICAgY2FzZSAxOlxuICAgICAgcmV0dXJuIHggXiB5IF4gejtcblxuICAgIGNhc2UgMjpcbiAgICAgIHJldHVybiB4ICYgeSBeIHggJiB6IF4geSAmIHo7XG5cbiAgICBjYXNlIDM6XG4gICAgICByZXR1cm4geCBeIHkgXiB6O1xuICB9XG59XG5cbmZ1bmN0aW9uIFJPVEwoeCwgbikge1xuICByZXR1cm4geCA8PCBuIHwgeCA+Pj4gMzIgLSBuO1xufVxuXG5mdW5jdGlvbiBzaGExKGJ5dGVzKSB7XG4gIGNvbnN0IEsgPSBbMHg1YTgyNzk5OSwgMHg2ZWQ5ZWJhMSwgMHg4ZjFiYmNkYywgMHhjYTYyYzFkNl07XG4gIGNvbnN0IEggPSBbMHg2NzQ1MjMwMSwgMHhlZmNkYWI4OSwgMHg5OGJhZGNmZSwgMHgxMDMyNTQ3NiwgMHhjM2QyZTFmMF07XG5cbiAgaWYgKHR5cGVvZiBieXRlcyA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBtc2cgPSB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoYnl0ZXMpKTsgLy8gVVRGOCBlc2NhcGVcblxuICAgIGJ5dGVzID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1zZy5sZW5ndGg7ICsraSkge1xuICAgICAgYnl0ZXMucHVzaChtc2cuY2hhckNvZGVBdChpKSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KGJ5dGVzKSkge1xuICAgIC8vIENvbnZlcnQgQXJyYXktbGlrZSB0byBBcnJheVxuICAgIGJ5dGVzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYnl0ZXMpO1xuICB9XG5cbiAgYnl0ZXMucHVzaCgweDgwKTtcbiAgY29uc3QgbCA9IGJ5dGVzLmxlbmd0aCAvIDQgKyAyO1xuICBjb25zdCBOID0gTWF0aC5jZWlsKGwgLyAxNik7XG4gIGNvbnN0IE0gPSBuZXcgQXJyYXkoTik7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBOOyArK2kpIHtcbiAgICBjb25zdCBhcnIgPSBuZXcgVWludDMyQXJyYXkoMTYpO1xuXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCAxNjsgKytqKSB7XG4gICAgICBhcnJbal0gPSBieXRlc1tpICogNjQgKyBqICogNF0gPDwgMjQgfCBieXRlc1tpICogNjQgKyBqICogNCArIDFdIDw8IDE2IHwgYnl0ZXNbaSAqIDY0ICsgaiAqIDQgKyAyXSA8PCA4IHwgYnl0ZXNbaSAqIDY0ICsgaiAqIDQgKyAzXTtcbiAgICB9XG5cbiAgICBNW2ldID0gYXJyO1xuICB9XG5cbiAgTVtOIC0gMV1bMTRdID0gKGJ5dGVzLmxlbmd0aCAtIDEpICogOCAvIE1hdGgucG93KDIsIDMyKTtcbiAgTVtOIC0gMV1bMTRdID0gTWF0aC5mbG9vcihNW04gLSAxXVsxNF0pO1xuICBNW04gLSAxXVsxNV0gPSAoYnl0ZXMubGVuZ3RoIC0gMSkgKiA4ICYgMHhmZmZmZmZmZjtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IE47ICsraSkge1xuICAgIGNvbnN0IFcgPSBuZXcgVWludDMyQXJyYXkoODApO1xuXG4gICAgZm9yIChsZXQgdCA9IDA7IHQgPCAxNjsgKyt0KSB7XG4gICAgICBXW3RdID0gTVtpXVt0XTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCB0ID0gMTY7IHQgPCA4MDsgKyt0KSB7XG4gICAgICBXW3RdID0gUk9UTChXW3QgLSAzXSBeIFdbdCAtIDhdIF4gV1t0IC0gMTRdIF4gV1t0IC0gMTZdLCAxKTtcbiAgICB9XG5cbiAgICBsZXQgYSA9IEhbMF07XG4gICAgbGV0IGIgPSBIWzFdO1xuICAgIGxldCBjID0gSFsyXTtcbiAgICBsZXQgZCA9IEhbM107XG4gICAgbGV0IGUgPSBIWzRdO1xuXG4gICAgZm9yIChsZXQgdCA9IDA7IHQgPCA4MDsgKyt0KSB7XG4gICAgICBjb25zdCBzID0gTWF0aC5mbG9vcih0IC8gMjApO1xuICAgICAgY29uc3QgVCA9IFJPVEwoYSwgNSkgKyBmKHMsIGIsIGMsIGQpICsgZSArIEtbc10gKyBXW3RdID4+PiAwO1xuICAgICAgZSA9IGQ7XG4gICAgICBkID0gYztcbiAgICAgIGMgPSBST1RMKGIsIDMwKSA+Pj4gMDtcbiAgICAgIGIgPSBhO1xuICAgICAgYSA9IFQ7XG4gICAgfVxuXG4gICAgSFswXSA9IEhbMF0gKyBhID4+PiAwO1xuICAgIEhbMV0gPSBIWzFdICsgYiA+Pj4gMDtcbiAgICBIWzJdID0gSFsyXSArIGMgPj4+IDA7XG4gICAgSFszXSA9IEhbM10gKyBkID4+PiAwO1xuICAgIEhbNF0gPSBIWzRdICsgZSA+Pj4gMDtcbiAgfVxuXG4gIHJldHVybiBbSFswXSA+PiAyNCAmIDB4ZmYsIEhbMF0gPj4gMTYgJiAweGZmLCBIWzBdID4+IDggJiAweGZmLCBIWzBdICYgMHhmZiwgSFsxXSA+PiAyNCAmIDB4ZmYsIEhbMV0gPj4gMTYgJiAweGZmLCBIWzFdID4+IDggJiAweGZmLCBIWzFdICYgMHhmZiwgSFsyXSA+PiAyNCAmIDB4ZmYsIEhbMl0gPj4gMTYgJiAweGZmLCBIWzJdID4+IDggJiAweGZmLCBIWzJdICYgMHhmZiwgSFszXSA+PiAyNCAmIDB4ZmYsIEhbM10gPj4gMTYgJiAweGZmLCBIWzNdID4+IDggJiAweGZmLCBIWzNdICYgMHhmZiwgSFs0XSA+PiAyNCAmIDB4ZmYsIEhbNF0gPj4gMTYgJiAweGZmLCBIWzRdID4+IDggJiAweGZmLCBIWzRdICYgMHhmZl07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHNoYTE7IiwKICAgICJpbXBvcnQgdjM1IGZyb20gJy4vdjM1LmpzJztcbmltcG9ydCBzaGExIGZyb20gJy4vc2hhMS5qcyc7XG5jb25zdCB2NSA9IHYzNSgndjUnLCAweDUwLCBzaGExKTtcbmV4cG9ydCBkZWZhdWx0IHY1OyIsCiAgICAiZXhwb3J0IHsgZGVmYXVsdCBhcyB2MSB9IGZyb20gJy4vdjEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2MyB9IGZyb20gJy4vdjMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2NCB9IGZyb20gJy4vdjQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2NSB9IGZyb20gJy4vdjUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOSUwgfSBmcm9tICcuL25pbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2YWxpZGF0ZSB9IGZyb20gJy4vdmFsaWRhdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzdHJpbmdpZnkgfSBmcm9tICcuL3N0cmluZ2lmeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBhcnNlIH0gZnJvbSAnLi9wYXJzZS5qcyc7IiwKICAgICJpbXBvcnQgeyBjIGFzIGdldENvbmZpZywgcyBhcyBzZXRBY2NUaXRsZSwgZyBhcyBnZXRBY2NUaXRsZSwgYiBhcyBzZXRBY2NEZXNjcmlwdGlvbiwgYSBhcyBnZXRBY2NEZXNjcmlwdGlvbiwgcSBhcyBzZXREaWFncmFtVGl0bGUsIHQgYXMgZ2V0RGlhZ3JhbVRpdGxlLCBsIGFzIGxvZywgdiBhcyBjbGVhciQxLCB1IGFzIHV0aWxzLCBpIGFzIGNvbmZpZ3VyZVN2Z1NpemUsIHggYXMgcGFyc2VHZW5lcmljVHlwZXMgfSBmcm9tIFwiLi9tZXJtYWlkLTZkYzcyOTkxLmpzXCI7XG5pbXBvcnQgKiBhcyBncmFwaGxpYiBmcm9tIFwiZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzZWxlY3QsIGxpbmUsIGN1cnZlQmFzaXMgfSBmcm9tIFwiZDNcIjtcbmltcG9ydCB7IGxheW91dCB9IGZyb20gXCJkYWdyZS1kMy1lcy9zcmMvZGFncmUvaW5kZXguanNcIjtcbmltcG9ydCB7IHY1IH0gZnJvbSBcInV1aWRcIjtcbmltcG9ydCBcInRzLWRlZGVudFwiO1xuaW1wb3J0IFwiZGF5anNcIjtcbmltcG9ydCBcIkBicmFpbnRyZWUvc2FuaXRpemUtdXJsXCI7XG5pbXBvcnQgXCJkb21wdXJpZnlcIjtcbmltcG9ydCBcImtocm9tYVwiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lbW9pemUuanNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZXJnZS5qc1wiO1xuaW1wb3J0IFwic3R5bGlzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvaXNFbXB0eS5qc1wiO1xudmFyIHBhcnNlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgbyA9IGZ1bmN0aW9uKGssIHYsIG8yLCBsKSB7XG4gICAgZm9yIChvMiA9IG8yIHx8IHt9LCBsID0gay5sZW5ndGg7IGwtLTsgbzJba1tsXV0gPSB2KVxuICAgICAgO1xuICAgIHJldHVybiBvMjtcbiAgfSwgJFYwID0gWzYsIDgsIDEwLCAyMCwgMjIsIDI0LCAyNiwgMjcsIDI4XSwgJFYxID0gWzEsIDEwXSwgJFYyID0gWzEsIDExXSwgJFYzID0gWzEsIDEyXSwgJFY0ID0gWzEsIDEzXSwgJFY1ID0gWzEsIDE0XSwgJFY2ID0gWzEsIDE1XSwgJFY3ID0gWzEsIDIxXSwgJFY4ID0gWzEsIDIyXSwgJFY5ID0gWzEsIDIzXSwgJFZhID0gWzEsIDI0XSwgJFZiID0gWzEsIDI1XSwgJFZjID0gWzYsIDgsIDEwLCAxMywgMTUsIDE4LCAxOSwgMjAsIDIyLCAyNCwgMjYsIDI3LCAyOCwgNDEsIDQyLCA0MywgNDQsIDQ1XSwgJFZkID0gWzEsIDM0XSwgJFZlID0gWzI3LCAyOCwgNDYsIDQ3XSwgJFZmID0gWzQxLCA0MiwgNDMsIDQ0LCA0NV0sICRWZyA9IFsxNywgMzRdLCAkVmggPSBbMSwgNTRdLCAkVmkgPSBbMSwgNTNdLCAkVmogPSBbMTcsIDM0LCAzNiwgMzhdO1xuICB2YXIgcGFyc2VyMiA9IHtcbiAgICB0cmFjZTogZnVuY3Rpb24gdHJhY2UoKSB7XG4gICAgfSxcbiAgICB5eToge30sXG4gICAgc3ltYm9sc186IHsgXCJlcnJvclwiOiAyLCBcInN0YXJ0XCI6IDMsIFwiRVJfRElBR1JBTVwiOiA0LCBcImRvY3VtZW50XCI6IDUsIFwiRU9GXCI6IDYsIFwibGluZVwiOiA3LCBcIlNQQUNFXCI6IDgsIFwic3RhdGVtZW50XCI6IDksIFwiTkVXTElORVwiOiAxMCwgXCJlbnRpdHlOYW1lXCI6IDExLCBcInJlbFNwZWNcIjogMTIsIFwiOlwiOiAxMywgXCJyb2xlXCI6IDE0LCBcIkJMT0NLX1NUQVJUXCI6IDE1LCBcImF0dHJpYnV0ZXNcIjogMTYsIFwiQkxPQ0tfU1RPUFwiOiAxNywgXCJTUVNcIjogMTgsIFwiU1FFXCI6IDE5LCBcInRpdGxlXCI6IDIwLCBcInRpdGxlX3ZhbHVlXCI6IDIxLCBcImFjY190aXRsZVwiOiAyMiwgXCJhY2NfdGl0bGVfdmFsdWVcIjogMjMsIFwiYWNjX2Rlc2NyXCI6IDI0LCBcImFjY19kZXNjcl92YWx1ZVwiOiAyNSwgXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCI6IDI2LCBcIkFMUEhBTlVNXCI6IDI3LCBcIkVOVElUWV9OQU1FXCI6IDI4LCBcImF0dHJpYnV0ZVwiOiAyOSwgXCJhdHRyaWJ1dGVUeXBlXCI6IDMwLCBcImF0dHJpYnV0ZU5hbWVcIjogMzEsIFwiYXR0cmlidXRlS2V5VHlwZUxpc3RcIjogMzIsIFwiYXR0cmlidXRlQ29tbWVudFwiOiAzMywgXCJBVFRSSUJVVEVfV09SRFwiOiAzNCwgXCJhdHRyaWJ1dGVLZXlUeXBlXCI6IDM1LCBcIkNPTU1BXCI6IDM2LCBcIkFUVFJJQlVURV9LRVlcIjogMzcsIFwiQ09NTUVOVFwiOiAzOCwgXCJjYXJkaW5hbGl0eVwiOiAzOSwgXCJyZWxUeXBlXCI6IDQwLCBcIlpFUk9fT1JfT05FXCI6IDQxLCBcIlpFUk9fT1JfTU9SRVwiOiA0MiwgXCJPTkVfT1JfTU9SRVwiOiA0MywgXCJPTkxZX09ORVwiOiA0NCwgXCJNRF9QQVJFTlRcIjogNDUsIFwiTk9OX0lERU5USUZZSU5HXCI6IDQ2LCBcIklERU5USUZZSU5HXCI6IDQ3LCBcIldPUkRcIjogNDgsIFwiJGFjY2VwdFwiOiAwLCBcIiRlbmRcIjogMSB9LFxuICAgIHRlcm1pbmFsc186IHsgMjogXCJlcnJvclwiLCA0OiBcIkVSX0RJQUdSQU1cIiwgNjogXCJFT0ZcIiwgODogXCJTUEFDRVwiLCAxMDogXCJORVdMSU5FXCIsIDEzOiBcIjpcIiwgMTU6IFwiQkxPQ0tfU1RBUlRcIiwgMTc6IFwiQkxPQ0tfU1RPUFwiLCAxODogXCJTUVNcIiwgMTk6IFwiU1FFXCIsIDIwOiBcInRpdGxlXCIsIDIxOiBcInRpdGxlX3ZhbHVlXCIsIDIyOiBcImFjY190aXRsZVwiLCAyMzogXCJhY2NfdGl0bGVfdmFsdWVcIiwgMjQ6IFwiYWNjX2Rlc2NyXCIsIDI1OiBcImFjY19kZXNjcl92YWx1ZVwiLCAyNjogXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCIsIDI3OiBcIkFMUEhBTlVNXCIsIDI4OiBcIkVOVElUWV9OQU1FXCIsIDM0OiBcIkFUVFJJQlVURV9XT1JEXCIsIDM2OiBcIkNPTU1BXCIsIDM3OiBcIkFUVFJJQlVURV9LRVlcIiwgMzg6IFwiQ09NTUVOVFwiLCA0MTogXCJaRVJPX09SX09ORVwiLCA0MjogXCJaRVJPX09SX01PUkVcIiwgNDM6IFwiT05FX09SX01PUkVcIiwgNDQ6IFwiT05MWV9PTkVcIiwgNDU6IFwiTURfUEFSRU5UXCIsIDQ2OiBcIk5PTl9JREVOVElGWUlOR1wiLCA0NzogXCJJREVOVElGWUlOR1wiLCA0ODogXCJXT1JEXCIgfSxcbiAgICBwcm9kdWN0aW9uc186IFswLCBbMywgM10sIFs1LCAwXSwgWzUsIDJdLCBbNywgMl0sIFs3LCAxXSwgWzcsIDFdLCBbNywgMV0sIFs5LCA1XSwgWzksIDRdLCBbOSwgM10sIFs5LCAxXSwgWzksIDddLCBbOSwgNl0sIFs5LCA0XSwgWzksIDJdLCBbOSwgMl0sIFs5LCAyXSwgWzksIDFdLCBbMTEsIDFdLCBbMTEsIDFdLCBbMTYsIDFdLCBbMTYsIDJdLCBbMjksIDJdLCBbMjksIDNdLCBbMjksIDNdLCBbMjksIDRdLCBbMzAsIDFdLCBbMzEsIDFdLCBbMzIsIDFdLCBbMzIsIDNdLCBbMzUsIDFdLCBbMzMsIDFdLCBbMTIsIDNdLCBbMzksIDFdLCBbMzksIDFdLCBbMzksIDFdLCBbMzksIDFdLCBbMzksIDFdLCBbNDAsIDFdLCBbNDAsIDFdLCBbMTQsIDFdLCBbMTQsIDFdLCBbMTQsIDFdXSxcbiAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXl0ZXh0LCB5eWxlbmcsIHl5bGluZW5vLCB5eSwgeXlzdGF0ZSwgJCQsIF8kKSB7XG4gICAgICB2YXIgJDAgPSAkJC5sZW5ndGggLSAxO1xuICAgICAgc3dpdGNoICh5eXN0YXRlKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHRoaXMuJCA9IFtdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKCQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB0aGlzLiQgPSBbXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgIHl5LmFkZEVudGl0eSgkJFskMCAtIDRdKTtcbiAgICAgICAgICB5eS5hZGRFbnRpdHkoJCRbJDAgLSAyXSk7XG4gICAgICAgICAgeXkuYWRkUmVsYXRpb25zaGlwKCQkWyQwIC0gNF0sICQkWyQwXSwgJCRbJDAgLSAyXSwgJCRbJDAgLSAzXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgICB5eS5hZGRFbnRpdHkoJCRbJDAgLSAzXSk7XG4gICAgICAgICAgeXkuYWRkQXR0cmlidXRlcygkJFskMCAtIDNdLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICB5eS5hZGRFbnRpdHkoJCRbJDAgLSAyXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgeXkuYWRkRW50aXR5KCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgeXkuYWRkRW50aXR5KCQkWyQwIC0gNl0sICQkWyQwIC0gNF0pO1xuICAgICAgICAgIHl5LmFkZEF0dHJpYnV0ZXMoJCRbJDAgLSA2XSwgJCRbJDAgLSAxXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgeXkuYWRkRW50aXR5KCQkWyQwIC0gNV0sICQkWyQwIC0gM10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE0OlxuICAgICAgICAgIHl5LmFkZEVudGl0eSgkJFskMCAtIDNdLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0udHJpbSgpO1xuICAgICAgICAgIHl5LnNldEFjY1RpdGxlKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTc6XG4gICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5zZXRBY2NEZXNjcmlwdGlvbih0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE5OlxuICAgICAgICBjYXNlIDQzOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMDpcbiAgICAgICAgY2FzZSA0MTpcbiAgICAgICAgY2FzZSA0MjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0ucmVwbGFjZSgvXCIvZywgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjE6XG4gICAgICAgIGNhc2UgMjk6XG4gICAgICAgICAgdGhpcy4kID0gWyQkWyQwXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgJCRbJDBdLnB1c2goJCRbJDAgLSAxXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgIHRoaXMuJCA9IHsgYXR0cmlidXRlVHlwZTogJCRbJDAgLSAxXSwgYXR0cmlidXRlTmFtZTogJCRbJDBdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgdGhpcy4kID0geyBhdHRyaWJ1dGVUeXBlOiAkJFskMCAtIDJdLCBhdHRyaWJ1dGVOYW1lOiAkJFskMCAtIDFdLCBhdHRyaWJ1dGVLZXlUeXBlTGlzdDogJCRbJDBdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjU6XG4gICAgICAgICAgdGhpcy4kID0geyBhdHRyaWJ1dGVUeXBlOiAkJFskMCAtIDJdLCBhdHRyaWJ1dGVOYW1lOiAkJFskMCAtIDFdLCBhdHRyaWJ1dGVDb21tZW50OiAkJFskMF0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICB0aGlzLiQgPSB7IGF0dHJpYnV0ZVR5cGU6ICQkWyQwIC0gM10sIGF0dHJpYnV0ZU5hbWU6ICQkWyQwIC0gMl0sIGF0dHJpYnV0ZUtleVR5cGVMaXN0OiAkJFskMCAtIDFdLCBhdHRyaWJ1dGVDb21tZW50OiAkJFskMF0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgY2FzZSAyODpcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgJCRbJDAgLSAyXS5wdXNoKCQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAyXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0ucmVwbGFjZSgvXCIvZywgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgdGhpcy4kID0geyBjYXJkQTogJCRbJDBdLCByZWxUeXBlOiAkJFskMCAtIDFdLCBjYXJkQjogJCRbJDAgLSAyXSB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM0OlxuICAgICAgICAgIHRoaXMuJCA9IHl5LkNhcmRpbmFsaXR5LlpFUk9fT1JfT05FO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgIHRoaXMuJCA9IHl5LkNhcmRpbmFsaXR5LlpFUk9fT1JfTU9SRTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5DYXJkaW5hbGl0eS5PTkVfT1JfTU9SRTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNzpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5DYXJkaW5hbGl0eS5PTkxZX09ORTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzODpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5DYXJkaW5hbGl0eS5NRF9QQVJFTlQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzk6XG4gICAgICAgICAgdGhpcy4kID0geXkuSWRlbnRpZmljYXRpb24uTk9OX0lERU5USUZZSU5HO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQwOlxuICAgICAgICAgIHRoaXMuJCA9IHl5LklkZW50aWZpY2F0aW9uLklERU5USUZZSU5HO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgdGFibGU6IFt7IDM6IDEsIDQ6IFsxLCAyXSB9LCB7IDE6IFszXSB9LCBvKCRWMCwgWzIsIDJdLCB7IDU6IDMgfSksIHsgNjogWzEsIDRdLCA3OiA1LCA4OiBbMSwgNl0sIDk6IDcsIDEwOiBbMSwgOF0sIDExOiA5LCAyMDogJFYxLCAyMjogJFYyLCAyNDogJFYzLCAyNjogJFY0LCAyNzogJFY1LCAyODogJFY2IH0sIG8oJFYwLCBbMiwgN10sIHsgMTogWzIsIDFdIH0pLCBvKCRWMCwgWzIsIDNdKSwgeyA5OiAxNiwgMTE6IDksIDIwOiAkVjEsIDIyOiAkVjIsIDI0OiAkVjMsIDI2OiAkVjQsIDI3OiAkVjUsIDI4OiAkVjYgfSwgbygkVjAsIFsyLCA1XSksIG8oJFYwLCBbMiwgNl0pLCBvKCRWMCwgWzIsIDExXSwgeyAxMjogMTcsIDM5OiAyMCwgMTU6IFsxLCAxOF0sIDE4OiBbMSwgMTldLCA0MTogJFY3LCA0MjogJFY4LCA0MzogJFY5LCA0NDogJFZhLCA0NTogJFZiIH0pLCB7IDIxOiBbMSwgMjZdIH0sIHsgMjM6IFsxLCAyN10gfSwgeyAyNTogWzEsIDI4XSB9LCBvKCRWMCwgWzIsIDE4XSksIG8oJFZjLCBbMiwgMTldKSwgbygkVmMsIFsyLCAyMF0pLCBvKCRWMCwgWzIsIDRdKSwgeyAxMTogMjksIDI3OiAkVjUsIDI4OiAkVjYgfSwgeyAxNjogMzAsIDE3OiBbMSwgMzFdLCAyOTogMzIsIDMwOiAzMywgMzQ6ICRWZCB9LCB7IDExOiAzNSwgMjc6ICRWNSwgMjg6ICRWNiB9LCB7IDQwOiAzNiwgNDY6IFsxLCAzN10sIDQ3OiBbMSwgMzhdIH0sIG8oJFZlLCBbMiwgMzRdKSwgbygkVmUsIFsyLCAzNV0pLCBvKCRWZSwgWzIsIDM2XSksIG8oJFZlLCBbMiwgMzddKSwgbygkVmUsIFsyLCAzOF0pLCBvKCRWMCwgWzIsIDE1XSksIG8oJFYwLCBbMiwgMTZdKSwgbygkVjAsIFsyLCAxN10pLCB7IDEzOiBbMSwgMzldIH0sIHsgMTc6IFsxLCA0MF0gfSwgbygkVjAsIFsyLCAxMF0pLCB7IDE2OiA0MSwgMTc6IFsyLCAyMV0sIDI5OiAzMiwgMzA6IDMzLCAzNDogJFZkIH0sIHsgMzE6IDQyLCAzNDogWzEsIDQzXSB9LCB7IDM0OiBbMiwgMjddIH0sIHsgMTk6IFsxLCA0NF0gfSwgeyAzOTogNDUsIDQxOiAkVjcsIDQyOiAkVjgsIDQzOiAkVjksIDQ0OiAkVmEsIDQ1OiAkVmIgfSwgbygkVmYsIFsyLCAzOV0pLCBvKCRWZiwgWzIsIDQwXSksIHsgMTQ6IDQ2LCAyNzogWzEsIDQ5XSwgMjg6IFsxLCA0OF0sIDQ4OiBbMSwgNDddIH0sIG8oJFYwLCBbMiwgOV0pLCB7IDE3OiBbMiwgMjJdIH0sIG8oJFZnLCBbMiwgMjNdLCB7IDMyOiA1MCwgMzM6IDUxLCAzNTogNTIsIDM3OiAkVmgsIDM4OiAkVmkgfSksIG8oWzE3LCAzNCwgMzcsIDM4XSwgWzIsIDI4XSksIG8oJFYwLCBbMiwgMTRdLCB7IDE1OiBbMSwgNTVdIH0pLCBvKFsyNywgMjhdLCBbMiwgMzNdKSwgbygkVjAsIFsyLCA4XSksIG8oJFYwLCBbMiwgNDFdKSwgbygkVjAsIFsyLCA0Ml0pLCBvKCRWMCwgWzIsIDQzXSksIG8oJFZnLCBbMiwgMjRdLCB7IDMzOiA1NiwgMzY6IFsxLCA1N10sIDM4OiAkVmkgfSksIG8oJFZnLCBbMiwgMjVdKSwgbygkVmosIFsyLCAyOV0pLCBvKCRWZywgWzIsIDMyXSksIG8oJFZqLCBbMiwgMzFdKSwgeyAxNjogNTgsIDE3OiBbMSwgNTldLCAyOTogMzIsIDMwOiAzMywgMzQ6ICRWZCB9LCBvKCRWZywgWzIsIDI2XSksIHsgMzU6IDYwLCAzNzogJFZoIH0sIHsgMTc6IFsxLCA2MV0gfSwgbygkVjAsIFsyLCAxM10pLCBvKCRWaiwgWzIsIDMwXSksIG8oJFYwLCBbMiwgMTJdKV0sXG4gICAgZGVmYXVsdEFjdGlvbnM6IHsgMzQ6IFsyLCAyN10sIDQxOiBbMiwgMjJdIH0sXG4gICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgIGlmIChoYXNoLnJlY292ZXJhYmxlKSB7XG4gICAgICAgIHRoaXMudHJhY2Uoc3RyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICBlcnJvci5oYXNoID0gaGFzaDtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSxcbiAgICBwYXJzZTogZnVuY3Rpb24gcGFyc2UoaW5wdXQpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcywgc3RhY2sgPSBbMF0sIHRzdGFjayA9IFtdLCB2c3RhY2sgPSBbbnVsbF0sIGxzdGFjayA9IFtdLCB0YWJsZSA9IHRoaXMudGFibGUsIHl5dGV4dCA9IFwiXCIsIHl5bGluZW5vID0gMCwgeXlsZW5nID0gMCwgVEVSUk9SID0gMiwgRU9GID0gMTtcbiAgICAgIHZhciBhcmdzID0gbHN0YWNrLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgIHZhciBsZXhlcjIgPSBPYmplY3QuY3JlYXRlKHRoaXMubGV4ZXIpO1xuICAgICAgdmFyIHNoYXJlZFN0YXRlID0geyB5eToge30gfTtcbiAgICAgIGZvciAodmFyIGsgaW4gdGhpcy55eSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMueXksIGspKSB7XG4gICAgICAgICAgc2hhcmVkU3RhdGUueXlba10gPSB0aGlzLnl5W2tdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXhlcjIuc2V0SW5wdXQoaW5wdXQsIHNoYXJlZFN0YXRlLnl5KTtcbiAgICAgIHNoYXJlZFN0YXRlLnl5LmxleGVyID0gbGV4ZXIyO1xuICAgICAgc2hhcmVkU3RhdGUueXkucGFyc2VyID0gdGhpcztcbiAgICAgIGlmICh0eXBlb2YgbGV4ZXIyLnl5bGxvYyA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGxleGVyMi55eWxsb2MgPSB7fTtcbiAgICAgIH1cbiAgICAgIHZhciB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICBsc3RhY2sucHVzaCh5eWxvYyk7XG4gICAgICB2YXIgcmFuZ2VzID0gbGV4ZXIyLm9wdGlvbnMgJiYgbGV4ZXIyLm9wdGlvbnMucmFuZ2VzO1xuICAgICAgaWYgKHR5cGVvZiBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFyc2VFcnJvciA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5wYXJzZUVycm9yO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgdG9rZW47XG4gICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpIHx8IGxleGVyMi5sZXgoKSB8fCBFT0Y7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBpZiAodG9rZW4gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgdHN0YWNrID0gdG9rZW47XG4gICAgICAgICAgICB0b2tlbiA9IHRzdGFjay5wb3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdG9rZW4gPSBzZWxmLnN5bWJvbHNfW3Rva2VuXSB8fCB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICB9XG4gICAgICB2YXIgc3ltYm9sLCBzdGF0ZSwgYWN0aW9uLCByLCB5eXZhbCA9IHt9LCBwLCBsZW4sIG5ld1N0YXRlLCBleHBlY3RlZDtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHN0YXRlID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXSkge1xuICAgICAgICAgIGFjdGlvbiA9IHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChzeW1ib2wgPT09IG51bGwgfHwgdHlwZW9mIHN5bWJvbCA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBzeW1ib2wgPSBsZXgoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWN0aW9uID0gdGFibGVbc3RhdGVdICYmIHRhYmxlW3N0YXRlXVtzeW1ib2xdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSBcInVuZGVmaW5lZFwiIHx8ICFhY3Rpb24ubGVuZ3RoIHx8ICFhY3Rpb25bMF0pIHtcbiAgICAgICAgICB2YXIgZXJyU3RyID0gXCJcIjtcbiAgICAgICAgICBleHBlY3RlZCA9IFtdO1xuICAgICAgICAgIGZvciAocCBpbiB0YWJsZVtzdGF0ZV0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRlcm1pbmFsc19bcF0gJiYgcCA+IFRFUlJPUikge1xuICAgICAgICAgICAgICBleHBlY3RlZC5wdXNoKFwiJ1wiICsgdGhpcy50ZXJtaW5hbHNfW3BdICsgXCInXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGV4ZXIyLnNob3dQb3NpdGlvbikge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjpcXG5cIiArIGxleGVyMi5zaG93UG9zaXRpb24oKSArIFwiXFxuRXhwZWN0aW5nIFwiICsgZXhwZWN0ZWQuam9pbihcIiwgXCIpICsgXCIsIGdvdCAnXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOiBVbmV4cGVjdGVkIFwiICsgKHN5bWJvbCA9PSBFT0YgPyBcImVuZCBvZiBpbnB1dFwiIDogXCInXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wYXJzZUVycm9yKGVyclN0ciwge1xuICAgICAgICAgICAgdGV4dDogbGV4ZXIyLm1hdGNoLFxuICAgICAgICAgICAgdG9rZW46IHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCxcbiAgICAgICAgICAgIGxpbmU6IGxleGVyMi55eWxpbmVubyxcbiAgICAgICAgICAgIGxvYzogeXlsb2MsXG4gICAgICAgICAgICBleHBlY3RlZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25bMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBhY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcnNlIEVycm9yOiBtdWx0aXBsZSBhY3Rpb25zIHBvc3NpYmxlIGF0IHN0YXRlOiBcIiArIHN0YXRlICsgXCIsIHRva2VuOiBcIiArIHN5bWJvbCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChhY3Rpb25bMF0pIHtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBzdGFjay5wdXNoKHN5bWJvbCk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaChsZXhlcjIueXl0ZXh0KTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKGxleGVyMi55eWxsb2MpO1xuICAgICAgICAgICAgc3RhY2sucHVzaChhY3Rpb25bMV0pO1xuICAgICAgICAgICAgc3ltYm9sID0gbnVsbDtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgeXlsZW5nID0gbGV4ZXIyLnl5bGVuZztcbiAgICAgICAgICAgICAgeXl0ZXh0ID0gbGV4ZXIyLnl5dGV4dDtcbiAgICAgICAgICAgICAgeXlsaW5lbm8gPSBsZXhlcjIueXlsaW5lbm87XG4gICAgICAgICAgICAgIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGxlbiA9IHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMV07XG4gICAgICAgICAgICB5eXZhbC4kID0gdnN0YWNrW3ZzdGFjay5sZW5ndGggLSBsZW5dO1xuICAgICAgICAgICAgeXl2YWwuXyQgPSB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmFuZ2VzKSB7XG4gICAgICAgICAgICAgIHl5dmFsLl8kLnJhbmdlID0gW1xuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0ucmFuZ2VbMF0sXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5yYW5nZVsxXVxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgciA9IHRoaXMucGVyZm9ybUFjdGlvbi5hcHBseSh5eXZhbCwgW1xuICAgICAgICAgICAgICB5eXRleHQsXG4gICAgICAgICAgICAgIHl5bGVuZyxcbiAgICAgICAgICAgICAgeXlsaW5lbm8sXG4gICAgICAgICAgICAgIHNoYXJlZFN0YXRlLnl5LFxuICAgICAgICAgICAgICBhY3Rpb25bMV0sXG4gICAgICAgICAgICAgIHZzdGFjayxcbiAgICAgICAgICAgICAgbHN0YWNrXG4gICAgICAgICAgICBdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGVuKSB7XG4gICAgICAgICAgICAgIHN0YWNrID0gc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4gKiAyKTtcbiAgICAgICAgICAgICAgdnN0YWNrID0gdnN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgICAgbHN0YWNrID0gbHN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YWNrLnB1c2godGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVswXSk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaCh5eXZhbC4kKTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKHl5dmFsLl8kKTtcbiAgICAgICAgICAgIG5ld1N0YXRlID0gdGFibGVbc3RhY2tbc3RhY2subGVuZ3RoIC0gMl1dW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2gobmV3U3RhdGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfTtcbiAgdmFyIGxleGVyID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGxleGVyMiA9IHtcbiAgICAgIEVPRjogMSxcbiAgICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICAgIGlmICh0aGlzLnl5LnBhcnNlcikge1xuICAgICAgICAgIHRoaXMueXkucGFyc2VyLnBhcnNlRXJyb3Ioc3RyLCBoYXNoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJlc2V0cyB0aGUgbGV4ZXIsIHNldHMgbmV3IGlucHV0XG4gICAgICBzZXRJbnB1dDogZnVuY3Rpb24oaW5wdXQsIHl5KSB7XG4gICAgICAgIHRoaXMueXkgPSB5eSB8fCB0aGlzLnl5IHx8IHt9O1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLl9tb3JlID0gdGhpcy5fYmFja3RyYWNrID0gdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgIHRoaXMueXlsaW5lbm8gPSB0aGlzLnl5bGVuZyA9IDA7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaCA9IFwiXCI7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sgPSBbXCJJTklUSUFMXCJdO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogMCxcbiAgICAgICAgICBsYXN0X2xpbmU6IDEsXG4gICAgICAgICAgbGFzdF9jb2x1bW46IDBcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFswLCAwXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIGNvbnN1bWVzIGFuZCByZXR1cm5zIG9uZSBjaGFyIGZyb20gdGhlIGlucHV0XG4gICAgICBpbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBjaCA9IHRoaXMuX2lucHV0WzBdO1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBjaDtcbiAgICAgICAgdGhpcy55eWxlbmcrKztcbiAgICAgICAgdGhpcy5vZmZzZXQrKztcbiAgICAgICAgdGhpcy5tYXRjaCArPSBjaDtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IGNoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8rKztcbiAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2xpbmUrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbisrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2VbMV0rKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKDEpO1xuICAgICAgICByZXR1cm4gY2g7XG4gICAgICB9LFxuICAgICAgLy8gdW5zaGlmdHMgb25lIGNoYXIgKG9yIGEgc3RyaW5nKSBpbnRvIHRoZSBpbnB1dFxuICAgICAgdW5wdXQ6IGZ1bmN0aW9uKGNoKSB7XG4gICAgICAgIHZhciBsZW4gPSBjaC5sZW5ndGg7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gY2ggKyB0aGlzLl9pbnB1dDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLnl5dGV4dC5zdWJzdHIoMCwgdGhpcy55eXRleHQubGVuZ3RoIC0gbGVuKTtcbiAgICAgICAgdGhpcy5vZmZzZXQgLT0gbGVuO1xuICAgICAgICB2YXIgb2xkTGluZXMgPSB0aGlzLm1hdGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgIHRoaXMubWF0Y2ggPSB0aGlzLm1hdGNoLnN1YnN0cigwLCB0aGlzLm1hdGNoLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSAxKTtcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vIC09IGxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHIgPSB0aGlzLnl5bGxvYy5yYW5nZTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IChsaW5lcy5sZW5ndGggPT09IG9sZExpbmVzLmxlbmd0aCA/IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiA6IDApICsgb2xkTGluZXNbb2xkTGluZXMubGVuZ3RoIC0gbGluZXMubGVuZ3RoXS5sZW5ndGggLSBsaW5lc1swXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gLSBsZW5cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFtyWzBdLCByWzBdICsgdGhpcy55eWxlbmcgLSBsZW5dO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgY2FjaGVzIG1hdGNoZWQgdGV4dCBhbmQgYXBwZW5kcyBpdCBvbiBuZXh0IGFjdGlvblxuICAgICAgbW9yZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgc2lnbmFscyB0aGUgbGV4ZXIgdGhhdCB0aGlzIHJ1bGUgZmFpbHMgdG8gbWF0Y2ggdGhlIGlucHV0LCBzbyB0aGUgbmV4dCBtYXRjaGluZyBydWxlIChyZWdleCkgc2hvdWxkIGJlIHRlc3RlZCBpbnN0ZWFkLlxuICAgICAgcmVqZWN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIgKyAodGhpcy55eWxpbmVubyArIDEpICsgXCIuIFlvdSBjYW4gb25seSBpbnZva2UgcmVqZWN0KCkgaW4gdGhlIGxleGVyIHdoZW4gdGhlIGxleGVyIGlzIG9mIHRoZSBiYWNrdHJhY2tpbmcgcGVyc3Vhc2lvbiAob3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIgPSB0cnVlKS5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyByZXRhaW4gZmlyc3QgbiBjaGFyYWN0ZXJzIG9mIHRoZSBtYXRjaFxuICAgICAgbGVzczogZnVuY3Rpb24obikge1xuICAgICAgICB0aGlzLnVucHV0KHRoaXMubWF0Y2guc2xpY2UobikpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIGFscmVhZHkgbWF0Y2hlZCBpbnB1dCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHBhc3RJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwYXN0ID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gdGhpcy5tYXRjaC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gKHBhc3QubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikgKyBwYXN0LnN1YnN0cigtMjApLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB1cGNvbWluZyBpbnB1dCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHVwY29taW5nSW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbmV4dCA9IHRoaXMubWF0Y2g7XG4gICAgICAgIGlmIChuZXh0Lmxlbmd0aCA8IDIwKSB7XG4gICAgICAgICAgbmV4dCArPSB0aGlzLl9pbnB1dC5zdWJzdHIoMCwgMjAgLSBuZXh0Lmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChuZXh0LnN1YnN0cigwLCAyMCkgKyAobmV4dC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXIgcG9zaXRpb24gd2hlcmUgdGhlIGxleGluZyBlcnJvciBvY2N1cnJlZCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHNob3dQb3NpdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwcmUgPSB0aGlzLnBhc3RJbnB1dCgpO1xuICAgICAgICB2YXIgYyA9IG5ldyBBcnJheShwcmUubGVuZ3RoICsgMSkuam9pbihcIi1cIik7XG4gICAgICAgIHJldHVybiBwcmUgKyB0aGlzLnVwY29taW5nSW5wdXQoKSArIFwiXFxuXCIgKyBjICsgXCJeXCI7XG4gICAgICB9LFxuICAgICAgLy8gdGVzdCB0aGUgbGV4ZWQgdG9rZW46IHJldHVybiBGQUxTRSB3aGVuIG5vdCBhIG1hdGNoLCBvdGhlcndpc2UgcmV0dXJuIHRva2VuXG4gICAgICB0ZXN0X21hdGNoOiBmdW5jdGlvbihtYXRjaCwgaW5kZXhlZF9ydWxlKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbGluZXMsIGJhY2t1cDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICBiYWNrdXAgPSB7XG4gICAgICAgICAgICB5eWxpbmVubzogdGhpcy55eWxpbmVubyxcbiAgICAgICAgICAgIHl5bGxvYzoge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeXl0ZXh0OiB0aGlzLnl5dGV4dCxcbiAgICAgICAgICAgIG1hdGNoOiB0aGlzLm1hdGNoLFxuICAgICAgICAgICAgbWF0Y2hlczogdGhpcy5tYXRjaGVzLFxuICAgICAgICAgICAgbWF0Y2hlZDogdGhpcy5tYXRjaGVkLFxuICAgICAgICAgICAgeXlsZW5nOiB0aGlzLnl5bGVuZyxcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICBfbW9yZTogdGhpcy5fbW9yZSxcbiAgICAgICAgICAgIF9pbnB1dDogdGhpcy5faW5wdXQsXG4gICAgICAgICAgICB5eTogdGhpcy55eSxcbiAgICAgICAgICAgIGNvbmRpdGlvblN0YWNrOiB0aGlzLmNvbmRpdGlvblN0YWNrLnNsaWNlKDApLFxuICAgICAgICAgICAgZG9uZTogdGhpcy5kb25lXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgICAgYmFja3VwLnl5bGxvYy5yYW5nZSA9IHRoaXMueXlsbG9jLnJhbmdlLnNsaWNlKDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsaW5lcyA9IG1hdGNoWzBdLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyArPSBsaW5lcy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MubGFzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGggLSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5tYXRjaCgvXFxyP1xcbj8vKVswXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbiArIG1hdGNoWzBdLmxlbmd0aFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBtYXRjaFswXTtcbiAgICAgICAgdGhpcy5tYXRjaCArPSBtYXRjaFswXTtcbiAgICAgICAgdGhpcy5tYXRjaGVzID0gbWF0Y2g7XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3RoaXMub2Zmc2V0LCB0aGlzLm9mZnNldCArPSB0aGlzLnl5bGVuZ107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbW9yZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZShtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRva2VuID0gdGhpcy5wZXJmb3JtQWN0aW9uLmNhbGwodGhpcywgdGhpcy55eSwgdGhpcywgaW5kZXhlZF9ydWxlLCB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pO1xuICAgICAgICBpZiAodGhpcy5kb25lICYmIHRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgIGZvciAodmFyIGsgaW4gYmFja3VwKSB7XG4gICAgICAgICAgICB0aGlzW2tdID0gYmFja3VwW2tdO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIGluIGlucHV0XG4gICAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5kb25lID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdG9rZW4sIG1hdGNoLCB0ZW1wTWF0Y2gsIGluZGV4O1xuICAgICAgICBpZiAoIXRoaXMuX21vcmUpIHtcbiAgICAgICAgICB0aGlzLnl5dGV4dCA9IFwiXCI7XG4gICAgICAgICAgdGhpcy5tYXRjaCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJ1bGVzID0gdGhpcy5fY3VycmVudFJ1bGVzKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0ZW1wTWF0Y2ggPSB0aGlzLl9pbnB1dC5tYXRjaCh0aGlzLnJ1bGVzW3J1bGVzW2ldXSk7XG4gICAgICAgICAgaWYgKHRlbXBNYXRjaCAmJiAoIW1hdGNoIHx8IHRlbXBNYXRjaFswXS5sZW5ndGggPiBtYXRjaFswXS5sZW5ndGgpKSB7XG4gICAgICAgICAgICBtYXRjaCA9IHRlbXBNYXRjaDtcbiAgICAgICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKHRlbXBNYXRjaCwgcnVsZXNbaV0pO1xuICAgICAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLm9wdGlvbnMuZmxleCkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2gobWF0Y2gsIHJ1bGVzW2luZGV4XSk7XG4gICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0ID09PSBcIlwiKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIgKyAodGhpcy55eWxpbmVubyArIDEpICsgXCIuIFVucmVjb2duaXplZCB0ZXh0LlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggdGhhdCBoYXMgYSB0b2tlblxuICAgICAgbGV4OiBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciByID0gdGhpcy5uZXh0KCk7XG4gICAgICAgIGlmIChyKSB7XG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubGV4KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhY3RpdmF0ZXMgYSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIChwdXNoZXMgdGhlIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgb250byB0aGUgY29uZGl0aW9uIHN0YWNrKVxuICAgICAgYmVnaW46IGZ1bmN0aW9uIGJlZ2luKGNvbmRpdGlvbikge1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrLnB1c2goY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyBwb3AgdGhlIHByZXZpb3VzbHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvZmYgdGhlIGNvbmRpdGlvbiBzdGFja1xuICAgICAgcG9wU3RhdGU6IGZ1bmN0aW9uIHBvcFN0YXRlKCkge1xuICAgICAgICB2YXIgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKG4gPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2sucG9wKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2tbMF07XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBwcm9kdWNlIHRoZSBsZXhlciBydWxlIHNldCB3aGljaCBpcyBhY3RpdmUgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZVxuICAgICAgX2N1cnJlbnRSdWxlczogZnVuY3Rpb24gX2N1cnJlbnRSdWxlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoICYmIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdXS5ydWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW1wiSU5JVElBTFwiXS5ydWxlcztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGU7IHdoZW4gYW4gaW5kZXggYXJndW1lbnQgaXMgcHJvdmlkZWQgaXQgcHJvZHVjZXMgdGhlIE4tdGggcHJldmlvdXMgY29uZGl0aW9uIHN0YXRlLCBpZiBhdmFpbGFibGVcbiAgICAgIHRvcFN0YXRlOiBmdW5jdGlvbiB0b3BTdGF0ZShuKSB7XG4gICAgICAgIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDEgLSBNYXRoLmFicyhuIHx8IDApO1xuICAgICAgICBpZiAobiA+PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2tbbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFwiSU5JVElBTFwiO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWxpYXMgZm9yIGJlZ2luKGNvbmRpdGlvbilcbiAgICAgIHB1c2hTdGF0ZTogZnVuY3Rpb24gcHVzaFN0YXRlKGNvbmRpdGlvbikge1xuICAgICAgICB0aGlzLmJlZ2luKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdGVzIGN1cnJlbnRseSBvbiB0aGUgc3RhY2tcbiAgICAgIHN0YXRlU3RhY2tTaXplOiBmdW5jdGlvbiBzdGF0ZVN0YWNrU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHsgXCJjYXNlLWluc2Vuc2l0aXZlXCI6IHRydWUgfSxcbiAgICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eSwgeXlfLCAkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zLCBZWV9TVEFSVCkge1xuICAgICAgICBzd2l0Y2ggKCRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiYWNjX3RpdGxlXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDIyO1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBcImFjY190aXRsZV92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfZGVzY3JcIik7XG4gICAgICAgICAgICByZXR1cm4gMjQ7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX2Rlc2NyX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjcl9tdWx0aWxpbmVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgcmV0dXJuIDEwO1xuICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgIHJldHVybiA4O1xuICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICByZXR1cm4gMjg7XG4gICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICAgIHJldHVybiA0ODtcbiAgICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJibG9ja1wiKTtcbiAgICAgICAgICAgIHJldHVybiAxNTtcbiAgICAgICAgICBjYXNlIDE0OlxuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDE2OlxuICAgICAgICAgICAgcmV0dXJuIDM3O1xuICAgICAgICAgIGNhc2UgMTc6XG4gICAgICAgICAgICByZXR1cm4gMzQ7XG4gICAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICAgIHJldHVybiAzNDtcbiAgICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgICAgcmV0dXJuIDM4O1xuICAgICAgICAgIGNhc2UgMjA6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDIxOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDE3O1xuICAgICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgICByZXR1cm4geXlfLnl5dGV4dFswXTtcbiAgICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgICAgcmV0dXJuIDE4O1xuICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgICByZXR1cm4gMTk7XG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIHJldHVybiA0MTtcbiAgICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgICAgcmV0dXJuIDQzO1xuICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICByZXR1cm4gNDM7XG4gICAgICAgICAgY2FzZSAyODpcbiAgICAgICAgICAgIHJldHVybiA0MztcbiAgICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgICAgcmV0dXJuIDQxO1xuICAgICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgICByZXR1cm4gNDE7XG4gICAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICAgIHJldHVybiA0MjtcbiAgICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgICAgcmV0dXJuIDQyO1xuICAgICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgICByZXR1cm4gNDI7XG4gICAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICAgIHJldHVybiA0MjtcbiAgICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgICAgcmV0dXJuIDQyO1xuICAgICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgICByZXR1cm4gNDM7XG4gICAgICAgICAgY2FzZSAzNzpcbiAgICAgICAgICAgIHJldHVybiA0MjtcbiAgICAgICAgICBjYXNlIDM4OlxuICAgICAgICAgICAgcmV0dXJuIDQzO1xuICAgICAgICAgIGNhc2UgMzk6XG4gICAgICAgICAgICByZXR1cm4gNDQ7XG4gICAgICAgICAgY2FzZSA0MDpcbiAgICAgICAgICAgIHJldHVybiA0NDtcbiAgICAgICAgICBjYXNlIDQxOlxuICAgICAgICAgICAgcmV0dXJuIDQ0O1xuICAgICAgICAgIGNhc2UgNDI6XG4gICAgICAgICAgICByZXR1cm4gNDQ7XG4gICAgICAgICAgY2FzZSA0MzpcbiAgICAgICAgICAgIHJldHVybiA0MTtcbiAgICAgICAgICBjYXNlIDQ0OlxuICAgICAgICAgICAgcmV0dXJuIDQyO1xuICAgICAgICAgIGNhc2UgNDU6XG4gICAgICAgICAgICByZXR1cm4gNDM7XG4gICAgICAgICAgY2FzZSA0NjpcbiAgICAgICAgICAgIHJldHVybiA0NTtcbiAgICAgICAgICBjYXNlIDQ3OlxuICAgICAgICAgICAgcmV0dXJuIDQ2O1xuICAgICAgICAgIGNhc2UgNDg6XG4gICAgICAgICAgICByZXR1cm4gNDc7XG4gICAgICAgICAgY2FzZSA0OTpcbiAgICAgICAgICAgIHJldHVybiA0NztcbiAgICAgICAgICBjYXNlIDUwOlxuICAgICAgICAgICAgcmV0dXJuIDQ2O1xuICAgICAgICAgIGNhc2UgNTE6XG4gICAgICAgICAgICByZXR1cm4gNDY7XG4gICAgICAgICAgY2FzZSA1MjpcbiAgICAgICAgICAgIHJldHVybiA0NjtcbiAgICAgICAgICBjYXNlIDUzOlxuICAgICAgICAgICAgcmV0dXJuIDI3O1xuICAgICAgICAgIGNhc2UgNTQ6XG4gICAgICAgICAgICByZXR1cm4geXlfLnl5dGV4dFswXTtcbiAgICAgICAgICBjYXNlIDU1OlxuICAgICAgICAgICAgcmV0dXJuIDY7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczogWy9eKD86YWNjVGl0bGVcXHMqOlxccyopL2ksIC9eKD86KD8hXFxufHwpKlteXFxuXSopL2ksIC9eKD86YWNjRGVzY3JcXHMqOlxccyopL2ksIC9eKD86KD8hXFxufHwpKlteXFxuXSopL2ksIC9eKD86YWNjRGVzY3JcXHMqXFx7XFxzKikvaSwgL14oPzpbXFx9XSkvaSwgL14oPzpbXlxcfV0qKS9pLCAvXig/OltcXG5dKykvaSwgL14oPzpcXHMrKS9pLCAvXig/OltcXHNdKykvaSwgL14oPzpcIlteXCIlXFxyXFxuXFx2XFxiXFxcXF0rXCIpL2ksIC9eKD86XCJbXlwiXSpcIikvaSwgL14oPzplckRpYWdyYW1cXGIpL2ksIC9eKD86XFx7KS9pLCAvXig/OiwpL2ksIC9eKD86XFxzKykvaSwgL14oPzpcXGIoKD86UEspfCg/OkZLKXwoPzpVSykpXFxiKS9pLCAvXig/OiguKj8pW35dKC4qPykqW35dKS9pLCAvXig/OltcXCpBLVphLXpfXVtBLVphLXowLTlcXC1fXFxbXFxdXFwoXFwpXSopL2ksIC9eKD86XCJbXlwiXSpcIikvaSwgL14oPzpbXFxuXSspL2ksIC9eKD86XFx9KS9pLCAvXig/Oi4pL2ksIC9eKD86XFxbKS9pLCAvXig/OlxcXSkvaSwgL14oPzpvbmUgb3IgemVyb1xcYikvaSwgL14oPzpvbmUgb3IgbW9yZVxcYikvaSwgL14oPzpvbmUgb3IgbWFueVxcYikvaSwgL14oPzoxXFwrKS9pLCAvXig/OlxcfG9cXGIpL2ksIC9eKD86emVybyBvciBvbmVcXGIpL2ksIC9eKD86emVybyBvciBtb3JlXFxiKS9pLCAvXig/Onplcm8gb3IgbWFueVxcYikvaSwgL14oPzowXFwrKS9pLCAvXig/OlxcfW9cXGIpL2ksIC9eKD86bWFueVxcKDBcXCkpL2ksIC9eKD86bWFueVxcKDFcXCkpL2ksIC9eKD86bWFueVxcYikvaSwgL14oPzpcXH1cXHwpL2ksIC9eKD86b25lXFxiKS9pLCAvXig/Om9ubHkgb25lXFxiKS9pLCAvXig/OjFcXGIpL2ksIC9eKD86XFx8XFx8KS9pLCAvXig/Om9cXHwpL2ksIC9eKD86b1xceykvaSwgL14oPzpcXHxcXHspL2ksIC9eKD86XFxzKnVcXGIpL2ksIC9eKD86XFwuXFwuKS9pLCAvXig/Oi0tKS9pLCAvXig/OnRvXFxiKS9pLCAvXig/Om9wdGlvbmFsbHkgdG9cXGIpL2ksIC9eKD86XFwuLSkvaSwgL14oPzotXFwuKS9pLCAvXig/OltBLVphLXpfXVtBLVphLXowLTlcXC1fXSopL2ksIC9eKD86LikvaSwgL14oPzokKS9pXSxcbiAgICAgIGNvbmRpdGlvbnM6IHsgXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCI6IHsgXCJydWxlc1wiOiBbNSwgNl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX2Rlc2NyXCI6IHsgXCJydWxlc1wiOiBbM10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX3RpdGxlXCI6IHsgXCJydWxlc1wiOiBbMV0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYmxvY2tcIjogeyBcInJ1bGVzXCI6IFsxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMiwgNCwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTVdLCBcImluY2x1c2l2ZVwiOiB0cnVlIH0gfVxuICAgIH07XG4gICAgcmV0dXJuIGxleGVyMjtcbiAgfSgpO1xuICBwYXJzZXIyLmxleGVyID0gbGV4ZXI7XG4gIGZ1bmN0aW9uIFBhcnNlcigpIHtcbiAgICB0aGlzLnl5ID0ge307XG4gIH1cbiAgUGFyc2VyLnByb3RvdHlwZSA9IHBhcnNlcjI7XG4gIHBhcnNlcjIuUGFyc2VyID0gUGFyc2VyO1xuICByZXR1cm4gbmV3IFBhcnNlcigpO1xufSgpO1xucGFyc2VyLnBhcnNlciA9IHBhcnNlcjtcbmNvbnN0IGVyUGFyc2VyID0gcGFyc2VyO1xubGV0IGVudGl0aWVzID0ge307XG5sZXQgcmVsYXRpb25zaGlwcyA9IFtdO1xuY29uc3QgQ2FyZGluYWxpdHkgPSB7XG4gIFpFUk9fT1JfT05FOiBcIlpFUk9fT1JfT05FXCIsXG4gIFpFUk9fT1JfTU9SRTogXCJaRVJPX09SX01PUkVcIixcbiAgT05FX09SX01PUkU6IFwiT05FX09SX01PUkVcIixcbiAgT05MWV9PTkU6IFwiT05MWV9PTkVcIixcbiAgTURfUEFSRU5UOiBcIk1EX1BBUkVOVFwiXG59O1xuY29uc3QgSWRlbnRpZmljYXRpb24gPSB7XG4gIE5PTl9JREVOVElGWUlORzogXCJOT05fSURFTlRJRllJTkdcIixcbiAgSURFTlRJRllJTkc6IFwiSURFTlRJRllJTkdcIlxufTtcbmNvbnN0IGFkZEVudGl0eSA9IGZ1bmN0aW9uKG5hbWUsIGFsaWFzID0gdm9pZCAwKSB7XG4gIGlmIChlbnRpdGllc1tuYW1lXSA9PT0gdm9pZCAwKSB7XG4gICAgZW50aXRpZXNbbmFtZV0gPSB7IGF0dHJpYnV0ZXM6IFtdLCBhbGlhcyB9O1xuICAgIGxvZy5pbmZvKFwiQWRkZWQgbmV3IGVudGl0eSA6XCIsIG5hbWUpO1xuICB9IGVsc2UgaWYgKGVudGl0aWVzW25hbWVdICYmICFlbnRpdGllc1tuYW1lXS5hbGlhcyAmJiBhbGlhcykge1xuICAgIGVudGl0aWVzW25hbWVdLmFsaWFzID0gYWxpYXM7XG4gICAgbG9nLmluZm8oYEFkZCBhbGlhcyAnJHthbGlhc30nIHRvIGVudGl0eSAnJHtuYW1lfSdgKTtcbiAgfVxuICByZXR1cm4gZW50aXRpZXNbbmFtZV07XG59O1xuY29uc3QgZ2V0RW50aXRpZXMgPSAoKSA9PiBlbnRpdGllcztcbmNvbnN0IGFkZEF0dHJpYnV0ZXMgPSBmdW5jdGlvbihlbnRpdHlOYW1lLCBhdHRyaWJzKSB7XG4gIGxldCBlbnRpdHkgPSBhZGRFbnRpdHkoZW50aXR5TmFtZSk7XG4gIGxldCBpO1xuICBmb3IgKGkgPSBhdHRyaWJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgZW50aXR5LmF0dHJpYnV0ZXMucHVzaChhdHRyaWJzW2ldKTtcbiAgICBsb2cuZGVidWcoXCJBZGRlZCBhdHRyaWJ1dGUgXCIsIGF0dHJpYnNbaV0uYXR0cmlidXRlTmFtZSk7XG4gIH1cbn07XG5jb25zdCBhZGRSZWxhdGlvbnNoaXAgPSBmdW5jdGlvbihlbnRBLCByb2xBLCBlbnRCLCByU3BlYykge1xuICBsZXQgcmVsID0ge1xuICAgIGVudGl0eUE6IGVudEEsXG4gICAgcm9sZUE6IHJvbEEsXG4gICAgZW50aXR5QjogZW50QixcbiAgICByZWxTcGVjOiByU3BlY1xuICB9O1xuICByZWxhdGlvbnNoaXBzLnB1c2gocmVsKTtcbiAgbG9nLmRlYnVnKFwiQWRkZWQgbmV3IHJlbGF0aW9uc2hpcCA6XCIsIHJlbCk7XG59O1xuY29uc3QgZ2V0UmVsYXRpb25zaGlwcyA9ICgpID0+IHJlbGF0aW9uc2hpcHM7XG5jb25zdCBjbGVhciA9IGZ1bmN0aW9uKCkge1xuICBlbnRpdGllcyA9IHt9O1xuICByZWxhdGlvbnNoaXBzID0gW107XG4gIGNsZWFyJDEoKTtcbn07XG5jb25zdCBlckRiID0ge1xuICBDYXJkaW5hbGl0eSxcbiAgSWRlbnRpZmljYXRpb24sXG4gIGdldENvbmZpZzogKCkgPT4gZ2V0Q29uZmlnKCkuZXIsXG4gIGFkZEVudGl0eSxcbiAgYWRkQXR0cmlidXRlcyxcbiAgZ2V0RW50aXRpZXMsXG4gIGFkZFJlbGF0aW9uc2hpcCxcbiAgZ2V0UmVsYXRpb25zaGlwcyxcbiAgY2xlYXIsXG4gIHNldEFjY1RpdGxlLFxuICBnZXRBY2NUaXRsZSxcbiAgc2V0QWNjRGVzY3JpcHRpb24sXG4gIGdldEFjY0Rlc2NyaXB0aW9uLFxuICBzZXREaWFncmFtVGl0bGUsXG4gIGdldERpYWdyYW1UaXRsZVxufTtcbmNvbnN0IEVSTWFya2VycyA9IHtcbiAgT05MWV9PTkVfU1RBUlQ6IFwiT05MWV9PTkVfU1RBUlRcIixcbiAgT05MWV9PTkVfRU5EOiBcIk9OTFlfT05FX0VORFwiLFxuICBaRVJPX09SX09ORV9TVEFSVDogXCJaRVJPX09SX09ORV9TVEFSVFwiLFxuICBaRVJPX09SX09ORV9FTkQ6IFwiWkVST19PUl9PTkVfRU5EXCIsXG4gIE9ORV9PUl9NT1JFX1NUQVJUOiBcIk9ORV9PUl9NT1JFX1NUQVJUXCIsXG4gIE9ORV9PUl9NT1JFX0VORDogXCJPTkVfT1JfTU9SRV9FTkRcIixcbiAgWkVST19PUl9NT1JFX1NUQVJUOiBcIlpFUk9fT1JfTU9SRV9TVEFSVFwiLFxuICBaRVJPX09SX01PUkVfRU5EOiBcIlpFUk9fT1JfTU9SRV9FTkRcIixcbiAgTURfUEFSRU5UX0VORDogXCJNRF9QQVJFTlRfRU5EXCIsXG4gIE1EX1BBUkVOVF9TVEFSVDogXCJNRF9QQVJFTlRfU1RBUlRcIlxufTtcbmNvbnN0IGluc2VydE1hcmtlcnMgPSBmdW5jdGlvbihlbGVtLCBjb25mMikge1xuICBsZXQgbWFya2VyO1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBFUk1hcmtlcnMuTURfUEFSRU5UX1NUQVJUKS5hdHRyKFwicmVmWFwiLCAwKS5hdHRyKFwicmVmWVwiLCA3KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTkwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI0MCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gMTgsNyBMOSwxMyBMMSw3IEw5LDEgWlwiKTtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgRVJNYXJrZXJzLk1EX1BBUkVOVF9FTkQpLmF0dHIoXCJyZWZYXCIsIDE5KS5hdHRyKFwicmVmWVwiLCA3KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMjApLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMjgpLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDE4LDcgTDksMTMgTDEsNyBMOSwxIFpcIik7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIEVSTWFya2Vycy5PTkxZX09ORV9TVEFSVCkuYXR0cihcInJlZlhcIiwgMCkuYXR0cihcInJlZllcIiwgOSkuYXR0cihcIm1hcmtlcldpZHRoXCIsIDE4KS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDE4KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJzdHJva2VcIiwgY29uZjIuc3Ryb2tlKS5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIikuYXR0cihcImRcIiwgXCJNOSwwIEw5LDE4IE0xNSwwIEwxNSwxOFwiKTtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgRVJNYXJrZXJzLk9OTFlfT05FX0VORCkuYXR0cihcInJlZlhcIiwgMTgpLmF0dHIoXCJyZWZZXCIsIDkpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAxOCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCAxOCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwic3Ryb2tlXCIsIGNvbmYyLnN0cm9rZSkuYXR0cihcImZpbGxcIiwgXCJub25lXCIpLmF0dHIoXCJkXCIsIFwiTTMsMCBMMywxOCBNOSwwIEw5LDE4XCIpO1xuICBtYXJrZXIgPSBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBFUk1hcmtlcnMuWkVST19PUl9PTkVfU1RBUlQpLmF0dHIoXCJyZWZYXCIsIDApLmF0dHIoXCJyZWZZXCIsIDkpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAzMCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCAxOCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIik7XG4gIG1hcmtlci5hcHBlbmQoXCJjaXJjbGVcIikuYXR0cihcInN0cm9rZVwiLCBjb25mMi5zdHJva2UpLmF0dHIoXCJmaWxsXCIsIFwid2hpdGVcIikuYXR0cihcImN4XCIsIDIxKS5hdHRyKFwiY3lcIiwgOSkuYXR0cihcInJcIiwgNik7XG4gIG1hcmtlci5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJzdHJva2VcIiwgY29uZjIuc3Ryb2tlKS5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIikuYXR0cihcImRcIiwgXCJNOSwwIEw5LDE4XCIpO1xuICBtYXJrZXIgPSBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBFUk1hcmtlcnMuWkVST19PUl9PTkVfRU5EKS5hdHRyKFwicmVmWFwiLCAzMCkuYXR0cihcInJlZllcIiwgOSkuYXR0cihcIm1hcmtlcldpZHRoXCIsIDMwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDE4KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKTtcbiAgbWFya2VyLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwic3Ryb2tlXCIsIGNvbmYyLnN0cm9rZSkuYXR0cihcImZpbGxcIiwgXCJ3aGl0ZVwiKS5hdHRyKFwiY3hcIiwgOSkuYXR0cihcImN5XCIsIDkpLmF0dHIoXCJyXCIsIDYpO1xuICBtYXJrZXIuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwic3Ryb2tlXCIsIGNvbmYyLnN0cm9rZSkuYXR0cihcImZpbGxcIiwgXCJub25lXCIpLmF0dHIoXCJkXCIsIFwiTTIxLDAgTDIxLDE4XCIpO1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBFUk1hcmtlcnMuT05FX09SX01PUkVfU1RBUlQpLmF0dHIoXCJyZWZYXCIsIDE4KS5hdHRyKFwicmVmWVwiLCAxOCkuYXR0cihcIm1hcmtlcldpZHRoXCIsIDQ1KS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDM2KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJzdHJva2VcIiwgY29uZjIuc3Ryb2tlKS5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIikuYXR0cihcImRcIiwgXCJNMCwxOCBRIDE4LDAgMzYsMTggUSAxOCwzNiAwLDE4IE00Miw5IEw0MiwyN1wiKTtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgRVJNYXJrZXJzLk9ORV9PUl9NT1JFX0VORCkuYXR0cihcInJlZlhcIiwgMjcpLmF0dHIoXCJyZWZZXCIsIDE4KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgNDUpLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMzYpLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcInN0cm9rZVwiLCBjb25mMi5zdHJva2UpLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKS5hdHRyKFwiZFwiLCBcIk0zLDkgTDMsMjcgTTksMTggUTI3LDAgNDUsMTggUTI3LDM2IDksMThcIik7XG4gIG1hcmtlciA9IGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIEVSTWFya2Vycy5aRVJPX09SX01PUkVfU1RBUlQpLmF0dHIoXCJyZWZYXCIsIDE4KS5hdHRyKFwicmVmWVwiLCAxOCkuYXR0cihcIm1hcmtlcldpZHRoXCIsIDU3KS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDM2KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKTtcbiAgbWFya2VyLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwic3Ryb2tlXCIsIGNvbmYyLnN0cm9rZSkuYXR0cihcImZpbGxcIiwgXCJ3aGl0ZVwiKS5hdHRyKFwiY3hcIiwgNDgpLmF0dHIoXCJjeVwiLCAxOCkuYXR0cihcInJcIiwgNik7XG4gIG1hcmtlci5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJzdHJva2VcIiwgY29uZjIuc3Ryb2tlKS5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIikuYXR0cihcImRcIiwgXCJNMCwxOCBRMTgsMCAzNiwxOCBRMTgsMzYgMCwxOFwiKTtcbiAgbWFya2VyID0gZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgRVJNYXJrZXJzLlpFUk9fT1JfTU9SRV9FTkQpLmF0dHIoXCJyZWZYXCIsIDM5KS5hdHRyKFwicmVmWVwiLCAxOCkuYXR0cihcIm1hcmtlcldpZHRoXCIsIDU3KS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDM2KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKTtcbiAgbWFya2VyLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwic3Ryb2tlXCIsIGNvbmYyLnN0cm9rZSkuYXR0cihcImZpbGxcIiwgXCJ3aGl0ZVwiKS5hdHRyKFwiY3hcIiwgOSkuYXR0cihcImN5XCIsIDE4KS5hdHRyKFwiclwiLCA2KTtcbiAgbWFya2VyLmFwcGVuZChcInBhdGhcIikuYXR0cihcInN0cm9rZVwiLCBjb25mMi5zdHJva2UpLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKS5hdHRyKFwiZFwiLCBcIk0yMSwxOCBRMzksMCA1NywxOCBRMzksMzYgMjEsMThcIik7XG4gIHJldHVybjtcbn07XG5jb25zdCBlck1hcmtlcnMgPSB7XG4gIEVSTWFya2VycyxcbiAgaW5zZXJ0TWFya2Vyc1xufTtcbmNvbnN0IEJBRF9JRF9DSEFSU19SRUdFWFAgPSAvW15cXGRBLVphLXpdKFxcVykqL2c7XG5sZXQgY29uZiA9IHt9O1xubGV0IGVudGl0eU5hbWVJZHMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuY29uc3Qgc2V0Q29uZiA9IGZ1bmN0aW9uKGNuZikge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY25mKTtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGNvbmZba2V5XSA9IGNuZltrZXldO1xuICB9XG59O1xuY29uc3QgZHJhd0F0dHJpYnV0ZXMgPSAoZ3JvdXBOb2RlLCBlbnRpdHlUZXh0Tm9kZSwgYXR0cmlidXRlcykgPT4ge1xuICBjb25zdCBoZWlnaHRQYWRkaW5nID0gY29uZi5lbnRpdHlQYWRkaW5nIC8gMztcbiAgY29uc3Qgd2lkdGhQYWRkaW5nID0gY29uZi5lbnRpdHlQYWRkaW5nIC8gMztcbiAgY29uc3QgYXR0ckZvbnRTaXplID0gY29uZi5mb250U2l6ZSAqIDAuODU7XG4gIGNvbnN0IGxhYmVsQkJveCA9IGVudGl0eVRleHROb2RlLm5vZGUoKS5nZXRCQm94KCk7XG4gIGNvbnN0IGF0dHJpYnV0ZU5vZGVzID0gW107XG4gIGxldCBoYXNLZXlUeXBlID0gZmFsc2U7XG4gIGxldCBoYXNDb21tZW50ID0gZmFsc2U7XG4gIGxldCBtYXhUeXBlV2lkdGggPSAwO1xuICBsZXQgbWF4TmFtZVdpZHRoID0gMDtcbiAgbGV0IG1heEtleVdpZHRoID0gMDtcbiAgbGV0IG1heENvbW1lbnRXaWR0aCA9IDA7XG4gIGxldCBjdW11bGF0aXZlSGVpZ2h0ID0gbGFiZWxCQm94LmhlaWdodCArIGhlaWdodFBhZGRpbmcgKiAyO1xuICBsZXQgYXR0ck51bSA9IDE7XG4gIGF0dHJpYnV0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgIGlmIChpdGVtLmF0dHJpYnV0ZUtleVR5cGVMaXN0ICE9PSB2b2lkIDAgJiYgaXRlbS5hdHRyaWJ1dGVLZXlUeXBlTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBoYXNLZXlUeXBlID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGl0ZW0uYXR0cmlidXRlQ29tbWVudCAhPT0gdm9pZCAwKSB7XG4gICAgICBoYXNDb21tZW50ID0gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuICBhdHRyaWJ1dGVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICBjb25zdCBhdHRyUHJlZml4ID0gYCR7ZW50aXR5VGV4dE5vZGUubm9kZSgpLmlkfS1hdHRyLSR7YXR0ck51bX1gO1xuICAgIGxldCBub2RlSGVpZ2h0ID0gMDtcbiAgICBjb25zdCBhdHRyaWJ1dGVUeXBlID0gcGFyc2VHZW5lcmljVHlwZXMoaXRlbS5hdHRyaWJ1dGVUeXBlKTtcbiAgICBjb25zdCB0eXBlTm9kZSA9IGdyb3VwTm9kZS5hcHBlbmQoXCJ0ZXh0XCIpLmNsYXNzZWQoXCJlciBlbnRpdHlMYWJlbFwiLCB0cnVlKS5hdHRyKFwiaWRcIiwgYCR7YXR0clByZWZpeH0tdHlwZWApLmF0dHIoXCJ4XCIsIDApLmF0dHIoXCJ5XCIsIDApLnN0eWxlKFwiZG9taW5hbnQtYmFzZWxpbmVcIiwgXCJtaWRkbGVcIikuc3R5bGUoXCJ0ZXh0LWFuY2hvclwiLCBcImxlZnRcIikuc3R5bGUoXCJmb250LWZhbWlseVwiLCBnZXRDb25maWcoKS5mb250RmFtaWx5KS5zdHlsZShcImZvbnQtc2l6ZVwiLCBhdHRyRm9udFNpemUgKyBcInB4XCIpLnRleHQoYXR0cmlidXRlVHlwZSk7XG4gICAgY29uc3QgbmFtZU5vZGUgPSBncm91cE5vZGUuYXBwZW5kKFwidGV4dFwiKS5jbGFzc2VkKFwiZXIgZW50aXR5TGFiZWxcIiwgdHJ1ZSkuYXR0cihcImlkXCIsIGAke2F0dHJQcmVmaXh9LW5hbWVgKS5hdHRyKFwieFwiLCAwKS5hdHRyKFwieVwiLCAwKS5zdHlsZShcImRvbWluYW50LWJhc2VsaW5lXCIsIFwibWlkZGxlXCIpLnN0eWxlKFwidGV4dC1hbmNob3JcIiwgXCJsZWZ0XCIpLnN0eWxlKFwiZm9udC1mYW1pbHlcIiwgZ2V0Q29uZmlnKCkuZm9udEZhbWlseSkuc3R5bGUoXCJmb250LXNpemVcIiwgYXR0ckZvbnRTaXplICsgXCJweFwiKS50ZXh0KGl0ZW0uYXR0cmlidXRlTmFtZSk7XG4gICAgY29uc3QgYXR0cmlidXRlTm9kZSA9IHt9O1xuICAgIGF0dHJpYnV0ZU5vZGUudG4gPSB0eXBlTm9kZTtcbiAgICBhdHRyaWJ1dGVOb2RlLm5uID0gbmFtZU5vZGU7XG4gICAgY29uc3QgdHlwZUJCb3ggPSB0eXBlTm9kZS5ub2RlKCkuZ2V0QkJveCgpO1xuICAgIGNvbnN0IG5hbWVCQm94ID0gbmFtZU5vZGUubm9kZSgpLmdldEJCb3goKTtcbiAgICBtYXhUeXBlV2lkdGggPSBNYXRoLm1heChtYXhUeXBlV2lkdGgsIHR5cGVCQm94LndpZHRoKTtcbiAgICBtYXhOYW1lV2lkdGggPSBNYXRoLm1heChtYXhOYW1lV2lkdGgsIG5hbWVCQm94LndpZHRoKTtcbiAgICBub2RlSGVpZ2h0ID0gTWF0aC5tYXgodHlwZUJCb3guaGVpZ2h0LCBuYW1lQkJveC5oZWlnaHQpO1xuICAgIGlmIChoYXNLZXlUeXBlKSB7XG4gICAgICBjb25zdCBrZXlUeXBlTm9kZVRleHQgPSBpdGVtLmF0dHJpYnV0ZUtleVR5cGVMaXN0ICE9PSB2b2lkIDAgPyBpdGVtLmF0dHJpYnV0ZUtleVR5cGVMaXN0LmpvaW4oXCIsXCIpIDogXCJcIjtcbiAgICAgIGNvbnN0IGtleVR5cGVOb2RlID0gZ3JvdXBOb2RlLmFwcGVuZChcInRleHRcIikuY2xhc3NlZChcImVyIGVudGl0eUxhYmVsXCIsIHRydWUpLmF0dHIoXCJpZFwiLCBgJHthdHRyUHJlZml4fS1rZXlgKS5hdHRyKFwieFwiLCAwKS5hdHRyKFwieVwiLCAwKS5zdHlsZShcImRvbWluYW50LWJhc2VsaW5lXCIsIFwibWlkZGxlXCIpLnN0eWxlKFwidGV4dC1hbmNob3JcIiwgXCJsZWZ0XCIpLnN0eWxlKFwiZm9udC1mYW1pbHlcIiwgZ2V0Q29uZmlnKCkuZm9udEZhbWlseSkuc3R5bGUoXCJmb250LXNpemVcIiwgYXR0ckZvbnRTaXplICsgXCJweFwiKS50ZXh0KGtleVR5cGVOb2RlVGV4dCk7XG4gICAgICBhdHRyaWJ1dGVOb2RlLmtuID0ga2V5VHlwZU5vZGU7XG4gICAgICBjb25zdCBrZXlUeXBlQkJveCA9IGtleVR5cGVOb2RlLm5vZGUoKS5nZXRCQm94KCk7XG4gICAgICBtYXhLZXlXaWR0aCA9IE1hdGgubWF4KG1heEtleVdpZHRoLCBrZXlUeXBlQkJveC53aWR0aCk7XG4gICAgICBub2RlSGVpZ2h0ID0gTWF0aC5tYXgobm9kZUhlaWdodCwga2V5VHlwZUJCb3guaGVpZ2h0KTtcbiAgICB9XG4gICAgaWYgKGhhc0NvbW1lbnQpIHtcbiAgICAgIGNvbnN0IGNvbW1lbnROb2RlID0gZ3JvdXBOb2RlLmFwcGVuZChcInRleHRcIikuY2xhc3NlZChcImVyIGVudGl0eUxhYmVsXCIsIHRydWUpLmF0dHIoXCJpZFwiLCBgJHthdHRyUHJlZml4fS1jb21tZW50YCkuYXR0cihcInhcIiwgMCkuYXR0cihcInlcIiwgMCkuc3R5bGUoXCJkb21pbmFudC1iYXNlbGluZVwiLCBcIm1pZGRsZVwiKS5zdHlsZShcInRleHQtYW5jaG9yXCIsIFwibGVmdFwiKS5zdHlsZShcImZvbnQtZmFtaWx5XCIsIGdldENvbmZpZygpLmZvbnRGYW1pbHkpLnN0eWxlKFwiZm9udC1zaXplXCIsIGF0dHJGb250U2l6ZSArIFwicHhcIikudGV4dChpdGVtLmF0dHJpYnV0ZUNvbW1lbnQgfHwgXCJcIik7XG4gICAgICBhdHRyaWJ1dGVOb2RlLmNuID0gY29tbWVudE5vZGU7XG4gICAgICBjb25zdCBjb21tZW50Tm9kZUJCb3ggPSBjb21tZW50Tm9kZS5ub2RlKCkuZ2V0QkJveCgpO1xuICAgICAgbWF4Q29tbWVudFdpZHRoID0gTWF0aC5tYXgobWF4Q29tbWVudFdpZHRoLCBjb21tZW50Tm9kZUJCb3gud2lkdGgpO1xuICAgICAgbm9kZUhlaWdodCA9IE1hdGgubWF4KG5vZGVIZWlnaHQsIGNvbW1lbnROb2RlQkJveC5oZWlnaHQpO1xuICAgIH1cbiAgICBhdHRyaWJ1dGVOb2RlLmhlaWdodCA9IG5vZGVIZWlnaHQ7XG4gICAgYXR0cmlidXRlTm9kZXMucHVzaChhdHRyaWJ1dGVOb2RlKTtcbiAgICBjdW11bGF0aXZlSGVpZ2h0ICs9IG5vZGVIZWlnaHQgKyBoZWlnaHRQYWRkaW5nICogMjtcbiAgICBhdHRyTnVtICs9IDE7XG4gIH0pO1xuICBsZXQgd2lkdGhQYWRkaW5nRmFjdG9yID0gNDtcbiAgaWYgKGhhc0tleVR5cGUpIHtcbiAgICB3aWR0aFBhZGRpbmdGYWN0b3IgKz0gMjtcbiAgfVxuICBpZiAoaGFzQ29tbWVudCkge1xuICAgIHdpZHRoUGFkZGluZ0ZhY3RvciArPSAyO1xuICB9XG4gIGNvbnN0IG1heFdpZHRoID0gbWF4VHlwZVdpZHRoICsgbWF4TmFtZVdpZHRoICsgbWF4S2V5V2lkdGggKyBtYXhDb21tZW50V2lkdGg7XG4gIGNvbnN0IGJCb3ggPSB7XG4gICAgd2lkdGg6IE1hdGgubWF4KFxuICAgICAgY29uZi5taW5FbnRpdHlXaWR0aCxcbiAgICAgIE1hdGgubWF4KFxuICAgICAgICBsYWJlbEJCb3gud2lkdGggKyBjb25mLmVudGl0eVBhZGRpbmcgKiAyLFxuICAgICAgICBtYXhXaWR0aCArIHdpZHRoUGFkZGluZyAqIHdpZHRoUGFkZGluZ0ZhY3RvclxuICAgICAgKVxuICAgICksXG4gICAgaGVpZ2h0OiBhdHRyaWJ1dGVzLmxlbmd0aCA+IDAgPyBjdW11bGF0aXZlSGVpZ2h0IDogTWF0aC5tYXgoY29uZi5taW5FbnRpdHlIZWlnaHQsIGxhYmVsQkJveC5oZWlnaHQgKyBjb25mLmVudGl0eVBhZGRpbmcgKiAyKVxuICB9O1xuICBpZiAoYXR0cmlidXRlcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgc3BhcmVDb2x1bW5XaWR0aCA9IE1hdGgubWF4KFxuICAgICAgMCxcbiAgICAgIChiQm94LndpZHRoIC0gbWF4V2lkdGggLSB3aWR0aFBhZGRpbmcgKiB3aWR0aFBhZGRpbmdGYWN0b3IpIC8gKHdpZHRoUGFkZGluZ0ZhY3RvciAvIDIpXG4gICAgKTtcbiAgICBlbnRpdHlUZXh0Tm9kZS5hdHRyKFxuICAgICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAgIFwidHJhbnNsYXRlKFwiICsgYkJveC53aWR0aCAvIDIgKyBcIixcIiArIChoZWlnaHRQYWRkaW5nICsgbGFiZWxCQm94LmhlaWdodCAvIDIpICsgXCIpXCJcbiAgICApO1xuICAgIGxldCBoZWlnaHRPZmZzZXQgPSBsYWJlbEJCb3guaGVpZ2h0ICsgaGVpZ2h0UGFkZGluZyAqIDI7XG4gICAgbGV0IGF0dHJpYlN0eWxlID0gXCJhdHRyaWJ1dGVCb3hPZGRcIjtcbiAgICBhdHRyaWJ1dGVOb2Rlcy5mb3JFYWNoKChhdHRyaWJ1dGVOb2RlKSA9PiB7XG4gICAgICBjb25zdCBhbGlnblkgPSBoZWlnaHRPZmZzZXQgKyBoZWlnaHRQYWRkaW5nICsgYXR0cmlidXRlTm9kZS5oZWlnaHQgLyAyO1xuICAgICAgYXR0cmlidXRlTm9kZS50bi5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKFwiICsgd2lkdGhQYWRkaW5nICsgXCIsXCIgKyBhbGlnblkgKyBcIilcIik7XG4gICAgICBjb25zdCB0eXBlUmVjdCA9IGdyb3VwTm9kZS5pbnNlcnQoXCJyZWN0XCIsIFwiI1wiICsgYXR0cmlidXRlTm9kZS50bi5ub2RlKCkuaWQpLmNsYXNzZWQoYGVyICR7YXR0cmliU3R5bGV9YCwgdHJ1ZSkuYXR0cihcInhcIiwgMCkuYXR0cihcInlcIiwgaGVpZ2h0T2Zmc2V0KS5hdHRyKFwid2lkdGhcIiwgbWF4VHlwZVdpZHRoICsgd2lkdGhQYWRkaW5nICogMiArIHNwYXJlQ29sdW1uV2lkdGgpLmF0dHIoXCJoZWlnaHRcIiwgYXR0cmlidXRlTm9kZS5oZWlnaHQgKyBoZWlnaHRQYWRkaW5nICogMik7XG4gICAgICBjb25zdCBuYW1lWE9mZnNldCA9IHBhcnNlRmxvYXQodHlwZVJlY3QuYXR0cihcInhcIikpICsgcGFyc2VGbG9hdCh0eXBlUmVjdC5hdHRyKFwid2lkdGhcIikpO1xuICAgICAgYXR0cmlidXRlTm9kZS5ubi5hdHRyKFxuICAgICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgICBcInRyYW5zbGF0ZShcIiArIChuYW1lWE9mZnNldCArIHdpZHRoUGFkZGluZykgKyBcIixcIiArIGFsaWduWSArIFwiKVwiXG4gICAgICApO1xuICAgICAgY29uc3QgbmFtZVJlY3QgPSBncm91cE5vZGUuaW5zZXJ0KFwicmVjdFwiLCBcIiNcIiArIGF0dHJpYnV0ZU5vZGUubm4ubm9kZSgpLmlkKS5jbGFzc2VkKGBlciAke2F0dHJpYlN0eWxlfWAsIHRydWUpLmF0dHIoXCJ4XCIsIG5hbWVYT2Zmc2V0KS5hdHRyKFwieVwiLCBoZWlnaHRPZmZzZXQpLmF0dHIoXCJ3aWR0aFwiLCBtYXhOYW1lV2lkdGggKyB3aWR0aFBhZGRpbmcgKiAyICsgc3BhcmVDb2x1bW5XaWR0aCkuYXR0cihcImhlaWdodFwiLCBhdHRyaWJ1dGVOb2RlLmhlaWdodCArIGhlaWdodFBhZGRpbmcgKiAyKTtcbiAgICAgIGxldCBrZXlUeXBlQW5kQ29tbWVudFhPZmZzZXQgPSBwYXJzZUZsb2F0KG5hbWVSZWN0LmF0dHIoXCJ4XCIpKSArIHBhcnNlRmxvYXQobmFtZVJlY3QuYXR0cihcIndpZHRoXCIpKTtcbiAgICAgIGlmIChoYXNLZXlUeXBlKSB7XG4gICAgICAgIGF0dHJpYnV0ZU5vZGUua24uYXR0cihcbiAgICAgICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgICAgIFwidHJhbnNsYXRlKFwiICsgKGtleVR5cGVBbmRDb21tZW50WE9mZnNldCArIHdpZHRoUGFkZGluZykgKyBcIixcIiArIGFsaWduWSArIFwiKVwiXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGtleVR5cGVSZWN0ID0gZ3JvdXBOb2RlLmluc2VydChcInJlY3RcIiwgXCIjXCIgKyBhdHRyaWJ1dGVOb2RlLmtuLm5vZGUoKS5pZCkuY2xhc3NlZChgZXIgJHthdHRyaWJTdHlsZX1gLCB0cnVlKS5hdHRyKFwieFwiLCBrZXlUeXBlQW5kQ29tbWVudFhPZmZzZXQpLmF0dHIoXCJ5XCIsIGhlaWdodE9mZnNldCkuYXR0cihcIndpZHRoXCIsIG1heEtleVdpZHRoICsgd2lkdGhQYWRkaW5nICogMiArIHNwYXJlQ29sdW1uV2lkdGgpLmF0dHIoXCJoZWlnaHRcIiwgYXR0cmlidXRlTm9kZS5oZWlnaHQgKyBoZWlnaHRQYWRkaW5nICogMik7XG4gICAgICAgIGtleVR5cGVBbmRDb21tZW50WE9mZnNldCA9IHBhcnNlRmxvYXQoa2V5VHlwZVJlY3QuYXR0cihcInhcIikpICsgcGFyc2VGbG9hdChrZXlUeXBlUmVjdC5hdHRyKFwid2lkdGhcIikpO1xuICAgICAgfVxuICAgICAgaWYgKGhhc0NvbW1lbnQpIHtcbiAgICAgICAgYXR0cmlidXRlTm9kZS5jbi5hdHRyKFxuICAgICAgICAgIFwidHJhbnNmb3JtXCIsXG4gICAgICAgICAgXCJ0cmFuc2xhdGUoXCIgKyAoa2V5VHlwZUFuZENvbW1lbnRYT2Zmc2V0ICsgd2lkdGhQYWRkaW5nKSArIFwiLFwiICsgYWxpZ25ZICsgXCIpXCJcbiAgICAgICAgKTtcbiAgICAgICAgZ3JvdXBOb2RlLmluc2VydChcInJlY3RcIiwgXCIjXCIgKyBhdHRyaWJ1dGVOb2RlLmNuLm5vZGUoKS5pZCkuY2xhc3NlZChgZXIgJHthdHRyaWJTdHlsZX1gLCBcInRydWVcIikuYXR0cihcInhcIiwga2V5VHlwZUFuZENvbW1lbnRYT2Zmc2V0KS5hdHRyKFwieVwiLCBoZWlnaHRPZmZzZXQpLmF0dHIoXCJ3aWR0aFwiLCBtYXhDb21tZW50V2lkdGggKyB3aWR0aFBhZGRpbmcgKiAyICsgc3BhcmVDb2x1bW5XaWR0aCkuYXR0cihcImhlaWdodFwiLCBhdHRyaWJ1dGVOb2RlLmhlaWdodCArIGhlaWdodFBhZGRpbmcgKiAyKTtcbiAgICAgIH1cbiAgICAgIGhlaWdodE9mZnNldCArPSBhdHRyaWJ1dGVOb2RlLmhlaWdodCArIGhlaWdodFBhZGRpbmcgKiAyO1xuICAgICAgYXR0cmliU3R5bGUgPSBhdHRyaWJTdHlsZSA9PT0gXCJhdHRyaWJ1dGVCb3hPZGRcIiA/IFwiYXR0cmlidXRlQm94RXZlblwiIDogXCJhdHRyaWJ1dGVCb3hPZGRcIjtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBiQm94LmhlaWdodCA9IE1hdGgubWF4KGNvbmYubWluRW50aXR5SGVpZ2h0LCBjdW11bGF0aXZlSGVpZ2h0KTtcbiAgICBlbnRpdHlUZXh0Tm9kZS5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKFwiICsgYkJveC53aWR0aCAvIDIgKyBcIixcIiArIGJCb3guaGVpZ2h0IC8gMiArIFwiKVwiKTtcbiAgfVxuICByZXR1cm4gYkJveDtcbn07XG5jb25zdCBkcmF3RW50aXRpZXMgPSBmdW5jdGlvbihzdmdOb2RlLCBlbnRpdGllczIsIGdyYXBoKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhlbnRpdGllczIpO1xuICBsZXQgZmlyc3RPbmU7XG4gIGtleXMuZm9yRWFjaChmdW5jdGlvbihlbnRpdHlOYW1lKSB7XG4gICAgY29uc3QgZW50aXR5SWQgPSBnZW5lcmF0ZUlkKGVudGl0eU5hbWUsIFwiZW50aXR5XCIpO1xuICAgIGVudGl0eU5hbWVJZHMuc2V0KGVudGl0eU5hbWUsIGVudGl0eUlkKTtcbiAgICBjb25zdCBncm91cE5vZGUgPSBzdmdOb2RlLmFwcGVuZChcImdcIikuYXR0cihcImlkXCIsIGVudGl0eUlkKTtcbiAgICBmaXJzdE9uZSA9IGZpcnN0T25lID09PSB2b2lkIDAgPyBlbnRpdHlJZCA6IGZpcnN0T25lO1xuICAgIGNvbnN0IHRleHRJZCA9IFwidGV4dC1cIiArIGVudGl0eUlkO1xuICAgIGNvbnN0IHRleHROb2RlID0gZ3JvdXBOb2RlLmFwcGVuZChcInRleHRcIikuY2xhc3NlZChcImVyIGVudGl0eUxhYmVsXCIsIHRydWUpLmF0dHIoXCJpZFwiLCB0ZXh0SWQpLmF0dHIoXCJ4XCIsIDApLmF0dHIoXCJ5XCIsIDApLnN0eWxlKFwiZG9taW5hbnQtYmFzZWxpbmVcIiwgXCJtaWRkbGVcIikuc3R5bGUoXCJ0ZXh0LWFuY2hvclwiLCBcIm1pZGRsZVwiKS5zdHlsZShcImZvbnQtZmFtaWx5XCIsIGdldENvbmZpZygpLmZvbnRGYW1pbHkpLnN0eWxlKFwiZm9udC1zaXplXCIsIGNvbmYuZm9udFNpemUgKyBcInB4XCIpLnRleHQoZW50aXRpZXMyW2VudGl0eU5hbWVdLmFsaWFzID8/IGVudGl0eU5hbWUpO1xuICAgIGNvbnN0IHsgd2lkdGg6IGVudGl0eVdpZHRoLCBoZWlnaHQ6IGVudGl0eUhlaWdodCB9ID0gZHJhd0F0dHJpYnV0ZXMoXG4gICAgICBncm91cE5vZGUsXG4gICAgICB0ZXh0Tm9kZSxcbiAgICAgIGVudGl0aWVzMltlbnRpdHlOYW1lXS5hdHRyaWJ1dGVzXG4gICAgKTtcbiAgICBjb25zdCByZWN0Tm9kZSA9IGdyb3VwTm9kZS5pbnNlcnQoXCJyZWN0XCIsIFwiI1wiICsgdGV4dElkKS5jbGFzc2VkKFwiZXIgZW50aXR5Qm94XCIsIHRydWUpLmF0dHIoXCJ4XCIsIDApLmF0dHIoXCJ5XCIsIDApLmF0dHIoXCJ3aWR0aFwiLCBlbnRpdHlXaWR0aCkuYXR0cihcImhlaWdodFwiLCBlbnRpdHlIZWlnaHQpO1xuICAgIGNvbnN0IHJlY3RCQm94ID0gcmVjdE5vZGUubm9kZSgpLmdldEJCb3goKTtcbiAgICBncmFwaC5zZXROb2RlKGVudGl0eUlkLCB7XG4gICAgICB3aWR0aDogcmVjdEJCb3gud2lkdGgsXG4gICAgICBoZWlnaHQ6IHJlY3RCQm94LmhlaWdodCxcbiAgICAgIHNoYXBlOiBcInJlY3RcIixcbiAgICAgIGlkOiBlbnRpdHlJZFxuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIGZpcnN0T25lO1xufTtcbmNvbnN0IGFkanVzdEVudGl0aWVzID0gZnVuY3Rpb24oc3ZnTm9kZSwgZ3JhcGgpIHtcbiAgZ3JhcGgubm9kZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICBpZiAodiAhPT0gdm9pZCAwICYmIGdyYXBoLm5vZGUodikgIT09IHZvaWQgMCkge1xuICAgICAgc3ZnTm9kZS5zZWxlY3QoXCIjXCIgKyB2KS5hdHRyKFxuICAgICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgICBcInRyYW5zbGF0ZShcIiArIChncmFwaC5ub2RlKHYpLnggLSBncmFwaC5ub2RlKHYpLndpZHRoIC8gMikgKyBcIixcIiArIChncmFwaC5ub2RlKHYpLnkgLSBncmFwaC5ub2RlKHYpLmhlaWdodCAvIDIpICsgXCIgKVwiXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG59O1xuY29uc3QgZ2V0RWRnZU5hbWUgPSBmdW5jdGlvbihyZWwpIHtcbiAgcmV0dXJuIChyZWwuZW50aXR5QSArIHJlbC5yb2xlQSArIHJlbC5lbnRpdHlCKS5yZXBsYWNlKC9cXHMvZywgXCJcIik7XG59O1xuY29uc3QgYWRkUmVsYXRpb25zaGlwcyA9IGZ1bmN0aW9uKHJlbGF0aW9uc2hpcHMyLCBnKSB7XG4gIHJlbGF0aW9uc2hpcHMyLmZvckVhY2goZnVuY3Rpb24ocikge1xuICAgIGcuc2V0RWRnZShcbiAgICAgIGVudGl0eU5hbWVJZHMuZ2V0KHIuZW50aXR5QSksXG4gICAgICBlbnRpdHlOYW1lSWRzLmdldChyLmVudGl0eUIpLFxuICAgICAgeyByZWxhdGlvbnNoaXA6IHIgfSxcbiAgICAgIGdldEVkZ2VOYW1lKHIpXG4gICAgKTtcbiAgfSk7XG4gIHJldHVybiByZWxhdGlvbnNoaXBzMjtcbn07XG5sZXQgcmVsQ250ID0gMDtcbmNvbnN0IGRyYXdSZWxhdGlvbnNoaXBGcm9tTGF5b3V0ID0gZnVuY3Rpb24oc3ZnLCByZWwsIGcsIGluc2VydCwgZGlhZ09iaikge1xuICByZWxDbnQrKztcbiAgY29uc3QgZWRnZSA9IGcuZWRnZShcbiAgICBlbnRpdHlOYW1lSWRzLmdldChyZWwuZW50aXR5QSksXG4gICAgZW50aXR5TmFtZUlkcy5nZXQocmVsLmVudGl0eUIpLFxuICAgIGdldEVkZ2VOYW1lKHJlbClcbiAgKTtcbiAgY29uc3QgbGluZUZ1bmN0aW9uID0gbGluZSgpLngoZnVuY3Rpb24oZCkge1xuICAgIHJldHVybiBkLng7XG4gIH0pLnkoZnVuY3Rpb24oZCkge1xuICAgIHJldHVybiBkLnk7XG4gIH0pLmN1cnZlKGN1cnZlQmFzaXMpO1xuICBjb25zdCBzdmdQYXRoID0gc3ZnLmluc2VydChcInBhdGhcIiwgXCIjXCIgKyBpbnNlcnQpLmNsYXNzZWQoXCJlciByZWxhdGlvbnNoaXBMaW5lXCIsIHRydWUpLmF0dHIoXCJkXCIsIGxpbmVGdW5jdGlvbihlZGdlLnBvaW50cykpLnN0eWxlKFwic3Ryb2tlXCIsIGNvbmYuc3Ryb2tlKS5zdHlsZShcImZpbGxcIiwgXCJub25lXCIpO1xuICBpZiAocmVsLnJlbFNwZWMucmVsVHlwZSA9PT0gZGlhZ09iai5kYi5JZGVudGlmaWNhdGlvbi5OT05fSURFTlRJRllJTkcpIHtcbiAgICBzdmdQYXRoLmF0dHIoXCJzdHJva2UtZGFzaGFycmF5XCIsIFwiOCw4XCIpO1xuICB9XG4gIGxldCB1cmwgPSBcIlwiO1xuICBpZiAoY29uZi5hcnJvd01hcmtlckFic29sdXRlKSB7XG4gICAgdXJsID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKC9cXCgvZywgXCJcXFxcKFwiKTtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgvXFwpL2csIFwiXFxcXClcIik7XG4gIH1cbiAgc3dpdGNoIChyZWwucmVsU3BlYy5jYXJkQSkge1xuICAgIGNhc2UgZGlhZ09iai5kYi5DYXJkaW5hbGl0eS5aRVJPX09SX09ORTpcbiAgICAgIHN2Z1BhdGguYXR0cihcIm1hcmtlci1lbmRcIiwgXCJ1cmwoXCIgKyB1cmwgKyBcIiNcIiArIGVyTWFya2Vycy5FUk1hcmtlcnMuWkVST19PUl9PTkVfRU5EICsgXCIpXCIpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBkaWFnT2JqLmRiLkNhcmRpbmFsaXR5LlpFUk9fT1JfTU9SRTpcbiAgICAgIHN2Z1BhdGguYXR0cihcIm1hcmtlci1lbmRcIiwgXCJ1cmwoXCIgKyB1cmwgKyBcIiNcIiArIGVyTWFya2Vycy5FUk1hcmtlcnMuWkVST19PUl9NT1JFX0VORCArIFwiKVwiKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgZGlhZ09iai5kYi5DYXJkaW5hbGl0eS5PTkVfT1JfTU9SRTpcbiAgICAgIHN2Z1BhdGguYXR0cihcIm1hcmtlci1lbmRcIiwgXCJ1cmwoXCIgKyB1cmwgKyBcIiNcIiArIGVyTWFya2Vycy5FUk1hcmtlcnMuT05FX09SX01PUkVfRU5EICsgXCIpXCIpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBkaWFnT2JqLmRiLkNhcmRpbmFsaXR5Lk9OTFlfT05FOlxuICAgICAgc3ZnUGF0aC5hdHRyKFwibWFya2VyLWVuZFwiLCBcInVybChcIiArIHVybCArIFwiI1wiICsgZXJNYXJrZXJzLkVSTWFya2Vycy5PTkxZX09ORV9FTkQgKyBcIilcIik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIGRpYWdPYmouZGIuQ2FyZGluYWxpdHkuTURfUEFSRU5UOlxuICAgICAgc3ZnUGF0aC5hdHRyKFwibWFya2VyLWVuZFwiLCBcInVybChcIiArIHVybCArIFwiI1wiICsgZXJNYXJrZXJzLkVSTWFya2Vycy5NRF9QQVJFTlRfRU5EICsgXCIpXCIpO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgc3dpdGNoIChyZWwucmVsU3BlYy5jYXJkQikge1xuICAgIGNhc2UgZGlhZ09iai5kYi5DYXJkaW5hbGl0eS5aRVJPX09SX09ORTpcbiAgICAgIHN2Z1BhdGguYXR0cihcbiAgICAgICAgXCJtYXJrZXItc3RhcnRcIixcbiAgICAgICAgXCJ1cmwoXCIgKyB1cmwgKyBcIiNcIiArIGVyTWFya2Vycy5FUk1hcmtlcnMuWkVST19PUl9PTkVfU1RBUlQgKyBcIilcIlxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgZGlhZ09iai5kYi5DYXJkaW5hbGl0eS5aRVJPX09SX01PUkU6XG4gICAgICBzdmdQYXRoLmF0dHIoXG4gICAgICAgIFwibWFya2VyLXN0YXJ0XCIsXG4gICAgICAgIFwidXJsKFwiICsgdXJsICsgXCIjXCIgKyBlck1hcmtlcnMuRVJNYXJrZXJzLlpFUk9fT1JfTU9SRV9TVEFSVCArIFwiKVwiXG4gICAgICApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBkaWFnT2JqLmRiLkNhcmRpbmFsaXR5Lk9ORV9PUl9NT1JFOlxuICAgICAgc3ZnUGF0aC5hdHRyKFxuICAgICAgICBcIm1hcmtlci1zdGFydFwiLFxuICAgICAgICBcInVybChcIiArIHVybCArIFwiI1wiICsgZXJNYXJrZXJzLkVSTWFya2Vycy5PTkVfT1JfTU9SRV9TVEFSVCArIFwiKVwiXG4gICAgICApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBkaWFnT2JqLmRiLkNhcmRpbmFsaXR5Lk9OTFlfT05FOlxuICAgICAgc3ZnUGF0aC5hdHRyKFwibWFya2VyLXN0YXJ0XCIsIFwidXJsKFwiICsgdXJsICsgXCIjXCIgKyBlck1hcmtlcnMuRVJNYXJrZXJzLk9OTFlfT05FX1NUQVJUICsgXCIpXCIpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBkaWFnT2JqLmRiLkNhcmRpbmFsaXR5Lk1EX1BBUkVOVDpcbiAgICAgIHN2Z1BhdGguYXR0cihcIm1hcmtlci1zdGFydFwiLCBcInVybChcIiArIHVybCArIFwiI1wiICsgZXJNYXJrZXJzLkVSTWFya2Vycy5NRF9QQVJFTlRfU1RBUlQgKyBcIilcIik7XG4gICAgICBicmVhaztcbiAgfVxuICBjb25zdCBsZW4gPSBzdmdQYXRoLm5vZGUoKS5nZXRUb3RhbExlbmd0aCgpO1xuICBjb25zdCBsYWJlbFBvaW50ID0gc3ZnUGF0aC5ub2RlKCkuZ2V0UG9pbnRBdExlbmd0aChsZW4gKiAwLjUpO1xuICBjb25zdCBsYWJlbElkID0gXCJyZWxcIiArIHJlbENudDtcbiAgY29uc3QgbGFiZWxOb2RlID0gc3ZnLmFwcGVuZChcInRleHRcIikuY2xhc3NlZChcImVyIHJlbGF0aW9uc2hpcExhYmVsXCIsIHRydWUpLmF0dHIoXCJpZFwiLCBsYWJlbElkKS5hdHRyKFwieFwiLCBsYWJlbFBvaW50LngpLmF0dHIoXCJ5XCIsIGxhYmVsUG9pbnQueSkuc3R5bGUoXCJ0ZXh0LWFuY2hvclwiLCBcIm1pZGRsZVwiKS5zdHlsZShcImRvbWluYW50LWJhc2VsaW5lXCIsIFwibWlkZGxlXCIpLnN0eWxlKFwiZm9udC1mYW1pbHlcIiwgZ2V0Q29uZmlnKCkuZm9udEZhbWlseSkuc3R5bGUoXCJmb250LXNpemVcIiwgY29uZi5mb250U2l6ZSArIFwicHhcIikudGV4dChyZWwucm9sZUEpO1xuICBjb25zdCBsYWJlbEJCb3ggPSBsYWJlbE5vZGUubm9kZSgpLmdldEJCb3goKTtcbiAgc3ZnLmluc2VydChcInJlY3RcIiwgXCIjXCIgKyBsYWJlbElkKS5jbGFzc2VkKFwiZXIgcmVsYXRpb25zaGlwTGFiZWxCb3hcIiwgdHJ1ZSkuYXR0cihcInhcIiwgbGFiZWxQb2ludC54IC0gbGFiZWxCQm94LndpZHRoIC8gMikuYXR0cihcInlcIiwgbGFiZWxQb2ludC55IC0gbGFiZWxCQm94LmhlaWdodCAvIDIpLmF0dHIoXCJ3aWR0aFwiLCBsYWJlbEJCb3gud2lkdGgpLmF0dHIoXCJoZWlnaHRcIiwgbGFiZWxCQm94LmhlaWdodCk7XG59O1xuY29uc3QgZHJhdyA9IGZ1bmN0aW9uKHRleHQsIGlkLCBfdmVyc2lvbiwgZGlhZ09iaikge1xuICBjb25mID0gZ2V0Q29uZmlnKCkuZXI7XG4gIGxvZy5pbmZvKFwiRHJhd2luZyBFUiBkaWFncmFtXCIpO1xuICBjb25zdCBzZWN1cml0eUxldmVsID0gZ2V0Q29uZmlnKCkuc2VjdXJpdHlMZXZlbDtcbiAgbGV0IHNhbmRib3hFbGVtZW50O1xuICBpZiAoc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIpIHtcbiAgICBzYW5kYm94RWxlbWVudCA9IHNlbGVjdChcIiNpXCIgKyBpZCk7XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gc2VsZWN0KHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50LmJvZHkpIDogc2VsZWN0KFwiYm9keVwiKTtcbiAgY29uc3Qgc3ZnID0gcm9vdC5zZWxlY3QoYFtpZD0nJHtpZH0nXWApO1xuICBlck1hcmtlcnMuaW5zZXJ0TWFya2VycyhzdmcsIGNvbmYpO1xuICBsZXQgZztcbiAgZyA9IG5ldyBncmFwaGxpYi5HcmFwaCh7XG4gICAgbXVsdGlncmFwaDogdHJ1ZSxcbiAgICBkaXJlY3RlZDogdHJ1ZSxcbiAgICBjb21wb3VuZDogZmFsc2VcbiAgfSkuc2V0R3JhcGgoe1xuICAgIHJhbmtkaXI6IGNvbmYubGF5b3V0RGlyZWN0aW9uLFxuICAgIG1hcmdpbng6IDIwLFxuICAgIG1hcmdpbnk6IDIwLFxuICAgIG5vZGVzZXA6IDEwMCxcbiAgICBlZGdlc2VwOiAxMDAsXG4gICAgcmFua3NlcDogMTAwXG4gIH0pLnNldERlZmF1bHRFZGdlTGFiZWwoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9KTtcbiAgY29uc3QgZmlyc3RFbnRpdHkgPSBkcmF3RW50aXRpZXMoc3ZnLCBkaWFnT2JqLmRiLmdldEVudGl0aWVzKCksIGcpO1xuICBjb25zdCByZWxhdGlvbnNoaXBzMiA9IGFkZFJlbGF0aW9uc2hpcHMoZGlhZ09iai5kYi5nZXRSZWxhdGlvbnNoaXBzKCksIGcpO1xuICBsYXlvdXQoZyk7XG4gIGFkanVzdEVudGl0aWVzKHN2ZywgZyk7XG4gIHJlbGF0aW9uc2hpcHMyLmZvckVhY2goZnVuY3Rpb24ocmVsKSB7XG4gICAgZHJhd1JlbGF0aW9uc2hpcEZyb21MYXlvdXQoc3ZnLCByZWwsIGcsIGZpcnN0RW50aXR5LCBkaWFnT2JqKTtcbiAgfSk7XG4gIGNvbnN0IHBhZGRpbmcgPSBjb25mLmRpYWdyYW1QYWRkaW5nO1xuICB1dGlscy5pbnNlcnRUaXRsZShzdmcsIFwiZW50aXR5VGl0bGVUZXh0XCIsIGNvbmYudGl0bGVUb3BNYXJnaW4sIGRpYWdPYmouZGIuZ2V0RGlhZ3JhbVRpdGxlKCkpO1xuICBjb25zdCBzdmdCb3VuZHMgPSBzdmcubm9kZSgpLmdldEJCb3goKTtcbiAgY29uc3Qgd2lkdGggPSBzdmdCb3VuZHMud2lkdGggKyBwYWRkaW5nICogMjtcbiAgY29uc3QgaGVpZ2h0ID0gc3ZnQm91bmRzLmhlaWdodCArIHBhZGRpbmcgKiAyO1xuICBjb25maWd1cmVTdmdTaXplKHN2ZywgaGVpZ2h0LCB3aWR0aCwgY29uZi51c2VNYXhXaWR0aCk7XG4gIHN2Zy5hdHRyKFwidmlld0JveFwiLCBgJHtzdmdCb3VuZHMueCAtIHBhZGRpbmd9ICR7c3ZnQm91bmRzLnkgLSBwYWRkaW5nfSAke3dpZHRofSAke2hlaWdodH1gKTtcbn07XG5jb25zdCBNRVJNQUlEX0VSRElBR1JBTV9VVUlEID0gXCIyOGU5ZjlkYi0zYzhkLTVhYTUtOWZhZi00NDI4NmFlNTkzN2NcIjtcbmZ1bmN0aW9uIGdlbmVyYXRlSWQoc3RyID0gXCJcIiwgcHJlZml4ID0gXCJcIikge1xuICBjb25zdCBzaW1wbGlmaWVkU3RyID0gc3RyLnJlcGxhY2UoQkFEX0lEX0NIQVJTX1JFR0VYUCwgXCJcIik7XG4gIHJldHVybiBgJHtzdHJXaXRoSHlwaGVuKHByZWZpeCl9JHtzdHJXaXRoSHlwaGVuKHNpbXBsaWZpZWRTdHIpfSR7djUoXG4gICAgc3RyLFxuICAgIE1FUk1BSURfRVJESUFHUkFNX1VVSURcbiAgKX1gO1xufVxuZnVuY3Rpb24gc3RyV2l0aEh5cGhlbihzdHIgPSBcIlwiKSB7XG4gIHJldHVybiBzdHIubGVuZ3RoID4gMCA/IGAke3N0cn0tYCA6IFwiXCI7XG59XG5jb25zdCBlclJlbmRlcmVyID0ge1xuICBzZXRDb25mLFxuICBkcmF3XG59O1xuY29uc3QgZ2V0U3R5bGVzID0gKG9wdGlvbnMpID0+IGBcbiAgLmVudGl0eUJveCB7XG4gICAgZmlsbDogJHtvcHRpb25zLm1haW5Ca2d9O1xuICAgIHN0cm9rZTogJHtvcHRpb25zLm5vZGVCb3JkZXJ9O1xuICB9XG5cbiAgLmF0dHJpYnV0ZUJveE9kZCB7XG4gICAgZmlsbDogJHtvcHRpb25zLmF0dHJpYnV0ZUJhY2tncm91bmRDb2xvck9kZH07XG4gICAgc3Ryb2tlOiAke29wdGlvbnMubm9kZUJvcmRlcn07XG4gIH1cblxuICAuYXR0cmlidXRlQm94RXZlbiB7XG4gICAgZmlsbDogICR7b3B0aW9ucy5hdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JFdmVufTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5ub2RlQm9yZGVyfTtcbiAgfVxuXG4gIC5yZWxhdGlvbnNoaXBMYWJlbEJveCB7XG4gICAgZmlsbDogJHtvcHRpb25zLnRlcnRpYXJ5Q29sb3J9O1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke29wdGlvbnMudGVydGlhcnlDb2xvcn07XG4gICAgICByZWN0IHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuICB9XG5cbiAgICAucmVsYXRpb25zaGlwTGluZSB7XG4gICAgICBzdHJva2U6ICR7b3B0aW9ucy5saW5lQ29sb3J9O1xuICAgIH1cblxuICAuZW50aXR5VGl0bGVUZXh0IHtcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmaWxsOiAke29wdGlvbnMudGV4dENvbG9yfTtcbiAgfSAgICBcbiAgI01EX1BBUkVOVF9TVEFSVCB7XG4gICAgZmlsbDogI2Y1ZjVmNSAhaW1wb3J0YW50O1xuICAgIHN0cm9rZTogJHtvcHRpb25zLmxpbmVDb2xvcn0gIWltcG9ydGFudDtcbiAgICBzdHJva2Utd2lkdGg6IDE7XG4gIH1cbiAgI01EX1BBUkVOVF9FTkQge1xuICAgIGZpbGw6ICNmNWY1ZjUgIWltcG9ydGFudDtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5saW5lQ29sb3J9ICFpbXBvcnRhbnQ7XG4gICAgc3Ryb2tlLXdpZHRoOiAxO1xuICB9XG4gIFxuYDtcbmNvbnN0IGVyU3R5bGVzID0gZ2V0U3R5bGVzO1xuY29uc3QgZGlhZ3JhbSA9IHtcbiAgcGFyc2VyOiBlclBhcnNlcixcbiAgZGI6IGVyRGIsXG4gIHJlbmRlcmVyOiBlclJlbmRlcmVyLFxuICBzdHlsZXM6IGVyU3R5bGVzXG59O1xuZXhwb3J0IHtcbiAgZGlhZ3JhbVxufTtcbiIsCiAgICAiaW1wb3J0IHsgYyBhcyBnZXRDb25maWcsIHMgYXMgc2V0QWNjVGl0bGUsIGcgYXMgZ2V0QWNjVGl0bGUsIGEgYXMgZ2V0QWNjRGVzY3JpcHRpb24sIGIgYXMgc2V0QWNjRGVzY3JpcHRpb24sIHEgYXMgc2V0RGlhZ3JhbVRpdGxlLCB0IGFzIGdldERpYWdyYW1UaXRsZSwgbCBhcyBsb2csIGUgYXMgY29tbW9uLCB2IGFzIGNsZWFyJDIsIHkgYXMgcmFuZG9tLCB1IGFzIHV0aWxzLCB6IGFzIHNldHVwR3JhcGhWaWV3Ym94IH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0IH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgXCJ0cy1kZWRlbnRcIjtcbmltcG9ydCBcImRheWpzXCI7XG5pbXBvcnQgXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IFwiZG9tcHVyaWZ5XCI7XG5pbXBvcnQgXCJraHJvbWFcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZW1vaXplLmpzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVyZ2UuanNcIjtcbmltcG9ydCBcInN0eWxpc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL2lzRW1wdHkuanNcIjtcbnZhciBwYXJzZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIG8gPSBmdW5jdGlvbihrLCB2LCBvMiwgbCkge1xuICAgIGZvciAobzIgPSBvMiB8fCB7fSwgbCA9IGsubGVuZ3RoOyBsLS07IG8yW2tbbF1dID0gdilcbiAgICAgIDtcbiAgICByZXR1cm4gbzI7XG4gIH0sICRWMCA9IFsxLCAzXSwgJFYxID0gWzEsIDZdLCAkVjIgPSBbMSwgNF0sICRWMyA9IFsxLCA1XSwgJFY0ID0gWzIsIDVdLCAkVjUgPSBbMSwgMTJdLCAkVjYgPSBbNSwgNywgMTMsIDE5LCAyMSwgMjMsIDI0LCAyNiwgMjgsIDMxLCAzNywgNDAsIDQ3XSwgJFY3ID0gWzcsIDEzLCAxOSwgMjEsIDIzLCAyNCwgMjYsIDI4LCAzMSwgMzcsIDQwXSwgJFY4ID0gWzcsIDEyLCAxMywgMTksIDIxLCAyMywgMjQsIDI2LCAyOCwgMzEsIDM3LCA0MF0sICRWOSA9IFs3LCAxMywgNDddLCAkVmEgPSBbMSwgNDJdLCAkVmIgPSBbMSwgNDFdLCAkVmMgPSBbNywgMTMsIDI5LCAzMiwgMzUsIDM4LCA0N10sICRWZCA9IFsxLCA1NV0sICRWZSA9IFsxLCA1Nl0sICRWZiA9IFsxLCA1N10sICRWZyA9IFs3LCAxMywgMzIsIDM1LCA0MiwgNDddO1xuICB2YXIgcGFyc2VyMiA9IHtcbiAgICB0cmFjZTogZnVuY3Rpb24gdHJhY2UoKSB7XG4gICAgfSxcbiAgICB5eToge30sXG4gICAgc3ltYm9sc186IHsgXCJlcnJvclwiOiAyLCBcInN0YXJ0XCI6IDMsIFwiZW9sXCI6IDQsIFwiR0dcIjogNSwgXCJkb2N1bWVudFwiOiA2LCBcIkVPRlwiOiA3LCBcIjpcIjogOCwgXCJESVJcIjogOSwgXCJvcHRpb25zXCI6IDEwLCBcImJvZHlcIjogMTEsIFwiT1BUXCI6IDEyLCBcIk5MXCI6IDEzLCBcImxpbmVcIjogMTQsIFwic3RhdGVtZW50XCI6IDE1LCBcImNvbW1pdFN0YXRlbWVudFwiOiAxNiwgXCJtZXJnZVN0YXRlbWVudFwiOiAxNywgXCJjaGVycnlQaWNrU3RhdGVtZW50XCI6IDE4LCBcImFjY190aXRsZVwiOiAxOSwgXCJhY2NfdGl0bGVfdmFsdWVcIjogMjAsIFwiYWNjX2Rlc2NyXCI6IDIxLCBcImFjY19kZXNjcl92YWx1ZVwiOiAyMiwgXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCI6IDIzLCBcInNlY3Rpb25cIjogMjQsIFwiYnJhbmNoU3RhdGVtZW50XCI6IDI1LCBcIkNIRUNLT1VUXCI6IDI2LCBcInJlZlwiOiAyNywgXCJCUkFOQ0hcIjogMjgsIFwiT1JERVJcIjogMjksIFwiTlVNXCI6IDMwLCBcIkNIRVJSWV9QSUNLXCI6IDMxLCBcIkNPTU1JVF9JRFwiOiAzMiwgXCJTVFJcIjogMzMsIFwiUEFSRU5UX0NPTU1JVFwiOiAzNCwgXCJDT01NSVRfVEFHXCI6IDM1LCBcIkVNUFRZU1RSXCI6IDM2LCBcIk1FUkdFXCI6IDM3LCBcIkNPTU1JVF9UWVBFXCI6IDM4LCBcImNvbW1pdFR5cGVcIjogMzksIFwiQ09NTUlUXCI6IDQwLCBcImNvbW1pdF9hcmdcIjogNDEsIFwiQ09NTUlUX01TR1wiOiA0MiwgXCJOT1JNQUxcIjogNDMsIFwiUkVWRVJTRVwiOiA0NCwgXCJISUdITElHSFRcIjogNDUsIFwiSURcIjogNDYsIFwiO1wiOiA0NywgXCIkYWNjZXB0XCI6IDAsIFwiJGVuZFwiOiAxIH0sXG4gICAgdGVybWluYWxzXzogeyAyOiBcImVycm9yXCIsIDU6IFwiR0dcIiwgNzogXCJFT0ZcIiwgODogXCI6XCIsIDk6IFwiRElSXCIsIDEyOiBcIk9QVFwiLCAxMzogXCJOTFwiLCAxOTogXCJhY2NfdGl0bGVcIiwgMjA6IFwiYWNjX3RpdGxlX3ZhbHVlXCIsIDIxOiBcImFjY19kZXNjclwiLCAyMjogXCJhY2NfZGVzY3JfdmFsdWVcIiwgMjM6IFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiLCAyNDogXCJzZWN0aW9uXCIsIDI2OiBcIkNIRUNLT1VUXCIsIDI4OiBcIkJSQU5DSFwiLCAyOTogXCJPUkRFUlwiLCAzMDogXCJOVU1cIiwgMzE6IFwiQ0hFUlJZX1BJQ0tcIiwgMzI6IFwiQ09NTUlUX0lEXCIsIDMzOiBcIlNUUlwiLCAzNDogXCJQQVJFTlRfQ09NTUlUXCIsIDM1OiBcIkNPTU1JVF9UQUdcIiwgMzY6IFwiRU1QVFlTVFJcIiwgMzc6IFwiTUVSR0VcIiwgMzg6IFwiQ09NTUlUX1RZUEVcIiwgNDA6IFwiQ09NTUlUXCIsIDQyOiBcIkNPTU1JVF9NU0dcIiwgNDM6IFwiTk9STUFMXCIsIDQ0OiBcIlJFVkVSU0VcIiwgNDU6IFwiSElHSExJR0hUXCIsIDQ2OiBcIklEXCIsIDQ3OiBcIjtcIiB9LFxuICAgIHByb2R1Y3Rpb25zXzogWzAsIFszLCAyXSwgWzMsIDNdLCBbMywgNF0sIFszLCA1XSwgWzYsIDBdLCBbNiwgMl0sIFsxMCwgMl0sIFsxMCwgMV0sIFsxMSwgMF0sIFsxMSwgMl0sIFsxNCwgMl0sIFsxNCwgMV0sIFsxNSwgMV0sIFsxNSwgMV0sIFsxNSwgMV0sIFsxNSwgMl0sIFsxNSwgMl0sIFsxNSwgMV0sIFsxNSwgMV0sIFsxNSwgMV0sIFsxNSwgMl0sIFsyNSwgMl0sIFsyNSwgNF0sIFsxOCwgM10sIFsxOCwgNV0sIFsxOCwgNV0sIFsxOCwgN10sIFsxOCwgN10sIFsxOCwgNV0sIFsxOCwgNV0sIFsxOCwgNV0sIFsxOCwgN10sIFsxOCwgN10sIFsxOCwgN10sIFsxOCwgN10sIFsxNywgMl0sIFsxNywgNF0sIFsxNywgNF0sIFsxNywgNF0sIFsxNywgNl0sIFsxNywgNl0sIFsxNywgNl0sIFsxNywgNl0sIFsxNywgNl0sIFsxNywgNl0sIFsxNywgOF0sIFsxNywgOF0sIFsxNywgOF0sIFsxNywgOF0sIFsxNywgOF0sIFsxNywgOF0sIFsxNiwgMl0sIFsxNiwgM10sIFsxNiwgM10sIFsxNiwgNV0sIFsxNiwgNV0sIFsxNiwgM10sIFsxNiwgNV0sIFsxNiwgNV0sIFsxNiwgNV0sIFsxNiwgNV0sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgM10sIFsxNiwgNV0sIFsxNiwgNV0sIFsxNiwgNV0sIFsxNiwgNV0sIFsxNiwgNV0sIFsxNiwgNV0sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgN10sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFsxNiwgOV0sIFs0MSwgMF0sIFs0MSwgMV0sIFszOSwgMV0sIFszOSwgMV0sIFszOSwgMV0sIFsyNywgMV0sIFsyNywgMV0sIFs0LCAxXSwgWzQsIDFdLCBbNCwgMV1dLFxuICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eXRleHQsIHl5bGVuZywgeXlsaW5lbm8sIHl5LCB5eXN0YXRlLCAkJCwgXyQpIHtcbiAgICAgIHZhciAkMCA9ICQkLmxlbmd0aCAtIDE7XG4gICAgICBzd2l0Y2ggKHl5c3RhdGUpIHtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHJldHVybiAkJFskMF07XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICByZXR1cm4gJCRbJDAgLSAxXTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHl5LnNldERpcmVjdGlvbigkJFskMCAtIDNdKTtcbiAgICAgICAgICByZXR1cm4gJCRbJDAgLSAxXTtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIHl5LnNldE9wdGlvbnMoJCRbJDAgLSAxXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgJCRbJDAgLSAxXSArPSAkJFskMF07XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA5OlxuICAgICAgICAgIHRoaXMuJCA9IFtdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCgkJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0udHJpbSgpO1xuICAgICAgICAgIHl5LnNldEFjY1RpdGxlKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTc6XG4gICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5zZXRBY2NEZXNjcmlwdGlvbih0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgIHl5LmFkZFNlY3Rpb24oJCRbJDBdLnN1YnN0cig4KSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnN1YnN0cig4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICB5eS5jaGVja291dCgkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgIHl5LmJyYW5jaCgkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgIHl5LmJyYW5jaCgkJFskMCAtIDJdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgIHl5LmNoZXJyeVBpY2soJCRbJDBdLCBcIlwiLCB2b2lkIDApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIHl5LmNoZXJyeVBpY2soJCRbJDAgLSAyXSwgXCJcIiwgdm9pZCAwLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIHl5LmNoZXJyeVBpY2soJCRbJDAgLSAyXSwgXCJcIiwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICB5eS5jaGVycnlQaWNrKCQkWyQwIC0gNF0sIFwiXCIsICQkWyQwXSwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjg6XG4gICAgICAgICAgeXkuY2hlcnJ5UGljaygkJFskMCAtIDRdLCBcIlwiLCAkJFskMCAtIDJdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgIHl5LmNoZXJyeVBpY2soJCRbJDBdLCBcIlwiLCAkJFskMCAtIDJdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICB5eS5jaGVycnlQaWNrKCQkWyQwXSwgXCJcIiwgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgeXkuY2hlcnJ5UGljaygkJFskMCAtIDJdLCBcIlwiLCBcIlwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICB5eS5jaGVycnlQaWNrKCQkWyQwIC0gNF0sIFwiXCIsIFwiXCIsICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMzOlxuICAgICAgICAgIHl5LmNoZXJyeVBpY2soJCRbJDAgLSA0XSwgXCJcIiwgXCJcIiwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICB5eS5jaGVycnlQaWNrKCQkWyQwIC0gMl0sIFwiXCIsICQkWyQwIC0gNF0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzU6XG4gICAgICAgICAgeXkuY2hlcnJ5UGljaygkJFskMCAtIDJdLCBcIlwiLCBcIlwiLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM2OlxuICAgICAgICAgIHl5Lm1lcmdlKCQkWyQwXSwgXCJcIiwgXCJcIiwgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgeXkubWVyZ2UoJCRbJDAgLSAyXSwgJCRbJDBdLCBcIlwiLCBcIlwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzODpcbiAgICAgICAgICB5eS5tZXJnZSgkJFskMCAtIDJdLCBcIlwiLCAkJFskMF0sIFwiXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM5OlxuICAgICAgICAgIHl5Lm1lcmdlKCQkWyQwIC0gMl0sIFwiXCIsIFwiXCIsICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDA6XG4gICAgICAgICAgeXkubWVyZ2UoJCRbJDAgLSA0XSwgJCRbJDBdLCBcIlwiLCAkJFskMCAtIDJdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MTpcbiAgICAgICAgICB5eS5tZXJnZSgkJFskMCAtIDRdLCBcIlwiLCAkJFskMF0sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQyOlxuICAgICAgICAgIHl5Lm1lcmdlKCQkWyQwIC0gNF0sIFwiXCIsICQkWyQwIC0gMl0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDM6XG4gICAgICAgICAgeXkubWVyZ2UoJCRbJDAgLSA0XSwgJCRbJDAgLSAyXSwgJCRbJDBdLCBcIlwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NDpcbiAgICAgICAgICB5eS5tZXJnZSgkJFskMCAtIDRdLCAkJFskMCAtIDJdLCBcIlwiLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ1OlxuICAgICAgICAgIHl5Lm1lcmdlKCQkWyQwIC0gNF0sICQkWyQwXSwgJCRbJDAgLSAyXSwgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDY6XG4gICAgICAgICAgeXkubWVyZ2UoJCRbJDAgLSA2XSwgJCRbJDAgLSA0XSwgJCRbJDAgLSAyXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NzpcbiAgICAgICAgICB5eS5tZXJnZSgkJFskMCAtIDZdLCAkJFskMF0sICQkWyQwIC0gNF0sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ4OlxuICAgICAgICAgIHl5Lm1lcmdlKCQkWyQwIC0gNl0sICQkWyQwIC0gNF0sICQkWyQwXSwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDk6XG4gICAgICAgICAgeXkubWVyZ2UoJCRbJDAgLSA2XSwgJCRbJDAgLSAyXSwgJCRbJDAgLSA0XSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1MDpcbiAgICAgICAgICB5eS5tZXJnZSgkJFskMCAtIDZdLCAkJFskMF0sICQkWyQwIC0gMl0sICQkWyQwIC0gNF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDUxOlxuICAgICAgICAgIHl5Lm1lcmdlKCQkWyQwIC0gNl0sICQkWyQwIC0gMl0sICQkWyQwXSwgJCRbJDAgLSA0XSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTI6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTM6XG4gICAgICAgICAgeXkuY29tbWl0KFwiXCIsIFwiXCIsIHl5LmNvbW1pdFR5cGUuTk9STUFMLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU0OlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCBcIlwiLCAkJFskMF0sIFwiXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU1OlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCBcIlwiLCAkJFskMF0sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU2OlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCBcIlwiLCAkJFskMCAtIDJdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU3OlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCAkJFskMF0sIHl5LmNvbW1pdFR5cGUuTk9STUFMLCBcIlwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1ODpcbiAgICAgICAgICB5eS5jb21taXQoXCJcIiwgJCRbJDAgLSAyXSwgeXkuY29tbWl0VHlwZS5OT1JNQUwsICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTk6XG4gICAgICAgICAgeXkuY29tbWl0KFwiXCIsICQkWyQwXSwgeXkuY29tbWl0VHlwZS5OT1JNQUwsICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDYwOlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCAkJFskMCAtIDJdLCAkJFskMF0sIFwiXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDYxOlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCAkJFskMF0sICQkWyQwIC0gMl0sIFwiXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDYyOlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCAkJFskMCAtIDRdLCAkJFskMCAtIDJdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDYzOlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCAkJFskMCAtIDRdLCAkJFskMF0sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY0OlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCAkJFskMCAtIDJdLCAkJFskMCAtIDRdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY1OlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCAkJFskMF0sICQkWyQwIC0gNF0sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY2OlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCAkJFskMF0sICQkWyQwIC0gMl0sICQkWyQwIC0gNF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY3OlxuICAgICAgICAgIHl5LmNvbW1pdChcIlwiLCAkJFskMCAtIDJdLCAkJFskMF0sICQkWyQwIC0gNF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY4OlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMF0sIFwiXCIsIHl5LmNvbW1pdFR5cGUuTk9STUFMLCBcIlwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2OTpcbiAgICAgICAgICB5eS5jb21taXQoJCRbJDBdLCBcIlwiLCB5eS5jb21taXRUeXBlLk5PUk1BTCwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzA6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gMl0sIFwiXCIsIHl5LmNvbW1pdFR5cGUuTk9STUFMLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDcxOlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMCAtIDJdLCBcIlwiLCAkJFskMF0sIFwiXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDcyOlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMF0sIFwiXCIsICQkWyQwIC0gMl0sIFwiXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDczOlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMF0sICQkWyQwIC0gMl0sIHl5LmNvbW1pdFR5cGUuTk9STUFMLCBcIlwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3NDpcbiAgICAgICAgICB5eS5jb21taXQoJCRbJDAgLSAyXSwgJCRbJDBdLCB5eS5jb21taXRUeXBlLk5PUk1BTCwgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzU6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNF0sIFwiXCIsICQkWyQwIC0gMl0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzY6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNF0sIFwiXCIsICQkWyQwXSwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzc6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gMl0sIFwiXCIsICQkWyQwIC0gNF0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzg6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwXSwgXCJcIiwgJCRbJDAgLSA0XSwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzk6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwXSwgXCJcIiwgJCRbJDAgLSAyXSwgJCRbJDAgLSA0XSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODA6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gMl0sIFwiXCIsICQkWyQwXSwgJCRbJDAgLSA0XSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODE6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNF0sICQkWyQwXSwgJCRbJDAgLSAyXSwgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODI6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNF0sICQkWyQwIC0gMl0sICQkWyQwXSwgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODM6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gMl0sICQkWyQwXSwgJCRbJDAgLSA0XSwgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODQ6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwXSwgJCRbJDAgLSAyXSwgJCRbJDAgLSA0XSwgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODU6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwXSwgJCRbJDAgLSA0XSwgJCRbJDAgLSAyXSwgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODY6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gMl0sICQkWyQwIC0gNF0sICQkWyQwXSwgXCJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODc6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNF0sICQkWyQwXSwgeXkuY29tbWl0VHlwZS5OT1JNQUwsICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg4OlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMCAtIDRdLCAkJFskMCAtIDJdLCB5eS5jb21taXRUeXBlLk5PUk1BTCwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4OTpcbiAgICAgICAgICB5eS5jb21taXQoJCRbJDAgLSAyXSwgJCRbJDBdLCB5eS5jb21taXRUeXBlLk5PUk1BTCwgJCRbJDAgLSA0XSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTA6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwXSwgJCRbJDAgLSAyXSwgeXkuY29tbWl0VHlwZS5OT1JNQUwsICQkWyQwIC0gNF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDkxOlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMF0sICQkWyQwIC0gNF0sIHl5LmNvbW1pdFR5cGUuTk9STUFMLCAkJFskMCAtIDJdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA5MjpcbiAgICAgICAgICB5eS5jb21taXQoJCRbJDAgLSAyXSwgJCRbJDAgLSA0XSwgeXkuY29tbWl0VHlwZS5OT1JNQUwsICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTM6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNl0sICQkWyQwIC0gNF0sICQkWyQwIC0gMl0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTQ6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNl0sICQkWyQwIC0gNF0sICQkWyQwXSwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTU6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNl0sICQkWyQwIC0gMl0sICQkWyQwIC0gNF0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTY6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNl0sICQkWyQwXSwgJCRbJDAgLSA0XSwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTc6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNl0sICQkWyQwIC0gMl0sICQkWyQwXSwgJCRbJDAgLSA0XSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTg6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNl0sICQkWyQwXSwgJCRbJDAgLSAyXSwgJCRbJDAgLSA0XSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTk6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gNF0sICQkWyQwIC0gNl0sICQkWyQwIC0gMl0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTAwOlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMCAtIDRdLCAkJFskMCAtIDZdLCAkJFskMF0sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEwMTpcbiAgICAgICAgICB5eS5jb21taXQoJCRbJDAgLSAyXSwgJCRbJDAgLSA2XSwgJCRbJDAgLSA0XSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDI6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwXSwgJCRbJDAgLSA2XSwgJCRbJDAgLSA0XSwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTAzOlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMCAtIDJdLCAkJFskMCAtIDZdLCAkJFskMF0sICQkWyQwIC0gNF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEwNDpcbiAgICAgICAgICB5eS5jb21taXQoJCRbJDBdLCAkJFskMCAtIDZdLCAkJFskMCAtIDJdLCAkJFskMCAtIDRdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDU6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwXSwgJCRbJDAgLSA0XSwgJCRbJDAgLSAyXSwgJCRbJDAgLSA2XSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTA2OlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMCAtIDJdLCAkJFskMCAtIDRdLCAkJFskMF0sICQkWyQwIC0gNl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEwNzpcbiAgICAgICAgICB5eS5jb21taXQoJCRbJDBdLCAkJFskMCAtIDJdLCAkJFskMCAtIDRdLCAkJFskMCAtIDZdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDg6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gMl0sICQkWyQwXSwgJCRbJDAgLSA0XSwgJCRbJDAgLSA2XSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTA5OlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMCAtIDRdLCAkJFskMCAtIDJdLCAkJFskMF0sICQkWyQwIC0gNl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExMDpcbiAgICAgICAgICB5eS5jb21taXQoJCRbJDAgLSA0XSwgJCRbJDBdLCAkJFskMCAtIDJdLCAkJFskMCAtIDZdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTE6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwIC0gMl0sICQkWyQwIC0gNF0sICQkWyQwIC0gNl0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTEyOlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMF0sICQkWyQwIC0gNF0sICQkWyQwIC0gNl0sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExMzpcbiAgICAgICAgICB5eS5jb21taXQoJCRbJDAgLSAyXSwgJCRbJDBdLCAkJFskMCAtIDZdLCAkJFskMCAtIDRdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTQ6XG4gICAgICAgICAgeXkuY29tbWl0KCQkWyQwXSwgJCRbJDAgLSAyXSwgJCRbJDAgLSA2XSwgJCRbJDAgLSA0XSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTE1OlxuICAgICAgICAgIHl5LmNvbW1pdCgkJFskMCAtIDRdLCAkJFskMCAtIDJdLCAkJFskMCAtIDZdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExNjpcbiAgICAgICAgICB5eS5jb21taXQoJCRbJDAgLSA0XSwgJCRbJDBdLCAkJFskMCAtIDZdLCAkJFskMCAtIDJdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTc6XG4gICAgICAgICAgdGhpcy4kID0gXCJcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTg6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExOTpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5jb21taXRUeXBlLk5PUk1BTDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMjA6XG4gICAgICAgICAgdGhpcy4kID0geXkuY29tbWl0VHlwZS5SRVZFUlNFO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyMTpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5jb21taXRUeXBlLkhJR0hMSUdIVDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYmxlOiBbeyAzOiAxLCA0OiAyLCA1OiAkVjAsIDc6ICRWMSwgMTM6ICRWMiwgNDc6ICRWMyB9LCB7IDE6IFszXSB9LCB7IDM6IDcsIDQ6IDIsIDU6ICRWMCwgNzogJFYxLCAxMzogJFYyLCA0NzogJFYzIH0sIHsgNjogOCwgNzogJFY0LCA4OiBbMSwgOV0sIDk6IFsxLCAxMF0sIDEwOiAxMSwgMTM6ICRWNSB9LCBvKCRWNiwgWzIsIDEyNF0pLCBvKCRWNiwgWzIsIDEyNV0pLCBvKCRWNiwgWzIsIDEyNl0pLCB7IDE6IFsyLCAxXSB9LCB7IDc6IFsxLCAxM10gfSwgeyA2OiAxNCwgNzogJFY0LCAxMDogMTEsIDEzOiAkVjUgfSwgeyA4OiBbMSwgMTVdIH0sIG8oJFY3LCBbMiwgOV0sIHsgMTE6IDE2LCAxMjogWzEsIDE3XSB9KSwgbygkVjgsIFsyLCA4XSksIHsgMTogWzIsIDJdIH0sIHsgNzogWzEsIDE4XSB9LCB7IDY6IDE5LCA3OiAkVjQsIDEwOiAxMSwgMTM6ICRWNSB9LCB7IDc6IFsyLCA2XSwgMTM6IFsxLCAyMl0sIDE0OiAyMCwgMTU6IDIxLCAxNjogMjMsIDE3OiAyNCwgMTg6IDI1LCAxOTogWzEsIDI2XSwgMjE6IFsxLCAyN10sIDIzOiBbMSwgMjhdLCAyNDogWzEsIDI5XSwgMjU6IDMwLCAyNjogWzEsIDMxXSwgMjg6IFsxLCAzNV0sIDMxOiBbMSwgMzRdLCAzNzogWzEsIDMzXSwgNDA6IFsxLCAzMl0gfSwgbygkVjgsIFsyLCA3XSksIHsgMTogWzIsIDNdIH0sIHsgNzogWzEsIDM2XSB9LCBvKCRWNywgWzIsIDEwXSksIHsgNDogMzcsIDc6ICRWMSwgMTM6ICRWMiwgNDc6ICRWMyB9LCBvKCRWNywgWzIsIDEyXSksIG8oJFY5LCBbMiwgMTNdKSwgbygkVjksIFsyLCAxNF0pLCBvKCRWOSwgWzIsIDE1XSksIHsgMjA6IFsxLCAzOF0gfSwgeyAyMjogWzEsIDM5XSB9LCBvKCRWOSwgWzIsIDE4XSksIG8oJFY5LCBbMiwgMTldKSwgbygkVjksIFsyLCAyMF0pLCB7IDI3OiA0MCwgMzM6ICRWYSwgNDY6ICRWYiB9LCBvKCRWOSwgWzIsIDExN10sIHsgNDE6IDQzLCAzMjogWzEsIDQ2XSwgMzM6IFsxLCA0OF0sIDM1OiBbMSwgNDRdLCAzODogWzEsIDQ1XSwgNDI6IFsxLCA0N10gfSksIHsgMjc6IDQ5LCAzMzogJFZhLCA0NjogJFZiIH0sIHsgMzI6IFsxLCA1MF0sIDM1OiBbMSwgNTFdIH0sIHsgMjc6IDUyLCAzMzogJFZhLCA0NjogJFZiIH0sIHsgMTogWzIsIDRdIH0sIG8oJFY3LCBbMiwgMTFdKSwgbygkVjksIFsyLCAxNl0pLCBvKCRWOSwgWzIsIDE3XSksIG8oJFY5LCBbMiwgMjFdKSwgbygkVmMsIFsyLCAxMjJdKSwgbygkVmMsIFsyLCAxMjNdKSwgbygkVjksIFsyLCA1Ml0pLCB7IDMzOiBbMSwgNTNdIH0sIHsgMzk6IDU0LCA0MzogJFZkLCA0NDogJFZlLCA0NTogJFZmIH0sIHsgMzM6IFsxLCA1OF0gfSwgeyAzMzogWzEsIDU5XSB9LCBvKCRWOSwgWzIsIDExOF0pLCBvKCRWOSwgWzIsIDM2XSwgeyAzMjogWzEsIDYwXSwgMzU6IFsxLCA2Ml0sIDM4OiBbMSwgNjFdIH0pLCB7IDMzOiBbMSwgNjNdIH0sIHsgMzM6IFsxLCA2NF0sIDM2OiBbMSwgNjVdIH0sIG8oJFY5LCBbMiwgMjJdLCB7IDI5OiBbMSwgNjZdIH0pLCBvKCRWOSwgWzIsIDUzXSwgeyAzMjogWzEsIDY4XSwgMzg6IFsxLCA2N10sIDQyOiBbMSwgNjldIH0pLCBvKCRWOSwgWzIsIDU0XSwgeyAzMjogWzEsIDcxXSwgMzU6IFsxLCA3MF0sIDQyOiBbMSwgNzJdIH0pLCBvKCRWZywgWzIsIDExOV0pLCBvKCRWZywgWzIsIDEyMF0pLCBvKCRWZywgWzIsIDEyMV0pLCBvKCRWOSwgWzIsIDU3XSwgeyAzNTogWzEsIDczXSwgMzg6IFsxLCA3NF0sIDQyOiBbMSwgNzVdIH0pLCBvKCRWOSwgWzIsIDY4XSwgeyAzMjogWzEsIDc4XSwgMzU6IFsxLCA3Nl0sIDM4OiBbMSwgNzddIH0pLCB7IDMzOiBbMSwgNzldIH0sIHsgMzk6IDgwLCA0MzogJFZkLCA0NDogJFZlLCA0NTogJFZmIH0sIHsgMzM6IFsxLCA4MV0gfSwgbygkVjksIFsyLCAyNF0sIHsgMzQ6IFsxLCA4Ml0sIDM1OiBbMSwgODNdIH0pLCB7IDMyOiBbMSwgODRdIH0sIHsgMzI6IFsxLCA4NV0gfSwgeyAzMDogWzEsIDg2XSB9LCB7IDM5OiA4NywgNDM6ICRWZCwgNDQ6ICRWZSwgNDU6ICRWZiB9LCB7IDMzOiBbMSwgODhdIH0sIHsgMzM6IFsxLCA4OV0gfSwgeyAzMzogWzEsIDkwXSB9LCB7IDMzOiBbMSwgOTFdIH0sIHsgMzM6IFsxLCA5Ml0gfSwgeyAzMzogWzEsIDkzXSB9LCB7IDM5OiA5NCwgNDM6ICRWZCwgNDQ6ICRWZSwgNDU6ICRWZiB9LCB7IDMzOiBbMSwgOTVdIH0sIHsgMzM6IFsxLCA5Nl0gfSwgeyAzOTogOTcsIDQzOiAkVmQsIDQ0OiAkVmUsIDQ1OiAkVmYgfSwgeyAzMzogWzEsIDk4XSB9LCBvKCRWOSwgWzIsIDM3XSwgeyAzNTogWzEsIDEwMF0sIDM4OiBbMSwgOTldIH0pLCBvKCRWOSwgWzIsIDM4XSwgeyAzMjogWzEsIDEwMl0sIDM1OiBbMSwgMTAxXSB9KSwgbygkVjksIFsyLCAzOV0sIHsgMzI6IFsxLCAxMDNdLCAzODogWzEsIDEwNF0gfSksIHsgMzM6IFsxLCAxMDVdIH0sIHsgMzM6IFsxLCAxMDZdLCAzNjogWzEsIDEwN10gfSwgeyAzMzogWzEsIDEwOF0gfSwgeyAzMzogWzEsIDEwOV0gfSwgbygkVjksIFsyLCAyM10pLCBvKCRWOSwgWzIsIDU1XSwgeyAzMjogWzEsIDExMF0sIDQyOiBbMSwgMTExXSB9KSwgbygkVjksIFsyLCA1OV0sIHsgMzg6IFsxLCAxMTJdLCA0MjogWzEsIDExM10gfSksIG8oJFY5LCBbMiwgNjldLCB7IDMyOiBbMSwgMTE1XSwgMzg6IFsxLCAxMTRdIH0pLCBvKCRWOSwgWzIsIDU2XSwgeyAzMjogWzEsIDExNl0sIDQyOiBbMSwgMTE3XSB9KSwgbygkVjksIFsyLCA2MV0sIHsgMzU6IFsxLCAxMThdLCA0MjogWzEsIDExOV0gfSksIG8oJFY5LCBbMiwgNzJdLCB7IDMyOiBbMSwgMTIxXSwgMzU6IFsxLCAxMjBdIH0pLCBvKCRWOSwgWzIsIDU4XSwgeyAzODogWzEsIDEyMl0sIDQyOiBbMSwgMTIzXSB9KSwgbygkVjksIFsyLCA2MF0sIHsgMzU6IFsxLCAxMjRdLCA0MjogWzEsIDEyNV0gfSksIG8oJFY5LCBbMiwgNzNdLCB7IDM1OiBbMSwgMTI3XSwgMzg6IFsxLCAxMjZdIH0pLCBvKCRWOSwgWzIsIDcwXSwgeyAzMjogWzEsIDEyOV0sIDM4OiBbMSwgMTI4XSB9KSwgbygkVjksIFsyLCA3MV0sIHsgMzI6IFsxLCAxMzFdLCAzNTogWzEsIDEzMF0gfSksIG8oJFY5LCBbMiwgNzRdLCB7IDM1OiBbMSwgMTMzXSwgMzg6IFsxLCAxMzJdIH0pLCB7IDM5OiAxMzQsIDQzOiAkVmQsIDQ0OiAkVmUsIDQ1OiAkVmYgfSwgeyAzMzogWzEsIDEzNV0gfSwgeyAzMzogWzEsIDEzNl0gfSwgeyAzMzogWzEsIDEzN10gfSwgeyAzMzogWzEsIDEzOF0gfSwgeyAzOTogMTM5LCA0MzogJFZkLCA0NDogJFZlLCA0NTogJFZmIH0sIG8oJFY5LCBbMiwgMjVdLCB7IDM1OiBbMSwgMTQwXSB9KSwgbygkVjksIFsyLCAyNl0sIHsgMzQ6IFsxLCAxNDFdIH0pLCBvKCRWOSwgWzIsIDMxXSwgeyAzNDogWzEsIDE0Ml0gfSksIG8oJFY5LCBbMiwgMjldLCB7IDM0OiBbMSwgMTQzXSB9KSwgbygkVjksIFsyLCAzMF0sIHsgMzQ6IFsxLCAxNDRdIH0pLCB7IDMzOiBbMSwgMTQ1XSB9LCB7IDMzOiBbMSwgMTQ2XSB9LCB7IDM5OiAxNDcsIDQzOiAkVmQsIDQ0OiAkVmUsIDQ1OiAkVmYgfSwgeyAzMzogWzEsIDE0OF0gfSwgeyAzOTogMTQ5LCA0MzogJFZkLCA0NDogJFZlLCA0NTogJFZmIH0sIHsgMzM6IFsxLCAxNTBdIH0sIHsgMzM6IFsxLCAxNTFdIH0sIHsgMzM6IFsxLCAxNTJdIH0sIHsgMzM6IFsxLCAxNTNdIH0sIHsgMzM6IFsxLCAxNTRdIH0sIHsgMzM6IFsxLCAxNTVdIH0sIHsgMzM6IFsxLCAxNTZdIH0sIHsgMzk6IDE1NywgNDM6ICRWZCwgNDQ6ICRWZSwgNDU6ICRWZiB9LCB7IDMzOiBbMSwgMTU4XSB9LCB7IDMzOiBbMSwgMTU5XSB9LCB7IDMzOiBbMSwgMTYwXSB9LCB7IDM5OiAxNjEsIDQzOiAkVmQsIDQ0OiAkVmUsIDQ1OiAkVmYgfSwgeyAzMzogWzEsIDE2Ml0gfSwgeyAzOTogMTYzLCA0MzogJFZkLCA0NDogJFZlLCA0NTogJFZmIH0sIHsgMzM6IFsxLCAxNjRdIH0sIHsgMzM6IFsxLCAxNjVdIH0sIHsgMzM6IFsxLCAxNjZdIH0sIHsgMzk6IDE2NywgNDM6ICRWZCwgNDQ6ICRWZSwgNDU6ICRWZiB9LCB7IDMzOiBbMSwgMTY4XSB9LCBvKCRWOSwgWzIsIDQzXSwgeyAzNTogWzEsIDE2OV0gfSksIG8oJFY5LCBbMiwgNDRdLCB7IDM4OiBbMSwgMTcwXSB9KSwgbygkVjksIFsyLCA0Ml0sIHsgMzI6IFsxLCAxNzFdIH0pLCBvKCRWOSwgWzIsIDQ1XSwgeyAzNTogWzEsIDE3Ml0gfSksIG8oJFY5LCBbMiwgNDBdLCB7IDM4OiBbMSwgMTczXSB9KSwgbygkVjksIFsyLCA0MV0sIHsgMzI6IFsxLCAxNzRdIH0pLCB7IDMzOiBbMSwgMTc1XSwgMzY6IFsxLCAxNzZdIH0sIHsgMzM6IFsxLCAxNzddIH0sIHsgMzM6IFsxLCAxNzhdIH0sIHsgMzM6IFsxLCAxNzldIH0sIHsgMzM6IFsxLCAxODBdIH0sIG8oJFY5LCBbMiwgNjZdLCB7IDQyOiBbMSwgMTgxXSB9KSwgbygkVjksIFsyLCA3OV0sIHsgMzI6IFsxLCAxODJdIH0pLCBvKCRWOSwgWzIsIDY3XSwgeyA0MjogWzEsIDE4M10gfSksIG8oJFY5LCBbMiwgOTBdLCB7IDM4OiBbMSwgMTg0XSB9KSwgbygkVjksIFsyLCA4MF0sIHsgMzI6IFsxLCAxODVdIH0pLCBvKCRWOSwgWzIsIDg5XSwgeyAzODogWzEsIDE4Nl0gfSksIG8oJFY5LCBbMiwgNjVdLCB7IDQyOiBbMSwgMTg3XSB9KSwgbygkVjksIFsyLCA3OF0sIHsgMzI6IFsxLCAxODhdIH0pLCBvKCRWOSwgWzIsIDY0XSwgeyA0MjogWzEsIDE4OV0gfSksIG8oJFY5LCBbMiwgODRdLCB7IDM1OiBbMSwgMTkwXSB9KSwgbygkVjksIFsyLCA3N10sIHsgMzI6IFsxLCAxOTFdIH0pLCBvKCRWOSwgWzIsIDgzXSwgeyAzNTogWzEsIDE5Ml0gfSksIG8oJFY5LCBbMiwgNjNdLCB7IDQyOiBbMSwgMTkzXSB9KSwgbygkVjksIFsyLCA5MV0sIHsgMzg6IFsxLCAxOTRdIH0pLCBvKCRWOSwgWzIsIDYyXSwgeyA0MjogWzEsIDE5NV0gfSksIG8oJFY5LCBbMiwgODVdLCB7IDM1OiBbMSwgMTk2XSB9KSwgbygkVjksIFsyLCA4Nl0sIHsgMzU6IFsxLCAxOTddIH0pLCBvKCRWOSwgWzIsIDkyXSwgeyAzODogWzEsIDE5OF0gfSksIG8oJFY5LCBbMiwgNzZdLCB7IDMyOiBbMSwgMTk5XSB9KSwgbygkVjksIFsyLCA4N10sIHsgMzg6IFsxLCAyMDBdIH0pLCBvKCRWOSwgWzIsIDc1XSwgeyAzMjogWzEsIDIwMV0gfSksIG8oJFY5LCBbMiwgODFdLCB7IDM1OiBbMSwgMjAyXSB9KSwgbygkVjksIFsyLCA4Ml0sIHsgMzU6IFsxLCAyMDNdIH0pLCBvKCRWOSwgWzIsIDg4XSwgeyAzODogWzEsIDIwNF0gfSksIHsgMzM6IFsxLCAyMDVdIH0sIHsgMzk6IDIwNiwgNDM6ICRWZCwgNDQ6ICRWZSwgNDU6ICRWZiB9LCB7IDMzOiBbMSwgMjA3XSB9LCB7IDMzOiBbMSwgMjA4XSB9LCB7IDM5OiAyMDksIDQzOiAkVmQsIDQ0OiAkVmUsIDQ1OiAkVmYgfSwgeyAzMzogWzEsIDIxMF0gfSwgbygkVjksIFsyLCAyN10pLCBvKCRWOSwgWzIsIDMyXSksIG8oJFY5LCBbMiwgMjhdKSwgbygkVjksIFsyLCAzM10pLCBvKCRWOSwgWzIsIDM0XSksIG8oJFY5LCBbMiwgMzVdKSwgeyAzMzogWzEsIDIxMV0gfSwgeyAzMzogWzEsIDIxMl0gfSwgeyAzMzogWzEsIDIxM10gfSwgeyAzOTogMjE0LCA0MzogJFZkLCA0NDogJFZlLCA0NTogJFZmIH0sIHsgMzM6IFsxLCAyMTVdIH0sIHsgMzk6IDIxNiwgNDM6ICRWZCwgNDQ6ICRWZSwgNDU6ICRWZiB9LCB7IDMzOiBbMSwgMjE3XSB9LCB7IDMzOiBbMSwgMjE4XSB9LCB7IDMzOiBbMSwgMjE5XSB9LCB7IDMzOiBbMSwgMjIwXSB9LCB7IDMzOiBbMSwgMjIxXSB9LCB7IDMzOiBbMSwgMjIyXSB9LCB7IDMzOiBbMSwgMjIzXSB9LCB7IDM5OiAyMjQsIDQzOiAkVmQsIDQ0OiAkVmUsIDQ1OiAkVmYgfSwgeyAzMzogWzEsIDIyNV0gfSwgeyAzMzogWzEsIDIyNl0gfSwgeyAzMzogWzEsIDIyN10gfSwgeyAzOTogMjI4LCA0MzogJFZkLCA0NDogJFZlLCA0NTogJFZmIH0sIHsgMzM6IFsxLCAyMjldIH0sIHsgMzk6IDIzMCwgNDM6ICRWZCwgNDQ6ICRWZSwgNDU6ICRWZiB9LCB7IDMzOiBbMSwgMjMxXSB9LCB7IDMzOiBbMSwgMjMyXSB9LCB7IDMzOiBbMSwgMjMzXSB9LCB7IDM5OiAyMzQsIDQzOiAkVmQsIDQ0OiAkVmUsIDQ1OiAkVmYgfSwgbygkVjksIFsyLCA0Nl0pLCBvKCRWOSwgWzIsIDQ4XSksIG8oJFY5LCBbMiwgNDddKSwgbygkVjksIFsyLCA0OV0pLCBvKCRWOSwgWzIsIDUxXSksIG8oJFY5LCBbMiwgNTBdKSwgbygkVjksIFsyLCAxMDddKSwgbygkVjksIFsyLCAxMDhdKSwgbygkVjksIFsyLCAxMDVdKSwgbygkVjksIFsyLCAxMDZdKSwgbygkVjksIFsyLCAxMTBdKSwgbygkVjksIFsyLCAxMDldKSwgbygkVjksIFsyLCAxMTRdKSwgbygkVjksIFsyLCAxMTNdKSwgbygkVjksIFsyLCAxMTJdKSwgbygkVjksIFsyLCAxMTFdKSwgbygkVjksIFsyLCAxMTZdKSwgbygkVjksIFsyLCAxMTVdKSwgbygkVjksIFsyLCAxMDRdKSwgbygkVjksIFsyLCAxMDNdKSwgbygkVjksIFsyLCAxMDJdKSwgbygkVjksIFsyLCAxMDFdKSwgbygkVjksIFsyLCA5OV0pLCBvKCRWOSwgWzIsIDEwMF0pLCBvKCRWOSwgWzIsIDk4XSksIG8oJFY5LCBbMiwgOTddKSwgbygkVjksIFsyLCA5Nl0pLCBvKCRWOSwgWzIsIDk1XSksIG8oJFY5LCBbMiwgOTNdKSwgbygkVjksIFsyLCA5NF0pXSxcbiAgICBkZWZhdWx0QWN0aW9uczogeyA3OiBbMiwgMV0sIDEzOiBbMiwgMl0sIDE4OiBbMiwgM10sIDM2OiBbMiwgNF0gfSxcbiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgaWYgKGhhc2gucmVjb3ZlcmFibGUpIHtcbiAgICAgICAgdGhpcy50cmFjZShzdHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKHN0cik7XG4gICAgICAgIGVycm9yLmhhc2ggPSBoYXNoO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzLCBzdGFjayA9IFswXSwgdHN0YWNrID0gW10sIHZzdGFjayA9IFtudWxsXSwgbHN0YWNrID0gW10sIHRhYmxlID0gdGhpcy50YWJsZSwgeXl0ZXh0ID0gXCJcIiwgeXlsaW5lbm8gPSAwLCB5eWxlbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxO1xuICAgICAgdmFyIGFyZ3MgPSBsc3RhY2suc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGxleGVyMiA9IE9iamVjdC5jcmVhdGUodGhpcy5sZXhlcik7XG4gICAgICB2YXIgc2hhcmVkU3RhdGUgPSB7IHl5OiB7fSB9O1xuICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnl5KSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHtcbiAgICAgICAgICBzaGFyZWRTdGF0ZS55eVtrXSA9IHRoaXMueXlba107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxleGVyMi5zZXRJbnB1dChpbnB1dCwgc2hhcmVkU3RhdGUueXkpO1xuICAgICAgc2hhcmVkU3RhdGUueXkubGV4ZXIgPSBsZXhlcjI7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5wYXJzZXIgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBsZXhlcjIueXlsbG9jID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbGV4ZXIyLnl5bGxvYyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICAgIHZhciByYW5nZXMgPSBsZXhlcjIub3B0aW9ucyAmJiBsZXhlcjIub3B0aW9ucy5yYW5nZXM7XG4gICAgICBpZiAodHlwZW9mIHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCkgfHwgbGV4ZXIyLmxleCgpIHx8IEVPRjtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB0c3RhY2sgPSB0b2tlbjtcbiAgICAgICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0b2tlbiA9IHNlbGYuc3ltYm9sc19bdG9rZW5dIHx8IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cbiAgICAgIHZhciBzeW1ib2wsIHN0YXRlLCBhY3Rpb24sIHIsIHl5dmFsID0ge30sIHAsIGxlbiwgbmV3U3RhdGUsIGV4cGVjdGVkO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgc3RhdGUgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdKSB7XG4gICAgICAgICAgYWN0aW9uID0gdGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHN5bWJvbCA9PT0gbnVsbCB8fCB0eXBlb2Ygc3ltYm9sID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHN5bWJvbCA9IGxleCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhY3Rpb24gPSB0YWJsZVtzdGF0ZV0gJiYgdGFibGVbc3RhdGVdW3N5bWJvbF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09IFwidW5kZWZpbmVkXCIgfHwgIWFjdGlvbi5sZW5ndGggfHwgIWFjdGlvblswXSkge1xuICAgICAgICAgIHZhciBlcnJTdHIgPSBcIlwiO1xuICAgICAgICAgIGV4cGVjdGVkID0gW107XG4gICAgICAgICAgZm9yIChwIGluIHRhYmxlW3N0YXRlXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGVybWluYWxzX1twXSAmJiBwID4gVEVSUk9SKSB7XG4gICAgICAgICAgICAgIGV4cGVjdGVkLnB1c2goXCInXCIgKyB0aGlzLnRlcm1pbmFsc19bcF0gKyBcIidcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsZXhlcjIuc2hvd1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOlxcblwiICsgbGV4ZXIyLnNob3dQb3NpdGlvbigpICsgXCJcXG5FeHBlY3RpbmcgXCIgKyBleHBlY3RlZC5qb2luKFwiLCBcIikgKyBcIiwgZ290ICdcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6IFVuZXhwZWN0ZWQgXCIgKyAoc3ltYm9sID09IEVPRiA/IFwiZW5kIG9mIGlucHV0XCIgOiBcIidcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnBhcnNlRXJyb3IoZXJyU3RyLCB7XG4gICAgICAgICAgICB0ZXh0OiBsZXhlcjIubWF0Y2gsXG4gICAgICAgICAgICB0b2tlbjogdGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sLFxuICAgICAgICAgICAgbGluZTogbGV4ZXIyLnl5bGluZW5vLFxuICAgICAgICAgICAgbG9jOiB5eWxvYyxcbiAgICAgICAgICAgIGV4cGVjdGVkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblswXSBpbnN0YW5jZW9mIEFycmF5ICYmIGFjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyc2UgRXJyb3I6IG11bHRpcGxlIGFjdGlvbnMgcG9zc2libGUgYXQgc3RhdGU6IFwiICsgc3RhdGUgKyBcIiwgdG9rZW46IFwiICsgc3ltYm9sKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGFjdGlvblswXSkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHN0YWNrLnB1c2goc3ltYm9sKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKGxleGVyMi55eXRleHQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2gobGV4ZXIyLnl5bGxvYyk7XG4gICAgICAgICAgICBzdGFjay5wdXNoKGFjdGlvblsxXSk7XG4gICAgICAgICAgICBzeW1ib2wgPSBudWxsO1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB5eWxlbmcgPSBsZXhlcjIueXlsZW5nO1xuICAgICAgICAgICAgICB5eXRleHQgPSBsZXhlcjIueXl0ZXh0O1xuICAgICAgICAgICAgICB5eWxpbmVubyA9IGxleGVyMi55eWxpbmVubztcbiAgICAgICAgICAgICAgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgbGVuID0gdGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVsxXTtcbiAgICAgICAgICAgIHl5dmFsLiQgPSB2c3RhY2tbdnN0YWNrLmxlbmd0aCAtIGxlbl07XG4gICAgICAgICAgICB5eXZhbC5fJCA9IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyYW5nZXMpIHtcbiAgICAgICAgICAgICAgeXl2YWwuXyQucmFuZ2UgPSBbXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5yYW5nZVswXSxcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLnJhbmdlWzFdXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByID0gdGhpcy5wZXJmb3JtQWN0aW9uLmFwcGx5KHl5dmFsLCBbXG4gICAgICAgICAgICAgIHl5dGV4dCxcbiAgICAgICAgICAgICAgeXlsZW5nLFxuICAgICAgICAgICAgICB5eWxpbmVubyxcbiAgICAgICAgICAgICAgc2hhcmVkU3RhdGUueXksXG4gICAgICAgICAgICAgIGFjdGlvblsxXSxcbiAgICAgICAgICAgICAgdnN0YWNrLFxuICAgICAgICAgICAgICBsc3RhY2tcbiAgICAgICAgICAgIF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZW4pIHtcbiAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZSgwLCAtMSAqIGxlbiAqIDIpO1xuICAgICAgICAgICAgICB2c3RhY2sgPSB2c3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgICBsc3RhY2sgPSBsc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhY2sucHVzaCh0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzBdKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKHl5dmFsLiQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2goeXl2YWwuXyQpO1xuICAgICAgICAgICAgbmV3U3RhdGUgPSB0YWJsZVtzdGFja1tzdGFjay5sZW5ndGggLSAyXV1bc3RhY2tbc3RhY2subGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgc3RhY2sucHVzaChuZXdTdGF0ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9O1xuICB2YXIgbGV4ZXIgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGV4ZXIyID0ge1xuICAgICAgRU9GOiAxLFxuICAgICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgICAgaWYgKHRoaXMueXkucGFyc2VyKSB7XG4gICAgICAgICAgdGhpcy55eS5wYXJzZXIucGFyc2VFcnJvcihzdHIsIGhhc2gpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmVzZXRzIHRoZSBsZXhlciwgc2V0cyBuZXcgaW5wdXRcbiAgICAgIHNldElucHV0OiBmdW5jdGlvbihpbnB1dCwgeXkpIHtcbiAgICAgICAgdGhpcy55eSA9IHl5IHx8IHRoaXMueXkgfHwge307XG4gICAgICAgIHRoaXMuX2lucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0aGlzLl9iYWNrdHJhY2sgPSB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy55eWxpbmVubyA9IHRoaXMueXlsZW5nID0gMDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjayA9IFtcIklOSVRJQUxcIl07XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiAwLFxuICAgICAgICAgIGxhc3RfbGluZTogMSxcbiAgICAgICAgICBsYXN0X2NvbHVtbjogMFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gWzAsIDBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gY29uc3VtZXMgYW5kIHJldHVybnMgb25lIGNoYXIgZnJvbSB0aGUgaW5wdXRcbiAgICAgIGlucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGNoID0gdGhpcy5faW5wdXRbMF07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IGNoO1xuICAgICAgICB0aGlzLnl5bGVuZysrO1xuICAgICAgICB0aGlzLm9mZnNldCsrO1xuICAgICAgICB0aGlzLm1hdGNoICs9IGNoO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gY2g7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubysrO1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfbGluZSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfY29sdW1uKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZVsxXSsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UoMSk7XG4gICAgICAgIHJldHVybiBjaDtcbiAgICAgIH0sXG4gICAgICAvLyB1bnNoaWZ0cyBvbmUgY2hhciAob3IgYSBzdHJpbmcpIGludG8gdGhlIGlucHV0XG4gICAgICB1bnB1dDogZnVuY3Rpb24oY2gpIHtcbiAgICAgICAgdmFyIGxlbiA9IGNoLmxlbmd0aDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBjaCArIHRoaXMuX2lucHV0O1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMueXl0ZXh0LnN1YnN0cigwLCB0aGlzLnl5dGV4dC5sZW5ndGggLSBsZW4pO1xuICAgICAgICB0aGlzLm9mZnNldCAtPSBsZW47XG4gICAgICAgIHZhciBvbGRMaW5lcyA9IHRoaXMubWF0Y2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5tYXRjaCA9IHRoaXMubWF0Y2guc3Vic3RyKDAsIHRoaXMubWF0Y2gubGVuZ3RoIC0gMSk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIDEpO1xuICAgICAgICBpZiAobGluZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gLT0gbGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgciA9IHRoaXMueXlsbG9jLnJhbmdlO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gKGxpbmVzLmxlbmd0aCA9PT0gb2xkTGluZXMubGVuZ3RoID8gdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIDogMCkgKyBvbGRMaW5lc1tvbGRMaW5lcy5sZW5ndGggLSBsaW5lcy5sZW5ndGhdLmxlbmd0aCAtIGxpbmVzWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiAtIGxlblxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3JbMF0sIHJbMF0gKyB0aGlzLnl5bGVuZyAtIGxlbl07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBjYWNoZXMgbWF0Y2hlZCB0ZXh0IGFuZCBhcHBlbmRzIGl0IG9uIG5leHQgYWN0aW9uXG4gICAgICBtb3JlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBzaWduYWxzIHRoZSBsZXhlciB0aGF0IHRoaXMgcnVsZSBmYWlscyB0byBtYXRjaCB0aGUgaW5wdXQsIHNvIHRoZSBuZXh0IG1hdGNoaW5nIHJ1bGUgKHJlZ2V4KSBzaG91bGQgYmUgdGVzdGVkIGluc3RlYWQuXG4gICAgICByZWplY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gWW91IGNhbiBvbmx5IGludm9rZSByZWplY3QoKSBpbiB0aGUgbGV4ZXIgd2hlbiB0aGUgbGV4ZXIgaXMgb2YgdGhlIGJhY2t0cmFja2luZyBwZXJzdWFzaW9uIChvcHRpb25zLmJhY2t0cmFja19sZXhlciA9IHRydWUpLlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIHJldGFpbiBmaXJzdCBuIGNoYXJhY3RlcnMgb2YgdGhlIG1hdGNoXG4gICAgICBsZXNzOiBmdW5jdGlvbihuKSB7XG4gICAgICAgIHRoaXMudW5wdXQodGhpcy5tYXRjaC5zbGljZShuKSk7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgYWxyZWFkeSBtYXRjaGVkIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgcGFzdElucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHBhc3QgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSB0aGlzLm1hdGNoLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiAocGFzdC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSArIHBhc3Quc3Vic3RyKC0yMCkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHVwY29taW5nIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgdXBjb21pbmdJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5tYXRjaDtcbiAgICAgICAgaWYgKG5leHQubGVuZ3RoIDwgMjApIHtcbiAgICAgICAgICBuZXh0ICs9IHRoaXMuX2lucHV0LnN1YnN0cigwLCAyMCAtIG5leHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKG5leHQuc3Vic3RyKDAsIDIwKSArIChuZXh0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdGhlIGNoYXJhY3RlciBwb3NpdGlvbiB3aGVyZSB0aGUgbGV4aW5nIGVycm9yIG9jY3VycmVkLCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgc2hvd1Bvc2l0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHByZSA9IHRoaXMucGFzdElucHV0KCk7XG4gICAgICAgIHZhciBjID0gbmV3IEFycmF5KHByZS5sZW5ndGggKyAxKS5qb2luKFwiLVwiKTtcbiAgICAgICAgcmV0dXJuIHByZSArIHRoaXMudXBjb21pbmdJbnB1dCgpICsgXCJcXG5cIiArIGMgKyBcIl5cIjtcbiAgICAgIH0sXG4gICAgICAvLyB0ZXN0IHRoZSBsZXhlZCB0b2tlbjogcmV0dXJuIEZBTFNFIHdoZW4gbm90IGEgbWF0Y2gsIG90aGVyd2lzZSByZXR1cm4gdG9rZW5cbiAgICAgIHRlc3RfbWF0Y2g6IGZ1bmN0aW9uKG1hdGNoLCBpbmRleGVkX3J1bGUpIHtcbiAgICAgICAgdmFyIHRva2VuLCBsaW5lcywgYmFja3VwO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIGJhY2t1cCA9IHtcbiAgICAgICAgICAgIHl5bGluZW5vOiB0aGlzLnl5bGluZW5vLFxuICAgICAgICAgICAgeXlsbG9jOiB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogdGhpcy5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5eXRleHQ6IHRoaXMueXl0ZXh0LFxuICAgICAgICAgICAgbWF0Y2g6IHRoaXMubWF0Y2gsXG4gICAgICAgICAgICBtYXRjaGVzOiB0aGlzLm1hdGNoZXMsXG4gICAgICAgICAgICBtYXRjaGVkOiB0aGlzLm1hdGNoZWQsXG4gICAgICAgICAgICB5eWxlbmc6IHRoaXMueXlsZW5nLFxuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgIF9tb3JlOiB0aGlzLl9tb3JlLFxuICAgICAgICAgICAgX2lucHV0OiB0aGlzLl9pbnB1dCxcbiAgICAgICAgICAgIHl5OiB0aGlzLnl5LFxuICAgICAgICAgICAgY29uZGl0aW9uU3RhY2s6IHRoaXMuY29uZGl0aW9uU3RhY2suc2xpY2UoMCksXG4gICAgICAgICAgICBkb25lOiB0aGlzLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgICBiYWNrdXAueXlsbG9jLnJhbmdlID0gdGhpcy55eWxsb2MucmFuZ2Uuc2xpY2UoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxpbmVzID0gbWF0Y2hbMF0ubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5sYXN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLm1hdGNoKC9cXHI/XFxuPy8pWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uICsgbWF0Y2hbMF0ubGVuZ3RoXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoZXMgPSBtYXRjaDtcbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbdGhpcy5vZmZzZXQsIHRoaXMub2Zmc2V0ICs9IHRoaXMueXlsZW5nXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tb3JlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBtYXRjaFswXTtcbiAgICAgICAgdG9rZW4gPSB0aGlzLnBlcmZvcm1BY3Rpb24uY2FsbCh0aGlzLCB0aGlzLnl5LCB0aGlzLCBpbmRleGVkX3J1bGUsIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSk7XG4gICAgICAgIGlmICh0aGlzLmRvbmUgJiYgdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgZm9yICh2YXIgayBpbiBiYWNrdXApIHtcbiAgICAgICAgICAgIHRoaXNba10gPSBiYWNrdXBba107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggaW4gaW5wdXRcbiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b2tlbiwgbWF0Y2gsIHRlbXBNYXRjaCwgaW5kZXg7XG4gICAgICAgIGlmICghdGhpcy5fbW9yZSkge1xuICAgICAgICAgIHRoaXMueXl0ZXh0ID0gXCJcIjtcbiAgICAgICAgICB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcnVsZXMgPSB0aGlzLl9jdXJyZW50UnVsZXMoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRlbXBNYXRjaCA9IHRoaXMuX2lucHV0Lm1hdGNoKHRoaXMucnVsZXNbcnVsZXNbaV1dKTtcbiAgICAgICAgICBpZiAodGVtcE1hdGNoICYmICghbWF0Y2ggfHwgdGVtcE1hdGNoWzBdLmxlbmd0aCA+IG1hdGNoWzBdLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIG1hdGNoID0gdGVtcE1hdGNoO1xuICAgICAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2godGVtcE1hdGNoLCBydWxlc1tpXSk7XG4gICAgICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3B0aW9ucy5mbGV4KSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaChtYXRjaCwgcnVsZXNbaW5kZXhdKTtcbiAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faW5wdXQgPT09IFwiXCIpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gVW5yZWNvZ25pemVkIHRleHQuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCB0aGF0IGhhcyBhIHRva2VuXG4gICAgICBsZXg6IGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLm5leHQoKTtcbiAgICAgICAgaWYgKHIpIHtcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sZXgoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFjdGl2YXRlcyBhIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgKHB1c2hlcyB0aGUgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvbnRvIHRoZSBjb25kaXRpb24gc3RhY2spXG4gICAgICBiZWdpbjogZnVuY3Rpb24gYmVnaW4oY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sucHVzaChjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHBvcCB0aGUgcHJldmlvdXNseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9mZiB0aGUgY29uZGl0aW9uIHN0YWNrXG4gICAgICBwb3BTdGF0ZTogZnVuY3Rpb24gcG9wU3RhdGUoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxO1xuICAgICAgICBpZiAobiA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5wb3AoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1swXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHByb2R1Y2UgdGhlIGxleGVyIHJ1bGUgc2V0IHdoaWNoIGlzIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlXG4gICAgICBfY3VycmVudFJ1bGVzOiBmdW5jdGlvbiBfY3VycmVudFJ1bGVzKCkge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggJiYgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1t0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV1dLnJ1bGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbXCJJTklUSUFMXCJdLnJ1bGVzO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZTsgd2hlbiBhbiBpbmRleCBhcmd1bWVudCBpcyBwcm92aWRlZCBpdCBwcm9kdWNlcyB0aGUgTi10aCBwcmV2aW91cyBjb25kaXRpb24gc3RhdGUsIGlmIGF2YWlsYWJsZVxuICAgICAgdG9wU3RhdGU6IGZ1bmN0aW9uIHRvcFN0YXRlKG4pIHtcbiAgICAgICAgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMSAtIE1hdGguYWJzKG4gfHwgMCk7XG4gICAgICAgIGlmIChuID49IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1tuXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gXCJJTklUSUFMXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhbGlhcyBmb3IgYmVnaW4oY29uZGl0aW9uKVxuICAgICAgcHVzaFN0YXRlOiBmdW5jdGlvbiBwdXNoU3RhdGUoY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuYmVnaW4oY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0ZXMgY3VycmVudGx5IG9uIHRoZSBzdGFja1xuICAgICAgc3RhdGVTdGFja1NpemU6IGZ1bmN0aW9uIHN0YXRlU3RhY2tTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgb3B0aW9uczogeyBcImNhc2UtaW5zZW5zaXRpdmVcIjogdHJ1ZSB9LFxuICAgICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5LCB5eV8sICRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMsIFlZX1NUQVJUKSB7XG4gICAgICAgIHN3aXRjaCAoJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucykge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfdGl0bGVcIik7XG4gICAgICAgICAgICByZXR1cm4gMTk7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX3RpdGxlX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjclwiKTtcbiAgICAgICAgICAgIHJldHVybiAyMTtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiYWNjX2Rlc2NyX211bHRpbGluZVwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICByZXR1cm4gMTM7XG4gICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA5OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIHJldHVybiA1O1xuICAgICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgICByZXR1cm4gNDA7XG4gICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgIHJldHVybiAzMjtcbiAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgcmV0dXJuIDM4O1xuICAgICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgICByZXR1cm4gNDI7XG4gICAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICAgIHJldHVybiA0MztcbiAgICAgICAgICBjYXNlIDE2OlxuICAgICAgICAgICAgcmV0dXJuIDQ0O1xuICAgICAgICAgIGNhc2UgMTc6XG4gICAgICAgICAgICByZXR1cm4gNDU7XG4gICAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICAgIHJldHVybiAzNTtcbiAgICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgICAgcmV0dXJuIDI4O1xuICAgICAgICAgIGNhc2UgMjA6XG4gICAgICAgICAgICByZXR1cm4gMjk7XG4gICAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICAgIHJldHVybiAzNztcbiAgICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgICAgcmV0dXJuIDMxO1xuICAgICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgICByZXR1cm4gMzQ7XG4gICAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICAgIHJldHVybiAyNjtcbiAgICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgICAgcmV0dXJuIDk7XG4gICAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICAgIHJldHVybiA5O1xuICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICByZXR1cm4gODtcbiAgICAgICAgICBjYXNlIDI4OlxuICAgICAgICAgICAgcmV0dXJuIFwiQ0FSRVRcIjtcbiAgICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIm9wdGlvbnNcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDMwOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICAgIHJldHVybiAxMjtcbiAgICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwic3RyaW5nXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzU6XG4gICAgICAgICAgICByZXR1cm4gMzM7XG4gICAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICAgIHJldHVybiAzMDtcbiAgICAgICAgICBjYXNlIDM3OlxuICAgICAgICAgICAgcmV0dXJuIDQ2O1xuICAgICAgICAgIGNhc2UgMzg6XG4gICAgICAgICAgICByZXR1cm4gNztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiBbL14oPzphY2NUaXRsZVxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccypcXHtcXHMqKS9pLCAvXig/OltcXH1dKS9pLCAvXig/OlteXFx9XSopL2ksIC9eKD86KFxccj9cXG4pKykvaSwgL14oPzojW15cXG5dKikvaSwgL14oPzolW15cXG5dKikvaSwgL14oPzpnaXRHcmFwaFxcYikvaSwgL14oPzpjb21taXQoPz1cXHN8JCkpL2ksIC9eKD86aWQ6KS9pLCAvXig/OnR5cGU6KS9pLCAvXig/Om1zZzopL2ksIC9eKD86Tk9STUFMXFxiKS9pLCAvXig/OlJFVkVSU0VcXGIpL2ksIC9eKD86SElHSExJR0hUXFxiKS9pLCAvXig/OnRhZzopL2ksIC9eKD86YnJhbmNoKD89XFxzfCQpKS9pLCAvXig/Om9yZGVyOikvaSwgL14oPzptZXJnZSg/PVxcc3wkKSkvaSwgL14oPzpjaGVycnktcGljayg/PVxcc3wkKSkvaSwgL14oPzpwYXJlbnQ6KS9pLCAvXig/OmNoZWNrb3V0KD89XFxzfCQpKS9pLCAvXig/OkxSXFxiKS9pLCAvXig/OlRCXFxiKS9pLCAvXig/OjopL2ksIC9eKD86XFxeKS9pLCAvXig/Om9wdGlvbnNcXHI/XFxuKS9pLCAvXig/OlsgXFxyXFxuXFx0XStlbmRcXGIpL2ksIC9eKD86W1xcc1xcU10rKD89WyBcXHJcXG5cXHRdK2VuZCkpL2ksIC9eKD86W1wiXVtcIl0pL2ksIC9eKD86W1wiXSkvaSwgL14oPzpbXCJdKS9pLCAvXig/OlteXCJdKikvaSwgL14oPzpbMC05XSsoPz1cXHN8JCkpL2ksIC9eKD86XFx3KFstXFwuL1xcd10qWy1cXHddKT8pL2ksIC9eKD86JCkvaSwgL14oPzpcXHMrKS9pXSxcbiAgICAgIGNvbmRpdGlvbnM6IHsgXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCI6IHsgXCJydWxlc1wiOiBbNSwgNl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX2Rlc2NyXCI6IHsgXCJydWxlc1wiOiBbM10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX3RpdGxlXCI6IHsgXCJydWxlc1wiOiBbMV0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwib3B0aW9uc1wiOiB7IFwicnVsZXNcIjogWzMwLCAzMV0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwic3RyaW5nXCI6IHsgXCJydWxlc1wiOiBbMzQsIDM1XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMiwgNCwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMiwgMzMsIDM2LCAzNywgMzgsIDM5XSwgXCJpbmNsdXNpdmVcIjogdHJ1ZSB9IH1cbiAgICB9O1xuICAgIHJldHVybiBsZXhlcjI7XG4gIH0oKTtcbiAgcGFyc2VyMi5sZXhlciA9IGxleGVyO1xuICBmdW5jdGlvbiBQYXJzZXIoKSB7XG4gICAgdGhpcy55eSA9IHt9O1xuICB9XG4gIFBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXIyO1xuICBwYXJzZXIyLlBhcnNlciA9IFBhcnNlcjtcbiAgcmV0dXJuIG5ldyBQYXJzZXIoKTtcbn0oKTtcbnBhcnNlci5wYXJzZXIgPSBwYXJzZXI7XG5jb25zdCBnaXRHcmFwaFBhcnNlciA9IHBhcnNlcjtcbmxldCBtYWluQnJhbmNoTmFtZSA9IGdldENvbmZpZygpLmdpdEdyYXBoLm1haW5CcmFuY2hOYW1lO1xubGV0IG1haW5CcmFuY2hPcmRlciA9IGdldENvbmZpZygpLmdpdEdyYXBoLm1haW5CcmFuY2hPcmRlcjtcbmxldCBjb21taXRzID0ge307XG5sZXQgaGVhZCA9IG51bGw7XG5sZXQgYnJhbmNoZXNDb25maWcgPSB7fTtcbmJyYW5jaGVzQ29uZmlnW21haW5CcmFuY2hOYW1lXSA9IHsgbmFtZTogbWFpbkJyYW5jaE5hbWUsIG9yZGVyOiBtYWluQnJhbmNoT3JkZXIgfTtcbmxldCBicmFuY2hlcyA9IHt9O1xuYnJhbmNoZXNbbWFpbkJyYW5jaE5hbWVdID0gaGVhZDtcbmxldCBjdXJCcmFuY2ggPSBtYWluQnJhbmNoTmFtZTtcbmxldCBkaXJlY3Rpb24gPSBcIkxSXCI7XG5sZXQgc2VxID0gMDtcbmZ1bmN0aW9uIGdldElkKCkge1xuICByZXR1cm4gcmFuZG9tKHsgbGVuZ3RoOiA3IH0pO1xufVxuZnVuY3Rpb24gdW5pcUJ5KGxpc3QsIGZuKSB7XG4gIGNvbnN0IHJlY29yZE1hcCA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICByZXR1cm4gbGlzdC5yZWR1Y2UoKG91dCwgaXRlbSkgPT4ge1xuICAgIGNvbnN0IGtleSA9IGZuKGl0ZW0pO1xuICAgIGlmICghcmVjb3JkTWFwW2tleV0pIHtcbiAgICAgIHJlY29yZE1hcFtrZXldID0gdHJ1ZTtcbiAgICAgIG91dC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9LCBbXSk7XG59XG5jb25zdCBzZXREaXJlY3Rpb24gPSBmdW5jdGlvbihkaXIyKSB7XG4gIGRpcmVjdGlvbiA9IGRpcjI7XG59O1xubGV0IG9wdGlvbnMgPSB7fTtcbmNvbnN0IHNldE9wdGlvbnMgPSBmdW5jdGlvbihyYXdPcHRTdHJpbmcpIHtcbiAgbG9nLmRlYnVnKFwib3B0aW9ucyBzdHJcIiwgcmF3T3B0U3RyaW5nKTtcbiAgcmF3T3B0U3RyaW5nID0gcmF3T3B0U3RyaW5nICYmIHJhd09wdFN0cmluZy50cmltKCk7XG4gIHJhd09wdFN0cmluZyA9IHJhd09wdFN0cmluZyB8fCBcInt9XCI7XG4gIHRyeSB7XG4gICAgb3B0aW9ucyA9IEpTT04ucGFyc2UocmF3T3B0U3RyaW5nKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZy5lcnJvcihcImVycm9yIHdoaWxlIHBhcnNpbmcgZ2l0R3JhcGggb3B0aW9uc1wiLCBlLm1lc3NhZ2UpO1xuICB9XG59O1xuY29uc3QgZ2V0T3B0aW9ucyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gb3B0aW9ucztcbn07XG5jb25zdCBjb21taXQgPSBmdW5jdGlvbihtc2csIGlkLCB0eXBlLCB0YWcpIHtcbiAgbG9nLmRlYnVnKFwiRW50ZXJpbmcgY29tbWl0OlwiLCBtc2csIGlkLCB0eXBlLCB0YWcpO1xuICBpZCA9IGNvbW1vbi5zYW5pdGl6ZVRleHQoaWQsIGdldENvbmZpZygpKTtcbiAgbXNnID0gY29tbW9uLnNhbml0aXplVGV4dChtc2csIGdldENvbmZpZygpKTtcbiAgdGFnID0gY29tbW9uLnNhbml0aXplVGV4dCh0YWcsIGdldENvbmZpZygpKTtcbiAgY29uc3QgY29tbWl0MiA9IHtcbiAgICBpZDogaWQgPyBpZCA6IHNlcSArIFwiLVwiICsgZ2V0SWQoKSxcbiAgICBtZXNzYWdlOiBtc2csXG4gICAgc2VxOiBzZXErKyxcbiAgICB0eXBlOiB0eXBlID8gdHlwZSA6IGNvbW1pdFR5cGUkMS5OT1JNQUwsXG4gICAgdGFnOiB0YWcgPyB0YWcgOiBcIlwiLFxuICAgIHBhcmVudHM6IGhlYWQgPT0gbnVsbCA/IFtdIDogW2hlYWQuaWRdLFxuICAgIGJyYW5jaDogY3VyQnJhbmNoXG4gIH07XG4gIGhlYWQgPSBjb21taXQyO1xuICBjb21taXRzW2NvbW1pdDIuaWRdID0gY29tbWl0MjtcbiAgYnJhbmNoZXNbY3VyQnJhbmNoXSA9IGNvbW1pdDIuaWQ7XG4gIGxvZy5kZWJ1ZyhcImluIHB1c2hDb21taXQgXCIgKyBjb21taXQyLmlkKTtcbn07XG5jb25zdCBicmFuY2ggPSBmdW5jdGlvbihuYW1lLCBvcmRlcikge1xuICBuYW1lID0gY29tbW9uLnNhbml0aXplVGV4dChuYW1lLCBnZXRDb25maWcoKSk7XG4gIGlmIChicmFuY2hlc1tuYW1lXSA9PT0gdm9pZCAwKSB7XG4gICAgYnJhbmNoZXNbbmFtZV0gPSBoZWFkICE9IG51bGwgPyBoZWFkLmlkIDogbnVsbDtcbiAgICBicmFuY2hlc0NvbmZpZ1tuYW1lXSA9IHsgbmFtZSwgb3JkZXI6IG9yZGVyID8gcGFyc2VJbnQob3JkZXIsIDEwKSA6IG51bGwgfTtcbiAgICBjaGVja291dChuYW1lKTtcbiAgICBsb2cuZGVidWcoXCJpbiBjcmVhdGVCcmFuY2hcIik7XG4gIH0gZWxzZSB7XG4gICAgbGV0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgJ1RyeWluZyB0byBjcmVhdGUgYW4gZXhpc3RpbmcgYnJhbmNoLiAoSGVscDogRWl0aGVyIHVzZSBhIG5ldyBuYW1lIGlmIHlvdSB3YW50IGNyZWF0ZSBhIG5ldyBicmFuY2ggb3IgdHJ5IHVzaW5nIFwiY2hlY2tvdXQgJyArIG5hbWUgKyAnXCIpJ1xuICAgICk7XG4gICAgZXJyb3IuaGFzaCA9IHtcbiAgICAgIHRleHQ6IFwiYnJhbmNoIFwiICsgbmFtZSxcbiAgICAgIHRva2VuOiBcImJyYW5jaCBcIiArIG5hbWUsXG4gICAgICBsaW5lOiBcIjFcIixcbiAgICAgIGxvYzogeyBmaXJzdF9saW5lOiAxLCBsYXN0X2xpbmU6IDEsIGZpcnN0X2NvbHVtbjogMSwgbGFzdF9jb2x1bW46IDEgfSxcbiAgICAgIGV4cGVjdGVkOiBbJ1wiY2hlY2tvdXQgJyArIG5hbWUgKyAnXCInXVxuICAgIH07XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5jb25zdCBtZXJnZSA9IGZ1bmN0aW9uKG90aGVyQnJhbmNoLCBjdXN0b21faWQsIG92ZXJyaWRlX3R5cGUsIGN1c3RvbV90YWcpIHtcbiAgb3RoZXJCcmFuY2ggPSBjb21tb24uc2FuaXRpemVUZXh0KG90aGVyQnJhbmNoLCBnZXRDb25maWcoKSk7XG4gIGN1c3RvbV9pZCA9IGNvbW1vbi5zYW5pdGl6ZVRleHQoY3VzdG9tX2lkLCBnZXRDb25maWcoKSk7XG4gIGNvbnN0IGN1cnJlbnRDb21taXQgPSBjb21taXRzW2JyYW5jaGVzW2N1ckJyYW5jaF1dO1xuICBjb25zdCBvdGhlckNvbW1pdCA9IGNvbW1pdHNbYnJhbmNoZXNbb3RoZXJCcmFuY2hdXTtcbiAgaWYgKGN1ckJyYW5jaCA9PT0gb3RoZXJCcmFuY2gpIHtcbiAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IoJ0luY29ycmVjdCB1c2FnZSBvZiBcIm1lcmdlXCIuIENhbm5vdCBtZXJnZSBhIGJyYW5jaCB0byBpdHNlbGYnKTtcbiAgICBlcnJvci5oYXNoID0ge1xuICAgICAgdGV4dDogXCJtZXJnZSBcIiArIG90aGVyQnJhbmNoLFxuICAgICAgdG9rZW46IFwibWVyZ2UgXCIgKyBvdGhlckJyYW5jaCxcbiAgICAgIGxpbmU6IFwiMVwiLFxuICAgICAgbG9jOiB7IGZpcnN0X2xpbmU6IDEsIGxhc3RfbGluZTogMSwgZmlyc3RfY29sdW1uOiAxLCBsYXN0X2NvbHVtbjogMSB9LFxuICAgICAgZXhwZWN0ZWQ6IFtcImJyYW5jaCBhYmNcIl1cbiAgICB9O1xuICAgIHRocm93IGVycm9yO1xuICB9IGVsc2UgaWYgKGN1cnJlbnRDb21taXQgPT09IHZvaWQgMCB8fCAhY3VycmVudENvbW1pdCkge1xuICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICdJbmNvcnJlY3QgdXNhZ2Ugb2YgXCJtZXJnZVwiLiBDdXJyZW50IGJyYW5jaCAoJyArIGN1ckJyYW5jaCArIFwiKWhhcyBubyBjb21taXRzXCJcbiAgICApO1xuICAgIGVycm9yLmhhc2ggPSB7XG4gICAgICB0ZXh0OiBcIm1lcmdlIFwiICsgb3RoZXJCcmFuY2gsXG4gICAgICB0b2tlbjogXCJtZXJnZSBcIiArIG90aGVyQnJhbmNoLFxuICAgICAgbGluZTogXCIxXCIsXG4gICAgICBsb2M6IHsgZmlyc3RfbGluZTogMSwgbGFzdF9saW5lOiAxLCBmaXJzdF9jb2x1bW46IDEsIGxhc3RfY29sdW1uOiAxIH0sXG4gICAgICBleHBlY3RlZDogW1wiY29tbWl0XCJdXG4gICAgfTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfSBlbHNlIGlmIChicmFuY2hlc1tvdGhlckJyYW5jaF0gPT09IHZvaWQgMCkge1xuICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICdJbmNvcnJlY3QgdXNhZ2Ugb2YgXCJtZXJnZVwiLiBCcmFuY2ggdG8gYmUgbWVyZ2VkICgnICsgb3RoZXJCcmFuY2ggKyBcIikgZG9lcyBub3QgZXhpc3RcIlxuICAgICk7XG4gICAgZXJyb3IuaGFzaCA9IHtcbiAgICAgIHRleHQ6IFwibWVyZ2UgXCIgKyBvdGhlckJyYW5jaCxcbiAgICAgIHRva2VuOiBcIm1lcmdlIFwiICsgb3RoZXJCcmFuY2gsXG4gICAgICBsaW5lOiBcIjFcIixcbiAgICAgIGxvYzogeyBmaXJzdF9saW5lOiAxLCBsYXN0X2xpbmU6IDEsIGZpcnN0X2NvbHVtbjogMSwgbGFzdF9jb2x1bW46IDEgfSxcbiAgICAgIGV4cGVjdGVkOiBbXCJicmFuY2ggXCIgKyBvdGhlckJyYW5jaF1cbiAgICB9O1xuICAgIHRocm93IGVycm9yO1xuICB9IGVsc2UgaWYgKG90aGVyQ29tbWl0ID09PSB2b2lkIDAgfHwgIW90aGVyQ29tbWl0KSB7XG4gICAgbGV0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgJ0luY29ycmVjdCB1c2FnZSBvZiBcIm1lcmdlXCIuIEJyYW5jaCB0byBiZSBtZXJnZWQgKCcgKyBvdGhlckJyYW5jaCArIFwiKSBoYXMgbm8gY29tbWl0c1wiXG4gICAgKTtcbiAgICBlcnJvci5oYXNoID0ge1xuICAgICAgdGV4dDogXCJtZXJnZSBcIiArIG90aGVyQnJhbmNoLFxuICAgICAgdG9rZW46IFwibWVyZ2UgXCIgKyBvdGhlckJyYW5jaCxcbiAgICAgIGxpbmU6IFwiMVwiLFxuICAgICAgbG9jOiB7IGZpcnN0X2xpbmU6IDEsIGxhc3RfbGluZTogMSwgZmlyc3RfY29sdW1uOiAxLCBsYXN0X2NvbHVtbjogMSB9LFxuICAgICAgZXhwZWN0ZWQ6IFsnXCJjb21taXRcIiddXG4gICAgfTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfSBlbHNlIGlmIChjdXJyZW50Q29tbWl0ID09PSBvdGhlckNvbW1pdCkge1xuICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcignSW5jb3JyZWN0IHVzYWdlIG9mIFwibWVyZ2VcIi4gQm90aCBicmFuY2hlcyBoYXZlIHNhbWUgaGVhZCcpO1xuICAgIGVycm9yLmhhc2ggPSB7XG4gICAgICB0ZXh0OiBcIm1lcmdlIFwiICsgb3RoZXJCcmFuY2gsXG4gICAgICB0b2tlbjogXCJtZXJnZSBcIiArIG90aGVyQnJhbmNoLFxuICAgICAgbGluZTogXCIxXCIsXG4gICAgICBsb2M6IHsgZmlyc3RfbGluZTogMSwgbGFzdF9saW5lOiAxLCBmaXJzdF9jb2x1bW46IDEsIGxhc3RfY29sdW1uOiAxIH0sXG4gICAgICBleHBlY3RlZDogW1wiYnJhbmNoIGFiY1wiXVxuICAgIH07XG4gICAgdGhyb3cgZXJyb3I7XG4gIH0gZWxzZSBpZiAoY3VzdG9tX2lkICYmIGNvbW1pdHNbY3VzdG9tX2lkXSAhPT0gdm9pZCAwKSB7XG4gICAgbGV0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgJ0luY29ycmVjdCB1c2FnZSBvZiBcIm1lcmdlXCIuIENvbW1pdCB3aXRoIGlkOicgKyBjdXN0b21faWQgKyBcIiBhbHJlYWR5IGV4aXN0cywgdXNlIGRpZmZlcmVudCBjdXN0b20gSWRcIlxuICAgICk7XG4gICAgZXJyb3IuaGFzaCA9IHtcbiAgICAgIHRleHQ6IFwibWVyZ2UgXCIgKyBvdGhlckJyYW5jaCArIGN1c3RvbV9pZCArIG92ZXJyaWRlX3R5cGUgKyBjdXN0b21fdGFnLFxuICAgICAgdG9rZW46IFwibWVyZ2UgXCIgKyBvdGhlckJyYW5jaCArIGN1c3RvbV9pZCArIG92ZXJyaWRlX3R5cGUgKyBjdXN0b21fdGFnLFxuICAgICAgbGluZTogXCIxXCIsXG4gICAgICBsb2M6IHsgZmlyc3RfbGluZTogMSwgbGFzdF9saW5lOiAxLCBmaXJzdF9jb2x1bW46IDEsIGxhc3RfY29sdW1uOiAxIH0sXG4gICAgICBleHBlY3RlZDogW1xuICAgICAgICBcIm1lcmdlIFwiICsgb3RoZXJCcmFuY2ggKyBcIiBcIiArIGN1c3RvbV9pZCArIFwiX1VOSVFVRSBcIiArIG92ZXJyaWRlX3R5cGUgKyBcIiBcIiArIGN1c3RvbV90YWdcbiAgICAgIF1cbiAgICB9O1xuICAgIHRocm93IGVycm9yO1xuICB9XG4gIGNvbnN0IGNvbW1pdDIgPSB7XG4gICAgaWQ6IGN1c3RvbV9pZCA/IGN1c3RvbV9pZCA6IHNlcSArIFwiLVwiICsgZ2V0SWQoKSxcbiAgICBtZXNzYWdlOiBcIm1lcmdlZCBicmFuY2ggXCIgKyBvdGhlckJyYW5jaCArIFwiIGludG8gXCIgKyBjdXJCcmFuY2gsXG4gICAgc2VxOiBzZXErKyxcbiAgICBwYXJlbnRzOiBbaGVhZCA9PSBudWxsID8gbnVsbCA6IGhlYWQuaWQsIGJyYW5jaGVzW290aGVyQnJhbmNoXV0sXG4gICAgYnJhbmNoOiBjdXJCcmFuY2gsXG4gICAgdHlwZTogY29tbWl0VHlwZSQxLk1FUkdFLFxuICAgIGN1c3RvbVR5cGU6IG92ZXJyaWRlX3R5cGUsXG4gICAgY3VzdG9tSWQ6IGN1c3RvbV9pZCA/IHRydWUgOiBmYWxzZSxcbiAgICB0YWc6IGN1c3RvbV90YWcgPyBjdXN0b21fdGFnIDogXCJcIlxuICB9O1xuICBoZWFkID0gY29tbWl0MjtcbiAgY29tbWl0c1tjb21taXQyLmlkXSA9IGNvbW1pdDI7XG4gIGJyYW5jaGVzW2N1ckJyYW5jaF0gPSBjb21taXQyLmlkO1xuICBsb2cuZGVidWcoYnJhbmNoZXMpO1xuICBsb2cuZGVidWcoXCJpbiBtZXJnZUJyYW5jaFwiKTtcbn07XG5jb25zdCBjaGVycnlQaWNrID0gZnVuY3Rpb24oc291cmNlSWQsIHRhcmdldElkLCB0YWcsIHBhcmVudENvbW1pdElkKSB7XG4gIGxvZy5kZWJ1ZyhcIkVudGVyaW5nIGNoZXJyeVBpY2s6XCIsIHNvdXJjZUlkLCB0YXJnZXRJZCwgdGFnKTtcbiAgc291cmNlSWQgPSBjb21tb24uc2FuaXRpemVUZXh0KHNvdXJjZUlkLCBnZXRDb25maWcoKSk7XG4gIHRhcmdldElkID0gY29tbW9uLnNhbml0aXplVGV4dCh0YXJnZXRJZCwgZ2V0Q29uZmlnKCkpO1xuICB0YWcgPSBjb21tb24uc2FuaXRpemVUZXh0KHRhZywgZ2V0Q29uZmlnKCkpO1xuICBwYXJlbnRDb21taXRJZCA9IGNvbW1vbi5zYW5pdGl6ZVRleHQocGFyZW50Q29tbWl0SWQsIGdldENvbmZpZygpKTtcbiAgaWYgKCFzb3VyY2VJZCB8fCBjb21taXRzW3NvdXJjZUlkXSA9PT0gdm9pZCAwKSB7XG4gICAgbGV0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgJ0luY29ycmVjdCB1c2FnZSBvZiBcImNoZXJyeVBpY2tcIi4gU291cmNlIGNvbW1pdCBpZCBzaG91bGQgZXhpc3QgYW5kIHByb3ZpZGVkJ1xuICAgICk7XG4gICAgZXJyb3IuaGFzaCA9IHtcbiAgICAgIHRleHQ6IFwiY2hlcnJ5UGljayBcIiArIHNvdXJjZUlkICsgXCIgXCIgKyB0YXJnZXRJZCxcbiAgICAgIHRva2VuOiBcImNoZXJyeVBpY2sgXCIgKyBzb3VyY2VJZCArIFwiIFwiICsgdGFyZ2V0SWQsXG4gICAgICBsaW5lOiBcIjFcIixcbiAgICAgIGxvYzogeyBmaXJzdF9saW5lOiAxLCBsYXN0X2xpbmU6IDEsIGZpcnN0X2NvbHVtbjogMSwgbGFzdF9jb2x1bW46IDEgfSxcbiAgICAgIGV4cGVjdGVkOiBbXCJjaGVycnktcGljayBhYmNcIl1cbiAgICB9O1xuICAgIHRocm93IGVycm9yO1xuICB9XG4gIGxldCBzb3VyY2VDb21taXQgPSBjb21taXRzW3NvdXJjZUlkXTtcbiAgbGV0IHNvdXJjZUNvbW1pdEJyYW5jaCA9IHNvdXJjZUNvbW1pdC5icmFuY2g7XG4gIGlmIChwYXJlbnRDb21taXRJZCAmJiAhKEFycmF5LmlzQXJyYXkoc291cmNlQ29tbWl0LnBhcmVudHMpICYmIHNvdXJjZUNvbW1pdC5wYXJlbnRzLmluY2x1ZGVzKHBhcmVudENvbW1pdElkKSkpIHtcbiAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICBcIkludmFsaWQgb3BlcmF0aW9uOiBUaGUgc3BlY2lmaWVkIHBhcmVudCBjb21taXQgaXMgbm90IGFuIGltbWVkaWF0ZSBwYXJlbnQgb2YgdGhlIGNoZXJyeS1waWNrZWQgY29tbWl0LlwiXG4gICAgKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuICBpZiAoc291cmNlQ29tbWl0LnR5cGUgPT09IGNvbW1pdFR5cGUkMS5NRVJHRSAmJiAhcGFyZW50Q29tbWl0SWQpIHtcbiAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICBcIkluY29ycmVjdCB1c2FnZSBvZiBjaGVycnktcGljazogSWYgdGhlIHNvdXJjZSBjb21taXQgaXMgYSBtZXJnZSBjb21taXQsIGFuIGltbWVkaWF0ZSBwYXJlbnQgY29tbWl0IG11c3QgYmUgc3BlY2lmaWVkLlwiXG4gICAgKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuICBpZiAoIXRhcmdldElkIHx8IGNvbW1pdHNbdGFyZ2V0SWRdID09PSB2b2lkIDApIHtcbiAgICBpZiAoc291cmNlQ29tbWl0QnJhbmNoID09PSBjdXJCcmFuY2gpIHtcbiAgICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICAgJ0luY29ycmVjdCB1c2FnZSBvZiBcImNoZXJyeVBpY2tcIi4gU291cmNlIGNvbW1pdCBpcyBhbHJlYWR5IG9uIGN1cnJlbnQgYnJhbmNoJ1xuICAgICAgKTtcbiAgICAgIGVycm9yLmhhc2ggPSB7XG4gICAgICAgIHRleHQ6IFwiY2hlcnJ5UGljayBcIiArIHNvdXJjZUlkICsgXCIgXCIgKyB0YXJnZXRJZCxcbiAgICAgICAgdG9rZW46IFwiY2hlcnJ5UGljayBcIiArIHNvdXJjZUlkICsgXCIgXCIgKyB0YXJnZXRJZCxcbiAgICAgICAgbGluZTogXCIxXCIsXG4gICAgICAgIGxvYzogeyBmaXJzdF9saW5lOiAxLCBsYXN0X2xpbmU6IDEsIGZpcnN0X2NvbHVtbjogMSwgbGFzdF9jb2x1bW46IDEgfSxcbiAgICAgICAgZXhwZWN0ZWQ6IFtcImNoZXJyeS1waWNrIGFiY1wiXVxuICAgICAgfTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50Q29tbWl0ID0gY29tbWl0c1ticmFuY2hlc1tjdXJCcmFuY2hdXTtcbiAgICBpZiAoY3VycmVudENvbW1pdCA9PT0gdm9pZCAwIHx8ICFjdXJyZW50Q29tbWl0KSB7XG4gICAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICdJbmNvcnJlY3QgdXNhZ2Ugb2YgXCJjaGVycnktcGlja1wiLiBDdXJyZW50IGJyYW5jaCAoJyArIGN1ckJyYW5jaCArIFwiKWhhcyBubyBjb21taXRzXCJcbiAgICAgICk7XG4gICAgICBlcnJvci5oYXNoID0ge1xuICAgICAgICB0ZXh0OiBcImNoZXJyeVBpY2sgXCIgKyBzb3VyY2VJZCArIFwiIFwiICsgdGFyZ2V0SWQsXG4gICAgICAgIHRva2VuOiBcImNoZXJyeVBpY2sgXCIgKyBzb3VyY2VJZCArIFwiIFwiICsgdGFyZ2V0SWQsXG4gICAgICAgIGxpbmU6IFwiMVwiLFxuICAgICAgICBsb2M6IHsgZmlyc3RfbGluZTogMSwgbGFzdF9saW5lOiAxLCBmaXJzdF9jb2x1bW46IDEsIGxhc3RfY29sdW1uOiAxIH0sXG4gICAgICAgIGV4cGVjdGVkOiBbXCJjaGVycnktcGljayBhYmNcIl1cbiAgICAgIH07XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgY29uc3QgY29tbWl0MiA9IHtcbiAgICAgIGlkOiBzZXEgKyBcIi1cIiArIGdldElkKCksXG4gICAgICBtZXNzYWdlOiBcImNoZXJyeS1waWNrZWQgXCIgKyBzb3VyY2VDb21taXQgKyBcIiBpbnRvIFwiICsgY3VyQnJhbmNoLFxuICAgICAgc2VxOiBzZXErKyxcbiAgICAgIHBhcmVudHM6IFtoZWFkID09IG51bGwgPyBudWxsIDogaGVhZC5pZCwgc291cmNlQ29tbWl0LmlkXSxcbiAgICAgIGJyYW5jaDogY3VyQnJhbmNoLFxuICAgICAgdHlwZTogY29tbWl0VHlwZSQxLkNIRVJSWV9QSUNLLFxuICAgICAgdGFnOiB0YWcgPz8gYGNoZXJyeS1waWNrOiR7c291cmNlQ29tbWl0LmlkfSR7c291cmNlQ29tbWl0LnR5cGUgPT09IGNvbW1pdFR5cGUkMS5NRVJHRSA/IGB8cGFyZW50OiR7cGFyZW50Q29tbWl0SWR9YCA6IFwiXCJ9YFxuICAgIH07XG4gICAgaGVhZCA9IGNvbW1pdDI7XG4gICAgY29tbWl0c1tjb21taXQyLmlkXSA9IGNvbW1pdDI7XG4gICAgYnJhbmNoZXNbY3VyQnJhbmNoXSA9IGNvbW1pdDIuaWQ7XG4gICAgbG9nLmRlYnVnKGJyYW5jaGVzKTtcbiAgICBsb2cuZGVidWcoXCJpbiBjaGVycnlQaWNrXCIpO1xuICB9XG59O1xuY29uc3QgY2hlY2tvdXQgPSBmdW5jdGlvbihicmFuY2gyKSB7XG4gIGJyYW5jaDIgPSBjb21tb24uc2FuaXRpemVUZXh0KGJyYW5jaDIsIGdldENvbmZpZygpKTtcbiAgaWYgKGJyYW5jaGVzW2JyYW5jaDJdID09PSB2b2lkIDApIHtcbiAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAnVHJ5aW5nIHRvIGNoZWNrb3V0IGJyYW5jaCB3aGljaCBpcyBub3QgeWV0IGNyZWF0ZWQuIChIZWxwIHRyeSB1c2luZyBcImJyYW5jaCAnICsgYnJhbmNoMiArICdcIiknXG4gICAgKTtcbiAgICBlcnJvci5oYXNoID0ge1xuICAgICAgdGV4dDogXCJjaGVja291dCBcIiArIGJyYW5jaDIsXG4gICAgICB0b2tlbjogXCJjaGVja291dCBcIiArIGJyYW5jaDIsXG4gICAgICBsaW5lOiBcIjFcIixcbiAgICAgIGxvYzogeyBmaXJzdF9saW5lOiAxLCBsYXN0X2xpbmU6IDEsIGZpcnN0X2NvbHVtbjogMSwgbGFzdF9jb2x1bW46IDEgfSxcbiAgICAgIGV4cGVjdGVkOiBbJ1wiYnJhbmNoICcgKyBicmFuY2gyICsgJ1wiJ11cbiAgICB9O1xuICAgIHRocm93IGVycm9yO1xuICB9IGVsc2Uge1xuICAgIGN1ckJyYW5jaCA9IGJyYW5jaDI7XG4gICAgY29uc3QgaWQgPSBicmFuY2hlc1tjdXJCcmFuY2hdO1xuICAgIGhlYWQgPSBjb21taXRzW2lkXTtcbiAgfVxufTtcbmZ1bmN0aW9uIHVwc2VydChhcnIsIGtleSwgbmV3VmFsKSB7XG4gIGNvbnN0IGluZGV4ID0gYXJyLmluZGV4T2Yoa2V5KTtcbiAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgIGFyci5wdXNoKG5ld1ZhbCk7XG4gIH0gZWxzZSB7XG4gICAgYXJyLnNwbGljZShpbmRleCwgMSwgbmV3VmFsKTtcbiAgfVxufVxuZnVuY3Rpb24gcHJldHR5UHJpbnRDb21taXRIaXN0b3J5KGNvbW1pdEFycikge1xuICBjb25zdCBjb21taXQyID0gY29tbWl0QXJyLnJlZHVjZSgob3V0LCBjb21taXQzKSA9PiB7XG4gICAgaWYgKG91dC5zZXEgPiBjb21taXQzLnNlcSkge1xuICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG4gICAgcmV0dXJuIGNvbW1pdDM7XG4gIH0sIGNvbW1pdEFyclswXSk7XG4gIGxldCBsaW5lID0gXCJcIjtcbiAgY29tbWl0QXJyLmZvckVhY2goZnVuY3Rpb24oYykge1xuICAgIGlmIChjID09PSBjb21taXQyKSB7XG4gICAgICBsaW5lICs9IFwiXHQqXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpbmUgKz0gXCJcdHxcIjtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBsYWJlbCA9IFtsaW5lLCBjb21taXQyLmlkLCBjb21taXQyLnNlcV07XG4gIGZvciAobGV0IGJyYW5jaDIgaW4gYnJhbmNoZXMpIHtcbiAgICBpZiAoYnJhbmNoZXNbYnJhbmNoMl0gPT09IGNvbW1pdDIuaWQpIHtcbiAgICAgIGxhYmVsLnB1c2goYnJhbmNoMik7XG4gICAgfVxuICB9XG4gIGxvZy5kZWJ1ZyhsYWJlbC5qb2luKFwiIFwiKSk7XG4gIGlmIChjb21taXQyLnBhcmVudHMgJiYgY29tbWl0Mi5wYXJlbnRzLmxlbmd0aCA9PSAyKSB7XG4gICAgY29uc3QgbmV3Q29tbWl0ID0gY29tbWl0c1tjb21taXQyLnBhcmVudHNbMF1dO1xuICAgIHVwc2VydChjb21taXRBcnIsIGNvbW1pdDIsIG5ld0NvbW1pdCk7XG4gICAgY29tbWl0QXJyLnB1c2goY29tbWl0c1tjb21taXQyLnBhcmVudHNbMV1dKTtcbiAgfSBlbHNlIGlmIChjb21taXQyLnBhcmVudHMubGVuZ3RoID09IDApIHtcbiAgICByZXR1cm47XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbmV4dENvbW1pdCA9IGNvbW1pdHNbY29tbWl0Mi5wYXJlbnRzXTtcbiAgICB1cHNlcnQoY29tbWl0QXJyLCBjb21taXQyLCBuZXh0Q29tbWl0KTtcbiAgfVxuICBjb21taXRBcnIgPSB1bmlxQnkoY29tbWl0QXJyLCAoYykgPT4gYy5pZCk7XG4gIHByZXR0eVByaW50Q29tbWl0SGlzdG9yeShjb21taXRBcnIpO1xufVxuY29uc3QgcHJldHR5UHJpbnQgPSBmdW5jdGlvbigpIHtcbiAgbG9nLmRlYnVnKGNvbW1pdHMpO1xuICBjb25zdCBub2RlID0gZ2V0Q29tbWl0c0FycmF5KClbMF07XG4gIHByZXR0eVByaW50Q29tbWl0SGlzdG9yeShbbm9kZV0pO1xufTtcbmNvbnN0IGNsZWFyJDEgPSBmdW5jdGlvbigpIHtcbiAgY29tbWl0cyA9IHt9O1xuICBoZWFkID0gbnVsbDtcbiAgbGV0IG1haW5CcmFuY2ggPSBnZXRDb25maWcoKS5naXRHcmFwaC5tYWluQnJhbmNoTmFtZTtcbiAgbGV0IG1haW5CcmFuY2hPcmRlcjIgPSBnZXRDb25maWcoKS5naXRHcmFwaC5tYWluQnJhbmNoT3JkZXI7XG4gIGJyYW5jaGVzID0ge307XG4gIGJyYW5jaGVzW21haW5CcmFuY2hdID0gbnVsbDtcbiAgYnJhbmNoZXNDb25maWcgPSB7fTtcbiAgYnJhbmNoZXNDb25maWdbbWFpbkJyYW5jaF0gPSB7IG5hbWU6IG1haW5CcmFuY2gsIG9yZGVyOiBtYWluQnJhbmNoT3JkZXIyIH07XG4gIGN1ckJyYW5jaCA9IG1haW5CcmFuY2g7XG4gIHNlcSA9IDA7XG4gIGNsZWFyJDIoKTtcbn07XG5jb25zdCBnZXRCcmFuY2hlc0FzT2JqQXJyYXkgPSBmdW5jdGlvbigpIHtcbiAgY29uc3QgYnJhbmNoZXNBcnJheSA9IE9iamVjdC52YWx1ZXMoYnJhbmNoZXNDb25maWcpLm1hcCgoYnJhbmNoQ29uZmlnLCBpKSA9PiB7XG4gICAgaWYgKGJyYW5jaENvbmZpZy5vcmRlciAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGJyYW5jaENvbmZpZztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJyYW5jaENvbmZpZyxcbiAgICAgIG9yZGVyOiBwYXJzZUZsb2F0KGAwLiR7aX1gLCAxMClcbiAgICB9O1xuICB9KS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikubWFwKCh7IG5hbWUgfSkgPT4gKHsgbmFtZSB9KSk7XG4gIHJldHVybiBicmFuY2hlc0FycmF5O1xufTtcbmNvbnN0IGdldEJyYW5jaGVzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBicmFuY2hlcztcbn07XG5jb25zdCBnZXRDb21taXRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBjb21taXRzO1xufTtcbmNvbnN0IGdldENvbW1pdHNBcnJheSA9IGZ1bmN0aW9uKCkge1xuICBjb25zdCBjb21taXRBcnIgPSBPYmplY3Qua2V5cyhjb21taXRzKS5tYXAoZnVuY3Rpb24oa2V5KSB7XG4gICAgcmV0dXJuIGNvbW1pdHNba2V5XTtcbiAgfSk7XG4gIGNvbW1pdEFyci5mb3JFYWNoKGZ1bmN0aW9uKG8pIHtcbiAgICBsb2cuZGVidWcoby5pZCk7XG4gIH0pO1xuICBjb21taXRBcnIuc29ydCgoYSwgYikgPT4gYS5zZXEgLSBiLnNlcSk7XG4gIHJldHVybiBjb21taXRBcnI7XG59O1xuY29uc3QgZ2V0Q3VycmVudEJyYW5jaCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gY3VyQnJhbmNoO1xufTtcbmNvbnN0IGdldERpcmVjdGlvbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gZGlyZWN0aW9uO1xufTtcbmNvbnN0IGdldEhlYWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGhlYWQ7XG59O1xuY29uc3QgY29tbWl0VHlwZSQxID0ge1xuICBOT1JNQUw6IDAsXG4gIFJFVkVSU0U6IDEsXG4gIEhJR0hMSUdIVDogMixcbiAgTUVSR0U6IDMsXG4gIENIRVJSWV9QSUNLOiA0XG59O1xuY29uc3QgZ2l0R3JhcGhEYiA9IHtcbiAgZ2V0Q29uZmlnOiAoKSA9PiBnZXRDb25maWcoKS5naXRHcmFwaCxcbiAgc2V0RGlyZWN0aW9uLFxuICBzZXRPcHRpb25zLFxuICBnZXRPcHRpb25zLFxuICBjb21taXQsXG4gIGJyYW5jaCxcbiAgbWVyZ2UsXG4gIGNoZXJyeVBpY2ssXG4gIGNoZWNrb3V0LFxuICAvL3Jlc2V0LFxuICBwcmV0dHlQcmludCxcbiAgY2xlYXI6IGNsZWFyJDEsXG4gIGdldEJyYW5jaGVzQXNPYmpBcnJheSxcbiAgZ2V0QnJhbmNoZXMsXG4gIGdldENvbW1pdHMsXG4gIGdldENvbW1pdHNBcnJheSxcbiAgZ2V0Q3VycmVudEJyYW5jaCxcbiAgZ2V0RGlyZWN0aW9uLFxuICBnZXRIZWFkLFxuICBzZXRBY2NUaXRsZSxcbiAgZ2V0QWNjVGl0bGUsXG4gIGdldEFjY0Rlc2NyaXB0aW9uLFxuICBzZXRBY2NEZXNjcmlwdGlvbixcbiAgc2V0RGlhZ3JhbVRpdGxlLFxuICBnZXREaWFncmFtVGl0bGUsXG4gIGNvbW1pdFR5cGU6IGNvbW1pdFR5cGUkMVxufTtcbmxldCBhbGxDb21taXRzRGljdCA9IHt9O1xuY29uc3QgY29tbWl0VHlwZSA9IHtcbiAgTk9STUFMOiAwLFxuICBSRVZFUlNFOiAxLFxuICBISUdITElHSFQ6IDIsXG4gIE1FUkdFOiAzLFxuICBDSEVSUllfUElDSzogNFxufTtcbmNvbnN0IFRIRU1FX0NPTE9SX0xJTUlUID0gODtcbmxldCBicmFuY2hQb3MgPSB7fTtcbmxldCBjb21taXRQb3MgPSB7fTtcbmxldCBsYW5lcyA9IFtdO1xubGV0IG1heFBvcyA9IDA7XG5sZXQgZGlyID0gXCJMUlwiO1xuY29uc3QgY2xlYXIgPSAoKSA9PiB7XG4gIGJyYW5jaFBvcyA9IHt9O1xuICBjb21taXRQb3MgPSB7fTtcbiAgYWxsQ29tbWl0c0RpY3QgPSB7fTtcbiAgbWF4UG9zID0gMDtcbiAgbGFuZXMgPSBbXTtcbiAgZGlyID0gXCJMUlwiO1xufTtcbmNvbnN0IGRyYXdUZXh0ID0gKHR4dCkgPT4ge1xuICBjb25zdCBzdmdMYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwidGV4dFwiKTtcbiAgbGV0IHJvd3MgPSBbXTtcbiAgaWYgKHR5cGVvZiB0eHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICByb3dzID0gdHh0LnNwbGl0KC9cXFxcbnxcXG58PGJyXFxzKlxcLz8+L2dpKTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHR4dCkpIHtcbiAgICByb3dzID0gdHh0O1xuICB9IGVsc2Uge1xuICAgIHJvd3MgPSBbXTtcbiAgfVxuICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgY29uc3QgdHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcInRzcGFuXCIpO1xuICAgIHRzcGFuLnNldEF0dHJpYnV0ZU5TKFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsIFwieG1sOnNwYWNlXCIsIFwicHJlc2VydmVcIik7XG4gICAgdHNwYW4uc2V0QXR0cmlidXRlKFwiZHlcIiwgXCIxZW1cIik7XG4gICAgdHNwYW4uc2V0QXR0cmlidXRlKFwieFwiLCBcIjBcIik7XG4gICAgdHNwYW4uc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgXCJyb3dcIik7XG4gICAgdHNwYW4udGV4dENvbnRlbnQgPSByb3cudHJpbSgpO1xuICAgIHN2Z0xhYmVsLmFwcGVuZENoaWxkKHRzcGFuKTtcbiAgfVxuICByZXR1cm4gc3ZnTGFiZWw7XG59O1xuY29uc3QgZmluZENsb3Nlc3RQYXJlbnQgPSAocGFyZW50cykgPT4ge1xuICBsZXQgY2xvc2VzdFBhcmVudCA9IFwiXCI7XG4gIGxldCBtYXhQb3NpdGlvbiA9IDA7XG4gIHBhcmVudHMuZm9yRWFjaCgocGFyZW50KSA9PiB7XG4gICAgY29uc3QgcGFyZW50UG9zaXRpb24gPSBkaXIgPT09IFwiVEJcIiA/IGNvbW1pdFBvc1twYXJlbnRdLnkgOiBjb21taXRQb3NbcGFyZW50XS54O1xuICAgIGlmIChwYXJlbnRQb3NpdGlvbiA+PSBtYXhQb3NpdGlvbikge1xuICAgICAgY2xvc2VzdFBhcmVudCA9IHBhcmVudDtcbiAgICAgIG1heFBvc2l0aW9uID0gcGFyZW50UG9zaXRpb247XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGNsb3Nlc3RQYXJlbnQgfHwgdm9pZCAwO1xufTtcbmNvbnN0IGRyYXdDb21taXRzID0gKHN2ZywgY29tbWl0czIsIG1vZGlmeUdyYXBoKSA9PiB7XG4gIGNvbnN0IGdpdEdyYXBoQ29uZmlnID0gZ2V0Q29uZmlnKCkuZ2l0R3JhcGg7XG4gIGNvbnN0IGdCdWxsZXRzID0gc3ZnLmFwcGVuZChcImdcIikuYXR0cihcImNsYXNzXCIsIFwiY29tbWl0LWJ1bGxldHNcIik7XG4gIGNvbnN0IGdMYWJlbHMgPSBzdmcuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJjb21taXQtbGFiZWxzXCIpO1xuICBsZXQgcG9zID0gMDtcbiAgaWYgKGRpciA9PT0gXCJUQlwiKSB7XG4gICAgcG9zID0gMzA7XG4gIH1cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbW1pdHMyKTtcbiAgY29uc3Qgc29ydGVkS2V5cyA9IGtleXMuc29ydCgoYSwgYikgPT4ge1xuICAgIHJldHVybiBjb21taXRzMlthXS5zZXEgLSBjb21taXRzMltiXS5zZXE7XG4gIH0pO1xuICBjb25zdCBpc1BhcmFsbGVsQ29tbWl0cyA9IGdpdEdyYXBoQ29uZmlnLnBhcmFsbGVsQ29tbWl0cztcbiAgY29uc3QgbGF5b3V0T2Zmc2V0ID0gMTA7XG4gIGNvbnN0IGNvbW1pdFN0ZXAgPSA0MDtcbiAgc29ydGVkS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCBjb21taXQyID0gY29tbWl0czJba2V5XTtcbiAgICBpZiAoaXNQYXJhbGxlbENvbW1pdHMpIHtcbiAgICAgIGlmIChjb21taXQyLnBhcmVudHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGNsb3Nlc3RQYXJlbnQgPSBmaW5kQ2xvc2VzdFBhcmVudChjb21taXQyLnBhcmVudHMpO1xuICAgICAgICBwb3MgPSBkaXIgPT09IFwiVEJcIiA/IGNvbW1pdFBvc1tjbG9zZXN0UGFyZW50XS55ICsgY29tbWl0U3RlcCA6IGNvbW1pdFBvc1tjbG9zZXN0UGFyZW50XS54ICsgY29tbWl0U3RlcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvcyA9IDA7XG4gICAgICAgIGlmIChkaXIgPT09IFwiVEJcIikge1xuICAgICAgICAgIHBvcyA9IDMwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHBvc1dpdGhPZmZzZXQgPSBwb3MgKyBsYXlvdXRPZmZzZXQ7XG4gICAgY29uc3QgeSA9IGRpciA9PT0gXCJUQlwiID8gcG9zV2l0aE9mZnNldCA6IGJyYW5jaFBvc1tjb21taXQyLmJyYW5jaF0ucG9zO1xuICAgIGNvbnN0IHggPSBkaXIgPT09IFwiVEJcIiA/IGJyYW5jaFBvc1tjb21taXQyLmJyYW5jaF0ucG9zIDogcG9zV2l0aE9mZnNldDtcbiAgICBpZiAobW9kaWZ5R3JhcGgpIHtcbiAgICAgIGxldCB0eXBlQ2xhc3M7XG4gICAgICBsZXQgY29tbWl0U3ltYm9sVHlwZSA9IGNvbW1pdDIuY3VzdG9tVHlwZSAhPT0gdm9pZCAwICYmIGNvbW1pdDIuY3VzdG9tVHlwZSAhPT0gXCJcIiA/IGNvbW1pdDIuY3VzdG9tVHlwZSA6IGNvbW1pdDIudHlwZTtcbiAgICAgIHN3aXRjaCAoY29tbWl0U3ltYm9sVHlwZSkge1xuICAgICAgICBjYXNlIGNvbW1pdFR5cGUuTk9STUFMOlxuICAgICAgICAgIHR5cGVDbGFzcyA9IFwiY29tbWl0LW5vcm1hbFwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIGNvbW1pdFR5cGUuUkVWRVJTRTpcbiAgICAgICAgICB0eXBlQ2xhc3MgPSBcImNvbW1pdC1yZXZlcnNlXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgY29tbWl0VHlwZS5ISUdITElHSFQ6XG4gICAgICAgICAgdHlwZUNsYXNzID0gXCJjb21taXQtaGlnaGxpZ2h0XCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgY29tbWl0VHlwZS5NRVJHRTpcbiAgICAgICAgICB0eXBlQ2xhc3MgPSBcImNvbW1pdC1tZXJnZVwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIGNvbW1pdFR5cGUuQ0hFUlJZX1BJQ0s6XG4gICAgICAgICAgdHlwZUNsYXNzID0gXCJjb21taXQtY2hlcnJ5LXBpY2tcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0eXBlQ2xhc3MgPSBcImNvbW1pdC1ub3JtYWxcIjtcbiAgICAgIH1cbiAgICAgIGlmIChjb21taXRTeW1ib2xUeXBlID09PSBjb21taXRUeXBlLkhJR0hMSUdIVCkge1xuICAgICAgICBjb25zdCBjaXJjbGUgPSBnQnVsbGV0cy5hcHBlbmQoXCJyZWN0XCIpO1xuICAgICAgICBjaXJjbGUuYXR0cihcInhcIiwgeCAtIDEwKTtcbiAgICAgICAgY2lyY2xlLmF0dHIoXCJ5XCIsIHkgLSAxMCk7XG4gICAgICAgIGNpcmNsZS5hdHRyKFwiaGVpZ2h0XCIsIDIwKTtcbiAgICAgICAgY2lyY2xlLmF0dHIoXCJ3aWR0aFwiLCAyMCk7XG4gICAgICAgIGNpcmNsZS5hdHRyKFxuICAgICAgICAgIFwiY2xhc3NcIixcbiAgICAgICAgICBgY29tbWl0ICR7Y29tbWl0Mi5pZH0gY29tbWl0LWhpZ2hsaWdodCR7YnJhbmNoUG9zW2NvbW1pdDIuYnJhbmNoXS5pbmRleCAlIFRIRU1FX0NPTE9SX0xJTUlUfSAke3R5cGVDbGFzc30tb3V0ZXJgXG4gICAgICAgICk7XG4gICAgICAgIGdCdWxsZXRzLmFwcGVuZChcInJlY3RcIikuYXR0cihcInhcIiwgeCAtIDYpLmF0dHIoXCJ5XCIsIHkgLSA2KS5hdHRyKFwiaGVpZ2h0XCIsIDEyKS5hdHRyKFwid2lkdGhcIiwgMTIpLmF0dHIoXG4gICAgICAgICAgXCJjbGFzc1wiLFxuICAgICAgICAgIGBjb21taXQgJHtjb21taXQyLmlkfSBjb21taXQke2JyYW5jaFBvc1tjb21taXQyLmJyYW5jaF0uaW5kZXggJSBUSEVNRV9DT0xPUl9MSU1JVH0gJHt0eXBlQ2xhc3N9LWlubmVyYFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChjb21taXRTeW1ib2xUeXBlID09PSBjb21taXRUeXBlLkNIRVJSWV9QSUNLKSB7XG4gICAgICAgIGdCdWxsZXRzLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwiY3hcIiwgeCkuYXR0cihcImN5XCIsIHkpLmF0dHIoXCJyXCIsIDEwKS5hdHRyKFwiY2xhc3NcIiwgYGNvbW1pdCAke2NvbW1pdDIuaWR9ICR7dHlwZUNsYXNzfWApO1xuICAgICAgICBnQnVsbGV0cy5hcHBlbmQoXCJjaXJjbGVcIikuYXR0cihcImN4XCIsIHggLSAzKS5hdHRyKFwiY3lcIiwgeSArIDIpLmF0dHIoXCJyXCIsIDIuNzUpLmF0dHIoXCJmaWxsXCIsIFwiI2ZmZlwiKS5hdHRyKFwiY2xhc3NcIiwgYGNvbW1pdCAke2NvbW1pdDIuaWR9ICR7dHlwZUNsYXNzfWApO1xuICAgICAgICBnQnVsbGV0cy5hcHBlbmQoXCJjaXJjbGVcIikuYXR0cihcImN4XCIsIHggKyAzKS5hdHRyKFwiY3lcIiwgeSArIDIpLmF0dHIoXCJyXCIsIDIuNzUpLmF0dHIoXCJmaWxsXCIsIFwiI2ZmZlwiKS5hdHRyKFwiY2xhc3NcIiwgYGNvbW1pdCAke2NvbW1pdDIuaWR9ICR7dHlwZUNsYXNzfWApO1xuICAgICAgICBnQnVsbGV0cy5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJ4MVwiLCB4ICsgMykuYXR0cihcInkxXCIsIHkgKyAxKS5hdHRyKFwieDJcIiwgeCkuYXR0cihcInkyXCIsIHkgLSA1KS5hdHRyKFwic3Ryb2tlXCIsIFwiI2ZmZlwiKS5hdHRyKFwiY2xhc3NcIiwgYGNvbW1pdCAke2NvbW1pdDIuaWR9ICR7dHlwZUNsYXNzfWApO1xuICAgICAgICBnQnVsbGV0cy5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJ4MVwiLCB4IC0gMykuYXR0cihcInkxXCIsIHkgKyAxKS5hdHRyKFwieDJcIiwgeCkuYXR0cihcInkyXCIsIHkgLSA1KS5hdHRyKFwic3Ryb2tlXCIsIFwiI2ZmZlwiKS5hdHRyKFwiY2xhc3NcIiwgYGNvbW1pdCAke2NvbW1pdDIuaWR9ICR7dHlwZUNsYXNzfWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY2lyY2xlID0gZ0J1bGxldHMuYXBwZW5kKFwiY2lyY2xlXCIpO1xuICAgICAgICBjaXJjbGUuYXR0cihcImN4XCIsIHgpO1xuICAgICAgICBjaXJjbGUuYXR0cihcImN5XCIsIHkpO1xuICAgICAgICBjaXJjbGUuYXR0cihcInJcIiwgY29tbWl0Mi50eXBlID09PSBjb21taXRUeXBlLk1FUkdFID8gOSA6IDEwKTtcbiAgICAgICAgY2lyY2xlLmF0dHIoXG4gICAgICAgICAgXCJjbGFzc1wiLFxuICAgICAgICAgIGBjb21taXQgJHtjb21taXQyLmlkfSBjb21taXQke2JyYW5jaFBvc1tjb21taXQyLmJyYW5jaF0uaW5kZXggJSBUSEVNRV9DT0xPUl9MSU1JVH1gXG4gICAgICAgICk7XG4gICAgICAgIGlmIChjb21taXRTeW1ib2xUeXBlID09PSBjb21taXRUeXBlLk1FUkdFKSB7XG4gICAgICAgICAgY29uc3QgY2lyY2xlMiA9IGdCdWxsZXRzLmFwcGVuZChcImNpcmNsZVwiKTtcbiAgICAgICAgICBjaXJjbGUyLmF0dHIoXCJjeFwiLCB4KTtcbiAgICAgICAgICBjaXJjbGUyLmF0dHIoXCJjeVwiLCB5KTtcbiAgICAgICAgICBjaXJjbGUyLmF0dHIoXCJyXCIsIDYpO1xuICAgICAgICAgIGNpcmNsZTIuYXR0cihcbiAgICAgICAgICAgIFwiY2xhc3NcIixcbiAgICAgICAgICAgIGBjb21taXQgJHt0eXBlQ2xhc3N9ICR7Y29tbWl0Mi5pZH0gY29tbWl0JHticmFuY2hQb3NbY29tbWl0Mi5icmFuY2hdLmluZGV4ICUgVEhFTUVfQ09MT1JfTElNSVR9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbW1pdFN5bWJvbFR5cGUgPT09IGNvbW1pdFR5cGUuUkVWRVJTRSkge1xuICAgICAgICAgIGNvbnN0IGNyb3NzID0gZ0J1bGxldHMuYXBwZW5kKFwicGF0aFwiKTtcbiAgICAgICAgICBjcm9zcy5hdHRyKFwiZFwiLCBgTSAke3ggLSA1fSwke3kgLSA1fUwke3ggKyA1fSwke3kgKyA1fU0ke3ggLSA1fSwke3kgKyA1fUwke3ggKyA1fSwke3kgLSA1fWApLmF0dHIoXG4gICAgICAgICAgICBcImNsYXNzXCIsXG4gICAgICAgICAgICBgY29tbWl0ICR7dHlwZUNsYXNzfSAke2NvbW1pdDIuaWR9IGNvbW1pdCR7YnJhbmNoUG9zW2NvbW1pdDIuYnJhbmNoXS5pbmRleCAlIFRIRU1FX0NPTE9SX0xJTUlUfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkaXIgPT09IFwiVEJcIikge1xuICAgICAgY29tbWl0UG9zW2NvbW1pdDIuaWRdID0geyB4LCB5OiBwb3NXaXRoT2Zmc2V0IH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbW1pdFBvc1tjb21taXQyLmlkXSA9IHsgeDogcG9zV2l0aE9mZnNldCwgeSB9O1xuICAgIH1cbiAgICBpZiAobW9kaWZ5R3JhcGgpIHtcbiAgICAgIGNvbnN0IHB4ID0gNDtcbiAgICAgIGNvbnN0IHB5ID0gMjtcbiAgICAgIGlmIChjb21taXQyLnR5cGUgIT09IGNvbW1pdFR5cGUuQ0hFUlJZX1BJQ0sgJiYgKGNvbW1pdDIuY3VzdG9tSWQgJiYgY29tbWl0Mi50eXBlID09PSBjb21taXRUeXBlLk1FUkdFIHx8IGNvbW1pdDIudHlwZSAhPT0gY29tbWl0VHlwZS5NRVJHRSkgJiYgZ2l0R3JhcGhDb25maWcuc2hvd0NvbW1pdExhYmVsKSB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBnTGFiZWxzLmFwcGVuZChcImdcIik7XG4gICAgICAgIGNvbnN0IGxhYmVsQmtnID0gd3JhcHBlci5pbnNlcnQoXCJyZWN0XCIpLmF0dHIoXCJjbGFzc1wiLCBcImNvbW1pdC1sYWJlbC1ia2dcIik7XG4gICAgICAgIGNvbnN0IHRleHQgPSB3cmFwcGVyLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgcG9zKS5hdHRyKFwieVwiLCB5ICsgMjUpLmF0dHIoXCJjbGFzc1wiLCBcImNvbW1pdC1sYWJlbFwiKS50ZXh0KGNvbW1pdDIuaWQpO1xuICAgICAgICBsZXQgYmJveCA9IHRleHQubm9kZSgpLmdldEJCb3goKTtcbiAgICAgICAgbGFiZWxCa2cuYXR0cihcInhcIiwgcG9zV2l0aE9mZnNldCAtIGJib3gud2lkdGggLyAyIC0gcHkpLmF0dHIoXCJ5XCIsIHkgKyAxMy41KS5hdHRyKFwid2lkdGhcIiwgYmJveC53aWR0aCArIDIgKiBweSkuYXR0cihcImhlaWdodFwiLCBiYm94LmhlaWdodCArIDIgKiBweSk7XG4gICAgICAgIGlmIChkaXIgPT09IFwiVEJcIikge1xuICAgICAgICAgIGxhYmVsQmtnLmF0dHIoXCJ4XCIsIHggLSAoYmJveC53aWR0aCArIDQgKiBweCArIDUpKS5hdHRyKFwieVwiLCB5IC0gMTIpO1xuICAgICAgICAgIHRleHQuYXR0cihcInhcIiwgeCAtIChiYm94LndpZHRoICsgNCAqIHB4KSkuYXR0cihcInlcIiwgeSArIGJib3guaGVpZ2h0IC0gMTIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkaXIgIT09IFwiVEJcIikge1xuICAgICAgICAgIHRleHQuYXR0cihcInhcIiwgcG9zV2l0aE9mZnNldCAtIGJib3gud2lkdGggLyAyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZ2l0R3JhcGhDb25maWcucm90YXRlQ29tbWl0TGFiZWwpIHtcbiAgICAgICAgICBpZiAoZGlyID09PSBcIlRCXCIpIHtcbiAgICAgICAgICAgIHRleHQuYXR0cihcInRyYW5zZm9ybVwiLCBcInJvdGF0ZSgtNDUsIFwiICsgeCArIFwiLCBcIiArIHkgKyBcIilcIik7XG4gICAgICAgICAgICBsYWJlbEJrZy5hdHRyKFwidHJhbnNmb3JtXCIsIFwicm90YXRlKC00NSwgXCIgKyB4ICsgXCIsIFwiICsgeSArIFwiKVwiKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJfeCA9IC03LjUgLSAoYmJveC53aWR0aCArIDEwKSAvIDI1ICogOS41O1xuICAgICAgICAgICAgbGV0IHJfeSA9IDEwICsgYmJveC53aWR0aCAvIDI1ICogOC41O1xuICAgICAgICAgICAgd3JhcHBlci5hdHRyKFxuICAgICAgICAgICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgICAgICAgICBcInRyYW5zbGF0ZShcIiArIHJfeCArIFwiLCBcIiArIHJfeSArIFwiKSByb3RhdGUoLTQ1LCBcIiArIHBvcyArIFwiLCBcIiArIHkgKyBcIilcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb21taXQyLnRhZykge1xuICAgICAgICBjb25zdCByZWN0ID0gZ0xhYmVscy5pbnNlcnQoXCJwb2x5Z29uXCIpO1xuICAgICAgICBjb25zdCBob2xlID0gZ0xhYmVscy5hcHBlbmQoXCJjaXJjbGVcIik7XG4gICAgICAgIGNvbnN0IHRhZyA9IGdMYWJlbHMuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwieVwiLCB5IC0gMTYpLmF0dHIoXCJjbGFzc1wiLCBcInRhZy1sYWJlbFwiKS50ZXh0KGNvbW1pdDIudGFnKTtcbiAgICAgICAgbGV0IHRhZ0Jib3ggPSB0YWcubm9kZSgpLmdldEJCb3goKTtcbiAgICAgICAgdGFnLmF0dHIoXCJ4XCIsIHBvc1dpdGhPZmZzZXQgLSB0YWdCYm94LndpZHRoIC8gMik7XG4gICAgICAgIGNvbnN0IGgyID0gdGFnQmJveC5oZWlnaHQgLyAyO1xuICAgICAgICBjb25zdCBseSA9IHkgLSAxOS4yO1xuICAgICAgICByZWN0LmF0dHIoXCJjbGFzc1wiLCBcInRhZy1sYWJlbC1ia2dcIikuYXR0cihcbiAgICAgICAgICBcInBvaW50c1wiLFxuICAgICAgICAgIGBcbiAgICAgICAgICAke3BvcyAtIHRhZ0Jib3gud2lkdGggLyAyIC0gcHggLyAyfSwke2x5ICsgcHl9XG4gICAgICAgICAgJHtwb3MgLSB0YWdCYm94LndpZHRoIC8gMiAtIHB4IC8gMn0sJHtseSAtIHB5fVxuICAgICAgICAgICR7cG9zV2l0aE9mZnNldCAtIHRhZ0Jib3gud2lkdGggLyAyIC0gcHh9LCR7bHkgLSBoMiAtIHB5fVxuICAgICAgICAgICR7cG9zV2l0aE9mZnNldCArIHRhZ0Jib3gud2lkdGggLyAyICsgcHh9LCR7bHkgLSBoMiAtIHB5fVxuICAgICAgICAgICR7cG9zV2l0aE9mZnNldCArIHRhZ0Jib3gud2lkdGggLyAyICsgcHh9LCR7bHkgKyBoMiArIHB5fVxuICAgICAgICAgICR7cG9zV2l0aE9mZnNldCAtIHRhZ0Jib3gud2lkdGggLyAyIC0gcHh9LCR7bHkgKyBoMiArIHB5fWBcbiAgICAgICAgKTtcbiAgICAgICAgaG9sZS5hdHRyKFwiY3hcIiwgcG9zIC0gdGFnQmJveC53aWR0aCAvIDIgKyBweCAvIDIpLmF0dHIoXCJjeVwiLCBseSkuYXR0cihcInJcIiwgMS41KS5hdHRyKFwiY2xhc3NcIiwgXCJ0YWctaG9sZVwiKTtcbiAgICAgICAgaWYgKGRpciA9PT0gXCJUQlwiKSB7XG4gICAgICAgICAgcmVjdC5hdHRyKFwiY2xhc3NcIiwgXCJ0YWctbGFiZWwtYmtnXCIpLmF0dHIoXG4gICAgICAgICAgICBcInBvaW50c1wiLFxuICAgICAgICAgICAgYFxuICAgICAgICAgICAgJHt4fSwke3BvcyArIHB5fVxuICAgICAgICAgICAgJHt4fSwke3BvcyAtIHB5fVxuICAgICAgICAgICAgJHt4ICsgbGF5b3V0T2Zmc2V0fSwke3BvcyAtIGgyIC0gcHl9XG4gICAgICAgICAgICAke3ggKyBsYXlvdXRPZmZzZXQgKyB0YWdCYm94LndpZHRoICsgcHh9LCR7cG9zIC0gaDIgLSBweX1cbiAgICAgICAgICAgICR7eCArIGxheW91dE9mZnNldCArIHRhZ0Jib3gud2lkdGggKyBweH0sJHtwb3MgKyBoMiArIHB5fVxuICAgICAgICAgICAgJHt4ICsgbGF5b3V0T2Zmc2V0fSwke3BvcyArIGgyICsgcHl9YFxuICAgICAgICAgICkuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZSgxMiwxMikgcm90YXRlKDQ1LCBcIiArIHggKyBcIixcIiArIHBvcyArIFwiKVwiKTtcbiAgICAgICAgICBob2xlLmF0dHIoXCJjeFwiLCB4ICsgcHggLyAyKS5hdHRyKFwiY3lcIiwgcG9zKS5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKDEyLDEyKSByb3RhdGUoNDUsIFwiICsgeCArIFwiLFwiICsgcG9zICsgXCIpXCIpO1xuICAgICAgICAgIHRhZy5hdHRyKFwieFwiLCB4ICsgNSkuYXR0cihcInlcIiwgcG9zICsgMykuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZSgxNCwxNCkgcm90YXRlKDQ1LCBcIiArIHggKyBcIixcIiArIHBvcyArIFwiKVwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBwb3MgKz0gY29tbWl0U3RlcCArIGxheW91dE9mZnNldDtcbiAgICBpZiAocG9zID4gbWF4UG9zKSB7XG4gICAgICBtYXhQb3MgPSBwb3M7XG4gICAgfVxuICB9KTtcbn07XG5jb25zdCBzaG91bGRSZXJvdXRlQXJyb3cgPSAoY29tbWl0QSwgY29tbWl0QiwgcDEsIHAyLCBhbGxDb21taXRzKSA9PiB7XG4gIGNvbnN0IGNvbW1pdEJJc0Z1cnRoZXN0ID0gZGlyID09PSBcIlRCXCIgPyBwMS54IDwgcDIueCA6IHAxLnkgPCBwMi55O1xuICBjb25zdCBicmFuY2hUb0dldEN1cnZlID0gY29tbWl0QklzRnVydGhlc3QgPyBjb21taXRCLmJyYW5jaCA6IGNvbW1pdEEuYnJhbmNoO1xuICBjb25zdCBpc09uQnJhbmNoVG9HZXRDdXJ2ZSA9ICh4KSA9PiB4LmJyYW5jaCA9PT0gYnJhbmNoVG9HZXRDdXJ2ZTtcbiAgY29uc3QgaXNCZXR3ZWVuQ29tbWl0cyA9ICh4KSA9PiB4LnNlcSA+IGNvbW1pdEEuc2VxICYmIHguc2VxIDwgY29tbWl0Qi5zZXE7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKGFsbENvbW1pdHMpLnNvbWUoKGNvbW1pdFgpID0+IHtcbiAgICByZXR1cm4gaXNCZXR3ZWVuQ29tbWl0cyhjb21taXRYKSAmJiBpc09uQnJhbmNoVG9HZXRDdXJ2ZShjb21taXRYKTtcbiAgfSk7XG59O1xuY29uc3QgZmluZExhbmUgPSAoeTEsIHkyLCBkZXB0aCA9IDApID0+IHtcbiAgY29uc3QgY2FuZGlkYXRlID0geTEgKyBNYXRoLmFicyh5MSAtIHkyKSAvIDI7XG4gIGlmIChkZXB0aCA+IDUpIHtcbiAgICByZXR1cm4gY2FuZGlkYXRlO1xuICB9XG4gIGxldCBvayA9IGxhbmVzLmV2ZXJ5KChsYW5lKSA9PiBNYXRoLmFicyhsYW5lIC0gY2FuZGlkYXRlKSA+PSAxMCk7XG4gIGlmIChvaykge1xuICAgIGxhbmVzLnB1c2goY2FuZGlkYXRlKTtcbiAgICByZXR1cm4gY2FuZGlkYXRlO1xuICB9XG4gIGNvbnN0IGRpZmYgPSBNYXRoLmFicyh5MSAtIHkyKTtcbiAgcmV0dXJuIGZpbmRMYW5lKHkxLCB5MiAtIGRpZmYgLyA1LCBkZXB0aCArIDEpO1xufTtcbmNvbnN0IGRyYXdBcnJvdyA9IChzdmcsIGNvbW1pdEEsIGNvbW1pdEIsIGFsbENvbW1pdHMpID0+IHtcbiAgY29uc3QgcDEgPSBjb21taXRQb3NbY29tbWl0QS5pZF07XG4gIGNvbnN0IHAyID0gY29tbWl0UG9zW2NvbW1pdEIuaWRdO1xuICBjb25zdCBhcnJvd05lZWRzUmVyb3V0aW5nID0gc2hvdWxkUmVyb3V0ZUFycm93KGNvbW1pdEEsIGNvbW1pdEIsIHAxLCBwMiwgYWxsQ29tbWl0cyk7XG4gIGxldCBhcmMgPSBcIlwiO1xuICBsZXQgYXJjMiA9IFwiXCI7XG4gIGxldCByYWRpdXMgPSAwO1xuICBsZXQgb2Zmc2V0ID0gMDtcbiAgbGV0IGNvbG9yQ2xhc3NOdW0gPSBicmFuY2hQb3NbY29tbWl0Qi5icmFuY2hdLmluZGV4O1xuICBpZiAoY29tbWl0Qi50eXBlID09PSBjb21taXRUeXBlLk1FUkdFICYmIGNvbW1pdEEuaWQgIT09IGNvbW1pdEIucGFyZW50c1swXSkge1xuICAgIGNvbG9yQ2xhc3NOdW0gPSBicmFuY2hQb3NbY29tbWl0QS5icmFuY2hdLmluZGV4O1xuICB9XG4gIGxldCBsaW5lRGVmO1xuICBpZiAoYXJyb3dOZWVkc1Jlcm91dGluZykge1xuICAgIGFyYyA9IFwiQSAxMCAxMCwgMCwgMCwgMCxcIjtcbiAgICBhcmMyID0gXCJBIDEwIDEwLCAwLCAwLCAxLFwiO1xuICAgIHJhZGl1cyA9IDEwO1xuICAgIG9mZnNldCA9IDEwO1xuICAgIGNvbnN0IGxpbmVZID0gcDEueSA8IHAyLnkgPyBmaW5kTGFuZShwMS55LCBwMi55KSA6IGZpbmRMYW5lKHAyLnksIHAxLnkpO1xuICAgIGNvbnN0IGxpbmVYID0gcDEueCA8IHAyLnggPyBmaW5kTGFuZShwMS54LCBwMi54KSA6IGZpbmRMYW5lKHAyLngsIHAxLngpO1xuICAgIGlmIChkaXIgPT09IFwiVEJcIikge1xuICAgICAgaWYgKHAxLnggPCBwMi54KSB7XG4gICAgICAgIGxpbmVEZWYgPSBgTSAke3AxLnh9ICR7cDEueX0gTCAke2xpbmVYIC0gcmFkaXVzfSAke3AxLnl9ICR7YXJjMn0gJHtsaW5lWH0gJHtwMS55ICsgb2Zmc2V0fSBMICR7bGluZVh9ICR7cDIueSAtIHJhZGl1c30gJHthcmN9ICR7bGluZVggKyBvZmZzZXR9ICR7cDIueX0gTCAke3AyLnh9ICR7cDIueX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29sb3JDbGFzc051bSA9IGJyYW5jaFBvc1tjb21taXRBLmJyYW5jaF0uaW5kZXg7XG4gICAgICAgIGxpbmVEZWYgPSBgTSAke3AxLnh9ICR7cDEueX0gTCAke2xpbmVYICsgcmFkaXVzfSAke3AxLnl9ICR7YXJjfSAke2xpbmVYfSAke3AxLnkgKyBvZmZzZXR9IEwgJHtsaW5lWH0gJHtwMi55IC0gcmFkaXVzfSAke2FyYzJ9ICR7bGluZVggLSBvZmZzZXR9ICR7cDIueX0gTCAke3AyLnh9ICR7cDIueX1gO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocDEueSA8IHAyLnkpIHtcbiAgICAgICAgbGluZURlZiA9IGBNICR7cDEueH0gJHtwMS55fSBMICR7cDEueH0gJHtsaW5lWSAtIHJhZGl1c30gJHthcmN9ICR7cDEueCArIG9mZnNldH0gJHtsaW5lWX0gTCAke3AyLnggLSByYWRpdXN9ICR7bGluZVl9ICR7YXJjMn0gJHtwMi54fSAke2xpbmVZICsgb2Zmc2V0fSBMICR7cDIueH0gJHtwMi55fWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2xvckNsYXNzTnVtID0gYnJhbmNoUG9zW2NvbW1pdEEuYnJhbmNoXS5pbmRleDtcbiAgICAgICAgbGluZURlZiA9IGBNICR7cDEueH0gJHtwMS55fSBMICR7cDEueH0gJHtsaW5lWSArIHJhZGl1c30gJHthcmMyfSAke3AxLnggKyBvZmZzZXR9ICR7bGluZVl9IEwgJHtwMi54IC0gcmFkaXVzfSAke2xpbmVZfSAke2FyY30gJHtwMi54fSAke2xpbmVZIC0gb2Zmc2V0fSBMICR7cDIueH0gJHtwMi55fWA7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGFyYyA9IFwiQSAyMCAyMCwgMCwgMCwgMCxcIjtcbiAgICBhcmMyID0gXCJBIDIwIDIwLCAwLCAwLCAxLFwiO1xuICAgIHJhZGl1cyA9IDIwO1xuICAgIG9mZnNldCA9IDIwO1xuICAgIGlmIChkaXIgPT09IFwiVEJcIikge1xuICAgICAgaWYgKHAxLnggPCBwMi54KSB7XG4gICAgICAgIGlmIChjb21taXRCLnR5cGUgPT09IGNvbW1pdFR5cGUuTUVSR0UgJiYgY29tbWl0QS5pZCAhPT0gY29tbWl0Qi5wYXJlbnRzWzBdKSB7XG4gICAgICAgICAgbGluZURlZiA9IGBNICR7cDEueH0gJHtwMS55fSBMICR7cDEueH0gJHtwMi55IC0gcmFkaXVzfSAke2FyY30gJHtwMS54ICsgb2Zmc2V0fSAke3AyLnl9IEwgJHtwMi54fSAke3AyLnl9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsaW5lRGVmID0gYE0gJHtwMS54fSAke3AxLnl9IEwgJHtwMi54IC0gcmFkaXVzfSAke3AxLnl9ICR7YXJjMn0gJHtwMi54fSAke3AxLnkgKyBvZmZzZXR9IEwgJHtwMi54fSAke3AyLnl9YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHAxLnggPiBwMi54KSB7XG4gICAgICAgIGFyYyA9IFwiQSAyMCAyMCwgMCwgMCwgMCxcIjtcbiAgICAgICAgYXJjMiA9IFwiQSAyMCAyMCwgMCwgMCwgMSxcIjtcbiAgICAgICAgcmFkaXVzID0gMjA7XG4gICAgICAgIG9mZnNldCA9IDIwO1xuICAgICAgICBpZiAoY29tbWl0Qi50eXBlID09PSBjb21taXRUeXBlLk1FUkdFICYmIGNvbW1pdEEuaWQgIT09IGNvbW1pdEIucGFyZW50c1swXSkge1xuICAgICAgICAgIGxpbmVEZWYgPSBgTSAke3AxLnh9ICR7cDEueX0gTCAke3AxLnh9ICR7cDIueSAtIHJhZGl1c30gJHthcmMyfSAke3AxLnggLSBvZmZzZXR9ICR7cDIueX0gTCAke3AyLnh9ICR7cDIueX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxpbmVEZWYgPSBgTSAke3AxLnh9ICR7cDEueX0gTCAke3AyLnggKyByYWRpdXN9ICR7cDEueX0gJHthcmN9ICR7cDIueH0gJHtwMS55ICsgb2Zmc2V0fSBMICR7cDIueH0gJHtwMi55fWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwMS54ID09PSBwMi54KSB7XG4gICAgICAgIGxpbmVEZWYgPSBgTSAke3AxLnh9ICR7cDEueX0gTCAke3AyLnh9ICR7cDIueX1gO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocDEueSA8IHAyLnkpIHtcbiAgICAgICAgaWYgKGNvbW1pdEIudHlwZSA9PT0gY29tbWl0VHlwZS5NRVJHRSAmJiBjb21taXRBLmlkICE9PSBjb21taXRCLnBhcmVudHNbMF0pIHtcbiAgICAgICAgICBsaW5lRGVmID0gYE0gJHtwMS54fSAke3AxLnl9IEwgJHtwMi54IC0gcmFkaXVzfSAke3AxLnl9ICR7YXJjMn0gJHtwMi54fSAke3AxLnkgKyBvZmZzZXR9IEwgJHtwMi54fSAke3AyLnl9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsaW5lRGVmID0gYE0gJHtwMS54fSAke3AxLnl9IEwgJHtwMS54fSAke3AyLnkgLSByYWRpdXN9ICR7YXJjfSAke3AxLnggKyBvZmZzZXR9ICR7cDIueX0gTCAke3AyLnh9ICR7cDIueX1gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocDEueSA+IHAyLnkpIHtcbiAgICAgICAgaWYgKGNvbW1pdEIudHlwZSA9PT0gY29tbWl0VHlwZS5NRVJHRSAmJiBjb21taXRBLmlkICE9PSBjb21taXRCLnBhcmVudHNbMF0pIHtcbiAgICAgICAgICBsaW5lRGVmID0gYE0gJHtwMS54fSAke3AxLnl9IEwgJHtwMi54IC0gcmFkaXVzfSAke3AxLnl9ICR7YXJjfSAke3AyLnh9ICR7cDEueSAtIG9mZnNldH0gTCAke3AyLnh9ICR7cDIueX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxpbmVEZWYgPSBgTSAke3AxLnh9ICR7cDEueX0gTCAke3AxLnh9ICR7cDIueSArIHJhZGl1c30gJHthcmMyfSAke3AxLnggKyBvZmZzZXR9ICR7cDIueX0gTCAke3AyLnh9ICR7cDIueX1gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocDEueSA9PT0gcDIueSkge1xuICAgICAgICBsaW5lRGVmID0gYE0gJHtwMS54fSAke3AxLnl9IEwgJHtwMi54fSAke3AyLnl9YDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgc3ZnLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgbGluZURlZikuYXR0cihcImNsYXNzXCIsIFwiYXJyb3cgYXJyb3dcIiArIGNvbG9yQ2xhc3NOdW0gJSBUSEVNRV9DT0xPUl9MSU1JVCk7XG59O1xuY29uc3QgZHJhd0Fycm93cyA9IChzdmcsIGNvbW1pdHMyKSA9PiB7XG4gIGNvbnN0IGdBcnJvd3MgPSBzdmcuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJjb21taXQtYXJyb3dzXCIpO1xuICBPYmplY3Qua2V5cyhjb21taXRzMikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgY29tbWl0MiA9IGNvbW1pdHMyW2tleV07XG4gICAgaWYgKGNvbW1pdDIucGFyZW50cyAmJiBjb21taXQyLnBhcmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29tbWl0Mi5wYXJlbnRzLmZvckVhY2goKHBhcmVudCkgPT4ge1xuICAgICAgICBkcmF3QXJyb3coZ0Fycm93cywgY29tbWl0czJbcGFyZW50XSwgY29tbWl0MiwgY29tbWl0czIpO1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbn07XG5jb25zdCBkcmF3QnJhbmNoZXMgPSAoc3ZnLCBicmFuY2hlczIpID0+IHtcbiAgY29uc3QgZ2l0R3JhcGhDb25maWcgPSBnZXRDb25maWcoKS5naXRHcmFwaDtcbiAgY29uc3QgZyA9IHN2Zy5hcHBlbmQoXCJnXCIpO1xuICBicmFuY2hlczIuZm9yRWFjaCgoYnJhbmNoMiwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBhZGp1c3RJbmRleEZvclRoZW1lID0gaW5kZXggJSBUSEVNRV9DT0xPUl9MSU1JVDtcbiAgICBjb25zdCBwb3MgPSBicmFuY2hQb3NbYnJhbmNoMi5uYW1lXS5wb3M7XG4gICAgY29uc3QgbGluZSA9IGcuYXBwZW5kKFwibGluZVwiKTtcbiAgICBsaW5lLmF0dHIoXCJ4MVwiLCAwKTtcbiAgICBsaW5lLmF0dHIoXCJ5MVwiLCBwb3MpO1xuICAgIGxpbmUuYXR0cihcIngyXCIsIG1heFBvcyk7XG4gICAgbGluZS5hdHRyKFwieTJcIiwgcG9zKTtcbiAgICBsaW5lLmF0dHIoXCJjbGFzc1wiLCBcImJyYW5jaCBicmFuY2hcIiArIGFkanVzdEluZGV4Rm9yVGhlbWUpO1xuICAgIGlmIChkaXIgPT09IFwiVEJcIikge1xuICAgICAgbGluZS5hdHRyKFwieTFcIiwgMzApO1xuICAgICAgbGluZS5hdHRyKFwieDFcIiwgcG9zKTtcbiAgICAgIGxpbmUuYXR0cihcInkyXCIsIG1heFBvcyk7XG4gICAgICBsaW5lLmF0dHIoXCJ4MlwiLCBwb3MpO1xuICAgIH1cbiAgICBsYW5lcy5wdXNoKHBvcyk7XG4gICAgbGV0IG5hbWUgPSBicmFuY2gyLm5hbWU7XG4gICAgY29uc3QgbGFiZWxFbGVtZW50ID0gZHJhd1RleHQobmFtZSk7XG4gICAgY29uc3QgYmtnID0gZy5pbnNlcnQoXCJyZWN0XCIpO1xuICAgIGNvbnN0IGJyYW5jaExhYmVsID0gZy5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImJyYW5jaExhYmVsXCIpO1xuICAgIGNvbnN0IGxhYmVsID0gYnJhbmNoTGFiZWwuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJsYWJlbCBicmFuY2gtbGFiZWxcIiArIGFkanVzdEluZGV4Rm9yVGhlbWUpO1xuICAgIGxhYmVsLm5vZGUoKS5hcHBlbmRDaGlsZChsYWJlbEVsZW1lbnQpO1xuICAgIGxldCBiYm94ID0gbGFiZWxFbGVtZW50LmdldEJCb3goKTtcbiAgICBia2cuYXR0cihcImNsYXNzXCIsIFwiYnJhbmNoTGFiZWxCa2cgbGFiZWxcIiArIGFkanVzdEluZGV4Rm9yVGhlbWUpLmF0dHIoXCJyeFwiLCA0KS5hdHRyKFwicnlcIiwgNCkuYXR0cihcInhcIiwgLWJib3gud2lkdGggLSA0IC0gKGdpdEdyYXBoQ29uZmlnLnJvdGF0ZUNvbW1pdExhYmVsID09PSB0cnVlID8gMzAgOiAwKSkuYXR0cihcInlcIiwgLWJib3guaGVpZ2h0IC8gMiArIDgpLmF0dHIoXCJ3aWR0aFwiLCBiYm94LndpZHRoICsgMTgpLmF0dHIoXCJoZWlnaHRcIiwgYmJveC5oZWlnaHQgKyA0KTtcbiAgICBsYWJlbC5hdHRyKFxuICAgICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAgIFwidHJhbnNsYXRlKFwiICsgKC1iYm94LndpZHRoIC0gMTQgLSAoZ2l0R3JhcGhDb25maWcucm90YXRlQ29tbWl0TGFiZWwgPT09IHRydWUgPyAzMCA6IDApKSArIFwiLCBcIiArIChwb3MgLSBiYm94LmhlaWdodCAvIDIgLSAxKSArIFwiKVwiXG4gICAgKTtcbiAgICBpZiAoZGlyID09PSBcIlRCXCIpIHtcbiAgICAgIGJrZy5hdHRyKFwieFwiLCBwb3MgLSBiYm94LndpZHRoIC8gMiAtIDEwKS5hdHRyKFwieVwiLCAwKTtcbiAgICAgIGxhYmVsLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyAocG9zIC0gYmJveC53aWR0aCAvIDIgLSA1KSArIFwiLCAwKVwiKTtcbiAgICB9XG4gICAgaWYgKGRpciAhPT0gXCJUQlwiKSB7XG4gICAgICBia2cuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZSgtMTksIFwiICsgKHBvcyAtIGJib3guaGVpZ2h0IC8gMikgKyBcIilcIik7XG4gICAgfVxuICB9KTtcbn07XG5jb25zdCBkcmF3ID0gZnVuY3Rpb24odHh0LCBpZCwgdmVyLCBkaWFnT2JqKSB7XG4gIGNsZWFyKCk7XG4gIGNvbnN0IGNvbmYgPSBnZXRDb25maWcoKTtcbiAgY29uc3QgZ2l0R3JhcGhDb25maWcgPSBjb25mLmdpdEdyYXBoO1xuICBsb2cuZGVidWcoXCJpbiBnaXRncmFwaCByZW5kZXJlclwiLCB0eHQgKyBcIlxcblwiLCBcImlkOlwiLCBpZCwgdmVyKTtcbiAgYWxsQ29tbWl0c0RpY3QgPSBkaWFnT2JqLmRiLmdldENvbW1pdHMoKTtcbiAgY29uc3QgYnJhbmNoZXMyID0gZGlhZ09iai5kYi5nZXRCcmFuY2hlc0FzT2JqQXJyYXkoKTtcbiAgZGlyID0gZGlhZ09iai5kYi5nZXREaXJlY3Rpb24oKTtcbiAgY29uc3QgZGlhZ3JhbTIgPSBzZWxlY3QoYFtpZD1cIiR7aWR9XCJdYCk7XG4gIGxldCBwb3MgPSAwO1xuICBicmFuY2hlczIuZm9yRWFjaCgoYnJhbmNoMiwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBsYWJlbEVsZW1lbnQgPSBkcmF3VGV4dChicmFuY2gyLm5hbWUpO1xuICAgIGNvbnN0IGcgPSBkaWFncmFtMi5hcHBlbmQoXCJnXCIpO1xuICAgIGNvbnN0IGJyYW5jaExhYmVsID0gZy5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImJyYW5jaExhYmVsXCIpO1xuICAgIGNvbnN0IGxhYmVsID0gYnJhbmNoTGFiZWwuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJsYWJlbCBicmFuY2gtbGFiZWxcIik7XG4gICAgbGFiZWwubm9kZSgpLmFwcGVuZENoaWxkKGxhYmVsRWxlbWVudCk7XG4gICAgbGV0IGJib3ggPSBsYWJlbEVsZW1lbnQuZ2V0QkJveCgpO1xuICAgIGJyYW5jaFBvc1ticmFuY2gyLm5hbWVdID0geyBwb3MsIGluZGV4IH07XG4gICAgcG9zICs9IDUwICsgKGdpdEdyYXBoQ29uZmlnLnJvdGF0ZUNvbW1pdExhYmVsID8gNDAgOiAwKSArIChkaXIgPT09IFwiVEJcIiA/IGJib3gud2lkdGggLyAyIDogMCk7XG4gICAgbGFiZWwucmVtb3ZlKCk7XG4gICAgYnJhbmNoTGFiZWwucmVtb3ZlKCk7XG4gICAgZy5yZW1vdmUoKTtcbiAgfSk7XG4gIGRyYXdDb21taXRzKGRpYWdyYW0yLCBhbGxDb21taXRzRGljdCwgZmFsc2UpO1xuICBpZiAoZ2l0R3JhcGhDb25maWcuc2hvd0JyYW5jaGVzKSB7XG4gICAgZHJhd0JyYW5jaGVzKGRpYWdyYW0yLCBicmFuY2hlczIpO1xuICB9XG4gIGRyYXdBcnJvd3MoZGlhZ3JhbTIsIGFsbENvbW1pdHNEaWN0KTtcbiAgZHJhd0NvbW1pdHMoZGlhZ3JhbTIsIGFsbENvbW1pdHNEaWN0LCB0cnVlKTtcbiAgdXRpbHMuaW5zZXJ0VGl0bGUoXG4gICAgZGlhZ3JhbTIsXG4gICAgXCJnaXRUaXRsZVRleHRcIixcbiAgICBnaXRHcmFwaENvbmZpZy50aXRsZVRvcE1hcmdpbixcbiAgICBkaWFnT2JqLmRiLmdldERpYWdyYW1UaXRsZSgpXG4gICk7XG4gIHNldHVwR3JhcGhWaWV3Ym94KFxuICAgIHZvaWQgMCxcbiAgICBkaWFncmFtMixcbiAgICBnaXRHcmFwaENvbmZpZy5kaWFncmFtUGFkZGluZyxcbiAgICBnaXRHcmFwaENvbmZpZy51c2VNYXhXaWR0aCA/PyBjb25mLnVzZU1heFdpZHRoXG4gICk7XG59O1xuY29uc3QgZ2l0R3JhcGhSZW5kZXJlciA9IHtcbiAgZHJhd1xufTtcbmNvbnN0IGdldFN0eWxlcyA9IChvcHRpb25zMikgPT4gYFxuICAuY29tbWl0LWlkLFxuICAuY29tbWl0LW1zZyxcbiAgLmJyYW5jaC1sYWJlbCB7XG4gICAgZmlsbDogbGlnaHRncmV5O1xuICAgIGNvbG9yOiBsaWdodGdyZXk7XG4gICAgZm9udC1mYW1pbHk6ICd0cmVidWNoZXQgbXMnLCB2ZXJkYW5hLCBhcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWVybWFpZC1mb250LWZhbWlseSk7XG4gIH1cbiAgJHtbMCwgMSwgMiwgMywgNCwgNSwgNiwgN10ubWFwKFxuICAoaSkgPT4gYFxuICAgICAgICAuYnJhbmNoLWxhYmVsJHtpfSB7IGZpbGw6ICR7b3B0aW9uczJbXCJnaXRCcmFuY2hMYWJlbFwiICsgaV19OyB9XG4gICAgICAgIC5jb21taXQke2l9IHsgc3Ryb2tlOiAke29wdGlvbnMyW1wiZ2l0XCIgKyBpXX07IGZpbGw6ICR7b3B0aW9uczJbXCJnaXRcIiArIGldfTsgfVxuICAgICAgICAuY29tbWl0LWhpZ2hsaWdodCR7aX0geyBzdHJva2U6ICR7b3B0aW9uczJbXCJnaXRJbnZcIiArIGldfTsgZmlsbDogJHtvcHRpb25zMltcImdpdEludlwiICsgaV19OyB9XG4gICAgICAgIC5sYWJlbCR7aX0gIHsgZmlsbDogJHtvcHRpb25zMltcImdpdFwiICsgaV19OyB9XG4gICAgICAgIC5hcnJvdyR7aX0geyBzdHJva2U6ICR7b3B0aW9uczJbXCJnaXRcIiArIGldfTsgfVxuICAgICAgICBgXG4pLmpvaW4oXCJcXG5cIil9XG5cbiAgLmJyYW5jaCB7XG4gICAgc3Ryb2tlLXdpZHRoOiAxO1xuICAgIHN0cm9rZTogJHtvcHRpb25zMi5saW5lQ29sb3J9O1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDI7XG4gIH1cbiAgLmNvbW1pdC1sYWJlbCB7IGZvbnQtc2l6ZTogJHtvcHRpb25zMi5jb21taXRMYWJlbEZvbnRTaXplfTsgZmlsbDogJHtvcHRpb25zMi5jb21taXRMYWJlbENvbG9yfTt9XG4gIC5jb21taXQtbGFiZWwtYmtnIHsgZm9udC1zaXplOiAke29wdGlvbnMyLmNvbW1pdExhYmVsRm9udFNpemV9OyBmaWxsOiAke29wdGlvbnMyLmNvbW1pdExhYmVsQmFja2dyb3VuZH07IG9wYWNpdHk6IDAuNTsgfVxuICAudGFnLWxhYmVsIHsgZm9udC1zaXplOiAke29wdGlvbnMyLnRhZ0xhYmVsRm9udFNpemV9OyBmaWxsOiAke29wdGlvbnMyLnRhZ0xhYmVsQ29sb3J9O31cbiAgLnRhZy1sYWJlbC1ia2cgeyBmaWxsOiAke29wdGlvbnMyLnRhZ0xhYmVsQmFja2dyb3VuZH07IHN0cm9rZTogJHtvcHRpb25zMi50YWdMYWJlbEJvcmRlcn07IH1cbiAgLnRhZy1ob2xlIHsgZmlsbDogJHtvcHRpb25zMi50ZXh0Q29sb3J9OyB9XG5cbiAgLmNvbW1pdC1tZXJnZSB7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMyLnByaW1hcnlDb2xvcn07XG4gICAgZmlsbDogJHtvcHRpb25zMi5wcmltYXJ5Q29sb3J9O1xuICB9XG4gIC5jb21taXQtcmV2ZXJzZSB7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMyLnByaW1hcnlDb2xvcn07XG4gICAgZmlsbDogJHtvcHRpb25zMi5wcmltYXJ5Q29sb3J9O1xuICAgIHN0cm9rZS13aWR0aDogMztcbiAgfVxuICAuY29tbWl0LWhpZ2hsaWdodC1vdXRlciB7XG4gIH1cbiAgLmNvbW1pdC1oaWdobGlnaHQtaW5uZXIge1xuICAgIHN0cm9rZTogJHtvcHRpb25zMi5wcmltYXJ5Q29sb3J9O1xuICAgIGZpbGw6ICR7b3B0aW9uczIucHJpbWFyeUNvbG9yfTtcbiAgfVxuXG4gIC5hcnJvdyB7IHN0cm9rZS13aWR0aDogODsgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOyBmaWxsOiBub25lfVxuICAuZ2l0VGl0bGVUZXh0IHtcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmaWxsOiAke29wdGlvbnMyLnRleHRDb2xvcn07XG4gIH1cbmA7XG5jb25zdCBnaXRHcmFwaFN0eWxlcyA9IGdldFN0eWxlcztcbmNvbnN0IGRpYWdyYW0gPSB7XG4gIHBhcnNlcjogZ2l0R3JhcGhQYXJzZXIsXG4gIGRiOiBnaXRHcmFwaERiLFxuICByZW5kZXJlcjogZ2l0R3JhcGhSZW5kZXJlcixcbiAgc3R5bGVzOiBnaXRHcmFwaFN0eWxlc1xufTtcbmV4cG9ydCB7XG4gIGRpYWdyYW1cbn07XG4iLAogICAgIiFmdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOihlPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6ZXx8c2VsZikuZGF5anNfcGx1Z2luX2lzb1dlZWs9dCgpfSh0aGlzLChmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3ZhciBlPVwiZGF5XCI7cmV0dXJuIGZ1bmN0aW9uKHQsaSxzKXt2YXIgYT1mdW5jdGlvbih0KXtyZXR1cm4gdC5hZGQoNC10Lmlzb1dlZWtkYXkoKSxlKX0sZD1pLnByb3RvdHlwZTtkLmlzb1dlZWtZZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcykueWVhcigpfSxkLmlzb1dlZWs9ZnVuY3Rpb24odCl7aWYoIXRoaXMuJHV0aWxzKCkudSh0KSlyZXR1cm4gdGhpcy5hZGQoNyoodC10aGlzLmlzb1dlZWsoKSksZSk7dmFyIGksZCxuLG8scj1hKHRoaXMpLHU9KGk9dGhpcy5pc29XZWVrWWVhcigpLGQ9dGhpcy4kdSxuPShkP3MudXRjOnMpKCkueWVhcihpKS5zdGFydE9mKFwieWVhclwiKSxvPTQtbi5pc29XZWVrZGF5KCksbi5pc29XZWVrZGF5KCk+NCYmKG8rPTcpLG4uYWRkKG8sZSkpO3JldHVybiByLmRpZmYodSxcIndlZWtcIikrMX0sZC5pc29XZWVrZGF5PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLiR1dGlscygpLnUoZSk/dGhpcy5kYXkoKXx8Nzp0aGlzLmRheSh0aGlzLmRheSgpJTc/ZTplLTcpfTt2YXIgbj1kLnN0YXJ0T2Y7ZC5zdGFydE9mPWZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy4kdXRpbHMoKSxzPSEhaS51KHQpfHx0O3JldHVyblwiaXNvd2Vla1wiPT09aS5wKGUpP3M/dGhpcy5kYXRlKHRoaXMuZGF0ZSgpLSh0aGlzLmlzb1dlZWtkYXkoKS0xKSkuc3RhcnRPZihcImRheVwiKTp0aGlzLmRhdGUodGhpcy5kYXRlKCktMS0odGhpcy5pc29XZWVrZGF5KCktMSkrNykuZW5kT2YoXCJkYXlcIik6bi5iaW5kKHRoaXMpKGUsdCl9fX0pKTsiLAogICAgIiFmdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOihlPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6ZXx8c2VsZikuZGF5anNfcGx1Z2luX2N1c3RvbVBhcnNlRm9ybWF0PXQoKX0odGhpcywoZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgZT17TFRTOlwiaDptbTpzcyBBXCIsTFQ6XCJoOm1tIEFcIixMOlwiTU0vREQvWVlZWVwiLExMOlwiTU1NTSBELCBZWVlZXCIsTExMOlwiTU1NTSBELCBZWVlZIGg6bW0gQVwiLExMTEw6XCJkZGRkLCBNTU1NIEQsIFlZWVkgaDptbSBBXCJ9LHQ9LyhcXFtbXltdKlxcXSl8KFstXzovLiwoKVxcc10rKXwoQXxhfFF8WVlZWXxZWT98d3c/fE1NP00/TT98RG98REQ/fGhoP3xISD98bW0/fHNzP3xTezEsM318enxaWj8pL2csbj0vXFxkLyxyPS9cXGRcXGQvLGk9L1xcZFxcZD8vLG89L1xcZCpbXi1fOi8sKClcXHNcXGRdKy8scz17fSxhPWZ1bmN0aW9uKGUpe3JldHVybihlPStlKSsoZT42OD8xOTAwOjJlMyl9O3ZhciBmPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt0aGlzW2VdPSt0fX0saD1bL1srLV1cXGRcXGQ6PyhcXGRcXGQpP3xaLyxmdW5jdGlvbihlKXsodGhpcy56b25lfHwodGhpcy56b25lPXt9KSkub2Zmc2V0PWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiAwO2lmKFwiWlwiPT09ZSlyZXR1cm4gMDt2YXIgdD1lLm1hdGNoKC8oWystXXxcXGRcXGQpL2cpLG49NjAqdFsxXSsoK3RbMl18fDApO3JldHVybiAwPT09bj8wOlwiK1wiPT09dFswXT8tbjpufShlKX1dLHU9ZnVuY3Rpb24oZSl7dmFyIHQ9c1tlXTtyZXR1cm4gdCYmKHQuaW5kZXhPZj90OnQucy5jb25jYXQodC5mKSl9LGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPXMubWVyaWRpZW07aWYocil7Zm9yKHZhciBpPTE7aTw9MjQ7aSs9MSlpZihlLmluZGV4T2YocihpLDAsdCkpPi0xKXtuPWk+MTI7YnJlYWt9fWVsc2Ugbj1lPT09KHQ/XCJwbVwiOlwiUE1cIik7cmV0dXJuIG59LGM9e0E6W28sZnVuY3Rpb24oZSl7dGhpcy5hZnRlcm5vb249ZChlLCExKX1dLGE6W28sZnVuY3Rpb24oZSl7dGhpcy5hZnRlcm5vb249ZChlLCEwKX1dLFE6W24sZnVuY3Rpb24oZSl7dGhpcy5tb250aD0zKihlLTEpKzF9XSxTOltuLGZ1bmN0aW9uKGUpe3RoaXMubWlsbGlzZWNvbmRzPTEwMCorZX1dLFNTOltyLGZ1bmN0aW9uKGUpe3RoaXMubWlsbGlzZWNvbmRzPTEwKitlfV0sU1NTOlsvXFxkezN9LyxmdW5jdGlvbihlKXt0aGlzLm1pbGxpc2Vjb25kcz0rZX1dLHM6W2ksZihcInNlY29uZHNcIildLHNzOltpLGYoXCJzZWNvbmRzXCIpXSxtOltpLGYoXCJtaW51dGVzXCIpXSxtbTpbaSxmKFwibWludXRlc1wiKV0sSDpbaSxmKFwiaG91cnNcIildLGg6W2ksZihcImhvdXJzXCIpXSxISDpbaSxmKFwiaG91cnNcIildLGhoOltpLGYoXCJob3Vyc1wiKV0sRDpbaSxmKFwiZGF5XCIpXSxERDpbcixmKFwiZGF5XCIpXSxEbzpbbyxmdW5jdGlvbihlKXt2YXIgdD1zLm9yZGluYWwsbj1lLm1hdGNoKC9cXGQrLyk7aWYodGhpcy5kYXk9blswXSx0KWZvcih2YXIgcj0xO3I8PTMxO3IrPTEpdChyKS5yZXBsYWNlKC9cXFt8XFxdL2csXCJcIik9PT1lJiYodGhpcy5kYXk9cil9XSx3OltpLGYoXCJ3ZWVrXCIpXSx3dzpbcixmKFwid2Vla1wiKV0sTTpbaSxmKFwibW9udGhcIildLE1NOltyLGYoXCJtb250aFwiKV0sTU1NOltvLGZ1bmN0aW9uKGUpe3ZhciB0PXUoXCJtb250aHNcIiksbj0odShcIm1vbnRoc1Nob3J0XCIpfHx0Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2xpY2UoMCwzKX0pKSkuaW5kZXhPZihlKSsxO2lmKG48MSl0aHJvdyBuZXcgRXJyb3I7dGhpcy5tb250aD1uJTEyfHxufV0sTU1NTTpbbyxmdW5jdGlvbihlKXt2YXIgdD11KFwibW9udGhzXCIpLmluZGV4T2YoZSkrMTtpZih0PDEpdGhyb3cgbmV3IEVycm9yO3RoaXMubW9udGg9dCUxMnx8dH1dLFk6Wy9bKy1dP1xcZCsvLGYoXCJ5ZWFyXCIpXSxZWTpbcixmdW5jdGlvbihlKXt0aGlzLnllYXI9YShlKX1dLFlZWVk6Wy9cXGR7NH0vLGYoXCJ5ZWFyXCIpXSxaOmgsWlo6aH07ZnVuY3Rpb24gbChuKXt2YXIgcixpO3I9bixpPXMmJnMuZm9ybWF0cztmb3IodmFyIG89KG49ci5yZXBsYWNlKC8oXFxbW15cXF1dK10pfChMVFM/fGx7MSw0fXxMezEsNH0pL2csKGZ1bmN0aW9uKHQsbixyKXt2YXIgbz1yJiZyLnRvVXBwZXJDYXNlKCk7cmV0dXJuIG58fGlbcl18fGVbcl18fGlbb10ucmVwbGFjZSgvKFxcW1teXFxdXStdKXwoTU1NTXxNTXxERHxkZGRkKS9nLChmdW5jdGlvbihlLHQsbil7cmV0dXJuIHR8fG4uc2xpY2UoMSl9KSl9KSkpLm1hdGNoKHQpLGE9by5sZW5ndGgsZj0wO2Y8YTtmKz0xKXt2YXIgaD1vW2ZdLHU9Y1toXSxkPXUmJnVbMF0sbD11JiZ1WzFdO29bZl09bD97cmVnZXg6ZCxwYXJzZXI6bH06aC5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX1yZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49MCxyPTA7bjxhO24rPTEpe3ZhciBpPW9bbl07aWYoXCJzdHJpbmdcIj09dHlwZW9mIGkpcis9aS5sZW5ndGg7ZWxzZXt2YXIgcz1pLnJlZ2V4LGY9aS5wYXJzZXIsaD1lLnNsaWNlKHIpLHU9cy5leGVjKGgpWzBdO2YuY2FsbCh0LHUpLGU9ZS5yZXBsYWNlKHUsXCJcIil9fXJldHVybiBmdW5jdGlvbihlKXt2YXIgdD1lLmFmdGVybm9vbjtpZih2b2lkIDAhPT10KXt2YXIgbj1lLmhvdXJzO3Q/bjwxMiYmKGUuaG91cnMrPTEyKToxMj09PW4mJihlLmhvdXJzPTApLGRlbGV0ZSBlLmFmdGVybm9vbn19KHQpLHR9fXJldHVybiBmdW5jdGlvbihlLHQsbil7bi5wLmN1c3RvbVBhcnNlRm9ybWF0PSEwLGUmJmUucGFyc2VUd29EaWdpdFllYXImJihhPWUucGFyc2VUd29EaWdpdFllYXIpO3ZhciByPXQucHJvdG90eXBlLGk9ci5wYXJzZTtyLnBhcnNlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuZGF0ZSxyPWUudXRjLG89ZS5hcmdzO3RoaXMuJHU9cjt2YXIgYT1vWzFdO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBhKXt2YXIgZj0hMD09PW9bMl0saD0hMD09PW9bM10sdT1mfHxoLGQ9b1syXTtoJiYoZD1vWzJdKSxzPXRoaXMuJGxvY2FsZSgpLCFmJiZkJiYocz1uLkxzW2RdKSx0aGlzLiRkPWZ1bmN0aW9uKGUsdCxuLHIpe3RyeXtpZihbXCJ4XCIsXCJYXCJdLmluZGV4T2YodCk+LTEpcmV0dXJuIG5ldyBEYXRlKChcIlhcIj09PXQ/MWUzOjEpKmUpO3ZhciBpPWwodCkoZSksbz1pLnllYXIscz1pLm1vbnRoLGE9aS5kYXksZj1pLmhvdXJzLGg9aS5taW51dGVzLHU9aS5zZWNvbmRzLGQ9aS5taWxsaXNlY29uZHMsYz1pLnpvbmUsbT1pLndlZWssTT1uZXcgRGF0ZSxZPWF8fChvfHxzPzE6TS5nZXREYXRlKCkpLHA9b3x8TS5nZXRGdWxsWWVhcigpLHY9MDtvJiYhc3x8KHY9cz4wP3MtMTpNLmdldE1vbnRoKCkpO3ZhciBELHc9Znx8MCxnPWh8fDAseT11fHwwLEw9ZHx8MDtyZXR1cm4gYz9uZXcgRGF0ZShEYXRlLlVUQyhwLHYsWSx3LGcseSxMKzYwKmMub2Zmc2V0KjFlMykpOm4/bmV3IERhdGUoRGF0ZS5VVEMocCx2LFksdyxnLHksTCkpOihEPW5ldyBEYXRlKHAsdixZLHcsZyx5LEwpLG0mJihEPXIoRCkud2VlayhtKS50b0RhdGUoKSksRCl9Y2F0Y2goZSl7cmV0dXJuIG5ldyBEYXRlKFwiXCIpfX0odCxhLHIsbiksdGhpcy5pbml0KCksZCYmITAhPT1kJiYodGhpcy4kTD10aGlzLmxvY2FsZShkKS4kTCksdSYmdCE9dGhpcy5mb3JtYXQoYSkmJih0aGlzLiRkPW5ldyBEYXRlKFwiXCIpKSxzPXt9fWVsc2UgaWYoYSBpbnN0YW5jZW9mIEFycmF5KWZvcih2YXIgYz1hLmxlbmd0aCxtPTE7bTw9YzttKz0xKXtvWzFdPWFbbS0xXTt2YXIgTT1uLmFwcGx5KHRoaXMsbyk7aWYoTS5pc1ZhbGlkKCkpe3RoaXMuJGQ9TS4kZCx0aGlzLiRMPU0uJEwsdGhpcy5pbml0KCk7YnJlYWt9bT09PWMmJih0aGlzLiRkPW5ldyBEYXRlKFwiXCIpKX1lbHNlIGkuY2FsbCh0aGlzLGUpfX19KSk7IiwKICAgICIhZnVuY3Rpb24oZSx0KXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT1cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmV8fHNlbGYpLmRheWpzX3BsdWdpbl9hZHZhbmNlZEZvcm1hdD10KCl9KHRoaXMsKGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9dC5wcm90b3R5cGUsbj1yLmZvcm1hdDtyLmZvcm1hdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9dGhpcy4kbG9jYWxlKCk7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBuLmJpbmQodGhpcykoZSk7dmFyIHM9dGhpcy4kdXRpbHMoKSxhPShlfHxcIllZWVktTU0tRERUSEg6bW06c3NaXCIpLnJlcGxhY2UoL1xcWyhbXlxcXV0rKV18UXx3b3x3d3x3fFdXfFd8enp6fHp8Z2dnZ3xHR0dHfERvfFh8eHxrezEsMn18Uy9nLChmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZVwiUVwiOnJldHVybiBNYXRoLmNlaWwoKHQuJE0rMSkvMyk7Y2FzZVwiRG9cIjpyZXR1cm4gci5vcmRpbmFsKHQuJEQpO2Nhc2VcImdnZ2dcIjpyZXR1cm4gdC53ZWVrWWVhcigpO2Nhc2VcIkdHR0dcIjpyZXR1cm4gdC5pc29XZWVrWWVhcigpO2Nhc2VcIndvXCI6cmV0dXJuIHIub3JkaW5hbCh0LndlZWsoKSxcIldcIik7Y2FzZVwid1wiOmNhc2VcInd3XCI6cmV0dXJuIHMucyh0LndlZWsoKSxcIndcIj09PWU/MToyLFwiMFwiKTtjYXNlXCJXXCI6Y2FzZVwiV1dcIjpyZXR1cm4gcy5zKHQuaXNvV2VlaygpLFwiV1wiPT09ZT8xOjIsXCIwXCIpO2Nhc2VcImtcIjpjYXNlXCJra1wiOnJldHVybiBzLnMoU3RyaW5nKDA9PT10LiRIPzI0OnQuJEgpLFwia1wiPT09ZT8xOjIsXCIwXCIpO2Nhc2VcIlhcIjpyZXR1cm4gTWF0aC5mbG9vcih0LiRkLmdldFRpbWUoKS8xZTMpO2Nhc2VcInhcIjpyZXR1cm4gdC4kZC5nZXRUaW1lKCk7Y2FzZVwielwiOnJldHVyblwiW1wiK3Qub2Zmc2V0TmFtZSgpK1wiXVwiO2Nhc2VcInp6elwiOnJldHVyblwiW1wiK3Qub2Zmc2V0TmFtZShcImxvbmdcIikrXCJdXCI7ZGVmYXVsdDpyZXR1cm4gZX19KSk7cmV0dXJuIG4uYmluZCh0aGlzKShhKX19fSkpOyIsCiAgICAiaW1wb3J0IHsgc2FuaXRpemVVcmwgfSBmcm9tIFwiQGJyYWludHJlZS9zYW5pdGl6ZS11cmxcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCBkYXlqc0lzb1dlZWsgZnJvbSBcImRheWpzL3BsdWdpbi9pc29XZWVrLmpzXCI7XG5pbXBvcnQgZGF5anNDdXN0b21QYXJzZUZvcm1hdCBmcm9tIFwiZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0LmpzXCI7XG5pbXBvcnQgZGF5anNBZHZhbmNlZEZvcm1hdCBmcm9tIFwiZGF5anMvcGx1Z2luL2FkdmFuY2VkRm9ybWF0LmpzXCI7XG5pbXBvcnQgeyBjIGFzIGdldENvbmZpZywgcyBhcyBzZXRBY2NUaXRsZSwgZyBhcyBnZXRBY2NUaXRsZSwgcSBhcyBzZXREaWFncmFtVGl0bGUsIHQgYXMgZ2V0RGlhZ3JhbVRpdGxlLCBiIGFzIHNldEFjY0Rlc2NyaXB0aW9uLCBhIGFzIGdldEFjY0Rlc2NyaXB0aW9uLCB2IGFzIGNsZWFyJDEsIHUgYXMgdXRpbHMsIGwgYXMgbG9nLCBpIGFzIGNvbmZpZ3VyZVN2Z1NpemUsIGUgYXMgY29tbW9uIH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0LCBzY2FsZVRpbWUsIG1pbiwgbWF4LCBzY2FsZUxpbmVhciwgaW50ZXJwb2xhdGVIY2wsIGF4aXNCb3R0b20sIHRpbWVGb3JtYXQsIHRpbWVNb250aCwgdGltZURheSwgdGltZUhvdXIsIHRpbWVNaW51dGUsIHRpbWVTZWNvbmQsIHRpbWVNaWxsaXNlY29uZCwgYXhpc1RvcCwgdGltZU1vbmRheSwgdGltZVR1ZXNkYXksIHRpbWVXZWRuZXNkYXksIHRpbWVUaHVyc2RheSwgdGltZUZyaWRheSwgdGltZVNhdHVyZGF5LCB0aW1lU3VuZGF5IH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgXCJ0cy1kZWRlbnRcIjtcbmltcG9ydCBcImRvbXB1cmlmeVwiO1xuaW1wb3J0IFwia2hyb21hXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lcmdlLmpzXCI7XG5pbXBvcnQgXCJzdHlsaXNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9pc0VtcHR5LmpzXCI7XG52YXIgcGFyc2VyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBvID0gZnVuY3Rpb24oaywgdiwgbzIsIGwpIHtcbiAgICBmb3IgKG8yID0gbzIgfHwge30sIGwgPSBrLmxlbmd0aDsgbC0tOyBvMltrW2xdXSA9IHYpXG4gICAgICA7XG4gICAgcmV0dXJuIG8yO1xuICB9LCAkVjAgPSBbNiwgOCwgMTAsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMzAsIDMyLCAzMywgMzUsIDM3XSwgJFYxID0gWzEsIDI1XSwgJFYyID0gWzEsIDI2XSwgJFYzID0gWzEsIDI3XSwgJFY0ID0gWzEsIDI4XSwgJFY1ID0gWzEsIDI5XSwgJFY2ID0gWzEsIDMwXSwgJFY3ID0gWzEsIDMxXSwgJFY4ID0gWzEsIDldLCAkVjkgPSBbMSwgMTBdLCAkVmEgPSBbMSwgMTFdLCAkVmIgPSBbMSwgMTJdLCAkVmMgPSBbMSwgMTNdLCAkVmQgPSBbMSwgMTRdLCAkVmUgPSBbMSwgMTVdLCAkVmYgPSBbMSwgMTZdLCAkVmcgPSBbMSwgMThdLCAkVmggPSBbMSwgMTldLCAkVmkgPSBbMSwgMjBdLCAkVmogPSBbMSwgMjFdLCAkVmsgPSBbMSwgMjJdLCAkVmwgPSBbMSwgMjRdLCAkVm0gPSBbMSwgMzJdO1xuICB2YXIgcGFyc2VyMiA9IHtcbiAgICB0cmFjZTogZnVuY3Rpb24gdHJhY2UoKSB7XG4gICAgfSxcbiAgICB5eToge30sXG4gICAgc3ltYm9sc186IHsgXCJlcnJvclwiOiAyLCBcInN0YXJ0XCI6IDMsIFwiZ2FudHRcIjogNCwgXCJkb2N1bWVudFwiOiA1LCBcIkVPRlwiOiA2LCBcImxpbmVcIjogNywgXCJTUEFDRVwiOiA4LCBcInN0YXRlbWVudFwiOiA5LCBcIk5MXCI6IDEwLCBcIndlZWtkYXlcIjogMTEsIFwid2Vla2RheV9tb25kYXlcIjogMTIsIFwid2Vla2RheV90dWVzZGF5XCI6IDEzLCBcIndlZWtkYXlfd2VkbmVzZGF5XCI6IDE0LCBcIndlZWtkYXlfdGh1cnNkYXlcIjogMTUsIFwid2Vla2RheV9mcmlkYXlcIjogMTYsIFwid2Vla2RheV9zYXR1cmRheVwiOiAxNywgXCJ3ZWVrZGF5X3N1bmRheVwiOiAxOCwgXCJkYXRlRm9ybWF0XCI6IDE5LCBcImluY2x1c2l2ZUVuZERhdGVzXCI6IDIwLCBcInRvcEF4aXNcIjogMjEsIFwiYXhpc0Zvcm1hdFwiOiAyMiwgXCJ0aWNrSW50ZXJ2YWxcIjogMjMsIFwiZXhjbHVkZXNcIjogMjQsIFwiaW5jbHVkZXNcIjogMjUsIFwidG9kYXlNYXJrZXJcIjogMjYsIFwidGl0bGVcIjogMjcsIFwiYWNjX3RpdGxlXCI6IDI4LCBcImFjY190aXRsZV92YWx1ZVwiOiAyOSwgXCJhY2NfZGVzY3JcIjogMzAsIFwiYWNjX2Rlc2NyX3ZhbHVlXCI6IDMxLCBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIjogMzIsIFwic2VjdGlvblwiOiAzMywgXCJjbGlja1N0YXRlbWVudFwiOiAzNCwgXCJ0YXNrVHh0XCI6IDM1LCBcInRhc2tEYXRhXCI6IDM2LCBcImNsaWNrXCI6IDM3LCBcImNhbGxiYWNrbmFtZVwiOiAzOCwgXCJjYWxsYmFja2FyZ3NcIjogMzksIFwiaHJlZlwiOiA0MCwgXCJjbGlja1N0YXRlbWVudERlYnVnXCI6IDQxLCBcIiRhY2NlcHRcIjogMCwgXCIkZW5kXCI6IDEgfSxcbiAgICB0ZXJtaW5hbHNfOiB7IDI6IFwiZXJyb3JcIiwgNDogXCJnYW50dFwiLCA2OiBcIkVPRlwiLCA4OiBcIlNQQUNFXCIsIDEwOiBcIk5MXCIsIDEyOiBcIndlZWtkYXlfbW9uZGF5XCIsIDEzOiBcIndlZWtkYXlfdHVlc2RheVwiLCAxNDogXCJ3ZWVrZGF5X3dlZG5lc2RheVwiLCAxNTogXCJ3ZWVrZGF5X3RodXJzZGF5XCIsIDE2OiBcIndlZWtkYXlfZnJpZGF5XCIsIDE3OiBcIndlZWtkYXlfc2F0dXJkYXlcIiwgMTg6IFwid2Vla2RheV9zdW5kYXlcIiwgMTk6IFwiZGF0ZUZvcm1hdFwiLCAyMDogXCJpbmNsdXNpdmVFbmREYXRlc1wiLCAyMTogXCJ0b3BBeGlzXCIsIDIyOiBcImF4aXNGb3JtYXRcIiwgMjM6IFwidGlja0ludGVydmFsXCIsIDI0OiBcImV4Y2x1ZGVzXCIsIDI1OiBcImluY2x1ZGVzXCIsIDI2OiBcInRvZGF5TWFya2VyXCIsIDI3OiBcInRpdGxlXCIsIDI4OiBcImFjY190aXRsZVwiLCAyOTogXCJhY2NfdGl0bGVfdmFsdWVcIiwgMzA6IFwiYWNjX2Rlc2NyXCIsIDMxOiBcImFjY19kZXNjcl92YWx1ZVwiLCAzMjogXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCIsIDMzOiBcInNlY3Rpb25cIiwgMzU6IFwidGFza1R4dFwiLCAzNjogXCJ0YXNrRGF0YVwiLCAzNzogXCJjbGlja1wiLCAzODogXCJjYWxsYmFja25hbWVcIiwgMzk6IFwiY2FsbGJhY2thcmdzXCIsIDQwOiBcImhyZWZcIiB9LFxuICAgIHByb2R1Y3Rpb25zXzogWzAsIFszLCAzXSwgWzUsIDBdLCBbNSwgMl0sIFs3LCAyXSwgWzcsIDFdLCBbNywgMV0sIFs3LCAxXSwgWzExLCAxXSwgWzExLCAxXSwgWzExLCAxXSwgWzExLCAxXSwgWzExLCAxXSwgWzExLCAxXSwgWzExLCAxXSwgWzksIDFdLCBbOSwgMV0sIFs5LCAxXSwgWzksIDFdLCBbOSwgMV0sIFs5LCAxXSwgWzksIDFdLCBbOSwgMV0sIFs5LCAxXSwgWzksIDFdLCBbOSwgMl0sIFs5LCAyXSwgWzksIDFdLCBbOSwgMV0sIFs5LCAxXSwgWzksIDJdLCBbMzQsIDJdLCBbMzQsIDNdLCBbMzQsIDNdLCBbMzQsIDRdLCBbMzQsIDNdLCBbMzQsIDRdLCBbMzQsIDJdLCBbNDEsIDJdLCBbNDEsIDNdLCBbNDEsIDNdLCBbNDEsIDRdLCBbNDEsIDNdLCBbNDEsIDRdLCBbNDEsIDJdXSxcbiAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXl0ZXh0LCB5eWxlbmcsIHl5bGluZW5vLCB5eSwgeXlzdGF0ZSwgJCQsIF8kKSB7XG4gICAgICB2YXIgJDAgPSAkJC5sZW5ndGggLSAxO1xuICAgICAgc3dpdGNoICh5eXN0YXRlKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICByZXR1cm4gJCRbJDAgLSAxXTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHRoaXMuJCA9IFtdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKCQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB0aGlzLiQgPSBbXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgIHl5LnNldFdlZWtkYXkoXCJtb25kYXlcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgICB5eS5zZXRXZWVrZGF5KFwidHVlc2RheVwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICB5eS5zZXRXZWVrZGF5KFwid2VkbmVzZGF5XCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIHl5LnNldFdlZWtkYXkoXCJ0aHVyc2RheVwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICB5eS5zZXRXZWVrZGF5KFwiZnJpZGF5XCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIHl5LnNldFdlZWtkYXkoXCJzYXR1cmRheVwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgICB5eS5zZXRXZWVrZGF5KFwic3VuZGF5XCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIHl5LnNldERhdGVGb3JtYXQoJCRbJDBdLnN1YnN0cigxMSkpO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS5zdWJzdHIoMTEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE2OlxuICAgICAgICAgIHl5LmVuYWJsZUluY2x1c2l2ZUVuZERhdGVzKCk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnN1YnN0cigxOCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTc6XG4gICAgICAgICAgeXkuVG9wQXhpcygpO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS5zdWJzdHIoOCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgeXkuc2V0QXhpc0Zvcm1hdCgkJFskMF0uc3Vic3RyKDExKSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnN1YnN0cigxMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgeXkuc2V0VGlja0ludGVydmFsKCQkWyQwXS5zdWJzdHIoMTMpKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0uc3Vic3RyKDEzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMDpcbiAgICAgICAgICB5eS5zZXRFeGNsdWRlcygkJFskMF0uc3Vic3RyKDkpKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0uc3Vic3RyKDkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIxOlxuICAgICAgICAgIHl5LnNldEluY2x1ZGVzKCQkWyQwXS5zdWJzdHIoOSkpO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS5zdWJzdHIoOSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgeXkuc2V0VG9kYXlNYXJrZXIoJCRbJDBdLnN1YnN0cigxMikpO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS5zdWJzdHIoMTIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgIHl5LnNldERpYWdyYW1UaXRsZSgkJFskMF0uc3Vic3RyKDYpKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0uc3Vic3RyKDYpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS50cmltKCk7XG4gICAgICAgICAgeXkuc2V0QWNjVGl0bGUodGhpcy4kKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0udHJpbSgpO1xuICAgICAgICAgIHl5LnNldEFjY0Rlc2NyaXB0aW9uKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjg6XG4gICAgICAgICAgeXkuYWRkU2VjdGlvbigkJFskMF0uc3Vic3RyKDgpKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0uc3Vic3RyKDgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMwOlxuICAgICAgICAgIHl5LmFkZFRhc2soJCRbJDAgLSAxXSwgJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSBcInRhc2tcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdO1xuICAgICAgICAgIHl5LnNldENsaWNrRXZlbnQoJCRbJDAgLSAxXSwgJCRbJDBdLCBudWxsKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDJdO1xuICAgICAgICAgIHl5LnNldENsaWNrRXZlbnQoJCRbJDAgLSAyXSwgJCRbJDAgLSAxXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMzpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDJdO1xuICAgICAgICAgIHl5LnNldENsaWNrRXZlbnQoJCRbJDAgLSAyXSwgJCRbJDAgLSAxXSwgbnVsbCk7XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDJdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM0OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuc2V0Q2xpY2tFdmVudCgkJFskMCAtIDNdLCAkJFskMCAtIDJdLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICB5eS5zZXRMaW5rKCQkWyQwIC0gM10sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzU6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAyXTtcbiAgICAgICAgICB5eS5zZXRDbGlja0V2ZW50KCQkWyQwIC0gMl0sICQkWyQwXSwgbnVsbCk7XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDJdLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDNdO1xuICAgICAgICAgIHl5LnNldENsaWNrRXZlbnQoJCRbJDAgLSAzXSwgJCRbJDAgLSAxXSwgJCRbJDBdKTtcbiAgICAgICAgICB5eS5zZXRMaW5rKCQkWyQwIC0gM10sICQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM3OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM4OlxuICAgICAgICBjYXNlIDQ0OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV0gKyBcIiBcIiArICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOTpcbiAgICAgICAgY2FzZSA0MDpcbiAgICAgICAgY2FzZSA0MjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDJdICsgXCIgXCIgKyAkJFskMCAtIDFdICsgXCIgXCIgKyAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDE6XG4gICAgICAgIGNhc2UgNDM6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAzXSArIFwiIFwiICsgJCRbJDAgLSAyXSArIFwiIFwiICsgJCRbJDAgLSAxXSArIFwiIFwiICsgJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgdGFibGU6IFt7IDM6IDEsIDQ6IFsxLCAyXSB9LCB7IDE6IFszXSB9LCBvKCRWMCwgWzIsIDJdLCB7IDU6IDMgfSksIHsgNjogWzEsIDRdLCA3OiA1LCA4OiBbMSwgNl0sIDk6IDcsIDEwOiBbMSwgOF0sIDExOiAxNywgMTI6ICRWMSwgMTM6ICRWMiwgMTQ6ICRWMywgMTU6ICRWNCwgMTY6ICRWNSwgMTc6ICRWNiwgMTg6ICRWNywgMTk6ICRWOCwgMjA6ICRWOSwgMjE6ICRWYSwgMjI6ICRWYiwgMjM6ICRWYywgMjQ6ICRWZCwgMjU6ICRWZSwgMjY6ICRWZiwgMjc6ICRWZywgMjg6ICRWaCwgMzA6ICRWaSwgMzI6ICRWaiwgMzM6ICRWaywgMzQ6IDIzLCAzNTogJFZsLCAzNzogJFZtIH0sIG8oJFYwLCBbMiwgN10sIHsgMTogWzIsIDFdIH0pLCBvKCRWMCwgWzIsIDNdKSwgeyA5OiAzMywgMTE6IDE3LCAxMjogJFYxLCAxMzogJFYyLCAxNDogJFYzLCAxNTogJFY0LCAxNjogJFY1LCAxNzogJFY2LCAxODogJFY3LCAxOTogJFY4LCAyMDogJFY5LCAyMTogJFZhLCAyMjogJFZiLCAyMzogJFZjLCAyNDogJFZkLCAyNTogJFZlLCAyNjogJFZmLCAyNzogJFZnLCAyODogJFZoLCAzMDogJFZpLCAzMjogJFZqLCAzMzogJFZrLCAzNDogMjMsIDM1OiAkVmwsIDM3OiAkVm0gfSwgbygkVjAsIFsyLCA1XSksIG8oJFYwLCBbMiwgNl0pLCBvKCRWMCwgWzIsIDE1XSksIG8oJFYwLCBbMiwgMTZdKSwgbygkVjAsIFsyLCAxN10pLCBvKCRWMCwgWzIsIDE4XSksIG8oJFYwLCBbMiwgMTldKSwgbygkVjAsIFsyLCAyMF0pLCBvKCRWMCwgWzIsIDIxXSksIG8oJFYwLCBbMiwgMjJdKSwgbygkVjAsIFsyLCAyM10pLCBvKCRWMCwgWzIsIDI0XSksIHsgMjk6IFsxLCAzNF0gfSwgeyAzMTogWzEsIDM1XSB9LCBvKCRWMCwgWzIsIDI3XSksIG8oJFYwLCBbMiwgMjhdKSwgbygkVjAsIFsyLCAyOV0pLCB7IDM2OiBbMSwgMzZdIH0sIG8oJFYwLCBbMiwgOF0pLCBvKCRWMCwgWzIsIDldKSwgbygkVjAsIFsyLCAxMF0pLCBvKCRWMCwgWzIsIDExXSksIG8oJFYwLCBbMiwgMTJdKSwgbygkVjAsIFsyLCAxM10pLCBvKCRWMCwgWzIsIDE0XSksIHsgMzg6IFsxLCAzN10sIDQwOiBbMSwgMzhdIH0sIG8oJFYwLCBbMiwgNF0pLCBvKCRWMCwgWzIsIDI1XSksIG8oJFYwLCBbMiwgMjZdKSwgbygkVjAsIFsyLCAzMF0pLCBvKCRWMCwgWzIsIDMxXSwgeyAzOTogWzEsIDM5XSwgNDA6IFsxLCA0MF0gfSksIG8oJFYwLCBbMiwgMzddLCB7IDM4OiBbMSwgNDFdIH0pLCBvKCRWMCwgWzIsIDMyXSwgeyA0MDogWzEsIDQyXSB9KSwgbygkVjAsIFsyLCAzM10pLCBvKCRWMCwgWzIsIDM1XSwgeyAzOTogWzEsIDQzXSB9KSwgbygkVjAsIFsyLCAzNF0pLCBvKCRWMCwgWzIsIDM2XSldLFxuICAgIGRlZmF1bHRBY3Rpb25zOiB7fSxcbiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgaWYgKGhhc2gucmVjb3ZlcmFibGUpIHtcbiAgICAgICAgdGhpcy50cmFjZShzdHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKHN0cik7XG4gICAgICAgIGVycm9yLmhhc2ggPSBoYXNoO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzLCBzdGFjayA9IFswXSwgdHN0YWNrID0gW10sIHZzdGFjayA9IFtudWxsXSwgbHN0YWNrID0gW10sIHRhYmxlID0gdGhpcy50YWJsZSwgeXl0ZXh0ID0gXCJcIiwgeXlsaW5lbm8gPSAwLCB5eWxlbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxO1xuICAgICAgdmFyIGFyZ3MgPSBsc3RhY2suc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGxleGVyMiA9IE9iamVjdC5jcmVhdGUodGhpcy5sZXhlcik7XG4gICAgICB2YXIgc2hhcmVkU3RhdGUgPSB7IHl5OiB7fSB9O1xuICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnl5KSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHtcbiAgICAgICAgICBzaGFyZWRTdGF0ZS55eVtrXSA9IHRoaXMueXlba107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxleGVyMi5zZXRJbnB1dChpbnB1dCwgc2hhcmVkU3RhdGUueXkpO1xuICAgICAgc2hhcmVkU3RhdGUueXkubGV4ZXIgPSBsZXhlcjI7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5wYXJzZXIgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBsZXhlcjIueXlsbG9jID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbGV4ZXIyLnl5bGxvYyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICAgIHZhciByYW5nZXMgPSBsZXhlcjIub3B0aW9ucyAmJiBsZXhlcjIub3B0aW9ucy5yYW5nZXM7XG4gICAgICBpZiAodHlwZW9mIHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCkgfHwgbGV4ZXIyLmxleCgpIHx8IEVPRjtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB0c3RhY2sgPSB0b2tlbjtcbiAgICAgICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0b2tlbiA9IHNlbGYuc3ltYm9sc19bdG9rZW5dIHx8IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cbiAgICAgIHZhciBzeW1ib2wsIHN0YXRlLCBhY3Rpb24sIHIsIHl5dmFsID0ge30sIHAsIGxlbiwgbmV3U3RhdGUsIGV4cGVjdGVkO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgc3RhdGUgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdKSB7XG4gICAgICAgICAgYWN0aW9uID0gdGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHN5bWJvbCA9PT0gbnVsbCB8fCB0eXBlb2Ygc3ltYm9sID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHN5bWJvbCA9IGxleCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhY3Rpb24gPSB0YWJsZVtzdGF0ZV0gJiYgdGFibGVbc3RhdGVdW3N5bWJvbF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09IFwidW5kZWZpbmVkXCIgfHwgIWFjdGlvbi5sZW5ndGggfHwgIWFjdGlvblswXSkge1xuICAgICAgICAgIHZhciBlcnJTdHIgPSBcIlwiO1xuICAgICAgICAgIGV4cGVjdGVkID0gW107XG4gICAgICAgICAgZm9yIChwIGluIHRhYmxlW3N0YXRlXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGVybWluYWxzX1twXSAmJiBwID4gVEVSUk9SKSB7XG4gICAgICAgICAgICAgIGV4cGVjdGVkLnB1c2goXCInXCIgKyB0aGlzLnRlcm1pbmFsc19bcF0gKyBcIidcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsZXhlcjIuc2hvd1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOlxcblwiICsgbGV4ZXIyLnNob3dQb3NpdGlvbigpICsgXCJcXG5FeHBlY3RpbmcgXCIgKyBleHBlY3RlZC5qb2luKFwiLCBcIikgKyBcIiwgZ290ICdcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6IFVuZXhwZWN0ZWQgXCIgKyAoc3ltYm9sID09IEVPRiA/IFwiZW5kIG9mIGlucHV0XCIgOiBcIidcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnBhcnNlRXJyb3IoZXJyU3RyLCB7XG4gICAgICAgICAgICB0ZXh0OiBsZXhlcjIubWF0Y2gsXG4gICAgICAgICAgICB0b2tlbjogdGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sLFxuICAgICAgICAgICAgbGluZTogbGV4ZXIyLnl5bGluZW5vLFxuICAgICAgICAgICAgbG9jOiB5eWxvYyxcbiAgICAgICAgICAgIGV4cGVjdGVkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblswXSBpbnN0YW5jZW9mIEFycmF5ICYmIGFjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyc2UgRXJyb3I6IG11bHRpcGxlIGFjdGlvbnMgcG9zc2libGUgYXQgc3RhdGU6IFwiICsgc3RhdGUgKyBcIiwgdG9rZW46IFwiICsgc3ltYm9sKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGFjdGlvblswXSkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHN0YWNrLnB1c2goc3ltYm9sKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKGxleGVyMi55eXRleHQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2gobGV4ZXIyLnl5bGxvYyk7XG4gICAgICAgICAgICBzdGFjay5wdXNoKGFjdGlvblsxXSk7XG4gICAgICAgICAgICBzeW1ib2wgPSBudWxsO1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB5eWxlbmcgPSBsZXhlcjIueXlsZW5nO1xuICAgICAgICAgICAgICB5eXRleHQgPSBsZXhlcjIueXl0ZXh0O1xuICAgICAgICAgICAgICB5eWxpbmVubyA9IGxleGVyMi55eWxpbmVubztcbiAgICAgICAgICAgICAgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgbGVuID0gdGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVsxXTtcbiAgICAgICAgICAgIHl5dmFsLiQgPSB2c3RhY2tbdnN0YWNrLmxlbmd0aCAtIGxlbl07XG4gICAgICAgICAgICB5eXZhbC5fJCA9IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyYW5nZXMpIHtcbiAgICAgICAgICAgICAgeXl2YWwuXyQucmFuZ2UgPSBbXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5yYW5nZVswXSxcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLnJhbmdlWzFdXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByID0gdGhpcy5wZXJmb3JtQWN0aW9uLmFwcGx5KHl5dmFsLCBbXG4gICAgICAgICAgICAgIHl5dGV4dCxcbiAgICAgICAgICAgICAgeXlsZW5nLFxuICAgICAgICAgICAgICB5eWxpbmVubyxcbiAgICAgICAgICAgICAgc2hhcmVkU3RhdGUueXksXG4gICAgICAgICAgICAgIGFjdGlvblsxXSxcbiAgICAgICAgICAgICAgdnN0YWNrLFxuICAgICAgICAgICAgICBsc3RhY2tcbiAgICAgICAgICAgIF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZW4pIHtcbiAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZSgwLCAtMSAqIGxlbiAqIDIpO1xuICAgICAgICAgICAgICB2c3RhY2sgPSB2c3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgICBsc3RhY2sgPSBsc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhY2sucHVzaCh0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzBdKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKHl5dmFsLiQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2goeXl2YWwuXyQpO1xuICAgICAgICAgICAgbmV3U3RhdGUgPSB0YWJsZVtzdGFja1tzdGFjay5sZW5ndGggLSAyXV1bc3RhY2tbc3RhY2subGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgc3RhY2sucHVzaChuZXdTdGF0ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9O1xuICB2YXIgbGV4ZXIgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGV4ZXIyID0ge1xuICAgICAgRU9GOiAxLFxuICAgICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgICAgaWYgKHRoaXMueXkucGFyc2VyKSB7XG4gICAgICAgICAgdGhpcy55eS5wYXJzZXIucGFyc2VFcnJvcihzdHIsIGhhc2gpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmVzZXRzIHRoZSBsZXhlciwgc2V0cyBuZXcgaW5wdXRcbiAgICAgIHNldElucHV0OiBmdW5jdGlvbihpbnB1dCwgeXkpIHtcbiAgICAgICAgdGhpcy55eSA9IHl5IHx8IHRoaXMueXkgfHwge307XG4gICAgICAgIHRoaXMuX2lucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0aGlzLl9iYWNrdHJhY2sgPSB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy55eWxpbmVubyA9IHRoaXMueXlsZW5nID0gMDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjayA9IFtcIklOSVRJQUxcIl07XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiAwLFxuICAgICAgICAgIGxhc3RfbGluZTogMSxcbiAgICAgICAgICBsYXN0X2NvbHVtbjogMFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gWzAsIDBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gY29uc3VtZXMgYW5kIHJldHVybnMgb25lIGNoYXIgZnJvbSB0aGUgaW5wdXRcbiAgICAgIGlucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGNoID0gdGhpcy5faW5wdXRbMF07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IGNoO1xuICAgICAgICB0aGlzLnl5bGVuZysrO1xuICAgICAgICB0aGlzLm9mZnNldCsrO1xuICAgICAgICB0aGlzLm1hdGNoICs9IGNoO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gY2g7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubysrO1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfbGluZSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfY29sdW1uKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZVsxXSsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UoMSk7XG4gICAgICAgIHJldHVybiBjaDtcbiAgICAgIH0sXG4gICAgICAvLyB1bnNoaWZ0cyBvbmUgY2hhciAob3IgYSBzdHJpbmcpIGludG8gdGhlIGlucHV0XG4gICAgICB1bnB1dDogZnVuY3Rpb24oY2gpIHtcbiAgICAgICAgdmFyIGxlbiA9IGNoLmxlbmd0aDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBjaCArIHRoaXMuX2lucHV0O1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMueXl0ZXh0LnN1YnN0cigwLCB0aGlzLnl5dGV4dC5sZW5ndGggLSBsZW4pO1xuICAgICAgICB0aGlzLm9mZnNldCAtPSBsZW47XG4gICAgICAgIHZhciBvbGRMaW5lcyA9IHRoaXMubWF0Y2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5tYXRjaCA9IHRoaXMubWF0Y2guc3Vic3RyKDAsIHRoaXMubWF0Y2gubGVuZ3RoIC0gMSk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIDEpO1xuICAgICAgICBpZiAobGluZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gLT0gbGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgciA9IHRoaXMueXlsbG9jLnJhbmdlO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gKGxpbmVzLmxlbmd0aCA9PT0gb2xkTGluZXMubGVuZ3RoID8gdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIDogMCkgKyBvbGRMaW5lc1tvbGRMaW5lcy5sZW5ndGggLSBsaW5lcy5sZW5ndGhdLmxlbmd0aCAtIGxpbmVzWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiAtIGxlblxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3JbMF0sIHJbMF0gKyB0aGlzLnl5bGVuZyAtIGxlbl07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBjYWNoZXMgbWF0Y2hlZCB0ZXh0IGFuZCBhcHBlbmRzIGl0IG9uIG5leHQgYWN0aW9uXG4gICAgICBtb3JlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBzaWduYWxzIHRoZSBsZXhlciB0aGF0IHRoaXMgcnVsZSBmYWlscyB0byBtYXRjaCB0aGUgaW5wdXQsIHNvIHRoZSBuZXh0IG1hdGNoaW5nIHJ1bGUgKHJlZ2V4KSBzaG91bGQgYmUgdGVzdGVkIGluc3RlYWQuXG4gICAgICByZWplY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gWW91IGNhbiBvbmx5IGludm9rZSByZWplY3QoKSBpbiB0aGUgbGV4ZXIgd2hlbiB0aGUgbGV4ZXIgaXMgb2YgdGhlIGJhY2t0cmFja2luZyBwZXJzdWFzaW9uIChvcHRpb25zLmJhY2t0cmFja19sZXhlciA9IHRydWUpLlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIHJldGFpbiBmaXJzdCBuIGNoYXJhY3RlcnMgb2YgdGhlIG1hdGNoXG4gICAgICBsZXNzOiBmdW5jdGlvbihuKSB7XG4gICAgICAgIHRoaXMudW5wdXQodGhpcy5tYXRjaC5zbGljZShuKSk7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgYWxyZWFkeSBtYXRjaGVkIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgcGFzdElucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHBhc3QgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSB0aGlzLm1hdGNoLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiAocGFzdC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSArIHBhc3Quc3Vic3RyKC0yMCkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHVwY29taW5nIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgdXBjb21pbmdJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5tYXRjaDtcbiAgICAgICAgaWYgKG5leHQubGVuZ3RoIDwgMjApIHtcbiAgICAgICAgICBuZXh0ICs9IHRoaXMuX2lucHV0LnN1YnN0cigwLCAyMCAtIG5leHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKG5leHQuc3Vic3RyKDAsIDIwKSArIChuZXh0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdGhlIGNoYXJhY3RlciBwb3NpdGlvbiB3aGVyZSB0aGUgbGV4aW5nIGVycm9yIG9jY3VycmVkLCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgc2hvd1Bvc2l0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHByZSA9IHRoaXMucGFzdElucHV0KCk7XG4gICAgICAgIHZhciBjID0gbmV3IEFycmF5KHByZS5sZW5ndGggKyAxKS5qb2luKFwiLVwiKTtcbiAgICAgICAgcmV0dXJuIHByZSArIHRoaXMudXBjb21pbmdJbnB1dCgpICsgXCJcXG5cIiArIGMgKyBcIl5cIjtcbiAgICAgIH0sXG4gICAgICAvLyB0ZXN0IHRoZSBsZXhlZCB0b2tlbjogcmV0dXJuIEZBTFNFIHdoZW4gbm90IGEgbWF0Y2gsIG90aGVyd2lzZSByZXR1cm4gdG9rZW5cbiAgICAgIHRlc3RfbWF0Y2g6IGZ1bmN0aW9uKG1hdGNoLCBpbmRleGVkX3J1bGUpIHtcbiAgICAgICAgdmFyIHRva2VuLCBsaW5lcywgYmFja3VwO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIGJhY2t1cCA9IHtcbiAgICAgICAgICAgIHl5bGluZW5vOiB0aGlzLnl5bGluZW5vLFxuICAgICAgICAgICAgeXlsbG9jOiB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogdGhpcy5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5eXRleHQ6IHRoaXMueXl0ZXh0LFxuICAgICAgICAgICAgbWF0Y2g6IHRoaXMubWF0Y2gsXG4gICAgICAgICAgICBtYXRjaGVzOiB0aGlzLm1hdGNoZXMsXG4gICAgICAgICAgICBtYXRjaGVkOiB0aGlzLm1hdGNoZWQsXG4gICAgICAgICAgICB5eWxlbmc6IHRoaXMueXlsZW5nLFxuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgIF9tb3JlOiB0aGlzLl9tb3JlLFxuICAgICAgICAgICAgX2lucHV0OiB0aGlzLl9pbnB1dCxcbiAgICAgICAgICAgIHl5OiB0aGlzLnl5LFxuICAgICAgICAgICAgY29uZGl0aW9uU3RhY2s6IHRoaXMuY29uZGl0aW9uU3RhY2suc2xpY2UoMCksXG4gICAgICAgICAgICBkb25lOiB0aGlzLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgICBiYWNrdXAueXlsbG9jLnJhbmdlID0gdGhpcy55eWxsb2MucmFuZ2Uuc2xpY2UoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxpbmVzID0gbWF0Y2hbMF0ubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5sYXN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLm1hdGNoKC9cXHI/XFxuPy8pWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uICsgbWF0Y2hbMF0ubGVuZ3RoXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoZXMgPSBtYXRjaDtcbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbdGhpcy5vZmZzZXQsIHRoaXMub2Zmc2V0ICs9IHRoaXMueXlsZW5nXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tb3JlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBtYXRjaFswXTtcbiAgICAgICAgdG9rZW4gPSB0aGlzLnBlcmZvcm1BY3Rpb24uY2FsbCh0aGlzLCB0aGlzLnl5LCB0aGlzLCBpbmRleGVkX3J1bGUsIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSk7XG4gICAgICAgIGlmICh0aGlzLmRvbmUgJiYgdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgZm9yICh2YXIgayBpbiBiYWNrdXApIHtcbiAgICAgICAgICAgIHRoaXNba10gPSBiYWNrdXBba107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggaW4gaW5wdXRcbiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b2tlbiwgbWF0Y2gsIHRlbXBNYXRjaCwgaW5kZXg7XG4gICAgICAgIGlmICghdGhpcy5fbW9yZSkge1xuICAgICAgICAgIHRoaXMueXl0ZXh0ID0gXCJcIjtcbiAgICAgICAgICB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcnVsZXMgPSB0aGlzLl9jdXJyZW50UnVsZXMoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRlbXBNYXRjaCA9IHRoaXMuX2lucHV0Lm1hdGNoKHRoaXMucnVsZXNbcnVsZXNbaV1dKTtcbiAgICAgICAgICBpZiAodGVtcE1hdGNoICYmICghbWF0Y2ggfHwgdGVtcE1hdGNoWzBdLmxlbmd0aCA+IG1hdGNoWzBdLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIG1hdGNoID0gdGVtcE1hdGNoO1xuICAgICAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2godGVtcE1hdGNoLCBydWxlc1tpXSk7XG4gICAgICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3B0aW9ucy5mbGV4KSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaChtYXRjaCwgcnVsZXNbaW5kZXhdKTtcbiAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faW5wdXQgPT09IFwiXCIpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gVW5yZWNvZ25pemVkIHRleHQuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCB0aGF0IGhhcyBhIHRva2VuXG4gICAgICBsZXg6IGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLm5leHQoKTtcbiAgICAgICAgaWYgKHIpIHtcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sZXgoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFjdGl2YXRlcyBhIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgKHB1c2hlcyB0aGUgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvbnRvIHRoZSBjb25kaXRpb24gc3RhY2spXG4gICAgICBiZWdpbjogZnVuY3Rpb24gYmVnaW4oY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sucHVzaChjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHBvcCB0aGUgcHJldmlvdXNseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9mZiB0aGUgY29uZGl0aW9uIHN0YWNrXG4gICAgICBwb3BTdGF0ZTogZnVuY3Rpb24gcG9wU3RhdGUoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxO1xuICAgICAgICBpZiAobiA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5wb3AoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1swXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHByb2R1Y2UgdGhlIGxleGVyIHJ1bGUgc2V0IHdoaWNoIGlzIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlXG4gICAgICBfY3VycmVudFJ1bGVzOiBmdW5jdGlvbiBfY3VycmVudFJ1bGVzKCkge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggJiYgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1t0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV1dLnJ1bGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbXCJJTklUSUFMXCJdLnJ1bGVzO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZTsgd2hlbiBhbiBpbmRleCBhcmd1bWVudCBpcyBwcm92aWRlZCBpdCBwcm9kdWNlcyB0aGUgTi10aCBwcmV2aW91cyBjb25kaXRpb24gc3RhdGUsIGlmIGF2YWlsYWJsZVxuICAgICAgdG9wU3RhdGU6IGZ1bmN0aW9uIHRvcFN0YXRlKG4pIHtcbiAgICAgICAgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMSAtIE1hdGguYWJzKG4gfHwgMCk7XG4gICAgICAgIGlmIChuID49IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1tuXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gXCJJTklUSUFMXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhbGlhcyBmb3IgYmVnaW4oY29uZGl0aW9uKVxuICAgICAgcHVzaFN0YXRlOiBmdW5jdGlvbiBwdXNoU3RhdGUoY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuYmVnaW4oY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0ZXMgY3VycmVudGx5IG9uIHRoZSBzdGFja1xuICAgICAgc3RhdGVTdGFja1NpemU6IGZ1bmN0aW9uIHN0YXRlU3RhY2tTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgb3B0aW9uczogeyBcImNhc2UtaW5zZW5zaXRpdmVcIjogdHJ1ZSB9LFxuICAgICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5LCB5eV8sICRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMsIFlZX1NUQVJUKSB7XG4gICAgICAgIHN3aXRjaCAoJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucykge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJvcGVuX2RpcmVjdGl2ZVwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIm9wZW5fZGlyZWN0aXZlXCI7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY190aXRsZVwiKTtcbiAgICAgICAgICAgIHJldHVybiAyODtcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfdGl0bGVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiYWNjX2Rlc2NyXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDMwO1xuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjcl92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgcmV0dXJuIDEwO1xuICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJocmVmXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgICByZXR1cm4gNDA7XG4gICAgICAgICAgY2FzZSAxNzpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJjYWxsYmFja25hbWVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJjYWxsYmFja2FyZ3NcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgICAgcmV0dXJuIDM4O1xuICAgICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgICAgcmV0dXJuIDM5O1xuICAgICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiY2xpY2tcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIHJldHVybiAzNztcbiAgICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgIHJldHVybiAxOTtcbiAgICAgICAgICBjYXNlIDI4OlxuICAgICAgICAgICAgcmV0dXJuIDIwO1xuICAgICAgICAgIGNhc2UgMjk6XG4gICAgICAgICAgICByZXR1cm4gMjE7XG4gICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICAgIHJldHVybiAyMjtcbiAgICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgICAgcmV0dXJuIDIzO1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgICByZXR1cm4gMjU7XG4gICAgICAgICAgY2FzZSAzMzpcbiAgICAgICAgICAgIHJldHVybiAyNDtcbiAgICAgICAgICBjYXNlIDM0OlxuICAgICAgICAgICAgcmV0dXJuIDI2O1xuICAgICAgICAgIGNhc2UgMzU6XG4gICAgICAgICAgICByZXR1cm4gMTI7XG4gICAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICAgIHJldHVybiAxMztcbiAgICAgICAgICBjYXNlIDM3OlxuICAgICAgICAgICAgcmV0dXJuIDE0O1xuICAgICAgICAgIGNhc2UgMzg6XG4gICAgICAgICAgICByZXR1cm4gMTU7XG4gICAgICAgICAgY2FzZSAzOTpcbiAgICAgICAgICAgIHJldHVybiAxNjtcbiAgICAgICAgICBjYXNlIDQwOlxuICAgICAgICAgICAgcmV0dXJuIDE3O1xuICAgICAgICAgIGNhc2UgNDE6XG4gICAgICAgICAgICByZXR1cm4gMTg7XG4gICAgICAgICAgY2FzZSA0MjpcbiAgICAgICAgICAgIHJldHVybiBcImRhdGVcIjtcbiAgICAgICAgICBjYXNlIDQzOlxuICAgICAgICAgICAgcmV0dXJuIDI3O1xuICAgICAgICAgIGNhc2UgNDQ6XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NEZXNjcmlwdGlvblwiO1xuICAgICAgICAgIGNhc2UgNDU6XG4gICAgICAgICAgICByZXR1cm4gMzM7XG4gICAgICAgICAgY2FzZSA0NjpcbiAgICAgICAgICAgIHJldHVybiAzNTtcbiAgICAgICAgICBjYXNlIDQ3OlxuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgNDg6XG4gICAgICAgICAgICByZXR1cm4gXCI6XCI7XG4gICAgICAgICAgY2FzZSA0OTpcbiAgICAgICAgICAgIHJldHVybiA2O1xuICAgICAgICAgIGNhc2UgNTA6XG4gICAgICAgICAgICByZXR1cm4gXCJJTlZBTElEXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczogWy9eKD86JSVcXHspL2ksIC9eKD86YWNjVGl0bGVcXHMqOlxccyopL2ksIC9eKD86KD8hXFxufHwpKlteXFxuXSopL2ksIC9eKD86YWNjRGVzY3JcXHMqOlxccyopL2ksIC9eKD86KD8hXFxufHwpKlteXFxuXSopL2ksIC9eKD86YWNjRGVzY3JcXHMqXFx7XFxzKikvaSwgL14oPzpbXFx9XSkvaSwgL14oPzpbXlxcfV0qKS9pLCAvXig/OiUlKD8hXFx7KSpbXlxcbl0qKS9pLCAvXig/OlteXFx9XSUlKlteXFxuXSopL2ksIC9eKD86JSUqW15cXG5dKltcXG5dKikvaSwgL14oPzpbXFxuXSspL2ksIC9eKD86XFxzKykvaSwgL14oPzolW15cXG5dKikvaSwgL14oPzpocmVmW1xcc10rW1wiXSkvaSwgL14oPzpbXCJdKS9pLCAvXig/OlteXCJdKikvaSwgL14oPzpjYWxsW1xcc10rKS9pLCAvXig/OlxcKFtcXHNdKlxcKSkvaSwgL14oPzpcXCgpL2ksIC9eKD86W14oXSopL2ksIC9eKD86XFwpKS9pLCAvXig/OlteKV0qKS9pLCAvXig/OmNsaWNrW1xcc10rKS9pLCAvXig/OltcXHNcXG5dKS9pLCAvXig/OlteXFxzXFxuXSopL2ksIC9eKD86Z2FudHRcXGIpL2ksIC9eKD86ZGF0ZUZvcm1hdFxcc1teI1xcbjtdKykvaSwgL14oPzppbmNsdXNpdmVFbmREYXRlc1xcYikvaSwgL14oPzp0b3BBeGlzXFxiKS9pLCAvXig/OmF4aXNGb3JtYXRcXHNbXiNcXG47XSspL2ksIC9eKD86dGlja0ludGVydmFsXFxzW14jXFxuO10rKS9pLCAvXig/OmluY2x1ZGVzXFxzW14jXFxuO10rKS9pLCAvXig/OmV4Y2x1ZGVzXFxzW14jXFxuO10rKS9pLCAvXig/OnRvZGF5TWFya2VyXFxzW15cXG47XSspL2ksIC9eKD86d2Vla2RheVxccyttb25kYXlcXGIpL2ksIC9eKD86d2Vla2RheVxccyt0dWVzZGF5XFxiKS9pLCAvXig/OndlZWtkYXlcXHMrd2VkbmVzZGF5XFxiKS9pLCAvXig/OndlZWtkYXlcXHMrdGh1cnNkYXlcXGIpL2ksIC9eKD86d2Vla2RheVxccytmcmlkYXlcXGIpL2ksIC9eKD86d2Vla2RheVxccytzYXR1cmRheVxcYikvaSwgL14oPzp3ZWVrZGF5XFxzK3N1bmRheVxcYikvaSwgL14oPzpcXGRcXGRcXGRcXGQtXFxkXFxkLVxcZFxcZFxcYikvaSwgL14oPzp0aXRsZVxcc1teXFxuXSspL2ksIC9eKD86YWNjRGVzY3JpcHRpb25cXHNbXiNcXG47XSspL2ksIC9eKD86c2VjdGlvblxcc1teXFxuXSspL2ksIC9eKD86W146XFxuXSspL2ksIC9eKD86OlteI1xcbjtdKykvaSwgL14oPzo6KS9pLCAvXig/OiQpL2ksIC9eKD86LikvaV0sXG4gICAgICBjb25kaXRpb25zOiB7IFwiYWNjX2Rlc2NyX211bHRpbGluZVwiOiB7IFwicnVsZXNcIjogWzYsIDddLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY19kZXNjclwiOiB7IFwicnVsZXNcIjogWzRdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY190aXRsZVwiOiB7IFwicnVsZXNcIjogWzJdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImNhbGxiYWNrYXJnc1wiOiB7IFwicnVsZXNcIjogWzIxLCAyMl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiY2FsbGJhY2tuYW1lXCI6IHsgXCJydWxlc1wiOiBbMTgsIDE5LCAyMF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiaHJlZlwiOiB7IFwicnVsZXNcIjogWzE1LCAxNl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiY2xpY2tcIjogeyBcInJ1bGVzXCI6IFsyNCwgMjVdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIklOSVRJQUxcIjogeyBcInJ1bGVzXCI6IFswLCAxLCAzLCA1LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE3LCAyMywgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTBdLCBcImluY2x1c2l2ZVwiOiB0cnVlIH0gfVxuICAgIH07XG4gICAgcmV0dXJuIGxleGVyMjtcbiAgfSgpO1xuICBwYXJzZXIyLmxleGVyID0gbGV4ZXI7XG4gIGZ1bmN0aW9uIFBhcnNlcigpIHtcbiAgICB0aGlzLnl5ID0ge307XG4gIH1cbiAgUGFyc2VyLnByb3RvdHlwZSA9IHBhcnNlcjI7XG4gIHBhcnNlcjIuUGFyc2VyID0gUGFyc2VyO1xuICByZXR1cm4gbmV3IFBhcnNlcigpO1xufSgpO1xucGFyc2VyLnBhcnNlciA9IHBhcnNlcjtcbmNvbnN0IGdhbnR0UGFyc2VyID0gcGFyc2VyO1xuZGF5anMuZXh0ZW5kKGRheWpzSXNvV2Vlayk7XG5kYXlqcy5leHRlbmQoZGF5anNDdXN0b21QYXJzZUZvcm1hdCk7XG5kYXlqcy5leHRlbmQoZGF5anNBZHZhbmNlZEZvcm1hdCk7XG5sZXQgZGF0ZUZvcm1hdCA9IFwiXCI7XG5sZXQgYXhpc0Zvcm1hdCA9IFwiXCI7XG5sZXQgdGlja0ludGVydmFsID0gdm9pZCAwO1xubGV0IHRvZGF5TWFya2VyID0gXCJcIjtcbmxldCBpbmNsdWRlcyA9IFtdO1xubGV0IGV4Y2x1ZGVzID0gW107XG5sZXQgbGlua3MgPSB7fTtcbmxldCBzZWN0aW9ucyA9IFtdO1xubGV0IHRhc2tzID0gW107XG5sZXQgY3VycmVudFNlY3Rpb24gPSBcIlwiO1xubGV0IGRpc3BsYXlNb2RlID0gXCJcIjtcbmNvbnN0IHRhZ3MgPSBbXCJhY3RpdmVcIiwgXCJkb25lXCIsIFwiY3JpdFwiLCBcIm1pbGVzdG9uZVwiXTtcbmxldCBmdW5zID0gW107XG5sZXQgaW5jbHVzaXZlRW5kRGF0ZXMgPSBmYWxzZTtcbmxldCB0b3BBeGlzID0gZmFsc2U7XG5sZXQgd2Vla2RheSA9IFwic3VuZGF5XCI7XG5sZXQgbGFzdE9yZGVyID0gMDtcbmNvbnN0IGNsZWFyID0gZnVuY3Rpb24oKSB7XG4gIHNlY3Rpb25zID0gW107XG4gIHRhc2tzID0gW107XG4gIGN1cnJlbnRTZWN0aW9uID0gXCJcIjtcbiAgZnVucyA9IFtdO1xuICB0YXNrQ250ID0gMDtcbiAgbGFzdFRhc2sgPSB2b2lkIDA7XG4gIGxhc3RUYXNrSUQgPSB2b2lkIDA7XG4gIHJhd1Rhc2tzID0gW107XG4gIGRhdGVGb3JtYXQgPSBcIlwiO1xuICBheGlzRm9ybWF0ID0gXCJcIjtcbiAgZGlzcGxheU1vZGUgPSBcIlwiO1xuICB0aWNrSW50ZXJ2YWwgPSB2b2lkIDA7XG4gIHRvZGF5TWFya2VyID0gXCJcIjtcbiAgaW5jbHVkZXMgPSBbXTtcbiAgZXhjbHVkZXMgPSBbXTtcbiAgaW5jbHVzaXZlRW5kRGF0ZXMgPSBmYWxzZTtcbiAgdG9wQXhpcyA9IGZhbHNlO1xuICBsYXN0T3JkZXIgPSAwO1xuICBsaW5rcyA9IHt9O1xuICBjbGVhciQxKCk7XG4gIHdlZWtkYXkgPSBcInN1bmRheVwiO1xufTtcbmNvbnN0IHNldEF4aXNGb3JtYXQgPSBmdW5jdGlvbih0eHQpIHtcbiAgYXhpc0Zvcm1hdCA9IHR4dDtcbn07XG5jb25zdCBnZXRBeGlzRm9ybWF0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBheGlzRm9ybWF0O1xufTtcbmNvbnN0IHNldFRpY2tJbnRlcnZhbCA9IGZ1bmN0aW9uKHR4dCkge1xuICB0aWNrSW50ZXJ2YWwgPSB0eHQ7XG59O1xuY29uc3QgZ2V0VGlja0ludGVydmFsID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aWNrSW50ZXJ2YWw7XG59O1xuY29uc3Qgc2V0VG9kYXlNYXJrZXIgPSBmdW5jdGlvbih0eHQpIHtcbiAgdG9kYXlNYXJrZXIgPSB0eHQ7XG59O1xuY29uc3QgZ2V0VG9kYXlNYXJrZXIgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRvZGF5TWFya2VyO1xufTtcbmNvbnN0IHNldERhdGVGb3JtYXQgPSBmdW5jdGlvbih0eHQpIHtcbiAgZGF0ZUZvcm1hdCA9IHR4dDtcbn07XG5jb25zdCBlbmFibGVJbmNsdXNpdmVFbmREYXRlcyA9IGZ1bmN0aW9uKCkge1xuICBpbmNsdXNpdmVFbmREYXRlcyA9IHRydWU7XG59O1xuY29uc3QgZW5kRGF0ZXNBcmVJbmNsdXNpdmUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGluY2x1c2l2ZUVuZERhdGVzO1xufTtcbmNvbnN0IGVuYWJsZVRvcEF4aXMgPSBmdW5jdGlvbigpIHtcbiAgdG9wQXhpcyA9IHRydWU7XG59O1xuY29uc3QgdG9wQXhpc0VuYWJsZWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRvcEF4aXM7XG59O1xuY29uc3Qgc2V0RGlzcGxheU1vZGUgPSBmdW5jdGlvbih0eHQpIHtcbiAgZGlzcGxheU1vZGUgPSB0eHQ7XG59O1xuY29uc3QgZ2V0RGlzcGxheU1vZGUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGRpc3BsYXlNb2RlO1xufTtcbmNvbnN0IGdldERhdGVGb3JtYXQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGRhdGVGb3JtYXQ7XG59O1xuY29uc3Qgc2V0SW5jbHVkZXMgPSBmdW5jdGlvbih0eHQpIHtcbiAgaW5jbHVkZXMgPSB0eHQudG9Mb3dlckNhc2UoKS5zcGxpdCgvW1xccyxdKy8pO1xufTtcbmNvbnN0IGdldEluY2x1ZGVzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBpbmNsdWRlcztcbn07XG5jb25zdCBzZXRFeGNsdWRlcyA9IGZ1bmN0aW9uKHR4dCkge1xuICBleGNsdWRlcyA9IHR4dC50b0xvd2VyQ2FzZSgpLnNwbGl0KC9bXFxzLF0rLyk7XG59O1xuY29uc3QgZ2V0RXhjbHVkZXMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGV4Y2x1ZGVzO1xufTtcbmNvbnN0IGdldExpbmtzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBsaW5rcztcbn07XG5jb25zdCBhZGRTZWN0aW9uID0gZnVuY3Rpb24odHh0KSB7XG4gIGN1cnJlbnRTZWN0aW9uID0gdHh0O1xuICBzZWN0aW9ucy5wdXNoKHR4dCk7XG59O1xuY29uc3QgZ2V0U2VjdGlvbnMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHNlY3Rpb25zO1xufTtcbmNvbnN0IGdldFRhc2tzID0gZnVuY3Rpb24oKSB7XG4gIGxldCBhbGxJdGVtc1Byb2Nlc3NlZCA9IGNvbXBpbGVUYXNrcygpO1xuICBjb25zdCBtYXhEZXB0aCA9IDEwO1xuICBsZXQgaXRlcmF0aW9uQ291bnQgPSAwO1xuICB3aGlsZSAoIWFsbEl0ZW1zUHJvY2Vzc2VkICYmIGl0ZXJhdGlvbkNvdW50IDwgbWF4RGVwdGgpIHtcbiAgICBhbGxJdGVtc1Byb2Nlc3NlZCA9IGNvbXBpbGVUYXNrcygpO1xuICAgIGl0ZXJhdGlvbkNvdW50Kys7XG4gIH1cbiAgdGFza3MgPSByYXdUYXNrcztcbiAgcmV0dXJuIHRhc2tzO1xufTtcbmNvbnN0IGlzSW52YWxpZERhdGUgPSBmdW5jdGlvbihkYXRlLCBkYXRlRm9ybWF0MiwgZXhjbHVkZXMyLCBpbmNsdWRlczIpIHtcbiAgaWYgKGluY2x1ZGVzMi5pbmNsdWRlcyhkYXRlLmZvcm1hdChkYXRlRm9ybWF0Mi50cmltKCkpKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoZGF0ZS5pc29XZWVrZGF5KCkgPj0gNiAmJiBleGNsdWRlczIuaW5jbHVkZXMoXCJ3ZWVrZW5kc1wiKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChleGNsdWRlczIuaW5jbHVkZXMoZGF0ZS5mb3JtYXQoXCJkZGRkXCIpLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGV4Y2x1ZGVzMi5pbmNsdWRlcyhkYXRlLmZvcm1hdChkYXRlRm9ybWF0Mi50cmltKCkpKTtcbn07XG5jb25zdCBzZXRXZWVrZGF5ID0gZnVuY3Rpb24odHh0KSB7XG4gIHdlZWtkYXkgPSB0eHQ7XG59O1xuY29uc3QgZ2V0V2Vla2RheSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gd2Vla2RheTtcbn07XG5jb25zdCBjaGVja1Rhc2tEYXRlcyA9IGZ1bmN0aW9uKHRhc2ssIGRhdGVGb3JtYXQyLCBleGNsdWRlczIsIGluY2x1ZGVzMikge1xuICBpZiAoIWV4Y2x1ZGVzMi5sZW5ndGggfHwgdGFzay5tYW51YWxFbmRUaW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGxldCBzdGFydFRpbWU7XG4gIGlmICh0YXNrLnN0YXJ0VGltZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBzdGFydFRpbWUgPSBkYXlqcyh0YXNrLnN0YXJ0VGltZSk7XG4gIH0gZWxzZSB7XG4gICAgc3RhcnRUaW1lID0gZGF5anModGFzay5zdGFydFRpbWUsIGRhdGVGb3JtYXQyLCB0cnVlKTtcbiAgfVxuICBzdGFydFRpbWUgPSBzdGFydFRpbWUuYWRkKDEsIFwiZFwiKTtcbiAgbGV0IG9yaWdpbmFsRW5kVGltZTtcbiAgaWYgKHRhc2suZW5kVGltZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBvcmlnaW5hbEVuZFRpbWUgPSBkYXlqcyh0YXNrLmVuZFRpbWUpO1xuICB9IGVsc2Uge1xuICAgIG9yaWdpbmFsRW5kVGltZSA9IGRheWpzKHRhc2suZW5kVGltZSwgZGF0ZUZvcm1hdDIsIHRydWUpO1xuICB9XG4gIGNvbnN0IFtmaXhlZEVuZFRpbWUsIHJlbmRlckVuZFRpbWVdID0gZml4VGFza0RhdGVzKFxuICAgIHN0YXJ0VGltZSxcbiAgICBvcmlnaW5hbEVuZFRpbWUsXG4gICAgZGF0ZUZvcm1hdDIsXG4gICAgZXhjbHVkZXMyLFxuICAgIGluY2x1ZGVzMlxuICApO1xuICB0YXNrLmVuZFRpbWUgPSBmaXhlZEVuZFRpbWUudG9EYXRlKCk7XG4gIHRhc2sucmVuZGVyRW5kVGltZSA9IHJlbmRlckVuZFRpbWU7XG59O1xuY29uc3QgZml4VGFza0RhdGVzID0gZnVuY3Rpb24oc3RhcnRUaW1lLCBlbmRUaW1lLCBkYXRlRm9ybWF0MiwgZXhjbHVkZXMyLCBpbmNsdWRlczIpIHtcbiAgbGV0IGludmFsaWQgPSBmYWxzZTtcbiAgbGV0IHJlbmRlckVuZFRpbWUgPSBudWxsO1xuICB3aGlsZSAoc3RhcnRUaW1lIDw9IGVuZFRpbWUpIHtcbiAgICBpZiAoIWludmFsaWQpIHtcbiAgICAgIHJlbmRlckVuZFRpbWUgPSBlbmRUaW1lLnRvRGF0ZSgpO1xuICAgIH1cbiAgICBpbnZhbGlkID0gaXNJbnZhbGlkRGF0ZShzdGFydFRpbWUsIGRhdGVGb3JtYXQyLCBleGNsdWRlczIsIGluY2x1ZGVzMik7XG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIGVuZFRpbWUgPSBlbmRUaW1lLmFkZCgxLCBcImRcIik7XG4gICAgfVxuICAgIHN0YXJ0VGltZSA9IHN0YXJ0VGltZS5hZGQoMSwgXCJkXCIpO1xuICB9XG4gIHJldHVybiBbZW5kVGltZSwgcmVuZGVyRW5kVGltZV07XG59O1xuY29uc3QgZ2V0U3RhcnREYXRlID0gZnVuY3Rpb24ocHJldlRpbWUsIGRhdGVGb3JtYXQyLCBzdHIpIHtcbiAgc3RyID0gc3RyLnRyaW0oKTtcbiAgY29uc3QgYWZ0ZXJSZVBhdHRlcm4gPSAvXmFmdGVyXFxzKyg/PGlkcz5bXFxkXFx3LSBdKykvO1xuICBjb25zdCBhZnRlclN0YXRlbWVudCA9IGFmdGVyUmVQYXR0ZXJuLmV4ZWMoc3RyKTtcbiAgaWYgKGFmdGVyU3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgbGV0IGxhdGVzdFRhc2sgPSBudWxsO1xuICAgIGZvciAoY29uc3QgaWQgb2YgYWZ0ZXJTdGF0ZW1lbnQuZ3JvdXBzLmlkcy5zcGxpdChcIiBcIikpIHtcbiAgICAgIGxldCB0YXNrID0gZmluZFRhc2tCeUlkKGlkKTtcbiAgICAgIGlmICh0YXNrICE9PSB2b2lkIDAgJiYgKCFsYXRlc3RUYXNrIHx8IHRhc2suZW5kVGltZSA+IGxhdGVzdFRhc2suZW5kVGltZSkpIHtcbiAgICAgICAgbGF0ZXN0VGFzayA9IHRhc2s7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChsYXRlc3RUYXNrKSB7XG4gICAgICByZXR1cm4gbGF0ZXN0VGFzay5lbmRUaW1lO1xuICAgIH1cbiAgICBjb25zdCB0b2RheSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpO1xuICAgIHRvZGF5LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiB0b2RheTtcbiAgfVxuICBsZXQgbURhdGUgPSBkYXlqcyhzdHIsIGRhdGVGb3JtYXQyLnRyaW0oKSwgdHJ1ZSk7XG4gIGlmIChtRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICByZXR1cm4gbURhdGUudG9EYXRlKCk7XG4gIH0gZWxzZSB7XG4gICAgbG9nLmRlYnVnKFwiSW52YWxpZCBkYXRlOlwiICsgc3RyKTtcbiAgICBsb2cuZGVidWcoXCJXaXRoIGRhdGUgZm9ybWF0OlwiICsgZGF0ZUZvcm1hdDIudHJpbSgpKTtcbiAgICBjb25zdCBkID0gbmV3IERhdGUoc3RyKTtcbiAgICBpZiAoZCA9PT0gdm9pZCAwIHx8IGlzTmFOKGQuZ2V0VGltZSgpKSB8fCAvLyBXZWJLaXQgYnJvd3NlcnMgY2FuIG1pcy1wYXJzZSBpbnZhbGlkIGRhdGVzIHRvIGJlIHJpZGljdWxvdXNseVxuICAgIC8vIGh1Z2UgbnVtYmVycywgZS5nLiBuZXcgRGF0ZSgnMjAyMzA0JykgZ2V0cyBwYXJzZWQgYXMgSmFudWFyeSAxLCAyMDIzMDQuXG4gICAgLy8gVGhpcyBjYW4gY2F1c2UgdmlydHVhbGx5IGluZmluaXRlIGxvb3BzIHdoaWxlIHJlbmRlcmluZywgc28gZm9yIHRoZVxuICAgIC8vIHB1cnBvc2VzIG9mIEdhbnR0IGNoYXJ0cyB3ZSdsbCBqdXN0IHRyZWF0IGFueSBkYXRlIGJleW9uZCAxMCwwMDAgQUQvQkMgYXNcbiAgICAvLyBpbnZhbGlkLlxuICAgIGQuZ2V0RnVsbFllYXIoKSA8IC0xZTQgfHwgZC5nZXRGdWxsWWVhcigpID4gMWU0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGRhdGU6XCIgKyBzdHIpO1xuICAgIH1cbiAgICByZXR1cm4gZDtcbiAgfVxufTtcbmNvbnN0IHBhcnNlRHVyYXRpb24gPSBmdW5jdGlvbihzdHIpIHtcbiAgY29uc3Qgc3RhdGVtZW50ID0gL14oXFxkKyg/OlxcLlxcZCspPykoW01kaG1zd3ldfG1zKSQvLmV4ZWMoc3RyLnRyaW0oKSk7XG4gIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICByZXR1cm4gW051bWJlci5wYXJzZUZsb2F0KHN0YXRlbWVudFsxXSksIHN0YXRlbWVudFsyXV07XG4gIH1cbiAgcmV0dXJuIFtOYU4sIFwibXNcIl07XG59O1xuY29uc3QgZ2V0RW5kRGF0ZSA9IGZ1bmN0aW9uKHByZXZUaW1lLCBkYXRlRm9ybWF0Miwgc3RyLCBpbmNsdXNpdmUgPSBmYWxzZSkge1xuICBzdHIgPSBzdHIudHJpbSgpO1xuICBjb25zdCB1bnRpbFJlUGF0dGVybiA9IC9edW50aWxcXHMrKD88aWRzPltcXGRcXHctIF0rKS87XG4gIGNvbnN0IHVudGlsU3RhdGVtZW50ID0gdW50aWxSZVBhdHRlcm4uZXhlYyhzdHIpO1xuICBpZiAodW50aWxTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICBsZXQgZWFybGllc3RUYXNrID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHVudGlsU3RhdGVtZW50Lmdyb3Vwcy5pZHMuc3BsaXQoXCIgXCIpKSB7XG4gICAgICBsZXQgdGFzayA9IGZpbmRUYXNrQnlJZChpZCk7XG4gICAgICBpZiAodGFzayAhPT0gdm9pZCAwICYmICghZWFybGllc3RUYXNrIHx8IHRhc2suc3RhcnRUaW1lIDwgZWFybGllc3RUYXNrLnN0YXJ0VGltZSkpIHtcbiAgICAgICAgZWFybGllc3RUYXNrID0gdGFzaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVhcmxpZXN0VGFzaykge1xuICAgICAgcmV0dXJuIGVhcmxpZXN0VGFzay5zdGFydFRpbWU7XG4gICAgfVxuICAgIGNvbnN0IHRvZGF5ID0gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7XG4gICAgdG9kYXkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgcmV0dXJuIHRvZGF5O1xuICB9XG4gIGxldCBwYXJzZWREYXRlID0gZGF5anMoc3RyLCBkYXRlRm9ybWF0Mi50cmltKCksIHRydWUpO1xuICBpZiAocGFyc2VkRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICBpZiAoaW5jbHVzaXZlKSB7XG4gICAgICBwYXJzZWREYXRlID0gcGFyc2VkRGF0ZS5hZGQoMSwgXCJkXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VkRGF0ZS50b0RhdGUoKTtcbiAgfVxuICBsZXQgZW5kVGltZSA9IGRheWpzKHByZXZUaW1lKTtcbiAgY29uc3QgW2R1cmF0aW9uVmFsdWUsIGR1cmF0aW9uVW5pdF0gPSBwYXJzZUR1cmF0aW9uKHN0cik7XG4gIGlmICghTnVtYmVyLmlzTmFOKGR1cmF0aW9uVmFsdWUpKSB7XG4gICAgY29uc3QgbmV3RW5kVGltZSA9IGVuZFRpbWUuYWRkKGR1cmF0aW9uVmFsdWUsIGR1cmF0aW9uVW5pdCk7XG4gICAgaWYgKG5ld0VuZFRpbWUuaXNWYWxpZCgpKSB7XG4gICAgICBlbmRUaW1lID0gbmV3RW5kVGltZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVuZFRpbWUudG9EYXRlKCk7XG59O1xubGV0IHRhc2tDbnQgPSAwO1xuY29uc3QgcGFyc2VJZCA9IGZ1bmN0aW9uKGlkU3RyKSB7XG4gIGlmIChpZFN0ciA9PT0gdm9pZCAwKSB7XG4gICAgdGFza0NudCA9IHRhc2tDbnQgKyAxO1xuICAgIHJldHVybiBcInRhc2tcIiArIHRhc2tDbnQ7XG4gIH1cbiAgcmV0dXJuIGlkU3RyO1xufTtcbmNvbnN0IGNvbXBpbGVEYXRhID0gZnVuY3Rpb24ocHJldlRhc2ssIGRhdGFTdHIpIHtcbiAgbGV0IGRzO1xuICBpZiAoZGF0YVN0ci5zdWJzdHIoMCwgMSkgPT09IFwiOlwiKSB7XG4gICAgZHMgPSBkYXRhU3RyLnN1YnN0cigxLCBkYXRhU3RyLmxlbmd0aCk7XG4gIH0gZWxzZSB7XG4gICAgZHMgPSBkYXRhU3RyO1xuICB9XG4gIGNvbnN0IGRhdGEgPSBkcy5zcGxpdChcIixcIik7XG4gIGNvbnN0IHRhc2sgPSB7fTtcbiAgZ2V0VGFza1RhZ3MoZGF0YSwgdGFzaywgdGFncyk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgIGRhdGFbaV0gPSBkYXRhW2ldLnRyaW0oKTtcbiAgfVxuICBsZXQgZW5kVGltZURhdGEgPSBcIlwiO1xuICBzd2l0Y2ggKGRhdGEubGVuZ3RoKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdGFzay5pZCA9IHBhcnNlSWQoKTtcbiAgICAgIHRhc2suc3RhcnRUaW1lID0gcHJldlRhc2suZW5kVGltZTtcbiAgICAgIGVuZFRpbWVEYXRhID0gZGF0YVswXTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHRhc2suaWQgPSBwYXJzZUlkKCk7XG4gICAgICB0YXNrLnN0YXJ0VGltZSA9IGdldFN0YXJ0RGF0ZSh2b2lkIDAsIGRhdGVGb3JtYXQsIGRhdGFbMF0pO1xuICAgICAgZW5kVGltZURhdGEgPSBkYXRhWzFdO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAzOlxuICAgICAgdGFzay5pZCA9IHBhcnNlSWQoZGF0YVswXSk7XG4gICAgICB0YXNrLnN0YXJ0VGltZSA9IGdldFN0YXJ0RGF0ZSh2b2lkIDAsIGRhdGVGb3JtYXQsIGRhdGFbMV0pO1xuICAgICAgZW5kVGltZURhdGEgPSBkYXRhWzJdO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgaWYgKGVuZFRpbWVEYXRhKSB7XG4gICAgdGFzay5lbmRUaW1lID0gZ2V0RW5kRGF0ZSh0YXNrLnN0YXJ0VGltZSwgZGF0ZUZvcm1hdCwgZW5kVGltZURhdGEsIGluY2x1c2l2ZUVuZERhdGVzKTtcbiAgICB0YXNrLm1hbnVhbEVuZFRpbWUgPSBkYXlqcyhlbmRUaW1lRGF0YSwgXCJZWVlZLU1NLUREXCIsIHRydWUpLmlzVmFsaWQoKTtcbiAgICBjaGVja1Rhc2tEYXRlcyh0YXNrLCBkYXRlRm9ybWF0LCBleGNsdWRlcywgaW5jbHVkZXMpO1xuICB9XG4gIHJldHVybiB0YXNrO1xufTtcbmNvbnN0IHBhcnNlRGF0YSA9IGZ1bmN0aW9uKHByZXZUYXNrSWQsIGRhdGFTdHIpIHtcbiAgbGV0IGRzO1xuICBpZiAoZGF0YVN0ci5zdWJzdHIoMCwgMSkgPT09IFwiOlwiKSB7XG4gICAgZHMgPSBkYXRhU3RyLnN1YnN0cigxLCBkYXRhU3RyLmxlbmd0aCk7XG4gIH0gZWxzZSB7XG4gICAgZHMgPSBkYXRhU3RyO1xuICB9XG4gIGNvbnN0IGRhdGEgPSBkcy5zcGxpdChcIixcIik7XG4gIGNvbnN0IHRhc2sgPSB7fTtcbiAgZ2V0VGFza1RhZ3MoZGF0YSwgdGFzaywgdGFncyk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgIGRhdGFbaV0gPSBkYXRhW2ldLnRyaW0oKTtcbiAgfVxuICBzd2l0Y2ggKGRhdGEubGVuZ3RoKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdGFzay5pZCA9IHBhcnNlSWQoKTtcbiAgICAgIHRhc2suc3RhcnRUaW1lID0ge1xuICAgICAgICB0eXBlOiBcInByZXZUYXNrRW5kXCIsXG4gICAgICAgIGlkOiBwcmV2VGFza0lkXG4gICAgICB9O1xuICAgICAgdGFzay5lbmRUaW1lID0ge1xuICAgICAgICBkYXRhOiBkYXRhWzBdXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdGFzay5pZCA9IHBhcnNlSWQoKTtcbiAgICAgIHRhc2suc3RhcnRUaW1lID0ge1xuICAgICAgICB0eXBlOiBcImdldFN0YXJ0RGF0ZVwiLFxuICAgICAgICBzdGFydERhdGE6IGRhdGFbMF1cbiAgICAgIH07XG4gICAgICB0YXNrLmVuZFRpbWUgPSB7XG4gICAgICAgIGRhdGE6IGRhdGFbMV1cbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIDM6XG4gICAgICB0YXNrLmlkID0gcGFyc2VJZChkYXRhWzBdKTtcbiAgICAgIHRhc2suc3RhcnRUaW1lID0ge1xuICAgICAgICB0eXBlOiBcImdldFN0YXJ0RGF0ZVwiLFxuICAgICAgICBzdGFydERhdGE6IGRhdGFbMV1cbiAgICAgIH07XG4gICAgICB0YXNrLmVuZFRpbWUgPSB7XG4gICAgICAgIGRhdGE6IGRhdGFbMl1cbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gdGFzaztcbn07XG5sZXQgbGFzdFRhc2s7XG5sZXQgbGFzdFRhc2tJRDtcbmxldCByYXdUYXNrcyA9IFtdO1xuY29uc3QgdGFza0RiID0ge307XG5jb25zdCBhZGRUYXNrID0gZnVuY3Rpb24oZGVzY3IsIGRhdGEpIHtcbiAgY29uc3QgcmF3VGFzayA9IHtcbiAgICBzZWN0aW9uOiBjdXJyZW50U2VjdGlvbixcbiAgICB0eXBlOiBjdXJyZW50U2VjdGlvbixcbiAgICBwcm9jZXNzZWQ6IGZhbHNlLFxuICAgIG1hbnVhbEVuZFRpbWU6IGZhbHNlLFxuICAgIHJlbmRlckVuZFRpbWU6IG51bGwsXG4gICAgcmF3OiB7IGRhdGEgfSxcbiAgICB0YXNrOiBkZXNjcixcbiAgICBjbGFzc2VzOiBbXVxuICB9O1xuICBjb25zdCB0YXNrSW5mbyA9IHBhcnNlRGF0YShsYXN0VGFza0lELCBkYXRhKTtcbiAgcmF3VGFzay5yYXcuc3RhcnRUaW1lID0gdGFza0luZm8uc3RhcnRUaW1lO1xuICByYXdUYXNrLnJhdy5lbmRUaW1lID0gdGFza0luZm8uZW5kVGltZTtcbiAgcmF3VGFzay5pZCA9IHRhc2tJbmZvLmlkO1xuICByYXdUYXNrLnByZXZUYXNrSWQgPSBsYXN0VGFza0lEO1xuICByYXdUYXNrLmFjdGl2ZSA9IHRhc2tJbmZvLmFjdGl2ZTtcbiAgcmF3VGFzay5kb25lID0gdGFza0luZm8uZG9uZTtcbiAgcmF3VGFzay5jcml0ID0gdGFza0luZm8uY3JpdDtcbiAgcmF3VGFzay5taWxlc3RvbmUgPSB0YXNrSW5mby5taWxlc3RvbmU7XG4gIHJhd1Rhc2sub3JkZXIgPSBsYXN0T3JkZXI7XG4gIGxhc3RPcmRlcisrO1xuICBjb25zdCBwb3MgPSByYXdUYXNrcy5wdXNoKHJhd1Rhc2spO1xuICBsYXN0VGFza0lEID0gcmF3VGFzay5pZDtcbiAgdGFza0RiW3Jhd1Rhc2suaWRdID0gcG9zIC0gMTtcbn07XG5jb25zdCBmaW5kVGFza0J5SWQgPSBmdW5jdGlvbihpZCkge1xuICBjb25zdCBwb3MgPSB0YXNrRGJbaWRdO1xuICByZXR1cm4gcmF3VGFza3NbcG9zXTtcbn07XG5jb25zdCBhZGRUYXNrT3JnID0gZnVuY3Rpb24oZGVzY3IsIGRhdGEpIHtcbiAgY29uc3QgbmV3VGFzayA9IHtcbiAgICBzZWN0aW9uOiBjdXJyZW50U2VjdGlvbixcbiAgICB0eXBlOiBjdXJyZW50U2VjdGlvbixcbiAgICBkZXNjcmlwdGlvbjogZGVzY3IsXG4gICAgdGFzazogZGVzY3IsXG4gICAgY2xhc3NlczogW11cbiAgfTtcbiAgY29uc3QgdGFza0luZm8gPSBjb21waWxlRGF0YShsYXN0VGFzaywgZGF0YSk7XG4gIG5ld1Rhc2suc3RhcnRUaW1lID0gdGFza0luZm8uc3RhcnRUaW1lO1xuICBuZXdUYXNrLmVuZFRpbWUgPSB0YXNrSW5mby5lbmRUaW1lO1xuICBuZXdUYXNrLmlkID0gdGFza0luZm8uaWQ7XG4gIG5ld1Rhc2suYWN0aXZlID0gdGFza0luZm8uYWN0aXZlO1xuICBuZXdUYXNrLmRvbmUgPSB0YXNrSW5mby5kb25lO1xuICBuZXdUYXNrLmNyaXQgPSB0YXNrSW5mby5jcml0O1xuICBuZXdUYXNrLm1pbGVzdG9uZSA9IHRhc2tJbmZvLm1pbGVzdG9uZTtcbiAgbGFzdFRhc2sgPSBuZXdUYXNrO1xuICB0YXNrcy5wdXNoKG5ld1Rhc2spO1xufTtcbmNvbnN0IGNvbXBpbGVUYXNrcyA9IGZ1bmN0aW9uKCkge1xuICBjb25zdCBjb21waWxlVGFzayA9IGZ1bmN0aW9uKHBvcykge1xuICAgIGNvbnN0IHRhc2sgPSByYXdUYXNrc1twb3NdO1xuICAgIGxldCBzdGFydFRpbWUgPSBcIlwiO1xuICAgIHN3aXRjaCAocmF3VGFza3NbcG9zXS5yYXcuc3RhcnRUaW1lLnR5cGUpIHtcbiAgICAgIGNhc2UgXCJwcmV2VGFza0VuZFwiOiB7XG4gICAgICAgIGNvbnN0IHByZXZUYXNrID0gZmluZFRhc2tCeUlkKHRhc2sucHJldlRhc2tJZCk7XG4gICAgICAgIHRhc2suc3RhcnRUaW1lID0gcHJldlRhc2suZW5kVGltZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFwiZ2V0U3RhcnREYXRlXCI6XG4gICAgICAgIHN0YXJ0VGltZSA9IGdldFN0YXJ0RGF0ZSh2b2lkIDAsIGRhdGVGb3JtYXQsIHJhd1Rhc2tzW3Bvc10ucmF3LnN0YXJ0VGltZS5zdGFydERhdGEpO1xuICAgICAgICBpZiAoc3RhcnRUaW1lKSB7XG4gICAgICAgICAgcmF3VGFza3NbcG9zXS5zdGFydFRpbWUgPSBzdGFydFRpbWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChyYXdUYXNrc1twb3NdLnN0YXJ0VGltZSkge1xuICAgICAgcmF3VGFza3NbcG9zXS5lbmRUaW1lID0gZ2V0RW5kRGF0ZShcbiAgICAgICAgcmF3VGFza3NbcG9zXS5zdGFydFRpbWUsXG4gICAgICAgIGRhdGVGb3JtYXQsXG4gICAgICAgIHJhd1Rhc2tzW3Bvc10ucmF3LmVuZFRpbWUuZGF0YSxcbiAgICAgICAgaW5jbHVzaXZlRW5kRGF0ZXNcbiAgICAgICk7XG4gICAgICBpZiAocmF3VGFza3NbcG9zXS5lbmRUaW1lKSB7XG4gICAgICAgIHJhd1Rhc2tzW3Bvc10ucHJvY2Vzc2VkID0gdHJ1ZTtcbiAgICAgICAgcmF3VGFza3NbcG9zXS5tYW51YWxFbmRUaW1lID0gZGF5anMoXG4gICAgICAgICAgcmF3VGFza3NbcG9zXS5yYXcuZW5kVGltZS5kYXRhLFxuICAgICAgICAgIFwiWVlZWS1NTS1ERFwiLFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKS5pc1ZhbGlkKCk7XG4gICAgICAgIGNoZWNrVGFza0RhdGVzKHJhd1Rhc2tzW3Bvc10sIGRhdGVGb3JtYXQsIGV4Y2x1ZGVzLCBpbmNsdWRlcyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByYXdUYXNrc1twb3NdLnByb2Nlc3NlZDtcbiAgfTtcbiAgbGV0IGFsbFByb2Nlc3NlZCA9IHRydWU7XG4gIGZvciAoY29uc3QgW2ksIHJhd1Rhc2tdIG9mIHJhd1Rhc2tzLmVudHJpZXMoKSkge1xuICAgIGNvbXBpbGVUYXNrKGkpO1xuICAgIGFsbFByb2Nlc3NlZCA9IGFsbFByb2Nlc3NlZCAmJiByYXdUYXNrLnByb2Nlc3NlZDtcbiAgfVxuICByZXR1cm4gYWxsUHJvY2Vzc2VkO1xufTtcbmNvbnN0IHNldExpbmsgPSBmdW5jdGlvbihpZHMsIF9saW5rU3RyKSB7XG4gIGxldCBsaW5rU3RyID0gX2xpbmtTdHI7XG4gIGlmIChnZXRDb25maWcoKS5zZWN1cml0eUxldmVsICE9PSBcImxvb3NlXCIpIHtcbiAgICBsaW5rU3RyID0gc2FuaXRpemVVcmwoX2xpbmtTdHIpO1xuICB9XG4gIGlkcy5zcGxpdChcIixcIikuZm9yRWFjaChmdW5jdGlvbihpZCkge1xuICAgIGxldCByYXdUYXNrID0gZmluZFRhc2tCeUlkKGlkKTtcbiAgICBpZiAocmF3VGFzayAhPT0gdm9pZCAwKSB7XG4gICAgICBwdXNoRnVuKGlkLCAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5vcGVuKGxpbmtTdHIsIFwiX3NlbGZcIik7XG4gICAgICB9KTtcbiAgICAgIGxpbmtzW2lkXSA9IGxpbmtTdHI7XG4gICAgfVxuICB9KTtcbiAgc2V0Q2xhc3MoaWRzLCBcImNsaWNrYWJsZVwiKTtcbn07XG5jb25zdCBzZXRDbGFzcyA9IGZ1bmN0aW9uKGlkcywgY2xhc3NOYW1lKSB7XG4gIGlkcy5zcGxpdChcIixcIikuZm9yRWFjaChmdW5jdGlvbihpZCkge1xuICAgIGxldCByYXdUYXNrID0gZmluZFRhc2tCeUlkKGlkKTtcbiAgICBpZiAocmF3VGFzayAhPT0gdm9pZCAwKSB7XG4gICAgICByYXdUYXNrLmNsYXNzZXMucHVzaChjbGFzc05hbWUpO1xuICAgIH1cbiAgfSk7XG59O1xuY29uc3Qgc2V0Q2xpY2tGdW4gPSBmdW5jdGlvbihpZCwgZnVuY3Rpb25OYW1lLCBmdW5jdGlvbkFyZ3MpIHtcbiAgaWYgKGdldENvbmZpZygpLnNlY3VyaXR5TGV2ZWwgIT09IFwibG9vc2VcIikge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoZnVuY3Rpb25OYW1lID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbGV0IGFyZ0xpc3QgPSBbXTtcbiAgaWYgKHR5cGVvZiBmdW5jdGlvbkFyZ3MgPT09IFwic3RyaW5nXCIpIHtcbiAgICBhcmdMaXN0ID0gZnVuY3Rpb25BcmdzLnNwbGl0KC8sKD89KD86KD86W15cIl0qXCIpezJ9KSpbXlwiXSokKS8pO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJnTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGl0ZW0gPSBhcmdMaXN0W2ldLnRyaW0oKTtcbiAgICAgIGlmIChpdGVtLmNoYXJBdCgwKSA9PT0gJ1wiJyAmJiBpdGVtLmNoYXJBdChpdGVtLmxlbmd0aCAtIDEpID09PSAnXCInKSB7XG4gICAgICAgIGl0ZW0gPSBpdGVtLnN1YnN0cigxLCBpdGVtLmxlbmd0aCAtIDIpO1xuICAgICAgfVxuICAgICAgYXJnTGlzdFtpXSA9IGl0ZW07XG4gICAgfVxuICB9XG4gIGlmIChhcmdMaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgIGFyZ0xpc3QucHVzaChpZCk7XG4gIH1cbiAgbGV0IHJhd1Rhc2sgPSBmaW5kVGFza0J5SWQoaWQpO1xuICBpZiAocmF3VGFzayAhPT0gdm9pZCAwKSB7XG4gICAgcHVzaEZ1bihpZCwgKCkgPT4ge1xuICAgICAgdXRpbHMucnVuRnVuYyhmdW5jdGlvbk5hbWUsIC4uLmFyZ0xpc3QpO1xuICAgIH0pO1xuICB9XG59O1xuY29uc3QgcHVzaEZ1biA9IGZ1bmN0aW9uKGlkLCBjYWxsYmFja0Z1bmN0aW9uKSB7XG4gIGZ1bnMucHVzaChcbiAgICBmdW5jdGlvbigpIHtcbiAgICAgIGNvbnN0IGVsZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbaWQ9XCIke2lkfVwiXWApO1xuICAgICAgaWYgKGVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgZWxlbS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGZ1bmN0aW9uKCkge1xuICAgICAgY29uc3QgZWxlbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtpZD1cIiR7aWR9LXRleHRcIl1gKTtcbiAgICAgIGlmIChlbGVtICE9PSBudWxsKSB7XG4gICAgICAgIGVsZW0uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufTtcbmNvbnN0IHNldENsaWNrRXZlbnQgPSBmdW5jdGlvbihpZHMsIGZ1bmN0aW9uTmFtZSwgZnVuY3Rpb25BcmdzKSB7XG4gIGlkcy5zcGxpdChcIixcIikuZm9yRWFjaChmdW5jdGlvbihpZCkge1xuICAgIHNldENsaWNrRnVuKGlkLCBmdW5jdGlvbk5hbWUsIGZ1bmN0aW9uQXJncyk7XG4gIH0pO1xuICBzZXRDbGFzcyhpZHMsIFwiY2xpY2thYmxlXCIpO1xufTtcbmNvbnN0IGJpbmRGdW5jdGlvbnMgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gIGZ1bnMuZm9yRWFjaChmdW5jdGlvbihmdW4pIHtcbiAgICBmdW4oZWxlbWVudCk7XG4gIH0pO1xufTtcbmNvbnN0IGdhbnR0RGIgPSB7XG4gIGdldENvbmZpZzogKCkgPT4gZ2V0Q29uZmlnKCkuZ2FudHQsXG4gIGNsZWFyLFxuICBzZXREYXRlRm9ybWF0LFxuICBnZXREYXRlRm9ybWF0LFxuICBlbmFibGVJbmNsdXNpdmVFbmREYXRlcyxcbiAgZW5kRGF0ZXNBcmVJbmNsdXNpdmUsXG4gIGVuYWJsZVRvcEF4aXMsXG4gIHRvcEF4aXNFbmFibGVkLFxuICBzZXRBeGlzRm9ybWF0LFxuICBnZXRBeGlzRm9ybWF0LFxuICBzZXRUaWNrSW50ZXJ2YWwsXG4gIGdldFRpY2tJbnRlcnZhbCxcbiAgc2V0VG9kYXlNYXJrZXIsXG4gIGdldFRvZGF5TWFya2VyLFxuICBzZXRBY2NUaXRsZSxcbiAgZ2V0QWNjVGl0bGUsXG4gIHNldERpYWdyYW1UaXRsZSxcbiAgZ2V0RGlhZ3JhbVRpdGxlLFxuICBzZXREaXNwbGF5TW9kZSxcbiAgZ2V0RGlzcGxheU1vZGUsXG4gIHNldEFjY0Rlc2NyaXB0aW9uLFxuICBnZXRBY2NEZXNjcmlwdGlvbixcbiAgYWRkU2VjdGlvbixcbiAgZ2V0U2VjdGlvbnMsXG4gIGdldFRhc2tzLFxuICBhZGRUYXNrLFxuICBmaW5kVGFza0J5SWQsXG4gIGFkZFRhc2tPcmcsXG4gIHNldEluY2x1ZGVzLFxuICBnZXRJbmNsdWRlcyxcbiAgc2V0RXhjbHVkZXMsXG4gIGdldEV4Y2x1ZGVzLFxuICBzZXRDbGlja0V2ZW50LFxuICBzZXRMaW5rLFxuICBnZXRMaW5rcyxcbiAgYmluZEZ1bmN0aW9ucyxcbiAgcGFyc2VEdXJhdGlvbixcbiAgaXNJbnZhbGlkRGF0ZSxcbiAgc2V0V2Vla2RheSxcbiAgZ2V0V2Vla2RheVxufTtcbmZ1bmN0aW9uIGdldFRhc2tUYWdzKGRhdGEsIHRhc2ssIHRhZ3MyKSB7XG4gIGxldCBtYXRjaEZvdW5kID0gdHJ1ZTtcbiAgd2hpbGUgKG1hdGNoRm91bmQpIHtcbiAgICBtYXRjaEZvdW5kID0gZmFsc2U7XG4gICAgdGFnczIuZm9yRWFjaChmdW5jdGlvbih0KSB7XG4gICAgICBjb25zdCBwYXR0ZXJuID0gXCJeXFxcXHMqXCIgKyB0ICsgXCJcXFxccyokXCI7XG4gICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAocGF0dGVybik7XG4gICAgICBpZiAoZGF0YVswXS5tYXRjaChyZWdleCkpIHtcbiAgICAgICAgdGFza1t0XSA9IHRydWU7XG4gICAgICAgIGRhdGEuc2hpZnQoMSk7XG4gICAgICAgIG1hdGNoRm91bmQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5jb25zdCBzZXRDb25mID0gZnVuY3Rpb24oKSB7XG4gIGxvZy5kZWJ1ZyhcIlNvbWV0aGluZyBpcyBjYWxsaW5nLCBzZXRDb25mLCByZW1vdmUgdGhlIGNhbGxcIik7XG59O1xuY29uc3QgbWFwV2Vla2RheVRvVGltZUZ1bmN0aW9uID0ge1xuICBtb25kYXk6IHRpbWVNb25kYXksXG4gIHR1ZXNkYXk6IHRpbWVUdWVzZGF5LFxuICB3ZWRuZXNkYXk6IHRpbWVXZWRuZXNkYXksXG4gIHRodXJzZGF5OiB0aW1lVGh1cnNkYXksXG4gIGZyaWRheTogdGltZUZyaWRheSxcbiAgc2F0dXJkYXk6IHRpbWVTYXR1cmRheSxcbiAgc3VuZGF5OiB0aW1lU3VuZGF5XG59O1xuY29uc3QgZ2V0TWF4SW50ZXJzZWN0aW9ucyA9ICh0YXNrczIsIG9yZGVyT2Zmc2V0KSA9PiB7XG4gIGxldCB0aW1lbGluZSA9IFsuLi50YXNrczJdLm1hcCgoKSA9PiAtSW5maW5pdHkpO1xuICBsZXQgc29ydGVkID0gWy4uLnRhc2tzMl0uc29ydCgoYSwgYikgPT4gYS5zdGFydFRpbWUgLSBiLnN0YXJ0VGltZSB8fCBhLm9yZGVyIC0gYi5vcmRlcik7XG4gIGxldCBtYXhJbnRlcnNlY3Rpb25zID0gMDtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIHNvcnRlZCkge1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGltZWxpbmUubGVuZ3RoOyBqKyspIHtcbiAgICAgIGlmIChlbGVtZW50LnN0YXJ0VGltZSA+PSB0aW1lbGluZVtqXSkge1xuICAgICAgICB0aW1lbGluZVtqXSA9IGVsZW1lbnQuZW5kVGltZTtcbiAgICAgICAgZWxlbWVudC5vcmRlciA9IGogKyBvcmRlck9mZnNldDtcbiAgICAgICAgaWYgKGogPiBtYXhJbnRlcnNlY3Rpb25zKSB7XG4gICAgICAgICAgbWF4SW50ZXJzZWN0aW9ucyA9IGo7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXhJbnRlcnNlY3Rpb25zO1xufTtcbmxldCB3O1xuY29uc3QgZHJhdyA9IGZ1bmN0aW9uKHRleHQsIGlkLCB2ZXJzaW9uLCBkaWFnT2JqKSB7XG4gIGNvbnN0IGNvbmYgPSBnZXRDb25maWcoKS5nYW50dDtcbiAgY29uc3Qgc2VjdXJpdHlMZXZlbCA9IGdldENvbmZpZygpLnNlY3VyaXR5TGV2ZWw7XG4gIGxldCBzYW5kYm94RWxlbWVudDtcbiAgaWYgKHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiKSB7XG4gICAgc2FuZGJveEVsZW1lbnQgPSBzZWxlY3QoXCIjaVwiICsgaWQpO1xuICB9XG4gIGNvbnN0IHJvb3QgPSBzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIiA/IHNlbGVjdChzYW5kYm94RWxlbWVudC5ub2RlcygpWzBdLmNvbnRlbnREb2N1bWVudC5ib2R5KSA6IHNlbGVjdChcImJvZHlcIik7XG4gIGNvbnN0IGRvYyA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gc2FuZGJveEVsZW1lbnQubm9kZXMoKVswXS5jb250ZW50RG9jdW1lbnQgOiBkb2N1bWVudDtcbiAgY29uc3QgZWxlbSA9IGRvYy5nZXRFbGVtZW50QnlJZChpZCk7XG4gIHcgPSBlbGVtLnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIGlmICh3ID09PSB2b2lkIDApIHtcbiAgICB3ID0gMTIwMDtcbiAgfVxuICBpZiAoY29uZi51c2VXaWR0aCAhPT0gdm9pZCAwKSB7XG4gICAgdyA9IGNvbmYudXNlV2lkdGg7XG4gIH1cbiAgY29uc3QgdGFza0FycmF5ID0gZGlhZ09iai5kYi5nZXRUYXNrcygpO1xuICBsZXQgY2F0ZWdvcmllcyA9IFtdO1xuICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGFza0FycmF5KSB7XG4gICAgY2F0ZWdvcmllcy5wdXNoKGVsZW1lbnQudHlwZSk7XG4gIH1cbiAgY2F0ZWdvcmllcyA9IGNoZWNrVW5pcXVlKGNhdGVnb3JpZXMpO1xuICBjb25zdCBjYXRlZ29yeUhlaWdodHMgPSB7fTtcbiAgbGV0IGggPSAyICogY29uZi50b3BQYWRkaW5nO1xuICBpZiAoZGlhZ09iai5kYi5nZXREaXNwbGF5TW9kZSgpID09PSBcImNvbXBhY3RcIiB8fCBjb25mLmRpc3BsYXlNb2RlID09PSBcImNvbXBhY3RcIikge1xuICAgIGNvbnN0IGNhdGVnb3J5RWxlbWVudHMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGFza0FycmF5KSB7XG4gICAgICBpZiAoY2F0ZWdvcnlFbGVtZW50c1tlbGVtZW50LnNlY3Rpb25dID09PSB2b2lkIDApIHtcbiAgICAgICAgY2F0ZWdvcnlFbGVtZW50c1tlbGVtZW50LnNlY3Rpb25dID0gW2VsZW1lbnRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2F0ZWdvcnlFbGVtZW50c1tlbGVtZW50LnNlY3Rpb25dLnB1c2goZWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gMDtcbiAgICBmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIE9iamVjdC5rZXlzKGNhdGVnb3J5RWxlbWVudHMpKSB7XG4gICAgICBjb25zdCBjYXRlZ29yeUhlaWdodCA9IGdldE1heEludGVyc2VjdGlvbnMoY2F0ZWdvcnlFbGVtZW50c1tjYXRlZ29yeV0sIGludGVyc2VjdGlvbnMpICsgMTtcbiAgICAgIGludGVyc2VjdGlvbnMgKz0gY2F0ZWdvcnlIZWlnaHQ7XG4gICAgICBoICs9IGNhdGVnb3J5SGVpZ2h0ICogKGNvbmYuYmFySGVpZ2h0ICsgY29uZi5iYXJHYXApO1xuICAgICAgY2F0ZWdvcnlIZWlnaHRzW2NhdGVnb3J5XSA9IGNhdGVnb3J5SGVpZ2h0O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBoICs9IHRhc2tBcnJheS5sZW5ndGggKiAoY29uZi5iYXJIZWlnaHQgKyBjb25mLmJhckdhcCk7XG4gICAgZm9yIChjb25zdCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzKSB7XG4gICAgICBjYXRlZ29yeUhlaWdodHNbY2F0ZWdvcnldID0gdGFza0FycmF5LmZpbHRlcigodGFzaykgPT4gdGFzay50eXBlID09PSBjYXRlZ29yeSkubGVuZ3RoO1xuICAgIH1cbiAgfVxuICBlbGVtLnNldEF0dHJpYnV0ZShcInZpZXdCb3hcIiwgXCIwIDAgXCIgKyB3ICsgXCIgXCIgKyBoKTtcbiAgY29uc3Qgc3ZnID0gcm9vdC5zZWxlY3QoYFtpZD1cIiR7aWR9XCJdYCk7XG4gIGNvbnN0IHRpbWVTY2FsZSA9IHNjYWxlVGltZSgpLmRvbWFpbihbXG4gICAgbWluKHRhc2tBcnJheSwgZnVuY3Rpb24oZCkge1xuICAgICAgcmV0dXJuIGQuc3RhcnRUaW1lO1xuICAgIH0pLFxuICAgIG1heCh0YXNrQXJyYXksIGZ1bmN0aW9uKGQpIHtcbiAgICAgIHJldHVybiBkLmVuZFRpbWU7XG4gICAgfSlcbiAgXSkucmFuZ2VSb3VuZChbMCwgdyAtIGNvbmYubGVmdFBhZGRpbmcgLSBjb25mLnJpZ2h0UGFkZGluZ10pO1xuICBmdW5jdGlvbiB0YXNrQ29tcGFyZShhLCBiKSB7XG4gICAgY29uc3QgdGFza0EgPSBhLnN0YXJ0VGltZTtcbiAgICBjb25zdCB0YXNrQiA9IGIuc3RhcnRUaW1lO1xuICAgIGxldCByZXN1bHQgPSAwO1xuICAgIGlmICh0YXNrQSA+IHRhc2tCKSB7XG4gICAgICByZXN1bHQgPSAxO1xuICAgIH0gZWxzZSBpZiAodGFza0EgPCB0YXNrQikge1xuICAgICAgcmVzdWx0ID0gLTE7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgdGFza0FycmF5LnNvcnQodGFza0NvbXBhcmUpO1xuICBtYWtlR2FudHQodGFza0FycmF5LCB3LCBoKTtcbiAgY29uZmlndXJlU3ZnU2l6ZShzdmcsIGgsIHcsIGNvbmYudXNlTWF4V2lkdGgpO1xuICBzdmcuYXBwZW5kKFwidGV4dFwiKS50ZXh0KGRpYWdPYmouZGIuZ2V0RGlhZ3JhbVRpdGxlKCkpLmF0dHIoXCJ4XCIsIHcgLyAyKS5hdHRyKFwieVwiLCBjb25mLnRpdGxlVG9wTWFyZ2luKS5hdHRyKFwiY2xhc3NcIiwgXCJ0aXRsZVRleHRcIik7XG4gIGZ1bmN0aW9uIG1ha2VHYW50dCh0YXNrczIsIHBhZ2VXaWR0aCwgcGFnZUhlaWdodCkge1xuICAgIGNvbnN0IGJhckhlaWdodCA9IGNvbmYuYmFySGVpZ2h0O1xuICAgIGNvbnN0IGdhcCA9IGJhckhlaWdodCArIGNvbmYuYmFyR2FwO1xuICAgIGNvbnN0IHRvcFBhZGRpbmcgPSBjb25mLnRvcFBhZGRpbmc7XG4gICAgY29uc3QgbGVmdFBhZGRpbmcgPSBjb25mLmxlZnRQYWRkaW5nO1xuICAgIGNvbnN0IGNvbG9yU2NhbGUgPSBzY2FsZUxpbmVhcigpLmRvbWFpbihbMCwgY2F0ZWdvcmllcy5sZW5ndGhdKS5yYW5nZShbXCIjMDBCOUZBXCIsIFwiI0Y5NTAwMlwiXSkuaW50ZXJwb2xhdGUoaW50ZXJwb2xhdGVIY2wpO1xuICAgIGRyYXdFeGNsdWRlRGF5cyhcbiAgICAgIGdhcCxcbiAgICAgIHRvcFBhZGRpbmcsXG4gICAgICBsZWZ0UGFkZGluZyxcbiAgICAgIHBhZ2VXaWR0aCxcbiAgICAgIHBhZ2VIZWlnaHQsXG4gICAgICB0YXNrczIsXG4gICAgICBkaWFnT2JqLmRiLmdldEV4Y2x1ZGVzKCksXG4gICAgICBkaWFnT2JqLmRiLmdldEluY2x1ZGVzKClcbiAgICApO1xuICAgIG1ha2VHcmlkKGxlZnRQYWRkaW5nLCB0b3BQYWRkaW5nLCBwYWdlV2lkdGgsIHBhZ2VIZWlnaHQpO1xuICAgIGRyYXdSZWN0cyh0YXNrczIsIGdhcCwgdG9wUGFkZGluZywgbGVmdFBhZGRpbmcsIGJhckhlaWdodCwgY29sb3JTY2FsZSwgcGFnZVdpZHRoKTtcbiAgICB2ZXJ0TGFiZWxzKGdhcCwgdG9wUGFkZGluZyk7XG4gICAgZHJhd1RvZGF5KGxlZnRQYWRkaW5nLCB0b3BQYWRkaW5nLCBwYWdlV2lkdGgsIHBhZ2VIZWlnaHQpO1xuICB9XG4gIGZ1bmN0aW9uIGRyYXdSZWN0cyh0aGVBcnJheSwgdGhlR2FwLCB0aGVUb3BQYWQsIHRoZVNpZGVQYWQsIHRoZUJhckhlaWdodCwgdGhlQ29sb3JTY2FsZSwgdzIpIHtcbiAgICBjb25zdCB1bmlxdWVUYXNrT3JkZXJJZHMgPSBbLi4ubmV3IFNldCh0aGVBcnJheS5tYXAoKGl0ZW0pID0+IGl0ZW0ub3JkZXIpKV07XG4gICAgY29uc3QgdW5pcXVlVGFza3MgPSB1bmlxdWVUYXNrT3JkZXJJZHMubWFwKChpZDIpID0+IHRoZUFycmF5LmZpbmQoKGl0ZW0pID0+IGl0ZW0ub3JkZXIgPT09IGlkMikpO1xuICAgIHN2Zy5hcHBlbmQoXCJnXCIpLnNlbGVjdEFsbChcInJlY3RcIikuZGF0YSh1bmlxdWVUYXNrcykuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJ4XCIsIDApLmF0dHIoXCJ5XCIsIGZ1bmN0aW9uKGQsIGkpIHtcbiAgICAgIGkgPSBkLm9yZGVyO1xuICAgICAgcmV0dXJuIGkgKiB0aGVHYXAgKyB0aGVUb3BQYWQgLSAyO1xuICAgIH0pLmF0dHIoXCJ3aWR0aFwiLCBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB3MiAtIGNvbmYucmlnaHRQYWRkaW5nIC8gMjtcbiAgICB9KS5hdHRyKFwiaGVpZ2h0XCIsIHRoZUdhcCkuYXR0cihcImNsYXNzXCIsIGZ1bmN0aW9uKGQpIHtcbiAgICAgIGZvciAoY29uc3QgW2ksIGNhdGVnb3J5XSBvZiBjYXRlZ29yaWVzLmVudHJpZXMoKSkge1xuICAgICAgICBpZiAoZC50eXBlID09PSBjYXRlZ29yeSkge1xuICAgICAgICAgIHJldHVybiBcInNlY3Rpb24gc2VjdGlvblwiICsgaSAlIGNvbmYubnVtYmVyU2VjdGlvblN0eWxlcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIFwic2VjdGlvbiBzZWN0aW9uMFwiO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlY3RhbmdsZXMgPSBzdmcuYXBwZW5kKFwiZ1wiKS5zZWxlY3RBbGwoXCJyZWN0XCIpLmRhdGEodGhlQXJyYXkpLmVudGVyKCk7XG4gICAgY29uc3QgbGlua3MyID0gZGlhZ09iai5kYi5nZXRMaW5rcygpO1xuICAgIHJlY3RhbmdsZXMuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiaWRcIiwgZnVuY3Rpb24oZCkge1xuICAgICAgcmV0dXJuIGQuaWQ7XG4gICAgfSkuYXR0cihcInJ4XCIsIDMpLmF0dHIoXCJyeVwiLCAzKS5hdHRyKFwieFwiLCBmdW5jdGlvbihkKSB7XG4gICAgICBpZiAoZC5taWxlc3RvbmUpIHtcbiAgICAgICAgcmV0dXJuIHRpbWVTY2FsZShkLnN0YXJ0VGltZSkgKyB0aGVTaWRlUGFkICsgMC41ICogKHRpbWVTY2FsZShkLmVuZFRpbWUpIC0gdGltZVNjYWxlKGQuc3RhcnRUaW1lKSkgLSAwLjUgKiB0aGVCYXJIZWlnaHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGltZVNjYWxlKGQuc3RhcnRUaW1lKSArIHRoZVNpZGVQYWQ7XG4gICAgfSkuYXR0cihcInlcIiwgZnVuY3Rpb24oZCwgaSkge1xuICAgICAgaSA9IGQub3JkZXI7XG4gICAgICByZXR1cm4gaSAqIHRoZUdhcCArIHRoZVRvcFBhZDtcbiAgICB9KS5hdHRyKFwid2lkdGhcIiwgZnVuY3Rpb24oZCkge1xuICAgICAgaWYgKGQubWlsZXN0b25lKSB7XG4gICAgICAgIHJldHVybiB0aGVCYXJIZWlnaHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGltZVNjYWxlKGQucmVuZGVyRW5kVGltZSB8fCBkLmVuZFRpbWUpIC0gdGltZVNjYWxlKGQuc3RhcnRUaW1lKTtcbiAgICB9KS5hdHRyKFwiaGVpZ2h0XCIsIHRoZUJhckhlaWdodCkuYXR0cihcInRyYW5zZm9ybS1vcmlnaW5cIiwgZnVuY3Rpb24oZCwgaSkge1xuICAgICAgaSA9IGQub3JkZXI7XG4gICAgICByZXR1cm4gKHRpbWVTY2FsZShkLnN0YXJ0VGltZSkgKyB0aGVTaWRlUGFkICsgMC41ICogKHRpbWVTY2FsZShkLmVuZFRpbWUpIC0gdGltZVNjYWxlKGQuc3RhcnRUaW1lKSkpLnRvU3RyaW5nKCkgKyBcInB4IFwiICsgKGkgKiB0aGVHYXAgKyB0aGVUb3BQYWQgKyAwLjUgKiB0aGVCYXJIZWlnaHQpLnRvU3RyaW5nKCkgKyBcInB4XCI7XG4gICAgfSkuYXR0cihcImNsYXNzXCIsIGZ1bmN0aW9uKGQpIHtcbiAgICAgIGNvbnN0IHJlcyA9IFwidGFza1wiO1xuICAgICAgbGV0IGNsYXNzU3RyID0gXCJcIjtcbiAgICAgIGlmIChkLmNsYXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjbGFzc1N0ciA9IGQuY2xhc3Nlcy5qb2luKFwiIFwiKTtcbiAgICAgIH1cbiAgICAgIGxldCBzZWNOdW0gPSAwO1xuICAgICAgZm9yIChjb25zdCBbaSwgY2F0ZWdvcnldIG9mIGNhdGVnb3JpZXMuZW50cmllcygpKSB7XG4gICAgICAgIGlmIChkLnR5cGUgPT09IGNhdGVnb3J5KSB7XG4gICAgICAgICAgc2VjTnVtID0gaSAlIGNvbmYubnVtYmVyU2VjdGlvblN0eWxlcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IHRhc2tDbGFzcyA9IFwiXCI7XG4gICAgICBpZiAoZC5hY3RpdmUpIHtcbiAgICAgICAgaWYgKGQuY3JpdCkge1xuICAgICAgICAgIHRhc2tDbGFzcyArPSBcIiBhY3RpdmVDcml0XCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFza0NsYXNzID0gXCIgYWN0aXZlXCI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZC5kb25lKSB7XG4gICAgICAgIGlmIChkLmNyaXQpIHtcbiAgICAgICAgICB0YXNrQ2xhc3MgPSBcIiBkb25lQ3JpdFwiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhc2tDbGFzcyA9IFwiIGRvbmVcIjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGQuY3JpdCkge1xuICAgICAgICAgIHRhc2tDbGFzcyArPSBcIiBjcml0XCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0YXNrQ2xhc3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRhc2tDbGFzcyA9IFwiIHRhc2tcIjtcbiAgICAgIH1cbiAgICAgIGlmIChkLm1pbGVzdG9uZSkge1xuICAgICAgICB0YXNrQ2xhc3MgPSBcIiBtaWxlc3RvbmUgXCIgKyB0YXNrQ2xhc3M7XG4gICAgICB9XG4gICAgICB0YXNrQ2xhc3MgKz0gc2VjTnVtO1xuICAgICAgdGFza0NsYXNzICs9IFwiIFwiICsgY2xhc3NTdHI7XG4gICAgICByZXR1cm4gcmVzICsgdGFza0NsYXNzO1xuICAgIH0pO1xuICAgIHJlY3RhbmdsZXMuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwiaWRcIiwgZnVuY3Rpb24oZCkge1xuICAgICAgcmV0dXJuIGQuaWQgKyBcIi10ZXh0XCI7XG4gICAgfSkudGV4dChmdW5jdGlvbihkKSB7XG4gICAgICByZXR1cm4gZC50YXNrO1xuICAgIH0pLmF0dHIoXCJmb250LXNpemVcIiwgY29uZi5mb250U2l6ZSkuYXR0cihcInhcIiwgZnVuY3Rpb24oZCkge1xuICAgICAgbGV0IHN0YXJ0WCA9IHRpbWVTY2FsZShkLnN0YXJ0VGltZSk7XG4gICAgICBsZXQgZW5kWCA9IHRpbWVTY2FsZShkLnJlbmRlckVuZFRpbWUgfHwgZC5lbmRUaW1lKTtcbiAgICAgIGlmIChkLm1pbGVzdG9uZSkge1xuICAgICAgICBzdGFydFggKz0gMC41ICogKHRpbWVTY2FsZShkLmVuZFRpbWUpIC0gdGltZVNjYWxlKGQuc3RhcnRUaW1lKSkgLSAwLjUgKiB0aGVCYXJIZWlnaHQ7XG4gICAgICB9XG4gICAgICBpZiAoZC5taWxlc3RvbmUpIHtcbiAgICAgICAgZW5kWCA9IHN0YXJ0WCArIHRoZUJhckhlaWdodDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRleHRXaWR0aCA9IHRoaXMuZ2V0QkJveCgpLndpZHRoO1xuICAgICAgaWYgKHRleHRXaWR0aCA+IGVuZFggLSBzdGFydFgpIHtcbiAgICAgICAgaWYgKGVuZFggKyB0ZXh0V2lkdGggKyAxLjUgKiBjb25mLmxlZnRQYWRkaW5nID4gdzIpIHtcbiAgICAgICAgICByZXR1cm4gc3RhcnRYICsgdGhlU2lkZVBhZCAtIDU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGVuZFggKyB0aGVTaWRlUGFkICsgNTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChlbmRYIC0gc3RhcnRYKSAvIDIgKyBzdGFydFggKyB0aGVTaWRlUGFkO1xuICAgICAgfVxuICAgIH0pLmF0dHIoXCJ5XCIsIGZ1bmN0aW9uKGQsIGkpIHtcbiAgICAgIGkgPSBkLm9yZGVyO1xuICAgICAgcmV0dXJuIGkgKiB0aGVHYXAgKyBjb25mLmJhckhlaWdodCAvIDIgKyAoY29uZi5mb250U2l6ZSAvIDIgLSAyKSArIHRoZVRvcFBhZDtcbiAgICB9KS5hdHRyKFwidGV4dC1oZWlnaHRcIiwgdGhlQmFySGVpZ2h0KS5hdHRyKFwiY2xhc3NcIiwgZnVuY3Rpb24oZCkge1xuICAgICAgY29uc3Qgc3RhcnRYID0gdGltZVNjYWxlKGQuc3RhcnRUaW1lKTtcbiAgICAgIGxldCBlbmRYID0gdGltZVNjYWxlKGQuZW5kVGltZSk7XG4gICAgICBpZiAoZC5taWxlc3RvbmUpIHtcbiAgICAgICAgZW5kWCA9IHN0YXJ0WCArIHRoZUJhckhlaWdodDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRleHRXaWR0aCA9IHRoaXMuZ2V0QkJveCgpLndpZHRoO1xuICAgICAgbGV0IGNsYXNzU3RyID0gXCJcIjtcbiAgICAgIGlmIChkLmNsYXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjbGFzc1N0ciA9IGQuY2xhc3Nlcy5qb2luKFwiIFwiKTtcbiAgICAgIH1cbiAgICAgIGxldCBzZWNOdW0gPSAwO1xuICAgICAgZm9yIChjb25zdCBbaSwgY2F0ZWdvcnldIG9mIGNhdGVnb3JpZXMuZW50cmllcygpKSB7XG4gICAgICAgIGlmIChkLnR5cGUgPT09IGNhdGVnb3J5KSB7XG4gICAgICAgICAgc2VjTnVtID0gaSAlIGNvbmYubnVtYmVyU2VjdGlvblN0eWxlcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IHRhc2tUeXBlID0gXCJcIjtcbiAgICAgIGlmIChkLmFjdGl2ZSkge1xuICAgICAgICBpZiAoZC5jcml0KSB7XG4gICAgICAgICAgdGFza1R5cGUgPSBcImFjdGl2ZUNyaXRUZXh0XCIgKyBzZWNOdW07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFza1R5cGUgPSBcImFjdGl2ZVRleHRcIiArIHNlY051bTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGQuZG9uZSkge1xuICAgICAgICBpZiAoZC5jcml0KSB7XG4gICAgICAgICAgdGFza1R5cGUgPSB0YXNrVHlwZSArIFwiIGRvbmVDcml0VGV4dFwiICsgc2VjTnVtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhc2tUeXBlID0gdGFza1R5cGUgKyBcIiBkb25lVGV4dFwiICsgc2VjTnVtO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZC5jcml0KSB7XG4gICAgICAgICAgdGFza1R5cGUgPSB0YXNrVHlwZSArIFwiIGNyaXRUZXh0XCIgKyBzZWNOdW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChkLm1pbGVzdG9uZSkge1xuICAgICAgICB0YXNrVHlwZSArPSBcIiBtaWxlc3RvbmVUZXh0XCI7XG4gICAgICB9XG4gICAgICBpZiAodGV4dFdpZHRoID4gZW5kWCAtIHN0YXJ0WCkge1xuICAgICAgICBpZiAoZW5kWCArIHRleHRXaWR0aCArIDEuNSAqIGNvbmYubGVmdFBhZGRpbmcgPiB3Mikge1xuICAgICAgICAgIHJldHVybiBjbGFzc1N0ciArIFwiIHRhc2tUZXh0T3V0c2lkZUxlZnQgdGFza1RleHRPdXRzaWRlXCIgKyBzZWNOdW0gKyBcIiBcIiArIHRhc2tUeXBlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBjbGFzc1N0ciArIFwiIHRhc2tUZXh0T3V0c2lkZVJpZ2h0IHRhc2tUZXh0T3V0c2lkZVwiICsgc2VjTnVtICsgXCIgXCIgKyB0YXNrVHlwZSArIFwiIHdpZHRoLVwiICsgdGV4dFdpZHRoO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY2xhc3NTdHIgKyBcIiB0YXNrVGV4dCB0YXNrVGV4dFwiICsgc2VjTnVtICsgXCIgXCIgKyB0YXNrVHlwZSArIFwiIHdpZHRoLVwiICsgdGV4dFdpZHRoO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHNlY3VyaXR5TGV2ZWwyID0gZ2V0Q29uZmlnKCkuc2VjdXJpdHlMZXZlbDtcbiAgICBpZiAoc2VjdXJpdHlMZXZlbDIgPT09IFwic2FuZGJveFwiKSB7XG4gICAgICBsZXQgc2FuZGJveEVsZW1lbnQyO1xuICAgICAgc2FuZGJveEVsZW1lbnQyID0gc2VsZWN0KFwiI2lcIiArIGlkKTtcbiAgICAgIGNvbnN0IGRvYzIgPSBzYW5kYm94RWxlbWVudDIubm9kZXMoKVswXS5jb250ZW50RG9jdW1lbnQ7XG4gICAgICByZWN0YW5nbGVzLmZpbHRlcihmdW5jdGlvbihkKSB7XG4gICAgICAgIHJldHVybiBsaW5rczJbZC5pZF0gIT09IHZvaWQgMDtcbiAgICAgIH0pLmVhY2goZnVuY3Rpb24obykge1xuICAgICAgICB2YXIgdGFza1JlY3QgPSBkb2MyLnF1ZXJ5U2VsZWN0b3IoXCIjXCIgKyBvLmlkKTtcbiAgICAgICAgdmFyIHRhc2tUZXh0ID0gZG9jMi5xdWVyeVNlbGVjdG9yKFwiI1wiICsgby5pZCArIFwiLXRleHRcIik7XG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRhc2tSZWN0LnBhcmVudE5vZGU7XG4gICAgICAgIHZhciBMaW5rID0gZG9jMi5jcmVhdGVFbGVtZW50KFwiYVwiKTtcbiAgICAgICAgTGluay5zZXRBdHRyaWJ1dGUoXCJ4bGluazpocmVmXCIsIGxpbmtzMltvLmlkXSk7XG4gICAgICAgIExpbmsuc2V0QXR0cmlidXRlKFwidGFyZ2V0XCIsIFwiX3RvcFwiKTtcbiAgICAgICAgb2xkUGFyZW50LmFwcGVuZENoaWxkKExpbmspO1xuICAgICAgICBMaW5rLmFwcGVuZENoaWxkKHRhc2tSZWN0KTtcbiAgICAgICAgTGluay5hcHBlbmRDaGlsZCh0YXNrVGV4dCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gZHJhd0V4Y2x1ZGVEYXlzKHRoZUdhcCwgdGhlVG9wUGFkLCB0aGVTaWRlUGFkLCB3MiwgaDIsIHRhc2tzMiwgZXhjbHVkZXMyLCBpbmNsdWRlczIpIHtcbiAgICBpZiAoZXhjbHVkZXMyLmxlbmd0aCA9PT0gMCAmJiBpbmNsdWRlczIubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBtaW5UaW1lO1xuICAgIGxldCBtYXhUaW1lO1xuICAgIGZvciAoY29uc3QgeyBzdGFydFRpbWUsIGVuZFRpbWUgfSBvZiB0YXNrczIpIHtcbiAgICAgIGlmIChtaW5UaW1lID09PSB2b2lkIDAgfHwgc3RhcnRUaW1lIDwgbWluVGltZSkge1xuICAgICAgICBtaW5UaW1lID0gc3RhcnRUaW1lO1xuICAgICAgfVxuICAgICAgaWYgKG1heFRpbWUgPT09IHZvaWQgMCB8fCBlbmRUaW1lID4gbWF4VGltZSkge1xuICAgICAgICBtYXhUaW1lID0gZW5kVGltZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFtaW5UaW1lIHx8ICFtYXhUaW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChkYXlqcyhtYXhUaW1lKS5kaWZmKGRheWpzKG1pblRpbWUpLCBcInllYXJcIikgPiA1KSB7XG4gICAgICBsb2cud2FybihcbiAgICAgICAgXCJUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCB0aW1lIGlzIG1vcmUgdGhhbiA1IHllYXJzLiBUaGlzIHdpbGwgY2F1c2UgcGVyZm9ybWFuY2UgaXNzdWVzLiBTa2lwcGluZyBkcmF3aW5nIGV4Y2x1ZGUgZGF5cy5cIlxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0ZUZvcm1hdDIgPSBkaWFnT2JqLmRiLmdldERhdGVGb3JtYXQoKTtcbiAgICBjb25zdCBleGNsdWRlUmFuZ2VzID0gW107XG4gICAgbGV0IHJhbmdlID0gbnVsbDtcbiAgICBsZXQgZCA9IGRheWpzKG1pblRpbWUpO1xuICAgIHdoaWxlIChkLnZhbHVlT2YoKSA8PSBtYXhUaW1lKSB7XG4gICAgICBpZiAoZGlhZ09iai5kYi5pc0ludmFsaWREYXRlKGQsIGRhdGVGb3JtYXQyLCBleGNsdWRlczIsIGluY2x1ZGVzMikpIHtcbiAgICAgICAgaWYgKCFyYW5nZSkge1xuICAgICAgICAgIHJhbmdlID0ge1xuICAgICAgICAgICAgc3RhcnQ6IGQsXG4gICAgICAgICAgICBlbmQ6IGRcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJhbmdlLmVuZCA9IGQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyYW5nZSkge1xuICAgICAgICAgIGV4Y2x1ZGVSYW5nZXMucHVzaChyYW5nZSk7XG4gICAgICAgICAgcmFuZ2UgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkID0gZC5hZGQoMSwgXCJkXCIpO1xuICAgIH1cbiAgICBjb25zdCByZWN0YW5nbGVzID0gc3ZnLmFwcGVuZChcImdcIikuc2VsZWN0QWxsKFwicmVjdFwiKS5kYXRhKGV4Y2x1ZGVSYW5nZXMpLmVudGVyKCk7XG4gICAgcmVjdGFuZ2xlcy5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJpZFwiLCBmdW5jdGlvbihkMikge1xuICAgICAgcmV0dXJuIFwiZXhjbHVkZS1cIiArIGQyLnN0YXJ0LmZvcm1hdChcIllZWVktTU0tRERcIik7XG4gICAgfSkuYXR0cihcInhcIiwgZnVuY3Rpb24oZDIpIHtcbiAgICAgIHJldHVybiB0aW1lU2NhbGUoZDIuc3RhcnQpICsgdGhlU2lkZVBhZDtcbiAgICB9KS5hdHRyKFwieVwiLCBjb25mLmdyaWRMaW5lU3RhcnRQYWRkaW5nKS5hdHRyKFwid2lkdGhcIiwgZnVuY3Rpb24oZDIpIHtcbiAgICAgIGNvbnN0IHJlbmRlckVuZCA9IGQyLmVuZC5hZGQoMSwgXCJkYXlcIik7XG4gICAgICByZXR1cm4gdGltZVNjYWxlKHJlbmRlckVuZCkgLSB0aW1lU2NhbGUoZDIuc3RhcnQpO1xuICAgIH0pLmF0dHIoXCJoZWlnaHRcIiwgaDIgLSB0aGVUb3BQYWQgLSBjb25mLmdyaWRMaW5lU3RhcnRQYWRkaW5nKS5hdHRyKFwidHJhbnNmb3JtLW9yaWdpblwiLCBmdW5jdGlvbihkMiwgaSkge1xuICAgICAgcmV0dXJuICh0aW1lU2NhbGUoZDIuc3RhcnQpICsgdGhlU2lkZVBhZCArIDAuNSAqICh0aW1lU2NhbGUoZDIuZW5kKSAtIHRpbWVTY2FsZShkMi5zdGFydCkpKS50b1N0cmluZygpICsgXCJweCBcIiArIChpICogdGhlR2FwICsgMC41ICogaDIpLnRvU3RyaW5nKCkgKyBcInB4XCI7XG4gICAgfSkuYXR0cihcImNsYXNzXCIsIFwiZXhjbHVkZS1yYW5nZVwiKTtcbiAgfVxuICBmdW5jdGlvbiBtYWtlR3JpZCh0aGVTaWRlUGFkLCB0aGVUb3BQYWQsIHcyLCBoMikge1xuICAgIGxldCBib3R0b21YQXhpcyA9IGF4aXNCb3R0b20odGltZVNjYWxlKS50aWNrU2l6ZSgtaDIgKyB0aGVUb3BQYWQgKyBjb25mLmdyaWRMaW5lU3RhcnRQYWRkaW5nKS50aWNrRm9ybWF0KHRpbWVGb3JtYXQoZGlhZ09iai5kYi5nZXRBeGlzRm9ybWF0KCkgfHwgY29uZi5heGlzRm9ybWF0IHx8IFwiJVktJW0tJWRcIikpO1xuICAgIGNvbnN0IHJlVGlja0ludGVydmFsID0gL14oWzEtOV1cXGQqKShtaWxsaXNlY29uZHxzZWNvbmR8bWludXRlfGhvdXJ8ZGF5fHdlZWt8bW9udGgpJC87XG4gICAgY29uc3QgcmVzdWx0VGlja0ludGVydmFsID0gcmVUaWNrSW50ZXJ2YWwuZXhlYyhcbiAgICAgIGRpYWdPYmouZGIuZ2V0VGlja0ludGVydmFsKCkgfHwgY29uZi50aWNrSW50ZXJ2YWxcbiAgICApO1xuICAgIGlmIChyZXN1bHRUaWNrSW50ZXJ2YWwgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGV2ZXJ5ID0gcmVzdWx0VGlja0ludGVydmFsWzFdO1xuICAgICAgY29uc3QgaW50ZXJ2YWwgPSByZXN1bHRUaWNrSW50ZXJ2YWxbMl07XG4gICAgICBjb25zdCB3ZWVrZGF5MiA9IGRpYWdPYmouZGIuZ2V0V2Vla2RheSgpIHx8IGNvbmYud2Vla2RheTtcbiAgICAgIHN3aXRjaCAoaW50ZXJ2YWwpIHtcbiAgICAgICAgY2FzZSBcIm1pbGxpc2Vjb25kXCI6XG4gICAgICAgICAgYm90dG9tWEF4aXMudGlja3ModGltZU1pbGxpc2Vjb25kLmV2ZXJ5KGV2ZXJ5KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzZWNvbmRcIjpcbiAgICAgICAgICBib3R0b21YQXhpcy50aWNrcyh0aW1lU2Vjb25kLmV2ZXJ5KGV2ZXJ5KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtaW51dGVcIjpcbiAgICAgICAgICBib3R0b21YQXhpcy50aWNrcyh0aW1lTWludXRlLmV2ZXJ5KGV2ZXJ5KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJob3VyXCI6XG4gICAgICAgICAgYm90dG9tWEF4aXMudGlja3ModGltZUhvdXIuZXZlcnkoZXZlcnkpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRheVwiOlxuICAgICAgICAgIGJvdHRvbVhBeGlzLnRpY2tzKHRpbWVEYXkuZXZlcnkoZXZlcnkpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIndlZWtcIjpcbiAgICAgICAgICBib3R0b21YQXhpcy50aWNrcyhtYXBXZWVrZGF5VG9UaW1lRnVuY3Rpb25bd2Vla2RheTJdLmV2ZXJ5KGV2ZXJ5KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtb250aFwiOlxuICAgICAgICAgIGJvdHRvbVhBeGlzLnRpY2tzKHRpbWVNb250aC5ldmVyeShldmVyeSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBzdmcuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJncmlkXCIpLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyB0aGVTaWRlUGFkICsgXCIsIFwiICsgKGgyIC0gNTApICsgXCIpXCIpLmNhbGwoYm90dG9tWEF4aXMpLnNlbGVjdEFsbChcInRleHRcIikuc3R5bGUoXCJ0ZXh0LWFuY2hvclwiLCBcIm1pZGRsZVwiKS5hdHRyKFwiZmlsbFwiLCBcIiMwMDBcIikuYXR0cihcInN0cm9rZVwiLCBcIm5vbmVcIikuYXR0cihcImZvbnQtc2l6ZVwiLCAxMCkuYXR0cihcImR5XCIsIFwiMWVtXCIpO1xuICAgIGlmIChkaWFnT2JqLmRiLnRvcEF4aXNFbmFibGVkKCkgfHwgY29uZi50b3BBeGlzKSB7XG4gICAgICBsZXQgdG9wWEF4aXMgPSBheGlzVG9wKHRpbWVTY2FsZSkudGlja1NpemUoLWgyICsgdGhlVG9wUGFkICsgY29uZi5ncmlkTGluZVN0YXJ0UGFkZGluZykudGlja0Zvcm1hdCh0aW1lRm9ybWF0KGRpYWdPYmouZGIuZ2V0QXhpc0Zvcm1hdCgpIHx8IGNvbmYuYXhpc0Zvcm1hdCB8fCBcIiVZLSVtLSVkXCIpKTtcbiAgICAgIGlmIChyZXN1bHRUaWNrSW50ZXJ2YWwgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZXZlcnkgPSByZXN1bHRUaWNrSW50ZXJ2YWxbMV07XG4gICAgICAgIGNvbnN0IGludGVydmFsID0gcmVzdWx0VGlja0ludGVydmFsWzJdO1xuICAgICAgICBjb25zdCB3ZWVrZGF5MiA9IGRpYWdPYmouZGIuZ2V0V2Vla2RheSgpIHx8IGNvbmYud2Vla2RheTtcbiAgICAgICAgc3dpdGNoIChpbnRlcnZhbCkge1xuICAgICAgICAgIGNhc2UgXCJtaWxsaXNlY29uZFwiOlxuICAgICAgICAgICAgdG9wWEF4aXMudGlja3ModGltZU1pbGxpc2Vjb25kLmV2ZXJ5KGV2ZXJ5KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwic2Vjb25kXCI6XG4gICAgICAgICAgICB0b3BYQXhpcy50aWNrcyh0aW1lU2Vjb25kLmV2ZXJ5KGV2ZXJ5KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwibWludXRlXCI6XG4gICAgICAgICAgICB0b3BYQXhpcy50aWNrcyh0aW1lTWludXRlLmV2ZXJ5KGV2ZXJ5KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiaG91clwiOlxuICAgICAgICAgICAgdG9wWEF4aXMudGlja3ModGltZUhvdXIuZXZlcnkoZXZlcnkpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJkYXlcIjpcbiAgICAgICAgICAgIHRvcFhBeGlzLnRpY2tzKHRpbWVEYXkuZXZlcnkoZXZlcnkpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJ3ZWVrXCI6XG4gICAgICAgICAgICB0b3BYQXhpcy50aWNrcyhtYXBXZWVrZGF5VG9UaW1lRnVuY3Rpb25bd2Vla2RheTJdLmV2ZXJ5KGV2ZXJ5KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwibW9udGhcIjpcbiAgICAgICAgICAgIHRvcFhBeGlzLnRpY2tzKHRpbWVNb250aC5ldmVyeShldmVyeSkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHN2Zy5hcHBlbmQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImdyaWRcIikuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIHRoZVNpZGVQYWQgKyBcIiwgXCIgKyB0aGVUb3BQYWQgKyBcIilcIikuY2FsbCh0b3BYQXhpcykuc2VsZWN0QWxsKFwidGV4dFwiKS5zdHlsZShcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpLmF0dHIoXCJmaWxsXCIsIFwiIzAwMFwiKS5hdHRyKFwic3Ryb2tlXCIsIFwibm9uZVwiKS5hdHRyKFwiZm9udC1zaXplXCIsIDEwKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gdmVydExhYmVscyh0aGVHYXAsIHRoZVRvcFBhZCkge1xuICAgIGxldCBwcmV2R2FwID0gMDtcbiAgICBjb25zdCBudW1PY2N1cnJlbmNlcyA9IE9iamVjdC5rZXlzKGNhdGVnb3J5SGVpZ2h0cykubWFwKChkKSA9PiBbZCwgY2F0ZWdvcnlIZWlnaHRzW2RdXSk7XG4gICAgc3ZnLmFwcGVuZChcImdcIikuc2VsZWN0QWxsKFwidGV4dFwiKS5kYXRhKG51bU9jY3VycmVuY2VzKS5lbnRlcigpLmFwcGVuZChmdW5jdGlvbihkKSB7XG4gICAgICBjb25zdCByb3dzID0gZFswXS5zcGxpdChjb21tb24ubGluZUJyZWFrUmVnZXgpO1xuICAgICAgY29uc3QgZHkgPSAtKHJvd3MubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgY29uc3Qgc3ZnTGFiZWwgPSBkb2MuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJ0ZXh0XCIpO1xuICAgICAgc3ZnTGFiZWwuc2V0QXR0cmlidXRlKFwiZHlcIiwgZHkgKyBcImVtXCIpO1xuICAgICAgZm9yIChjb25zdCBbaiwgcm93XSBvZiByb3dzLmVudHJpZXMoKSkge1xuICAgICAgICBjb25zdCB0c3BhbiA9IGRvYy5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcInRzcGFuXCIpO1xuICAgICAgICB0c3Bhbi5zZXRBdHRyaWJ1dGUoXCJhbGlnbm1lbnQtYmFzZWxpbmVcIiwgXCJjZW50cmFsXCIpO1xuICAgICAgICB0c3Bhbi5zZXRBdHRyaWJ1dGUoXCJ4XCIsIFwiMTBcIik7XG4gICAgICAgIGlmIChqID4gMCkge1xuICAgICAgICAgIHRzcGFuLnNldEF0dHJpYnV0ZShcImR5XCIsIFwiMWVtXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRzcGFuLnRleHRDb250ZW50ID0gcm93O1xuICAgICAgICBzdmdMYWJlbC5hcHBlbmRDaGlsZCh0c3Bhbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3ZnTGFiZWw7XG4gICAgfSkuYXR0cihcInhcIiwgMTApLmF0dHIoXCJ5XCIsIGZ1bmN0aW9uKGQsIGkpIHtcbiAgICAgIGlmIChpID4gMCkge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGk7IGorKykge1xuICAgICAgICAgIHByZXZHYXAgKz0gbnVtT2NjdXJyZW5jZXNbaSAtIDFdWzFdO1xuICAgICAgICAgIHJldHVybiBkWzFdICogdGhlR2FwIC8gMiArIHByZXZHYXAgKiB0aGVHYXAgKyB0aGVUb3BQYWQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkWzFdICogdGhlR2FwIC8gMiArIHRoZVRvcFBhZDtcbiAgICAgIH1cbiAgICB9KS5hdHRyKFwiZm9udC1zaXplXCIsIGNvbmYuc2VjdGlvbkZvbnRTaXplKS5hdHRyKFwiY2xhc3NcIiwgZnVuY3Rpb24oZCkge1xuICAgICAgZm9yIChjb25zdCBbaSwgY2F0ZWdvcnldIG9mIGNhdGVnb3JpZXMuZW50cmllcygpKSB7XG4gICAgICAgIGlmIChkWzBdID09PSBjYXRlZ29yeSkge1xuICAgICAgICAgIHJldHVybiBcInNlY3Rpb25UaXRsZSBzZWN0aW9uVGl0bGVcIiArIGkgJSBjb25mLm51bWJlclNlY3Rpb25TdHlsZXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBcInNlY3Rpb25UaXRsZVwiO1xuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIGRyYXdUb2RheSh0aGVTaWRlUGFkLCB0aGVUb3BQYWQsIHcyLCBoMikge1xuICAgIGNvbnN0IHRvZGF5TWFya2VyMiA9IGRpYWdPYmouZGIuZ2V0VG9kYXlNYXJrZXIoKTtcbiAgICBpZiAodG9kYXlNYXJrZXIyID09PSBcIm9mZlwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRvZGF5RyA9IHN2Zy5hcHBlbmQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcInRvZGF5XCIpO1xuICAgIGNvbnN0IHRvZGF5ID0gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7XG4gICAgY29uc3QgdG9kYXlMaW5lID0gdG9kYXlHLmFwcGVuZChcImxpbmVcIik7XG4gICAgdG9kYXlMaW5lLmF0dHIoXCJ4MVwiLCB0aW1lU2NhbGUodG9kYXkpICsgdGhlU2lkZVBhZCkuYXR0cihcIngyXCIsIHRpbWVTY2FsZSh0b2RheSkgKyB0aGVTaWRlUGFkKS5hdHRyKFwieTFcIiwgY29uZi50aXRsZVRvcE1hcmdpbikuYXR0cihcInkyXCIsIGgyIC0gY29uZi50aXRsZVRvcE1hcmdpbikuYXR0cihcImNsYXNzXCIsIFwidG9kYXlcIik7XG4gICAgaWYgKHRvZGF5TWFya2VyMiAhPT0gXCJcIikge1xuICAgICAgdG9kYXlMaW5lLmF0dHIoXCJzdHlsZVwiLCB0b2RheU1hcmtlcjIucmVwbGFjZSgvLC9nLCBcIjtcIikpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBjaGVja1VuaXF1ZShhcnIpIHtcbiAgICBjb25zdCBoYXNoID0ge307XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBhcnIubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoYXNoLCBhcnJbaV0pKSB7XG4gICAgICAgIGhhc2hbYXJyW2ldXSA9IHRydWU7XG4gICAgICAgIHJlc3VsdC5wdXNoKGFycltpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn07XG5jb25zdCBnYW50dFJlbmRlcmVyID0ge1xuICBzZXRDb25mLFxuICBkcmF3XG59O1xuY29uc3QgZ2V0U3R5bGVzID0gKG9wdGlvbnMpID0+IGBcbiAgLm1lcm1haWQtbWFpbi1mb250IHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWVybWFpZC1mb250LWZhbWlseSwgXCJ0cmVidWNoZXQgbXNcIiwgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWYpO1xuICB9XG5cbiAgLmV4Y2x1ZGUtcmFuZ2Uge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5leGNsdWRlQmtnQ29sb3J9O1xuICB9XG5cbiAgLnNlY3Rpb24ge1xuICAgIHN0cm9rZTogbm9uZTtcbiAgICBvcGFjaXR5OiAwLjI7XG4gIH1cblxuICAuc2VjdGlvbjAge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5zZWN0aW9uQmtnQ29sb3J9O1xuICB9XG5cbiAgLnNlY3Rpb24yIHtcbiAgICBmaWxsOiAke29wdGlvbnMuc2VjdGlvbkJrZ0NvbG9yMn07XG4gIH1cblxuICAuc2VjdGlvbjEsXG4gIC5zZWN0aW9uMyB7XG4gICAgZmlsbDogJHtvcHRpb25zLmFsdFNlY3Rpb25Ca2dDb2xvcn07XG4gICAgb3BhY2l0eTogMC4yO1xuICB9XG5cbiAgLnNlY3Rpb25UaXRsZTAge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50aXRsZUNvbG9yfTtcbiAgfVxuXG4gIC5zZWN0aW9uVGl0bGUxIHtcbiAgICBmaWxsOiAke29wdGlvbnMudGl0bGVDb2xvcn07XG4gIH1cblxuICAuc2VjdGlvblRpdGxlMiB7XG4gICAgZmlsbDogJHtvcHRpb25zLnRpdGxlQ29sb3J9O1xuICB9XG5cbiAgLnNlY3Rpb25UaXRsZTMge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50aXRsZUNvbG9yfTtcbiAgfVxuXG4gIC5zZWN0aW9uVGl0bGUge1xuICAgIHRleHQtYW5jaG9yOiBzdGFydDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWVybWFpZC1mb250LWZhbWlseSwgXCJ0cmVidWNoZXQgbXNcIiwgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWYpO1xuICB9XG5cblxuICAvKiBHcmlkIGFuZCBheGlzICovXG5cbiAgLmdyaWQgLnRpY2sge1xuICAgIHN0cm9rZTogJHtvcHRpb25zLmdyaWRDb2xvcn07XG4gICAgb3BhY2l0eTogMC44O1xuICAgIHNoYXBlLXJlbmRlcmluZzogY3Jpc3BFZGdlcztcbiAgfVxuXG4gIC5ncmlkIC50aWNrIHRleHQge1xuICAgIGZvbnQtZmFtaWx5OiAke29wdGlvbnMuZm9udEZhbWlseX07XG4gICAgZmlsbDogJHtvcHRpb25zLnRleHRDb2xvcn07XG4gIH1cblxuICAuZ3JpZCBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDA7XG4gIH1cblxuXG4gIC8qIFRvZGF5IGxpbmUgKi9cblxuICAudG9kYXkge1xuICAgIGZpbGw6IG5vbmU7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMudG9kYXlMaW5lQ29sb3J9O1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG5cblxuICAvKiBUYXNrIHN0eWxpbmcgKi9cblxuICAvKiBEZWZhdWx0IHRhc2sgKi9cblxuICAudGFzayB7XG4gICAgc3Ryb2tlLXdpZHRoOiAyO1xuICB9XG5cbiAgLnRhc2tUZXh0IHtcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tZXJtYWlkLWZvbnQtZmFtaWx5LCBcInRyZWJ1Y2hldCBtc1wiLCB2ZXJkYW5hLCBhcmlhbCwgc2Fucy1zZXJpZik7XG4gIH1cblxuICAudGFza1RleHRPdXRzaWRlUmlnaHQge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50YXNrVGV4dERhcmtDb2xvcn07XG4gICAgdGV4dC1hbmNob3I6IHN0YXJ0O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tZXJtYWlkLWZvbnQtZmFtaWx5LCBcInRyZWJ1Y2hldCBtc1wiLCB2ZXJkYW5hLCBhcmlhbCwgc2Fucy1zZXJpZik7XG4gIH1cblxuICAudGFza1RleHRPdXRzaWRlTGVmdCB7XG4gICAgZmlsbDogJHtvcHRpb25zLnRhc2tUZXh0RGFya0NvbG9yfTtcbiAgICB0ZXh0LWFuY2hvcjogZW5kO1xuICB9XG5cblxuICAvKiBTcGVjaWFsIGNhc2UgY2xpY2thYmxlICovXG5cbiAgLnRhc2suY2xpY2thYmxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAudGFza1RleHQuY2xpY2thYmxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZmlsbDogJHtvcHRpb25zLnRhc2tUZXh0Q2xpY2thYmxlQ29sb3J9ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAudGFza1RleHRPdXRzaWRlTGVmdC5jbGlja2FibGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmaWxsOiAke29wdGlvbnMudGFza1RleHRDbGlja2FibGVDb2xvcn0gIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC50YXNrVGV4dE91dHNpZGVSaWdodC5jbGlja2FibGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmaWxsOiAke29wdGlvbnMudGFza1RleHRDbGlja2FibGVDb2xvcn0gIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG5cbiAgLyogU3BlY2lmaWMgdGFzayBzZXR0aW5ncyBmb3IgdGhlIHNlY3Rpb25zKi9cblxuICAudGFza1RleHQwLFxuICAudGFza1RleHQxLFxuICAudGFza1RleHQyLFxuICAudGFza1RleHQzIHtcbiAgICBmaWxsOiAke29wdGlvbnMudGFza1RleHRDb2xvcn07XG4gIH1cblxuICAudGFzazAsXG4gIC50YXNrMSxcbiAgLnRhc2syLFxuICAudGFzazMge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50YXNrQmtnQ29sb3J9O1xuICAgIHN0cm9rZTogJHtvcHRpb25zLnRhc2tCb3JkZXJDb2xvcn07XG4gIH1cblxuICAudGFza1RleHRPdXRzaWRlMCxcbiAgLnRhc2tUZXh0T3V0c2lkZTJcbiAge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50YXNrVGV4dE91dHNpZGVDb2xvcn07XG4gIH1cblxuICAudGFza1RleHRPdXRzaWRlMSxcbiAgLnRhc2tUZXh0T3V0c2lkZTMge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50YXNrVGV4dE91dHNpZGVDb2xvcn07XG4gIH1cblxuXG4gIC8qIEFjdGl2ZSB0YXNrICovXG5cbiAgLmFjdGl2ZTAsXG4gIC5hY3RpdmUxLFxuICAuYWN0aXZlMixcbiAgLmFjdGl2ZTMge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5hY3RpdmVUYXNrQmtnQ29sb3J9O1xuICAgIHN0cm9rZTogJHtvcHRpb25zLmFjdGl2ZVRhc2tCb3JkZXJDb2xvcn07XG4gIH1cblxuICAuYWN0aXZlVGV4dDAsXG4gIC5hY3RpdmVUZXh0MSxcbiAgLmFjdGl2ZVRleHQyLFxuICAuYWN0aXZlVGV4dDMge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50YXNrVGV4dERhcmtDb2xvcn0gIWltcG9ydGFudDtcbiAgfVxuXG5cbiAgLyogQ29tcGxldGVkIHRhc2sgKi9cblxuICAuZG9uZTAsXG4gIC5kb25lMSxcbiAgLmRvbmUyLFxuICAuZG9uZTMge1xuICAgIHN0cm9rZTogJHtvcHRpb25zLmRvbmVUYXNrQm9yZGVyQ29sb3J9O1xuICAgIGZpbGw6ICR7b3B0aW9ucy5kb25lVGFza0JrZ0NvbG9yfTtcbiAgICBzdHJva2Utd2lkdGg6IDI7XG4gIH1cblxuICAuZG9uZVRleHQwLFxuICAuZG9uZVRleHQxLFxuICAuZG9uZVRleHQyLFxuICAuZG9uZVRleHQzIHtcbiAgICBmaWxsOiAke29wdGlvbnMudGFza1RleHREYXJrQ29sb3J9ICFpbXBvcnRhbnQ7XG4gIH1cblxuXG4gIC8qIFRhc2tzIG9uIHRoZSBjcml0aWNhbCBsaW5lICovXG5cbiAgLmNyaXQwLFxuICAuY3JpdDEsXG4gIC5jcml0MixcbiAgLmNyaXQzIHtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5jcml0Qm9yZGVyQ29sb3J9O1xuICAgIGZpbGw6ICR7b3B0aW9ucy5jcml0QmtnQ29sb3J9O1xuICAgIHN0cm9rZS13aWR0aDogMjtcbiAgfVxuXG4gIC5hY3RpdmVDcml0MCxcbiAgLmFjdGl2ZUNyaXQxLFxuICAuYWN0aXZlQ3JpdDIsXG4gIC5hY3RpdmVDcml0MyB7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMuY3JpdEJvcmRlckNvbG9yfTtcbiAgICBmaWxsOiAke29wdGlvbnMuYWN0aXZlVGFza0JrZ0NvbG9yfTtcbiAgICBzdHJva2Utd2lkdGg6IDI7XG4gIH1cblxuICAuZG9uZUNyaXQwLFxuICAuZG9uZUNyaXQxLFxuICAuZG9uZUNyaXQyLFxuICAuZG9uZUNyaXQzIHtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5jcml0Qm9yZGVyQ29sb3J9O1xuICAgIGZpbGw6ICR7b3B0aW9ucy5kb25lVGFza0JrZ0NvbG9yfTtcbiAgICBzdHJva2Utd2lkdGg6IDI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHNoYXBlLXJlbmRlcmluZzogY3Jpc3BFZGdlcztcbiAgfVxuXG4gIC5taWxlc3RvbmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSBzY2FsZSgwLjgsMC44KTtcbiAgfVxuXG4gIC5taWxlc3RvbmVUZXh0IHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbiAgLmRvbmVDcml0VGV4dDAsXG4gIC5kb25lQ3JpdFRleHQxLFxuICAuZG9uZUNyaXRUZXh0MixcbiAgLmRvbmVDcml0VGV4dDMge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50YXNrVGV4dERhcmtDb2xvcn0gIWltcG9ydGFudDtcbiAgfVxuXG4gIC5hY3RpdmVDcml0VGV4dDAsXG4gIC5hY3RpdmVDcml0VGV4dDEsXG4gIC5hY3RpdmVDcml0VGV4dDIsXG4gIC5hY3RpdmVDcml0VGV4dDMge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50YXNrVGV4dERhcmtDb2xvcn0gIWltcG9ydGFudDtcbiAgfVxuXG4gIC50aXRsZVRleHQge1xuICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZpbGw6ICR7b3B0aW9ucy50aXRsZUNvbG9yIHx8IG9wdGlvbnMudGV4dENvbG9yfTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWVybWFpZC1mb250LWZhbWlseSwgXCJ0cmVidWNoZXQgbXNcIiwgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWYpO1xuICB9XG5gO1xuY29uc3QgZ2FudHRTdHlsZXMgPSBnZXRTdHlsZXM7XG5jb25zdCBkaWFncmFtID0ge1xuICBwYXJzZXI6IGdhbnR0UGFyc2VyLFxuICBkYjogZ2FudHREYixcbiAgcmVuZGVyZXI6IGdhbnR0UmVuZGVyZXIsXG4gIHN0eWxlczogZ2FudHRTdHlsZXNcbn07XG5leHBvcnQge1xuICBkaWFncmFtXG59O1xuIiwKICAgICJpbXBvcnQgeyBsIGFzIGxvZywgQSBhcyBzZWxlY3RTdmdFbGVtZW50LCBpIGFzIGNvbmZpZ3VyZVN2Z1NpemUgfSBmcm9tIFwiLi9tZXJtYWlkLTZkYzcyOTkxLmpzXCI7XG5pbXBvcnQgXCJ0cy1kZWRlbnRcIjtcbmltcG9ydCBcImRheWpzXCI7XG5pbXBvcnQgXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IFwiZDNcIjtcbmltcG9ydCBcImRvbXB1cmlmeVwiO1xuaW1wb3J0IFwia2hyb21hXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lcmdlLmpzXCI7XG5pbXBvcnQgXCJzdHlsaXNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9pc0VtcHR5LmpzXCI7XG52YXIgcGFyc2VyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBvID0gZnVuY3Rpb24oaywgdiwgbzIsIGwpIHtcbiAgICBmb3IgKG8yID0gbzIgfHwge30sIGwgPSBrLmxlbmd0aDsgbC0tOyBvMltrW2xdXSA9IHYpXG4gICAgICA7XG4gICAgcmV0dXJuIG8yO1xuICB9LCAkVjAgPSBbNiwgOSwgMTBdO1xuICB2YXIgcGFyc2VyMiA9IHtcbiAgICB0cmFjZTogZnVuY3Rpb24gdHJhY2UoKSB7XG4gICAgfSxcbiAgICB5eToge30sXG4gICAgc3ltYm9sc186IHsgXCJlcnJvclwiOiAyLCBcInN0YXJ0XCI6IDMsIFwiaW5mb1wiOiA0LCBcImRvY3VtZW50XCI6IDUsIFwiRU9GXCI6IDYsIFwibGluZVwiOiA3LCBcInN0YXRlbWVudFwiOiA4LCBcIk5MXCI6IDksIFwic2hvd0luZm9cIjogMTAsIFwiJGFjY2VwdFwiOiAwLCBcIiRlbmRcIjogMSB9LFxuICAgIHRlcm1pbmFsc186IHsgMjogXCJlcnJvclwiLCA0OiBcImluZm9cIiwgNjogXCJFT0ZcIiwgOTogXCJOTFwiLCAxMDogXCJzaG93SW5mb1wiIH0sXG4gICAgcHJvZHVjdGlvbnNfOiBbMCwgWzMsIDNdLCBbNSwgMF0sIFs1LCAyXSwgWzcsIDFdLCBbNywgMV0sIFs4LCAxXV0sXG4gICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5dGV4dCwgeXlsZW5nLCB5eWxpbmVubywgeXksIHl5c3RhdGUsICQkLCBfJCkge1xuICAgICAgJCQubGVuZ3RoIC0gMTtcbiAgICAgIHN3aXRjaCAoeXlzdGF0ZSkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmV0dXJuIHl5O1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICB5eS5zZXRJbmZvKHRydWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgdGFibGU6IFt7IDM6IDEsIDQ6IFsxLCAyXSB9LCB7IDE6IFszXSB9LCBvKCRWMCwgWzIsIDJdLCB7IDU6IDMgfSksIHsgNjogWzEsIDRdLCA3OiA1LCA4OiA2LCA5OiBbMSwgN10sIDEwOiBbMSwgOF0gfSwgeyAxOiBbMiwgMV0gfSwgbygkVjAsIFsyLCAzXSksIG8oJFYwLCBbMiwgNF0pLCBvKCRWMCwgWzIsIDVdKSwgbygkVjAsIFsyLCA2XSldLFxuICAgIGRlZmF1bHRBY3Rpb25zOiB7IDQ6IFsyLCAxXSB9LFxuICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICBpZiAoaGFzaC5yZWNvdmVyYWJsZSkge1xuICAgICAgICB0aGlzLnRyYWNlKHN0cik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgZXJyb3IuaGFzaCA9IGhhc2g7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0sXG4gICAgcGFyc2U6IGZ1bmN0aW9uIHBhcnNlKGlucHV0KSB7XG4gICAgICB2YXIgc2VsZiA9IHRoaXMsIHN0YWNrID0gWzBdLCB0c3RhY2sgPSBbXSwgdnN0YWNrID0gW251bGxdLCBsc3RhY2sgPSBbXSwgdGFibGUgPSB0aGlzLnRhYmxlLCB5eXRleHQgPSBcIlwiLCB5eWxpbmVubyA9IDAsIHl5bGVuZyA9IDAsIFRFUlJPUiA9IDIsIEVPRiA9IDE7XG4gICAgICB2YXIgYXJncyA9IGxzdGFjay5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICB2YXIgbGV4ZXIyID0gT2JqZWN0LmNyZWF0ZSh0aGlzLmxleGVyKTtcbiAgICAgIHZhciBzaGFyZWRTdGF0ZSA9IHsgeXk6IHt9IH07XG4gICAgICBmb3IgKHZhciBrIGluIHRoaXMueXkpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLnl5LCBrKSkge1xuICAgICAgICAgIHNoYXJlZFN0YXRlLnl5W2tdID0gdGhpcy55eVtrXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV4ZXIyLnNldElucHV0KGlucHV0LCBzaGFyZWRTdGF0ZS55eSk7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5sZXhlciA9IGxleGVyMjtcbiAgICAgIHNoYXJlZFN0YXRlLnl5LnBhcnNlciA9IHRoaXM7XG4gICAgICBpZiAodHlwZW9mIGxleGVyMi55eWxsb2MgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBsZXhlcjIueXlsbG9jID0ge307XG4gICAgICB9XG4gICAgICB2YXIgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgbHN0YWNrLnB1c2goeXlsb2MpO1xuICAgICAgdmFyIHJhbmdlcyA9IGxleGVyMi5vcHRpb25zICYmIGxleGVyMi5vcHRpb25zLnJhbmdlcztcbiAgICAgIGlmICh0eXBlb2Ygc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRoaXMucGFyc2VFcnJvciA9IHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3I7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykucGFyc2VFcnJvcjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHRva2VuO1xuICAgICAgICB0b2tlbiA9IHRzdGFjay5wb3AoKSB8fCBsZXhlcjIubGV4KCkgfHwgRU9GO1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgaWYgKHRva2VuIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIHRzdGFjayA9IHRva2VuO1xuICAgICAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRva2VuID0gc2VsZi5zeW1ib2xzX1t0b2tlbl0gfHwgdG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgfVxuICAgICAgdmFyIHN5bWJvbCwgc3RhdGUsIGFjdGlvbiwgciwgeXl2YWwgPSB7fSwgcCwgbGVuLCBuZXdTdGF0ZSwgZXhwZWN0ZWQ7XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBzdGF0ZSA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV0pIHtcbiAgICAgICAgICBhY3Rpb24gPSB0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc3ltYm9sID09PSBudWxsIHx8IHR5cGVvZiBzeW1ib2wgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgc3ltYm9sID0gbGV4KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjdGlvbiA9IHRhYmxlW3N0YXRlXSAmJiB0YWJsZVtzdGF0ZV1bc3ltYm9sXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhYWN0aW9uLmxlbmd0aCB8fCAhYWN0aW9uWzBdKSB7XG4gICAgICAgICAgdmFyIGVyclN0ciA9IFwiXCI7XG4gICAgICAgICAgZXhwZWN0ZWQgPSBbXTtcbiAgICAgICAgICBmb3IgKHAgaW4gdGFibGVbc3RhdGVdKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50ZXJtaW5hbHNfW3BdICYmIHAgPiBURVJST1IpIHtcbiAgICAgICAgICAgICAgZXhwZWN0ZWQucHVzaChcIidcIiArIHRoaXMudGVybWluYWxzX1twXSArIFwiJ1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGxleGVyMi5zaG93UG9zaXRpb24pIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6XFxuXCIgKyBsZXhlcjIuc2hvd1Bvc2l0aW9uKCkgKyBcIlxcbkV4cGVjdGluZyBcIiArIGV4cGVjdGVkLmpvaW4oXCIsIFwiKSArIFwiLCBnb3QgJ1wiICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyBcIidcIjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjogVW5leHBlY3RlZCBcIiArIChzeW1ib2wgPT0gRU9GID8gXCJlbmQgb2YgaW5wdXRcIiA6IFwiJ1wiICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyBcIidcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucGFyc2VFcnJvcihlcnJTdHIsIHtcbiAgICAgICAgICAgIHRleHQ6IGxleGVyMi5tYXRjaCxcbiAgICAgICAgICAgIHRva2VuOiB0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wsXG4gICAgICAgICAgICBsaW5lOiBsZXhlcjIueXlsaW5lbm8sXG4gICAgICAgICAgICBsb2M6IHl5bG9jLFxuICAgICAgICAgICAgZXhwZWN0ZWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uWzBdIGluc3RhbmNlb2YgQXJyYXkgJiYgYWN0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXJzZSBFcnJvcjogbXVsdGlwbGUgYWN0aW9ucyBwb3NzaWJsZSBhdCBzdGF0ZTogXCIgKyBzdGF0ZSArIFwiLCB0b2tlbjogXCIgKyBzeW1ib2wpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uWzBdKSB7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgc3RhY2sucHVzaChzeW1ib2wpO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2gobGV4ZXIyLnl5dGV4dCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaChsZXhlcjIueXlsbG9jKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goYWN0aW9uWzFdKTtcbiAgICAgICAgICAgIHN5bWJvbCA9IG51bGw7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHl5bGVuZyA9IGxleGVyMi55eWxlbmc7XG4gICAgICAgICAgICAgIHl5dGV4dCA9IGxleGVyMi55eXRleHQ7XG4gICAgICAgICAgICAgIHl5bGluZW5vID0gbGV4ZXIyLnl5bGluZW5vO1xuICAgICAgICAgICAgICB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICBsZW4gPSB0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzFdO1xuICAgICAgICAgICAgeXl2YWwuJCA9IHZzdGFja1t2c3RhY2subGVuZ3RoIC0gbGVuXTtcbiAgICAgICAgICAgIHl5dmFsLl8kID0ge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJhbmdlcykge1xuICAgICAgICAgICAgICB5eXZhbC5fJC5yYW5nZSA9IFtcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLnJhbmdlWzBdLFxuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ucmFuZ2VbMV1cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHIgPSB0aGlzLnBlcmZvcm1BY3Rpb24uYXBwbHkoeXl2YWwsIFtcbiAgICAgICAgICAgICAgeXl0ZXh0LFxuICAgICAgICAgICAgICB5eWxlbmcsXG4gICAgICAgICAgICAgIHl5bGluZW5vLFxuICAgICAgICAgICAgICBzaGFyZWRTdGF0ZS55eSxcbiAgICAgICAgICAgICAgYWN0aW9uWzFdLFxuICAgICAgICAgICAgICB2c3RhY2ssXG4gICAgICAgICAgICAgIGxzdGFja1xuICAgICAgICAgICAgXS5jb25jYXQoYXJncykpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlbikge1xuICAgICAgICAgICAgICBzdGFjayA9IHN0YWNrLnNsaWNlKDAsIC0xICogbGVuICogMik7XG4gICAgICAgICAgICAgIHZzdGFjayA9IHZzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICAgIGxzdGFjayA9IGxzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFjay5wdXNoKHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMF0pO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2goeXl2YWwuJCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaCh5eXZhbC5fJCk7XG4gICAgICAgICAgICBuZXdTdGF0ZSA9IHRhYmxlW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDJdXVtzdGFja1tzdGFjay5sZW5ndGggLSAxXV07XG4gICAgICAgICAgICBzdGFjay5wdXNoKG5ld1N0YXRlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH07XG4gIHZhciBsZXhlciA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBsZXhlcjIgPSB7XG4gICAgICBFT0Y6IDEsXG4gICAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgICBpZiAodGhpcy55eS5wYXJzZXIpIHtcbiAgICAgICAgICB0aGlzLnl5LnBhcnNlci5wYXJzZUVycm9yKHN0ciwgaGFzaCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHN0cik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXNldHMgdGhlIGxleGVyLCBzZXRzIG5ldyBpbnB1dFxuICAgICAgc2V0SW5wdXQ6IGZ1bmN0aW9uKGlucHV0LCB5eSkge1xuICAgICAgICB0aGlzLnl5ID0geXkgfHwgdGhpcy55eSB8fCB7fTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRoaXMuX2JhY2t0cmFjayA9IHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnl5bGluZW5vID0gdGhpcy55eWxlbmcgPSAwO1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrID0gW1wiSU5JVElBTFwiXTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IDAsXG4gICAgICAgICAgbGFzdF9saW5lOiAxLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiAwXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbMCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBjb25zdW1lcyBhbmQgcmV0dXJucyBvbmUgY2hhciBmcm9tIHRoZSBpbnB1dFxuICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY2ggPSB0aGlzLl9pbnB1dFswXTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gY2g7XG4gICAgICAgIHRoaXMueXlsZW5nKys7XG4gICAgICAgIHRoaXMub2Zmc2V0Kys7XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gY2g7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBjaDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2gubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vKys7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9saW5lKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9jb2x1bW4rKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlWzFdKys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZSgxKTtcbiAgICAgICAgcmV0dXJuIGNoO1xuICAgICAgfSxcbiAgICAgIC8vIHVuc2hpZnRzIG9uZSBjaGFyIChvciBhIHN0cmluZykgaW50byB0aGUgaW5wdXRcbiAgICAgIHVucHV0OiBmdW5jdGlvbihjaCkge1xuICAgICAgICB2YXIgbGVuID0gY2gubGVuZ3RoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGNoICsgdGhpcy5faW5wdXQ7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy55eXRleHQuc3Vic3RyKDAsIHRoaXMueXl0ZXh0Lmxlbmd0aCAtIGxlbik7XG4gICAgICAgIHRoaXMub2Zmc2V0IC09IGxlbjtcbiAgICAgICAgdmFyIG9sZExpbmVzID0gdGhpcy5tYXRjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLm1hdGNoID0gdGhpcy5tYXRjaC5zdWJzdHIoMCwgdGhpcy5tYXRjaC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gMSk7XG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyAtPSBsaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHZhciByID0gdGhpcy55eWxsb2MucmFuZ2U7XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyAobGluZXMubGVuZ3RoID09PSBvbGRMaW5lcy5sZW5ndGggPyB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gOiAwKSArIG9sZExpbmVzW29sZExpbmVzLmxlbmd0aCAtIGxpbmVzLmxlbmd0aF0ubGVuZ3RoIC0gbGluZXNbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIC0gbGVuXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbclswXSwgclswXSArIHRoaXMueXlsZW5nIC0gbGVuXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIGNhY2hlcyBtYXRjaGVkIHRleHQgYW5kIGFwcGVuZHMgaXQgb24gbmV4dCBhY3Rpb25cbiAgICAgIG1vcmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLl9tb3JlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIHNpZ25hbHMgdGhlIGxleGVyIHRoYXQgdGhpcyBydWxlIGZhaWxzIHRvIG1hdGNoIHRoZSBpbnB1dCwgc28gdGhlIG5leHQgbWF0Y2hpbmcgcnVsZSAocmVnZXgpIHNob3VsZCBiZSB0ZXN0ZWQgaW5zdGVhZC5cbiAgICAgIHJlamVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBZb3UgY2FuIG9ubHkgaW52b2tlIHJlamVjdCgpIGluIHRoZSBsZXhlciB3aGVuIHRoZSBsZXhlciBpcyBvZiB0aGUgYmFja3RyYWNraW5nIHBlcnN1YXNpb24gKG9wdGlvbnMuYmFja3RyYWNrX2xleGVyID0gdHJ1ZSkuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gcmV0YWluIGZpcnN0IG4gY2hhcmFjdGVycyBvZiB0aGUgbWF0Y2hcbiAgICAgIGxlc3M6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdGhpcy51bnB1dCh0aGlzLm1hdGNoLnNsaWNlKG4pKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyBhbHJlYWR5IG1hdGNoZWQgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBwYXN0SW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcGFzdCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIHRoaXMubWF0Y2gubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIChwYXN0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpICsgcGFzdC5zdWJzdHIoLTIwKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdXBjb21pbmcgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICB1cGNvbWluZ0lucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLm1hdGNoO1xuICAgICAgICBpZiAobmV4dC5sZW5ndGggPCAyMCkge1xuICAgICAgICAgIG5leHQgKz0gdGhpcy5faW5wdXQuc3Vic3RyKDAsIDIwIC0gbmV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAobmV4dC5zdWJzdHIoMCwgMjApICsgKG5leHQubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikpLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB0aGUgY2hhcmFjdGVyIHBvc2l0aW9uIHdoZXJlIHRoZSBsZXhpbmcgZXJyb3Igb2NjdXJyZWQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBzaG93UG9zaXRpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcHJlID0gdGhpcy5wYXN0SW5wdXQoKTtcbiAgICAgICAgdmFyIGMgPSBuZXcgQXJyYXkocHJlLmxlbmd0aCArIDEpLmpvaW4oXCItXCIpO1xuICAgICAgICByZXR1cm4gcHJlICsgdGhpcy51cGNvbWluZ0lucHV0KCkgKyBcIlxcblwiICsgYyArIFwiXlwiO1xuICAgICAgfSxcbiAgICAgIC8vIHRlc3QgdGhlIGxleGVkIHRva2VuOiByZXR1cm4gRkFMU0Ugd2hlbiBub3QgYSBtYXRjaCwgb3RoZXJ3aXNlIHJldHVybiB0b2tlblxuICAgICAgdGVzdF9tYXRjaDogZnVuY3Rpb24obWF0Y2gsIGluZGV4ZWRfcnVsZSkge1xuICAgICAgICB2YXIgdG9rZW4sIGxpbmVzLCBiYWNrdXA7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgYmFja3VwID0ge1xuICAgICAgICAgICAgeXlsaW5lbm86IHRoaXMueXlsaW5lbm8sXG4gICAgICAgICAgICB5eWxsb2M6IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHl5dGV4dDogdGhpcy55eXRleHQsXG4gICAgICAgICAgICBtYXRjaDogdGhpcy5tYXRjaCxcbiAgICAgICAgICAgIG1hdGNoZXM6IHRoaXMubWF0Y2hlcyxcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRoaXMubWF0Y2hlZCxcbiAgICAgICAgICAgIHl5bGVuZzogdGhpcy55eWxlbmcsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgX21vcmU6IHRoaXMuX21vcmUsXG4gICAgICAgICAgICBfaW5wdXQ6IHRoaXMuX2lucHV0LFxuICAgICAgICAgICAgeXk6IHRoaXMueXksXG4gICAgICAgICAgICBjb25kaXRpb25TdGFjazogdGhpcy5jb25kaXRpb25TdGFjay5zbGljZSgwKSxcbiAgICAgICAgICAgIGRvbmU6IHRoaXMuZG9uZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICAgIGJhY2t1cC55eWxsb2MucmFuZ2UgPSB0aGlzLnl5bGxvYy5yYW5nZS5zbGljZSgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMgPSBtYXRjaFswXS5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gKz0gbGluZXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmxhc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoIC0gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubWF0Y2goL1xccj9cXG4/LylbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4gKyBtYXRjaFswXS5sZW5ndGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2hlcyA9IG1hdGNoO1xuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFt0aGlzLm9mZnNldCwgdGhpcy5vZmZzZXQgKz0gdGhpcy55eWxlbmddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21vcmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UobWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IG1hdGNoWzBdO1xuICAgICAgICB0b2tlbiA9IHRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHRoaXMsIHRoaXMueXksIHRoaXMsIGluZGV4ZWRfcnVsZSwgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSAmJiB0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICBmb3IgKHZhciBrIGluIGJhY2t1cCkge1xuICAgICAgICAgICAgdGhpc1trXSA9IGJhY2t1cFtrXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCBpbiBpbnB1dFxuICAgICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmRvbmUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRva2VuLCBtYXRjaCwgdGVtcE1hdGNoLCBpbmRleDtcbiAgICAgICAgaWYgKCF0aGlzLl9tb3JlKSB7XG4gICAgICAgICAgdGhpcy55eXRleHQgPSBcIlwiO1xuICAgICAgICAgIHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBydWxlcyA9IHRoaXMuX2N1cnJlbnRSdWxlcygpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGVtcE1hdGNoID0gdGhpcy5faW5wdXQubWF0Y2godGhpcy5ydWxlc1tydWxlc1tpXV0pO1xuICAgICAgICAgIGlmICh0ZW1wTWF0Y2ggJiYgKCFtYXRjaCB8fCB0ZW1wTWF0Y2hbMF0ubGVuZ3RoID4gbWF0Y2hbMF0ubGVuZ3RoKSkge1xuICAgICAgICAgICAgbWF0Y2ggPSB0ZW1wTWF0Y2g7XG4gICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaCh0ZW1wTWF0Y2gsIHJ1bGVzW2ldKTtcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRpb25zLmZsZXgpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKG1hdGNoLCBydWxlc1tpbmRleF0pO1xuICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dCA9PT0gXCJcIikge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBVbnJlY29nbml6ZWQgdGV4dC5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIHRoYXQgaGFzIGEgdG9rZW5cbiAgICAgIGxleDogZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgciA9IHRoaXMubmV4dCgpO1xuICAgICAgICBpZiAocikge1xuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxleCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWN0aXZhdGVzIGEgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSAocHVzaGVzIHRoZSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9udG8gdGhlIGNvbmRpdGlvbiBzdGFjaylcbiAgICAgIGJlZ2luOiBmdW5jdGlvbiBiZWdpbihjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjay5wdXNoKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcG9wIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGUgb2ZmIHRoZSBjb25kaXRpb24gc3RhY2tcbiAgICAgIHBvcFN0YXRlOiBmdW5jdGlvbiBwb3BTdGF0ZSgpIHtcbiAgICAgICAgdmFyIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDE7XG4gICAgICAgIGlmIChuID4gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLnBvcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrWzBdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcHJvZHVjZSB0aGUgbGV4ZXIgcnVsZSBzZXQgd2hpY2ggaXMgYWN0aXZlIGZvciB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGVcbiAgICAgIF9jdXJyZW50UnVsZXM6IGZ1bmN0aW9uIF9jdXJyZW50UnVsZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAmJiB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW3RoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXV0ucnVsZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1tcIklOSVRJQUxcIl0ucnVsZXM7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlOyB3aGVuIGFuIGluZGV4IGFyZ3VtZW50IGlzIHByb3ZpZGVkIGl0IHByb2R1Y2VzIHRoZSBOLXRoIHByZXZpb3VzIGNvbmRpdGlvbiBzdGF0ZSwgaWYgYXZhaWxhYmxlXG4gICAgICB0b3BTdGF0ZTogZnVuY3Rpb24gdG9wU3RhdGUobikge1xuICAgICAgICBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxIC0gTWF0aC5hYnMobiB8fCAwKTtcbiAgICAgICAgaWYgKG4gPj0gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrW25dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBcIklOSVRJQUxcIjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFsaWFzIGZvciBiZWdpbihjb25kaXRpb24pXG4gICAgICBwdXNoU3RhdGU6IGZ1bmN0aW9uIHB1c2hTdGF0ZShjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5iZWdpbihjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXRlcyBjdXJyZW50bHkgb24gdGhlIHN0YWNrXG4gICAgICBzdGF0ZVN0YWNrU2l6ZTogZnVuY3Rpb24gc3RhdGVTdGFja1NpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aDtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7IFwiY2FzZS1pbnNlbnNpdGl2ZVwiOiB0cnVlIH0sXG4gICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXksIHl5XywgJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucywgWVlfU1RBUlQpIHtcbiAgICAgICAgc3dpdGNoICgkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zKSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIDk7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIFwic3BhY2VcIjtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gMTA7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgcmV0dXJuIDY7XG4gICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgcmV0dXJuIFwiVFhUXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczogWy9eKD86aW5mb1xcYikvaSwgL14oPzpbXFxzXFxuXFxyXSspL2ksIC9eKD86W1xcc10rKS9pLCAvXig/OnNob3dJbmZvXFxiKS9pLCAvXig/OiQpL2ksIC9eKD86LikvaV0sXG4gICAgICBjb25kaXRpb25zOiB7IFwiSU5JVElBTFwiOiB7IFwicnVsZXNcIjogWzAsIDEsIDIsIDMsIDQsIDVdLCBcImluY2x1c2l2ZVwiOiB0cnVlIH0gfVxuICAgIH07XG4gICAgcmV0dXJuIGxleGVyMjtcbiAgfSgpO1xuICBwYXJzZXIyLmxleGVyID0gbGV4ZXI7XG4gIGZ1bmN0aW9uIFBhcnNlcigpIHtcbiAgICB0aGlzLnl5ID0ge307XG4gIH1cbiAgUGFyc2VyLnByb3RvdHlwZSA9IHBhcnNlcjI7XG4gIHBhcnNlcjIuUGFyc2VyID0gUGFyc2VyO1xuICByZXR1cm4gbmV3IFBhcnNlcigpO1xufSgpO1xucGFyc2VyLnBhcnNlciA9IHBhcnNlcjtcbmNvbnN0IHBhcnNlciQxID0gcGFyc2VyO1xuY29uc3QgREVGQVVMVF9JTkZPX0RCID0ge1xuICBpbmZvOiBmYWxzZVxufTtcbmxldCBpbmZvID0gREVGQVVMVF9JTkZPX0RCLmluZm87XG5jb25zdCBzZXRJbmZvID0gKHRvZ2dsZSkgPT4ge1xuICBpbmZvID0gdG9nZ2xlO1xufTtcbmNvbnN0IGdldEluZm8gPSAoKSA9PiBpbmZvO1xuY29uc3QgY2xlYXIgPSAoKSA9PiB7XG4gIGluZm8gPSBERUZBVUxUX0lORk9fREIuaW5mbztcbn07XG5jb25zdCBkYiA9IHtcbiAgY2xlYXIsXG4gIHNldEluZm8sXG4gIGdldEluZm9cbn07XG5jb25zdCBkcmF3ID0gKHRleHQsIGlkLCB2ZXJzaW9uKSA9PiB7XG4gIGxvZy5kZWJ1ZyhcInJlbmRlcmluZyBpbmZvIGRpYWdyYW1cXG5cIiArIHRleHQpO1xuICBjb25zdCBzdmcgPSBzZWxlY3RTdmdFbGVtZW50KGlkKTtcbiAgY29uZmlndXJlU3ZnU2l6ZShzdmcsIDEwMCwgNDAwLCB0cnVlKTtcbiAgY29uc3QgZ3JvdXAgPSBzdmcuYXBwZW5kKFwiZ1wiKTtcbiAgZ3JvdXAuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwieFwiLCAxMDApLmF0dHIoXCJ5XCIsIDQwKS5hdHRyKFwiY2xhc3NcIiwgXCJ2ZXJzaW9uXCIpLmF0dHIoXCJmb250LXNpemVcIiwgMzIpLnN0eWxlKFwidGV4dC1hbmNob3JcIiwgXCJtaWRkbGVcIikudGV4dChgdiR7dmVyc2lvbn1gKTtcbn07XG5jb25zdCByZW5kZXJlciA9IHsgZHJhdyB9O1xuY29uc3QgZGlhZ3JhbSA9IHtcbiAgcGFyc2VyOiBwYXJzZXIkMSxcbiAgZGIsXG4gIHJlbmRlcmVyXG59O1xuZXhwb3J0IHtcbiAgZGlhZ3JhbVxufTtcbiIsCiAgICAiaW1wb3J0IHsgQiBhcyBkZWZhdWx0Q29uZmlnLCBxIGFzIHNldERpYWdyYW1UaXRsZSwgdCBhcyBnZXREaWFncmFtVGl0bGUsIHMgYXMgc2V0QWNjVGl0bGUsIGcgYXMgZ2V0QWNjVGl0bGUsIGIgYXMgc2V0QWNjRGVzY3JpcHRpb24sIGEgYXMgZ2V0QWNjRGVzY3JpcHRpb24sIHYgYXMgY2xlYXIkMSwgZCBhcyBzYW5pdGl6ZVRleHQsIGMgYXMgZ2V0Q29uZmlnJDEsIGwgYXMgbG9nLCBDIGFzIGNsZWFuQW5kTWVyZ2UsIEEgYXMgc2VsZWN0U3ZnRWxlbWVudCwgRCBhcyBwYXJzZUZvbnRTaXplLCBpIGFzIGNvbmZpZ3VyZVN2Z1NpemUgfSBmcm9tIFwiLi9tZXJtYWlkLTZkYzcyOTkxLmpzXCI7XG5pbXBvcnQgeyBhcmMsIHNjYWxlT3JkaW5hbCwgcGllIH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgXCJ0cy1kZWRlbnRcIjtcbmltcG9ydCBcImRheWpzXCI7XG5pbXBvcnQgXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IFwiZG9tcHVyaWZ5XCI7XG5pbXBvcnQgXCJraHJvbWFcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZW1vaXplLmpzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVyZ2UuanNcIjtcbmltcG9ydCBcInN0eWxpc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL2lzRW1wdHkuanNcIjtcbnZhciBwYXJzZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIG8gPSBmdW5jdGlvbihrLCB2LCBvMiwgbCkge1xuICAgIGZvciAobzIgPSBvMiB8fCB7fSwgbCA9IGsubGVuZ3RoOyBsLS07IG8yW2tbbF1dID0gdilcbiAgICAgIDtcbiAgICByZXR1cm4gbzI7XG4gIH0sICRWMCA9IFsxLCAzXSwgJFYxID0gWzEsIDRdLCAkVjIgPSBbMSwgNV0sICRWMyA9IFsxLCA2XSwgJFY0ID0gWzEsIDEwLCAxMiwgMTQsIDE2LCAxOCwgMTksIDIwLCAyMSwgMjJdLCAkVjUgPSBbMiwgNF0sICRWNiA9IFsxLCA1LCAxMCwgMTIsIDE0LCAxNiwgMTgsIDE5LCAyMCwgMjEsIDIyXSwgJFY3ID0gWzIwLCAyMSwgMjJdLCAkVjggPSBbMiwgN10sICRWOSA9IFsxLCAxMl0sICRWYSA9IFsxLCAxM10sICRWYiA9IFsxLCAxNF0sICRWYyA9IFsxLCAxNV0sICRWZCA9IFsxLCAxNl0sICRWZSA9IFsxLCAxN107XG4gIHZhciBwYXJzZXIyID0ge1xuICAgIHRyYWNlOiBmdW5jdGlvbiB0cmFjZSgpIHtcbiAgICB9LFxuICAgIHl5OiB7fSxcbiAgICBzeW1ib2xzXzogeyBcImVycm9yXCI6IDIsIFwic3RhcnRcIjogMywgXCJlb2xcIjogNCwgXCJQSUVcIjogNSwgXCJkb2N1bWVudFwiOiA2LCBcInNob3dEYXRhXCI6IDcsIFwibGluZVwiOiA4LCBcInN0YXRlbWVudFwiOiA5LCBcInR4dFwiOiAxMCwgXCJ2YWx1ZVwiOiAxMSwgXCJ0aXRsZVwiOiAxMiwgXCJ0aXRsZV92YWx1ZVwiOiAxMywgXCJhY2NfdGl0bGVcIjogMTQsIFwiYWNjX3RpdGxlX3ZhbHVlXCI6IDE1LCBcImFjY19kZXNjclwiOiAxNiwgXCJhY2NfZGVzY3JfdmFsdWVcIjogMTcsIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiOiAxOCwgXCJzZWN0aW9uXCI6IDE5LCBcIk5FV0xJTkVcIjogMjAsIFwiO1wiOiAyMSwgXCJFT0ZcIjogMjIsIFwiJGFjY2VwdFwiOiAwLCBcIiRlbmRcIjogMSB9LFxuICAgIHRlcm1pbmFsc186IHsgMjogXCJlcnJvclwiLCA1OiBcIlBJRVwiLCA3OiBcInNob3dEYXRhXCIsIDEwOiBcInR4dFwiLCAxMTogXCJ2YWx1ZVwiLCAxMjogXCJ0aXRsZVwiLCAxMzogXCJ0aXRsZV92YWx1ZVwiLCAxNDogXCJhY2NfdGl0bGVcIiwgMTU6IFwiYWNjX3RpdGxlX3ZhbHVlXCIsIDE2OiBcImFjY19kZXNjclwiLCAxNzogXCJhY2NfZGVzY3JfdmFsdWVcIiwgMTg6IFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiLCAxOTogXCJzZWN0aW9uXCIsIDIwOiBcIk5FV0xJTkVcIiwgMjE6IFwiO1wiLCAyMjogXCJFT0ZcIiB9LFxuICAgIHByb2R1Y3Rpb25zXzogWzAsIFszLCAyXSwgWzMsIDJdLCBbMywgM10sIFs2LCAwXSwgWzYsIDJdLCBbOCwgMl0sIFs5LCAwXSwgWzksIDJdLCBbOSwgMl0sIFs5LCAyXSwgWzksIDJdLCBbOSwgMV0sIFs5LCAxXSwgWzQsIDFdLCBbNCwgMV0sIFs0LCAxXV0sXG4gICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5dGV4dCwgeXlsZW5nLCB5eWxpbmVubywgeXksIHl5c3RhdGUsICQkLCBfJCkge1xuICAgICAgdmFyICQwID0gJCQubGVuZ3RoIC0gMTtcbiAgICAgIHN3aXRjaCAoeXlzdGF0ZSkge1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgeXkuc2V0U2hvd0RhdGEodHJ1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgeXkuYWRkU2VjdGlvbigkJFskMCAtIDFdLCB5eS5jbGVhbnVwVmFsdWUoJCRbJDBdKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0udHJpbSgpO1xuICAgICAgICAgIHl5LnNldERpYWdyYW1UaXRsZSh0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS50cmltKCk7XG4gICAgICAgICAgeXkuc2V0QWNjVGl0bGUodGhpcy4kKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0udHJpbSgpO1xuICAgICAgICAgIHl5LnNldEFjY0Rlc2NyaXB0aW9uKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgeXkuYWRkU2VjdGlvbigkJFskMF0uc3Vic3RyKDgpKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0uc3Vic3RyKDgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgdGFibGU6IFt7IDM6IDEsIDQ6IDIsIDU6ICRWMCwgMjA6ICRWMSwgMjE6ICRWMiwgMjI6ICRWMyB9LCB7IDE6IFszXSB9LCB7IDM6IDcsIDQ6IDIsIDU6ICRWMCwgMjA6ICRWMSwgMjE6ICRWMiwgMjI6ICRWMyB9LCBvKCRWNCwgJFY1LCB7IDY6IDgsIDc6IFsxLCA5XSB9KSwgbygkVjYsIFsyLCAxNF0pLCBvKCRWNiwgWzIsIDE1XSksIG8oJFY2LCBbMiwgMTZdKSwgeyAxOiBbMiwgMV0gfSwgbygkVjcsICRWOCwgeyA4OiAxMCwgOTogMTEsIDE6IFsyLCAyXSwgMTA6ICRWOSwgMTI6ICRWYSwgMTQ6ICRWYiwgMTY6ICRWYywgMTg6ICRWZCwgMTk6ICRWZSB9KSwgbygkVjQsICRWNSwgeyA2OiAxOCB9KSwgbygkVjQsIFsyLCA1XSksIHsgNDogMTksIDIwOiAkVjEsIDIxOiAkVjIsIDIyOiAkVjMgfSwgeyAxMTogWzEsIDIwXSB9LCB7IDEzOiBbMSwgMjFdIH0sIHsgMTU6IFsxLCAyMl0gfSwgeyAxNzogWzEsIDIzXSB9LCBvKCRWNywgWzIsIDEyXSksIG8oJFY3LCBbMiwgMTNdKSwgbygkVjcsICRWOCwgeyA4OiAxMCwgOTogMTEsIDE6IFsyLCAzXSwgMTA6ICRWOSwgMTI6ICRWYSwgMTQ6ICRWYiwgMTY6ICRWYywgMTg6ICRWZCwgMTk6ICRWZSB9KSwgbygkVjQsIFsyLCA2XSksIG8oJFY3LCBbMiwgOF0pLCBvKCRWNywgWzIsIDldKSwgbygkVjcsIFsyLCAxMF0pLCBvKCRWNywgWzIsIDExXSldLFxuICAgIGRlZmF1bHRBY3Rpb25zOiB7IDc6IFsyLCAxXSB9LFxuICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICBpZiAoaGFzaC5yZWNvdmVyYWJsZSkge1xuICAgICAgICB0aGlzLnRyYWNlKHN0cik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgZXJyb3IuaGFzaCA9IGhhc2g7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0sXG4gICAgcGFyc2U6IGZ1bmN0aW9uIHBhcnNlKGlucHV0KSB7XG4gICAgICB2YXIgc2VsZiA9IHRoaXMsIHN0YWNrID0gWzBdLCB0c3RhY2sgPSBbXSwgdnN0YWNrID0gW251bGxdLCBsc3RhY2sgPSBbXSwgdGFibGUgPSB0aGlzLnRhYmxlLCB5eXRleHQgPSBcIlwiLCB5eWxpbmVubyA9IDAsIHl5bGVuZyA9IDAsIFRFUlJPUiA9IDIsIEVPRiA9IDE7XG4gICAgICB2YXIgYXJncyA9IGxzdGFjay5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICB2YXIgbGV4ZXIyID0gT2JqZWN0LmNyZWF0ZSh0aGlzLmxleGVyKTtcbiAgICAgIHZhciBzaGFyZWRTdGF0ZSA9IHsgeXk6IHt9IH07XG4gICAgICBmb3IgKHZhciBrIGluIHRoaXMueXkpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLnl5LCBrKSkge1xuICAgICAgICAgIHNoYXJlZFN0YXRlLnl5W2tdID0gdGhpcy55eVtrXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV4ZXIyLnNldElucHV0KGlucHV0LCBzaGFyZWRTdGF0ZS55eSk7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5sZXhlciA9IGxleGVyMjtcbiAgICAgIHNoYXJlZFN0YXRlLnl5LnBhcnNlciA9IHRoaXM7XG4gICAgICBpZiAodHlwZW9mIGxleGVyMi55eWxsb2MgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBsZXhlcjIueXlsbG9jID0ge307XG4gICAgICB9XG4gICAgICB2YXIgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgbHN0YWNrLnB1c2goeXlsb2MpO1xuICAgICAgdmFyIHJhbmdlcyA9IGxleGVyMi5vcHRpb25zICYmIGxleGVyMi5vcHRpb25zLnJhbmdlcztcbiAgICAgIGlmICh0eXBlb2Ygc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRoaXMucGFyc2VFcnJvciA9IHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3I7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykucGFyc2VFcnJvcjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHRva2VuO1xuICAgICAgICB0b2tlbiA9IHRzdGFjay5wb3AoKSB8fCBsZXhlcjIubGV4KCkgfHwgRU9GO1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgaWYgKHRva2VuIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIHRzdGFjayA9IHRva2VuO1xuICAgICAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRva2VuID0gc2VsZi5zeW1ib2xzX1t0b2tlbl0gfHwgdG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgfVxuICAgICAgdmFyIHN5bWJvbCwgc3RhdGUsIGFjdGlvbiwgciwgeXl2YWwgPSB7fSwgcCwgbGVuLCBuZXdTdGF0ZSwgZXhwZWN0ZWQ7XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBzdGF0ZSA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV0pIHtcbiAgICAgICAgICBhY3Rpb24gPSB0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc3ltYm9sID09PSBudWxsIHx8IHR5cGVvZiBzeW1ib2wgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgc3ltYm9sID0gbGV4KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjdGlvbiA9IHRhYmxlW3N0YXRlXSAmJiB0YWJsZVtzdGF0ZV1bc3ltYm9sXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhYWN0aW9uLmxlbmd0aCB8fCAhYWN0aW9uWzBdKSB7XG4gICAgICAgICAgdmFyIGVyclN0ciA9IFwiXCI7XG4gICAgICAgICAgZXhwZWN0ZWQgPSBbXTtcbiAgICAgICAgICBmb3IgKHAgaW4gdGFibGVbc3RhdGVdKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50ZXJtaW5hbHNfW3BdICYmIHAgPiBURVJST1IpIHtcbiAgICAgICAgICAgICAgZXhwZWN0ZWQucHVzaChcIidcIiArIHRoaXMudGVybWluYWxzX1twXSArIFwiJ1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGxleGVyMi5zaG93UG9zaXRpb24pIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6XFxuXCIgKyBsZXhlcjIuc2hvd1Bvc2l0aW9uKCkgKyBcIlxcbkV4cGVjdGluZyBcIiArIGV4cGVjdGVkLmpvaW4oXCIsIFwiKSArIFwiLCBnb3QgJ1wiICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyBcIidcIjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjogVW5leHBlY3RlZCBcIiArIChzeW1ib2wgPT0gRU9GID8gXCJlbmQgb2YgaW5wdXRcIiA6IFwiJ1wiICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyBcIidcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucGFyc2VFcnJvcihlcnJTdHIsIHtcbiAgICAgICAgICAgIHRleHQ6IGxleGVyMi5tYXRjaCxcbiAgICAgICAgICAgIHRva2VuOiB0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wsXG4gICAgICAgICAgICBsaW5lOiBsZXhlcjIueXlsaW5lbm8sXG4gICAgICAgICAgICBsb2M6IHl5bG9jLFxuICAgICAgICAgICAgZXhwZWN0ZWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uWzBdIGluc3RhbmNlb2YgQXJyYXkgJiYgYWN0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXJzZSBFcnJvcjogbXVsdGlwbGUgYWN0aW9ucyBwb3NzaWJsZSBhdCBzdGF0ZTogXCIgKyBzdGF0ZSArIFwiLCB0b2tlbjogXCIgKyBzeW1ib2wpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uWzBdKSB7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgc3RhY2sucHVzaChzeW1ib2wpO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2gobGV4ZXIyLnl5dGV4dCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaChsZXhlcjIueXlsbG9jKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goYWN0aW9uWzFdKTtcbiAgICAgICAgICAgIHN5bWJvbCA9IG51bGw7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHl5bGVuZyA9IGxleGVyMi55eWxlbmc7XG4gICAgICAgICAgICAgIHl5dGV4dCA9IGxleGVyMi55eXRleHQ7XG4gICAgICAgICAgICAgIHl5bGluZW5vID0gbGV4ZXIyLnl5bGluZW5vO1xuICAgICAgICAgICAgICB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICBsZW4gPSB0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzFdO1xuICAgICAgICAgICAgeXl2YWwuJCA9IHZzdGFja1t2c3RhY2subGVuZ3RoIC0gbGVuXTtcbiAgICAgICAgICAgIHl5dmFsLl8kID0ge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJhbmdlcykge1xuICAgICAgICAgICAgICB5eXZhbC5fJC5yYW5nZSA9IFtcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLnJhbmdlWzBdLFxuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ucmFuZ2VbMV1cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHIgPSB0aGlzLnBlcmZvcm1BY3Rpb24uYXBwbHkoeXl2YWwsIFtcbiAgICAgICAgICAgICAgeXl0ZXh0LFxuICAgICAgICAgICAgICB5eWxlbmcsXG4gICAgICAgICAgICAgIHl5bGluZW5vLFxuICAgICAgICAgICAgICBzaGFyZWRTdGF0ZS55eSxcbiAgICAgICAgICAgICAgYWN0aW9uWzFdLFxuICAgICAgICAgICAgICB2c3RhY2ssXG4gICAgICAgICAgICAgIGxzdGFja1xuICAgICAgICAgICAgXS5jb25jYXQoYXJncykpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlbikge1xuICAgICAgICAgICAgICBzdGFjayA9IHN0YWNrLnNsaWNlKDAsIC0xICogbGVuICogMik7XG4gICAgICAgICAgICAgIHZzdGFjayA9IHZzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICAgIGxzdGFjayA9IGxzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFjay5wdXNoKHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMF0pO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2goeXl2YWwuJCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaCh5eXZhbC5fJCk7XG4gICAgICAgICAgICBuZXdTdGF0ZSA9IHRhYmxlW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDJdXVtzdGFja1tzdGFjay5sZW5ndGggLSAxXV07XG4gICAgICAgICAgICBzdGFjay5wdXNoKG5ld1N0YXRlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH07XG4gIHZhciBsZXhlciA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBsZXhlcjIgPSB7XG4gICAgICBFT0Y6IDEsXG4gICAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgICBpZiAodGhpcy55eS5wYXJzZXIpIHtcbiAgICAgICAgICB0aGlzLnl5LnBhcnNlci5wYXJzZUVycm9yKHN0ciwgaGFzaCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHN0cik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXNldHMgdGhlIGxleGVyLCBzZXRzIG5ldyBpbnB1dFxuICAgICAgc2V0SW5wdXQ6IGZ1bmN0aW9uKGlucHV0LCB5eSkge1xuICAgICAgICB0aGlzLnl5ID0geXkgfHwgdGhpcy55eSB8fCB7fTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRoaXMuX2JhY2t0cmFjayA9IHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnl5bGluZW5vID0gdGhpcy55eWxlbmcgPSAwO1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrID0gW1wiSU5JVElBTFwiXTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IDAsXG4gICAgICAgICAgbGFzdF9saW5lOiAxLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiAwXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbMCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBjb25zdW1lcyBhbmQgcmV0dXJucyBvbmUgY2hhciBmcm9tIHRoZSBpbnB1dFxuICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY2ggPSB0aGlzLl9pbnB1dFswXTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gY2g7XG4gICAgICAgIHRoaXMueXlsZW5nKys7XG4gICAgICAgIHRoaXMub2Zmc2V0Kys7XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gY2g7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBjaDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2gubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vKys7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9saW5lKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9jb2x1bW4rKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlWzFdKys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZSgxKTtcbiAgICAgICAgcmV0dXJuIGNoO1xuICAgICAgfSxcbiAgICAgIC8vIHVuc2hpZnRzIG9uZSBjaGFyIChvciBhIHN0cmluZykgaW50byB0aGUgaW5wdXRcbiAgICAgIHVucHV0OiBmdW5jdGlvbihjaCkge1xuICAgICAgICB2YXIgbGVuID0gY2gubGVuZ3RoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGNoICsgdGhpcy5faW5wdXQ7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy55eXRleHQuc3Vic3RyKDAsIHRoaXMueXl0ZXh0Lmxlbmd0aCAtIGxlbik7XG4gICAgICAgIHRoaXMub2Zmc2V0IC09IGxlbjtcbiAgICAgICAgdmFyIG9sZExpbmVzID0gdGhpcy5tYXRjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLm1hdGNoID0gdGhpcy5tYXRjaC5zdWJzdHIoMCwgdGhpcy5tYXRjaC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gMSk7XG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyAtPSBsaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHZhciByID0gdGhpcy55eWxsb2MucmFuZ2U7XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyAobGluZXMubGVuZ3RoID09PSBvbGRMaW5lcy5sZW5ndGggPyB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gOiAwKSArIG9sZExpbmVzW29sZExpbmVzLmxlbmd0aCAtIGxpbmVzLmxlbmd0aF0ubGVuZ3RoIC0gbGluZXNbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIC0gbGVuXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbclswXSwgclswXSArIHRoaXMueXlsZW5nIC0gbGVuXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIGNhY2hlcyBtYXRjaGVkIHRleHQgYW5kIGFwcGVuZHMgaXQgb24gbmV4dCBhY3Rpb25cbiAgICAgIG1vcmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLl9tb3JlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIHNpZ25hbHMgdGhlIGxleGVyIHRoYXQgdGhpcyBydWxlIGZhaWxzIHRvIG1hdGNoIHRoZSBpbnB1dCwgc28gdGhlIG5leHQgbWF0Y2hpbmcgcnVsZSAocmVnZXgpIHNob3VsZCBiZSB0ZXN0ZWQgaW5zdGVhZC5cbiAgICAgIHJlamVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBZb3UgY2FuIG9ubHkgaW52b2tlIHJlamVjdCgpIGluIHRoZSBsZXhlciB3aGVuIHRoZSBsZXhlciBpcyBvZiB0aGUgYmFja3RyYWNraW5nIHBlcnN1YXNpb24gKG9wdGlvbnMuYmFja3RyYWNrX2xleGVyID0gdHJ1ZSkuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gcmV0YWluIGZpcnN0IG4gY2hhcmFjdGVycyBvZiB0aGUgbWF0Y2hcbiAgICAgIGxlc3M6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdGhpcy51bnB1dCh0aGlzLm1hdGNoLnNsaWNlKG4pKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyBhbHJlYWR5IG1hdGNoZWQgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBwYXN0SW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcGFzdCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIHRoaXMubWF0Y2gubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIChwYXN0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpICsgcGFzdC5zdWJzdHIoLTIwKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdXBjb21pbmcgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICB1cGNvbWluZ0lucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLm1hdGNoO1xuICAgICAgICBpZiAobmV4dC5sZW5ndGggPCAyMCkge1xuICAgICAgICAgIG5leHQgKz0gdGhpcy5faW5wdXQuc3Vic3RyKDAsIDIwIC0gbmV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAobmV4dC5zdWJzdHIoMCwgMjApICsgKG5leHQubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikpLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB0aGUgY2hhcmFjdGVyIHBvc2l0aW9uIHdoZXJlIHRoZSBsZXhpbmcgZXJyb3Igb2NjdXJyZWQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBzaG93UG9zaXRpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcHJlID0gdGhpcy5wYXN0SW5wdXQoKTtcbiAgICAgICAgdmFyIGMgPSBuZXcgQXJyYXkocHJlLmxlbmd0aCArIDEpLmpvaW4oXCItXCIpO1xuICAgICAgICByZXR1cm4gcHJlICsgdGhpcy51cGNvbWluZ0lucHV0KCkgKyBcIlxcblwiICsgYyArIFwiXlwiO1xuICAgICAgfSxcbiAgICAgIC8vIHRlc3QgdGhlIGxleGVkIHRva2VuOiByZXR1cm4gRkFMU0Ugd2hlbiBub3QgYSBtYXRjaCwgb3RoZXJ3aXNlIHJldHVybiB0b2tlblxuICAgICAgdGVzdF9tYXRjaDogZnVuY3Rpb24obWF0Y2gsIGluZGV4ZWRfcnVsZSkge1xuICAgICAgICB2YXIgdG9rZW4sIGxpbmVzLCBiYWNrdXA7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgYmFja3VwID0ge1xuICAgICAgICAgICAgeXlsaW5lbm86IHRoaXMueXlsaW5lbm8sXG4gICAgICAgICAgICB5eWxsb2M6IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHl5dGV4dDogdGhpcy55eXRleHQsXG4gICAgICAgICAgICBtYXRjaDogdGhpcy5tYXRjaCxcbiAgICAgICAgICAgIG1hdGNoZXM6IHRoaXMubWF0Y2hlcyxcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRoaXMubWF0Y2hlZCxcbiAgICAgICAgICAgIHl5bGVuZzogdGhpcy55eWxlbmcsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgX21vcmU6IHRoaXMuX21vcmUsXG4gICAgICAgICAgICBfaW5wdXQ6IHRoaXMuX2lucHV0LFxuICAgICAgICAgICAgeXk6IHRoaXMueXksXG4gICAgICAgICAgICBjb25kaXRpb25TdGFjazogdGhpcy5jb25kaXRpb25TdGFjay5zbGljZSgwKSxcbiAgICAgICAgICAgIGRvbmU6IHRoaXMuZG9uZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICAgIGJhY2t1cC55eWxsb2MucmFuZ2UgPSB0aGlzLnl5bGxvYy5yYW5nZS5zbGljZSgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMgPSBtYXRjaFswXS5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gKz0gbGluZXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmxhc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoIC0gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubWF0Y2goL1xccj9cXG4/LylbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4gKyBtYXRjaFswXS5sZW5ndGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2hlcyA9IG1hdGNoO1xuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFt0aGlzLm9mZnNldCwgdGhpcy5vZmZzZXQgKz0gdGhpcy55eWxlbmddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21vcmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UobWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IG1hdGNoWzBdO1xuICAgICAgICB0b2tlbiA9IHRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHRoaXMsIHRoaXMueXksIHRoaXMsIGluZGV4ZWRfcnVsZSwgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSAmJiB0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICBmb3IgKHZhciBrIGluIGJhY2t1cCkge1xuICAgICAgICAgICAgdGhpc1trXSA9IGJhY2t1cFtrXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCBpbiBpbnB1dFxuICAgICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmRvbmUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRva2VuLCBtYXRjaCwgdGVtcE1hdGNoLCBpbmRleDtcbiAgICAgICAgaWYgKCF0aGlzLl9tb3JlKSB7XG4gICAgICAgICAgdGhpcy55eXRleHQgPSBcIlwiO1xuICAgICAgICAgIHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBydWxlcyA9IHRoaXMuX2N1cnJlbnRSdWxlcygpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGVtcE1hdGNoID0gdGhpcy5faW5wdXQubWF0Y2godGhpcy5ydWxlc1tydWxlc1tpXV0pO1xuICAgICAgICAgIGlmICh0ZW1wTWF0Y2ggJiYgKCFtYXRjaCB8fCB0ZW1wTWF0Y2hbMF0ubGVuZ3RoID4gbWF0Y2hbMF0ubGVuZ3RoKSkge1xuICAgICAgICAgICAgbWF0Y2ggPSB0ZW1wTWF0Y2g7XG4gICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaCh0ZW1wTWF0Y2gsIHJ1bGVzW2ldKTtcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRpb25zLmZsZXgpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKG1hdGNoLCBydWxlc1tpbmRleF0pO1xuICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dCA9PT0gXCJcIikge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBVbnJlY29nbml6ZWQgdGV4dC5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIHRoYXQgaGFzIGEgdG9rZW5cbiAgICAgIGxleDogZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgciA9IHRoaXMubmV4dCgpO1xuICAgICAgICBpZiAocikge1xuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxleCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWN0aXZhdGVzIGEgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSAocHVzaGVzIHRoZSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9udG8gdGhlIGNvbmRpdGlvbiBzdGFjaylcbiAgICAgIGJlZ2luOiBmdW5jdGlvbiBiZWdpbihjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjay5wdXNoKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcG9wIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGUgb2ZmIHRoZSBjb25kaXRpb24gc3RhY2tcbiAgICAgIHBvcFN0YXRlOiBmdW5jdGlvbiBwb3BTdGF0ZSgpIHtcbiAgICAgICAgdmFyIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDE7XG4gICAgICAgIGlmIChuID4gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLnBvcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrWzBdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcHJvZHVjZSB0aGUgbGV4ZXIgcnVsZSBzZXQgd2hpY2ggaXMgYWN0aXZlIGZvciB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGVcbiAgICAgIF9jdXJyZW50UnVsZXM6IGZ1bmN0aW9uIF9jdXJyZW50UnVsZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAmJiB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW3RoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXV0ucnVsZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1tcIklOSVRJQUxcIl0ucnVsZXM7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlOyB3aGVuIGFuIGluZGV4IGFyZ3VtZW50IGlzIHByb3ZpZGVkIGl0IHByb2R1Y2VzIHRoZSBOLXRoIHByZXZpb3VzIGNvbmRpdGlvbiBzdGF0ZSwgaWYgYXZhaWxhYmxlXG4gICAgICB0b3BTdGF0ZTogZnVuY3Rpb24gdG9wU3RhdGUobikge1xuICAgICAgICBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxIC0gTWF0aC5hYnMobiB8fCAwKTtcbiAgICAgICAgaWYgKG4gPj0gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrW25dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBcIklOSVRJQUxcIjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFsaWFzIGZvciBiZWdpbihjb25kaXRpb24pXG4gICAgICBwdXNoU3RhdGU6IGZ1bmN0aW9uIHB1c2hTdGF0ZShjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5iZWdpbihjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXRlcyBjdXJyZW50bHkgb24gdGhlIHN0YWNrXG4gICAgICBzdGF0ZVN0YWNrU2l6ZTogZnVuY3Rpb24gc3RhdGVTdGFja1NpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aDtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7IFwiY2FzZS1pbnNlbnNpdGl2ZVwiOiB0cnVlIH0sXG4gICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXksIHl5XywgJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucywgWVlfU1RBUlQpIHtcbiAgICAgICAgc3dpdGNoICgkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zKSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIDIwO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJ0aXRsZVwiKTtcbiAgICAgICAgICAgIHJldHVybiAxMjtcbiAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJ0aXRsZV92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfdGl0bGVcIik7XG4gICAgICAgICAgICByZXR1cm4gMTQ7XG4gICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX3RpdGxlX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSA5OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjclwiKTtcbiAgICAgICAgICAgIHJldHVybiAxNjtcbiAgICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX2Rlc2NyX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJzdHJpbmdcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgIHJldHVybiBcInR4dFwiO1xuICAgICAgICAgIGNhc2UgMTc6XG4gICAgICAgICAgICByZXR1cm4gNTtcbiAgICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgICAgcmV0dXJuIDc7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIHJldHVybiBcInZhbHVlXCI7XG4gICAgICAgICAgY2FzZSAyMDpcbiAgICAgICAgICAgIHJldHVybiAyMjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiBbL14oPzolJSg/IVxceylbXlxcbl0qKS9pLCAvXig/OlteXFx9XSUlW15cXG5dKikvaSwgL14oPzpbXFxuXFxyXSspL2ksIC9eKD86JSVbXlxcbl0qKS9pLCAvXig/OltcXHNdKykvaSwgL14oPzp0aXRsZVxcYikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NUaXRsZVxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccypcXHtcXHMqKS9pLCAvXig/OltcXH1dKS9pLCAvXig/OlteXFx9XSopL2ksIC9eKD86W1wiXSkvaSwgL14oPzpbXCJdKS9pLCAvXig/OlteXCJdKikvaSwgL14oPzpwaWVcXGIpL2ksIC9eKD86c2hvd0RhdGFcXGIpL2ksIC9eKD86OltcXHNdKltcXGRdKyg/OlxcLltcXGRdKyk/KS9pLCAvXig/OiQpL2ldLFxuICAgICAgY29uZGl0aW9uczogeyBcImFjY19kZXNjcl9tdWx0aWxpbmVcIjogeyBcInJ1bGVzXCI6IFsxMiwgMTNdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY19kZXNjclwiOiB7IFwicnVsZXNcIjogWzEwXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfdGl0bGVcIjogeyBcInJ1bGVzXCI6IFs4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJ0aXRsZVwiOiB7IFwicnVsZXNcIjogWzZdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInN0cmluZ1wiOiB7IFwicnVsZXNcIjogWzE1LCAxNl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiSU5JVElBTFwiOiB7IFwicnVsZXNcIjogWzAsIDEsIDIsIDMsIDQsIDUsIDcsIDksIDExLCAxNCwgMTcsIDE4LCAxOSwgMjBdLCBcImluY2x1c2l2ZVwiOiB0cnVlIH0gfVxuICAgIH07XG4gICAgcmV0dXJuIGxleGVyMjtcbiAgfSgpO1xuICBwYXJzZXIyLmxleGVyID0gbGV4ZXI7XG4gIGZ1bmN0aW9uIFBhcnNlcigpIHtcbiAgICB0aGlzLnl5ID0ge307XG4gIH1cbiAgUGFyc2VyLnByb3RvdHlwZSA9IHBhcnNlcjI7XG4gIHBhcnNlcjIuUGFyc2VyID0gUGFyc2VyO1xuICByZXR1cm4gbmV3IFBhcnNlcigpO1xufSgpO1xucGFyc2VyLnBhcnNlciA9IHBhcnNlcjtcbmNvbnN0IHBhcnNlciQxID0gcGFyc2VyO1xuY29uc3QgREVGQVVMVF9QSUVfQ09ORklHID0gZGVmYXVsdENvbmZpZy5waWU7XG5jb25zdCBERUZBVUxUX1BJRV9EQiA9IHtcbiAgc2VjdGlvbnM6IHt9LFxuICBzaG93RGF0YTogZmFsc2UsXG4gIGNvbmZpZzogREVGQVVMVF9QSUVfQ09ORklHXG59O1xubGV0IHNlY3Rpb25zID0gREVGQVVMVF9QSUVfREIuc2VjdGlvbnM7XG5sZXQgc2hvd0RhdGEgPSBERUZBVUxUX1BJRV9EQi5zaG93RGF0YTtcbmNvbnN0IGNvbmZpZyA9IHN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1BJRV9DT05GSUcpO1xuY29uc3QgZ2V0Q29uZmlnID0gKCkgPT4gc3RydWN0dXJlZENsb25lKGNvbmZpZyk7XG5jb25zdCBjbGVhciA9ICgpID0+IHtcbiAgc2VjdGlvbnMgPSBzdHJ1Y3R1cmVkQ2xvbmUoREVGQVVMVF9QSUVfREIuc2VjdGlvbnMpO1xuICBzaG93RGF0YSA9IERFRkFVTFRfUElFX0RCLnNob3dEYXRhO1xuICBjbGVhciQxKCk7XG59O1xuY29uc3QgYWRkU2VjdGlvbiA9IChsYWJlbCwgdmFsdWUpID0+IHtcbiAgbGFiZWwgPSBzYW5pdGl6ZVRleHQobGFiZWwsIGdldENvbmZpZyQxKCkpO1xuICBpZiAoc2VjdGlvbnNbbGFiZWxdID09PSB2b2lkIDApIHtcbiAgICBzZWN0aW9uc1tsYWJlbF0gPSB2YWx1ZTtcbiAgICBsb2cuZGVidWcoYGFkZGVkIG5ldyBzZWN0aW9uOiAke2xhYmVsfSwgd2l0aCB2YWx1ZTogJHt2YWx1ZX1gKTtcbiAgfVxufTtcbmNvbnN0IGdldFNlY3Rpb25zID0gKCkgPT4gc2VjdGlvbnM7XG5jb25zdCBjbGVhbnVwVmFsdWUgPSAodmFsdWUpID0+IHtcbiAgaWYgKHZhbHVlLnN1YnN0cmluZygwLCAxKSA9PT0gXCI6XCIpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygxKS50cmltKCk7XG4gIH1cbiAgcmV0dXJuIE51bWJlcih2YWx1ZS50cmltKCkpO1xufTtcbmNvbnN0IHNldFNob3dEYXRhID0gKHRvZ2dsZSkgPT4ge1xuICBzaG93RGF0YSA9IHRvZ2dsZTtcbn07XG5jb25zdCBnZXRTaG93RGF0YSA9ICgpID0+IHNob3dEYXRhO1xuY29uc3QgZGIgPSB7XG4gIGdldENvbmZpZyxcbiAgY2xlYXIsXG4gIHNldERpYWdyYW1UaXRsZSxcbiAgZ2V0RGlhZ3JhbVRpdGxlLFxuICBzZXRBY2NUaXRsZSxcbiAgZ2V0QWNjVGl0bGUsXG4gIHNldEFjY0Rlc2NyaXB0aW9uLFxuICBnZXRBY2NEZXNjcmlwdGlvbixcbiAgYWRkU2VjdGlvbixcbiAgZ2V0U2VjdGlvbnMsXG4gIGNsZWFudXBWYWx1ZSxcbiAgc2V0U2hvd0RhdGEsXG4gIGdldFNob3dEYXRhXG59O1xuY29uc3QgZ2V0U3R5bGVzID0gKG9wdGlvbnMpID0+IGBcbiAgLnBpZUNpcmNsZXtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5waWVTdHJva2VDb2xvcn07XG4gICAgc3Ryb2tlLXdpZHRoIDogJHtvcHRpb25zLnBpZVN0cm9rZVdpZHRofTtcbiAgICBvcGFjaXR5IDogJHtvcHRpb25zLnBpZU9wYWNpdHl9O1xuICB9XG4gIC5waWVPdXRlckNpcmNsZXtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5waWVPdXRlclN0cm9rZUNvbG9yfTtcbiAgICBzdHJva2Utd2lkdGg6ICR7b3B0aW9ucy5waWVPdXRlclN0cm9rZVdpZHRofTtcbiAgICBmaWxsOiBub25lO1xuICB9XG4gIC5waWVUaXRsZVRleHQge1xuICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiAke29wdGlvbnMucGllVGl0bGVUZXh0U2l6ZX07XG4gICAgZmlsbDogJHtvcHRpb25zLnBpZVRpdGxlVGV4dENvbG9yfTtcbiAgICBmb250LWZhbWlseTogJHtvcHRpb25zLmZvbnRGYW1pbHl9O1xuICB9XG4gIC5zbGljZSB7XG4gICAgZm9udC1mYW1pbHk6ICR7b3B0aW9ucy5mb250RmFtaWx5fTtcbiAgICBmaWxsOiAke29wdGlvbnMucGllU2VjdGlvblRleHRDb2xvcn07XG4gICAgZm9udC1zaXplOiR7b3B0aW9ucy5waWVTZWN0aW9uVGV4dFNpemV9O1xuICAgIC8vIGZpbGw6IHdoaXRlO1xuICB9XG4gIC5sZWdlbmQgdGV4dCB7XG4gICAgZmlsbDogJHtvcHRpb25zLnBpZUxlZ2VuZFRleHRDb2xvcn07XG4gICAgZm9udC1mYW1pbHk6ICR7b3B0aW9ucy5mb250RmFtaWx5fTtcbiAgICBmb250LXNpemU6ICR7b3B0aW9ucy5waWVMZWdlbmRUZXh0U2l6ZX07XG4gIH1cbmA7XG5jb25zdCBzdHlsZXMgPSBnZXRTdHlsZXM7XG5jb25zdCBjcmVhdGVQaWVBcmNzID0gKHNlY3Rpb25zMikgPT4ge1xuICBjb25zdCBwaWVEYXRhID0gT2JqZWN0LmVudHJpZXMoc2VjdGlvbnMyKS5tYXAoKGVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IGVsZW1lbnRbMF0sXG4gICAgICB2YWx1ZTogZWxlbWVudFsxXVxuICAgIH07XG4gIH0pLnNvcnQoKGEsIGIpID0+IHtcbiAgICByZXR1cm4gYi52YWx1ZSAtIGEudmFsdWU7XG4gIH0pO1xuICBjb25zdCBwaWUkMSA9IHBpZSgpLnZhbHVlKFxuICAgIChkM1NlY3Rpb24pID0+IGQzU2VjdGlvbi52YWx1ZVxuICApO1xuICByZXR1cm4gcGllJDEocGllRGF0YSk7XG59O1xuY29uc3QgZHJhdyA9ICh0ZXh0LCBpZCwgX3ZlcnNpb24sIGRpYWdPYmopID0+IHtcbiAgbG9nLmRlYnVnKFwicmVuZGVyaW5nIHBpZSBjaGFydFxcblwiICsgdGV4dCk7XG4gIGNvbnN0IGRiMiA9IGRpYWdPYmouZGI7XG4gIGNvbnN0IGdsb2JhbENvbmZpZyA9IGdldENvbmZpZyQxKCk7XG4gIGNvbnN0IHBpZUNvbmZpZyA9IGNsZWFuQW5kTWVyZ2UoZGIyLmdldENvbmZpZygpLCBnbG9iYWxDb25maWcucGllKTtcbiAgY29uc3QgTUFSR0lOID0gNDA7XG4gIGNvbnN0IExFR0VORF9SRUNUX1NJWkUgPSAxODtcbiAgY29uc3QgTEVHRU5EX1NQQUNJTkcgPSA0O1xuICBjb25zdCBoZWlnaHQgPSA0NTA7XG4gIGNvbnN0IHBpZVdpZHRoID0gaGVpZ2h0O1xuICBjb25zdCBzdmcgPSBzZWxlY3RTdmdFbGVtZW50KGlkKTtcbiAgY29uc3QgZ3JvdXAgPSBzdmcuYXBwZW5kKFwiZ1wiKTtcbiAgY29uc3Qgc2VjdGlvbnMyID0gZGIyLmdldFNlY3Rpb25zKCk7XG4gIGdyb3VwLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyBwaWVXaWR0aCAvIDIgKyBcIixcIiArIGhlaWdodCAvIDIgKyBcIilcIik7XG4gIGNvbnN0IHsgdGhlbWVWYXJpYWJsZXMgfSA9IGdsb2JhbENvbmZpZztcbiAgbGV0IFtvdXRlclN0cm9rZVdpZHRoXSA9IHBhcnNlRm9udFNpemUodGhlbWVWYXJpYWJsZXMucGllT3V0ZXJTdHJva2VXaWR0aCk7XG4gIG91dGVyU3Ryb2tlV2lkdGggPz8gKG91dGVyU3Ryb2tlV2lkdGggPSAyKTtcbiAgY29uc3QgdGV4dFBvc2l0aW9uID0gcGllQ29uZmlnLnRleHRQb3NpdGlvbjtcbiAgY29uc3QgcmFkaXVzID0gTWF0aC5taW4ocGllV2lkdGgsIGhlaWdodCkgLyAyIC0gTUFSR0lOO1xuICBjb25zdCBhcmNHZW5lcmF0b3IgPSBhcmMoKS5pbm5lclJhZGl1cygwKS5vdXRlclJhZGl1cyhyYWRpdXMpO1xuICBjb25zdCBsYWJlbEFyY0dlbmVyYXRvciA9IGFyYygpLmlubmVyUmFkaXVzKHJhZGl1cyAqIHRleHRQb3NpdGlvbikub3V0ZXJSYWRpdXMocmFkaXVzICogdGV4dFBvc2l0aW9uKTtcbiAgZ3JvdXAuYXBwZW5kKFwiY2lyY2xlXCIpLmF0dHIoXCJjeFwiLCAwKS5hdHRyKFwiY3lcIiwgMCkuYXR0cihcInJcIiwgcmFkaXVzICsgb3V0ZXJTdHJva2VXaWR0aCAvIDIpLmF0dHIoXCJjbGFzc1wiLCBcInBpZU91dGVyQ2lyY2xlXCIpO1xuICBjb25zdCBhcmNzID0gY3JlYXRlUGllQXJjcyhzZWN0aW9uczIpO1xuICBjb25zdCBteUdlbmVyYXRlZENvbG9ycyA9IFtcbiAgICB0aGVtZVZhcmlhYmxlcy5waWUxLFxuICAgIHRoZW1lVmFyaWFibGVzLnBpZTIsXG4gICAgdGhlbWVWYXJpYWJsZXMucGllMyxcbiAgICB0aGVtZVZhcmlhYmxlcy5waWU0LFxuICAgIHRoZW1lVmFyaWFibGVzLnBpZTUsXG4gICAgdGhlbWVWYXJpYWJsZXMucGllNixcbiAgICB0aGVtZVZhcmlhYmxlcy5waWU3LFxuICAgIHRoZW1lVmFyaWFibGVzLnBpZTgsXG4gICAgdGhlbWVWYXJpYWJsZXMucGllOSxcbiAgICB0aGVtZVZhcmlhYmxlcy5waWUxMCxcbiAgICB0aGVtZVZhcmlhYmxlcy5waWUxMSxcbiAgICB0aGVtZVZhcmlhYmxlcy5waWUxMlxuICBdO1xuICBjb25zdCBjb2xvciA9IHNjYWxlT3JkaW5hbChteUdlbmVyYXRlZENvbG9ycyk7XG4gIGdyb3VwLnNlbGVjdEFsbChcIm15U2xpY2VzXCIpLmRhdGEoYXJjcykuZW50ZXIoKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIGFyY0dlbmVyYXRvcikuYXR0cihcImZpbGxcIiwgKGRhdHVtKSA9PiB7XG4gICAgcmV0dXJuIGNvbG9yKGRhdHVtLmRhdGEubGFiZWwpO1xuICB9KS5hdHRyKFwiY2xhc3NcIiwgXCJwaWVDaXJjbGVcIik7XG4gIGxldCBzdW0gPSAwO1xuICBPYmplY3Qua2V5cyhzZWN0aW9uczIpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIHN1bSArPSBzZWN0aW9uczJba2V5XTtcbiAgfSk7XG4gIGdyb3VwLnNlbGVjdEFsbChcIm15U2xpY2VzXCIpLmRhdGEoYXJjcykuZW50ZXIoKS5hcHBlbmQoXCJ0ZXh0XCIpLnRleHQoKGRhdHVtKSA9PiB7XG4gICAgcmV0dXJuIChkYXR1bS5kYXRhLnZhbHVlIC8gc3VtICogMTAwKS50b0ZpeGVkKDApICsgXCIlXCI7XG4gIH0pLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgKGRhdHVtKSA9PiB7XG4gICAgcmV0dXJuIFwidHJhbnNsYXRlKFwiICsgbGFiZWxBcmNHZW5lcmF0b3IuY2VudHJvaWQoZGF0dW0pICsgXCIpXCI7XG4gIH0pLnN0eWxlKFwidGV4dC1hbmNob3JcIiwgXCJtaWRkbGVcIikuYXR0cihcImNsYXNzXCIsIFwic2xpY2VcIik7XG4gIGdyb3VwLmFwcGVuZChcInRleHRcIikudGV4dChkYjIuZ2V0RGlhZ3JhbVRpdGxlKCkpLmF0dHIoXCJ4XCIsIDApLmF0dHIoXCJ5XCIsIC0oaGVpZ2h0IC0gNTApIC8gMikuYXR0cihcImNsYXNzXCIsIFwicGllVGl0bGVUZXh0XCIpO1xuICBjb25zdCBsZWdlbmQgPSBncm91cC5zZWxlY3RBbGwoXCIubGVnZW5kXCIpLmRhdGEoY29sb3IuZG9tYWluKCkpLmVudGVyKCkuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJsZWdlbmRcIikuYXR0cihcInRyYW5zZm9ybVwiLCAoX2RhdHVtLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGhlaWdodDIgPSBMRUdFTkRfUkVDVF9TSVpFICsgTEVHRU5EX1NQQUNJTkc7XG4gICAgY29uc3Qgb2Zmc2V0ID0gaGVpZ2h0MiAqIGNvbG9yLmRvbWFpbigpLmxlbmd0aCAvIDI7XG4gICAgY29uc3QgaG9yaXpvbnRhbCA9IDEyICogTEVHRU5EX1JFQ1RfU0laRTtcbiAgICBjb25zdCB2ZXJ0aWNhbCA9IGluZGV4ICogaGVpZ2h0MiAtIG9mZnNldDtcbiAgICByZXR1cm4gXCJ0cmFuc2xhdGUoXCIgKyBob3Jpem9udGFsICsgXCIsXCIgKyB2ZXJ0aWNhbCArIFwiKVwiO1xuICB9KTtcbiAgbGVnZW5kLmFwcGVuZChcInJlY3RcIikuYXR0cihcIndpZHRoXCIsIExFR0VORF9SRUNUX1NJWkUpLmF0dHIoXCJoZWlnaHRcIiwgTEVHRU5EX1JFQ1RfU0laRSkuc3R5bGUoXCJmaWxsXCIsIGNvbG9yKS5zdHlsZShcInN0cm9rZVwiLCBjb2xvcik7XG4gIGxlZ2VuZC5kYXRhKGFyY3MpLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgTEVHRU5EX1JFQ1RfU0laRSArIExFR0VORF9TUEFDSU5HKS5hdHRyKFwieVwiLCBMRUdFTkRfUkVDVF9TSVpFIC0gTEVHRU5EX1NQQUNJTkcpLnRleHQoKGRhdHVtKSA9PiB7XG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUgfSA9IGRhdHVtLmRhdGE7XG4gICAgaWYgKGRiMi5nZXRTaG93RGF0YSgpKSB7XG4gICAgICByZXR1cm4gYCR7bGFiZWx9IFske3ZhbHVlfV1gO1xuICAgIH1cbiAgICByZXR1cm4gbGFiZWw7XG4gIH0pO1xuICBjb25zdCBsb25nZXN0VGV4dFdpZHRoID0gTWF0aC5tYXgoXG4gICAgLi4ubGVnZW5kLnNlbGVjdEFsbChcInRleHRcIikubm9kZXMoKS5tYXAoKG5vZGUpID0+IChub2RlID09IG51bGwgPyB2b2lkIDAgOiBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKSA/PyAwKVxuICApO1xuICBjb25zdCB0b3RhbFdpZHRoID0gcGllV2lkdGggKyBNQVJHSU4gKyBMRUdFTkRfUkVDVF9TSVpFICsgTEVHRU5EX1NQQUNJTkcgKyBsb25nZXN0VGV4dFdpZHRoO1xuICBzdmcuYXR0cihcInZpZXdCb3hcIiwgYDAgMCAke3RvdGFsV2lkdGh9ICR7aGVpZ2h0fWApO1xuICBjb25maWd1cmVTdmdTaXplKHN2ZywgaGVpZ2h0LCB0b3RhbFdpZHRoLCBwaWVDb25maWcudXNlTWF4V2lkdGgpO1xufTtcbmNvbnN0IHJlbmRlcmVyID0geyBkcmF3IH07XG5jb25zdCBkaWFncmFtID0ge1xuICBwYXJzZXI6IHBhcnNlciQxLFxuICBkYixcbiAgcmVuZGVyZXIsXG4gIHN0eWxlc1xufTtcbmV4cG9ydCB7XG4gIGRpYWdyYW1cbn07XG4iLAogICAgImltcG9ydCB7IEUgYXMgZ2V0VGhlbWVWYXJpYWJsZXMsIEIgYXMgZGVmYXVsdENvbmZpZywgbCBhcyBsb2csIHMgYXMgc2V0QWNjVGl0bGUsIGcgYXMgZ2V0QWNjVGl0bGUsIHEgYXMgc2V0RGlhZ3JhbVRpdGxlLCB0IGFzIGdldERpYWdyYW1UaXRsZSwgYSBhcyBnZXRBY2NEZXNjcmlwdGlvbiwgYiBhcyBzZXRBY2NEZXNjcmlwdGlvbiwgYyBhcyBnZXRDb25maWcsIHYgYXMgY2xlYXIkMSwgZCBhcyBzYW5pdGl6ZVRleHQsIGkgYXMgY29uZmlndXJlU3ZnU2l6ZSB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmltcG9ydCB7IHNjYWxlTGluZWFyLCBzZWxlY3QgfSBmcm9tIFwiZDNcIjtcbmltcG9ydCBcInRzLWRlZGVudFwiO1xuaW1wb3J0IFwiZGF5anNcIjtcbmltcG9ydCBcIkBicmFpbnRyZWUvc2FuaXRpemUtdXJsXCI7XG5pbXBvcnQgXCJkb21wdXJpZnlcIjtcbmltcG9ydCBcImtocm9tYVwiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lbW9pemUuanNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZXJnZS5qc1wiO1xuaW1wb3J0IFwic3R5bGlzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvaXNFbXB0eS5qc1wiO1xudmFyIHBhcnNlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgbyA9IGZ1bmN0aW9uKGssIHYsIG8yLCBsKSB7XG4gICAgZm9yIChvMiA9IG8yIHx8IHt9LCBsID0gay5sZW5ndGg7IGwtLTsgbzJba1tsXV0gPSB2KVxuICAgICAgO1xuICAgIHJldHVybiBvMjtcbiAgfSwgJFYwID0gWzEsIDNdLCAkVjEgPSBbMSwgNF0sICRWMiA9IFsxLCA1XSwgJFYzID0gWzEsIDZdLCAkVjQgPSBbMSwgN10sICRWNSA9IFsxLCA1LCAxMywgMTUsIDE3LCAxOSwgMjAsIDI1LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM3LCAzOCwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwXSwgJFY2ID0gWzEsIDUsIDYsIDEzLCAxNSwgMTcsIDE5LCAyMCwgMjUsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzcsIDM4LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTBdLCAkVjcgPSBbMzIsIDMzLCAzNF0sICRWOCA9IFsyLCA3XSwgJFY5ID0gWzEsIDEzXSwgJFZhID0gWzEsIDE3XSwgJFZiID0gWzEsIDE4XSwgJFZjID0gWzEsIDE5XSwgJFZkID0gWzEsIDIwXSwgJFZlID0gWzEsIDIxXSwgJFZmID0gWzEsIDIyXSwgJFZnID0gWzEsIDIzXSwgJFZoID0gWzEsIDI0XSwgJFZpID0gWzEsIDI1XSwgJFZqID0gWzEsIDI2XSwgJFZrID0gWzEsIDI3XSwgJFZsID0gWzEsIDMwXSwgJFZtID0gWzEsIDMxXSwgJFZuID0gWzEsIDMyXSwgJFZvID0gWzEsIDMzXSwgJFZwID0gWzEsIDM0XSwgJFZxID0gWzEsIDM1XSwgJFZyID0gWzEsIDM2XSwgJFZzID0gWzEsIDM3XSwgJFZ0ID0gWzEsIDM4XSwgJFZ1ID0gWzEsIDM5XSwgJFZ2ID0gWzEsIDQwXSwgJFZ3ID0gWzEsIDQxXSwgJFZ4ID0gWzEsIDQyXSwgJFZ5ID0gWzEsIDU3XSwgJFZ6ID0gWzEsIDU4XSwgJFZBID0gWzUsIDIyLCAyNiwgMzIsIDMzLCAzNCwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCA1MV07XG4gIHZhciBwYXJzZXIyID0ge1xuICAgIHRyYWNlOiBmdW5jdGlvbiB0cmFjZSgpIHtcbiAgICB9LFxuICAgIHl5OiB7fSxcbiAgICBzeW1ib2xzXzogeyBcImVycm9yXCI6IDIsIFwic3RhcnRcIjogMywgXCJlb2xcIjogNCwgXCJTUEFDRVwiOiA1LCBcIlFVQURSQU5UXCI6IDYsIFwiZG9jdW1lbnRcIjogNywgXCJsaW5lXCI6IDgsIFwic3RhdGVtZW50XCI6IDksIFwiYXhpc0RldGFpbHNcIjogMTAsIFwicXVhZHJhbnREZXRhaWxzXCI6IDExLCBcInBvaW50c1wiOiAxMiwgXCJ0aXRsZVwiOiAxMywgXCJ0aXRsZV92YWx1ZVwiOiAxNCwgXCJhY2NfdGl0bGVcIjogMTUsIFwiYWNjX3RpdGxlX3ZhbHVlXCI6IDE2LCBcImFjY19kZXNjclwiOiAxNywgXCJhY2NfZGVzY3JfdmFsdWVcIjogMTgsIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiOiAxOSwgXCJzZWN0aW9uXCI6IDIwLCBcInRleHRcIjogMjEsIFwicG9pbnRfc3RhcnRcIjogMjIsIFwicG9pbnRfeFwiOiAyMywgXCJwb2ludF95XCI6IDI0LCBcIlgtQVhJU1wiOiAyNSwgXCJBWElTLVRFWFQtREVMSU1JVEVSXCI6IDI2LCBcIlktQVhJU1wiOiAyNywgXCJRVUFEUkFOVF8xXCI6IDI4LCBcIlFVQURSQU5UXzJcIjogMjksIFwiUVVBRFJBTlRfM1wiOiAzMCwgXCJRVUFEUkFOVF80XCI6IDMxLCBcIk5FV0xJTkVcIjogMzIsIFwiU0VNSVwiOiAzMywgXCJFT0ZcIjogMzQsIFwiYWxwaGFOdW1Ub2tlblwiOiAzNSwgXCJ0ZXh0Tm9UYWdzVG9rZW5cIjogMzYsIFwiU1RSXCI6IDM3LCBcIk1EX1NUUlwiOiAzOCwgXCJhbHBoYU51bVwiOiAzOSwgXCJQVU5DVFVBVElPTlwiOiA0MCwgXCJBTVBcIjogNDEsIFwiTlVNXCI6IDQyLCBcIkFMUEhBXCI6IDQzLCBcIkNPTU1BXCI6IDQ0LCBcIlBMVVNcIjogNDUsIFwiRVFVQUxTXCI6IDQ2LCBcIk1VTFRcIjogNDcsIFwiRE9UXCI6IDQ4LCBcIkJSS1RcIjogNDksIFwiVU5ERVJTQ09SRVwiOiA1MCwgXCJNSU5VU1wiOiA1MSwgXCIkYWNjZXB0XCI6IDAsIFwiJGVuZFwiOiAxIH0sXG4gICAgdGVybWluYWxzXzogeyAyOiBcImVycm9yXCIsIDU6IFwiU1BBQ0VcIiwgNjogXCJRVUFEUkFOVFwiLCAxMzogXCJ0aXRsZVwiLCAxNDogXCJ0aXRsZV92YWx1ZVwiLCAxNTogXCJhY2NfdGl0bGVcIiwgMTY6IFwiYWNjX3RpdGxlX3ZhbHVlXCIsIDE3OiBcImFjY19kZXNjclwiLCAxODogXCJhY2NfZGVzY3JfdmFsdWVcIiwgMTk6IFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiLCAyMDogXCJzZWN0aW9uXCIsIDIyOiBcInBvaW50X3N0YXJ0XCIsIDIzOiBcInBvaW50X3hcIiwgMjQ6IFwicG9pbnRfeVwiLCAyNTogXCJYLUFYSVNcIiwgMjY6IFwiQVhJUy1URVhULURFTElNSVRFUlwiLCAyNzogXCJZLUFYSVNcIiwgMjg6IFwiUVVBRFJBTlRfMVwiLCAyOTogXCJRVUFEUkFOVF8yXCIsIDMwOiBcIlFVQURSQU5UXzNcIiwgMzE6IFwiUVVBRFJBTlRfNFwiLCAzMjogXCJORVdMSU5FXCIsIDMzOiBcIlNFTUlcIiwgMzQ6IFwiRU9GXCIsIDM3OiBcIlNUUlwiLCAzODogXCJNRF9TVFJcIiwgNDA6IFwiUFVOQ1RVQVRJT05cIiwgNDE6IFwiQU1QXCIsIDQyOiBcIk5VTVwiLCA0MzogXCJBTFBIQVwiLCA0NDogXCJDT01NQVwiLCA0NTogXCJQTFVTXCIsIDQ2OiBcIkVRVUFMU1wiLCA0NzogXCJNVUxUXCIsIDQ4OiBcIkRPVFwiLCA0OTogXCJCUktUXCIsIDUwOiBcIlVOREVSU0NPUkVcIiwgNTE6IFwiTUlOVVNcIiB9LFxuICAgIHByb2R1Y3Rpb25zXzogWzAsIFszLCAyXSwgWzMsIDJdLCBbMywgMl0sIFs3LCAwXSwgWzcsIDJdLCBbOCwgMl0sIFs5LCAwXSwgWzksIDJdLCBbOSwgMV0sIFs5LCAxXSwgWzksIDFdLCBbOSwgMl0sIFs5LCAyXSwgWzksIDJdLCBbOSwgMV0sIFs5LCAxXSwgWzEyLCA0XSwgWzEwLCA0XSwgWzEwLCAzXSwgWzEwLCAyXSwgWzEwLCA0XSwgWzEwLCAzXSwgWzEwLCAyXSwgWzExLCAyXSwgWzExLCAyXSwgWzExLCAyXSwgWzExLCAyXSwgWzQsIDFdLCBbNCwgMV0sIFs0LCAxXSwgWzIxLCAxXSwgWzIxLCAyXSwgWzIxLCAxXSwgWzIxLCAxXSwgWzM5LCAxXSwgWzM5LCAyXSwgWzM1LCAxXSwgWzM1LCAxXSwgWzM1LCAxXSwgWzM1LCAxXSwgWzM1LCAxXSwgWzM1LCAxXSwgWzM1LCAxXSwgWzM1LCAxXSwgWzM1LCAxXSwgWzM1LCAxXSwgWzM1LCAxXSwgWzM2LCAxXSwgWzM2LCAxXSwgWzM2LCAxXV0sXG4gICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5dGV4dCwgeXlsZW5nLCB5eWxpbmVubywgeXksIHl5c3RhdGUsICQkLCBfJCkge1xuICAgICAgdmFyICQwID0gJCQubGVuZ3RoIC0gMTtcbiAgICAgIHN3aXRjaCAoeXlzdGF0ZSkge1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS50cmltKCk7XG4gICAgICAgICAgeXkuc2V0RGlhZ3JhbVRpdGxlKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5zZXRBY2NUaXRsZSh0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE0OlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS50cmltKCk7XG4gICAgICAgICAgeXkuc2V0QWNjRGVzY3JpcHRpb24odGhpcy4kKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICB5eS5hZGRTZWN0aW9uKCQkWyQwXS5zdWJzdHIoOCkpO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS5zdWJzdHIoOCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTc6XG4gICAgICAgICAgeXkuYWRkUG9pbnQoJCRbJDAgLSAzXSwgJCRbJDAgLSAxXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICB5eS5zZXRYQXhpc0xlZnRUZXh0KCQkWyQwIC0gMl0pO1xuICAgICAgICAgIHl5LnNldFhBeGlzUmlnaHRUZXh0KCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgJCRbJDAgLSAxXS50ZXh0ICs9IFwiIOKftiBcIjtcbiAgICAgICAgICB5eS5zZXRYQXhpc0xlZnRUZXh0KCQkWyQwIC0gMV0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgIHl5LnNldFhBeGlzTGVmdFRleHQoJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICB5eS5zZXRZQXhpc0JvdHRvbVRleHQoJCRbJDAgLSAyXSk7XG4gICAgICAgICAgeXkuc2V0WUF4aXNUb3BUZXh0KCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgJCRbJDAgLSAxXS50ZXh0ICs9IFwiIOKftiBcIjtcbiAgICAgICAgICB5eS5zZXRZQXhpc0JvdHRvbVRleHQoJCRbJDAgLSAxXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgeXkuc2V0WUF4aXNCb3R0b21UZXh0KCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgeXkuc2V0UXVhZHJhbnQxVGV4dCgkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIHl5LnNldFF1YWRyYW50MlRleHQoJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICB5eS5zZXRRdWFkcmFudDNUZXh0KCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgeXkuc2V0UXVhZHJhbnQ0VGV4dCgkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgIHRoaXMuJCA9IHsgdGV4dDogJCRbJDBdLCB0eXBlOiBcInRleHRcIiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgIHRoaXMuJCA9IHsgdGV4dDogJCRbJDAgLSAxXS50ZXh0ICsgXCJcIiArICQkWyQwXSwgdHlwZTogJCRbJDAgLSAxXS50eXBlIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgdGhpcy4kID0geyB0ZXh0OiAkJFskMF0sIHR5cGU6IFwidGV4dFwiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzQ6XG4gICAgICAgICAgdGhpcy4kID0geyB0ZXh0OiAkJFskMF0sIHR5cGU6IFwibWFya2Rvd25cIiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdICsgXCJcIiArICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYmxlOiBbeyAzOiAxLCA0OiAyLCA1OiAkVjAsIDY6ICRWMSwgMzI6ICRWMiwgMzM6ICRWMywgMzQ6ICRWNCB9LCB7IDE6IFszXSB9LCB7IDM6IDgsIDQ6IDIsIDU6ICRWMCwgNjogJFYxLCAzMjogJFYyLCAzMzogJFYzLCAzNDogJFY0IH0sIHsgMzogOSwgNDogMiwgNTogJFYwLCA2OiAkVjEsIDMyOiAkVjIsIDMzOiAkVjMsIDM0OiAkVjQgfSwgbygkVjUsIFsyLCA0XSwgeyA3OiAxMCB9KSwgbygkVjYsIFsyLCAyOF0pLCBvKCRWNiwgWzIsIDI5XSksIG8oJFY2LCBbMiwgMzBdKSwgeyAxOiBbMiwgMV0gfSwgeyAxOiBbMiwgMl0gfSwgbygkVjcsICRWOCwgeyA4OiAxMSwgOTogMTIsIDEwOiAxNCwgMTE6IDE1LCAxMjogMTYsIDIxOiAyOCwgMzU6IDI5LCAxOiBbMiwgM10sIDU6ICRWOSwgMTM6ICRWYSwgMTU6ICRWYiwgMTc6ICRWYywgMTk6ICRWZCwgMjA6ICRWZSwgMjU6ICRWZiwgMjc6ICRWZywgMjg6ICRWaCwgMjk6ICRWaSwgMzA6ICRWaiwgMzE6ICRWaywgMzc6ICRWbCwgMzg6ICRWbSwgNDA6ICRWbiwgNDE6ICRWbywgNDI6ICRWcCwgNDM6ICRWcSwgNDQ6ICRWciwgNDU6ICRWcywgNDY6ICRWdCwgNDc6ICRWdSwgNDg6ICRWdiwgNDk6ICRWdywgNTA6ICRWeCB9KSwgbygkVjUsIFsyLCA1XSksIHsgNDogNDMsIDMyOiAkVjIsIDMzOiAkVjMsIDM0OiAkVjQgfSwgbygkVjcsICRWOCwgeyAxMDogMTQsIDExOiAxNSwgMTI6IDE2LCAyMTogMjgsIDM1OiAyOSwgOTogNDQsIDU6ICRWOSwgMTM6ICRWYSwgMTU6ICRWYiwgMTc6ICRWYywgMTk6ICRWZCwgMjA6ICRWZSwgMjU6ICRWZiwgMjc6ICRWZywgMjg6ICRWaCwgMjk6ICRWaSwgMzA6ICRWaiwgMzE6ICRWaywgMzc6ICRWbCwgMzg6ICRWbSwgNDA6ICRWbiwgNDE6ICRWbywgNDI6ICRWcCwgNDM6ICRWcSwgNDQ6ICRWciwgNDU6ICRWcywgNDY6ICRWdCwgNDc6ICRWdSwgNDg6ICRWdiwgNDk6ICRWdywgNTA6ICRWeCB9KSwgbygkVjcsIFsyLCA5XSksIG8oJFY3LCBbMiwgMTBdKSwgbygkVjcsIFsyLCAxMV0pLCB7IDE0OiBbMSwgNDVdIH0sIHsgMTY6IFsxLCA0Nl0gfSwgeyAxODogWzEsIDQ3XSB9LCBvKCRWNywgWzIsIDE1XSksIG8oJFY3LCBbMiwgMTZdKSwgeyAyMTogNDgsIDM1OiAyOSwgMzc6ICRWbCwgMzg6ICRWbSwgNDA6ICRWbiwgNDE6ICRWbywgNDI6ICRWcCwgNDM6ICRWcSwgNDQ6ICRWciwgNDU6ICRWcywgNDY6ICRWdCwgNDc6ICRWdSwgNDg6ICRWdiwgNDk6ICRWdywgNTA6ICRWeCB9LCB7IDIxOiA0OSwgMzU6IDI5LCAzNzogJFZsLCAzODogJFZtLCA0MDogJFZuLCA0MTogJFZvLCA0MjogJFZwLCA0MzogJFZxLCA0NDogJFZyLCA0NTogJFZzLCA0NjogJFZ0LCA0NzogJFZ1LCA0ODogJFZ2LCA0OTogJFZ3LCA1MDogJFZ4IH0sIHsgMjE6IDUwLCAzNTogMjksIDM3OiAkVmwsIDM4OiAkVm0sIDQwOiAkVm4sIDQxOiAkVm8sIDQyOiAkVnAsIDQzOiAkVnEsIDQ0OiAkVnIsIDQ1OiAkVnMsIDQ2OiAkVnQsIDQ3OiAkVnUsIDQ4OiAkVnYsIDQ5OiAkVncsIDUwOiAkVnggfSwgeyAyMTogNTEsIDM1OiAyOSwgMzc6ICRWbCwgMzg6ICRWbSwgNDA6ICRWbiwgNDE6ICRWbywgNDI6ICRWcCwgNDM6ICRWcSwgNDQ6ICRWciwgNDU6ICRWcywgNDY6ICRWdCwgNDc6ICRWdSwgNDg6ICRWdiwgNDk6ICRWdywgNTA6ICRWeCB9LCB7IDIxOiA1MiwgMzU6IDI5LCAzNzogJFZsLCAzODogJFZtLCA0MDogJFZuLCA0MTogJFZvLCA0MjogJFZwLCA0MzogJFZxLCA0NDogJFZyLCA0NTogJFZzLCA0NjogJFZ0LCA0NzogJFZ1LCA0ODogJFZ2LCA0OTogJFZ3LCA1MDogJFZ4IH0sIHsgMjE6IDUzLCAzNTogMjksIDM3OiAkVmwsIDM4OiAkVm0sIDQwOiAkVm4sIDQxOiAkVm8sIDQyOiAkVnAsIDQzOiAkVnEsIDQ0OiAkVnIsIDQ1OiAkVnMsIDQ2OiAkVnQsIDQ3OiAkVnUsIDQ4OiAkVnYsIDQ5OiAkVncsIDUwOiAkVnggfSwgeyA1OiAkVnksIDIyOiBbMSwgNTRdLCAzNTogNTYsIDM2OiA1NSwgNDA6ICRWbiwgNDE6ICRWbywgNDI6ICRWcCwgNDM6ICRWcSwgNDQ6ICRWciwgNDU6ICRWcywgNDY6ICRWdCwgNDc6ICRWdSwgNDg6ICRWdiwgNDk6ICRWdywgNTA6ICRWeCwgNTE6ICRWeiB9LCBvKCRWQSwgWzIsIDMxXSksIG8oJFZBLCBbMiwgMzNdKSwgbygkVkEsIFsyLCAzNF0pLCBvKCRWQSwgWzIsIDM3XSksIG8oJFZBLCBbMiwgMzhdKSwgbygkVkEsIFsyLCAzOV0pLCBvKCRWQSwgWzIsIDQwXSksIG8oJFZBLCBbMiwgNDFdKSwgbygkVkEsIFsyLCA0Ml0pLCBvKCRWQSwgWzIsIDQzXSksIG8oJFZBLCBbMiwgNDRdKSwgbygkVkEsIFsyLCA0NV0pLCBvKCRWQSwgWzIsIDQ2XSksIG8oJFZBLCBbMiwgNDddKSwgbygkVjUsIFsyLCA2XSksIG8oJFY3LCBbMiwgOF0pLCBvKCRWNywgWzIsIDEyXSksIG8oJFY3LCBbMiwgMTNdKSwgbygkVjcsIFsyLCAxNF0pLCBvKCRWNywgWzIsIDIwXSwgeyAzNjogNTUsIDM1OiA1NiwgNTogJFZ5LCAyNjogWzEsIDU5XSwgNDA6ICRWbiwgNDE6ICRWbywgNDI6ICRWcCwgNDM6ICRWcSwgNDQ6ICRWciwgNDU6ICRWcywgNDY6ICRWdCwgNDc6ICRWdSwgNDg6ICRWdiwgNDk6ICRWdywgNTA6ICRWeCwgNTE6ICRWeiB9KSwgbygkVjcsIFsyLCAyM10sIHsgMzY6IDU1LCAzNTogNTYsIDU6ICRWeSwgMjY6IFsxLCA2MF0sIDQwOiAkVm4sIDQxOiAkVm8sIDQyOiAkVnAsIDQzOiAkVnEsIDQ0OiAkVnIsIDQ1OiAkVnMsIDQ2OiAkVnQsIDQ3OiAkVnUsIDQ4OiAkVnYsIDQ5OiAkVncsIDUwOiAkVngsIDUxOiAkVnogfSksIG8oJFY3LCBbMiwgMjRdLCB7IDM2OiA1NSwgMzU6IDU2LCA1OiAkVnksIDQwOiAkVm4sIDQxOiAkVm8sIDQyOiAkVnAsIDQzOiAkVnEsIDQ0OiAkVnIsIDQ1OiAkVnMsIDQ2OiAkVnQsIDQ3OiAkVnUsIDQ4OiAkVnYsIDQ5OiAkVncsIDUwOiAkVngsIDUxOiAkVnogfSksIG8oJFY3LCBbMiwgMjVdLCB7IDM2OiA1NSwgMzU6IDU2LCA1OiAkVnksIDQwOiAkVm4sIDQxOiAkVm8sIDQyOiAkVnAsIDQzOiAkVnEsIDQ0OiAkVnIsIDQ1OiAkVnMsIDQ2OiAkVnQsIDQ3OiAkVnUsIDQ4OiAkVnYsIDQ5OiAkVncsIDUwOiAkVngsIDUxOiAkVnogfSksIG8oJFY3LCBbMiwgMjZdLCB7IDM2OiA1NSwgMzU6IDU2LCA1OiAkVnksIDQwOiAkVm4sIDQxOiAkVm8sIDQyOiAkVnAsIDQzOiAkVnEsIDQ0OiAkVnIsIDQ1OiAkVnMsIDQ2OiAkVnQsIDQ3OiAkVnUsIDQ4OiAkVnYsIDQ5OiAkVncsIDUwOiAkVngsIDUxOiAkVnogfSksIG8oJFY3LCBbMiwgMjddLCB7IDM2OiA1NSwgMzU6IDU2LCA1OiAkVnksIDQwOiAkVm4sIDQxOiAkVm8sIDQyOiAkVnAsIDQzOiAkVnEsIDQ0OiAkVnIsIDQ1OiAkVnMsIDQ2OiAkVnQsIDQ3OiAkVnUsIDQ4OiAkVnYsIDQ5OiAkVncsIDUwOiAkVngsIDUxOiAkVnogfSksIHsgMjM6IFsxLCA2MV0gfSwgbygkVkEsIFsyLCAzMl0pLCBvKCRWQSwgWzIsIDQ4XSksIG8oJFZBLCBbMiwgNDldKSwgbygkVkEsIFsyLCA1MF0pLCBvKCRWNywgWzIsIDE5XSwgeyAzNTogMjksIDIxOiA2MiwgMzc6ICRWbCwgMzg6ICRWbSwgNDA6ICRWbiwgNDE6ICRWbywgNDI6ICRWcCwgNDM6ICRWcSwgNDQ6ICRWciwgNDU6ICRWcywgNDY6ICRWdCwgNDc6ICRWdSwgNDg6ICRWdiwgNDk6ICRWdywgNTA6ICRWeCB9KSwgbygkVjcsIFsyLCAyMl0sIHsgMzU6IDI5LCAyMTogNjMsIDM3OiAkVmwsIDM4OiAkVm0sIDQwOiAkVm4sIDQxOiAkVm8sIDQyOiAkVnAsIDQzOiAkVnEsIDQ0OiAkVnIsIDQ1OiAkVnMsIDQ2OiAkVnQsIDQ3OiAkVnUsIDQ4OiAkVnYsIDQ5OiAkVncsIDUwOiAkVnggfSksIHsgMjQ6IFsxLCA2NF0gfSwgbygkVjcsIFsyLCAxOF0sIHsgMzY6IDU1LCAzNTogNTYsIDU6ICRWeSwgNDA6ICRWbiwgNDE6ICRWbywgNDI6ICRWcCwgNDM6ICRWcSwgNDQ6ICRWciwgNDU6ICRWcywgNDY6ICRWdCwgNDc6ICRWdSwgNDg6ICRWdiwgNDk6ICRWdywgNTA6ICRWeCwgNTE6ICRWeiB9KSwgbygkVjcsIFsyLCAyMV0sIHsgMzY6IDU1LCAzNTogNTYsIDU6ICRWeSwgNDA6ICRWbiwgNDE6ICRWbywgNDI6ICRWcCwgNDM6ICRWcSwgNDQ6ICRWciwgNDU6ICRWcywgNDY6ICRWdCwgNDc6ICRWdSwgNDg6ICRWdiwgNDk6ICRWdywgNTA6ICRWeCwgNTE6ICRWeiB9KSwgbygkVjcsIFsyLCAxN10pXSxcbiAgICBkZWZhdWx0QWN0aW9uczogeyA4OiBbMiwgMV0sIDk6IFsyLCAyXSB9LFxuICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICBpZiAoaGFzaC5yZWNvdmVyYWJsZSkge1xuICAgICAgICB0aGlzLnRyYWNlKHN0cik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgZXJyb3IuaGFzaCA9IGhhc2g7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0sXG4gICAgcGFyc2U6IGZ1bmN0aW9uIHBhcnNlKGlucHV0KSB7XG4gICAgICB2YXIgc2VsZiA9IHRoaXMsIHN0YWNrID0gWzBdLCB0c3RhY2sgPSBbXSwgdnN0YWNrID0gW251bGxdLCBsc3RhY2sgPSBbXSwgdGFibGUgPSB0aGlzLnRhYmxlLCB5eXRleHQgPSBcIlwiLCB5eWxpbmVubyA9IDAsIHl5bGVuZyA9IDAsIFRFUlJPUiA9IDIsIEVPRiA9IDE7XG4gICAgICB2YXIgYXJncyA9IGxzdGFjay5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICB2YXIgbGV4ZXIyID0gT2JqZWN0LmNyZWF0ZSh0aGlzLmxleGVyKTtcbiAgICAgIHZhciBzaGFyZWRTdGF0ZSA9IHsgeXk6IHt9IH07XG4gICAgICBmb3IgKHZhciBrIGluIHRoaXMueXkpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLnl5LCBrKSkge1xuICAgICAgICAgIHNoYXJlZFN0YXRlLnl5W2tdID0gdGhpcy55eVtrXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV4ZXIyLnNldElucHV0KGlucHV0LCBzaGFyZWRTdGF0ZS55eSk7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5sZXhlciA9IGxleGVyMjtcbiAgICAgIHNoYXJlZFN0YXRlLnl5LnBhcnNlciA9IHRoaXM7XG4gICAgICBpZiAodHlwZW9mIGxleGVyMi55eWxsb2MgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBsZXhlcjIueXlsbG9jID0ge307XG4gICAgICB9XG4gICAgICB2YXIgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgbHN0YWNrLnB1c2goeXlsb2MpO1xuICAgICAgdmFyIHJhbmdlcyA9IGxleGVyMi5vcHRpb25zICYmIGxleGVyMi5vcHRpb25zLnJhbmdlcztcbiAgICAgIGlmICh0eXBlb2Ygc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRoaXMucGFyc2VFcnJvciA9IHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3I7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykucGFyc2VFcnJvcjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHRva2VuO1xuICAgICAgICB0b2tlbiA9IHRzdGFjay5wb3AoKSB8fCBsZXhlcjIubGV4KCkgfHwgRU9GO1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgaWYgKHRva2VuIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIHRzdGFjayA9IHRva2VuO1xuICAgICAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRva2VuID0gc2VsZi5zeW1ib2xzX1t0b2tlbl0gfHwgdG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgfVxuICAgICAgdmFyIHN5bWJvbCwgc3RhdGUsIGFjdGlvbiwgciwgeXl2YWwgPSB7fSwgcCwgbGVuLCBuZXdTdGF0ZSwgZXhwZWN0ZWQ7XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBzdGF0ZSA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV0pIHtcbiAgICAgICAgICBhY3Rpb24gPSB0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc3ltYm9sID09PSBudWxsIHx8IHR5cGVvZiBzeW1ib2wgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgc3ltYm9sID0gbGV4KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjdGlvbiA9IHRhYmxlW3N0YXRlXSAmJiB0YWJsZVtzdGF0ZV1bc3ltYm9sXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhYWN0aW9uLmxlbmd0aCB8fCAhYWN0aW9uWzBdKSB7XG4gICAgICAgICAgdmFyIGVyclN0ciA9IFwiXCI7XG4gICAgICAgICAgZXhwZWN0ZWQgPSBbXTtcbiAgICAgICAgICBmb3IgKHAgaW4gdGFibGVbc3RhdGVdKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50ZXJtaW5hbHNfW3BdICYmIHAgPiBURVJST1IpIHtcbiAgICAgICAgICAgICAgZXhwZWN0ZWQucHVzaChcIidcIiArIHRoaXMudGVybWluYWxzX1twXSArIFwiJ1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGxleGVyMi5zaG93UG9zaXRpb24pIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6XFxuXCIgKyBsZXhlcjIuc2hvd1Bvc2l0aW9uKCkgKyBcIlxcbkV4cGVjdGluZyBcIiArIGV4cGVjdGVkLmpvaW4oXCIsIFwiKSArIFwiLCBnb3QgJ1wiICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyBcIidcIjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjogVW5leHBlY3RlZCBcIiArIChzeW1ib2wgPT0gRU9GID8gXCJlbmQgb2YgaW5wdXRcIiA6IFwiJ1wiICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyBcIidcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucGFyc2VFcnJvcihlcnJTdHIsIHtcbiAgICAgICAgICAgIHRleHQ6IGxleGVyMi5tYXRjaCxcbiAgICAgICAgICAgIHRva2VuOiB0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wsXG4gICAgICAgICAgICBsaW5lOiBsZXhlcjIueXlsaW5lbm8sXG4gICAgICAgICAgICBsb2M6IHl5bG9jLFxuICAgICAgICAgICAgZXhwZWN0ZWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uWzBdIGluc3RhbmNlb2YgQXJyYXkgJiYgYWN0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXJzZSBFcnJvcjogbXVsdGlwbGUgYWN0aW9ucyBwb3NzaWJsZSBhdCBzdGF0ZTogXCIgKyBzdGF0ZSArIFwiLCB0b2tlbjogXCIgKyBzeW1ib2wpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uWzBdKSB7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgc3RhY2sucHVzaChzeW1ib2wpO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2gobGV4ZXIyLnl5dGV4dCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaChsZXhlcjIueXlsbG9jKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goYWN0aW9uWzFdKTtcbiAgICAgICAgICAgIHN5bWJvbCA9IG51bGw7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHl5bGVuZyA9IGxleGVyMi55eWxlbmc7XG4gICAgICAgICAgICAgIHl5dGV4dCA9IGxleGVyMi55eXRleHQ7XG4gICAgICAgICAgICAgIHl5bGluZW5vID0gbGV4ZXIyLnl5bGluZW5vO1xuICAgICAgICAgICAgICB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICBsZW4gPSB0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzFdO1xuICAgICAgICAgICAgeXl2YWwuJCA9IHZzdGFja1t2c3RhY2subGVuZ3RoIC0gbGVuXTtcbiAgICAgICAgICAgIHl5dmFsLl8kID0ge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJhbmdlcykge1xuICAgICAgICAgICAgICB5eXZhbC5fJC5yYW5nZSA9IFtcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLnJhbmdlWzBdLFxuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ucmFuZ2VbMV1cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHIgPSB0aGlzLnBlcmZvcm1BY3Rpb24uYXBwbHkoeXl2YWwsIFtcbiAgICAgICAgICAgICAgeXl0ZXh0LFxuICAgICAgICAgICAgICB5eWxlbmcsXG4gICAgICAgICAgICAgIHl5bGluZW5vLFxuICAgICAgICAgICAgICBzaGFyZWRTdGF0ZS55eSxcbiAgICAgICAgICAgICAgYWN0aW9uWzFdLFxuICAgICAgICAgICAgICB2c3RhY2ssXG4gICAgICAgICAgICAgIGxzdGFja1xuICAgICAgICAgICAgXS5jb25jYXQoYXJncykpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlbikge1xuICAgICAgICAgICAgICBzdGFjayA9IHN0YWNrLnNsaWNlKDAsIC0xICogbGVuICogMik7XG4gICAgICAgICAgICAgIHZzdGFjayA9IHZzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICAgIGxzdGFjayA9IGxzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFjay5wdXNoKHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMF0pO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2goeXl2YWwuJCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaCh5eXZhbC5fJCk7XG4gICAgICAgICAgICBuZXdTdGF0ZSA9IHRhYmxlW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDJdXVtzdGFja1tzdGFjay5sZW5ndGggLSAxXV07XG4gICAgICAgICAgICBzdGFjay5wdXNoKG5ld1N0YXRlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH07XG4gIHZhciBsZXhlciA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBsZXhlcjIgPSB7XG4gICAgICBFT0Y6IDEsXG4gICAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgICBpZiAodGhpcy55eS5wYXJzZXIpIHtcbiAgICAgICAgICB0aGlzLnl5LnBhcnNlci5wYXJzZUVycm9yKHN0ciwgaGFzaCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHN0cik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXNldHMgdGhlIGxleGVyLCBzZXRzIG5ldyBpbnB1dFxuICAgICAgc2V0SW5wdXQ6IGZ1bmN0aW9uKGlucHV0LCB5eSkge1xuICAgICAgICB0aGlzLnl5ID0geXkgfHwgdGhpcy55eSB8fCB7fTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRoaXMuX2JhY2t0cmFjayA9IHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnl5bGluZW5vID0gdGhpcy55eWxlbmcgPSAwO1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrID0gW1wiSU5JVElBTFwiXTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IDAsXG4gICAgICAgICAgbGFzdF9saW5lOiAxLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiAwXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbMCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBjb25zdW1lcyBhbmQgcmV0dXJucyBvbmUgY2hhciBmcm9tIHRoZSBpbnB1dFxuICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY2ggPSB0aGlzLl9pbnB1dFswXTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gY2g7XG4gICAgICAgIHRoaXMueXlsZW5nKys7XG4gICAgICAgIHRoaXMub2Zmc2V0Kys7XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gY2g7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBjaDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2gubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vKys7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9saW5lKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9jb2x1bW4rKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlWzFdKys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZSgxKTtcbiAgICAgICAgcmV0dXJuIGNoO1xuICAgICAgfSxcbiAgICAgIC8vIHVuc2hpZnRzIG9uZSBjaGFyIChvciBhIHN0cmluZykgaW50byB0aGUgaW5wdXRcbiAgICAgIHVucHV0OiBmdW5jdGlvbihjaCkge1xuICAgICAgICB2YXIgbGVuID0gY2gubGVuZ3RoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGNoICsgdGhpcy5faW5wdXQ7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy55eXRleHQuc3Vic3RyKDAsIHRoaXMueXl0ZXh0Lmxlbmd0aCAtIGxlbik7XG4gICAgICAgIHRoaXMub2Zmc2V0IC09IGxlbjtcbiAgICAgICAgdmFyIG9sZExpbmVzID0gdGhpcy5tYXRjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLm1hdGNoID0gdGhpcy5tYXRjaC5zdWJzdHIoMCwgdGhpcy5tYXRjaC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gMSk7XG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyAtPSBsaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHZhciByID0gdGhpcy55eWxsb2MucmFuZ2U7XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyAobGluZXMubGVuZ3RoID09PSBvbGRMaW5lcy5sZW5ndGggPyB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gOiAwKSArIG9sZExpbmVzW29sZExpbmVzLmxlbmd0aCAtIGxpbmVzLmxlbmd0aF0ubGVuZ3RoIC0gbGluZXNbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIC0gbGVuXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbclswXSwgclswXSArIHRoaXMueXlsZW5nIC0gbGVuXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIGNhY2hlcyBtYXRjaGVkIHRleHQgYW5kIGFwcGVuZHMgaXQgb24gbmV4dCBhY3Rpb25cbiAgICAgIG1vcmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLl9tb3JlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIHNpZ25hbHMgdGhlIGxleGVyIHRoYXQgdGhpcyBydWxlIGZhaWxzIHRvIG1hdGNoIHRoZSBpbnB1dCwgc28gdGhlIG5leHQgbWF0Y2hpbmcgcnVsZSAocmVnZXgpIHNob3VsZCBiZSB0ZXN0ZWQgaW5zdGVhZC5cbiAgICAgIHJlamVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBZb3UgY2FuIG9ubHkgaW52b2tlIHJlamVjdCgpIGluIHRoZSBsZXhlciB3aGVuIHRoZSBsZXhlciBpcyBvZiB0aGUgYmFja3RyYWNraW5nIHBlcnN1YXNpb24gKG9wdGlvbnMuYmFja3RyYWNrX2xleGVyID0gdHJ1ZSkuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gcmV0YWluIGZpcnN0IG4gY2hhcmFjdGVycyBvZiB0aGUgbWF0Y2hcbiAgICAgIGxlc3M6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdGhpcy51bnB1dCh0aGlzLm1hdGNoLnNsaWNlKG4pKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyBhbHJlYWR5IG1hdGNoZWQgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBwYXN0SW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcGFzdCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIHRoaXMubWF0Y2gubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIChwYXN0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpICsgcGFzdC5zdWJzdHIoLTIwKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdXBjb21pbmcgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICB1cGNvbWluZ0lucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLm1hdGNoO1xuICAgICAgICBpZiAobmV4dC5sZW5ndGggPCAyMCkge1xuICAgICAgICAgIG5leHQgKz0gdGhpcy5faW5wdXQuc3Vic3RyKDAsIDIwIC0gbmV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAobmV4dC5zdWJzdHIoMCwgMjApICsgKG5leHQubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikpLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB0aGUgY2hhcmFjdGVyIHBvc2l0aW9uIHdoZXJlIHRoZSBsZXhpbmcgZXJyb3Igb2NjdXJyZWQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBzaG93UG9zaXRpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcHJlID0gdGhpcy5wYXN0SW5wdXQoKTtcbiAgICAgICAgdmFyIGMgPSBuZXcgQXJyYXkocHJlLmxlbmd0aCArIDEpLmpvaW4oXCItXCIpO1xuICAgICAgICByZXR1cm4gcHJlICsgdGhpcy51cGNvbWluZ0lucHV0KCkgKyBcIlxcblwiICsgYyArIFwiXlwiO1xuICAgICAgfSxcbiAgICAgIC8vIHRlc3QgdGhlIGxleGVkIHRva2VuOiByZXR1cm4gRkFMU0Ugd2hlbiBub3QgYSBtYXRjaCwgb3RoZXJ3aXNlIHJldHVybiB0b2tlblxuICAgICAgdGVzdF9tYXRjaDogZnVuY3Rpb24obWF0Y2gsIGluZGV4ZWRfcnVsZSkge1xuICAgICAgICB2YXIgdG9rZW4sIGxpbmVzLCBiYWNrdXA7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgYmFja3VwID0ge1xuICAgICAgICAgICAgeXlsaW5lbm86IHRoaXMueXlsaW5lbm8sXG4gICAgICAgICAgICB5eWxsb2M6IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHl5dGV4dDogdGhpcy55eXRleHQsXG4gICAgICAgICAgICBtYXRjaDogdGhpcy5tYXRjaCxcbiAgICAgICAgICAgIG1hdGNoZXM6IHRoaXMubWF0Y2hlcyxcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRoaXMubWF0Y2hlZCxcbiAgICAgICAgICAgIHl5bGVuZzogdGhpcy55eWxlbmcsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgX21vcmU6IHRoaXMuX21vcmUsXG4gICAgICAgICAgICBfaW5wdXQ6IHRoaXMuX2lucHV0LFxuICAgICAgICAgICAgeXk6IHRoaXMueXksXG4gICAgICAgICAgICBjb25kaXRpb25TdGFjazogdGhpcy5jb25kaXRpb25TdGFjay5zbGljZSgwKSxcbiAgICAgICAgICAgIGRvbmU6IHRoaXMuZG9uZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICAgIGJhY2t1cC55eWxsb2MucmFuZ2UgPSB0aGlzLnl5bGxvYy5yYW5nZS5zbGljZSgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMgPSBtYXRjaFswXS5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gKz0gbGluZXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmxhc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoIC0gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubWF0Y2goL1xccj9cXG4/LylbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4gKyBtYXRjaFswXS5sZW5ndGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2hlcyA9IG1hdGNoO1xuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFt0aGlzLm9mZnNldCwgdGhpcy5vZmZzZXQgKz0gdGhpcy55eWxlbmddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21vcmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UobWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IG1hdGNoWzBdO1xuICAgICAgICB0b2tlbiA9IHRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHRoaXMsIHRoaXMueXksIHRoaXMsIGluZGV4ZWRfcnVsZSwgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSAmJiB0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICBmb3IgKHZhciBrIGluIGJhY2t1cCkge1xuICAgICAgICAgICAgdGhpc1trXSA9IGJhY2t1cFtrXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCBpbiBpbnB1dFxuICAgICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmRvbmUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRva2VuLCBtYXRjaCwgdGVtcE1hdGNoLCBpbmRleDtcbiAgICAgICAgaWYgKCF0aGlzLl9tb3JlKSB7XG4gICAgICAgICAgdGhpcy55eXRleHQgPSBcIlwiO1xuICAgICAgICAgIHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBydWxlcyA9IHRoaXMuX2N1cnJlbnRSdWxlcygpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGVtcE1hdGNoID0gdGhpcy5faW5wdXQubWF0Y2godGhpcy5ydWxlc1tydWxlc1tpXV0pO1xuICAgICAgICAgIGlmICh0ZW1wTWF0Y2ggJiYgKCFtYXRjaCB8fCB0ZW1wTWF0Y2hbMF0ubGVuZ3RoID4gbWF0Y2hbMF0ubGVuZ3RoKSkge1xuICAgICAgICAgICAgbWF0Y2ggPSB0ZW1wTWF0Y2g7XG4gICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaCh0ZW1wTWF0Y2gsIHJ1bGVzW2ldKTtcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRpb25zLmZsZXgpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKG1hdGNoLCBydWxlc1tpbmRleF0pO1xuICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dCA9PT0gXCJcIikge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBVbnJlY29nbml6ZWQgdGV4dC5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIHRoYXQgaGFzIGEgdG9rZW5cbiAgICAgIGxleDogZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgciA9IHRoaXMubmV4dCgpO1xuICAgICAgICBpZiAocikge1xuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxleCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWN0aXZhdGVzIGEgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSAocHVzaGVzIHRoZSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9udG8gdGhlIGNvbmRpdGlvbiBzdGFjaylcbiAgICAgIGJlZ2luOiBmdW5jdGlvbiBiZWdpbihjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjay5wdXNoKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcG9wIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGUgb2ZmIHRoZSBjb25kaXRpb24gc3RhY2tcbiAgICAgIHBvcFN0YXRlOiBmdW5jdGlvbiBwb3BTdGF0ZSgpIHtcbiAgICAgICAgdmFyIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDE7XG4gICAgICAgIGlmIChuID4gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLnBvcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrWzBdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcHJvZHVjZSB0aGUgbGV4ZXIgcnVsZSBzZXQgd2hpY2ggaXMgYWN0aXZlIGZvciB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGVcbiAgICAgIF9jdXJyZW50UnVsZXM6IGZ1bmN0aW9uIF9jdXJyZW50UnVsZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAmJiB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW3RoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXV0ucnVsZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1tcIklOSVRJQUxcIl0ucnVsZXM7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlOyB3aGVuIGFuIGluZGV4IGFyZ3VtZW50IGlzIHByb3ZpZGVkIGl0IHByb2R1Y2VzIHRoZSBOLXRoIHByZXZpb3VzIGNvbmRpdGlvbiBzdGF0ZSwgaWYgYXZhaWxhYmxlXG4gICAgICB0b3BTdGF0ZTogZnVuY3Rpb24gdG9wU3RhdGUobikge1xuICAgICAgICBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxIC0gTWF0aC5hYnMobiB8fCAwKTtcbiAgICAgICAgaWYgKG4gPj0gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrW25dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBcIklOSVRJQUxcIjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFsaWFzIGZvciBiZWdpbihjb25kaXRpb24pXG4gICAgICBwdXNoU3RhdGU6IGZ1bmN0aW9uIHB1c2hTdGF0ZShjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5iZWdpbihjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXRlcyBjdXJyZW50bHkgb24gdGhlIHN0YWNrXG4gICAgICBzdGF0ZVN0YWNrU2l6ZTogZnVuY3Rpb24gc3RhdGVTdGFja1NpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aDtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7IFwiY2FzZS1pbnNlbnNpdGl2ZVwiOiB0cnVlIH0sXG4gICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXksIHl5XywgJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucywgWVlfU1RBUlQpIHtcbiAgICAgICAgc3dpdGNoICgkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zKSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIDMyO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJ0aXRsZVwiKTtcbiAgICAgICAgICAgIHJldHVybiAxMztcbiAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJ0aXRsZV92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfdGl0bGVcIik7XG4gICAgICAgICAgICByZXR1cm4gMTU7XG4gICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX3RpdGxlX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjclwiKTtcbiAgICAgICAgICAgIHJldHVybiAxNztcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjcl9tdWx0aWxpbmVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgcmV0dXJuIDI1O1xuICAgICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgICByZXR1cm4gMjc7XG4gICAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICAgIHJldHVybiAyNjtcbiAgICAgICAgICBjYXNlIDE2OlxuICAgICAgICAgICAgcmV0dXJuIDI4O1xuICAgICAgICAgIGNhc2UgMTc6XG4gICAgICAgICAgICByZXR1cm4gMjk7XG4gICAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICAgIHJldHVybiAzMDtcbiAgICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgICAgcmV0dXJuIDMxO1xuICAgICAgICAgIGNhc2UgMjA6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwibWRfc3RyaW5nXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICAgIHJldHVybiBcIk1EX1NUUlwiO1xuICAgICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInN0cmluZ1wiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgICAgcmV0dXJuIFwiU1RSXCI7XG4gICAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJwb2ludF9zdGFydFwiKTtcbiAgICAgICAgICAgIHJldHVybiAyMjtcbiAgICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInBvaW50X3hcIik7XG4gICAgICAgICAgICByZXR1cm4gMjM7XG4gICAgICAgICAgY2FzZSAyODpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjk6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwicG9pbnRfeVwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gMjQ7XG4gICAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICAgIHJldHVybiA2O1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgICByZXR1cm4gNDM7XG4gICAgICAgICAgY2FzZSAzMzpcbiAgICAgICAgICAgIHJldHVybiBcIkNPTE9OXCI7XG4gICAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICAgIHJldHVybiA0NTtcbiAgICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgICAgcmV0dXJuIDQ0O1xuICAgICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgICByZXR1cm4gNDY7XG4gICAgICAgICAgY2FzZSAzNzpcbiAgICAgICAgICAgIHJldHVybiA0NjtcbiAgICAgICAgICBjYXNlIDM4OlxuICAgICAgICAgICAgcmV0dXJuIDQ3O1xuICAgICAgICAgIGNhc2UgMzk6XG4gICAgICAgICAgICByZXR1cm4gNDk7XG4gICAgICAgICAgY2FzZSA0MDpcbiAgICAgICAgICAgIHJldHVybiA1MDtcbiAgICAgICAgICBjYXNlIDQxOlxuICAgICAgICAgICAgcmV0dXJuIDQ4O1xuICAgICAgICAgIGNhc2UgNDI6XG4gICAgICAgICAgICByZXR1cm4gNDE7XG4gICAgICAgICAgY2FzZSA0MzpcbiAgICAgICAgICAgIHJldHVybiA1MTtcbiAgICAgICAgICBjYXNlIDQ0OlxuICAgICAgICAgICAgcmV0dXJuIDQyO1xuICAgICAgICAgIGNhc2UgNDU6XG4gICAgICAgICAgICByZXR1cm4gNTtcbiAgICAgICAgICBjYXNlIDQ2OlxuICAgICAgICAgICAgcmV0dXJuIDMzO1xuICAgICAgICAgIGNhc2UgNDc6XG4gICAgICAgICAgICByZXR1cm4gNDA7XG4gICAgICAgICAgY2FzZSA0ODpcbiAgICAgICAgICAgIHJldHVybiAzNDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiBbL14oPzolJSg/IVxceylbXlxcbl0qKS9pLCAvXig/OlteXFx9XSUlW15cXG5dKikvaSwgL14oPzpbXFxuXFxyXSspL2ksIC9eKD86JSVbXlxcbl0qKS9pLCAvXig/OnRpdGxlXFxiKS9pLCAvXig/Oig/IVxcbnx8KSpbXlxcbl0qKS9pLCAvXig/OmFjY1RpdGxlXFxzKjpcXHMqKS9pLCAvXig/Oig/IVxcbnx8KSpbXlxcbl0qKS9pLCAvXig/OmFjY0Rlc2NyXFxzKjpcXHMqKS9pLCAvXig/Oig/IVxcbnx8KSpbXlxcbl0qKS9pLCAvXig/OmFjY0Rlc2NyXFxzKlxce1xccyopL2ksIC9eKD86W1xcfV0pL2ksIC9eKD86W15cXH1dKikvaSwgL14oPzogKngtYXhpcyAqKS9pLCAvXig/OiAqeS1heGlzICopL2ksIC9eKD86ICotLSs+ICopL2ksIC9eKD86ICpxdWFkcmFudC0xICopL2ksIC9eKD86ICpxdWFkcmFudC0yICopL2ksIC9eKD86ICpxdWFkcmFudC0zICopL2ksIC9eKD86ICpxdWFkcmFudC00ICopL2ksIC9eKD86W1wiXVtgXSkvaSwgL14oPzpbXmBcIl0rKS9pLCAvXig/OltgXVtcIl0pL2ksIC9eKD86W1wiXSkvaSwgL14oPzpbXCJdKS9pLCAvXig/OlteXCJdKikvaSwgL14oPzpcXHMqOlxccypcXFtcXHMqKS9pLCAvXig/OigxKXwoMCguXFxkKyk/KSkvaSwgL14oPzpcXHMqXFxdICopL2ksIC9eKD86XFxzKixcXHMqKS9pLCAvXig/OigxKXwoMCguXFxkKyk/KSkvaSwgL14oPzogKnF1YWRyYW50Q2hhcnQgKikvaSwgL14oPzpbQS1aYS16XSspL2ksIC9eKD86OikvaSwgL14oPzpcXCspL2ksIC9eKD86LCkvaSwgL14oPzo9KS9pLCAvXig/Oj0pL2ksIC9eKD86XFwqKS9pLCAvXig/OiMpL2ksIC9eKD86W1xcX10pL2ksIC9eKD86XFwuKS9pLCAvXig/OiYpL2ksIC9eKD86LSkvaSwgL14oPzpbMC05XSspL2ksIC9eKD86XFxzKS9pLCAvXig/OjspL2ksIC9eKD86WyFcIiMkJSYnKissLS5gP1xcXFxfL10pL2ksIC9eKD86JCkvaV0sXG4gICAgICBjb25kaXRpb25zOiB7IFwicG9pbnRfeVwiOiB7IFwicnVsZXNcIjogWzMwXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJwb2ludF94XCI6IHsgXCJydWxlc1wiOiBbMjldLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInBvaW50X3N0YXJ0XCI6IHsgXCJydWxlc1wiOiBbMjcsIDI4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCI6IHsgXCJydWxlc1wiOiBbMTEsIDEyXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfZGVzY3JcIjogeyBcInJ1bGVzXCI6IFs5XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfdGl0bGVcIjogeyBcInJ1bGVzXCI6IFs3XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJ0aXRsZVwiOiB7IFwicnVsZXNcIjogWzVdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIm1kX3N0cmluZ1wiOiB7IFwicnVsZXNcIjogWzIxLCAyMl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwic3RyaW5nXCI6IHsgXCJydWxlc1wiOiBbMjQsIDI1XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMSwgMiwgMywgNCwgNiwgOCwgMTAsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjMsIDI2LCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwgXCJpbmNsdXNpdmVcIjogdHJ1ZSB9IH1cbiAgICB9O1xuICAgIHJldHVybiBsZXhlcjI7XG4gIH0oKTtcbiAgcGFyc2VyMi5sZXhlciA9IGxleGVyO1xuICBmdW5jdGlvbiBQYXJzZXIoKSB7XG4gICAgdGhpcy55eSA9IHt9O1xuICB9XG4gIFBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXIyO1xuICBwYXJzZXIyLlBhcnNlciA9IFBhcnNlcjtcbiAgcmV0dXJuIG5ldyBQYXJzZXIoKTtcbn0oKTtcbnBhcnNlci5wYXJzZXIgPSBwYXJzZXI7XG5jb25zdCBwYXJzZXIkMSA9IHBhcnNlcjtcbmNvbnN0IGRlZmF1bHRUaGVtZVZhcmlhYmxlcyA9IGdldFRoZW1lVmFyaWFibGVzKCk7XG5jbGFzcyBRdWFkcmFudEJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuZ2V0RGVmYXVsdENvbmZpZygpO1xuICAgIHRoaXMudGhlbWVDb25maWcgPSB0aGlzLmdldERlZmF1bHRUaGVtZUNvbmZpZygpO1xuICAgIHRoaXMuZGF0YSA9IHRoaXMuZ2V0RGVmYXVsdERhdGEoKTtcbiAgfVxuICBnZXREZWZhdWx0RGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGVUZXh0OiBcIlwiLFxuICAgICAgcXVhZHJhbnQxVGV4dDogXCJcIixcbiAgICAgIHF1YWRyYW50MlRleHQ6IFwiXCIsXG4gICAgICBxdWFkcmFudDNUZXh0OiBcIlwiLFxuICAgICAgcXVhZHJhbnQ0VGV4dDogXCJcIixcbiAgICAgIHhBeGlzTGVmdFRleHQ6IFwiXCIsXG4gICAgICB4QXhpc1JpZ2h0VGV4dDogXCJcIixcbiAgICAgIHlBeGlzQm90dG9tVGV4dDogXCJcIixcbiAgICAgIHlBeGlzVG9wVGV4dDogXCJcIixcbiAgICAgIHBvaW50czogW11cbiAgICB9O1xuICB9XG4gIGdldERlZmF1bHRDb25maWcoKSB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2ksIF9qLCBfaywgX2wsIF9tLCBfbiwgX28sIF9wLCBfcSwgX3I7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNob3dYQXhpczogdHJ1ZSxcbiAgICAgIHNob3dZQXhpczogdHJ1ZSxcbiAgICAgIHNob3dUaXRsZTogdHJ1ZSxcbiAgICAgIGNoYXJ0SGVpZ2h0OiAoKF9hID0gZGVmYXVsdENvbmZpZy5xdWFkcmFudENoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2EuY2hhcnRXaWR0aCkgfHwgNTAwLFxuICAgICAgY2hhcnRXaWR0aDogKChfYiA9IGRlZmF1bHRDb25maWcucXVhZHJhbnRDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLmNoYXJ0SGVpZ2h0KSB8fCA1MDAsXG4gICAgICB0aXRsZVBhZGRpbmc6ICgoX2MgPSBkZWZhdWx0Q29uZmlnLnF1YWRyYW50Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYy50aXRsZVBhZGRpbmcpIHx8IDEwLFxuICAgICAgdGl0bGVGb250U2l6ZTogKChfZCA9IGRlZmF1bHRDb25maWcucXVhZHJhbnRDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kLnRpdGxlRm9udFNpemUpIHx8IDIwLFxuICAgICAgcXVhZHJhbnRQYWRkaW5nOiAoKF9lID0gZGVmYXVsdENvbmZpZy5xdWFkcmFudENoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2UucXVhZHJhbnRQYWRkaW5nKSB8fCA1LFxuICAgICAgeEF4aXNMYWJlbFBhZGRpbmc6ICgoX2YgPSBkZWZhdWx0Q29uZmlnLnF1YWRyYW50Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfZi54QXhpc0xhYmVsUGFkZGluZykgfHwgNSxcbiAgICAgIHlBeGlzTGFiZWxQYWRkaW5nOiAoKF9nID0gZGVmYXVsdENvbmZpZy5xdWFkcmFudENoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2cueUF4aXNMYWJlbFBhZGRpbmcpIHx8IDUsXG4gICAgICB4QXhpc0xhYmVsRm9udFNpemU6ICgoX2ggPSBkZWZhdWx0Q29uZmlnLnF1YWRyYW50Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfaC54QXhpc0xhYmVsRm9udFNpemUpIHx8IDE2LFxuICAgICAgeUF4aXNMYWJlbEZvbnRTaXplOiAoKF9pID0gZGVmYXVsdENvbmZpZy5xdWFkcmFudENoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2kueUF4aXNMYWJlbEZvbnRTaXplKSB8fCAxNixcbiAgICAgIHF1YWRyYW50TGFiZWxGb250U2l6ZTogKChfaiA9IGRlZmF1bHRDb25maWcucXVhZHJhbnRDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9qLnF1YWRyYW50TGFiZWxGb250U2l6ZSkgfHwgMTYsXG4gICAgICBxdWFkcmFudFRleHRUb3BQYWRkaW5nOiAoKF9rID0gZGVmYXVsdENvbmZpZy5xdWFkcmFudENoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2sucXVhZHJhbnRUZXh0VG9wUGFkZGluZykgfHwgNSxcbiAgICAgIHBvaW50VGV4dFBhZGRpbmc6ICgoX2wgPSBkZWZhdWx0Q29uZmlnLnF1YWRyYW50Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfbC5wb2ludFRleHRQYWRkaW5nKSB8fCA1LFxuICAgICAgcG9pbnRMYWJlbEZvbnRTaXplOiAoKF9tID0gZGVmYXVsdENvbmZpZy5xdWFkcmFudENoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX20ucG9pbnRMYWJlbEZvbnRTaXplKSB8fCAxMixcbiAgICAgIHBvaW50UmFkaXVzOiAoKF9uID0gZGVmYXVsdENvbmZpZy5xdWFkcmFudENoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX24ucG9pbnRSYWRpdXMpIHx8IDUsXG4gICAgICB4QXhpc1Bvc2l0aW9uOiAoKF9vID0gZGVmYXVsdENvbmZpZy5xdWFkcmFudENoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX28ueEF4aXNQb3NpdGlvbikgfHwgXCJ0b3BcIixcbiAgICAgIHlBeGlzUG9zaXRpb246ICgoX3AgPSBkZWZhdWx0Q29uZmlnLnF1YWRyYW50Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfcC55QXhpc1Bvc2l0aW9uKSB8fCBcImxlZnRcIixcbiAgICAgIHF1YWRyYW50SW50ZXJuYWxCb3JkZXJTdHJva2VXaWR0aDogKChfcSA9IGRlZmF1bHRDb25maWcucXVhZHJhbnRDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9xLnF1YWRyYW50SW50ZXJuYWxCb3JkZXJTdHJva2VXaWR0aCkgfHwgMSxcbiAgICAgIHF1YWRyYW50RXh0ZXJuYWxCb3JkZXJTdHJva2VXaWR0aDogKChfciA9IGRlZmF1bHRDb25maWcucXVhZHJhbnRDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yLnF1YWRyYW50RXh0ZXJuYWxCb3JkZXJTdHJva2VXaWR0aCkgfHwgMlxuICAgIH07XG4gIH1cbiAgZ2V0RGVmYXVsdFRoZW1lQ29uZmlnKCkge1xuICAgIHJldHVybiB7XG4gICAgICBxdWFkcmFudDFGaWxsOiBkZWZhdWx0VGhlbWVWYXJpYWJsZXMucXVhZHJhbnQxRmlsbCxcbiAgICAgIHF1YWRyYW50MkZpbGw6IGRlZmF1bHRUaGVtZVZhcmlhYmxlcy5xdWFkcmFudDJGaWxsLFxuICAgICAgcXVhZHJhbnQzRmlsbDogZGVmYXVsdFRoZW1lVmFyaWFibGVzLnF1YWRyYW50M0ZpbGwsXG4gICAgICBxdWFkcmFudDRGaWxsOiBkZWZhdWx0VGhlbWVWYXJpYWJsZXMucXVhZHJhbnQ0RmlsbCxcbiAgICAgIHF1YWRyYW50MVRleHRGaWxsOiBkZWZhdWx0VGhlbWVWYXJpYWJsZXMucXVhZHJhbnQxVGV4dEZpbGwsXG4gICAgICBxdWFkcmFudDJUZXh0RmlsbDogZGVmYXVsdFRoZW1lVmFyaWFibGVzLnF1YWRyYW50MlRleHRGaWxsLFxuICAgICAgcXVhZHJhbnQzVGV4dEZpbGw6IGRlZmF1bHRUaGVtZVZhcmlhYmxlcy5xdWFkcmFudDNUZXh0RmlsbCxcbiAgICAgIHF1YWRyYW50NFRleHRGaWxsOiBkZWZhdWx0VGhlbWVWYXJpYWJsZXMucXVhZHJhbnQ0VGV4dEZpbGwsXG4gICAgICBxdWFkcmFudFBvaW50RmlsbDogZGVmYXVsdFRoZW1lVmFyaWFibGVzLnF1YWRyYW50UG9pbnRGaWxsLFxuICAgICAgcXVhZHJhbnRQb2ludFRleHRGaWxsOiBkZWZhdWx0VGhlbWVWYXJpYWJsZXMucXVhZHJhbnRQb2ludFRleHRGaWxsLFxuICAgICAgcXVhZHJhbnRYQXhpc1RleHRGaWxsOiBkZWZhdWx0VGhlbWVWYXJpYWJsZXMucXVhZHJhbnRYQXhpc1RleHRGaWxsLFxuICAgICAgcXVhZHJhbnRZQXhpc1RleHRGaWxsOiBkZWZhdWx0VGhlbWVWYXJpYWJsZXMucXVhZHJhbnRZQXhpc1RleHRGaWxsLFxuICAgICAgcXVhZHJhbnRUaXRsZUZpbGw6IGRlZmF1bHRUaGVtZVZhcmlhYmxlcy5xdWFkcmFudFRpdGxlRmlsbCxcbiAgICAgIHF1YWRyYW50SW50ZXJuYWxCb3JkZXJTdHJva2VGaWxsOiBkZWZhdWx0VGhlbWVWYXJpYWJsZXMucXVhZHJhbnRJbnRlcm5hbEJvcmRlclN0cm9rZUZpbGwsXG4gICAgICBxdWFkcmFudEV4dGVybmFsQm9yZGVyU3Ryb2tlRmlsbDogZGVmYXVsdFRoZW1lVmFyaWFibGVzLnF1YWRyYW50RXh0ZXJuYWxCb3JkZXJTdHJva2VGaWxsXG4gICAgfTtcbiAgfVxuICBjbGVhcigpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuZ2V0RGVmYXVsdENvbmZpZygpO1xuICAgIHRoaXMudGhlbWVDb25maWcgPSB0aGlzLmdldERlZmF1bHRUaGVtZUNvbmZpZygpO1xuICAgIHRoaXMuZGF0YSA9IHRoaXMuZ2V0RGVmYXVsdERhdGEoKTtcbiAgICBsb2cuaW5mbyhcImNsZWFyIGNhbGxlZFwiKTtcbiAgfVxuICBzZXREYXRhKGRhdGEpIHtcbiAgICB0aGlzLmRhdGEgPSB7IC4uLnRoaXMuZGF0YSwgLi4uZGF0YSB9O1xuICB9XG4gIGFkZFBvaW50cyhwb2ludHMpIHtcbiAgICB0aGlzLmRhdGEucG9pbnRzID0gWy4uLnBvaW50cywgLi4udGhpcy5kYXRhLnBvaW50c107XG4gIH1cbiAgc2V0Q29uZmlnKGNvbmZpZzIpIHtcbiAgICBsb2cudHJhY2UoXCJzZXRDb25maWcgY2FsbGVkIHdpdGg6IFwiLCBjb25maWcyKTtcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4udGhpcy5jb25maWcsIC4uLmNvbmZpZzIgfTtcbiAgfVxuICBzZXRUaGVtZUNvbmZpZyh0aGVtZUNvbmZpZykge1xuICAgIGxvZy50cmFjZShcInNldFRoZW1lQ29uZmlnIGNhbGxlZCB3aXRoOiBcIiwgdGhlbWVDb25maWcpO1xuICAgIHRoaXMudGhlbWVDb25maWcgPSB7IC4uLnRoaXMudGhlbWVDb25maWcsIC4uLnRoZW1lQ29uZmlnIH07XG4gIH1cbiAgY2FsY3VsYXRlU3BhY2UoeEF4aXNQb3NpdGlvbiwgc2hvd1hBeGlzLCBzaG93WUF4aXMsIHNob3dUaXRsZSkge1xuICAgIGNvbnN0IHhBeGlzU3BhY2VDYWxjdWxhdGlvbiA9IHRoaXMuY29uZmlnLnhBeGlzTGFiZWxQYWRkaW5nICogMiArIHRoaXMuY29uZmlnLnhBeGlzTGFiZWxGb250U2l6ZTtcbiAgICBjb25zdCB4QXhpc1NwYWNlID0ge1xuICAgICAgdG9wOiB4QXhpc1Bvc2l0aW9uID09PSBcInRvcFwiICYmIHNob3dYQXhpcyA/IHhBeGlzU3BhY2VDYWxjdWxhdGlvbiA6IDAsXG4gICAgICBib3R0b206IHhBeGlzUG9zaXRpb24gPT09IFwiYm90dG9tXCIgJiYgc2hvd1hBeGlzID8geEF4aXNTcGFjZUNhbGN1bGF0aW9uIDogMFxuICAgIH07XG4gICAgY29uc3QgeUF4aXNTcGFjZUNhbGN1bGF0aW9uID0gdGhpcy5jb25maWcueUF4aXNMYWJlbFBhZGRpbmcgKiAyICsgdGhpcy5jb25maWcueUF4aXNMYWJlbEZvbnRTaXplO1xuICAgIGNvbnN0IHlBeGlzU3BhY2UgPSB7XG4gICAgICBsZWZ0OiB0aGlzLmNvbmZpZy55QXhpc1Bvc2l0aW9uID09PSBcImxlZnRcIiAmJiBzaG93WUF4aXMgPyB5QXhpc1NwYWNlQ2FsY3VsYXRpb24gOiAwLFxuICAgICAgcmlnaHQ6IHRoaXMuY29uZmlnLnlBeGlzUG9zaXRpb24gPT09IFwicmlnaHRcIiAmJiBzaG93WUF4aXMgPyB5QXhpc1NwYWNlQ2FsY3VsYXRpb24gOiAwXG4gICAgfTtcbiAgICBjb25zdCB0aXRsZVNwYWNlQ2FsY3VsYXRpb24gPSB0aGlzLmNvbmZpZy50aXRsZUZvbnRTaXplICsgdGhpcy5jb25maWcudGl0bGVQYWRkaW5nICogMjtcbiAgICBjb25zdCB0aXRsZVNwYWNlID0ge1xuICAgICAgdG9wOiBzaG93VGl0bGUgPyB0aXRsZVNwYWNlQ2FsY3VsYXRpb24gOiAwXG4gICAgfTtcbiAgICBjb25zdCBxdWFkcmFudExlZnQgPSB0aGlzLmNvbmZpZy5xdWFkcmFudFBhZGRpbmcgKyB5QXhpc1NwYWNlLmxlZnQ7XG4gICAgY29uc3QgcXVhZHJhbnRUb3AgPSB0aGlzLmNvbmZpZy5xdWFkcmFudFBhZGRpbmcgKyB4QXhpc1NwYWNlLnRvcCArIHRpdGxlU3BhY2UudG9wO1xuICAgIGNvbnN0IHF1YWRyYW50V2lkdGggPSB0aGlzLmNvbmZpZy5jaGFydFdpZHRoIC0gdGhpcy5jb25maWcucXVhZHJhbnRQYWRkaW5nICogMiAtIHlBeGlzU3BhY2UubGVmdCAtIHlBeGlzU3BhY2UucmlnaHQ7XG4gICAgY29uc3QgcXVhZHJhbnRIZWlnaHQgPSB0aGlzLmNvbmZpZy5jaGFydEhlaWdodCAtIHRoaXMuY29uZmlnLnF1YWRyYW50UGFkZGluZyAqIDIgLSB4QXhpc1NwYWNlLnRvcCAtIHhBeGlzU3BhY2UuYm90dG9tIC0gdGl0bGVTcGFjZS50b3A7XG4gICAgY29uc3QgcXVhZHJhbnRIYWxmV2lkdGggPSBxdWFkcmFudFdpZHRoIC8gMjtcbiAgICBjb25zdCBxdWFkcmFudEhhbGZIZWlnaHQgPSBxdWFkcmFudEhlaWdodCAvIDI7XG4gICAgY29uc3QgcXVhZHJhbnRTcGFjZSA9IHtcbiAgICAgIHF1YWRyYW50TGVmdCxcbiAgICAgIHF1YWRyYW50VG9wLFxuICAgICAgcXVhZHJhbnRXaWR0aCxcbiAgICAgIHF1YWRyYW50SGFsZldpZHRoLFxuICAgICAgcXVhZHJhbnRIZWlnaHQsXG4gICAgICBxdWFkcmFudEhhbGZIZWlnaHRcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICB4QXhpc1NwYWNlLFxuICAgICAgeUF4aXNTcGFjZSxcbiAgICAgIHRpdGxlU3BhY2UsXG4gICAgICBxdWFkcmFudFNwYWNlXG4gICAgfTtcbiAgfVxuICBnZXRBeGlzTGFiZWxzKHhBeGlzUG9zaXRpb24sIHNob3dYQXhpcywgc2hvd1lBeGlzLCBzcGFjZURhdGEpIHtcbiAgICBjb25zdCB7IHF1YWRyYW50U3BhY2UsIHRpdGxlU3BhY2UgfSA9IHNwYWNlRGF0YTtcbiAgICBjb25zdCB7XG4gICAgICBxdWFkcmFudEhhbGZIZWlnaHQsXG4gICAgICBxdWFkcmFudEhlaWdodCxcbiAgICAgIHF1YWRyYW50TGVmdCxcbiAgICAgIHF1YWRyYW50SGFsZldpZHRoLFxuICAgICAgcXVhZHJhbnRUb3AsXG4gICAgICBxdWFkcmFudFdpZHRoXG4gICAgfSA9IHF1YWRyYW50U3BhY2U7XG4gICAgY29uc3QgZHJhd1hBeGlzTGFiZWxzSW5NaWRkbGUgPSBCb29sZWFuKHRoaXMuZGF0YS54QXhpc1JpZ2h0VGV4dCk7XG4gICAgY29uc3QgZHJhd1lBeGlzTGFiZWxzSW5NaWRkbGUgPSBCb29sZWFuKHRoaXMuZGF0YS55QXhpc1RvcFRleHQpO1xuICAgIGNvbnN0IGF4aXNMYWJlbHMgPSBbXTtcbiAgICBpZiAodGhpcy5kYXRhLnhBeGlzTGVmdFRleHQgJiYgc2hvd1hBeGlzKSB7XG4gICAgICBheGlzTGFiZWxzLnB1c2goe1xuICAgICAgICB0ZXh0OiB0aGlzLmRhdGEueEF4aXNMZWZ0VGV4dCxcbiAgICAgICAgZmlsbDogdGhpcy50aGVtZUNvbmZpZy5xdWFkcmFudFhBeGlzVGV4dEZpbGwsXG4gICAgICAgIHg6IHF1YWRyYW50TGVmdCArIChkcmF3WEF4aXNMYWJlbHNJbk1pZGRsZSA/IHF1YWRyYW50SGFsZldpZHRoIC8gMiA6IDApLFxuICAgICAgICB5OiB4QXhpc1Bvc2l0aW9uID09PSBcInRvcFwiID8gdGhpcy5jb25maWcueEF4aXNMYWJlbFBhZGRpbmcgKyB0aXRsZVNwYWNlLnRvcCA6IHRoaXMuY29uZmlnLnhBeGlzTGFiZWxQYWRkaW5nICsgcXVhZHJhbnRUb3AgKyBxdWFkcmFudEhlaWdodCArIHRoaXMuY29uZmlnLnF1YWRyYW50UGFkZGluZyxcbiAgICAgICAgZm9udFNpemU6IHRoaXMuY29uZmlnLnhBeGlzTGFiZWxGb250U2l6ZSxcbiAgICAgICAgdmVydGljYWxQb3M6IGRyYXdYQXhpc0xhYmVsc0luTWlkZGxlID8gXCJjZW50ZXJcIiA6IFwibGVmdFwiLFxuICAgICAgICBob3Jpem9udGFsUG9zOiBcInRvcFwiLFxuICAgICAgICByb3RhdGlvbjogMFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRhdGEueEF4aXNSaWdodFRleHQgJiYgc2hvd1hBeGlzKSB7XG4gICAgICBheGlzTGFiZWxzLnB1c2goe1xuICAgICAgICB0ZXh0OiB0aGlzLmRhdGEueEF4aXNSaWdodFRleHQsXG4gICAgICAgIGZpbGw6IHRoaXMudGhlbWVDb25maWcucXVhZHJhbnRYQXhpc1RleHRGaWxsLFxuICAgICAgICB4OiBxdWFkcmFudExlZnQgKyBxdWFkcmFudEhhbGZXaWR0aCArIChkcmF3WEF4aXNMYWJlbHNJbk1pZGRsZSA/IHF1YWRyYW50SGFsZldpZHRoIC8gMiA6IDApLFxuICAgICAgICB5OiB4QXhpc1Bvc2l0aW9uID09PSBcInRvcFwiID8gdGhpcy5jb25maWcueEF4aXNMYWJlbFBhZGRpbmcgKyB0aXRsZVNwYWNlLnRvcCA6IHRoaXMuY29uZmlnLnhBeGlzTGFiZWxQYWRkaW5nICsgcXVhZHJhbnRUb3AgKyBxdWFkcmFudEhlaWdodCArIHRoaXMuY29uZmlnLnF1YWRyYW50UGFkZGluZyxcbiAgICAgICAgZm9udFNpemU6IHRoaXMuY29uZmlnLnhBeGlzTGFiZWxGb250U2l6ZSxcbiAgICAgICAgdmVydGljYWxQb3M6IGRyYXdYQXhpc0xhYmVsc0luTWlkZGxlID8gXCJjZW50ZXJcIiA6IFwibGVmdFwiLFxuICAgICAgICBob3Jpem9udGFsUG9zOiBcInRvcFwiLFxuICAgICAgICByb3RhdGlvbjogMFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRhdGEueUF4aXNCb3R0b21UZXh0ICYmIHNob3dZQXhpcykge1xuICAgICAgYXhpc0xhYmVscy5wdXNoKHtcbiAgICAgICAgdGV4dDogdGhpcy5kYXRhLnlBeGlzQm90dG9tVGV4dCxcbiAgICAgICAgZmlsbDogdGhpcy50aGVtZUNvbmZpZy5xdWFkcmFudFlBeGlzVGV4dEZpbGwsXG4gICAgICAgIHg6IHRoaXMuY29uZmlnLnlBeGlzUG9zaXRpb24gPT09IFwibGVmdFwiID8gdGhpcy5jb25maWcueUF4aXNMYWJlbFBhZGRpbmcgOiB0aGlzLmNvbmZpZy55QXhpc0xhYmVsUGFkZGluZyArIHF1YWRyYW50TGVmdCArIHF1YWRyYW50V2lkdGggKyB0aGlzLmNvbmZpZy5xdWFkcmFudFBhZGRpbmcsXG4gICAgICAgIHk6IHF1YWRyYW50VG9wICsgcXVhZHJhbnRIZWlnaHQgLSAoZHJhd1lBeGlzTGFiZWxzSW5NaWRkbGUgPyBxdWFkcmFudEhhbGZIZWlnaHQgLyAyIDogMCksXG4gICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbmZpZy55QXhpc0xhYmVsRm9udFNpemUsXG4gICAgICAgIHZlcnRpY2FsUG9zOiBkcmF3WUF4aXNMYWJlbHNJbk1pZGRsZSA/IFwiY2VudGVyXCIgOiBcImxlZnRcIixcbiAgICAgICAgaG9yaXpvbnRhbFBvczogXCJ0b3BcIixcbiAgICAgICAgcm90YXRpb246IC05MFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRhdGEueUF4aXNUb3BUZXh0ICYmIHNob3dZQXhpcykge1xuICAgICAgYXhpc0xhYmVscy5wdXNoKHtcbiAgICAgICAgdGV4dDogdGhpcy5kYXRhLnlBeGlzVG9wVGV4dCxcbiAgICAgICAgZmlsbDogdGhpcy50aGVtZUNvbmZpZy5xdWFkcmFudFlBeGlzVGV4dEZpbGwsXG4gICAgICAgIHg6IHRoaXMuY29uZmlnLnlBeGlzUG9zaXRpb24gPT09IFwibGVmdFwiID8gdGhpcy5jb25maWcueUF4aXNMYWJlbFBhZGRpbmcgOiB0aGlzLmNvbmZpZy55QXhpc0xhYmVsUGFkZGluZyArIHF1YWRyYW50TGVmdCArIHF1YWRyYW50V2lkdGggKyB0aGlzLmNvbmZpZy5xdWFkcmFudFBhZGRpbmcsXG4gICAgICAgIHk6IHF1YWRyYW50VG9wICsgcXVhZHJhbnRIYWxmSGVpZ2h0IC0gKGRyYXdZQXhpc0xhYmVsc0luTWlkZGxlID8gcXVhZHJhbnRIYWxmSGVpZ2h0IC8gMiA6IDApLFxuICAgICAgICBmb250U2l6ZTogdGhpcy5jb25maWcueUF4aXNMYWJlbEZvbnRTaXplLFxuICAgICAgICB2ZXJ0aWNhbFBvczogZHJhd1lBeGlzTGFiZWxzSW5NaWRkbGUgPyBcImNlbnRlclwiIDogXCJsZWZ0XCIsXG4gICAgICAgIGhvcml6b250YWxQb3M6IFwidG9wXCIsXG4gICAgICAgIHJvdGF0aW9uOiAtOTBcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYXhpc0xhYmVscztcbiAgfVxuICBnZXRRdWFkcmFudHMoc3BhY2VEYXRhKSB7XG4gICAgY29uc3QgeyBxdWFkcmFudFNwYWNlIH0gPSBzcGFjZURhdGE7XG4gICAgY29uc3QgeyBxdWFkcmFudEhhbGZIZWlnaHQsIHF1YWRyYW50TGVmdCwgcXVhZHJhbnRIYWxmV2lkdGgsIHF1YWRyYW50VG9wIH0gPSBxdWFkcmFudFNwYWNlO1xuICAgIGNvbnN0IHF1YWRyYW50cyA9IFtcbiAgICAgIHtcbiAgICAgICAgdGV4dDoge1xuICAgICAgICAgIHRleHQ6IHRoaXMuZGF0YS5xdWFkcmFudDFUZXh0LFxuICAgICAgICAgIGZpbGw6IHRoaXMudGhlbWVDb25maWcucXVhZHJhbnQxVGV4dEZpbGwsXG4gICAgICAgICAgeDogMCxcbiAgICAgICAgICB5OiAwLFxuICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbmZpZy5xdWFkcmFudExhYmVsRm9udFNpemUsXG4gICAgICAgICAgdmVydGljYWxQb3M6IFwiY2VudGVyXCIsXG4gICAgICAgICAgaG9yaXpvbnRhbFBvczogXCJtaWRkbGVcIixcbiAgICAgICAgICByb3RhdGlvbjogMFxuICAgICAgICB9LFxuICAgICAgICB4OiBxdWFkcmFudExlZnQgKyBxdWFkcmFudEhhbGZXaWR0aCxcbiAgICAgICAgeTogcXVhZHJhbnRUb3AsXG4gICAgICAgIHdpZHRoOiBxdWFkcmFudEhhbGZXaWR0aCxcbiAgICAgICAgaGVpZ2h0OiBxdWFkcmFudEhhbGZIZWlnaHQsXG4gICAgICAgIGZpbGw6IHRoaXMudGhlbWVDb25maWcucXVhZHJhbnQxRmlsbFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGV4dDoge1xuICAgICAgICAgIHRleHQ6IHRoaXMuZGF0YS5xdWFkcmFudDJUZXh0LFxuICAgICAgICAgIGZpbGw6IHRoaXMudGhlbWVDb25maWcucXVhZHJhbnQyVGV4dEZpbGwsXG4gICAgICAgICAgeDogMCxcbiAgICAgICAgICB5OiAwLFxuICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbmZpZy5xdWFkcmFudExhYmVsRm9udFNpemUsXG4gICAgICAgICAgdmVydGljYWxQb3M6IFwiY2VudGVyXCIsXG4gICAgICAgICAgaG9yaXpvbnRhbFBvczogXCJtaWRkbGVcIixcbiAgICAgICAgICByb3RhdGlvbjogMFxuICAgICAgICB9LFxuICAgICAgICB4OiBxdWFkcmFudExlZnQsXG4gICAgICAgIHk6IHF1YWRyYW50VG9wLFxuICAgICAgICB3aWR0aDogcXVhZHJhbnRIYWxmV2lkdGgsXG4gICAgICAgIGhlaWdodDogcXVhZHJhbnRIYWxmSGVpZ2h0LFxuICAgICAgICBmaWxsOiB0aGlzLnRoZW1lQ29uZmlnLnF1YWRyYW50MkZpbGxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRleHQ6IHtcbiAgICAgICAgICB0ZXh0OiB0aGlzLmRhdGEucXVhZHJhbnQzVGV4dCxcbiAgICAgICAgICBmaWxsOiB0aGlzLnRoZW1lQ29uZmlnLnF1YWRyYW50M1RleHRGaWxsLFxuICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgeTogMCxcbiAgICAgICAgICBmb250U2l6ZTogdGhpcy5jb25maWcucXVhZHJhbnRMYWJlbEZvbnRTaXplLFxuICAgICAgICAgIHZlcnRpY2FsUG9zOiBcImNlbnRlclwiLFxuICAgICAgICAgIGhvcml6b250YWxQb3M6IFwibWlkZGxlXCIsXG4gICAgICAgICAgcm90YXRpb246IDBcbiAgICAgICAgfSxcbiAgICAgICAgeDogcXVhZHJhbnRMZWZ0LFxuICAgICAgICB5OiBxdWFkcmFudFRvcCArIHF1YWRyYW50SGFsZkhlaWdodCxcbiAgICAgICAgd2lkdGg6IHF1YWRyYW50SGFsZldpZHRoLFxuICAgICAgICBoZWlnaHQ6IHF1YWRyYW50SGFsZkhlaWdodCxcbiAgICAgICAgZmlsbDogdGhpcy50aGVtZUNvbmZpZy5xdWFkcmFudDNGaWxsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgdGV4dDogdGhpcy5kYXRhLnF1YWRyYW50NFRleHQsXG4gICAgICAgICAgZmlsbDogdGhpcy50aGVtZUNvbmZpZy5xdWFkcmFudDRUZXh0RmlsbCxcbiAgICAgICAgICB4OiAwLFxuICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgZm9udFNpemU6IHRoaXMuY29uZmlnLnF1YWRyYW50TGFiZWxGb250U2l6ZSxcbiAgICAgICAgICB2ZXJ0aWNhbFBvczogXCJjZW50ZXJcIixcbiAgICAgICAgICBob3Jpem9udGFsUG9zOiBcIm1pZGRsZVwiLFxuICAgICAgICAgIHJvdGF0aW9uOiAwXG4gICAgICAgIH0sXG4gICAgICAgIHg6IHF1YWRyYW50TGVmdCArIHF1YWRyYW50SGFsZldpZHRoLFxuICAgICAgICB5OiBxdWFkcmFudFRvcCArIHF1YWRyYW50SGFsZkhlaWdodCxcbiAgICAgICAgd2lkdGg6IHF1YWRyYW50SGFsZldpZHRoLFxuICAgICAgICBoZWlnaHQ6IHF1YWRyYW50SGFsZkhlaWdodCxcbiAgICAgICAgZmlsbDogdGhpcy50aGVtZUNvbmZpZy5xdWFkcmFudDRGaWxsXG4gICAgICB9XG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IHF1YWRyYW50IG9mIHF1YWRyYW50cykge1xuICAgICAgcXVhZHJhbnQudGV4dC54ID0gcXVhZHJhbnQueCArIHF1YWRyYW50LndpZHRoIC8gMjtcbiAgICAgIGlmICh0aGlzLmRhdGEucG9pbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBxdWFkcmFudC50ZXh0LnkgPSBxdWFkcmFudC55ICsgcXVhZHJhbnQuaGVpZ2h0IC8gMjtcbiAgICAgICAgcXVhZHJhbnQudGV4dC5ob3Jpem9udGFsUG9zID0gXCJtaWRkbGVcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1YWRyYW50LnRleHQueSA9IHF1YWRyYW50LnkgKyB0aGlzLmNvbmZpZy5xdWFkcmFudFRleHRUb3BQYWRkaW5nO1xuICAgICAgICBxdWFkcmFudC50ZXh0Lmhvcml6b250YWxQb3MgPSBcInRvcFwiO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcXVhZHJhbnRzO1xuICB9XG4gIGdldFF1YWRyYW50UG9pbnRzKHNwYWNlRGF0YSkge1xuICAgIGNvbnN0IHsgcXVhZHJhbnRTcGFjZSB9ID0gc3BhY2VEYXRhO1xuICAgIGNvbnN0IHsgcXVhZHJhbnRIZWlnaHQsIHF1YWRyYW50TGVmdCwgcXVhZHJhbnRUb3AsIHF1YWRyYW50V2lkdGggfSA9IHF1YWRyYW50U3BhY2U7XG4gICAgY29uc3QgeEF4aXMgPSBzY2FsZUxpbmVhcigpLmRvbWFpbihbMCwgMV0pLnJhbmdlKFtxdWFkcmFudExlZnQsIHF1YWRyYW50V2lkdGggKyBxdWFkcmFudExlZnRdKTtcbiAgICBjb25zdCB5QXhpcyA9IHNjYWxlTGluZWFyKCkuZG9tYWluKFswLCAxXSkucmFuZ2UoW3F1YWRyYW50SGVpZ2h0ICsgcXVhZHJhbnRUb3AsIHF1YWRyYW50VG9wXSk7XG4gICAgY29uc3QgcG9pbnRzID0gdGhpcy5kYXRhLnBvaW50cy5tYXAoKHBvaW50KSA9PiB7XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgeDogeEF4aXMocG9pbnQueCksXG4gICAgICAgIHk6IHlBeGlzKHBvaW50LnkpLFxuICAgICAgICBmaWxsOiB0aGlzLnRoZW1lQ29uZmlnLnF1YWRyYW50UG9pbnRGaWxsLFxuICAgICAgICByYWRpdXM6IHRoaXMuY29uZmlnLnBvaW50UmFkaXVzLFxuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgdGV4dDogcG9pbnQudGV4dCxcbiAgICAgICAgICBmaWxsOiB0aGlzLnRoZW1lQ29uZmlnLnF1YWRyYW50UG9pbnRUZXh0RmlsbCxcbiAgICAgICAgICB4OiB4QXhpcyhwb2ludC54KSxcbiAgICAgICAgICB5OiB5QXhpcyhwb2ludC55KSArIHRoaXMuY29uZmlnLnBvaW50VGV4dFBhZGRpbmcsXG4gICAgICAgICAgdmVydGljYWxQb3M6IFwiY2VudGVyXCIsXG4gICAgICAgICAgaG9yaXpvbnRhbFBvczogXCJ0b3BcIixcbiAgICAgICAgICBmb250U2l6ZTogdGhpcy5jb25maWcucG9pbnRMYWJlbEZvbnRTaXplLFxuICAgICAgICAgIHJvdGF0aW9uOiAwXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gcHJvcHM7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBvaW50cztcbiAgfVxuICBnZXRCb3JkZXJzKHNwYWNlRGF0YSkge1xuICAgIGNvbnN0IGhhbGZFeHRlcm5hbEJvcmRlcldpZHRoID0gdGhpcy5jb25maWcucXVhZHJhbnRFeHRlcm5hbEJvcmRlclN0cm9rZVdpZHRoIC8gMjtcbiAgICBjb25zdCB7IHF1YWRyYW50U3BhY2UgfSA9IHNwYWNlRGF0YTtcbiAgICBjb25zdCB7XG4gICAgICBxdWFkcmFudEhhbGZIZWlnaHQsXG4gICAgICBxdWFkcmFudEhlaWdodCxcbiAgICAgIHF1YWRyYW50TGVmdCxcbiAgICAgIHF1YWRyYW50SGFsZldpZHRoLFxuICAgICAgcXVhZHJhbnRUb3AsXG4gICAgICBxdWFkcmFudFdpZHRoXG4gICAgfSA9IHF1YWRyYW50U3BhY2U7XG4gICAgY29uc3QgYm9yZGVyTGluZXMgPSBbXG4gICAgICAvLyB0b3AgYm9yZGVyXG4gICAgICB7XG4gICAgICAgIHN0cm9rZUZpbGw6IHRoaXMudGhlbWVDb25maWcucXVhZHJhbnRFeHRlcm5hbEJvcmRlclN0cm9rZUZpbGwsXG4gICAgICAgIHN0cm9rZVdpZHRoOiB0aGlzLmNvbmZpZy5xdWFkcmFudEV4dGVybmFsQm9yZGVyU3Ryb2tlV2lkdGgsXG4gICAgICAgIHgxOiBxdWFkcmFudExlZnQgLSBoYWxmRXh0ZXJuYWxCb3JkZXJXaWR0aCxcbiAgICAgICAgeTE6IHF1YWRyYW50VG9wLFxuICAgICAgICB4MjogcXVhZHJhbnRMZWZ0ICsgcXVhZHJhbnRXaWR0aCArIGhhbGZFeHRlcm5hbEJvcmRlcldpZHRoLFxuICAgICAgICB5MjogcXVhZHJhbnRUb3BcbiAgICAgIH0sXG4gICAgICAvLyByaWdodCBib3JkZXJcbiAgICAgIHtcbiAgICAgICAgc3Ryb2tlRmlsbDogdGhpcy50aGVtZUNvbmZpZy5xdWFkcmFudEV4dGVybmFsQm9yZGVyU3Ryb2tlRmlsbCxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IHRoaXMuY29uZmlnLnF1YWRyYW50RXh0ZXJuYWxCb3JkZXJTdHJva2VXaWR0aCxcbiAgICAgICAgeDE6IHF1YWRyYW50TGVmdCArIHF1YWRyYW50V2lkdGgsXG4gICAgICAgIHkxOiBxdWFkcmFudFRvcCArIGhhbGZFeHRlcm5hbEJvcmRlcldpZHRoLFxuICAgICAgICB4MjogcXVhZHJhbnRMZWZ0ICsgcXVhZHJhbnRXaWR0aCxcbiAgICAgICAgeTI6IHF1YWRyYW50VG9wICsgcXVhZHJhbnRIZWlnaHQgLSBoYWxmRXh0ZXJuYWxCb3JkZXJXaWR0aFxuICAgICAgfSxcbiAgICAgIC8vIGJvdHRvbSBib3JkZXJcbiAgICAgIHtcbiAgICAgICAgc3Ryb2tlRmlsbDogdGhpcy50aGVtZUNvbmZpZy5xdWFkcmFudEV4dGVybmFsQm9yZGVyU3Ryb2tlRmlsbCxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IHRoaXMuY29uZmlnLnF1YWRyYW50RXh0ZXJuYWxCb3JkZXJTdHJva2VXaWR0aCxcbiAgICAgICAgeDE6IHF1YWRyYW50TGVmdCAtIGhhbGZFeHRlcm5hbEJvcmRlcldpZHRoLFxuICAgICAgICB5MTogcXVhZHJhbnRUb3AgKyBxdWFkcmFudEhlaWdodCxcbiAgICAgICAgeDI6IHF1YWRyYW50TGVmdCArIHF1YWRyYW50V2lkdGggKyBoYWxmRXh0ZXJuYWxCb3JkZXJXaWR0aCxcbiAgICAgICAgeTI6IHF1YWRyYW50VG9wICsgcXVhZHJhbnRIZWlnaHRcbiAgICAgIH0sXG4gICAgICAvLyBsZWZ0IGJvcmRlclxuICAgICAge1xuICAgICAgICBzdHJva2VGaWxsOiB0aGlzLnRoZW1lQ29uZmlnLnF1YWRyYW50RXh0ZXJuYWxCb3JkZXJTdHJva2VGaWxsLFxuICAgICAgICBzdHJva2VXaWR0aDogdGhpcy5jb25maWcucXVhZHJhbnRFeHRlcm5hbEJvcmRlclN0cm9rZVdpZHRoLFxuICAgICAgICB4MTogcXVhZHJhbnRMZWZ0LFxuICAgICAgICB5MTogcXVhZHJhbnRUb3AgKyBoYWxmRXh0ZXJuYWxCb3JkZXJXaWR0aCxcbiAgICAgICAgeDI6IHF1YWRyYW50TGVmdCxcbiAgICAgICAgeTI6IHF1YWRyYW50VG9wICsgcXVhZHJhbnRIZWlnaHQgLSBoYWxmRXh0ZXJuYWxCb3JkZXJXaWR0aFxuICAgICAgfSxcbiAgICAgIC8vIHZlcnRpY2FsIGlubmVyIGJvcmRlclxuICAgICAge1xuICAgICAgICBzdHJva2VGaWxsOiB0aGlzLnRoZW1lQ29uZmlnLnF1YWRyYW50SW50ZXJuYWxCb3JkZXJTdHJva2VGaWxsLFxuICAgICAgICBzdHJva2VXaWR0aDogdGhpcy5jb25maWcucXVhZHJhbnRJbnRlcm5hbEJvcmRlclN0cm9rZVdpZHRoLFxuICAgICAgICB4MTogcXVhZHJhbnRMZWZ0ICsgcXVhZHJhbnRIYWxmV2lkdGgsXG4gICAgICAgIHkxOiBxdWFkcmFudFRvcCArIGhhbGZFeHRlcm5hbEJvcmRlcldpZHRoLFxuICAgICAgICB4MjogcXVhZHJhbnRMZWZ0ICsgcXVhZHJhbnRIYWxmV2lkdGgsXG4gICAgICAgIHkyOiBxdWFkcmFudFRvcCArIHF1YWRyYW50SGVpZ2h0IC0gaGFsZkV4dGVybmFsQm9yZGVyV2lkdGhcbiAgICAgIH0sXG4gICAgICAvLyBob3Jpem9udGFsIGlubmVyIGJvcmRlclxuICAgICAge1xuICAgICAgICBzdHJva2VGaWxsOiB0aGlzLnRoZW1lQ29uZmlnLnF1YWRyYW50SW50ZXJuYWxCb3JkZXJTdHJva2VGaWxsLFxuICAgICAgICBzdHJva2VXaWR0aDogdGhpcy5jb25maWcucXVhZHJhbnRJbnRlcm5hbEJvcmRlclN0cm9rZVdpZHRoLFxuICAgICAgICB4MTogcXVhZHJhbnRMZWZ0ICsgaGFsZkV4dGVybmFsQm9yZGVyV2lkdGgsXG4gICAgICAgIHkxOiBxdWFkcmFudFRvcCArIHF1YWRyYW50SGFsZkhlaWdodCxcbiAgICAgICAgeDI6IHF1YWRyYW50TGVmdCArIHF1YWRyYW50V2lkdGggLSBoYWxmRXh0ZXJuYWxCb3JkZXJXaWR0aCxcbiAgICAgICAgeTI6IHF1YWRyYW50VG9wICsgcXVhZHJhbnRIYWxmSGVpZ2h0XG4gICAgICB9XG4gICAgXTtcbiAgICByZXR1cm4gYm9yZGVyTGluZXM7XG4gIH1cbiAgZ2V0VGl0bGUoc2hvd1RpdGxlKSB7XG4gICAgaWYgKHNob3dUaXRsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGV4dDogdGhpcy5kYXRhLnRpdGxlVGV4dCxcbiAgICAgICAgZmlsbDogdGhpcy50aGVtZUNvbmZpZy5xdWFkcmFudFRpdGxlRmlsbCxcbiAgICAgICAgZm9udFNpemU6IHRoaXMuY29uZmlnLnRpdGxlRm9udFNpemUsXG4gICAgICAgIGhvcml6b250YWxQb3M6IFwidG9wXCIsXG4gICAgICAgIHZlcnRpY2FsUG9zOiBcImNlbnRlclwiLFxuICAgICAgICByb3RhdGlvbjogMCxcbiAgICAgICAgeTogdGhpcy5jb25maWcudGl0bGVQYWRkaW5nLFxuICAgICAgICB4OiB0aGlzLmNvbmZpZy5jaGFydFdpZHRoIC8gMlxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG4gIGJ1aWxkKCkge1xuICAgIGNvbnN0IHNob3dYQXhpcyA9IHRoaXMuY29uZmlnLnNob3dYQXhpcyAmJiAhISh0aGlzLmRhdGEueEF4aXNMZWZ0VGV4dCB8fCB0aGlzLmRhdGEueEF4aXNSaWdodFRleHQpO1xuICAgIGNvbnN0IHNob3dZQXhpcyA9IHRoaXMuY29uZmlnLnNob3dZQXhpcyAmJiAhISh0aGlzLmRhdGEueUF4aXNUb3BUZXh0IHx8IHRoaXMuZGF0YS55QXhpc0JvdHRvbVRleHQpO1xuICAgIGNvbnN0IHNob3dUaXRsZSA9IHRoaXMuY29uZmlnLnNob3dUaXRsZSAmJiAhIXRoaXMuZGF0YS50aXRsZVRleHQ7XG4gICAgY29uc3QgeEF4aXNQb3NpdGlvbiA9IHRoaXMuZGF0YS5wb2ludHMubGVuZ3RoID4gMCA/IFwiYm90dG9tXCIgOiB0aGlzLmNvbmZpZy54QXhpc1Bvc2l0aW9uO1xuICAgIGNvbnN0IGNhbGN1bGF0ZWRTcGFjZSA9IHRoaXMuY2FsY3VsYXRlU3BhY2UoeEF4aXNQb3NpdGlvbiwgc2hvd1hBeGlzLCBzaG93WUF4aXMsIHNob3dUaXRsZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvaW50czogdGhpcy5nZXRRdWFkcmFudFBvaW50cyhjYWxjdWxhdGVkU3BhY2UpLFxuICAgICAgcXVhZHJhbnRzOiB0aGlzLmdldFF1YWRyYW50cyhjYWxjdWxhdGVkU3BhY2UpLFxuICAgICAgYXhpc0xhYmVsczogdGhpcy5nZXRBeGlzTGFiZWxzKHhBeGlzUG9zaXRpb24sIHNob3dYQXhpcywgc2hvd1lBeGlzLCBjYWxjdWxhdGVkU3BhY2UpLFxuICAgICAgYm9yZGVyTGluZXM6IHRoaXMuZ2V0Qm9yZGVycyhjYWxjdWxhdGVkU3BhY2UpLFxuICAgICAgdGl0bGU6IHRoaXMuZ2V0VGl0bGUoc2hvd1RpdGxlKVxuICAgIH07XG4gIH1cbn1cbmNvbnN0IGNvbmZpZyA9IGdldENvbmZpZygpO1xuZnVuY3Rpb24gdGV4dFNhbml0aXplcih0ZXh0KSB7XG4gIHJldHVybiBzYW5pdGl6ZVRleHQodGV4dC50cmltKCksIGNvbmZpZyk7XG59XG5jb25zdCBxdWFkcmFudEJ1aWxkZXIgPSBuZXcgUXVhZHJhbnRCdWlsZGVyKCk7XG5mdW5jdGlvbiBzZXRRdWFkcmFudDFUZXh0KHRleHRPYmopIHtcbiAgcXVhZHJhbnRCdWlsZGVyLnNldERhdGEoeyBxdWFkcmFudDFUZXh0OiB0ZXh0U2FuaXRpemVyKHRleHRPYmoudGV4dCkgfSk7XG59XG5mdW5jdGlvbiBzZXRRdWFkcmFudDJUZXh0KHRleHRPYmopIHtcbiAgcXVhZHJhbnRCdWlsZGVyLnNldERhdGEoeyBxdWFkcmFudDJUZXh0OiB0ZXh0U2FuaXRpemVyKHRleHRPYmoudGV4dCkgfSk7XG59XG5mdW5jdGlvbiBzZXRRdWFkcmFudDNUZXh0KHRleHRPYmopIHtcbiAgcXVhZHJhbnRCdWlsZGVyLnNldERhdGEoeyBxdWFkcmFudDNUZXh0OiB0ZXh0U2FuaXRpemVyKHRleHRPYmoudGV4dCkgfSk7XG59XG5mdW5jdGlvbiBzZXRRdWFkcmFudDRUZXh0KHRleHRPYmopIHtcbiAgcXVhZHJhbnRCdWlsZGVyLnNldERhdGEoeyBxdWFkcmFudDRUZXh0OiB0ZXh0U2FuaXRpemVyKHRleHRPYmoudGV4dCkgfSk7XG59XG5mdW5jdGlvbiBzZXRYQXhpc0xlZnRUZXh0KHRleHRPYmopIHtcbiAgcXVhZHJhbnRCdWlsZGVyLnNldERhdGEoeyB4QXhpc0xlZnRUZXh0OiB0ZXh0U2FuaXRpemVyKHRleHRPYmoudGV4dCkgfSk7XG59XG5mdW5jdGlvbiBzZXRYQXhpc1JpZ2h0VGV4dCh0ZXh0T2JqKSB7XG4gIHF1YWRyYW50QnVpbGRlci5zZXREYXRhKHsgeEF4aXNSaWdodFRleHQ6IHRleHRTYW5pdGl6ZXIodGV4dE9iai50ZXh0KSB9KTtcbn1cbmZ1bmN0aW9uIHNldFlBeGlzVG9wVGV4dCh0ZXh0T2JqKSB7XG4gIHF1YWRyYW50QnVpbGRlci5zZXREYXRhKHsgeUF4aXNUb3BUZXh0OiB0ZXh0U2FuaXRpemVyKHRleHRPYmoudGV4dCkgfSk7XG59XG5mdW5jdGlvbiBzZXRZQXhpc0JvdHRvbVRleHQodGV4dE9iaikge1xuICBxdWFkcmFudEJ1aWxkZXIuc2V0RGF0YSh7IHlBeGlzQm90dG9tVGV4dDogdGV4dFNhbml0aXplcih0ZXh0T2JqLnRleHQpIH0pO1xufVxuZnVuY3Rpb24gYWRkUG9pbnQodGV4dE9iaiwgeCwgeSkge1xuICBxdWFkcmFudEJ1aWxkZXIuYWRkUG9pbnRzKFt7IHgsIHksIHRleHQ6IHRleHRTYW5pdGl6ZXIodGV4dE9iai50ZXh0KSB9XSk7XG59XG5mdW5jdGlvbiBzZXRXaWR0aCh3aWR0aCkge1xuICBxdWFkcmFudEJ1aWxkZXIuc2V0Q29uZmlnKHsgY2hhcnRXaWR0aDogd2lkdGggfSk7XG59XG5mdW5jdGlvbiBzZXRIZWlnaHQoaGVpZ2h0KSB7XG4gIHF1YWRyYW50QnVpbGRlci5zZXRDb25maWcoeyBjaGFydEhlaWdodDogaGVpZ2h0IH0pO1xufVxuZnVuY3Rpb24gZ2V0UXVhZHJhbnREYXRhKCkge1xuICBjb25zdCBjb25maWcyID0gZ2V0Q29uZmlnKCk7XG4gIGNvbnN0IHsgdGhlbWVWYXJpYWJsZXMsIHF1YWRyYW50Q2hhcnQ6IHF1YWRyYW50Q2hhcnRDb25maWcgfSA9IGNvbmZpZzI7XG4gIGlmIChxdWFkcmFudENoYXJ0Q29uZmlnKSB7XG4gICAgcXVhZHJhbnRCdWlsZGVyLnNldENvbmZpZyhxdWFkcmFudENoYXJ0Q29uZmlnKTtcbiAgfVxuICBxdWFkcmFudEJ1aWxkZXIuc2V0VGhlbWVDb25maWcoe1xuICAgIHF1YWRyYW50MUZpbGw6IHRoZW1lVmFyaWFibGVzLnF1YWRyYW50MUZpbGwsXG4gICAgcXVhZHJhbnQyRmlsbDogdGhlbWVWYXJpYWJsZXMucXVhZHJhbnQyRmlsbCxcbiAgICBxdWFkcmFudDNGaWxsOiB0aGVtZVZhcmlhYmxlcy5xdWFkcmFudDNGaWxsLFxuICAgIHF1YWRyYW50NEZpbGw6IHRoZW1lVmFyaWFibGVzLnF1YWRyYW50NEZpbGwsXG4gICAgcXVhZHJhbnQxVGV4dEZpbGw6IHRoZW1lVmFyaWFibGVzLnF1YWRyYW50MVRleHRGaWxsLFxuICAgIHF1YWRyYW50MlRleHRGaWxsOiB0aGVtZVZhcmlhYmxlcy5xdWFkcmFudDJUZXh0RmlsbCxcbiAgICBxdWFkcmFudDNUZXh0RmlsbDogdGhlbWVWYXJpYWJsZXMucXVhZHJhbnQzVGV4dEZpbGwsXG4gICAgcXVhZHJhbnQ0VGV4dEZpbGw6IHRoZW1lVmFyaWFibGVzLnF1YWRyYW50NFRleHRGaWxsLFxuICAgIHF1YWRyYW50UG9pbnRGaWxsOiB0aGVtZVZhcmlhYmxlcy5xdWFkcmFudFBvaW50RmlsbCxcbiAgICBxdWFkcmFudFBvaW50VGV4dEZpbGw6IHRoZW1lVmFyaWFibGVzLnF1YWRyYW50UG9pbnRUZXh0RmlsbCxcbiAgICBxdWFkcmFudFhBeGlzVGV4dEZpbGw6IHRoZW1lVmFyaWFibGVzLnF1YWRyYW50WEF4aXNUZXh0RmlsbCxcbiAgICBxdWFkcmFudFlBeGlzVGV4dEZpbGw6IHRoZW1lVmFyaWFibGVzLnF1YWRyYW50WUF4aXNUZXh0RmlsbCxcbiAgICBxdWFkcmFudEV4dGVybmFsQm9yZGVyU3Ryb2tlRmlsbDogdGhlbWVWYXJpYWJsZXMucXVhZHJhbnRFeHRlcm5hbEJvcmRlclN0cm9rZUZpbGwsXG4gICAgcXVhZHJhbnRJbnRlcm5hbEJvcmRlclN0cm9rZUZpbGw6IHRoZW1lVmFyaWFibGVzLnF1YWRyYW50SW50ZXJuYWxCb3JkZXJTdHJva2VGaWxsLFxuICAgIHF1YWRyYW50VGl0bGVGaWxsOiB0aGVtZVZhcmlhYmxlcy5xdWFkcmFudFRpdGxlRmlsbFxuICB9KTtcbiAgcXVhZHJhbnRCdWlsZGVyLnNldERhdGEoeyB0aXRsZVRleHQ6IGdldERpYWdyYW1UaXRsZSgpIH0pO1xuICByZXR1cm4gcXVhZHJhbnRCdWlsZGVyLmJ1aWxkKCk7XG59XG5jb25zdCBjbGVhciA9IGZ1bmN0aW9uKCkge1xuICBxdWFkcmFudEJ1aWxkZXIuY2xlYXIoKTtcbiAgY2xlYXIkMSgpO1xufTtcbmNvbnN0IGRiID0ge1xuICBzZXRXaWR0aCxcbiAgc2V0SGVpZ2h0LFxuICBzZXRRdWFkcmFudDFUZXh0LFxuICBzZXRRdWFkcmFudDJUZXh0LFxuICBzZXRRdWFkcmFudDNUZXh0LFxuICBzZXRRdWFkcmFudDRUZXh0LFxuICBzZXRYQXhpc0xlZnRUZXh0LFxuICBzZXRYQXhpc1JpZ2h0VGV4dCxcbiAgc2V0WUF4aXNUb3BUZXh0LFxuICBzZXRZQXhpc0JvdHRvbVRleHQsXG4gIGFkZFBvaW50LFxuICBnZXRRdWFkcmFudERhdGEsXG4gIGNsZWFyLFxuICBzZXRBY2NUaXRsZSxcbiAgZ2V0QWNjVGl0bGUsXG4gIHNldERpYWdyYW1UaXRsZSxcbiAgZ2V0RGlhZ3JhbVRpdGxlLFxuICBnZXRBY2NEZXNjcmlwdGlvbixcbiAgc2V0QWNjRGVzY3JpcHRpb25cbn07XG5jb25zdCBkcmF3ID0gKHR4dCwgaWQsIF92ZXJzaW9uLCBkaWFnT2JqKSA9PiB7XG4gIHZhciBfYSwgX2IsIF9jO1xuICBmdW5jdGlvbiBnZXREb21pbmFudEJhc2VMaW5lKGhvcml6b250YWxQb3MpIHtcbiAgICByZXR1cm4gaG9yaXpvbnRhbFBvcyA9PT0gXCJ0b3BcIiA/IFwiaGFuZ2luZ1wiIDogXCJtaWRkbGVcIjtcbiAgfVxuICBmdW5jdGlvbiBnZXRUZXh0QW5jaG9yKHZlcnRpY2FsUG9zKSB7XG4gICAgcmV0dXJuIHZlcnRpY2FsUG9zID09PSBcImxlZnRcIiA/IFwic3RhcnRcIiA6IFwibWlkZGxlXCI7XG4gIH1cbiAgZnVuY3Rpb24gZ2V0VHJhbnNmb3JtYXRpb24oZGF0YSkge1xuICAgIHJldHVybiBgdHJhbnNsYXRlKCR7ZGF0YS54fSwgJHtkYXRhLnl9KSByb3RhdGUoJHtkYXRhLnJvdGF0aW9uIHx8IDB9KWA7XG4gIH1cbiAgY29uc3QgY29uZiA9IGdldENvbmZpZygpO1xuICBsb2cuZGVidWcoXCJSZW5kZXJpbmcgcXVhZHJhbnQgY2hhcnRcXG5cIiArIHR4dCk7XG4gIGNvbnN0IHNlY3VyaXR5TGV2ZWwgPSBjb25mLnNlY3VyaXR5TGV2ZWw7XG4gIGxldCBzYW5kYm94RWxlbWVudDtcbiAgaWYgKHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiKSB7XG4gICAgc2FuZGJveEVsZW1lbnQgPSBzZWxlY3QoXCIjaVwiICsgaWQpO1xuICB9XG4gIGNvbnN0IHJvb3QgPSBzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIiA/IHNlbGVjdChzYW5kYm94RWxlbWVudC5ub2RlcygpWzBdLmNvbnRlbnREb2N1bWVudC5ib2R5KSA6IHNlbGVjdChcImJvZHlcIik7XG4gIGNvbnN0IHN2ZyA9IHJvb3Quc2VsZWN0KGBbaWQ9XCIke2lkfVwiXWApO1xuICBjb25zdCBncm91cCA9IHN2Zy5hcHBlbmQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm1haW5cIik7XG4gIGNvbnN0IHdpZHRoID0gKChfYSA9IGNvbmYucXVhZHJhbnRDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmNoYXJ0V2lkdGgpIHx8IDUwMDtcbiAgY29uc3QgaGVpZ2h0ID0gKChfYiA9IGNvbmYucXVhZHJhbnRDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLmNoYXJ0SGVpZ2h0KSB8fCA1MDA7XG4gIGNvbmZpZ3VyZVN2Z1NpemUoc3ZnLCBoZWlnaHQsIHdpZHRoLCAoKF9jID0gY29uZi5xdWFkcmFudENoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2MudXNlTWF4V2lkdGgpIHx8IHRydWUpO1xuICBzdmcuYXR0cihcInZpZXdCb3hcIiwgXCIwIDAgXCIgKyB3aWR0aCArIFwiIFwiICsgaGVpZ2h0KTtcbiAgZGlhZ09iai5kYi5zZXRIZWlnaHQoaGVpZ2h0KTtcbiAgZGlhZ09iai5kYi5zZXRXaWR0aCh3aWR0aCk7XG4gIGNvbnN0IHF1YWRyYW50RGF0YSA9IGRpYWdPYmouZGIuZ2V0UXVhZHJhbnREYXRhKCk7XG4gIGNvbnN0IHF1YWRyYW50c0dyb3VwID0gZ3JvdXAuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJxdWFkcmFudHNcIik7XG4gIGNvbnN0IGJvcmRlckdyb3VwID0gZ3JvdXAuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJib3JkZXJcIik7XG4gIGNvbnN0IGRhdGFQb2ludEdyb3VwID0gZ3JvdXAuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJkYXRhLXBvaW50c1wiKTtcbiAgY29uc3QgbGFiZWxHcm91cCA9IGdyb3VwLmFwcGVuZChcImdcIikuYXR0cihcImNsYXNzXCIsIFwibGFiZWxzXCIpO1xuICBjb25zdCB0aXRsZUdyb3VwID0gZ3JvdXAuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJ0aXRsZVwiKTtcbiAgaWYgKHF1YWRyYW50RGF0YS50aXRsZSkge1xuICAgIHRpdGxlR3JvdXAuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwieFwiLCAwKS5hdHRyKFwieVwiLCAwKS5hdHRyKFwiZmlsbFwiLCBxdWFkcmFudERhdGEudGl0bGUuZmlsbCkuYXR0cihcImZvbnQtc2l6ZVwiLCBxdWFkcmFudERhdGEudGl0bGUuZm9udFNpemUpLmF0dHIoXCJkb21pbmFudC1iYXNlbGluZVwiLCBnZXREb21pbmFudEJhc2VMaW5lKHF1YWRyYW50RGF0YS50aXRsZS5ob3Jpem9udGFsUG9zKSkuYXR0cihcInRleHQtYW5jaG9yXCIsIGdldFRleHRBbmNob3IocXVhZHJhbnREYXRhLnRpdGxlLnZlcnRpY2FsUG9zKSkuYXR0cihcInRyYW5zZm9ybVwiLCBnZXRUcmFuc2Zvcm1hdGlvbihxdWFkcmFudERhdGEudGl0bGUpKS50ZXh0KHF1YWRyYW50RGF0YS50aXRsZS50ZXh0KTtcbiAgfVxuICBpZiAocXVhZHJhbnREYXRhLmJvcmRlckxpbmVzKSB7XG4gICAgYm9yZGVyR3JvdXAuc2VsZWN0QWxsKFwibGluZVwiKS5kYXRhKHF1YWRyYW50RGF0YS5ib3JkZXJMaW5lcykuZW50ZXIoKS5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJ4MVwiLCAoZGF0YSkgPT4gZGF0YS54MSkuYXR0cihcInkxXCIsIChkYXRhKSA9PiBkYXRhLnkxKS5hdHRyKFwieDJcIiwgKGRhdGEpID0+IGRhdGEueDIpLmF0dHIoXCJ5MlwiLCAoZGF0YSkgPT4gZGF0YS55Mikuc3R5bGUoXCJzdHJva2VcIiwgKGRhdGEpID0+IGRhdGEuc3Ryb2tlRmlsbCkuc3R5bGUoXCJzdHJva2Utd2lkdGhcIiwgKGRhdGEpID0+IGRhdGEuc3Ryb2tlV2lkdGgpO1xuICB9XG4gIGNvbnN0IHF1YWRyYW50cyA9IHF1YWRyYW50c0dyb3VwLnNlbGVjdEFsbChcImcucXVhZHJhbnRcIikuZGF0YShxdWFkcmFudERhdGEucXVhZHJhbnRzKS5lbnRlcigpLmFwcGVuZChcImdcIikuYXR0cihcImNsYXNzXCIsIFwicXVhZHJhbnRcIik7XG4gIHF1YWRyYW50cy5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJ4XCIsIChkYXRhKSA9PiBkYXRhLngpLmF0dHIoXCJ5XCIsIChkYXRhKSA9PiBkYXRhLnkpLmF0dHIoXCJ3aWR0aFwiLCAoZGF0YSkgPT4gZGF0YS53aWR0aCkuYXR0cihcImhlaWdodFwiLCAoZGF0YSkgPT4gZGF0YS5oZWlnaHQpLmF0dHIoXCJmaWxsXCIsIChkYXRhKSA9PiBkYXRhLmZpbGwpO1xuICBxdWFkcmFudHMuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwieFwiLCAwKS5hdHRyKFwieVwiLCAwKS5hdHRyKFwiZmlsbFwiLCAoZGF0YSkgPT4gZGF0YS50ZXh0LmZpbGwpLmF0dHIoXCJmb250LXNpemVcIiwgKGRhdGEpID0+IGRhdGEudGV4dC5mb250U2l6ZSkuYXR0cihcbiAgICBcImRvbWluYW50LWJhc2VsaW5lXCIsXG4gICAgKGRhdGEpID0+IGdldERvbWluYW50QmFzZUxpbmUoZGF0YS50ZXh0Lmhvcml6b250YWxQb3MpXG4gICkuYXR0cihcInRleHQtYW5jaG9yXCIsIChkYXRhKSA9PiBnZXRUZXh0QW5jaG9yKGRhdGEudGV4dC52ZXJ0aWNhbFBvcykpLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgKGRhdGEpID0+IGdldFRyYW5zZm9ybWF0aW9uKGRhdGEudGV4dCkpLnRleHQoKGRhdGEpID0+IGRhdGEudGV4dC50ZXh0KTtcbiAgY29uc3QgbGFiZWxzID0gbGFiZWxHcm91cC5zZWxlY3RBbGwoXCJnLmxhYmVsXCIpLmRhdGEocXVhZHJhbnREYXRhLmF4aXNMYWJlbHMpLmVudGVyKCkuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJsYWJlbFwiKTtcbiAgbGFiZWxzLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgMCkuYXR0cihcInlcIiwgMCkudGV4dCgoZGF0YSkgPT4gZGF0YS50ZXh0KS5hdHRyKFwiZmlsbFwiLCAoZGF0YSkgPT4gZGF0YS5maWxsKS5hdHRyKFwiZm9udC1zaXplXCIsIChkYXRhKSA9PiBkYXRhLmZvbnRTaXplKS5hdHRyKFwiZG9taW5hbnQtYmFzZWxpbmVcIiwgKGRhdGEpID0+IGdldERvbWluYW50QmFzZUxpbmUoZGF0YS5ob3Jpem9udGFsUG9zKSkuYXR0cihcInRleHQtYW5jaG9yXCIsIChkYXRhKSA9PiBnZXRUZXh0QW5jaG9yKGRhdGEudmVydGljYWxQb3MpKS5hdHRyKFwidHJhbnNmb3JtXCIsIChkYXRhKSA9PiBnZXRUcmFuc2Zvcm1hdGlvbihkYXRhKSk7XG4gIGNvbnN0IGRhdGFQb2ludHMgPSBkYXRhUG9pbnRHcm91cC5zZWxlY3RBbGwoXCJnLmRhdGEtcG9pbnRcIikuZGF0YShxdWFkcmFudERhdGEucG9pbnRzKS5lbnRlcigpLmFwcGVuZChcImdcIikuYXR0cihcImNsYXNzXCIsIFwiZGF0YS1wb2ludFwiKTtcbiAgZGF0YVBvaW50cy5hcHBlbmQoXCJjaXJjbGVcIikuYXR0cihcImN4XCIsIChkYXRhKSA9PiBkYXRhLngpLmF0dHIoXCJjeVwiLCAoZGF0YSkgPT4gZGF0YS55KS5hdHRyKFwiclwiLCAoZGF0YSkgPT4gZGF0YS5yYWRpdXMpLmF0dHIoXCJmaWxsXCIsIChkYXRhKSA9PiBkYXRhLmZpbGwpO1xuICBkYXRhUG9pbnRzLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgMCkuYXR0cihcInlcIiwgMCkudGV4dCgoZGF0YSkgPT4gZGF0YS50ZXh0LnRleHQpLmF0dHIoXCJmaWxsXCIsIChkYXRhKSA9PiBkYXRhLnRleHQuZmlsbCkuYXR0cihcImZvbnQtc2l6ZVwiLCAoZGF0YSkgPT4gZGF0YS50ZXh0LmZvbnRTaXplKS5hdHRyKFxuICAgIFwiZG9taW5hbnQtYmFzZWxpbmVcIixcbiAgICAoZGF0YSkgPT4gZ2V0RG9taW5hbnRCYXNlTGluZShkYXRhLnRleHQuaG9yaXpvbnRhbFBvcylcbiAgKS5hdHRyKFwidGV4dC1hbmNob3JcIiwgKGRhdGEpID0+IGdldFRleHRBbmNob3IoZGF0YS50ZXh0LnZlcnRpY2FsUG9zKSkuYXR0cihcInRyYW5zZm9ybVwiLCAoZGF0YSkgPT4gZ2V0VHJhbnNmb3JtYXRpb24oZGF0YS50ZXh0KSk7XG59O1xuY29uc3QgcmVuZGVyZXIgPSB7XG4gIGRyYXdcbn07XG5jb25zdCBkaWFncmFtID0ge1xuICBwYXJzZXI6IHBhcnNlciQxLFxuICBkYixcbiAgcmVuZGVyZXIsXG4gIHN0eWxlczogKCkgPT4gXCJcIlxufTtcbmV4cG9ydCB7XG4gIGRpYWdyYW1cbn07XG4iLAogICAgImltcG9ydCB7IGwgYXMgbG9nLCBzIGFzIHNldEFjY1RpdGxlLCBnIGFzIGdldEFjY1RpdGxlLCBxIGFzIHNldERpYWdyYW1UaXRsZSwgdCBhcyBnZXREaWFncmFtVGl0bGUsIGEgYXMgZ2V0QWNjRGVzY3JpcHRpb24sIGIgYXMgc2V0QWNjRGVzY3JpcHRpb24sIEUgYXMgZ2V0VGhlbWVWYXJpYWJsZXMsIEYgYXMgZ2V0Q29uZmlnLCBDIGFzIGNsZWFuQW5kTWVyZ2UsIEIgYXMgZGVmYXVsdENvbmZpZywgdiBhcyBjbGVhciQxLCBkIGFzIHNhbml0aXplVGV4dCwgQSBhcyBzZWxlY3RTdmdFbGVtZW50LCBpIGFzIGNvbmZpZ3VyZVN2Z1NpemUgfSBmcm9tIFwiLi9tZXJtYWlkLTZkYzcyOTkxLmpzXCI7XG5pbXBvcnQgeyBjIGFzIGNvbXB1dGVEaW1lbnNpb25PZlRleHQgfSBmcm9tIFwiLi9jcmVhdGVUZXh0LWNhMGM1MjE2LmpzXCI7XG5pbXBvcnQgeyBzY2FsZUJhbmQsIHNjYWxlTGluZWFyLCBsaW5lIH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgXCJ0cy1kZWRlbnRcIjtcbmltcG9ydCBcImRheWpzXCI7XG5pbXBvcnQgXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IFwiZG9tcHVyaWZ5XCI7XG5pbXBvcnQgXCJraHJvbWFcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZW1vaXplLmpzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVyZ2UuanNcIjtcbmltcG9ydCBcInN0eWxpc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL2lzRW1wdHkuanNcIjtcbmltcG9ydCBcIm1kYXN0LXV0aWwtZnJvbS1tYXJrZG93blwiO1xudmFyIHBhcnNlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgbyA9IGZ1bmN0aW9uKGssIHYsIG8yLCBsKSB7XG4gICAgZm9yIChvMiA9IG8yIHx8IHt9LCBsID0gay5sZW5ndGg7IGwtLTsgbzJba1tsXV0gPSB2KVxuICAgICAgO1xuICAgIHJldHVybiBvMjtcbiAgfSwgJFYwID0gWzEsIDEwLCAxMiwgMTQsIDE2LCAxOCwgMTksIDIxLCAyM10sICRWMSA9IFsyLCA2XSwgJFYyID0gWzEsIDNdLCAkVjMgPSBbMSwgNV0sICRWNCA9IFsxLCA2XSwgJFY1ID0gWzEsIDddLCAkVjYgPSBbMSwgNSwgMTAsIDEyLCAxNCwgMTYsIDE4LCAxOSwgMjEsIDIzLCAzNCwgMzUsIDM2XSwgJFY3ID0gWzEsIDI1XSwgJFY4ID0gWzEsIDI2XSwgJFY5ID0gWzEsIDI4XSwgJFZhID0gWzEsIDI5XSwgJFZiID0gWzEsIDMwXSwgJFZjID0gWzEsIDMxXSwgJFZkID0gWzEsIDMyXSwgJFZlID0gWzEsIDMzXSwgJFZmID0gWzEsIDM0XSwgJFZnID0gWzEsIDM1XSwgJFZoID0gWzEsIDM2XSwgJFZpID0gWzEsIDM3XSwgJFZqID0gWzEsIDQzXSwgJFZrID0gWzEsIDQyXSwgJFZsID0gWzEsIDQ3XSwgJFZtID0gWzEsIDUwXSwgJFZuID0gWzEsIDEwLCAxMiwgMTQsIDE2LCAxOCwgMTksIDIxLCAyMywgMzQsIDM1LCAzNl0sICRWbyA9IFsxLCAxMCwgMTIsIDE0LCAxNiwgMTgsIDE5LCAyMSwgMjMsIDI0LCAyNiwgMjcsIDI4LCAzNCwgMzUsIDM2XSwgJFZwID0gWzEsIDEwLCAxMiwgMTQsIDE2LCAxOCwgMTksIDIxLCAyMywgMjQsIDI2LCAyNywgMjgsIDM0LCAzNSwgMzYsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwXSwgJFZxID0gWzEsIDY0XTtcbiAgdmFyIHBhcnNlcjIgPSB7XG4gICAgdHJhY2U6IGZ1bmN0aW9uIHRyYWNlKCkge1xuICAgIH0sXG4gICAgeXk6IHt9LFxuICAgIHN5bWJvbHNfOiB7IFwiZXJyb3JcIjogMiwgXCJzdGFydFwiOiAzLCBcImVvbFwiOiA0LCBcIlhZQ0hBUlRcIjogNSwgXCJjaGFydENvbmZpZ1wiOiA2LCBcImRvY3VtZW50XCI6IDcsIFwiQ0hBUlRfT1JJRU5UQVRJT05cIjogOCwgXCJzdGF0ZW1lbnRcIjogOSwgXCJ0aXRsZVwiOiAxMCwgXCJ0ZXh0XCI6IDExLCBcIlhfQVhJU1wiOiAxMiwgXCJwYXJzZVhBeGlzXCI6IDEzLCBcIllfQVhJU1wiOiAxNCwgXCJwYXJzZVlBeGlzXCI6IDE1LCBcIkxJTkVcIjogMTYsIFwicGxvdERhdGFcIjogMTcsIFwiQkFSXCI6IDE4LCBcImFjY190aXRsZVwiOiAxOSwgXCJhY2NfdGl0bGVfdmFsdWVcIjogMjAsIFwiYWNjX2Rlc2NyXCI6IDIxLCBcImFjY19kZXNjcl92YWx1ZVwiOiAyMiwgXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCI6IDIzLCBcIlNRVUFSRV9CUkFDRVNfU1RBUlRcIjogMjQsIFwiY29tbWFTZXBhcmF0ZWROdW1iZXJzXCI6IDI1LCBcIlNRVUFSRV9CUkFDRVNfRU5EXCI6IDI2LCBcIk5VTUJFUl9XSVRIX0RFQ0lNQUxcIjogMjcsIFwiQ09NTUFcIjogMjgsIFwieEF4aXNEYXRhXCI6IDI5LCBcImJhbmREYXRhXCI6IDMwLCBcIkFSUk9XX0RFTElNSVRFUlwiOiAzMSwgXCJjb21tYVNlcGFyYXRlZFRleHRzXCI6IDMyLCBcInlBeGlzRGF0YVwiOiAzMywgXCJORVdMSU5FXCI6IDM0LCBcIlNFTUlcIjogMzUsIFwiRU9GXCI6IDM2LCBcImFscGhhTnVtXCI6IDM3LCBcIlNUUlwiOiAzOCwgXCJNRF9TVFJcIjogMzksIFwiYWxwaGFOdW1Ub2tlblwiOiA0MCwgXCJBTVBcIjogNDEsIFwiTlVNXCI6IDQyLCBcIkFMUEhBXCI6IDQzLCBcIlBMVVNcIjogNDQsIFwiRVFVQUxTXCI6IDQ1LCBcIk1VTFRcIjogNDYsIFwiRE9UXCI6IDQ3LCBcIkJSS1RcIjogNDgsIFwiTUlOVVNcIjogNDksIFwiVU5ERVJTQ09SRVwiOiA1MCwgXCIkYWNjZXB0XCI6IDAsIFwiJGVuZFwiOiAxIH0sXG4gICAgdGVybWluYWxzXzogeyAyOiBcImVycm9yXCIsIDU6IFwiWFlDSEFSVFwiLCA4OiBcIkNIQVJUX09SSUVOVEFUSU9OXCIsIDEwOiBcInRpdGxlXCIsIDEyOiBcIlhfQVhJU1wiLCAxNDogXCJZX0FYSVNcIiwgMTY6IFwiTElORVwiLCAxODogXCJCQVJcIiwgMTk6IFwiYWNjX3RpdGxlXCIsIDIwOiBcImFjY190aXRsZV92YWx1ZVwiLCAyMTogXCJhY2NfZGVzY3JcIiwgMjI6IFwiYWNjX2Rlc2NyX3ZhbHVlXCIsIDIzOiBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIiwgMjQ6IFwiU1FVQVJFX0JSQUNFU19TVEFSVFwiLCAyNjogXCJTUVVBUkVfQlJBQ0VTX0VORFwiLCAyNzogXCJOVU1CRVJfV0lUSF9ERUNJTUFMXCIsIDI4OiBcIkNPTU1BXCIsIDMxOiBcIkFSUk9XX0RFTElNSVRFUlwiLCAzNDogXCJORVdMSU5FXCIsIDM1OiBcIlNFTUlcIiwgMzY6IFwiRU9GXCIsIDM4OiBcIlNUUlwiLCAzOTogXCJNRF9TVFJcIiwgNDE6IFwiQU1QXCIsIDQyOiBcIk5VTVwiLCA0MzogXCJBTFBIQVwiLCA0NDogXCJQTFVTXCIsIDQ1OiBcIkVRVUFMU1wiLCA0NjogXCJNVUxUXCIsIDQ3OiBcIkRPVFwiLCA0ODogXCJCUktUXCIsIDQ5OiBcIk1JTlVTXCIsIDUwOiBcIlVOREVSU0NPUkVcIiB9LFxuICAgIHByb2R1Y3Rpb25zXzogWzAsIFszLCAyXSwgWzMsIDNdLCBbMywgMl0sIFszLCAxXSwgWzYsIDFdLCBbNywgMF0sIFs3LCAyXSwgWzksIDJdLCBbOSwgMl0sIFs5LCAyXSwgWzksIDJdLCBbOSwgMl0sIFs5LCAzXSwgWzksIDJdLCBbOSwgM10sIFs5LCAyXSwgWzksIDJdLCBbOSwgMV0sIFsxNywgM10sIFsyNSwgM10sIFsyNSwgMV0sIFsxMywgMV0sIFsxMywgMl0sIFsxMywgMV0sIFsyOSwgMV0sIFsyOSwgM10sIFszMCwgM10sIFszMiwgM10sIFszMiwgMV0sIFsxNSwgMV0sIFsxNSwgMl0sIFsxNSwgMV0sIFszMywgM10sIFs0LCAxXSwgWzQsIDFdLCBbNCwgMV0sIFsxMSwgMV0sIFsxMSwgMV0sIFsxMSwgMV0sIFszNywgMV0sIFszNywgMl0sIFs0MCwgMV0sIFs0MCwgMV0sIFs0MCwgMV0sIFs0MCwgMV0sIFs0MCwgMV0sIFs0MCwgMV0sIFs0MCwgMV0sIFs0MCwgMV0sIFs0MCwgMV0sIFs0MCwgMV1dLFxuICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eXRleHQsIHl5bGVuZywgeXlsaW5lbm8sIHl5LCB5eXN0YXRlLCAkJCwgXyQpIHtcbiAgICAgIHZhciAkMCA9ICQkLmxlbmd0aCAtIDE7XG4gICAgICBzd2l0Y2ggKHl5c3RhdGUpIHtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHl5LnNldE9yaWVudGF0aW9uKCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgICB5eS5zZXREaWFncmFtVGl0bGUoJCRbJDBdLnRleHQudHJpbSgpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICB5eS5zZXRMaW5lRGF0YSh7IHRleHQ6IFwiXCIsIHR5cGU6IFwidGV4dFwiIH0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgeXkuc2V0TGluZURhdGEoJCRbJDAgLSAxXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgICB5eS5zZXRCYXJEYXRhKHsgdGV4dDogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICB5eS5zZXRCYXJEYXRhKCQkWyQwIC0gMV0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5zZXRBY2NUaXRsZSh0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE3OlxuICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS50cmltKCk7XG4gICAgICAgICAgeXkuc2V0QWNjRGVzY3JpcHRpb24odGhpcy4kKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgIHRoaXMuJCA9IFtOdW1iZXIoJCRbJDAgLSAyXSksIC4uLiQkWyQwXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgdGhpcy4kID0gW051bWJlcigkJFskMF0pXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICB5eS5zZXRYQXhpc1RpdGxlKCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgeXkuc2V0WEF4aXNUaXRsZSgkJFskMCAtIDFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICB5eS5zZXRYQXhpc1RpdGxlKHsgdHlwZTogXCJ0ZXh0XCIsIHRleHQ6IFwiXCIgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjU6XG4gICAgICAgICAgeXkuc2V0WEF4aXNCYW5kKCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgeXkuc2V0WEF4aXNSYW5nZURhdGEoTnVtYmVyKCQkWyQwIC0gMl0pLCBOdW1iZXIoJCRbJDBdKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyODpcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDAgLSAyXSwgLi4uJCRbJDBdXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOTpcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDBdXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICB5eS5zZXRZQXhpc1RpdGxlKCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgeXkuc2V0WUF4aXNUaXRsZSgkJFskMCAtIDFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICB5eS5zZXRZQXhpc1RpdGxlKHsgdHlwZTogXCJ0ZXh0XCIsIHRleHQ6IFwiXCIgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgeXkuc2V0WUF4aXNSYW5nZURhdGEoTnVtYmVyKCQkWyQwIC0gMl0pLCBOdW1iZXIoJCRbJDBdKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgdGhpcy4kID0geyB0ZXh0OiAkJFskMF0sIHR5cGU6IFwidGV4dFwiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzg6XG4gICAgICAgICAgdGhpcy4kID0geyB0ZXh0OiAkJFskMF0sIHR5cGU6IFwidGV4dFwiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzk6XG4gICAgICAgICAgdGhpcy4kID0geyB0ZXh0OiAkJFskMF0sIHR5cGU6IFwibWFya2Rvd25cIiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQwOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdICsgXCJcIiArICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYmxlOiBbbygkVjAsICRWMSwgeyAzOiAxLCA0OiAyLCA3OiA0LCA1OiAkVjIsIDM0OiAkVjMsIDM1OiAkVjQsIDM2OiAkVjUgfSksIHsgMTogWzNdIH0sIG8oJFYwLCAkVjEsIHsgNDogMiwgNzogNCwgMzogOCwgNTogJFYyLCAzNDogJFYzLCAzNTogJFY0LCAzNjogJFY1IH0pLCBvKCRWMCwgJFYxLCB7IDQ6IDIsIDc6IDQsIDY6IDksIDM6IDEwLCA1OiAkVjIsIDg6IFsxLCAxMV0sIDM0OiAkVjMsIDM1OiAkVjQsIDM2OiAkVjUgfSksIHsgMTogWzIsIDRdLCA5OiAxMiwgMTA6IFsxLCAxM10sIDEyOiBbMSwgMTRdLCAxNDogWzEsIDE1XSwgMTY6IFsxLCAxNl0sIDE4OiBbMSwgMTddLCAxOTogWzEsIDE4XSwgMjE6IFsxLCAxOV0sIDIzOiBbMSwgMjBdIH0sIG8oJFY2LCBbMiwgMzRdKSwgbygkVjYsIFsyLCAzNV0pLCBvKCRWNiwgWzIsIDM2XSksIHsgMTogWzIsIDFdIH0sIG8oJFYwLCAkVjEsIHsgNDogMiwgNzogNCwgMzogMjEsIDU6ICRWMiwgMzQ6ICRWMywgMzU6ICRWNCwgMzY6ICRWNSB9KSwgeyAxOiBbMiwgM10gfSwgbygkVjYsIFsyLCA1XSksIG8oJFYwLCBbMiwgN10sIHsgNDogMjIsIDM0OiAkVjMsIDM1OiAkVjQsIDM2OiAkVjUgfSksIHsgMTE6IDIzLCAzNzogMjQsIDM4OiAkVjcsIDM5OiAkVjgsIDQwOiAyNywgNDE6ICRWOSwgNDI6ICRWYSwgNDM6ICRWYiwgNDQ6ICRWYywgNDU6ICRWZCwgNDY6ICRWZSwgNDc6ICRWZiwgNDg6ICRWZywgNDk6ICRWaCwgNTA6ICRWaSB9LCB7IDExOiAzOSwgMTM6IDM4LCAyNDogJFZqLCAyNzogJFZrLCAyOTogNDAsIDMwOiA0MSwgMzc6IDI0LCAzODogJFY3LCAzOTogJFY4LCA0MDogMjcsIDQxOiAkVjksIDQyOiAkVmEsIDQzOiAkVmIsIDQ0OiAkVmMsIDQ1OiAkVmQsIDQ2OiAkVmUsIDQ3OiAkVmYsIDQ4OiAkVmcsIDQ5OiAkVmgsIDUwOiAkVmkgfSwgeyAxMTogNDUsIDE1OiA0NCwgMjc6ICRWbCwgMzM6IDQ2LCAzNzogMjQsIDM4OiAkVjcsIDM5OiAkVjgsIDQwOiAyNywgNDE6ICRWOSwgNDI6ICRWYSwgNDM6ICRWYiwgNDQ6ICRWYywgNDU6ICRWZCwgNDY6ICRWZSwgNDc6ICRWZiwgNDg6ICRWZywgNDk6ICRWaCwgNTA6ICRWaSB9LCB7IDExOiA0OSwgMTc6IDQ4LCAyNDogJFZtLCAzNzogMjQsIDM4OiAkVjcsIDM5OiAkVjgsIDQwOiAyNywgNDE6ICRWOSwgNDI6ICRWYSwgNDM6ICRWYiwgNDQ6ICRWYywgNDU6ICRWZCwgNDY6ICRWZSwgNDc6ICRWZiwgNDg6ICRWZywgNDk6ICRWaCwgNTA6ICRWaSB9LCB7IDExOiA1MiwgMTc6IDUxLCAyNDogJFZtLCAzNzogMjQsIDM4OiAkVjcsIDM5OiAkVjgsIDQwOiAyNywgNDE6ICRWOSwgNDI6ICRWYSwgNDM6ICRWYiwgNDQ6ICRWYywgNDU6ICRWZCwgNDY6ICRWZSwgNDc6ICRWZiwgNDg6ICRWZywgNDk6ICRWaCwgNTA6ICRWaSB9LCB7IDIwOiBbMSwgNTNdIH0sIHsgMjI6IFsxLCA1NF0gfSwgbygkVm4sIFsyLCAxOF0pLCB7IDE6IFsyLCAyXSB9LCBvKCRWbiwgWzIsIDhdKSwgbygkVm4sIFsyLCA5XSksIG8oJFZvLCBbMiwgMzddLCB7IDQwOiA1NSwgNDE6ICRWOSwgNDI6ICRWYSwgNDM6ICRWYiwgNDQ6ICRWYywgNDU6ICRWZCwgNDY6ICRWZSwgNDc6ICRWZiwgNDg6ICRWZywgNDk6ICRWaCwgNTA6ICRWaSB9KSwgbygkVm8sIFsyLCAzOF0pLCBvKCRWbywgWzIsIDM5XSksIG8oJFZwLCBbMiwgNDBdKSwgbygkVnAsIFsyLCA0Ml0pLCBvKCRWcCwgWzIsIDQzXSksIG8oJFZwLCBbMiwgNDRdKSwgbygkVnAsIFsyLCA0NV0pLCBvKCRWcCwgWzIsIDQ2XSksIG8oJFZwLCBbMiwgNDddKSwgbygkVnAsIFsyLCA0OF0pLCBvKCRWcCwgWzIsIDQ5XSksIG8oJFZwLCBbMiwgNTBdKSwgbygkVnAsIFsyLCA1MV0pLCBvKCRWbiwgWzIsIDEwXSksIG8oJFZuLCBbMiwgMjJdLCB7IDMwOiA0MSwgMjk6IDU2LCAyNDogJFZqLCAyNzogJFZrIH0pLCBvKCRWbiwgWzIsIDI0XSksIG8oJFZuLCBbMiwgMjVdKSwgeyAzMTogWzEsIDU3XSB9LCB7IDExOiA1OSwgMzI6IDU4LCAzNzogMjQsIDM4OiAkVjcsIDM5OiAkVjgsIDQwOiAyNywgNDE6ICRWOSwgNDI6ICRWYSwgNDM6ICRWYiwgNDQ6ICRWYywgNDU6ICRWZCwgNDY6ICRWZSwgNDc6ICRWZiwgNDg6ICRWZywgNDk6ICRWaCwgNTA6ICRWaSB9LCBvKCRWbiwgWzIsIDExXSksIG8oJFZuLCBbMiwgMzBdLCB7IDMzOiA2MCwgMjc6ICRWbCB9KSwgbygkVm4sIFsyLCAzMl0pLCB7IDMxOiBbMSwgNjFdIH0sIG8oJFZuLCBbMiwgMTJdKSwgeyAxNzogNjIsIDI0OiAkVm0gfSwgeyAyNTogNjMsIDI3OiAkVnEgfSwgbygkVm4sIFsyLCAxNF0pLCB7IDE3OiA2NSwgMjQ6ICRWbSB9LCBvKCRWbiwgWzIsIDE2XSksIG8oJFZuLCBbMiwgMTddKSwgbygkVnAsIFsyLCA0MV0pLCBvKCRWbiwgWzIsIDIzXSksIHsgMjc6IFsxLCA2Nl0gfSwgeyAyNjogWzEsIDY3XSB9LCB7IDI2OiBbMiwgMjldLCAyODogWzEsIDY4XSB9LCBvKCRWbiwgWzIsIDMxXSksIHsgMjc6IFsxLCA2OV0gfSwgbygkVm4sIFsyLCAxM10pLCB7IDI2OiBbMSwgNzBdIH0sIHsgMjY6IFsyLCAyMV0sIDI4OiBbMSwgNzFdIH0sIG8oJFZuLCBbMiwgMTVdKSwgbygkVm4sIFsyLCAyNl0pLCBvKCRWbiwgWzIsIDI3XSksIHsgMTE6IDU5LCAzMjogNzIsIDM3OiAyNCwgMzg6ICRWNywgMzk6ICRWOCwgNDA6IDI3LCA0MTogJFY5LCA0MjogJFZhLCA0MzogJFZiLCA0NDogJFZjLCA0NTogJFZkLCA0NjogJFZlLCA0NzogJFZmLCA0ODogJFZnLCA0OTogJFZoLCA1MDogJFZpIH0sIG8oJFZuLCBbMiwgMzNdKSwgbygkVm4sIFsyLCAxOV0pLCB7IDI1OiA3MywgMjc6ICRWcSB9LCB7IDI2OiBbMiwgMjhdIH0sIHsgMjY6IFsyLCAyMF0gfV0sXG4gICAgZGVmYXVsdEFjdGlvbnM6IHsgODogWzIsIDFdLCAxMDogWzIsIDNdLCAyMTogWzIsIDJdLCA3MjogWzIsIDI4XSwgNzM6IFsyLCAyMF0gfSxcbiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgaWYgKGhhc2gucmVjb3ZlcmFibGUpIHtcbiAgICAgICAgdGhpcy50cmFjZShzdHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKHN0cik7XG4gICAgICAgIGVycm9yLmhhc2ggPSBoYXNoO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzLCBzdGFjayA9IFswXSwgdHN0YWNrID0gW10sIHZzdGFjayA9IFtudWxsXSwgbHN0YWNrID0gW10sIHRhYmxlID0gdGhpcy50YWJsZSwgeXl0ZXh0ID0gXCJcIiwgeXlsaW5lbm8gPSAwLCB5eWxlbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxO1xuICAgICAgdmFyIGFyZ3MgPSBsc3RhY2suc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGxleGVyMiA9IE9iamVjdC5jcmVhdGUodGhpcy5sZXhlcik7XG4gICAgICB2YXIgc2hhcmVkU3RhdGUgPSB7IHl5OiB7fSB9O1xuICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnl5KSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHtcbiAgICAgICAgICBzaGFyZWRTdGF0ZS55eVtrXSA9IHRoaXMueXlba107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxleGVyMi5zZXRJbnB1dChpbnB1dCwgc2hhcmVkU3RhdGUueXkpO1xuICAgICAgc2hhcmVkU3RhdGUueXkubGV4ZXIgPSBsZXhlcjI7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5wYXJzZXIgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBsZXhlcjIueXlsbG9jID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbGV4ZXIyLnl5bGxvYyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICAgIHZhciByYW5nZXMgPSBsZXhlcjIub3B0aW9ucyAmJiBsZXhlcjIub3B0aW9ucy5yYW5nZXM7XG4gICAgICBpZiAodHlwZW9mIHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCkgfHwgbGV4ZXIyLmxleCgpIHx8IEVPRjtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB0c3RhY2sgPSB0b2tlbjtcbiAgICAgICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0b2tlbiA9IHNlbGYuc3ltYm9sc19bdG9rZW5dIHx8IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cbiAgICAgIHZhciBzeW1ib2wsIHN0YXRlLCBhY3Rpb24sIHIsIHl5dmFsID0ge30sIHAsIGxlbiwgbmV3U3RhdGUsIGV4cGVjdGVkO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgc3RhdGUgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdKSB7XG4gICAgICAgICAgYWN0aW9uID0gdGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHN5bWJvbCA9PT0gbnVsbCB8fCB0eXBlb2Ygc3ltYm9sID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHN5bWJvbCA9IGxleCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhY3Rpb24gPSB0YWJsZVtzdGF0ZV0gJiYgdGFibGVbc3RhdGVdW3N5bWJvbF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09IFwidW5kZWZpbmVkXCIgfHwgIWFjdGlvbi5sZW5ndGggfHwgIWFjdGlvblswXSkge1xuICAgICAgICAgIHZhciBlcnJTdHIgPSBcIlwiO1xuICAgICAgICAgIGV4cGVjdGVkID0gW107XG4gICAgICAgICAgZm9yIChwIGluIHRhYmxlW3N0YXRlXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGVybWluYWxzX1twXSAmJiBwID4gVEVSUk9SKSB7XG4gICAgICAgICAgICAgIGV4cGVjdGVkLnB1c2goXCInXCIgKyB0aGlzLnRlcm1pbmFsc19bcF0gKyBcIidcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsZXhlcjIuc2hvd1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOlxcblwiICsgbGV4ZXIyLnNob3dQb3NpdGlvbigpICsgXCJcXG5FeHBlY3RpbmcgXCIgKyBleHBlY3RlZC5qb2luKFwiLCBcIikgKyBcIiwgZ290ICdcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6IFVuZXhwZWN0ZWQgXCIgKyAoc3ltYm9sID09IEVPRiA/IFwiZW5kIG9mIGlucHV0XCIgOiBcIidcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnBhcnNlRXJyb3IoZXJyU3RyLCB7XG4gICAgICAgICAgICB0ZXh0OiBsZXhlcjIubWF0Y2gsXG4gICAgICAgICAgICB0b2tlbjogdGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sLFxuICAgICAgICAgICAgbGluZTogbGV4ZXIyLnl5bGluZW5vLFxuICAgICAgICAgICAgbG9jOiB5eWxvYyxcbiAgICAgICAgICAgIGV4cGVjdGVkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblswXSBpbnN0YW5jZW9mIEFycmF5ICYmIGFjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyc2UgRXJyb3I6IG11bHRpcGxlIGFjdGlvbnMgcG9zc2libGUgYXQgc3RhdGU6IFwiICsgc3RhdGUgKyBcIiwgdG9rZW46IFwiICsgc3ltYm9sKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGFjdGlvblswXSkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHN0YWNrLnB1c2goc3ltYm9sKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKGxleGVyMi55eXRleHQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2gobGV4ZXIyLnl5bGxvYyk7XG4gICAgICAgICAgICBzdGFjay5wdXNoKGFjdGlvblsxXSk7XG4gICAgICAgICAgICBzeW1ib2wgPSBudWxsO1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB5eWxlbmcgPSBsZXhlcjIueXlsZW5nO1xuICAgICAgICAgICAgICB5eXRleHQgPSBsZXhlcjIueXl0ZXh0O1xuICAgICAgICAgICAgICB5eWxpbmVubyA9IGxleGVyMi55eWxpbmVubztcbiAgICAgICAgICAgICAgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgbGVuID0gdGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVsxXTtcbiAgICAgICAgICAgIHl5dmFsLiQgPSB2c3RhY2tbdnN0YWNrLmxlbmd0aCAtIGxlbl07XG4gICAgICAgICAgICB5eXZhbC5fJCA9IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyYW5nZXMpIHtcbiAgICAgICAgICAgICAgeXl2YWwuXyQucmFuZ2UgPSBbXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5yYW5nZVswXSxcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLnJhbmdlWzFdXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByID0gdGhpcy5wZXJmb3JtQWN0aW9uLmFwcGx5KHl5dmFsLCBbXG4gICAgICAgICAgICAgIHl5dGV4dCxcbiAgICAgICAgICAgICAgeXlsZW5nLFxuICAgICAgICAgICAgICB5eWxpbmVubyxcbiAgICAgICAgICAgICAgc2hhcmVkU3RhdGUueXksXG4gICAgICAgICAgICAgIGFjdGlvblsxXSxcbiAgICAgICAgICAgICAgdnN0YWNrLFxuICAgICAgICAgICAgICBsc3RhY2tcbiAgICAgICAgICAgIF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZW4pIHtcbiAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZSgwLCAtMSAqIGxlbiAqIDIpO1xuICAgICAgICAgICAgICB2c3RhY2sgPSB2c3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgICBsc3RhY2sgPSBsc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhY2sucHVzaCh0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzBdKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKHl5dmFsLiQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2goeXl2YWwuXyQpO1xuICAgICAgICAgICAgbmV3U3RhdGUgPSB0YWJsZVtzdGFja1tzdGFjay5sZW5ndGggLSAyXV1bc3RhY2tbc3RhY2subGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgc3RhY2sucHVzaChuZXdTdGF0ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9O1xuICB2YXIgbGV4ZXIgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGV4ZXIyID0ge1xuICAgICAgRU9GOiAxLFxuICAgICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgICAgaWYgKHRoaXMueXkucGFyc2VyKSB7XG4gICAgICAgICAgdGhpcy55eS5wYXJzZXIucGFyc2VFcnJvcihzdHIsIGhhc2gpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmVzZXRzIHRoZSBsZXhlciwgc2V0cyBuZXcgaW5wdXRcbiAgICAgIHNldElucHV0OiBmdW5jdGlvbihpbnB1dCwgeXkpIHtcbiAgICAgICAgdGhpcy55eSA9IHl5IHx8IHRoaXMueXkgfHwge307XG4gICAgICAgIHRoaXMuX2lucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0aGlzLl9iYWNrdHJhY2sgPSB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy55eWxpbmVubyA9IHRoaXMueXlsZW5nID0gMDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjayA9IFtcIklOSVRJQUxcIl07XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiAwLFxuICAgICAgICAgIGxhc3RfbGluZTogMSxcbiAgICAgICAgICBsYXN0X2NvbHVtbjogMFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gWzAsIDBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gY29uc3VtZXMgYW5kIHJldHVybnMgb25lIGNoYXIgZnJvbSB0aGUgaW5wdXRcbiAgICAgIGlucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGNoID0gdGhpcy5faW5wdXRbMF07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IGNoO1xuICAgICAgICB0aGlzLnl5bGVuZysrO1xuICAgICAgICB0aGlzLm9mZnNldCsrO1xuICAgICAgICB0aGlzLm1hdGNoICs9IGNoO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gY2g7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubysrO1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfbGluZSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfY29sdW1uKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZVsxXSsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UoMSk7XG4gICAgICAgIHJldHVybiBjaDtcbiAgICAgIH0sXG4gICAgICAvLyB1bnNoaWZ0cyBvbmUgY2hhciAob3IgYSBzdHJpbmcpIGludG8gdGhlIGlucHV0XG4gICAgICB1bnB1dDogZnVuY3Rpb24oY2gpIHtcbiAgICAgICAgdmFyIGxlbiA9IGNoLmxlbmd0aDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBjaCArIHRoaXMuX2lucHV0O1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMueXl0ZXh0LnN1YnN0cigwLCB0aGlzLnl5dGV4dC5sZW5ndGggLSBsZW4pO1xuICAgICAgICB0aGlzLm9mZnNldCAtPSBsZW47XG4gICAgICAgIHZhciBvbGRMaW5lcyA9IHRoaXMubWF0Y2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5tYXRjaCA9IHRoaXMubWF0Y2guc3Vic3RyKDAsIHRoaXMubWF0Y2gubGVuZ3RoIC0gMSk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIDEpO1xuICAgICAgICBpZiAobGluZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gLT0gbGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgciA9IHRoaXMueXlsbG9jLnJhbmdlO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gKGxpbmVzLmxlbmd0aCA9PT0gb2xkTGluZXMubGVuZ3RoID8gdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIDogMCkgKyBvbGRMaW5lc1tvbGRMaW5lcy5sZW5ndGggLSBsaW5lcy5sZW5ndGhdLmxlbmd0aCAtIGxpbmVzWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiAtIGxlblxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3JbMF0sIHJbMF0gKyB0aGlzLnl5bGVuZyAtIGxlbl07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBjYWNoZXMgbWF0Y2hlZCB0ZXh0IGFuZCBhcHBlbmRzIGl0IG9uIG5leHQgYWN0aW9uXG4gICAgICBtb3JlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBzaWduYWxzIHRoZSBsZXhlciB0aGF0IHRoaXMgcnVsZSBmYWlscyB0byBtYXRjaCB0aGUgaW5wdXQsIHNvIHRoZSBuZXh0IG1hdGNoaW5nIHJ1bGUgKHJlZ2V4KSBzaG91bGQgYmUgdGVzdGVkIGluc3RlYWQuXG4gICAgICByZWplY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gWW91IGNhbiBvbmx5IGludm9rZSByZWplY3QoKSBpbiB0aGUgbGV4ZXIgd2hlbiB0aGUgbGV4ZXIgaXMgb2YgdGhlIGJhY2t0cmFja2luZyBwZXJzdWFzaW9uIChvcHRpb25zLmJhY2t0cmFja19sZXhlciA9IHRydWUpLlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIHJldGFpbiBmaXJzdCBuIGNoYXJhY3RlcnMgb2YgdGhlIG1hdGNoXG4gICAgICBsZXNzOiBmdW5jdGlvbihuKSB7XG4gICAgICAgIHRoaXMudW5wdXQodGhpcy5tYXRjaC5zbGljZShuKSk7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgYWxyZWFkeSBtYXRjaGVkIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgcGFzdElucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHBhc3QgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSB0aGlzLm1hdGNoLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiAocGFzdC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSArIHBhc3Quc3Vic3RyKC0yMCkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHVwY29taW5nIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgdXBjb21pbmdJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5tYXRjaDtcbiAgICAgICAgaWYgKG5leHQubGVuZ3RoIDwgMjApIHtcbiAgICAgICAgICBuZXh0ICs9IHRoaXMuX2lucHV0LnN1YnN0cigwLCAyMCAtIG5leHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKG5leHQuc3Vic3RyKDAsIDIwKSArIChuZXh0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdGhlIGNoYXJhY3RlciBwb3NpdGlvbiB3aGVyZSB0aGUgbGV4aW5nIGVycm9yIG9jY3VycmVkLCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgc2hvd1Bvc2l0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHByZSA9IHRoaXMucGFzdElucHV0KCk7XG4gICAgICAgIHZhciBjID0gbmV3IEFycmF5KHByZS5sZW5ndGggKyAxKS5qb2luKFwiLVwiKTtcbiAgICAgICAgcmV0dXJuIHByZSArIHRoaXMudXBjb21pbmdJbnB1dCgpICsgXCJcXG5cIiArIGMgKyBcIl5cIjtcbiAgICAgIH0sXG4gICAgICAvLyB0ZXN0IHRoZSBsZXhlZCB0b2tlbjogcmV0dXJuIEZBTFNFIHdoZW4gbm90IGEgbWF0Y2gsIG90aGVyd2lzZSByZXR1cm4gdG9rZW5cbiAgICAgIHRlc3RfbWF0Y2g6IGZ1bmN0aW9uKG1hdGNoLCBpbmRleGVkX3J1bGUpIHtcbiAgICAgICAgdmFyIHRva2VuLCBsaW5lcywgYmFja3VwO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIGJhY2t1cCA9IHtcbiAgICAgICAgICAgIHl5bGluZW5vOiB0aGlzLnl5bGluZW5vLFxuICAgICAgICAgICAgeXlsbG9jOiB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogdGhpcy5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5eXRleHQ6IHRoaXMueXl0ZXh0LFxuICAgICAgICAgICAgbWF0Y2g6IHRoaXMubWF0Y2gsXG4gICAgICAgICAgICBtYXRjaGVzOiB0aGlzLm1hdGNoZXMsXG4gICAgICAgICAgICBtYXRjaGVkOiB0aGlzLm1hdGNoZWQsXG4gICAgICAgICAgICB5eWxlbmc6IHRoaXMueXlsZW5nLFxuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgIF9tb3JlOiB0aGlzLl9tb3JlLFxuICAgICAgICAgICAgX2lucHV0OiB0aGlzLl9pbnB1dCxcbiAgICAgICAgICAgIHl5OiB0aGlzLnl5LFxuICAgICAgICAgICAgY29uZGl0aW9uU3RhY2s6IHRoaXMuY29uZGl0aW9uU3RhY2suc2xpY2UoMCksXG4gICAgICAgICAgICBkb25lOiB0aGlzLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgICBiYWNrdXAueXlsbG9jLnJhbmdlID0gdGhpcy55eWxsb2MucmFuZ2Uuc2xpY2UoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxpbmVzID0gbWF0Y2hbMF0ubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5sYXN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLm1hdGNoKC9cXHI/XFxuPy8pWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uICsgbWF0Y2hbMF0ubGVuZ3RoXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoZXMgPSBtYXRjaDtcbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbdGhpcy5vZmZzZXQsIHRoaXMub2Zmc2V0ICs9IHRoaXMueXlsZW5nXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tb3JlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBtYXRjaFswXTtcbiAgICAgICAgdG9rZW4gPSB0aGlzLnBlcmZvcm1BY3Rpb24uY2FsbCh0aGlzLCB0aGlzLnl5LCB0aGlzLCBpbmRleGVkX3J1bGUsIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSk7XG4gICAgICAgIGlmICh0aGlzLmRvbmUgJiYgdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgZm9yICh2YXIgayBpbiBiYWNrdXApIHtcbiAgICAgICAgICAgIHRoaXNba10gPSBiYWNrdXBba107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggaW4gaW5wdXRcbiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b2tlbiwgbWF0Y2gsIHRlbXBNYXRjaCwgaW5kZXg7XG4gICAgICAgIGlmICghdGhpcy5fbW9yZSkge1xuICAgICAgICAgIHRoaXMueXl0ZXh0ID0gXCJcIjtcbiAgICAgICAgICB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcnVsZXMgPSB0aGlzLl9jdXJyZW50UnVsZXMoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRlbXBNYXRjaCA9IHRoaXMuX2lucHV0Lm1hdGNoKHRoaXMucnVsZXNbcnVsZXNbaV1dKTtcbiAgICAgICAgICBpZiAodGVtcE1hdGNoICYmICghbWF0Y2ggfHwgdGVtcE1hdGNoWzBdLmxlbmd0aCA+IG1hdGNoWzBdLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIG1hdGNoID0gdGVtcE1hdGNoO1xuICAgICAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2godGVtcE1hdGNoLCBydWxlc1tpXSk7XG4gICAgICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3B0aW9ucy5mbGV4KSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaChtYXRjaCwgcnVsZXNbaW5kZXhdKTtcbiAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faW5wdXQgPT09IFwiXCIpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gVW5yZWNvZ25pemVkIHRleHQuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCB0aGF0IGhhcyBhIHRva2VuXG4gICAgICBsZXg6IGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLm5leHQoKTtcbiAgICAgICAgaWYgKHIpIHtcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sZXgoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFjdGl2YXRlcyBhIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgKHB1c2hlcyB0aGUgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvbnRvIHRoZSBjb25kaXRpb24gc3RhY2spXG4gICAgICBiZWdpbjogZnVuY3Rpb24gYmVnaW4oY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sucHVzaChjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHBvcCB0aGUgcHJldmlvdXNseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9mZiB0aGUgY29uZGl0aW9uIHN0YWNrXG4gICAgICBwb3BTdGF0ZTogZnVuY3Rpb24gcG9wU3RhdGUoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxO1xuICAgICAgICBpZiAobiA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5wb3AoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1swXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHByb2R1Y2UgdGhlIGxleGVyIHJ1bGUgc2V0IHdoaWNoIGlzIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlXG4gICAgICBfY3VycmVudFJ1bGVzOiBmdW5jdGlvbiBfY3VycmVudFJ1bGVzKCkge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggJiYgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1t0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV1dLnJ1bGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbXCJJTklUSUFMXCJdLnJ1bGVzO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZTsgd2hlbiBhbiBpbmRleCBhcmd1bWVudCBpcyBwcm92aWRlZCBpdCBwcm9kdWNlcyB0aGUgTi10aCBwcmV2aW91cyBjb25kaXRpb24gc3RhdGUsIGlmIGF2YWlsYWJsZVxuICAgICAgdG9wU3RhdGU6IGZ1bmN0aW9uIHRvcFN0YXRlKG4pIHtcbiAgICAgICAgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMSAtIE1hdGguYWJzKG4gfHwgMCk7XG4gICAgICAgIGlmIChuID49IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1tuXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gXCJJTklUSUFMXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhbGlhcyBmb3IgYmVnaW4oY29uZGl0aW9uKVxuICAgICAgcHVzaFN0YXRlOiBmdW5jdGlvbiBwdXNoU3RhdGUoY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuYmVnaW4oY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0ZXMgY3VycmVudGx5IG9uIHRoZSBzdGFja1xuICAgICAgc3RhdGVTdGFja1NpemU6IGZ1bmN0aW9uIHN0YXRlU3RhY2tTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgb3B0aW9uczogeyBcImNhc2UtaW5zZW5zaXRpdmVcIjogdHJ1ZSB9LFxuICAgICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5LCB5eV8sICRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMsIFlZX1NUQVJUKSB7XG4gICAgICAgIHN3aXRjaCAoJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucykge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiAzNDtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gMzQ7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgcmV0dXJuIDM0O1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHJldHVybiAxMDtcbiAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcImFjY190aXRsZVwiKTtcbiAgICAgICAgICAgIHJldHVybiAxOTtcbiAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfdGl0bGVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcImFjY19kZXNjclwiKTtcbiAgICAgICAgICAgIHJldHVybiAyMTtcbiAgICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX2Rlc2NyX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiYWNjX2Rlc2NyX211bHRpbGluZVwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgICByZXR1cm4gNTtcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgcmV0dXJuIDg7XG4gICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiYXhpc19kYXRhXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiWF9BWElTXCI7XG4gICAgICAgICAgY2FzZSAxNzpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiYXhpc19kYXRhXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiWV9BWElTXCI7XG4gICAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiYXhpc19iYW5kX2RhdGFcIik7XG4gICAgICAgICAgICByZXR1cm4gMjQ7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIHJldHVybiAzMTtcbiAgICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJkYXRhXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE2O1xuICAgICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcImRhdGFcIik7XG4gICAgICAgICAgICByZXR1cm4gMTg7XG4gICAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiZGF0YV9pbm5lclwiKTtcbiAgICAgICAgICAgIHJldHVybiAyNDtcbiAgICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgICAgcmV0dXJuIDI3O1xuICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gMjY7XG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcInN0cmluZ1wiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI4OlxuICAgICAgICAgICAgcmV0dXJuIFwiU1RSXCI7XG4gICAgICAgICAgY2FzZSAyOTpcbiAgICAgICAgICAgIHJldHVybiAyNDtcbiAgICAgICAgICBjYXNlIDMwOlxuICAgICAgICAgICAgcmV0dXJuIDI2O1xuICAgICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgICByZXR1cm4gNDM7XG4gICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAgIHJldHVybiBcIkNPTE9OXCI7XG4gICAgICAgICAgY2FzZSAzMzpcbiAgICAgICAgICAgIHJldHVybiA0NDtcbiAgICAgICAgICBjYXNlIDM0OlxuICAgICAgICAgICAgcmV0dXJuIDI4O1xuICAgICAgICAgIGNhc2UgMzU6XG4gICAgICAgICAgICByZXR1cm4gNDU7XG4gICAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICAgIHJldHVybiA0NjtcbiAgICAgICAgICBjYXNlIDM3OlxuICAgICAgICAgICAgcmV0dXJuIDQ4O1xuICAgICAgICAgIGNhc2UgMzg6XG4gICAgICAgICAgICByZXR1cm4gNTA7XG4gICAgICAgICAgY2FzZSAzOTpcbiAgICAgICAgICAgIHJldHVybiA0NztcbiAgICAgICAgICBjYXNlIDQwOlxuICAgICAgICAgICAgcmV0dXJuIDQxO1xuICAgICAgICAgIGNhc2UgNDE6XG4gICAgICAgICAgICByZXR1cm4gNDk7XG4gICAgICAgICAgY2FzZSA0MjpcbiAgICAgICAgICAgIHJldHVybiA0MjtcbiAgICAgICAgICBjYXNlIDQzOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0NDpcbiAgICAgICAgICAgIHJldHVybiAzNTtcbiAgICAgICAgICBjYXNlIDQ1OlxuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcnVsZXM6IFsvXig/OiUlKD8hXFx7KVteXFxuXSopL2ksIC9eKD86W15cXH1dJSVbXlxcbl0qKS9pLCAvXig/OihcXHI/XFxuKSkvaSwgL14oPzooXFxyP1xcbikpL2ksIC9eKD86W1xcblxccl0rKS9pLCAvXig/OiUlW15cXG5dKikvaSwgL14oPzp0aXRsZVxcYikvaSwgL14oPzphY2NUaXRsZVxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccypcXHtcXHMqKS9pLCAvXig/OlxceykvaSwgL14oPzpbXlxcfV0qKS9pLCAvXig/Onh5Y2hhcnQtYmV0YVxcYikvaSwgL14oPzooPzp2ZXJ0aWNhbHxob3Jpem9udGFsKSkvaSwgL14oPzp4LWF4aXNcXGIpL2ksIC9eKD86eS1heGlzXFxiKS9pLCAvXig/OlxcWykvaSwgL14oPzotLT4pL2ksIC9eKD86bGluZVxcYikvaSwgL14oPzpiYXJcXGIpL2ksIC9eKD86XFxbKS9pLCAvXig/OlsrLV0/KD86XFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKSkvaSwgL14oPzpcXF0pL2ksIC9eKD86KD86YFxcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxceyB0aGlzXFwucHVzaFN0YXRlXFwobWRfc3RyaW5nXFwpOyBcXH1cXG48bWRfc3RyaW5nPlxcKFxcPzpcXChcXD8hYFwiXFwpXFwuXFwpXFwrICAgICAgICAgICAgICAgICAgXFx7IHJldHVybiBNRF9TVFI7IFxcfVxcbjxtZF9zdHJpbmc+XFwoXFw/OmApKS9pLCAvXig/OltcIl0pL2ksIC9eKD86W1wiXSkvaSwgL14oPzpbXlwiXSopL2ksIC9eKD86XFxbKS9pLCAvXig/OlxcXSkvaSwgL14oPzpbQS1aYS16XSspL2ksIC9eKD86OikvaSwgL14oPzpcXCspL2ksIC9eKD86LCkvaSwgL14oPzo9KS9pLCAvXig/OlxcKikvaSwgL14oPzojKS9pLCAvXig/OltcXF9dKS9pLCAvXig/OlxcLikvaSwgL14oPzomKS9pLCAvXig/Oi0pL2ksIC9eKD86WzAtOV0rKS9pLCAvXig/OlxccyspL2ksIC9eKD86OykvaSwgL14oPzokKS9pXSxcbiAgICAgIGNvbmRpdGlvbnM6IHsgXCJkYXRhX2lubmVyXCI6IHsgXCJydWxlc1wiOiBbMCwgMSwgNCwgNSwgNiwgNywgOSwgMTEsIDE0LCAxNSwgMTYsIDE3LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDVdLCBcImluY2x1c2l2ZVwiOiB0cnVlIH0sIFwiZGF0YVwiOiB7IFwicnVsZXNcIjogWzAsIDEsIDMsIDQsIDUsIDYsIDcsIDksIDExLCAxNCwgMTUsIDE2LCAxNywgMjAsIDIxLCAyMiwgMjUsIDI2LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDVdLCBcImluY2x1c2l2ZVwiOiB0cnVlIH0sIFwiYXhpc19iYW5kX2RhdGFcIjogeyBcInJ1bGVzXCI6IFswLCAxLCA0LCA1LCA2LCA3LCA5LCAxMSwgMTQsIDE1LCAxNiwgMTcsIDIwLCAyMSwgMjQsIDI1LCAyNiwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1XSwgXCJpbmNsdXNpdmVcIjogdHJ1ZSB9LCBcImF4aXNfZGF0YVwiOiB7IFwicnVsZXNcIjogWzAsIDEsIDIsIDQsIDUsIDYsIDcsIDksIDExLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIzLCAyNSwgMjYsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NV0sIFwiaW5jbHVzaXZlXCI6IHRydWUgfSwgXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCI6IHsgXCJydWxlc1wiOiBbMTIsIDEzXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfZGVzY3JcIjogeyBcInJ1bGVzXCI6IFsxMF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX3RpdGxlXCI6IHsgXCJydWxlc1wiOiBbOF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwidGl0bGVcIjogeyBcInJ1bGVzXCI6IFtdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIm1kX3N0cmluZ1wiOiB7IFwicnVsZXNcIjogW10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwic3RyaW5nXCI6IHsgXCJydWxlc1wiOiBbMjcsIDI4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMSwgNCwgNSwgNiwgNywgOSwgMTEsIDE0LCAxNSwgMTYsIDE3LCAyMCwgMjEsIDI1LCAyNiwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1XSwgXCJpbmNsdXNpdmVcIjogdHJ1ZSB9IH1cbiAgICB9O1xuICAgIHJldHVybiBsZXhlcjI7XG4gIH0oKTtcbiAgcGFyc2VyMi5sZXhlciA9IGxleGVyO1xuICBmdW5jdGlvbiBQYXJzZXIoKSB7XG4gICAgdGhpcy55eSA9IHt9O1xuICB9XG4gIFBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXIyO1xuICBwYXJzZXIyLlBhcnNlciA9IFBhcnNlcjtcbiAgcmV0dXJuIG5ldyBQYXJzZXIoKTtcbn0oKTtcbnBhcnNlci5wYXJzZXIgPSBwYXJzZXI7XG5jb25zdCBwYXJzZXIkMSA9IHBhcnNlcjtcbmZ1bmN0aW9uIGlzQmFyUGxvdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnR5cGUgPT09IFwiYmFyXCI7XG59XG5mdW5jdGlvbiBpc0JhbmRBeGlzRGF0YShkYXRhKSB7XG4gIHJldHVybiBkYXRhLnR5cGUgPT09IFwiYmFuZFwiO1xufVxuZnVuY3Rpb24gaXNMaW5lYXJBeGlzRGF0YShkYXRhKSB7XG4gIHJldHVybiBkYXRhLnR5cGUgPT09IFwibGluZWFyXCI7XG59XG5jbGFzcyBUZXh0RGltZW5zaW9uQ2FsY3VsYXRvcldpdGhGb250IHtcbiAgY29uc3RydWN0b3IocGFyZW50R3JvdXApIHtcbiAgICB0aGlzLnBhcmVudEdyb3VwID0gcGFyZW50R3JvdXA7XG4gIH1cbiAgZ2V0TWF4RGltZW5zaW9uKHRleHRzLCBmb250U2l6ZSkge1xuICAgIGlmICghdGhpcy5wYXJlbnRHcm91cCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGg6IHRleHRzLnJlZHVjZSgoYWNjLCBjdXIpID0+IE1hdGgubWF4KGN1ci5sZW5ndGgsIGFjYyksIDApICogZm9udFNpemUsXG4gICAgICAgIGhlaWdodDogZm9udFNpemVcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IGRpbWVuc2lvbiA9IHtcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfTtcbiAgICBjb25zdCBlbGVtID0gdGhpcy5wYXJlbnRHcm91cC5hcHBlbmQoXCJnXCIpLmF0dHIoXCJ2aXNpYmlsaXR5XCIsIFwiaGlkZGVuXCIpLmF0dHIoXCJmb250LXNpemVcIiwgZm9udFNpemUpO1xuICAgIGZvciAoY29uc3QgdCBvZiB0ZXh0cykge1xuICAgICAgY29uc3QgYmJveCA9IGNvbXB1dGVEaW1lbnNpb25PZlRleHQoZWxlbSwgMSwgdCk7XG4gICAgICBjb25zdCB3aWR0aCA9IGJib3ggPyBiYm94LndpZHRoIDogdC5sZW5ndGggKiBmb250U2l6ZTtcbiAgICAgIGNvbnN0IGhlaWdodCA9IGJib3ggPyBiYm94LmhlaWdodCA6IGZvbnRTaXplO1xuICAgICAgZGltZW5zaW9uLndpZHRoID0gTWF0aC5tYXgoZGltZW5zaW9uLndpZHRoLCB3aWR0aCk7XG4gICAgICBkaW1lbnNpb24uaGVpZ2h0ID0gTWF0aC5tYXgoZGltZW5zaW9uLmhlaWdodCwgaGVpZ2h0KTtcbiAgICB9XG4gICAgZWxlbS5yZW1vdmUoKTtcbiAgICByZXR1cm4gZGltZW5zaW9uO1xuICB9XG59XG5jb25zdCBCQVJfV0lEVEhfVE9fVElDS19XSURUSF9SQVRJTyA9IDAuNztcbmNvbnN0IE1BWF9PVVRFUl9QQURESU5HX1BFUkNFTlRfRk9SX1dSVF9MQUJFTCA9IDAuMjtcbmNsYXNzIEJhc2VBeGlzIHtcbiAgY29uc3RydWN0b3IoYXhpc0NvbmZpZywgdGl0bGUsIHRleHREaW1lbnNpb25DYWxjdWxhdG9yLCBheGlzVGhlbWVDb25maWcpIHtcbiAgICB0aGlzLmF4aXNDb25maWcgPSBheGlzQ29uZmlnO1xuICAgIHRoaXMudGl0bGUgPSB0aXRsZTtcbiAgICB0aGlzLnRleHREaW1lbnNpb25DYWxjdWxhdG9yID0gdGV4dERpbWVuc2lvbkNhbGN1bGF0b3I7XG4gICAgdGhpcy5heGlzVGhlbWVDb25maWcgPSBheGlzVGhlbWVDb25maWc7XG4gICAgdGhpcy5ib3VuZGluZ1JlY3QgPSB7IHg6IDAsIHk6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDAgfTtcbiAgICB0aGlzLmF4aXNQb3NpdGlvbiA9IFwibGVmdFwiO1xuICAgIHRoaXMuc2hvd1RpdGxlID0gZmFsc2U7XG4gICAgdGhpcy5zaG93TGFiZWwgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dUaWNrID0gZmFsc2U7XG4gICAgdGhpcy5zaG93QXhpc0xpbmUgPSBmYWxzZTtcbiAgICB0aGlzLm91dGVyUGFkZGluZyA9IDA7XG4gICAgdGhpcy50aXRsZVRleHRIZWlnaHQgPSAwO1xuICAgIHRoaXMubGFiZWxUZXh0SGVpZ2h0ID0gMDtcbiAgICB0aGlzLnJhbmdlID0gWzAsIDEwXTtcbiAgICB0aGlzLmJvdW5kaW5nUmVjdCA9IHsgeDogMCwgeTogMCwgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xuICAgIHRoaXMuYXhpc1Bvc2l0aW9uID0gXCJsZWZ0XCI7XG4gIH1cbiAgc2V0UmFuZ2UocmFuZ2UpIHtcbiAgICB0aGlzLnJhbmdlID0gcmFuZ2U7XG4gICAgaWYgKHRoaXMuYXhpc1Bvc2l0aW9uID09PSBcImxlZnRcIiB8fCB0aGlzLmF4aXNQb3NpdGlvbiA9PT0gXCJyaWdodFwiKSB7XG4gICAgICB0aGlzLmJvdW5kaW5nUmVjdC5oZWlnaHQgPSByYW5nZVsxXSAtIHJhbmdlWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJvdW5kaW5nUmVjdC53aWR0aCA9IHJhbmdlWzFdIC0gcmFuZ2VbMF07XG4gICAgfVxuICAgIHRoaXMucmVjYWxjdWxhdGVTY2FsZSgpO1xuICB9XG4gIGdldFJhbmdlKCkge1xuICAgIHJldHVybiBbdGhpcy5yYW5nZVswXSArIHRoaXMub3V0ZXJQYWRkaW5nLCB0aGlzLnJhbmdlWzFdIC0gdGhpcy5vdXRlclBhZGRpbmddO1xuICB9XG4gIHNldEF4aXNQb3NpdGlvbihheGlzUG9zaXRpb24pIHtcbiAgICB0aGlzLmF4aXNQb3NpdGlvbiA9IGF4aXNQb3NpdGlvbjtcbiAgICB0aGlzLnNldFJhbmdlKHRoaXMucmFuZ2UpO1xuICB9XG4gIGdldFRpY2tEaXN0YW5jZSgpIHtcbiAgICBjb25zdCByYW5nZSA9IHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICByZXR1cm4gTWF0aC5hYnMocmFuZ2VbMF0gLSByYW5nZVsxXSkgLyB0aGlzLmdldFRpY2tWYWx1ZXMoKS5sZW5ndGg7XG4gIH1cbiAgZ2V0QXhpc091dGVyUGFkZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5vdXRlclBhZGRpbmc7XG4gIH1cbiAgZ2V0TGFiZWxEaW1lbnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudGV4dERpbWVuc2lvbkNhbGN1bGF0b3IuZ2V0TWF4RGltZW5zaW9uKFxuICAgICAgdGhpcy5nZXRUaWNrVmFsdWVzKCkubWFwKCh0aWNrKSA9PiB0aWNrLnRvU3RyaW5nKCkpLFxuICAgICAgdGhpcy5heGlzQ29uZmlnLmxhYmVsRm9udFNpemVcbiAgICApO1xuICB9XG4gIHJlY2FsY3VsYXRlT3V0ZXJQYWRkaW5nVG9EcmF3QmFyKCkge1xuICAgIGlmIChCQVJfV0lEVEhfVE9fVElDS19XSURUSF9SQVRJTyAqIHRoaXMuZ2V0VGlja0Rpc3RhbmNlKCkgPiB0aGlzLm91dGVyUGFkZGluZyAqIDIpIHtcbiAgICAgIHRoaXMub3V0ZXJQYWRkaW5nID0gTWF0aC5mbG9vcihCQVJfV0lEVEhfVE9fVElDS19XSURUSF9SQVRJTyAqIHRoaXMuZ2V0VGlja0Rpc3RhbmNlKCkgLyAyKTtcbiAgICB9XG4gICAgdGhpcy5yZWNhbGN1bGF0ZVNjYWxlKCk7XG4gIH1cbiAgY2FsY3VsYXRlU3BhY2VJZkRyYXduSG9yaXpvbnRhbGx5KGF2YWlsYWJsZVNwYWNlKSB7XG4gICAgbGV0IGF2YWlsYWJsZUhlaWdodCA9IGF2YWlsYWJsZVNwYWNlLmhlaWdodDtcbiAgICBpZiAodGhpcy5heGlzQ29uZmlnLnNob3dBeGlzTGluZSAmJiBhdmFpbGFibGVIZWlnaHQgPiB0aGlzLmF4aXNDb25maWcuYXhpc0xpbmVXaWR0aCkge1xuICAgICAgYXZhaWxhYmxlSGVpZ2h0IC09IHRoaXMuYXhpc0NvbmZpZy5heGlzTGluZVdpZHRoO1xuICAgICAgdGhpcy5zaG93QXhpc0xpbmUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5heGlzQ29uZmlnLnNob3dMYWJlbCkge1xuICAgICAgY29uc3Qgc3BhY2VSZXF1aXJlZCA9IHRoaXMuZ2V0TGFiZWxEaW1lbnNpb24oKTtcbiAgICAgIGNvbnN0IG1heFBhZGRpbmcgPSBNQVhfT1VURVJfUEFERElOR19QRVJDRU5UX0ZPUl9XUlRfTEFCRUwgKiBhdmFpbGFibGVTcGFjZS53aWR0aDtcbiAgICAgIHRoaXMub3V0ZXJQYWRkaW5nID0gTWF0aC5taW4oc3BhY2VSZXF1aXJlZC53aWR0aCAvIDIsIG1heFBhZGRpbmcpO1xuICAgICAgY29uc3QgaGVpZ2h0UmVxdWlyZWQgPSBzcGFjZVJlcXVpcmVkLmhlaWdodCArIHRoaXMuYXhpc0NvbmZpZy5sYWJlbFBhZGRpbmcgKiAyO1xuICAgICAgdGhpcy5sYWJlbFRleHRIZWlnaHQgPSBzcGFjZVJlcXVpcmVkLmhlaWdodDtcbiAgICAgIGlmIChoZWlnaHRSZXF1aXJlZCA8PSBhdmFpbGFibGVIZWlnaHQpIHtcbiAgICAgICAgYXZhaWxhYmxlSGVpZ2h0IC09IGhlaWdodFJlcXVpcmVkO1xuICAgICAgICB0aGlzLnNob3dMYWJlbCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmF4aXNDb25maWcuc2hvd1RpY2sgJiYgYXZhaWxhYmxlSGVpZ2h0ID49IHRoaXMuYXhpc0NvbmZpZy50aWNrTGVuZ3RoKSB7XG4gICAgICB0aGlzLnNob3dUaWNrID0gdHJ1ZTtcbiAgICAgIGF2YWlsYWJsZUhlaWdodCAtPSB0aGlzLmF4aXNDb25maWcudGlja0xlbmd0aDtcbiAgICB9XG4gICAgaWYgKHRoaXMuYXhpc0NvbmZpZy5zaG93VGl0bGUgJiYgdGhpcy50aXRsZSkge1xuICAgICAgY29uc3Qgc3BhY2VSZXF1aXJlZCA9IHRoaXMudGV4dERpbWVuc2lvbkNhbGN1bGF0b3IuZ2V0TWF4RGltZW5zaW9uKFxuICAgICAgICBbdGhpcy50aXRsZV0sXG4gICAgICAgIHRoaXMuYXhpc0NvbmZpZy50aXRsZUZvbnRTaXplXG4gICAgICApO1xuICAgICAgY29uc3QgaGVpZ2h0UmVxdWlyZWQgPSBzcGFjZVJlcXVpcmVkLmhlaWdodCArIHRoaXMuYXhpc0NvbmZpZy50aXRsZVBhZGRpbmcgKiAyO1xuICAgICAgdGhpcy50aXRsZVRleHRIZWlnaHQgPSBzcGFjZVJlcXVpcmVkLmhlaWdodDtcbiAgICAgIGlmIChoZWlnaHRSZXF1aXJlZCA8PSBhdmFpbGFibGVIZWlnaHQpIHtcbiAgICAgICAgYXZhaWxhYmxlSGVpZ2h0IC09IGhlaWdodFJlcXVpcmVkO1xuICAgICAgICB0aGlzLnNob3dUaXRsZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYm91bmRpbmdSZWN0LndpZHRoID0gYXZhaWxhYmxlU3BhY2Uud2lkdGg7XG4gICAgdGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0ID0gYXZhaWxhYmxlU3BhY2UuaGVpZ2h0IC0gYXZhaWxhYmxlSGVpZ2h0O1xuICB9XG4gIGNhbGN1bGF0ZVNwYWNlSWZEcmF3blZlcnRpY2FsKGF2YWlsYWJsZVNwYWNlKSB7XG4gICAgbGV0IGF2YWlsYWJsZVdpZHRoID0gYXZhaWxhYmxlU3BhY2Uud2lkdGg7XG4gICAgaWYgKHRoaXMuYXhpc0NvbmZpZy5zaG93QXhpc0xpbmUgJiYgYXZhaWxhYmxlV2lkdGggPiB0aGlzLmF4aXNDb25maWcuYXhpc0xpbmVXaWR0aCkge1xuICAgICAgYXZhaWxhYmxlV2lkdGggLT0gdGhpcy5heGlzQ29uZmlnLmF4aXNMaW5lV2lkdGg7XG4gICAgICB0aGlzLnNob3dBeGlzTGluZSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmF4aXNDb25maWcuc2hvd0xhYmVsKSB7XG4gICAgICBjb25zdCBzcGFjZVJlcXVpcmVkID0gdGhpcy5nZXRMYWJlbERpbWVuc2lvbigpO1xuICAgICAgY29uc3QgbWF4UGFkZGluZyA9IE1BWF9PVVRFUl9QQURESU5HX1BFUkNFTlRfRk9SX1dSVF9MQUJFTCAqIGF2YWlsYWJsZVNwYWNlLmhlaWdodDtcbiAgICAgIHRoaXMub3V0ZXJQYWRkaW5nID0gTWF0aC5taW4oc3BhY2VSZXF1aXJlZC5oZWlnaHQgLyAyLCBtYXhQYWRkaW5nKTtcbiAgICAgIGNvbnN0IHdpZHRoUmVxdWlyZWQgPSBzcGFjZVJlcXVpcmVkLndpZHRoICsgdGhpcy5heGlzQ29uZmlnLmxhYmVsUGFkZGluZyAqIDI7XG4gICAgICBpZiAod2lkdGhSZXF1aXJlZCA8PSBhdmFpbGFibGVXaWR0aCkge1xuICAgICAgICBhdmFpbGFibGVXaWR0aCAtPSB3aWR0aFJlcXVpcmVkO1xuICAgICAgICB0aGlzLnNob3dMYWJlbCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmF4aXNDb25maWcuc2hvd1RpY2sgJiYgYXZhaWxhYmxlV2lkdGggPj0gdGhpcy5heGlzQ29uZmlnLnRpY2tMZW5ndGgpIHtcbiAgICAgIHRoaXMuc2hvd1RpY2sgPSB0cnVlO1xuICAgICAgYXZhaWxhYmxlV2lkdGggLT0gdGhpcy5heGlzQ29uZmlnLnRpY2tMZW5ndGg7XG4gICAgfVxuICAgIGlmICh0aGlzLmF4aXNDb25maWcuc2hvd1RpdGxlICYmIHRoaXMudGl0bGUpIHtcbiAgICAgIGNvbnN0IHNwYWNlUmVxdWlyZWQgPSB0aGlzLnRleHREaW1lbnNpb25DYWxjdWxhdG9yLmdldE1heERpbWVuc2lvbihcbiAgICAgICAgW3RoaXMudGl0bGVdLFxuICAgICAgICB0aGlzLmF4aXNDb25maWcudGl0bGVGb250U2l6ZVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHdpZHRoUmVxdWlyZWQgPSBzcGFjZVJlcXVpcmVkLmhlaWdodCArIHRoaXMuYXhpc0NvbmZpZy50aXRsZVBhZGRpbmcgKiAyO1xuICAgICAgdGhpcy50aXRsZVRleHRIZWlnaHQgPSBzcGFjZVJlcXVpcmVkLmhlaWdodDtcbiAgICAgIGlmICh3aWR0aFJlcXVpcmVkIDw9IGF2YWlsYWJsZVdpZHRoKSB7XG4gICAgICAgIGF2YWlsYWJsZVdpZHRoIC09IHdpZHRoUmVxdWlyZWQ7XG4gICAgICAgIHRoaXMuc2hvd1RpdGxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5ib3VuZGluZ1JlY3Qud2lkdGggPSBhdmFpbGFibGVTcGFjZS53aWR0aCAtIGF2YWlsYWJsZVdpZHRoO1xuICAgIHRoaXMuYm91bmRpbmdSZWN0LmhlaWdodCA9IGF2YWlsYWJsZVNwYWNlLmhlaWdodDtcbiAgfVxuICBjYWxjdWxhdGVTcGFjZShhdmFpbGFibGVTcGFjZSkge1xuICAgIGlmICh0aGlzLmF4aXNQb3NpdGlvbiA9PT0gXCJsZWZ0XCIgfHwgdGhpcy5heGlzUG9zaXRpb24gPT09IFwicmlnaHRcIikge1xuICAgICAgdGhpcy5jYWxjdWxhdGVTcGFjZUlmRHJhd25WZXJ0aWNhbChhdmFpbGFibGVTcGFjZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlU3BhY2VJZkRyYXduSG9yaXpvbnRhbGx5KGF2YWlsYWJsZVNwYWNlKTtcbiAgICB9XG4gICAgdGhpcy5yZWNhbGN1bGF0ZVNjYWxlKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiB0aGlzLmJvdW5kaW5nUmVjdC53aWR0aCxcbiAgICAgIGhlaWdodDogdGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0XG4gICAgfTtcbiAgfVxuICBzZXRCb3VuZGluZ0JveFhZKHBvaW50KSB7XG4gICAgdGhpcy5ib3VuZGluZ1JlY3QueCA9IHBvaW50Lng7XG4gICAgdGhpcy5ib3VuZGluZ1JlY3QueSA9IHBvaW50Lnk7XG4gIH1cbiAgZ2V0RHJhd2FibGVFbGVtZW50c0ZvckxlZnRBeGlzKCkge1xuICAgIGNvbnN0IGRyYXdhYmxlRWxlbWVudCA9IFtdO1xuICAgIGlmICh0aGlzLnNob3dBeGlzTGluZSkge1xuICAgICAgY29uc3QgeCA9IHRoaXMuYm91bmRpbmdSZWN0LnggKyB0aGlzLmJvdW5kaW5nUmVjdC53aWR0aCAtIHRoaXMuYXhpc0NvbmZpZy5heGlzTGluZVdpZHRoIC8gMjtcbiAgICAgIGRyYXdhYmxlRWxlbWVudC5wdXNoKHtcbiAgICAgICAgdHlwZTogXCJwYXRoXCIsXG4gICAgICAgIGdyb3VwVGV4dHM6IFtcImxlZnQtYXhpc1wiLCBcImF4aXNsLWxpbmVcIl0sXG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiBgTSAke3h9LCR7dGhpcy5ib3VuZGluZ1JlY3QueX0gTCAke3h9LCR7dGhpcy5ib3VuZGluZ1JlY3QueSArIHRoaXMuYm91bmRpbmdSZWN0LmhlaWdodH0gYCxcbiAgICAgICAgICAgIHN0cm9rZUZpbGw6IHRoaXMuYXhpc1RoZW1lQ29uZmlnLmF4aXNMaW5lQ29sb3IsXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogdGhpcy5heGlzQ29uZmlnLmF4aXNMaW5lV2lkdGhcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93TGFiZWwpIHtcbiAgICAgIGRyYXdhYmxlRWxlbWVudC5wdXNoKHtcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIGdyb3VwVGV4dHM6IFtcImxlZnQtYXhpc1wiLCBcImxhYmVsXCJdLFxuICAgICAgICBkYXRhOiB0aGlzLmdldFRpY2tWYWx1ZXMoKS5tYXAoKHRpY2spID0+ICh7XG4gICAgICAgICAgdGV4dDogdGljay50b1N0cmluZygpLFxuICAgICAgICAgIHg6IHRoaXMuYm91bmRpbmdSZWN0LnggKyB0aGlzLmJvdW5kaW5nUmVjdC53aWR0aCAtICh0aGlzLnNob3dMYWJlbCA/IHRoaXMuYXhpc0NvbmZpZy5sYWJlbFBhZGRpbmcgOiAwKSAtICh0aGlzLnNob3dUaWNrID8gdGhpcy5heGlzQ29uZmlnLnRpY2tMZW5ndGggOiAwKSAtICh0aGlzLnNob3dBeGlzTGluZSA/IHRoaXMuYXhpc0NvbmZpZy5heGlzTGluZVdpZHRoIDogMCksXG4gICAgICAgICAgeTogdGhpcy5nZXRTY2FsZVZhbHVlKHRpY2spLFxuICAgICAgICAgIGZpbGw6IHRoaXMuYXhpc1RoZW1lQ29uZmlnLmxhYmVsQ29sb3IsXG4gICAgICAgICAgZm9udFNpemU6IHRoaXMuYXhpc0NvbmZpZy5sYWJlbEZvbnRTaXplLFxuICAgICAgICAgIHJvdGF0aW9uOiAwLFxuICAgICAgICAgIHZlcnRpY2FsUG9zOiBcIm1pZGRsZVwiLFxuICAgICAgICAgIGhvcml6b250YWxQb3M6IFwicmlnaHRcIlxuICAgICAgICB9KSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93VGljaykge1xuICAgICAgY29uc3QgeCA9IHRoaXMuYm91bmRpbmdSZWN0LnggKyB0aGlzLmJvdW5kaW5nUmVjdC53aWR0aCAtICh0aGlzLnNob3dBeGlzTGluZSA/IHRoaXMuYXhpc0NvbmZpZy5heGlzTGluZVdpZHRoIDogMCk7XG4gICAgICBkcmF3YWJsZUVsZW1lbnQucHVzaCh7XG4gICAgICAgIHR5cGU6IFwicGF0aFwiLFxuICAgICAgICBncm91cFRleHRzOiBbXCJsZWZ0LWF4aXNcIiwgXCJ0aWNrc1wiXSxcbiAgICAgICAgZGF0YTogdGhpcy5nZXRUaWNrVmFsdWVzKCkubWFwKCh0aWNrKSA9PiAoe1xuICAgICAgICAgIHBhdGg6IGBNICR7eH0sJHt0aGlzLmdldFNjYWxlVmFsdWUodGljayl9IEwgJHt4IC0gdGhpcy5heGlzQ29uZmlnLnRpY2tMZW5ndGh9LCR7dGhpcy5nZXRTY2FsZVZhbHVlKHRpY2spfWAsXG4gICAgICAgICAgc3Ryb2tlRmlsbDogdGhpcy5heGlzVGhlbWVDb25maWcudGlja0NvbG9yLFxuICAgICAgICAgIHN0cm9rZVdpZHRoOiB0aGlzLmF4aXNDb25maWcudGlja1dpZHRoXG4gICAgICAgIH0pKVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dUaXRsZSkge1xuICAgICAgZHJhd2FibGVFbGVtZW50LnB1c2goe1xuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgZ3JvdXBUZXh0czogW1wibGVmdC1heGlzXCIsIFwidGl0bGVcIl0sXG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiB0aGlzLnRpdGxlLFxuICAgICAgICAgICAgeDogdGhpcy5ib3VuZGluZ1JlY3QueCArIHRoaXMuYXhpc0NvbmZpZy50aXRsZVBhZGRpbmcsXG4gICAgICAgICAgICB5OiB0aGlzLmJvdW5kaW5nUmVjdC55ICsgdGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0IC8gMixcbiAgICAgICAgICAgIGZpbGw6IHRoaXMuYXhpc1RoZW1lQ29uZmlnLnRpdGxlQ29sb3IsXG4gICAgICAgICAgICBmb250U2l6ZTogdGhpcy5heGlzQ29uZmlnLnRpdGxlRm9udFNpemUsXG4gICAgICAgICAgICByb3RhdGlvbjogMjcwLFxuICAgICAgICAgICAgdmVydGljYWxQb3M6IFwidG9wXCIsXG4gICAgICAgICAgICBob3Jpem9udGFsUG9zOiBcImNlbnRlclwiXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRyYXdhYmxlRWxlbWVudDtcbiAgfVxuICBnZXREcmF3YWJsZUVsZW1lbnRzRm9yQm90dG9tQXhpcygpIHtcbiAgICBjb25zdCBkcmF3YWJsZUVsZW1lbnQgPSBbXTtcbiAgICBpZiAodGhpcy5zaG93QXhpc0xpbmUpIHtcbiAgICAgIGNvbnN0IHkgPSB0aGlzLmJvdW5kaW5nUmVjdC55ICsgdGhpcy5heGlzQ29uZmlnLmF4aXNMaW5lV2lkdGggLyAyO1xuICAgICAgZHJhd2FibGVFbGVtZW50LnB1c2goe1xuICAgICAgICB0eXBlOiBcInBhdGhcIixcbiAgICAgICAgZ3JvdXBUZXh0czogW1wiYm90dG9tLWF4aXNcIiwgXCJheGlzLWxpbmVcIl0sXG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiBgTSAke3RoaXMuYm91bmRpbmdSZWN0Lnh9LCR7eX0gTCAke3RoaXMuYm91bmRpbmdSZWN0LnggKyB0aGlzLmJvdW5kaW5nUmVjdC53aWR0aH0sJHt5fWAsXG4gICAgICAgICAgICBzdHJva2VGaWxsOiB0aGlzLmF4aXNUaGVtZUNvbmZpZy5heGlzTGluZUNvbG9yLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHRoaXMuYXhpc0NvbmZpZy5heGlzTGluZVdpZHRoXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd0xhYmVsKSB7XG4gICAgICBkcmF3YWJsZUVsZW1lbnQucHVzaCh7XG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICBncm91cFRleHRzOiBbXCJib3R0b20tYXhpc1wiLCBcImxhYmVsXCJdLFxuICAgICAgICBkYXRhOiB0aGlzLmdldFRpY2tWYWx1ZXMoKS5tYXAoKHRpY2spID0+ICh7XG4gICAgICAgICAgdGV4dDogdGljay50b1N0cmluZygpLFxuICAgICAgICAgIHg6IHRoaXMuZ2V0U2NhbGVWYWx1ZSh0aWNrKSxcbiAgICAgICAgICB5OiB0aGlzLmJvdW5kaW5nUmVjdC55ICsgdGhpcy5heGlzQ29uZmlnLmxhYmVsUGFkZGluZyArICh0aGlzLnNob3dUaWNrID8gdGhpcy5heGlzQ29uZmlnLnRpY2tMZW5ndGggOiAwKSArICh0aGlzLnNob3dBeGlzTGluZSA/IHRoaXMuYXhpc0NvbmZpZy5heGlzTGluZVdpZHRoIDogMCksXG4gICAgICAgICAgZmlsbDogdGhpcy5heGlzVGhlbWVDb25maWcubGFiZWxDb2xvcixcbiAgICAgICAgICBmb250U2l6ZTogdGhpcy5heGlzQ29uZmlnLmxhYmVsRm9udFNpemUsXG4gICAgICAgICAgcm90YXRpb246IDAsXG4gICAgICAgICAgdmVydGljYWxQb3M6IFwidG9wXCIsXG4gICAgICAgICAgaG9yaXpvbnRhbFBvczogXCJjZW50ZXJcIlxuICAgICAgICB9KSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93VGljaykge1xuICAgICAgY29uc3QgeSA9IHRoaXMuYm91bmRpbmdSZWN0LnkgKyAodGhpcy5zaG93QXhpc0xpbmUgPyB0aGlzLmF4aXNDb25maWcuYXhpc0xpbmVXaWR0aCA6IDApO1xuICAgICAgZHJhd2FibGVFbGVtZW50LnB1c2goe1xuICAgICAgICB0eXBlOiBcInBhdGhcIixcbiAgICAgICAgZ3JvdXBUZXh0czogW1wiYm90dG9tLWF4aXNcIiwgXCJ0aWNrc1wiXSxcbiAgICAgICAgZGF0YTogdGhpcy5nZXRUaWNrVmFsdWVzKCkubWFwKCh0aWNrKSA9PiAoe1xuICAgICAgICAgIHBhdGg6IGBNICR7dGhpcy5nZXRTY2FsZVZhbHVlKHRpY2spfSwke3l9IEwgJHt0aGlzLmdldFNjYWxlVmFsdWUodGljayl9LCR7eSArIHRoaXMuYXhpc0NvbmZpZy50aWNrTGVuZ3RofWAsXG4gICAgICAgICAgc3Ryb2tlRmlsbDogdGhpcy5heGlzVGhlbWVDb25maWcudGlja0NvbG9yLFxuICAgICAgICAgIHN0cm9rZVdpZHRoOiB0aGlzLmF4aXNDb25maWcudGlja1dpZHRoXG4gICAgICAgIH0pKVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dUaXRsZSkge1xuICAgICAgZHJhd2FibGVFbGVtZW50LnB1c2goe1xuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgZ3JvdXBUZXh0czogW1wiYm90dG9tLWF4aXNcIiwgXCJ0aXRsZVwiXSxcbiAgICAgICAgZGF0YTogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IHRoaXMudGl0bGUsXG4gICAgICAgICAgICB4OiB0aGlzLnJhbmdlWzBdICsgKHRoaXMucmFuZ2VbMV0gLSB0aGlzLnJhbmdlWzBdKSAvIDIsXG4gICAgICAgICAgICB5OiB0aGlzLmJvdW5kaW5nUmVjdC55ICsgdGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0IC0gdGhpcy5heGlzQ29uZmlnLnRpdGxlUGFkZGluZyAtIHRoaXMudGl0bGVUZXh0SGVpZ2h0LFxuICAgICAgICAgICAgZmlsbDogdGhpcy5heGlzVGhlbWVDb25maWcudGl0bGVDb2xvcixcbiAgICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmF4aXNDb25maWcudGl0bGVGb250U2l6ZSxcbiAgICAgICAgICAgIHJvdGF0aW9uOiAwLFxuICAgICAgICAgICAgdmVydGljYWxQb3M6IFwidG9wXCIsXG4gICAgICAgICAgICBob3Jpem9udGFsUG9zOiBcImNlbnRlclwiXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRyYXdhYmxlRWxlbWVudDtcbiAgfVxuICBnZXREcmF3YWJsZUVsZW1lbnRzRm9yVG9wQXhpcygpIHtcbiAgICBjb25zdCBkcmF3YWJsZUVsZW1lbnQgPSBbXTtcbiAgICBpZiAodGhpcy5zaG93QXhpc0xpbmUpIHtcbiAgICAgIGNvbnN0IHkgPSB0aGlzLmJvdW5kaW5nUmVjdC55ICsgdGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0IC0gdGhpcy5heGlzQ29uZmlnLmF4aXNMaW5lV2lkdGggLyAyO1xuICAgICAgZHJhd2FibGVFbGVtZW50LnB1c2goe1xuICAgICAgICB0eXBlOiBcInBhdGhcIixcbiAgICAgICAgZ3JvdXBUZXh0czogW1widG9wLWF4aXNcIiwgXCJheGlzLWxpbmVcIl0sXG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiBgTSAke3RoaXMuYm91bmRpbmdSZWN0Lnh9LCR7eX0gTCAke3RoaXMuYm91bmRpbmdSZWN0LnggKyB0aGlzLmJvdW5kaW5nUmVjdC53aWR0aH0sJHt5fWAsXG4gICAgICAgICAgICBzdHJva2VGaWxsOiB0aGlzLmF4aXNUaGVtZUNvbmZpZy5heGlzTGluZUNvbG9yLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHRoaXMuYXhpc0NvbmZpZy5heGlzTGluZVdpZHRoXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd0xhYmVsKSB7XG4gICAgICBkcmF3YWJsZUVsZW1lbnQucHVzaCh7XG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICBncm91cFRleHRzOiBbXCJ0b3AtYXhpc1wiLCBcImxhYmVsXCJdLFxuICAgICAgICBkYXRhOiB0aGlzLmdldFRpY2tWYWx1ZXMoKS5tYXAoKHRpY2spID0+ICh7XG4gICAgICAgICAgdGV4dDogdGljay50b1N0cmluZygpLFxuICAgICAgICAgIHg6IHRoaXMuZ2V0U2NhbGVWYWx1ZSh0aWNrKSxcbiAgICAgICAgICB5OiB0aGlzLmJvdW5kaW5nUmVjdC55ICsgKHRoaXMuc2hvd1RpdGxlID8gdGhpcy50aXRsZVRleHRIZWlnaHQgKyB0aGlzLmF4aXNDb25maWcudGl0bGVQYWRkaW5nICogMiA6IDApICsgdGhpcy5heGlzQ29uZmlnLmxhYmVsUGFkZGluZyxcbiAgICAgICAgICBmaWxsOiB0aGlzLmF4aXNUaGVtZUNvbmZpZy5sYWJlbENvbG9yLFxuICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmF4aXNDb25maWcubGFiZWxGb250U2l6ZSxcbiAgICAgICAgICByb3RhdGlvbjogMCxcbiAgICAgICAgICB2ZXJ0aWNhbFBvczogXCJ0b3BcIixcbiAgICAgICAgICBob3Jpem9udGFsUG9zOiBcImNlbnRlclwiXG4gICAgICAgIH0pKVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dUaWNrKSB7XG4gICAgICBjb25zdCB5ID0gdGhpcy5ib3VuZGluZ1JlY3QueTtcbiAgICAgIGRyYXdhYmxlRWxlbWVudC5wdXNoKHtcbiAgICAgICAgdHlwZTogXCJwYXRoXCIsXG4gICAgICAgIGdyb3VwVGV4dHM6IFtcInRvcC1heGlzXCIsIFwidGlja3NcIl0sXG4gICAgICAgIGRhdGE6IHRoaXMuZ2V0VGlja1ZhbHVlcygpLm1hcCgodGljaykgPT4gKHtcbiAgICAgICAgICBwYXRoOiBgTSAke3RoaXMuZ2V0U2NhbGVWYWx1ZSh0aWNrKX0sJHt5ICsgdGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0IC0gKHRoaXMuc2hvd0F4aXNMaW5lID8gdGhpcy5heGlzQ29uZmlnLmF4aXNMaW5lV2lkdGggOiAwKX0gTCAke3RoaXMuZ2V0U2NhbGVWYWx1ZSh0aWNrKX0sJHt5ICsgdGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0IC0gdGhpcy5heGlzQ29uZmlnLnRpY2tMZW5ndGggLSAodGhpcy5zaG93QXhpc0xpbmUgPyB0aGlzLmF4aXNDb25maWcuYXhpc0xpbmVXaWR0aCA6IDApfWAsXG4gICAgICAgICAgc3Ryb2tlRmlsbDogdGhpcy5heGlzVGhlbWVDb25maWcudGlja0NvbG9yLFxuICAgICAgICAgIHN0cm9rZVdpZHRoOiB0aGlzLmF4aXNDb25maWcudGlja1dpZHRoXG4gICAgICAgIH0pKVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dUaXRsZSkge1xuICAgICAgZHJhd2FibGVFbGVtZW50LnB1c2goe1xuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgZ3JvdXBUZXh0czogW1widG9wLWF4aXNcIiwgXCJ0aXRsZVwiXSxcbiAgICAgICAgZGF0YTogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IHRoaXMudGl0bGUsXG4gICAgICAgICAgICB4OiB0aGlzLmJvdW5kaW5nUmVjdC54ICsgdGhpcy5ib3VuZGluZ1JlY3Qud2lkdGggLyAyLFxuICAgICAgICAgICAgeTogdGhpcy5ib3VuZGluZ1JlY3QueSArIHRoaXMuYXhpc0NvbmZpZy50aXRsZVBhZGRpbmcsXG4gICAgICAgICAgICBmaWxsOiB0aGlzLmF4aXNUaGVtZUNvbmZpZy50aXRsZUNvbG9yLFxuICAgICAgICAgICAgZm9udFNpemU6IHRoaXMuYXhpc0NvbmZpZy50aXRsZUZvbnRTaXplLFxuICAgICAgICAgICAgcm90YXRpb246IDAsXG4gICAgICAgICAgICB2ZXJ0aWNhbFBvczogXCJ0b3BcIixcbiAgICAgICAgICAgIGhvcml6b250YWxQb3M6IFwiY2VudGVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZHJhd2FibGVFbGVtZW50O1xuICB9XG4gIGdldERyYXdhYmxlRWxlbWVudHMoKSB7XG4gICAgaWYgKHRoaXMuYXhpc1Bvc2l0aW9uID09PSBcImxlZnRcIikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RHJhd2FibGVFbGVtZW50c0ZvckxlZnRBeGlzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmF4aXNQb3NpdGlvbiA9PT0gXCJyaWdodFwiKSB7XG4gICAgICB0aHJvdyBFcnJvcihcIkRyYXdpbmcgb2YgcmlnaHQgYXhpcyBpcyBub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgfVxuICAgIGlmICh0aGlzLmF4aXNQb3NpdGlvbiA9PT0gXCJib3R0b21cIikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RHJhd2FibGVFbGVtZW50c0ZvckJvdHRvbUF4aXMoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYXhpc1Bvc2l0aW9uID09PSBcInRvcFwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREcmF3YWJsZUVsZW1lbnRzRm9yVG9wQXhpcygpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cbn1cbmNsYXNzIEJhbmRBeGlzIGV4dGVuZHMgQmFzZUF4aXMge1xuICBjb25zdHJ1Y3RvcihheGlzQ29uZmlnLCBheGlzVGhlbWVDb25maWcsIGNhdGVnb3JpZXMsIHRpdGxlLCB0ZXh0RGltZW5zaW9uQ2FsY3VsYXRvcikge1xuICAgIHN1cGVyKGF4aXNDb25maWcsIHRpdGxlLCB0ZXh0RGltZW5zaW9uQ2FsY3VsYXRvciwgYXhpc1RoZW1lQ29uZmlnKTtcbiAgICB0aGlzLmNhdGVnb3JpZXMgPSBjYXRlZ29yaWVzO1xuICAgIHRoaXMuc2NhbGUgPSBzY2FsZUJhbmQoKS5kb21haW4odGhpcy5jYXRlZ29yaWVzKS5yYW5nZSh0aGlzLmdldFJhbmdlKCkpO1xuICB9XG4gIHNldFJhbmdlKHJhbmdlKSB7XG4gICAgc3VwZXIuc2V0UmFuZ2UocmFuZ2UpO1xuICB9XG4gIHJlY2FsY3VsYXRlU2NhbGUoKSB7XG4gICAgdGhpcy5zY2FsZSA9IHNjYWxlQmFuZCgpLmRvbWFpbih0aGlzLmNhdGVnb3JpZXMpLnJhbmdlKHRoaXMuZ2V0UmFuZ2UoKSkucGFkZGluZ0lubmVyKDEpLnBhZGRpbmdPdXRlcigwKS5hbGlnbigwLjUpO1xuICAgIGxvZy50cmFjZShcIkJhbmRBeGlzIGF4aXMgZmluYWwgY2F0ZWdvcmllcywgcmFuZ2U6IFwiLCB0aGlzLmNhdGVnb3JpZXMsIHRoaXMuZ2V0UmFuZ2UoKSk7XG4gIH1cbiAgZ2V0VGlja1ZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yaWVzO1xuICB9XG4gIGdldFNjYWxlVmFsdWUodmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5zY2FsZSh2YWx1ZSkgfHwgdGhpcy5nZXRSYW5nZSgpWzBdO1xuICB9XG59XG5jbGFzcyBMaW5lYXJBeGlzIGV4dGVuZHMgQmFzZUF4aXMge1xuICBjb25zdHJ1Y3RvcihheGlzQ29uZmlnLCBheGlzVGhlbWVDb25maWcsIGRvbWFpbiwgdGl0bGUsIHRleHREaW1lbnNpb25DYWxjdWxhdG9yKSB7XG4gICAgc3VwZXIoYXhpc0NvbmZpZywgdGl0bGUsIHRleHREaW1lbnNpb25DYWxjdWxhdG9yLCBheGlzVGhlbWVDb25maWcpO1xuICAgIHRoaXMuZG9tYWluID0gZG9tYWluO1xuICAgIHRoaXMuc2NhbGUgPSBzY2FsZUxpbmVhcigpLmRvbWFpbih0aGlzLmRvbWFpbikucmFuZ2UodGhpcy5nZXRSYW5nZSgpKTtcbiAgfVxuICBnZXRUaWNrVmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLnNjYWxlLnRpY2tzKCk7XG4gIH1cbiAgcmVjYWxjdWxhdGVTY2FsZSgpIHtcbiAgICBjb25zdCBkb21haW4gPSBbLi4udGhpcy5kb21haW5dO1xuICAgIGlmICh0aGlzLmF4aXNQb3NpdGlvbiA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgIGRvbWFpbi5yZXZlcnNlKCk7XG4gICAgfVxuICAgIHRoaXMuc2NhbGUgPSBzY2FsZUxpbmVhcigpLmRvbWFpbihkb21haW4pLnJhbmdlKHRoaXMuZ2V0UmFuZ2UoKSk7XG4gIH1cbiAgZ2V0U2NhbGVWYWx1ZSh2YWx1ZSkge1xuICAgIHJldHVybiB0aGlzLnNjYWxlKHZhbHVlKTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0QXhpcyhkYXRhLCBheGlzQ29uZmlnLCBheGlzVGhlbWVDb25maWcsIHRtcFNWR0dyb3VwMikge1xuICBjb25zdCB0ZXh0RGltZW5zaW9uQ2FsY3VsYXRvciA9IG5ldyBUZXh0RGltZW5zaW9uQ2FsY3VsYXRvcldpdGhGb250KHRtcFNWR0dyb3VwMik7XG4gIGlmIChpc0JhbmRBeGlzRGF0YShkYXRhKSkge1xuICAgIHJldHVybiBuZXcgQmFuZEF4aXMoXG4gICAgICBheGlzQ29uZmlnLFxuICAgICAgYXhpc1RoZW1lQ29uZmlnLFxuICAgICAgZGF0YS5jYXRlZ29yaWVzLFxuICAgICAgZGF0YS50aXRsZSxcbiAgICAgIHRleHREaW1lbnNpb25DYWxjdWxhdG9yXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbmV3IExpbmVhckF4aXMoXG4gICAgYXhpc0NvbmZpZyxcbiAgICBheGlzVGhlbWVDb25maWcsXG4gICAgW2RhdGEubWluLCBkYXRhLm1heF0sXG4gICAgZGF0YS50aXRsZSxcbiAgICB0ZXh0RGltZW5zaW9uQ2FsY3VsYXRvclxuICApO1xufVxuY2xhc3MgQ2hhcnRUaXRsZSB7XG4gIGNvbnN0cnVjdG9yKHRleHREaW1lbnNpb25DYWxjdWxhdG9yLCBjaGFydENvbmZpZywgY2hhcnREYXRhLCBjaGFydFRoZW1lQ29uZmlnKSB7XG4gICAgdGhpcy50ZXh0RGltZW5zaW9uQ2FsY3VsYXRvciA9IHRleHREaW1lbnNpb25DYWxjdWxhdG9yO1xuICAgIHRoaXMuY2hhcnRDb25maWcgPSBjaGFydENvbmZpZztcbiAgICB0aGlzLmNoYXJ0RGF0YSA9IGNoYXJ0RGF0YTtcbiAgICB0aGlzLmNoYXJ0VGhlbWVDb25maWcgPSBjaGFydFRoZW1lQ29uZmlnO1xuICAgIHRoaXMuYm91bmRpbmdSZWN0ID0ge1xuICAgICAgeDogMCxcbiAgICAgIHk6IDAsXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMFxuICAgIH07XG4gICAgdGhpcy5zaG93Q2hhcnRUaXRsZSA9IGZhbHNlO1xuICB9XG4gIHNldEJvdW5kaW5nQm94WFkocG9pbnQpIHtcbiAgICB0aGlzLmJvdW5kaW5nUmVjdC54ID0gcG9pbnQueDtcbiAgICB0aGlzLmJvdW5kaW5nUmVjdC55ID0gcG9pbnQueTtcbiAgfVxuICBjYWxjdWxhdGVTcGFjZShhdmFpbGFibGVTcGFjZSkge1xuICAgIGNvbnN0IHRpdGxlRGltZW5zaW9uID0gdGhpcy50ZXh0RGltZW5zaW9uQ2FsY3VsYXRvci5nZXRNYXhEaW1lbnNpb24oXG4gICAgICBbdGhpcy5jaGFydERhdGEudGl0bGVdLFxuICAgICAgdGhpcy5jaGFydENvbmZpZy50aXRsZUZvbnRTaXplXG4gICAgKTtcbiAgICBjb25zdCB3aWR0aFJlcXVpcmVkID0gTWF0aC5tYXgodGl0bGVEaW1lbnNpb24ud2lkdGgsIGF2YWlsYWJsZVNwYWNlLndpZHRoKTtcbiAgICBjb25zdCBoZWlnaHRSZXF1aXJlZCA9IHRpdGxlRGltZW5zaW9uLmhlaWdodCArIDIgKiB0aGlzLmNoYXJ0Q29uZmlnLnRpdGxlUGFkZGluZztcbiAgICBpZiAodGl0bGVEaW1lbnNpb24ud2lkdGggPD0gd2lkdGhSZXF1aXJlZCAmJiB0aXRsZURpbWVuc2lvbi5oZWlnaHQgPD0gaGVpZ2h0UmVxdWlyZWQgJiYgdGhpcy5jaGFydENvbmZpZy5zaG93VGl0bGUgJiYgdGhpcy5jaGFydERhdGEudGl0bGUpIHtcbiAgICAgIHRoaXMuYm91bmRpbmdSZWN0LndpZHRoID0gd2lkdGhSZXF1aXJlZDtcbiAgICAgIHRoaXMuYm91bmRpbmdSZWN0LmhlaWdodCA9IGhlaWdodFJlcXVpcmVkO1xuICAgICAgdGhpcy5zaG93Q2hhcnRUaXRsZSA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogdGhpcy5ib3VuZGluZ1JlY3Qud2lkdGgsXG4gICAgICBoZWlnaHQ6IHRoaXMuYm91bmRpbmdSZWN0LmhlaWdodFxuICAgIH07XG4gIH1cbiAgZ2V0RHJhd2FibGVFbGVtZW50cygpIHtcbiAgICBjb25zdCBkcmF3YWJsZUVsZW0gPSBbXTtcbiAgICBpZiAodGhpcy5zaG93Q2hhcnRUaXRsZSkge1xuICAgICAgZHJhd2FibGVFbGVtLnB1c2goe1xuICAgICAgICBncm91cFRleHRzOiBbXCJjaGFydC10aXRsZVwiXSxcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmb250U2l6ZTogdGhpcy5jaGFydENvbmZpZy50aXRsZUZvbnRTaXplLFxuICAgICAgICAgICAgdGV4dDogdGhpcy5jaGFydERhdGEudGl0bGUsXG4gICAgICAgICAgICB2ZXJ0aWNhbFBvczogXCJtaWRkbGVcIixcbiAgICAgICAgICAgIGhvcml6b250YWxQb3M6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICB4OiB0aGlzLmJvdW5kaW5nUmVjdC54ICsgdGhpcy5ib3VuZGluZ1JlY3Qud2lkdGggLyAyLFxuICAgICAgICAgICAgeTogdGhpcy5ib3VuZGluZ1JlY3QueSArIHRoaXMuYm91bmRpbmdSZWN0LmhlaWdodCAvIDIsXG4gICAgICAgICAgICBmaWxsOiB0aGlzLmNoYXJ0VGhlbWVDb25maWcudGl0bGVDb2xvcixcbiAgICAgICAgICAgIHJvdGF0aW9uOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRyYXdhYmxlRWxlbTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0Q2hhcnRUaXRsZUNvbXBvbmVudChjaGFydENvbmZpZywgY2hhcnREYXRhLCBjaGFydFRoZW1lQ29uZmlnLCB0bXBTVkdHcm91cDIpIHtcbiAgY29uc3QgdGV4dERpbWVuc2lvbkNhbGN1bGF0b3IgPSBuZXcgVGV4dERpbWVuc2lvbkNhbGN1bGF0b3JXaXRoRm9udCh0bXBTVkdHcm91cDIpO1xuICByZXR1cm4gbmV3IENoYXJ0VGl0bGUodGV4dERpbWVuc2lvbkNhbGN1bGF0b3IsIGNoYXJ0Q29uZmlnLCBjaGFydERhdGEsIGNoYXJ0VGhlbWVDb25maWcpO1xufVxuY2xhc3MgTGluZVBsb3Qge1xuICBjb25zdHJ1Y3RvcihwbG90RGF0YSwgeEF4aXMsIHlBeGlzLCBvcmllbnRhdGlvbiwgcGxvdEluZGV4Mikge1xuICAgIHRoaXMucGxvdERhdGEgPSBwbG90RGF0YTtcbiAgICB0aGlzLnhBeGlzID0geEF4aXM7XG4gICAgdGhpcy55QXhpcyA9IHlBeGlzO1xuICAgIHRoaXMub3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjtcbiAgICB0aGlzLnBsb3RJbmRleCA9IHBsb3RJbmRleDI7XG4gIH1cbiAgZ2V0RHJhd2FibGVFbGVtZW50KCkge1xuICAgIGNvbnN0IGZpbmFsRGF0YSA9IHRoaXMucGxvdERhdGEuZGF0YS5tYXAoKGQpID0+IFtcbiAgICAgIHRoaXMueEF4aXMuZ2V0U2NhbGVWYWx1ZShkWzBdKSxcbiAgICAgIHRoaXMueUF4aXMuZ2V0U2NhbGVWYWx1ZShkWzFdKVxuICAgIF0pO1xuICAgIGxldCBwYXRoO1xuICAgIGlmICh0aGlzLm9yaWVudGF0aW9uID09PSBcImhvcml6b250YWxcIikge1xuICAgICAgcGF0aCA9IGxpbmUoKS55KChkKSA9PiBkWzBdKS54KChkKSA9PiBkWzFdKShmaW5hbERhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXRoID0gbGluZSgpLngoKGQpID0+IGRbMF0pLnkoKGQpID0+IGRbMV0pKGZpbmFsRGF0YSk7XG4gICAgfVxuICAgIGlmICghcGF0aCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBncm91cFRleHRzOiBbXCJwbG90XCIsIGBsaW5lLXBsb3QtJHt0aGlzLnBsb3RJbmRleH1gXSxcbiAgICAgICAgdHlwZTogXCJwYXRoXCIsXG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgc3Ryb2tlRmlsbDogdGhpcy5wbG90RGF0YS5zdHJva2VGaWxsLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHRoaXMucGxvdERhdGEuc3Ryb2tlV2lkdGhcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdO1xuICB9XG59XG5jbGFzcyBCYXJQbG90IHtcbiAgY29uc3RydWN0b3IoYmFyRGF0YSwgYm91bmRpbmdSZWN0LCB4QXhpcywgeUF4aXMsIG9yaWVudGF0aW9uLCBwbG90SW5kZXgyKSB7XG4gICAgdGhpcy5iYXJEYXRhID0gYmFyRGF0YTtcbiAgICB0aGlzLmJvdW5kaW5nUmVjdCA9IGJvdW5kaW5nUmVjdDtcbiAgICB0aGlzLnhBeGlzID0geEF4aXM7XG4gICAgdGhpcy55QXhpcyA9IHlBeGlzO1xuICAgIHRoaXMub3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjtcbiAgICB0aGlzLnBsb3RJbmRleCA9IHBsb3RJbmRleDI7XG4gIH1cbiAgZ2V0RHJhd2FibGVFbGVtZW50KCkge1xuICAgIGNvbnN0IGZpbmFsRGF0YSA9IHRoaXMuYmFyRGF0YS5kYXRhLm1hcCgoZCkgPT4gW1xuICAgICAgdGhpcy54QXhpcy5nZXRTY2FsZVZhbHVlKGRbMF0pLFxuICAgICAgdGhpcy55QXhpcy5nZXRTY2FsZVZhbHVlKGRbMV0pXG4gICAgXSk7XG4gICAgY29uc3QgYmFyUGFkZGluZ1BlcmNlbnQgPSAwLjA1O1xuICAgIGNvbnN0IGJhcldpZHRoID0gTWF0aC5taW4odGhpcy54QXhpcy5nZXRBeGlzT3V0ZXJQYWRkaW5nKCkgKiAyLCB0aGlzLnhBeGlzLmdldFRpY2tEaXN0YW5jZSgpKSAqICgxIC0gYmFyUGFkZGluZ1BlcmNlbnQpO1xuICAgIGNvbnN0IGJhcldpZHRoSGFsZiA9IGJhcldpZHRoIC8gMjtcbiAgICBpZiAodGhpcy5vcmllbnRhdGlvbiA9PT0gXCJob3Jpem9udGFsXCIpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBncm91cFRleHRzOiBbXCJwbG90XCIsIGBiYXItcGxvdC0ke3RoaXMucGxvdEluZGV4fWBdLFxuICAgICAgICAgIHR5cGU6IFwicmVjdFwiLFxuICAgICAgICAgIGRhdGE6IGZpbmFsRGF0YS5tYXAoKGRhdGEpID0+ICh7XG4gICAgICAgICAgICB4OiB0aGlzLmJvdW5kaW5nUmVjdC54LFxuICAgICAgICAgICAgeTogZGF0YVswXSAtIGJhcldpZHRoSGFsZixcbiAgICAgICAgICAgIGhlaWdodDogYmFyV2lkdGgsXG4gICAgICAgICAgICB3aWR0aDogZGF0YVsxXSAtIHRoaXMuYm91bmRpbmdSZWN0LngsXG4gICAgICAgICAgICBmaWxsOiB0aGlzLmJhckRhdGEuZmlsbCxcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgICAgICAgICAgc3Ryb2tlRmlsbDogdGhpcy5iYXJEYXRhLmZpbGxcbiAgICAgICAgICB9KSlcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgZ3JvdXBUZXh0czogW1wicGxvdFwiLCBgYmFyLXBsb3QtJHt0aGlzLnBsb3RJbmRleH1gXSxcbiAgICAgICAgdHlwZTogXCJyZWN0XCIsXG4gICAgICAgIGRhdGE6IGZpbmFsRGF0YS5tYXAoKGRhdGEpID0+ICh7XG4gICAgICAgICAgeDogZGF0YVswXSAtIGJhcldpZHRoSGFsZixcbiAgICAgICAgICB5OiBkYXRhWzFdLFxuICAgICAgICAgIHdpZHRoOiBiYXJXaWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMuYm91bmRpbmdSZWN0LnkgKyB0aGlzLmJvdW5kaW5nUmVjdC5oZWlnaHQgLSBkYXRhWzFdLFxuICAgICAgICAgIGZpbGw6IHRoaXMuYmFyRGF0YS5maWxsLFxuICAgICAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgICAgICAgIHN0cm9rZUZpbGw6IHRoaXMuYmFyRGF0YS5maWxsXG4gICAgICAgIH0pKVxuICAgICAgfVxuICAgIF07XG4gIH1cbn1cbmNsYXNzIEJhc2VQbG90IHtcbiAgY29uc3RydWN0b3IoY2hhcnRDb25maWcsIGNoYXJ0RGF0YSwgY2hhcnRUaGVtZUNvbmZpZykge1xuICAgIHRoaXMuY2hhcnRDb25maWcgPSBjaGFydENvbmZpZztcbiAgICB0aGlzLmNoYXJ0RGF0YSA9IGNoYXJ0RGF0YTtcbiAgICB0aGlzLmNoYXJ0VGhlbWVDb25maWcgPSBjaGFydFRoZW1lQ29uZmlnO1xuICAgIHRoaXMuYm91bmRpbmdSZWN0ID0ge1xuICAgICAgeDogMCxcbiAgICAgIHk6IDAsXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMFxuICAgIH07XG4gIH1cbiAgc2V0QXhlcyh4QXhpcywgeUF4aXMpIHtcbiAgICB0aGlzLnhBeGlzID0geEF4aXM7XG4gICAgdGhpcy55QXhpcyA9IHlBeGlzO1xuICB9XG4gIHNldEJvdW5kaW5nQm94WFkocG9pbnQpIHtcbiAgICB0aGlzLmJvdW5kaW5nUmVjdC54ID0gcG9pbnQueDtcbiAgICB0aGlzLmJvdW5kaW5nUmVjdC55ID0gcG9pbnQueTtcbiAgfVxuICBjYWxjdWxhdGVTcGFjZShhdmFpbGFibGVTcGFjZSkge1xuICAgIHRoaXMuYm91bmRpbmdSZWN0LndpZHRoID0gYXZhaWxhYmxlU3BhY2Uud2lkdGg7XG4gICAgdGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0ID0gYXZhaWxhYmxlU3BhY2UuaGVpZ2h0O1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogdGhpcy5ib3VuZGluZ1JlY3Qud2lkdGgsXG4gICAgICBoZWlnaHQ6IHRoaXMuYm91bmRpbmdSZWN0LmhlaWdodFxuICAgIH07XG4gIH1cbiAgZ2V0RHJhd2FibGVFbGVtZW50cygpIHtcbiAgICBpZiAoISh0aGlzLnhBeGlzICYmIHRoaXMueUF4aXMpKSB7XG4gICAgICB0aHJvdyBFcnJvcihcIkF4ZXMgbXVzdCBiZSBwYXNzZWQgdG8gcmVuZGVyIFBsb3RzXCIpO1xuICAgIH1cbiAgICBjb25zdCBkcmF3YWJsZUVsZW0gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtpLCBwbG90XSBvZiB0aGlzLmNoYXJ0RGF0YS5wbG90cy5lbnRyaWVzKCkpIHtcbiAgICAgIHN3aXRjaCAocGxvdC50eXBlKSB7XG4gICAgICAgIGNhc2UgXCJsaW5lXCI6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgbGluZVBsb3QgPSBuZXcgTGluZVBsb3QoXG4gICAgICAgICAgICAgIHBsb3QsXG4gICAgICAgICAgICAgIHRoaXMueEF4aXMsXG4gICAgICAgICAgICAgIHRoaXMueUF4aXMsXG4gICAgICAgICAgICAgIHRoaXMuY2hhcnRDb25maWcuY2hhcnRPcmllbnRhdGlvbixcbiAgICAgICAgICAgICAgaVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGRyYXdhYmxlRWxlbS5wdXNoKC4uLmxpbmVQbG90LmdldERyYXdhYmxlRWxlbWVudCgpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJiYXJcIjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBiYXJQbG90ID0gbmV3IEJhclBsb3QoXG4gICAgICAgICAgICAgIHBsb3QsXG4gICAgICAgICAgICAgIHRoaXMuYm91bmRpbmdSZWN0LFxuICAgICAgICAgICAgICB0aGlzLnhBeGlzLFxuICAgICAgICAgICAgICB0aGlzLnlBeGlzLFxuICAgICAgICAgICAgICB0aGlzLmNoYXJ0Q29uZmlnLmNoYXJ0T3JpZW50YXRpb24sXG4gICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkcmF3YWJsZUVsZW0ucHVzaCguLi5iYXJQbG90LmdldERyYXdhYmxlRWxlbWVudCgpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkcmF3YWJsZUVsZW07XG4gIH1cbn1cbmZ1bmN0aW9uIGdldFBsb3RDb21wb25lbnQoY2hhcnRDb25maWcsIGNoYXJ0RGF0YSwgY2hhcnRUaGVtZUNvbmZpZykge1xuICByZXR1cm4gbmV3IEJhc2VQbG90KGNoYXJ0Q29uZmlnLCBjaGFydERhdGEsIGNoYXJ0VGhlbWVDb25maWcpO1xufVxuY2xhc3MgT3JjaGVzdHJhdG9yIHtcbiAgY29uc3RydWN0b3IoY2hhcnRDb25maWcsIGNoYXJ0RGF0YSwgY2hhcnRUaGVtZUNvbmZpZywgdG1wU1ZHR3JvdXAyKSB7XG4gICAgdGhpcy5jaGFydENvbmZpZyA9IGNoYXJ0Q29uZmlnO1xuICAgIHRoaXMuY2hhcnREYXRhID0gY2hhcnREYXRhO1xuICAgIHRoaXMuY29tcG9uZW50U3RvcmUgPSB7XG4gICAgICB0aXRsZTogZ2V0Q2hhcnRUaXRsZUNvbXBvbmVudChjaGFydENvbmZpZywgY2hhcnREYXRhLCBjaGFydFRoZW1lQ29uZmlnLCB0bXBTVkdHcm91cDIpLFxuICAgICAgcGxvdDogZ2V0UGxvdENvbXBvbmVudChjaGFydENvbmZpZywgY2hhcnREYXRhLCBjaGFydFRoZW1lQ29uZmlnKSxcbiAgICAgIHhBeGlzOiBnZXRBeGlzKFxuICAgICAgICBjaGFydERhdGEueEF4aXMsXG4gICAgICAgIGNoYXJ0Q29uZmlnLnhBeGlzLFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGVDb2xvcjogY2hhcnRUaGVtZUNvbmZpZy54QXhpc1RpdGxlQ29sb3IsXG4gICAgICAgICAgbGFiZWxDb2xvcjogY2hhcnRUaGVtZUNvbmZpZy54QXhpc0xhYmVsQ29sb3IsXG4gICAgICAgICAgdGlja0NvbG9yOiBjaGFydFRoZW1lQ29uZmlnLnhBeGlzVGlja0NvbG9yLFxuICAgICAgICAgIGF4aXNMaW5lQ29sb3I6IGNoYXJ0VGhlbWVDb25maWcueEF4aXNMaW5lQ29sb3JcbiAgICAgICAgfSxcbiAgICAgICAgdG1wU1ZHR3JvdXAyXG4gICAgICApLFxuICAgICAgeUF4aXM6IGdldEF4aXMoXG4gICAgICAgIGNoYXJ0RGF0YS55QXhpcyxcbiAgICAgICAgY2hhcnRDb25maWcueUF4aXMsXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZUNvbG9yOiBjaGFydFRoZW1lQ29uZmlnLnlBeGlzVGl0bGVDb2xvcixcbiAgICAgICAgICBsYWJlbENvbG9yOiBjaGFydFRoZW1lQ29uZmlnLnlBeGlzTGFiZWxDb2xvcixcbiAgICAgICAgICB0aWNrQ29sb3I6IGNoYXJ0VGhlbWVDb25maWcueUF4aXNUaWNrQ29sb3IsXG4gICAgICAgICAgYXhpc0xpbmVDb2xvcjogY2hhcnRUaGVtZUNvbmZpZy55QXhpc0xpbmVDb2xvclxuICAgICAgICB9LFxuICAgICAgICB0bXBTVkdHcm91cDJcbiAgICAgIClcbiAgICB9O1xuICB9XG4gIGNhbGN1bGF0ZVZlcnRpY2FsU3BhY2UoKSB7XG4gICAgbGV0IGF2YWlsYWJsZVdpZHRoID0gdGhpcy5jaGFydENvbmZpZy53aWR0aDtcbiAgICBsZXQgYXZhaWxhYmxlSGVpZ2h0ID0gdGhpcy5jaGFydENvbmZpZy5oZWlnaHQ7XG4gICAgbGV0IHBsb3RYID0gMDtcbiAgICBsZXQgcGxvdFkgPSAwO1xuICAgIGxldCBjaGFydFdpZHRoID0gTWF0aC5mbG9vcihhdmFpbGFibGVXaWR0aCAqIHRoaXMuY2hhcnRDb25maWcucGxvdFJlc2VydmVkU3BhY2VQZXJjZW50IC8gMTAwKTtcbiAgICBsZXQgY2hhcnRIZWlnaHQgPSBNYXRoLmZsb29yKFxuICAgICAgYXZhaWxhYmxlSGVpZ2h0ICogdGhpcy5jaGFydENvbmZpZy5wbG90UmVzZXJ2ZWRTcGFjZVBlcmNlbnQgLyAxMDBcbiAgICApO1xuICAgIGxldCBzcGFjZVVzZWQgPSB0aGlzLmNvbXBvbmVudFN0b3JlLnBsb3QuY2FsY3VsYXRlU3BhY2Uoe1xuICAgICAgd2lkdGg6IGNoYXJ0V2lkdGgsXG4gICAgICBoZWlnaHQ6IGNoYXJ0SGVpZ2h0XG4gICAgfSk7XG4gICAgYXZhaWxhYmxlV2lkdGggLT0gc3BhY2VVc2VkLndpZHRoO1xuICAgIGF2YWlsYWJsZUhlaWdodCAtPSBzcGFjZVVzZWQuaGVpZ2h0O1xuICAgIHNwYWNlVXNlZCA9IHRoaXMuY29tcG9uZW50U3RvcmUudGl0bGUuY2FsY3VsYXRlU3BhY2Uoe1xuICAgICAgd2lkdGg6IHRoaXMuY2hhcnRDb25maWcud2lkdGgsXG4gICAgICBoZWlnaHQ6IGF2YWlsYWJsZUhlaWdodFxuICAgIH0pO1xuICAgIHBsb3RZID0gc3BhY2VVc2VkLmhlaWdodDtcbiAgICBhdmFpbGFibGVIZWlnaHQgLT0gc3BhY2VVc2VkLmhlaWdodDtcbiAgICB0aGlzLmNvbXBvbmVudFN0b3JlLnhBeGlzLnNldEF4aXNQb3NpdGlvbihcImJvdHRvbVwiKTtcbiAgICBzcGFjZVVzZWQgPSB0aGlzLmNvbXBvbmVudFN0b3JlLnhBeGlzLmNhbGN1bGF0ZVNwYWNlKHtcbiAgICAgIHdpZHRoOiBhdmFpbGFibGVXaWR0aCxcbiAgICAgIGhlaWdodDogYXZhaWxhYmxlSGVpZ2h0XG4gICAgfSk7XG4gICAgYXZhaWxhYmxlSGVpZ2h0IC09IHNwYWNlVXNlZC5oZWlnaHQ7XG4gICAgdGhpcy5jb21wb25lbnRTdG9yZS55QXhpcy5zZXRBeGlzUG9zaXRpb24oXCJsZWZ0XCIpO1xuICAgIHNwYWNlVXNlZCA9IHRoaXMuY29tcG9uZW50U3RvcmUueUF4aXMuY2FsY3VsYXRlU3BhY2Uoe1xuICAgICAgd2lkdGg6IGF2YWlsYWJsZVdpZHRoLFxuICAgICAgaGVpZ2h0OiBhdmFpbGFibGVIZWlnaHRcbiAgICB9KTtcbiAgICBwbG90WCA9IHNwYWNlVXNlZC53aWR0aDtcbiAgICBhdmFpbGFibGVXaWR0aCAtPSBzcGFjZVVzZWQud2lkdGg7XG4gICAgaWYgKGF2YWlsYWJsZVdpZHRoID4gMCkge1xuICAgICAgY2hhcnRXaWR0aCArPSBhdmFpbGFibGVXaWR0aDtcbiAgICAgIGF2YWlsYWJsZVdpZHRoID0gMDtcbiAgICB9XG4gICAgaWYgKGF2YWlsYWJsZUhlaWdodCA+IDApIHtcbiAgICAgIGNoYXJ0SGVpZ2h0ICs9IGF2YWlsYWJsZUhlaWdodDtcbiAgICAgIGF2YWlsYWJsZUhlaWdodCA9IDA7XG4gICAgfVxuICAgIHRoaXMuY29tcG9uZW50U3RvcmUucGxvdC5jYWxjdWxhdGVTcGFjZSh7XG4gICAgICB3aWR0aDogY2hhcnRXaWR0aCxcbiAgICAgIGhlaWdodDogY2hhcnRIZWlnaHRcbiAgICB9KTtcbiAgICB0aGlzLmNvbXBvbmVudFN0b3JlLnBsb3Quc2V0Qm91bmRpbmdCb3hYWSh7IHg6IHBsb3RYLCB5OiBwbG90WSB9KTtcbiAgICB0aGlzLmNvbXBvbmVudFN0b3JlLnhBeGlzLnNldFJhbmdlKFtwbG90WCwgcGxvdFggKyBjaGFydFdpZHRoXSk7XG4gICAgdGhpcy5jb21wb25lbnRTdG9yZS54QXhpcy5zZXRCb3VuZGluZ0JveFhZKHsgeDogcGxvdFgsIHk6IHBsb3RZICsgY2hhcnRIZWlnaHQgfSk7XG4gICAgdGhpcy5jb21wb25lbnRTdG9yZS55QXhpcy5zZXRSYW5nZShbcGxvdFksIHBsb3RZICsgY2hhcnRIZWlnaHRdKTtcbiAgICB0aGlzLmNvbXBvbmVudFN0b3JlLnlBeGlzLnNldEJvdW5kaW5nQm94WFkoeyB4OiAwLCB5OiBwbG90WSB9KTtcbiAgICBpZiAodGhpcy5jaGFydERhdGEucGxvdHMuc29tZSgocCkgPT4gaXNCYXJQbG90KHApKSkge1xuICAgICAgdGhpcy5jb21wb25lbnRTdG9yZS54QXhpcy5yZWNhbGN1bGF0ZU91dGVyUGFkZGluZ1RvRHJhd0JhcigpO1xuICAgIH1cbiAgfVxuICBjYWxjdWxhdGVIb3Jpem9udGFsU3BhY2UoKSB7XG4gICAgbGV0IGF2YWlsYWJsZVdpZHRoID0gdGhpcy5jaGFydENvbmZpZy53aWR0aDtcbiAgICBsZXQgYXZhaWxhYmxlSGVpZ2h0ID0gdGhpcy5jaGFydENvbmZpZy5oZWlnaHQ7XG4gICAgbGV0IHRpdGxlWUVuZCA9IDA7XG4gICAgbGV0IHBsb3RYID0gMDtcbiAgICBsZXQgcGxvdFkgPSAwO1xuICAgIGxldCBjaGFydFdpZHRoID0gTWF0aC5mbG9vcihhdmFpbGFibGVXaWR0aCAqIHRoaXMuY2hhcnRDb25maWcucGxvdFJlc2VydmVkU3BhY2VQZXJjZW50IC8gMTAwKTtcbiAgICBsZXQgY2hhcnRIZWlnaHQgPSBNYXRoLmZsb29yKFxuICAgICAgYXZhaWxhYmxlSGVpZ2h0ICogdGhpcy5jaGFydENvbmZpZy5wbG90UmVzZXJ2ZWRTcGFjZVBlcmNlbnQgLyAxMDBcbiAgICApO1xuICAgIGxldCBzcGFjZVVzZWQgPSB0aGlzLmNvbXBvbmVudFN0b3JlLnBsb3QuY2FsY3VsYXRlU3BhY2Uoe1xuICAgICAgd2lkdGg6IGNoYXJ0V2lkdGgsXG4gICAgICBoZWlnaHQ6IGNoYXJ0SGVpZ2h0XG4gICAgfSk7XG4gICAgYXZhaWxhYmxlV2lkdGggLT0gc3BhY2VVc2VkLndpZHRoO1xuICAgIGF2YWlsYWJsZUhlaWdodCAtPSBzcGFjZVVzZWQuaGVpZ2h0O1xuICAgIHNwYWNlVXNlZCA9IHRoaXMuY29tcG9uZW50U3RvcmUudGl0bGUuY2FsY3VsYXRlU3BhY2Uoe1xuICAgICAgd2lkdGg6IHRoaXMuY2hhcnRDb25maWcud2lkdGgsXG4gICAgICBoZWlnaHQ6IGF2YWlsYWJsZUhlaWdodFxuICAgIH0pO1xuICAgIHRpdGxlWUVuZCA9IHNwYWNlVXNlZC5oZWlnaHQ7XG4gICAgYXZhaWxhYmxlSGVpZ2h0IC09IHNwYWNlVXNlZC5oZWlnaHQ7XG4gICAgdGhpcy5jb21wb25lbnRTdG9yZS54QXhpcy5zZXRBeGlzUG9zaXRpb24oXCJsZWZ0XCIpO1xuICAgIHNwYWNlVXNlZCA9IHRoaXMuY29tcG9uZW50U3RvcmUueEF4aXMuY2FsY3VsYXRlU3BhY2Uoe1xuICAgICAgd2lkdGg6IGF2YWlsYWJsZVdpZHRoLFxuICAgICAgaGVpZ2h0OiBhdmFpbGFibGVIZWlnaHRcbiAgICB9KTtcbiAgICBhdmFpbGFibGVXaWR0aCAtPSBzcGFjZVVzZWQud2lkdGg7XG4gICAgcGxvdFggPSBzcGFjZVVzZWQud2lkdGg7XG4gICAgdGhpcy5jb21wb25lbnRTdG9yZS55QXhpcy5zZXRBeGlzUG9zaXRpb24oXCJ0b3BcIik7XG4gICAgc3BhY2VVc2VkID0gdGhpcy5jb21wb25lbnRTdG9yZS55QXhpcy5jYWxjdWxhdGVTcGFjZSh7XG4gICAgICB3aWR0aDogYXZhaWxhYmxlV2lkdGgsXG4gICAgICBoZWlnaHQ6IGF2YWlsYWJsZUhlaWdodFxuICAgIH0pO1xuICAgIGF2YWlsYWJsZUhlaWdodCAtPSBzcGFjZVVzZWQuaGVpZ2h0O1xuICAgIHBsb3RZID0gdGl0bGVZRW5kICsgc3BhY2VVc2VkLmhlaWdodDtcbiAgICBpZiAoYXZhaWxhYmxlV2lkdGggPiAwKSB7XG4gICAgICBjaGFydFdpZHRoICs9IGF2YWlsYWJsZVdpZHRoO1xuICAgICAgYXZhaWxhYmxlV2lkdGggPSAwO1xuICAgIH1cbiAgICBpZiAoYXZhaWxhYmxlSGVpZ2h0ID4gMCkge1xuICAgICAgY2hhcnRIZWlnaHQgKz0gYXZhaWxhYmxlSGVpZ2h0O1xuICAgICAgYXZhaWxhYmxlSGVpZ2h0ID0gMDtcbiAgICB9XG4gICAgdGhpcy5jb21wb25lbnRTdG9yZS5wbG90LmNhbGN1bGF0ZVNwYWNlKHtcbiAgICAgIHdpZHRoOiBjaGFydFdpZHRoLFxuICAgICAgaGVpZ2h0OiBjaGFydEhlaWdodFxuICAgIH0pO1xuICAgIHRoaXMuY29tcG9uZW50U3RvcmUucGxvdC5zZXRCb3VuZGluZ0JveFhZKHsgeDogcGxvdFgsIHk6IHBsb3RZIH0pO1xuICAgIHRoaXMuY29tcG9uZW50U3RvcmUueUF4aXMuc2V0UmFuZ2UoW3Bsb3RYLCBwbG90WCArIGNoYXJ0V2lkdGhdKTtcbiAgICB0aGlzLmNvbXBvbmVudFN0b3JlLnlBeGlzLnNldEJvdW5kaW5nQm94WFkoeyB4OiBwbG90WCwgeTogdGl0bGVZRW5kIH0pO1xuICAgIHRoaXMuY29tcG9uZW50U3RvcmUueEF4aXMuc2V0UmFuZ2UoW3Bsb3RZLCBwbG90WSArIGNoYXJ0SGVpZ2h0XSk7XG4gICAgdGhpcy5jb21wb25lbnRTdG9yZS54QXhpcy5zZXRCb3VuZGluZ0JveFhZKHsgeDogMCwgeTogcGxvdFkgfSk7XG4gICAgaWYgKHRoaXMuY2hhcnREYXRhLnBsb3RzLnNvbWUoKHApID0+IGlzQmFyUGxvdChwKSkpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50U3RvcmUueEF4aXMucmVjYWxjdWxhdGVPdXRlclBhZGRpbmdUb0RyYXdCYXIoKTtcbiAgICB9XG4gIH1cbiAgY2FsY3VsYXRlU3BhY2UoKSB7XG4gICAgaWYgKHRoaXMuY2hhcnRDb25maWcuY2hhcnRPcmllbnRhdGlvbiA9PT0gXCJob3Jpem9udGFsXCIpIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlSG9yaXpvbnRhbFNwYWNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlVmVydGljYWxTcGFjZSgpO1xuICAgIH1cbiAgfVxuICBnZXREcmF3YWJsZUVsZW1lbnQoKSB7XG4gICAgdGhpcy5jYWxjdWxhdGVTcGFjZSgpO1xuICAgIGNvbnN0IGRyYXdhYmxlRWxlbSA9IFtdO1xuICAgIHRoaXMuY29tcG9uZW50U3RvcmUucGxvdC5zZXRBeGVzKHRoaXMuY29tcG9uZW50U3RvcmUueEF4aXMsIHRoaXMuY29tcG9uZW50U3RvcmUueUF4aXMpO1xuICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIE9iamVjdC52YWx1ZXModGhpcy5jb21wb25lbnRTdG9yZSkpIHtcbiAgICAgIGRyYXdhYmxlRWxlbS5wdXNoKC4uLmNvbXBvbmVudC5nZXREcmF3YWJsZUVsZW1lbnRzKCkpO1xuICAgIH1cbiAgICByZXR1cm4gZHJhd2FibGVFbGVtO1xuICB9XG59XG5jbGFzcyBYWUNoYXJ0QnVpbGRlciB7XG4gIHN0YXRpYyBidWlsZChjb25maWcsIGNoYXJ0RGF0YSwgY2hhcnRUaGVtZUNvbmZpZywgdG1wU1ZHR3JvdXAyKSB7XG4gICAgY29uc3Qgb3JjaGVzdHJhdG9yID0gbmV3IE9yY2hlc3RyYXRvcihjb25maWcsIGNoYXJ0RGF0YSwgY2hhcnRUaGVtZUNvbmZpZywgdG1wU1ZHR3JvdXAyKTtcbiAgICByZXR1cm4gb3JjaGVzdHJhdG9yLmdldERyYXdhYmxlRWxlbWVudCgpO1xuICB9XG59XG5sZXQgcGxvdEluZGV4ID0gMDtcbmxldCB0bXBTVkdHcm91cDtcbmxldCB4eUNoYXJ0Q29uZmlnID0gZ2V0Q2hhcnREZWZhdWx0Q29uZmlnKCk7XG5sZXQgeHlDaGFydFRoZW1lQ29uZmlnID0gZ2V0Q2hhcnREZWZhdWx0VGhlbWVDb25maWcoKTtcbmxldCB4eUNoYXJ0RGF0YSA9IGdldENoYXJ0RGVmYXVsdERhdGEoKTtcbmxldCBwbG90Q29sb3JQYWxldHRlID0geHlDaGFydFRoZW1lQ29uZmlnLnBsb3RDb2xvclBhbGV0dGUuc3BsaXQoXCIsXCIpLm1hcCgoY29sb3IpID0+IGNvbG9yLnRyaW0oKSk7XG5sZXQgaGFzU2V0WEF4aXMgPSBmYWxzZTtcbmxldCBoYXNTZXRZQXhpcyA9IGZhbHNlO1xuZnVuY3Rpb24gZ2V0Q2hhcnREZWZhdWx0VGhlbWVDb25maWcoKSB7XG4gIGNvbnN0IGRlZmF1bHRUaGVtZVZhcmlhYmxlcyA9IGdldFRoZW1lVmFyaWFibGVzKCk7XG4gIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZygpO1xuICByZXR1cm4gY2xlYW5BbmRNZXJnZShkZWZhdWx0VGhlbWVWYXJpYWJsZXMueHlDaGFydCwgY29uZmlnLnRoZW1lVmFyaWFibGVzLnh5Q2hhcnQpO1xufVxuZnVuY3Rpb24gZ2V0Q2hhcnREZWZhdWx0Q29uZmlnKCkge1xuICBjb25zdCBjb25maWcgPSBnZXRDb25maWcoKTtcbiAgcmV0dXJuIGNsZWFuQW5kTWVyZ2UoXG4gICAgZGVmYXVsdENvbmZpZy54eUNoYXJ0LFxuICAgIGNvbmZpZy54eUNoYXJ0XG4gICk7XG59XG5mdW5jdGlvbiBnZXRDaGFydERlZmF1bHREYXRhKCkge1xuICByZXR1cm4ge1xuICAgIHlBeGlzOiB7XG4gICAgICB0eXBlOiBcImxpbmVhclwiLFxuICAgICAgdGl0bGU6IFwiXCIsXG4gICAgICBtaW46IEluZmluaXR5LFxuICAgICAgbWF4OiAtSW5maW5pdHlcbiAgICB9LFxuICAgIHhBeGlzOiB7XG4gICAgICB0eXBlOiBcImJhbmRcIixcbiAgICAgIHRpdGxlOiBcIlwiLFxuICAgICAgY2F0ZWdvcmllczogW11cbiAgICB9LFxuICAgIHRpdGxlOiBcIlwiLFxuICAgIHBsb3RzOiBbXVxuICB9O1xufVxuZnVuY3Rpb24gdGV4dFNhbml0aXplcih0ZXh0KSB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZygpO1xuICByZXR1cm4gc2FuaXRpemVUZXh0KHRleHQudHJpbSgpLCBjb25maWcpO1xufVxuZnVuY3Rpb24gc2V0VG1wU1ZHRyhTVkdHKSB7XG4gIHRtcFNWR0dyb3VwID0gU1ZHRztcbn1cbmZ1bmN0aW9uIHNldE9yaWVudGF0aW9uKG9yaWVudGF0aW9uKSB7XG4gIGlmIChvcmllbnRhdGlvbiA9PT0gXCJob3Jpem9udGFsXCIpIHtcbiAgICB4eUNoYXJ0Q29uZmlnLmNoYXJ0T3JpZW50YXRpb24gPSBcImhvcml6b250YWxcIjtcbiAgfSBlbHNlIHtcbiAgICB4eUNoYXJ0Q29uZmlnLmNoYXJ0T3JpZW50YXRpb24gPSBcInZlcnRpY2FsXCI7XG4gIH1cbn1cbmZ1bmN0aW9uIHNldFhBeGlzVGl0bGUodGl0bGUpIHtcbiAgeHlDaGFydERhdGEueEF4aXMudGl0bGUgPSB0ZXh0U2FuaXRpemVyKHRpdGxlLnRleHQpO1xufVxuZnVuY3Rpb24gc2V0WEF4aXNSYW5nZURhdGEobWluLCBtYXgpIHtcbiAgeHlDaGFydERhdGEueEF4aXMgPSB7IHR5cGU6IFwibGluZWFyXCIsIHRpdGxlOiB4eUNoYXJ0RGF0YS54QXhpcy50aXRsZSwgbWluLCBtYXggfTtcbiAgaGFzU2V0WEF4aXMgPSB0cnVlO1xufVxuZnVuY3Rpb24gc2V0WEF4aXNCYW5kKGNhdGVnb3JpZXMpIHtcbiAgeHlDaGFydERhdGEueEF4aXMgPSB7XG4gICAgdHlwZTogXCJiYW5kXCIsXG4gICAgdGl0bGU6IHh5Q2hhcnREYXRhLnhBeGlzLnRpdGxlLFxuICAgIGNhdGVnb3JpZXM6IGNhdGVnb3JpZXMubWFwKChjKSA9PiB0ZXh0U2FuaXRpemVyKGMudGV4dCkpXG4gIH07XG4gIGhhc1NldFhBeGlzID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHNldFlBeGlzVGl0bGUodGl0bGUpIHtcbiAgeHlDaGFydERhdGEueUF4aXMudGl0bGUgPSB0ZXh0U2FuaXRpemVyKHRpdGxlLnRleHQpO1xufVxuZnVuY3Rpb24gc2V0WUF4aXNSYW5nZURhdGEobWluLCBtYXgpIHtcbiAgeHlDaGFydERhdGEueUF4aXMgPSB7IHR5cGU6IFwibGluZWFyXCIsIHRpdGxlOiB4eUNoYXJ0RGF0YS55QXhpcy50aXRsZSwgbWluLCBtYXggfTtcbiAgaGFzU2V0WUF4aXMgPSB0cnVlO1xufVxuZnVuY3Rpb24gc2V0WUF4aXNSYW5nZUZyb21QbG90RGF0YShkYXRhKSB7XG4gIGNvbnN0IG1pblZhbHVlID0gTWF0aC5taW4oLi4uZGF0YSk7XG4gIGNvbnN0IG1heFZhbHVlID0gTWF0aC5tYXgoLi4uZGF0YSk7XG4gIGNvbnN0IHByZXZNaW5WYWx1ZSA9IGlzTGluZWFyQXhpc0RhdGEoeHlDaGFydERhdGEueUF4aXMpID8geHlDaGFydERhdGEueUF4aXMubWluIDogSW5maW5pdHk7XG4gIGNvbnN0IHByZXZNYXhWYWx1ZSA9IGlzTGluZWFyQXhpc0RhdGEoeHlDaGFydERhdGEueUF4aXMpID8geHlDaGFydERhdGEueUF4aXMubWF4IDogLUluZmluaXR5O1xuICB4eUNoYXJ0RGF0YS55QXhpcyA9IHtcbiAgICB0eXBlOiBcImxpbmVhclwiLFxuICAgIHRpdGxlOiB4eUNoYXJ0RGF0YS55QXhpcy50aXRsZSxcbiAgICBtaW46IE1hdGgubWluKHByZXZNaW5WYWx1ZSwgbWluVmFsdWUpLFxuICAgIG1heDogTWF0aC5tYXgocHJldk1heFZhbHVlLCBtYXhWYWx1ZSlcbiAgfTtcbn1cbmZ1bmN0aW9uIHRyYW5zZm9ybURhdGFXaXRob3V0Q2F0ZWdvcnkoZGF0YSkge1xuICBsZXQgcmV0RGF0YSA9IFtdO1xuICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gcmV0RGF0YTtcbiAgfVxuICBpZiAoIWhhc1NldFhBeGlzKSB7XG4gICAgY29uc3QgcHJldk1pblZhbHVlID0gaXNMaW5lYXJBeGlzRGF0YSh4eUNoYXJ0RGF0YS54QXhpcykgPyB4eUNoYXJ0RGF0YS54QXhpcy5taW4gOiBJbmZpbml0eTtcbiAgICBjb25zdCBwcmV2TWF4VmFsdWUgPSBpc0xpbmVhckF4aXNEYXRhKHh5Q2hhcnREYXRhLnhBeGlzKSA/IHh5Q2hhcnREYXRhLnhBeGlzLm1heCA6IC1JbmZpbml0eTtcbiAgICBzZXRYQXhpc1JhbmdlRGF0YShNYXRoLm1pbihwcmV2TWluVmFsdWUsIDEpLCBNYXRoLm1heChwcmV2TWF4VmFsdWUsIGRhdGEubGVuZ3RoKSk7XG4gIH1cbiAgaWYgKCFoYXNTZXRZQXhpcykge1xuICAgIHNldFlBeGlzUmFuZ2VGcm9tUGxvdERhdGEoZGF0YSk7XG4gIH1cbiAgaWYgKGlzQmFuZEF4aXNEYXRhKHh5Q2hhcnREYXRhLnhBeGlzKSkge1xuICAgIHJldERhdGEgPSB4eUNoYXJ0RGF0YS54QXhpcy5jYXRlZ29yaWVzLm1hcCgoYywgaSkgPT4gW2MsIGRhdGFbaV1dKTtcbiAgfVxuICBpZiAoaXNMaW5lYXJBeGlzRGF0YSh4eUNoYXJ0RGF0YS54QXhpcykpIHtcbiAgICBjb25zdCBtaW4gPSB4eUNoYXJ0RGF0YS54QXhpcy5taW47XG4gICAgY29uc3QgbWF4ID0geHlDaGFydERhdGEueEF4aXMubWF4O1xuICAgIGNvbnN0IHN0ZXAgPSAobWF4IC0gbWluICsgMSkgLyBkYXRhLmxlbmd0aDtcbiAgICBjb25zdCBjYXRlZ29yaWVzID0gW107XG4gICAgZm9yIChsZXQgaSA9IG1pbjsgaSA8PSBtYXg7IGkgKz0gc3RlcCkge1xuICAgICAgY2F0ZWdvcmllcy5wdXNoKGAke2l9YCk7XG4gICAgfVxuICAgIHJldERhdGEgPSBjYXRlZ29yaWVzLm1hcCgoYywgaSkgPT4gW2MsIGRhdGFbaV1dKTtcbiAgfVxuICByZXR1cm4gcmV0RGF0YTtcbn1cbmZ1bmN0aW9uIGdldFBsb3RDb2xvckZyb21QYWxldHRlKHBsb3RJbmRleDIpIHtcbiAgcmV0dXJuIHBsb3RDb2xvclBhbGV0dGVbcGxvdEluZGV4MiA9PT0gMCA/IDAgOiBwbG90SW5kZXgyICUgcGxvdENvbG9yUGFsZXR0ZS5sZW5ndGhdO1xufVxuZnVuY3Rpb24gc2V0TGluZURhdGEodGl0bGUsIGRhdGEpIHtcbiAgY29uc3QgcGxvdERhdGEgPSB0cmFuc2Zvcm1EYXRhV2l0aG91dENhdGVnb3J5KGRhdGEpO1xuICB4eUNoYXJ0RGF0YS5wbG90cy5wdXNoKHtcbiAgICB0eXBlOiBcImxpbmVcIixcbiAgICBzdHJva2VGaWxsOiBnZXRQbG90Q29sb3JGcm9tUGFsZXR0ZShwbG90SW5kZXgpLFxuICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgIGRhdGE6IHBsb3REYXRhXG4gIH0pO1xuICBwbG90SW5kZXgrKztcbn1cbmZ1bmN0aW9uIHNldEJhckRhdGEodGl0bGUsIGRhdGEpIHtcbiAgY29uc3QgcGxvdERhdGEgPSB0cmFuc2Zvcm1EYXRhV2l0aG91dENhdGVnb3J5KGRhdGEpO1xuICB4eUNoYXJ0RGF0YS5wbG90cy5wdXNoKHtcbiAgICB0eXBlOiBcImJhclwiLFxuICAgIGZpbGw6IGdldFBsb3RDb2xvckZyb21QYWxldHRlKHBsb3RJbmRleCksXG4gICAgZGF0YTogcGxvdERhdGFcbiAgfSk7XG4gIHBsb3RJbmRleCsrO1xufVxuZnVuY3Rpb24gZ2V0RHJhd2FibGVFbGVtKCkge1xuICBpZiAoeHlDaGFydERhdGEucGxvdHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgRXJyb3IoXCJObyBQbG90IHRvIHJlbmRlciwgcGxlYXNlIHByb3ZpZGUgYSBwbG90IHdpdGggc29tZSBkYXRhXCIpO1xuICB9XG4gIHh5Q2hhcnREYXRhLnRpdGxlID0gZ2V0RGlhZ3JhbVRpdGxlKCk7XG4gIHJldHVybiBYWUNoYXJ0QnVpbGRlci5idWlsZCh4eUNoYXJ0Q29uZmlnLCB4eUNoYXJ0RGF0YSwgeHlDaGFydFRoZW1lQ29uZmlnLCB0bXBTVkdHcm91cCk7XG59XG5mdW5jdGlvbiBnZXRDaGFydFRoZW1lQ29uZmlnKCkge1xuICByZXR1cm4geHlDaGFydFRoZW1lQ29uZmlnO1xufVxuZnVuY3Rpb24gZ2V0Q2hhcnRDb25maWcoKSB7XG4gIHJldHVybiB4eUNoYXJ0Q29uZmlnO1xufVxuY29uc3QgY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgY2xlYXIkMSgpO1xuICBwbG90SW5kZXggPSAwO1xuICB4eUNoYXJ0Q29uZmlnID0gZ2V0Q2hhcnREZWZhdWx0Q29uZmlnKCk7XG4gIHh5Q2hhcnREYXRhID0gZ2V0Q2hhcnREZWZhdWx0RGF0YSgpO1xuICB4eUNoYXJ0VGhlbWVDb25maWcgPSBnZXRDaGFydERlZmF1bHRUaGVtZUNvbmZpZygpO1xuICBwbG90Q29sb3JQYWxldHRlID0geHlDaGFydFRoZW1lQ29uZmlnLnBsb3RDb2xvclBhbGV0dGUuc3BsaXQoXCIsXCIpLm1hcCgoY29sb3IpID0+IGNvbG9yLnRyaW0oKSk7XG4gIGhhc1NldFhBeGlzID0gZmFsc2U7XG4gIGhhc1NldFlBeGlzID0gZmFsc2U7XG59O1xuY29uc3QgZGIgPSB7XG4gIGdldERyYXdhYmxlRWxlbSxcbiAgY2xlYXIsXG4gIHNldEFjY1RpdGxlLFxuICBnZXRBY2NUaXRsZSxcbiAgc2V0RGlhZ3JhbVRpdGxlLFxuICBnZXREaWFncmFtVGl0bGUsXG4gIGdldEFjY0Rlc2NyaXB0aW9uLFxuICBzZXRBY2NEZXNjcmlwdGlvbixcbiAgc2V0T3JpZW50YXRpb24sXG4gIHNldFhBeGlzVGl0bGUsXG4gIHNldFhBeGlzUmFuZ2VEYXRhLFxuICBzZXRYQXhpc0JhbmQsXG4gIHNldFlBeGlzVGl0bGUsXG4gIHNldFlBeGlzUmFuZ2VEYXRhLFxuICBzZXRMaW5lRGF0YSxcbiAgc2V0QmFyRGF0YSxcbiAgc2V0VG1wU1ZHRyxcbiAgZ2V0Q2hhcnRUaGVtZUNvbmZpZyxcbiAgZ2V0Q2hhcnRDb25maWdcbn07XG5jb25zdCBkcmF3ID0gKHR4dCwgaWQsIF92ZXJzaW9uLCBkaWFnT2JqKSA9PiB7XG4gIGNvbnN0IGRiMiA9IGRpYWdPYmouZGI7XG4gIGNvbnN0IHRoZW1lQ29uZmlnID0gZGIyLmdldENoYXJ0VGhlbWVDb25maWcoKTtcbiAgY29uc3QgY2hhcnRDb25maWcgPSBkYjIuZ2V0Q2hhcnRDb25maWcoKTtcbiAgZnVuY3Rpb24gZ2V0RG9taW5hbnRCYXNlTGluZShob3Jpem9udGFsUG9zKSB7XG4gICAgcmV0dXJuIGhvcml6b250YWxQb3MgPT09IFwidG9wXCIgPyBcInRleHQtYmVmb3JlLWVkZ2VcIiA6IFwibWlkZGxlXCI7XG4gIH1cbiAgZnVuY3Rpb24gZ2V0VGV4dEFuY2hvcih2ZXJ0aWNhbFBvcykge1xuICAgIHJldHVybiB2ZXJ0aWNhbFBvcyA9PT0gXCJsZWZ0XCIgPyBcInN0YXJ0XCIgOiB2ZXJ0aWNhbFBvcyA9PT0gXCJyaWdodFwiID8gXCJlbmRcIiA6IFwibWlkZGxlXCI7XG4gIH1cbiAgZnVuY3Rpb24gZ2V0VGV4dFRyYW5zZm9ybWF0aW9uKGRhdGEpIHtcbiAgICByZXR1cm4gYHRyYW5zbGF0ZSgke2RhdGEueH0sICR7ZGF0YS55fSkgcm90YXRlKCR7ZGF0YS5yb3RhdGlvbiB8fCAwfSlgO1xuICB9XG4gIGxvZy5kZWJ1ZyhcIlJlbmRlcmluZyB4eWNoYXJ0IGNoYXJ0XFxuXCIgKyB0eHQpO1xuICBjb25zdCBzdmcgPSBzZWxlY3RTdmdFbGVtZW50KGlkKTtcbiAgY29uc3QgZ3JvdXAgPSBzdmcuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJtYWluXCIpO1xuICBjb25zdCBiYWNrZ3JvdW5kID0gZ3JvdXAuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwid2lkdGhcIiwgY2hhcnRDb25maWcud2lkdGgpLmF0dHIoXCJoZWlnaHRcIiwgY2hhcnRDb25maWcuaGVpZ2h0KS5hdHRyKFwiY2xhc3NcIiwgXCJiYWNrZ3JvdW5kXCIpO1xuICBjb25maWd1cmVTdmdTaXplKHN2ZywgY2hhcnRDb25maWcuaGVpZ2h0LCBjaGFydENvbmZpZy53aWR0aCwgdHJ1ZSk7XG4gIHN2Zy5hdHRyKFwidmlld0JveFwiLCBgMCAwICR7Y2hhcnRDb25maWcud2lkdGh9ICR7Y2hhcnRDb25maWcuaGVpZ2h0fWApO1xuICBiYWNrZ3JvdW5kLmF0dHIoXCJmaWxsXCIsIHRoZW1lQ29uZmlnLmJhY2tncm91bmRDb2xvcik7XG4gIGRiMi5zZXRUbXBTVkdHKHN2Zy5hcHBlbmQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm1lcm1haWQtdG1wLWdyb3VwXCIpKTtcbiAgY29uc3Qgc2hhcGVzID0gZGIyLmdldERyYXdhYmxlRWxlbSgpO1xuICBjb25zdCBncm91cHMgPSB7fTtcbiAgZnVuY3Rpb24gZ2V0R3JvdXAoZ0xpc3QpIHtcbiAgICBsZXQgZWxlbSA9IGdyb3VwO1xuICAgIGxldCBwcmVmaXggPSBcIlwiO1xuICAgIGZvciAoY29uc3QgW2ldIG9mIGdMaXN0LmVudHJpZXMoKSkge1xuICAgICAgbGV0IHBhcmVudCA9IGdyb3VwO1xuICAgICAgaWYgKGkgPiAwICYmIGdyb3Vwc1twcmVmaXhdKSB7XG4gICAgICAgIHBhcmVudCA9IGdyb3Vwc1twcmVmaXhdO1xuICAgICAgfVxuICAgICAgcHJlZml4ICs9IGdMaXN0W2ldO1xuICAgICAgZWxlbSA9IGdyb3Vwc1twcmVmaXhdO1xuICAgICAgaWYgKCFlbGVtKSB7XG4gICAgICAgIGVsZW0gPSBncm91cHNbcHJlZml4XSA9IHBhcmVudC5hcHBlbmQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBnTGlzdFtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlbGVtO1xuICB9XG4gIGZvciAoY29uc3Qgc2hhcGUgb2Ygc2hhcGVzKSB7XG4gICAgaWYgKHNoYXBlLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3Qgc2hhcGVHcm91cCA9IGdldEdyb3VwKHNoYXBlLmdyb3VwVGV4dHMpO1xuICAgIHN3aXRjaCAoc2hhcGUudHlwZSkge1xuICAgICAgY2FzZSBcInJlY3RcIjpcbiAgICAgICAgc2hhcGVHcm91cC5zZWxlY3RBbGwoXCJyZWN0XCIpLmRhdGEoc2hhcGUuZGF0YSkuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJ4XCIsIChkYXRhKSA9PiBkYXRhLngpLmF0dHIoXCJ5XCIsIChkYXRhKSA9PiBkYXRhLnkpLmF0dHIoXCJ3aWR0aFwiLCAoZGF0YSkgPT4gZGF0YS53aWR0aCkuYXR0cihcImhlaWdodFwiLCAoZGF0YSkgPT4gZGF0YS5oZWlnaHQpLmF0dHIoXCJmaWxsXCIsIChkYXRhKSA9PiBkYXRhLmZpbGwpLmF0dHIoXCJzdHJva2VcIiwgKGRhdGEpID0+IGRhdGEuc3Ryb2tlRmlsbCkuYXR0cihcInN0cm9rZS13aWR0aFwiLCAoZGF0YSkgPT4gZGF0YS5zdHJva2VXaWR0aCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgc2hhcGVHcm91cC5zZWxlY3RBbGwoXCJ0ZXh0XCIpLmRhdGEoc2hhcGUuZGF0YSkuZW50ZXIoKS5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJ4XCIsIDApLmF0dHIoXCJ5XCIsIDApLmF0dHIoXCJmaWxsXCIsIChkYXRhKSA9PiBkYXRhLmZpbGwpLmF0dHIoXCJmb250LXNpemVcIiwgKGRhdGEpID0+IGRhdGEuZm9udFNpemUpLmF0dHIoXCJkb21pbmFudC1iYXNlbGluZVwiLCAoZGF0YSkgPT4gZ2V0RG9taW5hbnRCYXNlTGluZShkYXRhLnZlcnRpY2FsUG9zKSkuYXR0cihcInRleHQtYW5jaG9yXCIsIChkYXRhKSA9PiBnZXRUZXh0QW5jaG9yKGRhdGEuaG9yaXpvbnRhbFBvcykpLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgKGRhdGEpID0+IGdldFRleHRUcmFuc2Zvcm1hdGlvbihkYXRhKSkudGV4dCgoZGF0YSkgPT4gZGF0YS50ZXh0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicGF0aFwiOlxuICAgICAgICBzaGFwZUdyb3VwLnNlbGVjdEFsbChcInBhdGhcIikuZGF0YShzaGFwZS5kYXRhKS5lbnRlcigpLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgKGRhdGEpID0+IGRhdGEucGF0aCkuYXR0cihcImZpbGxcIiwgKGRhdGEpID0+IGRhdGEuZmlsbCA/IGRhdGEuZmlsbCA6IFwibm9uZVwiKS5hdHRyKFwic3Ryb2tlXCIsIChkYXRhKSA9PiBkYXRhLnN0cm9rZUZpbGwpLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgKGRhdGEpID0+IGRhdGEuc3Ryb2tlV2lkdGgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn07XG5jb25zdCByZW5kZXJlciA9IHtcbiAgZHJhd1xufTtcbmNvbnN0IGRpYWdyYW0gPSB7XG4gIHBhcnNlcjogcGFyc2VyJDEsXG4gIGRiLFxuICByZW5kZXJlclxufTtcbmV4cG9ydCB7XG4gIGRpYWdyYW1cbn07XG4iLAogICAgImltcG9ydCB7IGMgYXMgZ2V0Q29uZmlnLCBzIGFzIHNldEFjY1RpdGxlLCBnIGFzIGdldEFjY1RpdGxlLCBiIGFzIHNldEFjY0Rlc2NyaXB0aW9uLCBhIGFzIGdldEFjY0Rlc2NyaXB0aW9uLCBsIGFzIGxvZywgdiBhcyBjbGVhciQxLCBpIGFzIGNvbmZpZ3VyZVN2Z1NpemUsIGUgYXMgY29tbW9uIH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0LCBsaW5lIH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgeyBsYXlvdXQgfSBmcm9tIFwiZGFncmUtZDMtZXMvc3JjL2RhZ3JlL2luZGV4LmpzXCI7XG5pbXBvcnQgKiBhcyBncmFwaGxpYiBmcm9tIFwiZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2luZGV4LmpzXCI7XG5pbXBvcnQgXCJ0cy1kZWRlbnRcIjtcbmltcG9ydCBcImRheWpzXCI7XG5pbXBvcnQgXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IFwiZG9tcHVyaWZ5XCI7XG5pbXBvcnQgXCJraHJvbWFcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZW1vaXplLmpzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVyZ2UuanNcIjtcbmltcG9ydCBcInN0eWxpc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL2lzRW1wdHkuanNcIjtcbnZhciBwYXJzZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIG8gPSBmdW5jdGlvbihrLCB2LCBvMiwgbCkge1xuICAgIGZvciAobzIgPSBvMiB8fCB7fSwgbCA9IGsubGVuZ3RoOyBsLS07IG8yW2tbbF1dID0gdilcbiAgICAgIDtcbiAgICByZXR1cm4gbzI7XG4gIH0sICRWMCA9IFsxLCAzXSwgJFYxID0gWzEsIDRdLCAkVjIgPSBbMSwgNV0sICRWMyA9IFsxLCA2XSwgJFY0ID0gWzUsIDYsIDgsIDksIDExLCAxMywgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgNDQsIDYyLCA2M10sICRWNSA9IFsxLCAxOF0sICRWNiA9IFsyLCA3XSwgJFY3ID0gWzEsIDIyXSwgJFY4ID0gWzEsIDIzXSwgJFY5ID0gWzEsIDI0XSwgJFZhID0gWzEsIDI1XSwgJFZiID0gWzEsIDI2XSwgJFZjID0gWzEsIDI3XSwgJFZkID0gWzEsIDIwXSwgJFZlID0gWzEsIDI4XSwgJFZmID0gWzEsIDI5XSwgJFZnID0gWzYyLCA2M10sICRWaCA9IFs1LCA4LCA5LCAxMSwgMTMsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDQ0LCA1MSwgNTMsIDYyLCA2M10sICRWaSA9IFsxLCA0N10sICRWaiA9IFsxLCA0OF0sICRWayA9IFsxLCA0OV0sICRWbCA9IFsxLCA1MF0sICRWbSA9IFsxLCA1MV0sICRWbiA9IFsxLCA1Ml0sICRWbyA9IFsxLCA1M10sICRWcCA9IFs1MywgNTRdLCAkVnEgPSBbMSwgNjRdLCAkVnIgPSBbMSwgNjBdLCAkVnMgPSBbMSwgNjFdLCAkVnQgPSBbMSwgNjJdLCAkVnUgPSBbMSwgNjNdLCAkVnYgPSBbMSwgNjVdLCAkVncgPSBbMSwgNjldLCAkVnggPSBbMSwgNzBdLCAkVnkgPSBbMSwgNjddLCAkVnogPSBbMSwgNjhdLCAkVkEgPSBbNSwgOCwgOSwgMTEsIDEzLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCA0NCwgNjIsIDYzXTtcbiAgdmFyIHBhcnNlcjIgPSB7XG4gICAgdHJhY2U6IGZ1bmN0aW9uIHRyYWNlKCkge1xuICAgIH0sXG4gICAgeXk6IHt9LFxuICAgIHN5bWJvbHNfOiB7IFwiZXJyb3JcIjogMiwgXCJzdGFydFwiOiAzLCBcImRpcmVjdGl2ZVwiOiA0LCBcIk5FV0xJTkVcIjogNSwgXCJSRFwiOiA2LCBcImRpYWdyYW1cIjogNywgXCJFT0ZcIjogOCwgXCJhY2NfdGl0bGVcIjogOSwgXCJhY2NfdGl0bGVfdmFsdWVcIjogMTAsIFwiYWNjX2Rlc2NyXCI6IDExLCBcImFjY19kZXNjcl92YWx1ZVwiOiAxMiwgXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCI6IDEzLCBcInJlcXVpcmVtZW50RGVmXCI6IDE0LCBcImVsZW1lbnREZWZcIjogMTUsIFwicmVsYXRpb25zaGlwRGVmXCI6IDE2LCBcInJlcXVpcmVtZW50VHlwZVwiOiAxNywgXCJyZXF1aXJlbWVudE5hbWVcIjogMTgsIFwiU1RSVUNUX1NUQVJUXCI6IDE5LCBcInJlcXVpcmVtZW50Qm9keVwiOiAyMCwgXCJJRFwiOiAyMSwgXCJDT0xPTlNFUFwiOiAyMiwgXCJpZFwiOiAyMywgXCJURVhUXCI6IDI0LCBcInRleHRcIjogMjUsIFwiUklTS1wiOiAyNiwgXCJyaXNrTGV2ZWxcIjogMjcsIFwiVkVSSUZZTVRIRFwiOiAyOCwgXCJ2ZXJpZnlUeXBlXCI6IDI5LCBcIlNUUlVDVF9TVE9QXCI6IDMwLCBcIlJFUVVJUkVNRU5UXCI6IDMxLCBcIkZVTkNUSU9OQUxfUkVRVUlSRU1FTlRcIjogMzIsIFwiSU5URVJGQUNFX1JFUVVJUkVNRU5UXCI6IDMzLCBcIlBFUkZPUk1BTkNFX1JFUVVJUkVNRU5UXCI6IDM0LCBcIlBIWVNJQ0FMX1JFUVVJUkVNRU5UXCI6IDM1LCBcIkRFU0lHTl9DT05TVFJBSU5UXCI6IDM2LCBcIkxPV19SSVNLXCI6IDM3LCBcIk1FRF9SSVNLXCI6IDM4LCBcIkhJR0hfUklTS1wiOiAzOSwgXCJWRVJJRllfQU5BTFlTSVNcIjogNDAsIFwiVkVSSUZZX0RFTU9OU1RSQVRJT05cIjogNDEsIFwiVkVSSUZZX0lOU1BFQ1RJT05cIjogNDIsIFwiVkVSSUZZX1RFU1RcIjogNDMsIFwiRUxFTUVOVFwiOiA0NCwgXCJlbGVtZW50TmFtZVwiOiA0NSwgXCJlbGVtZW50Qm9keVwiOiA0NiwgXCJUWVBFXCI6IDQ3LCBcInR5cGVcIjogNDgsIFwiRE9DUkVGXCI6IDQ5LCBcInJlZlwiOiA1MCwgXCJFTkRfQVJST1dfTFwiOiA1MSwgXCJyZWxhdGlvbnNoaXBcIjogNTIsIFwiTElORVwiOiA1MywgXCJFTkRfQVJST1dfUlwiOiA1NCwgXCJDT05UQUlOU1wiOiA1NSwgXCJDT1BJRVNcIjogNTYsIFwiREVSSVZFU1wiOiA1NywgXCJTQVRJU0ZJRVNcIjogNTgsIFwiVkVSSUZJRVNcIjogNTksIFwiUkVGSU5FU1wiOiA2MCwgXCJUUkFDRVNcIjogNjEsIFwidW5xU3RyaW5nXCI6IDYyLCBcInFTdHJpbmdcIjogNjMsIFwiJGFjY2VwdFwiOiAwLCBcIiRlbmRcIjogMSB9LFxuICAgIHRlcm1pbmFsc186IHsgMjogXCJlcnJvclwiLCA1OiBcIk5FV0xJTkVcIiwgNjogXCJSRFwiLCA4OiBcIkVPRlwiLCA5OiBcImFjY190aXRsZVwiLCAxMDogXCJhY2NfdGl0bGVfdmFsdWVcIiwgMTE6IFwiYWNjX2Rlc2NyXCIsIDEyOiBcImFjY19kZXNjcl92YWx1ZVwiLCAxMzogXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCIsIDE5OiBcIlNUUlVDVF9TVEFSVFwiLCAyMTogXCJJRFwiLCAyMjogXCJDT0xPTlNFUFwiLCAyNDogXCJURVhUXCIsIDI2OiBcIlJJU0tcIiwgMjg6IFwiVkVSSUZZTVRIRFwiLCAzMDogXCJTVFJVQ1RfU1RPUFwiLCAzMTogXCJSRVFVSVJFTUVOVFwiLCAzMjogXCJGVU5DVElPTkFMX1JFUVVJUkVNRU5UXCIsIDMzOiBcIklOVEVSRkFDRV9SRVFVSVJFTUVOVFwiLCAzNDogXCJQRVJGT1JNQU5DRV9SRVFVSVJFTUVOVFwiLCAzNTogXCJQSFlTSUNBTF9SRVFVSVJFTUVOVFwiLCAzNjogXCJERVNJR05fQ09OU1RSQUlOVFwiLCAzNzogXCJMT1dfUklTS1wiLCAzODogXCJNRURfUklTS1wiLCAzOTogXCJISUdIX1JJU0tcIiwgNDA6IFwiVkVSSUZZX0FOQUxZU0lTXCIsIDQxOiBcIlZFUklGWV9ERU1PTlNUUkFUSU9OXCIsIDQyOiBcIlZFUklGWV9JTlNQRUNUSU9OXCIsIDQzOiBcIlZFUklGWV9URVNUXCIsIDQ0OiBcIkVMRU1FTlRcIiwgNDc6IFwiVFlQRVwiLCA0OTogXCJET0NSRUZcIiwgNTE6IFwiRU5EX0FSUk9XX0xcIiwgNTM6IFwiTElORVwiLCA1NDogXCJFTkRfQVJST1dfUlwiLCA1NTogXCJDT05UQUlOU1wiLCA1NjogXCJDT1BJRVNcIiwgNTc6IFwiREVSSVZFU1wiLCA1ODogXCJTQVRJU0ZJRVNcIiwgNTk6IFwiVkVSSUZJRVNcIiwgNjA6IFwiUkVGSU5FU1wiLCA2MTogXCJUUkFDRVNcIiwgNjI6IFwidW5xU3RyaW5nXCIsIDYzOiBcInFTdHJpbmdcIiB9LFxuICAgIHByb2R1Y3Rpb25zXzogWzAsIFszLCAzXSwgWzMsIDJdLCBbMywgNF0sIFs0LCAyXSwgWzQsIDJdLCBbNCwgMV0sIFs3LCAwXSwgWzcsIDJdLCBbNywgMl0sIFs3LCAyXSwgWzcsIDJdLCBbNywgMl0sIFsxNCwgNV0sIFsyMCwgNV0sIFsyMCwgNV0sIFsyMCwgNV0sIFsyMCwgNV0sIFsyMCwgMl0sIFsyMCwgMV0sIFsxNywgMV0sIFsxNywgMV0sIFsxNywgMV0sIFsxNywgMV0sIFsxNywgMV0sIFsxNywgMV0sIFsyNywgMV0sIFsyNywgMV0sIFsyNywgMV0sIFsyOSwgMV0sIFsyOSwgMV0sIFsyOSwgMV0sIFsyOSwgMV0sIFsxNSwgNV0sIFs0NiwgNV0sIFs0NiwgNV0sIFs0NiwgMl0sIFs0NiwgMV0sIFsxNiwgNV0sIFsxNiwgNV0sIFs1MiwgMV0sIFs1MiwgMV0sIFs1MiwgMV0sIFs1MiwgMV0sIFs1MiwgMV0sIFs1MiwgMV0sIFs1MiwgMV0sIFsxOCwgMV0sIFsxOCwgMV0sIFsyMywgMV0sIFsyMywgMV0sIFsyNSwgMV0sIFsyNSwgMV0sIFs0NSwgMV0sIFs0NSwgMV0sIFs0OCwgMV0sIFs0OCwgMV0sIFs1MCwgMV0sIFs1MCwgMV1dLFxuICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eXRleHQsIHl5bGVuZywgeXlsaW5lbm8sIHl5LCB5eXN0YXRlLCAkJCwgXyQpIHtcbiAgICAgIHZhciAkMCA9ICQkLmxlbmd0aCAtIDE7XG4gICAgICBzd2l0Y2ggKHl5c3RhdGUpIHtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS50cmltKCk7XG4gICAgICAgICAgeXkuc2V0QWNjVGl0bGUodGhpcy4kKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5zZXRBY2NEZXNjcmlwdGlvbih0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgdGhpcy4kID0gW107XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgeXkuYWRkUmVxdWlyZW1lbnQoJCRbJDAgLSAzXSwgJCRbJDAgLSA0XSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgeXkuc2V0TmV3UmVxSWQoJCRbJDAgLSAyXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgeXkuc2V0TmV3UmVxVGV4dCgkJFskMCAtIDJdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICB5eS5zZXROZXdSZXFSaXNrKCQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE3OlxuICAgICAgICAgIHl5LnNldE5ld1JlcVZlcmlmeU1ldGhvZCgkJFskMCAtIDJdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMDpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5SZXF1aXJlbWVudFR5cGUuUkVRVUlSRU1FTlQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgdGhpcy4kID0geXkuUmVxdWlyZW1lbnRUeXBlLkZVTkNUSU9OQUxfUkVRVUlSRU1FTlQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgdGhpcy4kID0geXkuUmVxdWlyZW1lbnRUeXBlLklOVEVSRkFDRV9SRVFVSVJFTUVOVDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMzpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5SZXF1aXJlbWVudFR5cGUuUEVSRk9STUFOQ0VfUkVRVUlSRU1FTlQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgdGhpcy4kID0geXkuUmVxdWlyZW1lbnRUeXBlLlBIWVNJQ0FMX1JFUVVJUkVNRU5UO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIHRoaXMuJCA9IHl5LlJlcXVpcmVtZW50VHlwZS5ERVNJR05fQ09OU1RSQUlOVDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5SaXNrTGV2ZWwuTE9XX1JJU0s7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgdGhpcy4kID0geXkuUmlza0xldmVsLk1FRF9SSVNLO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI4OlxuICAgICAgICAgIHRoaXMuJCA9IHl5LlJpc2tMZXZlbC5ISUdIX1JJU0s7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjk6XG4gICAgICAgICAgdGhpcy4kID0geXkuVmVyaWZ5VHlwZS5WRVJJRllfQU5BTFlTSVM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgdGhpcy4kID0geXkuVmVyaWZ5VHlwZS5WRVJJRllfREVNT05TVFJBVElPTjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5WZXJpZnlUeXBlLlZFUklGWV9JTlNQRUNUSU9OO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgIHRoaXMuJCA9IHl5LlZlcmlmeVR5cGUuVkVSSUZZX1RFU1Q7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgeXkuYWRkRWxlbWVudCgkJFskMCAtIDNdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICB5eS5zZXROZXdFbGVtZW50VHlwZSgkJFskMCAtIDJdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNTpcbiAgICAgICAgICB5eS5zZXROZXdFbGVtZW50RG9jUmVmKCQkWyQwIC0gMl0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM4OlxuICAgICAgICAgIHl5LmFkZFJlbGF0aW9uc2hpcCgkJFskMCAtIDJdLCAkJFskMF0sICQkWyQwIC0gNF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM5OlxuICAgICAgICAgIHl5LmFkZFJlbGF0aW9uc2hpcCgkJFskMCAtIDJdLCAkJFskMCAtIDRdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQwOlxuICAgICAgICAgIHRoaXMuJCA9IHl5LlJlbGF0aW9uc2hpcHMuQ09OVEFJTlM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDE6XG4gICAgICAgICAgdGhpcy4kID0geXkuUmVsYXRpb25zaGlwcy5DT1BJRVM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDI6XG4gICAgICAgICAgdGhpcy4kID0geXkuUmVsYXRpb25zaGlwcy5ERVJJVkVTO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQzOlxuICAgICAgICAgIHRoaXMuJCA9IHl5LlJlbGF0aW9uc2hpcHMuU0FUSVNGSUVTO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ0OlxuICAgICAgICAgIHRoaXMuJCA9IHl5LlJlbGF0aW9uc2hpcHMuVkVSSUZJRVM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDU6XG4gICAgICAgICAgdGhpcy4kID0geXkuUmVsYXRpb25zaGlwcy5SRUZJTkVTO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ2OlxuICAgICAgICAgIHRoaXMuJCA9IHl5LlJlbGF0aW9uc2hpcHMuVFJBQ0VTO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgdGFibGU6IFt7IDM6IDEsIDQ6IDIsIDY6ICRWMCwgOTogJFYxLCAxMTogJFYyLCAxMzogJFYzIH0sIHsgMTogWzNdIH0sIHsgMzogOCwgNDogMiwgNTogWzEsIDddLCA2OiAkVjAsIDk6ICRWMSwgMTE6ICRWMiwgMTM6ICRWMyB9LCB7IDU6IFsxLCA5XSB9LCB7IDEwOiBbMSwgMTBdIH0sIHsgMTI6IFsxLCAxMV0gfSwgbygkVjQsIFsyLCA2XSksIHsgMzogMTIsIDQ6IDIsIDY6ICRWMCwgOTogJFYxLCAxMTogJFYyLCAxMzogJFYzIH0sIHsgMTogWzIsIDJdIH0sIHsgNDogMTcsIDU6ICRWNSwgNzogMTMsIDg6ICRWNiwgOTogJFYxLCAxMTogJFYyLCAxMzogJFYzLCAxNDogMTQsIDE1OiAxNSwgMTY6IDE2LCAxNzogMTksIDIzOiAyMSwgMzE6ICRWNywgMzI6ICRWOCwgMzM6ICRWOSwgMzQ6ICRWYSwgMzU6ICRWYiwgMzY6ICRWYywgNDQ6ICRWZCwgNjI6ICRWZSwgNjM6ICRWZiB9LCBvKCRWNCwgWzIsIDRdKSwgbygkVjQsIFsyLCA1XSksIHsgMTogWzIsIDFdIH0sIHsgODogWzEsIDMwXSB9LCB7IDQ6IDE3LCA1OiAkVjUsIDc6IDMxLCA4OiAkVjYsIDk6ICRWMSwgMTE6ICRWMiwgMTM6ICRWMywgMTQ6IDE0LCAxNTogMTUsIDE2OiAxNiwgMTc6IDE5LCAyMzogMjEsIDMxOiAkVjcsIDMyOiAkVjgsIDMzOiAkVjksIDM0OiAkVmEsIDM1OiAkVmIsIDM2OiAkVmMsIDQ0OiAkVmQsIDYyOiAkVmUsIDYzOiAkVmYgfSwgeyA0OiAxNywgNTogJFY1LCA3OiAzMiwgODogJFY2LCA5OiAkVjEsIDExOiAkVjIsIDEzOiAkVjMsIDE0OiAxNCwgMTU6IDE1LCAxNjogMTYsIDE3OiAxOSwgMjM6IDIxLCAzMTogJFY3LCAzMjogJFY4LCAzMzogJFY5LCAzNDogJFZhLCAzNTogJFZiLCAzNjogJFZjLCA0NDogJFZkLCA2MjogJFZlLCA2MzogJFZmIH0sIHsgNDogMTcsIDU6ICRWNSwgNzogMzMsIDg6ICRWNiwgOTogJFYxLCAxMTogJFYyLCAxMzogJFYzLCAxNDogMTQsIDE1OiAxNSwgMTY6IDE2LCAxNzogMTksIDIzOiAyMSwgMzE6ICRWNywgMzI6ICRWOCwgMzM6ICRWOSwgMzQ6ICRWYSwgMzU6ICRWYiwgMzY6ICRWYywgNDQ6ICRWZCwgNjI6ICRWZSwgNjM6ICRWZiB9LCB7IDQ6IDE3LCA1OiAkVjUsIDc6IDM0LCA4OiAkVjYsIDk6ICRWMSwgMTE6ICRWMiwgMTM6ICRWMywgMTQ6IDE0LCAxNTogMTUsIDE2OiAxNiwgMTc6IDE5LCAyMzogMjEsIDMxOiAkVjcsIDMyOiAkVjgsIDMzOiAkVjksIDM0OiAkVmEsIDM1OiAkVmIsIDM2OiAkVmMsIDQ0OiAkVmQsIDYyOiAkVmUsIDYzOiAkVmYgfSwgeyA0OiAxNywgNTogJFY1LCA3OiAzNSwgODogJFY2LCA5OiAkVjEsIDExOiAkVjIsIDEzOiAkVjMsIDE0OiAxNCwgMTU6IDE1LCAxNjogMTYsIDE3OiAxOSwgMjM6IDIxLCAzMTogJFY3LCAzMjogJFY4LCAzMzogJFY5LCAzNDogJFZhLCAzNTogJFZiLCAzNjogJFZjLCA0NDogJFZkLCA2MjogJFZlLCA2MzogJFZmIH0sIHsgMTg6IDM2LCA2MjogWzEsIDM3XSwgNjM6IFsxLCAzOF0gfSwgeyA0NTogMzksIDYyOiBbMSwgNDBdLCA2MzogWzEsIDQxXSB9LCB7IDUxOiBbMSwgNDJdLCA1MzogWzEsIDQzXSB9LCBvKCRWZywgWzIsIDIwXSksIG8oJFZnLCBbMiwgMjFdKSwgbygkVmcsIFsyLCAyMl0pLCBvKCRWZywgWzIsIDIzXSksIG8oJFZnLCBbMiwgMjRdKSwgbygkVmcsIFsyLCAyNV0pLCBvKCRWaCwgWzIsIDQ5XSksIG8oJFZoLCBbMiwgNTBdKSwgeyAxOiBbMiwgM10gfSwgeyA4OiBbMiwgOF0gfSwgeyA4OiBbMiwgOV0gfSwgeyA4OiBbMiwgMTBdIH0sIHsgODogWzIsIDExXSB9LCB7IDg6IFsyLCAxMl0gfSwgeyAxOTogWzEsIDQ0XSB9LCB7IDE5OiBbMiwgNDddIH0sIHsgMTk6IFsyLCA0OF0gfSwgeyAxOTogWzEsIDQ1XSB9LCB7IDE5OiBbMiwgNTNdIH0sIHsgMTk6IFsyLCA1NF0gfSwgeyA1MjogNDYsIDU1OiAkVmksIDU2OiAkVmosIDU3OiAkVmssIDU4OiAkVmwsIDU5OiAkVm0sIDYwOiAkVm4sIDYxOiAkVm8gfSwgeyA1MjogNTQsIDU1OiAkVmksIDU2OiAkVmosIDU3OiAkVmssIDU4OiAkVmwsIDU5OiAkVm0sIDYwOiAkVm4sIDYxOiAkVm8gfSwgeyA1OiBbMSwgNTVdIH0sIHsgNTogWzEsIDU2XSB9LCB7IDUzOiBbMSwgNTddIH0sIG8oJFZwLCBbMiwgNDBdKSwgbygkVnAsIFsyLCA0MV0pLCBvKCRWcCwgWzIsIDQyXSksIG8oJFZwLCBbMiwgNDNdKSwgbygkVnAsIFsyLCA0NF0pLCBvKCRWcCwgWzIsIDQ1XSksIG8oJFZwLCBbMiwgNDZdKSwgeyA1NDogWzEsIDU4XSB9LCB7IDU6ICRWcSwgMjA6IDU5LCAyMTogJFZyLCAyNDogJFZzLCAyNjogJFZ0LCAyODogJFZ1LCAzMDogJFZ2IH0sIHsgNTogJFZ3LCAzMDogJFZ4LCA0NjogNjYsIDQ3OiAkVnksIDQ5OiAkVnogfSwgeyAyMzogNzEsIDYyOiAkVmUsIDYzOiAkVmYgfSwgeyAyMzogNzIsIDYyOiAkVmUsIDYzOiAkVmYgfSwgbygkVkEsIFsyLCAxM10pLCB7IDIyOiBbMSwgNzNdIH0sIHsgMjI6IFsxLCA3NF0gfSwgeyAyMjogWzEsIDc1XSB9LCB7IDIyOiBbMSwgNzZdIH0sIHsgNTogJFZxLCAyMDogNzcsIDIxOiAkVnIsIDI0OiAkVnMsIDI2OiAkVnQsIDI4OiAkVnUsIDMwOiAkVnYgfSwgbygkVkEsIFsyLCAxOV0pLCBvKCRWQSwgWzIsIDMzXSksIHsgMjI6IFsxLCA3OF0gfSwgeyAyMjogWzEsIDc5XSB9LCB7IDU6ICRWdywgMzA6ICRWeCwgNDY6IDgwLCA0NzogJFZ5LCA0OTogJFZ6IH0sIG8oJFZBLCBbMiwgMzddKSwgbygkVkEsIFsyLCAzOF0pLCBvKCRWQSwgWzIsIDM5XSksIHsgMjM6IDgxLCA2MjogJFZlLCA2MzogJFZmIH0sIHsgMjU6IDgyLCA2MjogWzEsIDgzXSwgNjM6IFsxLCA4NF0gfSwgeyAyNzogODUsIDM3OiBbMSwgODZdLCAzODogWzEsIDg3XSwgMzk6IFsxLCA4OF0gfSwgeyAyOTogODksIDQwOiBbMSwgOTBdLCA0MTogWzEsIDkxXSwgNDI6IFsxLCA5Ml0sIDQzOiBbMSwgOTNdIH0sIG8oJFZBLCBbMiwgMThdKSwgeyA0ODogOTQsIDYyOiBbMSwgOTVdLCA2MzogWzEsIDk2XSB9LCB7IDUwOiA5NywgNjI6IFsxLCA5OF0sIDYzOiBbMSwgOTldIH0sIG8oJFZBLCBbMiwgMzZdKSwgeyA1OiBbMSwgMTAwXSB9LCB7IDU6IFsxLCAxMDFdIH0sIHsgNTogWzIsIDUxXSB9LCB7IDU6IFsyLCA1Ml0gfSwgeyA1OiBbMSwgMTAyXSB9LCB7IDU6IFsyLCAyNl0gfSwgeyA1OiBbMiwgMjddIH0sIHsgNTogWzIsIDI4XSB9LCB7IDU6IFsxLCAxMDNdIH0sIHsgNTogWzIsIDI5XSB9LCB7IDU6IFsyLCAzMF0gfSwgeyA1OiBbMiwgMzFdIH0sIHsgNTogWzIsIDMyXSB9LCB7IDU6IFsxLCAxMDRdIH0sIHsgNTogWzIsIDU1XSB9LCB7IDU6IFsyLCA1Nl0gfSwgeyA1OiBbMSwgMTA1XSB9LCB7IDU6IFsyLCA1N10gfSwgeyA1OiBbMiwgNThdIH0sIHsgNTogJFZxLCAyMDogMTA2LCAyMTogJFZyLCAyNDogJFZzLCAyNjogJFZ0LCAyODogJFZ1LCAzMDogJFZ2IH0sIHsgNTogJFZxLCAyMDogMTA3LCAyMTogJFZyLCAyNDogJFZzLCAyNjogJFZ0LCAyODogJFZ1LCAzMDogJFZ2IH0sIHsgNTogJFZxLCAyMDogMTA4LCAyMTogJFZyLCAyNDogJFZzLCAyNjogJFZ0LCAyODogJFZ1LCAzMDogJFZ2IH0sIHsgNTogJFZxLCAyMDogMTA5LCAyMTogJFZyLCAyNDogJFZzLCAyNjogJFZ0LCAyODogJFZ1LCAzMDogJFZ2IH0sIHsgNTogJFZ3LCAzMDogJFZ4LCA0NjogMTEwLCA0NzogJFZ5LCA0OTogJFZ6IH0sIHsgNTogJFZ3LCAzMDogJFZ4LCA0NjogMTExLCA0NzogJFZ5LCA0OTogJFZ6IH0sIG8oJFZBLCBbMiwgMTRdKSwgbygkVkEsIFsyLCAxNV0pLCBvKCRWQSwgWzIsIDE2XSksIG8oJFZBLCBbMiwgMTddKSwgbygkVkEsIFsyLCAzNF0pLCBvKCRWQSwgWzIsIDM1XSldLFxuICAgIGRlZmF1bHRBY3Rpb25zOiB7IDg6IFsyLCAyXSwgMTI6IFsyLCAxXSwgMzA6IFsyLCAzXSwgMzE6IFsyLCA4XSwgMzI6IFsyLCA5XSwgMzM6IFsyLCAxMF0sIDM0OiBbMiwgMTFdLCAzNTogWzIsIDEyXSwgMzc6IFsyLCA0N10sIDM4OiBbMiwgNDhdLCA0MDogWzIsIDUzXSwgNDE6IFsyLCA1NF0sIDgzOiBbMiwgNTFdLCA4NDogWzIsIDUyXSwgODY6IFsyLCAyNl0sIDg3OiBbMiwgMjddLCA4ODogWzIsIDI4XSwgOTA6IFsyLCAyOV0sIDkxOiBbMiwgMzBdLCA5MjogWzIsIDMxXSwgOTM6IFsyLCAzMl0sIDk1OiBbMiwgNTVdLCA5NjogWzIsIDU2XSwgOTg6IFsyLCA1N10sIDk5OiBbMiwgNThdIH0sXG4gICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgIGlmIChoYXNoLnJlY292ZXJhYmxlKSB7XG4gICAgICAgIHRoaXMudHJhY2Uoc3RyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICBlcnJvci5oYXNoID0gaGFzaDtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSxcbiAgICBwYXJzZTogZnVuY3Rpb24gcGFyc2UoaW5wdXQpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcywgc3RhY2sgPSBbMF0sIHRzdGFjayA9IFtdLCB2c3RhY2sgPSBbbnVsbF0sIGxzdGFjayA9IFtdLCB0YWJsZSA9IHRoaXMudGFibGUsIHl5dGV4dCA9IFwiXCIsIHl5bGluZW5vID0gMCwgeXlsZW5nID0gMCwgVEVSUk9SID0gMiwgRU9GID0gMTtcbiAgICAgIHZhciBhcmdzID0gbHN0YWNrLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgIHZhciBsZXhlcjIgPSBPYmplY3QuY3JlYXRlKHRoaXMubGV4ZXIpO1xuICAgICAgdmFyIHNoYXJlZFN0YXRlID0geyB5eToge30gfTtcbiAgICAgIGZvciAodmFyIGsgaW4gdGhpcy55eSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMueXksIGspKSB7XG4gICAgICAgICAgc2hhcmVkU3RhdGUueXlba10gPSB0aGlzLnl5W2tdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXhlcjIuc2V0SW5wdXQoaW5wdXQsIHNoYXJlZFN0YXRlLnl5KTtcbiAgICAgIHNoYXJlZFN0YXRlLnl5LmxleGVyID0gbGV4ZXIyO1xuICAgICAgc2hhcmVkU3RhdGUueXkucGFyc2VyID0gdGhpcztcbiAgICAgIGlmICh0eXBlb2YgbGV4ZXIyLnl5bGxvYyA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGxleGVyMi55eWxsb2MgPSB7fTtcbiAgICAgIH1cbiAgICAgIHZhciB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICBsc3RhY2sucHVzaCh5eWxvYyk7XG4gICAgICB2YXIgcmFuZ2VzID0gbGV4ZXIyLm9wdGlvbnMgJiYgbGV4ZXIyLm9wdGlvbnMucmFuZ2VzO1xuICAgICAgaWYgKHR5cGVvZiBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFyc2VFcnJvciA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5wYXJzZUVycm9yO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgdG9rZW47XG4gICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpIHx8IGxleGVyMi5sZXgoKSB8fCBFT0Y7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBpZiAodG9rZW4gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgdHN0YWNrID0gdG9rZW47XG4gICAgICAgICAgICB0b2tlbiA9IHRzdGFjay5wb3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdG9rZW4gPSBzZWxmLnN5bWJvbHNfW3Rva2VuXSB8fCB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICB9XG4gICAgICB2YXIgc3ltYm9sLCBzdGF0ZSwgYWN0aW9uLCByLCB5eXZhbCA9IHt9LCBwLCBsZW4sIG5ld1N0YXRlLCBleHBlY3RlZDtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHN0YXRlID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXSkge1xuICAgICAgICAgIGFjdGlvbiA9IHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChzeW1ib2wgPT09IG51bGwgfHwgdHlwZW9mIHN5bWJvbCA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBzeW1ib2wgPSBsZXgoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWN0aW9uID0gdGFibGVbc3RhdGVdICYmIHRhYmxlW3N0YXRlXVtzeW1ib2xdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSBcInVuZGVmaW5lZFwiIHx8ICFhY3Rpb24ubGVuZ3RoIHx8ICFhY3Rpb25bMF0pIHtcbiAgICAgICAgICB2YXIgZXJyU3RyID0gXCJcIjtcbiAgICAgICAgICBleHBlY3RlZCA9IFtdO1xuICAgICAgICAgIGZvciAocCBpbiB0YWJsZVtzdGF0ZV0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRlcm1pbmFsc19bcF0gJiYgcCA+IFRFUlJPUikge1xuICAgICAgICAgICAgICBleHBlY3RlZC5wdXNoKFwiJ1wiICsgdGhpcy50ZXJtaW5hbHNfW3BdICsgXCInXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGV4ZXIyLnNob3dQb3NpdGlvbikge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjpcXG5cIiArIGxleGVyMi5zaG93UG9zaXRpb24oKSArIFwiXFxuRXhwZWN0aW5nIFwiICsgZXhwZWN0ZWQuam9pbihcIiwgXCIpICsgXCIsIGdvdCAnXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOiBVbmV4cGVjdGVkIFwiICsgKHN5bWJvbCA9PSBFT0YgPyBcImVuZCBvZiBpbnB1dFwiIDogXCInXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wYXJzZUVycm9yKGVyclN0ciwge1xuICAgICAgICAgICAgdGV4dDogbGV4ZXIyLm1hdGNoLFxuICAgICAgICAgICAgdG9rZW46IHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCxcbiAgICAgICAgICAgIGxpbmU6IGxleGVyMi55eWxpbmVubyxcbiAgICAgICAgICAgIGxvYzogeXlsb2MsXG4gICAgICAgICAgICBleHBlY3RlZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25bMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBhY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcnNlIEVycm9yOiBtdWx0aXBsZSBhY3Rpb25zIHBvc3NpYmxlIGF0IHN0YXRlOiBcIiArIHN0YXRlICsgXCIsIHRva2VuOiBcIiArIHN5bWJvbCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChhY3Rpb25bMF0pIHtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBzdGFjay5wdXNoKHN5bWJvbCk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaChsZXhlcjIueXl0ZXh0KTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKGxleGVyMi55eWxsb2MpO1xuICAgICAgICAgICAgc3RhY2sucHVzaChhY3Rpb25bMV0pO1xuICAgICAgICAgICAgc3ltYm9sID0gbnVsbDtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgeXlsZW5nID0gbGV4ZXIyLnl5bGVuZztcbiAgICAgICAgICAgICAgeXl0ZXh0ID0gbGV4ZXIyLnl5dGV4dDtcbiAgICAgICAgICAgICAgeXlsaW5lbm8gPSBsZXhlcjIueXlsaW5lbm87XG4gICAgICAgICAgICAgIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGxlbiA9IHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMV07XG4gICAgICAgICAgICB5eXZhbC4kID0gdnN0YWNrW3ZzdGFjay5sZW5ndGggLSBsZW5dO1xuICAgICAgICAgICAgeXl2YWwuXyQgPSB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmFuZ2VzKSB7XG4gICAgICAgICAgICAgIHl5dmFsLl8kLnJhbmdlID0gW1xuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0ucmFuZ2VbMF0sXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5yYW5nZVsxXVxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgciA9IHRoaXMucGVyZm9ybUFjdGlvbi5hcHBseSh5eXZhbCwgW1xuICAgICAgICAgICAgICB5eXRleHQsXG4gICAgICAgICAgICAgIHl5bGVuZyxcbiAgICAgICAgICAgICAgeXlsaW5lbm8sXG4gICAgICAgICAgICAgIHNoYXJlZFN0YXRlLnl5LFxuICAgICAgICAgICAgICBhY3Rpb25bMV0sXG4gICAgICAgICAgICAgIHZzdGFjayxcbiAgICAgICAgICAgICAgbHN0YWNrXG4gICAgICAgICAgICBdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGVuKSB7XG4gICAgICAgICAgICAgIHN0YWNrID0gc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4gKiAyKTtcbiAgICAgICAgICAgICAgdnN0YWNrID0gdnN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgICAgbHN0YWNrID0gbHN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YWNrLnB1c2godGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVswXSk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaCh5eXZhbC4kKTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKHl5dmFsLl8kKTtcbiAgICAgICAgICAgIG5ld1N0YXRlID0gdGFibGVbc3RhY2tbc3RhY2subGVuZ3RoIC0gMl1dW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2gobmV3U3RhdGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfTtcbiAgdmFyIGxleGVyID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGxleGVyMiA9IHtcbiAgICAgIEVPRjogMSxcbiAgICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICAgIGlmICh0aGlzLnl5LnBhcnNlcikge1xuICAgICAgICAgIHRoaXMueXkucGFyc2VyLnBhcnNlRXJyb3Ioc3RyLCBoYXNoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJlc2V0cyB0aGUgbGV4ZXIsIHNldHMgbmV3IGlucHV0XG4gICAgICBzZXRJbnB1dDogZnVuY3Rpb24oaW5wdXQsIHl5KSB7XG4gICAgICAgIHRoaXMueXkgPSB5eSB8fCB0aGlzLnl5IHx8IHt9O1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLl9tb3JlID0gdGhpcy5fYmFja3RyYWNrID0gdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgIHRoaXMueXlsaW5lbm8gPSB0aGlzLnl5bGVuZyA9IDA7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaCA9IFwiXCI7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sgPSBbXCJJTklUSUFMXCJdO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogMCxcbiAgICAgICAgICBsYXN0X2xpbmU6IDEsXG4gICAgICAgICAgbGFzdF9jb2x1bW46IDBcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFswLCAwXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIGNvbnN1bWVzIGFuZCByZXR1cm5zIG9uZSBjaGFyIGZyb20gdGhlIGlucHV0XG4gICAgICBpbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBjaCA9IHRoaXMuX2lucHV0WzBdO1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBjaDtcbiAgICAgICAgdGhpcy55eWxlbmcrKztcbiAgICAgICAgdGhpcy5vZmZzZXQrKztcbiAgICAgICAgdGhpcy5tYXRjaCArPSBjaDtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IGNoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8rKztcbiAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2xpbmUrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbisrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2VbMV0rKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKDEpO1xuICAgICAgICByZXR1cm4gY2g7XG4gICAgICB9LFxuICAgICAgLy8gdW5zaGlmdHMgb25lIGNoYXIgKG9yIGEgc3RyaW5nKSBpbnRvIHRoZSBpbnB1dFxuICAgICAgdW5wdXQ6IGZ1bmN0aW9uKGNoKSB7XG4gICAgICAgIHZhciBsZW4gPSBjaC5sZW5ndGg7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gY2ggKyB0aGlzLl9pbnB1dDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLnl5dGV4dC5zdWJzdHIoMCwgdGhpcy55eXRleHQubGVuZ3RoIC0gbGVuKTtcbiAgICAgICAgdGhpcy5vZmZzZXQgLT0gbGVuO1xuICAgICAgICB2YXIgb2xkTGluZXMgPSB0aGlzLm1hdGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgIHRoaXMubWF0Y2ggPSB0aGlzLm1hdGNoLnN1YnN0cigwLCB0aGlzLm1hdGNoLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSAxKTtcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vIC09IGxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHIgPSB0aGlzLnl5bGxvYy5yYW5nZTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IChsaW5lcy5sZW5ndGggPT09IG9sZExpbmVzLmxlbmd0aCA/IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiA6IDApICsgb2xkTGluZXNbb2xkTGluZXMubGVuZ3RoIC0gbGluZXMubGVuZ3RoXS5sZW5ndGggLSBsaW5lc1swXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gLSBsZW5cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFtyWzBdLCByWzBdICsgdGhpcy55eWxlbmcgLSBsZW5dO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgY2FjaGVzIG1hdGNoZWQgdGV4dCBhbmQgYXBwZW5kcyBpdCBvbiBuZXh0IGFjdGlvblxuICAgICAgbW9yZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgc2lnbmFscyB0aGUgbGV4ZXIgdGhhdCB0aGlzIHJ1bGUgZmFpbHMgdG8gbWF0Y2ggdGhlIGlucHV0LCBzbyB0aGUgbmV4dCBtYXRjaGluZyBydWxlIChyZWdleCkgc2hvdWxkIGJlIHRlc3RlZCBpbnN0ZWFkLlxuICAgICAgcmVqZWN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIgKyAodGhpcy55eWxpbmVubyArIDEpICsgXCIuIFlvdSBjYW4gb25seSBpbnZva2UgcmVqZWN0KCkgaW4gdGhlIGxleGVyIHdoZW4gdGhlIGxleGVyIGlzIG9mIHRoZSBiYWNrdHJhY2tpbmcgcGVyc3Vhc2lvbiAob3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIgPSB0cnVlKS5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyByZXRhaW4gZmlyc3QgbiBjaGFyYWN0ZXJzIG9mIHRoZSBtYXRjaFxuICAgICAgbGVzczogZnVuY3Rpb24obikge1xuICAgICAgICB0aGlzLnVucHV0KHRoaXMubWF0Y2guc2xpY2UobikpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIGFscmVhZHkgbWF0Y2hlZCBpbnB1dCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHBhc3RJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwYXN0ID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gdGhpcy5tYXRjaC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gKHBhc3QubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikgKyBwYXN0LnN1YnN0cigtMjApLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB1cGNvbWluZyBpbnB1dCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHVwY29taW5nSW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbmV4dCA9IHRoaXMubWF0Y2g7XG4gICAgICAgIGlmIChuZXh0Lmxlbmd0aCA8IDIwKSB7XG4gICAgICAgICAgbmV4dCArPSB0aGlzLl9pbnB1dC5zdWJzdHIoMCwgMjAgLSBuZXh0Lmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChuZXh0LnN1YnN0cigwLCAyMCkgKyAobmV4dC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXIgcG9zaXRpb24gd2hlcmUgdGhlIGxleGluZyBlcnJvciBvY2N1cnJlZCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHNob3dQb3NpdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwcmUgPSB0aGlzLnBhc3RJbnB1dCgpO1xuICAgICAgICB2YXIgYyA9IG5ldyBBcnJheShwcmUubGVuZ3RoICsgMSkuam9pbihcIi1cIik7XG4gICAgICAgIHJldHVybiBwcmUgKyB0aGlzLnVwY29taW5nSW5wdXQoKSArIFwiXFxuXCIgKyBjICsgXCJeXCI7XG4gICAgICB9LFxuICAgICAgLy8gdGVzdCB0aGUgbGV4ZWQgdG9rZW46IHJldHVybiBGQUxTRSB3aGVuIG5vdCBhIG1hdGNoLCBvdGhlcndpc2UgcmV0dXJuIHRva2VuXG4gICAgICB0ZXN0X21hdGNoOiBmdW5jdGlvbihtYXRjaCwgaW5kZXhlZF9ydWxlKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbGluZXMsIGJhY2t1cDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICBiYWNrdXAgPSB7XG4gICAgICAgICAgICB5eWxpbmVubzogdGhpcy55eWxpbmVubyxcbiAgICAgICAgICAgIHl5bGxvYzoge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeXl0ZXh0OiB0aGlzLnl5dGV4dCxcbiAgICAgICAgICAgIG1hdGNoOiB0aGlzLm1hdGNoLFxuICAgICAgICAgICAgbWF0Y2hlczogdGhpcy5tYXRjaGVzLFxuICAgICAgICAgICAgbWF0Y2hlZDogdGhpcy5tYXRjaGVkLFxuICAgICAgICAgICAgeXlsZW5nOiB0aGlzLnl5bGVuZyxcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICBfbW9yZTogdGhpcy5fbW9yZSxcbiAgICAgICAgICAgIF9pbnB1dDogdGhpcy5faW5wdXQsXG4gICAgICAgICAgICB5eTogdGhpcy55eSxcbiAgICAgICAgICAgIGNvbmRpdGlvblN0YWNrOiB0aGlzLmNvbmRpdGlvblN0YWNrLnNsaWNlKDApLFxuICAgICAgICAgICAgZG9uZTogdGhpcy5kb25lXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgICAgYmFja3VwLnl5bGxvYy5yYW5nZSA9IHRoaXMueXlsbG9jLnJhbmdlLnNsaWNlKDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsaW5lcyA9IG1hdGNoWzBdLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyArPSBsaW5lcy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MubGFzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGggLSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5tYXRjaCgvXFxyP1xcbj8vKVswXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbiArIG1hdGNoWzBdLmxlbmd0aFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBtYXRjaFswXTtcbiAgICAgICAgdGhpcy5tYXRjaCArPSBtYXRjaFswXTtcbiAgICAgICAgdGhpcy5tYXRjaGVzID0gbWF0Y2g7XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3RoaXMub2Zmc2V0LCB0aGlzLm9mZnNldCArPSB0aGlzLnl5bGVuZ107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbW9yZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZShtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRva2VuID0gdGhpcy5wZXJmb3JtQWN0aW9uLmNhbGwodGhpcywgdGhpcy55eSwgdGhpcywgaW5kZXhlZF9ydWxlLCB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pO1xuICAgICAgICBpZiAodGhpcy5kb25lICYmIHRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgIGZvciAodmFyIGsgaW4gYmFja3VwKSB7XG4gICAgICAgICAgICB0aGlzW2tdID0gYmFja3VwW2tdO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIGluIGlucHV0XG4gICAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5kb25lID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdG9rZW4sIG1hdGNoLCB0ZW1wTWF0Y2gsIGluZGV4O1xuICAgICAgICBpZiAoIXRoaXMuX21vcmUpIHtcbiAgICAgICAgICB0aGlzLnl5dGV4dCA9IFwiXCI7XG4gICAgICAgICAgdGhpcy5tYXRjaCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJ1bGVzID0gdGhpcy5fY3VycmVudFJ1bGVzKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0ZW1wTWF0Y2ggPSB0aGlzLl9pbnB1dC5tYXRjaCh0aGlzLnJ1bGVzW3J1bGVzW2ldXSk7XG4gICAgICAgICAgaWYgKHRlbXBNYXRjaCAmJiAoIW1hdGNoIHx8IHRlbXBNYXRjaFswXS5sZW5ndGggPiBtYXRjaFswXS5sZW5ndGgpKSB7XG4gICAgICAgICAgICBtYXRjaCA9IHRlbXBNYXRjaDtcbiAgICAgICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKHRlbXBNYXRjaCwgcnVsZXNbaV0pO1xuICAgICAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLm9wdGlvbnMuZmxleCkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2gobWF0Y2gsIHJ1bGVzW2luZGV4XSk7XG4gICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0ID09PSBcIlwiKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIgKyAodGhpcy55eWxpbmVubyArIDEpICsgXCIuIFVucmVjb2duaXplZCB0ZXh0LlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggdGhhdCBoYXMgYSB0b2tlblxuICAgICAgbGV4OiBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciByID0gdGhpcy5uZXh0KCk7XG4gICAgICAgIGlmIChyKSB7XG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubGV4KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhY3RpdmF0ZXMgYSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIChwdXNoZXMgdGhlIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgb250byB0aGUgY29uZGl0aW9uIHN0YWNrKVxuICAgICAgYmVnaW46IGZ1bmN0aW9uIGJlZ2luKGNvbmRpdGlvbikge1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrLnB1c2goY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyBwb3AgdGhlIHByZXZpb3VzbHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvZmYgdGhlIGNvbmRpdGlvbiBzdGFja1xuICAgICAgcG9wU3RhdGU6IGZ1bmN0aW9uIHBvcFN0YXRlKCkge1xuICAgICAgICB2YXIgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKG4gPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2sucG9wKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2tbMF07XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBwcm9kdWNlIHRoZSBsZXhlciBydWxlIHNldCB3aGljaCBpcyBhY3RpdmUgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZVxuICAgICAgX2N1cnJlbnRSdWxlczogZnVuY3Rpb24gX2N1cnJlbnRSdWxlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoICYmIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdXS5ydWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW1wiSU5JVElBTFwiXS5ydWxlcztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGU7IHdoZW4gYW4gaW5kZXggYXJndW1lbnQgaXMgcHJvdmlkZWQgaXQgcHJvZHVjZXMgdGhlIE4tdGggcHJldmlvdXMgY29uZGl0aW9uIHN0YXRlLCBpZiBhdmFpbGFibGVcbiAgICAgIHRvcFN0YXRlOiBmdW5jdGlvbiB0b3BTdGF0ZShuKSB7XG4gICAgICAgIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDEgLSBNYXRoLmFicyhuIHx8IDApO1xuICAgICAgICBpZiAobiA+PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2tbbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFwiSU5JVElBTFwiO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWxpYXMgZm9yIGJlZ2luKGNvbmRpdGlvbilcbiAgICAgIHB1c2hTdGF0ZTogZnVuY3Rpb24gcHVzaFN0YXRlKGNvbmRpdGlvbikge1xuICAgICAgICB0aGlzLmJlZ2luKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdGVzIGN1cnJlbnRseSBvbiB0aGUgc3RhY2tcbiAgICAgIHN0YXRlU3RhY2tTaXplOiBmdW5jdGlvbiBzdGF0ZVN0YWNrU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHsgXCJjYXNlLWluc2Vuc2l0aXZlXCI6IHRydWUgfSxcbiAgICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eSwgeXlfLCAkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zLCBZWV9TVEFSVCkge1xuICAgICAgICBzd2l0Y2ggKCRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gXCJ0aXRsZVwiO1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfdGl0bGVcIik7XG4gICAgICAgICAgICByZXR1cm4gOTtcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfdGl0bGVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiYWNjX2Rlc2NyXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDExO1xuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjcl92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIHJldHVybiA1O1xuICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgIHJldHVybiA4O1xuICAgICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgICByZXR1cm4gNjtcbiAgICAgICAgICBjYXNlIDE0OlxuICAgICAgICAgICAgcmV0dXJuIDE5O1xuICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgICByZXR1cm4gMzA7XG4gICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgIHJldHVybiAyMjtcbiAgICAgICAgICBjYXNlIDE3OlxuICAgICAgICAgICAgcmV0dXJuIDIxO1xuICAgICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgICByZXR1cm4gMjQ7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIHJldHVybiAyNjtcbiAgICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgICAgcmV0dXJuIDI4O1xuICAgICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgICByZXR1cm4gMzE7XG4gICAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICAgIHJldHVybiAzMjtcbiAgICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgICAgcmV0dXJuIDMzO1xuICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgICByZXR1cm4gMzQ7XG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIHJldHVybiAzNTtcbiAgICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICByZXR1cm4gMzc7XG4gICAgICAgICAgY2FzZSAyODpcbiAgICAgICAgICAgIHJldHVybiAzODtcbiAgICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgICAgcmV0dXJuIDM5O1xuICAgICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgICByZXR1cm4gNDA7XG4gICAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICAgIHJldHVybiA0MTtcbiAgICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgICAgcmV0dXJuIDQyO1xuICAgICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgICByZXR1cm4gNDM7XG4gICAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICAgIHJldHVybiA0NDtcbiAgICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgICAgcmV0dXJuIDU1O1xuICAgICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgICByZXR1cm4gNTY7XG4gICAgICAgICAgY2FzZSAzNzpcbiAgICAgICAgICAgIHJldHVybiA1NztcbiAgICAgICAgICBjYXNlIDM4OlxuICAgICAgICAgICAgcmV0dXJuIDU4O1xuICAgICAgICAgIGNhc2UgMzk6XG4gICAgICAgICAgICByZXR1cm4gNTk7XG4gICAgICAgICAgY2FzZSA0MDpcbiAgICAgICAgICAgIHJldHVybiA2MDtcbiAgICAgICAgICBjYXNlIDQxOlxuICAgICAgICAgICAgcmV0dXJuIDYxO1xuICAgICAgICAgIGNhc2UgNDI6XG4gICAgICAgICAgICByZXR1cm4gNDc7XG4gICAgICAgICAgY2FzZSA0MzpcbiAgICAgICAgICAgIHJldHVybiA0OTtcbiAgICAgICAgICBjYXNlIDQ0OlxuICAgICAgICAgICAgcmV0dXJuIDUxO1xuICAgICAgICAgIGNhc2UgNDU6XG4gICAgICAgICAgICByZXR1cm4gNTQ7XG4gICAgICAgICAgY2FzZSA0NjpcbiAgICAgICAgICAgIHJldHVybiA1MztcbiAgICAgICAgICBjYXNlIDQ3OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcInN0cmluZ1wiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNDg6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQ5OlxuICAgICAgICAgICAgcmV0dXJuIFwicVN0cmluZ1wiO1xuICAgICAgICAgIGNhc2UgNTA6XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0geXlfLnl5dGV4dC50cmltKCk7XG4gICAgICAgICAgICByZXR1cm4gNjI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczogWy9eKD86dGl0bGVcXHNbXiNcXG47XSspL2ksIC9eKD86YWNjVGl0bGVcXHMqOlxccyopL2ksIC9eKD86KD8hXFxufHwpKlteXFxuXSopL2ksIC9eKD86YWNjRGVzY3JcXHMqOlxccyopL2ksIC9eKD86KD8hXFxufHwpKlteXFxuXSopL2ksIC9eKD86YWNjRGVzY3JcXHMqXFx7XFxzKikvaSwgL14oPzpbXFx9XSkvaSwgL14oPzpbXlxcfV0qKS9pLCAvXig/OihcXHI/XFxuKSspL2ksIC9eKD86XFxzKykvaSwgL14oPzojW15cXG5dKikvaSwgL14oPzolW15cXG5dKikvaSwgL14oPzokKS9pLCAvXig/OnJlcXVpcmVtZW50RGlhZ3JhbVxcYikvaSwgL14oPzpcXHspL2ksIC9eKD86XFx9KS9pLCAvXig/OjopL2ksIC9eKD86aWRcXGIpL2ksIC9eKD86dGV4dFxcYikvaSwgL14oPzpyaXNrXFxiKS9pLCAvXig/OnZlcmlmeU1ldGhvZFxcYikvaSwgL14oPzpyZXF1aXJlbWVudFxcYikvaSwgL14oPzpmdW5jdGlvbmFsUmVxdWlyZW1lbnRcXGIpL2ksIC9eKD86aW50ZXJmYWNlUmVxdWlyZW1lbnRcXGIpL2ksIC9eKD86cGVyZm9ybWFuY2VSZXF1aXJlbWVudFxcYikvaSwgL14oPzpwaHlzaWNhbFJlcXVpcmVtZW50XFxiKS9pLCAvXig/OmRlc2lnbkNvbnN0cmFpbnRcXGIpL2ksIC9eKD86bG93XFxiKS9pLCAvXig/Om1lZGl1bVxcYikvaSwgL14oPzpoaWdoXFxiKS9pLCAvXig/OmFuYWx5c2lzXFxiKS9pLCAvXig/OmRlbW9uc3RyYXRpb25cXGIpL2ksIC9eKD86aW5zcGVjdGlvblxcYikvaSwgL14oPzp0ZXN0XFxiKS9pLCAvXig/OmVsZW1lbnRcXGIpL2ksIC9eKD86Y29udGFpbnNcXGIpL2ksIC9eKD86Y29waWVzXFxiKS9pLCAvXig/OmRlcml2ZXNcXGIpL2ksIC9eKD86c2F0aXNmaWVzXFxiKS9pLCAvXig/OnZlcmlmaWVzXFxiKS9pLCAvXig/OnJlZmluZXNcXGIpL2ksIC9eKD86dHJhY2VzXFxiKS9pLCAvXig/OnR5cGVcXGIpL2ksIC9eKD86ZG9jcmVmXFxiKS9pLCAvXig/OjwtKS9pLCAvXig/Oi0+KS9pLCAvXig/Oi0pL2ksIC9eKD86W1wiXSkvaSwgL14oPzpbXCJdKS9pLCAvXig/OlteXCJdKikvaSwgL14oPzpbXFx3XVteXFxyXFxuXFx7XFw8XFw+XFwtXFw9XSopL2ldLFxuICAgICAgY29uZGl0aW9uczogeyBcImFjY19kZXNjcl9tdWx0aWxpbmVcIjogeyBcInJ1bGVzXCI6IFs2LCA3XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfZGVzY3JcIjogeyBcInJ1bGVzXCI6IFs0XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfdGl0bGVcIjogeyBcInJ1bGVzXCI6IFsyXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJ1bnFTdHJpbmdcIjogeyBcInJ1bGVzXCI6IFtdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInRva2VuXCI6IHsgXCJydWxlc1wiOiBbXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJzdHJpbmdcIjogeyBcInJ1bGVzXCI6IFs0OCwgNDldLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIklOSVRJQUxcIjogeyBcInJ1bGVzXCI6IFswLCAxLCAzLCA1LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDUwXSwgXCJpbmNsdXNpdmVcIjogdHJ1ZSB9IH1cbiAgICB9O1xuICAgIHJldHVybiBsZXhlcjI7XG4gIH0oKTtcbiAgcGFyc2VyMi5sZXhlciA9IGxleGVyO1xuICBmdW5jdGlvbiBQYXJzZXIoKSB7XG4gICAgdGhpcy55eSA9IHt9O1xuICB9XG4gIFBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXIyO1xuICBwYXJzZXIyLlBhcnNlciA9IFBhcnNlcjtcbiAgcmV0dXJuIG5ldyBQYXJzZXIoKTtcbn0oKTtcbnBhcnNlci5wYXJzZXIgPSBwYXJzZXI7XG5jb25zdCBwYXJzZXIkMSA9IHBhcnNlcjtcbmxldCByZWxhdGlvbnMgPSBbXTtcbmxldCBsYXRlc3RSZXF1aXJlbWVudCA9IHt9O1xubGV0IHJlcXVpcmVtZW50cyA9IHt9O1xubGV0IGxhdGVzdEVsZW1lbnQgPSB7fTtcbmxldCBlbGVtZW50cyA9IHt9O1xuY29uc3QgUmVxdWlyZW1lbnRUeXBlID0ge1xuICBSRVFVSVJFTUVOVDogXCJSZXF1aXJlbWVudFwiLFxuICBGVU5DVElPTkFMX1JFUVVJUkVNRU5UOiBcIkZ1bmN0aW9uYWwgUmVxdWlyZW1lbnRcIixcbiAgSU5URVJGQUNFX1JFUVVJUkVNRU5UOiBcIkludGVyZmFjZSBSZXF1aXJlbWVudFwiLFxuICBQRVJGT1JNQU5DRV9SRVFVSVJFTUVOVDogXCJQZXJmb3JtYW5jZSBSZXF1aXJlbWVudFwiLFxuICBQSFlTSUNBTF9SRVFVSVJFTUVOVDogXCJQaHlzaWNhbCBSZXF1aXJlbWVudFwiLFxuICBERVNJR05fQ09OU1RSQUlOVDogXCJEZXNpZ24gQ29uc3RyYWludFwiXG59O1xuY29uc3QgUmlza0xldmVsID0ge1xuICBMT1dfUklTSzogXCJMb3dcIixcbiAgTUVEX1JJU0s6IFwiTWVkaXVtXCIsXG4gIEhJR0hfUklTSzogXCJIaWdoXCJcbn07XG5jb25zdCBWZXJpZnlUeXBlID0ge1xuICBWRVJJRllfQU5BTFlTSVM6IFwiQW5hbHlzaXNcIixcbiAgVkVSSUZZX0RFTU9OU1RSQVRJT046IFwiRGVtb25zdHJhdGlvblwiLFxuICBWRVJJRllfSU5TUEVDVElPTjogXCJJbnNwZWN0aW9uXCIsXG4gIFZFUklGWV9URVNUOiBcIlRlc3RcIlxufTtcbmNvbnN0IFJlbGF0aW9uc2hpcHMgPSB7XG4gIENPTlRBSU5TOiBcImNvbnRhaW5zXCIsXG4gIENPUElFUzogXCJjb3BpZXNcIixcbiAgREVSSVZFUzogXCJkZXJpdmVzXCIsXG4gIFNBVElTRklFUzogXCJzYXRpc2ZpZXNcIixcbiAgVkVSSUZJRVM6IFwidmVyaWZpZXNcIixcbiAgUkVGSU5FUzogXCJyZWZpbmVzXCIsXG4gIFRSQUNFUzogXCJ0cmFjZXNcIlxufTtcbmNvbnN0IGFkZFJlcXVpcmVtZW50ID0gKG5hbWUsIHR5cGUpID0+IHtcbiAgaWYgKHJlcXVpcmVtZW50c1tuYW1lXSA9PT0gdm9pZCAwKSB7XG4gICAgcmVxdWlyZW1lbnRzW25hbWVdID0ge1xuICAgICAgbmFtZSxcbiAgICAgIHR5cGUsXG4gICAgICBpZDogbGF0ZXN0UmVxdWlyZW1lbnQuaWQsXG4gICAgICB0ZXh0OiBsYXRlc3RSZXF1aXJlbWVudC50ZXh0LFxuICAgICAgcmlzazogbGF0ZXN0UmVxdWlyZW1lbnQucmlzayxcbiAgICAgIHZlcmlmeU1ldGhvZDogbGF0ZXN0UmVxdWlyZW1lbnQudmVyaWZ5TWV0aG9kXG4gICAgfTtcbiAgfVxuICBsYXRlc3RSZXF1aXJlbWVudCA9IHt9O1xuICByZXR1cm4gcmVxdWlyZW1lbnRzW25hbWVdO1xufTtcbmNvbnN0IGdldFJlcXVpcmVtZW50cyA9ICgpID0+IHJlcXVpcmVtZW50cztcbmNvbnN0IHNldE5ld1JlcUlkID0gKGlkKSA9PiB7XG4gIGlmIChsYXRlc3RSZXF1aXJlbWVudCAhPT0gdm9pZCAwKSB7XG4gICAgbGF0ZXN0UmVxdWlyZW1lbnQuaWQgPSBpZDtcbiAgfVxufTtcbmNvbnN0IHNldE5ld1JlcVRleHQgPSAodGV4dCkgPT4ge1xuICBpZiAobGF0ZXN0UmVxdWlyZW1lbnQgIT09IHZvaWQgMCkge1xuICAgIGxhdGVzdFJlcXVpcmVtZW50LnRleHQgPSB0ZXh0O1xuICB9XG59O1xuY29uc3Qgc2V0TmV3UmVxUmlzayA9IChyaXNrKSA9PiB7XG4gIGlmIChsYXRlc3RSZXF1aXJlbWVudCAhPT0gdm9pZCAwKSB7XG4gICAgbGF0ZXN0UmVxdWlyZW1lbnQucmlzayA9IHJpc2s7XG4gIH1cbn07XG5jb25zdCBzZXROZXdSZXFWZXJpZnlNZXRob2QgPSAodmVyaWZ5TWV0aG9kKSA9PiB7XG4gIGlmIChsYXRlc3RSZXF1aXJlbWVudCAhPT0gdm9pZCAwKSB7XG4gICAgbGF0ZXN0UmVxdWlyZW1lbnQudmVyaWZ5TWV0aG9kID0gdmVyaWZ5TWV0aG9kO1xuICB9XG59O1xuY29uc3QgYWRkRWxlbWVudCA9IChuYW1lKSA9PiB7XG4gIGlmIChlbGVtZW50c1tuYW1lXSA9PT0gdm9pZCAwKSB7XG4gICAgZWxlbWVudHNbbmFtZV0gPSB7XG4gICAgICBuYW1lLFxuICAgICAgdHlwZTogbGF0ZXN0RWxlbWVudC50eXBlLFxuICAgICAgZG9jUmVmOiBsYXRlc3RFbGVtZW50LmRvY1JlZlxuICAgIH07XG4gICAgbG9nLmluZm8oXCJBZGRlZCBuZXcgcmVxdWlyZW1lbnQ6IFwiLCBuYW1lKTtcbiAgfVxuICBsYXRlc3RFbGVtZW50ID0ge307XG4gIHJldHVybiBlbGVtZW50c1tuYW1lXTtcbn07XG5jb25zdCBnZXRFbGVtZW50cyA9ICgpID0+IGVsZW1lbnRzO1xuY29uc3Qgc2V0TmV3RWxlbWVudFR5cGUgPSAodHlwZSkgPT4ge1xuICBpZiAobGF0ZXN0RWxlbWVudCAhPT0gdm9pZCAwKSB7XG4gICAgbGF0ZXN0RWxlbWVudC50eXBlID0gdHlwZTtcbiAgfVxufTtcbmNvbnN0IHNldE5ld0VsZW1lbnREb2NSZWYgPSAoZG9jUmVmKSA9PiB7XG4gIGlmIChsYXRlc3RFbGVtZW50ICE9PSB2b2lkIDApIHtcbiAgICBsYXRlc3RFbGVtZW50LmRvY1JlZiA9IGRvY1JlZjtcbiAgfVxufTtcbmNvbnN0IGFkZFJlbGF0aW9uc2hpcCA9ICh0eXBlLCBzcmMsIGRzdCkgPT4ge1xuICByZWxhdGlvbnMucHVzaCh7XG4gICAgdHlwZSxcbiAgICBzcmMsXG4gICAgZHN0XG4gIH0pO1xufTtcbmNvbnN0IGdldFJlbGF0aW9uc2hpcHMgPSAoKSA9PiByZWxhdGlvbnM7XG5jb25zdCBjbGVhciA9ICgpID0+IHtcbiAgcmVsYXRpb25zID0gW107XG4gIGxhdGVzdFJlcXVpcmVtZW50ID0ge307XG4gIHJlcXVpcmVtZW50cyA9IHt9O1xuICBsYXRlc3RFbGVtZW50ID0ge307XG4gIGVsZW1lbnRzID0ge307XG4gIGNsZWFyJDEoKTtcbn07XG5jb25zdCBkYiA9IHtcbiAgUmVxdWlyZW1lbnRUeXBlLFxuICBSaXNrTGV2ZWwsXG4gIFZlcmlmeVR5cGUsXG4gIFJlbGF0aW9uc2hpcHMsXG4gIGdldENvbmZpZzogKCkgPT4gZ2V0Q29uZmlnKCkucmVxLFxuICBhZGRSZXF1aXJlbWVudCxcbiAgZ2V0UmVxdWlyZW1lbnRzLFxuICBzZXROZXdSZXFJZCxcbiAgc2V0TmV3UmVxVGV4dCxcbiAgc2V0TmV3UmVxUmlzayxcbiAgc2V0TmV3UmVxVmVyaWZ5TWV0aG9kLFxuICBzZXRBY2NUaXRsZSxcbiAgZ2V0QWNjVGl0bGUsXG4gIHNldEFjY0Rlc2NyaXB0aW9uLFxuICBnZXRBY2NEZXNjcmlwdGlvbixcbiAgYWRkRWxlbWVudCxcbiAgZ2V0RWxlbWVudHMsXG4gIHNldE5ld0VsZW1lbnRUeXBlLFxuICBzZXROZXdFbGVtZW50RG9jUmVmLFxuICBhZGRSZWxhdGlvbnNoaXAsXG4gIGdldFJlbGF0aW9uc2hpcHMsXG4gIGNsZWFyXG59O1xuY29uc3QgZ2V0U3R5bGVzID0gKG9wdGlvbnMpID0+IGBcblxuICBtYXJrZXIge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5yZWxhdGlvbkNvbG9yfTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5yZWxhdGlvbkNvbG9yfTtcbiAgfVxuXG4gIG1hcmtlci5jcm9zcyB7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfTtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgZm9udC1mYW1pbHk6ICR7b3B0aW9ucy5mb250RmFtaWx5fTtcbiAgICBmb250LXNpemU6ICR7b3B0aW9ucy5mb250U2l6ZX07XG4gIH1cblxuICAucmVxQm94IHtcbiAgICBmaWxsOiAke29wdGlvbnMucmVxdWlyZW1lbnRCYWNrZ3JvdW5kfTtcbiAgICBmaWxsLW9wYWNpdHk6IDEuMDtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5yZXF1aXJlbWVudEJvcmRlckNvbG9yfTtcbiAgICBzdHJva2Utd2lkdGg6ICR7b3B0aW9ucy5yZXF1aXJlbWVudEJvcmRlclNpemV9O1xuICB9XG4gIFxuICAucmVxVGl0bGUsIC5yZXFMYWJlbHtcbiAgICBmaWxsOiAgJHtvcHRpb25zLnJlcXVpcmVtZW50VGV4dENvbG9yfTtcbiAgfVxuICAucmVxTGFiZWxCb3gge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5yZWxhdGlvbkxhYmVsQmFja2dyb3VuZH07XG4gICAgZmlsbC1vcGFjaXR5OiAxLjA7XG4gIH1cblxuICAucmVxLXRpdGxlLWxpbmUge1xuICAgIHN0cm9rZTogJHtvcHRpb25zLnJlcXVpcmVtZW50Qm9yZGVyQ29sb3J9O1xuICAgIHN0cm9rZS13aWR0aDogJHtvcHRpb25zLnJlcXVpcmVtZW50Qm9yZGVyU2l6ZX07XG4gIH1cbiAgLnJlbGF0aW9uc2hpcExpbmUge1xuICAgIHN0cm9rZTogJHtvcHRpb25zLnJlbGF0aW9uQ29sb3J9O1xuICAgIHN0cm9rZS13aWR0aDogMTtcbiAgfVxuICAucmVsYXRpb25zaGlwTGFiZWwge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5yZWxhdGlvbkxhYmVsQ29sb3J9O1xuICB9XG5cbmA7XG5jb25zdCBzdHlsZXMgPSBnZXRTdHlsZXM7XG5jb25zdCBSZXFNYXJrZXJzID0ge1xuICBDT05UQUlOUzogXCJjb250YWluc1wiLFxuICBBUlJPVzogXCJhcnJvd1wiXG59O1xuY29uc3QgaW5zZXJ0TGluZUVuZGluZ3MgPSAocGFyZW50Tm9kZSwgY29uZjIpID0+IHtcbiAgbGV0IGNvbnRhaW5zTm9kZSA9IHBhcmVudE5vZGUuYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIFJlcU1hcmtlcnMuQ09OVEFJTlMgKyBcIl9saW5lX2VuZGluZ1wiKS5hdHRyKFwicmVmWFwiLCAwKS5hdHRyKFwicmVmWVwiLCBjb25mMi5saW5lX2hlaWdodCAvIDIpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCBjb25mMi5saW5lX2hlaWdodCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCBjb25mMi5saW5lX2hlaWdodCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwiZ1wiKTtcbiAgY29udGFpbnNOb2RlLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwiY3hcIiwgY29uZjIubGluZV9oZWlnaHQgLyAyKS5hdHRyKFwiY3lcIiwgY29uZjIubGluZV9oZWlnaHQgLyAyKS5hdHRyKFwiclwiLCBjb25mMi5saW5lX2hlaWdodCAvIDIpLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKTtcbiAgY29udGFpbnNOb2RlLmFwcGVuZChcImxpbmVcIikuYXR0cihcIngxXCIsIDApLmF0dHIoXCJ4MlwiLCBjb25mMi5saW5lX2hlaWdodCkuYXR0cihcInkxXCIsIGNvbmYyLmxpbmVfaGVpZ2h0IC8gMikuYXR0cihcInkyXCIsIGNvbmYyLmxpbmVfaGVpZ2h0IC8gMikuYXR0cihcInN0cm9rZS13aWR0aFwiLCAxKTtcbiAgY29udGFpbnNOb2RlLmFwcGVuZChcImxpbmVcIikuYXR0cihcInkxXCIsIDApLmF0dHIoXCJ5MlwiLCBjb25mMi5saW5lX2hlaWdodCkuYXR0cihcIngxXCIsIGNvbmYyLmxpbmVfaGVpZ2h0IC8gMikuYXR0cihcIngyXCIsIGNvbmYyLmxpbmVfaGVpZ2h0IC8gMikuYXR0cihcInN0cm9rZS13aWR0aFwiLCAxKTtcbiAgcGFyZW50Tm9kZS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgUmVxTWFya2Vycy5BUlJPVyArIFwiX2xpbmVfZW5kaW5nXCIpLmF0dHIoXCJyZWZYXCIsIGNvbmYyLmxpbmVfaGVpZ2h0KS5hdHRyKFwicmVmWVwiLCAwLjUgKiBjb25mMi5saW5lX2hlaWdodCkuYXR0cihcIm1hcmtlcldpZHRoXCIsIGNvbmYyLmxpbmVfaGVpZ2h0KS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIGNvbmYyLmxpbmVfaGVpZ2h0KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXG4gICAgXCJkXCIsXG4gICAgYE0wLDBcbiAgICAgIEwke2NvbmYyLmxpbmVfaGVpZ2h0fSwke2NvbmYyLmxpbmVfaGVpZ2h0IC8gMn1cbiAgICAgIE0ke2NvbmYyLmxpbmVfaGVpZ2h0fSwke2NvbmYyLmxpbmVfaGVpZ2h0IC8gMn1cbiAgICAgIEwwLCR7Y29uZjIubGluZV9oZWlnaHR9YFxuICApLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgMSk7XG59O1xuY29uc3QgbWFya2VycyA9IHtcbiAgUmVxTWFya2VycyxcbiAgaW5zZXJ0TGluZUVuZGluZ3Ncbn07XG5sZXQgY29uZiA9IHt9O1xubGV0IHJlbENudCA9IDA7XG5jb25zdCBuZXdSZWN0Tm9kZSA9IChwYXJlbnROb2RlLCBpZCkgPT4ge1xuICByZXR1cm4gcGFyZW50Tm9kZS5pbnNlcnQoXCJyZWN0XCIsIFwiI1wiICsgaWQpLmF0dHIoXCJjbGFzc1wiLCBcInJlcSByZXFCb3hcIikuYXR0cihcInhcIiwgMCkuYXR0cihcInlcIiwgMCkuYXR0cihcIndpZHRoXCIsIGNvbmYucmVjdF9taW5fd2lkdGggKyBcInB4XCIpLmF0dHIoXCJoZWlnaHRcIiwgY29uZi5yZWN0X21pbl9oZWlnaHQgKyBcInB4XCIpO1xufTtcbmNvbnN0IG5ld1RpdGxlTm9kZSA9IChwYXJlbnROb2RlLCBpZCwgdHh0cykgPT4ge1xuICBsZXQgeCA9IGNvbmYucmVjdF9taW5fd2lkdGggLyAyO1xuICBsZXQgdGl0bGUgPSBwYXJlbnROb2RlLmFwcGVuZChcInRleHRcIikuYXR0cihcImNsYXNzXCIsIFwicmVxIHJlcUxhYmVsIHJlcVRpdGxlXCIpLmF0dHIoXCJpZFwiLCBpZCkuYXR0cihcInhcIiwgeCkuYXR0cihcInlcIiwgY29uZi5yZWN0X3BhZGRpbmcpLmF0dHIoXCJkb21pbmFudC1iYXNlbGluZVwiLCBcImhhbmdpbmdcIik7XG4gIGxldCBpID0gMDtcbiAgdHh0cy5mb3JFYWNoKCh0ZXh0U3RyKSA9PiB7XG4gICAgaWYgKGkgPT0gMCkge1xuICAgICAgdGl0bGUuYXBwZW5kKFwidHNwYW5cIikuYXR0cihcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpLmF0dHIoXCJ4XCIsIGNvbmYucmVjdF9taW5fd2lkdGggLyAyKS5hdHRyKFwiZHlcIiwgMCkudGV4dCh0ZXh0U3RyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGl0bGUuYXBwZW5kKFwidHNwYW5cIikuYXR0cihcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpLmF0dHIoXCJ4XCIsIGNvbmYucmVjdF9taW5fd2lkdGggLyAyKS5hdHRyKFwiZHlcIiwgY29uZi5saW5lX2hlaWdodCAqIDAuNzUpLnRleHQodGV4dFN0cik7XG4gICAgfVxuICAgIGkrKztcbiAgfSk7XG4gIGxldCB5UGFkZGluZyA9IDEuNSAqIGNvbmYucmVjdF9wYWRkaW5nO1xuICBsZXQgbGluZVBhZGRpbmcgPSBpICogY29uZi5saW5lX2hlaWdodCAqIDAuNzU7XG4gIGxldCB0b3RhbFkgPSB5UGFkZGluZyArIGxpbmVQYWRkaW5nO1xuICBwYXJlbnROb2RlLmFwcGVuZChcImxpbmVcIikuYXR0cihcImNsYXNzXCIsIFwicmVxLXRpdGxlLWxpbmVcIikuYXR0cihcIngxXCIsIFwiMFwiKS5hdHRyKFwieDJcIiwgY29uZi5yZWN0X21pbl93aWR0aCkuYXR0cihcInkxXCIsIHRvdGFsWSkuYXR0cihcInkyXCIsIHRvdGFsWSk7XG4gIHJldHVybiB7XG4gICAgdGl0bGVOb2RlOiB0aXRsZSxcbiAgICB5OiB0b3RhbFlcbiAgfTtcbn07XG5jb25zdCBuZXdCb2R5Tm9kZSA9IChwYXJlbnROb2RlLCBpZCwgdHh0cywgeVN0YXJ0KSA9PiB7XG4gIGxldCBib2R5ID0gcGFyZW50Tm9kZS5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJjbGFzc1wiLCBcInJlcSByZXFMYWJlbFwiKS5hdHRyKFwiaWRcIiwgaWQpLmF0dHIoXCJ4XCIsIGNvbmYucmVjdF9wYWRkaW5nKS5hdHRyKFwieVwiLCB5U3RhcnQpLmF0dHIoXCJkb21pbmFudC1iYXNlbGluZVwiLCBcImhhbmdpbmdcIik7XG4gIGxldCBjdXJyZW50Um93ID0gMDtcbiAgY29uc3QgY2hhckxpbWl0ID0gMzA7XG4gIGxldCB3cmFwcGVkVHh0cyA9IFtdO1xuICB0eHRzLmZvckVhY2goKHRleHRTdHIpID0+IHtcbiAgICBsZXQgY3VycmVudFRleHRMZW4gPSB0ZXh0U3RyLmxlbmd0aDtcbiAgICB3aGlsZSAoY3VycmVudFRleHRMZW4gPiBjaGFyTGltaXQgJiYgY3VycmVudFJvdyA8IDMpIHtcbiAgICAgIGxldCBmaXJzdFBhcnQgPSB0ZXh0U3RyLnN1YnN0cmluZygwLCBjaGFyTGltaXQpO1xuICAgICAgdGV4dFN0ciA9IHRleHRTdHIuc3Vic3RyaW5nKGNoYXJMaW1pdCwgdGV4dFN0ci5sZW5ndGgpO1xuICAgICAgY3VycmVudFRleHRMZW4gPSB0ZXh0U3RyLmxlbmd0aDtcbiAgICAgIHdyYXBwZWRUeHRzW3dyYXBwZWRUeHRzLmxlbmd0aF0gPSBmaXJzdFBhcnQ7XG4gICAgICBjdXJyZW50Um93Kys7XG4gICAgfVxuICAgIGlmIChjdXJyZW50Um93ID09IDMpIHtcbiAgICAgIGxldCBsYXN0U3RyID0gd3JhcHBlZFR4dHNbd3JhcHBlZFR4dHMubGVuZ3RoIC0gMV07XG4gICAgICB3cmFwcGVkVHh0c1t3cmFwcGVkVHh0cy5sZW5ndGggLSAxXSA9IGxhc3RTdHIuc3Vic3RyaW5nKDAsIGxhc3RTdHIubGVuZ3RoIC0gNCkgKyBcIi4uLlwiO1xuICAgIH0gZWxzZSB7XG4gICAgICB3cmFwcGVkVHh0c1t3cmFwcGVkVHh0cy5sZW5ndGhdID0gdGV4dFN0cjtcbiAgICB9XG4gICAgY3VycmVudFJvdyA9IDA7XG4gIH0pO1xuICB3cmFwcGVkVHh0cy5mb3JFYWNoKCh0ZXh0U3RyKSA9PiB7XG4gICAgYm9keS5hcHBlbmQoXCJ0c3BhblwiKS5hdHRyKFwieFwiLCBjb25mLnJlY3RfcGFkZGluZykuYXR0cihcImR5XCIsIGNvbmYubGluZV9oZWlnaHQpLnRleHQodGV4dFN0cik7XG4gIH0pO1xuICByZXR1cm4gYm9keTtcbn07XG5jb25zdCBhZGRFZGdlTGFiZWwgPSAocGFyZW50Tm9kZSwgc3ZnUGF0aCwgY29uZjIsIHR4dCkgPT4ge1xuICBjb25zdCBsZW4gPSBzdmdQYXRoLm5vZGUoKS5nZXRUb3RhbExlbmd0aCgpO1xuICBjb25zdCBsYWJlbFBvaW50ID0gc3ZnUGF0aC5ub2RlKCkuZ2V0UG9pbnRBdExlbmd0aChsZW4gKiAwLjUpO1xuICBjb25zdCBsYWJlbElkID0gXCJyZWxcIiArIHJlbENudDtcbiAgcmVsQ250Kys7XG4gIGNvbnN0IGxhYmVsTm9kZSA9IHBhcmVudE5vZGUuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJyZXEgcmVsYXRpb25zaGlwTGFiZWxcIikuYXR0cihcImlkXCIsIGxhYmVsSWQpLmF0dHIoXCJ4XCIsIGxhYmVsUG9pbnQueCkuYXR0cihcInlcIiwgbGFiZWxQb2ludC55KS5hdHRyKFwidGV4dC1hbmNob3JcIiwgXCJtaWRkbGVcIikuYXR0cihcImRvbWluYW50LWJhc2VsaW5lXCIsIFwibWlkZGxlXCIpLnRleHQodHh0KTtcbiAgY29uc3QgbGFiZWxCQm94ID0gbGFiZWxOb2RlLm5vZGUoKS5nZXRCQm94KCk7XG4gIHBhcmVudE5vZGUuaW5zZXJ0KFwicmVjdFwiLCBcIiNcIiArIGxhYmVsSWQpLmF0dHIoXCJjbGFzc1wiLCBcInJlcSByZXFMYWJlbEJveFwiKS5hdHRyKFwieFwiLCBsYWJlbFBvaW50LnggLSBsYWJlbEJCb3gud2lkdGggLyAyKS5hdHRyKFwieVwiLCBsYWJlbFBvaW50LnkgLSBsYWJlbEJCb3guaGVpZ2h0IC8gMikuYXR0cihcIndpZHRoXCIsIGxhYmVsQkJveC53aWR0aCkuYXR0cihcImhlaWdodFwiLCBsYWJlbEJCb3guaGVpZ2h0KS5hdHRyKFwiZmlsbFwiLCBcIndoaXRlXCIpLmF0dHIoXCJmaWxsLW9wYWNpdHlcIiwgXCI4NSVcIik7XG59O1xuY29uc3QgZHJhd1JlbGF0aW9uc2hpcEZyb21MYXlvdXQgPSBmdW5jdGlvbihzdmcsIHJlbCwgZywgaW5zZXJ0LCBkaWFnT2JqKSB7XG4gIGNvbnN0IGVkZ2UgPSBnLmVkZ2UoZWxlbWVudFN0cmluZyhyZWwuc3JjKSwgZWxlbWVudFN0cmluZyhyZWwuZHN0KSk7XG4gIGNvbnN0IGxpbmVGdW5jdGlvbiA9IGxpbmUoKS54KGZ1bmN0aW9uKGQpIHtcbiAgICByZXR1cm4gZC54O1xuICB9KS55KGZ1bmN0aW9uKGQpIHtcbiAgICByZXR1cm4gZC55O1xuICB9KTtcbiAgY29uc3Qgc3ZnUGF0aCA9IHN2Zy5pbnNlcnQoXCJwYXRoXCIsIFwiI1wiICsgaW5zZXJ0KS5hdHRyKFwiY2xhc3NcIiwgXCJlciByZWxhdGlvbnNoaXBMaW5lXCIpLmF0dHIoXCJkXCIsIGxpbmVGdW5jdGlvbihlZGdlLnBvaW50cykpLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKTtcbiAgaWYgKHJlbC50eXBlID09IGRpYWdPYmouZGIuUmVsYXRpb25zaGlwcy5DT05UQUlOUykge1xuICAgIHN2Z1BhdGguYXR0cihcbiAgICAgIFwibWFya2VyLXN0YXJ0XCIsXG4gICAgICBcInVybChcIiArIGNvbW1vbi5nZXRVcmwoY29uZi5hcnJvd01hcmtlckFic29sdXRlKSArIFwiI1wiICsgcmVsLnR5cGUgKyBcIl9saW5lX2VuZGluZylcIlxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgc3ZnUGF0aC5hdHRyKFwic3Ryb2tlLWRhc2hhcnJheVwiLCBcIjEwLDdcIik7XG4gICAgc3ZnUGF0aC5hdHRyKFxuICAgICAgXCJtYXJrZXItZW5kXCIsXG4gICAgICBcInVybChcIiArIGNvbW1vbi5nZXRVcmwoY29uZi5hcnJvd01hcmtlckFic29sdXRlKSArIFwiI1wiICsgbWFya2Vycy5SZXFNYXJrZXJzLkFSUk9XICsgXCJfbGluZV9lbmRpbmcpXCJcbiAgICApO1xuICB9XG4gIGFkZEVkZ2VMYWJlbChzdmcsIHN2Z1BhdGgsIGNvbmYsIGA8PCR7cmVsLnR5cGV9Pj5gKTtcbiAgcmV0dXJuO1xufTtcbmNvbnN0IGRyYXdSZXFzID0gKHJlcXMsIGdyYXBoLCBzdmdOb2RlKSA9PiB7XG4gIE9iamVjdC5rZXlzKHJlcXMpLmZvckVhY2goKHJlcU5hbWUpID0+IHtcbiAgICBsZXQgcmVxID0gcmVxc1tyZXFOYW1lXTtcbiAgICByZXFOYW1lID0gZWxlbWVudFN0cmluZyhyZXFOYW1lKTtcbiAgICBsb2cuaW5mbyhcIkFkZGVkIG5ldyByZXF1aXJlbWVudDogXCIsIHJlcU5hbWUpO1xuICAgIGNvbnN0IGdyb3VwTm9kZSA9IHN2Z05vZGUuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiaWRcIiwgcmVxTmFtZSk7XG4gICAgY29uc3QgdGV4dElkID0gXCJyZXEtXCIgKyByZXFOYW1lO1xuICAgIGNvbnN0IHJlY3ROb2RlID0gbmV3UmVjdE5vZGUoZ3JvdXBOb2RlLCB0ZXh0SWQpO1xuICAgIGxldCB0aXRsZU5vZGVJbmZvID0gbmV3VGl0bGVOb2RlKGdyb3VwTm9kZSwgcmVxTmFtZSArIFwiX3RpdGxlXCIsIFtcbiAgICAgIGA8PCR7cmVxLnR5cGV9Pj5gLFxuICAgICAgYCR7cmVxLm5hbWV9YFxuICAgIF0pO1xuICAgIG5ld0JvZHlOb2RlKFxuICAgICAgZ3JvdXBOb2RlLFxuICAgICAgcmVxTmFtZSArIFwiX2JvZHlcIixcbiAgICAgIFtcbiAgICAgICAgYElkOiAke3JlcS5pZH1gLFxuICAgICAgICBgVGV4dDogJHtyZXEudGV4dH1gLFxuICAgICAgICBgUmlzazogJHtyZXEucmlza31gLFxuICAgICAgICBgVmVyaWZpY2F0aW9uOiAke3JlcS52ZXJpZnlNZXRob2R9YFxuICAgICAgXSxcbiAgICAgIHRpdGxlTm9kZUluZm8ueVxuICAgICk7XG4gICAgY29uc3QgcmVjdEJCb3ggPSByZWN0Tm9kZS5ub2RlKCkuZ2V0QkJveCgpO1xuICAgIGdyYXBoLnNldE5vZGUocmVxTmFtZSwge1xuICAgICAgd2lkdGg6IHJlY3RCQm94LndpZHRoLFxuICAgICAgaGVpZ2h0OiByZWN0QkJveC5oZWlnaHQsXG4gICAgICBzaGFwZTogXCJyZWN0XCIsXG4gICAgICBpZDogcmVxTmFtZVxuICAgIH0pO1xuICB9KTtcbn07XG5jb25zdCBkcmF3RWxlbWVudHMgPSAoZWxzLCBncmFwaCwgc3ZnTm9kZSkgPT4ge1xuICBPYmplY3Qua2V5cyhlbHMpLmZvckVhY2goKGVsTmFtZSkgPT4ge1xuICAgIGxldCBlbCA9IGVsc1tlbE5hbWVdO1xuICAgIGNvbnN0IGlkID0gZWxlbWVudFN0cmluZyhlbE5hbWUpO1xuICAgIGNvbnN0IGdyb3VwTm9kZSA9IHN2Z05vZGUuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiaWRcIiwgaWQpO1xuICAgIGNvbnN0IHRleHRJZCA9IFwiZWxlbWVudC1cIiArIGlkO1xuICAgIGNvbnN0IHJlY3ROb2RlID0gbmV3UmVjdE5vZGUoZ3JvdXBOb2RlLCB0ZXh0SWQpO1xuICAgIGxldCB0aXRsZU5vZGVJbmZvID0gbmV3VGl0bGVOb2RlKGdyb3VwTm9kZSwgdGV4dElkICsgXCJfdGl0bGVcIiwgW2A8PEVsZW1lbnQ+PmAsIGAke2VsTmFtZX1gXSk7XG4gICAgbmV3Qm9keU5vZGUoXG4gICAgICBncm91cE5vZGUsXG4gICAgICB0ZXh0SWQgKyBcIl9ib2R5XCIsXG4gICAgICBbYFR5cGU6ICR7ZWwudHlwZSB8fCBcIk5vdCBTcGVjaWZpZWRcIn1gLCBgRG9jIFJlZjogJHtlbC5kb2NSZWYgfHwgXCJOb25lXCJ9YF0sXG4gICAgICB0aXRsZU5vZGVJbmZvLnlcbiAgICApO1xuICAgIGNvbnN0IHJlY3RCQm94ID0gcmVjdE5vZGUubm9kZSgpLmdldEJCb3goKTtcbiAgICBncmFwaC5zZXROb2RlKGlkLCB7XG4gICAgICB3aWR0aDogcmVjdEJCb3gud2lkdGgsXG4gICAgICBoZWlnaHQ6IHJlY3RCQm94LmhlaWdodCxcbiAgICAgIHNoYXBlOiBcInJlY3RcIixcbiAgICAgIGlkXG4gICAgfSk7XG4gIH0pO1xufTtcbmNvbnN0IGFkZFJlbGF0aW9uc2hpcHMgPSAocmVsYXRpb25zaGlwcywgZykgPT4ge1xuICByZWxhdGlvbnNoaXBzLmZvckVhY2goZnVuY3Rpb24ocikge1xuICAgIGxldCBzcmMgPSBlbGVtZW50U3RyaW5nKHIuc3JjKTtcbiAgICBsZXQgZHN0ID0gZWxlbWVudFN0cmluZyhyLmRzdCk7XG4gICAgZy5zZXRFZGdlKHNyYywgZHN0LCB7IHJlbGF0aW9uc2hpcDogciB9KTtcbiAgfSk7XG4gIHJldHVybiByZWxhdGlvbnNoaXBzO1xufTtcbmNvbnN0IGFkanVzdEVudGl0aWVzID0gZnVuY3Rpb24oc3ZnTm9kZSwgZ3JhcGgpIHtcbiAgZ3JhcGgubm9kZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICBpZiAodiAhPT0gdm9pZCAwICYmIGdyYXBoLm5vZGUodikgIT09IHZvaWQgMCkge1xuICAgICAgc3ZnTm9kZS5zZWxlY3QoXCIjXCIgKyB2KTtcbiAgICAgIHN2Z05vZGUuc2VsZWN0KFwiI1wiICsgdikuYXR0cihcbiAgICAgICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAgICAgXCJ0cmFuc2xhdGUoXCIgKyAoZ3JhcGgubm9kZSh2KS54IC0gZ3JhcGgubm9kZSh2KS53aWR0aCAvIDIpICsgXCIsXCIgKyAoZ3JhcGgubm9kZSh2KS55IC0gZ3JhcGgubm9kZSh2KS5oZWlnaHQgLyAyKSArIFwiIClcIlxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm47XG59O1xuY29uc3QgZWxlbWVudFN0cmluZyA9IChzdHIpID0+IHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXHMvZywgXCJcIikucmVwbGFjZSgvXFwuL2csIFwiX1wiKTtcbn07XG5jb25zdCBkcmF3ID0gKHRleHQsIGlkLCBfdmVyc2lvbiwgZGlhZ09iaikgPT4ge1xuICBjb25mID0gZ2V0Q29uZmlnKCkucmVxdWlyZW1lbnQ7XG4gIGNvbnN0IHNlY3VyaXR5TGV2ZWwgPSBjb25mLnNlY3VyaXR5TGV2ZWw7XG4gIGxldCBzYW5kYm94RWxlbWVudDtcbiAgaWYgKHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiKSB7XG4gICAgc2FuZGJveEVsZW1lbnQgPSBzZWxlY3QoXCIjaVwiICsgaWQpO1xuICB9XG4gIGNvbnN0IHJvb3QgPSBzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIiA/IHNlbGVjdChzYW5kYm94RWxlbWVudC5ub2RlcygpWzBdLmNvbnRlbnREb2N1bWVudC5ib2R5KSA6IHNlbGVjdChcImJvZHlcIik7XG4gIGNvbnN0IHN2ZyA9IHJvb3Quc2VsZWN0KGBbaWQ9JyR7aWR9J11gKTtcbiAgbWFya2Vycy5pbnNlcnRMaW5lRW5kaW5ncyhzdmcsIGNvbmYpO1xuICBjb25zdCBnID0gbmV3IGdyYXBobGliLkdyYXBoKHtcbiAgICBtdWx0aWdyYXBoOiBmYWxzZSxcbiAgICBjb21wb3VuZDogZmFsc2UsXG4gICAgZGlyZWN0ZWQ6IHRydWVcbiAgfSkuc2V0R3JhcGgoe1xuICAgIHJhbmtkaXI6IGNvbmYubGF5b3V0RGlyZWN0aW9uLFxuICAgIG1hcmdpbng6IDIwLFxuICAgIG1hcmdpbnk6IDIwLFxuICAgIG5vZGVzZXA6IDEwMCxcbiAgICBlZGdlc2VwOiAxMDAsXG4gICAgcmFua3NlcDogMTAwXG4gIH0pLnNldERlZmF1bHRFZGdlTGFiZWwoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9KTtcbiAgbGV0IHJlcXVpcmVtZW50czIgPSBkaWFnT2JqLmRiLmdldFJlcXVpcmVtZW50cygpO1xuICBsZXQgZWxlbWVudHMyID0gZGlhZ09iai5kYi5nZXRFbGVtZW50cygpO1xuICBsZXQgcmVsYXRpb25zaGlwcyA9IGRpYWdPYmouZGIuZ2V0UmVsYXRpb25zaGlwcygpO1xuICBkcmF3UmVxcyhyZXF1aXJlbWVudHMyLCBnLCBzdmcpO1xuICBkcmF3RWxlbWVudHMoZWxlbWVudHMyLCBnLCBzdmcpO1xuICBhZGRSZWxhdGlvbnNoaXBzKHJlbGF0aW9uc2hpcHMsIGcpO1xuICBsYXlvdXQoZyk7XG4gIGFkanVzdEVudGl0aWVzKHN2ZywgZyk7XG4gIHJlbGF0aW9uc2hpcHMuZm9yRWFjaChmdW5jdGlvbihyZWwpIHtcbiAgICBkcmF3UmVsYXRpb25zaGlwRnJvbUxheW91dChzdmcsIHJlbCwgZywgaWQsIGRpYWdPYmopO1xuICB9KTtcbiAgY29uc3QgcGFkZGluZyA9IGNvbmYucmVjdF9wYWRkaW5nO1xuICBjb25zdCBzdmdCb3VuZHMgPSBzdmcubm9kZSgpLmdldEJCb3goKTtcbiAgY29uc3Qgd2lkdGggPSBzdmdCb3VuZHMud2lkdGggKyBwYWRkaW5nICogMjtcbiAgY29uc3QgaGVpZ2h0ID0gc3ZnQm91bmRzLmhlaWdodCArIHBhZGRpbmcgKiAyO1xuICBjb25maWd1cmVTdmdTaXplKHN2ZywgaGVpZ2h0LCB3aWR0aCwgY29uZi51c2VNYXhXaWR0aCk7XG4gIHN2Zy5hdHRyKFwidmlld0JveFwiLCBgJHtzdmdCb3VuZHMueCAtIHBhZGRpbmd9ICR7c3ZnQm91bmRzLnkgLSBwYWRkaW5nfSAke3dpZHRofSAke2hlaWdodH1gKTtcbn07XG5jb25zdCByZW5kZXJlciA9IHtcbiAgZHJhd1xufTtcbmNvbnN0IGRpYWdyYW0gPSB7XG4gIHBhcnNlcjogcGFyc2VyJDEsXG4gIGRiLFxuICByZW5kZXJlcixcbiAgc3R5bGVzXG59O1xuZXhwb3J0IHtcbiAgZGlhZ3JhbVxufTtcbiIsCiAgICAiaW1wb3J0IHsgZyBhcyBnZXRBY2NUaXRsZSwgdCBhcyBnZXREaWFncmFtVGl0bGUsIHEgYXMgc2V0RGlhZ3JhbVRpdGxlLCBjIGFzIGdldENvbmZpZywgcyBhcyBzZXRBY2NUaXRsZSwgYiBhcyBzZXRBY2NEZXNjcmlwdGlvbiwgYSBhcyBnZXRBY2NEZXNjcmlwdGlvbiwgdiBhcyBjbGVhciQxLCBsIGFzIGxvZywgZCBhcyBzYW5pdGl6ZVRleHQsIGUgYXMgY29tbW9uLCBEIGFzIHBhcnNlRm9udFNpemUsIEcgYXMgaGFzS2F0ZXgsIHIgYXMgcmVuZGVyS2F0ZXgsIEYgYXMgZ2V0Q29uZmlnJDEsIFogYXMgWkVST19XSURUSF9TUEFDRSwgSCBhcyBjYWxjdWxhdGVNYXRoTUxEaW1lbnNpb25zLCBmIGFzIGFzc2lnbldpdGhEZXB0aCwgaSBhcyBjb25maWd1cmVTdmdTaXplLCB1IGFzIHV0aWxzIH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0IH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgeyBkIGFzIGRyYXdSZWN0JDEsIGEgYXMgZHJhd0JhY2tncm91bmRSZWN0JDEsIGIgYXMgZHJhd0VtYmVkZGVkSW1hZ2UsIGMgYXMgZHJhd0ltYWdlLCBlIGFzIGdldFRleHRPYmokMSwgZyBhcyBnZXROb3RlUmVjdCQxIH0gZnJvbSBcIi4vc3ZnRHJhd0NvbW1vbi01ZTFjZmQxZC5qc1wiO1xuaW1wb3J0IHsgc2FuaXRpemVVcmwgfSBmcm9tIFwiQGJyYWludHJlZS9zYW5pdGl6ZS11cmxcIjtcbmltcG9ydCBcInRzLWRlZGVudFwiO1xuaW1wb3J0IFwiZGF5anNcIjtcbmltcG9ydCBcImRvbXB1cmlmeVwiO1xuaW1wb3J0IFwia2hyb21hXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lcmdlLmpzXCI7XG5pbXBvcnQgXCJzdHlsaXNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9pc0VtcHR5LmpzXCI7XG52YXIgcGFyc2VyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBvID0gZnVuY3Rpb24oaywgdiwgbzIsIGwpIHtcbiAgICBmb3IgKG8yID0gbzIgfHwge30sIGwgPSBrLmxlbmd0aDsgbC0tOyBvMltrW2xdXSA9IHYpXG4gICAgICA7XG4gICAgcmV0dXJuIG8yO1xuICB9LCAkVjAgPSBbMSwgMl0sICRWMSA9IFsxLCAzXSwgJFYyID0gWzEsIDRdLCAkVjMgPSBbMiwgNF0sICRWNCA9IFsxLCA5XSwgJFY1ID0gWzEsIDExXSwgJFY2ID0gWzEsIDEzXSwgJFY3ID0gWzEsIDE0XSwgJFY4ID0gWzEsIDE2XSwgJFY5ID0gWzEsIDE3XSwgJFZhID0gWzEsIDE4XSwgJFZiID0gWzEsIDI0XSwgJFZjID0gWzEsIDI1XSwgJFZkID0gWzEsIDI2XSwgJFZlID0gWzEsIDI3XSwgJFZmID0gWzEsIDI4XSwgJFZnID0gWzEsIDI5XSwgJFZoID0gWzEsIDMwXSwgJFZpID0gWzEsIDMxXSwgJFZqID0gWzEsIDMyXSwgJFZrID0gWzEsIDMzXSwgJFZsID0gWzEsIDM0XSwgJFZtID0gWzEsIDM1XSwgJFZuID0gWzEsIDM2XSwgJFZvID0gWzEsIDM3XSwgJFZwID0gWzEsIDM4XSwgJFZxID0gWzEsIDM5XSwgJFZyID0gWzEsIDQxXSwgJFZzID0gWzEsIDQyXSwgJFZ0ID0gWzEsIDQzXSwgJFZ1ID0gWzEsIDQ0XSwgJFZ2ID0gWzEsIDQ1XSwgJFZ3ID0gWzEsIDQ2XSwgJFZ4ID0gWzEsIDQsIDUsIDEzLCAxNCwgMTYsIDE4LCAyMSwgMjMsIDI5LCAzMCwgMzEsIDMzLCAzNSwgMzYsIDM3LCAzOCwgMzksIDQxLCA0MywgNDQsIDQ2LCA0NywgNDgsIDQ5LCA1MCwgNTIsIDUzLCA1NCwgNTksIDYwLCA2MSwgNjIsIDcwXSwgJFZ5ID0gWzQsIDUsIDE2LCA1MCwgNTIsIDUzXSwgJFZ6ID0gWzQsIDUsIDEzLCAxNCwgMTYsIDE4LCAyMSwgMjMsIDI5LCAzMCwgMzEsIDMzLCAzNSwgMzYsIDM3LCAzOCwgMzksIDQxLCA0MywgNDQsIDQ2LCA1MCwgNTIsIDUzLCA1NCwgNTksIDYwLCA2MSwgNjIsIDcwXSwgJFZBID0gWzQsIDUsIDEzLCAxNCwgMTYsIDE4LCAyMSwgMjMsIDI5LCAzMCwgMzEsIDMzLCAzNSwgMzYsIDM3LCAzOCwgMzksIDQxLCA0MywgNDQsIDQ2LCA0OSwgNTAsIDUyLCA1MywgNTQsIDU5LCA2MCwgNjEsIDYyLCA3MF0sICRWQiA9IFs0LCA1LCAxMywgMTQsIDE2LCAxOCwgMjEsIDIzLCAyOSwgMzAsIDMxLCAzMywgMzUsIDM2LCAzNywgMzgsIDM5LCA0MSwgNDMsIDQ0LCA0NiwgNDgsIDUwLCA1MiwgNTMsIDU0LCA1OSwgNjAsIDYxLCA2MiwgNzBdLCAkVkMgPSBbNCwgNSwgMTMsIDE0LCAxNiwgMTgsIDIxLCAyMywgMjksIDMwLCAzMSwgMzMsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDEsIDQzLCA0NCwgNDYsIDQ3LCA1MCwgNTIsIDUzLCA1NCwgNTksIDYwLCA2MSwgNjIsIDcwXSwgJFZEID0gWzY4LCA2OSwgNzBdLCAkVkUgPSBbMSwgMTIwXTtcbiAgdmFyIHBhcnNlcjIgPSB7XG4gICAgdHJhY2U6IGZ1bmN0aW9uIHRyYWNlKCkge1xuICAgIH0sXG4gICAgeXk6IHt9LFxuICAgIHN5bWJvbHNfOiB7IFwiZXJyb3JcIjogMiwgXCJzdGFydFwiOiAzLCBcIlNQQUNFXCI6IDQsIFwiTkVXTElORVwiOiA1LCBcIlNEXCI6IDYsIFwiZG9jdW1lbnRcIjogNywgXCJsaW5lXCI6IDgsIFwic3RhdGVtZW50XCI6IDksIFwiYm94X3NlY3Rpb25cIjogMTAsIFwiYm94X2xpbmVcIjogMTEsIFwicGFydGljaXBhbnRfc3RhdGVtZW50XCI6IDEyLCBcImNyZWF0ZVwiOiAxMywgXCJib3hcIjogMTQsIFwicmVzdE9mTGluZVwiOiAxNSwgXCJlbmRcIjogMTYsIFwic2lnbmFsXCI6IDE3LCBcImF1dG9udW1iZXJcIjogMTgsIFwiTlVNXCI6IDE5LCBcIm9mZlwiOiAyMCwgXCJhY3RpdmF0ZVwiOiAyMSwgXCJhY3RvclwiOiAyMiwgXCJkZWFjdGl2YXRlXCI6IDIzLCBcIm5vdGVfc3RhdGVtZW50XCI6IDI0LCBcImxpbmtzX3N0YXRlbWVudFwiOiAyNSwgXCJsaW5rX3N0YXRlbWVudFwiOiAyNiwgXCJwcm9wZXJ0aWVzX3N0YXRlbWVudFwiOiAyNywgXCJkZXRhaWxzX3N0YXRlbWVudFwiOiAyOCwgXCJ0aXRsZVwiOiAyOSwgXCJsZWdhY3lfdGl0bGVcIjogMzAsIFwiYWNjX3RpdGxlXCI6IDMxLCBcImFjY190aXRsZV92YWx1ZVwiOiAzMiwgXCJhY2NfZGVzY3JcIjogMzMsIFwiYWNjX2Rlc2NyX3ZhbHVlXCI6IDM0LCBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIjogMzUsIFwibG9vcFwiOiAzNiwgXCJyZWN0XCI6IDM3LCBcIm9wdFwiOiAzOCwgXCJhbHRcIjogMzksIFwiZWxzZV9zZWN0aW9uc1wiOiA0MCwgXCJwYXJcIjogNDEsIFwicGFyX3NlY3Rpb25zXCI6IDQyLCBcInBhcl9vdmVyXCI6IDQzLCBcImNyaXRpY2FsXCI6IDQ0LCBcIm9wdGlvbl9zZWN0aW9uc1wiOiA0NSwgXCJicmVha1wiOiA0NiwgXCJvcHRpb25cIjogNDcsIFwiYW5kXCI6IDQ4LCBcImVsc2VcIjogNDksIFwicGFydGljaXBhbnRcIjogNTAsIFwiQVNcIjogNTEsIFwicGFydGljaXBhbnRfYWN0b3JcIjogNTIsIFwiZGVzdHJveVwiOiA1MywgXCJub3RlXCI6IDU0LCBcInBsYWNlbWVudFwiOiA1NSwgXCJ0ZXh0MlwiOiA1NiwgXCJvdmVyXCI6IDU3LCBcImFjdG9yX3BhaXJcIjogNTgsIFwibGlua3NcIjogNTksIFwibGlua1wiOiA2MCwgXCJwcm9wZXJ0aWVzXCI6IDYxLCBcImRldGFpbHNcIjogNjIsIFwic3BhY2VMaXN0XCI6IDYzLCBcIixcIjogNjQsIFwibGVmdF9vZlwiOiA2NSwgXCJyaWdodF9vZlwiOiA2NiwgXCJzaWduYWx0eXBlXCI6IDY3LCBcIitcIjogNjgsIFwiLVwiOiA2OSwgXCJBQ1RPUlwiOiA3MCwgXCJTT0xJRF9PUEVOX0FSUk9XXCI6IDcxLCBcIkRPVFRFRF9PUEVOX0FSUk9XXCI6IDcyLCBcIlNPTElEX0FSUk9XXCI6IDczLCBcIkRPVFRFRF9BUlJPV1wiOiA3NCwgXCJTT0xJRF9DUk9TU1wiOiA3NSwgXCJET1RURURfQ1JPU1NcIjogNzYsIFwiU09MSURfUE9JTlRcIjogNzcsIFwiRE9UVEVEX1BPSU5UXCI6IDc4LCBcIlRYVFwiOiA3OSwgXCIkYWNjZXB0XCI6IDAsIFwiJGVuZFwiOiAxIH0sXG4gICAgdGVybWluYWxzXzogeyAyOiBcImVycm9yXCIsIDQ6IFwiU1BBQ0VcIiwgNTogXCJORVdMSU5FXCIsIDY6IFwiU0RcIiwgMTM6IFwiY3JlYXRlXCIsIDE0OiBcImJveFwiLCAxNTogXCJyZXN0T2ZMaW5lXCIsIDE2OiBcImVuZFwiLCAxODogXCJhdXRvbnVtYmVyXCIsIDE5OiBcIk5VTVwiLCAyMDogXCJvZmZcIiwgMjE6IFwiYWN0aXZhdGVcIiwgMjM6IFwiZGVhY3RpdmF0ZVwiLCAyOTogXCJ0aXRsZVwiLCAzMDogXCJsZWdhY3lfdGl0bGVcIiwgMzE6IFwiYWNjX3RpdGxlXCIsIDMyOiBcImFjY190aXRsZV92YWx1ZVwiLCAzMzogXCJhY2NfZGVzY3JcIiwgMzQ6IFwiYWNjX2Rlc2NyX3ZhbHVlXCIsIDM1OiBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIiwgMzY6IFwibG9vcFwiLCAzNzogXCJyZWN0XCIsIDM4OiBcIm9wdFwiLCAzOTogXCJhbHRcIiwgNDE6IFwicGFyXCIsIDQzOiBcInBhcl9vdmVyXCIsIDQ0OiBcImNyaXRpY2FsXCIsIDQ2OiBcImJyZWFrXCIsIDQ3OiBcIm9wdGlvblwiLCA0ODogXCJhbmRcIiwgNDk6IFwiZWxzZVwiLCA1MDogXCJwYXJ0aWNpcGFudFwiLCA1MTogXCJBU1wiLCA1MjogXCJwYXJ0aWNpcGFudF9hY3RvclwiLCA1MzogXCJkZXN0cm95XCIsIDU0OiBcIm5vdGVcIiwgNTc6IFwib3ZlclwiLCA1OTogXCJsaW5rc1wiLCA2MDogXCJsaW5rXCIsIDYxOiBcInByb3BlcnRpZXNcIiwgNjI6IFwiZGV0YWlsc1wiLCA2NDogXCIsXCIsIDY1OiBcImxlZnRfb2ZcIiwgNjY6IFwicmlnaHRfb2ZcIiwgNjg6IFwiK1wiLCA2OTogXCItXCIsIDcwOiBcIkFDVE9SXCIsIDcxOiBcIlNPTElEX09QRU5fQVJST1dcIiwgNzI6IFwiRE9UVEVEX09QRU5fQVJST1dcIiwgNzM6IFwiU09MSURfQVJST1dcIiwgNzQ6IFwiRE9UVEVEX0FSUk9XXCIsIDc1OiBcIlNPTElEX0NST1NTXCIsIDc2OiBcIkRPVFRFRF9DUk9TU1wiLCA3NzogXCJTT0xJRF9QT0lOVFwiLCA3ODogXCJET1RURURfUE9JTlRcIiwgNzk6IFwiVFhUXCIgfSxcbiAgICBwcm9kdWN0aW9uc186IFswLCBbMywgMl0sIFszLCAyXSwgWzMsIDJdLCBbNywgMF0sIFs3LCAyXSwgWzgsIDJdLCBbOCwgMV0sIFs4LCAxXSwgWzEwLCAwXSwgWzEwLCAyXSwgWzExLCAyXSwgWzExLCAxXSwgWzExLCAxXSwgWzksIDFdLCBbOSwgMl0sIFs5LCA0XSwgWzksIDJdLCBbOSwgNF0sIFs5LCAzXSwgWzksIDNdLCBbOSwgMl0sIFs5LCAzXSwgWzksIDNdLCBbOSwgMl0sIFs5LCAyXSwgWzksIDJdLCBbOSwgMl0sIFs5LCAyXSwgWzksIDFdLCBbOSwgMV0sIFs5LCAyXSwgWzksIDJdLCBbOSwgMV0sIFs5LCA0XSwgWzksIDRdLCBbOSwgNF0sIFs5LCA0XSwgWzksIDRdLCBbOSwgNF0sIFs5LCA0XSwgWzksIDRdLCBbNDUsIDFdLCBbNDUsIDRdLCBbNDIsIDFdLCBbNDIsIDRdLCBbNDAsIDFdLCBbNDAsIDRdLCBbMTIsIDVdLCBbMTIsIDNdLCBbMTIsIDVdLCBbMTIsIDNdLCBbMTIsIDNdLCBbMjQsIDRdLCBbMjQsIDRdLCBbMjUsIDNdLCBbMjYsIDNdLCBbMjcsIDNdLCBbMjgsIDNdLCBbNjMsIDJdLCBbNjMsIDFdLCBbNTgsIDNdLCBbNTgsIDFdLCBbNTUsIDFdLCBbNTUsIDFdLCBbMTcsIDVdLCBbMTcsIDVdLCBbMTcsIDRdLCBbMjIsIDFdLCBbNjcsIDFdLCBbNjcsIDFdLCBbNjcsIDFdLCBbNjcsIDFdLCBbNjcsIDFdLCBbNjcsIDFdLCBbNjcsIDFdLCBbNjcsIDFdLCBbNTYsIDFdXSxcbiAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXl0ZXh0LCB5eWxlbmcsIHl5bGluZW5vLCB5eSwgeXlzdGF0ZSwgJCQsIF8kKSB7XG4gICAgICB2YXIgJDAgPSAkJC5sZW5ndGggLSAxO1xuICAgICAgc3dpdGNoICh5eXN0YXRlKSB7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICB5eS5hcHBseSgkJFskMF0pO1xuICAgICAgICAgIHJldHVybiAkJFskMF07XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgY2FzZSA5OlxuICAgICAgICAgIHRoaXMuJCA9IFtdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKCQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICBjYXNlIDc6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgdGhpcy4kID0gW107XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgJCRbJDBdLnR5cGUgPSBcImNyZWF0ZVBhcnRpY2lwYW50XCI7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE2OlxuICAgICAgICAgICQkWyQwIC0gMV0udW5zaGlmdCh7IHR5cGU6IFwiYm94U3RhcnRcIiwgYm94RGF0YTogeXkucGFyc2VCb3hEYXRhKCQkWyQwIC0gMl0pIH0pO1xuICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCh7IHR5cGU6IFwiYm94RW5kXCIsIGJveFRleHQ6ICQkWyQwIC0gMl0gfSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6IFwic2VxdWVuY2VJbmRleFwiLCBzZXF1ZW5jZUluZGV4OiBOdW1iZXIoJCRbJDAgLSAyXSksIHNlcXVlbmNlSW5kZXhTdGVwOiBOdW1iZXIoJCRbJDAgLSAxXSksIHNlcXVlbmNlVmlzaWJsZTogdHJ1ZSwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuQVVUT05VTUJFUiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogXCJzZXF1ZW5jZUluZGV4XCIsIHNlcXVlbmNlSW5kZXg6IE51bWJlcigkJFskMCAtIDFdKSwgc2VxdWVuY2VJbmRleFN0ZXA6IDEsIHNlcXVlbmNlVmlzaWJsZTogdHJ1ZSwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuQVVUT05VTUJFUiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogXCJzZXF1ZW5jZUluZGV4XCIsIHNlcXVlbmNlVmlzaWJsZTogZmFsc2UsIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLkFVVE9OVU1CRVIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6IFwic2VxdWVuY2VJbmRleFwiLCBzZXF1ZW5jZVZpc2libGU6IHRydWUsIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLkFVVE9OVU1CRVIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6IFwiYWN0aXZlU3RhcnRcIiwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuQUNUSVZFX1NUQVJULCBhY3RvcjogJCRbJDAgLSAxXSB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogXCJhY3RpdmVFbmRcIiwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuQUNUSVZFX0VORCwgYWN0b3I6ICQkWyQwIC0gMV0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOTpcbiAgICAgICAgICB5eS5zZXREaWFncmFtVGl0bGUoJCRbJDBdLnN1YnN0cmluZyg2KSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnN1YnN0cmluZyg2KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICB5eS5zZXREaWFncmFtVGl0bGUoJCRbJDBdLnN1YnN0cmluZyg3KSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnN1YnN0cmluZyg3KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0udHJpbSgpO1xuICAgICAgICAgIHl5LnNldEFjY1RpdGxlKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzI6XG4gICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5zZXRBY2NEZXNjcmlwdGlvbih0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM0OlxuICAgICAgICAgICQkWyQwIC0gMV0udW5zaGlmdCh7IHR5cGU6IFwibG9vcFN0YXJ0XCIsIGxvb3BUZXh0OiB5eS5wYXJzZU1lc3NhZ2UoJCRbJDAgLSAyXSksIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLkxPT1BfU1RBUlQgfSk7XG4gICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKHsgdHlwZTogXCJsb29wRW5kXCIsIGxvb3BUZXh0OiAkJFskMCAtIDJdLCBzaWduYWxUeXBlOiB5eS5MSU5FVFlQRS5MT09QX0VORCB9KTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgICQkWyQwIC0gMV0udW5zaGlmdCh7IHR5cGU6IFwicmVjdFN0YXJ0XCIsIGNvbG9yOiB5eS5wYXJzZU1lc3NhZ2UoJCRbJDAgLSAyXSksIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLlJFQ1RfU1RBUlQgfSk7XG4gICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKHsgdHlwZTogXCJyZWN0RW5kXCIsIGNvbG9yOiB5eS5wYXJzZU1lc3NhZ2UoJCRbJDAgLSAyXSksIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLlJFQ1RfRU5EIH0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgJCRbJDAgLSAxXS51bnNoaWZ0KHsgdHlwZTogXCJvcHRTdGFydFwiLCBvcHRUZXh0OiB5eS5wYXJzZU1lc3NhZ2UoJCRbJDAgLSAyXSksIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLk9QVF9TVEFSVCB9KTtcbiAgICAgICAgICAkJFskMCAtIDFdLnB1c2goeyB0eXBlOiBcIm9wdEVuZFwiLCBvcHRUZXh0OiB5eS5wYXJzZU1lc3NhZ2UoJCRbJDAgLSAyXSksIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLk9QVF9FTkQgfSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNzpcbiAgICAgICAgICAkJFskMCAtIDFdLnVuc2hpZnQoeyB0eXBlOiBcImFsdFN0YXJ0XCIsIGFsdFRleHQ6IHl5LnBhcnNlTWVzc2FnZSgkJFskMCAtIDJdKSwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuQUxUX1NUQVJUIH0pO1xuICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCh7IHR5cGU6IFwiYWx0RW5kXCIsIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLkFMVF9FTkQgfSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzODpcbiAgICAgICAgICAkJFskMCAtIDFdLnVuc2hpZnQoeyB0eXBlOiBcInBhclN0YXJ0XCIsIHBhclRleHQ6IHl5LnBhcnNlTWVzc2FnZSgkJFskMCAtIDJdKSwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuUEFSX1NUQVJUIH0pO1xuICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCh7IHR5cGU6IFwicGFyRW5kXCIsIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLlBBUl9FTkQgfSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOTpcbiAgICAgICAgICAkJFskMCAtIDFdLnVuc2hpZnQoeyB0eXBlOiBcInBhclN0YXJ0XCIsIHBhclRleHQ6IHl5LnBhcnNlTWVzc2FnZSgkJFskMCAtIDJdKSwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuUEFSX09WRVJfU1RBUlQgfSk7XG4gICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKHsgdHlwZTogXCJwYXJFbmRcIiwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuUEFSX0VORCB9KTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQwOlxuICAgICAgICAgICQkWyQwIC0gMV0udW5zaGlmdCh7IHR5cGU6IFwiY3JpdGljYWxTdGFydFwiLCBjcml0aWNhbFRleHQ6IHl5LnBhcnNlTWVzc2FnZSgkJFskMCAtIDJdKSwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuQ1JJVElDQUxfU1RBUlQgfSk7XG4gICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKHsgdHlwZTogXCJjcml0aWNhbEVuZFwiLCBzaWduYWxUeXBlOiB5eS5MSU5FVFlQRS5DUklUSUNBTF9FTkQgfSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MTpcbiAgICAgICAgICAkJFskMCAtIDFdLnVuc2hpZnQoeyB0eXBlOiBcImJyZWFrU3RhcnRcIiwgYnJlYWtUZXh0OiB5eS5wYXJzZU1lc3NhZ2UoJCRbJDAgLSAyXSksIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLkJSRUFLX1NUQVJUIH0pO1xuICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCh7IHR5cGU6IFwiYnJlYWtFbmRcIiwgb3B0VGV4dDogeXkucGFyc2VNZXNzYWdlKCQkWyQwIC0gMl0pLCBzaWduYWxUeXBlOiB5eS5MSU5FVFlQRS5CUkVBS19FTkQgfSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MzpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDNdLmNvbmNhdChbeyB0eXBlOiBcIm9wdGlvblwiLCBvcHRpb25UZXh0OiB5eS5wYXJzZU1lc3NhZ2UoJCRbJDAgLSAxXSksIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLkNSSVRJQ0FMX09QVElPTiB9LCAkJFskMF1dKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDNdLmNvbmNhdChbeyB0eXBlOiBcImFuZFwiLCBwYXJUZXh0OiB5eS5wYXJzZU1lc3NhZ2UoJCRbJDAgLSAxXSksIHNpZ25hbFR5cGU6IHl5LkxJTkVUWVBFLlBBUl9BTkQgfSwgJCRbJDBdXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDc6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAzXS5jb25jYXQoW3sgdHlwZTogXCJlbHNlXCIsIGFsdFRleHQ6IHl5LnBhcnNlTWVzc2FnZSgkJFskMCAtIDFdKSwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuQUxUX0VMU0UgfSwgJCRbJDBdXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDg6XG4gICAgICAgICAgJCRbJDAgLSAzXS5kcmF3ID0gXCJwYXJ0aWNpcGFudFwiO1xuICAgICAgICAgICQkWyQwIC0gM10udHlwZSA9IFwiYWRkUGFydGljaXBhbnRcIjtcbiAgICAgICAgICAkJFskMCAtIDNdLmRlc2NyaXB0aW9uID0geXkucGFyc2VNZXNzYWdlKCQkWyQwIC0gMV0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDk6XG4gICAgICAgICAgJCRbJDAgLSAxXS5kcmF3ID0gXCJwYXJ0aWNpcGFudFwiO1xuICAgICAgICAgICQkWyQwIC0gMV0udHlwZSA9IFwiYWRkUGFydGljaXBhbnRcIjtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDUwOlxuICAgICAgICAgICQkWyQwIC0gM10uZHJhdyA9IFwiYWN0b3JcIjtcbiAgICAgICAgICAkJFskMCAtIDNdLnR5cGUgPSBcImFkZFBhcnRpY2lwYW50XCI7XG4gICAgICAgICAgJCRbJDAgLSAzXS5kZXNjcmlwdGlvbiA9IHl5LnBhcnNlTWVzc2FnZSgkJFskMCAtIDFdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDNdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDUxOlxuICAgICAgICAgICQkWyQwIC0gMV0uZHJhdyA9IFwiYWN0b3JcIjtcbiAgICAgICAgICAkJFskMCAtIDFdLnR5cGUgPSBcImFkZFBhcnRpY2lwYW50XCI7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1MjpcbiAgICAgICAgICAkJFskMCAtIDFdLnR5cGUgPSBcImRlc3Ryb3lQYXJ0aWNpcGFudFwiO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTM6XG4gICAgICAgICAgdGhpcy4kID0gWyQkWyQwIC0gMV0sIHsgdHlwZTogXCJhZGROb3RlXCIsIHBsYWNlbWVudDogJCRbJDAgLSAyXSwgYWN0b3I6ICQkWyQwIC0gMV0uYWN0b3IsIHRleHQ6ICQkWyQwXSB9XTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1NDpcbiAgICAgICAgICAkJFskMCAtIDJdID0gW10uY29uY2F0KCQkWyQwIC0gMV0sICQkWyQwIC0gMV0pLnNsaWNlKDAsIDIpO1xuICAgICAgICAgICQkWyQwIC0gMl1bMF0gPSAkJFskMCAtIDJdWzBdLmFjdG9yO1xuICAgICAgICAgICQkWyQwIC0gMl1bMV0gPSAkJFskMCAtIDJdWzFdLmFjdG9yO1xuICAgICAgICAgIHRoaXMuJCA9IFskJFskMCAtIDFdLCB7IHR5cGU6IFwiYWRkTm90ZVwiLCBwbGFjZW1lbnQ6IHl5LlBMQUNFTUVOVC5PVkVSLCBhY3RvcjogJCRbJDAgLSAyXS5zbGljZSgwLCAyKSwgdGV4dDogJCRbJDBdIH1dO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU1OlxuICAgICAgICAgIHRoaXMuJCA9IFskJFskMCAtIDFdLCB7IHR5cGU6IFwiYWRkTGlua3NcIiwgYWN0b3I6ICQkWyQwIC0gMV0uYWN0b3IsIHRleHQ6ICQkWyQwXSB9XTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1NjpcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDAgLSAxXSwgeyB0eXBlOiBcImFkZEFMaW5rXCIsIGFjdG9yOiAkJFskMCAtIDFdLmFjdG9yLCB0ZXh0OiAkJFskMF0gfV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTc6XG4gICAgICAgICAgdGhpcy4kID0gWyQkWyQwIC0gMV0sIHsgdHlwZTogXCJhZGRQcm9wZXJ0aWVzXCIsIGFjdG9yOiAkJFskMCAtIDFdLmFjdG9yLCB0ZXh0OiAkJFskMF0gfV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTg6XG4gICAgICAgICAgdGhpcy4kID0gWyQkWyQwIC0gMV0sIHsgdHlwZTogXCJhZGREZXRhaWxzXCIsIGFjdG9yOiAkJFskMCAtIDFdLmFjdG9yLCB0ZXh0OiAkJFskMF0gfV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjE6XG4gICAgICAgICAgdGhpcy4kID0gWyQkWyQwIC0gMl0sICQkWyQwXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjI6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDYzOlxuICAgICAgICAgIHRoaXMuJCA9IHl5LlBMQUNFTUVOVC5MRUZUT0Y7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjQ6XG4gICAgICAgICAgdGhpcy4kID0geXkuUExBQ0VNRU5ULlJJR0hUT0Y7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjU6XG4gICAgICAgICAgdGhpcy4kID0gW1xuICAgICAgICAgICAgJCRbJDAgLSA0XSxcbiAgICAgICAgICAgICQkWyQwIC0gMV0sXG4gICAgICAgICAgICB7IHR5cGU6IFwiYWRkTWVzc2FnZVwiLCBmcm9tOiAkJFskMCAtIDRdLmFjdG9yLCB0bzogJCRbJDAgLSAxXS5hY3Rvciwgc2lnbmFsVHlwZTogJCRbJDAgLSAzXSwgbXNnOiAkJFskMF0sIGFjdGl2YXRlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IHR5cGU6IFwiYWN0aXZlU3RhcnRcIiwgc2lnbmFsVHlwZTogeXkuTElORVRZUEUuQUNUSVZFX1NUQVJULCBhY3RvcjogJCRbJDAgLSAxXSB9XG4gICAgICAgICAgXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2NjpcbiAgICAgICAgICB0aGlzLiQgPSBbXG4gICAgICAgICAgICAkJFskMCAtIDRdLFxuICAgICAgICAgICAgJCRbJDAgLSAxXSxcbiAgICAgICAgICAgIHsgdHlwZTogXCJhZGRNZXNzYWdlXCIsIGZyb206ICQkWyQwIC0gNF0uYWN0b3IsIHRvOiAkJFskMCAtIDFdLmFjdG9yLCBzaWduYWxUeXBlOiAkJFskMCAtIDNdLCBtc2c6ICQkWyQwXSB9LFxuICAgICAgICAgICAgeyB0eXBlOiBcImFjdGl2ZUVuZFwiLCBzaWduYWxUeXBlOiB5eS5MSU5FVFlQRS5BQ1RJVkVfRU5ELCBhY3RvcjogJCRbJDAgLSA0XSB9XG4gICAgICAgICAgXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2NzpcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDAgLSAzXSwgJCRbJDAgLSAxXSwgeyB0eXBlOiBcImFkZE1lc3NhZ2VcIiwgZnJvbTogJCRbJDAgLSAzXS5hY3RvciwgdG86ICQkWyQwIC0gMV0uYWN0b3IsIHNpZ25hbFR5cGU6ICQkWyQwIC0gMl0sIG1zZzogJCRbJDBdIH1dO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY4OlxuICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogXCJhZGRQYXJ0aWNpcGFudFwiLCBhY3RvcjogJCRbJDBdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjk6XG4gICAgICAgICAgdGhpcy4kID0geXkuTElORVRZUEUuU09MSURfT1BFTjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3MDpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5MSU5FVFlQRS5ET1RURURfT1BFTjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3MTpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5MSU5FVFlQRS5TT0xJRDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3MjpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5MSU5FVFlQRS5ET1RURUQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzM6XG4gICAgICAgICAgdGhpcy4kID0geXkuTElORVRZUEUuU09MSURfQ1JPU1M7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzQ6XG4gICAgICAgICAgdGhpcy4kID0geXkuTElORVRZUEUuRE9UVEVEX0NST1NTO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDc1OlxuICAgICAgICAgIHRoaXMuJCA9IHl5LkxJTkVUWVBFLlNPTElEX1BPSU5UO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDc2OlxuICAgICAgICAgIHRoaXMuJCA9IHl5LkxJTkVUWVBFLkRPVFRFRF9QT0lOVDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3NzpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5wYXJzZU1lc3NhZ2UoJCRbJDBdLnRyaW0oKS5zdWJzdHJpbmcoMSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgdGFibGU6IFt7IDM6IDEsIDQ6ICRWMCwgNTogJFYxLCA2OiAkVjIgfSwgeyAxOiBbM10gfSwgeyAzOiA1LCA0OiAkVjAsIDU6ICRWMSwgNjogJFYyIH0sIHsgMzogNiwgNDogJFYwLCA1OiAkVjEsIDY6ICRWMiB9LCBvKFsxLCA0LCA1LCAxMywgMTQsIDE4LCAyMSwgMjMsIDI5LCAzMCwgMzEsIDMzLCAzNSwgMzYsIDM3LCAzOCwgMzksIDQxLCA0MywgNDQsIDQ2LCA1MCwgNTIsIDUzLCA1NCwgNTksIDYwLCA2MSwgNjIsIDcwXSwgJFYzLCB7IDc6IDcgfSksIHsgMTogWzIsIDFdIH0sIHsgMTogWzIsIDJdIH0sIHsgMTogWzIsIDNdLCA0OiAkVjQsIDU6ICRWNSwgODogOCwgOTogMTAsIDEyOiAxMiwgMTM6ICRWNiwgMTQ6ICRWNywgMTc6IDE1LCAxODogJFY4LCAyMTogJFY5LCAyMjogNDAsIDIzOiAkVmEsIDI0OiAxOSwgMjU6IDIwLCAyNjogMjEsIDI3OiAyMiwgMjg6IDIzLCAyOTogJFZiLCAzMDogJFZjLCAzMTogJFZkLCAzMzogJFZlLCAzNTogJFZmLCAzNjogJFZnLCAzNzogJFZoLCAzODogJFZpLCAzOTogJFZqLCA0MTogJFZrLCA0MzogJFZsLCA0NDogJFZtLCA0NjogJFZuLCA1MDogJFZvLCA1MjogJFZwLCA1MzogJFZxLCA1NDogJFZyLCA1OTogJFZzLCA2MDogJFZ0LCA2MTogJFZ1LCA2MjogJFZ2LCA3MDogJFZ3IH0sIG8oJFZ4LCBbMiwgNV0pLCB7IDk6IDQ3LCAxMjogMTIsIDEzOiAkVjYsIDE0OiAkVjcsIDE3OiAxNSwgMTg6ICRWOCwgMjE6ICRWOSwgMjI6IDQwLCAyMzogJFZhLCAyNDogMTksIDI1OiAyMCwgMjY6IDIxLCAyNzogMjIsIDI4OiAyMywgMjk6ICRWYiwgMzA6ICRWYywgMzE6ICRWZCwgMzM6ICRWZSwgMzU6ICRWZiwgMzY6ICRWZywgMzc6ICRWaCwgMzg6ICRWaSwgMzk6ICRWaiwgNDE6ICRWaywgNDM6ICRWbCwgNDQ6ICRWbSwgNDY6ICRWbiwgNTA6ICRWbywgNTI6ICRWcCwgNTM6ICRWcSwgNTQ6ICRWciwgNTk6ICRWcywgNjA6ICRWdCwgNjE6ICRWdSwgNjI6ICRWdiwgNzA6ICRWdyB9LCBvKCRWeCwgWzIsIDddKSwgbygkVngsIFsyLCA4XSksIG8oJFZ4LCBbMiwgMTRdKSwgeyAxMjogNDgsIDUwOiAkVm8sIDUyOiAkVnAsIDUzOiAkVnEgfSwgeyAxNTogWzEsIDQ5XSB9LCB7IDU6IFsxLCA1MF0gfSwgeyA1OiBbMSwgNTNdLCAxOTogWzEsIDUxXSwgMjA6IFsxLCA1Ml0gfSwgeyAyMjogNTQsIDcwOiAkVncgfSwgeyAyMjogNTUsIDcwOiAkVncgfSwgeyA1OiBbMSwgNTZdIH0sIHsgNTogWzEsIDU3XSB9LCB7IDU6IFsxLCA1OF0gfSwgeyA1OiBbMSwgNTldIH0sIHsgNTogWzEsIDYwXSB9LCBvKCRWeCwgWzIsIDI5XSksIG8oJFZ4LCBbMiwgMzBdKSwgeyAzMjogWzEsIDYxXSB9LCB7IDM0OiBbMSwgNjJdIH0sIG8oJFZ4LCBbMiwgMzNdKSwgeyAxNTogWzEsIDYzXSB9LCB7IDE1OiBbMSwgNjRdIH0sIHsgMTU6IFsxLCA2NV0gfSwgeyAxNTogWzEsIDY2XSB9LCB7IDE1OiBbMSwgNjddIH0sIHsgMTU6IFsxLCA2OF0gfSwgeyAxNTogWzEsIDY5XSB9LCB7IDE1OiBbMSwgNzBdIH0sIHsgMjI6IDcxLCA3MDogJFZ3IH0sIHsgMjI6IDcyLCA3MDogJFZ3IH0sIHsgMjI6IDczLCA3MDogJFZ3IH0sIHsgNjc6IDc0LCA3MTogWzEsIDc1XSwgNzI6IFsxLCA3Nl0sIDczOiBbMSwgNzddLCA3NDogWzEsIDc4XSwgNzU6IFsxLCA3OV0sIDc2OiBbMSwgODBdLCA3NzogWzEsIDgxXSwgNzg6IFsxLCA4Ml0gfSwgeyA1NTogODMsIDU3OiBbMSwgODRdLCA2NTogWzEsIDg1XSwgNjY6IFsxLCA4Nl0gfSwgeyAyMjogODcsIDcwOiAkVncgfSwgeyAyMjogODgsIDcwOiAkVncgfSwgeyAyMjogODksIDcwOiAkVncgfSwgeyAyMjogOTAsIDcwOiAkVncgfSwgbyhbNSwgNTEsIDY0LCA3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsIDc5XSwgWzIsIDY4XSksIG8oJFZ4LCBbMiwgNl0pLCBvKCRWeCwgWzIsIDE1XSksIG8oJFZ5LCBbMiwgOV0sIHsgMTA6IDkxIH0pLCBvKCRWeCwgWzIsIDE3XSksIHsgNTogWzEsIDkzXSwgMTk6IFsxLCA5Ml0gfSwgeyA1OiBbMSwgOTRdIH0sIG8oJFZ4LCBbMiwgMjFdKSwgeyA1OiBbMSwgOTVdIH0sIHsgNTogWzEsIDk2XSB9LCBvKCRWeCwgWzIsIDI0XSksIG8oJFZ4LCBbMiwgMjVdKSwgbygkVngsIFsyLCAyNl0pLCBvKCRWeCwgWzIsIDI3XSksIG8oJFZ4LCBbMiwgMjhdKSwgbygkVngsIFsyLCAzMV0pLCBvKCRWeCwgWzIsIDMyXSksIG8oJFZ6LCAkVjMsIHsgNzogOTcgfSksIG8oJFZ6LCAkVjMsIHsgNzogOTggfSksIG8oJFZ6LCAkVjMsIHsgNzogOTkgfSksIG8oJFZBLCAkVjMsIHsgNDA6IDEwMCwgNzogMTAxIH0pLCBvKCRWQiwgJFYzLCB7IDQyOiAxMDIsIDc6IDEwMyB9KSwgbygkVkIsICRWMywgeyA3OiAxMDMsIDQyOiAxMDQgfSksIG8oJFZDLCAkVjMsIHsgNDU6IDEwNSwgNzogMTA2IH0pLCBvKCRWeiwgJFYzLCB7IDc6IDEwNyB9KSwgeyA1OiBbMSwgMTA5XSwgNTE6IFsxLCAxMDhdIH0sIHsgNTogWzEsIDExMV0sIDUxOiBbMSwgMTEwXSB9LCB7IDU6IFsxLCAxMTJdIH0sIHsgMjI6IDExNSwgNjg6IFsxLCAxMTNdLCA2OTogWzEsIDExNF0sIDcwOiAkVncgfSwgbygkVkQsIFsyLCA2OV0pLCBvKCRWRCwgWzIsIDcwXSksIG8oJFZELCBbMiwgNzFdKSwgbygkVkQsIFsyLCA3Ml0pLCBvKCRWRCwgWzIsIDczXSksIG8oJFZELCBbMiwgNzRdKSwgbygkVkQsIFsyLCA3NV0pLCBvKCRWRCwgWzIsIDc2XSksIHsgMjI6IDExNiwgNzA6ICRWdyB9LCB7IDIyOiAxMTgsIDU4OiAxMTcsIDcwOiAkVncgfSwgeyA3MDogWzIsIDYzXSB9LCB7IDcwOiBbMiwgNjRdIH0sIHsgNTY6IDExOSwgNzk6ICRWRSB9LCB7IDU2OiAxMjEsIDc5OiAkVkUgfSwgeyA1NjogMTIyLCA3OTogJFZFIH0sIHsgNTY6IDEyMywgNzk6ICRWRSB9LCB7IDQ6IFsxLCAxMjZdLCA1OiBbMSwgMTI4XSwgMTE6IDEyNSwgMTI6IDEyNywgMTY6IFsxLCAxMjRdLCA1MDogJFZvLCA1MjogJFZwLCA1MzogJFZxIH0sIHsgNTogWzEsIDEyOV0gfSwgbygkVngsIFsyLCAxOV0pLCBvKCRWeCwgWzIsIDIwXSksIG8oJFZ4LCBbMiwgMjJdKSwgbygkVngsIFsyLCAyM10pLCB7IDQ6ICRWNCwgNTogJFY1LCA4OiA4LCA5OiAxMCwgMTI6IDEyLCAxMzogJFY2LCAxNDogJFY3LCAxNjogWzEsIDEzMF0sIDE3OiAxNSwgMTg6ICRWOCwgMjE6ICRWOSwgMjI6IDQwLCAyMzogJFZhLCAyNDogMTksIDI1OiAyMCwgMjY6IDIxLCAyNzogMjIsIDI4OiAyMywgMjk6ICRWYiwgMzA6ICRWYywgMzE6ICRWZCwgMzM6ICRWZSwgMzU6ICRWZiwgMzY6ICRWZywgMzc6ICRWaCwgMzg6ICRWaSwgMzk6ICRWaiwgNDE6ICRWaywgNDM6ICRWbCwgNDQ6ICRWbSwgNDY6ICRWbiwgNTA6ICRWbywgNTI6ICRWcCwgNTM6ICRWcSwgNTQ6ICRWciwgNTk6ICRWcywgNjA6ICRWdCwgNjE6ICRWdSwgNjI6ICRWdiwgNzA6ICRWdyB9LCB7IDQ6ICRWNCwgNTogJFY1LCA4OiA4LCA5OiAxMCwgMTI6IDEyLCAxMzogJFY2LCAxNDogJFY3LCAxNjogWzEsIDEzMV0sIDE3OiAxNSwgMTg6ICRWOCwgMjE6ICRWOSwgMjI6IDQwLCAyMzogJFZhLCAyNDogMTksIDI1OiAyMCwgMjY6IDIxLCAyNzogMjIsIDI4OiAyMywgMjk6ICRWYiwgMzA6ICRWYywgMzE6ICRWZCwgMzM6ICRWZSwgMzU6ICRWZiwgMzY6ICRWZywgMzc6ICRWaCwgMzg6ICRWaSwgMzk6ICRWaiwgNDE6ICRWaywgNDM6ICRWbCwgNDQ6ICRWbSwgNDY6ICRWbiwgNTA6ICRWbywgNTI6ICRWcCwgNTM6ICRWcSwgNTQ6ICRWciwgNTk6ICRWcywgNjA6ICRWdCwgNjE6ICRWdSwgNjI6ICRWdiwgNzA6ICRWdyB9LCB7IDQ6ICRWNCwgNTogJFY1LCA4OiA4LCA5OiAxMCwgMTI6IDEyLCAxMzogJFY2LCAxNDogJFY3LCAxNjogWzEsIDEzMl0sIDE3OiAxNSwgMTg6ICRWOCwgMjE6ICRWOSwgMjI6IDQwLCAyMzogJFZhLCAyNDogMTksIDI1OiAyMCwgMjY6IDIxLCAyNzogMjIsIDI4OiAyMywgMjk6ICRWYiwgMzA6ICRWYywgMzE6ICRWZCwgMzM6ICRWZSwgMzU6ICRWZiwgMzY6ICRWZywgMzc6ICRWaCwgMzg6ICRWaSwgMzk6ICRWaiwgNDE6ICRWaywgNDM6ICRWbCwgNDQ6ICRWbSwgNDY6ICRWbiwgNTA6ICRWbywgNTI6ICRWcCwgNTM6ICRWcSwgNTQ6ICRWciwgNTk6ICRWcywgNjA6ICRWdCwgNjE6ICRWdSwgNjI6ICRWdiwgNzA6ICRWdyB9LCB7IDE2OiBbMSwgMTMzXSB9LCB7IDQ6ICRWNCwgNTogJFY1LCA4OiA4LCA5OiAxMCwgMTI6IDEyLCAxMzogJFY2LCAxNDogJFY3LCAxNjogWzIsIDQ2XSwgMTc6IDE1LCAxODogJFY4LCAyMTogJFY5LCAyMjogNDAsIDIzOiAkVmEsIDI0OiAxOSwgMjU6IDIwLCAyNjogMjEsIDI3OiAyMiwgMjg6IDIzLCAyOTogJFZiLCAzMDogJFZjLCAzMTogJFZkLCAzMzogJFZlLCAzNTogJFZmLCAzNjogJFZnLCAzNzogJFZoLCAzODogJFZpLCAzOTogJFZqLCA0MTogJFZrLCA0MzogJFZsLCA0NDogJFZtLCA0NjogJFZuLCA0OTogWzEsIDEzNF0sIDUwOiAkVm8sIDUyOiAkVnAsIDUzOiAkVnEsIDU0OiAkVnIsIDU5OiAkVnMsIDYwOiAkVnQsIDYxOiAkVnUsIDYyOiAkVnYsIDcwOiAkVncgfSwgeyAxNjogWzEsIDEzNV0gfSwgeyA0OiAkVjQsIDU6ICRWNSwgODogOCwgOTogMTAsIDEyOiAxMiwgMTM6ICRWNiwgMTQ6ICRWNywgMTY6IFsyLCA0NF0sIDE3OiAxNSwgMTg6ICRWOCwgMjE6ICRWOSwgMjI6IDQwLCAyMzogJFZhLCAyNDogMTksIDI1OiAyMCwgMjY6IDIxLCAyNzogMjIsIDI4OiAyMywgMjk6ICRWYiwgMzA6ICRWYywgMzE6ICRWZCwgMzM6ICRWZSwgMzU6ICRWZiwgMzY6ICRWZywgMzc6ICRWaCwgMzg6ICRWaSwgMzk6ICRWaiwgNDE6ICRWaywgNDM6ICRWbCwgNDQ6ICRWbSwgNDY6ICRWbiwgNDg6IFsxLCAxMzZdLCA1MDogJFZvLCA1MjogJFZwLCA1MzogJFZxLCA1NDogJFZyLCA1OTogJFZzLCA2MDogJFZ0LCA2MTogJFZ1LCA2MjogJFZ2LCA3MDogJFZ3IH0sIHsgMTY6IFsxLCAxMzddIH0sIHsgMTY6IFsxLCAxMzhdIH0sIHsgNDogJFY0LCA1OiAkVjUsIDg6IDgsIDk6IDEwLCAxMjogMTIsIDEzOiAkVjYsIDE0OiAkVjcsIDE2OiBbMiwgNDJdLCAxNzogMTUsIDE4OiAkVjgsIDIxOiAkVjksIDIyOiA0MCwgMjM6ICRWYSwgMjQ6IDE5LCAyNTogMjAsIDI2OiAyMSwgMjc6IDIyLCAyODogMjMsIDI5OiAkVmIsIDMwOiAkVmMsIDMxOiAkVmQsIDMzOiAkVmUsIDM1OiAkVmYsIDM2OiAkVmcsIDM3OiAkVmgsIDM4OiAkVmksIDM5OiAkVmosIDQxOiAkVmssIDQzOiAkVmwsIDQ0OiAkVm0sIDQ2OiAkVm4sIDQ3OiBbMSwgMTM5XSwgNTA6ICRWbywgNTI6ICRWcCwgNTM6ICRWcSwgNTQ6ICRWciwgNTk6ICRWcywgNjA6ICRWdCwgNjE6ICRWdSwgNjI6ICRWdiwgNzA6ICRWdyB9LCB7IDQ6ICRWNCwgNTogJFY1LCA4OiA4LCA5OiAxMCwgMTI6IDEyLCAxMzogJFY2LCAxNDogJFY3LCAxNjogWzEsIDE0MF0sIDE3OiAxNSwgMTg6ICRWOCwgMjE6ICRWOSwgMjI6IDQwLCAyMzogJFZhLCAyNDogMTksIDI1OiAyMCwgMjY6IDIxLCAyNzogMjIsIDI4OiAyMywgMjk6ICRWYiwgMzA6ICRWYywgMzE6ICRWZCwgMzM6ICRWZSwgMzU6ICRWZiwgMzY6ICRWZywgMzc6ICRWaCwgMzg6ICRWaSwgMzk6ICRWaiwgNDE6ICRWaywgNDM6ICRWbCwgNDQ6ICRWbSwgNDY6ICRWbiwgNTA6ICRWbywgNTI6ICRWcCwgNTM6ICRWcSwgNTQ6ICRWciwgNTk6ICRWcywgNjA6ICRWdCwgNjE6ICRWdSwgNjI6ICRWdiwgNzA6ICRWdyB9LCB7IDE1OiBbMSwgMTQxXSB9LCBvKCRWeCwgWzIsIDQ5XSksIHsgMTU6IFsxLCAxNDJdIH0sIG8oJFZ4LCBbMiwgNTFdKSwgbygkVngsIFsyLCA1Ml0pLCB7IDIyOiAxNDMsIDcwOiAkVncgfSwgeyAyMjogMTQ0LCA3MDogJFZ3IH0sIHsgNTY6IDE0NSwgNzk6ICRWRSB9LCB7IDU2OiAxNDYsIDc5OiAkVkUgfSwgeyA1NjogMTQ3LCA3OTogJFZFIH0sIHsgNjQ6IFsxLCAxNDhdLCA3OTogWzIsIDYyXSB9LCB7IDU6IFsyLCA1NV0gfSwgeyA1OiBbMiwgNzddIH0sIHsgNTogWzIsIDU2XSB9LCB7IDU6IFsyLCA1N10gfSwgeyA1OiBbMiwgNThdIH0sIG8oJFZ4LCBbMiwgMTZdKSwgbygkVnksIFsyLCAxMF0pLCB7IDEyOiAxNDksIDUwOiAkVm8sIDUyOiAkVnAsIDUzOiAkVnEgfSwgbygkVnksIFsyLCAxMl0pLCBvKCRWeSwgWzIsIDEzXSksIG8oJFZ4LCBbMiwgMThdKSwgbygkVngsIFsyLCAzNF0pLCBvKCRWeCwgWzIsIDM1XSksIG8oJFZ4LCBbMiwgMzZdKSwgbygkVngsIFsyLCAzN10pLCB7IDE1OiBbMSwgMTUwXSB9LCBvKCRWeCwgWzIsIDM4XSksIHsgMTU6IFsxLCAxNTFdIH0sIG8oJFZ4LCBbMiwgMzldKSwgbygkVngsIFsyLCA0MF0pLCB7IDE1OiBbMSwgMTUyXSB9LCBvKCRWeCwgWzIsIDQxXSksIHsgNTogWzEsIDE1M10gfSwgeyA1OiBbMSwgMTU0XSB9LCB7IDU2OiAxNTUsIDc5OiAkVkUgfSwgeyA1NjogMTU2LCA3OTogJFZFIH0sIHsgNTogWzIsIDY3XSB9LCB7IDU6IFsyLCA1M10gfSwgeyA1OiBbMiwgNTRdIH0sIHsgMjI6IDE1NywgNzA6ICRWdyB9LCBvKCRWeSwgWzIsIDExXSksIG8oJFZBLCAkVjMsIHsgNzogMTAxLCA0MDogMTU4IH0pLCBvKCRWQiwgJFYzLCB7IDc6IDEwMywgNDI6IDE1OSB9KSwgbygkVkMsICRWMywgeyA3OiAxMDYsIDQ1OiAxNjAgfSksIG8oJFZ4LCBbMiwgNDhdKSwgbygkVngsIFsyLCA1MF0pLCB7IDU6IFsyLCA2NV0gfSwgeyA1OiBbMiwgNjZdIH0sIHsgNzk6IFsyLCA2MV0gfSwgeyAxNjogWzIsIDQ3XSB9LCB7IDE2OiBbMiwgNDVdIH0sIHsgMTY6IFsyLCA0M10gfV0sXG4gICAgZGVmYXVsdEFjdGlvbnM6IHsgNTogWzIsIDFdLCA2OiBbMiwgMl0sIDg1OiBbMiwgNjNdLCA4NjogWzIsIDY0XSwgMTE5OiBbMiwgNTVdLCAxMjA6IFsyLCA3N10sIDEyMTogWzIsIDU2XSwgMTIyOiBbMiwgNTddLCAxMjM6IFsyLCA1OF0sIDE0NTogWzIsIDY3XSwgMTQ2OiBbMiwgNTNdLCAxNDc6IFsyLCA1NF0sIDE1NTogWzIsIDY1XSwgMTU2OiBbMiwgNjZdLCAxNTc6IFsyLCA2MV0sIDE1ODogWzIsIDQ3XSwgMTU5OiBbMiwgNDVdLCAxNjA6IFsyLCA0M10gfSxcbiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgaWYgKGhhc2gucmVjb3ZlcmFibGUpIHtcbiAgICAgICAgdGhpcy50cmFjZShzdHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKHN0cik7XG4gICAgICAgIGVycm9yLmhhc2ggPSBoYXNoO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzLCBzdGFjayA9IFswXSwgdHN0YWNrID0gW10sIHZzdGFjayA9IFtudWxsXSwgbHN0YWNrID0gW10sIHRhYmxlID0gdGhpcy50YWJsZSwgeXl0ZXh0ID0gXCJcIiwgeXlsaW5lbm8gPSAwLCB5eWxlbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxO1xuICAgICAgdmFyIGFyZ3MgPSBsc3RhY2suc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGxleGVyMiA9IE9iamVjdC5jcmVhdGUodGhpcy5sZXhlcik7XG4gICAgICB2YXIgc2hhcmVkU3RhdGUgPSB7IHl5OiB7fSB9O1xuICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnl5KSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHtcbiAgICAgICAgICBzaGFyZWRTdGF0ZS55eVtrXSA9IHRoaXMueXlba107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxleGVyMi5zZXRJbnB1dChpbnB1dCwgc2hhcmVkU3RhdGUueXkpO1xuICAgICAgc2hhcmVkU3RhdGUueXkubGV4ZXIgPSBsZXhlcjI7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5wYXJzZXIgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBsZXhlcjIueXlsbG9jID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbGV4ZXIyLnl5bGxvYyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICAgIHZhciByYW5nZXMgPSBsZXhlcjIub3B0aW9ucyAmJiBsZXhlcjIub3B0aW9ucy5yYW5nZXM7XG4gICAgICBpZiAodHlwZW9mIHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCkgfHwgbGV4ZXIyLmxleCgpIHx8IEVPRjtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB0c3RhY2sgPSB0b2tlbjtcbiAgICAgICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0b2tlbiA9IHNlbGYuc3ltYm9sc19bdG9rZW5dIHx8IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cbiAgICAgIHZhciBzeW1ib2wsIHN0YXRlMiwgYWN0aW9uLCByLCB5eXZhbCA9IHt9LCBwLCBsZW4sIG5ld1N0YXRlLCBleHBlY3RlZDtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHN0YXRlMiA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZTJdKSB7XG4gICAgICAgICAgYWN0aW9uID0gdGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZTJdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChzeW1ib2wgPT09IG51bGwgfHwgdHlwZW9mIHN5bWJvbCA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBzeW1ib2wgPSBsZXgoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWN0aW9uID0gdGFibGVbc3RhdGUyXSAmJiB0YWJsZVtzdGF0ZTJdW3N5bWJvbF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09IFwidW5kZWZpbmVkXCIgfHwgIWFjdGlvbi5sZW5ndGggfHwgIWFjdGlvblswXSkge1xuICAgICAgICAgIHZhciBlcnJTdHIgPSBcIlwiO1xuICAgICAgICAgIGV4cGVjdGVkID0gW107XG4gICAgICAgICAgZm9yIChwIGluIHRhYmxlW3N0YXRlMl0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRlcm1pbmFsc19bcF0gJiYgcCA+IFRFUlJPUikge1xuICAgICAgICAgICAgICBleHBlY3RlZC5wdXNoKFwiJ1wiICsgdGhpcy50ZXJtaW5hbHNfW3BdICsgXCInXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGV4ZXIyLnNob3dQb3NpdGlvbikge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjpcXG5cIiArIGxleGVyMi5zaG93UG9zaXRpb24oKSArIFwiXFxuRXhwZWN0aW5nIFwiICsgZXhwZWN0ZWQuam9pbihcIiwgXCIpICsgXCIsIGdvdCAnXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOiBVbmV4cGVjdGVkIFwiICsgKHN5bWJvbCA9PSBFT0YgPyBcImVuZCBvZiBpbnB1dFwiIDogXCInXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wYXJzZUVycm9yKGVyclN0ciwge1xuICAgICAgICAgICAgdGV4dDogbGV4ZXIyLm1hdGNoLFxuICAgICAgICAgICAgdG9rZW46IHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCxcbiAgICAgICAgICAgIGxpbmU6IGxleGVyMi55eWxpbmVubyxcbiAgICAgICAgICAgIGxvYzogeXlsb2MsXG4gICAgICAgICAgICBleHBlY3RlZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25bMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBhY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcnNlIEVycm9yOiBtdWx0aXBsZSBhY3Rpb25zIHBvc3NpYmxlIGF0IHN0YXRlOiBcIiArIHN0YXRlMiArIFwiLCB0b2tlbjogXCIgKyBzeW1ib2wpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uWzBdKSB7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgc3RhY2sucHVzaChzeW1ib2wpO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2gobGV4ZXIyLnl5dGV4dCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaChsZXhlcjIueXlsbG9jKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goYWN0aW9uWzFdKTtcbiAgICAgICAgICAgIHN5bWJvbCA9IG51bGw7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHl5bGVuZyA9IGxleGVyMi55eWxlbmc7XG4gICAgICAgICAgICAgIHl5dGV4dCA9IGxleGVyMi55eXRleHQ7XG4gICAgICAgICAgICAgIHl5bGluZW5vID0gbGV4ZXIyLnl5bGluZW5vO1xuICAgICAgICAgICAgICB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICBsZW4gPSB0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzFdO1xuICAgICAgICAgICAgeXl2YWwuJCA9IHZzdGFja1t2c3RhY2subGVuZ3RoIC0gbGVuXTtcbiAgICAgICAgICAgIHl5dmFsLl8kID0ge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJhbmdlcykge1xuICAgICAgICAgICAgICB5eXZhbC5fJC5yYW5nZSA9IFtcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLnJhbmdlWzBdLFxuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ucmFuZ2VbMV1cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHIgPSB0aGlzLnBlcmZvcm1BY3Rpb24uYXBwbHkoeXl2YWwsIFtcbiAgICAgICAgICAgICAgeXl0ZXh0LFxuICAgICAgICAgICAgICB5eWxlbmcsXG4gICAgICAgICAgICAgIHl5bGluZW5vLFxuICAgICAgICAgICAgICBzaGFyZWRTdGF0ZS55eSxcbiAgICAgICAgICAgICAgYWN0aW9uWzFdLFxuICAgICAgICAgICAgICB2c3RhY2ssXG4gICAgICAgICAgICAgIGxzdGFja1xuICAgICAgICAgICAgXS5jb25jYXQoYXJncykpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlbikge1xuICAgICAgICAgICAgICBzdGFjayA9IHN0YWNrLnNsaWNlKDAsIC0xICogbGVuICogMik7XG4gICAgICAgICAgICAgIHZzdGFjayA9IHZzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICAgIGxzdGFjayA9IGxzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFjay5wdXNoKHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMF0pO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2goeXl2YWwuJCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaCh5eXZhbC5fJCk7XG4gICAgICAgICAgICBuZXdTdGF0ZSA9IHRhYmxlW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDJdXVtzdGFja1tzdGFjay5sZW5ndGggLSAxXV07XG4gICAgICAgICAgICBzdGFjay5wdXNoKG5ld1N0YXRlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH07XG4gIHZhciBsZXhlciA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBsZXhlcjIgPSB7XG4gICAgICBFT0Y6IDEsXG4gICAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgICBpZiAodGhpcy55eS5wYXJzZXIpIHtcbiAgICAgICAgICB0aGlzLnl5LnBhcnNlci5wYXJzZUVycm9yKHN0ciwgaGFzaCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHN0cik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXNldHMgdGhlIGxleGVyLCBzZXRzIG5ldyBpbnB1dFxuICAgICAgc2V0SW5wdXQ6IGZ1bmN0aW9uKGlucHV0LCB5eSkge1xuICAgICAgICB0aGlzLnl5ID0geXkgfHwgdGhpcy55eSB8fCB7fTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRoaXMuX2JhY2t0cmFjayA9IHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnl5bGluZW5vID0gdGhpcy55eWxlbmcgPSAwO1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrID0gW1wiSU5JVElBTFwiXTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IDAsXG4gICAgICAgICAgbGFzdF9saW5lOiAxLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiAwXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbMCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBjb25zdW1lcyBhbmQgcmV0dXJucyBvbmUgY2hhciBmcm9tIHRoZSBpbnB1dFxuICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY2ggPSB0aGlzLl9pbnB1dFswXTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gY2g7XG4gICAgICAgIHRoaXMueXlsZW5nKys7XG4gICAgICAgIHRoaXMub2Zmc2V0Kys7XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gY2g7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBjaDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2gubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vKys7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9saW5lKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9jb2x1bW4rKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlWzFdKys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZSgxKTtcbiAgICAgICAgcmV0dXJuIGNoO1xuICAgICAgfSxcbiAgICAgIC8vIHVuc2hpZnRzIG9uZSBjaGFyIChvciBhIHN0cmluZykgaW50byB0aGUgaW5wdXRcbiAgICAgIHVucHV0OiBmdW5jdGlvbihjaCkge1xuICAgICAgICB2YXIgbGVuID0gY2gubGVuZ3RoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGNoICsgdGhpcy5faW5wdXQ7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy55eXRleHQuc3Vic3RyKDAsIHRoaXMueXl0ZXh0Lmxlbmd0aCAtIGxlbik7XG4gICAgICAgIHRoaXMub2Zmc2V0IC09IGxlbjtcbiAgICAgICAgdmFyIG9sZExpbmVzID0gdGhpcy5tYXRjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLm1hdGNoID0gdGhpcy5tYXRjaC5zdWJzdHIoMCwgdGhpcy5tYXRjaC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gMSk7XG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyAtPSBsaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHZhciByID0gdGhpcy55eWxsb2MucmFuZ2U7XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyAobGluZXMubGVuZ3RoID09PSBvbGRMaW5lcy5sZW5ndGggPyB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gOiAwKSArIG9sZExpbmVzW29sZExpbmVzLmxlbmd0aCAtIGxpbmVzLmxlbmd0aF0ubGVuZ3RoIC0gbGluZXNbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIC0gbGVuXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbclswXSwgclswXSArIHRoaXMueXlsZW5nIC0gbGVuXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIGNhY2hlcyBtYXRjaGVkIHRleHQgYW5kIGFwcGVuZHMgaXQgb24gbmV4dCBhY3Rpb25cbiAgICAgIG1vcmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLl9tb3JlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIHNpZ25hbHMgdGhlIGxleGVyIHRoYXQgdGhpcyBydWxlIGZhaWxzIHRvIG1hdGNoIHRoZSBpbnB1dCwgc28gdGhlIG5leHQgbWF0Y2hpbmcgcnVsZSAocmVnZXgpIHNob3VsZCBiZSB0ZXN0ZWQgaW5zdGVhZC5cbiAgICAgIHJlamVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBZb3UgY2FuIG9ubHkgaW52b2tlIHJlamVjdCgpIGluIHRoZSBsZXhlciB3aGVuIHRoZSBsZXhlciBpcyBvZiB0aGUgYmFja3RyYWNraW5nIHBlcnN1YXNpb24gKG9wdGlvbnMuYmFja3RyYWNrX2xleGVyID0gdHJ1ZSkuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gcmV0YWluIGZpcnN0IG4gY2hhcmFjdGVycyBvZiB0aGUgbWF0Y2hcbiAgICAgIGxlc3M6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdGhpcy51bnB1dCh0aGlzLm1hdGNoLnNsaWNlKG4pKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyBhbHJlYWR5IG1hdGNoZWQgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBwYXN0SW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcGFzdCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIHRoaXMubWF0Y2gubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIChwYXN0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpICsgcGFzdC5zdWJzdHIoLTIwKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdXBjb21pbmcgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICB1cGNvbWluZ0lucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLm1hdGNoO1xuICAgICAgICBpZiAobmV4dC5sZW5ndGggPCAyMCkge1xuICAgICAgICAgIG5leHQgKz0gdGhpcy5faW5wdXQuc3Vic3RyKDAsIDIwIC0gbmV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAobmV4dC5zdWJzdHIoMCwgMjApICsgKG5leHQubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikpLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB0aGUgY2hhcmFjdGVyIHBvc2l0aW9uIHdoZXJlIHRoZSBsZXhpbmcgZXJyb3Igb2NjdXJyZWQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBzaG93UG9zaXRpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcHJlID0gdGhpcy5wYXN0SW5wdXQoKTtcbiAgICAgICAgdmFyIGMgPSBuZXcgQXJyYXkocHJlLmxlbmd0aCArIDEpLmpvaW4oXCItXCIpO1xuICAgICAgICByZXR1cm4gcHJlICsgdGhpcy51cGNvbWluZ0lucHV0KCkgKyBcIlxcblwiICsgYyArIFwiXlwiO1xuICAgICAgfSxcbiAgICAgIC8vIHRlc3QgdGhlIGxleGVkIHRva2VuOiByZXR1cm4gRkFMU0Ugd2hlbiBub3QgYSBtYXRjaCwgb3RoZXJ3aXNlIHJldHVybiB0b2tlblxuICAgICAgdGVzdF9tYXRjaDogZnVuY3Rpb24obWF0Y2gsIGluZGV4ZWRfcnVsZSkge1xuICAgICAgICB2YXIgdG9rZW4sIGxpbmVzLCBiYWNrdXA7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgYmFja3VwID0ge1xuICAgICAgICAgICAgeXlsaW5lbm86IHRoaXMueXlsaW5lbm8sXG4gICAgICAgICAgICB5eWxsb2M6IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHl5dGV4dDogdGhpcy55eXRleHQsXG4gICAgICAgICAgICBtYXRjaDogdGhpcy5tYXRjaCxcbiAgICAgICAgICAgIG1hdGNoZXM6IHRoaXMubWF0Y2hlcyxcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRoaXMubWF0Y2hlZCxcbiAgICAgICAgICAgIHl5bGVuZzogdGhpcy55eWxlbmcsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgX21vcmU6IHRoaXMuX21vcmUsXG4gICAgICAgICAgICBfaW5wdXQ6IHRoaXMuX2lucHV0LFxuICAgICAgICAgICAgeXk6IHRoaXMueXksXG4gICAgICAgICAgICBjb25kaXRpb25TdGFjazogdGhpcy5jb25kaXRpb25TdGFjay5zbGljZSgwKSxcbiAgICAgICAgICAgIGRvbmU6IHRoaXMuZG9uZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICAgIGJhY2t1cC55eWxsb2MucmFuZ2UgPSB0aGlzLnl5bGxvYy5yYW5nZS5zbGljZSgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMgPSBtYXRjaFswXS5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gKz0gbGluZXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmxhc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoIC0gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubWF0Y2goL1xccj9cXG4/LylbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4gKyBtYXRjaFswXS5sZW5ndGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2hlcyA9IG1hdGNoO1xuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFt0aGlzLm9mZnNldCwgdGhpcy5vZmZzZXQgKz0gdGhpcy55eWxlbmddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21vcmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UobWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IG1hdGNoWzBdO1xuICAgICAgICB0b2tlbiA9IHRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHRoaXMsIHRoaXMueXksIHRoaXMsIGluZGV4ZWRfcnVsZSwgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSAmJiB0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICBmb3IgKHZhciBrIGluIGJhY2t1cCkge1xuICAgICAgICAgICAgdGhpc1trXSA9IGJhY2t1cFtrXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCBpbiBpbnB1dFxuICAgICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmRvbmUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRva2VuLCBtYXRjaCwgdGVtcE1hdGNoLCBpbmRleDtcbiAgICAgICAgaWYgKCF0aGlzLl9tb3JlKSB7XG4gICAgICAgICAgdGhpcy55eXRleHQgPSBcIlwiO1xuICAgICAgICAgIHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBydWxlcyA9IHRoaXMuX2N1cnJlbnRSdWxlcygpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGVtcE1hdGNoID0gdGhpcy5faW5wdXQubWF0Y2godGhpcy5ydWxlc1tydWxlc1tpXV0pO1xuICAgICAgICAgIGlmICh0ZW1wTWF0Y2ggJiYgKCFtYXRjaCB8fCB0ZW1wTWF0Y2hbMF0ubGVuZ3RoID4gbWF0Y2hbMF0ubGVuZ3RoKSkge1xuICAgICAgICAgICAgbWF0Y2ggPSB0ZW1wTWF0Y2g7XG4gICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaCh0ZW1wTWF0Y2gsIHJ1bGVzW2ldKTtcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRpb25zLmZsZXgpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKG1hdGNoLCBydWxlc1tpbmRleF0pO1xuICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dCA9PT0gXCJcIikge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBVbnJlY29nbml6ZWQgdGV4dC5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIHRoYXQgaGFzIGEgdG9rZW5cbiAgICAgIGxleDogZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgciA9IHRoaXMubmV4dCgpO1xuICAgICAgICBpZiAocikge1xuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxleCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWN0aXZhdGVzIGEgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSAocHVzaGVzIHRoZSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9udG8gdGhlIGNvbmRpdGlvbiBzdGFjaylcbiAgICAgIGJlZ2luOiBmdW5jdGlvbiBiZWdpbihjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjay5wdXNoKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcG9wIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGUgb2ZmIHRoZSBjb25kaXRpb24gc3RhY2tcbiAgICAgIHBvcFN0YXRlOiBmdW5jdGlvbiBwb3BTdGF0ZSgpIHtcbiAgICAgICAgdmFyIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDE7XG4gICAgICAgIGlmIChuID4gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLnBvcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrWzBdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcHJvZHVjZSB0aGUgbGV4ZXIgcnVsZSBzZXQgd2hpY2ggaXMgYWN0aXZlIGZvciB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGVcbiAgICAgIF9jdXJyZW50UnVsZXM6IGZ1bmN0aW9uIF9jdXJyZW50UnVsZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAmJiB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW3RoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXV0ucnVsZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1tcIklOSVRJQUxcIl0ucnVsZXM7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlOyB3aGVuIGFuIGluZGV4IGFyZ3VtZW50IGlzIHByb3ZpZGVkIGl0IHByb2R1Y2VzIHRoZSBOLXRoIHByZXZpb3VzIGNvbmRpdGlvbiBzdGF0ZSwgaWYgYXZhaWxhYmxlXG4gICAgICB0b3BTdGF0ZTogZnVuY3Rpb24gdG9wU3RhdGUobikge1xuICAgICAgICBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxIC0gTWF0aC5hYnMobiB8fCAwKTtcbiAgICAgICAgaWYgKG4gPj0gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrW25dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBcIklOSVRJQUxcIjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFsaWFzIGZvciBiZWdpbihjb25kaXRpb24pXG4gICAgICBwdXNoU3RhdGU6IGZ1bmN0aW9uIHB1c2hTdGF0ZShjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5iZWdpbihjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXRlcyBjdXJyZW50bHkgb24gdGhlIHN0YWNrXG4gICAgICBzdGF0ZVN0YWNrU2l6ZTogZnVuY3Rpb24gc3RhdGVTdGFja1NpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aDtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7IFwiY2FzZS1pbnNlbnNpdGl2ZVwiOiB0cnVlIH0sXG4gICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXksIHl5XywgJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucywgWVlfU1RBUlQpIHtcbiAgICAgICAgc3dpdGNoICgkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zKSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmV0dXJuIDU7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgcmV0dXJuIDE5O1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJMSU5FXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE0O1xuICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJJRFwiKTtcbiAgICAgICAgICAgIHJldHVybiA1MDtcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiSURcIik7XG4gICAgICAgICAgICByZXR1cm4gNTI7XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIHJldHVybiAxMztcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIklEXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDUzO1xuICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0geXlfLnl5dGV4dC50cmltKCk7XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiQUxJQVNcIik7XG4gICAgICAgICAgICByZXR1cm4gNzA7XG4gICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJMSU5FXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDUxO1xuICAgICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gNTtcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIkxJTkVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzY7XG4gICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJMSU5FXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM3O1xuICAgICAgICAgIGNhc2UgMTc6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiTElORVwiKTtcbiAgICAgICAgICAgIHJldHVybiAzODtcbiAgICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIkxJTkVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzk7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJMSU5FXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ5O1xuICAgICAgICAgIGNhc2UgMjA6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiTElORVwiKTtcbiAgICAgICAgICAgIHJldHVybiA0MTtcbiAgICAgICAgICBjYXNlIDIxOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIkxJTkVcIik7XG4gICAgICAgICAgICByZXR1cm4gNDM7XG4gICAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJMSU5FXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ4O1xuICAgICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiTElORVwiKTtcbiAgICAgICAgICAgIHJldHVybiA0NDtcbiAgICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIkxJTkVcIik7XG4gICAgICAgICAgICByZXR1cm4gNDc7XG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJMSU5FXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ2O1xuICAgICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gMTU7XG4gICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgIHJldHVybiAxNjtcbiAgICAgICAgICBjYXNlIDI4OlxuICAgICAgICAgICAgcmV0dXJuIDY1O1xuICAgICAgICAgIGNhc2UgMjk6XG4gICAgICAgICAgICByZXR1cm4gNjY7XG4gICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICAgIHJldHVybiA1OTtcbiAgICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgICAgcmV0dXJuIDYwO1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgICByZXR1cm4gNjE7XG4gICAgICAgICAgY2FzZSAzMzpcbiAgICAgICAgICAgIHJldHVybiA2MjtcbiAgICAgICAgICBjYXNlIDM0OlxuICAgICAgICAgICAgcmV0dXJuIDU3O1xuICAgICAgICAgIGNhc2UgMzU6XG4gICAgICAgICAgICByZXR1cm4gNTQ7XG4gICAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJJRFwiKTtcbiAgICAgICAgICAgIHJldHVybiAyMTtcbiAgICAgICAgICBjYXNlIDM3OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIklEXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDIzO1xuICAgICAgICAgIGNhc2UgMzg6XG4gICAgICAgICAgICByZXR1cm4gMjk7XG4gICAgICAgICAgY2FzZSAzOTpcbiAgICAgICAgICAgIHJldHVybiAzMDtcbiAgICAgICAgICBjYXNlIDQwOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY190aXRsZVwiKTtcbiAgICAgICAgICAgIHJldHVybiAzMTtcbiAgICAgICAgICBjYXNlIDQxOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX3RpdGxlX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSA0MjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfZGVzY3JcIik7XG4gICAgICAgICAgICByZXR1cm4gMzM7XG4gICAgICAgICAgY2FzZSA0MzpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjcl92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgNDQ6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiYWNjX2Rlc2NyX211bHRpbGluZVwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNDU6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQ2OlxuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgNDc6XG4gICAgICAgICAgICByZXR1cm4gNjtcbiAgICAgICAgICBjYXNlIDQ4OlxuICAgICAgICAgICAgcmV0dXJuIDE4O1xuICAgICAgICAgIGNhc2UgNDk6XG4gICAgICAgICAgICByZXR1cm4gMjA7XG4gICAgICAgICAgY2FzZSA1MDpcbiAgICAgICAgICAgIHJldHVybiA2NDtcbiAgICAgICAgICBjYXNlIDUxOlxuICAgICAgICAgICAgcmV0dXJuIDU7XG4gICAgICAgICAgY2FzZSA1MjpcbiAgICAgICAgICAgIHl5Xy55eXRleHQgPSB5eV8ueXl0ZXh0LnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiA3MDtcbiAgICAgICAgICBjYXNlIDUzOlxuICAgICAgICAgICAgcmV0dXJuIDczO1xuICAgICAgICAgIGNhc2UgNTQ6XG4gICAgICAgICAgICByZXR1cm4gNzQ7XG4gICAgICAgICAgY2FzZSA1NTpcbiAgICAgICAgICAgIHJldHVybiA3MTtcbiAgICAgICAgICBjYXNlIDU2OlxuICAgICAgICAgICAgcmV0dXJuIDcyO1xuICAgICAgICAgIGNhc2UgNTc6XG4gICAgICAgICAgICByZXR1cm4gNzU7XG4gICAgICAgICAgY2FzZSA1ODpcbiAgICAgICAgICAgIHJldHVybiA3NjtcbiAgICAgICAgICBjYXNlIDU5OlxuICAgICAgICAgICAgcmV0dXJuIDc3O1xuICAgICAgICAgIGNhc2UgNjA6XG4gICAgICAgICAgICByZXR1cm4gNzg7XG4gICAgICAgICAgY2FzZSA2MTpcbiAgICAgICAgICAgIHJldHVybiA3OTtcbiAgICAgICAgICBjYXNlIDYyOlxuICAgICAgICAgICAgcmV0dXJuIDY4O1xuICAgICAgICAgIGNhc2UgNjM6XG4gICAgICAgICAgICByZXR1cm4gNjk7XG4gICAgICAgICAgY2FzZSA2NDpcbiAgICAgICAgICAgIHJldHVybiA1O1xuICAgICAgICAgIGNhc2UgNjU6XG4gICAgICAgICAgICByZXR1cm4gXCJJTlZBTElEXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczogWy9eKD86W1xcbl0rKS9pLCAvXig/OlxccyspL2ksIC9eKD86KCg/IVxcbilcXHMpKykvaSwgL14oPzojW15cXG5dKikvaSwgL14oPzolKD8hXFx7KVteXFxuXSopL2ksIC9eKD86W15cXH1dJSVbXlxcbl0qKS9pLCAvXig/OlswLTldKyg/PVsgXFxuXSspKS9pLCAvXig/OmJveFxcYikvaSwgL14oPzpwYXJ0aWNpcGFudFxcYikvaSwgL14oPzphY3RvclxcYikvaSwgL14oPzpjcmVhdGVcXGIpL2ksIC9eKD86ZGVzdHJveVxcYikvaSwgL14oPzpbXlxcLT46XFxuLDtdKz8oW1xcLV0qW15cXC0+Olxcbiw7XSs/KSo/KD89KCg/IVxcbilcXHMpK2FzKD8hXFxuKVxcc3xbI1xcbjtdfCQpKS9pLCAvXig/OmFzXFxiKS9pLCAvXig/Oig/OikpL2ksIC9eKD86bG9vcFxcYikvaSwgL14oPzpyZWN0XFxiKS9pLCAvXig/Om9wdFxcYikvaSwgL14oPzphbHRcXGIpL2ksIC9eKD86ZWxzZVxcYikvaSwgL14oPzpwYXJcXGIpL2ksIC9eKD86cGFyX292ZXJcXGIpL2ksIC9eKD86YW5kXFxiKS9pLCAvXig/OmNyaXRpY2FsXFxiKS9pLCAvXig/Om9wdGlvblxcYikvaSwgL14oPzpicmVha1xcYikvaSwgL14oPzooPzpbOl0/KD86bm8pP3dyYXApP1teI1xcbjtdKikvaSwgL14oPzplbmRcXGIpL2ksIC9eKD86bGVmdCBvZlxcYikvaSwgL14oPzpyaWdodCBvZlxcYikvaSwgL14oPzpsaW5rc1xcYikvaSwgL14oPzpsaW5rXFxiKS9pLCAvXig/OnByb3BlcnRpZXNcXGIpL2ksIC9eKD86ZGV0YWlsc1xcYikvaSwgL14oPzpvdmVyXFxiKS9pLCAvXig/Om5vdGVcXGIpL2ksIC9eKD86YWN0aXZhdGVcXGIpL2ksIC9eKD86ZGVhY3RpdmF0ZVxcYikvaSwgL14oPzp0aXRsZVxcc1teI1xcbjtdKykvaSwgL14oPzp0aXRsZTpcXHNbXiNcXG47XSspL2ksIC9eKD86YWNjVGl0bGVcXHMqOlxccyopL2ksIC9eKD86KD8hXFxufHwpKlteXFxuXSopL2ksIC9eKD86YWNjRGVzY3JcXHMqOlxccyopL2ksIC9eKD86KD8hXFxufHwpKlteXFxuXSopL2ksIC9eKD86YWNjRGVzY3JcXHMqXFx7XFxzKikvaSwgL14oPzpbXFx9XSkvaSwgL14oPzpbXlxcfV0qKS9pLCAvXig/OnNlcXVlbmNlRGlhZ3JhbVxcYikvaSwgL14oPzphdXRvbnVtYmVyXFxiKS9pLCAvXig/Om9mZlxcYikvaSwgL14oPzosKS9pLCAvXig/OjspL2ksIC9eKD86W15cXCtcXC0+Olxcbiw7XSsoKD8hKC14fC0teHwtXFwpfC0tXFwpKSlbXFwtXSpbXlxcK1xcLT46XFxuLDtdKykqKS9pLCAvXig/Oi0+PikvaSwgL14oPzotLT4+KS9pLCAvXig/Oi0+KS9pLCAvXig/Oi0tPikvaSwgL14oPzotW3hdKS9pLCAvXig/Oi0tW3hdKS9pLCAvXig/Oi1bXFwpXSkvaSwgL14oPzotLVtcXCldKS9pLCAvXig/OjooPzooPzpubyk/d3JhcCk/W14jXFxuO10rKS9pLCAvXig/OlxcKykvaSwgL14oPzotKS9pLCAvXig/OiQpL2ksIC9eKD86LikvaV0sXG4gICAgICBjb25kaXRpb25zOiB7IFwiYWNjX2Rlc2NyX211bHRpbGluZVwiOiB7IFwicnVsZXNcIjogWzQ1LCA0Nl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX2Rlc2NyXCI6IHsgXCJydWxlc1wiOiBbNDNdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY190aXRsZVwiOiB7IFwicnVsZXNcIjogWzQxXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJRFwiOiB7IFwicnVsZXNcIjogWzIsIDMsIDEyXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJBTElBU1wiOiB7IFwicnVsZXNcIjogWzIsIDMsIDEzLCAxNF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiTElORVwiOiB7IFwicnVsZXNcIjogWzIsIDMsIDI2XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMSwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDIsIDQ0LCA0NywgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NV0sIFwiaW5jbHVzaXZlXCI6IHRydWUgfSB9XG4gICAgfTtcbiAgICByZXR1cm4gbGV4ZXIyO1xuICB9KCk7XG4gIHBhcnNlcjIubGV4ZXIgPSBsZXhlcjtcbiAgZnVuY3Rpb24gUGFyc2VyKCkge1xuICAgIHRoaXMueXkgPSB7fTtcbiAgfVxuICBQYXJzZXIucHJvdG90eXBlID0gcGFyc2VyMjtcbiAgcGFyc2VyMi5QYXJzZXIgPSBQYXJzZXI7XG4gIHJldHVybiBuZXcgUGFyc2VyKCk7XG59KCk7XG5wYXJzZXIucGFyc2VyID0gcGFyc2VyO1xuY29uc3QgcGFyc2VyJDEgPSBwYXJzZXI7XG5jbGFzcyBJbXBlcmF0aXZlU3RhdGUge1xuICAvKipcbiAgICogQHBhcmFtIGluaXQgLSBGdW5jdGlvbiB0aGF0IGNyZWF0ZXMgdGhlIGRlZmF1bHQgc3RhdGUuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihpbml0KSB7XG4gICAgdGhpcy5pbml0ID0gaW5pdDtcbiAgICB0aGlzLnJlY29yZHMgPSB0aGlzLmluaXQoKTtcbiAgfVxuICByZXNldCgpIHtcbiAgICB0aGlzLnJlY29yZHMgPSB0aGlzLmluaXQoKTtcbiAgfVxufVxuY29uc3Qgc3RhdGUgPSBuZXcgSW1wZXJhdGl2ZVN0YXRlKCgpID0+ICh7XG4gIHByZXZBY3Rvcjogdm9pZCAwLFxuICBhY3RvcnM6IHt9LFxuICBjcmVhdGVkQWN0b3JzOiB7fSxcbiAgZGVzdHJveWVkQWN0b3JzOiB7fSxcbiAgYm94ZXM6IFtdLFxuICBtZXNzYWdlczogW10sXG4gIG5vdGVzOiBbXSxcbiAgc2VxdWVuY2VOdW1iZXJzRW5hYmxlZDogZmFsc2UsXG4gIHdyYXBFbmFibGVkOiB2b2lkIDAsXG4gIGN1cnJlbnRCb3g6IHZvaWQgMCxcbiAgbGFzdENyZWF0ZWQ6IHZvaWQgMCxcbiAgbGFzdERlc3Ryb3llZDogdm9pZCAwXG59KSk7XG5jb25zdCBhZGRCb3ggPSBmdW5jdGlvbihkYXRhKSB7XG4gIHN0YXRlLnJlY29yZHMuYm94ZXMucHVzaCh7XG4gICAgbmFtZTogZGF0YS50ZXh0LFxuICAgIHdyYXA6IGRhdGEud3JhcCA9PT0gdm9pZCAwICYmIGF1dG9XcmFwKCkgfHwgISFkYXRhLndyYXAsXG4gICAgZmlsbDogZGF0YS5jb2xvcixcbiAgICBhY3RvcktleXM6IFtdXG4gIH0pO1xuICBzdGF0ZS5yZWNvcmRzLmN1cnJlbnRCb3ggPSBzdGF0ZS5yZWNvcmRzLmJveGVzLnNsaWNlKC0xKVswXTtcbn07XG5jb25zdCBhZGRBY3RvciA9IGZ1bmN0aW9uKGlkLCBuYW1lLCBkZXNjcmlwdGlvbiwgdHlwZSkge1xuICBsZXQgYXNzaWduZWRCb3ggPSBzdGF0ZS5yZWNvcmRzLmN1cnJlbnRCb3g7XG4gIGNvbnN0IG9sZCA9IHN0YXRlLnJlY29yZHMuYWN0b3JzW2lkXTtcbiAgaWYgKG9sZCkge1xuICAgIGlmIChzdGF0ZS5yZWNvcmRzLmN1cnJlbnRCb3ggJiYgb2xkLmJveCAmJiBzdGF0ZS5yZWNvcmRzLmN1cnJlbnRCb3ggIT09IG9sZC5ib3gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBIHNhbWUgcGFydGljaXBhbnQgc2hvdWxkIG9ubHkgYmUgZGVmaW5lZCBpbiBvbmUgQm94OiBcIiArIG9sZC5uYW1lICsgXCIgY2FuJ3QgYmUgaW4gJ1wiICsgb2xkLmJveC5uYW1lICsgXCInIGFuZCBpbiAnXCIgKyBzdGF0ZS5yZWNvcmRzLmN1cnJlbnRCb3gubmFtZSArIFwiJyBhdCB0aGUgc2FtZSB0aW1lLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBhc3NpZ25lZEJveCA9IG9sZC5ib3ggPyBvbGQuYm94IDogc3RhdGUucmVjb3Jkcy5jdXJyZW50Qm94O1xuICAgIG9sZC5ib3ggPSBhc3NpZ25lZEJveDtcbiAgICBpZiAob2xkICYmIG5hbWUgPT09IG9sZC5uYW1lICYmIGRlc2NyaXB0aW9uID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgaWYgKGRlc2NyaXB0aW9uID09IG51bGwgfHwgZGVzY3JpcHRpb24udGV4dCA9PSBudWxsKSB7XG4gICAgZGVzY3JpcHRpb24gPSB7IHRleHQ6IG5hbWUsIHdyYXA6IG51bGwsIHR5cGUgfTtcbiAgfVxuICBpZiAodHlwZSA9PSBudWxsIHx8IGRlc2NyaXB0aW9uLnRleHQgPT0gbnVsbCkge1xuICAgIGRlc2NyaXB0aW9uID0geyB0ZXh0OiBuYW1lLCB3cmFwOiBudWxsLCB0eXBlIH07XG4gIH1cbiAgc3RhdGUucmVjb3Jkcy5hY3RvcnNbaWRdID0ge1xuICAgIGJveDogYXNzaWduZWRCb3gsXG4gICAgbmFtZSxcbiAgICBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24udGV4dCxcbiAgICB3cmFwOiBkZXNjcmlwdGlvbi53cmFwID09PSB2b2lkIDAgJiYgYXV0b1dyYXAoKSB8fCAhIWRlc2NyaXB0aW9uLndyYXAsXG4gICAgcHJldkFjdG9yOiBzdGF0ZS5yZWNvcmRzLnByZXZBY3RvcixcbiAgICBsaW5rczoge30sXG4gICAgcHJvcGVydGllczoge30sXG4gICAgYWN0b3JDbnQ6IG51bGwsXG4gICAgcmVjdERhdGE6IG51bGwsXG4gICAgdHlwZTogdHlwZSB8fCBcInBhcnRpY2lwYW50XCJcbiAgfTtcbiAgaWYgKHN0YXRlLnJlY29yZHMucHJldkFjdG9yICYmIHN0YXRlLnJlY29yZHMuYWN0b3JzW3N0YXRlLnJlY29yZHMucHJldkFjdG9yXSkge1xuICAgIHN0YXRlLnJlY29yZHMuYWN0b3JzW3N0YXRlLnJlY29yZHMucHJldkFjdG9yXS5uZXh0QWN0b3IgPSBpZDtcbiAgfVxuICBpZiAoc3RhdGUucmVjb3Jkcy5jdXJyZW50Qm94KSB7XG4gICAgc3RhdGUucmVjb3Jkcy5jdXJyZW50Qm94LmFjdG9yS2V5cy5wdXNoKGlkKTtcbiAgfVxuICBzdGF0ZS5yZWNvcmRzLnByZXZBY3RvciA9IGlkO1xufTtcbmNvbnN0IGFjdGl2YXRpb25Db3VudCA9IChwYXJ0KSA9PiB7XG4gIGxldCBpO1xuICBsZXQgY291bnQgPSAwO1xuICBmb3IgKGkgPSAwOyBpIDwgc3RhdGUucmVjb3Jkcy5tZXNzYWdlcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzdGF0ZS5yZWNvcmRzLm1lc3NhZ2VzW2ldLnR5cGUgPT09IExJTkVUWVBFLkFDVElWRV9TVEFSVCAmJiBzdGF0ZS5yZWNvcmRzLm1lc3NhZ2VzW2ldLmZyb20uYWN0b3IgPT09IHBhcnQpIHtcbiAgICAgIGNvdW50Kys7XG4gICAgfVxuICAgIGlmIChzdGF0ZS5yZWNvcmRzLm1lc3NhZ2VzW2ldLnR5cGUgPT09IExJTkVUWVBFLkFDVElWRV9FTkQgJiYgc3RhdGUucmVjb3Jkcy5tZXNzYWdlc1tpXS5mcm9tLmFjdG9yID09PSBwYXJ0KSB7XG4gICAgICBjb3VudC0tO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY291bnQ7XG59O1xuY29uc3QgYWRkTWVzc2FnZSA9IGZ1bmN0aW9uKGlkRnJvbSwgaWRUbywgbWVzc2FnZSwgYW5zd2VyKSB7XG4gIHN0YXRlLnJlY29yZHMubWVzc2FnZXMucHVzaCh7XG4gICAgZnJvbTogaWRGcm9tLFxuICAgIHRvOiBpZFRvLFxuICAgIG1lc3NhZ2U6IG1lc3NhZ2UudGV4dCxcbiAgICB3cmFwOiBtZXNzYWdlLndyYXAgPT09IHZvaWQgMCAmJiBhdXRvV3JhcCgpIHx8ICEhbWVzc2FnZS53cmFwLFxuICAgIGFuc3dlclxuICB9KTtcbn07XG5jb25zdCBhZGRTaWduYWwgPSBmdW5jdGlvbihpZEZyb20sIGlkVG8sIG1lc3NhZ2UgPSB7IHRleHQ6IHZvaWQgMCwgd3JhcDogdm9pZCAwIH0sIG1lc3NhZ2VUeXBlLCBhY3RpdmF0ZSA9IGZhbHNlKSB7XG4gIGlmIChtZXNzYWdlVHlwZSA9PT0gTElORVRZUEUuQUNUSVZFX0VORCkge1xuICAgIGNvbnN0IGNudCA9IGFjdGl2YXRpb25Db3VudChpZEZyb20uYWN0b3IpO1xuICAgIGlmIChjbnQgPCAxKSB7XG4gICAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IoXCJUcnlpbmcgdG8gaW5hY3RpdmF0ZSBhbiBpbmFjdGl2ZSBwYXJ0aWNpcGFudCAoXCIgKyBpZEZyb20uYWN0b3IgKyBcIilcIik7XG4gICAgICBlcnJvci5oYXNoID0ge1xuICAgICAgICB0ZXh0OiBcIi0+Pi1cIixcbiAgICAgICAgdG9rZW46IFwiLT4+LVwiLFxuICAgICAgICBsaW5lOiBcIjFcIixcbiAgICAgICAgbG9jOiB7IGZpcnN0X2xpbmU6IDEsIGxhc3RfbGluZTogMSwgZmlyc3RfY29sdW1uOiAxLCBsYXN0X2NvbHVtbjogMSB9LFxuICAgICAgICBleHBlY3RlZDogW1wiJ0FDVElWRV9QQVJUSUNJUEFOVCdcIl1cbiAgICAgIH07XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbiAgc3RhdGUucmVjb3Jkcy5tZXNzYWdlcy5wdXNoKHtcbiAgICBmcm9tOiBpZEZyb20sXG4gICAgdG86IGlkVG8sXG4gICAgbWVzc2FnZTogbWVzc2FnZS50ZXh0LFxuICAgIHdyYXA6IG1lc3NhZ2Uud3JhcCA9PT0gdm9pZCAwICYmIGF1dG9XcmFwKCkgfHwgISFtZXNzYWdlLndyYXAsXG4gICAgdHlwZTogbWVzc2FnZVR5cGUsXG4gICAgYWN0aXZhdGVcbiAgfSk7XG4gIHJldHVybiB0cnVlO1xufTtcbmNvbnN0IGhhc0F0TGVhc3RPbmVCb3ggPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHN0YXRlLnJlY29yZHMuYm94ZXMubGVuZ3RoID4gMDtcbn07XG5jb25zdCBoYXNBdExlYXN0T25lQm94V2l0aFRpdGxlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBzdGF0ZS5yZWNvcmRzLmJveGVzLnNvbWUoKGIpID0+IGIubmFtZSk7XG59O1xuY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHN0YXRlLnJlY29yZHMubWVzc2FnZXM7XG59O1xuY29uc3QgZ2V0Qm94ZXMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHN0YXRlLnJlY29yZHMuYm94ZXM7XG59O1xuY29uc3QgZ2V0QWN0b3JzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBzdGF0ZS5yZWNvcmRzLmFjdG9ycztcbn07XG5jb25zdCBnZXRDcmVhdGVkQWN0b3JzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBzdGF0ZS5yZWNvcmRzLmNyZWF0ZWRBY3RvcnM7XG59O1xuY29uc3QgZ2V0RGVzdHJveWVkQWN0b3JzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBzdGF0ZS5yZWNvcmRzLmRlc3Ryb3llZEFjdG9ycztcbn07XG5jb25zdCBnZXRBY3RvciA9IGZ1bmN0aW9uKGlkKSB7XG4gIHJldHVybiBzdGF0ZS5yZWNvcmRzLmFjdG9yc1tpZF07XG59O1xuY29uc3QgZ2V0QWN0b3JLZXlzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhzdGF0ZS5yZWNvcmRzLmFjdG9ycyk7XG59O1xuY29uc3QgZW5hYmxlU2VxdWVuY2VOdW1iZXJzID0gZnVuY3Rpb24oKSB7XG4gIHN0YXRlLnJlY29yZHMuc2VxdWVuY2VOdW1iZXJzRW5hYmxlZCA9IHRydWU7XG59O1xuY29uc3QgZGlzYWJsZVNlcXVlbmNlTnVtYmVycyA9IGZ1bmN0aW9uKCkge1xuICBzdGF0ZS5yZWNvcmRzLnNlcXVlbmNlTnVtYmVyc0VuYWJsZWQgPSBmYWxzZTtcbn07XG5jb25zdCBzaG93U2VxdWVuY2VOdW1iZXJzID0gKCkgPT4gc3RhdGUucmVjb3Jkcy5zZXF1ZW5jZU51bWJlcnNFbmFibGVkO1xuY29uc3Qgc2V0V3JhcCA9IGZ1bmN0aW9uKHdyYXBTZXR0aW5nKSB7XG4gIHN0YXRlLnJlY29yZHMud3JhcEVuYWJsZWQgPSB3cmFwU2V0dGluZztcbn07XG5jb25zdCBhdXRvV3JhcCA9ICgpID0+IHtcbiAgaWYgKHN0YXRlLnJlY29yZHMud3JhcEVuYWJsZWQgIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBzdGF0ZS5yZWNvcmRzLndyYXBFbmFibGVkO1xuICB9XG4gIHJldHVybiBnZXRDb25maWcoKS5zZXF1ZW5jZS53cmFwO1xufTtcbmNvbnN0IGNsZWFyID0gZnVuY3Rpb24oKSB7XG4gIHN0YXRlLnJlc2V0KCk7XG4gIGNsZWFyJDEoKTtcbn07XG5jb25zdCBwYXJzZU1lc3NhZ2UgPSBmdW5jdGlvbihzdHIpIHtcbiAgY29uc3QgX3N0ciA9IHN0ci50cmltKCk7XG4gIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgdGV4dDogX3N0ci5yZXBsYWNlKC9eOj8oPzpubyk/d3JhcDovLCBcIlwiKS50cmltKCksXG4gICAgd3JhcDogX3N0ci5tYXRjaCgvXjo/d3JhcDovKSAhPT0gbnVsbCA/IHRydWUgOiBfc3RyLm1hdGNoKC9eOj9ub3dyYXA6LykgIT09IG51bGwgPyBmYWxzZSA6IHZvaWQgMFxuICB9O1xuICBsb2cuZGVidWcoXCJwYXJzZU1lc3NhZ2U6XCIsIG1lc3NhZ2UpO1xuICByZXR1cm4gbWVzc2FnZTtcbn07XG5jb25zdCBwYXJzZUJveERhdGEgPSBmdW5jdGlvbihzdHIpIHtcbiAgY29uc3QgbWF0Y2ggPSBzdHIubWF0Y2goL14oKD86cmdiYT98aHNsYT8pXFxzKlxcKC4qXFwpfFxcdyopKC4qKSQvKTtcbiAgbGV0IGNvbG9yID0gbWF0Y2ggIT0gbnVsbCAmJiBtYXRjaFsxXSA/IG1hdGNoWzFdLnRyaW0oKSA6IFwidHJhbnNwYXJlbnRcIjtcbiAgbGV0IHRpdGxlID0gbWF0Y2ggIT0gbnVsbCAmJiBtYXRjaFsyXSA/IG1hdGNoWzJdLnRyaW0oKSA6IHZvaWQgMDtcbiAgaWYgKHdpbmRvdyAmJiB3aW5kb3cuQ1NTKSB7XG4gICAgaWYgKCF3aW5kb3cuQ1NTLnN1cHBvcnRzKFwiY29sb3JcIiwgY29sb3IpKSB7XG4gICAgICBjb2xvciA9IFwidHJhbnNwYXJlbnRcIjtcbiAgICAgIHRpdGxlID0gc3RyLnRyaW0oKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgc3R5bGUgPSBuZXcgT3B0aW9uKCkuc3R5bGU7XG4gICAgc3R5bGUuY29sb3IgPSBjb2xvcjtcbiAgICBpZiAoc3R5bGUuY29sb3IgIT09IGNvbG9yKSB7XG4gICAgICBjb2xvciA9IFwidHJhbnNwYXJlbnRcIjtcbiAgICAgIHRpdGxlID0gc3RyLnRyaW0oKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBjb2xvcixcbiAgICB0ZXh0OiB0aXRsZSAhPT0gdm9pZCAwID8gc2FuaXRpemVUZXh0KHRpdGxlLnJlcGxhY2UoL146Pyg/Om5vKT93cmFwOi8sIFwiXCIpLCBnZXRDb25maWcoKSkgOiB2b2lkIDAsXG4gICAgd3JhcDogdGl0bGUgIT09IHZvaWQgMCA/IHRpdGxlLm1hdGNoKC9eOj93cmFwOi8pICE9PSBudWxsID8gdHJ1ZSA6IHRpdGxlLm1hdGNoKC9eOj9ub3dyYXA6LykgIT09IG51bGwgPyBmYWxzZSA6IHZvaWQgMCA6IHZvaWQgMFxuICB9O1xufTtcbmNvbnN0IExJTkVUWVBFID0ge1xuICBTT0xJRDogMCxcbiAgRE9UVEVEOiAxLFxuICBOT1RFOiAyLFxuICBTT0xJRF9DUk9TUzogMyxcbiAgRE9UVEVEX0NST1NTOiA0LFxuICBTT0xJRF9PUEVOOiA1LFxuICBET1RURURfT1BFTjogNixcbiAgTE9PUF9TVEFSVDogMTAsXG4gIExPT1BfRU5EOiAxMSxcbiAgQUxUX1NUQVJUOiAxMixcbiAgQUxUX0VMU0U6IDEzLFxuICBBTFRfRU5EOiAxNCxcbiAgT1BUX1NUQVJUOiAxNSxcbiAgT1BUX0VORDogMTYsXG4gIEFDVElWRV9TVEFSVDogMTcsXG4gIEFDVElWRV9FTkQ6IDE4LFxuICBQQVJfU1RBUlQ6IDE5LFxuICBQQVJfQU5EOiAyMCxcbiAgUEFSX0VORDogMjEsXG4gIFJFQ1RfU1RBUlQ6IDIyLFxuICBSRUNUX0VORDogMjMsXG4gIFNPTElEX1BPSU5UOiAyNCxcbiAgRE9UVEVEX1BPSU5UOiAyNSxcbiAgQVVUT05VTUJFUjogMjYsXG4gIENSSVRJQ0FMX1NUQVJUOiAyNyxcbiAgQ1JJVElDQUxfT1BUSU9OOiAyOCxcbiAgQ1JJVElDQUxfRU5EOiAyOSxcbiAgQlJFQUtfU1RBUlQ6IDMwLFxuICBCUkVBS19FTkQ6IDMxLFxuICBQQVJfT1ZFUl9TVEFSVDogMzJcbn07XG5jb25zdCBBUlJPV1RZUEUgPSB7XG4gIEZJTExFRDogMCxcbiAgT1BFTjogMVxufTtcbmNvbnN0IFBMQUNFTUVOVCA9IHtcbiAgTEVGVE9GOiAwLFxuICBSSUdIVE9GOiAxLFxuICBPVkVSOiAyXG59O1xuY29uc3QgYWRkTm90ZSA9IGZ1bmN0aW9uKGFjdG9yLCBwbGFjZW1lbnQsIG1lc3NhZ2UpIHtcbiAgY29uc3Qgbm90ZSA9IHtcbiAgICBhY3RvcixcbiAgICBwbGFjZW1lbnQsXG4gICAgbWVzc2FnZTogbWVzc2FnZS50ZXh0LFxuICAgIHdyYXA6IG1lc3NhZ2Uud3JhcCA9PT0gdm9pZCAwICYmIGF1dG9XcmFwKCkgfHwgISFtZXNzYWdlLndyYXBcbiAgfTtcbiAgY29uc3QgYWN0b3JzID0gW10uY29uY2F0KGFjdG9yLCBhY3Rvcik7XG4gIHN0YXRlLnJlY29yZHMubm90ZXMucHVzaChub3RlKTtcbiAgc3RhdGUucmVjb3Jkcy5tZXNzYWdlcy5wdXNoKHtcbiAgICBmcm9tOiBhY3RvcnNbMF0sXG4gICAgdG86IGFjdG9yc1sxXSxcbiAgICBtZXNzYWdlOiBtZXNzYWdlLnRleHQsXG4gICAgd3JhcDogbWVzc2FnZS53cmFwID09PSB2b2lkIDAgJiYgYXV0b1dyYXAoKSB8fCAhIW1lc3NhZ2Uud3JhcCxcbiAgICB0eXBlOiBMSU5FVFlQRS5OT1RFLFxuICAgIHBsYWNlbWVudFxuICB9KTtcbn07XG5jb25zdCBhZGRMaW5rcyA9IGZ1bmN0aW9uKGFjdG9ySWQsIHRleHQpIHtcbiAgY29uc3QgYWN0b3IgPSBnZXRBY3RvcihhY3RvcklkKTtcbiAgdHJ5IHtcbiAgICBsZXQgc2FuaXRpemVkVGV4dCA9IHNhbml0aXplVGV4dCh0ZXh0LnRleHQsIGdldENvbmZpZygpKTtcbiAgICBzYW5pdGl6ZWRUZXh0ID0gc2FuaXRpemVkVGV4dC5yZXBsYWNlKC8mYW1wOy9nLCBcIiZcIik7XG4gICAgc2FuaXRpemVkVGV4dCA9IHNhbml0aXplZFRleHQucmVwbGFjZSgvJmVxdWFsczsvZywgXCI9XCIpO1xuICAgIGNvbnN0IGxpbmtzID0gSlNPTi5wYXJzZShzYW5pdGl6ZWRUZXh0KTtcbiAgICBpbnNlcnRMaW5rcyhhY3RvciwgbGlua3MpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nLmVycm9yKFwiZXJyb3Igd2hpbGUgcGFyc2luZyBhY3RvciBsaW5rIHRleHRcIiwgZSk7XG4gIH1cbn07XG5jb25zdCBhZGRBTGluayA9IGZ1bmN0aW9uKGFjdG9ySWQsIHRleHQpIHtcbiAgY29uc3QgYWN0b3IgPSBnZXRBY3RvcihhY3RvcklkKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBsaW5rcyA9IHt9O1xuICAgIGxldCBzYW5pdGl6ZWRUZXh0ID0gc2FuaXRpemVUZXh0KHRleHQudGV4dCwgZ2V0Q29uZmlnKCkpO1xuICAgIHZhciBzZXAgPSBzYW5pdGl6ZWRUZXh0LmluZGV4T2YoXCJAXCIpO1xuICAgIHNhbml0aXplZFRleHQgPSBzYW5pdGl6ZWRUZXh0LnJlcGxhY2UoLyZhbXA7L2csIFwiJlwiKTtcbiAgICBzYW5pdGl6ZWRUZXh0ID0gc2FuaXRpemVkVGV4dC5yZXBsYWNlKC8mZXF1YWxzOy9nLCBcIj1cIik7XG4gICAgdmFyIGxhYmVsID0gc2FuaXRpemVkVGV4dC5zbGljZSgwLCBzZXAgLSAxKS50cmltKCk7XG4gICAgdmFyIGxpbmsgPSBzYW5pdGl6ZWRUZXh0LnNsaWNlKHNlcCArIDEpLnRyaW0oKTtcbiAgICBsaW5rc1tsYWJlbF0gPSBsaW5rO1xuICAgIGluc2VydExpbmtzKGFjdG9yLCBsaW5rcyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2cuZXJyb3IoXCJlcnJvciB3aGlsZSBwYXJzaW5nIGFjdG9yIGxpbmsgdGV4dFwiLCBlKTtcbiAgfVxufTtcbmZ1bmN0aW9uIGluc2VydExpbmtzKGFjdG9yLCBsaW5rcykge1xuICBpZiAoYWN0b3IubGlua3MgPT0gbnVsbCkge1xuICAgIGFjdG9yLmxpbmtzID0gbGlua3M7XG4gIH0gZWxzZSB7XG4gICAgZm9yIChsZXQga2V5IGluIGxpbmtzKSB7XG4gICAgICBhY3Rvci5saW5rc1trZXldID0gbGlua3Nba2V5XTtcbiAgICB9XG4gIH1cbn1cbmNvbnN0IGFkZFByb3BlcnRpZXMgPSBmdW5jdGlvbihhY3RvcklkLCB0ZXh0KSB7XG4gIGNvbnN0IGFjdG9yID0gZ2V0QWN0b3IoYWN0b3JJZCk7XG4gIHRyeSB7XG4gICAgbGV0IHNhbml0aXplZFRleHQgPSBzYW5pdGl6ZVRleHQodGV4dC50ZXh0LCBnZXRDb25maWcoKSk7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IEpTT04ucGFyc2Uoc2FuaXRpemVkVGV4dCk7XG4gICAgaW5zZXJ0UHJvcGVydGllcyhhY3RvciwgcHJvcGVydGllcyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2cuZXJyb3IoXCJlcnJvciB3aGlsZSBwYXJzaW5nIGFjdG9yIHByb3BlcnRpZXMgdGV4dFwiLCBlKTtcbiAgfVxufTtcbmZ1bmN0aW9uIGluc2VydFByb3BlcnRpZXMoYWN0b3IsIHByb3BlcnRpZXMpIHtcbiAgaWYgKGFjdG9yLnByb3BlcnRpZXMgPT0gbnVsbCkge1xuICAgIGFjdG9yLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICB9IGVsc2Uge1xuICAgIGZvciAobGV0IGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICBhY3Rvci5wcm9wZXJ0aWVzW2tleV0gPSBwcm9wZXJ0aWVzW2tleV07XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBib3hFbmQoKSB7XG4gIHN0YXRlLnJlY29yZHMuY3VycmVudEJveCA9IHZvaWQgMDtcbn1cbmNvbnN0IGFkZERldGFpbHMgPSBmdW5jdGlvbihhY3RvcklkLCB0ZXh0KSB7XG4gIGNvbnN0IGFjdG9yID0gZ2V0QWN0b3IoYWN0b3JJZCk7XG4gIGNvbnN0IGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0ZXh0LnRleHQpO1xuICB0cnkge1xuICAgIGNvbnN0IHRleHQyID0gZWxlbS5pbm5lckhUTUw7XG4gICAgY29uc3QgZGV0YWlscyA9IEpTT04ucGFyc2UodGV4dDIpO1xuICAgIGlmIChkZXRhaWxzW1wicHJvcGVydGllc1wiXSkge1xuICAgICAgaW5zZXJ0UHJvcGVydGllcyhhY3RvciwgZGV0YWlsc1tcInByb3BlcnRpZXNcIl0pO1xuICAgIH1cbiAgICBpZiAoZGV0YWlsc1tcImxpbmtzXCJdKSB7XG4gICAgICBpbnNlcnRMaW5rcyhhY3RvciwgZGV0YWlsc1tcImxpbmtzXCJdKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2cuZXJyb3IoXCJlcnJvciB3aGlsZSBwYXJzaW5nIGFjdG9yIGRldGFpbHMgdGV4dFwiLCBlKTtcbiAgfVxufTtcbmNvbnN0IGdldEFjdG9yUHJvcGVydHkgPSBmdW5jdGlvbihhY3Rvciwga2V5KSB7XG4gIGlmIChhY3RvciAhPT0gdm9pZCAwICYmIGFjdG9yLnByb3BlcnRpZXMgIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBhY3Rvci5wcm9wZXJ0aWVzW2tleV07XG4gIH1cbiAgcmV0dXJuIHZvaWQgMDtcbn07XG5jb25zdCBhcHBseSA9IGZ1bmN0aW9uKHBhcmFtKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHBhcmFtKSkge1xuICAgIHBhcmFtLmZvckVhY2goZnVuY3Rpb24oaXRlbSkge1xuICAgICAgYXBwbHkoaXRlbSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChwYXJhbS50eXBlKSB7XG4gICAgICBjYXNlIFwic2VxdWVuY2VJbmRleFwiOlxuICAgICAgICBzdGF0ZS5yZWNvcmRzLm1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgIGZyb206IHZvaWQgMCxcbiAgICAgICAgICB0bzogdm9pZCAwLFxuICAgICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICAgIHN0YXJ0OiBwYXJhbS5zZXF1ZW5jZUluZGV4LFxuICAgICAgICAgICAgc3RlcDogcGFyYW0uc2VxdWVuY2VJbmRleFN0ZXAsXG4gICAgICAgICAgICB2aXNpYmxlOiBwYXJhbS5zZXF1ZW5jZVZpc2libGVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHdyYXA6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6IHBhcmFtLnNpZ25hbFR5cGVcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFkZFBhcnRpY2lwYW50XCI6XG4gICAgICAgIGFkZEFjdG9yKHBhcmFtLmFjdG9yLCBwYXJhbS5hY3RvciwgcGFyYW0uZGVzY3JpcHRpb24sIHBhcmFtLmRyYXcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJjcmVhdGVQYXJ0aWNpcGFudFwiOlxuICAgICAgICBpZiAoc3RhdGUucmVjb3Jkcy5hY3RvcnNbcGFyYW0uYWN0b3JdKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCJJdCBpcyBub3QgcG9zc2libGUgdG8gaGF2ZSBhY3RvcnMgd2l0aCB0aGUgc2FtZSBpZCwgZXZlbiBpZiBvbmUgaXMgZGVzdHJveWVkIGJlZm9yZSB0aGUgbmV4dCBpcyBjcmVhdGVkLiBVc2UgJ0FTJyBhbGlhc2VzIHRvIHNpbXVsYXRlIHRoZSBiZWhhdmlvclwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBzdGF0ZS5yZWNvcmRzLmxhc3RDcmVhdGVkID0gcGFyYW0uYWN0b3I7XG4gICAgICAgIGFkZEFjdG9yKHBhcmFtLmFjdG9yLCBwYXJhbS5hY3RvciwgcGFyYW0uZGVzY3JpcHRpb24sIHBhcmFtLmRyYXcpO1xuICAgICAgICBzdGF0ZS5yZWNvcmRzLmNyZWF0ZWRBY3RvcnNbcGFyYW0uYWN0b3JdID0gc3RhdGUucmVjb3Jkcy5tZXNzYWdlcy5sZW5ndGg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImRlc3Ryb3lQYXJ0aWNpcGFudFwiOlxuICAgICAgICBzdGF0ZS5yZWNvcmRzLmxhc3REZXN0cm95ZWQgPSBwYXJhbS5hY3RvcjtcbiAgICAgICAgc3RhdGUucmVjb3Jkcy5kZXN0cm95ZWRBY3RvcnNbcGFyYW0uYWN0b3JdID0gc3RhdGUucmVjb3Jkcy5tZXNzYWdlcy5sZW5ndGg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFjdGl2ZVN0YXJ0XCI6XG4gICAgICAgIGFkZFNpZ25hbChwYXJhbS5hY3Rvciwgdm9pZCAwLCB2b2lkIDAsIHBhcmFtLnNpZ25hbFR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJhY3RpdmVFbmRcIjpcbiAgICAgICAgYWRkU2lnbmFsKHBhcmFtLmFjdG9yLCB2b2lkIDAsIHZvaWQgMCwgcGFyYW0uc2lnbmFsVHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFkZE5vdGVcIjpcbiAgICAgICAgYWRkTm90ZShwYXJhbS5hY3RvciwgcGFyYW0ucGxhY2VtZW50LCBwYXJhbS50ZXh0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiYWRkTGlua3NcIjpcbiAgICAgICAgYWRkTGlua3MocGFyYW0uYWN0b3IsIHBhcmFtLnRleHQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJhZGRBTGlua1wiOlxuICAgICAgICBhZGRBTGluayhwYXJhbS5hY3RvciwgcGFyYW0udGV4dCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFkZFByb3BlcnRpZXNcIjpcbiAgICAgICAgYWRkUHJvcGVydGllcyhwYXJhbS5hY3RvciwgcGFyYW0udGV4dCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFkZERldGFpbHNcIjpcbiAgICAgICAgYWRkRGV0YWlscyhwYXJhbS5hY3RvciwgcGFyYW0udGV4dCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFkZE1lc3NhZ2VcIjpcbiAgICAgICAgaWYgKHN0YXRlLnJlY29yZHMubGFzdENyZWF0ZWQpIHtcbiAgICAgICAgICBpZiAocGFyYW0udG8gIT09IHN0YXRlLnJlY29yZHMubGFzdENyZWF0ZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgXCJUaGUgY3JlYXRlZCBwYXJ0aWNpcGFudCBcIiArIHN0YXRlLnJlY29yZHMubGFzdENyZWF0ZWQgKyBcIiBkb2VzIG5vdCBoYXZlIGFuIGFzc29jaWF0ZWQgY3JlYXRpbmcgbWVzc2FnZSBhZnRlciBpdHMgZGVjbGFyYXRpb24uIFBsZWFzZSBjaGVjayB0aGUgc2VxdWVuY2UgZGlhZ3JhbS5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGUucmVjb3Jkcy5sYXN0Q3JlYXRlZCA9IHZvaWQgMDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUucmVjb3Jkcy5sYXN0RGVzdHJveWVkKSB7XG4gICAgICAgICAgaWYgKHBhcmFtLnRvICE9PSBzdGF0ZS5yZWNvcmRzLmxhc3REZXN0cm95ZWQgJiYgcGFyYW0uZnJvbSAhPT0gc3RhdGUucmVjb3Jkcy5sYXN0RGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIFwiVGhlIGRlc3Ryb3llZCBwYXJ0aWNpcGFudCBcIiArIHN0YXRlLnJlY29yZHMubGFzdERlc3Ryb3llZCArIFwiIGRvZXMgbm90IGhhdmUgYW4gYXNzb2NpYXRlZCBkZXN0cm95aW5nIG1lc3NhZ2UgYWZ0ZXIgaXRzIGRlY2xhcmF0aW9uLiBQbGVhc2UgY2hlY2sgdGhlIHNlcXVlbmNlIGRpYWdyYW0uXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXRlLnJlY29yZHMubGFzdERlc3Ryb3llZCA9IHZvaWQgMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYWRkU2lnbmFsKHBhcmFtLmZyb20sIHBhcmFtLnRvLCBwYXJhbS5tc2csIHBhcmFtLnNpZ25hbFR5cGUsIHBhcmFtLmFjdGl2YXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiYm94U3RhcnRcIjpcbiAgICAgICAgYWRkQm94KHBhcmFtLmJveERhdGEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJib3hFbmRcIjpcbiAgICAgICAgYm94RW5kKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImxvb3BTdGFydFwiOlxuICAgICAgICBhZGRTaWduYWwodm9pZCAwLCB2b2lkIDAsIHBhcmFtLmxvb3BUZXh0LCBwYXJhbS5zaWduYWxUeXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibG9vcEVuZFwiOlxuICAgICAgICBhZGRTaWduYWwodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgcGFyYW0uc2lnbmFsVHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInJlY3RTdGFydFwiOlxuICAgICAgICBhZGRTaWduYWwodm9pZCAwLCB2b2lkIDAsIHBhcmFtLmNvbG9yLCBwYXJhbS5zaWduYWxUeXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicmVjdEVuZFwiOlxuICAgICAgICBhZGRTaWduYWwodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgcGFyYW0uc2lnbmFsVHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm9wdFN0YXJ0XCI6XG4gICAgICAgIGFkZFNpZ25hbCh2b2lkIDAsIHZvaWQgMCwgcGFyYW0ub3B0VGV4dCwgcGFyYW0uc2lnbmFsVHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm9wdEVuZFwiOlxuICAgICAgICBhZGRTaWduYWwodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgcGFyYW0uc2lnbmFsVHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFsdFN0YXJ0XCI6XG4gICAgICAgIGFkZFNpZ25hbCh2b2lkIDAsIHZvaWQgMCwgcGFyYW0uYWx0VGV4dCwgcGFyYW0uc2lnbmFsVHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImVsc2VcIjpcbiAgICAgICAgYWRkU2lnbmFsKHZvaWQgMCwgdm9pZCAwLCBwYXJhbS5hbHRUZXh0LCBwYXJhbS5zaWduYWxUeXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiYWx0RW5kXCI6XG4gICAgICAgIGFkZFNpZ25hbCh2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBwYXJhbS5zaWduYWxUeXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwic2V0QWNjVGl0bGVcIjpcbiAgICAgICAgc2V0QWNjVGl0bGUocGFyYW0udGV4dCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInBhclN0YXJ0XCI6XG4gICAgICAgIGFkZFNpZ25hbCh2b2lkIDAsIHZvaWQgMCwgcGFyYW0ucGFyVGV4dCwgcGFyYW0uc2lnbmFsVHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFuZFwiOlxuICAgICAgICBhZGRTaWduYWwodm9pZCAwLCB2b2lkIDAsIHBhcmFtLnBhclRleHQsIHBhcmFtLnNpZ25hbFR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJwYXJFbmRcIjpcbiAgICAgICAgYWRkU2lnbmFsKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIHBhcmFtLnNpZ25hbFR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJjcml0aWNhbFN0YXJ0XCI6XG4gICAgICAgIGFkZFNpZ25hbCh2b2lkIDAsIHZvaWQgMCwgcGFyYW0uY3JpdGljYWxUZXh0LCBwYXJhbS5zaWduYWxUeXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwib3B0aW9uXCI6XG4gICAgICAgIGFkZFNpZ25hbCh2b2lkIDAsIHZvaWQgMCwgcGFyYW0ub3B0aW9uVGV4dCwgcGFyYW0uc2lnbmFsVHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImNyaXRpY2FsRW5kXCI6XG4gICAgICAgIGFkZFNpZ25hbCh2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBwYXJhbS5zaWduYWxUeXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiYnJlYWtTdGFydFwiOlxuICAgICAgICBhZGRTaWduYWwodm9pZCAwLCB2b2lkIDAsIHBhcmFtLmJyZWFrVGV4dCwgcGFyYW0uc2lnbmFsVHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImJyZWFrRW5kXCI6XG4gICAgICAgIGFkZFNpZ25hbCh2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBwYXJhbS5zaWduYWxUeXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuY29uc3QgZGIgPSB7XG4gIGFkZEFjdG9yLFxuICBhZGRNZXNzYWdlLFxuICBhZGRTaWduYWwsXG4gIGFkZExpbmtzLFxuICBhZGREZXRhaWxzLFxuICBhZGRQcm9wZXJ0aWVzLFxuICBhdXRvV3JhcCxcbiAgc2V0V3JhcCxcbiAgZW5hYmxlU2VxdWVuY2VOdW1iZXJzLFxuICBkaXNhYmxlU2VxdWVuY2VOdW1iZXJzLFxuICBzaG93U2VxdWVuY2VOdW1iZXJzLFxuICBnZXRNZXNzYWdlcyxcbiAgZ2V0QWN0b3JzLFxuICBnZXRDcmVhdGVkQWN0b3JzLFxuICBnZXREZXN0cm95ZWRBY3RvcnMsXG4gIGdldEFjdG9yLFxuICBnZXRBY3RvcktleXMsXG4gIGdldEFjdG9yUHJvcGVydHksXG4gIGdldEFjY1RpdGxlLFxuICBnZXRCb3hlcyxcbiAgZ2V0RGlhZ3JhbVRpdGxlLFxuICBzZXREaWFncmFtVGl0bGUsXG4gIGdldENvbmZpZzogKCkgPT4gZ2V0Q29uZmlnKCkuc2VxdWVuY2UsXG4gIGNsZWFyLFxuICBwYXJzZU1lc3NhZ2UsXG4gIHBhcnNlQm94RGF0YSxcbiAgTElORVRZUEUsXG4gIEFSUk9XVFlQRSxcbiAgUExBQ0VNRU5ULFxuICBhZGROb3RlLFxuICBzZXRBY2NUaXRsZSxcbiAgYXBwbHksXG4gIHNldEFjY0Rlc2NyaXB0aW9uLFxuICBnZXRBY2NEZXNjcmlwdGlvbixcbiAgaGFzQXRMZWFzdE9uZUJveCxcbiAgaGFzQXRMZWFzdE9uZUJveFdpdGhUaXRsZVxufTtcbmNvbnN0IGdldFN0eWxlcyA9IChvcHRpb25zKSA9PiBgLmFjdG9yIHtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5hY3RvckJvcmRlcn07XG4gICAgZmlsbDogJHtvcHRpb25zLmFjdG9yQmtnfTtcbiAgfVxuXG4gIHRleHQuYWN0b3IgPiB0c3BhbiB7XG4gICAgZmlsbDogJHtvcHRpb25zLmFjdG9yVGV4dENvbG9yfTtcbiAgICBzdHJva2U6IG5vbmU7XG4gIH1cblxuICAuYWN0b3ItbGluZSB7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMuYWN0b3JMaW5lQ29sb3J9O1xuICB9XG5cbiAgLm1lc3NhZ2VMaW5lMCB7XG4gICAgc3Ryb2tlLXdpZHRoOiAxLjU7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5zaWduYWxDb2xvcn07XG4gIH1cblxuICAubWVzc2FnZUxpbmUxIHtcbiAgICBzdHJva2Utd2lkdGg6IDEuNTtcbiAgICBzdHJva2UtZGFzaGFycmF5OiAyLCAyO1xuICAgIHN0cm9rZTogJHtvcHRpb25zLnNpZ25hbENvbG9yfTtcbiAgfVxuXG4gICNhcnJvd2hlYWQgcGF0aCB7XG4gICAgZmlsbDogJHtvcHRpb25zLnNpZ25hbENvbG9yfTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5zaWduYWxDb2xvcn07XG4gIH1cblxuICAuc2VxdWVuY2VOdW1iZXIge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5zZXF1ZW5jZU51bWJlckNvbG9yfTtcbiAgfVxuXG4gICNzZXF1ZW5jZW51bWJlciB7XG4gICAgZmlsbDogJHtvcHRpb25zLnNpZ25hbENvbG9yfTtcbiAgfVxuXG4gICNjcm9zc2hlYWQgcGF0aCB7XG4gICAgZmlsbDogJHtvcHRpb25zLnNpZ25hbENvbG9yfTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5zaWduYWxDb2xvcn07XG4gIH1cblxuICAubWVzc2FnZVRleHQge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5zaWduYWxUZXh0Q29sb3J9O1xuICAgIHN0cm9rZTogbm9uZTtcbiAgfVxuXG4gIC5sYWJlbEJveCB7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMubGFiZWxCb3hCb3JkZXJDb2xvcn07XG4gICAgZmlsbDogJHtvcHRpb25zLmxhYmVsQm94QmtnQ29sb3J9O1xuICB9XG5cbiAgLmxhYmVsVGV4dCwgLmxhYmVsVGV4dCA+IHRzcGFuIHtcbiAgICBmaWxsOiAke29wdGlvbnMubGFiZWxUZXh0Q29sb3J9O1xuICAgIHN0cm9rZTogbm9uZTtcbiAgfVxuXG4gIC5sb29wVGV4dCwgLmxvb3BUZXh0ID4gdHNwYW4ge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5sb29wVGV4dENvbG9yfTtcbiAgICBzdHJva2U6IG5vbmU7XG4gIH1cblxuICAubG9vcExpbmUge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDIsIDI7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMubGFiZWxCb3hCb3JkZXJDb2xvcn07XG4gICAgZmlsbDogJHtvcHRpb25zLmxhYmVsQm94Qm9yZGVyQ29sb3J9O1xuICB9XG5cbiAgLm5vdGUge1xuICAgIC8vc3Ryb2tlOiAjZGVjYzkzO1xuICAgIHN0cm9rZTogJHtvcHRpb25zLm5vdGVCb3JkZXJDb2xvcn07XG4gICAgZmlsbDogJHtvcHRpb25zLm5vdGVCa2dDb2xvcn07XG4gIH1cblxuICAubm90ZVRleHQsIC5ub3RlVGV4dCA+IHRzcGFuIHtcbiAgICBmaWxsOiAke29wdGlvbnMubm90ZVRleHRDb2xvcn07XG4gICAgc3Ryb2tlOiBub25lO1xuICB9XG5cbiAgLmFjdGl2YXRpb24wIHtcbiAgICBmaWxsOiAke29wdGlvbnMuYWN0aXZhdGlvbkJrZ0NvbG9yfTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5hY3RpdmF0aW9uQm9yZGVyQ29sb3J9O1xuICB9XG5cbiAgLmFjdGl2YXRpb24xIHtcbiAgICBmaWxsOiAke29wdGlvbnMuYWN0aXZhdGlvbkJrZ0NvbG9yfTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5hY3RpdmF0aW9uQm9yZGVyQ29sb3J9O1xuICB9XG5cbiAgLmFjdGl2YXRpb24yIHtcbiAgICBmaWxsOiAke29wdGlvbnMuYWN0aXZhdGlvbkJrZ0NvbG9yfTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5hY3RpdmF0aW9uQm9yZGVyQ29sb3J9O1xuICB9XG5cbiAgLmFjdG9yUG9wdXBNZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAuYWN0b3JQb3B1cE1lbnVQYW5lbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGZpbGw6ICR7b3B0aW9ucy5hY3RvckJrZ307XG4gICAgYm94LXNoYWRvdzogMHB4IDhweCAxNnB4IDBweCByZ2JhKDAsMCwwLDAuMik7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygzcHggNXB4IDJweCByZ2IoMCAwIDAgLyAwLjQpKTtcbn1cbiAgLmFjdG9yLW1hbiBsaW5lIHtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5hY3RvckJvcmRlcn07XG4gICAgZmlsbDogJHtvcHRpb25zLmFjdG9yQmtnfTtcbiAgfVxuICAuYWN0b3ItbWFuIGNpcmNsZSwgbGluZSB7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMuYWN0b3JCb3JkZXJ9O1xuICAgIGZpbGw6ICR7b3B0aW9ucy5hY3RvckJrZ307XG4gICAgc3Ryb2tlLXdpZHRoOiAycHg7XG4gIH1cbmA7XG5jb25zdCBzdHlsZXMgPSBnZXRTdHlsZXM7XG5jb25zdCBBQ1RPUl9UWVBFX1dJRFRIID0gMTggKiAyO1xuY29uc3QgVE9QX0FDVE9SX0NMQVNTID0gXCJhY3Rvci10b3BcIjtcbmNvbnN0IEJPVFRPTV9BQ1RPUl9DTEFTUyA9IFwiYWN0b3ItYm90dG9tXCI7XG5jb25zdCBkcmF3UmVjdCA9IGZ1bmN0aW9uKGVsZW0sIHJlY3REYXRhKSB7XG4gIHJldHVybiBkcmF3UmVjdCQxKGVsZW0sIHJlY3REYXRhKTtcbn07XG5jb25zdCBkcmF3UG9wdXAgPSBmdW5jdGlvbihlbGVtLCBhY3RvciwgbWluTWVudVdpZHRoLCB0ZXh0QXR0cnMsIGZvcmNlTWVudXMpIHtcbiAgaWYgKGFjdG9yLmxpbmtzID09PSB2b2lkIDAgfHwgYWN0b3IubGlua3MgPT09IG51bGwgfHwgT2JqZWN0LmtleXMoYWN0b3IubGlua3MpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7IGhlaWdodDogMCwgd2lkdGg6IDAgfTtcbiAgfVxuICBjb25zdCBsaW5rcyA9IGFjdG9yLmxpbmtzO1xuICBjb25zdCBhY3RvckNudDIgPSBhY3Rvci5hY3RvckNudDtcbiAgY29uc3QgcmVjdERhdGEgPSBhY3Rvci5yZWN0RGF0YTtcbiAgdmFyIGRpc3BsYXlWYWx1ZSA9IFwibm9uZVwiO1xuICBpZiAoZm9yY2VNZW51cykge1xuICAgIGRpc3BsYXlWYWx1ZSA9IFwiYmxvY2sgIWltcG9ydGFudFwiO1xuICB9XG4gIGNvbnN0IGcgPSBlbGVtLmFwcGVuZChcImdcIik7XG4gIGcuYXR0cihcImlkXCIsIFwiYWN0b3JcIiArIGFjdG9yQ250MiArIFwiX3BvcHVwXCIpO1xuICBnLmF0dHIoXCJjbGFzc1wiLCBcImFjdG9yUG9wdXBNZW51XCIpO1xuICBnLmF0dHIoXCJkaXNwbGF5XCIsIGRpc3BsYXlWYWx1ZSk7XG4gIHZhciBhY3RvckNsYXNzID0gXCJcIjtcbiAgaWYgKHJlY3REYXRhLmNsYXNzICE9PSB2b2lkIDApIHtcbiAgICBhY3RvckNsYXNzID0gXCIgXCIgKyByZWN0RGF0YS5jbGFzcztcbiAgfVxuICBsZXQgbWVudVdpZHRoID0gcmVjdERhdGEud2lkdGggPiBtaW5NZW51V2lkdGggPyByZWN0RGF0YS53aWR0aCA6IG1pbk1lbnVXaWR0aDtcbiAgY29uc3QgcmVjdEVsZW0gPSBnLmFwcGVuZChcInJlY3RcIik7XG4gIHJlY3RFbGVtLmF0dHIoXCJjbGFzc1wiLCBcImFjdG9yUG9wdXBNZW51UGFuZWxcIiArIGFjdG9yQ2xhc3MpO1xuICByZWN0RWxlbS5hdHRyKFwieFwiLCByZWN0RGF0YS54KTtcbiAgcmVjdEVsZW0uYXR0cihcInlcIiwgcmVjdERhdGEuaGVpZ2h0KTtcbiAgcmVjdEVsZW0uYXR0cihcImZpbGxcIiwgcmVjdERhdGEuZmlsbCk7XG4gIHJlY3RFbGVtLmF0dHIoXCJzdHJva2VcIiwgcmVjdERhdGEuc3Ryb2tlKTtcbiAgcmVjdEVsZW0uYXR0cihcIndpZHRoXCIsIG1lbnVXaWR0aCk7XG4gIHJlY3RFbGVtLmF0dHIoXCJoZWlnaHRcIiwgcmVjdERhdGEuaGVpZ2h0KTtcbiAgcmVjdEVsZW0uYXR0cihcInJ4XCIsIHJlY3REYXRhLnJ4KTtcbiAgcmVjdEVsZW0uYXR0cihcInJ5XCIsIHJlY3REYXRhLnJ5KTtcbiAgaWYgKGxpbmtzICE9IG51bGwpIHtcbiAgICB2YXIgbGlua1kgPSAyMDtcbiAgICBmb3IgKGxldCBrZXkgaW4gbGlua3MpIHtcbiAgICAgIHZhciBsaW5rRWxlbSA9IGcuYXBwZW5kKFwiYVwiKTtcbiAgICAgIHZhciBzYW5pdGl6ZWRMaW5rID0gc2FuaXRpemVVcmwobGlua3Nba2V5XSk7XG4gICAgICBsaW5rRWxlbS5hdHRyKFwieGxpbms6aHJlZlwiLCBzYW5pdGl6ZWRMaW5rKTtcbiAgICAgIGxpbmtFbGVtLmF0dHIoXCJ0YXJnZXRcIiwgXCJfYmxhbmtcIik7XG4gICAgICBfZHJhd01lbnVJdGVtVGV4dENhbmRpZGF0ZUZ1bmModGV4dEF0dHJzKShcbiAgICAgICAga2V5LFxuICAgICAgICBsaW5rRWxlbSxcbiAgICAgICAgcmVjdERhdGEueCArIDEwLFxuICAgICAgICByZWN0RGF0YS5oZWlnaHQgKyBsaW5rWSxcbiAgICAgICAgbWVudVdpZHRoLFxuICAgICAgICAyMCxcbiAgICAgICAgeyBjbGFzczogXCJhY3RvclwiIH0sXG4gICAgICAgIHRleHRBdHRyc1xuICAgICAgKTtcbiAgICAgIGxpbmtZICs9IDMwO1xuICAgIH1cbiAgfVxuICByZWN0RWxlbS5hdHRyKFwiaGVpZ2h0XCIsIGxpbmtZKTtcbiAgcmV0dXJuIHsgaGVpZ2h0OiByZWN0RGF0YS5oZWlnaHQgKyBsaW5rWSwgd2lkdGg6IG1lbnVXaWR0aCB9O1xufTtcbmNvbnN0IHBvcHVwTWVudVRvZ2dsZSA9IGZ1bmN0aW9uKHBvcElkKSB7XG4gIHJldHVybiBcInZhciBwdSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdcIiArIHBvcElkICsgXCInKTsgaWYgKHB1ICE9IG51bGwpIHsgcHUuc3R5bGUuZGlzcGxheSA9IHB1LnN0eWxlLmRpc3BsYXkgPT0gJ2Jsb2NrJyA/ICdub25lJyA6ICdibG9jayc7IH1cIjtcbn07XG5jb25zdCBkcmF3S2F0ZXggPSBhc3luYyBmdW5jdGlvbihlbGVtLCB0ZXh0RGF0YSwgbXNnTW9kZWwgPSBudWxsKSB7XG4gIGxldCB0ZXh0RWxlbSA9IGVsZW0uYXBwZW5kKFwiZm9yZWlnbk9iamVjdFwiKTtcbiAgY29uc3QgbGluZXMgPSBhd2FpdCByZW5kZXJLYXRleCh0ZXh0RGF0YS50ZXh0LCBnZXRDb25maWckMSgpKTtcbiAgY29uc3QgZGl2RWxlbSA9IHRleHRFbGVtLmFwcGVuZChcInhodG1sOmRpdlwiKS5hdHRyKFwic3R5bGVcIiwgXCJ3aWR0aDogZml0LWNvbnRlbnQ7XCIpLmF0dHIoXCJ4bWxuc1wiLCBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIikuaHRtbChsaW5lcyk7XG4gIGNvbnN0IGRpbSA9IGRpdkVsZW0ubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB0ZXh0RWxlbS5hdHRyKFwiaGVpZ2h0XCIsIE1hdGgucm91bmQoZGltLmhlaWdodCkpLmF0dHIoXCJ3aWR0aFwiLCBNYXRoLnJvdW5kKGRpbS53aWR0aCkpO1xuICBpZiAodGV4dERhdGEuY2xhc3MgPT09IFwibm90ZVRleHRcIikge1xuICAgIGNvbnN0IHJlY3RFbGVtID0gZWxlbS5ub2RlKCkuZmlyc3RDaGlsZDtcbiAgICByZWN0RWxlbS5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIiwgZGltLmhlaWdodCArIDIgKiB0ZXh0RGF0YS50ZXh0TWFyZ2luKTtcbiAgICBjb25zdCByZWN0RGltID0gcmVjdEVsZW0uZ2V0QkJveCgpO1xuICAgIHRleHRFbGVtLmF0dHIoXCJ4XCIsIE1hdGgucm91bmQocmVjdERpbS54ICsgcmVjdERpbS53aWR0aCAvIDIgLSBkaW0ud2lkdGggLyAyKSkuYXR0cihcInlcIiwgTWF0aC5yb3VuZChyZWN0RGltLnkgKyByZWN0RGltLmhlaWdodCAvIDIgLSBkaW0uaGVpZ2h0IC8gMikpO1xuICB9IGVsc2UgaWYgKG1zZ01vZGVsKSB7XG4gICAgbGV0IHsgc3RhcnR4LCBzdG9weCwgc3RhcnR5IH0gPSBtc2dNb2RlbDtcbiAgICBpZiAoc3RhcnR4ID4gc3RvcHgpIHtcbiAgICAgIGNvbnN0IHRlbXAgPSBzdGFydHg7XG4gICAgICBzdGFydHggPSBzdG9weDtcbiAgICAgIHN0b3B4ID0gdGVtcDtcbiAgICB9XG4gICAgdGV4dEVsZW0uYXR0cihcInhcIiwgTWF0aC5yb3VuZChzdGFydHggKyBNYXRoLmFicyhzdGFydHggLSBzdG9weCkgLyAyIC0gZGltLndpZHRoIC8gMikpO1xuICAgIGlmICh0ZXh0RGF0YS5jbGFzcyA9PT0gXCJsb29wVGV4dFwiKSB7XG4gICAgICB0ZXh0RWxlbS5hdHRyKFwieVwiLCBNYXRoLnJvdW5kKHN0YXJ0eSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0ZXh0RWxlbS5hdHRyKFwieVwiLCBNYXRoLnJvdW5kKHN0YXJ0eSAtIGRpbS5oZWlnaHQpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFt0ZXh0RWxlbV07XG59O1xuY29uc3QgZHJhd1RleHQgPSBmdW5jdGlvbihlbGVtLCB0ZXh0RGF0YSkge1xuICBsZXQgcHJldlRleHRIZWlnaHQgPSAwO1xuICBsZXQgdGV4dEhlaWdodCA9IDA7XG4gIGNvbnN0IGxpbmVzID0gdGV4dERhdGEudGV4dC5zcGxpdChjb21tb24ubGluZUJyZWFrUmVnZXgpO1xuICBjb25zdCBbX3RleHRGb250U2l6ZSwgX3RleHRGb250U2l6ZVB4XSA9IHBhcnNlRm9udFNpemUodGV4dERhdGEuZm9udFNpemUpO1xuICBsZXQgdGV4dEVsZW1zID0gW107XG4gIGxldCBkeSA9IDA7XG4gIGxldCB5ZnVuYyA9ICgpID0+IHRleHREYXRhLnk7XG4gIGlmICh0ZXh0RGF0YS52YWxpZ24gIT09IHZvaWQgMCAmJiB0ZXh0RGF0YS50ZXh0TWFyZ2luICE9PSB2b2lkIDAgJiYgdGV4dERhdGEudGV4dE1hcmdpbiA+IDApIHtcbiAgICBzd2l0Y2ggKHRleHREYXRhLnZhbGlnbikge1xuICAgICAgY2FzZSBcInRvcFwiOlxuICAgICAgY2FzZSBcInN0YXJ0XCI6XG4gICAgICAgIHlmdW5jID0gKCkgPT4gTWF0aC5yb3VuZCh0ZXh0RGF0YS55ICsgdGV4dERhdGEudGV4dE1hcmdpbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm1pZGRsZVwiOlxuICAgICAgY2FzZSBcImNlbnRlclwiOlxuICAgICAgICB5ZnVuYyA9ICgpID0+IE1hdGgucm91bmQodGV4dERhdGEueSArIChwcmV2VGV4dEhlaWdodCArIHRleHRIZWlnaHQgKyB0ZXh0RGF0YS50ZXh0TWFyZ2luKSAvIDIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJib3R0b21cIjpcbiAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgeWZ1bmMgPSAoKSA9PiBNYXRoLnJvdW5kKFxuICAgICAgICAgIHRleHREYXRhLnkgKyAocHJldlRleHRIZWlnaHQgKyB0ZXh0SGVpZ2h0ICsgMiAqIHRleHREYXRhLnRleHRNYXJnaW4pIC0gdGV4dERhdGEudGV4dE1hcmdpblxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKHRleHREYXRhLmFuY2hvciAhPT0gdm9pZCAwICYmIHRleHREYXRhLnRleHRNYXJnaW4gIT09IHZvaWQgMCAmJiB0ZXh0RGF0YS53aWR0aCAhPT0gdm9pZCAwKSB7XG4gICAgc3dpdGNoICh0ZXh0RGF0YS5hbmNob3IpIHtcbiAgICAgIGNhc2UgXCJsZWZ0XCI6XG4gICAgICBjYXNlIFwic3RhcnRcIjpcbiAgICAgICAgdGV4dERhdGEueCA9IE1hdGgucm91bmQodGV4dERhdGEueCArIHRleHREYXRhLnRleHRNYXJnaW4pO1xuICAgICAgICB0ZXh0RGF0YS5hbmNob3IgPSBcInN0YXJ0XCI7XG4gICAgICAgIHRleHREYXRhLmRvbWluYW50QmFzZWxpbmUgPSBcIm1pZGRsZVwiO1xuICAgICAgICB0ZXh0RGF0YS5hbGlnbm1lbnRCYXNlbGluZSA9IFwibWlkZGxlXCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm1pZGRsZVwiOlxuICAgICAgY2FzZSBcImNlbnRlclwiOlxuICAgICAgICB0ZXh0RGF0YS54ID0gTWF0aC5yb3VuZCh0ZXh0RGF0YS54ICsgdGV4dERhdGEud2lkdGggLyAyKTtcbiAgICAgICAgdGV4dERhdGEuYW5jaG9yID0gXCJtaWRkbGVcIjtcbiAgICAgICAgdGV4dERhdGEuZG9taW5hbnRCYXNlbGluZSA9IFwibWlkZGxlXCI7XG4gICAgICAgIHRleHREYXRhLmFsaWdubWVudEJhc2VsaW5lID0gXCJtaWRkbGVcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicmlnaHRcIjpcbiAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgdGV4dERhdGEueCA9IE1hdGgucm91bmQodGV4dERhdGEueCArIHRleHREYXRhLndpZHRoIC0gdGV4dERhdGEudGV4dE1hcmdpbik7XG4gICAgICAgIHRleHREYXRhLmFuY2hvciA9IFwiZW5kXCI7XG4gICAgICAgIHRleHREYXRhLmRvbWluYW50QmFzZWxpbmUgPSBcIm1pZGRsZVwiO1xuICAgICAgICB0ZXh0RGF0YS5hbGlnbm1lbnRCYXNlbGluZSA9IFwibWlkZGxlXCI7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBmb3IgKGxldCBbaSwgbGluZV0gb2YgbGluZXMuZW50cmllcygpKSB7XG4gICAgaWYgKHRleHREYXRhLnRleHRNYXJnaW4gIT09IHZvaWQgMCAmJiB0ZXh0RGF0YS50ZXh0TWFyZ2luID09PSAwICYmIF90ZXh0Rm9udFNpemUgIT09IHZvaWQgMCkge1xuICAgICAgZHkgPSBpICogX3RleHRGb250U2l6ZTtcbiAgICB9XG4gICAgY29uc3QgdGV4dEVsZW0gPSBlbGVtLmFwcGVuZChcInRleHRcIik7XG4gICAgdGV4dEVsZW0uYXR0cihcInhcIiwgdGV4dERhdGEueCk7XG4gICAgdGV4dEVsZW0uYXR0cihcInlcIiwgeWZ1bmMoKSk7XG4gICAgaWYgKHRleHREYXRhLmFuY2hvciAhPT0gdm9pZCAwKSB7XG4gICAgICB0ZXh0RWxlbS5hdHRyKFwidGV4dC1hbmNob3JcIiwgdGV4dERhdGEuYW5jaG9yKS5hdHRyKFwiZG9taW5hbnQtYmFzZWxpbmVcIiwgdGV4dERhdGEuZG9taW5hbnRCYXNlbGluZSkuYXR0cihcImFsaWdubWVudC1iYXNlbGluZVwiLCB0ZXh0RGF0YS5hbGlnbm1lbnRCYXNlbGluZSk7XG4gICAgfVxuICAgIGlmICh0ZXh0RGF0YS5mb250RmFtaWx5ICE9PSB2b2lkIDApIHtcbiAgICAgIHRleHRFbGVtLnN0eWxlKFwiZm9udC1mYW1pbHlcIiwgdGV4dERhdGEuZm9udEZhbWlseSk7XG4gICAgfVxuICAgIGlmIChfdGV4dEZvbnRTaXplUHggIT09IHZvaWQgMCkge1xuICAgICAgdGV4dEVsZW0uc3R5bGUoXCJmb250LXNpemVcIiwgX3RleHRGb250U2l6ZVB4KTtcbiAgICB9XG4gICAgaWYgKHRleHREYXRhLmZvbnRXZWlnaHQgIT09IHZvaWQgMCkge1xuICAgICAgdGV4dEVsZW0uc3R5bGUoXCJmb250LXdlaWdodFwiLCB0ZXh0RGF0YS5mb250V2VpZ2h0KTtcbiAgICB9XG4gICAgaWYgKHRleHREYXRhLmZpbGwgIT09IHZvaWQgMCkge1xuICAgICAgdGV4dEVsZW0uYXR0cihcImZpbGxcIiwgdGV4dERhdGEuZmlsbCk7XG4gICAgfVxuICAgIGlmICh0ZXh0RGF0YS5jbGFzcyAhPT0gdm9pZCAwKSB7XG4gICAgICB0ZXh0RWxlbS5hdHRyKFwiY2xhc3NcIiwgdGV4dERhdGEuY2xhc3MpO1xuICAgIH1cbiAgICBpZiAodGV4dERhdGEuZHkgIT09IHZvaWQgMCkge1xuICAgICAgdGV4dEVsZW0uYXR0cihcImR5XCIsIHRleHREYXRhLmR5KTtcbiAgICB9IGVsc2UgaWYgKGR5ICE9PSAwKSB7XG4gICAgICB0ZXh0RWxlbS5hdHRyKFwiZHlcIiwgZHkpO1xuICAgIH1cbiAgICBjb25zdCB0ZXh0ID0gbGluZSB8fCBaRVJPX1dJRFRIX1NQQUNFO1xuICAgIGlmICh0ZXh0RGF0YS50c3Bhbikge1xuICAgICAgY29uc3Qgc3BhbiA9IHRleHRFbGVtLmFwcGVuZChcInRzcGFuXCIpO1xuICAgICAgc3Bhbi5hdHRyKFwieFwiLCB0ZXh0RGF0YS54KTtcbiAgICAgIGlmICh0ZXh0RGF0YS5maWxsICE9PSB2b2lkIDApIHtcbiAgICAgICAgc3Bhbi5hdHRyKFwiZmlsbFwiLCB0ZXh0RGF0YS5maWxsKTtcbiAgICAgIH1cbiAgICAgIHNwYW4udGV4dCh0ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGV4dEVsZW0udGV4dCh0ZXh0KTtcbiAgICB9XG4gICAgaWYgKHRleHREYXRhLnZhbGlnbiAhPT0gdm9pZCAwICYmIHRleHREYXRhLnRleHRNYXJnaW4gIT09IHZvaWQgMCAmJiB0ZXh0RGF0YS50ZXh0TWFyZ2luID4gMCkge1xuICAgICAgdGV4dEhlaWdodCArPSAodGV4dEVsZW0uX2dyb3VwcyB8fCB0ZXh0RWxlbSlbMF1bMF0uZ2V0QkJveCgpLmhlaWdodDtcbiAgICAgIHByZXZUZXh0SGVpZ2h0ID0gdGV4dEhlaWdodDtcbiAgICB9XG4gICAgdGV4dEVsZW1zLnB1c2godGV4dEVsZW0pO1xuICB9XG4gIHJldHVybiB0ZXh0RWxlbXM7XG59O1xuY29uc3QgZHJhd0xhYmVsID0gZnVuY3Rpb24oZWxlbSwgdHh0T2JqZWN0KSB7XG4gIGZ1bmN0aW9uIGdlblBvaW50cyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjdXQpIHtcbiAgICByZXR1cm4geCArIFwiLFwiICsgeSArIFwiIFwiICsgKHggKyB3aWR0aCkgKyBcIixcIiArIHkgKyBcIiBcIiArICh4ICsgd2lkdGgpICsgXCIsXCIgKyAoeSArIGhlaWdodCAtIGN1dCkgKyBcIiBcIiArICh4ICsgd2lkdGggLSBjdXQgKiAxLjIpICsgXCIsXCIgKyAoeSArIGhlaWdodCkgKyBcIiBcIiArIHggKyBcIixcIiArICh5ICsgaGVpZ2h0KTtcbiAgfVxuICBjb25zdCBwb2x5Z29uID0gZWxlbS5hcHBlbmQoXCJwb2x5Z29uXCIpO1xuICBwb2x5Z29uLmF0dHIoXCJwb2ludHNcIiwgZ2VuUG9pbnRzKHR4dE9iamVjdC54LCB0eHRPYmplY3QueSwgdHh0T2JqZWN0LndpZHRoLCB0eHRPYmplY3QuaGVpZ2h0LCA3KSk7XG4gIHBvbHlnb24uYXR0cihcImNsYXNzXCIsIFwibGFiZWxCb3hcIik7XG4gIHR4dE9iamVjdC55ID0gdHh0T2JqZWN0LnkgKyB0eHRPYmplY3QuaGVpZ2h0IC8gMjtcbiAgZHJhd1RleHQoZWxlbSwgdHh0T2JqZWN0KTtcbiAgcmV0dXJuIHBvbHlnb247XG59O1xubGV0IGFjdG9yQ250ID0gLTE7XG5jb25zdCBmaXhMaWZlTGluZUhlaWdodHMgPSAoZGlhZ3JhbTIsIGFjdG9ycywgYWN0b3JLZXlzLCBjb25mMikgPT4ge1xuICBpZiAoIWRpYWdyYW0yLnNlbGVjdCkge1xuICAgIHJldHVybjtcbiAgfVxuICBhY3RvcktleXMuZm9yRWFjaCgoYWN0b3JLZXkpID0+IHtcbiAgICBjb25zdCBhY3RvciA9IGFjdG9yc1thY3RvcktleV07XG4gICAgY29uc3QgYWN0b3JET00gPSBkaWFncmFtMi5zZWxlY3QoXCIjYWN0b3JcIiArIGFjdG9yLmFjdG9yQ250KTtcbiAgICBpZiAoIWNvbmYyLm1pcnJvckFjdG9ycyAmJiBhY3Rvci5zdG9weSkge1xuICAgICAgYWN0b3JET00uYXR0cihcInkyXCIsIGFjdG9yLnN0b3B5ICsgYWN0b3IuaGVpZ2h0IC8gMik7XG4gICAgfSBlbHNlIGlmIChjb25mMi5taXJyb3JBY3RvcnMpIHtcbiAgICAgIGFjdG9yRE9NLmF0dHIoXCJ5MlwiLCBhY3Rvci5zdG9weSk7XG4gICAgfVxuICB9KTtcbn07XG5jb25zdCBkcmF3QWN0b3JUeXBlUGFydGljaXBhbnQgPSBhc3luYyBmdW5jdGlvbihlbGVtLCBhY3RvciwgY29uZjIsIGlzRm9vdGVyKSB7XG4gIGNvbnN0IGFjdG9yWSA9IGlzRm9vdGVyID8gYWN0b3Iuc3RvcHkgOiBhY3Rvci5zdGFydHk7XG4gIGNvbnN0IGNlbnRlciA9IGFjdG9yLnggKyBhY3Rvci53aWR0aCAvIDI7XG4gIGNvbnN0IGNlbnRlclkgPSBhY3RvclkgKyA1O1xuICBjb25zdCBib3hwbHVzTGluZUdyb3VwID0gZWxlbS5hcHBlbmQoXCJnXCIpLmxvd2VyKCk7XG4gIHZhciBnID0gYm94cGx1c0xpbmVHcm91cDtcbiAgaWYgKCFpc0Zvb3Rlcikge1xuICAgIGFjdG9yQ250Kys7XG4gICAgaWYgKE9iamVjdC5rZXlzKGFjdG9yLmxpbmtzIHx8IHt9KS5sZW5ndGggJiYgIWNvbmYyLmZvcmNlTWVudXMpIHtcbiAgICAgIGcuYXR0cihcIm9uY2xpY2tcIiwgcG9wdXBNZW51VG9nZ2xlKGBhY3RvciR7YWN0b3JDbnR9X3BvcHVwYCkpLmF0dHIoXCJjdXJzb3JcIiwgXCJwb2ludGVyXCIpO1xuICAgIH1cbiAgICBnLmFwcGVuZChcImxpbmVcIikuYXR0cihcImlkXCIsIFwiYWN0b3JcIiArIGFjdG9yQ250KS5hdHRyKFwieDFcIiwgY2VudGVyKS5hdHRyKFwieTFcIiwgY2VudGVyWSkuYXR0cihcIngyXCIsIGNlbnRlcikuYXR0cihcInkyXCIsIDJlMykuYXR0cihcImNsYXNzXCIsIFwiYWN0b3ItbGluZVwiKS5hdHRyKFwiY2xhc3NcIiwgXCIyMDBcIikuYXR0cihcInN0cm9rZS13aWR0aFwiLCBcIjAuNXB4XCIpLmF0dHIoXCJzdHJva2VcIiwgXCIjOTk5XCIpO1xuICAgIGcgPSBib3hwbHVzTGluZUdyb3VwLmFwcGVuZChcImdcIik7XG4gICAgYWN0b3IuYWN0b3JDbnQgPSBhY3RvckNudDtcbiAgICBpZiAoYWN0b3IubGlua3MgIT0gbnVsbCkge1xuICAgICAgZy5hdHRyKFwiaWRcIiwgXCJyb290LVwiICsgYWN0b3JDbnQpO1xuICAgIH1cbiAgfVxuICBjb25zdCByZWN0ID0gZ2V0Tm90ZVJlY3QkMSgpO1xuICB2YXIgY3NzY2xhc3MgPSBcImFjdG9yXCI7XG4gIGlmIChhY3Rvci5wcm9wZXJ0aWVzICE9IG51bGwgJiYgYWN0b3IucHJvcGVydGllc1tcImNsYXNzXCJdKSB7XG4gICAgY3NzY2xhc3MgPSBhY3Rvci5wcm9wZXJ0aWVzW1wiY2xhc3NcIl07XG4gIH0gZWxzZSB7XG4gICAgcmVjdC5maWxsID0gXCIjZWFlYWVhXCI7XG4gIH1cbiAgaWYgKGlzRm9vdGVyKSB7XG4gICAgY3NzY2xhc3MgKz0gYCAke0JPVFRPTV9BQ1RPUl9DTEFTU31gO1xuICB9IGVsc2Uge1xuICAgIGNzc2NsYXNzICs9IGAgJHtUT1BfQUNUT1JfQ0xBU1N9YDtcbiAgfVxuICByZWN0LnggPSBhY3Rvci54O1xuICByZWN0LnkgPSBhY3Rvclk7XG4gIHJlY3Qud2lkdGggPSBhY3Rvci53aWR0aDtcbiAgcmVjdC5oZWlnaHQgPSBhY3Rvci5oZWlnaHQ7XG4gIHJlY3QuY2xhc3MgPSBjc3NjbGFzcztcbiAgcmVjdC5yeCA9IDM7XG4gIHJlY3QucnkgPSAzO1xuICByZWN0Lm5hbWUgPSBhY3Rvci5uYW1lO1xuICBjb25zdCByZWN0RWxlbSA9IGRyYXdSZWN0KGcsIHJlY3QpO1xuICBhY3Rvci5yZWN0RGF0YSA9IHJlY3Q7XG4gIGlmIChhY3Rvci5wcm9wZXJ0aWVzICE9IG51bGwgJiYgYWN0b3IucHJvcGVydGllc1tcImljb25cIl0pIHtcbiAgICBjb25zdCBpY29uU3JjID0gYWN0b3IucHJvcGVydGllc1tcImljb25cIl0udHJpbSgpO1xuICAgIGlmIChpY29uU3JjLmNoYXJBdCgwKSA9PT0gXCJAXCIpIHtcbiAgICAgIGRyYXdFbWJlZGRlZEltYWdlKGcsIHJlY3QueCArIHJlY3Qud2lkdGggLSAyMCwgcmVjdC55ICsgMTAsIGljb25TcmMuc3Vic3RyKDEpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZHJhd0ltYWdlKGcsIHJlY3QueCArIHJlY3Qud2lkdGggLSAyMCwgcmVjdC55ICsgMTAsIGljb25TcmMpO1xuICAgIH1cbiAgfVxuICBhd2FpdCBfZHJhd1RleHRDYW5kaWRhdGVGdW5jKGNvbmYyLCBoYXNLYXRleChhY3Rvci5kZXNjcmlwdGlvbikpKFxuICAgIGFjdG9yLmRlc2NyaXB0aW9uLFxuICAgIGcsXG4gICAgcmVjdC54LFxuICAgIHJlY3QueSxcbiAgICByZWN0LndpZHRoLFxuICAgIHJlY3QuaGVpZ2h0LFxuICAgIHsgY2xhc3M6IFwiYWN0b3JcIiB9LFxuICAgIGNvbmYyXG4gICk7XG4gIGxldCBoZWlnaHQgPSBhY3Rvci5oZWlnaHQ7XG4gIGlmIChyZWN0RWxlbS5ub2RlKSB7XG4gICAgY29uc3QgYm91bmRzMiA9IHJlY3RFbGVtLm5vZGUoKS5nZXRCQm94KCk7XG4gICAgYWN0b3IuaGVpZ2h0ID0gYm91bmRzMi5oZWlnaHQ7XG4gICAgaGVpZ2h0ID0gYm91bmRzMi5oZWlnaHQ7XG4gIH1cbiAgcmV0dXJuIGhlaWdodDtcbn07XG5jb25zdCBkcmF3QWN0b3JUeXBlQWN0b3IgPSBhc3luYyBmdW5jdGlvbihlbGVtLCBhY3RvciwgY29uZjIsIGlzRm9vdGVyKSB7XG4gIGNvbnN0IGFjdG9yWSA9IGlzRm9vdGVyID8gYWN0b3Iuc3RvcHkgOiBhY3Rvci5zdGFydHk7XG4gIGNvbnN0IGNlbnRlciA9IGFjdG9yLnggKyBhY3Rvci53aWR0aCAvIDI7XG4gIGNvbnN0IGNlbnRlclkgPSBhY3RvclkgKyA4MDtcbiAgZWxlbS5sb3dlcigpO1xuICBpZiAoIWlzRm9vdGVyKSB7XG4gICAgYWN0b3JDbnQrKztcbiAgICBlbGVtLmFwcGVuZChcImxpbmVcIikuYXR0cihcImlkXCIsIFwiYWN0b3JcIiArIGFjdG9yQ250KS5hdHRyKFwieDFcIiwgY2VudGVyKS5hdHRyKFwieTFcIiwgY2VudGVyWSkuYXR0cihcIngyXCIsIGNlbnRlcikuYXR0cihcInkyXCIsIDJlMykuYXR0cihcImNsYXNzXCIsIFwiYWN0b3ItbGluZVwiKS5hdHRyKFwiY2xhc3NcIiwgXCIyMDBcIikuYXR0cihcInN0cm9rZS13aWR0aFwiLCBcIjAuNXB4XCIpLmF0dHIoXCJzdHJva2VcIiwgXCIjOTk5XCIpO1xuICAgIGFjdG9yLmFjdG9yQ250ID0gYWN0b3JDbnQ7XG4gIH1cbiAgY29uc3QgYWN0RWxlbSA9IGVsZW0uYXBwZW5kKFwiZ1wiKTtcbiAgbGV0IGNzc0NsYXNzID0gXCJhY3Rvci1tYW5cIjtcbiAgaWYgKGlzRm9vdGVyKSB7XG4gICAgY3NzQ2xhc3MgKz0gYCAke0JPVFRPTV9BQ1RPUl9DTEFTU31gO1xuICB9IGVsc2Uge1xuICAgIGNzc0NsYXNzICs9IGAgJHtUT1BfQUNUT1JfQ0xBU1N9YDtcbiAgfVxuICBhY3RFbGVtLmF0dHIoXCJjbGFzc1wiLCBjc3NDbGFzcyk7XG4gIGFjdEVsZW0uYXR0cihcIm5hbWVcIiwgYWN0b3IubmFtZSk7XG4gIGNvbnN0IHJlY3QgPSBnZXROb3RlUmVjdCQxKCk7XG4gIHJlY3QueCA9IGFjdG9yLng7XG4gIHJlY3QueSA9IGFjdG9yWTtcbiAgcmVjdC5maWxsID0gXCIjZWFlYWVhXCI7XG4gIHJlY3Qud2lkdGggPSBhY3Rvci53aWR0aDtcbiAgcmVjdC5oZWlnaHQgPSBhY3Rvci5oZWlnaHQ7XG4gIHJlY3QuY2xhc3MgPSBcImFjdG9yXCI7XG4gIHJlY3QucnggPSAzO1xuICByZWN0LnJ5ID0gMztcbiAgYWN0RWxlbS5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJpZFwiLCBcImFjdG9yLW1hbi10b3Jzb1wiICsgYWN0b3JDbnQpLmF0dHIoXCJ4MVwiLCBjZW50ZXIpLmF0dHIoXCJ5MVwiLCBhY3RvclkgKyAyNSkuYXR0cihcIngyXCIsIGNlbnRlcikuYXR0cihcInkyXCIsIGFjdG9yWSArIDQ1KTtcbiAgYWN0RWxlbS5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJpZFwiLCBcImFjdG9yLW1hbi1hcm1zXCIgKyBhY3RvckNudCkuYXR0cihcIngxXCIsIGNlbnRlciAtIEFDVE9SX1RZUEVfV0lEVEggLyAyKS5hdHRyKFwieTFcIiwgYWN0b3JZICsgMzMpLmF0dHIoXCJ4MlwiLCBjZW50ZXIgKyBBQ1RPUl9UWVBFX1dJRFRIIC8gMikuYXR0cihcInkyXCIsIGFjdG9yWSArIDMzKTtcbiAgYWN0RWxlbS5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJ4MVwiLCBjZW50ZXIgLSBBQ1RPUl9UWVBFX1dJRFRIIC8gMikuYXR0cihcInkxXCIsIGFjdG9yWSArIDYwKS5hdHRyKFwieDJcIiwgY2VudGVyKS5hdHRyKFwieTJcIiwgYWN0b3JZICsgNDUpO1xuICBhY3RFbGVtLmFwcGVuZChcImxpbmVcIikuYXR0cihcIngxXCIsIGNlbnRlcikuYXR0cihcInkxXCIsIGFjdG9yWSArIDQ1KS5hdHRyKFwieDJcIiwgY2VudGVyICsgQUNUT1JfVFlQRV9XSURUSCAvIDIgLSAyKS5hdHRyKFwieTJcIiwgYWN0b3JZICsgNjApO1xuICBjb25zdCBjaXJjbGUgPSBhY3RFbGVtLmFwcGVuZChcImNpcmNsZVwiKTtcbiAgY2lyY2xlLmF0dHIoXCJjeFwiLCBhY3Rvci54ICsgYWN0b3Iud2lkdGggLyAyKTtcbiAgY2lyY2xlLmF0dHIoXCJjeVwiLCBhY3RvclkgKyAxMCk7XG4gIGNpcmNsZS5hdHRyKFwiclwiLCAxNSk7XG4gIGNpcmNsZS5hdHRyKFwid2lkdGhcIiwgYWN0b3Iud2lkdGgpO1xuICBjaXJjbGUuYXR0cihcImhlaWdodFwiLCBhY3Rvci5oZWlnaHQpO1xuICBjb25zdCBib3VuZHMyID0gYWN0RWxlbS5ub2RlKCkuZ2V0QkJveCgpO1xuICBhY3Rvci5oZWlnaHQgPSBib3VuZHMyLmhlaWdodDtcbiAgYXdhaXQgX2RyYXdUZXh0Q2FuZGlkYXRlRnVuYyhjb25mMiwgaGFzS2F0ZXgoYWN0b3IuZGVzY3JpcHRpb24pKShcbiAgICBhY3Rvci5kZXNjcmlwdGlvbixcbiAgICBhY3RFbGVtLFxuICAgIHJlY3QueCxcbiAgICByZWN0LnkgKyAzNSxcbiAgICByZWN0LndpZHRoLFxuICAgIHJlY3QuaGVpZ2h0LFxuICAgIHsgY2xhc3M6IFwiYWN0b3JcIiB9LFxuICAgIGNvbmYyXG4gICk7XG4gIHJldHVybiBhY3Rvci5oZWlnaHQ7XG59O1xuY29uc3QgZHJhd0FjdG9yID0gYXN5bmMgZnVuY3Rpb24oZWxlbSwgYWN0b3IsIGNvbmYyLCBpc0Zvb3Rlcikge1xuICBzd2l0Y2ggKGFjdG9yLnR5cGUpIHtcbiAgICBjYXNlIFwiYWN0b3JcIjpcbiAgICAgIHJldHVybiBhd2FpdCBkcmF3QWN0b3JUeXBlQWN0b3IoZWxlbSwgYWN0b3IsIGNvbmYyLCBpc0Zvb3Rlcik7XG4gICAgY2FzZSBcInBhcnRpY2lwYW50XCI6XG4gICAgICByZXR1cm4gYXdhaXQgZHJhd0FjdG9yVHlwZVBhcnRpY2lwYW50KGVsZW0sIGFjdG9yLCBjb25mMiwgaXNGb290ZXIpO1xuICB9XG59O1xuY29uc3QgZHJhd0JveCA9IGFzeW5jIGZ1bmN0aW9uKGVsZW0sIGJveCwgY29uZjIpIHtcbiAgY29uc3QgYm94cGx1c1RleHRHcm91cCA9IGVsZW0uYXBwZW5kKFwiZ1wiKTtcbiAgY29uc3QgZyA9IGJveHBsdXNUZXh0R3JvdXA7XG4gIGRyYXdCYWNrZ3JvdW5kUmVjdChnLCBib3gpO1xuICBpZiAoYm94Lm5hbWUpIHtcbiAgICBhd2FpdCBfZHJhd1RleHRDYW5kaWRhdGVGdW5jKGNvbmYyKShcbiAgICAgIGJveC5uYW1lLFxuICAgICAgZyxcbiAgICAgIGJveC54LFxuICAgICAgYm94LnkgKyAoYm94LnRleHRNYXhIZWlnaHQgfHwgMCkgLyAyLFxuICAgICAgYm94LndpZHRoLFxuICAgICAgMCxcbiAgICAgIHsgY2xhc3M6IFwidGV4dFwiIH0sXG4gICAgICBjb25mMlxuICAgICk7XG4gIH1cbiAgZy5sb3dlcigpO1xufTtcbmNvbnN0IGFuY2hvckVsZW1lbnQgPSBmdW5jdGlvbihlbGVtKSB7XG4gIHJldHVybiBlbGVtLmFwcGVuZChcImdcIik7XG59O1xuY29uc3QgZHJhd0FjdGl2YXRpb24gPSBmdW5jdGlvbihlbGVtLCBib3VuZHMyLCB2ZXJ0aWNhbFBvcywgY29uZjIsIGFjdG9yQWN0aXZhdGlvbnMyKSB7XG4gIGNvbnN0IHJlY3QgPSBnZXROb3RlUmVjdCQxKCk7XG4gIGNvbnN0IGcgPSBib3VuZHMyLmFuY2hvcmVkO1xuICByZWN0LnggPSBib3VuZHMyLnN0YXJ0eDtcbiAgcmVjdC55ID0gYm91bmRzMi5zdGFydHk7XG4gIHJlY3QuY2xhc3MgPSBcImFjdGl2YXRpb25cIiArIGFjdG9yQWN0aXZhdGlvbnMyICUgMztcbiAgcmVjdC53aWR0aCA9IGJvdW5kczIuc3RvcHggLSBib3VuZHMyLnN0YXJ0eDtcbiAgcmVjdC5oZWlnaHQgPSB2ZXJ0aWNhbFBvcyAtIGJvdW5kczIuc3RhcnR5O1xuICBkcmF3UmVjdChnLCByZWN0KTtcbn07XG5jb25zdCBkcmF3TG9vcCA9IGFzeW5jIGZ1bmN0aW9uKGVsZW0sIGxvb3BNb2RlbCwgbGFiZWxUZXh0LCBjb25mMikge1xuICBjb25zdCB7XG4gICAgYm94TWFyZ2luLFxuICAgIGJveFRleHRNYXJnaW4sXG4gICAgbGFiZWxCb3hIZWlnaHQsXG4gICAgbGFiZWxCb3hXaWR0aCxcbiAgICBtZXNzYWdlRm9udEZhbWlseTogZm9udEZhbWlseSxcbiAgICBtZXNzYWdlRm9udFNpemU6IGZvbnRTaXplLFxuICAgIG1lc3NhZ2VGb250V2VpZ2h0OiBmb250V2VpZ2h0XG4gIH0gPSBjb25mMjtcbiAgY29uc3QgZyA9IGVsZW0uYXBwZW5kKFwiZ1wiKTtcbiAgY29uc3QgZHJhd0xvb3BMaW5lID0gZnVuY3Rpb24oc3RhcnR4LCBzdGFydHksIHN0b3B4LCBzdG9weSkge1xuICAgIHJldHVybiBnLmFwcGVuZChcImxpbmVcIikuYXR0cihcIngxXCIsIHN0YXJ0eCkuYXR0cihcInkxXCIsIHN0YXJ0eSkuYXR0cihcIngyXCIsIHN0b3B4KS5hdHRyKFwieTJcIiwgc3RvcHkpLmF0dHIoXCJjbGFzc1wiLCBcImxvb3BMaW5lXCIpO1xuICB9O1xuICBkcmF3TG9vcExpbmUobG9vcE1vZGVsLnN0YXJ0eCwgbG9vcE1vZGVsLnN0YXJ0eSwgbG9vcE1vZGVsLnN0b3B4LCBsb29wTW9kZWwuc3RhcnR5KTtcbiAgZHJhd0xvb3BMaW5lKGxvb3BNb2RlbC5zdG9weCwgbG9vcE1vZGVsLnN0YXJ0eSwgbG9vcE1vZGVsLnN0b3B4LCBsb29wTW9kZWwuc3RvcHkpO1xuICBkcmF3TG9vcExpbmUobG9vcE1vZGVsLnN0YXJ0eCwgbG9vcE1vZGVsLnN0b3B5LCBsb29wTW9kZWwuc3RvcHgsIGxvb3BNb2RlbC5zdG9weSk7XG4gIGRyYXdMb29wTGluZShsb29wTW9kZWwuc3RhcnR4LCBsb29wTW9kZWwuc3RhcnR5LCBsb29wTW9kZWwuc3RhcnR4LCBsb29wTW9kZWwuc3RvcHkpO1xuICBpZiAobG9vcE1vZGVsLnNlY3Rpb25zICE9PSB2b2lkIDApIHtcbiAgICBsb29wTW9kZWwuc2VjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7XG4gICAgICBkcmF3TG9vcExpbmUobG9vcE1vZGVsLnN0YXJ0eCwgaXRlbS55LCBsb29wTW9kZWwuc3RvcHgsIGl0ZW0ueSkuc3R5bGUoXG4gICAgICAgIFwic3Ryb2tlLWRhc2hhcnJheVwiLFxuICAgICAgICBcIjMsIDNcIlxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuICBsZXQgdHh0ID0gZ2V0VGV4dE9iaiQxKCk7XG4gIHR4dC50ZXh0ID0gbGFiZWxUZXh0O1xuICB0eHQueCA9IGxvb3BNb2RlbC5zdGFydHg7XG4gIHR4dC55ID0gbG9vcE1vZGVsLnN0YXJ0eTtcbiAgdHh0LmZvbnRGYW1pbHkgPSBmb250RmFtaWx5O1xuICB0eHQuZm9udFNpemUgPSBmb250U2l6ZTtcbiAgdHh0LmZvbnRXZWlnaHQgPSBmb250V2VpZ2h0O1xuICB0eHQuYW5jaG9yID0gXCJtaWRkbGVcIjtcbiAgdHh0LnZhbGlnbiA9IFwibWlkZGxlXCI7XG4gIHR4dC50c3BhbiA9IGZhbHNlO1xuICB0eHQud2lkdGggPSBsYWJlbEJveFdpZHRoIHx8IDUwO1xuICB0eHQuaGVpZ2h0ID0gbGFiZWxCb3hIZWlnaHQgfHwgMjA7XG4gIHR4dC50ZXh0TWFyZ2luID0gYm94VGV4dE1hcmdpbjtcbiAgdHh0LmNsYXNzID0gXCJsYWJlbFRleHRcIjtcbiAgZHJhd0xhYmVsKGcsIHR4dCk7XG4gIHR4dCA9IGdldFRleHRPYmooKTtcbiAgdHh0LnRleHQgPSBsb29wTW9kZWwudGl0bGU7XG4gIHR4dC54ID0gbG9vcE1vZGVsLnN0YXJ0eCArIGxhYmVsQm94V2lkdGggLyAyICsgKGxvb3BNb2RlbC5zdG9weCAtIGxvb3BNb2RlbC5zdGFydHgpIC8gMjtcbiAgdHh0LnkgPSBsb29wTW9kZWwuc3RhcnR5ICsgYm94TWFyZ2luICsgYm94VGV4dE1hcmdpbjtcbiAgdHh0LmFuY2hvciA9IFwibWlkZGxlXCI7XG4gIHR4dC52YWxpZ24gPSBcIm1pZGRsZVwiO1xuICB0eHQudGV4dE1hcmdpbiA9IGJveFRleHRNYXJnaW47XG4gIHR4dC5jbGFzcyA9IFwibG9vcFRleHRcIjtcbiAgdHh0LmZvbnRGYW1pbHkgPSBmb250RmFtaWx5O1xuICB0eHQuZm9udFNpemUgPSBmb250U2l6ZTtcbiAgdHh0LmZvbnRXZWlnaHQgPSBmb250V2VpZ2h0O1xuICB0eHQud3JhcCA9IHRydWU7XG4gIGxldCB0ZXh0RWxlbSA9IGhhc0thdGV4KHR4dC50ZXh0KSA/IGF3YWl0IGRyYXdLYXRleChnLCB0eHQsIGxvb3BNb2RlbCkgOiBkcmF3VGV4dChnLCB0eHQpO1xuICBpZiAobG9vcE1vZGVsLnNlY3Rpb25UaXRsZXMgIT09IHZvaWQgMCkge1xuICAgIGZvciAoY29uc3QgW2lkeCwgaXRlbV0gb2YgT2JqZWN0LmVudHJpZXMobG9vcE1vZGVsLnNlY3Rpb25UaXRsZXMpKSB7XG4gICAgICBpZiAoaXRlbS5tZXNzYWdlKSB7XG4gICAgICAgIHR4dC50ZXh0ID0gaXRlbS5tZXNzYWdlO1xuICAgICAgICB0eHQueCA9IGxvb3BNb2RlbC5zdGFydHggKyAobG9vcE1vZGVsLnN0b3B4IC0gbG9vcE1vZGVsLnN0YXJ0eCkgLyAyO1xuICAgICAgICB0eHQueSA9IGxvb3BNb2RlbC5zZWN0aW9uc1tpZHhdLnkgKyBib3hNYXJnaW4gKyBib3hUZXh0TWFyZ2luO1xuICAgICAgICB0eHQuY2xhc3MgPSBcImxvb3BUZXh0XCI7XG4gICAgICAgIHR4dC5hbmNob3IgPSBcIm1pZGRsZVwiO1xuICAgICAgICB0eHQudmFsaWduID0gXCJtaWRkbGVcIjtcbiAgICAgICAgdHh0LnRzcGFuID0gZmFsc2U7XG4gICAgICAgIHR4dC5mb250RmFtaWx5ID0gZm9udEZhbWlseTtcbiAgICAgICAgdHh0LmZvbnRTaXplID0gZm9udFNpemU7XG4gICAgICAgIHR4dC5mb250V2VpZ2h0ID0gZm9udFdlaWdodDtcbiAgICAgICAgdHh0LndyYXAgPSBsb29wTW9kZWwud3JhcDtcbiAgICAgICAgaWYgKGhhc0thdGV4KHR4dC50ZXh0KSkge1xuICAgICAgICAgIGxvb3BNb2RlbC5zdGFydHkgPSBsb29wTW9kZWwuc2VjdGlvbnNbaWR4XS55O1xuICAgICAgICAgIGF3YWl0IGRyYXdLYXRleChnLCB0eHQsIGxvb3BNb2RlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZHJhd1RleHQoZywgdHh0KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgc2VjdGlvbkhlaWdodCA9IE1hdGgucm91bmQoXG4gICAgICAgICAgdGV4dEVsZW0ubWFwKCh0ZSkgPT4gKHRlLl9ncm91cHMgfHwgdGUpWzBdWzBdLmdldEJCb3goKS5oZWlnaHQpLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiBhY2MgKyBjdXJyKVxuICAgICAgICApO1xuICAgICAgICBsb29wTW9kZWwuc2VjdGlvbnNbaWR4XS5oZWlnaHQgKz0gc2VjdGlvbkhlaWdodCAtIChib3hNYXJnaW4gKyBib3hUZXh0TWFyZ2luKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgbG9vcE1vZGVsLmhlaWdodCA9IE1hdGgucm91bmQobG9vcE1vZGVsLnN0b3B5IC0gbG9vcE1vZGVsLnN0YXJ0eSk7XG4gIHJldHVybiBnO1xufTtcbmNvbnN0IGRyYXdCYWNrZ3JvdW5kUmVjdCA9IGZ1bmN0aW9uKGVsZW0sIGJvdW5kczIpIHtcbiAgZHJhd0JhY2tncm91bmRSZWN0JDEoZWxlbSwgYm91bmRzMik7XG59O1xuY29uc3QgaW5zZXJ0RGF0YWJhc2VJY29uID0gZnVuY3Rpb24oZWxlbSkge1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwic3ltYm9sXCIpLmF0dHIoXCJpZFwiLCBcImRhdGFiYXNlXCIpLmF0dHIoXCJmaWxsLXJ1bGVcIiwgXCJldmVub2RkXCIpLmF0dHIoXCJjbGlwLXJ1bGVcIiwgXCJldmVub2RkXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcInRyYW5zZm9ybVwiLCBcInNjYWxlKC41KVwiKS5hdHRyKFxuICAgIFwiZFwiLFxuICAgIFwiTTEyLjI1OC4wMDFsLjI1Ni4wMDQuMjU1LjAwNS4yNTMuMDA4LjI1MS4wMS4yNDkuMDEyLjI0Ny4wMTUuMjQ2LjAxNi4yNDIuMDE5LjI0MS4wMi4yMzkuMDIzLjIzNi4wMjQuMjMzLjAyNy4yMzEuMDI4LjIyOS4wMzEuMjI1LjAzMi4yMjMuMDM0LjIyLjAzNi4yMTcuMDM4LjIxNC4wNC4yMTEuMDQxLjIwOC4wNDMuMjA1LjA0NS4yMDEuMDQ2LjE5OC4wNDguMTk0LjA1LjE5MS4wNTEuMTg3LjA1My4xODMuMDU0LjE4LjA1Ni4xNzUuMDU3LjE3Mi4wNTkuMTY4LjA2LjE2My4wNjEuMTYuMDYzLjE1NS4wNjQuMTUuMDY2LjA3NC4wMzMuMDczLjAzMy4wNzEuMDM0LjA3LjAzNC4wNjkuMDM1LjA2OC4wMzUuMDY3LjAzNS4wNjYuMDM1LjA2NC4wMzYuMDY0LjAzNi4wNjIuMDM2LjA2LjAzNi4wNi4wMzcuMDU4LjAzNy4wNTguMDM3LjA1NS4wMzguMDU1LjAzOC4wNTMuMDM4LjA1Mi4wMzguMDUxLjAzOS4wNS4wMzkuMDQ4LjAzOS4wNDcuMDM5LjA0NS4wNC4wNDQuMDQuMDQzLjA0LjA0MS4wNC4wNC4wNDEuMDM5LjA0MS4wMzcuMDQxLjAzNi4wNDEuMDM0LjA0MS4wMzMuMDQyLjAzMi4wNDIuMDMuMDQyLjAyOS4wNDIuMDI3LjA0Mi4wMjYuMDQzLjAyNC4wNDMuMDIzLjA0My4wMjEuMDQzLjAyLjA0My4wMTguMDQ0LjAxNy4wNDMuMDE1LjA0NC4wMTMuMDQ0LjAxMi4wNDQuMDExLjA0NS4wMDkuMDQ0LjAwNy4wNDUuMDA2LjA0NS4wMDQuMDQ1LjAwMi4wNDUuMDAxLjA0NXYxN2wtLjAwMS4wNDUtLjAwMi4wNDUtLjAwNC4wNDUtLjAwNi4wNDUtLjAwNy4wNDUtLjAwOS4wNDQtLjAxMS4wNDUtLjAxMi4wNDQtLjAxMy4wNDQtLjAxNS4wNDQtLjAxNy4wNDMtLjAxOC4wNDQtLjAyLjA0My0uMDIxLjA0My0uMDIzLjA0My0uMDI0LjA0My0uMDI2LjA0My0uMDI3LjA0Mi0uMDI5LjA0Mi0uMDMuMDQyLS4wMzIuMDQyLS4wMzMuMDQyLS4wMzQuMDQxLS4wMzYuMDQxLS4wMzcuMDQxLS4wMzkuMDQxLS4wNC4wNDEtLjA0MS4wNC0uMDQzLjA0LS4wNDQuMDQtLjA0NS4wNC0uMDQ3LjAzOS0uMDQ4LjAzOS0uMDUuMDM5LS4wNTEuMDM5LS4wNTIuMDM4LS4wNTMuMDM4LS4wNTUuMDM4LS4wNTUuMDM4LS4wNTguMDM3LS4wNTguMDM3LS4wNi4wMzctLjA2LjAzNi0uMDYyLjAzNi0uMDY0LjAzNi0uMDY0LjAzNi0uMDY2LjAzNS0uMDY3LjAzNS0uMDY4LjAzNS0uMDY5LjAzNS0uMDcuMDM0LS4wNzEuMDM0LS4wNzMuMDMzLS4wNzQuMDMzLS4xNS4wNjYtLjE1NS4wNjQtLjE2LjA2My0uMTYzLjA2MS0uMTY4LjA2LS4xNzIuMDU5LS4xNzUuMDU3LS4xOC4wNTYtLjE4My4wNTQtLjE4Ny4wNTMtLjE5MS4wNTEtLjE5NC4wNS0uMTk4LjA0OC0uMjAxLjA0Ni0uMjA1LjA0NS0uMjA4LjA0My0uMjExLjA0MS0uMjE0LjA0LS4yMTcuMDM4LS4yMi4wMzYtLjIyMy4wMzQtLjIyNS4wMzItLjIyOS4wMzEtLjIzMS4wMjgtLjIzMy4wMjctLjIzNi4wMjQtLjIzOS4wMjMtLjI0MS4wMi0uMjQyLjAxOS0uMjQ2LjAxNi0uMjQ3LjAxNS0uMjQ5LjAxMi0uMjUxLjAxLS4yNTMuMDA4LS4yNTUuMDA1LS4yNTYuMDA0LS4yNTguMDAxLS4yNTgtLjAwMS0uMjU2LS4wMDQtLjI1NS0uMDA1LS4yNTMtLjAwOC0uMjUxLS4wMS0uMjQ5LS4wMTItLjI0Ny0uMDE1LS4yNDUtLjAxNi0uMjQzLS4wMTktLjI0MS0uMDItLjIzOC0uMDIzLS4yMzYtLjAyNC0uMjM0LS4wMjctLjIzMS0uMDI4LS4yMjgtLjAzMS0uMjI2LS4wMzItLjIyMy0uMDM0LS4yMi0uMDM2LS4yMTctLjAzOC0uMjE0LS4wNC0uMjExLS4wNDEtLjIwOC0uMDQzLS4yMDQtLjA0NS0uMjAxLS4wNDYtLjE5OC0uMDQ4LS4xOTUtLjA1LS4xOS0uMDUxLS4xODctLjA1My0uMTg0LS4wNTQtLjE3OS0uMDU2LS4xNzYtLjA1Ny0uMTcyLS4wNTktLjE2Ny0uMDYtLjE2NC0uMDYxLS4xNTktLjA2My0uMTU1LS4wNjQtLjE1MS0uMDY2LS4wNzQtLjAzMy0uMDcyLS4wMzMtLjA3Mi0uMDM0LS4wNy0uMDM0LS4wNjktLjAzNS0uMDY4LS4wMzUtLjA2Ny0uMDM1LS4wNjYtLjAzNS0uMDY0LS4wMzYtLjA2My0uMDM2LS4wNjItLjAzNi0uMDYxLS4wMzYtLjA2LS4wMzctLjA1OC0uMDM3LS4wNTctLjAzNy0uMDU2LS4wMzgtLjA1NS0uMDM4LS4wNTMtLjAzOC0uMDUyLS4wMzgtLjA1MS0uMDM5LS4wNDktLjAzOS0uMDQ5LS4wMzktLjA0Ni0uMDM5LS4wNDYtLjA0LS4wNDQtLjA0LS4wNDMtLjA0LS4wNDEtLjA0LS4wNC0uMDQxLS4wMzktLjA0MS0uMDM3LS4wNDEtLjAzNi0uMDQxLS4wMzQtLjA0MS0uMDMzLS4wNDItLjAzMi0uMDQyLS4wMy0uMDQyLS4wMjktLjA0Mi0uMDI3LS4wNDItLjAyNi0uMDQzLS4wMjQtLjA0My0uMDIzLS4wNDMtLjAyMS0uMDQzLS4wMi0uMDQzLS4wMTgtLjA0NC0uMDE3LS4wNDMtLjAxNS0uMDQ0LS4wMTMtLjA0NC0uMDEyLS4wNDQtLjAxMS0uMDQ1LS4wMDktLjA0NC0uMDA3LS4wNDUtLjAwNi0uMDQ1LS4wMDQtLjA0NS0uMDAyLS4wNDUtLjAwMS0uMDQ1di0xN2wuMDAxLS4wNDUuMDAyLS4wNDUuMDA0LS4wNDUuMDA2LS4wNDUuMDA3LS4wNDUuMDA5LS4wNDQuMDExLS4wNDUuMDEyLS4wNDQuMDEzLS4wNDQuMDE1LS4wNDQuMDE3LS4wNDMuMDE4LS4wNDQuMDItLjA0My4wMjEtLjA0My4wMjMtLjA0My4wMjQtLjA0My4wMjYtLjA0My4wMjctLjA0Mi4wMjktLjA0Mi4wMy0uMDQyLjAzMi0uMDQyLjAzMy0uMDQyLjAzNC0uMDQxLjAzNi0uMDQxLjAzNy0uMDQxLjAzOS0uMDQxLjA0LS4wNDEuMDQxLS4wNC4wNDMtLjA0LjA0NC0uMDQuMDQ2LS4wNC4wNDYtLjAzOS4wNDktLjAzOS4wNDktLjAzOS4wNTEtLjAzOS4wNTItLjAzOC4wNTMtLjAzOC4wNTUtLjAzOC4wNTYtLjAzOC4wNTctLjAzNy4wNTgtLjAzNy4wNi0uMDM3LjA2MS0uMDM2LjA2Mi0uMDM2LjA2My0uMDM2LjA2NC0uMDM2LjA2Ni0uMDM1LjA2Ny0uMDM1LjA2OC0uMDM1LjA2OS0uMDM1LjA3LS4wMzQuMDcyLS4wMzQuMDcyLS4wMzMuMDc0LS4wMzMuMTUxLS4wNjYuMTU1LS4wNjQuMTU5LS4wNjMuMTY0LS4wNjEuMTY3LS4wNi4xNzItLjA1OS4xNzYtLjA1Ny4xNzktLjA1Ni4xODQtLjA1NC4xODctLjA1My4xOS0uMDUxLjE5NS0uMDUuMTk4LS4wNDguMjAxLS4wNDYuMjA0LS4wNDUuMjA4LS4wNDMuMjExLS4wNDEuMjE0LS4wNC4yMTctLjAzOC4yMi0uMDM2LjIyMy0uMDM0LjIyNi0uMDMyLjIyOC0uMDMxLjIzMS0uMDI4LjIzNC0uMDI3LjIzNi0uMDI0LjIzOC0uMDIzLjI0MS0uMDIuMjQzLS4wMTkuMjQ1LS4wMTYuMjQ3LS4wMTUuMjQ5LS4wMTIuMjUxLS4wMS4yNTMtLjAwOC4yNTUtLjAwNS4yNTYtLjAwNC4yNTgtLjAwMS4yNTguMDAxem0tOS4yNTggMjAuNDk5di4wMWwuMDAxLjAyMS4wMDMuMDIxLjAwNC4wMjIuMDA1LjAyMS4wMDYuMDIyLjAwNy4wMjIuMDA5LjAyMy4wMS4wMjIuMDExLjAyMy4wMTIuMDIzLjAxMy4wMjMuMDE1LjAyMy4wMTYuMDI0LjAxNy4wMjMuMDE4LjAyNC4wMTkuMDI0LjAyMS4wMjQuMDIyLjAyNS4wMjMuMDI0LjAyNC4wMjUuMDUyLjA0OS4wNTYuMDUuMDYxLjA1MS4wNjYuMDUxLjA3LjA1MS4wNzUuMDUxLjA3OS4wNTIuMDg0LjA1Mi4wODguMDUyLjA5Mi4wNTIuMDk3LjA1Mi4xMDIuMDUxLjEwNS4wNTIuMTEuMDUyLjExNC4wNTEuMTE5LjA1MS4xMjMuMDUxLjEyNy4wNS4xMzEuMDUuMTM1LjA1LjEzOS4wNDguMTQ0LjA0OS4xNDcuMDQ3LjE1Mi4wNDcuMTU1LjA0Ny4xNi4wNDUuMTYzLjA0NS4xNjcuMDQzLjE3MS4wNDMuMTc2LjA0MS4xNzguMDQxLjE4My4wMzkuMTg3LjAzOS4xOS4wMzcuMTk0LjAzNS4xOTcuMDM1LjIwMi4wMzMuMjA0LjAzMS4yMDkuMDMuMjEyLjAyOS4yMTYuMDI3LjIxOS4wMjUuMjIyLjAyNC4yMjYuMDIxLjIzLjAyLjIzMy4wMTguMjM2LjAxNi4yNC4wMTUuMjQzLjAxMi4yNDYuMDEuMjQ5LjAwOC4yNTMuMDA1LjI1Ni4wMDQuMjU5LjAwMS4yNi0uMDAxLjI1Ny0uMDA0LjI1NC0uMDA1LjI1LS4wMDguMjQ3LS4wMTEuMjQ0LS4wMTIuMjQxLS4wMTQuMjM3LS4wMTYuMjMzLS4wMTguMjMxLS4wMjEuMjI2LS4wMjEuMjI0LS4wMjQuMjItLjAyNi4yMTYtLjAyNy4yMTItLjAyOC4yMS0uMDMxLjIwNS0uMDMxLjIwMi0uMDM0LjE5OC0uMDM0LjE5NC0uMDM2LjE5MS0uMDM3LjE4Ny0uMDM5LjE4My0uMDQuMTc5LS4wNC4xNzUtLjA0Mi4xNzItLjA0My4xNjgtLjA0NC4xNjMtLjA0NS4xNi0uMDQ2LjE1NS0uMDQ2LjE1Mi0uMDQ3LjE0OC0uMDQ4LjE0My0uMDQ5LjEzOS0uMDQ5LjEzNi0uMDUuMTMxLS4wNS4xMjYtLjA1LjEyMy0uMDUxLjExOC0uMDUyLjExNC0uMDUxLjExLS4wNTIuMTA2LS4wNTIuMTAxLS4wNTIuMDk2LS4wNTIuMDkyLS4wNTIuMDg4LS4wNTMuMDgzLS4wNTEuMDc5LS4wNTIuMDc0LS4wNTIuMDctLjA1MS4wNjUtLjA1MS4wNi0uMDUxLjA1Ni0uMDUuMDUxLS4wNS4wMjMtLjAyNC4wMjMtLjAyNS4wMjEtLjAyNC4wMi0uMDI0LjAxOS0uMDI0LjAxOC0uMDI0LjAxNy0uMDI0LjAxNS0uMDIzLjAxNC0uMDI0LjAxMy0uMDIzLjAxMi0uMDIzLjAxLS4wMjMuMDEtLjAyMi4wMDgtLjAyMi4wMDYtLjAyMi4wMDYtLjAyMi4wMDQtLjAyMi4wMDQtLjAyMS4wMDEtLjAyMS4wMDEtLjAyMXYtNC4xMjdsLS4wNzcuMDU1LS4wOC4wNTMtLjA4My4wNTQtLjA4NS4wNTMtLjA4Ny4wNTItLjA5LjA1Mi0uMDkzLjA1MS0uMDk1LjA1LS4wOTcuMDUtLjEuMDQ5LS4xMDIuMDQ5LS4xMDUuMDQ4LS4xMDYuMDQ3LS4xMDkuMDQ3LS4xMTEuMDQ2LS4xMTQuMDQ1LS4xMTUuMDQ1LS4xMTguMDQ0LS4xMi4wNDMtLjEyMi4wNDItLjEyNC4wNDItLjEyNi4wNDEtLjEyOC4wNC0uMTMuMDQtLjEzMi4wMzgtLjEzNC4wMzgtLjEzNS4wMzctLjEzOC4wMzctLjEzOS4wMzUtLjE0Mi4wMzUtLjE0My4wMzQtLjE0NC4wMzMtLjE0Ny4wMzItLjE0OC4wMzEtLjE1LjAzLS4xNTEuMDMtLjE1My4wMjktLjE1NC4wMjctLjE1Ni4wMjctLjE1OC4wMjYtLjE1OS4wMjUtLjE2MS4wMjQtLjE2Mi4wMjMtLjE2My4wMjItLjE2NS4wMjEtLjE2Ni4wMi0uMTY3LjAxOS0uMTY5LjAxOC0uMTY5LjAxNy0uMTcxLjAxNi0uMTczLjAxNS0uMTczLjAxNC0uMTc1LjAxMy0uMTc1LjAxMi0uMTc3LjAxMS0uMTc4LjAxLS4xNzkuMDA4LS4xNzkuMDA4LS4xODEuMDA2LS4xODIuMDA1LS4xODIuMDA0LS4xODQuMDAzLS4xODQuMDAyaC0uMzdsLS4xODQtLjAwMi0uMTg0LS4wMDMtLjE4Mi0uMDA0LS4xODItLjAwNS0uMTgxLS4wMDYtLjE3OS0uMDA4LS4xNzktLjAwOC0uMTc4LS4wMS0uMTc2LS4wMTEtLjE3Ni0uMDEyLS4xNzUtLjAxMy0uMTczLS4wMTQtLjE3Mi0uMDE1LS4xNzEtLjAxNi0uMTctLjAxNy0uMTY5LS4wMTgtLjE2Ny0uMDE5LS4xNjYtLjAyLS4xNjUtLjAyMS0uMTYzLS4wMjItLjE2Mi0uMDIzLS4xNjEtLjAyNC0uMTU5LS4wMjUtLjE1Ny0uMDI2LS4xNTYtLjAyNy0uMTU1LS4wMjctLjE1My0uMDI5LS4xNTEtLjAzLS4xNS0uMDMtLjE0OC0uMDMxLS4xNDYtLjAzMi0uMTQ1LS4wMzMtLjE0My0uMDM0LS4xNDEtLjAzNS0uMTQtLjAzNS0uMTM3LS4wMzctLjEzNi0uMDM3LS4xMzQtLjAzOC0uMTMyLS4wMzgtLjEzLS4wNC0uMTI4LS4wNC0uMTI2LS4wNDEtLjEyNC0uMDQyLS4xMjItLjA0Mi0uMTItLjA0NC0uMTE3LS4wNDMtLjExNi0uMDQ1LS4xMTMtLjA0NS0uMTEyLS4wNDYtLjEwOS0uMDQ3LS4xMDYtLjA0Ny0uMTA1LS4wNDgtLjEwMi0uMDQ5LS4xLS4wNDktLjA5Ny0uMDUtLjA5NS0uMDUtLjA5My0uMDUyLS4wOS0uMDUxLS4wODctLjA1Mi0uMDg1LS4wNTMtLjA4My0uMDU0LS4wOC0uMDU0LS4wNzctLjA1NHY0LjEyN3ptMC01LjY1NHYuMDExbC4wMDEuMDIxLjAwMy4wMjEuMDA0LjAyMS4wMDUuMDIyLjAwNi4wMjIuMDA3LjAyMi4wMDkuMDIyLjAxLjAyMi4wMTEuMDIzLjAxMi4wMjMuMDEzLjAyMy4wMTUuMDI0LjAxNi4wMjMuMDE3LjAyNC4wMTguMDI0LjAxOS4wMjQuMDIxLjAyNC4wMjIuMDI0LjAyMy4wMjUuMDI0LjAyNC4wNTIuMDUuMDU2LjA1LjA2MS4wNS4wNjYuMDUxLjA3LjA1MS4wNzUuMDUyLjA3OS4wNTEuMDg0LjA1Mi4wODguMDUyLjA5Mi4wNTIuMDk3LjA1Mi4xMDIuMDUyLjEwNS4wNTIuMTEuMDUxLjExNC4wNTEuMTE5LjA1Mi4xMjMuMDUuMTI3LjA1MS4xMzEuMDUuMTM1LjA0OS4xMzkuMDQ5LjE0NC4wNDguMTQ3LjA0OC4xNTIuMDQ3LjE1NS4wNDYuMTYuMDQ1LjE2My4wNDUuMTY3LjA0NC4xNzEuMDQyLjE3Ni4wNDIuMTc4LjA0LjE4My4wNC4xODcuMDM4LjE5LjAzNy4xOTQuMDM2LjE5Ny4wMzQuMjAyLjAzMy4yMDQuMDMyLjIwOS4wMy4yMTIuMDI4LjIxNi4wMjcuMjE5LjAyNS4yMjIuMDI0LjIyNi4wMjIuMjMuMDIuMjMzLjAxOC4yMzYuMDE2LjI0LjAxNC4yNDMuMDEyLjI0Ni4wMS4yNDkuMDA4LjI1My4wMDYuMjU2LjAwMy4yNTkuMDAxLjI2LS4wMDEuMjU3LS4wMDMuMjU0LS4wMDYuMjUtLjAwOC4yNDctLjAxLjI0NC0uMDEyLjI0MS0uMDE1LjIzNy0uMDE2LjIzMy0uMDE4LjIzMS0uMDIuMjI2LS4wMjIuMjI0LS4wMjQuMjItLjAyNS4yMTYtLjAyNy4yMTItLjAyOS4yMS0uMDMuMjA1LS4wMzIuMjAyLS4wMzMuMTk4LS4wMzUuMTk0LS4wMzYuMTkxLS4wMzcuMTg3LS4wMzkuMTgzLS4wMzkuMTc5LS4wNDEuMTc1LS4wNDIuMTcyLS4wNDMuMTY4LS4wNDQuMTYzLS4wNDUuMTYtLjA0NS4xNTUtLjA0Ny4xNTItLjA0Ny4xNDgtLjA0OC4xNDMtLjA0OC4xMzktLjA1LjEzNi0uMDQ5LjEzMS0uMDUuMTI2LS4wNTEuMTIzLS4wNTEuMTE4LS4wNTEuMTE0LS4wNTIuMTEtLjA1Mi4xMDYtLjA1Mi4xMDEtLjA1Mi4wOTYtLjA1Mi4wOTItLjA1Mi4wODgtLjA1Mi4wODMtLjA1Mi4wNzktLjA1Mi4wNzQtLjA1MS4wNy0uMDUyLjA2NS0uMDUxLjA2LS4wNS4wNTYtLjA1MS4wNTEtLjA0OS4wMjMtLjAyNS4wMjMtLjAyNC4wMjEtLjAyNS4wMi0uMDI0LjAxOS0uMDI0LjAxOC0uMDI0LjAxNy0uMDI0LjAxNS0uMDIzLjAxNC0uMDIzLjAxMy0uMDI0LjAxMi0uMDIyLjAxLS4wMjMuMDEtLjAyMy4wMDgtLjAyMi4wMDYtLjAyMi4wMDYtLjAyMi4wMDQtLjAyMS4wMDQtLjAyMi4wMDEtLjAyMS4wMDEtLjAyMXYtNC4xMzlsLS4wNzcuMDU0LS4wOC4wNTQtLjA4My4wNTQtLjA4NS4wNTItLjA4Ny4wNTMtLjA5LjA1MS0uMDkzLjA1MS0uMDk1LjA1MS0uMDk3LjA1LS4xLjA0OS0uMTAyLjA0OS0uMTA1LjA0OC0uMTA2LjA0Ny0uMTA5LjA0Ny0uMTExLjA0Ni0uMTE0LjA0NS0uMTE1LjA0NC0uMTE4LjA0NC0uMTIuMDQ0LS4xMjIuMDQyLS4xMjQuMDQyLS4xMjYuMDQxLS4xMjguMDQtLjEzLjAzOS0uMTMyLjAzOS0uMTM0LjAzOC0uMTM1LjAzNy0uMTM4LjAzNi0uMTM5LjAzNi0uMTQyLjAzNS0uMTQzLjAzMy0uMTQ0LjAzMy0uMTQ3LjAzMy0uMTQ4LjAzMS0uMTUuMDMtLjE1MS4wMy0uMTUzLjAyOC0uMTU0LjAyOC0uMTU2LjAyNy0uMTU4LjAyNi0uMTU5LjAyNS0uMTYxLjAyNC0uMTYyLjAyMy0uMTYzLjAyMi0uMTY1LjAyMS0uMTY2LjAyLS4xNjcuMDE5LS4xNjkuMDE4LS4xNjkuMDE3LS4xNzEuMDE2LS4xNzMuMDE1LS4xNzMuMDE0LS4xNzUuMDEzLS4xNzUuMDEyLS4xNzcuMDExLS4xNzguMDA5LS4xNzkuMDA5LS4xNzkuMDA3LS4xODEuMDA3LS4xODIuMDA1LS4xODIuMDA0LS4xODQuMDAzLS4xODQuMDAyaC0uMzdsLS4xODQtLjAwMi0uMTg0LS4wMDMtLjE4Mi0uMDA0LS4xODItLjAwNS0uMTgxLS4wMDctLjE3OS0uMDA3LS4xNzktLjAwOS0uMTc4LS4wMDktLjE3Ni0uMDExLS4xNzYtLjAxMi0uMTc1LS4wMTMtLjE3My0uMDE0LS4xNzItLjAxNS0uMTcxLS4wMTYtLjE3LS4wMTctLjE2OS0uMDE4LS4xNjctLjAxOS0uMTY2LS4wMi0uMTY1LS4wMjEtLjE2My0uMDIyLS4xNjItLjAyMy0uMTYxLS4wMjQtLjE1OS0uMDI1LS4xNTctLjAyNi0uMTU2LS4wMjctLjE1NS0uMDI4LS4xNTMtLjAyOC0uMTUxLS4wMy0uMTUtLjAzLS4xNDgtLjAzMS0uMTQ2LS4wMzMtLjE0NS0uMDMzLS4xNDMtLjAzMy0uMTQxLS4wMzUtLjE0LS4wMzYtLjEzNy0uMDM2LS4xMzYtLjAzNy0uMTM0LS4wMzgtLjEzMi0uMDM5LS4xMy0uMDM5LS4xMjgtLjA0LS4xMjYtLjA0MS0uMTI0LS4wNDItLjEyMi0uMDQzLS4xMi0uMDQzLS4xMTctLjA0NC0uMTE2LS4wNDQtLjExMy0uMDQ2LS4xMTItLjA0Ni0uMTA5LS4wNDYtLjEwNi0uMDQ3LS4xMDUtLjA0OC0uMTAyLS4wNDktLjEtLjA0OS0uMDk3LS4wNS0uMDk1LS4wNTEtLjA5My0uMDUxLS4wOS0uMDUxLS4wODctLjA1My0uMDg1LS4wNTItLjA4My0uMDU0LS4wOC0uMDU0LS4wNzctLjA1NHY0LjEzOXptMC01LjY2NnYuMDExbC4wMDEuMDIuMDAzLjAyMi4wMDQuMDIxLjAwNS4wMjIuMDA2LjAyMS4wMDcuMDIyLjAwOS4wMjMuMDEuMDIyLjAxMS4wMjMuMDEyLjAyMy4wMTMuMDIzLjAxNS4wMjMuMDE2LjAyNC4wMTcuMDI0LjAxOC4wMjMuMDE5LjAyNC4wMjEuMDI1LjAyMi4wMjQuMDIzLjAyNC4wMjQuMDI1LjA1Mi4wNS4wNTYuMDUuMDYxLjA1LjA2Ni4wNTEuMDcuMDUxLjA3NS4wNTIuMDc5LjA1MS4wODQuMDUyLjA4OC4wNTIuMDkyLjA1Mi4wOTcuMDUyLjEwMi4wNTIuMTA1LjA1MS4xMS4wNTIuMTE0LjA1MS4xMTkuMDUxLjEyMy4wNTEuMTI3LjA1LjEzMS4wNS4xMzUuMDUuMTM5LjA0OS4xNDQuMDQ4LjE0Ny4wNDguMTUyLjA0Ny4xNTUuMDQ2LjE2LjA0NS4xNjMuMDQ1LjE2Ny4wNDMuMTcxLjA0My4xNzYuMDQyLjE3OC4wNC4xODMuMDQuMTg3LjAzOC4xOS4wMzcuMTk0LjAzNi4xOTcuMDM0LjIwMi4wMzMuMjA0LjAzMi4yMDkuMDMuMjEyLjAyOC4yMTYuMDI3LjIxOS4wMjUuMjIyLjAyNC4yMjYuMDIxLjIzLjAyLjIzMy4wMTguMjM2LjAxNy4yNC4wMTQuMjQzLjAxMi4yNDYuMDEuMjQ5LjAwOC4yNTMuMDA2LjI1Ni4wMDMuMjU5LjAwMS4yNi0uMDAxLjI1Ny0uMDAzLjI1NC0uMDA2LjI1LS4wMDguMjQ3LS4wMS4yNDQtLjAxMy4yNDEtLjAxNC4yMzctLjAxNi4yMzMtLjAxOC4yMzEtLjAyLjIyNi0uMDIyLjIyNC0uMDI0LjIyLS4wMjUuMjE2LS4wMjcuMjEyLS4wMjkuMjEtLjAzLjIwNS0uMDMyLjIwMi0uMDMzLjE5OC0uMDM1LjE5NC0uMDM2LjE5MS0uMDM3LjE4Ny0uMDM5LjE4My0uMDM5LjE3OS0uMDQxLjE3NS0uMDQyLjE3Mi0uMDQzLjE2OC0uMDQ0LjE2My0uMDQ1LjE2LS4wNDUuMTU1LS4wNDcuMTUyLS4wNDcuMTQ4LS4wNDguMTQzLS4wNDkuMTM5LS4wNDkuMTM2LS4wNDkuMTMxLS4wNTEuMTI2LS4wNS4xMjMtLjA1MS4xMTgtLjA1Mi4xMTQtLjA1MS4xMS0uMDUyLjEwNi0uMDUyLjEwMS0uMDUyLjA5Ni0uMDUyLjA5Mi0uMDUyLjA4OC0uMDUyLjA4My0uMDUyLjA3OS0uMDUyLjA3NC0uMDUyLjA3LS4wNTEuMDY1LS4wNTEuMDYtLjA1MS4wNTYtLjA1LjA1MS0uMDQ5LjAyMy0uMDI1LjAyMy0uMDI1LjAyMS0uMDI0LjAyLS4wMjQuMDE5LS4wMjQuMDE4LS4wMjQuMDE3LS4wMjQuMDE1LS4wMjMuMDE0LS4wMjQuMDEzLS4wMjMuMDEyLS4wMjMuMDEtLjAyMi4wMS0uMDIzLjAwOC0uMDIyLjAwNi0uMDIyLjAwNi0uMDIyLjAwNC0uMDIyLjAwNC0uMDIxLjAwMS0uMDIxLjAwMS0uMDIxdi00LjE1M2wtLjA3Ny4wNTQtLjA4LjA1NC0uMDgzLjA1My0uMDg1LjA1My0uMDg3LjA1My0uMDkuMDUxLS4wOTMuMDUxLS4wOTUuMDUxLS4wOTcuMDUtLjEuMDQ5LS4xMDIuMDQ4LS4xMDUuMDQ4LS4xMDYuMDQ4LS4xMDkuMDQ2LS4xMTEuMDQ2LS4xMTQuMDQ2LS4xMTUuMDQ0LS4xMTguMDQ0LS4xMi4wNDMtLjEyMi4wNDMtLjEyNC4wNDItLjEyNi4wNDEtLjEyOC4wNC0uMTMuMDM5LS4xMzIuMDM5LS4xMzQuMDM4LS4xMzUuMDM3LS4xMzguMDM2LS4xMzkuMDM2LS4xNDIuMDM0LS4xNDMuMDM0LS4xNDQuMDMzLS4xNDcuMDMyLS4xNDguMDMyLS4xNS4wMy0uMTUxLjAzLS4xNTMuMDI4LS4xNTQuMDI4LS4xNTYuMDI3LS4xNTguMDI2LS4xNTkuMDI0LS4xNjEuMDI0LS4xNjIuMDIzLS4xNjMuMDIzLS4xNjUuMDIxLS4xNjYuMDItLjE2Ny4wMTktLjE2OS4wMTgtLjE2OS4wMTctLjE3MS4wMTYtLjE3My4wMTUtLjE3My4wMTQtLjE3NS4wMTMtLjE3NS4wMTItLjE3Ny4wMS0uMTc4LjAxLS4xNzkuMDA5LS4xNzkuMDA3LS4xODEuMDA2LS4xODIuMDA2LS4xODIuMDA0LS4xODQuMDAzLS4xODQuMDAxLS4xODUuMDAxLS4xODUtLjAwMS0uMTg0LS4wMDEtLjE4NC0uMDAzLS4xODItLjAwNC0uMTgyLS4wMDYtLjE4MS0uMDA2LS4xNzktLjAwNy0uMTc5LS4wMDktLjE3OC0uMDEtLjE3Ni0uMDEtLjE3Ni0uMDEyLS4xNzUtLjAxMy0uMTczLS4wMTQtLjE3Mi0uMDE1LS4xNzEtLjAxNi0uMTctLjAxNy0uMTY5LS4wMTgtLjE2Ny0uMDE5LS4xNjYtLjAyLS4xNjUtLjAyMS0uMTYzLS4wMjMtLjE2Mi0uMDIzLS4xNjEtLjAyNC0uMTU5LS4wMjQtLjE1Ny0uMDI2LS4xNTYtLjAyNy0uMTU1LS4wMjgtLjE1My0uMDI4LS4xNTEtLjAzLS4xNS0uMDMtLjE0OC0uMDMyLS4xNDYtLjAzMi0uMTQ1LS4wMzMtLjE0My0uMDM0LS4xNDEtLjAzNC0uMTQtLjAzNi0uMTM3LS4wMzYtLjEzNi0uMDM3LS4xMzQtLjAzOC0uMTMyLS4wMzktLjEzLS4wMzktLjEyOC0uMDQxLS4xMjYtLjA0MS0uMTI0LS4wNDEtLjEyMi0uMDQzLS4xMi0uMDQzLS4xMTctLjA0NC0uMTE2LS4wNDQtLjExMy0uMDQ2LS4xMTItLjA0Ni0uMTA5LS4wNDYtLjEwNi0uMDQ4LS4xMDUtLjA0OC0uMTAyLS4wNDgtLjEtLjA1LS4wOTctLjA0OS0uMDk1LS4wNTEtLjA5My0uMDUxLS4wOS0uMDUyLS4wODctLjA1Mi0uMDg1LS4wNTMtLjA4My0uMDUzLS4wOC0uMDU0LS4wNzctLjA1NHY0LjE1M3ptOC43NC04LjE3OWwtLjI1Ny4wMDQtLjI1NC4wMDUtLjI1LjAwOC0uMjQ3LjAxMS0uMjQ0LjAxMi0uMjQxLjAxNC0uMjM3LjAxNi0uMjMzLjAxOC0uMjMxLjAyMS0uMjI2LjAyMi0uMjI0LjAyMy0uMjIuMDI2LS4yMTYuMDI3LS4yMTIuMDI4LS4yMS4wMzEtLjIwNS4wMzItLjIwMi4wMzMtLjE5OC4wMzQtLjE5NC4wMzYtLjE5MS4wMzgtLjE4Ny4wMzgtLjE4My4wNC0uMTc5LjA0MS0uMTc1LjA0Mi0uMTcyLjA0My0uMTY4LjA0My0uMTYzLjA0NS0uMTYuMDQ2LS4xNTUuMDQ2LS4xNTIuMDQ4LS4xNDguMDQ4LS4xNDMuMDQ4LS4xMzkuMDQ5LS4xMzYuMDUtLjEzMS4wNS0uMTI2LjA1MS0uMTIzLjA1MS0uMTE4LjA1MS0uMTE0LjA1Mi0uMTEuMDUyLS4xMDYuMDUyLS4xMDEuMDUyLS4wOTYuMDUyLS4wOTIuMDUyLS4wODguMDUyLS4wODMuMDUyLS4wNzkuMDUyLS4wNzQuMDUxLS4wNy4wNTItLjA2NS4wNTEtLjA2LjA1LS4wNTYuMDUtLjA1MS4wNS0uMDIzLjAyNS0uMDIzLjAyNC0uMDIxLjAyNC0uMDIuMDI1LS4wMTkuMDI0LS4wMTguMDI0LS4wMTcuMDIzLS4wMTUuMDI0LS4wMTQuMDIzLS4wMTMuMDIzLS4wMTIuMDIzLS4wMS4wMjMtLjAxLjAyMi0uMDA4LjAyMi0uMDA2LjAyMy0uMDA2LjAyMS0uMDA0LjAyMi0uMDA0LjAyMS0uMDAxLjAyMS0uMDAxLjAyMS4wMDEuMDIxLjAwMS4wMjEuMDA0LjAyMS4wMDQuMDIyLjAwNi4wMjEuMDA2LjAyMy4wMDguMDIyLjAxLjAyMi4wMS4wMjMuMDEyLjAyMy4wMTMuMDIzLjAxNC4wMjMuMDE1LjAyNC4wMTcuMDIzLjAxOC4wMjQuMDE5LjAyNC4wMi4wMjUuMDIxLjAyNC4wMjMuMDI0LjAyMy4wMjUuMDUxLjA1LjA1Ni4wNS4wNi4wNS4wNjUuMDUxLjA3LjA1Mi4wNzQuMDUxLjA3OS4wNTIuMDgzLjA1Mi4wODguMDUyLjA5Mi4wNTIuMDk2LjA1Mi4xMDEuMDUyLjEwNi4wNTIuMTEuMDUyLjExNC4wNTIuMTE4LjA1MS4xMjMuMDUxLjEyNi4wNTEuMTMxLjA1LjEzNi4wNS4xMzkuMDQ5LjE0My4wNDguMTQ4LjA0OC4xNTIuMDQ4LjE1NS4wNDYuMTYuMDQ2LjE2My4wNDUuMTY4LjA0My4xNzIuMDQzLjE3NS4wNDIuMTc5LjA0MS4xODMuMDQuMTg3LjAzOC4xOTEuMDM4LjE5NC4wMzYuMTk4LjAzNC4yMDIuMDMzLjIwNS4wMzIuMjEuMDMxLjIxMi4wMjguMjE2LjAyNy4yMi4wMjYuMjI0LjAyMy4yMjYuMDIyLjIzMS4wMjEuMjMzLjAxOC4yMzcuMDE2LjI0MS4wMTQuMjQ0LjAxMi4yNDcuMDExLjI1LjAwOC4yNTQuMDA1LjI1Ny4wMDQuMjYuMDAxLjI2LS4wMDEuMjU3LS4wMDQuMjU0LS4wMDUuMjUtLjAwOC4yNDctLjAxMS4yNDQtLjAxMi4yNDEtLjAxNC4yMzctLjAxNi4yMzMtLjAxOC4yMzEtLjAyMS4yMjYtLjAyMi4yMjQtLjAyMy4yMi0uMDI2LjIxNi0uMDI3LjIxMi0uMDI4LjIxLS4wMzEuMjA1LS4wMzIuMjAyLS4wMzMuMTk4LS4wMzQuMTk0LS4wMzYuMTkxLS4wMzguMTg3LS4wMzguMTgzLS4wNC4xNzktLjA0MS4xNzUtLjA0Mi4xNzItLjA0My4xNjgtLjA0My4xNjMtLjA0NS4xNi0uMDQ2LjE1NS0uMDQ2LjE1Mi0uMDQ4LjE0OC0uMDQ4LjE0My0uMDQ4LjEzOS0uMDQ5LjEzNi0uMDUuMTMxLS4wNS4xMjYtLjA1MS4xMjMtLjA1MS4xMTgtLjA1MS4xMTQtLjA1Mi4xMS0uMDUyLjEwNi0uMDUyLjEwMS0uMDUyLjA5Ni0uMDUyLjA5Mi0uMDUyLjA4OC0uMDUyLjA4My0uMDUyLjA3OS0uMDUyLjA3NC0uMDUxLjA3LS4wNTIuMDY1LS4wNTEuMDYtLjA1LjA1Ni0uMDUuMDUxLS4wNS4wMjMtLjAyNS4wMjMtLjAyNC4wMjEtLjAyNC4wMi0uMDI1LjAxOS0uMDI0LjAxOC0uMDI0LjAxNy0uMDIzLjAxNS0uMDI0LjAxNC0uMDIzLjAxMy0uMDIzLjAxMi0uMDIzLjAxLS4wMjMuMDEtLjAyMi4wMDgtLjAyMi4wMDYtLjAyMy4wMDYtLjAyMS4wMDQtLjAyMi4wMDQtLjAyMS4wMDEtLjAyMS4wMDEtLjAyMS0uMDAxLS4wMjEtLjAwMS0uMDIxLS4wMDQtLjAyMS0uMDA0LS4wMjItLjAwNi0uMDIxLS4wMDYtLjAyMy0uMDA4LS4wMjItLjAxLS4wMjItLjAxLS4wMjMtLjAxMi0uMDIzLS4wMTMtLjAyMy0uMDE0LS4wMjMtLjAxNS0uMDI0LS4wMTctLjAyMy0uMDE4LS4wMjQtLjAxOS0uMDI0LS4wMi0uMDI1LS4wMjEtLjAyNC0uMDIzLS4wMjQtLjAyMy0uMDI1LS4wNTEtLjA1LS4wNTYtLjA1LS4wNi0uMDUtLjA2NS0uMDUxLS4wNy0uMDUyLS4wNzQtLjA1MS0uMDc5LS4wNTItLjA4My0uMDUyLS4wODgtLjA1Mi0uMDkyLS4wNTItLjA5Ni0uMDUyLS4xMDEtLjA1Mi0uMTA2LS4wNTItLjExLS4wNTItLjExNC0uMDUyLS4xMTgtLjA1MS0uMTIzLS4wNTEtLjEyNi0uMDUxLS4xMzEtLjA1LS4xMzYtLjA1LS4xMzktLjA0OS0uMTQzLS4wNDgtLjE0OC0uMDQ4LS4xNTItLjA0OC0uMTU1LS4wNDYtLjE2LS4wNDYtLjE2My0uMDQ1LS4xNjgtLjA0My0uMTcyLS4wNDMtLjE3NS0uMDQyLS4xNzktLjA0MS0uMTgzLS4wNC0uMTg3LS4wMzgtLjE5MS0uMDM4LS4xOTQtLjAzNi0uMTk4LS4wMzQtLjIwMi0uMDMzLS4yMDUtLjAzMi0uMjEtLjAzMS0uMjEyLS4wMjgtLjIxNi0uMDI3LS4yMi0uMDI2LS4yMjQtLjAyMy0uMjI2LS4wMjItLjIzMS0uMDIxLS4yMzMtLjAxOC0uMjM3LS4wMTYtLjI0MS0uMDE0LS4yNDQtLjAxMi0uMjQ3LS4wMTEtLjI1LS4wMDgtLjI1NC0uMDA1LS4yNTctLjAwNC0uMjYtLjAwMS0uMjYuMDAxelwiXG4gICk7XG59O1xuY29uc3QgaW5zZXJ0Q29tcHV0ZXJJY29uID0gZnVuY3Rpb24oZWxlbSkge1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwic3ltYm9sXCIpLmF0dHIoXCJpZFwiLCBcImNvbXB1dGVyXCIpLmF0dHIoXCJ3aWR0aFwiLCBcIjI0XCIpLmF0dHIoXCJoZWlnaHRcIiwgXCIyNFwiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJzY2FsZSguNSlcIikuYXR0cihcbiAgICBcImRcIixcbiAgICBcIk0yIDJ2MTNoMjB2LTEzaC0yMHptMTggMTFoLTE2di05aDE2djl6bS0xMC4yMjggNmwuNDY2LTFoMy41MjRsLjQ2NyAxaC00LjQ1N3ptMTQuMjI4IDNoLTI0bDItNmgyLjEwNGwtMS4zMyA0aDE4LjQ1bC0xLjI5Ny00aDIuMDczbDIgNnptLTUtMTBoLTE0di03aDE0djd6XCJcbiAgKTtcbn07XG5jb25zdCBpbnNlcnRDbG9ja0ljb24gPSBmdW5jdGlvbihlbGVtKSB7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJzeW1ib2xcIikuYXR0cihcImlkXCIsIFwiY2xvY2tcIikuYXR0cihcIndpZHRoXCIsIFwiMjRcIikuYXR0cihcImhlaWdodFwiLCBcIjI0XCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcInRyYW5zZm9ybVwiLCBcInNjYWxlKC41KVwiKS5hdHRyKFxuICAgIFwiZFwiLFxuICAgIFwiTTEyIDJjNS41MTQgMCAxMCA0LjQ4NiAxMCAxMHMtNC40ODYgMTAtMTAgMTAtMTAtNC40ODYtMTAtMTAgNC40ODYtMTAgMTAtMTB6bTAtMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnM1LjM3MyAxMiAxMiAxMiAxMi01LjM3MyAxMi0xMi01LjM3My0xMi0xMi0xMnptNS44NDggMTIuNDU5Yy4yMDIuMDM4LjIwMi4zMzMuMDAxLjM3Mi0xLjkwNy4zNjEtNi4wNDUgMS4xMTEtNi41NDcgMS4xMTEtLjcxOSAwLTEuMzAxLS41ODItMS4zMDEtMS4zMDEgMC0uNTEyLjc3LTUuNDQ3IDEuMTI1LTcuNDQ1LjAzNC0uMTkyLjMxMi0uMTgxLjM0My4wMTRsLjk4NSA2LjIzOCA1LjM5NCAxLjAxMXpcIlxuICApO1xufTtcbmNvbnN0IGluc2VydEFycm93SGVhZCA9IGZ1bmN0aW9uKGVsZW0pIHtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgXCJhcnJvd2hlYWRcIikuYXR0cihcInJlZlhcIiwgNy45KS5hdHRyKFwicmVmWVwiLCA1KS5hdHRyKFwibWFya2VyVW5pdHNcIiwgXCJ1c2VyU3BhY2VPblVzZVwiKS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTIpLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMTIpLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDAgMCBMIDEwIDUgTCAwIDEwIHpcIik7XG59O1xuY29uc3QgaW5zZXJ0QXJyb3dGaWxsZWRIZWFkID0gZnVuY3Rpb24oZWxlbSkge1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBcImZpbGxlZC1oZWFkXCIpLmF0dHIoXCJyZWZYXCIsIDE1LjUpLmF0dHIoXCJyZWZZXCIsIDcpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAyMCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCAyOCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gMTgsNyBMOSwxMyBMMTQsNyBMOSwxIFpcIik7XG59O1xuY29uc3QgaW5zZXJ0U2VxdWVuY2VOdW1iZXIgPSBmdW5jdGlvbihlbGVtKSB7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIFwic2VxdWVuY2VudW1iZXJcIikuYXR0cihcInJlZlhcIiwgMTUpLmF0dHIoXCJyZWZZXCIsIDE1KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgNjApLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgNDApLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwiY3hcIiwgMTUpLmF0dHIoXCJjeVwiLCAxNSkuYXR0cihcInJcIiwgNik7XG59O1xuY29uc3QgaW5zZXJ0QXJyb3dDcm9zc0hlYWQgPSBmdW5jdGlvbihlbGVtKSB7XG4gIGNvbnN0IGRlZnMgPSBlbGVtLmFwcGVuZChcImRlZnNcIik7XG4gIGNvbnN0IG1hcmtlciA9IGRlZnMuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBcImNyb3NzaGVhZFwiKS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTUpLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgOCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXR0cihcInJlZlhcIiwgNCkuYXR0cihcInJlZllcIiwgNC41KTtcbiAgbWFya2VyLmFwcGVuZChcInBhdGhcIikuYXR0cihcImZpbGxcIiwgXCJub25lXCIpLmF0dHIoXCJzdHJva2VcIiwgXCIjMDAwMDAwXCIpLnN0eWxlKFwic3Ryb2tlLWRhc2hhcnJheVwiLCBcIjAsIDBcIikuYXR0cihcInN0cm9rZS13aWR0aFwiLCBcIjFwdFwiKS5hdHRyKFwiZFwiLCBcIk0gMSwyIEwgNiw3IE0gNiwyIEwgMSw3XCIpO1xufTtcbmNvbnN0IGdldFRleHRPYmogPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHtcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgZmlsbDogdm9pZCAwLFxuICAgIGFuY2hvcjogdm9pZCAwLFxuICAgIHN0eWxlOiBcIiM2NjZcIixcbiAgICB3aWR0aDogdm9pZCAwLFxuICAgIGhlaWdodDogdm9pZCAwLFxuICAgIHRleHRNYXJnaW46IDAsXG4gICAgcng6IDAsXG4gICAgcnk6IDAsXG4gICAgdHNwYW46IHRydWUsXG4gICAgdmFsaWduOiB2b2lkIDBcbiAgfTtcbn07XG5jb25zdCBnZXROb3RlUmVjdCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4ge1xuICAgIHg6IDAsXG4gICAgeTogMCxcbiAgICBmaWxsOiBcIiNFREYyQUVcIixcbiAgICBzdHJva2U6IFwiIzY2NlwiLFxuICAgIHdpZHRoOiAxMDAsXG4gICAgYW5jaG9yOiBcInN0YXJ0XCIsXG4gICAgaGVpZ2h0OiAxMDAsXG4gICAgcng6IDAsXG4gICAgcnk6IDBcbiAgfTtcbn07XG5jb25zdCBfZHJhd1RleHRDYW5kaWRhdGVGdW5jID0gZnVuY3Rpb24oKSB7XG4gIGZ1bmN0aW9uIGJ5VGV4dChjb250ZW50LCBnLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB0ZXh0QXR0cnMpIHtcbiAgICBjb25zdCB0ZXh0ID0gZy5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJ4XCIsIHggKyB3aWR0aCAvIDIpLmF0dHIoXCJ5XCIsIHkgKyBoZWlnaHQgLyAyICsgNSkuc3R5bGUoXCJ0ZXh0LWFuY2hvclwiLCBcIm1pZGRsZVwiKS50ZXh0KGNvbnRlbnQpO1xuICAgIF9zZXRUZXh0QXR0cnModGV4dCwgdGV4dEF0dHJzKTtcbiAgfVxuICBmdW5jdGlvbiBieVRzcGFuKGNvbnRlbnQsIGcsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHRleHRBdHRycywgY29uZjIpIHtcbiAgICBjb25zdCB7IGFjdG9yRm9udFNpemUsIGFjdG9yRm9udEZhbWlseSwgYWN0b3JGb250V2VpZ2h0IH0gPSBjb25mMjtcbiAgICBjb25zdCBbX2FjdG9yRm9udFNpemUsIF9hY3RvckZvbnRTaXplUHhdID0gcGFyc2VGb250U2l6ZShhY3RvckZvbnRTaXplKTtcbiAgICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoY29tbW9uLmxpbmVCcmVha1JlZ2V4KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBkeSA9IGkgKiBfYWN0b3JGb250U2l6ZSAtIF9hY3RvckZvbnRTaXplICogKGxpbmVzLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgIGNvbnN0IHRleHQgPSBnLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgeCArIHdpZHRoIC8gMikuYXR0cihcInlcIiwgeSkuc3R5bGUoXCJ0ZXh0LWFuY2hvclwiLCBcIm1pZGRsZVwiKS5zdHlsZShcImZvbnQtc2l6ZVwiLCBfYWN0b3JGb250U2l6ZVB4KS5zdHlsZShcImZvbnQtd2VpZ2h0XCIsIGFjdG9yRm9udFdlaWdodCkuc3R5bGUoXCJmb250LWZhbWlseVwiLCBhY3RvckZvbnRGYW1pbHkpO1xuICAgICAgdGV4dC5hcHBlbmQoXCJ0c3BhblwiKS5hdHRyKFwieFwiLCB4ICsgd2lkdGggLyAyKS5hdHRyKFwiZHlcIiwgZHkpLnRleHQobGluZXNbaV0pO1xuICAgICAgdGV4dC5hdHRyKFwieVwiLCB5ICsgaGVpZ2h0IC8gMikuYXR0cihcImRvbWluYW50LWJhc2VsaW5lXCIsIFwiY2VudHJhbFwiKS5hdHRyKFwiYWxpZ25tZW50LWJhc2VsaW5lXCIsIFwiY2VudHJhbFwiKTtcbiAgICAgIF9zZXRUZXh0QXR0cnModGV4dCwgdGV4dEF0dHJzKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gYnlGbyhjb250ZW50LCBnLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB0ZXh0QXR0cnMsIGNvbmYyKSB7XG4gICAgY29uc3QgcyA9IGcuYXBwZW5kKFwic3dpdGNoXCIpO1xuICAgIGNvbnN0IGYgPSBzLmFwcGVuZChcImZvcmVpZ25PYmplY3RcIikuYXR0cihcInhcIiwgeCkuYXR0cihcInlcIiwgeSkuYXR0cihcIndpZHRoXCIsIHdpZHRoKS5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodCk7XG4gICAgY29uc3QgdGV4dCA9IGYuYXBwZW5kKFwieGh0bWw6ZGl2XCIpLnN0eWxlKFwiZGlzcGxheVwiLCBcInRhYmxlXCIpLnN0eWxlKFwiaGVpZ2h0XCIsIFwiMTAwJVwiKS5zdHlsZShcIndpZHRoXCIsIFwiMTAwJVwiKTtcbiAgICB0ZXh0LmFwcGVuZChcImRpdlwiKS5zdHlsZShcImRpc3BsYXlcIiwgXCJ0YWJsZS1jZWxsXCIpLnN0eWxlKFwidGV4dC1hbGlnblwiLCBcImNlbnRlclwiKS5zdHlsZShcInZlcnRpY2FsLWFsaWduXCIsIFwibWlkZGxlXCIpLnRleHQoY29udGVudCk7XG4gICAgYnlUc3Bhbihjb250ZW50LCBzLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB0ZXh0QXR0cnMsIGNvbmYyKTtcbiAgICBfc2V0VGV4dEF0dHJzKHRleHQsIHRleHRBdHRycyk7XG4gIH1cbiAgYXN5bmMgZnVuY3Rpb24gYnlLYXRleChjb250ZW50LCBnLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB0ZXh0QXR0cnMsIGNvbmYyKSB7XG4gICAgY29uc3QgZGltID0gYXdhaXQgY2FsY3VsYXRlTWF0aE1MRGltZW5zaW9ucyhjb250ZW50LCBnZXRDb25maWckMSgpKTtcbiAgICBjb25zdCBzID0gZy5hcHBlbmQoXCJzd2l0Y2hcIik7XG4gICAgY29uc3QgZiA9IHMuYXBwZW5kKFwiZm9yZWlnbk9iamVjdFwiKS5hdHRyKFwieFwiLCB4ICsgd2lkdGggLyAyIC0gZGltLndpZHRoIC8gMikuYXR0cihcInlcIiwgeSArIGhlaWdodCAvIDIgLSBkaW0uaGVpZ2h0IC8gMikuYXR0cihcIndpZHRoXCIsIGRpbS53aWR0aCkuYXR0cihcImhlaWdodFwiLCBkaW0uaGVpZ2h0KTtcbiAgICBjb25zdCB0ZXh0ID0gZi5hcHBlbmQoXCJ4aHRtbDpkaXZcIikuc3R5bGUoXCJoZWlnaHRcIiwgXCIxMDAlXCIpLnN0eWxlKFwid2lkdGhcIiwgXCIxMDAlXCIpO1xuICAgIHRleHQuYXBwZW5kKFwiZGl2XCIpLnN0eWxlKFwidGV4dC1hbGlnblwiLCBcImNlbnRlclwiKS5zdHlsZShcInZlcnRpY2FsLWFsaWduXCIsIFwibWlkZGxlXCIpLmh0bWwoYXdhaXQgcmVuZGVyS2F0ZXgoY29udGVudCwgZ2V0Q29uZmlnJDEoKSkpO1xuICAgIGJ5VHNwYW4oY29udGVudCwgcywgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGV4dEF0dHJzLCBjb25mMik7XG4gICAgX3NldFRleHRBdHRycyh0ZXh0LCB0ZXh0QXR0cnMpO1xuICB9XG4gIGZ1bmN0aW9uIF9zZXRUZXh0QXR0cnModG9UZXh0LCBmcm9tVGV4dEF0dHJzRGljdCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGZyb21UZXh0QXR0cnNEaWN0KSB7XG4gICAgICBpZiAoZnJvbVRleHRBdHRyc0RpY3QuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICB0b1RleHQuYXR0cihrZXksIGZyb21UZXh0QXR0cnNEaWN0W2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZnVuY3Rpb24oY29uZjIsIGhhc0thdGV4MiA9IGZhbHNlKSB7XG4gICAgaWYgKGhhc0thdGV4Mikge1xuICAgICAgcmV0dXJuIGJ5S2F0ZXg7XG4gICAgfVxuICAgIHJldHVybiBjb25mMi50ZXh0UGxhY2VtZW50ID09PSBcImZvXCIgPyBieUZvIDogY29uZjIudGV4dFBsYWNlbWVudCA9PT0gXCJvbGRcIiA/IGJ5VGV4dCA6IGJ5VHNwYW47XG4gIH07XG59KCk7XG5jb25zdCBfZHJhd01lbnVJdGVtVGV4dENhbmRpZGF0ZUZ1bmMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gYnlUZXh0KGNvbnRlbnQsIGcsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHRleHRBdHRycykge1xuICAgIGNvbnN0IHRleHQgPSBnLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgeCkuYXR0cihcInlcIiwgeSkuc3R5bGUoXCJ0ZXh0LWFuY2hvclwiLCBcInN0YXJ0XCIpLnRleHQoY29udGVudCk7XG4gICAgX3NldFRleHRBdHRycyh0ZXh0LCB0ZXh0QXR0cnMpO1xuICB9XG4gIGZ1bmN0aW9uIGJ5VHNwYW4oY29udGVudCwgZywgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGV4dEF0dHJzLCBjb25mMikge1xuICAgIGNvbnN0IHsgYWN0b3JGb250U2l6ZSwgYWN0b3JGb250RmFtaWx5LCBhY3RvckZvbnRXZWlnaHQgfSA9IGNvbmYyO1xuICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdChjb21tb24ubGluZUJyZWFrUmVnZXgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGR5ID0gaSAqIGFjdG9yRm9udFNpemUgLSBhY3RvckZvbnRTaXplICogKGxpbmVzLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgIGNvbnN0IHRleHQgPSBnLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgeCkuYXR0cihcInlcIiwgeSkuc3R5bGUoXCJ0ZXh0LWFuY2hvclwiLCBcInN0YXJ0XCIpLnN0eWxlKFwiZm9udC1zaXplXCIsIGFjdG9yRm9udFNpemUpLnN0eWxlKFwiZm9udC13ZWlnaHRcIiwgYWN0b3JGb250V2VpZ2h0KS5zdHlsZShcImZvbnQtZmFtaWx5XCIsIGFjdG9yRm9udEZhbWlseSk7XG4gICAgICB0ZXh0LmFwcGVuZChcInRzcGFuXCIpLmF0dHIoXCJ4XCIsIHgpLmF0dHIoXCJkeVwiLCBkeSkudGV4dChsaW5lc1tpXSk7XG4gICAgICB0ZXh0LmF0dHIoXCJ5XCIsIHkgKyBoZWlnaHQgLyAyKS5hdHRyKFwiZG9taW5hbnQtYmFzZWxpbmVcIiwgXCJjZW50cmFsXCIpLmF0dHIoXCJhbGlnbm1lbnQtYmFzZWxpbmVcIiwgXCJjZW50cmFsXCIpO1xuICAgICAgX3NldFRleHRBdHRycyh0ZXh0LCB0ZXh0QXR0cnMpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBieUZvKGNvbnRlbnQsIGcsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHRleHRBdHRycywgY29uZjIpIHtcbiAgICBjb25zdCBzID0gZy5hcHBlbmQoXCJzd2l0Y2hcIik7XG4gICAgY29uc3QgZiA9IHMuYXBwZW5kKFwiZm9yZWlnbk9iamVjdFwiKS5hdHRyKFwieFwiLCB4KS5hdHRyKFwieVwiLCB5KS5hdHRyKFwid2lkdGhcIiwgd2lkdGgpLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KTtcbiAgICBjb25zdCB0ZXh0ID0gZi5hcHBlbmQoXCJ4aHRtbDpkaXZcIikuc3R5bGUoXCJkaXNwbGF5XCIsIFwidGFibGVcIikuc3R5bGUoXCJoZWlnaHRcIiwgXCIxMDAlXCIpLnN0eWxlKFwid2lkdGhcIiwgXCIxMDAlXCIpO1xuICAgIHRleHQuYXBwZW5kKFwiZGl2XCIpLnN0eWxlKFwiZGlzcGxheVwiLCBcInRhYmxlLWNlbGxcIikuc3R5bGUoXCJ0ZXh0LWFsaWduXCIsIFwiY2VudGVyXCIpLnN0eWxlKFwidmVydGljYWwtYWxpZ25cIiwgXCJtaWRkbGVcIikudGV4dChjb250ZW50KTtcbiAgICBieVRzcGFuKGNvbnRlbnQsIHMsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHRleHRBdHRycywgY29uZjIpO1xuICAgIF9zZXRUZXh0QXR0cnModGV4dCwgdGV4dEF0dHJzKTtcbiAgfVxuICBmdW5jdGlvbiBfc2V0VGV4dEF0dHJzKHRvVGV4dCwgZnJvbVRleHRBdHRyc0RpY3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmcm9tVGV4dEF0dHJzRGljdCkge1xuICAgICAgaWYgKGZyb21UZXh0QXR0cnNEaWN0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgdG9UZXh0LmF0dHIoa2V5LCBmcm9tVGV4dEF0dHJzRGljdFtrZXldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uKGNvbmYyKSB7XG4gICAgcmV0dXJuIGNvbmYyLnRleHRQbGFjZW1lbnQgPT09IFwiZm9cIiA/IGJ5Rm8gOiBjb25mMi50ZXh0UGxhY2VtZW50ID09PSBcIm9sZFwiID8gYnlUZXh0IDogYnlUc3BhbjtcbiAgfTtcbn0oKTtcbmNvbnN0IHN2Z0RyYXcgPSB7XG4gIGRyYXdSZWN0LFxuICBkcmF3VGV4dCxcbiAgZHJhd0xhYmVsLFxuICBkcmF3QWN0b3IsXG4gIGRyYXdCb3gsXG4gIGRyYXdQb3B1cCxcbiAgYW5jaG9yRWxlbWVudCxcbiAgZHJhd0FjdGl2YXRpb24sXG4gIGRyYXdMb29wLFxuICBkcmF3QmFja2dyb3VuZFJlY3QsXG4gIGluc2VydEFycm93SGVhZCxcbiAgaW5zZXJ0QXJyb3dGaWxsZWRIZWFkLFxuICBpbnNlcnRTZXF1ZW5jZU51bWJlcixcbiAgaW5zZXJ0QXJyb3dDcm9zc0hlYWQsXG4gIGluc2VydERhdGFiYXNlSWNvbixcbiAgaW5zZXJ0Q29tcHV0ZXJJY29uLFxuICBpbnNlcnRDbG9ja0ljb24sXG4gIGdldFRleHRPYmosXG4gIGdldE5vdGVSZWN0LFxuICBmaXhMaWZlTGluZUhlaWdodHMsXG4gIHNhbml0aXplVXJsXG59O1xubGV0IGNvbmYgPSB7fTtcbmNvbnN0IGJvdW5kcyA9IHtcbiAgZGF0YToge1xuICAgIHN0YXJ0eDogdm9pZCAwLFxuICAgIHN0b3B4OiB2b2lkIDAsXG4gICAgc3RhcnR5OiB2b2lkIDAsXG4gICAgc3RvcHk6IHZvaWQgMFxuICB9LFxuICB2ZXJ0aWNhbFBvczogMCxcbiAgc2VxdWVuY2VJdGVtczogW10sXG4gIGFjdGl2YXRpb25zOiBbXSxcbiAgbW9kZWxzOiB7XG4gICAgZ2V0SGVpZ2h0OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBNYXRoLm1heC5hcHBseShcbiAgICAgICAgbnVsbCxcbiAgICAgICAgdGhpcy5hY3RvcnMubGVuZ3RoID09PSAwID8gWzBdIDogdGhpcy5hY3RvcnMubWFwKChhY3RvcikgPT4gYWN0b3IuaGVpZ2h0IHx8IDApXG4gICAgICApICsgKHRoaXMubG9vcHMubGVuZ3RoID09PSAwID8gMCA6IHRoaXMubG9vcHMubWFwKChpdCkgPT4gaXQuaGVpZ2h0IHx8IDApLnJlZHVjZSgoYWNjLCBoKSA9PiBhY2MgKyBoKSkgKyAodGhpcy5tZXNzYWdlcy5sZW5ndGggPT09IDAgPyAwIDogdGhpcy5tZXNzYWdlcy5tYXAoKGl0KSA9PiBpdC5oZWlnaHQgfHwgMCkucmVkdWNlKChhY2MsIGgpID0+IGFjYyArIGgpKSArICh0aGlzLm5vdGVzLmxlbmd0aCA9PT0gMCA/IDAgOiB0aGlzLm5vdGVzLm1hcCgoaXQpID0+IGl0LmhlaWdodCB8fCAwKS5yZWR1Y2UoKGFjYywgaCkgPT4gYWNjICsgaCkpO1xuICAgIH0sXG4gICAgY2xlYXI6IGZ1bmN0aW9uKCkge1xuICAgICAgdGhpcy5hY3RvcnMgPSBbXTtcbiAgICAgIHRoaXMuYm94ZXMgPSBbXTtcbiAgICAgIHRoaXMubG9vcHMgPSBbXTtcbiAgICAgIHRoaXMubWVzc2FnZXMgPSBbXTtcbiAgICAgIHRoaXMubm90ZXMgPSBbXTtcbiAgICB9LFxuICAgIGFkZEJveDogZnVuY3Rpb24oYm94TW9kZWwpIHtcbiAgICAgIHRoaXMuYm94ZXMucHVzaChib3hNb2RlbCk7XG4gICAgfSxcbiAgICBhZGRBY3RvcjogZnVuY3Rpb24oYWN0b3JNb2RlbCkge1xuICAgICAgdGhpcy5hY3RvcnMucHVzaChhY3Rvck1vZGVsKTtcbiAgICB9LFxuICAgIGFkZExvb3A6IGZ1bmN0aW9uKGxvb3BNb2RlbCkge1xuICAgICAgdGhpcy5sb29wcy5wdXNoKGxvb3BNb2RlbCk7XG4gICAgfSxcbiAgICBhZGRNZXNzYWdlOiBmdW5jdGlvbihtc2dNb2RlbCkge1xuICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1zZ01vZGVsKTtcbiAgICB9LFxuICAgIGFkZE5vdGU6IGZ1bmN0aW9uKG5vdGVNb2RlbCkge1xuICAgICAgdGhpcy5ub3Rlcy5wdXNoKG5vdGVNb2RlbCk7XG4gICAgfSxcbiAgICBsYXN0QWN0b3I6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0b3JzW3RoaXMuYWN0b3JzLmxlbmd0aCAtIDFdO1xuICAgIH0sXG4gICAgbGFzdExvb3A6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMubG9vcHNbdGhpcy5sb29wcy5sZW5ndGggLSAxXTtcbiAgICB9LFxuICAgIGxhc3RNZXNzYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzW3RoaXMubWVzc2FnZXMubGVuZ3RoIC0gMV07XG4gICAgfSxcbiAgICBsYXN0Tm90ZTogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub3Rlc1t0aGlzLm5vdGVzLmxlbmd0aCAtIDFdO1xuICAgIH0sXG4gICAgYWN0b3JzOiBbXSxcbiAgICBib3hlczogW10sXG4gICAgbG9vcHM6IFtdLFxuICAgIG1lc3NhZ2VzOiBbXSxcbiAgICBub3RlczogW11cbiAgfSxcbiAgaW5pdDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5zZXF1ZW5jZUl0ZW1zID0gW107XG4gICAgdGhpcy5hY3RpdmF0aW9ucyA9IFtdO1xuICAgIHRoaXMubW9kZWxzLmNsZWFyKCk7XG4gICAgdGhpcy5kYXRhID0ge1xuICAgICAgc3RhcnR4OiB2b2lkIDAsXG4gICAgICBzdG9weDogdm9pZCAwLFxuICAgICAgc3RhcnR5OiB2b2lkIDAsXG4gICAgICBzdG9weTogdm9pZCAwXG4gICAgfTtcbiAgICB0aGlzLnZlcnRpY2FsUG9zID0gMDtcbiAgICBzZXRDb25mKGdldENvbmZpZygpKTtcbiAgfSxcbiAgdXBkYXRlVmFsOiBmdW5jdGlvbihvYmosIGtleSwgdmFsLCBmdW4pIHtcbiAgICBpZiAob2JqW2tleV0gPT09IHZvaWQgMCkge1xuICAgICAgb2JqW2tleV0gPSB2YWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9ialtrZXldID0gZnVuKHZhbCwgb2JqW2tleV0pO1xuICAgIH1cbiAgfSxcbiAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbihzdGFydHgsIHN0YXJ0eSwgc3RvcHgsIHN0b3B5KSB7XG4gICAgY29uc3QgX3NlbGYgPSB0aGlzO1xuICAgIGxldCBjbnQgPSAwO1xuICAgIGZ1bmN0aW9uIHVwZGF0ZUZuKHR5cGUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiB1cGRhdGVJdGVtQm91bmRzKGl0ZW0pIHtcbiAgICAgICAgY250Kys7XG4gICAgICAgIGNvbnN0IG4gPSBfc2VsZi5zZXF1ZW5jZUl0ZW1zLmxlbmd0aCAtIGNudCArIDE7XG4gICAgICAgIF9zZWxmLnVwZGF0ZVZhbChpdGVtLCBcInN0YXJ0eVwiLCBzdGFydHkgLSBuICogY29uZi5ib3hNYXJnaW4sIE1hdGgubWluKTtcbiAgICAgICAgX3NlbGYudXBkYXRlVmFsKGl0ZW0sIFwic3RvcHlcIiwgc3RvcHkgKyBuICogY29uZi5ib3hNYXJnaW4sIE1hdGgubWF4KTtcbiAgICAgICAgX3NlbGYudXBkYXRlVmFsKGJvdW5kcy5kYXRhLCBcInN0YXJ0eFwiLCBzdGFydHggLSBuICogY29uZi5ib3hNYXJnaW4sIE1hdGgubWluKTtcbiAgICAgICAgX3NlbGYudXBkYXRlVmFsKGJvdW5kcy5kYXRhLCBcInN0b3B4XCIsIHN0b3B4ICsgbiAqIGNvbmYuYm94TWFyZ2luLCBNYXRoLm1heCk7XG4gICAgICAgIGlmICghKHR5cGUgPT09IFwiYWN0aXZhdGlvblwiKSkge1xuICAgICAgICAgIF9zZWxmLnVwZGF0ZVZhbChpdGVtLCBcInN0YXJ0eFwiLCBzdGFydHggLSBuICogY29uZi5ib3hNYXJnaW4sIE1hdGgubWluKTtcbiAgICAgICAgICBfc2VsZi51cGRhdGVWYWwoaXRlbSwgXCJzdG9weFwiLCBzdG9weCArIG4gKiBjb25mLmJveE1hcmdpbiwgTWF0aC5tYXgpO1xuICAgICAgICAgIF9zZWxmLnVwZGF0ZVZhbChib3VuZHMuZGF0YSwgXCJzdGFydHlcIiwgc3RhcnR5IC0gbiAqIGNvbmYuYm94TWFyZ2luLCBNYXRoLm1pbik7XG4gICAgICAgICAgX3NlbGYudXBkYXRlVmFsKGJvdW5kcy5kYXRhLCBcInN0b3B5XCIsIHN0b3B5ICsgbiAqIGNvbmYuYm94TWFyZ2luLCBNYXRoLm1heCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHRoaXMuc2VxdWVuY2VJdGVtcy5mb3JFYWNoKHVwZGF0ZUZuKCkpO1xuICAgIHRoaXMuYWN0aXZhdGlvbnMuZm9yRWFjaCh1cGRhdGVGbihcImFjdGl2YXRpb25cIikpO1xuICB9LFxuICBpbnNlcnQ6IGZ1bmN0aW9uKHN0YXJ0eCwgc3RhcnR5LCBzdG9weCwgc3RvcHkpIHtcbiAgICBjb25zdCBfc3RhcnR4ID0gY29tbW9uLmdldE1pbihzdGFydHgsIHN0b3B4KTtcbiAgICBjb25zdCBfc3RvcHggPSBjb21tb24uZ2V0TWF4KHN0YXJ0eCwgc3RvcHgpO1xuICAgIGNvbnN0IF9zdGFydHkgPSBjb21tb24uZ2V0TWluKHN0YXJ0eSwgc3RvcHkpO1xuICAgIGNvbnN0IF9zdG9weSA9IGNvbW1vbi5nZXRNYXgoc3RhcnR5LCBzdG9weSk7XG4gICAgdGhpcy51cGRhdGVWYWwoYm91bmRzLmRhdGEsIFwic3RhcnR4XCIsIF9zdGFydHgsIE1hdGgubWluKTtcbiAgICB0aGlzLnVwZGF0ZVZhbChib3VuZHMuZGF0YSwgXCJzdGFydHlcIiwgX3N0YXJ0eSwgTWF0aC5taW4pO1xuICAgIHRoaXMudXBkYXRlVmFsKGJvdW5kcy5kYXRhLCBcInN0b3B4XCIsIF9zdG9weCwgTWF0aC5tYXgpO1xuICAgIHRoaXMudXBkYXRlVmFsKGJvdW5kcy5kYXRhLCBcInN0b3B5XCIsIF9zdG9weSwgTWF0aC5tYXgpO1xuICAgIHRoaXMudXBkYXRlQm91bmRzKF9zdGFydHgsIF9zdGFydHksIF9zdG9weCwgX3N0b3B5KTtcbiAgfSxcbiAgbmV3QWN0aXZhdGlvbjogZnVuY3Rpb24obWVzc2FnZSwgZGlhZ3JhbTIsIGFjdG9ycykge1xuICAgIGNvbnN0IGFjdG9yUmVjdCA9IGFjdG9yc1ttZXNzYWdlLmZyb20uYWN0b3JdO1xuICAgIGNvbnN0IHN0YWNrZWRTaXplID0gYWN0b3JBY3RpdmF0aW9ucyhtZXNzYWdlLmZyb20uYWN0b3IpLmxlbmd0aCB8fCAwO1xuICAgIGNvbnN0IHggPSBhY3RvclJlY3QueCArIGFjdG9yUmVjdC53aWR0aCAvIDIgKyAoc3RhY2tlZFNpemUgLSAxKSAqIGNvbmYuYWN0aXZhdGlvbldpZHRoIC8gMjtcbiAgICB0aGlzLmFjdGl2YXRpb25zLnB1c2goe1xuICAgICAgc3RhcnR4OiB4LFxuICAgICAgc3RhcnR5OiB0aGlzLnZlcnRpY2FsUG9zICsgMixcbiAgICAgIHN0b3B4OiB4ICsgY29uZi5hY3RpdmF0aW9uV2lkdGgsXG4gICAgICBzdG9weTogdm9pZCAwLFxuICAgICAgYWN0b3I6IG1lc3NhZ2UuZnJvbS5hY3RvcixcbiAgICAgIGFuY2hvcmVkOiBzdmdEcmF3LmFuY2hvckVsZW1lbnQoZGlhZ3JhbTIpXG4gICAgfSk7XG4gIH0sXG4gIGVuZEFjdGl2YXRpb246IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICBjb25zdCBsYXN0QWN0b3JBY3RpdmF0aW9uSWR4ID0gdGhpcy5hY3RpdmF0aW9ucy5tYXAoZnVuY3Rpb24oYWN0aXZhdGlvbikge1xuICAgICAgcmV0dXJuIGFjdGl2YXRpb24uYWN0b3I7XG4gICAgfSkubGFzdEluZGV4T2YobWVzc2FnZS5mcm9tLmFjdG9yKTtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmF0aW9ucy5zcGxpY2UobGFzdEFjdG9yQWN0aXZhdGlvbklkeCwgMSlbMF07XG4gIH0sXG4gIGNyZWF0ZUxvb3A6IGZ1bmN0aW9uKHRpdGxlID0geyBtZXNzYWdlOiB2b2lkIDAsIHdyYXA6IGZhbHNlLCB3aWR0aDogdm9pZCAwIH0sIGZpbGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnR4OiB2b2lkIDAsXG4gICAgICBzdGFydHk6IHRoaXMudmVydGljYWxQb3MsXG4gICAgICBzdG9weDogdm9pZCAwLFxuICAgICAgc3RvcHk6IHZvaWQgMCxcbiAgICAgIHRpdGxlOiB0aXRsZS5tZXNzYWdlLFxuICAgICAgd3JhcDogdGl0bGUud3JhcCxcbiAgICAgIHdpZHRoOiB0aXRsZS53aWR0aCxcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIGZpbGxcbiAgICB9O1xuICB9LFxuICBuZXdMb29wOiBmdW5jdGlvbih0aXRsZSA9IHsgbWVzc2FnZTogdm9pZCAwLCB3cmFwOiBmYWxzZSwgd2lkdGg6IHZvaWQgMCB9LCBmaWxsKSB7XG4gICAgdGhpcy5zZXF1ZW5jZUl0ZW1zLnB1c2godGhpcy5jcmVhdGVMb29wKHRpdGxlLCBmaWxsKSk7XG4gIH0sXG4gIGVuZExvb3A6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnNlcXVlbmNlSXRlbXMucG9wKCk7XG4gIH0sXG4gIGlzTG9vcE92ZXJsYXA6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnNlcXVlbmNlSXRlbXMubGVuZ3RoID8gdGhpcy5zZXF1ZW5jZUl0ZW1zW3RoaXMuc2VxdWVuY2VJdGVtcy5sZW5ndGggLSAxXS5vdmVybGFwIDogZmFsc2U7XG4gIH0sXG4gIGFkZFNlY3Rpb25Ub0xvb3A6IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICBjb25zdCBsb29wID0gdGhpcy5zZXF1ZW5jZUl0ZW1zLnBvcCgpO1xuICAgIGxvb3Auc2VjdGlvbnMgPSBsb29wLnNlY3Rpb25zIHx8IFtdO1xuICAgIGxvb3Auc2VjdGlvblRpdGxlcyA9IGxvb3Auc2VjdGlvblRpdGxlcyB8fCBbXTtcbiAgICBsb29wLnNlY3Rpb25zLnB1c2goeyB5OiBib3VuZHMuZ2V0VmVydGljYWxQb3MoKSwgaGVpZ2h0OiAwIH0pO1xuICAgIGxvb3Auc2VjdGlvblRpdGxlcy5wdXNoKG1lc3NhZ2UpO1xuICAgIHRoaXMuc2VxdWVuY2VJdGVtcy5wdXNoKGxvb3ApO1xuICB9LFxuICBzYXZlVmVydGljYWxQb3M6IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLmlzTG9vcE92ZXJsYXAoKSkge1xuICAgICAgdGhpcy5zYXZlZFZlcnRpY2FsUG9zID0gdGhpcy52ZXJ0aWNhbFBvcztcbiAgICB9XG4gIH0sXG4gIHJlc2V0VmVydGljYWxQb3M6IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLmlzTG9vcE92ZXJsYXAoKSkge1xuICAgICAgdGhpcy52ZXJ0aWNhbFBvcyA9IHRoaXMuc2F2ZWRWZXJ0aWNhbFBvcztcbiAgICB9XG4gIH0sXG4gIGJ1bXBWZXJ0aWNhbFBvczogZnVuY3Rpb24oYnVtcCkge1xuICAgIHRoaXMudmVydGljYWxQb3MgPSB0aGlzLnZlcnRpY2FsUG9zICsgYnVtcDtcbiAgICB0aGlzLmRhdGEuc3RvcHkgPSBjb21tb24uZ2V0TWF4KHRoaXMuZGF0YS5zdG9weSwgdGhpcy52ZXJ0aWNhbFBvcyk7XG4gIH0sXG4gIGdldFZlcnRpY2FsUG9zOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy52ZXJ0aWNhbFBvcztcbiAgfSxcbiAgZ2V0Qm91bmRzOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4geyBib3VuZHM6IHRoaXMuZGF0YSwgbW9kZWxzOiB0aGlzLm1vZGVscyB9O1xuICB9XG59O1xuY29uc3QgZHJhd05vdGUgPSBhc3luYyBmdW5jdGlvbihlbGVtLCBub3RlTW9kZWwpIHtcbiAgYm91bmRzLmJ1bXBWZXJ0aWNhbFBvcyhjb25mLmJveE1hcmdpbik7XG4gIG5vdGVNb2RlbC5oZWlnaHQgPSBjb25mLmJveE1hcmdpbjtcbiAgbm90ZU1vZGVsLnN0YXJ0eSA9IGJvdW5kcy5nZXRWZXJ0aWNhbFBvcygpO1xuICBjb25zdCByZWN0ID0gZ2V0Tm90ZVJlY3QkMSgpO1xuICByZWN0LnggPSBub3RlTW9kZWwuc3RhcnR4O1xuICByZWN0LnkgPSBub3RlTW9kZWwuc3RhcnR5O1xuICByZWN0LndpZHRoID0gbm90ZU1vZGVsLndpZHRoIHx8IGNvbmYud2lkdGg7XG4gIHJlY3QuY2xhc3MgPSBcIm5vdGVcIjtcbiAgY29uc3QgZyA9IGVsZW0uYXBwZW5kKFwiZ1wiKTtcbiAgY29uc3QgcmVjdEVsZW0gPSBzdmdEcmF3LmRyYXdSZWN0KGcsIHJlY3QpO1xuICBjb25zdCB0ZXh0T2JqID0gZ2V0VGV4dE9iaiQxKCk7XG4gIHRleHRPYmoueCA9IG5vdGVNb2RlbC5zdGFydHg7XG4gIHRleHRPYmoueSA9IG5vdGVNb2RlbC5zdGFydHk7XG4gIHRleHRPYmoud2lkdGggPSByZWN0LndpZHRoO1xuICB0ZXh0T2JqLmR5ID0gXCIxZW1cIjtcbiAgdGV4dE9iai50ZXh0ID0gbm90ZU1vZGVsLm1lc3NhZ2U7XG4gIHRleHRPYmouY2xhc3MgPSBcIm5vdGVUZXh0XCI7XG4gIHRleHRPYmouZm9udEZhbWlseSA9IGNvbmYubm90ZUZvbnRGYW1pbHk7XG4gIHRleHRPYmouZm9udFNpemUgPSBjb25mLm5vdGVGb250U2l6ZTtcbiAgdGV4dE9iai5mb250V2VpZ2h0ID0gY29uZi5ub3RlRm9udFdlaWdodDtcbiAgdGV4dE9iai5hbmNob3IgPSBjb25mLm5vdGVBbGlnbjtcbiAgdGV4dE9iai50ZXh0TWFyZ2luID0gY29uZi5ub3RlTWFyZ2luO1xuICB0ZXh0T2JqLnZhbGlnbiA9IFwiY2VudGVyXCI7XG4gIGNvbnN0IHRleHRFbGVtID0gaGFzS2F0ZXgodGV4dE9iai50ZXh0KSA/IGF3YWl0IGRyYXdLYXRleChnLCB0ZXh0T2JqKSA6IGRyYXdUZXh0KGcsIHRleHRPYmopO1xuICBjb25zdCB0ZXh0SGVpZ2h0ID0gTWF0aC5yb3VuZChcbiAgICB0ZXh0RWxlbS5tYXAoKHRlKSA9PiAodGUuX2dyb3VwcyB8fCB0ZSlbMF1bMF0uZ2V0QkJveCgpLmhlaWdodCkucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYyArIGN1cnIpXG4gICk7XG4gIHJlY3RFbGVtLmF0dHIoXCJoZWlnaHRcIiwgdGV4dEhlaWdodCArIDIgKiBjb25mLm5vdGVNYXJnaW4pO1xuICBub3RlTW9kZWwuaGVpZ2h0ICs9IHRleHRIZWlnaHQgKyAyICogY29uZi5ub3RlTWFyZ2luO1xuICBib3VuZHMuYnVtcFZlcnRpY2FsUG9zKHRleHRIZWlnaHQgKyAyICogY29uZi5ub3RlTWFyZ2luKTtcbiAgbm90ZU1vZGVsLnN0b3B5ID0gbm90ZU1vZGVsLnN0YXJ0eSArIHRleHRIZWlnaHQgKyAyICogY29uZi5ub3RlTWFyZ2luO1xuICBub3RlTW9kZWwuc3RvcHggPSBub3RlTW9kZWwuc3RhcnR4ICsgcmVjdC53aWR0aDtcbiAgYm91bmRzLmluc2VydChub3RlTW9kZWwuc3RhcnR4LCBub3RlTW9kZWwuc3RhcnR5LCBub3RlTW9kZWwuc3RvcHgsIG5vdGVNb2RlbC5zdG9weSk7XG4gIGJvdW5kcy5tb2RlbHMuYWRkTm90ZShub3RlTW9kZWwpO1xufTtcbmNvbnN0IG1lc3NhZ2VGb250ID0gKGNuZikgPT4ge1xuICByZXR1cm4ge1xuICAgIGZvbnRGYW1pbHk6IGNuZi5tZXNzYWdlRm9udEZhbWlseSxcbiAgICBmb250U2l6ZTogY25mLm1lc3NhZ2VGb250U2l6ZSxcbiAgICBmb250V2VpZ2h0OiBjbmYubWVzc2FnZUZvbnRXZWlnaHRcbiAgfTtcbn07XG5jb25zdCBub3RlRm9udCA9IChjbmYpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBmb250RmFtaWx5OiBjbmYubm90ZUZvbnRGYW1pbHksXG4gICAgZm9udFNpemU6IGNuZi5ub3RlRm9udFNpemUsXG4gICAgZm9udFdlaWdodDogY25mLm5vdGVGb250V2VpZ2h0XG4gIH07XG59O1xuY29uc3QgYWN0b3JGb250ID0gKGNuZikgPT4ge1xuICByZXR1cm4ge1xuICAgIGZvbnRGYW1pbHk6IGNuZi5hY3RvckZvbnRGYW1pbHksXG4gICAgZm9udFNpemU6IGNuZi5hY3RvckZvbnRTaXplLFxuICAgIGZvbnRXZWlnaHQ6IGNuZi5hY3RvckZvbnRXZWlnaHRcbiAgfTtcbn07XG5hc3luYyBmdW5jdGlvbiBib3VuZE1lc3NhZ2UoX2RpYWdyYW0sIG1zZ01vZGVsKSB7XG4gIGJvdW5kcy5idW1wVmVydGljYWxQb3MoMTApO1xuICBjb25zdCB7IHN0YXJ0eCwgc3RvcHgsIG1lc3NhZ2UgfSA9IG1zZ01vZGVsO1xuICBjb25zdCBsaW5lcyA9IGNvbW1vbi5zcGxpdEJyZWFrcyhtZXNzYWdlKS5sZW5ndGg7XG4gIGNvbnN0IGlzS2F0ZXhNc2cgPSBoYXNLYXRleChtZXNzYWdlKTtcbiAgY29uc3QgdGV4dERpbXMgPSBpc0thdGV4TXNnID8gYXdhaXQgY2FsY3VsYXRlTWF0aE1MRGltZW5zaW9ucyhtZXNzYWdlLCBnZXRDb25maWcoKSkgOiB1dGlscy5jYWxjdWxhdGVUZXh0RGltZW5zaW9ucyhtZXNzYWdlLCBtZXNzYWdlRm9udChjb25mKSk7XG4gIGlmICghaXNLYXRleE1zZykge1xuICAgIGNvbnN0IGxpbmVIZWlnaHQgPSB0ZXh0RGltcy5oZWlnaHQgLyBsaW5lcztcbiAgICBtc2dNb2RlbC5oZWlnaHQgKz0gbGluZUhlaWdodDtcbiAgICBib3VuZHMuYnVtcFZlcnRpY2FsUG9zKGxpbmVIZWlnaHQpO1xuICB9XG4gIGxldCBsaW5lU3RhcnRZO1xuICBsZXQgdG90YWxPZmZzZXQgPSB0ZXh0RGltcy5oZWlnaHQgLSAxMDtcbiAgY29uc3QgdGV4dFdpZHRoID0gdGV4dERpbXMud2lkdGg7XG4gIGlmIChzdGFydHggPT09IHN0b3B4KSB7XG4gICAgbGluZVN0YXJ0WSA9IGJvdW5kcy5nZXRWZXJ0aWNhbFBvcygpICsgdG90YWxPZmZzZXQ7XG4gICAgaWYgKCFjb25mLnJpZ2h0QW5nbGVzKSB7XG4gICAgICB0b3RhbE9mZnNldCArPSBjb25mLmJveE1hcmdpbjtcbiAgICAgIGxpbmVTdGFydFkgPSBib3VuZHMuZ2V0VmVydGljYWxQb3MoKSArIHRvdGFsT2Zmc2V0O1xuICAgIH1cbiAgICB0b3RhbE9mZnNldCArPSAzMDtcbiAgICBjb25zdCBkeCA9IGNvbW1vbi5nZXRNYXgodGV4dFdpZHRoIC8gMiwgY29uZi53aWR0aCAvIDIpO1xuICAgIGJvdW5kcy5pbnNlcnQoXG4gICAgICBzdGFydHggLSBkeCxcbiAgICAgIGJvdW5kcy5nZXRWZXJ0aWNhbFBvcygpIC0gMTAgKyB0b3RhbE9mZnNldCxcbiAgICAgIHN0b3B4ICsgZHgsXG4gICAgICBib3VuZHMuZ2V0VmVydGljYWxQb3MoKSArIDMwICsgdG90YWxPZmZzZXRcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIHRvdGFsT2Zmc2V0ICs9IGNvbmYuYm94TWFyZ2luO1xuICAgIGxpbmVTdGFydFkgPSBib3VuZHMuZ2V0VmVydGljYWxQb3MoKSArIHRvdGFsT2Zmc2V0O1xuICAgIGJvdW5kcy5pbnNlcnQoc3RhcnR4LCBsaW5lU3RhcnRZIC0gMTAsIHN0b3B4LCBsaW5lU3RhcnRZKTtcbiAgfVxuICBib3VuZHMuYnVtcFZlcnRpY2FsUG9zKHRvdGFsT2Zmc2V0KTtcbiAgbXNnTW9kZWwuaGVpZ2h0ICs9IHRvdGFsT2Zmc2V0O1xuICBtc2dNb2RlbC5zdG9weSA9IG1zZ01vZGVsLnN0YXJ0eSArIG1zZ01vZGVsLmhlaWdodDtcbiAgYm91bmRzLmluc2VydChtc2dNb2RlbC5mcm9tQm91bmRzLCBtc2dNb2RlbC5zdGFydHksIG1zZ01vZGVsLnRvQm91bmRzLCBtc2dNb2RlbC5zdG9weSk7XG4gIHJldHVybiBsaW5lU3RhcnRZO1xufVxuY29uc3QgZHJhd01lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihkaWFncmFtMiwgbXNnTW9kZWwsIGxpbmVTdGFydFksIGRpYWdPYmopIHtcbiAgY29uc3QgeyBzdGFydHgsIHN0b3B4LCBzdGFydHksIG1lc3NhZ2UsIHR5cGUsIHNlcXVlbmNlSW5kZXgsIHNlcXVlbmNlVmlzaWJsZSB9ID0gbXNnTW9kZWw7XG4gIGNvbnN0IHRleHREaW1zID0gdXRpbHMuY2FsY3VsYXRlVGV4dERpbWVuc2lvbnMobWVzc2FnZSwgbWVzc2FnZUZvbnQoY29uZikpO1xuICBjb25zdCB0ZXh0T2JqID0gZ2V0VGV4dE9iaiQxKCk7XG4gIHRleHRPYmoueCA9IHN0YXJ0eDtcbiAgdGV4dE9iai55ID0gc3RhcnR5ICsgMTA7XG4gIHRleHRPYmoud2lkdGggPSBzdG9weCAtIHN0YXJ0eDtcbiAgdGV4dE9iai5jbGFzcyA9IFwibWVzc2FnZVRleHRcIjtcbiAgdGV4dE9iai5keSA9IFwiMWVtXCI7XG4gIHRleHRPYmoudGV4dCA9IG1lc3NhZ2U7XG4gIHRleHRPYmouZm9udEZhbWlseSA9IGNvbmYubWVzc2FnZUZvbnRGYW1pbHk7XG4gIHRleHRPYmouZm9udFNpemUgPSBjb25mLm1lc3NhZ2VGb250U2l6ZTtcbiAgdGV4dE9iai5mb250V2VpZ2h0ID0gY29uZi5tZXNzYWdlRm9udFdlaWdodDtcbiAgdGV4dE9iai5hbmNob3IgPSBjb25mLm1lc3NhZ2VBbGlnbjtcbiAgdGV4dE9iai52YWxpZ24gPSBcImNlbnRlclwiO1xuICB0ZXh0T2JqLnRleHRNYXJnaW4gPSBjb25mLndyYXBQYWRkaW5nO1xuICB0ZXh0T2JqLnRzcGFuID0gZmFsc2U7XG4gIGhhc0thdGV4KHRleHRPYmoudGV4dCkgPyBhd2FpdCBkcmF3S2F0ZXgoZGlhZ3JhbTIsIHRleHRPYmosIHsgc3RhcnR4LCBzdG9weCwgc3RhcnR5OiBsaW5lU3RhcnRZIH0pIDogZHJhd1RleHQoZGlhZ3JhbTIsIHRleHRPYmopO1xuICBjb25zdCB0ZXh0V2lkdGggPSB0ZXh0RGltcy53aWR0aDtcbiAgbGV0IGxpbmU7XG4gIGlmIChzdGFydHggPT09IHN0b3B4KSB7XG4gICAgaWYgKGNvbmYucmlnaHRBbmdsZXMpIHtcbiAgICAgIGxpbmUgPSBkaWFncmFtMi5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXG4gICAgICAgIFwiZFwiLFxuICAgICAgICBgTSAgJHtzdGFydHh9LCR7bGluZVN0YXJ0WX0gSCAke3N0YXJ0eCArIGNvbW1vbi5nZXRNYXgoY29uZi53aWR0aCAvIDIsIHRleHRXaWR0aCAvIDIpfSBWICR7bGluZVN0YXJ0WSArIDI1fSBIICR7c3RhcnR4fWBcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpbmUgPSBkaWFncmFtMi5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXG4gICAgICAgIFwiZFwiLFxuICAgICAgICBcIk0gXCIgKyBzdGFydHggKyBcIixcIiArIGxpbmVTdGFydFkgKyBcIiBDIFwiICsgKHN0YXJ0eCArIDYwKSArIFwiLFwiICsgKGxpbmVTdGFydFkgLSAxMCkgKyBcIiBcIiArIChzdGFydHggKyA2MCkgKyBcIixcIiArIChsaW5lU3RhcnRZICsgMzApICsgXCIgXCIgKyBzdGFydHggKyBcIixcIiArIChsaW5lU3RhcnRZICsgMjApXG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBsaW5lID0gZGlhZ3JhbTIuYXBwZW5kKFwibGluZVwiKTtcbiAgICBsaW5lLmF0dHIoXCJ4MVwiLCBzdGFydHgpO1xuICAgIGxpbmUuYXR0cihcInkxXCIsIGxpbmVTdGFydFkpO1xuICAgIGxpbmUuYXR0cihcIngyXCIsIHN0b3B4KTtcbiAgICBsaW5lLmF0dHIoXCJ5MlwiLCBsaW5lU3RhcnRZKTtcbiAgfVxuICBpZiAodHlwZSA9PT0gZGlhZ09iai5kYi5MSU5FVFlQRS5ET1RURUQgfHwgdHlwZSA9PT0gZGlhZ09iai5kYi5MSU5FVFlQRS5ET1RURURfQ1JPU1MgfHwgdHlwZSA9PT0gZGlhZ09iai5kYi5MSU5FVFlQRS5ET1RURURfUE9JTlQgfHwgdHlwZSA9PT0gZGlhZ09iai5kYi5MSU5FVFlQRS5ET1RURURfT1BFTikge1xuICAgIGxpbmUuc3R5bGUoXCJzdHJva2UtZGFzaGFycmF5XCIsIFwiMywgM1wiKTtcbiAgICBsaW5lLmF0dHIoXCJjbGFzc1wiLCBcIm1lc3NhZ2VMaW5lMVwiKTtcbiAgfSBlbHNlIHtcbiAgICBsaW5lLmF0dHIoXCJjbGFzc1wiLCBcIm1lc3NhZ2VMaW5lMFwiKTtcbiAgfVxuICBsZXQgdXJsID0gXCJcIjtcbiAgaWYgKGNvbmYuYXJyb3dNYXJrZXJBYnNvbHV0ZSkge1xuICAgIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaDtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgvXFwoL2csIFwiXFxcXChcIik7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoL1xcKS9nLCBcIlxcXFwpXCIpO1xuICB9XG4gIGxpbmUuYXR0cihcInN0cm9rZS13aWR0aFwiLCAyKTtcbiAgbGluZS5hdHRyKFwic3Ryb2tlXCIsIFwibm9uZVwiKTtcbiAgbGluZS5zdHlsZShcImZpbGxcIiwgXCJub25lXCIpO1xuICBpZiAodHlwZSA9PT0gZGlhZ09iai5kYi5MSU5FVFlQRS5TT0xJRCB8fCB0eXBlID09PSBkaWFnT2JqLmRiLkxJTkVUWVBFLkRPVFRFRCkge1xuICAgIGxpbmUuYXR0cihcIm1hcmtlci1lbmRcIiwgXCJ1cmwoXCIgKyB1cmwgKyBcIiNhcnJvd2hlYWQpXCIpO1xuICB9XG4gIGlmICh0eXBlID09PSBkaWFnT2JqLmRiLkxJTkVUWVBFLlNPTElEX1BPSU5UIHx8IHR5cGUgPT09IGRpYWdPYmouZGIuTElORVRZUEUuRE9UVEVEX1BPSU5UKSB7XG4gICAgbGluZS5hdHRyKFwibWFya2VyLWVuZFwiLCBcInVybChcIiArIHVybCArIFwiI2ZpbGxlZC1oZWFkKVwiKTtcbiAgfVxuICBpZiAodHlwZSA9PT0gZGlhZ09iai5kYi5MSU5FVFlQRS5TT0xJRF9DUk9TUyB8fCB0eXBlID09PSBkaWFnT2JqLmRiLkxJTkVUWVBFLkRPVFRFRF9DUk9TUykge1xuICAgIGxpbmUuYXR0cihcIm1hcmtlci1lbmRcIiwgXCJ1cmwoXCIgKyB1cmwgKyBcIiNjcm9zc2hlYWQpXCIpO1xuICB9XG4gIGlmIChzZXF1ZW5jZVZpc2libGUgfHwgY29uZi5zaG93U2VxdWVuY2VOdW1iZXJzKSB7XG4gICAgbGluZS5hdHRyKFwibWFya2VyLXN0YXJ0XCIsIFwidXJsKFwiICsgdXJsICsgXCIjc2VxdWVuY2VudW1iZXIpXCIpO1xuICAgIGRpYWdyYW0yLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgc3RhcnR4KS5hdHRyKFwieVwiLCBsaW5lU3RhcnRZICsgNCkuYXR0cihcImZvbnQtZmFtaWx5XCIsIFwic2Fucy1zZXJpZlwiKS5hdHRyKFwiZm9udC1zaXplXCIsIFwiMTJweFwiKS5hdHRyKFwidGV4dC1hbmNob3JcIiwgXCJtaWRkbGVcIikuYXR0cihcImNsYXNzXCIsIFwic2VxdWVuY2VOdW1iZXJcIikudGV4dChzZXF1ZW5jZUluZGV4KTtcbiAgfVxufTtcbmNvbnN0IGFkZEFjdG9yUmVuZGVyaW5nRGF0YSA9IGFzeW5jIGZ1bmN0aW9uKGRpYWdyYW0yLCBhY3RvcnMsIGNyZWF0ZWRBY3RvcnMsIGFjdG9yS2V5cywgdmVydGljYWxQb3MsIG1lc3NhZ2VzLCBpc0Zvb3Rlcikge1xuICBsZXQgcHJldldpZHRoID0gMDtcbiAgbGV0IHByZXZNYXJnaW4gPSAwO1xuICBsZXQgcHJldkJveCA9IHZvaWQgMDtcbiAgbGV0IG1heEhlaWdodCA9IDA7XG4gIGZvciAoY29uc3QgYWN0b3JLZXkgb2YgYWN0b3JLZXlzKSB7XG4gICAgY29uc3QgYWN0b3IgPSBhY3RvcnNbYWN0b3JLZXldO1xuICAgIGNvbnN0IGJveCA9IGFjdG9yLmJveDtcbiAgICBpZiAocHJldkJveCAmJiBwcmV2Qm94ICE9IGJveCkge1xuICAgICAgaWYgKCFpc0Zvb3Rlcikge1xuICAgICAgICBib3VuZHMubW9kZWxzLmFkZEJveChwcmV2Qm94KTtcbiAgICAgIH1cbiAgICAgIHByZXZNYXJnaW4gKz0gY29uZi5ib3hNYXJnaW4gKyBwcmV2Qm94Lm1hcmdpbjtcbiAgICB9XG4gICAgaWYgKGJveCAmJiBib3ggIT0gcHJldkJveCkge1xuICAgICAgaWYgKCFpc0Zvb3Rlcikge1xuICAgICAgICBib3gueCA9IHByZXZXaWR0aCArIHByZXZNYXJnaW47XG4gICAgICAgIGJveC55ID0gdmVydGljYWxQb3M7XG4gICAgICB9XG4gICAgICBwcmV2TWFyZ2luICs9IGJveC5tYXJnaW47XG4gICAgfVxuICAgIGFjdG9yLndpZHRoID0gYWN0b3Iud2lkdGggfHwgY29uZi53aWR0aDtcbiAgICBhY3Rvci5oZWlnaHQgPSBjb21tb24uZ2V0TWF4KGFjdG9yLmhlaWdodCB8fCBjb25mLmhlaWdodCwgY29uZi5oZWlnaHQpO1xuICAgIGFjdG9yLm1hcmdpbiA9IGFjdG9yLm1hcmdpbiB8fCBjb25mLmFjdG9yTWFyZ2luO1xuICAgIG1heEhlaWdodCA9IGNvbW1vbi5nZXRNYXgobWF4SGVpZ2h0LCBhY3Rvci5oZWlnaHQpO1xuICAgIGlmIChjcmVhdGVkQWN0b3JzW2FjdG9yLm5hbWVdKSB7XG4gICAgICBwcmV2TWFyZ2luICs9IGFjdG9yLndpZHRoIC8gMjtcbiAgICB9XG4gICAgYWN0b3IueCA9IHByZXZXaWR0aCArIHByZXZNYXJnaW47XG4gICAgYWN0b3Iuc3RhcnR5ID0gYm91bmRzLmdldFZlcnRpY2FsUG9zKCk7XG4gICAgYm91bmRzLmluc2VydChhY3Rvci54LCB2ZXJ0aWNhbFBvcywgYWN0b3IueCArIGFjdG9yLndpZHRoLCBhY3Rvci5oZWlnaHQpO1xuICAgIHByZXZXaWR0aCArPSBhY3Rvci53aWR0aCArIHByZXZNYXJnaW47XG4gICAgaWYgKGFjdG9yLmJveCkge1xuICAgICAgYWN0b3IuYm94LndpZHRoID0gcHJldldpZHRoICsgYm94Lm1hcmdpbiAtIGFjdG9yLmJveC54O1xuICAgIH1cbiAgICBwcmV2TWFyZ2luID0gYWN0b3IubWFyZ2luO1xuICAgIHByZXZCb3ggPSBhY3Rvci5ib3g7XG4gICAgYm91bmRzLm1vZGVscy5hZGRBY3RvcihhY3Rvcik7XG4gIH1cbiAgaWYgKHByZXZCb3ggJiYgIWlzRm9vdGVyKSB7XG4gICAgYm91bmRzLm1vZGVscy5hZGRCb3gocHJldkJveCk7XG4gIH1cbiAgYm91bmRzLmJ1bXBWZXJ0aWNhbFBvcyhtYXhIZWlnaHQpO1xufTtcbmNvbnN0IGRyYXdBY3RvcnMgPSBhc3luYyBmdW5jdGlvbihkaWFncmFtMiwgYWN0b3JzLCBhY3RvcktleXMsIGlzRm9vdGVyKSB7XG4gIGlmICghaXNGb290ZXIpIHtcbiAgICBmb3IgKGNvbnN0IGFjdG9yS2V5IG9mIGFjdG9yS2V5cykge1xuICAgICAgY29uc3QgYWN0b3IgPSBhY3RvcnNbYWN0b3JLZXldO1xuICAgICAgYXdhaXQgc3ZnRHJhdy5kcmF3QWN0b3IoZGlhZ3JhbTIsIGFjdG9yLCBjb25mLCBmYWxzZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCBtYXhIZWlnaHQgPSAwO1xuICAgIGJvdW5kcy5idW1wVmVydGljYWxQb3MoY29uZi5ib3hNYXJnaW4gKiAyKTtcbiAgICBmb3IgKGNvbnN0IGFjdG9yS2V5IG9mIGFjdG9yS2V5cykge1xuICAgICAgY29uc3QgYWN0b3IgPSBhY3RvcnNbYWN0b3JLZXldO1xuICAgICAgaWYgKCFhY3Rvci5zdG9weSkge1xuICAgICAgICBhY3Rvci5zdG9weSA9IGJvdW5kcy5nZXRWZXJ0aWNhbFBvcygpO1xuICAgICAgfVxuICAgICAgY29uc3QgaGVpZ2h0ID0gYXdhaXQgc3ZnRHJhdy5kcmF3QWN0b3IoZGlhZ3JhbTIsIGFjdG9yLCBjb25mLCB0cnVlKTtcbiAgICAgIG1heEhlaWdodCA9IGNvbW1vbi5nZXRNYXgobWF4SGVpZ2h0LCBoZWlnaHQpO1xuICAgIH1cbiAgICBib3VuZHMuYnVtcFZlcnRpY2FsUG9zKG1heEhlaWdodCArIGNvbmYuYm94TWFyZ2luKTtcbiAgfVxufTtcbmNvbnN0IGRyYXdBY3RvcnNQb3B1cCA9IGZ1bmN0aW9uKGRpYWdyYW0yLCBhY3RvcnMsIGFjdG9yS2V5cywgZG9jKSB7XG4gIGxldCBtYXhIZWlnaHQgPSAwO1xuICBsZXQgbWF4V2lkdGggPSAwO1xuICBmb3IgKGNvbnN0IGFjdG9yS2V5IG9mIGFjdG9yS2V5cykge1xuICAgIGNvbnN0IGFjdG9yID0gYWN0b3JzW2FjdG9yS2V5XTtcbiAgICBjb25zdCBtaW5NZW51V2lkdGggPSBnZXRSZXF1aXJlZFBvcHVwV2lkdGgoYWN0b3IpO1xuICAgIGNvbnN0IG1lbnVEaW1lbnNpb25zID0gc3ZnRHJhdy5kcmF3UG9wdXAoXG4gICAgICBkaWFncmFtMixcbiAgICAgIGFjdG9yLFxuICAgICAgbWluTWVudVdpZHRoLFxuICAgICAgY29uZixcbiAgICAgIGNvbmYuZm9yY2VNZW51cyxcbiAgICAgIGRvY1xuICAgICk7XG4gICAgaWYgKG1lbnVEaW1lbnNpb25zLmhlaWdodCA+IG1heEhlaWdodCkge1xuICAgICAgbWF4SGVpZ2h0ID0gbWVudURpbWVuc2lvbnMuaGVpZ2h0O1xuICAgIH1cbiAgICBpZiAobWVudURpbWVuc2lvbnMud2lkdGggKyBhY3Rvci54ID4gbWF4V2lkdGgpIHtcbiAgICAgIG1heFdpZHRoID0gbWVudURpbWVuc2lvbnMud2lkdGggKyBhY3Rvci54O1xuICAgIH1cbiAgfVxuICByZXR1cm4geyBtYXhIZWlnaHQsIG1heFdpZHRoIH07XG59O1xuY29uc3Qgc2V0Q29uZiA9IGZ1bmN0aW9uKGNuZikge1xuICBhc3NpZ25XaXRoRGVwdGgoY29uZiwgY25mKTtcbiAgaWYgKGNuZi5mb250RmFtaWx5KSB7XG4gICAgY29uZi5hY3RvckZvbnRGYW1pbHkgPSBjb25mLm5vdGVGb250RmFtaWx5ID0gY29uZi5tZXNzYWdlRm9udEZhbWlseSA9IGNuZi5mb250RmFtaWx5O1xuICB9XG4gIGlmIChjbmYuZm9udFNpemUpIHtcbiAgICBjb25mLmFjdG9yRm9udFNpemUgPSBjb25mLm5vdGVGb250U2l6ZSA9IGNvbmYubWVzc2FnZUZvbnRTaXplID0gY25mLmZvbnRTaXplO1xuICB9XG4gIGlmIChjbmYuZm9udFdlaWdodCkge1xuICAgIGNvbmYuYWN0b3JGb250V2VpZ2h0ID0gY29uZi5ub3RlRm9udFdlaWdodCA9IGNvbmYubWVzc2FnZUZvbnRXZWlnaHQgPSBjbmYuZm9udFdlaWdodDtcbiAgfVxufTtcbmNvbnN0IGFjdG9yQWN0aXZhdGlvbnMgPSBmdW5jdGlvbihhY3Rvcikge1xuICByZXR1cm4gYm91bmRzLmFjdGl2YXRpb25zLmZpbHRlcihmdW5jdGlvbihhY3RpdmF0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGl2YXRpb24uYWN0b3IgPT09IGFjdG9yO1xuICB9KTtcbn07XG5jb25zdCBhY3RpdmF0aW9uQm91bmRzID0gZnVuY3Rpb24oYWN0b3IsIGFjdG9ycykge1xuICBjb25zdCBhY3Rvck9iaiA9IGFjdG9yc1thY3Rvcl07XG4gIGNvbnN0IGFjdGl2YXRpb25zID0gYWN0b3JBY3RpdmF0aW9ucyhhY3Rvcik7XG4gIGNvbnN0IGxlZnQgPSBhY3RpdmF0aW9ucy5yZWR1Y2UoZnVuY3Rpb24oYWNjLCBhY3RpdmF0aW9uKSB7XG4gICAgcmV0dXJuIGNvbW1vbi5nZXRNaW4oYWNjLCBhY3RpdmF0aW9uLnN0YXJ0eCk7XG4gIH0sIGFjdG9yT2JqLnggKyBhY3Rvck9iai53aWR0aCAvIDIgLSAxKTtcbiAgY29uc3QgcmlnaHQgPSBhY3RpdmF0aW9ucy5yZWR1Y2UoZnVuY3Rpb24oYWNjLCBhY3RpdmF0aW9uKSB7XG4gICAgcmV0dXJuIGNvbW1vbi5nZXRNYXgoYWNjLCBhY3RpdmF0aW9uLnN0b3B4KTtcbiAgfSwgYWN0b3JPYmoueCArIGFjdG9yT2JqLndpZHRoIC8gMiArIDEpO1xuICByZXR1cm4gW2xlZnQsIHJpZ2h0XTtcbn07XG5mdW5jdGlvbiBhZGp1c3RMb29wSGVpZ2h0Rm9yV3JhcChsb29wV2lkdGhzLCBtc2csIHByZU1hcmdpbiwgcG9zdE1hcmdpbiwgYWRkTG9vcEZuKSB7XG4gIGJvdW5kcy5idW1wVmVydGljYWxQb3MocHJlTWFyZ2luKTtcbiAgbGV0IGhlaWdodEFkanVzdCA9IHBvc3RNYXJnaW47XG4gIGlmIChtc2cuaWQgJiYgbXNnLm1lc3NhZ2UgJiYgbG9vcFdpZHRoc1ttc2cuaWRdKSB7XG4gICAgY29uc3QgbG9vcFdpZHRoID0gbG9vcFdpZHRoc1ttc2cuaWRdLndpZHRoO1xuICAgIGNvbnN0IHRleHRDb25mID0gbWVzc2FnZUZvbnQoY29uZik7XG4gICAgbXNnLm1lc3NhZ2UgPSB1dGlscy53cmFwTGFiZWwoYFske21zZy5tZXNzYWdlfV1gLCBsb29wV2lkdGggLSAyICogY29uZi53cmFwUGFkZGluZywgdGV4dENvbmYpO1xuICAgIG1zZy53aWR0aCA9IGxvb3BXaWR0aDtcbiAgICBtc2cud3JhcCA9IHRydWU7XG4gICAgY29uc3QgdGV4dERpbXMgPSB1dGlscy5jYWxjdWxhdGVUZXh0RGltZW5zaW9ucyhtc2cubWVzc2FnZSwgdGV4dENvbmYpO1xuICAgIGNvbnN0IHRvdGFsT2Zmc2V0ID0gY29tbW9uLmdldE1heCh0ZXh0RGltcy5oZWlnaHQsIGNvbmYubGFiZWxCb3hIZWlnaHQpO1xuICAgIGhlaWdodEFkanVzdCA9IHBvc3RNYXJnaW4gKyB0b3RhbE9mZnNldDtcbiAgICBsb2cuZGVidWcoYCR7dG90YWxPZmZzZXR9IC0gJHttc2cubWVzc2FnZX1gKTtcbiAgfVxuICBhZGRMb29wRm4obXNnKTtcbiAgYm91bmRzLmJ1bXBWZXJ0aWNhbFBvcyhoZWlnaHRBZGp1c3QpO1xufVxuZnVuY3Rpb24gYWRqdXN0Q3JlYXRlZERlc3Ryb3llZERhdGEobXNnLCBtc2dNb2RlbCwgbGluZVN0YXJ0WSwgaW5kZXgsIGFjdG9ycywgY3JlYXRlZEFjdG9ycywgZGVzdHJveWVkQWN0b3JzKSB7XG4gIGZ1bmN0aW9uIHJlY2VpdmVyQWRqdXN0bWVudChhY3RvciwgYWRqdXN0bWVudCkge1xuICAgIGlmIChhY3Rvci54IDwgYWN0b3JzW21zZy5mcm9tXS54KSB7XG4gICAgICBib3VuZHMuaW5zZXJ0KFxuICAgICAgICBtc2dNb2RlbC5zdG9weCAtIGFkanVzdG1lbnQsXG4gICAgICAgIG1zZ01vZGVsLnN0YXJ0eSxcbiAgICAgICAgbXNnTW9kZWwuc3RhcnR4LFxuICAgICAgICBtc2dNb2RlbC5zdG9weSArIGFjdG9yLmhlaWdodCAvIDIgKyBjb25mLm5vdGVNYXJnaW5cbiAgICAgICk7XG4gICAgICBtc2dNb2RlbC5zdG9weCA9IG1zZ01vZGVsLnN0b3B4ICsgYWRqdXN0bWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgYm91bmRzLmluc2VydChcbiAgICAgICAgbXNnTW9kZWwuc3RhcnR4LFxuICAgICAgICBtc2dNb2RlbC5zdGFydHksXG4gICAgICAgIG1zZ01vZGVsLnN0b3B4ICsgYWRqdXN0bWVudCxcbiAgICAgICAgbXNnTW9kZWwuc3RvcHkgKyBhY3Rvci5oZWlnaHQgLyAyICsgY29uZi5ub3RlTWFyZ2luXG4gICAgICApO1xuICAgICAgbXNnTW9kZWwuc3RvcHggPSBtc2dNb2RlbC5zdG9weCAtIGFkanVzdG1lbnQ7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHNlbmRlckFkanVzdG1lbnQoYWN0b3IsIGFkanVzdG1lbnQpIHtcbiAgICBpZiAoYWN0b3IueCA8IGFjdG9yc1ttc2cudG9dLngpIHtcbiAgICAgIGJvdW5kcy5pbnNlcnQoXG4gICAgICAgIG1zZ01vZGVsLnN0YXJ0eCAtIGFkanVzdG1lbnQsXG4gICAgICAgIG1zZ01vZGVsLnN0YXJ0eSxcbiAgICAgICAgbXNnTW9kZWwuc3RvcHgsXG4gICAgICAgIG1zZ01vZGVsLnN0b3B5ICsgYWN0b3IuaGVpZ2h0IC8gMiArIGNvbmYubm90ZU1hcmdpblxuICAgICAgKTtcbiAgICAgIG1zZ01vZGVsLnN0YXJ0eCA9IG1zZ01vZGVsLnN0YXJ0eCArIGFkanVzdG1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJvdW5kcy5pbnNlcnQoXG4gICAgICAgIG1zZ01vZGVsLnN0b3B4LFxuICAgICAgICBtc2dNb2RlbC5zdGFydHksXG4gICAgICAgIG1zZ01vZGVsLnN0YXJ0eCArIGFkanVzdG1lbnQsXG4gICAgICAgIG1zZ01vZGVsLnN0b3B5ICsgYWN0b3IuaGVpZ2h0IC8gMiArIGNvbmYubm90ZU1hcmdpblxuICAgICAgKTtcbiAgICAgIG1zZ01vZGVsLnN0YXJ0eCA9IG1zZ01vZGVsLnN0YXJ0eCAtIGFkanVzdG1lbnQ7XG4gICAgfVxuICB9XG4gIGlmIChjcmVhdGVkQWN0b3JzW21zZy50b10gPT0gaW5kZXgpIHtcbiAgICBjb25zdCBhY3RvciA9IGFjdG9yc1ttc2cudG9dO1xuICAgIGNvbnN0IGFkanVzdG1lbnQgPSBhY3Rvci50eXBlID09IFwiYWN0b3JcIiA/IEFDVE9SX1RZUEVfV0lEVEggLyAyICsgMyA6IGFjdG9yLndpZHRoIC8gMiArIDM7XG4gICAgcmVjZWl2ZXJBZGp1c3RtZW50KGFjdG9yLCBhZGp1c3RtZW50KTtcbiAgICBhY3Rvci5zdGFydHkgPSBsaW5lU3RhcnRZIC0gYWN0b3IuaGVpZ2h0IC8gMjtcbiAgICBib3VuZHMuYnVtcFZlcnRpY2FsUG9zKGFjdG9yLmhlaWdodCAvIDIpO1xuICB9IGVsc2UgaWYgKGRlc3Ryb3llZEFjdG9yc1ttc2cuZnJvbV0gPT0gaW5kZXgpIHtcbiAgICBjb25zdCBhY3RvciA9IGFjdG9yc1ttc2cuZnJvbV07XG4gICAgaWYgKGNvbmYubWlycm9yQWN0b3JzKSB7XG4gICAgICBjb25zdCBhZGp1c3RtZW50ID0gYWN0b3IudHlwZSA9PSBcImFjdG9yXCIgPyBBQ1RPUl9UWVBFX1dJRFRIIC8gMiA6IGFjdG9yLndpZHRoIC8gMjtcbiAgICAgIHNlbmRlckFkanVzdG1lbnQoYWN0b3IsIGFkanVzdG1lbnQpO1xuICAgIH1cbiAgICBhY3Rvci5zdG9weSA9IGxpbmVTdGFydFkgLSBhY3Rvci5oZWlnaHQgLyAyO1xuICAgIGJvdW5kcy5idW1wVmVydGljYWxQb3MoYWN0b3IuaGVpZ2h0IC8gMik7XG4gIH0gZWxzZSBpZiAoZGVzdHJveWVkQWN0b3JzW21zZy50b10gPT0gaW5kZXgpIHtcbiAgICBjb25zdCBhY3RvciA9IGFjdG9yc1ttc2cudG9dO1xuICAgIGlmIChjb25mLm1pcnJvckFjdG9ycykge1xuICAgICAgY29uc3QgYWRqdXN0bWVudCA9IGFjdG9yLnR5cGUgPT0gXCJhY3RvclwiID8gQUNUT1JfVFlQRV9XSURUSCAvIDIgKyAzIDogYWN0b3Iud2lkdGggLyAyICsgMztcbiAgICAgIHJlY2VpdmVyQWRqdXN0bWVudChhY3RvciwgYWRqdXN0bWVudCk7XG4gICAgfVxuICAgIGFjdG9yLnN0b3B5ID0gbGluZVN0YXJ0WSAtIGFjdG9yLmhlaWdodCAvIDI7XG4gICAgYm91bmRzLmJ1bXBWZXJ0aWNhbFBvcyhhY3Rvci5oZWlnaHQgLyAyKTtcbiAgfVxufVxuY29uc3QgZHJhdyA9IGFzeW5jIGZ1bmN0aW9uKF90ZXh0LCBpZCwgX3ZlcnNpb24sIGRpYWdPYmopIHtcbiAgY29uc3QgeyBzZWN1cml0eUxldmVsLCBzZXF1ZW5jZSB9ID0gZ2V0Q29uZmlnKCk7XG4gIGNvbmYgPSBzZXF1ZW5jZTtcbiAgbGV0IHNhbmRib3hFbGVtZW50O1xuICBpZiAoc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIpIHtcbiAgICBzYW5kYm94RWxlbWVudCA9IHNlbGVjdChcIiNpXCIgKyBpZCk7XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gc2VsZWN0KHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50LmJvZHkpIDogc2VsZWN0KFwiYm9keVwiKTtcbiAgY29uc3QgZG9jID0gc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIgPyBzYW5kYm94RWxlbWVudC5ub2RlcygpWzBdLmNvbnRlbnREb2N1bWVudCA6IGRvY3VtZW50O1xuICBib3VuZHMuaW5pdCgpO1xuICBsb2cuZGVidWcoZGlhZ09iai5kYik7XG4gIGNvbnN0IGRpYWdyYW0yID0gc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIgPyByb290LnNlbGVjdChgW2lkPVwiJHtpZH1cIl1gKSA6IHNlbGVjdChgW2lkPVwiJHtpZH1cIl1gKTtcbiAgY29uc3QgYWN0b3JzID0gZGlhZ09iai5kYi5nZXRBY3RvcnMoKTtcbiAgY29uc3QgY3JlYXRlZEFjdG9ycyA9IGRpYWdPYmouZGIuZ2V0Q3JlYXRlZEFjdG9ycygpO1xuICBjb25zdCBkZXN0cm95ZWRBY3RvcnMgPSBkaWFnT2JqLmRiLmdldERlc3Ryb3llZEFjdG9ycygpO1xuICBjb25zdCBib3hlcyA9IGRpYWdPYmouZGIuZ2V0Qm94ZXMoKTtcbiAgbGV0IGFjdG9yS2V5cyA9IGRpYWdPYmouZGIuZ2V0QWN0b3JLZXlzKCk7XG4gIGNvbnN0IG1lc3NhZ2VzID0gZGlhZ09iai5kYi5nZXRNZXNzYWdlcygpO1xuICBjb25zdCB0aXRsZSA9IGRpYWdPYmouZGIuZ2V0RGlhZ3JhbVRpdGxlKCk7XG4gIGNvbnN0IGhhc0JveGVzID0gZGlhZ09iai5kYi5oYXNBdExlYXN0T25lQm94KCk7XG4gIGNvbnN0IGhhc0JveFRpdGxlcyA9IGRpYWdPYmouZGIuaGFzQXRMZWFzdE9uZUJveFdpdGhUaXRsZSgpO1xuICBjb25zdCBtYXhNZXNzYWdlV2lkdGhQZXJBY3RvciA9IGF3YWl0IGdldE1heE1lc3NhZ2VXaWR0aFBlckFjdG9yKGFjdG9ycywgbWVzc2FnZXMsIGRpYWdPYmopO1xuICBjb25mLmhlaWdodCA9IGF3YWl0IGNhbGN1bGF0ZUFjdG9yTWFyZ2lucyhhY3RvcnMsIG1heE1lc3NhZ2VXaWR0aFBlckFjdG9yLCBib3hlcyk7XG4gIHN2Z0RyYXcuaW5zZXJ0Q29tcHV0ZXJJY29uKGRpYWdyYW0yKTtcbiAgc3ZnRHJhdy5pbnNlcnREYXRhYmFzZUljb24oZGlhZ3JhbTIpO1xuICBzdmdEcmF3Lmluc2VydENsb2NrSWNvbihkaWFncmFtMik7XG4gIGlmIChoYXNCb3hlcykge1xuICAgIGJvdW5kcy5idW1wVmVydGljYWxQb3MoY29uZi5ib3hNYXJnaW4pO1xuICAgIGlmIChoYXNCb3hUaXRsZXMpIHtcbiAgICAgIGJvdW5kcy5idW1wVmVydGljYWxQb3MoYm94ZXNbMF0udGV4dE1heEhlaWdodCk7XG4gICAgfVxuICB9XG4gIGlmIChjb25mLmhpZGVVbnVzZWRQYXJ0aWNpcGFudHMgPT09IHRydWUpIHtcbiAgICBjb25zdCBuZXdBY3RvcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpO1xuICAgIG1lc3NhZ2VzLmZvckVhY2goKG1lc3NhZ2UpID0+IHtcbiAgICAgIG5ld0FjdG9ycy5hZGQobWVzc2FnZS5mcm9tKTtcbiAgICAgIG5ld0FjdG9ycy5hZGQobWVzc2FnZS50byk7XG4gICAgfSk7XG4gICAgYWN0b3JLZXlzID0gYWN0b3JLZXlzLmZpbHRlcigoYWN0b3JLZXkpID0+IG5ld0FjdG9ycy5oYXMoYWN0b3JLZXkpKTtcbiAgfVxuICBhd2FpdCBhZGRBY3RvclJlbmRlcmluZ0RhdGEoZGlhZ3JhbTIsIGFjdG9ycywgY3JlYXRlZEFjdG9ycywgYWN0b3JLZXlzLCAwLCBtZXNzYWdlcywgZmFsc2UpO1xuICBjb25zdCBsb29wV2lkdGhzID0gYXdhaXQgY2FsY3VsYXRlTG9vcEJvdW5kcyhtZXNzYWdlcywgYWN0b3JzLCBtYXhNZXNzYWdlV2lkdGhQZXJBY3RvciwgZGlhZ09iaik7XG4gIHN2Z0RyYXcuaW5zZXJ0QXJyb3dIZWFkKGRpYWdyYW0yKTtcbiAgc3ZnRHJhdy5pbnNlcnRBcnJvd0Nyb3NzSGVhZChkaWFncmFtMik7XG4gIHN2Z0RyYXcuaW5zZXJ0QXJyb3dGaWxsZWRIZWFkKGRpYWdyYW0yKTtcbiAgc3ZnRHJhdy5pbnNlcnRTZXF1ZW5jZU51bWJlcihkaWFncmFtMik7XG4gIGZ1bmN0aW9uIGFjdGl2ZUVuZChtc2csIHZlcnRpY2FsUG9zKSB7XG4gICAgY29uc3QgYWN0aXZhdGlvbkRhdGEgPSBib3VuZHMuZW5kQWN0aXZhdGlvbihtc2cpO1xuICAgIGlmIChhY3RpdmF0aW9uRGF0YS5zdGFydHkgKyAxOCA+IHZlcnRpY2FsUG9zKSB7XG4gICAgICBhY3RpdmF0aW9uRGF0YS5zdGFydHkgPSB2ZXJ0aWNhbFBvcyAtIDY7XG4gICAgICB2ZXJ0aWNhbFBvcyArPSAxMjtcbiAgICB9XG4gICAgc3ZnRHJhdy5kcmF3QWN0aXZhdGlvbihcbiAgICAgIGRpYWdyYW0yLFxuICAgICAgYWN0aXZhdGlvbkRhdGEsXG4gICAgICB2ZXJ0aWNhbFBvcyxcbiAgICAgIGNvbmYsXG4gICAgICBhY3RvckFjdGl2YXRpb25zKG1zZy5mcm9tLmFjdG9yKS5sZW5ndGhcbiAgICApO1xuICAgIGJvdW5kcy5pbnNlcnQoYWN0aXZhdGlvbkRhdGEuc3RhcnR4LCB2ZXJ0aWNhbFBvcyAtIDEwLCBhY3RpdmF0aW9uRGF0YS5zdG9weCwgdmVydGljYWxQb3MpO1xuICB9XG4gIGxldCBzZXF1ZW5jZUluZGV4ID0gMTtcbiAgbGV0IHNlcXVlbmNlSW5kZXhTdGVwID0gMTtcbiAgY29uc3QgbWVzc2FnZXNUb0RyYXcgPSBbXTtcbiAgY29uc3QgYmFja2dyb3VuZHMgPSBbXTtcbiAgbGV0IGluZGV4ID0gMDtcbiAgZm9yIChjb25zdCBtc2cgb2YgbWVzc2FnZXMpIHtcbiAgICBsZXQgbG9vcE1vZGVsLCBub3RlTW9kZWwsIG1zZ01vZGVsO1xuICAgIHN3aXRjaCAobXNnLnR5cGUpIHtcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5MSU5FVFlQRS5OT1RFOlxuICAgICAgICBib3VuZHMucmVzZXRWZXJ0aWNhbFBvcygpO1xuICAgICAgICBub3RlTW9kZWwgPSBtc2cubm90ZU1vZGVsO1xuICAgICAgICBhd2FpdCBkcmF3Tm90ZShkaWFncmFtMiwgbm90ZU1vZGVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQUNUSVZFX1NUQVJUOlxuICAgICAgICBib3VuZHMubmV3QWN0aXZhdGlvbihtc2csIGRpYWdyYW0yLCBhY3RvcnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5MSU5FVFlQRS5BQ1RJVkVfRU5EOlxuICAgICAgICBhY3RpdmVFbmQobXNnLCBib3VuZHMuZ2V0VmVydGljYWxQb3MoKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLkxPT1BfU1RBUlQ6XG4gICAgICAgIGFkanVzdExvb3BIZWlnaHRGb3JXcmFwKFxuICAgICAgICAgIGxvb3BXaWR0aHMsXG4gICAgICAgICAgbXNnLFxuICAgICAgICAgIGNvbmYuYm94TWFyZ2luLFxuICAgICAgICAgIGNvbmYuYm94TWFyZ2luICsgY29uZi5ib3hUZXh0TWFyZ2luLFxuICAgICAgICAgIChtZXNzYWdlKSA9PiBib3VuZHMubmV3TG9vcChtZXNzYWdlKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5MSU5FVFlQRS5MT09QX0VORDpcbiAgICAgICAgbG9vcE1vZGVsID0gYm91bmRzLmVuZExvb3AoKTtcbiAgICAgICAgYXdhaXQgc3ZnRHJhdy5kcmF3TG9vcChkaWFncmFtMiwgbG9vcE1vZGVsLCBcImxvb3BcIiwgY29uZik7XG4gICAgICAgIGJvdW5kcy5idW1wVmVydGljYWxQb3MobG9vcE1vZGVsLnN0b3B5IC0gYm91bmRzLmdldFZlcnRpY2FsUG9zKCkpO1xuICAgICAgICBib3VuZHMubW9kZWxzLmFkZExvb3AobG9vcE1vZGVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuUkVDVF9TVEFSVDpcbiAgICAgICAgYWRqdXN0TG9vcEhlaWdodEZvcldyYXAoXG4gICAgICAgICAgbG9vcFdpZHRocyxcbiAgICAgICAgICBtc2csXG4gICAgICAgICAgY29uZi5ib3hNYXJnaW4sXG4gICAgICAgICAgY29uZi5ib3hNYXJnaW4sXG4gICAgICAgICAgKG1lc3NhZ2UpID0+IGJvdW5kcy5uZXdMb29wKHZvaWQgMCwgbWVzc2FnZS5tZXNzYWdlKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5MSU5FVFlQRS5SRUNUX0VORDpcbiAgICAgICAgbG9vcE1vZGVsID0gYm91bmRzLmVuZExvb3AoKTtcbiAgICAgICAgYmFja2dyb3VuZHMucHVzaChsb29wTW9kZWwpO1xuICAgICAgICBib3VuZHMubW9kZWxzLmFkZExvb3AobG9vcE1vZGVsKTtcbiAgICAgICAgYm91bmRzLmJ1bXBWZXJ0aWNhbFBvcyhsb29wTW9kZWwuc3RvcHkgLSBib3VuZHMuZ2V0VmVydGljYWxQb3MoKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLk9QVF9TVEFSVDpcbiAgICAgICAgYWRqdXN0TG9vcEhlaWdodEZvcldyYXAoXG4gICAgICAgICAgbG9vcFdpZHRocyxcbiAgICAgICAgICBtc2csXG4gICAgICAgICAgY29uZi5ib3hNYXJnaW4sXG4gICAgICAgICAgY29uZi5ib3hNYXJnaW4gKyBjb25mLmJveFRleHRNYXJnaW4sXG4gICAgICAgICAgKG1lc3NhZ2UpID0+IGJvdW5kcy5uZXdMb29wKG1lc3NhZ2UpXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLk9QVF9FTkQ6XG4gICAgICAgIGxvb3BNb2RlbCA9IGJvdW5kcy5lbmRMb29wKCk7XG4gICAgICAgIGF3YWl0IHN2Z0RyYXcuZHJhd0xvb3AoZGlhZ3JhbTIsIGxvb3BNb2RlbCwgXCJvcHRcIiwgY29uZik7XG4gICAgICAgIGJvdW5kcy5idW1wVmVydGljYWxQb3MobG9vcE1vZGVsLnN0b3B5IC0gYm91bmRzLmdldFZlcnRpY2FsUG9zKCkpO1xuICAgICAgICBib3VuZHMubW9kZWxzLmFkZExvb3AobG9vcE1vZGVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQUxUX1NUQVJUOlxuICAgICAgICBhZGp1c3RMb29wSGVpZ2h0Rm9yV3JhcChcbiAgICAgICAgICBsb29wV2lkdGhzLFxuICAgICAgICAgIG1zZyxcbiAgICAgICAgICBjb25mLmJveE1hcmdpbixcbiAgICAgICAgICBjb25mLmJveE1hcmdpbiArIGNvbmYuYm94VGV4dE1hcmdpbixcbiAgICAgICAgICAobWVzc2FnZSkgPT4gYm91bmRzLm5ld0xvb3AobWVzc2FnZSlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQUxUX0VMU0U6XG4gICAgICAgIGFkanVzdExvb3BIZWlnaHRGb3JXcmFwKFxuICAgICAgICAgIGxvb3BXaWR0aHMsXG4gICAgICAgICAgbXNnLFxuICAgICAgICAgIGNvbmYuYm94TWFyZ2luICsgY29uZi5ib3hUZXh0TWFyZ2luLFxuICAgICAgICAgIGNvbmYuYm94TWFyZ2luLFxuICAgICAgICAgIChtZXNzYWdlKSA9PiBib3VuZHMuYWRkU2VjdGlvblRvTG9vcChtZXNzYWdlKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5MSU5FVFlQRS5BTFRfRU5EOlxuICAgICAgICBsb29wTW9kZWwgPSBib3VuZHMuZW5kTG9vcCgpO1xuICAgICAgICBhd2FpdCBzdmdEcmF3LmRyYXdMb29wKGRpYWdyYW0yLCBsb29wTW9kZWwsIFwiYWx0XCIsIGNvbmYpO1xuICAgICAgICBib3VuZHMuYnVtcFZlcnRpY2FsUG9zKGxvb3BNb2RlbC5zdG9weSAtIGJvdW5kcy5nZXRWZXJ0aWNhbFBvcygpKTtcbiAgICAgICAgYm91bmRzLm1vZGVscy5hZGRMb29wKGxvb3BNb2RlbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLlBBUl9TVEFSVDpcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5MSU5FVFlQRS5QQVJfT1ZFUl9TVEFSVDpcbiAgICAgICAgYWRqdXN0TG9vcEhlaWdodEZvcldyYXAoXG4gICAgICAgICAgbG9vcFdpZHRocyxcbiAgICAgICAgICBtc2csXG4gICAgICAgICAgY29uZi5ib3hNYXJnaW4sXG4gICAgICAgICAgY29uZi5ib3hNYXJnaW4gKyBjb25mLmJveFRleHRNYXJnaW4sXG4gICAgICAgICAgKG1lc3NhZ2UpID0+IGJvdW5kcy5uZXdMb29wKG1lc3NhZ2UpXG4gICAgICAgICk7XG4gICAgICAgIGJvdW5kcy5zYXZlVmVydGljYWxQb3MoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuUEFSX0FORDpcbiAgICAgICAgYWRqdXN0TG9vcEhlaWdodEZvcldyYXAoXG4gICAgICAgICAgbG9vcFdpZHRocyxcbiAgICAgICAgICBtc2csXG4gICAgICAgICAgY29uZi5ib3hNYXJnaW4gKyBjb25mLmJveFRleHRNYXJnaW4sXG4gICAgICAgICAgY29uZi5ib3hNYXJnaW4sXG4gICAgICAgICAgKG1lc3NhZ2UpID0+IGJvdW5kcy5hZGRTZWN0aW9uVG9Mb29wKG1lc3NhZ2UpXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLlBBUl9FTkQ6XG4gICAgICAgIGxvb3BNb2RlbCA9IGJvdW5kcy5lbmRMb29wKCk7XG4gICAgICAgIGF3YWl0IHN2Z0RyYXcuZHJhd0xvb3AoZGlhZ3JhbTIsIGxvb3BNb2RlbCwgXCJwYXJcIiwgY29uZik7XG4gICAgICAgIGJvdW5kcy5idW1wVmVydGljYWxQb3MobG9vcE1vZGVsLnN0b3B5IC0gYm91bmRzLmdldFZlcnRpY2FsUG9zKCkpO1xuICAgICAgICBib3VuZHMubW9kZWxzLmFkZExvb3AobG9vcE1vZGVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQVVUT05VTUJFUjpcbiAgICAgICAgc2VxdWVuY2VJbmRleCA9IG1zZy5tZXNzYWdlLnN0YXJ0IHx8IHNlcXVlbmNlSW5kZXg7XG4gICAgICAgIHNlcXVlbmNlSW5kZXhTdGVwID0gbXNnLm1lc3NhZ2Uuc3RlcCB8fCBzZXF1ZW5jZUluZGV4U3RlcDtcbiAgICAgICAgaWYgKG1zZy5tZXNzYWdlLnZpc2libGUpIHtcbiAgICAgICAgICBkaWFnT2JqLmRiLmVuYWJsZVNlcXVlbmNlTnVtYmVycygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRpYWdPYmouZGIuZGlzYWJsZVNlcXVlbmNlTnVtYmVycygpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLkNSSVRJQ0FMX1NUQVJUOlxuICAgICAgICBhZGp1c3RMb29wSGVpZ2h0Rm9yV3JhcChcbiAgICAgICAgICBsb29wV2lkdGhzLFxuICAgICAgICAgIG1zZyxcbiAgICAgICAgICBjb25mLmJveE1hcmdpbixcbiAgICAgICAgICBjb25mLmJveE1hcmdpbiArIGNvbmYuYm94VGV4dE1hcmdpbixcbiAgICAgICAgICAobWVzc2FnZSkgPT4gYm91bmRzLm5ld0xvb3AobWVzc2FnZSlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQ1JJVElDQUxfT1BUSU9OOlxuICAgICAgICBhZGp1c3RMb29wSGVpZ2h0Rm9yV3JhcChcbiAgICAgICAgICBsb29wV2lkdGhzLFxuICAgICAgICAgIG1zZyxcbiAgICAgICAgICBjb25mLmJveE1hcmdpbiArIGNvbmYuYm94VGV4dE1hcmdpbixcbiAgICAgICAgICBjb25mLmJveE1hcmdpbixcbiAgICAgICAgICAobWVzc2FnZSkgPT4gYm91bmRzLmFkZFNlY3Rpb25Ub0xvb3AobWVzc2FnZSlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQ1JJVElDQUxfRU5EOlxuICAgICAgICBsb29wTW9kZWwgPSBib3VuZHMuZW5kTG9vcCgpO1xuICAgICAgICBhd2FpdCBzdmdEcmF3LmRyYXdMb29wKGRpYWdyYW0yLCBsb29wTW9kZWwsIFwiY3JpdGljYWxcIiwgY29uZik7XG4gICAgICAgIGJvdW5kcy5idW1wVmVydGljYWxQb3MobG9vcE1vZGVsLnN0b3B5IC0gYm91bmRzLmdldFZlcnRpY2FsUG9zKCkpO1xuICAgICAgICBib3VuZHMubW9kZWxzLmFkZExvb3AobG9vcE1vZGVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQlJFQUtfU1RBUlQ6XG4gICAgICAgIGFkanVzdExvb3BIZWlnaHRGb3JXcmFwKFxuICAgICAgICAgIGxvb3BXaWR0aHMsXG4gICAgICAgICAgbXNnLFxuICAgICAgICAgIGNvbmYuYm94TWFyZ2luLFxuICAgICAgICAgIGNvbmYuYm94TWFyZ2luICsgY29uZi5ib3hUZXh0TWFyZ2luLFxuICAgICAgICAgIChtZXNzYWdlKSA9PiBib3VuZHMubmV3TG9vcChtZXNzYWdlKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5MSU5FVFlQRS5CUkVBS19FTkQ6XG4gICAgICAgIGxvb3BNb2RlbCA9IGJvdW5kcy5lbmRMb29wKCk7XG4gICAgICAgIGF3YWl0IHN2Z0RyYXcuZHJhd0xvb3AoZGlhZ3JhbTIsIGxvb3BNb2RlbCwgXCJicmVha1wiLCBjb25mKTtcbiAgICAgICAgYm91bmRzLmJ1bXBWZXJ0aWNhbFBvcyhsb29wTW9kZWwuc3RvcHkgLSBib3VuZHMuZ2V0VmVydGljYWxQb3MoKSk7XG4gICAgICAgIGJvdW5kcy5tb2RlbHMuYWRkTG9vcChsb29wTW9kZWwpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbXNnTW9kZWwgPSBtc2cubXNnTW9kZWw7XG4gICAgICAgICAgbXNnTW9kZWwuc3RhcnR5ID0gYm91bmRzLmdldFZlcnRpY2FsUG9zKCk7XG4gICAgICAgICAgbXNnTW9kZWwuc2VxdWVuY2VJbmRleCA9IHNlcXVlbmNlSW5kZXg7XG4gICAgICAgICAgbXNnTW9kZWwuc2VxdWVuY2VWaXNpYmxlID0gZGlhZ09iai5kYi5zaG93U2VxdWVuY2VOdW1iZXJzKCk7XG4gICAgICAgICAgY29uc3QgbGluZVN0YXJ0WSA9IGF3YWl0IGJvdW5kTWVzc2FnZShkaWFncmFtMiwgbXNnTW9kZWwpO1xuICAgICAgICAgIGFkanVzdENyZWF0ZWREZXN0cm95ZWREYXRhKFxuICAgICAgICAgICAgbXNnLFxuICAgICAgICAgICAgbXNnTW9kZWwsXG4gICAgICAgICAgICBsaW5lU3RhcnRZLFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBhY3RvcnMsXG4gICAgICAgICAgICBjcmVhdGVkQWN0b3JzLFxuICAgICAgICAgICAgZGVzdHJveWVkQWN0b3JzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBtZXNzYWdlc1RvRHJhdy5wdXNoKHsgbWVzc2FnZU1vZGVsOiBtc2dNb2RlbCwgbGluZVN0YXJ0WSB9KTtcbiAgICAgICAgICBib3VuZHMubW9kZWxzLmFkZE1lc3NhZ2UobXNnTW9kZWwpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLmVycm9yKFwiZXJyb3Igd2hpbGUgZHJhd2luZyBtZXNzYWdlXCIsIGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChbXG4gICAgICBkaWFnT2JqLmRiLkxJTkVUWVBFLlNPTElEX09QRU4sXG4gICAgICBkaWFnT2JqLmRiLkxJTkVUWVBFLkRPVFRFRF9PUEVOLFxuICAgICAgZGlhZ09iai5kYi5MSU5FVFlQRS5TT0xJRCxcbiAgICAgIGRpYWdPYmouZGIuTElORVRZUEUuRE9UVEVELFxuICAgICAgZGlhZ09iai5kYi5MSU5FVFlQRS5TT0xJRF9DUk9TUyxcbiAgICAgIGRpYWdPYmouZGIuTElORVRZUEUuRE9UVEVEX0NST1NTLFxuICAgICAgZGlhZ09iai5kYi5MSU5FVFlQRS5TT0xJRF9QT0lOVCxcbiAgICAgIGRpYWdPYmouZGIuTElORVRZUEUuRE9UVEVEX1BPSU5UXG4gICAgXS5pbmNsdWRlcyhtc2cudHlwZSkpIHtcbiAgICAgIHNlcXVlbmNlSW5kZXggPSBzZXF1ZW5jZUluZGV4ICsgc2VxdWVuY2VJbmRleFN0ZXA7XG4gICAgfVxuICAgIGluZGV4Kys7XG4gIH1cbiAgbG9nLmRlYnVnKFwiY3JlYXRlZEFjdG9yc1wiLCBjcmVhdGVkQWN0b3JzKTtcbiAgbG9nLmRlYnVnKFwiZGVzdHJveWVkQWN0b3JzXCIsIGRlc3Ryb3llZEFjdG9ycyk7XG4gIGF3YWl0IGRyYXdBY3RvcnMoZGlhZ3JhbTIsIGFjdG9ycywgYWN0b3JLZXlzLCBmYWxzZSk7XG4gIGZvciAoY29uc3QgZSBvZiBtZXNzYWdlc1RvRHJhdykge1xuICAgIGF3YWl0IGRyYXdNZXNzYWdlKGRpYWdyYW0yLCBlLm1lc3NhZ2VNb2RlbCwgZS5saW5lU3RhcnRZLCBkaWFnT2JqKTtcbiAgfVxuICBpZiAoY29uZi5taXJyb3JBY3RvcnMpIHtcbiAgICBhd2FpdCBkcmF3QWN0b3JzKGRpYWdyYW0yLCBhY3RvcnMsIGFjdG9yS2V5cywgdHJ1ZSk7XG4gIH1cbiAgYmFja2dyb3VuZHMuZm9yRWFjaCgoZSkgPT4gc3ZnRHJhdy5kcmF3QmFja2dyb3VuZFJlY3QoZGlhZ3JhbTIsIGUpKTtcbiAgZml4TGlmZUxpbmVIZWlnaHRzKGRpYWdyYW0yLCBhY3RvcnMsIGFjdG9yS2V5cywgY29uZik7XG4gIGZvciAoY29uc3QgYm94MiBvZiBib3VuZHMubW9kZWxzLmJveGVzKSB7XG4gICAgYm94Mi5oZWlnaHQgPSBib3VuZHMuZ2V0VmVydGljYWxQb3MoKSAtIGJveDIueTtcbiAgICBib3VuZHMuaW5zZXJ0KGJveDIueCwgYm94Mi55LCBib3gyLnggKyBib3gyLndpZHRoLCBib3gyLmhlaWdodCk7XG4gICAgYm94Mi5zdGFydHggPSBib3gyLng7XG4gICAgYm94Mi5zdGFydHkgPSBib3gyLnk7XG4gICAgYm94Mi5zdG9weCA9IGJveDIuc3RhcnR4ICsgYm94Mi53aWR0aDtcbiAgICBib3gyLnN0b3B5ID0gYm94Mi5zdGFydHkgKyBib3gyLmhlaWdodDtcbiAgICBib3gyLnN0cm9rZSA9IFwicmdiKDAsMCwwLCAwLjUpXCI7XG4gICAgYXdhaXQgc3ZnRHJhdy5kcmF3Qm94KGRpYWdyYW0yLCBib3gyLCBjb25mKTtcbiAgfVxuICBpZiAoaGFzQm94ZXMpIHtcbiAgICBib3VuZHMuYnVtcFZlcnRpY2FsUG9zKGNvbmYuYm94TWFyZ2luKTtcbiAgfVxuICBjb25zdCByZXF1aXJlZEJveFNpemUgPSBkcmF3QWN0b3JzUG9wdXAoZGlhZ3JhbTIsIGFjdG9ycywgYWN0b3JLZXlzLCBkb2MpO1xuICBjb25zdCB7IGJvdW5kczogYm94IH0gPSBib3VuZHMuZ2V0Qm91bmRzKCk7XG4gIGxldCBib3hIZWlnaHQgPSBib3guc3RvcHkgLSBib3guc3RhcnR5O1xuICBpZiAoYm94SGVpZ2h0IDwgcmVxdWlyZWRCb3hTaXplLm1heEhlaWdodCkge1xuICAgIGJveEhlaWdodCA9IHJlcXVpcmVkQm94U2l6ZS5tYXhIZWlnaHQ7XG4gIH1cbiAgbGV0IGhlaWdodCA9IGJveEhlaWdodCArIDIgKiBjb25mLmRpYWdyYW1NYXJnaW5ZO1xuICBpZiAoY29uZi5taXJyb3JBY3RvcnMpIHtcbiAgICBoZWlnaHQgPSBoZWlnaHQgLSBjb25mLmJveE1hcmdpbiArIGNvbmYuYm90dG9tTWFyZ2luQWRqO1xuICB9XG4gIGxldCBib3hXaWR0aCA9IGJveC5zdG9weCAtIGJveC5zdGFydHg7XG4gIGlmIChib3hXaWR0aCA8IHJlcXVpcmVkQm94U2l6ZS5tYXhXaWR0aCkge1xuICAgIGJveFdpZHRoID0gcmVxdWlyZWRCb3hTaXplLm1heFdpZHRoO1xuICB9XG4gIGNvbnN0IHdpZHRoID0gYm94V2lkdGggKyAyICogY29uZi5kaWFncmFtTWFyZ2luWDtcbiAgaWYgKHRpdGxlKSB7XG4gICAgZGlhZ3JhbTIuYXBwZW5kKFwidGV4dFwiKS50ZXh0KHRpdGxlKS5hdHRyKFwieFwiLCAoYm94LnN0b3B4IC0gYm94LnN0YXJ0eCkgLyAyIC0gMiAqIGNvbmYuZGlhZ3JhbU1hcmdpblgpLmF0dHIoXCJ5XCIsIC0yNSk7XG4gIH1cbiAgY29uZmlndXJlU3ZnU2l6ZShkaWFncmFtMiwgaGVpZ2h0LCB3aWR0aCwgY29uZi51c2VNYXhXaWR0aCk7XG4gIGNvbnN0IGV4dHJhVmVydEZvclRpdGxlID0gdGl0bGUgPyA0MCA6IDA7XG4gIGRpYWdyYW0yLmF0dHIoXG4gICAgXCJ2aWV3Qm94XCIsXG4gICAgYm94LnN0YXJ0eCAtIGNvbmYuZGlhZ3JhbU1hcmdpblggKyBcIiAtXCIgKyAoY29uZi5kaWFncmFtTWFyZ2luWSArIGV4dHJhVmVydEZvclRpdGxlKSArIFwiIFwiICsgd2lkdGggKyBcIiBcIiArIChoZWlnaHQgKyBleHRyYVZlcnRGb3JUaXRsZSlcbiAgKTtcbiAgbG9nLmRlYnVnKGBtb2RlbHM6YCwgYm91bmRzLm1vZGVscyk7XG59O1xuYXN5bmMgZnVuY3Rpb24gZ2V0TWF4TWVzc2FnZVdpZHRoUGVyQWN0b3IoYWN0b3JzLCBtZXNzYWdlcywgZGlhZ09iaikge1xuICBjb25zdCBtYXhNZXNzYWdlV2lkdGhQZXJBY3RvciA9IHt9O1xuICBmb3IgKGNvbnN0IG1zZyBvZiBtZXNzYWdlcykge1xuICAgIGlmIChhY3RvcnNbbXNnLnRvXSAmJiBhY3RvcnNbbXNnLmZyb21dKSB7XG4gICAgICBjb25zdCBhY3RvciA9IGFjdG9yc1ttc2cudG9dO1xuICAgICAgaWYgKG1zZy5wbGFjZW1lbnQgPT09IGRpYWdPYmouZGIuUExBQ0VNRU5ULkxFRlRPRiAmJiAhYWN0b3IucHJldkFjdG9yKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKG1zZy5wbGFjZW1lbnQgPT09IGRpYWdPYmouZGIuUExBQ0VNRU5ULlJJR0hUT0YgJiYgIWFjdG9yLm5leHRBY3Rvcikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzTm90ZSA9IG1zZy5wbGFjZW1lbnQgIT09IHZvaWQgMDtcbiAgICAgIGNvbnN0IGlzTWVzc2FnZSA9ICFpc05vdGU7XG4gICAgICBjb25zdCB0ZXh0Rm9udCA9IGlzTm90ZSA/IG5vdGVGb250KGNvbmYpIDogbWVzc2FnZUZvbnQoY29uZik7XG4gICAgICBjb25zdCB3cmFwcGVkTWVzc2FnZSA9IG1zZy53cmFwID8gdXRpbHMud3JhcExhYmVsKG1zZy5tZXNzYWdlLCBjb25mLndpZHRoIC0gMiAqIGNvbmYud3JhcFBhZGRpbmcsIHRleHRGb250KSA6IG1zZy5tZXNzYWdlO1xuICAgICAgY29uc3QgbWVzc2FnZURpbWVuc2lvbnMgPSBoYXNLYXRleCh3cmFwcGVkTWVzc2FnZSkgPyBhd2FpdCBjYWxjdWxhdGVNYXRoTUxEaW1lbnNpb25zKG1zZy5tZXNzYWdlLCBnZXRDb25maWcoKSkgOiB1dGlscy5jYWxjdWxhdGVUZXh0RGltZW5zaW9ucyh3cmFwcGVkTWVzc2FnZSwgdGV4dEZvbnQpO1xuICAgICAgY29uc3QgbWVzc2FnZVdpZHRoID0gbWVzc2FnZURpbWVuc2lvbnMud2lkdGggKyAyICogY29uZi53cmFwUGFkZGluZztcbiAgICAgIGlmIChpc01lc3NhZ2UgJiYgbXNnLmZyb20gPT09IGFjdG9yLm5leHRBY3Rvcikge1xuICAgICAgICBtYXhNZXNzYWdlV2lkdGhQZXJBY3Rvclttc2cudG9dID0gY29tbW9uLmdldE1heChcbiAgICAgICAgICBtYXhNZXNzYWdlV2lkdGhQZXJBY3Rvclttc2cudG9dIHx8IDAsXG4gICAgICAgICAgbWVzc2FnZVdpZHRoXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGlzTWVzc2FnZSAmJiBtc2cuZnJvbSA9PT0gYWN0b3IucHJldkFjdG9yKSB7XG4gICAgICAgIG1heE1lc3NhZ2VXaWR0aFBlckFjdG9yW21zZy5mcm9tXSA9IGNvbW1vbi5nZXRNYXgoXG4gICAgICAgICAgbWF4TWVzc2FnZVdpZHRoUGVyQWN0b3JbbXNnLmZyb21dIHx8IDAsXG4gICAgICAgICAgbWVzc2FnZVdpZHRoXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGlzTWVzc2FnZSAmJiBtc2cuZnJvbSA9PT0gbXNnLnRvKSB7XG4gICAgICAgIG1heE1lc3NhZ2VXaWR0aFBlckFjdG9yW21zZy5mcm9tXSA9IGNvbW1vbi5nZXRNYXgoXG4gICAgICAgICAgbWF4TWVzc2FnZVdpZHRoUGVyQWN0b3JbbXNnLmZyb21dIHx8IDAsXG4gICAgICAgICAgbWVzc2FnZVdpZHRoIC8gMlxuICAgICAgICApO1xuICAgICAgICBtYXhNZXNzYWdlV2lkdGhQZXJBY3Rvclttc2cudG9dID0gY29tbW9uLmdldE1heChcbiAgICAgICAgICBtYXhNZXNzYWdlV2lkdGhQZXJBY3Rvclttc2cudG9dIHx8IDAsXG4gICAgICAgICAgbWVzc2FnZVdpZHRoIC8gMlxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChtc2cucGxhY2VtZW50ID09PSBkaWFnT2JqLmRiLlBMQUNFTUVOVC5SSUdIVE9GKSB7XG4gICAgICAgIG1heE1lc3NhZ2VXaWR0aFBlckFjdG9yW21zZy5mcm9tXSA9IGNvbW1vbi5nZXRNYXgoXG4gICAgICAgICAgbWF4TWVzc2FnZVdpZHRoUGVyQWN0b3JbbXNnLmZyb21dIHx8IDAsXG4gICAgICAgICAgbWVzc2FnZVdpZHRoXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKG1zZy5wbGFjZW1lbnQgPT09IGRpYWdPYmouZGIuUExBQ0VNRU5ULkxFRlRPRikge1xuICAgICAgICBtYXhNZXNzYWdlV2lkdGhQZXJBY3RvclthY3Rvci5wcmV2QWN0b3JdID0gY29tbW9uLmdldE1heChcbiAgICAgICAgICBtYXhNZXNzYWdlV2lkdGhQZXJBY3RvclthY3Rvci5wcmV2QWN0b3JdIHx8IDAsXG4gICAgICAgICAgbWVzc2FnZVdpZHRoXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKG1zZy5wbGFjZW1lbnQgPT09IGRpYWdPYmouZGIuUExBQ0VNRU5ULk9WRVIpIHtcbiAgICAgICAgaWYgKGFjdG9yLnByZXZBY3Rvcikge1xuICAgICAgICAgIG1heE1lc3NhZ2VXaWR0aFBlckFjdG9yW2FjdG9yLnByZXZBY3Rvcl0gPSBjb21tb24uZ2V0TWF4KFxuICAgICAgICAgICAgbWF4TWVzc2FnZVdpZHRoUGVyQWN0b3JbYWN0b3IucHJldkFjdG9yXSB8fCAwLFxuICAgICAgICAgICAgbWVzc2FnZVdpZHRoIC8gMlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdG9yLm5leHRBY3Rvcikge1xuICAgICAgICAgIG1heE1lc3NhZ2VXaWR0aFBlckFjdG9yW21zZy5mcm9tXSA9IGNvbW1vbi5nZXRNYXgoXG4gICAgICAgICAgICBtYXhNZXNzYWdlV2lkdGhQZXJBY3Rvclttc2cuZnJvbV0gfHwgMCxcbiAgICAgICAgICAgIG1lc3NhZ2VXaWR0aCAvIDJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGxvZy5kZWJ1ZyhcIm1heE1lc3NhZ2VXaWR0aFBlckFjdG9yOlwiLCBtYXhNZXNzYWdlV2lkdGhQZXJBY3Rvcik7XG4gIHJldHVybiBtYXhNZXNzYWdlV2lkdGhQZXJBY3Rvcjtcbn1cbmNvbnN0IGdldFJlcXVpcmVkUG9wdXBXaWR0aCA9IGZ1bmN0aW9uKGFjdG9yKSB7XG4gIGxldCByZXF1aXJlZFBvcHVwV2lkdGggPSAwO1xuICBjb25zdCB0ZXh0Rm9udCA9IGFjdG9yRm9udChjb25mKTtcbiAgZm9yIChjb25zdCBrZXkgaW4gYWN0b3IubGlua3MpIHtcbiAgICBjb25zdCBsYWJlbERpbWVuc2lvbnMgPSB1dGlscy5jYWxjdWxhdGVUZXh0RGltZW5zaW9ucyhrZXksIHRleHRGb250KTtcbiAgICBjb25zdCBsYWJlbFdpZHRoID0gbGFiZWxEaW1lbnNpb25zLndpZHRoICsgMiAqIGNvbmYud3JhcFBhZGRpbmcgKyAyICogY29uZi5ib3hNYXJnaW47XG4gICAgaWYgKHJlcXVpcmVkUG9wdXBXaWR0aCA8IGxhYmVsV2lkdGgpIHtcbiAgICAgIHJlcXVpcmVkUG9wdXBXaWR0aCA9IGxhYmVsV2lkdGg7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXF1aXJlZFBvcHVwV2lkdGg7XG59O1xuYXN5bmMgZnVuY3Rpb24gY2FsY3VsYXRlQWN0b3JNYXJnaW5zKGFjdG9ycywgYWN0b3JUb01lc3NhZ2VXaWR0aCwgYm94ZXMpIHtcbiAgbGV0IG1heEhlaWdodCA9IDA7XG4gIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyhhY3RvcnMpKSB7XG4gICAgY29uc3QgYWN0b3IgPSBhY3RvcnNbcHJvcF07XG4gICAgaWYgKGFjdG9yLndyYXApIHtcbiAgICAgIGFjdG9yLmRlc2NyaXB0aW9uID0gdXRpbHMud3JhcExhYmVsKFxuICAgICAgICBhY3Rvci5kZXNjcmlwdGlvbixcbiAgICAgICAgY29uZi53aWR0aCAtIDIgKiBjb25mLndyYXBQYWRkaW5nLFxuICAgICAgICBhY3RvckZvbnQoY29uZilcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGFjdERpbXMgPSBoYXNLYXRleChhY3Rvci5kZXNjcmlwdGlvbikgPyBhd2FpdCBjYWxjdWxhdGVNYXRoTUxEaW1lbnNpb25zKGFjdG9yLmRlc2NyaXB0aW9uLCBnZXRDb25maWcoKSkgOiB1dGlscy5jYWxjdWxhdGVUZXh0RGltZW5zaW9ucyhhY3Rvci5kZXNjcmlwdGlvbiwgYWN0b3JGb250KGNvbmYpKTtcbiAgICBhY3Rvci53aWR0aCA9IGFjdG9yLndyYXAgPyBjb25mLndpZHRoIDogY29tbW9uLmdldE1heChjb25mLndpZHRoLCBhY3REaW1zLndpZHRoICsgMiAqIGNvbmYud3JhcFBhZGRpbmcpO1xuICAgIGFjdG9yLmhlaWdodCA9IGFjdG9yLndyYXAgPyBjb21tb24uZ2V0TWF4KGFjdERpbXMuaGVpZ2h0LCBjb25mLmhlaWdodCkgOiBjb25mLmhlaWdodDtcbiAgICBtYXhIZWlnaHQgPSBjb21tb24uZ2V0TWF4KG1heEhlaWdodCwgYWN0b3IuaGVpZ2h0KTtcbiAgfVxuICBmb3IgKGNvbnN0IGFjdG9yS2V5IGluIGFjdG9yVG9NZXNzYWdlV2lkdGgpIHtcbiAgICBjb25zdCBhY3RvciA9IGFjdG9yc1thY3RvcktleV07XG4gICAgaWYgKCFhY3Rvcikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IG5leHRBY3RvciA9IGFjdG9yc1thY3Rvci5uZXh0QWN0b3JdO1xuICAgIGlmICghbmV4dEFjdG9yKSB7XG4gICAgICBjb25zdCBtZXNzYWdlV2lkdGgyID0gYWN0b3JUb01lc3NhZ2VXaWR0aFthY3RvcktleV07XG4gICAgICBjb25zdCBhY3RvcldpZHRoMiA9IG1lc3NhZ2VXaWR0aDIgKyBjb25mLmFjdG9yTWFyZ2luIC0gYWN0b3Iud2lkdGggLyAyO1xuICAgICAgYWN0b3IubWFyZ2luID0gY29tbW9uLmdldE1heChhY3RvcldpZHRoMiwgY29uZi5hY3Rvck1hcmdpbik7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgbWVzc2FnZVdpZHRoID0gYWN0b3JUb01lc3NhZ2VXaWR0aFthY3RvcktleV07XG4gICAgY29uc3QgYWN0b3JXaWR0aCA9IG1lc3NhZ2VXaWR0aCArIGNvbmYuYWN0b3JNYXJnaW4gLSBhY3Rvci53aWR0aCAvIDIgLSBuZXh0QWN0b3Iud2lkdGggLyAyO1xuICAgIGFjdG9yLm1hcmdpbiA9IGNvbW1vbi5nZXRNYXgoYWN0b3JXaWR0aCwgY29uZi5hY3Rvck1hcmdpbik7XG4gIH1cbiAgbGV0IG1heEJveEhlaWdodCA9IDA7XG4gIGJveGVzLmZvckVhY2goKGJveCkgPT4ge1xuICAgIGNvbnN0IHRleHRGb250ID0gbWVzc2FnZUZvbnQoY29uZik7XG4gICAgbGV0IHRvdGFsV2lkdGggPSBib3guYWN0b3JLZXlzLnJlZHVjZSgodG90YWwsIGFLZXkpID0+IHtcbiAgICAgIHJldHVybiB0b3RhbCArPSBhY3RvcnNbYUtleV0ud2lkdGggKyAoYWN0b3JzW2FLZXldLm1hcmdpbiB8fCAwKTtcbiAgICB9LCAwKTtcbiAgICB0b3RhbFdpZHRoIC09IDIgKiBjb25mLmJveFRleHRNYXJnaW47XG4gICAgaWYgKGJveC53cmFwKSB7XG4gICAgICBib3gubmFtZSA9IHV0aWxzLndyYXBMYWJlbChib3gubmFtZSwgdG90YWxXaWR0aCAtIDIgKiBjb25mLndyYXBQYWRkaW5nLCB0ZXh0Rm9udCk7XG4gICAgfVxuICAgIGNvbnN0IGJveE1zZ0RpbWVuc2lvbnMgPSB1dGlscy5jYWxjdWxhdGVUZXh0RGltZW5zaW9ucyhib3gubmFtZSwgdGV4dEZvbnQpO1xuICAgIG1heEJveEhlaWdodCA9IGNvbW1vbi5nZXRNYXgoYm94TXNnRGltZW5zaW9ucy5oZWlnaHQsIG1heEJveEhlaWdodCk7XG4gICAgY29uc3QgbWluV2lkdGggPSBjb21tb24uZ2V0TWF4KHRvdGFsV2lkdGgsIGJveE1zZ0RpbWVuc2lvbnMud2lkdGggKyAyICogY29uZi53cmFwUGFkZGluZyk7XG4gICAgYm94Lm1hcmdpbiA9IGNvbmYuYm94VGV4dE1hcmdpbjtcbiAgICBpZiAodG90YWxXaWR0aCA8IG1pbldpZHRoKSB7XG4gICAgICBjb25zdCBtaXNzaW5nID0gKG1pbldpZHRoIC0gdG90YWxXaWR0aCkgLyAyO1xuICAgICAgYm94Lm1hcmdpbiArPSBtaXNzaW5nO1xuICAgIH1cbiAgfSk7XG4gIGJveGVzLmZvckVhY2goKGJveCkgPT4gYm94LnRleHRNYXhIZWlnaHQgPSBtYXhCb3hIZWlnaHQpO1xuICByZXR1cm4gY29tbW9uLmdldE1heChtYXhIZWlnaHQsIGNvbmYuaGVpZ2h0KTtcbn1cbmNvbnN0IGJ1aWxkTm90ZU1vZGVsID0gYXN5bmMgZnVuY3Rpb24obXNnLCBhY3RvcnMsIGRpYWdPYmopIHtcbiAgY29uc3Qgc3RhcnR4ID0gYWN0b3JzW21zZy5mcm9tXS54O1xuICBjb25zdCBzdG9weCA9IGFjdG9yc1ttc2cudG9dLng7XG4gIGNvbnN0IHNob3VsZFdyYXAgPSBtc2cud3JhcCAmJiBtc2cubWVzc2FnZTtcbiAgbGV0IHRleHREaW1lbnNpb25zID0gaGFzS2F0ZXgobXNnLm1lc3NhZ2UpID8gYXdhaXQgY2FsY3VsYXRlTWF0aE1MRGltZW5zaW9ucyhtc2cubWVzc2FnZSwgZ2V0Q29uZmlnKCkpIDogdXRpbHMuY2FsY3VsYXRlVGV4dERpbWVuc2lvbnMoXG4gICAgc2hvdWxkV3JhcCA/IHV0aWxzLndyYXBMYWJlbChtc2cubWVzc2FnZSwgY29uZi53aWR0aCwgbm90ZUZvbnQoY29uZikpIDogbXNnLm1lc3NhZ2UsXG4gICAgbm90ZUZvbnQoY29uZilcbiAgKTtcbiAgY29uc3Qgbm90ZU1vZGVsID0ge1xuICAgIHdpZHRoOiBzaG91bGRXcmFwID8gY29uZi53aWR0aCA6IGNvbW1vbi5nZXRNYXgoY29uZi53aWR0aCwgdGV4dERpbWVuc2lvbnMud2lkdGggKyAyICogY29uZi5ub3RlTWFyZ2luKSxcbiAgICBoZWlnaHQ6IDAsXG4gICAgc3RhcnR4OiBhY3RvcnNbbXNnLmZyb21dLngsXG4gICAgc3RvcHg6IDAsXG4gICAgc3RhcnR5OiAwLFxuICAgIHN0b3B5OiAwLFxuICAgIG1lc3NhZ2U6IG1zZy5tZXNzYWdlXG4gIH07XG4gIGlmIChtc2cucGxhY2VtZW50ID09PSBkaWFnT2JqLmRiLlBMQUNFTUVOVC5SSUdIVE9GKSB7XG4gICAgbm90ZU1vZGVsLndpZHRoID0gc2hvdWxkV3JhcCA/IGNvbW1vbi5nZXRNYXgoY29uZi53aWR0aCwgdGV4dERpbWVuc2lvbnMud2lkdGgpIDogY29tbW9uLmdldE1heChcbiAgICAgIGFjdG9yc1ttc2cuZnJvbV0ud2lkdGggLyAyICsgYWN0b3JzW21zZy50b10ud2lkdGggLyAyLFxuICAgICAgdGV4dERpbWVuc2lvbnMud2lkdGggKyAyICogY29uZi5ub3RlTWFyZ2luXG4gICAgKTtcbiAgICBub3RlTW9kZWwuc3RhcnR4ID0gc3RhcnR4ICsgKGFjdG9yc1ttc2cuZnJvbV0ud2lkdGggKyBjb25mLmFjdG9yTWFyZ2luKSAvIDI7XG4gIH0gZWxzZSBpZiAobXNnLnBsYWNlbWVudCA9PT0gZGlhZ09iai5kYi5QTEFDRU1FTlQuTEVGVE9GKSB7XG4gICAgbm90ZU1vZGVsLndpZHRoID0gc2hvdWxkV3JhcCA/IGNvbW1vbi5nZXRNYXgoY29uZi53aWR0aCwgdGV4dERpbWVuc2lvbnMud2lkdGggKyAyICogY29uZi5ub3RlTWFyZ2luKSA6IGNvbW1vbi5nZXRNYXgoXG4gICAgICBhY3RvcnNbbXNnLmZyb21dLndpZHRoIC8gMiArIGFjdG9yc1ttc2cudG9dLndpZHRoIC8gMixcbiAgICAgIHRleHREaW1lbnNpb25zLndpZHRoICsgMiAqIGNvbmYubm90ZU1hcmdpblxuICAgICk7XG4gICAgbm90ZU1vZGVsLnN0YXJ0eCA9IHN0YXJ0eCAtIG5vdGVNb2RlbC53aWR0aCArIChhY3RvcnNbbXNnLmZyb21dLndpZHRoIC0gY29uZi5hY3Rvck1hcmdpbikgLyAyO1xuICB9IGVsc2UgaWYgKG1zZy50byA9PT0gbXNnLmZyb20pIHtcbiAgICB0ZXh0RGltZW5zaW9ucyA9IHV0aWxzLmNhbGN1bGF0ZVRleHREaW1lbnNpb25zKFxuICAgICAgc2hvdWxkV3JhcCA/IHV0aWxzLndyYXBMYWJlbChcbiAgICAgICAgbXNnLm1lc3NhZ2UsXG4gICAgICAgIGNvbW1vbi5nZXRNYXgoY29uZi53aWR0aCwgYWN0b3JzW21zZy5mcm9tXS53aWR0aCksXG4gICAgICAgIG5vdGVGb250KGNvbmYpXG4gICAgICApIDogbXNnLm1lc3NhZ2UsXG4gICAgICBub3RlRm9udChjb25mKVxuICAgICk7XG4gICAgbm90ZU1vZGVsLndpZHRoID0gc2hvdWxkV3JhcCA/IGNvbW1vbi5nZXRNYXgoY29uZi53aWR0aCwgYWN0b3JzW21zZy5mcm9tXS53aWR0aCkgOiBjb21tb24uZ2V0TWF4KFxuICAgICAgYWN0b3JzW21zZy5mcm9tXS53aWR0aCxcbiAgICAgIGNvbmYud2lkdGgsXG4gICAgICB0ZXh0RGltZW5zaW9ucy53aWR0aCArIDIgKiBjb25mLm5vdGVNYXJnaW5cbiAgICApO1xuICAgIG5vdGVNb2RlbC5zdGFydHggPSBzdGFydHggKyAoYWN0b3JzW21zZy5mcm9tXS53aWR0aCAtIG5vdGVNb2RlbC53aWR0aCkgLyAyO1xuICB9IGVsc2Uge1xuICAgIG5vdGVNb2RlbC53aWR0aCA9IE1hdGguYWJzKHN0YXJ0eCArIGFjdG9yc1ttc2cuZnJvbV0ud2lkdGggLyAyIC0gKHN0b3B4ICsgYWN0b3JzW21zZy50b10ud2lkdGggLyAyKSkgKyBjb25mLmFjdG9yTWFyZ2luO1xuICAgIG5vdGVNb2RlbC5zdGFydHggPSBzdGFydHggPCBzdG9weCA/IHN0YXJ0eCArIGFjdG9yc1ttc2cuZnJvbV0ud2lkdGggLyAyIC0gY29uZi5hY3Rvck1hcmdpbiAvIDIgOiBzdG9weCArIGFjdG9yc1ttc2cudG9dLndpZHRoIC8gMiAtIGNvbmYuYWN0b3JNYXJnaW4gLyAyO1xuICB9XG4gIGlmIChzaG91bGRXcmFwKSB7XG4gICAgbm90ZU1vZGVsLm1lc3NhZ2UgPSB1dGlscy53cmFwTGFiZWwoXG4gICAgICBtc2cubWVzc2FnZSxcbiAgICAgIG5vdGVNb2RlbC53aWR0aCAtIDIgKiBjb25mLndyYXBQYWRkaW5nLFxuICAgICAgbm90ZUZvbnQoY29uZilcbiAgICApO1xuICB9XG4gIGxvZy5kZWJ1ZyhcbiAgICBgTk06WyR7bm90ZU1vZGVsLnN0YXJ0eH0sJHtub3RlTW9kZWwuc3RvcHh9LCR7bm90ZU1vZGVsLnN0YXJ0eX0sJHtub3RlTW9kZWwuc3RvcHl9OiR7bm90ZU1vZGVsLndpZHRofSwke25vdGVNb2RlbC5oZWlnaHR9PSR7bXNnLm1lc3NhZ2V9XWBcbiAgKTtcbiAgcmV0dXJuIG5vdGVNb2RlbDtcbn07XG5jb25zdCBidWlsZE1lc3NhZ2VNb2RlbCA9IGZ1bmN0aW9uKG1zZywgYWN0b3JzLCBkaWFnT2JqKSB7XG4gIGlmICghW1xuICAgIGRpYWdPYmouZGIuTElORVRZUEUuU09MSURfT1BFTixcbiAgICBkaWFnT2JqLmRiLkxJTkVUWVBFLkRPVFRFRF9PUEVOLFxuICAgIGRpYWdPYmouZGIuTElORVRZUEUuU09MSUQsXG4gICAgZGlhZ09iai5kYi5MSU5FVFlQRS5ET1RURUQsXG4gICAgZGlhZ09iai5kYi5MSU5FVFlQRS5TT0xJRF9DUk9TUyxcbiAgICBkaWFnT2JqLmRiLkxJTkVUWVBFLkRPVFRFRF9DUk9TUyxcbiAgICBkaWFnT2JqLmRiLkxJTkVUWVBFLlNPTElEX1BPSU5ULFxuICAgIGRpYWdPYmouZGIuTElORVRZUEUuRE9UVEVEX1BPSU5UXG4gIF0uaW5jbHVkZXMobXNnLnR5cGUpKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIGNvbnN0IFtmcm9tTGVmdCwgZnJvbVJpZ2h0XSA9IGFjdGl2YXRpb25Cb3VuZHMobXNnLmZyb20sIGFjdG9ycyk7XG4gIGNvbnN0IFt0b0xlZnQsIHRvUmlnaHRdID0gYWN0aXZhdGlvbkJvdW5kcyhtc2cudG8sIGFjdG9ycyk7XG4gIGNvbnN0IGlzQXJyb3dUb1JpZ2h0ID0gZnJvbUxlZnQgPD0gdG9MZWZ0O1xuICBjb25zdCBzdGFydHggPSBpc0Fycm93VG9SaWdodCA/IGZyb21SaWdodCA6IGZyb21MZWZ0O1xuICBsZXQgc3RvcHggPSBpc0Fycm93VG9SaWdodCA/IHRvTGVmdCA6IHRvUmlnaHQ7XG4gIGNvbnN0IGlzQXJyb3dUb0FjdGl2YXRpb24gPSBNYXRoLmFicyh0b0xlZnQgLSB0b1JpZ2h0KSA+IDI7XG4gIGNvbnN0IGFkanVzdFZhbHVlID0gKHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIGlzQXJyb3dUb1JpZ2h0ID8gLXZhbHVlIDogdmFsdWU7XG4gIH07XG4gIGlmIChtc2cuZnJvbSA9PT0gbXNnLnRvKSB7XG4gICAgc3RvcHggPSBzdGFydHg7XG4gIH0gZWxzZSB7XG4gICAgaWYgKG1zZy5hY3RpdmF0ZSAmJiAhaXNBcnJvd1RvQWN0aXZhdGlvbikge1xuICAgICAgc3RvcHggKz0gYWRqdXN0VmFsdWUoY29uZi5hY3RpdmF0aW9uV2lkdGggLyAyIC0gMSk7XG4gICAgfVxuICAgIGlmICghW2RpYWdPYmouZGIuTElORVRZUEUuU09MSURfT1BFTiwgZGlhZ09iai5kYi5MSU5FVFlQRS5ET1RURURfT1BFTl0uaW5jbHVkZXMobXNnLnR5cGUpKSB7XG4gICAgICBzdG9weCArPSBhZGp1c3RWYWx1ZSgzKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgYWxsQm91bmRzID0gW2Zyb21MZWZ0LCBmcm9tUmlnaHQsIHRvTGVmdCwgdG9SaWdodF07XG4gIGNvbnN0IGJvdW5kZWRXaWR0aCA9IE1hdGguYWJzKHN0YXJ0eCAtIHN0b3B4KTtcbiAgaWYgKG1zZy53cmFwICYmIG1zZy5tZXNzYWdlKSB7XG4gICAgbXNnLm1lc3NhZ2UgPSB1dGlscy53cmFwTGFiZWwoXG4gICAgICBtc2cubWVzc2FnZSxcbiAgICAgIGNvbW1vbi5nZXRNYXgoYm91bmRlZFdpZHRoICsgMiAqIGNvbmYud3JhcFBhZGRpbmcsIGNvbmYud2lkdGgpLFxuICAgICAgbWVzc2FnZUZvbnQoY29uZilcbiAgICApO1xuICB9XG4gIGNvbnN0IG1zZ0RpbXMgPSB1dGlscy5jYWxjdWxhdGVUZXh0RGltZW5zaW9ucyhtc2cubWVzc2FnZSwgbWVzc2FnZUZvbnQoY29uZikpO1xuICByZXR1cm4ge1xuICAgIHdpZHRoOiBjb21tb24uZ2V0TWF4KFxuICAgICAgbXNnLndyYXAgPyAwIDogbXNnRGltcy53aWR0aCArIDIgKiBjb25mLndyYXBQYWRkaW5nLFxuICAgICAgYm91bmRlZFdpZHRoICsgMiAqIGNvbmYud3JhcFBhZGRpbmcsXG4gICAgICBjb25mLndpZHRoXG4gICAgKSxcbiAgICBoZWlnaHQ6IDAsXG4gICAgc3RhcnR4LFxuICAgIHN0b3B4LFxuICAgIHN0YXJ0eTogMCxcbiAgICBzdG9weTogMCxcbiAgICBtZXNzYWdlOiBtc2cubWVzc2FnZSxcbiAgICB0eXBlOiBtc2cudHlwZSxcbiAgICB3cmFwOiBtc2cud3JhcCxcbiAgICBmcm9tQm91bmRzOiBNYXRoLm1pbi5hcHBseShudWxsLCBhbGxCb3VuZHMpLFxuICAgIHRvQm91bmRzOiBNYXRoLm1heC5hcHBseShudWxsLCBhbGxCb3VuZHMpXG4gIH07XG59O1xuY29uc3QgY2FsY3VsYXRlTG9vcEJvdW5kcyA9IGFzeW5jIGZ1bmN0aW9uKG1lc3NhZ2VzLCBhY3RvcnMsIF9tYXhXaWR0aFBlckFjdG9yLCBkaWFnT2JqKSB7XG4gIGNvbnN0IGxvb3BzID0ge307XG4gIGNvbnN0IHN0YWNrID0gW107XG4gIGxldCBjdXJyZW50LCBub3RlTW9kZWwsIG1zZ01vZGVsO1xuICBmb3IgKGNvbnN0IG1zZyBvZiBtZXNzYWdlcykge1xuICAgIG1zZy5pZCA9IHV0aWxzLnJhbmRvbSh7IGxlbmd0aDogMTAgfSk7XG4gICAgc3dpdGNoIChtc2cudHlwZSkge1xuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLkxPT1BfU1RBUlQ6XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQUxUX1NUQVJUOlxuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLk9QVF9TVEFSVDpcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5MSU5FVFlQRS5QQVJfU1RBUlQ6XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuUEFSX09WRVJfU1RBUlQ6XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQ1JJVElDQUxfU1RBUlQ6XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQlJFQUtfU1RBUlQ6XG4gICAgICAgIHN0YWNrLnB1c2goe1xuICAgICAgICAgIGlkOiBtc2cuaWQsXG4gICAgICAgICAgbXNnOiBtc2cubWVzc2FnZSxcbiAgICAgICAgICBmcm9tOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICAgICAgICB0bzogTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIsXG4gICAgICAgICAgd2lkdGg6IDBcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLkFMVF9FTFNFOlxuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLlBBUl9BTkQ6XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQ1JJVElDQUxfT1BUSU9OOlxuICAgICAgICBpZiAobXNnLm1lc3NhZ2UpIHtcbiAgICAgICAgICBjdXJyZW50ID0gc3RhY2sucG9wKCk7XG4gICAgICAgICAgbG9vcHNbY3VycmVudC5pZF0gPSBjdXJyZW50O1xuICAgICAgICAgIGxvb3BzW21zZy5pZF0gPSBjdXJyZW50O1xuICAgICAgICAgIHN0YWNrLnB1c2goY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuTE9PUF9FTkQ6XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQUxUX0VORDpcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5MSU5FVFlQRS5PUFRfRU5EOlxuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLlBBUl9FTkQ6XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQ1JJVElDQUxfRU5EOlxuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLkJSRUFLX0VORDpcbiAgICAgICAgY3VycmVudCA9IHN0YWNrLnBvcCgpO1xuICAgICAgICBsb29wc1tjdXJyZW50LmlkXSA9IGN1cnJlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBkaWFnT2JqLmRiLkxJTkVUWVBFLkFDVElWRV9TVEFSVDpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IGFjdG9yUmVjdCA9IGFjdG9yc1ttc2cuZnJvbSA/IG1zZy5mcm9tLmFjdG9yIDogbXNnLnRvLmFjdG9yXTtcbiAgICAgICAgICBjb25zdCBzdGFja2VkU2l6ZSA9IGFjdG9yQWN0aXZhdGlvbnMobXNnLmZyb20gPyBtc2cuZnJvbS5hY3RvciA6IG1zZy50by5hY3RvcikubGVuZ3RoO1xuICAgICAgICAgIGNvbnN0IHggPSBhY3RvclJlY3QueCArIGFjdG9yUmVjdC53aWR0aCAvIDIgKyAoc3RhY2tlZFNpemUgLSAxKSAqIGNvbmYuYWN0aXZhdGlvbldpZHRoIC8gMjtcbiAgICAgICAgICBjb25zdCB0b0FkZCA9IHtcbiAgICAgICAgICAgIHN0YXJ0eDogeCxcbiAgICAgICAgICAgIHN0b3B4OiB4ICsgY29uZi5hY3RpdmF0aW9uV2lkdGgsXG4gICAgICAgICAgICBhY3RvcjogbXNnLmZyb20uYWN0b3IsXG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlXG4gICAgICAgICAgfTtcbiAgICAgICAgICBib3VuZHMuYWN0aXZhdGlvbnMucHVzaCh0b0FkZCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGRpYWdPYmouZGIuTElORVRZUEUuQUNUSVZFX0VORDpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IGxhc3RBY3RvckFjdGl2YXRpb25JZHggPSBib3VuZHMuYWN0aXZhdGlvbnMubWFwKChhKSA9PiBhLmFjdG9yKS5sYXN0SW5kZXhPZihtc2cuZnJvbS5hY3Rvcik7XG4gICAgICAgICAgZGVsZXRlIGJvdW5kcy5hY3RpdmF0aW9ucy5zcGxpY2UobGFzdEFjdG9yQWN0aXZhdGlvbklkeCwgMSlbMF07XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNvbnN0IGlzTm90ZSA9IG1zZy5wbGFjZW1lbnQgIT09IHZvaWQgMDtcbiAgICBpZiAoaXNOb3RlKSB7XG4gICAgICBub3RlTW9kZWwgPSBhd2FpdCBidWlsZE5vdGVNb2RlbChtc2csIGFjdG9ycywgZGlhZ09iaik7XG4gICAgICBtc2cubm90ZU1vZGVsID0gbm90ZU1vZGVsO1xuICAgICAgc3RhY2suZm9yRWFjaCgoc3RrKSA9PiB7XG4gICAgICAgIGN1cnJlbnQgPSBzdGs7XG4gICAgICAgIGN1cnJlbnQuZnJvbSA9IGNvbW1vbi5nZXRNaW4oY3VycmVudC5mcm9tLCBub3RlTW9kZWwuc3RhcnR4KTtcbiAgICAgICAgY3VycmVudC50byA9IGNvbW1vbi5nZXRNYXgoY3VycmVudC50bywgbm90ZU1vZGVsLnN0YXJ0eCArIG5vdGVNb2RlbC53aWR0aCk7XG4gICAgICAgIGN1cnJlbnQud2lkdGggPSBjb21tb24uZ2V0TWF4KGN1cnJlbnQud2lkdGgsIE1hdGguYWJzKGN1cnJlbnQuZnJvbSAtIGN1cnJlbnQudG8pKSAtIGNvbmYubGFiZWxCb3hXaWR0aDtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBtc2dNb2RlbCA9IGJ1aWxkTWVzc2FnZU1vZGVsKG1zZywgYWN0b3JzLCBkaWFnT2JqKTtcbiAgICAgIG1zZy5tc2dNb2RlbCA9IG1zZ01vZGVsO1xuICAgICAgaWYgKG1zZ01vZGVsLnN0YXJ0eCAmJiBtc2dNb2RlbC5zdG9weCAmJiBzdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICAgIHN0YWNrLmZvckVhY2goKHN0aykgPT4ge1xuICAgICAgICAgIGN1cnJlbnQgPSBzdGs7XG4gICAgICAgICAgaWYgKG1zZ01vZGVsLnN0YXJ0eCA9PT0gbXNnTW9kZWwuc3RvcHgpIHtcbiAgICAgICAgICAgIGNvbnN0IGZyb20gPSBhY3RvcnNbbXNnLmZyb21dO1xuICAgICAgICAgICAgY29uc3QgdG8gPSBhY3RvcnNbbXNnLnRvXTtcbiAgICAgICAgICAgIGN1cnJlbnQuZnJvbSA9IGNvbW1vbi5nZXRNaW4oXG4gICAgICAgICAgICAgIGZyb20ueCAtIG1zZ01vZGVsLndpZHRoIC8gMixcbiAgICAgICAgICAgICAgZnJvbS54IC0gZnJvbS53aWR0aCAvIDIsXG4gICAgICAgICAgICAgIGN1cnJlbnQuZnJvbVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGN1cnJlbnQudG8gPSBjb21tb24uZ2V0TWF4KFxuICAgICAgICAgICAgICB0by54ICsgbXNnTW9kZWwud2lkdGggLyAyLFxuICAgICAgICAgICAgICB0by54ICsgZnJvbS53aWR0aCAvIDIsXG4gICAgICAgICAgICAgIGN1cnJlbnQudG9cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjdXJyZW50LndpZHRoID0gY29tbW9uLmdldE1heChjdXJyZW50LndpZHRoLCBNYXRoLmFicyhjdXJyZW50LnRvIC0gY3VycmVudC5mcm9tKSkgLSBjb25mLmxhYmVsQm94V2lkdGg7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnQuZnJvbSA9IGNvbW1vbi5nZXRNaW4obXNnTW9kZWwuc3RhcnR4LCBjdXJyZW50LmZyb20pO1xuICAgICAgICAgICAgY3VycmVudC50byA9IGNvbW1vbi5nZXRNYXgobXNnTW9kZWwuc3RvcHgsIGN1cnJlbnQudG8pO1xuICAgICAgICAgICAgY3VycmVudC53aWR0aCA9IGNvbW1vbi5nZXRNYXgoY3VycmVudC53aWR0aCwgbXNnTW9kZWwud2lkdGgpIC0gY29uZi5sYWJlbEJveFdpZHRoO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGJvdW5kcy5hY3RpdmF0aW9ucyA9IFtdO1xuICBsb2cuZGVidWcoXCJMb29wIHR5cGUgd2lkdGhzOlwiLCBsb29wcyk7XG4gIHJldHVybiBsb29wcztcbn07XG5jb25zdCByZW5kZXJlciA9IHtcbiAgYm91bmRzLFxuICBkcmF3QWN0b3JzLFxuICBkcmF3QWN0b3JzUG9wdXAsXG4gIHNldENvbmYsXG4gIGRyYXdcbn07XG5jb25zdCBkaWFncmFtID0ge1xuICBwYXJzZXI6IHBhcnNlciQxLFxuICBkYixcbiAgcmVuZGVyZXIsXG4gIHN0eWxlcyxcbiAgaW5pdDogKHsgd3JhcCB9KSA9PiB7XG4gICAgZGIuc2V0V3JhcCh3cmFwKTtcbiAgfVxufTtcbmV4cG9ydCB7XG4gIGRpYWdyYW1cbn07XG4iLAogICAgImltcG9ydCB7IHNlbGVjdCB9IGZyb20gXCJkM1wiO1xuaW1wb3J0IHsgZCBhcyBzYW5pdGl6ZVRleHQkMSwgYyBhcyBnZXRDb25maWcsIHggYXMgcGFyc2VHZW5lcmljVHlwZXMsIHMgYXMgc2V0QWNjVGl0bGUsIGcgYXMgZ2V0QWNjVGl0bGUsIGEgYXMgZ2V0QWNjRGVzY3JpcHRpb24sIGIgYXMgc2V0QWNjRGVzY3JpcHRpb24sIHEgYXMgc2V0RGlhZ3JhbVRpdGxlLCB0IGFzIGdldERpYWdyYW1UaXRsZSwgZSBhcyBjb21tb24sIHYgYXMgY2xlYXIkMSwgbCBhcyBsb2csIHUgYXMgdXRpbHMgfSBmcm9tIFwiLi9tZXJtYWlkLTZkYzcyOTkxLmpzXCI7XG52YXIgcGFyc2VyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBvID0gZnVuY3Rpb24oaywgdiwgbzIsIGwpIHtcbiAgICBmb3IgKG8yID0gbzIgfHwge30sIGwgPSBrLmxlbmd0aDsgbC0tOyBvMltrW2xdXSA9IHYpXG4gICAgICA7XG4gICAgcmV0dXJuIG8yO1xuICB9LCAkVjAgPSBbMSwgMTddLCAkVjEgPSBbMSwgMThdLCAkVjIgPSBbMSwgMTldLCAkVjMgPSBbMSwgMzldLCAkVjQgPSBbMSwgNDBdLCAkVjUgPSBbMSwgMjVdLCAkVjYgPSBbMSwgMjNdLCAkVjcgPSBbMSwgMjRdLCAkVjggPSBbMSwgMzFdLCAkVjkgPSBbMSwgMzJdLCAkVmEgPSBbMSwgMzNdLCAkVmIgPSBbMSwgMzRdLCAkVmMgPSBbMSwgMzVdLCAkVmQgPSBbMSwgMzZdLCAkVmUgPSBbMSwgMjZdLCAkVmYgPSBbMSwgMjddLCAkVmcgPSBbMSwgMjhdLCAkVmggPSBbMSwgMjldLCAkVmkgPSBbMSwgNDNdLCAkVmogPSBbMSwgMzBdLCAkVmsgPSBbMSwgNDJdLCAkVmwgPSBbMSwgNDRdLCAkVm0gPSBbMSwgNDFdLCAkVm4gPSBbMSwgNDVdLCAkVm8gPSBbMSwgOV0sICRWcCA9IFsxLCA4LCA5XSwgJFZxID0gWzEsIDU2XSwgJFZyID0gWzEsIDU3XSwgJFZzID0gWzEsIDU4XSwgJFZ0ID0gWzEsIDU5XSwgJFZ1ID0gWzEsIDYwXSwgJFZ2ID0gWzEsIDYxXSwgJFZ3ID0gWzEsIDYyXSwgJFZ4ID0gWzEsIDgsIDksIDM5XSwgJFZ5ID0gWzEsIDc0XSwgJFZ6ID0gWzEsIDgsIDksIDEyLCAxMywgMjEsIDM3LCAzOSwgNDIsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA3MCwgNzJdLCAkVkEgPSBbMSwgOCwgOSwgMTIsIDEzLCAxOSwgMjEsIDM3LCAzOSwgNDIsIDQ2LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNzAsIDcyLCA3NCwgODAsIDk1LCA5NywgOThdLCAkVkIgPSBbMTMsIDc0LCA4MCwgOTUsIDk3LCA5OF0sICRWQyA9IFsxMywgNjQsIDY1LCA3NCwgODAsIDk1LCA5NywgOThdLCAkVkQgPSBbMTMsIDU5LCA2MCwgNjEsIDYyLCA2MywgNzQsIDgwLCA5NSwgOTcsIDk4XSwgJFZFID0gWzEsIDkzXSwgJFZGID0gWzEsIDExMF0sICRWRyA9IFsxLCAxMDhdLCAkVkggPSBbMSwgMTAyXSwgJFZJID0gWzEsIDEwM10sICRWSiA9IFsxLCAxMDRdLCAkVksgPSBbMSwgMTA1XSwgJFZMID0gWzEsIDEwNl0sICRWTSA9IFsxLCAxMDddLCAkVk4gPSBbMSwgMTA5XSwgJFZPID0gWzEsIDgsIDksIDM3LCAzOSwgNDJdLCAkVlAgPSBbMSwgOCwgOSwgMjFdLCAkVlEgPSBbMSwgOCwgOSwgNzhdLCAkVlIgPSBbMSwgOCwgOSwgMjEsIDczLCA3NCwgNzgsIDgwLCA4MSwgODIsIDgzLCA4NCwgODVdO1xuICB2YXIgcGFyc2VyMiA9IHtcbiAgICB0cmFjZTogZnVuY3Rpb24gdHJhY2UoKSB7XG4gICAgfSxcbiAgICB5eToge30sXG4gICAgc3ltYm9sc186IHsgXCJlcnJvclwiOiAyLCBcInN0YXJ0XCI6IDMsIFwibWVybWFpZERvY1wiOiA0LCBcInN0YXRlbWVudHNcIjogNSwgXCJncmFwaENvbmZpZ1wiOiA2LCBcIkNMQVNTX0RJQUdSQU1cIjogNywgXCJORVdMSU5FXCI6IDgsIFwiRU9GXCI6IDksIFwic3RhdGVtZW50XCI6IDEwLCBcImNsYXNzTGFiZWxcIjogMTEsIFwiU1FTXCI6IDEyLCBcIlNUUlwiOiAxMywgXCJTUUVcIjogMTQsIFwibmFtZXNwYWNlTmFtZVwiOiAxNSwgXCJhbHBoYU51bVRva2VuXCI6IDE2LCBcImNsYXNzTmFtZVwiOiAxNywgXCJjbGFzc0xpdGVyYWxOYW1lXCI6IDE4LCBcIkdFTkVSSUNUWVBFXCI6IDE5LCBcInJlbGF0aW9uU3RhdGVtZW50XCI6IDIwLCBcIkxBQkVMXCI6IDIxLCBcIm5hbWVzcGFjZVN0YXRlbWVudFwiOiAyMiwgXCJjbGFzc1N0YXRlbWVudFwiOiAyMywgXCJtZW1iZXJTdGF0ZW1lbnRcIjogMjQsIFwiYW5ub3RhdGlvblN0YXRlbWVudFwiOiAyNSwgXCJjbGlja1N0YXRlbWVudFwiOiAyNiwgXCJzdHlsZVN0YXRlbWVudFwiOiAyNywgXCJjc3NDbGFzc1N0YXRlbWVudFwiOiAyOCwgXCJub3RlU3RhdGVtZW50XCI6IDI5LCBcImRpcmVjdGlvblwiOiAzMCwgXCJhY2NfdGl0bGVcIjogMzEsIFwiYWNjX3RpdGxlX3ZhbHVlXCI6IDMyLCBcImFjY19kZXNjclwiOiAzMywgXCJhY2NfZGVzY3JfdmFsdWVcIjogMzQsIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiOiAzNSwgXCJuYW1lc3BhY2VJZGVudGlmaWVyXCI6IDM2LCBcIlNUUlVDVF9TVEFSVFwiOiAzNywgXCJjbGFzc1N0YXRlbWVudHNcIjogMzgsIFwiU1RSVUNUX1NUT1BcIjogMzksIFwiTkFNRVNQQUNFXCI6IDQwLCBcImNsYXNzSWRlbnRpZmllclwiOiA0MSwgXCJTVFlMRV9TRVBBUkFUT1JcIjogNDIsIFwibWVtYmVyc1wiOiA0MywgXCJDTEFTU1wiOiA0NCwgXCJBTk5PVEFUSU9OX1NUQVJUXCI6IDQ1LCBcIkFOTk9UQVRJT05fRU5EXCI6IDQ2LCBcIk1FTUJFUlwiOiA0NywgXCJTRVBBUkFUT1JcIjogNDgsIFwicmVsYXRpb25cIjogNDksIFwiTk9URV9GT1JcIjogNTAsIFwibm90ZVRleHRcIjogNTEsIFwiTk9URVwiOiA1MiwgXCJkaXJlY3Rpb25fdGJcIjogNTMsIFwiZGlyZWN0aW9uX2J0XCI6IDU0LCBcImRpcmVjdGlvbl9ybFwiOiA1NSwgXCJkaXJlY3Rpb25fbHJcIjogNTYsIFwicmVsYXRpb25UeXBlXCI6IDU3LCBcImxpbmVUeXBlXCI6IDU4LCBcIkFHR1JFR0FUSU9OXCI6IDU5LCBcIkVYVEVOU0lPTlwiOiA2MCwgXCJDT01QT1NJVElPTlwiOiA2MSwgXCJERVBFTkRFTkNZXCI6IDYyLCBcIkxPTExJUE9QXCI6IDYzLCBcIkxJTkVcIjogNjQsIFwiRE9UVEVEX0xJTkVcIjogNjUsIFwiQ0FMTEJBQ0tcIjogNjYsIFwiTElOS1wiOiA2NywgXCJMSU5LX1RBUkdFVFwiOiA2OCwgXCJDTElDS1wiOiA2OSwgXCJDQUxMQkFDS19OQU1FXCI6IDcwLCBcIkNBTExCQUNLX0FSR1NcIjogNzEsIFwiSFJFRlwiOiA3MiwgXCJTVFlMRVwiOiA3MywgXCJBTFBIQVwiOiA3NCwgXCJzdHlsZXNPcHRcIjogNzUsIFwiQ1NTQ0xBU1NcIjogNzYsIFwic3R5bGVcIjogNzcsIFwiQ09NTUFcIjogNzgsIFwic3R5bGVDb21wb25lbnRcIjogNzksIFwiTlVNXCI6IDgwLCBcIkNPTE9OXCI6IDgxLCBcIlVOSVRcIjogODIsIFwiU1BBQ0VcIjogODMsIFwiQlJLVFwiOiA4NCwgXCJQQ1RcIjogODUsIFwiY29tbWVudFRva2VuXCI6IDg2LCBcInRleHRUb2tlblwiOiA4NywgXCJncmFwaENvZGVUb2tlbnNcIjogODgsIFwidGV4dE5vVGFnc1Rva2VuXCI6IDg5LCBcIlRBR1NUQVJUXCI6IDkwLCBcIlRBR0VORFwiOiA5MSwgXCI9PVwiOiA5MiwgXCItLVwiOiA5MywgXCJERUZBVUxUXCI6IDk0LCBcIk1JTlVTXCI6IDk1LCBcImtleXdvcmRzXCI6IDk2LCBcIlVOSUNPREVfVEVYVFwiOiA5NywgXCJCUVVPVEVfU1RSXCI6IDk4LCBcIiRhY2NlcHRcIjogMCwgXCIkZW5kXCI6IDEgfSxcbiAgICB0ZXJtaW5hbHNfOiB7IDI6IFwiZXJyb3JcIiwgNzogXCJDTEFTU19ESUFHUkFNXCIsIDg6IFwiTkVXTElORVwiLCA5OiBcIkVPRlwiLCAxMjogXCJTUVNcIiwgMTM6IFwiU1RSXCIsIDE0OiBcIlNRRVwiLCAxOTogXCJHRU5FUklDVFlQRVwiLCAyMTogXCJMQUJFTFwiLCAzMTogXCJhY2NfdGl0bGVcIiwgMzI6IFwiYWNjX3RpdGxlX3ZhbHVlXCIsIDMzOiBcImFjY19kZXNjclwiLCAzNDogXCJhY2NfZGVzY3JfdmFsdWVcIiwgMzU6IFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiLCAzNzogXCJTVFJVQ1RfU1RBUlRcIiwgMzk6IFwiU1RSVUNUX1NUT1BcIiwgNDA6IFwiTkFNRVNQQUNFXCIsIDQyOiBcIlNUWUxFX1NFUEFSQVRPUlwiLCA0NDogXCJDTEFTU1wiLCA0NTogXCJBTk5PVEFUSU9OX1NUQVJUXCIsIDQ2OiBcIkFOTk9UQVRJT05fRU5EXCIsIDQ3OiBcIk1FTUJFUlwiLCA0ODogXCJTRVBBUkFUT1JcIiwgNTA6IFwiTk9URV9GT1JcIiwgNTI6IFwiTk9URVwiLCA1MzogXCJkaXJlY3Rpb25fdGJcIiwgNTQ6IFwiZGlyZWN0aW9uX2J0XCIsIDU1OiBcImRpcmVjdGlvbl9ybFwiLCA1NjogXCJkaXJlY3Rpb25fbHJcIiwgNTk6IFwiQUdHUkVHQVRJT05cIiwgNjA6IFwiRVhURU5TSU9OXCIsIDYxOiBcIkNPTVBPU0lUSU9OXCIsIDYyOiBcIkRFUEVOREVOQ1lcIiwgNjM6IFwiTE9MTElQT1BcIiwgNjQ6IFwiTElORVwiLCA2NTogXCJET1RURURfTElORVwiLCA2NjogXCJDQUxMQkFDS1wiLCA2NzogXCJMSU5LXCIsIDY4OiBcIkxJTktfVEFSR0VUXCIsIDY5OiBcIkNMSUNLXCIsIDcwOiBcIkNBTExCQUNLX05BTUVcIiwgNzE6IFwiQ0FMTEJBQ0tfQVJHU1wiLCA3MjogXCJIUkVGXCIsIDczOiBcIlNUWUxFXCIsIDc0OiBcIkFMUEhBXCIsIDc2OiBcIkNTU0NMQVNTXCIsIDc4OiBcIkNPTU1BXCIsIDgwOiBcIk5VTVwiLCA4MTogXCJDT0xPTlwiLCA4MjogXCJVTklUXCIsIDgzOiBcIlNQQUNFXCIsIDg0OiBcIkJSS1RcIiwgODU6IFwiUENUXCIsIDg4OiBcImdyYXBoQ29kZVRva2Vuc1wiLCA5MDogXCJUQUdTVEFSVFwiLCA5MTogXCJUQUdFTkRcIiwgOTI6IFwiPT1cIiwgOTM6IFwiLS1cIiwgOTQ6IFwiREVGQVVMVFwiLCA5NTogXCJNSU5VU1wiLCA5NjogXCJrZXl3b3Jkc1wiLCA5NzogXCJVTklDT0RFX1RFWFRcIiwgOTg6IFwiQlFVT1RFX1NUUlwiIH0sXG4gICAgcHJvZHVjdGlvbnNfOiBbMCwgWzMsIDFdLCBbMywgMV0sIFs0LCAxXSwgWzYsIDRdLCBbNSwgMV0sIFs1LCAyXSwgWzUsIDNdLCBbMTEsIDNdLCBbMTUsIDFdLCBbMTUsIDJdLCBbMTcsIDFdLCBbMTcsIDFdLCBbMTcsIDJdLCBbMTcsIDJdLCBbMTcsIDJdLCBbMTAsIDFdLCBbMTAsIDJdLCBbMTAsIDFdLCBbMTAsIDFdLCBbMTAsIDFdLCBbMTAsIDFdLCBbMTAsIDFdLCBbMTAsIDFdLCBbMTAsIDFdLCBbMTAsIDFdLCBbMTAsIDFdLCBbMTAsIDJdLCBbMTAsIDJdLCBbMTAsIDFdLCBbMjIsIDRdLCBbMjIsIDVdLCBbMzYsIDJdLCBbMzgsIDFdLCBbMzgsIDJdLCBbMzgsIDNdLCBbMjMsIDFdLCBbMjMsIDNdLCBbMjMsIDRdLCBbMjMsIDZdLCBbNDEsIDJdLCBbNDEsIDNdLCBbMjUsIDRdLCBbNDMsIDFdLCBbNDMsIDJdLCBbMjQsIDFdLCBbMjQsIDJdLCBbMjQsIDFdLCBbMjQsIDFdLCBbMjAsIDNdLCBbMjAsIDRdLCBbMjAsIDRdLCBbMjAsIDVdLCBbMjksIDNdLCBbMjksIDJdLCBbMzAsIDFdLCBbMzAsIDFdLCBbMzAsIDFdLCBbMzAsIDFdLCBbNDksIDNdLCBbNDksIDJdLCBbNDksIDJdLCBbNDksIDFdLCBbNTcsIDFdLCBbNTcsIDFdLCBbNTcsIDFdLCBbNTcsIDFdLCBbNTcsIDFdLCBbNTgsIDFdLCBbNTgsIDFdLCBbMjYsIDNdLCBbMjYsIDRdLCBbMjYsIDNdLCBbMjYsIDRdLCBbMjYsIDRdLCBbMjYsIDVdLCBbMjYsIDNdLCBbMjYsIDRdLCBbMjYsIDRdLCBbMjYsIDVdLCBbMjYsIDRdLCBbMjYsIDVdLCBbMjYsIDVdLCBbMjYsIDZdLCBbMjcsIDNdLCBbMjgsIDNdLCBbNzUsIDFdLCBbNzUsIDNdLCBbNzcsIDFdLCBbNzcsIDJdLCBbNzksIDFdLCBbNzksIDFdLCBbNzksIDFdLCBbNzksIDFdLCBbNzksIDFdLCBbNzksIDFdLCBbNzksIDFdLCBbNzksIDFdLCBbNzksIDFdLCBbODYsIDFdLCBbODYsIDFdLCBbODcsIDFdLCBbODcsIDFdLCBbODcsIDFdLCBbODcsIDFdLCBbODcsIDFdLCBbODcsIDFdLCBbODcsIDFdLCBbODksIDFdLCBbODksIDFdLCBbODksIDFdLCBbODksIDFdLCBbMTYsIDFdLCBbMTYsIDFdLCBbMTYsIDFdLCBbMTYsIDFdLCBbMTgsIDFdLCBbNTEsIDFdXSxcbiAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXl0ZXh0LCB5eWxlbmcsIHl5bGluZW5vLCB5eSwgeXlzdGF0ZSwgJCQsIF8kKSB7XG4gICAgICB2YXIgJDAgPSAkJC5sZW5ndGggLSAxO1xuICAgICAgc3dpdGNoICh5eXN0YXRlKSB7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDk6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEwOlxuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV0gKyAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTQ6XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXSArIFwiflwiICsgJCRbJDBdICsgXCJ+XCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgeXkuYWRkUmVsYXRpb24oJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNzpcbiAgICAgICAgICAkJFskMCAtIDFdLnRpdGxlID0geXkuY2xlYW51cExhYmVsKCQkWyQwXSk7XG4gICAgICAgICAgeXkuYWRkUmVsYXRpb24oJCRbJDAgLSAxXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5zZXRBY2NUaXRsZSh0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI4OlxuICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS50cmltKCk7XG4gICAgICAgICAgeXkuc2V0QWNjRGVzY3JpcHRpb24odGhpcy4kKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICB5eS5hZGRDbGFzc2VzVG9OYW1lc3BhY2UoJCRbJDAgLSAzXSwgJCRbJDAgLSAxXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgeXkuYWRkQ2xhc3Nlc1RvTmFtZXNwYWNlKCQkWyQwIC0gNF0sICQkWyQwIC0gMV0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICB5eS5hZGROYW1lc3BhY2UoJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMzpcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDBdXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDAgLSAxXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzU6XG4gICAgICAgICAgJCRbJDBdLnVuc2hpZnQoJCRbJDAgLSAyXSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM3OlxuICAgICAgICAgIHl5LnNldENzc0NsYXNzKCQkWyQwIC0gMl0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzg6XG4gICAgICAgICAgeXkuYWRkTWVtYmVycygkJFskMCAtIDNdLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOTpcbiAgICAgICAgICB5eS5zZXRDc3NDbGFzcygkJFskMCAtIDVdLCAkJFskMCAtIDNdKTtcbiAgICAgICAgICB5eS5hZGRNZW1iZXJzKCQkWyQwIC0gNV0sICQkWyQwIC0gMV0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQwOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICB5eS5hZGRDbGFzcygkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQxOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgeXkuYWRkQ2xhc3MoJCRbJDAgLSAxXSk7XG4gICAgICAgICAgeXkuc2V0Q2xhc3NMYWJlbCgkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQyOlxuICAgICAgICAgIHl5LmFkZEFubm90YXRpb24oJCRbJDBdLCAkJFskMCAtIDJdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MzpcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDBdXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NDpcbiAgICAgICAgICAkJFskMF0ucHVzaCgkJFskMCAtIDFdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDU6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDY6XG4gICAgICAgICAgeXkuYWRkTWVtYmVyKCQkWyQwIC0gMV0sIHl5LmNsZWFudXBMYWJlbCgkJFskMF0pKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0NzpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0ODpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OTpcbiAgICAgICAgICB0aGlzLiQgPSB7IFwiaWQxXCI6ICQkWyQwIC0gMl0sIFwiaWQyXCI6ICQkWyQwXSwgcmVsYXRpb246ICQkWyQwIC0gMV0sIHJlbGF0aW9uVGl0bGUxOiBcIm5vbmVcIiwgcmVsYXRpb25UaXRsZTI6IFwibm9uZVwiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTA6XG4gICAgICAgICAgdGhpcy4kID0geyBpZDE6ICQkWyQwIC0gM10sIGlkMjogJCRbJDBdLCByZWxhdGlvbjogJCRbJDAgLSAxXSwgcmVsYXRpb25UaXRsZTE6ICQkWyQwIC0gMl0sIHJlbGF0aW9uVGl0bGUyOiBcIm5vbmVcIiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDUxOlxuICAgICAgICAgIHRoaXMuJCA9IHsgaWQxOiAkJFskMCAtIDNdLCBpZDI6ICQkWyQwXSwgcmVsYXRpb246ICQkWyQwIC0gMl0sIHJlbGF0aW9uVGl0bGUxOiBcIm5vbmVcIiwgcmVsYXRpb25UaXRsZTI6ICQkWyQwIC0gMV0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1MjpcbiAgICAgICAgICB0aGlzLiQgPSB7IGlkMTogJCRbJDAgLSA0XSwgaWQyOiAkJFskMF0sIHJlbGF0aW9uOiAkJFskMCAtIDJdLCByZWxhdGlvblRpdGxlMTogJCRbJDAgLSAzXSwgcmVsYXRpb25UaXRsZTI6ICQkWyQwIC0gMV0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1MzpcbiAgICAgICAgICB5eS5hZGROb3RlKCQkWyQwXSwgJCRbJDAgLSAxXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTQ6XG4gICAgICAgICAgeXkuYWRkTm90ZSgkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU1OlxuICAgICAgICAgIHl5LnNldERpcmVjdGlvbihcIlRCXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU2OlxuICAgICAgICAgIHl5LnNldERpcmVjdGlvbihcIkJUXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU3OlxuICAgICAgICAgIHl5LnNldERpcmVjdGlvbihcIlJMXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU4OlxuICAgICAgICAgIHl5LnNldERpcmVjdGlvbihcIkxSXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU5OlxuICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTE6ICQkWyQwIC0gMl0sIHR5cGUyOiAkJFskMF0sIGxpbmVUeXBlOiAkJFskMCAtIDFdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjA6XG4gICAgICAgICAgdGhpcy4kID0geyB0eXBlMTogXCJub25lXCIsIHR5cGUyOiAkJFskMF0sIGxpbmVUeXBlOiAkJFskMCAtIDFdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjE6XG4gICAgICAgICAgdGhpcy4kID0geyB0eXBlMTogJCRbJDAgLSAxXSwgdHlwZTI6IFwibm9uZVwiLCBsaW5lVHlwZTogJCRbJDBdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjI6XG4gICAgICAgICAgdGhpcy4kID0geyB0eXBlMTogXCJub25lXCIsIHR5cGUyOiBcIm5vbmVcIiwgbGluZVR5cGU6ICQkWyQwXSB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDYzOlxuICAgICAgICAgIHRoaXMuJCA9IHl5LnJlbGF0aW9uVHlwZS5BR0dSRUdBVElPTjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2NDpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5yZWxhdGlvblR5cGUuRVhURU5TSU9OO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY1OlxuICAgICAgICAgIHRoaXMuJCA9IHl5LnJlbGF0aW9uVHlwZS5DT01QT1NJVElPTjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2NjpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5yZWxhdGlvblR5cGUuREVQRU5ERU5DWTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2NzpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5yZWxhdGlvblR5cGUuTE9MTElQT1A7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjg6XG4gICAgICAgICAgdGhpcy4kID0geXkubGluZVR5cGUuTElORTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2OTpcbiAgICAgICAgICB0aGlzLiQgPSB5eS5saW5lVHlwZS5ET1RURURfTElORTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3MDpcbiAgICAgICAgY2FzZSA3NjpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDJdO1xuICAgICAgICAgIHl5LnNldENsaWNrRXZlbnQoJCRbJDAgLSAxXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3MTpcbiAgICAgICAgY2FzZSA3NzpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDNdO1xuICAgICAgICAgIHl5LnNldENsaWNrRXZlbnQoJCRbJDAgLSAyXSwgJCRbJDAgLSAxXSk7XG4gICAgICAgICAgeXkuc2V0VG9vbHRpcCgkJFskMCAtIDJdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDcyOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMl07XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDczOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDJdLCAkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDc0OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDJdLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICB5eS5zZXRUb29sdGlwKCQkWyQwIC0gMl0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzU6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSA0XTtcbiAgICAgICAgICB5eS5zZXRMaW5rKCQkWyQwIC0gM10sICQkWyQwIC0gMl0sICQkWyQwXSk7XG4gICAgICAgICAgeXkuc2V0VG9vbHRpcCgkJFskMCAtIDNdLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3ODpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDNdO1xuICAgICAgICAgIHl5LnNldENsaWNrRXZlbnQoJCRbJDAgLSAyXSwgJCRbJDAgLSAxXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3OTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDRdO1xuICAgICAgICAgIHl5LnNldENsaWNrRXZlbnQoJCRbJDAgLSAzXSwgJCRbJDAgLSAyXSwgJCRbJDAgLSAxXSk7XG4gICAgICAgICAgeXkuc2V0VG9vbHRpcCgkJFskMCAtIDNdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDgwOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gM107XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDJdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDgxOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gNF07XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDNdLCAkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDgyOlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gNF07XG4gICAgICAgICAgeXkuc2V0TGluaygkJFskMCAtIDNdLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICB5eS5zZXRUb29sdGlwKCQkWyQwIC0gM10sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODM6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSA1XTtcbiAgICAgICAgICB5eS5zZXRMaW5rKCQkWyQwIC0gNF0sICQkWyQwIC0gMl0sICQkWyQwXSk7XG4gICAgICAgICAgeXkuc2V0VG9vbHRpcCgkJFskMCAtIDRdLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4NDpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDJdO1xuICAgICAgICAgIHl5LnNldENzc1N0eWxlKCQkWyQwIC0gMV0sICQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODU6XG4gICAgICAgICAgeXkuc2V0Q3NzQ2xhc3MoJCRbJDAgLSAxXSwgJCRbJDBdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4NjpcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDBdXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4NzpcbiAgICAgICAgICAkJFskMCAtIDJdLnB1c2goJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDJdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg5OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV0gKyAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSxcbiAgICB0YWJsZTogW3sgMzogMSwgNDogMiwgNTogMywgNjogNCwgNzogWzEsIDZdLCAxMDogNSwgMTY6IDM3LCAxNzogMjAsIDE4OiAzOCwgMjA6IDcsIDIyOiA4LCAyMzogOSwgMjQ6IDEwLCAyNTogMTEsIDI2OiAxMiwgMjc6IDEzLCAyODogMTQsIDI5OiAxNSwgMzA6IDE2LCAzMTogJFYwLCAzMzogJFYxLCAzNTogJFYyLCAzNjogMjEsIDQwOiAkVjMsIDQxOiAyMiwgNDQ6ICRWNCwgNDU6ICRWNSwgNDc6ICRWNiwgNDg6ICRWNywgNTA6ICRWOCwgNTI6ICRWOSwgNTM6ICRWYSwgNTQ6ICRWYiwgNTU6ICRWYywgNTY6ICRWZCwgNjY6ICRWZSwgNjc6ICRWZiwgNjk6ICRWZywgNzM6ICRWaCwgNzQ6ICRWaSwgNzY6ICRWaiwgODA6ICRWaywgOTU6ICRWbCwgOTc6ICRWbSwgOTg6ICRWbiB9LCB7IDE6IFszXSB9LCB7IDE6IFsyLCAxXSB9LCB7IDE6IFsyLCAyXSB9LCB7IDE6IFsyLCAzXSB9LCBvKCRWbywgWzIsIDVdLCB7IDg6IFsxLCA0Nl0gfSksIHsgODogWzEsIDQ3XSB9LCBvKCRWcCwgWzIsIDE2XSwgeyAyMTogWzEsIDQ4XSB9KSwgbygkVnAsIFsyLCAxOF0pLCBvKCRWcCwgWzIsIDE5XSksIG8oJFZwLCBbMiwgMjBdKSwgbygkVnAsIFsyLCAyMV0pLCBvKCRWcCwgWzIsIDIyXSksIG8oJFZwLCBbMiwgMjNdKSwgbygkVnAsIFsyLCAyNF0pLCBvKCRWcCwgWzIsIDI1XSksIG8oJFZwLCBbMiwgMjZdKSwgeyAzMjogWzEsIDQ5XSB9LCB7IDM0OiBbMSwgNTBdIH0sIG8oJFZwLCBbMiwgMjldKSwgbygkVnAsIFsyLCA0NV0sIHsgNDk6IDUxLCA1NzogNTQsIDU4OiA1NSwgMTM6IFsxLCA1Ml0sIDIxOiBbMSwgNTNdLCA1OTogJFZxLCA2MDogJFZyLCA2MTogJFZzLCA2MjogJFZ0LCA2MzogJFZ1LCA2NDogJFZ2LCA2NTogJFZ3IH0pLCB7IDM3OiBbMSwgNjNdIH0sIG8oJFZ4LCBbMiwgMzZdLCB7IDM3OiBbMSwgNjVdLCA0MjogWzEsIDY0XSB9KSwgbygkVnAsIFsyLCA0N10pLCBvKCRWcCwgWzIsIDQ4XSksIHsgMTY6IDY2LCA3NDogJFZpLCA4MDogJFZrLCA5NTogJFZsLCA5NzogJFZtIH0sIHsgMTY6IDM3LCAxNzogNjcsIDE4OiAzOCwgNzQ6ICRWaSwgODA6ICRWaywgOTU6ICRWbCwgOTc6ICRWbSwgOTg6ICRWbiB9LCB7IDE2OiAzNywgMTc6IDY4LCAxODogMzgsIDc0OiAkVmksIDgwOiAkVmssIDk1OiAkVmwsIDk3OiAkVm0sIDk4OiAkVm4gfSwgeyAxNjogMzcsIDE3OiA2OSwgMTg6IDM4LCA3NDogJFZpLCA4MDogJFZrLCA5NTogJFZsLCA5NzogJFZtLCA5ODogJFZuIH0sIHsgNzQ6IFsxLCA3MF0gfSwgeyAxMzogWzEsIDcxXSB9LCB7IDE2OiAzNywgMTc6IDcyLCAxODogMzgsIDc0OiAkVmksIDgwOiAkVmssIDk1OiAkVmwsIDk3OiAkVm0sIDk4OiAkVm4gfSwgeyAxMzogJFZ5LCA1MTogNzMgfSwgbygkVnAsIFsyLCA1NV0pLCBvKCRWcCwgWzIsIDU2XSksIG8oJFZwLCBbMiwgNTddKSwgbygkVnAsIFsyLCA1OF0pLCBvKCRWeiwgWzIsIDExXSwgeyAxNjogMzcsIDE4OiAzOCwgMTc6IDc1LCAxOTogWzEsIDc2XSwgNzQ6ICRWaSwgODA6ICRWaywgOTU6ICRWbCwgOTc6ICRWbSwgOTg6ICRWbiB9KSwgbygkVnosIFsyLCAxMl0sIHsgMTk6IFsxLCA3N10gfSksIHsgMTU6IDc4LCAxNjogNzksIDc0OiAkVmksIDgwOiAkVmssIDk1OiAkVmwsIDk3OiAkVm0gfSwgeyAxNjogMzcsIDE3OiA4MCwgMTg6IDM4LCA3NDogJFZpLCA4MDogJFZrLCA5NTogJFZsLCA5NzogJFZtLCA5ODogJFZuIH0sIG8oJFZBLCBbMiwgMTEyXSksIG8oJFZBLCBbMiwgMTEzXSksIG8oJFZBLCBbMiwgMTE0XSksIG8oJFZBLCBbMiwgMTE1XSksIG8oWzEsIDgsIDksIDEyLCAxMywgMTksIDIxLCAzNywgMzksIDQyLCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNzAsIDcyXSwgWzIsIDExNl0pLCBvKCRWbywgWzIsIDZdLCB7IDEwOiA1LCAyMDogNywgMjI6IDgsIDIzOiA5LCAyNDogMTAsIDI1OiAxMSwgMjY6IDEyLCAyNzogMTMsIDI4OiAxNCwgMjk6IDE1LCAzMDogMTYsIDE3OiAyMCwgMzY6IDIxLCA0MTogMjIsIDE2OiAzNywgMTg6IDM4LCA1OiA4MSwgMzE6ICRWMCwgMzM6ICRWMSwgMzU6ICRWMiwgNDA6ICRWMywgNDQ6ICRWNCwgNDU6ICRWNSwgNDc6ICRWNiwgNDg6ICRWNywgNTA6ICRWOCwgNTI6ICRWOSwgNTM6ICRWYSwgNTQ6ICRWYiwgNTU6ICRWYywgNTY6ICRWZCwgNjY6ICRWZSwgNjc6ICRWZiwgNjk6ICRWZywgNzM6ICRWaCwgNzQ6ICRWaSwgNzY6ICRWaiwgODA6ICRWaywgOTU6ICRWbCwgOTc6ICRWbSwgOTg6ICRWbiB9KSwgeyA1OiA4MiwgMTA6IDUsIDE2OiAzNywgMTc6IDIwLCAxODogMzgsIDIwOiA3LCAyMjogOCwgMjM6IDksIDI0OiAxMCwgMjU6IDExLCAyNjogMTIsIDI3OiAxMywgMjg6IDE0LCAyOTogMTUsIDMwOiAxNiwgMzE6ICRWMCwgMzM6ICRWMSwgMzU6ICRWMiwgMzY6IDIxLCA0MDogJFYzLCA0MTogMjIsIDQ0OiAkVjQsIDQ1OiAkVjUsIDQ3OiAkVjYsIDQ4OiAkVjcsIDUwOiAkVjgsIDUyOiAkVjksIDUzOiAkVmEsIDU0OiAkVmIsIDU1OiAkVmMsIDU2OiAkVmQsIDY2OiAkVmUsIDY3OiAkVmYsIDY5OiAkVmcsIDczOiAkVmgsIDc0OiAkVmksIDc2OiAkVmosIDgwOiAkVmssIDk1OiAkVmwsIDk3OiAkVm0sIDk4OiAkVm4gfSwgbygkVnAsIFsyLCAxN10pLCBvKCRWcCwgWzIsIDI3XSksIG8oJFZwLCBbMiwgMjhdKSwgeyAxMzogWzEsIDg0XSwgMTY6IDM3LCAxNzogODMsIDE4OiAzOCwgNzQ6ICRWaSwgODA6ICRWaywgOTU6ICRWbCwgOTc6ICRWbSwgOTg6ICRWbiB9LCB7IDQ5OiA4NSwgNTc6IDU0LCA1ODogNTUsIDU5OiAkVnEsIDYwOiAkVnIsIDYxOiAkVnMsIDYyOiAkVnQsIDYzOiAkVnUsIDY0OiAkVnYsIDY1OiAkVncgfSwgbygkVnAsIFsyLCA0Nl0pLCB7IDU4OiA4NiwgNjQ6ICRWdiwgNjU6ICRWdyB9LCBvKCRWQiwgWzIsIDYyXSwgeyA1NzogODcsIDU5OiAkVnEsIDYwOiAkVnIsIDYxOiAkVnMsIDYyOiAkVnQsIDYzOiAkVnUgfSksIG8oJFZDLCBbMiwgNjNdKSwgbygkVkMsIFsyLCA2NF0pLCBvKCRWQywgWzIsIDY1XSksIG8oJFZDLCBbMiwgNjZdKSwgbygkVkMsIFsyLCA2N10pLCBvKCRWRCwgWzIsIDY4XSksIG8oJFZELCBbMiwgNjldKSwgeyA4OiBbMSwgODldLCAyMzogOTAsIDM4OiA4OCwgNDE6IDIyLCA0NDogJFY0IH0sIHsgMTY6IDkxLCA3NDogJFZpLCA4MDogJFZrLCA5NTogJFZsLCA5NzogJFZtIH0sIHsgNDM6IDkyLCA0NzogJFZFIH0sIHsgNDY6IFsxLCA5NF0gfSwgeyAxMzogWzEsIDk1XSB9LCB7IDEzOiBbMSwgOTZdIH0sIHsgNzA6IFsxLCA5N10sIDcyOiBbMSwgOThdIH0sIHsgMjE6ICRWRiwgNzM6ICRWRywgNzQ6ICRWSCwgNzU6IDk5LCA3NzogMTAwLCA3OTogMTAxLCA4MDogJFZJLCA4MTogJFZKLCA4MjogJFZLLCA4MzogJFZMLCA4NDogJFZNLCA4NTogJFZOIH0sIHsgNzQ6IFsxLCAxMTFdIH0sIHsgMTM6ICRWeSwgNTE6IDExMiB9LCBvKCRWcCwgWzIsIDU0XSksIG8oJFZwLCBbMiwgMTE3XSksIG8oJFZ6LCBbMiwgMTNdKSwgbygkVnosIFsyLCAxNF0pLCBvKCRWeiwgWzIsIDE1XSksIHsgMzc6IFsyLCAzMl0gfSwgeyAxNTogMTEzLCAxNjogNzksIDM3OiBbMiwgOV0sIDc0OiAkVmksIDgwOiAkVmssIDk1OiAkVmwsIDk3OiAkVm0gfSwgbygkVk8sIFsyLCA0MF0sIHsgMTE6IDExNCwgMTI6IFsxLCAxMTVdIH0pLCBvKCRWbywgWzIsIDddKSwgeyA5OiBbMSwgMTE2XSB9LCBvKCRWUCwgWzIsIDQ5XSksIHsgMTY6IDM3LCAxNzogMTE3LCAxODogMzgsIDc0OiAkVmksIDgwOiAkVmssIDk1OiAkVmwsIDk3OiAkVm0sIDk4OiAkVm4gfSwgeyAxMzogWzEsIDExOV0sIDE2OiAzNywgMTc6IDExOCwgMTg6IDM4LCA3NDogJFZpLCA4MDogJFZrLCA5NTogJFZsLCA5NzogJFZtLCA5ODogJFZuIH0sIG8oJFZCLCBbMiwgNjFdLCB7IDU3OiAxMjAsIDU5OiAkVnEsIDYwOiAkVnIsIDYxOiAkVnMsIDYyOiAkVnQsIDYzOiAkVnUgfSksIG8oJFZCLCBbMiwgNjBdKSwgeyAzOTogWzEsIDEyMV0gfSwgeyAyMzogOTAsIDM4OiAxMjIsIDQxOiAyMiwgNDQ6ICRWNCB9LCB7IDg6IFsxLCAxMjNdLCAzOTogWzIsIDMzXSB9LCBvKCRWeCwgWzIsIDM3XSwgeyAzNzogWzEsIDEyNF0gfSksIHsgMzk6IFsxLCAxMjVdIH0sIHsgMzk6IFsyLCA0M10sIDQzOiAxMjYsIDQ3OiAkVkUgfSwgeyAxNjogMzcsIDE3OiAxMjcsIDE4OiAzOCwgNzQ6ICRWaSwgODA6ICRWaywgOTU6ICRWbCwgOTc6ICRWbSwgOTg6ICRWbiB9LCBvKCRWcCwgWzIsIDcwXSwgeyAxMzogWzEsIDEyOF0gfSksIG8oJFZwLCBbMiwgNzJdLCB7IDEzOiBbMSwgMTMwXSwgNjg6IFsxLCAxMjldIH0pLCBvKCRWcCwgWzIsIDc2XSwgeyAxMzogWzEsIDEzMV0sIDcxOiBbMSwgMTMyXSB9KSwgeyAxMzogWzEsIDEzM10gfSwgbygkVnAsIFsyLCA4NF0sIHsgNzg6IFsxLCAxMzRdIH0pLCBvKCRWUSwgWzIsIDg2XSwgeyA3OTogMTM1LCAyMTogJFZGLCA3MzogJFZHLCA3NDogJFZILCA4MDogJFZJLCA4MTogJFZKLCA4MjogJFZLLCA4MzogJFZMLCA4NDogJFZNLCA4NTogJFZOIH0pLCBvKCRWUiwgWzIsIDg4XSksIG8oJFZSLCBbMiwgOTBdKSwgbygkVlIsIFsyLCA5MV0pLCBvKCRWUiwgWzIsIDkyXSksIG8oJFZSLCBbMiwgOTNdKSwgbygkVlIsIFsyLCA5NF0pLCBvKCRWUiwgWzIsIDk1XSksIG8oJFZSLCBbMiwgOTZdKSwgbygkVlIsIFsyLCA5N10pLCBvKCRWUiwgWzIsIDk4XSksIG8oJFZwLCBbMiwgODVdKSwgbygkVnAsIFsyLCA1M10pLCB7IDM3OiBbMiwgMTBdIH0sIG8oJFZPLCBbMiwgNDFdKSwgeyAxMzogWzEsIDEzNl0gfSwgeyAxOiBbMiwgNF0gfSwgbygkVlAsIFsyLCA1MV0pLCBvKCRWUCwgWzIsIDUwXSksIHsgMTY6IDM3LCAxNzogMTM3LCAxODogMzgsIDc0OiAkVmksIDgwOiAkVmssIDk1OiAkVmwsIDk3OiAkVm0sIDk4OiAkVm4gfSwgbygkVkIsIFsyLCA1OV0pLCBvKCRWcCwgWzIsIDMwXSksIHsgMzk6IFsxLCAxMzhdIH0sIHsgMjM6IDkwLCAzODogMTM5LCAzOTogWzIsIDM0XSwgNDE6IDIyLCA0NDogJFY0IH0sIHsgNDM6IDE0MCwgNDc6ICRWRSB9LCBvKCRWeCwgWzIsIDM4XSksIHsgMzk6IFsyLCA0NF0gfSwgbygkVnAsIFsyLCA0Ml0pLCBvKCRWcCwgWzIsIDcxXSksIG8oJFZwLCBbMiwgNzNdKSwgbygkVnAsIFsyLCA3NF0sIHsgNjg6IFsxLCAxNDFdIH0pLCBvKCRWcCwgWzIsIDc3XSksIG8oJFZwLCBbMiwgNzhdLCB7IDEzOiBbMSwgMTQyXSB9KSwgbygkVnAsIFsyLCA4MF0sIHsgMTM6IFsxLCAxNDRdLCA2ODogWzEsIDE0M10gfSksIHsgMjE6ICRWRiwgNzM6ICRWRywgNzQ6ICRWSCwgNzc6IDE0NSwgNzk6IDEwMSwgODA6ICRWSSwgODE6ICRWSiwgODI6ICRWSywgODM6ICRWTCwgODQ6ICRWTSwgODU6ICRWTiB9LCBvKCRWUiwgWzIsIDg5XSksIHsgMTQ6IFsxLCAxNDZdIH0sIG8oJFZQLCBbMiwgNTJdKSwgbygkVnAsIFsyLCAzMV0pLCB7IDM5OiBbMiwgMzVdIH0sIHsgMzk6IFsxLCAxNDddIH0sIG8oJFZwLCBbMiwgNzVdKSwgbygkVnAsIFsyLCA3OV0pLCBvKCRWcCwgWzIsIDgxXSksIG8oJFZwLCBbMiwgODJdLCB7IDY4OiBbMSwgMTQ4XSB9KSwgbygkVlEsIFsyLCA4N10sIHsgNzk6IDEzNSwgMjE6ICRWRiwgNzM6ICRWRywgNzQ6ICRWSCwgODA6ICRWSSwgODE6ICRWSiwgODI6ICRWSywgODM6ICRWTCwgODQ6ICRWTSwgODU6ICRWTiB9KSwgbygkVk8sIFsyLCA4XSksIG8oJFZ4LCBbMiwgMzldKSwgbygkVnAsIFsyLCA4M10pXSxcbiAgICBkZWZhdWx0QWN0aW9uczogeyAyOiBbMiwgMV0sIDM6IFsyLCAyXSwgNDogWzIsIDNdLCA3ODogWzIsIDMyXSwgMTEzOiBbMiwgMTBdLCAxMTY6IFsyLCA0XSwgMTI2OiBbMiwgNDRdLCAxMzk6IFsyLCAzNV0gfSxcbiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgaWYgKGhhc2gucmVjb3ZlcmFibGUpIHtcbiAgICAgICAgdGhpcy50cmFjZShzdHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKHN0cik7XG4gICAgICAgIGVycm9yLmhhc2ggPSBoYXNoO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzLCBzdGFjayA9IFswXSwgdHN0YWNrID0gW10sIHZzdGFjayA9IFtudWxsXSwgbHN0YWNrID0gW10sIHRhYmxlID0gdGhpcy50YWJsZSwgeXl0ZXh0ID0gXCJcIiwgeXlsaW5lbm8gPSAwLCB5eWxlbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxO1xuICAgICAgdmFyIGFyZ3MgPSBsc3RhY2suc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGxleGVyMiA9IE9iamVjdC5jcmVhdGUodGhpcy5sZXhlcik7XG4gICAgICB2YXIgc2hhcmVkU3RhdGUgPSB7IHl5OiB7fSB9O1xuICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnl5KSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHtcbiAgICAgICAgICBzaGFyZWRTdGF0ZS55eVtrXSA9IHRoaXMueXlba107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxleGVyMi5zZXRJbnB1dChpbnB1dCwgc2hhcmVkU3RhdGUueXkpO1xuICAgICAgc2hhcmVkU3RhdGUueXkubGV4ZXIgPSBsZXhlcjI7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5wYXJzZXIgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBsZXhlcjIueXlsbG9jID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbGV4ZXIyLnl5bGxvYyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICAgIHZhciByYW5nZXMgPSBsZXhlcjIub3B0aW9ucyAmJiBsZXhlcjIub3B0aW9ucy5yYW5nZXM7XG4gICAgICBpZiAodHlwZW9mIHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCkgfHwgbGV4ZXIyLmxleCgpIHx8IEVPRjtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB0c3RhY2sgPSB0b2tlbjtcbiAgICAgICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0b2tlbiA9IHNlbGYuc3ltYm9sc19bdG9rZW5dIHx8IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cbiAgICAgIHZhciBzeW1ib2wsIHN0YXRlLCBhY3Rpb24sIHIsIHl5dmFsID0ge30sIHAsIGxlbiwgbmV3U3RhdGUsIGV4cGVjdGVkO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgc3RhdGUgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdKSB7XG4gICAgICAgICAgYWN0aW9uID0gdGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHN5bWJvbCA9PT0gbnVsbCB8fCB0eXBlb2Ygc3ltYm9sID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHN5bWJvbCA9IGxleCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhY3Rpb24gPSB0YWJsZVtzdGF0ZV0gJiYgdGFibGVbc3RhdGVdW3N5bWJvbF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09IFwidW5kZWZpbmVkXCIgfHwgIWFjdGlvbi5sZW5ndGggfHwgIWFjdGlvblswXSkge1xuICAgICAgICAgIHZhciBlcnJTdHIgPSBcIlwiO1xuICAgICAgICAgIGV4cGVjdGVkID0gW107XG4gICAgICAgICAgZm9yIChwIGluIHRhYmxlW3N0YXRlXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGVybWluYWxzX1twXSAmJiBwID4gVEVSUk9SKSB7XG4gICAgICAgICAgICAgIGV4cGVjdGVkLnB1c2goXCInXCIgKyB0aGlzLnRlcm1pbmFsc19bcF0gKyBcIidcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsZXhlcjIuc2hvd1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOlxcblwiICsgbGV4ZXIyLnNob3dQb3NpdGlvbigpICsgXCJcXG5FeHBlY3RpbmcgXCIgKyBleHBlY3RlZC5qb2luKFwiLCBcIikgKyBcIiwgZ290ICdcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6IFVuZXhwZWN0ZWQgXCIgKyAoc3ltYm9sID09IEVPRiA/IFwiZW5kIG9mIGlucHV0XCIgOiBcIidcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnBhcnNlRXJyb3IoZXJyU3RyLCB7XG4gICAgICAgICAgICB0ZXh0OiBsZXhlcjIubWF0Y2gsXG4gICAgICAgICAgICB0b2tlbjogdGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sLFxuICAgICAgICAgICAgbGluZTogbGV4ZXIyLnl5bGluZW5vLFxuICAgICAgICAgICAgbG9jOiB5eWxvYyxcbiAgICAgICAgICAgIGV4cGVjdGVkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblswXSBpbnN0YW5jZW9mIEFycmF5ICYmIGFjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyc2UgRXJyb3I6IG11bHRpcGxlIGFjdGlvbnMgcG9zc2libGUgYXQgc3RhdGU6IFwiICsgc3RhdGUgKyBcIiwgdG9rZW46IFwiICsgc3ltYm9sKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGFjdGlvblswXSkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHN0YWNrLnB1c2goc3ltYm9sKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKGxleGVyMi55eXRleHQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2gobGV4ZXIyLnl5bGxvYyk7XG4gICAgICAgICAgICBzdGFjay5wdXNoKGFjdGlvblsxXSk7XG4gICAgICAgICAgICBzeW1ib2wgPSBudWxsO1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB5eWxlbmcgPSBsZXhlcjIueXlsZW5nO1xuICAgICAgICAgICAgICB5eXRleHQgPSBsZXhlcjIueXl0ZXh0O1xuICAgICAgICAgICAgICB5eWxpbmVubyA9IGxleGVyMi55eWxpbmVubztcbiAgICAgICAgICAgICAgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgbGVuID0gdGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVsxXTtcbiAgICAgICAgICAgIHl5dmFsLiQgPSB2c3RhY2tbdnN0YWNrLmxlbmd0aCAtIGxlbl07XG4gICAgICAgICAgICB5eXZhbC5fJCA9IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyYW5nZXMpIHtcbiAgICAgICAgICAgICAgeXl2YWwuXyQucmFuZ2UgPSBbXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5yYW5nZVswXSxcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLnJhbmdlWzFdXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByID0gdGhpcy5wZXJmb3JtQWN0aW9uLmFwcGx5KHl5dmFsLCBbXG4gICAgICAgICAgICAgIHl5dGV4dCxcbiAgICAgICAgICAgICAgeXlsZW5nLFxuICAgICAgICAgICAgICB5eWxpbmVubyxcbiAgICAgICAgICAgICAgc2hhcmVkU3RhdGUueXksXG4gICAgICAgICAgICAgIGFjdGlvblsxXSxcbiAgICAgICAgICAgICAgdnN0YWNrLFxuICAgICAgICAgICAgICBsc3RhY2tcbiAgICAgICAgICAgIF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZW4pIHtcbiAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZSgwLCAtMSAqIGxlbiAqIDIpO1xuICAgICAgICAgICAgICB2c3RhY2sgPSB2c3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgICBsc3RhY2sgPSBsc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhY2sucHVzaCh0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzBdKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKHl5dmFsLiQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2goeXl2YWwuXyQpO1xuICAgICAgICAgICAgbmV3U3RhdGUgPSB0YWJsZVtzdGFja1tzdGFjay5sZW5ndGggLSAyXV1bc3RhY2tbc3RhY2subGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgc3RhY2sucHVzaChuZXdTdGF0ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9O1xuICB2YXIgbGV4ZXIgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGV4ZXIyID0ge1xuICAgICAgRU9GOiAxLFxuICAgICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgICAgaWYgKHRoaXMueXkucGFyc2VyKSB7XG4gICAgICAgICAgdGhpcy55eS5wYXJzZXIucGFyc2VFcnJvcihzdHIsIGhhc2gpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmVzZXRzIHRoZSBsZXhlciwgc2V0cyBuZXcgaW5wdXRcbiAgICAgIHNldElucHV0OiBmdW5jdGlvbihpbnB1dCwgeXkpIHtcbiAgICAgICAgdGhpcy55eSA9IHl5IHx8IHRoaXMueXkgfHwge307XG4gICAgICAgIHRoaXMuX2lucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0aGlzLl9iYWNrdHJhY2sgPSB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy55eWxpbmVubyA9IHRoaXMueXlsZW5nID0gMDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjayA9IFtcIklOSVRJQUxcIl07XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiAwLFxuICAgICAgICAgIGxhc3RfbGluZTogMSxcbiAgICAgICAgICBsYXN0X2NvbHVtbjogMFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gWzAsIDBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gY29uc3VtZXMgYW5kIHJldHVybnMgb25lIGNoYXIgZnJvbSB0aGUgaW5wdXRcbiAgICAgIGlucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGNoID0gdGhpcy5faW5wdXRbMF07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IGNoO1xuICAgICAgICB0aGlzLnl5bGVuZysrO1xuICAgICAgICB0aGlzLm9mZnNldCsrO1xuICAgICAgICB0aGlzLm1hdGNoICs9IGNoO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gY2g7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubysrO1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfbGluZSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfY29sdW1uKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZVsxXSsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UoMSk7XG4gICAgICAgIHJldHVybiBjaDtcbiAgICAgIH0sXG4gICAgICAvLyB1bnNoaWZ0cyBvbmUgY2hhciAob3IgYSBzdHJpbmcpIGludG8gdGhlIGlucHV0XG4gICAgICB1bnB1dDogZnVuY3Rpb24oY2gpIHtcbiAgICAgICAgdmFyIGxlbiA9IGNoLmxlbmd0aDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBjaCArIHRoaXMuX2lucHV0O1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMueXl0ZXh0LnN1YnN0cigwLCB0aGlzLnl5dGV4dC5sZW5ndGggLSBsZW4pO1xuICAgICAgICB0aGlzLm9mZnNldCAtPSBsZW47XG4gICAgICAgIHZhciBvbGRMaW5lcyA9IHRoaXMubWF0Y2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5tYXRjaCA9IHRoaXMubWF0Y2guc3Vic3RyKDAsIHRoaXMubWF0Y2gubGVuZ3RoIC0gMSk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIDEpO1xuICAgICAgICBpZiAobGluZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gLT0gbGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgciA9IHRoaXMueXlsbG9jLnJhbmdlO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gKGxpbmVzLmxlbmd0aCA9PT0gb2xkTGluZXMubGVuZ3RoID8gdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIDogMCkgKyBvbGRMaW5lc1tvbGRMaW5lcy5sZW5ndGggLSBsaW5lcy5sZW5ndGhdLmxlbmd0aCAtIGxpbmVzWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiAtIGxlblxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3JbMF0sIHJbMF0gKyB0aGlzLnl5bGVuZyAtIGxlbl07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBjYWNoZXMgbWF0Y2hlZCB0ZXh0IGFuZCBhcHBlbmRzIGl0IG9uIG5leHQgYWN0aW9uXG4gICAgICBtb3JlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBzaWduYWxzIHRoZSBsZXhlciB0aGF0IHRoaXMgcnVsZSBmYWlscyB0byBtYXRjaCB0aGUgaW5wdXQsIHNvIHRoZSBuZXh0IG1hdGNoaW5nIHJ1bGUgKHJlZ2V4KSBzaG91bGQgYmUgdGVzdGVkIGluc3RlYWQuXG4gICAgICByZWplY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gWW91IGNhbiBvbmx5IGludm9rZSByZWplY3QoKSBpbiB0aGUgbGV4ZXIgd2hlbiB0aGUgbGV4ZXIgaXMgb2YgdGhlIGJhY2t0cmFja2luZyBwZXJzdWFzaW9uIChvcHRpb25zLmJhY2t0cmFja19sZXhlciA9IHRydWUpLlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIHJldGFpbiBmaXJzdCBuIGNoYXJhY3RlcnMgb2YgdGhlIG1hdGNoXG4gICAgICBsZXNzOiBmdW5jdGlvbihuKSB7XG4gICAgICAgIHRoaXMudW5wdXQodGhpcy5tYXRjaC5zbGljZShuKSk7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgYWxyZWFkeSBtYXRjaGVkIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgcGFzdElucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHBhc3QgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSB0aGlzLm1hdGNoLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiAocGFzdC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSArIHBhc3Quc3Vic3RyKC0yMCkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHVwY29taW5nIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgdXBjb21pbmdJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5tYXRjaDtcbiAgICAgICAgaWYgKG5leHQubGVuZ3RoIDwgMjApIHtcbiAgICAgICAgICBuZXh0ICs9IHRoaXMuX2lucHV0LnN1YnN0cigwLCAyMCAtIG5leHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKG5leHQuc3Vic3RyKDAsIDIwKSArIChuZXh0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdGhlIGNoYXJhY3RlciBwb3NpdGlvbiB3aGVyZSB0aGUgbGV4aW5nIGVycm9yIG9jY3VycmVkLCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgc2hvd1Bvc2l0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHByZSA9IHRoaXMucGFzdElucHV0KCk7XG4gICAgICAgIHZhciBjID0gbmV3IEFycmF5KHByZS5sZW5ndGggKyAxKS5qb2luKFwiLVwiKTtcbiAgICAgICAgcmV0dXJuIHByZSArIHRoaXMudXBjb21pbmdJbnB1dCgpICsgXCJcXG5cIiArIGMgKyBcIl5cIjtcbiAgICAgIH0sXG4gICAgICAvLyB0ZXN0IHRoZSBsZXhlZCB0b2tlbjogcmV0dXJuIEZBTFNFIHdoZW4gbm90IGEgbWF0Y2gsIG90aGVyd2lzZSByZXR1cm4gdG9rZW5cbiAgICAgIHRlc3RfbWF0Y2g6IGZ1bmN0aW9uKG1hdGNoLCBpbmRleGVkX3J1bGUpIHtcbiAgICAgICAgdmFyIHRva2VuLCBsaW5lcywgYmFja3VwO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIGJhY2t1cCA9IHtcbiAgICAgICAgICAgIHl5bGluZW5vOiB0aGlzLnl5bGluZW5vLFxuICAgICAgICAgICAgeXlsbG9jOiB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogdGhpcy5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5eXRleHQ6IHRoaXMueXl0ZXh0LFxuICAgICAgICAgICAgbWF0Y2g6IHRoaXMubWF0Y2gsXG4gICAgICAgICAgICBtYXRjaGVzOiB0aGlzLm1hdGNoZXMsXG4gICAgICAgICAgICBtYXRjaGVkOiB0aGlzLm1hdGNoZWQsXG4gICAgICAgICAgICB5eWxlbmc6IHRoaXMueXlsZW5nLFxuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgIF9tb3JlOiB0aGlzLl9tb3JlLFxuICAgICAgICAgICAgX2lucHV0OiB0aGlzLl9pbnB1dCxcbiAgICAgICAgICAgIHl5OiB0aGlzLnl5LFxuICAgICAgICAgICAgY29uZGl0aW9uU3RhY2s6IHRoaXMuY29uZGl0aW9uU3RhY2suc2xpY2UoMCksXG4gICAgICAgICAgICBkb25lOiB0aGlzLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgICBiYWNrdXAueXlsbG9jLnJhbmdlID0gdGhpcy55eWxsb2MucmFuZ2Uuc2xpY2UoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxpbmVzID0gbWF0Y2hbMF0ubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5sYXN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLm1hdGNoKC9cXHI/XFxuPy8pWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uICsgbWF0Y2hbMF0ubGVuZ3RoXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoZXMgPSBtYXRjaDtcbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbdGhpcy5vZmZzZXQsIHRoaXMub2Zmc2V0ICs9IHRoaXMueXlsZW5nXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tb3JlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBtYXRjaFswXTtcbiAgICAgICAgdG9rZW4gPSB0aGlzLnBlcmZvcm1BY3Rpb24uY2FsbCh0aGlzLCB0aGlzLnl5LCB0aGlzLCBpbmRleGVkX3J1bGUsIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSk7XG4gICAgICAgIGlmICh0aGlzLmRvbmUgJiYgdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgZm9yICh2YXIgayBpbiBiYWNrdXApIHtcbiAgICAgICAgICAgIHRoaXNba10gPSBiYWNrdXBba107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggaW4gaW5wdXRcbiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b2tlbiwgbWF0Y2gsIHRlbXBNYXRjaCwgaW5kZXg7XG4gICAgICAgIGlmICghdGhpcy5fbW9yZSkge1xuICAgICAgICAgIHRoaXMueXl0ZXh0ID0gXCJcIjtcbiAgICAgICAgICB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcnVsZXMgPSB0aGlzLl9jdXJyZW50UnVsZXMoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRlbXBNYXRjaCA9IHRoaXMuX2lucHV0Lm1hdGNoKHRoaXMucnVsZXNbcnVsZXNbaV1dKTtcbiAgICAgICAgICBpZiAodGVtcE1hdGNoICYmICghbWF0Y2ggfHwgdGVtcE1hdGNoWzBdLmxlbmd0aCA+IG1hdGNoWzBdLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIG1hdGNoID0gdGVtcE1hdGNoO1xuICAgICAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2godGVtcE1hdGNoLCBydWxlc1tpXSk7XG4gICAgICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3B0aW9ucy5mbGV4KSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaChtYXRjaCwgcnVsZXNbaW5kZXhdKTtcbiAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faW5wdXQgPT09IFwiXCIpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gVW5yZWNvZ25pemVkIHRleHQuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCB0aGF0IGhhcyBhIHRva2VuXG4gICAgICBsZXg6IGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLm5leHQoKTtcbiAgICAgICAgaWYgKHIpIHtcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sZXgoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFjdGl2YXRlcyBhIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgKHB1c2hlcyB0aGUgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvbnRvIHRoZSBjb25kaXRpb24gc3RhY2spXG4gICAgICBiZWdpbjogZnVuY3Rpb24gYmVnaW4oY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sucHVzaChjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHBvcCB0aGUgcHJldmlvdXNseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9mZiB0aGUgY29uZGl0aW9uIHN0YWNrXG4gICAgICBwb3BTdGF0ZTogZnVuY3Rpb24gcG9wU3RhdGUoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxO1xuICAgICAgICBpZiAobiA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5wb3AoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1swXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHByb2R1Y2UgdGhlIGxleGVyIHJ1bGUgc2V0IHdoaWNoIGlzIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlXG4gICAgICBfY3VycmVudFJ1bGVzOiBmdW5jdGlvbiBfY3VycmVudFJ1bGVzKCkge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggJiYgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1t0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV1dLnJ1bGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbXCJJTklUSUFMXCJdLnJ1bGVzO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZTsgd2hlbiBhbiBpbmRleCBhcmd1bWVudCBpcyBwcm92aWRlZCBpdCBwcm9kdWNlcyB0aGUgTi10aCBwcmV2aW91cyBjb25kaXRpb24gc3RhdGUsIGlmIGF2YWlsYWJsZVxuICAgICAgdG9wU3RhdGU6IGZ1bmN0aW9uIHRvcFN0YXRlKG4pIHtcbiAgICAgICAgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMSAtIE1hdGguYWJzKG4gfHwgMCk7XG4gICAgICAgIGlmIChuID49IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1tuXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gXCJJTklUSUFMXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhbGlhcyBmb3IgYmVnaW4oY29uZGl0aW9uKVxuICAgICAgcHVzaFN0YXRlOiBmdW5jdGlvbiBwdXNoU3RhdGUoY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuYmVnaW4oY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0ZXMgY3VycmVudGx5IG9uIHRoZSBzdGFja1xuICAgICAgc3RhdGVTdGFja1NpemU6IGZ1bmN0aW9uIHN0YXRlU3RhY2tTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge30sXG4gICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXksIHl5XywgJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucywgWVlfU1RBUlQpIHtcbiAgICAgICAgc3dpdGNoICgkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zKSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmV0dXJuIDUzO1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJldHVybiA1NDtcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gNTU7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIDU2O1xuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfdGl0bGVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzE7XG4gICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX3RpdGxlX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjclwiKTtcbiAgICAgICAgICAgIHJldHVybiAzMztcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjcl9tdWx0aWxpbmVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgcmV0dXJuIDg7XG4gICAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgICByZXR1cm4gNztcbiAgICAgICAgICBjYXNlIDE2OlxuICAgICAgICAgICAgcmV0dXJuIDc7XG4gICAgICAgICAgY2FzZSAxNzpcbiAgICAgICAgICAgIHJldHVybiBcIkVER0VfU1RBVEVcIjtcbiAgICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImNhbGxiYWNrX25hbWVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyMDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJjYWxsYmFja19hcmdzXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICAgIHJldHVybiA3MDtcbiAgICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyMzpcbiAgICAgICAgICAgIHJldHVybiA3MTtcbiAgICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIHJldHVybiBcIlNUUlwiO1xuICAgICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwic3RyaW5nXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgIHJldHVybiA3MztcbiAgICAgICAgICBjYXNlIDI4OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIm5hbWVzcGFjZVwiKTtcbiAgICAgICAgICAgIHJldHVybiA0MDtcbiAgICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDg7XG4gICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwibmFtZXNwYWNlLWJvZHlcIik7XG4gICAgICAgICAgICByZXR1cm4gMzc7XG4gICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiAzOTtcbiAgICAgICAgICBjYXNlIDMzOlxuICAgICAgICAgICAgcmV0dXJuIFwiRU9GX0lOX1NUUlVDVFwiO1xuICAgICAgICAgIGNhc2UgMzQ6XG4gICAgICAgICAgICByZXR1cm4gODtcbiAgICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICAgIHJldHVybiBcIkVER0VfU1RBVEVcIjtcbiAgICAgICAgICBjYXNlIDM3OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImNsYXNzXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ0O1xuICAgICAgICAgIGNhc2UgMzg6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gODtcbiAgICAgICAgICBjYXNlIDM5OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0MDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiAzOTtcbiAgICAgICAgICBjYXNlIDQxOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImNsYXNzLWJvZHlcIik7XG4gICAgICAgICAgICByZXR1cm4gMzc7XG4gICAgICAgICAgY2FzZSA0MjpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiAzOTtcbiAgICAgICAgICBjYXNlIDQzOlxuICAgICAgICAgICAgcmV0dXJuIFwiRU9GX0lOX1NUUlVDVFwiO1xuICAgICAgICAgIGNhc2UgNDQ6XG4gICAgICAgICAgICByZXR1cm4gXCJFREdFX1NUQVRFXCI7XG4gICAgICAgICAgY2FzZSA0NTpcbiAgICAgICAgICAgIHJldHVybiBcIk9QRU5fSU5fU1RSVUNUXCI7XG4gICAgICAgICAgY2FzZSA0NjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNDc6XG4gICAgICAgICAgICByZXR1cm4gXCJNRU1CRVJcIjtcbiAgICAgICAgICBjYXNlIDQ4OlxuICAgICAgICAgICAgcmV0dXJuIDc2O1xuICAgICAgICAgIGNhc2UgNDk6XG4gICAgICAgICAgICByZXR1cm4gNjY7XG4gICAgICAgICAgY2FzZSA1MDpcbiAgICAgICAgICAgIHJldHVybiA2NztcbiAgICAgICAgICBjYXNlIDUxOlxuICAgICAgICAgICAgcmV0dXJuIDY5O1xuICAgICAgICAgIGNhc2UgNTI6XG4gICAgICAgICAgICByZXR1cm4gNTA7XG4gICAgICAgICAgY2FzZSA1MzpcbiAgICAgICAgICAgIHJldHVybiA1MjtcbiAgICAgICAgICBjYXNlIDU0OlxuICAgICAgICAgICAgcmV0dXJuIDQ1O1xuICAgICAgICAgIGNhc2UgNTU6XG4gICAgICAgICAgICByZXR1cm4gNDY7XG4gICAgICAgICAgY2FzZSA1NjpcbiAgICAgICAgICAgIHJldHVybiA3MjtcbiAgICAgICAgICBjYXNlIDU3OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA1ODpcbiAgICAgICAgICAgIHJldHVybiBcIkdFTkVSSUNUWVBFXCI7XG4gICAgICAgICAgY2FzZSA1OTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJnZW5lcmljXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA2MDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNjE6XG4gICAgICAgICAgICByZXR1cm4gXCJCUVVPVEVfU1RSXCI7XG4gICAgICAgICAgY2FzZSA2MjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJicXN0cmluZ1wiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNjM6XG4gICAgICAgICAgICByZXR1cm4gNjg7XG4gICAgICAgICAgY2FzZSA2NDpcbiAgICAgICAgICAgIHJldHVybiA2ODtcbiAgICAgICAgICBjYXNlIDY1OlxuICAgICAgICAgICAgcmV0dXJuIDY4O1xuICAgICAgICAgIGNhc2UgNjY6XG4gICAgICAgICAgICByZXR1cm4gNjg7XG4gICAgICAgICAgY2FzZSA2NzpcbiAgICAgICAgICAgIHJldHVybiA2MDtcbiAgICAgICAgICBjYXNlIDY4OlxuICAgICAgICAgICAgcmV0dXJuIDYwO1xuICAgICAgICAgIGNhc2UgNjk6XG4gICAgICAgICAgICByZXR1cm4gNjI7XG4gICAgICAgICAgY2FzZSA3MDpcbiAgICAgICAgICAgIHJldHVybiA2MjtcbiAgICAgICAgICBjYXNlIDcxOlxuICAgICAgICAgICAgcmV0dXJuIDYxO1xuICAgICAgICAgIGNhc2UgNzI6XG4gICAgICAgICAgICByZXR1cm4gNTk7XG4gICAgICAgICAgY2FzZSA3MzpcbiAgICAgICAgICAgIHJldHVybiA2MztcbiAgICAgICAgICBjYXNlIDc0OlxuICAgICAgICAgICAgcmV0dXJuIDY0O1xuICAgICAgICAgIGNhc2UgNzU6XG4gICAgICAgICAgICByZXR1cm4gNjU7XG4gICAgICAgICAgY2FzZSA3NjpcbiAgICAgICAgICAgIHJldHVybiAyMTtcbiAgICAgICAgICBjYXNlIDc3OlxuICAgICAgICAgICAgcmV0dXJuIDQyO1xuICAgICAgICAgIGNhc2UgNzg6XG4gICAgICAgICAgICByZXR1cm4gOTU7XG4gICAgICAgICAgY2FzZSA3OTpcbiAgICAgICAgICAgIHJldHVybiBcIkRPVFwiO1xuICAgICAgICAgIGNhc2UgODA6XG4gICAgICAgICAgICByZXR1cm4gXCJQTFVTXCI7XG4gICAgICAgICAgY2FzZSA4MTpcbiAgICAgICAgICAgIHJldHVybiA4MTtcbiAgICAgICAgICBjYXNlIDgyOlxuICAgICAgICAgICAgcmV0dXJuIDc4O1xuICAgICAgICAgIGNhc2UgODM6XG4gICAgICAgICAgICByZXR1cm4gODQ7XG4gICAgICAgICAgY2FzZSA4NDpcbiAgICAgICAgICAgIHJldHVybiA4NDtcbiAgICAgICAgICBjYXNlIDg1OlxuICAgICAgICAgICAgcmV0dXJuIDg1O1xuICAgICAgICAgIGNhc2UgODY6XG4gICAgICAgICAgICByZXR1cm4gXCJFUVVBTFNcIjtcbiAgICAgICAgICBjYXNlIDg3OlxuICAgICAgICAgICAgcmV0dXJuIFwiRVFVQUxTXCI7XG4gICAgICAgICAgY2FzZSA4ODpcbiAgICAgICAgICAgIHJldHVybiA3NDtcbiAgICAgICAgICBjYXNlIDg5OlxuICAgICAgICAgICAgcmV0dXJuIDEyO1xuICAgICAgICAgIGNhc2UgOTA6XG4gICAgICAgICAgICByZXR1cm4gMTQ7XG4gICAgICAgICAgY2FzZSA5MTpcbiAgICAgICAgICAgIHJldHVybiBcIlBVTkNUVUFUSU9OXCI7XG4gICAgICAgICAgY2FzZSA5MjpcbiAgICAgICAgICAgIHJldHVybiA4MDtcbiAgICAgICAgICBjYXNlIDkzOlxuICAgICAgICAgICAgcmV0dXJuIDk3O1xuICAgICAgICAgIGNhc2UgOTQ6XG4gICAgICAgICAgICByZXR1cm4gODM7XG4gICAgICAgICAgY2FzZSA5NTpcbiAgICAgICAgICAgIHJldHVybiA4MztcbiAgICAgICAgICBjYXNlIDk2OlxuICAgICAgICAgICAgcmV0dXJuIDk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczogWy9eKD86LipkaXJlY3Rpb25cXHMrVEJbXlxcbl0qKS8sIC9eKD86LipkaXJlY3Rpb25cXHMrQlRbXlxcbl0qKS8sIC9eKD86LipkaXJlY3Rpb25cXHMrUkxbXlxcbl0qKS8sIC9eKD86LipkaXJlY3Rpb25cXHMrTFJbXlxcbl0qKS8sIC9eKD86JSUoPyFcXHspKlteXFxuXSooXFxyP1xcbj8pKykvLCAvXig/OiUlW15cXG5dKihcXHI/XFxuKSopLywgL14oPzphY2NUaXRsZVxccyo6XFxzKikvLCAvXig/Oig/IVxcbnx8KSpbXlxcbl0qKS8sIC9eKD86YWNjRGVzY3JcXHMqOlxccyopLywgL14oPzooPyFcXG58fCkqW15cXG5dKikvLCAvXig/OmFjY0Rlc2NyXFxzKlxce1xccyopLywgL14oPzpbXFx9XSkvLCAvXig/OlteXFx9XSopLywgL14oPzpcXHMqKFxccj9cXG4pKykvLCAvXig/OlxccyspLywgL14oPzpjbGFzc0RpYWdyYW0tdjJcXGIpLywgL14oPzpjbGFzc0RpYWdyYW1cXGIpLywgL14oPzpcXFtcXCpcXF0pLywgL14oPzpjYWxsW1xcc10rKS8sIC9eKD86XFwoW1xcc10qXFwpKS8sIC9eKD86XFwoKS8sIC9eKD86W14oXSopLywgL14oPzpcXCkpLywgL14oPzpbXildKikvLCAvXig/OltcIl0pLywgL14oPzpbXlwiXSopLywgL14oPzpbXCJdKS8sIC9eKD86c3R5bGVcXGIpLywgL14oPzpuYW1lc3BhY2VcXGIpLywgL14oPzpcXHMqKFxccj9cXG4pKykvLCAvXig/OlxccyspLywgL14oPzpbe10pLywgL14oPzpbfV0pLywgL14oPzokKS8sIC9eKD86XFxzKihcXHI/XFxuKSspLywgL14oPzpcXHMrKS8sIC9eKD86XFxbXFwqXFxdKS8sIC9eKD86Y2xhc3NcXGIpLywgL14oPzpcXHMqKFxccj9cXG4pKykvLCAvXig/OlxccyspLywgL14oPzpbfV0pLywgL14oPzpbe10pLywgL14oPzpbfV0pLywgL14oPzokKS8sIC9eKD86XFxbXFwqXFxdKS8sIC9eKD86W3tdKS8sIC9eKD86W1xcbl0pLywgL14oPzpbXnt9XFxuXSopLywgL14oPzpjc3NDbGFzc1xcYikvLCAvXig/OmNhbGxiYWNrXFxiKS8sIC9eKD86bGlua1xcYikvLCAvXig/OmNsaWNrXFxiKS8sIC9eKD86bm90ZSBmb3JcXGIpLywgL14oPzpub3RlXFxiKS8sIC9eKD86PDwpLywgL14oPzo+PikvLCAvXig/OmhyZWZcXGIpLywgL14oPzpbfl0pLywgL14oPzpbXn5dKikvLCAvXig/On4pLywgL14oPzpbYF0pLywgL14oPzpbXmBdKykvLCAvXig/OltgXSkvLCAvXig/Ol9zZWxmXFxiKS8sIC9eKD86X2JsYW5rXFxiKS8sIC9eKD86X3BhcmVudFxcYikvLCAvXig/Ol90b3BcXGIpLywgL14oPzpcXHMqPFxcfCkvLCAvXig/OlxccypcXHw+KS8sIC9eKD86XFxzKj4pLywgL14oPzpcXHMqPCkvLCAvXig/OlxccypcXCopLywgL14oPzpcXHMqb1xcYikvLCAvXig/OlxccypcXChcXCkpLywgL14oPzotLSkvLCAvXig/OlxcLlxcLikvLCAvXig/Ojp7MX1bXjpcXG47XSspLywgL14oPzo6ezN9KS8sIC9eKD86LSkvLCAvXig/OlxcLikvLCAvXig/OlxcKykvLCAvXig/OjopLywgL14oPzosKS8sIC9eKD86IykvLCAvXig/OiMpLywgL14oPzolKS8sIC9eKD86PSkvLCAvXig/Oj0pLywgL14oPzpcXHcrKS8sIC9eKD86XFxbKS8sIC9eKD86XFxdKS8sIC9eKD86WyFcIiMkJSYnKissLS5gP1xcXFwvXSkvLCAvXig/OlswLTldKykvLCAvXig/OltcXHUwMEFBXFx1MDBCNVxcdTAwQkFcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZdfFtcXHUwMEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XXxbXFx1MDM3QS1cXHUwMzdEXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVdfFtcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MjdcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDVEMC1cXHUwNUVBXXxbXFx1MDVGMC1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXXxbXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQV18W1xcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4QTBdfFtcXHUwOEEyLVxcdTA4QUNcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk3N118W1xcdTA5NzktXFx1MDk3RlxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMl18W1xcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTBBMDUtXFx1MEEwQV18W1xcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XXxbXFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOF18W1xcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBCMDUtXFx1MEIwQ118W1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNEXFx1MEI1Q118W1xcdTBCNURcXHUwQjVGLVxcdTBCNjFcXHUwQjcxXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTldfFtcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXXxbXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzMzXFx1MEMzNS1cXHUwQzM5XFx1MEMzRF18W1xcdTBDNThcXHUwQzU5XFx1MEM2MFxcdTBDNjFcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNdfFtcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBdfFtcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENjBcXHUwRDYxXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXXxbXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBFMDEtXFx1MEUzMFxcdTBFMzJcXHUwRTMzXFx1MEU0MC1cXHUwRTQ2XFx1MEU4MV18W1xcdTBFODJcXHUwRTg0XFx1MEU4N1xcdTBFODhcXHUwRThBXFx1MEU4RFxcdTBFOTQtXFx1MEU5N1xcdTBFOTktXFx1MEU5RlxcdTBFQTEtXFx1MEVBM118W1xcdTBFQTVcXHUwRUE3XFx1MEVBQVxcdTBFQUJcXHUwRUFELVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XXxbXFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQV18W1xcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFdfFtcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERdfFtcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXXxbXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMF18W1xcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNFxcdTE0MDEtXFx1MTY2Q118W1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxMV18W1xcdTE3MjAtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDddfFtcXHUxN0RDXFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxQ118W1xcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QzEtXFx1MTlDN1xcdTFBMDAtXFx1MUExNl18W1xcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRl18W1xcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDRTktXFx1MUNFQ118W1xcdTFDRUUtXFx1MUNGMVxcdTFDRjVcXHUxQ0Y2XFx1MUQwMC1cXHUxREJGXFx1MUUwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXXxbXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXXxbXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM118W1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwNzFcXHUyMDdGXXxbXFx1MjA5MC1cXHUyMDlDXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XXxbXFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxODNcXHUyMTg0XXxbXFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNdfFtcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZdfFtcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VdfFtcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyRTJGXFx1MzAwNVxcdTMwMDZcXHUzMDMxLVxcdTMwMzVcXHUzMDNCXFx1MzAzQ118W1xcdTMwNDEtXFx1MzA5NlxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRF18W1xcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZDQ118W1xcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXXxbXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjk3XFx1QTZBMC1cXHVBNkU1XFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XXxbXFx1QTc4Qi1cXHVBNzhFXFx1QTc5MC1cXHVBNzkzXFx1QTdBMC1cXHVBN0FBXFx1QTdGOC1cXHVBODAxXFx1QTgwMy1cXHVBODA1XXxbXFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQl18W1xcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBQTAwLVxcdUFBMjhdfFtcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE4MC1cXHVBQUFGXFx1QUFCMVxcdUFBQjVdfFtcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRdfFtcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVdfFtcXHVBQkMwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRdfFtcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XXxbXFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RdfFtcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNdfFtcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZdfFtcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdKS8sIC9eKD86XFxzKS8sIC9eKD86XFxzKS8sIC9eKD86JCkvXSxcbiAgICAgIGNvbmRpdGlvbnM6IHsgXCJuYW1lc3BhY2UtYm9keVwiOiB7IFwicnVsZXNcIjogWzI2LCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1OSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzQsIDc1LCA3NiwgNzcsIDc4LCA3OSwgODAsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5Nl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwibmFtZXNwYWNlXCI6IHsgXCJydWxlc1wiOiBbMjYsIDI4LCAyOSwgMzAsIDMxLCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1OSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzQsIDc1LCA3NiwgNzcsIDc4LCA3OSwgODAsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5Nl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiY2xhc3MtYm9keVwiOiB7IFwicnVsZXNcIjogWzI2LCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1OSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzQsIDc1LCA3NiwgNzcsIDc4LCA3OSwgODAsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5Nl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiY2xhc3NcIjogeyBcInJ1bGVzXCI6IFsyNiwgMzgsIDM5LCA0MCwgNDEsIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU5LCA2MiwgNjMsIDY0LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsIDc5LCA4MCwgODUsIDg2LCA4NywgODgsIDg5LCA5MCwgOTEsIDkyLCA5MywgOTQsIDk2XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCI6IHsgXCJydWxlc1wiOiBbMTEsIDEyLCAyNiwgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTksIDYyLCA2MywgNjQsIDY1LCA2NiwgNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzYsIDc3LCA3OCwgNzksIDgwLCA4NSwgODYsIDg3LCA4OCwgODksIDkwLCA5MSwgOTIsIDkzLCA5NCwgOTZdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY19kZXNjclwiOiB7IFwicnVsZXNcIjogWzksIDI2LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1OSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzQsIDc1LCA3NiwgNzcsIDc4LCA3OSwgODAsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5Nl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX3RpdGxlXCI6IHsgXCJydWxlc1wiOiBbNywgMjYsIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU5LCA2MiwgNjMsIDY0LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsIDc5LCA4MCwgODUsIDg2LCA4NywgODgsIDg5LCA5MCwgOTEsIDkyLCA5MywgOTQsIDk2XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJjYWxsYmFja19hcmdzXCI6IHsgXCJydWxlc1wiOiBbMjIsIDIzLCAyNiwgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTksIDYyLCA2MywgNjQsIDY1LCA2NiwgNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzYsIDc3LCA3OCwgNzksIDgwLCA4NSwgODYsIDg3LCA4OCwgODksIDkwLCA5MSwgOTIsIDkzLCA5NCwgOTZdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImNhbGxiYWNrX25hbWVcIjogeyBcInJ1bGVzXCI6IFsxOSwgMjAsIDIxLCAyNiwgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTksIDYyLCA2MywgNjQsIDY1LCA2NiwgNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzYsIDc3LCA3OCwgNzksIDgwLCA4NSwgODYsIDg3LCA4OCwgODksIDkwLCA5MSwgOTIsIDkzLCA5NCwgOTZdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImhyZWZcIjogeyBcInJ1bGVzXCI6IFsyNiwgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTksIDYyLCA2MywgNjQsIDY1LCA2NiwgNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzYsIDc3LCA3OCwgNzksIDgwLCA4NSwgODYsIDg3LCA4OCwgODksIDkwLCA5MSwgOTIsIDkzLCA5NCwgOTZdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInN0cnVjdFwiOiB7IFwicnVsZXNcIjogWzI2LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1OSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzQsIDc1LCA3NiwgNzcsIDc4LCA3OSwgODAsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5Nl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiZ2VuZXJpY1wiOiB7IFwicnVsZXNcIjogWzI2LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNTgsIDU5LCA2MiwgNjMsIDY0LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsIDc5LCA4MCwgODUsIDg2LCA4NywgODgsIDg5LCA5MCwgOTEsIDkyLCA5MywgOTQsIDk2XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJicXN0cmluZ1wiOiB7IFwicnVsZXNcIjogWzI2LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsIDc5LCA4MCwgODUsIDg2LCA4NywgODgsIDg5LCA5MCwgOTEsIDkyLCA5MywgOTQsIDk2XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJzdHJpbmdcIjogeyBcInJ1bGVzXCI6IFsyNCwgMjUsIDI2LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1OSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzQsIDc1LCA3NiwgNzcsIDc4LCA3OSwgODAsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5Nl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiSU5JVElBTFwiOiB7IFwicnVsZXNcIjogWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDgsIDEwLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAyNiwgMjcsIDI4LCAzNywgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTksIDYyLCA2MywgNjQsIDY1LCA2NiwgNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzYsIDc3LCA3OCwgNzksIDgwLCA4MSwgODIsIDgzLCA4NCwgODUsIDg2LCA4NywgODgsIDg5LCA5MCwgOTEsIDkyLCA5MywgOTQsIDk1LCA5Nl0sIFwiaW5jbHVzaXZlXCI6IHRydWUgfSB9XG4gICAgfTtcbiAgICByZXR1cm4gbGV4ZXIyO1xuICB9KCk7XG4gIHBhcnNlcjIubGV4ZXIgPSBsZXhlcjtcbiAgZnVuY3Rpb24gUGFyc2VyKCkge1xuICAgIHRoaXMueXkgPSB7fTtcbiAgfVxuICBQYXJzZXIucHJvdG90eXBlID0gcGFyc2VyMjtcbiAgcGFyc2VyMi5QYXJzZXIgPSBQYXJzZXI7XG4gIHJldHVybiBuZXcgUGFyc2VyKCk7XG59KCk7XG5wYXJzZXIucGFyc2VyID0gcGFyc2VyO1xuY29uc3QgcGFyc2VyJDEgPSBwYXJzZXI7XG5jb25zdCB2aXNpYmlsaXR5VmFsdWVzID0gW1wiI1wiLCBcIitcIiwgXCJ+XCIsIFwiLVwiLCBcIlwiXTtcbmNsYXNzIENsYXNzTWVtYmVyIHtcbiAgY29uc3RydWN0b3IoaW5wdXQsIG1lbWJlclR5cGUpIHtcbiAgICB0aGlzLm1lbWJlclR5cGUgPSBtZW1iZXJUeXBlO1xuICAgIHRoaXMudmlzaWJpbGl0eSA9IFwiXCI7XG4gICAgdGhpcy5jbGFzc2lmaWVyID0gXCJcIjtcbiAgICBjb25zdCBzYW5pdGl6ZWRJbnB1dCA9IHNhbml0aXplVGV4dCQxKGlucHV0LCBnZXRDb25maWcoKSk7XG4gICAgdGhpcy5wYXJzZU1lbWJlcihzYW5pdGl6ZWRJbnB1dCk7XG4gIH1cbiAgZ2V0RGlzcGxheURldGFpbHMoKSB7XG4gICAgbGV0IGRpc3BsYXlUZXh0ID0gdGhpcy52aXNpYmlsaXR5ICsgcGFyc2VHZW5lcmljVHlwZXModGhpcy5pZCk7XG4gICAgaWYgKHRoaXMubWVtYmVyVHlwZSA9PT0gXCJtZXRob2RcIikge1xuICAgICAgZGlzcGxheVRleHQgKz0gYCgke3BhcnNlR2VuZXJpY1R5cGVzKHRoaXMucGFyYW1ldGVycy50cmltKCkpfSlgO1xuICAgICAgaWYgKHRoaXMucmV0dXJuVHlwZSkge1xuICAgICAgICBkaXNwbGF5VGV4dCArPSBcIiA6IFwiICsgcGFyc2VHZW5lcmljVHlwZXModGhpcy5yZXR1cm5UeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZGlzcGxheVRleHQgPSBkaXNwbGF5VGV4dC50cmltKCk7XG4gICAgY29uc3QgY3NzU3R5bGUgPSB0aGlzLnBhcnNlQ2xhc3NpZmllcigpO1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5VGV4dCxcbiAgICAgIGNzc1N0eWxlXG4gICAgfTtcbiAgfVxuICBwYXJzZU1lbWJlcihpbnB1dCkge1xuICAgIGxldCBwb3RlbnRpYWxDbGFzc2lmaWVyID0gXCJcIjtcbiAgICBpZiAodGhpcy5tZW1iZXJUeXBlID09PSBcIm1ldGhvZFwiKSB7XG4gICAgICBjb25zdCBtZXRob2RSZWdFeCA9IC8oWyMrfi1dKT8oLispXFwoKC4qKVxcKShbXFxzJCpdKT8oLiopKFskKl0pPy87XG4gICAgICBjb25zdCBtYXRjaCA9IGlucHV0Lm1hdGNoKG1ldGhvZFJlZ0V4KTtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBjb25zdCBkZXRlY3RlZFZpc2liaWxpdHkgPSBtYXRjaFsxXSA/IG1hdGNoWzFdLnRyaW0oKSA6IFwiXCI7XG4gICAgICAgIGlmICh2aXNpYmlsaXR5VmFsdWVzLmluY2x1ZGVzKGRldGVjdGVkVmlzaWJpbGl0eSkpIHtcbiAgICAgICAgICB0aGlzLnZpc2liaWxpdHkgPSBkZXRlY3RlZFZpc2liaWxpdHk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pZCA9IG1hdGNoWzJdLnRyaW0oKTtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gbWF0Y2hbM10gPyBtYXRjaFszXS50cmltKCkgOiBcIlwiO1xuICAgICAgICBwb3RlbnRpYWxDbGFzc2lmaWVyID0gbWF0Y2hbNF0gPyBtYXRjaFs0XS50cmltKCkgOiBcIlwiO1xuICAgICAgICB0aGlzLnJldHVyblR5cGUgPSBtYXRjaFs1XSA/IG1hdGNoWzVdLnRyaW0oKSA6IFwiXCI7XG4gICAgICAgIGlmIChwb3RlbnRpYWxDbGFzc2lmaWVyID09PSBcIlwiKSB7XG4gICAgICAgICAgY29uc3QgbGFzdENoYXIgPSB0aGlzLnJldHVyblR5cGUuc3Vic3RyaW5nKHRoaXMucmV0dXJuVHlwZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICBpZiAobGFzdENoYXIubWF0Y2goL1skKl0vKSkge1xuICAgICAgICAgICAgcG90ZW50aWFsQ2xhc3NpZmllciA9IGxhc3RDaGFyO1xuICAgICAgICAgICAgdGhpcy5yZXR1cm5UeXBlID0gdGhpcy5yZXR1cm5UeXBlLnN1YnN0cmluZygwLCB0aGlzLnJldHVyblR5cGUubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IGlucHV0Lmxlbmd0aDtcbiAgICAgIGNvbnN0IGZpcnN0Q2hhciA9IGlucHV0LnN1YnN0cmluZygwLCAxKTtcbiAgICAgIGNvbnN0IGxhc3RDaGFyID0gaW5wdXQuc3Vic3RyaW5nKGxlbmd0aCAtIDEpO1xuICAgICAgaWYgKHZpc2liaWxpdHlWYWx1ZXMuaW5jbHVkZXMoZmlyc3RDaGFyKSkge1xuICAgICAgICB0aGlzLnZpc2liaWxpdHkgPSBmaXJzdENoYXI7XG4gICAgICB9XG4gICAgICBpZiAobGFzdENoYXIubWF0Y2goL1skKl0vKSkge1xuICAgICAgICBwb3RlbnRpYWxDbGFzc2lmaWVyID0gbGFzdENoYXI7XG4gICAgICB9XG4gICAgICB0aGlzLmlkID0gaW5wdXQuc3Vic3RyaW5nKFxuICAgICAgICB0aGlzLnZpc2liaWxpdHkgPT09IFwiXCIgPyAwIDogMSxcbiAgICAgICAgcG90ZW50aWFsQ2xhc3NpZmllciA9PT0gXCJcIiA/IGxlbmd0aCA6IGxlbmd0aCAtIDFcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2xhc3NpZmllciA9IHBvdGVudGlhbENsYXNzaWZpZXI7XG4gIH1cbiAgcGFyc2VDbGFzc2lmaWVyKCkge1xuICAgIHN3aXRjaCAodGhpcy5jbGFzc2lmaWVyKSB7XG4gICAgICBjYXNlIFwiKlwiOlxuICAgICAgICByZXR1cm4gXCJmb250LXN0eWxlOml0YWxpYztcIjtcbiAgICAgIGNhc2UgXCIkXCI6XG4gICAgICAgIHJldHVybiBcInRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7XCI7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gIH1cbn1cbmNvbnN0IE1FUk1BSURfRE9NX0lEX1BSRUZJWCA9IFwiY2xhc3NJZC1cIjtcbmxldCByZWxhdGlvbnMgPSBbXTtcbmxldCBjbGFzc2VzID0ge307XG5sZXQgbm90ZXMgPSBbXTtcbmxldCBjbGFzc0NvdW50ZXIgPSAwO1xubGV0IG5hbWVzcGFjZXMgPSB7fTtcbmxldCBuYW1lc3BhY2VDb3VudGVyID0gMDtcbmxldCBmdW5jdGlvbnMgPSBbXTtcbmNvbnN0IHNhbml0aXplVGV4dCA9ICh0eHQpID0+IGNvbW1vbi5zYW5pdGl6ZVRleHQodHh0LCBnZXRDb25maWcoKSk7XG5jb25zdCBzcGxpdENsYXNzTmFtZUFuZFR5cGUgPSBmdW5jdGlvbihfaWQpIHtcbiAgY29uc3QgaWQgPSBjb21tb24uc2FuaXRpemVUZXh0KF9pZCwgZ2V0Q29uZmlnKCkpO1xuICBsZXQgZ2VuZXJpY1R5cGUgPSBcIlwiO1xuICBsZXQgY2xhc3NOYW1lID0gaWQ7XG4gIGlmIChpZC5pbmRleE9mKFwiflwiKSA+IDApIHtcbiAgICBjb25zdCBzcGxpdCA9IGlkLnNwbGl0KFwiflwiKTtcbiAgICBjbGFzc05hbWUgPSBzYW5pdGl6ZVRleHQoc3BsaXRbMF0pO1xuICAgIGdlbmVyaWNUeXBlID0gc2FuaXRpemVUZXh0KHNwbGl0WzFdKTtcbiAgfVxuICByZXR1cm4geyBjbGFzc05hbWUsIHR5cGU6IGdlbmVyaWNUeXBlIH07XG59O1xuY29uc3Qgc2V0Q2xhc3NMYWJlbCA9IGZ1bmN0aW9uKF9pZCwgbGFiZWwpIHtcbiAgY29uc3QgaWQgPSBjb21tb24uc2FuaXRpemVUZXh0KF9pZCwgZ2V0Q29uZmlnKCkpO1xuICBpZiAobGFiZWwpIHtcbiAgICBsYWJlbCA9IHNhbml0aXplVGV4dChsYWJlbCk7XG4gIH1cbiAgY29uc3QgeyBjbGFzc05hbWUgfSA9IHNwbGl0Q2xhc3NOYW1lQW5kVHlwZShpZCk7XG4gIGNsYXNzZXNbY2xhc3NOYW1lXS5sYWJlbCA9IGxhYmVsO1xufTtcbmNvbnN0IGFkZENsYXNzID0gZnVuY3Rpb24oX2lkKSB7XG4gIGNvbnN0IGlkID0gY29tbW9uLnNhbml0aXplVGV4dChfaWQsIGdldENvbmZpZygpKTtcbiAgY29uc3QgeyBjbGFzc05hbWUsIHR5cGUgfSA9IHNwbGl0Q2xhc3NOYW1lQW5kVHlwZShpZCk7XG4gIGlmIChPYmplY3QuaGFzT3duKGNsYXNzZXMsIGNsYXNzTmFtZSkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgbmFtZSA9IGNvbW1vbi5zYW5pdGl6ZVRleHQoY2xhc3NOYW1lLCBnZXRDb25maWcoKSk7XG4gIGNsYXNzZXNbbmFtZV0gPSB7XG4gICAgaWQ6IG5hbWUsXG4gICAgdHlwZSxcbiAgICBsYWJlbDogbmFtZSxcbiAgICBjc3NDbGFzc2VzOiBbXSxcbiAgICBtZXRob2RzOiBbXSxcbiAgICBtZW1iZXJzOiBbXSxcbiAgICBhbm5vdGF0aW9uczogW10sXG4gICAgc3R5bGVzOiBbXSxcbiAgICBkb21JZDogTUVSTUFJRF9ET01fSURfUFJFRklYICsgbmFtZSArIFwiLVwiICsgY2xhc3NDb3VudGVyXG4gIH07XG4gIGNsYXNzQ291bnRlcisrO1xufTtcbmNvbnN0IGxvb2tVcERvbUlkID0gZnVuY3Rpb24oX2lkKSB7XG4gIGNvbnN0IGlkID0gY29tbW9uLnNhbml0aXplVGV4dChfaWQsIGdldENvbmZpZygpKTtcbiAgaWYgKGlkIGluIGNsYXNzZXMpIHtcbiAgICByZXR1cm4gY2xhc3Nlc1tpZF0uZG9tSWQ7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFwiQ2xhc3Mgbm90IGZvdW5kOiBcIiArIGlkKTtcbn07XG5jb25zdCBjbGVhciA9IGZ1bmN0aW9uKCkge1xuICByZWxhdGlvbnMgPSBbXTtcbiAgY2xhc3NlcyA9IHt9O1xuICBub3RlcyA9IFtdO1xuICBmdW5jdGlvbnMgPSBbXTtcbiAgZnVuY3Rpb25zLnB1c2goc2V0dXBUb29sVGlwcyk7XG4gIG5hbWVzcGFjZXMgPSB7fTtcbiAgbmFtZXNwYWNlQ291bnRlciA9IDA7XG4gIGNsZWFyJDEoKTtcbn07XG5jb25zdCBnZXRDbGFzcyA9IGZ1bmN0aW9uKGlkKSB7XG4gIHJldHVybiBjbGFzc2VzW2lkXTtcbn07XG5jb25zdCBnZXRDbGFzc2VzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBjbGFzc2VzO1xufTtcbmNvbnN0IGdldFJlbGF0aW9ucyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gcmVsYXRpb25zO1xufTtcbmNvbnN0IGdldE5vdGVzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBub3Rlcztcbn07XG5jb25zdCBhZGRSZWxhdGlvbiA9IGZ1bmN0aW9uKHJlbGF0aW9uKSB7XG4gIGxvZy5kZWJ1ZyhcIkFkZGluZyByZWxhdGlvbjogXCIgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbikpO1xuICBhZGRDbGFzcyhyZWxhdGlvbi5pZDEpO1xuICBhZGRDbGFzcyhyZWxhdGlvbi5pZDIpO1xuICByZWxhdGlvbi5pZDEgPSBzcGxpdENsYXNzTmFtZUFuZFR5cGUocmVsYXRpb24uaWQxKS5jbGFzc05hbWU7XG4gIHJlbGF0aW9uLmlkMiA9IHNwbGl0Q2xhc3NOYW1lQW5kVHlwZShyZWxhdGlvbi5pZDIpLmNsYXNzTmFtZTtcbiAgcmVsYXRpb24ucmVsYXRpb25UaXRsZTEgPSBjb21tb24uc2FuaXRpemVUZXh0KHJlbGF0aW9uLnJlbGF0aW9uVGl0bGUxLnRyaW0oKSwgZ2V0Q29uZmlnKCkpO1xuICByZWxhdGlvbi5yZWxhdGlvblRpdGxlMiA9IGNvbW1vbi5zYW5pdGl6ZVRleHQocmVsYXRpb24ucmVsYXRpb25UaXRsZTIudHJpbSgpLCBnZXRDb25maWcoKSk7XG4gIHJlbGF0aW9ucy5wdXNoKHJlbGF0aW9uKTtcbn07XG5jb25zdCBhZGRBbm5vdGF0aW9uID0gZnVuY3Rpb24oY2xhc3NOYW1lLCBhbm5vdGF0aW9uKSB7XG4gIGNvbnN0IHZhbGlkYXRlZENsYXNzTmFtZSA9IHNwbGl0Q2xhc3NOYW1lQW5kVHlwZShjbGFzc05hbWUpLmNsYXNzTmFtZTtcbiAgY2xhc3Nlc1t2YWxpZGF0ZWRDbGFzc05hbWVdLmFubm90YXRpb25zLnB1c2goYW5ub3RhdGlvbik7XG59O1xuY29uc3QgYWRkTWVtYmVyID0gZnVuY3Rpb24oY2xhc3NOYW1lLCBtZW1iZXIpIHtcbiAgYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgY29uc3QgdmFsaWRhdGVkQ2xhc3NOYW1lID0gc3BsaXRDbGFzc05hbWVBbmRUeXBlKGNsYXNzTmFtZSkuY2xhc3NOYW1lO1xuICBjb25zdCB0aGVDbGFzcyA9IGNsYXNzZXNbdmFsaWRhdGVkQ2xhc3NOYW1lXTtcbiAgaWYgKHR5cGVvZiBtZW1iZXIgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBtZW1iZXJTdHJpbmcgPSBtZW1iZXIudHJpbSgpO1xuICAgIGlmIChtZW1iZXJTdHJpbmcuc3RhcnRzV2l0aChcIjw8XCIpICYmIG1lbWJlclN0cmluZy5lbmRzV2l0aChcIj4+XCIpKSB7XG4gICAgICB0aGVDbGFzcy5hbm5vdGF0aW9ucy5wdXNoKHNhbml0aXplVGV4dChtZW1iZXJTdHJpbmcuc3Vic3RyaW5nKDIsIG1lbWJlclN0cmluZy5sZW5ndGggLSAyKSkpO1xuICAgIH0gZWxzZSBpZiAobWVtYmVyU3RyaW5nLmluZGV4T2YoXCIpXCIpID4gMCkge1xuICAgICAgdGhlQ2xhc3MubWV0aG9kcy5wdXNoKG5ldyBDbGFzc01lbWJlcihtZW1iZXJTdHJpbmcsIFwibWV0aG9kXCIpKTtcbiAgICB9IGVsc2UgaWYgKG1lbWJlclN0cmluZykge1xuICAgICAgdGhlQ2xhc3MubWVtYmVycy5wdXNoKG5ldyBDbGFzc01lbWJlcihtZW1iZXJTdHJpbmcsIFwiYXR0cmlidXRlXCIpKTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCBhZGRNZW1iZXJzID0gZnVuY3Rpb24oY2xhc3NOYW1lLCBtZW1iZXJzKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG1lbWJlcnMpKSB7XG4gICAgbWVtYmVycy5yZXZlcnNlKCk7XG4gICAgbWVtYmVycy5mb3JFYWNoKChtZW1iZXIpID0+IGFkZE1lbWJlcihjbGFzc05hbWUsIG1lbWJlcikpO1xuICB9XG59O1xuY29uc3QgYWRkTm90ZSA9IGZ1bmN0aW9uKHRleHQsIGNsYXNzTmFtZSkge1xuICBjb25zdCBub3RlID0ge1xuICAgIGlkOiBgbm90ZSR7bm90ZXMubGVuZ3RofWAsXG4gICAgY2xhc3M6IGNsYXNzTmFtZSxcbiAgICB0ZXh0XG4gIH07XG4gIG5vdGVzLnB1c2gobm90ZSk7XG59O1xuY29uc3QgY2xlYW51cExhYmVsID0gZnVuY3Rpb24obGFiZWwpIHtcbiAgaWYgKGxhYmVsLnN0YXJ0c1dpdGgoXCI6XCIpKSB7XG4gICAgbGFiZWwgPSBsYWJlbC5zdWJzdHJpbmcoMSk7XG4gIH1cbiAgcmV0dXJuIHNhbml0aXplVGV4dChsYWJlbC50cmltKCkpO1xufTtcbmNvbnN0IHNldENzc0NsYXNzID0gZnVuY3Rpb24oaWRzLCBjbGFzc05hbWUpIHtcbiAgaWRzLnNwbGl0KFwiLFwiKS5mb3JFYWNoKGZ1bmN0aW9uKF9pZCkge1xuICAgIGxldCBpZCA9IF9pZDtcbiAgICBpZiAoX2lkWzBdLm1hdGNoKC9cXGQvKSkge1xuICAgICAgaWQgPSBNRVJNQUlEX0RPTV9JRF9QUkVGSVggKyBpZDtcbiAgICB9XG4gICAgaWYgKGNsYXNzZXNbaWRdICE9PSB2b2lkIDApIHtcbiAgICAgIGNsYXNzZXNbaWRdLmNzc0NsYXNzZXMucHVzaChjbGFzc05hbWUpO1xuICAgIH1cbiAgfSk7XG59O1xuY29uc3Qgc2V0VG9vbHRpcCA9IGZ1bmN0aW9uKGlkcywgdG9vbHRpcCkge1xuICBpZHMuc3BsaXQoXCIsXCIpLmZvckVhY2goZnVuY3Rpb24oaWQpIHtcbiAgICBpZiAodG9vbHRpcCAhPT0gdm9pZCAwKSB7XG4gICAgICBjbGFzc2VzW2lkXS50b29sdGlwID0gc2FuaXRpemVUZXh0KHRvb2x0aXApO1xuICAgIH1cbiAgfSk7XG59O1xuY29uc3QgZ2V0VG9vbHRpcCA9IGZ1bmN0aW9uKGlkLCBuYW1lc3BhY2UpIHtcbiAgaWYgKG5hbWVzcGFjZSkge1xuICAgIHJldHVybiBuYW1lc3BhY2VzW25hbWVzcGFjZV0uY2xhc3Nlc1tpZF0udG9vbHRpcDtcbiAgfVxuICByZXR1cm4gY2xhc3Nlc1tpZF0udG9vbHRpcDtcbn07XG5jb25zdCBzZXRMaW5rID0gZnVuY3Rpb24oaWRzLCBsaW5rU3RyLCB0YXJnZXQpIHtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gIGlkcy5zcGxpdChcIixcIikuZm9yRWFjaChmdW5jdGlvbihfaWQpIHtcbiAgICBsZXQgaWQgPSBfaWQ7XG4gICAgaWYgKF9pZFswXS5tYXRjaCgvXFxkLykpIHtcbiAgICAgIGlkID0gTUVSTUFJRF9ET01fSURfUFJFRklYICsgaWQ7XG4gICAgfVxuICAgIGlmIChjbGFzc2VzW2lkXSAhPT0gdm9pZCAwKSB7XG4gICAgICBjbGFzc2VzW2lkXS5saW5rID0gdXRpbHMuZm9ybWF0VXJsKGxpbmtTdHIsIGNvbmZpZyk7XG4gICAgICBpZiAoY29uZmlnLnNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiKSB7XG4gICAgICAgIGNsYXNzZXNbaWRdLmxpbmtUYXJnZXQgPSBcIl90b3BcIjtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRhcmdldCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjbGFzc2VzW2lkXS5saW5rVGFyZ2V0ID0gc2FuaXRpemVUZXh0KHRhcmdldCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGFzc2VzW2lkXS5saW5rVGFyZ2V0ID0gXCJfYmxhbmtcIjtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBzZXRDc3NDbGFzcyhpZHMsIFwiY2xpY2thYmxlXCIpO1xufTtcbmNvbnN0IHNldENsaWNrRXZlbnQgPSBmdW5jdGlvbihpZHMsIGZ1bmN0aW9uTmFtZSwgZnVuY3Rpb25BcmdzKSB7XG4gIGlkcy5zcGxpdChcIixcIikuZm9yRWFjaChmdW5jdGlvbihpZCkge1xuICAgIHNldENsaWNrRnVuYyhpZCwgZnVuY3Rpb25OYW1lLCBmdW5jdGlvbkFyZ3MpO1xuICAgIGNsYXNzZXNbaWRdLmhhdmVDYWxsYmFjayA9IHRydWU7XG4gIH0pO1xuICBzZXRDc3NDbGFzcyhpZHMsIFwiY2xpY2thYmxlXCIpO1xufTtcbmNvbnN0IHNldENsaWNrRnVuYyA9IGZ1bmN0aW9uKF9kb21JZCwgZnVuY3Rpb25OYW1lLCBmdW5jdGlvbkFyZ3MpIHtcbiAgY29uc3QgZG9tSWQgPSBjb21tb24uc2FuaXRpemVUZXh0KF9kb21JZCwgZ2V0Q29uZmlnKCkpO1xuICBjb25zdCBjb25maWcgPSBnZXRDb25maWcoKTtcbiAgaWYgKGNvbmZpZy5zZWN1cml0eUxldmVsICE9PSBcImxvb3NlXCIpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGZ1bmN0aW9uTmFtZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGlkID0gZG9tSWQ7XG4gIGlmIChjbGFzc2VzW2lkXSAhPT0gdm9pZCAwKSB7XG4gICAgY29uc3QgZWxlbUlkID0gbG9va1VwRG9tSWQoaWQpO1xuICAgIGxldCBhcmdMaXN0ID0gW107XG4gICAgaWYgKHR5cGVvZiBmdW5jdGlvbkFyZ3MgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGFyZ0xpc3QgPSBmdW5jdGlvbkFyZ3Muc3BsaXQoLywoPz0oPzooPzpbXlwiXSpcIil7Mn0pKlteXCJdKiQpLyk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ0xpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGl0ZW0gPSBhcmdMaXN0W2ldLnRyaW0oKTtcbiAgICAgICAgaWYgKGl0ZW0uY2hhckF0KDApID09PSAnXCInICYmIGl0ZW0uY2hhckF0KGl0ZW0ubGVuZ3RoIC0gMSkgPT09ICdcIicpIHtcbiAgICAgICAgICBpdGVtID0gaXRlbS5zdWJzdHIoMSwgaXRlbS5sZW5ndGggLSAyKTtcbiAgICAgICAgfVxuICAgICAgICBhcmdMaXN0W2ldID0gaXRlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGFyZ0xpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICBhcmdMaXN0LnB1c2goZWxlbUlkKTtcbiAgICB9XG4gICAgZnVuY3Rpb25zLnB1c2goZnVuY3Rpb24oKSB7XG4gICAgICBjb25zdCBlbGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtlbGVtSWR9XCJdYCk7XG4gICAgICBpZiAoZWxlbSAhPT0gbnVsbCkge1xuICAgICAgICBlbGVtLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgXCJjbGlja1wiLFxuICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdXRpbHMucnVuRnVuYyhmdW5jdGlvbk5hbWUsIC4uLmFyZ0xpc3QpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcbmNvbnN0IGJpbmRGdW5jdGlvbnMgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gIGZ1bmN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGZ1bikge1xuICAgIGZ1bihlbGVtZW50KTtcbiAgfSk7XG59O1xuY29uc3QgbGluZVR5cGUgPSB7XG4gIExJTkU6IDAsXG4gIERPVFRFRF9MSU5FOiAxXG59O1xuY29uc3QgcmVsYXRpb25UeXBlID0ge1xuICBBR0dSRUdBVElPTjogMCxcbiAgRVhURU5TSU9OOiAxLFxuICBDT01QT1NJVElPTjogMixcbiAgREVQRU5ERU5DWTogMyxcbiAgTE9MTElQT1A6IDRcbn07XG5jb25zdCBzZXR1cFRvb2xUaXBzID0gZnVuY3Rpb24oZWxlbWVudCkge1xuICBsZXQgdG9vbHRpcEVsZW0gPSBzZWxlY3QoXCIubWVybWFpZFRvb2x0aXBcIik7XG4gIGlmICgodG9vbHRpcEVsZW0uX2dyb3VwcyB8fCB0b29sdGlwRWxlbSlbMF1bMF0gPT09IG51bGwpIHtcbiAgICB0b29sdGlwRWxlbSA9IHNlbGVjdChcImJvZHlcIikuYXBwZW5kKFwiZGl2XCIpLmF0dHIoXCJjbGFzc1wiLCBcIm1lcm1haWRUb29sdGlwXCIpLnN0eWxlKFwib3BhY2l0eVwiLCAwKTtcbiAgfVxuICBjb25zdCBzdmcgPSBzZWxlY3QoZWxlbWVudCkuc2VsZWN0KFwic3ZnXCIpO1xuICBjb25zdCBub2RlcyA9IHN2Zy5zZWxlY3RBbGwoXCJnLm5vZGVcIik7XG4gIG5vZGVzLm9uKFwibW91c2VvdmVyXCIsIGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IGVsID0gc2VsZWN0KHRoaXMpO1xuICAgIGNvbnN0IHRpdGxlID0gZWwuYXR0cihcInRpdGxlXCIpO1xuICAgIGlmICh0aXRsZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZWN0ID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0b29sdGlwRWxlbS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMjAwKS5zdHlsZShcIm9wYWNpdHlcIiwgXCIuOVwiKTtcbiAgICB0b29sdGlwRWxlbS50ZXh0KGVsLmF0dHIoXCJ0aXRsZVwiKSkuc3R5bGUoXCJsZWZ0XCIsIHdpbmRvdy5zY3JvbGxYICsgcmVjdC5sZWZ0ICsgKHJlY3QucmlnaHQgLSByZWN0LmxlZnQpIC8gMiArIFwicHhcIikuc3R5bGUoXCJ0b3BcIiwgd2luZG93LnNjcm9sbFkgKyByZWN0LnRvcCAtIDE0ICsgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgKyBcInB4XCIpO1xuICAgIHRvb2x0aXBFbGVtLmh0bWwodG9vbHRpcEVsZW0uaHRtbCgpLnJlcGxhY2UoLyZsdDticlxcLyZndDsvZywgXCI8YnIvPlwiKSk7XG4gICAgZWwuY2xhc3NlZChcImhvdmVyXCIsIHRydWUpO1xuICB9KS5vbihcIm1vdXNlb3V0XCIsIGZ1bmN0aW9uKCkge1xuICAgIHRvb2x0aXBFbGVtLnRyYW5zaXRpb24oKS5kdXJhdGlvbig1MDApLnN0eWxlKFwib3BhY2l0eVwiLCAwKTtcbiAgICBjb25zdCBlbCA9IHNlbGVjdCh0aGlzKTtcbiAgICBlbC5jbGFzc2VkKFwiaG92ZXJcIiwgZmFsc2UpO1xuICB9KTtcbn07XG5mdW5jdGlvbnMucHVzaChzZXR1cFRvb2xUaXBzKTtcbmxldCBkaXJlY3Rpb24gPSBcIlRCXCI7XG5jb25zdCBnZXREaXJlY3Rpb24gPSAoKSA9PiBkaXJlY3Rpb247XG5jb25zdCBzZXREaXJlY3Rpb24gPSAoZGlyKSA9PiB7XG4gIGRpcmVjdGlvbiA9IGRpcjtcbn07XG5jb25zdCBhZGROYW1lc3BhY2UgPSBmdW5jdGlvbihpZCkge1xuICBpZiAobmFtZXNwYWNlc1tpZF0gIT09IHZvaWQgMCkge1xuICAgIHJldHVybjtcbiAgfVxuICBuYW1lc3BhY2VzW2lkXSA9IHtcbiAgICBpZCxcbiAgICBjbGFzc2VzOiB7fSxcbiAgICBjaGlsZHJlbjoge30sXG4gICAgZG9tSWQ6IE1FUk1BSURfRE9NX0lEX1BSRUZJWCArIGlkICsgXCItXCIgKyBuYW1lc3BhY2VDb3VudGVyXG4gIH07XG4gIG5hbWVzcGFjZUNvdW50ZXIrKztcbn07XG5jb25zdCBnZXROYW1lc3BhY2UgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHJldHVybiBuYW1lc3BhY2VzW25hbWVdO1xufTtcbmNvbnN0IGdldE5hbWVzcGFjZXMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG5hbWVzcGFjZXM7XG59O1xuY29uc3QgYWRkQ2xhc3Nlc1RvTmFtZXNwYWNlID0gZnVuY3Rpb24oaWQsIGNsYXNzTmFtZXMpIHtcbiAgaWYgKG5hbWVzcGFjZXNbaWRdID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgZm9yIChjb25zdCBuYW1lIG9mIGNsYXNzTmFtZXMpIHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSB9ID0gc3BsaXRDbGFzc05hbWVBbmRUeXBlKG5hbWUpO1xuICAgIGNsYXNzZXNbY2xhc3NOYW1lXS5wYXJlbnQgPSBpZDtcbiAgICBuYW1lc3BhY2VzW2lkXS5jbGFzc2VzW2NsYXNzTmFtZV0gPSBjbGFzc2VzW2NsYXNzTmFtZV07XG4gIH1cbn07XG5jb25zdCBzZXRDc3NTdHlsZSA9IGZ1bmN0aW9uKGlkLCBzdHlsZXMyKSB7XG4gIGNvbnN0IHRoaXNDbGFzcyA9IGNsYXNzZXNbaWRdO1xuICBpZiAoIXN0eWxlczIgfHwgIXRoaXNDbGFzcykge1xuICAgIHJldHVybjtcbiAgfVxuICBmb3IgKGNvbnN0IHMgb2Ygc3R5bGVzMikge1xuICAgIGlmIChzLmluY2x1ZGVzKFwiLFwiKSkge1xuICAgICAgdGhpc0NsYXNzLnN0eWxlcy5wdXNoKC4uLnMuc3BsaXQoXCIsXCIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpc0NsYXNzLnN0eWxlcy5wdXNoKHMpO1xuICAgIH1cbiAgfVxufTtcbmNvbnN0IGRiID0ge1xuICBzZXRBY2NUaXRsZSxcbiAgZ2V0QWNjVGl0bGUsXG4gIGdldEFjY0Rlc2NyaXB0aW9uLFxuICBzZXRBY2NEZXNjcmlwdGlvbixcbiAgZ2V0Q29uZmlnOiAoKSA9PiBnZXRDb25maWcoKS5jbGFzcyxcbiAgYWRkQ2xhc3MsXG4gIGJpbmRGdW5jdGlvbnMsXG4gIGNsZWFyLFxuICBnZXRDbGFzcyxcbiAgZ2V0Q2xhc3NlcyxcbiAgZ2V0Tm90ZXMsXG4gIGFkZEFubm90YXRpb24sXG4gIGFkZE5vdGUsXG4gIGdldFJlbGF0aW9ucyxcbiAgYWRkUmVsYXRpb24sXG4gIGdldERpcmVjdGlvbixcbiAgc2V0RGlyZWN0aW9uLFxuICBhZGRNZW1iZXIsXG4gIGFkZE1lbWJlcnMsXG4gIGNsZWFudXBMYWJlbCxcbiAgbGluZVR5cGUsXG4gIHJlbGF0aW9uVHlwZSxcbiAgc2V0Q2xpY2tFdmVudCxcbiAgc2V0Q3NzQ2xhc3MsXG4gIHNldExpbmssXG4gIGdldFRvb2x0aXAsXG4gIHNldFRvb2x0aXAsXG4gIGxvb2tVcERvbUlkLFxuICBzZXREaWFncmFtVGl0bGUsXG4gIGdldERpYWdyYW1UaXRsZSxcbiAgc2V0Q2xhc3NMYWJlbCxcbiAgYWRkTmFtZXNwYWNlLFxuICBhZGRDbGFzc2VzVG9OYW1lc3BhY2UsXG4gIGdldE5hbWVzcGFjZSxcbiAgZ2V0TmFtZXNwYWNlcyxcbiAgc2V0Q3NzU3R5bGVcbn07XG5jb25zdCBnZXRTdHlsZXMgPSAob3B0aW9ucykgPT4gYGcuY2xhc3NHcm91cCB0ZXh0IHtcbiAgZmlsbDogJHtvcHRpb25zLm5vZGVCb3JkZXIgfHwgb3B0aW9ucy5jbGFzc1RleHR9O1xuICBzdHJva2U6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiAke29wdGlvbnMuZm9udEZhbWlseX07XG4gIGZvbnQtc2l6ZTogMTBweDtcblxuICAudGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxufVxuXG4ubm9kZUxhYmVsLCAuZWRnZUxhYmVsIHtcbiAgY29sb3I6ICR7b3B0aW9ucy5jbGFzc1RleHR9O1xufVxuLmVkZ2VMYWJlbCAubGFiZWwgcmVjdCB7XG4gIGZpbGw6ICR7b3B0aW9ucy5tYWluQmtnfTtcbn1cbi5sYWJlbCB0ZXh0IHtcbiAgZmlsbDogJHtvcHRpb25zLmNsYXNzVGV4dH07XG59XG4uZWRnZUxhYmVsIC5sYWJlbCBzcGFuIHtcbiAgYmFja2dyb3VuZDogJHtvcHRpb25zLm1haW5Ca2d9O1xufVxuXG4uY2xhc3NUaXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG4ubm9kZSByZWN0LFxuICAubm9kZSBjaXJjbGUsXG4gIC5ub2RlIGVsbGlwc2UsXG4gIC5ub2RlIHBvbHlnb24sXG4gIC5ub2RlIHBhdGgge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5tYWluQmtnfTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5ub2RlQm9yZGVyfTtcbiAgICBzdHJva2Utd2lkdGg6IDFweDtcbiAgfVxuXG5cbi5kaXZpZGVyIHtcbiAgc3Ryb2tlOiAke29wdGlvbnMubm9kZUJvcmRlcn07XG4gIHN0cm9rZS13aWR0aDogMTtcbn1cblxuZy5jbGlja2FibGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmcuY2xhc3NHcm91cCByZWN0IHtcbiAgZmlsbDogJHtvcHRpb25zLm1haW5Ca2d9O1xuICBzdHJva2U6ICR7b3B0aW9ucy5ub2RlQm9yZGVyfTtcbn1cblxuZy5jbGFzc0dyb3VwIGxpbmUge1xuICBzdHJva2U6ICR7b3B0aW9ucy5ub2RlQm9yZGVyfTtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xufVxuXG4uY2xhc3NMYWJlbCAuYm94IHtcbiAgc3Ryb2tlOiBub25lO1xuICBzdHJva2Utd2lkdGg6IDA7XG4gIGZpbGw6ICR7b3B0aW9ucy5tYWluQmtnfTtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uY2xhc3NMYWJlbCAubGFiZWwge1xuICBmaWxsOiAke29wdGlvbnMubm9kZUJvcmRlcn07XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLnJlbGF0aW9uIHtcbiAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfTtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xuICBmaWxsOiBub25lO1xufVxuXG4uZGFzaGVkLWxpbmV7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDM7XG59XG5cbi5kb3R0ZWQtbGluZXtcbiAgc3Ryb2tlLWRhc2hhcnJheTogMSAyO1xufVxuXG4jY29tcG9zaXRpb25TdGFydCwgLmNvbXBvc2l0aW9uIHtcbiAgZmlsbDogJHtvcHRpb25zLmxpbmVDb2xvcn0gIWltcG9ydGFudDtcbiAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfSAhaW1wb3J0YW50O1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG5cbiNjb21wb3NpdGlvbkVuZCwgLmNvbXBvc2l0aW9uIHtcbiAgZmlsbDogJHtvcHRpb25zLmxpbmVDb2xvcn0gIWltcG9ydGFudDtcbiAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfSAhaW1wb3J0YW50O1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG5cbiNkZXBlbmRlbmN5U3RhcnQsIC5kZXBlbmRlbmN5IHtcbiAgZmlsbDogJHtvcHRpb25zLmxpbmVDb2xvcn0gIWltcG9ydGFudDtcbiAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfSAhaW1wb3J0YW50O1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG5cbiNkZXBlbmRlbmN5U3RhcnQsIC5kZXBlbmRlbmN5IHtcbiAgZmlsbDogJHtvcHRpb25zLmxpbmVDb2xvcn0gIWltcG9ydGFudDtcbiAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfSAhaW1wb3J0YW50O1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG5cbiNleHRlbnNpb25TdGFydCwgLmV4dGVuc2lvbiB7XG4gIGZpbGw6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHN0cm9rZTogJHtvcHRpb25zLmxpbmVDb2xvcn0gIWltcG9ydGFudDtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xufVxuXG4jZXh0ZW5zaW9uRW5kLCAuZXh0ZW5zaW9uIHtcbiAgZmlsbDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfSAhaW1wb3J0YW50O1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG5cbiNhZ2dyZWdhdGlvblN0YXJ0LCAuYWdncmVnYXRpb24ge1xuICBmaWxsOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBzdHJva2U6ICR7b3B0aW9ucy5saW5lQ29sb3J9ICFpbXBvcnRhbnQ7XG4gIHN0cm9rZS13aWR0aDogMTtcbn1cblxuI2FnZ3JlZ2F0aW9uRW5kLCAuYWdncmVnYXRpb24ge1xuICBmaWxsOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBzdHJva2U6ICR7b3B0aW9ucy5saW5lQ29sb3J9ICFpbXBvcnRhbnQ7XG4gIHN0cm9rZS13aWR0aDogMTtcbn1cblxuI2xvbGxpcG9wU3RhcnQsIC5sb2xsaXBvcCB7XG4gIGZpbGw6ICR7b3B0aW9ucy5tYWluQmtnfSAhaW1wb3J0YW50O1xuICBzdHJva2U6ICR7b3B0aW9ucy5saW5lQ29sb3J9ICFpbXBvcnRhbnQ7XG4gIHN0cm9rZS13aWR0aDogMTtcbn1cblxuI2xvbGxpcG9wRW5kLCAubG9sbGlwb3Age1xuICBmaWxsOiAke29wdGlvbnMubWFpbkJrZ30gIWltcG9ydGFudDtcbiAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfSAhaW1wb3J0YW50O1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG5cbi5lZGdlVGVybWluYWxzIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbn1cblxuLmNsYXNzVGl0bGVUZXh0IHtcbiAgdGV4dC1hbmNob3I6IG1pZGRsZTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmaWxsOiAke29wdGlvbnMudGV4dENvbG9yfTtcbn1cbmA7XG5jb25zdCBzdHlsZXMgPSBnZXRTdHlsZXM7XG5leHBvcnQge1xuICBkYiBhcyBkLFxuICBwYXJzZXIkMSBhcyBwLFxuICBzdHlsZXMgYXMgc1xufTtcbiIsCiAgICAiaW1wb3J0IHsgcCBhcyBwYXJzZXIsIGQgYXMgZGIsIHMgYXMgc3R5bGVzIH0gZnJvbSBcIi4vc3R5bGVzLWI4M2IzMWM5LmpzXCI7XG5pbXBvcnQgeyBsaW5lLCBjdXJ2ZUJhc2lzLCBzZWxlY3QgfSBmcm9tIFwiZDNcIjtcbmltcG9ydCB7IGxheW91dCB9IGZyb20gXCJkYWdyZS1kMy1lcy9zcmMvZGFncmUvaW5kZXguanNcIjtcbmltcG9ydCAqIGFzIGdyYXBobGliIGZyb20gXCJkYWdyZS1kMy1lcy9zcmMvZ3JhcGhsaWIvaW5kZXguanNcIjtcbmltcG9ydCB7IHUgYXMgdXRpbHMsIGwgYXMgbG9nLCB4IGFzIHBhcnNlR2VuZXJpY1R5cGVzLCBjIGFzIGdldENvbmZpZywgaSBhcyBjb25maWd1cmVTdmdTaXplIH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IFwidHMtZGVkZW50XCI7XG5pbXBvcnQgXCJkYXlqc1wiO1xuaW1wb3J0IFwiQGJyYWludHJlZS9zYW5pdGl6ZS11cmxcIjtcbmltcG9ydCBcImRvbXB1cmlmeVwiO1xuaW1wb3J0IFwia2hyb21hXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lcmdlLmpzXCI7XG5pbXBvcnQgXCJzdHlsaXNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9pc0VtcHR5LmpzXCI7XG5sZXQgZWRnZUNvdW50ID0gMDtcbmNvbnN0IGRyYXdFZGdlID0gZnVuY3Rpb24oZWxlbSwgcGF0aCwgcmVsYXRpb24sIGNvbmYsIGRpYWdPYmopIHtcbiAgY29uc3QgZ2V0UmVsYXRpb25UeXBlID0gZnVuY3Rpb24odHlwZSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBkaWFnT2JqLmRiLnJlbGF0aW9uVHlwZS5BR0dSRUdBVElPTjpcbiAgICAgICAgcmV0dXJuIFwiYWdncmVnYXRpb25cIjtcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5yZWxhdGlvblR5cGUuRVhURU5TSU9OOlxuICAgICAgICByZXR1cm4gXCJleHRlbnNpb25cIjtcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5yZWxhdGlvblR5cGUuQ09NUE9TSVRJT046XG4gICAgICAgIHJldHVybiBcImNvbXBvc2l0aW9uXCI7XG4gICAgICBjYXNlIGRpYWdPYmouZGIucmVsYXRpb25UeXBlLkRFUEVOREVOQ1k6XG4gICAgICAgIHJldHVybiBcImRlcGVuZGVuY3lcIjtcbiAgICAgIGNhc2UgZGlhZ09iai5kYi5yZWxhdGlvblR5cGUuTE9MTElQT1A6XG4gICAgICAgIHJldHVybiBcImxvbGxpcG9wXCI7XG4gICAgfVxuICB9O1xuICBwYXRoLnBvaW50cyA9IHBhdGgucG9pbnRzLmZpbHRlcigocCkgPT4gIU51bWJlci5pc05hTihwLnkpKTtcbiAgY29uc3QgbGluZURhdGEgPSBwYXRoLnBvaW50cztcbiAgY29uc3QgbGluZUZ1bmN0aW9uID0gbGluZSgpLngoZnVuY3Rpb24oZCkge1xuICAgIHJldHVybiBkLng7XG4gIH0pLnkoZnVuY3Rpb24oZCkge1xuICAgIHJldHVybiBkLnk7XG4gIH0pLmN1cnZlKGN1cnZlQmFzaXMpO1xuICBjb25zdCBzdmdQYXRoID0gZWxlbS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIGxpbmVGdW5jdGlvbihsaW5lRGF0YSkpLmF0dHIoXCJpZFwiLCBcImVkZ2VcIiArIGVkZ2VDb3VudCkuYXR0cihcImNsYXNzXCIsIFwicmVsYXRpb25cIik7XG4gIGxldCB1cmwgPSBcIlwiO1xuICBpZiAoY29uZi5hcnJvd01hcmtlckFic29sdXRlKSB7XG4gICAgdXJsID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKC9cXCgvZywgXCJcXFxcKFwiKTtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgvXFwpL2csIFwiXFxcXClcIik7XG4gIH1cbiAgaWYgKHJlbGF0aW9uLnJlbGF0aW9uLmxpbmVUeXBlID09IDEpIHtcbiAgICBzdmdQYXRoLmF0dHIoXCJjbGFzc1wiLCBcInJlbGF0aW9uIGRhc2hlZC1saW5lXCIpO1xuICB9XG4gIGlmIChyZWxhdGlvbi5yZWxhdGlvbi5saW5lVHlwZSA9PSAxMCkge1xuICAgIHN2Z1BhdGguYXR0cihcImNsYXNzXCIsIFwicmVsYXRpb24gZG90dGVkLWxpbmVcIik7XG4gIH1cbiAgaWYgKHJlbGF0aW9uLnJlbGF0aW9uLnR5cGUxICE9PSBcIm5vbmVcIikge1xuICAgIHN2Z1BhdGguYXR0cihcbiAgICAgIFwibWFya2VyLXN0YXJ0XCIsXG4gICAgICBcInVybChcIiArIHVybCArIFwiI1wiICsgZ2V0UmVsYXRpb25UeXBlKHJlbGF0aW9uLnJlbGF0aW9uLnR5cGUxKSArIFwiU3RhcnQpXCJcbiAgICApO1xuICB9XG4gIGlmIChyZWxhdGlvbi5yZWxhdGlvbi50eXBlMiAhPT0gXCJub25lXCIpIHtcbiAgICBzdmdQYXRoLmF0dHIoXG4gICAgICBcIm1hcmtlci1lbmRcIixcbiAgICAgIFwidXJsKFwiICsgdXJsICsgXCIjXCIgKyBnZXRSZWxhdGlvblR5cGUocmVsYXRpb24ucmVsYXRpb24udHlwZTIpICsgXCJFbmQpXCJcbiAgICApO1xuICB9XG4gIGxldCB4LCB5O1xuICBjb25zdCBsID0gcGF0aC5wb2ludHMubGVuZ3RoO1xuICBsZXQgbGFiZWxQb3NpdGlvbiA9IHV0aWxzLmNhbGNMYWJlbFBvc2l0aW9uKHBhdGgucG9pbnRzKTtcbiAgeCA9IGxhYmVsUG9zaXRpb24ueDtcbiAgeSA9IGxhYmVsUG9zaXRpb24ueTtcbiAgbGV0IHAxX2NhcmRfeCwgcDFfY2FyZF95O1xuICBsZXQgcDJfY2FyZF94LCBwMl9jYXJkX3k7XG4gIGlmIChsICUgMiAhPT0gMCAmJiBsID4gMSkge1xuICAgIGxldCBjYXJkaW5hbGl0eV8xX3BvaW50ID0gdXRpbHMuY2FsY0NhcmRpbmFsaXR5UG9zaXRpb24oXG4gICAgICByZWxhdGlvbi5yZWxhdGlvbi50eXBlMSAhPT0gXCJub25lXCIsXG4gICAgICBwYXRoLnBvaW50cyxcbiAgICAgIHBhdGgucG9pbnRzWzBdXG4gICAgKTtcbiAgICBsZXQgY2FyZGluYWxpdHlfMl9wb2ludCA9IHV0aWxzLmNhbGNDYXJkaW5hbGl0eVBvc2l0aW9uKFxuICAgICAgcmVsYXRpb24ucmVsYXRpb24udHlwZTIgIT09IFwibm9uZVwiLFxuICAgICAgcGF0aC5wb2ludHMsXG4gICAgICBwYXRoLnBvaW50c1tsIC0gMV1cbiAgICApO1xuICAgIGxvZy5kZWJ1ZyhcImNhcmRpbmFsaXR5XzFfcG9pbnQgXCIgKyBKU09OLnN0cmluZ2lmeShjYXJkaW5hbGl0eV8xX3BvaW50KSk7XG4gICAgbG9nLmRlYnVnKFwiY2FyZGluYWxpdHlfMl9wb2ludCBcIiArIEpTT04uc3RyaW5naWZ5KGNhcmRpbmFsaXR5XzJfcG9pbnQpKTtcbiAgICBwMV9jYXJkX3ggPSBjYXJkaW5hbGl0eV8xX3BvaW50Lng7XG4gICAgcDFfY2FyZF95ID0gY2FyZGluYWxpdHlfMV9wb2ludC55O1xuICAgIHAyX2NhcmRfeCA9IGNhcmRpbmFsaXR5XzJfcG9pbnQueDtcbiAgICBwMl9jYXJkX3kgPSBjYXJkaW5hbGl0eV8yX3BvaW50Lnk7XG4gIH1cbiAgaWYgKHJlbGF0aW9uLnRpdGxlICE9PSB2b2lkIDApIHtcbiAgICBjb25zdCBnID0gZWxlbS5hcHBlbmQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImNsYXNzTGFiZWxcIik7XG4gICAgY29uc3QgbGFiZWwgPSBnLmFwcGVuZChcInRleHRcIikuYXR0cihcImNsYXNzXCIsIFwibGFiZWxcIikuYXR0cihcInhcIiwgeCkuYXR0cihcInlcIiwgeSkuYXR0cihcImZpbGxcIiwgXCJyZWRcIikuYXR0cihcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpLnRleHQocmVsYXRpb24udGl0bGUpO1xuICAgIHdpbmRvdy5sYWJlbCA9IGxhYmVsO1xuICAgIGNvbnN0IGJvdW5kcyA9IGxhYmVsLm5vZGUoKS5nZXRCQm94KCk7XG4gICAgZy5pbnNlcnQoXCJyZWN0XCIsIFwiOmZpcnN0LWNoaWxkXCIpLmF0dHIoXCJjbGFzc1wiLCBcImJveFwiKS5hdHRyKFwieFwiLCBib3VuZHMueCAtIGNvbmYucGFkZGluZyAvIDIpLmF0dHIoXCJ5XCIsIGJvdW5kcy55IC0gY29uZi5wYWRkaW5nIC8gMikuYXR0cihcIndpZHRoXCIsIGJvdW5kcy53aWR0aCArIGNvbmYucGFkZGluZykuYXR0cihcImhlaWdodFwiLCBib3VuZHMuaGVpZ2h0ICsgY29uZi5wYWRkaW5nKTtcbiAgfVxuICBsb2cuaW5mbyhcIlJlbmRlcmluZyByZWxhdGlvbiBcIiArIEpTT04uc3RyaW5naWZ5KHJlbGF0aW9uKSk7XG4gIGlmIChyZWxhdGlvbi5yZWxhdGlvblRpdGxlMSAhPT0gdm9pZCAwICYmIHJlbGF0aW9uLnJlbGF0aW9uVGl0bGUxICE9PSBcIm5vbmVcIikge1xuICAgIGNvbnN0IGcgPSBlbGVtLmFwcGVuZChcImdcIikuYXR0cihcImNsYXNzXCIsIFwiY2FyZGluYWxpdHlcIik7XG4gICAgZy5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJjbGFzc1wiLCBcInR5cGUxXCIpLmF0dHIoXCJ4XCIsIHAxX2NhcmRfeCkuYXR0cihcInlcIiwgcDFfY2FyZF95KS5hdHRyKFwiZmlsbFwiLCBcImJsYWNrXCIpLmF0dHIoXCJmb250LXNpemVcIiwgXCI2XCIpLnRleHQocmVsYXRpb24ucmVsYXRpb25UaXRsZTEpO1xuICB9XG4gIGlmIChyZWxhdGlvbi5yZWxhdGlvblRpdGxlMiAhPT0gdm9pZCAwICYmIHJlbGF0aW9uLnJlbGF0aW9uVGl0bGUyICE9PSBcIm5vbmVcIikge1xuICAgIGNvbnN0IGcgPSBlbGVtLmFwcGVuZChcImdcIikuYXR0cihcImNsYXNzXCIsIFwiY2FyZGluYWxpdHlcIik7XG4gICAgZy5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJjbGFzc1wiLCBcInR5cGUyXCIpLmF0dHIoXCJ4XCIsIHAyX2NhcmRfeCkuYXR0cihcInlcIiwgcDJfY2FyZF95KS5hdHRyKFwiZmlsbFwiLCBcImJsYWNrXCIpLmF0dHIoXCJmb250LXNpemVcIiwgXCI2XCIpLnRleHQocmVsYXRpb24ucmVsYXRpb25UaXRsZTIpO1xuICB9XG4gIGVkZ2VDb3VudCsrO1xufTtcbmNvbnN0IGRyYXdDbGFzcyA9IGZ1bmN0aW9uKGVsZW0sIGNsYXNzRGVmLCBjb25mLCBkaWFnT2JqKSB7XG4gIGxvZy5kZWJ1ZyhcIlJlbmRlcmluZyBjbGFzcyBcIiwgY2xhc3NEZWYsIGNvbmYpO1xuICBjb25zdCBpZCA9IGNsYXNzRGVmLmlkO1xuICBjb25zdCBjbGFzc0luZm8gPSB7XG4gICAgaWQsXG4gICAgbGFiZWw6IGNsYXNzRGVmLmlkLFxuICAgIHdpZHRoOiAwLFxuICAgIGhlaWdodDogMFxuICB9O1xuICBjb25zdCBnID0gZWxlbS5hcHBlbmQoXCJnXCIpLmF0dHIoXCJpZFwiLCBkaWFnT2JqLmRiLmxvb2tVcERvbUlkKGlkKSkuYXR0cihcImNsYXNzXCIsIFwiY2xhc3NHcm91cFwiKTtcbiAgbGV0IHRpdGxlO1xuICBpZiAoY2xhc3NEZWYubGluaykge1xuICAgIHRpdGxlID0gZy5hcHBlbmQoXCJzdmc6YVwiKS5hdHRyKFwieGxpbms6aHJlZlwiLCBjbGFzc0RlZi5saW5rKS5hdHRyKFwidGFyZ2V0XCIsIGNsYXNzRGVmLmxpbmtUYXJnZXQpLmFwcGVuZChcInRleHRcIikuYXR0cihcInlcIiwgY29uZi50ZXh0SGVpZ2h0ICsgY29uZi5wYWRkaW5nKS5hdHRyKFwieFwiLCAwKTtcbiAgfSBlbHNlIHtcbiAgICB0aXRsZSA9IGcuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwieVwiLCBjb25mLnRleHRIZWlnaHQgKyBjb25mLnBhZGRpbmcpLmF0dHIoXCJ4XCIsIDApO1xuICB9XG4gIGxldCBpc0ZpcnN0ID0gdHJ1ZTtcbiAgY2xhc3NEZWYuYW5ub3RhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihtZW1iZXIpIHtcbiAgICBjb25zdCB0aXRsZVRleHQyID0gdGl0bGUuYXBwZW5kKFwidHNwYW5cIikudGV4dChcIsKrXCIgKyBtZW1iZXIgKyBcIsK7XCIpO1xuICAgIGlmICghaXNGaXJzdCkge1xuICAgICAgdGl0bGVUZXh0Mi5hdHRyKFwiZHlcIiwgY29uZi50ZXh0SGVpZ2h0KTtcbiAgICB9XG4gICAgaXNGaXJzdCA9IGZhbHNlO1xuICB9KTtcbiAgbGV0IGNsYXNzVGl0bGVTdHJpbmcgPSBnZXRDbGFzc1RpdGxlU3RyaW5nKGNsYXNzRGVmKTtcbiAgY29uc3QgY2xhc3NUaXRsZSA9IHRpdGxlLmFwcGVuZChcInRzcGFuXCIpLnRleHQoY2xhc3NUaXRsZVN0cmluZykuYXR0cihcImNsYXNzXCIsIFwidGl0bGVcIik7XG4gIGlmICghaXNGaXJzdCkge1xuICAgIGNsYXNzVGl0bGUuYXR0cihcImR5XCIsIGNvbmYudGV4dEhlaWdodCk7XG4gIH1cbiAgY29uc3QgdGl0bGVIZWlnaHQgPSB0aXRsZS5ub2RlKCkuZ2V0QkJveCgpLmhlaWdodDtcbiAgbGV0IG1lbWJlcnNMaW5lO1xuICBsZXQgbWVtYmVyc0JveDtcbiAgbGV0IG1ldGhvZHNMaW5lO1xuICBpZiAoY2xhc3NEZWYubWVtYmVycy5sZW5ndGggPiAwKSB7XG4gICAgbWVtYmVyc0xpbmUgPSBnLmFwcGVuZChcImxpbmVcIikuYXR0cihcIngxXCIsIDApLmF0dHIoXCJ5MVwiLCBjb25mLnBhZGRpbmcgKyB0aXRsZUhlaWdodCArIGNvbmYuZGl2aWRlck1hcmdpbiAvIDIpLmF0dHIoXCJ5MlwiLCBjb25mLnBhZGRpbmcgKyB0aXRsZUhlaWdodCArIGNvbmYuZGl2aWRlck1hcmdpbiAvIDIpO1xuICAgIGNvbnN0IG1lbWJlcnMgPSBnLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgY29uZi5wYWRkaW5nKS5hdHRyKFwieVwiLCB0aXRsZUhlaWdodCArIGNvbmYuZGl2aWRlck1hcmdpbiArIGNvbmYudGV4dEhlaWdodCkuYXR0cihcImZpbGxcIiwgXCJ3aGl0ZVwiKS5hdHRyKFwiY2xhc3NcIiwgXCJjbGFzc1RleHRcIik7XG4gICAgaXNGaXJzdCA9IHRydWU7XG4gICAgY2xhc3NEZWYubWVtYmVycy5mb3JFYWNoKGZ1bmN0aW9uKG1lbWJlcikge1xuICAgICAgYWRkVHNwYW4obWVtYmVycywgbWVtYmVyLCBpc0ZpcnN0LCBjb25mKTtcbiAgICAgIGlzRmlyc3QgPSBmYWxzZTtcbiAgICB9KTtcbiAgICBtZW1iZXJzQm94ID0gbWVtYmVycy5ub2RlKCkuZ2V0QkJveCgpO1xuICB9XG4gIGlmIChjbGFzc0RlZi5tZXRob2RzLmxlbmd0aCA+IDApIHtcbiAgICBtZXRob2RzTGluZSA9IGcuYXBwZW5kKFwibGluZVwiKS5hdHRyKFwieDFcIiwgMCkuYXR0cihcInkxXCIsIGNvbmYucGFkZGluZyArIHRpdGxlSGVpZ2h0ICsgY29uZi5kaXZpZGVyTWFyZ2luICsgbWVtYmVyc0JveC5oZWlnaHQpLmF0dHIoXCJ5MlwiLCBjb25mLnBhZGRpbmcgKyB0aXRsZUhlaWdodCArIGNvbmYuZGl2aWRlck1hcmdpbiArIG1lbWJlcnNCb3guaGVpZ2h0KTtcbiAgICBjb25zdCBtZXRob2RzID0gZy5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJ4XCIsIGNvbmYucGFkZGluZykuYXR0cihcInlcIiwgdGl0bGVIZWlnaHQgKyAyICogY29uZi5kaXZpZGVyTWFyZ2luICsgbWVtYmVyc0JveC5oZWlnaHQgKyBjb25mLnRleHRIZWlnaHQpLmF0dHIoXCJmaWxsXCIsIFwid2hpdGVcIikuYXR0cihcImNsYXNzXCIsIFwiY2xhc3NUZXh0XCIpO1xuICAgIGlzRmlyc3QgPSB0cnVlO1xuICAgIGNsYXNzRGVmLm1ldGhvZHMuZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHtcbiAgICAgIGFkZFRzcGFuKG1ldGhvZHMsIG1ldGhvZCwgaXNGaXJzdCwgY29uZik7XG4gICAgICBpc0ZpcnN0ID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cbiAgY29uc3QgY2xhc3NCb3ggPSBnLm5vZGUoKS5nZXRCQm94KCk7XG4gIHZhciBjc3NDbGFzc1N0ciA9IFwiIFwiO1xuICBpZiAoY2xhc3NEZWYuY3NzQ2xhc3Nlcy5sZW5ndGggPiAwKSB7XG4gICAgY3NzQ2xhc3NTdHIgPSBjc3NDbGFzc1N0ciArIGNsYXNzRGVmLmNzc0NsYXNzZXMuam9pbihcIiBcIik7XG4gIH1cbiAgY29uc3QgcmVjdCA9IGcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKS5hdHRyKFwieFwiLCAwKS5hdHRyKFwieVwiLCAwKS5hdHRyKFwid2lkdGhcIiwgY2xhc3NCb3gud2lkdGggKyAyICogY29uZi5wYWRkaW5nKS5hdHRyKFwiaGVpZ2h0XCIsIGNsYXNzQm94LmhlaWdodCArIGNvbmYucGFkZGluZyArIDAuNSAqIGNvbmYuZGl2aWRlck1hcmdpbikuYXR0cihcImNsYXNzXCIsIGNzc0NsYXNzU3RyKTtcbiAgY29uc3QgcmVjdFdpZHRoID0gcmVjdC5ub2RlKCkuZ2V0QkJveCgpLndpZHRoO1xuICB0aXRsZS5ub2RlKCkuY2hpbGROb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHgpIHtcbiAgICB4LnNldEF0dHJpYnV0ZShcInhcIiwgKHJlY3RXaWR0aCAtIHguZ2V0QkJveCgpLndpZHRoKSAvIDIpO1xuICB9KTtcbiAgaWYgKGNsYXNzRGVmLnRvb2x0aXApIHtcbiAgICB0aXRsZS5pbnNlcnQoXCJ0aXRsZVwiKS50ZXh0KGNsYXNzRGVmLnRvb2x0aXApO1xuICB9XG4gIGlmIChtZW1iZXJzTGluZSkge1xuICAgIG1lbWJlcnNMaW5lLmF0dHIoXCJ4MlwiLCByZWN0V2lkdGgpO1xuICB9XG4gIGlmIChtZXRob2RzTGluZSkge1xuICAgIG1ldGhvZHNMaW5lLmF0dHIoXCJ4MlwiLCByZWN0V2lkdGgpO1xuICB9XG4gIGNsYXNzSW5mby53aWR0aCA9IHJlY3RXaWR0aDtcbiAgY2xhc3NJbmZvLmhlaWdodCA9IGNsYXNzQm94LmhlaWdodCArIGNvbmYucGFkZGluZyArIDAuNSAqIGNvbmYuZGl2aWRlck1hcmdpbjtcbiAgcmV0dXJuIGNsYXNzSW5mbztcbn07XG5jb25zdCBnZXRDbGFzc1RpdGxlU3RyaW5nID0gZnVuY3Rpb24oY2xhc3NEZWYpIHtcbiAgbGV0IGNsYXNzVGl0bGVTdHJpbmcgPSBjbGFzc0RlZi5pZDtcbiAgaWYgKGNsYXNzRGVmLnR5cGUpIHtcbiAgICBjbGFzc1RpdGxlU3RyaW5nICs9IFwiPFwiICsgcGFyc2VHZW5lcmljVHlwZXMoY2xhc3NEZWYudHlwZSkgKyBcIj5cIjtcbiAgfVxuICByZXR1cm4gY2xhc3NUaXRsZVN0cmluZztcbn07XG5jb25zdCBkcmF3Tm90ZSA9IGZ1bmN0aW9uKGVsZW0sIG5vdGUsIGNvbmYsIGRpYWdPYmopIHtcbiAgbG9nLmRlYnVnKFwiUmVuZGVyaW5nIG5vdGUgXCIsIG5vdGUsIGNvbmYpO1xuICBjb25zdCBpZCA9IG5vdGUuaWQ7XG4gIGNvbnN0IG5vdGVJbmZvID0ge1xuICAgIGlkLFxuICAgIHRleHQ6IG5vdGUudGV4dCxcbiAgICB3aWR0aDogMCxcbiAgICBoZWlnaHQ6IDBcbiAgfTtcbiAgY29uc3QgZyA9IGVsZW0uYXBwZW5kKFwiZ1wiKS5hdHRyKFwiaWRcIiwgaWQpLmF0dHIoXCJjbGFzc1wiLCBcImNsYXNzR3JvdXBcIik7XG4gIGxldCB0ZXh0ID0gZy5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJ5XCIsIGNvbmYudGV4dEhlaWdodCArIGNvbmYucGFkZGluZykuYXR0cihcInhcIiwgMCk7XG4gIGNvbnN0IGxpbmVzID0gSlNPTi5wYXJzZShgXCIke25vdGUudGV4dH1cImApLnNwbGl0KFwiXFxuXCIpO1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUyKSB7XG4gICAgbG9nLmRlYnVnKGBBZGRpbmcgbGluZTogJHtsaW5lMn1gKTtcbiAgICB0ZXh0LmFwcGVuZChcInRzcGFuXCIpLnRleHQobGluZTIpLmF0dHIoXCJjbGFzc1wiLCBcInRpdGxlXCIpLmF0dHIoXCJkeVwiLCBjb25mLnRleHRIZWlnaHQpO1xuICB9KTtcbiAgY29uc3Qgbm90ZUJveCA9IGcubm9kZSgpLmdldEJCb3goKTtcbiAgY29uc3QgcmVjdCA9IGcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKS5hdHRyKFwieFwiLCAwKS5hdHRyKFwieVwiLCAwKS5hdHRyKFwid2lkdGhcIiwgbm90ZUJveC53aWR0aCArIDIgKiBjb25mLnBhZGRpbmcpLmF0dHIoXG4gICAgXCJoZWlnaHRcIixcbiAgICBub3RlQm94LmhlaWdodCArIGxpbmVzLmxlbmd0aCAqIGNvbmYudGV4dEhlaWdodCArIGNvbmYucGFkZGluZyArIDAuNSAqIGNvbmYuZGl2aWRlck1hcmdpblxuICApO1xuICBjb25zdCByZWN0V2lkdGggPSByZWN0Lm5vZGUoKS5nZXRCQm94KCkud2lkdGg7XG4gIHRleHQubm9kZSgpLmNoaWxkTm9kZXMuZm9yRWFjaChmdW5jdGlvbih4KSB7XG4gICAgeC5zZXRBdHRyaWJ1dGUoXCJ4XCIsIChyZWN0V2lkdGggLSB4LmdldEJCb3goKS53aWR0aCkgLyAyKTtcbiAgfSk7XG4gIG5vdGVJbmZvLndpZHRoID0gcmVjdFdpZHRoO1xuICBub3RlSW5mby5oZWlnaHQgPSBub3RlQm94LmhlaWdodCArIGxpbmVzLmxlbmd0aCAqIGNvbmYudGV4dEhlaWdodCArIGNvbmYucGFkZGluZyArIDAuNSAqIGNvbmYuZGl2aWRlck1hcmdpbjtcbiAgcmV0dXJuIG5vdGVJbmZvO1xufTtcbmNvbnN0IGFkZFRzcGFuID0gZnVuY3Rpb24odGV4dEVsLCBtZW1iZXIsIGlzRmlyc3QsIGNvbmYpIHtcbiAgY29uc3QgeyBkaXNwbGF5VGV4dCwgY3NzU3R5bGUgfSA9IG1lbWJlci5nZXREaXNwbGF5RGV0YWlscygpO1xuICBjb25zdCB0U3BhbiA9IHRleHRFbC5hcHBlbmQoXCJ0c3BhblwiKS5hdHRyKFwieFwiLCBjb25mLnBhZGRpbmcpLnRleHQoZGlzcGxheVRleHQpO1xuICBpZiAoY3NzU3R5bGUgIT09IFwiXCIpIHtcbiAgICB0U3Bhbi5hdHRyKFwic3R5bGVcIiwgbWVtYmVyLmNzc1N0eWxlKTtcbiAgfVxuICBpZiAoIWlzRmlyc3QpIHtcbiAgICB0U3Bhbi5hdHRyKFwiZHlcIiwgY29uZi50ZXh0SGVpZ2h0KTtcbiAgfVxufTtcbmNvbnN0IHN2Z0RyYXcgPSB7XG4gIGdldENsYXNzVGl0bGVTdHJpbmcsXG4gIGRyYXdDbGFzcyxcbiAgZHJhd0VkZ2UsXG4gIGRyYXdOb3RlXG59O1xubGV0IGlkQ2FjaGUgPSB7fTtcbmNvbnN0IHBhZGRpbmcgPSAyMDtcbmNvbnN0IGdldEdyYXBoSWQgPSBmdW5jdGlvbihsYWJlbCkge1xuICBjb25zdCBmb3VuZEVudHJ5ID0gT2JqZWN0LmVudHJpZXMoaWRDYWNoZSkuZmluZCgoZW50cnkpID0+IGVudHJ5WzFdLmxhYmVsID09PSBsYWJlbCk7XG4gIGlmIChmb3VuZEVudHJ5KSB7XG4gICAgcmV0dXJuIGZvdW5kRW50cnlbMF07XG4gIH1cbn07XG5jb25zdCBpbnNlcnRNYXJrZXJzID0gZnVuY3Rpb24oZWxlbSkge1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBcImV4dGVuc2lvblN0YXJ0XCIpLmF0dHIoXCJjbGFzc1wiLCBcImV4dGVuc2lvblwiKS5hdHRyKFwicmVmWFwiLCAwKS5hdHRyKFwicmVmWVwiLCA3KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTkwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI0MCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gMSw3IEwxOCwxMyBWIDEgWlwiKTtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgXCJleHRlbnNpb25FbmRcIikuYXR0cihcInJlZlhcIiwgMTkpLmF0dHIoXCJyZWZZXCIsIDcpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAyMCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCAyOCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gMSwxIFYgMTMgTDE4LDcgWlwiKTtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgXCJjb21wb3NpdGlvblN0YXJ0XCIpLmF0dHIoXCJjbGFzc1wiLCBcImV4dGVuc2lvblwiKS5hdHRyKFwicmVmWFwiLCAwKS5hdHRyKFwicmVmWVwiLCA3KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTkwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI0MCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gMTgsNyBMOSwxMyBMMSw3IEw5LDEgWlwiKTtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgXCJjb21wb3NpdGlvbkVuZFwiKS5hdHRyKFwicmVmWFwiLCAxOSkuYXR0cihcInJlZllcIiwgNykuYXR0cihcIm1hcmtlcldpZHRoXCIsIDIwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI4KS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAxOCw3IEw5LDEzIEwxLDcgTDksMSBaXCIpO1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBcImFnZ3JlZ2F0aW9uU3RhcnRcIikuYXR0cihcImNsYXNzXCIsIFwiZXh0ZW5zaW9uXCIpLmF0dHIoXCJyZWZYXCIsIDApLmF0dHIoXCJyZWZZXCIsIDcpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAxOTApLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMjQwKS5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIFwiTSAxOCw3IEw5LDEzIEwxLDcgTDksMSBaXCIpO1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBcImFnZ3JlZ2F0aW9uRW5kXCIpLmF0dHIoXCJyZWZYXCIsIDE5KS5hdHRyKFwicmVmWVwiLCA3KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMjApLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMjgpLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDE4LDcgTDksMTMgTDEsNyBMOSwxIFpcIik7XG4gIGVsZW0uYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIFwiZGVwZW5kZW5jeVN0YXJ0XCIpLmF0dHIoXCJjbGFzc1wiLCBcImV4dGVuc2lvblwiKS5hdHRyKFwicmVmWFwiLCAwKS5hdHRyKFwicmVmWVwiLCA3KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMTkwKS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDI0MCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gNSw3IEw5LDEzIEwxLDcgTDksMSBaXCIpO1xuICBlbGVtLmFwcGVuZChcImRlZnNcIikuYXBwZW5kKFwibWFya2VyXCIpLmF0dHIoXCJpZFwiLCBcImRlcGVuZGVuY3lFbmRcIikuYXR0cihcInJlZlhcIiwgMTkpLmF0dHIoXCJyZWZZXCIsIDcpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCAyMCkuYXR0cihcIm1hcmtlckhlaWdodFwiLCAyOCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gMTgsNyBMOSwxMyBMMTQsNyBMOSwxIFpcIik7XG59O1xuY29uc3QgZHJhdyA9IGZ1bmN0aW9uKHRleHQsIGlkLCBfdmVyc2lvbiwgZGlhZ09iaikge1xuICBjb25zdCBjb25mID0gZ2V0Q29uZmlnKCkuY2xhc3M7XG4gIGlkQ2FjaGUgPSB7fTtcbiAgbG9nLmluZm8oXCJSZW5kZXJpbmcgZGlhZ3JhbSBcIiArIHRleHQpO1xuICBjb25zdCBzZWN1cml0eUxldmVsID0gZ2V0Q29uZmlnKCkuc2VjdXJpdHlMZXZlbDtcbiAgbGV0IHNhbmRib3hFbGVtZW50O1xuICBpZiAoc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIpIHtcbiAgICBzYW5kYm94RWxlbWVudCA9IHNlbGVjdChcIiNpXCIgKyBpZCk7XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gc2VsZWN0KHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50LmJvZHkpIDogc2VsZWN0KFwiYm9keVwiKTtcbiAgY29uc3QgZGlhZ3JhbTIgPSByb290LnNlbGVjdChgW2lkPScke2lkfSddYCk7XG4gIGluc2VydE1hcmtlcnMoZGlhZ3JhbTIpO1xuICBjb25zdCBnID0gbmV3IGdyYXBobGliLkdyYXBoKHtcbiAgICBtdWx0aWdyYXBoOiB0cnVlXG4gIH0pO1xuICBnLnNldEdyYXBoKHtcbiAgICBpc011bHRpR3JhcGg6IHRydWVcbiAgfSk7XG4gIGcuc2V0RGVmYXVsdEVkZ2VMYWJlbChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4ge307XG4gIH0pO1xuICBjb25zdCBjbGFzc2VzID0gZGlhZ09iai5kYi5nZXRDbGFzc2VzKCk7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjbGFzc2VzKTtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGNvbnN0IGNsYXNzRGVmID0gY2xhc3Nlc1trZXldO1xuICAgIGNvbnN0IG5vZGUgPSBzdmdEcmF3LmRyYXdDbGFzcyhkaWFncmFtMiwgY2xhc3NEZWYsIGNvbmYsIGRpYWdPYmopO1xuICAgIGlkQ2FjaGVbbm9kZS5pZF0gPSBub2RlO1xuICAgIGcuc2V0Tm9kZShub2RlLmlkLCBub2RlKTtcbiAgICBsb2cuaW5mbyhcIk9yZyBoZWlnaHQ6IFwiICsgbm9kZS5oZWlnaHQpO1xuICB9XG4gIGNvbnN0IHJlbGF0aW9ucyA9IGRpYWdPYmouZGIuZ2V0UmVsYXRpb25zKCk7XG4gIHJlbGF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHJlbGF0aW9uKSB7XG4gICAgbG9nLmluZm8oXG4gICAgICAvLyBjc3BlbGw6aWdub3JlIHRqb2hvXG4gICAgICBcInRqb2hvXCIgKyBnZXRHcmFwaElkKHJlbGF0aW9uLmlkMSkgKyBnZXRHcmFwaElkKHJlbGF0aW9uLmlkMikgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbilcbiAgICApO1xuICAgIGcuc2V0RWRnZShcbiAgICAgIGdldEdyYXBoSWQocmVsYXRpb24uaWQxKSxcbiAgICAgIGdldEdyYXBoSWQocmVsYXRpb24uaWQyKSxcbiAgICAgIHtcbiAgICAgICAgcmVsYXRpb25cbiAgICAgIH0sXG4gICAgICByZWxhdGlvbi50aXRsZSB8fCBcIkRFRkFVTFRcIlxuICAgICk7XG4gIH0pO1xuICBjb25zdCBub3RlcyA9IGRpYWdPYmouZGIuZ2V0Tm90ZXMoKTtcbiAgbm90ZXMuZm9yRWFjaChmdW5jdGlvbihub3RlKSB7XG4gICAgbG9nLmRlYnVnKGBBZGRpbmcgbm90ZTogJHtKU09OLnN0cmluZ2lmeShub3RlKX1gKTtcbiAgICBjb25zdCBub2RlID0gc3ZnRHJhdy5kcmF3Tm90ZShkaWFncmFtMiwgbm90ZSwgY29uZiwgZGlhZ09iaik7XG4gICAgaWRDYWNoZVtub2RlLmlkXSA9IG5vZGU7XG4gICAgZy5zZXROb2RlKG5vZGUuaWQsIG5vZGUpO1xuICAgIGlmIChub3RlLmNsYXNzICYmIG5vdGUuY2xhc3MgaW4gY2xhc3Nlcykge1xuICAgICAgZy5zZXRFZGdlKFxuICAgICAgICBub3RlLmlkLFxuICAgICAgICBnZXRHcmFwaElkKG5vdGUuY2xhc3MpLFxuICAgICAgICB7XG4gICAgICAgICAgcmVsYXRpb246IHtcbiAgICAgICAgICAgIGlkMTogbm90ZS5pZCxcbiAgICAgICAgICAgIGlkMjogbm90ZS5jbGFzcyxcbiAgICAgICAgICAgIHJlbGF0aW9uOiB7XG4gICAgICAgICAgICAgIHR5cGUxOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgdHlwZTI6IFwibm9uZVwiLFxuICAgICAgICAgICAgICBsaW5lVHlwZTogMTBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiREVGQVVMVFwiXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG4gIGxheW91dChnKTtcbiAgZy5ub2RlcygpLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIGlmICh2ICE9PSB2b2lkIDAgJiYgZy5ub2RlKHYpICE9PSB2b2lkIDApIHtcbiAgICAgIGxvZy5kZWJ1ZyhcIk5vZGUgXCIgKyB2ICsgXCI6IFwiICsgSlNPTi5zdHJpbmdpZnkoZy5ub2RlKHYpKSk7XG4gICAgICByb290LnNlbGVjdChcIiNcIiArIChkaWFnT2JqLmRiLmxvb2tVcERvbUlkKHYpIHx8IHYpKS5hdHRyKFxuICAgICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgICBcInRyYW5zbGF0ZShcIiArIChnLm5vZGUodikueCAtIGcubm9kZSh2KS53aWR0aCAvIDIpICsgXCIsXCIgKyAoZy5ub2RlKHYpLnkgLSBnLm5vZGUodikuaGVpZ2h0IC8gMikgKyBcIiApXCJcbiAgICAgICk7XG4gICAgfVxuICB9KTtcbiAgZy5lZGdlcygpLmZvckVhY2goZnVuY3Rpb24oZSkge1xuICAgIGlmIChlICE9PSB2b2lkIDAgJiYgZy5lZGdlKGUpICE9PSB2b2lkIDApIHtcbiAgICAgIGxvZy5kZWJ1ZyhcIkVkZ2UgXCIgKyBlLnYgKyBcIiAtPiBcIiArIGUudyArIFwiOiBcIiArIEpTT04uc3RyaW5naWZ5KGcuZWRnZShlKSkpO1xuICAgICAgc3ZnRHJhdy5kcmF3RWRnZShkaWFncmFtMiwgZy5lZGdlKGUpLCBnLmVkZ2UoZSkucmVsYXRpb24sIGNvbmYsIGRpYWdPYmopO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHN2Z0JvdW5kcyA9IGRpYWdyYW0yLm5vZGUoKS5nZXRCQm94KCk7XG4gIGNvbnN0IHdpZHRoID0gc3ZnQm91bmRzLndpZHRoICsgcGFkZGluZyAqIDI7XG4gIGNvbnN0IGhlaWdodCA9IHN2Z0JvdW5kcy5oZWlnaHQgKyBwYWRkaW5nICogMjtcbiAgY29uZmlndXJlU3ZnU2l6ZShkaWFncmFtMiwgaGVpZ2h0LCB3aWR0aCwgY29uZi51c2VNYXhXaWR0aCk7XG4gIGNvbnN0IHZCb3ggPSBgJHtzdmdCb3VuZHMueCAtIHBhZGRpbmd9ICR7c3ZnQm91bmRzLnkgLSBwYWRkaW5nfSAke3dpZHRofSAke2hlaWdodH1gO1xuICBsb2cuZGVidWcoYHZpZXdCb3ggJHt2Qm94fWApO1xuICBkaWFncmFtMi5hdHRyKFwidmlld0JveFwiLCB2Qm94KTtcbn07XG5jb25zdCByZW5kZXJlciA9IHtcbiAgZHJhd1xufTtcbmNvbnN0IGRpYWdyYW0gPSB7XG4gIHBhcnNlcixcbiAgZGIsXG4gIHJlbmRlcmVyLFxuICBzdHlsZXMsXG4gIGluaXQ6IChjbmYpID0+IHtcbiAgICBpZiAoIWNuZi5jbGFzcykge1xuICAgICAgY25mLmNsYXNzID0ge307XG4gICAgfVxuICAgIGNuZi5jbGFzcy5hcnJvd01hcmtlckFic29sdXRlID0gY25mLmFycm93TWFya2VyQWJzb2x1dGU7XG4gICAgZGIuY2xlYXIoKTtcbiAgfVxufTtcbmV4cG9ydCB7XG4gIGRpYWdyYW1cbn07XG4iLAogICAgImltcG9ydCB7IHAgYXMgcGFyc2VyLCBkIGFzIGRiLCBzIGFzIHN0eWxlcyB9IGZyb20gXCIuL3N0eWxlcy1iODNiMzFjOS5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0LCBjdXJ2ZUxpbmVhciB9IGZyb20gXCJkM1wiO1xuaW1wb3J0ICogYXMgZ3JhcGhsaWIgZnJvbSBcImRhZ3JlLWQzLWVzL3NyYy9ncmFwaGxpYi9pbmRleC5qc1wiO1xuaW1wb3J0IHsgbCBhcyBsb2csIGMgYXMgZ2V0Q29uZmlnLCB1IGFzIHV0aWxzLCBvIGFzIHNldHVwR3JhcGhWaWV3Ym94LCBrIGFzIGdldFN0eWxlc0Zyb21BcnJheSwgbiBhcyBpbnRlcnBvbGF0ZVRvQ3VydmUsIGUgYXMgY29tbW9uIH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IHsgciBhcyByZW5kZXIgfSBmcm9tIFwiLi9pbmRleC0wMWYzODFjYi5qc1wiO1xuaW1wb3J0IFwidHMtZGVkZW50XCI7XG5pbXBvcnQgXCJkYXlqc1wiO1xuaW1wb3J0IFwiQGJyYWludHJlZS9zYW5pdGl6ZS11cmxcIjtcbmltcG9ydCBcImRvbXB1cmlmeVwiO1xuaW1wb3J0IFwia2hyb21hXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lcmdlLmpzXCI7XG5pbXBvcnQgXCJzdHlsaXNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9pc0VtcHR5LmpzXCI7XG5pbXBvcnQgXCJkYWdyZS1kMy1lcy9zcmMvZGFncmUvaW5kZXguanNcIjtcbmltcG9ydCBcImRhZ3JlLWQzLWVzL3NyYy9ncmFwaGxpYi9qc29uLmpzXCI7XG5pbXBvcnQgXCIuL2VkZ2VzLTA2NmE1NTYxLmpzXCI7XG5pbXBvcnQgXCIuL2NyZWF0ZVRleHQtY2EwYzUyMTYuanNcIjtcbmltcG9ydCBcIm1kYXN0LXV0aWwtZnJvbS1tYXJrZG93blwiO1xuY29uc3Qgc2FuaXRpemVUZXh0ID0gKHR4dCkgPT4gY29tbW9uLnNhbml0aXplVGV4dCh0eHQsIGdldENvbmZpZygpKTtcbmxldCBjb25mID0ge1xuICBkaXZpZGVyTWFyZ2luOiAxMCxcbiAgcGFkZGluZzogNSxcbiAgdGV4dEhlaWdodDogMTAsXG4gIGN1cnZlOiB2b2lkIDBcbn07XG5jb25zdCBhZGROYW1lc3BhY2VzID0gZnVuY3Rpb24obmFtZXNwYWNlcywgZywgX2lkLCBkaWFnT2JqKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhuYW1lc3BhY2VzKTtcbiAgbG9nLmluZm8oXCJrZXlzOlwiLCBrZXlzKTtcbiAgbG9nLmluZm8obmFtZXNwYWNlcyk7XG4gIGtleXMuZm9yRWFjaChmdW5jdGlvbihpZCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgdmVydGV4ID0gbmFtZXNwYWNlc1tpZF07XG4gICAgY29uc3Qgc2hhcGUgPSBcInJlY3RcIjtcbiAgICBjb25zdCBub2RlID0ge1xuICAgICAgc2hhcGUsXG4gICAgICBpZDogdmVydGV4LmlkLFxuICAgICAgZG9tSWQ6IHZlcnRleC5kb21JZCxcbiAgICAgIGxhYmVsVGV4dDogc2FuaXRpemVUZXh0KHZlcnRleC5pZCksXG4gICAgICBsYWJlbFN0eWxlOiBcIlwiLFxuICAgICAgc3R5bGU6IFwiZmlsbDogbm9uZTsgc3Ryb2tlOiBibGFja1wiLFxuICAgICAgLy8gVE9ETyBWMTA6IEZsb3djaGFydCA/IEtlZXBpbmcgZmxvd2NoYXJ0IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gUmVtb3ZlIGluIG5leHQgbWFqb3IgcmVsZWFzZVxuICAgICAgcGFkZGluZzogKChfYSA9IGdldENvbmZpZygpLmZsb3djaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnBhZGRpbmcpID8/ICgoX2IgPSBnZXRDb25maWcoKS5jbGFzcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnBhZGRpbmcpXG4gICAgfTtcbiAgICBnLnNldE5vZGUodmVydGV4LmlkLCBub2RlKTtcbiAgICBhZGRDbGFzc2VzKHZlcnRleC5jbGFzc2VzLCBnLCBfaWQsIGRpYWdPYmosIHZlcnRleC5pZCk7XG4gICAgbG9nLmluZm8oXCJzZXROb2RlXCIsIG5vZGUpO1xuICB9KTtcbn07XG5jb25zdCBhZGRDbGFzc2VzID0gZnVuY3Rpb24oY2xhc3NlcywgZywgX2lkLCBkaWFnT2JqLCBwYXJlbnQpIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNsYXNzZXMpO1xuICBsb2cuaW5mbyhcImtleXM6XCIsIGtleXMpO1xuICBsb2cuaW5mbyhjbGFzc2VzKTtcbiAga2V5cy5maWx0ZXIoKGlkKSA9PiBjbGFzc2VzW2lkXS5wYXJlbnQgPT0gcGFyZW50KS5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB2ZXJ0ZXggPSBjbGFzc2VzW2lkXTtcbiAgICBjb25zdCBjc3NDbGFzc1N0ciA9IHZlcnRleC5jc3NDbGFzc2VzLmpvaW4oXCIgXCIpO1xuICAgIGNvbnN0IHN0eWxlczIgPSBnZXRTdHlsZXNGcm9tQXJyYXkodmVydGV4LnN0eWxlcyk7XG4gICAgY29uc3QgdmVydGV4VGV4dCA9IHZlcnRleC5sYWJlbCA/PyB2ZXJ0ZXguaWQ7XG4gICAgY29uc3QgcmFkaXVzID0gMDtcbiAgICBjb25zdCBzaGFwZSA9IFwiY2xhc3NfYm94XCI7XG4gICAgY29uc3Qgbm9kZSA9IHtcbiAgICAgIGxhYmVsU3R5bGU6IHN0eWxlczIubGFiZWxTdHlsZSxcbiAgICAgIHNoYXBlLFxuICAgICAgbGFiZWxUZXh0OiBzYW5pdGl6ZVRleHQodmVydGV4VGV4dCksXG4gICAgICBjbGFzc0RhdGE6IHZlcnRleCxcbiAgICAgIHJ4OiByYWRpdXMsXG4gICAgICByeTogcmFkaXVzLFxuICAgICAgY2xhc3M6IGNzc0NsYXNzU3RyLFxuICAgICAgc3R5bGU6IHN0eWxlczIuc3R5bGUsXG4gICAgICBpZDogdmVydGV4LmlkLFxuICAgICAgZG9tSWQ6IHZlcnRleC5kb21JZCxcbiAgICAgIHRvb2x0aXA6IGRpYWdPYmouZGIuZ2V0VG9vbHRpcCh2ZXJ0ZXguaWQsIHBhcmVudCkgfHwgXCJcIixcbiAgICAgIGhhdmVDYWxsYmFjazogdmVydGV4LmhhdmVDYWxsYmFjayxcbiAgICAgIGxpbms6IHZlcnRleC5saW5rLFxuICAgICAgd2lkdGg6IHZlcnRleC50eXBlID09PSBcImdyb3VwXCIgPyA1MDAgOiB2b2lkIDAsXG4gICAgICB0eXBlOiB2ZXJ0ZXgudHlwZSxcbiAgICAgIC8vIFRPRE8gVjEwOiBGbG93Y2hhcnQgPyBLZWVwaW5nIGZsb3djaGFydCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuIFJlbW92ZSBpbiBuZXh0IG1ham9yIHJlbGVhc2VcbiAgICAgIHBhZGRpbmc6ICgoX2EgPSBnZXRDb25maWcoKS5mbG93Y2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5wYWRkaW5nKSA/PyAoKF9iID0gZ2V0Q29uZmlnKCkuY2xhc3MpID09IG51bGwgPyB2b2lkIDAgOiBfYi5wYWRkaW5nKVxuICAgIH07XG4gICAgZy5zZXROb2RlKHZlcnRleC5pZCwgbm9kZSk7XG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgZy5zZXRQYXJlbnQodmVydGV4LmlkLCBwYXJlbnQpO1xuICAgIH1cbiAgICBsb2cuaW5mbyhcInNldE5vZGVcIiwgbm9kZSk7XG4gIH0pO1xufTtcbmNvbnN0IGFkZE5vdGVzID0gZnVuY3Rpb24obm90ZXMsIGcsIHN0YXJ0RWRnZUlkLCBjbGFzc2VzKSB7XG4gIGxvZy5pbmZvKG5vdGVzKTtcbiAgbm90ZXMuZm9yRWFjaChmdW5jdGlvbihub3RlLCBpKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB2ZXJ0ZXggPSBub3RlO1xuICAgIGNvbnN0IGNzc05vdGVTdHIgPSBcIlwiO1xuICAgIGNvbnN0IHN0eWxlczIgPSB7IGxhYmVsU3R5bGU6IFwiXCIsIHN0eWxlOiBcIlwiIH07XG4gICAgY29uc3QgdmVydGV4VGV4dCA9IHZlcnRleC50ZXh0O1xuICAgIGNvbnN0IHJhZGl1cyA9IDA7XG4gICAgY29uc3Qgc2hhcGUgPSBcIm5vdGVcIjtcbiAgICBjb25zdCBub2RlID0ge1xuICAgICAgbGFiZWxTdHlsZTogc3R5bGVzMi5sYWJlbFN0eWxlLFxuICAgICAgc2hhcGUsXG4gICAgICBsYWJlbFRleHQ6IHNhbml0aXplVGV4dCh2ZXJ0ZXhUZXh0KSxcbiAgICAgIG5vdGVEYXRhOiB2ZXJ0ZXgsXG4gICAgICByeDogcmFkaXVzLFxuICAgICAgcnk6IHJhZGl1cyxcbiAgICAgIGNsYXNzOiBjc3NOb3RlU3RyLFxuICAgICAgc3R5bGU6IHN0eWxlczIuc3R5bGUsXG4gICAgICBpZDogdmVydGV4LmlkLFxuICAgICAgZG9tSWQ6IHZlcnRleC5pZCxcbiAgICAgIHRvb2x0aXA6IFwiXCIsXG4gICAgICB0eXBlOiBcIm5vdGVcIixcbiAgICAgIC8vIFRPRE8gVjEwOiBGbG93Y2hhcnQgPyBLZWVwaW5nIGZsb3djaGFydCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuIFJlbW92ZSBpbiBuZXh0IG1ham9yIHJlbGVhc2VcbiAgICAgIHBhZGRpbmc6ICgoX2EgPSBnZXRDb25maWcoKS5mbG93Y2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5wYWRkaW5nKSA/PyAoKF9iID0gZ2V0Q29uZmlnKCkuY2xhc3MpID09IG51bGwgPyB2b2lkIDAgOiBfYi5wYWRkaW5nKVxuICAgIH07XG4gICAgZy5zZXROb2RlKHZlcnRleC5pZCwgbm9kZSk7XG4gICAgbG9nLmluZm8oXCJzZXROb2RlXCIsIG5vZGUpO1xuICAgIGlmICghdmVydGV4LmNsYXNzIHx8ICEodmVydGV4LmNsYXNzIGluIGNsYXNzZXMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGVkZ2VJZCA9IHN0YXJ0RWRnZUlkICsgaTtcbiAgICBjb25zdCBlZGdlRGF0YSA9IHtcbiAgICAgIGlkOiBgZWRnZU5vdGUke2VkZ2VJZH1gLFxuICAgICAgLy9TZXQgcmVsYXRpb25zaGlwIHN0eWxlIGFuZCBsaW5lIHR5cGVcbiAgICAgIGNsYXNzZXM6IFwicmVsYXRpb25cIixcbiAgICAgIHBhdHRlcm46IFwiZG90dGVkXCIsXG4gICAgICAvLyBTZXQgbGluayB0eXBlIGZvciByZW5kZXJpbmdcbiAgICAgIGFycm93aGVhZDogXCJub25lXCIsXG4gICAgICAvL1NldCBlZGdlIGV4dHJhIGxhYmVsc1xuICAgICAgc3RhcnRMYWJlbFJpZ2h0OiBcIlwiLFxuICAgICAgZW5kTGFiZWxMZWZ0OiBcIlwiLFxuICAgICAgLy9TZXQgcmVsYXRpb24gYXJyb3cgdHlwZXNcbiAgICAgIGFycm93VHlwZVN0YXJ0OiBcIm5vbmVcIixcbiAgICAgIGFycm93VHlwZUVuZDogXCJub25lXCIsXG4gICAgICBzdHlsZTogXCJmaWxsOm5vbmVcIixcbiAgICAgIGxhYmVsU3R5bGU6IFwiXCIsXG4gICAgICBjdXJ2ZTogaW50ZXJwb2xhdGVUb0N1cnZlKGNvbmYuY3VydmUsIGN1cnZlTGluZWFyKVxuICAgIH07XG4gICAgZy5zZXRFZGdlKHZlcnRleC5pZCwgdmVydGV4LmNsYXNzLCBlZGdlRGF0YSwgZWRnZUlkKTtcbiAgfSk7XG59O1xuY29uc3QgYWRkUmVsYXRpb25zID0gZnVuY3Rpb24ocmVsYXRpb25zLCBnKSB7XG4gIGNvbnN0IGNvbmYyID0gZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0O1xuICBsZXQgY250ID0gMDtcbiAgcmVsYXRpb25zLmZvckVhY2goZnVuY3Rpb24oZWRnZSkge1xuICAgIHZhciBfYTtcbiAgICBjbnQrKztcbiAgICBjb25zdCBlZGdlRGF0YSA9IHtcbiAgICAgIC8vU2V0IHJlbGF0aW9uc2hpcCBzdHlsZSBhbmQgbGluZSB0eXBlXG4gICAgICBjbGFzc2VzOiBcInJlbGF0aW9uXCIsXG4gICAgICBwYXR0ZXJuOiBlZGdlLnJlbGF0aW9uLmxpbmVUeXBlID09IDEgPyBcImRhc2hlZFwiIDogXCJzb2xpZFwiLFxuICAgICAgaWQ6IGBpZF8ke2VkZ2UuaWQxfV8ke2VkZ2UuaWQyfV8ke2NudH1gLFxuICAgICAgLy8gU2V0IGxpbmsgdHlwZSBmb3IgcmVuZGVyaW5nXG4gICAgICBhcnJvd2hlYWQ6IGVkZ2UudHlwZSA9PT0gXCJhcnJvd19vcGVuXCIgPyBcIm5vbmVcIiA6IFwibm9ybWFsXCIsXG4gICAgICAvL1NldCBlZGdlIGV4dHJhIGxhYmVsc1xuICAgICAgc3RhcnRMYWJlbFJpZ2h0OiBlZGdlLnJlbGF0aW9uVGl0bGUxID09PSBcIm5vbmVcIiA/IFwiXCIgOiBlZGdlLnJlbGF0aW9uVGl0bGUxLFxuICAgICAgZW5kTGFiZWxMZWZ0OiBlZGdlLnJlbGF0aW9uVGl0bGUyID09PSBcIm5vbmVcIiA/IFwiXCIgOiBlZGdlLnJlbGF0aW9uVGl0bGUyLFxuICAgICAgLy9TZXQgcmVsYXRpb24gYXJyb3cgdHlwZXNcbiAgICAgIGFycm93VHlwZVN0YXJ0OiBnZXRBcnJvd01hcmtlcihlZGdlLnJlbGF0aW9uLnR5cGUxKSxcbiAgICAgIGFycm93VHlwZUVuZDogZ2V0QXJyb3dNYXJrZXIoZWRnZS5yZWxhdGlvbi50eXBlMiksXG4gICAgICBzdHlsZTogXCJmaWxsOm5vbmVcIixcbiAgICAgIGxhYmVsU3R5bGU6IFwiXCIsXG4gICAgICBjdXJ2ZTogaW50ZXJwb2xhdGVUb0N1cnZlKGNvbmYyID09IG51bGwgPyB2b2lkIDAgOiBjb25mMi5jdXJ2ZSwgY3VydmVMaW5lYXIpXG4gICAgfTtcbiAgICBsb2cuaW5mbyhlZGdlRGF0YSwgZWRnZSk7XG4gICAgaWYgKGVkZ2Uuc3R5bGUgIT09IHZvaWQgMCkge1xuICAgICAgY29uc3Qgc3R5bGVzMiA9IGdldFN0eWxlc0Zyb21BcnJheShlZGdlLnN0eWxlKTtcbiAgICAgIGVkZ2VEYXRhLnN0eWxlID0gc3R5bGVzMi5zdHlsZTtcbiAgICAgIGVkZ2VEYXRhLmxhYmVsU3R5bGUgPSBzdHlsZXMyLmxhYmVsU3R5bGU7XG4gICAgfVxuICAgIGVkZ2UudGV4dCA9IGVkZ2UudGl0bGU7XG4gICAgaWYgKGVkZ2UudGV4dCA9PT0gdm9pZCAwKSB7XG4gICAgICBpZiAoZWRnZS5zdHlsZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgIGVkZ2VEYXRhLmFycm93aGVhZFN0eWxlID0gXCJmaWxsOiAjMzMzXCI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGVkZ2VEYXRhLmFycm93aGVhZFN0eWxlID0gXCJmaWxsOiAjMzMzXCI7XG4gICAgICBlZGdlRGF0YS5sYWJlbHBvcyA9IFwiY1wiO1xuICAgICAgaWYgKCgoX2EgPSBnZXRDb25maWcoKS5mbG93Y2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5odG1sTGFiZWxzKSA/PyBnZXRDb25maWcoKS5odG1sTGFiZWxzKSB7XG4gICAgICAgIGVkZ2VEYXRhLmxhYmVsVHlwZSA9IFwiaHRtbFwiO1xuICAgICAgICBlZGdlRGF0YS5sYWJlbCA9ICc8c3BhbiBjbGFzcz1cImVkZ2VMYWJlbFwiPicgKyBlZGdlLnRleHQgKyBcIjwvc3Bhbj5cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVkZ2VEYXRhLmxhYmVsVHlwZSA9IFwidGV4dFwiO1xuICAgICAgICBlZGdlRGF0YS5sYWJlbCA9IGVkZ2UudGV4dC5yZXBsYWNlKGNvbW1vbi5saW5lQnJlYWtSZWdleCwgXCJcXG5cIik7XG4gICAgICAgIGlmIChlZGdlLnN0eWxlID09PSB2b2lkIDApIHtcbiAgICAgICAgICBlZGdlRGF0YS5zdHlsZSA9IGVkZ2VEYXRhLnN0eWxlIHx8IFwic3Ryb2tlOiAjMzMzOyBzdHJva2Utd2lkdGg6IDEuNXB4O2ZpbGw6bm9uZVwiO1xuICAgICAgICB9XG4gICAgICAgIGVkZ2VEYXRhLmxhYmVsU3R5bGUgPSBlZGdlRGF0YS5sYWJlbFN0eWxlLnJlcGxhY2UoXCJjb2xvcjpcIiwgXCJmaWxsOlwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZy5zZXRFZGdlKGVkZ2UuaWQxLCBlZGdlLmlkMiwgZWRnZURhdGEsIGNudCk7XG4gIH0pO1xufTtcbmNvbnN0IHNldENvbmYgPSBmdW5jdGlvbihjbmYpIHtcbiAgY29uZiA9IHtcbiAgICAuLi5jb25mLFxuICAgIC4uLmNuZlxuICB9O1xufTtcbmNvbnN0IGRyYXcgPSBhc3luYyBmdW5jdGlvbih0ZXh0LCBpZCwgX3ZlcnNpb24sIGRpYWdPYmopIHtcbiAgbG9nLmluZm8oXCJEcmF3aW5nIGNsYXNzIC0gXCIsIGlkKTtcbiAgY29uc3QgY29uZjIgPSBnZXRDb25maWcoKS5mbG93Y2hhcnQgPz8gZ2V0Q29uZmlnKCkuY2xhc3M7XG4gIGNvbnN0IHNlY3VyaXR5TGV2ZWwgPSBnZXRDb25maWcoKS5zZWN1cml0eUxldmVsO1xuICBsb2cuaW5mbyhcImNvbmZpZzpcIiwgY29uZjIpO1xuICBjb25zdCBub2RlU3BhY2luZyA9IChjb25mMiA9PSBudWxsID8gdm9pZCAwIDogY29uZjIubm9kZVNwYWNpbmcpID8/IDUwO1xuICBjb25zdCByYW5rU3BhY2luZyA9IChjb25mMiA9PSBudWxsID8gdm9pZCAwIDogY29uZjIucmFua1NwYWNpbmcpID8/IDUwO1xuICBjb25zdCBnID0gbmV3IGdyYXBobGliLkdyYXBoKHtcbiAgICBtdWx0aWdyYXBoOiB0cnVlLFxuICAgIGNvbXBvdW5kOiB0cnVlXG4gIH0pLnNldEdyYXBoKHtcbiAgICByYW5rZGlyOiBkaWFnT2JqLmRiLmdldERpcmVjdGlvbigpLFxuICAgIG5vZGVzZXA6IG5vZGVTcGFjaW5nLFxuICAgIHJhbmtzZXA6IHJhbmtTcGFjaW5nLFxuICAgIG1hcmdpbng6IDgsXG4gICAgbWFyZ2lueTogOFxuICB9KS5zZXREZWZhdWx0RWRnZUxhYmVsKGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB7fTtcbiAgfSk7XG4gIGNvbnN0IG5hbWVzcGFjZXMgPSBkaWFnT2JqLmRiLmdldE5hbWVzcGFjZXMoKTtcbiAgY29uc3QgY2xhc3NlcyA9IGRpYWdPYmouZGIuZ2V0Q2xhc3NlcygpO1xuICBjb25zdCByZWxhdGlvbnMgPSBkaWFnT2JqLmRiLmdldFJlbGF0aW9ucygpO1xuICBjb25zdCBub3RlcyA9IGRpYWdPYmouZGIuZ2V0Tm90ZXMoKTtcbiAgbG9nLmluZm8ocmVsYXRpb25zKTtcbiAgYWRkTmFtZXNwYWNlcyhuYW1lc3BhY2VzLCBnLCBpZCwgZGlhZ09iaik7XG4gIGFkZENsYXNzZXMoY2xhc3NlcywgZywgaWQsIGRpYWdPYmopO1xuICBhZGRSZWxhdGlvbnMocmVsYXRpb25zLCBnKTtcbiAgYWRkTm90ZXMobm90ZXMsIGcsIHJlbGF0aW9ucy5sZW5ndGggKyAxLCBjbGFzc2VzKTtcbiAgbGV0IHNhbmRib3hFbGVtZW50O1xuICBpZiAoc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIpIHtcbiAgICBzYW5kYm94RWxlbWVudCA9IHNlbGVjdChcIiNpXCIgKyBpZCk7XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gc2VsZWN0KHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50LmJvZHkpIDogc2VsZWN0KFwiYm9keVwiKTtcbiAgY29uc3Qgc3ZnID0gcm9vdC5zZWxlY3QoYFtpZD1cIiR7aWR9XCJdYCk7XG4gIGNvbnN0IGVsZW1lbnQgPSByb290LnNlbGVjdChcIiNcIiArIGlkICsgXCIgZ1wiKTtcbiAgYXdhaXQgcmVuZGVyKFxuICAgIGVsZW1lbnQsXG4gICAgZyxcbiAgICBbXCJhZ2dyZWdhdGlvblwiLCBcImV4dGVuc2lvblwiLCBcImNvbXBvc2l0aW9uXCIsIFwiZGVwZW5kZW5jeVwiLCBcImxvbGxpcG9wXCJdLFxuICAgIFwiY2xhc3NEaWFncmFtXCIsXG4gICAgaWRcbiAgKTtcbiAgdXRpbHMuaW5zZXJ0VGl0bGUoc3ZnLCBcImNsYXNzVGl0bGVUZXh0XCIsIChjb25mMiA9PSBudWxsID8gdm9pZCAwIDogY29uZjIudGl0bGVUb3BNYXJnaW4pID8/IDUsIGRpYWdPYmouZGIuZ2V0RGlhZ3JhbVRpdGxlKCkpO1xuICBzZXR1cEdyYXBoVmlld2JveChnLCBzdmcsIGNvbmYyID09IG51bGwgPyB2b2lkIDAgOiBjb25mMi5kaWFncmFtUGFkZGluZywgY29uZjIgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmYyLnVzZU1heFdpZHRoKTtcbiAgaWYgKCEoY29uZjIgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmYyLmh0bWxMYWJlbHMpKSB7XG4gICAgY29uc3QgZG9jID0gc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIgPyBzYW5kYm94RWxlbWVudC5ub2RlcygpWzBdLmNvbnRlbnREb2N1bWVudCA6IGRvY3VtZW50O1xuICAgIGNvbnN0IGxhYmVscyA9IGRvYy5xdWVyeVNlbGVjdG9yQWxsKCdbaWQ9XCInICsgaWQgKyAnXCJdIC5lZGdlTGFiZWwgLmxhYmVsJyk7XG4gICAgZm9yIChjb25zdCBsYWJlbCBvZiBsYWJlbHMpIHtcbiAgICAgIGNvbnN0IGRpbSA9IGxhYmVsLmdldEJCb3goKTtcbiAgICAgIGNvbnN0IHJlY3QgPSBkb2MuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJyZWN0XCIpO1xuICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJyeFwiLCAwKTtcbiAgICAgIHJlY3Quc2V0QXR0cmlidXRlKFwicnlcIiwgMCk7XG4gICAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGRpbS53aWR0aCk7XG4gICAgICByZWN0LnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBkaW0uaGVpZ2h0KTtcbiAgICAgIGxhYmVsLmluc2VydEJlZm9yZShyZWN0LCBsYWJlbC5maXJzdENoaWxkKTtcbiAgICB9XG4gIH1cbn07XG5mdW5jdGlvbiBnZXRBcnJvd01hcmtlcih0eXBlKSB7XG4gIGxldCBtYXJrZXI7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgMDpcbiAgICAgIG1hcmtlciA9IFwiYWdncmVnYXRpb25cIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTpcbiAgICAgIG1hcmtlciA9IFwiZXh0ZW5zaW9uXCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICBtYXJrZXIgPSBcImNvbXBvc2l0aW9uXCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDM6XG4gICAgICBtYXJrZXIgPSBcImRlcGVuZGVuY3lcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNDpcbiAgICAgIG1hcmtlciA9IFwibG9sbGlwb3BcIjtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBtYXJrZXIgPSBcIm5vbmVcIjtcbiAgfVxuICByZXR1cm4gbWFya2VyO1xufVxuY29uc3QgcmVuZGVyZXIgPSB7XG4gIHNldENvbmYsXG4gIGRyYXdcbn07XG5jb25zdCBkaWFncmFtID0ge1xuICBwYXJzZXIsXG4gIGRiLFxuICByZW5kZXJlcixcbiAgc3R5bGVzLFxuICBpbml0OiAoY25mKSA9PiB7XG4gICAgaWYgKCFjbmYuY2xhc3MpIHtcbiAgICAgIGNuZi5jbGFzcyA9IHt9O1xuICAgIH1cbiAgICBjbmYuY2xhc3MuYXJyb3dNYXJrZXJBYnNvbHV0ZSA9IGNuZi5hcnJvd01hcmtlckFic29sdXRlO1xuICAgIGRiLmNsZWFyKCk7XG4gIH1cbn07XG5leHBvcnQge1xuICBkaWFncmFtXG59O1xuIiwKICAgICJpbXBvcnQgeyBjIGFzIGdldENvbmZpZywgZyBhcyBnZXRBY2NUaXRsZSwgcyBhcyBzZXRBY2NUaXRsZSwgYSBhcyBnZXRBY2NEZXNjcmlwdGlvbiwgYiBhcyBzZXRBY2NEZXNjcmlwdGlvbiwgcSBhcyBzZXREaWFncmFtVGl0bGUsIHQgYXMgZ2V0RGlhZ3JhbVRpdGxlLCBsIGFzIGxvZywgZSBhcyBjb21tb24sIHYgYXMgY2xlYXIkMSwgSSBhcyBnZW5lcmF0ZUlkIH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xudmFyIHBhcnNlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgbyA9IGZ1bmN0aW9uKGssIHYsIG8yLCBsKSB7XG4gICAgZm9yIChvMiA9IG8yIHx8IHt9LCBsID0gay5sZW5ndGg7IGwtLTsgbzJba1tsXV0gPSB2KVxuICAgICAgO1xuICAgIHJldHVybiBvMjtcbiAgfSwgJFYwID0gWzEsIDJdLCAkVjEgPSBbMSwgM10sICRWMiA9IFsxLCA0XSwgJFYzID0gWzIsIDRdLCAkVjQgPSBbMSwgOV0sICRWNSA9IFsxLCAxMV0sICRWNiA9IFsxLCAxNV0sICRWNyA9IFsxLCAxNl0sICRWOCA9IFsxLCAxN10sICRWOSA9IFsxLCAxOF0sICRWYSA9IFsxLCAzMF0sICRWYiA9IFsxLCAxOV0sICRWYyA9IFsxLCAyMF0sICRWZCA9IFsxLCAyMV0sICRWZSA9IFsxLCAyMl0sICRWZiA9IFsxLCAyM10sICRWZyA9IFsxLCAyNV0sICRWaCA9IFsxLCAyNl0sICRWaSA9IFsxLCAyN10sICRWaiA9IFsxLCAyOF0sICRWayA9IFsxLCAyOV0sICRWbCA9IFsxLCAzMl0sICRWbSA9IFsxLCAzM10sICRWbiA9IFsxLCAzNF0sICRWbyA9IFsxLCAzNV0sICRWcCA9IFsxLCAzMV0sICRWcSA9IFsxLCA0LCA1LCAxNSwgMTYsIDE4LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDMyLCAzNCwgMzYsIDM3LCA0MSwgNDQsIDQ1LCA0NiwgNDcsIDUwXSwgJFZyID0gWzEsIDQsIDUsIDEzLCAxNCwgMTUsIDE2LCAxOCwgMjAsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAzMiwgMzQsIDM2LCAzNywgNDEsIDQ0LCA0NSwgNDYsIDQ3LCA1MF0sICRWcyA9IFs0LCA1LCAxNSwgMTYsIDE4LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDMyLCAzNCwgMzYsIDM3LCA0MSwgNDQsIDQ1LCA0NiwgNDcsIDUwXTtcbiAgdmFyIHBhcnNlcjIgPSB7XG4gICAgdHJhY2U6IGZ1bmN0aW9uIHRyYWNlKCkge1xuICAgIH0sXG4gICAgeXk6IHt9LFxuICAgIHN5bWJvbHNfOiB7IFwiZXJyb3JcIjogMiwgXCJzdGFydFwiOiAzLCBcIlNQQUNFXCI6IDQsIFwiTkxcIjogNSwgXCJTRFwiOiA2LCBcImRvY3VtZW50XCI6IDcsIFwibGluZVwiOiA4LCBcInN0YXRlbWVudFwiOiA5LCBcImNsYXNzRGVmU3RhdGVtZW50XCI6IDEwLCBcImNzc0NsYXNzU3RhdGVtZW50XCI6IDExLCBcImlkU3RhdGVtZW50XCI6IDEyLCBcIkRFU0NSXCI6IDEzLCBcIi0tPlwiOiAxNCwgXCJISURFX0VNUFRZXCI6IDE1LCBcInNjYWxlXCI6IDE2LCBcIldJRFRIXCI6IDE3LCBcIkNPTVBPU0lUX1NUQVRFXCI6IDE4LCBcIlNUUlVDVF9TVEFSVFwiOiAxOSwgXCJTVFJVQ1RfU1RPUFwiOiAyMCwgXCJTVEFURV9ERVNDUlwiOiAyMSwgXCJBU1wiOiAyMiwgXCJJRFwiOiAyMywgXCJGT1JLXCI6IDI0LCBcIkpPSU5cIjogMjUsIFwiQ0hPSUNFXCI6IDI2LCBcIkNPTkNVUlJFTlRcIjogMjcsIFwibm90ZVwiOiAyOCwgXCJub3RlUG9zaXRpb25cIjogMjksIFwiTk9URV9URVhUXCI6IDMwLCBcImRpcmVjdGlvblwiOiAzMSwgXCJhY2NfdGl0bGVcIjogMzIsIFwiYWNjX3RpdGxlX3ZhbHVlXCI6IDMzLCBcImFjY19kZXNjclwiOiAzNCwgXCJhY2NfZGVzY3JfdmFsdWVcIjogMzUsIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiOiAzNiwgXCJjbGFzc0RlZlwiOiAzNywgXCJDTEFTU0RFRl9JRFwiOiAzOCwgXCJDTEFTU0RFRl9TVFlMRU9QVFNcIjogMzksIFwiREVGQVVMVFwiOiA0MCwgXCJjbGFzc1wiOiA0MSwgXCJDTEFTU0VOVElUWV9JRFNcIjogNDIsIFwiU1RZTEVDTEFTU1wiOiA0MywgXCJkaXJlY3Rpb25fdGJcIjogNDQsIFwiZGlyZWN0aW9uX2J0XCI6IDQ1LCBcImRpcmVjdGlvbl9ybFwiOiA0NiwgXCJkaXJlY3Rpb25fbHJcIjogNDcsIFwiZW9sXCI6IDQ4LCBcIjtcIjogNDksIFwiRURHRV9TVEFURVwiOiA1MCwgXCJTVFlMRV9TRVBBUkFUT1JcIjogNTEsIFwibGVmdF9vZlwiOiA1MiwgXCJyaWdodF9vZlwiOiA1MywgXCIkYWNjZXB0XCI6IDAsIFwiJGVuZFwiOiAxIH0sXG4gICAgdGVybWluYWxzXzogeyAyOiBcImVycm9yXCIsIDQ6IFwiU1BBQ0VcIiwgNTogXCJOTFwiLCA2OiBcIlNEXCIsIDEzOiBcIkRFU0NSXCIsIDE0OiBcIi0tPlwiLCAxNTogXCJISURFX0VNUFRZXCIsIDE2OiBcInNjYWxlXCIsIDE3OiBcIldJRFRIXCIsIDE4OiBcIkNPTVBPU0lUX1NUQVRFXCIsIDE5OiBcIlNUUlVDVF9TVEFSVFwiLCAyMDogXCJTVFJVQ1RfU1RPUFwiLCAyMTogXCJTVEFURV9ERVNDUlwiLCAyMjogXCJBU1wiLCAyMzogXCJJRFwiLCAyNDogXCJGT1JLXCIsIDI1OiBcIkpPSU5cIiwgMjY6IFwiQ0hPSUNFXCIsIDI3OiBcIkNPTkNVUlJFTlRcIiwgMjg6IFwibm90ZVwiLCAzMDogXCJOT1RFX1RFWFRcIiwgMzI6IFwiYWNjX3RpdGxlXCIsIDMzOiBcImFjY190aXRsZV92YWx1ZVwiLCAzNDogXCJhY2NfZGVzY3JcIiwgMzU6IFwiYWNjX2Rlc2NyX3ZhbHVlXCIsIDM2OiBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIiwgMzc6IFwiY2xhc3NEZWZcIiwgMzg6IFwiQ0xBU1NERUZfSURcIiwgMzk6IFwiQ0xBU1NERUZfU1RZTEVPUFRTXCIsIDQwOiBcIkRFRkFVTFRcIiwgNDE6IFwiY2xhc3NcIiwgNDI6IFwiQ0xBU1NFTlRJVFlfSURTXCIsIDQzOiBcIlNUWUxFQ0xBU1NcIiwgNDQ6IFwiZGlyZWN0aW9uX3RiXCIsIDQ1OiBcImRpcmVjdGlvbl9idFwiLCA0NjogXCJkaXJlY3Rpb25fcmxcIiwgNDc6IFwiZGlyZWN0aW9uX2xyXCIsIDQ5OiBcIjtcIiwgNTA6IFwiRURHRV9TVEFURVwiLCA1MTogXCJTVFlMRV9TRVBBUkFUT1JcIiwgNTI6IFwibGVmdF9vZlwiLCA1MzogXCJyaWdodF9vZlwiIH0sXG4gICAgcHJvZHVjdGlvbnNfOiBbMCwgWzMsIDJdLCBbMywgMl0sIFszLCAyXSwgWzcsIDBdLCBbNywgMl0sIFs4LCAyXSwgWzgsIDFdLCBbOCwgMV0sIFs5LCAxXSwgWzksIDFdLCBbOSwgMV0sIFs5LCAyXSwgWzksIDNdLCBbOSwgNF0sIFs5LCAxXSwgWzksIDJdLCBbOSwgMV0sIFs5LCA0XSwgWzksIDNdLCBbOSwgNl0sIFs5LCAxXSwgWzksIDFdLCBbOSwgMV0sIFs5LCAxXSwgWzksIDRdLCBbOSwgNF0sIFs5LCAxXSwgWzksIDJdLCBbOSwgMl0sIFs5LCAxXSwgWzEwLCAzXSwgWzEwLCAzXSwgWzExLCAzXSwgWzMxLCAxXSwgWzMxLCAxXSwgWzMxLCAxXSwgWzMxLCAxXSwgWzQ4LCAxXSwgWzQ4LCAxXSwgWzEyLCAxXSwgWzEyLCAxXSwgWzEyLCAzXSwgWzEyLCAzXSwgWzI5LCAxXSwgWzI5LCAxXV0sXG4gICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5dGV4dCwgeXlsZW5nLCB5eWxpbmVubywgeXksIHl5c3RhdGUsICQkLCBfJCkge1xuICAgICAgdmFyICQwID0gJCQubGVuZ3RoIC0gMTtcbiAgICAgIHN3aXRjaCAoeXlzdGF0ZSkge1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgeXkuc2V0Um9vdERvYygkJFskMF0pO1xuICAgICAgICAgIHJldHVybiAkJFskMF07XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICB0aGlzLiQgPSBbXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGlmICgkJFskMF0gIT0gXCJubFwiKSB7XG4gICAgICAgICAgICAkJFskMCAtIDFdLnB1c2goJCRbJDBdKTtcbiAgICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICB0aGlzLiQgPSBcIm5sXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIGNvbnN0IHN0YXRlU3RtdCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgc3RhdGVTdG10LmRlc2NyaXB0aW9uID0geXkudHJpbUNvbG9uKCQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gc3RhdGVTdG10O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIHRoaXMuJCA9IHsgc3RtdDogXCJyZWxhdGlvblwiLCBzdGF0ZTE6ICQkWyQwIC0gMl0sIHN0YXRlMjogJCRbJDBdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgY29uc3QgcmVsRGVzY3JpcHRpb24gPSB5eS50cmltQ29sb24oJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6IFwicmVsYXRpb25cIiwgc3RhdGUxOiAkJFskMCAtIDNdLCBzdGF0ZTI6ICQkWyQwIC0gMV0sIGRlc2NyaXB0aW9uOiByZWxEZXNjcmlwdGlvbiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgIHRoaXMuJCA9IHsgc3RtdDogXCJzdGF0ZVwiLCBpZDogJCRbJDAgLSAzXSwgdHlwZTogXCJkZWZhdWx0XCIsIGRlc2NyaXB0aW9uOiBcIlwiLCBkb2M6ICQkWyQwIC0gMV0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICB2YXIgaWQgPSAkJFskMF07XG4gICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gJCRbJDAgLSAyXS50cmltKCk7XG4gICAgICAgICAgaWYgKCQkWyQwXS5tYXRjaChcIjpcIikpIHtcbiAgICAgICAgICAgIHZhciBwYXJ0cyA9ICQkWyQwXS5zcGxpdChcIjpcIik7XG4gICAgICAgICAgICBpZCA9IHBhcnRzWzBdO1xuICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBbZGVzY3JpcHRpb24sIHBhcnRzWzFdXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy4kID0geyBzdG10OiBcInN0YXRlXCIsIGlkLCB0eXBlOiBcImRlZmF1bHRcIiwgZGVzY3JpcHRpb24gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMDpcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6IFwic3RhdGVcIiwgaWQ6ICQkWyQwIC0gM10sIHR5cGU6IFwiZGVmYXVsdFwiLCBkZXNjcmlwdGlvbjogJCRbJDAgLSA1XSwgZG9jOiAkJFskMCAtIDFdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgdGhpcy4kID0geyBzdG10OiBcInN0YXRlXCIsIGlkOiAkJFskMF0sIHR5cGU6IFwiZm9ya1wiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgdGhpcy4kID0geyBzdG10OiBcInN0YXRlXCIsIGlkOiAkJFskMF0sIHR5cGU6IFwiam9pblwiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgdGhpcy4kID0geyBzdG10OiBcInN0YXRlXCIsIGlkOiAkJFskMF0sIHR5cGU6IFwiY2hvaWNlXCIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6IFwic3RhdGVcIiwgaWQ6IHl5LmdldERpdmlkZXJJZCgpLCB0eXBlOiBcImRpdmlkZXJcIiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIHRoaXMuJCA9IHsgc3RtdDogXCJzdGF0ZVwiLCBpZDogJCRbJDAgLSAxXS50cmltKCksIG5vdGU6IHsgcG9zaXRpb246ICQkWyQwIC0gMl0udHJpbSgpLCB0ZXh0OiAkJFskMF0udHJpbSgpIH0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyODpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0udHJpbSgpO1xuICAgICAgICAgIHl5LnNldEFjY1RpdGxlKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjk6XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5zZXRBY2NEZXNjcmlwdGlvbih0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMxOlxuICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgIHRoaXMuJCA9IHsgc3RtdDogXCJjbGFzc0RlZlwiLCBpZDogJCRbJDAgLSAxXS50cmltKCksIGNsYXNzZXM6ICQkWyQwXS50cmltKCkgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMzpcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6IFwiYXBwbHlDbGFzc1wiLCBpZDogJCRbJDAgLSAxXS50cmltKCksIHN0eWxlQ2xhc3M6ICQkWyQwXS50cmltKCkgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICB5eS5zZXREaXJlY3Rpb24oXCJUQlwiKTtcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6IFwiZGlyXCIsIHZhbHVlOiBcIlRCXCIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNTpcbiAgICAgICAgICB5eS5zZXREaXJlY3Rpb24oXCJCVFwiKTtcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6IFwiZGlyXCIsIHZhbHVlOiBcIkJUXCIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICB5eS5zZXREaXJlY3Rpb24oXCJSTFwiKTtcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6IFwiZGlyXCIsIHZhbHVlOiBcIlJMXCIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNzpcbiAgICAgICAgICB5eS5zZXREaXJlY3Rpb24oXCJMUlwiKTtcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6IFwiZGlyXCIsIHZhbHVlOiBcIkxSXCIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MDpcbiAgICAgICAgY2FzZSA0MTpcbiAgICAgICAgICB0aGlzLiQgPSB7IHN0bXQ6IFwic3RhdGVcIiwgaWQ6ICQkWyQwXS50cmltKCksIHR5cGU6IFwiZGVmYXVsdFwiLCBkZXNjcmlwdGlvbjogXCJcIiB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQyOlxuICAgICAgICAgIHRoaXMuJCA9IHsgc3RtdDogXCJzdGF0ZVwiLCBpZDogJCRbJDAgLSAyXS50cmltKCksIGNsYXNzZXM6IFskJFskMF0udHJpbSgpXSwgdHlwZTogXCJkZWZhdWx0XCIsIGRlc2NyaXB0aW9uOiBcIlwiIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDM6XG4gICAgICAgICAgdGhpcy4kID0geyBzdG10OiBcInN0YXRlXCIsIGlkOiAkJFskMCAtIDJdLnRyaW0oKSwgY2xhc3NlczogWyQkWyQwXS50cmltKCldLCB0eXBlOiBcImRlZmF1bHRcIiwgZGVzY3JpcHRpb246IFwiXCIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYmxlOiBbeyAzOiAxLCA0OiAkVjAsIDU6ICRWMSwgNjogJFYyIH0sIHsgMTogWzNdIH0sIHsgMzogNSwgNDogJFYwLCA1OiAkVjEsIDY6ICRWMiB9LCB7IDM6IDYsIDQ6ICRWMCwgNTogJFYxLCA2OiAkVjIgfSwgbyhbMSwgNCwgNSwgMTUsIDE2LCAxOCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDMyLCAzNCwgMzYsIDM3LCA0MSwgNDQsIDQ1LCA0NiwgNDcsIDUwXSwgJFYzLCB7IDc6IDcgfSksIHsgMTogWzIsIDFdIH0sIHsgMTogWzIsIDJdIH0sIHsgMTogWzIsIDNdLCA0OiAkVjQsIDU6ICRWNSwgODogOCwgOTogMTAsIDEwOiAxMiwgMTE6IDEzLCAxMjogMTQsIDE1OiAkVjYsIDE2OiAkVjcsIDE4OiAkVjgsIDIxOiAkVjksIDIzOiAkVmEsIDI0OiAkVmIsIDI1OiAkVmMsIDI2OiAkVmQsIDI3OiAkVmUsIDI4OiAkVmYsIDMxOiAyNCwgMzI6ICRWZywgMzQ6ICRWaCwgMzY6ICRWaSwgMzc6ICRWaiwgNDE6ICRWaywgNDQ6ICRWbCwgNDU6ICRWbSwgNDY6ICRWbiwgNDc6ICRWbywgNTA6ICRWcCB9LCBvKCRWcSwgWzIsIDVdKSwgeyA5OiAzNiwgMTA6IDEyLCAxMTogMTMsIDEyOiAxNCwgMTU6ICRWNiwgMTY6ICRWNywgMTg6ICRWOCwgMjE6ICRWOSwgMjM6ICRWYSwgMjQ6ICRWYiwgMjU6ICRWYywgMjY6ICRWZCwgMjc6ICRWZSwgMjg6ICRWZiwgMzE6IDI0LCAzMjogJFZnLCAzNDogJFZoLCAzNjogJFZpLCAzNzogJFZqLCA0MTogJFZrLCA0NDogJFZsLCA0NTogJFZtLCA0NjogJFZuLCA0NzogJFZvLCA1MDogJFZwIH0sIG8oJFZxLCBbMiwgN10pLCBvKCRWcSwgWzIsIDhdKSwgbygkVnEsIFsyLCA5XSksIG8oJFZxLCBbMiwgMTBdKSwgbygkVnEsIFsyLCAxMV0sIHsgMTM6IFsxLCAzN10sIDE0OiBbMSwgMzhdIH0pLCBvKCRWcSwgWzIsIDE1XSksIHsgMTc6IFsxLCAzOV0gfSwgbygkVnEsIFsyLCAxN10sIHsgMTk6IFsxLCA0MF0gfSksIHsgMjI6IFsxLCA0MV0gfSwgbygkVnEsIFsyLCAyMV0pLCBvKCRWcSwgWzIsIDIyXSksIG8oJFZxLCBbMiwgMjNdKSwgbygkVnEsIFsyLCAyNF0pLCB7IDI5OiA0MiwgMzA6IFsxLCA0M10sIDUyOiBbMSwgNDRdLCA1MzogWzEsIDQ1XSB9LCBvKCRWcSwgWzIsIDI3XSksIHsgMzM6IFsxLCA0Nl0gfSwgeyAzNTogWzEsIDQ3XSB9LCBvKCRWcSwgWzIsIDMwXSksIHsgMzg6IFsxLCA0OF0sIDQwOiBbMSwgNDldIH0sIHsgNDI6IFsxLCA1MF0gfSwgbygkVnIsIFsyLCA0MF0sIHsgNTE6IFsxLCA1MV0gfSksIG8oJFZyLCBbMiwgNDFdLCB7IDUxOiBbMSwgNTJdIH0pLCBvKCRWcSwgWzIsIDM0XSksIG8oJFZxLCBbMiwgMzVdKSwgbygkVnEsIFsyLCAzNl0pLCBvKCRWcSwgWzIsIDM3XSksIG8oJFZxLCBbMiwgNl0pLCBvKCRWcSwgWzIsIDEyXSksIHsgMTI6IDUzLCAyMzogJFZhLCA1MDogJFZwIH0sIG8oJFZxLCBbMiwgMTZdKSwgbygkVnMsICRWMywgeyA3OiA1NCB9KSwgeyAyMzogWzEsIDU1XSB9LCB7IDIzOiBbMSwgNTZdIH0sIHsgMjI6IFsxLCA1N10gfSwgeyAyMzogWzIsIDQ0XSB9LCB7IDIzOiBbMiwgNDVdIH0sIG8oJFZxLCBbMiwgMjhdKSwgbygkVnEsIFsyLCAyOV0pLCB7IDM5OiBbMSwgNThdIH0sIHsgMzk6IFsxLCA1OV0gfSwgeyA0MzogWzEsIDYwXSB9LCB7IDIzOiBbMSwgNjFdIH0sIHsgMjM6IFsxLCA2Ml0gfSwgbygkVnEsIFsyLCAxM10sIHsgMTM6IFsxLCA2M10gfSksIHsgNDogJFY0LCA1OiAkVjUsIDg6IDgsIDk6IDEwLCAxMDogMTIsIDExOiAxMywgMTI6IDE0LCAxNTogJFY2LCAxNjogJFY3LCAxODogJFY4LCAyMDogWzEsIDY0XSwgMjE6ICRWOSwgMjM6ICRWYSwgMjQ6ICRWYiwgMjU6ICRWYywgMjY6ICRWZCwgMjc6ICRWZSwgMjg6ICRWZiwgMzE6IDI0LCAzMjogJFZnLCAzNDogJFZoLCAzNjogJFZpLCAzNzogJFZqLCA0MTogJFZrLCA0NDogJFZsLCA0NTogJFZtLCA0NjogJFZuLCA0NzogJFZvLCA1MDogJFZwIH0sIG8oJFZxLCBbMiwgMTldLCB7IDE5OiBbMSwgNjVdIH0pLCB7IDMwOiBbMSwgNjZdIH0sIHsgMjM6IFsxLCA2N10gfSwgbygkVnEsIFsyLCAzMV0pLCBvKCRWcSwgWzIsIDMyXSksIG8oJFZxLCBbMiwgMzNdKSwgbygkVnIsIFsyLCA0Ml0pLCBvKCRWciwgWzIsIDQzXSksIG8oJFZxLCBbMiwgMTRdKSwgbygkVnEsIFsyLCAxOF0pLCBvKCRWcywgJFYzLCB7IDc6IDY4IH0pLCBvKCRWcSwgWzIsIDI1XSksIG8oJFZxLCBbMiwgMjZdKSwgeyA0OiAkVjQsIDU6ICRWNSwgODogOCwgOTogMTAsIDEwOiAxMiwgMTE6IDEzLCAxMjogMTQsIDE1OiAkVjYsIDE2OiAkVjcsIDE4OiAkVjgsIDIwOiBbMSwgNjldLCAyMTogJFY5LCAyMzogJFZhLCAyNDogJFZiLCAyNTogJFZjLCAyNjogJFZkLCAyNzogJFZlLCAyODogJFZmLCAzMTogMjQsIDMyOiAkVmcsIDM0OiAkVmgsIDM2OiAkVmksIDM3OiAkVmosIDQxOiAkVmssIDQ0OiAkVmwsIDQ1OiAkVm0sIDQ2OiAkVm4sIDQ3OiAkVm8sIDUwOiAkVnAgfSwgbygkVnEsIFsyLCAyMF0pXSxcbiAgICBkZWZhdWx0QWN0aW9uczogeyA1OiBbMiwgMV0sIDY6IFsyLCAyXSwgNDQ6IFsyLCA0NF0sIDQ1OiBbMiwgNDVdIH0sXG4gICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgIGlmIChoYXNoLnJlY292ZXJhYmxlKSB7XG4gICAgICAgIHRoaXMudHJhY2Uoc3RyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICBlcnJvci5oYXNoID0gaGFzaDtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSxcbiAgICBwYXJzZTogZnVuY3Rpb24gcGFyc2UoaW5wdXQpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcywgc3RhY2sgPSBbMF0sIHRzdGFjayA9IFtdLCB2c3RhY2sgPSBbbnVsbF0sIGxzdGFjayA9IFtdLCB0YWJsZSA9IHRoaXMudGFibGUsIHl5dGV4dCA9IFwiXCIsIHl5bGluZW5vID0gMCwgeXlsZW5nID0gMCwgVEVSUk9SID0gMiwgRU9GID0gMTtcbiAgICAgIHZhciBhcmdzID0gbHN0YWNrLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgIHZhciBsZXhlcjIgPSBPYmplY3QuY3JlYXRlKHRoaXMubGV4ZXIpO1xuICAgICAgdmFyIHNoYXJlZFN0YXRlID0geyB5eToge30gfTtcbiAgICAgIGZvciAodmFyIGsgaW4gdGhpcy55eSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMueXksIGspKSB7XG4gICAgICAgICAgc2hhcmVkU3RhdGUueXlba10gPSB0aGlzLnl5W2tdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXhlcjIuc2V0SW5wdXQoaW5wdXQsIHNoYXJlZFN0YXRlLnl5KTtcbiAgICAgIHNoYXJlZFN0YXRlLnl5LmxleGVyID0gbGV4ZXIyO1xuICAgICAgc2hhcmVkU3RhdGUueXkucGFyc2VyID0gdGhpcztcbiAgICAgIGlmICh0eXBlb2YgbGV4ZXIyLnl5bGxvYyA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGxleGVyMi55eWxsb2MgPSB7fTtcbiAgICAgIH1cbiAgICAgIHZhciB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICBsc3RhY2sucHVzaCh5eWxvYyk7XG4gICAgICB2YXIgcmFuZ2VzID0gbGV4ZXIyLm9wdGlvbnMgJiYgbGV4ZXIyLm9wdGlvbnMucmFuZ2VzO1xuICAgICAgaWYgKHR5cGVvZiBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFyc2VFcnJvciA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5wYXJzZUVycm9yO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgdG9rZW47XG4gICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpIHx8IGxleGVyMi5sZXgoKSB8fCBFT0Y7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBpZiAodG9rZW4gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgdHN0YWNrID0gdG9rZW47XG4gICAgICAgICAgICB0b2tlbiA9IHRzdGFjay5wb3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdG9rZW4gPSBzZWxmLnN5bWJvbHNfW3Rva2VuXSB8fCB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICB9XG4gICAgICB2YXIgc3ltYm9sLCBzdGF0ZSwgYWN0aW9uLCByLCB5eXZhbCA9IHt9LCBwLCBsZW4sIG5ld1N0YXRlLCBleHBlY3RlZDtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHN0YXRlID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXSkge1xuICAgICAgICAgIGFjdGlvbiA9IHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChzeW1ib2wgPT09IG51bGwgfHwgdHlwZW9mIHN5bWJvbCA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBzeW1ib2wgPSBsZXgoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWN0aW9uID0gdGFibGVbc3RhdGVdICYmIHRhYmxlW3N0YXRlXVtzeW1ib2xdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSBcInVuZGVmaW5lZFwiIHx8ICFhY3Rpb24ubGVuZ3RoIHx8ICFhY3Rpb25bMF0pIHtcbiAgICAgICAgICB2YXIgZXJyU3RyID0gXCJcIjtcbiAgICAgICAgICBleHBlY3RlZCA9IFtdO1xuICAgICAgICAgIGZvciAocCBpbiB0YWJsZVtzdGF0ZV0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRlcm1pbmFsc19bcF0gJiYgcCA+IFRFUlJPUikge1xuICAgICAgICAgICAgICBleHBlY3RlZC5wdXNoKFwiJ1wiICsgdGhpcy50ZXJtaW5hbHNfW3BdICsgXCInXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGV4ZXIyLnNob3dQb3NpdGlvbikge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjpcXG5cIiArIGxleGVyMi5zaG93UG9zaXRpb24oKSArIFwiXFxuRXhwZWN0aW5nIFwiICsgZXhwZWN0ZWQuam9pbihcIiwgXCIpICsgXCIsIGdvdCAnXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOiBVbmV4cGVjdGVkIFwiICsgKHN5bWJvbCA9PSBFT0YgPyBcImVuZCBvZiBpbnB1dFwiIDogXCInXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wYXJzZUVycm9yKGVyclN0ciwge1xuICAgICAgICAgICAgdGV4dDogbGV4ZXIyLm1hdGNoLFxuICAgICAgICAgICAgdG9rZW46IHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCxcbiAgICAgICAgICAgIGxpbmU6IGxleGVyMi55eWxpbmVubyxcbiAgICAgICAgICAgIGxvYzogeXlsb2MsXG4gICAgICAgICAgICBleHBlY3RlZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25bMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBhY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcnNlIEVycm9yOiBtdWx0aXBsZSBhY3Rpb25zIHBvc3NpYmxlIGF0IHN0YXRlOiBcIiArIHN0YXRlICsgXCIsIHRva2VuOiBcIiArIHN5bWJvbCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChhY3Rpb25bMF0pIHtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBzdGFjay5wdXNoKHN5bWJvbCk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaChsZXhlcjIueXl0ZXh0KTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKGxleGVyMi55eWxsb2MpO1xuICAgICAgICAgICAgc3RhY2sucHVzaChhY3Rpb25bMV0pO1xuICAgICAgICAgICAgc3ltYm9sID0gbnVsbDtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgeXlsZW5nID0gbGV4ZXIyLnl5bGVuZztcbiAgICAgICAgICAgICAgeXl0ZXh0ID0gbGV4ZXIyLnl5dGV4dDtcbiAgICAgICAgICAgICAgeXlsaW5lbm8gPSBsZXhlcjIueXlsaW5lbm87XG4gICAgICAgICAgICAgIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGxlbiA9IHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMV07XG4gICAgICAgICAgICB5eXZhbC4kID0gdnN0YWNrW3ZzdGFjay5sZW5ndGggLSBsZW5dO1xuICAgICAgICAgICAgeXl2YWwuXyQgPSB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmFuZ2VzKSB7XG4gICAgICAgICAgICAgIHl5dmFsLl8kLnJhbmdlID0gW1xuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0ucmFuZ2VbMF0sXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5yYW5nZVsxXVxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgciA9IHRoaXMucGVyZm9ybUFjdGlvbi5hcHBseSh5eXZhbCwgW1xuICAgICAgICAgICAgICB5eXRleHQsXG4gICAgICAgICAgICAgIHl5bGVuZyxcbiAgICAgICAgICAgICAgeXlsaW5lbm8sXG4gICAgICAgICAgICAgIHNoYXJlZFN0YXRlLnl5LFxuICAgICAgICAgICAgICBhY3Rpb25bMV0sXG4gICAgICAgICAgICAgIHZzdGFjayxcbiAgICAgICAgICAgICAgbHN0YWNrXG4gICAgICAgICAgICBdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGVuKSB7XG4gICAgICAgICAgICAgIHN0YWNrID0gc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4gKiAyKTtcbiAgICAgICAgICAgICAgdnN0YWNrID0gdnN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgICAgbHN0YWNrID0gbHN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YWNrLnB1c2godGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVswXSk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaCh5eXZhbC4kKTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKHl5dmFsLl8kKTtcbiAgICAgICAgICAgIG5ld1N0YXRlID0gdGFibGVbc3RhY2tbc3RhY2subGVuZ3RoIC0gMl1dW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2gobmV3U3RhdGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfTtcbiAgdmFyIGxleGVyID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGxleGVyMiA9IHtcbiAgICAgIEVPRjogMSxcbiAgICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICAgIGlmICh0aGlzLnl5LnBhcnNlcikge1xuICAgICAgICAgIHRoaXMueXkucGFyc2VyLnBhcnNlRXJyb3Ioc3RyLCBoYXNoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJlc2V0cyB0aGUgbGV4ZXIsIHNldHMgbmV3IGlucHV0XG4gICAgICBzZXRJbnB1dDogZnVuY3Rpb24oaW5wdXQsIHl5KSB7XG4gICAgICAgIHRoaXMueXkgPSB5eSB8fCB0aGlzLnl5IHx8IHt9O1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLl9tb3JlID0gdGhpcy5fYmFja3RyYWNrID0gdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgIHRoaXMueXlsaW5lbm8gPSB0aGlzLnl5bGVuZyA9IDA7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaCA9IFwiXCI7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sgPSBbXCJJTklUSUFMXCJdO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogMCxcbiAgICAgICAgICBsYXN0X2xpbmU6IDEsXG4gICAgICAgICAgbGFzdF9jb2x1bW46IDBcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFswLCAwXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIGNvbnN1bWVzIGFuZCByZXR1cm5zIG9uZSBjaGFyIGZyb20gdGhlIGlucHV0XG4gICAgICBpbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBjaCA9IHRoaXMuX2lucHV0WzBdO1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBjaDtcbiAgICAgICAgdGhpcy55eWxlbmcrKztcbiAgICAgICAgdGhpcy5vZmZzZXQrKztcbiAgICAgICAgdGhpcy5tYXRjaCArPSBjaDtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IGNoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8rKztcbiAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2xpbmUrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbisrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2VbMV0rKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKDEpO1xuICAgICAgICByZXR1cm4gY2g7XG4gICAgICB9LFxuICAgICAgLy8gdW5zaGlmdHMgb25lIGNoYXIgKG9yIGEgc3RyaW5nKSBpbnRvIHRoZSBpbnB1dFxuICAgICAgdW5wdXQ6IGZ1bmN0aW9uKGNoKSB7XG4gICAgICAgIHZhciBsZW4gPSBjaC5sZW5ndGg7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gY2ggKyB0aGlzLl9pbnB1dDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLnl5dGV4dC5zdWJzdHIoMCwgdGhpcy55eXRleHQubGVuZ3RoIC0gbGVuKTtcbiAgICAgICAgdGhpcy5vZmZzZXQgLT0gbGVuO1xuICAgICAgICB2YXIgb2xkTGluZXMgPSB0aGlzLm1hdGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgIHRoaXMubWF0Y2ggPSB0aGlzLm1hdGNoLnN1YnN0cigwLCB0aGlzLm1hdGNoLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSAxKTtcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vIC09IGxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHIgPSB0aGlzLnl5bGxvYy5yYW5nZTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IChsaW5lcy5sZW5ndGggPT09IG9sZExpbmVzLmxlbmd0aCA/IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiA6IDApICsgb2xkTGluZXNbb2xkTGluZXMubGVuZ3RoIC0gbGluZXMubGVuZ3RoXS5sZW5ndGggLSBsaW5lc1swXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gLSBsZW5cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFtyWzBdLCByWzBdICsgdGhpcy55eWxlbmcgLSBsZW5dO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgY2FjaGVzIG1hdGNoZWQgdGV4dCBhbmQgYXBwZW5kcyBpdCBvbiBuZXh0IGFjdGlvblxuICAgICAgbW9yZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgc2lnbmFscyB0aGUgbGV4ZXIgdGhhdCB0aGlzIHJ1bGUgZmFpbHMgdG8gbWF0Y2ggdGhlIGlucHV0LCBzbyB0aGUgbmV4dCBtYXRjaGluZyBydWxlIChyZWdleCkgc2hvdWxkIGJlIHRlc3RlZCBpbnN0ZWFkLlxuICAgICAgcmVqZWN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIgKyAodGhpcy55eWxpbmVubyArIDEpICsgXCIuIFlvdSBjYW4gb25seSBpbnZva2UgcmVqZWN0KCkgaW4gdGhlIGxleGVyIHdoZW4gdGhlIGxleGVyIGlzIG9mIHRoZSBiYWNrdHJhY2tpbmcgcGVyc3Vhc2lvbiAob3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIgPSB0cnVlKS5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyByZXRhaW4gZmlyc3QgbiBjaGFyYWN0ZXJzIG9mIHRoZSBtYXRjaFxuICAgICAgbGVzczogZnVuY3Rpb24obikge1xuICAgICAgICB0aGlzLnVucHV0KHRoaXMubWF0Y2guc2xpY2UobikpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIGFscmVhZHkgbWF0Y2hlZCBpbnB1dCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHBhc3RJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwYXN0ID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gdGhpcy5tYXRjaC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gKHBhc3QubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikgKyBwYXN0LnN1YnN0cigtMjApLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB1cGNvbWluZyBpbnB1dCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHVwY29taW5nSW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbmV4dCA9IHRoaXMubWF0Y2g7XG4gICAgICAgIGlmIChuZXh0Lmxlbmd0aCA8IDIwKSB7XG4gICAgICAgICAgbmV4dCArPSB0aGlzLl9pbnB1dC5zdWJzdHIoMCwgMjAgLSBuZXh0Lmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChuZXh0LnN1YnN0cigwLCAyMCkgKyAobmV4dC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXIgcG9zaXRpb24gd2hlcmUgdGhlIGxleGluZyBlcnJvciBvY2N1cnJlZCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHNob3dQb3NpdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwcmUgPSB0aGlzLnBhc3RJbnB1dCgpO1xuICAgICAgICB2YXIgYyA9IG5ldyBBcnJheShwcmUubGVuZ3RoICsgMSkuam9pbihcIi1cIik7XG4gICAgICAgIHJldHVybiBwcmUgKyB0aGlzLnVwY29taW5nSW5wdXQoKSArIFwiXFxuXCIgKyBjICsgXCJeXCI7XG4gICAgICB9LFxuICAgICAgLy8gdGVzdCB0aGUgbGV4ZWQgdG9rZW46IHJldHVybiBGQUxTRSB3aGVuIG5vdCBhIG1hdGNoLCBvdGhlcndpc2UgcmV0dXJuIHRva2VuXG4gICAgICB0ZXN0X21hdGNoOiBmdW5jdGlvbihtYXRjaCwgaW5kZXhlZF9ydWxlKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbGluZXMsIGJhY2t1cDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICBiYWNrdXAgPSB7XG4gICAgICAgICAgICB5eWxpbmVubzogdGhpcy55eWxpbmVubyxcbiAgICAgICAgICAgIHl5bGxvYzoge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeXl0ZXh0OiB0aGlzLnl5dGV4dCxcbiAgICAgICAgICAgIG1hdGNoOiB0aGlzLm1hdGNoLFxuICAgICAgICAgICAgbWF0Y2hlczogdGhpcy5tYXRjaGVzLFxuICAgICAgICAgICAgbWF0Y2hlZDogdGhpcy5tYXRjaGVkLFxuICAgICAgICAgICAgeXlsZW5nOiB0aGlzLnl5bGVuZyxcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICBfbW9yZTogdGhpcy5fbW9yZSxcbiAgICAgICAgICAgIF9pbnB1dDogdGhpcy5faW5wdXQsXG4gICAgICAgICAgICB5eTogdGhpcy55eSxcbiAgICAgICAgICAgIGNvbmRpdGlvblN0YWNrOiB0aGlzLmNvbmRpdGlvblN0YWNrLnNsaWNlKDApLFxuICAgICAgICAgICAgZG9uZTogdGhpcy5kb25lXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgICAgYmFja3VwLnl5bGxvYy5yYW5nZSA9IHRoaXMueXlsbG9jLnJhbmdlLnNsaWNlKDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsaW5lcyA9IG1hdGNoWzBdLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyArPSBsaW5lcy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MubGFzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGggLSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5tYXRjaCgvXFxyP1xcbj8vKVswXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbiArIG1hdGNoWzBdLmxlbmd0aFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBtYXRjaFswXTtcbiAgICAgICAgdGhpcy5tYXRjaCArPSBtYXRjaFswXTtcbiAgICAgICAgdGhpcy5tYXRjaGVzID0gbWF0Y2g7XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3RoaXMub2Zmc2V0LCB0aGlzLm9mZnNldCArPSB0aGlzLnl5bGVuZ107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbW9yZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZShtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRva2VuID0gdGhpcy5wZXJmb3JtQWN0aW9uLmNhbGwodGhpcywgdGhpcy55eSwgdGhpcywgaW5kZXhlZF9ydWxlLCB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pO1xuICAgICAgICBpZiAodGhpcy5kb25lICYmIHRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgIGZvciAodmFyIGsgaW4gYmFja3VwKSB7XG4gICAgICAgICAgICB0aGlzW2tdID0gYmFja3VwW2tdO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIGluIGlucHV0XG4gICAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5kb25lID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdG9rZW4sIG1hdGNoLCB0ZW1wTWF0Y2gsIGluZGV4O1xuICAgICAgICBpZiAoIXRoaXMuX21vcmUpIHtcbiAgICAgICAgICB0aGlzLnl5dGV4dCA9IFwiXCI7XG4gICAgICAgICAgdGhpcy5tYXRjaCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJ1bGVzID0gdGhpcy5fY3VycmVudFJ1bGVzKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0ZW1wTWF0Y2ggPSB0aGlzLl9pbnB1dC5tYXRjaCh0aGlzLnJ1bGVzW3J1bGVzW2ldXSk7XG4gICAgICAgICAgaWYgKHRlbXBNYXRjaCAmJiAoIW1hdGNoIHx8IHRlbXBNYXRjaFswXS5sZW5ndGggPiBtYXRjaFswXS5sZW5ndGgpKSB7XG4gICAgICAgICAgICBtYXRjaCA9IHRlbXBNYXRjaDtcbiAgICAgICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKHRlbXBNYXRjaCwgcnVsZXNbaV0pO1xuICAgICAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLm9wdGlvbnMuZmxleCkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2gobWF0Y2gsIHJ1bGVzW2luZGV4XSk7XG4gICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0ID09PSBcIlwiKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIgKyAodGhpcy55eWxpbmVubyArIDEpICsgXCIuIFVucmVjb2duaXplZCB0ZXh0LlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggdGhhdCBoYXMgYSB0b2tlblxuICAgICAgbGV4OiBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciByID0gdGhpcy5uZXh0KCk7XG4gICAgICAgIGlmIChyKSB7XG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubGV4KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhY3RpdmF0ZXMgYSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIChwdXNoZXMgdGhlIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgb250byB0aGUgY29uZGl0aW9uIHN0YWNrKVxuICAgICAgYmVnaW46IGZ1bmN0aW9uIGJlZ2luKGNvbmRpdGlvbikge1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrLnB1c2goY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyBwb3AgdGhlIHByZXZpb3VzbHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvZmYgdGhlIGNvbmRpdGlvbiBzdGFja1xuICAgICAgcG9wU3RhdGU6IGZ1bmN0aW9uIHBvcFN0YXRlKCkge1xuICAgICAgICB2YXIgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKG4gPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2sucG9wKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2tbMF07XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBwcm9kdWNlIHRoZSBsZXhlciBydWxlIHNldCB3aGljaCBpcyBhY3RpdmUgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZVxuICAgICAgX2N1cnJlbnRSdWxlczogZnVuY3Rpb24gX2N1cnJlbnRSdWxlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoICYmIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdXS5ydWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW1wiSU5JVElBTFwiXS5ydWxlcztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGU7IHdoZW4gYW4gaW5kZXggYXJndW1lbnQgaXMgcHJvdmlkZWQgaXQgcHJvZHVjZXMgdGhlIE4tdGggcHJldmlvdXMgY29uZGl0aW9uIHN0YXRlLCBpZiBhdmFpbGFibGVcbiAgICAgIHRvcFN0YXRlOiBmdW5jdGlvbiB0b3BTdGF0ZShuKSB7XG4gICAgICAgIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDEgLSBNYXRoLmFicyhuIHx8IDApO1xuICAgICAgICBpZiAobiA+PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2tbbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFwiSU5JVElBTFwiO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWxpYXMgZm9yIGJlZ2luKGNvbmRpdGlvbilcbiAgICAgIHB1c2hTdGF0ZTogZnVuY3Rpb24gcHVzaFN0YXRlKGNvbmRpdGlvbikge1xuICAgICAgICB0aGlzLmJlZ2luKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdGVzIGN1cnJlbnRseSBvbiB0aGUgc3RhY2tcbiAgICAgIHN0YXRlU3RhY2tTaXplOiBmdW5jdGlvbiBzdGF0ZVN0YWNrU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHsgXCJjYXNlLWluc2Vuc2l0aXZlXCI6IHRydWUgfSxcbiAgICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eSwgeXlfLCAkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zLCBZWV9TVEFSVCkge1xuICAgICAgICBzd2l0Y2ggKCRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gNDA7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIDQ0O1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiA0NTtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gNDY7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgcmV0dXJuIDQ3O1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHJldHVybiA1O1xuICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiU0NBTEVcIik7XG4gICAgICAgICAgICByZXR1cm4gMTY7XG4gICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgIHJldHVybiAxNztcbiAgICAgICAgICBjYXNlIDE0OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfdGl0bGVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzI7XG4gICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBcImFjY190aXRsZV92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgMTc6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiYWNjX2Rlc2NyXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM0O1xuICAgICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjcl9tdWx0aWxpbmVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJDTEFTU0RFRlwiKTtcbiAgICAgICAgICAgIHJldHVybiAzNztcbiAgICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJDTEFTU0RFRklEXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiREVGQVVMVF9DTEFTU0RFRl9JRFwiO1xuICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIkNMQVNTREVGSURcIik7XG4gICAgICAgICAgICByZXR1cm4gMzg7XG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiAzOTtcbiAgICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJDTEFTU1wiKTtcbiAgICAgICAgICAgIHJldHVybiA0MTtcbiAgICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJDTEFTU19TVFlMRVwiKTtcbiAgICAgICAgICAgIHJldHVybiA0MjtcbiAgICAgICAgICBjYXNlIDI4OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDQzO1xuICAgICAgICAgIGNhc2UgMjk6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIlNDQUxFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE2O1xuICAgICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgICByZXR1cm4gMTc7XG4gICAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIlNUQVRFXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzMzpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHl5Xy55eXRleHQgPSB5eV8ueXl0ZXh0LnNsaWNlKDAsIC04KS50cmltKCk7XG4gICAgICAgICAgICByZXR1cm4gMjQ7XG4gICAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHl5Xy55eXRleHQgPSB5eV8ueXl0ZXh0LnNsaWNlKDAsIC04KS50cmltKCk7XG4gICAgICAgICAgICByZXR1cm4gMjU7XG4gICAgICAgICAgY2FzZSAzNTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHl5Xy55eXRleHQgPSB5eV8ueXl0ZXh0LnNsaWNlKDAsIC0xMCkudHJpbSgpO1xuICAgICAgICAgICAgcmV0dXJuIDI2O1xuICAgICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0geXlfLnl5dGV4dC5zbGljZSgwLCAtOCkudHJpbSgpO1xuICAgICAgICAgICAgcmV0dXJuIDI0O1xuICAgICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0geXlfLnl5dGV4dC5zbGljZSgwLCAtOCkudHJpbSgpO1xuICAgICAgICAgICAgcmV0dXJuIDI1O1xuICAgICAgICAgIGNhc2UgMzg6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0geXlfLnl5dGV4dC5zbGljZSgwLCAtMTApLnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiAyNjtcbiAgICAgICAgICBjYXNlIDM5OlxuICAgICAgICAgICAgcmV0dXJuIDQ0O1xuICAgICAgICAgIGNhc2UgNDA6XG4gICAgICAgICAgICByZXR1cm4gNDU7XG4gICAgICAgICAgY2FzZSA0MTpcbiAgICAgICAgICAgIHJldHVybiA0NjtcbiAgICAgICAgICBjYXNlIDQyOlxuICAgICAgICAgICAgcmV0dXJuIDQ3O1xuICAgICAgICAgIGNhc2UgNDM6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIlNUQVRFX1NUUklOR1wiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNDQ6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIlNUQVRFX0lEXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiQVNcIjtcbiAgICAgICAgICBjYXNlIDQ1OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiSURcIjtcbiAgICAgICAgICBjYXNlIDQ2OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0NzpcbiAgICAgICAgICAgIHJldHVybiBcIlNUQVRFX0RFU0NSXCI7XG4gICAgICAgICAgY2FzZSA0ODpcbiAgICAgICAgICAgIHJldHVybiAxODtcbiAgICAgICAgICBjYXNlIDQ5OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA1MDpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwic3RydWN0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE5O1xuICAgICAgICAgIGNhc2UgNTE6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDUyOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIDIwO1xuICAgICAgICAgIGNhc2UgNTM6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDU0OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIk5PVEVcIik7XG4gICAgICAgICAgICByZXR1cm4gMjg7XG4gICAgICAgICAgY2FzZSA1NTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiTk9URV9JRFwiKTtcbiAgICAgICAgICAgIHJldHVybiA1MjtcbiAgICAgICAgICBjYXNlIDU2OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJOT1RFX0lEXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDUzO1xuICAgICAgICAgIGNhc2UgNTc6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIkZMT0FUSU5HX05PVEVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDU4OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJGTE9BVElOR19OT1RFX0lEXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiQVNcIjtcbiAgICAgICAgICBjYXNlIDU5OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA2MDpcbiAgICAgICAgICAgIHJldHVybiBcIk5PVEVfVEVYVFwiO1xuICAgICAgICAgIGNhc2UgNjE6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJJRFwiO1xuICAgICAgICAgIGNhc2UgNjI6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIk5PVEVfVEVYVFwiKTtcbiAgICAgICAgICAgIHJldHVybiAyMztcbiAgICAgICAgICBjYXNlIDYzOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXlfLnl5dGV4dCA9IHl5Xy55eXRleHQuc3Vic3RyKDIpLnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiAzMDtcbiAgICAgICAgICBjYXNlIDY0OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXlfLnl5dGV4dCA9IHl5Xy55eXRleHQuc2xpY2UoMCwgLTgpLnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiAzMDtcbiAgICAgICAgICBjYXNlIDY1OlxuICAgICAgICAgICAgcmV0dXJuIDY7XG4gICAgICAgICAgY2FzZSA2NjpcbiAgICAgICAgICAgIHJldHVybiA2O1xuICAgICAgICAgIGNhc2UgNjc6XG4gICAgICAgICAgICByZXR1cm4gMTU7XG4gICAgICAgICAgY2FzZSA2ODpcbiAgICAgICAgICAgIHJldHVybiA1MDtcbiAgICAgICAgICBjYXNlIDY5OlxuICAgICAgICAgICAgcmV0dXJuIDIzO1xuICAgICAgICAgIGNhc2UgNzA6XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0geXlfLnl5dGV4dC50cmltKCk7XG4gICAgICAgICAgICByZXR1cm4gMTM7XG4gICAgICAgICAgY2FzZSA3MTpcbiAgICAgICAgICAgIHJldHVybiAxNDtcbiAgICAgICAgICBjYXNlIDcyOlxuICAgICAgICAgICAgcmV0dXJuIDI3O1xuICAgICAgICAgIGNhc2UgNzM6XG4gICAgICAgICAgICByZXR1cm4gNTE7XG4gICAgICAgICAgY2FzZSA3NDpcbiAgICAgICAgICAgIHJldHVybiA1O1xuICAgICAgICAgIGNhc2UgNzU6XG4gICAgICAgICAgICByZXR1cm4gXCJJTlZBTElEXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczogWy9eKD86ZGVmYXVsdFxcYikvaSwgL14oPzouKmRpcmVjdGlvblxccytUQlteXFxuXSopL2ksIC9eKD86LipkaXJlY3Rpb25cXHMrQlRbXlxcbl0qKS9pLCAvXig/Oi4qZGlyZWN0aW9uXFxzK1JMW15cXG5dKikvaSwgL14oPzouKmRpcmVjdGlvblxccytMUlteXFxuXSopL2ksIC9eKD86JSUoPyFcXHspW15cXG5dKikvaSwgL14oPzpbXlxcfV0lJVteXFxuXSopL2ksIC9eKD86W1xcbl0rKS9pLCAvXig/OltcXHNdKykvaSwgL14oPzooKD8hXFxuKVxccykrKS9pLCAvXig/OiNbXlxcbl0qKS9pLCAvXig/OiVbXlxcbl0qKS9pLCAvXig/OnNjYWxlXFxzKykvaSwgL14oPzpcXGQrKS9pLCAvXig/Olxccyt3aWR0aFxcYikvaSwgL14oPzphY2NUaXRsZVxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccypcXHtcXHMqKS9pLCAvXig/OltcXH1dKS9pLCAvXig/OlteXFx9XSopL2ksIC9eKD86Y2xhc3NEZWZcXHMrKS9pLCAvXig/OkRFRkFVTFRcXHMrKS9pLCAvXig/OlxcdytcXHMrKS9pLCAvXig/OlteXFxuXSopL2ksIC9eKD86Y2xhc3NcXHMrKS9pLCAvXig/OihcXHcrKSsoKCxcXHMqXFx3KykqKSkvaSwgL14oPzpbXlxcbl0qKS9pLCAvXig/OnNjYWxlXFxzKykvaSwgL14oPzpcXGQrKS9pLCAvXig/Olxccyt3aWR0aFxcYikvaSwgL14oPzpzdGF0ZVxccyspL2ksIC9eKD86Lio8PGZvcms+PikvaSwgL14oPzouKjw8am9pbj4+KS9pLCAvXig/Oi4qPDxjaG9pY2U+PikvaSwgL14oPzouKlxcW1xcW2ZvcmtcXF1cXF0pL2ksIC9eKD86LipcXFtcXFtqb2luXFxdXFxdKS9pLCAvXig/Oi4qXFxbXFxbY2hvaWNlXFxdXFxdKS9pLCAvXig/Oi4qZGlyZWN0aW9uXFxzK1RCW15cXG5dKikvaSwgL14oPzouKmRpcmVjdGlvblxccytCVFteXFxuXSopL2ksIC9eKD86LipkaXJlY3Rpb25cXHMrUkxbXlxcbl0qKS9pLCAvXig/Oi4qZGlyZWN0aW9uXFxzK0xSW15cXG5dKikvaSwgL14oPzpbXCJdKS9pLCAvXig/Olxccyphc1xccyspL2ksIC9eKD86W15cXG5cXHtdKikvaSwgL14oPzpbXCJdKS9pLCAvXig/OlteXCJdKikvaSwgL14oPzpbXlxcblxcc1xce10rKS9pLCAvXig/OlxcbikvaSwgL14oPzpcXHspL2ksIC9eKD86JSUoPyFcXHspW15cXG5dKikvaSwgL14oPzpcXH0pL2ksIC9eKD86W1xcbl0pL2ksIC9eKD86bm90ZVxccyspL2ksIC9eKD86bGVmdCBvZlxcYikvaSwgL14oPzpyaWdodCBvZlxcYikvaSwgL14oPzpcIikvaSwgL14oPzpcXHMqYXNcXHMqKS9pLCAvXig/OltcIl0pL2ksIC9eKD86W15cIl0qKS9pLCAvXig/OlteXFxuXSopL2ksIC9eKD86XFxzKlteOlxcblxcc1xcLV0rKS9pLCAvXig/Olxccyo6W146XFxuO10rKS9pLCAvXig/OltcXHNcXFNdKj9lbmQgbm90ZVxcYikvaSwgL14oPzpzdGF0ZURpYWdyYW1cXHMrKS9pLCAvXig/OnN0YXRlRGlhZ3JhbS12MlxccyspL2ksIC9eKD86aGlkZSBlbXB0eSBkZXNjcmlwdGlvblxcYikvaSwgL14oPzpcXFtcXCpcXF0pL2ksIC9eKD86W146XFxuXFxzXFwtXFx7XSspL2ksIC9eKD86XFxzKjpbXjpcXG47XSspL2ksIC9eKD86LS0+KS9pLCAvXig/Oi0tKS9pLCAvXig/Ojo6OikvaSwgL14oPzokKS9pLCAvXig/Oi4pL2ldLFxuICAgICAgY29uZGl0aW9uczogeyBcIkxJTkVcIjogeyBcInJ1bGVzXCI6IFs5LCAxMF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwic3RydWN0XCI6IHsgXCJydWxlc1wiOiBbOSwgMTAsIDIyLCAyNiwgMzIsIDM5LCA0MCwgNDEsIDQyLCA1MSwgNTIsIDUzLCA1NCwgNjgsIDY5LCA3MCwgNzEsIDcyXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJGTE9BVElOR19OT1RFX0lEXCI6IHsgXCJydWxlc1wiOiBbNjFdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIkZMT0FUSU5HX05PVEVcIjogeyBcInJ1bGVzXCI6IFs1OCwgNTksIDYwXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJOT1RFX1RFWFRcIjogeyBcInJ1bGVzXCI6IFs2MywgNjRdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIk5PVEVfSURcIjogeyBcInJ1bGVzXCI6IFs2Ml0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiTk9URVwiOiB7IFwicnVsZXNcIjogWzU1LCA1NiwgNTddLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIkNMQVNTX1NUWUxFXCI6IHsgXCJydWxlc1wiOiBbMjhdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIkNMQVNTXCI6IHsgXCJydWxlc1wiOiBbMjddLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIkNMQVNTREVGSURcIjogeyBcInJ1bGVzXCI6IFsyNV0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiQ0xBU1NERUZcIjogeyBcInJ1bGVzXCI6IFsyMywgMjRdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY19kZXNjcl9tdWx0aWxpbmVcIjogeyBcInJ1bGVzXCI6IFsyMCwgMjFdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY19kZXNjclwiOiB7IFwicnVsZXNcIjogWzE4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfdGl0bGVcIjogeyBcInJ1bGVzXCI6IFsxNl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiU0NBTEVcIjogeyBcInJ1bGVzXCI6IFsxMywgMTQsIDMwLCAzMV0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiQUxJQVNcIjogeyBcInJ1bGVzXCI6IFtdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIlNUQVRFX0lEXCI6IHsgXCJydWxlc1wiOiBbNDVdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIlNUQVRFX1NUUklOR1wiOiB7IFwicnVsZXNcIjogWzQ2LCA0N10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiRk9SS19TVEFURVwiOiB7IFwicnVsZXNcIjogW10sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiU1RBVEVcIjogeyBcInJ1bGVzXCI6IFs5LCAxMCwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgNDMsIDQ0LCA0OCwgNDksIDUwXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJRFwiOiB7IFwicnVsZXNcIjogWzksIDEwXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgMTAsIDExLCAxMiwgMTUsIDE3LCAxOSwgMjIsIDI2LCAyOSwgMzIsIDUwLCA1NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDczLCA3NCwgNzVdLCBcImluY2x1c2l2ZVwiOiB0cnVlIH0gfVxuICAgIH07XG4gICAgcmV0dXJuIGxleGVyMjtcbiAgfSgpO1xuICBwYXJzZXIyLmxleGVyID0gbGV4ZXI7XG4gIGZ1bmN0aW9uIFBhcnNlcigpIHtcbiAgICB0aGlzLnl5ID0ge307XG4gIH1cbiAgUGFyc2VyLnByb3RvdHlwZSA9IHBhcnNlcjI7XG4gIHBhcnNlcjIuUGFyc2VyID0gUGFyc2VyO1xuICByZXR1cm4gbmV3IFBhcnNlcigpO1xufSgpO1xucGFyc2VyLnBhcnNlciA9IHBhcnNlcjtcbmNvbnN0IHBhcnNlciQxID0gcGFyc2VyO1xuY29uc3QgREVGQVVMVF9ESUFHUkFNX0RJUkVDVElPTiA9IFwiTFJcIjtcbmNvbnN0IERFRkFVTFRfTkVTVEVEX0RPQ19ESVIgPSBcIlRCXCI7XG5jb25zdCBTVE1UX1NUQVRFID0gXCJzdGF0ZVwiO1xuY29uc3QgU1RNVF9SRUxBVElPTiA9IFwicmVsYXRpb25cIjtcbmNvbnN0IFNUTVRfQ0xBU1NERUYgPSBcImNsYXNzRGVmXCI7XG5jb25zdCBTVE1UX0FQUExZQ0xBU1MgPSBcImFwcGx5Q2xhc3NcIjtcbmNvbnN0IERFRkFVTFRfU1RBVEVfVFlQRSA9IFwiZGVmYXVsdFwiO1xuY29uc3QgRElWSURFUl9UWVBFID0gXCJkaXZpZGVyXCI7XG5jb25zdCBTVEFSVF9OT0RFID0gXCJbKl1cIjtcbmNvbnN0IFNUQVJUX1RZUEUgPSBcInN0YXJ0XCI7XG5jb25zdCBFTkRfTk9ERSA9IFNUQVJUX05PREU7XG5jb25zdCBFTkRfVFlQRSA9IFwiZW5kXCI7XG5jb25zdCBDT0xPUl9LRVlXT1JEID0gXCJjb2xvclwiO1xuY29uc3QgRklMTF9LRVlXT1JEID0gXCJmaWxsXCI7XG5jb25zdCBCR19GSUxMID0gXCJiZ0ZpbGxcIjtcbmNvbnN0IFNUWUxFQ0xBU1NfU0VQID0gXCIsXCI7XG5mdW5jdGlvbiBuZXdDbGFzc2VzTGlzdCgpIHtcbiAgcmV0dXJuIHt9O1xufVxubGV0IGRpcmVjdGlvbiA9IERFRkFVTFRfRElBR1JBTV9ESVJFQ1RJT047XG5sZXQgcm9vdERvYyA9IFtdO1xubGV0IGNsYXNzZXMgPSBuZXdDbGFzc2VzTGlzdCgpO1xuY29uc3QgbmV3RG9jID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIHJlbGF0aW9uczogW10sXG4gICAgc3RhdGVzOiB7fSxcbiAgICBkb2N1bWVudHM6IHt9XG4gIH07XG59O1xubGV0IGRvY3VtZW50cyA9IHtcbiAgcm9vdDogbmV3RG9jKClcbn07XG5sZXQgY3VycmVudERvY3VtZW50ID0gZG9jdW1lbnRzLnJvb3Q7XG5sZXQgc3RhcnRFbmRDb3VudCA9IDA7XG5sZXQgZGl2aWRlckNudCA9IDA7XG5jb25zdCBsaW5lVHlwZSA9IHtcbiAgTElORTogMCxcbiAgRE9UVEVEX0xJTkU6IDFcbn07XG5jb25zdCByZWxhdGlvblR5cGUgPSB7XG4gIEFHR1JFR0FUSU9OOiAwLFxuICBFWFRFTlNJT046IDEsXG4gIENPTVBPU0lUSU9OOiAyLFxuICBERVBFTkRFTkNZOiAzXG59O1xuY29uc3QgY2xvbmUgPSAobykgPT4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvKSk7XG5jb25zdCBzZXRSb290RG9jID0gKG8pID0+IHtcbiAgbG9nLmluZm8oXCJTZXR0aW5nIHJvb3QgZG9jXCIsIG8pO1xuICByb290RG9jID0gbztcbn07XG5jb25zdCBnZXRSb290RG9jID0gKCkgPT4gcm9vdERvYztcbmNvbnN0IGRvY1RyYW5zbGF0b3IgPSAocGFyZW50LCBub2RlLCBmaXJzdCkgPT4ge1xuICBpZiAobm9kZS5zdG10ID09PSBTVE1UX1JFTEFUSU9OKSB7XG4gICAgZG9jVHJhbnNsYXRvcihwYXJlbnQsIG5vZGUuc3RhdGUxLCB0cnVlKTtcbiAgICBkb2NUcmFuc2xhdG9yKHBhcmVudCwgbm9kZS5zdGF0ZTIsIGZhbHNlKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAobm9kZS5zdG10ID09PSBTVE1UX1NUQVRFKSB7XG4gICAgICBpZiAobm9kZS5pZCA9PT0gXCJbKl1cIikge1xuICAgICAgICBub2RlLmlkID0gZmlyc3QgPyBwYXJlbnQuaWQgKyBcIl9zdGFydFwiIDogcGFyZW50LmlkICsgXCJfZW5kXCI7XG4gICAgICAgIG5vZGUuc3RhcnQgPSBmaXJzdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUuaWQgPSBub2RlLmlkLnRyaW0oKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vZGUuZG9jKSB7XG4gICAgICBjb25zdCBkb2MgPSBbXTtcbiAgICAgIGxldCBjdXJyZW50RG9jID0gW107XG4gICAgICBsZXQgaTtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBub2RlLmRvYy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAobm9kZS5kb2NbaV0udHlwZSA9PT0gRElWSURFUl9UWVBFKSB7XG4gICAgICAgICAgY29uc3QgbmV3Tm9kZSA9IGNsb25lKG5vZGUuZG9jW2ldKTtcbiAgICAgICAgICBuZXdOb2RlLmRvYyA9IGNsb25lKGN1cnJlbnREb2MpO1xuICAgICAgICAgIGRvYy5wdXNoKG5ld05vZGUpO1xuICAgICAgICAgIGN1cnJlbnREb2MgPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdXJyZW50RG9jLnB1c2gobm9kZS5kb2NbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZG9jLmxlbmd0aCA+IDAgJiYgY3VycmVudERvYy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG5ld05vZGUgPSB7XG4gICAgICAgICAgc3RtdDogU1RNVF9TVEFURSxcbiAgICAgICAgICBpZDogZ2VuZXJhdGVJZCgpLFxuICAgICAgICAgIHR5cGU6IFwiZGl2aWRlclwiLFxuICAgICAgICAgIGRvYzogY2xvbmUoY3VycmVudERvYylcbiAgICAgICAgfTtcbiAgICAgICAgZG9jLnB1c2goY2xvbmUobmV3Tm9kZSkpO1xuICAgICAgICBub2RlLmRvYyA9IGRvYztcbiAgICAgIH1cbiAgICAgIG5vZGUuZG9jLmZvckVhY2goKGRvY05vZGUpID0+IGRvY1RyYW5zbGF0b3Iobm9kZSwgZG9jTm9kZSwgdHJ1ZSkpO1xuICAgIH1cbiAgfVxufTtcbmNvbnN0IGdldFJvb3REb2NWMiA9ICgpID0+IHtcbiAgZG9jVHJhbnNsYXRvcih7IGlkOiBcInJvb3RcIiB9LCB7IGlkOiBcInJvb3RcIiwgZG9jOiByb290RG9jIH0sIHRydWUpO1xuICByZXR1cm4geyBpZDogXCJyb290XCIsIGRvYzogcm9vdERvYyB9O1xufTtcbmNvbnN0IGV4dHJhY3QgPSAoX2RvYykgPT4ge1xuICBsZXQgZG9jO1xuICBpZiAoX2RvYy5kb2MpIHtcbiAgICBkb2MgPSBfZG9jLmRvYztcbiAgfSBlbHNlIHtcbiAgICBkb2MgPSBfZG9jO1xuICB9XG4gIGxvZy5pbmZvKGRvYyk7XG4gIGNsZWFyKHRydWUpO1xuICBsb2cuaW5mbyhcIkV4dHJhY3RcIiwgZG9jKTtcbiAgZG9jLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICBzd2l0Y2ggKGl0ZW0uc3RtdCkge1xuICAgICAgY2FzZSBTVE1UX1NUQVRFOlxuICAgICAgICBhZGRTdGF0ZShcbiAgICAgICAgICBpdGVtLmlkLnRyaW0oKSxcbiAgICAgICAgICBpdGVtLnR5cGUsXG4gICAgICAgICAgaXRlbS5kb2MsXG4gICAgICAgICAgaXRlbS5kZXNjcmlwdGlvbixcbiAgICAgICAgICBpdGVtLm5vdGUsXG4gICAgICAgICAgaXRlbS5jbGFzc2VzLFxuICAgICAgICAgIGl0ZW0uc3R5bGVzLFxuICAgICAgICAgIGl0ZW0udGV4dFN0eWxlc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1RNVF9SRUxBVElPTjpcbiAgICAgICAgYWRkUmVsYXRpb24oaXRlbS5zdGF0ZTEsIGl0ZW0uc3RhdGUyLCBpdGVtLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNUTVRfQ0xBU1NERUY6XG4gICAgICAgIGFkZFN0eWxlQ2xhc3MoaXRlbS5pZC50cmltKCksIGl0ZW0uY2xhc3Nlcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTVE1UX0FQUExZQ0xBU1M6XG4gICAgICAgIHNldENzc0NsYXNzKGl0ZW0uaWQudHJpbSgpLCBpdGVtLnN0eWxlQ2xhc3MpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0pO1xufTtcbmNvbnN0IGFkZFN0YXRlID0gZnVuY3Rpb24oaWQsIHR5cGUgPSBERUZBVUxUX1NUQVRFX1RZUEUsIGRvYyA9IG51bGwsIGRlc2NyID0gbnVsbCwgbm90ZSA9IG51bGwsIGNsYXNzZXMyID0gbnVsbCwgc3R5bGVzMiA9IG51bGwsIHRleHRTdHlsZXMgPSBudWxsKSB7XG4gIGNvbnN0IHRyaW1tZWRJZCA9IGlkID09IG51bGwgPyB2b2lkIDAgOiBpZC50cmltKCk7XG4gIGlmIChjdXJyZW50RG9jdW1lbnQuc3RhdGVzW3RyaW1tZWRJZF0gPT09IHZvaWQgMCkge1xuICAgIGxvZy5pbmZvKFwiQWRkaW5nIHN0YXRlIFwiLCB0cmltbWVkSWQsIGRlc2NyKTtcbiAgICBjdXJyZW50RG9jdW1lbnQuc3RhdGVzW3RyaW1tZWRJZF0gPSB7XG4gICAgICBpZDogdHJpbW1lZElkLFxuICAgICAgZGVzY3JpcHRpb25zOiBbXSxcbiAgICAgIHR5cGUsXG4gICAgICBkb2MsXG4gICAgICBub3RlLFxuICAgICAgY2xhc3NlczogW10sXG4gICAgICBzdHlsZXM6IFtdLFxuICAgICAgdGV4dFN0eWxlczogW11cbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGlmICghY3VycmVudERvY3VtZW50LnN0YXRlc1t0cmltbWVkSWRdLmRvYykge1xuICAgICAgY3VycmVudERvY3VtZW50LnN0YXRlc1t0cmltbWVkSWRdLmRvYyA9IGRvYztcbiAgICB9XG4gICAgaWYgKCFjdXJyZW50RG9jdW1lbnQuc3RhdGVzW3RyaW1tZWRJZF0udHlwZSkge1xuICAgICAgY3VycmVudERvY3VtZW50LnN0YXRlc1t0cmltbWVkSWRdLnR5cGUgPSB0eXBlO1xuICAgIH1cbiAgfVxuICBpZiAoZGVzY3IpIHtcbiAgICBsb2cuaW5mbyhcIlNldHRpbmcgc3RhdGUgZGVzY3JpcHRpb25cIiwgdHJpbW1lZElkLCBkZXNjcik7XG4gICAgaWYgKHR5cGVvZiBkZXNjciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgYWRkRGVzY3JpcHRpb24odHJpbW1lZElkLCBkZXNjci50cmltKCkpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGRlc2NyID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBkZXNjci5mb3JFYWNoKChkZXMpID0+IGFkZERlc2NyaXB0aW9uKHRyaW1tZWRJZCwgZGVzLnRyaW0oKSkpO1xuICAgIH1cbiAgfVxuICBpZiAobm90ZSkge1xuICAgIGN1cnJlbnREb2N1bWVudC5zdGF0ZXNbdHJpbW1lZElkXS5ub3RlID0gbm90ZTtcbiAgICBjdXJyZW50RG9jdW1lbnQuc3RhdGVzW3RyaW1tZWRJZF0ubm90ZS50ZXh0ID0gY29tbW9uLnNhbml0aXplVGV4dChcbiAgICAgIGN1cnJlbnREb2N1bWVudC5zdGF0ZXNbdHJpbW1lZElkXS5ub3RlLnRleHQsXG4gICAgICBnZXRDb25maWcoKVxuICAgICk7XG4gIH1cbiAgaWYgKGNsYXNzZXMyKSB7XG4gICAgbG9nLmluZm8oXCJTZXR0aW5nIHN0YXRlIGNsYXNzZXNcIiwgdHJpbW1lZElkLCBjbGFzc2VzMik7XG4gICAgY29uc3QgY2xhc3Nlc0xpc3QgPSB0eXBlb2YgY2xhc3NlczIgPT09IFwic3RyaW5nXCIgPyBbY2xhc3NlczJdIDogY2xhc3NlczI7XG4gICAgY2xhc3Nlc0xpc3QuZm9yRWFjaCgoY3NzQ2xhc3MpID0+IHNldENzc0NsYXNzKHRyaW1tZWRJZCwgY3NzQ2xhc3MudHJpbSgpKSk7XG4gIH1cbiAgaWYgKHN0eWxlczIpIHtcbiAgICBsb2cuaW5mbyhcIlNldHRpbmcgc3RhdGUgc3R5bGVzXCIsIHRyaW1tZWRJZCwgc3R5bGVzMik7XG4gICAgY29uc3Qgc3R5bGVzTGlzdCA9IHR5cGVvZiBzdHlsZXMyID09PSBcInN0cmluZ1wiID8gW3N0eWxlczJdIDogc3R5bGVzMjtcbiAgICBzdHlsZXNMaXN0LmZvckVhY2goKHN0eWxlKSA9PiBzZXRTdHlsZSh0cmltbWVkSWQsIHN0eWxlLnRyaW0oKSkpO1xuICB9XG4gIGlmICh0ZXh0U3R5bGVzKSB7XG4gICAgbG9nLmluZm8oXCJTZXR0aW5nIHN0YXRlIHN0eWxlc1wiLCB0cmltbWVkSWQsIHN0eWxlczIpO1xuICAgIGNvbnN0IHRleHRTdHlsZXNMaXN0ID0gdHlwZW9mIHRleHRTdHlsZXMgPT09IFwic3RyaW5nXCIgPyBbdGV4dFN0eWxlc10gOiB0ZXh0U3R5bGVzO1xuICAgIHRleHRTdHlsZXNMaXN0LmZvckVhY2goKHRleHRTdHlsZSkgPT4gc2V0VGV4dFN0eWxlKHRyaW1tZWRJZCwgdGV4dFN0eWxlLnRyaW0oKSkpO1xuICB9XG59O1xuY29uc3QgY2xlYXIgPSBmdW5jdGlvbihzYXZlQ29tbW9uKSB7XG4gIGRvY3VtZW50cyA9IHtcbiAgICByb290OiBuZXdEb2MoKVxuICB9O1xuICBjdXJyZW50RG9jdW1lbnQgPSBkb2N1bWVudHMucm9vdDtcbiAgc3RhcnRFbmRDb3VudCA9IDA7XG4gIGNsYXNzZXMgPSBuZXdDbGFzc2VzTGlzdCgpO1xuICBpZiAoIXNhdmVDb21tb24pIHtcbiAgICBjbGVhciQxKCk7XG4gIH1cbn07XG5jb25zdCBnZXRTdGF0ZSA9IGZ1bmN0aW9uKGlkKSB7XG4gIHJldHVybiBjdXJyZW50RG9jdW1lbnQuc3RhdGVzW2lkXTtcbn07XG5jb25zdCBnZXRTdGF0ZXMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGN1cnJlbnREb2N1bWVudC5zdGF0ZXM7XG59O1xuY29uc3QgbG9nRG9jdW1lbnRzID0gZnVuY3Rpb24oKSB7XG4gIGxvZy5pbmZvKFwiRG9jdW1lbnRzID0gXCIsIGRvY3VtZW50cyk7XG59O1xuY29uc3QgZ2V0UmVsYXRpb25zID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBjdXJyZW50RG9jdW1lbnQucmVsYXRpb25zO1xufTtcbmZ1bmN0aW9uIHN0YXJ0SWRJZk5lZWRlZChpZCA9IFwiXCIpIHtcbiAgbGV0IGZpeGVkSWQgPSBpZDtcbiAgaWYgKGlkID09PSBTVEFSVF9OT0RFKSB7XG4gICAgc3RhcnRFbmRDb3VudCsrO1xuICAgIGZpeGVkSWQgPSBgJHtTVEFSVF9UWVBFfSR7c3RhcnRFbmRDb3VudH1gO1xuICB9XG4gIHJldHVybiBmaXhlZElkO1xufVxuZnVuY3Rpb24gc3RhcnRUeXBlSWZOZWVkZWQoaWQgPSBcIlwiLCB0eXBlID0gREVGQVVMVF9TVEFURV9UWVBFKSB7XG4gIHJldHVybiBpZCA9PT0gU1RBUlRfTk9ERSA/IFNUQVJUX1RZUEUgOiB0eXBlO1xufVxuZnVuY3Rpb24gZW5kSWRJZk5lZWRlZChpZCA9IFwiXCIpIHtcbiAgbGV0IGZpeGVkSWQgPSBpZDtcbiAgaWYgKGlkID09PSBFTkRfTk9ERSkge1xuICAgIHN0YXJ0RW5kQ291bnQrKztcbiAgICBmaXhlZElkID0gYCR7RU5EX1RZUEV9JHtzdGFydEVuZENvdW50fWA7XG4gIH1cbiAgcmV0dXJuIGZpeGVkSWQ7XG59XG5mdW5jdGlvbiBlbmRUeXBlSWZOZWVkZWQoaWQgPSBcIlwiLCB0eXBlID0gREVGQVVMVF9TVEFURV9UWVBFKSB7XG4gIHJldHVybiBpZCA9PT0gRU5EX05PREUgPyBFTkRfVFlQRSA6IHR5cGU7XG59XG5mdW5jdGlvbiBhZGRSZWxhdGlvbk9ianMoaXRlbTEsIGl0ZW0yLCByZWxhdGlvblRpdGxlKSB7XG4gIGxldCBpZDEgPSBzdGFydElkSWZOZWVkZWQoaXRlbTEuaWQudHJpbSgpKTtcbiAgbGV0IHR5cGUxID0gc3RhcnRUeXBlSWZOZWVkZWQoaXRlbTEuaWQudHJpbSgpLCBpdGVtMS50eXBlKTtcbiAgbGV0IGlkMiA9IHN0YXJ0SWRJZk5lZWRlZChpdGVtMi5pZC50cmltKCkpO1xuICBsZXQgdHlwZTIgPSBzdGFydFR5cGVJZk5lZWRlZChpdGVtMi5pZC50cmltKCksIGl0ZW0yLnR5cGUpO1xuICBhZGRTdGF0ZShcbiAgICBpZDEsXG4gICAgdHlwZTEsXG4gICAgaXRlbTEuZG9jLFxuICAgIGl0ZW0xLmRlc2NyaXB0aW9uLFxuICAgIGl0ZW0xLm5vdGUsXG4gICAgaXRlbTEuY2xhc3NlcyxcbiAgICBpdGVtMS5zdHlsZXMsXG4gICAgaXRlbTEudGV4dFN0eWxlc1xuICApO1xuICBhZGRTdGF0ZShcbiAgICBpZDIsXG4gICAgdHlwZTIsXG4gICAgaXRlbTIuZG9jLFxuICAgIGl0ZW0yLmRlc2NyaXB0aW9uLFxuICAgIGl0ZW0yLm5vdGUsXG4gICAgaXRlbTIuY2xhc3NlcyxcbiAgICBpdGVtMi5zdHlsZXMsXG4gICAgaXRlbTIudGV4dFN0eWxlc1xuICApO1xuICBjdXJyZW50RG9jdW1lbnQucmVsYXRpb25zLnB1c2goe1xuICAgIGlkMSxcbiAgICBpZDIsXG4gICAgcmVsYXRpb25UaXRsZTogY29tbW9uLnNhbml0aXplVGV4dChyZWxhdGlvblRpdGxlLCBnZXRDb25maWcoKSlcbiAgfSk7XG59XG5jb25zdCBhZGRSZWxhdGlvbiA9IGZ1bmN0aW9uKGl0ZW0xLCBpdGVtMiwgdGl0bGUpIHtcbiAgaWYgKHR5cGVvZiBpdGVtMSA9PT0gXCJvYmplY3RcIikge1xuICAgIGFkZFJlbGF0aW9uT2JqcyhpdGVtMSwgaXRlbTIsIHRpdGxlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBpZDEgPSBzdGFydElkSWZOZWVkZWQoaXRlbTEudHJpbSgpKTtcbiAgICBjb25zdCB0eXBlMSA9IHN0YXJ0VHlwZUlmTmVlZGVkKGl0ZW0xKTtcbiAgICBjb25zdCBpZDIgPSBlbmRJZElmTmVlZGVkKGl0ZW0yLnRyaW0oKSk7XG4gICAgY29uc3QgdHlwZTIgPSBlbmRUeXBlSWZOZWVkZWQoaXRlbTIpO1xuICAgIGFkZFN0YXRlKGlkMSwgdHlwZTEpO1xuICAgIGFkZFN0YXRlKGlkMiwgdHlwZTIpO1xuICAgIGN1cnJlbnREb2N1bWVudC5yZWxhdGlvbnMucHVzaCh7XG4gICAgICBpZDEsXG4gICAgICBpZDIsXG4gICAgICB0aXRsZTogY29tbW9uLnNhbml0aXplVGV4dCh0aXRsZSwgZ2V0Q29uZmlnKCkpXG4gICAgfSk7XG4gIH1cbn07XG5jb25zdCBhZGREZXNjcmlwdGlvbiA9IGZ1bmN0aW9uKGlkLCBkZXNjcikge1xuICBjb25zdCB0aGVTdGF0ZSA9IGN1cnJlbnREb2N1bWVudC5zdGF0ZXNbaWRdO1xuICBjb25zdCBfZGVzY3IgPSBkZXNjci5zdGFydHNXaXRoKFwiOlwiKSA/IGRlc2NyLnJlcGxhY2UoXCI6XCIsIFwiXCIpLnRyaW0oKSA6IGRlc2NyO1xuICB0aGVTdGF0ZS5kZXNjcmlwdGlvbnMucHVzaChjb21tb24uc2FuaXRpemVUZXh0KF9kZXNjciwgZ2V0Q29uZmlnKCkpKTtcbn07XG5jb25zdCBjbGVhbnVwTGFiZWwgPSBmdW5jdGlvbihsYWJlbCkge1xuICBpZiAobGFiZWwuc3Vic3RyaW5nKDAsIDEpID09PSBcIjpcIikge1xuICAgIHJldHVybiBsYWJlbC5zdWJzdHIoMikudHJpbSgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsYWJlbC50cmltKCk7XG4gIH1cbn07XG5jb25zdCBnZXREaXZpZGVySWQgPSAoKSA9PiB7XG4gIGRpdmlkZXJDbnQrKztcbiAgcmV0dXJuIFwiZGl2aWRlci1pZC1cIiArIGRpdmlkZXJDbnQ7XG59O1xuY29uc3QgYWRkU3R5bGVDbGFzcyA9IGZ1bmN0aW9uKGlkLCBzdHlsZUF0dHJpYnV0ZXMgPSBcIlwiKSB7XG4gIGlmIChjbGFzc2VzW2lkXSA9PT0gdm9pZCAwKSB7XG4gICAgY2xhc3Nlc1tpZF0gPSB7IGlkLCBzdHlsZXM6IFtdLCB0ZXh0U3R5bGVzOiBbXSB9O1xuICB9XG4gIGNvbnN0IGZvdW5kQ2xhc3MgPSBjbGFzc2VzW2lkXTtcbiAgaWYgKHN0eWxlQXR0cmlidXRlcyAhPT0gdm9pZCAwICYmIHN0eWxlQXR0cmlidXRlcyAhPT0gbnVsbCkge1xuICAgIHN0eWxlQXR0cmlidXRlcy5zcGxpdChTVFlMRUNMQVNTX1NFUCkuZm9yRWFjaCgoYXR0cmliKSA9PiB7XG4gICAgICBjb25zdCBmaXhlZEF0dHJpYiA9IGF0dHJpYi5yZXBsYWNlKC8oW147XSopOy8sIFwiJDFcIikudHJpbSgpO1xuICAgICAgaWYgKGF0dHJpYi5tYXRjaChDT0xPUl9LRVlXT1JEKSkge1xuICAgICAgICBjb25zdCBuZXdTdHlsZTEgPSBmaXhlZEF0dHJpYi5yZXBsYWNlKEZJTExfS0VZV09SRCwgQkdfRklMTCk7XG4gICAgICAgIGNvbnN0IG5ld1N0eWxlMiA9IG5ld1N0eWxlMS5yZXBsYWNlKENPTE9SX0tFWVdPUkQsIEZJTExfS0VZV09SRCk7XG4gICAgICAgIGZvdW5kQ2xhc3MudGV4dFN0eWxlcy5wdXNoKG5ld1N0eWxlMik7XG4gICAgICB9XG4gICAgICBmb3VuZENsYXNzLnN0eWxlcy5wdXNoKGZpeGVkQXR0cmliKTtcbiAgICB9KTtcbiAgfVxufTtcbmNvbnN0IGdldENsYXNzZXMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGNsYXNzZXM7XG59O1xuY29uc3Qgc2V0Q3NzQ2xhc3MgPSBmdW5jdGlvbihpdGVtSWRzLCBjc3NDbGFzc05hbWUpIHtcbiAgaXRlbUlkcy5zcGxpdChcIixcIikuZm9yRWFjaChmdW5jdGlvbihpZCkge1xuICAgIGxldCBmb3VuZFN0YXRlID0gZ2V0U3RhdGUoaWQpO1xuICAgIGlmIChmb3VuZFN0YXRlID09PSB2b2lkIDApIHtcbiAgICAgIGNvbnN0IHRyaW1tZWRJZCA9IGlkLnRyaW0oKTtcbiAgICAgIGFkZFN0YXRlKHRyaW1tZWRJZCk7XG4gICAgICBmb3VuZFN0YXRlID0gZ2V0U3RhdGUodHJpbW1lZElkKTtcbiAgICB9XG4gICAgZm91bmRTdGF0ZS5jbGFzc2VzLnB1c2goY3NzQ2xhc3NOYW1lKTtcbiAgfSk7XG59O1xuY29uc3Qgc2V0U3R5bGUgPSBmdW5jdGlvbihpdGVtSWQsIHN0eWxlVGV4dCkge1xuICBjb25zdCBpdGVtID0gZ2V0U3RhdGUoaXRlbUlkKTtcbiAgaWYgKGl0ZW0gIT09IHZvaWQgMCkge1xuICAgIGl0ZW0udGV4dFN0eWxlcy5wdXNoKHN0eWxlVGV4dCk7XG4gIH1cbn07XG5jb25zdCBzZXRUZXh0U3R5bGUgPSBmdW5jdGlvbihpdGVtSWQsIGNzc0NsYXNzTmFtZSkge1xuICBjb25zdCBpdGVtID0gZ2V0U3RhdGUoaXRlbUlkKTtcbiAgaWYgKGl0ZW0gIT09IHZvaWQgMCkge1xuICAgIGl0ZW0udGV4dFN0eWxlcy5wdXNoKGNzc0NsYXNzTmFtZSk7XG4gIH1cbn07XG5jb25zdCBnZXREaXJlY3Rpb24gPSAoKSA9PiBkaXJlY3Rpb247XG5jb25zdCBzZXREaXJlY3Rpb24gPSAoZGlyKSA9PiB7XG4gIGRpcmVjdGlvbiA9IGRpcjtcbn07XG5jb25zdCB0cmltQ29sb24gPSAoc3RyKSA9PiBzdHIgJiYgc3RyWzBdID09PSBcIjpcIiA/IHN0ci5zdWJzdHIoMSkudHJpbSgpIDogc3RyLnRyaW0oKTtcbmNvbnN0IGRiID0ge1xuICBnZXRDb25maWc6ICgpID0+IGdldENvbmZpZygpLnN0YXRlLFxuICBhZGRTdGF0ZSxcbiAgY2xlYXIsXG4gIGdldFN0YXRlLFxuICBnZXRTdGF0ZXMsXG4gIGdldFJlbGF0aW9ucyxcbiAgZ2V0Q2xhc3NlcyxcbiAgZ2V0RGlyZWN0aW9uLFxuICBhZGRSZWxhdGlvbixcbiAgZ2V0RGl2aWRlcklkLFxuICBzZXREaXJlY3Rpb24sXG4gIGNsZWFudXBMYWJlbCxcbiAgbGluZVR5cGUsXG4gIHJlbGF0aW9uVHlwZSxcbiAgbG9nRG9jdW1lbnRzLFxuICBnZXRSb290RG9jLFxuICBzZXRSb290RG9jLFxuICBnZXRSb290RG9jVjIsXG4gIGV4dHJhY3QsXG4gIHRyaW1Db2xvbixcbiAgZ2V0QWNjVGl0bGUsXG4gIHNldEFjY1RpdGxlLFxuICBnZXRBY2NEZXNjcmlwdGlvbixcbiAgc2V0QWNjRGVzY3JpcHRpb24sXG4gIGFkZFN0eWxlQ2xhc3MsXG4gIHNldENzc0NsYXNzLFxuICBhZGREZXNjcmlwdGlvbixcbiAgc2V0RGlhZ3JhbVRpdGxlLFxuICBnZXREaWFncmFtVGl0bGVcbn07XG5jb25zdCBnZXRTdHlsZXMgPSAob3B0aW9ucykgPT4gYFxuZGVmcyAjc3RhdGVkaWFncmFtLWJhcmJFbmQge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50cmFuc2l0aW9uQ29sb3J9O1xuICAgIHN0cm9rZTogJHtvcHRpb25zLnRyYW5zaXRpb25Db2xvcn07XG4gIH1cbmcuc3RhdGVHcm91cCB0ZXh0IHtcbiAgZmlsbDogJHtvcHRpb25zLm5vZGVCb3JkZXJ9O1xuICBzdHJva2U6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cbmcuc3RhdGVHcm91cCB0ZXh0IHtcbiAgZmlsbDogJHtvcHRpb25zLnRleHRDb2xvcn07XG4gIHN0cm9rZTogbm9uZTtcbiAgZm9udC1zaXplOiAxMHB4O1xuXG59XG5nLnN0YXRlR3JvdXAgLnN0YXRlLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgZmlsbDogJHtvcHRpb25zLnN0YXRlTGFiZWxDb2xvcn07XG59XG5cbmcuc3RhdGVHcm91cCByZWN0IHtcbiAgZmlsbDogJHtvcHRpb25zLm1haW5Ca2d9O1xuICBzdHJva2U6ICR7b3B0aW9ucy5ub2RlQm9yZGVyfTtcbn1cblxuZy5zdGF0ZUdyb3VwIGxpbmUge1xuICBzdHJva2U6ICR7b3B0aW9ucy5saW5lQ29sb3J9O1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG5cbi50cmFuc2l0aW9uIHtcbiAgc3Ryb2tlOiAke29wdGlvbnMudHJhbnNpdGlvbkNvbG9yfTtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xuICBmaWxsOiBub25lO1xufVxuXG4uc3RhdGVHcm91cCAuY29tcG9zaXQge1xuICBmaWxsOiAke29wdGlvbnMuYmFja2dyb3VuZH07XG4gIGJvcmRlci1ib3R0b206IDFweFxufVxuXG4uc3RhdGVHcm91cCAuYWx0LWNvbXBvc2l0IHtcbiAgZmlsbDogI2UwZTBlMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4XG59XG5cbi5zdGF0ZS1ub3RlIHtcbiAgc3Ryb2tlOiAke29wdGlvbnMubm90ZUJvcmRlckNvbG9yfTtcbiAgZmlsbDogJHtvcHRpb25zLm5vdGVCa2dDb2xvcn07XG5cbiAgdGV4dCB7XG4gICAgZmlsbDogJHtvcHRpb25zLm5vdGVUZXh0Q29sb3J9O1xuICAgIHN0cm9rZTogbm9uZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gIH1cbn1cblxuLnN0YXRlTGFiZWwgLmJveCB7XG4gIHN0cm9rZTogbm9uZTtcbiAgc3Ryb2tlLXdpZHRoOiAwO1xuICBmaWxsOiAke29wdGlvbnMubWFpbkJrZ307XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLmVkZ2VMYWJlbCAubGFiZWwgcmVjdCB7XG4gIGZpbGw6ICR7b3B0aW9ucy5sYWJlbEJhY2tncm91bmRDb2xvcn07XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5lZGdlTGFiZWwgLmxhYmVsIHRleHQge1xuICBmaWxsOiAke29wdGlvbnMudHJhbnNpdGlvbkxhYmVsQ29sb3IgfHwgb3B0aW9ucy50ZXJ0aWFyeVRleHRDb2xvcn07XG59XG4ubGFiZWwgZGl2IC5lZGdlTGFiZWwge1xuICBjb2xvcjogJHtvcHRpb25zLnRyYW5zaXRpb25MYWJlbENvbG9yIHx8IG9wdGlvbnMudGVydGlhcnlUZXh0Q29sb3J9O1xufVxuXG4uc3RhdGVMYWJlbCB0ZXh0IHtcbiAgZmlsbDogJHtvcHRpb25zLnN0YXRlTGFiZWxDb2xvcn07XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5ub2RlIGNpcmNsZS5zdGF0ZS1zdGFydCB7XG4gIGZpbGw6ICR7b3B0aW9ucy5zcGVjaWFsU3RhdGVDb2xvcn07XG4gIHN0cm9rZTogJHtvcHRpb25zLnNwZWNpYWxTdGF0ZUNvbG9yfTtcbn1cblxuLm5vZGUgLmZvcmstam9pbiB7XG4gIGZpbGw6ICR7b3B0aW9ucy5zcGVjaWFsU3RhdGVDb2xvcn07XG4gIHN0cm9rZTogJHtvcHRpb25zLnNwZWNpYWxTdGF0ZUNvbG9yfTtcbn1cblxuLm5vZGUgY2lyY2xlLnN0YXRlLWVuZCB7XG4gIGZpbGw6ICR7b3B0aW9ucy5pbm5lckVuZEJhY2tncm91bmR9O1xuICBzdHJva2U6ICR7b3B0aW9ucy5iYWNrZ3JvdW5kfTtcbiAgc3Ryb2tlLXdpZHRoOiAxLjVcbn1cbi5lbmQtc3RhdGUtaW5uZXIge1xuICBmaWxsOiAke29wdGlvbnMuY29tcG9zaXRlQmFja2dyb3VuZCB8fCBvcHRpb25zLmJhY2tncm91bmR9O1xuICAvLyBzdHJva2U6ICR7b3B0aW9ucy5iYWNrZ3JvdW5kfTtcbiAgc3Ryb2tlLXdpZHRoOiAxLjVcbn1cblxuLm5vZGUgcmVjdCB7XG4gIGZpbGw6ICR7b3B0aW9ucy5zdGF0ZUJrZyB8fCBvcHRpb25zLm1haW5Ca2d9O1xuICBzdHJva2U6ICR7b3B0aW9ucy5zdGF0ZUJvcmRlciB8fCBvcHRpb25zLm5vZGVCb3JkZXJ9O1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cbi5ub2RlIHBvbHlnb24ge1xuICBmaWxsOiAke29wdGlvbnMubWFpbkJrZ307XG4gIHN0cm9rZTogJHtvcHRpb25zLnN0YXRlQm9yZGVyIHx8IG9wdGlvbnMubm9kZUJvcmRlcn07O1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cbiNzdGF0ZWRpYWdyYW0tYmFyYkVuZCB7XG4gIGZpbGw6ICR7b3B0aW9ucy5saW5lQ29sb3J9O1xufVxuXG4uc3RhdGVkaWFncmFtLWNsdXN0ZXIgcmVjdCB7XG4gIGZpbGw6ICR7b3B0aW9ucy5jb21wb3NpdGVUaXRsZUJhY2tncm91bmR9O1xuICBzdHJva2U6ICR7b3B0aW9ucy5zdGF0ZUJvcmRlciB8fCBvcHRpb25zLm5vZGVCb3JkZXJ9O1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cblxuLmNsdXN0ZXItbGFiZWwsIC5ub2RlTGFiZWwge1xuICBjb2xvcjogJHtvcHRpb25zLnN0YXRlTGFiZWxDb2xvcn07XG59XG5cbi5zdGF0ZWRpYWdyYW0tY2x1c3RlciByZWN0Lm91dGVyIHtcbiAgcng6IDVweDtcbiAgcnk6IDVweDtcbn1cbi5zdGF0ZWRpYWdyYW0tc3RhdGUgLmRpdmlkZXIge1xuICBzdHJva2U6ICR7b3B0aW9ucy5zdGF0ZUJvcmRlciB8fCBvcHRpb25zLm5vZGVCb3JkZXJ9O1xufVxuXG4uc3RhdGVkaWFncmFtLXN0YXRlIC50aXRsZS1zdGF0ZSB7XG4gIHJ4OiA1cHg7XG4gIHJ5OiA1cHg7XG59XG4uc3RhdGVkaWFncmFtLWNsdXN0ZXIuc3RhdGVkaWFncmFtLWNsdXN0ZXIgLmlubmVyIHtcbiAgZmlsbDogJHtvcHRpb25zLmNvbXBvc2l0ZUJhY2tncm91bmQgfHwgb3B0aW9ucy5iYWNrZ3JvdW5kfTtcbn1cbi5zdGF0ZWRpYWdyYW0tY2x1c3Rlci5zdGF0ZWRpYWdyYW0tY2x1c3Rlci1hbHQgLmlubmVyIHtcbiAgZmlsbDogJHtvcHRpb25zLmFsdEJhY2tncm91bmQgPyBvcHRpb25zLmFsdEJhY2tncm91bmQgOiBcIiNlZmVmZWZcIn07XG59XG5cbi5zdGF0ZWRpYWdyYW0tY2x1c3RlciAuaW5uZXIge1xuICByeDowO1xuICByeTowO1xufVxuXG4uc3RhdGVkaWFncmFtLXN0YXRlIHJlY3QuYmFzaWMge1xuICByeDogNXB4O1xuICByeTogNXB4O1xufVxuLnN0YXRlZGlhZ3JhbS1zdGF0ZSByZWN0LmRpdmlkZXIge1xuICBzdHJva2UtZGFzaGFycmF5OiAxMCwxMDtcbiAgZmlsbDogJHtvcHRpb25zLmFsdEJhY2tncm91bmQgPyBvcHRpb25zLmFsdEJhY2tncm91bmQgOiBcIiNlZmVmZWZcIn07XG59XG5cbi5ub3RlLWVkZ2Uge1xuICBzdHJva2UtZGFzaGFycmF5OiA1O1xufVxuXG4uc3RhdGVkaWFncmFtLW5vdGUgcmVjdCB7XG4gIGZpbGw6ICR7b3B0aW9ucy5ub3RlQmtnQ29sb3J9O1xuICBzdHJva2U6ICR7b3B0aW9ucy5ub3RlQm9yZGVyQ29sb3J9O1xuICBzdHJva2Utd2lkdGg6IDFweDtcbiAgcng6IDA7XG4gIHJ5OiAwO1xufVxuLnN0YXRlZGlhZ3JhbS1ub3RlIHJlY3Qge1xuICBmaWxsOiAke29wdGlvbnMubm90ZUJrZ0NvbG9yfTtcbiAgc3Ryb2tlOiAke29wdGlvbnMubm90ZUJvcmRlckNvbG9yfTtcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gIHJ4OiAwO1xuICByeTogMDtcbn1cblxuLnN0YXRlZGlhZ3JhbS1ub3RlIHRleHQge1xuICBmaWxsOiAke29wdGlvbnMubm90ZVRleHRDb2xvcn07XG59XG5cbi5zdGF0ZWRpYWdyYW0tbm90ZSAubm9kZUxhYmVsIHtcbiAgY29sb3I6ICR7b3B0aW9ucy5ub3RlVGV4dENvbG9yfTtcbn1cbi5zdGF0ZWRpYWdyYW0gLmVkZ2VMYWJlbCB7XG4gIGNvbG9yOiByZWQ7IC8vICR7b3B0aW9ucy5ub3RlVGV4dENvbG9yfTtcbn1cblxuI2RlcGVuZGVuY3lTdGFydCwgI2RlcGVuZGVuY3lFbmQge1xuICBmaWxsOiAke29wdGlvbnMubGluZUNvbG9yfTtcbiAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfTtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xufVxuXG4uc3RhdGVkaWFncmFtVGl0bGVUZXh0IHtcbiAgdGV4dC1hbmNob3I6IG1pZGRsZTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmaWxsOiAke29wdGlvbnMudGV4dENvbG9yfTtcbn1cbmA7XG5jb25zdCBzdHlsZXMgPSBnZXRTdHlsZXM7XG5leHBvcnQge1xuICBERUZBVUxUX1NUQVRFX1RZUEUgYXMgRCxcbiAgU1RNVF9SRUxBVElPTiBhcyBTLFxuICBESVZJREVSX1RZUEUgYXMgYSxcbiAgU1RNVF9TVEFURSBhcyBiLFxuICBERUZBVUxUX05FU1RFRF9ET0NfRElSIGFzIGMsXG4gIGRiIGFzIGQsXG4gIHBhcnNlciQxIGFzIHAsXG4gIHN0eWxlcyBhcyBzXG59O1xuIiwKICAgICJpbXBvcnQgeyBkIGFzIGRiLCBwIGFzIHBhcnNlciwgcyBhcyBzdHlsZXMgfSBmcm9tIFwiLi9zdHlsZXMtMDc4NGRiZWIuanNcIjtcbmltcG9ydCB7IGxpbmUsIGN1cnZlQmFzaXMsIHNlbGVjdCB9IGZyb20gXCJkM1wiO1xuaW1wb3J0IHsgbGF5b3V0IH0gZnJvbSBcImRhZ3JlLWQzLWVzL3NyYy9kYWdyZS9pbmRleC5qc1wiO1xuaW1wb3J0ICogYXMgZ3JhcGhsaWIgZnJvbSBcImRhZ3JlLWQzLWVzL3NyYy9ncmFwaGxpYi9pbmRleC5qc1wiO1xuaW1wb3J0IHsgYyBhcyBnZXRDb25maWcsIHUgYXMgdXRpbHMsIGUgYXMgY29tbW9uLCBsIGFzIGxvZywgaSBhcyBjb25maWd1cmVTdmdTaXplIH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IFwidHMtZGVkZW50XCI7XG5pbXBvcnQgXCJkYXlqc1wiO1xuaW1wb3J0IFwiQGJyYWludHJlZS9zYW5pdGl6ZS11cmxcIjtcbmltcG9ydCBcImRvbXB1cmlmeVwiO1xuaW1wb3J0IFwia2hyb21hXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lcmdlLmpzXCI7XG5pbXBvcnQgXCJzdHlsaXNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9pc0VtcHR5LmpzXCI7XG5jb25zdCBpZENhY2hlID0ge307XG5jb25zdCBzZXQgPSAoa2V5LCB2YWwpID0+IHtcbiAgaWRDYWNoZVtrZXldID0gdmFsO1xufTtcbmNvbnN0IGdldCA9IChrKSA9PiBpZENhY2hlW2tdO1xuY29uc3Qga2V5cyA9ICgpID0+IE9iamVjdC5rZXlzKGlkQ2FjaGUpO1xuY29uc3Qgc2l6ZSA9ICgpID0+IGtleXMoKS5sZW5ndGg7XG5jb25zdCBpZENhY2hlJDEgPSB7XG4gIGdldCxcbiAgc2V0LFxuICBrZXlzLFxuICBzaXplXG59O1xuY29uc3QgZHJhd1N0YXJ0U3RhdGUgPSAoZykgPT4gZy5hcHBlbmQoXCJjaXJjbGVcIikuYXR0cihcImNsYXNzXCIsIFwic3RhcnQtc3RhdGVcIikuYXR0cihcInJcIiwgZ2V0Q29uZmlnKCkuc3RhdGUuc2l6ZVVuaXQpLmF0dHIoXCJjeFwiLCBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nICsgZ2V0Q29uZmlnKCkuc3RhdGUuc2l6ZVVuaXQpLmF0dHIoXCJjeVwiLCBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nICsgZ2V0Q29uZmlnKCkuc3RhdGUuc2l6ZVVuaXQpO1xuY29uc3QgZHJhd0RpdmlkZXIgPSAoZykgPT4gZy5hcHBlbmQoXCJsaW5lXCIpLnN0eWxlKFwic3Ryb2tlXCIsIFwiZ3JleVwiKS5zdHlsZShcInN0cm9rZS1kYXNoYXJyYXlcIiwgXCIzXCIpLmF0dHIoXCJ4MVwiLCBnZXRDb25maWcoKS5zdGF0ZS50ZXh0SGVpZ2h0KS5hdHRyKFwiY2xhc3NcIiwgXCJkaXZpZGVyXCIpLmF0dHIoXCJ4MlwiLCBnZXRDb25maWcoKS5zdGF0ZS50ZXh0SGVpZ2h0ICogMikuYXR0cihcInkxXCIsIDApLmF0dHIoXCJ5MlwiLCAwKTtcbmNvbnN0IGRyYXdTaW1wbGVTdGF0ZSA9IChnLCBzdGF0ZURlZikgPT4ge1xuICBjb25zdCBzdGF0ZSA9IGcuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwieFwiLCAyICogZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZykuYXR0cihcInlcIiwgZ2V0Q29uZmlnKCkuc3RhdGUudGV4dEhlaWdodCArIDIgKiBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nKS5hdHRyKFwiZm9udC1zaXplXCIsIGdldENvbmZpZygpLnN0YXRlLmZvbnRTaXplKS5hdHRyKFwiY2xhc3NcIiwgXCJzdGF0ZS10aXRsZVwiKS50ZXh0KHN0YXRlRGVmLmlkKTtcbiAgY29uc3QgY2xhc3NCb3ggPSBzdGF0ZS5ub2RlKCkuZ2V0QkJveCgpO1xuICBnLmluc2VydChcInJlY3RcIiwgXCI6Zmlyc3QtY2hpbGRcIikuYXR0cihcInhcIiwgZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZykuYXR0cihcInlcIiwgZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZykuYXR0cihcIndpZHRoXCIsIGNsYXNzQm94LndpZHRoICsgMiAqIGdldENvbmZpZygpLnN0YXRlLnBhZGRpbmcpLmF0dHIoXCJoZWlnaHRcIiwgY2xhc3NCb3guaGVpZ2h0ICsgMiAqIGdldENvbmZpZygpLnN0YXRlLnBhZGRpbmcpLmF0dHIoXCJyeFwiLCBnZXRDb25maWcoKS5zdGF0ZS5yYWRpdXMpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuY29uc3QgZHJhd0Rlc2NyU3RhdGUgPSAoZywgc3RhdGVEZWYpID0+IHtcbiAgY29uc3QgYWRkVHNwYW4gPSBmdW5jdGlvbih0ZXh0RWwsIHR4dCwgaXNGaXJzdDIpIHtcbiAgICBjb25zdCB0U3BhbiA9IHRleHRFbC5hcHBlbmQoXCJ0c3BhblwiKS5hdHRyKFwieFwiLCAyICogZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZykudGV4dCh0eHQpO1xuICAgIGlmICghaXNGaXJzdDIpIHtcbiAgICAgIHRTcGFuLmF0dHIoXCJkeVwiLCBnZXRDb25maWcoKS5zdGF0ZS50ZXh0SGVpZ2h0KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IHRpdGxlID0gZy5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJ4XCIsIDIgKiBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nKS5hdHRyKFwieVwiLCBnZXRDb25maWcoKS5zdGF0ZS50ZXh0SGVpZ2h0ICsgMS4zICogZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZykuYXR0cihcImZvbnQtc2l6ZVwiLCBnZXRDb25maWcoKS5zdGF0ZS5mb250U2l6ZSkuYXR0cihcImNsYXNzXCIsIFwic3RhdGUtdGl0bGVcIikudGV4dChzdGF0ZURlZi5kZXNjcmlwdGlvbnNbMF0pO1xuICBjb25zdCB0aXRsZUJveCA9IHRpdGxlLm5vZGUoKS5nZXRCQm94KCk7XG4gIGNvbnN0IHRpdGxlSGVpZ2h0ID0gdGl0bGVCb3guaGVpZ2h0O1xuICBjb25zdCBkZXNjcmlwdGlvbiA9IGcuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwieFwiLCBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nKS5hdHRyKFxuICAgIFwieVwiLFxuICAgIHRpdGxlSGVpZ2h0ICsgZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZyAqIDAuNCArIGdldENvbmZpZygpLnN0YXRlLmRpdmlkZXJNYXJnaW4gKyBnZXRDb25maWcoKS5zdGF0ZS50ZXh0SGVpZ2h0XG4gICkuYXR0cihcImNsYXNzXCIsIFwic3RhdGUtZGVzY3JpcHRpb25cIik7XG4gIGxldCBpc0ZpcnN0ID0gdHJ1ZTtcbiAgbGV0IGlzU2Vjb25kID0gdHJ1ZTtcbiAgc3RhdGVEZWYuZGVzY3JpcHRpb25zLmZvckVhY2goZnVuY3Rpb24oZGVzY3IpIHtcbiAgICBpZiAoIWlzRmlyc3QpIHtcbiAgICAgIGFkZFRzcGFuKGRlc2NyaXB0aW9uLCBkZXNjciwgaXNTZWNvbmQpO1xuICAgICAgaXNTZWNvbmQgPSBmYWxzZTtcbiAgICB9XG4gICAgaXNGaXJzdCA9IGZhbHNlO1xuICB9KTtcbiAgY29uc3QgZGVzY3JMaW5lID0gZy5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJ4MVwiLCBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nKS5hdHRyKFwieTFcIiwgZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZyArIHRpdGxlSGVpZ2h0ICsgZ2V0Q29uZmlnKCkuc3RhdGUuZGl2aWRlck1hcmdpbiAvIDIpLmF0dHIoXCJ5MlwiLCBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nICsgdGl0bGVIZWlnaHQgKyBnZXRDb25maWcoKS5zdGF0ZS5kaXZpZGVyTWFyZ2luIC8gMikuYXR0cihcImNsYXNzXCIsIFwiZGVzY3ItZGl2aWRlclwiKTtcbiAgY29uc3QgZGVzY3JCb3ggPSBkZXNjcmlwdGlvbi5ub2RlKCkuZ2V0QkJveCgpO1xuICBjb25zdCB3aWR0aCA9IE1hdGgubWF4KGRlc2NyQm94LndpZHRoLCB0aXRsZUJveC53aWR0aCk7XG4gIGRlc2NyTGluZS5hdHRyKFwieDJcIiwgd2lkdGggKyAzICogZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZyk7XG4gIGcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKS5hdHRyKFwieFwiLCBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nKS5hdHRyKFwieVwiLCBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nKS5hdHRyKFwid2lkdGhcIiwgd2lkdGggKyAyICogZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZykuYXR0cihcImhlaWdodFwiLCBkZXNjckJveC5oZWlnaHQgKyB0aXRsZUhlaWdodCArIDIgKiBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nKS5hdHRyKFwicnhcIiwgZ2V0Q29uZmlnKCkuc3RhdGUucmFkaXVzKTtcbiAgcmV0dXJuIGc7XG59O1xuY29uc3QgYWRkVGl0bGVBbmRCb3ggPSAoZywgc3RhdGVEZWYsIGFsdEJrZykgPT4ge1xuICBjb25zdCBwYWQgPSBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nO1xuICBjb25zdCBkYmxQYWQgPSAyICogZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZztcbiAgY29uc3Qgb3JnQm94ID0gZy5ub2RlKCkuZ2V0QkJveCgpO1xuICBjb25zdCBvcmdXaWR0aCA9IG9yZ0JveC53aWR0aDtcbiAgY29uc3Qgb3JnWCA9IG9yZ0JveC54O1xuICBjb25zdCB0aXRsZSA9IGcuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwieFwiLCAwKS5hdHRyKFwieVwiLCBnZXRDb25maWcoKS5zdGF0ZS50aXRsZVNoaWZ0KS5hdHRyKFwiZm9udC1zaXplXCIsIGdldENvbmZpZygpLnN0YXRlLmZvbnRTaXplKS5hdHRyKFwiY2xhc3NcIiwgXCJzdGF0ZS10aXRsZVwiKS50ZXh0KHN0YXRlRGVmLmlkKTtcbiAgY29uc3QgdGl0bGVCb3ggPSB0aXRsZS5ub2RlKCkuZ2V0QkJveCgpO1xuICBjb25zdCB0aXRsZVdpZHRoID0gdGl0bGVCb3gud2lkdGggKyBkYmxQYWQ7XG4gIGxldCB3aWR0aCA9IE1hdGgubWF4KHRpdGxlV2lkdGgsIG9yZ1dpZHRoKTtcbiAgaWYgKHdpZHRoID09PSBvcmdXaWR0aCkge1xuICAgIHdpZHRoID0gd2lkdGggKyBkYmxQYWQ7XG4gIH1cbiAgbGV0IHN0YXJ0WDtcbiAgY29uc3QgZ3JhcGhCb3ggPSBnLm5vZGUoKS5nZXRCQm94KCk7XG4gIGlmIChzdGF0ZURlZi5kb2MpXG4gICAgO1xuICBzdGFydFggPSBvcmdYIC0gcGFkO1xuICBpZiAodGl0bGVXaWR0aCA+IG9yZ1dpZHRoKSB7XG4gICAgc3RhcnRYID0gKG9yZ1dpZHRoIC0gd2lkdGgpIC8gMiArIHBhZDtcbiAgfVxuICBpZiAoTWF0aC5hYnMob3JnWCAtIGdyYXBoQm94LngpIDwgcGFkICYmIHRpdGxlV2lkdGggPiBvcmdXaWR0aCkge1xuICAgIHN0YXJ0WCA9IG9yZ1ggLSAodGl0bGVXaWR0aCAtIG9yZ1dpZHRoKSAvIDI7XG4gIH1cbiAgY29uc3QgbGluZVkgPSAxIC0gZ2V0Q29uZmlnKCkuc3RhdGUudGV4dEhlaWdodDtcbiAgZy5pbnNlcnQoXCJyZWN0XCIsIFwiOmZpcnN0LWNoaWxkXCIpLmF0dHIoXCJ4XCIsIHN0YXJ0WCkuYXR0cihcInlcIiwgbGluZVkpLmF0dHIoXCJjbGFzc1wiLCBhbHRCa2cgPyBcImFsdC1jb21wb3NpdFwiIDogXCJjb21wb3NpdFwiKS5hdHRyKFwid2lkdGhcIiwgd2lkdGgpLmF0dHIoXG4gICAgXCJoZWlnaHRcIixcbiAgICBncmFwaEJveC5oZWlnaHQgKyBnZXRDb25maWcoKS5zdGF0ZS50ZXh0SGVpZ2h0ICsgZ2V0Q29uZmlnKCkuc3RhdGUudGl0bGVTaGlmdCArIDFcbiAgKS5hdHRyKFwicnhcIiwgXCIwXCIpO1xuICB0aXRsZS5hdHRyKFwieFwiLCBzdGFydFggKyBwYWQpO1xuICBpZiAodGl0bGVXaWR0aCA8PSBvcmdXaWR0aCkge1xuICAgIHRpdGxlLmF0dHIoXCJ4XCIsIG9yZ1ggKyAod2lkdGggLSBkYmxQYWQpIC8gMiAtIHRpdGxlV2lkdGggLyAyICsgcGFkKTtcbiAgfVxuICBnLmluc2VydChcInJlY3RcIiwgXCI6Zmlyc3QtY2hpbGRcIikuYXR0cihcInhcIiwgc3RhcnRYKS5hdHRyKFxuICAgIFwieVwiLFxuICAgIGdldENvbmZpZygpLnN0YXRlLnRpdGxlU2hpZnQgLSBnZXRDb25maWcoKS5zdGF0ZS50ZXh0SGVpZ2h0IC0gZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZ1xuICApLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aCkuYXR0cihcImhlaWdodFwiLCBnZXRDb25maWcoKS5zdGF0ZS50ZXh0SGVpZ2h0ICogMykuYXR0cihcInJ4XCIsIGdldENvbmZpZygpLnN0YXRlLnJhZGl1cyk7XG4gIGcuaW5zZXJ0KFwicmVjdFwiLCBcIjpmaXJzdC1jaGlsZFwiKS5hdHRyKFwieFwiLCBzdGFydFgpLmF0dHIoXG4gICAgXCJ5XCIsXG4gICAgZ2V0Q29uZmlnKCkuc3RhdGUudGl0bGVTaGlmdCAtIGdldENvbmZpZygpLnN0YXRlLnRleHRIZWlnaHQgLSBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nXG4gICkuYXR0cihcIndpZHRoXCIsIHdpZHRoKS5hdHRyKFwiaGVpZ2h0XCIsIGdyYXBoQm94LmhlaWdodCArIDMgKyAyICogZ2V0Q29uZmlnKCkuc3RhdGUudGV4dEhlaWdodCkuYXR0cihcInJ4XCIsIGdldENvbmZpZygpLnN0YXRlLnJhZGl1cyk7XG4gIHJldHVybiBnO1xufTtcbmNvbnN0IGRyYXdFbmRTdGF0ZSA9IChnKSA9PiB7XG4gIGcuYXBwZW5kKFwiY2lyY2xlXCIpLmF0dHIoXCJjbGFzc1wiLCBcImVuZC1zdGF0ZS1vdXRlclwiKS5hdHRyKFwiclwiLCBnZXRDb25maWcoKS5zdGF0ZS5zaXplVW5pdCArIGdldENvbmZpZygpLnN0YXRlLm1pbmlQYWRkaW5nKS5hdHRyKFxuICAgIFwiY3hcIixcbiAgICBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nICsgZ2V0Q29uZmlnKCkuc3RhdGUuc2l6ZVVuaXQgKyBnZXRDb25maWcoKS5zdGF0ZS5taW5pUGFkZGluZ1xuICApLmF0dHIoXG4gICAgXCJjeVwiLFxuICAgIGdldENvbmZpZygpLnN0YXRlLnBhZGRpbmcgKyBnZXRDb25maWcoKS5zdGF0ZS5zaXplVW5pdCArIGdldENvbmZpZygpLnN0YXRlLm1pbmlQYWRkaW5nXG4gICk7XG4gIHJldHVybiBnLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwiY2xhc3NcIiwgXCJlbmQtc3RhdGUtaW5uZXJcIikuYXR0cihcInJcIiwgZ2V0Q29uZmlnKCkuc3RhdGUuc2l6ZVVuaXQpLmF0dHIoXCJjeFwiLCBnZXRDb25maWcoKS5zdGF0ZS5wYWRkaW5nICsgZ2V0Q29uZmlnKCkuc3RhdGUuc2l6ZVVuaXQgKyAyKS5hdHRyKFwiY3lcIiwgZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZyArIGdldENvbmZpZygpLnN0YXRlLnNpemVVbml0ICsgMik7XG59O1xuY29uc3QgZHJhd0ZvcmtKb2luU3RhdGUgPSAoZywgc3RhdGVEZWYpID0+IHtcbiAgbGV0IHdpZHRoID0gZ2V0Q29uZmlnKCkuc3RhdGUuZm9ya1dpZHRoO1xuICBsZXQgaGVpZ2h0ID0gZ2V0Q29uZmlnKCkuc3RhdGUuZm9ya0hlaWdodDtcbiAgaWYgKHN0YXRlRGVmLnBhcmVudElkKSB7XG4gICAgbGV0IHRtcCA9IHdpZHRoO1xuICAgIHdpZHRoID0gaGVpZ2h0O1xuICAgIGhlaWdodCA9IHRtcDtcbiAgfVxuICByZXR1cm4gZy5hcHBlbmQoXCJyZWN0XCIpLnN0eWxlKFwic3Ryb2tlXCIsIFwiYmxhY2tcIikuc3R5bGUoXCJmaWxsXCIsIFwiYmxhY2tcIikuYXR0cihcIndpZHRoXCIsIHdpZHRoKS5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodCkuYXR0cihcInhcIiwgZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZykuYXR0cihcInlcIiwgZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZyk7XG59O1xuY29uc3QgX2RyYXdMb25nVGV4dCA9IChfdGV4dCwgeCwgeSwgZykgPT4ge1xuICBsZXQgdGV4dEhlaWdodCA9IDA7XG4gIGNvbnN0IHRleHRFbGVtID0gZy5hcHBlbmQoXCJ0ZXh0XCIpO1xuICB0ZXh0RWxlbS5zdHlsZShcInRleHQtYW5jaG9yXCIsIFwic3RhcnRcIik7XG4gIHRleHRFbGVtLmF0dHIoXCJjbGFzc1wiLCBcIm5vdGVUZXh0XCIpO1xuICBsZXQgdGV4dCA9IF90ZXh0LnJlcGxhY2UoL1xcclxcbi9nLCBcIjxici8+XCIpO1xuICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC9cXG4vZywgXCI8YnIvPlwiKTtcbiAgY29uc3QgbGluZXMgPSB0ZXh0LnNwbGl0KGNvbW1vbi5saW5lQnJlYWtSZWdleCk7XG4gIGxldCB0SGVpZ2h0ID0gMS4yNSAqIGdldENvbmZpZygpLnN0YXRlLm5vdGVNYXJnaW47XG4gIGZvciAoY29uc3QgbGluZTIgb2YgbGluZXMpIHtcbiAgICBjb25zdCB0eHQgPSBsaW5lMi50cmltKCk7XG4gICAgaWYgKHR4dC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzcGFuID0gdGV4dEVsZW0uYXBwZW5kKFwidHNwYW5cIik7XG4gICAgICBzcGFuLnRleHQodHh0KTtcbiAgICAgIGlmICh0SGVpZ2h0ID09PSAwKSB7XG4gICAgICAgIGNvbnN0IHRleHRCb3VuZHMgPSBzcGFuLm5vZGUoKS5nZXRCQm94KCk7XG4gICAgICAgIHRIZWlnaHQgKz0gdGV4dEJvdW5kcy5oZWlnaHQ7XG4gICAgICB9XG4gICAgICB0ZXh0SGVpZ2h0ICs9IHRIZWlnaHQ7XG4gICAgICBzcGFuLmF0dHIoXCJ4XCIsIHggKyBnZXRDb25maWcoKS5zdGF0ZS5ub3RlTWFyZ2luKTtcbiAgICAgIHNwYW4uYXR0cihcInlcIiwgeSArIHRleHRIZWlnaHQgKyAxLjI1ICogZ2V0Q29uZmlnKCkuc3RhdGUubm90ZU1hcmdpbik7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IHRleHRXaWR0aDogdGV4dEVsZW0ubm9kZSgpLmdldEJCb3goKS53aWR0aCwgdGV4dEhlaWdodCB9O1xufTtcbmNvbnN0IGRyYXdOb3RlID0gKHRleHQsIGcpID0+IHtcbiAgZy5hdHRyKFwiY2xhc3NcIiwgXCJzdGF0ZS1ub3RlXCIpO1xuICBjb25zdCBub3RlID0gZy5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJ4XCIsIDApLmF0dHIoXCJ5XCIsIGdldENvbmZpZygpLnN0YXRlLnBhZGRpbmcpO1xuICBjb25zdCByZWN0RWxlbSA9IGcuYXBwZW5kKFwiZ1wiKTtcbiAgY29uc3QgeyB0ZXh0V2lkdGgsIHRleHRIZWlnaHQgfSA9IF9kcmF3TG9uZ1RleHQodGV4dCwgMCwgMCwgcmVjdEVsZW0pO1xuICBub3RlLmF0dHIoXCJoZWlnaHRcIiwgdGV4dEhlaWdodCArIDIgKiBnZXRDb25maWcoKS5zdGF0ZS5ub3RlTWFyZ2luKTtcbiAgbm90ZS5hdHRyKFwid2lkdGhcIiwgdGV4dFdpZHRoICsgZ2V0Q29uZmlnKCkuc3RhdGUubm90ZU1hcmdpbiAqIDIpO1xuICByZXR1cm4gbm90ZTtcbn07XG5jb25zdCBkcmF3U3RhdGUgPSBmdW5jdGlvbihlbGVtLCBzdGF0ZURlZikge1xuICBjb25zdCBpZCA9IHN0YXRlRGVmLmlkO1xuICBjb25zdCBzdGF0ZUluZm8gPSB7XG4gICAgaWQsXG4gICAgbGFiZWw6IHN0YXRlRGVmLmlkLFxuICAgIHdpZHRoOiAwLFxuICAgIGhlaWdodDogMFxuICB9O1xuICBjb25zdCBnID0gZWxlbS5hcHBlbmQoXCJnXCIpLmF0dHIoXCJpZFwiLCBpZCkuYXR0cihcImNsYXNzXCIsIFwic3RhdGVHcm91cFwiKTtcbiAgaWYgKHN0YXRlRGVmLnR5cGUgPT09IFwic3RhcnRcIikge1xuICAgIGRyYXdTdGFydFN0YXRlKGcpO1xuICB9XG4gIGlmIChzdGF0ZURlZi50eXBlID09PSBcImVuZFwiKSB7XG4gICAgZHJhd0VuZFN0YXRlKGcpO1xuICB9XG4gIGlmIChzdGF0ZURlZi50eXBlID09PSBcImZvcmtcIiB8fCBzdGF0ZURlZi50eXBlID09PSBcImpvaW5cIikge1xuICAgIGRyYXdGb3JrSm9pblN0YXRlKGcsIHN0YXRlRGVmKTtcbiAgfVxuICBpZiAoc3RhdGVEZWYudHlwZSA9PT0gXCJub3RlXCIpIHtcbiAgICBkcmF3Tm90ZShzdGF0ZURlZi5ub3RlLnRleHQsIGcpO1xuICB9XG4gIGlmIChzdGF0ZURlZi50eXBlID09PSBcImRpdmlkZXJcIikge1xuICAgIGRyYXdEaXZpZGVyKGcpO1xuICB9XG4gIGlmIChzdGF0ZURlZi50eXBlID09PSBcImRlZmF1bHRcIiAmJiBzdGF0ZURlZi5kZXNjcmlwdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgZHJhd1NpbXBsZVN0YXRlKGcsIHN0YXRlRGVmKTtcbiAgfVxuICBpZiAoc3RhdGVEZWYudHlwZSA9PT0gXCJkZWZhdWx0XCIgJiYgc3RhdGVEZWYuZGVzY3JpcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICBkcmF3RGVzY3JTdGF0ZShnLCBzdGF0ZURlZik7XG4gIH1cbiAgY29uc3Qgc3RhdGVCb3ggPSBnLm5vZGUoKS5nZXRCQm94KCk7XG4gIHN0YXRlSW5mby53aWR0aCA9IHN0YXRlQm94LndpZHRoICsgMiAqIGdldENvbmZpZygpLnN0YXRlLnBhZGRpbmc7XG4gIHN0YXRlSW5mby5oZWlnaHQgPSBzdGF0ZUJveC5oZWlnaHQgKyAyICogZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZztcbiAgaWRDYWNoZSQxLnNldChpZCwgc3RhdGVJbmZvKTtcbiAgcmV0dXJuIHN0YXRlSW5mbztcbn07XG5sZXQgZWRnZUNvdW50ID0gMDtcbmNvbnN0IGRyYXdFZGdlID0gZnVuY3Rpb24oZWxlbSwgcGF0aCwgcmVsYXRpb24pIHtcbiAgY29uc3QgZ2V0UmVsYXRpb25UeXBlID0gZnVuY3Rpb24odHlwZSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBkYi5yZWxhdGlvblR5cGUuQUdHUkVHQVRJT046XG4gICAgICAgIHJldHVybiBcImFnZ3JlZ2F0aW9uXCI7XG4gICAgICBjYXNlIGRiLnJlbGF0aW9uVHlwZS5FWFRFTlNJT046XG4gICAgICAgIHJldHVybiBcImV4dGVuc2lvblwiO1xuICAgICAgY2FzZSBkYi5yZWxhdGlvblR5cGUuQ09NUE9TSVRJT046XG4gICAgICAgIHJldHVybiBcImNvbXBvc2l0aW9uXCI7XG4gICAgICBjYXNlIGRiLnJlbGF0aW9uVHlwZS5ERVBFTkRFTkNZOlxuICAgICAgICByZXR1cm4gXCJkZXBlbmRlbmN5XCI7XG4gICAgfVxuICB9O1xuICBwYXRoLnBvaW50cyA9IHBhdGgucG9pbnRzLmZpbHRlcigocCkgPT4gIU51bWJlci5pc05hTihwLnkpKTtcbiAgY29uc3QgbGluZURhdGEgPSBwYXRoLnBvaW50cztcbiAgY29uc3QgbGluZUZ1bmN0aW9uID0gbGluZSgpLngoZnVuY3Rpb24oZCkge1xuICAgIHJldHVybiBkLng7XG4gIH0pLnkoZnVuY3Rpb24oZCkge1xuICAgIHJldHVybiBkLnk7XG4gIH0pLmN1cnZlKGN1cnZlQmFzaXMpO1xuICBjb25zdCBzdmdQYXRoID0gZWxlbS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJkXCIsIGxpbmVGdW5jdGlvbihsaW5lRGF0YSkpLmF0dHIoXCJpZFwiLCBcImVkZ2VcIiArIGVkZ2VDb3VudCkuYXR0cihcImNsYXNzXCIsIFwidHJhbnNpdGlvblwiKTtcbiAgbGV0IHVybCA9IFwiXCI7XG4gIGlmIChnZXRDb25maWcoKS5zdGF0ZS5hcnJvd01hcmtlckFic29sdXRlKSB7XG4gICAgdXJsID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKC9cXCgvZywgXCJcXFxcKFwiKTtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgvXFwpL2csIFwiXFxcXClcIik7XG4gIH1cbiAgc3ZnUGF0aC5hdHRyKFxuICAgIFwibWFya2VyLWVuZFwiLFxuICAgIFwidXJsKFwiICsgdXJsICsgXCIjXCIgKyBnZXRSZWxhdGlvblR5cGUoZGIucmVsYXRpb25UeXBlLkRFUEVOREVOQ1kpICsgXCJFbmQpXCJcbiAgKTtcbiAgaWYgKHJlbGF0aW9uLnRpdGxlICE9PSB2b2lkIDApIHtcbiAgICBjb25zdCBsYWJlbCA9IGVsZW0uYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJzdGF0ZUxhYmVsXCIpO1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gdXRpbHMuY2FsY0xhYmVsUG9zaXRpb24ocGF0aC5wb2ludHMpO1xuICAgIGNvbnN0IHJvd3MgPSBjb21tb24uZ2V0Um93cyhyZWxhdGlvbi50aXRsZSk7XG4gICAgbGV0IHRpdGxlSGVpZ2h0ID0gMDtcbiAgICBjb25zdCB0aXRsZVJvd3MgPSBbXTtcbiAgICBsZXQgbWF4V2lkdGggPSAwO1xuICAgIGxldCBtaW5YID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8PSByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGxhYmVsLmFwcGVuZChcInRleHRcIikuYXR0cihcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpLnRleHQocm93c1tpXSkuYXR0cihcInhcIiwgeCkuYXR0cihcInlcIiwgeSArIHRpdGxlSGVpZ2h0KTtcbiAgICAgIGNvbnN0IGJvdW5kc1RtcCA9IHRpdGxlLm5vZGUoKS5nZXRCQm94KCk7XG4gICAgICBtYXhXaWR0aCA9IE1hdGgubWF4KG1heFdpZHRoLCBib3VuZHNUbXAud2lkdGgpO1xuICAgICAgbWluWCA9IE1hdGgubWluKG1pblgsIGJvdW5kc1RtcC54KTtcbiAgICAgIGxvZy5pbmZvKGJvdW5kc1RtcC54LCB4LCB5ICsgdGl0bGVIZWlnaHQpO1xuICAgICAgaWYgKHRpdGxlSGVpZ2h0ID09PSAwKSB7XG4gICAgICAgIGNvbnN0IHRpdGxlQm94ID0gdGl0bGUubm9kZSgpLmdldEJCb3goKTtcbiAgICAgICAgdGl0bGVIZWlnaHQgPSB0aXRsZUJveC5oZWlnaHQ7XG4gICAgICAgIGxvZy5pbmZvKFwiVGl0bGUgaGVpZ2h0XCIsIHRpdGxlSGVpZ2h0LCB5KTtcbiAgICAgIH1cbiAgICAgIHRpdGxlUm93cy5wdXNoKHRpdGxlKTtcbiAgICB9XG4gICAgbGV0IGJveEhlaWdodCA9IHRpdGxlSGVpZ2h0ICogcm93cy5sZW5ndGg7XG4gICAgaWYgKHJvd3MubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgaGVpZ2h0QWRqID0gKHJvd3MubGVuZ3RoIC0gMSkgKiB0aXRsZUhlaWdodCAqIDAuNTtcbiAgICAgIHRpdGxlUm93cy5mb3JFYWNoKCh0aXRsZSwgaSkgPT4gdGl0bGUuYXR0cihcInlcIiwgeSArIGkgKiB0aXRsZUhlaWdodCAtIGhlaWdodEFkaikpO1xuICAgICAgYm94SGVpZ2h0ID0gdGl0bGVIZWlnaHQgKiByb3dzLmxlbmd0aDtcbiAgICB9XG4gICAgY29uc3QgYm91bmRzID0gbGFiZWwubm9kZSgpLmdldEJCb3goKTtcbiAgICBsYWJlbC5pbnNlcnQoXCJyZWN0XCIsIFwiOmZpcnN0LWNoaWxkXCIpLmF0dHIoXCJjbGFzc1wiLCBcImJveFwiKS5hdHRyKFwieFwiLCB4IC0gbWF4V2lkdGggLyAyIC0gZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZyAvIDIpLmF0dHIoXCJ5XCIsIHkgLSBib3hIZWlnaHQgLyAyIC0gZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZyAvIDIgLSAzLjUpLmF0dHIoXCJ3aWR0aFwiLCBtYXhXaWR0aCArIGdldENvbmZpZygpLnN0YXRlLnBhZGRpbmcpLmF0dHIoXCJoZWlnaHRcIiwgYm94SGVpZ2h0ICsgZ2V0Q29uZmlnKCkuc3RhdGUucGFkZGluZyk7XG4gICAgbG9nLmluZm8oYm91bmRzKTtcbiAgfVxuICBlZGdlQ291bnQrKztcbn07XG5sZXQgY29uZjtcbmNvbnN0IHRyYW5zZm9ybWF0aW9uTG9nID0ge307XG5jb25zdCBzZXRDb25mID0gZnVuY3Rpb24oKSB7XG59O1xuY29uc3QgaW5zZXJ0TWFya2VycyA9IGZ1bmN0aW9uKGVsZW0pIHtcbiAgZWxlbS5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgXCJkZXBlbmRlbmN5RW5kXCIpLmF0dHIoXCJyZWZYXCIsIDE5KS5hdHRyKFwicmVmWVwiLCA3KS5hdHRyKFwibWFya2VyV2lkdGhcIiwgMjApLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgMjgpLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDE5LDcgTDksMTMgTDE0LDcgTDksMSBaXCIpO1xufTtcbmNvbnN0IGRyYXcgPSBmdW5jdGlvbih0ZXh0LCBpZCwgX3ZlcnNpb24sIGRpYWdPYmopIHtcbiAgY29uZiA9IGdldENvbmZpZygpLnN0YXRlO1xuICBjb25zdCBzZWN1cml0eUxldmVsID0gZ2V0Q29uZmlnKCkuc2VjdXJpdHlMZXZlbDtcbiAgbGV0IHNhbmRib3hFbGVtZW50O1xuICBpZiAoc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIpIHtcbiAgICBzYW5kYm94RWxlbWVudCA9IHNlbGVjdChcIiNpXCIgKyBpZCk7XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gc2VsZWN0KHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50LmJvZHkpIDogc2VsZWN0KFwiYm9keVwiKTtcbiAgY29uc3QgZG9jID0gc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIgPyBzYW5kYm94RWxlbWVudC5ub2RlcygpWzBdLmNvbnRlbnREb2N1bWVudCA6IGRvY3VtZW50O1xuICBsb2cuZGVidWcoXCJSZW5kZXJpbmcgZGlhZ3JhbSBcIiArIHRleHQpO1xuICBjb25zdCBkaWFncmFtMiA9IHJvb3Quc2VsZWN0KGBbaWQ9JyR7aWR9J11gKTtcbiAgaW5zZXJ0TWFya2VycyhkaWFncmFtMik7XG4gIGNvbnN0IHJvb3REb2MgPSBkaWFnT2JqLmRiLmdldFJvb3REb2MoKTtcbiAgcmVuZGVyRG9jKHJvb3REb2MsIGRpYWdyYW0yLCB2b2lkIDAsIGZhbHNlLCByb290LCBkb2MsIGRpYWdPYmopO1xuICBjb25zdCBwYWRkaW5nID0gY29uZi5wYWRkaW5nO1xuICBjb25zdCBib3VuZHMgPSBkaWFncmFtMi5ub2RlKCkuZ2V0QkJveCgpO1xuICBjb25zdCB3aWR0aCA9IGJvdW5kcy53aWR0aCArIHBhZGRpbmcgKiAyO1xuICBjb25zdCBoZWlnaHQgPSBib3VuZHMuaGVpZ2h0ICsgcGFkZGluZyAqIDI7XG4gIGNvbnN0IHN2Z1dpZHRoID0gd2lkdGggKiAxLjc1O1xuICBjb25maWd1cmVTdmdTaXplKGRpYWdyYW0yLCBoZWlnaHQsIHN2Z1dpZHRoLCBjb25mLnVzZU1heFdpZHRoKTtcbiAgZGlhZ3JhbTIuYXR0cihcbiAgICBcInZpZXdCb3hcIixcbiAgICBgJHtib3VuZHMueCAtIGNvbmYucGFkZGluZ30gICR7Ym91bmRzLnkgLSBjb25mLnBhZGRpbmd9IGAgKyB3aWR0aCArIFwiIFwiICsgaGVpZ2h0XG4gICk7XG59O1xuY29uc3QgZ2V0TGFiZWxXaWR0aCA9ICh0ZXh0KSA9PiB7XG4gIHJldHVybiB0ZXh0ID8gdGV4dC5sZW5ndGggKiBjb25mLmZvbnRTaXplRmFjdG9yIDogMTtcbn07XG5jb25zdCByZW5kZXJEb2MgPSAoZG9jLCBkaWFncmFtMiwgcGFyZW50SWQsIGFsdEJrZywgcm9vdCwgZG9tRG9jdW1lbnQsIGRpYWdPYmopID0+IHtcbiAgY29uc3QgZ3JhcGggPSBuZXcgZ3JhcGhsaWIuR3JhcGgoe1xuICAgIGNvbXBvdW5kOiB0cnVlLFxuICAgIG11bHRpZ3JhcGg6IHRydWVcbiAgfSk7XG4gIGxldCBpO1xuICBsZXQgZWRnZUZyZWVEb2MgPSB0cnVlO1xuICBmb3IgKGkgPSAwOyBpIDwgZG9jLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGRvY1tpXS5zdG10ID09PSBcInJlbGF0aW9uXCIpIHtcbiAgICAgIGVkZ2VGcmVlRG9jID0gZmFsc2U7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKHBhcmVudElkKSB7XG4gICAgZ3JhcGguc2V0R3JhcGgoe1xuICAgICAgcmFua2RpcjogXCJMUlwiLFxuICAgICAgbXVsdGlncmFwaDogdHJ1ZSxcbiAgICAgIGNvbXBvdW5kOiB0cnVlLFxuICAgICAgLy8gYWN5Y2xpY2VyOiAnZ3JlZWR5JyxcbiAgICAgIHJhbmtlcjogXCJ0aWdodC10cmVlXCIsXG4gICAgICByYW5rc2VwOiBlZGdlRnJlZURvYyA/IDEgOiBjb25mLmVkZ2VMZW5ndGhGYWN0b3IsXG4gICAgICBub2RlU2VwOiBlZGdlRnJlZURvYyA/IDEgOiA1MCxcbiAgICAgIGlzTXVsdGlHcmFwaDogdHJ1ZVxuICAgICAgLy8gcmFua3NlcDogNSxcbiAgICAgIC8vIG5vZGVzZXA6IDFcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBncmFwaC5zZXRHcmFwaCh7XG4gICAgICByYW5rZGlyOiBcIlRCXCIsXG4gICAgICBtdWx0aWdyYXBoOiB0cnVlLFxuICAgICAgY29tcG91bmQ6IHRydWUsXG4gICAgICAvLyBpc0NvbXBvdW5kOiB0cnVlLFxuICAgICAgLy8gYWN5Y2xpY2VyOiAnZ3JlZWR5JyxcbiAgICAgIC8vIHJhbmtlcjogJ2xvbmdlc3QtcGF0aCdcbiAgICAgIHJhbmtzZXA6IGVkZ2VGcmVlRG9jID8gMSA6IGNvbmYuZWRnZUxlbmd0aEZhY3RvcixcbiAgICAgIG5vZGVTZXA6IGVkZ2VGcmVlRG9jID8gMSA6IDUwLFxuICAgICAgcmFua2VyOiBcInRpZ2h0LXRyZWVcIixcbiAgICAgIC8vIHJhbmtlcjogJ25ldHdvcmstc2ltcGxleCdcbiAgICAgIGlzTXVsdGlHcmFwaDogdHJ1ZVxuICAgIH0pO1xuICB9XG4gIGdyYXBoLnNldERlZmF1bHRFZGdlTGFiZWwoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9KTtcbiAgZGlhZ09iai5kYi5leHRyYWN0KGRvYyk7XG4gIGNvbnN0IHN0YXRlcyA9IGRpYWdPYmouZGIuZ2V0U3RhdGVzKCk7XG4gIGNvbnN0IHJlbGF0aW9ucyA9IGRpYWdPYmouZGIuZ2V0UmVsYXRpb25zKCk7XG4gIGNvbnN0IGtleXMyID0gT2JqZWN0LmtleXMoc3RhdGVzKTtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5czIpIHtcbiAgICBjb25zdCBzdGF0ZURlZiA9IHN0YXRlc1trZXldO1xuICAgIGlmIChwYXJlbnRJZCkge1xuICAgICAgc3RhdGVEZWYucGFyZW50SWQgPSBwYXJlbnRJZDtcbiAgICB9XG4gICAgbGV0IG5vZGU7XG4gICAgaWYgKHN0YXRlRGVmLmRvYykge1xuICAgICAgbGV0IHN1YiA9IGRpYWdyYW0yLmFwcGVuZChcImdcIikuYXR0cihcImlkXCIsIHN0YXRlRGVmLmlkKS5hdHRyKFwiY2xhc3NcIiwgXCJzdGF0ZUdyb3VwXCIpO1xuICAgICAgbm9kZSA9IHJlbmRlckRvYyhzdGF0ZURlZi5kb2MsIHN1Yiwgc3RhdGVEZWYuaWQsICFhbHRCa2csIHJvb3QsIGRvbURvY3VtZW50LCBkaWFnT2JqKTtcbiAgICAgIHtcbiAgICAgICAgc3ViID0gYWRkVGl0bGVBbmRCb3goc3ViLCBzdGF0ZURlZiwgYWx0QmtnKTtcbiAgICAgICAgbGV0IGJveEJvdW5kcyA9IHN1Yi5ub2RlKCkuZ2V0QkJveCgpO1xuICAgICAgICBub2RlLndpZHRoID0gYm94Qm91bmRzLndpZHRoO1xuICAgICAgICBub2RlLmhlaWdodCA9IGJveEJvdW5kcy5oZWlnaHQgKyBjb25mLnBhZGRpbmcgLyAyO1xuICAgICAgICB0cmFuc2Zvcm1hdGlvbkxvZ1tzdGF0ZURlZi5pZF0gPSB7IHk6IGNvbmYuY29tcG9zaXRUaXRsZVNpemUgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZSA9IGRyYXdTdGF0ZShkaWFncmFtMiwgc3RhdGVEZWYpO1xuICAgIH1cbiAgICBpZiAoc3RhdGVEZWYubm90ZSkge1xuICAgICAgY29uc3Qgbm90ZURlZiA9IHtcbiAgICAgICAgZGVzY3JpcHRpb25zOiBbXSxcbiAgICAgICAgaWQ6IHN0YXRlRGVmLmlkICsgXCItbm90ZVwiLFxuICAgICAgICBub3RlOiBzdGF0ZURlZi5ub3RlLFxuICAgICAgICB0eXBlOiBcIm5vdGVcIlxuICAgICAgfTtcbiAgICAgIGNvbnN0IG5vdGUgPSBkcmF3U3RhdGUoZGlhZ3JhbTIsIG5vdGVEZWYpO1xuICAgICAgaWYgKHN0YXRlRGVmLm5vdGUucG9zaXRpb24gPT09IFwibGVmdCBvZlwiKSB7XG4gICAgICAgIGdyYXBoLnNldE5vZGUobm9kZS5pZCArIFwiLW5vdGVcIiwgbm90ZSk7XG4gICAgICAgIGdyYXBoLnNldE5vZGUobm9kZS5pZCwgbm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncmFwaC5zZXROb2RlKG5vZGUuaWQsIG5vZGUpO1xuICAgICAgICBncmFwaC5zZXROb2RlKG5vZGUuaWQgKyBcIi1ub3RlXCIsIG5vdGUpO1xuICAgICAgfVxuICAgICAgZ3JhcGguc2V0UGFyZW50KG5vZGUuaWQsIG5vZGUuaWQgKyBcIi1ncm91cFwiKTtcbiAgICAgIGdyYXBoLnNldFBhcmVudChub2RlLmlkICsgXCItbm90ZVwiLCBub2RlLmlkICsgXCItZ3JvdXBcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdyYXBoLnNldE5vZGUobm9kZS5pZCwgbm9kZSk7XG4gICAgfVxuICB9XG4gIGxvZy5kZWJ1ZyhcIkNvdW50PVwiLCBncmFwaC5ub2RlQ291bnQoKSwgZ3JhcGgpO1xuICBsZXQgY250ID0gMDtcbiAgcmVsYXRpb25zLmZvckVhY2goZnVuY3Rpb24ocmVsYXRpb24pIHtcbiAgICBjbnQrKztcbiAgICBsb2cuZGVidWcoXCJTZXR0aW5nIGVkZ2VcIiwgcmVsYXRpb24pO1xuICAgIGdyYXBoLnNldEVkZ2UoXG4gICAgICByZWxhdGlvbi5pZDEsXG4gICAgICByZWxhdGlvbi5pZDIsXG4gICAgICB7XG4gICAgICAgIHJlbGF0aW9uLFxuICAgICAgICB3aWR0aDogZ2V0TGFiZWxXaWR0aChyZWxhdGlvbi50aXRsZSksXG4gICAgICAgIGhlaWdodDogY29uZi5sYWJlbEhlaWdodCAqIGNvbW1vbi5nZXRSb3dzKHJlbGF0aW9uLnRpdGxlKS5sZW5ndGgsXG4gICAgICAgIGxhYmVscG9zOiBcImNcIlxuICAgICAgfSxcbiAgICAgIFwiaWRcIiArIGNudFxuICAgICk7XG4gIH0pO1xuICBsYXlvdXQoZ3JhcGgpO1xuICBsb2cuZGVidWcoXCJHcmFwaCBhZnRlciBsYXlvdXRcIiwgZ3JhcGgubm9kZXMoKSk7XG4gIGNvbnN0IHN2Z0VsZW0gPSBkaWFncmFtMi5ub2RlKCk7XG4gIGdyYXBoLm5vZGVzKCkuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgaWYgKHYgIT09IHZvaWQgMCAmJiBncmFwaC5ub2RlKHYpICE9PSB2b2lkIDApIHtcbiAgICAgIGxvZy53YXJuKFwiTm9kZSBcIiArIHYgKyBcIjogXCIgKyBKU09OLnN0cmluZ2lmeShncmFwaC5ub2RlKHYpKSk7XG4gICAgICByb290LnNlbGVjdChcIiNcIiArIHN2Z0VsZW0uaWQgKyBcIiAjXCIgKyB2KS5hdHRyKFxuICAgICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgICBcInRyYW5zbGF0ZShcIiArIChncmFwaC5ub2RlKHYpLnggLSBncmFwaC5ub2RlKHYpLndpZHRoIC8gMikgKyBcIixcIiArIChncmFwaC5ub2RlKHYpLnkgKyAodHJhbnNmb3JtYXRpb25Mb2dbdl0gPyB0cmFuc2Zvcm1hdGlvbkxvZ1t2XS55IDogMCkgLSBncmFwaC5ub2RlKHYpLmhlaWdodCAvIDIpICsgXCIgKVwiXG4gICAgICApO1xuICAgICAgcm9vdC5zZWxlY3QoXCIjXCIgKyBzdmdFbGVtLmlkICsgXCIgI1wiICsgdikuYXR0cihcImRhdGEteC1zaGlmdFwiLCBncmFwaC5ub2RlKHYpLnggLSBncmFwaC5ub2RlKHYpLndpZHRoIC8gMik7XG4gICAgICBjb25zdCBkaXZpZGVycyA9IGRvbURvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIjXCIgKyBzdmdFbGVtLmlkICsgXCIgI1wiICsgdiArIFwiIC5kaXZpZGVyXCIpO1xuICAgICAgZGl2aWRlcnMuZm9yRWFjaCgoZGl2aWRlcikgPT4ge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBkaXZpZGVyLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIGxldCBwV2lkdGggPSAwO1xuICAgICAgICBsZXQgcFNoaWZ0ID0gMDtcbiAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgIGlmIChwYXJlbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgcFdpZHRoID0gcGFyZW50LnBhcmVudEVsZW1lbnQuZ2V0QkJveCgpLndpZHRoO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwU2hpZnQgPSBwYXJzZUludChwYXJlbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS14LXNoaWZ0XCIpLCAxMCk7XG4gICAgICAgICAgaWYgKE51bWJlci5pc05hTihwU2hpZnQpKSB7XG4gICAgICAgICAgICBwU2hpZnQgPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkaXZpZGVyLnNldEF0dHJpYnV0ZShcIngxXCIsIDAgLSBwU2hpZnQgKyA4KTtcbiAgICAgICAgZGl2aWRlci5zZXRBdHRyaWJ1dGUoXCJ4MlwiLCBwV2lkdGggLSBwU2hpZnQgLSA4KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuZGVidWcoXCJObyBOb2RlIFwiICsgdiArIFwiOiBcIiArIEpTT04uc3RyaW5naWZ5KGdyYXBoLm5vZGUodikpKTtcbiAgICB9XG4gIH0pO1xuICBsZXQgc3RhdGVCb3ggPSBzdmdFbGVtLmdldEJCb3goKTtcbiAgZ3JhcGguZWRnZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKGUpIHtcbiAgICBpZiAoZSAhPT0gdm9pZCAwICYmIGdyYXBoLmVkZ2UoZSkgIT09IHZvaWQgMCkge1xuICAgICAgbG9nLmRlYnVnKFwiRWRnZSBcIiArIGUudiArIFwiIC0+IFwiICsgZS53ICsgXCI6IFwiICsgSlNPTi5zdHJpbmdpZnkoZ3JhcGguZWRnZShlKSkpO1xuICAgICAgZHJhd0VkZ2UoZGlhZ3JhbTIsIGdyYXBoLmVkZ2UoZSksIGdyYXBoLmVkZ2UoZSkucmVsYXRpb24pO1xuICAgIH1cbiAgfSk7XG4gIHN0YXRlQm94ID0gc3ZnRWxlbS5nZXRCQm94KCk7XG4gIGNvbnN0IHN0YXRlSW5mbyA9IHtcbiAgICBpZDogcGFyZW50SWQgPyBwYXJlbnRJZCA6IFwicm9vdFwiLFxuICAgIGxhYmVsOiBwYXJlbnRJZCA/IHBhcmVudElkIDogXCJyb290XCIsXG4gICAgd2lkdGg6IDAsXG4gICAgaGVpZ2h0OiAwXG4gIH07XG4gIHN0YXRlSW5mby53aWR0aCA9IHN0YXRlQm94LndpZHRoICsgMiAqIGNvbmYucGFkZGluZztcbiAgc3RhdGVJbmZvLmhlaWdodCA9IHN0YXRlQm94LmhlaWdodCArIDIgKiBjb25mLnBhZGRpbmc7XG4gIGxvZy5kZWJ1ZyhcIkRvYyByZW5kZXJlZFwiLCBzdGF0ZUluZm8sIGdyYXBoKTtcbiAgcmV0dXJuIHN0YXRlSW5mbztcbn07XG5jb25zdCByZW5kZXJlciA9IHtcbiAgc2V0Q29uZixcbiAgZHJhd1xufTtcbmNvbnN0IGRpYWdyYW0gPSB7XG4gIHBhcnNlcixcbiAgZGIsXG4gIHJlbmRlcmVyLFxuICBzdHlsZXMsXG4gIGluaXQ6IChjbmYpID0+IHtcbiAgICBpZiAoIWNuZi5zdGF0ZSkge1xuICAgICAgY25mLnN0YXRlID0ge307XG4gICAgfVxuICAgIGNuZi5zdGF0ZS5hcnJvd01hcmtlckFic29sdXRlID0gY25mLmFycm93TWFya2VyQWJzb2x1dGU7XG4gICAgZGIuY2xlYXIoKTtcbiAgfVxufTtcbmV4cG9ydCB7XG4gIGRpYWdyYW1cbn07XG4iLAogICAgImltcG9ydCB7IEQgYXMgREVGQVVMVF9TVEFURV9UWVBFLCBhIGFzIERJVklERVJfVFlQRSwgUyBhcyBTVE1UX1JFTEFUSU9OLCBiIGFzIFNUTVRfU1RBVEUsIGMgYXMgREVGQVVMVF9ORVNURURfRE9DX0RJUiwgcCBhcyBwYXJzZXIsIGQgYXMgZGIsIHMgYXMgc3R5bGVzIH0gZnJvbSBcIi4vc3R5bGVzLTA3ODRkYmViLmpzXCI7XG5pbXBvcnQgKiBhcyBncmFwaGxpYiBmcm9tIFwiZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzZWxlY3QgfSBmcm9tIFwiZDNcIjtcbmltcG9ydCB7IGwgYXMgbG9nLCBjIGFzIGdldENvbmZpZywgdSBhcyB1dGlscywgaSBhcyBjb25maWd1cmVTdmdTaXplLCBlIGFzIGNvbW1vbiB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmltcG9ydCB7IHIgYXMgcmVuZGVyIH0gZnJvbSBcIi4vaW5kZXgtMDFmMzgxY2IuanNcIjtcbmltcG9ydCBcInRzLWRlZGVudFwiO1xuaW1wb3J0IFwiZGF5anNcIjtcbmltcG9ydCBcIkBicmFpbnRyZWUvc2FuaXRpemUtdXJsXCI7XG5pbXBvcnQgXCJkb21wdXJpZnlcIjtcbmltcG9ydCBcImtocm9tYVwiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lbW9pemUuanNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZXJnZS5qc1wiO1xuaW1wb3J0IFwic3R5bGlzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvaXNFbXB0eS5qc1wiO1xuaW1wb3J0IFwiZGFncmUtZDMtZXMvc3JjL2RhZ3JlL2luZGV4LmpzXCI7XG5pbXBvcnQgXCJkYWdyZS1kMy1lcy9zcmMvZ3JhcGhsaWIvanNvbi5qc1wiO1xuaW1wb3J0IFwiLi9lZGdlcy0wNjZhNTU2MS5qc1wiO1xuaW1wb3J0IFwiLi9jcmVhdGVUZXh0LWNhMGM1MjE2LmpzXCI7XG5pbXBvcnQgXCJtZGFzdC11dGlsLWZyb20tbWFya2Rvd25cIjtcbmNvbnN0IFNIQVBFX1NUQVRFID0gXCJyZWN0XCI7XG5jb25zdCBTSEFQRV9TVEFURV9XSVRIX0RFU0MgPSBcInJlY3RXaXRoVGl0bGVcIjtcbmNvbnN0IFNIQVBFX1NUQVJUID0gXCJzdGFydFwiO1xuY29uc3QgU0hBUEVfRU5EID0gXCJlbmRcIjtcbmNvbnN0IFNIQVBFX0RJVklERVIgPSBcImRpdmlkZXJcIjtcbmNvbnN0IFNIQVBFX0dST1VQID0gXCJyb3VuZGVkV2l0aFRpdGxlXCI7XG5jb25zdCBTSEFQRV9OT1RFID0gXCJub3RlXCI7XG5jb25zdCBTSEFQRV9OT1RFR1JPVVAgPSBcIm5vdGVHcm91cFwiO1xuY29uc3QgQ1NTX0RJQUdSQU0gPSBcInN0YXRlZGlhZ3JhbVwiO1xuY29uc3QgQ1NTX1NUQVRFID0gXCJzdGF0ZVwiO1xuY29uc3QgQ1NTX0RJQUdSQU1fU1RBVEUgPSBgJHtDU1NfRElBR1JBTX0tJHtDU1NfU1RBVEV9YDtcbmNvbnN0IENTU19FREdFID0gXCJ0cmFuc2l0aW9uXCI7XG5jb25zdCBDU1NfTk9URSA9IFwibm90ZVwiO1xuY29uc3QgQ1NTX05PVEVfRURHRSA9IFwibm90ZS1lZGdlXCI7XG5jb25zdCBDU1NfRURHRV9OT1RFX0VER0UgPSBgJHtDU1NfRURHRX0gJHtDU1NfTk9URV9FREdFfWA7XG5jb25zdCBDU1NfRElBR1JBTV9OT1RFID0gYCR7Q1NTX0RJQUdSQU19LSR7Q1NTX05PVEV9YDtcbmNvbnN0IENTU19DTFVTVEVSID0gXCJjbHVzdGVyXCI7XG5jb25zdCBDU1NfRElBR1JBTV9DTFVTVEVSID0gYCR7Q1NTX0RJQUdSQU19LSR7Q1NTX0NMVVNURVJ9YDtcbmNvbnN0IENTU19DTFVTVEVSX0FMVCA9IFwiY2x1c3Rlci1hbHRcIjtcbmNvbnN0IENTU19ESUFHUkFNX0NMVVNURVJfQUxUID0gYCR7Q1NTX0RJQUdSQU19LSR7Q1NTX0NMVVNURVJfQUxUfWA7XG5jb25zdCBQQVJFTlQgPSBcInBhcmVudFwiO1xuY29uc3QgTk9URSA9IFwibm90ZVwiO1xuY29uc3QgRE9NSURfU1RBVEUgPSBcInN0YXRlXCI7XG5jb25zdCBET01JRF9UWVBFX1NQQUNFUiA9IFwiLS0tLVwiO1xuY29uc3QgTk9URV9JRCA9IGAke0RPTUlEX1RZUEVfU1BBQ0VSfSR7Tk9URX1gO1xuY29uc3QgUEFSRU5UX0lEID0gYCR7RE9NSURfVFlQRV9TUEFDRVJ9JHtQQVJFTlR9YDtcbmNvbnN0IEdfRURHRV9TVFlMRSA9IFwiZmlsbDpub25lXCI7XG5jb25zdCBHX0VER0VfQVJST1dIRUFEU1RZTEUgPSBcImZpbGw6ICMzMzNcIjtcbmNvbnN0IEdfRURHRV9MQUJFTFBPUyA9IFwiY1wiO1xuY29uc3QgR19FREdFX0xBQkVMVFlQRSA9IFwidGV4dFwiO1xuY29uc3QgR19FREdFX1RISUNLTkVTUyA9IFwibm9ybWFsXCI7XG5sZXQgbm9kZURiID0ge307XG5sZXQgZ3JhcGhJdGVtQ291bnQgPSAwO1xuY29uc3Qgc2V0Q29uZiA9IGZ1bmN0aW9uKGNuZikge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY25mKTtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGNuZltrZXldO1xuICB9XG59O1xuY29uc3QgZ2V0Q2xhc3NlcyA9IGZ1bmN0aW9uKHRleHQsIGRpYWdyYW1PYmopIHtcbiAgZGlhZ3JhbU9iai5kYi5leHRyYWN0KGRpYWdyYW1PYmouZGIuZ2V0Um9vdERvY1YyKCkpO1xuICByZXR1cm4gZGlhZ3JhbU9iai5kYi5nZXRDbGFzc2VzKCk7XG59O1xuZnVuY3Rpb24gZ2V0Q2xhc3Nlc0Zyb21EYkluZm8oZGJJbmZvSXRlbSkge1xuICBpZiAoZGJJbmZvSXRlbSA9PT0gdm9pZCAwIHx8IGRiSW5mb0l0ZW0gPT09IG51bGwpIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfSBlbHNlIHtcbiAgICBpZiAoZGJJbmZvSXRlbS5jbGFzc2VzKSB7XG4gICAgICByZXR1cm4gZGJJbmZvSXRlbS5jbGFzc2VzLmpvaW4oXCIgXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIHN0YXRlRG9tSWQoaXRlbUlkID0gXCJcIiwgY291bnRlciA9IDAsIHR5cGUgPSBcIlwiLCB0eXBlU3BhY2VyID0gRE9NSURfVFlQRV9TUEFDRVIpIHtcbiAgY29uc3QgdHlwZVN0ciA9IHR5cGUgIT09IG51bGwgJiYgdHlwZS5sZW5ndGggPiAwID8gYCR7dHlwZVNwYWNlcn0ke3R5cGV9YCA6IFwiXCI7XG4gIHJldHVybiBgJHtET01JRF9TVEFURX0tJHtpdGVtSWR9JHt0eXBlU3RyfS0ke2NvdW50ZXJ9YDtcbn1cbmNvbnN0IHNldHVwTm9kZSA9IChnLCBwYXJlbnQsIHBhcnNlZEl0ZW0sIGRpYWdyYW1TdGF0ZXMsIGRpYWdyYW1EYiwgYWx0RmxhZykgPT4ge1xuICBjb25zdCBpdGVtSWQgPSBwYXJzZWRJdGVtLmlkO1xuICBjb25zdCBjbGFzc1N0ciA9IGdldENsYXNzZXNGcm9tRGJJbmZvKGRpYWdyYW1TdGF0ZXNbaXRlbUlkXSk7XG4gIGlmIChpdGVtSWQgIT09IFwicm9vdFwiKSB7XG4gICAgbGV0IHNoYXBlID0gU0hBUEVfU1RBVEU7XG4gICAgaWYgKHBhcnNlZEl0ZW0uc3RhcnQgPT09IHRydWUpIHtcbiAgICAgIHNoYXBlID0gU0hBUEVfU1RBUlQ7XG4gICAgfVxuICAgIGlmIChwYXJzZWRJdGVtLnN0YXJ0ID09PSBmYWxzZSkge1xuICAgICAgc2hhcGUgPSBTSEFQRV9FTkQ7XG4gICAgfVxuICAgIGlmIChwYXJzZWRJdGVtLnR5cGUgIT09IERFRkFVTFRfU1RBVEVfVFlQRSkge1xuICAgICAgc2hhcGUgPSBwYXJzZWRJdGVtLnR5cGU7XG4gICAgfVxuICAgIGlmICghbm9kZURiW2l0ZW1JZF0pIHtcbiAgICAgIG5vZGVEYltpdGVtSWRdID0ge1xuICAgICAgICBpZDogaXRlbUlkLFxuICAgICAgICBzaGFwZSxcbiAgICAgICAgZGVzY3JpcHRpb246IGNvbW1vbi5zYW5pdGl6ZVRleHQoaXRlbUlkLCBnZXRDb25maWcoKSksXG4gICAgICAgIGNsYXNzZXM6IGAke2NsYXNzU3RyfSAke0NTU19ESUFHUkFNX1NUQVRFfWBcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IG5ld05vZGUgPSBub2RlRGJbaXRlbUlkXTtcbiAgICBpZiAocGFyc2VkSXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmV3Tm9kZS5kZXNjcmlwdGlvbikpIHtcbiAgICAgICAgbmV3Tm9kZS5zaGFwZSA9IFNIQVBFX1NUQVRFX1dJVEhfREVTQztcbiAgICAgICAgbmV3Tm9kZS5kZXNjcmlwdGlvbi5wdXNoKHBhcnNlZEl0ZW0uZGVzY3JpcHRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKG5ld05vZGUuZGVzY3JpcHRpb24ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIG5ld05vZGUuc2hhcGUgPSBTSEFQRV9TVEFURV9XSVRIX0RFU0M7XG4gICAgICAgICAgaWYgKG5ld05vZGUuZGVzY3JpcHRpb24gPT09IGl0ZW1JZCkge1xuICAgICAgICAgICAgbmV3Tm9kZS5kZXNjcmlwdGlvbiA9IFtwYXJzZWRJdGVtLmRlc2NyaXB0aW9uXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3Tm9kZS5kZXNjcmlwdGlvbiA9IFtuZXdOb2RlLmRlc2NyaXB0aW9uLCBwYXJzZWRJdGVtLmRlc2NyaXB0aW9uXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3Tm9kZS5zaGFwZSA9IFNIQVBFX1NUQVRFO1xuICAgICAgICAgIG5ld05vZGUuZGVzY3JpcHRpb24gPSBwYXJzZWRJdGVtLmRlc2NyaXB0aW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBuZXdOb2RlLmRlc2NyaXB0aW9uID0gY29tbW9uLnNhbml0aXplVGV4dE9yQXJyYXkobmV3Tm9kZS5kZXNjcmlwdGlvbiwgZ2V0Q29uZmlnKCkpO1xuICAgIH1cbiAgICBpZiAobmV3Tm9kZS5kZXNjcmlwdGlvbi5sZW5ndGggPT09IDEgJiYgbmV3Tm9kZS5zaGFwZSA9PT0gU0hBUEVfU1RBVEVfV0lUSF9ERVNDKSB7XG4gICAgICBuZXdOb2RlLnNoYXBlID0gU0hBUEVfU1RBVEU7XG4gICAgfVxuICAgIGlmICghbmV3Tm9kZS50eXBlICYmIHBhcnNlZEl0ZW0uZG9jKSB7XG4gICAgICBsb2cuaW5mbyhcIlNldHRpbmcgY2x1c3RlciBmb3IgXCIsIGl0ZW1JZCwgZ2V0RGlyKHBhcnNlZEl0ZW0pKTtcbiAgICAgIG5ld05vZGUudHlwZSA9IFwiZ3JvdXBcIjtcbiAgICAgIG5ld05vZGUuZGlyID0gZ2V0RGlyKHBhcnNlZEl0ZW0pO1xuICAgICAgbmV3Tm9kZS5zaGFwZSA9IHBhcnNlZEl0ZW0udHlwZSA9PT0gRElWSURFUl9UWVBFID8gU0hBUEVfRElWSURFUiA6IFNIQVBFX0dST1VQO1xuICAgICAgbmV3Tm9kZS5jbGFzc2VzID0gbmV3Tm9kZS5jbGFzc2VzICsgXCIgXCIgKyBDU1NfRElBR1JBTV9DTFVTVEVSICsgXCIgXCIgKyAoYWx0RmxhZyA/IENTU19ESUFHUkFNX0NMVVNURVJfQUxUIDogXCJcIik7XG4gICAgfVxuICAgIGNvbnN0IG5vZGVEYXRhID0ge1xuICAgICAgbGFiZWxTdHlsZTogXCJcIixcbiAgICAgIHNoYXBlOiBuZXdOb2RlLnNoYXBlLFxuICAgICAgbGFiZWxUZXh0OiBuZXdOb2RlLmRlc2NyaXB0aW9uLFxuICAgICAgLy8gdHlwZW9mIG5ld05vZGUuZGVzY3JpcHRpb24gPT09ICdvYmplY3QnXG4gICAgICAvLyAgID8gbmV3Tm9kZS5kZXNjcmlwdGlvblswXVxuICAgICAgLy8gICA6IG5ld05vZGUuZGVzY3JpcHRpb24sXG4gICAgICBjbGFzc2VzOiBuZXdOb2RlLmNsYXNzZXMsXG4gICAgICBzdHlsZTogXCJcIixcbiAgICAgIC8vc3R5bGVzLnN0eWxlLFxuICAgICAgaWQ6IGl0ZW1JZCxcbiAgICAgIGRpcjogbmV3Tm9kZS5kaXIsXG4gICAgICBkb21JZDogc3RhdGVEb21JZChpdGVtSWQsIGdyYXBoSXRlbUNvdW50KSxcbiAgICAgIHR5cGU6IG5ld05vZGUudHlwZSxcbiAgICAgIHBhZGRpbmc6IDE1XG4gICAgICAvL2dldENvbmZpZygpLmZsb3djaGFydC5wYWRkaW5nXG4gICAgfTtcbiAgICBub2RlRGF0YS5jZW50ZXJMYWJlbCA9IHRydWU7XG4gICAgaWYgKHBhcnNlZEl0ZW0ubm90ZSkge1xuICAgICAgY29uc3Qgbm90ZURhdGEgPSB7XG4gICAgICAgIGxhYmVsU3R5bGU6IFwiXCIsXG4gICAgICAgIHNoYXBlOiBTSEFQRV9OT1RFLFxuICAgICAgICBsYWJlbFRleHQ6IHBhcnNlZEl0ZW0ubm90ZS50ZXh0LFxuICAgICAgICBjbGFzc2VzOiBDU1NfRElBR1JBTV9OT1RFLFxuICAgICAgICAvLyB1c2VIdG1sTGFiZWxzOiBmYWxzZSxcbiAgICAgICAgc3R5bGU6IFwiXCIsXG4gICAgICAgIC8vIHN0eWxlcy5zdHlsZSxcbiAgICAgICAgaWQ6IGl0ZW1JZCArIE5PVEVfSUQgKyBcIi1cIiArIGdyYXBoSXRlbUNvdW50LFxuICAgICAgICBkb21JZDogc3RhdGVEb21JZChpdGVtSWQsIGdyYXBoSXRlbUNvdW50LCBOT1RFKSxcbiAgICAgICAgdHlwZTogbmV3Tm9kZS50eXBlLFxuICAgICAgICBwYWRkaW5nOiAxNVxuICAgICAgICAvL2dldENvbmZpZygpLmZsb3djaGFydC5wYWRkaW5nXG4gICAgICB9O1xuICAgICAgY29uc3QgZ3JvdXBEYXRhID0ge1xuICAgICAgICBsYWJlbFN0eWxlOiBcIlwiLFxuICAgICAgICBzaGFwZTogU0hBUEVfTk9URUdST1VQLFxuICAgICAgICBsYWJlbFRleHQ6IHBhcnNlZEl0ZW0ubm90ZS50ZXh0LFxuICAgICAgICBjbGFzc2VzOiBuZXdOb2RlLmNsYXNzZXMsXG4gICAgICAgIHN0eWxlOiBcIlwiLFxuICAgICAgICAvLyBzdHlsZXMuc3R5bGUsXG4gICAgICAgIGlkOiBpdGVtSWQgKyBQQVJFTlRfSUQsXG4gICAgICAgIGRvbUlkOiBzdGF0ZURvbUlkKGl0ZW1JZCwgZ3JhcGhJdGVtQ291bnQsIFBBUkVOVCksXG4gICAgICAgIHR5cGU6IFwiZ3JvdXBcIixcbiAgICAgICAgcGFkZGluZzogMFxuICAgICAgICAvL2dldENvbmZpZygpLmZsb3djaGFydC5wYWRkaW5nXG4gICAgICB9O1xuICAgICAgZ3JhcGhJdGVtQ291bnQrKztcbiAgICAgIGNvbnN0IHBhcmVudE5vZGVJZCA9IGl0ZW1JZCArIFBBUkVOVF9JRDtcbiAgICAgIGcuc2V0Tm9kZShwYXJlbnROb2RlSWQsIGdyb3VwRGF0YSk7XG4gICAgICBnLnNldE5vZGUobm90ZURhdGEuaWQsIG5vdGVEYXRhKTtcbiAgICAgIGcuc2V0Tm9kZShpdGVtSWQsIG5vZGVEYXRhKTtcbiAgICAgIGcuc2V0UGFyZW50KGl0ZW1JZCwgcGFyZW50Tm9kZUlkKTtcbiAgICAgIGcuc2V0UGFyZW50KG5vdGVEYXRhLmlkLCBwYXJlbnROb2RlSWQpO1xuICAgICAgbGV0IGZyb20gPSBpdGVtSWQ7XG4gICAgICBsZXQgdG8gPSBub3RlRGF0YS5pZDtcbiAgICAgIGlmIChwYXJzZWRJdGVtLm5vdGUucG9zaXRpb24gPT09IFwibGVmdCBvZlwiKSB7XG4gICAgICAgIGZyb20gPSBub3RlRGF0YS5pZDtcbiAgICAgICAgdG8gPSBpdGVtSWQ7XG4gICAgICB9XG4gICAgICBnLnNldEVkZ2UoZnJvbSwgdG8sIHtcbiAgICAgICAgYXJyb3doZWFkOiBcIm5vbmVcIixcbiAgICAgICAgYXJyb3dUeXBlOiBcIlwiLFxuICAgICAgICBzdHlsZTogR19FREdFX1NUWUxFLFxuICAgICAgICBsYWJlbFN0eWxlOiBcIlwiLFxuICAgICAgICBjbGFzc2VzOiBDU1NfRURHRV9OT1RFX0VER0UsXG4gICAgICAgIGFycm93aGVhZFN0eWxlOiBHX0VER0VfQVJST1dIRUFEU1RZTEUsXG4gICAgICAgIGxhYmVscG9zOiBHX0VER0VfTEFCRUxQT1MsXG4gICAgICAgIGxhYmVsVHlwZTogR19FREdFX0xBQkVMVFlQRSxcbiAgICAgICAgdGhpY2tuZXNzOiBHX0VER0VfVEhJQ0tORVNTXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZy5zZXROb2RlKGl0ZW1JZCwgbm9kZURhdGEpO1xuICAgIH1cbiAgfVxuICBpZiAocGFyZW50ICYmIHBhcmVudC5pZCAhPT0gXCJyb290XCIpIHtcbiAgICBsb2cudHJhY2UoXCJTZXR0aW5nIG5vZGUgXCIsIGl0ZW1JZCwgXCIgdG8gYmUgY2hpbGQgb2YgaXRzIHBhcmVudCBcIiwgcGFyZW50LmlkKTtcbiAgICBnLnNldFBhcmVudChpdGVtSWQsIHBhcmVudC5pZCk7XG4gIH1cbiAgaWYgKHBhcnNlZEl0ZW0uZG9jKSB7XG4gICAgbG9nLnRyYWNlKFwiQWRkaW5nIG5vZGVzIGNoaWxkcmVuIFwiKTtcbiAgICBzZXR1cERvYyhnLCBwYXJzZWRJdGVtLCBwYXJzZWRJdGVtLmRvYywgZGlhZ3JhbVN0YXRlcywgZGlhZ3JhbURiLCAhYWx0RmxhZyk7XG4gIH1cbn07XG5jb25zdCBzZXR1cERvYyA9IChnLCBwYXJlbnRQYXJzZWRJdGVtLCBkb2MsIGRpYWdyYW1TdGF0ZXMsIGRpYWdyYW1EYiwgYWx0RmxhZykgPT4ge1xuICBsb2cudHJhY2UoXCJpdGVtc1wiLCBkb2MpO1xuICBkb2MuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgIHN3aXRjaCAoaXRlbS5zdG10KSB7XG4gICAgICBjYXNlIFNUTVRfU1RBVEU6XG4gICAgICAgIHNldHVwTm9kZShnLCBwYXJlbnRQYXJzZWRJdGVtLCBpdGVtLCBkaWFncmFtU3RhdGVzLCBkaWFncmFtRGIsIGFsdEZsYWcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgREVGQVVMVF9TVEFURV9UWVBFOlxuICAgICAgICBzZXR1cE5vZGUoZywgcGFyZW50UGFyc2VkSXRlbSwgaXRlbSwgZGlhZ3JhbVN0YXRlcywgZGlhZ3JhbURiLCBhbHRGbGFnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNUTVRfUkVMQVRJT046XG4gICAgICAgIHtcbiAgICAgICAgICBzZXR1cE5vZGUoZywgcGFyZW50UGFyc2VkSXRlbSwgaXRlbS5zdGF0ZTEsIGRpYWdyYW1TdGF0ZXMsIGRpYWdyYW1EYiwgYWx0RmxhZyk7XG4gICAgICAgICAgc2V0dXBOb2RlKGcsIHBhcmVudFBhcnNlZEl0ZW0sIGl0ZW0uc3RhdGUyLCBkaWFncmFtU3RhdGVzLCBkaWFncmFtRGIsIGFsdEZsYWcpO1xuICAgICAgICAgIGNvbnN0IGVkZ2VEYXRhID0ge1xuICAgICAgICAgICAgaWQ6IFwiZWRnZVwiICsgZ3JhcGhJdGVtQ291bnQsXG4gICAgICAgICAgICBhcnJvd2hlYWQ6IFwibm9ybWFsXCIsXG4gICAgICAgICAgICBhcnJvd1R5cGVFbmQ6IFwiYXJyb3dfYmFyYlwiLFxuICAgICAgICAgICAgc3R5bGU6IEdfRURHRV9TVFlMRSxcbiAgICAgICAgICAgIGxhYmVsU3R5bGU6IFwiXCIsXG4gICAgICAgICAgICBsYWJlbDogY29tbW9uLnNhbml0aXplVGV4dChpdGVtLmRlc2NyaXB0aW9uLCBnZXRDb25maWcoKSksXG4gICAgICAgICAgICBhcnJvd2hlYWRTdHlsZTogR19FREdFX0FSUk9XSEVBRFNUWUxFLFxuICAgICAgICAgICAgbGFiZWxwb3M6IEdfRURHRV9MQUJFTFBPUyxcbiAgICAgICAgICAgIGxhYmVsVHlwZTogR19FREdFX0xBQkVMVFlQRSxcbiAgICAgICAgICAgIHRoaWNrbmVzczogR19FREdFX1RISUNLTkVTUyxcbiAgICAgICAgICAgIGNsYXNzZXM6IENTU19FREdFXG4gICAgICAgICAgfTtcbiAgICAgICAgICBnLnNldEVkZ2UoaXRlbS5zdGF0ZTEuaWQsIGl0ZW0uc3RhdGUyLmlkLCBlZGdlRGF0YSwgZ3JhcGhJdGVtQ291bnQpO1xuICAgICAgICAgIGdyYXBoSXRlbUNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9KTtcbn07XG5jb25zdCBnZXREaXIgPSAocGFyc2VkSXRlbSwgZGVmYXVsdERpciA9IERFRkFVTFRfTkVTVEVEX0RPQ19ESVIpID0+IHtcbiAgbGV0IGRpciA9IGRlZmF1bHREaXI7XG4gIGlmIChwYXJzZWRJdGVtLmRvYykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFyc2VkSXRlbS5kb2MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHBhcnNlZEl0ZW1Eb2MgPSBwYXJzZWRJdGVtLmRvY1tpXTtcbiAgICAgIGlmIChwYXJzZWRJdGVtRG9jLnN0bXQgPT09IFwiZGlyXCIpIHtcbiAgICAgICAgZGlyID0gcGFyc2VkSXRlbURvYy52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRpcjtcbn07XG5jb25zdCBkcmF3ID0gYXN5bmMgZnVuY3Rpb24odGV4dCwgaWQsIF92ZXJzaW9uLCBkaWFnKSB7XG4gIGxvZy5pbmZvKFwiRHJhd2luZyBzdGF0ZSBkaWFncmFtICh2MilcIiwgaWQpO1xuICBub2RlRGIgPSB7fTtcbiAgZGlhZy5kYi5nZXREaXJlY3Rpb24oKTtcbiAgY29uc3QgeyBzZWN1cml0eUxldmVsLCBzdGF0ZTogY29uZiB9ID0gZ2V0Q29uZmlnKCk7XG4gIGNvbnN0IG5vZGVTcGFjaW5nID0gY29uZi5ub2RlU3BhY2luZyB8fCA1MDtcbiAgY29uc3QgcmFua1NwYWNpbmcgPSBjb25mLnJhbmtTcGFjaW5nIHx8IDUwO1xuICBsb2cuaW5mbyhkaWFnLmRiLmdldFJvb3REb2NWMigpKTtcbiAgZGlhZy5kYi5leHRyYWN0KGRpYWcuZGIuZ2V0Um9vdERvY1YyKCkpO1xuICBsb2cuaW5mbyhkaWFnLmRiLmdldFJvb3REb2NWMigpKTtcbiAgY29uc3QgZGlhZ3JhbVN0YXRlcyA9IGRpYWcuZGIuZ2V0U3RhdGVzKCk7XG4gIGNvbnN0IGcgPSBuZXcgZ3JhcGhsaWIuR3JhcGgoe1xuICAgIG11bHRpZ3JhcGg6IHRydWUsXG4gICAgY29tcG91bmQ6IHRydWVcbiAgfSkuc2V0R3JhcGgoe1xuICAgIHJhbmtkaXI6IGdldERpcihkaWFnLmRiLmdldFJvb3REb2NWMigpKSxcbiAgICBub2Rlc2VwOiBub2RlU3BhY2luZyxcbiAgICByYW5rc2VwOiByYW5rU3BhY2luZyxcbiAgICBtYXJnaW54OiA4LFxuICAgIG1hcmdpbnk6IDhcbiAgfSkuc2V0RGVmYXVsdEVkZ2VMYWJlbChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4ge307XG4gIH0pO1xuICBzZXR1cE5vZGUoZywgdm9pZCAwLCBkaWFnLmRiLmdldFJvb3REb2NWMigpLCBkaWFncmFtU3RhdGVzLCBkaWFnLmRiLCB0cnVlKTtcbiAgbGV0IHNhbmRib3hFbGVtZW50O1xuICBpZiAoc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIpIHtcbiAgICBzYW5kYm94RWxlbWVudCA9IHNlbGVjdChcIiNpXCIgKyBpZCk7XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gc2VsZWN0KHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50LmJvZHkpIDogc2VsZWN0KFwiYm9keVwiKTtcbiAgY29uc3Qgc3ZnID0gcm9vdC5zZWxlY3QoYFtpZD1cIiR7aWR9XCJdYCk7XG4gIGNvbnN0IGVsZW1lbnQgPSByb290LnNlbGVjdChcIiNcIiArIGlkICsgXCIgZ1wiKTtcbiAgYXdhaXQgcmVuZGVyKGVsZW1lbnQsIGcsIFtcImJhcmJcIl0sIENTU19ESUFHUkFNLCBpZCk7XG4gIGNvbnN0IHBhZGRpbmcgPSA4O1xuICB1dGlscy5pbnNlcnRUaXRsZShzdmcsIFwic3RhdGVkaWFncmFtVGl0bGVUZXh0XCIsIGNvbmYudGl0bGVUb3BNYXJnaW4sIGRpYWcuZGIuZ2V0RGlhZ3JhbVRpdGxlKCkpO1xuICBjb25zdCBib3VuZHMgPSBzdmcubm9kZSgpLmdldEJCb3goKTtcbiAgY29uc3Qgd2lkdGggPSBib3VuZHMud2lkdGggKyBwYWRkaW5nICogMjtcbiAgY29uc3QgaGVpZ2h0ID0gYm91bmRzLmhlaWdodCArIHBhZGRpbmcgKiAyO1xuICBzdmcuYXR0cihcImNsYXNzXCIsIENTU19ESUFHUkFNKTtcbiAgY29uc3Qgc3ZnQm91bmRzID0gc3ZnLm5vZGUoKS5nZXRCQm94KCk7XG4gIGNvbmZpZ3VyZVN2Z1NpemUoc3ZnLCBoZWlnaHQsIHdpZHRoLCBjb25mLnVzZU1heFdpZHRoKTtcbiAgY29uc3QgdkJveCA9IGAke3N2Z0JvdW5kcy54IC0gcGFkZGluZ30gJHtzdmdCb3VuZHMueSAtIHBhZGRpbmd9ICR7d2lkdGh9ICR7aGVpZ2h0fWA7XG4gIGxvZy5kZWJ1Zyhgdmlld0JveCAke3ZCb3h9YCk7XG4gIHN2Zy5hdHRyKFwidmlld0JveFwiLCB2Qm94KTtcbiAgY29uc3QgbGFiZWxzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2lkPVwiJyArIGlkICsgJ1wiXSAuZWRnZUxhYmVsIC5sYWJlbCcpO1xuICBmb3IgKGNvbnN0IGxhYmVsIG9mIGxhYmVscykge1xuICAgIGNvbnN0IGRpbSA9IGxhYmVsLmdldEJCb3goKTtcbiAgICBjb25zdCByZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgU0hBUEVfU1RBVEUpO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwicnhcIiwgMCk7XG4gICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJyeVwiLCAwKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGRpbS53aWR0aCk7XG4gICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIiwgZGltLmhlaWdodCk7XG4gICAgbGFiZWwuaW5zZXJ0QmVmb3JlKHJlY3QsIGxhYmVsLmZpcnN0Q2hpbGQpO1xuICB9XG59O1xuY29uc3QgcmVuZGVyZXIgPSB7XG4gIHNldENvbmYsXG4gIGdldENsYXNzZXMsXG4gIGRyYXdcbn07XG5jb25zdCBkaWFncmFtID0ge1xuICBwYXJzZXIsXG4gIGRiLFxuICByZW5kZXJlcixcbiAgc3R5bGVzLFxuICBpbml0OiAoY25mKSA9PiB7XG4gICAgaWYgKCFjbmYuc3RhdGUpIHtcbiAgICAgIGNuZi5zdGF0ZSA9IHt9O1xuICAgIH1cbiAgICBjbmYuc3RhdGUuYXJyb3dNYXJrZXJBYnNvbHV0ZSA9IGNuZi5hcnJvd01hcmtlckFic29sdXRlO1xuICAgIGRiLmNsZWFyKCk7XG4gIH1cbn07XG5leHBvcnQge1xuICBkaWFncmFtXG59O1xuIiwKICAgICJpbXBvcnQgeyBjIGFzIGdldENvbmZpZywgcSBhcyBzZXREaWFncmFtVGl0bGUsIHQgYXMgZ2V0RGlhZ3JhbVRpdGxlLCBzIGFzIHNldEFjY1RpdGxlLCBnIGFzIGdldEFjY1RpdGxlLCBiIGFzIHNldEFjY0Rlc2NyaXB0aW9uLCBhIGFzIGdldEFjY0Rlc2NyaXB0aW9uLCB2IGFzIGNsZWFyJDEsIGkgYXMgY29uZmlndXJlU3ZnU2l6ZSB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmltcG9ydCB7IGFyYywgc2VsZWN0IH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgeyBkIGFzIGRyYXdSZWN0JDEsIGYgYXMgZHJhd1RleHQkMSwgYSBhcyBkcmF3QmFja2dyb3VuZFJlY3QkMSwgZyBhcyBnZXROb3RlUmVjdCB9IGZyb20gXCIuL3N2Z0RyYXdDb21tb24tNWUxY2ZkMWQuanNcIjtcbmltcG9ydCBcInRzLWRlZGVudFwiO1xuaW1wb3J0IFwiZGF5anNcIjtcbmltcG9ydCBcIkBicmFpbnRyZWUvc2FuaXRpemUtdXJsXCI7XG5pbXBvcnQgXCJkb21wdXJpZnlcIjtcbmltcG9ydCBcImtocm9tYVwiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lbW9pemUuanNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZXJnZS5qc1wiO1xuaW1wb3J0IFwic3R5bGlzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvaXNFbXB0eS5qc1wiO1xudmFyIHBhcnNlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgbyA9IGZ1bmN0aW9uKGssIHYsIG8yLCBsKSB7XG4gICAgZm9yIChvMiA9IG8yIHx8IHt9LCBsID0gay5sZW5ndGg7IGwtLTsgbzJba1tsXV0gPSB2KVxuICAgICAgO1xuICAgIHJldHVybiBvMjtcbiAgfSwgJFYwID0gWzYsIDgsIDEwLCAxMSwgMTIsIDE0LCAxNiwgMTcsIDE4XSwgJFYxID0gWzEsIDldLCAkVjIgPSBbMSwgMTBdLCAkVjMgPSBbMSwgMTFdLCAkVjQgPSBbMSwgMTJdLCAkVjUgPSBbMSwgMTNdLCAkVjYgPSBbMSwgMTRdO1xuICB2YXIgcGFyc2VyMiA9IHtcbiAgICB0cmFjZTogZnVuY3Rpb24gdHJhY2UoKSB7XG4gICAgfSxcbiAgICB5eToge30sXG4gICAgc3ltYm9sc186IHsgXCJlcnJvclwiOiAyLCBcInN0YXJ0XCI6IDMsIFwiam91cm5leVwiOiA0LCBcImRvY3VtZW50XCI6IDUsIFwiRU9GXCI6IDYsIFwibGluZVwiOiA3LCBcIlNQQUNFXCI6IDgsIFwic3RhdGVtZW50XCI6IDksIFwiTkVXTElORVwiOiAxMCwgXCJ0aXRsZVwiOiAxMSwgXCJhY2NfdGl0bGVcIjogMTIsIFwiYWNjX3RpdGxlX3ZhbHVlXCI6IDEzLCBcImFjY19kZXNjclwiOiAxNCwgXCJhY2NfZGVzY3JfdmFsdWVcIjogMTUsIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiOiAxNiwgXCJzZWN0aW9uXCI6IDE3LCBcInRhc2tOYW1lXCI6IDE4LCBcInRhc2tEYXRhXCI6IDE5LCBcIiRhY2NlcHRcIjogMCwgXCIkZW5kXCI6IDEgfSxcbiAgICB0ZXJtaW5hbHNfOiB7IDI6IFwiZXJyb3JcIiwgNDogXCJqb3VybmV5XCIsIDY6IFwiRU9GXCIsIDg6IFwiU1BBQ0VcIiwgMTA6IFwiTkVXTElORVwiLCAxMTogXCJ0aXRsZVwiLCAxMjogXCJhY2NfdGl0bGVcIiwgMTM6IFwiYWNjX3RpdGxlX3ZhbHVlXCIsIDE0OiBcImFjY19kZXNjclwiLCAxNTogXCJhY2NfZGVzY3JfdmFsdWVcIiwgMTY6IFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiLCAxNzogXCJzZWN0aW9uXCIsIDE4OiBcInRhc2tOYW1lXCIsIDE5OiBcInRhc2tEYXRhXCIgfSxcbiAgICBwcm9kdWN0aW9uc186IFswLCBbMywgM10sIFs1LCAwXSwgWzUsIDJdLCBbNywgMl0sIFs3LCAxXSwgWzcsIDFdLCBbNywgMV0sIFs5LCAxXSwgWzksIDJdLCBbOSwgMl0sIFs5LCAxXSwgWzksIDFdLCBbOSwgMl1dLFxuICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eXRleHQsIHl5bGVuZywgeXlsaW5lbm8sIHl5LCB5eXN0YXRlLCAkJCwgXyQpIHtcbiAgICAgIHZhciAkMCA9ICQkLmxlbmd0aCAtIDE7XG4gICAgICBzd2l0Y2ggKHl5c3RhdGUpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiAkJFskMCAtIDFdO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgdGhpcy4kID0gW107XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAkJFskMCAtIDFdLnB1c2goJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMCAtIDFdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgIHRoaXMuJCA9IFtdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgeXkuc2V0RGlhZ3JhbVRpdGxlKCQkWyQwXS5zdWJzdHIoNikpO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXS5zdWJzdHIoNik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0udHJpbSgpO1xuICAgICAgICAgIHl5LnNldEFjY1RpdGxlKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5zZXRBY2NEZXNjcmlwdGlvbih0aGlzLiQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIHl5LmFkZFNlY3Rpb24oJCRbJDBdLnN1YnN0cig4KSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnN1YnN0cig4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICB5eS5hZGRUYXNrKCQkWyQwIC0gMV0sICQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gXCJ0YXNrXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSxcbiAgICB0YWJsZTogW3sgMzogMSwgNDogWzEsIDJdIH0sIHsgMTogWzNdIH0sIG8oJFYwLCBbMiwgMl0sIHsgNTogMyB9KSwgeyA2OiBbMSwgNF0sIDc6IDUsIDg6IFsxLCA2XSwgOTogNywgMTA6IFsxLCA4XSwgMTE6ICRWMSwgMTI6ICRWMiwgMTQ6ICRWMywgMTY6ICRWNCwgMTc6ICRWNSwgMTg6ICRWNiB9LCBvKCRWMCwgWzIsIDddLCB7IDE6IFsyLCAxXSB9KSwgbygkVjAsIFsyLCAzXSksIHsgOTogMTUsIDExOiAkVjEsIDEyOiAkVjIsIDE0OiAkVjMsIDE2OiAkVjQsIDE3OiAkVjUsIDE4OiAkVjYgfSwgbygkVjAsIFsyLCA1XSksIG8oJFYwLCBbMiwgNl0pLCBvKCRWMCwgWzIsIDhdKSwgeyAxMzogWzEsIDE2XSB9LCB7IDE1OiBbMSwgMTddIH0sIG8oJFYwLCBbMiwgMTFdKSwgbygkVjAsIFsyLCAxMl0pLCB7IDE5OiBbMSwgMThdIH0sIG8oJFYwLCBbMiwgNF0pLCBvKCRWMCwgWzIsIDldKSwgbygkVjAsIFsyLCAxMF0pLCBvKCRWMCwgWzIsIDEzXSldLFxuICAgIGRlZmF1bHRBY3Rpb25zOiB7fSxcbiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgaWYgKGhhc2gucmVjb3ZlcmFibGUpIHtcbiAgICAgICAgdGhpcy50cmFjZShzdHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKHN0cik7XG4gICAgICAgIGVycm9yLmhhc2ggPSBoYXNoO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzLCBzdGFjayA9IFswXSwgdHN0YWNrID0gW10sIHZzdGFjayA9IFtudWxsXSwgbHN0YWNrID0gW10sIHRhYmxlID0gdGhpcy50YWJsZSwgeXl0ZXh0ID0gXCJcIiwgeXlsaW5lbm8gPSAwLCB5eWxlbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxO1xuICAgICAgdmFyIGFyZ3MgPSBsc3RhY2suc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGxleGVyMiA9IE9iamVjdC5jcmVhdGUodGhpcy5sZXhlcik7XG4gICAgICB2YXIgc2hhcmVkU3RhdGUgPSB7IHl5OiB7fSB9O1xuICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnl5KSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHtcbiAgICAgICAgICBzaGFyZWRTdGF0ZS55eVtrXSA9IHRoaXMueXlba107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxleGVyMi5zZXRJbnB1dChpbnB1dCwgc2hhcmVkU3RhdGUueXkpO1xuICAgICAgc2hhcmVkU3RhdGUueXkubGV4ZXIgPSBsZXhlcjI7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5wYXJzZXIgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBsZXhlcjIueXlsbG9jID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbGV4ZXIyLnl5bGxvYyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICAgIHZhciByYW5nZXMgPSBsZXhlcjIub3B0aW9ucyAmJiBsZXhlcjIub3B0aW9ucy5yYW5nZXM7XG4gICAgICBpZiAodHlwZW9mIHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCkgfHwgbGV4ZXIyLmxleCgpIHx8IEVPRjtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB0c3RhY2sgPSB0b2tlbjtcbiAgICAgICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0b2tlbiA9IHNlbGYuc3ltYm9sc19bdG9rZW5dIHx8IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cbiAgICAgIHZhciBzeW1ib2wsIHN0YXRlLCBhY3Rpb24sIHIsIHl5dmFsID0ge30sIHAsIGxlbiwgbmV3U3RhdGUsIGV4cGVjdGVkO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgc3RhdGUgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdKSB7XG4gICAgICAgICAgYWN0aW9uID0gdGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHN5bWJvbCA9PT0gbnVsbCB8fCB0eXBlb2Ygc3ltYm9sID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHN5bWJvbCA9IGxleCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhY3Rpb24gPSB0YWJsZVtzdGF0ZV0gJiYgdGFibGVbc3RhdGVdW3N5bWJvbF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09IFwidW5kZWZpbmVkXCIgfHwgIWFjdGlvbi5sZW5ndGggfHwgIWFjdGlvblswXSkge1xuICAgICAgICAgIHZhciBlcnJTdHIgPSBcIlwiO1xuICAgICAgICAgIGV4cGVjdGVkID0gW107XG4gICAgICAgICAgZm9yIChwIGluIHRhYmxlW3N0YXRlXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGVybWluYWxzX1twXSAmJiBwID4gVEVSUk9SKSB7XG4gICAgICAgICAgICAgIGV4cGVjdGVkLnB1c2goXCInXCIgKyB0aGlzLnRlcm1pbmFsc19bcF0gKyBcIidcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsZXhlcjIuc2hvd1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOlxcblwiICsgbGV4ZXIyLnNob3dQb3NpdGlvbigpICsgXCJcXG5FeHBlY3RpbmcgXCIgKyBleHBlY3RlZC5qb2luKFwiLCBcIikgKyBcIiwgZ290ICdcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6IFVuZXhwZWN0ZWQgXCIgKyAoc3ltYm9sID09IEVPRiA/IFwiZW5kIG9mIGlucHV0XCIgOiBcIidcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnBhcnNlRXJyb3IoZXJyU3RyLCB7XG4gICAgICAgICAgICB0ZXh0OiBsZXhlcjIubWF0Y2gsXG4gICAgICAgICAgICB0b2tlbjogdGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sLFxuICAgICAgICAgICAgbGluZTogbGV4ZXIyLnl5bGluZW5vLFxuICAgICAgICAgICAgbG9jOiB5eWxvYyxcbiAgICAgICAgICAgIGV4cGVjdGVkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblswXSBpbnN0YW5jZW9mIEFycmF5ICYmIGFjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyc2UgRXJyb3I6IG11bHRpcGxlIGFjdGlvbnMgcG9zc2libGUgYXQgc3RhdGU6IFwiICsgc3RhdGUgKyBcIiwgdG9rZW46IFwiICsgc3ltYm9sKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGFjdGlvblswXSkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHN0YWNrLnB1c2goc3ltYm9sKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKGxleGVyMi55eXRleHQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2gobGV4ZXIyLnl5bGxvYyk7XG4gICAgICAgICAgICBzdGFjay5wdXNoKGFjdGlvblsxXSk7XG4gICAgICAgICAgICBzeW1ib2wgPSBudWxsO1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB5eWxlbmcgPSBsZXhlcjIueXlsZW5nO1xuICAgICAgICAgICAgICB5eXRleHQgPSBsZXhlcjIueXl0ZXh0O1xuICAgICAgICAgICAgICB5eWxpbmVubyA9IGxleGVyMi55eWxpbmVubztcbiAgICAgICAgICAgICAgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgbGVuID0gdGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVsxXTtcbiAgICAgICAgICAgIHl5dmFsLiQgPSB2c3RhY2tbdnN0YWNrLmxlbmd0aCAtIGxlbl07XG4gICAgICAgICAgICB5eXZhbC5fJCA9IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyYW5nZXMpIHtcbiAgICAgICAgICAgICAgeXl2YWwuXyQucmFuZ2UgPSBbXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5yYW5nZVswXSxcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLnJhbmdlWzFdXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByID0gdGhpcy5wZXJmb3JtQWN0aW9uLmFwcGx5KHl5dmFsLCBbXG4gICAgICAgICAgICAgIHl5dGV4dCxcbiAgICAgICAgICAgICAgeXlsZW5nLFxuICAgICAgICAgICAgICB5eWxpbmVubyxcbiAgICAgICAgICAgICAgc2hhcmVkU3RhdGUueXksXG4gICAgICAgICAgICAgIGFjdGlvblsxXSxcbiAgICAgICAgICAgICAgdnN0YWNrLFxuICAgICAgICAgICAgICBsc3RhY2tcbiAgICAgICAgICAgIF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZW4pIHtcbiAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZSgwLCAtMSAqIGxlbiAqIDIpO1xuICAgICAgICAgICAgICB2c3RhY2sgPSB2c3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgICBsc3RhY2sgPSBsc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhY2sucHVzaCh0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzBdKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKHl5dmFsLiQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2goeXl2YWwuXyQpO1xuICAgICAgICAgICAgbmV3U3RhdGUgPSB0YWJsZVtzdGFja1tzdGFjay5sZW5ndGggLSAyXV1bc3RhY2tbc3RhY2subGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgc3RhY2sucHVzaChuZXdTdGF0ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9O1xuICB2YXIgbGV4ZXIgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGV4ZXIyID0ge1xuICAgICAgRU9GOiAxLFxuICAgICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgICAgaWYgKHRoaXMueXkucGFyc2VyKSB7XG4gICAgICAgICAgdGhpcy55eS5wYXJzZXIucGFyc2VFcnJvcihzdHIsIGhhc2gpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmVzZXRzIHRoZSBsZXhlciwgc2V0cyBuZXcgaW5wdXRcbiAgICAgIHNldElucHV0OiBmdW5jdGlvbihpbnB1dCwgeXkpIHtcbiAgICAgICAgdGhpcy55eSA9IHl5IHx8IHRoaXMueXkgfHwge307XG4gICAgICAgIHRoaXMuX2lucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0aGlzLl9iYWNrdHJhY2sgPSB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy55eWxpbmVubyA9IHRoaXMueXlsZW5nID0gMDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjayA9IFtcIklOSVRJQUxcIl07XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiAwLFxuICAgICAgICAgIGxhc3RfbGluZTogMSxcbiAgICAgICAgICBsYXN0X2NvbHVtbjogMFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gWzAsIDBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gY29uc3VtZXMgYW5kIHJldHVybnMgb25lIGNoYXIgZnJvbSB0aGUgaW5wdXRcbiAgICAgIGlucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGNoID0gdGhpcy5faW5wdXRbMF07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IGNoO1xuICAgICAgICB0aGlzLnl5bGVuZysrO1xuICAgICAgICB0aGlzLm9mZnNldCsrO1xuICAgICAgICB0aGlzLm1hdGNoICs9IGNoO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gY2g7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubysrO1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfbGluZSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfY29sdW1uKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZVsxXSsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UoMSk7XG4gICAgICAgIHJldHVybiBjaDtcbiAgICAgIH0sXG4gICAgICAvLyB1bnNoaWZ0cyBvbmUgY2hhciAob3IgYSBzdHJpbmcpIGludG8gdGhlIGlucHV0XG4gICAgICB1bnB1dDogZnVuY3Rpb24oY2gpIHtcbiAgICAgICAgdmFyIGxlbiA9IGNoLmxlbmd0aDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBjaCArIHRoaXMuX2lucHV0O1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMueXl0ZXh0LnN1YnN0cigwLCB0aGlzLnl5dGV4dC5sZW5ndGggLSBsZW4pO1xuICAgICAgICB0aGlzLm9mZnNldCAtPSBsZW47XG4gICAgICAgIHZhciBvbGRMaW5lcyA9IHRoaXMubWF0Y2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5tYXRjaCA9IHRoaXMubWF0Y2guc3Vic3RyKDAsIHRoaXMubWF0Y2gubGVuZ3RoIC0gMSk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIDEpO1xuICAgICAgICBpZiAobGluZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gLT0gbGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgciA9IHRoaXMueXlsbG9jLnJhbmdlO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gKGxpbmVzLmxlbmd0aCA9PT0gb2xkTGluZXMubGVuZ3RoID8gdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIDogMCkgKyBvbGRMaW5lc1tvbGRMaW5lcy5sZW5ndGggLSBsaW5lcy5sZW5ndGhdLmxlbmd0aCAtIGxpbmVzWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiAtIGxlblxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3JbMF0sIHJbMF0gKyB0aGlzLnl5bGVuZyAtIGxlbl07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBjYWNoZXMgbWF0Y2hlZCB0ZXh0IGFuZCBhcHBlbmRzIGl0IG9uIG5leHQgYWN0aW9uXG4gICAgICBtb3JlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBzaWduYWxzIHRoZSBsZXhlciB0aGF0IHRoaXMgcnVsZSBmYWlscyB0byBtYXRjaCB0aGUgaW5wdXQsIHNvIHRoZSBuZXh0IG1hdGNoaW5nIHJ1bGUgKHJlZ2V4KSBzaG91bGQgYmUgdGVzdGVkIGluc3RlYWQuXG4gICAgICByZWplY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gWW91IGNhbiBvbmx5IGludm9rZSByZWplY3QoKSBpbiB0aGUgbGV4ZXIgd2hlbiB0aGUgbGV4ZXIgaXMgb2YgdGhlIGJhY2t0cmFja2luZyBwZXJzdWFzaW9uIChvcHRpb25zLmJhY2t0cmFja19sZXhlciA9IHRydWUpLlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIHJldGFpbiBmaXJzdCBuIGNoYXJhY3RlcnMgb2YgdGhlIG1hdGNoXG4gICAgICBsZXNzOiBmdW5jdGlvbihuKSB7XG4gICAgICAgIHRoaXMudW5wdXQodGhpcy5tYXRjaC5zbGljZShuKSk7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgYWxyZWFkeSBtYXRjaGVkIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgcGFzdElucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHBhc3QgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSB0aGlzLm1hdGNoLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiAocGFzdC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSArIHBhc3Quc3Vic3RyKC0yMCkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHVwY29taW5nIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgdXBjb21pbmdJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5tYXRjaDtcbiAgICAgICAgaWYgKG5leHQubGVuZ3RoIDwgMjApIHtcbiAgICAgICAgICBuZXh0ICs9IHRoaXMuX2lucHV0LnN1YnN0cigwLCAyMCAtIG5leHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKG5leHQuc3Vic3RyKDAsIDIwKSArIChuZXh0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdGhlIGNoYXJhY3RlciBwb3NpdGlvbiB3aGVyZSB0aGUgbGV4aW5nIGVycm9yIG9jY3VycmVkLCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgc2hvd1Bvc2l0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHByZSA9IHRoaXMucGFzdElucHV0KCk7XG4gICAgICAgIHZhciBjID0gbmV3IEFycmF5KHByZS5sZW5ndGggKyAxKS5qb2luKFwiLVwiKTtcbiAgICAgICAgcmV0dXJuIHByZSArIHRoaXMudXBjb21pbmdJbnB1dCgpICsgXCJcXG5cIiArIGMgKyBcIl5cIjtcbiAgICAgIH0sXG4gICAgICAvLyB0ZXN0IHRoZSBsZXhlZCB0b2tlbjogcmV0dXJuIEZBTFNFIHdoZW4gbm90IGEgbWF0Y2gsIG90aGVyd2lzZSByZXR1cm4gdG9rZW5cbiAgICAgIHRlc3RfbWF0Y2g6IGZ1bmN0aW9uKG1hdGNoLCBpbmRleGVkX3J1bGUpIHtcbiAgICAgICAgdmFyIHRva2VuLCBsaW5lcywgYmFja3VwO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIGJhY2t1cCA9IHtcbiAgICAgICAgICAgIHl5bGluZW5vOiB0aGlzLnl5bGluZW5vLFxuICAgICAgICAgICAgeXlsbG9jOiB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogdGhpcy5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5eXRleHQ6IHRoaXMueXl0ZXh0LFxuICAgICAgICAgICAgbWF0Y2g6IHRoaXMubWF0Y2gsXG4gICAgICAgICAgICBtYXRjaGVzOiB0aGlzLm1hdGNoZXMsXG4gICAgICAgICAgICBtYXRjaGVkOiB0aGlzLm1hdGNoZWQsXG4gICAgICAgICAgICB5eWxlbmc6IHRoaXMueXlsZW5nLFxuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgIF9tb3JlOiB0aGlzLl9tb3JlLFxuICAgICAgICAgICAgX2lucHV0OiB0aGlzLl9pbnB1dCxcbiAgICAgICAgICAgIHl5OiB0aGlzLnl5LFxuICAgICAgICAgICAgY29uZGl0aW9uU3RhY2s6IHRoaXMuY29uZGl0aW9uU3RhY2suc2xpY2UoMCksXG4gICAgICAgICAgICBkb25lOiB0aGlzLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgICBiYWNrdXAueXlsbG9jLnJhbmdlID0gdGhpcy55eWxsb2MucmFuZ2Uuc2xpY2UoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxpbmVzID0gbWF0Y2hbMF0ubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5sYXN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLm1hdGNoKC9cXHI/XFxuPy8pWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uICsgbWF0Y2hbMF0ubGVuZ3RoXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoZXMgPSBtYXRjaDtcbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbdGhpcy5vZmZzZXQsIHRoaXMub2Zmc2V0ICs9IHRoaXMueXlsZW5nXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tb3JlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBtYXRjaFswXTtcbiAgICAgICAgdG9rZW4gPSB0aGlzLnBlcmZvcm1BY3Rpb24uY2FsbCh0aGlzLCB0aGlzLnl5LCB0aGlzLCBpbmRleGVkX3J1bGUsIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSk7XG4gICAgICAgIGlmICh0aGlzLmRvbmUgJiYgdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgZm9yICh2YXIgayBpbiBiYWNrdXApIHtcbiAgICAgICAgICAgIHRoaXNba10gPSBiYWNrdXBba107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggaW4gaW5wdXRcbiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b2tlbiwgbWF0Y2gsIHRlbXBNYXRjaCwgaW5kZXg7XG4gICAgICAgIGlmICghdGhpcy5fbW9yZSkge1xuICAgICAgICAgIHRoaXMueXl0ZXh0ID0gXCJcIjtcbiAgICAgICAgICB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcnVsZXMgPSB0aGlzLl9jdXJyZW50UnVsZXMoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRlbXBNYXRjaCA9IHRoaXMuX2lucHV0Lm1hdGNoKHRoaXMucnVsZXNbcnVsZXNbaV1dKTtcbiAgICAgICAgICBpZiAodGVtcE1hdGNoICYmICghbWF0Y2ggfHwgdGVtcE1hdGNoWzBdLmxlbmd0aCA+IG1hdGNoWzBdLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIG1hdGNoID0gdGVtcE1hdGNoO1xuICAgICAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2godGVtcE1hdGNoLCBydWxlc1tpXSk7XG4gICAgICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3B0aW9ucy5mbGV4KSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaChtYXRjaCwgcnVsZXNbaW5kZXhdKTtcbiAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faW5wdXQgPT09IFwiXCIpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gVW5yZWNvZ25pemVkIHRleHQuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCB0aGF0IGhhcyBhIHRva2VuXG4gICAgICBsZXg6IGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLm5leHQoKTtcbiAgICAgICAgaWYgKHIpIHtcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sZXgoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFjdGl2YXRlcyBhIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgKHB1c2hlcyB0aGUgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvbnRvIHRoZSBjb25kaXRpb24gc3RhY2spXG4gICAgICBiZWdpbjogZnVuY3Rpb24gYmVnaW4oY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sucHVzaChjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHBvcCB0aGUgcHJldmlvdXNseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9mZiB0aGUgY29uZGl0aW9uIHN0YWNrXG4gICAgICBwb3BTdGF0ZTogZnVuY3Rpb24gcG9wU3RhdGUoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxO1xuICAgICAgICBpZiAobiA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5wb3AoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1swXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHByb2R1Y2UgdGhlIGxleGVyIHJ1bGUgc2V0IHdoaWNoIGlzIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlXG4gICAgICBfY3VycmVudFJ1bGVzOiBmdW5jdGlvbiBfY3VycmVudFJ1bGVzKCkge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggJiYgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1t0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV1dLnJ1bGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbXCJJTklUSUFMXCJdLnJ1bGVzO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZTsgd2hlbiBhbiBpbmRleCBhcmd1bWVudCBpcyBwcm92aWRlZCBpdCBwcm9kdWNlcyB0aGUgTi10aCBwcmV2aW91cyBjb25kaXRpb24gc3RhdGUsIGlmIGF2YWlsYWJsZVxuICAgICAgdG9wU3RhdGU6IGZ1bmN0aW9uIHRvcFN0YXRlKG4pIHtcbiAgICAgICAgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMSAtIE1hdGguYWJzKG4gfHwgMCk7XG4gICAgICAgIGlmIChuID49IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1tuXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gXCJJTklUSUFMXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhbGlhcyBmb3IgYmVnaW4oY29uZGl0aW9uKVxuICAgICAgcHVzaFN0YXRlOiBmdW5jdGlvbiBwdXNoU3RhdGUoY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuYmVnaW4oY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0ZXMgY3VycmVudGx5IG9uIHRoZSBzdGFja1xuICAgICAgc3RhdGVTdGFja1NpemU6IGZ1bmN0aW9uIHN0YXRlU3RhY2tTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgb3B0aW9uczogeyBcImNhc2UtaW5zZW5zaXRpdmVcIjogdHJ1ZSB9LFxuICAgICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5LCB5eV8sICRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMsIFlZX1NUQVJUKSB7XG4gICAgICAgIHN3aXRjaCAoJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucykge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiAxMDtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICByZXR1cm4gMTE7XG4gICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY190aXRsZVwiKTtcbiAgICAgICAgICAgIHJldHVybiAxMjtcbiAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfdGl0bGVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiYWNjX2Rlc2NyXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE0O1xuICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjcl9tdWx0aWxpbmVcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjcl9tdWx0aWxpbmVfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDE0OlxuICAgICAgICAgICAgcmV0dXJuIDE3O1xuICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgICByZXR1cm4gMTg7XG4gICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgIHJldHVybiAxOTtcbiAgICAgICAgICBjYXNlIDE3OlxuICAgICAgICAgICAgcmV0dXJuIFwiOlwiO1xuICAgICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgICByZXR1cm4gNjtcbiAgICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgICAgcmV0dXJuIFwiSU5WQUxJRFwiO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcnVsZXM6IFsvXig/OiUoPyFcXHspW15cXG5dKikvaSwgL14oPzpbXlxcfV0lJVteXFxuXSopL2ksIC9eKD86W1xcbl0rKS9pLCAvXig/OlxccyspL2ksIC9eKD86I1teXFxuXSopL2ksIC9eKD86am91cm5leVxcYikvaSwgL14oPzp0aXRsZVxcc1teI1xcbjtdKykvaSwgL14oPzphY2NUaXRsZVxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccypcXHtcXHMqKS9pLCAvXig/OltcXH1dKS9pLCAvXig/OlteXFx9XSopL2ksIC9eKD86c2VjdGlvblxcc1teIzpcXG47XSspL2ksIC9eKD86W14jOlxcbjtdKykvaSwgL14oPzo6W14jXFxuO10rKS9pLCAvXig/OjopL2ksIC9eKD86JCkvaSwgL14oPzouKS9pXSxcbiAgICAgIGNvbmRpdGlvbnM6IHsgXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCI6IHsgXCJydWxlc1wiOiBbMTIsIDEzXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfZGVzY3JcIjogeyBcInJ1bGVzXCI6IFsxMF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX3RpdGxlXCI6IHsgXCJydWxlc1wiOiBbOF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiSU5JVElBTFwiOiB7IFwicnVsZXNcIjogWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDksIDExLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5XSwgXCJpbmNsdXNpdmVcIjogdHJ1ZSB9IH1cbiAgICB9O1xuICAgIHJldHVybiBsZXhlcjI7XG4gIH0oKTtcbiAgcGFyc2VyMi5sZXhlciA9IGxleGVyO1xuICBmdW5jdGlvbiBQYXJzZXIoKSB7XG4gICAgdGhpcy55eSA9IHt9O1xuICB9XG4gIFBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXIyO1xuICBwYXJzZXIyLlBhcnNlciA9IFBhcnNlcjtcbiAgcmV0dXJuIG5ldyBQYXJzZXIoKTtcbn0oKTtcbnBhcnNlci5wYXJzZXIgPSBwYXJzZXI7XG5jb25zdCBwYXJzZXIkMSA9IHBhcnNlcjtcbmxldCBjdXJyZW50U2VjdGlvbiA9IFwiXCI7XG5jb25zdCBzZWN0aW9ucyA9IFtdO1xuY29uc3QgdGFza3MgPSBbXTtcbmNvbnN0IHJhd1Rhc2tzID0gW107XG5jb25zdCBjbGVhciA9IGZ1bmN0aW9uKCkge1xuICBzZWN0aW9ucy5sZW5ndGggPSAwO1xuICB0YXNrcy5sZW5ndGggPSAwO1xuICBjdXJyZW50U2VjdGlvbiA9IFwiXCI7XG4gIHJhd1Rhc2tzLmxlbmd0aCA9IDA7XG4gIGNsZWFyJDEoKTtcbn07XG5jb25zdCBhZGRTZWN0aW9uID0gZnVuY3Rpb24odHh0KSB7XG4gIGN1cnJlbnRTZWN0aW9uID0gdHh0O1xuICBzZWN0aW9ucy5wdXNoKHR4dCk7XG59O1xuY29uc3QgZ2V0U2VjdGlvbnMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHNlY3Rpb25zO1xufTtcbmNvbnN0IGdldFRhc2tzID0gZnVuY3Rpb24oKSB7XG4gIGxldCBhbGxJdGVtc1Byb2Nlc3NlZCA9IGNvbXBpbGVUYXNrcygpO1xuICBjb25zdCBtYXhEZXB0aCA9IDEwMDtcbiAgbGV0IGl0ZXJhdGlvbkNvdW50ID0gMDtcbiAgd2hpbGUgKCFhbGxJdGVtc1Byb2Nlc3NlZCAmJiBpdGVyYXRpb25Db3VudCA8IG1heERlcHRoKSB7XG4gICAgYWxsSXRlbXNQcm9jZXNzZWQgPSBjb21waWxlVGFza3MoKTtcbiAgICBpdGVyYXRpb25Db3VudCsrO1xuICB9XG4gIHRhc2tzLnB1c2goLi4ucmF3VGFza3MpO1xuICByZXR1cm4gdGFza3M7XG59O1xuY29uc3QgdXBkYXRlQWN0b3JzID0gZnVuY3Rpb24oKSB7XG4gIGNvbnN0IHRlbXBBY3RvcnMgPSBbXTtcbiAgdGFza3MuZm9yRWFjaCgodGFzaykgPT4ge1xuICAgIGlmICh0YXNrLnBlb3BsZSkge1xuICAgICAgdGVtcEFjdG9ycy5wdXNoKC4uLnRhc2sucGVvcGxlKTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCB1bmlxdWUgPSBuZXcgU2V0KHRlbXBBY3RvcnMpO1xuICByZXR1cm4gWy4uLnVuaXF1ZV0uc29ydCgpO1xufTtcbmNvbnN0IGFkZFRhc2sgPSBmdW5jdGlvbihkZXNjciwgdGFza0RhdGEpIHtcbiAgY29uc3QgcGllY2VzID0gdGFza0RhdGEuc3Vic3RyKDEpLnNwbGl0KFwiOlwiKTtcbiAgbGV0IHNjb3JlID0gMDtcbiAgbGV0IHBlZXBzID0gW107XG4gIGlmIChwaWVjZXMubGVuZ3RoID09PSAxKSB7XG4gICAgc2NvcmUgPSBOdW1iZXIocGllY2VzWzBdKTtcbiAgICBwZWVwcyA9IFtdO1xuICB9IGVsc2Uge1xuICAgIHNjb3JlID0gTnVtYmVyKHBpZWNlc1swXSk7XG4gICAgcGVlcHMgPSBwaWVjZXNbMV0uc3BsaXQoXCIsXCIpO1xuICB9XG4gIGNvbnN0IHBlb3BsZUxpc3QgPSBwZWVwcy5tYXAoKHMpID0+IHMudHJpbSgpKTtcbiAgY29uc3QgcmF3VGFzayA9IHtcbiAgICBzZWN0aW9uOiBjdXJyZW50U2VjdGlvbixcbiAgICB0eXBlOiBjdXJyZW50U2VjdGlvbixcbiAgICBwZW9wbGU6IHBlb3BsZUxpc3QsXG4gICAgdGFzazogZGVzY3IsXG4gICAgc2NvcmVcbiAgfTtcbiAgcmF3VGFza3MucHVzaChyYXdUYXNrKTtcbn07XG5jb25zdCBhZGRUYXNrT3JnID0gZnVuY3Rpb24oZGVzY3IpIHtcbiAgY29uc3QgbmV3VGFzayA9IHtcbiAgICBzZWN0aW9uOiBjdXJyZW50U2VjdGlvbixcbiAgICB0eXBlOiBjdXJyZW50U2VjdGlvbixcbiAgICBkZXNjcmlwdGlvbjogZGVzY3IsXG4gICAgdGFzazogZGVzY3IsXG4gICAgY2xhc3NlczogW11cbiAgfTtcbiAgdGFza3MucHVzaChuZXdUYXNrKTtcbn07XG5jb25zdCBjb21waWxlVGFza3MgPSBmdW5jdGlvbigpIHtcbiAgY29uc3QgY29tcGlsZVRhc2sgPSBmdW5jdGlvbihwb3MpIHtcbiAgICByZXR1cm4gcmF3VGFza3NbcG9zXS5wcm9jZXNzZWQ7XG4gIH07XG4gIGxldCBhbGxQcm9jZXNzZWQgPSB0cnVlO1xuICBmb3IgKGNvbnN0IFtpLCByYXdUYXNrXSBvZiByYXdUYXNrcy5lbnRyaWVzKCkpIHtcbiAgICBjb21waWxlVGFzayhpKTtcbiAgICBhbGxQcm9jZXNzZWQgPSBhbGxQcm9jZXNzZWQgJiYgcmF3VGFzay5wcm9jZXNzZWQ7XG4gIH1cbiAgcmV0dXJuIGFsbFByb2Nlc3NlZDtcbn07XG5jb25zdCBnZXRBY3RvcnMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHVwZGF0ZUFjdG9ycygpO1xufTtcbmNvbnN0IGRiID0ge1xuICBnZXRDb25maWc6ICgpID0+IGdldENvbmZpZygpLmpvdXJuZXksXG4gIGNsZWFyLFxuICBzZXREaWFncmFtVGl0bGUsXG4gIGdldERpYWdyYW1UaXRsZSxcbiAgc2V0QWNjVGl0bGUsXG4gIGdldEFjY1RpdGxlLFxuICBzZXRBY2NEZXNjcmlwdGlvbixcbiAgZ2V0QWNjRGVzY3JpcHRpb24sXG4gIGFkZFNlY3Rpb24sXG4gIGdldFNlY3Rpb25zLFxuICBnZXRUYXNrcyxcbiAgYWRkVGFzayxcbiAgYWRkVGFza09yZyxcbiAgZ2V0QWN0b3JzXG59O1xuY29uc3QgZ2V0U3R5bGVzID0gKG9wdGlvbnMpID0+IGAubGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiAndHJlYnVjaGV0IG1zJywgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1lcm1haWQtZm9udC1mYW1pbHkpO1xuICAgIGNvbG9yOiAke29wdGlvbnMudGV4dENvbG9yfTtcbiAgfVxuICAubW91dGgge1xuICAgIHN0cm9rZTogIzY2NjtcbiAgfVxuXG4gIGxpbmUge1xuICAgIHN0cm9rZTogJHtvcHRpb25zLnRleHRDb2xvcn1cbiAgfVxuXG4gIC5sZWdlbmQge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50ZXh0Q29sb3J9O1xuICB9XG5cbiAgLmxhYmVsIHRleHQge1xuICAgIGZpbGw6ICMzMzM7XG4gIH1cbiAgLmxhYmVsIHtcbiAgICBjb2xvcjogJHtvcHRpb25zLnRleHRDb2xvcn1cbiAgfVxuXG4gIC5mYWNlIHtcbiAgICAke29wdGlvbnMuZmFjZUNvbG9yID8gYGZpbGw6ICR7b3B0aW9ucy5mYWNlQ29sb3J9YCA6IFwiZmlsbDogI0ZGRjhEQ1wifTtcbiAgICBzdHJva2U6ICM5OTk7XG4gIH1cblxuICAubm9kZSByZWN0LFxuICAubm9kZSBjaXJjbGUsXG4gIC5ub2RlIGVsbGlwc2UsXG4gIC5ub2RlIHBvbHlnb24sXG4gIC5ub2RlIHBhdGgge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5tYWluQmtnfTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5ub2RlQm9yZGVyfTtcbiAgICBzdHJva2Utd2lkdGg6IDFweDtcbiAgfVxuXG4gIC5ub2RlIC5sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5ub2RlLmNsaWNrYWJsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLmFycm93aGVhZFBhdGgge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5hcnJvd2hlYWRDb2xvcn07XG4gIH1cblxuICAuZWRnZVBhdGggLnBhdGgge1xuICAgIHN0cm9rZTogJHtvcHRpb25zLmxpbmVDb2xvcn07XG4gICAgc3Ryb2tlLXdpZHRoOiAxLjVweDtcbiAgfVxuXG4gIC5mbG93Y2hhcnQtbGluayB7XG4gICAgc3Ryb2tlOiAke29wdGlvbnMubGluZUNvbG9yfTtcbiAgICBmaWxsOiBub25lO1xuICB9XG5cbiAgLmVkZ2VMYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtvcHRpb25zLmVkZ2VMYWJlbEJhY2tncm91bmR9O1xuICAgIHJlY3Qge1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuY2x1c3RlciByZWN0IHtcbiAgfVxuXG4gIC5jbHVzdGVyIHRleHQge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50aXRsZUNvbG9yfTtcbiAgfVxuXG4gIGRpdi5tZXJtYWlkVG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBmb250LWZhbWlseTogJ3RyZWJ1Y2hldCBtcycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tZXJtYWlkLWZvbnQtZmFtaWx5KTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYmFja2dyb3VuZDogJHtvcHRpb25zLnRlcnRpYXJ5Q29sb3J9O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7b3B0aW9ucy5ib3JkZXIyfTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTAwO1xuICB9XG5cbiAgLnRhc2stdHlwZS0wLCAuc2VjdGlvbi10eXBlLTAgIHtcbiAgICAke29wdGlvbnMuZmlsbFR5cGUwID8gYGZpbGw6ICR7b3B0aW9ucy5maWxsVHlwZTB9YCA6IFwiXCJ9O1xuICB9XG4gIC50YXNrLXR5cGUtMSwgLnNlY3Rpb24tdHlwZS0xICB7XG4gICAgJHtvcHRpb25zLmZpbGxUeXBlMCA/IGBmaWxsOiAke29wdGlvbnMuZmlsbFR5cGUxfWAgOiBcIlwifTtcbiAgfVxuICAudGFzay10eXBlLTIsIC5zZWN0aW9uLXR5cGUtMiAge1xuICAgICR7b3B0aW9ucy5maWxsVHlwZTAgPyBgZmlsbDogJHtvcHRpb25zLmZpbGxUeXBlMn1gIDogXCJcIn07XG4gIH1cbiAgLnRhc2stdHlwZS0zLCAuc2VjdGlvbi10eXBlLTMgIHtcbiAgICAke29wdGlvbnMuZmlsbFR5cGUwID8gYGZpbGw6ICR7b3B0aW9ucy5maWxsVHlwZTN9YCA6IFwiXCJ9O1xuICB9XG4gIC50YXNrLXR5cGUtNCwgLnNlY3Rpb24tdHlwZS00ICB7XG4gICAgJHtvcHRpb25zLmZpbGxUeXBlMCA/IGBmaWxsOiAke29wdGlvbnMuZmlsbFR5cGU0fWAgOiBcIlwifTtcbiAgfVxuICAudGFzay10eXBlLTUsIC5zZWN0aW9uLXR5cGUtNSAge1xuICAgICR7b3B0aW9ucy5maWxsVHlwZTAgPyBgZmlsbDogJHtvcHRpb25zLmZpbGxUeXBlNX1gIDogXCJcIn07XG4gIH1cbiAgLnRhc2stdHlwZS02LCAuc2VjdGlvbi10eXBlLTYgIHtcbiAgICAke29wdGlvbnMuZmlsbFR5cGUwID8gYGZpbGw6ICR7b3B0aW9ucy5maWxsVHlwZTZ9YCA6IFwiXCJ9O1xuICB9XG4gIC50YXNrLXR5cGUtNywgLnNlY3Rpb24tdHlwZS03ICB7XG4gICAgJHtvcHRpb25zLmZpbGxUeXBlMCA/IGBmaWxsOiAke29wdGlvbnMuZmlsbFR5cGU3fWAgOiBcIlwifTtcbiAgfVxuXG4gIC5hY3Rvci0wIHtcbiAgICAke29wdGlvbnMuYWN0b3IwID8gYGZpbGw6ICR7b3B0aW9ucy5hY3RvcjB9YCA6IFwiXCJ9O1xuICB9XG4gIC5hY3Rvci0xIHtcbiAgICAke29wdGlvbnMuYWN0b3IxID8gYGZpbGw6ICR7b3B0aW9ucy5hY3RvcjF9YCA6IFwiXCJ9O1xuICB9XG4gIC5hY3Rvci0yIHtcbiAgICAke29wdGlvbnMuYWN0b3IyID8gYGZpbGw6ICR7b3B0aW9ucy5hY3RvcjJ9YCA6IFwiXCJ9O1xuICB9XG4gIC5hY3Rvci0zIHtcbiAgICAke29wdGlvbnMuYWN0b3IzID8gYGZpbGw6ICR7b3B0aW9ucy5hY3RvcjN9YCA6IFwiXCJ9O1xuICB9XG4gIC5hY3Rvci00IHtcbiAgICAke29wdGlvbnMuYWN0b3I0ID8gYGZpbGw6ICR7b3B0aW9ucy5hY3RvcjR9YCA6IFwiXCJ9O1xuICB9XG4gIC5hY3Rvci01IHtcbiAgICAke29wdGlvbnMuYWN0b3I1ID8gYGZpbGw6ICR7b3B0aW9ucy5hY3RvcjV9YCA6IFwiXCJ9O1xuICB9XG5gO1xuY29uc3Qgc3R5bGVzID0gZ2V0U3R5bGVzO1xuY29uc3QgZHJhd1JlY3QgPSBmdW5jdGlvbihlbGVtLCByZWN0RGF0YSkge1xuICByZXR1cm4gZHJhd1JlY3QkMShlbGVtLCByZWN0RGF0YSk7XG59O1xuY29uc3QgZHJhd0ZhY2UgPSBmdW5jdGlvbihlbGVtZW50LCBmYWNlRGF0YSkge1xuICBjb25zdCByYWRpdXMgPSAxNTtcbiAgY29uc3QgY2lyY2xlRWxlbWVudCA9IGVsZW1lbnQuYXBwZW5kKFwiY2lyY2xlXCIpLmF0dHIoXCJjeFwiLCBmYWNlRGF0YS5jeCkuYXR0cihcImN5XCIsIGZhY2VEYXRhLmN5KS5hdHRyKFwiY2xhc3NcIiwgXCJmYWNlXCIpLmF0dHIoXCJyXCIsIHJhZGl1cykuYXR0cihcInN0cm9rZS13aWR0aFwiLCAyKS5hdHRyKFwib3ZlcmZsb3dcIiwgXCJ2aXNpYmxlXCIpO1xuICBjb25zdCBmYWNlID0gZWxlbWVudC5hcHBlbmQoXCJnXCIpO1xuICBmYWNlLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwiY3hcIiwgZmFjZURhdGEuY3ggLSByYWRpdXMgLyAzKS5hdHRyKFwiY3lcIiwgZmFjZURhdGEuY3kgLSByYWRpdXMgLyAzKS5hdHRyKFwiclwiLCAxLjUpLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgMikuYXR0cihcImZpbGxcIiwgXCIjNjY2XCIpLmF0dHIoXCJzdHJva2VcIiwgXCIjNjY2XCIpO1xuICBmYWNlLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwiY3hcIiwgZmFjZURhdGEuY3ggKyByYWRpdXMgLyAzKS5hdHRyKFwiY3lcIiwgZmFjZURhdGEuY3kgLSByYWRpdXMgLyAzKS5hdHRyKFwiclwiLCAxLjUpLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgMikuYXR0cihcImZpbGxcIiwgXCIjNjY2XCIpLmF0dHIoXCJzdHJva2VcIiwgXCIjNjY2XCIpO1xuICBmdW5jdGlvbiBzbWlsZShmYWNlMikge1xuICAgIGNvbnN0IGFyYyQxID0gYXJjKCkuc3RhcnRBbmdsZShNYXRoLlBJIC8gMikuZW5kQW5nbGUoMyAqIChNYXRoLlBJIC8gMikpLmlubmVyUmFkaXVzKHJhZGl1cyAvIDIpLm91dGVyUmFkaXVzKHJhZGl1cyAvIDIuMik7XG4gICAgZmFjZTIuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJtb3V0aFwiKS5hdHRyKFwiZFwiLCBhcmMkMSkuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIGZhY2VEYXRhLmN4ICsgXCIsXCIgKyAoZmFjZURhdGEuY3kgKyAyKSArIFwiKVwiKTtcbiAgfVxuICBmdW5jdGlvbiBzYWQoZmFjZTIpIHtcbiAgICBjb25zdCBhcmMkMSA9IGFyYygpLnN0YXJ0QW5nbGUoMyAqIE1hdGguUEkgLyAyKS5lbmRBbmdsZSg1ICogKE1hdGguUEkgLyAyKSkuaW5uZXJSYWRpdXMocmFkaXVzIC8gMikub3V0ZXJSYWRpdXMocmFkaXVzIC8gMi4yKTtcbiAgICBmYWNlMi5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm1vdXRoXCIpLmF0dHIoXCJkXCIsIGFyYyQxKS5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKFwiICsgZmFjZURhdGEuY3ggKyBcIixcIiArIChmYWNlRGF0YS5jeSArIDcpICsgXCIpXCIpO1xuICB9XG4gIGZ1bmN0aW9uIGFtYml2YWxlbnQoZmFjZTIpIHtcbiAgICBmYWNlMi5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm1vdXRoXCIpLmF0dHIoXCJzdHJva2VcIiwgMikuYXR0cihcIngxXCIsIGZhY2VEYXRhLmN4IC0gNSkuYXR0cihcInkxXCIsIGZhY2VEYXRhLmN5ICsgNykuYXR0cihcIngyXCIsIGZhY2VEYXRhLmN4ICsgNSkuYXR0cihcInkyXCIsIGZhY2VEYXRhLmN5ICsgNykuYXR0cihcImNsYXNzXCIsIFwibW91dGhcIikuYXR0cihcInN0cm9rZS13aWR0aFwiLCBcIjFweFwiKS5hdHRyKFwic3Ryb2tlXCIsIFwiIzY2NlwiKTtcbiAgfVxuICBpZiAoZmFjZURhdGEuc2NvcmUgPiAzKSB7XG4gICAgc21pbGUoZmFjZSk7XG4gIH0gZWxzZSBpZiAoZmFjZURhdGEuc2NvcmUgPCAzKSB7XG4gICAgc2FkKGZhY2UpO1xuICB9IGVsc2Uge1xuICAgIGFtYml2YWxlbnQoZmFjZSk7XG4gIH1cbiAgcmV0dXJuIGNpcmNsZUVsZW1lbnQ7XG59O1xuY29uc3QgZHJhd0NpcmNsZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIGNpcmNsZURhdGEpIHtcbiAgY29uc3QgY2lyY2xlRWxlbWVudCA9IGVsZW1lbnQuYXBwZW5kKFwiY2lyY2xlXCIpO1xuICBjaXJjbGVFbGVtZW50LmF0dHIoXCJjeFwiLCBjaXJjbGVEYXRhLmN4KTtcbiAgY2lyY2xlRWxlbWVudC5hdHRyKFwiY3lcIiwgY2lyY2xlRGF0YS5jeSk7XG4gIGNpcmNsZUVsZW1lbnQuYXR0cihcImNsYXNzXCIsIFwiYWN0b3ItXCIgKyBjaXJjbGVEYXRhLnBvcyk7XG4gIGNpcmNsZUVsZW1lbnQuYXR0cihcImZpbGxcIiwgY2lyY2xlRGF0YS5maWxsKTtcbiAgY2lyY2xlRWxlbWVudC5hdHRyKFwic3Ryb2tlXCIsIGNpcmNsZURhdGEuc3Ryb2tlKTtcbiAgY2lyY2xlRWxlbWVudC5hdHRyKFwiclwiLCBjaXJjbGVEYXRhLnIpO1xuICBpZiAoY2lyY2xlRWxlbWVudC5jbGFzcyAhPT0gdm9pZCAwKSB7XG4gICAgY2lyY2xlRWxlbWVudC5hdHRyKFwiY2xhc3NcIiwgY2lyY2xlRWxlbWVudC5jbGFzcyk7XG4gIH1cbiAgaWYgKGNpcmNsZURhdGEudGl0bGUgIT09IHZvaWQgMCkge1xuICAgIGNpcmNsZUVsZW1lbnQuYXBwZW5kKFwidGl0bGVcIikudGV4dChjaXJjbGVEYXRhLnRpdGxlKTtcbiAgfVxuICByZXR1cm4gY2lyY2xlRWxlbWVudDtcbn07XG5jb25zdCBkcmF3VGV4dCA9IGZ1bmN0aW9uKGVsZW0sIHRleHREYXRhKSB7XG4gIHJldHVybiBkcmF3VGV4dCQxKGVsZW0sIHRleHREYXRhKTtcbn07XG5jb25zdCBkcmF3TGFiZWwgPSBmdW5jdGlvbihlbGVtLCB0eHRPYmplY3QpIHtcbiAgZnVuY3Rpb24gZ2VuUG9pbnRzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGN1dCkge1xuICAgIHJldHVybiB4ICsgXCIsXCIgKyB5ICsgXCIgXCIgKyAoeCArIHdpZHRoKSArIFwiLFwiICsgeSArIFwiIFwiICsgKHggKyB3aWR0aCkgKyBcIixcIiArICh5ICsgaGVpZ2h0IC0gY3V0KSArIFwiIFwiICsgKHggKyB3aWR0aCAtIGN1dCAqIDEuMikgKyBcIixcIiArICh5ICsgaGVpZ2h0KSArIFwiIFwiICsgeCArIFwiLFwiICsgKHkgKyBoZWlnaHQpO1xuICB9XG4gIGNvbnN0IHBvbHlnb24gPSBlbGVtLmFwcGVuZChcInBvbHlnb25cIik7XG4gIHBvbHlnb24uYXR0cihcInBvaW50c1wiLCBnZW5Qb2ludHModHh0T2JqZWN0LngsIHR4dE9iamVjdC55LCA1MCwgMjAsIDcpKTtcbiAgcG9seWdvbi5hdHRyKFwiY2xhc3NcIiwgXCJsYWJlbEJveFwiKTtcbiAgdHh0T2JqZWN0LnkgPSB0eHRPYmplY3QueSArIHR4dE9iamVjdC5sYWJlbE1hcmdpbjtcbiAgdHh0T2JqZWN0LnggPSB0eHRPYmplY3QueCArIDAuNSAqIHR4dE9iamVjdC5sYWJlbE1hcmdpbjtcbiAgZHJhd1RleHQoZWxlbSwgdHh0T2JqZWN0KTtcbn07XG5jb25zdCBkcmF3U2VjdGlvbiA9IGZ1bmN0aW9uKGVsZW0sIHNlY3Rpb24sIGNvbmYyKSB7XG4gIGNvbnN0IGcgPSBlbGVtLmFwcGVuZChcImdcIik7XG4gIGNvbnN0IHJlY3QgPSBnZXROb3RlUmVjdCgpO1xuICByZWN0LnggPSBzZWN0aW9uLng7XG4gIHJlY3QueSA9IHNlY3Rpb24ueTtcbiAgcmVjdC5maWxsID0gc2VjdGlvbi5maWxsO1xuICByZWN0LndpZHRoID0gY29uZjIud2lkdGggKiBzZWN0aW9uLnRhc2tDb3VudCArIC8vIHdpZHRoIG9mIHRoZSB0YXNrc1xuICBjb25mMi5kaWFncmFtTWFyZ2luWCAqIChzZWN0aW9uLnRhc2tDb3VudCAtIDEpO1xuICByZWN0LmhlaWdodCA9IGNvbmYyLmhlaWdodDtcbiAgcmVjdC5jbGFzcyA9IFwiam91cm5leS1zZWN0aW9uIHNlY3Rpb24tdHlwZS1cIiArIHNlY3Rpb24ubnVtO1xuICByZWN0LnJ4ID0gMztcbiAgcmVjdC5yeSA9IDM7XG4gIGRyYXdSZWN0KGcsIHJlY3QpO1xuICBfZHJhd1RleHRDYW5kaWRhdGVGdW5jKGNvbmYyKShcbiAgICBzZWN0aW9uLnRleHQsXG4gICAgZyxcbiAgICByZWN0LngsXG4gICAgcmVjdC55LFxuICAgIHJlY3Qud2lkdGgsXG4gICAgcmVjdC5oZWlnaHQsXG4gICAgeyBjbGFzczogXCJqb3VybmV5LXNlY3Rpb24gc2VjdGlvbi10eXBlLVwiICsgc2VjdGlvbi5udW0gfSxcbiAgICBjb25mMixcbiAgICBzZWN0aW9uLmNvbG91clxuICApO1xufTtcbmxldCB0YXNrQ291bnQgPSAtMTtcbmNvbnN0IGRyYXdUYXNrID0gZnVuY3Rpb24oZWxlbSwgdGFzaywgY29uZjIpIHtcbiAgY29uc3QgY2VudGVyID0gdGFzay54ICsgY29uZjIud2lkdGggLyAyO1xuICBjb25zdCBnID0gZWxlbS5hcHBlbmQoXCJnXCIpO1xuICB0YXNrQ291bnQrKztcbiAgY29uc3QgbWF4SGVpZ2h0ID0gMzAwICsgNSAqIDMwO1xuICBnLmFwcGVuZChcImxpbmVcIikuYXR0cihcImlkXCIsIFwidGFza1wiICsgdGFza0NvdW50KS5hdHRyKFwieDFcIiwgY2VudGVyKS5hdHRyKFwieTFcIiwgdGFzay55KS5hdHRyKFwieDJcIiwgY2VudGVyKS5hdHRyKFwieTJcIiwgbWF4SGVpZ2h0KS5hdHRyKFwiY2xhc3NcIiwgXCJ0YXNrLWxpbmVcIikuYXR0cihcInN0cm9rZS13aWR0aFwiLCBcIjFweFwiKS5hdHRyKFwic3Ryb2tlLWRhc2hhcnJheVwiLCBcIjQgMlwiKS5hdHRyKFwic3Ryb2tlXCIsIFwiIzY2NlwiKTtcbiAgZHJhd0ZhY2UoZywge1xuICAgIGN4OiBjZW50ZXIsXG4gICAgY3k6IDMwMCArICg1IC0gdGFzay5zY29yZSkgKiAzMCxcbiAgICBzY29yZTogdGFzay5zY29yZVxuICB9KTtcbiAgY29uc3QgcmVjdCA9IGdldE5vdGVSZWN0KCk7XG4gIHJlY3QueCA9IHRhc2sueDtcbiAgcmVjdC55ID0gdGFzay55O1xuICByZWN0LmZpbGwgPSB0YXNrLmZpbGw7XG4gIHJlY3Qud2lkdGggPSBjb25mMi53aWR0aDtcbiAgcmVjdC5oZWlnaHQgPSBjb25mMi5oZWlnaHQ7XG4gIHJlY3QuY2xhc3MgPSBcInRhc2sgdGFzay10eXBlLVwiICsgdGFzay5udW07XG4gIHJlY3QucnggPSAzO1xuICByZWN0LnJ5ID0gMztcbiAgZHJhd1JlY3QoZywgcmVjdCk7XG4gIGxldCB4UG9zID0gdGFzay54ICsgMTQ7XG4gIHRhc2sucGVvcGxlLmZvckVhY2goKHBlcnNvbikgPT4ge1xuICAgIGNvbnN0IGNvbG91ciA9IHRhc2suYWN0b3JzW3BlcnNvbl0uY29sb3I7XG4gICAgY29uc3QgY2lyY2xlID0ge1xuICAgICAgY3g6IHhQb3MsXG4gICAgICBjeTogdGFzay55LFxuICAgICAgcjogNyxcbiAgICAgIGZpbGw6IGNvbG91cixcbiAgICAgIHN0cm9rZTogXCIjMDAwXCIsXG4gICAgICB0aXRsZTogcGVyc29uLFxuICAgICAgcG9zOiB0YXNrLmFjdG9yc1twZXJzb25dLnBvc2l0aW9uXG4gICAgfTtcbiAgICBkcmF3Q2lyY2xlKGcsIGNpcmNsZSk7XG4gICAgeFBvcyArPSAxMDtcbiAgfSk7XG4gIF9kcmF3VGV4dENhbmRpZGF0ZUZ1bmMoY29uZjIpKFxuICAgIHRhc2sudGFzayxcbiAgICBnLFxuICAgIHJlY3QueCxcbiAgICByZWN0LnksXG4gICAgcmVjdC53aWR0aCxcbiAgICByZWN0LmhlaWdodCxcbiAgICB7IGNsYXNzOiBcInRhc2tcIiB9LFxuICAgIGNvbmYyLFxuICAgIHRhc2suY29sb3VyXG4gICk7XG59O1xuY29uc3QgZHJhd0JhY2tncm91bmRSZWN0ID0gZnVuY3Rpb24oZWxlbSwgYm91bmRzMikge1xuICBkcmF3QmFja2dyb3VuZFJlY3QkMShlbGVtLCBib3VuZHMyKTtcbn07XG5jb25zdCBfZHJhd1RleHRDYW5kaWRhdGVGdW5jID0gZnVuY3Rpb24oKSB7XG4gIGZ1bmN0aW9uIGJ5VGV4dChjb250ZW50LCBnLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB0ZXh0QXR0cnMsIGNvbG91cikge1xuICAgIGNvbnN0IHRleHQgPSBnLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgeCArIHdpZHRoIC8gMikuYXR0cihcInlcIiwgeSArIGhlaWdodCAvIDIgKyA1KS5zdHlsZShcImZvbnQtY29sb3JcIiwgY29sb3VyKS5zdHlsZShcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpLnRleHQoY29udGVudCk7XG4gICAgX3NldFRleHRBdHRycyh0ZXh0LCB0ZXh0QXR0cnMpO1xuICB9XG4gIGZ1bmN0aW9uIGJ5VHNwYW4oY29udGVudCwgZywgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGV4dEF0dHJzLCBjb25mMiwgY29sb3VyKSB7XG4gICAgY29uc3QgeyB0YXNrRm9udFNpemUsIHRhc2tGb250RmFtaWx5IH0gPSBjb25mMjtcbiAgICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoLzxiclxccypcXC8/Pi9naSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZHkgPSBpICogdGFza0ZvbnRTaXplIC0gdGFza0ZvbnRTaXplICogKGxpbmVzLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgIGNvbnN0IHRleHQgPSBnLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgeCArIHdpZHRoIC8gMikuYXR0cihcInlcIiwgeSkuYXR0cihcImZpbGxcIiwgY29sb3VyKS5zdHlsZShcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpLnN0eWxlKFwiZm9udC1zaXplXCIsIHRhc2tGb250U2l6ZSkuc3R5bGUoXCJmb250LWZhbWlseVwiLCB0YXNrRm9udEZhbWlseSk7XG4gICAgICB0ZXh0LmFwcGVuZChcInRzcGFuXCIpLmF0dHIoXCJ4XCIsIHggKyB3aWR0aCAvIDIpLmF0dHIoXCJkeVwiLCBkeSkudGV4dChsaW5lc1tpXSk7XG4gICAgICB0ZXh0LmF0dHIoXCJ5XCIsIHkgKyBoZWlnaHQgLyAyKS5hdHRyKFwiZG9taW5hbnQtYmFzZWxpbmVcIiwgXCJjZW50cmFsXCIpLmF0dHIoXCJhbGlnbm1lbnQtYmFzZWxpbmVcIiwgXCJjZW50cmFsXCIpO1xuICAgICAgX3NldFRleHRBdHRycyh0ZXh0LCB0ZXh0QXR0cnMpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBieUZvKGNvbnRlbnQsIGcsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHRleHRBdHRycywgY29uZjIpIHtcbiAgICBjb25zdCBib2R5ID0gZy5hcHBlbmQoXCJzd2l0Y2hcIik7XG4gICAgY29uc3QgZiA9IGJvZHkuYXBwZW5kKFwiZm9yZWlnbk9iamVjdFwiKS5hdHRyKFwieFwiLCB4KS5hdHRyKFwieVwiLCB5KS5hdHRyKFwid2lkdGhcIiwgd2lkdGgpLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KS5hdHRyKFwicG9zaXRpb25cIiwgXCJmaXhlZFwiKTtcbiAgICBjb25zdCB0ZXh0ID0gZi5hcHBlbmQoXCJ4aHRtbDpkaXZcIikuc3R5bGUoXCJkaXNwbGF5XCIsIFwidGFibGVcIikuc3R5bGUoXCJoZWlnaHRcIiwgXCIxMDAlXCIpLnN0eWxlKFwid2lkdGhcIiwgXCIxMDAlXCIpO1xuICAgIHRleHQuYXBwZW5kKFwiZGl2XCIpLmF0dHIoXCJjbGFzc1wiLCBcImxhYmVsXCIpLnN0eWxlKFwiZGlzcGxheVwiLCBcInRhYmxlLWNlbGxcIikuc3R5bGUoXCJ0ZXh0LWFsaWduXCIsIFwiY2VudGVyXCIpLnN0eWxlKFwidmVydGljYWwtYWxpZ25cIiwgXCJtaWRkbGVcIikudGV4dChjb250ZW50KTtcbiAgICBieVRzcGFuKGNvbnRlbnQsIGJvZHksIHgsIHksIHdpZHRoLCBoZWlnaHQsIHRleHRBdHRycywgY29uZjIpO1xuICAgIF9zZXRUZXh0QXR0cnModGV4dCwgdGV4dEF0dHJzKTtcbiAgfVxuICBmdW5jdGlvbiBfc2V0VGV4dEF0dHJzKHRvVGV4dCwgZnJvbVRleHRBdHRyc0RpY3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmcm9tVGV4dEF0dHJzRGljdCkge1xuICAgICAgaWYgKGtleSBpbiBmcm9tVGV4dEF0dHJzRGljdCkge1xuICAgICAgICB0b1RleHQuYXR0cihrZXksIGZyb21UZXh0QXR0cnNEaWN0W2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZnVuY3Rpb24oY29uZjIpIHtcbiAgICByZXR1cm4gY29uZjIudGV4dFBsYWNlbWVudCA9PT0gXCJmb1wiID8gYnlGbyA6IGNvbmYyLnRleHRQbGFjZW1lbnQgPT09IFwib2xkXCIgPyBieVRleHQgOiBieVRzcGFuO1xuICB9O1xufSgpO1xuY29uc3QgaW5pdEdyYXBoaWNzID0gZnVuY3Rpb24oZ3JhcGhpY3MpIHtcbiAgZ3JhcGhpY3MuYXBwZW5kKFwiZGVmc1wiKS5hcHBlbmQoXCJtYXJrZXJcIikuYXR0cihcImlkXCIsIFwiYXJyb3doZWFkXCIpLmF0dHIoXCJyZWZYXCIsIDUpLmF0dHIoXCJyZWZZXCIsIDIpLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCA2KS5hdHRyKFwibWFya2VySGVpZ2h0XCIsIDQpLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgXCJNIDAsMCBWIDQgTDYsMiBaXCIpO1xufTtcbmNvbnN0IHN2Z0RyYXcgPSB7XG4gIGRyYXdSZWN0LFxuICBkcmF3Q2lyY2xlLFxuICBkcmF3U2VjdGlvbixcbiAgZHJhd1RleHQsXG4gIGRyYXdMYWJlbCxcbiAgZHJhd1Rhc2ssXG4gIGRyYXdCYWNrZ3JvdW5kUmVjdCxcbiAgaW5pdEdyYXBoaWNzXG59O1xuY29uc3Qgc2V0Q29uZiA9IGZ1bmN0aW9uKGNuZikge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY25mKTtcbiAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgIGNvbmZba2V5XSA9IGNuZltrZXldO1xuICB9KTtcbn07XG5jb25zdCBhY3RvcnMgPSB7fTtcbmZ1bmN0aW9uIGRyYXdBY3RvckxlZ2VuZChkaWFncmFtMikge1xuICBjb25zdCBjb25mMiA9IGdldENvbmZpZygpLmpvdXJuZXk7XG4gIGxldCB5UG9zID0gNjA7XG4gIE9iamVjdC5rZXlzKGFjdG9ycykuZm9yRWFjaCgocGVyc29uKSA9PiB7XG4gICAgY29uc3QgY29sb3VyID0gYWN0b3JzW3BlcnNvbl0uY29sb3I7XG4gICAgY29uc3QgY2lyY2xlRGF0YSA9IHtcbiAgICAgIGN4OiAyMCxcbiAgICAgIGN5OiB5UG9zLFxuICAgICAgcjogNyxcbiAgICAgIGZpbGw6IGNvbG91cixcbiAgICAgIHN0cm9rZTogXCIjMDAwXCIsXG4gICAgICBwb3M6IGFjdG9yc1twZXJzb25dLnBvc2l0aW9uXG4gICAgfTtcbiAgICBzdmdEcmF3LmRyYXdDaXJjbGUoZGlhZ3JhbTIsIGNpcmNsZURhdGEpO1xuICAgIGNvbnN0IGxhYmVsRGF0YSA9IHtcbiAgICAgIHg6IDQwLFxuICAgICAgeTogeVBvcyArIDcsXG4gICAgICBmaWxsOiBcIiM2NjZcIixcbiAgICAgIHRleHQ6IHBlcnNvbixcbiAgICAgIHRleHRNYXJnaW46IGNvbmYyLmJveFRleHRNYXJnaW4gfCA1XG4gICAgfTtcbiAgICBzdmdEcmF3LmRyYXdUZXh0KGRpYWdyYW0yLCBsYWJlbERhdGEpO1xuICAgIHlQb3MgKz0gMjA7XG4gIH0pO1xufVxuY29uc3QgY29uZiA9IGdldENvbmZpZygpLmpvdXJuZXk7XG5jb25zdCBMRUZUX01BUkdJTiA9IGNvbmYubGVmdE1hcmdpbjtcbmNvbnN0IGRyYXcgPSBmdW5jdGlvbih0ZXh0LCBpZCwgdmVyc2lvbiwgZGlhZ09iaikge1xuICBjb25zdCBjb25mMiA9IGdldENvbmZpZygpLmpvdXJuZXk7XG4gIGNvbnN0IHNlY3VyaXR5TGV2ZWwgPSBnZXRDb25maWcoKS5zZWN1cml0eUxldmVsO1xuICBsZXQgc2FuZGJveEVsZW1lbnQ7XG4gIGlmIChzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIikge1xuICAgIHNhbmRib3hFbGVtZW50ID0gc2VsZWN0KFwiI2lcIiArIGlkKTtcbiAgfVxuICBjb25zdCByb290ID0gc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIgPyBzZWxlY3Qoc2FuZGJveEVsZW1lbnQubm9kZXMoKVswXS5jb250ZW50RG9jdW1lbnQuYm9keSkgOiBzZWxlY3QoXCJib2R5XCIpO1xuICBib3VuZHMuaW5pdCgpO1xuICBjb25zdCBkaWFncmFtMiA9IHJvb3Quc2VsZWN0KFwiI1wiICsgaWQpO1xuICBzdmdEcmF3LmluaXRHcmFwaGljcyhkaWFncmFtMik7XG4gIGNvbnN0IHRhc2tzMiA9IGRpYWdPYmouZGIuZ2V0VGFza3MoKTtcbiAgY29uc3QgdGl0bGUgPSBkaWFnT2JqLmRiLmdldERpYWdyYW1UaXRsZSgpO1xuICBjb25zdCBhY3Rvck5hbWVzID0gZGlhZ09iai5kYi5nZXRBY3RvcnMoKTtcbiAgZm9yIChjb25zdCBtZW1iZXIgaW4gYWN0b3JzKSB7XG4gICAgZGVsZXRlIGFjdG9yc1ttZW1iZXJdO1xuICB9XG4gIGxldCBhY3RvclBvcyA9IDA7XG4gIGFjdG9yTmFtZXMuZm9yRWFjaCgoYWN0b3JOYW1lKSA9PiB7XG4gICAgYWN0b3JzW2FjdG9yTmFtZV0gPSB7XG4gICAgICBjb2xvcjogY29uZjIuYWN0b3JDb2xvdXJzW2FjdG9yUG9zICUgY29uZjIuYWN0b3JDb2xvdXJzLmxlbmd0aF0sXG4gICAgICBwb3NpdGlvbjogYWN0b3JQb3NcbiAgICB9O1xuICAgIGFjdG9yUG9zKys7XG4gIH0pO1xuICBkcmF3QWN0b3JMZWdlbmQoZGlhZ3JhbTIpO1xuICBib3VuZHMuaW5zZXJ0KDAsIDAsIExFRlRfTUFSR0lOLCBPYmplY3Qua2V5cyhhY3RvcnMpLmxlbmd0aCAqIDUwKTtcbiAgZHJhd1Rhc2tzKGRpYWdyYW0yLCB0YXNrczIsIDApO1xuICBjb25zdCBib3ggPSBib3VuZHMuZ2V0Qm91bmRzKCk7XG4gIGlmICh0aXRsZSkge1xuICAgIGRpYWdyYW0yLmFwcGVuZChcInRleHRcIikudGV4dCh0aXRsZSkuYXR0cihcInhcIiwgTEVGVF9NQVJHSU4pLmF0dHIoXCJmb250LXNpemVcIiwgXCI0ZXhcIikuYXR0cihcImZvbnQtd2VpZ2h0XCIsIFwiYm9sZFwiKS5hdHRyKFwieVwiLCAyNSk7XG4gIH1cbiAgY29uc3QgaGVpZ2h0ID0gYm94LnN0b3B5IC0gYm94LnN0YXJ0eSArIDIgKiBjb25mMi5kaWFncmFtTWFyZ2luWTtcbiAgY29uc3Qgd2lkdGggPSBMRUZUX01BUkdJTiArIGJveC5zdG9weCArIDIgKiBjb25mMi5kaWFncmFtTWFyZ2luWDtcbiAgY29uZmlndXJlU3ZnU2l6ZShkaWFncmFtMiwgaGVpZ2h0LCB3aWR0aCwgY29uZjIudXNlTWF4V2lkdGgpO1xuICBkaWFncmFtMi5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJ4MVwiLCBMRUZUX01BUkdJTikuYXR0cihcInkxXCIsIGNvbmYyLmhlaWdodCAqIDQpLmF0dHIoXCJ4MlwiLCB3aWR0aCAtIExFRlRfTUFSR0lOIC0gNCkuYXR0cihcInkyXCIsIGNvbmYyLmhlaWdodCAqIDQpLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgNCkuYXR0cihcInN0cm9rZVwiLCBcImJsYWNrXCIpLmF0dHIoXCJtYXJrZXItZW5kXCIsIFwidXJsKCNhcnJvd2hlYWQpXCIpO1xuICBjb25zdCBleHRyYVZlcnRGb3JUaXRsZSA9IHRpdGxlID8gNzAgOiAwO1xuICBkaWFncmFtMi5hdHRyKFwidmlld0JveFwiLCBgJHtib3guc3RhcnR4fSAtMjUgJHt3aWR0aH0gJHtoZWlnaHQgKyBleHRyYVZlcnRGb3JUaXRsZX1gKTtcbiAgZGlhZ3JhbTIuYXR0cihcInByZXNlcnZlQXNwZWN0UmF0aW9cIiwgXCJ4TWluWU1pbiBtZWV0XCIpO1xuICBkaWFncmFtMi5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodCArIGV4dHJhVmVydEZvclRpdGxlICsgMjUpO1xufTtcbmNvbnN0IGJvdW5kcyA9IHtcbiAgZGF0YToge1xuICAgIHN0YXJ0eDogdm9pZCAwLFxuICAgIHN0b3B4OiB2b2lkIDAsXG4gICAgc3RhcnR5OiB2b2lkIDAsXG4gICAgc3RvcHk6IHZvaWQgMFxuICB9LFxuICB2ZXJ0aWNhbFBvczogMCxcbiAgc2VxdWVuY2VJdGVtczogW10sXG4gIGluaXQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuc2VxdWVuY2VJdGVtcyA9IFtdO1xuICAgIHRoaXMuZGF0YSA9IHtcbiAgICAgIHN0YXJ0eDogdm9pZCAwLFxuICAgICAgc3RvcHg6IHZvaWQgMCxcbiAgICAgIHN0YXJ0eTogdm9pZCAwLFxuICAgICAgc3RvcHk6IHZvaWQgMFxuICAgIH07XG4gICAgdGhpcy52ZXJ0aWNhbFBvcyA9IDA7XG4gIH0sXG4gIHVwZGF0ZVZhbDogZnVuY3Rpb24ob2JqLCBrZXksIHZhbCwgZnVuKSB7XG4gICAgaWYgKG9ialtrZXldID09PSB2b2lkIDApIHtcbiAgICAgIG9ialtrZXldID0gdmFsO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmpba2V5XSA9IGZ1bih2YWwsIG9ialtrZXldKTtcbiAgICB9XG4gIH0sXG4gIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oc3RhcnR4LCBzdGFydHksIHN0b3B4LCBzdG9weSkge1xuICAgIGNvbnN0IGNvbmYyID0gZ2V0Q29uZmlnKCkuam91cm5leTtcbiAgICBjb25zdCBfc2VsZiA9IHRoaXM7XG4gICAgbGV0IGNudCA9IDA7XG4gICAgZnVuY3Rpb24gdXBkYXRlRm4odHlwZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZUl0ZW1Cb3VuZHMoaXRlbSkge1xuICAgICAgICBjbnQrKztcbiAgICAgICAgY29uc3QgbiA9IF9zZWxmLnNlcXVlbmNlSXRlbXMubGVuZ3RoIC0gY250ICsgMTtcbiAgICAgICAgX3NlbGYudXBkYXRlVmFsKGl0ZW0sIFwic3RhcnR5XCIsIHN0YXJ0eSAtIG4gKiBjb25mMi5ib3hNYXJnaW4sIE1hdGgubWluKTtcbiAgICAgICAgX3NlbGYudXBkYXRlVmFsKGl0ZW0sIFwic3RvcHlcIiwgc3RvcHkgKyBuICogY29uZjIuYm94TWFyZ2luLCBNYXRoLm1heCk7XG4gICAgICAgIF9zZWxmLnVwZGF0ZVZhbChib3VuZHMuZGF0YSwgXCJzdGFydHhcIiwgc3RhcnR4IC0gbiAqIGNvbmYyLmJveE1hcmdpbiwgTWF0aC5taW4pO1xuICAgICAgICBfc2VsZi51cGRhdGVWYWwoYm91bmRzLmRhdGEsIFwic3RvcHhcIiwgc3RvcHggKyBuICogY29uZjIuYm94TWFyZ2luLCBNYXRoLm1heCk7XG4gICAgICAgIGlmICghKHR5cGUgPT09IFwiYWN0aXZhdGlvblwiKSkge1xuICAgICAgICAgIF9zZWxmLnVwZGF0ZVZhbChpdGVtLCBcInN0YXJ0eFwiLCBzdGFydHggLSBuICogY29uZjIuYm94TWFyZ2luLCBNYXRoLm1pbik7XG4gICAgICAgICAgX3NlbGYudXBkYXRlVmFsKGl0ZW0sIFwic3RvcHhcIiwgc3RvcHggKyBuICogY29uZjIuYm94TWFyZ2luLCBNYXRoLm1heCk7XG4gICAgICAgICAgX3NlbGYudXBkYXRlVmFsKGJvdW5kcy5kYXRhLCBcInN0YXJ0eVwiLCBzdGFydHkgLSBuICogY29uZjIuYm94TWFyZ2luLCBNYXRoLm1pbik7XG4gICAgICAgICAgX3NlbGYudXBkYXRlVmFsKGJvdW5kcy5kYXRhLCBcInN0b3B5XCIsIHN0b3B5ICsgbiAqIGNvbmYyLmJveE1hcmdpbiwgTWF0aC5tYXgpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLnNlcXVlbmNlSXRlbXMuZm9yRWFjaCh1cGRhdGVGbigpKTtcbiAgfSxcbiAgaW5zZXJ0OiBmdW5jdGlvbihzdGFydHgsIHN0YXJ0eSwgc3RvcHgsIHN0b3B5KSB7XG4gICAgY29uc3QgX3N0YXJ0eCA9IE1hdGgubWluKHN0YXJ0eCwgc3RvcHgpO1xuICAgIGNvbnN0IF9zdG9weCA9IE1hdGgubWF4KHN0YXJ0eCwgc3RvcHgpO1xuICAgIGNvbnN0IF9zdGFydHkgPSBNYXRoLm1pbihzdGFydHksIHN0b3B5KTtcbiAgICBjb25zdCBfc3RvcHkgPSBNYXRoLm1heChzdGFydHksIHN0b3B5KTtcbiAgICB0aGlzLnVwZGF0ZVZhbChib3VuZHMuZGF0YSwgXCJzdGFydHhcIiwgX3N0YXJ0eCwgTWF0aC5taW4pO1xuICAgIHRoaXMudXBkYXRlVmFsKGJvdW5kcy5kYXRhLCBcInN0YXJ0eVwiLCBfc3RhcnR5LCBNYXRoLm1pbik7XG4gICAgdGhpcy51cGRhdGVWYWwoYm91bmRzLmRhdGEsIFwic3RvcHhcIiwgX3N0b3B4LCBNYXRoLm1heCk7XG4gICAgdGhpcy51cGRhdGVWYWwoYm91bmRzLmRhdGEsIFwic3RvcHlcIiwgX3N0b3B5LCBNYXRoLm1heCk7XG4gICAgdGhpcy51cGRhdGVCb3VuZHMoX3N0YXJ0eCwgX3N0YXJ0eSwgX3N0b3B4LCBfc3RvcHkpO1xuICB9LFxuICBidW1wVmVydGljYWxQb3M6IGZ1bmN0aW9uKGJ1bXApIHtcbiAgICB0aGlzLnZlcnRpY2FsUG9zID0gdGhpcy52ZXJ0aWNhbFBvcyArIGJ1bXA7XG4gICAgdGhpcy5kYXRhLnN0b3B5ID0gdGhpcy52ZXJ0aWNhbFBvcztcbiAgfSxcbiAgZ2V0VmVydGljYWxQb3M6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnRpY2FsUG9zO1xuICB9LFxuICBnZXRCb3VuZHM6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGE7XG4gIH1cbn07XG5jb25zdCBmaWxscyA9IGNvbmYuc2VjdGlvbkZpbGxzO1xuY29uc3QgdGV4dENvbG91cnMgPSBjb25mLnNlY3Rpb25Db2xvdXJzO1xuY29uc3QgZHJhd1Rhc2tzID0gZnVuY3Rpb24oZGlhZ3JhbTIsIHRhc2tzMiwgdmVydGljYWxQb3MpIHtcbiAgY29uc3QgY29uZjIgPSBnZXRDb25maWcoKS5qb3VybmV5O1xuICBsZXQgbGFzdFNlY3Rpb24gPSBcIlwiO1xuICBjb25zdCBzZWN0aW9uVkhlaWdodCA9IGNvbmYyLmhlaWdodCAqIDIgKyBjb25mMi5kaWFncmFtTWFyZ2luWTtcbiAgY29uc3QgdGFza1BvcyA9IHZlcnRpY2FsUG9zICsgc2VjdGlvblZIZWlnaHQ7XG4gIGxldCBzZWN0aW9uTnVtYmVyID0gMDtcbiAgbGV0IGZpbGwgPSBcIiNDQ0NcIjtcbiAgbGV0IGNvbG91ciA9IFwiYmxhY2tcIjtcbiAgbGV0IG51bSA9IDA7XG4gIGZvciAoY29uc3QgW2ksIHRhc2tdIG9mIHRhc2tzMi5lbnRyaWVzKCkpIHtcbiAgICBpZiAobGFzdFNlY3Rpb24gIT09IHRhc2suc2VjdGlvbikge1xuICAgICAgZmlsbCA9IGZpbGxzW3NlY3Rpb25OdW1iZXIgJSBmaWxscy5sZW5ndGhdO1xuICAgICAgbnVtID0gc2VjdGlvbk51bWJlciAlIGZpbGxzLmxlbmd0aDtcbiAgICAgIGNvbG91ciA9IHRleHRDb2xvdXJzW3NlY3Rpb25OdW1iZXIgJSB0ZXh0Q29sb3Vycy5sZW5ndGhdO1xuICAgICAgbGV0IHRhc2tJblNlY3Rpb25Db3VudCA9IDA7XG4gICAgICBjb25zdCBjdXJyZW50U2VjdGlvbjIgPSB0YXNrLnNlY3Rpb247XG4gICAgICBmb3IgKGxldCB0YXNrSW5kZXggPSBpOyB0YXNrSW5kZXggPCB0YXNrczIubGVuZ3RoOyB0YXNrSW5kZXgrKykge1xuICAgICAgICBpZiAodGFza3MyW3Rhc2tJbmRleF0uc2VjdGlvbiA9PSBjdXJyZW50U2VjdGlvbjIpIHtcbiAgICAgICAgICB0YXNrSW5TZWN0aW9uQ291bnQgPSB0YXNrSW5TZWN0aW9uQ291bnQgKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBzZWN0aW9uID0ge1xuICAgICAgICB4OiBpICogY29uZjIudGFza01hcmdpbiArIGkgKiBjb25mMi53aWR0aCArIExFRlRfTUFSR0lOLFxuICAgICAgICB5OiA1MCxcbiAgICAgICAgdGV4dDogdGFzay5zZWN0aW9uLFxuICAgICAgICBmaWxsLFxuICAgICAgICBudW0sXG4gICAgICAgIGNvbG91cixcbiAgICAgICAgdGFza0NvdW50OiB0YXNrSW5TZWN0aW9uQ291bnRcbiAgICAgIH07XG4gICAgICBzdmdEcmF3LmRyYXdTZWN0aW9uKGRpYWdyYW0yLCBzZWN0aW9uLCBjb25mMik7XG4gICAgICBsYXN0U2VjdGlvbiA9IHRhc2suc2VjdGlvbjtcbiAgICAgIHNlY3Rpb25OdW1iZXIrKztcbiAgICB9XG4gICAgY29uc3QgdGFza0FjdG9ycyA9IHRhc2sucGVvcGxlLnJlZHVjZSgoYWNjLCBhY3Rvck5hbWUpID0+IHtcbiAgICAgIGlmIChhY3RvcnNbYWN0b3JOYW1lXSkge1xuICAgICAgICBhY2NbYWN0b3JOYW1lXSA9IGFjdG9yc1thY3Rvck5hbWVdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gICAgdGFzay54ID0gaSAqIGNvbmYyLnRhc2tNYXJnaW4gKyBpICogY29uZjIud2lkdGggKyBMRUZUX01BUkdJTjtcbiAgICB0YXNrLnkgPSB0YXNrUG9zO1xuICAgIHRhc2sud2lkdGggPSBjb25mMi5kaWFncmFtTWFyZ2luWDtcbiAgICB0YXNrLmhlaWdodCA9IGNvbmYyLmRpYWdyYW1NYXJnaW5ZO1xuICAgIHRhc2suY29sb3VyID0gY29sb3VyO1xuICAgIHRhc2suZmlsbCA9IGZpbGw7XG4gICAgdGFzay5udW0gPSBudW07XG4gICAgdGFzay5hY3RvcnMgPSB0YXNrQWN0b3JzO1xuICAgIHN2Z0RyYXcuZHJhd1Rhc2soZGlhZ3JhbTIsIHRhc2ssIGNvbmYyKTtcbiAgICBib3VuZHMuaW5zZXJ0KHRhc2sueCwgdGFzay55LCB0YXNrLnggKyB0YXNrLndpZHRoICsgY29uZjIudGFza01hcmdpbiwgMzAwICsgNSAqIDMwKTtcbiAgfVxufTtcbmNvbnN0IHJlbmRlcmVyID0ge1xuICBzZXRDb25mLFxuICBkcmF3XG59O1xuY29uc3QgZGlhZ3JhbSA9IHtcbiAgcGFyc2VyOiBwYXJzZXIkMSxcbiAgZGIsXG4gIHJlbmRlcmVyLFxuICBzdHlsZXMsXG4gIGluaXQ6IChjbmYpID0+IHtcbiAgICByZW5kZXJlci5zZXRDb25mKGNuZi5qb3VybmV5KTtcbiAgICBkYi5jbGVhcigpO1xuICB9XG59O1xuZXhwb3J0IHtcbiAgZGlhZ3JhbVxufTtcbiIsCiAgICAiKGZ1bmN0aW9uKGYpe2lmKHR5cGVvZiBleHBvcnRzPT09XCJvYmplY3RcIiYmdHlwZW9mIG1vZHVsZSE9PVwidW5kZWZpbmVkXCIpe21vZHVsZS5leHBvcnRzPWYoKX1lbHNlIGlmKHR5cGVvZiBkZWZpbmU9PT1cImZ1bmN0aW9uXCImJmRlZmluZS5hbWQpe2RlZmluZShbXSxmKX1lbHNle3ZhciBnO2lmKHR5cGVvZiB3aW5kb3chPT1cInVuZGVmaW5lZFwiKXtnPXdpbmRvd31lbHNlIGlmKHR5cGVvZiBnbG9iYWwhPT1cInVuZGVmaW5lZFwiKXtnPWdsb2JhbH1lbHNlIGlmKHR5cGVvZiBzZWxmIT09XCJ1bmRlZmluZWRcIil7Zz1zZWxmfWVsc2V7Zz10aGlzfWcuRUxLID0gZigpfX0pKGZ1bmN0aW9uKCl7dmFyIGRlZmluZSxtb2R1bGUsZXhwb3J0cztyZXR1cm4gKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSh7MTpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7XG4ndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTcgS2llbCBVbml2ZXJzaXR5IGFuZCBvdGhlcnMuXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbnZhciBFTEsgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEVMSygpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgICAgICBfcmVmJGRlZmF1bHRMYXlvdXRPcHQgPSBfcmVmLmRlZmF1bHRMYXlvdXRPcHRpb25zLFxuICAgICAgICBkZWZhdWx0TGF5b3V0T3B0aW9ucyA9IF9yZWYkZGVmYXVsdExheW91dE9wdCA9PT0gdW5kZWZpbmVkID8ge30gOiBfcmVmJGRlZmF1bHRMYXlvdXRPcHQsXG4gICAgICAgIF9yZWYkYWxnb3JpdGhtcyA9IF9yZWYuYWxnb3JpdGhtcyxcbiAgICAgICAgYWxnb3JpdGhtcyA9IF9yZWYkYWxnb3JpdGhtcyA9PT0gdW5kZWZpbmVkID8gWydsYXllcmVkJywgJ3N0cmVzcycsICdtcnRyZWUnLCAncmFkaWFsJywgJ2ZvcmNlJywgJ2Rpc2NvJywgJ3Nwb3JlT3ZlcmxhcCcsICdzcG9yZUNvbXBhY3Rpb24nLCAncmVjdHBhY2tpbmcnXSA6IF9yZWYkYWxnb3JpdGhtcyxcbiAgICAgICAgd29ya2VyRmFjdG9yeSA9IF9yZWYud29ya2VyRmFjdG9yeSxcbiAgICAgICAgd29ya2VyVXJsID0gX3JlZi53b3JrZXJVcmw7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRUxLKTtcblxuICAgIHRoaXMuZGVmYXVsdExheW91dE9wdGlvbnMgPSBkZWZhdWx0TGF5b3V0T3B0aW9ucztcbiAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICAvLyBjaGVjayB2YWxpZCB3b3JrZXIgY29uc3RydWN0aW9uIHBvc3NpYmxlXG4gICAgaWYgKHR5cGVvZiB3b3JrZXJVcmwgPT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3b3JrZXJGYWN0b3J5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNvbnN0cnVjdCBhbiBFTEsgd2l0aG91dCBib3RoICd3b3JrZXJVcmwnIGFuZCAnd29ya2VyRmFjdG9yeScuXCIpO1xuICAgIH1cbiAgICB2YXIgZmFjdG9yeSA9IHdvcmtlckZhY3Rvcnk7XG4gICAgaWYgKHR5cGVvZiB3b3JrZXJVcmwgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3b3JrZXJGYWN0b3J5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gdXNlIGRlZmF1bHQgV2ViIFdvcmtlclxuICAgICAgZmFjdG9yeSA9IGZ1bmN0aW9uIGZhY3RvcnkodXJsKSB7XG4gICAgICAgIHJldHVybiBuZXcgV29ya2VyKHVybCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGNyZWF0ZSB0aGUgd29ya2VyXG4gICAgdmFyIHdvcmtlciA9IGZhY3Rvcnkod29ya2VyVXJsKTtcbiAgICBpZiAodHlwZW9mIHdvcmtlci5wb3N0TWVzc2FnZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNyZWF0ZWQgd29ya2VyIGRvZXMgbm90IHByb3ZpZGVcIiArIFwiIHRoZSByZXF1aXJlZCAncG9zdE1lc3NhZ2UnIGZ1bmN0aW9uLlwiKTtcbiAgICB9XG5cbiAgICAvLyB3cmFwIHRoZSB3b3JrZXIgdG8gcmV0dXJuIHByb21pc2VzXG4gICAgdGhpcy53b3JrZXIgPSBuZXcgUHJvbWlzZWRXb3JrZXIod29ya2VyKTtcblxuICAgIC8vIGluaXRpYWxseSByZWdpc3RlciBhbGdvcml0aG1zXG4gICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2Uoe1xuICAgICAgY21kOiAncmVnaXN0ZXInLFxuICAgICAgYWxnb3JpdGhtczogYWxnb3JpdGhtc1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKHIpIHtcbiAgICAgIHJldHVybiBfdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfSkuY2F0Y2goY29uc29sZS5lcnIpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEVMSywgW3tcbiAgICBrZXk6ICdsYXlvdXQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsYXlvdXQoZ3JhcGgpIHtcbiAgICAgIHZhciBfcmVmMiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge30sXG4gICAgICAgICAgX3JlZjIkbGF5b3V0T3B0aW9ucyA9IF9yZWYyLmxheW91dE9wdGlvbnMsXG4gICAgICAgICAgbGF5b3V0T3B0aW9ucyA9IF9yZWYyJGxheW91dE9wdGlvbnMgPT09IHVuZGVmaW5lZCA/IHRoaXMuZGVmYXVsdExheW91dE9wdGlvbnMgOiBfcmVmMiRsYXlvdXRPcHRpb25zLFxuICAgICAgICAgIF9yZWYyJGxvZ2dpbmcgPSBfcmVmMi5sb2dnaW5nLFxuICAgICAgICAgIGxvZ2dpbmcgPSBfcmVmMiRsb2dnaW5nID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IF9yZWYyJGxvZ2dpbmcsXG4gICAgICAgICAgX3JlZjIkbWVhc3VyZUV4ZWN1dGlvID0gX3JlZjIubWVhc3VyZUV4ZWN1dGlvblRpbWUsXG4gICAgICAgICAgbWVhc3VyZUV4ZWN1dGlvblRpbWUgPSBfcmVmMiRtZWFzdXJlRXhlY3V0aW8gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogX3JlZjIkbWVhc3VyZUV4ZWN1dGlvO1xuXG4gICAgICBpZiAoIWdyYXBoKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoXCJNaXNzaW5nIG1hbmRhdG9yeSBwYXJhbWV0ZXIgJ2dyYXBoJy5cIikpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgY21kOiAnbGF5b3V0JyxcbiAgICAgICAgZ3JhcGg6IGdyYXBoLFxuICAgICAgICBsYXlvdXRPcHRpb25zOiBsYXlvdXRPcHRpb25zLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgbG9nZ2luZzogbG9nZ2luZyxcbiAgICAgICAgICBtZWFzdXJlRXhlY3V0aW9uVGltZTogbWVhc3VyZUV4ZWN1dGlvblRpbWVcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAna25vd25MYXlvdXRBbGdvcml0aG1zJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24ga25vd25MYXlvdXRBbGdvcml0aG1zKCkge1xuICAgICAgcmV0dXJuIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHsgY21kOiAnYWxnb3JpdGhtcycgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAna25vd25MYXlvdXRPcHRpb25zJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24ga25vd25MYXlvdXRPcHRpb25zKCkge1xuICAgICAgcmV0dXJuIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHsgY21kOiAnb3B0aW9ucycgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAna25vd25MYXlvdXRDYXRlZ29yaWVzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24ga25vd25MYXlvdXRDYXRlZ29yaWVzKCkge1xuICAgICAgcmV0dXJuIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHsgY21kOiAnY2F0ZWdvcmllcycgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAndGVybWluYXRlV29ya2VyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gdGVybWluYXRlV29ya2VyKCkge1xuICAgICAgaWYgKHRoaXMud29ya2VyKSB0aGlzLndvcmtlci50ZXJtaW5hdGUoKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gRUxLO1xufSgpO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBFTEs7XG5cbnZhciBQcm9taXNlZFdvcmtlciA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gUHJvbWlzZWRXb3JrZXIod29ya2VyKSB7XG4gICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUHJvbWlzZWRXb3JrZXIpO1xuXG4gICAgaWYgKHdvcmtlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIG1hbmRhdG9yeSBwYXJhbWV0ZXIgJ3dvcmtlcicuXCIpO1xuICAgIH1cbiAgICB0aGlzLnJlc29sdmVycyA9IHt9O1xuICAgIHRoaXMud29ya2VyID0gd29ya2VyO1xuICAgIHRoaXMud29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChhbnN3ZXIpIHtcbiAgICAgIC8vIHdoeSBpcyB0aGlzIG5lY2Vzc2FyeT9cbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpczIucmVjZWl2ZShfdGhpczIsIGFuc3dlcik7XG4gICAgICB9LCAwKTtcbiAgICB9O1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFByb21pc2VkV29ya2VyLCBbe1xuICAgIGtleTogJ3Bvc3RNZXNzYWdlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcG9zdE1lc3NhZ2UobXNnKSB7XG4gICAgICB2YXIgaWQgPSB0aGlzLmlkIHx8IDA7XG4gICAgICB0aGlzLmlkID0gaWQgKyAxO1xuICAgICAgbXNnLmlkID0gaWQ7XG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAvLyBwcmVwYXJlIHRoZSByZXNvbHZlclxuICAgICAgICBzZWxmLnJlc29sdmVyc1tpZF0gPSBmdW5jdGlvbiAoZXJyLCByZXMpIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICBzZWxmLmNvbnZlcnRHd3RTdHlsZUVycm9yKGVycik7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgLy8gcG9zdCB0aGUgbWVzc2FnZVxuICAgICAgICBzZWxmLndvcmtlci5wb3N0TWVzc2FnZShtc2cpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVjZWl2ZScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlY2VpdmUoc2VsZiwgYW5zd2VyKSB7XG4gICAgICB2YXIganNvbiA9IGFuc3dlci5kYXRhO1xuICAgICAgdmFyIHJlc29sdmVyID0gc2VsZi5yZXNvbHZlcnNbanNvbi5pZF07XG4gICAgICBpZiAocmVzb2x2ZXIpIHtcbiAgICAgICAgZGVsZXRlIHNlbGYucmVzb2x2ZXJzW2pzb24uaWRdO1xuICAgICAgICBpZiAoanNvbi5lcnJvcikge1xuICAgICAgICAgIHJlc29sdmVyKGpzb24uZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmVyKG51bGwsIGpzb24uZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICd0ZXJtaW5hdGUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0ZXJtaW5hdGUoKSB7XG4gICAgICBpZiAodGhpcy53b3JrZXIpIHtcbiAgICAgICAgdGhpcy53b3JrZXIudGVybWluYXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29udmVydEd3dFN0eWxlRXJyb3InLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb252ZXJ0R3d0U3R5bGVFcnJvcihlcnIpIHtcbiAgICAgIGlmICghZXJyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIFNvbWV3aGF0IGZsYXR0ZW4gdGhlIHdheSBHV1Qgc3RvcmVzIG5lc3RlZCBleGNlcHRpb24ocylcbiAgICAgIHZhciBqYXZhRXhjZXB0aW9uID0gZXJyWydfX2phdmEkZXhjZXB0aW9uJ107XG4gICAgICBpZiAoamF2YUV4Y2VwdGlvbikge1xuICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIG5lc3RlZCBleGNlcHRpb24gaXMgZGlmZmVyZW50XG4gICAgICAgIC8vIGluIHRoZSBub24tbWluaWZpZWQgKCdjYXVzZScpIGFuZCB0aGUgbWluaWZpZWQgKG5vdCBkZXRlcm1pbmlzdGljKSB2ZXJzaW9uLlxuICAgICAgICAvLyBIZW5jZSwgdGhlIHZlcnNpb24gYmVsb3cgb25seSB3b3JrcyBmb3IgdGhlIG5vbi1taW5pZmllZCB2ZXJzaW9uLlxuICAgICAgICAvLyBIb3dldmVyLCBhcyB0aGUgbWluaWZpZWQgc3RhY2sgdHJhY2UgaXMgbm90IG9mIG11Y2ggdXNlIGFueXdheSwgb25lXG4gICAgICAgIC8vIHNob3VsZCBzd2l0Y2ggdGhlIHVzZWQgdmVyc2lvbiBmb3IgZGVidWdnaW5nIGluIHN1Y2ggYSBjYXNlLlxuICAgICAgICBpZiAoamF2YUV4Y2VwdGlvbi5jYXVzZSAmJiBqYXZhRXhjZXB0aW9uLmNhdXNlLmJhY2tpbmdKc09iamVjdCkge1xuICAgICAgICAgIGVyci5jYXVzZSA9IGphdmFFeGNlcHRpb24uY2F1c2UuYmFja2luZ0pzT2JqZWN0O1xuICAgICAgICAgIHRoaXMuY29udmVydEd3dFN0eWxlRXJyb3IoZXJyLmNhdXNlKTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgZXJyWydfX2phdmEkZXhjZXB0aW9uJ107XG4gICAgICB9XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFByb21pc2VkV29ya2VyO1xufSgpO1xufSx7fV0sMjpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7XG4oZnVuY3Rpb24gKGdsb2JhbCl7KGZ1bmN0aW9uICgpe1xuJ3VzZSBzdHJpY3QnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLSAgICBGQUtFIEVMRU1FTlRTIEdXVCBBU1NVTUVTIEVYSVNUICAgLS0tLS0tLS0tLS0tLS0gXG52YXIgJHduZDtcbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJylcbiAgICAkd25kID0gd2luZG93XG5lbHNlIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJylcbiAgICAkd25kID0gZ2xvYmFsIC8vIG5vZGVqc1xuZWxzZSBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKVxuICAgICR3bmQgPSBzZWxmIC8vIHdlYiB3b3JrZXJcblxudmFyICRtb2R1bGVOYW1lLFxuICAgICRtb2R1bGVCYXNlO1xuXG4vLyAtLS0tLS0tLS0tLS0tLSAgICBXT1JLQVJPVU5EIFNUUklDVCBNT0RFLCBTRUUgIzEyNyAgICAtLS0tLS0tLS0tLS0tLSBcbnZhciBnLCBpLCBvO1xuXG4vLyAtLS0tLS0tLS0tLS0tLSAgICBHRU5FUkFURUQgQ09ERSAgICAtLS0tLS0tLS0tLS0tLSBcbmZ1bmN0aW9uIG5iKCl7fVxuZnVuY3Rpb24geGIoKXt9XG5mdW5jdGlvbiBGZCgpe31cbmZ1bmN0aW9uIGhoKCl7fVxuZnVuY3Rpb24gbHEoKXt9XG5mdW5jdGlvbiBOcSgpe31cbmZ1bmN0aW9uIGlyKCl7fVxuZnVuY3Rpb24gV3MoKXt9XG5mdW5jdGlvbiBadygpe31cbmZ1bmN0aW9uIGp4KCl7fVxuZnVuY3Rpb24gcngoKXt9XG5mdW5jdGlvbiBzeCgpe31cbmZ1bmN0aW9uIE15KCl7fVxuZnVuY3Rpb24gYkEoKXt9XG5mdW5jdGlvbiBtQSgpe31cbmZ1bmN0aW9uIHRBKCl7fVxuZnVuY3Rpb24gYUIoKXt9XG5mdW5jdGlvbiBkQigpe31cbmZ1bmN0aW9uIGpCKCl7fVxuZnVuY3Rpb24gZEMoKXt9XG5mdW5jdGlvbiBrZWIoKXt9XG5mdW5jdGlvbiBnZWIoKXt9XG5mdW5jdGlvbiBvZWIoKXt9XG5mdW5jdGlvbiBpb2IoKXt9XG5mdW5jdGlvbiBKb2IoKXt9XG5mdW5jdGlvbiBSb2IoKXt9XG5mdW5jdGlvbiBhcGIoKXt9XG5mdW5jdGlvbiBpcGIoKXt9XG5mdW5jdGlvbiBucmIoKXt9XG5mdW5jdGlvbiB3cmIoKXt9XG5mdW5jdGlvbiBCcmIoKXt9XG5mdW5jdGlvbiBQcmIoKXt9XG5mdW5jdGlvbiBsdGIoKXt9XG5mdW5jdGlvbiBzdmIoKXt9XG5mdW5jdGlvbiB4dmIoKXt9XG5mdW5jdGlvbiB6dmIoKXt9XG5mdW5jdGlvbiAkeGIoKXt9XG5mdW5jdGlvbiBHemIoKXt9XG5mdW5jdGlvbiBOQWIoKXt9XG5mdW5jdGlvbiBWQWIoKXt9XG5mdW5jdGlvbiByQmIoKXt9XG5mdW5jdGlvbiBSQmIoKXt9XG5mdW5jdGlvbiBUQmIoKXt9XG5mdW5jdGlvbiBYQmIoKXt9XG5mdW5jdGlvbiBaQmIoKXt9XG5mdW5jdGlvbiBfQmIoKXt9XG5mdW5jdGlvbiBiQ2IoKXt9XG5mdW5jdGlvbiBkQ2IoKXt9XG5mdW5jdGlvbiBmQ2IoKXt9XG5mdW5jdGlvbiBqQ2IoKXt9XG5mdW5jdGlvbiByQ2IoKXt9XG5mdW5jdGlvbiB1Q2IoKXt9XG5mdW5jdGlvbiB3Q2IoKXt9XG5mdW5jdGlvbiB5Q2IoKXt9XG5mdW5jdGlvbiBBQ2IoKXt9XG5mdW5jdGlvbiBFQ2IoKXt9XG5mdW5jdGlvbiBGRWIoKXt9XG5mdW5jdGlvbiBJRWIoKXt9XG5mdW5jdGlvbiBLRWIoKXt9XG5mdW5jdGlvbiBNRWIoKXt9XG5mdW5jdGlvbiBnRmIoKXt9XG5mdW5jdGlvbiBGRmIoKXt9XG5mdW5jdGlvbiBKRmIoKXt9XG5mdW5jdGlvbiB4R2IoKXt9XG5mdW5jdGlvbiBBR2IoKXt9XG5mdW5jdGlvbiBZR2IoKXt9XG5mdW5jdGlvbiBvSGIoKXt9XG5mdW5jdGlvbiB0SGIoKXt9XG5mdW5jdGlvbiB4SGIoKXt9XG5mdW5jdGlvbiBwSWIoKXt9XG5mdW5jdGlvbiBCSmIoKXt9XG5mdW5jdGlvbiBrTGIoKXt9XG5mdW5jdGlvbiBtTGIoKXt9XG5mdW5jdGlvbiBvTGIoKXt9XG5mdW5jdGlvbiBxTGIoKXt9XG5mdW5jdGlvbiBGTGIoKXt9XG5mdW5jdGlvbiBKTGIoKXt9XG5mdW5jdGlvbiBLTWIoKXt9XG5mdW5jdGlvbiBNTWIoKXt9XG5mdW5jdGlvbiBPTWIoKXt9XG5mdW5jdGlvbiBZTWIoKXt9XG5mdW5jdGlvbiBNTmIoKXt9XG5mdW5jdGlvbiBPTmIoKXt9XG5mdW5jdGlvbiBhT2IoKXt9XG5mdW5jdGlvbiBlT2IoKXt9XG5mdW5jdGlvbiB4T2IoKXt9XG5mdW5jdGlvbiBCT2IoKXt9XG5mdW5jdGlvbiBET2IoKXt9XG5mdW5jdGlvbiBGT2IoKXt9XG5mdW5jdGlvbiBJT2IoKXt9XG5mdW5jdGlvbiBNT2IoKXt9XG5mdW5jdGlvbiBQT2IoKXt9XG5mdW5jdGlvbiBVT2IoKXt9XG5mdW5jdGlvbiBaT2IoKXt9XG5mdW5jdGlvbiBjUGIoKXt9XG5mdW5jdGlvbiBnUGIoKXt9XG5mdW5jdGlvbiBuUGIoKXt9XG5mdW5jdGlvbiBxUGIoKXt9XG5mdW5jdGlvbiB0UGIoKXt9XG5mdW5jdGlvbiB3UGIoKXt9XG5mdW5jdGlvbiBDUGIoKXt9XG5mdW5jdGlvbiBxUWIoKXt9XG5mdW5jdGlvbiBHUWIoKXt9XG5mdW5jdGlvbiBiUmIoKXt9XG5mdW5jdGlvbiBnUmIoKXt9XG5mdW5jdGlvbiBrUmIoKXt9XG5mdW5jdGlvbiBwUmIoKXt9XG5mdW5jdGlvbiB3UmIoKXt9XG5mdW5jdGlvbiB4U2IoKXt9XG5mdW5jdGlvbiBUU2IoKXt9XG5mdW5jdGlvbiBWU2IoKXt9XG5mdW5jdGlvbiBYU2IoKXt9XG5mdW5jdGlvbiBaU2IoKXt9XG5mdW5jdGlvbiBfU2IoKXt9XG5mdW5jdGlvbiB0VGIoKXt9XG5mdW5jdGlvbiBEVGIoKXt9XG5mdW5jdGlvbiBGVGIoKXt9XG5mdW5jdGlvbiBGWGIoKXt9XG5mdW5jdGlvbiBoWGIoKXt9XG5mdW5jdGlvbiBoV2IoKXt9XG5mdW5jdGlvbiBtV2IoKXt9XG5mdW5jdGlvbiBDVmIoKXt9XG5mdW5jdGlvbiBYWGIoKXt9XG5mdW5jdGlvbiAkWGIoKXt9XG5mdW5jdGlvbiBiWWIoKXt9XG5mdW5jdGlvbiBsWWIoKXt9XG5mdW5jdGlvbiBGWWIoKXt9XG5mdW5jdGlvbiBYWWIoKXt9XG5mdW5jdGlvbiBhWmIoKXt9XG5mdW5jdGlvbiBTWmIoKXt9XG5mdW5jdGlvbiBaWmIoKXt9XG5mdW5jdGlvbiBaX2IoKXt9XG5mdW5jdGlvbiBqX2IoKXt9XG5mdW5jdGlvbiBqJGIoKXt9XG5mdW5jdGlvbiBiJGIoKXt9XG5mdW5jdGlvbiBmJGIoKXt9XG5mdW5jdGlvbiBuJGIoKXt9XG5mdW5jdGlvbiBLX2IoKXt9XG5mdW5jdGlvbiBWX2IoKXt9XG5mdW5jdGlvbiBiMGIoKXt9XG5mdW5jdGlvbiBsMGIoKXt9XG5mdW5jdGlvbiBYMWIoKXt9XG5mdW5jdGlvbiBfMWIoKXt9XG5mdW5jdGlvbiB4M2IoKXt9XG5mdW5jdGlvbiByNGIoKXt9XG5mdW5jdGlvbiB3NGIoKXt9XG5mdW5jdGlvbiBBNGIoKXt9XG5mdW5jdGlvbiBFNGIoKXt9XG5mdW5jdGlvbiBJNGIoKXt9XG5mdW5jdGlvbiBNNGIoKXt9XG5mdW5jdGlvbiBvNWIoKXt9XG5mdW5jdGlvbiBxNWIoKXt9XG5mdW5jdGlvbiB3NWIoKXt9XG5mdW5jdGlvbiBBNWIoKXt9XG5mdW5jdGlvbiBFNWIoKXt9XG5mdW5jdGlvbiBoNmIoKXt9XG5mdW5jdGlvbiBqNmIoKXt9XG5mdW5jdGlvbiBsNmIoKXt9XG5mdW5jdGlvbiBxNmIoKXt9XG5mdW5jdGlvbiB2NmIoKXt9XG5mdW5jdGlvbiB5NmIoKXt9XG5mdW5jdGlvbiBHNmIoKXt9XG5mdW5jdGlvbiBLNmIoKXt9XG5mdW5jdGlvbiBONmIoKXt9XG5mdW5jdGlvbiBQNmIoKXt9XG5mdW5jdGlvbiBSNmIoKXt9XG5mdW5jdGlvbiBiN2IoKXt9XG5mdW5jdGlvbiBmN2IoKXt9XG5mdW5jdGlvbiBqN2IoKXt9XG5mdW5jdGlvbiBuN2IoKXt9XG5mdW5jdGlvbiBDN2IoKXt9XG5mdW5jdGlvbiBIN2IoKXt9XG5mdW5jdGlvbiBKN2IoKXt9XG5mdW5jdGlvbiBMN2IoKXt9XG5mdW5jdGlvbiBON2IoKXt9XG5mdW5jdGlvbiBQN2IoKXt9XG5mdW5jdGlvbiBhOGIoKXt9XG5mdW5jdGlvbiBjOGIoKXt9XG5mdW5jdGlvbiBlOGIoKXt9XG5mdW5jdGlvbiBnOGIoKXt9XG5mdW5jdGlvbiBpOGIoKXt9XG5mdW5jdGlvbiBtOGIoKXt9XG5mdW5jdGlvbiBaOGIoKXt9XG5mdW5jdGlvbiBmOWIoKXt9XG5mdW5jdGlvbiBpOWIoKXt9XG5mdW5jdGlvbiBvOWIoKXt9XG5mdW5jdGlvbiBDOWIoKXt9XG5mdW5jdGlvbiBGOWIoKXt9XG5mdW5jdGlvbiBLOWIoKXt9XG5mdW5jdGlvbiBROWIoKXt9XG5mdW5jdGlvbiBhYWMoKXt9XG5mdW5jdGlvbiBiYWMoKXt9XG5mdW5jdGlvbiBlYWMoKXt9XG5mdW5jdGlvbiBtYWMoKXt9XG5mdW5jdGlvbiBwYWMoKXt9XG5mdW5jdGlvbiByYWMoKXt9XG5mdW5jdGlvbiB0YWMoKXt9XG5mdW5jdGlvbiB4YWMoKXt9XG5mdW5jdGlvbiBBYWMoKXt9XG5mdW5jdGlvbiBEYWMoKXt9XG5mdW5jdGlvbiBJYWMoKXt9XG5mdW5jdGlvbiBPYWMoKXt9XG5mdW5jdGlvbiBVYWMoKXt9XG5mdW5jdGlvbiBVY2MoKXt9XG5mdW5jdGlvbiBzY2MoKXt9XG5mdW5jdGlvbiB5Y2MoKXt9XG5mdW5jdGlvbiBBY2MoKXt9XG5mdW5jdGlvbiBDY2MoKXt9XG5mdW5jdGlvbiBOY2MoKXt9XG5mdW5jdGlvbiBXY2MoKXt9XG5mdW5jdGlvbiB5ZGMoKXt9XG5mdW5jdGlvbiBBZGMoKXt9XG5mdW5jdGlvbiBHZGMoKXt9XG5mdW5jdGlvbiBMZGMoKXt9XG5mdW5jdGlvbiBaZGMoKXt9XG5mdW5jdGlvbiBmZWMoKXt9XG5mdW5jdGlvbiBEZWMoKXt9XG5mdW5jdGlvbiBHZWMoKXt9XG5mdW5jdGlvbiBLZWMoKXt9XG5mdW5jdGlvbiBlZmMoKXt9XG5mdW5jdGlvbiBqZmMoKXt9XG5mdW5jdGlvbiBuZmMoKXt9XG5mdW5jdGlvbiBCZmMoKXt9XG5mdW5jdGlvbiBJZmMoKXt9XG5mdW5jdGlvbiBMZmMoKXt9XG5mdW5jdGlvbiBSZmMoKXt9XG5mdW5jdGlvbiBVZmMoKXt9XG5mdW5jdGlvbiBaZmMoKXt9XG5mdW5jdGlvbiBjZ2MoKXt9XG5mdW5jdGlvbiBlZ2MoKXt9XG5mdW5jdGlvbiBnZ2MoKXt9XG5mdW5jdGlvbiBpZ2MoKXt9XG5mdW5jdGlvbiBrZ2MoKXt9XG5mdW5jdGlvbiBEZ2MoKXt9XG5mdW5jdGlvbiBIZ2MoKXt9XG5mdW5jdGlvbiBMZ2MoKXt9XG5mdW5jdGlvbiBOZ2MoKXt9XG5mdW5jdGlvbiBQZ2MoKXt9XG5mdW5jdGlvbiBWZ2MoKXt9XG5mdW5jdGlvbiBZZ2MoKXt9XG5mdW5jdGlvbiBjaGMoKXt9XG5mdW5jdGlvbiBlaGMoKXt9XG5mdW5jdGlvbiBnaGMoKXt9XG5mdW5jdGlvbiBpaGMoKXt9XG5mdW5jdGlvbiBtaGMoKXt9XG5mdW5jdGlvbiByaGMoKXt9XG5mdW5jdGlvbiB1aGMoKXt9XG5mdW5jdGlvbiB3aGMoKXt9XG5mdW5jdGlvbiB5aGMoKXt9XG5mdW5jdGlvbiBBaGMoKXt9XG5mdW5jdGlvbiBDaGMoKXt9XG5mdW5jdGlvbiBHaGMoKXt9XG5mdW5jdGlvbiBOaGMoKXt9XG5mdW5jdGlvbiBQaGMoKXt9XG5mdW5jdGlvbiBSaGMoKXt9XG5mdW5jdGlvbiBUaGMoKXt9XG5mdW5jdGlvbiAkaGMoKXt9XG5mdW5jdGlvbiBhaWMoKXt9XG5mdW5jdGlvbiBjaWMoKXt9XG5mdW5jdGlvbiBlaWMoKXt9XG5mdW5jdGlvbiBqaWMoKXt9XG5mdW5jdGlvbiBuaWMoKXt9XG5mdW5jdGlvbiBwaWMoKXt9XG5mdW5jdGlvbiByaWMoKXt9XG5mdW5jdGlvbiB2aWMoKXt9XG5mdW5jdGlvbiB5aWMoKXt9XG5mdW5jdGlvbiBEaWMoKXt9XG5mdW5jdGlvbiBSaWMoKXt9XG5mdW5jdGlvbiBaaWMoKXt9XG5mdW5jdGlvbiBiamMoKXt9XG5mdW5jdGlvbiBkamMoKXt9XG5mdW5jdGlvbiBqamMoKXt9XG5mdW5jdGlvbiBuamMoKXt9XG5mdW5jdGlvbiByamMoKXt9XG5mdW5jdGlvbiB0amMoKXt9XG5mdW5jdGlvbiB6amMoKXt9XG5mdW5jdGlvbiBEamMoKXt9XG5mdW5jdGlvbiBGamMoKXt9XG5mdW5jdGlvbiBMamMoKXt9XG5mdW5jdGlvbiBQamMoKXt9XG5mdW5jdGlvbiBSamMoKXt9XG5mdW5jdGlvbiBma2MoKXt9XG5mdW5jdGlvbiBLa2MoKXt9XG5mdW5jdGlvbiBNa2MoKXt9XG5mdW5jdGlvbiBPa2MoKXt9XG5mdW5jdGlvbiBRa2MoKXt9XG5mdW5jdGlvbiBTa2MoKXt9XG5mdW5jdGlvbiBVa2MoKXt9XG5mdW5jdGlvbiBXa2MoKXt9XG5mdW5jdGlvbiBjbGMoKXt9XG5mdW5jdGlvbiBlbGMoKXt9XG5mdW5jdGlvbiBrbGMoKXt9XG5mdW5jdGlvbiBtbGMoKXt9XG5mdW5jdGlvbiBvbGMoKXt9XG5mdW5jdGlvbiBxbGMoKXt9XG5mdW5jdGlvbiB3bGMoKXt9XG5mdW5jdGlvbiB5bGMoKXt9XG5mdW5jdGlvbiBBbGMoKXt9XG5mdW5jdGlvbiBKbGMoKXt9XG5mdW5jdGlvbiBKb2MoKXt9XG5mdW5jdGlvbiBwb2MoKXt9XG5mdW5jdGlvbiByb2MoKXt9XG5mdW5jdGlvbiB0b2MoKXt9XG5mdW5jdGlvbiB2b2MoKXt9XG5mdW5jdGlvbiBCb2MoKXt9XG5mdW5jdGlvbiBGb2MoKXt9XG5mdW5jdGlvbiBIb2MoKXt9XG5mdW5jdGlvbiBMb2MoKXt9XG5mdW5jdGlvbiBOb2MoKXt9XG5mdW5jdGlvbiBQb2MoKXt9XG5mdW5jdGlvbiBxbmMoKXt9XG5mdW5jdGlvbiB1bmMoKXt9XG5mdW5jdGlvbiB1cGMoKXt9XG5mdW5jdGlvbiBrcGMoKXt9XG5mdW5jdGlvbiBtcGMoKXt9XG5mdW5jdGlvbiBvcGMoKXt9XG5mdW5jdGlvbiBxcGMoKXt9XG5mdW5jdGlvbiB5cGMoKXt9XG5mdW5jdGlvbiBDcGMoKXt9XG5mdW5jdGlvbiBNcGMoKXt9XG5mdW5jdGlvbiBRcGMoKXt9XG5mdW5jdGlvbiBkcWMoKXt9XG5mdW5jdGlvbiBqcWMoKXt9XG5mdW5jdGlvbiBBcWMoKXt9XG5mdW5jdGlvbiBFcWMoKXt9XG5mdW5jdGlvbiBHcWMoKXt9XG5mdW5jdGlvbiBTcWMoKXt9XG5mdW5jdGlvbiBhcmMoKXt9XG5mdW5jdGlvbiBscmMoKXt9XG5mdW5jdGlvbiB6cmMoKXt9XG5mdW5jdGlvbiBIcmMoKXt9XG5mdW5jdGlvbiBic2MoKXt9XG5mdW5jdGlvbiBkc2MoKXt9XG5mdW5jdGlvbiBmc2MoKXt9XG5mdW5jdGlvbiBrc2MoKXt9XG5mdW5jdGlvbiBtc2MoKXt9XG5mdW5jdGlvbiBBc2MoKXt9XG5mdW5jdGlvbiBDc2MoKXt9XG5mdW5jdGlvbiBFc2MoKXt9XG5mdW5jdGlvbiBLc2MoKXt9XG5mdW5jdGlvbiBOc2MoKXt9XG5mdW5jdGlvbiBTc2MoKXt9XG5mdW5jdGlvbiBDQ2MoKXt9XG5mdW5jdGlvbiB0R2MoKXt9XG5mdW5jdGlvbiBhSGMoKXt9XG5mdW5jdGlvbiBnSGMoKXt9XG5mdW5jdGlvbiBuSWMoKXt9XG5mdW5jdGlvbiBQSmMoKXt9XG5mdW5jdGlvbiBYS2MoKXt9XG5mdW5jdGlvbiBmTGMoKXt9XG5mdW5jdGlvbiBoTGMoKXt9XG5mdW5jdGlvbiBsTGMoKXt9XG5mdW5jdGlvbiBlTmMoKXt9XG5mdW5jdGlvbiBJT2MoKXt9XG5mdW5jdGlvbiBNT2MoKXt9XG5mdW5jdGlvbiBXT2MoKXt9XG5mdW5jdGlvbiBZT2MoKXt9XG5mdW5jdGlvbiAkT2MoKXt9XG5mdW5jdGlvbiBjUGMoKXt9XG5mdW5jdGlvbiBpUGMoKXt9XG5mdW5jdGlvbiBtUGMoKXt9XG5mdW5jdGlvbiBvUGMoKXt9XG5mdW5jdGlvbiBxUGMoKXt9XG5mdW5jdGlvbiBzUGMoKXt9XG5mdW5jdGlvbiB3UGMoKXt9XG5mdW5jdGlvbiBBUGMoKXt9XG5mdW5jdGlvbiBGUGMoKXt9XG5mdW5jdGlvbiBIUGMoKXt9XG5mdW5jdGlvbiBOUGMoKXt9XG5mdW5jdGlvbiBQUGMoKXt9XG5mdW5jdGlvbiBUUGMoKXt9XG5mdW5jdGlvbiBWUGMoKXt9XG5mdW5jdGlvbiBaUGMoKXt9XG5mdW5jdGlvbiBfUGMoKXt9XG5mdW5jdGlvbiBiUWMoKXt9XG5mdW5jdGlvbiBkUWMoKXt9XG5mdW5jdGlvbiBTUWMoKXt9XG5mdW5jdGlvbiBoUmMoKXt9XG5mdW5jdGlvbiBIUmMoKXt9XG5mdW5jdGlvbiBIU2MoKXt9XG5mdW5jdGlvbiBwU2MoKXt9XG5mdW5jdGlvbiB4U2MoKXt9XG5mdW5jdGlvbiB6U2MoKXt9XG5mdW5jdGlvbiBCU2MoKXt9XG5mdW5jdGlvbiBEU2MoKXt9XG5mdW5jdGlvbiBGU2MoKXt9XG5mdW5jdGlvbiBDVGMoKXt9XG5mdW5jdGlvbiBJVGMoKXt9XG5mdW5jdGlvbiBLVGMoKXt9XG5mdW5jdGlvbiBNVGMoKXt9XG5mdW5jdGlvbiBYVGMoKXt9XG5mdW5jdGlvbiBaVGMoKXt9XG5mdW5jdGlvbiBqVmMoKXt9XG5mdW5jdGlvbiBsVmMoKXt9XG5mdW5jdGlvbiB6VmMoKXt9XG5mdW5jdGlvbiBJVmMoKXt9XG5mdW5jdGlvbiBLVmMoKXt9XG5mdW5jdGlvbiBLV2MoKXt9XG5mdW5jdGlvbiB1V2MoKXt9XG5mdW5jdGlvbiB4V2MoKXt9XG5mdW5jdGlvbiBBV2MoKXt9XG5mdW5jdGlvbiBRV2MoKXt9XG5mdW5jdGlvbiBVV2MoKXt9XG5mdW5jdGlvbiBxWGMoKXt9XG5mdW5jdGlvbiBLWGMoKXt9XG5mdW5jdGlvbiBPWGMoKXt9XG5mdW5jdGlvbiBTWGMoKXt9XG5mdW5jdGlvbiAkWGMoKXt9XG5mdW5jdGlvbiBtWWMoKXt9XG5mdW5jdGlvbiByWWMoKXt9XG5mdW5jdGlvbiB6WWMoKXt9XG5mdW5jdGlvbiBEWWMoKXt9XG5mdW5jdGlvbiBGWWMoKXt9XG5mdW5jdGlvbiBIWWMoKXt9XG5mdW5jdGlvbiBKWWMoKXt9XG5mdW5jdGlvbiBjWmMoKXt9XG5mdW5jdGlvbiBnWmMoKXt9XG5mdW5jdGlvbiBpWmMoKXt9XG5mdW5jdGlvbiBwWmMoKXt9XG5mdW5jdGlvbiB0WmMoKXt9XG5mdW5jdGlvbiB2WmMoKXt9XG5mdW5jdGlvbiBBWmMoKXt9XG5mdW5jdGlvbiBHWmMoKXt9XG5mdW5jdGlvbiBsX2MoKXt9XG5mdW5jdGlvbiBsMWMoKXt9XG5mdW5jdGlvbiBiMWMoKXt9XG5mdW5jdGlvbiBkMWMoKXt9XG5mdW5jdGlvbiBoMWMoKXt9XG5mdW5jdGlvbiBuMWMoKXt9XG5mdW5jdGlvbiByMWMoKXt9XG5mdW5jdGlvbiB2MWMoKXt9XG5mdW5jdGlvbiB4MWMoKXt9XG5mdW5jdGlvbiBEMWMoKXt9XG5mdW5jdGlvbiBIMWMoKXt9XG5mdW5jdGlvbiBMMWMoKXt9XG5mdW5jdGlvbiBSMWMoKXt9XG5mdW5jdGlvbiBWMWMoKXt9XG5mdW5jdGlvbiBaMWMoKXt9XG5mdW5jdGlvbiBaMGMoKXt9XG5mdW5jdGlvbiBhMGMoKXt9XG5mdW5jdGlvbiBjMGMoKXt9XG5mdW5jdGlvbiBlMGMoKXt9XG5mdW5jdGlvbiBrMGMoKXt9XG5mdW5jdGlvbiBvMGMoKXt9XG5mdW5jdGlvbiBiMmMoKXt9XG5mdW5jdGlvbiBsMmMoKXt9XG5mdW5jdGlvbiBwMmMoKXt9XG5mdW5jdGlvbiBZMmMoKXt9XG5mdW5jdGlvbiBfMmMoKXt9XG5mdW5jdGlvbiBBM2MoKXt9XG5mdW5jdGlvbiBGM2MoKXt9XG5mdW5jdGlvbiBJM2MoKXt9XG5mdW5jdGlvbiBLM2MoKXt9XG5mdW5jdGlvbiBNM2MoKXt9XG5mdW5jdGlvbiBRM2MoKXt9XG5mdW5jdGlvbiBVM2MoKXt9XG5mdW5jdGlvbiBjNWMoKXt9XG5mdW5jdGlvbiBENWMoKXt9XG5mdW5jdGlvbiBHNWMoKXt9XG5mdW5jdGlvbiBKNWMoKXt9XG5mdW5jdGlvbiBONWMoKXt9XG5mdW5jdGlvbiBWNWMoKXt9XG5mdW5jdGlvbiBwNmMoKXt9XG5mdW5jdGlvbiBzNmMoKXt9XG5mdW5jdGlvbiBINmMoKXt9XG5mdW5jdGlvbiBLNmMoKXt9XG5mdW5jdGlvbiBfN2MoKXt9XG5mdW5jdGlvbiBoOGMoKXt9XG5mdW5jdGlvbiBqOGMoKXt9XG5mdW5jdGlvbiBvOGMoKXt9XG5mdW5jdGlvbiByOGMoKXt9XG5mdW5jdGlvbiB1OGMoKXt9XG5mdW5jdGlvbiBSOGMoKXt9XG5mdW5jdGlvbiBYOGMoKXt9XG5mdW5jdGlvbiBvOWMoKXt9XG5mdW5jdGlvbiBzOWMoKXt9XG5mdW5jdGlvbiB4OWMoKXt9XG5mdW5jdGlvbiBRYWQoKXt9XG5mdW5jdGlvbiByY2QoKXt9XG5mdW5jdGlvbiBYY2QoKXt9XG5mdW5jdGlvbiB2ZGQoKXt9XG5mdW5jdGlvbiBUZGQoKXt9XG5mdW5jdGlvbiBfZGQoKXt9XG5mdW5jdGlvbiBxZWQoKXt9XG5mdW5jdGlvbiBzZWQoKXt9XG5mdW5jdGlvbiB2ZWQoKXt9XG5mdW5jdGlvbiBIZWQoKXt9XG5mdW5jdGlvbiBaZWQoKXt9XG5mdW5jdGlvbiBiZmQoKXt9XG5mdW5jdGlvbiBpZmQoKXt9XG5mdW5jdGlvbiBHZmQoKXt9XG5mdW5jdGlvbiBJZmQoKXt9XG5mdW5jdGlvbiBJZ2QoKXt9XG5mdW5jdGlvbiBhZ2QoKXt9XG5mdW5jdGlvbiBkZ2QoKXt9XG5mdW5jdGlvbiBwZ2QoKXt9XG5mdW5jdGlvbiBIZ2QoKXt9XG5mdW5jdGlvbiBLZ2QoKXt9XG5mdW5jdGlvbiBNZ2QoKXt9XG5mdW5jdGlvbiBPZ2QoKXt9XG5mdW5jdGlvbiBRZ2QoKXt9XG5mdW5jdGlvbiBTZ2QoKXt9XG5mdW5jdGlvbiBVZ2QoKXt9XG5mdW5jdGlvbiBXZ2QoKXt9XG5mdW5jdGlvbiBZZ2QoKXt9XG5mdW5jdGlvbiAkZ2QoKXt9XG5mdW5jdGlvbiBhaGQoKXt9XG5mdW5jdGlvbiBjaGQoKXt9XG5mdW5jdGlvbiBlaGQoKXt9XG5mdW5jdGlvbiBnaGQoKXt9XG5mdW5jdGlvbiBpaGQoKXt9XG5mdW5jdGlvbiBraGQoKXt9XG5mdW5jdGlvbiBtaGQoKXt9XG5mdW5jdGlvbiBvaGQoKXt9XG5mdW5jdGlvbiBxaGQoKXt9XG5mdW5jdGlvbiBzaGQoKXt9XG5mdW5jdGlvbiBTaGQoKXt9XG5mdW5jdGlvbiBsa2QoKXt9XG5mdW5jdGlvbiB6bmQoKXt9XG5mdW5jdGlvbiBKcGQoKXt9XG5mdW5jdGlvbiBqcmQoKXt9XG5mdW5jdGlvbiBNcmQoKXt9XG5mdW5jdGlvbiBRcmQoKXt9XG5mdW5jdGlvbiBVcmQoKXt9XG5mdW5jdGlvbiBZcmQoKXt9XG5mdW5jdGlvbiBZdWQoKXt9XG5mdW5jdGlvbiBldWQoKXt9XG5mdW5jdGlvbiBhc2QoKXt9XG5mdW5jdGlvbiBMc2QoKXt9XG5mdW5jdGlvbiBidGQoKXt9XG5mdW5jdGlvbiBkdGQoKXt9XG5mdW5jdGlvbiBqdGQoKXt9XG5mdW5jdGlvbiBvdGQoKXt9XG5mdW5jdGlvbiB6dGQoKXt9XG5mdW5jdGlvbiBYeGQoKXt9XG5mdW5jdGlvbiAkeWQoKXt9XG5mdW5jdGlvbiByemQoKXt9XG5mdW5jdGlvbiBSemQoKXt9XG5mdW5jdGlvbiBLQWQoKXt9XG5mdW5jdGlvbiBoQ2QoKXt9XG5mdW5jdGlvbiBfQ2QoKXt9XG5mdW5jdGlvbiBfU2QoKXt9XG5mdW5jdGlvbiBPU2QoKXt9XG5mdW5jdGlvbiBCRGQoKXt9XG5mdW5jdGlvbiBCSWQoKXt9XG5mdW5jdGlvbiBKSWQoKXt9XG5mdW5jdGlvbiBZSGQoKXt9XG5mdW5jdGlvbiBmTGQoKXt9XG5mdW5jdGlvbiBjUGQoKXt9XG5mdW5jdGlvbiBoUWQoKXt9XG5mdW5jdGlvbiBBUWQoKXt9XG5mdW5jdGlvbiBrVWQoKXt9XG5mdW5jdGlvbiBWVWQoKXt9XG5mdW5jdGlvbiBwVmQoKXt9XG5mdW5jdGlvbiBXJGQoKXt9XG5mdW5jdGlvbiBaJGQoKXt9XG5mdW5jdGlvbiBhX2QoKXt9XG5mdW5jdGlvbiBpX2QoKXt9XG5mdW5jdGlvbiB2X2QoKXt9XG5mdW5jdGlvbiB5X2QoKXt9XG5mdW5jdGlvbiBmMWQoKXt9XG5mdW5jdGlvbiBMNWQoKXt9XG5mdW5jdGlvbiB2NmQoKXt9XG5mdW5jdGlvbiBiOGQoKXt9XG5mdW5jdGlvbiBlOGQoKXt9XG5mdW5jdGlvbiBoOGQoKXt9XG5mdW5jdGlvbiBrOGQoKXt9XG5mdW5jdGlvbiBuOGQoKXt9XG5mdW5jdGlvbiBxOGQoKXt9XG5mdW5jdGlvbiB0OGQoKXt9XG5mdW5jdGlvbiB3OGQoKXt9XG5mdW5jdGlvbiB6OGQoKXt9XG5mdW5jdGlvbiBYOWQoKXt9XG5mdW5jdGlvbiBfOWQoKXt9XG5mdW5jdGlvbiBNYWUoKXt9XG5mdW5jdGlvbiBjYmUoKXt9XG5mdW5jdGlvbiBlYmUoKXt9XG5mdW5jdGlvbiBoYmUoKXt9XG5mdW5jdGlvbiBrYmUoKXt9XG5mdW5jdGlvbiBuYmUoKXt9XG5mdW5jdGlvbiBxYmUoKXt9XG5mdW5jdGlvbiB0YmUoKXt9XG5mdW5jdGlvbiB3YmUoKXt9XG5mdW5jdGlvbiB6YmUoKXt9XG5mdW5jdGlvbiBDYmUoKXt9XG5mdW5jdGlvbiBGYmUoKXt9XG5mdW5jdGlvbiBJYmUoKXt9XG5mdW5jdGlvbiBMYmUoKXt9XG5mdW5jdGlvbiBPYmUoKXt9XG5mdW5jdGlvbiBSYmUoKXt9XG5mdW5jdGlvbiBVYmUoKXt9XG5mdW5jdGlvbiBYYmUoKXt9XG5mdW5jdGlvbiAkYmUoKXt9XG5mdW5jdGlvbiBiY2UoKXt9XG5mdW5jdGlvbiBlY2UoKXt9XG5mdW5jdGlvbiBoY2UoKXt9XG5mdW5jdGlvbiBrY2UoKXt9XG5mdW5jdGlvbiBuY2UoKXt9XG5mdW5jdGlvbiBxY2UoKXt9XG5mdW5jdGlvbiB0Y2UoKXt9XG5mdW5jdGlvbiB3Y2UoKXt9XG5mdW5jdGlvbiB6Y2UoKXt9XG5mdW5jdGlvbiBDY2UoKXt9XG5mdW5jdGlvbiBGY2UoKXt9XG5mdW5jdGlvbiBJY2UoKXt9XG5mdW5jdGlvbiBMY2UoKXt9XG5mdW5jdGlvbiBPY2UoKXt9XG5mdW5jdGlvbiBSY2UoKXt9XG5mdW5jdGlvbiBVY2UoKXt9XG5mdW5jdGlvbiBYY2UoKXt9XG5mdW5jdGlvbiAkY2UoKXt9XG5mdW5jdGlvbiBiZGUoKXt9XG5mdW5jdGlvbiBlZGUoKXt9XG5mdW5jdGlvbiBoZGUoKXt9XG5mdW5jdGlvbiBrZGUoKXt9XG5mdW5jdGlvbiBuZGUoKXt9XG5mdW5jdGlvbiBxZGUoKXt9XG5mdW5jdGlvbiB0ZGUoKXt9XG5mdW5jdGlvbiB3ZGUoKXt9XG5mdW5jdGlvbiBIaWUoKXt9XG5mdW5jdGlvbiBya2UoKXt9XG5mdW5jdGlvbiBybmUoKXt9XG5mdW5jdGlvbiBFbmUoKXt9XG5mdW5jdGlvbiBHbmUoKXt9XG5mdW5jdGlvbiBKbmUoKXt9XG5mdW5jdGlvbiBNbmUoKXt9XG5mdW5jdGlvbiBQbmUoKXt9XG5mdW5jdGlvbiBTbmUoKXt9XG5mdW5jdGlvbiBWbmUoKXt9XG5mdW5jdGlvbiBZbmUoKXt9XG5mdW5jdGlvbiBfbmUoKXt9XG5mdW5jdGlvbiB5bWUoKXt9XG5mdW5jdGlvbiBjb2UoKXt9XG5mdW5jdGlvbiBmb2UoKXt9XG5mdW5jdGlvbiBpb2UoKXt9XG5mdW5jdGlvbiBsb2UoKXt9XG5mdW5jdGlvbiBvb2UoKXt9XG5mdW5jdGlvbiByb2UoKXt9XG5mdW5jdGlvbiB1b2UoKXt9XG5mdW5jdGlvbiB4b2UoKXt9XG5mdW5jdGlvbiBBb2UoKXt9XG5mdW5jdGlvbiBEb2UoKXt9XG5mdW5jdGlvbiBHb2UoKXt9XG5mdW5jdGlvbiBKb2UoKXt9XG5mdW5jdGlvbiBNb2UoKXt9XG5mdW5jdGlvbiBQb2UoKXt9XG5mdW5jdGlvbiBTb2UoKXt9XG5mdW5jdGlvbiBWb2UoKXt9XG5mdW5jdGlvbiBZb2UoKXt9XG5mdW5jdGlvbiBfb2UoKXt9XG5mdW5jdGlvbiBjcGUoKXt9XG5mdW5jdGlvbiBmcGUoKXt9XG5mdW5jdGlvbiBpcGUoKXt9XG5mdW5jdGlvbiBscGUoKXt9XG5mdW5jdGlvbiBvcGUoKXt9XG5mdW5jdGlvbiBycGUoKXt9XG5mdW5jdGlvbiB1cGUoKXt9XG5mdW5jdGlvbiB4cGUoKXt9XG5mdW5jdGlvbiBBcGUoKXt9XG5mdW5jdGlvbiBEcGUoKXt9XG5mdW5jdGlvbiBHcGUoKXt9XG5mdW5jdGlvbiBKcGUoKXt9XG5mdW5jdGlvbiBNcGUoKXt9XG5mdW5jdGlvbiBQcGUoKXt9XG5mdW5jdGlvbiBTcGUoKXt9XG5mdW5jdGlvbiBWcGUoKXt9XG5mdW5jdGlvbiBZcGUoKXt9XG5mdW5jdGlvbiBfcGUoKXt9XG5mdW5jdGlvbiBjcWUoKXt9XG5mdW5jdGlvbiBmcWUoKXt9XG5mdW5jdGlvbiBpcWUoKXt9XG5mdW5jdGlvbiBscWUoKXt9XG5mdW5jdGlvbiBvcWUoKXt9XG5mdW5jdGlvbiBycWUoKXt9XG5mdW5jdGlvbiB1cWUoKXt9XG5mdW5jdGlvbiBUcWUoKXt9XG5mdW5jdGlvbiBzdWUoKXt9XG5mdW5jdGlvbiBDdWUoKXt9XG5mdW5jdGlvbiBBMmIoYSl7fVxuZnVuY3Rpb24gSjNkKGEpe31cbmZ1bmN0aW9uIHpsKCl7d2IoKX1cbmZ1bmN0aW9uIHo3Yigpe3M3YigpfVxuZnVuY3Rpb24gWkhiKCl7WUhiKCl9XG5mdW5jdGlvbiBmU2IoKXtlU2IoKX1cbmZ1bmN0aW9uIHZTYigpe3RTYigpfVxuZnVuY3Rpb24gUFViKCl7T1ViKCl9XG5mdW5jdGlvbiBBVmIoKXt5VmIoKX1cbmZ1bmN0aW9uIFJWYigpe1FWYigpfVxuZnVuY3Rpb24gZldiKCl7ZFdiKCl9XG5mdW5jdGlvbiBONWIoKXtINWIoKX1cbmZ1bmN0aW9uICQ5Yigpe1U5YigpfVxuZnVuY3Rpb24gTGNjKCl7SGNjKCl9XG5mdW5jdGlvbiBwZGMoKXtaY2MoKX1cbmZ1bmN0aW9uIHBlYygpe2llYygpfVxuZnVuY3Rpb24gcEdjKCl7bkdjKCl9XG5mdW5jdGlvbiBqR2MoKXtnR2MoKX1cbmZ1bmN0aW9uIFlHYygpe1NHYygpfVxuZnVuY3Rpb24gY0djKCl7X0ZjKCl9XG5mdW5jdGlvbiBORmMoKXtLRmMoKX1cbmZ1bmN0aW9uIHhnYygpe3NnYygpfVxuZnVuY3Rpb24geEhjKCl7dEhjKCl9XG5mdW5jdGlvbiBwSGMoKXtsSGMoKX1cbmZ1bmN0aW9uIElIYygpe0NIYygpfVxuZnVuY3Rpb24gWEhjKCl7UkhjKCl9XG5mdW5jdGlvbiBib2MoKXtNbmMoKX1cbmZ1bmN0aW9uIHlxYygpe21xYygpfVxuZnVuY3Rpb24gUHpjKCl7T3pjKCl9XG5mdW5jdGlvbiBBQ2MoKXt5Q2MoKX1cbmZ1bmN0aW9uIGFLYygpe1lKYygpfVxuZnVuY3Rpb24gRkxjKCl7RExjKCl9XG5mdW5jdGlvbiBETmMoKXtBTmMoKX1cbmZ1bmN0aW9uIFROYygpe0pOYygpfVxuZnVuY3Rpb24gaVFjKCl7Z1FjKCl9XG5mdW5jdGlvbiBXUmMoKXtUUmMoKX1cbmZ1bmN0aW9uIEMkYygpe0IkYygpfVxuZnVuY3Rpb24gSjBjKCl7QjBjKCl9XG5mdW5jdGlvbiB4MGMoKXtyMGMoKX1cbmZ1bmN0aW9uIGpfYygpe2hfYygpfVxuZnVuY3Rpb24gTl9jKCl7SF9jKCl9XG5mdW5jdGlvbiBWX2MoKXtSX2MoKX1cbmZ1bmN0aW9uIEU0Yygpe0Q0YygpfVxuZnVuY3Rpb24gYTVjKCl7JDRjKCl9XG5mdW5jdGlvbiB2N2MoKXt1N2MoKX1cbmZ1bmN0aW9uIFo3Yygpe1g3YygpfVxuZnVuY3Rpb24gcGNkKCl7bmNkKCl9XG5mdW5jdGlvbiBMY2QoKXtLY2QoKX1cbmZ1bmN0aW9uIFZjZCgpe1RjZCgpfVxuZnVuY3Rpb24gZlVkKCl7VFRkKCl9XG5mdW5jdGlvbiBCZmQoKXtBZmQoKX1cbmZ1bmN0aW9uIGprZCgpe2hrZCgpfVxuZnVuY3Rpb24gdm1kKCl7dW1kKCl9XG5mdW5jdGlvbiB4bmQoKXt2bmQoKX1cbmZ1bmN0aW9uIEhwZCgpe0ZwZCgpfVxuZnVuY3Rpb24gSFlkKCl7bFlkKCl9XG5mdW5jdGlvbiB5QWQoKXtxQWQoKX1cbmZ1bmN0aW9uIGdrZSgpe3J1ZSgpfVxuZnVuY3Rpb24gWXhiKGEpe3VGYihhKX1cbmZ1bmN0aW9uIFliKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gY2MoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBkZihhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIGtmKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24ga2ooYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBxaihhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIExqKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gamgoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiB0aChhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIEJoKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWGgoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBYbihhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIERpKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gS2koYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBJayhhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIFFrKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbXAoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBMcChhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIGlxKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gRXEoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBWcShhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIE9yKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gJHIoYSl7dGhpcy5iPWF9XG5mdW5jdGlvbiBBaihhKXt0aGlzLmM9YX1cbmZ1bmN0aW9uIHZ1KGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gdncoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBndyhhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIGx3KGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSXcoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBOdyhhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIFN3KGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZXgoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBmeChhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIGx4KGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbXkoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBxeShhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIE95KGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTkIoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBYQihhKXt0aGlzLmE9YX1cbmZ1bmN0aW9uIGhDKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gdkMoYSl7dGhpcy5hPWF9XG5mdW5jdGlvbiBNQigpe3RoaXMuYT1bXX1cbmZ1bmN0aW9uIEhFYihhLGIpe2EuYT1ifVxuZnVuY3Rpb24gRTJiKGEsYil7YS5hPWJ9XG5mdW5jdGlvbiBGMmIoYSxiKXthLmI9Yn1cbmZ1bmN0aW9uIFBSYihhLGIpe2EuYj1ifVxuZnVuY3Rpb24gUlJiKGEsYil7YS5iPWJ9XG5mdW5jdGlvbiBRSmIoYSxiKXthLmo9Yn1cbmZ1bmN0aW9uIGhRYihhLGIpe2EuZz1ifVxuZnVuY3Rpb24gaVFiKGEsYil7YS5pPWJ9XG5mdW5jdGlvbiBfVGIoYSxiKXthLmM9Yn1cbmZ1bmN0aW9uIEcyYihhLGIpe2EuYz1ifVxuZnVuY3Rpb24gSDJiKGEsYil7YS5kPWJ9XG5mdW5jdGlvbiBhVWIoYSxiKXthLmQ9Yn1cbmZ1bmN0aW9uIGgzYihhLGIpe2Euaz1ifVxuZnVuY3Rpb24gTzNiKGEsYil7YS5jPWJ9XG5mdW5jdGlvbiBUbWMoYSxiKXthLmM9Yn1cbmZ1bmN0aW9uIFNtYyhhLGIpe2EuYT1ifVxuZnVuY3Rpb24gREpjKGEsYil7YS5hPWJ9XG5mdW5jdGlvbiBFSmMoYSxiKXthLmY9Yn1cbmZ1bmN0aW9uIE5TYyhhLGIpe2EuYT1ifVxuZnVuY3Rpb24gT1NjKGEsYil7YS5iPWJ9XG5mdW5jdGlvbiBQU2MoYSxiKXthLmQ9Yn1cbmZ1bmN0aW9uIFFTYyhhLGIpe2EuaT1ifVxuZnVuY3Rpb24gUlNjKGEsYil7YS5vPWJ9XG5mdW5jdGlvbiBTU2MoYSxiKXthLnI9Yn1cbmZ1bmN0aW9uIHlVYyhhLGIpe2EuYT1ifVxuZnVuY3Rpb24gelVjKGEsYil7YS5iPWJ9XG5mdW5jdGlvbiBxM2MoYSxiKXthLmU9Yn1cbmZ1bmN0aW9uIHIzYyhhLGIpe2EuZj1ifVxuZnVuY3Rpb24gczNjKGEsYil7YS5nPWJ9XG5mdW5jdGlvbiBZOWMoYSxiKXthLmU9Yn1cbmZ1bmN0aW9uIFo5YyhhLGIpe2EuZj1ifVxuZnVuY3Rpb24ga2FkKGEsYil7YS5mPWJ9XG5mdW5jdGlvbiBOdGQoYSxiKXthLmE9Yn1cbmZ1bmN0aW9uIE90ZChhLGIpe2EuYj1ifVxuZnVuY3Rpb24gQldkKGEsYil7YS5uPWJ9XG5mdW5jdGlvbiAkZWUoYSxiKXthLmE9Yn1cbmZ1bmN0aW9uIF9lZShhLGIpe2EuYz1ifVxuZnVuY3Rpb24gaWZlKGEsYil7YS5jPWJ9XG5mdW5jdGlvbiBFZmUoYSxiKXthLmM9Yn1cbmZ1bmN0aW9uIGhmZShhLGIpe2EuYT1ifVxuZnVuY3Rpb24gRGZlKGEsYil7YS5hPWJ9XG5mdW5jdGlvbiBqZmUoYSxiKXthLmQ9Yn1cbmZ1bmN0aW9uIEZmZShhLGIpe2EuZD1ifVxuZnVuY3Rpb24ga2ZlKGEsYil7YS5lPWJ9XG5mdW5jdGlvbiBHZmUoYSxiKXthLmU9Yn1cbmZ1bmN0aW9uIGxmZShhLGIpe2EuZz1ifVxuZnVuY3Rpb24gSGZlKGEsYil7YS5mPWJ9XG5mdW5jdGlvbiBJZmUoYSxiKXthLmo9Yn1cbmZ1bmN0aW9uIHdtZShhLGIpe2EuYT1ifVxuZnVuY3Rpb24gRm1lKGEsYil7YS5hPWJ9XG5mdW5jdGlvbiB4bWUoYSxiKXthLmI9Yn1cbmZ1bmN0aW9uIGdtYyhhKXthLmI9YS5hfVxuZnVuY3Rpb24gTGcoYSl7YS5jPWEuZC5kfVxuZnVuY3Rpb24gZmdiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gemdiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWGdiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWGtiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbWtiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gcmViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gU2ViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYmZiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVGZiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYmxiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZ2xiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbGxiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVWxiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gX2xiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUGxiKGEpe3RoaXMuYj1hfVxuZnVuY3Rpb24gUHBiKGEpe3RoaXMuYj1hfVxuZnVuY3Rpb24geHBiKGEpe3RoaXMuYj1hfVxuZnVuY3Rpb24gbXBiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWXFiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gdXFiKGEpe3RoaXMuYz1hfVxuZnVuY3Rpb24gQW5iKGEpe3RoaXMuYz1hfVxuZnVuY3Rpb24gendiKGEpe3RoaXMuYz1hfVxuZnVuY3Rpb24gRGtiKGEpe3RoaXMuZD1hfVxuZnVuY3Rpb24gYnJiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gRnJiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gaHNiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gY3RiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gY3hiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYXhiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZXhiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZ3hiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gd3ViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gekFiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSkFiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTEFiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUEFiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVkJiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbENiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbkNiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gcENiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQ0NiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gR0NiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYkRiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZERiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZkRiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gdURiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gJERiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYUViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZUViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gT0ViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gU0ViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gU0ZiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSEZiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTkZiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gV0diKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSEpiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUEpiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24ga05iKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gdE9iKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQVBiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSVFiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYlRiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZFRiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gd1RiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gR1diKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVVdiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gV1diKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZlhiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24galhiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTTBiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gcjFiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gRDFiKGEpe3RoaXMuZT1hfVxuZnVuY3Rpb24gVDNiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVzNiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gXzNiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYzRiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gczViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gdTViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24geTViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQzViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUTViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUzViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVTViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVzViKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbDdiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gcDdiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gazhiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTDhiKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUmFjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWGFjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gJGFjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYmJjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQ2RjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gRWRjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gRWhjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24ga2hjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSWhjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gcWZjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gdGZjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gV2ZjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gRmljKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVmljKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZmpjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gcGpjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gY2tjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gaGtjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWWtjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gJGtjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYWxjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZ2xjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gaWxjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gc2xjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQ2xjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24geG9jKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gem9jKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gc3BjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVnFjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWHFjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gR3NjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSXNjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSkdjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTkdjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTUhjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSkljKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZkpjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQkpjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZEpjKGEpe3RoaXMuYz1hfVxuZnVuY3Rpb24gVHJjKGEpe3RoaXMuYj1hfVxuZnVuY3Rpb24gZUtjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSUtjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gS0tjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTUtjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24geUxjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSE1jKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTE1jKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUE1jKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVE1jKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWE1jKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWk1jKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYU5jKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gak5jKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYVBjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZ1BjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24ga1BjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24geVBjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQ1BjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSlBjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUlBjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWFBjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbVJjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24geFRjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQ1djKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gRVdjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSVdjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gT1djKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZFhjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZ1hjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gRVhjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gV1hjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWVhjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYVljKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gY1ljKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZVljKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gaVljKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gaTBjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZzBjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUDFjKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gU2FkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVWFkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gV2FkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWWFkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gY2JkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24geWRkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gS2RkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTWRkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gX2VkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZGZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gS2ZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gcHJkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gJHJkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gY3NkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVXNkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVnRkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gd3VkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUnVkKGEpe3RoaXMuZj1hfVxuZnVuY3Rpb24gTEVkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVUVkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gVkVkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gV0VkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWEVkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWUVkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWkVkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gJEVkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gX0VkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYUZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZ0ZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gaUZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gakZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24ga0ZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbEZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbkZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gcUZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gd0ZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24geEZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gekZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQUZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQkZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQ0ZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gREZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTUZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gT0ZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUUZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gU0ZkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gdUdkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUUdkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gakdkKGEpe3RoaXMuYj1hfVxuZnVuY3Rpb24gWU9kKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZVBkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24ga1BkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gcVBkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSVBkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gdyRkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gZV9kKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gUV9kKGEpe3RoaXMuYj1hfVxuZnVuY3Rpb24gYzFkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gYzJkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gbDVkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gSTlkKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gTDZkKGEpe3RoaXMuYz1hfVxuZnVuY3Rpb24gdDdkKGEpe3RoaXMuZT1hfVxuZnVuY3Rpb24gcGFlKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24geGFlKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gWmRlKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gU2RlKGEpe3RoaXMuZD1hfVxuZnVuY3Rpb24gbWVlKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gdWplKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gQnRlKGEpe3RoaXMuYT1hfVxuZnVuY3Rpb24gV3NlKGEpe3RoaXMuZT1hfVxuZnVuY3Rpb24gWHNkKCl7dGhpcy5hPTB9XG5mdW5jdGlvbiBUc2IoKXtha2IodGhpcyl9XG5mdW5jdGlvbiBibmIoKXtQbWIodGhpcyl9XG5mdW5jdGlvbiBjSGIoKXtiSGIodGhpcyl9XG5mdW5jdGlvbiBJMmIoKXtBMmIodGhpcyl9XG5mdW5jdGlvbiBzMmQoKXt0aGlzLmM9ZDJkfVxuZnVuY3Rpb24gUHJjKGEsYil7YS5iKz1ifVxuZnVuY3Rpb24gVWplKGEsYil7Yi5XYihhKX1cbmZ1bmN0aW9uIFVDKGEpe3JldHVybiBhLmF9XG5mdW5jdGlvbiBuQyhhKXtyZXR1cm4gYS5hfVxuZnVuY3Rpb24gQkMoYSl7cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIFRCKGEpe3JldHVybiBhLmF9XG5mdW5jdGlvbiBfQihhKXtyZXR1cm4gYS5hfVxuZnVuY3Rpb24gQWRiKGEpe3JldHVybiBhLmV9XG5mdW5jdGlvbiBnQygpe3JldHVybiBudWxsfVxuZnVuY3Rpb24gTUMoKXtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGxlYigpe01JZCgpO09JZCgpfVxuZnVuY3Rpb24gcU1iKGEpe2EuYi5PZihhLmUpfVxuZnVuY3Rpb24gQSRiKGEpe2EuYj1uZXcgUml9XG5mdW5jdGlvbiBBOGIoYSxiKXthLmI9Yi1hLmJ9XG5mdW5jdGlvbiB4OGIoYSxiKXthLmE9Yi1hLmF9XG5mdW5jdGlvbiBaRWIoYSxiKXthLnB1c2goYil9XG5mdW5jdGlvbiBiRmIoYSxiKXthLnNvcnQoYil9XG5mdW5jdGlvbiBRNWMoYSxiKXtiLmpkKGEuYSl9XG5mdW5jdGlvbiBWb2MoYSxiKXtRM2IoYixhKX1cbmZ1bmN0aW9uIHRwKGEsYixjKXthLllkKGMsYil9XG5mdW5jdGlvbiBTcyhhLGIpe2EuZT1iO2IuYj1hfVxuZnVuY3Rpb24gaW0oYSl7X2woKTt0aGlzLmE9YX1cbmZ1bmN0aW9uIHhxKGEpe19sKCk7dGhpcy5hPWF9XG5mdW5jdGlvbiBHcShhKXtfbCgpO3RoaXMuYT1hfVxuZnVuY3Rpb24gWHEoYSl7dG0oKTt0aGlzLmE9YX1cbmZ1bmN0aW9uIGdBKGEpe2ZBKCk7ZUEubGUoYSl9XG5mdW5jdGlvbiB2QSgpe3ZBPWdlYjtuZXcgVHNifVxuZnVuY3Rpb24geHooKXttei5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gQ2ViKCl7bXouY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIHVlYigpe3h6LmNhbGwodGhpcyl9XG5mdW5jdGlvbiB5ZWIoKXt4ei5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gSGZiKCl7eHouY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIF9mYigpe3h6LmNhbGwodGhpcyl9XG5mdW5jdGlvbiBjZ2IoKXt4ei5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gTmdiKCl7eHouY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIGppYigpe3h6LmNhbGwodGhpcyl9XG5mdW5jdGlvbiBKcmIoKXt4ei5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gU3JiKCl7eHouY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIER2Yigpe3h6LmNhbGwodGhpcyl9XG5mdW5jdGlvbiBJZWQoKXt4ei5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gUjFkKCl7dGhpcy5hPXRoaXN9XG5mdW5jdGlvbiBrMWQoKXt0aGlzLkJifD0yNTZ9XG5mdW5jdGlvbiB2V2IoKXt0aGlzLmI9bmV3IEV0fVxuZnVuY3Rpb24gYUZiKGEsYil7YS5sZW5ndGg9Yn1cbmZ1bmN0aW9uIGR5YihhLGIpe1JtYihhLmEsYil9XG5mdW5jdGlvbiBqTmIoYSxiKXtMS2IoYS5jLGIpfVxuZnVuY3Rpb24gcVJjKGEsYil7WXNiKGEuYixiKX1cbmZ1bmN0aW9uIFZPZChhLGIpe1VOZChhLmEsYil9XG5mdW5jdGlvbiBXT2QoYSxiKXtWTmQoYS5hLGIpfVxuZnVuY3Rpb24gZVpkKGEsYil7cXZkKGEuZSxiKX1cbmZ1bmN0aW9uIENrZShhKXtiZ2UoYS5jLGEuYil9XG5mdW5jdGlvbiB1aihhLGIpe2Eua2MoKS5OYihiKX1cbmZ1bmN0aW9uIFVmYihhKXt0aGlzLmE9WmZiKGEpfVxuZnVuY3Rpb24gX3NiKCl7dGhpcy5hPW5ldyBUc2J9XG5mdW5jdGlvbiAkQWIoKXt0aGlzLmE9bmV3IFRzYn1cbmZ1bmN0aW9uIHhBYigpe3RoaXMuYT1uZXcgZHpifVxuZnVuY3Rpb24gZ3liKCl7dGhpcy5hPW5ldyBibmJ9XG5mdW5jdGlvbiBCSWIoKXt0aGlzLmE9bmV3IGJuYn1cbmZ1bmN0aW9uIEdJYigpe3RoaXMuYT1uZXcgYm5ifVxuZnVuY3Rpb24gd0liKCl7dGhpcy5hPW5ldyBwSWJ9XG5mdW5jdGlvbiBnSmIoKXt0aGlzLmE9bmV3IERJYn1cbmZ1bmN0aW9uIFRUYigpe3RoaXMuYT1uZXcgRFRifVxuZnVuY3Rpb24gakdiKCl7dGhpcy5hPW5ldyBmR2J9XG5mdW5jdGlvbiBxR2IoKXt0aGlzLmE9bmV3IGtHYn1cbmZ1bmN0aW9uIHFfYigpe3RoaXMuYT1uZXcgYm5ifVxuZnVuY3Rpb24gRV9iKCl7dGhpcy5hPW5ldyBibmJ9XG5mdW5jdGlvbiBFWmIoKXt0aGlzLmE9bmV3IGJuYn1cbmZ1bmN0aW9uIEokYigpe3RoaXMuYT1uZXcgYm5ifVxuZnVuY3Rpb24gWU5iKCl7dGhpcy5kPW5ldyBibmJ9XG5mdW5jdGlvbiBsWGIoKXt0aGlzLmE9bmV3IFJXYn1cbmZ1bmN0aW9uIHlfYigpe3RoaXMuYT1uZXcgX3NifVxuZnVuY3Rpb24gazViKCl7dGhpcy5hPW5ldyBUc2J9XG5mdW5jdGlvbiBFMGIoKXt0aGlzLmI9bmV3IFRzYn1cbmZ1bmN0aW9uIGpIYygpe3RoaXMuYj1uZXcgYm5ifVxuZnVuY3Rpb24gWk5jKCl7dGhpcy5lPW5ldyBibmJ9XG5mdW5jdGlvbiBhaGMoKXt0aGlzLmE9bmV3IGJvY31cbmZ1bmN0aW9uIFVRYygpe3RoaXMuZD1uZXcgYm5ifVxuZnVuY3Rpb24gdVJjKCl7dFJjLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBCUmMoKXt0UmMuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIFZPYygpe2JuYi5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gd2ViKCl7dWViLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBGeWIoKXtneWIuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIGZLYigpe1JKYi5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gTiRiKCl7SiRiLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBQMmIoKXtJMmIuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIFQyYigpe1AyYi5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gejNiKCl7STJiLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBDM2IoKXt6M2IuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIGNVYygpe2FVYy5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gaFVjKCl7YVVjLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBtVWMoKXthVWMuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIEhkZCgpe0RkZC5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gQUNkKCl7JHlkLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBQQ2QoKXskeWQuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIEVqZCgpe1l1Yi5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gTFFkKCl7d1FkLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBsUmQoKXt3UWQuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIE1TZCgpe1RzYi5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gVlNkKCl7VHNiLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBlVGQoKXtUc2IuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIG1YZCgpe0hXZC5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gaTFkKCl7X3NiLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBBMWQoKXtrMWQuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIHE0ZCgpe2RXZC5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gTzVkKCl7VHNiLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBSNWQoKXtkV2QuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIGxhZSgpe1RzYi5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gQ2FlKCl7VHNiLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBvbWUoKXtrVWQuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIEhtZSgpe29tZS5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gTm1lKCl7a1VkLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBHcmUoKXtUcWUuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIGFVYygpe3RoaXMuYT1uZXcgX3NifVxuZnVuY3Rpb24gblpjKCl7dGhpcy5hPW5ldyBUc2J9XG5mdW5jdGlvbiBEWmMoKXt0aGlzLmE9bmV3IGJuYn1cbmZ1bmN0aW9uIERkZCgpe3RoaXMuYT1uZXcgVHNifVxuZnVuY3Rpb24gT3FkKCl7dGhpcy5hPW5ldyBZdWJ9XG5mdW5jdGlvbiBPZWQoKXt0aGlzLmo9bmV3IGJuYn1cbmZ1bmN0aW9uIG9iZCgpe3RoaXMuYT1uZXcgbmJkfVxuZnVuY3Rpb24gd1FkKCl7dGhpcy5hPW5ldyBBUWR9XG5mdW5jdGlvbiBSNWMoKXt0aGlzLmE9bmV3IFY1Y31cbmZ1bmN0aW9uIHdiKCl7d2I9Z2ViO3ZiPW5ldyB4Yn1cbmZ1bmN0aW9uIFdrKCl7V2s9Z2ViO1ZrPW5ldyBYa31cbmZ1bmN0aW9uIGtsKCl7a2w9Z2ViO2psPW5ldyBsbH1cbmZ1bmN0aW9uIGxsKCl7UWsuY2FsbCh0aGlzLCcnKX1cbmZ1bmN0aW9uIFhrKCl7UWsuY2FsbCh0aGlzLCcnKX1cbmZ1bmN0aW9uIERkKGEpe3lkLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIEhkKGEpe3lkLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIHhoKGEpe3RoLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uICRoKGEpe1djLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIFFpKGEpe1djLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIHdpKGEpeyRoLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIFNwKGEpeyRoLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIEpzKGEpeyRoLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIEpwKGEpe1hvLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIFFwKGEpe1hvLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIGRxKGEpe2hvLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIEZ2KGEpe3V2LmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIGF3KGEpe1RyLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIGN3KGEpe1RyLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIF93KGEpe1RyLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIE14KGEpe0duLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIE54KGEpe014LmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIHl6KGEpe256LmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIGFDKGEpe3l6LmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIHVDKCl7dkMuY2FsbCh0aGlzLHt9KX1cbmZ1bmN0aW9uIGNDKCl7Y0M9Z2ViO2JDPW5ldyBkQ31cbmZ1bmN0aW9uIHpzKCl7enM9Z2ViO3lzPW5ldyBBc31cbmZ1bmN0aW9uIEF6KCl7QXo9Z2ViO3p6PW5ldyBuYn1cbmZ1bmN0aW9uICR6KCl7JHo9Z2ViO1p6PW5ldyBiQX1cbmZ1bmN0aW9uICRBKCl7JEE9Z2ViO1pBPW5ldyBhQn1cbmZ1bmN0aW9uIE92YihhKXtLdmIoKTt0aGlzLmE9YX1cbmZ1bmN0aW9uIEZLYyhhKXtqS2MoKTt0aGlzLmE9YX1cbmZ1bmN0aW9uIHp1ZChhKXtudWQoKTt0aGlzLmY9YX1cbmZ1bmN0aW9uIEJ1ZChhKXtudWQoKTt0aGlzLmY9YX1cbmZ1bmN0aW9uIENkZShhKXtLTWQoKTt0aGlzLmE9YX1cbmZ1bmN0aW9uIEx5YihhKXthLmI9bnVsbDthLmM9MH1cbmZ1bmN0aW9uIGt6KGEsYil7YS5lPWI7aHooYSxiKX1cbmZ1bmN0aW9uIE5ZYihhLGIpe2EuYT1iO1BZYihhKX1cbmZ1bmN0aW9uIGNMYihhLGIsYyl7YS5hW2IuZ109Y31cbmZ1bmN0aW9uIHpzZChhLGIsYyl7SHNkKGMsYSxiKX1cbmZ1bmN0aW9uIHNoYyhhLGIpe1htYyhiLmksYS5uKX1cbmZ1bmN0aW9uIEhDYyhhLGIpe0lDYyhhKS5DZChiKX1cbmZ1bmN0aW9uIHl3KGEsYil7YS5hLmVjKCkuTWMoYil9XG5mdW5jdGlvbiBucyhhLGIpe3JldHVybiBhLmctYi5nfVxuZnVuY3Rpb24gQVViKGEsYil7cmV0dXJuIGEqYS9ifVxuZnVuY3Rpb24gSGViKGEpe3JldHVybiB1RmIoYSksYX1cbmZ1bmN0aW9uIEtmYihhKXtyZXR1cm4gdUZiKGEpLGF9XG5mdW5jdGlvbiBNZmIoYSl7cmV0dXJuIHVGYihhKSxhfVxuZnVuY3Rpb24gSkMoYSl7cmV0dXJuIG5ldyBoQyhhKX1cbmZ1bmN0aW9uIExDKGEpe3JldHVybiBuZXcgT0MoYSl9XG5mdW5jdGlvbiBzaGIoYSl7cmV0dXJuIHVGYihhKSxhfVxuZnVuY3Rpb24gQ2hiKGEpe3JldHVybiB1RmIoYSksYX1cbmZ1bmN0aW9uIHRlYihhKXt5ei5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiB2ZWIoYSl7eXouY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24gemViKGEpe3l6LmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIEFlYihhKXtuei5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBJZmIoYSl7eXouY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24gYWdiKGEpe3l6LmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIGRnYihhKXt5ei5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBNZ2IoYSl7eXouY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24gT2diKGEpe3l6LmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIGtpYihhKXt5ei5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBKZWQoYSl7eXouY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24gS2VkKGEpe3l6LmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIENEZChhKXt5ei5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBNbGUoYSl7eXouY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24gTHFlKGEpe3l6LmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIG1vYihhKXt1RmIoYSk7dGhpcy5hPWF9XG5mdW5jdGlvbiB5WWIoYSl7c1liKGEpO3JldHVybiBhfVxuZnVuY3Rpb24gTm5iKGEpe1NuYihhLGEubGVuZ3RoKX1cbmZ1bmN0aW9uIG5tYihhKXtyZXR1cm4gYS5iPT1hLmN9XG5mdW5jdGlvbiBWeWIoYSl7cmV0dXJuICEhYSYmYS5ifVxuZnVuY3Rpb24gZ0xiKGEpe3JldHVybiAhIWEmJmEua31cbmZ1bmN0aW9uIGhMYihhKXtyZXR1cm4gISFhJiZhLmp9XG5mdW5jdGlvbiBGX2IoYSxiLGMpe2EuYy5FZihiLGMpfVxuZnVuY3Rpb24gVHMoYSxiKXthLmJlKGIpO2IuYWUoYSl9XG5mdW5jdGlvbiBGeShhKXtfbCgpO3RoaXMuYT1RYihhKX1cbmZ1bmN0aW9uIEdiKCl7dGhpcy5hPVdEKFFiKHB2ZSkpfVxuZnVuY3Rpb24gamMoKXt0aHJvdyBBZGIobmV3IGppYil9XG5mdW5jdGlvbiBqbigpe3Rocm93IEFkYihuZXcgamliKX1cbmZ1bmN0aW9uIEhoKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gWGkoKXt0aHJvdyBBZGIobmV3IGppYil9XG5mdW5jdGlvbiBYaigpe3Rocm93IEFkYihuZXcgamliKX1cbmZ1bmN0aW9uIFlqKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gUXooKXtRej1nZWI7ISEoZkEoKSxlQSl9XG5mdW5jdGlvbiBRaGIoKXtyZWIuY2FsbCh0aGlzLCcnKX1cbmZ1bmN0aW9uIFJoYigpe3JlYi5jYWxsKHRoaXMsJycpfVxuZnVuY3Rpb24gYmliKCl7cmViLmNhbGwodGhpcywnJyl9XG5mdW5jdGlvbiBjaWIoKXtyZWIuY2FsbCh0aGlzLCcnKX1cbmZ1bmN0aW9uIGVpYihhKXt2ZWIuY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24geGViKGEpe3ZlYi5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBWZ2IoYSl7YWdiLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIExxYihhKXt4cGIuY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24gU3FiKGEpe0xxYi5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBpcmIoYSl7VXBiLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIHBjKGEpe3FjLmNhbGwodGhpcyxhLDApfVxuZnVuY3Rpb24gUmkoKXtTaS5jYWxsKHRoaXMsMTIsMyl9XG5mdW5jdGlvbiBXQyhhLGIpe3JldHVybiB4ZmIoYSxiKX1cbmZ1bmN0aW9uIGNGYihhLGIpe3JldHVybiBkRChhLGIpfVxuZnVuY3Rpb24gUmViKGEsYil7cmV0dXJuIGEuYS1iLmF9XG5mdW5jdGlvbiBhZmIoYSxiKXtyZXR1cm4gYS5hLWIuYX1cbmZ1bmN0aW9uIFdnYihhLGIpe3JldHVybiBhLmEtYi5hfVxuZnVuY3Rpb24gcEMoYixhKXtyZXR1cm4gYSBpbiBiLmF9XG5mdW5jdGlvbiBWdmIoYSl7cmV0dXJuIGEuYT9hLmI6MH1cbmZ1bmN0aW9uIGN3YihhKXtyZXR1cm4gYS5hP2EuYjowfVxuZnVuY3Rpb24gRnhiKGEsYixjKXtiLkNkKGEuYVtjXSl9XG5mdW5jdGlvbiBLeGIoYSxiLGMpe2IuUGUoYS5hW2NdKX1cbmZ1bmN0aW9uIHVLYihhLGIpe2EuYj1uZXcgc2pkKGIpfVxuZnVuY3Rpb24gUUdiKGEsYil7YS5iPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBSR2IoYSxiKXthLmM9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIFNHYihhLGIpe2EuZj1iO3JldHVybiBhfVxuZnVuY3Rpb24gVEdiKGEsYil7YS5nPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiB5SmIoYSxiKXthLmE9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIHpKYihhLGIpe2EuZj1iO3JldHVybiBhfVxuZnVuY3Rpb24gQUpiKGEsYil7YS5rPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBXTmIoYSxiKXthLmE9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIFhOYihhLGIpe2EuZT1iO3JldHVybiBhfVxuZnVuY3Rpb24gQlliKGEsYil7YS5lPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBDWWIoYSxiKXthLmY9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIEJSYihhLGIpe2EuYj10cnVlO2EuZD1ifVxuZnVuY3Rpb24gV05jKGEsYil7cmV0dXJuIGEuYi1iLmJ9XG5mdW5jdGlvbiBLU2MoYSxiKXtyZXR1cm4gYS5nLWIuZ31cbmZ1bmN0aW9uIHBtYyhhLGIpe3JldHVybiBhPzA6Yi0xfVxuZnVuY3Rpb24gcUtjKGEsYil7cmV0dXJuIGE/MDpiLTF9XG5mdW5jdGlvbiBwS2MoYSxiKXtyZXR1cm4gYT9iLTE6MH1cbmZ1bmN0aW9uIHVWYyhhLGIpe3JldHVybiBhLnMtYi5zfVxuZnVuY3Rpb24gWGVkKGEsYil7cmV0dXJuIGIucmcoYSl9XG5mdW5jdGlvbiBYZmQoYSxiKXthLmI9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIFdmZChhLGIpe2EuYT1iO3JldHVybiBhfVxuZnVuY3Rpb24gWWZkKGEsYil7YS5jPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBaZmQoYSxiKXthLmQ9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uICRmZChhLGIpe2EuZT1iO3JldHVybiBhfVxuZnVuY3Rpb24gX2ZkKGEsYil7YS5mPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBtZ2QoYSxiKXthLmE9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIG5nZChhLGIpe2EuYj1iO3JldHVybiBhfVxuZnVuY3Rpb24gb2dkKGEsYil7YS5jPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBLaGQoYSxiKXthLmM9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIEpoZChhLGIpe2EuYj1iO3JldHVybiBhfVxuZnVuY3Rpb24gTGhkKGEsYil7YS5kPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBNaGQoYSxiKXthLmU9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIE5oZChhLGIpe2EuZj1iO3JldHVybiBhfVxuZnVuY3Rpb24gT2hkKGEsYil7YS5nPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBQaGQoYSxiKXthLmE9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIFFoZChhLGIpe2EuaT1iO3JldHVybiBhfVxuZnVuY3Rpb24gUmhkKGEsYil7YS5qPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBjb2MoYSxiKXtNbmMoKTtQM2IoYixhKX1cbmZ1bmN0aW9uIGJiZChhLGIsYyl7X2FkKGEuYSxiLGMpfVxuZnVuY3Rpb24gRmpkKGEpe1p1Yi5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBUUmIoYSl7U1JiLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIHBMYyhhKXtDSWMuY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24gSUxjKGEpe0NJYy5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBnTGQoYSl7WkhkLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIERQZChhKXt4UGQuY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24gRlBkKGEpe3hQZC5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiB4MmIoKXt5MmIuY2FsbCh0aGlzLCcnKX1cbmZ1bmN0aW9uIHBqZCgpe3RoaXMuYT0wO3RoaXMuYj0wfVxuZnVuY3Rpb24gQVRjKCl7dGhpcy5iPTA7dGhpcy5hPTB9XG5mdW5jdGlvbiBsWGQoYSxiKXthLmI9MDtiV2QoYSxiKX1cbmZ1bmN0aW9uIEtxZChhLGIpe2Euaz1iO3JldHVybiBhfVxuZnVuY3Rpb24gTHFkKGEsYil7YS5qPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiB2ZmUoYSxiKXthLmM9YjthLmI9dHJ1ZX1cbmZ1bmN0aW9uIEV0Yigpe0V0Yj1nZWI7RHRiPUd0YigpfVxuZnVuY3Rpb24gYnZkKCl7YnZkPWdlYjthdmQ9T0FkKCl9XG5mdW5jdGlvbiBkdmQoKXtkdmQ9Z2ViO2N2ZD1hQ2QoKX1cbmZ1bmN0aW9uIE1JZCgpe01JZD1nZWI7TElkPXlnZCgpfVxuZnVuY3Rpb24galRkKCl7alRkPWdlYjtpVGQ9UWFlKCl9XG5mdW5jdGlvbiBPbGUoKXtPbGU9Z2ViO05sZT12bmUoKX1cbmZ1bmN0aW9uIFFsZSgpe1FsZT1nZWI7UGxlPUNuZSgpfVxuZnVuY3Rpb24gbWZiKGEpe3JldHVybiBhLmUmJmEuZSgpfVxuZnVuY3Rpb24gRkQoYSl7cmV0dXJuIGEubHxhLm08PDIyfVxuZnVuY3Rpb24gT2MoYSxiKXtyZXR1cm4gYS5jLl9iKGIpfVxuZnVuY3Rpb24gRW4oYSxiKXtyZXR1cm4gV3YoYS5iLGIpfVxuZnVuY3Rpb24gVmQoYSl7cmV0dXJuICFhP251bGw6YS5kfVxuZnVuY3Rpb24gVnYoYSl7cmV0dXJuICFhP251bGw6YS5nfVxuZnVuY3Rpb24gJHYoYSl7cmV0dXJuICFhP251bGw6YS5pfVxuZnVuY3Rpb24gbmZiKGEpe2xmYihhKTtyZXR1cm4gYS5vfVxuZnVuY3Rpb24gS2hiKGEsYil7YS5hKz1iO3JldHVybiBhfVxuZnVuY3Rpb24gTGhiKGEsYil7YS5hKz1iO3JldHVybiBhfVxuZnVuY3Rpb24gT2hiKGEsYil7YS5hKz1iO3JldHVybiBhfVxuZnVuY3Rpb24gVWhiKGEsYil7YS5hKz1iO3JldHVybiBhfVxuZnVuY3Rpb24gX3diKGEsYil7d2hpbGUoYS5CZChiKSk7fVxuZnVuY3Rpb24gYXRiKGEpe3RoaXMuYT1uZXcgVXNiKGEpfVxuZnVuY3Rpb24gJHRiKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gcXBiKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gcnBiKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gc3BiKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gdnBiKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gT3BiKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24geUFiKGEpe3RoaXMuYT1uZXcgZXpiKGEpfVxuZnVuY3Rpb24gSDJjKCl7dGhpcy5hPW5ldyBXZWQoczApfVxuZnVuY3Rpb24gVFZjKCl7dGhpcy5iPW5ldyBXZWQoSCQpfVxuZnVuY3Rpb24gbDZjKCl7dGhpcy5hPW5ldyBXZWQoVjApfVxuZnVuY3Rpb24gJGFkKCl7dGhpcy5iPW5ldyBXZWQoSTEpfVxuZnVuY3Rpb24gbmJkKCl7dGhpcy5iPW5ldyBXZWQoSTEpfVxuZnVuY3Rpb24gVDJjKGEpe3RoaXMuYT0wO3RoaXMuYj1hfVxuZnVuY3Rpb24gQmliKGEpe3RpYigpO3ZpYih0aGlzLGEpfVxuZnVuY3Rpb24gUURiKGEpe0xDYihhKTtyZXR1cm4gYS5hfVxuZnVuY3Rpb24gZHZiKGEpe3JldHVybiBhLmIhPWEuZC5jfVxuZnVuY3Rpb24gQU1jKGEsYil7cmV0dXJuIGEuZFtiLnBdfVxuZnVuY3Rpb24gdWVkKGEsYil7cmV0dXJuIG5lZChhLGIpfVxuZnVuY3Rpb24gJEViKGEsYixjKXthLnNwbGljZShiLGMpfVxuZnVuY3Rpb24gaXhiKGEsYil7d2hpbGUoYS5SZShiKSk7fVxuZnVuY3Rpb24gTktiKGEpe2EuYz9NS2IoYSk6T0tiKGEpfVxuZnVuY3Rpb24gbVFkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gblFkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gb1FkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gcFFkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gcVFkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gclFkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gc1FkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gdFFkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gdVFkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24gdlFkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfVxuZnVuY3Rpb24genVlKCl7dGhyb3cgQWRiKG5ldyBEdmIpfVxuZnVuY3Rpb24gQXVlKCl7dGhyb3cgQWRiKG5ldyBEdmIpfVxuZnVuY3Rpb24gb3VlKGEpe3RoaXMuYT1uZXcgRHRlKGEpfVxuZnVuY3Rpb24gRHRlKGEpe0N0ZSh0aGlzLGEsc3NlKCkpfVxuZnVuY3Rpb24gY3ZlKGEpe3JldHVybiAhYXx8YnZlKGEpfVxuZnVuY3Rpb24gQ3FlKGEpe3JldHVybiB4cWVbYV0hPS0xfVxuZnVuY3Rpb24gWXooKXtOeiE9MCYmKE56PTApO1B6PS0xfVxuZnVuY3Rpb24gYmViKCl7X2RiPT1udWxsJiYoX2RiPVtdKX1cbmZ1bmN0aW9uIGVnKGEsYil7emYuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBnZyhhLGIpe2VnLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gTmooYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIGhrKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBuayhhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gcGsoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIHhrKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiB6ayhhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gS2soYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIG5lKGEsYil7dGhpcy5lPWE7dGhpcy5kPWJ9XG5mdW5jdGlvbiBIZihhLGIpe3RoaXMuYj1hO3RoaXMuYz1ifVxuZnVuY3Rpb24gY3AoYSxiKXt0aGlzLmI9YTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIENwKGEsYil7dGhpcy5iPWE7dGhpcy5hPWJ9XG5mdW5jdGlvbiBxcihhLGIpe3RoaXMuYj1hO3RoaXMuYT1ifVxuZnVuY3Rpb24gUnIoYSxiKXt0aGlzLmI9YTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIHZyKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBzdShhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gSHUoYSxiKXt0aGlzLmE9YTt0aGlzLmY9Yn1cbmZ1bmN0aW9uIGdwKGEsYil7dGhpcy5nPWE7dGhpcy5pPWJ9XG5mdW5jdGlvbiBxcyhhLGIpe3RoaXMuZj1hO3RoaXMuZz1ifVxuZnVuY3Rpb24gR3YoYSxiKXt0aGlzLmI9YTt0aGlzLmM9Yn1cbmZ1bmN0aW9uIFdjKGEpe0xiKGEuZGMoKSk7dGhpcy5jPWF9XG5mdW5jdGlvbiBFeChhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gZXkoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIHB2KGEpe3RoaXMuYT1SRChRYihhKSwxNSl9XG5mdW5jdGlvbiB1dihhKXt0aGlzLmE9UkQoUWIoYSksMTUpfVxuZnVuY3Rpb24gbncoYSl7dGhpcy5hPVJEKFFiKGEpLDg1KX1cbmZ1bmN0aW9uIHJmKGEpe3RoaXMuYj1SRChRYihhKSw4NSl9XG5mdW5jdGlvbiBUcihhKXt0aGlzLmI9UkQoUWIoYSksNTEpfVxuZnVuY3Rpb24gdUIoKXt0aGlzLnE9bmV3ICR3bmQuRGF0ZX1cbmZ1bmN0aW9uIENDKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBCdChhLGIpe3JldHVybiBVamIoYS5iLGIpfVxuZnVuY3Rpb24gdHBiKGEsYil7cmV0dXJuIGEuYi5IYyhiKX1cbmZ1bmN0aW9uIHVwYihhLGIpe3JldHVybiBhLmIuSWMoYil9XG5mdW5jdGlvbiB3cGIoYSxiKXtyZXR1cm4gYS5iLlFjKGIpfVxuZnVuY3Rpb24gUHFiKGEsYil7cmV0dXJuIGEuYi5IYyhiKX1cbmZ1bmN0aW9uIHBxYihhLGIpe3JldHVybiBhLmMudWMoYil9XG5mdW5jdGlvbiBycWIoYSxiKXtyZXR1cm4gcGIoYS5jLGIpfVxuZnVuY3Rpb24gWnNiKGEsYil7cmV0dXJuIGEuYS5fYihiKX1cbmZ1bmN0aW9uIFhwKGEsYil7cmV0dXJuIGE+YiYmYjxod2V9XG5mdW5jdGlvbiBia2IoYSl7cmV0dXJuIGEuZi5jK2EuaS5jfVxuZnVuY3Rpb24gSUMoYSl7cmV0dXJuIFdCKCksYT9WQjpVQn1cbmZ1bmN0aW9uIFVzYihhKXtja2IuY2FsbCh0aGlzLGEsMCl9XG5mdW5jdGlvbiBkemIoKXtlemIuY2FsbCh0aGlzLG51bGwpfVxuZnVuY3Rpb24gT3NiKGEpe3RoaXMuYz1hO0xzYih0aGlzKX1cbmZ1bmN0aW9uIFl1Yigpe0x1Yih0aGlzKTtYdWIodGhpcyl9XG5mdW5jdGlvbiBnaWIoKXtnaWI9Z2ViO2ZpYj1uZXcgb2VifVxuZnVuY3Rpb24gUW9iKCl7UW9iPWdlYjtQb2I9bmV3IFJvYn1cbmZ1bmN0aW9uIFR2Yigpe1R2Yj1nZWI7U3ZiPW5ldyBYdmJ9XG5mdW5jdGlvbiBid2IoKXtid2I9Z2ViO2F3Yj1uZXcgZHdifVxuZnVuY3Rpb24gU0FiKCl7U0FiPWdlYjtSQWI9bmV3IFZBYn1cbmZ1bmN0aW9uIHJEYigpe05DYi5jYWxsKHRoaXMsbnVsbCl9XG5mdW5jdGlvbiB4RGIoKXt4RGI9Z2ViO3dEYj1uZXcgS0VifVxuZnVuY3Rpb24gRkRiKGEsYil7TENiKGEpO2EuYS5OYihiKX1cbmZ1bmN0aW9uIHNBYihhLGIpe3JldHVybiBhLmEuWGMoYil9XG5mdW5jdGlvbiB0QWIoYSxiKXtyZXR1cm4gYS5hLlljKGIpfVxuZnVuY3Rpb24gdUFiKGEsYil7cmV0dXJuIGEuYS4kYyhiKX1cbmZ1bmN0aW9uIHZBYihhLGIpe3JldHVybiBhLmEuX2MoYil9XG5mdW5jdGlvbiBKQmIoYSxiKXtyZXR1cm4gYS5HYyhiKSxhfVxuZnVuY3Rpb24gS0JiKGEsYil7cmV0dXJuIHllKGEsYiksYX1cbmZ1bmN0aW9uIG1fZChhLGIpe3BMZCh4WWQoYS5hKSxiKX1cbmZ1bmN0aW9uIHJfZChhLGIpe3BMZCh4WWQoYS5hKSxiKX1cbmZ1bmN0aW9uIEVCYihhLGIpe2EuR2MoYik7cmV0dXJuIGF9XG5mdW5jdGlvbiBoR2IoYSxiKXthLmEuZj1iO3JldHVybiBhfVxuZnVuY3Rpb24gbkdiKGEsYil7YS5hLmQ9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIG9HYihhLGIpe2EuYS5nPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBwR2IoYSxiKXthLmEuaj1iO3JldHVybiBhfVxuZnVuY3Rpb24gc0liKGEsYil7YS5hLmE9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIHRJYihhLGIpe2EuYS5kPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiB1SWIoYSxiKXthLmEuZT1iO3JldHVybiBhfVxuZnVuY3Rpb24gdkliKGEsYil7YS5hLmc9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIGZKYihhLGIpe2EuYS5mPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBLSmIoYSl7YS5iPWZhbHNlO3JldHVybiBhfVxuZnVuY3Rpb24gd0diKCl7d0diPWdlYjt2R2I9bmV3IHhHYn1cbmZ1bmN0aW9uIFZSYigpe1ZSYj1nZWI7VVJiPW5ldyBXUmJ9XG5mdW5jdGlvbiB6WGIoKXt6WGI9Z2ViO3lYYj1uZXcgRlhifVxuZnVuY3Rpb24ga1liKCl7a1liPWdlYjtqWWI9bmV3IGxZYn1cbmZ1bmN0aW9uIHBZYigpe3BZYj1nZWI7b1liPW5ldyBRWWJ9XG5mdW5jdGlvbiBOWmIoKXtOWmI9Z2ViO01aYj1uZXcgU1pifVxuZnVuY3Rpb24gZzBiKCl7ZzBiPWdlYjtmMGI9bmV3IGwwYn1cbmZ1bmN0aW9uIGkxYigpe2kxYj1nZWI7aDFiPW5ldyBYMWJ9XG5mdW5jdGlvbiBzN2IoKXtzN2I9Z2ViO3I3Yj1uZXcgQzdifVxuZnVuY3Rpb24gSDViKCl7SDViPWdlYjtHNWI9bmV3IHBqZH1cbmZ1bmN0aW9uIEhjYygpe0hjYz1nZWI7R2NjPW5ldyBOY2N9XG5mdW5jdGlvbiBXamMoKXtXamM9Z2ViO1ZqYz1uZXcgSmxjfVxuZnVuY3Rpb24gbXFjKCl7bXFjPWdlYjtscWM9bmV3IEFxY31cbmZ1bmN0aW9uIEdDYygpe0dDYz1nZWI7RkNjPW5ldyBZcmR9XG5mdW5jdGlvbiBzYmQoKXtzYmQ9Z2ViO3JiZD1uZXcgdWJkfVxuZnVuY3Rpb24gQ2JkKCl7Q2JkPWdlYjtCYmQ9bmV3IERiZH1cbmZ1bmN0aW9uIF9jZCgpe19jZD1nZWI7JGNkPW5ldyBjZGR9XG5mdW5jdGlvbiBHR2MoKXt5R2MoKTt0aGlzLmM9bmV3IFJpfVxuZnVuY3Rpb24gdWJkKCl7cXMuY2FsbCh0aGlzLERCZSwwKX1cbmZ1bmN0aW9uIE1mZChhLGIsYyl7JGpiKGEuZCxiLmYsYyl9XG5mdW5jdGlvbiBiTmIoYSxiLGMsZCl7YU5iKGEsZCxiLGMpfVxuZnVuY3Rpb24gVjZiKGEsYixjLGQpeyQ2YihkLGEsYixjKX1cbmZ1bmN0aW9uIHZjYyhhLGIsYyxkKXt3Y2MoZCxhLGIsYyl9XG5mdW5jdGlvbiBEZ2QoYSxiKXtkdWIoYS5jLmMsYi5iLGIpfVxuZnVuY3Rpb24gQ2dkKGEsYil7ZHViKGEuYy5iLGIuYyxiKX1cbmZ1bmN0aW9uIEJZYyhhKXtyZXR1cm4gYS5lLmIrYS5mLmJ9XG5mdW5jdGlvbiBBWWMoYSl7cmV0dXJuIGEuZS5hK2EuZi5hfVxuZnVuY3Rpb24gTjFkKGEpe3JldHVybiBhLmI/YS5iOmEuYX1cbmZ1bmN0aW9uIHlUYyhhKXtyZXR1cm4gKGEuYythLmEpLzJ9XG5mdW5jdGlvbiBiMmQoYSxiKXtyZXR1cm4gR0EoYS5hLGIpfVxuZnVuY3Rpb24gcmZkKGEsYil7YS5hPWIuZztyZXR1cm4gYX1cbmZ1bmN0aW9uIGhUZCgpe2hUZD1nZWI7Z1RkPW5ldyBDYWV9XG5mdW5jdGlvbiBjVGQoKXtjVGQ9Z2ViO2JUZD1uZXcgZVRkfVxuZnVuY3Rpb24gbHVkKCl7bHVkPWdlYjtrdWQ9bmV3IFl1ZH1cbmZ1bmN0aW9uICRTZCgpeyRTZD1nZWI7WlNkPW5ldyBfU2R9XG5mdW5jdGlvbiBUU2QoKXtUU2Q9Z2ViO1NTZD1uZXcgVlNkfVxuZnVuY3Rpb24gWVNkKCl7WVNkPWdlYjtYU2Q9bmV3IE81ZH1cbmZ1bmN0aW9uIFBSZCgpe1BSZD1nZWI7T1JkPW5ldyBUc2J9XG5mdW5jdGlvbiBOMmQoKXtOMmQ9Z2ViO00yZD1uZXcgVWhlfVxuZnVuY3Rpb24gajNkKCl7ajNkPWdlYjtpM2Q9bmV3IFloZX1cbmZ1bmN0aW9uIEdpZSgpe0dpZT1nZWI7RmllPW5ldyBIaWV9XG5mdW5jdGlvbiBua2UoKXtua2U9Z2ViO21rZT1uZXcgcmtlfVxuZnVuY3Rpb24gdXVlKCl7dXVlPWdlYjt0dWU9bmV3IEN1ZX1cbmZ1bmN0aW9uIFRhZSgpe1RhZT1nZWI7UmFlPW5ldyBibmJ9XG5mdW5jdGlvbiBfdihhKXtyZXR1cm4gUkQoYSw0NCkubGQoKX1cbmZ1bmN0aW9uIEFrYihhKXtyZXR1cm4gYS5iPGEuZC5nYygpfVxuZnVuY3Rpb24gbWViKGIsYSl7cmV0dXJuIGEuc3BsaXQoYil9XG5mdW5jdGlvbiBJZGIoYSxiKXtyZXR1cm4gRGRiKGEsYik+MH1cbmZ1bmN0aW9uIExkYihhLGIpe3JldHVybiBEZGIoYSxiKTwwfVxuZnVuY3Rpb24gVXJiKGEsYil7cmV0dXJuIEJzYihhLmEsYil9XG5mdW5jdGlvbiBCZWIoYSxiKXtvei5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIFF4KGEpe1B4KCk7aG8uY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24gTG5iKGEsYil7UG5iKGEsYS5sZW5ndGgsYil9XG5mdW5jdGlvbiBNbmIoYSxiKXtSbmIoYSxhLmxlbmd0aCxiKX1cbmZ1bmN0aW9uIEt0YihhLGIpe3JldHVybiBhLmEuZ2V0KGIpfVxuZnVuY3Rpb24gYnViKGEsYil7cmV0dXJuIFVqYihhLmUsYil9XG5mdW5jdGlvbiBaeGIoYSl7cmV0dXJuIHVGYihhKSxmYWxzZX1cbmZ1bmN0aW9uIHp3KGEpe3RoaXMuYT1SRChRYihhKSwyMjkpfVxuZnVuY3Rpb24gJHdiKGEpe1N3Yi5jYWxsKHRoaXMsYSwyMSl9XG5mdW5jdGlvbiBkQWIoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIHlCYihhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gc3NiKGEsYil7dGhpcy5iPWE7dGhpcy5hPWJ9XG5mdW5jdGlvbiB4bGIoYSxiKXt0aGlzLmQ9YTt0aGlzLmU9Yn1cbmZ1bmN0aW9uIGpFYihhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gcEViKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiB2RWIoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIEJFYihhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gVEZiKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBRRWIoYSxiKXt0aGlzLmI9YTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIHNIYihhLGIpe3RoaXMuYj1hO3RoaXMuYT1ifVxuZnVuY3Rpb24gRUhiKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBNSGIoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGpJYihhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gJEpiKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBGS2IoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIHdMYihhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gbk9iKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBrUGIoYSxiKXt0aGlzLmI9YTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIEpQYihhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gZlJiKGEsYil7dGhpcy5iPWE7dGhpcy5hPWJ9XG5mdW5jdGlvbiBKUmIoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIE9UYihhLGIpe3RoaXMuYj1hO3RoaXMuYT1ifVxuZnVuY3Rpb24gVVViKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBCV2IoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIHRYYihhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gWEViKGEsYixjKXthLnNwbGljZShiLDAsYyl9XG5mdW5jdGlvbiBwcihhLGIsYyl7YS5NYihjKSYmYi5DZChjKX1cbmZ1bmN0aW9uIGxFYihhLGIsYyl7Yi5QZShhLmEuWWUoYykpfVxuZnVuY3Rpb24gckViKGEsYixjKXtiLkRkKGEuYS5aZShjKSl9XG5mdW5jdGlvbiB4RWIoYSxiLGMpe2IuQ2QoYS5hLktiKGMpKX1cbmZ1bmN0aW9uIGVZYihhLGIpe3JldHVybiBDc2IoYS5jLGIpfVxuZnVuY3Rpb24gY0diKGEsYil7cmV0dXJuIENzYihhLmUsYil9XG5mdW5jdGlvbiBxWmIoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIFYkYihhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gczNiKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBROGIoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGljYyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24geGVjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBnaWMoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIFhpYyhhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gaDRiKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiB2amMoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIHhqYyhhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gSGpjKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBoamMoYSxiKXt0aGlzLmI9YTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIEpqYyhhLGIpe3RoaXMuYj1hO3RoaXMuYT1ifVxuZnVuY3Rpb24gX1liKGEsYil7dGhpcy5iPWE7dGhpcy5hPWJ9XG5mdW5jdGlvbiBlWmIoYSxiKXt0aGlzLmM9YTt0aGlzLmQ9Yn1cbmZ1bmN0aW9uIFExYihhLGIpe3RoaXMuZT1hO3RoaXMuZD1ifVxuZnVuY3Rpb24gVGpjKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiB1bGMoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIEVsYyhhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gZnFjKGEsYil7dGhpcy5iPWE7dGhpcy5hPWJ9XG5mdW5jdGlvbiBzbWMoYSxiKXt0aGlzLmI9Yjt0aGlzLmM9YX1cbmZ1bmN0aW9uIGZuYyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gQ25jKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBrb2MoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGt0YyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gY3RjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiB1dGMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIEZ0YyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gUnRjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBfdGMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGl1YyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gdnVjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBEdWMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIFB1YyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gX3VjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBwdmMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIHl2YyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gSHZjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBQdmMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGR4YyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gYkRjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBuRGMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIHlEYyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gTERjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBiRWMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGxFYyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gdEVjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBDRWMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIExFYyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gVUVjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBtRmMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIHZGYyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gRUZjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBTS2MoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGNOYyhhLGIpe3RoaXMuYj1hO3RoaXMuYT1ifVxuZnVuY3Rpb24gdE5jKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBRT2MoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIGVQYyhhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gTFBjKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiB4UWMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIEZRYyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gTVFjKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBGTWMoYSxiKXtkTWMoKTtyZXR1cm4gYiE9YX1cbmZ1bmN0aW9uIFV2YihhKXtzRmIoYS5hKTtyZXR1cm4gYS5ifVxuZnVuY3Rpb24gcVliKGEpe3JZYihhLGEuYyk7cmV0dXJuIGF9XG5mdW5jdGlvbiBJdGIoKXtFdGIoKTtyZXR1cm4gbmV3IER0Yn1cbmZ1bmN0aW9uIF9lYygpe1JlYygpO3RoaXMuYT1uZXcgZTZifVxuZnVuY3Rpb24gbFNjKCl7ZFNjKCk7dGhpcy5hPW5ldyBfc2J9XG5mdW5jdGlvbiBhUmMoKXtXUWMoKTt0aGlzLmI9bmV3IF9zYn1cbmZ1bmN0aW9uIHhSYyhhLGIpe3RoaXMuYj1hO3RoaXMuZD1ifVxuZnVuY3Rpb24gblZjKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBwVmMoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIEdXYyhhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gSVhjKGEsYil7dGhpcy5iPWE7dGhpcy5hPWJ9XG5mdW5jdGlvbiBnVGMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGVWYyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gJFZjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBYWWMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIE1aYyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gdF9jKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBCX2MoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIHoyYyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gaDNjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiAkM2MoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGk0YyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gbDVjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiB2NWMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGc2YyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gQTZjKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBhN2MoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIEI4YyhhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gZDljKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBEOWMoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIHRhZChhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gaGJkKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBOYmQoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIFliZChhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gbmRkKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiB6MWMoYSxiKXt0aGlzLmI9YTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIEIxYyhhLGIpe3RoaXMuYj1hO3RoaXMuYT1ifVxuZnVuY3Rpb24gZDJjKGEsYil7dGhpcy5iPWE7dGhpcy5hPWJ9XG5mdW5jdGlvbiBmMmMoYSxiKXt0aGlzLmI9YTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIG05YyhhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24geGVkKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBmZmQoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIHJqZChhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gU2pkKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBaaGQoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGxpZChhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gdmtkKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBHbWQoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIFBtZChhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gWm1kKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBqbmQoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIEduZChhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gUm5kKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBlb2QoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIHFvZChhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gRW9kKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBRb2QoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIHVwZChhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gUnBkKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBlcWQoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIG5xZChhLGIpe3FzLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gdnFkKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBIcmQoYSxiKXtxcy5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGVzZChhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gZ3NkKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBpc2QoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIE9zZChhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gUXNkKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBTc2QoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIFB0ZChhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gSkVkKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBLRWQoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIE1FZChhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gTkVkKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBRRWQoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIFJFZChhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gU0VkKGEsYil7dGhpcy5iPWE7dGhpcy5hPWJ9XG5mdW5jdGlvbiBURWQoYSxiKXt0aGlzLmI9YTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIGJGZChhLGIpe3RoaXMuYj1hO3RoaXMuYT1ifVxuZnVuY3Rpb24gZEZkKGEsYil7dGhpcy5iPWE7dGhpcy5hPWJ9XG5mdW5jdGlvbiBmRmQoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIGhGZChhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gdXRkKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBzRmQoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIHVGZChhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gYkdkKGEsYil7cXMuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiB1SWQoYSxiKXt0aGlzLmY9YTt0aGlzLmM9Yn1cbmZ1bmN0aW9uIE9mZChhLGIpe3JldHVybiBDc2IoYS5nLGIpfVxuZnVuY3Rpb24gVHFjKGEsYil7cmV0dXJuIENzYihiLmIsYSl9XG5mdW5jdGlvbiBIUGQoYSxiKXtyZXR1cm4gUU5kKGEuYSxiKX1cbmZ1bmN0aW9uIElkZChhLGIpe3JldHVybiAtYS5iLmFmKGIpfVxuZnVuY3Rpb24gSUlkKGEsYil7ISFhJiZaamIoQ0lkLGEsYil9XG5mdW5jdGlvbiB5V2QoYSxiKXthLmk9bnVsbDt6V2QoYSxiKX1cbmZ1bmN0aW9uIGtFZChhLGIsYyl7cERkKGIsS0RkKGEsYykpfVxuZnVuY3Rpb24gbEVkKGEsYixjKXtwRGQoYixLRGQoYSxjKSl9XG5mdW5jdGlvbiBtRmQoYSxiKXt2RWQoYS5hLFJEKGIsNTgpKX1cbmZ1bmN0aW9uIF9NYyhhLGIpe0dNYyhhLmEsUkQoYiwxMikpfVxuZnVuY3Rpb24gS1RkKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBOVGQoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIEI1ZChhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gWjZkKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBCbGUoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIGFmZShhLGIpe3RoaXMuZD1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gd2ZlKGEsYil7dGhpcy5lPWE7dGhpcy5hPWJ9XG5mdW5jdGlvbiBFa2UoYSxiKXt0aGlzLmI9YTt0aGlzLmM9Yn1cbmZ1bmN0aW9uIHpOZChhLGIpe3RoaXMuaT1hO3RoaXMuZz1ifVxuZnVuY3Rpb24ga1pkKGEsYil7dGhpcy5kPWE7dGhpcy5lPWJ9XG5mdW5jdGlvbiBhdmUoYSxiKXtldmUobmV3IGRNZChhKSxiKX1cbmZ1bmN0aW9uIERrZShhKXtyZXR1cm4gcGdlKGEuYyxhLmIpfVxuZnVuY3Rpb24gV2QoYSl7cmV0dXJuICFhP251bGw6YS5tZCgpfVxuZnVuY3Rpb24gZEUoYSl7cmV0dXJuIGE9PW51bGw/bnVsbDphfVxuZnVuY3Rpb24gYkUoYSl7cmV0dXJuIHR5cGVvZiBhPT09anZlfVxuZnVuY3Rpb24gJEQoYSl7cmV0dXJuIHR5cGVvZiBhPT09aHZlfVxuZnVuY3Rpb24gX0QoYSl7cmV0dXJuIHR5cGVvZiBhPT09aXZlfVxuZnVuY3Rpb24gR2RiKGEsYil7cmV0dXJuIERkYihhLGIpPT0wfVxuZnVuY3Rpb24gSmRiKGEsYil7cmV0dXJuIERkYihhLGIpPj0wfVxuZnVuY3Rpb24gUGRiKGEsYil7cmV0dXJuIERkYihhLGIpIT0wfVxuZnVuY3Rpb24gYXIoYSxiKXtyZXR1cm4genIoYS5LYygpLGIpfVxuZnVuY3Rpb24gUW0oYSxiKXtyZXR1cm4gYS5SZCgpLlhiKGIpfVxuZnVuY3Rpb24ga2coYSl7aWcoYSk7cmV0dXJuIGEuZC5nYygpfVxuZnVuY3Rpb24gZkUoYSl7Q0ZiKGE9PW51bGwpO3JldHVybiBhfVxuZnVuY3Rpb24gTWhiKGEsYil7YS5hKz0nJytiO3JldHVybiBhfVxuZnVuY3Rpb24gTmhiKGEsYil7YS5hKz0nJytiO3JldHVybiBhfVxuZnVuY3Rpb24gV2hiKGEsYil7YS5hKz0nJytiO3JldHVybiBhfVxuZnVuY3Rpb24gWWhiKGEsYil7YS5hKz0nJytiO3JldHVybiBhfVxuZnVuY3Rpb24gWmhiKGEsYil7YS5hKz0nJytiO3JldHVybiBhfVxuZnVuY3Rpb24gVmhiKGEsYil7cmV0dXJuIGEuYSs9JycrYixhfVxuZnVuY3Rpb24gUGZiKGEpe3JldHVybiAnJysodUZiKGEpLGEpfVxuZnVuY3Rpb24gVnNiKGEpe2FrYih0aGlzKTtMZCh0aGlzLGEpfVxuZnVuY3Rpb24gWUZjKCl7UkZjKCk7VUZjLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBweGIoYSxiKXtreGIuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiB0eGIoYSxiKXtreGIuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiB4eGIoYSxiKXtreGIuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBPdWIoYSxiKXtQdWIoYSxiLGEuYy5iLGEuYyl9XG5mdW5jdGlvbiBOdWIoYSxiKXtQdWIoYSxiLGEuYSxhLmEuYSl9XG5mdW5jdGlvbiBJb2IoYSl7dEZiKGEsMCk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBYdmIoKXt0aGlzLmI9MDt0aGlzLmE9ZmFsc2V9XG5mdW5jdGlvbiBkd2IoKXt0aGlzLmI9MDt0aGlzLmE9ZmFsc2V9XG5mdW5jdGlvbiBFdCgpe3RoaXMuYj1uZXcgVXNiKFN2KDEyKSl9XG5mdW5jdGlvbiBwTWIoKXtwTWI9Z2ViO29NYj1zcyhuTWIoKSl9XG5mdW5jdGlvbiBuY2MoKXtuY2M9Z2ViO21jYz1zcyhsY2MoKSl9XG5mdW5jdGlvbiBhWmMoKXthWmM9Z2ViO19ZYz1zcygkWWMoKSl9XG5mdW5jdGlvbiBXQSgpe1dBPWdlYjt2QSgpO1ZBPW5ldyBUc2J9XG5mdW5jdGlvbiBoamQoYSl7YS5hPTA7YS5iPTA7cmV0dXJuIGF9XG5mdW5jdGlvbiBxZmQoYSxiKXthLmE9Yi5nKzE7cmV0dXJuIGF9XG5mdW5jdGlvbiB5TmQoYSxiKXthTWQuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBsR2QoYSxiKXtrR2QuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBOJGQoYSxiKXt6TmQuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBXaGUoYSxiKXtRMmQuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBTaGUoYSxiKXtQaGUuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiBSUmQoYSxiKXtQUmQoKTtaamIoT1JkLGEsYil9XG5mdW5jdGlvbiBzQihhLGIpe2EucS5zZXRUaW1lKFhkYihiKSl9XG5mdW5jdGlvbiBYeihhKXskd25kLmNsZWFyVGltZW91dChhKX1cbmZ1bmN0aW9uIGNyKGEpe3JldHVybiBRYihhKSxuZXcgRGwoYSl9XG5mdW5jdGlvbiBtYihhLGIpe3JldHVybiBkRShhKT09PWRFKGIpfVxuZnVuY3Rpb24gTXcoYSxiKXtyZXR1cm4gYS5hLmEuYS5jYyhiKX1cbmZ1bmN0aW9uIHFlYihhLGIpe3JldHVybiB6aGIoYS5hLDAsYil9XG5mdW5jdGlvbiBTU2IoYSl7cmV0dXJuIE1TYihSRChhLDc0KSl9XG5mdW5jdGlvbiBOZmIoYSl7cmV0dXJuIGVFKCh1RmIoYSksYSkpfVxuZnVuY3Rpb24gT2ZiKGEpe3JldHVybiBlRSgodUZiKGEpLGEpKX1cbmZ1bmN0aW9uIGdEKGEpe3JldHVybiBoRChhLmwsYS5tLGEuaCl9XG5mdW5jdGlvbiBlZ2IoYSxiKXtyZXR1cm4gaGdiKGEuYSxiLmEpfVxuZnVuY3Rpb24geWdiKGEsYil7cmV0dXJuIEFnYihhLmEsYi5hKX1cbmZ1bmN0aW9uIFNmYihhLGIpe3JldHVybiBRZmIoYS5hLGIuYSl9XG5mdW5jdGlvbiBxaGIoYSxiKXtyZXR1cm4gYS5pbmRleE9mKGIpfVxuZnVuY3Rpb24gbk9jKGEsYil7cmV0dXJuIGEualtiLnBdPT0yfVxuZnVuY3Rpb24gY3ooYSxiKXtyZXR1cm4gYT09Yj8wOmE/MTotMX1cbmZ1bmN0aW9uIEFCKGEpe3JldHVybiBhPDEwPycwJythOicnK2F9XG5mdW5jdGlvbiBLZGIoYSl7cmV0dXJuIHR5cGVvZiBhPT09aXZlfVxuZnVuY3Rpb24gb1piKGEpe3JldHVybiBhPT1qWmJ8fGE9PW1aYn1cbmZ1bmN0aW9uIHBaYihhKXtyZXR1cm4gYT09alpifHxhPT1rWmJ9XG5mdW5jdGlvbiBFTGIoYSxiKXtyZXR1cm4gaGdiKGEuZyxiLmcpfVxuZnVuY3Rpb24gUTRiKGEpe3JldHVybiBXbWIoYS5iLmIsYSwwKX1cbmZ1bmN0aW9uIFEyYigpe0oyYi5jYWxsKHRoaXMsMCwwLDAsMCl9XG5mdW5jdGlvbiBJdWIoKXtjdGIuY2FsbCh0aGlzLG5ldyBndWIpfVxuZnVuY3Rpb24gWm5iKGEsYil7V25iKGEsMCxhLmxlbmd0aCxiKX1cbmZ1bmN0aW9uIEV5YihhLGIpe1JtYihhLmEsYik7cmV0dXJuIGJ9XG5mdW5jdGlvbiBGa2MoYSxiKXtsa2MoKTtyZXR1cm4gYi5hKz1hfVxuZnVuY3Rpb24gSGtjKGEsYil7bGtjKCk7cmV0dXJuIGIuYSs9YX1cbmZ1bmN0aW9uIEdrYyhhLGIpe2xrYygpO3JldHVybiBiLmMrPWF9XG5mdW5jdGlvbiBpZWQoYSxiKXtSbWIoYS5jLGIpO3JldHVybiBhfVxuZnVuY3Rpb24gUGVkKGEsYil7b2ZkKGEuYSxiKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIHR0YihhKXt0aGlzLmE9SXRiKCk7dGhpcy5iPWF9XG5mdW5jdGlvbiBOdGIoYSl7dGhpcy5hPUl0YigpO3RoaXMuYj1hfVxuZnVuY3Rpb24gc2pkKGEpe3RoaXMuYT1hLmE7dGhpcy5iPWEuYn1cbmZ1bmN0aW9uIERsKGEpe3RoaXMuYT1hO3psLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBHbChhKXt0aGlzLmE9YTt6bC5jYWxsKHRoaXMpfVxuZnVuY3Rpb24gVGlkKCl7VWlkLmNhbGwodGhpcywwLDAsMCwwKX1cbmZ1bmN0aW9uIHZmZChhKXtyZXR1cm4gb2ZkKG5ldyB1ZmQsYSl9XG5mdW5jdGlvbiBLc2QoYSl7cmV0dXJuIGl5ZChSRChhLDEyMykpfVxuZnVuY3Rpb24gTXZkKGEpe3JldHVybiBhLnZoKCkmJmEud2goKX1cbmZ1bmN0aW9uIERvZChhKXtyZXR1cm4gYSE9em9kJiZhIT1Bb2R9XG5mdW5jdGlvbiBEbWQoYSl7cmV0dXJuIGE9PXltZHx8YT09em1kfVxuZnVuY3Rpb24gRW1kKGEpe3JldHVybiBhPT1CbWR8fGE9PXhtZH1cbmZ1bmN0aW9uIHhEYyhhKXtyZXR1cm4gYT09dERjfHxhPT1zRGN9XG5mdW5jdGlvbiB5cmMoYSxiKXtyZXR1cm4gaGdiKGEuZyxiLmcpfVxuZnVuY3Rpb24gWWZlKGEsYil7cmV0dXJuIG5ldyBQaGUoYixhKX1cbmZ1bmN0aW9uIFpmZShhLGIpe3JldHVybiBuZXcgUGhlKGIsYSl9XG5mdW5jdGlvbiBscihhKXtyZXR1cm4gRHIoYS5iLktjKCksYS5hKX1cbmZ1bmN0aW9uIElYZChhLGIpe3lYZChhLGIpO3pYZChhLGEuRCl9XG5mdW5jdGlvbiBVeGQoYSxiLGMpe1Z4ZChhLGIpO1d4ZChhLGMpfVxuZnVuY3Rpb24genlkKGEsYixjKXtDeWQoYSxiKTtBeWQoYSxjKX1cbmZ1bmN0aW9uIEJ5ZChhLGIsYyl7RHlkKGEsYik7RXlkKGEsYyl9XG5mdW5jdGlvbiBHemQoYSxiLGMpe0h6ZChhLGIpO0l6ZChhLGMpfVxuZnVuY3Rpb24gTnpkKGEsYixjKXtPemQoYSxiKTtQemQoYSxjKX1cbmZ1bmN0aW9uIGVoKGEsYixjKXtiaC5jYWxsKHRoaXMsYSxiLGMpfVxuZnVuY3Rpb24geklkKGEpe3VJZC5jYWxsKHRoaXMsYSx0cnVlKX1cbmZ1bmN0aW9uIG5BYigpe2RBYi5jYWxsKHRoaXMsJ1RhaWwnLDMpfVxuZnVuY3Rpb24gaUFiKCl7ZEFiLmNhbGwodGhpcywnSGVhZCcsMSl9XG5mdW5jdGlvbiBlamIoYSl7UGliKCk7ZmpiLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIEEzYihhKXtKMmIuY2FsbCh0aGlzLGEsYSxhLGEpfVxuZnVuY3Rpb24gUG1iKGEpe2EuYz0kQyhqSixydmUsMSwwLDUsMSl9XG5mdW5jdGlvbiB5UmIoYSl7YS5iJiZDUmIoYSk7cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIHpSYihhKXthLmImJkNSYihhKTtyZXR1cm4gYS5jfVxuZnVuY3Rpb24gbUJiKGEsYil7aWYoZEJiKXtyZXR1cm59YS5iPWJ9XG5mdW5jdGlvbiBZQ2IoYSxiKXtyZXR1cm4gYVthLmxlbmd0aF09Yn1cbmZ1bmN0aW9uIF9DYihhLGIpe3JldHVybiBhW2EubGVuZ3RoXT1ifVxuZnVuY3Rpb24gbDViKGEsYil7cmV0dXJuIE5HZChiLE1DZChhKSl9XG5mdW5jdGlvbiBtNWIoYSxiKXtyZXR1cm4gTkdkKGIsTUNkKGEpKX1cbmZ1bmN0aW9uIEREZChhLGIpe3JldHVybiBscChDbyhhLmQpLGIpfVxuZnVuY3Rpb24gRURkKGEsYil7cmV0dXJuIGxwKENvKGEuZyksYil9XG5mdW5jdGlvbiBGRGQoYSxiKXtyZXR1cm4gbHAoQ28oYS5qKSxiKX1cbmZ1bmN0aW9uIG1HZChhLGIpe2tHZC5jYWxsKHRoaXMsYS5iLGIpfVxuZnVuY3Rpb24gczBkKGEsYil7V0dkKHRZZChhLmEpLHYwZChiKSl9XG5mdW5jdGlvbiBCNGQoYSxiKXtXR2QobzRkKGEuYSksRTRkKGIpKX1cbmZ1bmN0aW9uIEFzZChhLGIsYyl7QnlkKGMsYy5pK2EsYy5qK2IpfVxuZnVuY3Rpb24gZUZjKGEsYixjKXtiRChhLmNbYi5nXSxiLmcsYyl9XG5mdW5jdGlvbiB6VmQoYSxiLGMpe1JEKGEuYyw3MSkuR2koYixjKX1cbmZ1bmN0aW9uIExNZChhLGIsYyl7YkQoYSxiLGMpO3JldHVybiBjfVxuZnVuY3Rpb24gREpiKGEpe1VtYihhLlNmKCksbmV3IEhKYihhKSl9XG5mdW5jdGlvbiBHdmIoYSl7cmV0dXJuIGEhPW51bGw/dGIoYSk6MH1cbmZ1bmN0aW9uIGFPZChhKXtyZXR1cm4gYT09bnVsbD8wOnRiKGEpfVxuZnVuY3Rpb24gaXVlKGEpe1ZzZSgpO1dzZS5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBVZyhhKXt0aGlzLmE9YTtPZy5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBaeSgpe1p5PWdlYjskd25kLk1hdGgubG9nKDIpfVxuZnVuY3Rpb24gczdkKCl7czdkPWdlYjtyN2Q9KCRTZCgpLFpTZCl9XG5mdW5jdGlvbiBGUmMoKXtGUmM9Z2ViO0VSYz1uZXcgWnJiKHUzKX1cbmZ1bmN0aW9uIEhkZSgpe0hkZT1nZWI7bmV3IElkZTtuZXcgYm5ifVxuZnVuY3Rpb24gSWRlKCl7bmV3IFRzYjtuZXcgVHNiO25ldyBUc2J9XG5mdW5jdGlvbiB5dWUoKXt0aHJvdyBBZGIobmV3IGtpYihiTWUpKX1cbmZ1bmN0aW9uIE51ZSgpe3Rocm93IEFkYihuZXcga2liKGJNZSkpfVxuZnVuY3Rpb24gQnVlKCl7dGhyb3cgQWRiKG5ldyBraWIoY01lKSl9XG5mdW5jdGlvbiBRdWUoKXt0aHJvdyBBZGIobmV3IGtpYihjTWUpKX1cbmZ1bmN0aW9uIEdwKGEpe3RoaXMuYT1hO3JmLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIE5wKGEpe3RoaXMuYT1hO3JmLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIFNxKGEsYil7dG0oKTt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIEpoKGEsYil7UWIoYik7SWgoYSkuSmMobmV3IGp4KX1cbmZ1bmN0aW9uIF9tYihhLGIpe1luYihhLmMsYS5jLmxlbmd0aCxiKX1cbmZ1bmN0aW9uIHhuYihhKXtyZXR1cm4gYS5hPGEuYy5jLmxlbmd0aH1cbmZ1bmN0aW9uIE1zYihhKXtyZXR1cm4gYS5hPGEuYy5hLmxlbmd0aH1cbmZ1bmN0aW9uIFd2YihhLGIpe3JldHVybiBhLmE/YS5iOmIuV2UoKX1cbmZ1bmN0aW9uIGhnYihhLGIpe3JldHVybiBhPGI/LTE6YT5iPzE6MH1cbmZ1bmN0aW9uIEtnYihhLGIpe3JldHVybiBEZGIoYSxiKT4wP2E6Yn1cbmZ1bmN0aW9uIGhEKGEsYixjKXtyZXR1cm4ge2w6YSxtOmIsaDpjfX1cbmZ1bmN0aW9uIE12YihhLGIpe2EuYSE9bnVsbCYmX01jKGIsYS5hKX1cbmZ1bmN0aW9uIExoYyhhKXtZMGIoYSxudWxsKTtaMGIoYSxudWxsKX1cbmZ1bmN0aW9uIHhrYyhhLGIsYyl7cmV0dXJuIFpqYihhLmcsYyxiKX1cbmZ1bmN0aW9uIGJGYyhhLGIsYyl7cmV0dXJuIF9FYyhiLGMsYS5jKX1cbmZ1bmN0aW9uIGpPYyhhLGIsYyl7cmV0dXJuIFpqYihhLmssYyxiKX1cbmZ1bmN0aW9uIHBPYyhhLGIsYyl7cU9jKGEsYixjKTtyZXR1cm4gY31cbmZ1bmN0aW9uIEZPYyhhLGIpe2RPYygpO3JldHVybiBiLm4uYis9YX1cbmZ1bmN0aW9uIGxVYihhKXtWVGIuY2FsbCh0aGlzKTt0aGlzLmI9YX1cbmZ1bmN0aW9uIHkyYihhKXt2MmIuY2FsbCh0aGlzKTt0aGlzLmE9YX1cbmZ1bmN0aW9uIGtBYigpe2RBYi5jYWxsKHRoaXMsJ1JhbmdlJywyKX1cbmZ1bmN0aW9uICRGYihhKXt0aGlzLmI9YTt0aGlzLmE9bmV3IGJuYn1cbmZ1bmN0aW9uIFdRYihhKXt0aGlzLmI9bmV3IGdSYjt0aGlzLmE9YX1cbmZ1bmN0aW9uIEx1YihhKXthLmE9bmV3IHN2YjthLmM9bmV3IHN2Yn1cbmZ1bmN0aW9uIG5yYyhhKXthLmE9bmV3IFRzYjthLmQ9bmV3IFRzYn1cbmZ1bmN0aW9uICRTYyhhKXtfU2MoYSxudWxsKTthVGMoYSxudWxsKX1cbmZ1bmN0aW9uIGEyZChhLGIpe3JldHVybiB4QShhLmEsYixudWxsKX1cbmZ1bmN0aW9uIENkZChhLGIpe3JldHVybiBaamIoYS5hLGIuYSxiKX1cbmZ1bmN0aW9uIGFqZChhKXtyZXR1cm4gbmV3IHJqZChhLmEsYS5iKX1cbmZ1bmN0aW9uIFBpZChhKXtyZXR1cm4gbmV3IHJqZChhLmMsYS5kKX1cbmZ1bmN0aW9uIFFpZChhKXtyZXR1cm4gbmV3IHJqZChhLmMsYS5kKX1cbmZ1bmN0aW9uIEFrZShhLGIpe3JldHVybiBUZmUoYS5jLGEuYixiKX1cbmZ1bmN0aW9uIFpEKGEsYil7cmV0dXJuIGEhPW51bGwmJlFEKGEsYil9XG5mdW5jdGlvbiBicihhLGIpe3JldHVybiBKcihhLktjKCksYikhPS0xfVxuZnVuY3Rpb24gSHIoYSl7cmV0dXJuIGEuT2IoKT9hLlBiKCk6bnVsbH1cbmZ1bmN0aW9uIF9wKGEpe3RoaXMuYj0oeW9iKCksbmV3IHVxYihhKSl9XG5mdW5jdGlvbiB6a2UoYSl7dGhpcy5hPWE7VHNiLmNhbGwodGhpcyl9XG5mdW5jdGlvbiBVaGUoKXtRMmQuY2FsbCh0aGlzLG51bGwsbnVsbCl9XG5mdW5jdGlvbiBZaGUoKXtwM2QuY2FsbCh0aGlzLG51bGwsbnVsbCl9XG5mdW5jdGlvbiBBcygpe3FzLmNhbGwodGhpcywnSU5TVEFOQ0UnLDApfVxuZnVuY3Rpb24gZFhiKCl7X1diKCk7dGhpcy5hPW5ldyBXZWQoVVApfVxuZnVuY3Rpb24gSGhiKGEpe3JldHVybiBJaGIoYSwwLGEubGVuZ3RoKX1cbmZ1bmN0aW9uIFJ2KGEsYil7cmV0dXJuIG5ldyBldyhhLktjKCksYil9XG5mdW5jdGlvbiAkc2IoYSxiKXtyZXR1cm4gYS5hLkJjKGIpIT1udWxsfVxuZnVuY3Rpb24gaFpkKGEsYil7c0xkKGEpO2EuR2MoUkQoYiwxNSkpfVxuZnVuY3Rpb24gT05kKGEsYixjKXthLmMuYmQoYixSRChjLDEzNikpfVxuZnVuY3Rpb24gZU9kKGEsYixjKXthLmMuVWkoYixSRChjLDEzNikpfVxuZnVuY3Rpb24gZXViKGEsYil7aWYoYS5jKXtydWIoYik7cXViKGIpfX1cbmZ1bmN0aW9uIG9CKGEsYil7YS5xLnNldEhvdXJzKGIpO21CKGEsYil9XG5mdW5jdGlvbiB2VGIoYSxiKXtaaWQoYixhLmEuYS5hLGEuYS5hLmIpfVxuZnVuY3Rpb24gdEtiKGEsYixjLGQpe2JEKGEuYVtiLmddLGMuZyxkKX1cbmZ1bmN0aW9uIG9LYihhLGIsYyl7cmV0dXJuIGEuYVtiLmddW2MuZ119XG5mdW5jdGlvbiBBSWMoYSxiKXtyZXR1cm4gYS5lW2IuYy5wXVtiLnBdfVxuZnVuY3Rpb24gVEljKGEsYil7cmV0dXJuIGEuY1tiLmMucF1bYi5wXX1cbmZ1bmN0aW9uIHBKYyhhLGIpe3JldHVybiBhLmFbYi5jLnBdW2IucF19XG5mdW5jdGlvbiBtT2MoYSxiKXtyZXR1cm4gYS5qW2IucF09QU9jKGIpfVxuZnVuY3Rpb24gd0FiKGEsYil7cmV0dXJuIGEuYS5CYyhiKSE9bnVsbH1cbmZ1bmN0aW9uIHdYYyhhLGIpe3JldHVybiBLZmIoVUQoYi5hKSk8PWF9XG5mdW5jdGlvbiB4WGMoYSxiKXtyZXR1cm4gS2ZiKFVEKGIuYSkpPj1hfVxuZnVuY3Rpb24gdmhkKGEsYil7cmV0dXJuIGpoYihhLmYsYi5QZygpKX1cbmZ1bmN0aW9uIGNqZChhLGIpe3JldHVybiBhLmEqYi5hK2EuYipiLmJ9XG5mdW5jdGlvbiBXc2QoYSxiKXtyZXR1cm4gYS5hPFFlYihiKT8tMToxfVxuZnVuY3Rpb24gZ0dkKGEsYil7cmV0dXJuIGpoYihhLmIsYi5QZygpKX1cbmZ1bmN0aW9uIHhJYyhhLGIsYyl7cmV0dXJuIGM/YiE9MDpiIT1hLTF9XG5mdW5jdGlvbiBNd2IoYSxiLGMpe2EuYT1iXjE1MDI7YS5iPWNeTXhlfVxuZnVuY3Rpb24gbGpkKGEsYixjKXthLmE9YjthLmI9YztyZXR1cm4gYX1cbmZ1bmN0aW9uIGlqZChhLGIpe2EuYSo9YjthLmIqPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBSbWIoYSxiKXtaRWIoYS5jLGIpO3JldHVybiB0cnVlfVxuZnVuY3Rpb24gTUhkKGEsYixjKXtiRChhLmcsYixjKTtyZXR1cm4gY31cbmZ1bmN0aW9uIFhaZChhLGIsYyl7UFpkLmNhbGwodGhpcyxhLGIsYyl9XG5mdW5jdGlvbiBfWmQoYSxiLGMpe1haZC5jYWxsKHRoaXMsYSxiLGMpfVxuZnVuY3Rpb24gYWllKGEsYixjKXtLZmUuY2FsbCh0aGlzLGEsYixjKX1cbmZ1bmN0aW9uIGVpZShhLGIsYyl7S2ZlLmNhbGwodGhpcyxhLGIsYyl9XG5mdW5jdGlvbiBnaWUoYSxiLGMpe2FpZS5jYWxsKHRoaXMsYSxiLGMpfVxuZnVuY3Rpb24gaWllKGEsYixjKXtYWmQuY2FsbCh0aGlzLGEsYixjKX1cbmZ1bmN0aW9uIGxpZShhLGIsYyl7X1pkLmNhbGwodGhpcyxhLGIsYyl9XG5mdW5jdGlvbiB2aWUoYSxiLGMpe1BaZC5jYWxsKHRoaXMsYSxiLGMpfVxuZnVuY3Rpb24gemllKGEsYixjKXtQWmQuY2FsbCh0aGlzLGEsYixjKX1cbmZ1bmN0aW9uIENpZShhLGIsYyl7dmllLmNhbGwodGhpcyxhLGIsYyl9XG5mdW5jdGlvbiBleihhKXthLmo9JEMobUosTnZlLDMxOSwwLDAsMSl9XG5mdW5jdGlvbiB3bWIoKXt0aGlzLmE9JEMoakoscnZlLDEsOCw1LDEpfVxuZnVuY3Rpb24gZFdkKCl7dGhpcy5CYnw9MjU2O3RoaXMuQmJ8PTUxMn1cbmZ1bmN0aW9uIGRNZChhKXt0aGlzLmk9YTt0aGlzLmY9dGhpcy5pLmp9XG5mdW5jdGlvbiBSdWUoYSl7dGhpcy5jPWE7dGhpcy5hPXRoaXMuYy5hfVxuZnVuY3Rpb24gemYoYSxiKXt0aGlzLmE9YTtyZi5jYWxsKHRoaXMsYil9XG5mdW5jdGlvbiBFYihhLGIpe3JldHVybiBEYihhLG5ldyBiaWIsYikuYX1cbmZ1bmN0aW9uIExiKGEpe2lmKCFhKXt0aHJvdyBBZGIobmV3IF9mYil9fVxuZnVuY3Rpb24gVWIoYSl7aWYoIWEpe3Rocm93IEFkYihuZXcgY2diKX19XG5mdW5jdGlvbiBUeGIoKXtUeGI9Z2ViO1R4YigpO1N4Yj1uZXcgJHhifVxuZnVuY3Rpb24gZmtlKCl7ZmtlPWdlYjtHaWUoKTtla2U9bmV3IGdrZX1cbmZ1bmN0aW9uIEt2Yigpe0t2Yj1nZWI7SnZiPW5ldyBPdmIobnVsbCl9XG5mdW5jdGlvbiBPR2QoYSl7SXZiKGEsSUllKTtwemQoYSxHR2QoYSkpfVxuZnVuY3Rpb24gbU5kKGEpe2EuYT1SRChZd2QoYS5iLmEsNCksMTI5KX1cbmZ1bmN0aW9uIHVOZChhKXthLmE9UkQoWXdkKGEuYi5hLDQpLDEyOSl9XG5mdW5jdGlvbiBNZyhhKXthLmIuUWIoKTstLWEuZC5mLmQ7amcoYS5kKX1cbmZ1bmN0aW9uIFpqKGEpe3RoaXMuYT1hO0FqLmNhbGwodGhpcyxhLmQpfVxuZnVuY3Rpb24gaWooYSxiKXt0aGlzLmE9YTtwYy5jYWxsKHRoaXMsYil9XG5mdW5jdGlvbiBzaihhLGIpe3RoaXMuYT1hO3BjLmNhbGwodGhpcyxiKX1cbmZ1bmN0aW9uIFJqKGEsYil7dGhpcy5hPWE7cGMuY2FsbCh0aGlzLGIpfVxuZnVuY3Rpb24gSWwoYSxiKXt0aGlzLmE9YjtwYy5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBhcChhLGIpe3RoaXMuYT1iO1hvLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIEFwKGEsYil7dGhpcy5hPWE7WG8uY2FsbCh0aGlzLGIpfVxuZnVuY3Rpb24gWXIoYSxiKXt0aGlzLmE9YjtUci5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBldyhhLGIpe3RoaXMuYT1iO1RyLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIE1yKGEsYil7UWIoYik7cmV0dXJuIG5ldyBZcihhLGIpfVxuZnVuY3Rpb24gcnUoYSxiKXtyZXR1cm4gbmV3IE91KGEuYSxhLmIsYil9XG5mdW5jdGlvbiByaGIoYSxiLGMpe3JldHVybiBhLmluZGV4T2YoYixjKX1cbmZ1bmN0aW9uIHRoYihhLGIpe3JldHVybiBhLmxhc3RJbmRleE9mKGIpfVxuZnVuY3Rpb24gR2hiKGEpe3JldHVybiBhPT1udWxsP3Z2ZTpqZWIoYSl9XG5mdW5jdGlvbiBFeihhKXtyZXR1cm4gYT09bnVsbD9udWxsOmEubmFtZX1cbmZ1bmN0aW9uIHFEKGEpe3JldHVybiBhLmwrYS5tKmd4ZSthLmgqaHhlfVxuZnVuY3Rpb24gR3IoYSl7cmV0dXJuIGR2YihhLmEpP0ZyKGEpOm51bGx9XG5mdW5jdGlvbiBTaGIoYSl7cmViLmNhbGwodGhpcywodUZiKGEpLGEpKX1cbmZ1bmN0aW9uIGRpYihhKXtyZWIuY2FsbCh0aGlzLCh1RmIoYSksYSkpfVxuZnVuY3Rpb24gZGwoYSl7UWsuY2FsbCh0aGlzLFJEKFFiKGEpLDM0KSl9XG5mdW5jdGlvbiB0bChhKXtRay5jYWxsKHRoaXMsUkQoUWIoYSksMzQpKX1cbmZ1bmN0aW9uIEp1YihhKXtjdGIuY2FsbCh0aGlzLG5ldyBodWIoYSkpfVxuZnVuY3Rpb24gVXBiKGEpe3hwYi5jYWxsKHRoaXMsYSk7dGhpcy5hPWF9XG5mdW5jdGlvbiBocWIoYSl7UHBiLmNhbGwodGhpcyxhKTt0aGlzLmE9YX1cbmZ1bmN0aW9uIGpyYihhKXtMcWIuY2FsbCh0aGlzLGEpO3RoaXMuYT1hfVxuZnVuY3Rpb24gbXooKXtleih0aGlzKTtneih0aGlzKTt0aGlzLmplKCl9XG5mdW5jdGlvbiBEemIoYSl7dGhpcy5hPWE7UGxiLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIEx2YihhKXtzRmIoYS5hIT1udWxsKTtyZXR1cm4gYS5hfVxuZnVuY3Rpb24gZ0diKGEsYil7Um1iKGIuYSxhLmEpO3JldHVybiBhLmF9XG5mdW5jdGlvbiBtR2IoYSxiKXtSbWIoYi5iLGEuYSk7cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIGVKYihhLGIpe1JtYihiLmEsYS5hKTtyZXR1cm4gYS5hfVxuZnVuY3Rpb24gYWliKGEsYixjKXtwZWIoYSxiLGIsYyk7cmV0dXJuIGF9XG5mdW5jdGlvbiBFSWIoYSxiKXsrK2EuYjtyZXR1cm4gUm1iKGEuYSxiKX1cbmZ1bmN0aW9uIEZJYihhLGIpeysrYS5iO3JldHVybiBZbWIoYS5hLGIpfVxuZnVuY3Rpb24gTk5iKGEsYil7cmV0dXJuIFFmYihhLmMuZCxiLmMuZCl9XG5mdW5jdGlvbiBaTmIoYSxiKXtyZXR1cm4gUWZiKGEuYy5jLGIuYy5jKX1cbmZ1bmN0aW9uIEU5YihhLGIpe3JldHVybiBRZmIoYS5uLmEsYi5uLmEpfVxuZnVuY3Rpb24gQiRiKGEsYil7cmV0dXJuIFJEKFFjKGEuYixiKSwxNSl9XG5mdW5jdGlvbiBKYWMoYSxiKXtyZXR1cm4gYS5uLmI9KHVGYihiKSxiKX1cbmZ1bmN0aW9uIEthYyhhLGIpe3JldHVybiBhLm4uYj0odUZiKGIpLGIpfVxuZnVuY3Rpb24gQ3NiKGEsYil7cmV0dXJuICEhYiYmYS5iW2IuZ109PWJ9XG5mdW5jdGlvbiBrNGIoYSl7cmV0dXJuIHhuYihhLmEpfHx4bmIoYS5iKX1cbmZ1bmN0aW9uIGtGYihhKXtyZXR1cm4gYS4kSHx8KGEuJEg9KytpRmIpfVxuZnVuY3Rpb24gTnZiKGEpe3JldHVybiBhLmEhPW51bGw/YS5hOm51bGx9XG5mdW5jdGlvbiB1WGMoYSxiKXtyZXR1cm4gUWZiKGEuZS5iLGIuZS5iKX1cbmZ1bmN0aW9uIENYYyhhLGIpe3JldHVybiBRZmIoYS5lLmEsYi5lLmEpfVxuZnVuY3Rpb24gWkVjKGEsYixjKXtyZXR1cm4gJEVjKGEsYixjLGEuYil9XG5mdW5jdGlvbiBhRmMoYSxiLGMpe3JldHVybiAkRWMoYSxiLGMsYS5jKX1cbmZ1bmN0aW9uIElrYyhhKXtsa2MoKTtyZXR1cm4gISFhJiYhYS5kYygpfVxuZnVuY3Rpb24gWWpjKCl7V2pjKCk7dGhpcy5iPW5ldyBja2ModGhpcyl9XG5mdW5jdGlvbiB0TmIoKXt0TmI9Z2ViO3NOYj1uZXcga0dkKFh5ZSwwKX1cbmZ1bmN0aW9uIEdlYigpe0dlYj1nZWI7RWViPWZhbHNlO0ZlYj10cnVlfVxuZnVuY3Rpb24gRThiKGEpe3ZhciBiO2I9YS5hO2EuYT1hLmI7YS5iPWJ9XG5mdW5jdGlvbiBRMmQoYSxiKXtOMmQoKTt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIHAzZChhLGIpe2ozZCgpO3RoaXMuYj1hO3RoaXMuYz1ifVxuZnVuY3Rpb24gRnVkKGEsYil7bnVkKCk7dGhpcy5mPWI7dGhpcy5kPWF9XG5mdW5jdGlvbiBxYyhhLGIpe1NiKGIsYSk7dGhpcy5kPWE7dGhpcy5jPWJ9XG5mdW5jdGlvbiBJWGIoYSxiKXtKWGIuY2FsbCh0aGlzLGEsYixudWxsKX1cbmZ1bmN0aW9uIEtnKGEsYixjLGQpe3lnLmNhbGwodGhpcyxhLGIsYyxkKX1cbmZ1bmN0aW9uIG1NZChhKXt0aGlzLmQ9YTtkTWQuY2FsbCh0aGlzLGEpfVxuZnVuY3Rpb24geU1kKGEpe3RoaXMuYz1hO2RNZC5jYWxsKHRoaXMsYSl9XG5mdW5jdGlvbiBCTWQoYSl7dGhpcy5jPWE7bU1kLmNhbGwodGhpcyxhKX1cbmZ1bmN0aW9uIFpzZShhKXsrK1VzZTtyZXR1cm4gbmV3IEt0ZSgzLGEpfVxuZnVuY3Rpb24gZXYoYSl7ZGsoYSxpd2UpO3JldHVybiBuZXcgY25iKGEpfVxuZnVuY3Rpb24gakEoYSl7ZkEoKTtyZXR1cm4gcGFyc2VJbnQoYSl8fC0xfVxuZnVuY3Rpb24gRnMoYSl7enMoKTtyZXR1cm4gd3MoKElzKCksSHMpLGEpfVxuZnVuY3Rpb24gcGhiKGEsYixjKXtyZXR1cm4gcmhiKGEsRmhiKGIpLGMpfVxuZnVuY3Rpb24gdW0oYSxiKXtyZXR1cm4gbmV3IGZxKGEsYS5nYygpLGIpfVxuZnVuY3Rpb24gemooYSxiKXtyZXR1cm4gaG4oYS5jKS5NZCgpLlhiKGIpfVxuZnVuY3Rpb24gaHUoYSxiLGMpe3ZhciBkO2Q9YS5mZChiKTtkLlJiKGMpfVxuZnVuY3Rpb24gdGZkKGEsYixjKXtSRChNZWQoYSxiKSwyMSkuRmMoYyl9XG5mdW5jdGlvbiBYT2QoYSxiLGMpe1ZOZChhLmEsYyk7VU5kKGEuYSxiKX1cbmZ1bmN0aW9uIGFBZChhKXtaRChhLDE1OCkmJlJEKGEsMTU4KS5waSgpfVxuZnVuY3Rpb24gdHViKGEpe3V1Yi5jYWxsKHRoaXMsYSxudWxsLG51bGwpfVxuZnVuY3Rpb24gWXZiKGEpe1R2YigpO3RoaXMuYj1hO3RoaXMuYT10cnVlfVxuZnVuY3Rpb24gZXdiKGEpe2J3YigpO3RoaXMuYj1hO3RoaXMuYT10cnVlfVxuZnVuY3Rpb24gUXViKGEpe3NGYihhLmIhPTApO3JldHVybiBhLmEuYS5jfVxuZnVuY3Rpb24gUnViKGEpe3NGYihhLmIhPTApO3JldHVybiBhLmMuYi5jfVxuZnVuY3Rpb24gUGhiKGEsYil7cGViKGEsYixiKzEsJycpO3JldHVybiBhfVxuZnVuY3Rpb24gblFiKGEsYil7cmV0dXJuICEhYS5xJiZVamIoYS5xLGIpfVxuZnVuY3Rpb24gdnpiKGEpe3JldHVybiBhLmI9UkQoQmtiKGEuYSksNDQpfVxuZnVuY3Rpb24gb3MoYSl7cmV0dXJuIGEuZiE9bnVsbD9hLmY6JycrYS5nfVxuZnVuY3Rpb24gcHMoYSl7cmV0dXJuIGEuZiE9bnVsbD9hLmY6JycrYS5nfVxuZnVuY3Rpb24geVViKGEsYil7cmV0dXJuIGE+MD9iLyhhKmEpOmIqMTAwfVxuZnVuY3Rpb24gRlViKGEsYil7cmV0dXJuIGE+MD9iKmIvYTpiKmIqMTAwfVxuZnVuY3Rpb24gJDViKGEsYil7cmV0dXJuIFJEKGN1YihhLmEsYiksMzQpfVxuZnVuY3Rpb24gZG9jKGEsYil7TW5jKCk7cmV0dXJuIFJjKGEsYi5lLGIpfVxuZnVuY3Rpb24gTkNjKGEsYixjKXtHQ2MoKTtyZXR1cm4gYy5NZyhhLGIpfVxuZnVuY3Rpb24gTDBjKGEpe0IwYygpO3JldHVybiBhLmUuYSthLmYuYS8yfVxuZnVuY3Rpb24gTjBjKGEsYixjKXtCMGMoKTtyZXR1cm4gYy5lLmEtYSpifVxuZnVuY3Rpb24gVjBjKGEpe0IwYygpO3JldHVybiBhLmUuYithLmYuYi8yfVxuZnVuY3Rpb24gWDBjKGEsYixjKXtCMGMoKTtyZXR1cm4gYy5lLmItYSpifVxuZnVuY3Rpb24gX3RiKGEpe2EuZD1uZXcgdHViKGEpO2EuZT1uZXcgVHNifVxuZnVuY3Rpb24geDNjKCl7dGhpcy5hPW5ldyBUcDt0aGlzLmI9bmV3IFRwfVxuZnVuY3Rpb24gaG1jKGEpe3RoaXMuYz1hO3RoaXMuYT0xO3RoaXMuYj0xfVxuZnVuY3Rpb24gQyRiKGEpe3okYigpO0EkYih0aGlzKTt0aGlzLkZmKGEpfVxuZnVuY3Rpb24gRWZkKGEsYixjKXtBZmQoKTthLnBmKGIpJiZjLkNkKGEpfVxuZnVuY3Rpb24gUmVkKGEsYixjKXtyZXR1cm4gUm1iKGIsVGVkKGEsYykpfVxuZnVuY3Rpb24gWmlkKGEsYixjKXthLmErPWI7YS5iKz1jO3JldHVybiBhfVxuZnVuY3Rpb24gampkKGEsYixjKXthLmEqPWI7YS5iKj1jO3JldHVybiBhfVxuZnVuY3Rpb24gbWpkKGEsYil7YS5hPWIuYTthLmI9Yi5iO3JldHVybiBhfVxuZnVuY3Rpb24gZmpkKGEpe2EuYT0tYS5hO2EuYj0tYS5iO3JldHVybiBhfVxuZnVuY3Rpb24gbmpkKGEsYixjKXthLmEtPWI7YS5iLT1jO3JldHVybiBhfVxuZnVuY3Rpb24gR2pkKGEpe1l1Yi5jYWxsKHRoaXMpO3pqZCh0aGlzLGEpfVxuZnVuY3Rpb24gRGJkKCl7cXMuY2FsbCh0aGlzLCdHUk9XX1RSRUUnLDApfVxuZnVuY3Rpb24gV1JiKCl7cXMuY2FsbCh0aGlzLCdQT0xZT01JTk8nLDApfVxuZnVuY3Rpb24gU1ZkKGEsYixjKXtEVmQuY2FsbCh0aGlzLGEsYixjLDIpfVxuZnVuY3Rpb24gcjBkKGEsYixjKXtWR2QodFlkKGEuYSksYix2MGQoYykpfVxuZnVuY3Rpb24gZTNkKGEsYil7TjJkKCk7UTJkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gRDNkKGEsYil7ajNkKCk7cDNkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gRjNkKGEsYil7ajNkKCk7RDNkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gSDNkKGEsYil7ajNkKCk7cDNkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gUE5kKGEsYil7cmV0dXJuIGEuYy5GYyhSRChiLDEzNikpfVxuZnVuY3Rpb24gQTRkKGEsYixjKXtWR2QobzRkKGEuYSksYixFNGQoYykpfVxuZnVuY3Rpb24gQXJkKGEpe3RoaXMuYz1hO0R5ZChhLDApO0V5ZChhLDApfVxuZnVuY3Rpb24gWjhkKGEsYil7czdkKCk7TjhkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gXzhkKGEsYil7czdkKCk7WjhkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gYjlkKGEsYil7czdkKCk7WjhkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gbjlkKGEsYil7czdkKCk7TjhkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gZDlkKGEsYil7czdkKCk7YjlkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gcDlkKGEsYil7czdkKCk7bjlkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gdjlkKGEsYil7czdkKCk7TjhkLmNhbGwodGhpcyxhLGIpfVxuZnVuY3Rpb24gbGdlKGEsYixjKXtyZXR1cm4gYi56bChhLmUsYS5jLGMpfVxuZnVuY3Rpb24gbmdlKGEsYixjKXtyZXR1cm4gYi5BbChhLmUsYS5jLGMpfVxuZnVuY3Rpb24gV2VlKGEsYixjKXtyZXR1cm4gdGZlKFBlZShhLGIpLGMpfVxuZnVuY3Rpb24gQWdlKGEsYil7cmV0dXJuIFZ2ZChhLmUsUkQoYiw1NCkpfVxuZnVuY3Rpb24gX21lKGEpe3JldHVybiBhPT1udWxsP251bGw6QnFlKGEpfVxuZnVuY3Rpb24gZG5lKGEpe3JldHVybiBhPT1udWxsP251bGw6SXFlKGEpfVxuZnVuY3Rpb24gZ25lKGEpe3JldHVybiBhPT1udWxsP251bGw6amViKGEpfVxuZnVuY3Rpb24gaG5lKGEpe3JldHVybiBhPT1udWxsP251bGw6amViKGEpfVxuZnVuY3Rpb24gVEQoYSl7Q0ZiKGE9PW51bGx8fCREKGEpKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIFVEKGEpe0NGYihhPT1udWxsfHxfRChhKSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBXRChhKXtDRmIoYT09bnVsbHx8YkUoYSkpO3JldHVybiBhfVxuZnVuY3Rpb24gbGZiKGEpe2lmKGEubyE9bnVsbCl7cmV0dXJufUJmYihhKX1cbmZ1bmN0aW9uIGxGYihhKXtpZighYSl7dGhyb3cgQWRiKG5ldyBfZmIpfX1cbmZ1bmN0aW9uIHBGYihhKXtpZighYSl7dGhyb3cgQWRiKG5ldyB5ZWIpfX1cbmZ1bmN0aW9uIHNGYihhKXtpZighYSl7dGhyb3cgQWRiKG5ldyBEdmIpfX1cbmZ1bmN0aW9uIHlGYihhKXtpZighYSl7dGhyb3cgQWRiKG5ldyBjZ2IpfX1cbmZ1bmN0aW9uIHptYihhKXtpZighYSl7dGhyb3cgQWRiKG5ldyBKcmIpfX1cbmZ1bmN0aW9uIGpRZCgpe2pRZD1nZWI7aVFkPW5ldyBMUWQ7bmV3IGxSZH1cbmZ1bmN0aW9uIHUyYygpe3UyYz1nZWI7dDJjPW5ldyBqR2QoJ3Jvb3QnKX1cbmZ1bmN0aW9uIGQ2ZCgpe0hXZC5jYWxsKHRoaXMpO3RoaXMuQmJ8PXR4ZX1cbmZ1bmN0aW9uIFBnKGEsYil7dGhpcy5kPWE7TGcodGhpcyk7dGhpcy5iPWJ9XG5mdW5jdGlvbiBXQ2IoYSxiKXtOQ2IuY2FsbCh0aGlzLGEpO3RoaXMuYT1ifVxuZnVuY3Rpb24gb0RiKGEsYil7TkNiLmNhbGwodGhpcyxhKTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIGJoKGEsYixjKXtsZy5jYWxsKHRoaXMsYSxiLGMsbnVsbCl9XG5mdW5jdGlvbiBmaChhLGIsYyl7bGcuY2FsbCh0aGlzLGEsYixjLG51bGwpfVxuZnVuY3Rpb24gTWYoYSxiKXt0aGlzLmM9YTtuZS5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIFVmKGEsYil7dGhpcy5hPWE7TWYuY2FsbCh0aGlzLGEsYil9XG5mdW5jdGlvbiB3QihhKXt0aGlzLnE9bmV3ICR3bmQuRGF0ZShYZGIoYSkpfVxuZnVuY3Rpb24gT1BiKGEpe2lmKGE+OCl7cmV0dXJuIDB9cmV0dXJuIGErMX1cbmZ1bmN0aW9uIGlCYihhLGIpe2lmKGRCYil7cmV0dXJufVJtYihhLmEsYil9XG5mdW5jdGlvbiBQNWIoYSxiKXtINWIoKTtyZXR1cm4gbjJiKGIuZC5pLGEpfVxuZnVuY3Rpb24gcWRjKGEsYil7WmNjKCk7cmV0dXJuIG5ldyB4ZGMoYixhKX1cbmZ1bmN0aW9uIEhBYihhLGIsYyl7cmV0dXJuIGEuTmUoYixjKTw9MD9jOmJ9XG5mdW5jdGlvbiBJQWIoYSxiLGMpe3JldHVybiBhLk5lKGIsYyk8PTA/YjpjfVxuZnVuY3Rpb24gcmdkKGEsYil7cmV0dXJuIFJEKGN1YihhLmIsYiksMTQzKX1cbmZ1bmN0aW9uIHRnZChhLGIpe3JldHVybiBSRChjdWIoYS5jLGIpLDIzMyl9XG5mdW5jdGlvbiBhbWMoYSl7cmV0dXJuIFJEKFZtYihhLmEsYS5iKSwyOTQpfVxuZnVuY3Rpb24gTWlkKGEpe3JldHVybiBuZXcgcmpkKGEuYyxhLmQrYS5hKX1cbmZ1bmN0aW9uIEplYihhKXtyZXR1cm4gKHVGYihhKSxhKT8xMjMxOjEyMzd9XG5mdW5jdGlvbiBFUGMoYSl7cmV0dXJuIGRPYygpLHhEYyhSRChhLDIwMykpfVxuZnVuY3Rpb24gUk1iKCl7Uk1iPWdlYjtRTWI9eHNiKChRcGQoKSxQcGQpKX1cbmZ1bmN0aW9uIFlRYihhLGIpe2IuYT9aUWIoYSxiKTp3QWIoYS5hLGIuYil9XG5mdW5jdGlvbiBhSmQoYSxiLGMpeysrYS5qO2EudGooKTskR2QoYSxiLGMpfVxuZnVuY3Rpb24gJElkKGEsYixjKXsrK2EuajthLnFqKGIsYS5aaShiLGMpKX1cbmZ1bmN0aW9uIEIyZChhLGIsYyl7dmFyIGQ7ZD1hLmZkKGIpO2QuUmIoYyl9XG5mdW5jdGlvbiBCemQoYSxiLGMpe2M9eHZkKGEsYiw2LGMpO3JldHVybiBjfVxuZnVuY3Rpb24gaXpkKGEsYixjKXtjPXh2ZChhLGIsMyxjKTtyZXR1cm4gY31cbmZ1bmN0aW9uIEtDZChhLGIsYyl7Yz14dmQoYSxiLDksYyk7cmV0dXJuIGN9XG5mdW5jdGlvbiBTS2IoYSxiKXtJdmIoYixQeWUpO2EuZj1iO3JldHVybiBhfVxuZnVuY3Rpb24gYk9kKGEsYil7cmV0dXJuIChiJmx2ZSklYS5kLmxlbmd0aH1cbmZ1bmN0aW9uIEJrZShhLGIsYyl7cmV0dXJuIGFnZShhLmMsYS5iLGIsYyl9XG5mdW5jdGlvbiBaTGQoYSxiKXt0aGlzLmM9YTtaSGQuY2FsbCh0aGlzLGIpfVxuZnVuY3Rpb24gdzBkKGEsYil7dGhpcy5hPWE7UV9kLmNhbGwodGhpcyxiKX1cbmZ1bmN0aW9uIEY0ZChhLGIpe3RoaXMuYT1hO1FfZC5jYWxsKHRoaXMsYil9XG5mdW5jdGlvbiBrR2QoYSxiKXtqR2QuY2FsbCh0aGlzLGEpO3RoaXMuYT1ifVxuZnVuY3Rpb24gVTZkKGEsYil7TDZkLmNhbGwodGhpcyxhKTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIFM5ZChhLGIpe0w2ZC5jYWxsKHRoaXMsYSk7dGhpcy5hPWJ9XG5mdW5jdGlvbiBqUWIoYSl7Z1FiLmNhbGwodGhpcywwLDApO3RoaXMuZj1hfVxuZnVuY3Rpb24gX2hiKGEsYixjKXthLmErPUloYihiLDAsYyk7cmV0dXJuIGF9XG5mdW5jdGlvbiBfQShhKXshYS5hJiYoYS5hPW5ldyBqQik7cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIHFsYihhLGIpe3ZhciBjO2M9YS5lO2EuZT1iO3JldHVybiBjfVxuZnVuY3Rpb24gQ2xiKGEsYil7dmFyIGM7Yz1iO3JldHVybiAhIWEuRmUoYyl9XG5mdW5jdGlvbiBLZWIoYSxiKXtHZWIoKTtyZXR1cm4gYT09Yj8wOmE/MTotMX1cbmZ1bmN0aW9uIElrYihhLGIpe2EuYS5iZChhLmIsYik7KythLmI7YS5jPS0xfVxuZnVuY3Rpb24gaGcoYSl7YS5iP2hnKGEuYik6YS5mLmMuemMoYS5lLGEuZCl9XG5mdW5jdGlvbiBhdWIoYSl7YWtiKGEuZSk7YS5kLmI9YS5kO2EuZC5hPWEuZH1cbmZ1bmN0aW9uIFZEYihhLGIsYyl7eERiKCk7SEViKGEsYi5WZShhLmEsYykpfVxuZnVuY3Rpb24gWHJiKGEsYixjKXtyZXR1cm4gV3JiKGEsUkQoYiwyMiksYyl9XG5mdW5jdGlvbiBXRWIoYSxiKXtyZXR1cm4gY0ZiKG5ldyBBcnJheShiKSxhKX1cbmZ1bmN0aW9uIEZnYihhKXtyZXR1cm4gWWRiKFVkYihhLDMyKSleWWRiKGEpfVxuZnVuY3Rpb24gWEQoYSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYSl9XG5mdW5jdGlvbiBEeihhKXtyZXR1cm4gYT09bnVsbD9udWxsOmEubWVzc2FnZX1cbmZ1bmN0aW9uIFJ6KGEsYixjKXtyZXR1cm4gYS5hcHBseShiLGMpO3ZhciBkfVxuZnVuY3Rpb24gQnRiKGEsYil7dmFyIGM7Yz1hW0p4ZV07Yy5jYWxsKGEsYil9XG5mdW5jdGlvbiBDdGIoYSxiKXt2YXIgYztjPWFbSnhlXTtjLmNhbGwoYSxiKX1cbmZ1bmN0aW9uIE81YihhLGIpe0g1YigpO3JldHVybiAhbjJiKGIuZC5pLGEpfVxuZnVuY3Rpb24gUjJiKGEsYixjLGQpe0oyYi5jYWxsKHRoaXMsYSxiLGMsZCl9XG5mdW5jdGlvbiBUSmIoKXtSSmIuY2FsbCh0aGlzKTt0aGlzLmE9bmV3IHBqZH1cbmZ1bmN0aW9uIHYyYigpe3RoaXMubj1uZXcgcGpkO3RoaXMubz1uZXcgcGpkfVxuZnVuY3Rpb24ga0diKCl7dGhpcy5iPW5ldyBwamQ7dGhpcy5jPW5ldyBibmJ9XG5mdW5jdGlvbiBjVWIoKXt0aGlzLmE9bmV3IGJuYjt0aGlzLmI9bmV3IGJuYn1cbmZ1bmN0aW9uIGtXYigpe3RoaXMuYT1uZXcgRFRiO3RoaXMuYj1uZXcgdldifVxuZnVuY3Rpb24gZTZiKCl7dGhpcy5iPW5ldyBndWI7dGhpcy5hPW5ldyBndWJ9XG5mdW5jdGlvbiBqSWMoKXt0aGlzLmI9bmV3IF9zYjt0aGlzLmE9bmV3IF9zYn1cbmZ1bmN0aW9uIHZZYygpe3RoaXMuYj1uZXcgVHNiO3RoaXMuYT1uZXcgVHNifVxuZnVuY3Rpb24gZldjKCl7dGhpcy5iPW5ldyBUVmM7dGhpcy5hPW5ldyBJVmN9XG5mdW5jdGlvbiBZaGMoKXt0aGlzLmE9bmV3IHlxYzt0aGlzLmI9bmV3IFNxY31cbmZ1bmN0aW9uIGxOYygpe3RoaXMuYT1uZXcgYm5iO3RoaXMuZD1uZXcgYm5ifVxuZnVuY3Rpb24gUkpiKCl7dGhpcy5uPW5ldyB6M2I7dGhpcy5pPW5ldyBUaWR9XG5mdW5jdGlvbiBocShhKXt0aGlzLmE9KGRrKGEsaXdlKSxuZXcgY25iKGEpKX1cbmZ1bmN0aW9uIG9xKGEpe3RoaXMuYT0oZGsoYSxpd2UpLG5ldyBjbmIoYSkpfVxuZnVuY3Rpb24gdExkKGEpe3JldHVybiBhPDEwMD9udWxsOm5ldyBnTGQoYSl9XG5mdW5jdGlvbiBMYWMoYSxiKXtyZXR1cm4gYS5uLmE9KHVGYihiKSxiKSsxMH1cbmZ1bmN0aW9uIE1hYyhhLGIpe3JldHVybiBhLm4uYT0odUZiKGIpLGIpKzEwfVxuZnVuY3Rpb24gRFlkKGEsYil7cmV0dXJuIGI9PWF8fFBIZChzWWQoYiksYSl9XG5mdW5jdGlvbiBuYWUoYSxiKXtyZXR1cm4gWmpiKGEuYSxiLCcnKT09bnVsbH1cbmZ1bmN0aW9uIEhlZShhLGIpe3ZhciBjO2M9Yi5xaShhLmEpO3JldHVybiBjfVxuZnVuY3Rpb24gJGlkKGEsYil7YS5hKz1iLmE7YS5iKz1iLmI7cmV0dXJuIGF9XG5mdW5jdGlvbiBvamQoYSxiKXthLmEtPWIuYTthLmItPWIuYjtyZXR1cm4gYX1cbmZ1bmN0aW9uIHNmZChhKXthRmIoYS5qLmMsMCk7YS5hPS0xO3JldHVybiBhfVxuZnVuY3Rpb24gckNkKGEsYixjKXtjPXh2ZChhLGIsMTEsYyk7cmV0dXJuIGN9XG5mdW5jdGlvbiBTRGQoYSxiLGMpe2MhPW51bGwmJkt6ZChiLHVFZChhLGMpKX1cbmZ1bmN0aW9uIFREZChhLGIsYyl7YyE9bnVsbCYmTHpkKGIsdUVkKGEsYykpfVxuZnVuY3Rpb24gRzVkKGEsYixjLGQpe0M1ZC5jYWxsKHRoaXMsYSxiLGMsZCl9XG5mdW5jdGlvbiBvaWUoYSxiLGMsZCl7QzVkLmNhbGwodGhpcyxhLGIsYyxkKX1cbmZ1bmN0aW9uIHNpZShhLGIsYyxkKXtvaWUuY2FsbCh0aGlzLGEsYixjLGQpfVxuZnVuY3Rpb24gTmllKGEsYixjLGQpe0lpZS5jYWxsKHRoaXMsYSxiLGMsZCl9XG5mdW5jdGlvbiBQaWUoYSxiLGMsZCl7SWllLmNhbGwodGhpcyxhLGIsYyxkKX1cbmZ1bmN0aW9uIFZpZShhLGIsYyxkKXtJaWUuY2FsbCh0aGlzLGEsYixjLGQpfVxuZnVuY3Rpb24gVGllKGEsYixjLGQpe1BpZS5jYWxsKHRoaXMsYSxiLGMsZCl9XG5mdW5jdGlvbiAkaWUoYSxiLGMsZCl7UGllLmNhbGwodGhpcyxhLGIsYyxkKX1cbmZ1bmN0aW9uIFlpZShhLGIsYyxkKXtWaWUuY2FsbCh0aGlzLGEsYixjLGQpfVxuZnVuY3Rpb24gYmplKGEsYixjLGQpeyRpZS5jYWxsKHRoaXMsYSxiLGMsZCl9XG5mdW5jdGlvbiBEamUoYSxiLGMsZCl7d2plLmNhbGwodGhpcyxhLGIsYyxkKX1cbmZ1bmN0aW9uIGFNZChhLGIpe3ZlYi5jYWxsKHRoaXMsSEplK2ErTkllK2IpfVxuZnVuY3Rpb24gSGplKGEsYil7cmV0dXJuIGEuamsoKS53aSgpLnJpKGEsYil9XG5mdW5jdGlvbiBJamUoYSxiKXtyZXR1cm4gYS5qaygpLndpKCkudGkoYSxiKX1cbmZ1bmN0aW9uIExmYihhLGIpe3JldHVybiB1RmIoYSksZEUoYSk9PT1kRShiKX1cbmZ1bmN0aW9uIGxoYihhLGIpe3JldHVybiB1RmIoYSksZEUoYSk9PT1kRShiKX1cbmZ1bmN0aW9uIG1FYihhLGIpe3JldHVybiBhLmIuQmQobmV3IHBFYihhLGIpKX1cbmZ1bmN0aW9uIHNFYihhLGIpe3JldHVybiBhLmIuQmQobmV3IHZFYihhLGIpKX1cbmZ1bmN0aW9uIHlFYihhLGIpe3JldHVybiBhLmIuQmQobmV3IEJFYihhLGIpKX1cbmZ1bmN0aW9uIEJrKGEsYil7cmV0dXJuIGEuZT1SRChhLmQuS2IoYiksMTU5KX1cbmZ1bmN0aW9uIHVoYihhLGIsYyl7cmV0dXJuIGEubGFzdEluZGV4T2YoYixjKX1cbmZ1bmN0aW9uIHdXYihhLGIsYyl7cmV0dXJuIFFmYihhW2IuYV0sYVtjLmFdKX1cbmZ1bmN0aW9uIFRXYihhLGIpe3JldHVybiBwUWIoYiwoeUNjKCksZ0FjKSxhKX1cbmZ1bmN0aW9uIExwYyhhLGIpe3JldHVybiBoZ2IoYi5hLmQucCxhLmEuZC5wKX1cbmZ1bmN0aW9uIEtwYyhhLGIpe3JldHVybiBoZ2IoYS5hLmQucCxiLmEuZC5wKX1cbmZ1bmN0aW9uIHpUYyhhLGIpe3JldHVybiBRZmIoYS5jLWEucyxiLmMtYi5zKX1cbmZ1bmN0aW9uIHFXYyhhLGIpe3JldHVybiBRZmIoYS5iLmUuYSxiLmIuZS5hKX1cbmZ1bmN0aW9uIHNXYyhhLGIpe3JldHVybiBRZmIoYS5jLmUuYSxiLmMuZS5hKX1cbmZ1bmN0aW9uICQyYihhKXtyZXR1cm4gIWEuYz8tMTpXbWIoYS5jLmEsYSwwKX1cbmZ1bmN0aW9uIENvZChhKXtyZXR1cm4gYT09dm9kfHxhPT14b2R8fGE9PXdvZH1cbmZ1bmN0aW9uIENNZChhLGIpe3RoaXMuYz1hO25NZC5jYWxsKHRoaXMsYSxiKX1cbmZ1bmN0aW9uIGZxKGEsYixjKXt0aGlzLmE9YTtxYy5jYWxsKHRoaXMsYixjKX1cbmZ1bmN0aW9uIFlEYihhKXt0aGlzLmM9YTt4eGIuY2FsbCh0aGlzLFN2ZSwwKX1cbmZ1bmN0aW9uIHJrKGEsYixjKXt0aGlzLmM9Yjt0aGlzLmI9Yzt0aGlzLmE9YX1cbmZ1bmN0aW9uIERNYyhhKXtkTWMoKTt0aGlzLmQ9YTt0aGlzLmE9bmV3IHdtYn1cbmZ1bmN0aW9uIGhvKGEpe19sKCk7dGhpcy5hPSh5b2IoKSxuZXcgTHFiKGEpKX1cbmZ1bmN0aW9uIFhtYyhhLGIpe0RtZChhLmYpP1ltYyhhLGIpOlptYyhhLGIpfVxuZnVuY3Rpb24gTHhiKGEsYil7TXhiLmNhbGwodGhpcyxhLGEubGVuZ3RoLGIpfVxuZnVuY3Rpb24gbkJiKGEsYil7aWYoZEJiKXtyZXR1cm59ISFiJiYoYS5kPWIpfVxuZnVuY3Rpb24gWk5kKGEsYil7cmV0dXJuIFpEKGIsMTUpJiZfR2QoYS5jLGIpfVxuZnVuY3Rpb24gQVZkKGEsYixjKXtyZXR1cm4gUkQoYS5jLDcxKS5XayhiLGMpfVxuZnVuY3Rpb24gQlZkKGEsYixjKXtyZXR1cm4gUkQoYS5jLDcxKS5YayhiLGMpfVxuZnVuY3Rpb24gbWdlKGEsYixjKXtyZXR1cm4gbGdlKGEsUkQoYiwzNDMpLGMpfVxuZnVuY3Rpb24gb2dlKGEsYixjKXtyZXR1cm4gbmdlKGEsUkQoYiwzNDMpLGMpfVxuZnVuY3Rpb24gSWdlKGEsYixjKXtyZXR1cm4gSGdlKGEsUkQoYiwzNDMpLGMpfVxuZnVuY3Rpb24gS2dlKGEsYixjKXtyZXR1cm4gSmdlKGEsUkQoYiwzNDMpLGMpfVxuZnVuY3Rpb24gRm4oYSxiKXtyZXR1cm4gYj09bnVsbD9udWxsOlh2KGEuYixiKX1cbmZ1bmN0aW9uIFFlYihhKXtyZXR1cm4gX0QoYSk/KHVGYihhKSxhKTphLnVlKCl9XG5mdW5jdGlvbiBSZmIoYSl7cmV0dXJuICFpc05hTihhKSYmIWlzRmluaXRlKGEpfVxuZnVuY3Rpb24gWnViKGEpe0x1Yih0aGlzKTtYdWIodGhpcyk7eWUodGhpcyxhKX1cbmZ1bmN0aW9uIGRuYihhKXtQbWIodGhpcyk7WUViKHRoaXMuYywwLGEuUGMoKSl9XG5mdW5jdGlvbiBGc2IoYSxiLGMpe3RoaXMuYT1hO3RoaXMuYj1iO3RoaXMuYz1jfVxuZnVuY3Rpb24gVnRiKGEsYixjKXt0aGlzLmE9YTt0aGlzLmI9Yjt0aGlzLmM9Y31cbmZ1bmN0aW9uIGh2YihhLGIsYyl7dGhpcy5kPWE7dGhpcy5iPWM7dGhpcy5hPWJ9XG5mdW5jdGlvbiBhQmIoYSl7dGhpcy5hPWE7Z2liKCk7SGRiKERhdGUubm93KCkpfVxuZnVuY3Rpb24gd3piKGEpe0NrYihhLmEpO1l5YihhLmMsYS5iKTthLmI9bnVsbH1cbmZ1bmN0aW9uIHd2Yigpe3d2Yj1nZWI7dXZiPW5ldyB4dmI7dnZiPW5ldyB6dmJ9XG5mdW5jdGlvbiBLTWQoKXtLTWQ9Z2ViO0pNZD0kQyhqSixydmUsMSwwLDUsMSl9XG5mdW5jdGlvbiBUVGQoKXtUVGQ9Z2ViO1NUZD0kQyhqSixydmUsMSwwLDUsMSl9XG5mdW5jdGlvbiB5VWQoKXt5VWQ9Z2ViO3hVZD0kQyhqSixydmUsMSwwLDUsMSl9XG5mdW5jdGlvbiBfbCgpe19sPWdlYjtuZXcgaW0oKHlvYigpLHlvYigpLHZvYikpfVxuZnVuY3Rpb24gZ0FiKGEpe2NBYigpO3JldHVybiB3cygocUFiKCkscEFiKSxhKX1cbmZ1bmN0aW9uIHpCYihhKXt4QmIoKTtyZXR1cm4gd3MoKENCYigpLEJCYiksYSl9XG5mdW5jdGlvbiBGSGIoYSl7REhiKCk7cmV0dXJuIHdzKChJSGIoKSxISGIpLGEpfVxuZnVuY3Rpb24gTkhiKGEpe0xIYigpO3JldHVybiB3cygoUUhiKCksUEhiKSxhKX1cbmZ1bmN0aW9uIGtJYihhKXtpSWIoKTtyZXR1cm4gd3MoKG5JYigpLG1JYiksYSl9XG5mdW5jdGlvbiBfSmIoYSl7WkpiKCk7cmV0dXJuIHdzKChjS2IoKSxiS2IpLGEpfVxuZnVuY3Rpb24gR0tiKGEpe0VLYigpO3JldHVybiB3cygoSktiKCksSUtiKSxhKX1cbmZ1bmN0aW9uIHhMYihhKXt2TGIoKTtyZXR1cm4gd3MoKEFMYigpLHpMYiksYSl9XG5mdW5jdGlvbiBtTWIoYSl7aE1iKCk7cmV0dXJuIHdzKChwTWIoKSxvTWIpLGEpfVxuZnVuY3Rpb24gb09iKGEpe21PYigpO3JldHVybiB3cygock9iKCkscU9iKSxhKX1cbmZ1bmN0aW9uIEtQYihhKXtJUGIoKTtyZXR1cm4gd3MoKE5QYigpLE1QYiksYSl9XG5mdW5jdGlvbiBLUmIoYSl7SVJiKCk7cmV0dXJuIHdzKChOUmIoKSxNUmIpLGEpfVxuZnVuY3Rpb24gWFJiKGEpe1ZSYigpO3JldHVybiB3cygoJFJiKCksWlJiKSxhKX1cbmZ1bmN0aW9uIFZVYihhKXtUVWIoKTtyZXR1cm4gd3MoKFlVYigpLFhVYiksYSl9XG5mdW5jdGlvbiBDV2IoYSl7QVdiKCk7cmV0dXJuIHdzKChGV2IoKSxFV2IpLGEpfVxuZnVuY3Rpb24gdVhiKGEpe3NYYigpO3JldHVybiB3cygoeFhiKCksd1hiKSxhKX1cbmZ1bmN0aW9uIHRaYihhKXtuWmIoKTtyZXR1cm4gd3MoKHdaYigpLHZaYiksYSl9XG5mdW5jdGlvbiBXJGIoYSl7VSRiKCk7cmV0dXJuIHdzKChaJGIoKSxZJGIpLGEpfVxuZnVuY3Rpb24gTWIoYSxiKXtpZighYSl7dGhyb3cgQWRiKG5ldyBhZ2IoYikpfX1cbmZ1bmN0aW9uIFZiKGEpe2lmKCFhKXt0aHJvdyBBZGIobmV3IGRnYih0dmUpKX19XG5mdW5jdGlvbiByRmIoYSxiKXtpZihhIT1iKXt0aHJvdyBBZGIobmV3IEpyYil9fVxuZnVuY3Rpb24gS1FiKGEsYixjKXt0aGlzLmE9YTt0aGlzLmI9Yjt0aGlzLmM9Y31cbmZ1bmN0aW9uIGxSYihhLGIsYyl7dGhpcy5hPWE7dGhpcy5iPWI7dGhpcy5jPWN9XG5mdW5jdGlvbiBoN2IoYSxiLGMpe3RoaXMuYT1hO3RoaXMuYj1iO3RoaXMuYz1jfVxuZnVuY3Rpb24gSjBiKGEsYixjKXt0aGlzLmI9YTt0aGlzLmE9Yjt0aGlzLmM9Y31cbmZ1bmN0aW9uIGROYihhLGIsYyl7dGhpcy5iPWE7dGhpcy5jPWI7dGhpcy5hPWN9XG5mdW5jdGlvbiBvYWMoYSxiLGMpe3RoaXMuYT1hO3RoaXMuYj1iO3RoaXMuYz1jfVxuZnVuY3Rpb24gRjFiKGEsYixjKXt0aGlzLmU9Yjt0aGlzLmI9YTt0aGlzLmQ9Y31cbmZ1bmN0aW9uIEVjYyhhLGIsYyl7dGhpcy5iPWE7dGhpcy5hPWI7dGhpcy5jPWN9XG5mdW5jdGlvbiBVRGIoYSxiLGMpe3hEYigpO2EuYS5ZZChiLGMpO3JldHVybiBifVxuZnVuY3Rpb24gQ0piKGEpe3ZhciBiO2I9bmV3IEJKYjtiLmU9YTtyZXR1cm4gYn1cbmZ1bmN0aW9uIF9OYihhKXt2YXIgYjtiPW5ldyBZTmI7Yi5iPWE7cmV0dXJuIGJ9XG5mdW5jdGlvbiBVOWIoKXtVOWI9Z2ViO1M5Yj1uZXcgYmFjO1Q5Yj1uZXcgZWFjfVxuZnVuY3Rpb24gUmVjKCl7UmVjPWdlYjtRZWM9bmV3IGVmYztQZWM9bmV3IGpmY31cbmZ1bmN0aW9uIGxrYygpe2xrYz1nZWI7amtjPW5ldyBNa2M7a2tjPW5ldyBPa2N9XG5mdW5jdGlvbiBsb2MoYSl7am9jKCk7cmV0dXJuIHdzKChvb2MoKSxub2MpLGEpfVxuZnVuY3Rpb24ga2NjKGEpe2hjYygpO3JldHVybiB3cygobmNjKCksbWNjKSxhKX1cbmZ1bmN0aW9uIHllYyhhKXt2ZWMoKTtyZXR1cm4gd3MoKEJlYygpLEFlYyksYSl9XG5mdW5jdGlvbiBnbmMoYSl7ZW5jKCk7cmV0dXJuIHdzKChqbmMoKSxpbmMpLGEpfVxuZnVuY3Rpb24gRW5jKGEpe0JuYygpO3JldHVybiB3cygoSG5jKCksR25jKSxhKX1cbmZ1bmN0aW9uIGdwYyhhKXtlcGMoKTtyZXR1cm4gd3MoKGpwYygpLGlwYyksYSl9XG5mdW5jdGlvbiBkdGMoYSl7YnRjKCk7cmV0dXJuIHdzKChndGMoKSxmdGMpLGEpfVxuZnVuY3Rpb24gbHRjKGEpe2p0YygpO3JldHVybiB3cygob3RjKCksbnRjKSxhKX1cbmZ1bmN0aW9uIHh0YyhhKXtzdGMoKTtyZXR1cm4gd3MoKEF0YygpLHp0YyksYSl9XG5mdW5jdGlvbiBHdGMoYSl7RXRjKCk7cmV0dXJuIHdzKChKdGMoKSxJdGMpLGEpfVxuZnVuY3Rpb24gVXRjKGEpe1B0YygpO3JldHVybiB3cygoWHRjKCksV3RjKSxhKX1cbmZ1bmN0aW9uIGF1YyhhKXskdGMoKTtyZXR1cm4gd3MoKGR1YygpLGN1YyksYSl9XG5mdW5jdGlvbiBhdmMoYSl7JHVjKCk7cmV0dXJuIHdzKChkdmMoKSxjdmMpLGEpfVxuZnVuY3Rpb24gcXZjKGEpe292YygpO3JldHVybiB3cygodHZjKCksc3ZjKSxhKX1cbmZ1bmN0aW9uIHp2YyhhKXt4dmMoKTtyZXR1cm4gd3MoKEN2YygpLEJ2YyksYSl9XG5mdW5jdGlvbiBJdmMoYSl7R3ZjKCk7cmV0dXJuIHdzKChMdmMoKSxLdmMpLGEpfVxuZnVuY3Rpb24gUXZjKGEpe092YygpO3JldHVybiB3cygoVHZjKCksU3ZjKSxhKX1cbmZ1bmN0aW9uIFF1YyhhKXtPdWMoKTtyZXR1cm4gd3MoKFR1YygpLFN1YyksYSl9XG5mdW5jdGlvbiBqdWMoYSl7aHVjKCk7cmV0dXJuIHdzKChtdWMoKSxsdWMpLGEpfVxuZnVuY3Rpb24gd3VjKGEpe3R1YygpO3JldHVybiB3cygoenVjKCkseXVjKSxhKX1cbmZ1bmN0aW9uIEV1YyhhKXtDdWMoKTtyZXR1cm4gd3MoKEh1YygpLEd1YyksYSl9XG5mdW5jdGlvbiBleGMoYSl7Y3hjKCk7cmV0dXJuIHdzKChoeGMoKSxneGMpLGEpfVxuZnVuY3Rpb24gZURjKGEpe19DYygpO3JldHVybiB3cygoaERjKCksZ0RjKSxhKX1cbmZ1bmN0aW9uIG9EYyhhKXtsRGMoKTtyZXR1cm4gd3MoKHJEYygpLHFEYyksYSl9XG5mdW5jdGlvbiBBRGMoYSl7d0RjKCk7cmV0dXJuIHdzKChERGMoKSxDRGMpLGEpfVxuZnVuY3Rpb24gT0RjKGEpe0pEYygpO3JldHVybiB3cygoUkRjKCksUURjKSxhKX1cbmZ1bmN0aW9uIGNFYyhhKXthRWMoKTtyZXR1cm4gd3MoKGZFYygpLGVFYyksYSl9XG5mdW5jdGlvbiBtRWMoYSl7a0VjKCk7cmV0dXJuIHdzKChwRWMoKSxvRWMpLGEpfVxuZnVuY3Rpb24gdUVjKGEpe3NFYygpO3JldHVybiB3cygoeEVjKCksd0VjKSxhKX1cbmZ1bmN0aW9uIERFYyhhKXtCRWMoKTtyZXR1cm4gd3MoKEdFYygpLEZFYyksYSl9XG5mdW5jdGlvbiBNRWMoYSl7S0VjKCk7cmV0dXJuIHdzKChQRWMoKSxPRWMpLGEpfVxuZnVuY3Rpb24gVkVjKGEpe1RFYygpO3JldHVybiB3cygoWUVjKCksWEVjKSxhKX1cbmZ1bmN0aW9uIG5GYyhhKXtsRmMoKTtyZXR1cm4gd3MoKHFGYygpLHBGYyksYSl9XG5mdW5jdGlvbiB3RmMoYSl7dUZjKCk7cmV0dXJuIHdzKCh6RmMoKSx5RmMpLGEpfVxuZnVuY3Rpb24gRkZjKGEpe0RGYygpO3JldHVybiB3cygoSUZjKCksSEZjKSxhKX1cbmZ1bmN0aW9uIFRLYyhhKXtSS2MoKTtyZXR1cm4gd3MoKFdLYygpLFZLYyksYSl9XG5mdW5jdGlvbiB1TmMoYSl7c05jKCk7cmV0dXJuIHdzKCh4TmMoKSx3TmMpLGEpfVxuZnVuY3Rpb24geVFjKGEpe3dRYygpO3JldHVybiB3cygoQlFjKCksQVFjKSxhKX1cbmZ1bmN0aW9uIEdRYyhhKXtFUWMoKTtyZXR1cm4gd3MoKEpRYygpLElRYyksYSl9XG5mdW5jdGlvbiBoVGMoYSl7ZlRjKCk7cmV0dXJuIHdzKChrVGMoKSxqVGMpLGEpfVxuZnVuY3Rpb24gZlZjKGEpe2RWYygpO3JldHVybiB3cygoaVZjKCksaFZjKSxhKX1cbmZ1bmN0aW9uIGJXYyhhKXtZVmMoKTtyZXR1cm4gd3MoKGVXYygpLGRXYyksYSl9XG5mdW5jdGlvbiBaWWMoYSl7V1ljKCk7cmV0dXJuIHdzKChhWmMoKSxfWWMpLGEpfVxuZnVuY3Rpb24gTlpjKGEpe0xaYygpO3JldHVybiB3cygoUVpjKCksUFpjKSxhKX1cbmZ1bmN0aW9uIHVfYyhhKXtzX2MoKTtyZXR1cm4gd3MoKHhfYygpLHdfYyksYSl9XG5mdW5jdGlvbiBDX2MoYSl7QV9jKCk7cmV0dXJuIHdzKChGX2MoKSxFX2MpLGEpfVxuZnVuY3Rpb24gQzJjKGEpe3gyYygpO3JldHVybiB3cygoRjJjKCksRTJjKSxhKX1cbmZ1bmN0aW9uIGozYyhhKXtnM2MoKTtyZXR1cm4gd3MoKG0zYygpLGwzYyksYSl9XG5mdW5jdGlvbiBqNGMoYSl7ZzRjKCk7cmV0dXJuIHdzKChtNGMoKSxsNGMpLGEpfVxuZnVuY3Rpb24gXzNjKGEpe1kzYygpO3JldHVybiB3cygoYzRjKCksYjRjKSxhKX1cbmZ1bmN0aW9uIG01YyhhKXtqNWMoKTtyZXR1cm4gd3MoKHA1YygpLG81YyksYSl9XG5mdW5jdGlvbiB3NWMoYSl7dDVjKCk7cmV0dXJuIHdzKCh6NWMoKSx5NWMpLGEpfVxuZnVuY3Rpb24gaDZjKGEpe2Y2YygpO3JldHVybiB3cygoazZjKCksajZjKSxhKX1cbmZ1bmN0aW9uIEM2YyhhKXt6NmMoKTtyZXR1cm4gd3MoKEY2YygpLEU2YyksYSl9XG5mdW5jdGlvbiBiN2MoYSl7XzZjKCk7cmV0dXJuIHdzKChlN2MoKSxkN2MpLGEpfVxuZnVuY3Rpb24gRThjKGEpe3o4YygpO3JldHVybiB3cygoSDhjKCksRzhjKSxhKX1cbmZ1bmN0aW9uIFI4YihhKXtQOGIoKTtyZXR1cm4gd3MoKFU4YigpLFQ4YiksYSl9XG5mdW5jdGlvbiB0M2IoYSl7cjNiKCk7cmV0dXJuIHdzKCh3M2IoKSx2M2IpLGEpfVxuZnVuY3Rpb24gZzljKGEpe2I5YygpO3JldHVybiB3cygoajljKCksaTljKSxhKX1cbmZ1bmN0aW9uIEc5YyhhKXtCOWMoKTtyZXR1cm4gd3MoKEo5YygpLEk5YyksYSl9XG5mdW5jdGlvbiB1YWQoYSl7c2FkKCk7cmV0dXJuIHdzKCh4YWQoKSx3YWQpLGEpfVxuZnVuY3Rpb24geGJkKGEpe3NiZCgpO3JldHVybiB3cygoQWJkKCksemJkKSxhKX1cbmZ1bmN0aW9uIGliZChhKXtnYmQoKTtyZXR1cm4gd3MoKGxiZCgpLGtiZCksYSl9XG5mdW5jdGlvbiBHYmQoYSl7Q2JkKCk7cmV0dXJuIHdzKChKYmQoKSxJYmQpLGEpfVxuZnVuY3Rpb24gT2JkKGEpe01iZCgpO3JldHVybiB3cygoUmJkKCksUWJkKSxhKX1cbmZ1bmN0aW9uIFpiZChhKXtYYmQoKTtyZXR1cm4gd3MoKGFjZCgpLF9iZCksYSl9XG5mdW5jdGlvbiBmZGQoYSl7X2NkKCk7cmV0dXJuIHdzKChpZGQoKSxoZGQpLGEpfVxuZnVuY3Rpb24gcWRkKGEpe2xkZCgpO3JldHVybiB3cygodGRkKCksc2RkKSxhKX1cbmZ1bmN0aW9uICRoZChhKXtZaGQoKTtyZXR1cm4gd3MoKGJpZCgpLGFpZCksYSl9XG5mdW5jdGlvbiBtaWQoYSl7a2lkKCk7cmV0dXJuIHdzKChwaWQoKSxvaWQpLGEpfVxuZnVuY3Rpb24gVGpkKGEpe1JqZCgpO3JldHVybiB3cygoV2pkKCksVmpkKSxhKX1cbmZ1bmN0aW9uIHdrZChhKXt1a2QoKTtyZXR1cm4gd3MoKHprZCgpLHlrZCksYSl9XG5mdW5jdGlvbiBIbWQoYSl7Q21kKCk7cmV0dXJuIHdzKChLbWQoKSxKbWQpLGEpfVxuZnVuY3Rpb24gUW1kKGEpe09tZCgpO3JldHVybiB3cygoVG1kKCksU21kKSxhKX1cbmZ1bmN0aW9uICRtZChhKXtZbWQoKTtyZXR1cm4gd3MoKGJuZCgpLGFuZCksYSl9XG5mdW5jdGlvbiBrbmQoYSl7aW5kKCk7cmV0dXJuIHdzKChubmQoKSxtbmQpLGEpfVxuZnVuY3Rpb24gSG5kKGEpe0ZuZCgpO3JldHVybiB3cygoS25kKCksSm5kKSxhKX1cbmZ1bmN0aW9uIFNuZChhKXtQbmQoKTtyZXR1cm4gd3MoKFZuZCgpLFVuZCksYSl9XG5mdW5jdGlvbiBnb2QoYSl7ZG9kKCk7cmV0dXJuIHdzKChqb2QoKSxpb2QpLGEpfVxuZnVuY3Rpb24gcm9kKGEpe3BvZCgpO3JldHVybiB3cygodW9kKCksdG9kKSxhKX1cbmZ1bmN0aW9uIEZvZChhKXtCb2QoKTtyZXR1cm4gd3MoKElvZCgpLEhvZCksYSl9XG5mdW5jdGlvbiBUb2QoYSl7UG9kKCk7cmV0dXJuIHdzKChXb2QoKSxWb2QpLGEpfVxuZnVuY3Rpb24gd3BkKGEpe3FwZCgpO3JldHVybiB3cygoenBkKCkseXBkKSxhKX1cbmZ1bmN0aW9uIFNwZChhKXtRcGQoKTtyZXR1cm4gd3MoKFZwZCgpLFVwZCksYSl9XG5mdW5jdGlvbiBmcWQoYSl7ZHFkKCk7cmV0dXJuIHdzKChpcWQoKSxocWQpLGEpfVxuZnVuY3Rpb24gb3FkKGEpe21xZCgpO3JldHVybiB3cygocnFkKCkscXFkKSxhKX1cbmZ1bmN0aW9uIHpzYyhhLGIpe3JldHVybiAodUZiKGEpLGEpKyh1RmIoYiksYil9XG5mdW5jdGlvbiB3cWQoYSl7dXFkKCk7cmV0dXJuIHdzKChFcWQoKSxEcWQpLGEpfVxuZnVuY3Rpb24gSXJkKGEpe0dyZCgpO3JldHVybiB3cygoTHJkKCksS3JkKSxhKX1cbmZ1bmN0aW9uIHZ0ZChhKXt0dGQoKTtyZXR1cm4gd3MoKHl0ZCgpLHh0ZCksYSl9XG5mdW5jdGlvbiBkTWMoKXtkTWM9Z2ViO2JNYz0ocXBkKCkscHBkKTtjTWM9WG9kfVxuZnVuY3Rpb24gdXFkKCl7dXFkPWdlYjtzcWQ9bmV3IHpxZDt0cWQ9bmV3IEJxZH1cbmZ1bmN0aW9uIHdKYyhhKXshYS5lJiYoYS5lPW5ldyBibmIpO3JldHVybiBhLmV9XG5mdW5jdGlvbiBCVGMoYSxiKXt0aGlzLmM9YTt0aGlzLmE9Yjt0aGlzLmI9Yi1hfVxuZnVuY3Rpb24gZzhjKGEsYixjKXt0aGlzLmE9YTt0aGlzLmI9Yjt0aGlzLmM9Y31cbmZ1bmN0aW9uIGd1ZChhLGIsYyl7dGhpcy5hPWE7dGhpcy5iPWI7dGhpcy5jPWN9XG5mdW5jdGlvbiBXZGQoYSxiLGMpe3RoaXMuYT1hO3RoaXMuYj1iO3RoaXMuYz1jfVxuZnVuY3Rpb24gY2VkKGEsYixjKXt0aGlzLmE9YTt0aGlzLmI9Yjt0aGlzLmM9Y31cbmZ1bmN0aW9uIHBGZChhLGIsYyl7dGhpcy5hPWE7dGhpcy5iPWI7dGhpcy5jPWN9XG5mdW5jdGlvbiBaUGQoYSxiLGMpe3RoaXMuYT1hO3RoaXMuYj1iO3RoaXMuYz1jfVxuZnVuY3Rpb24gZzdkKGEsYixjKXt0aGlzLmU9YTt0aGlzLmE9Yjt0aGlzLmM9Y31cbmZ1bmN0aW9uIEs3ZChhLGIsYyl7czdkKCk7QzdkLmNhbGwodGhpcyxhLGIsYyl9XG5mdW5jdGlvbiBmOWQoYSxiLGMpe3M3ZCgpO084ZC5jYWxsKHRoaXMsYSxiLGMpfVxuZnVuY3Rpb24gcjlkKGEsYixjKXtzN2QoKTtPOGQuY2FsbCh0aGlzLGEsYixjKX1cbmZ1bmN0aW9uIHg5ZChhLGIsYyl7czdkKCk7TzhkLmNhbGwodGhpcyxhLGIsYyl9XG5mdW5jdGlvbiBoOWQoYSxiLGMpe3M3ZCgpO2Y5ZC5jYWxsKHRoaXMsYSxiLGMpfVxuZnVuY3Rpb24gajlkKGEsYixjKXtzN2QoKTtmOWQuY2FsbCh0aGlzLGEsYixjKX1cbmZ1bmN0aW9uIGw5ZChhLGIsYyl7czdkKCk7ajlkLmNhbGwodGhpcyxhLGIsYyl9XG5mdW5jdGlvbiB0OWQoYSxiLGMpe3M3ZCgpO3I5ZC5jYWxsKHRoaXMsYSxiLGMpfVxuZnVuY3Rpb24gejlkKGEsYixjKXtzN2QoKTt4OWQuY2FsbCh0aGlzLGEsYixjKX1cbmZ1bmN0aW9uIFMyYihhKXtKMmIuY2FsbCh0aGlzLGEuZCxhLmMsYS5hLGEuYil9XG5mdW5jdGlvbiBCM2IoYSl7SjJiLmNhbGwodGhpcyxhLmQsYS5jLGEuYSxhLmIpfVxuZnVuY3Rpb24gT2coYSl7dGhpcy5kPWE7TGcodGhpcyk7dGhpcy5iPWVkKGEuZCl9XG5mdW5jdGlvbiBjR2QoYSl7YUdkKCk7cmV0dXJuIHdzKChmR2QoKSxlR2QpLGEpfVxuZnVuY3Rpb24gZ2soYSxiKXtRYihhKTtRYihiKTtyZXR1cm4gbmV3IGhrKGEsYil9XG5mdW5jdGlvbiBkcihhLGIpe1FiKGEpO1FiKGIpO3JldHVybiBuZXcgbXIoYSxiKX1cbmZ1bmN0aW9uIGhyKGEsYil7UWIoYSk7UWIoYik7cmV0dXJuIG5ldyBzcihhLGIpfVxuZnVuY3Rpb24gRHIoYSxiKXtRYihhKTtRYihiKTtyZXR1cm4gbmV3IFJyKGEsYil9XG5mdW5jdGlvbiBVdWIoYSl7c0ZiKGEuYiE9MCk7cmV0dXJuIFd1YihhLGEuYS5hKX1cbmZ1bmN0aW9uIFZ1YihhKXtzRmIoYS5iIT0wKTtyZXR1cm4gV3ViKGEsYS5jLmIpfVxuZnVuY3Rpb24gcSRkKGEpeyFhLmMmJihhLmM9bmV3IFg5ZCk7cmV0dXJuIGEuY31cbmZ1bmN0aW9uIGN2KGEpe3ZhciBiO2I9bmV3IGJuYjt4cihiLGEpO3JldHVybiBifVxuZnVuY3Rpb24gVngoYSl7dmFyIGI7Yj1uZXcgX3NiO3hyKGIsYSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBZeChhKXt2YXIgYjtiPW5ldyB4QWI7X3EoYixhKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGd2KGEpe3ZhciBiO2I9bmV3IFl1YjtfcShiLGEpO3JldHVybiBifVxuZnVuY3Rpb24gUkQoYSxiKXtDRmIoYT09bnVsbHx8UUQoYSxiKSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBNeGIoYSxiLGMpe0F4Yi5jYWxsKHRoaXMsYixjKTt0aGlzLmE9YX1cbmZ1bmN0aW9uIGtCKGEsYil7dGhpcy5jPWE7dGhpcy5iPWI7dGhpcy5hPWZhbHNlfVxuZnVuY3Rpb24gaENiKCl7dGhpcy5hPSc7LDsnO3RoaXMuYj0nJzt0aGlzLmM9Jyd9XG5mdW5jdGlvbiAkQ2IoYSxiLGMpe3RoaXMuYj1hO3B4Yi5jYWxsKHRoaXMsYixjKX1cbmZ1bmN0aW9uIHV1YihhLGIsYyl7dGhpcy5jPWE7eGxiLmNhbGwodGhpcyxiLGMpfVxuZnVuY3Rpb24gZlpiKGEsYixjKXtlWmIuY2FsbCh0aGlzLGEsYik7dGhpcy5iPWN9XG5mdW5jdGlvbiBZRWIoYSxiLGMpe1ZFYihjLDAsYSxiLGMubGVuZ3RoLGZhbHNlKX1cbmZ1bmN0aW9uIEpZYihhLGIsYyxkLGUpe2EuYj1iO2EuYz1jO2EuZD1kO2EuYT1lfVxuZnVuY3Rpb24gRDJiKGEsYixjLGQsZSl7YS5kPWI7YS5jPWM7YS5hPWQ7YS5iPWV9XG5mdW5jdGlvbiBYRGIoYSxiKXtpZihiKXthLmI9YjthLmE9KExDYihiKSxiLmEpfX1cbmZ1bmN0aW9uIG1GYihhLGIpe2lmKCFhKXt0aHJvdyBBZGIobmV3IGFnYihiKSl9fVxuZnVuY3Rpb24gekZiKGEsYil7aWYoIWEpe3Rocm93IEFkYihuZXcgZGdiKGIpKX19XG5mdW5jdGlvbiBxRmIoYSxiKXtpZighYSl7dGhyb3cgQWRiKG5ldyB6ZWIoYikpfX1cbmZ1bmN0aW9uIHpxYyhhLGIpe21xYygpO3JldHVybiBoZ2IoYS5kLnAsYi5kLnApfVxuZnVuY3Rpb24gVDBjKGEsYil7QjBjKCk7cmV0dXJuIFFmYihhLmUuYixiLmUuYil9XG5mdW5jdGlvbiBVMGMoYSxiKXtCMGMoKTtyZXR1cm4gUWZiKGEuZS5hLGIuZS5hKX1cbmZ1bmN0aW9uIFhvYyhhLGIpe3JldHVybiBoZ2IoTjNiKGEuZCksTjNiKGIuZCkpfVxuZnVuY3Rpb24gSXpiKGEsYil7cmV0dXJuICEhYiYmSnpiKGEsYi5kKT9iOm51bGx9XG5mdW5jdGlvbiAkbGMoYSxiKXtyZXR1cm4gYj09KHFwZCgpLHBwZCk/YS5jOmEuZH1cbmZ1bmN0aW9uIFFkYihhKXtyZXR1cm4gRWRiKHlEKEtkYihhKT9XZGIoYSk6YSkpfVxuZnVuY3Rpb24gTmlkKGEpe3JldHVybiBuZXcgcmpkKGEuYythLmIsYS5kK2EuYSl9XG5mdW5jdGlvbiBHU2QoYSl7cmV0dXJuIGEhPW51bGwmJiFtU2QoYSxhU2QsYlNkKX1cbmZ1bmN0aW9uIERTZChhLGIpe3JldHVybiAoSlNkKGEpPDw0fEpTZChiKSkmQndlfVxuZnVuY3Rpb24gUmlkKGEsYixjLGQsZSl7YS5jPWI7YS5kPWM7YS5iPWQ7YS5hPWV9XG5mdW5jdGlvbiB5OGIoYSl7dmFyIGIsYztiPWEuYjtjPWEuYzthLmI9YzthLmM9Yn1cbmZ1bmN0aW9uIEI4YihhKXt2YXIgYixjO2M9YS5kO2I9YS5hO2EuZD1iO2EuYT1jfVxuZnVuY3Rpb24gdTZkKGEsYil7dmFyIGM7Yz1hLmM7dDZkKGEsYik7cmV0dXJuIGN9XG5mdW5jdGlvbiBOcWQoYSxiKXtiPDA/KGEuZz0tMSk6KGEuZz1iKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIGtqZChhLGIpe2dqZChhKTthLmEqPWI7YS5iKj1iO3JldHVybiBhfVxuZnVuY3Rpb24gaHJjKGEsYixjKXtncmMuY2FsbCh0aGlzLGIsYyk7dGhpcy5kPWF9XG5mdW5jdGlvbiBQWmQoYSxiLGMpe2taZC5jYWxsKHRoaXMsYSxiKTt0aGlzLmM9Y31cbmZ1bmN0aW9uIEtmZShhLGIsYyl7a1pkLmNhbGwodGhpcyxhLGIpO3RoaXMuYz1jfVxuZnVuY3Rpb24gelVkKGEpe3lVZCgpO2tVZC5jYWxsKHRoaXMpO3RoaXMuY2koYSl9XG5mdW5jdGlvbiBZZWUoKXtyZWUoKTtaZWUuY2FsbCh0aGlzLChZU2QoKSxYU2QpKX1cbmZ1bmN0aW9uIFlzZShhKXtWc2UoKTsrK1VzZTtyZXR1cm4gbmV3IEh0ZSgwLGEpfVxuZnVuY3Rpb24gdWtlKCl7dWtlPWdlYjt0a2U9KHlvYigpLG5ldyBtcGIoZUxlKSl9XG5mdW5jdGlvbiB1eCgpe3V4PWdlYjtuZXcgd3goKGtsKCksamwpLChXaygpLFZrKSl9XG5mdW5jdGlvbiB1Z2IoKXt1Z2I9Z2ViO3RnYj0kQyhiSixOdmUsMTcsMjU2LDAsMSl9XG5mdW5jdGlvbiB6VWIoKXt0aGlzLmI9S2ZiKFVEKGlHZCgoeVZiKCksc1ZiKSkpKX1cbmZ1bmN0aW9uIFBxKGEpe3RoaXMuYj1hO3RoaXMuYT1nbih0aGlzLmIuYSkuT2QoKX1cbmZ1bmN0aW9uIG1yKGEsYil7dGhpcy5iPWE7dGhpcy5hPWI7emwuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIHNyKGEsYil7dGhpcy5hPWE7dGhpcy5iPWI7emwuY2FsbCh0aGlzKX1cbmZ1bmN0aW9uIHNfZChhLGIsYyl7dGhpcy5hPWE7TiRkLmNhbGwodGhpcyxiLGMpfVxuZnVuY3Rpb24gbl9kKGEsYixjKXt0aGlzLmE9YTtOJGQuY2FsbCh0aGlzLGIsYyl9XG5mdW5jdGlvbiBzRGQoYSxiLGMpe3ZhciBkO2Q9bmV3IE9DKGMpO3NDKGEsYixkKX1cbmZ1bmN0aW9uIF9FYihhLGIsYyl7dmFyIGQ7ZD1hW2JdO2FbYl09YztyZXR1cm4gZH1cbmZ1bmN0aW9uIFVFYihhKXt2YXIgYjtiPWEuc2xpY2UoKTtyZXR1cm4gZEQoYixhKX1cbmZ1bmN0aW9uIFNKYihhKXt2YXIgYjtiPWEubjtyZXR1cm4gYS5hLmIrYi5kK2IuYX1cbmZ1bmN0aW9uIFBLYihhKXt2YXIgYjtiPWEubjtyZXR1cm4gYS5lLmIrYi5kK2IuYX1cbmZ1bmN0aW9uIFFLYihhKXt2YXIgYjtiPWEubjtyZXR1cm4gYS5lLmErYi5iK2IuY31cbmZ1bmN0aW9uIHJ1YihhKXthLmEuYj1hLmI7YS5iLmE9YS5hO2EuYT1hLmI9bnVsbH1cbmZ1bmN0aW9uIE11YihhLGIpe1B1YihhLGIsYS5jLmIsYS5jKTtyZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIHcyYihhKXtpZihhLmEpe3JldHVybiBhLmF9cmV0dXJuIFIwYihhKX1cbmZ1bmN0aW9uIE5TYihhKXtIU2IoKTtyZXR1cm4gSkdkKGEpPT12Q2QoTEdkKGEpKX1cbmZ1bmN0aW9uIE9TYihhKXtIU2IoKTtyZXR1cm4gTEdkKGEpPT12Q2QoSkdkKGEpKX1cbmZ1bmN0aW9uIGxfYihhLGIpe3JldHVybiBrX2IoYSxuZXcgZVpiKGIuYSxiLmIpKX1cbmZ1bmN0aW9uIHhuKGEsYil7cmV0dXJuIGZuKCksY2soYSxiKSxuZXcgenkoYSxiKX1cbmZ1bmN0aW9uIGZtYyhhLGIpe3JldHVybiBhLmM8Yi5jPy0xOmEuYz09Yi5jPzA6MX1cbmZ1bmN0aW9uIHNuYyhhKXtyZXR1cm4gYS5iLmMubGVuZ3RoLWEuZS5jLmxlbmd0aH1cbmZ1bmN0aW9uIE4zYihhKXtyZXR1cm4gYS5lLmMubGVuZ3RoLWEuZy5jLmxlbmd0aH1cbmZ1bmN0aW9uIEwzYihhKXtyZXR1cm4gYS5lLmMubGVuZ3RoK2EuZy5jLmxlbmd0aH1cbmZ1bmN0aW9uIExnYihhKXtyZXR1cm4gYT09MHx8aXNOYU4oYSk/YTphPDA/LTE6MX1cbmZ1bmN0aW9uIFYwYihhKXtyZXR1cm4gIVcwYihhKSYmYS5jLmkuYz09YS5kLmkuY31cbmZ1bmN0aW9uIERPYyhhKXtkT2MoKTtyZXR1cm4gKHFwZCgpLGFwZCkuSGMoYS5qKX1cbmZ1bmN0aW9uIE0wYyhhLGIsYyl7QjBjKCk7cmV0dXJuIGMuZS5hK2MuZi5hK2EqYn1cbmZ1bmN0aW9uIFcwYyhhLGIsYyl7QjBjKCk7cmV0dXJuIGMuZS5iK2MuZi5iK2EqYn1cbmZ1bmN0aW9uIFNVYyhhLGIsYyl7cmV0dXJuIFpqYihhLmIsUkQoYy5iLDE4KSxiKX1cbmZ1bmN0aW9uIFRVYyhhLGIsYyl7cmV0dXJuIFpqYihhLmIsUkQoYy5iLDE4KSxiKX1cbmZ1bmN0aW9uIG9GZChhLGIsYyl7aUVkKGEuYSxhLmIsYS5jLFJEKGIsMTY2KSxjKX1cbmZ1bmN0aW9uIGxhZChhLGIsYyxkKXttYWQuY2FsbCh0aGlzLGEsYixjLGQsMCwwKX1cbmZ1bmN0aW9uIExVZChhKXt5VWQoKTt6VWQuY2FsbCh0aGlzLGEpO3RoaXMuYT0tMX1cbmZ1bmN0aW9uIEd4YihhLGIpe0F4Yi5jYWxsKHRoaXMsYiwxMDQwKTt0aGlzLmE9YX1cbmZ1bmN0aW9uIHpxZCgpe3ZxZC5jYWxsKHRoaXMsJ0NPVU5UX0NISUxEUkVOJywwKX1cbmZ1bmN0aW9uIG9sZShhLGIpe0VrZS5jYWxsKHRoaXMsYSxiKTt0aGlzLmE9dGhpc31cbmZ1bmN0aW9uIHVmYihhLGIpe3ZhciBjO2M9cmZiKGEsYik7Yy5pPTI7cmV0dXJuIGN9XG5mdW5jdGlvbiBjSmQoYSxiKXt2YXIgYzsrK2EuajtjPWEuQ2ooYik7cmV0dXJuIGN9XG5mdW5jdGlvbiBwZmQoYSxiLGMpe2EuYT0tMTt0ZmQoYSxiLmcsYyk7cmV0dXJuIGF9XG5mdW5jdGlvbiBCc2QoYSxiKXtyZXR1cm4gUm1iKGEsbmV3IHJqZChiLmEsYi5iKSl9XG5mdW5jdGlvbiBfX2MoYSl7cmV0dXJuIFJfYygpLCRDKFokLE5FZSw0MCxhLDAsMSl9XG5mdW5jdGlvbiBkaihhKXtyZXR1cm4gYS5lLlJkKCkuZ2MoKSphLmMuUmQoKS5nYygpfVxuZnVuY3Rpb24gZmsoYSxiLGMpe3JldHVybiBuZXcgcmsoaERiKGEpLl9lKCksYyxiKX1cbmZ1bmN0aW9uIG1WZChhLGIpe25WZChhLGI9PW51bGw/bnVsbDoodUZiKGIpLGIpKX1cbmZ1bmN0aW9uIHE2ZChhLGIpe3M2ZChhLGI9PW51bGw/bnVsbDoodUZiKGIpLGIpKX1cbmZ1bmN0aW9uIHI2ZChhLGIpe3M2ZChhLGI9PW51bGw/bnVsbDoodUZiKGIpLGIpKX1cbmZ1bmN0aW9uIENGYihhKXtpZighYSl7dGhyb3cgQWRiKG5ldyBJZmIobnVsbCkpfX1cbmZ1bmN0aW9uIHR0KGEpe2lmKGEuYy5lIT1hLmEpe3Rocm93IEFkYihuZXcgSnJiKX19XG5mdW5jdGlvbiBBdShhKXtpZihhLmUuYyE9YS5iKXt0aHJvdyBBZGIobmV3IEpyYil9fVxuZnVuY3Rpb24gQXIoYSl7UWIoYSk7d2hpbGUoYS5PYigpKXthLlBiKCk7YS5RYigpfX1cbmZ1bmN0aW9uIER5KGEpe3RtKCk7dGhpcy5hPSh5b2IoKSxuZXcgbXBiKFFiKGEpKSl9XG5mdW5jdGlvbiBtZihhKXt0aGlzLmM9YTt0aGlzLmI9dGhpcy5jLmQudmMoKS5LYygpfVxuZnVuY3Rpb24gaHgoYSl7YS5hLmxkKCk7UkQoYS5hLm1kKCksMTYpLmdjKCk7SGgoKX1cbmZ1bmN0aW9uICRoYihhLGIpe2EuYSs9SWhiKGIsMCxiLmxlbmd0aCk7cmV0dXJuIGF9XG5mdW5jdGlvbiBWbWIoYSxiKXt0RmIoYixhLmMubGVuZ3RoKTtyZXR1cm4gYS5jW2JdfVxuZnVuY3Rpb24ga29iKGEsYil7dEZiKGIsYS5hLmxlbmd0aCk7cmV0dXJuIGEuYVtiXX1cbmZ1bmN0aW9uIEFyYihhLGIpe3JldHVybiB1RmIoYiksTGViKGIsKHVGYihhKSxhKSl9XG5mdW5jdGlvbiB2cmIoYSxiKXtyZXR1cm4gdUZiKGEpLExlYihhLCh1RmIoYiksYikpfVxuZnVuY3Rpb24gWUMoYSxiLGMsZCxlLGYpe3JldHVybiBaQyhhLGIsYyxkLGUsMCxmKX1cbmZ1bmN0aW9uIEdCYihhLGIpe3JldHVybiBiRChiLDAsdENiKGJbMF0sSGdiKDEpKSl9XG5mdW5jdGlvbiBJQmIoYSxiKXtyZXR1cm4gSGdiKEJkYihIZ2IoYS5hKS5hLGIuYSkpfVxuZnVuY3Rpb24gdENiKGEsYil7cmV0dXJuIElCYihSRChhLDE2OCksUkQoYiwxNjgpKX1cbmZ1bmN0aW9uIEpnYigpe0pnYj1nZWI7SWdiPSRDKGVKLE52ZSwxNjgsMjU2LDAsMSl9XG5mdW5jdGlvbiBkaGIoKXtkaGI9Z2ViO2NoYj0kQyhsSixOdmUsMTkxLDI1NiwwLDEpfVxuZnVuY3Rpb24gWmViKCl7WmViPWdlYjtZZWI9JEMoUkksTnZlLDIyMiwyNTYsMCwxKX1cbmZ1bmN0aW9uIGpmYigpe2pmYj1nZWI7aWZiPSRDKFNJLE52ZSwxODAsMTI4LDAsMSl9XG5mdW5jdGlvbiBLWWIoKXtKWWIodGhpcyxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSl9XG5mdW5jdGlvbiBLdWIoYSl7Y3RiLmNhbGwodGhpcyxuZXcgZ3ViKTt5ZSh0aGlzLGEpfVxuZnVuY3Rpb24gYnRiKGEpe3RoaXMuYT1uZXcgVXNiKGEuZ2MoKSk7eWUodGhpcyxhKX1cbmZ1bmN0aW9uIG5zYihhKXt0aGlzLmM9YTt0aGlzLmE9bmV3IE9zYih0aGlzLmMuYSl9XG5mdW5jdGlvbiBLbWMoYSl7dGhpcy5hPWE7dGhpcy5jPW5ldyBUc2I7RW1jKHRoaXMpfVxuZnVuY3Rpb24gRFJiKCl7dGhpcy5kPW5ldyByamQoMCwwKTt0aGlzLmU9bmV3IF9zYn1cbmZ1bmN0aW9uIFNEYihhLGIpe3hEYigpO05DYi5jYWxsKHRoaXMsYSk7dGhpcy5hPWJ9XG5mdW5jdGlvbiBKMmIoYSxiLGMsZCl7QTJiKHRoaXMpO0QyYih0aGlzLGEsYixjLGQpfVxuZnVuY3Rpb24gVXFjKGEsYixjKXtyZXR1cm4gaGdiKGIuZFthLmddLGMuZFthLmddKX1cbmZ1bmN0aW9uIHdNYyhhLGIsYyl7cmV0dXJuIGhnYihhLmRbYi5wXSxhLmRbYy5wXSl9XG5mdW5jdGlvbiB4TWMoYSxiLGMpe3JldHVybiBoZ2IoYS5kW2IucF0sYS5kW2MucF0pfVxuZnVuY3Rpb24geU1jKGEsYixjKXtyZXR1cm4gaGdiKGEuZFtiLnBdLGEuZFtjLnBdKX1cbmZ1bmN0aW9uIHpNYyhhLGIsYyl7cmV0dXJuIGhnYihhLmRbYi5wXSxhLmRbYy5wXSl9XG5mdW5jdGlvbiBBYWQoYSxiLGMpe3JldHVybiAkd25kLk1hdGgubWluKGMvYSwxL2IpfVxuZnVuY3Rpb24gU0ljKGEsYil7cmV0dXJuIGE/MDokd25kLk1hdGgubWF4KDAsYi0xKX1cbmZ1bmN0aW9uIHFTZChhLGIpe3JldHVybiBhPT1udWxsP2I9PW51bGw6bGhiKGEsYil9XG5mdW5jdGlvbiByU2QoYSxiKXtyZXR1cm4gYT09bnVsbD9iPT1udWxsOm1oYihhLGIpfVxuZnVuY3Rpb24gbFFiKGEpe3JldHVybiAhYS5xPyh5b2IoKSx5b2IoKSx3b2IpOmEucX1cbmZ1bmN0aW9uIF9sYyhhKXtyZXR1cm4gYS5jLVJEKFZtYihhLmEsYS5iKSwyOTQpLmJ9XG5mdW5jdGlvbiB0cmQoYSl7aWYoYS5jKXtyZXR1cm4gYS5jLmZ9cmV0dXJuIGEuZS5ifVxuZnVuY3Rpb24gdXJkKGEpe2lmKGEuYyl7cmV0dXJuIGEuYy5nfXJldHVybiBhLmUuYX1cbmZ1bmN0aW9uIHdzYyhhLGIpe2EuYT09bnVsbCYmdXNjKGEpO3JldHVybiBhLmFbYl19XG5mdW5jdGlvbiBMMmMoYSl7dmFyIGI7Yj1SMmMoYSk7cmV0dXJuICFiP2E6TDJjKGIpfVxuZnVuY3Rpb24gJHNlKGEsYil7VnNlKCk7KytVc2U7cmV0dXJuIG5ldyBRdGUoYSxiKX1cbmZ1bmN0aW9uIEh0ZShhLGIpe1ZzZSgpO1dzZS5jYWxsKHRoaXMsYSk7dGhpcy5hPWJ9XG5mdW5jdGlvbiBOOGQoYSxiKXtzN2QoKTt0N2QuY2FsbCh0aGlzLGIpO3RoaXMuYT1hfVxuZnVuY3Rpb24gaWFlKGEsYixjKXt0aGlzLmE9YTtYWmQuY2FsbCh0aGlzLGIsYywyKX1cbmZ1bmN0aW9uIG50ZChhKXt0aGlzLmI9bmV3IFl1Yjt0aGlzLmE9YTt0aGlzLmM9LTF9XG5mdW5jdGlvbiBkcyhhKXtxYy5jYWxsKHRoaXMsMCwwKTt0aGlzLmE9YTt0aGlzLmI9MH1cbmZ1bmN0aW9uIFBTZChhKXtaSGQuY2FsbCh0aGlzLGEuZ2MoKSk7WUdkKHRoaXMsYSl9XG5mdW5jdGlvbiBqZyhhKXthLmI/amcoYS5iKTphLmQuZGMoKSYmYS5mLmMuQmMoYS5lKX1cbmZ1bmN0aW9uIGFEKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpJiZhLlRtPT09a2VifVxuZnVuY3Rpb24gQnNiKGEsYil7cmV0dXJuIFpEKGIsMjIpJiZDc2IoYSxSRChiLDIyKSl9XG5mdW5jdGlvbiBEc2IoYSxiKXtyZXR1cm4gWkQoYiwyMikmJkVzYihhLFJEKGIsMjIpKX1cbmZ1bmN0aW9uIHF0YihhLGIpe3JldHVybiBvdGIoYSxiLHB0YihhLGEuYi5DZShiKSkpfVxuZnVuY3Rpb24gSnRiKGEsYil7cmV0dXJuICEoYS5hLmdldChiKT09PXVuZGVmaW5lZCl9XG5mdW5jdGlvbiBJd2IoYSl7cmV0dXJuIEt3YihhLDI2KSpLeGUrS3diKGEsMjcpKkx4ZX1cbmZ1bmN0aW9uIE9CYihhLGIpe3JldHVybiBGQmIobmV3IGpDYixuZXcgVkJiKGEpLGIpfVxuZnVuY3Rpb24gWW5iKGEsYixjKXtuRmIoMCxiLGEubGVuZ3RoKTtXbmIoYSwwLGIsYyl9XG5mdW5jdGlvbiBRbWIoYSxiLGMpe3dGYihiLGEuYy5sZW5ndGgpO1hFYihhLmMsYixjKX1cbmZ1bmN0aW9uIGRLYihhLGIsYyl7dmFyIGQ7aWYoYSl7ZD1hLmk7ZC5jPWI7ZC5iPWN9fVxuZnVuY3Rpb24gZUtiKGEsYixjKXt2YXIgZDtpZihhKXtkPWEuaTtkLmQ9YjtkLmE9Y319XG5mdW5jdGlvbiBQbmIoYSxiLGMpe3ZhciBkO2ZvcihkPTA7ZDxiOysrZCl7YVtkXT1jfX1cbmZ1bmN0aW9uIFFuYihhLGIpe3ZhciBjO2ZvcihjPTA7YzxiOysrYyl7YVtjXT0tMX19XG5mdW5jdGlvbiB5c2IoYSxiKXt2YXIgYztjPXhzYihhKTt6b2IoYyxiKTtyZXR1cm4gY31cbmZ1bmN0aW9uIGNBKGEsYil7IWEmJihhPVtdKTthW2EubGVuZ3RoXT1iO3JldHVybiBhfVxuZnVuY3Rpb24gUlFiKGEsYil7JGlkKGEuYyxiKTthLmIuYys9Yi5hO2EuYi5kKz1iLmJ9XG5mdW5jdGlvbiBRUWIoYSxiKXtSUWIoYSxvamQobmV3IHJqZChiLmEsYi5iKSxhLmMpKX1cbmZ1bmN0aW9uIHNPYihhLGIpe3RoaXMuYj1uZXcgWXViO3RoaXMuYT1hO3RoaXMuYz1ifVxuZnVuY3Rpb24gUVliKCl7dGhpcy5iPW5ldyBhWmI7dGhpcy5jPW5ldyBVWWIodGhpcyl9XG5mdW5jdGlvbiBmSGIoKXt0aGlzLmQ9bmV3IHRIYjt0aGlzLmU9bmV3IGxIYih0aGlzKX1cbmZ1bmN0aW9uIFVGYygpe1JGYygpO3RoaXMuZj1uZXcgWXViO3RoaXMuZT1uZXcgWXVifVxuZnVuY3Rpb24geU9jKCl7ZE9jKCk7dGhpcy5rPW5ldyBUc2I7dGhpcy5kPW5ldyBfc2J9XG5mdW5jdGlvbiBudWQoKXtudWQ9Z2ViO211ZD1uZXcgbUdkKCh1bWQoKSxHbGQpLDApfVxuZnVuY3Rpb24gY3MoKXtjcz1nZWI7YnM9bmV3IGRzKCRDKGpKLHJ2ZSwxLDAsNSwxKSl9XG5mdW5jdGlvbiBfYWQoYSxiLGMpe3JldHVybiBZc2IoYSxuZXcgVEZiKGIuYSxjLmEpKX1cbmZ1bmN0aW9uIERHYyhhLGIsYyl7cmV0dXJuIC1oZ2IoYS5mW2IucF0sYS5mW2MucF0pfVxuZnVuY3Rpb24gTWljKGEsYixjKXtIaWMoYyxhLDEpO1JtYihiLG5ldyB4amMoYyxhKSl9XG5mdW5jdGlvbiBOaWMoYSxiLGMpe0lpYyhjLGEsMSk7Um1iKGIsbmV3IEpqYyhjLGEpKX1cbmZ1bmN0aW9uIGgkZChhLGIsYyl7dGhpcy5hPWE7X1pkLmNhbGwodGhpcyxiLGMsMjIpfVxuZnVuY3Rpb24gczVkKGEsYixjKXt0aGlzLmE9YTtfWmQuY2FsbCh0aGlzLGIsYywxNCl9XG5mdW5jdGlvbiBFOGQoYSxiLGMsZCl7czdkKCk7TjdkLmNhbGwodGhpcyxhLGIsYyxkKX1cbmZ1bmN0aW9uIEw4ZChhLGIsYyxkKXtzN2QoKTtON2QuY2FsbCh0aGlzLGEsYixjLGQpfVxuZnVuY3Rpb24gbmZkKGEsYixjKXthLmE9LTE7dGZkKGEsYi5nKzEsYyk7cmV0dXJuIGF9XG5mdW5jdGlvbiBiQ2QoYSxiLGMpe2M9eHZkKGEsUkQoYiw1NCksNyxjKTtyZXR1cm4gY31cbmZ1bmN0aW9uIGhWZChhLGIsYyl7Yz14dmQoYSxSRChiLDU0KSwzLGMpO3JldHVybiBjfVxuZnVuY3Rpb24gWWRiKGEpe2lmKEtkYihhKSl7cmV0dXJuIGF8MH1yZXR1cm4gRkQoYSl9XG5mdW5jdGlvbiBjdGUoYSl7VnNlKCk7KytVc2U7cmV0dXJuIG5ldyBldWUoMTAsYSwwKX1cbmZ1bmN0aW9uIGZlKGEpe3ZhciBiO2I9YS5mO3JldHVybiAhYj8oYS5mPWEuRGMoKSk6Yn1cbmZ1bmN0aW9uIEVjKGEpe3ZhciBiO2I9YS5pO3JldHVybiAhYj8oYS5pPWEuYmMoKSk6Yn1cbmZ1bmN0aW9uIEFoZShhKXtpZihhLmUuaiE9YS5kKXt0aHJvdyBBZGIobmV3IEpyYil9fVxuZnVuY3Rpb24gZ24oYSl7aWYoYS5jKXtyZXR1cm4gYS5jfXJldHVybiBhLmM9YS5TZCgpfVxuZnVuY3Rpb24gaG4oYSl7aWYoYS5kKXtyZXR1cm4gYS5kfXJldHVybiBhLmQ9YS5UZCgpfVxuZnVuY3Rpb24gVWVlKGEsYil7cmV0dXJuIHVmZShQZWUoYSxiKSk/Yi56aSgpOm51bGx9XG5mdW5jdGlvbiBlZChhKXtyZXR1cm4gWkQoYSwxNSk/UkQoYSwxNSkuZWQoKTphLktjKCl9XG5mdW5jdGlvbiBEZShhKXtyZXR1cm4gYS5RYygkQyhqSixydmUsMSxhLmdjKCksNSwxKSl9XG5mdW5jdGlvbiBhRShhKXtyZXR1cm4gYSE9bnVsbCYmY0UoYSkmJiEoYS5UbT09PWtlYil9XG5mdW5jdGlvbiBZRChhKXtyZXR1cm4gIUFycmF5LmlzQXJyYXkoYSkmJmEuVG09PT1rZWJ9XG5mdW5jdGlvbiB2eChhLGIpe3JldHVybiBRYihiKSxhLmEuSmQoYikmJiFhLmIuSmQoYil9XG5mdW5jdGlvbiB0RChhLGIpe3JldHVybiBoRChhLmwmYi5sLGEubSZiLm0sYS5oJmIuaCl9XG5mdW5jdGlvbiB6RChhLGIpe3JldHVybiBoRChhLmx8Yi5sLGEubXxiLm0sYS5ofGIuaCl9XG5mdW5jdGlvbiBIRChhLGIpe3JldHVybiBoRChhLmxeYi5sLGEubV5iLm0sYS5oXmIuaCl9XG5mdW5jdGlvbiBTZGIoYSxiKXtyZXR1cm4gRWRiKEFEKEtkYihhKT9XZGIoYSk6YSxiKSl9XG5mdW5jdGlvbiBUZGIoYSxiKXtyZXR1cm4gRWRiKEJEKEtkYihhKT9XZGIoYSk6YSxiKSl9XG5mdW5jdGlvbiBVZGIoYSxiKXtyZXR1cm4gRWRiKENEKEtkYihhKT9XZGIoYSk6YSxiKSl9XG5mdW5jdGlvbiBJZWIoYSxiKXtyZXR1cm4gS2ViKCh1RmIoYSksYSksKHVGYihiKSxiKSl9XG5mdW5jdGlvbiBKZmIoYSxiKXtyZXR1cm4gUWZiKCh1RmIoYSksYSksKHVGYihiKSxiKSl9XG5mdW5jdGlvbiBwd2IoYSl7dGhpcy5iPW5ldyBjbmIoMTEpO3RoaXMuYT0odXJiKCksYSl9XG5mdW5jdGlvbiBpcyhhKXt0aGlzLmE9KGNzKCksYnMpO3RoaXMuZD1SRChRYihhKSw1MSl9XG5mdW5jdGlvbiBBeGIoYSxiKXt0aGlzLmM9MDt0aGlzLmQ9YTt0aGlzLmI9Ynw2NHxPdmV9XG5mdW5jdGlvbiBreGIoYSxiKXt0aGlzLmU9YTt0aGlzLmQ9KGImNjQpIT0wP2J8T3ZlOmJ9XG5mdW5jdGlvbiBlemIoYSl7dGhpcy5iPW51bGw7dGhpcy5hPSh1cmIoKSwhYT9ycmI6YSl9XG5mdW5jdGlvbiBueihhKXtleih0aGlzKTt0aGlzLmc9YTtneih0aGlzKTt0aGlzLmplKCl9XG5mdW5jdGlvbiB2dWUoYSl7dXVlKCk7dGhpcy5hPTA7dGhpcy5iPWEtMTt0aGlzLmM9MX1cbmZ1bmN0aW9uIHlnKGEsYixjLGQpe3RoaXMuYT1hO2xnLmNhbGwodGhpcyxhLGIsYyxkKX1cbmZ1bmN0aW9uIGdFYihhLGIsYyl7aWYoYS5hLk1iKGMpKXthLmI9dHJ1ZTtiLkNkKGMpfX1cbmZ1bmN0aW9uIFF3YihhKXtpZighYS5kKXthLmQ9YS5iLktjKCk7YS5jPWEuYi5nYygpfX1cbmZ1bmN0aW9uIGx5YihhLGIpe2lmKGE8MHx8YT49Yil7dGhyb3cgQWRiKG5ldyB3ZWIpfX1cbmZ1bmN0aW9uIEpEYihhLGIpe3JldHVybiBNRGIoYSwodUZiKGIpLG5ldyBKQWIoYikpKX1cbmZ1bmN0aW9uIEtEYihhLGIpe3JldHVybiBNRGIoYSwodUZiKGIpLG5ldyBMQWIoYikpKX1cbmZ1bmN0aW9uIHByYyhhLGIsYyl7cmV0dXJuIHFyYyhhLFJEKGIsMTIpLFJEKGMsMTIpKX1cbmZ1bmN0aW9uIHE0YihhKXtyZXR1cm4gSjNiKCksUkQoYSwxMikuZy5jLmxlbmd0aCE9MH1cbmZ1bmN0aW9uIHY0YihhKXtyZXR1cm4gSjNiKCksUkQoYSwxMikuZS5jLmxlbmd0aCE9MH1cbmZ1bmN0aW9uIHNkYyhhLGIpe1pjYygpO3JldHVybiBRZmIoYi5hLm8uYSxhLmEuby5hKX1cbmZ1bmN0aW9uIGRfZChhLGIpeyhiLkJiJlFIZSkhPTAmJiFhLmEubyYmKGEuYS5vPWIpfVxuZnVuY3Rpb24gVDNjKGEsYil7Yi5VZyhcIkdlbmVyYWwgJ1JvdGF0b3JcIiwxKTtTM2MoYSl9XG5mdW5jdGlvbiBNQ2MoYSxiLGMpe2IucWYoYyxLZmIoVUQoV2piKGEuYixjKSkpKmEuYSl9XG5mdW5jdGlvbiB5aWQoYSxiLGMpe3RpZCgpO3JldHVybiB4aWQoYSxiKSYmeGlkKGEsYyl9XG5mdW5jdGlvbiBSb2QoYSl7UG9kKCk7cmV0dXJuICFhLkhjKExvZCkmJiFhLkhjKE5vZCl9XG5mdW5jdGlvbiBOcmMoYSl7aWYoYS5lKXtyZXR1cm4gU3JjKGEuZSl9cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBaZGIoYSl7aWYoS2RiKGEpKXtyZXR1cm4gJycrYX1yZXR1cm4gR0QoYSl9XG5mdW5jdGlvbiBYTmMoYSl7dmFyIGI7Yj1hO3doaWxlKGIuZil7Yj1iLmZ9cmV0dXJuIGJ9XG5mdW5jdGlvbiBIQmIoYSxiLGMpe2JEKGIsMCx0Q2IoYlswXSxjWzBdKSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBHcGMoYSxiLGMsZCl7dmFyIGU7ZT1hLmk7ZS5pPWI7ZS5hPWM7ZS5iPWR9XG5mdW5jdGlvbiBDNWQoYSxiLGMsZCl7WFpkLmNhbGwodGhpcyxhLGIsYyk7dGhpcy5iPWR9XG5mdW5jdGlvbiBOM2QoYSxiLGMsZCxlKXtPM2QuY2FsbCh0aGlzLGEsYixjLGQsZSwtMSl9XG5mdW5jdGlvbiBiNGQoYSxiLGMsZCxlKXtjNGQuY2FsbCh0aGlzLGEsYixjLGQsZSwtMSl9XG5mdW5jdGlvbiBJaWUoYSxiLGMsZCl7UFpkLmNhbGwodGhpcyxhLGIsYyk7dGhpcy5iPWR9XG5mdW5jdGlvbiBYZGUoYSl7dUlkLmNhbGwodGhpcyxhLGZhbHNlKTt0aGlzLmE9ZmFsc2V9XG5mdW5jdGlvbiBCcWQoKXt2cWQuY2FsbCh0aGlzLCdMT09LQUhFQURfTEFZT1VUJywxKX1cbmZ1bmN0aW9uIG5OZChhKXt0aGlzLmI9YTttTWQuY2FsbCh0aGlzLGEpO21OZCh0aGlzKX1cbmZ1bmN0aW9uIHZOZChhKXt0aGlzLmI9YTtCTWQuY2FsbCh0aGlzLGEpO3VOZCh0aGlzKX1cbmZ1bmN0aW9uIEo1ZChhLGIsYyl7dGhpcy5hPWE7RzVkLmNhbGwodGhpcyxiLGMsNSw2KX1cbmZ1bmN0aW9uIHdqZShhLGIsYyxkKXt0aGlzLmI9YTtYWmQuY2FsbCh0aGlzLGIsYyxkKX1cbmZ1bmN0aW9uIFRqKGEsYil7dGhpcy5iPWE7QWouY2FsbCh0aGlzLGEuYik7dGhpcy5hPWJ9XG5mdW5jdGlvbiBOTGMoYSl7dGhpcy5hPUxMYyhhLmEpO3RoaXMuYj1uZXcgZG5iKGEuYil9XG5mdW5jdGlvbiBGeChhLGIpe3RtKCk7RXguY2FsbCh0aGlzLGEsUG0obmV3IG1vYihiKSkpfVxuZnVuY3Rpb24gX3NlKGEsYil7VnNlKCk7KytVc2U7cmV0dXJuIG5ldyBhdWUoYSxiLDApfVxuZnVuY3Rpb24gYnRlKGEsYil7VnNlKCk7KytVc2U7cmV0dXJuIG5ldyBhdWUoNixhLGIpfVxuZnVuY3Rpb24gWnRiKGEsYil7dUZiKGIpO3doaWxlKGEuT2IoKSl7Yi5DZChhLlBiKCkpfX1cbmZ1bmN0aW9uIFVqYihhLGIpe3JldHVybiBiRShiKT9ZamIoYSxiKTohIXF0YihhLmYsYil9XG5mdW5jdGlvbiBPX2QoYSxiKXtyZXR1cm4gYi5WaCgpP1Z2ZChhLmIsUkQoYiw1NCkpOmJ9XG5mdW5jdGlvbiB3aGIoYSxiKXtyZXR1cm4gbGhiKGEuc3Vic3RyKDAsYi5sZW5ndGgpLGIpfVxuZnVuY3Rpb24gRmwoYSl7cmV0dXJuIG5ldyBpcyhuZXcgSWwoYS5hLmxlbmd0aCxhLmEpKX1cbmZ1bmN0aW9uIE9pZChhKXtyZXR1cm4gbmV3IHJqZChhLmMrYS5iLzIsYS5kK2EuYS8yKX1cbmZ1bmN0aW9uIHlEKGEpe3JldHVybiBoRCh+YS5sJmR4ZSx+YS5tJmR4ZSx+YS5oJmV4ZSl9XG5mdW5jdGlvbiBjRShhKXtyZXR1cm4gdHlwZW9mIGE9PT1ndmV8fHR5cGVvZiBhPT09a3ZlfVxuZnVuY3Rpb24gYWtiKGEpe2EuZj1uZXcgdHRiKGEpO2EuaT1uZXcgTnRiKGEpOysrYS5nfVxuZnVuY3Rpb24gS2xiKGEpe2lmKCFhKXt0aHJvdyBBZGIobmV3IER2Yil9cmV0dXJuIGEuZH1cbmZ1bmN0aW9uIHNtYihhKXt2YXIgYjtiPW9tYihhKTtzRmIoYiE9bnVsbCk7cmV0dXJuIGJ9XG5mdW5jdGlvbiB0bWIoYSl7dmFyIGI7Yj1wbWIoYSk7c0ZiKGIhPW51bGwpO3JldHVybiBifVxuZnVuY3Rpb24gdHYoYSxiKXt2YXIgYztjPWEuYS5nYygpO1NiKGIsYyk7cmV0dXJuIGMtYn1cbmZ1bmN0aW9uIFlzYihhLGIpe3ZhciBjO2M9YS5hLnpjKGIsYSk7cmV0dXJuIGM9PW51bGx9XG5mdW5jdGlvbiByQWIoYSxiKXtyZXR1cm4gYS5hLnpjKGIsKEdlYigpLEVlYikpPT1udWxsfVxuZnVuY3Rpb24gX25iKGEpe3JldHVybiBuZXcgU0RiKG51bGwsJG5iKGEsYS5sZW5ndGgpKX1cbmZ1bmN0aW9uIHlQYihhLGIsYyl7cmV0dXJuIHpQYihhLFJEKGIsNDIpLFJEKGMsMTc2KSl9XG5mdW5jdGlvbiBXcmIoYSxiLGMpe3pzYihhLmEsYik7cmV0dXJuIF9FYihhLmIsYi5nLGMpfVxuZnVuY3Rpb24gZnliKGEsYixjKXtseWIoYyxhLmEuYy5sZW5ndGgpOyRtYihhLmEsYyxiKX1cbmZ1bmN0aW9uIEtuYihhLGIsYyxkKXtuRmIoYixjLGEubGVuZ3RoKTtPbmIoYSxiLGMsZCl9XG5mdW5jdGlvbiBPbmIoYSxiLGMsZCl7dmFyIGU7Zm9yKGU9YjtlPGM7KytlKXthW2VdPWR9fVxuZnVuY3Rpb24gU25iKGEsYil7dmFyIGM7Zm9yKGM9MDtjPGI7KytjKXthW2NdPWZhbHNlfX1cbmZ1bmN0aW9uIGNqYihhLGIsYyl7UGliKCk7dGhpcy5lPWE7dGhpcy5kPWI7dGhpcy5hPWN9XG5mdW5jdGlvbiBEQmIoYSxiLGMpe3RoaXMuYz1hO3RoaXMuYT1iO3lvYigpO3RoaXMuYj1jfVxuZnVuY3Rpb24gbk1kKGEsYil7dGhpcy5kPWE7ZE1kLmNhbGwodGhpcyxhKTt0aGlzLmU9Yn1cbmZ1bmN0aW9uIFZlZChhLGIsYyl7TmVkKGEsYi5nLGMpO3pzYihhLmMsYik7cmV0dXJuIGF9XG5mdW5jdGlvbiB4WWIoYSl7dlliKGEsKENtZCgpLHltZCkpO2EuZD10cnVlO3JldHVybiBhfVxuZnVuY3Rpb24gQ2ZlKGEpeyFhLmomJklmZShhLERlZShhLmcsYS5iKSk7cmV0dXJuIGEuan1cbmZ1bmN0aW9uIEF0KGEpe2EuYT1udWxsO2EuZT1udWxsO2FrYihhLmIpO2EuZD0wOysrYS5jfVxuZnVuY3Rpb24gem5iKGEpe3lGYihhLmIhPS0xKTtYbWIoYS5jLGEuYT1hLmIpO2EuYj0tMX1cbmZ1bmN0aW9uIFF0ZShhLGIpe1dzZS5jYWxsKHRoaXMsMSk7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiB1VWIoYSxiKXtyZXR1cm4gYT4wPyR3bmQuTWF0aC5sb2coYS9iKTotMTAwfVxuZnVuY3Rpb24gQWdiKGEsYil7cmV0dXJuIERkYihhLGIpPDA/LTE6RGRiKGEsYik+MD8xOjB9XG5mdW5jdGlvbiBEZ2UoYSxiKXtoWmQoYSxaRChiLDE2MCk/YjpSRChiLDIwMzYpLlJsKCkpfVxuZnVuY3Rpb24gdkZiKGEsYil7aWYoYT09bnVsbCl7dGhyb3cgQWRiKG5ldyBPZ2IoYikpfX1cbmZ1bmN0aW9uICRuYihhLGIpe3JldHVybiBqeGIoYixhLmxlbmd0aCksbmV3IEd4YihhLGIpfVxuZnVuY3Rpb24gaHNjKGEsYil7aWYoIWIpe3JldHVybiBmYWxzZX1yZXR1cm4geWUoYSxiKX1cbmZ1bmN0aW9uIEdzKCl7enMoKTtyZXR1cm4gY0QoV0MoUkcsMSksandlLDU0OSwwLFt5c10pfVxuZnVuY3Rpb24gWGliKGEpe3JldHVybiBhLmU9PTA/YTpuZXcgY2piKC1hLmUsYS5kLGEuYSl9XG5mdW5jdGlvbiAkTmIoYSxiKXtyZXR1cm4gUWZiKGEuYy5jK2EuYy5iLGIuYy5jK2IuYy5iKX1cbmZ1bmN0aW9uIGN2YihhLGIpe1B1YihhLmQsYixhLmIuYixhLmIpOysrYS5hO2EuYz1udWxsfVxuZnVuY3Rpb24gSkNiKGEsYil7IWEuYz9SbWIoYS5iLGIpOkpDYihhLmMsYik7cmV0dXJuIGF9XG5mdW5jdGlvbiBLQihhLGIsYyl7dmFyIGQ7ZD1KQihhLGIpO0xCKGEsYixjKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIFJuYihhLGIsYyl7dmFyIGQ7Zm9yKGQ9MDtkPGI7KytkKXtiRChhLGQsYyl9fVxuZnVuY3Rpb24gbmhiKGEsYixjLGQsZSl7d2hpbGUoYjxjKXtkW2UrK109aWhiKGEsYisrKX19XG5mdW5jdGlvbiBRbmMoYSxiLGMsZCxlKXtQbmMoYSxSRChRYyhiLmssYyksMTUpLGMsZCxlKX1cbmZ1bmN0aW9uIE5uYyhhLGIpe0ZEYihHRGIoYS5PYygpLG5ldyB2b2MpLG5ldyB4b2MoYikpfVxuZnVuY3Rpb24gdFhjKGEsYil7cmV0dXJuIFFmYihhLmUuYSthLmYuYSxiLmUuYStiLmYuYSl9XG5mdW5jdGlvbiB2WGMoYSxiKXtyZXR1cm4gUWZiKGEuZS5iK2EuZi5iLGIuZS5iK2IuZi5iKX1cbmZ1bmN0aW9uIEdPYyhhKXtyZXR1cm4gJHduZC5NYXRoLmFicyhhLmQuZS1hLmUuZSktYS5hfVxuZnVuY3Rpb24gYW5lKGEpe3JldHVybiBhPT1veGU/bUxlOmE9PXB4ZT8nLUlORic6JycrYX1cbmZ1bmN0aW9uIGNuZShhKXtyZXR1cm4gYT09b3hlP21MZTphPT1weGU/Jy1JTkYnOicnK2F9XG5mdW5jdGlvbiBNU2IoYSl7SFNiKCk7cmV0dXJuIHZDZChKR2QoYSkpPT12Q2QoTEdkKGEpKX1cbmZ1bmN0aW9uIGtPZChhLGIsYyl7cmV0dXJuIFJEKGEuYy5oZChiLFJEKGMsMTM2KSksNDQpfVxuZnVuY3Rpb24gSUZkKGEsYil7b0RkKGEsbmV3IE9DKGIuZiE9bnVsbD9iLmY6JycrYi5nKSl9XG5mdW5jdGlvbiBLRmQoYSxiKXtvRGQoYSxuZXcgT0MoYi5mIT1udWxsP2IuZjonJytiLmcpKX1cbmZ1bmN0aW9uIFlHZChhLGIpe2EuU2koKSYmKGI9YkhkKGEsYikpO3JldHVybiBhLkZpKGIpfVxuZnVuY3Rpb24gVlZkKGEsYil7Yj1hLllrKG51bGwsYik7cmV0dXJuIFVWZChhLG51bGwsYil9XG5mdW5jdGlvbiBXZmUoYSxiKXsrK2EuajtUZ2UoYSxhLmksYik7VmZlKGEsUkQoYiwzNDMpKX1cbmZ1bmN0aW9uIFVJZChhKXthP2l6KGEsKGdpYigpLGZpYiksJycpOm5lYigoZ2liKCksYSkpfVxuZnVuY3Rpb24gVHdiKGEpe3RoaXMuZD0odUZiKGEpLGEpO3RoaXMuYT0wO3RoaXMuYz1TdmV9XG5mdW5jdGlvbiBUVGMoYSxiKXt0aGlzLmQ9YlVjKGEpO3RoaXMuYz1iO3RoaXMuYT0wLjUqYn1cbmZ1bmN0aW9uIFdUYihhKXtWVGIuY2FsbCh0aGlzKTt0aGlzLmE9YTtSbWIoYS5hLHRoaXMpfVxuZnVuY3Rpb24gWmplKCl7Z3ViLmNhbGwodGhpcyk7dGhpcy5hPXRydWU7dGhpcy5iPXRydWV9XG5mdW5jdGlvbiBXQigpe1dCPWdlYjtVQj1uZXcgWEIoZmFsc2UpO1ZCPW5ldyBYQih0cnVlKX1cbmZ1bmN0aW9uIFBjKGEpe3ZhciBiO3JldHVybiBiPWEuZywhYj8oYS5nPW5ldyB0aChhKSk6Yn1cbmZ1bmN0aW9uIFVjKGEpe3ZhciBiO3JldHVybiBiPWEuaywhYj8oYS5rPW5ldyBCaChhKSk6Yn1cbmZ1bmN0aW9uIGtpKGEpe3ZhciBiO3JldHVybiBiPWEuaywhYj8oYS5rPW5ldyBCaChhKSk6Yn1cbmZ1bmN0aW9uIGVqKGEpe3ZhciBiO3JldHVybiBiPWEuaSwhYj8oYS5pPW5ldyBLaShhKSk6Yn1cbmZ1bmN0aW9uIGJqKGEpe3ZhciBiO2I9YS5mO3JldHVybiAhYj8oYS5mPW5ldyBaaihhKSk6Yn1cbmZ1bmN0aW9uIEZjKGEpe3ZhciBiO2I9YS5qO3JldHVybiAhYj8oYS5qPW5ldyBTdyhhKSk6Yn1cbmZ1bmN0aW9uIENvKGEpe3ZhciBiO2I9YS5kO3JldHVybiAhYj8oYS5kPW5ldyBtcChhKSk6Yn1cbmZ1bmN0aW9uIGF0ZShhLGIsYyl7VnNlKCk7KytVc2U7cmV0dXJuIG5ldyBZdGUoYSxiLGMpfVxuZnVuY3Rpb24geWooYSxiKXtQYihiLGEuYy5iLmMuZ2MoKSk7cmV0dXJuIG5ldyBOaihhLGIpfVxuZnVuY3Rpb24gc3YoYSxiKXt2YXIgYztjPWEuYS5nYygpO1BiKGIsYyk7cmV0dXJuIGMtMS1ifVxuZnVuY3Rpb24gc2ZiKGEsYixjKXt2YXIgZDtkPXJmYihhLGIpO0ZmYihjLGQpO3JldHVybiBkfVxuZnVuY3Rpb24gcmZiKGEsYil7dmFyIGM7Yz1uZXcgcGZiO2Muaj1hO2MuZD1iO3JldHVybiBjfVxuZnVuY3Rpb24gUWIoYSl7aWYoYT09bnVsbCl7dGhyb3cgQWRiKG5ldyBOZ2IpfXJldHVybiBhfVxuZnVuY3Rpb24gT0MoYSl7aWYoYT09bnVsbCl7dGhyb3cgQWRiKG5ldyBOZ2IpfXRoaXMuYT1hfVxuZnVuY3Rpb24gWEEoYSl7dkEoKTt0aGlzLmI9bmV3IGJuYjt0aGlzLmE9YTtJQSh0aGlzLGEpfVxuZnVuY3Rpb24gWnMoYSl7dGhpcy5iPWE7dGhpcy5hPVJEKEh2Yih0aGlzLmIuYS5lKSwyMjcpfVxuZnVuY3Rpb24gdG0oKXt0bT1nZWI7X2woKTtzbT1uZXcgS3goKHlvYigpLHlvYigpLHZvYikpfVxuZnVuY3Rpb24gUHgoKXtQeD1nZWI7X2woKTtPeD1uZXcgUXgoKHlvYigpLHlvYigpLHhvYikpfVxuZnVuY3Rpb24gbFRkKCl7bFRkPWdlYjtrVGQ9X2FlKCk7ISEoSlRkKCksblRkKSYmYmJlKCl9XG5mdW5jdGlvbiBMU2MoYSl7YS5zPU5hTjthLmM9TmFOO01TYyhhLGEuZSk7TVNjKGEsYS5qKX1cbmZ1bmN0aW9uIEFZZChhKXtyZXR1cm4gKGEuaT09bnVsbCYmcllkKGEpLGEuaSkubGVuZ3RofVxuZnVuY3Rpb24gd3EoYSxiKXtyZXR1cm4gUkQoZ24oYS5hKS5NZCgpLlhiKGIpLDQ0KS5sZCgpfVxuZnVuY3Rpb24gV2piKGEsYil7cmV0dXJuIGJFKGIpP1hqYihhLGIpOldkKHF0YihhLmYsYikpfVxuZnVuY3Rpb24gUVNiKGEsYil7SFNiKCk7cmV0dXJuIGE9PUpHZChiKT9MR2QoYik6SkdkKGIpfVxuZnVuY3Rpb24gcldiKGEsYixjLGQpe3JldHVybiBjPT0wfHwoYy1kKS9jPGEuZXx8Yj49YS5nfVxuZnVuY3Rpb24gYkQoYSxiLGMpe3BGYihjPT1udWxsfHxWQyhhLGMpKTtyZXR1cm4gYVtiXT1jfVxuZnVuY3Rpb24geWhiKGEsYil7QkZiKGIsYS5sZW5ndGgrMSk7cmV0dXJuIGEuc3Vic3RyKGIpfVxuZnVuY3Rpb24geXhiKGEsYil7dUZiKGIpO3doaWxlKGEuYzxhLmQpe2EuU2UoYixhLmMrKyl9fVxuZnVuY3Rpb24gRHViKGEpe3RoaXMuZD1hO3RoaXMuYz1hLmEuZC5hO3RoaXMuYj1hLmEuZS5nfVxuZnVuY3Rpb24gR2dkKGEpe3RoaXMuYz1hO3RoaXMuYT1uZXcgWXViO3RoaXMuYj1uZXcgWXVifVxuZnVuY3Rpb24gUjRiKGEpe3RoaXMuYz1uZXcgcGpkO3RoaXMuYT1uZXcgYm5iO3RoaXMuYj1hfVxuZnVuY3Rpb24gZlliKGEpe3RoaXMuYj1uZXcgYm5iO3RoaXMuYT1uZXcgYm5iO3RoaXMuYz1hfVxuZnVuY3Rpb24gUGRkKGEsYixjKXtSRChiLmIsNjgpO1VtYihiLmEsbmV3IFdkZChhLGMsYikpfVxuZnVuY3Rpb24gcmRjKGEsYil7WmNjKCk7cmV0dXJuIFJEKFZyYihhLGIuZCksMTUpLkZjKGIpfVxuZnVuY3Rpb24gb0RkKGEsYil7dmFyIGM7Yz1hLmEubGVuZ3RoO0pCKGEsYyk7TEIoYSxjLGIpfVxuZnVuY3Rpb24gZUZiKGEsYil7dmFyIGM7Yz1jb25zb2xlW2FdO2MuY2FsbChjb25zb2xlLGIpfVxuZnVuY3Rpb24gX0lkKGEsYil7dmFyIGM7KythLmo7Yz1hLkVqKCk7YS5yaihhLlppKGMsYikpfVxuZnVuY3Rpb24gbE1jKGEsYixjKXt2YXIgZDtkPXJNYyhhLGIsYyk7cmV0dXJuIGtNYyhhLGQpfVxuZnVuY3Rpb24gajJkKGEpeyFhLmQmJihhLmQ9bmV3IFhaZChvNyxhLDEpKTtyZXR1cm4gYS5kfVxuZnVuY3Rpb24galZkKGEpeyFhLmEmJihhLmE9bmV3IFhaZChyNyxhLDQpKTtyZXR1cm4gYS5hfVxuZnVuY3Rpb24gSmhiKGEsYil7YS5hKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpO3JldHVybiBhfVxuZnVuY3Rpb24gVGhiKGEsYil7YS5hKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpO3JldHVybiBhfVxuZnVuY3Rpb24gRDlkKGEsYixjKXt0aGlzLmE9YTtMNmQuY2FsbCh0aGlzLGIpO3RoaXMuYj1jfVxuZnVuY3Rpb24gRmRlKGEsYixjKXt0aGlzLmE9YTtNS2QuY2FsbCh0aGlzLDgsYixudWxsLGMpfVxuZnVuY3Rpb24gYXVlKGEsYixjKXtXc2UuY2FsbCh0aGlzLGEpO3RoaXMuYT1iO3RoaXMuYj1jfVxuZnVuY3Rpb24gTzhkKGEsYixjKXt0N2QuY2FsbCh0aGlzLGIpO3RoaXMuYT1hO3RoaXMuYj1jfVxuZnVuY3Rpb24gdXQoYSl7dGhpcy5jPWE7dGhpcy5iPXRoaXMuYy5hO3RoaXMuYT10aGlzLmMuZX1cbmZ1bmN0aW9uIFplZShhKXt0aGlzLmE9KHVGYihxS2UpLHFLZSk7dGhpcy5iPWE7bmV3IE81ZH1cbmZ1bmN0aW9uIFRyYihhKXtBZShhLmEpO2EuYj0kQyhqSixydmUsMSxhLmIubGVuZ3RoLDUsMSl9XG5mdW5jdGlvbiBDa2IoYSl7eUZiKGEuYyE9LTEpO2EuZC5nZChhLmMpO2EuYj1hLmM7YS5jPS0xfVxuZnVuY3Rpb24gZWpkKGEpe3JldHVybiAkd25kLk1hdGguc3FydChhLmEqYS5hK2EuYiphLmIpfVxuZnVuY3Rpb24gSnpiKGEsYil7cmV0dXJuIFR5YihhLmMsYS5mLGIsYS5iLGEuYSxhLmUsYS5kKX1cbmZ1bmN0aW9uIGV5YihhLGIpe3JldHVybiBseWIoYixhLmEuYy5sZW5ndGgpLFZtYihhLmEsYil9XG5mdW5jdGlvbiBIYihhLGIpe3JldHVybiBkRShhKT09PWRFKGIpfHxhIT1udWxsJiZwYihhLGIpfVxuZnVuY3Rpb24gTzJkKGEpe3JldHVybiBaRChhLDEwMikmJihSRChhLDE5KS5CYiZRSGUpIT0wfVxuZnVuY3Rpb24gRmIoYSl7SHZiKGEpO3JldHVybiBaRChhLDQ4NCk/UkQoYSw0ODQpOmplYihhKX1cbmZ1bmN0aW9uIGJ2ZShhKXtpZihhKXJldHVybiBhLmRjKCk7cmV0dXJuICFhLktjKCkuT2IoKX1cbmZ1bmN0aW9uIGt0ZShhKXtpZighQXNlKXJldHVybiBmYWxzZTtyZXR1cm4gWWpiKEFzZSxhKX1cbmZ1bmN0aW9uIGhEYihhKXtpZigwPj1hKXtyZXR1cm4gbmV3IHJEYn1yZXR1cm4gaURiKGEtMSl9XG5mdW5jdGlvbiBZMmIoYSl7aWYoIWEuYSYmISFhLmMpe3JldHVybiBhLmMuYn1yZXR1cm4gYS5hfVxuZnVuY3Rpb24gWngoYSl7aWYoWkQoYSw2MTYpKXtyZXR1cm4gYX1yZXR1cm4gbmV3IHN5KGEpfVxuZnVuY3Rpb24gTENiKGEpe2lmKCFhLmMpe01DYihhKTthLmQ9dHJ1ZX1lbHNle0xDYihhLmMpfX1cbmZ1bmN0aW9uIElDYihhKXtpZighYS5jKXthLmQ9dHJ1ZTtLQ2IoYSl9ZWxzZXthLmMuJGUoKX19XG5mdW5jdGlvbiBiSGIoYSl7YS5iPWZhbHNlO2EuYz1mYWxzZTthLmQ9ZmFsc2U7YS5hPWZhbHNlfVxuZnVuY3Rpb24gdU1jKGEpe3ZhciBiLGM7Yj1hLmMuaS5jO2M9YS5kLmkuYztyZXR1cm4gYj09Y31cbmZ1bmN0aW9uIF92ZChhLGIpe3ZhciBjO2M9YS5JaChiKTtjPj0wP2Eua2koYyk6VHZkKGEsYil9XG5mdW5jdGlvbiBtdGQoYSxiKXthLmM8MHx8YS5iLmI8YS5jP091YihhLmIsYik6YS5hLnRmKGIpfVxuZnVuY3Rpb24gYUJkKGEsYil7V0dkKCghYS5hJiYoYS5hPW5ldyBGNGQoYSxhKSksYS5hKSxiKX1cbmZ1bmN0aW9uIERRYihhLGIpe1JRYihSRChiLmIsNjgpLGEpO1VtYihiLmEsbmV3IElRYihhKSl9XG5mdW5jdGlvbiBXb2MoYSxiKXtyZXR1cm4gaGdiKGIuai5jLmxlbmd0aCxhLmouYy5sZW5ndGgpfVxuZnVuY3Rpb24gb2VkKGEsYixjKXtoZWQoKTtyZXR1cm4gYy5MZyhhLFJEKGIubGQoKSwxNDkpKX1cbmZ1bmN0aW9uIEh2YihhKXtpZihhPT1udWxsKXt0aHJvdyBBZGIobmV3IE5nYil9cmV0dXJuIGF9XG5mdW5jdGlvbiB1RmIoYSl7aWYoYT09bnVsbCl7dGhyb3cgQWRiKG5ldyBOZ2IpfXJldHVybiBhfVxuZnVuY3Rpb24gdUtkKGEpe2lmKGEucCE9NCl0aHJvdyBBZGIobmV3IGNnYik7cmV0dXJuIGEuZX1cbmZ1bmN0aW9uIHRLZChhKXtpZihhLnAhPTMpdGhyb3cgQWRiKG5ldyBjZ2IpO3JldHVybiBhLmV9XG5mdW5jdGlvbiBDS2QoYSl7aWYoYS5wIT0zKXRocm93IEFkYihuZXcgY2diKTtyZXR1cm4gYS5qfVxuZnVuY3Rpb24gREtkKGEpe2lmKGEucCE9NCl0aHJvdyBBZGIobmV3IGNnYik7cmV0dXJuIGEuan1cbmZ1bmN0aW9uIHdLZChhKXtpZihhLnAhPTYpdGhyb3cgQWRiKG5ldyBjZ2IpO3JldHVybiBhLmZ9XG5mdW5jdGlvbiBGS2QoYSl7aWYoYS5wIT02KXRocm93IEFkYihuZXcgY2diKTtyZXR1cm4gYS5rfVxuZnVuY3Rpb24gJDlkKGEpeyFhLmImJihhLmI9bmV3IHBhZShuZXcgbGFlKSk7cmV0dXJuIGEuYn1cbmZ1bmN0aW9uIHlmZShhKXthLmM9PS0yJiZFZmUoYSx2ZWUoYS5nLGEuYikpO3JldHVybiBhLmN9XG5mdW5jdGlvbiB2ZmIoYSxiKXt2YXIgYztjPXJmYignJyxhKTtjLm49YjtjLmk9MTtyZXR1cm4gY31cbmZ1bmN0aW9uIGtwKGEsYixjLGQpe2dwLmNhbGwodGhpcyxhLGMpO3RoaXMuYT1iO3RoaXMuZj1kfVxuZnVuY3Rpb24gY3QoYSxiLGMsZCl7Z3AuY2FsbCh0aGlzLGEsYik7dGhpcy5kPWM7dGhpcy5hPWR9XG5mdW5jdGlvbiB6eShhLGIpe19wLmNhbGwodGhpcyxHb2IoUWIoYSksUWIoYikpKTt0aGlzLmE9Yn1cbmZ1bmN0aW9uIHVmZCgpe09lZC5jYWxsKHRoaXMpO2FGYih0aGlzLmouYywwKTt0aGlzLmE9LTF9XG5mdW5jdGlvbiAkYWUoKXtGQmQuY2FsbCh0aGlzLEFLZSwoalRkKCksaVRkKSk7VWFlKHRoaXMpfVxuZnVuY3Rpb24gQm5lKCl7RkJkLmNhbGwodGhpcyxkTGUsKE9sZSgpLE5sZSkpO3huZSh0aGlzKX1cbmZ1bmN0aW9uIGNkZCgpe3FzLmNhbGwodGhpcywnREVMQVVOQVlfVFJJQU5HVUxBVElPTicsMCl9XG5mdW5jdGlvbiBFaGIoYSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhKX1cbmZ1bmN0aW9uIFpqYihhLGIsYyl7cmV0dXJuIGJFKGIpPyRqYihhLGIsYyk6cnRiKGEuZixiLGMpfVxuZnVuY3Rpb24gRm9iKGEpe3lvYigpO3JldHVybiAhYT8odXJiKCksdXJiKCksdHJiKTphLk9lKCl9XG5mdW5jdGlvbiBadShhKXtkayhhLGx3ZSk7cmV0dXJuIGR6KEJkYihCZGIoNSxhKSxhLzEwfDApKX1cbmZ1bmN0aW9uIHl4KGEsYil7dXgoKTtyZXR1cm4gbmV3IHd4KG5ldyB0bChhKSxuZXcgZGwoYikpfVxuZnVuY3Rpb24gZm4oKXtmbj1nZWI7ZW49bmV3IE54KGNEKFdDKFVLLDEpLFp2ZSw0NCwwLFtdKSl9XG5mdW5jdGlvbiB0cWIoYSl7IWEuZCYmKGEuZD1uZXcgeHBiKGEuYy5DYygpKSk7cmV0dXJuIGEuZH1cbmZ1bmN0aW9uIHFxYihhKXshYS5hJiYoYS5hPW5ldyBTcWIoYS5jLnZjKCkpKTtyZXR1cm4gYS5hfVxuZnVuY3Rpb24gc3FiKGEpeyFhLmImJihhLmI9bmV3IExxYihhLmMuZWMoKSkpO3JldHVybiBhLmJ9XG5mdW5jdGlvbiBxZ2IoYSxiKXt3aGlsZShiLS0+MCl7YT1hPDwxfChhPDA/MTowKX1yZXR1cm4gYX1cbmZ1bmN0aW9uIEJHYyhhLGIpe3ZhciBjO2M9bmV3IFI0YihhKTtaRWIoYi5jLGMpO3JldHVybiBjfVxuZnVuY3Rpb24gRk1iKGEsYil7YS51LkhjKChQb2QoKSxMb2QpKSYmRE1iKGEsYik7SE1iKGEsYil9XG5mdW5jdGlvbiBGdmIoYSxiKXtyZXR1cm4gZEUoYSk9PT1kRShiKXx8YSE9bnVsbCYmcGIoYSxiKX1cbmZ1bmN0aW9uIFZyYihhLGIpe3JldHVybiBCc2IoYS5hLGIpP2EuYltSRChiLDIyKS5nXTpudWxsfVxuZnVuY3Rpb24gWVJiKCl7VlJiKCk7cmV0dXJuIGNEKFdDKCRPLDEpLGp3ZSw0ODksMCxbVVJiXSl9XG5mdW5jdGlvbiB5YmQoKXtzYmQoKTtyZXR1cm4gY0QoV0MoTTEsMSksandlLDQ5MCwwLFtyYmRdKX1cbmZ1bmN0aW9uIEhiZCgpe0NiZCgpO3JldHVybiBjRChXQyhOMSwxKSxqd2UsNTU4LDAsW0JiZF0pfVxuZnVuY3Rpb24gZ2RkKCl7X2NkKCk7cmV0dXJuIGNEKFdDKFYxLDEpLGp3ZSw1MzksMCxbJGNkXSl9XG5mdW5jdGlvbiBpeWQoYSl7IWEubiYmKGEubj1uZXcgQzVkKEk0LGEsMSw3KSk7cmV0dXJuIGEubn1cbmZ1bmN0aW9uIHdDZChhKXshYS5jJiYoYS5jPW5ldyBDNWQoSzQsYSw5LDkpKTtyZXR1cm4gYS5jfVxuZnVuY3Rpb24gbXpkKGEpeyFhLmMmJihhLmM9bmV3IFlpZShFNCxhLDUsOCkpO3JldHVybiBhLmN9XG5mdW5jdGlvbiBsemQoYSl7IWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSk7cmV0dXJuIGEuYn1cbmZ1bmN0aW9uIFNlZChhKXthLmouYy5sZW5ndGg9MDtBZShhLmMpO3NmZChhLmEpO3JldHVybiBhfVxuZnVuY3Rpb24gQWZlKGEpe2EuZT09ZkxlJiZHZmUoYSxBZWUoYS5nLGEuYikpO3JldHVybiBhLmV9XG5mdW5jdGlvbiBCZmUoYSl7YS5mPT1mTGUmJkhmZShhLEJlZShhLmcsYS5iKSk7cmV0dXJuIGEuZn1cbmZ1bmN0aW9uIHhCZChhLGIsYyxkKXt3QmQoYSxiLGMsZmFsc2UpO2oxZChhLGQpO3JldHVybiBhfVxuZnVuY3Rpb24gb05kKGEsYil7dGhpcy5iPWE7bk1kLmNhbGwodGhpcyxhLGIpO21OZCh0aGlzKX1cbmZ1bmN0aW9uIHdOZChhLGIpe3RoaXMuYj1hO0NNZC5jYWxsKHRoaXMsYSxiKTt1TmQodGhpcyl9XG5mdW5jdGlvbiBLbWIoYSl7dGhpcy5kPWE7dGhpcy5hPXRoaXMuZC5iO3RoaXMuYj10aGlzLmQuY31cbmZ1bmN0aW9uIG95KGEsYil7dGhpcy5iPWE7dGhpcy5jPWI7dGhpcy5hPW5ldyBPc2IodGhpcy5iKX1cbmZ1bmN0aW9uIGloYihhLGIpe0JGYihiLGEubGVuZ3RoKTtyZXR1cm4gYS5jaGFyQ29kZUF0KGIpfVxuZnVuY3Rpb24gTkRkKGEsYil7Q0dkKGEsS2ZiKHZEZChiLCd4JykpLEtmYih2RGQoYiwneScpKSl9XG5mdW5jdGlvbiAkRGQoYSxiKXtDR2QoYSxLZmIodkRkKGIsJ3gnKSksS2ZiKHZEZChiLCd5JykpKX1cbmZ1bmN0aW9uIENEYihhLGIpe01DYihhKTtyZXR1cm4gbmV3IFNEYihhLG5ldyBoRWIoYixhLmEpKX1cbmZ1bmN0aW9uIEdEYihhLGIpe01DYihhKTtyZXR1cm4gbmV3IFNEYihhLG5ldyB6RWIoYixhLmEpKX1cbmZ1bmN0aW9uIEhEYihhLGIpe01DYihhKTtyZXR1cm4gbmV3IFdDYihhLG5ldyBuRWIoYixhLmEpKX1cbmZ1bmN0aW9uIElEYihhLGIpe01DYihhKTtyZXR1cm4gbmV3IG9EYihhLG5ldyB0RWIoYixhLmEpKX1cbmZ1bmN0aW9uIFR5KGEsYil7cmV0dXJuIG5ldyBSeShSRChRYihhKSw1MCksUkQoUWIoYiksNTApKX1cbmZ1bmN0aW9uIG5IYihhLGIpe3JldHVybiBRZmIoYS5kLmMrYS5kLmIvMixiLmQuYytiLmQuYi8yKX1cbmZ1bmN0aW9uIGdUYihhLGIsYyl7Yy5hP0V5ZChhLGIuYi1hLmYvMik6RHlkKGEsYi5hLWEuZy8yKX1cbmZ1bmN0aW9uIFdZYihhLGIpe3JldHVybiBRZmIoYS5nLmMrYS5nLmIvMixiLmcuYytiLmcuYi8yKX1cbmZ1bmN0aW9uIFJaYihhLGIpe05aYigpO3JldHVybiBRZmIoKHVGYihhKSxhKSwodUZiKGIpLGIpKX1cbmZ1bmN0aW9uIHdTZChhKXtyZXR1cm4gYSE9bnVsbCYmdHBiKGVTZCxhLnRvTG93ZXJDYXNlKCkpfVxuZnVuY3Rpb24gQWUoYSl7dmFyIGI7Zm9yKGI9YS5LYygpO2IuT2IoKTspe2IuUGIoKTtiLlFiKCl9fVxuZnVuY3Rpb24gSWgoYSl7dmFyIGI7Yj1hLmI7IWImJihhLmI9Yj1uZXcgWGgoYSkpO3JldHVybiBifVxuZnVuY3Rpb24gUjBiKGEpe3ZhciBiO2I9WjViKGEpO2lmKGIpe3JldHVybiBifXJldHVybiBudWxsfVxuZnVuY3Rpb24gQlNiKGEsYil7dmFyIGMsZDtjPWEvYjtkPWVFKGMpO2M+ZCYmKytkO3JldHVybiBkfVxuZnVuY3Rpb24gQ2soYSxiLGMpe3ZhciBkO2Q9UkQoYS5kLktiKGMpLDE1OSk7ISFkJiZkLk5iKGIpfVxuZnVuY3Rpb24gVmhjKGEsYixjKXt0cWMoYS5hLGMpO0pwYyhjKTtLcWMoYS5iLGMpO2JxYyhiLGMpfVxuZnVuY3Rpb24gb05jKGEsYixjLGQpe3RoaXMuYT1hO3RoaXMuYz1iO3RoaXMuYj1jO3RoaXMuZD1kfVxuZnVuY3Rpb24gUk9jKGEsYixjLGQpe3RoaXMuYz1hO3RoaXMuYj1iO3RoaXMuYT1jO3RoaXMuZD1kfVxuZnVuY3Rpb24gdVBjKGEsYixjLGQpe3RoaXMuYz1hO3RoaXMuYj1iO3RoaXMuZD1jO3RoaXMuYT1kfVxuZnVuY3Rpb24gVWlkKGEsYixjLGQpe3RoaXMuYz1hO3RoaXMuZD1iO3RoaXMuYj1jO3RoaXMuYT1kfVxuZnVuY3Rpb24gR1RjKGEsYixjLGQpe3RoaXMuYT1hO3RoaXMuZD1iO3RoaXMuYz1jO3RoaXMuYj1kfVxuZnVuY3Rpb24gdDFiKGEsYixjLGQpe3RoaXMuYT1hO3RoaXMuZT1iO3RoaXMuZD1jO3RoaXMuYz1kfVxuZnVuY3Rpb24gJHRkKGEsYixjLGQpe3RoaXMuYT1hO3RoaXMuYz1iO3RoaXMuZD1jO3RoaXMuYj1kfVxuZnVuY3Rpb24gZWhiKGEsYixjKXt0aGlzLmE9eXdlO3RoaXMuZD1hO3RoaXMuYj1iO3RoaXMuYz1jfVxuZnVuY3Rpb24gZnBjKGEsYixjLGQpe3FzLmNhbGwodGhpcyxhLGIpO3RoaXMuYT1jO3RoaXMuYj1kfVxuZnVuY3Rpb24gVXdiKGEsYil7dGhpcy5kPSh1RmIoYSksYSk7dGhpcy5hPTE2NDQ5O3RoaXMuYz1ifVxuZnVuY3Rpb24gQ0ljKGEpe3RoaXMuYT1uZXcgYm5iO3RoaXMuZT0kQyhrRSxOdmUsNTMsYSwwLDIpfVxuZnVuY3Rpb24gRUxjKGEpe2EuVWcoJ05vIGNyb3NzaW5nIG1pbmltaXphdGlvbicsMSk7YS5WZygpfVxuZnVuY3Rpb24gRXZiKCl7eXouY2FsbCh0aGlzLCdUaGVyZSBpcyBubyBtb3JlIGVsZW1lbnQuJyl9XG5mdW5jdGlvbiBPRWQoYSxiLGMsZCl7dGhpcy5hPWE7dGhpcy5iPWI7dGhpcy5jPWM7dGhpcy5kPWR9XG5mdW5jdGlvbiBQRWQoYSxiLGMsZCl7dGhpcy5hPWE7dGhpcy5iPWI7dGhpcy5jPWM7dGhpcy5kPWR9XG5mdW5jdGlvbiBoN2QoYSxiLGMsZCl7dGhpcy5lPWE7dGhpcy5hPWI7dGhpcy5jPWM7dGhpcy5kPWR9XG5mdW5jdGlvbiB4N2QoYSxiLGMsZCl7dGhpcy5hPWE7dGhpcy5jPWI7dGhpcy5kPWM7dGhpcy5iPWR9XG5mdW5jdGlvbiBDOGQoYSxiLGMsZCl7czdkKCk7TTdkLmNhbGwodGhpcyxiLGMsZCk7dGhpcy5hPWF9XG5mdW5jdGlvbiBKOGQoYSxiLGMsZCl7czdkKCk7TTdkLmNhbGwodGhpcyxiLGMsZCk7dGhpcy5hPWF9XG5mdW5jdGlvbiBsd2QoYSxiLGMpe3ZhciBkLGU7ZD1vU2QoYSk7ZT1iLnRpKGMsZCk7cmV0dXJuIGV9XG5mdW5jdGlvbiBsQmQoYSl7dmFyIGIsYztjPShiPW5ldyBzMmQsYik7bDJkKGMsYSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBtQmQoYSl7dmFyIGIsYztjPShiPW5ldyBzMmQsYik7cDJkKGMsYSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBIRGQoYSxiKXt2YXIgYztjPVdqYihhLmYsYik7d0VkKGIsYyk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiB1Q2QoYSl7IWEuYiYmKGEuYj1uZXcgQzVkKEc0LGEsMTIsMykpO3JldHVybiBhLmJ9XG5mdW5jdGlvbiBWRChhKXtDRmIoYT09bnVsbHx8Y0UoYSkmJiEoYS5UbT09PWtlYikpO3JldHVybiBhfVxuZnVuY3Rpb24gZ3ooYSl7aWYoYS5uKXthLmUhPT1yd2UmJmEuamUoKTthLmo9bnVsbH1yZXR1cm4gYX1cbmZ1bmN0aW9uIE5nKGEpe2lnKGEuZCk7aWYoYS5kLmQhPWEuYyl7dGhyb3cgQWRiKG5ldyBKcmIpfX1cbmZ1bmN0aW9uIEJrYihhKXtzRmIoYS5iPGEuZC5nYygpKTtyZXR1cm4gYS5kLlhiKGEuYz1hLmIrKyl9XG5mdW5jdGlvbiBYdWIoYSl7YS5hLmE9YS5jO2EuYy5iPWEuYTthLmEuYj1hLmMuYT1udWxsO2EuYj0wfVxuZnVuY3Rpb24geFBkKGEpe3RoaXMuZj1hO3RoaXMuYz10aGlzLmYuZTthLmY+MCYmd1BkKHRoaXMpfVxuZnVuY3Rpb24gVmcoYSxiKXt0aGlzLmE9YTtQZy5jYWxsKHRoaXMsYSxSRChhLmQsMTUpLmZkKGIpKX1cbmZ1bmN0aW9uIGxyZChhLGIpe3JldHVybiBRZmIodXJkKGEpKnRyZChhKSx1cmQoYikqdHJkKGIpKX1cbmZ1bmN0aW9uIG1yZChhLGIpe3JldHVybiBRZmIodXJkKGEpKnRyZChhKSx1cmQoYikqdHJkKGIpKX1cbmZ1bmN0aW9uIG41YihhKXtyZXR1cm4gb3pkKGEpJiZIZWIoVEQoR3hkKGEsKHlDYygpLE9BYykpKSl9XG5mdW5jdGlvbiBTZmMoYSxiKXtyZXR1cm4gUmMoYSxSRChtUWIoYiwoeUNjKCksdEJjKSksMTcpLGIpfVxuZnVuY3Rpb24gbGljKGEsYil7UkQobVFiKGEsKFl3YygpLHF3YykpLDE1KS5GYyhiKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIEMyYihhLGIpe2EuYj1iLmI7YS5jPWIuYzthLmQ9Yi5kO2EuYT1iLmE7cmV0dXJuIGF9XG5mdW5jdGlvbiBjRWIoYSxiLGMsZCl7dGhpcy5iPWE7dGhpcy5jPWQ7eHhiLmNhbGwodGhpcyxiLGMpfVxuZnVuY3Rpb24gVWxjKGEsYixjKXthLmk9MDthLmU9MDtpZihiPT1jKXtyZXR1cm59UWxjKGEsYixjKX1cbmZ1bmN0aW9uIFZsYyhhLGIsYyl7YS5pPTA7YS5lPTA7aWYoYj09Yyl7cmV0dXJufVJsYyhhLGIsYyl9XG5mdW5jdGlvbiBha2MoYSxiLGMpe1dqYygpO3JldHVybiBfR2IoUkQoV2piKGEuZSxiKSw1MjkpLGMpfVxuZnVuY3Rpb24gbmQoYSl7dmFyIGI7cmV0dXJuIGI9YS5mLCFiPyhhLmY9bmV3IG5lKGEsYS5jKSk6Yn1cbmZ1bmN0aW9uIG5UYyhhLGIpe3JldHVybiBWVGMoYS5qLGIucyxiLmMpK1ZUYyhiLmUsYS5zLGEuYyl9XG5mdW5jdGlvbiBScmMoYSxiKXtpZighIWEuZSYmIWEuZS5hKXtQcmMoYS5lLGIpO1JyYyhhLmUsYil9fVxuZnVuY3Rpb24gUXJjKGEsYil7aWYoISFhLmQmJiFhLmQuYSl7UHJjKGEuZCxiKTtRcmMoYS5kLGIpfX1cbmZ1bmN0aW9uIGtyZChhLGIpe3JldHVybiAtUWZiKHVyZChhKSp0cmQoYSksdXJkKGIpKnRyZChiKSl9XG5mdW5jdGlvbiBndGQoYSl7cmV0dXJuIFJEKGEubGQoKSwxNDkpLlBnKCkrJzonK2plYihhLm1kKCkpfVxuZnVuY3Rpb24gRUJkKCl7QkJkKHRoaXMsbmV3IHlBZCk7dGhpcy53Yj0obFRkKCksa1RkKTtqVGQoKX1cbmZ1bmN0aW9uIEc3YihhKXt0aGlzLmI9bmV3IGJuYjtUbWIodGhpcy5iLHRoaXMuYik7dGhpcy5hPWF9XG5mdW5jdGlvbiBXV2MoYSxiKXtuZXcgWXViO3RoaXMuYT1uZXcgRWpkO3RoaXMuYj1hO3RoaXMuYz1ifVxuZnVuY3Rpb24gdXJiKCl7dXJiPWdlYjtycmI9bmV3IHdyYjtzcmI9bmV3IHdyYjt0cmI9bmV3IEJyYn1cbmZ1bmN0aW9uIHlvYigpe3lvYj1nZWI7dm9iPW5ldyBKb2I7d29iPW5ldyBhcGI7eG9iPW5ldyBpcGJ9XG5mdW5jdGlvbiBGR2IoKXtGR2I9Z2ViO0NHYj1uZXcgQUdiO0VHYj1uZXcgZkhiO0RHYj1uZXcgWUdifVxuZnVuY3Rpb24gSFNiKCl7SFNiPWdlYjtHU2I9bmV3IGJuYjtGU2I9bmV3IFRzYjtFU2I9bmV3IGJuYn1cbmZ1bmN0aW9uIFJiKGEsYil7aWYoYT09bnVsbCl7dGhyb3cgQWRiKG5ldyBPZ2IoYikpfXJldHVybiBhfVxuZnVuY3Rpb24gdENkKGEpeyFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSk7cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIHVZZChhKXshYS5xJiYoYS5xPW5ldyBDNWQoczcsYSwxMSwxMCkpO3JldHVybiBhLnF9XG5mdW5jdGlvbiB4WWQoYSl7IWEucyYmKGEucz1uZXcgQzVkKHk3LGEsMjEsMTcpKTtyZXR1cm4gYS5zfVxuZnVuY3Rpb24gZXIoYSl7UWIoYSk7cmV0dXJuIEVyKG5ldyBpcyhNcihhLmEuS2MoKSxuZXcgaXIpKSl9XG5mdW5jdGlvbiBoZmQoYSxiKXtyYihhKTtyYihiKTtyZXR1cm4gbnMoUkQoYSwyMiksUkQoYiwyMikpfVxuZnVuY3Rpb24gcURkKGEsYixjKXt2YXIgZCxlO2Q9UWViKGMpO2U9bmV3IGhDKGQpO3NDKGEsYixlKX1cbmZ1bmN0aW9uIGQ0ZChhLGIsYyxkLGUsZil7YzRkLmNhbGwodGhpcyxhLGIsYyxkLGUsZj8tMjotMSl9XG5mdW5jdGlvbiBzamUoYSxiLGMsZCl7a1pkLmNhbGwodGhpcyxiLGMpO3RoaXMuYj1hO3RoaXMuYT1kfVxuZnVuY3Rpb24gUnkoYSxiKXt3aS5jYWxsKHRoaXMsbmV3IGV6YihhKSk7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBHdShhKXt0aGlzLmI9YTt0aGlzLmM9YTthLmU9bnVsbDthLmM9bnVsbDt0aGlzLmE9MX1cbmZ1bmN0aW9uIERrYyhhKXtsa2MoKTt2YXIgYjtiPVJEKGEuZywxMCk7Yi5uLmE9YS5kLmMrYi5kLmJ9XG5mdW5jdGlvbiBmQSgpe2ZBPWdlYjt2YXIgYSxiO2I9IWxBKCk7YT1uZXcgdEE7ZUE9Yj9uZXcgbUE6YX1cbmZ1bmN0aW9uIEhvYihhKXt5b2IoKTtyZXR1cm4gWkQoYSw1OSk/bmV3IGlyYihhKTpuZXcgVXBiKGEpfVxuZnVuY3Rpb24gVXgoYSl7cmV0dXJuIFpEKGEsMTYpP25ldyBidGIoUkQoYSwxNikpOlZ4KGEuS2MoKSl9XG5mdW5jdGlvbiBWaShhKXtyZXR1cm4gbmV3IGlqKGEsYS5lLlJkKCkuZ2MoKSphLmMuUmQoKS5nYygpKX1cbmZ1bmN0aW9uIGZqKGEpe3JldHVybiBuZXcgc2ooYSxhLmUuUmQoKS5nYygpKmEuYy5SZCgpLmdjKCkpfVxuZnVuY3Rpb24gSXooYSl7cmV0dXJuICEhYSYmISFhLmhhc2hDb2RlP2EuaGFzaENvZGUoKTprRmIoYSl9XG5mdW5jdGlvbiBZamIoYSxiKXtyZXR1cm4gYj09bnVsbD8hIXF0YihhLmYsbnVsbCk6SnRiKGEuaSxiKX1cbmZ1bmN0aW9uIGhZYihhLGIpe3ZhciBjO2M9JHNiKGEuYSxiKTtjJiYoYi5kPW51bGwpO3JldHVybiBjfVxuZnVuY3Rpb24gTUdiKGEsYixjKXtpZihhLmYpe3JldHVybiBhLmYuZWYoYixjKX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBjRmMoYSxiLGMsZCl7YkQoYS5jW2IuZ10sYy5nLGQpO2JEKGEuY1tjLmddLGIuZyxkKX1cbmZ1bmN0aW9uIGZGYyhhLGIsYyxkKXtiRChhLmNbYi5nXSxiLmcsYyk7YkQoYS5iW2IuZ10sYi5nLGQpfVxuZnVuY3Rpb24gc1hjKGEsYixjKXtyZXR1cm4gS2ZiKFVEKGMuYSkpPD1hJiZLZmIoVUQoYy5iKSk+PWJ9XG5mdW5jdGlvbiB5SmMoYSxiKXt0aGlzLmc9YTt0aGlzLmQ9Y0QoV0MoalIsMSksV0FlLDEwLDAsW2JdKX1cbmZ1bmN0aW9uIGxIYihhKXt0aGlzLmM9YTt0aGlzLmI9bmV3IHlBYihSRChRYihuZXcgb0hiKSw1MCkpfVxuZnVuY3Rpb24gVVliKGEpe3RoaXMuYz1hO3RoaXMuYj1uZXcgeUFiKFJEKFFiKG5ldyBYWWIpLDUwKSl9XG5mdW5jdGlvbiAkUWIoYSl7dGhpcy5iPWE7dGhpcy5hPW5ldyB5QWIoUkQoUWIobmV3IGJSYiksNTApKX1cbmZ1bmN0aW9uIHRSYygpe3RoaXMuYj1uZXcgX3NiO3RoaXMuZD1uZXcgWXViO3RoaXMuZT1uZXcgRnlifVxuZnVuY3Rpb24gVlRiKCl7dGhpcy5jPW5ldyBwamQ7dGhpcy5kPW5ldyBwamQ7dGhpcy5lPW5ldyBwamR9XG5mdW5jdGlvbiBhMWIoKXt0aGlzLmE9bmV3IEVqZDt0aGlzLmI9KGRrKDMsaXdlKSxuZXcgY25iKDMpKX1cbmZ1bmN0aW9uIGk3ZChhLGIpe3RoaXMuZT1hO3RoaXMuYT1qSjt0aGlzLmI9cGplKGIpO3RoaXMuYz1ifVxuZnVuY3Rpb24gVmlkKGEpe3RoaXMuYz1hLmM7dGhpcy5kPWEuZDt0aGlzLmI9YS5iO3RoaXMuYT1hLmF9XG5mdW5jdGlvbiBWTGQoYSxiLGMsZCxlLGYpe3RoaXMuYT1hO05LZC5jYWxsKHRoaXMsYixjLGQsZSxmKX1cbmZ1bmN0aW9uIGFMZChhLGIsYyxkLGUsZil7dGhpcy5hPWE7TktkLmNhbGwodGhpcyxiLGMsZCxlLGYpfVxuZnVuY3Rpb24gZmdlKGEsYixjLGQsZSxmLGcpe3JldHVybiBuZXcgbGxlKGEuZSxiLGMsZCxlLGYsZyl9XG5mdW5jdGlvbiB4aGIoYSxiLGMpe3JldHVybiBjPj0wJiZsaGIoYS5zdWJzdHIoYyxiLmxlbmd0aCksYil9XG5mdW5jdGlvbiBoR2QoYSxiKXtyZXR1cm4gWkQoYiwxNDkpJiZsaGIoYS5iLFJEKGIsMTQ5KS5QZygpKX1cbmZ1bmN0aW9uIFRkZShhLGIpe3JldHVybiBhLmE/Yi5HaCgpLktjKCk6UkQoYi5HaCgpLDcxKS5JaSgpfVxuZnVuY3Rpb24gUXFiKGEsYil7dmFyIGM7Yz1hLmIuUWMoYik7UnFiKGMsYS5iLmdjKCkpO3JldHVybiBjfVxuZnVuY3Rpb24gSXZiKGEsYil7aWYoYT09bnVsbCl7dGhyb3cgQWRiKG5ldyBPZ2IoYikpfXJldHVybiBhfVxuZnVuY3Rpb24gellkKGEpe2lmKCFhLnUpe3lZZChhKTthLnU9bmV3IHcwZChhLGEpfXJldHVybiBhLnV9XG5mdW5jdGlvbiBLeChhKXt0aGlzLmE9KHlvYigpLFpEKGEsNTkpP25ldyBpcmIoYSk6bmV3IFVwYihhKSl9XG5mdW5jdGlvbiBVd2QoYSl7dmFyIGI7Yj1SRChZd2QoYSwxNiksMjkpO3JldHVybiAhYj9hLmlpKCk6Yn1cbmZ1bmN0aW9uIGx6KGEsYil7dmFyIGM7Yz1uZmIoYS5SbSk7cmV0dXJuIGI9PW51bGw/YzpjKyc6ICcrYn1cbmZ1bmN0aW9uIHpoYihhLGIsYyl7QUZiKGIsYyxhLmxlbmd0aCk7cmV0dXJuIGEuc3Vic3RyKGIsYy1iKX1cbmZ1bmN0aW9uIFZLYihhLGIpe1JKYi5jYWxsKHRoaXMpO0tLYih0aGlzKTt0aGlzLmE9YTt0aGlzLmM9Yn1cbmZ1bmN0aW9uIG5lYihhKXshYT92dmU6bHooYSxhLmllKCkpO1N0cmluZy5mcm9tQ2hhckNvZGUoMTApfVxuZnVuY3Rpb24gV3ooYSl7UXooKTskd25kLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBhfSwwKX1cbmZ1bmN0aW9uIEdIYigpe0RIYigpO3JldHVybiBjRChXQyh1TiwxKSxqd2UsNDM2LDAsW0NIYixCSGJdKX1cbmZ1bmN0aW9uIE9IYigpe0xIYigpO3JldHVybiBjRChXQyh2TiwxKSxqd2UsNDM1LDAsW0pIYixLSGJdKX1cbmZ1bmN0aW9uIFdVYigpe1RVYigpO3JldHVybiBjRChXQyhCUCwxKSxqd2UsNDMyLDAsW1JVYixTVWJdKX1cbmZ1bmN0aW9uIFM4Yigpe1A4YigpO3JldHVybiBjRChXQyh2UywxKSxqd2UsNTE3LDAsW084YixOOGJdKX1cbmZ1bmN0aW9uIFJ2Yygpe092YygpO3JldHVybiBjRChXQyhsWCwxKSxqd2UsNDI5LDAsW012YyxOdmNdKX1cbmZ1bmN0aW9uIGJ1YygpeyR0YygpO3JldHVybiBjRChXQyhjWCwxKSxqd2UsNDI4LDAsW1l0YyxadGNdKX1cbmZ1bmN0aW9uIG10Yygpe2p0YygpO3JldHVybiBjRChXQygkVywxKSxqd2UsNDMxLDAsW2h0YyxpdGNdKX1cbmZ1bmN0aW9uIHZFYygpe3NFYygpO3JldHVybiBjRChXQyh4WCwxKSxqd2UsNDMwLDAsW3FFYyxyRWNdKX1cbmZ1bmN0aW9uIHZOYygpe3NOYygpO3JldHVybiBjRChXQyhNWSwxKSxqd2UsNTMxLDAsW3JOYyxxTmNdKX1cbmZ1bmN0aW9uIEQyYygpe3gyYygpO3JldHVybiBjRChXQyhzMCwxKSxqd2UsNTAxLDAsW3YyYyx3MmNdKX1cbmZ1bmN0aW9uIHpRYygpe3dRYygpO3JldHVybiBjRChXQyhGWiwxKSxqd2UsNTIzLDAsW3ZRYyx1UWNdKX1cbmZ1bmN0aW9uIEhRYygpe0VRYygpO3JldHVybiBjRChXQyhHWiwxKSxqd2UsNTIyLDAsW0NRYyxEUWNdKX1cbmZ1bmN0aW9uIGlUYygpe2ZUYygpO3JldHVybiBjRChXQyhiJCwxKSxqd2UsNTI4LDAsW2VUYyxkVGNdKX1cbmZ1bmN0aW9uIEZ1Yygpe0N1YygpO3JldHVybiBjRChXQyhmWCwxKSxqd2UsNDg4LDAsW0J1YyxBdWNdKX1cbmZ1bmN0aW9uIEY4Yygpe3o4YygpO3JldHVybiBjRChXQyhsMSwxKSxqd2UsNDkxLDAsW3g4Yyx5OGNdKX1cbmZ1bmN0aW9uIEg5Yygpe0I5YygpO3JldHVybiBjRChXQyh0MSwxKSxqd2UsNDkyLDAsW3o5YyxBOWNdKX1cbmZ1bmN0aW9uIERfYygpe0FfYygpO3JldHVybiBjRChXQyhLXywxKSxqd2UsNDMzLDAsW3pfYyx5X2NdKX1cbmZ1bmN0aW9uIGE0Yygpe1kzYygpO3JldHVybiBjRChXQyhIMCwxKSxqd2UsNDM0LDAsW1czYyxYM2NdKX1cbmZ1bmN0aW9uIGdWYygpe2RWYygpO3JldHVybiBjRChXQyh3JCwxKSxqd2UsNDY1LDAsW2JWYyxjVmNdKX1cbmZ1bmN0aW9uIFBiZCgpe01iZCgpO3JldHVybiBjRChXQyhPMSwxKSxqd2UsNDM4LDAsW0xiZCxLYmRdKX1cbmZ1bmN0aW9uIHJkZCgpe2xkZCgpO3JldHVybiBjRChXQyhXMSwxKSxqd2UsNDM3LDAsW2tkZCxqZGRdKX1cbmZ1bmN0aW9uIHhxZCgpe3VxZCgpO3JldHVybiBjRChXQyhNMywxKSxqd2UsMzQ3LDAsW3NxZCx0cWRdKX1cbmZ1bmN0aW9uIEp2ZChhLGIsYyxkKXtyZXR1cm4gYz49MD9hLlVoKGIsYyxkKTphLkNoKG51bGwsYyxkKX1cbmZ1bmN0aW9uIGx0ZChhKXtpZihhLmIuYj09MCl7cmV0dXJuIGEuYS5zZigpfXJldHVybiBVdWIoYS5iKX1cbmZ1bmN0aW9uIHZLZChhKXtpZihhLnAhPTUpdGhyb3cgQWRiKG5ldyBjZ2IpO3JldHVybiBZZGIoYS5mKX1cbmZ1bmN0aW9uIEVLZChhKXtpZihhLnAhPTUpdGhyb3cgQWRiKG5ldyBjZ2IpO3JldHVybiBZZGIoYS5rKX1cbmZ1bmN0aW9uIFAkZChhKXtkRShhLmEpPT09ZEUoKGxZZCgpLGtZZCkpJiZRJGQoYSk7cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIGlhZChhLGIpe2EuYj1iO2EuYz4wJiZhLmI+MCYmKGEuZz1BYWQoYS5jLGEuYixhLmEpKX1cbmZ1bmN0aW9uIGphZChhLGIpe2EuYz1iO2EuYz4wJiZhLmI+MCYmKGEuZz1BYWQoYS5jLGEuYixhLmEpKX1cbmZ1bmN0aW9uIEJVYyhhLGIpe3lVYyh0aGlzLG5ldyByamQoYS5hLGEuYikpO3pVYyh0aGlzLGd2KGIpKX1cbmZ1bmN0aW9uIFRwKCl7U3AuY2FsbCh0aGlzLG5ldyBVc2IoU3YoMTIpKSk7TGIodHJ1ZSk7dGhpcy5hPTJ9XG5mdW5jdGlvbiBldWUoYSxiLGMpe1ZzZSgpO1dzZS5jYWxsKHRoaXMsYSk7dGhpcy5iPWI7dGhpcy5hPWN9XG5mdW5jdGlvbiBDN2QoYSxiLGMpe3M3ZCgpO3Q3ZC5jYWxsKHRoaXMsYik7dGhpcy5hPWE7dGhpcy5iPWN9XG5mdW5jdGlvbiBxdWIoYSl7dmFyIGI7Yj1hLmMuZC5iO2EuYj1iO2EuYT1hLmMuZDtiLmE9YS5jLmQuYj1hfVxuZnVuY3Rpb24gVHViKGEpe3JldHVybiBhLmI9PTA/bnVsbDooc0ZiKGEuYiE9MCksV3ViKGEsYS5hLmEpKX1cbmZ1bmN0aW9uIFhqYihhLGIpe3JldHVybiBiPT1udWxsP1dkKHF0YihhLmYsbnVsbCkpOkt0YihhLmksYil9XG5mdW5jdGlvbiBiemIoYSxiLGMsZCxlKXtyZXR1cm4gbmV3IEt6YihhLChjQWIoKSxhQWIpLGIsYyxkLGUpfVxuZnVuY3Rpb24gRm5iKGEsYil7b0ZiKGIpO3JldHVybiBIbmIoYSwkQyhrRSxQd2UsMjgsYiwxNSwxKSxiKX1cbmZ1bmN0aW9uIFR4KGEsYil7UmIoYSwnc2V0MScpO1JiKGIsJ3NldDInKTtyZXR1cm4gbmV3IGV5KGEsYil9XG5mdW5jdGlvbiBLeihhLGIpe3ZhciBjPUp6W2EuY2hhckNvZGVBdCgwKV07cmV0dXJuIGM9PW51bGw/YTpjfVxuZnVuY3Rpb24gWHliKGEsYil7dmFyIGMsZDtjPWI7ZD1uZXcgR3piO1p5YihhLGMsZCk7cmV0dXJuIGQuZH1cbmZ1bmN0aW9uIEVNYihhLGIsYyxkKXt2YXIgZTtlPW5ldyBUSmI7Yi5hW2MuZ109ZTtXcmIoYS5iLGQsZSl9XG5mdW5jdGlvbiBTWGIoYSxiKXt2YXIgYztjPUJYYihhLmYsYik7cmV0dXJuICRpZChmamQoYyksYS5mLmQpfVxuZnVuY3Rpb24gUkZiKGEpe3ZhciBiO0VKYihhLmEpO0RKYihhLmEpO2I9bmV3IFBKYihhLmEpO0xKYihiKX1cbmZ1bmN0aW9uIF9NYihhLGIpeyRNYihhLHRydWUpO1VtYihhLmUuUmYoKSxuZXcgZE5iKGEsdHJ1ZSxiKSl9XG5mdW5jdGlvbiBQU2IoYSxiKXtIU2IoKTtyZXR1cm4gYT09dkNkKEpHZChiKSl8fGE9PXZDZChMR2QoYikpfVxuZnVuY3Rpb24gUjBjKGEsYil7QjBjKCk7cmV0dXJuIFJEKG1RYihiLChoX2MoKSxmX2MpKSwxNykuYT09YX1cbmZ1bmN0aW9uIGVFKGEpe3JldHVybiBNYXRoLm1heChNYXRoLm1pbihhLGx2ZSksLTIxNDc0ODM2NDgpfDB9XG5mdW5jdGlvbiBzeShhKXt0aGlzLmE9UkQoUWIoYSksMjc3KTt0aGlzLmI9KHlvYigpLG5ldyBqcmIoYSkpfVxuZnVuY3Rpb24gcWJkKGEsYixjKXt0aGlzLmk9bmV3IGJuYjt0aGlzLmI9YTt0aGlzLmc9Yjt0aGlzLmE9Y31cbmZ1bmN0aW9uIGhhZChhLGIsYyl7dGhpcy5hPW5ldyBibmI7dGhpcy5lPWE7dGhpcy5mPWI7dGhpcy5jPWN9XG5mdW5jdGlvbiBfOWMoYSxiLGMpe3RoaXMuYz1uZXcgYm5iO3RoaXMuZT1hO3RoaXMuZj1iO3RoaXMuYj1jfVxuZnVuY3Rpb24gVEtiKGEpe1JKYi5jYWxsKHRoaXMpO0tLYih0aGlzKTt0aGlzLmE9YTt0aGlzLmM9dHJ1ZX1cbmZ1bmN0aW9uIGllYihhKXtmdW5jdGlvbiBiKCl7fVxuO2IucHJvdG90eXBlPWF8fHt9O3JldHVybiBuZXcgYn1cbmZ1bmN0aW9uIHpmYihhKXtpZihhLkFlKCkpe3JldHVybiBudWxsfXZhciBiPWEubjtyZXR1cm4gZWViW2JdfVxuZnVuY3Rpb24ga3pkKGEpe2lmKGEuRGI+PjE2IT0zKXJldHVybiBudWxsO3JldHVybiBSRChhLkNiLDI3KX1cbmZ1bmN0aW9uIE1DZChhKXtpZihhLkRiPj4xNiE9OSlyZXR1cm4gbnVsbDtyZXR1cm4gUkQoYS5DYiwyNyl9XG5mdW5jdGlvbiBGemQoYSl7aWYoYS5EYj4+MTYhPTYpcmV0dXJuIG51bGw7cmV0dXJuIFJEKGEuQ2IsNzQpfVxuZnVuY3Rpb24gZFZjKCl7ZFZjPWdlYjtiVmM9bmV3IGVWYyhOeWUsMCk7Y1ZjPW5ldyBlVmMoT3llLDEpfVxuZnVuY3Rpb24gd1FjKCl7d1FjPWdlYjt2UWM9bmV3IHhRYyhPeWUsMCk7dVFjPW5ldyB4UWMoTnllLDEpfVxuZnVuY3Rpb24gRVFjKCl7RVFjPWdlYjtDUWM9bmV3IEZRYyhaeWUsMCk7RFFjPW5ldyBGUWMoJ1VQJywxKX1cbmZ1bmN0aW9uIElzKCl7SXM9Z2ViO0hzPXNzKCh6cygpLGNEKFdDKFJHLDEpLGp3ZSw1NDksMCxbeXNdKSkpfVxuZnVuY3Rpb24gV3goYSl7dmFyIGI7Yj1uZXcgYXRiKFN2KGEubGVuZ3RoKSk7em9iKGIsYSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBCMmIoYSxiKXthLmIrPWIuYjthLmMrPWIuYzthLmQrPWIuZDthLmErPWIuYTtyZXR1cm4gYX1cbmZ1bmN0aW9uIHFtYihhLGIpe2lmKGttYihhLGIpKXtKbWIoYSk7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gcUMoYSxiKXtpZihiPT1udWxsKXt0aHJvdyBBZGIobmV3IE5nYil9cmV0dXJuIHJDKGEsYil9XG5mdW5jdGlvbiBuQihhLGIpe3ZhciBjO2M9YS5xLmdldEhvdXJzKCk7YS5xLnNldERhdGUoYik7bUIoYSxjKX1cbmZ1bmN0aW9uIFh2ZChhLGIsYyl7dmFyIGQ7ZD1hLkloKGIpO2Q+PTA/YS5iaShkLGMpOlN2ZChhLGIsYyl9XG5mdW5jdGlvbiBMdmQoYSxiKXt2YXIgYztjPWEuSWgoYik7cmV0dXJuIGM+PTA/YS5XaChjKTpSdmQoYSxiKX1cbmZ1bmN0aW9uIHpvKGEsYil7dmFyIGM7UWIoYik7Zm9yKGM9YS5hO2M7Yz1jLmMpe2IuWWQoYy5nLGMuaSl9fVxuZnVuY3Rpb24gcE1jKGEsYixjKXt2YXIgZDtkPXFNYyhhLGIsYyk7YS5iPW5ldyBfTGMoZC5jLmxlbmd0aCl9XG5mdW5jdGlvbiBISWQoYSxiLGMpe0VJZCgpOyEhYSYmWmpiKERJZCxhLGIpOyEhYSYmWmpiKENJZCxhLGMpfVxuZnVuY3Rpb24gYmZjKGEsYil7UmVjKCk7cmV0dXJuIEdlYigpLFJEKGIuYSwxNykuYTxhP3RydWU6ZmFsc2V9XG5mdW5jdGlvbiBhZmMoYSxiKXtSZWMoKTtyZXR1cm4gR2ViKCksUkQoYi5iLDE3KS5hPGE/dHJ1ZTpmYWxzZX1cbmZ1bmN0aW9uIFI3YihhLGIpe3JldHVybiAkd25kLk1hdGguYWJzKGEpPCR3bmQuTWF0aC5hYnMoYik/YTpifVxuZnVuY3Rpb24geENkKGEpe3JldHVybiAhYS5hJiYoYS5hPW5ldyBDNWQoSjQsYSwxMCwxMSkpLGEuYS5pPjB9XG5mdW5jdGlvbiBzSWQoYSl7dmFyIGI7Yj1hLmQ7Yj1hLmJqKGEuZik7V0dkKGEsYik7cmV0dXJuIGIuT2IoKX1cbmZ1bmN0aW9uIGJIZChhLGIpe3ZhciBjO2M9bmV3IEt1YihiKTtWZShjLGEpO3JldHVybiBuZXcgZG5iKGMpfVxuZnVuY3Rpb24gcUtkKGEpe2lmKGEucCE9MCl0aHJvdyBBZGIobmV3IGNnYik7cmV0dXJuIFBkYihhLmYsMCl9XG5mdW5jdGlvbiB6S2QoYSl7aWYoYS5wIT0wKXRocm93IEFkYihuZXcgY2diKTtyZXR1cm4gUGRiKGEuaywwKX1cbmZ1bmN0aW9uIGdCZChhKXtpZihhLkRiPj4xNiE9NylyZXR1cm4gbnVsbDtyZXR1cm4gUkQoYS5DYiwyNDEpfVxuZnVuY3Rpb24geFhkKGEpe2lmKGEuRGI+PjE2IT02KXJldHVybiBudWxsO3JldHVybiBSRChhLkNiLDI0MSl9XG5mdW5jdGlvbiBkQ2QoYSl7aWYoYS5EYj4+MTYhPTcpcmV0dXJuIG51bGw7cmV0dXJuIFJEKGEuQ2IsMTY3KX1cbmZ1bmN0aW9uIHZDZChhKXtpZihhLkRiPj4xNiE9MTEpcmV0dXJuIG51bGw7cmV0dXJuIFJEKGEuQ2IsMjcpfVxuZnVuY3Rpb24gdVdkKGEpe2lmKGEuRGI+PjE2IT0xNylyZXR1cm4gbnVsbDtyZXR1cm4gUkQoYS5DYiwyOSl9XG5mdW5jdGlvbiBrVmQoYSl7aWYoYS5EYj4+MTYhPTMpcmV0dXJuIG51bGw7cmV0dXJuIFJEKGEuQ2IsMTU1KX1cbmZ1bmN0aW9uIEJEYihhKXt2YXIgYjtNQ2IoYSk7Yj1uZXcgX3NiO3JldHVybiBDRGIoYSxuZXcgYUViKGIpKX1cbmZ1bmN0aW9uIHhmYihhLGIpe3ZhciBjPWEuYT1hLmF8fFtdO3JldHVybiBjW2JdfHwoY1tiXT1hLnZlKGIpKX1cbmZ1bmN0aW9uIHFCKGEsYil7dmFyIGM7Yz1hLnEuZ2V0SG91cnMoKTthLnEuc2V0TW9udGgoYik7bUIoYSxjKX1cbmZ1bmN0aW9uIG96KGEsYil7ZXoodGhpcyk7dGhpcy5mPWI7dGhpcy5nPWE7Z3oodGhpcyk7dGhpcy5qZSgpfVxuZnVuY3Rpb24gVFFiKGEsYil7dGhpcy5hPWE7dGhpcy5jPWFqZCh0aGlzLmEpO3RoaXMuYj1uZXcgVmlkKGIpfVxuZnVuY3Rpb24gYUdiKGEsYixjKXt0aGlzLmE9Yjt0aGlzLmM9YTt0aGlzLmI9KFFiKGMpLG5ldyBkbmIoYykpfVxuZnVuY3Rpb24gcyRiKGEsYixjKXt0aGlzLmE9Yjt0aGlzLmM9YTt0aGlzLmI9KFFiKGMpLG5ldyBkbmIoYykpfVxuZnVuY3Rpb24gX0tjKGEpe3RoaXMuYT1hO3RoaXMuYj0kQyhxWSxOdmUsMjA0MyxhLmUubGVuZ3RoLDAsMil9XG5mdW5jdGlvbiBmR2IoKXt0aGlzLmE9bmV3IEl1Yjt0aGlzLmU9bmV3IF9zYjt0aGlzLmc9MDt0aGlzLmk9MH1cbmZ1bmN0aW9uIEVJZCgpe0VJZD1nZWI7RElkPW5ldyBUc2I7Q0lkPW5ldyBUc2I7SUlkKHpLLG5ldyBKSWQpfVxuZnVuY3Rpb24gS0ZjKCl7S0ZjPWdlYjtKRmM9bmZkKG5ldyB1ZmQsKHNYYigpLHJYYiksKGhjYygpLCRiYykpfVxuZnVuY3Rpb24gUkZjKCl7UkZjPWdlYjtRRmM9bmZkKG5ldyB1ZmQsKHNYYigpLHJYYiksKGhjYygpLCRiYykpfVxuZnVuY3Rpb24gZ0djKCl7Z0djPWdlYjtmR2M9bmZkKG5ldyB1ZmQsKHNYYigpLHJYYiksKGhjYygpLCRiYykpfVxuZnVuY3Rpb24gQU5jKCl7QU5jPWdlYjt6TmM9cGZkKG5ldyB1ZmQsKHNYYigpLHJYYiksKGhjYygpLHliYykpfVxuZnVuY3Rpb24gZE9jKCl7ZE9jPWdlYjtjT2M9cGZkKG5ldyB1ZmQsKHNYYigpLHJYYiksKGhjYygpLHliYykpfVxuZnVuY3Rpb24gZ1FjKCl7Z1FjPWdlYjtmUWM9cGZkKG5ldyB1ZmQsKHNYYigpLHJYYiksKGhjYygpLHliYykpfVxuZnVuY3Rpb24gV1FjKCl7V1FjPWdlYjtWUWM9cGZkKG5ldyB1ZmQsKHNYYigpLHJYYiksKGhjYygpLHliYykpfVxuZnVuY3Rpb24gZFpkKGEsYixjLGQsZSxmKXtyZXR1cm4gbmV3IFAzZChhLmUsYixhLkxqKCksYyxkLGUsZil9XG5mdW5jdGlvbiAkamIoYSxiLGMpe3JldHVybiBiPT1udWxsP3J0YihhLmYsbnVsbCxjKTpMdGIoYS5pLGIsYyl9XG5mdW5jdGlvbiBZMGIoYSxiKXshIWEuYyYmWW1iKGEuYy5nLGEpO2EuYz1iOyEhYS5jJiZSbWIoYS5jLmcsYSl9XG5mdW5jdGlvbiBnM2IoYSxiKXshIWEuYyYmWW1iKGEuYy5hLGEpO2EuYz1iOyEhYS5jJiZSbWIoYS5jLmEsYSl9XG5mdW5jdGlvbiBQM2IoYSxiKXshIWEuaSYmWW1iKGEuaS5qLGEpO2EuaT1iOyEhYS5pJiZSbWIoYS5pLmosYSl9XG5mdW5jdGlvbiBaMGIoYSxiKXshIWEuZCYmWW1iKGEuZC5lLGEpO2EuZD1iOyEhYS5kJiZSbWIoYS5kLmUsYSl9XG5mdW5jdGlvbiBfU2MoYSxiKXshIWEuYSYmWW1iKGEuYS5rLGEpO2EuYT1iOyEhYS5hJiZSbWIoYS5hLmssYSl9XG5mdW5jdGlvbiBhVGMoYSxiKXshIWEuYiYmWW1iKGEuYi5mLGEpO2EuYj1iOyEhYS5iJiZSbWIoYS5iLmYsYSl9XG5mdW5jdGlvbiBPZGQoYSxiKXtQZGQoYSxhLmIsYS5jKTtSRChhLmIuYiw2OCk7ISFiJiZSRChiLmIsNjgpLmJ9XG5mdW5jdGlvbiBqMmMoYSxiKXtyZXR1cm4gUWZiKFJEKGEuYyw2NSkuYy5lLmIsUkQoYi5jLDY1KS5jLmUuYil9XG5mdW5jdGlvbiBrMmMoYSxiKXtyZXR1cm4gUWZiKFJEKGEuYyw2NSkuYy5lLmEsUkQoYi5jLDY1KS5jLmUuYSl9XG5mdW5jdGlvbiBZWGIoYSl7TlhiKCk7cmV0dXJuIEdlYigpLFJEKGEuYSw4NikuZC5lIT0wP3RydWU6ZmFsc2V9XG5mdW5jdGlvbiBMWGQoYSxiKXtaRChhLkNiLDE4NCkmJihSRChhLkNiLDE4NCkudGI9bnVsbCk7UEFkKGEsYil9XG5mdW5jdGlvbiBDV2QoYSxiKXtaRChhLkNiLDkwKSYmdiRkKHlZZChSRChhLkNiLDkwKSksNCk7UEFkKGEsYil9XG5mdW5jdGlvbiBfNWQoYSxiKXthNmQoYSxiKTtaRChhLkNiLDkwKSYmdiRkKHlZZChSRChhLkNiLDkwKSksMil9XG5mdW5jdGlvbiBKRmQoYSxiKXt2YXIgYyxkO2M9Yi5jO2Q9YyE9bnVsbDtkJiZvRGQoYSxuZXcgT0MoYi5jKSl9XG5mdW5jdGlvbiB2MGQoYSl7dmFyIGIsYztjPShqVGQoKSxiPW5ldyBzMmQsYik7bDJkKGMsYSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBFNGQoYSl7dmFyIGIsYztjPShqVGQoKSxiPW5ldyBzMmQsYik7bDJkKGMsYSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBGcihhKXt2YXIgYjt3aGlsZSh0cnVlKXtiPWEuUGIoKTtpZighYS5PYigpKXtyZXR1cm4gYn19fVxuZnVuY3Rpb24gbnEoYSxiLGMpe1JtYihhLmEsKGZuKCksY2soYixjKSxuZXcgZ3AoYixjKSkpO3JldHVybiBhfVxuZnVuY3Rpb24gcmdlKGEsYil7cmV0dXJuIG5rZSgpLHdXZChiKT9uZXcgb2xlKGIsYSk6bmV3IEVrZShiLGEpfVxuZnVuY3Rpb24gb2piKGEpe1BpYigpO3JldHVybiBEZGIoYSwwKT49MD9qamIoYSk6WGliKGpqYihPZGIoYSkpKX1cbmZ1bmN0aW9uIEFzYihhKXt2YXIgYjtiPVJEKFVFYihhLmIpLDkpO3JldHVybiBuZXcgRnNiKGEuYSxiLGEuYyl9XG5mdW5jdGlvbiBRdyhhLGIpe3ZhciBjO2M9UkQoWHYobmQoYS5hKSxiKSwxNik7cmV0dXJuICFjPzA6Yy5nYygpfVxuZnVuY3Rpb24gWm1iKGEsYixjKXt2YXIgZDt4RmIoYixjLGEuYy5sZW5ndGgpO2Q9Yy1iOyRFYihhLmMsYixkKX1cbmZ1bmN0aW9uIFJrYihhLGIsYyl7eEZiKGIsYyxhLmdjKCkpO3RoaXMuYz1hO3RoaXMuYT1iO3RoaXMuYj1jLWJ9XG5mdW5jdGlvbiBmZ2QoYSl7dGhpcy5jPW5ldyBZdWI7dGhpcy5iPWEuYjt0aGlzLmQ9YS5jO3RoaXMuYT1hLmF9XG5mdW5jdGlvbiBxamQoYSl7dGhpcy5hPSR3bmQuTWF0aC5jb3MoYSk7dGhpcy5iPSR3bmQuTWF0aC5zaW4oYSl9XG5mdW5jdGlvbiBiVGMoYSxiLGMsZCl7dGhpcy5jPWE7dGhpcy5kPWQ7X1NjKHRoaXMsYik7YVRjKHRoaXMsYyl9XG5mdW5jdGlvbiBTaShhLGIpe1FpLmNhbGwodGhpcyxuZXcgVXNiKFN2KGEpKSk7ZGsoYixNdmUpO3RoaXMuYT1ifVxuZnVuY3Rpb24gUnliKGEsYixjKXtyZXR1cm4gbmV3IEt6YihhLChjQWIoKSxfemIpLG51bGwsZmFsc2UsYixjKX1cbmZ1bmN0aW9uIGN6YihhLGIsYyl7cmV0dXJuIG5ldyBLemIoYSwoY0FiKCksYkFiKSxiLGMsbnVsbCxmYWxzZSl9XG5mdW5jdGlvbiBBQmIoKXt4QmIoKTtyZXR1cm4gY0QoV0MoUUwsMSksandlLDEwOCwwLFt1QmIsdkJiLHdCYl0pfVxuZnVuY3Rpb24geUxiKCl7dkxiKCk7cmV0dXJuIGNEKFdDKFROLDEpLGp3ZSw0NzIsMCxbdUxiLHRMYixzTGJdKX1cbmZ1bmN0aW9uIEhLYigpe0VLYigpO3JldHVybiBjRChXQyhNTiwxKSxqd2UsNDcxLDAsW0NLYixCS2IsREtiXSl9XG5mdW5jdGlvbiBhS2IoKXtaSmIoKTtyZXR1cm4gY0QoV0MoSk4sMSksandlLDIzNywwLFtXSmIsWEpiLFlKYl0pfVxuZnVuY3Rpb24gRFdiKCl7QVdiKCk7cmV0dXJuIGNEKFdDKEpQLDEpLGp3ZSwzOTEsMCxbeVdiLHhXYix6V2JdKX1cbmZ1bmN0aW9uIG1vYygpe2pvYygpO3JldHVybiBjRChXQyhVViwxKSxqd2UsMzcyLDAsW2lvYyxob2MsZ29jXSl9XG5mdW5jdGlvbiB5dGMoKXtzdGMoKTtyZXR1cm4gY0QoV0MoX1csMSksandlLDMyMiwwLFtxdGMscHRjLHJ0Y10pfVxuZnVuY3Rpb24gSHRjKCl7RXRjKCk7cmV0dXJuIGNEKFdDKGFYLDEpLGp3ZSwzNTEsMCxbQnRjLER0YyxDdGNdKX1cbmZ1bmN0aW9uIGt1Yygpe2h1YygpO3JldHVybiBjRChXQyhkWCwxKSxqd2UsNDYwLDAsW2Z1YyxldWMsZ3VjXSl9XG5mdW5jdGlvbiBBdmMoKXt4dmMoKTtyZXR1cm4gY0QoV0MoalgsMSksandlLDI5OSwwLFt2dmMsd3ZjLHV2Y10pfVxuZnVuY3Rpb24gSnZjKCl7R3ZjKCk7cmV0dXJuIGNEKFdDKGtYLDEpLGp3ZSwzMTEsMCxbRXZjLEZ2YyxEdmNdKX1cbmZ1bmN0aW9uIHBEYygpe2xEYygpO3JldHVybiBjRChXQyhzWCwxKSxqd2UsMzkwLDAsW2lEYyxqRGMsa0RjXSl9XG5mdW5jdGlvbiBFRWMoKXtCRWMoKTtyZXR1cm4gY0QoV0MoeVgsMSksandlLDQ2MywwLFtBRWMseUVjLHpFY10pfVxuZnVuY3Rpb24gTkVjKCl7S0VjKCk7cmV0dXJuIGNEKFdDKHpYLDEpLGp3ZSwzODcsMCxbSEVjLElFYyxKRWNdKX1cbmZ1bmN0aW9uIFdFYygpe1RFYygpO3JldHVybiBjRChXQyhBWCwxKSxqd2UsMzQ5LDAsW1NFYyxRRWMsUkVjXSl9XG5mdW5jdGlvbiBvRmMoKXtsRmMoKTtyZXR1cm4gY0QoV0MoQ1gsMSksandlLDM1MCwwLFtpRmMsakZjLGtGY10pfVxuZnVuY3Rpb24geEZjKCl7dUZjKCk7cmV0dXJuIGNEKFdDKERYLDEpLGp3ZSwzNTIsMCxbdEZjLHJGYyxzRmNdKX1cbmZ1bmN0aW9uIEdGYygpe0RGYygpO3JldHVybiBjRChXQyhFWCwxKSxqd2UsMzg4LDAsW0JGYyxDRmMsQUZjXSl9XG5mdW5jdGlvbiBVS2MoKXtSS2MoKTtyZXR1cm4gY0QoV0MoblksMSksandlLDQ2NCwwLFtPS2MsUEtjLFFLY10pfVxuZnVuY3Rpb24gSzNiKGEpe3JldHVybiB4amQoY0QoV0MobDMsMSksTnZlLDgsMCxbYS5pLm4sYS5uLGEuYV0pKX1cbmZ1bmN0aW9uIE9aYygpe0xaYygpO3JldHVybiBjRChXQyhGXywxKSxqd2UsMzkyLDAsW0taYyxKWmMsSVpjXSl9XG5mdW5jdGlvbiBIX2MoKXtIX2M9Z2ViO0dfYz1uZmQobmV3IHVmZCwoWVZjKCksV1ZjKSwoV1ljKCksTVljKSl9XG5mdW5jdGlvbiBBX2MoKXtBX2M9Z2ViO3pfYz1uZXcgQl9jKCdERlMnLDApO3lfYz1uZXcgQl9jKCdCRlMnLDEpfVxuZnVuY3Rpb24gVFFjKGEsYixjKXt2YXIgZDtkPW5ldyBTUWM7ZC5iPWI7ZC5hPWM7KytiLmI7Um1iKGEuZCxkKX1cbmZ1bmN0aW9uIE5UYihhLGIsYyl7dmFyIGQ7ZD1uZXcgc2pkKGMuZCk7JGlkKGQsYSk7Q0dkKGIsZC5hLGQuYil9XG5mdW5jdGlvbiBOd2IoYSxiKXtNd2IoYSxZZGIoQ2RiKFRkYihiLDI0KSxQeGUpKSxZZGIoQ2RiKGIsUHhlKSkpfVxuZnVuY3Rpb24gd0ZiKGEsYil7aWYoYTwwfHxhPmIpe3Rocm93IEFkYihuZXcgdmViKGN5ZSthK2R5ZStiKSl9fVxuZnVuY3Rpb24gdEZiKGEsYil7aWYoYTwwfHxhPj1iKXt0aHJvdyBBZGIobmV3IHZlYihjeWUrYStkeWUrYikpfX1cbmZ1bmN0aW9uIEJGYihhLGIpe2lmKGE8MHx8YT49Yil7dGhyb3cgQWRiKG5ldyBlaWIoY3llK2ErZHllK2IpKX19XG5mdW5jdGlvbiBTd2IoYSxiKXt0aGlzLmI9KHVGYihhKSxhKTt0aGlzLmE9KGImcXhlKT09MD9ifDY0fE92ZTpifVxuZnVuY3Rpb24gT0RiKGEpe3ZhciBiO01DYihhKTtiPSh1cmIoKSx1cmIoKSxzcmIpO3JldHVybiBQRGIoYSxiKX1cbmZ1bmN0aW9uIFI5YyhhLGIsYyl7dmFyIGQ7ZD1TOWMoYSxiLGZhbHNlKTtyZXR1cm4gZC5iPD1iJiZkLmE8PWN9XG5mdW5jdGlvbiBoOWMoKXtiOWMoKTtyZXR1cm4gY0QoV0MobzEsMSksandlLDQzOSwwLFskOGMsYTljLF84Y10pfVxuZnVuY3Rpb24gYzdjKCl7XzZjKCk7cmV0dXJuIGNEKFdDKGExLDEpLGp3ZSwzOTQsMCxbWjZjLCQ2YyxZNmNdKX1cbmZ1bmN0aW9uIGk2Yygpe2Y2YygpO3JldHVybiBjRChXQyhWMCwxKSxqd2UsNDQ1LDAsW2M2YyxkNmMsZTZjXSl9XG5mdW5jdGlvbiBENmMoKXt6NmMoKTtyZXR1cm4gY0QoV0MoWjAsMSksandlLDQ1NiwwLFt3NmMseTZjLHg2Y10pfVxuZnVuY3Rpb24gazRjKCl7ZzRjKCk7cmV0dXJuIGNEKFdDKEkwLDEpLGp3ZSwzOTMsMCxbZDRjLGU0YyxmNGNdKX1cbmZ1bmN0aW9uIHg1Yygpe3Q1YygpO3JldHVybiBjRChXQyhOMCwxKSxqd2UsMzAwLDAsW3I1YyxzNWMscTVjXSl9XG5mdW5jdGlvbiBJbmQoKXtGbmQoKTtyZXR1cm4gY0QoV0MoeTMsMSksandlLDM0NiwwLFtEbmQsQ25kLEVuZF0pfVxuZnVuY3Rpb24gamJkKCl7Z2JkKCk7cmV0dXJuIGNEKFdDKEkxLDEpLGp3ZSw0NDQsMCxbZGJkLGViZCxmYmRdKX1cbmZ1bmN0aW9uIFJtZCgpe09tZCgpO3JldHVybiBjRChXQyh0MywxKSxqd2UsMjc4LDAsW0xtZCxNbWQsTm1kXSl9XG5mdW5jdGlvbiBwcWQoKXttcWQoKTtyZXR1cm4gY0QoV0MoSjMsMSksandlLDI4MCwwLFtrcWQsanFkLGxxZF0pfVxuZnVuY3Rpb24gYnYoYSl7UWIoYSk7cmV0dXJuIFpEKGEsMTYpP25ldyBkbmIoUkQoYSwxNikpOmN2KGEuS2MoKSl9XG5mdW5jdGlvbiBIeihhLGIpe3JldHVybiAhIWEmJiEhYS5lcXVhbHM/YS5lcXVhbHMoYik6ZEUoYSk9PT1kRShiKX1cbmZ1bmN0aW9uIENkYihhLGIpe3JldHVybiBFZGIodEQoS2RiKGEpP1dkYihhKTphLEtkYihiKT9XZGIoYik6YikpfVxuZnVuY3Rpb24gUmRiKGEsYil7cmV0dXJuIEVkYih6RChLZGIoYSk/V2RiKGEpOmEsS2RiKGIpP1dkYihiKTpiKSl9XG5mdW5jdGlvbiAkZGIoYSxiKXtyZXR1cm4gRWRiKEhEKEtkYihhKT9XZGIoYSk6YSxLZGIoYik/V2RiKGIpOmIpKX1cbmZ1bmN0aW9uIHhzKGEsYil7dmFyIGM7Yz0odUZiKGEpLGEpLmc7bEZiKCEhYyk7dUZiKGIpO3JldHVybiBjKGIpfVxuZnVuY3Rpb24gcnYoYSxiKXt2YXIgYyxkO2Q9dHYoYSxiKTtjPWEuYS5mZChkKTtyZXR1cm4gbmV3IEd2KGEsYyl9XG5mdW5jdGlvbiBDWGQoYSl7aWYoYS5EYj4+MTYhPTYpcmV0dXJuIG51bGw7cmV0dXJuIFJEKHl2ZChhKSwyNDEpfVxuZnVuY3Rpb24gc0tkKGEpe2lmKGEucCE9Mil0aHJvdyBBZGIobmV3IGNnYik7cmV0dXJuIFlkYihhLmYpJkJ3ZX1cbmZ1bmN0aW9uIEJLZChhKXtpZihhLnAhPTIpdGhyb3cgQWRiKG5ldyBjZ2IpO3JldHVybiBZZGIoYS5rKSZCd2V9XG5mdW5jdGlvbiB5bmIoYSl7c0ZiKGEuYTxhLmMuYy5sZW5ndGgpO2EuYj1hLmErKztyZXR1cm4gYS5jLmNbYS5iXX1cbmZ1bmN0aW9uICRHYihhLGIpe2EuYj1hLmJ8Yi5iO2EuYz1hLmN8Yi5jO2EuZD1hLmR8Yi5kO2EuYT1hLmF8Yi5hfVxuZnVuY3Rpb24gTkpiKGEsYil7dmFyIGM7Yz1LZmIoVUQoYS5hLm9mKCh1bWQoKSxjbWQpKSkpO09KYihhLGIsYyl9XG5mdW5jdGlvbiBiamIoYSxiKXtjamIuY2FsbCh0aGlzLDEsMixjRChXQyhrRSwxKSxQd2UsMjgsMTUsW2EsYl0pKX1cbmZ1bmN0aW9uIFl0ZShhLGIsYyl7V3NlLmNhbGwodGhpcywyNSk7dGhpcy5iPWE7dGhpcy5hPWI7dGhpcy5jPWN9XG5mdW5jdGlvbiB4dGUoYSl7VnNlKCk7V3NlLmNhbGwodGhpcyxhKTt0aGlzLmM9ZmFsc2U7dGhpcy5hPWZhbHNlfVxuZnVuY3Rpb24geGZlKGEpe2EuYT09KHJlZSgpLHFlZSkmJkRmZShhLHNlZShhLmcsYS5iKSk7cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIHpmZShhKXthLmQ9PShyZWUoKSxxZWUpJiZGZmUoYSx3ZWUoYS5nLGEuYikpO3JldHVybiBhLmR9XG5mdW5jdGlvbiBJWmIoYSxiKXtDWmIoKTtyZXR1cm4gYS5jPT1iLmM/UWZiKGIuZCxhLmQpOlFmYihiLmMsYS5jKX1cbmZ1bmN0aW9uIEdaYihhLGIpe0NaYigpO3JldHVybiBhLmM9PWIuYz9RZmIoYi5kLGEuZCk6UWZiKGEuYyxiLmMpfVxuZnVuY3Rpb24gSFpiKGEsYil7Q1piKCk7cmV0dXJuIGEuYz09Yi5jP1FmYihhLmQsYi5kKTpRZmIoYS5jLGIuYyl9XG5mdW5jdGlvbiBKWmIoYSxiKXtDWmIoKTtyZXR1cm4gYS5jPT1iLmM/UWZiKGEuZCxiLmQpOlFmYihiLmMsYS5jKX1cbmZ1bmN0aW9uIFlyYihhLGIpe3JldHVybiBEc2IoYS5hLGIpP19FYihhLmIsUkQoYiwyMikuZyxudWxsKTpudWxsfVxuZnVuY3Rpb24gTHdiKGEpe3JldHVybiBCZGIoU2RiKEhkYihLd2IoYSwzMikpLDMyKSxIZGIoS3diKGEsMzIpKSl9XG5mdW5jdGlvbiBrVWIoYSl7cmV0dXJuIGEuYj09bnVsbHx8YS5iLmxlbmd0aD09MD8nbl8nK2EuYTonbl8nK2EuYn1cbmZ1bmN0aW9uIGFYYyhhKXtyZXR1cm4gYS5jPT1udWxsfHxhLmMubGVuZ3RoPT0wPyduXycrYS5nOiduXycrYS5jfVxuZnVuY3Rpb24gd1ljKGEsYil7dmFyIGM7Yz1hKycnO3doaWxlKGMubGVuZ3RoPGIpe2M9JzAnK2N9cmV0dXJuIGN9XG5mdW5jdGlvbiB2a2MoYSxiKXt2YXIgYztjPVJEKFdqYihhLmcsYiksNjApO1VtYihiLmQsbmV3IHVsYyhhLGMpKX1cbmZ1bmN0aW9uIEpfYihhLGIpe3ZhciBjLGQ7Yz1sMmIoYSk7ZD1sMmIoYik7cmV0dXJuIGM8ZD8tMTpjPmQ/MTowfVxuZnVuY3Rpb24gSG1jKGEsYil7dmFyIGMsZDtjPUdtYyhiKTtkPWM7cmV0dXJuIFJEKFdqYihhLmMsZCksMTcpLmF9XG5mdW5jdGlvbiBDTWMoYSxiLGMpe3ZhciBkO2Q9YS5kW2IucF07YS5kW2IucF09YS5kW2MucF07YS5kW2MucF09ZH1cbmZ1bmN0aW9uIEpxZChhLGIsYyl7dmFyIGQ7aWYoYS5uJiYhIWImJiEhYyl7ZD1uZXcgb3RkO1JtYihhLmUsZCl9fVxuZnVuY3Rpb24gZ1liKGEsYil7WXNiKGEuYSxiKTtpZihiLmQpe3Rocm93IEFkYihuZXcgeXooanllKSl9Yi5kPWF9XG5mdW5jdGlvbiBIYWQoYSxiKXt0aGlzLmE9bmV3IGJuYjt0aGlzLmQ9bmV3IGJuYjt0aGlzLmY9YTt0aGlzLmM9Yn1cbmZ1bmN0aW9uIFJXYigpe3RoaXMuYz1uZXcgZFhiO3RoaXMuYT1uZXcgSV9iO3RoaXMuYj1uZXcgRTBiO2cwYigpfVxuZnVuY3Rpb24gbWVkKCl7aGVkKCk7dGhpcy5iPW5ldyBUc2I7dGhpcy5hPW5ldyBUc2I7dGhpcy5jPW5ldyBibmJ9XG5mdW5jdGlvbiBLS2QoYSxiLGMpe3RoaXMuZD1hO3RoaXMuaj1iO3RoaXMuZT1jO3RoaXMubz0tMTt0aGlzLnA9M31cbmZ1bmN0aW9uIExLZChhLGIsYyl7dGhpcy5kPWE7dGhpcy5rPWI7dGhpcy5mPWM7dGhpcy5vPS0xO3RoaXMucD01fVxuZnVuY3Rpb24gUzNkKGEsYixjLGQsZSxmKXtSM2QuY2FsbCh0aGlzLGEsYixjLGQsZSk7ZiYmKHRoaXMubz0tMil9XG5mdW5jdGlvbiBVM2QoYSxiLGMsZCxlLGYpe1QzZC5jYWxsKHRoaXMsYSxiLGMsZCxlKTtmJiYodGhpcy5vPS0yKX1cbmZ1bmN0aW9uIFczZChhLGIsYyxkLGUsZil7VjNkLmNhbGwodGhpcyxhLGIsYyxkLGUpO2YmJih0aGlzLm89LTIpfVxuZnVuY3Rpb24gWTNkKGEsYixjLGQsZSxmKXtYM2QuY2FsbCh0aGlzLGEsYixjLGQsZSk7ZiYmKHRoaXMubz0tMil9XG5mdW5jdGlvbiAkM2QoYSxiLGMsZCxlLGYpe1ozZC5jYWxsKHRoaXMsYSxiLGMsZCxlKTtmJiYodGhpcy5vPS0yKX1cbmZ1bmN0aW9uIGE0ZChhLGIsYyxkLGUsZil7XzNkLmNhbGwodGhpcyxhLGIsYyxkLGUpO2YmJih0aGlzLm89LTIpfVxuZnVuY3Rpb24gZjRkKGEsYixjLGQsZSxmKXtlNGQuY2FsbCh0aGlzLGEsYixjLGQsZSk7ZiYmKHRoaXMubz0tMil9XG5mdW5jdGlvbiBoNGQoYSxiLGMsZCxlLGYpe2c0ZC5jYWxsKHRoaXMsYSxiLGMsZCxlKTtmJiYodGhpcy5vPS0yKX1cbmZ1bmN0aW9uIE43ZChhLGIsYyxkKXt0N2QuY2FsbCh0aGlzLGMpO3RoaXMuYj1hO3RoaXMuYz1iO3RoaXMuZD1kfVxuZnVuY3Rpb24gbWZlKGEsYil7dGhpcy5mPWE7dGhpcy5hPShyZWUoKSxwZWUpO3RoaXMuYz1wZWU7dGhpcy5iPWJ9XG5mdW5jdGlvbiBKZmUoYSxiKXt0aGlzLmc9YTt0aGlzLmQ9KHJlZSgpLHFlZSk7dGhpcy5hPXFlZTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIEdtZShhLGIpeyFhLmMmJihhLmM9bmV3IFVnZShhLDApKTtGZ2UoYS5jLChubWUoKSxmbWUpLGIpfVxuZnVuY3Rpb24gT2dlKGEsYil7cmV0dXJuIFBnZShhLGIsWkQoYiwxMDIpJiYoUkQoYiwxOSkuQmImdHhlKSE9MCl9XG5mdW5jdGlvbiBsQihhLGIpe3JldHVybiBBZ2IoSGRiKGEucS5nZXRUaW1lKCkpLEhkYihiLnEuZ2V0VGltZSgpKSl9XG5mdW5jdGlvbiBnaihhKXtyZXR1cm4gZmsoYS5lLlJkKCkuZ2MoKSphLmMuUmQoKS5nYygpLDE2LG5ldyBxaihhKSl9XG5mdW5jdGlvbiBDWWQoYSl7cmV0dXJuICEhYS51JiZ0WWQoYS51LmEpLmkhPTAmJiEoISFhLm4mJmQkZChhLm4pKX1cbmZ1bmN0aW9uIHA0ZChhKXtyZXR1cm4gISFhLmEmJm80ZChhLmEuYSkuaSE9MCYmISghIWEuYiYmbzVkKGEuYikpfVxuZnVuY3Rpb24gQ3hkKGEsYil7aWYoYj09MCl7cmV0dXJuICEhYS5vJiZhLm8uZiE9MH1yZXR1cm4gS3ZkKGEsYil9XG5mdW5jdGlvbiBDYyhhLGIsYyl7dmFyIGQ7ZD1SRChhLlpiKCkueGMoYiksMTYpO3JldHVybiAhIWQmJmQuSGMoYyl9XG5mdW5jdGlvbiBHYyhhLGIsYyl7dmFyIGQ7ZD1SRChhLlpiKCkueGMoYiksMTYpO3JldHVybiAhIWQmJmQuTWMoYyl9XG5mdW5jdGlvbiBfeWIoYSxiKXt2YXIgYztjPTEtYjthLmFbY109YXpiKGEuYVtjXSxjKTtyZXR1cm4gYXpiKGEsYil9XG5mdW5jdGlvbiBERmIoYSxiKXt2YXIgYyxkO2Q9Q2RiKGEseXhlKTtjPVNkYihiLDMyKTtyZXR1cm4gUmRiKGMsZCl9XG5mdW5jdGlvbiBiR2IoYSxiLGMpe3ZhciBkO2Q9KFFiKGEpLG5ldyBkbmIoYSkpO19GYihuZXcgYUdiKGQsYixjKSl9XG5mdW5jdGlvbiB0JGIoYSxiLGMpe3ZhciBkO2Q9KFFiKGEpLG5ldyBkbmIoYSkpO3IkYihuZXcgcyRiKGQsYixjKSl9XG5mdW5jdGlvbiB2QmQoYSxiLGMsZCxlLGYpe3dCZChhLGIsYyxmKTtFWWQoYSxkKTtGWWQoYSxlKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIFhoYihhLGIsYyxkKXthLmErPScnK3poYihiPT1udWxsP3Z2ZTpqZWIoYiksYyxkKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIEprYihhLGIpe3RoaXMuYT1hO0RrYi5jYWxsKHRoaXMsYSk7d0ZiKGIsYS5nYygpKTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIHhtYihhKXt0aGlzLmE9JEMoakoscnZlLDEsbWdiKCR3bmQuTWF0aC5tYXgoOCxhKSk8PDEsNSwxKX1cbmZ1bmN0aW9uIHQyYihhKXtyZXR1cm4gUkQoYW5iKGEsJEMoalIsV0FlLDEwLGEuYy5sZW5ndGgsMCwxKSksMTk5KX1cbmZ1bmN0aW9uIHMyYihhKXtyZXR1cm4gUkQoYW5iKGEsJEMoV1EsVkFlLDE4LGEuYy5sZW5ndGgsMCwxKSksNDgzKX1cbmZ1bmN0aW9uIEl5YihhKXtyZXR1cm4gIWEuYT9hLmM6YS5lLmxlbmd0aD09MD9hLmEuYTphLmEuYSsoJycrYS5lKX1cbmZ1bmN0aW9uIFJpYihhKXt3aGlsZShhLmQ+MCYmYS5hWy0tYS5kXT09MCk7YS5hW2EuZCsrXT09MCYmKGEuZT0wKX1cbmZ1bmN0aW9uIGZ2YihhKXtzRmIoYS5iLmIhPWEuZC5hKTthLmM9YS5iPWEuYi5iOy0tYS5hO3JldHVybiBhLmMuY31cbmZ1bmN0aW9uIHNSYyhhLGIsYyl7YS5hPWI7YS5jPWM7YS5iLmEuJGIoKTtYdWIoYS5kKTthRmIoYS5lLmEuYywwKX1cbmZ1bmN0aW9uIFo1YyhhLGIpe3ZhciBjO2EuZT1uZXcgUjVjO2M9UTJjKGIpO19tYihjLGEuYyk7JDVjKGEsYywwKX1cbmZ1bmN0aW9uIHpnZChhLGIsYyxkKXt2YXIgZTtlPW5ldyBIZ2Q7ZS5hPWI7ZS5iPWM7ZS5jPWQ7TXViKGEuYSxlKX1cbmZ1bmN0aW9uIEFnZChhLGIsYyxkKXt2YXIgZTtlPW5ldyBIZ2Q7ZS5hPWI7ZS5iPWM7ZS5jPWQ7TXViKGEuYixlKX1cbmZ1bmN0aW9uIFRiKGEsYixjKXtpZihhPDB8fGI8YXx8Yj5jKXt0aHJvdyBBZGIobmV3IHZlYihLYihhLGIsYykpKX19XG5mdW5jdGlvbiBQYihhLGIpe2lmKGE8MHx8YT49Yil7dGhyb3cgQWRiKG5ldyB2ZWIoSWIoYSxiKSkpfXJldHVybiBhfVxuZnVuY3Rpb24gcXooYil7aWYoISgnc3RhY2snIGluIGIpKXt0cnl7dGhyb3cgYn1jYXRjaChhKXt9fXJldHVybiBifVxuZnVuY3Rpb24gWmpjKGEpe1dqYygpO2lmKFpEKGEuZywxMCkpe3JldHVybiBSRChhLmcsMTApfXJldHVybiBudWxsfVxuZnVuY3Rpb24gbngoYSl7aWYoSWgoYSkuZGMoKSl7cmV0dXJuIGZhbHNlfUpoKGEsbmV3IHJ4KTtyZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIFhkYihhKXt2YXIgYjtpZihLZGIoYSkpe2I9YTtyZXR1cm4gYj09LTAuPzA6Yn1yZXR1cm4gRUQoYSl9XG5mdW5jdGlvbiBsa2IoYSxiKXtpZihaRChiLDQ0KSl7cmV0dXJuIEpkKGEuYSxSRChiLDQ0KSl9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gZ3NiKGEsYil7aWYoWkQoYiw0NCkpe3JldHVybiBKZChhLmEsUkQoYiw0NCkpfXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIHZ1YihhLGIpe2lmKFpEKGIsNDQpKXtyZXR1cm4gSmQoYS5hLFJEKGIsNDQpKX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBSQ2IoYSl7dmFyIGI7TENiKGEpO2I9bmV3IFByYjtpeGIoYS5hLG5ldyBmRGIoYikpO3JldHVybiBifVxuZnVuY3Rpb24gVmFlKCl7dmFyIGEsYixjO2I9KGM9KGE9bmV3IHMyZCxhKSxjKTtSbWIoUmFlLGIpO3JldHVybiBifVxuZnVuY3Rpb24gbURiKGEpe3ZhciBiO0xDYihhKTtiPW5ldyBsdGI7aXhiKGEuYSxuZXcgdURiKGIpKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGpEYihhLGIpe2lmKGEuYTw9YS5iKXtiLkRkKGEuYSsrKTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiB4emIoYSl7eXpiLmNhbGwodGhpcyxhLChjQWIoKSwkemIpLG51bGwsZmFsc2UsbnVsbCxmYWxzZSl9XG5mdW5jdGlvbiAkUmIoKXskUmI9Z2ViO1pSYj1zcygoVlJiKCksY0QoV0MoJE8sMSksandlLDQ4OSwwLFtVUmJdKSkpfVxuZnVuY3Rpb24gQ0hjKCl7Q0hjPWdlYjtCSGM9eXgoc2diKDEpLHNnYig0KSk7QUhjPXl4KHNnYigxKSxzZ2IoMikpfVxuZnVuY3Rpb24geVhjKGEsYil7cmV0dXJuIG5ldyBndWQoYixuamQoYWpkKGIuZSksYSxhKSwoR2ViKCksdHJ1ZSkpfVxuZnVuY3Rpb24gZnYoYSl7cmV0dXJuIG5ldyBjbmIoKGRrKGEsbHdlKSxkeihCZGIoQmRiKDUsYSksYS8xMHwwKSkpKX1cbmZ1bmN0aW9uIFdpKGEpe3JldHVybiBmayhhLmUuUmQoKS5nYygpKmEuYy5SZCgpLmdjKCksMjczLG5ldyBraihhKSl9XG5mdW5jdGlvbiB1MmIoYSl7cmV0dXJuIFJEKGFuYihhLCRDKHhSLFhBZSwxMixhLmMubGVuZ3RoLDAsMSkpLDIwNDIpfVxuZnVuY3Rpb24gQ09jKGEpe2RPYygpO3JldHVybiAhVzBiKGEpJiYhKCFXMGIoYSkmJmEuYy5pLmM9PWEuZC5pLmMpfVxuZnVuY3Rpb24gWV9jKGEsYil7Ul9jKCk7cmV0dXJuIFJEKG1RYihiLChoX2MoKSxXJGMpKSwxNykuYT49YS5nYygpfVxuZnVuY3Rpb24gcThiKGEsYil7dzhiKGIsYSk7eThiKGEuZCk7eThiKFJEKG1RYihhLCh5Q2MoKSxjQmMpKSwyMTQpKX1cbmZ1bmN0aW9uIHI4YihhLGIpe3o4YihiLGEpO0I4YihhLmQpO0I4YihSRChtUWIoYSwoeUNjKCksY0JjKSksMjE0KSl9XG5mdW5jdGlvbiAkMGIoYSxiLGMpeyEhYS5kJiZZbWIoYS5kLmUsYSk7YS5kPWI7ISFhLmQmJlFtYihhLmQuZSxjLGEpfVxuZnVuY3Rpb24galBiKGEsYixjKXtyZXR1cm4gYy5mLmMubGVuZ3RoPjA/eVBiKGEuYSxiLGMpOnlQYihhLmIsYixjKX1cbmZ1bmN0aW9uIFV6KGEsYixjKXt2YXIgZDtkPVN6KCk7dHJ5e3JldHVybiBSeihhLGIsYyl9ZmluYWxseXtWeihkKX19XG5mdW5jdGlvbiB3RGQoYSxiKXt2YXIgYyxkO2M9cUMoYSxiKTtkPW51bGw7ISFjJiYoZD1jLnBlKCkpO3JldHVybiBkfVxuZnVuY3Rpb24geURkKGEsYil7dmFyIGMsZDtjPXFDKGEsYik7ZD1udWxsOyEhYyYmKGQ9Yy5zZSgpKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIHhEZChhLGIpe3ZhciBjLGQ7Yz1KQihhLGIpO2Q9bnVsbDshIWMmJihkPWMuc2UoKSk7cmV0dXJuIGR9XG5mdW5jdGlvbiB6RGQoYSxiKXt2YXIgYyxkO2M9cUMoYSxiKTtkPW51bGw7ISFjJiYoZD1BRGQoYykpO3JldHVybiBkfVxuZnVuY3Rpb24gckVkKGEsYixjKXt2YXIgZDtkPXVEZChjKTtEbyhhLmcsZCxiKTtEbyhhLmksYixjKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIFVJYyhhLGIsYyl7dGhpcy5kPW5ldyBmSmModGhpcyk7dGhpcy5lPWE7dGhpcy5pPWI7dGhpcy5mPWN9XG5mdW5jdGlvbiBNayhhLGIsYyxkKXt0aGlzLmU9bnVsbDt0aGlzLmM9YTt0aGlzLmQ9Yjt0aGlzLmE9Yzt0aGlzLmI9ZH1cbmZ1bmN0aW9uIHVyYyhhLGIsYyxkKXtucmModGhpcyk7dGhpcy5jPWE7dGhpcy5lPWI7dGhpcy5mPWM7dGhpcy5iPWR9XG5mdW5jdGlvbiBNS2QoYSxiLGMsZCl7dGhpcy5kPWE7dGhpcy5uPWI7dGhpcy5nPWM7dGhpcy5vPWQ7dGhpcy5wPS0xfVxuZnVuY3Rpb24gVmMoYSxiLGMsZCl7cmV0dXJuIFpEKGMsNTkpP25ldyBLZyhhLGIsYyxkKTpuZXcgeWcoYSxiLGMsZCl9XG5mdW5jdGlvbiBncihhKXtpZihaRChhLDE2KSl7cmV0dXJuIFJEKGEsMTYpLmRjKCl9cmV0dXJuICFhLktjKCkuT2IoKX1cbmZ1bmN0aW9uIFdvKGEpe2lmKGEuZS5nIT1hLmIpe3Rocm93IEFkYihuZXcgSnJiKX1yZXR1cm4gISFhLmMmJmEuZD4wfVxuZnVuY3Rpb24gZXZiKGEpe3NGYihhLmIhPWEuZC5jKTthLmM9YS5iO2EuYj1hLmIuYTsrK2EuYTtyZXR1cm4gYS5jLmN9XG5mdW5jdGlvbiBpbWIoYSxiKXt1RmIoYik7YkQoYS5hLGEuYyxiKTthLmM9YS5jKzEmYS5hLmxlbmd0aC0xO21tYihhKX1cbmZ1bmN0aW9uIGhtYihhLGIpe3VGYihiKTthLmI9YS5iLTEmYS5hLmxlbmd0aC0xO2JEKGEuYSxhLmIsYik7bW1iKGEpfVxuZnVuY3Rpb24gX2plKGEpe3ZhciBiO2I9YS5HaCgpO3RoaXMuYT1aRChiLDcxKT9SRChiLDcxKS5JaSgpOmIuS2MoKX1cbmZ1bmN0aW9uIHB4KGEpe3JldHVybiBuZXcgU3diKERvYihSRChhLmEubWQoKSwxNikuZ2MoKSxhLmEubGQoKSksMTYpfVxuZnVuY3Rpb24gQWJkKCl7QWJkPWdlYjt6YmQ9c3MoKHNiZCgpLGNEKFdDKE0xLDEpLGp3ZSw0OTAsMCxbcmJkXSkpKX1cbmZ1bmN0aW9uIEpiZCgpe0piZD1nZWI7SWJkPXNzKChDYmQoKSxjRChXQyhOMSwxKSxqd2UsNTU4LDAsW0JiZF0pKSl9XG5mdW5jdGlvbiBpZGQoKXtpZGQ9Z2ViO2hkZD1zcygoX2NkKCksY0QoV0MoVjEsMSksandlLDUzOSwwLFskY2RdKSkpfVxuZnVuY3Rpb24gWCRiKCl7VSRiKCk7cmV0dXJuIGNEKFdDKENRLDEpLGp3ZSwzODksMCxbVCRiLFIkYixRJGIsUyRiXSl9XG5mdW5jdGlvbiBoQWIoKXtjQWIoKTtyZXR1cm4gY0QoV0MoQUwsMSksandlLDMwNCwwLFskemIsX3piLGFBYixiQWJdKX1cbmZ1bmN0aW9uIExQYigpe0lQYigpO3JldHVybiBjRChXQyhETywxKSxqd2UsMzMyLDAsW0ZQYixFUGIsR1BiLEhQYl0pfVxuZnVuY3Rpb24gTFJiKCl7SVJiKCk7cmV0dXJuIGNEKFdDKFdPLDEpLGp3ZSw0MDYsMCxbRlJiLEVSYixHUmIsSFJiXSl9XG5mdW5jdGlvbiBwT2IoKXttT2IoKTtyZXR1cm4gY0QoV0MoaE8sMSksandlLDQxNywwLFtsT2IsaU9iLGpPYixrT2JdKX1cbmZ1bmN0aW9uIHVaYigpe25aYigpO3JldHVybiBjRChXQyhsUSwxKSxqd2UsNDE2LDAsW2paYixtWmIsa1piLGxaYl0pfVxuZnVuY3Rpb24gaG5jKCl7ZW5jKCk7cmV0dXJuIGNEKFdDKExWLDEpLGp3ZSw0MjEsMCxbYW5jLGJuYyxjbmMsZG5jXSl9XG5mdW5jdGlvbiB6ZWMoKXt2ZWMoKTtyZXR1cm4gY0QoV0MocVQsMSksandlLDM3MSwwLFt1ZWMsc2VjLHRlYyxyZWNdKX1cbmZ1bmN0aW9uIEJEYygpe3dEYygpO3JldHVybiBjRChXQyh0WCwxKSxqd2UsMjAzLDAsW3VEYyx2RGMsdERjLHNEY10pfVxuZnVuY3Rpb24gbkVjKCl7a0VjKCk7cmV0dXJuIGNEKFdDKHdYLDEpLGp3ZSwyODQsMCxbaEVjLGdFYyxpRWMsakVjXSl9XG5mdW5jdGlvbiBVbmMoYSl7dmFyIGI7cmV0dXJuIGEuaj09KHFwZCgpLG5wZCkmJihiPVZuYyhhKSxDc2IoYixYb2QpKX1cbmZ1bmN0aW9uIHFoYyhhLGIpe3ZhciBjO2M9Yi5hO1kwYihjLGIuYy5kKTtaMGIoYyxiLmQuZCk7Q2pkKGMuYSxhLm4pfVxuZnVuY3Rpb24gXzViKGEsYil7dmFyIGM7Yz1SRChjdWIoYS5iLGIpLDY3KTshYyYmKGM9bmV3IFl1Yik7cmV0dXJuIGN9XG5mdW5jdGlvbiAkamMoYSl7V2pjKCk7aWYoWkQoYS5nLDE1NCkpe3JldHVybiBSRChhLmcsMTU0KX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGdSYyhhKXthLmE9bnVsbDthLmU9bnVsbDthRmIoYS5iLmMsMCk7YUZiKGEuZi5jLDApO2EuYz1udWxsfVxuZnVuY3Rpb24gT3ZjKCl7T3ZjPWdlYjtNdmM9bmV3IFB2YyhLeWUsMCk7TnZjPW5ldyBQdmMoJ1RPUF9MRUZUJywxKX1cbmZ1bmN0aW9uIHNOYygpe3NOYz1nZWI7ck5jPW5ldyB0TmMoJ1VQUEVSJywwKTtxTmM9bmV3IHROYygnTE9XRVInLDEpfVxuZnVuY3Rpb24gbldjKGEsYil7cmV0dXJuIGNqZChuZXcgcmpkKGIuZS5hK2IuZi5hLzIsYi5lLmIrYi5mLmIvMiksYSl9XG5mdW5jdGlvbiB3cWMoYSxiKXtyZXR1cm4gUkQoTHZiKEpEYihSRChRYyhhLmssYiksMTUpLk9jKCksbHFjKSksMTEzKX1cbmZ1bmN0aW9uIHhxYyhhLGIpe3JldHVybiBSRChMdmIoS0RiKFJEKFFjKGEuayxiKSwxNSkuT2MoKSxscWMpKSwxMTMpfVxuZnVuY3Rpb24gY1djKCl7WVZjKCk7cmV0dXJuIGNEKFdDKEgkLDEpLGp3ZSw0MDUsMCxbVVZjLFZWYyxXVmMsWFZjXSl9XG5mdW5jdGlvbiB2X2MoKXtzX2MoKTtyZXR1cm4gY0QoV0MoSl8sMSksandlLDM1MywwLFtyX2MscF9jLHFfYyxvX2NdKX1cbmZ1bmN0aW9uIG41Yygpe2o1YygpO3JldHVybiBjRChXQyhNMCwxKSxqd2UsMzU0LDAsW2k1YyxnNWMsaDVjLGY1Y10pfVxuZnVuY3Rpb24gVHBkKCl7UXBkKCk7cmV0dXJuIGNEKFdDKEgzLDEpLGp3ZSwzODYsMCxbT3BkLFBwZCxOcGQsTXBkXSl9XG5mdW5jdGlvbiBUbmQoKXtQbmQoKTtyZXR1cm4gY0QoV0MoejMsMSksandlLDI5MSwwLFtPbmQsTG5kLE1uZCxObmRdKX1cbmZ1bmN0aW9uIF9tZCgpe1ltZCgpO3JldHVybiBjRChXQyh1MywxKSxqd2UsMjIzLDAsW1htZCxWbWQsVW1kLFdtZF0pfVxuZnVuY3Rpb24gSnJkKCl7R3JkKCk7cmV0dXJuIGNEKFdDKFIzLDEpLGp3ZSwzMjAsMCxbRnJkLENyZCxFcmQsRHJkXSl9XG5mdW5jdGlvbiB3dGQoKXt0dGQoKTtyZXR1cm4gY0QoV0MobjQsMSksandlLDQxNSwwLFtxdGQscnRkLHB0ZCxzdGRdKX1cbmZ1bmN0aW9uIEdJZChhKXtFSWQoKTtyZXR1cm4gVWpiKERJZCxhKT9SRChXamIoRElkLGEpLDM0MSkuUWcoKTpudWxsfVxuZnVuY3Rpb24gQXZkKGEsYixjKXtyZXR1cm4gYjwwP1J2ZChhLGMpOlJEKGMsNjkpLndrKCkuQmsoYSxhLmhpKCksYil9XG5mdW5jdGlvbiBzRWQoYSxiLGMpe3ZhciBkO2Q9dURkKGMpO0RvKGEuaixkLGIpO1pqYihhLmssYixjKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIHFFZChhLGIsYyl7dmFyIGQ7ZD11RGQoYyk7RG8oYS5kLGQsYik7WmpiKGEuZSxiLGMpO3JldHVybiBifVxuZnVuY3Rpb24gREdkKGEpe3ZhciBiLGM7Yj0oYnZkKCksYz1uZXcgcnpkLGMpOyEhYSYmcHpkKGIsYSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBXSGQoYSl7dmFyIGI7Yj1hLmFqKGEuaSk7YS5pPjAmJmhpYihhLmcsMCxiLDAsYS5pKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIExlZChhLGIpe3ZhciBjO2ZvcihjPWEuai5jLmxlbmd0aDtjPGI7YysrKXtSbWIoYS5qLGEuTmcoKSl9fVxuZnVuY3Rpb24gJEVjKGEsYixjLGQpe3ZhciBlO2U9ZFtiLmddW2MuZ107cmV0dXJuIEtmYihVRChtUWIoYS5hLGUpKSl9XG5mdW5jdGlvbiBRUmQoYSxiKXtQUmQoKTt2YXIgYztjPVJEKFdqYihPUmQsYSksNTcpO3JldHVybiAhY3x8Yy5mayhiKX1cbmZ1bmN0aW9uIHJLZChhKXtpZihhLnAhPTEpdGhyb3cgQWRiKG5ldyBjZ2IpO3JldHVybiBZZGIoYS5mKTw8MjQ+PjI0fVxuZnVuY3Rpb24gQUtkKGEpe2lmKGEucCE9MSl0aHJvdyBBZGIobmV3IGNnYik7cmV0dXJuIFlkYihhLmspPDwyND4+MjR9XG5mdW5jdGlvbiBHS2QoYSl7aWYoYS5wIT03KXRocm93IEFkYihuZXcgY2diKTtyZXR1cm4gWWRiKGEuayk8PDE2Pj4xNn1cbmZ1bmN0aW9uIHhLZChhKXtpZihhLnAhPTcpdGhyb3cgQWRiKG5ldyBjZ2IpO3JldHVybiBZZGIoYS5mKTw8MTY+PjE2fVxuZnVuY3Rpb24gV2liKGEsYil7aWYoYi5lPT0wfHxhLmU9PTApe3JldHVybiBPaWJ9cmV0dXJuIExqYigpLE1qYihhLGIpfVxuZnVuY3Rpb24gTmQoYSxiKXtyZXR1cm4gZEUoYik9PT1kRShhKT8nKHRoaXMgTWFwKSc6Yj09bnVsbD92dmU6amViKGIpfVxuZnVuY3Rpb24gTUZiKGEsYixjKXtyZXR1cm4gSmZiKFVEKFdkKHF0YihhLmYsYikpKSxVRChXZChxdGIoYS5mLGMpKSkpfVxuZnVuY3Rpb24gd2tjKGEsYixjKXt2YXIgZDtkPVJEKFdqYihhLmcsYyksNjApO1JtYihhLmEuYyxuZXcgUHRkKGIsZCkpfVxuZnVuY3Rpb24gU2xjKGEsYixjKXthLmk9MDthLmU9MDtpZihiPT1jKXtyZXR1cm59UmxjKGEsYixjKTtRbGMoYSxiLGMpfVxuZnVuY3Rpb24gclRjKGEsYixjLGQsZSl7dmFyIGY7Zj1tVGMoZSxjLGQpO1JtYihiLFRTYyhlLGYpKTt2VGMoYSxlLGIpfVxuZnVuY3Rpb24gSnJjKGEsYixjLGQsZSl7dGhpcy5pPWE7dGhpcy5hPWI7dGhpcy5lPWM7dGhpcy5qPWQ7dGhpcy5mPWV9XG5mdW5jdGlvbiBpVWIoYSxiKXtWVGIuY2FsbCh0aGlzKTt0aGlzLmE9YTt0aGlzLmI9YjtSbWIodGhpcy5hLmIsdGhpcyl9XG5mdW5jdGlvbiByVGIoYSl7dGhpcy5iPW5ldyBUc2I7dGhpcy5jPW5ldyBUc2I7dGhpcy5kPW5ldyBUc2I7dGhpcy5hPWF9XG5mdW5jdGlvbiBEeChhLGIpe3ZhciBjO2M9bmV3IGNpYjthLkdkKGMpO2MuYSs9Jy4uJztiLkhkKGMpO3JldHVybiBjLmF9XG5mdW5jdGlvbiBGc2QoYSxiKXt2YXIgYztjPWI7d2hpbGUoYyl7WmlkKGEsYy5pLGMuaik7Yz12Q2QoYyl9cmV0dXJuIGF9XG5mdW5jdGlvbiBwRWQoYSxiLGMpe3ZhciBkO2Q9dURkKGMpO1pqYihhLmIsZCxiKTtaamIoYS5jLGIsYyk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBLcihhKXt2YXIgYjtiPTA7d2hpbGUoYS5PYigpKXthLlBiKCk7Yj1CZGIoYiwxKX1yZXR1cm4gZHooYil9XG5mdW5jdGlvbiBva2UoYSxiKXtua2UoKTt2YXIgYztjPVJEKGEsNjkpLnZrKCk7SzZkKGMsYik7cmV0dXJuIGMueGwoYil9XG5mdW5jdGlvbiB0QyhkLGEsYil7aWYoYil7dmFyIGM9Yi5vZSgpO2QuYVthXT1jKGIpfWVsc2V7ZGVsZXRlIGQuYVthXX19XG5mdW5jdGlvbiB0QihhLGIpe3ZhciBjO2M9YS5xLmdldEhvdXJzKCk7YS5xLnNldEZ1bGxZZWFyKGIrT3dlKTttQihhLGMpfVxuZnVuY3Rpb24gS1NkKGEsYil7cmV0dXJuIFJEKGI9PW51bGw/V2QocXRiKGEuZixudWxsKSk6S3RiKGEuaSxiKSwyODgpfVxuZnVuY3Rpb24gaE9jKGEsYil7cmV0dXJuIGE9PShyM2IoKSxwM2IpJiZiPT1wM2I/NDphPT1wM2J8fGI9PXAzYj84OjMyfVxuZnVuY3Rpb24gY2dlKGEsYixjKXtyZXR1cm4gZGdlKGEsYixjLFpEKGIsMTAyKSYmKFJEKGIsMTkpLkJiJnR4ZSkhPTApfVxuZnVuY3Rpb24gamdlKGEsYixjKXtyZXR1cm4ga2dlKGEsYixjLFpEKGIsMTAyKSYmKFJEKGIsMTkpLkJiJnR4ZSkhPTApfVxuZnVuY3Rpb24gUWdlKGEsYixjKXtyZXR1cm4gUmdlKGEsYixjLFpEKGIsMTAyKSYmKFJEKGIsMTkpLkJiJnR4ZSkhPTApfVxuZnVuY3Rpb24gam1iKGEpe2lmKGEuYj09YS5jKXtyZXR1cm59YS5hPSRDKGpKLHJ2ZSwxLDgsNSwxKTthLmI9MDthLmM9MH1cbmZ1bmN0aW9uIE5zYihhKXtzRmIoYS5hPGEuYy5hLmxlbmd0aCk7YS5iPWEuYTtMc2IoYSk7cmV0dXJuIGEuYy5iW2EuYl19XG5mdW5jdGlvbiB0WWQoYSl7aWYoIWEubil7eVlkKGEpO2Eubj1uZXcgaCRkKGEsbzcsYSk7ellkKGEpfXJldHVybiBhLm59XG5mdW5jdGlvbiBvRmIoYSl7aWYoYTwwKXt0aHJvdyBBZGIobmV3IE1nYignTmVnYXRpdmUgYXJyYXkgc2l6ZTogJythKSl9fVxuZnVuY3Rpb24gTEIoZCxhLGIpe2lmKGIpe3ZhciBjPWIub2UoKTtiPWMoYil9ZWxzZXtiPXVuZGVmaW5lZH1kLmFbYV09Yn1cbmZ1bmN0aW9uIHlnYyhhLGIpe3NnYygpO3ZhciBjO2M9YS5qLmctYi5qLmc7aWYoYyE9MCl7cmV0dXJuIGN9cmV0dXJuIDB9XG5mdW5jdGlvbiBsX2QoYSxiKXtnaWIoKTtTdHJpbmcuZnJvbUNoYXJDb2RlKDEwKTtyZXR1cm4gV0dkKHhZZChhLmEpLGIpfVxuZnVuY3Rpb24gcV9kKGEsYil7Z2liKCk7U3RyaW5nLmZyb21DaGFyQ29kZSgxMCk7cmV0dXJuIFdHZCh4WWQoYS5hKSxiKX1cbmZ1bmN0aW9uIGFqYihhLGIpe1BpYigpO2NqYi5jYWxsKHRoaXMsYSwxLGNEKFdDKGtFLDEpLFB3ZSwyOCwxNSxbYl0pKX1cbmZ1bmN0aW9uIEt0ZShhLGIpe1ZzZSgpO1dzZS5jYWxsKHRoaXMsYSk7dGhpcy5hPWI7dGhpcy5jPS0xO3RoaXMuYj0tMX1cbmZ1bmN0aW9uIEwzZChhLGIsYyxkKXtLS2QuY2FsbCh0aGlzLDEsYyxkKTtKM2QodGhpcyk7dGhpcy5jPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBNM2QoYSxiLGMsZCl7TEtkLmNhbGwodGhpcywxLGMsZCk7SjNkKHRoaXMpO3RoaXMuYz1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gbGxlKGEsYixjLGQsZSxmLGcpe05LZC5jYWxsKHRoaXMsYixkLGUsZixnKTt0aGlzLmM9YTt0aGlzLmE9Y31cbmZ1bmN0aW9uIGo3ZChhLGIsYyl7dGhpcy5lPWE7dGhpcy5hPWpKO3RoaXMuYj1wamUoYik7dGhpcy5jPWI7dGhpcy5kPWN9XG5mdW5jdGlvbiBYbyhhKXt0aGlzLmU9YTt0aGlzLmM9dGhpcy5lLmE7dGhpcy5iPXRoaXMuZS5nO3RoaXMuZD10aGlzLmUuaX1cbmZ1bmN0aW9uIFF0YihhKXt0aGlzLmQ9YTt0aGlzLmI9dGhpcy5kLmEuZW50cmllcygpO3RoaXMuYT10aGlzLmIubmV4dCgpfVxuZnVuY3Rpb24gTjlkKGEpe3RoaXMuYz1hO3RoaXMuYT1SRChXVmQoYSksMTU2KTt0aGlzLmI9dGhpcy5hLmprKCkud2koKX1cbmZ1bmN0aW9uIGd1Yigpe1RzYi5jYWxsKHRoaXMpO190Yih0aGlzKTt0aGlzLmQuYj10aGlzLmQ7dGhpcy5kLmE9dGhpcy5kfVxuZnVuY3Rpb24gUHViKGEsYixjLGQpe3ZhciBlO2U9bmV3IHN2YjtlLmM9YjtlLmI9YztlLmE9ZDtkLmI9Yy5hPWU7KythLmJ9XG5mdW5jdGlvbiBVU2QoYSxiKXt2YXIgYztyZXR1cm4gYz1iIT1udWxsP1hqYihhLGIpOldkKHF0YihhLmYsYikpLGZFKGMpfVxuZnVuY3Rpb24gZFRkKGEsYil7dmFyIGM7cmV0dXJuIGM9YiE9bnVsbD9YamIoYSxiKTpXZChxdGIoYS5mLGIpKSxmRShjKX1cbmZ1bmN0aW9uIHpEYihhLGIpe3ZhciBjO3JldHVybiBiLmIuS2IoTERiKGEsYi5jLlhlKCksKGM9bmV3IE9FYihiKSxjKSkpfVxuZnVuY3Rpb24gR25iKGEsYil7dmFyIGM7b0ZiKGIpO3JldHVybiBjPWEuc2xpY2UoMCxiKSxjLmxlbmd0aD1iLGREKGMsYSl9XG5mdW5jdGlvbiBScWIoYSxiKXt2YXIgYztmb3IoYz0wO2M8YjsrK2Mpe2JEKGEsYyxuZXcgYnJiKFJEKGFbY10sNDQpKSl9fVxuZnVuY3Rpb24gVGliKGEsYil7dmFyIGM7Zm9yKGM9YS5kLTE7Yz49MCYmYS5hW2NdPT09YltjXTtjLS0pO3JldHVybiBjPDB9XG5mdW5jdGlvbiBYeChhKXt2YXIgYjtpZihhKXtyZXR1cm4gbmV3IEt1YihhKX1iPW5ldyBJdWI7X3EoYixhKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIG5tYyhhLGIpe3ZhciBjLGQ7ZD1mYWxzZTtkb3tjPXFtYyhhLGIpO2Q9ZHxjfXdoaWxlKGMpO3JldHVybiBkfVxuZnVuY3Rpb24gVnooYSl7YSYmYUEoKCR6KCksWnopKTstLU56O2lmKGEpe2lmKFB6IT0tMSl7WHooUHopO1B6PS0xfX19XG5mdW5jdGlvbiBQd2IoYSl7SHdiKCk7TXdiKHRoaXMsWWRiKENkYihUZGIoYSwyNCksUHhlKSksWWRiKENkYihhLFB4ZSkpKX1cbmZ1bmN0aW9uIElIYigpe0lIYj1nZWI7SEhiPXNzKChESGIoKSxjRChXQyh1TiwxKSxqd2UsNDM2LDAsW0NIYixCSGJdKSkpfVxuZnVuY3Rpb24gUUhiKCl7UUhiPWdlYjtQSGI9c3MoKExIYigpLGNEKFdDKHZOLDEpLGp3ZSw0MzUsMCxbSkhiLEtIYl0pKSl9XG5mdW5jdGlvbiBZVWIoKXtZVWI9Z2ViO1hVYj1zcygoVFViKCksY0QoV0MoQlAsMSksandlLDQzMiwwLFtSVWIsU1ViXSkpKX1cbmZ1bmN0aW9uIFU4Yigpe1U4Yj1nZWI7VDhiPXNzKChQOGIoKSxjRChXQyh2UywxKSxqd2UsNTE3LDAsW084YixOOGJdKSkpfVxuZnVuY3Rpb24gVHZjKCl7VHZjPWdlYjtTdmM9c3MoKE92YygpLGNEKFdDKGxYLDEpLGp3ZSw0MjksMCxbTXZjLE52Y10pKSl9XG5mdW5jdGlvbiBkdWMoKXtkdWM9Z2ViO2N1Yz1zcygoJHRjKCksY0QoV0MoY1gsMSksandlLDQyOCwwLFtZdGMsWnRjXSkpKX1cbmZ1bmN0aW9uIEh1Yygpe0h1Yz1nZWI7R3VjPXNzKChDdWMoKSxjRChXQyhmWCwxKSxqd2UsNDg4LDAsW0J1YyxBdWNdKSkpfVxuZnVuY3Rpb24geEVjKCl7eEVjPWdlYjt3RWM9c3MoKHNFYygpLGNEKFdDKHhYLDEpLGp3ZSw0MzAsMCxbcUVjLHJFY10pKSl9XG5mdW5jdGlvbiB4TmMoKXt4TmM9Z2ViO3dOYz1zcygoc05jKCksY0QoV0MoTVksMSksandlLDUzMSwwLFtyTmMscU5jXSkpKX1cbmZ1bmN0aW9uIG90Yygpe290Yz1nZWI7bnRjPXNzKChqdGMoKSxjRChXQygkVywxKSxqd2UsNDMxLDAsW2h0YyxpdGNdKSkpfVxuZnVuY3Rpb24gRl9jKCl7Rl9jPWdlYjtFX2M9c3MoKEFfYygpLGNEKFdDKEtfLDEpLGp3ZSw0MzMsMCxbel9jLHlfY10pKSl9XG5mdW5jdGlvbiBGMmMoKXtGMmM9Z2ViO0UyYz1zcygoeDJjKCksY0QoV0MoczAsMSksandlLDUwMSwwLFt2MmMsdzJjXSkpKX1cbmZ1bmN0aW9uIEJRYygpe0JRYz1nZWI7QVFjPXNzKCh3UWMoKSxjRChXQyhGWiwxKSxqd2UsNTIzLDAsW3ZRYyx1UWNdKSkpfVxuZnVuY3Rpb24gSlFjKCl7SlFjPWdlYjtJUWM9c3MoKEVRYygpLGNEKFdDKEdaLDEpLGp3ZSw1MjIsMCxbQ1FjLERRY10pKSl9XG5mdW5jdGlvbiBrVGMoKXtrVGM9Z2ViO2pUYz1zcygoZlRjKCksY0QoV0MoYiQsMSksandlLDUyOCwwLFtlVGMsZFRjXSkpKX1cbmZ1bmN0aW9uIGlWYygpe2lWYz1nZWI7aFZjPXNzKChkVmMoKSxjRChXQyh3JCwxKSxqd2UsNDY1LDAsW2JWYyxjVmNdKSkpfVxuZnVuY3Rpb24gYzRjKCl7YzRjPWdlYjtiNGM9c3MoKFkzYygpLGNEKFdDKEgwLDEpLGp3ZSw0MzQsMCxbVzNjLFgzY10pKSl9XG5mdW5jdGlvbiBIOGMoKXtIOGM9Z2ViO0c4Yz1zcygoejhjKCksY0QoV0MobDEsMSksandlLDQ5MSwwLFt4OGMseThjXSkpKX1cbmZ1bmN0aW9uIEo5Yygpe0o5Yz1nZWI7STljPXNzKChCOWMoKSxjRChXQyh0MSwxKSxqd2UsNDkyLDAsW3o5YyxBOWNdKSkpfVxuZnVuY3Rpb24gUmJkKCl7UmJkPWdlYjtRYmQ9c3MoKE1iZCgpLGNEKFdDKE8xLDEpLGp3ZSw0MzgsMCxbTGJkLEtiZF0pKSl9XG5mdW5jdGlvbiB0ZGQoKXt0ZGQ9Z2ViO3NkZD1zcygobGRkKCksY0QoV0MoVzEsMSksandlLDQzNywwLFtrZGQsamRkXSkpKX1cbmZ1bmN0aW9uIEVxZCgpe0VxZD1nZWI7RHFkPXNzKCh1cWQoKSxjRChXQyhNMywxKSxqd2UsMzQ3LDAsW3NxZCx0cWRdKSkpfVxuZnVuY3Rpb24gSW1kKCl7Q21kKCk7cmV0dXJuIGNEKFdDKHMzLDEpLGp3ZSw4OCwwLFtBbWQsem1kLHltZCx4bWQsQm1kXSl9XG5mdW5jdGlvbiB4cGQoKXtxcGQoKTtyZXR1cm4gY0QoV0MoRTMsMSksTkFlLDY0LDAsW29wZCxZb2QsWG9kLG5wZCxwcGRdKX1cbmZ1bmN0aW9uIExTZChhLGIsYyl7cmV0dXJuIFJEKGI9PW51bGw/cnRiKGEuZixudWxsLGMpOkx0YihhLmksYixjKSwyODgpfVxuZnVuY3Rpb24gTDZiKGEpe3JldHVybiAoYS5rPT0ocjNiKCkscDNiKXx8YS5rPT1tM2IpJiZuUWIoYSwoWXdjKCksY3djKSl9XG5mdW5jdGlvbiBiVWIoYSl7cmV0dXJuICEhYS5jJiYhIWEuZD9rVWIoYS5jKSsnLT4nK2tVYihhLmQpOidlXycra0ZiKGEpfVxuZnVuY3Rpb24geGdiKGEsYil7dmFyIGMsZDt1RmIoYik7Zm9yKGQ9YS5LYygpO2QuT2IoKTspe2M9ZC5QYigpO2IuQ2QoYyl9fVxuZnVuY3Rpb24gakVkKGEsYil7dmFyIGM7Yz1uZXcgdUM7cURkKGMsJ3gnLGIuYSk7cURkKGMsJ3knLGIuYik7b0RkKGEsYyl9XG5mdW5jdGlvbiBtRWQoYSxiKXt2YXIgYztjPW5ldyB1QztxRGQoYywneCcsYi5hKTtxRGQoYywneScsYi5iKTtvRGQoYSxjKX1cbmZ1bmN0aW9uIEdzZChhLGIpe3ZhciBjO2M9Yjt3aGlsZShjKXtaaWQoYSwtYy5pLC1jLmopO2M9dkNkKGMpfXJldHVybiBhfVxuZnVuY3Rpb24gWkxjKGEsYil7dmFyIGMsZDtjPWI7ZD0wO3doaWxlKGM+MCl7ZCs9YS5hW2NdO2MtPWMmLWN9cmV0dXJuIGR9XG5mdW5jdGlvbiAkbWIoYSxiLGMpe3ZhciBkO2Q9KHRGYihiLGEuYy5sZW5ndGgpLGEuY1tiXSk7YS5jW2JdPWM7cmV0dXJuIGR9XG5mdW5jdGlvbiB1SWMoYSxiLGMpe2EuYS5jLmxlbmd0aD0wO3lJYyhhLGIsYyk7YS5hLmMubGVuZ3RoPT0wfHxySWMoYSxiKX1cbmZ1bmN0aW9uIHdvKGEpe2EuaT0wO01uYihhLmIsbnVsbCk7TW5iKGEuYyxudWxsKTthLmE9bnVsbDthLmU9bnVsbDsrK2EuZ31cbmZ1bmN0aW9uIGdCYigpe2dCYj1nZWI7ZEJiPXRydWU7YkJiPWZhbHNlO2NCYj1mYWxzZTtmQmI9ZmFsc2U7ZUJiPWZhbHNlfVxuZnVuY3Rpb24gb0JiKGEpe2dCYigpO2lmKGRCYil7cmV0dXJufXRoaXMuYz1hO3RoaXMuZT10cnVlO3RoaXMuYT1uZXcgYm5ifVxuZnVuY3Rpb24ga0RiKGEsYil7dGhpcy5jPTA7dGhpcy5iPWI7dHhiLmNhbGwodGhpcyxhLDE3NDkzKTt0aGlzLmE9dGhpcy5jfVxuZnVuY3Rpb24gU19iKGEpe1BfYigpO0EkYih0aGlzKTt0aGlzLmE9bmV3IFl1YjtRX2IodGhpcyxhKTtNdWIodGhpcy5hLGEpfVxuZnVuY3Rpb24gbV9iKCl7UG1iKHRoaXMpO3RoaXMuYj1uZXcgcmpkKG94ZSxveGUpO3RoaXMuYT1uZXcgcmpkKHB4ZSxweGUpfVxuZnVuY3Rpb24gejhjKCl7ejhjPWdlYjt4OGM9bmV3IEI4YyhDQmUsMCk7eThjPW5ldyBCOGMoJ1RBUkdFVF9XSURUSCcsMSl9XG5mdW5jdGlvbiB5RGIoYSxiKXtyZXR1cm4gKE1DYihhKSxRRGIobmV3IFNEYihhLG5ldyBoRWIoYixhLmEpKSkpLkJkKHdEYil9XG5mdW5jdGlvbiB2WGIoKXtzWGIoKTtyZXR1cm4gY0QoV0MoVVAsMSksandlLDM2NywwLFtuWGIsb1hiLHBYYixxWGIsclhiXSl9XG5mdW5jdGlvbiBGbmMoKXtCbmMoKTtyZXR1cm4gY0QoV0MoVFYsMSksandlLDM3NSwwLFt4bmMsem5jLEFuYyx5bmMsd25jXSl9XG5mdW5jdGlvbiBWdGMoKXtQdGMoKTtyZXR1cm4gY0QoV0MoYlgsMSksandlLDM0OCwwLFtMdGMsS3RjLE50YyxPdGMsTXRjXSl9XG5mdW5jdGlvbiBQRGMoKXtKRGMoKTtyZXR1cm4gY0QoV0ModVgsMSksandlLDMyMywwLFtJRGMsRkRjLEdEYyxFRGMsSERjXSl9XG5mdW5jdGlvbiBmeGMoKXtjeGMoKTtyZXR1cm4gY0QoV0MobVgsMSksandlLDE3MSwwLFtieGMsWndjLCR3Yyxfd2MsYXhjXSl9XG5mdW5jdGlvbiBrM2MoKXtnM2MoKTtyZXR1cm4gY0QoV0MoeDAsMSksandlLDM2OCwwLFtlM2MsYjNjLGYzYyxjM2MsZDNjXSl9XG5mdW5jdGlvbiB2YWQoKXtzYWQoKTtyZXR1cm4gY0QoV0MoeDEsMSksandlLDM3MywwLFtvYWQsbmFkLHFhZCxwYWQscmFkXSl9XG5mdW5jdGlvbiAkYmQoKXtYYmQoKTtyZXR1cm4gY0QoV0MoUDEsMSksandlLDMyNCwwLFtTYmQsVGJkLFdiZCxVYmQsVmJkXSl9XG5mdW5jdGlvbiBfaGQoKXtZaGQoKTtyZXR1cm4gY0QoV0MoZDMsMSksandlLDE3MCwwLFtXaGQsVmhkLFRoZCxYaGQsVWhkXSl9XG5mdW5jdGlvbiBzb2QoKXtwb2QoKTtyZXR1cm4gY0QoV0MoQjMsMSksandlLDI1NiwwLFttb2Qsb29kLGtvZCxsb2Qsbm9kXSl9XG5mdW5jdGlvbiBUeihiKXtReigpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBVeihiLHRoaXMsYXJndW1lbnRzKTt2YXIgYX19XG5mdW5jdGlvbiBXMGIoYSl7aWYoIWEuY3x8IWEuZCl7cmV0dXJuIGZhbHNlfXJldHVybiAhIWEuYy5pJiZhLmMuaT09YS5kLml9XG5mdW5jdGlvbiBOZmQoYSxiKXtpZihaRChiLDE0Mykpe3JldHVybiBsaGIoYS5jLFJEKGIsMTQzKS5jKX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiB5WWQoYSl7aWYoIWEudCl7YS50PW5ldyB3JGQoYSk7VkdkKG5ldyBDZGUoYSksMCxhLnQpfXJldHVybiBhLnR9XG5mdW5jdGlvbiBqTmQoYSl7dGhpcy5iPWE7ZE1kLmNhbGwodGhpcyxhKTt0aGlzLmE9UkQoWXdkKHRoaXMuYi5hLDQpLDEyOSl9XG5mdW5jdGlvbiBzTmQoYSl7dGhpcy5iPWE7eU1kLmNhbGwodGhpcyxhKTt0aGlzLmE9UkQoWXdkKHRoaXMuYi5hLDQpLDEyOSl9XG5mdW5jdGlvbiBRM2QoYSxiLGMsZCxlKXtPS2QuY2FsbCh0aGlzLGIsZCxlKTtKM2QodGhpcyk7dGhpcy5jPWE7dGhpcy5iPWN9XG5mdW5jdGlvbiBWM2QoYSxiLGMsZCxlKXtLS2QuY2FsbCh0aGlzLGIsZCxlKTtKM2QodGhpcyk7dGhpcy5jPWE7dGhpcy5hPWN9XG5mdW5jdGlvbiBaM2QoYSxiLGMsZCxlKXtMS2QuY2FsbCh0aGlzLGIsZCxlKTtKM2QodGhpcyk7dGhpcy5jPWE7dGhpcy5hPWN9XG5mdW5jdGlvbiBnNGQoYSxiLGMsZCxlKXtPS2QuY2FsbCh0aGlzLGIsZCxlKTtKM2QodGhpcyk7dGhpcy5jPWE7dGhpcy5hPWN9XG5mdW5jdGlvbiB1Z2QoYSxiKXt2YXIgYztjPVJEKGN1YihhLmQsYiksMjMpO3JldHVybiBjP2M6UkQoY3ViKGEuZSxiKSwyMyl9XG5mdW5jdGlvbiBCbGIoYSxiKXt2YXIgYyxkO2M9Yi5sZCgpO2Q9YS5GZShjKTtyZXR1cm4gISFkJiZGdmIoZC5lLGIubWQoKSl9XG5mdW5jdGlvbiBtZShhLGIpe3ZhciBjO2M9Yi5sZCgpO3JldHVybiBuZXcgZ3AoYyxhLmUucGMoYyxSRChiLm1kKCksMTYpKSl9XG5mdW5jdGlvbiBwdGIoYSxiKXt2YXIgYztjPWEuYS5nZXQoYik7cmV0dXJuIGM9PW51bGw/JEMoakoscnZlLDEsMCw1LDEpOmN9XG5mdW5jdGlvbiBraGIoYSl7dmFyIGI7Yj1hLmxlbmd0aDtyZXR1cm4gbGhiKHN4ZS5zdWJzdHIoc3hlLmxlbmd0aC1iLGIpLGEpfVxuZnVuY3Rpb24gaHMoYSl7aWYoZ3MoYSkpe2EuYz1hLmE7cmV0dXJuIGEuYS5QYigpfWVsc2V7dGhyb3cgQWRiKG5ldyBEdmIpfX1cbmZ1bmN0aW9uICRpYihhLGIpe2lmKGI9PTB8fGEuZT09MCl7cmV0dXJuIGF9cmV0dXJuIGI+MD90amIoYSxiKTpxamIoYSwtYil9XG5mdW5jdGlvbiBaaWIoYSxiKXtpZihiPT0wfHxhLmU9PTApe3JldHVybiBhfXJldHVybiBiPjA/cWpiKGEsYik6dGpiKGEsLWIpfVxuZnVuY3Rpb24gRGViKGEpe0JlYi5jYWxsKHRoaXMsYT09bnVsbD92dmU6amViKGEpLFpEKGEsODIpP1JEKGEsODIpOm51bGwpfVxuZnVuY3Rpb24gWTVkKGEpe3ZhciBiO2lmKCFhLmMpe2I9YS5yO1pEKGIsOTApJiYoYS5jPVJEKGIsMjkpKX1yZXR1cm4gYS5jfVxuZnVuY3Rpb24gczBiKGEpe3ZhciBiO2I9bmV3IGExYjtrUWIoYixhKTtwUWIoYiwoeUNjKCksUkFjKSxudWxsKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGxlYyhhKXt2YXIgYixjO2I9YS5jLmk7Yz1hLmQuaTtyZXR1cm4gYi5rPT0ocjNiKCksbTNiKSYmYy5rPT1tM2J9XG5mdW5jdGlvbiBmRChhKXt2YXIgYixjLGQ7Yj1hJmR4ZTtjPWE+PjIyJmR4ZTtkPWE8MD9leGU6MDtyZXR1cm4gaEQoYixjLGQpfVxuZnVuY3Rpb24gS3koYSl7dmFyIGIsYyxkLGU7Zm9yKGM9YSxkPTAsZT1jLmxlbmd0aDtkPGU7KytkKXtiPWNbZF07SUNiKGIpfX1cbmZ1bmN0aW9uIFRjKGEsYil7dmFyIGMsZDtjPVJEKFl2KGEuYyxiKSwxNik7aWYoYyl7ZD1jLmdjKCk7Yy4kYigpO2EuZC09ZH19XG5mdW5jdGlvbiBGdmQoYSxiLGMpe3ZhciBkO3JldHVybiBkPWEuSWgoYiksZD49MD9hLkxoKGQsYyx0cnVlKTpRdmQoYSxiLGMpfVxuZnVuY3Rpb24gQVhjKGEsYixjKXtyZXR1cm4gUWZiKGNqZChqV2MoYSksYWpkKGIuYikpLGNqZChqV2MoYSksYWpkKGMuYikpKX1cbmZ1bmN0aW9uIEJYYyhhLGIsYyl7cmV0dXJuIFFmYihjamQoaldjKGEpLGFqZChiLmUpKSxjamQoaldjKGEpLGFqZChjLmUpKSl9XG5mdW5jdGlvbiBLYWQoYSxiKXtyZXR1cm4gJHduZC5NYXRoLm1pbihiamQoYi5hLGEuZC5kLmMpLGJqZChiLmIsYS5kLmQuYykpfVxuZnVuY3Rpb24gTEhkKGEsYil7YS5faShhLmkrMSk7TUhkKGEsYS5pLGEuWmkoYS5pLGIpKTthLk1pKGEuaSsrLGIpO2EuTmkoKX1cbmZ1bmN0aW9uIE9IZChhKXt2YXIgYixjOysrYS5qO2I9YS5nO2M9YS5pO2EuZz1udWxsO2EuaT0wO2EuT2koYyxiKTthLk5pKCl9XG5mdW5jdGlvbiB5a2UoYSxiLGMpe3ZhciBkO2Q9bmV3IHprZShhLmEpO0xkKGQsYS5hLmEpO3J0YihkLmYsYixjKTthLmEuYT1kfVxuZnVuY3Rpb24gbUtiKGEsYixjLGQpe3ZhciBlO2ZvcihlPTA7ZTxqS2I7ZSsrKXtkS2IoYS5hW2VdW2IuZ10sYyxkW2IuZ10pfX1cbmZ1bmN0aW9uIGxLYihhLGIsYyxkKXt2YXIgZTtmb3IoZT0wO2U8aUtiO2UrKyl7ZUtiKGEuYVtiLmddW2VdLGMsZFtiLmddKX19XG5mdW5jdGlvbiBRYyhhLGIpe3ZhciBjO2M9UkQoYS5jLnhjKGIpLDE2KTshYyYmKGM9YS5pYyhiKSk7cmV0dXJuIGEucGMoYixjKX1cbmZ1bmN0aW9uIHZtKGEpe3ZhciBiO2I9KFFiKGEpLGE/bmV3IGRuYihhKTpjdihhLktjKCkpKTtFb2IoYik7cmV0dXJuIFBtKGIpfVxuZnVuY3Rpb24gZHYoYSl7dmFyIGIsYztRYihhKTtiPVp1KGEubGVuZ3RoKTtjPW5ldyBjbmIoYik7em9iKGMsYSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBIamIoYSxiLGMsZCl7dmFyIGU7ZT0kQyhrRSxQd2UsMjgsYiwxNSwxKTtJamIoZSxhLGIsYyxkKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIFNiKGEsYil7aWYoYTwwfHxhPmIpe3Rocm93IEFkYihuZXcgdmViKEpiKGEsYiwnaW5kZXgnKSkpfXJldHVybiBhfVxuZnVuY3Rpb24gWG1iKGEsYil7dmFyIGM7Yz0odEZiKGIsYS5jLmxlbmd0aCksYS5jW2JdKTskRWIoYS5jLGIsMSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBqaGIoYSxiKXt2YXIgYyxkO2M9KHVGYihhKSxhKTtkPSh1RmIoYiksYik7cmV0dXJuIGM9PWQ/MDpjPGQ/LTE6MX1cbmZ1bmN0aW9uIE9yYihhKXt2YXIgYjtiPWEuZSthLmY7aWYoaXNOYU4oYikmJlJmYihhLmQpKXtyZXR1cm4gYS5kfXJldHVybiBifVxuZnVuY3Rpb24gemMoYSl7YS5lPTM7YS5kPWEuWWIoKTtpZihhLmUhPTIpe2EuZT0wO3JldHVybiB0cnVlfXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIEd5YihhLGIpeyFhLmE/KGEuYT1uZXcgZGliKGEuZCkpOlpoYihhLmEsYS5iKTtXaGIoYS5hLGIpO3JldHVybiBhfVxuZnVuY3Rpb24gX2piKGEsYil7cmV0dXJuIGJFKGIpP2I9PW51bGw/c3RiKGEuZixudWxsKTpNdGIoYS5pLGIpOnN0YihhLmYsYil9XG5mdW5jdGlvbiBuRWIoYSxiKXtweGIuY2FsbCh0aGlzLGIuemQoKSxiLnlkKCkmLTYpO3VGYihhKTt0aGlzLmE9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIHRFYihhLGIpe3R4Yi5jYWxsKHRoaXMsYi56ZCgpLGIueWQoKSYtNik7dUZiKGEpO3RoaXMuYT1hO3RoaXMuYj1ifVxuZnVuY3Rpb24gekViKGEsYil7eHhiLmNhbGwodGhpcyxiLnpkKCksYi55ZCgpJi02KTt1RmIoYSk7dGhpcy5hPWE7dGhpcy5iPWJ9XG5mdW5jdGlvbiBNN2QoYSxiLGMpe3Q3ZC5jYWxsKHRoaXMsYyk7dGhpcy5iPWE7dGhpcy5jPWI7dGhpcy5kPShhOGQoKSwkN2QpfVxuZnVuY3Rpb24gT0tkKGEsYixjKXt0aGlzLmQ9YTt0aGlzLms9Yj8xOjA7dGhpcy5mPWM/MTowO3RoaXMubz0tMTt0aGlzLnA9MH1cbmZ1bmN0aW9uIGw0YihhKXt0aGlzLmM9YTt0aGlzLmE9bmV3IEFuYih0aGlzLmMuYSk7dGhpcy5iPW5ldyBBbmIodGhpcy5jLmIpfVxuZnVuY3Rpb24gZ1ViKCl7dGhpcy5lPW5ldyBibmI7dGhpcy5jPW5ldyBibmI7dGhpcy5kPW5ldyBibmI7dGhpcy5iPW5ldyBibmJ9XG5mdW5jdGlvbiBESWIoKXt0aGlzLmc9bmV3IEdJYjt0aGlzLmI9bmV3IEdJYjt0aGlzLmE9bmV3IGJuYjt0aGlzLms9bmV3IGJuYn1cbmZ1bmN0aW9uIElfYigpe3RoaXMuYT1uZXcgSiRiO3RoaXMuYj1uZXcgTiRiO3RoaXMuZD1uZXcgWl9iO3RoaXMuZT1uZXcgVl9ifVxuZnVuY3Rpb24ga25jKGEsYixjKXt0aGlzLmE9YTt0aGlzLmM9Yjt0aGlzLmQ9YztSbWIoYi5lLHRoaXMpO1JtYihjLmIsdGhpcyl9XG5mdW5jdGlvbiBzSWMoYSxiLGMpe3ZhciBkLGU7ZD0wO2ZvcihlPTA7ZTxiLmxlbmd0aDtlKyspe2QrPWEudGcoYltlXSxkLGMpfX1cbmZ1bmN0aW9uIG5NYyhhLGIpe3ZhciBjO2M9dE1jKGEsYik7YS5iPW5ldyBfTGMoYy5jLmxlbmd0aCk7cmV0dXJuIG1NYyhhLGMpfVxuZnVuY3Rpb24gcEIoYSxiKXt2YXIgYztjPWEucS5nZXRIb3VycygpKyhiLzYwfDApO2EucS5zZXRNaW51dGVzKGIpO21CKGEsYyl9XG5mdW5jdGlvbiBfV2MoYSl7dmFyIGI7Yj1hLmI7aWYoYi5iPT0wKXtyZXR1cm4gbnVsbH1yZXR1cm4gUkQoanUoYiwwKSw2NSkuYn1cbmZ1bmN0aW9uIFNyYyhhKXtpZihhLmEpe2lmKGEuZSl7cmV0dXJuIFNyYyhhLmUpfX1lbHNle3JldHVybiBhfXJldHVybiBudWxsfVxuZnVuY3Rpb24gbUljKGEsYil7aWYoYS5wPGIucCl7cmV0dXJuIDF9ZWxzZSBpZihhLnA+Yi5wKXtyZXR1cm4gLTF9cmV0dXJuIDB9XG5mdW5jdGlvbiBoWGQoYSl7dmFyIGI7aWYoIWEuYSl7Yj1hLnI7WkQoYiwxNTYpJiYoYS5hPVJEKGIsMTU2KSl9cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIGlPZChhLGIsYyl7dmFyIGQ7KythLmU7LS1hLmY7ZD1SRChhLmRbYl0uZ2QoYyksMTM2KTtyZXR1cm4gZC5tZCgpfVxuZnVuY3Rpb24gZmQoYSl7dmFyIGIsYztiPWEubGQoKTtjPVJEKGEubWQoKSwxNik7cmV0dXJuIGdrKGMuTmMoKSxuZXcgamgoYikpfVxuZnVuY3Rpb24gb2FlKGEsYil7aWYoVWpiKGEuYSxiKSl7X2piKGEuYSxiKTtyZXR1cm4gdHJ1ZX1lbHNle3JldHVybiBmYWxzZX19XG5mdW5jdGlvbiBVaShhLGIsYyl7UGIoYixhLmUuUmQoKS5nYygpKTtQYihjLGEuYy5SZCgpLmdjKCkpO3JldHVybiBhLmFbYl1bY119XG5mdW5jdGlvbiBfVWMoYSxiLGMpe3RoaXMuYT1hO3RoaXMuYj1iO3RoaXMuYz1jO1JtYihhLnQsdGhpcyk7Um1iKGIuaSx0aGlzKX1cbmZ1bmN0aW9uIGxnKGEsYixjLGQpe3RoaXMuZj1hO3RoaXMuZT1iO3RoaXMuZD1jO3RoaXMuYj1kO3RoaXMuYz0hZD9udWxsOmQuZH1cbmZ1bmN0aW9uIFlXYygpe3RoaXMuYj1uZXcgWXViO3RoaXMuYT1uZXcgWXViO3RoaXMuYj1uZXcgWXViO3RoaXMuYT1uZXcgWXVifVxuZnVuY3Rpb24gcmVlKCl7cmVlPWdlYjt2YXIgYSxiO3BlZT0oalRkKCksYj1uZXcgazFkLGIpO3FlZT0oYT1uZXcgbVhkLGEpfVxuZnVuY3Rpb24gVUNiKGEpe3ZhciBiO01DYihhKTtiPW5ldyAkQ2IoYSxhLmEuZSxhLmEuZHw0KTtyZXR1cm4gbmV3IFdDYihhLGIpfVxuZnVuY3Rpb24gQURiKGEpe3ZhciBiO0xDYihhKTtiPTA7d2hpbGUoYS5hLkJkKG5ldyBNRWIpKXtiPUJkYihiLDEpfXJldHVybiBifVxuZnVuY3Rpb24genhiKGEsYil7dUZiKGIpO2lmKGEuYzxhLmQpe2EuU2UoYixhLmMrKyk7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gY25iKGEpe1BtYih0aGlzKTttRmIoYT49MCwnSW5pdGlhbCBjYXBhY2l0eSBtdXN0IG5vdCBiZSBuZWdhdGl2ZScpfVxuZnVuY3Rpb24gcmlkKCl7cmlkPWdlYjtxaWQ9bmV3IGpHZCgnb3JnLmVjbGlwc2UuZWxrLmxhYmVscy5sYWJlbE1hbmFnZXInKX1cbmZ1bmN0aW9uIGllYygpe2llYz1nZWI7aGVjPW5ldyBrR2QoJ3NlcGFyYXRlTGF5ZXJDb25uZWN0aW9ucycsKHZlYygpLHVlYykpfVxuZnVuY3Rpb24gZlRjKCl7ZlRjPWdlYjtlVGM9bmV3IGdUYygnUkVHVUxBUicsMCk7ZFRjPW5ldyBnVGMoJ0NSSVRJQ0FMJywxKX1cbmZ1bmN0aW9uIE1iZCgpe01iZD1nZWI7TGJkPW5ldyBOYmQoJ0ZJWEVEJywwKTtLYmQ9bmV3IE5iZCgnQ0VOVEVSX05PREUnLDEpfVxuZnVuY3Rpb24ganRjKCl7anRjPWdlYjtodGM9bmV3IGt0YygnUVVBRFJBVElDJywwKTtpdGM9bmV3IGt0YygnU0NBTkxJTkUnLDEpfVxuZnVuY3Rpb24gQXRjKCl7QXRjPWdlYjt6dGM9c3MoKHN0YygpLGNEKFdDKF9XLDEpLGp3ZSwzMjIsMCxbcXRjLHB0YyxydGNdKSkpfVxuZnVuY3Rpb24gSnRjKCl7SnRjPWdlYjtJdGM9c3MoKEV0YygpLGNEKFdDKGFYLDEpLGp3ZSwzNTEsMCxbQnRjLER0YyxDdGNdKSkpfVxuZnVuY3Rpb24gb29jKCl7b29jPWdlYjtub2M9c3MoKGpvYygpLGNEKFdDKFVWLDEpLGp3ZSwzNzIsMCxbaW9jLGhvYyxnb2NdKSkpfVxuZnVuY3Rpb24gbXVjKCl7bXVjPWdlYjtsdWM9c3MoKGh1YygpLGNEKFdDKGRYLDEpLGp3ZSw0NjAsMCxbZnVjLGV1YyxndWNdKSkpfVxuZnVuY3Rpb24gQ3ZjKCl7Q3ZjPWdlYjtCdmM9c3MoKHh2YygpLGNEKFdDKGpYLDEpLGp3ZSwyOTksMCxbdnZjLHd2Yyx1dmNdKSkpfVxuZnVuY3Rpb24gTHZjKCl7THZjPWdlYjtLdmM9c3MoKEd2YygpLGNEKFdDKGtYLDEpLGp3ZSwzMTEsMCxbRXZjLEZ2YyxEdmNdKSkpfVxuZnVuY3Rpb24gckRjKCl7ckRjPWdlYjtxRGM9c3MoKGxEYygpLGNEKFdDKHNYLDEpLGp3ZSwzOTAsMCxbaURjLGpEYyxrRGNdKSkpfVxuZnVuY3Rpb24gUEVjKCl7UEVjPWdlYjtPRWM9c3MoKEtFYygpLGNEKFdDKHpYLDEpLGp3ZSwzODcsMCxbSEVjLElFYyxKRWNdKSkpfVxuZnVuY3Rpb24gWUVjKCl7WUVjPWdlYjtYRWM9c3MoKFRFYygpLGNEKFdDKEFYLDEpLGp3ZSwzNDksMCxbU0VjLFFFYyxSRWNdKSkpfVxuZnVuY3Rpb24gR0VjKCl7R0VjPWdlYjtGRWM9c3MoKEJFYygpLGNEKFdDKHlYLDEpLGp3ZSw0NjMsMCxbQUVjLHlFYyx6RWNdKSkpfVxuZnVuY3Rpb24gcUZjKCl7cUZjPWdlYjtwRmM9c3MoKGxGYygpLGNEKFdDKENYLDEpLGp3ZSwzNTAsMCxbaUZjLGpGYyxrRmNdKSkpfVxuZnVuY3Rpb24gekZjKCl7ekZjPWdlYjt5RmM9c3MoKHVGYygpLGNEKFdDKERYLDEpLGp3ZSwzNTIsMCxbdEZjLHJGYyxzRmNdKSkpfVxuZnVuY3Rpb24gSUZjKCl7SUZjPWdlYjtIRmM9c3MoKERGYygpLGNEKFdDKEVYLDEpLGp3ZSwzODgsMCxbQkZjLENGYyxBRmNdKSkpfVxuZnVuY3Rpb24gUVpjKCl7UVpjPWdlYjtQWmM9c3MoKExaYygpLGNEKFdDKEZfLDEpLGp3ZSwzOTIsMCxbS1pjLEpaYyxJWmNdKSkpfVxuZnVuY3Rpb24gbTRjKCl7bTRjPWdlYjtsNGM9c3MoKGc0YygpLGNEKFdDKEkwLDEpLGp3ZSwzOTMsMCxbZDRjLGU0YyxmNGNdKSkpfVxuZnVuY3Rpb24gejVjKCl7ejVjPWdlYjt5NWM9c3MoKHQ1YygpLGNEKFdDKE4wLDEpLGp3ZSwzMDAsMCxbcjVjLHM1YyxxNWNdKSkpfVxuZnVuY3Rpb24gazZjKCl7azZjPWdlYjtqNmM9c3MoKGY2YygpLGNEKFdDKFYwLDEpLGp3ZSw0NDUsMCxbYzZjLGQ2YyxlNmNdKSkpfVxuZnVuY3Rpb24gRjZjKCl7RjZjPWdlYjtFNmM9c3MoKHo2YygpLGNEKFdDKFowLDEpLGp3ZSw0NTYsMCxbdzZjLHk2Yyx4NmNdKSkpfVxuZnVuY3Rpb24gZTdjKCl7ZTdjPWdlYjtkN2M9c3MoKF82YygpLGNEKFdDKGExLDEpLGp3ZSwzOTQsMCxbWjZjLCQ2YyxZNmNdKSkpfVxuZnVuY3Rpb24gajljKCl7ajljPWdlYjtpOWM9c3MoKGI5YygpLGNEKFdDKG8xLDEpLGp3ZSw0MzksMCxbJDhjLGE5YyxfOGNdKSkpfVxuZnVuY3Rpb24gV0tjKCl7V0tjPWdlYjtWS2M9c3MoKFJLYygpLGNEKFdDKG5ZLDEpLGp3ZSw0NjQsMCxbT0tjLFBLYyxRS2NdKSkpfVxuZnVuY3Rpb24gSktiKCl7SktiPWdlYjtJS2I9c3MoKEVLYigpLGNEKFdDKE1OLDEpLGp3ZSw0NzEsMCxbQ0tiLEJLYixES2JdKSkpfVxuZnVuY3Rpb24gY0tiKCl7Y0tiPWdlYjtiS2I9c3MoKFpKYigpLGNEKFdDKEpOLDEpLGp3ZSwyMzcsMCxbV0piLFhKYixZSmJdKSkpfVxuZnVuY3Rpb24gQUxiKCl7QUxiPWdlYjt6TGI9c3MoKHZMYigpLGNEKFdDKFROLDEpLGp3ZSw0NzIsMCxbdUxiLHRMYixzTGJdKSkpfVxuZnVuY3Rpb24gQ0JiKCl7Q0JiPWdlYjtCQmI9c3MoKHhCYigpLGNEKFdDKFFMLDEpLGp3ZSwxMDgsMCxbdUJiLHZCYix3QmJdKSkpfVxuZnVuY3Rpb24gRldiKCl7RldiPWdlYjtFV2I9c3MoKEFXYigpLGNEKFdDKEpQLDEpLGp3ZSwzOTEsMCxbeVdiLHhXYix6V2JdKSkpfVxuZnVuY3Rpb24gS25kKCl7S25kPWdlYjtKbmQ9c3MoKEZuZCgpLGNEKFdDKHkzLDEpLGp3ZSwzNDYsMCxbRG5kLENuZCxFbmRdKSkpfVxuZnVuY3Rpb24gbGJkKCl7bGJkPWdlYjtrYmQ9c3MoKGdiZCgpLGNEKFdDKEkxLDEpLGp3ZSw0NDQsMCxbZGJkLGViZCxmYmRdKSkpfVxuZnVuY3Rpb24gVG1kKCl7VG1kPWdlYjtTbWQ9c3MoKE9tZCgpLGNEKFdDKHQzLDEpLGp3ZSwyNzgsMCxbTG1kLE1tZCxObWRdKSkpfVxuZnVuY3Rpb24gcnFkKCl7cnFkPWdlYjtxcWQ9c3MoKG1xZCgpLGNEKFdDKEozLDEpLGp3ZSwyODAsMCxba3FkLGpxZCxscWRdKSkpfVxuZnVuY3Rpb24gSHhkKGEsYil7cmV0dXJuICFhLm8mJihhLm89bmV3IERWZCgocHZkKCksbXZkKSxYNCxhLDApKSxRTmQoYS5vLGIpfVxuZnVuY3Rpb24gSE1iKGEsYil7dmFyIGM7aWYoYS5DKXtjPVJEKFZyYihhLmIsYiksMTI3KS5uO2MuZD1hLkMuZDtjLmE9YS5DLmF9fVxuZnVuY3Rpb24gRjhiKGEpe3ZhciBiLGMsZCxlO2U9YS5kO2I9YS5hO2M9YS5iO2Q9YS5jO2EuZD1jO2EuYT1kO2EuYj1lO2EuYz1ifVxuZnVuY3Rpb24gY09kKGEpeyFhLmcmJihhLmc9bmV3IGhRZCk7IWEuZy5iJiYoYS5nLmI9bmV3IGVQZChhKSk7cmV0dXJuIGEuZy5ifVxuZnVuY3Rpb24gZE9kKGEpeyFhLmcmJihhLmc9bmV3IGhRZCk7IWEuZy5jJiYoYS5nLmM9bmV3IElQZChhKSk7cmV0dXJuIGEuZy5jfVxuZnVuY3Rpb24gbE9kKGEpeyFhLmcmJihhLmc9bmV3IGhRZCk7IWEuZy5kJiYoYS5nLmQ9bmV3IGtQZChhKSk7cmV0dXJuIGEuZy5kfVxuZnVuY3Rpb24gWU5kKGEpeyFhLmcmJihhLmc9bmV3IGhRZCk7IWEuZy5hJiYoYS5nLmE9bmV3IHFQZChhKSk7cmV0dXJuIGEuZy5hfVxuZnVuY3Rpb24gQjlkKGEsYixjLGQpeyEhYyYmKGQ9Yy5SaChiLEJZZChjLkRoKCksYS5jLnVrKCkpLG51bGwsZCkpO3JldHVybiBkfVxuZnVuY3Rpb24gQzlkKGEsYixjLGQpeyEhYyYmKGQ9Yy5UaChiLEJZZChjLkRoKCksYS5jLnVrKCkpLG51bGwsZCkpO3JldHVybiBkfVxuZnVuY3Rpb24gQ2piKGEsYixjLGQpe3ZhciBlO2U9JEMoa0UsUHdlLDI4LGIrMSwxNSwxKTtEamIoZSxhLGIsYyxkKTtyZXR1cm4gZX1cbmZ1bmN0aW9uICRDKGEsYixjLGQsZSxmKXt2YXIgZztnPV9DKGUsZCk7ZSE9MTAmJmNEKFdDKGEsZiksYixjLGUsZyk7cmV0dXJuIGd9XG5mdW5jdGlvbiAkZmUoYSxiLGMpe3ZhciBkLGU7ZT1uZXcgUGhlKGIsYSk7Zm9yKGQ9MDtkPGM7KytkKXtEaGUoZSl9cmV0dXJuIGV9XG5mdW5jdGlvbiAkR2QoYSxiLGMpe3ZhciBkLGU7aWYoYyE9bnVsbCl7Zm9yKGQ9MDtkPGI7KytkKXtlPWNbZF07YS5RaShkLGUpfX19XG5mdW5jdGlvbiBZeWIoYSxiKXt2YXIgYztjPW5ldyBHemI7Yy5jPXRydWU7Yy5kPWIubWQoKTtyZXR1cm4gWnliKGEsYi5sZCgpLGMpfVxuZnVuY3Rpb24gckIoYSxiKXt2YXIgYztjPWEucS5nZXRIb3VycygpKyhiLzM2MDB8MCk7YS5xLnNldFNlY29uZHMoYik7bUIoYSxjKX1cbmZ1bmN0aW9uIEN0KGEsYil7dmFyIGMsZDtjPWI7ZD1Ib2IoY3YobmV3IE51KGEsYykpKTtBcihuZXcgTnUoYSxjKSk7cmV0dXJuIGR9XG5mdW5jdGlvbiBLZGMoYSxiKXtiLlVnKCdMYWJlbCBtYW5hZ2VtZW50JywxKTtmRShtUWIoYSwocmlkKCkscWlkKSkpO2IuVmcoKX1cbmZ1bmN0aW9uIHdnZShhLGIsYyxkKXt2Z2UoYSxiLGMsa2dlKGEsYixkLFpEKGIsMTAyKSYmKFJEKGIsMTkpLkJiJnR4ZSkhPTApKX1cbmZ1bmN0aW9uIEJRYihhLGIsYyl7UkQoYS5iLDY4KTtSRChhLmIsNjgpO1JEKGEuYiw2OCk7VW1iKGEuYSxuZXcgS1FiKGMsYixhKSl9XG5mdW5jdGlvbiBBRmIoYSxiLGMpe2lmKGE8MHx8Yj5jfHxiPGEpe3Rocm93IEFkYihuZXcgZWliKF94ZSthK2J5ZStiK1F4ZStjKSl9fVxuZnVuY3Rpb24gTkNiKGEpe2lmKCFhKXt0aGlzLmM9bnVsbDt0aGlzLmI9bmV3IGJuYn1lbHNle3RoaXMuYz1hO3RoaXMuYj1udWxsfX1cbmZ1bmN0aW9uIEZ6YihhLGIpe3hsYi5jYWxsKHRoaXMsYSxiKTt0aGlzLmE9JEModkwsWnZlLDQ0NywyLDAsMSk7dGhpcy5iPXRydWV9XG5mdW5jdGlvbiBodWIoYSl7Y2tiLmNhbGwodGhpcyxhLDApO190Yih0aGlzKTt0aGlzLmQuYj10aGlzLmQ7dGhpcy5kLmE9dGhpcy5kfVxuZnVuY3Rpb24gd3RiKGEpe3RoaXMuZT1hO3RoaXMuYj10aGlzLmUuYS5lbnRyaWVzKCk7dGhpcy5hPSRDKGpKLHJ2ZSwxLDAsNSwxKX1cbmZ1bmN0aW9uIF9GYygpe19GYz1nZWI7JEZjPW5mZChwZmQobmV3IHVmZCwoc1hiKCksblhiKSwoaGNjKCksRWJjKSksclhiLCRiYyl9XG5mdW5jdGlvbiB4dWMoKXt0dWMoKTtyZXR1cm4gY0QoV0MoZVgsMSksandlLDI4MywwLFtvdWMsbnVjLHF1YyxwdWMsc3VjLHJ1Y10pfVxuZnVuY3Rpb24gUnVjKCl7T3VjKCk7cmV0dXJuIGNEKFdDKGdYLDEpLGp3ZSwyODEsMCxbTHVjLEt1YyxOdWMsSnVjLE11YyxJdWNdKX1cbmZ1bmN0aW9uIGJ2YygpeyR1YygpO3JldHVybiBjRChXQyhoWCwxKSxqd2UsMjgyLDAsW1l1YyxWdWMsWnVjLFh1YyxXdWMsVXVjXSl9XG5mdW5jdGlvbiBldGMoKXtidGMoKTtyZXR1cm4gY0QoV0MoWlcsMSksandlLDIzMiwwLFtac2MsX3NjLFlzYywkc2MsYXRjLFhzY10pfVxuZnVuY3Rpb24gdTNiKCl7cjNiKCk7cmV0dXJuIGNEKFdDKGhSLDEpLGp3ZSwyNzMsMCxbcDNiLG8zYixtM2IscTNiLG4zYixsM2JdKX1cbmZ1bmN0aW9uIFVvZCgpe1BvZCgpO3JldHVybiBjRChXQyhEMywxKSxqd2UsMjc5LDAsW05vZCxMb2QsTW9kLEtvZCxKb2QsT29kXSl9XG5mdW5jdGlvbiBHb2QoKXtCb2QoKTtyZXR1cm4gY0QoV0MoQzMsMSksandlLDEwMSwwLFtBb2Qsem9kLHlvZCx2b2QseG9kLHdvZF0pfVxuZnVuY3Rpb24gbG5kKCl7aW5kKCk7cmV0dXJuIGNEKFdDKHYzLDEpLGp3ZSwzMjEsMCxbZ25kLGVuZCxobmQsY25kLGZuZCxkbmRdKX1cbmZ1bmN0aW9uIFVqZCgpe1JqZCgpO3JldHVybiBjRChXQyhuMywxKSxqd2UsMjU1LDAsW0xqZCxPamQsUGpkLFFqZCxNamQsTmpkXSl9XG5mdW5jdGlvbiB4a2QoKXt1a2QoKTtyZXR1cm4gY0QoV0MocTMsMSksandlLDI5OCwwLFt0a2Qsc2tkLHJrZCxwa2Qsb2tkLHFrZF0pfVxuZnVuY3Rpb24gSzNkKGEpe3ZhciBiO2lmKCFhLmEmJmEuYiE9LTEpe2I9YS5jLkRoKCk7YS5hPXZZZChiLGEuYil9cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIFdHZChhLGIpe2lmKGEuU2koKSYmYS5IYyhiKSl7cmV0dXJuIGZhbHNlfWVsc2V7YS5IaShiKTtyZXR1cm4gdHJ1ZX19XG5mdW5jdGlvbiBSS2IoYSxiKXtJdmIoYiwnSG9yaXpvbnRhbCBhbGlnbm1lbnQgY2Fubm90IGJlIG51bGwnKTthLmI9YjtyZXR1cm4gYX1cbmZ1bmN0aW9uIGl0ZShhLGIsYyl7VnNlKCk7dmFyIGQ7ZD1odGUoYSxiKTtjJiYhIWQmJmt0ZShhKSYmKGQ9bnVsbCk7cmV0dXJuIGR9XG5mdW5jdGlvbiBaS2MoYSxiLGMpe3ZhciBkO2Q9YS5iW2MuYy5wXVtjLnBdO2QuYis9Yi5iO2QuYys9Yi5jO2QuYSs9Yi5hOysrZC5hfVxuZnVuY3Rpb24gVW1jKGEsYixjKXt2YXIgZDthLmRbYi5nXT1jO2Q9YS5nLmM7ZFtiLmddPSR3bmQuTWF0aC5tYXgoZFtiLmddLGMrMSl9XG5mdW5jdGlvbiBiamQoYSxiKXt2YXIgYyxkO2M9YS5hLWIuYTtkPWEuYi1iLmI7cmV0dXJuICR3bmQuTWF0aC5zcXJ0KGMqYytkKmQpfVxuZnVuY3Rpb24gdiRiKGEsYil7dmFyIGMsZDtmb3IoZD1iLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMzYpO3UkYihhLGMsMCwwKX19XG5mdW5jdGlvbiB4JGIoYSxiLGMpe3ZhciBkLGU7Zm9yKGU9YS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDM2KTt3JGIoZCxiLGMpfX1cbmZ1bmN0aW9uIEcwYyhhKXt2YXIgYixjO2ZvcihjPVN1YihhLmEsMCk7Yy5iIT1jLmQuYzspe2I9UkQoZXZiKGMpLDY1KTtIMGMoYil9fVxuZnVuY3Rpb24gbm5jKGEsYil7YnViKGEuZSxiKXx8ZHViKGEuZSxiLG5ldyB0bmMoYikpO3JldHVybiBSRChjdWIoYS5lLGIpLDExMyl9XG5mdW5jdGlvbiB0QmIoYSxiLGMsZCl7dUZiKGEpO3VGYihiKTt1RmIoYyk7dUZiKGQpO3JldHVybiBuZXcgREJiKGEsYixuZXcgTkFiKX1cbmZ1bmN0aW9uIERWZChhLGIsYyxkKXt0aGlzLmFrKCk7dGhpcy5hPWI7dGhpcy5iPWE7dGhpcy5jPW5ldyB3amUodGhpcyxiLGMsZCl9XG5mdW5jdGlvbiBPM2QoYSxiLGMsZCxlLGYpe01LZC5jYWxsKHRoaXMsYixkLGUsZik7SjNkKHRoaXMpO3RoaXMuYz1hO3RoaXMuYj1jfVxuZnVuY3Rpb24gYzRkKGEsYixjLGQsZSxmKXtNS2QuY2FsbCh0aGlzLGIsZCxlLGYpO0ozZCh0aGlzKTt0aGlzLmM9YTt0aGlzLmE9Y31cbmZ1bmN0aW9uIFE5YyhhLGIpe3ZhciBjLGQsZTtlPWEucjtkPWEuZDtjPVM5YyhhLGIsdHJ1ZSk7cmV0dXJuIGMuYiE9ZXx8Yy5hIT1kfVxuZnVuY3Rpb24gVmVlKGEsYixjKXt2YXIgZCxlO2U9KGQ9TjVkKGEuYixiKSxkKTtyZXR1cm4gIWU/bnVsbDp0ZmUoUGVlKGEsZSksYyl9XG5mdW5jdGlvbiBfRGQoYSxiLGMpe3ZhciBkLGUsZjtkPXFDKGEsYyk7ZT1udWxsOyEhZCYmKGU9QURkKGQpKTtmPWU7dEVkKGIsYyxmKX1cbmZ1bmN0aW9uIGFFZChhLGIsYyl7dmFyIGQsZSxmO2Q9cUMoYSxjKTtlPW51bGw7ISFkJiYoZT1BRGQoZCkpO2Y9ZTt0RWQoYixjLGYpfVxuZnVuY3Rpb24gRXZkKGEsYil7dmFyIGM7cmV0dXJuIGM9YS5JaChiKSxjPj0wP2EuTGgoYyx0cnVlLHRydWUpOlF2ZChhLGIsdHJ1ZSl9XG5mdW5jdGlvbiBnTWMoYSxiLGMpe3ZhciBkO2Q9cU1jKGEsYixjKTthLmI9bmV3IF9MYyhkLmMubGVuZ3RoKTtyZXR1cm4gaU1jKGEsZCl9XG5mdW5jdGlvbiBQdWUoYSl7aWYoYS5iPD0wKXRocm93IEFkYihuZXcgRHZiKTstLWEuYjthLmEtPWEuYy5jO3JldHVybiBzZ2IoYS5hKX1cbmZ1bmN0aW9uIFBHZChhKXt2YXIgYjtpZighYS5hKXt0aHJvdyBBZGIobmV3IEV2Yil9Yj1hLmE7YS5hPXZDZChhLmEpO3JldHVybiBifVxuZnVuY3Rpb24gV0RiKGEpe3doaWxlKCFhLmEpe2lmKCF5RWIoYS5jLG5ldyAkRGIoYSkpKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfVxuZnVuY3Rpb24gTnIoYSl7dmFyIGI7UWIoYSk7aWYoWkQoYSwyMDQpKXtiPVJEKGEsMjA0KTtyZXR1cm4gYn1yZXR1cm4gbmV3IE9yKGEpfVxuZnVuY3Rpb24gQ2ZkKGEpe0FmZCgpO1JEKGEub2YoKHVtZCgpLExsZCkpLDE4MSkuRmMoKFBvZCgpLE1vZCkpO2EucWYoS2xkLG51bGwpfVxuZnVuY3Rpb24gQWZkKCl7QWZkPWdlYjt4ZmQ9bmV3IEdmZDt6ZmQ9bmV3IElmZDt5ZmQ9eW4oKHVtZCgpLEtsZCkseGZkLHBsZCx6ZmQpfVxuZnVuY3Rpb24gWTNjKCl7WTNjPWdlYjtXM2M9bmV3ICQzYygnTEVBRl9OVU1CRVInLDApO1gzYz1uZXcgJDNjKCdOT0RFX1NJWkUnLDEpfVxuZnVuY3Rpb24gWUxjKGEpe2EuYT0kQyhrRSxQd2UsMjgsYS5iKzEsMTUsMSk7YS5jPSRDKGtFLFB3ZSwyOCxhLmIsMTUsMSk7YS5kPTB9XG5mdW5jdGlvbiBPWmIoYSxiKXtpZihhLmEuTmUoYi5kLGEuYik+MCl7Um1iKGEuYyxuZXcgZlpiKGIuYyxiLmQsYS5kKSk7YS5iPWIuZH19XG5mdW5jdGlvbiBOSGQoYSxiKXtpZihhLmc9PW51bGx8fGI+PWEuaSl0aHJvdyBBZGIobmV3IHlOZChiLGEuaSkpO3JldHVybiBhLmdbYl19XG5mdW5jdGlvbiBQX2QoYSxiLGMpe2dIZChhLGMpO2lmKGMhPW51bGwmJiFhLmZrKGMpKXt0aHJvdyBBZGIobmV3IHllYil9cmV0dXJuIGN9XG5mdW5jdGlvbiBkRChhLGIpe1hDKGIpIT0xMCYmY0QocmIoYiksYi5TbSxiLl9fZWxlbWVudFR5cGVJZCQsWEMoYiksYSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBXbmIoYSxiLGMsZCl7dmFyIGU7ZD0odXJiKCksIWQ/cnJiOmQpO2U9YS5zbGljZShiLGMpO1huYihlLGEsYixjLC1iLGQpfVxuZnVuY3Rpb24genZkKGEsYixjLGQsZSl7cmV0dXJuIGI8MD9RdmQoYSxjLGQpOlJEKGMsNjkpLndrKCkueWsoYSxhLmhpKCksYixkLGUpfVxuZnVuY3Rpb24gSjliKGEsYil7cmV0dXJuIFFmYihLZmIoVUQobVFiKGEsKFl3YygpLEp3YykpKSksS2ZiKFVEKG1RYihiLEp3YykpKSl9XG5mdW5jdGlvbiBxQWIoKXtxQWI9Z2ViO3BBYj1zcygoY0FiKCksY0QoV0MoQUwsMSksandlLDMwNCwwLFskemIsX3piLGFBYixiQWJdKSkpfVxuZnVuY3Rpb24gY0FiKCl7Y0FiPWdlYjskemI9bmV3IGRBYignQWxsJywwKTtfemI9bmV3IGlBYjthQWI9bmV3IGtBYjtiQWI9bmV3IG5BYn1cbmZ1bmN0aW9uIEVLYigpe0VLYj1nZWI7Q0tiPW5ldyBGS2IoTnllLDApO0JLYj1uZXcgRktiKEt5ZSwxKTtES2I9bmV3IEZLYihPeWUsMil9XG5mdW5jdGlvbiBabWUoKXtabWU9Z2ViO3FBZCgpO1dtZT1veGU7Vm1lPXB4ZTtZbWU9bmV3IFRmYihveGUpO1htZT1uZXcgVGZiKHB4ZSl9XG5mdW5jdGlvbiByT2IoKXtyT2I9Z2ViO3FPYj1zcygobU9iKCksY0QoV0MoaE8sMSksandlLDQxNywwLFtsT2IsaU9iLGpPYixrT2JdKSkpfVxuZnVuY3Rpb24gTlJiKCl7TlJiPWdlYjtNUmI9c3MoKElSYigpLGNEKFdDKFdPLDEpLGp3ZSw0MDYsMCxbRlJiLEVSYixHUmIsSFJiXSkpKX1cbmZ1bmN0aW9uIE5QYigpe05QYj1nZWI7TVBiPXNzKChJUGIoKSxjRChXQyhETywxKSxqd2UsMzMyLDAsW0ZQYixFUGIsR1BiLEhQYl0pKSl9XG5mdW5jdGlvbiBaJGIoKXtaJGI9Z2ViO1kkYj1zcygoVSRiKCksY0QoV0MoQ1EsMSksandlLDM4OSwwLFtUJGIsUiRiLFEkYixTJGJdKSkpfVxuZnVuY3Rpb24gd1piKCl7d1piPWdlYjt2WmI9c3MoKG5aYigpLGNEKFdDKGxRLDEpLGp3ZSw0MTYsMCxbalpiLG1aYixrWmIsbFpiXSkpKX1cbmZ1bmN0aW9uIGpuYygpe2puYz1nZWI7aW5jPXNzKChlbmMoKSxjRChXQyhMViwxKSxqd2UsNDIxLDAsW2FuYyxibmMsY25jLGRuY10pKSl9XG5mdW5jdGlvbiBCZWMoKXtCZWM9Z2ViO0FlYz1zcygodmVjKCksY0QoV0MocVQsMSksandlLDM3MSwwLFt1ZWMsc2VjLHRlYyxyZWNdKSkpfVxuZnVuY3Rpb24gRERjKCl7RERjPWdlYjtDRGM9c3MoKHdEYygpLGNEKFdDKHRYLDEpLGp3ZSwyMDMsMCxbdURjLHZEYyx0RGMsc0RjXSkpKX1cbmZ1bmN0aW9uIHBFYygpe3BFYz1nZWI7b0VjPXNzKChrRWMoKSxjRChXQyh3WCwxKSxqd2UsMjg0LDAsW2hFYyxnRWMsaUVjLGpFY10pKSl9XG5mdW5jdGlvbiBDdWMoKXtDdWM9Z2ViO0J1Yz1uZXcgRHVjKExBZSwwKTtBdWM9bmV3IER1YygnSU1QUk9WRV9TVFJBSUdIVE5FU1MnLDEpfVxuZnVuY3Rpb24gX2koYSxiKXt2YXIgYyxkO2Q9Yi9hLmMuUmQoKS5nYygpfDA7Yz1iJWEuYy5SZCgpLmdjKCk7cmV0dXJuIFVpKGEsZCxjKX1cbmZ1bmN0aW9uIGlaZChhKXt2YXIgYjtpZihhLm5sKCkpe2ZvcihiPWEuaS0xO2I+PTA7LS1iKXtRSGQoYSxiKX19cmV0dXJuIFdIZChhKX1cbmZ1bmN0aW9uIE55YihhKXt2YXIgYixjO2lmKCFhLmIpe3JldHVybiBudWxsfWM9YS5iO3doaWxlKGI9Yy5hWzBdKXtjPWJ9cmV0dXJuIGN9XG5mdW5jdGlvbiBPeWIoYSl7dmFyIGIsYztpZighYS5iKXtyZXR1cm4gbnVsbH1jPWEuYjt3aGlsZShiPWMuYVsxXSl7Yz1ifXJldHVybiBjfVxuZnVuY3Rpb24gSGFlKGEpe2lmKFpEKGEsMTgwKSl7cmV0dXJuICcnK1JEKGEsMTgwKS5hfXJldHVybiBhPT1udWxsP251bGw6amViKGEpfVxuZnVuY3Rpb24gSWFlKGEpe2lmKFpEKGEsMTgwKSl7cmV0dXJuICcnK1JEKGEsMTgwKS5hfXJldHVybiBhPT1udWxsP251bGw6amViKGEpfVxuZnVuY3Rpb24gZUdiKGEsYil7aWYoYi5hKXt0aHJvdyBBZGIobmV3IHl6KGp5ZSkpfVlzYihhLmEsYik7Yi5hPWE7IWEuaiYmKGEuaj1iKX1cbmZ1bmN0aW9uIGhFYihhLGIpe3h4Yi5jYWxsKHRoaXMsYi56ZCgpLGIueWQoKSYtMTY0NDkpO3VGYihhKTt0aGlzLmE9YTt0aGlzLmM9Yn1cbmZ1bmN0aW9uIHpYYyhhLGIpe3JldHVybiBuZXcgZ3VkKGIsWmlkKGFqZChiLmUpLGIuZi5hK2EsYi5mLmIrYSksKEdlYigpLGZhbHNlKSl9XG5mdW5jdGlvbiBFTWMoYSxiKXtkTWMoKTtyZXR1cm4gUm1iKGEsbmV3IFB0ZChiLHNnYihiLmUuYy5sZW5ndGgrYi5nLmMubGVuZ3RoKSkpfVxuZnVuY3Rpb24gR01jKGEsYil7ZE1jKCk7cmV0dXJuIFJtYihhLG5ldyBQdGQoYixzZ2IoYi5lLmMubGVuZ3RoK2IuZy5jLmxlbmd0aCkpKX1cbmZ1bmN0aW9uIHA1Yygpe3A1Yz1nZWI7bzVjPXNzKChqNWMoKSxjRChXQyhNMCwxKSxqd2UsMzU0LDAsW2k1YyxnNWMsaDVjLGY1Y10pKSl9XG5mdW5jdGlvbiB4X2MoKXt4X2M9Z2ViO3dfYz1zcygoc19jKCksY0QoV0MoSl8sMSksandlLDM1MywwLFtyX2MscF9jLHFfYyxvX2NdKSkpfVxuZnVuY3Rpb24gZVdjKCl7ZVdjPWdlYjtkV2M9c3MoKFlWYygpLGNEKFdDKEgkLDEpLGp3ZSw0MDUsMCxbVVZjLFZWYyxXVmMsWFZjXSkpKX1cbmZ1bmN0aW9uIGJuZCgpe2JuZD1nZWI7YW5kPXNzKChZbWQoKSxjRChXQyh1MywxKSxqd2UsMjIzLDAsW1htZCxWbWQsVW1kLFdtZF0pKSl9XG5mdW5jdGlvbiBWbmQoKXtWbmQ9Z2ViO1VuZD1zcygoUG5kKCksY0QoV0MoejMsMSksandlLDI5MSwwLFtPbmQsTG5kLE1uZCxObmRdKSkpfVxuZnVuY3Rpb24gVnBkKCl7VnBkPWdlYjtVcGQ9c3MoKFFwZCgpLGNEKFdDKEgzLDEpLGp3ZSwzODYsMCxbT3BkLFBwZCxOcGQsTXBkXSkpKX1cbmZ1bmN0aW9uIExyZCgpe0xyZD1nZWI7S3JkPXNzKChHcmQoKSxjRChXQyhSMywxKSxqd2UsMzIwLDAsW0ZyZCxDcmQsRXJkLERyZF0pKSl9XG5mdW5jdGlvbiB5dGQoKXt5dGQ9Z2ViO3h0ZD1zcygodHRkKCksY0QoV0MobjQsMSksandlLDQxNSwwLFtxdGQscnRkLHB0ZCxzdGRdKSkpfVxuZnVuY3Rpb24gYjljKCl7YjljPWdlYjskOGM9bmV3IGQ5YyhpRmUsMCk7YTljPW5ldyBkOWMobUVlLDEpO184Yz1uZXcgZDljKExBZSwyKX1cbmZ1bmN0aW9uIHNCYihhLGIsYyxkLGUpe3VGYihhKTt1RmIoYik7dUZiKGMpO3VGYihkKTt1RmIoZSk7cmV0dXJuIG5ldyBEQmIoYSxiLGQpfVxuZnVuY3Rpb24gZnViKGEsYil7dmFyIGM7Yz1SRChfamIoYS5lLGIpLDQwMCk7aWYoYyl7cnViKGMpO3JldHVybiBjLmV9cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBZbWIoYSxiKXt2YXIgYztjPVdtYihhLGIsMCk7aWYoYz09LTEpe3JldHVybiBmYWxzZX1YbWIoYSxjKTtyZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIExEYihhLGIsYyl7dmFyIGQ7TENiKGEpO2Q9bmV3IElFYjtkLmE9YjthLmEuTmIobmV3IFFFYihkLGMpKTtyZXR1cm4gZC5hfVxuZnVuY3Rpb24gVkNiKGEpe3ZhciBiO0xDYihhKTtiPSRDKGlFLHZ4ZSwyOCwwLDE1LDEpO2l4YihhLmEsbmV3IGREYihiKSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiB5YyhhKXt2YXIgYjtpZigheGMoYSkpe3Rocm93IEFkYihuZXcgRHZiKX1hLmU9MTtiPWEuZDthLmQ9bnVsbDtyZXR1cm4gYn1cbmZ1bmN0aW9uIE9kYihhKXt2YXIgYjtpZihLZGIoYSkpe2I9MC1hO2lmKCFpc05hTihiKSl7cmV0dXJuIGJ9fXJldHVybiBFZGIoeEQoYSkpfVxuZnVuY3Rpb24gV21iKGEsYixjKXtmb3IoO2M8YS5jLmxlbmd0aDsrK2Mpe2lmKEZ2YihiLGEuY1tjXSkpe3JldHVybiBjfX1yZXR1cm4gLTF9XG5mdW5jdGlvbiBHbWMoYSl7dmFyIGIsYztjPVJEKFZtYihhLmosMCksMTIpO2I9UkQobVFiKGMsKFl3YygpLEF3YykpLDEyKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIE51KGEsYil7dmFyIGM7dGhpcy5mPWE7dGhpcy5iPWI7Yz1SRChXamIoYS5iLGIpLDI2MCk7dGhpcy5jPSFjP251bGw6Yy5ifVxuZnVuY3Rpb24gQ2tjKCl7bGtjKCk7dGhpcy5iPW5ldyBUc2I7dGhpcy5mPW5ldyBUc2I7dGhpcy5nPW5ldyBUc2I7dGhpcy5lPW5ldyBUc2J9XG5mdW5jdGlvbiBSU2QoYSl7ZXoodGhpcyk7dGhpcy5nPSFhP251bGw6bHooYSxhLmllKCkpO3RoaXMuZj1hO2d6KHRoaXMpO3RoaXMuamUoKX1cbmZ1bmN0aW9uIHBLZChhKXt2YXIgYjtiPWEuamooKTtiIT1udWxsJiZhLmQhPS0xJiZSRChiLDk0KS54aChhKTshIWEuaSYmYS5pLm9qKCl9XG5mdW5jdGlvbiBhc2MoYSl7dmFyIGI7Zm9yKGI9YS5wKzE7YjxhLmMuYS5jLmxlbmd0aDsrK2Ipey0tUkQoVm1iKGEuYy5hLGIpLDEwKS5wfX1cbmZ1bmN0aW9uIHVrYihhKXt5RmIoISFhLmMpO3JGYihhLmYuZyxhLmQpO2EuYy5RYigpO2EuYz1udWxsO2EuYj1za2IoYSk7YS5kPWEuZi5nfVxuZnVuY3Rpb24gbzRkKGEpe2lmKCFhLmIpe2EuYj1uZXcgczVkKGEsbzcsYSk7IWEuYSYmKGEuYT1uZXcgRjRkKGEsYSkpfXJldHVybiBhLmJ9XG5mdW5jdGlvbiBQZWUoYSxiKXt2YXIgYyxkO2M9UkQoYiw2OTApO2Q9Yy54aSgpOyFkJiZjLkFpKGQ9bmV3IHdmZShhLGIpKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIFFlZShhLGIpe3ZhciBjLGQ7Yz1SRChiLDY5Mik7ZD1jLiRrKCk7IWQmJmMuY2woZD1uZXcgSmZlKGEsYikpO3JldHVybiBkfVxuZnVuY3Rpb24gX2pjKGEsYil7V2pjKCk7dmFyIGMsZDtjPSRqYyhhKTtkPSRqYyhiKTtyZXR1cm4gISFjJiYhIWQmJiFBb2IoYy5rLGQuayl9XG5mdW5jdGlvbiBXRmIoYSxiKXtyZXR1cm4gRnZiKGIsVm1iKGEuZiwwKSl8fEZ2YihiLFZtYihhLmYsMSkpfHxGdmIoYixWbWIoYS5mLDIpKX1cbmZ1bmN0aW9uIE1lZChhLGIpe2lmKGI8MCl7dGhyb3cgQWRiKG5ldyB2ZWIoekdlK2IpKX1MZWQoYSxiKzEpO3JldHVybiBWbWIoYS5qLGIpfVxuZnVuY3Rpb24gT2IoYSxiLGMsZCl7aWYoIWEpe3Rocm93IEFkYihuZXcgYWdiKGhjKGIsY0QoV0MoakosMSkscnZlLDEsNSxbYyxkXSkpKSl9fVxuZnVuY3Rpb24gUDNkKGEsYixjLGQsZSxmLGcpe05LZC5jYWxsKHRoaXMsYixkLGUsZixnKTtKM2QodGhpcyk7dGhpcy5jPWE7dGhpcy5iPWN9XG5mdW5jdGlvbiBVQShhLGIsYyl7dmFyIGQsZTtkPTEwO2ZvcihlPTA7ZTxjLTE7ZSsrKXtiPGQmJihhLmErPScwJyxhKTtkKj0xMH1hLmErPWJ9XG5mdW5jdGlvbiBBaGIoYSl7dmFyIGIsYztjPWEubGVuZ3RoO2I9JEMoaEUsendlLDI4LGMsMTUsMSk7bmhiKGEsMCxjLGIsMCk7cmV0dXJuIGJ9XG5mdW5jdGlvbiAkZWIoYSl7WmViKCk7dmFyIGIsYztiPWErMTI4O2M9WWViW2JdOyFjJiYoYz1ZZWJbYl09bmV3IFNlYihhKSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBDdWIoYSl7ckZiKGEuZC5hLmUuZyxhLmIpO3NGYihhLmMhPWEuZC5hLmQpO2EuYT1hLmM7YS5jPWEuYy5hO3JldHVybiBhLmF9XG5mdW5jdGlvbiBtRGMoYSl7c3dpdGNoKGEuZyl7Y2FzZSAwOnJldHVybiBsdmU7Y2FzZSAxOnJldHVybiAtMTtkZWZhdWx0OnJldHVybiAwO319XG5mdW5jdGlvbiBFRChhKXtpZih1RChhLChNRCgpLExEKSk8MCl7cmV0dXJuIC1xRCh4RChhKSl9cmV0dXJuIGEubCthLm0qZ3hlK2EuaCpoeGV9XG5mdW5jdGlvbiBldGQoYSl7KCF0aGlzLnE/KHlvYigpLHlvYigpLHdvYik6dGhpcy5xKS5BYyghYS5xPyh5b2IoKSx5b2IoKSx3b2IpOmEucSl9XG5mdW5jdGlvbiBFdWQoYSxiKXtDb2QoUkQoUkQoYS5mLDI3KS5vZigodW1kKCksSGxkKSksMTAxKSkmJmxRZCh3Q2QoUkQoYS5mLDI3KSksYil9XG5mdW5jdGlvbiBHdmQoYSxiKXt2YXIgYztjPUJZZChhLmQsYik7cmV0dXJuIGM+PTA/RHZkKGEsYyx0cnVlLHRydWUpOlF2ZChhLGIsdHJ1ZSl9XG5mdW5jdGlvbiBWd2QoYSl7dmFyIGI7Yj1TRChZd2QoYSwzMikpO2lmKGI9PW51bGwpe1d3ZChhKTtiPVNEKFl3ZChhLDMyKSl9cmV0dXJuIGJ9XG5mdW5jdGlvbiBZdmQoYSl7dmFyIGI7aWYoIWEuT2goKSl7Yj1BWWQoYS5EaCgpKS1hLmppKCk7YS4kaCgpLk1rKGIpfXJldHVybiBhLnpoKCl9XG5mdW5jdGlvbiB6UWIoYSxiKXt5UWI9bmV3IGtSYjt3UWI9Yjt4UWI9YTtSRCh4UWIuYiw2OCk7QlFiKHhRYix5UWIsbnVsbCk7QVFiKHhRYil9XG5mdW5jdGlvbiBBV2IoKXtBV2I9Z2ViO3lXYj1uZXcgQldiKCdYWScsMCk7eFdiPW5ldyBCV2IoJ1gnLDEpO3pXYj1uZXcgQldiKCdZJywyKX1cbmZ1bmN0aW9uIHZMYigpe3ZMYj1nZWI7dUxiPW5ldyB3TGIoJ1RPUCcsMCk7dExiPW5ldyB3TGIoS3llLDEpO3NMYj1uZXcgd0xiKFF5ZSwyKX1cbmZ1bmN0aW9uIEd2Yygpe0d2Yz1nZWI7RXZjPW5ldyBIdmMoTEFlLDApO0Z2Yz1uZXcgSHZjKCdUT1AnLDEpO0R2Yz1uZXcgSHZjKFF5ZSwyKX1cbmZ1bmN0aW9uIHNFYygpe3NFYz1nZWI7cUVjPW5ldyB0RWMoJ0lOUFVUX09SREVSJywwKTtyRWM9bmV3IHRFYygnUE9SVF9ERUdSRUUnLDEpfVxuZnVuY3Rpb24gTUQoKXtNRD1nZWI7SUQ9aEQoZHhlLGR4ZSw1MjQyODcpO0pEPWhEKDAsMCxmeGUpO0tEPWZEKDEpO2ZEKDIpO0xEPWZEKDApfVxuZnVuY3Rpb24gd1dkKGEpe3ZhciBiO2lmKGEuZCE9YS5yKXtiPVdWZChhKTthLmU9ISFiJiZiLmxrKCk9PWFLZTthLmQ9Yn1yZXR1cm4gYS5lfVxuZnVuY3Rpb24gVUhkKGEsYixjKXt2YXIgZDtkPWEuZ1tiXTtNSGQoYSxiLGEuWmkoYixjKSk7YS5SaShiLGMsZCk7YS5OaSgpO3JldHVybiBkfVxuZnVuY3Rpb24gZEhkKGEsYil7dmFyIGM7Yz1hLmRkKGIpO2lmKGM+PTApe2EuZ2QoYyk7cmV0dXJuIHRydWV9ZWxzZXtyZXR1cm4gZmFsc2V9fVxuZnVuY3Rpb24geHIoYSxiKXt2YXIgYztRYihhKTtRYihiKTtjPWZhbHNlO3doaWxlKGIuT2IoKSl7Yz1jfGEuRmMoYi5QYigpKX1yZXR1cm4gY31cbmZ1bmN0aW9uIGN1YihhLGIpe3ZhciBjO2M9UkQoV2piKGEuZSxiKSw0MDApO2lmKGMpe2V1YihhLGMpO3JldHVybiBjLmV9cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBpQihhKXt2YXIgYixjO2I9YS82MHwwO2M9YSU2MDtpZihjPT0wKXtyZXR1cm4gJycrYn1yZXR1cm4gJycrYisnOicrKCcnK2MpfVxuZnVuY3Rpb24gSkIoZCxhKXt2YXIgYj1kLmFbYV07dmFyIGM9KEhDKCksR0MpW3R5cGVvZiBiXTtyZXR1cm4gYz9jKGIpOk5DKHR5cGVvZiBiKX1cbmZ1bmN0aW9uIEVEYihhLGIpe3ZhciBjLGQ7TUNiKGEpO2Q9bmV3IHpFYihiLGEuYSk7Yz1uZXcgWURiKGQpO3JldHVybiBuZXcgU0RiKGEsYyl9XG5mdW5jdGlvbiBtd2IoYSl7dmFyIGI7Yj1hLmIuYy5sZW5ndGg9PTA/bnVsbDpWbWIoYS5iLDApO2IhPW51bGwmJm93YihhLDApO3JldHVybiBifVxuZnVuY3Rpb24gdWtjKGEsYil7dmFyIGMsZCxlO2U9Yi5jLmk7Yz1SRChXamIoYS5mLGUpLDYwKTtkPWMuZC5jLWMuZS5jO0JqZChiLmEsZCwwKX1cbmZ1bmN0aW9uIFhMYyhhLGIpe3ZhciBjOysrYS5kOysrYS5jW2JdO2M9YisxO3doaWxlKGM8YS5hLmxlbmd0aCl7KythLmFbY107Yys9YyYtY319XG5mdW5jdGlvbiBVdGUoYSxiLGMsZCl7VnNlKCk7V3NlLmNhbGwodGhpcywyNik7dGhpcy5jPWE7dGhpcy5hPWI7dGhpcy5kPWM7dGhpcy5iPWR9XG5mdW5jdGlvbiBLQShhLGIpe3doaWxlKGJbMF08YS5sZW5ndGgmJnFoYignIFxcdFxcclxcbicsRmhiKGloYihhLGJbMF0pKSk+PTApeysrYlswXX19XG5mdW5jdGlvbiBlRWQoYSxiKXtEeWQoYSxiPT1udWxsfHxSZmIoKHVGYihiKSxiKSl8fGlzTmFOKCh1RmIoYiksYikpPzA6KHVGYihiKSxiKSl9XG5mdW5jdGlvbiBmRWQoYSxiKXtFeWQoYSxiPT1udWxsfHxSZmIoKHVGYihiKSxiKSl8fGlzTmFOKCh1RmIoYiksYikpPzA6KHVGYihiKSxiKSl9XG5mdW5jdGlvbiBnRWQoYSxiKXtDeWQoYSxiPT1udWxsfHxSZmIoKHVGYihiKSxiKSl8fGlzTmFOKCh1RmIoYiksYikpPzA6KHVGYihiKSxiKSl9XG5mdW5jdGlvbiBoRWQoYSxiKXtBeWQoYSxiPT1udWxsfHxSZmIoKHVGYihiKSxiKSl8fGlzTmFOKCh1RmIoYiksYikpPzA6KHVGYihiKSxiKSl9XG5mdW5jdGlvbiBvV2MoYSxiLGMpe3JldHVybiBjamQobmV3IHJqZChjLmUuYStjLmYuYS8yLGMuZS5iK2MuZi5iLzIpLGEpPT0odUZiKGIpLGIpfVxuZnVuY3Rpb24gcWdlKGEsYil7cmV0dXJuIFpEKGIsMTAyKSYmKFJEKGIsMTkpLkJiJnR4ZSkhPTA/bmV3IFNoZShiLGEpOm5ldyBQaGUoYixhKX1cbmZ1bmN0aW9uIHNnZShhLGIpe3JldHVybiBaRChiLDEwMikmJihSRChiLDE5KS5CYiZ0eGUpIT0wP25ldyBTaGUoYixhKTpuZXcgUGhlKGIsYSl9XG5mdW5jdGlvbiBYQyhhKXtyZXR1cm4gYS5fX2VsZW1lbnRUeXBlQ2F0ZWdvcnkkPT1udWxsPzEwOmEuX19lbGVtZW50VHlwZUNhdGVnb3J5JH1cbmZ1bmN0aW9uIEJoYihhLGIpe3JldHVybiBiPT0od3ZiKCksd3ZiKCksdnZiKT9hLnRvTG9jYWxlTG93ZXJDYXNlKCk6YS50b0xvd2VyQ2FzZSgpfVxuZnVuY3Rpb24gTXUoYSl7aWYoIWEuZSl7dGhyb3cgQWRiKG5ldyBEdmIpfWEuYz1hLmE9YS5lO2EuZT1hLmUuZTstLWEuZDtyZXR1cm4gYS5hLmZ9XG5mdW5jdGlvbiBMdShhKXtpZighYS5jKXt0aHJvdyBBZGIobmV3IER2Yil9YS5lPWEuYT1hLmM7YS5jPWEuYy5jOysrYS5kO3JldHVybiBhLmEuZn1cbmZ1bmN0aW9uIExzYihhKXt2YXIgYjsrK2EuYTtmb3IoYj1hLmMuYS5sZW5ndGg7YS5hPGI7KythLmEpe2lmKGEuYy5iW2EuYV0pe3JldHVybn19fVxuZnVuY3Rpb24gX3ooYSl7dmFyIGIsYztpZihhLmEpe2M9bnVsbDtkb3tiPWEuYTthLmE9bnVsbDtjPWRBKGIsYyl9d2hpbGUoYS5hKTthLmE9Y319XG5mdW5jdGlvbiBhQShhKXt2YXIgYixjO2lmKGEuYil7Yz1udWxsO2Rve2I9YS5iO2EuYj1udWxsO2M9ZEEoYixjKX13aGlsZShhLmIpO2EuYj1jfX1cbmZ1bmN0aW9uIGV2ZShhLGIpe3ZhciBjO2M9MDt3aGlsZShhLmUhPWEuaS5nYygpKXtvRmQoYixiTWQoYSksc2diKGMpKTtjIT1sdmUmJisrY319XG5mdW5jdGlvbiBMbGMoYSxiKXt2YXIgYztjPSR5KGEuZS5jLGIuZS5jKTtpZihjPT0wKXtyZXR1cm4gUWZiKGEuZS5kLGIuZS5kKX1yZXR1cm4gY31cbmZ1bmN0aW9uIGhkYyhhLGIpe3ZhciBjLGQ7ZD1iLmM7Zm9yKGM9ZCsxO2M8PWIuZjtjKyspe2EuYVtjXT5hLmFbZF0mJihkPWMpfXJldHVybiBkfVxuZnVuY3Rpb24gS3JjKGEpe3ZhciBiO2I9UkQobVFiKGEsKFl3YygpLFd2YykpLDMxMyk7aWYoYil7cmV0dXJuIGIuYT09YX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBMcmMoYSl7dmFyIGI7Yj1SRChtUWIoYSwoWXdjKCksV3ZjKSksMzEzKTtpZihiKXtyZXR1cm4gYi5pPT1hfXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIHhYYigpe3hYYj1nZWI7d1hiPXNzKChzWGIoKSxjRChXQyhVUCwxKSxqd2UsMzY3LDAsW25YYixvWGIscFhiLHFYYixyWGJdKSkpfVxuZnVuY3Rpb24gSG5jKCl7SG5jPWdlYjtHbmM9c3MoKEJuYygpLGNEKFdDKFRWLDEpLGp3ZSwzNzUsMCxbeG5jLHpuYyxBbmMseW5jLHduY10pKSl9XG5mdW5jdGlvbiBYdGMoKXtYdGM9Z2ViO1d0Yz1zcygoUHRjKCksY0QoV0MoYlgsMSksandlLDM0OCwwLFtMdGMsS3RjLE50YyxPdGMsTXRjXSkpKX1cbmZ1bmN0aW9uIFJEYygpe1JEYz1nZWI7UURjPXNzKChKRGMoKSxjRChXQyh1WCwxKSxqd2UsMzIzLDAsW0lEYyxGRGMsR0RjLEVEYyxIRGNdKSkpfVxuZnVuY3Rpb24gaHhjKCl7aHhjPWdlYjtneGM9c3MoKGN4YygpLGNEKFdDKG1YLDEpLGp3ZSwxNzEsMCxbYnhjLFp3Yywkd2MsX3djLGF4Y10pKSl9XG5mdW5jdGlvbiBtM2MoKXttM2M9Z2ViO2wzYz1zcygoZzNjKCksY0QoV0MoeDAsMSksandlLDM2OCwwLFtlM2MsYjNjLGYzYyxjM2MsZDNjXSkpKX1cbmZ1bmN0aW9uIHhhZCgpe3hhZD1nZWI7d2FkPXNzKChzYWQoKSxjRChXQyh4MSwxKSxqd2UsMzczLDAsW29hZCxuYWQscWFkLHBhZCxyYWRdKSkpfVxuZnVuY3Rpb24gYWNkKCl7YWNkPWdlYjtfYmQ9c3MoKFhiZCgpLGNEKFdDKFAxLDEpLGp3ZSwzMjQsMCxbU2JkLFRiZCxXYmQsVWJkLFZiZF0pKSl9XG5mdW5jdGlvbiBLbWQoKXtLbWQ9Z2ViO0ptZD1zcygoQ21kKCksY0QoV0MoczMsMSksandlLDg4LDAsW0FtZCx6bWQseW1kLHhtZCxCbWRdKSkpfVxuZnVuY3Rpb24gYmlkKCl7YmlkPWdlYjthaWQ9c3MoKFloZCgpLGNEKFdDKGQzLDEpLGp3ZSwxNzAsMCxbV2hkLFZoZCxUaGQsWGhkLFVoZF0pKSl9XG5mdW5jdGlvbiB1b2QoKXt1b2Q9Z2ViO3RvZD1zcygocG9kKCksY0QoV0MoQjMsMSksandlLDI1NiwwLFttb2Qsb29kLGtvZCxsb2Qsbm9kXSkpKX1cbmZ1bmN0aW9uIHpwZCgpe3pwZD1nZWI7eXBkPXNzKChxcGQoKSxjRChXQyhFMywxKSxOQWUsNjQsMCxbb3BkLFlvZCxYb2QsbnBkLHBwZF0pKSl9XG5mdW5jdGlvbiBMSGIoKXtMSGI9Z2ViO0pIYj1uZXcgTUhiKCdCWV9TSVpFJywwKTtLSGI9bmV3IE1IYignQllfU0laRV9BTkRfU0hBUEUnLDEpfVxuZnVuY3Rpb24gVFViKCl7VFViPWdlYjtSVWI9bmV3IFVVYignRUFERVMnLDApO1NVYj1uZXcgVVViKCdGUlVDSFRFUk1BTl9SRUlOR09MRCcsMSl9XG5mdW5jdGlvbiAkdGMoKXskdGM9Z2ViO1l0Yz1uZXcgX3RjKCdSRUFESU5HX0RJUkVDVElPTicsMCk7WnRjPW5ldyBfdGMoJ1JPVEFUSU9OJywxKX1cbmZ1bmN0aW9uIENaYigpe0NaYj1nZWI7elpiPW5ldyBaWmI7QVpiPW5ldyBiJGI7eFpiPW5ldyBmJGI7eVpiPW5ldyBqJGI7QlpiPW5ldyBuJGJ9XG5mdW5jdGlvbiBkR2IoYSl7dGhpcy5iPW5ldyBibmI7dGhpcy5hPW5ldyBibmI7dGhpcy5jPW5ldyBibmI7dGhpcy5kPW5ldyBibmI7dGhpcy5lPWF9XG5mdW5jdGlvbiBYWmIoYSl7dGhpcy5nPWE7dGhpcy5mPW5ldyBibmI7dGhpcy5hPSR3bmQuTWF0aC5taW4odGhpcy5nLmMuYyx0aGlzLmcuZC5jKX1cbmZ1bmN0aW9uIFVLYihhLGIsYyl7UkpiLmNhbGwodGhpcyk7S0tiKHRoaXMpO3RoaXMuYT1hO3RoaXMuYz1jO3RoaXMuYj1iLmQ7dGhpcy5mPWIuZX1cbmZ1bmN0aW9uIGQ2YihhLGIsYyl7dmFyIGQsZTtmb3IoZT1uZXcgQW5iKGMpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPXluYihlKTtjNmIoYSxiLGQpfX1cbmZ1bmN0aW9uIHNDKGEsYixjKXt2YXIgZDtpZihiPT1udWxsKXt0aHJvdyBBZGIobmV3IE5nYil9ZD1xQyhhLGIpO3RDKGEsYixjKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIGtlZChhLGIpe3ZhciBjO2M9UkQoV2piKGEuYSxiKSwxMzcpO2lmKCFjKXtjPW5ldyBxUWI7WmpiKGEuYSxiLGMpfXJldHVybiBjfVxuZnVuY3Rpb24gdllkKGEsYil7dmFyIGM7Yz0oYS5pPT1udWxsJiZyWWQoYSksYS5pKTtyZXR1cm4gYj49MCYmYjxjLmxlbmd0aD9jW2JdOm51bGx9XG5mdW5jdGlvbiBHcWQoYSxiKXt2YXIgYztjPWI+MD9iLTE6YjtyZXR1cm4gS3FkKExxZChNcWQoTnFkKG5ldyBPcWQsYyksYS5uKSxhLmopLGEuayl9XG5mdW5jdGlvbiBuQmQoYSl7dmFyIGIsYztjPShiPW5ldyBxNGQsYik7V0dkKCghYS5xJiYoYS5xPW5ldyBDNWQoczcsYSwxMSwxMCkpLGEucSksYyl9XG5mdW5jdGlvbiBvZmIoYSl7cmV0dXJuICgoYS5pJjIpIT0wPydpbnRlcmZhY2UgJzooYS5pJjEpIT0wPycnOidjbGFzcyAnKSsobGZiKGEpLGEubyl9XG5mdW5jdGlvbiBkeihhKXtpZihEZGIoYSxsdmUpPjApe3JldHVybiBsdmV9aWYoRGRiKGEscXdlKTwwKXtyZXR1cm4gcXdlfXJldHVybiBZZGIoYSl9XG5mdW5jdGlvbiBTdihhKXtpZihhPDMpe2RrKGEsZndlKTtyZXR1cm4gYSsxfWlmKGE8aHdlKXtyZXR1cm4gZUUoYS8wLjc1KzEpfXJldHVybiBsdmV9XG5mdW5jdGlvbiBSd2IoYSxiKXt1RmIoYik7UXdiKGEpO2lmKGEuZC5PYigpKXtiLkNkKGEuZC5QYigpKTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBrZShhLGIpe3ZhciBjLGQ7Yz1SRChYdihhLmQsYiksMTYpO2lmKCFjKXtyZXR1cm4gbnVsbH1kPWI7cmV0dXJuIGEuZS5wYyhkLGMpfVxuZnVuY3Rpb24gVWZlKGEsYixjLGQpe3ZhciBlO2Euaj0tMTtvTGQoYSxnZ2UoYSxiLGMpLChua2UoKSxlPVJEKGIsNjkpLnZrKCksZS54bChkKSkpfVxuZnVuY3Rpb24gWl9jKGEsYil7Ul9jKCk7cmV0dXJuIC1oZ2IoUkQobVFiKGEsKGhfYygpLFckYykpLDE3KS5hLFJEKG1RYihiLFckYyksMTcpLmEpfVxuZnVuY3Rpb24geG8oYSxiKXtyZXR1cm4gISFIbyhhLGIsWWRiKE5kYihjd2UscWdiKFlkYihOZGIoYj09bnVsbD8wOnRiKGIpLGR3ZSkpLDE1KSkpKX1cbmZ1bmN0aW9uIGRHZCgpe2FHZCgpO3JldHVybiBjRChXQyhUNSwxKSxqd2UsMjQ1LDAsW19GZCxZRmQsWkZkLFhGZCwkRmQsVkZkLFVGZCxXRmRdKX1cbmZ1bmN0aW9uIG5pZCgpe2tpZCgpO3JldHVybiBjRChXQyhlMywxKSxqd2UsMjg1LDAsW2ppZCxjaWQsZ2lkLGlpZCxkaWQsZWlkLGZpZCxoaWRdKX1cbmZ1bmN0aW9uIGhwYygpe2VwYygpO3JldHVybiBjRChXQyhoVywxKSxqd2UsMjc2LDAsW1pvYyxhcGMsWW9jLGRwYyxfb2MsJG9jLGNwYyxicGNdKX1cbmZ1bmN0aW9uIEtjYyhhKXt2YXIgYjtiPUtmYihVRChtUWIoYSwoeUNjKCksRkFjKSkpKTtpZihiPDApe2I9MDtwUWIoYSxGQWMsYil9cmV0dXJuIGJ9XG5mdW5jdGlvbiBPZGMoYSxiKXt2YXIgYyxkO2ZvcihkPWEuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSw3Mik7cFFiKGMsKFl3YygpLHN3YyksYil9fVxuZnVuY3Rpb24gT2ljKGEsYixjKXt2YXIgZDtkPSR3bmQuTWF0aC5tYXgoMCxhLmIvMi0wLjUpO0lpYyhjLGQsMSk7Um1iKGIsbmV3IFhpYyhjLGQpKX1cbmZ1bmN0aW9uIGxSYyhhLGIsYyl7dmFyIGQ7ZD1hLmEuZVtSRChiLmEsMTApLnBdLWEuYS5lW1JEKGMuYSwxMCkucF07cmV0dXJuIGVFKExnYihkKSl9XG5mdW5jdGlvbiBQRGIoYSxiKXt2YXIgYztNQ2IoYSk7Yz1uZXcgY0ViKGEsYS5hLnpkKCksYS5hLnlkKCl8NCxiKTtyZXR1cm4gbmV3IFNEYihhLGMpfVxuZnVuY3Rpb24gZ3ZiKGEpe3ZhciBiO3lGYighIWEuYyk7Yj1hLmMuYTtXdWIoYS5kLGEuYyk7YS5iPT1hLmM/KGEuYj1iKTotLWEuYTthLmM9bnVsbH1cbmZ1bmN0aW9uIGlxYyhhKXthLmE+PS0wLjAxJiZhLmE8PVR5ZSYmKGEuYT0wKTthLmI+PS0wLjAxJiZhLmI8PVR5ZSYmKGEuYj0wKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIEhpZChhKXt0aWQoKTt2YXIgYixjO2M9S0VlO2ZvcihiPTA7YjxhLmxlbmd0aDtiKyspe2FbYl0+YyYmKGM9YVtiXSl9cmV0dXJuIGN9XG5mdW5jdGlvbiBadmQoYSxiKXt2YXIgYztjPXdZZChhLkRoKCksYik7aWYoIWMpe3Rocm93IEFkYihuZXcgYWdiKEtIZStiK05IZSkpfXJldHVybiBjfVxuZnVuY3Rpb24gTkdkKGEsYil7dmFyIGM7Yz1hO3doaWxlKHZDZChjKSl7Yz12Q2QoYyk7aWYoYz09Yil7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIGl4KGEsYil7dmFyIGMsZCxlO2Q9Yi5hLmxkKCk7Yz1SRChiLmEubWQoKSwxNikuZ2MoKTtmb3IoZT0wO2U8YztlKyspe2EuQ2QoZCl9fVxuZnVuY3Rpb24gVW1iKGEsYil7dmFyIGMsZCxlLGY7dUZiKGIpO2ZvcihkPWEuYyxlPTAsZj1kLmxlbmd0aDtlPGY7KytlKXtjPWRbZV07Yi5DZChjKX19XG5mdW5jdGlvbiBxMGIoYSxiLGMsZCxlLGYpe3ZhciBnO2c9czBiKGQpO1kwYihnLGUpO1owYihnLGYpO1JjKGEuYSxkLG5ldyBKMGIoZyxiLGMuZikpfVxuZnVuY3Rpb24gUDhjKGEsYil7SXhkKGEsKFg2YygpLFQ2YyksYi5mKTtJeGQoYSxRNmMsYi5lKTtJeGQoYSxTNmMsYi5kKTtJeGQoYSxQNmMsYi5jKX1cbmZ1bmN0aW9uIGdyYyhhLGIpe3RoaXMuYT1uZXcgVHNiO3RoaXMuZT1uZXcgVHNiO3RoaXMuYj0obERjKCksa0RjKTt0aGlzLmM9YTt0aGlzLmI9Yn1cbmZ1bmN0aW9uIHlkKGEpe3RoaXMuZD1hO3RoaXMuYz1hLmMudmMoKS5LYygpO3RoaXMuYj1udWxsO3RoaXMuYT1udWxsO3RoaXMuZT0oenMoKSx5cyl9XG5mdW5jdGlvbiBXdWIoYSxiKXt2YXIgYztjPWIuYztiLmEuYj1iLmI7Yi5iLmE9Yi5hO2IuYT1iLmI9bnVsbDtiLmM9bnVsbDstLWEuYjtyZXR1cm4gY31cbmZ1bmN0aW9uIEVzYihhLGIpe2lmKCEhYiYmYS5iW2IuZ109PWIpe2JEKGEuYixiLmcsbnVsbCk7LS1hLmM7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24ganhiKGEsYil7aWYoMD5hfHxhPmIpe3Rocm93IEFkYihuZXcgeGViKCdmcm9tSW5kZXg6IDAsIHRvSW5kZXg6ICcrYStReGUrYikpfX1cbmZ1bmN0aW9uIFpIZChhKXtpZihhPDApe3Rocm93IEFkYihuZXcgYWdiKCdJbGxlZ2FsIENhcGFjaXR5OiAnK2EpKX10aGlzLmc9dGhpcy5haihhKX1cbmZ1bmN0aW9uIF95KGEsYil7WnkoKTtieihwd2UpO3JldHVybiAkd25kLk1hdGguYWJzKGEtYik8PXB3ZXx8YT09Ynx8aXNOYU4oYSkmJmlzTmFOKGIpfVxuZnVuY3Rpb24geEpjKGEsYil7dmFyIGMsZCxlLGY7Zm9yKGQ9YS5kLGU9MCxmPWQubGVuZ3RoO2U8ZjsrK2Upe2M9ZFtlXTtwSmMoYS5nLGMpLmE9Yn19XG5mdW5jdGlvbiBCSWMoYSxiLGMpe3ZhciBkLGUsZjtlPWJbY107Zm9yKGQ9MDtkPGUubGVuZ3RoO2QrKyl7Zj1lW2RdO2EuZVtmLmMucF1bZi5wXT1kfX1cbmZ1bmN0aW9uIG5xYyhhKXt2YXIgYjtmb3IoYj0wO2I8YS5jLmxlbmd0aDtiKyspeyh0RmIoYixhLmMubGVuZ3RoKSxSRChhLmNbYl0sMTIpKS5wPWJ9fVxuZnVuY3Rpb24gcXFjKGEpe3ZhciBiLGM7Yj1hLmEuZC5qO2M9YS5jLmQuajt3aGlsZShiIT1jKXt6c2IoYS5iLGIpO2I9dHBkKGIpfXpzYihhLmIsYil9XG5mdW5jdGlvbiBnamQoYSl7dmFyIGI7Yj0kd25kLk1hdGguc3FydChhLmEqYS5hK2EuYiphLmIpO2lmKGI+MCl7YS5hLz1iO2EuYi89Yn1yZXR1cm4gYX1cbmZ1bmN0aW9uIEJYZChhKXt2YXIgYjtpZihhLncpe3JldHVybiBhLnd9ZWxzZXtiPUNYZChhKTshIWImJiFiLlZoKCkmJihhLnc9Yik7cmV0dXJuIGJ9fVxuZnVuY3Rpb24gbDJkKGEsYil7dmFyIGMsZDtkPWEuYTtjPW0yZChhLGIsbnVsbCk7ZCE9YiYmIWEuZSYmKGM9bzJkKGEsYixjKSk7ISFjJiZjLm9qKCl9XG5mdW5jdGlvbiByUWMoYSxiLGMpe3ZhciBkLGU7ZD1iO2Rve2U9S2ZiKGEucFtkLnBdKStjO2EucFtkLnBdPWU7ZD1hLmFbZC5wXX13aGlsZShkIT1iKX1cbmZ1bmN0aW9uIGhlYihhLGIsYyl7dmFyIGQ9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShkLGFyZ3VtZW50cyl9O2IuYXBwbHkoZCxjKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIEdhZShhKXt2YXIgYjtpZihhPT1udWxsKXtyZXR1cm4gbnVsbH1lbHNle2I9UkQoYSwxOTUpO3JldHVybiBzQWQoYixiLmxlbmd0aCl9fVxuZnVuY3Rpb24gUUhkKGEsYil7aWYoYS5nPT1udWxsfHxiPj1hLmkpdGhyb3cgQWRiKG5ldyB5TmQoYixhLmkpKTtyZXR1cm4gYS5XaShiLGEuZ1tiXSl9XG5mdW5jdGlvbiBEb2IoYSxiKXt5b2IoKTt2YXIgYyxkO2Q9bmV3IGJuYjtmb3IoYz0wO2M8YTsrK2Mpe1pFYihkLmMsYil9cmV0dXJuIG5ldyBpcmIoZCl9XG5mdW5jdGlvbiBORGIoYSl7TUNiKGEpO3pGYih0cnVlLCduIG1heSBub3QgYmUgbmVnYXRpdmUnKTtyZXR1cm4gbmV3IFNEYihhLG5ldyBERWIoYS5hKSl9XG5mdW5jdGlvbiBLS2IoYSl7YS5iPShFS2IoKSxCS2IpO2EuZj0odkxiKCksdExiKTthLmQ9KGRrKDIsaXdlKSxuZXcgY25iKDIpKTthLmU9bmV3IHBqZH1cbmZ1bmN0aW9uIHpyZChhKXt0aGlzLmI9KFFiKGEpLG5ldyBkbmIoYSkpO3RoaXMuYT1uZXcgYm5iO3RoaXMuZD1uZXcgYm5iO3RoaXMuZT1uZXcgcGpkfVxuZnVuY3Rpb24gWkpiKCl7WkpiPWdlYjtXSmI9bmV3ICRKYignQkVHSU4nLDApO1hKYj1uZXcgJEpiKEt5ZSwxKTtZSmI9bmV3ICRKYignRU5EJywyKX1cbmZ1bmN0aW9uIE9tZCgpe09tZD1nZWI7TG1kPW5ldyBQbWQoS3llLDApO01tZD1uZXcgUG1kKCdIRUFEJywxKTtObWQ9bmV3IFBtZCgnVEFJTCcsMil9XG5mdW5jdGlvbiBSX2MoKXtSX2M9Z2ViO1FfYz1tZmQobWZkKG1mZChyZmQobmV3IHVmZCwoWVZjKCksVlZjKSksKFdZYygpLFZZYykpLE9ZYyksU1ljKX1cbmZ1bmN0aW9uIEIwYygpe0IwYz1nZWI7QTBjPW1mZChtZmQobWZkKHJmZChuZXcgdWZkLChZVmMoKSxYVmMpKSwoV1ljKCksUVljKSksTFljKSxQWWMpfVxuZnVuY3Rpb24gZ3RjKCl7Z3RjPWdlYjtmdGM9c3MoKGJ0YygpLGNEKFdDKFpXLDEpLGp3ZSwyMzIsMCxbWnNjLF9zYyxZc2MsJHNjLGF0YyxYc2NdKSkpfVxuZnVuY3Rpb24genVjKCl7enVjPWdlYjt5dWM9c3MoKHR1YygpLGNEKFdDKGVYLDEpLGp3ZSwyODMsMCxbb3VjLG51YyxxdWMscHVjLHN1YyxydWNdKSkpfVxuZnVuY3Rpb24gVHVjKCl7VHVjPWdlYjtTdWM9c3MoKE91YygpLGNEKFdDKGdYLDEpLGp3ZSwyODEsMCxbTHVjLEt1YyxOdWMsSnVjLE11YyxJdWNdKSkpfVxuZnVuY3Rpb24gZHZjKCl7ZHZjPWdlYjtjdmM9c3MoKCR1YygpLGNEKFdDKGhYLDEpLGp3ZSwyODIsMCxbWXVjLFZ1YyxadWMsWHVjLFd1YyxVdWNdKSkpfVxuZnVuY3Rpb24gdzNiKCl7dzNiPWdlYjt2M2I9c3MoKHIzYigpLGNEKFdDKGhSLDEpLGp3ZSwyNzMsMCxbcDNiLG8zYixtM2IscTNiLG4zYixsM2JdKSkpfVxuZnVuY3Rpb24gV2pkKCl7V2pkPWdlYjtWamQ9c3MoKFJqZCgpLGNEKFdDKG4zLDEpLGp3ZSwyNTUsMCxbTGpkLE9qZCxQamQsUWpkLE1qZCxOamRdKSkpfVxuZnVuY3Rpb24gemtkKCl7emtkPWdlYjt5a2Q9c3MoKHVrZCgpLGNEKFdDKHEzLDEpLGp3ZSwyOTgsMCxbdGtkLHNrZCxya2QscGtkLG9rZCxxa2RdKSkpfVxuZnVuY3Rpb24gbm5kKCl7bm5kPWdlYjttbmQ9c3MoKGluZCgpLGNEKFdDKHYzLDEpLGp3ZSwzMjEsMCxbZ25kLGVuZCxobmQsY25kLGZuZCxkbmRdKSkpfVxuZnVuY3Rpb24gSW9kKCl7SW9kPWdlYjtIb2Q9c3MoKEJvZCgpLGNEKFdDKEMzLDEpLGp3ZSwxMDEsMCxbQW9kLHpvZCx5b2Qsdm9kLHhvZCx3b2RdKSkpfVxuZnVuY3Rpb24gV29kKCl7V29kPWdlYjtWb2Q9c3MoKFBvZCgpLGNEKFdDKEQzLDEpLGp3ZSwyNzksMCxbTm9kLExvZCxNb2QsS29kLEpvZCxPb2RdKSkpfVxuZnVuY3Rpb24ga0tiKCl7a0tiPWdlYjtqS2I9KFpKYigpLGNEKFdDKEpOLDEpLGp3ZSwyMzcsMCxbV0piLFhKYixZSmJdKSkubGVuZ3RoO2lLYj1qS2J9XG5mdW5jdGlvbiBob2QoKXtkb2QoKTtyZXR1cm4gY0QoV0MoQTMsMSksandlLDk1LDAsW1huZCxXbmQsWm5kLGNvZCxib2QsYW9kLCRuZCxfbmQsWW5kXSl9XG5mdW5jdGlvbiBlb2MoYSxiKXtNbmMoKTtyZXR1cm4gaGdiKGEuYi5jLmxlbmd0aC1hLmUuYy5sZW5ndGgsYi5iLmMubGVuZ3RoLWIuZS5jLmxlbmd0aCl9XG5mdW5jdGlvbiBBbyhhLGIpe3JldHVybiAkdihHbyhhLGIsWWRiKE5kYihjd2UscWdiKFlkYihOZGIoYj09bnVsbD8wOnRiKGIpLGR3ZSkpLDE1KSkpKSl9XG5mdW5jdGlvbiByR2IoYSxiKXtyZXR1cm4gWnkoKSxieihwd2UpLCR3bmQuTWF0aC5hYnMoYS1iKTw9cHdlfHxhPT1ifHxpc05hTihhKSYmaXNOYU4oYil9XG5mdW5jdGlvbiBXeGQoYSxiKXt2YXIgYztjPWEuYjthLmI9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBMM2QoYSwxLGMsYS5iKSl9XG5mdW5jdGlvbiBIemQoYSxiKXt2YXIgYztjPWEuYjthLmI9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBMM2QoYSwzLGMsYS5iKSl9XG5mdW5jdGlvbiBBeWQoYSxiKXt2YXIgYztjPWEuZjthLmY9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBMM2QoYSwzLGMsYS5mKSl9XG5mdW5jdGlvbiBDeWQoYSxiKXt2YXIgYztjPWEuZzthLmc9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBMM2QoYSw0LGMsYS5nKSl9XG5mdW5jdGlvbiBEeWQoYSxiKXt2YXIgYztjPWEuaTthLmk9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBMM2QoYSw1LGMsYS5pKSl9XG5mdW5jdGlvbiBFeWQoYSxiKXt2YXIgYztjPWEuajthLmo9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBMM2QoYSw2LGMsYS5qKSl9XG5mdW5jdGlvbiBPemQoYSxiKXt2YXIgYztjPWEuajthLmo9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBMM2QoYSwxLGMsYS5qKSl9XG5mdW5jdGlvbiBJemQoYSxiKXt2YXIgYztjPWEuYzthLmM9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBMM2QoYSw0LGMsYS5jKSl9XG5mdW5jdGlvbiBQemQoYSxiKXt2YXIgYztjPWEuazthLms9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBMM2QoYSwyLGMsYS5rKSl9XG5mdW5jdGlvbiBWeGQoYSxiKXt2YXIgYztjPWEuYTthLmE9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBMM2QoYSwwLGMsYS5hKSl9XG5mdW5jdGlvbiAkVmQoYSxiKXt2YXIgYztjPWEuczthLnM9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBNM2QoYSw0LGMsYS5zKSl9XG5mdW5jdGlvbiBiV2QoYSxiKXt2YXIgYztjPWEudDthLnQ9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBNM2QoYSw1LGMsYS50KSl9XG5mdW5jdGlvbiBRMWQoYSxiKXt2YXIgYztjPWEuZDthLmQ9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBNM2QoYSwyLGMsYS5kKSl9XG5mdW5jdGlvbiB6WGQoYSxiKXt2YXIgYztjPWEuRjthLkY9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDUsYyxiKSl9XG5mdW5jdGlvbiBJTWQoYSxiKXt2YXIgYztjPVJEKFdqYigoUFJkKCksT1JkKSxhKSw1Nyk7cmV0dXJuIGM/Yy5nayhiKTokQyhqSixydmUsMSxiLDUsMSl9XG5mdW5jdGlvbiBCWGIoYSxiKXt2YXIgYztjPW9qZChhamQoUkQoV2piKGEuZyxiKSw4KSksUGlkKFJEKFdqYihhLmYsYiksNDcwKS5iKSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBGR2QoYSxiKXt2YXIgYyxkLGU7Yz0oZD0oYnZkKCksZT1uZXcgaENkLGUpLCEhYiYmZUNkKGQsYiksZCk7ZkNkKGMsYSk7cmV0dXJuIGN9XG5mdW5jdGlvbiB2RGQoYSxiKXt2YXIgYyxkO2M9YiBpbiBhLmE7aWYoYyl7ZD1xQyhhLGIpLnJlKCk7aWYoZCl7cmV0dXJuIGQuYX19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBqWmQoYSxiLGMpe2dIZChhLGMpO2lmKCFhLmtsKCkmJmMhPW51bGwmJiFhLmZrKGMpKXt0aHJvdyBBZGIobmV3IHllYil9cmV0dXJuIGN9XG5mdW5jdGlvbiBNcWQoYSxiKXthLm49YjtpZihhLm4pe2EuZj1uZXcgYm5iO2EuZT1uZXcgYm5ifWVsc2V7YS5mPW51bGw7YS5lPW51bGx9cmV0dXJuIGF9XG5mdW5jdGlvbiBGZmIoYSxiKXt2YXIgYztpZighYSl7cmV0dXJufWIubj1hO3ZhciBkPXpmYihiKTtpZighZCl7ZWViW2FdPVtiXTtyZXR1cm59ZC5SbT1ifVxuZnVuY3Rpb24gU0QoYSl7dmFyIGI7Q0ZiKGE9PW51bGx8fEFycmF5LmlzQXJyYXkoYSkmJihiPVhDKGEpLCEoYj49MTQmJmI8PTE2KSkpO3JldHVybiBhfVxuZnVuY3Rpb24gd3MoYSxiKXt2YXIgYzt1RmIoYik7Yz1hWyc6JytiXTttRmIoISFjLCdFbnVtIGNvbnN0YW50IHVuZGVmaW5lZDogJytiKTtyZXR1cm4gY31cbmZ1bmN0aW9uIHRmYihhLGIsYyxkLGUsZil7dmFyIGc7Zz1yZmIoYSxiKTtGZmIoYyxnKTtnLmk9ZT84OjA7Zy5mPWQ7Zy5lPWU7Zy5nPWY7cmV0dXJuIGd9XG5mdW5jdGlvbiBSM2QoYSxiLGMsZCxlKXt0aGlzLmQ9Yjt0aGlzLms9ZDt0aGlzLmY9ZTt0aGlzLm89LTE7dGhpcy5wPTE7dGhpcy5jPWE7dGhpcy5hPWN9XG5mdW5jdGlvbiBUM2QoYSxiLGMsZCxlKXt0aGlzLmQ9Yjt0aGlzLms9ZDt0aGlzLmY9ZTt0aGlzLm89LTE7dGhpcy5wPTI7dGhpcy5jPWE7dGhpcy5hPWN9XG5mdW5jdGlvbiBfM2QoYSxiLGMsZCxlKXt0aGlzLmQ9Yjt0aGlzLms9ZDt0aGlzLmY9ZTt0aGlzLm89LTE7dGhpcy5wPTY7dGhpcy5jPWE7dGhpcy5hPWN9XG5mdW5jdGlvbiBlNGQoYSxiLGMsZCxlKXt0aGlzLmQ9Yjt0aGlzLms9ZDt0aGlzLmY9ZTt0aGlzLm89LTE7dGhpcy5wPTc7dGhpcy5jPWE7dGhpcy5hPWN9XG5mdW5jdGlvbiBYM2QoYSxiLGMsZCxlKXt0aGlzLmQ9Yjt0aGlzLmo9ZDt0aGlzLmU9ZTt0aGlzLm89LTE7dGhpcy5wPTQ7dGhpcy5jPWE7dGhpcy5hPWN9XG5mdW5jdGlvbiBpR2IoYSxiKXt2YXIgYyxkLGUsZjtmb3IoZD1iLGU9MCxmPWQubGVuZ3RoO2U8ZjsrK2Upe2M9ZFtlXTtlR2IoYS5hLGMpfXJldHVybiBhfVxuZnVuY3Rpb24gQWwoYSl7dmFyIGIsYyxkLGU7Zm9yKGM9YSxkPTAsZT1jLmxlbmd0aDtkPGU7KytkKXtiPWNbZF07UWIoYil9cmV0dXJuIG5ldyBHbChhKX1cbmZ1bmN0aW9uIFpUYihhKXt2YXIgYjtiPW9qZChhamQoYS5kLmQpLGEuYy5kKTt3aWQoYixhLmMuZS5hLGEuYy5lLmIpO3JldHVybiAkaWQoYixhLmMuZCl9XG5mdW5jdGlvbiAkVGIoYSl7dmFyIGI7Yj1vamQoYWpkKGEuYy5kKSxhLmQuZCk7d2lkKGIsYS5kLmUuYSxhLmQuZS5iKTtyZXR1cm4gJGlkKGIsYS5kLmQpfVxuZnVuY3Rpb24gaUEoYSl7dmFyIGI9L2Z1bmN0aW9uKD86XFxzKyhbXFx3JF0rKSk/XFxzKlxcKC87dmFyIGM9Yi5leGVjKGEpO3JldHVybiBjJiZjWzFdfHx3d2V9XG5mdW5jdGlvbiBIbmIoYSxiLGMpe3ZhciBkLGU7ZT1hLmxlbmd0aDtkPSR3bmQuTWF0aC5taW4oYyxlKTtWRWIoYSwwLGIsMCxkLHRydWUpO3JldHVybiBifVxuZnVuY3Rpb24gSVNiKGEsYixjKXt2YXIgZCxlO2ZvcihlPWIuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSw3NCk7WXNiKGEsUkQoYy5LYihkKSwyNykpfX1cbmZ1bmN0aW9uIEUxYihhLGIpe0NvZChSRChtUWIoUkQoYS5lLDEwKSwoeUNjKCksQkJjKSksMTAxKSkmJih5b2IoKSxfbWIoUkQoYS5lLDEwKS5qLGIpKX1cbmZ1bmN0aW9uIGxJYigpe2lJYigpO3JldHVybiBjRChXQyh4TiwxKSxqd2UsMjU3LDAsW2hJYixjSWIsZEliLGJJYixmSWIsZ0liLGVJYixhSWIsX0hiXSl9XG5mdW5jdGlvbiBmRGMoKXtfQ2MoKTtyZXR1cm4gY0QoV0MoclgsMSksandlLDI2NSwwLFtaQ2MsV0NjLFhDYyxUQ2MsVkNjLCRDYyxZQ2MsU0NjLFVDY10pfVxuZnVuY3Rpb24gUktjKCl7UktjPWdlYjtPS2M9bmV3IFNLYygnQkFSWUNFTlRFUicsMCk7UEtjPW5ldyBTS2MoakJlLDEpO1FLYz1uZXcgU0tjKGtCZSwyKX1cbmZ1bmN0aW9uIHVGYygpe3VGYz1nZWI7dEZjPW5ldyB2RmMoJ05PJywwKTtyRmM9bmV3IHZGYyhDQmUsMSk7c0ZjPW5ldyB2RmMoJ0xPT0tfQkFDSycsMil9XG5mdW5jdGlvbiBFdGMoKXtFdGM9Z2ViO0J0Yz1uZXcgRnRjKCdBUkQnLDApO0R0Yz1uZXcgRnRjKCdNU0QnLDEpO0N0Yz1uZXcgRnRjKCdNQU5VQUwnLDIpfVxuZnVuY3Rpb24gQkVjKCl7QkVjPWdlYjtBRWM9bmV3IENFYyhTeWUsMCk7eUVjPW5ldyBDRWMoJ0lOUFVUJywxKTt6RWM9bmV3IENFYygnT1VUUFVUJywyKX1cbmZ1bmN0aW9uIHlnZCgpe2lmKCFxZ2Qpe3FnZD1uZXcgeGdkO3dnZChxZ2QsY0QoV0MoQjIsMSkscnZlLDEzNCwwLFtuZXcgdm1kXSkpfXJldHVybiBxZ2R9XG5mdW5jdGlvbiBieihhKXtpZighKGE+PTApKXt0aHJvdyBBZGIobmV3IGFnYigndG9sZXJhbmNlICgnK2ErJykgbXVzdCBiZSA+PSAwJykpfXJldHVybiBhfVxuZnVuY3Rpb24gaE9kKGEsYil7dmFyIGM7aWYoWkQoYiw0NCkpe3JldHVybiBhLmMuTWMoYil9ZWxzZXtjPVFOZChhLGIpO2pPZChhLGIpO3JldHVybiBjfX1cbmZ1bmN0aW9uIHlCZChhLGIsYyl7WVZkKGEsYik7UEFkKGEsYyk7JFZkKGEsMCk7YldkKGEsMSk7YVdkKGEsdHJ1ZSk7X1ZkKGEsdHJ1ZSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBaR2QoYSxiKXt2YXIgYztjPWEuZ2MoKTtpZihiPDB8fGI+Yyl0aHJvdyBBZGIobmV3IGFNZChiLGMpKTtyZXR1cm4gbmV3IENNZChhLGIpfVxuZnVuY3Rpb24gQ2FkKGEsYil7YS5iPSR3bmQuTWF0aC5tYXgoYS5iLGIuZCk7YS5lKz1iLnIrKGEuYS5jLmxlbmd0aD09MD8wOmEuYyk7Um1iKGEuYSxiKX1cbmZ1bmN0aW9uIEptYihhKXt5RmIoYS5jPj0wKTtpZihybWIoYS5kLGEuYyk8MCl7YS5hPWEuYS0xJmEuZC5hLmxlbmd0aC0xO2EuYj1hLmQuY31hLmM9LTF9XG5mdW5jdGlvbiBOYyhhKXt2YXIgYixjO2ZvcihjPWEuYy5DYygpLktjKCk7Yy5PYigpOyl7Yj1SRChjLlBiKCksMTYpO2IuJGIoKX1hLmMuJGIoKTthLmQ9MH1cbmZ1bmN0aW9uIFppKGEpe3ZhciBiLGMsZCxlO2ZvcihjPWEuYSxkPTAsZT1jLmxlbmd0aDtkPGU7KytkKXtiPWNbZF07Um5iKGIsYi5sZW5ndGgsbnVsbCl9fVxuZnVuY3Rpb24gempkKGEsYil7dmFyIGMsZCxlLGY7Zm9yKGQ9YixlPTAsZj1kLmxlbmd0aDtlPGY7KytlKXtjPWRbZV07UHViKGEsYyxhLmMuYixhLmMpfX1cbmZ1bmN0aW9uIFN0KGEsYil7dmFyIGMsZDtmb3IoYz0wLGQ9YS5nYygpO2M8ZDsrK2Mpe2lmKEZ2YihiLGEuWGIoYykpKXtyZXR1cm4gY319cmV0dXJuIC0xfVxuZnVuY3Rpb24gb2diKGEpe3ZhciBiLGM7aWYoYT09MCl7cmV0dXJuIDMyfWVsc2V7Yz0wO2ZvcihiPTE7KGImYSk9PTA7Yjw8PTEpeysrY31yZXR1cm4gY319XG5mdW5jdGlvbiBkayhhLGIpe2lmKGE8MCl7dGhyb3cgQWRiKG5ldyBhZ2IoYisnIGNhbm5vdCBiZSBuZWdhdGl2ZSBidXQgd2FzOiAnK2EpKX1yZXR1cm4gYX1cbmZ1bmN0aW9uIGRlYihhLGIpe3R5cGVvZiB3aW5kb3c9PT1ndmUmJnR5cGVvZiB3aW5kb3dbJyRnd3QnXT09PWd2ZSYmKHdpbmRvd1snJGd3dCddW2FdPWIpfVxuZnVuY3Rpb24gbHAoYSxiKXtyZXR1cm4gVnYoSG8oYS5hLGIsWWRiKE5kYihjd2UscWdiKFlkYihOZGIoYj09bnVsbD8wOnRiKGIpLGR3ZSkpLDE1KSkpKSl9XG5mdW5jdGlvbiBGQmIoYSxiLGMpe3JldHVybiBzQmIoYSxuZXcgQ0NiKGIpLG5ldyBFQ2IsbmV3IEdDYihjKSxjRChXQyhRTCwxKSxqd2UsMTA4LDAsW10pKX1cbmZ1bmN0aW9uIGdxZCgpe2RxZCgpO3JldHVybiBjRChXQyhJMywxKSxqd2UsMjY0LDAsW1lwZCwkcGQsWHBkLF9wZCxhcWQsY3FkLGJxZCxacGQsV3BkXSl9XG5mdW5jdGlvbiB3Z2IoKXt3Z2I9Z2ViO3ZnYj1jRChXQyhrRSwxKSxQd2UsMjgsMTUsWzAsOCw0LDEyLDIsMTAsNiwxNCwxLDksNSwxMywzLDExLDcsMTVdKX1cbmZ1bmN0aW9uIHN0Yygpe3N0Yz1nZWI7cXRjPW5ldyB1dGMoJ0xBWUVSX1NXRUVQJywwKTtwdGM9bmV3IHV0YyhCQmUsMSk7cnRjPW5ldyB1dGMoTEFlLDIpfVxuZnVuY3Rpb24gbkdjKCl7bkdjPWdlYjttR2M9cGZkKHBmZChwZmQobmV3IHVmZCwoc1hiKCksblhiKSwoaGNjKCksb2JjKSksb1hiLE5iYykscFhiLE1iYyl9XG5mdW5jdGlvbiB5R2MoKXt5R2M9Z2ViO3hHYz1wZmQocGZkKHBmZChuZXcgdWZkLChzWGIoKSxuWGIpLChoY2MoKSxvYmMpKSxvWGIsTmJjKSxwWGIsTWJjKX1cbmZ1bmN0aW9uIFNHYygpe1NHYz1nZWI7UkdjPXBmZChwZmQocGZkKG5ldyB1ZmQsKHNYYigpLG5YYiksKGhjYygpLG9iYykpLG9YYixOYmMpLHBYYixNYmMpfVxuZnVuY3Rpb24gbEhjKCl7bEhjPWdlYjtrSGM9cGZkKHBmZChwZmQobmV3IHVmZCwoc1hiKCksblhiKSwoaGNjKCksb2JjKSksb1hiLE5iYykscFhiLE1iYyl9XG5mdW5jdGlvbiB0SGMoKXt0SGM9Z2ViO3NIYz1wZmQocGZkKHBmZChuZXcgdWZkLChzWGIoKSxuWGIpLChoY2MoKSxvYmMpKSxvWGIsTmJjKSxwWGIsTWJjKX1cbmZ1bmN0aW9uIFJIYygpe1JIYz1nZWI7UUhjPXBmZChwZmQocGZkKG5ldyB1ZmQsKHNYYigpLG5YYiksKGhjYygpLG9iYykpLG9YYixOYmMpLHBYYixNYmMpfVxuZnVuY3Rpb24gWUpjKCl7WUpjPWdlYjtYSmM9bmZkKHBmZChwZmQobmV3IHVmZCwoc1hiKCkscFhiKSwoaGNjKCksUWJjKSkscVhiLEdiYyksclhiLFBiYyl9XG5mdW5jdGlvbiBFSmIoYSl7dmFyIGIsYztmb3IoYz1uZXcgQW5iKHl1ZChhKSk7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDY5NSk7Yi5fZigpfX1cbmZ1bmN0aW9uIGFlYigpe2JlYigpO3ZhciBhPV9kYjtmb3IodmFyIGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKXthLnB1c2goYXJndW1lbnRzW2JdKX19XG5mdW5jdGlvbiBFWGIoYSl7elhiKCk7dGhpcy5nPW5ldyBUc2I7dGhpcy5mPW5ldyBUc2I7dGhpcy5iPW5ldyBUc2I7dGhpcy5jPW5ldyBUcDt0aGlzLmk9YX1cbmZ1bmN0aW9uIGQxYigpe3RoaXMuZj1uZXcgcGpkO3RoaXMuZD1uZXcgQzNiO3RoaXMuYz1uZXcgcGpkO3RoaXMuYT1uZXcgYm5iO3RoaXMuYj1uZXcgYm5ifVxuZnVuY3Rpb24gQ2plKGEsYixjLGQpe3RoaXMuYWsoKTt0aGlzLmE9Yjt0aGlzLmI9YTt0aGlzLmM9bnVsbDt0aGlzLmM9bmV3IERqZSh0aGlzLGIsYyxkKX1cbmZ1bmN0aW9uIE5LZChhLGIsYyxkLGUpe3RoaXMuZD1hO3RoaXMubj1iO3RoaXMuZz1jO3RoaXMubz1kO3RoaXMucD0tMTtlfHwodGhpcy5vPS0yLWQtMSl9XG5mdW5jdGlvbiBIV2QoKXtkV2QuY2FsbCh0aGlzKTt0aGlzLm49LTE7dGhpcy5nPW51bGw7dGhpcy5pPW51bGw7dGhpcy5qPW51bGw7dGhpcy5CYnw9Z3dlfVxuZnVuY3Rpb24gREViKGEpe3h4Yi5jYWxsKHRoaXMsYS5BZCg2NCk/S2diKDAsVmRiKGEuemQoKSwxKSk6U3ZlLGEueWQoKSk7dGhpcy5iPTE7dGhpcy5hPWF9XG5mdW5jdGlvbiBYX2MoYSxiKXtSX2MoKTtyZXR1cm4gUkQobVFiKGIsKGhfYygpLFckYykpLDE3KS5hPGEuZ2MoKSYmUkQobVFiKGIsVyRjKSwxNykuYT49MH1cbmZ1bmN0aW9uIElxZChhLGIpe2lmKGEucj4wJiZhLmM8YS5yKXthLmMrPWI7ISFhLmkmJmEuaS5kPjAmJmEuZyE9MCYmSXFkKGEuaSxiL2EuciphLmkuZCl9fVxuZnVuY3Rpb24gJENkKGEsYil7dmFyIGM7Yz1hLmM7YS5jPWI7KGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsMSwxLGMsYS5jKSl9XG5mdW5jdGlvbiBQMWQoYSxiKXt2YXIgYztjPWEuYzthLmM9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDQsYyxhLmMpKX1cbmZ1bmN0aW9uIGp5ZChhLGIpe3ZhciBjO2M9YS5rO2Euaz1iOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDEsMixjLGEuaykpfVxuZnVuY3Rpb24gSlhkKGEsYil7dmFyIGM7Yz1hLkQ7YS5EPWI7KGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsMSwyLGMsYS5EKSl9XG5mdW5jdGlvbiBLemQoYSxiKXt2YXIgYztjPWEuZjthLmY9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDgsYyxhLmYpKX1cbmZ1bmN0aW9uIEx6ZChhLGIpe3ZhciBjO2M9YS5pO2EuaT1iOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDEsNyxjLGEuaSkpfVxuZnVuY3Rpb24gZkNkKGEsYil7dmFyIGM7Yz1hLmE7YS5hPWI7KGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsMSw4LGMsYS5hKSl9XG5mdW5jdGlvbiBaQ2QoYSxiKXt2YXIgYztjPWEuYjthLmI9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDAsYyxhLmIpKX1cbmZ1bmN0aW9uIHM2ZChhLGIpe3ZhciBjO2M9YS5iO2EuYj1iOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDEsMCxjLGEuYikpfVxuZnVuY3Rpb24gdDZkKGEsYil7dmFyIGM7Yz1hLmM7YS5jPWI7KGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsMSwxLGMsYS5jKSl9XG5mdW5jdGlvbiBuVmQoYSxiKXt2YXIgYztjPWEuZDthLmQ9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDEsYyxhLmQpKX1cbmZ1bmN0aW9uIEN0ZShhLGIsYyl7dmFyIGQ7YS5iPWI7YS5hPWM7ZD0oYS5hJjUxMik9PTUxMj9uZXcgR3JlOm5ldyBUcWU7YS5jPU5xZShkLGEuYixhLmEpfVxuZnVuY3Rpb24gR2dlKGEsYil7cmV0dXJuIHFrZShhLmUsYik/KG5rZSgpLHdXZChiKT9uZXcgb2xlKGIsYSk6bmV3IEVrZShiLGEpKTpuZXcgQmxlKGIsYSl9XG5mdW5jdGlvbiBpRGIoYSl7dmFyIGIsYztpZigwPmEpe3JldHVybiBuZXcgckRifWI9YSsxO2M9bmV3IGtEYihiLGEpO3JldHVybiBuZXcgb0RiKG51bGwsYyl9XG5mdW5jdGlvbiBHb2IoYSxiKXt5b2IoKTt2YXIgYztjPW5ldyBVc2IoMSk7YkUoYSk/JGpiKGMsYSxiKTpydGIoYy5mLGEsYik7cmV0dXJuIG5ldyB1cWIoYyl9XG5mdW5jdGlvbiBwUWMoYSxiKXt2YXIgYyxkO2M9YS5jO2Q9Yi5lW2EucF07aWYoZD4wKXtyZXR1cm4gUkQoVm1iKGMuYSxkLTEpLDEwKX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFRPYihhLGIpe3ZhciBjLGQ7Yz1hLm8rYS5wO2Q9Yi5vK2IucDtpZihjPGQpe3JldHVybiAtMX1pZihjPT1kKXtyZXR1cm4gMH1yZXR1cm4gMX1cbmZ1bmN0aW9uIFo1YihhKXt2YXIgYjtiPW1RYihhLChZd2MoKSxBd2MpKTtpZihaRChiLDE2Nykpe3JldHVybiBZNWIoUkQoYiwxNjcpKX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFdwKGEpe3ZhciBiO2E9JHduZC5NYXRoLm1heChhLDIpO2I9bWdiKGEpO2lmKGE+Yil7Yjw8PTE7cmV0dXJuIGI+MD9iOmh3ZX1yZXR1cm4gYn1cbmZ1bmN0aW9uIHhjKGEpe1ViKGEuZSE9Myk7c3dpdGNoKGEuZSl7Y2FzZSAyOnJldHVybiBmYWxzZTtjYXNlIDA6cmV0dXJuIHRydWU7fXJldHVybiB6YyhhKX1cbmZ1bmN0aW9uIGRqZChhLGIpe3ZhciBjO2lmKFpEKGIsOCkpe2M9UkQoYiw4KTtyZXR1cm4gYS5hPT1jLmEmJmEuYj09Yy5ifWVsc2V7cmV0dXJuIGZhbHNlfX1cbmZ1bmN0aW9uIFlkZChhLGIpe3ZhciBjO2M9bmV3IGtSYjtSRChiLmIsNjgpO1JEKGIuYiw2OCk7UkQoYi5iLDY4KTtVbWIoYi5hLG5ldyBjZWQoYSxjLGIpKX1cbmZ1bmN0aW9uIGdPZChhLGIpe3ZhciBjLGQ7Zm9yKGQ9Yi52YygpLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksNDQpO2ZPZChhLGMubGQoKSxjLm1kKCkpfX1cbmZ1bmN0aW9uIEp6ZChhLGIpe3ZhciBjO2M9YS5kO2EuZD1iOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDEsMTEsYyxhLmQpKX1cbmZ1bmN0aW9uIHpXZChhLGIpe3ZhciBjO2M9YS5qO2Euaj1iOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDEsMTMsYyxhLmopKX1cbmZ1bmN0aW9uIGI2ZChhLGIpe3ZhciBjO2M9YS5iO2EuYj1iOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDEsMjEsYyxhLmIpKX1cbmZ1bmN0aW9uIFlBYihhLGIpeygoZ0JiKCksZEJiKT9udWxsOmIuYykubGVuZ3RoPT0wJiZpQmIoYixuZXcgckJiKTskamIoYS5hLGRCYj9udWxsOmIuYyxiKX1cbmZ1bmN0aW9uIGI5YihhLGIpe2IuVWcoJ0hpZXJhcmNoaWNhbCBwb3J0IGNvbnN0cmFpbnQgcHJvY2Vzc2luZycsMSk7YzliKGEpO2U5YihhKTtiLlZnKCl9XG5mdW5jdGlvbiBqb2MoKXtqb2M9Z2ViO2lvYz1uZXcga29jKCdTVEFSVCcsMCk7aG9jPW5ldyBrb2MoJ01JRERMRScsMSk7Z29jPW5ldyBrb2MoJ0VORCcsMil9XG5mdW5jdGlvbiB4MmMoKXt4MmM9Z2ViO3YyYz1uZXcgejJjKCdQMV9OT0RFX1BMQUNFTUVOVCcsMCk7dzJjPW5ldyB6MmMoJ1AyX0VER0VfUk9VVElORycsMSl9XG5mdW5jdGlvbiBKVmIoKXtKVmI9Z2ViO0hWYj1uZXcgakdkKHJBZSk7SVZiPW5ldyBqR2Qoc0FlKTtHVmI9bmV3IGpHZCh0QWUpO0ZWYj1uZXcgakdkKHVBZSl9XG5mdW5jdGlvbiB0a2IoYSl7dmFyIGI7ckZiKGEuZi5nLGEuZCk7c0ZiKGEuYik7YS5jPWEuYTtiPVJEKGEuYS5QYigpLDQ0KTthLmI9c2tiKGEpO3JldHVybiBifVxuZnVuY3Rpb24gUDJkKGEpe3ZhciBiO2lmKGEuYj09bnVsbCl7cmV0dXJuIGozZCgpLGozZCgpLGkzZH1iPWEudWwoKT9hLnRsKCk6YS5zbCgpO3JldHVybiBifVxuZnVuY3Rpb24gbndiKGEsYil7dmFyIGM7Yz1iPT1udWxsPy0xOldtYihhLmIsYiwwKTtpZihjPDApe3JldHVybiBmYWxzZX1vd2IoYSxjKTtyZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIHpzYihhLGIpe3ZhciBjO3VGYihiKTtjPWIuZztpZighYS5iW2NdKXtiRChhLmIsYyxiKTsrK2EuYztyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBhemIoYSxiKXt2YXIgYyxkO2M9MS1iO2Q9YS5hW2NdO2EuYVtjXT1kLmFbYl07ZC5hW2JdPWE7YS5iPXRydWU7ZC5iPWZhbHNlO3JldHVybiBkfVxuZnVuY3Rpb24geFJiKGEsYil7dmFyIGMsZDtmb3IoZD1iLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMjcyKTthLmI9dHJ1ZTtZc2IoYS5lLGMpO2MuYj1hfX1cbmZ1bmN0aW9uIGtpYyhhLGIpe3ZhciBjLGQ7Yz1SRChtUWIoYSwoeUNjKCksSUJjKSksOCk7ZD1SRChtUWIoYixJQmMpLDgpO3JldHVybiBRZmIoYy5iLGQuYil9XG5mdW5jdGlvbiBTUGIoYSxiLGMpe3ZhciBkLGUsZjtmPWI+PjU7ZT1iJjMxO2Q9Q2RiKFVkYihhLm5bY11bZl0sWWRiKFNkYihlLDEpKSksMyk7cmV0dXJuIGR9XG5mdW5jdGlvbiBsbWIoYSxiLGMpe3ZhciBkLGUsZjtmPWEuYS5sZW5ndGgtMTtmb3IoZT1hLmIsZD0wO2Q8YztlPWUrMSZmLCsrZCl7YkQoYixkLGEuYVtlXSl9fVxuZnVuY3Rpb24gb3diKGEsYil7dmFyIGM7Yz1YbWIoYS5iLGEuYi5jLmxlbmd0aC0xKTtpZihiPGEuYi5jLmxlbmd0aCl7JG1iKGEuYixiLGMpO2t3YihhLGIpfX1cbmZ1bmN0aW9uIE5RYyhhLGIpe3ZhciBjO2M9UkQoV2piKGEuYyxiKSw0NjcpO2lmKCFjKXtjPW5ldyBVUWM7Yy5jPWI7WmpiKGEuYyxjLmMsYyl9cmV0dXJuIGN9XG5mdW5jdGlvbiBQVWMoYSxiKXt2YXIgYyxkO2Q9bmV3IGJuYjtjPWI7ZG97WkViKGQuYyxjKTtjPVJEKFdqYihhLmssYyksMTgpfXdoaWxlKGMpO3JldHVybiBkfVxuZnVuY3Rpb24gck1jKGEsYixjKXt2YXIgZDtkPW5ldyBibmI7c01jKGEsYixkLGMsdHJ1ZSx0cnVlKTthLmI9bmV3IF9MYyhkLmMubGVuZ3RoKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIHR2YihhLGIpe3ZhciBjLGQ7Yz1hLlBjKCk7V25iKGMsMCxjLmxlbmd0aCxiKTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKXthLmhkKGQsY1tkXSl9fVxuZnVuY3Rpb24gQmFkKGEpe3ZhciBiLGM7Zm9yKGM9bmV3IGRNZChhKTtjLmUhPWMuaS5nYygpOyl7Yj1SRChiTWQoYyksMjcpO0R5ZChiLDApO0V5ZChiLDApfX1cbmZ1bmN0aW9uIEJ1KGEpe3RoaXMuZT1hO3RoaXMuZD1uZXcgYXRiKFN2KEVjKHRoaXMuZSkuZ2MoKSkpO3RoaXMuYz10aGlzLmUuYTt0aGlzLmI9dGhpcy5lLmN9XG5mdW5jdGlvbiBfTGMoYSl7dGhpcy5iPWE7dGhpcy5hPSRDKGtFLFB3ZSwyOCxhKzEsMTUsMSk7dGhpcy5jPSRDKGtFLFB3ZSwyOCxhLDE1LDEpO3RoaXMuZD0wfVxuZnVuY3Rpb24gZnJjKGEsYixjKXtncmMuY2FsbCh0aGlzLGIsYyk7dGhpcy5kPSRDKGpSLFdBZSwxMCxhLmEuYy5sZW5ndGgsMCwxKTthbmIoYS5hLHRoaXMuZCl9XG5mdW5jdGlvbiB2TGMoYSxiLGMpe1VJYy5jYWxsKHRoaXMsYSxiLGMpO3RoaXMuYT1uZXcgVHNiO3RoaXMuYj1uZXcgVHNiO3RoaXMuZD1uZXcgeUxjKHRoaXMpfVxuZnVuY3Rpb24gUGljKGEpe2ZIYi5jYWxsKHRoaXMpO3RoaXMuYj1LZmIoVUQobVFiKGEsKHlDYygpLFRCYykpKSk7dGhpcy5hPVJEKG1RYihhLHlBYyksMjIzKX1cbmZ1bmN0aW9uIF9xKGEsYil7dmFyIGM7aWYoWkQoYiwxNikpe2M9UkQoYiwxNik7cmV0dXJuIGEuR2MoYyl9cmV0dXJuIHhyKGEsUkQoUWIoYiksMjApLktjKCkpfVxuZnVuY3Rpb24gS0NjKGEsYil7RkRiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihuZXcgWGtiKGEuYiksMSkpLG5ldyBlc2QoYSxiKSksbmV3IGlzZChhLGIpKX1cbmZ1bmN0aW9uIGY2YihhLGIpe2IuVWcoaUJlLDEpO0ZEYihFRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5iLDE2KSksbmV3IGo2YiksbmV3IGw2Yik7Yi5WZygpfVxuZnVuY3Rpb24gdGIoYSl7cmV0dXJuIGJFKGEpP29oYihhKTpfRChhKT9OZmIoYSk6JEQoYSk/SmViKGEpOllEKGEpP2EuSGIoKTphRChhKT9rRmIoYSk6SXooYSl9XG5mdW5jdGlvbiB4S2MoYSl7dmFyIGIsYztmb3IoYz1hLmMuYS5lYygpLktjKCk7Yy5PYigpOyl7Yj1SRChjLlBiKCksMjE5KTtESmMoYixuZXcgTkxjKGIuZikpfX1cbmZ1bmN0aW9uIHlLYyhhKXt2YXIgYixjO2ZvcihjPWEuYy5hLmVjKCkuS2MoKTtjLk9iKCk7KXtiPVJEKGMuUGIoKSwyMTkpO0VKYyhiLG5ldyBPTGMoYi5lKSl9fVxuZnVuY3Rpb24gUEFkKGEsYil7dmFyIGM7Yz1hLnpiO2EuemI9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDEsYyxhLnpiKSl9XG5mdW5jdGlvbiBDQmQoYSxiKXt2YXIgYztjPWEueGI7YS54Yj1iOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDEsMyxjLGEueGIpKX1cbmZ1bmN0aW9uIERCZChhLGIpe3ZhciBjO2M9YS55YjthLnliPWI7KGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsMSwyLGMsYS55YikpfVxuZnVuY3Rpb24gaUJkKGEsYil7dmFyIGMsZDtjPShkPW5ldyBtWGQsZCk7Yy5uPWI7V0dkKCghYS5zJiYoYS5zPW5ldyBDNWQoeTcsYSwyMSwxNykpLGEucyksYyl9XG5mdW5jdGlvbiBvQmQoYSxiKXt2YXIgYyxkO2Q9KGM9bmV3IGQ2ZCxjKTtkLm49YjtXR2QoKCFhLnMmJihhLnM9bmV3IEM1ZCh5NyxhLDIxLDE3KSksYS5zKSxkKX1cbmZ1bmN0aW9uIHllKGEsYil7dmFyIGMsZCxlO3VGYihiKTtjPWZhbHNlO2ZvcihlPWIuS2MoKTtlLk9iKCk7KXtkPWUuUGIoKTtjPWN8YS5GYyhkKX1yZXR1cm4gY31cbmZ1bmN0aW9uIFN4KGEpe3ZhciBiLGMsZDtiPTA7Zm9yKGQ9YS5LYygpO2QuT2IoKTspe2M9ZC5QYigpO2IrPWMhPW51bGw/dGIoYyk6MDtiPX5+Yn1yZXR1cm4gYn1cbmZ1bmN0aW9uIG9DKGUsYSl7dmFyIGI9ZS5hO3ZhciBjPTA7Zm9yKHZhciBkIGluIGIpe2IuaGFzT3duUHJvcGVydHkoZCkmJihhW2MrK109ZCl9cmV0dXJuIGF9XG5mdW5jdGlvbiBnQihhKXt2YXIgYjtpZihhPT0wKXtyZXR1cm4gJ1VUQyd9aWYoYTwwKXthPS1hO2I9J1VUQysnfWVsc2V7Yj0nVVRDLSd9cmV0dXJuIGIraUIoYSl9XG5mdW5jdGlvbiB4aWIoYSl7aWYoYS5hPDU0KXtyZXR1cm4gYS5mPDA/LTE6YS5mPjA/MTowfXJldHVybiAoIWEuYyYmKGEuYz1vamIoSGRiKGEuZikpKSxhLmMpLmV9XG5mdW5jdGlvbiBHWGQoYSxiKXtpZihiKXtpZihhLkI9PW51bGwpe2EuQj1hLkQ7YS5EPW51bGx9fWVsc2UgaWYoYS5CIT1udWxsKXthLkQ9YS5CO2EuQj1udWxsfX1cbmZ1bmN0aW9uIHJaYihhLGIpe25aYigpO3JldHVybiBhPT1qWmImJmI9PW1aYnx8YT09bVpiJiZiPT1qWmJ8fGE9PWxaYiYmYj09a1pifHxhPT1rWmImJmI9PWxaYn1cbmZ1bmN0aW9uIHNaYihhLGIpe25aYigpO3JldHVybiBhPT1qWmImJmI9PWtaYnx8YT09alpiJiZiPT1sWmJ8fGE9PW1aYiYmYj09bFpifHxhPT1tWmImJmI9PWtaYn1cbmZ1bmN0aW9uIHpNYihhLGIpe3JldHVybiBaeSgpLGJ6KFR5ZSksJHduZC5NYXRoLmFicygwLWIpPD1UeWV8fDA9PWJ8fGlzTmFOKDApJiZpc05hTihiKT8wOmEvYn1cbmZ1bmN0aW9uIHFzYyhhLGIpe3JldHVybiBLZmIoVUQoTHZiKE1EYihHRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5jLmIsMTYpKSxuZXcgSXNjKGEpKSxiKSkpKX1cbmZ1bmN0aW9uIHRzYyhhLGIpe3JldHVybiBLZmIoVUQoTHZiKE1EYihHRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5jLmIsMTYpKSxuZXcgR3NjKGEpKSxiKSkpKX1cbmZ1bmN0aW9uIHJ2Yygpe292YygpO3JldHVybiBjRChXQyhpWCwxKSxqd2UsMjU5LDAsW2Z2YyxodmMsaXZjLGp2YyxrdmMsbHZjLG52YyxldmMsZ3ZjLG12Y10pfVxuZnVuY3Rpb24gZEVjKCl7YUVjKCk7cmV0dXJuIGNEKFdDKHZYLDEpLGp3ZSwyNDMsMCxbJERjLFZEYyxZRGMsV0RjLFhEYyxTRGMsWkRjLF9EYyxURGMsVURjXSl9XG5mdW5jdGlvbiB6M2MoYSxiKXt2YXIgYztiLlVnKCdHZW5lcmFsIENvbXBhY3RvcicsMSk7Yz1oNGMoUkQoR3hkKGEsKCQ0YygpLEk0YykpLDM5MykpO2MuQ2coYSl9XG5mdW5jdGlvbiBUNWMoYSxiKXt2YXIgYyxkO2M9UkQoR3hkKGEsKCQ0YygpLFA0YykpLDE3KTtkPVJEKEd4ZChiLFA0YyksMTcpO3JldHVybiBoZ2IoYy5hLGQuYSl9XG5mdW5jdGlvbiBCamQoYSxiLGMpe3ZhciBkLGU7Zm9yKGU9U3ViKGEsMCk7ZS5iIT1lLmQuYzspe2Q9UkQoZXZiKGUpLDgpO2QuYSs9YjtkLmIrPWN9cmV0dXJuIGF9XG5mdW5jdGlvbiBHbyhhLGIsYyl7dmFyIGQ7Zm9yKGQ9YS5iW2MmYS5mXTtkO2Q9ZC5iKXtpZihjPT1kLmEmJkhiKGIsZC5nKSl7cmV0dXJuIGR9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gSG8oYSxiLGMpe3ZhciBkO2ZvcihkPWEuY1tjJmEuZl07ZDtkPWQuZCl7aWYoYz09ZC5mJiZIYihiLGQuaSkpe3JldHVybiBkfX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIHNqYihhLGIsYyl7dmFyIGQsZSxmO2Q9MDtmb3IoZT0wO2U8YztlKyspe2Y9YltlXTthW2VdPWY8PDF8ZDtkPWY+Pj4zMX1kIT0wJiYoYVtjXT1kKX1cbmZ1bmN0aW9uIHl6YihhLGIsYyxkLGUsZil7dmFyIGc7dGhpcy5jPWE7Zz1uZXcgYm5iO1N5YihhLGcsYixhLmIsYyxkLGUsZik7dGhpcy5hPW5ldyBKa2IoZywwKX1cbmZ1bmN0aW9uIF81Yygpe3RoaXMuYz1uZXcgVDJjKDApO3RoaXMuYj1uZXcgVDJjKEZFZSk7dGhpcy5kPW5ldyBUMmMoRUVlKTt0aGlzLmE9bmV3IFQyYyhHemUpfVxuZnVuY3Rpb24ga01iKGEsYixjLGQsZSxmLGcpe3FzLmNhbGwodGhpcyxhLGIpO3RoaXMuZD1jO3RoaXMuZT1kO3RoaXMuYz1lO3RoaXMuYj1mO3RoaXMuYT1kdihnKX1cbmZ1bmN0aW9uIHRCZChhLGIsYyxkLGUsZixnLGgsaSxqLGssbCxtKXtBQmQoYSxiLGMsZCxlLGYsZyxoLGksaixrLGwsbSk7a1hkKGEsZmFsc2UpO3JldHVybiBhfVxuZnVuY3Rpb24gSDBiKGEpe2lmKGEuYi5jLmkuaz09KHIzYigpLG0zYikpe3JldHVybiBSRChtUWIoYS5iLmMuaSwoWXdjKCksQXdjKSksMTIpfXJldHVybiBhLmIuY31cbmZ1bmN0aW9uIEkwYihhKXtpZihhLmIuZC5pLms9PShyM2IoKSxtM2IpKXtyZXR1cm4gUkQobVFiKGEuYi5kLmksKFl3YygpLEF3YykpLDEyKX1yZXR1cm4gYS5iLmR9XG5mdW5jdGlvbiBuRGIoYSl7dmFyIGI7Yj1tRGIoYSk7aWYoR2RiKGIuYSwwKSl7cmV0dXJuIGJ3YigpLGJ3YigpLGF3Yn1yZXR1cm4gYndiKCksbmV3IGV3YihiLmIpfVxuZnVuY3Rpb24gU0NiKGEpe3ZhciBiO2I9UkNiKGEpO2lmKEdkYihiLmEsMCkpe3JldHVybiBUdmIoKSxUdmIoKSxTdmJ9cmV0dXJuIFR2YigpLG5ldyBZdmIoYi5iKX1cbmZ1bmN0aW9uIFRDYihhKXt2YXIgYjtiPVJDYihhKTtpZihHZGIoYi5hLDApKXtyZXR1cm4gVHZiKCksVHZiKCksU3ZifXJldHVybiBUdmIoKSxuZXcgWXZiKGIuYyl9XG5mdW5jdGlvbiBvOGIoYSl7c3dpdGNoKGEuZyl7Y2FzZSAyOnJldHVybiBxcGQoKSxwcGQ7Y2FzZSA0OnJldHVybiBxcGQoKSxYb2Q7ZGVmYXVsdDpyZXR1cm4gYTt9fVxuZnVuY3Rpb24gcDhiKGEpe3N3aXRjaChhLmcpe2Nhc2UgMTpyZXR1cm4gcXBkKCksbnBkO2Nhc2UgMzpyZXR1cm4gcXBkKCksWW9kO2RlZmF1bHQ6cmV0dXJuIGE7fX1cbmZ1bmN0aW9uIEM5YyhhKXtzd2l0Y2goYS5nKXtjYXNlIDA6cmV0dXJuIG5ldyBzOWM7Y2FzZSAxOnJldHVybiBuZXcgeDljO2RlZmF1bHQ6cmV0dXJuIG51bGw7fX1cbmZ1bmN0aW9uIFpjYygpe1pjYz1nZWI7WWNjPW5ldyBrR2QoJ2VkZ2VsYWJlbGNlbnRlcmVkbmVzc2FuYWx5c2lzLmluY2x1ZGVsYWJlbCcsKEdlYigpLEVlYikpfVxuZnVuY3Rpb24gaktjKCl7aktjPWdlYjtpS2M9bWZkKHFmZChwZmQocGZkKG5ldyB1ZmQsKHNYYigpLHBYYiksKGhjYygpLFFiYykpLHFYYixHYmMpLHJYYiksUGJjKX1cbmZ1bmN0aW9uIERMYygpe0RMYz1nZWI7Q0xjPW1mZChxZmQocGZkKHBmZChuZXcgdWZkLChzWGIoKSxwWGIpLChoY2MoKSxRYmMpKSxxWGIsR2JjKSxyWGIpLFBiYyl9XG5mdW5jdGlvbiBsWWQoKXtsWWQ9Z2ViO2lZZD1uZXcgaTFkO2tZZD1jRChXQyh5NywxKSxsS2UsMTc5LDAsW10pO2pZZD1jRChXQyhzNywxKSxtS2UsNjIsMCxbXSl9XG5mdW5jdGlvbiBQOGIoKXtQOGI9Z2ViO084Yj1uZXcgUThiKCdUT19JTlRFUk5BTF9MVFInLDApO044Yj1uZXcgUThiKCdUT19JTlBVVF9ESVJFQ1RJT04nLDEpfVxuZnVuY3Rpb24gSjNiKCl7SjNiPWdlYjtHM2I9bmV3IHI0YjtFM2I9bmV3IHc0YjtGM2I9bmV3IEE0YjtEM2I9bmV3IEU0YjtIM2I9bmV3IEk0YjtJM2I9bmV3IE00Yn1cbmZ1bmN0aW9uIENhYyhhLGIpe2IuVWcoaUJlLDEpO0xKYihLSmIobmV3IFBKYigoaTFiKCksbmV3IHQxYihhLGZhbHNlLGZhbHNlLG5ldyBfMWIpKSkpKTtiLlZnKCl9XG5mdW5jdGlvbiBNX2MoYSxiLGMpe2MuVWcoJ0RGUyBUcmVlaWZ5aW5nIHBoYXNlJywxKTtMX2MoYSxiKTtKX2MoYSxiKTthLmE9bnVsbDthLmI9bnVsbDtjLlZnKCl9XG5mdW5jdGlvbiBMZWIoYSxiKXtHZWIoKTtyZXR1cm4gYkUoYSk/amhiKGEsV0QoYikpOl9EKGEpP0pmYihhLFVEKGIpKTokRChhKT9JZWIoYSxURChiKSk6YS5GZChiKX1cbmZ1bmN0aW9uIExkKGEsYil7dmFyIGMsZDt1RmIoYik7Zm9yKGQ9Yi52YygpLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksNDQpO2EuemMoYy5sZCgpLGMubWQoKSl9fVxuZnVuY3Rpb24gZWdlKGEsYixjKXt2YXIgZDtmb3IoZD1jLktjKCk7ZC5PYigpOyl7aWYoIWNnZShhLGIsZC5QYigpKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIFM2ZChhLGIsYyxkLGUpe3ZhciBmO2lmKGMpe2Y9QllkKGIuRGgoKSxhLmMpO2U9Yy5SaChiLC0xLShmPT0tMT9kOmYpLG51bGwsZSl9cmV0dXJuIGV9XG5mdW5jdGlvbiBUNmQoYSxiLGMsZCxlKXt2YXIgZjtpZihjKXtmPUJZZChiLkRoKCksYS5jKTtlPWMuVGgoYiwtMS0oZj09LTE/ZDpmKSxudWxsLGUpfXJldHVybiBlfVxuZnVuY3Rpb24gVWliKGEpe3ZhciBiO2lmKGEuYj09LTIpe2lmKGEuZT09MCl7Yj0tMX1lbHNle2ZvcihiPTA7YS5hW2JdPT0wO2IrKyk7fWEuYj1ifXJldHVybiBhLmJ9XG5mdW5jdGlvbiBmamIoYSl7dUZiKGEpO2lmKGEubGVuZ3RoPT0wKXt0aHJvdyBBZGIobmV3IFZnYignWmVybyBsZW5ndGggQmlnSW50ZWdlcicpKX1tamIodGhpcyxhKX1cbmZ1bmN0aW9uICRIZChhKXt0aGlzLmk9YS5nYygpO2lmKHRoaXMuaT4wKXt0aGlzLmc9dGhpcy5haih0aGlzLmkrKHRoaXMuaS84fDApKzEpO2EuUWModGhpcy5nKX19XG5mdW5jdGlvbiBkbWMoYSxiLGMpe3RoaXMuZz1hO3RoaXMuZD1iO3RoaXMuZT1jO3RoaXMuYT1uZXcgYm5iO2JtYyh0aGlzKTt5b2IoKTtfbWIodGhpcy5hLG51bGwpfVxuZnVuY3Rpb24gYWFkKGEsYil7Yi5xPWE7YS5kPSR3bmQuTWF0aC5tYXgoYS5kLGIucik7YS5iKz1iLmQrKGEuYS5jLmxlbmd0aD09MD8wOmEuYyk7Um1iKGEuYSxiKX1cbmZ1bmN0aW9uIHhpZChhLGIpe3ZhciBjLGQsZSxmO2U9YS5jO2M9YS5jK2EuYjtmPWEuZDtkPWEuZCthLmE7cmV0dXJuIGIuYT5lJiZiLmE8YyYmYi5iPmYmJmIuYjxkfVxuZnVuY3Rpb24gQ2pkKGEsYil7dmFyIGMsZDtmb3IoZD1TdWIoYSwwKTtkLmIhPWQuZC5jOyl7Yz1SRChldmIoZCksOCk7Yy5hKz1iLmE7Yy5iKz1iLmJ9cmV0dXJuIGF9XG5mdW5jdGlvbiAkY2MoYSl7dmFyIGIsYyxkO2Q9MDtmb3IoYz1uZXcgQW5iKGEuYik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDMwKTtiLnA9ZDsrK2R9fVxuZnVuY3Rpb24gVG5jKGEpe3ZhciBiLGMsZDtyZXR1cm4gYS5qPT0ocXBkKCksWW9kKSYmKGI9Vm5jKGEpLGM9Q3NiKGIsWG9kKSxkPUNzYihiLHBwZCksZHx8ZCYmYyl9XG5mdW5jdGlvbiByc2QoYSxiKXt2YXIgYztjPXdzZChhKTtyZXR1cm4gcXNkKG5ldyByamQoYy5jLGMuZCksbmV3IHJqZChjLmIsYy5hKSxhLk1mKCksYixhLmFnKCkpfVxuZnVuY3Rpb24gd0VkKGEsYil7dmFyIGM7Yz1SRChiLDE5MCk7cURkKGMsJ3gnLGEuaSk7cURkKGMsJ3knLGEuaik7cURkKGMsZkllLGEuZyk7cURkKGMsZUllLGEuZil9XG5mdW5jdGlvbiBDVmQoYSxiKXt2YXIgYztpZihaRChiLDg1KSl7UkQoYS5jLDc5KS5HaygpO2M9UkQoYiw4NSk7Z09kKGEsYyl9ZWxzZXtSRChhLmMsNzkpLldiKGIpfX1cbmZ1bmN0aW9uIEJ2YihhLGIpe3ZhciBjLGQ7dUZiKGIpO2ZvcihkPWEudmMoKS5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDQ0KTtiLllkKGMubGQoKSxjLm1kKCkpfX1cbmZ1bmN0aW9uIHpyKGEsYil7dmFyIGM7UWIoYik7d2hpbGUoYS5PYigpKXtjPWEuUGIoKTtpZighb1NjKFJEKGMsMTApKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIF9BYigpe3ZhciBhO2lmKCFYQWIpe1hBYj1uZXcgJEFiO2E9bmV3IG9CYignJyk7bUJiKGEsKFNBYigpLFJBYikpO1lBYihYQWIsYSl9cmV0dXJuIFhBYn1cbmZ1bmN0aW9uIFBCYihhLGIpe3JldHVybiBzQmIobmV3IGxDYihhKSxuZXcgbkNiKGIpLG5ldyBwQ2IoYiksbmV3IHJDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsW10pKX1cbmZ1bmN0aW9uIHQ1Yygpe3Q1Yz1nZWI7cjVjPW5ldyB2NWMoTEFlLDApO3M1Yz1uZXcgdjVjKCdQT0xBUl9DT09SRElOQVRFJywxKTtxNWM9bmV3IHY1YygnSUQnLDIpfVxuZnVuY3Rpb24gS0VjKCl7S0VjPWdlYjtIRWM9bmV3IExFYygnRVFVQUxMWScsMCk7SUVjPW5ldyBMRWMoX3llLDEpO0pFYz1uZXcgTEVjKCdOT1JUSF9TT1VUSCcsMil9XG5mdW5jdGlvbiBPUWIoKXtPUWI9Z2ViO01RYj1uZXcga0dkKCdkZWJ1Z1NWRycsKEdlYigpLGZhbHNlKSk7TlFiPW5ldyBrR2QoJ292ZXJsYXBzRXhpc3RlZCcsdHJ1ZSl9XG5mdW5jdGlvbiBwaWQoKXtwaWQ9Z2ViO29pZD1zcygoa2lkKCksY0QoV0MoZTMsMSksandlLDI4NSwwLFtqaWQsY2lkLGdpZCxpaWQsZGlkLGVpZCxmaWQsaGlkXSkpKX1cbmZ1bmN0aW9uIGZHZCgpe2ZHZD1nZWI7ZUdkPXNzKChhR2QoKSxjRChXQyhUNSwxKSxqd2UsMjQ1LDAsW19GZCxZRmQsWkZkLFhGZCwkRmQsVkZkLFVGZCxXRmRdKSkpfVxuZnVuY3Rpb24ganBjKCl7anBjPWdlYjtpcGM9c3MoKGVwYygpLGNEKFdDKGhXLDEpLGp3ZSwyNzYsMCxbWm9jLGFwYyxZb2MsZHBjLF9vYywkb2MsY3BjLGJwY10pKSl9XG5mdW5jdGlvbiAkWWMoKXtXWWMoKTtyZXR1cm4gY0QoV0ModV8sMSksandlLDI2MiwwLFtWWWMsT1ljLFNZYyxUWWMsUlljLE5ZYyxVWWMsTFljLFFZYyxQWWMsTVljXSl9XG5mdW5jdGlvbiAkaShhLGIsYyl7dmFyIGQsZTtlPVJEKEZuKGEuZCxiKSwxNyk7ZD1SRChGbihhLmIsYyksMTcpO3JldHVybiAhZXx8IWQ/bnVsbDpVaShhLGUuYSxkLmEpfVxuZnVuY3Rpb24gY2dkKGEsYil7dmFyIGM7Yz1zZ2QoeWdkKCksYSk7aWYoYyl7SXhkKGIsKHVtZCgpLFRsZCksYyk7cmV0dXJuIHRydWV9ZWxzZXtyZXR1cm4gZmFsc2V9fVxuZnVuY3Rpb24gVE1iKGEpe1JNYigpO2lmKGEuQS5IYygoUXBkKCksTXBkKSkpe2lmKCFhLkIuSGMoKGRxZCgpLCRwZCkpKXtyZXR1cm4gU01iKGEpfX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIHRVYigpe3RoaXMuYT1SRChpR2QoKHlWYigpLGFWYikpLDE3KS5hO3RoaXMuYz1LZmIoVUQoaUdkKHJWYikpKTt0aGlzLmI9S2ZiKFVEKGlHZChuVmIpKSl9XG5mdW5jdGlvbiB2a2IoYSl7dGhpcy5mPWE7dGhpcy5lPW5ldyBRdGIodGhpcy5mLmkpO3RoaXMuYT10aGlzLmU7dGhpcy5iPXNrYih0aGlzKTt0aGlzLmQ9dGhpcy5mLmd9XG5mdW5jdGlvbiBVZ2UoYSxiKXtLZmUuY2FsbCh0aGlzLEliYixhLGIpO3RoaXMuYj10aGlzO3RoaXMuYT1wa2UoYS5EaCgpLHZZZCh0aGlzLmUuRGgoKSx0aGlzLmMpKX1cbmZ1bmN0aW9uIGJkYyhhLGIpe3ZhciBjLGQ7Zm9yKGQ9bmV3IEFuYihiLmIpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwzMCk7YS5hW2MucF09aDJiKGMpfX1cbmZ1bmN0aW9uIG9mZChhLGIpe3ZhciBjO2ZvcihjPTA7YzxiLmouYy5sZW5ndGg7YysrKXtSRChNZWQoYSxjKSwyMSkuR2MoUkQoTWVkKGIsYyksMTYpKX1yZXR1cm4gYX1cbmZ1bmN0aW9uIHBlYihhLGIsYyxkKXt2YXIgZTtlPWEuYS5sZW5ndGg7Yz5lPyhjPWUpOkJGYihiLGMrMSk7YS5hPXpoYihhLmEsMCxiKSsoJycrZCkreWhiKGEuYSxjKX1cbmZ1bmN0aW9uIGt0YihhLGIpe2EuYT1CZGIoYS5hLDEpO2EuYz0kd25kLk1hdGgubWluKGEuYyxiKTthLmI9JHduZC5NYXRoLm1heChhLmIsYik7YS5kPUJkYihhLmQsYil9XG5mdW5jdGlvbiB3ZGMoYSxiKXtyZXR1cm4gYjxhLmIuZ2MoKT9SRChhLmIuWGIoYiksMTApOmI9PWEuYi5nYygpP2EuYTpSRChWbWIoYS5lLGItYS5iLmdjKCktMSksMTApfVxuZnVuY3Rpb24gclhjKGEsYixjKXtyZXR1cm4gUWZiKGNqZChqV2MoYSksbmV3IHJqZChiLmUuYSxiLmUuYikpLGNqZChqV2MoYSksbmV3IHJqZChjLmUuYSxjLmUuYikpKX1cbmZ1bmN0aW9uIFdKYyhhLGIsYyl7cmV0dXJuIGE9PShSS2MoKSxRS2MpP25ldyBQSmM6S3diKGIsMSkhPTA/bmV3IElMYyhjLmxlbmd0aCk6bmV3IHBMYyhjLmxlbmd0aCl9XG5mdW5jdGlvbiBxdmQoYSxiKXt2YXIgYyxkLGU7Yz1hLnRoKCk7aWYoYyE9bnVsbCYmYS53aCgpKXtmb3IoZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Y1tkXS5kaihiKX19fVxuZnVuY3Rpb24gUUJiKGEsYil7dmFyIGMsZCxlO2M9YS5jLlhlKCk7Zm9yKGU9Yi5LYygpO2UuT2IoKTspe2Q9ZS5QYigpO2EuYS5ZZChjLGQpfXJldHVybiBhLmIuS2IoYyl9XG5mdW5jdGlvbiBuMmIoYSxiKXt2YXIgYyxkO2M9YTtkPVkyYihjKS5lO3doaWxlKGQpe2M9ZDtpZihjPT1iKXtyZXR1cm4gdHJ1ZX1kPVkyYihjKS5lfXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIEVkYihhKXt2YXIgYjtiPWEuaDtpZihiPT0wKXtyZXR1cm4gYS5sK2EubSpneGV9aWYoYj09ZXhlKXtyZXR1cm4gYS5sK2EubSpneGUtaHhlfXJldHVybiBhfVxuZnVuY3Rpb24gTEhjKGEsYixjKXt2YXIgZCxlO2Q9YS5hLmZbYi5wXTtlPWEuYS5mW2MucF07aWYoZDxlKXtyZXR1cm4gLTF9aWYoZD09ZSl7cmV0dXJuIDB9cmV0dXJuIDF9XG5mdW5jdGlvbiBXbWMoYSxiKXt2YXIgYyxkO2ZvcihkPW5ldyBBbmIoYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDcyKTtSbWIoYS5kLGMpOyRtYyhhLGMpfX1cbmZ1bmN0aW9uIEU2YihhLGIpe3ZhciBjO2IuVWcoJ0VkZ2UgYW5kIGxheWVyIGNvbnN0cmFpbnQgZWRnZSByZXZlcnNhbCcsMSk7Yz1ENmIoYSk7QzZiKGMpO2IuVmcoKX1cbmZ1bmN0aW9uIG02YyhhLGIpe3ZhciBjLGQ7Zm9yKGQ9bmV3IGRNZChhKTtkLmUhPWQuaS5nYygpOyl7Yz1SRChiTWQoZCksMjcpO0J5ZChjLGMuaStiLmIsYy5qK2IuZCl9fVxuZnVuY3Rpb24gVE5kKGEpe3ZhciBiO2lmKGEuZD09bnVsbCl7KythLmU7YS5mPTA7U05kKG51bGwpfWVsc2V7KythLmU7Yj1hLmQ7YS5kPW51bGw7YS5mPTA7U05kKGIpfX1cbmZ1bmN0aW9uIFlzKGEpe3ZhciBiO2lmKGEuYT09YS5iLmEpe3Rocm93IEFkYihuZXcgRHZiKX1iPWEuYTthLmM9YjthLmE9UkQoSHZiKGEuYS5lKSwyMjcpO3JldHVybiBifVxuZnVuY3Rpb24gWXdkKGEsYil7dmFyIGM7aWYoKGEuRGImYikhPTApe2M9WHdkKGEsYik7cmV0dXJuIGM9PS0xP2EuRWI6U0QoYS5FYilbY119ZWxzZXtyZXR1cm4gbnVsbH19XG5mdW5jdGlvbiBqQmQoYSxiKXt2YXIgYyxkO2M9KGQ9bmV3IEhZZCxkKTtjLkc9YjshYS5yYiYmKGEucmI9bmV3IEo1ZChhLGk3LGEpKTtXR2QoYS5yYixjKTtyZXR1cm4gY31cbmZ1bmN0aW9uIGtCZChhLGIpe3ZhciBjLGQ7Yz0oZD1uZXcgazFkLGQpO2MuRz1iOyFhLnJiJiYoYS5yYj1uZXcgSjVkKGEsaTcsYSkpO1dHZChhLnJiLGMpO3JldHVybiBjfVxuZnVuY3Rpb24gd0JkKGEsYixjLGQpe1pEKGEuQ2IsMTg0KSYmKFJEKGEuQ2IsMTg0KS50Yj1udWxsKTtQQWQoYSxjKTshIWImJkhYZChhLGIpO2QmJmEuZ2wodHJ1ZSl9XG5mdW5jdGlvbiBuSmMoYSxiKXtpZihhLmMpe29KYyhhLGIsdHJ1ZSk7RkRiKG5ldyBTRGIobnVsbCxuZXcgU3diKGIsMTYpKSxuZXcgQkpjKGEpKX1vSmMoYSxiLGZhbHNlKX1cbmZ1bmN0aW9uIEtSYyhhKXtGUmMoKTt2YXIgYjtpZighVXJiKEVSYyxhKSl7Yj1uZXcgSFJjO2IuYT1hO1hyYihFUmMsYSxiKX1yZXR1cm4gUkQoVnJiKEVSYyxhKSw2NDUpfVxuZnVuY3Rpb24gazNkKGEpe3ZhciBiO2lmKGEuZz4xfHxhLk9iKCkpeysrYS5hO2EuZz0wO2I9YS5pO2EuT2IoKTtyZXR1cm4gYn1lbHNle3Rocm93IEFkYihuZXcgRHZiKX19XG5mdW5jdGlvbiBHUmMoYSl7c3dpdGNoKGEuYS5nKXtjYXNlIDE6cmV0dXJuIG5ldyBsU2M7Y2FzZSAzOnJldHVybiBuZXcgVlVjO2RlZmF1bHQ6cmV0dXJuIG5ldyBXUmM7fX1cbmZ1bmN0aW9uIGZ5ZChhLGIpe3N3aXRjaChiKXtjYXNlIDE6cmV0dXJuICEhYS5uJiZhLm4uaSE9MDtjYXNlIDI6cmV0dXJuIGEuayE9bnVsbDt9cmV0dXJuIEN4ZChhLGIpfVxuZnVuY3Rpb24gSGRiKGEpe2lmKGp4ZTxhJiZhPGh4ZSl7cmV0dXJuIGE8MD8kd25kLk1hdGguY2VpbChhKTokd25kLk1hdGguZmxvb3IoYSl9cmV0dXJuIEVkYih2RChhKSl9XG5mdW5jdGlvbiBoZmIoYSl7dmFyIGI7aWYoYTwxMjgpe3JldHVybiBqZmIoKSxiPWlmYlthXSwhYiYmKGI9aWZiW2FdPW5ldyBiZmIoYSkpLGJ9cmV0dXJuIG5ldyBiZmIoYSl9XG5mdW5jdGlvbiBQQ2IoYixjKXt2YXIgZDt0cnl7Yy5kZSgpfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsODIpKXtkPWE7WkViKGIuYyxkKX1lbHNlIHRocm93IEFkYihhKX19XG5mdW5jdGlvbiBXZGIoYSl7dmFyIGIsYyxkLGU7ZT1hO2Q9MDtpZihlPDApe2UrPWh4ZTtkPWV4ZX1jPWVFKGUvZ3hlKTtiPWVFKGUtYypneGUpO3JldHVybiBoRChiLGMsZCl9XG5mdW5jdGlvbiBkeShhKXt2YXIgYixjLGQ7ZD0wO2ZvcihjPW5ldyBPc2IoYS5hKTtjLmE8Yy5jLmEubGVuZ3RoOyl7Yj1Oc2IoYyk7YS5iLkhjKGIpJiYrK2R9cmV0dXJuIGR9XG5mdW5jdGlvbiBfdShhKXt2YXIgYixjLGQ7Yj0xO2ZvcihkPWEuS2MoKTtkLk9iKCk7KXtjPWQuUGIoKTtiPTMxKmIrKGM9PW51bGw/MDp0YihjKSk7Yj1+fmJ9cmV0dXJuIGJ9XG5mdW5jdGlvbiBrUWIoYSxiKXt2YXIgYztpZighYil7cmV0dXJuIGF9Yz1iLm5mKCk7Yy5kYygpfHwoIWEucT8oYS5xPW5ldyBWc2IoYykpOkxkKGEucSxjKSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBNdGIoYSxiKXt2YXIgYztjPWEuYS5nZXQoYik7aWYoYz09PXVuZGVmaW5lZCl7KythLmR9ZWxzZXtDdGIoYS5hLGIpOy0tYS5jOysrYS5iLmd9cmV0dXJuIGN9XG5mdW5jdGlvbiBhMGIoYSxiKXt2YXIgYyxkLGU7Yz1iLnAtYS5wO2lmKGM9PTApe2Q9YS5mLmEqYS5mLmI7ZT1iLmYuYSpiLmYuYjtyZXR1cm4gUWZiKGQsZSl9cmV0dXJuIGN9XG5mdW5jdGlvbiBKZmMoYSxiKXt2YXIgYyxkO2M9YS5qO2Q9Yi5qO3JldHVybiBjIT1kP2MuZy1kLmc6YS5wPT1iLnA/MDpjPT0ocXBkKCksWW9kKT9hLnAtYi5wOmIucC1hLnB9XG5mdW5jdGlvbiBkRmMoYSxiLGMsZCxlKXtiRChhLmNbYi5nXSxjLmcsZCk7YkQoYS5jW2MuZ10sYi5nLGQpO2JEKGEuYltiLmddLGMuZyxlKTtiRChhLmJbYy5nXSxiLmcsZSl9XG5mdW5jdGlvbiBKeWIoYSxiLGMpe3RoaXMuYj0odUZiKGEpLGEpO3RoaXMuZD0odUZiKGIpLGIpO3RoaXMuZT0odUZiKGMpLGMpO3RoaXMuYz10aGlzLmQrKCcnK3RoaXMuZSl9XG5mdW5jdGlvbiBQaGUoYSxiKXt0aGlzLmI9YTt0aGlzLmU9Yjt0aGlzLmQ9Yi5qO3RoaXMuZj0obmtlKCksUkQoYSw2OSkueGsoKSk7dGhpcy5rPXBrZShiLmUuRGgoKSxhKX1cbmZ1bmN0aW9uIFVTYyhhKXt0aGlzLm49bmV3IGJuYjt0aGlzLmU9bmV3IFl1Yjt0aGlzLmo9bmV3IFl1Yjt0aGlzLms9bmV3IGJuYjt0aGlzLmY9bmV3IGJuYjt0aGlzLnA9YX1cbmZ1bmN0aW9uIHJWYyhhKXthLnI9bmV3IF9zYjthLnc9bmV3IF9zYjthLnQ9bmV3IGJuYjthLmk9bmV3IGJuYjthLmQ9bmV3IF9zYjthLmE9bmV3IFRpZDthLmM9bmV3IFRzYn1cbmZ1bmN0aW9uIG1PYigpe21PYj1nZWI7bE9iPW5ldyBuT2IoJ1VQJywwKTtpT2I9bmV3IG5PYihaeWUsMSk7ak9iPW5ldyBuT2IoTnllLDIpO2tPYj1uZXcgbk9iKE95ZSwzKX1cbmZ1bmN0aW9uIHh2Yygpe3h2Yz1nZWI7dnZjPW5ldyB5dmMoJ09ORV9TSURFRCcsMCk7d3ZjPW5ldyB5dmMoJ1RXT19TSURFRCcsMSk7dXZjPW5ldyB5dmMoJ09GRicsMil9XG5mdW5jdGlvbiBCOWMoKXtCOWM9Z2ViO3o5Yz1uZXcgRDljKCdFUVVBTF9CRVRXRUVOX1NUUlVDVFVSRVMnLDApO0E5Yz1uZXcgRDljKCdUT19BU1BFQ1RfUkFUSU8nLDEpfVxuZnVuY3Rpb24gaERjKCl7aERjPWdlYjtnRGM9c3MoKF9DYygpLGNEKFdDKHJYLDEpLGp3ZSwyNjUsMCxbWkNjLFdDYyxYQ2MsVENjLFZDYywkQ2MsWUNjLFNDYyxVQ2NdKSkpfVxuZnVuY3Rpb24gaXFkKCl7aXFkPWdlYjtocWQ9c3MoKGRxZCgpLGNEKFdDKEkzLDEpLGp3ZSwyNjQsMCxbWXBkLCRwZCxYcGQsX3BkLGFxZCxjcWQsYnFkLFpwZCxXcGRdKSkpfVxuZnVuY3Rpb24gam9kKCl7am9kPWdlYjtpb2Q9c3MoKGRvZCgpLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtYbmQsV25kLFpuZCxjb2QsYm9kLGFvZCwkbmQsX25kLFluZF0pKSl9XG5mdW5jdGlvbiBuSWIoKXtuSWI9Z2ViO21JYj1zcygoaUliKCksY0QoV0MoeE4sMSksandlLDI1NywwLFtoSWIsY0liLGRJYixiSWIsZkliLGdJYixlSWIsYUliLF9IYl0pKSl9XG5mdW5jdGlvbiBvU2MoYSl7dmFyIGI7Yj1SRChtUWIoYSwoWXdjKCksaHdjKSksNjQpO3JldHVybiBhLms9PShyM2IoKSxtM2IpJiYoYj09KHFwZCgpLHBwZCl8fGI9PVhvZCl9XG5mdW5jdGlvbiBqMGIoYSxiLGMpe3ZhciBkLGU7ZT1SRChtUWIoYSwoeUNjKCksUkFjKSksNzUpO2lmKGUpe2Q9bmV3IEVqZDtBamQoZCwwLGUpO0NqZChkLGMpO3llKGIsZCl9fVxuZnVuY3Rpb24gVTJiKGEsYixjKXt2YXIgZCxlLGYsZztnPVkyYihhKTtkPWcuZDtlPWcuYztmPWEubjtiJiYoZi5hPWYuYS1kLmItZS5hKTtjJiYoZi5iPWYuYi1kLmQtZS5iKX1cbmZ1bmN0aW9uIE9PYihhLGIpe3ZhciBjLGQ7Yz1hLmYuYy5sZW5ndGg7ZD1iLmYuYy5sZW5ndGg7aWYoYzxkKXtyZXR1cm4gLTF9aWYoYz09ZCl7cmV0dXJuIDB9cmV0dXJuIDF9XG5mdW5jdGlvbiBTMGIoYSl7aWYoYS5iLmMubGVuZ3RoIT0wJiYhIVJEKFZtYihhLmIsMCksNzIpLmEpe3JldHVybiBSRChWbWIoYS5iLDApLDcyKS5hfXJldHVybiBSMGIoYSl9XG5mdW5jdGlvbiBmcihhKXt2YXIgYjtpZihhKXtiPWE7aWYoYi5kYygpKXt0aHJvdyBBZGIobmV3IER2Yil9cmV0dXJuIGIuWGIoYi5nYygpLTEpfXJldHVybiBGcihhLktjKCkpfVxuZnVuY3Rpb24gRGliKGEpe3ZhciBiO0RkYihhLDApPDAmJihhPVFkYihhKSk7cmV0dXJuIGI9WWRiKFVkYihhLDMyKSksNjQtKGIhPTA/bmdiKGIpOm5nYihZZGIoYSkpKzMyKX1cbmZ1bmN0aW9uIHBCYigpe2dCYigpO2lmKGRCYil7cmV0dXJuIG5ldyBvQmIobnVsbCl9cmV0dXJuIFpBYihfQWIoKSwnY29tLmdvb2dsZS5jb21tb24uYmFzZS5TdHJpbmdzJyl9XG5mdW5jdGlvbiBleWQoYSxiLGMsZCl7aWYoYz09MSl7cmV0dXJuICFhLm4mJihhLm49bmV3IEM1ZChJNCxhLDEsNykpLHJMZChhLm4sYixkKX1yZXR1cm4gQnhkKGEsYixjLGQpfVxuZnVuY3Rpb24gZUJkKGEsYil7dmFyIGMsZDtkPShjPW5ldyBfOWQsYyk7UEFkKGQsYik7V0dkKCghYS5BJiYoYS5BPW5ldyBpaWUoejcsYSw3KSksYS5BKSxkKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIHhFZChhLGIsYyl7dmFyIGQsZSxmLGc7Zj1udWxsO2c9YjtlPXdEZChnLGlJZSk7ZD1uZXcgSkVkKGEsYyk7Zj0oTERkKGQuYSxkLmIsZSksZSk7cmV0dXJuIGZ9XG5mdW5jdGlvbiBpWGQoYSl7dmFyIGI7aWYoIWEuYXx8KGEuQmImMSk9PTAmJmEuYS5WaCgpKXtiPVdWZChhKTtaRChiLDE1NikmJihhLmE9UkQoYiwxNTYpKX1yZXR1cm4gYS5hfVxuZnVuY3Rpb24gQmUoYSxiKXt2YXIgYyxkO3VGYihiKTtmb3IoZD1iLktjKCk7ZC5PYigpOyl7Yz1kLlBiKCk7aWYoIWEuSGMoYykpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBzRChhLGIpe3ZhciBjLGQsZTtjPWEubCtiLmw7ZD1hLm0rYi5tKyhjPj4yMik7ZT1hLmgrYi5oKyhkPj4yMik7cmV0dXJuIGhEKGMmZHhlLGQmZHhlLGUmZXhlKX1cbmZ1bmN0aW9uIEREKGEsYil7dmFyIGMsZCxlO2M9YS5sLWIubDtkPWEubS1iLm0rKGM+PjIyKTtlPWEuaC1iLmgrKGQ+PjIyKTtyZXR1cm4gaEQoYyZkeGUsZCZkeGUsZSZleGUpfVxuZnVuY3Rpb24gSnBjKGEpe3ZhciBiLGM7SHBjKGEpO2ZvcihjPW5ldyBBbmIoYS5kKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMTA1KTshIWIuaSYmSXBjKGIpfX1cbmZ1bmN0aW9uIHpkYihhKXt2YXIgYjtpZihaRChhLDgyKSl7cmV0dXJuIGF9Yj1hJiZhLl9famF2YSRleGNlcHRpb247aWYoIWIpe2I9bmV3IEN6KGEpO2dBKGIpfXJldHVybiBifVxuZnVuY3Rpb24gQkdkKGEpe2lmKFpEKGEsMTkzKSl7cmV0dXJuIFJEKGEsMTIzKX1lbHNlIGlmKCFhKXt0aHJvdyBBZGIobmV3IE9nYihISWUpKX1lbHNle3JldHVybiBudWxsfX1cbmZ1bmN0aW9uIHNrYihhKXtpZihhLmEuT2IoKSl7cmV0dXJuIHRydWV9aWYoYS5hIT1hLmUpe3JldHVybiBmYWxzZX1hLmE9bmV3IHd0YihhLmYuZik7cmV0dXJuIGEuYS5PYigpfVxuZnVuY3Rpb24ga21iKGEsYil7aWYoYj09bnVsbCl7cmV0dXJuIGZhbHNlfXdoaWxlKGEuYSE9YS5iKXtpZihwYihiLEltYihhKSkpe3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBkSGIoYSxiKXtpZighYXx8IWJ8fGE9PWIpe3JldHVybiBmYWxzZX1yZXR1cm4gdEdiKGEuZC5jLGIuZC5jK2IuZC5iKSYmdEdiKGIuZC5jLGEuZC5jK2EuZC5iKX1cbmZ1bmN0aW9uIFRtYihhLGIpe3ZhciBjLGQ7Yz1iLlBjKCk7ZD1jLmxlbmd0aDtpZihkPT0wKXtyZXR1cm4gZmFsc2V9WUViKGEuYyxhLmMubGVuZ3RoLGMpO3JldHVybiB0cnVlfVxuZnVuY3Rpb24gTkJiKGEsYixjKXt2YXIgZCxlO2ZvcihlPWIudmMoKS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDQ0KTthLnljKGQubGQoKSxkLm1kKCksYyl9cmV0dXJuIGF9XG5mdW5jdGlvbiAkV2MoYSl7dmFyIGIsYyxkO2I9bmV3IFl1Yjtmb3IoZD1TdWIoYS5kLDApO2QuYiE9ZC5kLmM7KXtjPVJEKGV2YihkKSw2NSk7TXViKGIsYy5jKX1yZXR1cm4gYn1cbmZ1bmN0aW9uIFBkYyhhLGIpe3ZhciBjLGQ7Zm9yKGQ9bmV3IEFuYihhLmIpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSw3Mik7cFFiKGMsKFl3YygpLHN3YyksYil9fVxuZnVuY3Rpb24gTDljKGEsYixjKXt2YXIgZCxlO2ZvcihlPW5ldyBBbmIoYS5iKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMjcpO0J5ZChkLGQuaStiLGQuaitjKX19XG5mdW5jdGlvbiBOYihhLGIpe2lmKCFhKXt0aHJvdyBBZGIobmV3IGFnYihoYygndmFsdWUgYWxyZWFkeSBwcmVzZW50OiAlcycsY0QoV0MoakosMSkscnZlLDEsNSxbYl0pKSkpfX1cbmZ1bmN0aW9uIEFpZChhLGIsYyxkLGUpe3RpZCgpO3JldHVybiAkd25kLk1hdGgubWluKExpZChhLGIsYyxkLGUpLExpZChjLGQsYSxiLGZqZChuZXcgcmpkKGUuYSxlLmIpKSkpfVxuZnVuY3Rpb24gUmRkKGEsYixjLGQpe1JEKGMuYiw2OCk7UkQoYy5iLDY4KTtSRChkLmIsNjgpO1JEKGQuYiw2OCk7UkQoZC5iLDY4KTtVbWIoZC5hLG5ldyBXZGQoYSxiLGQpKX1cbmZ1bmN0aW9uIE5HYihhLGIpe2EuZD09KENtZCgpLHltZCl8fGEuZD09Qm1kP1JEKGIuYSw2MCkuYy5GYyhSRChiLmIsNjApKTpSRChiLmIsNjApLmMuRmMoUkQoYi5hLDYwKSl9XG5mdW5jdGlvbiBVZWQoYSxiKXt2YXIgYztjPWV2KGIuYS5nYygpKTtGRGIoUERiKG5ldyBTRGIobnVsbCxuZXcgU3diKGIsMSkpLGEuaSksbmV3IGZmZChhLGMpKTtyZXR1cm4gY31cbmZ1bmN0aW9uIGZCZChhKXt2YXIgYixjO2M9KGI9bmV3IF85ZCxiKTtQQWQoYywnVCcpO1dHZCgoIWEuZCYmKGEuZD1uZXcgaWllKHo3LGEsMTEpKSxhLmQpLGMpO3JldHVybiBjfVxuZnVuY3Rpb24gY0hkKGEpe3ZhciBiLGMsZCxlO2I9MTtmb3IoYz0wLGU9YS5nYygpO2M8ZTsrK2Mpe2Q9YS5WaShjKTtiPTMxKmIrKGQ9PW51bGw/MDp0YihkKSl9cmV0dXJuIGJ9XG5mdW5jdGlvbiBjaihhLGIsYyxkKXt2YXIgZTtQYihiLGEuZS5SZCgpLmdjKCkpO1BiKGMsYS5jLlJkKCkuZ2MoKSk7ZT1hLmFbYl1bY107YkQoYS5hW2JdLGMsZCk7cmV0dXJuIGV9XG5mdW5jdGlvbiBjRChhLGIsYyxkLGUpe2UuUm09YTtlLlNtPWI7ZS5UbT1rZWI7ZS5fX2VsZW1lbnRUeXBlSWQkPWM7ZS5fX2VsZW1lbnRUeXBlQ2F0ZWdvcnkkPWQ7cmV0dXJuIGV9XG5mdW5jdGlvbiB2ZWMoKXt2ZWM9Z2ViO3VlYz1uZXcgeGVjKExBZSwwKTtzZWM9bmV3IHhlYyhvQmUsMSk7dGVjPW5ldyB4ZWMocEJlLDIpO3JlYz1uZXcgeGVjKCdCT1RIJywzKX1cbmZ1bmN0aW9uIGVuYygpe2VuYz1nZWI7YW5jPW5ldyBmbmMoS3llLDApO2JuYz1uZXcgZm5jKE55ZSwxKTtjbmM9bmV3IGZuYyhPeWUsMik7ZG5jPW5ldyBmbmMoJ1RPUCcsMyl9XG5mdW5jdGlvbiBuWmIoKXtuWmI9Z2ViO2paYj1uZXcgcVpiKCdRMScsMCk7bVpiPW5ldyBxWmIoJ1E0JywxKTtrWmI9bmV3IHFaYignUTInLDIpO2xaYj1uZXcgcVpiKCdRMycsMyl9XG5mdW5jdGlvbiBERmMoKXtERmM9Z2ViO0JGYz1uZXcgRUZjKCdPRkYnLDApO0NGYz1uZXcgRUZjKCdTSU5HTEVfRURHRScsMSk7QUZjPW5ldyBFRmMoJ01VTFRJX0VER0UnLDIpfVxuZnVuY3Rpb24gbGRkKCl7bGRkPWdlYjtrZGQ9bmV3IG5kZCgnTUlOSU1VTV9TUEFOTklOR19UUkVFJywwKTtqZGQ9bmV3IG5kZCgnTUFYSU1VTV9TUEFOTklOR19UUkVFJywxKX1cbmZ1bmN0aW9uIGhlZCgpe2hlZD1nZWI7bmV3IGpHZCgnb3JnLmVjbGlwc2UuZWxrLmFkZExheW91dENvbmZpZycpO2ZlZD1uZXcgc2VkO2VlZD1uZXcgcWVkO2dlZD1uZXcgdmVkfVxuZnVuY3Rpb24gRUdkKGEpe3ZhciBiLGM7Yz0oYnZkKCksYj1uZXcgUnpkLGIpOyEhYSYmV0dkKCghYS5hJiYoYS5hPW5ldyBDNWQoRjQsYSw2LDYpKSxhLmEpLGMpO3JldHVybiBjfVxuZnVuY3Rpb24gTjJjKGEpe3ZhciBiLGMsZCxlO2U9bmV3IGJuYjtmb3IoZD1hLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMjcpO2I9UTJjKGMpO1RtYihlLGIpfXJldHVybiBlfVxuZnVuY3Rpb24gSnIoYSxiKXt2YXIgYyxkO1JiKGIsJ3ByZWRpY2F0ZScpO2ZvcihkPTA7YS5PYigpO2QrKyl7Yz1hLlBiKCk7aWYoYi5MYihjKSl7cmV0dXJuIGR9fXJldHVybiAtMX1cbmZ1bmN0aW9uIHhTZChhLGIpe3ZhciBjLGQ7ZD0wO2lmKGE8NjQmJmE8PWIpe2I9Yjw2ND9iOjYzO2ZvcihjPWE7Yzw9YjtjKyspe2Q9UmRiKGQsU2RiKDEsYykpfX1yZXR1cm4gZH1cbmZ1bmN0aW9uIG9RYyhhLGIpe3ZhciBjLGQ7Yz1hLmM7ZD1iLmVbYS5wXTtpZihkPGMuYS5jLmxlbmd0aC0xKXtyZXR1cm4gUkQoVm1iKGMuYSxkKzEpLDEwKX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIEJvYihhKXt5b2IoKTt2YXIgYixjLGQ7ZD0wO2ZvcihjPWEuS2MoKTtjLk9iKCk7KXtiPWMuUGIoKTtkPWQrKGIhPW51bGw/dGIoYik6MCk7ZD1kfDB9cmV0dXJuIGR9XG5mdW5jdGlvbiB3c2IoYSl7dmFyIGIsYyxkO2I9UkQoYS5lJiZhLmUoKSw5KTtkPShjPWIuc2xpY2UoKSxSRChkRChjLGIpLDkpKTtyZXR1cm4gbmV3IEZzYihiLGQsYi5sZW5ndGgpfVxuZnVuY3Rpb24gQmRkKGEsYixjKXt2YXIgZDtha2IoYS5hKTtVbWIoYy5pLG5ldyBNZGQoYSkpO2Q9bmV3ICRGYihSRChXamIoYS5hLGIuYiksNjgpKTtBZGQoYSxkLGIpO2MuZj1kfVxuZnVuY3Rpb24gYmdjKGEpe3ZhciBiO1gwYihhLHRydWUpO2I9QXdlO25RYihhLCh5Q2MoKSxLQmMpKSYmKGIrPVJEKG1RYihhLEtCYyksMTcpLmEpO3BRYihhLEtCYyxzZ2IoYikpfVxuZnVuY3Rpb24gaEIoYSl7dmFyIGI7Yj1uZXcgZEI7Yi5hPWE7Yi5iPWZCKGEpO2IuYz0kQyhxSixOdmUsMiwyLDYsMSk7Yi5jWzBdPWdCKGEpO2IuY1sxXT1nQihhKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIFo3YihhKXt2YXIgYixjLGQ7Yz1hLm47ZD1hLm87Yj1hLmQ7cmV0dXJuIG5ldyBVaWQoYy5hLWIuYixjLmItYi5kLGQuYSsoYi5iK2IuYyksZC5iKyhiLmQrYi5hKSl9XG5mdW5jdGlvbiBVUWIoYSxiKXtpZighYXx8IWJ8fGE9PWIpe3JldHVybiBmYWxzZX1yZXR1cm4gJHkoYS5iLmMsYi5iLmMrYi5iLmIpPDAmJiR5KGIuYi5jLGEuYi5jK2EuYi5iKTwwfVxuZnVuY3Rpb24gUW5kKGEpe3N3aXRjaChhLmcpe2Nhc2UgMTpyZXR1cm4gTW5kO2Nhc2UgMjpyZXR1cm4gTG5kO2Nhc2UgMzpyZXR1cm4gTm5kO2RlZmF1bHQ6cmV0dXJuIE9uZDt9fVxuZnVuY3Rpb24gbWVjKGEpe3N3aXRjaChSRChtUWIoYSwoeUNjKCksVUFjKSksMTcxKS5nKXtjYXNlIDI6Y2FzZSA0OnJldHVybiB0cnVlO2RlZmF1bHQ6cmV0dXJuIGZhbHNlO319XG5mdW5jdGlvbiBhSGIoYSxiLGMpe3N3aXRjaChjLmcpe2Nhc2UgMjphLmI9YjticmVhaztjYXNlIDE6YS5jPWI7YnJlYWs7Y2FzZSA0OmEuZD1iO2JyZWFrO2Nhc2UgMzphLmE9Yjt9fVxuZnVuY3Rpb24gRXhkKGEsYil7c3dpdGNoKGIpe2Nhc2UgMDohYS5vJiYoYS5vPW5ldyBEVmQoKHB2ZCgpLG12ZCksWDQsYSwwKSk7YS5vLmMuJGIoKTtyZXR1cm47fSR2ZChhLGIpfVxuZnVuY3Rpb24gTWFkKGEsYil7dmFyIGMsZDtjPVJEKFJEKFdqYihhLmcsYi5hKSw0MikuYSw2OCk7ZD1SRChSRChXamIoYS5nLGIuYiksNDIpLmEsNjgpO3JldHVybiBTUWIoYyxkKX1cbmZ1bmN0aW9uIFhHZChhLGIsYyl7dmFyIGQ7ZD1hLmdjKCk7aWYoYj5kKXRocm93IEFkYihuZXcgYU1kKGIsZCkpO2EuU2koKSYmKGM9YkhkKGEsYykpO3JldHVybiBhLkVpKGIsYyl9XG5mdW5jdGlvbiBlUWIoYSxiLGMsZCxlKXt2YXIgZixnO2ZvcihnPWM7Zzw9ZTtnKyspe2ZvcihmPWI7Zjw9ZDtmKyspe1BQYihhLGYsZyl8fFRQYihhLGYsZyx0cnVlLGZhbHNlKX19fVxuZnVuY3Rpb24gdWlkKGEpe3RpZCgpO3ZhciBiLGMsZDtjPSRDKGwzLE52ZSw4LDIsMCwxKTtkPTA7Zm9yKGI9MDtiPDI7YisrKXtkKz0wLjU7Y1tiXT1DaWQoZCxhKX1yZXR1cm4gY31cbmZ1bmN0aW9uIHhEKGEpe3ZhciBiLGMsZDtiPX5hLmwrMSZkeGU7Yz1+YS5tKyhiPT0wPzE6MCkmZHhlO2Q9fmEuaCsoYj09MCYmYz09MD8xOjApJmV4ZTtyZXR1cm4gaEQoYixjLGQpfVxuZnVuY3Rpb24gbWdiKGEpe3ZhciBiO2lmKGE8MCl7cmV0dXJuIHF3ZX1lbHNlIGlmKGE9PTApe3JldHVybiAwfWVsc2V7Zm9yKGI9aHdlOyhiJmEpPT0wO2I+Pj0xKTtyZXR1cm4gYn19XG5mdW5jdGlvbiB6U2QoYSxiLGMpe2lmKGE+PTEyOClyZXR1cm4gZmFsc2U7cmV0dXJuIGE8NjQ/UGRiKENkYihTZGIoMSxhKSxjKSwwKTpQZGIoQ2RiKFNkYigxLGEtNjQpLGIpLDApfVxuZnVuY3Rpb24gb1FiKGEsYixjKXtyZXR1cm4gYz09bnVsbD8oIWEucSYmKGEucT1uZXcgVHNiKSxfamIoYS5xLGIpKTooIWEucSYmKGEucT1uZXcgVHNiKSxaamIoYS5xLGIsYykpLGF9XG5mdW5jdGlvbiBwUWIoYSxiLGMpe2M9PW51bGw/KCFhLnEmJihhLnE9bmV3IFRzYiksX2piKGEucSxiKSk6KCFhLnEmJihhLnE9bmV3IFRzYiksWmpiKGEucSxiLGMpKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIEtUYihhKXt2YXIgYixjO2M9bmV3IGdVYjtrUWIoYyxhKTtwUWIoYywoSlZiKCksSFZiKSxhKTtiPW5ldyBUc2I7TVRiKGEsYyxiKTtMVGIoYSxjLGIpO3JldHVybiBjfVxuZnVuY3Rpb24gY0ljKGEpe3ZhciBiLGM7Yj1hLnQtYS5rW2Euby5wXSphLmQrYS5qW2Euby5wXT5hLmY7Yz1hLnUrYS5lW2Euby5wXSphLmQ+YS5mKmEucyphLmQ7cmV0dXJuIGJ8fGN9XG5mdW5jdGlvbiBxbWMoYSxiKXt2YXIgYyxkLGUsZjtjPWZhbHNlO2Q9YS5hW2JdLmxlbmd0aDtmb3IoZj0wO2Y8ZC0xO2YrKyl7ZT1mKzE7Yz1jfHJtYyhhLGIsZixlKX1yZXR1cm4gY31cbmZ1bmN0aW9uIEVtYyhhKXt2YXIgYixjLGQsZTtmb3IoYz1hLmEsZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdO0ptYyhhLGIsKHFwZCgpLG5wZCkpO0ptYyhhLGIsWW9kKX19XG5mdW5jdGlvbiB0dmMoKXt0dmM9Z2ViO3N2Yz1zcygob3ZjKCksY0QoV0MoaVgsMSksandlLDI1OSwwLFtmdmMsaHZjLGl2YyxqdmMsa3ZjLGx2YyxudmMsZXZjLGd2YyxtdmNdKSkpfVxuZnVuY3Rpb24gZkVjKCl7ZkVjPWdlYjtlRWM9c3MoKGFFYygpLGNEKFdDKHZYLDEpLGp3ZSwyNDMsMCxbJERjLFZEYyxZRGMsV0RjLFhEYyxTRGMsWkRjLF9EYyxURGMsVURjXSkpKX1cbmZ1bmN0aW9uIGh1Yygpe2h1Yz1nZWI7ZnVjPW5ldyBpdWMoTEFlLDApO2V1Yz1uZXcgaXVjKCdJTkNPTUlOR19PTkxZJywxKTtndWM9bmV3IGl1YygnT1VUR09JTkdfT05MWScsMil9XG5mdW5jdGlvbiBIQygpe0hDPWdlYjtHQz17J2Jvb2xlYW4nOklDLCdudW1iZXInOkpDLCdzdHJpbmcnOkxDLCdvYmplY3QnOktDLCdmdW5jdGlvbic6S0MsJ3VuZGVmaW5lZCc6TUN9fVxuZnVuY3Rpb24gcGZiKCl7KytrZmI7dGhpcy5vPW51bGw7dGhpcy5rPW51bGw7dGhpcy5qPW51bGw7dGhpcy5kPW51bGw7dGhpcy5iPW51bGw7dGhpcy5uPW51bGw7dGhpcy5hPW51bGx9XG5mdW5jdGlvbiBwaihhLGIpe3RoaXMuYz1hO3RoaXMuZD1iO3RoaXMuYj10aGlzLmQvdGhpcy5jLmMuUmQoKS5nYygpfDA7dGhpcy5hPXRoaXMuZCV0aGlzLmMuYy5SZCgpLmdjKCl9XG5mdW5jdGlvbiBSJGQoYSxiKXt0aGlzLmI9YTtOJGQuY2FsbCh0aGlzLChSRChRSGQoeFlkKChsVGQoKSxrVGQpLm8pLDEwKSwxOSksYi5pKSxiLmcpO3RoaXMuYT0obFlkKCksa1lkKX1cbmZ1bmN0aW9uIHZCKGEsYixjKXt0aGlzLnE9bmV3ICR3bmQuRGF0ZTt0aGlzLnEuc2V0RnVsbFllYXIoYStPd2UsYixjKTt0aGlzLnEuc2V0SG91cnMoMCwwLDAsMCk7bUIodGhpcywwKX1cbmZ1bmN0aW9uIGNrYihhLGIpe21GYihhPj0wLCdOZWdhdGl2ZSBpbml0aWFsIGNhcGFjaXR5Jyk7bUZiKGI+PTAsJ05vbi1wb3NpdGl2ZSBsb2FkIGZhY3RvcicpO2FrYih0aGlzKX1cbmZ1bmN0aW9uIGlpYihhLGIsYyxkLGUpe3ZhciBmLGc7Zz1hLmxlbmd0aDtmPWMubGVuZ3RoO2lmKGI8MHx8ZDwwfHxlPDB8fGIrZT5nfHxkK2U+Zil7dGhyb3cgQWRiKG5ldyB1ZWIpfX1cbmZ1bmN0aW9uIHpvYihhLGIpe3lvYigpO3ZhciBjLGQsZSxmLGc7Zz1mYWxzZTtmb3IoZD1iLGU9MCxmPWQubGVuZ3RoO2U8ZjsrK2Upe2M9ZFtlXTtnPWd8YS5GYyhjKX1yZXR1cm4gZ31cbmZ1bmN0aW9uIFd5YihhLGIsYyl7dmFyIGQsZTtkPW5ldyBGemIoYixjKTtlPW5ldyBHemI7YS5iPVV5YihhLGEuYixkLGUpO2UuYnx8KythLmM7YS5iLmI9ZmFsc2U7cmV0dXJuIGUuZH1cbmZ1bmN0aW9uIG9tYihhKXt2YXIgYjtiPWEuYVthLmJdO2lmKGI9PW51bGwpe3JldHVybiBudWxsfWJEKGEuYSxhLmIsbnVsbCk7YS5iPWEuYisxJmEuYS5sZW5ndGgtMTtyZXR1cm4gYn1cbmZ1bmN0aW9uIG9EKGEpe3ZhciBiLGM7Yz1uZ2IoYS5oKTtpZihjPT0zMil7Yj1uZ2IoYS5tKTtyZXR1cm4gYj09MzI/bmdiKGEubCkrMzI6YisyMC0xMH1lbHNle3JldHVybiBjLTEyfX1cbmZ1bmN0aW9uICQ1ZChhKXt2YXIgYjtpZighYS5jfHwoYS5CYiYxKT09MCYmKGEuYy5EYiY2NCkhPTApe2I9V1ZkKGEpO1pEKGIsOTApJiYoYS5jPVJEKGIsMjkpKX1yZXR1cm4gYS5jfVxuZnVuY3Rpb24gT0diKGEpe3ZhciBiLGM7Zm9yKGM9bmV3IEFuYihhLmEuYik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDYwKTtiLmQuYz0tYi5kLmMtYi5kLmJ9SUdiKGEpfVxuZnVuY3Rpb24gelliKGEpe3ZhciBiLGM7Zm9yKGM9bmV3IEFuYihhLmEuYik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDg2KTtiLmcuYz0tYi5nLmMtYi5nLmJ9dVliKGEpfVxuZnVuY3Rpb24gSm1jKGEsYixjKXt2YXIgZCxlLGYsZztnPWFNYyhiLGMpO2Y9MDtmb3IoZT1nLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMTIpO1pqYihhLmMsZCxzZ2IoZisrKSl9fVxuZnVuY3Rpb24gcU1jKGEsYixjKXt2YXIgZDtkPW5ldyBibmI7c01jKGEsYixkLChxcGQoKSxYb2QpLHRydWUsZmFsc2UpO3NNYyhhLGMsZCxwcGQsZmFsc2UsZmFsc2UpO3JldHVybiBkfVxuZnVuY3Rpb24geGpkKGEpe3ZhciBiLGMsZCxlLGY7Yj1uZXcgcGpkO2ZvcihkPWEsZT0wLGY9ZC5sZW5ndGg7ZTxmOysrZSl7Yz1kW2VdO2IuYSs9Yy5hO2IuYis9Yy5ifXJldHVybiBifVxuZnVuY3Rpb24gQ0VkKGEsYixjKXt2YXIgZCxlLGYsZztmPW51bGw7Zz1iO2U9d0RkKGcsJ2xhYmVscycpO2Q9bmV3IGZGZChhLGMpO2Y9KGJFZChkLmEsZC5iLGUpLGUpO3JldHVybiBmfVxuZnVuY3Rpb24gSmVlKGEsYixjLGQpe3ZhciBlO2U9UmVlKGEsYixjLGQpO2lmKCFlKXtlPUllZShhLGMsZCk7aWYoISFlJiYhRWVlKGEsYixlKSl7cmV0dXJuIG51bGx9fXJldHVybiBlfVxuZnVuY3Rpb24gTWVlKGEsYixjLGQpe3ZhciBlO2U9U2VlKGEsYixjLGQpO2lmKCFlKXtlPUxlZShhLGMsZCk7aWYoISFlJiYhRWVlKGEsYixlKSl7cmV0dXJuIG51bGx9fXJldHVybiBlfVxuZnVuY3Rpb24gQ2IoYSxiLGMpe1FiKGIpO2lmKGMuT2IoKSl7VmhiKGIsRmIoYy5QYigpKSk7d2hpbGUoYy5PYigpKXtWaGIoYixhLmEpO1ZoYihiLEZiKGMuUGIoKSkpfX1yZXR1cm4gYn1cbmZ1bmN0aW9uIFhiKGEsYil7dmFyIGM7Zm9yKGM9MDtjPGEuYS5hLmxlbmd0aDtjKyspe2lmKCFSRChrb2IoYS5hLGMpLDE3OCkuTGIoYikpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBmQihhKXt2YXIgYjtpZihhPT0wKXtyZXR1cm4gJ0V0Yy9HTVQnfWlmKGE8MCl7YT0tYTtiPSdFdGMvR01ULSd9ZWxzZXtiPSdFdGMvR01UKyd9cmV0dXJuIGIraUIoYSl9XG5mdW5jdGlvbiBEQShhKXt2YXIgYjtpZihhLmI8PTApe3JldHVybiBmYWxzZX1iPXFoYignTUx5ZGhIbXNTRGtLJyxGaGIoaWhiKGEuYywwKSkpO3JldHVybiBiPjF8fGI+PTAmJmEuYjwzfVxuZnVuY3Rpb24gbkQoYSl7dmFyIGIsYyxkO2I9fmEubCsxJmR4ZTtjPX5hLm0rKGI9PTA/MTowKSZkeGU7ZD1+YS5oKyhiPT0wJiZjPT0wPzE6MCkmZXhlO2EubD1iO2EubT1jO2EuaD1kfVxuZnVuY3Rpb24gQ29iKGEpe3lvYigpO3ZhciBiLGMsZDtkPTE7Zm9yKGM9YS5LYygpO2MuT2IoKTspe2I9Yy5QYigpO2Q9MzEqZCsoYiE9bnVsbD90YihiKTowKTtkPWR8MH1yZXR1cm4gZH1cbmZ1bmN0aW9uIGtEKGEsYixjLGQsZSl7dmFyIGY7Zj1CRChhLGIpO2MmJm5EKGYpO2lmKGUpe2E9bUQoYSxiKTtkPyhlRD14RChhKSk6KGVEPWhEKGEubCxhLm0sYS5oKSl9cmV0dXJuIGZ9XG5mdW5jdGlvbiBRbGMoYSxiLGMpe2EuZz1XbGMoYSxiLChxcGQoKSxYb2QpLGEuYik7YS5kPVdsYyhhLGMsWG9kLGEuYik7aWYoYS5nLmM9PTB8fGEuZC5jPT0wKXtyZXR1cm59VGxjKGEpfVxuZnVuY3Rpb24gUmxjKGEsYixjKXthLmc9V2xjKGEsYiwocXBkKCkscHBkKSxhLmopO2EuZD1XbGMoYSxjLHBwZCxhLmopO2lmKGEuZy5jPT0wfHxhLmQuYz09MCl7cmV0dXJufVRsYyhhKX1cbmZ1bmN0aW9uIFh5ZChhLGIpe3N3aXRjaChiKXtjYXNlIDc6cmV0dXJuICEhYS5lJiZhLmUuaSE9MDtjYXNlIDg6cmV0dXJuICEhYS5kJiZhLmQuaSE9MDt9cmV0dXJuIHd5ZChhLGIpfVxuZnVuY3Rpb24gU1RiKGEsYil7c3dpdGNoKGIuZyl7Y2FzZSAwOlpEKGEuYiw2NDEpfHwoYS5iPW5ldyB0VWIpO2JyZWFrO2Nhc2UgMTpaRChhLmIsNjQyKXx8KGEuYj1uZXcgelViKTt9fVxuZnVuY3Rpb24gdGJkKGEpe3N3aXRjaChhLmcpe2Nhc2UgMDpyZXR1cm4gbmV3IF9kZDtkZWZhdWx0OnRocm93IEFkYihuZXcgYWdiKGVHZSsoYS5mIT1udWxsP2EuZjonJythLmcpKSk7fX1cbmZ1bmN0aW9uIGJkZChhKXtzd2l0Y2goYS5nKXtjYXNlIDA6cmV0dXJuIG5ldyB2ZGQ7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYihlR2UrKGEuZiE9bnVsbD9hLmY6JycrYS5nKSkpO319XG5mdW5jdGlvbiBMQ2MoYSxiLGMpe3JldHVybiAhUURiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmMsMTYpKSxuZXcgUEFiKG5ldyBnc2QoYixjKSkpKS5CZCgoeERiKCksd0RiKSl9XG5mdW5jdGlvbiBtV2MoYSxiKXtyZXR1cm4gY2pkKGpXYyhSRChtUWIoYiwoaF9jKCksSCRjKSksODgpKSxuZXcgcmpkKGEuYy5lLmEtYS5iLmUuYSxhLmMuZS5iLWEuYi5lLmIpKTw9MH1cbmZ1bmN0aW9uIGR2ZShhLGIpe3doaWxlKGEuZz09bnVsbCYmIWEuYz9zSWQoYSk6YS5nPT1udWxsfHxhLmkhPTAmJlJEKGEuZ1thLmktMV0sNTEpLk9iKCkpe21GZChiLHRJZChhKSl9fVxuZnVuY3Rpb24gc1liKGEpe3ZhciBiLGM7Zm9yKGM9bmV3IEFuYihhLmEuYik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDg2KTtiLmYuJGIoKX1OWWIoYS5iLGEpO3RZYihhKX1cbmZ1bmN0aW9uIElqZChhKXt2YXIgYixjLGQ7Yj1uZXcgRWpkO2ZvcihkPVN1YihhLDApO2QuYiE9ZC5kLmM7KXtjPVJEKGV2YihkKSw4KTtodShiLDAsbmV3IHNqZChjKSl9cmV0dXJuIGJ9XG5mdW5jdGlvbiBERGIoYSl7dmFyIGI7TENiKGEpO2I9bmV3IElFYjtpZihhLmEuQmQoYikpe3JldHVybiBLdmIoKSxuZXcgT3ZiKHVGYihiLmEpKX1yZXR1cm4gS3ZiKCksS3ZiKCksSnZifVxuZnVuY3Rpb24gRHhkKGEsYixjKXtzd2l0Y2goYil7Y2FzZSAwOiFhLm8mJihhLm89bmV3IERWZCgocHZkKCksbXZkKSxYNCxhLDApKTtDVmQoYS5vLGMpO3JldHVybjt9V3ZkKGEsYixjKX1cbmZ1bmN0aW9uIGJYYyhhLGIsYyl7dGhpcy5nPWE7dGhpcy5lPW5ldyBwamQ7dGhpcy5mPW5ldyBwamQ7dGhpcy5kPW5ldyBZdWI7dGhpcy5iPW5ldyBZdWI7dGhpcy5hPWI7dGhpcy5jPWN9XG5mdW5jdGlvbiBWOWMoYSxiLGMsZCl7dGhpcy5iPW5ldyBibmI7dGhpcy5uPW5ldyBibmI7dGhpcy5pPWQ7dGhpcy5qPWM7dGhpcy5zPWE7dGhpcy50PWI7dGhpcy5yPTA7dGhpcy5kPTB9XG5mdW5jdGlvbiBnSGQoYSxiKXtpZighYS5MaSgpJiZiPT1udWxsKXt0aHJvdyBBZGIobmV3IGFnYihcIlRoZSAnbm8gbnVsbCcgY29uc3RyYWludCBpcyB2aW9sYXRlZFwiKSl9cmV0dXJuIGJ9XG5mdW5jdGlvbiBvaGIoYSl7dmFyIGIsYztiPTA7Zm9yKGM9MDtjPGEubGVuZ3RoO2MrKyl7Yj0oYjw8NSktYisoQkZiKGMsYS5sZW5ndGgpLGEuY2hhckNvZGVBdChjKSl8MH1yZXR1cm4gYn1cbmZ1bmN0aW9uIE15YihhLGIpe3ZhciBjLGQsZTtlPWEuYjt3aGlsZShlKXtjPWEuYS5OZShiLGUuZCk7aWYoYz09MCl7cmV0dXJuIGV9ZD1jPDA/MDoxO2U9ZS5hW2RdfXJldHVybiBudWxsfVxuZnVuY3Rpb24gTEJiKGEsYixjKXt2YXIgZCxlO2Q9KEdlYigpLFNTYihjKT90cnVlOmZhbHNlKTtlPVJEKGIueGMoZCksMTUpO2lmKCFlKXtlPW5ldyBibmI7Yi56YyhkLGUpfWUuRmMoYyl9XG5mdW5jdGlvbiBxNmMoYSxiKXt2YXIgYyxkO2M9UkQoR3hkKGEsKFg3YygpLEE3YykpLDE3KS5hO2Q9UkQoR3hkKGIsQTdjKSwxNykuYTtyZXR1cm4gYz09ZD8tMTpjPGQ/LTE6Yz5kPzE6MH1cbmZ1bmN0aW9uIElDYyhhKXtSbWIoYS5jLChoZWQoKSxmZWQpKTtpZihfeShhLmEsS2ZiKFVEKGlHZCgoUUNjKCksT0NjKSkpKSkpe3JldHVybiBuZXcgYXNkfXJldHVybiBuZXcgY3NkKGEpfVxuZnVuY3Rpb24gZnMoYSl7d2hpbGUoIWEuZHx8IWEuZC5PYigpKXtpZighIWEuYiYmIW5tYihhLmIpKXthLmQ9UkQoc21iKGEuYiksNTEpfWVsc2V7cmV0dXJuIG51bGx9fXJldHVybiBhLmR9XG5mdW5jdGlvbiBCVmMoYSl7c3dpdGNoKGEuZyl7Y2FzZSAxOnJldHVybiBFRWU7ZGVmYXVsdDpjYXNlIDI6cmV0dXJuIDA7Y2FzZSAzOnJldHVybiBHemU7Y2FzZSA0OnJldHVybiBGRWU7fX1cbmZ1bmN0aW9uIGZ0ZSgpe1ZzZSgpO3ZhciBhO2lmKENzZSlyZXR1cm4gQ3NlO2E9WnNlKGh0ZSgnTScsdHJ1ZSkpO2E9JHNlKGh0ZSgnTScsZmFsc2UpLGEpO0NzZT1hO3JldHVybiBDc2V9XG5mdW5jdGlvbiB0dGQoKXt0dGQ9Z2ViO3F0ZD1uZXcgdXRkKCdFTEsnLDApO3J0ZD1uZXcgdXRkKCdKU09OJywxKTtwdGQ9bmV3IHV0ZCgnRE9UJywyKTtzdGQ9bmV3IHV0ZCgnU1ZHJywzKX1cbmZ1bmN0aW9uIFRFYygpe1RFYz1nZWI7U0VjPW5ldyBVRWMoJ1NUQUNLRUQnLDApO1FFYz1uZXcgVUVjKCdSRVZFUlNFX1NUQUNLRUQnLDEpO1JFYz1uZXcgVUVjKCdTRVFVRU5DRUQnLDIpfVxuZnVuY3Rpb24gTFpjKCl7TFpjPWdlYjtLWmM9bmV3IE1aYyhMQWUsMCk7SlpjPW5ldyBNWmMoJ01JRERMRV9UT19NSURETEUnLDEpO0laYz1uZXcgTVpjKCdBVk9JRF9PVkVSTEFQJywyKX1cbmZ1bmN0aW9uIHNnYygpe3NnYz1nZWI7cWdjPW5ldyBMZ2M7cmdjPW5ldyBOZ2M7cGdjPW5ldyBEZ2M7b2djPW5ldyBQZ2M7bmdjPW5ldyBIZ2M7bWdjPSh1RmIobmdjKSxuZXcgbnJiKX1cbmZ1bmN0aW9uIHZuZCgpe3ZuZD1nZWI7dG5kPW5ldyBBM2IoMTUpO3NuZD1uZXcgbUdkKCh1bWQoKSx0bGQpLHRuZCk7dW5kPVFsZDtvbmQ9RWtkO3BuZD1rbGQ7cm5kPW5sZDtxbmQ9bWxkfVxuZnVuY3Rpb24gd2dkKGEsYil7dmFyIGMsZCxlLGYsZztmb3IoZD1iLGU9MCxmPWQubGVuZ3RoO2U8ZjsrK2Upe2M9ZFtlXTtnPW5ldyBHZ2QoYSk7Yy5oZihnKTtCZ2QoZyl9YWtiKGEuZil9XG5mdW5jdGlvbiB4dyhhLGIpe3ZhciBjO2lmKGI9PT1hKXtyZXR1cm4gdHJ1ZX1pZihaRChiLDIyOSkpe2M9UkQoYiwyMjkpO3JldHVybiBwYihhLlpiKCksYy5aYigpKX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBRX2IoYSxiKXtpZihSX2IoYSxiKSl7UmMoYS5iLFJEKG1RYihiLChZd2MoKSxld2MpKSwyMSksYik7TXViKGEuYSxiKTtyZXR1cm4gdHJ1ZX1lbHNle3JldHVybiBmYWxzZX19XG5mdW5jdGlvbiB1NmIoYSl7dmFyIGIsYztiPVJEKG1RYihhLChZd2MoKSxJd2MpKSwxMCk7aWYoYil7Yz1iLmM7WW1iKGMuYSxiKTtjLmEuYy5sZW5ndGg9PTAmJlltYihZMmIoYikuYixjKX19XG5mdW5jdGlvbiBkZmMoYSxiKXtpZihuUWIoYSwoWXdjKCksendjKSkmJm5RYihiLHp3Yykpe3JldHVybiBSRChtUWIoYix6d2MpLDE3KS5hLVJEKG1RYihhLHp3YyksMTcpLmF9cmV0dXJuIDB9XG5mdW5jdGlvbiBpZmMoYSxiKXtpZihuUWIoYSwoWXdjKCksendjKSkmJm5RYihiLHp3Yykpe3JldHVybiBSRChtUWIoYSx6d2MpLDE3KS5hLVJEKG1RYihiLHp3YyksMTcpLmF9cmV0dXJuIDB9XG5mdW5jdGlvbiBrQmIoYSl7aWYoZEJiKXtyZXR1cm4gJEMoSkwsWHhlLDU4MSwwLDAsMSl9cmV0dXJuIFJEKGFuYihhLmEsJEMoSkwsWHhlLDU4MSxhLmEuYy5sZW5ndGgsMCwxKSksODU2KX1cbmZ1bmN0aW9uIHluKGEsYixjLGQpe2ZuKCk7cmV0dXJuIG5ldyBOeChjRChXQyhVSywxKSxadmUsNDQsMCxbKGNrKGEsYiksbmV3IGdwKGEsYikpLChjayhjLGQpLG5ldyBncChjLGQpKV0pKX1cbmZ1bmN0aW9uIGJCZChhLGIsYyl7dmFyIGQsZTtlPShkPW5ldyBxNGQsZCk7eUJkKGUsYixjKTtXR2QoKCFhLnEmJihhLnE9bmV3IEM1ZChzNyxhLDExLDEwKSksYS5xKSxlKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIHhBZChhKXt2YXIgYixjLGQsZTtlPW1lYihwQWQsYSk7Yz1lLmxlbmd0aDtkPSRDKHFKLE52ZSwyLGMsNiwxKTtmb3IoYj0wO2I8YzsrK2Ipe2RbYl09ZVtiXX1yZXR1cm4gZH1cbmZ1bmN0aW9uIGp3YihhLGIpe3ZhciBjO2lmKGIqMisxPj1hLmIuYy5sZW5ndGgpe3JldHVybn1qd2IoYSwyKmIrMSk7Yz0yKmIrMjtjPGEuYi5jLmxlbmd0aCYmandiKGEsYyk7a3diKGEsYil9XG5mdW5jdGlvbiBzS2MoYSxiKXt2YXIgYyxkO2ZvcihkPVN1YihhLDApO2QuYiE9ZC5kLmM7KXtjPVJEKGV2YihkKSwyMTkpO2lmKGMuZS5sZW5ndGg+MCl7Yi5DZChjKTtjLmkmJnpLYyhjKX19fVxuZnVuY3Rpb24gRWpiKGEsYixjKXt2YXIgZDtmb3IoZD1jLTE7ZD49MCYmYVtkXT09PWJbZF07ZC0tKTtyZXR1cm4gZDwwPzA6TGRiKENkYihhW2RdLHl4ZSksQ2RiKGJbZF0seXhlKSk/LTE6MX1cbmZ1bmN0aW9uIGl0KGEsYixjKXt2YXIgZCxlO3RoaXMuZz1hO3RoaXMuYz1iO3RoaXMuYT10aGlzO3RoaXMuZD10aGlzO2U9V3AoYyk7ZD0kQyhVRyxld2UsMjI3LGUsMCwxKTt0aGlzLmI9ZH1cbmZ1bmN0aW9uIGZRYihhLGIsYyxkLGUpe3ZhciBmLGc7Zm9yKGc9YztnPD1lO2crKyl7Zm9yKGY9YjtmPD1kO2YrKyl7aWYoUFBiKGEsZixnKSl7cmV0dXJuIHRydWV9fX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBEYyhhLGIpe3ZhciBjLGQ7Zm9yKGQ9YS5aYigpLkNjKCkuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSwxNik7aWYoYy5IYyhiKSl7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIGl1KGEsYixjKXt2YXIgZCxlLGYsZzt1RmIoYyk7Zz1mYWxzZTtmPWEuZmQoYik7Zm9yKGU9Yy5LYygpO2UuT2IoKTspe2Q9ZS5QYigpO2YuUmIoZCk7Zz10cnVlfXJldHVybiBnfVxuZnVuY3Rpb24gTk1kKGEsYil7dmFyIGMsZDtkPVJEKFl3ZChhLmEsNCksMTI5KTtjPSRDKGQ2LElKZSw0MjQsYiwwLDEpO2QhPW51bGwmJmhpYihkLDAsYywwLGQubGVuZ3RoKTtyZXR1cm4gY31cbmZ1bmN0aW9uIGhTZChhLGIpe3ZhciBjO2M9bmV3IGxTZCgoYS5mJjI1NikhPTAsYS5pLGEuYSxhLmQsKGEuZiYxNikhPTAsYS5qLGEuZyxiKTthLmUhPW51bGx8fChjLmM9YSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBUdihhLGIpe3ZhciBjO2lmKGE9PT1iKXtyZXR1cm4gdHJ1ZX1lbHNlIGlmKFpEKGIsODUpKXtjPVJEKGIsODUpO3JldHVybiBSeChnbihhKSxjLnZjKCkpfXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIFZqYihhLGIsYyl7dmFyIGQsZTtmb3IoZT1jLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksNDQpO2lmKGEuQmUoYixkLm1kKCkpKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gbG1jKGEsYixjKXtpZighYS5kW2IucF1bYy5wXSl7a21jKGEsYixjKTthLmRbYi5wXVtjLnBdPXRydWU7YS5kW2MucF1bYi5wXT10cnVlfXJldHVybiBhLmFbYi5wXVtjLnBdfVxuZnVuY3Rpb24gdk1jKGEsYil7dmFyIGM7aWYoIWF8fGE9PWJ8fCFuUWIoYiwoWXdjKCkscHdjKSkpe3JldHVybiBmYWxzZX1jPVJEKG1RYihiLChZd2MoKSxwd2MpKSwxMCk7cmV0dXJuIGMhPWF9XG5mdW5jdGlvbiBCaGUoYSl7c3dpdGNoKGEuaSl7Y2FzZSAyOntyZXR1cm4gdHJ1ZX1jYXNlIDE6e3JldHVybiBmYWxzZX1jYXNlIC0xOnsrK2EuY31kZWZhdWx0OntyZXR1cm4gYS4kbCgpfX19XG5mdW5jdGlvbiBDaGUoYSl7c3dpdGNoKGEuaSl7Y2FzZSAtMjp7cmV0dXJuIHRydWV9Y2FzZSAtMTp7cmV0dXJuIGZhbHNlfWNhc2UgMTp7LS1hLmN9ZGVmYXVsdDp7cmV0dXJuIGEuX2woKX19fVxuZnVuY3Rpb24gYmdiKGEpe296LmNhbGwodGhpcywnVGhlIGdpdmVuIHN0cmluZyBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0IGZvciBpbmRpdmlkdWFsIHNwYWNpbmdzLicsYSl9XG5mdW5jdGlvbiBKNmMoYSxiKXt2YXIgYztiLlVnKCdNaW4gU2l6ZSBQcmVwcm9jZXNzaW5nJywxKTtjPXZzZChhKTtJeGQoYSwoWDZjKCksVTZjKSxjLmEpO0l4ZChhLFI2YyxjLmIpO2IuVmcoKX1cbmZ1bmN0aW9uIERqZChhKXt2YXIgYixjLGQ7Yj0wO2Q9JEMobDMsTnZlLDgsYS5iLDAsMSk7Yz1TdWIoYSwwKTt3aGlsZShjLmIhPWMuZC5jKXtkW2IrK109UkQoZXZiKGMpLDgpfXJldHVybiBkfVxuZnVuY3Rpb24gQWpkKGEsYixjKXt2YXIgZCxlLGY7ZD1uZXcgWXViO2ZvcihmPVN1YihjLDApO2YuYiE9Zi5kLmM7KXtlPVJEKGV2YihmKSw4KTtNdWIoZCxuZXcgc2pkKGUpKX1pdShhLGIsZCl9XG5mdW5jdGlvbiBheihhLGIpe3ZhciBjO2M9QmRiKGEsYik7aWYoTGRiKCRkYihhLGIpLDApfEpkYigkZGIoYSxjKSwwKSl7cmV0dXJuIGN9cmV0dXJuIEJkYihTdmUsJGRiKFVkYihjLDYzKSwxKSl9XG5mdW5jdGlvbiBsZShhLGIpe3ZhciBjLGQ7Yz1SRChhLmQuQmMoYiksMTYpO2lmKCFjKXtyZXR1cm4gbnVsbH1kPWEuZS5oYygpO2QuR2MoYyk7YS5lLmQtPWMuZ2MoKTtjLiRiKCk7cmV0dXJuIGR9XG5mdW5jdGlvbiBEeWIoYSl7dmFyIGI7Yj1hLmEuYy5sZW5ndGg7aWYoYj4wKXtyZXR1cm4gbHliKGItMSxhLmEuYy5sZW5ndGgpLFhtYihhLmEsYi0xKX1lbHNle3Rocm93IEFkYihuZXcgU3JiKX19XG5mdW5jdGlvbiBuRmIoYSxiLGMpe2lmKGE+Yil7dGhyb3cgQWRiKG5ldyBhZ2IoX3hlK2ErYXllK2IpKX1pZihhPDB8fGI+Yyl7dGhyb3cgQWRiKG5ldyB4ZWIoX3hlK2ErYnllK2IrUXhlK2MpKX19XG5mdW5jdGlvbiB5WGQoYSxiKXtpZihhLkQ9PW51bGwmJmEuQiE9bnVsbCl7YS5EPWEuQjthLkI9bnVsbH1KWGQoYSxiPT1udWxsP251bGw6KHVGYihiKSxiKSk7ISFhLkMmJmEuaGwobnVsbCl9XG5mdW5jdGlvbiBKQ2MoYSxiKXt2YXIgYztjPWlHZCgoUUNjKCksT0NjKSkhPW51bGwmJmIuU2coKSE9bnVsbD9LZmIoVUQoYi5TZygpKSkvS2ZiKFVEKGlHZChPQ2MpKSk6MTtaamIoYS5iLGIsYyl9XG5mdW5jdGlvbiAkTGMoYSxiKXt2YXIgYyxkO2Q9YS5jW2JdO2lmKGQ9PTApe3JldHVybn1hLmNbYl09MDthLmQtPWQ7Yz1iKzE7d2hpbGUoYzxhLmEubGVuZ3RoKXthLmFbY10tPWQ7Yys9YyYtY319XG5mdW5jdGlvbiBWSGQoYSl7dmFyIGI7KythLmo7aWYoYS5pPT0wKXthLmc9bnVsbH1lbHNlIGlmKGEuaTxhLmcubGVuZ3RoKXtiPWEuZzthLmc9YS5haihhLmkpO2hpYihiLDAsYS5nLDAsYS5pKX19XG5mdW5jdGlvbiBOZWQoYSxiLGMpe2lmKGI8MCl7dGhyb3cgQWRiKG5ldyB2ZWIoekdlK2IpKX1pZihiPGEuai5jLmxlbmd0aCl7JG1iKGEuaixiLGMpfWVsc2V7TGVkKGEsYik7Um1iKGEuaixjKX19XG5mdW5jdGlvbiB1aGQoYSl7aWYoIWEuYXx8KGEuYS5pJjgpPT0wKXt0aHJvdyBBZGIobmV3IGRnYignRW51bWVyYXRpb24gY2xhc3MgZXhwZWN0ZWQgZm9yIGxheW91dCBvcHRpb24gJythLmYpKX19XG5mdW5jdGlvbiB5MWQoYSl7dmFyIGI7Yj0oIWEuYSYmKGEuYT1uZXcgQzVkKGw3LGEsOSw1KSksYS5hKTtpZihiLmkhPTApe3JldHVybiBOMWQoUkQoUUhkKGIsMCksNjk0KSl9cmV0dXJuIG51bGx9XG5mdW5jdGlvbiB5cihhKXt2YXIgYjtRYihhKTtNYih0cnVlLCdudW1iZXJUb0FkdmFuY2UgbXVzdCBiZSBub25uZWdhdGl2ZScpO2ZvcihiPTA7YjwwJiZncyhhKTtiKyspe2hzKGEpfXJldHVybiBifVxuZnVuY3Rpb24gZVNiKCl7ZVNiPWdlYjtiU2I9KFZSYigpLFVSYik7YVNiPW5ldyBsR2QodnplLGJTYik7X1JiPW5ldyBqR2Qod3plKTtjU2I9bmV3IGpHZCh4emUpO2RTYj1uZXcgakdkKHl6ZSl9XG5mdW5jdGlvbiBzX2MoKXtzX2M9Z2ViO3JfYz1uZXcgdF9jKE1BZSwwKTtwX2M9bmV3IHRfYyhRRWUsMSk7cV9jPW5ldyB0X2MoJ0ZBTicsMik7b19jPW5ldyB0X2MoJ0NPTlNUUkFJTlQnLDMpfVxuZnVuY3Rpb24gZzRjKCl7ZzRjPWdlYjtkNGM9bmV3IGk0YyhMQWUsMCk7ZTRjPW5ldyBpNGMoJ1JBRElBTF9DT01QQUNUSU9OJywxKTtmNGM9bmV3IGk0YygnV0VER0VfQ09NUEFDVElPTicsMil9XG5mdW5jdGlvbiBsRmMoKXtsRmM9Z2ViO2lGYz1uZXcgbUZjKCdDT05TRVJWQVRJVkUnLDApO2pGYz1uZXcgbUZjKCdDT05TRVJWQVRJVkVfU09GVCcsMSk7a0ZjPW5ldyBtRmMoJ1NMT1BQWScsMil9XG5mdW5jdGlvbiB4QmIoKXt4QmI9Z2ViO3VCYj1uZXcgeUJiKCdDT05DVVJSRU5UJywwKTt2QmI9bmV3IHlCYignSURFTlRJVFlfRklOSVNIJywxKTt3QmI9bmV3IHlCYignVU5PUkRFUkVEJywyKX1cbmZ1bmN0aW9uIE5YYigpe05YYj1nZWI7TFhiPVd4KGNEKFdDKHMzLDEpLGp3ZSw4OCwwLFsoQ21kKCkseW1kKSx6bWRdKSk7TVhiPVd4KGNEKFdDKHMzLDEpLGp3ZSw4OCwwLFtCbWQseG1kXSkpfVxuZnVuY3Rpb24gcmIoYSl7cmV0dXJuIGJFKGEpP3FKOl9EKGEpP1ZJOiREKGEpP1FJOllEKGEpP2EuUm06YUQoYSk/YS5SbTphLlJtfHxBcnJheS5pc0FycmF5KGEpJiZXQyhoSSwxKXx8aEl9XG5mdW5jdGlvbiBRamUoYSl7cmV0dXJuICFhP251bGw6KGEuaSYxKSE9MD9hPT14ZGI/UUk6YT09a0U/Yko6YT09akU/Wkk6YT09aUU/Vkk6YT09bEU/ZUo6YT09d2RiP2xKOmE9PWdFP1JJOlNJOmF9XG5mdW5jdGlvbiBDSWIoYSl7aWYoYS5jIT1hLmIuYnx8YS5pIT1hLmcuYil7YUZiKGEuYS5jLDApO1RtYihhLmEsYS5iKTtUbWIoYS5hLGEuZyk7YS5jPWEuYi5iO2EuaT1hLmcuYn1yZXR1cm4gYS5hfVxuZnVuY3Rpb24gdm1iKGEsYil7dmFyIGMsZDtjPWEuYS5sZW5ndGgtMTt3aGlsZShiIT1hLmIpe2Q9Yi0xJmM7YkQoYS5hLGIsYS5hW2RdKTtiPWR9YkQoYS5hLGEuYixudWxsKTthLmI9YS5iKzEmY31cbmZ1bmN0aW9uIHVtYihhLGIpe3ZhciBjLGQ7Yz1hLmEubGVuZ3RoLTE7YS5jPWEuYy0xJmM7d2hpbGUoYiE9YS5jKXtkPWIrMSZjO2JEKGEuYSxiLGEuYVtkXSk7Yj1kfWJEKGEuYSxhLmMsbnVsbCl9XG5mdW5jdGlvbiBTbWIoYSxiLGMpe3ZhciBkLGU7d0ZiKGIsYS5jLmxlbmd0aCk7ZD1jLlBjKCk7ZT1kLmxlbmd0aDtpZihlPT0wKXtyZXR1cm4gZmFsc2V9WUViKGEuYyxiLGQpO3JldHVybiB0cnVlfVxuZnVuY3Rpb24gb3RiKGEsYixjKXt2YXIgZCxlLGYsZztmb3IoZT1jLGY9MCxnPWUubGVuZ3RoO2Y8ZzsrK2Ype2Q9ZVtmXTtpZihhLmIuQmUoYixkLmxkKCkpKXtyZXR1cm4gZH19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBUbmIoYSl7dmFyIGIsYyxkLGUsZjtmPTE7Zm9yKGM9YSxkPTAsZT1jLmxlbmd0aDtkPGU7KytkKXtiPWNbZF07Zj0zMSpmKyhiIT1udWxsP3RiKGIpOjApO2Y9ZnwwfXJldHVybiBmfVxuZnVuY3Rpb24gc3MoYSl7dmFyIGIsYyxkLGUsZjtiPXt9O2ZvcihkPWEsZT0wLGY9ZC5sZW5ndGg7ZTxmOysrZSl7Yz1kW2VdO2JbJzonKyhjLmYhPW51bGw/Yy5mOicnK2MuZyldPWN9cmV0dXJuIGJ9XG5mdW5jdGlvbiB0U2QoYSl7dmFyIGIsYztpZihhPT1udWxsKXJldHVybiBudWxsO2ZvcihiPTAsYz1hLmxlbmd0aDtiPGM7YisrKXtpZighR1NkKGFbYl0pKXJldHVybiBhW2JdfXJldHVybiBudWxsfVxuZnVuY3Rpb24gZ0tiKGEsYil7aWYoIWEpe3JldHVybiAwfWlmKGImJiFhLmope3JldHVybiAwfWlmKFpEKGEsMTI3KSl7aWYoUkQoYSwxMjcpLmEuYj09MCl7cmV0dXJuIDB9fXJldHVybiBhLmpmKCl9XG5mdW5jdGlvbiBoS2IoYSxiKXtpZighYSl7cmV0dXJuIDB9aWYoYiYmIWEuayl7cmV0dXJuIDB9aWYoWkQoYSwxMjcpKXtpZihSRChhLDEyNykuYS5hPT0wKXtyZXR1cm4gMH19cmV0dXJuIGEua2YoKX1cbmZ1bmN0aW9uIG9yYyhhLGIpe2lmKG5RYihhLChZd2MoKSx6d2MpKSYmblFiKGIsendjKSl7cmV0dXJuIGhnYihSRChtUWIoYSx6d2MpLDE3KS5hLFJEKG1RYihiLHp3YyksMTcpLmEpfXJldHVybiAwfVxuZnVuY3Rpb24gRUhjKGEpe3ZhciBiLGMsZDtkPTA7Zm9yKGM9bmV3IGlzKE1yKGEuYS5LYygpLG5ldyBpcikpO2dzKGMpOyl7Yj1SRChocyhjKSwxOCk7Yi5jLmk9PWIuZC5pfHwrK2R9cmV0dXJuIGR9XG5mdW5jdGlvbiBHYWQoYSxiKXt2YXIgYyxkLGU7ZT1iLWEuZjtmb3IoZD1uZXcgQW5iKGEuZCk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDMxNSk7ZmFkKGMsYy5lLGMuZitlKX1hLmY9Yn1cbmZ1bmN0aW9uIFlWZChhLGIpe3ZhciBjLGQsZTtkPWEuWWsoYixudWxsKTtlPW51bGw7aWYoYil7ZT0oalRkKCksYz1uZXcgczJkLGMpO2wyZChlLGEucil9ZD1YVmQoYSxlLGQpOyEhZCYmZC5vaigpfVxuZnVuY3Rpb24gUDBiKGEsYil7dmFyIGMsZCxlO2M9YTtlPTA7ZG97aWYoYz09Yil7cmV0dXJuIGV9ZD1jLmU7aWYoIWQpe3Rocm93IEFkYihuZXcgX2ZiKX1jPVkyYihkKTsrK2V9d2hpbGUodHJ1ZSl9XG5mdW5jdGlvbiB1UmIoYSl7dmFyIGIsYyxkLGU7ZD1hLmIuYTtmb3IoYz1kLmEuZWMoKS5LYygpO2MuT2IoKTspe2I9UkQoYy5QYigpLDU2Nyk7ZT1uZXcgRFNiKGIsYS5lLGEuZik7Um1iKGEuZyxlKX19XG5mdW5jdGlvbiBEWmIoYSl7dmFyIGI7Yj1uZXcgWFpiKGEpO3QkYihhLmEsQlpiLG5ldyBtb2IoY0QoV0Mod1EsMSkscnZlLDM4MiwwLFtiXSkpKTshIWIuZCYmUm1iKGIuZixiLmQpO3JldHVybiBiLmZ9XG5mdW5jdGlvbiBNMmIoYSxiKXt2YXIgYztmb3IoYz0wO2M8Yi5sZW5ndGg7YysrKXtpZihhPT0oQkZiKGMsYi5sZW5ndGgpLGIuY2hhckNvZGVBdChjKSkpe3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBCU2QoYSxiKXtyZXR1cm4gYjxhLmxlbmd0aCYmKEJGYihiLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoYikhPTYzKSYmKEJGYihiLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoYikhPTM1KX1cbmZ1bmN0aW9uIHRyYyhhLGIsYyxkKXtucmModGhpcyk7dGhpcy5jPSRDKGpSLFdBZSwxMCxhLmEuYy5sZW5ndGgsMCwxKTt0aGlzLmU9YjthbmIoYS5hLHRoaXMuYyk7dGhpcy5mPWM7dGhpcy5iPWR9XG5mdW5jdGlvbiBDeihhKXtBeigpO2V6KHRoaXMpO2d6KHRoaXMpO3RoaXMuZT1hO2h6KHRoaXMsYSk7dGhpcy5nPWE9PW51bGw/dnZlOmplYihhKTt0aGlzLmE9Jyc7dGhpcy5iPWE7dGhpcy5hPScnfVxuZnVuY3Rpb24gUGFkKCl7dGhpcy5hPW5ldyBRYWQ7dGhpcy5mPW5ldyBTYWQodGhpcyk7dGhpcy5iPW5ldyBVYWQodGhpcyk7dGhpcy5pPW5ldyBXYWQodGhpcyk7dGhpcy5lPW5ldyBZYWQodGhpcyl9XG5mdW5jdGlvbiBLcygpe0pzLmNhbGwodGhpcyxuZXcgaHViKFN2KDE2KSkpO2RrKDIsTXZlKTt0aGlzLmI9Mjt0aGlzLmE9bmV3IGN0KG51bGwsbnVsbCwwLG51bGwpO1NzKHRoaXMuYSx0aGlzLmEpfVxuZnVuY3Rpb24gTkMoYSl7SEMoKTt0aHJvdyBBZGIobmV3IGFDKFwiVW5leHBlY3RlZCB0eXBlb2YgcmVzdWx0ICdcIithK1wiJzsgcGxlYXNlIHJlcG9ydCB0aGlzIGJ1ZyB0byB0aGUgR1dUIHRlYW1cIikpfVxuZnVuY3Rpb24gQVZjKGEsYixjKXtpZigkd25kLk1hdGguYWJzKGItYSk8REVlfHwkd25kLk1hdGguYWJzKGMtYSk8REVlKXtyZXR1cm4gdHJ1ZX1yZXR1cm4gYi1hPkRFZT9hLWM+REVlOmMtYT5ERWV9XG5mdW5jdGlvbiB2amQoYSxiKXt2YXIgYztmb3IoYz0wO2M8Yi5sZW5ndGg7YysrKXtpZihhPT0oQkZiKGMsYi5sZW5ndGgpLGIuY2hhckNvZGVBdChjKSkpe3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBIU2QoYSl7dmFyIGIsYztpZihhPT1udWxsKXJldHVybiBmYWxzZTtmb3IoYj0wLGM9YS5sZW5ndGg7YjxjO2IrKyl7aWYoIUdTZChhW2JdKSlyZXR1cm4gZmFsc2V9cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBNOGMoYSxiKXt2YXIgYyxkLGU7ZD1mYWxzZTtjPWIucS5kO2lmKGIuZDxhLmIpe2U9ZGFkKGIucSxhLmIpO2lmKGIucS5kPmUpe2VhZChiLnEsZSk7ZD1jIT1iLnEuZH19cmV0dXJuIGR9XG5mdW5jdGlvbiBDM2MoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2k9Yi5pO2o9Yi5qO2Q9YS5mO2U9ZC5pO2Y9ZC5qO2c9aS1lO2g9ai1mO2M9JHduZC5NYXRoLnNxcnQoZypnK2gqaCk7cmV0dXJuIGN9XG5mdW5jdGlvbiBwQmQoYSxiKXt2YXIgYyxkO2Q9SHZkKGEpO2lmKCFkKXshJEFkJiYoJEFkPW5ldyBMNWQpO2M9KGdTZCgpLG5TZChiKSk7ZD1uZXcgU2RlKGMpO1dHZChkLkVsKCksYSl9cmV0dXJuIGR9XG5mdW5jdGlvbiBTYyhhLGIpe3ZhciBjLGQ7Yz1SRChhLmMuQmMoYiksMTYpO2lmKCFjKXtyZXR1cm4gYS5qYygpfWQ9YS5oYygpO2QuR2MoYyk7YS5kLT1jLmdjKCk7Yy4kYigpO3JldHVybiBhLm1jKGQpfVxuZnVuY3Rpb24gdEtjKGEsYil7dmFyIGMsZDtkPUt3YihhLmQsMSkhPTA7Yz10cnVlO3doaWxlKGMpe2M9ZmFsc2U7Yz1iLmMubWcoYi5lLGQpO2M9Y3xES2MoYSxiLGQsZmFsc2UpO2Q9IWR9eUtjKGEpfVxuZnVuY3Rpb24gb21jKGEsYixjLGQpe3ZhciBlLGY7YS5hPWI7Zj1kPzA6MTthLmY9KGU9bmV3IG1tYyhhLmMsYS5hLGMsZiksbmV3IFBtYyhjLGEuYSxlLGEuZSxhLmIsYS5jPT0oUktjKCksUEtjKSkpfVxuZnVuY3Rpb24gSW1iKGEpe3ZhciBiO3NGYihhLmEhPWEuYik7Yj1hLmQuYVthLmFdO3ptYihhLmI9PWEuZC5jJiZiIT1udWxsKTthLmM9YS5hO2EuYT1hLmErMSZhLmQuYS5sZW5ndGgtMTtyZXR1cm4gYn1cbmZ1bmN0aW9uIFZpYihhKXt2YXIgYjtpZihhLmMhPTApe3JldHVybiBhLmN9Zm9yKGI9MDtiPGEuYS5sZW5ndGg7YisrKXthLmM9YS5jKjMzKyhhLmFbYl0mLTEpfWEuYz1hLmMqYS5lO3JldHVybiBhLmN9XG5mdW5jdGlvbiBPdWUoYSl7dmFyIGI7aWYoIShhLmMuYzwwP2EuYT49YS5jLmI6YS5hPD1hLmMuYikpe3Rocm93IEFkYihuZXcgRHZiKX1iPWEuYTthLmErPWEuYy5jOysrYS5iO3JldHVybiBzZ2IoYil9XG5mdW5jdGlvbiBoNWIoYSl7dmFyIGI7Yj1uZXcgeTJiKGEuYSk7a1FiKGIsYSk7cFFiKGIsKFl3YygpLEF3YyksYSk7Yi5vLmE9YS5nO2Iuby5iPWEuZjtiLm4uYT1hLmk7Yi5uLmI9YS5qO3JldHVybiBifVxuZnVuY3Rpb24gdFZjKGEpe3JldHVybiAocXBkKCksaHBkKS5IYyhhLmopP0tmYihVRChtUWIoYSwoWXdjKCksU3djKSkpKTp4amQoY0QoV0MobDMsMSksTnZlLDgsMCxbYS5pLm4sYS5uLGEuYV0pKS5ifVxuZnVuY3Rpb24gWkpjKGEpe3ZhciBiO2I9dmZkKFhKYyk7UkQobVFiKGEsKFl3YygpLGt3YykpLDIxKS5IYygob3ZjKCksa3ZjKSkmJnBmZChiLChzWGIoKSxwWGIpLChoY2MoKSxZYmMpKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIE0yYyhhKXt2YXIgYixjLGQsZTtlPW5ldyBfc2I7Zm9yKGQ9bmV3IEFuYihhKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMjcpO2I9UDJjKGMpO3llKGUsYil9cmV0dXJuIGV9XG5mdW5jdGlvbiBoSWMoYSl7dmFyIGIsYztmb3IoYz1uZXcgQW5iKGEucik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDEwKTtpZihhLm5bYi5wXTw9MCl7cmV0dXJuIGJ9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gTEdiKGEsYixjKXt2YXIgZCxlO2ZvcihlPWIuYS5hLmVjKCkuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSw2MCk7aWYoTUdiKGEsZCxjKSl7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIFJjYyhhLGIsYyxkKXt2YXIgZSxmO2ZvcihmPWEuS2MoKTtmLk9iKCk7KXtlPVJEKGYuUGIoKSw3Mik7ZS5uLmE9Yi5hKyhkLmEtZS5vLmEpLzI7ZS5uLmI9Yi5iO2IuYis9ZS5vLmIrY319XG5mdW5jdGlvbiBoTmIoYSxiLGMpe3ZhciBkO2Q9bmV3IHJNYihhLGIpO1JjKGEucixiLmFnKCksZCk7aWYoYyYmIVJvZChhLnUpKXtkLmM9bmV3IFRLYihhLmQpO1VtYihiLlJmKCksbmV3IGtOYihkKSl9fVxuZnVuY3Rpb24gRGRiKGEsYil7dmFyIGM7aWYoS2RiKGEpJiZLZGIoYikpe2M9YS1iO2lmKCFpc05hTihjKSl7cmV0dXJuIGN9fXJldHVybiB1RChLZGIoYSk/V2RiKGEpOmEsS2RiKGIpP1dkYihiKTpiKX1cbmZ1bmN0aW9uIElpZChhLGIpe3ZhciBjLGQsZTtlPTE7Yz1hO2Q9Yj49MD9iOi1iO3doaWxlKGQ+MCl7aWYoZCUyPT0wKXtjKj1jO2Q9ZC8yfDB9ZWxzZXtlKj1jO2QtPTF9fXJldHVybiBiPDA/MS9lOmV9XG5mdW5jdGlvbiBKaWQoYSxiKXt2YXIgYyxkLGU7ZT0xO2M9YTtkPWI+PTA/YjotYjt3aGlsZShkPjApe2lmKGQlMj09MCl7Yyo9YztkPWQvMnwwfWVsc2V7ZSo9YztkLT0xfX1yZXR1cm4gYjwwPzEvZTplfVxuZnVuY3Rpb24gVnZkKGEsYil7dmFyIGMsZCxlLGY7Zj0oZT1hP0h2ZChhKTpudWxsLFBqZSgoZD1iLGU/ZS5HbCgpOm51bGwsZCkpKTtpZihmPT1iKXtjPUh2ZChhKTshIWMmJmMuR2woKX1yZXR1cm4gZn1cbmZ1bmN0aW9uIGcyZChhLGIsYyl7dmFyIGQsZTtlPWEuZjthLmY9YjtpZigoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTApe2Q9bmV3IE4zZChhLDEsMCxlLGIpOyFjPyhjPWQpOmMubmooZCl9cmV0dXJuIGN9XG5mdW5jdGlvbiBlMmQoYSxiLGMpe3ZhciBkLGU7ZT1hLmI7YS5iPWI7aWYoKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wKXtkPW5ldyBOM2QoYSwxLDMsZSxiKTshYz8oYz1kKTpjLm5qKGQpfXJldHVybiBjfVxuZnVuY3Rpb24gckFkKGEsYixjKXt2YXIgZCxlO2U9YS5hO2EuYT1iO2lmKChhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCl7ZD1uZXcgTjNkKGEsMSwxLGUsYik7IWM/KGM9ZCk6Yy5uaihkKX1yZXR1cm4gY31cbmZ1bmN0aW9uIFNOZChhKXt2YXIgYixjLGQsZTtpZihhIT1udWxsKXtmb3IoYz0wO2M8YS5sZW5ndGg7KytjKXtiPWFbY107aWYoYil7UkQoYi5nLDM3OSk7ZT1iLmk7Zm9yKGQ9MDtkPGU7KytkKTt9fX19XG5mdW5jdGlvbiBWbmIoYSxiLGMsZCxlLGYsZyxoKXt2YXIgaTtpPWM7d2hpbGUoZjxnKXtpPj1kfHxiPGMmJmguTmUoYVtiXSxhW2ldKTw9MD9iRChlLGYrKyxhW2IrK10pOmJEKGUsZisrLGFbaSsrXSl9fVxuZnVuY3Rpb24gTmpiKGEsYixjLGQsZSl7aWYoYj09MHx8ZD09MCl7cmV0dXJufWI9PTE/KGVbZF09UGpiKGUsYyxkLGFbMF0pKTpkPT0xPyhlW2JdPVBqYihlLGEsYixjWzBdKSk6T2piKGEsYyxlLGIsZCl9XG5mdW5jdGlvbiB3OWMoYSxiLGMpe3ZhciBkLGUsZixnO2Q9Yy9hLmdjKCk7ZT0wO2ZvcihnPWEuS2MoKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSwxODYpO0dhZChmLGYuZitkKmUpO0RhZChmLGIsZCk7KytlfX1cbmZ1bmN0aW9uIGNhZChhKXt2YXIgYixjLGQ7ZD0wO2ZvcihjPW5ldyBBbmIoYS5hKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMTcyKTtkPSR3bmQuTWF0aC5tYXgoZCxiLmcpfXJldHVybiBkfVxuZnVuY3Rpb24gRUtjKGEpe3ZhciBiLGMsZDtmb3IoZD1uZXcgQW5iKGEuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDIxOSk7Yj1jLmMua2coKT9jLmY6Yy5hOyEhYiYmTUxjKGIsYy5qKX19XG5mdW5jdGlvbiBsRGMoKXtsRGM9Z2ViO2lEYz1uZXcgbkRjKCdEVU1NWV9OT0RFX09WRVInLDApO2pEYz1uZXcgbkRjKCdEVU1NWV9OT0RFX1VOREVSJywxKTtrRGM9bmV3IG5EYygnRVFVQUwnLDIpfVxuZnVuY3Rpb24gbXFkKCl7bXFkPWdlYjtrcWQ9bmV3IG5xZCgnUEFSQUxMRUxfTk9ERScsMCk7anFkPW5ldyBucWQoJ0hJRVJBUkNISUNBTF9OT0RFJywxKTtscWQ9bmV3IG5xZCgnUk9PVF9OT0RFJywyKX1cbmZ1bmN0aW9uIEZuZCgpe0ZuZD1nZWI7RG5kPW5ldyBHbmQoJ0lOSEVSSVQnLDApO0NuZD1uZXcgR25kKCdJTkNMVURFX0NISUxEUkVOJywxKTtFbmQ9bmV3IEduZCgnU0VQQVJBVEVfQ0hJTERSRU4nLDIpfVxuZnVuY3Rpb24gaHlkKGEsYil7c3dpdGNoKGIpe2Nhc2UgMTohYS5uJiYoYS5uPW5ldyBDNWQoSTQsYSwxLDcpKTtzTGQoYS5uKTtyZXR1cm47Y2FzZSAyOmp5ZChhLG51bGwpO3JldHVybjt9RXhkKGEsYil9XG5mdW5jdGlvbiBjOWMoYSl7c3dpdGNoKGEuZyl7Y2FzZSAwOnJldHVybiBuZXcgUjhjO2Nhc2UgMTpyZXR1cm4gbmV3IG85YztjYXNlIDI6cmV0dXJuIG5ldyBYOGM7ZGVmYXVsdDpyZXR1cm4gbnVsbDt9fVxuZnVuY3Rpb24gZXEoYSl7X2woKTtzd2l0Y2goYS5jKXtjYXNlIDA6cmV0dXJuIFB4KCksT3g7Y2FzZSAxOnJldHVybiBuZXcgRnkoSXIobmV3IE9zYihhKSkpO2RlZmF1bHQ6cmV0dXJuIG5ldyBkcShhKTt9fVxuZnVuY3Rpb24gZ28oYSl7X2woKTtzd2l0Y2goYS5nYygpKXtjYXNlIDA6cmV0dXJuIFB4KCksT3g7Y2FzZSAxOnJldHVybiBuZXcgRnkoYS5LYygpLlBiKCkpO2RlZmF1bHQ6cmV0dXJuIG5ldyBReChhKTt9fVxuZnVuY3Rpb24gUG0oYSl7dmFyIGI7c3dpdGNoKGEuZ2MoKSl7Y2FzZSAwOnJldHVybiBzbTtjYXNlIDE6cmV0dXJuIG5ldyBEeShRYihhLlhiKDApKSk7ZGVmYXVsdDpiPWE7cmV0dXJuIG5ldyBLeChiKTt9fVxuZnVuY3Rpb24gc2diKGEpe3ZhciBiLGM7aWYoYT4tMTI5JiZhPDEyOCl7cmV0dXJuIHVnYigpLGI9YSsxMjgsYz10Z2JbYl0sIWMmJihjPXRnYltiXT1uZXcgZmdiKGEpKSxjfXJldHVybiBuZXcgZmdiKGEpfVxuZnVuY3Rpb24gYmhiKGEpe3ZhciBiLGM7aWYoYT4tMTI5JiZhPDEyOCl7cmV0dXJuIGRoYigpLGI9YSsxMjgsYz1jaGJbYl0sIWMmJihjPWNoYltiXT1uZXcgWGdiKGEpKSxjfXJldHVybiBuZXcgWGdiKGEpfVxuZnVuY3Rpb24gTSRiKGEsYil7dmFyIGM7aWYoYS5hLmMubGVuZ3RoPjApe2M9UkQoVm1iKGEuYSxhLmEuYy5sZW5ndGgtMSksNTc5KTtpZihRX2IoYyxiKSl7cmV0dXJufX1SbWIoYS5hLG5ldyBTX2IoYikpfVxuZnVuY3Rpb24gRWtjKGEpe2xrYygpO3ZhciBiLGM7Yj1hLmQuYy1hLmUuYztjPVJEKGEuZywxNTQpO1VtYihjLmIsbmV3IFlrYyhiKSk7VW1iKGMuYyxuZXcgJGtjKGIpKTt4Z2IoYy5pLG5ldyBhbGMoYikpfVxuZnVuY3Rpb24gTWxjKGEpe3ZhciBiO2I9bmV3IGJpYjtiLmErPSdWZXJ0aWNhbFNlZ21lbnQgJztZaGIoYixhLmUpO2IuYSs9JyAnO1poYihiLEViKG5ldyBHYixuZXcgQW5iKGEuaykpKTtyZXR1cm4gYi5hfVxuZnVuY3Rpb24gRm1jKGEsYil7dmFyIGMsZCxlO2M9MDtmb3IoZT1iM2IoYSxiKS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDEyKTtjKz1tUWIoZCwoWXdjKCksSXdjKSkhPW51bGw/MTowfXJldHVybiBjfVxuZnVuY3Rpb24gVlRjKGEsYixjKXt2YXIgZCxlLGY7ZD0wO2ZvcihmPVN1YihhLDApO2YuYiE9Zi5kLmM7KXtlPUtmYihVRChldmIoZikpKTtpZihlPmMpe2JyZWFrfWVsc2UgZT49YiYmKytkfXJldHVybiBkfVxuZnVuY3Rpb24gV3YoYixjKXtRYihiKTt0cnl7cmV0dXJuIGIuX2IoYyl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwyMTIpfHxaRChhLDE2OSkpe3JldHVybiBmYWxzZX1lbHNlIHRocm93IEFkYihhKX19XG5mdW5jdGlvbiBOayhiLGMpe1FiKGIpO3RyeXtyZXR1cm4gYi5IYyhjKX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDIxMil8fFpEKGEsMTY5KSl7cmV0dXJuIGZhbHNlfWVsc2UgdGhyb3cgQWRiKGEpfX1cbmZ1bmN0aW9uIE9rKGIsYyl7UWIoYik7dHJ5e3JldHVybiBiLk1jKGMpfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMjEyKXx8WkQoYSwxNjkpKXtyZXR1cm4gZmFsc2V9ZWxzZSB0aHJvdyBBZGIoYSl9fVxuZnVuY3Rpb24gWHYoYixjKXtRYihiKTt0cnl7cmV0dXJuIGIueGMoYyl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwyMTIpfHxaRChhLDE2OSkpe3JldHVybiBudWxsfWVsc2UgdGhyb3cgQWRiKGEpfX1cbmZ1bmN0aW9uIFl2KGIsYyl7UWIoYik7dHJ5e3JldHVybiBiLkJjKGMpfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMjEyKXx8WkQoYSwxNjkpKXtyZXR1cm4gbnVsbH1lbHNlIHRocm93IEFkYihhKX19XG5mdW5jdGlvbiBhTWMoYSxiKXtzd2l0Y2goYi5nKXtjYXNlIDI6Y2FzZSAxOnJldHVybiBiM2IoYSxiKTtjYXNlIDM6Y2FzZSA0OnJldHVybiBodihiM2IoYSxiKSk7fXJldHVybiB5b2IoKSx5b2IoKSx2b2J9XG5mdW5jdGlvbiBRQWQoYSl7dmFyIGI7aWYoKGEuRGImNjQpIT0wKXJldHVybiBhd2QoYSk7Yj1uZXcgU2hiKGF3ZChhKSk7Yi5hKz0nIChuYW1lOiAnO05oYihiLGEuemIpO2IuYSs9JyknO3JldHVybiBiLmF9XG5mdW5jdGlvbiBGZ2QoYSl7dmFyIGI7Yj1SRChjdWIoYS5jLmMsJycpLDIzMyk7aWYoIWIpe2I9bmV3IGZnZChvZ2QobmdkKG5ldyBwZ2QsJycpLCdPdGhlcicpKTtkdWIoYS5jLmMsJycsYil9cmV0dXJuIGJ9XG5mdW5jdGlvbiBoQmQoYSxiLGMpe3ZhciBkLGU7ZT1hLnNiO2Euc2I9YjtpZigoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTApe2Q9bmV3IE4zZChhLDEsNCxlLGIpOyFjPyhjPWQpOmMubmooZCl9cmV0dXJuIGN9XG5mdW5jdGlvbiBaVmQoYSxiLGMpe3ZhciBkLGU7ZT1hLnI7YS5yPWI7aWYoKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wKXtkPW5ldyBOM2QoYSwxLDgsZSxhLnIpOyFjPyhjPWQpOmMubmooZCl9cmV0dXJuIGN9XG5mdW5jdGlvbiBxNWQoYSxiLGMpe3ZhciBkLGU7ZD1uZXcgUDNkKGEuZSw0LDEzLChlPWIuYyxlP2U6KEpUZCgpLHdUZCkpLG51bGwsZlpkKGEsYiksZmFsc2UpOyFjPyhjPWQpOmMubmooZCk7cmV0dXJuIGN9XG5mdW5jdGlvbiBwNWQoYSxiLGMpe3ZhciBkLGU7ZD1uZXcgUDNkKGEuZSwzLDEzLG51bGwsKGU9Yi5jLGU/ZTooSlRkKCksd1RkKSksZlpkKGEsYiksZmFsc2UpOyFjPyhjPWQpOmMubmooZCk7cmV0dXJuIGN9XG5mdW5jdGlvbiBPZWUoYSxiKXt2YXIgYyxkO2M9UkQoYiw2OTEpO2Q9Yy5lbCgpOyFkJiZjLmZsKGQ9WkQoYiw5MCk/bmV3IGFmZShhLFJEKGIsMjkpKTpuZXcgbWZlKGEsUkQoYiwxNTYpKSk7cmV0dXJuIGR9XG5mdW5jdGlvbiBLSGQoYSxiLGMpe3ZhciBkO2EuX2koYS5pKzEpO2Q9YS5aaShiLGMpO2IhPWEuaSYmaGliKGEuZyxiLGEuZyxiKzEsYS5pLWIpO2JEKGEuZyxiLGQpOysrYS5pO2EuTWkoYixjKTthLk5pKCl9XG5mdW5jdGlvbiBIeWIoYSxiKXt2YXIgYztpZihiLmEpe2M9Yi5hLmEubGVuZ3RoOyFhLmE/KGEuYT1uZXcgZGliKGEuZCkpOlpoYihhLmEsYS5iKTtYaGIoYS5hLGIuYSxiLmQubGVuZ3RoLGMpfXJldHVybiBhfVxuZnVuY3Rpb24gd2liKGEsYil7dmFyIGM7YS5jPWI7YS5hPXBqYihiKTthLmE8NTQmJihhLmY9KGM9Yi5kPjE/REZiKGIuYVswXSxiLmFbMV0pOkRGYihiLmFbMF0sMCksWGRiKGIuZT4wP2M6T2RiKGMpKSkpfVxuZnVuY3Rpb24gTURiKGEsYil7dmFyIGM7Yz1uZXcgSUViO2lmKCFhLmEuQmQoYykpe0xDYihhKTtyZXR1cm4gS3ZiKCksS3ZiKCksSnZifXJldHVybiBLdmIoKSxuZXcgT3ZiKHVGYihMRGIoYSxjLmEsYikpKX1cbmZ1bmN0aW9uIHQ5YihhLGIpe3ZhciBjO2lmKGEuYy5sZW5ndGg9PTApe3JldHVybn1jPVJEKGFuYihhLCRDKGpSLFdBZSwxMCxhLmMubGVuZ3RoLDAsMSkpLDE5OSk7Wm5iKGMsbmV3IEY5Yik7cTliKGMsYil9XG5mdW5jdGlvbiB6OWIoYSxiKXt2YXIgYztpZihhLmMubGVuZ3RoPT0wKXtyZXR1cm59Yz1SRChhbmIoYSwkQyhqUixXQWUsMTAsYS5jLmxlbmd0aCwwLDEpKSwxOTkpO1puYihjLG5ldyBLOWIpO3E5YihjLGIpfVxuZnVuY3Rpb24gcGIoYSxiKXtyZXR1cm4gYkUoYSk/bGhiKGEsYik6X0QoYSk/TGZiKGEsYik6JEQoYSk/KHVGYihhKSxkRShhKT09PWRFKGIpKTpZRChhKT9hLkZiKGIpOmFEKGEpP21iKGEsYik6SHooYSxiKX1cbmZ1bmN0aW9uIEN2ZChhLGIsYyl7aWYoYjwwKXtUdmQoYSxjKX1lbHNle2lmKCFjLnJrKCkpe3Rocm93IEFkYihuZXcgYWdiKEtIZStjLnhlKCkrTEhlKSl9UkQoYyw2OSkud2soKS5FayhhLGEuaGkoKSxiKX19XG5mdW5jdGlvbiB4RmIoYSxiLGMpe2lmKGE8MHx8Yj5jKXt0aHJvdyBBZGIobmV3IHZlYihfeGUrYStieWUrYisnLCBzaXplOiAnK2MpKX1pZihhPmIpe3Rocm93IEFkYihuZXcgYWdiKF94ZSthK2F5ZStiKSl9fVxuZnVuY3Rpb24gb1ZkKGEpe3ZhciBiO2lmKChhLkRiJjY0KSE9MClyZXR1cm4gYXdkKGEpO2I9bmV3IFNoYihhd2QoYSkpO2IuYSs9JyAoc291cmNlOiAnO05oYihiLGEuZCk7Yi5hKz0nKSc7cmV0dXJuIGIuYX1cbmZ1bmN0aW9uIEpTZChhKXtpZihhPj02NSYmYTw9NzApe3JldHVybiBhLTY1KzEwfWlmKGE+PTk3JiZhPD0xMDIpe3JldHVybiBhLTk3KzEwfWlmKGE+PTQ4JiZhPD01Nyl7cmV0dXJuIGEtNDh9cmV0dXJuIDB9XG5mdW5jdGlvbiBsTWIoYSl7aE1iKCk7dmFyIGIsYyxkLGU7Zm9yKGM9bk1iKCksZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdO2lmKFdtYihiLmEsYSwwKSE9LTEpe3JldHVybiBifX1yZXR1cm4gZ01ifVxuZnVuY3Rpb24gemRlKGEsYil7dmFyIGMsZCxlLGY7Yi5laihhLmEpO2Y9UkQoWXdkKGEuYSw4KSwyMDM1KTtpZihmIT1udWxsKXtmb3IoYz1mLGQ9MCxlPWMubGVuZ3RoO2Q8ZTsrK2Qpe251bGwuVW0oKX19fVxuZnVuY3Rpb24gX1ZkKGEsYil7dmFyIGM7Yz0oYS5CYiYyNTYpIT0wO2I/KGEuQmJ8PTI1Nik6KGEuQmImPS0yNTcpOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IFEzZChhLDEsMixjLGIpKX1cbmZ1bmN0aW9uIEVZZChhLGIpe3ZhciBjO2M9KGEuQmImMjU2KSE9MDtiPyhhLkJifD0yNTYpOihhLkJiJj0tMjU3KTsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBRM2QoYSwxLDgsYyxiKSl9XG5mdW5jdGlvbiBqMWQoYSxiKXt2YXIgYztjPShhLkJiJjI1NikhPTA7Yj8oYS5CYnw9MjU2KTooYS5CYiY9LTI1Nyk7KGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgUTNkKGEsMSw4LGMsYikpfVxuZnVuY3Rpb24gYVdkKGEsYil7dmFyIGM7Yz0oYS5CYiY1MTIpIT0wO2I/KGEuQmJ8PTUxMik6KGEuQmImPS01MTMpOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IFEzZChhLDEsMyxjLGIpKX1cbmZ1bmN0aW9uIEZZZChhLGIpe3ZhciBjO2M9KGEuQmImNTEyKSE9MDtiPyhhLkJifD01MTIpOihhLkJiJj0tNTEzKTsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBRM2QoYSwxLDksYyxiKSl9XG5mdW5jdGlvbiBtMmQoYSxiLGMpe3ZhciBkLGU7ZT1hLmE7YS5hPWI7aWYoKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wKXtkPW5ldyBOM2QoYSwxLDUsZSxhLmEpOyFjPyhjPWQpOm9LZChjLGQpfXJldHVybiBjfVxuZnVuY3Rpb24ga2xlKGEsYil7dmFyIGM7aWYoYS5iPT0tMSYmISFhLmEpe2M9YS5hLnBrKCk7YS5iPSFjP0JZZChhLmMuRGgoKSxhLmEpOmEuYy5IaChhLmEuTGooKSxjKX1yZXR1cm4gYS5jLnloKGEuYixiKX1cbmZ1bmN0aW9uIHQwZChhLGIpe3ZhciBjLGQ7Zm9yKGQ9bmV3IGRNZChhKTtkLmUhPWQuaS5nYygpOyl7Yz1SRChiTWQoZCksMjkpO2lmKGRFKGIpPT09ZEUoYykpe3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBhOWIoYSl7dmFyIGIsYztiPWEuaztpZihiPT0ocjNiKCksbTNiKSl7Yz1SRChtUWIoYSwoWXdjKCksaHdjKSksNjQpO3JldHVybiBjPT0ocXBkKCksWW9kKXx8Yz09bnBkfXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIFFDYihhKXt2YXIgYjtiPVJDYihhKTtpZihHZGIoYi5hLDApKXtyZXR1cm4gVHZiKCksVHZiKCksU3ZifXJldHVybiBUdmIoKSxuZXcgWXZiKElkYihiLmEsMCk/T3JiKGIpL1hkYihiLmEpOjApfVxuZnVuY3Rpb24gQWliKGEsYil7dGhpcy5lPWI7dGhpcy5hPURpYihhKTt0aGlzLmE8NTQ/KHRoaXMuZj1YZGIoYSkpOih0aGlzLmM9KFBpYigpLERkYihhLDApPj0wP2pqYihhKTpYaWIoampiKE9kYihhKSkpKSl9XG5mdW5jdGlvbiBHMGIoYSxiLGMsZCxlLGYpe3RoaXMuZT1uZXcgYm5iO3RoaXMuZj0oQkVjKCksQUVjKTtSbWIodGhpcy5lLGEpO3RoaXMuZD1iO3RoaXMuYT1jO3RoaXMuYj1kO3RoaXMuZj1lO3RoaXMuYz1mfVxuZnVuY3Rpb24gYlFiKGEsYixjKXthLm49WUMobEUsW052ZSxyeGVdLFszNzYsMjhdLDE0LFtjLGVFKCR3bmQuTWF0aC5jZWlsKGIvMzIpKV0sMik7YS5vPWI7YS5wPWM7YS5qPWItMT4+MTthLms9Yy0xPj4xfVxuZnVuY3Rpb24gZ2diKGEpe2EtPWE+PjEmMTQzMTY1NTc2NTthPShhPj4yJjg1ODk5MzQ1OSkrKGEmODU4OTkzNDU5KTthPShhPj40KSthJjI1MjY0NTEzNTthKz1hPj44O2ErPWE+PjE2O3JldHVybiBhJjYzfVxuZnVuY3Rpb24gQzRkKGEsYil7dmFyIGMsZDtmb3IoZD1uZXcgZE1kKGEpO2QuZSE9ZC5pLmdjKCk7KXtjPVJEKGJNZChkKSwxNDIpO2lmKGRFKGIpPT09ZEUoYykpe3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBJZWUoYSxiLGMpe3ZhciBkLGUsZjtmPShlPU41ZChhLmIsYiksZSk7aWYoZil7ZD1SRCh0ZmUoUGVlKGEsZiksJycpLDI5KTtpZihkKXtyZXR1cm4gUmVlKGEsZCxiLGMpfX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIExlZShhLGIsYyl7dmFyIGQsZSxmO2Y9KGU9TjVkKGEuYixiKSxlKTtpZihmKXtkPVJEKHRmZShQZWUoYSxmKSwnJyksMjkpO2lmKGQpe3JldHVybiBTZWUoYSxkLGIsYyl9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gSURkKGEsYil7dmFyIGM7Yz1BbyhhLmksYik7aWYoYz09bnVsbCl7dGhyb3cgQWRiKG5ldyBDRGQoJ05vZGUgZGlkIG5vdCBleGlzdCBpbiBpbnB1dC4nKSl9d0VkKGIsYyk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiB3dmQoYSxiKXt2YXIgYztjPXdZZChhLGIpO2lmKFpEKGMsMzMxKSl7cmV0dXJuIFJEKGMsMzUpfXRocm93IEFkYihuZXcgYWdiKEtIZStiK1wiJyBpcyBub3QgYSB2YWxpZCBhdHRyaWJ1dGVcIikpfVxuZnVuY3Rpb24gVkdkKGEsYixjKXt2YXIgZDtkPWEuZ2MoKTtpZihiPmQpdGhyb3cgQWRiKG5ldyBhTWQoYixkKSk7aWYoYS5TaSgpJiZhLkhjKGMpKXt0aHJvdyBBZGIobmV3IGFnYihMSWUpKX1hLkdpKGIsYyl9XG5mdW5jdGlvbiB3N2IoYSxiKXtiLlVnKCdTb3J0IGVuZCBsYWJlbHMnLDEpO0ZEYihDRGIoRURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuYiwxNikpLG5ldyBIN2IpLG5ldyBKN2IpLG5ldyBMN2IpO2IuVmcoKX1cbmZ1bmN0aW9uIENtZCgpe0NtZD1nZWI7QW1kPW5ldyBHbWQoU3llLDApO3ptZD1uZXcgR21kKE95ZSwxKTt5bWQ9bmV3IEdtZChOeWUsMik7eG1kPW5ldyBHbWQoWnllLDMpO0JtZD1uZXcgR21kKCdVUCcsNCl9XG5mdW5jdGlvbiBnYmQoKXtnYmQ9Z2ViO2RiZD1uZXcgaGJkKCdQMV9TVFJVQ1RVUkUnLDApO2ViZD1uZXcgaGJkKCdQMl9QUk9DRVNTSU5HX09SREVSJywxKTtmYmQ9bmV3IGhiZCgnUDNfRVhFQ1VUSU9OJywyKX1cbmZ1bmN0aW9uIHIwYygpe3IwYz1nZWI7cTBjPW1mZChtZmQocmZkKG1mZChtZmQocmZkKHBmZChuZXcgdWZkLChZVmMoKSxWVmMpLChXWWMoKSxWWWMpKSxXVmMpLFJZYyksVFljKSxYVmMpLE5ZYyksVVljKX1cbmZ1bmN0aW9uIHM4YihhKXtzd2l0Y2goUkQobVFiKGEsKFl3YygpLG93YykpLDMxMSkuZyl7Y2FzZSAxOnBRYihhLG93YywoR3ZjKCksRHZjKSk7YnJlYWs7Y2FzZSAyOnBRYihhLG93YywoR3ZjKCksRnZjKSk7fX1cbmZ1bmN0aW9uIGJVYyhhKXtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiBuZXcgbVVjO2Nhc2UgMTpyZXR1cm4gbmV3IGNVYztjYXNlIDI6cmV0dXJuIG5ldyBoVWM7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IF9mYik7fX1cbmZ1bmN0aW9uIEZtZChhKXtzd2l0Y2goYS5nKXtjYXNlIDI6cmV0dXJuIHptZDtjYXNlIDE6cmV0dXJuIHltZDtjYXNlIDQ6cmV0dXJuIHhtZDtjYXNlIDM6cmV0dXJuIEJtZDtkZWZhdWx0OnJldHVybiBBbWQ7fX1cbmZ1bmN0aW9uIFVOYihhLGIpe3N3aXRjaChhLmIuZyl7Y2FzZSAwOmNhc2UgMTpyZXR1cm4gYjtjYXNlIDI6Y2FzZSAzOnJldHVybiBuZXcgVWlkKGIuZCwwLGIuYSxiLmIpO2RlZmF1bHQ6cmV0dXJuIG51bGw7fX1cbmZ1bmN0aW9uIHJwZChhKXtzd2l0Y2goYS5nKXtjYXNlIDE6cmV0dXJuIHBwZDtjYXNlIDI6cmV0dXJuIFlvZDtjYXNlIDM6cmV0dXJuIFhvZDtjYXNlIDQ6cmV0dXJuIG5wZDtkZWZhdWx0OnJldHVybiBvcGQ7fX1cbmZ1bmN0aW9uIHNwZChhKXtzd2l0Y2goYS5nKXtjYXNlIDE6cmV0dXJuIG5wZDtjYXNlIDI6cmV0dXJuIHBwZDtjYXNlIDM6cmV0dXJuIFlvZDtjYXNlIDQ6cmV0dXJuIFhvZDtkZWZhdWx0OnJldHVybiBvcGQ7fX1cbmZ1bmN0aW9uIHRwZChhKXtzd2l0Y2goYS5nKXtjYXNlIDE6cmV0dXJuIFhvZDtjYXNlIDI6cmV0dXJuIG5wZDtjYXNlIDM6cmV0dXJuIHBwZDtjYXNlIDQ6cmV0dXJuIFlvZDtkZWZhdWx0OnJldHVybiBvcGQ7fX1cbmZ1bmN0aW9uIGN5ZChhLGIsYyxkKXtzd2l0Y2goYil7Y2FzZSAxOnJldHVybiAhYS5uJiYoYS5uPW5ldyBDNWQoSTQsYSwxLDcpKSxhLm47Y2FzZSAyOnJldHVybiBhLms7fXJldHVybiBBeGQoYSxiLGMsZCl9XG5mdW5jdGlvbiB1TGQoYSxiLGMpe3ZhciBkLGU7aWYoYS5QaigpKXtlPWEuUWooKTtkPVNIZChhLGIsYyk7YS5KaihhLklqKDcsc2diKGMpLGQsYixlKSk7cmV0dXJuIGR9ZWxzZXtyZXR1cm4gU0hkKGEsYixjKX19XG5mdW5jdGlvbiBWTmQoYSxiKXt2YXIgYyxkLGU7aWYoYS5kPT1udWxsKXsrK2EuZTstLWEuZn1lbHNle2U9Yi5sZCgpO2M9Yi5CaSgpO2Q9KGMmbHZlKSVhLmQubGVuZ3RoO2lPZChhLGQsWE5kKGEsZCxjLGUpKX19XG5mdW5jdGlvbiB4V2QoYSxiKXt2YXIgYztjPShhLkJiJmd3ZSkhPTA7Yj8oYS5CYnw9Z3dlKTooYS5CYiY9LTEwMjUpOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IFEzZChhLDEsMTAsYyxiKSl9XG5mdW5jdGlvbiBEV2QoYSxiKXt2YXIgYztjPShhLkJiJnF4ZSkhPTA7Yj8oYS5CYnw9cXhlKTooYS5CYiY9LTQwOTcpOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IFEzZChhLDEsMTIsYyxiKSl9XG5mdW5jdGlvbiBFV2QoYSxiKXt2YXIgYztjPShhLkJiJmJLZSkhPTA7Yj8oYS5CYnw9YktlKTooYS5CYiY9LTgxOTMpOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IFEzZChhLDEsMTUsYyxiKSl9XG5mdW5jdGlvbiBGV2QoYSxiKXt2YXIgYztjPShhLkJiJmNLZSkhPTA7Yj8oYS5CYnw9Y0tlKTooYS5CYiY9LTIwNDkpOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IFEzZChhLDEsMTEsYyxiKSl9XG5mdW5jdGlvbiB6S2MoYSl7dmFyIGI7aWYoYS5nKXtiPWEuYy5rZygpP2EuZjphLmE7QktjKGIuYSxhLm8sdHJ1ZSk7QktjKGIuYSxhLm8sZmFsc2UpO3BRYihhLm8sKHlDYygpLEJCYyksKEJvZCgpLHZvZCkpfX1cbmZ1bmN0aW9uIE9yYyhhKXt2YXIgYjtpZighYS5hKXt0aHJvdyBBZGIobmV3IGRnYignQ2Fubm90IG9mZnNldCBhbiB1bmFzc2lnbmVkIGN1dC4nKSl9Yj1hLmMtYS5iO2EuYis9YjtRcmMoYSxiKTtScmMoYSxiKX1cbmZ1bmN0aW9uIEpEZChhLGIpe3ZhciBjO2M9V2piKGEuayxiKTtpZihjPT1udWxsKXt0aHJvdyBBZGIobmV3IENEZCgnUG9ydCBkaWQgbm90IGV4aXN0IGluIGlucHV0LicpKX13RWQoYixjKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIEpqZShhKXt2YXIgYixjO2ZvcihjPUtqZShCWGQoYSkpLktjKCk7Yy5PYigpOyl7Yj1XRChjLlBiKCkpO2lmKGJBZChhLGIpKXtyZXR1cm4gVVNkKChUU2QoKSxTU2QpLGIpfX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIHFKYihhKXt2YXIgYixjO2ZvcihjPWEucC5hLmVjKCkuS2MoKTtjLk9iKCk7KXtiPVJEKGMuUGIoKSwyMTgpO2lmKGIuZiYmYS5iW2IuY108LTEuMEUtMTApe3JldHVybiBifX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIExyKGEpe3ZhciBiLGM7Yz1UaGIobmV3IGJpYiw5MSk7Yj10cnVlO3doaWxlKGEuT2IoKSl7Ynx8KGMuYSs9cHZlLGMpO2I9ZmFsc2U7WWhiKGMsYS5QYigpKX1yZXR1cm4gKGMuYSs9J10nLGMpLmF9XG5mdW5jdGlvbiBvX2IoYSl7dmFyIGIsYyxkO2I9bmV3IGJuYjtmb3IoZD1uZXcgQW5iKGEuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDYwMik7VG1iKGIsUkQoYy5DZigpLDE2KSl9cmV0dXJuIGJ9XG5mdW5jdGlvbiBUWGIoYSxiKXt2YXIgYyxkO2ZvcihkPW5ldyBBbmIoYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDQyKTtZbWIoYS5iLmIsYy5iKTtoWWIoUkQoYy5hLDE5NCksUkQoYy5iLDg2KSl9fVxuZnVuY3Rpb24gYVJiKGEsYil7dmFyIGM7Yz1RZmIoYS5iLmMsYi5iLmMpO2lmKGMhPTApe3JldHVybiBjfWM9UWZiKGEuYS5hLGIuYS5hKTtpZihjIT0wKXtyZXR1cm4gY31yZXR1cm4gUWZiKGEuYS5iLGIuYS5iKX1cbmZ1bmN0aW9uIFFmYihhLGIpe2lmKGE8Yil7cmV0dXJuIC0xfWlmKGE+Yil7cmV0dXJuIDF9aWYoYT09Yil7cmV0dXJuIGE9PTA/UWZiKDEvYSwxL2IpOjB9cmV0dXJuIGlzTmFOKGEpP2lzTmFOKGIpPzA6MTotMX1cbmZ1bmN0aW9uIHBtYihhKXt2YXIgYjtiPWEuYVthLmMtMSZhLmEubGVuZ3RoLTFdO2lmKGI9PW51bGwpe3JldHVybiBudWxsfWEuYz1hLmMtMSZhLmEubGVuZ3RoLTE7YkQoYS5hLGEuYyxudWxsKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIERxZShhKXt2YXIgYixjLGQ7ZD0wO2M9YS5sZW5ndGg7Zm9yKGI9MDtiPGM7YisrKXthW2JdPT0zMnx8YVtiXT09MTN8fGFbYl09PTEwfHxhW2JdPT05fHwoYVtkKytdPWFbYl0pfXJldHVybiBkfVxuZnVuY3Rpb24gTmdlKGEsYil7dmFyIGMsZCxlLGYsZztnPXBrZShhLmUuRGgoKSxiKTtmPTA7Yz1SRChhLmcsMTI0KTtmb3IoZT0wO2U8YS5pOysrZSl7ZD1jW2VdO2cuYW0oZC5MaygpKSYmKytmfXJldHVybiBmfVxuZnVuY3Rpb24gdGdlKGEsYixjKXt2YXIgZCxlO2U9WkQoYiwxMDIpJiYoUkQoYiwxOSkuQmImdHhlKSE9MD9uZXcgU2hlKGIsYSk6bmV3IFBoZShiLGEpO2ZvcihkPTA7ZDxjOysrZCl7RGhlKGUpfXJldHVybiBlfVxuZnVuY3Rpb24geXJkKGEsYixjKXt2YXIgZCxlO2lmKGEuYyl7SXNkKGEuYyxiLGMpfWVsc2V7Zm9yKGU9bmV3IEFuYihhLmIpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxNjMpO3lyZChkLGIsYyl9fX1cbmZ1bmN0aW9uIHRHZChhLGIsYyl7dmFyIGQsZTtkPVJEKGIub2YoYS5hKSwzNCk7ZT1SRChjLm9mKGEuYSksMzQpO3JldHVybiBkIT1udWxsJiZlIT1udWxsP0xlYihkLGUpOmQhPW51bGw/LTE6ZSE9bnVsbD8xOjB9XG5mdW5jdGlvbiBDZShhLGIpe3ZhciBjLGQsZTt1RmIoYik7Yz1mYWxzZTtmb3IoZD1uZXcgQW5iKGEpO2QuYTxkLmMuYy5sZW5ndGg7KXtlPXluYihkKTtpZihiLkhjKGUpKXt6bmIoZCk7Yz10cnVlfX1yZXR1cm4gY31cbmZ1bmN0aW9uIHhzYihhKXt2YXIgYixjLGQsZTtjPShiPVJEKG1mYigoZD1hLlJtLGU9ZC5mLGU9PVdJP2Q6ZSkpLDkpLG5ldyBGc2IoYixSRChXRWIoYixiLmxlbmd0aCksOSksMCkpO3pzYihjLGEpO3JldHVybiBjfVxuZnVuY3Rpb24gaTJiKGEpe3ZhciBiLGM7Yz1SRChtUWIoYSwoeUNjKCksckFjKSksODgpO2lmKGM9PShDbWQoKSxBbWQpKXtiPUtmYihVRChtUWIoYSxUemMpKSk7cmV0dXJuIGI+PTE/em1kOnhtZH1yZXR1cm4gY31cbmZ1bmN0aW9uIFhoYyhhKXtzd2l0Y2goUkQobVFiKGEsKHlDYygpLHlBYykpLDIyMykuZyl7Y2FzZSAxOnJldHVybiBuZXcganFjO2Nhc2UgMzpyZXR1cm4gbmV3IGFyYztkZWZhdWx0OnJldHVybiBuZXcgZHFjO319XG5mdW5jdGlvbiBNQ2IoYSl7aWYoYS5jKXtNQ2IoYS5jKX1lbHNlIGlmKGEuZCl7dGhyb3cgQWRiKG5ldyBkZ2IoXCJTdHJlYW0gYWxyZWFkeSB0ZXJtaW5hdGVkLCBjYW4ndCBiZSBtb2RpZmllZCBvciB1c2VkXCIpKX19XG5mdW5jdGlvbiBMdGIoYSxiLGMpe3ZhciBkO2Q9YS5hLmdldChiKTthLmEuc2V0KGIsYz09PXVuZGVmaW5lZD9udWxsOmMpO2lmKGQ9PT11bmRlZmluZWQpeysrYS5jOysrYS5iLmd9ZWxzZXsrK2EuZH1yZXR1cm4gZH1cbmZ1bmN0aW9uIEhIYyhhLGIsYyl7dmFyIGQsZTtmb3IoZT1hLmEuZWMoKS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDEwKTtpZihCZShjLFJEKFZtYihiLGQucCksMTYpKSl7cmV0dXJuIGR9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gdTBjKGEsYixjKXt2YXIgZDtkPTA7ISFiJiYoRW1kKGEuYSk/KGQrPWIuZi5hLzIpOihkKz1iLmYuYi8yKSk7ISFjJiYoRW1kKGEuYSk/KGQrPWMuZi5hLzIpOihkKz1jLmYuYi8yKSk7cmV0dXJuIGR9XG5mdW5jdGlvbiBMV2IoYSxiLGMpe3ZhciBkO2Q9YzshZCYmKGQ9TnFkKG5ldyBPcWQsMCkpO2QuVWcoRUFlLDIpO3kwYihhLmIsYixkLmVoKDEpKTtOV2IoYSxiLGQuZWgoMSkpO2gwYihiLGQuZWgoMSkpO2QuVmcoKX1cbmZ1bmN0aW9uIENHZChhLGIsYyl7dmFyIGQsZTtkPShidmQoKSxlPW5ldyBYeGQsZSk7VnhkKGQsYik7V3hkKGQsYyk7ISFhJiZXR2QoKCFhLmEmJihhLmE9bmV3IFhaZChENCxhLDUpKSxhLmEpLGQpO3JldHVybiBkfVxuZnVuY3Rpb24ga3lkKGEpe3ZhciBiO2lmKChhLkRiJjY0KSE9MClyZXR1cm4gYXdkKGEpO2I9bmV3IFNoYihhd2QoYSkpO2IuYSs9JyAoaWRlbnRpZmllcjogJztOaGIoYixhLmspO2IuYSs9JyknO3JldHVybiBiLmF9XG5mdW5jdGlvbiBrWGQoYSxiKXt2YXIgYztjPShhLkJiJlFIZSkhPTA7Yj8oYS5CYnw9UUhlKTooYS5CYiY9LTMyNzY5KTsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBRM2QoYSwxLDE4LGMsYikpfVxuZnVuY3Rpb24gYTZkKGEsYil7dmFyIGM7Yz0oYS5CYiZRSGUpIT0wO2I/KGEuQmJ8PVFIZSk6KGEuQmImPS0zMjc2OSk7KGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgUTNkKGEsMSwxOCxjLGIpKX1cbmZ1bmN0aW9uIEFXZChhLGIpe3ZhciBjO2M9KGEuQmImT3ZlKSE9MDtiPyhhLkJifD1PdmUpOihhLkJiJj0tMTYzODUpOyhhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IFEzZChhLDEsMTYsYyxiKSl9XG5mdW5jdGlvbiBjNmQoYSxiKXt2YXIgYztjPShhLkJiJnR4ZSkhPTA7Yj8oYS5CYnw9dHhlKTooYS5CYiY9LTY1NTM3KTsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBRM2QoYSwxLDIwLGMsYikpfVxuZnVuY3Rpb24gcXNlKGEpe3ZhciBiO2I9JEMoaEUsendlLDI4LDIsMTUsMSk7YS09dHhlO2JbMF09KGE+PjEwKSt1eGUmQndlO2JbMV09KGEmMTAyMykrNTYzMjAmQndlO3JldHVybiBJaGIoYiwwLGIubGVuZ3RoKX1cbmZ1bmN0aW9uIFpmYihhKXt2YXIgYjtiPU5lYihhKTtpZihiPjMuNDAyODIzNDY2Mzg1Mjg4NkUzOCl7cmV0dXJuIG94ZX1lbHNlIGlmKGI8LTMuNDAyODIzNDY2Mzg1Mjg4NkUzOCl7cmV0dXJuIHB4ZX1yZXR1cm4gYn1cbmZ1bmN0aW9uIEJkYihhLGIpe3ZhciBjO2lmKEtkYihhKSYmS2RiKGIpKXtjPWErYjtpZihqeGU8YyYmYzxoeGUpe3JldHVybiBjfX1yZXR1cm4gRWRiKHNEKEtkYihhKT9XZGIoYSk6YSxLZGIoYik/V2RiKGIpOmIpKX1cbmZ1bmN0aW9uIE5kYihhLGIpe3ZhciBjO2lmKEtkYihhKSYmS2RiKGIpKXtjPWEqYjtpZihqeGU8YyYmYzxoeGUpe3JldHVybiBjfX1yZXR1cm4gRWRiKHdEKEtkYihhKT9XZGIoYSk6YSxLZGIoYik/V2RiKGIpOmIpKX1cbmZ1bmN0aW9uIFZkYihhLGIpe3ZhciBjO2lmKEtkYihhKSYmS2RiKGIpKXtjPWEtYjtpZihqeGU8YyYmYzxoeGUpe3JldHVybiBjfX1yZXR1cm4gRWRiKEREKEtkYihhKT9XZGIoYSk6YSxLZGIoYik/V2RiKGIpOmIpKX1cbmZ1bmN0aW9uIGIzYihhLGIpe3ZhciBjO2EuaXx8VjJiKGEpO2M9UkQoVnJiKGEuZyxiKSw0Mik7cmV0dXJuICFjPyh5b2IoKSx5b2IoKSx2b2IpOm5ldyBSa2IoYS5qLFJEKGMuYSwxNykuYSxSRChjLmIsMTcpLmEpfVxuZnVuY3Rpb24gWlhiKGEpe05YYigpO3JldHVybiBHZWIoKSxJWWIoUkQoYS5hLDg2KS5qLFJEKGEuYiw4OCkpfHxSRChhLmEsODYpLmQuZSE9MCYmSVliKFJEKGEuYSw4NikuaixSRChhLmIsODgpKT90cnVlOmZhbHNlfVxuZnVuY3Rpb24gcFdjKGEsYil7cmV0dXJuIGxoYighIWIuYiYmISFiLmM/YVhjKGIuYikrJy0+JythWGMoYi5jKTonZV8nK3RiKGIpLCEhYS5iJiYhIWEuYz9hWGMoYS5iKSsnLT4nK2FYYyhhLmMpOidlXycrdGIoYSkpfVxuZnVuY3Rpb24gcldjKGEsYil7cmV0dXJuIGxoYighIWIuYiYmISFiLmM/YVhjKGIuYikrJy0+JythWGMoYi5jKTonZV8nK3RiKGIpLCEhYS5iJiYhIWEuYz9hWGMoYS5iKSsnLT4nK2FYYyhhLmMpOidlXycrdGIoYSkpfVxuZnVuY3Rpb24gJHkoYSxiKXtaeSgpO3JldHVybiBieihwd2UpLCR3bmQuTWF0aC5hYnMoYS1iKTw9cHdlfHxhPT1ifHxpc05hTihhKSYmaXNOYU4oYik/MDphPGI/LTE6YT5iPzE6Y3ooaXNOYU4oYSksaXNOYU4oYikpfVxuZnVuY3Rpb24gWW1kKCl7WW1kPWdlYjtYbWQ9bmV3IFptZChTeWUsMCk7Vm1kPW5ldyBabWQoJ1BPTFlMSU5FJywxKTtVbWQ9bmV3IFptZCgnT1JUSE9HT05BTCcsMik7V21kPW5ldyBabWQoJ1NQTElORVMnLDMpfVxuZnVuY3Rpb24gXzZjKCl7XzZjPWdlYjtaNmM9bmV3IGE3YygnQVNQRUNUX1JBVElPX0RSSVZFTicsMCk7JDZjPW5ldyBhN2MoJ01BWF9TQ0FMRV9EUklWRU4nLDEpO1k2Yz1uZXcgYTdjKCdBUkVBX0RSSVZFTicsMil9XG5mdW5jdGlvbiBEYihiLGMsZCl7dmFyIGU7dHJ5e0NiKGIsYyxkKX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDYwNikpe2U9YTt0aHJvdyBBZGIobmV3IERlYihlKSl9ZWxzZSB0aHJvdyBBZGIoYSl9cmV0dXJuIGN9XG5mdW5jdGlvbiBJbShhKXt2YXIgYixjLGQ7Zm9yKGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspe2lmKGFbY109PW51bGwpe3Rocm93IEFkYihuZXcgT2diKCdhdCBpbmRleCAnK2MpKX19Yj1hO3JldHVybiBuZXcgbW9iKGIpfVxuZnVuY3Rpb24gVzJiKGEpe3ZhciBiLGMsZDtiPW5ldyBibmI7Zm9yKGQ9bmV3IEFuYihhLmopO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxMik7Um1iKGIsYy5iKX1yZXR1cm4gUWIoYiksbmV3IERsKGIpfVxuZnVuY3Rpb24gWjJiKGEpe3ZhciBiLGMsZDtiPW5ldyBibmI7Zm9yKGQ9bmV3IEFuYihhLmopO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxMik7Um1iKGIsYy5lKX1yZXR1cm4gUWIoYiksbmV3IERsKGIpfVxuZnVuY3Rpb24gYTNiKGEpe3ZhciBiLGMsZDtiPW5ldyBibmI7Zm9yKGQ9bmV3IEFuYihhLmopO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxMik7Um1iKGIsYy5nKX1yZXR1cm4gUWIoYiksbmV3IERsKGIpfVxuZnVuY3Rpb24gTUJiKGEsYil7dmFyIGMsZCxlO2U9bmV3IFRzYjtmb3IoZD1iLnZjKCkuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSw0NCk7WmpiKGUsYy5sZCgpLFFCYihhLFJEKGMubWQoKSwxNSkpKX1yZXR1cm4gZX1cbmZ1bmN0aW9uIE1qZShhKXt2YXIgYixjO2ZvcihjPU5qZShCWGQodVdkKGEpKSkuS2MoKTtjLk9iKCk7KXtiPVdEKGMuUGIoKSk7aWYoYkFkKGEsYikpcmV0dXJuIGRUZCgoY1RkKCksYlRkKSxiKX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIENnYyhhLGIpe3ZhciBjLGQsZTtlPTA7Zm9yKGQ9UkQoYi5LYihhKSwyMCkuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSwxOCk7SGViKFREKG1RYihjLChZd2MoKSxOd2MpKSkpfHwrK2V9cmV0dXJuIGV9XG5mdW5jdGlvbiBVdihhKXt2YXIgYixjLGQsZTtiPW5ldyBvcShhLlJkKCkuZ2MoKSk7ZT0wO2ZvcihkPU5yKGEuUmQoKS5LYygpKTtkLk9iKCk7KXtjPWQuUGIoKTtucShiLGMsc2diKGUrKykpfXJldHVybiBzbihiLmEpfVxuZnVuY3Rpb24gQ3ZiKGEsYixjLGQpe3ZhciBlLGY7dUZiKGQpO3VGYihjKTtlPWEueGMoYik7Zj1lPT1udWxsP2M6RUJiKFJEKGUsMTUpLFJEKGMsMTYpKTtmPT1udWxsP2EuQmMoYik6YS56YyhiLGYpO3JldHVybiBmfVxuZnVuY3Rpb24gVW5iKGEsYixjLGQpe3ZhciBlLGYsZztmb3IoZT1iKzE7ZTxjOysrZSl7Zm9yKGY9ZTtmPmImJmQuTmUoYVtmLTFdLGFbZl0pPjA7LS1mKXtnPWFbZl07YkQoYSxmLGFbZi0xXSk7YkQoYSxmLTEsZyl9fX1cbmZ1bmN0aW9uIEVnZChhLGIpe3ZhciBjLGQsZSxmLGc7Yz1iLmY7ZHViKGEuYy5kLGMsYik7aWYoYi5nIT1udWxsKXtmb3IoZT1iLmcsZj0wLGc9ZS5sZW5ndGg7ZjxnOysrZil7ZD1lW2ZdO2R1YihhLmMuZSxkLGIpfX19XG5mdW5jdGlvbiBZU2MoYSxiKXt2YXIgYyxkO2M9U3ViKGEsMCk7d2hpbGUoYy5iIT1jLmQuYyl7ZD1NZmIoVUQoZXZiKGMpKSk7aWYoZD09Yil7cmV0dXJufWVsc2UgaWYoZD5iKXtmdmIoYyk7YnJlYWt9fWN2YihjLGIpfVxuZnVuY3Rpb24gS2ljKGEsYil7dmFyIGMsZCxlO2Q9WmpjKGIpO2U9S2ZiKFVEKGhGYyhkLCh5Q2MoKSxUQmMpKSkpO2M9JHduZC5NYXRoLm1heCgwLGUvMi0wLjUpO0lpYyhiLGMsMSk7Um1iKGEsbmV3IGhqYyhiLGMpKX1cbmZ1bmN0aW9uIEw1YyhhLGIsYyl7dmFyIGQ7Yy5VZygnU3RyYWlnaHQgTGluZSBFZGdlIFJvdXRpbmcnLDEpO2MuZGgoYixlRmUpO2Q9UkQoR3hkKGIsKHUyYygpLHQyYykpLDI3KTtNNWMoYSxkKTtjLmRoKGIsZ0ZlKX1cbmZ1bmN0aW9uIEs5YyhhLGIpe2Eubi5jLmxlbmd0aD09MCYmUm1iKGEubixuZXcgXzljKGEucyxhLnQsYS5pKSk7Um1iKGEuYixiKTtXOWMoUkQoVm1iKGEubixhLm4uYy5sZW5ndGgtMSksMjA5KSxiKTtNOWMoYSxiKX1cbmZ1bmN0aW9uIFpyYihhKXt2YXIgYjt0aGlzLmE9KGI9UkQoYS5lJiZhLmUoKSw5KSxuZXcgRnNiKGIsUkQoV0ViKGIsYi5sZW5ndGgpLDkpLDApKTt0aGlzLmI9JEMoakoscnZlLDEsdGhpcy5hLmEubGVuZ3RoLDUsMSl9XG5mdW5jdGlvbiBqZWIoYSl7dmFyIGI7aWYoQXJyYXkuaXNBcnJheShhKSYmYS5UbT09PWtlYil7cmV0dXJuIG5mYihyYihhKSkrJ0AnKyhiPXRiKGEpPj4+MCxiLnRvU3RyaW5nKDE2KSl9cmV0dXJuIGEudG9TdHJpbmcoKX1cbmZ1bmN0aW9uIGpEKGEsYil7aWYoYS5oPT1meGUmJmEubT09MCYmYS5sPT0wKXtiJiYoZUQ9aEQoMCwwLDApKTtyZXR1cm4gZ0QoKE1EKCksS0QpKX1iJiYoZUQ9aEQoYS5sLGEubSxhLmgpKTtyZXR1cm4gaEQoMCwwLDApfVxuZnVuY3Rpb24gX0diKGEsYil7c3dpdGNoKGIuZyl7Y2FzZSAyOnJldHVybiBhLmI7Y2FzZSAxOnJldHVybiBhLmM7Y2FzZSA0OnJldHVybiBhLmQ7Y2FzZSAzOnJldHVybiBhLmE7ZGVmYXVsdDpyZXR1cm4gZmFsc2U7fX1cbmZ1bmN0aW9uIElZYihhLGIpe3N3aXRjaChiLmcpe2Nhc2UgMjpyZXR1cm4gYS5iO2Nhc2UgMTpyZXR1cm4gYS5jO2Nhc2UgNDpyZXR1cm4gYS5kO2Nhc2UgMzpyZXR1cm4gYS5hO2RlZmF1bHQ6cmV0dXJuIGZhbHNlO319XG5mdW5jdGlvbiB2eWQoYSxiLGMsZCl7c3dpdGNoKGIpe2Nhc2UgMzpyZXR1cm4gYS5mO2Nhc2UgNDpyZXR1cm4gYS5nO2Nhc2UgNTpyZXR1cm4gYS5pO2Nhc2UgNjpyZXR1cm4gYS5qO31yZXR1cm4gY3lkKGEsYixjLGQpfVxuZnVuY3Rpb24gb0liKGEsYil7aWYoYj09YS5kKXtyZXR1cm4gYS5lfWVsc2UgaWYoYj09YS5lKXtyZXR1cm4gYS5kfWVsc2V7dGhyb3cgQWRiKG5ldyBhZ2IoJ05vZGUgJytiKycgbm90IHBhcnQgb2YgZWRnZSAnK2EpKX19XG5mdW5jdGlvbiBVdmQoYSxiKXt2YXIgYztjPXdZZChhLkRoKCksYik7aWYoWkQoYywxMDIpKXtyZXR1cm4gUkQoYywxOSl9dGhyb3cgQWRiKG5ldyBhZ2IoS0hlK2IrXCInIGlzIG5vdCBhIHZhbGlkIHJlZmVyZW5jZVwiKSl9XG5mdW5jdGlvbiBCdmQoYSxiLGMsZCl7aWYoYjwwKXtTdmQoYSxjLGQpfWVsc2V7aWYoIWMucmsoKSl7dGhyb3cgQWRiKG5ldyBhZ2IoS0hlK2MueGUoKStMSGUpKX1SRChjLDY5KS53aygpLkNrKGEsYS5oaSgpLGIsZCl9fVxuZnVuY3Rpb24gaWcoYSl7dmFyIGI7aWYoYS5iKXtpZyhhLmIpO2lmKGEuYi5kIT1hLmMpe3Rocm93IEFkYihuZXcgSnJiKX19ZWxzZSBpZihhLmQuZGMoKSl7Yj1SRChhLmYuYy54YyhhLmUpLDE2KTshIWImJihhLmQ9Yil9fVxuZnVuY3Rpb24gVk1iKGEpe1JNYigpO3ZhciBiLGMsZCxlO2I9YS5vLmI7Zm9yKGQ9UkQoUkQoUWMoYS5yLChxcGQoKSxucGQpKSwyMSksODcpLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMTE3KTtlPWMuZTtlLmIrPWJ9fVxuZnVuY3Rpb24gU1JiKGEpe3ZhciBiLGMsZDt0aGlzLmE9bmV3IEl1Yjtmb3IoZD1uZXcgQW5iKGEpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxNik7Yj1uZXcgRFJiO3hSYihiLGMpO1lzYih0aGlzLmEsYil9fVxuZnVuY3Rpb24gZmRjKGEsYil7dmFyIGMsZCxlO2Q9Y2RjKGEsYik7ZT1kW2QubGVuZ3RoLTFdLzI7Zm9yKGM9MDtjPGQubGVuZ3RoO2MrKyl7aWYoZFtjXT49ZSl7cmV0dXJuIGIuYytjfX1yZXR1cm4gYi5jK2IuYi5nYygpfVxuZnVuY3Rpb24gbFFkKGEsYil7alFkKCk7dmFyIGMsZCxlLGY7ZD1pWmQoYSk7ZT1iO1duYihkLDAsZC5sZW5ndGgsZSk7Zm9yKGM9MDtjPGQubGVuZ3RoO2MrKyl7Zj1rUWQoYSxkW2NdLGMpO2MhPWYmJnVMZChhLGMsZil9fVxuZnVuY3Rpb24gbVNkKGEsYixjKXt2YXIgZCxlO2ZvcihkPTAsZT1hLmxlbmd0aDtkPGU7ZCsrKXtpZih6U2QoKEJGYihkLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoZCkpLGIsYykpcmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gQVJiKGEsYil7dmFyIGMsZDtmb3IoZD1hLmUuYS5lYygpLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMjcyKTtpZihFaWQoYixjLmQpfHx6aWQoYixjLmQpKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gb01jKGEsYixjLGQsZSl7dmFyIGYsZyxoO2c9ZTt3aGlsZShiLmIhPWIuYyl7Zj1SRChzbWIoYiksMTApO2g9UkQoYjNiKGYsZCkuWGIoMCksMTIpO2EuZFtoLnBdPWcrKztaRWIoYy5jLGgpfXJldHVybiBnfVxuZnVuY3Rpb24gdktiKGEsYil7dmFyIGMsZCxlLGYsZyxoO2Q9MDtjPTA7Zm9yKGY9YixnPTAsaD1mLmxlbmd0aDtnPGg7KytnKXtlPWZbZ107aWYoZT4wKXtkKz1lOysrY319Yz4xJiYoZCs9YS5kKihjLTEpKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIEZGZChhKXt2YXIgYixjLGQsZSxmO2Y9SEZkKGEpO2M9Y3ZlKGEuYyk7ZD0hYztpZihkKXtlPW5ldyBNQjtzQyhmLCdrbm93bkxheW91dGVycycsZSk7Yj1uZXcgUUZkKGUpO3hnYihhLmMsYil9cmV0dXJuIGZ9XG5mdW5jdGlvbiBmSGQoYSl7dmFyIGIsYyxkO2Q9bmV3IFFoYjtkLmErPSdbJztmb3IoYj0wLGM9YS5nYygpO2I8Yzspe05oYihkLEdoYihhLlZpKGIpKSk7KytiPGMmJihkLmErPXB2ZSxkKX1kLmErPSddJztyZXR1cm4gZC5hfVxuZnVuY3Rpb24ga1NkKGEpe2lmKGEuZT09bnVsbCl7cmV0dXJuIGF9ZWxzZSAhYS5jJiYoYS5jPW5ldyBsU2QoKGEuZiYyNTYpIT0wLGEuaSxhLmEsYS5kLChhLmYmMTYpIT0wLGEuaixhLmcsbnVsbCkpO3JldHVybiBhLmN9XG5mdW5jdGlvbiBwbmMoYSl7aWYoYS5rIT0ocjNiKCkscDNiKSl7cmV0dXJuIGZhbHNlfXJldHVybiB5RGIobmV3IFNEYihudWxsLG5ldyBUd2IobmV3IGlzKE1yKGEzYihhKS5hLktjKCksbmV3IGlyKSkpKSxuZXcgcW5jKX1cbmZ1bmN0aW9uIGh2KGEpe3ZhciBiLGM7aWYoWkQoYSwzMDcpKXtjPXZtKFJEKGEsMzA3KSk7Yj1jO3JldHVybiBifWVsc2UgcmV0dXJuIFpEKGEsNDQxKT9SRChhLDQ0MSkuYTpaRChhLDU5KT9uZXcgRnYoYSk6bmV3IHV2KGEpfVxuZnVuY3Rpb24gRlNkKGEpe3ZhciBiO2lmKGE9PW51bGwpcmV0dXJuIHRydWU7Yj1hLmxlbmd0aDtyZXR1cm4gYj4wJiYoQkZiKGItMSxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGItMSk9PTU4KSYmIW1TZChhLGFTZCxiU2QpfVxuZnVuY3Rpb24gU2liKGEsYil7dmFyIGM7aWYoZEUoYSk9PT1kRShiKSl7cmV0dXJuIHRydWV9aWYoWkQoYiw5Mikpe2M9UkQoYiw5Mik7cmV0dXJuIGEuZT09Yy5lJiZhLmQ9PWMuZCYmVGliKGEsYy5hKX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiB2cGQoYSl7cXBkKCk7c3dpdGNoKGEuZyl7Y2FzZSA0OnJldHVybiBZb2Q7Y2FzZSAxOnJldHVybiBYb2Q7Y2FzZSAzOnJldHVybiBucGQ7Y2FzZSAyOnJldHVybiBwcGQ7ZGVmYXVsdDpyZXR1cm4gb3BkO319XG5mdW5jdGlvbiBqQmIoYSl7dmFyIGIsYztpZihhLmIpe3JldHVybiBhLmJ9Yz1kQmI/bnVsbDphLmQ7d2hpbGUoYyl7Yj1kQmI/bnVsbDpjLmI7aWYoYil7cmV0dXJuIGJ9Yz1kQmI/bnVsbDpjLmR9cmV0dXJuIFNBYigpLFJBYn1cbmZ1bmN0aW9uIExKYihhKXt2YXIgYixjLGQ7ZD1LZmIoVUQoYS5hLm9mKCh1bWQoKSxjbWQpKSkpO2ZvcihjPW5ldyBBbmIoYS5hLlNmKCkpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSw2OTUpO09KYihhLGIsZCl9fVxuZnVuY3Rpb24ganooYSl7dmFyIGIsYyxkLGU7Zm9yKGI9KGEuaj09bnVsbCYmKGEuaj0oZkEoKSxlPWVBLm1lKGEpLGhBKGUpKSksYS5qKSxjPTAsZD1iLmxlbmd0aDtjPGQ7KytjKXtTdHJpbmcuZnJvbUNoYXJDb2RlKDEwKX19XG5mdW5jdGlvbiBPWGIoYSxiKXt2YXIgYyxkO2ZvcihkPW5ldyBBbmIoYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDQyKTtSbWIoYS5iLmIsUkQoYy5iLDg2KSk7Z1liKFJEKGMuYSwxOTQpLFJEKGMuYiw4NikpfX1cbmZ1bmN0aW9uIG5IYyhhLGIsYyl7dmFyIGQsZTtlPWEuYS5iO2ZvcihkPWUuYy5sZW5ndGg7ZDxjO2QrKyl7UW1iKGUsMCxuZXcgUjRiKGEuYSkpfWczYihiLFJEKFZtYihlLGUuYy5sZW5ndGgtYyksMzApKTthLmJbYi5wXT1jfVxuZnVuY3Rpb24gRU9jKGEsYixjLGQsZSl7ZE9jKCk7ckliKHVJYih0SWIoc0liKHZJYihuZXcgd0liLDApLGUuZC5lLWEpLGIpLGUuZCkpO3JJYih1SWIodEliKHNJYih2SWIobmV3IHdJYiwwKSxjLWUuYS5lKSxlLmEpLGQpKX1cbmZ1bmN0aW9uIFRlZChhLGIpe3ZhciBjO2lmKGEuZCl7aWYoVWpiKGEuYixiKSl7cmV0dXJuIFJEKFdqYihhLmIsYiksNDcpfWVsc2V7Yz1iLmRnKCk7WmpiKGEuYixiLGMpO3JldHVybiBjfX1lbHNle3JldHVybiBiLmRnKCl9fVxuZnVuY3Rpb24gaEZiKGIpe3ZhciBjPWIuZTtmdW5jdGlvbiBkKGEpe2lmKCFhfHxhLmxlbmd0aD09MCl7cmV0dXJuICcnfXJldHVybiAnXFx0JythLmpvaW4oJ1xcblxcdCcpfVxucmV0dXJuIGMmJihjLnN0YWNrfHxkKGJbeHdlXSkpfVxuZnVuY3Rpb24gd3lkKGEsYil7c3dpdGNoKGIpe2Nhc2UgMzpyZXR1cm4gYS5mIT0wO2Nhc2UgNDpyZXR1cm4gYS5nIT0wO2Nhc2UgNTpyZXR1cm4gYS5pIT0wO2Nhc2UgNjpyZXR1cm4gYS5qIT0wO31yZXR1cm4gZnlkKGEsYil9XG5mdW5jdGlvbiB5MmMoYSl7c3dpdGNoKGEuZyl7Y2FzZSAwOnJldHVybiBuZXcgRDVjO2Nhc2UgMTpyZXR1cm4gbmV3IE41YztkZWZhdWx0OnRocm93IEFkYihuZXcgYWdiKGxCZSsoYS5mIT1udWxsP2EuZjonJythLmcpKSk7fX1cbmZ1bmN0aW9uIFozYyhhKXtzd2l0Y2goYS5nKXtjYXNlIDA6cmV0dXJuIG5ldyBHNWM7Y2FzZSAxOnJldHVybiBuZXcgSjVjO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBhZ2IobUZlKyhhLmYhPW51bGw/YS5mOicnK2EuZykpKTt9fVxuZnVuY3Rpb24gaDRjKGEpe3N3aXRjaChhLmcpe2Nhc2UgMTpyZXR1cm4gbmV3IEYzYztjYXNlIDI6cmV0dXJuIG5ldyB4M2M7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYihtRmUrKGEuZiE9bnVsbD9hLmY6JycrYS5nKSkpO319XG5mdW5jdGlvbiBtZGQoYSl7c3dpdGNoKGEuZyl7Y2FzZSAwOnJldHVybiBuZXcgRGRkO2Nhc2UgMTpyZXR1cm4gbmV3IEhkZDtkZWZhdWx0OnRocm93IEFkYihuZXcgYWdiKGVHZSsoYS5mIT1udWxsP2EuZjonJythLmcpKSk7fX1cbmZ1bmN0aW9uIE93Yigpe0h3YigpO3ZhciBhLGIsYztjPUd3YisrK0RhdGUubm93KCk7YT1lRSgkd25kLk1hdGguZmxvb3IoYypOeGUpKSZQeGU7Yj1lRShjLWEqT3hlKTt0aGlzLmE9YV4xNTAyO3RoaXMuYj1iXk14ZX1cbmZ1bmN0aW9uIGN4Yygpe2N4Yz1nZWI7YnhjPW5ldyBkeGMoTEFlLDApO1p3Yz1uZXcgZHhjKCdGSVJTVCcsMSk7JHdjPW5ldyBkeGMob0JlLDIpO193Yz1uZXcgZHhjKCdMQVNUJywzKTtheGM9bmV3IGR4YyhwQmUsNCl9XG5mdW5jdGlvbiBHcmQoKXtHcmQ9Z2ViO0ZyZD1uZXcgSHJkKG1FZSwwKTtDcmQ9bmV3IEhyZCgnR1JPVVBfREVDJywxKTtFcmQ9bmV3IEhyZCgnR1JPVVBfTUlYRUQnLDIpO0RyZD1uZXcgSHJkKCdHUk9VUF9JTkMnLDMpfVxuZnVuY3Rpb24gY0VkKGEsYil7dmFyIGMsZCxlLGY7aWYoYil7ZT12RGQoYiwneCcpO2M9bmV3IHdGZChhKTtPemQoYy5hLCh1RmIoZSksZSkpO2Y9dkRkKGIsJ3knKTtkPW5ldyB6RmQoYSk7UHpkKGQuYSwodUZiKGYpLGYpKX19XG5mdW5jdGlvbiBuRWQoYSxiKXt2YXIgYyxkLGUsZjtpZihiKXtlPXZEZChiLCd4Jyk7Yz1uZXcgQkZkKGEpO0h6ZChjLmEsKHVGYihlKSxlKSk7Zj12RGQoYiwneScpO2Q9bmV3IENGZChhKTtJemQoZC5hLCh1RmIoZiksZikpfX1cbmZ1bmN0aW9uIFNqZShhLGIpe3ZhciBjLGQsZSxmO2U9bmV3IGNuYihiLmdjKCkpO2ZvcihkPWIuS2MoKTtkLk9iKCk7KXtjPWQuUGIoKTtmPVJqZShhLFJEKGMsNTgpKTshIWYmJihaRWIoZS5jLGYpLHRydWUpfXJldHVybiBlfVxuZnVuY3Rpb24gemUoYSxiLGMpe3ZhciBkLGU7Zm9yKGU9YS5LYygpO2UuT2IoKTspe2Q9ZS5QYigpO2lmKGRFKGIpPT09ZEUoZCl8fGIhPW51bGwmJnBiKGIsZCkpe2MmJmUuUWIoKTtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gWTViKGEpe3ZhciBiLGMsZDtjPWEuamgoKTtpZihjKXtiPWEuRWgoKTtpZihaRChiLDE2Nykpe2Q9WTViKFJEKGIsMTY3KSk7aWYoZCE9bnVsbCl7cmV0dXJuIGQrJy4nK2N9fXJldHVybiBjfXJldHVybiBudWxsfVxuZnVuY3Rpb24gcGpiKGEpe3ZhciBiLGMsZDtpZihhLmU9PTApe3JldHVybiAwfWI9YS5kPDw1O2M9YS5hW2EuZC0xXTtpZihhLmU8MCl7ZD1VaWIoYSk7aWYoZD09YS5kLTEpey0tYztjPWN8MH19Yi09bmdiKGMpO3JldHVybiBifVxuZnVuY3Rpb24ga2piKGEpe3ZhciBiLGMsZDtpZihhPE5pYi5sZW5ndGgpe3JldHVybiBOaWJbYV19Yz1hPj41O2I9YSYzMTtkPSRDKGtFLFB3ZSwyOCxjKzEsMTUsMSk7ZFtjXT0xPDxiO3JldHVybiBuZXcgY2piKDEsYysxLGQpfVxuZnVuY3Rpb24gZUxkKGEsYil7dmFyIGMsZDtpZighYil7cmV0dXJuIGZhbHNlfWVsc2V7Zm9yKGM9MDtjPGEuaTsrK2Mpe2Q9UkQoYS5nW2NdLDM3OCk7aWYoZC5taihiKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gV0dkKGEsYil9fVxuZnVuY3Rpb24gWklkKGEsYixjKXt2YXIgZCxlOysrYS5qO2lmKGMuZGMoKSl7cmV0dXJuIGZhbHNlfWVsc2V7Zm9yKGU9Yy5LYygpO2UuT2IoKTspe2Q9ZS5QYigpO2EucWooYixhLlppKGIsZCkpOysrYn1yZXR1cm4gdHJ1ZX19XG5mdW5jdGlvbiBPQShhLGIsYyxkKXt2YXIgZSxmO2Y9Yy1iO2lmKGY8Myl7d2hpbGUoZjwzKXthKj0xMDsrK2Z9fWVsc2V7ZT0xO3doaWxlKGY+Myl7ZSo9MTA7LS1mfWE9KGErKGU+PjEpKS9lfDB9ZC5pPWE7cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBCWWQoYSxiKXt2YXIgYyxkLGU7Yz0oYS5pPT1udWxsJiZyWWQoYSksYS5pKTtkPWIuTGooKTtpZihkIT0tMSl7Zm9yKGU9Yy5sZW5ndGg7ZDxlOysrZCl7aWYoY1tkXT09Yil7cmV0dXJuIGR9fX1yZXR1cm4gLTF9XG5mdW5jdGlvbiBUJGQoYSl7dmFyIGIsYyxkLGUsZjtjPVJEKGEuZyw2ODkpO2ZvcihkPWEuaS0xO2Q+PTA7LS1kKXtiPWNbZF07Zm9yKGU9MDtlPGQ7KytlKXtmPWNbZV07aWYoVSRkKGEsYixmKSl7VEhkKGEsZCk7YnJlYWt9fX19XG5mdW5jdGlvbiBQSWQoYSl7dmFyIGIsYyxkLGU7Yj1uZXcgTUI7Zm9yKGU9bmV3IFBwYihhLmIuS2MoKSk7ZS5iLk9iKCk7KXtkPVJEKGUuYi5QYigpLDcwMSk7Yz1MRmQoZCk7S0IoYixiLmEubGVuZ3RoLGMpfXJldHVybiBiLmF9XG5mdW5jdGlvbiBWTmIoYSl7dmFyIGI7IWEuYyYmKGEuYz1uZXcgTU5iKTtfbWIoYS5kLG5ldyBhT2IpO1NOYihhKTtiPUxOYihhKTtGRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5kLDE2KSksbmV3IHRPYihhKSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBJNmIoYSxiKXtiLlVnKCdFbmQgbGFiZWwgcG9zdC1wcm9jZXNzaW5nJywxKTtGRGIoQ0RiKEVEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmIsMTYpKSxuZXcgTjZiKSxuZXcgUDZiKSxuZXcgUjZiKTtiLlZnKCl9XG5mdW5jdGlvbiBSQ2MoYSl7UUNjKCk7dGhpcy5jPWR2KGNEKFdDKGcyLDEpLHJ2ZSw4NDUsMCxbRkNjXSkpO3RoaXMuYj1uZXcgVHNiO3RoaXMuYT1hO1pqYih0aGlzLmIsT0NjLDEpO1VtYihQQ2MsbmV3ICRyZCh0aGlzKSl9XG5mdW5jdGlvbiB3S2IoYSxiLGMpe2tLYigpO2ZLYi5jYWxsKHRoaXMpO3RoaXMuYT1ZQyhJTixbTnZlLE15ZV0sWzYwMywyMTddLDAsW2pLYixpS2JdLDIpO3RoaXMuYz1uZXcgVGlkO3RoaXMuZz1hO3RoaXMuZj1iO3RoaXMuZD1jfVxuZnVuY3Rpb24gZ1FiKGEsYil7dGhpcy5uPVlDKGxFLFtOdmUscnhlXSxbMzc2LDI4XSwxNCxbYixlRSgkd25kLk1hdGguY2VpbChhLzMyKSldLDIpO3RoaXMubz1hO3RoaXMucD1iO3RoaXMuaj1hLTE+PjE7dGhpcy5rPWItMT4+MX1cbmZ1bmN0aW9uIERmZChhKXtBZmQoKTtpZihSRChhLm9mKCh1bWQoKSxwbGQpKSwxODEpLkhjKChkcWQoKSxicWQpKSl7UkQoYS5vZihMbGQpLDE4MSkuRmMoKFBvZCgpLE9vZCkpO1JEKGEub2YocGxkKSwxODEpLk1jKGJxZCl9fVxuZnVuY3Rpb24gbmRjKGEpe3ZhciBiLGM7Yj1hLmQ9PShidGMoKSxZc2MpO2M9amRjKGEpO2ImJiFjfHwhYiYmYz9wUWIoYS5hLCh5Q2MoKSxSemMpLChSamQoKSxQamQpKTpwUWIoYS5hLCh5Q2MoKSxSemMpLChSamQoKSxPamQpKX1cbmZ1bmN0aW9uIFFDYygpe1FDYz1nZWI7R0NjKCk7T0NjPSh5Q2MoKSxiQ2MpO1BDYz1kdihjRChXQyhWNSwxKSxrRWUsMTQ5LDAsW1NCYyxUQmMsVkJjLFdCYyxaQmMsJEJjLF9CYyxhQ2MsZENjLGZDYyxVQmMsWEJjLGNDY10pKX1cbmZ1bmN0aW9uIFJEYihhLGIpe3ZhciBjO2M9UkQoekRiKGEsdEJiKG5ldyBaQmIsbmV3IFhCYixuZXcgd0NiLGNEKFdDKFFMLDEpLGp3ZSwxMDgsMCxbKHhCYigpLHZCYildKSkpLDE1KTtyZXR1cm4gYy5RYyhfX2MoYy5nYygpKSl9XG5mdW5jdGlvbiBuWGMoYSxiKXt2YXIgYyxkO2Q9bmV3IHpBYihhLmEuYWQoYix0cnVlKSk7aWYoZC5hLmdjKCk8PTEpe3Rocm93IEFkYihuZXcgTmdiKX1jPWQuYS5lYygpLktjKCk7Yy5QYigpO3JldHVybiBSRChjLlBiKCksNDApfVxuZnVuY3Rpb24gbFFjKGEsYixjKXt2YXIgZCxlO2Q9S2ZiKGEucFtiLmkucF0pK0tmYihhLmRbYi5pLnBdKStiLm4uYitiLmEuYjtlPUtmYihhLnBbYy5pLnBdKStLZmIoYS5kW2MuaS5wXSkrYy5uLmIrYy5hLmI7cmV0dXJuIGUtZH1cbmZ1bmN0aW9uIFhIZChhLGIpe3ZhciBjO2lmKGEuaT4wKXtpZihiLmxlbmd0aDxhLmkpe2M9SU1kKHJiKGIpLmMsYS5pKTtiPWN9aGliKGEuZywwLGIsMCxhLmkpfWIubGVuZ3RoPmEuaSYmYkQoYixhLmksbnVsbCk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBNWGQoYSl7dmFyIGI7aWYoKGEuRGImNjQpIT0wKXJldHVybiBRQWQoYSk7Yj1uZXcgU2hiKFFBZChhKSk7Yi5hKz0nIChpbnN0YW5jZUNsYXNzTmFtZTogJztOaGIoYixhLkQpO2IuYSs9JyknO3JldHVybiBiLmF9XG5mdW5jdGlvbiB5U2QoYSl7dmFyIGIsYyxkLGU7ZT0wO2ZvcihjPTAsZD1hLmxlbmd0aDtjPGQ7YysrKXtiPShCRmIoYyxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGMpKTtiPDY0JiYoZT1SZGIoZSxTZGIoMSxiKSkpfXJldHVybiBlfVxuZnVuY3Rpb24gRmpiKGEsYixjKXt2YXIgZCxlO2Q9Q2RiKGMseXhlKTtmb3IoZT0wO0RkYihkLDApIT0wJiZlPGI7ZSsrKXtkPUJkYihkLENkYihhW2VdLHl4ZSkpO2FbZV09WWRiKGQpO2Q9VGRiKGQsMzIpfXJldHVybiBZZGIoZCl9XG5mdW5jdGlvbiBwZ2UoYSxiKXt2YXIgYyxkLGUsZjtmPXBrZShhLmUuRGgoKSxiKTtjPVJEKGEuZywxMjQpO2ZvcihlPTA7ZTxhLmk7KytlKXtkPWNbZV07aWYoZi5hbShkLkxrKCkpKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfVxuZnVuY3Rpb24gUU5kKGEsYil7dmFyIGMsZCxlO2lmKGEuZj4wKXthLl9qKCk7ZD1iPT1udWxsPzA6dGIoYik7ZT0oZCZsdmUpJWEuZC5sZW5ndGg7Yz1YTmQoYSxlLGQsYik7cmV0dXJuIGMhPS0xfWVsc2V7cmV0dXJuIGZhbHNlfX1cbmZ1bmN0aW9uIE5yYihhLGIpe3ZhciBjLGQ7YS5hPUJkYihhLmEsMSk7YS5jPSR3bmQuTWF0aC5taW4oYS5jLGIpO2EuYj0kd25kLk1hdGgubWF4KGEuYixiKTthLmQrPWI7Yz1iLWEuZjtkPWEuZStjO2EuZj1kLWEuZS1jO2EuZT1kfVxuZnVuY3Rpb24geXlkKGEsYil7c3dpdGNoKGIpe2Nhc2UgMzpBeWQoYSwwKTtyZXR1cm47Y2FzZSA0OkN5ZChhLDApO3JldHVybjtjYXNlIDU6RHlkKGEsMCk7cmV0dXJuO2Nhc2UgNjpFeWQoYSwwKTtyZXR1cm47fWh5ZChhLGIpfVxuZnVuY3Rpb24gYzNiKGEsYil7c3dpdGNoKGIuZyl7Y2FzZSAxOnJldHVybiBkcihhLmosKEozYigpLEUzYikpO2Nhc2UgMjpyZXR1cm4gZHIoYS5qLChKM2IoKSxHM2IpKTtkZWZhdWx0OnJldHVybiB5b2IoKSx5b2IoKSx2b2I7fX1cbmZ1bmN0aW9uIHptKGEpe3RtKCk7dmFyIGI7Yj1hLlBjKCk7c3dpdGNoKGIubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHNtO2Nhc2UgMTpyZXR1cm4gbmV3IER5KFFiKGJbMF0pKTtkZWZhdWx0OnJldHVybiBuZXcgS3goSW0oYikpO319XG5mdW5jdGlvbiBrTWQoYixjKXtiLlhqKCk7dHJ5e2IuZC5iZChiLmUrKyxjKTtiLmY9Yi5kLmo7Yi5nPS0xfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsNzcpKXt0aHJvdyBBZGIobmV3IEpyYil9ZWxzZSB0aHJvdyBBZGIoYSl9fVxuZnVuY3Rpb24gYThkKCl7YThkPWdlYjskN2Q9bmV3IGI4ZDtUN2Q9bmV3IGU4ZDtVN2Q9bmV3IGg4ZDtWN2Q9bmV3IGs4ZDtXN2Q9bmV3IG44ZDtYN2Q9bmV3IHE4ZDtZN2Q9bmV3IHQ4ZDtaN2Q9bmV3IHc4ZDtfN2Q9bmV3IHo4ZH1cbmZ1bmN0aW9uIFlBKGEsYil7V0EoKTt2YXIgYyxkO2M9X0EoKCRBKCksJEEoKSxaQSkpO2Q9bnVsbDtiPT1jJiYoZD1SRChYamIoVkEsYSksNjI0KSk7aWYoIWQpe2Q9bmV3IFhBKGEpO2I9PWMmJiRqYihWQSxhLGQpfXJldHVybiBkfVxuZnVuY3Rpb24gekRjKGEpe3dEYygpO3ZhciBiOyghYS5xPyh5b2IoKSx5b2IoKSx3b2IpOmEucSkuX2IoKHlDYygpLGlCYykpPyhiPVJEKG1RYihhLGlCYyksMjAzKSk6KGI9UkQobVFiKFkyYihhKSxqQmMpLDIwMykpO3JldHVybiBifVxuZnVuY3Rpb24gaEZjKGEsYil7dmFyIGMsZDtkPW51bGw7aWYoblFiKGEsKHlDYygpLFlCYykpKXtjPVJEKG1RYihhLFlCYyksOTYpO2MucGYoYikmJihkPWMub2YoYikpfWQ9PW51bGwmJihkPW1RYihZMmIoYSksYikpO3JldHVybiBkfVxuZnVuY3Rpb24gWmUoYSxiKXt2YXIgYyxkLGU7aWYoWkQoYiw0NCkpe2M9UkQoYiw0NCk7ZD1jLmxkKCk7ZT1YdihhLlJjKCksZCk7cmV0dXJuIEhiKGUsYy5tZCgpKSYmKGUhPW51bGx8fGEuUmMoKS5fYihkKSl9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gJE5kKGEsYil7dmFyIGMsZCxlO2lmKGEuZj4wKXthLl9qKCk7ZD1iPT1udWxsPzA6dGIoYik7ZT0oZCZsdmUpJWEuZC5sZW5ndGg7Yz1XTmQoYSxlLGQsYik7aWYoYyl7cmV0dXJuIGMubWQoKX19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBxTGQoYSxiLGMpe3ZhciBkLGUsZjtpZihhLlBqKCkpe2Q9YS5pO2Y9YS5RaigpO0tIZChhLGQsYik7ZT1hLklqKDMsbnVsbCxiLGQsZik7IWM/KGM9ZSk6Yy5uaihlKX1lbHNle0tIZChhLGEuaSxiKX1yZXR1cm4gY31cbmZ1bmN0aW9uIGYkZChhLGIsYyl7dmFyIGQsZTtkPW5ldyBQM2QoYS5lLDQsMTAsKGU9Yi5jLFpEKGUsOTApP1JEKGUsMjkpOihKVGQoKSx6VGQpKSxudWxsLGZaZChhLGIpLGZhbHNlKTshYz8oYz1kKTpjLm5qKGQpO3JldHVybiBjfVxuZnVuY3Rpb24gZSRkKGEsYixjKXt2YXIgZCxlO2Q9bmV3IFAzZChhLmUsMywxMCxudWxsLChlPWIuYyxaRChlLDkwKT9SRChlLDI5KTooSlRkKCkselRkKSksZlpkKGEsYiksZmFsc2UpOyFjPyhjPWQpOmMubmooZCk7cmV0dXJuIGN9XG5mdW5jdGlvbiBTTWIoYSl7Uk1iKCk7dmFyIGI7Yj1uZXcgc2pkKFJEKGEuZS5vZigodW1kKCksbmxkKSksOCkpO2lmKGEuQi5IYygoZHFkKCksWXBkKSkpe2IuYTw9MCYmKGIuYT0yMCk7Yi5iPD0wJiYoYi5iPTIwKX1yZXR1cm4gYn1cbmZ1bmN0aW9uIGpqYihhKXtQaWIoKTt2YXIgYixjO2M9WWRiKGEpO2I9WWRiKFVkYihhLDMyKSk7aWYoYiE9MCl7cmV0dXJuIG5ldyBiamIoYyxiKX1pZihjPjEwfHxjPDApe3JldHVybiBuZXcgYWpiKDEsYyl9cmV0dXJuIExpYltjXX1cbmZ1bmN0aW9uIE1kYihhLGIpe3ZhciBjO2lmKEtkYihhKSYmS2RiKGIpKXtjPWElYjtpZihqeGU8YyYmYzxoeGUpe3JldHVybiBjfX1yZXR1cm4gRWRiKChpRChLZGIoYSk/V2RiKGEpOmEsS2RiKGIpP1dkYihiKTpiLHRydWUpLGVEKSl9XG5mdW5jdGlvbiBHOGIoYSxiKXt2YXIgYztEOGIoYik7Yz1SRChtUWIoYSwoeUNjKCkseEFjKSksMjgzKTshIWMmJnBRYihhLHhBYyx1dWMoYykpO0U4YihhLmMpO0U4YihhLmYpO0Y4YihhLmQpO0Y4YihSRChtUWIoYSxjQmMpLDIxNCkpfVxuZnVuY3Rpb24geTdiKGEpe3ZhciBiLGMsZCxlO2Q9dDdiKGEpO19tYihkLHI3Yik7ZT1hLmQ7ZS5jLmxlbmd0aD0wO2ZvcihjPW5ldyBBbmIoZCk7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDQ2Nik7VG1iKGUsYi5iKX19XG5mdW5jdGlvbiBjbWMoYSl7dmFyIGI7aWYoYS5jPT0wKXtyZXR1cm59Yj1SRChWbWIoYS5hLGEuYiksMjk0KTtiLmI9PTE/KCsrYS5iLGEuYjxhLmEuYy5sZW5ndGgmJmdtYyhSRChWbWIoYS5hLGEuYiksMjk0KSkpOi0tYi5iOy0tYS5jfVxuZnVuY3Rpb24gdmRjKGEpe3ZhciBiO2I9YS5hO2Rve2I9UkQoaHMobmV3IGlzKE1yKGEzYihiKS5hLktjKCksbmV3IGlyKSkpLDE4KS5kLmk7Yi5rPT0ocjNiKCksbzNiKSYmUm1iKGEuZSxiKX13aGlsZShiLms9PShyM2IoKSxvM2IpKX1cbmZ1bmN0aW9uIFJMYyhhKXt0aGlzLmU9JEMoa0UsUHdlLDI4LGEubGVuZ3RoLDE1LDEpO3RoaXMuYz0kQyh4ZGIsSHllLDI4LGEubGVuZ3RoLDE2LDEpO3RoaXMuYj0kQyh4ZGIsSHllLDI4LGEubGVuZ3RoLDE2LDEpO3RoaXMuZj0wfVxuZnVuY3Rpb24gX0hjKGEpe3ZhciBiLGM7YS5qPSRDKGlFLHZ4ZSwyOCxhLnAuYy5sZW5ndGgsMTUsMSk7Zm9yKGM9bmV3IEFuYihhLnApO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwxMCk7YS5qW2IucF09Yi5vLmIvYS5pfX1cbmZ1bmN0aW9uIExfYyhhLGIpe3ZhciBjLGQsZSxmO2Y9Yi5iLmI7YS5hPW5ldyBZdWI7YS5iPSRDKGtFLFB3ZSwyOCxmLDE1LDEpO2M9MDtmb3IoZT1TdWIoYi5iLDApO2UuYiE9ZS5kLmM7KXtkPVJEKGV2YihlKSw0MCk7ZC5nPWMrK319XG5mdW5jdGlvbiBmYWQoYSxiLGMpe3ZhciBkLGUsZixnO2Y9Yi1hLmU7Zz1jLWEuZjtmb3IoZT1uZXcgQW5iKGEuYSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDE3Mik7VTljKGQsZC5zK2YsZC50K2cpfWEuZT1iO2EuZj1jfVxuZnVuY3Rpb24gb3NlKGEsYil7dmFyIGMsZDtkPWIubGVuZ3RoO2ZvcihjPTA7YzxkO2MrPTIpcnRlKGEsKEJGYihjLGIubGVuZ3RoKSxiLmNoYXJDb2RlQXQoYykpLChCRmIoYysxLGIubGVuZ3RoKSxiLmNoYXJDb2RlQXQoYysxKSkpfVxuZnVuY3Rpb24gRzZjKGEsYil7Yi5VZygnTWluIFNpemUgUG9zdHByb2Nlc3NpbmcnLDEpO0l4ZChhLChYNmMoKSxXNmMpLCR3bmQuTWF0aC5tYXgoS2ZiKFVEKEd4ZChhLFc2YykpKSxLZmIoVUQoR3hkKGEsVTZjKSkpKSk7Yi5WZygpfVxuZnVuY3Rpb24gRnBkKCl7RnBkPWdlYjtDcGQ9bmV3IEEzYigxNSk7QnBkPW5ldyBtR2QoKHVtZCgpLHRsZCksQ3BkKTtFcGQ9bmV3IG1HZChmbWQsMTUpO0RwZD1uZXcgbUdkKFNsZCxzZ2IoMCkpO0FwZD1uZXcgbUdkKERrZCxZemUpfVxuZnVuY3Rpb24gUXBkKCl7UXBkPWdlYjtPcGQ9bmV3IFJwZCgnUE9SVFMnLDApO1BwZD1uZXcgUnBkKCdQT1JUX0xBQkVMUycsMSk7TnBkPW5ldyBScGQoJ05PREVfTEFCRUxTJywyKTtNcGQ9bmV3IFJwZCgnTUlOSU1VTV9TSVpFJywzKX1cbmZ1bmN0aW9uIGY2Yygpe2Y2Yz1nZWI7YzZjPW5ldyBnNmMoJ1AxX1dJRFRIX0FQUFJPWElNQVRJT04nLDApO2Q2Yz1uZXcgZzZjKCdQMl9QQUNLSU5HJywxKTtlNmM9bmV3IGc2YygnUDNfV0hJVEVTUEFDRV9FTElNSU5BVElPTicsMil9XG5mdW5jdGlvbiAkamUoYSl7aWYoYS5iPT1udWxsKXt3aGlsZShhLmEuT2IoKSl7YS5iPWEuYS5QYigpO2lmKCFSRChhLmIsNTQpLkpoKCkpe3JldHVybiB0cnVlfX1hLmI9bnVsbDtyZXR1cm4gZmFsc2V9ZWxzZXtyZXR1cm4gdHJ1ZX19XG5mdW5jdGlvbiBQeWIoYSxiLGMpe3ZhciBkLGUsZjtlPW51bGw7Zj1hLmI7d2hpbGUoZil7ZD1hLmEuTmUoYixmLmQpO2lmKGMmJmQ9PTApe3JldHVybiBmfWlmKGQ+PTApe2Y9Zi5hWzFdfWVsc2V7ZT1mO2Y9Zi5hWzBdfX1yZXR1cm4gZX1cbmZ1bmN0aW9uIFF5YihhLGIsYyl7dmFyIGQsZSxmO2U9bnVsbDtmPWEuYjt3aGlsZShmKXtkPWEuYS5OZShiLGYuZCk7aWYoYyYmZD09MCl7cmV0dXJuIGZ9aWYoZDw9MCl7Zj1mLmFbMF19ZWxzZXtlPWY7Zj1mLmFbMV19fXJldHVybiBlfVxuZnVuY3Rpb24gcm1jKGEsYixjLGQpe3ZhciBlLGYsZztlPWZhbHNlO2lmKExtYyhhLmYsYyxkKSl7T21jKGEuZixhLmFbYl1bY10sYS5hW2JdW2RdKTtmPWEuYVtiXTtnPWZbZF07ZltkXT1mW2NdO2ZbY109ZztlPXRydWV9cmV0dXJuIGV9XG5mdW5jdGlvbiBOcWMoYSxiLGMpe3ZhciBkLGUsZixnO2U9UkQoV2piKGEuYixjKSwxODMpO2Q9MDtmb3IoZz1uZXcgQW5iKGIuaik7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDExMyk7ZVtmLmQucF0mJisrZH1yZXR1cm4gZH1cbmZ1bmN0aW9uIGx0ZShhLGIsYyl7dmFyIGQsZTtkPVJEKFhqYih3c2UsYiksMTIyKTtlPVJEKFhqYih4c2UsYiksMTIyKTtpZihjKXskamIod3NlLGEsZCk7JGpiKHhzZSxhLGUpfWVsc2V7JGpiKHhzZSxhLGQpOyRqYih3c2UsYSxlKX19XG5mdW5jdGlvbiBxamIoYSxiKXt2YXIgYyxkLGUsZjtjPWI+PjU7YiY9MzE7ZT1hLmQrYysoYj09MD8wOjEpO2Q9JEMoa0UsUHdlLDI4LGUsMTUsMSk7cmpiKGQsYS5hLGMsYik7Zj1uZXcgY2piKGEuZSxlLGQpO1JpYihmKTtyZXR1cm4gZn1cbmZ1bmN0aW9uIHpHYyhhLGIpe3ZhciBjLGQsZTtmb3IoZD1uZXcgaXMoTXIoYTNiKGEpLmEuS2MoKSxuZXcgaXIpKTtncyhkKTspe2M9UkQoaHMoZCksMTgpO2U9Yy5kLmk7aWYoZS5jPT1iKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfVxuZnVuY3Rpb24gX0VjKGEsYixjKXt2YXIgZCxlLGYsZyxoO2c9YS5rO2g9Yi5rO2Q9Y1tnLmddW2guZ107ZT1VRChoRmMoYSxkKSk7Zj1VRChoRmMoYixkKSk7cmV0dXJuICR3bmQuTWF0aC5tYXgoKHVGYihlKSxlKSwodUZiKGYpLGYpKX1cbmZ1bmN0aW9uIGxBKCl7aWYoRXJyb3Iuc3RhY2tUcmFjZUxpbWl0PjApeyR3bmQuRXJyb3Iuc3RhY2tUcmFjZUxpbWl0PUVycm9yLnN0YWNrVHJhY2VMaW1pdD02NDtyZXR1cm4gdHJ1ZX1yZXR1cm4gJ3N0YWNrJyBpbiBuZXcgRXJyb3J9XG5mdW5jdGlvbiBzR2IoYSxiKXtyZXR1cm4gWnkoKSxaeSgpLGJ6KHB3ZSksKCR3bmQuTWF0aC5hYnMoYS1iKTw9cHdlfHxhPT1ifHxpc05hTihhKSYmaXNOYU4oYik/MDphPGI/LTE6YT5iPzE6Y3ooaXNOYU4oYSksaXNOYU4oYikpKT4wfVxuZnVuY3Rpb24gdUdiKGEsYil7cmV0dXJuIFp5KCksWnkoKSxieihwd2UpLCgkd25kLk1hdGguYWJzKGEtYik8PXB3ZXx8YT09Ynx8aXNOYU4oYSkmJmlzTmFOKGIpPzA6YTxiPy0xOmE+Yj8xOmN6KGlzTmFOKGEpLGlzTmFOKGIpKSk8MH1cbmZ1bmN0aW9uIHRHYihhLGIpe3JldHVybiBaeSgpLFp5KCksYnoocHdlKSwoJHduZC5NYXRoLmFicyhhLWIpPD1wd2V8fGE9PWJ8fGlzTmFOKGEpJiZpc05hTihiKT8wOmE8Yj8tMTphPmI/MTpjeihpc05hTihhKSxpc05hTihiKSkpPD0wfVxuZnVuY3Rpb24gRWZiKGEsYil7dmFyIGM9MDt3aGlsZSghYltjXXx8YltjXT09Jycpe2MrK312YXIgZD1iW2MrK107Zm9yKDtjPGIubGVuZ3RoO2MrKyl7aWYoIWJbY118fGJbY109PScnKXtjb250aW51ZX1kKz1hK2JbY119cmV0dXJuIGR9XG5mdW5jdGlvbiBNTWQoYSl7dmFyIGIsYztiPVJEKFl3ZChhLmEsNCksMTI5KTtpZihiIT1udWxsKXtjPSRDKGQ2LElKZSw0MjQsYi5sZW5ndGgsMCwxKTtoaWIoYiwwLGMsMCxiLmxlbmd0aCk7cmV0dXJuIGN9ZWxzZXtyZXR1cm4gSk1kfX1cbmZ1bmN0aW9uIGtuZShhKXt2YXIgYixjLGQsZSxmO2lmKGE9PW51bGwpcmV0dXJuIG51bGw7Zj1uZXcgYm5iO2ZvcihjPXhBZChhKSxkPTAsZT1jLmxlbmd0aDtkPGU7KytkKXtiPWNbZF07Um1iKGYsbnVlKGIsdHJ1ZSkpfXJldHVybiBmfVxuZnVuY3Rpb24gbm5lKGEpe3ZhciBiLGMsZCxlLGY7aWYoYT09bnVsbClyZXR1cm4gbnVsbDtmPW5ldyBibmI7Zm9yKGM9eEFkKGEpLGQ9MCxlPWMubGVuZ3RoO2Q8ZTsrK2Qpe2I9Y1tkXTtSbWIoZixudWUoYix0cnVlKSl9cmV0dXJuIGZ9XG5mdW5jdGlvbiBvbmUoYSl7dmFyIGIsYyxkLGUsZjtpZihhPT1udWxsKXJldHVybiBudWxsO2Y9bmV3IGJuYjtmb3IoYz14QWQoYSksZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdO1JtYihmLG51ZShiLHRydWUpKX1yZXR1cm4gZn1cbmZ1bmN0aW9uIHZyZChhLGIpe3ZhciBjLGQsZTtpZihhLmMpe0F5ZChhLmMsYil9ZWxzZXtjPWItdHJkKGEpO2ZvcihlPW5ldyBBbmIoYS5hKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTYzKTt2cmQoZCx0cmQoZCkrYyl9fX1cbmZ1bmN0aW9uIHdyZChhLGIpe3ZhciBjLGQsZTtpZihhLmMpe0N5ZChhLmMsYil9ZWxzZXtjPWItdXJkKGEpO2ZvcihlPW5ldyBBbmIoYS5kKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTYzKTt3cmQoZCx1cmQoZCkrYyl9fX1cbmZ1bmN0aW9uIEloYihhLGIsYyl7dmFyIGQsZSxmLGc7Zj1iK2M7QUZiKGIsZixhLmxlbmd0aCk7Zz0nJztmb3IoZT1iO2U8Zjspe2Q9JHduZC5NYXRoLm1pbihlKzEwMDAwLGYpO2crPUVoYihhLnNsaWNlKGUsZCkpO2U9ZH1yZXR1cm4gZ31cbmZ1bmN0aW9uIGpNYihhKXtzd2l0Y2goYS5nKXtjYXNlIDEyOmNhc2UgMTM6Y2FzZSAxNDpjYXNlIDE1OmNhc2UgMTY6Y2FzZSAxNzpjYXNlIDE4OmNhc2UgMTk6Y2FzZSAyMDpyZXR1cm4gdHJ1ZTtkZWZhdWx0OnJldHVybiBmYWxzZTt9fVxuZnVuY3Rpb24gUHRjKCl7UHRjPWdlYjtMdGM9bmV3IFJ0YyhDQmUsMCk7S3RjPW5ldyBSdGMoREJlLDEpO050Yz1uZXcgUnRjKEJCZSwyKTtPdGM9bmV3IFJ0YyhNQWUsMyk7TXRjPW5ldyBSdGMoJ0dSRUVEWV9NT0RFTF9PUkRFUicsNCl9XG5mdW5jdGlvbiBrRWMoKXtrRWM9Z2ViO2hFYz1uZXcgbEVjKExBZSwwKTtnRWM9bmV3IGxFYygnTk9ERVNfQU5EX0VER0VTJywxKTtpRWM9bmV3IGxFYygnUFJFRkVSX0VER0VTJywyKTtqRWM9bmV3IGxFYygnUFJFRkVSX05PREVTJywzKX1cbmZ1bmN0aW9uIG1hZChhLGIsYyxkLGUsZil7dGhpcy5hPWE7dGhpcy5jPWI7dGhpcy5iPWM7dGhpcy5mPWQ7dGhpcy5kPWU7dGhpcy5lPWY7dGhpcy5jPjAmJnRoaXMuYj4wJiYodGhpcy5nPUFhZCh0aGlzLmMsdGhpcy5iLHRoaXMuYSkpfVxuZnVuY3Rpb24gckMoZixhKXt2YXIgYj1mLmE7dmFyIGM7YT1TdHJpbmcoYSk7Yi5oYXNPd25Qcm9wZXJ0eShhKSYmKGM9YlthXSk7dmFyIGQ9KEhDKCksR0MpW3R5cGVvZiBjXTt2YXIgZT1kP2QoYyk6TkModHlwZW9mIGMpO3JldHVybiBlfVxuZnVuY3Rpb24gdURkKGEpe3ZhciBiLGMsZDtkPW51bGw7Yj11SWUgaW4gYS5hO2M9IWI7aWYoYyl7dGhyb3cgQWRiKG5ldyBDRGQoJ0V2ZXJ5IGVsZW1lbnQgbXVzdCBoYXZlIGFuIGlkLicpKX1kPXREZChxQyhhLHVJZSkpO3JldHVybiBkfVxuZnVuY3Rpb24gUXFlKGEpe3ZhciBiLGM7Yz1ScWUoYSk7Yj1udWxsO3doaWxlKGEuYz09Mil7TXFlKGEpO2lmKCFiKXtiPShWc2UoKSxWc2UoKSwrK1VzZSxuZXcgaXVlKDIpKTtodWUoYixjKTtjPWJ9Yy5KbShScWUoYSkpfXJldHVybiBjfVxuZnVuY3Rpb24gak9kKGEsYil7dmFyIGMsZCxlO2EuX2ooKTtkPWI9PW51bGw/MDp0YihiKTtlPShkJmx2ZSklYS5kLmxlbmd0aDtjPVdOZChhLGUsZCxiKTtpZihjKXtoT2QoYSxjKTtyZXR1cm4gYy5tZCgpfWVsc2V7cmV0dXJuIG51bGx9fVxuZnVuY3Rpb24gUWliKGEsYil7aWYoYS5lPmIuZSl7cmV0dXJuIDF9aWYoYS5lPGIuZSl7cmV0dXJuIC0xfWlmKGEuZD5iLmQpe3JldHVybiBhLmV9aWYoYS5kPGIuZCl7cmV0dXJuIC1iLmV9cmV0dXJuIGEuZSpFamIoYS5hLGIuYSxhLmQpfVxuZnVuY3Rpb24gZGZiKGEpe2lmKGE+PTQ4JiZhPDQ4KyR3bmQuTWF0aC5taW4oMTAsMTApKXtyZXR1cm4gYS00OH1pZihhPj05NyYmYTw5Nyl7cmV0dXJuIGEtOTcrMTB9aWYoYT49NjUmJmE8NjUpe3JldHVybiBhLTY1KzEwfXJldHVybiAtMX1cbmZ1bmN0aW9uIFVIYyhhLGIpe2lmKGIuYz09YSl7cmV0dXJuIGIuZH1lbHNlIGlmKGIuZD09YSl7cmV0dXJuIGIuY310aHJvdyBBZGIobmV3IGFnYignSW5wdXQgZWRnZSBpcyBub3QgY29ubmVjdGVkIHRvIHRoZSBpbnB1dCBwb3J0LicpKX1cbmZ1bmN0aW9uIEZhZShhKXtpZihtaGIoRkdlLGEpKXtyZXR1cm4gR2ViKCksRmVifWVsc2UgaWYobWhiKEdHZSxhKSl7cmV0dXJuIEdlYigpLEVlYn1lbHNle3Rocm93IEFkYihuZXcgYWdiKCdFeHBlY3RpbmcgdHJ1ZSBvciBmYWxzZScpKX19XG5mdW5jdGlvbiBqRmIoYSl7c3dpdGNoKHR5cGVvZihhKSl7Y2FzZSBqdmU6cmV0dXJuIG9oYihhKTtjYXNlIGl2ZTpyZXR1cm4gTmZiKGEpO2Nhc2UgaHZlOnJldHVybiBKZWIoYSk7ZGVmYXVsdDpyZXR1cm4gYT09bnVsbD8wOmtGYihhKTt9fVxuZnVuY3Rpb24gbWZkKGEsYil7aWYoYS5hPDApe3Rocm93IEFkYihuZXcgZGdiKCdEaWQgbm90IGNhbGwgYmVmb3JlKC4uLikgb3IgYWZ0ZXIoLi4uKSBiZWZvcmUgY2FsbGluZyBhZGQoLi4uKS4nKSl9dGZkKGEsYS5hLGIpO3JldHVybiBhfVxuZnVuY3Rpb24gRklkKGEpe0VJZCgpO2lmKFpEKGEsMTYyKSl7cmV0dXJuIFJEKFdqYihDSWQsekspLDI5NSkuUmcoYSl9aWYoVWpiKENJZCxyYihhKSkpe3JldHVybiBSRChXamIoQ0lkLHJiKGEpKSwyOTUpLlJnKGEpfXJldHVybiBudWxsfVxuZnVuY3Rpb24gV3dkKGEpe3ZhciBiLGM7aWYoKGEuRGImMzIpPT0wKXtjPShiPVJEKFl3ZChhLDE2KSwyOSksQVlkKCFiP2EuaWkoKTpiKS1BWWQoYS5paSgpKSk7YyE9MCYmJHdkKGEsMzIsJEMoakoscnZlLDEsYyw1LDEpKX1yZXR1cm4gYX1cbmZ1bmN0aW9uICR3ZChhLGIsYyl7dmFyIGQ7aWYoKGEuRGImYikhPTApe2lmKGM9PW51bGwpe1p3ZChhLGIpfWVsc2V7ZD1Yd2QoYSxiKTtkPT0tMT8oYS5FYj1jKTpiRChTRChhLkViKSxkLGMpfX1lbHNlIGMhPW51bGwmJlR3ZChhLGIsYyl9XG5mdW5jdGlvbiB0VGMoYSxiLGMsZCl7dmFyIGUsZjtpZihiLmMubGVuZ3RoPT0wKXtyZXR1cm59ZT1wVGMoYyxkKTtmPW9UYyhiKTtGRGIoUERiKG5ldyBTRGIobnVsbCxuZXcgU3diKGYsMSkpLG5ldyBDVGMpLG5ldyBHVGMoYSxjLGUsZCkpfVxuZnVuY3Rpb24gcm1iKGEsYil7dmFyIGMsZCxlLGY7ZD1hLmEubGVuZ3RoLTE7Yz1iLWEuYiZkO2Y9YS5jLWImZDtlPWEuYy1hLmImZDt6bWIoYzxlKTtpZihjPj1mKXt1bWIoYSxiKTtyZXR1cm4gLTF9ZWxzZXt2bWIoYSxiKTtyZXR1cm4gMX19XG5mdW5jdGlvbiBIdmQoYSl7dmFyIGIsYyxkO2Q9YS5KaCgpO2lmKCFkKXtiPTA7Zm9yKGM9YS5QaCgpO2M7Yz1jLlBoKCkpe2lmKCsrYj53eGUpe3JldHVybiBjLlFoKCl9ZD1jLkpoKCk7aWYoISFkfHxjPT1hKXticmVha319fXJldHVybiBkfVxuZnVuY3Rpb24gVWUoYSxiKXt2YXIgYztpZihkRShiKT09PWRFKGEpKXtyZXR1cm4gdHJ1ZX1pZighWkQoYiwyMSkpe3JldHVybiBmYWxzZX1jPVJEKGIsMjEpO2lmKGMuZ2MoKSE9YS5nYygpKXtyZXR1cm4gZmFsc2V9cmV0dXJuIGEuSWMoYyl9XG5mdW5jdGlvbiBrTmMoYSxiKXtpZihhLmU8Yi5lKXtyZXR1cm4gLTF9ZWxzZSBpZihhLmU+Yi5lKXtyZXR1cm4gMX1lbHNlIGlmKGEuZjxiLmYpe3JldHVybiAtMX1lbHNlIGlmKGEuZj5iLmYpe3JldHVybiAxfXJldHVybiB0YihhKS10YihiKX1cbmZ1bmN0aW9uIG1oYihhLGIpe3VGYihhKTtpZihiPT1udWxsKXtyZXR1cm4gZmFsc2V9aWYobGhiKGEsYikpe3JldHVybiB0cnVlfXJldHVybiBhLmxlbmd0aD09Yi5sZW5ndGgmJmxoYihhLnRvTG93ZXJDYXNlKCksYi50b0xvd2VyQ2FzZSgpKX1cbmZ1bmN0aW9uIEhnYihhKXt2YXIgYixjO2lmKERkYihhLC0xMjkpPjAmJkRkYihhLDEyOCk8MCl7cmV0dXJuIEpnYigpLGI9WWRiKGEpKzEyOCxjPUlnYltiXSwhYyYmKGM9SWdiW2JdPW5ldyB6Z2IoYSkpLGN9cmV0dXJuIG5ldyB6Z2IoYSl9XG5mdW5jdGlvbiBVJGIoKXtVJGI9Z2ViO1QkYj1uZXcgViRiKExBZSwwKTtSJGI9bmV3IFYkYignSU5TSURFX1BPUlRfU0lERV9HUk9VUFMnLDEpO1EkYj1uZXcgViRiKCdHUk9VUF9NT0RFTF9PUkRFUicsMik7UyRiPW5ldyBWJGIoTUFlLDMpfVxuZnVuY3Rpb24gdWZlKGEpe3ZhciBiO2EuYnx8dmZlKGEsKGI9SGVlKGEuZSxhLmEpLCFifHwhbGhiKEdHZSwkTmQoKCFiLmImJihiLmI9bmV3IFNWZCgoSlRkKCksRlRkKSxDOCxiKSksYi5iKSwncXVhbGlmaWVkJykpKSk7cmV0dXJuIGEuY31cbmZ1bmN0aW9uIEJBKGEsYil7dmFyIGMsZDtjPShCRmIoYixhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGIpKTtkPWIrMTt3aGlsZShkPGEubGVuZ3RoJiYoQkZiKGQsYS5sZW5ndGgpLGEuY2hhckNvZGVBdChkKT09YykpeysrZH1yZXR1cm4gZC1ifVxuZnVuY3Rpb24gZEZiKGEsYil7KCFiJiZjb25zb2xlLmdyb3VwQ29sbGFwc2VkIT1udWxsP2NvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ6Y29uc29sZS5ncm91cCE9bnVsbD9jb25zb2xlLmdyb3VwOmNvbnNvbGUubG9nKS5jYWxsKGNvbnNvbGUsYSl9XG5mdW5jdGlvbiBFUWIoYSxiLGMsZCl7ZD09YT8oUkQoYy5iLDY4KSxSRChjLmIsNjgpLFJEKGQuYiw2OCksUkQoZC5iLDY4KS5jLmIpOihSRChjLmIsNjgpLFJEKGMuYiw2OCksUkQoZC5iLDY4KSxSRChkLmIsNjgpLmMuYik7QlFiKGQsYixhKX1cbmZ1bmN0aW9uIHZSYihhKXt2YXIgYixjLGQ7Yj0wO2ZvcihjPW5ldyBBbmIoYS5nKTtjLmE8Yy5jLmMubGVuZ3RoOyl7UkQoeW5iKGMpLDU2OCk7KytifWQ9bmV3IHZRYihhLmcsS2ZiKGEuYSksYS5jKTt2T2IoZCk7YS5nPWQuYjthLmQ9ZC5hfVxuZnVuY3Rpb24gQWRkKGEsYixjKXt2YXIgZCxlLGY7Zm9yKGY9bmV3IEFuYihjLmEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwyMjUpO2Q9bmV3ICRGYihSRChXamIoYS5hLGUuYiksNjgpKTtSbWIoYi5hLGQpO0FkZChhLGQsZSl9fVxuZnVuY3Rpb24gRDRkKGEsYixjKXt2YXIgZCxlLGY7ZD1SRChRSGQobzRkKGEuYSksYiksODkpO2Y9KGU9ZC5jLGU/ZTooSlRkKCksd1RkKSk7KGYuVmgoKT9WdmQoYS5iLFJEKGYsNTQpKTpmKT09Yz9pMmQoZCk6bDJkKGQsYyk7cmV0dXJuIGZ9XG5mdW5jdGlvbiBjcWMoYSxiLGMpe2IuYj0kd25kLk1hdGgubWF4KGIuYiwtYy5hKTtiLmM9JHduZC5NYXRoLm1heChiLmMsYy5hLWEuYSk7Yi5kPSR3bmQuTWF0aC5tYXgoYi5kLC1jLmIpO2IuYT0kd25kLk1hdGgubWF4KGIuYSxjLmItYS5iKX1cbmZ1bmN0aW9uIEpYYihhLGIsYyl7dGhpcy5jPWE7dGhpcy5mPW5ldyBibmI7dGhpcy5lPW5ldyBwamQ7dGhpcy5qPW5ldyBLWWI7dGhpcy5uPW5ldyBLWWI7dGhpcy5iPWI7dGhpcy5nPW5ldyBVaWQoYi5jLGIuZCxiLmIsYi5hKTt0aGlzLmE9Y31cbmZ1bmN0aW9uIGlZYihhKXt2YXIgYixjLGQsZTt0aGlzLmE9bmV3IEl1Yjt0aGlzLmQ9bmV3IF9zYjt0aGlzLmU9MDtmb3IoYz1hLGQ9MCxlPWMubGVuZ3RoO2Q8ZTsrK2Qpe2I9Y1tkXTshdGhpcy5mJiYodGhpcy5mPWIpO2dZYih0aGlzLGIpfX1cbmZ1bmN0aW9uIGRqYihhKXtQaWIoKTtpZihhLmxlbmd0aD09MCl7dGhpcy5lPTA7dGhpcy5kPTE7dGhpcy5hPWNEKFdDKGtFLDEpLFB3ZSwyOCwxNSxbMF0pfWVsc2V7dGhpcy5lPTE7dGhpcy5kPWEubGVuZ3RoO3RoaXMuYT1hO1JpYih0aGlzKX19XG5mdW5jdGlvbiBkTGIoYSxiLGMpe2ZLYi5jYWxsKHRoaXMpO3RoaXMuYT0kQyhJTixNeWUsMjE3LChaSmIoKSxjRChXQyhKTiwxKSxqd2UsMjM3LDAsW1dKYixYSmIsWUpiXSkpLmxlbmd0aCwwLDEpO3RoaXMuYj1hO3RoaXMuZD1iO3RoaXMuYz1jfVxuZnVuY3Rpb24gemZjKGEpe3ZhciBiLGMsZCxlLGYsZztnPVJEKG1RYihhLChZd2MoKSxBd2MpKSwxMik7cFFiKGcsU3djLGEuaS5uLmIpO2I9czJiKGEuZSk7Zm9yKGQ9YixlPTAsZj1kLmxlbmd0aDtlPGY7KytlKXtjPWRbZV07WjBiKGMsZyl9fVxuZnVuY3Rpb24gQWZjKGEpe3ZhciBiLGMsZCxlLGYsZztjPVJEKG1RYihhLChZd2MoKSxBd2MpKSwxMik7cFFiKGMsU3djLGEuaS5uLmIpO2I9czJiKGEuZyk7Zm9yKGU9YixmPTAsZz1lLmxlbmd0aDtmPGc7KytmKXtkPWVbZl07WTBiKGQsYyl9fVxuZnVuY3Rpb24gZFJjKGEsYil7V1FjKCk7dmFyIGMsZDtmb3IoZD1uZXcgaXMoTXIoVzJiKGEpLmEuS2MoKSxuZXcgaXIpKTtncyhkKTspe2M9UkQoaHMoZCksMTgpO2lmKGMuZC5pPT1ifHxjLmMuaT09Yil7cmV0dXJuIGN9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gemVlKGEsYil7dmFyIGMsZDtjPWIucWkoYS5hKTtpZihjKXtkPVdEKCROZCgoIWMuYiYmKGMuYj1uZXcgU1ZkKChKVGQoKSxGVGQpLEM4LGMpKSxjLmIpLEdJZSkpO2lmKGQhPW51bGwpe3JldHVybiBkfX1yZXR1cm4gYi54ZSgpfVxuZnVuY3Rpb24gQWVlKGEsYil7dmFyIGMsZDtjPWIucWkoYS5hKTtpZihjKXtkPVdEKCROZCgoIWMuYiYmKGMuYj1uZXcgU1ZkKChKVGQoKSxGVGQpLEM4LGMpKSxjLmIpLEdJZSkpO2lmKGQhPW51bGwpe3JldHVybiBkfX1yZXR1cm4gYi54ZSgpfVxuZnVuY3Rpb24gQjdiKGEsYil7dmFyIGMsZDtjPWhnYihhLmEuYy5wLGIuYS5jLnApO2lmKGMhPTApe3JldHVybiBjfWQ9aGdiKGEuYS5kLmkucCxiLmEuZC5pLnApO2lmKGQhPTApe3JldHVybiBkfXJldHVybiBoZ2IoYi5hLmQucCxhLmEuZC5wKX1cbmZ1bmN0aW9uIFdqZShhLGIpe3ZhciBjLGQsZSxmO2ZvcihkPTAsZT1iLmdjKCk7ZDxlOysrZCl7Yz1iLlRsKGQpO2lmKFpEKGMsMTAyKSYmKFJEKGMsMTkpLkJiJlFIZSkhPTApe2Y9Yi5VbChkKTtmIT1udWxsJiZSamUoYSxSRChmLDU4KSl9fX1cbmZ1bmN0aW9uIEtTYihhLGIpe3ZhciBjLGQsZTtSbWIoR1NiLGEpO2IuRmMoYSk7Yz1SRChXamIoRlNiLGEpLDIxKTtpZihjKXtmb3IoZT1jLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMjcpO1dtYihHU2IsZCwwKSE9LTF8fEtTYihkLGIpfX19XG5mdW5jdGlvbiBPbWMoYSxiLGMpe3ZhciBkLGU7Qk1jKGEuZSxiLGMsKHFwZCgpLHBwZCkpO0JNYyhhLmksYixjLFhvZCk7aWYoYS5hKXtlPVJEKG1RYihiLChZd2MoKSxBd2MpKSwxMik7ZD1SRChtUWIoYyxBd2MpLDEyKTtDTWMoYS5nLGUsZCl9fVxuZnVuY3Rpb24gbUpjKGEsYixjKXt2YXIgZCxlLGY7ZD1iLmMucDtmPWIucDthLmJbZF1bZl09bmV3IHlKYyhhLGIpO2lmKGMpe2EuYVtkXVtmXT1uZXcgZEpjKGIpO2U9UkQobVFiKGIsKFl3YygpLHB3YykpLDEwKTshIWUmJlJjKGEuZCxlLGIpfX1cbmZ1bmN0aW9uIHpJYyhhLGIsYyl7dmFyIGQsZSxmLGc7Zj1iLmo7Zz1jLmo7aWYoZiE9Zyl7cmV0dXJuIGYuZy1nLmd9ZWxzZXtkPWEuZltiLnBdO2U9YS5mW2MucF07cmV0dXJuIGQ9PTAmJmU9PTA/MDpkPT0wPy0xOmU9PTA/MTpRZmIoZCxlKX19XG5mdW5jdGlvbiBTeigpe3ZhciBhO2lmKE56IT0wKXthPURhdGUubm93KCk7aWYoYS1Pej4yMDAwKXtPej1hO1B6PSR3bmQuc2V0VGltZW91dChZeiwxMCl9fWlmKE56Kys9PTApe196KCgkeigpLFp6KSk7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gbEJiKGEsYixjKXt2YXIgZDsoYkJiPyhqQmIoYSksdHJ1ZSk6Y0JiPyhTQWIoKSx0cnVlKTpmQmI/KFNBYigpLHRydWUpOmVCYiYmKFNBYigpLGZhbHNlKSkmJihkPW5ldyBhQmIoYiksZC5iPWMsaEJiKGEsZCksdW5kZWZpbmVkKX1cbmZ1bmN0aW9uIG9OYihhLGIpe3ZhciBjO2M9IWEuQS5IYygoUXBkKCksUHBkKSl8fGEucT09KEJvZCgpLHdvZCk7YS51LkhjKChQb2QoKSxMb2QpKT9jP21OYihhLGIpOnFOYihhLGIpOmEudS5IYyhOb2QpJiYoYz9uTmIoYSxiKTpyTmIoYSxiKSl9XG5mdW5jdGlvbiBCZWQoYSl7dmFyIGI7aWYoZEUoR3hkKGEsKHVtZCgpLFhrZCkpKT09PWRFKChGbmQoKSxEbmQpKSl7aWYoIXZDZChhKSl7SXhkKGEsWGtkLEVuZCl9ZWxzZXtiPVJEKEd4ZCh2Q2QoYSksWGtkKSwzNDYpO0l4ZChhLFhrZCxiKX19fVxuZnVuY3Rpb24gX2ZjKGEpe3ZhciBiLGM7aWYoblFiKGEuZC5pLCh5Q2MoKSx0QmMpKSl7Yj1SRChtUWIoYS5jLmksdEJjKSwxNyk7Yz1SRChtUWIoYS5kLmksdEJjKSwxNyk7cmV0dXJuIGhnYihiLmEsYy5hKT4wfWVsc2V7cmV0dXJuIGZhbHNlfX1cbmZ1bmN0aW9uIGdfYihhLGIsYyl7cmV0dXJuIG5ldyBVaWQoJHduZC5NYXRoLm1pbihhLmEsYi5hKS1jLzIsJHduZC5NYXRoLm1pbihhLmIsYi5iKS1jLzIsJHduZC5NYXRoLmFicyhhLmEtYi5hKStjLCR3bmQuTWF0aC5hYnMoYS5iLWIuYikrYyl9XG5mdW5jdGlvbiBfbWMoYSl7dmFyIGI7dGhpcy5kPW5ldyBibmI7dGhpcy5qPW5ldyBwamQ7dGhpcy5nPW5ldyBwamQ7Yj1hLmcuYjt0aGlzLmY9UkQobVFiKFkyYihiKSwoeUNjKCksckFjKSksODgpO3RoaXMuZT1LZmIoVUQoazJiKGIsWkJjKSkpfVxuZnVuY3Rpb24gb25jKGEpe3RoaXMuZD1uZXcgYm5iO3RoaXMuZT1uZXcgZ3ViO3RoaXMuYz0kQyhrRSxQd2UsMjgsKHFwZCgpLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtvcGQsWW9kLFhvZCxucGQscHBkXSkpLmxlbmd0aCwxNSwxKTt0aGlzLmI9YX1cbmZ1bmN0aW9uICRwYyhhLGIsYyl7dmFyIGQ7ZD1jW2EuZ11bYl07c3dpdGNoKGEuZyl7Y2FzZSAxOmNhc2UgMzpyZXR1cm4gbmV3IHJqZCgwLGQpO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuIG5ldyByamQoZCwwKTtkZWZhdWx0OnJldHVybiBudWxsO319XG5mdW5jdGlvbiBDZWQoYixjLGQpe3ZhciBlLGY7Zj1SRChsdGQoYy5mKSwyMDUpO3RyeXtmLnJmKGIsZCk7bXRkKGMuZixmKX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDEwMykpe2U9YTt0aHJvdyBBZGIoZSl9ZWxzZSB0aHJvdyBBZGIoYSl9fVxuZnVuY3Rpb24gdEVkKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7ZD1udWxsO2g9dmdkKHlnZCgpLGIpO2Y9bnVsbDtpZihoKXtlPW51bGw7aT16aGQoaCxjKTtnPW51bGw7aSE9bnVsbCYmKGc9YS5xZihoLGkpKTtlPWc7Zj1lfWQ9ZjtyZXR1cm4gZH1cbmZ1bmN0aW9uIHNTZChhLGIsYyxkKXt2YXIgZTtlPWEubGVuZ3RoO2lmKGI+PWUpcmV0dXJuIGU7Zm9yKGI9Yj4wP2I6MDtiPGU7YisrKXtpZih6U2QoKEJGYihiLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoYikpLGMsZCkpYnJlYWt9cmV0dXJuIGJ9XG5mdW5jdGlvbiBhbmIoYSxiKXt2YXIgYyxkO2Q9YS5jLmxlbmd0aDtiLmxlbmd0aDxkJiYoYj1jRmIobmV3IEFycmF5KGQpLGIpKTtmb3IoYz0wO2M8ZDsrK2Mpe2JEKGIsYyxhLmNbY10pfWIubGVuZ3RoPmQmJmJEKGIsZCxudWxsKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGxvYihhLGIpe3ZhciBjLGQ7ZD1hLmEubGVuZ3RoO2IubGVuZ3RoPGQmJihiPWNGYihuZXcgQXJyYXkoZCksYikpO2ZvcihjPTA7YzxkOysrYyl7YkQoYixjLGEuYVtjXSl9Yi5sZW5ndGg+ZCYmYkQoYixkLG51bGwpO3JldHVybiBifVxuZnVuY3Rpb24gQmRlKGEsYil7dmFyIGMsZDsrK2EuajtpZihiIT1udWxsKXtjPShkPWEuYS5DYixaRChkLDk5KT9SRChkLDk5KS50aCgpOm51bGwpO2lmKEpuYihiLGMpKXskd2QoYS5hLDQsYyk7cmV0dXJufX0kd2QoYS5hLDQsUkQoYiwxMjkpKX1cbmZ1bmN0aW9uIG1uZShhKXt2YXIgYjtpZihhPT1udWxsKXJldHVybiBudWxsO2I9SHFlKG51ZShhLHRydWUpKTtpZihiPT1udWxsKXt0aHJvdyBBZGIobmV3IE1sZShcIkludmFsaWQgaGV4QmluYXJ5IHZhbHVlOiAnXCIrYStcIidcIikpfXJldHVybiBifVxuZnVuY3Rpb24gd0EoYSxiLGMpe3ZhciBkO2lmKGIuYS5sZW5ndGg+MCl7Um1iKGEuYixuZXcga0IoYi5hLGMpKTtkPWIuYS5sZW5ndGg7MDxkPyhiLmE9emhiKGIuYSwwLDApKTowPmQmJihiLmErPUhoYigkQyhoRSx6d2UsMjgsLWQsMTUsMSkpKX19XG5mdW5jdGlvbiB5SWIoYSxiLGMpe3ZhciBkLGUsZjtpZihjW2IuZF0pe3JldHVybn1jW2IuZF09dHJ1ZTtmb3IoZT1uZXcgQW5iKENJYihiKSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDIxOCk7Zj1vSWIoZCxiKTt5SWIoYSxmLGMpfX1cbmZ1bmN0aW9uIGR1YihhLGIsYyl7dmFyIGQsZSxmO2U9UkQoV2piKGEuZSxiKSw0MDApO2lmKCFlKXtkPW5ldyB1dWIoYSxiLGMpO1pqYihhLmUsYixkKTtxdWIoZCk7cmV0dXJuIG51bGx9ZWxzZXtmPXFsYihlLGMpO2V1YihhLGUpO3JldHVybiBmfX1cbmZ1bmN0aW9uIHI1ZChhLGIsYyxkKXt2YXIgZSxmLGc7ZT1uZXcgUDNkKGEuZSwxLDEzLChnPWIuYyxnP2c6KEpUZCgpLHdUZCkpLChmPWMuYyxmP2Y6KEpUZCgpLHdUZCkpLGZaZChhLGIpLGZhbHNlKTshZD8oZD1lKTpkLm5qKGUpO3JldHVybiBkfVxuZnVuY3Rpb24gbk1iKCl7aE1iKCk7cmV0dXJuIGNEKFdDKFhOLDEpLGp3ZSwxNjQsMCxbZU1iLGRNYixmTWIsWExiLFdMYixZTGIsX0xiLCRMYixaTGIsY01iLGJNYixhTWIsVUxiLFRMYixWTGIsUkxiLFFMYixTTGIsT0xiLE5MYixQTGIsZ01iXSl9XG5mdW5jdGlvbiBqV2MoYSl7c3dpdGNoKGEuZyl7Y2FzZSA0OnJldHVybiBuZXcgcmpkKDAsLTEpO2Nhc2UgMTpyZXR1cm4gbmV3IHJqZCgxLDApO2Nhc2UgMjpyZXR1cm4gbmV3IHJqZCgtMSwwKTtkZWZhdWx0OnJldHVybiBuZXcgcmpkKDAsMSk7fX1cbmZ1bmN0aW9uIGZfYihhKXtzd2l0Y2goYS5nKXtjYXNlIDE6cmV0dXJuIENtZCgpLEJtZDtjYXNlIDQ6cmV0dXJuIENtZCgpLHltZDtjYXNlIDI6cmV0dXJuIENtZCgpLHptZDtjYXNlIDM6cmV0dXJuIENtZCgpLHhtZDt9cmV0dXJuIENtZCgpLEFtZH1cbmZ1bmN0aW9uIHMkZChhKXt2YXIgYjtiPWEuaGoobnVsbCk7c3dpdGNoKGIpe2Nhc2UgMTA6cmV0dXJuIDA7Y2FzZSAxNTpyZXR1cm4gMTtjYXNlIDE0OnJldHVybiAyO2Nhc2UgMTE6cmV0dXJuIDM7Y2FzZSAyMTpyZXR1cm4gNDt9cmV0dXJuIC0xfVxuZnVuY3Rpb24gWWhkKCl7WWhkPWdlYjtXaGQ9bmV3IFpoZCgnUEFSRU5UUycsMCk7VmhkPW5ldyBaaGQoJ05PREVTJywxKTtUaGQ9bmV3IFpoZCgnRURHRVMnLDIpO1hoZD1uZXcgWmhkKCdQT1JUUycsMyk7VWhkPW5ldyBaaGQoJ0xBQkVMUycsNCl9XG5mdW5jdGlvbiBBQShhLGIsYyl7dmFyIGQ7ZD1jLnEuZ2V0RnVsbFllYXIoKS1Pd2UrT3dlO2Q8MCYmKGQ9LWQpO3N3aXRjaChiKXtjYXNlIDE6YS5hKz1kO2JyZWFrO2Nhc2UgMjpVQShhLGQlMTAwLDIpO2JyZWFrO2RlZmF1bHQ6VUEoYSxkLGIpO319XG5mdW5jdGlvbiBTdWIoYSxiKXt2YXIgYyxkO3dGYihiLGEuYik7aWYoYj49YS5iPj4xKXtkPWEuYztmb3IoYz1hLmI7Yz5iOy0tYyl7ZD1kLmJ9fWVsc2V7ZD1hLmEuYTtmb3IoYz0wO2M8YjsrK2Mpe2Q9ZC5hfX1yZXR1cm4gbmV3IGh2YihhLGIsZCl9XG5mdW5jdGlvbiBESGIoKXtESGI9Z2ViO0NIYj1uZXcgRUhiKCdOVU1fT0ZfRVhURVJOQUxfU0lERVNfVEhBTl9OVU1fT0ZfRVhURU5TSU9OU19MQVNUJywwKTtCSGI9bmV3IEVIYignQ09STkVSX0NBU0VTX1RIQU5fU0lOR0xFX1NJREVfTEFTVCcsMSl9XG5mdW5jdGlvbiB0bmMoYSl7dGhpcy5iPW5ldyBibmI7dGhpcy5lPW5ldyBibmI7dGhpcy5kPWE7dGhpcy5hPSFRRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgVHdiKG5ldyBsNGIoYS5iKSkpLG5ldyBQQWIobmV3IHVuYykpKS5CZCgoeERiKCksd0RiKSl9XG5mdW5jdGlvbiBzc2MoYSxiKXt2YXIgYyxkLGUsZjtjPTA7Zm9yKGU9bmV3IEFuYihiLmEpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxMCk7Zj1kLm8uYStkLmQuYytkLmQuYithLmo7Yz0kd25kLk1hdGgubWF4KGMsZil9cmV0dXJuIGN9XG5mdW5jdGlvbiBPVWMoYSxiKXt2YXIgYyxkLGU7ZT1iLmQuaTtkPWUuaztpZihkPT0ocjNiKCkscDNiKXx8ZD09bDNiKXtyZXR1cm59Yz1uZXcgaXMoTXIoYTNiKGUpLmEuS2MoKSxuZXcgaXIpKTtncyhjKSYmWmpiKGEuayxiLFJEKGhzKGMpLDE4KSl9XG5mdW5jdGlvbiBPMGMoYSxiKXtCMGMoKTtyZXR1cm4gUWZiKChhLmEuYj09MD9uZXcgcmpkKGEuYy5lLmEsYS5jLmUuYik6UkQoUXViKGEuYSksOCkpLmIsKGIuYS5iPT0wP25ldyByamQoYi5jLmUuYSxiLmMuZS5iKTpSRChRdWIoYi5hKSw4KSkuYil9XG5mdW5jdGlvbiBQMGMoYSxiKXtCMGMoKTtyZXR1cm4gUWZiKChhLmEuYj09MD9uZXcgcmpkKGEuYy5lLmEsYS5jLmUuYik6UkQoUXViKGEuYSksOCkpLmEsKGIuYS5iPT0wP25ldyByamQoYi5jLmUuYSxiLmMuZS5iKTpSRChRdWIoYi5hKSw4KSkuYSl9XG5mdW5jdGlvbiBTMGMoYSxiKXtCMGMoKTtyZXR1cm4gUWZiKChhLmEuYj09MD9uZXcgcmpkKGEuYi5lLmEsYS5iLmUuYik6UkQoUnViKGEuYSksOCkpLmEsKGIuYS5iPT0wP25ldyByamQoYi5iLmUuYSxiLmIuZS5iKTpSRChSdWIoYi5hKSw4KSkuYSl9XG5mdW5jdGlvbiBRMGMoYSxiKXtCMGMoKTtyZXR1cm4gUWZiKChhLmEuYj09MD9uZXcgcmpkKGEuYi5lLmEsYS5iLmUuYik6UkQoUnViKGEuYSksOCkpLmIsKGIuYS5iPT0wP25ldyByamQoYi5iLmUuYSxiLmIuZS5iKTpSRChSdWIoYi5hKSw4KSkuYil9XG5mdW5jdGlvbiBwb2QoKXtwb2Q9Z2ViO21vZD1uZXcgcW9kKCdESVNUUklCVVRFRCcsMCk7b29kPW5ldyBxb2QoJ0pVU1RJRklFRCcsMSk7a29kPW5ldyBxb2QoJ0JFR0lOJywyKTtsb2Q9bmV3IHFvZChLeWUsMyk7bm9kPW5ldyBxb2QoJ0VORCcsNCl9XG5mdW5jdGlvbiBLdmQoYSxiKXt2YXIgYyxkLGU7ZD12WWQoYS5EaCgpLGIpO2M9Yi1hLmppKCk7cmV0dXJuIGM8MD8oZT1hLkloKGQpLGU+PTA/YS5XaChlKTpSdmQoYSxkKSk6YzwwP1J2ZChhLGQpOlJEKGQsNjkpLndrKCkuQmsoYSxhLmhpKCksYyl9XG5mdW5jdGlvbiBGeGQoYSl7dmFyIGIsYyxkO2Q9KCFhLm8mJihhLm89bmV3IERWZCgocHZkKCksbXZkKSxYNCxhLDApKSxhLm8pO2ZvcihjPWQuYy5LYygpO2MuZSE9Yy5pLmdjKCk7KXtiPVJEKGMuWWooKSw0NCk7Yi5tZCgpfXJldHVybiBkT2QoZCl9XG5mdW5jdGlvbiBpR2QoYSl7dmFyIGI7aWYoWkQoYS5hLDQpKXtiPUZJZChhLmEpO2lmKGI9PW51bGwpe3Rocm93IEFkYihuZXcgZGdiKEhHZSthLmIrXCInLiBcIitER2UrKGxmYihiNiksYjYuaykrRUdlKSl9cmV0dXJuIGJ9ZWxzZXtyZXR1cm4gYS5hfX1cbmZ1bmN0aW9uIGlTZChhLGIpe3ZhciBjLGQ7aWYoYS5qLmxlbmd0aCE9Yi5qLmxlbmd0aClyZXR1cm4gZmFsc2U7Zm9yKGM9MCxkPWEuai5sZW5ndGg7YzxkO2MrKyl7aWYoIWxoYihhLmpbY10sYi5qW2NdKSlyZXR1cm4gZmFsc2V9cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBiTWQoYil7dmFyIGM7dHJ5e2M9Yi5pLlhiKGIuZSk7Yi5YaigpO2IuZz1iLmUrKztyZXR1cm4gY31jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDc3KSl7Yi5YaigpO3Rocm93IEFkYihuZXcgRHZiKX1lbHNlIHRocm93IEFkYihhKX19XG5mdW5jdGlvbiB4TWQoYil7dmFyIGM7dHJ5e2M9Yi5jLlZpKGIuZSk7Yi5YaigpO2IuZz1iLmUrKztyZXR1cm4gY31jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDc3KSl7Yi5YaigpO3Rocm93IEFkYihuZXcgRHZiKX1lbHNlIHRocm93IEFkYihhKX19XG5mdW5jdGlvbiB2U2QoYSl7dmFyIGIsYyxkLGU7ZT0wO2ZvcihjPTAsZD1hLmxlbmd0aDtjPGQ7YysrKXtiPShCRmIoYyxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGMpKTtiPj02NCYmYjwxMjgmJihlPVJkYihlLFNkYigxLGItNjQpKSl9cmV0dXJuIGV9XG5mdW5jdGlvbiBrMmIoYSxiKXt2YXIgYyxkO2Q9bnVsbDtpZihuUWIoYSwodW1kKCksYW1kKSkpe2M9UkQobVFiKGEsYW1kKSw5Nik7Yy5wZihiKSYmKGQ9Yy5vZihiKSl9ZD09bnVsbCYmISFZMmIoYSkmJihkPW1RYihZMmIoYSksYikpO3JldHVybiBkfVxuZnVuY3Rpb24gaTBiKGEsYil7dmFyIGM7Yz1SRChtUWIoYSwoeUNjKCksUkFjKSksNzUpO2lmKGJyKGIsZjBiKSl7aWYoIWMpe2M9bmV3IEVqZDtwUWIoYSxSQWMsYyl9ZWxzZXtYdWIoYyl9fWVsc2UgISFjJiZwUWIoYSxSQWMsbnVsbCk7cmV0dXJuIGN9XG5mdW5jdGlvbiB0U2IoKXt0U2I9Z2ViO3NTYj0odW1kKCksWWxkKTttU2I9VWtkO2hTYj1Ea2Q7blNiPXRsZDtxU2I9KFlIYigpLFVIYik7cFNiPVNIYjtyU2I9V0hiO29TYj1SSGI7alNiPShlU2IoKSxhU2IpO2lTYj1fUmI7a1NiPWNTYjtsU2I9ZFNifVxuZnVuY3Rpb24gUFpiKGEpe05aYigpO3RoaXMuYz1uZXcgYm5iO3RoaXMuZD1hO3N3aXRjaChhLmcpe2Nhc2UgMDpjYXNlIDI6dGhpcy5hPUZvYihNWmIpO3RoaXMuYj1veGU7YnJlYWs7Y2FzZSAzOmNhc2UgMTp0aGlzLmE9TVpiO3RoaXMuYj1weGU7fX1cbmZ1bmN0aW9uIGM5YihhKXt2YXIgYjtpZighQ29kKFJEKG1RYihhLCh5Q2MoKSxCQmMpKSwxMDEpKSl7cmV0dXJufWI9YS5iO2Q5YigodEZiKDAsYi5jLmxlbmd0aCksUkQoYi5jWzBdLDMwKSkpO2Q5YihSRChWbWIoYixiLmMubGVuZ3RoLTEpLDMwKSl9XG5mdW5jdGlvbiBvaGMoYSxiKXtiLlVnKCdTZWxmLUxvb3AgcG9zdC1wcm9jZXNzaW5nJywxKTtGRGIoQ0RiKENEYihFRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5iLDE2KSksbmV3IHVoYyksbmV3IHdoYyksbmV3IHloYyksbmV3IEFoYyk7Yi5WZygpfVxuZnVuY3Rpb24geHJkKGEsYixjKXt2YXIgZCxlO2lmKGEuYyl7RHlkKGEuYyxhLmMuaStiKTtFeWQoYS5jLGEuYy5qK2MpfWVsc2V7Zm9yKGU9bmV3IEFuYihhLmIpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxNjMpO3hyZChkLGIsYyl9fX1cbmZ1bmN0aW9uIGluZShhKXt2YXIgYjtpZihhPT1udWxsKXJldHVybiBudWxsO2I9QXFlKG51ZShhLHRydWUpKTtpZihiPT1udWxsKXt0aHJvdyBBZGIobmV3IE1sZShcIkludmFsaWQgYmFzZTY0QmluYXJ5IHZhbHVlOiAnXCIrYStcIidcIikpfXJldHVybiBifVxuZnVuY3Rpb24ganUoYixjKXt2YXIgZDtkPWIuZmQoYyk7dHJ5e3JldHVybiBkLlBiKCl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwxMTIpKXt0aHJvdyBBZGIobmV3IHZlYihcIkNhbid0IGdldCBlbGVtZW50IFwiK2MpKX1lbHNlIHRocm93IEFkYihhKX19XG5mdW5jdGlvbiBBTmIoYSxiKXt2YXIgYyxkLGU7Yz1hLm87Zm9yKGU9UkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSwxMTcpO2QuZS5hPXVOYihkLGMuYSk7ZC5lLmI9Yy5iKktmYihVRChkLmIub2Yoc05iKSkpfX1cbmZ1bmN0aW9uIGtkYyhhLGIpe3ZhciBjLGQsZTtlPW5ldyBjbmIoYi5nYygpKTtmb3IoZD1iLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMjkzKTtjLmM9PWMuZj9fY2MoYSxjLGMuYyk6YWRjKGEsYyl8fChaRWIoZS5jLGMpLHRydWUpfXJldHVybiBlfVxuZnVuY3Rpb24gaTNiKGEpe3ZhciBiO2I9bmV3IGJpYjtiLmErPSduJzthLmshPShyM2IoKSxwM2IpJiZaaGIoWmhiKChiLmErPScoJyxiKSxwcyhhLmspLnRvTG93ZXJDYXNlKCkpLCcpJyk7WmhiKChiLmErPSdfJyxiKSxYMmIoYSkpO3JldHVybiBiLmF9XG5mdW5jdGlvbiBoOWIoYSxiKXt2YXIgYyxkLGUsZjtlPWEuaztjPUtmYihVRChtUWIoYSwoWXdjKCksSndjKSkpKTtmPWIuaztkPUtmYihVRChtUWIoYixKd2MpKSk7cmV0dXJuIGYhPShyM2IoKSxtM2IpPy0xOmUhPW0zYj8xOmM9PWQ/MDpjPGQ/LTE6MX1cbmZ1bmN0aW9uIExhZChhLGIpe3ZhciBjLGQ7Yz1SRChSRChXamIoYS5nLGIuYSksNDIpLmEsNjgpO2Q9UkQoUkQoV2piKGEuZyxiLmIpLDQyKS5hLDY4KTtyZXR1cm4gYmpkKGIuYSxiLmIpLWJqZChiLmEsUGlkKGMuYikpLWJqZChiLmIsUGlkKGQuYikpfVxuZnVuY3Rpb24gR01iKGEsYil7dmFyIGM7Yz1SRChWcmIoYS5iLGIpLDEyNykubjtzd2l0Y2goYi5nKXtjYXNlIDE6YS50Pj0wJiYoYy5kPWEudCk7YnJlYWs7Y2FzZSAzOmEudD49MCYmKGMuYT1hLnQpO31pZihhLkMpe2MuYj1hLkMuYjtjLmM9YS5DLmN9fVxuZnVuY3Rpb24gSkRjKCl7SkRjPWdlYjtJRGM9bmV3IExEYyhtRWUsMCk7RkRjPW5ldyBMRGMoQkJlLDEpO0dEYz1uZXcgTERjKCdMSU5FQVJfU0VHTUVOVFMnLDIpO0VEYz1uZXcgTERjKCdCUkFOREVTX0tPRVBGJywzKTtIRGM9bmV3IExEYyhsRWUsNCl9XG5mdW5jdGlvbiBJUmIoKXtJUmI9Z2ViO0ZSYj1uZXcgSlJiKF95ZSwwKTtFUmI9bmV3IEpSYihhemUsMSk7R1JiPW5ldyBKUmIoYnplLDIpO0hSYj1uZXcgSlJiKGN6ZSwzKTtGUmIuYT1mYWxzZTtFUmIuYT10cnVlO0dSYi5hPWZhbHNlO0hSYi5hPXRydWV9XG5mdW5jdGlvbiBJUGIoKXtJUGI9Z2ViO0ZQYj1uZXcgSlBiKF95ZSwwKTtFUGI9bmV3IEpQYihhemUsMSk7R1BiPW5ldyBKUGIoYnplLDIpO0hQYj1uZXcgSlBiKGN6ZSwzKTtGUGIuYT1mYWxzZTtFUGIuYT10cnVlO0dQYi5hPWZhbHNlO0hQYi5hPXRydWV9XG5mdW5jdGlvbiBJdmQoYSxiLGMsZCl7dmFyIGU7aWYoYz49MCl7cmV0dXJuIGEuU2goYixjLGQpfWVsc2V7ISFhLlBoKCkmJihkPShlPWEuRmgoKSxlPj0wP2EuQWgoZCk6YS5QaCgpLlRoKGEsLTEtZSxudWxsLGQpKSk7cmV0dXJuIGEuQ2goYixjLGQpfX1cbmZ1bmN0aW9uIFp5ZChhLGIpe3N3aXRjaChiKXtjYXNlIDc6IWEuZSYmKGEuZT1uZXcgWWllKEc0LGEsNyw0KSk7c0xkKGEuZSk7cmV0dXJuO2Nhc2UgODohYS5kJiYoYS5kPW5ldyBZaWUoRzQsYSw4LDUpKTtzTGQoYS5kKTtyZXR1cm47fXl5ZChhLGIpfVxuZnVuY3Rpb24gSXhkKGEsYixjKXtjPT1udWxsPyghYS5vJiYoYS5vPW5ldyBEVmQoKHB2ZCgpLG12ZCksWDQsYSwwKSksak9kKGEubyxiKSk6KCFhLm8mJihhLm89bmV3IERWZCgocHZkKCksbXZkKSxYNCxhLDApKSxmT2QoYS5vLGIsYykpO3JldHVybiBhfVxuZnVuY3Rpb24gQW9iKGEsYil7eW9iKCk7dmFyIGMsZCxlLGY7Yz1hO2Y9YjtpZihaRChhLDIxKSYmIVpEKGIsMjEpKXtjPWI7Zj1hfWZvcihlPWMuS2MoKTtlLk9iKCk7KXtkPWUuUGIoKTtpZihmLkhjKGQpKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfVxuZnVuY3Rpb24gcVRjKGEsYixjLGQpe2lmKGIuYTxkLmEpe3JldHVybiB0cnVlfWVsc2UgaWYoYi5hPT1kLmEpe2lmKGIuYjxkLmIpe3JldHVybiB0cnVlfWVsc2UgaWYoYi5iPT1kLmIpe2lmKGEuYj5jLmIpe3JldHVybiB0cnVlfX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gUUQoYSxiKXtpZihiRShhKSl7cmV0dXJuICEhUERbYl19ZWxzZSBpZihhLlNtKXtyZXR1cm4gISFhLlNtW2JdfWVsc2UgaWYoX0QoYSkpe3JldHVybiAhIU9EW2JdfWVsc2UgaWYoJEQoYSkpe3JldHVybiAhIU5EW2JdfXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIHVkYyhhKXt2YXIgYjtiPWEuYTtkb3tiPVJEKGhzKG5ldyBpcyhNcihaMmIoYikuYS5LYygpLG5ldyBpcikpKSwxOCkuYy5pO2Iuaz09KHIzYigpLG8zYikmJmEuYi5GYyhiKX13aGlsZShiLms9PShyM2IoKSxvM2IpKTthLmI9aHYoYS5iKX1cbmZ1bmN0aW9uIFVHYyhhLGIpe3ZhciBjLGQsZTtlPWE7Zm9yKGQ9bmV3IGlzKE1yKFoyYihiKS5hLktjKCksbmV3IGlyKSk7Z3MoZCk7KXtjPVJEKGhzKGQpLDE4KTshIWMuYy5pLmMmJihlPSR3bmQuTWF0aC5tYXgoZSxjLmMuaS5jLnApKX1yZXR1cm4gZX1cbmZ1bmN0aW9uIElOYihhLGIpe3ZhciBjLGQsZTtlPTA7ZD1SRChSRChRYyhhLnIsYiksMjEpLDg3KS5LYygpO3doaWxlKGQuT2IoKSl7Yz1SRChkLlBiKCksMTE3KTtlKz1jLmQuZCtjLmIuTWYoKS5iK2MuZC5hO2QuT2IoKSYmKGUrPWEudyl9cmV0dXJuIGV9XG5mdW5jdGlvbiBBTWIoYSxiKXt2YXIgYyxkLGU7ZT0wO2Q9UkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuS2MoKTt3aGlsZShkLk9iKCkpe2M9UkQoZC5QYigpLDExNyk7ZSs9Yy5kLmIrYy5iLk1mKCkuYStjLmQuYztkLk9iKCkmJihlKz1hLncpfXJldHVybiBlfVxuZnVuY3Rpb24gTzJjKGEpe3ZhciBiLGMsZCxlO2Q9MDtlPVEyYyhhKTtpZihlLmMubGVuZ3RoPT0wKXtyZXR1cm4gMX1lbHNle2ZvcihjPW5ldyBBbmIoZSk7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDI3KTtkKz1PMmMoYil9fXJldHVybiBkfVxuZnVuY3Rpb24gYUljKGEpe3ZhciBiLGMsZDtkPWEuYy5hO2EucD0oUWIoZCksbmV3IGRuYihkKSk7Zm9yKGM9bmV3IEFuYihkKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMTApO2IucD1lSWMoYikuYX15b2IoKTtfbWIoYS5wLG5ldyBuSWMpfVxuZnVuY3Rpb24gVUpkKGEsYixjKXt2YXIgZCxlLGYsZztkPWEuZGQoYik7aWYoZCE9LTEpe2lmKGEuUGooKSl7Zj1hLlFqKCk7Zz1jSmQoYSxkKTtlPWEuSWooNCxnLG51bGwsZCxmKTshYz8oYz1lKTpjLm5qKGUpfWVsc2V7Y0pkKGEsZCl9fXJldHVybiBjfVxuZnVuY3Rpb24gckxkKGEsYixjKXt2YXIgZCxlLGYsZztkPWEuZGQoYik7aWYoZCE9LTEpe2lmKGEuUGooKSl7Zj1hLlFqKCk7Zz1USGQoYSxkKTtlPWEuSWooNCxnLG51bGwsZCxmKTshYz8oYz1lKTpjLm5qKGUpfWVsc2V7VEhkKGEsZCl9fXJldHVybiBjfVxuZnVuY3Rpb24gVGplKGEsYixjLGQpe3ZhciBlLGYsZztpZihjLlhoKGIpKXtua2UoKTtpZih3V2QoYikpe2U9UkQoYy5NaChiKSwxNjApO1dqZShhLGUpfWVsc2V7Zj0oZz1iLCFnP251bGw6UkQoZCw1NCkuZ2koZykpOyEhZiYmVWplKGMuTWgoYiksZil9fX1cbmZ1bmN0aW9uIER2ZChhLGIsYyxkKXt2YXIgZSxmLGc7Zj12WWQoYS5EaCgpLGIpO2U9Yi1hLmppKCk7cmV0dXJuIGU8MD8oZz1hLkloKGYpLGc+PTA/YS5MaChnLGMsdHJ1ZSk6UXZkKGEsZixjKSk6UkQoZiw2OSkud2soKS55ayhhLGEuaGkoKSxlLGMsZCl9XG5mdW5jdGlvbiBhTmIoYSxiLGMsZCl7dmFyIGUsZjtmPWIucGYoKHVtZCgpLGlsZCkpP1JEKGIub2YoaWxkKSwyMSk6YS5qO2U9bE1iKGYpO2lmKGU9PShoTWIoKSxnTWIpKXtyZXR1cm59aWYoYyYmIWpNYihlKSl7cmV0dXJufUxLYihjTmIoYSxlLGQpLGIpfVxuZnVuY3Rpb24gWTZiKGEpe3N3aXRjaChhLmcpe2Nhc2UgMTpyZXR1cm4gbU9iKCksbE9iO2Nhc2UgMzpyZXR1cm4gbU9iKCksaU9iO2Nhc2UgMjpyZXR1cm4gbU9iKCksa09iO2Nhc2UgNDpyZXR1cm4gbU9iKCksak9iO2RlZmF1bHQ6cmV0dXJuIG51bGw7fX1cbmZ1bmN0aW9uIGttYyhhLGIsYyl7aWYoYS5lKXtzd2l0Y2goYS5iKXtjYXNlIDE6VWxjKGEuYyxiLGMpO2JyZWFrO2Nhc2UgMDpWbGMoYS5jLGIsYyk7fX1lbHNle1NsYyhhLmMsYixjKX1hLmFbYi5wXVtjLnBdPWEuYy5pO2EuYVtjLnBdW2IucF09YS5jLmV9XG5mdW5jdGlvbiBMTGMoYSl7dmFyIGIsYztpZihhPT1udWxsKXtyZXR1cm4gbnVsbH1jPSRDKGpSLE52ZSwxOTksYS5sZW5ndGgsMCwyKTtmb3IoYj0wO2I8Yy5sZW5ndGg7YisrKXtjW2JdPVJEKEduYihhW2JdLGFbYl0ubGVuZ3RoKSwxOTkpfXJldHVybiBjfVxuZnVuY3Rpb24gRGhlKGEpe3ZhciBiO2lmKEJoZShhKSl7QWhlKGEpO2lmKGEudWwoKSl7Yj1CZ2UoYS5lLGEuYixhLmMsYS5hLGEuaik7YS5qPWJ9YS5nPWEuYTsrK2EuYTsrK2EuYzthLmk9MDtyZXR1cm4gYS5qfWVsc2V7dGhyb3cgQWRiKG5ldyBEdmIpfX1cbmZ1bmN0aW9uIFlPYihhLGIpe3ZhciBjLGQsZSxmO2Y9YS5vO2M9YS5wO2Y8Yz8oZio9Zik6KGMqPWMpO2Q9ZitjO2Y9Yi5vO2M9Yi5wO2Y8Yz8oZio9Zik6KGMqPWMpO2U9ZitjO2lmKGQ8ZSl7cmV0dXJuIC0xfWlmKGQ9PWUpe3JldHVybiAwfXJldHVybiAxfVxuZnVuY3Rpb24gZlpkKGEsYil7dmFyIGMsZCxlO2U9UkhkKGEsYik7aWYoZT49MClyZXR1cm4gZTtpZihhLm9sKCkpe2ZvcihkPTA7ZDxhLmk7KytkKXtjPWEucGwoUkQoYS5nW2RdLDU4KSk7aWYoZEUoYyk9PT1kRShiKSl7cmV0dXJuIGR9fX1yZXR1cm4gLTF9XG5mdW5jdGlvbiBlSGQoYSxiLGMpe3ZhciBkLGU7ZT1hLmdjKCk7aWYoYj49ZSl0aHJvdyBBZGIobmV3IGFNZChiLGUpKTtpZihhLlNpKCkpe2Q9YS5kZChjKTtpZihkPj0wJiZkIT1iKXt0aHJvdyBBZGIobmV3IGFnYihMSWUpKX19cmV0dXJuIGEuWGkoYixjKX1cbmZ1bmN0aW9uIHd4KGEsYil7dGhpcy5hPVJEKFFiKGEpLDI1Myk7dGhpcy5iPVJEKFFiKGIpLDI1Myk7aWYoYS5FZChiKT4wfHxhPT0oV2soKSxWayl8fGI9PShrbCgpLGpsKSl7dGhyb3cgQWRiKG5ldyBhZ2IoJ0ludmFsaWQgcmFuZ2U6ICcrRHgoYSxiKSkpfX1cbmZ1bmN0aW9uIHBfYihhKXt2YXIgYixjO3RoaXMuYj1uZXcgYm5iO3RoaXMuYz1hO3RoaXMuYT1mYWxzZTtmb3IoYz1uZXcgQW5iKGEuYSk7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDEwKTt0aGlzLmE9dGhpcy5hfGIuaz09KHIzYigpLHAzYil9fVxuZnVuY3Rpb24geEliKGEsYil7dmFyIGMsZCxlO2M9ZUpiKG5ldyBnSmIsYSk7Zm9yKGU9bmV3IEFuYihiKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTI1KTtySWIodUliKHRJYih2SWIoc0liKG5ldyB3SWIsMCksMCksYyksZCkpfXJldHVybiBjfVxuZnVuY3Rpb24geTBiKGEsYixjKXtjLlVnKCdDb21wb3VuZCBncmFwaCBwcmVwcm9jZXNzb3InLDEpO2EuYT1uZXcgVHA7RDBiKGEsYixudWxsKTt4MGIoYSxiKTtDMGIoYSk7cFFiKGIsKFl3YygpLF92YyksYS5hKTthLmE9bnVsbDtha2IoYS5iKTtjLlZnKCl9XG5mdW5jdGlvbiBhZWMoYSxiLGMpe3ZhciBkLGUsZjtmb3IoZT1uZXcgaXMoTXIoKGI/WjJiKGEpOmEzYihhKSkuYS5LYygpLG5ldyBpcikpO2dzKGUpOyl7ZD1SRChocyhlKSwxOCk7Zj1iP2QuYy5pOmQuZC5pO2Yuaz09KHIzYigpLG4zYikmJmczYihmLGMpfX1cbmZ1bmN0aW9uIEZaYyhhLGIpe3ZhciBjLGQsZTtiLlVnKCdVbnRyZWVpZnknLDEpO2M9UkQobVFiKGEsKHEkYygpLGskYykpLDE1KTtmb3IoZT1jLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksNjUpO011YihkLmIuZCxkKTtNdWIoZC5jLmIsZCl9Yi5WZygpfVxuZnVuY3Rpb24gWm5jKGEpe3ZhciBiLGMsZDtmb3IoZD1SRChRYyhhLmEsKEJuYygpLHpuYykpLDE1KS5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDEwNSk7Yj1mb2MoYyk7UW5jKGEsYyxiWzBdLChqb2MoKSxnb2MpLDApO1FuYyhhLGMsYlsxXSxpb2MsMSl9fVxuZnVuY3Rpb24gJG5jKGEpe3ZhciBiLGMsZDtmb3IoZD1SRChRYyhhLmEsKEJuYygpLEFuYykpLDE1KS5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDEwNSk7Yj1mb2MoYyk7UW5jKGEsYyxiWzBdLChqb2MoKSxnb2MpLDApO1FuYyhhLGMsYlsxXSxpb2MsMSl9fVxuZnVuY3Rpb24gd0RjKCl7d0RjPWdlYjt1RGM9bmV3IHlEYyhMQWUsMCk7dkRjPW5ldyB5RGMoJ1BPUlRfUE9TSVRJT04nLDEpO3REYz1uZXcgeURjKCdOT0RFX1NJWkVfV0hFUkVfU1BBQ0VfUEVSTUlUUycsMik7c0RjPW5ldyB5RGMoJ05PREVfU0laRScsMyl9XG5mdW5jdGlvbiB6NmMoKXt6NmM9Z2ViO3c2Yz1uZXcgQTZjKCdJTlRFUkFDVElWRV9OT0RFX1JFT1JERVJFUicsMCk7eTZjPW5ldyBBNmMoJ01JTl9TSVpFX1BSRV9QUk9DRVNTT1InLDEpO3g2Yz1uZXcgQTZjKCdNSU5fU0laRV9QT1NUX1BST0NFU1NPUicsMil9XG5mdW5jdGlvbiBSamQoKXtSamQ9Z2ViO0xqZD1uZXcgU2pkKCdBVVRPTUFUSUMnLDApO09qZD1uZXcgU2pkKE55ZSwxKTtQamQ9bmV3IFNqZChPeWUsMik7UWpkPW5ldyBTamQoJ1RPUCcsMyk7TWpkPW5ldyBTamQoUXllLDQpO05qZD1uZXcgU2pkKEt5ZSw1KX1cbmZ1bmN0aW9uIFBqYihhLGIsYyxkKXtMamIoKTt2YXIgZSxmO2U9MDtmb3IoZj0wO2Y8YztmKyspe2U9QmRiKE5kYihDZGIoYltmXSx5eGUpLENkYihkLHl4ZSkpLENkYihZZGIoZSkseXhlKSk7YVtmXT1ZZGIoZSk7ZT1VZGIoZSwzMil9cmV0dXJuIFlkYihlKX1cbmZ1bmN0aW9uIHFLYihhLGIsYyl7dmFyIGQsZTtlPTA7Zm9yKGQ9MDtkPGlLYjtkKyspe2U9JHduZC5NYXRoLm1heChlLGdLYihhLmFbYi5nXVtkXSxjKSl9Yj09KFpKYigpLFhKYikmJiEhYS5iJiYoZT0kd25kLk1hdGgubWF4KGUsYS5iLmIpKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIEp3YihhLGIpe3ZhciBjLGQ7bEZiKGI+MCk7aWYoKGImLWIpPT1iKXtyZXR1cm4gZUUoYipLd2IoYSwzMSkqNC42NTY2MTI4NzMwNzczOTI2RS0xMCl9ZG97Yz1Ld2IoYSwzMSk7ZD1jJWJ9d2hpbGUoYy1kKyhiLTEpPDApO3JldHVybiBlRShkKX1cbmZ1bmN0aW9uIGQyYihhLGIsYyl7c3dpdGNoKGMuZyl7Y2FzZSAxOmEuYT1iLmEvMjthLmI9MDticmVhaztjYXNlIDI6YS5hPWIuYTthLmI9Yi5iLzI7YnJlYWs7Y2FzZSAzOmEuYT1iLmEvMjthLmI9Yi5iO2JyZWFrO2Nhc2UgNDphLmE9MDthLmI9Yi5iLzI7fX1cbmZ1bmN0aW9uIE9uYyhhLGIsYyxkKXt2YXIgZSxmO2ZvcihlPWI7ZTxhLmMubGVuZ3RoO2UrKyl7Zj0odEZiKGUsYS5jLmxlbmd0aCksUkQoYS5jW2VdLDEyKSk7aWYoYy5NYihmKSl7WkViKGQuYyxmKX1lbHNle3JldHVybiBlfX1yZXR1cm4gYS5jLmxlbmd0aH1cbmZ1bmN0aW9uIHU1YyhhKXtzd2l0Y2goYS5nKXtjYXNlIDA6cmV0dXJuIG51bGw7Y2FzZSAxOnJldHVybiBuZXcgXzVjO2Nhc2UgMjpyZXR1cm4gbmV3IFI1YztkZWZhdWx0OnRocm93IEFkYihuZXcgYWdiKG1GZSsoYS5mIT1udWxsP2EuZjonJythLmcpKSk7fX1cbmZ1bmN0aW9uIFU5YyhhLGIsYyl7dmFyIGQsZTtMOWMoYSxiLWEucyxjLWEudCk7Zm9yKGU9bmV3IEFuYihhLm4pO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwyMDkpO1k5YyhkLGQuZStiLWEucyk7WjljKGQsZC5mK2MtYS50KX1hLnM9YjthLnQ9Y31cbmZ1bmN0aW9uIEFJYihhKXt2YXIgYixjLGQsZSxmO2M9MDtmb3IoZT1uZXcgQW5iKGEuYSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDEyNSk7ZC5kPWMrK31iPXpJYihhKTtmPW51bGw7Yi5jLmxlbmd0aD4xJiYoZj14SWIoYSxiKSk7cmV0dXJuIGZ9XG5mdW5jdGlvbiB5cWQoYSl7dmFyIGI7Yj1LZmIoVUQoR3hkKGEsKHVtZCgpLGxtZCkpKSkqJHduZC5NYXRoLnNxcnQoKCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKS5pKTtyZXR1cm4gbmV3IHJqZChiLGIvS2ZiKFVEKEd4ZChhLGttZCkpKSl9XG5mdW5jdGlvbiBEemQoYSl7dmFyIGI7aWYoISFhLmYmJmEuZi5WaCgpKXtiPVJEKGEuZiw1NCk7YS5mPVJEKFZ2ZChhLGIpLDg0KTthLmYhPWImJihhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDksOCxiLGEuZikpfXJldHVybiBhLmZ9XG5mdW5jdGlvbiBFemQoYSl7dmFyIGI7aWYoISFhLmkmJmEuaS5WaCgpKXtiPVJEKGEuaSw1NCk7YS5pPVJEKFZ2ZChhLGIpLDg0KTthLmkhPWImJihhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDksNyxiLGEuaSkpfXJldHVybiBhLml9XG5mdW5jdGlvbiBaNWQoYSl7dmFyIGI7aWYoISFhLmImJihhLmIuRGImNjQpIT0wKXtiPWEuYjthLmI9UkQoVnZkKGEsYiksMTkpO2EuYiE9YiYmKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsOSwyMSxiLGEuYikpfXJldHVybiBhLmJ9XG5mdW5jdGlvbiBVTmQoYSxiKXt2YXIgYyxkLGU7aWYoYS5kPT1udWxsKXsrK2EuZTsrK2EuZn1lbHNle2Q9Yi5CaSgpO19OZChhLGEuZisxKTtlPShkJmx2ZSklYS5kLmxlbmd0aDtjPWEuZFtlXTshYyYmKGM9YS5kW2VdPWEuZGsoKSk7Yy5GYyhiKTsrK2EuZn19XG5mdW5jdGlvbiBNZ2UoYSxiLGMpe3ZhciBkO2lmKGIudGsoKSl7cmV0dXJuIGZhbHNlfWVsc2UgaWYoYi5JaygpIT0tMil7ZD1iLmlrKCk7cmV0dXJuIGQ9PW51bGw/Yz09bnVsbDpwYihkLGMpfWVsc2UgcmV0dXJuIGIucWsoKT09YS5lLkRoKCkmJmM9PW51bGx9XG5mdW5jdGlvbiBJbygpe3ZhciBhO2RrKDE2LGZ3ZSk7YT1XcCgxNik7dGhpcy5iPSRDKFhGLGV3ZSwzMDMsYSwwLDEpO3RoaXMuYz0kQyhYRixld2UsMzAzLGEsMCwxKTt0aGlzLmE9bnVsbDt0aGlzLmU9bnVsbDt0aGlzLmk9MDt0aGlzLmY9YS0xO3RoaXMuZz0wfVxuZnVuY3Rpb24gajNiKGEpe3YyYi5jYWxsKHRoaXMpO3RoaXMuaz0ocjNiKCkscDNiKTt0aGlzLmo9KGRrKDYsaXdlKSxuZXcgY25iKDYpKTt0aGlzLmI9KGRrKDIsaXdlKSxuZXcgY25iKDIpKTt0aGlzLmQ9bmV3IFQyYjt0aGlzLmY9bmV3IEMzYjt0aGlzLmE9YX1cbmZ1bmN0aW9uIHdnYyhhKXt2YXIgYixjO2lmKGEuYy5sZW5ndGg8PTEpe3JldHVybn1iPXRnYyhhLChxcGQoKSxucGQpKTt2Z2MoYSxSRChiLmEsMTcpLmEsUkQoYi5iLDE3KS5hKTtjPXRnYyhhLHBwZCk7dmdjKGEsUkQoYy5hLDE3KS5hLFJEKGMuYiwxNykuYSl9XG5mdW5jdGlvbiB2SGMoYSxiLGMpe3ZhciBkLGU7ZT1hLmEuYjtmb3IoZD1lLmMubGVuZ3RoO2Q8YztkKyspe1FtYihlLGUuYy5sZW5ndGgsbmV3IFI0YihhLmEpKX1nM2IoYiwodEZiKGMtMSxlLmMubGVuZ3RoKSxSRChlLmNbYy0xXSwzMCkpKTthLmJbYi5wXT1jfVxuZnVuY3Rpb24gS19jKGEsYil7dmFyIGMsZCxlO2EuYltiLmddPTE7Zm9yKGQ9U3ViKGIuZCwwKTtkLmIhPWQuZC5jOyl7Yz1SRChldmIoZCksNjUpO2U9Yy5jO2EuYltlLmddPT0xP011YihhLmEsYyk6YS5iW2UuZ109PTI/KGEuYltlLmddPTEpOktfYyhhLGUpfX1cbmZ1bmN0aW9uIHUzYyhhLGIsYyxkKXt2YXIgZSxmLGc7ZT1kP1JEKFFjKGEuYSxiKSwyMSk6UkQoUWMoYS5iLGIpLDIxKTtmb3IoZz1lLktjKCk7Zy5PYigpOyl7Zj1SRChnLlBiKCksMjcpO2lmKG8zYyhhLGMsZikpe3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBkJGQoYSl7dmFyIGIsYztmb3IoYz1uZXcgZE1kKGEpO2MuZSE9Yy5pLmdjKCk7KXtiPVJEKGJNZChjKSw4OSk7aWYoISFiLmV8fCghYi5kJiYoYi5kPW5ldyBYWmQobzcsYiwxKSksYi5kKS5pIT0wKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gbzVkKGEpe3ZhciBiLGM7Zm9yKGM9bmV3IGRNZChhKTtjLmUhPWMuaS5nYygpOyl7Yj1SRChiTWQoYyksODkpO2lmKCEhYi5lfHwoIWIuZCYmKGIuZD1uZXcgWFpkKG83LGIsMSkpLGIuZCkuaSE9MCl7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIGRJYyhhKXt2YXIgYixjLGQ7Yj0wO2ZvcihkPW5ldyBBbmIoYS5jLmEpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxMCk7Yis9S3IobmV3IGlzKE1yKGEzYihjKS5hLktjKCksbmV3IGlyKSkpfXJldHVybiBiL2EuYy5hLmMubGVuZ3RofVxuZnVuY3Rpb24gVGNkKCl7VGNkPWdlYjtTY2Q9KEtjZCgpLEpjZCk7UWNkPW5ldyBBM2IoOCk7bmV3IG1HZCgodW1kKCksdGxkKSxRY2QpO25ldyBtR2QoZm1kLDgpO1JjZD1IY2Q7T2NkPXhjZDtQY2Q9eWNkO05jZD1uZXcgbUdkKE1rZCwoR2ViKCksZmFsc2UpKX1cbmZ1bmN0aW9uICRkZChhLGIsYyl7dmFyIGQ7Yy5VZygnU2hyaW5raW5nIHRyZWUgY29tcGFjdGlvbicsMSk7aWYoSGViKFREKG1RYihiLChPUWIoKSxNUWIpKSkpKXtZZGQoYSxiLmYpO3pRYihiLmYsKGQ9Yi5jLGQpKX1lbHNle3pRYihiLmYsYi5jKX1jLlZnKCl9XG5mdW5jdGlvbiBVeWQoYSxiLGMsZCl7c3dpdGNoKGIpe2Nhc2UgNzpyZXR1cm4gIWEuZSYmKGEuZT1uZXcgWWllKEc0LGEsNyw0KSksYS5lO2Nhc2UgODpyZXR1cm4gIWEuZCYmKGEuZD1uZXcgWWllKEc0LGEsOCw1KSksYS5kO31yZXR1cm4gdnlkKGEsYixjLGQpfVxuZnVuY3Rpb24gaDJkKGEpe3ZhciBiO2lmKCEhYS5hJiZhLmEuVmgoKSl7Yj1SRChhLmEsNTQpO2EuYT1SRChWdmQoYSxiKSwxNDIpO2EuYSE9YiYmKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsOSw1LGIsYS5hKSl9cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIFhxZShhKXtpZihhPDQ4KXJldHVybiAtMTtpZihhPjEwMilyZXR1cm4gLTE7aWYoYTw9NTcpcmV0dXJuIGEtNDg7aWYoYTw2NSlyZXR1cm4gLTE7aWYoYTw9NzApcmV0dXJuIGEtNjUrMTA7aWYoYTw5NylyZXR1cm4gLTE7cmV0dXJuIGEtOTcrMTB9XG5mdW5jdGlvbiBjayhhLGIpe2lmKGE9PW51bGwpe3Rocm93IEFkYihuZXcgT2diKCdudWxsIGtleSBpbiBlbnRyeTogbnVsbD0nK2IpKX1lbHNlIGlmKGI9PW51bGwpe3Rocm93IEFkYihuZXcgT2diKCdudWxsIHZhbHVlIGluIGVudHJ5OiAnK2ErJz1udWxsJykpfX1cbmZ1bmN0aW9uIENyKGEsYil7dmFyIGMsZDt3aGlsZShhLk9iKCkpe2lmKCFiLk9iKCkpe3JldHVybiBmYWxzZX1jPWEuUGIoKTtkPWIuUGIoKTtpZighKGRFKGMpPT09ZEUoZCl8fGMhPW51bGwmJnBiKGMsZCkpKXtyZXR1cm4gZmFsc2V9fXJldHVybiAhYi5PYigpfVxuZnVuY3Rpb24gYUxiKGEsYil7dmFyIGM7Yz1jRChXQyhpRSwxKSx2eGUsMjgsMTUsW2dLYihhLmFbMF0sYiksZ0tiKGEuYVsxXSxiKSxnS2IoYS5hWzJdLGIpXSk7aWYoYS5kKXtjWzBdPSR3bmQuTWF0aC5tYXgoY1swXSxjWzJdKTtjWzJdPWNbMF19cmV0dXJuIGN9XG5mdW5jdGlvbiBiTGIoYSxiKXt2YXIgYztjPWNEKFdDKGlFLDEpLHZ4ZSwyOCwxNSxbaEtiKGEuYVswXSxiKSxoS2IoYS5hWzFdLGIpLGhLYihhLmFbMl0sYildKTtpZihhLmQpe2NbMF09JHduZC5NYXRoLm1heChjWzBdLGNbMl0pO2NbMl09Y1swXX1yZXR1cm4gY31cbmZ1bmN0aW9uIHZJYyhhLGIsYyl7aWYoIUNvZChSRChtUWIoYiwoeUNjKCksQkJjKSksMTAxKSkpe3VJYyhhLGIsZTNiKGIsYykpO3VJYyhhLGIsZTNiKGIsKHFwZCgpLG5wZCkpKTt1SWMoYSxiLGUzYihiLFlvZCkpO3lvYigpO19tYihiLmosbmV3IEpJYyhhKSl9fVxuZnVuY3Rpb24gc1VjKGEpe3ZhciBiLGM7YS5jfHx2VWMoYSk7Yz1uZXcgRWpkO2I9bmV3IEFuYihhLmEpO3luYihiKTt3aGlsZShiLmE8Yi5jLmMubGVuZ3RoKXtNdWIoYyxSRCh5bmIoYiksNDE4KS5hKX1zRmIoYy5iIT0wKTtXdWIoYyxjLmMuYik7cmV0dXJuIGN9XG5mdW5jdGlvbiBPOWMoYSxiLGMpe3ZhciBkLGUsZixnLGg7aD1hLnIrYjthLnIrPWI7YS5kKz1jO2Q9Yy9hLm4uYy5sZW5ndGg7ZT0wO2ZvcihnPW5ldyBBbmIoYS5uKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMjA5KTtYOWMoZixoLGQsZSk7KytlfX1cbmZ1bmN0aW9uIGtIYihhKXt2YXIgYixjLGQ7YS5iLmEuJGIoKTthLmE9JEMoaE4scnZlLDYwLGEuYy5jLmEuYi5jLmxlbmd0aCwwLDEpO2I9MDtmb3IoZD1uZXcgQW5iKGEuYy5jLmEuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDYwKTtjLmY9YisrfX1cbmZ1bmN0aW9uIFRZYihhKXt2YXIgYixjLGQ7YS5iLmEuJGIoKTthLmE9JEMoYlEscnZlLDg2LGEuYy5hLmEuYi5jLmxlbmd0aCwwLDEpO2I9MDtmb3IoZD1uZXcgQW5iKGEuYy5hLmEuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDg2KTtjLmk9YisrfX1cbmZ1bmN0aW9uIEVyKGEpe3ZhciBiO2I9eXIoYSk7aWYoIWdzKGEpKXt0aHJvdyBBZGIobmV3IHZlYigncG9zaXRpb24gKDApIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhhdCByZW1haW5lZCAoJytiKycpJykpfXJldHVybiBocyhhKX1cbmZ1bmN0aW9uIFpDYihhLGIpe3ZhciBjO2lmKCFhLmEpe2M9JEMoaUUsdnhlLDI4LDAsMTUsMSk7aXhiKGEuYi5hLG5ldyBiRGIoYykpO2JGYihjLGhlYihpb2IucHJvdG90eXBlLk1lLGlvYixbXSkpO2EuYT1uZXcgTHhiKGMsYS5kKX1yZXR1cm4genhiKGEuYSxiKX1cbmZ1bmN0aW9uICRQYihiLGMsZCl7dmFyIGU7dHJ5e3JldHVybiBQUGIoYixjK2IuaixkK2Iuayl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSw3Nykpe2U9YTt0aHJvdyBBZGIobmV3IHZlYihlLmcraXplK2MrcHZlK2QrJykuJykpfWVsc2UgdGhyb3cgQWRiKGEpfX1cbmZ1bmN0aW9uIF9QYihiLGMsZCl7dmFyIGU7dHJ5e3JldHVybiBRUGIoYixjK2IuaixkK2Iuayl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSw3Nykpe2U9YTt0aHJvdyBBZGIobmV3IHZlYihlLmcraXplK2MrcHZlK2QrJykuJykpfWVsc2UgdGhyb3cgQWRiKGEpfX1cbmZ1bmN0aW9uIGFRYihiLGMsZCl7dmFyIGU7dHJ5e3JldHVybiBSUGIoYixjK2IuaixkK2Iuayl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSw3Nykpe2U9YTt0aHJvdyBBZGIobmV3IHZlYihlLmcraXplK2MrcHZlK2QrJykuJykpfWVsc2UgdGhyb3cgQWRiKGEpfX1cbmZ1bmN0aW9uIEo4YihhKXtzd2l0Y2goYS5nKXtjYXNlIDE6cmV0dXJuIHFwZCgpLHBwZDtjYXNlIDQ6cmV0dXJuIHFwZCgpLFlvZDtjYXNlIDM6cmV0dXJuIHFwZCgpLFhvZDtjYXNlIDI6cmV0dXJuIHFwZCgpLG5wZDtkZWZhdWx0OnJldHVybiBxcGQoKSxvcGQ7fX1cbmZ1bmN0aW9uIEltYyhhLGIsYyl7aWYoYi5rPT0ocjNiKCkscDNiKSYmYy5rPT1vM2Ipe2EuZD1GbWMoYiwocXBkKCksbnBkKSk7YS5iPUZtYyhiLFlvZCl9aWYoYy5rPT1wM2ImJmIuaz09bzNiKXthLmQ9Rm1jKGMsKHFwZCgpLFlvZCkpO2EuYj1GbWMoYyxucGQpfX1cbmZ1bmN0aW9uIE1tYyhhLGIpe3ZhciBjLGQsZTtlPWIzYihhLGIpO2ZvcihkPWUuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSwxMik7aWYobVFiKGMsKFl3YygpLEl3YykpIT1udWxsfHxrNGIobmV3IGw0YihjLmIpKSl7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIFJOYyhhLGIsYyl7Yy5VZygnTGluZWFyIHNlZ21lbnRzIG5vZGUgcGxhY2VtZW50JywxKTthLmI9UkQobVFiKGIsKFl3YygpLFF3YykpLDMxMik7U05jKGEsYik7Tk5jKGEsYik7S05jKGEsYik7UU5jKGEpO2EuYT1udWxsO2EuYj1udWxsO2MuVmcoKX1cbmZ1bmN0aW9uIFc5YyhhLGIpe0R5ZChiLGEuZSthLmQrKGEuYy5jLmxlbmd0aD09MD8wOmEuYikpO0V5ZChiLGEuZik7YS5hPSR3bmQuTWF0aC5tYXgoYS5hLGIuZik7YS5kKz1iLmcrKGEuYy5jLmxlbmd0aD09MD8wOmEuYik7Um1iKGEuYyxiKTtyZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIGJhZChhLGIsYyl7dmFyIGQsZSxmLGc7Zz0wO2Q9Yy9hLmEuYy5sZW5ndGg7Zm9yKGY9bmV3IEFuYihhLmEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxNzIpO1U5YyhlLGUucyxlLnQrZypkKTtPOWMoZSxhLmQtZS5yK2IsZCk7KytnfX1cbmZ1bmN0aW9uIENpZChhLGIpe3ZhciBjLGQsZSxmLGcsaDtlPWIubGVuZ3RoLTE7Zz0wO2g9MDtmb3IoZD0wO2Q8PWU7ZCsrKXtmPWJbZF07Yz12aWQoZSxkKSpJaWQoMS1hLGUtZCkqSWlkKGEsZCk7Zys9Zi5hKmM7aCs9Zi5iKmN9cmV0dXJuIG5ldyByamQoZyxoKX1cbmZ1bmN0aW9uIEpIZChhLGIpe3ZhciBjLGQsZSxmLGc7Yz1iLmdjKCk7YS5faShhLmkrYyk7Zj1iLktjKCk7Zz1hLmk7YS5pKz1jO2ZvcihkPWc7ZDxhLmk7KytkKXtlPWYuUGIoKTtNSGQoYSxkLGEuWmkoZCxlKSk7YS5NaShkLGUpO2EuTmkoKX1yZXR1cm4gYyE9MH1cbmZ1bmN0aW9uIFRKZChhLGIsYyl7dmFyIGQsZSxmO2lmKGEuUGooKSl7ZD1hLkVqKCk7Zj1hLlFqKCk7KythLmo7YS5xaihkLGEuWmkoZCxiKSk7ZT1hLklqKDMsbnVsbCxiLGQsZik7IWM/KGM9ZSk6Yy5uaihlKX1lbHNleyRJZChhLGEuRWooKSxiKX1yZXR1cm4gY31cbmZ1bmN0aW9uIHUwZChhLGIsYyl7dmFyIGQsZSxmO2Q9UkQoUUhkKHRZZChhLmEpLGIpLDg5KTtmPShlPWQuYyxaRChlLDkwKT9SRChlLDI5KTooSlRkKCkselRkKSk7KChmLkRiJjY0KSE9MD9WdmQoYS5iLGYpOmYpPT1jP2kyZChkKTpsMmQoZCxjKTtyZXR1cm4gZn1cbmZ1bmN0aW9uIHBuZShhKXt2YXIgYjtyZXR1cm4gYT09bnVsbD9udWxsOm5ldyBlamIoKGI9bnVlKGEsdHJ1ZSksYi5sZW5ndGg+MCYmKEJGYigwLGIubGVuZ3RoKSxiLmNoYXJDb2RlQXQoMCk9PTQzKT8oQkZiKDEsYi5sZW5ndGgrMSksYi5zdWJzdHIoMSkpOmIpKX1cbmZ1bmN0aW9uIHFuZShhKXt2YXIgYjtyZXR1cm4gYT09bnVsbD9udWxsOm5ldyBlamIoKGI9bnVlKGEsdHJ1ZSksYi5sZW5ndGg+MCYmKEJGYigwLGIubGVuZ3RoKSxiLmNoYXJDb2RlQXQoMCk9PTQzKT8oQkZiKDEsYi5sZW5ndGgrMSksYi5zdWJzdHIoMSkpOmIpKX1cbmZ1bmN0aW9uIFN5YihhLGIsYyxkLGUsZixnLGgpe3ZhciBpLGo7aWYoIWQpe3JldHVybn1pPWQuYVswXTshIWkmJlN5YihhLGIsYyxpLGUsZixnLGgpO1R5YihhLGMsZC5kLGUsZixnLGgpJiZiLkZjKGQpO2o9ZC5hWzFdOyEhaiYmU3liKGEsYixjLGosZSxmLGcsaCl9XG5mdW5jdGlvbiBQUGIoYixjLGQpe3RyeXtyZXR1cm4gR2RiKFNQYihiLGMsZCksMSl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwzMzMpKXt0aHJvdyBBZGIobmV3IHZlYihmemUrYi5vKycqJytiLnArZ3plK2MrcHZlK2QraHplKSl9ZWxzZSB0aHJvdyBBZGIoYSl9fVxuZnVuY3Rpb24gUVBiKGIsYyxkKXt0cnl7cmV0dXJuIEdkYihTUGIoYixjLGQpLDApfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMzMzKSl7dGhyb3cgQWRiKG5ldyB2ZWIoZnplK2IubysnKicrYi5wK2d6ZStjK3B2ZStkK2h6ZSkpfWVsc2UgdGhyb3cgQWRiKGEpfX1cbmZ1bmN0aW9uIFJQYihiLGMsZCl7dHJ5e3JldHVybiBHZGIoU1BiKGIsYyxkKSwyKX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDMzMykpe3Rocm93IEFkYihuZXcgdmViKGZ6ZStiLm8rJyonK2IucCtnemUrYytwdmUrZCtoemUpKX1lbHNlIHRocm93IEFkYihhKX19XG5mdW5jdGlvbiBsTWQoYixjKXtpZihiLmc9PS0xKXt0aHJvdyBBZGIobmV3IGNnYil9Yi5YaigpO3RyeXtiLmQuaGQoYi5nLGMpO2IuZj1iLmQuan1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDc3KSl7dGhyb3cgQWRiKG5ldyBKcmIpfWVsc2UgdGhyb3cgQWRiKGEpfX1cbmZ1bmN0aW9uIFk3YihhKXt2YXIgYixjLGQsZSxmO2ZvcihkPW5ldyBBbmIoYS5iKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMzApO2I9MDtmb3IoZj1uZXcgQW5iKGMuYSk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDEwKTtlLnA9YisrfX19XG5mdW5jdGlvbiBFZShhLGIpe3ZhciBjLGQsZSxmO2Y9YS5nYygpO2IubGVuZ3RoPGYmJihiPWNGYihuZXcgQXJyYXkoZiksYikpO2U9YjtkPWEuS2MoKTtmb3IoYz0wO2M8ZjsrK2Mpe2JEKGUsYyxkLlBiKCkpfWIubGVuZ3RoPmYmJmJEKGIsZixudWxsKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGF2KGEsYil7dmFyIGMsZDtkPWEuZ2MoKTtpZihiPT1udWxsKXtmb3IoYz0wO2M8ZDtjKyspe2lmKGEuWGIoYyk9PW51bGwpe3JldHVybiBjfX19ZWxzZXtmb3IoYz0wO2M8ZDtjKyspe2lmKHBiKGIsYS5YYihjKSkpe3JldHVybiBjfX19cmV0dXJuIC0xfVxuZnVuY3Rpb24gSmQoYSxiKXt2YXIgYyxkLGU7Yz1iLmxkKCk7ZT1iLm1kKCk7ZD1hLnhjKGMpO2lmKCEoZEUoZSk9PT1kRShkKXx8ZSE9bnVsbCYmcGIoZSxkKSkpe3JldHVybiBmYWxzZX1pZihkPT1udWxsJiYhYS5fYihjKSl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfVxuZnVuY3Rpb24gbUQoYSxiKXt2YXIgYyxkLGU7aWYoYjw9MjIpe2M9YS5sJigxPDxiKS0xO2Q9ZT0wfWVsc2UgaWYoYjw9NDQpe2M9YS5sO2Q9YS5tJigxPDxiLTIyKS0xO2U9MH1lbHNle2M9YS5sO2Q9YS5tO2U9YS5oJigxPDxiLTQ0KS0xfXJldHVybiBoRChjLGQsZSl9XG5mdW5jdGlvbiBwTmIoYSxiKXtzd2l0Y2goYi5nKXtjYXNlIDE6cmV0dXJuIGEuZi5uLmQrYS50O2Nhc2UgMzpyZXR1cm4gYS5mLm4uYSthLnQ7Y2FzZSAyOnJldHVybiBhLmYubi5jK2EucztjYXNlIDQ6cmV0dXJuIGEuZi5uLmIrYS5zO2RlZmF1bHQ6cmV0dXJuIDA7fX1cbmZ1bmN0aW9uIFROYihhLGIpe3ZhciBjLGQ7ZD1iLmM7Yz1iLmE7c3dpdGNoKGEuYi5nKXtjYXNlIDA6Yy5kPWEuZS1kLmEtZC5kO2JyZWFrO2Nhc2UgMTpjLmQrPWEuZTticmVhaztjYXNlIDI6Yy5jPWEuZS1kLmEtZC5kO2JyZWFrO2Nhc2UgMzpjLmM9YS5lK2QuZDt9fVxuZnVuY3Rpb24gUVJiKGEsYixjLGQpe3ZhciBlLGY7dGhpcy5hPWI7dGhpcy5jPWQ7ZT1hLmE7UFJiKHRoaXMsbmV3IHJqZCgtZS5jLC1lLmQpKTskaWQodGhpcy5iLGMpO2Y9ZC8yO2IuYT9uamQodGhpcy5iLDAsZik6bmpkKHRoaXMuYixmLDApO1JtYihhLmMsdGhpcyl9XG5mdW5jdGlvbiBpMmMoYSxiLGMsZCl7dmFyIGU7dGhpcy5jPWE7dGhpcy5kPWI7ZT1uZXcgWXViO1B1YihlLGMsZS5jLmIsZS5jKTt0aGlzLmE9ZTt0aGlzLmI9UkQobVFiKGQsKGhfYygpLEgkYykpLDg4KTt0aGlzLmU9S2ZiKFVEKG1RYihkLCQkYykpKTtoMmModGhpcyl9XG5mdW5jdGlvbiBqNWMoKXtqNWM9Z2ViO2k1Yz1uZXcgbDVjKExBZSwwKTtnNWM9bmV3IGw1YyhFQmUsMSk7aDVjPW5ldyBsNWMoJ0VER0VfTEVOR1RIX0JZX1BPU0lUSU9OJywyKTtmNWM9bmV3IGw1YygnQ1JPU1NJTkdfTUlOSU1JWkFUSU9OX0JZX1BPU0lUSU9OJywzKX1cbmZ1bmN0aW9uIHVFZChhLGIpe3ZhciBjLGQ7Yz1SRChBbyhhLmcsYiksMjcpO2lmKGMpe3JldHVybiBjfWQ9UkQoQW8oYS5qLGIpLDEyMyk7aWYoZCl7cmV0dXJuIGR9dGhyb3cgQWRiKG5ldyBDRGQoJ1JlZmVyZW5jZWQgc2hhcGUgZG9lcyBub3QgZXhpc3Q6ICcrYikpfVxuZnVuY3Rpb24gUGsoYixjKXt2YXIgZCxlO2lmKFpEKGMsMjUzKSl7ZT1SRChjLDI1Myk7dHJ5e2Q9Yi5FZChlKTtyZXR1cm4gZD09MH1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDIxMikpe3JldHVybiBmYWxzZX1lbHNlIHRocm93IEFkYihhKX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gdFdiKGEsYil7aWYoYS5jPT1iKXtyZXR1cm4gYS5kfWVsc2UgaWYoYS5kPT1iKXtyZXR1cm4gYS5jfWVsc2V7dGhyb3cgQWRiKG5ldyBhZ2IoXCJOb2RlICdvbmUnIG11c3QgYmUgZWl0aGVyIHNvdXJjZSBvciB0YXJnZXQgb2YgZWRnZSAnZWRnZScuXCIpKX19XG5mdW5jdGlvbiByUmMoYSxiKXtpZihhLmMuaT09Yil7cmV0dXJuIGEuZC5pfWVsc2UgaWYoYS5kLmk9PWIpe3JldHVybiBhLmMuaX1lbHNle3Rocm93IEFkYihuZXcgYWdiKCdOb2RlICcrYisnIGlzIG5laXRoZXIgc291cmNlIG5vciB0YXJnZXQgb2YgZWRnZSAnK2EpKX19XG5mdW5jdGlvbiAkZ2MoYSxiLGMpe2MuVWcoJ1NlbGYtTG9vcCBvcmRlcmluZycsMSk7RkRiKEdEYihDRGIoQ0RiKEVEYihuZXcgU0RiKG51bGwsbmV3IFN3YihiLmIsMTYpKSxuZXcgY2hjKSxuZXcgZWhjKSxuZXcgZ2hjKSxuZXcgaWhjKSxuZXcga2hjKGEpKTtjLlZnKCl9XG5mdW5jdGlvbiBGcGMoYSxiKXt2YXIgYztzd2l0Y2goYi5nKXtjYXNlIDI6Y2FzZSA0OmM9YS5hO2EuYy5kLm4uYjxjLmQubi5iJiYoYz1hLmMpO0dwYyhhLGIsKGVuYygpLGRuYyksYyk7YnJlYWs7Y2FzZSAxOmNhc2UgMzpHcGMoYSxiLChlbmMoKSxhbmMpLG51bGwpO319XG5mdW5jdGlvbiBZcGMoYSxiLGMsZCxlLGYpe3ZhciBnLGgsaSxqLGs7Zz1XcGMoYixjLGYpO2g9Yz09KHFwZCgpLFlvZCl8fGM9PXBwZD8tMToxO2o9YVtjLmddO2ZvcihrPTA7azxqLmxlbmd0aDtrKyspe2k9altrXTtpPjAmJihpKz1lKTtqW2tdPWc7Zys9aCooaStkKX19XG5mdW5jdGlvbiB2c2MoYSl7dmFyIGIsYyxkO2Q9YS5mO2Eubj0kQyhpRSx2eGUsMjgsZCwxNSwxKTthLmQ9JEMoaUUsdnhlLDI4LGQsMTUsMSk7Zm9yKGI9MDtiPGQ7YisrKXtjPVJEKFZtYihhLmMuYixiKSwzMCk7YS5uW2JdPXNzYyhhLGMpO2EuZFtiXT1yc2MoYSxjKX19XG5mdW5jdGlvbiBYd2QoYSxiKXt2YXIgYyxkLGU7ZT0wO2ZvcihkPTI7ZDxiO2Q8PD0xKXsoYS5EYiZkKSE9MCYmKytlfWlmKGU9PTApe2ZvcihjPWI8PD0xO2M8PTEyODtjPDw9MSl7aWYoKGEuRGImYykhPTApe3JldHVybiAwfX1yZXR1cm4gLTF9ZWxzZXtyZXR1cm4gZX19XG5mdW5jdGlvbiBTZ2UoYSxiKXt2YXIgYyxkLGUsZixnO2c9cGtlKGEuZS5EaCgpLGIpO2Y9bnVsbDtjPVJEKGEuZywxMjQpO2ZvcihlPTA7ZTxhLmk7KytlKXtkPWNbZV07aWYoZy5hbShkLkxrKCkpKXshZiYmKGY9bmV3IFlIZCk7V0dkKGYsZCl9fSEhZiYmd0xkKGEsZil9XG5mdW5jdGlvbiBlbmUoYSl7dmFyIGIsYyxkO2lmKCFhKXJldHVybiBudWxsO2lmKGEuZGMoKSlyZXR1cm4gJyc7ZD1uZXcgUWhiO2ZvcihjPWEuS2MoKTtjLk9iKCk7KXtiPWMuUGIoKTtOaGIoZCxXRChiKSk7ZC5hKz0nICd9cmV0dXJuIHFlYihkLGQuYS5sZW5ndGgtMSl9XG5mdW5jdGlvbiBfQyhhLGIpe3ZhciBjPW5ldyBBcnJheShiKTt2YXIgZDtzd2l0Y2goYSl7Y2FzZSAxNDpjYXNlIDE1OmQ9MDticmVhaztjYXNlIDE2OmQ9ZmFsc2U7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gYzt9Zm9yKHZhciBlPTA7ZTxiOysrZSl7Y1tlXT1kfXJldHVybiBjfVxuZnVuY3Rpb24gR0diKGEpe3ZhciBiLGMsZDtmb3IoYz1uZXcgQW5iKGEuYS5iKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksNjApO2IuYy4kYigpfURtZChhLmQpPyhkPWEuYS5jKTooZD1hLmEuZCk7VW1iKGQsbmV3IFdHYihhKSk7YS5jLmRmKGEpO0hHYihhKX1cbmZ1bmN0aW9uIG9VYihhKXt2YXIgYixjLGQsZTtmb3IoYz1uZXcgQW5iKGEuZS5jKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMjkwKTtmb3IoZT1uZXcgQW5iKGIuYik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDQ1NCk7aFViKGQpfVlUYihiKX19XG5mdW5jdGlvbiBnYWQoYSl7dmFyIGIsYyxkLGUsZjtkPTA7Zj0wO2U9MDtmb3IoYz1uZXcgQW5iKGEuYSk7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDE3Mik7Zj0kd25kLk1hdGgubWF4KGYsYi5yKTtkKz1iLmQrKGU+MD9hLmM6MCk7KytlfWEuYj1kO2EuZD1mfVxuZnVuY3Rpb24gcktiKGEsYil7dmFyIGM7Yz1jRChXQyhpRSwxKSx2eGUsMjgsMTUsW3FLYihhLChaSmIoKSxXSmIpLGIpLHFLYihhLFhKYixiKSxxS2IoYSxZSmIsYildKTtpZihhLmYpe2NbMF09JHduZC5NYXRoLm1heChjWzBdLGNbMl0pO2NbMl09Y1swXX1yZXR1cm4gY31cbmZ1bmN0aW9uIGNRYihiLGMsZCl7dmFyIGU7dHJ5e1RQYihiLGMrYi5qLGQrYi5rLGZhbHNlLHRydWUpfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsNzcpKXtlPWE7dGhyb3cgQWRiKG5ldyB2ZWIoZS5nK2l6ZStjK3B2ZStkKycpLicpKX1lbHNlIHRocm93IEFkYihhKX19XG5mdW5jdGlvbiBkUWIoYixjLGQpe3ZhciBlO3RyeXtUUGIoYixjK2IuaixkK2Iuayx0cnVlLGZhbHNlKX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDc3KSl7ZT1hO3Rocm93IEFkYihuZXcgdmViKGUuZytpemUrYytwdmUrZCsnKS4nKSl9ZWxzZSB0aHJvdyBBZGIoYSl9fVxuZnVuY3Rpb24gdThiKGEpe3ZhciBiO2lmKCFuUWIoYSwoeUNjKCksZEJjKSkpe3JldHVybn1iPVJEKG1RYihhLGRCYyksMjEpO2lmKGIuSGMoKGRvZCgpLFhuZCkpKXtiLk1jKFhuZCk7Yi5GYyhabmQpfWVsc2UgaWYoYi5IYyhabmQpKXtiLk1jKFpuZCk7Yi5GYyhYbmQpfX1cbmZ1bmN0aW9uIHY4YihhKXt2YXIgYjtpZighblFiKGEsKHlDYygpLGRCYykpKXtyZXR1cm59Yj1SRChtUWIoYSxkQmMpLDIxKTtpZihiLkhjKChkb2QoKSxjb2QpKSl7Yi5NYyhjb2QpO2IuRmMoYW9kKX1lbHNlIGlmKGIuSGMoYW9kKSl7Yi5NYyhhb2QpO2IuRmMoY29kKX19XG5mdW5jdGlvbiBvcWMoYSxiLGMsZCl7dmFyIGUsZixnLGg7YS5hPT1udWxsJiZycWMoYSxiKTtnPWIuYi5qLmMubGVuZ3RoO2Y9Yy5kLnA7aD1kLmQucDtlPWgtMTtlPDAmJihlPWctMSk7cmV0dXJuIGY8PWU/YS5hW2VdLWEuYVtmXTphLmFbZy0xXS1hLmFbZl0rYS5hW2VdfVxuZnVuY3Rpb24gQ3VkKGEpe3ZhciBiLGM7aWYoIWEuYil7YS5iPWZ2KFJEKGEuZiwyNykua2goKS5pKTtmb3IoYz1uZXcgZE1kKFJEKGEuZiwyNykua2goKSk7Yy5lIT1jLmkuZ2MoKTspe2I9UkQoYk1kKGMpLDEzNSk7Um1iKGEuYixuZXcgQnVkKGIpKX19cmV0dXJuIGEuYn1cbmZ1bmN0aW9uIER1ZChhKXt2YXIgYixjO2lmKCFhLmUpe2EuZT1mdih3Q2QoUkQoYS5mLDI3KSkuaSk7Zm9yKGM9bmV3IGRNZCh3Q2QoUkQoYS5mLDI3KSkpO2MuZSE9Yy5pLmdjKCk7KXtiPVJEKGJNZChjKSwxMjMpO1JtYihhLmUsbmV3IFJ1ZChiKSl9fXJldHVybiBhLmV9XG5mdW5jdGlvbiB5dWQoYSl7dmFyIGIsYztpZighYS5hKXthLmE9ZnYodENkKFJEKGEuZiwyNykpLmkpO2ZvcihjPW5ldyBkTWQodENkKFJEKGEuZiwyNykpKTtjLmUhPWMuaS5nYygpOyl7Yj1SRChiTWQoYyksMjcpO1JtYihhLmEsbmV3IEZ1ZChhLGIpKX19cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIERYZChiKXt2YXIgYztpZighYi5DJiYoYi5EIT1udWxsfHxiLkIhPW51bGwpKXtjPUVYZChiKTtpZihjKXtiLmhsKGMpfWVsc2V7dHJ5e2IuaGwobnVsbCl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoIVpEKGEsNjMpKXRocm93IEFkYihhKX19fXJldHVybiBiLkN9XG5mdW5jdGlvbiB4TWIoYSl7c3dpdGNoKGEucS5nKXtjYXNlIDU6dU1iKGEsKHFwZCgpLFlvZCkpO3VNYihhLG5wZCk7YnJlYWs7Y2FzZSA0OnZNYihhLChxcGQoKSxZb2QpKTt2TWIoYSxucGQpO2JyZWFrO2RlZmF1bHQ6d01iKGEsKHFwZCgpLFlvZCkpO3dNYihhLG5wZCk7fX1cbmZ1bmN0aW9uIEdOYihhKXtzd2l0Y2goYS5xLmcpe2Nhc2UgNTpETmIoYSwocXBkKCksWG9kKSk7RE5iKGEscHBkKTticmVhaztjYXNlIDQ6RU5iKGEsKHFwZCgpLFhvZCkpO0VOYihhLHBwZCk7YnJlYWs7ZGVmYXVsdDpGTmIoYSwocXBkKCksWG9kKSk7Rk5iKGEscHBkKTt9fVxuZnVuY3Rpb24gRyRiKGEsYil7dmFyIGMsZCxlO2U9bmV3IHBqZDtmb3IoZD1hLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMzYpO3ckYihjLGUuYSwwKTtlLmErPWMuZi5hK2I7ZS5iPSR3bmQuTWF0aC5tYXgoZS5iLGMuZi5iKX1lLmI+MCYmKGUuYis9Yik7cmV0dXJuIGV9XG5mdW5jdGlvbiBJJGIoYSxiKXt2YXIgYyxkLGU7ZT1uZXcgcGpkO2ZvcihkPWEuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSwzNik7dyRiKGMsMCxlLmIpO2UuYis9Yy5mLmIrYjtlLmE9JHduZC5NYXRoLm1heChlLmEsYy5mLmEpfWUuYT4wJiYoZS5hKz1iKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIGwyYihhKXt2YXIgYixjLGQ7ZD1sdmU7Zm9yKGM9bmV3IEFuYihhLmEpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwxMCk7blFiKGIsKFl3YygpLHp3YykpJiYoZD0kd25kLk1hdGgubWluKGQsUkQobVFiKGIsendjKSwxNykuYSkpfXJldHVybiBkfVxuZnVuY3Rpb24gUExjKGEsYil7dmFyIGMsZDtpZihiLmxlbmd0aD09MCl7cmV0dXJuIDB9Yz1sTWMoYS5hLGJbMF0sKHFwZCgpLHBwZCkpO2MrPWxNYyhhLmEsYltiLmxlbmd0aC0xXSxYb2QpO2ZvcihkPTA7ZDxiLmxlbmd0aDtkKyspe2MrPVFMYyhhLGQsYil9cmV0dXJuIGN9XG5mdW5jdGlvbiBWVWMoKXtIVWMoKTt0aGlzLmM9bmV3IGJuYjt0aGlzLmk9bmV3IGJuYjt0aGlzLmU9bmV3IEl1Yjt0aGlzLmY9bmV3IEl1Yjt0aGlzLmc9bmV3IEl1Yjt0aGlzLmo9bmV3IGJuYjt0aGlzLmE9bmV3IGJuYjt0aGlzLmI9bmV3IFRzYjt0aGlzLms9bmV3IFRzYn1cbmZ1bmN0aW9uIEFYZChhLGIpe3ZhciBjLGQ7aWYoYS5EYj4+MTY9PTYpe3JldHVybiBhLkNiLlRoKGEsNSx0NyxiKX1yZXR1cm4gZD1aNWQoUkQodllkKChjPVJEKFl3ZChhLDE2KSwyOSksIWM/YS5paSgpOmMpLGEuRGI+PjE2KSwxOSkpLGEuQ2IuVGgoYSxkLm4sZC5mLGIpfVxuZnVuY3Rpb24ga0EoYSl7ZkEoKTt2YXIgYj1hLmU7aWYoYiYmYi5zdGFjayl7dmFyIGM9Yi5zdGFjazt2YXIgZD1iKydcXG4nO2Muc3Vic3RyaW5nKDAsZC5sZW5ndGgpPT1kJiYoYz1jLnN1YnN0cmluZyhkLmxlbmd0aCkpO3JldHVybiBjLnNwbGl0KCdcXG4nKX1yZXR1cm4gW119XG5mdW5jdGlvbiBwZ2IoYSl7dmFyIGI7Yj0od2diKCksdmdiKTtyZXR1cm4gYlthPj4+MjhdfGJbYT4+MjQmMTVdPDw0fGJbYT4+MjAmMTVdPDw4fGJbYT4+MTYmMTVdPDwxMnxiW2E+PjEyJjE1XTw8MTZ8YlthPj44JjE1XTw8MjB8YlthPj40JjE1XTw8MjR8YlthJjE1XTw8Mjh9XG5mdW5jdGlvbiBtbWIoYSl7dmFyIGIsYyxkO2lmKGEuYiE9YS5jKXtyZXR1cm59ZD1hLmEubGVuZ3RoO2M9bWdiKCR3bmQuTWF0aC5tYXgoOCxkKSk8PDE7aWYoYS5iIT0wKXtiPVdFYihhLmEsYyk7bG1iKGEsYixkKTthLmE9YjthLmI9MH1lbHNle2FGYihhLmEsYyl9YS5jPWR9XG5mdW5jdGlvbiB1TmIoYSxiKXt2YXIgYztjPWEuYjtyZXR1cm4gYy5wZigodW1kKCksR2xkKSk/Yy5hZygpPT0ocXBkKCkscHBkKT8tYy5NZigpLmEtS2ZiKFVEKGMub2YoR2xkKSkpOmIrS2ZiKFVEKGMub2YoR2xkKSkpOmMuYWcoKT09KHFwZCgpLHBwZCk/LWMuTWYoKS5hOmJ9XG5mdW5jdGlvbiBYMmIoYSl7dmFyIGI7aWYoYS5iLmMubGVuZ3RoIT0wJiYhIVJEKFZtYihhLmIsMCksNzIpLmEpe3JldHVybiBSRChWbWIoYS5iLDApLDcyKS5hfWI9UjBiKGEpO2lmKGIhPW51bGwpe3JldHVybiBifXJldHVybiAnJysoIWEuYz8tMTpXbWIoYS5jLmEsYSwwKSl9XG5mdW5jdGlvbiBNM2IoYSl7dmFyIGI7aWYoYS5mLmMubGVuZ3RoIT0wJiYhIVJEKFZtYihhLmYsMCksNzIpLmEpe3JldHVybiBSRChWbWIoYS5mLDApLDcyKS5hfWI9UjBiKGEpO2lmKGIhPW51bGwpe3JldHVybiBifXJldHVybiAnJysoIWEuaT8tMTpXbWIoYS5pLmosYSwwKSl9XG5mdW5jdGlvbiBza2MoYSxiKXt2YXIgYyxkO2lmKGI8MHx8Yj49YS5nYygpKXtyZXR1cm4gbnVsbH1mb3IoYz1iO2M8YS5nYygpOysrYyl7ZD1SRChhLlhiKGMpLDEzMSk7aWYoYz09YS5nYygpLTF8fCFkLm8pe3JldHVybiBuZXcgUHRkKHNnYihjKSxkKX19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBYcmMoYSxiLGMpe3ZhciBkLGUsZixnLGg7Zj1hLmM7aD1jP2I6YTtkPWM/YTpiO2ZvcihlPWgucCsxO2U8ZC5wOysrZSl7Zz1SRChWbWIoZi5hLGUpLDEwKTtpZighKGcuaz09KHIzYigpLGwzYil8fFlyYyhnKSkpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBFYWQoYSl7dmFyIGIsYyxkLGUsZjtmPTA7ZT1weGU7ZD0wO2ZvcihjPW5ldyBBbmIoYS5hKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMTcyKTtmKz1iLnIrKGQ+MD9hLmM6MCk7ZT0kd25kLk1hdGgubWF4KGUsYi5kKTsrK2R9YS5lPWY7YS5iPWV9XG5mdW5jdGlvbiBRdWQoYSl7dmFyIGIsYztpZighYS5iKXthLmI9ZnYoUkQoYS5mLDEyMykua2goKS5pKTtmb3IoYz1uZXcgZE1kKFJEKGEuZiwxMjMpLmtoKCkpO2MuZSE9Yy5pLmdjKCk7KXtiPVJEKGJNZChjKSwxMzUpO1JtYihhLmIsbmV3IEJ1ZChiKSl9fXJldHVybiBhLmJ9XG5mdW5jdGlvbiBhSGQoYSxiKXt2YXIgYyxkLGU7aWYoYi5kYygpKXtyZXR1cm4galFkKCksalFkKCksaVFkfWVsc2V7Yz1uZXcgWkxkKGEsYi5nYygpKTtmb3IoZT1uZXcgZE1kKGEpO2UuZSE9ZS5pLmdjKCk7KXtkPWJNZChlKTtiLkhjKGQpJiZXR2QoYyxkKX1yZXR1cm4gY319XG5mdW5jdGlvbiBBeGQoYSxiLGMsZCl7aWYoYj09MCl7cmV0dXJuIGQ/KCFhLm8mJihhLm89bmV3IERWZCgocHZkKCksbXZkKSxYNCxhLDApKSxhLm8pOighYS5vJiYoYS5vPW5ldyBEVmQoKHB2ZCgpLG12ZCksWDQsYSwwKSksZE9kKGEubykpfXJldHVybiBEdmQoYSxiLGMsZCl9XG5mdW5jdGlvbiByQmQoYSl7dmFyIGIsYztpZihhLnJiKXtmb3IoYj0wLGM9YS5yYi5pO2I8YzsrK2Ipe2FBZChRSGQoYS5yYixiKSl9fWlmKGEudmIpe2ZvcihiPTAsYz1hLnZiLmk7YjxjOysrYil7YUFkKFFIZChhLnZiLGIpKX19VWVlKChsa2UoKSxqa2UpLGEpO2EuQmJ8PTF9XG5mdW5jdGlvbiB6QmQoYSxiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuKXtBQmQoYSxiLGQsbnVsbCxlLGYsZyxoLGksaixtLHRydWUsbik7YTZkKGEsayk7WkQoYS5DYiw5MCkmJnYkZCh5WWQoUkQoYS5DYiw5MCkpLDIpOyEhYyYmYjZkKGEsYyk7YzZkKGEsbCk7cmV0dXJuIGF9XG5mdW5jdGlvbiBKYWUoYil7dmFyIGMsZDtpZihiPT1udWxsKXtyZXR1cm4gbnVsbH1kPTA7dHJ5e2Q9T2ViKGIscXdlLGx2ZSkmQndlfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMTMwKSl7Yz1BaGIoYik7ZD1jWzBdfWVsc2UgdGhyb3cgQWRiKGEpfXJldHVybiBoZmIoZCl9XG5mdW5jdGlvbiBLYWUoYil7dmFyIGMsZDtpZihiPT1udWxsKXtyZXR1cm4gbnVsbH1kPTA7dHJ5e2Q9T2ViKGIscXdlLGx2ZSkmQndlfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMTMwKSl7Yz1BaGIoYik7ZD1jWzBdfWVsc2UgdGhyb3cgQWRiKGEpfXJldHVybiBoZmIoZCl9XG5mdW5jdGlvbiByRChhLGIpe3ZhciBjLGQsZTtlPWEuaC1iLmg7aWYoZTwwKXtyZXR1cm4gZmFsc2V9Yz1hLmwtYi5sO2Q9YS5tLWIubSsoYz4+MjIpO2UrPWQ+PjIyO2lmKGU8MCl7cmV0dXJuIGZhbHNlfWEubD1jJmR4ZTthLm09ZCZkeGU7YS5oPWUmZXhlO3JldHVybiB0cnVlfVxuZnVuY3Rpb24gVHliKGEsYixjLGQsZSxmLGcpe3ZhciBoLGk7aWYoYi5UZSgpJiYoaT1hLmEuTmUoYyxkKSxpPDB8fCFlJiZpPT0wKSl7cmV0dXJuIGZhbHNlfWlmKGIuVWUoKSYmKGg9YS5hLk5lKGMsZiksaD4wfHwhZyYmaD09MCkpe3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIEFnYyhhLGIpe3NnYygpO3ZhciBjO2M9YS5qLmctYi5qLmc7aWYoYyE9MCl7cmV0dXJuIDB9c3dpdGNoKGEuai5nKXtjYXNlIDI6cmV0dXJuIENnYyhiLHJnYyktQ2djKGEscmdjKTtjYXNlIDQ6cmV0dXJuIENnYyhhLHFnYyktQ2djKGIscWdjKTt9cmV0dXJuIDB9XG5mdW5jdGlvbiB1dWMoYSl7c3dpdGNoKGEuZyl7Y2FzZSAwOnJldHVybiBudWM7Y2FzZSAxOnJldHVybiBvdWM7Y2FzZSAyOnJldHVybiBwdWM7Y2FzZSAzOnJldHVybiBxdWM7Y2FzZSA0OnJldHVybiBydWM7Y2FzZSA1OnJldHVybiBzdWM7ZGVmYXVsdDpyZXR1cm4gbnVsbDt9fVxuZnVuY3Rpb24gY0JkKGEsYixjKXt2YXIgZCxlO2Q9KGU9bmV3IFI1ZCxZVmQoZSxiKSxQQWQoZSxjKSxXR2QoKCFhLmMmJihhLmM9bmV3IEM1ZCh1NyxhLDEyLDEwKSksYS5jKSxlKSxlKTskVmQoZCwwKTtiV2QoZCwxKTthV2QoZCx0cnVlKTtfVmQoZCx0cnVlKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIFRIZChhLGIpe3ZhciBjLGQ7aWYoYj49YS5pKXRocm93IEFkYihuZXcgeU5kKGIsYS5pKSk7KythLmo7Yz1hLmdbYl07ZD1hLmktYi0xO2Q+MCYmaGliKGEuZyxiKzEsYS5nLGIsZCk7YkQoYS5nLC0tYS5pLG51bGwpO2EuUWkoYixjKTthLk5pKCk7cmV0dXJuIGN9XG5mdW5jdGlvbiBzV2QoYSxiKXt2YXIgYyxkO2lmKGEuRGI+PjE2PT0xNyl7cmV0dXJuIGEuQ2IuVGgoYSwyMSxoNyxiKX1yZXR1cm4gZD1aNWQoUkQodllkKChjPVJEKFl3ZChhLDE2KSwyOSksIWM/YS5paSgpOmMpLGEuRGI+PjE2KSwxOSkpLGEuQ2IuVGgoYSxkLm4sZC5mLGIpfVxuZnVuY3Rpb24gX0ZiKGEpe3ZhciBiLGMsZCxlO3lvYigpO19tYihhLmMsYS5hKTtmb3IoZT1uZXcgQW5iKGEuYyk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9eW5iKGUpO2ZvcihjPW5ldyBBbmIoYS5iKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksNjkzKTtiLmJmKGQpfX19XG5mdW5jdGlvbiByJGIoYSl7dmFyIGIsYyxkLGU7eW9iKCk7X21iKGEuYyxhLmEpO2ZvcihlPW5ldyBBbmIoYS5jKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD15bmIoZSk7Zm9yKGM9bmV3IEFuYihhLmIpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwzODIpO2IuYmYoZCl9fX1cbmZ1bmN0aW9uIHJKYihhKXt2YXIgYixjLGQsZSxmO2U9bHZlO2Y9bnVsbDtmb3IoZD1uZXcgQW5iKGEuZCk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDIxOCk7aWYoYy5kLmpeYy5lLmope2I9Yy5lLmUtYy5kLmUtYy5hO2lmKGI8ZSl7ZT1iO2Y9Y319fXJldHVybiBmfVxuZnVuY3Rpb24gUVZiKCl7UVZiPWdlYjtPVmI9bmV3IGxHZCh2QWUsKEdlYigpLGZhbHNlKSk7S1ZiPW5ldyBsR2Qod0FlLDEwMCk7TVZiPShBV2IoKSx5V2IpO0xWYj1uZXcgbEdkKHhBZSxNVmIpO05WYj1uZXcgbEdkKHlBZSxWemUpO1BWYj1uZXcgbEdkKHpBZSxzZ2IobHZlKSl9XG5mdW5jdGlvbiBYbGMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs7aj0wO2ZvcihlPWEuYVtiXSxmPTAsZz1lLmxlbmd0aDtmPGc7KytmKXtkPWVbZl07az1hTWMoZCxjKTtmb3IoaT1rLktjKCk7aS5PYigpOyl7aD1SRChpLlBiKCksMTIpO1pqYihhLmYsaCxzZ2IoaisrKSl9fX1cbmZ1bmN0aW9uIFVEZChhLGIsYyl7dmFyIGQsZSxmLGc7aWYoYyl7ZT1jLmEubGVuZ3RoO2Q9bmV3IHZ1ZShlKTtmb3IoZz0oZC5iLWQuYSkqZC5jPDA/KHV1ZSgpLHR1ZSk6bmV3IFJ1ZShkKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSwxNyk7UmMoYSxiLHREZChKQihjLGYuYSkpKX19fVxuZnVuY3Rpb24gVkRkKGEsYixjKXt2YXIgZCxlLGYsZztpZihjKXtlPWMuYS5sZW5ndGg7ZD1uZXcgdnVlKGUpO2ZvcihnPShkLmItZC5hKSpkLmM8MD8odXVlKCksdHVlKTpuZXcgUnVlKGQpO2cuT2IoKTspe2Y9UkQoZy5QYigpLDE3KTtSYyhhLGIsdERkKEpCKGMsZi5hKSkpfX19XG5mdW5jdGlvbiBmb2MoYSl7TW5jKCk7dmFyIGI7Yj1SRChFZShFYyhhLmspLCRDKEUzLE5BZSw2NCwyLDAsMSkpLDEyNik7V25iKGIsMCxiLmxlbmd0aCxudWxsKTtpZihiWzBdPT0ocXBkKCksWW9kKSYmYlsxXT09cHBkKXtiRChiLDAscHBkKTtiRChiLDEsWW9kKX1yZXR1cm4gYn1cbmZ1bmN0aW9uIGhNYyhhLGIsYyl7dmFyIGQsZSxmO2U9Zk1jKGEsYixjKTtmPWlNYyhhLGUpO1lMYyhhLmIpO0NNYyhhLGIsYyk7eW9iKCk7X21iKGUsbmV3IEhNYyhhKSk7ZD1pTWMoYSxlKTtZTGMoYS5iKTtDTWMoYSxjLGIpO3JldHVybiBuZXcgUHRkKHNnYihmKSxzZ2IoZCkpfVxuZnVuY3Rpb24gSk5jKCl7Sk5jPWdlYjtHTmM9cGZkKG5ldyB1ZmQsKHNYYigpLHJYYiksKGhjYygpLHliYykpO0hOYz1uZXcga0dkKCdsaW5lYXJTZWdtZW50cy5pbnB1dFByaW8nLHNnYigwKSk7SU5jPW5ldyBrR2QoJ2xpbmVhclNlZ21lbnRzLm91dHB1dFByaW8nLHNnYigwKSl9XG5mdW5jdGlvbiBZVmMoKXtZVmM9Z2ViO1VWYz1uZXcgJFZjKCdQMV9UUkVFSUZJQ0FUSU9OJywwKTtWVmM9bmV3ICRWYygnUDJfTk9ERV9PUkRFUklORycsMSk7V1ZjPW5ldyAkVmMoJ1AzX05PREVfUExBQ0VNRU5UJywyKTtYVmM9bmV3ICRWYygnUDRfRURHRV9ST1VUSU5HJywzKX1cbmZ1bmN0aW9uIHlhZChhKXt2YXIgYixjLGQsZTtjPTA7Yj0wO2ZvcihlPW5ldyBkTWQoYSk7ZS5lIT1lLmkuZ2MoKTspe2Q9UkQoYk1kKGUpLDI3KTtjPSR3bmQuTWF0aC5tYXgoZC5nK2QuaSxjKTtiPSR3bmQuTWF0aC5tYXgoZC5mK2QuaixiKX1yZXR1cm4gbmV3IHJqZChjLGIpfVxuZnVuY3Rpb24gYXJkKGEsYil7dmFyIGMsZCxlLGY7Zj0wO2ZvcihkPW5ldyBBbmIoYSk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDI3KTtmKz0kd25kLk1hdGgucG93KGMuZypjLmYtYiwyKX1lPSR3bmQuTWF0aC5zcXJ0KGYvKGEuYy5sZW5ndGgtMSkpO3JldHVybiBlfVxuZnVuY3Rpb24gUG5kKCl7UG5kPWdlYjtPbmQ9bmV3IFJuZCgnVU5LTk9XTicsMCk7TG5kPW5ldyBSbmQoJ0FCT1ZFJywxKTtNbmQ9bmV3IFJuZCgnQkVMT1cnLDIpO05uZD1uZXcgUm5kKCdJTkxJTkUnLDMpO25ldyBrR2QoJ29yZy5lY2xpcHNlLmVsay5sYWJlbFNpZGUnLE9uZCl9XG5mdW5jdGlvbiBSSGQoYSxiKXt2YXIgYztpZihhLllpKCkmJmIhPW51bGwpe2ZvcihjPTA7YzxhLmk7KytjKXtpZihwYihiLGEuZ1tjXSkpe3JldHVybiBjfX19ZWxzZXtmb3IoYz0wO2M8YS5pOysrYyl7aWYoZEUoYS5nW2NdKT09PWRFKGIpKXtyZXR1cm4gY319fXJldHVybiAtMX1cbmZ1bmN0aW9uIEwwYihhLGIsYyl7dmFyIGQsZTtpZihiLmM9PShCRWMoKSx6RWMpJiZjLmM9PXlFYyl7cmV0dXJuIC0xfWVsc2UgaWYoYi5jPT15RWMmJmMuYz09ekVjKXtyZXR1cm4gMX1kPVAwYihiLmEsYS5hKTtlPVAwYihjLmEsYS5hKTtyZXR1cm4gYi5jPT16RWM/ZS1kOmQtZX1cbmZ1bmN0aW9uIGYzYihhLGIsYyl7aWYoISFjJiYoYjwwfHxiPmMuYS5jLmxlbmd0aCkpe3Rocm93IEFkYihuZXcgYWdiKCdpbmRleCBtdXN0IGJlID49IDAgYW5kIDw9IGxheWVyIG5vZGUgY291bnQnKSl9ISFhLmMmJlltYihhLmMuYSxhKTthLmM9YzshIWMmJlFtYihjLmEsYixhKX1cbmZ1bmN0aW9uIEdhYyhhLGIpe3ZhciBjLGQsZTtmb3IoZD1uZXcgaXMoTXIoVzJiKGEpLmEuS2MoKSxuZXcgaXIpKTtncyhkKTspe2M9UkQoaHMoZCksMTgpO2U9UkQoYi5LYihjKSwxMCk7cmV0dXJuIG5ldyBjYyhRYihlLm4uYitlLm8uYi8yKSl9cmV0dXJuIHdiKCksd2IoKSx2Yn1cbmZ1bmN0aW9uIFJRYyhhLGIpe3RoaXMuYz1uZXcgVHNiO3RoaXMuYT1hO3RoaXMuYj1iO3RoaXMuZD1SRChtUWIoYSwoWXdjKCksUXdjKSksMzEyKTtkRShtUWIoYSwoeUNjKCksZUJjKSkpPT09ZEUoKEN1YygpLEF1YykpPyh0aGlzLmU9bmV3IEJSYyk6KHRoaXMuZT1uZXcgdVJjKX1cbmZ1bmN0aW9uIGZ0ZChhLGIpe3ZhciBjLGQ7ZD1udWxsO2lmKGEucGYoKHVtZCgpLGFtZCkpKXtjPVJEKGEub2YoYW1kKSw5Nik7Yy5wZihiKSYmKGQ9Yy5vZihiKSl9ZD09bnVsbCYmISFhLlRmKCkmJihkPWEuVGYoKS5vZihiKSk7ZD09bnVsbCYmKGQ9aUdkKGIpKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIGt1KGIsYyl7dmFyIGQsZTtkPWIuZmQoYyk7dHJ5e2U9ZC5QYigpO2QuUWIoKTtyZXR1cm4gZX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDExMikpe3Rocm93IEFkYihuZXcgdmViKFwiQ2FuJ3QgcmVtb3ZlIGVsZW1lbnQgXCIrYykpfWVsc2UgdGhyb3cgQWRiKGEpfX1cbmZ1bmN0aW9uIEdBKGEsYil7dmFyIGMsZCxlO2Q9bmV3IHVCO2U9bmV3IHZCKGQucS5nZXRGdWxsWWVhcigpLU93ZSxkLnEuZ2V0TW9udGgoKSxkLnEuZ2V0RGF0ZSgpKTtjPUZBKGEsYixlKTtpZihjPT0wfHxjPGIubGVuZ3RoKXt0aHJvdyBBZGIobmV3IGFnYihiKSl9cmV0dXJuIGV9XG5mdW5jdGlvbiBpd2IoYSxiKXt2YXIgYyxkLGU7dUZiKGIpO2xGYihiIT1hKTtlPWEuYi5jLmxlbmd0aDtmb3IoZD1iLktjKCk7ZC5PYigpOyl7Yz1kLlBiKCk7Um1iKGEuYix1RmIoYykpfWlmKGUhPWEuYi5jLmxlbmd0aCl7andiKGEsMCk7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gZFdiKCl7ZFdiPWdlYjtYVmI9KHVtZCgpLGFsZCk7bmV3IG1HZChQa2QsKEdlYigpLHRydWUpKTskVmI9a2xkO19WYj1ubGQ7YVdiPXBsZDtaVmI9aWxkO2JXYj1zbGQ7Y1diPUxsZDtXVmI9KFFWYigpLE9WYik7VVZiPUxWYjtWVmI9TlZiO1lWYj1QVmI7VFZiPUtWYn1cbmZ1bmN0aW9uIFUwYihhLGIpe2lmKGI9PWEuYyl7cmV0dXJuIGEuZH1lbHNlIGlmKGI9PWEuZCl7cmV0dXJuIGEuY31lbHNle3Rocm93IEFkYihuZXcgYWdiKFwiJ3BvcnQnIG11c3QgYmUgZWl0aGVyIHRoZSBzb3VyY2UgcG9ydCBvciB0YXJnZXQgcG9ydCBvZiB0aGUgZWRnZS5cIikpfX1cbmZ1bmN0aW9uIFQ2YihhLGIsYyl7dmFyIGQsZTtlPWEubztkPWEuZDtzd2l0Y2goYi5nKXtjYXNlIDE6cmV0dXJuIC1kLmQtYztjYXNlIDM6cmV0dXJuIGUuYitkLmErYztjYXNlIDI6cmV0dXJuIGUuYStkLmMrYztjYXNlIDQ6cmV0dXJuIC1kLmItYztkZWZhdWx0OnJldHVybiAwO319XG5mdW5jdGlvbiBZOWIoYSxiLGMsZCl7dmFyIGUsZixnLGg7ZzNiKGIsUkQoZC5YYigwKSwzMCkpO2g9ZC5rZCgxLGQuZ2MoKSk7Zm9yKGY9UkQoYy5LYihiKSwyMCkuS2MoKTtmLk9iKCk7KXtlPVJEKGYuUGIoKSwxOCk7Zz1lLmMuaT09Yj9lLmQuaTplLmMuaTtZOWIoYSxnLGMsaCl9fVxuZnVuY3Rpb24gQmljKGEpe3ZhciBiO2I9bmV3IFRzYjtpZihuUWIoYSwoWXdjKCksVndjKSkpe3JldHVybiBSRChtUWIoYSxWd2MpLDg1KX1GRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuaiwxNikpLG5ldyBEaWMpLG5ldyBGaWMoYikpO3BRYihhLFZ3YyxiKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIHphZChhLGIpe3ZhciBjLGQsZSxmLGc7ZD0wO2U9MDtjPTA7Zm9yKGc9bmV3IEFuYihhKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMTg2KTtkPSR3bmQuTWF0aC5tYXgoZCxmLmUpO2UrPWYuYisoYz4wP2I6MCk7KytjfXJldHVybiBuZXcgcmpkKGQsZSl9XG5mdW5jdGlvbiBDemQoYSxiKXt2YXIgYyxkO2lmKGEuRGI+PjE2PT02KXtyZXR1cm4gYS5DYi5UaChhLDYsRzQsYil9cmV0dXJuIGQ9WjVkKFJEKHZZZCgoYz1SRChZd2QoYSwxNiksMjkpLCFjPyhwdmQoKSxodmQpOmMpLGEuRGI+PjE2KSwxOSkpLGEuQ2IuVGgoYSxkLm4sZC5mLGIpfVxuZnVuY3Rpb24gY0NkKGEsYil7dmFyIGMsZDtpZihhLkRiPj4xNj09Nyl7cmV0dXJuIGEuQ2IuVGgoYSwxLEg0LGIpfXJldHVybiBkPVo1ZChSRCh2WWQoKGM9UkQoWXdkKGEsMTYpLDI5KSwhYz8ocHZkKCksanZkKTpjKSxhLkRiPj4xNiksMTkpKSxhLkNiLlRoKGEsZC5uLGQuZixiKX1cbmZ1bmN0aW9uIExDZChhLGIpe3ZhciBjLGQ7aWYoYS5EYj4+MTY9PTkpe3JldHVybiBhLkNiLlRoKGEsOSxKNCxiKX1yZXR1cm4gZD1aNWQoUkQodllkKChjPVJEKFl3ZChhLDE2KSwyOSksIWM/KHB2ZCgpLGx2ZCk6YyksYS5EYj4+MTYpLDE5KSksYS5DYi5UaChhLGQubixkLmYsYil9XG5mdW5jdGlvbiBNMWQoYSxiKXt2YXIgYyxkO2lmKGEuRGI+PjE2PT01KXtyZXR1cm4gYS5DYi5UaChhLDksbTcsYil9cmV0dXJuIGQ9WjVkKFJEKHZZZCgoYz1SRChZd2QoYSwxNiksMjkpLCFjPyhKVGQoKSx0VGQpOmMpLGEuRGI+PjE2KSwxOSkpLGEuQ2IuVGgoYSxkLm4sZC5mLGIpfVxuZnVuY3Rpb24gcUJkKGEsYil7dmFyIGMsZDtpZihhLkRiPj4xNj09Nyl7cmV0dXJuIGEuQ2IuVGgoYSw2LHQ3LGIpfXJldHVybiBkPVo1ZChSRCh2WWQoKGM9UkQoWXdkKGEsMTYpLDI5KSwhYz8oSlRkKCksQ1RkKTpjKSxhLkRiPj4xNiksMTkpKSxhLkNiLlRoKGEsZC5uLGQuZixiKX1cbmZ1bmN0aW9uIGlWZChhLGIpe3ZhciBjLGQ7aWYoYS5EYj4+MTY9PTMpe3JldHVybiBhLkNiLlRoKGEsMCxwNyxiKX1yZXR1cm4gZD1aNWQoUkQodllkKChjPVJEKFl3ZChhLDE2KSwyOSksIWM/KEpUZCgpLG1UZCk6YyksYS5EYj4+MTYpLDE5KSksYS5DYi5UaChhLGQubixkLmYsYil9XG5mdW5jdGlvbiBJRWQoKXt0aGlzLmE9bmV3IEJEZDt0aGlzLmc9bmV3IElvO3RoaXMuaj1uZXcgSW87dGhpcy5iPW5ldyBUc2I7dGhpcy5kPW5ldyBJbzt0aGlzLmk9bmV3IElvO3RoaXMuaz1uZXcgVHNiO3RoaXMuYz1uZXcgVHNiO3RoaXMuZT1uZXcgVHNiO3RoaXMuZj1uZXcgVHNifVxuZnVuY3Rpb24ga1FkKGEsYixjKXt2YXIgZCxlLGY7YzwwJiYoYz0wKTtmPWEuaTtmb3IoZT1jO2U8ZjtlKyspe2Q9UUhkKGEsZSk7aWYoYj09bnVsbCl7aWYoZD09bnVsbCl7cmV0dXJuIGV9fWVsc2UgaWYoZEUoYik9PT1kRShkKXx8cGIoYixkKSl7cmV0dXJuIGV9fXJldHVybiAtMX1cbmZ1bmN0aW9uIEJlZShhLGIpe3ZhciBjLGQ7Yz1iLnFpKGEuYSk7aWYoIWMpe3JldHVybiBudWxsfWVsc2V7ZD1XRCgkTmQoKCFjLmImJihjLmI9bmV3IFNWZCgoSlRkKCksRlRkKSxDOCxjKSksYy5iKSxfS2UpKTtyZXR1cm4gbGhiKGFMZSxkKT9VZWUoYSxCWGQoYi5xaygpKSk6ZH19XG5mdW5jdGlvbiBPamUoYSxiKXt2YXIgYyxkO2lmKGIpe2lmKGI9PWEpe3JldHVybiB0cnVlfWM9MDtmb3IoZD1SRChiLDU0KS5QaCgpOyEhZCYmZCE9YjtkPWQuUGgoKSl7aWYoKytjPnd4ZSl7cmV0dXJuIE9qZShhLGQpfWlmKGQ9PWEpe3JldHVybiB0cnVlfX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24geU5iKGEpe3ROYigpO3N3aXRjaChhLnEuZyl7Y2FzZSA1OnZOYihhLChxcGQoKSxZb2QpKTt2TmIoYSxucGQpO2JyZWFrO2Nhc2UgNDp3TmIoYSwocXBkKCksWW9kKSk7d05iKGEsbnBkKTticmVhaztkZWZhdWx0OnhOYihhLChxcGQoKSxZb2QpKTt4TmIoYSxucGQpO319XG5mdW5jdGlvbiBDTmIoYSl7dE5iKCk7c3dpdGNoKGEucS5nKXtjYXNlIDU6ek5iKGEsKHFwZCgpLFhvZCkpO3pOYihhLHBwZCk7YnJlYWs7Y2FzZSA0OkFOYihhLChxcGQoKSxYb2QpKTtBTmIoYSxwcGQpO2JyZWFrO2RlZmF1bHQ6Qk5iKGEsKHFwZCgpLFhvZCkpO0JOYihhLHBwZCk7fX1cbmZ1bmN0aW9uIFJUYihhKXt2YXIgYixjO2I9UkQobVFiKGEsKHlWYigpLG1WYikpLDE3KTtpZihiKXtjPWIuYTtjPT0wP3BRYihhLChKVmIoKSxJVmIpLG5ldyBPd2IpOnBRYihhLChKVmIoKSxJVmIpLG5ldyBQd2IoYykpfWVsc2V7cFFiKGEsKEpWYigpLElWYiksbmV3IFB3YigxKSl9fVxuZnVuY3Rpb24gYjJiKGEsYil7dmFyIGM7Yz1hLmk7c3dpdGNoKGIuZyl7Y2FzZSAxOnJldHVybiAtKGEubi5iK2Euby5iKTtjYXNlIDI6cmV0dXJuIGEubi5hLWMuby5hO2Nhc2UgMzpyZXR1cm4gYS5uLmItYy5vLmI7Y2FzZSA0OnJldHVybiAtKGEubi5hK2Euby5hKTt9cmV0dXJuIDB9XG5mdW5jdGlvbiB3ZWMoYSxiKXtzd2l0Y2goYS5nKXtjYXNlIDA6cmV0dXJuIGI9PShjeGMoKSwkd2MpP3NlYzp0ZWM7Y2FzZSAxOnJldHVybiBiPT0oY3hjKCksJHdjKT9zZWM6cmVjO2Nhc2UgMjpyZXR1cm4gYj09KGN4YygpLCR3Yyk/cmVjOnRlYztkZWZhdWx0OnJldHVybiByZWM7fX1cbmZ1bmN0aW9uIEZhZChhLGIpe3ZhciBjLGQsZTtZbWIoYS5hLGIpO2EuZS09Yi5yKyhhLmEuYy5sZW5ndGg9PTA/MDphLmMpO2U9ZkZlO2ZvcihkPW5ldyBBbmIoYS5hKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMTcyKTtlPSR3bmQuTWF0aC5tYXgoZSxjLmQpfWEuYj1lfVxuZnVuY3Rpb24ganpkKGEsYil7dmFyIGMsZDtpZihhLkRiPj4xNj09Myl7cmV0dXJuIGEuQ2IuVGgoYSwxMixKNCxiKX1yZXR1cm4gZD1aNWQoUkQodllkKChjPVJEKFl3ZChhLDE2KSwyOSksIWM/KHB2ZCgpLGd2ZCk6YyksYS5EYj4+MTYpLDE5KSksYS5DYi5UaChhLGQubixkLmYsYil9XG5mdW5jdGlvbiBzQ2QoYSxiKXt2YXIgYyxkO2lmKGEuRGI+PjE2PT0xMSl7cmV0dXJuIGEuQ2IuVGgoYSwxMCxKNCxiKX1yZXR1cm4gZD1aNWQoUkQodllkKChjPVJEKFl3ZChhLDE2KSwyOSksIWM/KHB2ZCgpLGt2ZCk6YyksYS5EYj4+MTYpLDE5KSksYS5DYi5UaChhLGQubixkLmYsYil9XG5mdW5jdGlvbiBuNGQoYSxiKXt2YXIgYyxkO2lmKGEuRGI+PjE2PT0xMCl7cmV0dXJuIGEuQ2IuVGgoYSwxMSxoNyxiKX1yZXR1cm4gZD1aNWQoUkQodllkKChjPVJEKFl3ZChhLDE2KSwyOSksIWM/KEpUZCgpLEFUZCk6YyksYS5EYj4+MTYpLDE5KSksYS5DYi5UaChhLGQubixkLmYsYil9XG5mdW5jdGlvbiBRNWQoYSxiKXt2YXIgYyxkO2lmKGEuRGI+PjE2PT0xMCl7cmV0dXJuIGEuQ2IuVGgoYSwxMixzNyxiKX1yZXR1cm4gZD1aNWQoUkQodllkKChjPVJEKFl3ZChhLDE2KSwyOSksIWM/KEpUZCgpLERUZCk6YyksYS5EYj4+MTYpLDE5KSksYS5DYi5UaChhLGQubixkLmYsYil9XG5mdW5jdGlvbiBXVmQoYSl7dmFyIGI7aWYoKGEuQmImMSk9PTAmJiEhYS5yJiZhLnIuVmgoKSl7Yj1SRChhLnIsNTQpO2Eucj1SRChWdmQoYSxiKSwxNDIpO2EuciE9YiYmKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsOSw4LGIsYS5yKSl9cmV0dXJuIGEucn1cbmZ1bmN0aW9uIHBLYihhLGIsYyl7dmFyIGQ7ZD1jRChXQyhpRSwxKSx2eGUsMjgsMTUsW3NLYihhLChaSmIoKSxXSmIpLGIsYyksc0tiKGEsWEpiLGIsYyksc0tiKGEsWUpiLGIsYyldKTtpZihhLmYpe2RbMF09JHduZC5NYXRoLm1heChkWzBdLGRbMl0pO2RbMl09ZFswXX1yZXR1cm4gZH1cbmZ1bmN0aW9uIGRkYyhhLGIpe3ZhciBjLGQsZTtlPWtkYyhhLGIpO2lmKGUuYy5sZW5ndGg9PTApe3JldHVybn1fbWIoZSxuZXcgR2RjKTtjPWUuYy5sZW5ndGg7Zm9yKGQ9MDtkPGM7ZCsrKXtfY2MoYSwodEZiKGQsZS5jLmxlbmd0aCksUkQoZS5jW2RdLDI5MykpLGdkYyhhLGUsZCkpfX1cbmZ1bmN0aW9uIFduYyhhKXt2YXIgYixjLGQsZTtmb3IoZT1SRChRYyhhLmEsKEJuYygpLHduYykpLDE1KS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDEwNSk7Zm9yKGM9RWMoZC5rKS5LYygpO2MuT2IoKTspe2I9UkQoYy5QYigpLDY0KTtRbmMoYSxkLGIsKGpvYygpLGhvYyksMSl9fX1cbmZ1bmN0aW9uIFlyYyhhKXt2YXIgYixjO2lmKGEuaz09KHIzYigpLG8zYikpe2ZvcihjPW5ldyBpcyhNcihXMmIoYSkuYS5LYygpLG5ldyBpcikpO2dzKGMpOyl7Yj1SRChocyhjKSwxOCk7aWYoIVcwYihiKSYmYS5jPT1UMGIoYixhKS5jKXtyZXR1cm4gdHJ1ZX19fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIGhTYyhhKXt2YXIgYixjO2lmKGEuaz09KHIzYigpLG8zYikpe2ZvcihjPW5ldyBpcyhNcihXMmIoYSkuYS5LYygpLG5ldyBpcikpO2dzKGMpOyl7Yj1SRChocyhjKSwxOCk7aWYoIVcwYihiKSYmYi5jLmkuYz09Yi5kLmkuYyl7cmV0dXJuIHRydWV9fX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBYRGQoYSxiKXt2YXIgYyxkLGUsZixnO2lmKGIpe2U9Yi5hLmxlbmd0aDtjPW5ldyB2dWUoZSk7Zm9yKGc9KGMuYi1jLmEpKmMuYzwwPyh1dWUoKSx0dWUpOm5ldyBSdWUoYyk7Zy5PYigpOyl7Zj1SRChnLlBiKCksMTcpO2Q9eERkKGIsZi5hKTshIWQmJkFFZChhLGQpfX19XG5mdW5jdGlvbiBiYmUoKXtUYWUoKTt2YXIgYSxiO1hhZSgobFRkKCksa1RkKSk7V2FlKGtUZCk7ckJkKGtUZCk7ZDJkPShKVGQoKSx3VGQpO2ZvcihiPW5ldyBBbmIoUmFlKTtiLmE8Yi5jLmMubGVuZ3RoOyl7YT1SRCh5bmIoYiksMjQ4KTtvMmQoYSx3VGQsbnVsbCl9cmV0dXJuIHRydWV9XG5mdW5jdGlvbiB1RChhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGo7aT1hLmg+PjE5O2o9Yi5oPj4xOTtpZihpIT1qKXtyZXR1cm4gai1pfWU9YS5oO2g9Yi5oO2lmKGUhPWgpe3JldHVybiBlLWh9ZD1hLm07Zz1iLm07aWYoZCE9Zyl7cmV0dXJuIGQtZ31jPWEubDtmPWIubDtyZXR1cm4gYy1mfVxuZnVuY3Rpb24gWUhiKCl7WUhiPWdlYjtYSGI9KGlJYigpLGZJYik7V0hiPW5ldyBsR2QoQXllLFhIYik7VkhiPShMSGIoKSxLSGIpO1VIYj1uZXcgbEdkKEJ5ZSxWSGIpO1RIYj0oREhiKCksQ0hiKTtTSGI9bmV3IGxHZChDeWUsVEhiKTtSSGI9bmV3IGxHZChEeWUsKEdlYigpLHRydWUpKX1cbmZ1bmN0aW9uIElpYyhhLGIsYyl7dmFyIGQsZTtkPWIqYztpZihaRChhLmcsMTU0KSl7ZT0kamMoYSk7aWYoZS5mLmQpe2UuZi5hfHwoYS5kLmErPWQrVHllKX1lbHNle2EuZC5kLT1kK1R5ZTthLmQuYSs9ZCtUeWV9fWVsc2UgaWYoWkQoYS5nLDEwKSl7YS5kLmQtPWQ7YS5kLmErPTIqZH19XG5mdW5jdGlvbiBfcGMoYSxiLGMpe3ZhciBkLGUsZixnLGg7ZT1hW2MuZ107Zm9yKGg9bmV3IEFuYihiLmQpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMDUpO2Y9Zy5pO2lmKCEhZiYmZi5pPT1jKXtkPWcuZFtjLmddO2VbZF09JHduZC5NYXRoLm1heChlW2RdLGYuai5iKX19fVxuZnVuY3Rpb24gazljKGEsYil7dmFyIGMsZCxlLGYsZztkPTA7ZT0wO2M9MDtmb3IoZz1uZXcgQW5iKGIuZCk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDMxNSk7Z2FkKGYpO2Q9JHduZC5NYXRoLm1heChkLGYuYik7ZSs9Zi5kKyhjPjA/YS5iOjApOysrY31iLmI9ZDtiLmU9ZX1cbmZ1bmN0aW9uIEZvKGEpe3ZhciBiLGMsZDtkPWEuYjtpZihYcChhLmksZC5sZW5ndGgpKXtjPWQubGVuZ3RoKjI7YS5iPSRDKFhGLGV3ZSwzMDMsYywwLDEpO2EuYz0kQyhYRixld2UsMzAzLGMsMCwxKTthLmY9Yy0xO2EuaT0wO2ZvcihiPWEuYTtiO2I9Yi5jKXtCbyhhLGIsYil9KythLmd9fVxuZnVuY3Rpb24gVlBiKGEsYixjLGQpe3ZhciBlLGYsZyxoO2ZvcihlPTA7ZTxiLm87ZSsrKXtmPWUtYi5qK2M7Zm9yKGc9MDtnPGIucDtnKyspe2g9Zy1iLmsrZDtQUGIoYixlLGcpP2FRYihhLGYsaCl8fGNRYihhLGYsaCk6UlBiKGIsZSxnKSYmKCRQYihhLGYsaCl8fGRRYihhLGYsaCkpfX19XG5mdW5jdGlvbiBrX2IoYSxiKXthLmIuYT0kd25kLk1hdGgubWluKGEuYi5hLGIuYyk7YS5iLmI9JHduZC5NYXRoLm1pbihhLmIuYixiLmQpO2EuYS5hPSR3bmQuTWF0aC5tYXgoYS5hLmEsYi5jKTthLmEuYj0kd25kLk1hdGgubWF4KGEuYS5iLGIuZCk7cmV0dXJuIFpFYihhLmMsYiksdHJ1ZX1cbmZ1bmN0aW9uIHBzYyhhLGIsYyl7dmFyIGQ7ZD1iLmMuaTtpZihkLms9PShyM2IoKSxvM2IpKXtwUWIoYSwoWXdjKCksdndjKSxSRChtUWIoZCx2d2MpLDEyKSk7cFFiKGEsd3djLFJEKG1RYihkLHd3YyksMTIpKX1lbHNle3BRYihhLChZd2MoKSx2d2MpLGIuYyk7cFFiKGEsd3djLGMuZCl9fVxuZnVuY3Rpb24gd2lkKGEsYixjKXt0aWQoKTt2YXIgZCxlLGYsZyxoLGk7Zz1iLzI7Zj1jLzI7ZD0kd25kLk1hdGguYWJzKGEuYSk7ZT0kd25kLk1hdGguYWJzKGEuYik7aD0xO2k9MTtkPmcmJihoPWcvZCk7ZT5mJiYoaT1mL2UpO2lqZChhLCR3bmQuTWF0aC5taW4oaCxpKSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBPQWQoKXtxQWQoKTt2YXIgYixjO3RyeXtjPVJEKE01ZCgoWVNkKCksWFNkKSwkSGUpLDIxMTMpO2lmKGMpe3JldHVybiBjfX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDEwMykpe2I9YTtVSWQoKEhkZSgpLGIpKX1lbHNlIHRocm93IEFkYihhKX1yZXR1cm4gbmV3IEtBZH1cbmZ1bmN0aW9uIFFhZSgpe3FBZCgpO3ZhciBiLGM7dHJ5e2M9UkQoTTVkKChZU2QoKSxYU2QpLEFLZSksMjA0MCk7aWYoYyl7cmV0dXJuIGN9fWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMTAzKSl7Yj1hO1VJZCgoSGRlKCksYikpfWVsc2UgdGhyb3cgQWRiKGEpfXJldHVybiBuZXcgTWFlfVxuZnVuY3Rpb24gdm5lKCl7Wm1lKCk7dmFyIGIsYzt0cnl7Yz1SRChNNWQoKFlTZCgpLFhTZCksZExlKSwyMTIyKTtpZihjKXtyZXR1cm4gY319Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwxMDMpKXtiPWE7VUlkKChIZGUoKSxiKSl9ZWxzZSB0aHJvdyBBZGIoYSl9cmV0dXJuIG5ldyBybmV9XG5mdW5jdGlvbiBmMmQoYSxiLGMpe3ZhciBkLGU7ZT1hLmU7YS5lPWI7aWYoKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wKXtkPW5ldyBOM2QoYSwxLDQsZSxiKTshYz8oYz1kKTpjLm5qKGQpfWUhPWImJihiPyhjPW8yZChhLGsyZChhLGIpLGMpKTooYz1vMmQoYSxhLmEsYykpKTtyZXR1cm4gY31cbmZ1bmN0aW9uIERCKCl7dUIuY2FsbCh0aGlzKTt0aGlzLmU9LTE7dGhpcy5hPWZhbHNlO3RoaXMucD1xd2U7dGhpcy5rPS0xO3RoaXMuYz0tMTt0aGlzLmI9LTE7dGhpcy5nPWZhbHNlO3RoaXMuZj0tMTt0aGlzLmo9LTE7dGhpcy5uPS0xO3RoaXMuaT0tMTt0aGlzLmQ9LTE7dGhpcy5vPXF3ZX1cbmZ1bmN0aW9uIGhIYihhLGIpe3ZhciBjLGQsZTtkPWEuYi5kLmQ7YS5hfHwoZCs9YS5iLmQuYSk7ZT1iLmIuZC5kO2IuYXx8KGUrPWIuYi5kLmEpO2M9UWZiKGQsZSk7aWYoYz09MCl7aWYoIWEuYSYmYi5hKXtyZXR1cm4gLTF9ZWxzZSBpZighYi5hJiZhLmEpe3JldHVybiAxfX1yZXR1cm4gY31cbmZ1bmN0aW9uIFhRYihhLGIpe3ZhciBjLGQsZTtkPWEuYi5iLmQ7YS5hfHwoZCs9YS5iLmIuYSk7ZT1iLmIuYi5kO2IuYXx8KGUrPWIuYi5iLmEpO2M9UWZiKGQsZSk7aWYoYz09MCl7aWYoIWEuYSYmYi5hKXtyZXR1cm4gLTF9ZWxzZSBpZighYi5hJiZhLmEpe3JldHVybiAxfX1yZXR1cm4gY31cbmZ1bmN0aW9uIFJZYihhLGIpe3ZhciBjLGQsZTtkPWEuYi5nLmQ7YS5hfHwoZCs9YS5iLmcuYSk7ZT1iLmIuZy5kO2IuYXx8KGUrPWIuYi5nLmEpO2M9UWZiKGQsZSk7aWYoYz09MCl7aWYoIWEuYSYmYi5hKXtyZXR1cm4gLTF9ZWxzZSBpZighYi5hJiZhLmEpe3JldHVybiAxfX1yZXR1cm4gY31cbmZ1bmN0aW9uIF9XYigpe19XYj1nZWI7WVdiPW5mZChwZmQocGZkKHBmZChuZXcgdWZkLChzWGIoKSxxWGIpLChoY2MoKSxEYmMpKSxxWGIsSGJjKSxyWGIsT2JjKSxyWGIscmJjKTskV2I9cGZkKHBmZChuZXcgdWZkLHFYYixoYmMpLHFYYixzYmMpO1pXYj1uZmQobmV3IHVmZCxyWGIsdWJjKX1cbmZ1bmN0aW9uIEo2YihhKXt2YXIgYixjLGQsZSxmO2I9UkQobVFiKGEsKFl3YygpLGN3YykpLDg1KTtmPWEubjtmb3IoZD1iLkNjKCkuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSwzMTQpO2U9Yy5pO2UuYys9Zi5hO2UuZCs9Zi5iO2MuYz9NS2IoYyk6T0tiKGMpfXBRYihhLGN3YyxudWxsKX1cbmZ1bmN0aW9uIFdwYyhhLGIsYyl7dmFyIGQsZTtlPWEuYjtkPWUuZDtzd2l0Y2goYi5nKXtjYXNlIDE6cmV0dXJuIC1kLmQtYztjYXNlIDI6cmV0dXJuIGUuby5hK2QuYytjO2Nhc2UgMzpyZXR1cm4gZS5vLmIrZC5hK2M7Y2FzZSA0OnJldHVybiAtZC5iLWM7ZGVmYXVsdDpyZXR1cm4gLTE7fX1cbmZ1bmN0aW9uIENOYyhhLGIsYyl7dmFyIGQsZTtjLlVnKCdJbnRlcmFjdGl2ZSBub2RlIHBsYWNlbWVudCcsMSk7YS5hPVJEKG1RYihiLChZd2MoKSxRd2MpKSwzMTIpO2ZvcihlPW5ldyBBbmIoYi5iKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMzApO0JOYyhhLGQpfWMuVmcoKX1cbmZ1bmN0aW9uIEM1YyhhKXt2YXIgYixjLGQsZSxmO2Q9MDtlPUh6ZTtpZihhLmIpe2ZvcihiPTA7YjwzNjA7YisrKXtjPWIqMC4wMTc0NTMyOTI1MTk5NDMyOTU7QTVjKGEsYS5kLDAsMCxkRmUsYyk7Zj1hLmIuRGcoYS5kKTtpZihmPGUpe2Q9YztlPWZ9fX1BNWMoYSxhLmQsMCwwLGRGZSxkKX1cbmZ1bmN0aW9uIE9hZChhLGIpe3ZhciBjLGQsZSxmO2Y9bmV3IFRzYjtiLmU9bnVsbDtiLmY9bnVsbDtmb3IoZD1uZXcgQW5iKGIuaSk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDY4KTtlPVJEKFdqYihhLmcsYy5hKSw0Mik7Yy5hPU9pZChjLmIpO1pqYihmLGMuYSxlKX1hLmc9Zn1cbmZ1bmN0aW9uIERhZChhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2U9Yi1hLmU7Zj1lL2EuZC5jLmxlbmd0aDtnPTA7Zm9yKGk9bmV3IEFuYihhLmQpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwzMTUpO2Q9YS5iLWguYitjO2ZhZChoLGguZStnKmYsaC5mKTtiYWQoaCxmLGQpOysrZ319XG5mdW5jdGlvbiB3UGQoYSl7dmFyIGI7YS5mLl9qKCk7aWYoYS5iIT0tMSl7KythLmI7Yj1hLmYuZFthLmFdO2lmKGEuYjxiLmkpe3JldHVybn0rK2EuYX1mb3IoO2EuYTxhLmYuZC5sZW5ndGg7KythLmEpe2I9YS5mLmRbYS5hXTtpZighIWImJmIuaSE9MCl7YS5iPTA7cmV0dXJufX1hLmI9LTF9XG5mdW5jdGlvbiBKZGUoYSxiKXt2YXIgYyxkLGU7ZT1iLmMubGVuZ3RoO2M9TGRlKGEsZT09MD8nJzoodEZiKDAsYi5jLmxlbmd0aCksV0QoYi5jWzBdKSkpO2ZvcihkPTE7ZDxlJiYhIWM7KytkKXtjPVJEKGMsNTQpLlpoKCh0RmIoZCxiLmMubGVuZ3RoKSxXRChiLmNbZF0pKSl9cmV0dXJuIGN9XG5mdW5jdGlvbiBSSWMoYSxiKXt2YXIgYyxkO2ZvcihkPW5ldyBBbmIoYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDEwKTthLmNbYy5jLnBdW2MucF0uYT1Jd2IoYS5pKTthLmNbYy5jLnBdW2MucF0uZD1LZmIoYS5jW2MuYy5wXVtjLnBdLmEpO2EuY1tjLmMucF1bYy5wXS5iPTF9fVxuZnVuY3Rpb24gYnJkKGEsYil7dmFyIGMsZCxlLGY7Zj0wO2ZvcihkPW5ldyBBbmIoYSk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDE2Myk7Zis9JHduZC5NYXRoLnBvdyh1cmQoYykqdHJkKGMpLWIsMil9ZT0kd25kLk1hdGguc3FydChmLyhhLmMubGVuZ3RoLTEpKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIHVNYihhLGIpe3ZhciBjLGQsZSxmO2Y9MDtmb3IoZT1SRChSRChRYyhhLnIsYiksMjEpLDg3KS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDExNyk7Zj0kd25kLk1hdGgubWF4KGYsZC5lLmErZC5iLk1mKCkuYSl9Yz1SRChWcmIoYS5iLGIpLDEyNyk7Yy5uLmI9MDtjLmEuYT1mfVxuZnVuY3Rpb24gRE5iKGEsYil7dmFyIGMsZCxlLGY7Yz0wO2ZvcihmPVJEKFJEKFFjKGEucixiKSwyMSksODcpLktjKCk7Zi5PYigpOyl7ZT1SRChmLlBiKCksMTE3KTtjPSR3bmQuTWF0aC5tYXgoYyxlLmUuYitlLmIuTWYoKS5iKX1kPVJEKFZyYihhLmIsYiksMTI3KTtkLm4uZD0wO2QuYS5iPWN9XG5mdW5jdGlvbiBqTWMoYSxiLGMsZCl7dmFyIGUsZixnO2Y9ZU1jKGEsYixjLGQpO2c9a01jKGEsZik7Qk1jKGEsYixjLGQpO1lMYyhhLmIpO3lvYigpO19tYihmLG5ldyBMTWMoYSkpO2U9a01jKGEsZik7Qk1jKGEsYyxiLGQpO1lMYyhhLmIpO3JldHVybiBuZXcgUHRkKHNnYihnKSxzZ2IoZSkpfVxuZnVuY3Rpb24gdWRkKGEsYil7dmFyIGM7Yi5VZygnRGVsYXVuYXkgdHJpYW5ndWxhdGlvbicsMSk7Yz1uZXcgYm5iO1VtYihhLmksbmV3IHlkZChjKSk7SGViKFREKG1RYihhLChPUWIoKSxNUWIpKSkpJiYnbnVsbDEwYncnOyFhLmU/KGEuZT1FRmIoYykpOnllKGEuZSxFRmIoYykpO2IuVmcoKX1cbmZ1bmN0aW9uIEhzZChhLGIsYyl7dmFyIGQsZTtOemQoYSxhLmorYixhLmsrYyk7Zm9yKGU9bmV3IGRNZCgoIWEuYSYmKGEuYT1uZXcgWFpkKEQ0LGEsNSkpLGEuYSkpO2UuZSE9ZS5pLmdjKCk7KXtkPVJEKGJNZChlKSwzNzcpO1V4ZChkLGQuYStiLGQuYitjKX1HemQoYSxhLmIrYixhLmMrYyl9XG5mdW5jdGlvbiBWeWQoYSxiLGMsZCl7c3dpdGNoKGMpe2Nhc2UgNzpyZXR1cm4gIWEuZSYmKGEuZT1uZXcgWWllKEc0LGEsNyw0KSkscUxkKGEuZSxiLGQpO2Nhc2UgODpyZXR1cm4gIWEuZCYmKGEuZD1uZXcgWWllKEc0LGEsOCw1KSkscUxkKGEuZCxiLGQpO31yZXR1cm4gZHlkKGEsYixjLGQpfVxuZnVuY3Rpb24gV3lkKGEsYixjLGQpe3N3aXRjaChjKXtjYXNlIDc6cmV0dXJuICFhLmUmJihhLmU9bmV3IFlpZShHNCxhLDcsNCkpLHJMZChhLmUsYixkKTtjYXNlIDg6cmV0dXJuICFhLmQmJihhLmQ9bmV3IFlpZShHNCxhLDgsNSkpLHJMZChhLmQsYixkKTt9cmV0dXJuIGV5ZChhLGIsYyxkKX1cbmZ1bmN0aW9uIExEZChhLGIsYyl7dmFyIGQsZSxmLGcsaDtpZihjKXtmPWMuYS5sZW5ndGg7ZD1uZXcgdnVlKGYpO2ZvcihoPShkLmItZC5hKSpkLmM8MD8odXVlKCksdHVlKTpuZXcgUnVlKGQpO2guT2IoKTspe2c9UkQoaC5QYigpLDE3KTtlPXhEZChjLGcuYSk7ISFlJiZERWQoYSxlLGIpfX19XG5mdW5jdGlvbiBmT2QoYSxiLGMpe3ZhciBkLGUsZixnLGg7YS5faigpO2Y9Yj09bnVsbD8wOnRiKGIpO2lmKGEuZj4wKXtnPShmJmx2ZSklYS5kLmxlbmd0aDtlPVdOZChhLGcsZixiKTtpZihlKXtoPWUubmQoYyk7cmV0dXJuIGh9fWQ9YS5jayhmLGIsYyk7YS5jLkZjKGQpO3JldHVybiBudWxsfVxuZnVuY3Rpb24gVGVlKGEsYil7dmFyIGMsZCxlLGY7c3dpdGNoKE9lZShhLGIpLktsKCkpe2Nhc2UgMzpjYXNlIDI6e2M9bVlkKGIpO2ZvcihlPTAsZj1jLmk7ZTxmOysrZSl7ZD1SRChRSGQoYyxlKSwzNSk7aWYoeWZlKFFlZShhLGQpKT09NSl7cmV0dXJuIGR9fWJyZWFrfX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGd0KGEpe3ZhciBiLGMsZCxlLGY7aWYoWHAoYS5mLGEuYi5sZW5ndGgpKXtkPSRDKFVHLGV3ZSwyMjcsYS5iLmxlbmd0aCoyLDAsMSk7YS5iPWQ7ZT1kLmxlbmd0aC0xO2ZvcihjPWEuYTtjIT1hO2M9Yy5fZCgpKXtmPVJEKGMsMjI3KTtiPWYuZCZlO2YuYT1kW2JdO2RbYl09Zn19fVxuZnVuY3Rpb24gZ1NjKGEpe3ZhciBiLGM7Yz1SRChtUWIoYSwoWXdjKCksa3djKSksMjEpO2I9dmZkKFpSYyk7Yy5IYygob3ZjKCksbHZjKSkmJm9mZChiLGFTYyk7Yy5IYyhudmMpJiZvZmQoYixjU2MpO2MuSGMoZXZjKSYmb2ZkKGIsJFJjKTtjLkhjKGd2YykmJm9mZChiLF9SYyk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBCaWQoYSl7aWYoYTwwKXt0aHJvdyBBZGIobmV3IGFnYignVGhlIGlucHV0IG11c3QgYmUgcG9zaXRpdmUnKSl9ZWxzZSByZXR1cm4gYTxzaWQubGVuZ3RoP1hkYihzaWRbYV0pOiR3bmQuTWF0aC5zcXJ0KGRGZSphKSooSmlkKGEsYSkvSWlkKDIuNzE4MjgxODI4NDU5MDQ1LGEpKX1cbmZ1bmN0aW9uIFBIZChhLGIpe3ZhciBjO2lmKGEuWWkoKSYmYiE9bnVsbCl7Zm9yKGM9MDtjPGEuaTsrK2Mpe2lmKHBiKGIsYS5nW2NdKSl7cmV0dXJuIHRydWV9fX1lbHNle2ZvcihjPTA7YzxhLmk7KytjKXtpZihkRShhLmdbY10pPT09ZEUoYikpe3JldHVybiB0cnVlfX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gQnIoYSxiKXtpZihiPT1udWxsKXt3aGlsZShhLmEuT2IoKSl7aWYoUkQoYS5hLlBiKCksNDQpLm1kKCk9PW51bGwpe3JldHVybiB0cnVlfX19ZWxzZXt3aGlsZShhLmEuT2IoKSl7aWYocGIoYixSRChhLmEuUGIoKSw0NCkubWQoKSkpe3JldHVybiB0cnVlfX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gUXkoYSxiKXt2YXIgYyxkLGU7aWYoYj09PWEpe3JldHVybiB0cnVlfWVsc2UgaWYoWkQoYiw2NzgpKXtlPVJEKGIsMjA0Nik7cmV0dXJuIFVlKChkPWEuZywhZD8oYS5nPW5ldyBEaShhKSk6ZCksKGM9ZS5nLCFjPyhlLmc9bmV3IERpKGUpKTpjKSl9ZWxzZXtyZXR1cm4gZmFsc2V9fVxuZnVuY3Rpb24gaEEoYSl7dmFyIGIsYyxkLGU7Yj0nZ0EnO2M9J3Z6JztlPSR3bmQuTWF0aC5taW4oYS5sZW5ndGgsNSk7Zm9yKGQ9ZS0xO2Q+PTA7ZC0tKXtpZihsaGIoYVtkXS5kLGIpfHxsaGIoYVtkXS5kLGMpKXthLmxlbmd0aD49ZCsxJiZhLnNwbGljZSgwLGQrMSk7YnJlYWt9fXJldHVybiBhfVxuZnVuY3Rpb24gRmRiKGEsYil7dmFyIGM7aWYoS2RiKGEpJiZLZGIoYikpe2M9YS9iO2lmKGp4ZTxjJiZjPGh4ZSl7cmV0dXJuIGM8MD8kd25kLk1hdGguY2VpbChjKTokd25kLk1hdGguZmxvb3IoYyl9fXJldHVybiBFZGIoaUQoS2RiKGEpP1dkYihhKTphLEtkYihiKT9XZGIoYik6YixmYWxzZSkpfVxuZnVuY3Rpb24gVDBiKGEsYil7aWYoYj09YS5jLmkpe3JldHVybiBhLmQuaX1lbHNlIGlmKGI9PWEuZC5pKXtyZXR1cm4gYS5jLml9ZWxzZXt0aHJvdyBBZGIobmV3IGFnYihcIidub2RlJyBtdXN0IGVpdGhlciBiZSB0aGUgc291cmNlIG5vZGUgb3IgdGFyZ2V0IG5vZGUgb2YgdGhlIGVkZ2UuXCIpKX19XG5mdW5jdGlvbiBNNWIoYSl7dmFyIGIsYyxkLGU7ZT1SRChtUWIoYSwoWXdjKCksWnZjKSksMzYpO2lmKGUpe2Q9bmV3IHBqZDtiPVkyYihhLmMuaSk7d2hpbGUoYiE9ZSl7Yz1iLmU7Yj1ZMmIoYyk7WmlkKCRpZCgkaWQoZCxjLm4pLGIuYyksYi5kLmIsYi5kLmQpfXJldHVybiBkfXJldHVybiBHNWJ9XG5mdW5jdGlvbiBwaGMoYSl7dmFyIGI7Yj1SRChtUWIoYSwoWXdjKCksUHdjKSksMzM3KTtGRGIoRURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGIuZCwxNikpLG5ldyBDaGMpLG5ldyBFaGMoYSkpO0ZEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYi5kLDE2KSksbmV3IEdoYyksbmV3IEloYyhhKSl9XG5mdW5jdGlvbiBacmMoYSxiKXt2YXIgYyxkLGUsZjtlPWI/YTNiKGEpOloyYihhKTtmb3IoZD1uZXcgaXMoTXIoZS5hLktjKCksbmV3IGlyKSk7Z3MoZCk7KXtjPVJEKGhzKGQpLDE4KTtmPVQwYihjLGEpO2lmKGYuaz09KHIzYigpLG8zYikmJmYuYyE9YS5jKXtyZXR1cm4gZn19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBmSWMoYSl7dmFyIGIsYyxkO2ZvcihjPW5ldyBBbmIoYS5wKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMTApO2lmKGIuayE9KHIzYigpLHAzYikpe2NvbnRpbnVlfWQ9Yi5vLmI7YS5pPSR3bmQuTWF0aC5taW4oYS5pLGQpO2EuZz0kd25kLk1hdGgubWF4KGEuZyxkKX19XG5mdW5jdGlvbiBPSWMoYSxiLGMpe3ZhciBkLGUsZjtmb3IoZj1uZXcgQW5iKGIpO2YuYTxmLmMuYy5sZW5ndGg7KXtkPVJEKHluYihmKSwxMCk7YS5jW2QuYy5wXVtkLnBdLmU9ZmFsc2V9Zm9yKGU9bmV3IEFuYihiKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTApO05JYyhhLGQsYyl9fVxuZnVuY3Rpb24gdVRjKGEsYixjKXt2YXIgZCxlO2Q9VlRjKGIuaixjLnMsYy5jKStWVGMoYy5lLGIucyxiLmMpO2U9VlRjKGMuaixiLnMsYi5jKStWVGMoYi5lLGMucyxjLmMpO2lmKGQ9PWUpe2lmKGQ+MCl7YS5iKz0yO2EuYSs9ZH19ZWxzZXthLmIrPTE7YS5hKz0kd25kLk1hdGgubWluKGQsZSl9fVxuZnVuY3Rpb24gQ1ZjKGEpe3ZhciBiO2I9UkQobVFiKFJEKGp1KGEuYiwwKSw0MCksKGhfYygpLFQkYykpLDEwNyk7cFFiKGEsKHEkYygpLFNaYyksbmV3IHJqZCgwLDApKTtGVmMobmV3IFlXYyxhLGIuYitiLmMtS2ZiKFVEKG1RYihhLFpaYykpKSxiLmQrYi5hLUtmYihVRChtUWIoYSxfWmMpKSkpfVxuZnVuY3Rpb24gcERkKGEsYil7dmFyIGMsZDtkPWZhbHNlO2lmKGJFKGIpKXtkPXRydWU7b0RkKGEsbmV3IE9DKFdEKGIpKSl9aWYoIWQpe2lmKFpEKGIsMjQyKSl7ZD10cnVlO29EZChhLChjPVFlYihSRChiLDI0MikpLG5ldyBoQyhjKSkpfX1pZighZCl7dGhyb3cgQWRiKG5ldyBBZWIodEllKSl9fVxuZnVuY3Rpb24gZyRkKGEsYixjLGQpe3ZhciBlLGYsZztlPW5ldyBQM2QoYS5lLDEsMTAsKGc9Yi5jLFpEKGcsOTApP1JEKGcsMjkpOihKVGQoKSx6VGQpKSwoZj1jLmMsWkQoZiw5MCk/UkQoZiwyOSk6KEpUZCgpLHpUZCkpLGZaZChhLGIpLGZhbHNlKTshZD8oZD1lKTpkLm5qKGUpO3JldHVybiBkfVxuZnVuY3Rpb24gXzJiKGEpe3ZhciBiLGM7c3dpdGNoKFJEKG1RYihZMmIoYSksKHlDYygpLFFBYykpLDQyOSkuZyl7Y2FzZSAwOmI9YS5uO2M9YS5vO3JldHVybiBuZXcgcmpkKGIuYStjLmEvMixiLmIrYy5iLzIpO2Nhc2UgMTpyZXR1cm4gbmV3IHNqZChhLm4pO2RlZmF1bHQ6cmV0dXJuIG51bGw7fX1cbmZ1bmN0aW9uIE91Yygpe091Yz1nZWI7THVjPW5ldyBQdWMoTEFlLDApO0t1Yz1uZXcgUHVjKCdMRUZUVVAnLDEpO051Yz1uZXcgUHVjKCdSSUdIVFVQJywyKTtKdWM9bmV3IFB1YygnTEVGVERPV04nLDMpO011Yz1uZXcgUHVjKCdSSUdIVERPV04nLDQpO0l1Yz1uZXcgUHVjKCdCQUxBTkNFRCcsNSl9XG5mdW5jdGlvbiBkS2MoYSxiLGMpe3ZhciBkLGUsZjtkPVFmYihhLmFbYi5wXSxhLmFbYy5wXSk7aWYoZD09MCl7ZT1SRChtUWIoYiwoWXdjKCkscXdjKSksMTUpO2Y9UkQobVFiKGMscXdjKSwxNSk7aWYoZS5IYyhjKSl7cmV0dXJuIC0xfWVsc2UgaWYoZi5IYyhiKSl7cmV0dXJuIDF9fXJldHVybiBkfVxuZnVuY3Rpb24gazVjKGEpe3N3aXRjaChhLmcpe2Nhc2UgMTpyZXR1cm4gbmV3IEszYztjYXNlIDI6cmV0dXJuIG5ldyBNM2M7Y2FzZSAzOnJldHVybiBuZXcgSTNjO2Nhc2UgMDpyZXR1cm4gbnVsbDtkZWZhdWx0OnRocm93IEFkYihuZXcgYWdiKG1GZSsoYS5mIT1udWxsP2EuZjonJythLmcpKSk7fX1cbmZ1bmN0aW9uIGd5ZChhLGIsYyl7c3dpdGNoKGIpe2Nhc2UgMTohYS5uJiYoYS5uPW5ldyBDNWQoSTQsYSwxLDcpKTtzTGQoYS5uKTshYS5uJiYoYS5uPW5ldyBDNWQoSTQsYSwxLDcpKTtZR2QoYS5uLFJEKGMsMTYpKTtyZXR1cm47Y2FzZSAyOmp5ZChhLFdEKGMpKTtyZXR1cm47fUR4ZChhLGIsYyl9XG5mdW5jdGlvbiB4eWQoYSxiLGMpe3N3aXRjaChiKXtjYXNlIDM6QXlkKGEsS2ZiKFVEKGMpKSk7cmV0dXJuO2Nhc2UgNDpDeWQoYSxLZmIoVUQoYykpKTtyZXR1cm47Y2FzZSA1OkR5ZChhLEtmYihVRChjKSkpO3JldHVybjtjYXNlIDY6RXlkKGEsS2ZiKFVEKGMpKSk7cmV0dXJuO31neWQoYSxiLGMpfVxuZnVuY3Rpb24gZEJkKGEsYixjKXt2YXIgZCxlLGY7Zj0oZD1uZXcgUjVkLGQpO2U9WFZkKGYsYixudWxsKTshIWUmJmUub2ooKTtQQWQoZixjKTtXR2QoKCFhLmMmJihhLmM9bmV3IEM1ZCh1NyxhLDEyLDEwKSksYS5jKSxmKTskVmQoZiwwKTtiV2QoZiwxKTthV2QoZix0cnVlKTtfVmQoZix0cnVlKX1cbmZ1bmN0aW9uIE01ZChhLGIpe3ZhciBjLGQsZTtjPUt0YihhLmksYik7aWYoWkQoYywyNDEpKXtlPVJEKGMsMjQxKTtlLnppKCk9PW51bGwmJnVuZGVmaW5lZDtyZXR1cm4gZS53aSgpfWVsc2UgaWYoWkQoYyw1MDcpKXtkPVJEKGMsMjAzNyk7ZT1kLmI7cmV0dXJuIGV9ZWxzZXtyZXR1cm4gbnVsbH19XG5mdW5jdGlvbiBhaihhLGIsYyxkKXt2YXIgZSxmO1FiKGIpO1FiKGMpO2Y9UkQoRm4oYS5kLGIpLDE3KTtPYighIWYsJ1JvdyAlcyBub3QgaW4gJXMnLGIsYS5lKTtlPVJEKEZuKGEuYixjKSwxNyk7T2IoISFlLCdDb2x1bW4gJXMgbm90IGluICVzJyxjLGEuYyk7cmV0dXJuIGNqKGEsZi5hLGUuYSxkKX1cbmZ1bmN0aW9uIFpDKGEsYixjLGQsZSxmLGcpe3ZhciBoLGksaixrLGw7az1lW2ZdO2o9Zj09Zy0xO2g9aj9kOjA7bD1fQyhoLGspO2QhPTEwJiZjRChXQyhhLGctZiksYltmXSxjW2ZdLGgsbCk7aWYoIWopeysrZjtmb3IoaT0wO2k8azsrK2kpe2xbaV09WkMoYSxiLGMsZCxlLGYsZyl9fXJldHVybiBsfVxuZnVuY3Rpb24gY01kKGIpe2lmKGIuZz09LTEpe3Rocm93IEFkYihuZXcgY2diKX1iLlhqKCk7dHJ5e2IuaS5nZChiLmcpO2IuZj1iLmkuajtiLmc8Yi5lJiYtLWIuZTtiLmc9LTF9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSw3Nykpe3Rocm93IEFkYihuZXcgSnJiKX1lbHNlIHRocm93IEFkYihhKX19XG5mdW5jdGlvbiB2MGIoYSl7dmFyIGIsYyxkLGU7ZT0tMTtkPTA7Zm9yKGM9bmV3IEFuYihhKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMjQ5KTtpZihiLmM9PShCRWMoKSx5RWMpKXtlPWQ9PTA/MDpkLTE7YnJlYWt9ZWxzZSBkPT1hLmMubGVuZ3RoLTEmJihlPWQpO2QrPTF9cmV0dXJuIGV9XG5mdW5jdGlvbiAkOWMoYSl7dmFyIGIsYyxkLGU7ZT0wO2I9MDtmb3IoZD1uZXcgQW5iKGEuYyk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDI3KTtEeWQoYyxhLmUrZSk7RXlkKGMsYS5mKTtlKz1jLmcrYS5iO2I9JHduZC5NYXRoLm1heChiLGMuZithLmIpfWEuZD1lLWEuYjthLmE9Yi1hLmJ9XG5mdW5jdGlvbiBVR2IoYSl7dmFyIGIsYyxkO2ZvcihjPW5ldyBBbmIoYS5hLmIpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSw2MCk7ZD1iLmQuYztiLmQuYz1iLmQuZDtiLmQuZD1kO2Q9Yi5kLmI7Yi5kLmI9Yi5kLmE7Yi5kLmE9ZDtkPWIuYi5hO2IuYi5hPWIuYi5iO2IuYi5iPWR9SUdiKGEpfVxuZnVuY3Rpb24gRFliKGEpe3ZhciBiLGMsZDtmb3IoYz1uZXcgQW5iKGEuYS5iKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksODYpO2Q9Yi5nLmM7Yi5nLmM9Yi5nLmQ7Yi5nLmQ9ZDtkPWIuZy5iO2IuZy5iPWIuZy5hO2IuZy5hPWQ7ZD1iLmUuYTtiLmUuYT1iLmUuYjtiLmUuYj1kfXVZYihhKX1cbmZ1bmN0aW9uIHBxYyhhKXt2YXIgYixjLGQsZSxmO2Y9RWMoYS5rKTtmb3IoYz0ocXBkKCksY0QoV0MoRTMsMSksTkFlLDY0LDAsW29wZCxZb2QsWG9kLG5wZCxwcGRdKSksZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdO2lmKGIhPW9wZCYmIWYuSGMoYikpe3JldHVybiBifX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGRyYyhhLGIpe3ZhciBjLGQ7ZD1SRChOdmIoRERiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihiLmosMTYpKSxuZXcgbHJjKSkpLDEyKTtpZihkKXtjPVJEKFZtYihkLmUsMCksMTgpO2lmKGMpe3JldHVybiBSRChtUWIoYywoWXdjKCksendjKSksMTcpLmF9fXJldHVybiBtRGMoYS5iKX1cbmZ1bmN0aW9uIEZHYyhhLGIpe3ZhciBjLGQsZSxmO2ZvcihmPW5ldyBBbmIoYi5hKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTApO05uYihhLmQpO2ZvcihkPW5ldyBpcyhNcihhM2IoZSkuYS5LYygpLG5ldyBpcikpO2dzKGQpOyl7Yz1SRChocyhkKSwxOCk7Q0djKGEsZSxjLmQuaSl9fX1cbmZ1bmN0aW9uIFQ5YyhhLGIpe3ZhciBjLGQ7WW1iKGEuYixiKTtmb3IoZD1uZXcgQW5iKGEubik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDIwOSk7aWYoV21iKGMuYyxiLDApIT0tMSl7WW1iKGMuYyxiKTskOWMoYyk7Yy5jLmMubGVuZ3RoPT0wJiZZbWIoYS5uLGMpO2JyZWFrfX1OOWMoYSl9XG5mdW5jdGlvbiBlYWQoYSxiKXt2YXIgYyxkLGUsZixnO2c9YS5mO2U9MDtmPTA7Zm9yKGQ9bmV3IEFuYihhLmEpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxNzIpO1U5YyhjLGEuZSxnKTtROWMoYyxiKTtmPSR3bmQuTWF0aC5tYXgoZixjLnIpO2crPWMuZCthLmM7ZT1nfWEuZD1mO2EuYj1lfVxuZnVuY3Rpb24gUjJjKGEpe3ZhciBiLGM7Yz15R2QoYSk7aWYoZ3IoYykpe3JldHVybiBudWxsfWVsc2V7Yj0oUWIoYyksUkQoRXIobmV3IGlzKE1yKGMuYS5LYygpLG5ldyBpcikpKSw3NCkpO3JldHVybiBBR2QoUkQoUUhkKCghYi5iJiYoYi5iPW5ldyBZaWUoRTQsYiw0LDcpKSxiLmIpLDApLDg0KSl9fVxuZnVuY3Rpb24gdldkKGEpe3ZhciBiO2lmKCFhLm8pe2I9YS51aygpO2I/KGEubz1uZXcgRDlkKGEsYSxudWxsKSk6YS5hbCgpPyhhLm89bmV3IFU2ZChhLG51bGwpKTp5ZmUoUWVlKChsa2UoKSxqa2UpLGEpKT09MT8oYS5vPW5ldyBOOWQoYSkpOihhLm89bmV3IFM5ZChhLG51bGwpKX1yZXR1cm4gYS5vfVxuZnVuY3Rpb24gVmplKGEsYixjLGQpe3ZhciBlLGYsZyxoLGk7aWYoYy5YaChiKSl7ZT0oZz1iLCFnP251bGw6UkQoZCw1NCkuZ2koZykpO2lmKGUpe2k9Yy5NaChiKTtoPWIudDtpZihoPjF8fGg9PS0xKXtmPVJEKGksMTUpO2UuV2IoU2plKGEsZikpfWVsc2V7ZS5XYihSamUoYSxSRChpLDU4KSkpfX19fVxuZnVuY3Rpb24gY2ViKGIsYyxkLGUpe2JlYigpO3ZhciBmPV9kYjskbW9kdWxlTmFtZT1jOyRtb2R1bGVCYXNlPWQ7eWRiPWU7ZnVuY3Rpb24gZygpe2Zvcih2YXIgYT0wO2E8Zi5sZW5ndGg7YSsrKXtmW2FdKCl9fVxuaWYoYil7dHJ5e2Z2ZShnKSgpfWNhdGNoKGEpe2IoYyxhKX19ZWxzZXtmdmUoZykoKX19XG5mdW5jdGlvbiBhNmIoYSxiKXt2YXIgYyxkLGUsZjtmb3IoZT0oZj0obmV3IFhrYihhLmIpKS5hLnZjKCkuS2MoKSxuZXcgYmxiKGYpKTtlLmEuT2IoKTspe2Q9KGM9UkQoZS5hLlBiKCksNDQpLFJEKGMubGQoKSwzNCkpO2lmKGVnYihiLFJEKGQsMTcpKTwwKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfVxuZnVuY3Rpb24gYjZiKGEsYil7dmFyIGMsZCxlLGY7Zm9yKGU9KGY9KG5ldyBYa2IoYS5iKSkuYS52YygpLktjKCksbmV3IGJsYihmKSk7ZS5hLk9iKCk7KXtkPShjPVJEKGUuYS5QYigpLDQ0KSxSRChjLmxkKCksMzQpKTtpZihlZ2IoYixSRChkLDE3KSk+MCl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIG9rYyhhKXt2YXIgYixjLGQsZSxmO2ZvcihkPW5ldyB2a2IoKG5ldyBta2IoYS5iKSkuYSk7ZC5iOyl7Yz10a2IoZCk7Yj1SRChjLmxkKCksMTApO2Y9UkQoUkQoYy5tZCgpLDQyKS5hLDEwKTtlPVJEKFJEKGMubWQoKSw0MikuYiw4KTskaWQoaGpkKGIubiksJGlkKGFqZChmLm4pLGUpKX19XG5mdW5jdGlvbiBSb2MoYSl7c3dpdGNoKFJEKG1RYihhLmIsKHlDYygpLEJBYykpLDM4NykuZyl7Y2FzZSAxOkZEYihHRGIoRURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuZCwxNikpLG5ldyBrcGMpLG5ldyBtcGMpLG5ldyBvcGMpO2JyZWFrO2Nhc2UgMjpUb2MoYSk7YnJlYWs7Y2FzZSAwOlNvYyhhKTt9fVxuZnVuY3Rpb24gU1ZjKGEsYixjKXt2YXIgZCxlLGY7ZD1jOyFkJiYoZD1uZXcgT3FkKTtkLlVnKCdMYXlvdXQnLGEuYS5jLmxlbmd0aCk7Zm9yKGY9bmV3IEFuYihhLmEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSw0Nyk7aWYoZC4kZygpKXtyZXR1cm59ZS5LZihiLGQuZWgoMSkpfWQuVmcoKX1cbmZ1bmN0aW9uIHVrZCgpe3VrZD1nZWI7dGtkPW5ldyB2a2QoJ1ZfVE9QJywwKTtza2Q9bmV3IHZrZCgnVl9DRU5URVInLDEpO3JrZD1uZXcgdmtkKCdWX0JPVFRPTScsMik7cGtkPW5ldyB2a2QoJ0hfTEVGVCcsMyk7b2tkPW5ldyB2a2QoJ0hfQ0VOVEVSJyw0KTtxa2Q9bmV3IHZrZCgnSF9SSUdIVCcsNSl9XG5mdW5jdGlvbiBHWWQoYSl7dmFyIGI7aWYoKGEuRGImNjQpIT0wKXJldHVybiBNWGQoYSk7Yj1uZXcgU2hiKE1YZChhKSk7Yi5hKz0nIChhYnN0cmFjdDogJztPaGIoYiwoYS5CYiYyNTYpIT0wKTtiLmErPScsIGludGVyZmFjZTogJztPaGIoYiwoYS5CYiY1MTIpIT0wKTtiLmErPScpJztyZXR1cm4gYi5hfVxuZnVuY3Rpb24gQnooYSl7dmFyIGI7aWYoYS5jPT1udWxsKXtiPWRFKGEuYik9PT1kRSh6eik/bnVsbDphLmI7YS5kPWI9PW51bGw/dnZlOmFFKGIpP0V6KFZEKGIpKTpiRShiKT91d2U6bmZiKHJiKGIpKTthLmE9YS5hKyc6ICcrKGFFKGIpP0R6KFZEKGIpKTpiKycnKTthLmM9JygnK2EuZCsnKSAnK2EuYX19XG5mdW5jdGlvbiBHdGIoKXtmdW5jdGlvbiBiKCl7dHJ5e3JldHVybiAobmV3IE1hcCkuZW50cmllcygpLm5leHQoKS5kb25lfWNhdGNoKGEpe3JldHVybiBmYWxzZX19XG5pZih0eXBlb2YgTWFwPT09a3ZlJiZNYXAucHJvdG90eXBlLmVudHJpZXMmJmIoKSl7cmV0dXJuIE1hcH1lbHNle3JldHVybiBIdGIoKX19XG5mdW5jdGlvbiB0VWMoYSxiKXt2YXIgYyxkLGUsZjtmPW5ldyBKa2IoYS5lLDApO2M9MDt3aGlsZShmLmI8Zi5kLmdjKCkpe2Q9S2ZiKChzRmIoZi5iPGYuZC5nYygpKSxVRChmLmQuWGIoZi5jPWYuYisrKSkpKTtlPWQtYjtpZihlPkFFZSl7cmV0dXJuIGN9ZWxzZSBlPi0xLjBFLTYmJisrY31yZXR1cm4gY31cbmZ1bmN0aW9uIG4yZChhLGIpe3ZhciBjO2lmKGIhPWEuYil7Yz1udWxsOyEhYS5iJiYoYz1KdmQoYS5iLGEsLTQsYykpOyEhYiYmKGM9SXZkKGIsYSwtNCxjKSk7Yz1lMmQoYSxiLGMpOyEhYyYmYy5vaigpfWVsc2UgKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsMSwzLGIsYikpfVxuZnVuY3Rpb24gcTJkKGEsYil7dmFyIGM7aWYoYiE9YS5mKXtjPW51bGw7ISFhLmYmJihjPUp2ZChhLmYsYSwtMSxjKSk7ISFiJiYoYz1JdmQoYixhLC0xLGMpKTtjPWcyZChhLGIsYyk7ISFjJiZjLm9qKCl9ZWxzZSAoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDAsYixiKSl9XG5mdW5jdGlvbiBMZ2UoYSxiLGMsZCl7dmFyIGUsZixnLGg7aWYoTXZkKGEuZSkpe2U9Yi5MaygpO2g9Yi5tZCgpO2Y9Yy5tZCgpO2c9ZmdlKGEsMSxlLGgsZixlLkprKCk/a2dlKGEsZSxmLFpEKGUsMTAyKSYmKFJEKGUsMTkpLkJiJnR4ZSkhPTApOi0xLHRydWUpO2Q/ZC5uaihnKTooZD1nKX1yZXR1cm4gZH1cbmZ1bmN0aW9uIGJuZShhKXt2YXIgYixjLGQ7aWYoYT09bnVsbClyZXR1cm4gbnVsbDtjPVJEKGEsMTUpO2lmKGMuZGMoKSlyZXR1cm4gJyc7ZD1uZXcgUWhiO2ZvcihiPWMuS2MoKTtiLk9iKCk7KXtOaGIoZCwobm1lKCksV0QoYi5QYigpKSkpO2QuYSs9JyAnfXJldHVybiBxZWIoZCxkLmEubGVuZ3RoLTEpfVxuZnVuY3Rpb24gZm5lKGEpe3ZhciBiLGMsZDtpZihhPT1udWxsKXJldHVybiBudWxsO2M9UkQoYSwxNSk7aWYoYy5kYygpKXJldHVybiAnJztkPW5ldyBRaGI7Zm9yKGI9Yy5LYygpO2IuT2IoKTspe05oYihkLChubWUoKSxXRChiLlBiKCkpKSk7ZC5hKz0nICd9cmV0dXJuIHFlYihkLGQuYS5sZW5ndGgtMSl9XG5mdW5jdGlvbiBRSWMoYSxiLGMpe3ZhciBkLGU7ZD1hLmNbYi5jLnBdW2IucF07ZT1hLmNbYy5jLnBdW2MucF07aWYoZC5hIT1udWxsJiZlLmEhPW51bGwpe3JldHVybiBKZmIoZC5hLGUuYSl9ZWxzZSBpZihkLmEhPW51bGwpe3JldHVybiAtMX1lbHNlIGlmKGUuYSE9bnVsbCl7cmV0dXJuIDF9cmV0dXJuIDB9XG5mdW5jdGlvbiBSVmMoYSxiLGMpe2MuVWcoJ1RyZWUgbGF5b3V0JywxKTtTZWQoYS5iKTtWZWQoYS5iLChZVmMoKSxVVmMpLFVWYyk7VmVkKGEuYixWVmMsVlZjKTtWZWQoYS5iLFdWYyxXVmMpO1ZlZChhLmIsWFZjLFhWYyk7YS5hPVFlZChhLmIsYik7U1ZjKGEsYixjLmVoKDEpKTtjLlZnKCk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBaRGQoYSxiKXt2YXIgYyxkLGUsZixnLGg7aWYoYil7Zj1iLmEubGVuZ3RoO2M9bmV3IHZ1ZShmKTtmb3IoaD0oYy5iLWMuYSkqYy5jPDA/KHV1ZSgpLHR1ZSk6bmV3IFJ1ZShjKTtoLk9iKCk7KXtnPVJEKGguUGIoKSwxNyk7ZT14RGQoYixnLmEpO2Q9bmV3IGFGZChhKTskRGQoZC5hLGUpfX19XG5mdW5jdGlvbiBvRWQoYSxiKXt2YXIgYyxkLGUsZixnLGg7aWYoYil7Zj1iLmEubGVuZ3RoO2M9bmV3IHZ1ZShmKTtmb3IoaD0oYy5iLWMuYSkqYy5jPDA/KHV1ZSgpLHR1ZSk6bmV3IFJ1ZShjKTtoLk9iKCk7KXtnPVJEKGguUGIoKSwxNyk7ZT14RGQoYixnLmEpO2Q9bmV3IExFZChhKTtORGQoZC5hLGUpfX19XG5mdW5jdGlvbiBFU2QoYil7dmFyIGM7aWYoYiE9bnVsbCYmYi5sZW5ndGg+MCYmaWhiKGIsYi5sZW5ndGgtMSk9PTMzKXt0cnl7Yz1uU2QoemhiKGIsMCxiLmxlbmd0aC0xKSk7cmV0dXJuIGMuZT09bnVsbH1jYXRjaChhKXthPXpkYihhKTtpZighWkQoYSwzMykpdGhyb3cgQWRiKGEpfX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiB1MGIoYSxiLGMpe3ZhciBkLGUsZjtkPVkyYihiKTtlPWkyYihkKTtmPW5ldyBSM2I7UDNiKGYsYik7c3dpdGNoKGMuZyl7Y2FzZSAxOlEzYihmLHNwZCh2cGQoZSkpKTticmVhaztjYXNlIDI6UTNiKGYsdnBkKGUpKTt9cFFiKGYsKHlDYygpLEFCYyksVUQobVFiKGEsQUJjKSkpO3JldHVybiBmfVxuZnVuY3Rpb24gamRjKGEpe3ZhciBiLGM7Yj1SRChocyhuZXcgaXMoTXIoWjJiKGEuYSkuYS5LYygpLG5ldyBpcikpKSwxOCk7Yz1SRChocyhuZXcgaXMoTXIoYTNiKGEuYSkuYS5LYygpLG5ldyBpcikpKSwxOCk7cmV0dXJuIEhlYihURChtUWIoYiwoWXdjKCksTndjKSkpKXx8SGViKFREKG1RYihjLE53YykpKX1cbmZ1bmN0aW9uIEJuYygpe0JuYz1nZWI7eG5jPW5ldyBDbmMoJ09ORV9TSURFJywwKTt6bmM9bmV3IENuYygnVFdPX1NJREVTX0NPUk5FUicsMSk7QW5jPW5ldyBDbmMoJ1RXT19TSURFU19PUFBPU0lORycsMik7eW5jPW5ldyBDbmMoJ1RIUkVFX1NJREVTJywzKTt3bmM9bmV3IENuYygnRk9VUl9TSURFUycsNCl9XG5mdW5jdGlvbiBVc2MoYSxiKXt2YXIgYyxkLGUsZjtmPW5ldyBibmI7ZT0wO2Q9Yi5LYygpO3doaWxlKGQuT2IoKSl7Yz1zZ2IoUkQoZC5QYigpLDE3KS5hK2UpO3doaWxlKGMuYTxhLmYmJiF3c2MoYSxjLmEpKXtjPXNnYihjLmErMSk7KytlfWlmKGMuYT49YS5mKXticmVha31aRWIoZi5jLGMpfXJldHVybiBmfVxuZnVuY3Rpb24gaUljKGEsYil7dmFyIGMsZCxlLGYsZztmb3IoZj1uZXcgQW5iKGIuYSk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDEwKTtmb3IoZD1uZXcgaXMoTXIoWjJiKGUpLmEuS2MoKSxuZXcgaXIpKTtncyhkKTspe2M9UkQoaHMoZCksMTgpO2c9Yy5jLmkucDthLm5bZ109YS5uW2ddLTF9fX1cbmZ1bmN0aW9uIGZPYyhhKXt2YXIgYixjO2ZvcihjPW5ldyBBbmIoYS5lLmIpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwzMCk7d09jKGEsYil9RkRiKENEYihFRGIoRURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuZS5iLDE2KSksbmV3IHdQYyksbmV3IFRQYyksbmV3IFZQYyksbmV3IFhQYyhhKSl9XG5mdW5jdGlvbiBvS2QoYSxiKXtpZighYil7cmV0dXJuIGZhbHNlfWVsc2V7aWYoYS5taihiKSl7cmV0dXJuIGZhbHNlfWlmKCFhLmkpe2lmKFpEKGIsMTUyKSl7YS5pPVJEKGIsMTUyKTtyZXR1cm4gdHJ1ZX1lbHNle2EuaT1uZXcgZkxkO3JldHVybiBhLmkubmooYil9fWVsc2V7cmV0dXJuIGEuaS5uaihiKX19fVxuZnVuY3Rpb24gSGdlKGEsYixjKXt2YXIgZCxlLGY7ZD1iLkxrKCk7Zj1iLm1kKCk7ZT1kLkprKCk/ZmdlKGEsMyxkLG51bGwsZixrZ2UoYSxkLGYsWkQoZCwxMDIpJiYoUkQoZCwxOSkuQmImdHhlKSE9MCksdHJ1ZSk6ZmdlKGEsMSxkLGQuaWsoKSxmLC0xLHRydWUpO2M/Yy5uaihlKTooYz1lKTtyZXR1cm4gY31cbmZ1bmN0aW9uICRtZShhKXthPW51ZShhLHRydWUpO2lmKGxoYihGR2UsYSl8fGxoYignMScsYSkpe3JldHVybiBHZWIoKSxGZWJ9ZWxzZSBpZihsaGIoR0dlLGEpfHxsaGIoJzAnLGEpKXtyZXR1cm4gR2ViKCksRWVifXRocm93IEFkYihuZXcgTWxlKFwiSW52YWxpZCBib29sZWFuIHZhbHVlOiAnXCIrYStcIidcIikpfVxuZnVuY3Rpb24gS2QoYSxiLGMpe3ZhciBkLGUsZjtmb3IoZT1hLnZjKCkuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSw0NCk7Zj1kLmxkKCk7aWYoZEUoYik9PT1kRShmKXx8YiE9bnVsbCYmcGIoYixmKSl7aWYoYyl7ZD1uZXcgeGxiKGQubGQoKSxkLm1kKCkpO2UuUWIoKX1yZXR1cm4gZH19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBXTWIoYSl7Uk1iKCk7dmFyIGIsYyxkO2lmKCFhLkIuSGMoKGRxZCgpLFhwZCkpKXtyZXR1cm59ZD1hLmYuaTtiPW5ldyBWaWQoYS5hLmMpO2M9bmV3IHozYjtjLmI9Yi5jLWQuYztjLmQ9Yi5kLWQuZDtjLmM9ZC5jK2QuYi0oYi5jK2IuYik7Yy5hPWQuZCtkLmEtKGIuZCtiLmEpO2EuZS4kZihjKX1cbmZ1bmN0aW9uIENRYihhLGIsYyxkKXt2YXIgZSxmLGc7Zz0kd25kLk1hdGgubWluKGMsRlFiKFJEKGEuYiw2OCksYixjLGQpKTtmb3IoZj1uZXcgQW5iKGEuYSk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDIyNSk7ZSE9YiYmKGc9JHduZC5NYXRoLm1pbihnLENRYihlLGIsZyxkKSkpfXJldHVybiBnfVxuZnVuY3Rpb24gYzFiKGEpe3ZhciBiLGMsZCxlO2U9JEMoalIsTnZlLDE5OSxhLmIuYy5sZW5ndGgsMCwyKTtkPW5ldyBKa2IoYS5iLDApO3doaWxlKGQuYjxkLmQuZ2MoKSl7Yj0oc0ZiKGQuYjxkLmQuZ2MoKSksUkQoZC5kLlhiKGQuYz1kLmIrKyksMzApKTtjPWQuYi0xO2VbY109dDJiKGIuYSl9cmV0dXJuIGV9XG5mdW5jdGlvbiBjNmIoYSxiLGMpe3ZhciBkLGUsZjtkPVJEKGN1YihhLmEsYyksMzQpO2lmKGQhPW51bGwpe2Y9UkQoY3ViKGEuYixkKSw2Nyk7emUoZixjLHRydWUpfWU9UkQoY3ViKGEuYixiKSw2Nyk7aWYoIWUpe2U9bmV3IFl1YjtkdWIoYS5iLGIsZSl9UHViKGUsYyxlLmMuYixlLmMpO2R1YihhLmEsYyxiKX1cbmZ1bmN0aW9uIF82YihhLGIsYyxkLGUpe3ZhciBmLGcsaCxpO2c9WE5iKFdOYihfTmIoWTZiKGMpKSxkKSxUNmIoYSxjLGUpKTtmb3IoaT1lM2IoYSxjKS5LYygpO2kuT2IoKTspe2g9UkQoaS5QYigpLDEyKTtpZihiW2gucF0pe2Y9YltoLnBdLmk7Um1iKGcuZCxuZXcgc09iKGYsVU5iKGcsZikpKX19Vk5iKGcpfVxuZnVuY3Rpb24gWWxjKGEsYil7dGhpcy5mPW5ldyBUc2I7dGhpcy5iPW5ldyBUc2I7dGhpcy5qPW5ldyBUc2I7dGhpcy5hPWE7dGhpcy5jPWI7dGhpcy5jPjAmJlhsYyh0aGlzLHRoaXMuYy0xLChxcGQoKSxYb2QpKTt0aGlzLmM8dGhpcy5hLmxlbmd0aC0xJiZYbGModGhpcyx0aGlzLmMrMSwocXBkKCkscHBkKSl9XG5mdW5jdGlvbiBJcWMoYSxiKXt2YXIgYyxkLGUsZixnO2ZvcihmPW5ldyBBbmIoYi5kKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTA1KTtnPVJEKFdqYihhLmMsZSksMTE4KS5vO2ZvcihkPW5ldyBPc2IoZS5iKTtkLmE8ZC5jLmEubGVuZ3RoOyl7Yz1SRChOc2IoZCksNjQpO1VtYyhlLGMsZyl9fX1cbmZ1bmN0aW9uIHFKYyhhKXthLmxlbmd0aD4wJiZhWzBdLmxlbmd0aD4wJiYodGhpcy5jPUhlYihURChtUWIoWTJiKGFbMF1bMF0pLChZd2MoKSxyd2MpKSkpKTt0aGlzLmE9JEMoYVksTnZlLDIxMTcsYS5sZW5ndGgsMCwyKTt0aGlzLmI9JEMoZFksTnZlLDIxMTgsYS5sZW5ndGgsMCwyKTt0aGlzLmQ9bmV3IEtzfVxuZnVuY3Rpb24gVE9jKGEpe2lmKGEuYy5sZW5ndGg9PTApe3JldHVybiBmYWxzZX1pZigodEZiKDAsYS5jLmxlbmd0aCksUkQoYS5jWzBdLDE4KSkuYy5pLms9PShyM2IoKSxvM2IpKXtyZXR1cm4gdHJ1ZX1yZXR1cm4geURiKEdEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLDE2KSksbmV3IFdPYyksbmV3IFlPYyl9XG5mdW5jdGlvbiBJNWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtoPVEyYyhiKTtmPWIuZjtpPWIuZztnPSR3bmQuTWF0aC5zcXJ0KGYqZitpKmkpO2U9MDtmb3IoZD1uZXcgQW5iKGgpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwyNyk7ZSs9STVjKGEsYyl9cmV0dXJuICR3bmQuTWF0aC5tYXgoZSxnKX1cbmZ1bmN0aW9uIEJvZCgpe0JvZD1nZWI7QW9kPW5ldyBFb2QoU3llLDApO3pvZD1uZXcgRW9kKCdGUkVFJywxKTt5b2Q9bmV3IEVvZCgnRklYRURfU0lERScsMik7dm9kPW5ldyBFb2QoJ0ZJWEVEX09SREVSJywzKTt4b2Q9bmV3IEVvZCgnRklYRURfUkFUSU8nLDQpO3dvZD1uZXcgRW9kKCdGSVhFRF9QT1MnLDUpfVxuZnVuY3Rpb24gQ2VlKGEsYil7dmFyIGMsZCxlO2M9Yi5xaShhLmEpO2lmKGMpe2U9V0QoJE5kKCghYy5iJiYoYy5iPW5ldyBTVmQoKEpUZCgpLEZUZCksQzgsYykpLGMuYiksYkxlKSk7Zm9yKGQ9MTtkPChsa2UoKSxra2UpLmxlbmd0aDsrK2Qpe2lmKGxoYihra2VbZF0sZSkpe3JldHVybiBkfX19cmV0dXJuIDB9XG5mdW5jdGlvbiBhb2IoYSl7dmFyIGIsYyxkLGUsZjtpZihhPT1udWxsKXtyZXR1cm4gdnZlfWY9bmV3IEp5YihwdmUsJ1snLCddJyk7Zm9yKGM9YSxkPTAsZT1jLmxlbmd0aDtkPGU7KytkKXtiPWNbZF07R3liKGYsJycrYil9cmV0dXJuICFmLmE/Zi5jOmYuZS5sZW5ndGg9PTA/Zi5hLmE6Zi5hLmErKCcnK2YuZSl9XG5mdW5jdGlvbiBnb2IoYSl7dmFyIGIsYyxkLGUsZjtpZihhPT1udWxsKXtyZXR1cm4gdnZlfWY9bmV3IEp5YihwdmUsJ1snLCddJyk7Zm9yKGM9YSxkPTAsZT1jLmxlbmd0aDtkPGU7KytkKXtiPWNbZF07R3liKGYsJycrYil9cmV0dXJuICFmLmE/Zi5jOmYuZS5sZW5ndGg9PTA/Zi5hLmE6Zi5hLmErKCcnK2YuZSl9XG5mdW5jdGlvbiBNZChhKXt2YXIgYixjLGQ7ZD1uZXcgSnliKHB2ZSwneycsJ30nKTtmb3IoYz1hLnZjKCkuS2MoKTtjLk9iKCk7KXtiPVJEKGMuUGIoKSw0NCk7R3liKGQsTmQoYSxiLmxkKCkpKyc9JytOZChhLGIubWQoKSkpfXJldHVybiAhZC5hP2QuYzpkLmUubGVuZ3RoPT0wP2QuYS5hOmQuYS5hKygnJytkLmUpfVxuZnVuY3Rpb24gdkpiKGEpe3ZhciBiLGMsZCxlO3doaWxlKCFubWIoYS5vKSl7Yz1SRChzbWIoYS5vKSw0Mik7ZD1SRChjLmEsMTI1KTtiPVJEKGMuYiwyMTgpO2U9b0liKGIsZCk7aWYoYi5lPT1kKXtFSWIoZS5nLGIpO2QuZT1lLmUrYi5hfWVsc2V7RUliKGUuYixiKTtkLmU9ZS5lLWIuYX1SbWIoYS5lLmEsZCl9fVxuZnVuY3Rpb24gVzliKGEsYil7dmFyIGMsZCxlO2M9bnVsbDtmb3IoZT1SRChiLktiKGEpLDIwKS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDE4KTtpZighYyl7Yz1kLmMuaT09YT9kLmQuaTpkLmMuaX1lbHNle2lmKChkLmMuaT09YT9kLmQuaTpkLmMuaSkhPWMpe3JldHVybiBmYWxzZX19fXJldHVybiB0cnVlfVxuZnVuY3Rpb24gVVRjKGEsYil7dmFyIGMsZCxlLGYsZztjPXVTYyhhLGZhbHNlLGIpO2ZvcihlPW5ldyBBbmIoYyk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDEzMik7ZC5kPT0wPyhfU2MoZCxudWxsKSxhVGMoZCxudWxsKSk6KGY9ZC5hLGc9ZC5iLF9TYyhkLGcpLGFUYyhkLGYpLHVuZGVmaW5lZCl9fVxuZnVuY3Rpb24gUVVjKGEpe3ZhciBiLGM7Yj1uZXcgdWZkO29mZChiLENVYyk7Yz1SRChtUWIoYSwoWXdjKCksa3djKSksMjEpO2MuSGMoKG92YygpLG52YykpJiZvZmQoYixHVWMpO2MuSGMoZXZjKSYmb2ZkKGIsRFVjKTtjLkhjKGx2YykmJm9mZChiLEZVYyk7Yy5IYyhndmMpJiZvZmQoYixFVWMpO3JldHVybiBifVxuZnVuY3Rpb24gaXooYSxiLGMpe3ZhciBkLGUsZixnLGg7U3RyaW5nLmZyb21DaGFyQ29kZSgxMCk7anooYSk7Zm9yKGU9KGEuaz09bnVsbCYmKGEuaz0kQyhySixOdmUsODIsMCwwLDEpKSxhLmspLGY9MCxnPWUubGVuZ3RoO2Y8ZzsrK2Ype2Q9ZVtmXTtpeihkLGIsJ1xcdCcrYyl9aD1hLmY7ISFoJiZpeihoLGIsYyl9XG5mdW5jdGlvbiBrZWMoYSl7dmFyIGIsYyxkLGU7amVjKGEpO2ZvcihjPW5ldyBpcyhNcihXMmIoYSkuYS5LYygpLG5ldyBpcikpO2dzKGMpOyl7Yj1SRChocyhjKSwxOCk7ZD1iLmMuaT09YTtlPWQ/Yi5kOmIuYztkP1owYihiLG51bGwpOlkwYihiLG51bGwpO3BRYihiLChZd2MoKSxFd2MpLGUpO29lYyhhLGUuaSl9fVxuZnVuY3Rpb24gYXFjKGEsYixjLGQpe3ZhciBlLGY7Zj1iLmk7ZT1jW2YuZ11bYS5kW2YuZ11dO3N3aXRjaChmLmcpe2Nhc2UgMTplLT1kK2Iuai5iO2IuZy5iPWU7YnJlYWs7Y2FzZSAzOmUrPWQ7Yi5nLmI9ZTticmVhaztjYXNlIDQ6ZS09ZCtiLmouYTtiLmcuYT1lO2JyZWFrO2Nhc2UgMjplKz1kO2IuZy5hPWU7fX1cbmZ1bmN0aW9uIEsyYyhhKXt2YXIgYixjLGQ7Zm9yKGM9bmV3IGRNZCgoIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpKTtjLmUhPWMuaS5nYygpOyl7Yj1SRChiTWQoYyksMjcpO2Q9eUdkKGIpO2lmKCFncyhuZXcgaXMoTXIoZC5hLktjKCksbmV3IGlyKSkpKXtyZXR1cm4gYn19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBnM2MoKXtnM2M9Z2ViO2UzYz1uZXcgaDNjKCdPVkVSTEFQX1JFTU9WQUwnLDApO2IzYz1uZXcgaDNjKGlGZSwxKTtmM2M9bmV3IGgzYygnUk9UQVRJT04nLDIpO2MzYz1uZXcgaDNjKCdHUkFQSF9TSVpFX0NBTENVTEFUSU9OJywzKTtkM2M9bmV3IGgzYygnT1VUR09JTkdfRURHRV9BTkdMRVMnLDQpfVxuZnVuY3Rpb24gYUNkKCl7dmFyIGE7aWYoWUJkKXJldHVybiBSRChONWQoKFlTZCgpLFhTZCksJEhlKSwyMTE1KTthPVJEKFpEKFhqYigoWVNkKCksWFNkKSwkSGUpLDU2OSk/WGpiKFhTZCwkSGUpOm5ldyBfQmQsNTY5KTtZQmQ9dHJ1ZTtaQmQoYSk7JEJkKGEpO3JCZChhKTskamIoWFNkLCRIZSxhKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIFRnZShhLGIsYyl7dmFyIGQsZTtpZihhLmo9PTApcmV0dXJuIGM7ZT1SRChqWmQoYSxiLGMpLDc2KTtkPWMuTGsoKTtpZighZC5yaygpfHwhYS5hLmFtKGQpKXt0aHJvdyBBZGIobmV3IHl6KFwiSW52YWxpZCBlbnRyeSBmZWF0dXJlICdcIitkLnFrKCkuemIrJy4nK2QueGUoKStcIidcIikpfXJldHVybiBlfVxuZnVuY3Rpb24gWWkoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2ZvcihoPWEuYSxpPTAsaj1oLmxlbmd0aDtpPGo7KytpKXtnPWhbaV07Zm9yKGQ9ZyxlPTAsZj1kLmxlbmd0aDtlPGY7KytlKXtjPWRbZV07aWYoZEUoYik9PT1kRShjKXx8YiE9bnVsbCYmcGIoYixjKSl7cmV0dXJuIHRydWV9fX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiB5amIoYSl7dmFyIGIsYyxkO2lmKERkYihhLDApPj0wKXtjPUZkYihhLGl4ZSk7ZD1NZGIoYSxpeGUpfWVsc2V7Yj1VZGIoYSwxKTtjPUZkYihiLDUwMDAwMDAwMCk7ZD1NZGIoYiw1MDAwMDAwMDApO2Q9QmRiKFNkYihkLDEpLENkYihhLDEpKX1yZXR1cm4gUmRiKFNkYihkLDMyKSxDZGIoYyx5eGUpKX1cbmZ1bmN0aW9uIGZUYihhLGIsYyl7dmFyIGQsZTtkPShzRmIoYi5iIT0wKSxSRChXdWIoYixiLmEuYSksOCkpO3N3aXRjaChjLmcpe2Nhc2UgMDpkLmI9MDticmVhaztjYXNlIDI6ZC5iPWEuZjticmVhaztjYXNlIDM6ZC5hPTA7YnJlYWs7ZGVmYXVsdDpkLmE9YS5nO31lPVN1YihiLDApO2N2YihlLGQpO3JldHVybiBifVxuZnVuY3Rpb24gVnBjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGk7aT1hLmI7Zj1iLmQ7Zz1mLmo7aD0kcGMoZyxpLmRbZy5nXSxjKTtlPSRpZChhamQoZi5uKSxmLmEpO3N3aXRjaChmLmouZyl7Y2FzZSAxOmNhc2UgMzpoLmErPWUuYTticmVhaztjYXNlIDI6Y2FzZSA0OmguYis9ZS5iO31QdWIoZCxoLGQuYy5iLGQuYyl9XG5mdW5jdGlvbiBZTmMoYSxiLGMpe3ZhciBkLGUsZixnO2c9V21iKGEuZSxiLDApO2Y9bmV3IFpOYztmLmI9YztkPW5ldyBKa2IoYS5lLGcpO3doaWxlKGQuYjxkLmQuZ2MoKSl7ZT0oc0ZiKGQuYjxkLmQuZ2MoKSksUkQoZC5kLlhiKGQuYz1kLmIrKyksMTApKTtlLnA9YztSbWIoZi5lLGUpO0NrYihkKX1yZXR1cm4gZn1cbmZ1bmN0aW9uIGw4YyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2U9bnVsbDtmPTA7Zm9yKGg9bmV3IEFuYihiKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMjcpO2k9Zy5pK2cuZztpZihhPGcuaitnLmYrZCl7IWU/KGU9Zyk6Yy5pLWk8Yy5pLWYmJihlPWcpO2Y9ZS5pK2UuZ319cmV0dXJuICFlPzA6ZitkfVxuZnVuY3Rpb24gbThjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGk7Zj1udWxsO2U9MDtmb3IoaD1uZXcgQW5iKGIpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwyNyk7aT1nLmorZy5mO2lmKGE8Zy5pK2cuZytkKXshZj8oZj1nKTpjLmotaTxjLmotZSYmKGY9Zyk7ZT1mLmorZi5mfX1yZXR1cm4gIWY/MDplK2R9XG5mdW5jdGlvbiBDQShhKXt2YXIgYixjLGQ7Yj1mYWxzZTtkPWEuYi5jLmxlbmd0aDtmb3IoYz0wO2M8ZDtjKyspe2lmKERBKFJEKFZtYihhLmIsYyksNDQzKSkpe2lmKCFiJiZjKzE8ZCYmREEoUkQoVm1iKGEuYixjKzEpLDQ0MykpKXtiPXRydWU7UkQoVm1iKGEuYixjKSw0NDMpLmE9dHJ1ZX19ZWxzZXtiPWZhbHNlfX19XG5mdW5jdGlvbiBJamIoYSxiLGMsZCxlKXt2YXIgZixnO2Y9MDtmb3IoZz0wO2c8ZTtnKyspe2Y9QmRiKGYsVmRiKENkYihiW2ddLHl4ZSksQ2RiKGRbZ10seXhlKSkpO2FbZ109WWRiKGYpO2Y9VGRiKGYsMzIpfWZvcig7ZzxjO2crKyl7Zj1CZGIoZixDZGIoYltnXSx5eGUpKTthW2ddPVlkYihmKTtmPVRkYihmLDMyKX19XG5mdW5jdGlvbiBSamIoYSxiKXtMamIoKTt2YXIgYyxkO2Q9KFBpYigpLEtpYik7Yz1hO2Zvcig7Yj4xO2I+Pj0xKXsoYiYxKSE9MCYmKGQ9V2liKGQsYykpO2MuZD09MT8oYz1XaWIoYyxjKSk6KGM9bmV3IGRqYihUamIoYy5hLGMuZCwkQyhrRSxQd2UsMjgsYy5kPDwxLDE1LDEpKSkpfWQ9V2liKGQsYyk7cmV0dXJuIGR9XG5mdW5jdGlvbiBId2IoKXtId2I9Z2ViO3ZhciBhLGIsYyxkO0V3Yj0kQyhpRSx2eGUsMjgsMjUsMTUsMSk7RndiPSRDKGlFLHZ4ZSwyOCwzMywxNSwxKTtkPTEuNTI1ODc4OTA2MjVFLTU7Zm9yKGI9MzI7Yj49MDtiLS0pe0Z3YltiXT1kO2QqPTAuNX1jPTE7Zm9yKGE9MjQ7YT49MDthLS0pe0V3YlthXT1jO2MqPTAuNX19XG5mdW5jdGlvbiBhNWIoYSl7dmFyIGIsYztpZihIZWIoVEQoR3hkKGEsKHlDYygpLE5BYykpKSkpe2ZvcihjPW5ldyBpcyhNcih6R2QoYSkuYS5LYygpLG5ldyBpcikpO2dzKGMpOyl7Yj1SRChocyhjKSw3NCk7aWYob3pkKGIpKXtpZihIZWIoVEQoR3hkKGIsT0FjKSkpKXtyZXR1cm4gdHJ1ZX19fX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBRbWMoYSxiKXt2YXIgYyxkLGU7aWYoWXNiKGEuZixiKSl7Yi5iPWE7ZD1iLmM7V21iKGEuaixkLDApIT0tMXx8Um1iKGEuaixkKTtlPWIuZDtXbWIoYS5qLGUsMCkhPS0xfHxSbWIoYS5qLGUpO2M9Yi5hLmI7aWYoYy5jLmxlbmd0aCE9MCl7IWEuaSYmKGEuaT1uZXcgX21jKGEpKTtXbWMoYS5pLGMpfX19XG5mdW5jdGlvbiBYcGMoYSl7dmFyIGIsYyxkLGUsZjtjPWEuYy5kO2Q9Yy5qO2U9YS5kLmQ7Zj1lLmo7aWYoZD09Zil7cmV0dXJuIGMucDxlLnA/MDoxfWVsc2UgaWYodHBkKGQpPT1mKXtyZXR1cm4gMH1lbHNlIGlmKHJwZChkKT09Zil7cmV0dXJuIDF9ZWxzZXtiPWEuYjtyZXR1cm4gQ3NiKGIuYix0cGQoZCkpPzA6MX19XG5mdW5jdGlvbiBQZmQoYSl7dmFyIGI7dGhpcy5kPW5ldyBUc2I7dGhpcy5jPWEuYzt0aGlzLmU9YS5kO3RoaXMuYj1hLmI7dGhpcy5mPW5ldyBudGQoYS5lKTt0aGlzLmE9YS5hOyFhLmY/KHRoaXMuZz0oYj1SRChtZmIoVDUpLDkpLG5ldyBGc2IoYixSRChXRWIoYixiLmxlbmd0aCksOSksMCkpKToodGhpcy5nPWEuZil9XG5mdW5jdGlvbiBHRWQoYSxiKXt2YXIgYyxkLGUsZixnLGg7ZT1hO2c9eURkKGUsJ2xheW91dE9wdGlvbnMnKTshZyYmKGc9eURkKGUsY0llKSk7aWYoZyl7aD1nO2Q9bnVsbDshIWgmJihkPShmPW9DKGgsJEMocUosTnZlLDIsMCw2LDEpKSxuZXcgQ0MoaCxmKSkpO2lmKGQpe2M9bmV3IGJGZChoLGIpO3hnYihkLGMpfX19XG5mdW5jdGlvbiBBR2QoYSl7aWYoWkQoYSwyMDcpKXtyZXR1cm4gUkQoYSwyNyl9ZWxzZSBpZihaRChhLDE5Mykpe3JldHVybiBNQ2QoUkQoYSwxMjMpKX1lbHNlIGlmKCFhKXt0aHJvdyBBZGIobmV3IE9nYihISWUpKX1lbHNle3Rocm93IEFkYihuZXcga2liKCdPbmx5IHN1cHBvcnQgbm9kZXMgYW5kIHBvcnRzLicpKX19XG5mdW5jdGlvbiBTQShhLGIsYyxkKXtpZihiPj0wJiZsaGIoYS5zdWJzdHIoYiwnR01UJy5sZW5ndGgpLCdHTVQnKSl7Y1swXT1iKzM7cmV0dXJuIEpBKGEsYyxkKX1pZihiPj0wJiZsaGIoYS5zdWJzdHIoYiwnVVRDJy5sZW5ndGgpLCdVVEMnKSl7Y1swXT1iKzM7cmV0dXJuIEpBKGEsYyxkKX1yZXR1cm4gSkEoYSxjLGQpfVxuZnVuY3Rpb24gWm1jKGEsYil7dmFyIGMsZCxlLGYsZztmPWEuZy5hO2c9YS5nLmI7Zm9yKGQ9bmV3IEFuYihhLmQpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSw3Mik7ZT1jLm47ZS5hPWY7YS5pPT0ocXBkKCksWW9kKT8oZS5iPWcrYS5qLmItYy5vLmIpOihlLmI9Zyk7JGlkKGUsYik7Zis9Yy5vLmErYS5lfX1cbmZ1bmN0aW9uIEZxZChhLGIsYyl7aWYoYS5iKXt0aHJvdyBBZGIobmV3IGRnYignVGhlIHRhc2sgaXMgYWxyZWFkeSBkb25lLicpKX1lbHNlIGlmKGEucCE9bnVsbCl7cmV0dXJuIGZhbHNlfWVsc2V7YS5wPWI7YS5yPWM7YS5rJiYoYS5vPShnaWIoKSxOZGIoSGRiKERhdGUubm93KCkpLEF3ZSkpKTtyZXR1cm4gdHJ1ZX19XG5mdW5jdGlvbiBIRmQoYSl7dmFyIGIsYyxkLGUsZixnLGg7aD1uZXcgdUM7Yz1hLlBnKCk7ZT1jIT1udWxsO2UmJnNEZChoLHVJZSxhLlBnKCkpO2Q9YS54ZSgpO2Y9ZCE9bnVsbDtmJiZzRGQoaCxHSWUsYS54ZSgpKTtiPWEuT2coKTtnPWIhPW51bGw7ZyYmc0RkKGgsJ2Rlc2NyaXB0aW9uJyxhLk9nKCkpO3JldHVybiBofVxuZnVuY3Rpb24gVVZkKGEsYixjKXt2YXIgZCxlLGY7Zj1hLnE7YS5xPWI7aWYoKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wKXtlPW5ldyBOM2QoYSwxLDksZixiKTshYz8oYz1lKTpjLm5qKGUpfWlmKCFiKXshIWEuciYmKGM9YS5ZayhudWxsLGMpKX1lbHNle2Q9Yi5jO2QhPWEuciYmKGM9YS5ZayhkLGMpKX1yZXR1cm4gY31cbmZ1bmN0aW9uIGdhZShhLGIsYyl7dmFyIGQsZSxmLGcsaDtjPShoPWIsSXZkKGgsYS5lLC0xLWEuYyxjKSk7Zz0kOWQoYS5hKTtmb3IoZj0oZD1uZXcgdmtiKChuZXcgbWtiKGcuYSkpLmEpLG5ldyB4YWUoZCkpO2YuYS5iOyl7ZT1SRCh0a2IoZi5hKS5sZCgpLDg5KTtjPW8yZChlLGsyZChlLGEuYSksYyl9cmV0dXJuIGN9XG5mdW5jdGlvbiBoYWUoYSxiLGMpe3ZhciBkLGUsZixnLGg7Yz0oaD1iLEp2ZChoLGEuZSwtMS1hLmMsYykpO2c9JDlkKGEuYSk7Zm9yKGY9KGQ9bmV3IHZrYigobmV3IG1rYihnLmEpKS5hKSxuZXcgeGFlKGQpKTtmLmEuYjspe2U9UkQodGtiKGYuYSkubGQoKSw4OSk7Yz1vMmQoZSxrMmQoZSxhLmEpLGMpfXJldHVybiBjfVxuZnVuY3Rpb24gcmpiKGEsYixjLGQpe3ZhciBlLGYsZztpZihkPT0wKXtoaWIoYiwwLGEsYyxhLmxlbmd0aC1jKX1lbHNle2c9MzItZDthW2EubGVuZ3RoLTFdPTA7Zm9yKGY9YS5sZW5ndGgtMTtmPmM7Zi0tKXthW2ZdfD1iW2YtYy0xXT4+Pmc7YVtmLTFdPWJbZi1jLTFdPDxkfX1mb3IoZT0wO2U8YztlKyspe2FbZV09MH19XG5mdW5jdGlvbiBDTWIoYSl7dmFyIGIsYyxkLGUsZjtiPTA7Yz0wO2ZvcihmPWEuS2MoKTtmLk9iKCk7KXtkPVJEKGYuUGIoKSwxMTcpO2I9JHduZC5NYXRoLm1heChiLGQuZC5iKTtjPSR3bmQuTWF0aC5tYXgoYyxkLmQuYyl9Zm9yKGU9YS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDExNyk7ZC5kLmI9YjtkLmQuYz1jfX1cbmZ1bmN0aW9uIEtOYihhKXt2YXIgYixjLGQsZSxmO2M9MDtiPTA7Zm9yKGY9YS5LYygpO2YuT2IoKTspe2Q9UkQoZi5QYigpLDExNyk7Yz0kd25kLk1hdGgubWF4KGMsZC5kLmQpO2I9JHduZC5NYXRoLm1heChiLGQuZC5hKX1mb3IoZT1hLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMTE3KTtkLmQuZD1jO2QuZC5hPWJ9fVxuZnVuY3Rpb24gUG5jKGEsYixjLGQsZSl7dmFyIGYsZztmPVJEKHpEYihDRGIoYi5PYygpLG5ldyBGb2MpLHRCYihuZXcgWkJiLG5ldyBYQmIsbmV3IHdDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsWyh4QmIoKSx2QmIpXSkpKSwxNSk7RW9iKGYpO2c9UkQoJGkoYS5iLGMsZCksMTUpO2U9PTA/Zy5jZCgwLGYpOmcuR2MoZil9XG5mdW5jdGlvbiBTZGQoYSxiLGMpe2MuVWcoJ0dyb3cgVHJlZScsMSk7YS5iPWIuZjtpZihIZWIoVEQobVFiKGIsKE9RYigpLE1RYikpKSkpe2EuYz1uZXcga1JiO09kZChhLG51bGwpfWVsc2V7YS5jPW5ldyBrUmJ9YS5hPWZhbHNlO1FkZChhLGIuZik7cFFiKGIsTlFiLChHZWIoKSxhLmE/dHJ1ZTpmYWxzZSkpO2MuVmcoKX1cbmZ1bmN0aW9uIHdzZChhKXt2YXIgYixjLGQsZTtiPW51bGw7Zm9yKGU9bmV3IEFuYihhLlJmKCkpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxODcpO2M9bmV3IFVpZChkLkxmKCkuYSxkLkxmKCkuYixkLk1mKCkuYSxkLk1mKCkuYik7IWI/KGI9Yyk6U2lkKGIsYyl9IWImJihiPW5ldyBUaWQpO3JldHVybiBifVxuZnVuY3Rpb24gZHlkKGEsYixjLGQpe3ZhciBlLGY7aWYoYz09MSl7cmV0dXJuICFhLm4mJihhLm49bmV3IEM1ZChJNCxhLDEsNykpLHFMZChhLm4sYixkKX1yZXR1cm4gZj1SRCh2WWQoKGU9UkQoWXdkKGEsMTYpLDI5KSwhZT9hLmlpKCk6ZSksYyksNjkpLGYud2soKS56ayhhLFd3ZChhKSxjLUFZZChhLmlpKCkpLGIsZCl9XG5mdW5jdGlvbiBJSGQoYSxiLGMpe3ZhciBkLGUsZixnLGg7ZD1jLmdjKCk7YS5faShhLmkrZCk7aD1hLmktYjtoPjAmJmhpYihhLmcsYixhLmcsYitkLGgpO2c9Yy5LYygpO2EuaSs9ZDtmb3IoZT0wO2U8ZDsrK2Upe2Y9Zy5QYigpO01IZChhLGIsYS5aaShiLGYpKTthLk1pKGIsZik7YS5OaSgpOysrYn1yZXR1cm4gZCE9MH1cbmZ1bmN0aW9uIFhWZChhLGIsYyl7dmFyIGQ7aWYoYiE9YS5xKXshIWEucSYmKGM9SnZkKGEucSxhLC0xMCxjKSk7ISFiJiYoYz1JdmQoYixhLC0xMCxjKSk7Yz1VVmQoYSxiLGMpfWVsc2UgaWYoKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wKXtkPW5ldyBOM2QoYSwxLDksYixiKTshYz8oYz1kKTpjLm5qKGQpfXJldHVybiBjfVxuZnVuY3Rpb24gZWsoYSxiLGMsZCl7TWIoKGMmT3ZlKT09MCwnZmxhdE1hcCBkb2VzIG5vdCBzdXBwb3J0IFNVQlNJWkVEIGNoYXJhY3RlcmlzdGljJyk7TWIoKGMmNCk9PTAsJ2ZsYXRNYXAgZG9lcyBub3Qgc3VwcG9ydCBTT1JURUQgY2hhcmFjdGVyaXN0aWMnKTtRYihhKTtRYihiKTtyZXR1cm4gbmV3IE1rKGEsYixjLGQpfVxuZnVuY3Rpb24gZnooYSxiKXt2RmIoYiwnQ2Fubm90IHN1cHByZXNzIGEgbnVsbCBleGNlcHRpb24uJyk7bUZiKGIhPWEsJ0V4Y2VwdGlvbiBjYW4gbm90IHN1cHByZXNzIGl0c2VsZi4nKTtpZihhLmkpe3JldHVybn1hLms9PW51bGw/KGEuaz1jRChXQyhySiwxKSxOdmUsODIsMCxbYl0pKTooYS5rW2Euay5sZW5ndGhdPWIpfVxuZnVuY3Rpb24gRExiKGEsYil7dmFyIGM7Yz1FTGIoYS5iLmFnKCksYi5iLmFnKCkpO2lmKGMhPTApe3JldHVybiBjfXN3aXRjaChhLmIuYWcoKS5nKXtjYXNlIDE6Y2FzZSAyOnJldHVybiBoZ2IoYS5iLk5mKCksYi5iLk5mKCkpO2Nhc2UgMzpjYXNlIDQ6cmV0dXJuIGhnYihiLmIuTmYoKSxhLmIuTmYoKSk7fXJldHVybiAwfVxuZnVuY3Rpb24gZVViKGEpe3ZhciBiLGMsZDtkPWEuZS5jLmxlbmd0aDthLmE9WUMoa0UsW052ZSxQd2VdLFs1MywyOF0sMTUsW2QsZF0sMik7Zm9yKGM9bmV3IEFuYihhLmMpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwyOTApO2EuYVtiLmMuYV1bYi5kLmFdKz1SRChtUWIoYiwoeVZiKCksbFZiKSksMTcpLmF9fVxuZnVuY3Rpb24gc0FkKGEsYil7dmFyIGMsZCxlLGYsZztpZihhPT1udWxsKXtyZXR1cm4gbnVsbH1lbHNle2c9JEMoaEUsendlLDI4LDIqYiwxNSwxKTtmb3IoZD0wLGU9MDtkPGI7KytkKXtjPWFbZF0+PjQmMTU7Zj1hW2RdJjE1O2dbZSsrXT1vQWRbY107Z1tlKytdPW9BZFtmXX1yZXR1cm4gSWhiKGcsMCxnLmxlbmd0aCl9fVxuZnVuY3Rpb24gRmhiKGEpe3ZhciBiLGM7aWYoYT49dHhlKXtiPXV4ZSsoYS10eGU+PjEwJjEwMjMpJkJ3ZTtjPTU2MzIwKyhhLXR4ZSYxMDIzKSZCd2U7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYikrKCcnK1N0cmluZy5mcm9tQ2hhckNvZGUoYykpfWVsc2V7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYSZCd2UpfX1cbmZ1bmN0aW9uIFVNYihhLGIpe1JNYigpO3ZhciBjLGQsZSxmO2U9UkQoUkQoUWMoYS5yLGIpLDIxKSw4Nyk7aWYoZS5nYygpPj0yKXtkPVJEKGUuS2MoKS5QYigpLDExNyk7Yz1hLnUuSGMoKFBvZCgpLEtvZCkpO2Y9YS51LkhjKE9vZCk7cmV0dXJuICFkLmEmJiFjJiYoZS5nYygpPT0yfHxmKX1lbHNle3JldHVybiBmYWxzZX19XG5mdW5jdGlvbiB2M2MoYSxiLGMsZCxlKXt2YXIgZixnLGg7Zj13M2MoYSxiLGMsZCxlKTtoPWZhbHNlO3doaWxlKCFmKXtuM2MoYSxlLHRydWUpO2g9dHJ1ZTtmPXczYyhhLGIsYyxkLGUpfWgmJm4zYyhhLGUsZmFsc2UpO2c9TjJjKGUpO2lmKGcuYy5sZW5ndGghPTApeyEhYS5kJiZhLmQuR2coZyk7djNjKGEsZSxjLGQsZyl9fVxuZnVuY3Rpb24gaW5kKCl7aW5kPWdlYjtnbmQ9bmV3IGpuZChMQWUsMCk7ZW5kPW5ldyBqbmQoJ0RJUkVDVEVEJywxKTtobmQ9bmV3IGpuZCgnVU5ESVJFQ1RFRCcsMik7Y25kPW5ldyBqbmQoJ0FTU09DSUFUSU9OJywzKTtmbmQ9bmV3IGpuZCgnR0VORVJBTElaQVRJT04nLDQpO2RuZD1uZXcgam5kKCdERVBFTkRFTkNZJyw1KX1cbmZ1bmN0aW9uIG5zZChhLGIpe3ZhciBjO2lmKCFNQ2QoYSkpe3Rocm93IEFkYihuZXcgZGdiKHNIZSkpfWM9TUNkKGEpO3N3aXRjaChiLmcpe2Nhc2UgMTpyZXR1cm4gLShhLmorYS5mKTtjYXNlIDI6cmV0dXJuIGEuaS1jLmc7Y2FzZSAzOnJldHVybiBhLmotYy5mO2Nhc2UgNDpyZXR1cm4gLShhLmkrYS5nKTt9cmV0dXJuIDB9XG5mdW5jdGlvbiBKZ2UoYSxiLGMpe3ZhciBkLGUsZjtkPWIuTGsoKTtmPWIubWQoKTtlPWQuSmsoKT9mZ2UoYSw0LGQsZixudWxsLGtnZShhLGQsZixaRChkLDEwMikmJihSRChkLDE5KS5CYiZ0eGUpIT0wKSx0cnVlKTpmZ2UoYSxkLnRrKCk/MjoxLGQsZixkLmlrKCksLTEsdHJ1ZSk7Yz9jLm5qKGUpOihjPWUpO3JldHVybiBjfVxuZnVuY3Rpb24gbHdiKGEsYil7dmFyIGMsZDt1RmIoYik7ZD1hLmIuYy5sZW5ndGg7Um1iKGEuYixiKTt3aGlsZShkPjApe2M9ZDtkPShkLTEpLzJ8MDtpZihhLmEuTmUoVm1iKGEuYixkKSxiKTw9MCl7JG1iKGEuYixjLGIpO3JldHVybiB0cnVlfSRtYihhLmIsYyxWbWIoYS5iLGQpKX0kbWIoYS5iLGQsYik7cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBzS2IoYSxiLGMsZCl7dmFyIGUsZjtlPTA7aWYoIWMpe2ZvcihmPTA7ZjxqS2I7ZisrKXtlPSR3bmQuTWF0aC5tYXgoZSxoS2IoYS5hW2ZdW2IuZ10sZCkpfX1lbHNle2U9aEtiKGEuYVtjLmddW2IuZ10sZCl9Yj09KFpKYigpLFhKYikmJiEhYS5iJiYoZT0kd25kLk1hdGgubWF4KGUsYS5iLmEpKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIFFxYyhhLGIpe3ZhciBjLGQsZSxmLGcsaDtlPWEuaTtmPWIuaTtpZighZXx8IWYpe3JldHVybiBmYWxzZX1pZihlLmkhPWYuaXx8ZS5pPT0ocXBkKCksWG9kKXx8ZS5pPT0ocXBkKCkscHBkKSl7cmV0dXJuIGZhbHNlfWc9ZS5nLmE7Yz1nK2Uuai5hO2g9Zi5nLmE7ZD1oK2Yuai5hO3JldHVybiBnPD1kJiZjPj1ofVxuZnVuY3Rpb24gQThjKGEpe3N3aXRjaChhLmcpe2Nhc2UgMDpyZXR1cm4gbmV3IG84YztjYXNlIDE6cmV0dXJuIG5ldyB1OGM7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYignTm8gaW1wbGVtZW50YXRpb24gaXMgYXZhaWxhYmxlIGZvciB0aGUgd2lkdGggYXBwcm94aW1hdG9yICcrKGEuZiE9bnVsbD9hLmY6JycrYS5nKSkpO319XG5mdW5jdGlvbiByRGQoYSxiLGMsZCl7dmFyIGU7ZT1mYWxzZTtpZihiRShkKSl7ZT10cnVlO3NEZChiLGMsV0QoZCkpfWlmKCFlKXtpZigkRChkKSl7ZT10cnVlO3JEZChhLGIsYyxkKX19aWYoIWUpe2lmKFpEKGQsMjQyKSl7ZT10cnVlO3FEZChiLGMsUkQoZCwyNDIpKX19aWYoIWUpe3Rocm93IEFkYihuZXcgQWViKHRJZSkpfX1cbmZ1bmN0aW9uIHVlZShhLGIpe3ZhciBjLGQsZTtjPWIucWkoYS5hKTtpZihjKXtlPSROZCgoIWMuYiYmKGMuYj1uZXcgU1ZkKChKVGQoKSxGVGQpLEM4LGMpKSxjLmIpLHJLZSk7aWYoZSE9bnVsbCl7Zm9yKGQ9MTtkPChsa2UoKSxoa2UpLmxlbmd0aDsrK2Qpe2lmKGxoYihoa2VbZF0sZSkpe3JldHVybiBkfX19fXJldHVybiAwfVxuZnVuY3Rpb24gdmVlKGEsYil7dmFyIGMsZCxlO2M9Yi5xaShhLmEpO2lmKGMpe2U9JE5kKCghYy5iJiYoYy5iPW5ldyBTVmQoKEpUZCgpLEZUZCksQzgsYykpLGMuYikscktlKTtpZihlIT1udWxsKXtmb3IoZD0xO2Q8KGxrZSgpLGlrZSkubGVuZ3RoOysrZCl7aWYobGhiKGlrZVtkXSxlKSl7cmV0dXJuIGR9fX19cmV0dXJuIDB9XG5mdW5jdGlvbiBWZShhLGIpe3ZhciBjLGQsZSxmO3VGYihiKTtmPWEuYS5nYygpO2lmKGY8Yi5nYygpKXtmb3IoYz1hLmEuZWMoKS5LYygpO2MuT2IoKTspe2Q9Yy5QYigpO2IuSGMoZCkmJmMuUWIoKX19ZWxzZXtmb3IoZT1iLktjKCk7ZS5PYigpOyl7ZD1lLlBiKCk7YS5hLkJjKGQpIT1udWxsfX1yZXR1cm4gZiE9YS5hLmdjKCl9XG5mdW5jdGlvbiBlX2IoYSl7dmFyIGIsYztjPWFqZCh4amQoY0QoV0MobDMsMSksTnZlLDgsMCxbYS5pLm4sYS5uLGEuYV0pKSk7Yj1hLmkuZDtzd2l0Y2goYS5qLmcpe2Nhc2UgMTpjLmItPWIuZDticmVhaztjYXNlIDI6Yy5hKz1iLmM7YnJlYWs7Y2FzZSAzOmMuYis9Yi5hO2JyZWFrO2Nhc2UgNDpjLmEtPWIuYjt9cmV0dXJuIGN9XG5mdW5jdGlvbiBlZGMoYSl7dmFyIGI7Yj0oWmNjKCksUkQoaHMobmV3IGlzKE1yKFoyYihhKS5hLktjKCksbmV3IGlyKSkpLDE4KS5jLmkpO3doaWxlKGIuaz09KHIzYigpLG8zYikpe3BRYihiLChZd2MoKSx0d2MpLChHZWIoKSx0cnVlKSk7Yj1SRChocyhuZXcgaXMoTXIoWjJiKGIpLmEuS2MoKSxuZXcgaXIpKSksMTgpLmMuaX19XG5mdW5jdGlvbiBCTWMoYSxiLGMsZCl7dmFyIGUsZixnLGg7aD1hTWMoYixkKTtmb3IoZz1oLktjKCk7Zy5PYigpOyl7ZT1SRChnLlBiKCksMTIpO2EuZFtlLnBdPWEuZFtlLnBdK2EuY1tjLnBdfWg9YU1jKGMsZCk7Zm9yKGY9aC5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDEyKTthLmRbZS5wXT1hLmRbZS5wXS1hLmNbYi5wXX19XG5mdW5jdGlvbiBJc2QoYSxiLGMpe3ZhciBkLGU7Zm9yKGU9bmV3IGRNZCgoIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpKTtlLmUhPWUuaS5nYygpOyl7ZD1SRChiTWQoZSksMjcpO0J5ZChkLGQuaStiLGQuaitjKX14Z2IoKCFhLmImJihhLmI9bmV3IEM1ZChHNCxhLDEyLDMpKSxhLmIpLG5ldyBPc2QoYixjKSl9XG5mdW5jdGlvbiAkeWIoYSxiLGMsZCl7dmFyIGUsZjtmPWI7ZT1mLmQ9PW51bGx8fGEuYS5OZShjLmQsZi5kKT4wPzE6MDt3aGlsZShmLmFbZV0hPWMpe2Y9Zi5hW2VdO2U9YS5hLk5lKGMuZCxmLmQpPjA/MTowfWYuYVtlXT1kO2QuYj1jLmI7ZC5hWzBdPWMuYVswXTtkLmFbMV09Yy5hWzFdO2MuYVswXT1udWxsO2MuYVsxXT1udWxsfVxuZnVuY3Rpb24gekliKGEpe3ZhciBiLGMsZCxlO2I9bmV3IGJuYjtjPSRDKHhkYixIeWUsMjgsYS5hLmMubGVuZ3RoLDE2LDEpO1NuYihjLGMubGVuZ3RoKTtmb3IoZT1uZXcgQW5iKGEuYSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDEyNSk7aWYoIWNbZC5kXSl7WkViKGIuYyxkKTt5SWIoYSxkLGMpfX1yZXR1cm4gYn1cbmZ1bmN0aW9uIFVYYihhLGIpe3ZhciBjLGQsZSxmLGc7ZT1iPT0xP01YYjpMWGI7Zm9yKGQ9ZS5hLmVjKCkuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSw4OCk7Zm9yKGc9UkQoUWMoYS5mLmMsYyksMjEpLktjKCk7Zy5PYigpOyl7Zj1SRChnLlBiKCksNDIpO1ltYihhLmIuYixmLmIpO1ltYihhLmIuYSxSRChmLmIsODYpLmQpfX19XG5mdW5jdGlvbiBQOWIoYSxiKXt2YXIgYztiLlVnKCdIaWVyYXJjaGljYWwgcG9ydCBwb3NpdGlvbiBwcm9jZXNzaW5nJywxKTtjPWEuYjtjLmMubGVuZ3RoPjAmJk85YigodEZiKDAsYy5jLmxlbmd0aCksUkQoYy5jWzBdLDMwKSksYSk7Yy5jLmxlbmd0aD4xJiZPOWIoUkQoVm1iKGMsYy5jLmxlbmd0aC0xKSwzMCksYSk7Yi5WZygpfVxuZnVuY3Rpb24gU29kKGEpe1BvZCgpO3ZhciBiLGM7Yj15c2IoTG9kLGNEKFdDKEQzLDEpLGp3ZSwyNzksMCxbTm9kXSkpO2lmKGR5KFR4KGIsYSkpPjEpe3JldHVybiBmYWxzZX1jPXlzYihLb2QsY0QoV0MoRDMsMSksandlLDI3OSwwLFtKb2QsT29kXSkpO2lmKGR5KFR4KGMsYSkpPjEpe3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIEZCZChhLGIpe3ZhciBjO2M9WGpiKChZU2QoKSxYU2QpLGEpO1pEKGMsNTA3KT8kamIoWFNkLGEsbmV3IEI1ZCh0aGlzLGIpKTokamIoWFNkLGEsdGhpcyk7QkJkKHRoaXMsYik7aWYoYj09KGpUZCgpLGlUZCkpe3RoaXMud2I9UkQodGhpcywyMDM4KTtSRChiLDIwNDApfWVsc2V7dGhpcy53Yj0obFRkKCksa1RkKX19XG5mdW5jdGlvbiBMYWUoYil7dmFyIGMsZCxlO2lmKGI9PW51bGwpe3JldHVybiBudWxsfWM9bnVsbDtmb3IoZD0wO2Q8bkFkLmxlbmd0aDsrK2Qpe3RyeXtyZXR1cm4gYjJkKG5BZFtkXSxiKX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDMzKSl7ZT1hO2M9ZX1lbHNlIHRocm93IEFkYihhKX19dGhyb3cgQWRiKG5ldyBSU2QoYykpfVxuZnVuY3Rpb24gTXJiKCl7TXJiPWdlYjtLcmI9Y0QoV0MocUosMSksTnZlLDIsNixbJ1N1bicsJ01vbicsJ1R1ZScsJ1dlZCcsJ1RodScsJ0ZyaScsJ1NhdCddKTtMcmI9Y0QoV0MocUosMSksTnZlLDIsNixbJ0phbicsJ0ZlYicsJ01hcicsJ0FwcicsR3dlLCdKdW4nLCdKdWwnLCdBdWcnLCdTZXAnLCdPY3QnLCdOb3YnLCdEZWMnXSl9XG5mdW5jdGlvbiBxQmIoYSl7dmFyIGIsYyxkO2I9bGhiKHR5cGVvZihiKSxZeGUpP251bGw6bmV3IGdGYjtpZighYil7cmV0dXJufVNBYigpO2M9KGQ9OTAwLGQ+PUF3ZT8nZXJyb3InOmQ+PTkwMD8nd2Fybic6ZD49ODAwPydpbmZvJzonbG9nJyk7ZUZiKGMsYS5hKTshIWEuYiYmZkZiKGIsYyxhLmIsJ0V4Y2VwdGlvbjogJyx0cnVlKX1cbmZ1bmN0aW9uIG1RYihhLGIpe3ZhciBjLGQ7ZD0oIWEucSYmKGEucT1uZXcgVHNiKSxXamIoYS5xLGIpKTtpZihkIT1udWxsKXtyZXR1cm4gZH1jPWIuU2coKTtaRChjLDQpJiYoYz09bnVsbD8oIWEucSYmKGEucT1uZXcgVHNiKSxfamIoYS5xLGIpKTooIWEucSYmKGEucT1uZXcgVHNiKSxaamIoYS5xLGIsYykpLGEpO3JldHVybiBjfVxuZnVuY3Rpb24gc1hiKCl7c1hiPWdlYjtuWGI9bmV3IHRYYignUDFfQ1lDTEVfQlJFQUtJTkcnLDApO29YYj1uZXcgdFhiKCdQMl9MQVlFUklORycsMSk7cFhiPW5ldyB0WGIoJ1AzX05PREVfT1JERVJJTkcnLDIpO3FYYj1uZXcgdFhiKCdQNF9OT0RFX1BMQUNFTUVOVCcsMyk7clhiPW5ldyB0WGIoJ1A1X0VER0VfUk9VVElORycsNCl9XG5mdW5jdGlvbiBLWmIoYSxiKXtDWmIoKTt2YXIgYztpZihhLmM9PWIuYyl7aWYoYS5iPT1iLmJ8fHJaYihhLmIsYi5iKSl7Yz1vWmIoYS5iKT8xOi0xO2lmKGEuYSYmIWIuYSl7cmV0dXJuIGN9ZWxzZSBpZighYS5hJiZiLmEpe3JldHVybiAtY319cmV0dXJuIGhnYihhLmIuZyxiLmIuZyl9ZWxzZXtyZXR1cm4gUWZiKGEuYyxiLmMpfX1cbmZ1bmN0aW9uIEUzYyhhLGIpe3ZhciBjLGQsZTtpZihwM2MoYSxiKSl7cmV0dXJuIHRydWV9Zm9yKGQ9bmV3IEFuYihiKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMjcpO2U9UjJjKGMpO2lmKG8zYyhhLGMsZSkpe3JldHVybiB0cnVlfWlmKEMzYyhhLGMpLWEuZzw9YS5hKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gbmNkKCl7bmNkPWdlYjttY2Q9KEtjZCgpLEpjZCk7amNkPUZjZDtpY2Q9RGNkO2djZD16Y2Q7aGNkPUJjZDtmY2Q9bmV3IEEzYig4KTtlY2Q9bmV3IG1HZCgodW1kKCksdGxkKSxmY2QpO2tjZD1uZXcgbUdkKGZtZCw4KTtsY2Q9SGNkO2JjZD11Y2Q7Y2NkPXdjZDtkY2Q9bmV3IG1HZChNa2QsKEdlYigpLGZhbHNlKSl9XG5mdW5jdGlvbiBoa2QoKXtoa2Q9Z2ViO2VrZD1uZXcgQTNiKDE1KTtka2Q9bmV3IG1HZCgodW1kKCksdGxkKSxla2QpO2drZD1uZXcgbUdkKGZtZCwxNSk7ZmtkPW5ldyBtR2QoUmxkLHNnYigwKSk7JGpkPVdrZDtha2Q9a2xkO2NrZD1wbGQ7WGpkPW5ldyBtR2QoRGtkLEtHZSk7X2pkPWFsZDtia2Q9bmxkO1lqZD1Ga2Q7WmpkPUtrZH1cbmZ1bmN0aW9uIEpHZChhKXtpZigoIWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSksYS5iKS5pIT0xfHwoIWEuYyYmKGEuYz1uZXcgWWllKEU0LGEsNSw4KSksYS5jKS5pIT0xKXt0aHJvdyBBZGIobmV3IGFnYihKSWUpKX1yZXR1cm4gQUdkKFJEKFFIZCgoIWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSksYS5iKSwwKSw4NCkpfVxuZnVuY3Rpb24gS0dkKGEpe2lmKCghYS5iJiYoYS5iPW5ldyBZaWUoRTQsYSw0LDcpKSxhLmIpLmkhPTF8fCghYS5jJiYoYS5jPW5ldyBZaWUoRTQsYSw1LDgpKSxhLmMpLmkhPTEpe3Rocm93IEFkYihuZXcgYWdiKEpJZSkpfXJldHVybiBCR2QoUkQoUUhkKCghYS5iJiYoYS5iPW5ldyBZaWUoRTQsYSw0LDcpKSxhLmIpLDApLDg0KSl9XG5mdW5jdGlvbiBNR2QoYSl7aWYoKCFhLmImJihhLmI9bmV3IFlpZShFNCxhLDQsNykpLGEuYikuaSE9MXx8KCFhLmMmJihhLmM9bmV3IFlpZShFNCxhLDUsOCkpLGEuYykuaSE9MSl7dGhyb3cgQWRiKG5ldyBhZ2IoSkllKSl9cmV0dXJuIEJHZChSRChRSGQoKCFhLmMmJihhLmM9bmV3IFlpZShFNCxhLDUsOCkpLGEuYyksMCksODQpKX1cbmZ1bmN0aW9uIExHZChhKXtpZigoIWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSksYS5iKS5pIT0xfHwoIWEuYyYmKGEuYz1uZXcgWWllKEU0LGEsNSw4KSksYS5jKS5pIT0xKXt0aHJvdyBBZGIobmV3IGFnYihKSWUpKX1yZXR1cm4gQUdkKFJEKFFIZCgoIWEuYyYmKGEuYz1uZXcgWWllKEU0LGEsNSw4KSksYS5jKSwwKSw4NCkpfVxuZnVuY3Rpb24gYkpkKGEsYixjKXt2YXIgZCxlLGY7KythLmo7ZT1hLkVqKCk7aWYoYj49ZXx8YjwwKXRocm93IEFkYihuZXcgdmViKE1JZStiK05JZStlKSk7aWYoYz49ZXx8YzwwKXRocm93IEFkYihuZXcgdmViKE9JZStjK05JZStlKSk7YiE9Yz8oZD0oZj1hLkNqKGMpLGEucWooYixmKSxmKSk6KGQ9YS54aihjKSk7cmV0dXJuIGR9XG5mdW5jdGlvbiBMamUoYSl7dmFyIGIsYyxkO2Q9YTtpZihhKXtiPTA7Zm9yKGM9YS5FaCgpO2M7Yz1jLkVoKCkpe2lmKCsrYj53eGUpe3JldHVybiBMamUoYyl9ZD1jO2lmKGM9PWEpe3Rocm93IEFkYihuZXcgZGdiKCdUaGVyZSBpcyBhIGN5Y2xlIGluIHRoZSBjb250YWlubWVudCBoaWVyYXJjaHkgb2YgJythKSl9fX1yZXR1cm4gZH1cbmZ1bmN0aW9uIEZlKGEpe3ZhciBiLGMsZDtkPW5ldyBKeWIocHZlLCdbJywnXScpO2ZvcihjPWEuS2MoKTtjLk9iKCk7KXtiPWMuUGIoKTtHeWIoZCxkRShiKT09PWRFKGEpPycodGhpcyBDb2xsZWN0aW9uKSc6Yj09bnVsbD92dmU6amViKGIpKX1yZXR1cm4gIWQuYT9kLmM6ZC5lLmxlbmd0aD09MD9kLmEuYTpkLmEuYSsoJycrZC5lKX1cbmZ1bmN0aW9uIHAzYyhhLGIpe3ZhciBjLGQ7ZD1mYWxzZTtpZihiLmdjKCk8Mil7cmV0dXJuIGZhbHNlfWZvcihjPTA7YzxiLmdjKCk7YysrKXtjPGIuZ2MoKS0xPyhkPWR8bzNjKGEsUkQoYi5YYihjKSwyNyksUkQoYi5YYihjKzEpLDI3KSkpOihkPWR8bzNjKGEsUkQoYi5YYihjKSwyNyksUkQoYi5YYigwKSwyNykpKX1yZXR1cm4gZH1cbmZ1bmN0aW9uIHdBZChhLGIpe3ZhciBjO2lmKGIhPWEuYSl7Yz1udWxsOyEhYS5hJiYoYz1SRChhLmEsNTQpLlRoKGEsNCx0NyxjKSk7ISFiJiYoYz1SRChiLDU0KS5SaChhLDQsdDcsYykpO2M9ckFkKGEsYixjKTshIWMmJmMub2ooKX1lbHNlIChhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDEsMSxiLGIpKX1cbmZ1bmN0aW9uIHAyZChhLGIpe3ZhciBjO2lmKGIhPWEuZSl7ISFhLmUmJm9hZSgkOWQoYS5lKSxhKTshIWImJighYi5iJiYoYi5iPW5ldyBwYWUobmV3IGxhZSkpLG5hZShiLmIsYSkpO2M9ZjJkKGEsYixudWxsKTshIWMmJmMub2ooKX1lbHNlIChhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDEsNCxiLGIpKX1cbmZ1bmN0aW9uICRtYyhhLGIpe3ZhciBjO2M9Yi5vO2lmKERtZChhLmYpKXthLmouYT0kd25kLk1hdGgubWF4KGEuai5hLGMuYSk7YS5qLmIrPWMuYjthLmQuYy5sZW5ndGg+MSYmKGEuai5iKz1hLmUpfWVsc2V7YS5qLmErPWMuYTthLmouYj0kd25kLk1hdGgubWF4KGEuai5iLGMuYik7YS5kLmMubGVuZ3RoPjEmJihhLmouYSs9YS5lKX19XG5mdW5jdGlvbiBNbmMoKXtNbmM9Z2ViO0puYz1jRChXQyhFMywxKSxOQWUsNjQsMCxbKHFwZCgpLFlvZCksWG9kLG5wZF0pO0luYz1jRChXQyhFMywxKSxOQWUsNjQsMCxbWG9kLG5wZCxwcGRdKTtLbmM9Y0QoV0MoRTMsMSksTkFlLDY0LDAsW25wZCxwcGQsWW9kXSk7TG5jPWNEKFdDKEUzLDEpLE5BZSw2NCwwLFtwcGQsWW9kLFhvZF0pfVxuZnVuY3Rpb24gVXBjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrO2c9YS5jLmQ7aD1hLmQuZDtpZihnLmo9PWguail7cmV0dXJufWs9YS5iO2U9Zy5qO2k9bnVsbDt3aGlsZShlIT1oLmope2k9Yj09MD90cGQoZSk6cnBkKGUpO2Y9JHBjKGUsay5kW2UuZ10sYyk7aj0kcGMoaSxrLmRbaS5nXSxjKTtNdWIoZCwkaWQoZixqKSk7ZT1pfX1cbmZ1bmN0aW9uIE9KYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2c9aE1jKGEuYSxiLGMpO2g9UkQoZy5hLDE3KS5hO2Y9UkQoZy5iLDE3KS5hO2lmKGQpe2k9UkQobVFiKGIsKFl3YygpLEl3YykpLDEwKTtlPVJEKG1RYihjLEl3YyksMTApO2lmKCEhaSYmISFlKXtTbGMoYS5iLGksZSk7aCs9YS5iLmk7Zis9YS5iLmV9fXJldHVybiBoPmZ9XG5mdW5jdGlvbiBPTGMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqO3RoaXMuYT1MTGMoYSk7dGhpcy5iPW5ldyBibmI7Zm9yKGM9YSxkPTAsZT1jLmxlbmd0aDtkPGU7KytkKXtiPWNbZF07Zj1uZXcgYm5iO1JtYih0aGlzLmIsZik7Zm9yKGg9YixpPTAsaj1oLmxlbmd0aDtpPGo7KytpKXtnPWhbaV07Um1iKGYsbmV3IGRuYihnLmopKX19fVxuZnVuY3Rpb24gUUxjKGEsYixjKXt2YXIgZCxlLGY7Zj0wO2Q9Y1tiXTtpZihiPGMubGVuZ3RoLTEpe2U9Y1tiKzFdO2lmKGEuYltiXSl7Zj1pTmMoYS5kLGQsZSk7Zis9bE1jKGEuYSxkLChxcGQoKSxYb2QpKTtmKz1sTWMoYS5hLGUscHBkKX1lbHNle2Y9Z01jKGEuYSxkLGUpfX1hLmNbYl0mJihmKz1uTWMoYS5hLGQpKTtyZXR1cm4gZn1cbmZ1bmN0aW9uIHIwYihhLGIsYyxkLGUpe3ZhciBmLGcsaCxpO2k9bnVsbDtmb3IoaD1uZXcgQW5iKGQpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSw0NTMpO2lmKGchPWMmJldtYihnLmUsZSwwKSE9LTEpe2k9ZzticmVha319Zj1zMGIoZSk7WTBiKGYsYy5iKTtaMGIoZixpLmIpO1JjKGEuYSxlLG5ldyBKMGIoZixiLGMuZikpfVxuZnVuY3Rpb24gaDJiKGEpe3ZhciBiLGMsZCxlO2lmKEVtZChSRChtUWIoYS5iLCh5Q2MoKSxyQWMpKSw4OCkpKXtyZXR1cm4gMH1iPTA7Zm9yKGQ9bmV3IEFuYihhLmEpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxMCk7aWYoYy5rPT0ocjNiKCkscDNiKSl7ZT1jLm8uYTtiPSR3bmQuTWF0aC5tYXgoYixlKX19cmV0dXJuIGJ9XG5mdW5jdGlvbiBUbGMoYSl7d2hpbGUoYS5nLmMhPTAmJmEuZC5jIT0wKXtpZihhbWMoYS5nKS5jPmFtYyhhLmQpLmMpe2EuaSs9YS5nLmM7Y21jKGEuZCl9ZWxzZSBpZihhbWMoYS5kKS5jPmFtYyhhLmcpLmMpe2EuZSs9YS5kLmM7Y21jKGEuZyl9ZWxzZXthLmkrPV9sYyhhLmcpO2EuZSs9X2xjKGEuZCk7Y21jKGEuZyk7Y21jKGEuZCl9fX1cbmZ1bmN0aW9uIHZUYyhhLGIsYyl7dmFyIGQsZSxmLGc7Zj1iLnE7Zz1iLnI7bmV3IGJUYygoZlRjKCksZFRjKSxiLGYsMSk7bmV3IGJUYyhkVGMsZixnLDEpO2ZvcihlPW5ldyBBbmIoYyk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDExOCk7aWYoZCE9ZiYmZCE9YiYmZCE9Zyl7UFRjKGEuYSxkLGIpO1BUYyhhLmEsZCxnKX19fVxuZnVuY3Rpb24gdlZjKGEsYixjLGQpe2EuYS5kPSR3bmQuTWF0aC5taW4oYixjKTthLmEuYT0kd25kLk1hdGgubWF4KGIsZCktYS5hLmQ7aWYoYjxjKXthLmI9MC41KihiK2MpO2EuZz1DRWUqYS5iKzAuOSpiO2EuZj1DRWUqYS5iKzAuOSpjfWVsc2V7YS5iPTAuNSooYitkKTthLmc9Q0VlKmEuYiswLjkqZDthLmY9Q0VlKmEuYiswLjkqYn19XG5mdW5jdGlvbiB6WmMoYSl7dmFyIGIsYyxkLGU7aWYoYS5iIT0wKXtiPW5ldyBZdWI7Zm9yKGU9U3ViKGEsMCk7ZS5iIT1lLmQuYzspe2Q9UkQoZXZiKGUpLDQwKTt5ZShiLCRXYyhkKSk7Yz1kLmU7Yy5hPVJEKG1RYihkLChxJGMoKSxvJGMpKSwxNykuYTtjLmI9UkQobVFiKGQscCRjKSwxNykuYX1yZXR1cm4gYn1yZXR1cm4gbmV3IFl1Yn1cbmZ1bmN0aW9uIHQ4YihhKXtzd2l0Y2goUkQobVFiKGEsKHlDYygpLFVBYykpLDE3MSkuZyl7Y2FzZSAxOnBRYihhLFVBYywoY3hjKCksX3djKSk7YnJlYWs7Y2FzZSAyOnBRYihhLFVBYywoY3hjKCksYXhjKSk7YnJlYWs7Y2FzZSAzOnBRYihhLFVBYywoY3hjKCksWndjKSk7YnJlYWs7Y2FzZSA0OnBRYihhLFVBYywoY3hjKCksJHdjKSk7fX1cbmZ1bmN0aW9uIFdoYyhhLGIsYyl7dmFyIGQ7Yy5VZygnU2VsZi1Mb29wIHJvdXRpbmcnLDEpO2Q9WGhjKGIpO2ZFKG1RYihiLChyaWQoKSxxaWQpKSk7RkRiKEdEYihDRGIoQ0RiKEVEYihuZXcgU0RiKG51bGwsbmV3IFN3YihiLmIsMTYpKSxuZXcgJGhjKSxuZXcgYWljKSxuZXcgY2ljKSxuZXcgZWljKSxuZXcgZ2ljKGEsZCkpO2MuVmcoKX1cbmZ1bmN0aW9uICR1YygpeyR1Yz1nZWI7WXVjPW5ldyBfdWMoTEFlLDApO1Z1Yz1uZXcgX3VjKE55ZSwxKTtadWM9bmV3IF91YyhPeWUsMik7WHVjPW5ldyBfdWMoJ0xFRlRfUklHSFRfQ09OU1RSQUlOVF9MT0NLSU5HJywzKTtXdWM9bmV3IF91YygnTEVGVF9SSUdIVF9DT05ORUNUSU9OX0xPQ0tJTkcnLDQpO1V1Yz1uZXcgX3VjKEVCZSw1KX1cbmZ1bmN0aW9uIHRXYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGo7aD1jLmEvMjtmPWMuYi8yO2Q9JHduZC5NYXRoLmFicyhiLmEtYS5hKTtlPSR3bmQuTWF0aC5hYnMoYi5iLWEuYik7aT0xO2o9MTtkPmgmJihpPWgvZCk7ZT5mJiYoaj1mL2UpO2c9JHduZC5NYXRoLm1pbihpLGopO2EuYSs9ZyooYi5hLWEuYSk7YS5iKz1nKihiLmItYS5iKX1cbmZ1bmN0aW9uIEk4YyhhLGIsYyxkLGUpe3ZhciBmLGc7Zz1mYWxzZTtmPVJEKFZtYihjLmIsMCksMjcpO3doaWxlKFY4YyhhLGIsZixkLGUpKXtnPXRydWU7VDljKGMsZik7aWYoYy5iLmMubGVuZ3RoPT0wKXticmVha31mPVJEKFZtYihjLmIsMCksMjcpfWMuYi5jLmxlbmd0aD09MCYmRmFkKGMuaixjKTtnJiZnYWQoYi5xKTtyZXR1cm4gZ31cbmZ1bmN0aW9uIEVpZChhLGIpe3RpZCgpO3ZhciBjLGQsZSxmO2lmKGIuYjwyKXtyZXR1cm4gZmFsc2V9Zj1TdWIoYiwwKTtjPVJEKGV2YihmKSw4KTtkPWM7d2hpbGUoZi5iIT1mLmQuYyl7ZT1SRChldmIoZiksOCk7aWYoRGlkKGEsZCxlKSl7cmV0dXJuIHRydWV9ZD1lfWlmKERpZChhLGQsYykpe3JldHVybiB0cnVlfXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIEJ4ZChhLGIsYyxkKXt2YXIgZSxmO2lmKGM9PTApe3JldHVybiAhYS5vJiYoYS5vPW5ldyBEVmQoKHB2ZCgpLG12ZCksWDQsYSwwKSksQlZkKGEubyxiLGQpfXJldHVybiBmPVJEKHZZZCgoZT1SRChZd2QoYSwxNiksMjkpLCFlP2EuaWkoKTplKSxjKSw2OSksZi53aygpLkFrKGEsV3dkKGEpLGMtQVlkKGEuaWkoKSksYixkKX1cbmZ1bmN0aW9uIEJCZChhLGIpe3ZhciBjO2lmKGIhPWEuc2Ipe2M9bnVsbDshIWEuc2ImJihjPVJEKGEuc2IsNTQpLlRoKGEsMSxuNyxjKSk7ISFiJiYoYz1SRChiLDU0KS5SaChhLDEsbjcsYykpO2M9aEJkKGEsYixjKTshIWMmJmMub2ooKX1lbHNlIChhLkRiJjQpIT0wJiYoYS5EYiYxKT09MCYmcXZkKGEsbmV3IE4zZChhLDEsNCxiLGIpKX1cbmZ1bmN0aW9uIFlEZChhLGIpe3ZhciBjLGQsZSxmO2lmKGIpe2U9dkRkKGIsJ3gnKTtjPW5ldyBaRWQoYSk7SHpkKGMuYSwodUZiKGUpLGUpKTtmPXZEZChiLCd5Jyk7ZD1uZXcgJEVkKGEpO0l6ZChkLmEsKHVGYihmKSxmKSl9ZWxzZXt0aHJvdyBBZGIobmV3IENEZCgnQWxsIGVkZ2Ugc2VjdGlvbnMgbmVlZCBhbiBlbmQgcG9pbnQuJykpfX1cbmZ1bmN0aW9uIFdEZChhLGIpe3ZhciBjLGQsZSxmO2lmKGIpe2U9dkRkKGIsJ3gnKTtjPW5ldyBXRWQoYSk7T3pkKGMuYSwodUZiKGUpLGUpKTtmPXZEZChiLCd5Jyk7ZD1uZXcgWEVkKGEpO1B6ZChkLmEsKHVGYihmKSxmKSl9ZWxzZXt0aHJvdyBBZGIobmV3IENEZCgnQWxsIGVkZ2Ugc2VjdGlvbnMgbmVlZCBhIHN0YXJ0IHBvaW50LicpKX19XG5mdW5jdGlvbiBoQmIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtmb3IoZD1rQmIoYSksZj0wLGg9ZC5sZW5ndGg7ZjxoOysrZil7cUJiKGIpfWk9IWRCYiYmYS5lP2RCYj9udWxsOmEuZDpudWxsO3doaWxlKGkpe2ZvcihjPWtCYihpKSxlPTAsZz1jLmxlbmd0aDtlPGc7KytlKXtxQmIoYil9aT0hZEJiJiZpLmU/ZEJiP251bGw6aS5kOm51bGx9fVxuZnVuY3Rpb24gYVhiKGEsYil7dmFyIGMsZDtkPVJEKG1RYihiLCh5Q2MoKSxCQmMpKSwxMDEpO3BRYihiLChZd2MoKSxGd2MpLGQpO2M9Yi5lOyEhYyYmKEZEYihuZXcgU0RiKG51bGwsbmV3IFN3YihjLmEsMTYpKSxuZXcgZlhiKGEpKSxGRGIoRURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGMuYiwxNikpLG5ldyBoWGIpLG5ldyBqWGIoYSkpKX1cbmZ1bmN0aW9uIHIzYigpe3IzYj1nZWI7cDNiPW5ldyBzM2IoJ05PUk1BTCcsMCk7bzNiPW5ldyBzM2IoJ0xPTkdfRURHRScsMSk7bTNiPW5ldyBzM2IoJ0VYVEVSTkFMX1BPUlQnLDIpO3EzYj1uZXcgczNiKCdOT1JUSF9TT1VUSF9QT1JUJywzKTtuM2I9bmV3IHMzYignTEFCRUwnLDQpO2wzYj1uZXcgczNiKCdCUkVBS0lOR19QT0lOVCcsNSl9XG5mdW5jdGlvbiB4N2IoYSl7dmFyIGIsYyxkLGU7Yj1mYWxzZTtpZihuUWIoYSwoWXdjKCksY3djKSkpe2M9UkQobVFiKGEsY3djKSw4NSk7Zm9yKGU9bmV3IEFuYihhLmopO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxMik7aWYodjdiKGQpKXtpZighYil7dTdiKFkyYihhKSk7Yj10cnVlfXk3YihSRChjLnhjKGQpLDMxNCkpfX19fVxuZnVuY3Rpb24gR0ZkKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksajtqPUhGZChhKTtjPWEuZTtmPWMhPW51bGw7ZiYmc0RkKGosRkllLGEuZSk7aD1hLms7Zz0hIWg7ZyYmc0RkKGosJ3R5cGUnLHBzKGEuaykpO2Q9Y3ZlKGEuaik7ZT0hZDtpZihlKXtpPW5ldyBNQjtzQyhqLGxJZSxpKTtiPW5ldyBTRmQoaSk7eGdiKGEuaixiKX1yZXR1cm4gan1cbmZ1bmN0aW9uIFp2KGEpe3ZhciBiLGMsZCxlO2U9VGhiKChkayhhLmdjKCksJ3NpemUnKSxuZXcgY2liKSwxMjMpO2Q9dHJ1ZTtmb3IoYz1nbihhKS5LYygpO2MuT2IoKTspe2I9UkQoYy5QYigpLDQ0KTtkfHwoZS5hKz1wdmUsZSk7ZD1mYWxzZTtZaGIoVGhiKFloYihlLGIubGQoKSksNjEpLGIubWQoKSl9cmV0dXJuIChlLmErPSd9JyxlKS5hfVxuZnVuY3Rpb24gQUQoYSxiKXt2YXIgYyxkLGU7YiY9NjM7aWYoYjwyMil7Yz1hLmw8PGI7ZD1hLm08PGJ8YS5sPj4yMi1iO2U9YS5oPDxifGEubT4+MjItYn1lbHNlIGlmKGI8NDQpe2M9MDtkPWEubDw8Yi0yMjtlPWEubTw8Yi0yMnxhLmw+PjQ0LWJ9ZWxzZXtjPTA7ZD0wO2U9YS5sPDxiLTQ0fXJldHVybiBoRChjJmR4ZSxkJmR4ZSxlJmV4ZSl9XG5mdW5jdGlvbiBOZWIoYSl7TWViPT1udWxsJiYoTWViPW5ldyBSZWdFeHAoJ15cXFxccypbKy1dPyhOYU58SW5maW5pdHl8KChcXFxcZCtcXFxcLj9cXFxcZCopfChcXFxcLlxcXFxkKykpKFtlRV1bKy1dP1xcXFxkKyk/W2REZkZdPylcXFxccyokJykpO2lmKCFNZWIudGVzdChhKSl7dGhyb3cgQWRiKG5ldyBWZ2IobnhlK2ErJ1wiJykpfXJldHVybiBwYXJzZUZsb2F0KGEpfVxuZnVuY3Rpb24gUFhiKGEsYil7dmFyIGMsZCxlLGYsZztlPWI9PTE/TVhiOkxYYjtmb3IoZD1lLmEuZWMoKS5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDg4KTtmb3IoZz1SRChRYyhhLmYuYyxjKSwyMSkuS2MoKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSw0Mik7Um1iKGEuYi5iLFJEKGYuYiw4NikpO1JtYihhLmIuYSxSRChmLmIsODYpLmQpfX19XG5mdW5jdGlvbiBycWMoYSxiKXt2YXIgYyxkLGUsZjtmPWIuYi5qO2EuYT0kQyhrRSxQd2UsMjgsZi5jLmxlbmd0aCwxNSwxKTtlPTA7Zm9yKGQ9MDtkPGYuYy5sZW5ndGg7ZCsrKXtjPSh0RmIoZCxmLmMubGVuZ3RoKSxSRChmLmNbZF0sMTIpKTtjLmUuYy5sZW5ndGg9PTAmJmMuZy5jLmxlbmd0aD09MD8oZSs9MSk6KGUrPTMpO2EuYVtkXT1lfX1cbmZ1bmN0aW9uIHR1Yygpe3R1Yz1nZWI7b3VjPW5ldyB2dWMoJ0FMV0FZU19VUCcsMCk7bnVjPW5ldyB2dWMoJ0FMV0FZU19ET1dOJywxKTtxdWM9bmV3IHZ1YygnRElSRUNUSU9OX1VQJywyKTtwdWM9bmV3IHZ1YygnRElSRUNUSU9OX0RPV04nLDMpO3N1Yz1uZXcgdnVjKCdTTUFSVF9VUCcsNCk7cnVjPW5ldyB2dWMoJ1NNQVJUX0RPV04nLDUpfVxuZnVuY3Rpb24gdmlkKGEsYil7aWYoYTwwfHxiPDApe3Rocm93IEFkYihuZXcgYWdiKCdrIGFuZCBuIG11c3QgYmUgcG9zaXRpdmUnKSl9ZWxzZSBpZihiPmEpe3Rocm93IEFkYihuZXcgYWdiKCdrIG11c3QgYmUgc21hbGxlciB0aGFuIG4nKSl9ZWxzZSByZXR1cm4gYj09MHx8Yj09YT8xOmE9PTA/MDpCaWQoYSkvKEJpZChiKSpCaWQoYS1iKSl9XG5mdW5jdGlvbiBtc2QoYSxiKXt2YXIgYyxkLGUsZjtjPW5ldyB6SWQoYSk7d2hpbGUoYy5nPT1udWxsJiYhYy5jP3NJZChjKTpjLmc9PW51bGx8fGMuaSE9MCYmUkQoYy5nW2MuaS0xXSw1MSkuT2IoKSl7Zj1SRCh0SWQoYyksNTgpO2lmKFpEKGYsMTY3KSl7ZD1SRChmLDE2Nyk7Zm9yKGU9MDtlPGIubGVuZ3RoO2UrKyl7YltlXS5LZyhkKX19fX1cbmZ1bmN0aW9uIEZ5ZChhKXt2YXIgYjtpZigoYS5EYiY2NCkhPTApcmV0dXJuIGt5ZChhKTtiPW5ldyBTaGIoa3lkKGEpKTtiLmErPScgKGhlaWdodDogJztLaGIoYixhLmYpO2IuYSs9Jywgd2lkdGg6ICc7S2hiKGIsYS5nKTtiLmErPScsIHg6ICc7S2hiKGIsYS5pKTtiLmErPScsIHk6ICc7S2hiKGIsYS5qKTtiLmErPScpJztyZXR1cm4gYi5hfVxuZnVuY3Rpb24gR24oYSl7dmFyIGIsYyxkLGUsZixnLGg7Yj1uZXcgZ3ViO2ZvcihkPWEsZT0wLGY9ZC5sZW5ndGg7ZTxmOysrZSl7Yz1kW2VdO2c9UWIoYy5sZCgpKTtoPWR1YihiLGcsUWIoYy5tZCgpKSk7aWYoaCE9bnVsbCl7dGhyb3cgQWRiKG5ldyBhZ2IoJ2R1cGxpY2F0ZSBrZXk6ICcrZykpfX10aGlzLmI9KHlvYigpLG5ldyB1cWIoYikpfVxuZnVuY3Rpb24gYm9iKGEpe3ZhciBiLGMsZCxlLGY7aWYoYT09bnVsbCl7cmV0dXJuIHZ2ZX1mPW5ldyBKeWIocHZlLCdbJywnXScpO2ZvcihjPWEsZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdO0d5YihmLFN0cmluZy5mcm9tQ2hhckNvZGUoYikpfXJldHVybiAhZi5hP2YuYzpmLmUubGVuZ3RoPT0wP2YuYS5hOmYuYS5hKygnJytmLmUpfVxuZnVuY3Rpb24gT1ViKCl7T1ViPWdlYjtJVWI9KFRVYigpLFNVYik7SFViPW5ldyBsR2QoUnplLElVYik7c2diKDEpO0dVYj1uZXcgbEdkKFN6ZSxzZ2IoMzAwKSk7c2diKDApO0xVYj1uZXcgbEdkKFR6ZSxzZ2IoMCkpO25ldyBYc2Q7TVViPW5ldyBsR2QoVXplLFZ6ZSk7bmV3IFhzZDtKVWI9bmV3IGxHZChXemUsNSk7TlViPVNVYjtLVWI9UlVifVxuZnVuY3Rpb24gSzZkKGEsYil7dmFyIGM7aWYoYiE9bnVsbCYmIWEuYy5IaygpLmZrKGIpKXtjPVpEKGIsNTgpP1JEKGIsNTgpLkRoKCkuemI6bmZiKHJiKGIpKTt0aHJvdyBBZGIobmV3IElmYihLSGUrYS5jLnhlKCkrXCIncyB0eXBlICdcIithLmMuSGsoKS54ZSgpK1wiJyBkb2VzIG5vdCBwZXJtaXQgYSB2YWx1ZSBvZiB0eXBlICdcIitjK1wiJ1wiKSl9fVxuZnVuY3Rpb24gazBiKGEsYixjKXt2YXIgZCxlO2U9bmV3IEprYihhLmIsMCk7d2hpbGUoZS5iPGUuZC5nYygpKXtkPShzRmIoZS5iPGUuZC5nYygpKSxSRChlLmQuWGIoZS5jPWUuYisrKSw3MikpO2lmKGRFKG1RYihkLChZd2MoKSxEd2MpKSkhPT1kRShiKSl7Y29udGludWV9ZTJiKGQubixZMmIoYS5jLmkpLGMpO0NrYihlKTtSbWIoYi5iLGQpfX1cbmZ1bmN0aW9uIEFyYyhhKXt2YXIgYixjO2M9JHduZC5NYXRoLnNxcnQoKGEuaz09bnVsbCYmKGEuaz10c2MoYSxuZXcgRXNjKSksS2ZiKGEuaykvKGEuYiooYS5nPT1udWxsJiYoYS5nPXFzYyhhLG5ldyBDc2MpKSxLZmIoYS5nKSkpKSk7Yj1ZZGIoSGRiKCR3bmQuTWF0aC5yb3VuZChjKSkpO2I9JHduZC5NYXRoLm1pbihiLGEuZik7cmV0dXJuIGJ9XG5mdW5jdGlvbiBzc2UoKXt2YXIgYSxiLGM7Yj0wO2ZvcihhPTA7YTwnWCcubGVuZ3RoO2ErKyl7Yz1yc2UoKEJGYihhLCdYJy5sZW5ndGgpLCdYJy5jaGFyQ29kZUF0KGEpKSk7aWYoYz09MCl0aHJvdyBBZGIobmV3IExxZSgoQkZiKGEsJ1gnLmxlbmd0aCsxKSwnVW5rbm93biBPcHRpb246ICcrJ1gnLnN1YnN0cihhKSkpKTtifD1jfXJldHVybiBifVxuZnVuY3Rpb24gUjNiKCl7SjNiKCk7djJiLmNhbGwodGhpcyk7dGhpcy5qPShxcGQoKSxvcGQpO3RoaXMuYT1uZXcgcGpkO25ldyBUMmI7dGhpcy5mPShkaygyLGl3ZSksbmV3IGNuYigyKSk7dGhpcy5lPShkayg0LGl3ZSksbmV3IGNuYig0KSk7dGhpcy5nPShkayg0LGl3ZSksbmV3IGNuYig0KSk7dGhpcy5iPW5ldyBoNGIodGhpcy5lLHRoaXMuZyl9XG5mdW5jdGlvbiBBNmIoYSxiKXt2YXIgYyxkO2lmKEhlYihURChtUWIoYiwoWXdjKCksTndjKSkpKSl7cmV0dXJuIGZhbHNlfWQ9Yi5jLmk7aWYoYT09KGN4YygpLFp3Yykpe2lmKGQuaz09KHIzYigpLG4zYikpe3JldHVybiBmYWxzZX19Yz1SRChtUWIoZCwoeUNjKCksVUFjKSksMTcxKTtpZihjPT0kd2Mpe3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIEI2YihhLGIpe3ZhciBjLGQ7aWYoSGViKFREKG1RYihiLChZd2MoKSxOd2MpKSkpKXtyZXR1cm4gZmFsc2V9ZD1iLmQuaTtpZihhPT0oY3hjKCksX3djKSl7aWYoZC5rPT0ocjNiKCksbjNiKSl7cmV0dXJuIGZhbHNlfX1jPVJEKG1RYihkLCh5Q2MoKSxVQWMpKSwxNzEpO2lmKGM9PWF4Yyl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfVxuZnVuY3Rpb24gYTdiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7Zz1hLmQ7aT1hLm87aD1uZXcgVWlkKC1nLmIsLWcuZCxnLmIraS5hK2cuYyxnLmQraS5iK2cuYSk7Zm9yKGQ9YixlPTAsZj1kLmxlbmd0aDtlPGY7KytlKXtjPWRbZV07ISFjJiZTaWQoaCxjLmkpfWcuYj0taC5jO2cuZD0taC5kO2cuYz1oLmItZy5iLWkuYTtnLmE9aC5hLWcuZC1pLmJ9XG5mdW5jdGlvbiBfZ2MoYSxiKXtpZihiLmEpe3N3aXRjaChSRChtUWIoYi5iLChZd2MoKSxGd2MpKSwxMDEpLmcpe2Nhc2UgMDpjYXNlIDE6Um9jKGIpO2Nhc2UgMjpGRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYi5kLDE2KSksbmV3IG1oYyk7YW9jKGEuYSxiKTt9fWVsc2V7RkRiKG5ldyBTRGIobnVsbCxuZXcgU3diKGIuZCwxNikpLG5ldyBtaGMpfX1cbmZ1bmN0aW9uIFhiZCgpe1hiZD1nZWI7U2JkPW5ldyBZYmQoJ0NFTlRFUl9ESVNUQU5DRScsMCk7VGJkPW5ldyBZYmQoJ0NJUkNMRV9VTkRFUkxBUCcsMSk7V2JkPW5ldyBZYmQoJ1JFQ1RBTkdMRV9VTkRFUkxBUCcsMik7VWJkPW5ldyBZYmQoJ0lOVkVSVEVEX09WRVJMQVAnLDMpO1ZiZD1uZXcgWWJkKCdNSU5JTVVNX1JPT1RfRElTVEFOQ0UnLDQpfVxuZnVuY3Rpb24gSXFlKGEpe0dxZSgpO3ZhciBiLGMsZCxlLGY7aWYoYT09bnVsbClyZXR1cm4gbnVsbDtkPWEubGVuZ3RoO2U9ZCoyO2I9JEMoaEUsendlLDI4LGUsMTUsMSk7Zm9yKGM9MDtjPGQ7YysrKXtmPWFbY107ZjwwJiYoZis9MjU2KTtiW2MqMl09RnFlW2Y+PjRdO2JbYyoyKzFdPUZxZVtmJjE1XX1yZXR1cm4gSWhiKGIsMCxiLmxlbmd0aCl9XG5mdW5jdGlvbiBzbihhKXtmbigpO3ZhciBiLGMsZDtkPWEuYy5sZW5ndGg7c3dpdGNoKGQpe2Nhc2UgMDpyZXR1cm4gZW47Y2FzZSAxOmI9UkQoSXIobmV3IEFuYihhKSksNDQpO3JldHVybiB4bihiLmxkKCksYi5tZCgpKTtkZWZhdWx0OmM9UkQoYW5iKGEsJEMoVUssWnZlLDQ0LGEuYy5sZW5ndGgsMCwxKSksMTczKTtyZXR1cm4gbmV3IE14KGMpO319XG5mdW5jdGlvbiBLV2IoYSl7dmFyIGIsYyxkLGUsZixnO2I9bmV3IHdtYjtjPW5ldyB3bWI7aG1iKGIsYSk7aG1iKGMsYSk7d2hpbGUoYy5iIT1jLmMpe2U9UkQoc21iKGMpLDM2KTtmb3IoZz1uZXcgQW5iKGUuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEwKTtpZihmLmUpe2Q9Zi5lO2htYihiLGQpO2htYihjLGQpfX19cmV0dXJuIGJ9XG5mdW5jdGlvbiBlM2IoYSxiKXtzd2l0Y2goYi5nKXtjYXNlIDE6cmV0dXJuIGRyKGEuaiwoSjNiKCksRjNiKSk7Y2FzZSAyOnJldHVybiBkcihhLmosKEozYigpLEQzYikpO2Nhc2UgMzpyZXR1cm4gZHIoYS5qLChKM2IoKSxIM2IpKTtjYXNlIDQ6cmV0dXJuIGRyKGEuaiwoSjNiKCksSTNiKSk7ZGVmYXVsdDpyZXR1cm4geW9iKCkseW9iKCksdm9iO319XG5mdW5jdGlvbiBabGMoYSxiKXt2YXIgYyxkLGU7Yz0kbGMoYixhLmUpO2Q9UkQoV2piKGEuZy5mLGMpLDE3KS5hO2U9YS5hLmMubGVuZ3RoLTE7aWYoYS5hLmMubGVuZ3RoIT0wJiZSRChWbWIoYS5hLGUpLDI5NCkuYz09ZCl7KytSRChWbWIoYS5hLGUpLDI5NCkuYTsrK1JEKFZtYihhLmEsZSksMjk0KS5ifWVsc2V7Um1iKGEuYSxuZXcgaG1jKGQpKX19XG5mdW5jdGlvbiB0TGMoYSxiLGMpe3ZhciBkLGU7ZD1zTGMoYSxiLGMpO2lmKGQhPTApe3JldHVybiBkfWlmKG5RYihiLChZd2MoKSx6d2MpKSYmblFiKGMsendjKSl7ZT1oZ2IoUkQobVFiKGIsendjKSwxNykuYSxSRChtUWIoYyx6d2MpLDE3KS5hKTtlPDA/dUxjKGEsYixjKTplPjAmJnVMYyhhLGMsYik7cmV0dXJuIGV9cmV0dXJuIHJMYyhhLGIsYyl9XG5mdW5jdGlvbiAkNGMoKXskNGM9Z2ViO1I0Yz0odW1kKCksUWxkKTtZNGM9Zm1kO0s0Yz1rbGQ7TDRjPW5sZDtNNGM9cGxkO0o0Yz1pbGQ7TjRjPXNsZDtRNGM9TGxkO0g0Yz0oRDRjKCksbzRjKTtJNGM9cDRjO1Q0Yz12NGM7VzRjPXk0YztVNGM9dzRjO1Y0Yz14NGM7TzRjPXI0YztQNGM9dDRjO1M0Yz11NGM7WDRjPXo0YztaNGM9QjRjO0c0Yz1uNGN9XG5mdW5jdGlvbiBQOWMoYSxiKXt2YXIgYyxkLGUsZixnO2lmKGEuZTw9Yil7cmV0dXJuIGEuZ31pZihSOWMoYSxhLmcsYikpe3JldHVybiBhLmd9Zj1hLnI7ZD1hLmc7Zz1hLnI7ZT0oZi1kKS8yK2Q7d2hpbGUoZCsxPGYpe2M9UzljKGEsZSxmYWxzZSk7aWYoYy5iPD1lJiZjLmE8PWIpe2c9ZTtmPWV9ZWxzZXtkPWV9ZT0oZi1kKS8yK2R9cmV0dXJuIGd9XG5mdW5jdGlvbiBFZWQoYSxiLGMpe3ZhciBkO2Q9emVkKGEsYix0cnVlKTtGcWQoYywnUmVjdXJzaXZlIEdyYXBoIExheW91dCcsZCk7bXNkKGIsY0QoV0MoajQsMSkscnZlLDUzNiwwLFtuZXcgQmZkXSkpO0h4ZChiLCh1bWQoKSxUbGQpKXx8bXNkKGIsY0QoV0MoajQsMSkscnZlLDUzNiwwLFtuZXcgZGdkXSkpO0ZlZChhLGIsbnVsbCxjKTtIcWQoYyl9XG5mdW5jdGlvbiBIcWQoYSl7dmFyIGI7aWYoYS5wPT1udWxsKXt0aHJvdyBBZGIobmV3IGRnYignVGhlIHRhc2sgaGFzIG5vdCBiZWd1biB5ZXQuJykpfWlmKCFhLmIpe2lmKGEuayl7Yj0oZ2liKCksTmRiKEhkYihEYXRlLm5vdygpKSxBd2UpKTthLnE9WGRiKFZkYihiLGEubykpKjEuMEUtOX1hLmM8YS5yJiZJcWQoYSxhLnItYS5jKTthLmI9dHJ1ZX19XG5mdW5jdGlvbiBzc2QoYSl7dmFyIGIsYyxkO2Q9bmV3IEVqZDtNdWIoZCxuZXcgcmpkKGEuaixhLmspKTtmb3IoYz1uZXcgZE1kKCghYS5hJiYoYS5hPW5ldyBYWmQoRDQsYSw1KSksYS5hKSk7Yy5lIT1jLmkuZ2MoKTspe2I9UkQoYk1kKGMpLDM3Nyk7TXViKGQsbmV3IHJqZChiLmEsYi5iKSl9TXViKGQsbmV3IHJqZChhLmIsYS5jKSk7cmV0dXJuIGR9XG5mdW5jdGlvbiBRRGQoYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGs7aWYoZSl7aT1lLmEubGVuZ3RoO2Y9bmV3IHZ1ZShpKTtmb3Ioaz0oZi5iLWYuYSkqZi5jPDA/KHV1ZSgpLHR1ZSk6bmV3IFJ1ZShmKTtrLk9iKCk7KXtqPVJEKGsuUGIoKSwxNyk7aD14RGQoZSxqLmEpO2c9bmV3IFBFZChhLGIsYyxkKTtSRGQoZy5hLGcuYixnLmMsZy5kLGgpfX19XG5mdW5jdGlvbiBSeChiLGMpe3ZhciBkO2lmKGRFKGIpPT09ZEUoYykpe3JldHVybiB0cnVlfWlmKFpEKGMsMjEpKXtkPVJEKGMsMjEpO3RyeXtyZXR1cm4gYi5nYygpPT1kLmdjKCkmJmIuSWMoZCl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwxNjkpfHxaRChhLDIxMikpe3JldHVybiBmYWxzZX1lbHNlIHRocm93IEFkYihhKX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gS3piKGEsYixjLGQsZSxmKXt0aGlzLmM9YTtzd2l0Y2goYi5nKXtjYXNlIDI6aWYoYS5hLk5lKGUsYyk8MCl7dGhyb3cgQWRiKG5ldyBhZ2IoU3hlK2UrVHhlK2MpKX1icmVhaztjYXNlIDE6YS5hLk5lKGUsZSk7YnJlYWs7Y2FzZSAzOmEuYS5OZShjLGMpO310aGlzLmY9Yjt0aGlzLmI9Yzt0aGlzLmE9ZDt0aGlzLmU9ZTt0aGlzLmQ9Zn1cbmZ1bmN0aW9uIExLYihhLGIpe3ZhciBjO1JtYihhLmQsYik7Yz1iLk1mKCk7aWYoYS5jKXthLmUuYT0kd25kLk1hdGgubWF4KGEuZS5hLGMuYSk7YS5lLmIrPWMuYjthLmQuYy5sZW5ndGg+MSYmKGEuZS5iKz1hLmEpfWVsc2V7YS5lLmErPWMuYTthLmUuYj0kd25kLk1hdGgubWF4KGEuZS5iLGMuYik7YS5kLmMubGVuZ3RoPjEmJihhLmUuYSs9YS5hKX19XG5mdW5jdGlvbiBJcGMoYSl7dmFyIGIsYyxkLGU7ZT1hLmk7Yj1lLmI7ZD1lLmo7Yz1lLmc7c3dpdGNoKGUuYS5nKXtjYXNlIDA6Yy5hPShhLmcuYi5vLmEtZC5hKS8yO2JyZWFrO2Nhc2UgMTpjLmE9Yi5kLm4uYStiLmQuYS5hO2JyZWFrO2Nhc2UgMjpjLmE9Yi5kLm4uYStiLmQuYS5hLWQuYTticmVhaztjYXNlIDM6Yy5iPWIuZC5uLmIrYi5kLmEuYjt9fVxuZnVuY3Rpb24gb09jKGEsYixjKXt2YXIgZCxlLGY7Zm9yKGU9bmV3IGlzKE1yKFcyYihjKS5hLktjKCksbmV3IGlyKSk7Z3MoZSk7KXtkPVJEKGhzKGUpLDE4KTtpZighKCFXMGIoZCkmJiEoIVcwYihkKSYmZC5jLmkuYz09ZC5kLmkuYykpKXtjb250aW51ZX1mPWdPYyhhLGQsYyxuZXcgVk9jKTtmLmMubGVuZ3RoPjEmJihaRWIoYi5jLGYpLHRydWUpfX1cbmZ1bmN0aW9uIF9pZChhLGIsYyxkLGUpe2lmKGQ8Ynx8ZTxjKXt0aHJvdyBBZGIobmV3IGFnYignVGhlIGhpZ2h4IG11c3QgYmUgYmlnZ2VyIHRoZW4gbG93eCBhbmQgdGhlIGhpZ2h5IG11c3QgYmUgYmlnZ2VyIHRoZW4gbG93eScpKX1hLmE8Yj8oYS5hPWIpOmEuYT5kJiYoYS5hPWQpO2EuYjxjPyhhLmI9Yyk6YS5iPmUmJihhLmI9ZSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBMRmQoYSl7aWYoWkQoYSwxNDMpKXtyZXR1cm4gRUZkKFJEKGEsMTQzKSl9ZWxzZSBpZihaRChhLDIzMykpe3JldHVybiBGRmQoUkQoYSwyMzMpKX1lbHNlIGlmKFpEKGEsMjMpKXtyZXR1cm4gR0ZkKFJEKGEsMjMpKX1lbHNle3Rocm93IEFkYihuZXcgYWdiKHdJZStGZShuZXcgbW9iKGNEKFdDKGpKLDEpLHJ2ZSwxLDUsW2FdKSkpKSl9fVxuZnVuY3Rpb24gdWpiKGEsYixjLGQsZSl7dmFyIGYsZyxoO2Y9dHJ1ZTtmb3IoZz0wO2c8ZDtnKyspe2Y9ZiZjW2ddPT0wfWlmKGU9PTApe2hpYihjLGQsYSwwLGIpO2c9Yn1lbHNle2g9MzItZTtmPWYmY1tnXTw8aD09MDtmb3IoZz0wO2c8Yi0xO2crKyl7YVtnXT1jW2crZF0+Pj5lfGNbZytkKzFdPDxofWFbZ109Y1tnK2RdPj4+ZTsrK2d9cmV0dXJuIGZ9XG5mdW5jdGlvbiBaUWMoYSxiLGMsZCl7dmFyIGUsZixnO2lmKGIuaz09KHIzYigpLG8zYikpe2ZvcihmPW5ldyBpcyhNcihaMmIoYikuYS5LYygpLG5ldyBpcikpO2dzKGYpOyl7ZT1SRChocyhmKSwxOCk7Zz1lLmMuaS5rO2lmKGc9PW8zYiYmYS5jLmFbZS5jLmkuYy5wXT09ZCYmYS5jLmFbYi5jLnBdPT1jKXtyZXR1cm4gdHJ1ZX19fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIENEKGEsYil7dmFyIGMsZCxlLGY7YiY9NjM7Yz1hLmgmZXhlO2lmKGI8MjIpe2Y9Yz4+PmI7ZT1hLm0+PmJ8Yzw8MjItYjtkPWEubD4+YnxhLm08PDIyLWJ9ZWxzZSBpZihiPDQ0KXtmPTA7ZT1jPj4+Yi0yMjtkPWEubT4+Yi0yMnxhLmg8PDQ0LWJ9ZWxzZXtmPTA7ZT0wO2Q9Yz4+PmItNDR9cmV0dXJuIGhEKGQmZHhlLGUmZHhlLGYmZXhlKX1cbmZ1bmN0aW9uIG1tYyhhLGIsYyxkKXt2YXIgZTt0aGlzLmI9ZDt0aGlzLmU9YT09KFJLYygpLFBLYyk7ZT1iW2NdO3RoaXMuZD1ZQyh4ZGIsW052ZSxIeWVdLFsxODMsMjhdLDE2LFtlLmxlbmd0aCxlLmxlbmd0aF0sMik7dGhpcy5hPVlDKGtFLFtOdmUsUHdlXSxbNTMsMjhdLDE1LFtlLmxlbmd0aCxlLmxlbmd0aF0sMik7dGhpcy5jPW5ldyBZbGMoYixjKX1cbmZ1bmN0aW9uIFJtYyhhKXt2YXIgYixjLGQ7YS5rPW5ldyBTaSgocXBkKCksY0QoV0MoRTMsMSksTkFlLDY0LDAsW29wZCxZb2QsWG9kLG5wZCxwcGRdKSkubGVuZ3RoLGEuai5jLmxlbmd0aCk7Zm9yKGQ9bmV3IEFuYihhLmopO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxMTMpO2I9Yy5kLmo7UmMoYS5rLGIsYyl9YS5lPURuYyhFYyhhLmspKX1cbmZ1bmN0aW9uIHNWYyhhLGIpe3ZhciBjLGQsZTtZc2IoYS5kLGIpO2M9bmV3IHpWYztaamIoYS5jLGIsYyk7Yy5mPXRWYyhiLmMpO2MuYT10VmMoYi5kKTtjLmQ9KEhVYygpLGU9Yi5jLmkuayxlPT0ocjNiKCkscDNiKXx8ZT09bDNiKTtjLmU9KGQ9Yi5kLmkuayxkPT1wM2J8fGQ9PWwzYik7Yy5iPWIuYy5qPT0ocXBkKCkscHBkKTtjLmM9Yi5kLmo9PVhvZH1cbmZ1bmN0aW9uIHNKYihhKXt2YXIgYixjLGQsZSxmO2Y9bHZlO2U9bHZlO2ZvcihkPW5ldyBBbmIoQ0liKGEpKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMjE4KTtiPWMuZS5lLWMuZC5lO2MuZT09YSYmYjxlPyhlPWIpOmI8ZiYmKGY9Yil9ZT09bHZlJiYoZT0tMSk7Zj09bHZlJiYoZj0tMSk7cmV0dXJuIG5ldyBQdGQoc2diKGUpLHNnYihmKSl9XG5mdW5jdGlvbiBxVGIoYSxiKXt2YXIgYyxkLGU7ZT1IemU7ZD0oSVJiKCksRlJiKTtlPSR3bmQuTWF0aC5hYnMoYS5iKTtjPSR3bmQuTWF0aC5hYnMoYi5mLWEuYik7aWYoYzxlKXtlPWM7ZD1HUmJ9Yz0kd25kLk1hdGguYWJzKGEuYSk7aWYoYzxlKXtlPWM7ZD1IUmJ9Yz0kd25kLk1hdGguYWJzKGIuZy1hLmEpO2lmKGM8ZSl7ZT1jO2Q9RVJifXJldHVybiBkfVxuZnVuY3Rpb24gYWRjKGEsYil7dmFyIGMsZCxlLGY7Yz1iLmEuby5hO2Y9bmV3IFJrYihZMmIoYi5hKS5iLGIuYyxiLmYrMSk7Zm9yKGU9bmV3IERrYihmKTtlLmI8ZS5kLmdjKCk7KXtkPShzRmIoZS5iPGUuZC5nYygpKSxSRChlLmQuWGIoZS5jPWUuYisrKSwzMCkpO2lmKGQuYy5hPj1jKXtfY2MoYSxiLGQucCk7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIEVBKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksajtnPWMubGVuZ3RoO2Y9MDtlPS0xO2o9QmhiKChCRmIoYixhLmxlbmd0aCsxKSxhLnN1YnN0cihiKSksKHd2YigpLHV2YikpO2ZvcihoPTA7aDxnOysraCl7aT1jW2hdLmxlbmd0aDtpZihpPmYmJndoYihqLEJoYihjW2hdLHV2YikpKXtlPWg7Zj1pfX1lPj0wJiYoZFswXT1iK2YpO3JldHVybiBlfVxuZnVuY3Rpb24gZ0NkKGEpe3ZhciBiO2lmKChhLkRiJjY0KSE9MClyZXR1cm4gRnlkKGEpO2I9bmV3IGRpYihGSGUpOyFhLmF8fFpoYihaaGIoKGIuYSs9JyBcIicsYiksYS5hKSwnXCInKTtaaGIoVWhiKFpoYihVaGIoWmhiKFVoYihaaGIoVWhiKChiLmErPScgKCcsYiksYS5pKSwnLCcpLGEuaiksJyB8ICcpLGEuZyksJywnKSxhLmYpLCcpJyk7cmV0dXJuIGIuYX1cbmZ1bmN0aW9uIHhnZShhLGIsYyl7dmFyIGQsZSxmLGcsaDtoPXBrZShhLmUuRGgoKSxiKTtlPVJEKGEuZywxMjQpO2Q9MDtmb3IoZz0wO2c8YS5pOysrZyl7Zj1lW2ddO2lmKGguYW0oZi5MaygpKSl7aWYoZD09Yyl7dkxkKGEsZyk7cmV0dXJuIG5rZSgpLFJEKGIsNjkpLnhrKCk/ZjpmLm1kKCl9KytkfX10aHJvdyBBZGIobmV3IHZlYihISmUrYytOSWUrZCkpfVxuZnVuY3Rpb24gUnFlKGEpe3ZhciBiLGMsZDtiPWEuYztpZihiPT0yfHxiPT03fHxiPT0xKXtyZXR1cm4gVnNlKCksVnNlKCksRXNlfWVsc2V7ZD1QcWUoYSk7Yz1udWxsO3doaWxlKChiPWEuYykhPTImJmIhPTcmJmIhPTEpe2lmKCFjKXtjPShWc2UoKSxWc2UoKSwrK1VzZSxuZXcgaXVlKDEpKTtodWUoYyxkKTtkPWN9aHVlKGMsUHFlKGEpKX1yZXR1cm4gZH19XG5mdW5jdGlvbiBLYihhLGIsYyl7aWYoYTwwfHxhPmMpe3JldHVybiBKYihhLGMsJ3N0YXJ0IGluZGV4Jyl9aWYoYjwwfHxiPmMpe3JldHVybiBKYihiLGMsJ2VuZCBpbmRleCcpfXJldHVybiBoYygnZW5kIGluZGV4ICglcykgbXVzdCBub3QgYmUgbGVzcyB0aGFuIHN0YXJ0IGluZGV4ICglcyknLGNEKFdDKGpKLDEpLHJ2ZSwxLDUsW3NnYihiKSxzZ2IoYSldKSl9XG5mdW5jdGlvbiBkQShiLGMpe3ZhciBkLGUsZixnO2ZvcihlPTAsZj1iLmxlbmd0aDtlPGY7ZSsrKXtnPWJbZV07dHJ5e2dbMV0/Z1swXS5VbSgpJiYoYz1jQShjLGcpKTpnWzBdLlVtKCl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSw4Mikpe2Q9YTtReigpO1d6KFpEKGQsNDg2KT9SRChkLDQ4Nikua2UoKTpkKX1lbHNlIHRocm93IEFkYihhKX19cmV0dXJuIGN9XG5mdW5jdGlvbiBfY2MoYSxiLGMpe3ZhciBkLGUsZjtjIT1iLmMrYi5iLmdjKCkmJm9kYyhiLmEsd2RjKGIsYy1iLmMpKTtmPWIuYS5jLnA7YS5hW2ZdPSR3bmQuTWF0aC5tYXgoYS5hW2ZdLGIuYS5vLmEpO2ZvcihlPVJEKG1RYihiLmEsKFl3YygpLE13YykpLDE1KS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDcyKTtwUWIoZCxZY2MsKEdlYigpLHRydWUpKX19XG5mdW5jdGlvbiBBaWMoYSxiKXt2YXIgYyxkLGU7ZT16aWMoYik7cFFiKGIsKFl3YygpLHh3YyksZSk7aWYoZSl7ZD1sdmU7ISFxdGIoYS5mLGUpJiYoZD1SRChXZChxdGIoYS5mLGUpKSwxNykuYSk7Yz1SRChWbWIoYi5nLDApLDE4KTtIZWIoVEQobVFiKGMsTndjKSkpfHxaamIoYSxlLHNnYigkd25kLk1hdGgubWluKFJEKG1RYihjLHp3YyksMTcpLmEsZCkpKX19XG5mdW5jdGlvbiBhR2MoYSxiLGMpe3ZhciBkLGUsZixnLGg7Yi5wPS0xO2ZvcihoPWMzYihiLChCRWMoKSx6RWMpKS5LYygpO2guT2IoKTspe2c9UkQoaC5QYigpLDEyKTtmb3IoZT1uZXcgQW5iKGcuZyk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDE4KTtmPWQuZC5pO2IhPWYmJihmLnA8MD9jLkZjKGQpOmYucD4wJiZhR2MoYSxmLGMpKX19Yi5wPTB9XG5mdW5jdGlvbiBBaGQoYSl7dmFyIGI7dGhpcy5jPW5ldyBZdWI7dGhpcy5mPWEuZTt0aGlzLmU9YS5kO3RoaXMuaT1hLmc7dGhpcy5kPWEuYzt0aGlzLmI9YS5iO3RoaXMuaz1hLmo7dGhpcy5hPWEuYTshYS5pPyh0aGlzLmo9KGI9UkQobWZiKGQzKSw5KSxuZXcgRnNiKGIsUkQoV0ViKGIsYi5sZW5ndGgpLDkpLDApKSk6KHRoaXMuaj1hLmkpO3RoaXMuZz1hLmZ9XG5mdW5jdGlvbiBXYihhKXt2YXIgYixjLGQsZTtiPVRoYihaaGIobmV3IGRpYignUHJlZGljYXRlcy4nKSwnYW5kJyksNDApO2M9dHJ1ZTtmb3IoZT1uZXcgRGtiKGEpO2UuYjxlLmQuZ2MoKTspe2Q9KHNGYihlLmI8ZS5kLmdjKCkpLGUuZC5YYihlLmM9ZS5iKyspKTtjfHwoYi5hKz0nLCcsYik7Yi5hKz0nJytkO2M9ZmFsc2V9cmV0dXJuIChiLmErPScpJyxiKS5hfVxuZnVuY3Rpb24gdmdjKGEsYixjKXt2YXIgZCxlLGY7aWYoYzw9YisyKXtyZXR1cm59ZT0oYy1iKS8yfDA7Zm9yKGQ9MDtkPGU7KytkKXtmPSh0RmIoYitkLGEuYy5sZW5ndGgpLFJEKGEuY1tiK2RdLDEyKSk7JG1iKGEsYitkLCh0RmIoYy1kLTEsYS5jLmxlbmd0aCksUkQoYS5jW2MtZC0xXSwxMikpKTt0RmIoYy1kLTEsYS5jLmxlbmd0aCk7YS5jW2MtZC0xXT1mfX1cbmZ1bmN0aW9uIE5tYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosaztmPWEuZC5wO2g9Zi5lO2k9Zi5yO2EuZz1uZXcgRE1jKGkpO2c9YS5kLm8uYy5wO2Q9Zz4wP2hbZy0xXTokQyhqUixXQWUsMTAsMCwwLDEpO2U9aFtnXTtqPWc8aC5sZW5ndGgtMT9oW2crMV06JEMoalIsV0FlLDEwLDAsMCwxKTtrPWI9PWMtMTtrP3BNYyhhLmcsZSxqKTpwTWMoYS5nLGQsZSl9XG5mdW5jdGlvbiBWbWMoYSl7dmFyIGI7dGhpcy5qPW5ldyBibmI7dGhpcy5mPW5ldyBfc2I7dGhpcy5iPShiPVJEKG1mYihFMyksOSksbmV3IEZzYihiLFJEKFdFYihiLGIubGVuZ3RoKSw5KSwwKSk7dGhpcy5kPSRDKGtFLFB3ZSwyOCwocXBkKCksY0QoV0MoRTMsMSksTkFlLDY0LDAsW29wZCxZb2QsWG9kLG5wZCxwcGRdKSkubGVuZ3RoLDE1LDEpO3RoaXMuZz1hfVxuZnVuY3Rpb24gRDNjKGEsYil7dmFyIGMsZCxlO2lmKGIuYy5sZW5ndGghPTApe2M9RTNjKGEsYik7ZT1mYWxzZTt3aGlsZSghYyl7bjNjKGEsYix0cnVlKTtlPXRydWU7Yz1FM2MoYSxiKX1lJiZuM2MoYSxiLGZhbHNlKTtkPU4yYyhiKTshIWEuYiYmYS5iLkdnKGQpO2EuYT1DM2MoYSwodEZiKDAsYi5jLmxlbmd0aCksUkQoYi5jWzBdLDI3KSkpO0QzYyhhLGQpfX1cbmZ1bmN0aW9uICR2ZChhLGIpe3ZhciBjLGQsZTtkPXZZZChhLkRoKCksYik7Yz1iLWEuamkoKTtpZihjPDApe2lmKCFkKXt0aHJvdyBBZGIobmV3IGFnYihPSGUrYitQSGUpKX1lbHNlIGlmKGQucmsoKSl7ZT1hLkloKGQpO2U+PTA/YS5raShlKTpUdmQoYSxkKX1lbHNle3Rocm93IEFkYihuZXcgYWdiKEtIZStkLnhlKCkrTEhlKSl9fWVsc2V7Q3ZkKGEsYyxkKX19XG5mdW5jdGlvbiBBRGQoYSl7dmFyIGIsYztjPW51bGw7Yj1mYWxzZTtpZihaRChhLDIxMSkpe2I9dHJ1ZTtjPVJEKGEsMjExKS5hfWlmKCFiKXtpZihaRChhLDI2Mykpe2I9dHJ1ZTtjPScnK1JEKGEsMjYzKS5hfX1pZighYil7aWYoWkQoYSw0OTMpKXtiPXRydWU7Yz0nJytSRChhLDQ5MykuYX19aWYoIWIpe3Rocm93IEFkYihuZXcgQWViKHRJZSkpfXJldHVybiBjfVxuZnVuY3Rpb24gZ2dlKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7aT1wa2UoYS5lLkRoKCksYik7ZD0wO2g9YS5pO2U9UkQoYS5nLDEyNCk7Zm9yKGc9MDtnPGEuaTsrK2cpe2Y9ZVtnXTtpZihpLmFtKGYuTGsoKSkpe2lmKGM9PWQpe3JldHVybiBnfSsrZDtoPWcrMX19aWYoYz09ZCl7cmV0dXJuIGh9ZWxzZXt0aHJvdyBBZGIobmV3IHZlYihISmUrYytOSWUrZCkpfX1cbmZ1bmN0aW9uIHVjYyhhLGIpe3ZhciBjLGQsZSxmO2lmKGEuZi5jLmxlbmd0aD09MCl7cmV0dXJuIG51bGx9ZWxzZXtmPW5ldyBUaWQ7Zm9yKGQ9bmV3IEFuYihhLmYpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSw3Mik7ZT1jLm87Zi5iPSR3bmQuTWF0aC5tYXgoZi5iLGUuYSk7Zi5hKz1lLmJ9Zi5hKz0oYS5mLmMubGVuZ3RoLTEpKmI7cmV0dXJuIGZ9fVxuZnVuY3Rpb24gck9jKGEpe3ZhciBiLGMsZCxlO2M9bmV3IFl1Yjt5ZShjLGEubyk7ZD1uZXcgRnliO3doaWxlKGMuYiE9MCl7Yj1SRChjLmI9PTA/bnVsbDooc0ZiKGMuYiE9MCksV3ViKGMsYy5hLmEpKSw1MTUpO2U9aU9jKGEsYix0cnVlKTtlJiZSbWIoZC5hLGIpfXdoaWxlKGQuYS5jLmxlbmd0aCE9MCl7Yj1SRChEeWIoZCksNTE1KTtpT2MoYSxiLGZhbHNlKX19XG5mdW5jdGlvbiBraWQoKXtraWQ9Z2ViO2ppZD1uZXcgbGlkKFN5ZSwwKTtjaWQ9bmV3IGxpZCgnQk9PTEVBTicsMSk7Z2lkPW5ldyBsaWQoJ0lOVCcsMik7aWlkPW5ldyBsaWQoJ1NUUklORycsMyk7ZGlkPW5ldyBsaWQoJ0RPVUJMRScsNCk7ZWlkPW5ldyBsaWQoJ0VOVU0nLDUpO2ZpZD1uZXcgbGlkKCdFTlVNU0VUJyw2KTtoaWQ9bmV3IGxpZCgnT0JKRUNUJyw3KX1cbmZ1bmN0aW9uIFNpZChhLGIpe3ZhciBjLGQsZSxmLGc7ZD0kd25kLk1hdGgubWluKGEuYyxiLmMpO2Y9JHduZC5NYXRoLm1pbihhLmQsYi5kKTtlPSR3bmQuTWF0aC5tYXgoYS5jK2EuYixiLmMrYi5iKTtnPSR3bmQuTWF0aC5tYXgoYS5kK2EuYSxiLmQrYi5hKTtpZihlPGQpe2M9ZDtkPWU7ZT1jfWlmKGc8Zil7Yz1mO2Y9ZztnPWN9UmlkKGEsZCxmLGUtZCxnLWYpfVxuZnVuY3Rpb24gbTNkKGEsYil7dmFyIGMsZDtpZihhLmYpe3doaWxlKGIuT2IoKSl7Yz1SRChiLlBiKCksNzYpO2Q9Yy5MaygpO2lmKFpEKGQsMTAyKSYmKFJEKGQsMTkpLkJiJlFIZSkhPTAmJighYS5lfHxkLnBrKCkhPUM0fHxkLkxqKCkhPTApJiZjLm1kKCkhPW51bGwpe2IuVWIoKTtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfWVsc2V7cmV0dXJuIGIuT2IoKX19XG5mdW5jdGlvbiBvM2QoYSxiKXt2YXIgYyxkO2lmKGEuZil7d2hpbGUoYi5TYigpKXtjPVJEKGIuVWIoKSw3Nik7ZD1jLkxrKCk7aWYoWkQoZCwxMDIpJiYoUkQoZCwxOSkuQmImUUhlKSE9MCYmKCFhLmV8fGQucGsoKSE9QzR8fGQuTGooKSE9MCkmJmMubWQoKSE9bnVsbCl7Yi5QYigpO3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9ZWxzZXtyZXR1cm4gYi5TYigpfX1cbmZ1bmN0aW9uIGxrZSgpe2xrZT1nZWI7aWtlPWNEKFdDKHFKLDEpLE52ZSwyLDYsW1RLZSxVS2UsVktlLFdLZSxYS2UsWUtlLEZJZV0pO2hrZT1jRChXQyhxSiwxKSxOdmUsMiw2LFtUS2UsJ2VtcHR5JyxVS2UscEtlLCdlbGVtZW50T25seSddKTtra2U9Y0QoV0MocUosMSksTnZlLDIsNixbVEtlLCdwcmVzZXJ2ZScsJ3JlcGxhY2UnLFpLZV0pO2prZT1uZXcgWWVlfVxuZnVuY3Rpb24gZTJiKGEsYixjKXt2YXIgZCxlLGY7aWYoYj09Yyl7cmV0dXJufWQ9Yjtkb3skaWQoYSxkLmMpO2U9ZC5lO2lmKGUpe2Y9ZC5kO1ppZChhLGYuYixmLmQpOyRpZChhLGUubik7ZD1ZMmIoZSl9fXdoaWxlKGUpO2Q9Yztkb3tvamQoYSxkLmMpO2U9ZC5lO2lmKGUpe2Y9ZC5kO25qZChhLGYuYixmLmQpO29qZChhLGUubik7ZD1ZMmIoZSl9fXdoaWxlKGUpfVxuZnVuY3Rpb24gV2xjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGk7aWYoZC5mLmMrZC5pLmM9PTApe2ZvcihnPWEuYVthLmNdLGg9MCxpPWcubGVuZ3RoO2g8aTsrK2gpe2Y9Z1toXTtaamIoZCxmLG5ldyBkbWMoYSxmLGMpKX19ZT1SRChXZChxdGIoZC5mLGIpKSw2NzcpO2UuYj0wO2UuYz1lLmY7ZS5jPT0wfHxnbWMoUkQoVm1iKGUuYSxlLmIpLDI5NCkpO3JldHVybiBlfVxuZnVuY3Rpb24gYnRjKCl7YnRjPWdlYjtac2M9bmV3IGN0YygnTUVESUFOX0xBWUVSJywwKTtfc2M9bmV3IGN0YygnVEFJTF9MQVlFUicsMSk7WXNjPW5ldyBjdGMoJ0hFQURfTEFZRVInLDIpOyRzYz1uZXcgY3RjKCdTUEFDRV9FRkZJQ0lFTlRfTEFZRVInLDMpO2F0Yz1uZXcgY3RjKCdXSURFU1RfTEFZRVInLDQpO1hzYz1uZXcgY3RjKCdDRU5URVJfTEFZRVInLDUpfVxuZnVuY3Rpb24gV0djKGEpe3ZhciBiLGMsZCxlO2EuZT0wO2ZvcihlPVN1YihhLmYsMCk7ZS5iIT1lLmQuYzspe2Q9UkQoZXZiKGUpLDEwKTtpZihkLnA+PWEuZC5iLmMubGVuZ3RoKXtiPW5ldyBSNGIoYS5kKTtiLnA9ZC5wLTE7Um1iKGEuZC5iLGIpO2M9bmV3IFI0YihhLmQpO2MucD1kLnA7Um1iKGEuZC5iLGMpfWczYihkLFJEKFZtYihhLmQuYixkLnApLDMwKSl9fVxuZnVuY3Rpb24gRFZjKGEsYixjKXt2YXIgZCxlLGY7aWYoIWEuYltiLmddKXthLmJbYi5nXT10cnVlO2Q9YzshZCYmKGQ9bmV3IFlXYyk7TXViKGQuYixiKTtmb3IoZj1hLmFbYi5nXS5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDY1KTtlLmIhPWImJkRWYyhhLGUuYixkKTtlLmMhPWImJkRWYyhhLGUuYyxkKTtNdWIoZC5hLGUpfXJldHVybiBkfXJldHVybiBudWxsfVxuZnVuY3Rpb24gaU1iKGEpe3N3aXRjaChhLmcpe2Nhc2UgMDpjYXNlIDE6Y2FzZSAyOnJldHVybiBxcGQoKSxZb2Q7Y2FzZSAzOmNhc2UgNDpjYXNlIDU6cmV0dXJuIHFwZCgpLG5wZDtjYXNlIDY6Y2FzZSA3OmNhc2UgODpyZXR1cm4gcXBkKCkscHBkO2Nhc2UgOTpjYXNlIDEwOmNhc2UgMTE6cmV0dXJuIHFwZCgpLFhvZDtkZWZhdWx0OnJldHVybiBxcGQoKSxvcGQ7fX1cbmZ1bmN0aW9uIFNPYyhhLGIpe3ZhciBjO2lmKGEuYy5sZW5ndGg9PTApe3JldHVybiBmYWxzZX1jPXpEYygodEZiKDAsYS5jLmxlbmd0aCksUkQoYS5jWzBdLDE4KSkuYy5pKTtkT2MoKTtpZihjPT0od0RjKCksdERjKXx8Yz09c0RjKXtyZXR1cm4gdHJ1ZX1yZXR1cm4geURiKEdEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLDE2KSksbmV3ICRPYyksbmV3IGFQYyhiKSl9XG5mdW5jdGlvbiBLRGQoYSxiKXtpZihaRChiLDIwNykpe3JldHVybiBFRGQoYSxSRChiLDI3KSl9ZWxzZSBpZihaRChiLDE5Mykpe3JldHVybiBGRGQoYSxSRChiLDEyMykpfWVsc2UgaWYoWkQoYiw0NTIpKXtyZXR1cm4gRERkKGEsUkQoYiwxNjYpKX1lbHNle3Rocm93IEFkYihuZXcgYWdiKHdJZStGZShuZXcgbW9iKGNEKFdDKGpKLDEpLHJ2ZSwxLDUsW2JdKSkpKSl9fVxuZnVuY3Rpb24gT3UoYSxiLGMpe3ZhciBkLGU7dGhpcy5mPWE7ZD1SRChXamIoYS5iLGIpLDI2MCk7ZT0hZD8wOmQuYTtTYihjLGUpO2lmKGM+PShlLzJ8MCkpe3RoaXMuZT0hZD9udWxsOmQuYzt0aGlzLmQ9ZTt3aGlsZShjKys8ZSl7TXUodGhpcyl9fWVsc2V7dGhpcy5jPSFkP251bGw6ZC5iO3doaWxlKGMtLT4wKXtMdSh0aGlzKX19dGhpcy5iPWI7dGhpcy5hPW51bGx9XG5mdW5jdGlvbiBpSGIoYSxiKXt2YXIgYyxkO2IuYT9qSGIoYSxiKTooYz1SRCh2QWIoYS5iLGIuYiksNjApLCEhYyYmYz09YS5hW2IuYi5mXSYmISFjLmEmJmMuYSE9Yi5iLmEmJmMuYy5GYyhiLmIpLGQ9UkQodUFiKGEuYixiLmIpLDYwKSwhIWQmJmEuYVtkLmZdPT1iLmImJiEhZC5hJiZkLmEhPWIuYi5hJiZiLmIuYy5GYyhkKSx3QWIoYS5iLGIuYiksdW5kZWZpbmVkKX1cbmZ1bmN0aW9uIHdNYihhLGIpe3ZhciBjLGQ7Yz1SRChWcmIoYS5iLGIpLDEyNyk7aWYoUkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuZGMoKSl7Yy5uLmI9MDtjLm4uYz0wO3JldHVybn1jLm4uYj1hLkMuYjtjLm4uYz1hLkMuYzthLkEuSGMoKFFwZCgpLFBwZCkpJiZCTWIoYSxiKTtkPUFNYihhLGIpO0JMYihhLGIpPT0ocG9kKCksbW9kKSYmKGQrPTIqYS53KTtjLmEuYT1kfVxuZnVuY3Rpb24gRk5iKGEsYil7dmFyIGMsZDtjPVJEKFZyYihhLmIsYiksMTI3KTtpZihSRChSRChRYyhhLnIsYiksMjEpLDg3KS5kYygpKXtjLm4uZD0wO2Mubi5hPTA7cmV0dXJufWMubi5kPWEuQy5kO2Mubi5hPWEuQy5hO2EuQS5IYygoUXBkKCksUHBkKSkmJkpOYihhLGIpO2Q9SU5iKGEsYik7QkxiKGEsYik9PShwb2QoKSxtb2QpJiYoZCs9MiphLncpO2MuYS5iPWR9XG5mdW5jdGlvbiBWUWIoYSxiKXt2YXIgYyxkLGUsZjtmPW5ldyBibmI7Zm9yKGQ9bmV3IEFuYihiKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksNjgpO1JtYihmLG5ldyBmUmIoYyx0cnVlKSk7Um1iKGYsbmV3IGZSYihjLGZhbHNlKSl9ZT1uZXcgJFFiKGEpO2UuYS5hLiRiKCk7YkdiKGYsYS5iLG5ldyBtb2IoY0QoV0MoYk4sMSkscnZlLDY5MywwLFtlXSkpKX1cbmZ1bmN0aW9uIGlUYihhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvLHAscTtpPWEuYTtuPWEuYjtqPWIuYTtvPWIuYjtrPWMuYTtwPWMuYjtsPWQuYTtxPWQuYjtmPWkqby1uKmo7Zz1rKnEtcCpsO2U9KGktaikqKHAtcSktKG4tbykqKGstbCk7aD0oZiooay1sKS1nKihpLWopKS9lO209KGYqKHAtcSktZyoobi1vKSkvZTtyZXR1cm4gbmV3IHJqZChoLG0pfVxuZnVuY3Rpb24gWjZiKGEsYil7dmFyIGMsZCxlO2IuVWcoJ0VuZCBsYWJlbCBwcmUtcHJvY2Vzc2luZycsMSk7Yz1LZmIoVUQobVFiKGEsKHlDYygpLFZCYykpKSk7ZD1LZmIoVUQobVFiKGEsWkJjKSkpO2U9RW1kKFJEKG1RYihhLHJBYyksODgpKTtGRGIoRURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuYiwxNikpLG5ldyBmN2IpLG5ldyBoN2IoYyxkLGUpKTtiLlZnKCl9XG5mdW5jdGlvbiBMRmMoYSxiKXt2YXIgYyxkLGU7aWYoYS5kW2IucF0pe3JldHVybn1hLmRbYi5wXT10cnVlO2EuYVtiLnBdPXRydWU7Zm9yKGQ9bmV3IGlzKE1yKGEzYihiKS5hLktjKCksbmV3IGlyKSk7Z3MoZCk7KXtjPVJEKGhzKGQpLDE4KTtpZihXMGIoYykpe2NvbnRpbnVlfWU9Yy5kLmk7YS5hW2UucF0/Um1iKGEuYixjKTpMRmMoYSxlKX1hLmFbYi5wXT1mYWxzZX1cbmZ1bmN0aW9uIGhHYyhhLGIsYyl7dmFyIGQ7ZD0wO3N3aXRjaChSRChtUWIoYiwoeUNjKCksVUFjKSksMTcxKS5nKXtjYXNlIDI6ZD0yKi1jK2EuYTsrK2EuYTticmVhaztjYXNlIDE6ZD0tYzticmVhaztjYXNlIDM6ZD1jO2JyZWFrO2Nhc2UgNDpkPTIqYythLmI7KythLmI7fW5RYihiLChZd2MoKSx6d2MpKSYmKGQrPVJEKG1RYihiLHp3YyksMTcpLmEpO3JldHVybiBkfVxuZnVuY3Rpb24gSlNjKGEsYixjKXt2YXIgZCxlLGY7Yy56YyhiLGEpO1JtYihhLm4sYik7Zj1hLnAuemcoYik7Yi5qPT1hLnAuQWcoKT9ZU2MoYS5lLGYpOllTYyhhLmosZik7TFNjKGEpO2ZvcihlPUZsKEFsKGNEKFdDKGNKLDEpLHJ2ZSwyMCwwLFtuZXcgVDNiKGIpLG5ldyBfM2IoYildKSkpO2dzKGUpOyl7ZD1SRChocyhlKSwxMik7Yy5fYihkKXx8SlNjKGEsZCxjKX19XG5mdW5jdGlvbiByWmMoYSxiLGMpe3ZhciBkLGUsZjtjLlVnKCdQcm9jZXNzb3Igc2V0IG5laWdoYm9ycycsMSk7YS5hPWIuYi5iPT0wPzE6Yi5iLmI7ZT1udWxsO2Q9U3ViKGIuYiwwKTt3aGlsZSghZSYmZC5iIT1kLmQuYyl7Zj1SRChldmIoZCksNDApO0hlYihURChtUWIoZiwocSRjKCksbiRjKSkpKSYmKGU9Zil9ISFlJiZzWmMoYSxuZXcgZFhjKGUpLGMpO2MuVmcoKX1cbmZ1bmN0aW9uIHZzZChhKXt2YXIgYixjLGQ7Yz1SRChHeGQoYSwodW1kKCksa2xkKSksMjEpO2lmKGMuSGMoKFFwZCgpLE1wZCkpKXtkPVJEKEd4ZChhLHBsZCksMjEpO2I9bmV3IHNqZChSRChHeGQoYSxubGQpLDgpKTtpZihkLkhjKChkcWQoKSxZcGQpKSl7Yi5hPD0wJiYoYi5hPTIwKTtiLmI8PTAmJihiLmI9MjApfXJldHVybiBifWVsc2V7cmV0dXJuIG5ldyBwamR9fVxuZnVuY3Rpb24gbllkKGEpe3ZhciBiLGMsZDtpZighYS5iKXtkPW5ldyB5X2Q7Zm9yKGM9bmV3IHlNZChxWWQoYSkpO2MuZSE9Yy5pLmdjKCk7KXtiPVJEKHhNZChjKSwxOSk7KGIuQmImUUhlKSE9MCYmV0dkKGQsYil9VkhkKGQpO2EuYj1uZXcgTiRkKChSRChRSGQoeFlkKChsVGQoKSxrVGQpLm8pLDgpLDE5KSxkLmkpLGQuZyk7eVlkKGEpLmImPS05fXJldHVybiBhLmJ9XG5mdW5jdGlvbiBEaGIoYSl7dmFyIGIsYyxkO2M9YS5sZW5ndGg7ZD0wO3doaWxlKGQ8YyYmKEJGYihkLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoZCk8PTMyKSl7KytkfWI9Yzt3aGlsZShiPmQmJihCRmIoYi0xLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoYi0xKTw9MzIpKXstLWJ9cmV0dXJuIGQ+MHx8YjxjPyhBRmIoZCxiLGEubGVuZ3RoKSxhLnN1YnN0cihkLGItZCkpOmF9XG5mdW5jdGlvbiB2cWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2k9UkQoRWUoRWMoYi5rKSwkQyhFMyxOQWUsNjQsMiwwLDEpKSwxMjYpO2o9Yi5nO2M9eHFjKGIsaVswXSk7ZT13cWMoYixpWzFdKTtkPW9xYyhhLGosYyxlKTtmPXhxYyhiLGlbMV0pO2g9d3FjKGIsaVswXSk7Zz1vcWMoYSxqLGYsaCk7aWYoZDw9Zyl7Yi5hPWM7Yi5jPWV9ZWxzZXtiLmE9ZjtiLmM9aH19XG5mdW5jdGlvbiBFb2IoYSl7dmFyIGg7eW9iKCk7dmFyIGIsYyxkLGUsZixnO2lmKFpEKGEsNTkpKXtmb3IoZT0wLGQ9YS5nYygpLTE7ZTxkOysrZSwtLWQpe2g9YS5YYihlKTthLmhkKGUsYS5YYihkKSk7YS5oZChkLGgpfX1lbHNle2I9YS5lZCgpO2Y9YS5mZChhLmdjKCkpO3doaWxlKGIuVGIoKTxmLlZiKCkpe2M9Yi5QYigpO2c9Zi5VYigpO2IuV2IoZyk7Zi5XYihjKX19fVxuZnVuY3Rpb24gbEtjKGEsYil7dmFyIGMsZCxlLGYsZyxoO2g9MDtmPW5ldyB3bWI7aG1iKGYsYik7d2hpbGUoZi5iIT1mLmMpe2c9UkQoc21iKGYpLDIxOSk7aCs9UExjKGcuZCxnLmUpO2ZvcihlPW5ldyBBbmIoZy5iKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMzYpO2M9UkQoVm1iKGEuYixkLnApLDIxOSk7Yy5zfHwoaCs9bEtjKGEsYykpfX1yZXR1cm4gaH1cbmZ1bmN0aW9uIFFUYyhhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGo7aWYoYil7Zm9yKGg9Yi5LYygpO2guT2IoKTspe2c9UkQoaC5QYigpLDEwKTtmb3Ioaj1kM2IoZywoQkVjKCksekVjKSxjKS5LYygpO2ouT2IoKTspe2k9UkQoai5QYigpLDEyKTtmPVJEKFdkKHF0YihlLmYsaSkpLDExOCk7aWYoIWYpe2Y9bmV3IFVTYyhhLmQpO1pFYihkLmMsZik7SlNjKGYsaSxlKX19fX19XG5mdW5jdGlvbiB3VmMoYSxiLGMpe3ZhciBkLGU7clZjKHRoaXMpO2I9PShkVmMoKSxiVmMpP1lzYih0aGlzLnIsYS5jKTpZc2IodGhpcy53LGEuYyk7Yz09YlZjP1lzYih0aGlzLnIsYS5kKTpZc2IodGhpcy53LGEuZCk7c1ZjKHRoaXMsYSk7ZD10VmMoYS5jKTtlPXRWYyhhLmQpO3ZWYyh0aGlzLGQsZSxlKTt0aGlzLm89KEhVYygpLCR3bmQuTWF0aC5hYnMoZC1lKTwwLjIpfVxuZnVuY3Rpb24gQWRlKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7aD1SRChZd2QoYS5hLDgpLDIwMzUpO2lmKGghPW51bGwpe2ZvcihlPWgsZj0wLGc9ZS5sZW5ndGg7ZjxnOysrZil7bnVsbC5VbSgpfX1kPWM7aWYoKGEuYS5EYiYxKT09MCl7aT1uZXcgRmRlKGEsYyxiKTtkLmRqKGkpfVpEKGQsNjg2KT9SRChkLDY4NikuZmooYS5hKTpkLmNqKCk9PWEuYSYmZC5laihudWxsKX1cbmZ1bmN0aW9uIENuZSgpe3ZhciBhO2lmKHduZSlyZXR1cm4gUkQoTjVkKChZU2QoKSxYU2QpLGRMZSksMjA0NCk7RG5lKCk7YT1SRChaRChYamIoKFlTZCgpLFhTZCksZExlKSw1OTQpP1hqYihYU2QsZExlKTpuZXcgQm5lLDU5NCk7d25lPXRydWU7em5lKGEpO0FuZShhKTtaamIoKGhUZCgpLGdUZCksYSxuZXcgRW5lKTtyQmQoYSk7JGpiKFhTZCxkTGUsYSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBOQShhLGIsYyxkKXt2YXIgZTtlPUVBKGEsYyxjRChXQyhxSiwxKSxOdmUsMiw2LFtTd2UsVHdlLFV3ZSxWd2UsV3dlLFh3ZSxZd2VdKSxiKTtlPDAmJihlPUVBKGEsYyxjRChXQyhxSiwxKSxOdmUsMiw2LFsnU3VuJywnTW9uJywnVHVlJywnV2VkJywnVGh1JywnRnJpJywnU2F0J10pLGIpKTtpZihlPDApe3JldHVybiBmYWxzZX1kLmQ9ZTtyZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIFFBKGEsYixjLGQpe3ZhciBlO2U9RUEoYSxjLGNEKFdDKHFKLDEpLE52ZSwyLDYsW1N3ZSxUd2UsVXdlLFZ3ZSxXd2UsWHdlLFl3ZV0pLGIpO2U8MCYmKGU9RUEoYSxjLGNEKFdDKHFKLDEpLE52ZSwyLDYsWydTdW4nLCdNb24nLCdUdWUnLCdXZWQnLCdUaHUnLCdGcmknLCdTYXQnXSksYikpO2lmKGU8MCl7cmV0dXJuIGZhbHNlfWQuZD1lO3JldHVybiB0cnVlfVxuZnVuY3Rpb24gcnRiKGEsYixjKXt2YXIgZCxlLGYsZztnPWEuYi5DZShiKTtlPShkPWEuYS5nZXQoZyksZD09bnVsbD8kQyhqSixydmUsMSwwLDUsMSk6ZCk7aWYoZS5sZW5ndGg9PTApe2EuYS5zZXQoZyxlKX1lbHNle2Y9b3RiKGEsYixlKTtpZihmKXtyZXR1cm4gZi5uZChjKX19YkQoZSxlLmxlbmd0aCxuZXcgeGxiKGIsYykpOysrYS5jOysrYS5iLmc7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBQWWIoYSl7dmFyIGIsYyxkO01ZYihhKTtkPW5ldyBibmI7Zm9yKGM9bmV3IEFuYihhLmEuYS5iKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksODYpO1JtYihkLG5ldyBfWWIoYix0cnVlKSk7Um1iKGQsbmV3IF9ZYihiLGZhbHNlKSl9VFliKGEuYyk7dCRiKGQsYS5iLG5ldyBtb2IoY0QoV0Mod1EsMSkscnZlLDM4MiwwLFthLmNdKSkpO09ZYihhKX1cbmZ1bmN0aW9uIGVIYihhLGIpe3ZhciBjLGQsZTtlPW5ldyBibmI7Zm9yKGQ9bmV3IEFuYihhLmMuYS5iKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksNjApO2lmKGIuTGIoYykpe1JtYihlLG5ldyBzSGIoYyx0cnVlKSk7Um1iKGUsbmV3IHNIYihjLGZhbHNlKSl9fWtIYihhLmUpO2JHYihlLGEuZCxuZXcgbW9iKGNEKFdDKGJOLDEpLHJ2ZSw2OTMsMCxbYS5lXSkpKX1cbmZ1bmN0aW9uIHQ3YihhKXt2YXIgYixjLGQsZTtjPW5ldyBUc2I7Zm9yKGU9bmV3IEFuYihhLmQpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxODcpO2I9UkQoZC5vZigoWXdjKCksZHdjKSksMTgpOyEhcXRiKGMuZixiKXx8WmpiKGMsYixuZXcgRzdiKGIpKTtSbWIoUkQoV2QocXRiKGMuZixiKSksNDY2KS5iLGQpfXJldHVybiBuZXcgZG5iKG5ldyBnbGIoYykpfVxuZnVuY3Rpb24gWGRjKGEsYil7dmFyIGMsZCxlLGYsZztkPW5ldyB4bWIoYS5qLmMubGVuZ3RoKTtjPW51bGw7Zm9yKGY9bmV3IEFuYihhLmopO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMik7aWYoZS5qIT1jKXtkLmI9PWQuY3x8WWRjKGQsYyxiKTtqbWIoZCk7Yz1lLmp9Zz1jN2IoZSk7ISFnJiYoaW1iKGQsZyksdHJ1ZSl9ZC5iPT1kLmN8fFlkYyhkLGMsYil9XG5mdW5jdGlvbiBMZWMoYSxiKXt2YXIgYyxkLGU7ZD1uZXcgSmtiKGEuYiwwKTt3aGlsZShkLmI8ZC5kLmdjKCkpe2M9KHNGYihkLmI8ZC5kLmdjKCkpLFJEKGQuZC5YYihkLmM9ZC5iKyspLDcyKSk7ZT1SRChtUWIoYywoeUNjKCksd0FjKSksMjc4KTtpZihlPT0oT21kKCksTW1kKSl7Q2tiKGQpO1JtYihiLmIsYyk7blFiKGMsKFl3YygpLGR3YykpfHxwUWIoYyxkd2MsYSl9fX1cbmZ1bmN0aW9uIGVJYyhhKXt2YXIgYixjLGQsZSxmO2I9S3IobmV3IGlzKE1yKGEzYihhKS5hLktjKCksbmV3IGlyKSkpO2ZvcihlPW5ldyBpcyhNcihaMmIoYSkuYS5LYygpLG5ldyBpcikpO2dzKGUpOyl7ZD1SRChocyhlKSwxOCk7Yz1kLmMuaTtmPUtyKG5ldyBpcyhNcihhM2IoYykuYS5LYygpLG5ldyBpcikpKTtiPSR3bmQuTWF0aC5tYXgoYixmKX1yZXR1cm4gc2diKGIpfVxuZnVuY3Rpb24gSnNkKGEsYixjKXt2YXIgZCxlLGY7ZD1SRChHeGQoYSwodW1kKCksS2tkKSksMjEpO2U9MDtmPTA7Yi5hPmMuYSYmKGQuSGMoKHVrZCgpLG9rZCkpPyhlPShiLmEtYy5hKS8yKTpkLkhjKHFrZCkmJihlPWIuYS1jLmEpKTtiLmI+Yy5iJiYoZC5IYygodWtkKCksc2tkKSk/KGY9KGIuYi1jLmIpLzIpOmQuSGMocmtkKSYmKGY9Yi5iLWMuYikpO0lzZChhLGUsZil9XG5mdW5jdGlvbiBBQmQoYSxiLGMsZCxlLGYsZyxoLGksaixrLGwsbSl7WkQoYS5DYiw5MCkmJnYkZCh5WWQoUkQoYS5DYiw5MCkpLDQpO1BBZChhLGMpO2EuZj1nO0RXZChhLGgpO0ZXZChhLGkpO3hXZChhLGopO0VXZChhLGspO2FXZChhLGwpO0FXZChhLG0pO19WZChhLHRydWUpOyRWZChhLGUpO2EuWmsoZik7WVZkKGEsYik7ZCE9bnVsbCYmKGEuaT1udWxsLHpXZChhLGQpKX1cbmZ1bmN0aW9uIEpiKGEsYixjKXtpZihhPDApe3JldHVybiBoYyhxdmUsY0QoV0MoakosMSkscnZlLDEsNSxbYyxzZ2IoYSldKSl9ZWxzZSBpZihiPDApe3Rocm93IEFkYihuZXcgYWdiKHN2ZStiKSl9ZWxzZXtyZXR1cm4gaGMoJyVzICglcykgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIHNpemUgKCVzKScsY0QoV0MoakosMSkscnZlLDEsNSxbYyxzZ2IoYSksc2diKGIpXSkpfX1cbmZ1bmN0aW9uIFhuYihhLGIsYyxkLGUsZil7dmFyIGcsaCxpLGo7Zz1kLWM7aWYoZzw3KXtVbmIoYixjLGQsZik7cmV0dXJufWk9YytlO2g9ZCtlO2o9aSsoaC1pPj4xKTtYbmIoYixhLGksaiwtZSxmKTtYbmIoYixhLGosaCwtZSxmKTtpZihmLk5lKGFbai0xXSxhW2pdKTw9MCl7d2hpbGUoYzxkKXtiRChiLGMrKyxhW2krK10pfXJldHVybn1WbmIoYSxpLGosaCxiLGMsZCxmKX1cbmZ1bmN0aW9uIE1xYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2k9Yi5kO2U9Yi5iLmo7Zm9yKGg9bmV3IEFuYihpKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTA1KTtmPSRDKHhkYixIeWUsMjgsZS5jLmxlbmd0aCwxNiwxKTtaamIoYS5iLGcsZik7Yz1nLmEuZC5wLTE7ZD1nLmMuZC5wO3doaWxlKGMhPWQpe2M9KGMrMSklZS5jLmxlbmd0aDtmW2NdPXRydWV9fX1cbmZ1bmN0aW9uIHJHYyhhLGIpe25HYygpO2lmKG5RYihhLChZd2MoKSx6d2MpKSYmblFiKGIsendjKSl7cmV0dXJuIGhnYihSRChtUWIoYSx6d2MpLDE3KS5hLFJEKG1RYihiLHp3YyksMTcpLmEpfXRocm93IEFkYihuZXcgS2VkKCdUaGUgQkYgbW9kZWwgb3JkZXIgbGF5ZXIgYXNzaWduZXIgcmVxdWlyZXMgYWxsIHJlYWwgbm9kZXMgdG8gaGF2ZSBhIG1vZGVsIG9yZGVyLicpKX1cbmZ1bmN0aW9uICRHYyhhLGIpe1NHYygpO2lmKG5RYihhLChZd2MoKSx6d2MpKSYmblFiKGIsendjKSl7cmV0dXJuIGhnYihSRChtUWIoYSx6d2MpLDE3KS5hLFJEKG1RYihiLHp3YyksMTcpLmEpfXRocm93IEFkYihuZXcgS2VkKCdUaGUgREYgbW9kZWwgb3JkZXIgbGF5ZXIgYXNzaWduZXIgcmVxdWlyZXMgYWxsIHJlYWwgbm9kZXMgdG8gaGF2ZSBhIG1vZGVsIG9yZGVyLicpKX1cbmZ1bmN0aW9uIFRTYyhhLGIpe2Eucj1uZXcgVVNjKGEucCk7U1NjKGEucixhKTt5ZShhLnIuaixhLmopO1h1YihhLmopO011YihhLmosYik7TXViKGEuci5lLGIpO0xTYyhhKTtMU2MoYS5yKTt3aGlsZShhLmYuYy5sZW5ndGghPTApeyRTYyhSRChWbWIoYS5mLDApLDEzMikpfXdoaWxlKGEuay5jLmxlbmd0aCE9MCl7JFNjKFJEKFZtYihhLmssMCksMTMyKSl9cmV0dXJuIGEucn1cbmZ1bmN0aW9uIFd2ZChhLGIsYyl7dmFyIGQsZSxmO2U9dllkKGEuRGgoKSxiKTtkPWItYS5qaSgpO2lmKGQ8MCl7aWYoIWUpe3Rocm93IEFkYihuZXcgYWdiKE9IZStiK1BIZSkpfWVsc2UgaWYoZS5yaygpKXtmPWEuSWgoZSk7Zj49MD9hLmJpKGYsYyk6U3ZkKGEsZSxjKX1lbHNle3Rocm93IEFkYihuZXcgYWdiKEtIZStlLnhlKCkrTEhlKSl9fWVsc2V7QnZkKGEsZCxlLGMpfX1cbmZ1bmN0aW9uIG4zZChhKXt2YXIgYixjO2lmKGEuZil7d2hpbGUoYS5uPjApe2I9UkQoYS5rLlhiKGEubi0xKSw3Nik7Yz1iLkxrKCk7aWYoWkQoYywxMDIpJiYoUkQoYywxOSkuQmImUUhlKSE9MCYmKCFhLmV8fGMucGsoKSE9QzR8fGMuTGooKSE9MCkmJmIubWQoKSE9bnVsbCl7cmV0dXJuIHRydWV9ZWxzZXstLWEubn19cmV0dXJuIGZhbHNlfWVsc2V7cmV0dXJuIGEubj4wfX1cbmZ1bmN0aW9uIFBqZShiKXt2YXIgYyxkLGUsZjtkPVJEKGIsNTQpLl9oKCk7aWYoZCl7dHJ5e2U9bnVsbDtjPU41ZCgoWVNkKCksWFNkKSxqU2Qoa1NkKGQpKSk7aWYoYyl7Zj1jLmFpKCk7ISFmJiYoZT1mLkZsKENoYihkLmUpKSl9aWYoISFlJiZlIT1iKXtyZXR1cm4gUGplKGUpfX1jYXRjaChhKXthPXpkYihhKTtpZighWkQoYSw2MykpdGhyb3cgQWRiKGEpfX1yZXR1cm4gYn1cbmZ1bmN0aW9uIFAzYyhhLGIsYyl7dmFyIGQsZSxmO2MuVWcoJ1JlbW92ZSBvdmVybGFwcycsMSk7Yy5kaChiLGVGZSk7ZD1SRChHeGQoYiwodTJjKCksdDJjKSksMjcpO2EuZj1kO2EuYT11NWMoUkQoR3hkKGIsKCQ0YygpLFg0YykpLDMwMCkpO2U9VUQoR3hkKGIsKHVtZCgpLGZtZCkpKTtzM2MoYSwodUZiKGUpLGUpKTtmPVEyYyhkKTtPM2MoYSxiLGYsYyk7Yy5kaChiLGdGZSl9XG5mdW5jdGlvbiBEZWQoYSl7dmFyIGIsYyxkO2lmKEhlYihURChHeGQoYSwodW1kKCksJGtkKSkpKSl7ZD1uZXcgYm5iO2ZvcihjPW5ldyBpcyhNcih6R2QoYSkuYS5LYygpLG5ldyBpcikpO2dzKGMpOyl7Yj1SRChocyhjKSw3NCk7b3pkKGIpJiZIZWIoVEQoR3hkKGIsX2tkKSkpJiYoWkViKGQuYyxiKSx0cnVlKX1yZXR1cm4gZH1lbHNle3JldHVybiB5b2IoKSx5b2IoKSx2b2J9fVxuZnVuY3Rpb24gS0MoYSl7aWYoIWEpe3JldHVybiBjQygpLGJDfXZhciBiPWEudmFsdWVPZj9hLnZhbHVlT2YoKTphO2lmKGIhPT1hKXt2YXIgYz1HQ1t0eXBlb2YgYl07cmV0dXJuIGM/YyhiKTpOQyh0eXBlb2YgYil9ZWxzZSBpZihhIGluc3RhbmNlb2YgQXJyYXl8fGEgaW5zdGFuY2VvZiAkd25kLkFycmF5KXtyZXR1cm4gbmV3IE5CKGEpfWVsc2V7cmV0dXJuIG5ldyB2QyhhKX19XG5mdW5jdGlvbiBJTWIoYSxiLGMpe3ZhciBkLGUsZjtmPWEubztkPVJEKFZyYihhLnAsYyksMjUyKTtlPWQuaTtlLmI9WktiKGQpO2UuYT1ZS2IoZCk7ZS5iPSR3bmQuTWF0aC5tYXgoZS5iLGYuYSk7ZS5iPmYuYSYmIWImJihlLmI9Zi5hKTtlLmM9LShlLmItZi5hKS8yO3N3aXRjaChjLmcpe2Nhc2UgMTplLmQ9LWUuYTticmVhaztjYXNlIDM6ZS5kPWYuYjt9JEtiKGQpO19LYihkKX1cbmZ1bmN0aW9uIEpNYihhLGIsYyl7dmFyIGQsZSxmO2Y9YS5vO2Q9UkQoVnJiKGEucCxjKSwyNTIpO2U9ZC5pO2UuYj1aS2IoZCk7ZS5hPVlLYihkKTtlLmE9JHduZC5NYXRoLm1heChlLmEsZi5iKTtlLmE+Zi5iJiYhYiYmKGUuYT1mLmIpO2UuZD0tKGUuYS1mLmIpLzI7c3dpdGNoKGMuZyl7Y2FzZSA0OmUuYz0tZS5iO2JyZWFrO2Nhc2UgMjplLmM9Zi5hO30kS2IoZCk7X0tiKGQpfVxuZnVuY3Rpb24gbmtjKGEsYil7dmFyIGMsZCxlLGYsZztpZihiLmRjKCkpe3JldHVybn1lPVJEKGIuWGIoMCksMTMxKTtpZihiLmdjKCk9PTEpe21rYyhhLGUsZSwxLDAsYik7cmV0dXJufWM9MTt3aGlsZShjPGIuZ2MoKSl7aWYoZS5qfHwhZS5vKXtmPXNrYyhiLGMpO2lmKGYpe2Q9UkQoZi5hLDE3KS5hO2c9UkQoZi5iLDEzMSk7bWtjKGEsZSxnLGMsZCxiKTtjPWQrMTtlPWd9fX19XG5mdW5jdGlvbiBTb2MoYSl7dmFyIGIsYyxkLGUsZixnO2c9bmV3IGRuYihhLmQpO19tYihnLG5ldyB1cGMpO2I9KGVwYygpLGNEKFdDKGhXLDEpLGp3ZSwyNzYsMCxbWm9jLGFwYyxZb2MsZHBjLF9vYywkb2MsY3BjLGJwY10pKTtjPTA7Zm9yKGY9bmV3IEFuYihnKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTA1KTtkPWJbYyViLmxlbmd0aF07VW9jKGUsZCk7KytjfX1cbmZ1bmN0aW9uIHppZChhLGIpe3RpZCgpO3ZhciBjLGQsZSxmO2lmKGIuYjwyKXtyZXR1cm4gZmFsc2V9Zj1TdWIoYiwwKTtjPVJEKGV2YihmKSw4KTtkPWM7d2hpbGUoZi5iIT1mLmQuYyl7ZT1SRChldmIoZiksOCk7aWYoISh4aWQoYSxkKSYmeGlkKGEsZSkpKXtyZXR1cm4gZmFsc2V9ZD1lfWlmKCEoeGlkKGEsZCkmJnhpZChhLGMpKSl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfVxuZnVuY3Rpb24gSEVkKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGw7az1udWxsO2w9YTtnPXZEZChsLCd4Jyk7Yz1uZXcgaUZkKGIpO2VFZChjLmEsZyk7aD12RGQobCwneScpO2Q9bmV3IGpGZChiKTtmRWQoZC5hLGgpO2k9dkRkKGwsZkllKTtlPW5ldyBrRmQoYik7Z0VkKGUuYSxpKTtqPXZEZChsLGVJZSk7Zj1uZXcgbEZkKGIpO2s9KGhFZChmLmEsaiksaik7cmV0dXJuIGt9XG5mdW5jdGlvbiB2JGQoYSxiKXtyJGQoYSxiKTsoYS5iJjEpIT0wJiYoYS5hLmE9bnVsbCk7KGEuYiYyKSE9MCYmKGEuYS5mPW51bGwpO2lmKChhLmImNCkhPTApe2EuYS5nPW51bGw7YS5hLmk9bnVsbH1pZigoYS5iJjE2KSE9MCl7YS5hLmQ9bnVsbDthLmEuZT1udWxsfShhLmImOCkhPTAmJihhLmEuYj1udWxsKTtpZigoYS5iJjMyKSE9MCl7YS5hLmo9bnVsbDthLmEuYz1udWxsfX1cbmZ1bmN0aW9uIExkZShiLGMpe3ZhciBkLGUsZjtmPTA7aWYoYy5sZW5ndGg+MCl7dHJ5e2Y9T2ViKGMscXdlLGx2ZSl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwxMzApKXtlPWE7dGhyb3cgQWRiKG5ldyBSU2QoZSkpfWVsc2UgdGhyb3cgQWRiKGEpfX1kPSghYi5hJiYoYi5hPW5ldyBaZGUoYikpLGIuYSk7cmV0dXJuIGY8ZC5pJiZmPj0wP1JEKFFIZChkLGYpLDU4KTpudWxsfVxuZnVuY3Rpb24gSWIoYSxiKXtpZihhPDApe3JldHVybiBoYyhxdmUsY0QoV0MoakosMSkscnZlLDEsNSxbJ2luZGV4JyxzZ2IoYSldKSl9ZWxzZSBpZihiPDApe3Rocm93IEFkYihuZXcgYWdiKHN2ZStiKSl9ZWxzZXtyZXR1cm4gaGMoJyVzICglcykgbXVzdCBiZSBsZXNzIHRoYW4gc2l6ZSAoJXMpJyxjRChXQyhqSiwxKSxydmUsMSw1LFsnaW5kZXgnLHNnYihhKSxzZ2IoYildKSl9fVxuZnVuY3Rpb24gY29iKGEpe3ZhciBiLGMsZCxlLGY7aWYoYT09bnVsbCl7cmV0dXJuIHZ2ZX1mPW5ldyBKeWIocHZlLCdbJywnXScpO2ZvcihjPWEsZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdOyFmLmE/KGYuYT1uZXcgZGliKGYuZCkpOlpoYihmLmEsZi5iKTtXaGIoZi5hLCcnK2IpfXJldHVybiAhZi5hP2YuYzpmLmUubGVuZ3RoPT0wP2YuYS5hOmYuYS5hKygnJytmLmUpfVxuZnVuY3Rpb24gZG9iKGEpe3ZhciBiLGMsZCxlLGY7aWYoYT09bnVsbCl7cmV0dXJuIHZ2ZX1mPW5ldyBKeWIocHZlLCdbJywnXScpO2ZvcihjPWEsZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdOyFmLmE/KGYuYT1uZXcgZGliKGYuZCkpOlpoYihmLmEsZi5iKTtXaGIoZi5hLCcnK2IpfXJldHVybiAhZi5hP2YuYzpmLmUubGVuZ3RoPT0wP2YuYS5hOmYuYS5hKygnJytmLmUpfVxuZnVuY3Rpb24gZW9iKGEpe3ZhciBiLGMsZCxlLGY7aWYoYT09bnVsbCl7cmV0dXJuIHZ2ZX1mPW5ldyBKeWIocHZlLCdbJywnXScpO2ZvcihjPWEsZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdOyFmLmE/KGYuYT1uZXcgZGliKGYuZCkpOlpoYihmLmEsZi5iKTtXaGIoZi5hLCcnK2IpfXJldHVybiAhZi5hP2YuYzpmLmUubGVuZ3RoPT0wP2YuYS5hOmYuYS5hKygnJytmLmUpfVxuZnVuY3Rpb24gaG9iKGEpe3ZhciBiLGMsZCxlLGY7aWYoYT09bnVsbCl7cmV0dXJuIHZ2ZX1mPW5ldyBKeWIocHZlLCdbJywnXScpO2ZvcihjPWEsZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdOyFmLmE/KGYuYT1uZXcgZGliKGYuZCkpOlpoYihmLmEsZi5iKTtXaGIoZi5hLCcnK2IpfXJldHVybiAhZi5hP2YuYzpmLmUubGVuZ3RoPT0wP2YuYS5hOmYuYS5hKygnJytmLmUpfVxuZnVuY3Rpb24ga3diKGEsYil7dmFyIGMsZCxlLGYsZyxoO2M9YS5iLmMubGVuZ3RoO2U9Vm1iKGEuYixiKTt3aGlsZShiKjIrMTxjKXtkPShmPTIqYisxLGc9ZisxLGg9ZixnPGMmJmEuYS5OZShWbWIoYS5iLGcpLFZtYihhLmIsZikpPDAmJihoPWcpLGgpO2lmKGEuYS5OZShlLFZtYihhLmIsZCkpPDApe2JyZWFrfSRtYihhLmIsYixWbWIoYS5iLGQpKTtiPWR9JG1iKGEuYixiLGUpfVxuZnVuY3Rpb24gb0piKGEsYixjKXt2YXIgZCxlO2Q9Yy5kO2U9Yy5lO2lmKGEuZ1tkLmRdPD1hLmlbYi5kXSYmYS5pW2IuZF08PWEuaVtkLmRdJiZhLmdbZS5kXTw9YS5pW2IuZF0mJmEuaVtiLmRdPD1hLmlbZS5kXSl7aWYoYS5pW2QuZF08YS5pW2UuZF0pe3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX1pZihhLmlbZC5kXTxhLmlbZS5kXSl7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gU1diKGEsYil7dmFyIGM7Yz1SRChtUWIoYiwoeUNjKCksb0FjKSksMzIyKTtpZihjIT1hKXt0aHJvdyBBZGIobmV3IEtlZCgnVGhlIGhpZXJhcmNoeSBhd2FyZSBwcm9jZXNzb3IgJytjKycgaW4gY2hpbGQgbm9kZSAnK2IrJyBpcyBvbmx5IGFsbG93ZWQgaWYgdGhlIHJvb3Qgbm9kZSBzcGVjaWZpZXMgdGhlIHNhbWUgaGllcmFyY2hpY2FsIHByb2Nlc3Nvci4nKSl9fVxuZnVuY3Rpb24gS2VlKGEsYil7dmFyIGMsZCxlLGYsZztkPSghYi5zJiYoYi5zPW5ldyBDNWQoeTcsYiwyMSwxNykpLGIucyk7Zj1udWxsO2ZvcihlPTAsZz1kLmk7ZTxnOysrZSl7Yz1SRChRSGQoZCxlKSwxNzkpO3N3aXRjaCh5ZmUoUWVlKGEsYykpKXtjYXNlIDI6Y2FzZSAzOnshZiYmKGY9bmV3IGJuYik7WkViKGYuYyxjKX19fXJldHVybiAhZj8oeW9iKCkseW9iKCksdm9iKTpmfVxuZnVuY3Rpb24gUFFiKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7aT1veGU7Zm9yKGY9bmV3IEFuYihuUmIoYS5iKSk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDE3Nyk7Zm9yKGg9bmV3IEFuYihuUmIoYi5iKSk7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDE3Nyk7ZD1BaWQoZS5hLGUuYixnLmEsZy5iLGMpO2k9JHduZC5NYXRoLm1pbihpLGQpfX1yZXR1cm4gaX1cbmZ1bmN0aW9uIFEzYihhLGIpe2lmKCFiKXt0aHJvdyBBZGIobmV3IE5nYil9YS5qPWI7aWYoIWEuZCl7c3dpdGNoKGEuai5nKXtjYXNlIDE6YS5hLmE9YS5vLmEvMjthLmEuYj0wO2JyZWFrO2Nhc2UgMjphLmEuYT1hLm8uYTthLmEuYj1hLm8uYi8yO2JyZWFrO2Nhc2UgMzphLmEuYT1hLm8uYS8yO2EuYS5iPWEuby5iO2JyZWFrO2Nhc2UgNDphLmEuYT0wO2EuYS5iPWEuby5iLzI7fX19XG5mdW5jdGlvbiBKaWMoYSxiKXt2YXIgYyxkLGU7aWYoWkQoYi5nLDEwKSYmUkQoYi5nLDEwKS5rPT0ocjNiKCksbTNiKSl7cmV0dXJuIG94ZX1lPSRqYyhiKTtpZihlKXtyZXR1cm4gJHduZC5NYXRoLm1heCgwLGEuYi8yLTAuNSl9Yz1aamMoYik7aWYoYyl7ZD1LZmIoVUQoaEZjKGMsKHlDYygpLGJDYykpKSk7cmV0dXJuICR3bmQuTWF0aC5tYXgoMCxkLzItMC41KX1yZXR1cm4gb3hlfVxuZnVuY3Rpb24gTGljKGEsYil7dmFyIGMsZCxlO2lmKFpEKGIuZywxMCkmJlJEKGIuZywxMCkuaz09KHIzYigpLG0zYikpe3JldHVybiBveGV9ZT0kamMoYik7aWYoZSl7cmV0dXJuICR3bmQuTWF0aC5tYXgoMCxhLmIvMi0wLjUpfWM9WmpjKGIpO2lmKGMpe2Q9S2ZiKFVEKGhGYyhjLCh5Q2MoKSxiQ2MpKSkpO3JldHVybiAkd25kLk1hdGgubWF4KDAsZC8yLTAuNSl9cmV0dXJuIG94ZX1cbmZ1bmN0aW9uIEprYyhhLGIpe2xrYygpO3ZhciBjLGQsZSxmLGcsaDtjPW51bGw7Zm9yKGc9Yi5LYygpO2cuT2IoKTspe2Y9UkQoZy5QYigpLDEzMSk7aWYoZi5vKXtjb250aW51ZX1kPVFpZChmLmEpO2U9TmlkKGYuYSk7aD1uZXcgTmxjKGQsZSxudWxsLFJEKGYuZC5hLmVjKCkuS2MoKS5QYigpLDE4KSk7Um1iKGguYyxmLmEpO1pFYihhLmMsaCk7ISFjJiZSbWIoYy5kLGgpO2M9aH19XG5mdW5jdGlvbiBibWMoYSl7dmFyIGIsYyxkLGUsZixnO2c9YU1jKGEuZCxhLmUpO2ZvcihmPWcuS2MoKTtmLk9iKCk7KXtlPVJEKGYuUGIoKSwxMik7ZD1hLmU9PShxcGQoKSxwcGQpP2UuZTplLmc7Zm9yKGM9bmV3IEFuYihkKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMTgpO2lmKCFXMGIoYikmJmIuYy5pLmMhPWIuZC5pLmMpe1psYyhhLGIpOysrYS5mOysrYS5jfX19fVxuZnVuY3Rpb24gV3NjKGEsYil7dmFyIGMsZDtpZihiLmRjKCkpe3JldHVybiB5b2IoKSx5b2IoKSx2b2J9ZD1uZXcgYm5iO1JtYihkLHNnYihxd2UpKTtmb3IoYz0xO2M8YS5mOysrYyl7YS5hPT1udWxsJiZ1c2MoYSk7YS5hW2NdJiZSbWIoZCxzZ2IoYykpfWlmKGQuYy5sZW5ndGg9PTEpe3JldHVybiB5b2IoKSx5b2IoKSx2b2J9Um1iKGQsc2diKGx2ZSkpO3JldHVybiBWc2MoYixkKX1cbmZ1bmN0aW9uIGtPYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2c9Yi5jLmkuayE9KHIzYigpLHAzYik7aT1nP2IuZDpiLmM7Yz1VMGIoYixpKS5pO2U9UkQoV2piKGEuayxpKSwxMjUpO2Q9YS5pW2MucF0uYTtpZigkMmIoaS5pKTwoIWMuYz8tMTpXbWIoYy5jLmEsYywwKSkpe2Y9ZTtoPWR9ZWxzZXtmPWQ7aD1lfXJJYih1SWIodEliKHZJYihzSWIobmV3IHdJYiwwKSw0KSxmKSxoKSl9XG5mdW5jdGlvbiBPRGQoYSxiLGMpe3ZhciBkLGUsZixnLGgsaTtpZihjKXtlPWMuYS5sZW5ndGg7ZD1uZXcgdnVlKGUpO2ZvcihoPShkLmItZC5hKSpkLmM8MD8odXVlKCksdHVlKTpuZXcgUnVlKGQpO2guT2IoKTspe2c9UkQoaC5QYigpLDE3KTtpPXVFZChhLHREZChKQihjLGcuYSkpKTtpZihpKXtmPSghYi5iJiYoYi5iPW5ldyBZaWUoRTQsYiw0LDcpKSxiLmIpO1dHZChmLGkpfX19fVxuZnVuY3Rpb24gUERkKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7aWYoYyl7ZT1jLmEubGVuZ3RoO2Q9bmV3IHZ1ZShlKTtmb3IoaD0oZC5iLWQuYSkqZC5jPDA/KHV1ZSgpLHR1ZSk6bmV3IFJ1ZShkKTtoLk9iKCk7KXtnPVJEKGguUGIoKSwxNyk7aT11RWQoYSx0RGQoSkIoYyxnLmEpKSk7aWYoaSl7Zj0oIWIuYyYmKGIuYz1uZXcgWWllKEU0LGIsNSw4KSksYi5jKTtXR2QoZixpKX19fX1cbmZ1bmN0aW9uIEJvKGEsYixjKXt2YXIgZCxlO2Q9Yi5hJmEuZjtiLmI9YS5iW2RdO2EuYltkXT1iO2U9Yi5mJmEuZjtiLmQ9YS5jW2VdO2EuY1tlXT1iO2lmKCFjKXtiLmU9YS5lO2IuYz1udWxsOyFhLmU/KGEuYT1iKTooYS5lLmM9Yik7YS5lPWJ9ZWxzZXtiLmU9Yy5lOyFiLmU/KGEuYT1iKTooYi5lLmM9Yik7Yi5jPWMuYzshYi5jPyhhLmU9Yik6KGIuYy5lPWIpfSsrYS5pOysrYS5nfVxuZnVuY3Rpb24gSXIoYSl7dmFyIGIsYyxkO2I9YS5QYigpO2lmKCFhLk9iKCkpe3JldHVybiBifWQ9WWhiKFpoYihuZXcgYmliLCdleHBlY3RlZCBvbmUgZWxlbWVudCBidXQgd2FzOiA8JyksYik7Zm9yKGM9MDtjPDQmJmEuT2IoKTtjKyspe1loYigoZC5hKz1wdmUsZCksYS5QYigpKX1hLk9iKCkmJihkLmErPScsIC4uLicsZCk7ZC5hKz0nPic7dGhyb3cgQWRiKG5ldyBhZ2IoZC5hKSl9XG5mdW5jdGlvbiBjQihhKXt2YXIgYixjO2M9LWEuYTtiPWNEKFdDKGhFLDEpLHp3ZSwyOCwxNSxbNDMsNDgsNDgsNDgsNDhdKTtpZihjPDApe2JbMF09NDU7Yz0tY31iWzFdPWJbMV0rKChjLzYwfDApLzEwfDApJkJ3ZTtiWzJdPWJbMl0rKGMvNjB8MCklMTAmQndlO2JbM109YlszXSsoYyU2MC8xMHwwKSZCd2U7Yls0XT1iWzRdK2MlMTAmQndlO3JldHVybiBJaGIoYiwwLGIubGVuZ3RoKX1cbmZ1bmN0aW9uIFYyYihhKXt2YXIgYixjLGQsZTthLmc9bmV3IFpyYihSRChRYihFMyksMjk3KSk7ZD0wO2M9KHFwZCgpLFlvZCk7Yj0wO2Zvcig7YjxhLmouYy5sZW5ndGg7YisrKXtlPVJEKFZtYihhLmosYiksMTIpO2lmKGUuaiE9Yyl7ZCE9YiYmV3JiKGEuZyxjLG5ldyBQdGQoc2diKGQpLHNnYihiKSkpO2M9ZS5qO2Q9Yn19V3JiKGEuZyxjLG5ldyBQdGQoc2diKGQpLHNnYihiKSkpfVxuZnVuY3Rpb24gdTdiKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2Q9MDtmb3IoYz1uZXcgQW5iKGEuYik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDMwKTtmb3IoZj1uZXcgQW5iKGIuYSk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDEwKTtlLnA9ZCsrO2ZvcihoPW5ldyBBbmIoZS5qKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTIpO2cucD1kKyt9fX19XG5mdW5jdGlvbiBUdmQoYSxiKXt2YXIgYyxkLGU7ZT1FZWUoKGxrZSgpLGprZSksYS5EaCgpLGIpO2lmKGUpe25rZSgpO1JEKGUsNjkpLnhrKCl8fChlPXpmZShRZWUoamtlLGUpKSk7ZD0oYz1hLkloKGUpLFJEKGM+PTA/YS5MaChjLHRydWUsdHJ1ZSk6UXZkKGEsZSx0cnVlKSwxNjApKTtSRChkLDIyMCkuWmwoYil9ZWxzZXt0aHJvdyBBZGIobmV3IGFnYihLSGUrYi54ZSgpK0xIZSkpfX1cbmZ1bmN0aW9uIENpYihhKXt2YXIgYixjO2lmKGE+LTE0MDczNzQ4ODM1NTMyOCYmYTwxNDA3Mzc0ODgzNTUzMjgpe2lmKGE9PTApe3JldHVybiAwfWI9YTwwO2ImJihhPS1hKTtjPWVFKCR3bmQuTWF0aC5mbG9vcigkd25kLk1hdGgubG9nKGEpLzAuNjkzMTQ3MTgwNTU5OTQ1MykpOyghYnx8YSE9JHduZC5NYXRoLnBvdygyLGMpKSYmKytjO3JldHVybiBjfXJldHVybiBEaWIoSGRiKGEpKX1cbmZ1bmN0aW9uIG9UYyhhKXt2YXIgYixjLGQsZSxmLGcsaDtmPW5ldyBJdWI7Zm9yKGM9bmV3IEFuYihhKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMTMyKTtnPWIuYTtoPWIuYjtpZihmLmEuX2IoZyl8fGYuYS5fYihoKSl7Y29udGludWV9ZT1nO2Q9aDtpZihnLmUuYitnLmouYj4yJiZoLmUuYitoLmouYjw9Mil7ZT1oO2Q9Z31mLmEuemMoZSxmKTtlLnE9ZH1yZXR1cm4gZn1cbmZ1bmN0aW9uIEI1YyhhLGIsYyl7Yy5VZygnRWFkZXMgcmFkaWFsJywxKTtjLmRoKGIsZ0ZlKTthLmQ9UkQoR3hkKGIsKHUyYygpLHQyYykpLDI3KTthLmM9S2ZiKFVEKEd4ZChiLCgkNGMoKSxTNGMpKSkpO2EuZT11NWMoUkQoR3hkKGIsWDRjKSwzMDApKTthLmE9WjNjKFJEKEd4ZChiLFo0YyksNDM0KSk7YS5iPWs1YyhSRChHeGQoYixPNGMpLDM1NCkpO0M1YyhhKTtjLmRoKGIsZ0ZlKX1cbmZ1bmN0aW9uIHQ4YyhhLGIpe2IuVWcoJ1RhcmdldCBXaWR0aCBTZXR0ZXInLDEpO2lmKEh4ZChhLChYN2MoKSxXN2MpKSl7SXhkKGEsKFg2YygpLFc2YyksVUQoR3hkKGEsVzdjKSkpfWVsc2V7dGhyb3cgQWRiKG5ldyBKZWQoJ0EgdGFyZ2V0IHdpZHRoIGhhcyB0byBiZSBzZXQgaWYgdGhlIFRhcmdldFdpZHRoV2lkdGhBcHByb3hpbWF0b3Igc2hvdWxkIGJlIHVzZWQuJykpfWIuVmcoKX1cbmZ1bmN0aW9uIF84YihhLGIpe3ZhciBjLGQsZTtkPW5ldyBqM2IoYSk7a1FiKGQsYik7cFFiKGQsKFl3YygpLGd3YyksYik7cFFiKGQsKHlDYygpLEJCYyksKEJvZCgpLHdvZCkpO3BRYihkLFJ6YywoUmpkKCksTmpkKSk7aDNiKGQsKHIzYigpLG0zYikpO2M9bmV3IFIzYjtQM2IoYyxkKTtRM2IoYywocXBkKCkscHBkKSk7ZT1uZXcgUjNiO1AzYihlLGQpO1EzYihlLFhvZCk7cmV0dXJuIGR9XG5mdW5jdGlvbiB0dGMoYSl7c3dpdGNoKGEuZyl7Y2FzZSAwOnJldHVybiBuZXcgRktjKChSS2MoKSxPS2MpKTtjYXNlIDE6cmV0dXJuIG5ldyBhS2M7Y2FzZSAyOnJldHVybiBuZXcgRkxjO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBhZ2IoJ05vIGltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSBmb3IgdGhlIGNyb3NzaW5nIG1pbmltaXplciAnKyhhLmYhPW51bGw/YS5mOicnK2EuZykpKTt9fVxuZnVuY3Rpb24gVEhjKGEsYil7dmFyIGMsZCxlLGYsZzthLmNbYi5wXT10cnVlO1JtYihhLmEsYik7Zm9yKGc9bmV3IEFuYihiLmopO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxMik7Zm9yKGQ9bmV3IGw0YihmLmIpO3huYihkLmEpfHx4bmIoZC5iKTspe2M9UkQoeG5iKGQuYSk/eW5iKGQuYSk6eW5iKGQuYiksMTgpO2U9VUhjKGYsYykuaTthLmNbZS5wXXx8VEhjKGEsZSl9fX1cbmZ1bmN0aW9uIEoyYyhhKXt2YXIgYixjLGQsZSxmLGcsaDtnPTA7Zm9yKGM9bmV3IGRNZCgoIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpKTtjLmUhPWMuaS5nYygpOyl7Yj1SRChiTWQoYyksMjcpO2g9Yi5nO2U9Yi5mO2Q9JHduZC5NYXRoLnNxcnQoaCpoK2UqZSk7Zz0kd25kLk1hdGgubWF4KGQsZyk7Zj1KMmMoYik7Zz0kd25kLk1hdGgubWF4KGYsZyl9cmV0dXJuIGd9XG5mdW5jdGlvbiBQb2QoKXtQb2Q9Z2ViO05vZD1uZXcgUW9kKCdPVVRTSURFJywwKTtMb2Q9bmV3IFFvZCgnSU5TSURFJywxKTtNb2Q9bmV3IFFvZCgnTkVYVF9UT19QT1JUX0lGX1BPU1NJQkxFJywyKTtLb2Q9bmV3IFFvZCgnQUxXQVlTX1NBTUVfU0lERScsMyk7Sm9kPW5ldyBRb2QoJ0FMV0FZU19PVEhFUl9TQU1FX1NJREUnLDQpO09vZD1uZXcgUW9kKCdTUEFDRV9FRkZJQ0lFTlQnLDUpfVxuZnVuY3Rpb24gREVkKGEsYixjKXt2YXIgZCxlLGYsaCxpLGo7ZD1yRWQoYSwoZT0oYnZkKCksZj1uZXcgQUNkLGYpLCEhYyYmeUNkKGUsYyksZSksYik7anlkKGQsekRkKGIsdUllKSk7R0VkKGIsZCk7QkVkKGIsZCk7SEVkKGIsZCk7Zz1udWxsO2g9YjtpPXdEZChoLCdwb3J0cycpO2o9bmV3IGhGZChhLGQpO2RFZChqLmEsai5iLGkpO0NFZChhLGIsZCk7eEVkKGEsYixkKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIGJCKGEpe3ZhciBiLGM7Yz0tYS5hO2I9Y0QoV0MoaEUsMSksendlLDI4LDE1LFs0Myw0OCw0OCw1OCw0OCw0OF0pO2lmKGM8MCl7YlswXT00NTtjPS1jfWJbMV09YlsxXSsoKGMvNjB8MCkvMTB8MCkmQndlO2JbMl09YlsyXSsoYy82MHwwKSUxMCZCd2U7Yls0XT1iWzRdKyhjJTYwLzEwfDApJkJ3ZTtiWzVdPWJbNV0rYyUxMCZCd2U7cmV0dXJuIEloYihiLDAsYi5sZW5ndGgpfVxuZnVuY3Rpb24gZUIoYSl7dmFyIGI7Yj1jRChXQyhoRSwxKSx6d2UsMjgsMTUsWzcxLDc3LDg0LDQ1LDQ4LDQ4LDU4LDQ4LDQ4XSk7aWYoYTw9MCl7YlszXT00MzthPS1hfWJbNF09Yls0XSsoKGEvNjB8MCkvMTB8MCkmQndlO2JbNV09Yls1XSsoYS82MHwwKSUxMCZCd2U7Yls3XT1iWzddKyhhJTYwLzEwfDApJkJ3ZTtiWzhdPWJbOF0rYSUxMCZCd2U7cmV0dXJuIEloYihiLDAsYi5sZW5ndGgpfVxuZnVuY3Rpb24gZm9iKGEpe3ZhciBiLGMsZCxlLGY7aWYoYT09bnVsbCl7cmV0dXJuIHZ2ZX1mPW5ldyBKeWIocHZlLCdbJywnXScpO2ZvcihjPWEsZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdOyFmLmE/KGYuYT1uZXcgZGliKGYuZCkpOlpoYihmLmEsZi5iKTtXaGIoZi5hLCcnK1pkYihiKSl9cmV0dXJuICFmLmE/Zi5jOmYuZS5sZW5ndGg9PTA/Zi5hLmE6Zi5hLmErKCcnK2YuZSl9XG5mdW5jdGlvbiB1SmIoYSxiKXt2YXIgYyxkLGU7ZT1sdmU7Zm9yKGQ9bmV3IEFuYihDSWIoYikpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwyMTgpO2lmKGMuZiYmIWEuY1tjLmNdKXthLmNbYy5jXT10cnVlO2U9JHduZC5NYXRoLm1pbihlLHVKYihhLG9JYihjLGIpKSl9fWEuaVtiLmRdPWEuajthLmdbYi5kXT0kd25kLk1hdGgubWluKGUsYS5qKyspO3JldHVybiBhLmdbYi5kXX1cbmZ1bmN0aW9uIHZOYihhLGIpe3ZhciBjLGQsZTtmb3IoZT1SRChSRChRYyhhLnIsYiksMjEpLDg3KS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDExNyk7ZC5lLmI9KGM9ZC5iLGMucGYoKHVtZCgpLEdsZCkpP2MuYWcoKT09KHFwZCgpLFlvZCk/LWMuTWYoKS5iLUtmYihVRChjLm9mKEdsZCkpKTpLZmIoVUQoYy5vZihHbGQpKSk6Yy5hZygpPT0ocXBkKCksWW9kKT8tYy5NZigpLmI6MCl9fVxuZnVuY3Rpb24gQ1NiKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2M9elJiKGEuZSk7Zj1pamQobmpkKGFqZCh5UmIoYS5lKSksYS5kKmEuYSxhLmMqYS5iKSwtMC41KTtiPWMuYS1mLmE7ZT1jLmItZi5iO2ZvcihoPTA7aDxhLmM7aCsrKXtkPWI7Zm9yKGc9MDtnPGEuZDtnKyspe0FSYihhLmUsbmV3IFVpZChkLGUsYS5hLGEuYikpJiZUUGIoYSxnLGgsZmFsc2UsdHJ1ZSk7ZCs9YS5hfWUrPWEuYn19XG5mdW5jdGlvbiBIMGMoYSl7dmFyIGIsYyxkLGUsZjtiPWEuYTtjPWEuYjtlPWEuYztkPW5ldyByamQoYy5lLmErYy5mLmEvMixjLmUuYitjLmYuYi8yKTtmPW5ldyByamQoZS5lLmErZS5mLmEvMixlLmUuYitlLmYuYi8yKTtQdWIoYixkLGIuYSxiLmEuYSk7UHViKGIsZixiLmMuYixiLmMpO3RXYyhkLFJEKGp1KGIsMSksOCksYS5iLmYpO3RXYyhmLFJEKGp1KGIsYi5iLTIpLDgpLGEuYy5mKX1cbmZ1bmN0aW9uIHREZChhKXt2YXIgYixjO2M9ZmFsc2U7aWYoWkQoYSwyMTEpKXtjPXRydWU7cmV0dXJuIFJEKGEsMjExKS5hfWlmKCFjKXtpZihaRChhLDI2Mykpe2I9UkQoYSwyNjMpLmElMT09MDtpZihiKXtjPXRydWU7cmV0dXJuIHNnYihPZmIoUkQoYSwyNjMpLmEpKX19fXRocm93IEFkYihuZXcgQ0RkKFwiSWQgbXVzdCBiZSBhIHN0cmluZyBvciBhbiBpbnRlZ2VyOiAnXCIrYStcIicuXCIpKX1cbmZ1bmN0aW9uIEtkZShhLGIpe3ZhciBjLGQsZSxmLGcsaDtmPW51bGw7Zm9yKGU9bmV3IFhkZSgoIWEuYSYmKGEuYT1uZXcgWmRlKGEpKSxhLmEpKTtVZGUoZSk7KXtjPVJEKHRJZChlKSw1OCk7ZD0oZz1jLkRoKCksaD0obVlkKGcpLGcubyksIWh8fCFjLlhoKGgpP251bGw6SGplKGlYZChoKSxjLk1oKGgpKSk7aWYoZCE9bnVsbCl7aWYobGhiKGQsYikpe2Y9YzticmVha319fXJldHVybiBmfVxuZnVuY3Rpb24gUncoYSxiLGMpe3ZhciBkLGUsZixnLGg7ZGsoYywnb2NjdXJyZW5jZXMnKTtpZihjPT0wKXtyZXR1cm4gaD1SRChYdihuZChhLmEpLGIpLDE2KSwhaD8wOmguZ2MoKX1nPVJEKFh2KG5kKGEuYSksYiksMTYpO2lmKCFnKXtyZXR1cm4gMH1mPWcuZ2MoKTtpZihjPj1mKXtnLiRiKCl9ZWxzZXtlPWcuS2MoKTtmb3IoZD0wO2Q8YztkKyspe2UuUGIoKTtlLlFiKCl9fXJldHVybiBmfVxuZnVuY3Rpb24gcXgoYSxiLGMpe3ZhciBkLGUsZixnO2RrKGMsJ29sZENvdW50Jyk7ZGsoMCwnbmV3Q291bnQnKTtkPVJEKFh2KG5kKGEuYSksYiksMTYpO2lmKCghZD8wOmQuZ2MoKSk9PWMpe2RrKDAsJ2NvdW50Jyk7ZT0oZj1SRChYdihuZChhLmEpLGIpLDE2KSwhZj8wOmYuZ2MoKSk7Zz0tZTtnPjA/SGgoKTpnPDAmJlJ3KGEsYiwtZyk7cmV0dXJuIHRydWV9ZWxzZXtyZXR1cm4gZmFsc2V9fVxuZnVuY3Rpb24gWUtiKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2g9MDtpZihhLmI9PTApe2c9YUxiKGEsdHJ1ZSk7Yj0wO2ZvcihkPWcsZT0wLGY9ZC5sZW5ndGg7ZTxmOysrZSl7Yz1kW2VdO2lmKGM+MCl7aCs9YzsrK2J9fWI+MSYmKGgrPWEuYyooYi0xKSl9ZWxzZXtoPVZ2YihTQ2IoSERiKENEYihfbmIoYS5hKSxuZXcgb0xiKSxuZXcgcUxiKSkpfXJldHVybiBoPjA/aCthLm4uZCthLm4uYTowfVxuZnVuY3Rpb24gWktiKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2g9MDtpZihhLmI9PTApe2g9VnZiKFNDYihIRGIoQ0RiKF9uYihhLmEpLG5ldyBrTGIpLG5ldyBtTGIpKSl9ZWxzZXtnPWJMYihhLHRydWUpO2I9MDtmb3IoZD1nLGU9MCxmPWQubGVuZ3RoO2U8ZjsrK2Upe2M9ZFtlXTtpZihjPjApe2grPWM7KytifX1iPjEmJihoKz1hLmMqKGItMSkpfXJldHVybiBoPjA/aCthLm4uYithLm4uYzowfVxuZnVuY3Rpb24gVU9jKGEpe3ZhciBiLGM7aWYoYS5jLmxlbmd0aCE9Mil7dGhyb3cgQWRiKG5ldyBkZ2IoJ09yZGVyIG9ubHkgYWxsb3dlZCBmb3IgdHdvIHBhdGhzLicpKX1iPSh0RmIoMCxhLmMubGVuZ3RoKSxSRChhLmNbMF0sMTgpKTtjPSh0RmIoMSxhLmMubGVuZ3RoKSxSRChhLmNbMV0sMTgpKTtpZihiLmQuaSE9Yy5jLmkpe2EuYy5sZW5ndGg9MDtaRWIoYS5jLGMpO1pFYihhLmMsYil9fVxuZnVuY3Rpb24gTzhjKGEsYixjKXt2YXIgZDt6eWQoYyxiLmcsYi5mKTtCeWQoYyxiLmksYi5qKTtmb3IoZD0wO2Q8KCFiLmEmJihiLmE9bmV3IEM1ZChKNCxiLDEwLDExKSksYi5hKS5pO2QrKyl7TzhjKGEsUkQoUUhkKCghYi5hJiYoYi5hPW5ldyBDNWQoSjQsYiwxMCwxMSkpLGIuYSksZCksMjcpLFJEKFFIZCgoIWMuYSYmKGMuYT1uZXcgQzVkKEo0LGMsMTAsMTEpKSxjLmEpLGQpLDI3KSl9fVxuZnVuY3Rpb24gRE1iKGEsYil7dmFyIGMsZCxlLGY7Zj1SRChWcmIoYS5iLGIpLDEyNyk7Yz1mLmE7Zm9yKGU9UkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSwxMTcpOyEhZC5jJiYoYy5hPSR3bmQuTWF0aC5tYXgoYy5hLFFLYihkLmMpKSl9aWYoYy5hPjApe3N3aXRjaChiLmcpe2Nhc2UgMjpmLm4uYz1hLnM7YnJlYWs7Y2FzZSA0OmYubi5iPWEuczt9fX1cbmZ1bmN0aW9uIEVUYihhLGIpe3ZhciBjLGQsZTtjPVJEKG1RYihiLCh5VmIoKSxsVmIpKSwxNykuYS1SRChtUWIoYSxsVmIpLDE3KS5hO2lmKGM9PTApe2Q9b2pkKGFqZChSRChtUWIoYSwoSlZiKCksRlZiKSksOCkpLFJEKG1RYihhLEdWYiksOCkpO2U9b2pkKGFqZChSRChtUWIoYixGVmIpLDgpKSxSRChtUWIoYixHVmIpLDgpKTtyZXR1cm4gUWZiKGQuYSpkLmIsZS5hKmUuYil9cmV0dXJuIGN9XG5mdW5jdGlvbiBKVmMoYSxiKXt2YXIgYyxkLGU7Yz1SRChtUWIoYiwoaF9jKCksWCRjKSksMTcpLmEtUkQobVFiKGEsWCRjKSwxNykuYTtpZihjPT0wKXtkPW9qZChhamQoUkQobVFiKGEsKHEkYygpLFJaYykpLDgpKSxSRChtUWIoYSxTWmMpLDgpKTtlPW9qZChhamQoUkQobVFiKGIsUlpjKSw4KSksUkQobVFiKGIsU1pjKSw4KSk7cmV0dXJuIFFmYihkLmEqZC5iLGUuYSplLmIpfXJldHVybiBjfVxuZnVuY3Rpb24gXzBiKGEpe3ZhciBiLGM7Yz1uZXcgYmliO2MuYSs9J2VfJztiPVMwYihhKTtiIT1udWxsJiYoYy5hKz0nJytiLGMpO2lmKCEhYS5jJiYhIWEuZCl7WmhiKChjLmErPScgJyxjKSxNM2IoYS5jKSk7WmhiKFloYigoYy5hKz0nWycsYyksYS5jLmkpLCddJyk7WmhiKChjLmErPVNBZSxjKSxNM2IoYS5kKSk7WmhiKFloYigoYy5hKz0nWycsYyksYS5kLmkpLCddJyl9cmV0dXJuIGMuYX1cbmZ1bmN0aW9uIFpWYyhhKXtzd2l0Y2goYS5nKXtjYXNlIDA6cmV0dXJuIG5ldyBOX2M7Y2FzZSAxOnJldHVybiBuZXcgVl9jO2Nhc2UgMjpyZXR1cm4gbmV3IHgwYztjYXNlIDM6cmV0dXJuIG5ldyBKMGM7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYignTm8gaW1wbGVtZW50YXRpb24gaXMgYXZhaWxhYmxlIGZvciB0aGUgbGF5b3V0IHBoYXNlICcrKGEuZiE9bnVsbD9hLmY6JycrYS5nKSkpO319XG5mdW5jdGlvbiBxc2QoYSxiLGMsZCxlKXt2YXIgZjtmPTA7c3dpdGNoKGUuZyl7Y2FzZSAxOmY9JHduZC5NYXRoLm1heCgwLGIuYithLmItKGMuYitkKSk7YnJlYWs7Y2FzZSAzOmY9JHduZC5NYXRoLm1heCgwLC1hLmItZCk7YnJlYWs7Y2FzZSAyOmY9JHduZC5NYXRoLm1heCgwLC1hLmEtZCk7YnJlYWs7Y2FzZSA0OmY9JHduZC5NYXRoLm1heCgwLGIuYSthLmEtKGMuYStkKSk7fXJldHVybiBmfVxuZnVuY3Rpb24gTURkKGEsYixjKXt2YXIgZCxlLGYsZyxoO2lmKGMpe2U9Yy5hLmxlbmd0aDtkPW5ldyB2dWUoZSk7Zm9yKGg9KGQuYi1kLmEpKmQuYzwwPyh1dWUoKSx0dWUpOm5ldyBSdWUoZCk7aC5PYigpOyl7Zz1SRChoLlBiKCksMTcpO2Y9eERkKGMsZy5hKTtrSWUgaW4gZi5hfHxsSWUgaW4gZi5hP3lFZChhLGYsYik6RUVkKGEsZixiKTtPR2QoUkQoV2piKGEuYix1RGQoZikpLDc0KSl9fX1cbmZ1bmN0aW9uIGpYZChhKXt2YXIgYixjO3N3aXRjaChhLmIpe2Nhc2UgLTE6e3JldHVybiB0cnVlfWNhc2UgMDp7Yz1hLnQ7aWYoYz4xfHxjPT0tMSl7YS5iPS0xO3JldHVybiB0cnVlfWVsc2V7Yj1XVmQoYSk7aWYoISFiJiYobmtlKCksYi5saygpPT1hS2UpKXthLmI9LTE7cmV0dXJuIHRydWV9ZWxzZXthLmI9MTtyZXR1cm4gZmFsc2V9fX1kZWZhdWx0OmNhc2UgMTp7cmV0dXJuIGZhbHNlfX19XG5mdW5jdGlvbiBTcWUoYSxiKXt2YXIgYyxkLGUsZjtNcWUoYSk7aWYoYS5jIT0wfHxhLmEhPTEyMyl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLGVKZSkpKSk7Zj1iPT0xMTI7ZD1hLmQ7Yz1waGIoYS5pLDEyNSxkKTtpZihjPDApdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxmSmUpKSkpO2U9emhiKGEuaSxkLGMpO2EuZD1jKzE7cmV0dXJuIGl0ZShlLGYsKGEuZSY1MTIpPT01MTIpfVxuZnVuY3Rpb24gWVRiKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2Q9YS5hLmMubGVuZ3RoO2lmKGQ+MCl7Zz1hLmMuZDtoPWEuZC5kO2U9aWpkKG9qZChuZXcgcmpkKGguYSxoLmIpLGcpLDEvKGQrMSkpO2Y9bmV3IHJqZChnLmEsZy5iKTtmb3IoYz1uZXcgQW5iKGEuYSk7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDI1MCk7Yi5kLmE9Zi5hK2UuYTtiLmQuYj1mLmIrZS5iOyRpZChmLGUpfX19XG5mdW5jdGlvbiBIWGQoYSxiKXt2YXIgYyxkLGU7aWYoIWIpe0pYZChhLG51bGwpO3pYZChhLG51bGwpfWVsc2UgaWYoKGIuaSY0KSE9MCl7ZD0nW10nO2ZvcihjPWIuYzs7Yz1jLmMpe2lmKChjLmkmNCk9PTApe2U9c2hiKChsZmIoYyksYy5vK2QpKTtKWGQoYSxlKTt6WGQoYSxlKTticmVha31kKz0nW10nfX1lbHNle2U9c2hiKChsZmIoYiksYi5vKSk7SlhkKGEsZSk7elhkKGEsZSl9YS5obChiKX1cbmZ1bmN0aW9uIEJnZShhLGIsYyxkLGUpe3ZhciBmLGcsaCxpO2k9QWdlKGEsUkQoZSw1OCkpO2lmKGRFKGkpIT09ZEUoZSkpe2g9UkQoYS5nW2NdLDc2KTtmPW9rZShiLGkpO01IZChhLGMsVGdlKGEsYyxmKSk7aWYoTXZkKGEuZSkpe2c9ZmdlKGEsOSxmLkxrKCksZSxpLGQsZmFsc2UpO29LZChnLG5ldyBQM2QoYS5lLDksYS5jLGgsZixkLGZhbHNlKSk7cEtkKGcpfXJldHVybiBpfXJldHVybiBlfVxuZnVuY3Rpb24gQUdjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7ZD1SRChRYyhhLmMsYiksMTUpO2U9UkQoUWMoYS5jLGMpLDE1KTtmPWQuZmQoZC5nYygpKTtnPWUuZmQoZS5nYygpKTt3aGlsZShmLlNiKCkmJmcuU2IoKSl7aD1SRChmLlViKCksMTcpO2k9UkQoZy5VYigpLDE3KTtpZihoIT1pKXtyZXR1cm4gaGdiKGguYSxpLmEpfX1yZXR1cm4gIWYuT2IoKSYmIWcuT2IoKT8wOmYuT2IoKT8xOi0xfVxuZnVuY3Rpb24gRkhjKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2g9ZXYoYS5jLmxlbmd0aCk7Zm9yKGU9bmV3IEFuYihhKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTApO2c9bmV3IF9zYjtmPWEzYihkKTtmb3IoYz1uZXcgaXMoTXIoZi5hLktjKCksbmV3IGlyKSk7Z3MoYyk7KXtiPVJEKGhzKGMpLDE4KTtiLmMuaT09Yi5kLml8fFlzYihnLGIuZC5pKX1aRWIoaC5jLGcpfXJldHVybiBofVxuZnVuY3Rpb24geGhkKGMsZCl7dmFyIGUsZixnO3RyeXtnPXhzKGMuYSxkKTtyZXR1cm4gZ31jYXRjaChiKXtiPXpkYihiKTtpZihaRChiLDMzKSl7dHJ5e2Y9T2ViKGQscXdlLGx2ZSk7ZT1tZmIoYy5hKTtpZihmPj0wJiZmPGUubGVuZ3RoKXtyZXR1cm4gZVtmXX19Y2F0Y2goYSl7YT16ZGIoYSk7aWYoIVpEKGEsMTMwKSl0aHJvdyBBZGIoYSl9cmV0dXJuIG51bGx9ZWxzZSB0aHJvdyBBZGIoYil9fVxuZnVuY3Rpb24gUnZkKGEsYil7dmFyIGMsZCxlO2U9RWVlKChsa2UoKSxqa2UpLGEuRGgoKSxiKTtpZihlKXtua2UoKTtSRChlLDY5KS54aygpfHwoZT16ZmUoUWVlKGprZSxlKSkpO2Q9KGM9YS5JaChlKSxSRChjPj0wP2EuTGgoYyx0cnVlLHRydWUpOlF2ZChhLGUsdHJ1ZSksMTYwKSk7cmV0dXJuIFJEKGQsMjIwKS5XbChiKX1lbHNle3Rocm93IEFkYihuZXcgYWdiKEtIZStiLnhlKCkrTkhlKSl9fVxuZnVuY3Rpb24gX2FlKCl7VGFlKCk7dmFyIGE7aWYoU2FlKXJldHVybiBSRChONWQoKFlTZCgpLFhTZCksQUtlKSwyMDM4KTtSUmQoVUssbmV3IGhkZSk7YWJlKCk7YT1SRChaRChYamIoKFlTZCgpLFhTZCksQUtlKSw1NjApP1hqYihYU2QsQUtlKTpuZXcgJGFlLDU2MCk7U2FlPXRydWU7WWFlKGEpO1phZShhKTtaamIoKGhUZCgpLGdUZCksYSxuZXcgY2JlKTskamIoWFNkLEFLZSxhKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIFZmZShhLGIpe3ZhciBjLGQsZSxmO2Euaj0tMTtpZihNdmQoYS5lKSl7Yz1hLmk7Zj1hLmkhPTA7TEhkKGEsYik7ZD1uZXcgUDNkKGEuZSwzLGEuYyxudWxsLGIsYyxmKTtlPWIuemwoYS5lLGEuYyxudWxsKTtlPUhnZShhLGIsZSk7aWYoIWUpe3F2ZChhLmUsZCl9ZWxzZXtlLm5qKGQpO2Uub2ooKX19ZWxzZXtMSGQoYSxiKTtlPWIuemwoYS5lLGEuYyxudWxsKTshIWUmJmUub2ooKX19XG5mdW5jdGlvbiBIQShhLGIpe3ZhciBjLGQsZTtlPTA7ZD1iWzBdO2lmKGQ+PWEubGVuZ3RoKXtyZXR1cm4gLTF9Yz0oQkZiKGQsYS5sZW5ndGgpLGEuY2hhckNvZGVBdChkKSk7d2hpbGUoYz49NDgmJmM8PTU3KXtlPWUqMTArKGMtNDgpOysrZDtpZihkPj1hLmxlbmd0aCl7YnJlYWt9Yz0oQkZiKGQsYS5sZW5ndGgpLGEuY2hhckNvZGVBdChkKSl9ZD5iWzBdPyhiWzBdPWQpOihlPS0xKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIG1QYihhKXt2YXIgYixjLGQsZSxmO2U9UkQoYS5hLDE3KS5hO2Y9UkQoYS5iLDE3KS5hO2M9ZTtkPWY7Yj0kd25kLk1hdGgubWF4KCR3bmQuTWF0aC5hYnMoZSksJHduZC5NYXRoLmFicyhmKSk7aWYoZTw9MCYmZT09Zil7Yz0wO2Q9Zi0xfWVsc2V7aWYoZT09LWImJmYhPWIpe2M9ZjtkPWU7Zj49MCYmKytjfWVsc2V7Yz0tZjtkPWV9fXJldHVybiBuZXcgUHRkKHNnYihjKSxzZ2IoZCkpfVxuZnVuY3Rpb24gWVBiKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksajtmb3IoZT0wO2U8Yi5vO2UrKyl7Zj1lLWIuaitjO2ZvcihnPTA7ZzxiLnA7ZysrKXtoPWctYi5rK2Q7aWYoKGk9ZixqPWgsaSs9YS5qLGorPWEuayxpPj0wJiZqPj0wJiZpPGEubyYmajxhLnApJiYoIVFQYihiLGUsZykmJiRQYihhLGYsaCl8fFBQYihiLGUsZykmJiFfUGIoYSxmLGgpKSl7cmV0dXJuIHRydWV9fX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBqU2MoYSxiLGMpe3ZhciBkLGUsZixnLGg7Zz1hLmM7aD1hLmQ7Zj14amQoY0QoV0MobDMsMSksTnZlLDgsMCxbZy5pLm4sZy5uLGcuYV0pKS5iO2U9KGYreGpkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW2guaS5uLGgubixoLmFdKSkuYikvMjtkPW51bGw7Zy5qPT0ocXBkKCksWG9kKT8oZD1uZXcgcmpkKGIrZy5pLmMuYy5hK2MsZSkpOihkPW5ldyByamQoYi1jLGUpKTtodShhLmEsMCxkKX1cbmZ1bmN0aW9uIG96ZChhKXt2YXIgYixjLGQsZTtiPW51bGw7Zm9yKGQ9RmwoQWwoY0QoV0MoY0osMSkscnZlLDIwLDAsWyghYS5iJiYoYS5iPW5ldyBZaWUoRTQsYSw0LDcpKSxhLmIpLCghYS5jJiYoYS5jPW5ldyBZaWUoRTQsYSw1LDgpKSxhLmMpXSkpKTtncyhkKTspe2M9UkQoaHMoZCksODQpO2U9QUdkKGMpO2lmKCFiKXtiPWV9ZWxzZSBpZihiIT1lKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfVxuZnVuY3Rpb24gU0hkKGEsYixjKXt2YXIgZDsrK2EuajtpZihiPj1hLmkpdGhyb3cgQWRiKG5ldyB2ZWIoTUllK2IrTkllK2EuaSkpO2lmKGM+PWEuaSl0aHJvdyBBZGIobmV3IHZlYihPSWUrYytOSWUrYS5pKSk7ZD1hLmdbY107aWYoYiE9Yyl7YjxjP2hpYihhLmcsYixhLmcsYisxLGMtYik6aGliKGEuZyxjKzEsYS5nLGMsYi1jKTtiRChhLmcsYixkKTthLlBpKGIsZCxjKTthLk5pKCl9cmV0dXJuIGR9XG5mdW5jdGlvbiBSYyhhLGIsYyl7dmFyIGQ7ZD1SRChhLmMueGMoYiksMTYpO2lmKCFkKXtkPWEuaWMoYik7aWYoZC5GYyhjKSl7KythLmQ7YS5jLnpjKGIsZCk7cmV0dXJuIHRydWV9ZWxzZXt0aHJvdyBBZGIobmV3IERlYignTmV3IENvbGxlY3Rpb24gdmlvbGF0ZWQgdGhlIENvbGxlY3Rpb24gc3BlYycpKX19ZWxzZSBpZihkLkZjKGMpKXsrK2EuZDtyZXR1cm4gdHJ1ZX1lbHNle3JldHVybiBmYWxzZX19XG5mdW5jdGlvbiBuZ2IoYSl7dmFyIGIsYyxkO2lmKGE8MCl7cmV0dXJuIDB9ZWxzZSBpZihhPT0wKXtyZXR1cm4gMzJ9ZWxzZXtkPS0oYT4+MTYpO2I9ZD4+MTYmMTY7Yz0xNi1iO2E9YT4+YjtkPWEtMjU2O2I9ZD4+MTYmODtjKz1iO2E8PD1iO2Q9YS1xeGU7Yj1kPj4xNiY0O2MrPWI7YTw8PWI7ZD1hLU92ZTtiPWQ+PjE2JjI7Yys9YjthPDw9YjtkPWE+PjE0O2I9ZCZ+KGQ+PjEpO3JldHVybiBjKzItYn19XG5mdW5jdGlvbiBSU2IoYSl7SFNiKCk7dmFyIGIsYyxkLGU7R1NiPW5ldyBibmI7RlNiPW5ldyBUc2I7RVNiPW5ldyBibmI7Yj0oIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpO0pTYihiKTtmb3IoZT1uZXcgZE1kKGIpO2UuZSE9ZS5pLmdjKCk7KXtkPVJEKGJNZChlKSwyNyk7aWYoV21iKEdTYixkLDApPT0tMSl7Yz1uZXcgYm5iO1JtYihFU2IsYyk7S1NiKGQsYyl9fXJldHVybiBFU2J9XG5mdW5jdGlvbiBzVGIoYSxiLGMpe3ZhciBkLGUsZixnO2EuYT1jLmIuZDtpZihaRChiLDMyNikpe2U9SUdkKFJEKGIsNzQpLGZhbHNlLGZhbHNlKTtmPXNzZChlKTtkPW5ldyB3VGIoYSk7eGdiKGYsZCk7bHNkKGYsZSk7Yi5vZigodW1kKCksY2xkKSkhPW51bGwmJnhnYihSRChiLm9mKGNsZCksNzUpLGQpfWVsc2V7Zz1SRChiLDQyMik7Zy5yaChnLm5oKCkrYS5hLmEpO2cuc2goZy5vaCgpK2EuYS5iKX19XG5mdW5jdGlvbiBoV2MoYSxiKXt2YXIgYyxkLGU7ZT1uZXcgYm5iO2ZvcihkPVN1YihiLmEsMCk7ZC5iIT1kLmQuYzspe2M9UkQoZXZiKGQpLDY1KTtjLmMuZz09YS5nJiZkRShtUWIoYy5iLChoX2MoKSxmX2MpKSkhPT1kRShtUWIoYy5jLGZfYykpJiYheURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGUsMTYpKSxuZXcgSVdjKGMpKSYmKFpFYihlLmMsYyksdHJ1ZSl9X21iKGUsbmV3IEtXYyk7cmV0dXJuIGV9XG5mdW5jdGlvbiBmVWIoYSxiLGMpe3ZhciBkLGUsZixnO2lmKFpEKGIsMTUzKSYmWkQoYywxNTMpKXtmPVJEKGIsMTUzKTtnPVJEKGMsMTUzKTtyZXR1cm4gYS5hW2YuYV1bZy5hXSthLmFbZy5hXVtmLmFdfWVsc2UgaWYoWkQoYiwyNTApJiZaRChjLDI1MCkpe2Q9UkQoYiwyNTApO2U9UkQoYywyNTApO2lmKGQuYT09ZS5hKXtyZXR1cm4gUkQobVFiKGUuYSwoeVZiKCksbFZiKSksMTcpLmF9fXJldHVybiAwfVxuZnVuY3Rpb24gcTliKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksajtqPUtmYihVRChtUWIoYiwoeUNjKCksZkNjKSkpKTtpPWFbMF0ubi5hK2FbMF0uby5hK2FbMF0uZC5jK2o7Zm9yKGg9MTtoPGEubGVuZ3RoO2grKyl7ZD1hW2hdLm47ZT1hW2hdLm87Yz1hW2hdLmQ7Zj1kLmEtYy5iLWk7ZjwwJiYoZC5hLT1mKTtnPWIuZjtnLmE9JHduZC5NYXRoLm1heChnLmEsZC5hK2UuYSk7aT1kLmErZS5hK2MuYytqfX1cbmZ1bmN0aW9uIE5hZChhLGIpe3ZhciBjLGQsZSxmLGcsaDtkPVJEKFJEKFdqYihhLmcsYi5hKSw0MikuYSw2OCk7ZT1SRChSRChXamIoYS5nLGIuYiksNDIpLmEsNjgpO2Y9ZC5iO2c9ZS5iO2M9S2lkKGYsZyk7aWYoYz49MCl7cmV0dXJuIGN9aD1lamQob2pkKG5ldyByamQoZy5jK2cuYi8yLGcuZCtnLmEvMiksbmV3IHJqZChmLmMrZi5iLzIsZi5kK2YuYS8yKSkpO3JldHVybiAtKG9SYihmLGcpLTEpKmh9XG5mdW5jdGlvbiB5c2QoYSxiLGMpe3ZhciBkO0ZEYihuZXcgU0RiKG51bGwsKCFjLmEmJihjLmE9bmV3IEM1ZChGNCxjLDYsNikpLG5ldyBTd2IoYy5hLDE2KSkpLG5ldyBRc2QoYSxiKSk7RkRiKG5ldyBTRGIobnVsbCwoIWMubiYmKGMubj1uZXcgQzVkKEk0LGMsMSw3KSksbmV3IFN3YihjLm4sMTYpKSksbmV3IFNzZChhLGIpKTtkPVJEKEd4ZChjLCh1bWQoKSxjbGQpKSw3NSk7ISFkJiZCamQoZCxhLGIpfVxuZnVuY3Rpb24gUXZkKGEsYixjKXt2YXIgZCxlLGY7Zj1FZWUoKGxrZSgpLGprZSksYS5EaCgpLGIpO2lmKGYpe25rZSgpO1JEKGYsNjkpLnhrKCl8fChmPXpmZShRZWUoamtlLGYpKSk7ZT0oZD1hLkloKGYpLFJEKGQ+PTA/YS5MaChkLHRydWUsdHJ1ZSk6UXZkKGEsZix0cnVlKSwxNjApKTtyZXR1cm4gUkQoZSwyMjApLlNsKGIsYyl9ZWxzZXt0aHJvdyBBZGIobmV3IGFnYihLSGUrYi54ZSgpK05IZSkpfX1cbmZ1bmN0aW9uIFdOZChhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2U9YS5kW2JdO2lmKGUpe2Y9ZS5nO2k9ZS5pO2lmKGQhPW51bGwpe2ZvcihoPTA7aDxpOysraCl7Zz1SRChmW2hdLDEzNik7aWYoZy5CaSgpPT1jJiZwYihkLGcubGQoKSkpe3JldHVybiBnfX19ZWxzZXtmb3IoaD0wO2g8aTsrK2gpe2c9UkQoZltoXSwxMzYpO2lmKGRFKGcubGQoKSk9PT1kRShkKSl7cmV0dXJuIGd9fX19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBOZWUoYSxiKXt2YXIgYyxkLGUsZixnO2Q9KCFiLnMmJihiLnM9bmV3IEM1ZCh5NyxiLDIxLDE3KSksYi5zKTtmPW51bGw7Zm9yKGU9MCxnPWQuaTtlPGc7KytlKXtjPVJEKFFIZChkLGUpLDE3OSk7c3dpdGNoKHlmZShRZWUoYSxjKSkpe2Nhc2UgNDpjYXNlIDU6Y2FzZSA2OnshZiYmKGY9bmV3IGJuYik7WkViKGYuYyxjKTticmVha319fXJldHVybiAhZj8oeW9iKCkseW9iKCksdm9iKTpmfVxuZnVuY3Rpb24gWWliKGEsYil7dmFyIGM7aWYoYjwwKXt0aHJvdyBBZGIobmV3IHRlYignTmVnYXRpdmUgZXhwb25lbnQnKSl9aWYoYj09MCl7cmV0dXJuIEtpYn1lbHNlIGlmKGI9PTF8fFNpYihhLEtpYil8fFNpYihhLE9pYikpe3JldHVybiBhfWlmKCFfaWIoYSwwKSl7Yz0xO3doaWxlKCFfaWIoYSxjKSl7KytjfXJldHVybiBXaWIoa2piKGMqYiksWWliKCRpYihhLGMpLGIpKX1yZXR1cm4gUmpiKGEsYil9XG5mdW5jdGlvbiBKbmIoYSxiKXt2YXIgYyxkLGU7aWYoZEUoYSk9PT1kRShiKSl7cmV0dXJuIHRydWV9aWYoYT09bnVsbHx8Yj09bnVsbCl7cmV0dXJuIGZhbHNlfWlmKGEubGVuZ3RoIT1iLmxlbmd0aCl7cmV0dXJuIGZhbHNlfWZvcihjPTA7YzxhLmxlbmd0aDsrK2Mpe2Q9YVtjXTtlPWJbY107aWYoIShkRShkKT09PWRFKGUpfHxkIT1udWxsJiZwYihkLGUpKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIEVZYihhKXtwWWIoKTt2YXIgYixjLGQ7dGhpcy5iPW9ZYjt0aGlzLmM9KENtZCgpLEFtZCk7dGhpcy5mPShrWWIoKSxqWWIpO3RoaXMuYT1hO0JZYih0aGlzLG5ldyBGWWIpO3VZYih0aGlzKTtmb3IoZD1uZXcgQW5iKGEuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDg2KTtpZighYy5kKXtiPW5ldyBpWWIoY0QoV0MoYlEsMSkscnZlLDg2LDAsW2NdKSk7Um1iKGEuYSxiKX19fVxuZnVuY3Rpb24gVTZiKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7aWYoIWF8fGEuYy5sZW5ndGg9PTApe3JldHVybiBudWxsfWY9bmV3IFZLYihiLCFjKTtmb3IoZT1uZXcgQW5iKGEpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSw3Mik7TEtiKGYsKGkxYigpLG5ldyBEMWIoZCkpKX1nPWYuaTtnLmE9KGk9Zi5uLGYuZS5iK2kuZCtpLmEpO2cuYj0oaD1mLm4sZi5lLmEraC5iK2guYyk7cmV0dXJuIGZ9XG5mdW5jdGlvbiBkOWIoYSl7dmFyIGIsYyxkLGUsZixnLGg7aD10MmIoYS5hKTtabmIoaCxuZXcgaTliKTtjPW51bGw7Zm9yKGU9aCxmPTAsZz1lLmxlbmd0aDtmPGc7KytmKXtkPWVbZl07aWYoZC5rIT0ocjNiKCksbTNiKSl7YnJlYWt9Yj1SRChtUWIoZCwoWXdjKCksaHdjKSksNjQpO2lmKGIhPShxcGQoKSxwcGQpJiZiIT1Yb2Qpe2NvbnRpbnVlfSEhYyYmUkQobVFiKGMscXdjKSwxNSkuRmMoZCk7Yz1kfX1cbmZ1bmN0aW9uIHdUYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGo7aT0odEZiKGIsYS5jLmxlbmd0aCksUkQoYS5jW2JdLDMzOSkpO1htYihhLGIpO2lmKGkuYi8yPj1jKXtkPWI7aj0oaS5jK2kuYSkvMjtnPWotYztpZihpLmM8PWotYyl7ZT1uZXcgQlRjKGkuYyxnKTtRbWIoYSxkKyssZSl9aD1qK2M7aWYoaDw9aS5hKXtmPW5ldyBCVGMoaCxpLmEpO3dGYihkLGEuYy5sZW5ndGgpO1hFYihhLmMsZCxmKX19fVxuZnVuY3Rpb24gbVpjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7aWYoIWIuZGMoKSl7ZT1uZXcgWXViO2ZvcihpPWIuS2MoKTtpLk9iKCk7KXtoPVJEKGkuUGIoKSw0MCk7WmpiKGEuYSxzZ2IoaC5nKSxzZ2IoYykpO2ZvcihnPShkPVN1YigobmV3IGRYYyhoKSkuYS5kLDApLG5ldyBnWGMoZCkpO2R2YihnLmEpOyl7Zj1SRChldmIoZy5hKSw2NSkuYztQdWIoZSxmLGUuYy5iLGUuYyl9fW1aYyhhLGUsYysxKX19XG5mdW5jdGlvbiBVZGUoYSl7dmFyIGI7aWYoIWEuYyYmYS5nPT1udWxsKXthLmQ9YS5iaihhLmYpO1dHZChhLGEuZCk7Yj1hLmR9ZWxzZXtpZihhLmc9PW51bGwpe3JldHVybiB0cnVlfWVsc2UgaWYoYS5pPT0wKXtyZXR1cm4gZmFsc2V9ZWxzZXtiPVJEKGEuZ1thLmktMV0sNTEpfX1pZihiPT1hLmImJm51bGwuVm0+PW51bGwuVW0oKSl7dElkKGEpO3JldHVybiBVZGUoYSl9ZWxzZXtyZXR1cm4gYi5PYigpfX1cbmZ1bmN0aW9uIHRfYihhKXt0aGlzLmE9YTtpZihhLmMuaS5rPT0ocjNiKCksbTNiKSl7dGhpcy5jPWEuYzt0aGlzLmQ9UkQobVFiKGEuYy5pLChZd2MoKSxod2MpKSw2NCl9ZWxzZSBpZihhLmQuaS5rPT1tM2Ipe3RoaXMuYz1hLmQ7dGhpcy5kPVJEKG1RYihhLmQuaSwoWXdjKCksaHdjKSksNjQpfWVsc2V7dGhyb3cgQWRiKG5ldyBhZ2IoJ0VkZ2UgJythKycgaXMgbm90IGFuIGV4dGVybmFsIGVkZ2UuJykpfX1cbmZ1bmN0aW9uIE8xZChhLGIpe3ZhciBjLGQsZTtlPWEuYjthLmI9YjsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDMsZSxhLmIpKTtpZighYil7UEFkKGEsbnVsbCk7UTFkKGEsMCk7UDFkKGEsbnVsbCl9ZWxzZSBpZihiIT1hKXtQQWQoYSxiLnpiKTtRMWQoYSxiLmQpO2M9KGQ9Yi5jLGQ9PW51bGw/Yi56YjpkKTtQMWQoYSxjPT1udWxsfHxsaGIoYyxiLnpiKT9udWxsOmMpfX1cbmZ1bmN0aW9uIGhqKGEsYil7dmFyIGM7dGhpcy5lPSh0bSgpLFFiKGEpLHRtKCksem0oYSkpO3RoaXMuYz0oUWIoYiksem0oYikpO0xiKHRoaXMuZS5SZCgpLmRjKCk9PXRoaXMuYy5SZCgpLmRjKCkpO3RoaXMuZD1Vdih0aGlzLmUpO3RoaXMuYj1Vdih0aGlzLmMpO2M9WUMoakosW052ZSxydmVdLFs1LDFdLDUsW3RoaXMuZS5SZCgpLmdjKCksdGhpcy5jLlJkKCkuZ2MoKV0sMik7dGhpcy5hPWM7WmkodGhpcyl9XG5mdW5jdGlvbiBMeihiKXt2YXIgYz0oIUp6JiYoSno9TXooKSksSnopO3ZhciBkPWIucmVwbGFjZSgvW1xceDAwLVxceDFmXFx4YWRcXHUwNjAwLVxcdTA2MDNcXHUwNmRkXFx1MDcwZlxcdTE3YjRcXHUxN2I1XFx1MjAwYi1cXHUyMDBmXFx1MjAyOC1cXHUyMDJlXFx1MjA2MC1cXHUyMDY0XFx1MjA2YS1cXHUyMDZmXFx1ZmVmZlxcdWZmZjktXFx1ZmZmYlwiXFxcXF0vZyxmdW5jdGlvbihhKXtyZXR1cm4gS3ooYSxjKX0pO3JldHVybiAnXCInK2QrJ1wiJ31cbmZ1bmN0aW9uIFZFYihhLGIsYyxkLGUsZil7dmFyIGcsaCxpLGosaztpZihlPT0wKXtyZXR1cm59aWYoZEUoYSk9PT1kRShjKSl7YT1hLnNsaWNlKGIsYitlKTtiPTB9aT1jO2ZvcihoPWIsaj1iK2U7aDxqOyl7Zz0kd25kLk1hdGgubWluKGgrMTAwMDAsaik7ZT1nLWg7az1hLnNsaWNlKGgsZyk7ay5zcGxpY2UoMCwwLGQsZj9lOjApO0FycmF5LnByb3RvdHlwZS5zcGxpY2UuYXBwbHkoaSxrKTtoPWc7ZCs9ZX19XG5mdW5jdGlvbiBWR2IoYSl7RkdiKCk7dmFyIGIsYzt0aGlzLmI9Q0diO3RoaXMuYz1FR2I7dGhpcy5nPSh3R2IoKSx2R2IpO3RoaXMuZD0oQ21kKCksQW1kKTt0aGlzLmE9YTtJR2IodGhpcyk7Zm9yKGM9bmV3IEFuYihhLmIpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSw2MCk7IWIuYSYmZ0diKGlHYihuZXcgakdiLGNEKFdDKGhOLDEpLHJ2ZSw2MCwwLFtiXSkpLGEpO2IuZT1uZXcgVmlkKGIuZCl9fVxuZnVuY3Rpb24geVRiKGEpe3ZhciBiLGMsZCxlLGYsZztlPWEuZS5jLmxlbmd0aDtkPSRDKFFLLEl6ZSwxNSxlLDAsMSk7Zm9yKGc9bmV3IEFuYihhLmUpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxNTMpO2RbZi5hXT1uZXcgWXVifWZvcihjPW5ldyBBbmIoYS5jKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMjkwKTtkW2IuYy5hXS5GYyhiKTtkW2IuZC5hXS5GYyhiKX1yZXR1cm4gZH1cbmZ1bmN0aW9uIE9NZChhLGIpe3ZhciBjLGQsZSxmLGc7Yz1SRChZd2QoYS5hLDQpLDEyOSk7Zz1jPT1udWxsPzA6Yy5sZW5ndGg7aWYoYj49Zyl0aHJvdyBBZGIobmV3IGFNZChiLGcpKTtlPWNbYl07aWYoZz09MSl7ZD1udWxsfWVsc2V7ZD0kQyhkNixJSmUsNDI0LGctMSwwLDEpO2hpYihjLDAsZCwwLGIpO2Y9Zy1iLTE7Zj4wJiZoaWIoYyxiKzEsZCxiLGYpfUJkZShhLGQpO0FkZShhLGIsZSk7cmV0dXJuIGV9XG5mdW5jdGlvbiBsM2QoYSl7dmFyIGIsYztpZihhLmYpe3doaWxlKGEubjxhLm8pe2I9UkQoIWEuaj9hLmsuWGIoYS5uKTphLmouJGkoYS5uKSw3Nik7Yz1iLkxrKCk7aWYoWkQoYywxMDIpJiYoUkQoYywxOSkuQmImUUhlKSE9MCYmKCFhLmV8fGMucGsoKSE9QzR8fGMuTGooKSE9MCkmJmIubWQoKSE9bnVsbCl7cmV0dXJuIHRydWV9ZWxzZXsrK2Eubn19cmV0dXJuIGZhbHNlfWVsc2V7cmV0dXJuIGEubjxhLm99fVxuZnVuY3Rpb24gTGxlKCl7TGxlPWdlYjtKbGU9UkQoUUhkKHhZZCgoUWxlKCksUGxlKS5xYiksNiksMzUpO0dsZT1SRChRSGQoeFlkKFBsZS5xYiksMyksMzUpO0hsZT1SRChRSGQoeFlkKFBsZS5xYiksNCksMzUpO0lsZT1SRChRSGQoeFlkKFBsZS5xYiksNSksMTkpO3ZXZChKbGUpO3ZXZChHbGUpO3ZXZChIbGUpO3ZXZChJbGUpO0tsZT1uZXcgbW9iKGNEKFdDKHk3LDEpLGxLZSwxNzksMCxbSmxlLEdsZV0pKX1cbmZ1bmN0aW9uIHJNYihhLGIpe3ZhciBjO3RoaXMuZD1uZXcgUDJiO3RoaXMuYj1iO3RoaXMuZT1uZXcgc2pkKGIuTGYoKSk7Yz1hLnUuSGMoKFBvZCgpLE1vZCkpO2EudS5IYyhMb2QpP2EuRj8odGhpcy5hPWMmJiFiLmJnKCkpOih0aGlzLmE9dHJ1ZSk6YS51LkhjKE5vZCk/Yz8odGhpcy5hPSEoYi5VZigpLktjKCkuT2IoKXx8Yi5XZigpLktjKCkuT2IoKSkpOih0aGlzLmE9ZmFsc2UpOih0aGlzLmE9ZmFsc2UpfVxuZnVuY3Rpb24gek5iKGEsYil7dmFyIGMsZCxlLGY7Yz1hLm8uYTtmb3IoZj1SRChSRChRYyhhLnIsYiksMjEpLDg3KS5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDExNyk7ZS5lLmE9KGQ9ZS5iLGQucGYoKHVtZCgpLEdsZCkpP2QuYWcoKT09KHFwZCgpLHBwZCk/LWQuTWYoKS5hLUtmYihVRChkLm9mKEdsZCkpKTpjK0tmYihVRChkLm9mKEdsZCkpKTpkLmFnKCk9PShxcGQoKSxwcGQpPy1kLk1mKCkuYTpjKX19XG5mdW5jdGlvbiAkNGIoYSxiKXt2YXIgYyxkLGUsZjtjPVJEKG1RYihhLCh5Q2MoKSxyQWMpKSw4OCk7Zj1SRChHeGQoYixHQmMpLDY0KTtlPVJEKG1RYihhLEJCYyksMTAxKTtpZihlIT0oQm9kKCksem9kKSYmZSE9QW9kKXtpZihmPT0ocXBkKCksb3BkKSl7Zj1vc2QoYixjKTtmPT1vcGQmJihmPXZwZChjKSl9fWVsc2V7ZD1XNGIoYik7ZD4wPyhmPXZwZChjKSk6KGY9c3BkKHZwZChjKSkpfUl4ZChiLEdCYyxmKX1cbmZ1bmN0aW9uIGFnYyhhLGIpe3ZhciBjO2IuVWcoJ1BhcnRpdGlvbiBwcmVwcm9jZXNzaW5nJywxKTtjPVJEKHpEYihDRGIoRURiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmEsMTYpKSxuZXcgZWdjKSxuZXcgZ2djKSxuZXcgaWdjKSx0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFsoeEJiKCksdkJiKV0pKSksMTUpO0ZEYihjLk9jKCksbmV3IGtnYyk7Yi5WZygpfVxuZnVuY3Rpb24gVW9jKGEsYil7dmFyIGMsZCxlLGYsZztnPWEuajtiLmEhPWIuYiYmX21iKGcsbmV3IHlwYyk7ZT1nLmMubGVuZ3RoLzJ8MDtmb3IoZD0wO2Q8ZTtkKyspe2Y9KHRGYihkLGcuYy5sZW5ndGgpLFJEKGcuY1tkXSwxMTMpKTtmLmMmJlEzYihmLmQsYi5hKX1mb3IoYz1lO2M8Zy5jLmxlbmd0aDtjKyspe2Y9KHRGYihjLGcuYy5sZW5ndGgpLFJEKGcuY1tjXSwxMTMpKTtmLmMmJlEzYihmLmQsYi5iKX19XG5mdW5jdGlvbiByTGMoYSxiLGMpe3ZhciBkLGUsZjtkPWEuY1tiLmMucF1bYi5wXTtlPWEuY1tjLmMucF1bYy5wXTtpZihkLmEhPW51bGwmJmUuYSE9bnVsbCl7Zj1KZmIoZC5hLGUuYSk7ZjwwP3VMYyhhLGIsYyk6Zj4wJiZ1TGMoYSxjLGIpO3JldHVybiBmfWVsc2UgaWYoZC5hIT1udWxsKXt1TGMoYSxiLGMpO3JldHVybiAtMX1lbHNlIGlmKGUuYSE9bnVsbCl7dUxjKGEsYyxiKTtyZXR1cm4gMX1yZXR1cm4gMH1cbmZ1bmN0aW9uIEVWYyhhLGIpe3ZhciBjLGQsZSxmLGc7ZT1iLmIuYjthLmE9JEMoUUssSXplLDE1LGUsMCwxKTthLmI9JEMoeGRiLEh5ZSwyOCxlLDE2LDEpO2ZvcihnPVN1YihiLmIsMCk7Zy5iIT1nLmQuYzspe2Y9UkQoZXZiKGcpLDQwKTthLmFbZi5nXT1uZXcgWXVifWZvcihkPVN1YihiLmEsMCk7ZC5iIT1kLmQuYzspe2M9UkQoZXZiKGQpLDY1KTthLmFbYy5iLmddLkZjKGMpO2EuYVtjLmMuZ10uRmMoYyl9fVxuZnVuY3Rpb24gU0pkKGEsYil7dmFyIGMsZCxlLGY7aWYoYS5QaigpKXtjPWEuRWooKTtmPWEuUWooKTsrK2EuajthLnFqKGMsYS5aaShjLGIpKTtkPWEuSWooMyxudWxsLGIsYyxmKTtpZihhLk1qKCkpe2U9YS5OaihiLG51bGwpO2lmKCFlKXthLkpqKGQpfWVsc2V7ZS5uaihkKTtlLm9qKCl9fWVsc2V7YS5KaihkKX19ZWxzZXtfSWQoYSxiKTtpZihhLk1qKCkpe2U9YS5OaihiLG51bGwpOyEhZSYmZS5vaigpfX19XG5mdW5jdGlvbiBvTGQoYSxiLGMpe3ZhciBkLGUsZjtpZihhLlBqKCkpe2Y9YS5RaigpO0tIZChhLGIsYyk7ZD1hLklqKDMsbnVsbCxjLGIsZik7aWYoYS5NaigpKXtlPWEuTmooYyxudWxsKTthLlRqKCkmJihlPWEuVWooYyxlKSk7aWYoIWUpe2EuSmooZCl9ZWxzZXtlLm5qKGQpO2Uub2ooKX19ZWxzZXthLkpqKGQpfX1lbHNle0tIZChhLGIsYyk7aWYoYS5NaigpKXtlPWEuTmooYyxudWxsKTshIWUmJmUub2ooKX19fVxuZnVuY3Rpb24gYmdlKGEsYil7dmFyIGMsZCxlLGYsZztnPXBrZShhLmUuRGgoKSxiKTtlPW5ldyBZSGQ7Yz1SRChhLmcsMTI0KTtmb3IoZj1hLmk7LS1mPj0wOyl7ZD1jW2ZdO2cuYW0oZC5MaygpKSYmV0dkKGUsZCl9IXdMZChhLGUpJiZNdmQoYS5lKSYmZVpkKGEsYi5KaygpP2ZnZShhLDYsYiwoeW9iKCksdm9iKSxudWxsLC0xLGZhbHNlKTpmZ2UoYSxiLnRrKCk/MjoxLGIsbnVsbCxudWxsLC0xLGZhbHNlKSl9XG5mdW5jdGlvbiBfN2IoYSxiKXt2YXIgYyxkLGUsZixnO2lmKGEuYT09KCR1YygpLFl1Yykpe3JldHVybiB0cnVlfWY9Yi5hLmM7Yz1iLmEuYytiLmEuYjtpZihiLmope2Q9Yi5BO2c9ZC5jLmMuYS1kLm8uYS8yO2U9Zi0oZC5uLmErZC5vLmEpO2lmKGU+Zyl7cmV0dXJuIGZhbHNlfX1pZihiLnEpe2Q9Yi5DO2c9ZC5jLmMuYS1kLm8uYS8yO2U9ZC5uLmEtYztpZihlPmcpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBiUmMoYSl7V1FjKCk7dmFyIGIsYyxkLGUsZixnLGg7Yz1uZXcgZ3ViO2ZvcihlPW5ldyBBbmIoYS5lLmIpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwzMCk7Zm9yKGc9bmV3IEFuYihkLmEpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxMCk7aD1hLmdbZi5wXTtiPVJEKGN1YihjLGgpLDE1KTtpZighYil7Yj1uZXcgYm5iO2R1YihjLGgsYil9Yi5GYyhmKX19cmV0dXJuIGN9XG5mdW5jdGlvbiBRemQoYSl7dmFyIGI7aWYoKGEuRGImNjQpIT0wKXJldHVybiBhd2QoYSk7Yj1uZXcgU2hiKGF3ZChhKSk7Yi5hKz0nIChzdGFydFg6ICc7S2hiKGIsYS5qKTtiLmErPScsIHN0YXJ0WTogJztLaGIoYixhLmspO2IuYSs9JywgZW5kWDogJztLaGIoYixhLmIpO2IuYSs9JywgZW5kWTogJztLaGIoYixhLmMpO2IuYSs9JywgaWRlbnRpZmllcjogJztOaGIoYixhLmQpO2IuYSs9JyknO3JldHVybiBiLmF9XG5mdW5jdGlvbiBjV2QoYSl7dmFyIGI7aWYoKGEuRGImNjQpIT0wKXJldHVybiBRQWQoYSk7Yj1uZXcgU2hiKFFBZChhKSk7Yi5hKz0nIChvcmRlcmVkOiAnO09oYihiLChhLkJiJjI1NikhPTApO2IuYSs9JywgdW5pcXVlOiAnO09oYihiLChhLkJiJjUxMikhPTApO2IuYSs9JywgbG93ZXJCb3VuZDogJztMaGIoYixhLnMpO2IuYSs9JywgdXBwZXJCb3VuZDogJztMaGIoYixhLnQpO2IuYSs9JyknO3JldHVybiBiLmF9XG5mdW5jdGlvbiB1QmQoYSxiLGMsZCxlLGYsZyxoKXt2YXIgaTtaRChhLkNiLDkwKSYmdiRkKHlZZChSRChhLkNiLDkwKSksNCk7UEFkKGEsYyk7YS5mPWQ7RFdkKGEsZSk7RldkKGEsZik7eFdkKGEsZyk7RVdkKGEsZmFsc2UpO2FXZChhLHRydWUpO0FXZChhLGgpO19WZChhLHRydWUpOyRWZChhLDApO2EuYj0wO2JXZChhLDEpO2k9WFZkKGEsYixudWxsKTshIWkmJmkub2ooKTtrWGQoYSxmYWxzZSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBaQWIoYSxiKXt2YXIgYyxkLGUsZjtjPVJEKFhqYihhLmEsYiksNTI1KTtpZighYyl7ZD1uZXcgb0JiKGIpO2U9KGdCYigpLGRCYik/bnVsbDpkLmM7Zj16aGIoZSwwLCR3bmQuTWF0aC5tYXgoMCx0aGIoZSxGaGIoNDYpKSkpO25CYihkLFpBYihhLGYpKTsoZEJiP251bGw6ZC5jKS5sZW5ndGg9PTAmJmlCYihkLG5ldyByQmIpOyRqYihhLmEsZEJiP251bGw6ZC5jLGQpO3JldHVybiBkfXJldHVybiBjfVxuZnVuY3Rpb24gc1JiKGEsYil7dmFyIGM7YS5iPWI7YS5nPW5ldyBibmI7Yz10UmIoYS5iKTthLmU9YzthLmY9YzthLmM9SGViKFREKG1RYihhLmIsKFlIYigpLFJIYikpKSk7YS5hPVVEKG1RYihhLmIsKHVtZCgpLERrZCkpKTthLmE9PW51bGwmJihhLmE9MSk7S2ZiKGEuYSk+MT8oYS5lKj1LZmIoYS5hKSk6KGEuZi89S2ZiKGEuYSkpO3VSYihhKTt2UmIoYSk7clJiKGEpO3BRYihhLmIsKHRTYigpLGxTYiksYS5nKX1cbmZ1bmN0aW9uIG45YihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2Q9MDtpPWM7aWYoIWIpe2Q9YyooYS5jLmxlbmd0aC0xKTtpKj0tMX1mb3IoZj1uZXcgQW5iKGEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMCk7cFFiKGUsKHlDYygpLFJ6YyksKFJqZCgpLE5qZCkpO2Uuby5hPWQ7Zm9yKGg9ZTNiKGUsKHFwZCgpLFhvZCkpLktjKCk7aC5PYigpOyl7Zz1SRChoLlBiKCksMTIpO2cubi5hPWR9ZCs9aX19XG5mdW5jdGlvbiBnWmQoYSxiLGMpe3ZhciBkLGUsZixnLGgsaTtoPWEucGwoYyk7aWYoaCE9Yyl7Zz1hLmdbYl07aT1oO01IZChhLGIsYS5aaShiLGkpKTtmPWc7YS5SaShiLGksZik7aWYoYS5hbCgpKXtkPWM7ZT1hLk9qKGQsbnVsbCk7IVJEKGgsNTQpLlBoKCkmJihlPWEuTmooaSxlKSk7ISFlJiZlLm9qKCl9TXZkKGEuZSkmJmVaZChhLGEuSWooOSxjLGgsYixmYWxzZSkpO3JldHVybiBofWVsc2V7cmV0dXJuIGN9fVxuZnVuY3Rpb24gclliKGEsYil7dmFyIGMsZCxlLGY7Zm9yKGQ9bmV3IEFuYihhLmEuYSk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDE5NCk7Yy5nPXRydWV9Zm9yKGY9bmV3IEFuYihhLmEuYik7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDg2KTtlLms9SGViKFREKGEuZS5LYihuZXcgUHRkKGUsYikpKSk7ZS5kLmc9ZS5kLmcmSGViKFREKGEuZS5LYihuZXcgUHRkKGUsYikpKSl9cmV0dXJuIGF9XG5mdW5jdGlvbiBSZGMoYSxiKXt2YXIgYyxkO2lmKGEuYy5sZW5ndGghPTApe2lmKGEuYy5sZW5ndGg9PTIpe1FkYygodEZiKDAsYS5jLmxlbmd0aCksUkQoYS5jWzBdLDEwKSksKFBuZCgpLExuZCkpO1FkYygodEZiKDEsYS5jLmxlbmd0aCksUkQoYS5jWzFdLDEwKSksTW5kKX1lbHNle2ZvcihkPW5ldyBBbmIoYSk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDEwKTtRZGMoYyxiKX19YS5jLmxlbmd0aD0wfX1cbmZ1bmN0aW9uIFZuYyhhKXt2YXIgYixjLGQsZSxmO2M9KGI9UkQobWZiKEUzKSw5KSxuZXcgRnNiKGIsUkQoV0ViKGIsYi5sZW5ndGgpLDkpLDApKTtmPVJEKG1RYihhLChZd2MoKSxJd2MpKSwxMCk7aWYoZil7Zm9yKGU9bmV3IEFuYihmLmopO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxMik7ZEUobVFiKGQsQXdjKSk9PT1kRShhKSYmazRiKG5ldyBsNGIoZC5iKSkmJnpzYihjLGQuail9fXJldHVybiBjfVxuZnVuY3Rpb24gQ0djKGEsYixjKXt2YXIgZCxlLGYsZyxoO2lmKGEuZFtjLnBdKXtyZXR1cm59Zm9yKGU9bmV3IGlzKE1yKGEzYihjKS5hLktjKCksbmV3IGlyKSk7Z3MoZSk7KXtkPVJEKGhzKGUpLDE4KTtoPWQuZC5pO2ZvcihnPW5ldyBpcyhNcihaMmIoaCkuYS5LYygpLG5ldyBpcikpO2dzKGcpOyl7Zj1SRChocyhnKSwxOCk7Zi5jLmk9PWImJihhLmFbZi5wXT10cnVlKX1DR2MoYSxiLGgpfWEuZFtjLnBdPXRydWV9XG5mdW5jdGlvbiBad2QoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtkPWdnYihhLkRiJjI1NCk7aWYoZD09MSl7YS5FYj1udWxsfWVsc2V7Zj1TRChhLkViKTtpZihkPT0yKXtlPVh3ZChhLGIpO2EuRWI9ZltlPT0wPzE6MF19ZWxzZXtnPSRDKGpKLHJ2ZSwxLGQtMSw1LDEpO2ZvcihjPTIsaD0wLGk9MDtjPD0xMjg7Yzw8PTEpe2M9PWI/KytoOihhLkRiJmMpIT0wJiYoZ1tpKytdPWZbaCsrXSl9YS5FYj1nfX1hLkRiJj1+Yn1cbmZ1bmN0aW9uIHJzZShhKXt2YXIgYjtiPTA7c3dpdGNoKGEpe2Nhc2UgMTA1OmI9MjticmVhaztjYXNlIDEwOTpiPTg7YnJlYWs7Y2FzZSAxMTU6Yj00O2JyZWFrO2Nhc2UgMTIwOmI9MTY7YnJlYWs7Y2FzZSAxMTc6Yj0zMjticmVhaztjYXNlIDExOTpiPTY0O2JyZWFrO2Nhc2UgNzA6Yj0yNTY7YnJlYWs7Y2FzZSA3MjpiPTEyODticmVhaztjYXNlIDg4OmI9NTEyO2JyZWFrO2Nhc2UgNDQ6Yj1nd2U7fXJldHVybiBifVxuZnVuY3Rpb24gT2piKGEsYixjLGQsZSl7dmFyIGYsZyxoLGk7aWYoZEUoYSk9PT1kRShiKSYmZD09ZSl7VGpiKGEsZCxjKTtyZXR1cm59Zm9yKGg9MDtoPGQ7aCsrKXtnPTA7Zj1hW2hdO2ZvcihpPTA7aTxlO2krKyl7Zz1CZGIoQmRiKE5kYihDZGIoZix5eGUpLENkYihiW2ldLHl4ZSkpLENkYihjW2graV0seXhlKSksQ2RiKFlkYihnKSx5eGUpKTtjW2graV09WWRiKGcpO2c9VWRiKGcsMzIpfWNbaCtlXT1ZZGIoZyl9fVxuZnVuY3Rpb24gdFJiKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGw7az0wO2o9MDtlPWEuYTtoPWUuYS5nYygpO2ZvcihkPWUuYS5lYygpLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksNTY3KTtiPShjLmImJkNSYihjKSxjLmEpO2w9Yi5hO2c9Yi5iO2srPWwrZztqKz1sKmd9aT0kd25kLk1hdGguc3FydCg0MDAqaCpqLTQqaitrKmspK2s7Zj0yKigxMDAqaC0xKTtpZihmPT0wKXtyZXR1cm4gaX1yZXR1cm4gaS9mfVxuZnVuY3Rpb24gTVNjKGEsYil7aWYoYi5iIT0wKXtpc05hTihhLnMpPyhhLnM9S2ZiKChzRmIoYi5iIT0wKSxVRChiLmEuYS5jKSkpKTooYS5zPSR3bmQuTWF0aC5taW4oYS5zLEtmYigoc0ZiKGIuYiE9MCksVUQoYi5hLmEuYykpKSkpO2lzTmFOKGEuYyk/KGEuYz1LZmIoKHNGYihiLmIhPTApLFVEKGIuYy5iLmMpKSkpOihhLmM9JHduZC5NYXRoLm1heChhLmMsS2ZiKChzRmIoYi5iIT0wKSxVRChiLmMuYi5jKSkpKSl9fVxuZnVuY3Rpb24gbnpkKGEpe3ZhciBiLGMsZCxlO2I9bnVsbDtmb3IoZD1GbChBbChjRChXQyhjSiwxKSxydmUsMjAsMCxbKCFhLmImJihhLmI9bmV3IFlpZShFNCxhLDQsNykpLGEuYiksKCFhLmMmJihhLmM9bmV3IFlpZShFNCxhLDUsOCkpLGEuYyldKSkpO2dzKGQpOyl7Yz1SRChocyhkKSw4NCk7ZT1BR2QoYyk7aWYoIWIpe2I9dkNkKGUpfWVsc2UgaWYoYiE9dkNkKGUpKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gcExkKGEsYil7dmFyIGMsZCxlLGY7aWYoYS5QaigpKXtjPWEuaTtmPWEuUWooKTtMSGQoYSxiKTtkPWEuSWooMyxudWxsLGIsYyxmKTtpZihhLk1qKCkpe2U9YS5OaihiLG51bGwpO2EuVGooKSYmKGU9YS5VaihiLGUpKTtpZighZSl7YS5KaihkKX1lbHNle2UubmooZCk7ZS5vaigpfX1lbHNle2EuSmooZCl9fWVsc2V7TEhkKGEsYik7aWYoYS5NaigpKXtlPWEuTmooYixudWxsKTshIWUmJmUub2ooKX19fVxuZnVuY3Rpb24gWlFiKGEsYil7dmFyIGMsZCxlLGY7Zj1yQWIoYS5hLGIuYik7aWYoIWYpe3Rocm93IEFkYihuZXcgZGdiKCdJbnZhbGlkIGhpdGJveGVzIGZvciBzY2FubGluZSBvdmVybGFwIGNhbGN1bGF0aW9uLicpKX1lPWZhbHNlO2ZvcihkPWEuYS5hLmVjKCkuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSw2OCk7aWYoVVFiKGIuYixjKSl7YmJkKGEuYi5hLGIuYixjKTtlPXRydWV9ZWxzZXtpZihlKXticmVha319fX1cbmZ1bmN0aW9uIHdoZChhKXt2YXIgYjtpZighYS5hKXt0aHJvdyBBZGIobmV3IGRnYignSURhdGFUeXBlIGNsYXNzIGV4cGVjdGVkIGZvciBsYXlvdXQgb3B0aW9uICcrYS5mKSl9Yj1HSWQoYS5hKTtpZihiPT1udWxsKXt0aHJvdyBBZGIobmV3IGRnYihcIkNvdWxkbid0IGNyZWF0ZSBuZXcgaW5zdGFuY2Ugb2YgcHJvcGVydHkgJ1wiK2EuZitcIicuIFwiK0RHZSsobGZiKGI2KSxiNi5rKStFR2UpKX1yZXR1cm4gUkQoYiw0MjMpfVxuZnVuY3Rpb24geXZkKGEpe3ZhciBiLGMsZCxlLGY7Zj1hLlBoKCk7aWYoZil7aWYoZi5WaCgpKXtlPVZ2ZChhLGYpO2lmKGUhPWYpe2M9YS5GaCgpO2Q9KGI9YS5GaCgpLGI+PTA/YS5BaChudWxsKTphLlBoKCkuVGgoYSwtMS1iLG51bGwsbnVsbCkpO2EuQmgoUkQoZSw1NCksYyk7ISFkJiZkLm9qKCk7YS52aCgpJiZhLndoKCkmJmM+LTEmJnF2ZChhLG5ldyBOM2QoYSw5LGMsZixlKSk7cmV0dXJuIGV9fX1yZXR1cm4gZn1cbmZ1bmN0aW9uIHN0YihhLGIpe3ZhciBjLGQsZSxmLGc7Zj1hLmIuQ2UoYik7ZD0oYz1hLmEuZ2V0KGYpLGM9PW51bGw/JEMoakoscnZlLDEsMCw1LDEpOmMpO2ZvcihnPTA7ZzxkLmxlbmd0aDtnKyspe2U9ZFtnXTtpZihhLmIuQmUoYixlLmxkKCkpKXtpZihkLmxlbmd0aD09MSl7ZC5sZW5ndGg9MDtCdGIoYS5hLGYpfWVsc2V7ZC5zcGxpY2UoZywxKX0tLWEuYzsrK2EuYi5nO3JldHVybiBlLm1kKCl9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gcFdiKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk7Zz0wO2Y9YS5mLmU7Zm9yKGQ9MDtkPGYuYy5sZW5ndGg7KytkKXtoPSh0RmIoZCxmLmMubGVuZ3RoKSxSRChmLmNbZF0sMTUzKSk7Zm9yKGU9ZCsxO2U8Zi5jLmxlbmd0aDsrK2Upe2k9KHRGYihlLGYuYy5sZW5ndGgpLFJEKGYuY1tlXSwxNTMpKTtjPWJqZChoLmQsaS5kKTtiPWMtYS5hW2guYV1baS5hXTtnKz1hLmlbaC5hXVtpLmFdKmIqYn19cmV0dXJuIGd9XG5mdW5jdGlvbiBvZWMoYSxiKXt2YXIgYztpZihuUWIoYiwoeUNjKCksVUFjKSkpe3JldHVybn1jPXdlYyhSRChtUWIoYixoZWMpLDM3MSksUkQobVFiKGEsVUFjKSwxNzEpKTtwUWIoYixoZWMsYyk7aWYoZ3MobmV3IGlzKE1yKFcyYihiKS5hLktjKCksbmV3IGlyKSkpKXtyZXR1cm59c3dpdGNoKGMuZyl7Y2FzZSAxOnBRYihiLFVBYywoY3hjKCksWndjKSk7YnJlYWs7Y2FzZSAyOnBRYihiLFVBYywoY3hjKCksX3djKSk7fX1cbmZ1bmN0aW9uIGFvYyhhLGIpe3ZhciBjO1NuYyhhKTthLmE9KGM9bmV3IFJpLEZEYihuZXcgU0RiKG51bGwsbmV3IFN3YihiLmQsMTYpKSxuZXcgem9jKGMpKSxjKTtYbmMoYSxSRChtUWIoYi5iLCh5Q2MoKSxDQWMpKSwzNDkpKTtabmMoYSk7WW5jKGEpO1duYyhhKTskbmMoYSk7X25jKGEsYik7RkRiKEVEYihuZXcgU0RiKG51bGwsZ2ooZWooYS5iKS5hKSksbmV3IHBvYyksbmV3IHJvYyk7Yi5hPWZhbHNlO2EuYT1udWxsfVxuZnVuY3Rpb24gQiRjKCl7QiRjPWdlYjtyJGM9bmV3IGxHZChSRWUsKEdlYigpLGZhbHNlKSk7cyRjPW5ldyBsR2QoU0VlLDcpO3NnYigwKTt5JGM9bmV3IGxHZChURWUsc2diKDApKTt2JGM9bmV3IGxHZChVRWUsc2diKC0xKSk7QSRjPShzX2MoKSxyX2MpO3okYz1uZXcgbEdkKFZFZSxBJGMpO3UkYz0oTFpjKCksSVpjKTt0JGM9bmV3IGxHZChXRWUsdSRjKTt4JGM9KEFfYygpLHpfYyk7dyRjPW5ldyBsR2QoWEVlLHgkYyl9XG5mdW5jdGlvbiBfQmQoKXtGQmQuY2FsbCh0aGlzLCRIZSwoYnZkKCksYXZkKSk7dGhpcy5wPW51bGw7dGhpcy5hPW51bGw7dGhpcy5mPW51bGw7dGhpcy5uPW51bGw7dGhpcy5nPW51bGw7dGhpcy5jPW51bGw7dGhpcy5pPW51bGw7dGhpcy5qPW51bGw7dGhpcy5kPW51bGw7dGhpcy5iPW51bGw7dGhpcy5lPW51bGw7dGhpcy5rPW51bGw7dGhpcy5vPW51bGw7dGhpcy5zPW51bGw7dGhpcy5xPWZhbHNlO3RoaXMucj1mYWxzZX1cbmZ1bmN0aW9uIGFHZCgpe2FHZD1nZWI7X0ZkPW5ldyBiR2QoRkJlLDApO1lGZD1uZXcgYkdkKCdJTlNJREVfU0VMRl9MT09QUycsMSk7WkZkPW5ldyBiR2QoJ01VTFRJX0VER0VTJywyKTtYRmQ9bmV3IGJHZCgnRURHRV9MQUJFTFMnLDMpOyRGZD1uZXcgYkdkKCdQT1JUUycsNCk7VkZkPW5ldyBiR2QoJ0NPTVBPVU5EJyw1KTtVRmQ9bmV3IGJHZCgnQ0xVU1RFUlMnLDYpO1dGZD1uZXcgYkdkKCdESVNDT05ORUNURUQnLDcpfVxuZnVuY3Rpb24gUkpkKGEsYixjKXt2YXIgZCxlLGY7aWYoYS5QaigpKXtmPWEuUWooKTsrK2EuajthLnFqKGIsYS5aaShiLGMpKTtkPWEuSWooMyxudWxsLGMsYixmKTtpZihhLk1qKCkpe2U9YS5OaihjLG51bGwpO2lmKCFlKXthLkpqKGQpfWVsc2V7ZS5uaihkKTtlLm9qKCl9fWVsc2V7YS5KaihkKX19ZWxzZXsrK2EuajthLnFqKGIsYS5aaShiLGMpKTtpZihhLk1qKCkpe2U9YS5OaihjLG51bGwpOyEhZSYmZS5vaigpfX19XG5mdW5jdGlvbiBfaWIoYSxiKXt2YXIgYyxkLGU7aWYoYj09MCl7cmV0dXJuIChhLmFbMF0mMSkhPTB9aWYoYjwwKXt0aHJvdyBBZGIobmV3IHRlYignTmVnYXRpdmUgYml0IGFkZHJlc3MnKSl9ZT1iPj41O2lmKGU+PWEuZCl7cmV0dXJuIGEuZTwwfWM9YS5hW2VdO2I9MTw8KGImMzEpO2lmKGEuZTwwKXtkPVVpYihhKTtpZihlPGQpe3JldHVybiBmYWxzZX1lbHNlIGQ9PWU/KGM9LWMpOihjPX5jKX1yZXR1cm4gKGMmYikhPTB9XG5mdW5jdGlvbiBaZGQoYSxiLGMsZCl7dmFyIGU7UkQoYy5iLDY4KTtSRChjLmIsNjgpO1JEKGQuYiw2OCk7UkQoZC5iLDY4KTtlPW9qZChhamQoUkQoYy5iLDY4KS5jKSxSRChkLmIsNjgpLmMpO2tqZChlLFBRYihSRChjLmIsNjgpLFJEKGQuYiw2OCksZSkpO1JEKGQuYiw2OCk7UkQoZC5iLDY4KTtSRChkLmIsNjgpLmMuYStlLmE7UkQoZC5iLDY4KS5jLmIrZS5iO1JEKGQuYiw2OCk7VW1iKGQuYSxuZXcgY2VkKGEsYixkKSl9XG5mdW5jdGlvbiBWJGQoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtmPWIuZTtpZihmKXtjPXl2ZChmKTtkPVJEKGEuZyw2ODkpO2ZvcihnPTA7ZzxhLmk7KytnKXtpPWRbZ107aWYoaDJkKGkpPT1jKXtlPSghaS5kJiYoaS5kPW5ldyBYWmQobzcsaSwxKSksaS5kKTtoPVJEKGMuTWgoandkKGYsZi5DYixmLkRiPj4xNikpLDE1KS5kZChmKTtpZihoPGUuaSl7cmV0dXJuIFYkZChhLFJEKFFIZChlLGgpLDg5KSl9fX19cmV0dXJuIGJ9XG5mdW5jdGlvbiBmZWIoYSxiLGMpe3ZhciBkPWVlYixoO3ZhciBlPWRbYV07dmFyIGY9ZSBpbnN0YW5jZW9mIEFycmF5P2VbMF06bnVsbDtpZihlJiYhZil7Xz1lfWVsc2V7Xz0oaD1iJiZiLnByb3RvdHlwZSwhaCYmKGg9ZWViW2JdKSxpZWIoaCkpO18uU209YzshYiYmKF8uVG09a2ViKTtkW2FdPV99Zm9yKHZhciBnPTM7Zzxhcmd1bWVudHMubGVuZ3RoOysrZyl7YXJndW1lbnRzW2ddLnByb3RvdHlwZT1ffWYmJihfLlJtPWYpfVxuZnVuY3Rpb24gZ3MoYSl7dmFyIGI7d2hpbGUoIVJEKFFiKGEuYSksNTEpLk9iKCkpe2EuZD1mcyhhKTtpZighYS5kKXtyZXR1cm4gZmFsc2V9YS5hPVJEKGEuZC5QYigpLDUxKTtpZihaRChhLmEsMzgpKXtiPVJEKGEuYSwzOCk7YS5hPWIuYTshYS5iJiYoYS5iPW5ldyB3bWIpO2htYihhLmIsYS5kKTtpZihiLmIpe3doaWxlKCFubWIoYi5iKSl7aG1iKGEuYixSRCh0bWIoYi5iKSw1MSkpfX1hLmQ9Yi5kfX1yZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIHhKYihhLGIpe3ZhciBjLGQsZSxmO2U9MTtiLmo9dHJ1ZTtmPW51bGw7Zm9yKGQ9bmV3IEFuYihDSWIoYikpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwyMTgpO2lmKCFhLmNbYy5jXSl7YS5jW2MuY109dHJ1ZTtmPW9JYihjLGIpO2lmKGMuZil7ZSs9eEpiKGEsZil9ZWxzZSBpZighZi5qJiZjLmE9PWMuZS5lLWMuZC5lKXtjLmY9dHJ1ZTtZc2IoYS5wLGMpO2UrPXhKYihhLGYpfX19cmV0dXJuIGV9XG5mdW5jdGlvbiBPWWIoYSl7dmFyIGIsYyxkO2ZvcihjPW5ldyBBbmIoYS5hLmEuYik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDg2KTtkPSh1RmIoMCksMCk7aWYoZD4wKXshKERtZChhLmEuYykmJmIubi5kKSYmIShFbWQoYS5hLmMpJiZiLm4uYikmJihiLmcuZCs9JHduZC5NYXRoLm1heCgwLGQvMi0wLjUpKTshKERtZChhLmEuYykmJmIubi5hKSYmIShFbWQoYS5hLmMpJiZiLm4uYykmJihiLmcuYS09ZC0xKX19fVxuZnVuY3Rpb24gYzdiKGEpe3ZhciBiLGMsZCxlLGY7ZT1uZXcgYm5iO2Y9ZDdiKGEsZSk7Yj1SRChtUWIoYSwoWXdjKCksSXdjKSksMTApO2lmKGIpe2ZvcihkPW5ldyBBbmIoYi5qKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMTIpO2RFKG1RYihjLEF3YykpPT09ZEUoYSkmJihmPSR3bmQuTWF0aC5tYXgoZixkN2IoYyxlKSkpfX1lLmMubGVuZ3RoPT0wfHxwUWIoYSx5d2MsZik7cmV0dXJuIGYhPS0xP2U6bnVsbH1cbmZ1bmN0aW9uIHJjYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2Y9UkQoVm1iKGIuZSwwKSwxOCkuYztkPWYuaTtlPWQuaztpPVJEKFZtYihjLmcsMCksMTgpLmQ7Zz1pLmk7aD1nLms7ZT09KHIzYigpLG8zYik/cFFiKGEsKFl3YygpLHZ3YyksUkQobVFiKGQsdndjKSwxMikpOnBRYihhLChZd2MoKSx2d2MpLGYpO2g9PW8zYj9wUWIoYSwoWXdjKCksd3djKSxSRChtUWIoZyx3d2MpLDEyKSk6cFFiKGEsKFl3YygpLHd3YyksaSl9XG5mdW5jdGlvbiB5c2MoYSl7dmFyIGIsYyxkO3RoaXMuYz1hO2Q9UkQobVFiKGEsKHlDYygpLHJBYykpLDg4KTtiPUtmYihVRChtUWIoYSxUemMpKSk7Yz1LZmIoVUQobVFiKGEsb0NjKSkpO2Q9PShDbWQoKSx5bWQpfHxkPT16bWR8fGQ9PUFtZD8odGhpcy5iPWIqYyk6KHRoaXMuYj0xLyhiKmMpKTt0aGlzLmo9S2ZiKFVEKG1RYihhLGNDYykpKTt0aGlzLmU9S2ZiKFVEKG1RYihhLGJDYykpKTt0aGlzLmY9YS5iLmMubGVuZ3RofVxuZnVuY3Rpb24gQkQoYSxiKXt2YXIgYyxkLGUsZixnO2ImPTYzO2M9YS5oO2Q9KGMmZnhlKSE9MDtkJiYoY3w9LTEwNDg1NzYpO2lmKGI8MjIpe2c9Yz4+YjtmPWEubT4+YnxjPDwyMi1iO2U9YS5sPj5ifGEubTw8MjItYn1lbHNlIGlmKGI8NDQpe2c9ZD9leGU6MDtmPWM+PmItMjI7ZT1hLm0+PmItMjJ8Yzw8NDQtYn1lbHNle2c9ZD9leGU6MDtmPWQ/ZHhlOjA7ZT1jPj5iLTQ0fXJldHVybiBoRChlJmR4ZSxmJmR4ZSxnJmV4ZSl9XG5mdW5jdGlvbiBPUmIoYSl7dmFyIGIsYyxkLGUsZixnO3RoaXMuYz1uZXcgYm5iO3RoaXMuZD1hO2Q9b3hlO2U9b3hlO2I9cHhlO2M9cHhlO2ZvcihnPVN1YihhLDApO2cuYiE9Zy5kLmM7KXtmPVJEKGV2YihnKSw4KTtkPSR3bmQuTWF0aC5taW4oZCxmLmEpO2U9JHduZC5NYXRoLm1pbihlLGYuYik7Yj0kd25kLk1hdGgubWF4KGIsZi5hKTtjPSR3bmQuTWF0aC5tYXgoYyxmLmIpfXRoaXMuYT1uZXcgVWlkKGQsZSxiLWQsYy1lKX1cbmZ1bmN0aW9uIFVkYyhhLGIpe3ZhciBjLGQsZSxmLGcsaDtmb3IoZj1uZXcgQW5iKGEuYik7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDMwKTtmb3IoaD1uZXcgQW5iKGUuYSk7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDEwKTtnLms9PShyM2IoKSxuM2IpJiZRZGMoZyxiKTtmb3IoZD1uZXcgaXMoTXIoYTNiKGcpLmEuS2MoKSxuZXcgaXIpKTtncyhkKTspe2M9UkQoaHMoZCksMTgpO1BkYyhjLGIpfX19fVxuZnVuY3Rpb24gbmVjKGEsYil7dmFyIGMsZCxlO2IuVWcoJ0xheWVyIGNvbnN0cmFpbnQgcHJlcHJvY2Vzc2luZycsMSk7Yz1uZXcgYm5iO2U9bmV3IEprYihhLmEsMCk7d2hpbGUoZS5iPGUuZC5nYygpKXtkPShzRmIoZS5iPGUuZC5nYygpKSxSRChlLmQuWGIoZS5jPWUuYisrKSwxMCkpO2lmKG1lYyhkKSl7a2VjKGQpO1pFYihjLmMsZCk7Q2tiKGUpfX1jLmMubGVuZ3RoPT0wfHxwUWIoYSwoWXdjKCksbHdjKSxjKTtiLlZnKCl9XG5mdW5jdGlvbiAkSGMoYSl7dmFyIGIsYzthLmU9JEMoa0UsUHdlLDI4LGEucC5jLmxlbmd0aCwxNSwxKTthLms9JEMoa0UsUHdlLDI4LGEucC5jLmxlbmd0aCwxNSwxKTtmb3IoYz1uZXcgQW5iKGEucCk7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDEwKTthLmVbYi5wXT1LcihuZXcgaXMoTXIoWjJiKGIpLmEuS2MoKSxuZXcgaXIpKSk7YS5rW2IucF09S3IobmV3IGlzKE1yKGEzYihiKS5hLktjKCksbmV3IGlyKSkpfX1cbmZ1bmN0aW9uIGJJYyhhKXt2YXIgYixjLGQsZSxmLGc7ZT0wO2EucT1uZXcgYm5iO2I9bmV3IF9zYjtmb3IoZz1uZXcgQW5iKGEucCk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEwKTtmLnA9ZTtmb3IoZD1uZXcgaXMoTXIoYTNiKGYpLmEuS2MoKSxuZXcgaXIpKTtncyhkKTspe2M9UkQoaHMoZCksMTgpO1lzYihiLGMuZC5pKX1iLmEuQmMoZikhPW51bGw7Um1iKGEucSxuZXcgYnRiKGIpKTtiLmEuJGIoKTsrK2V9fVxuZnVuY3Rpb24gcFBkKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrO2lmKGEuYS5mPjAmJlpEKGIsNDQpKXthLmEuX2ooKTtqPVJEKGIsNDQpO2k9ai5sZCgpO2Y9aT09bnVsbD8wOnRiKGkpO2c9Yk9kKGEuYSxmKTtjPWEuYS5kW2ddO2lmKGMpe2Q9UkQoYy5nLDM3OSk7az1jLmk7Zm9yKGg9MDtoPGs7KytoKXtlPWRbaF07aWYoZS5CaSgpPT1mJiZlLkZiKGopKXtwUGQoYSxqKTtyZXR1cm4gdHJ1ZX19fX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBOamUoYSl7dmFyIGIsYyxkLGUsZixnLGg7Yj1hLnFpKEFLZSk7aWYoYil7aD1XRCgkTmQoKCFiLmImJihiLmI9bmV3IFNWZCgoSlRkKCksRlRkKSxDOCxiKSksYi5iKSwnc2V0dGluZ0RlbGVnYXRlcycpKTtpZihoIT1udWxsKXtjPW5ldyBibmI7Zm9yKGU9dmhiKGgsJ1xcXFx3KycpLGY9MCxnPWUubGVuZ3RoO2Y8ZzsrK2Ype2Q9ZVtmXTtaRWIoYy5jLGQpfXJldHVybiBjfX1yZXR1cm4geW9iKCkseW9iKCksdm9ifVxuZnVuY3Rpb24gWW5jKGEpe3ZhciBiLGMsZCxlO2ZvcihlPVJEKFFjKGEuYSwoQm5jKCkseW5jKSksMTUpLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMTA1KTtjPShiPUVjKGQuayksYi5IYygocXBkKCksWW9kKSk/Yi5IYyhYb2QpP2IuSGMobnBkKT9iLkhjKHBwZCk/bnVsbDpKbmM6TG5jOktuYzpJbmMpO1FuYyhhLGQsY1swXSwoam9jKCksZ29jKSwwKTtRbmMoYSxkLGNbMV0saG9jLDEpO1FuYyhhLGQsY1syXSxpb2MsMSl9fVxuZnVuY3Rpb24gS3FjKGEsYil7dmFyIGMsZDtjPUxxYyhiKTtPcWMoYSxiLGMpO1VUYyhhLmEsUkQobVFiKFkyYihiLmIpLChZd2MoKSxMd2MpKSwyMzQpKTtKcWMoYSk7SXFjKGEsYik7ZD0kQyhrRSxQd2UsMjgsYi5iLmouYy5sZW5ndGgsMTUsMSk7UnFjKGEsYiwocXBkKCksWW9kKSxkLGMpO1JxYyhhLGIsWG9kLGQsYyk7UnFjKGEsYixucGQsZCxjKTtScWMoYSxiLHBwZCxkLGMpO2EuYT1udWxsO2EuYz1udWxsO2EuYj1udWxsfVxuZnVuY3Rpb24gWXlkKGEsYixjKXtzd2l0Y2goYil7Y2FzZSA3OiFhLmUmJihhLmU9bmV3IFlpZShHNCxhLDcsNCkpO3NMZChhLmUpOyFhLmUmJihhLmU9bmV3IFlpZShHNCxhLDcsNCkpO1lHZChhLmUsUkQoYywxNikpO3JldHVybjtjYXNlIDg6IWEuZCYmKGEuZD1uZXcgWWllKEc0LGEsOCw1KSk7c0xkKGEuZCk7IWEuZCYmKGEuZD1uZXcgWWllKEc0LGEsOCw1KSk7WUdkKGEuZCxSRChjLDE2KSk7cmV0dXJuO314eWQoYSxiLGMpfVxuZnVuY3Rpb24gUnQoYSxiKXt2YXIgYyxkLGUsZixnO2lmKGRFKGIpPT09ZEUoYSkpe3JldHVybiB0cnVlfWlmKCFaRChiLDE1KSl7cmV0dXJuIGZhbHNlfWc9UkQoYiwxNSk7aWYoYS5nYygpIT1nLmdjKCkpe3JldHVybiBmYWxzZX1mPWcuS2MoKTtmb3IoZD1hLktjKCk7ZC5PYigpOyl7Yz1kLlBiKCk7ZT1mLlBiKCk7aWYoIShkRShjKT09PWRFKGUpfHxjIT1udWxsJiZwYihjLGUpKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uIGphYyhhLGIpe3ZhciBjLGQsZSxmO2Y9UkQoekRiKEVEYihFRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYi5iLDE2KSksbmV3IHBhYyksbmV3IHJhYyksdEJiKG5ldyBaQmIsbmV3IFhCYixuZXcgd0NiLGNEKFdDKFFMLDEpLGp3ZSwxMDgsMCxbKHhCYigpLHZCYildKSkpLDE1KTtmLkpjKG5ldyB0YWMpO2M9MDtmb3IoZT1mLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMTIpO2QucD09LTEmJmlhYyhhLGQsYysrKX19XG5mdW5jdGlvbiBLRGMoYSl7c3dpdGNoKGEuZyl7Y2FzZSAwOnJldHVybiBuZXcgaVFjO2Nhc2UgMTpyZXR1cm4gbmV3IEROYztjYXNlIDI6cmV0dXJuIG5ldyBUTmM7Y2FzZSAzOnJldHVybiBuZXcgYVJjO2Nhc2UgNDpyZXR1cm4gbmV3IHlPYztkZWZhdWx0OnRocm93IEFkYihuZXcgYWdiKCdObyBpbXBsZW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgZm9yIHRoZSBub2RlIHBsYWNlciAnKyhhLmYhPW51bGw/YS5mOicnK2EuZykpKTt9fVxuZnVuY3Rpb24gUXRjKGEpe3N3aXRjaChhLmcpe2Nhc2UgMDpyZXR1cm4gbmV3IFVGYztjYXNlIDE6cmV0dXJuIG5ldyBORmM7Y2FzZSAyOnJldHVybiBuZXcgY0djO2Nhc2UgMzpyZXR1cm4gbmV3IGpHYztjYXNlIDQ6cmV0dXJuIG5ldyBZRmM7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYignTm8gaW1wbGVtZW50YXRpb24gaXMgYXZhaWxhYmxlIGZvciB0aGUgY3ljbGUgYnJlYWtlciAnKyhhLmYhPW51bGw/YS5mOicnK2EuZykpKTt9fVxuZnVuY3Rpb24gSV9jKGEsYil7dmFyIGMsZCxlLGYsZztkPW5ldyBZdWI7UHViKGQsYixkLmMuYixkLmMpO2Rve2M9KHNGYihkLmIhPTApLFJEKFd1YihkLGQuYS5hKSw0MCkpO2EuYltjLmddPTE7Zm9yKGY9U3ViKGMuZCwwKTtmLmIhPWYuZC5jOyl7ZT1SRChldmIoZiksNjUpO2c9ZS5jO2EuYltnLmddPT0xP011YihhLmEsZSk6YS5iW2cuZ109PTI/KGEuYltnLmddPTEpOlB1YihkLGcsZC5jLmIsZC5jKX19d2hpbGUoZC5iIT0wKX1cbmZ1bmN0aW9uICQkYihhLGIsYyl7dmFyIGQ7ZD1udWxsOyEhYiYmKGQ9Yi5kKTtrX2IoYSxuZXcgZVpiKGIubi5hLWQuYitjLmEsYi5uLmItZC5kK2MuYikpO2tfYihhLG5ldyBlWmIoYi5uLmEtZC5iK2MuYSxiLm4uYitiLm8uYitkLmErYy5iKSk7a19iKGEsbmV3IGVaYihiLm4uYStiLm8uYStkLmMrYy5hLGIubi5iLWQuZCtjLmIpKTtrX2IoYSxuZXcgZVpiKGIubi5hK2Iuby5hK2QuYytjLmEsYi5uLmIrYi5vLmIrZC5hK2MuYikpfVxuZnVuY3Rpb24gaWFjKGEsYixjKXt2YXIgZCxlLGY7Yi5wPWM7Zm9yKGY9RmwoQWwoY0QoV0MoY0osMSkscnZlLDIwLDAsW25ldyBUM2IoYiksbmV3IF8zYihiKV0pKSk7Z3MoZik7KXtkPVJEKGhzKGYpLDEyKTtkLnA9PS0xJiZpYWMoYSxkLGMpfWlmKGIuaS5rPT0ocjNiKCksbzNiKSl7Zm9yKGU9bmV3IEFuYihiLmkuaik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDEyKTtkIT1iJiZkLnA9PS0xJiZpYWMoYSxkLGMpfX19XG5mdW5jdGlvbiBjUmMoYSxiKXt2YXIgYyxkLGUsZixnLGg7ZD1uZXcgZ3ViO2c9WHgobmV3IG1vYihhLmcpKTtmb3IoZj1nLmEuZWMoKS5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDEwKTtpZighZSl7Yi5iaCgnVGhlcmUgYXJlIG5vIGNsYXNzZXMgaW4gYSBiYWxhbmNlZCBsYXlvdXQuJyk7YnJlYWt9aD1hLmpbZS5wXTtjPVJEKGN1YihkLGgpLDE1KTtpZighYyl7Yz1uZXcgYm5iO2R1YihkLGgsYyl9Yy5GYyhlKX1yZXR1cm4gZH1cbmZ1bmN0aW9uIFJUYyhhKXt2YXIgYixjLGQsZSxmO2U9UkQoekRiKEJEYihPRGIoYSkpLHRCYihuZXcgWkJiLG5ldyBYQmIsbmV3IHdDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsWyh4QmIoKSx2QmIpXSkpKSwxNSk7ZD1IemU7aWYoZS5nYygpPj0yKXtjPWUuS2MoKTtiPVVEKGMuUGIoKSk7d2hpbGUoYy5PYigpKXtmPWI7Yj1VRChjLlBiKCkpO2Q9JHduZC5NYXRoLm1pbihkLCh1RmIoYiksYiktKHVGYihmKSxmKSl9fXJldHVybiBkfVxuZnVuY3Rpb24gaVdjKGEsYil7dmFyIGMsZCxlO2U9bmV3IGJuYjtmb3IoZD1TdWIoYi5hLDApO2QuYiE9ZC5kLmM7KXtjPVJEKGV2YihkKSw2NSk7Yy5iLmc9PWEuZyYmIWxoYihjLmIuYyxJRWUpJiZkRShtUWIoYy5iLChoX2MoKSxmX2MpKSkhPT1kRShtUWIoYy5jLGZfYykpJiYheURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGUsMTYpKSxuZXcgT1djKGMpKSYmKFpFYihlLmMsYyksdHJ1ZSl9X21iKGUsbmV3IFFXYyk7cmV0dXJuIGV9XG5mdW5jdGlvbiAkdShhLGIpe3ZhciBjLGQsZTtpZihkRShiKT09PWRFKFFiKGEpKSl7cmV0dXJuIHRydWV9aWYoIVpEKGIsMTUpKXtyZXR1cm4gZmFsc2V9ZD1SRChiLDE1KTtlPWEuZ2MoKTtpZihlIT1kLmdjKCkpe3JldHVybiBmYWxzZX1pZihaRChkLDU5KSl7Zm9yKGM9MDtjPGU7YysrKXtpZighSGIoYS5YYihjKSxkLlhiKGMpKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX1lbHNle3JldHVybiBDcihhLktjKCksZC5LYygpKX19XG5mdW5jdGlvbiBTY2MoYSxiLGMsZCxlLGYpe3ZhciBnLGgsaSxqO2g9IVFEYihDRGIoYS5PYygpLG5ldyBQQWIobmV3IFdjYykpKS5CZCgoeERiKCksd0RiKSk7Zz1hO2Y9PShDbWQoKSxCbWQpJiYoZz1odihnKSk7Zm9yKGo9Zy5LYygpO2ouT2IoKTspe2k9UkQoai5QYigpLDcyKTtpLm4uYT1iLmE7aD8oaS5uLmI9Yi5iKyhkLmItaS5vLmIpLzIpOmU/KGkubi5iPWIuYik6KGkubi5iPWIuYitkLmItaS5vLmIpO2IuYSs9aS5vLmErY319XG5mdW5jdGlvbiBUZ2MoYSxiKXt2YXIgYyxkLGUsZixnO2IuVWcoJ1BvcnQgc2lkZSBwcm9jZXNzaW5nJywxKTtmb3IoZz1uZXcgQW5iKGEuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGcpLDEwKTtVZ2MoZSl9Zm9yKGQ9bmV3IEFuYihhLmIpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwzMCk7Zm9yKGY9bmV3IEFuYihjLmEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMCk7VWdjKGUpfX1iLlZnKCl9XG5mdW5jdGlvbiBiRWQoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqO2lmKGMpe2Y9Yy5hLmxlbmd0aDtkPW5ldyB2dWUoZik7Zm9yKGg9KGQuYi1kLmEpKmQuYzwwPyh1dWUoKSx0dWUpOm5ldyBSdWUoZCk7aC5PYigpOyl7Zz1SRChoLlBiKCksMTcpO2k9eERkKGMsZy5hKTtpZihpKXtqPUZHZCh6RGQoaSxoSWUpLGIpO1pqYihhLmYsaixpKTtlPXVJZSBpbiBpLmE7ZSYmanlkKGosekRkKGksdUllKSk7R0VkKGksaik7SEVkKGksail9fX19XG5mdW5jdGlvbiBNV2IoYSxiLGMpe3ZhciBkLGUsZixnLGg7aD1jOyFoJiYoaD1OcWQobmV3IE9xZCwwKSk7aC5VZyhFQWUsMSk7Y1hiKGEuYyxiKTtnPUhfYihhLmEsYik7aWYoZy5nYygpPT0xKXtPV2IoUkQoZy5YYigwKSwzNiksaCl9ZWxzZXtmPTEvZy5nYygpO2ZvcihlPWcuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSwzNik7aWYoYy4kZygpKXtyZXR1cm59T1diKGQsaC5laChmKSl9fUZfYihhLmEsZyxiKTtQV2IoYik7aC5WZygpfVxuZnVuY3Rpb24gSGljKGEsYixjKXt2YXIgZCxlLGYsZyxoO2U9YS5mOyFlJiYoZT1SRChhLmEuYS5lYygpLktjKCkuUGIoKSw2MCkpO0lpYyhlLGIsYyk7aWYoYS5hLmEuZ2MoKT09MSl7cmV0dXJufWQ9YipjO2ZvcihnPWEuYS5hLmVjKCkuS2MoKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSw2MCk7aWYoZiE9ZSl7aD0kamMoZik7aWYoaC5mLmQpe2YuZC5kKz1kK1R5ZTtmLmQuYS09ZCtUeWV9ZWxzZSBoLmYuYSYmKGYuZC5hLT1kK1R5ZSl9fX1cbmZ1bmN0aW9uIGtUYihhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG0sbjtnPWMtYTtoPWQtYjtmPSR3bmQuTWF0aC5hdGFuMihnLGgpO2k9ZitHemU7aj1mLUd6ZTtrPWUqJHduZC5NYXRoLnNpbihpKSthO209ZSokd25kLk1hdGguY29zKGkpK2I7bD1lKiR3bmQuTWF0aC5zaW4oaikrYTtuPWUqJHduZC5NYXRoLmNvcyhqKStiO3JldHVybiBkdihjRChXQyhsMywxKSxOdmUsOCwwLFtuZXcgcmpkKGssbSksbmV3IHJqZChsLG4pXSkpfVxuZnVuY3Rpb24gbVFjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGw7ZT1jO2s9YjtmPWs7ZG97Zj1hLmFbZi5wXTtoPShsPWEuZ1tmLnBdLEtmYihhLnBbbC5wXSkrS2ZiKGEuZFtmLnBdKS1mLmQuZCk7aT1wUWMoZixkKTtpZihpKXtnPShqPWEuZ1tpLnBdLEtmYihhLnBbai5wXSkrS2ZiKGEuZFtpLnBdKStpLm8uYitpLmQuYSk7ZT0kd25kLk1hdGgubWluKGUsaC0oZytiRmMoYS5rLGYsaSkpKX19d2hpbGUoayE9Zik7cmV0dXJuIGV9XG5mdW5jdGlvbiBuUWMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGssbDtlPWM7az1iO2Y9aztkb3tmPWEuYVtmLnBdO2c9KGw9YS5nW2YucF0sS2ZiKGEucFtsLnBdKStLZmIoYS5kW2YucF0pK2Yuby5iK2YuZC5hKTtpPW9RYyhmLGQpO2lmKGkpe2g9KGo9YS5nW2kucF0sS2ZiKGEucFtqLnBdKStLZmIoYS5kW2kucF0pLWkuZC5kKTtlPSR3bmQuTWF0aC5taW4oZSxoLShnK2JGYyhhLmssZixpKSkpfX13aGlsZShrIT1mKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIHI5YyhhLGIpe3ZhciBjO2IuVWcoJ0VxdWFsIFdoaXRlc3BhY2UgRWxpbWluYXRvcicsMSk7aWYoSHhkKGEsKFg2YygpLFY2YykpKXt3OWMoUkQoR3hkKGEsVjZjKSwxNSksS2ZiKFVEKEd4ZChhLE82YykpKSwoYz1LZmIoVUQoR3hkKGEsTTZjKSkpLEtmYihVRChHeGQoYSwoWDdjKCksUTdjKSkpKSxjKSl9ZWxzZXt0aHJvdyBBZGIobmV3IEplZCgnVGhlIGdyYXBoIGRvZXMgbm90IGNvbnRhaW4gcm93cy4nKSl9Yi5WZygpfVxuZnVuY3Rpb24gR3hkKGEsYil7dmFyIGMsZDtkPSghYS5vJiYoYS5vPW5ldyBEVmQoKHB2ZCgpLG12ZCksWDQsYSwwKSksJE5kKGEubyxiKSk7aWYoZCE9bnVsbCl7cmV0dXJuIGR9Yz1iLlNnKCk7WkQoYyw0KSYmKGM9PW51bGw/KCFhLm8mJihhLm89bmV3IERWZCgocHZkKCksbXZkKSxYNCxhLDApKSxqT2QoYS5vLGIpKTooIWEubyYmKGEubz1uZXcgRFZkKChwdmQoKSxtdmQpLFg0LGEsMCkpLGZPZChhLm8sYixjKSksYSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBkb2QoKXtkb2Q9Z2ViO1huZD1uZXcgZW9kKCdIX0xFRlQnLDApO1duZD1uZXcgZW9kKCdIX0NFTlRFUicsMSk7Wm5kPW5ldyBlb2QoJ0hfUklHSFQnLDIpO2NvZD1uZXcgZW9kKCdWX1RPUCcsMyk7Ym9kPW5ldyBlb2QoJ1ZfQ0VOVEVSJyw0KTthb2Q9bmV3IGVvZCgnVl9CT1RUT00nLDUpOyRuZD1uZXcgZW9kKCdJTlNJREUnLDYpO19uZD1uZXcgZW9kKCdPVVRTSURFJyw3KTtZbmQ9bmV3IGVvZCgnSF9QUklPUklUWScsOCl9XG5mdW5jdGlvbiBqSmIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtpZighYi5mKXt0aHJvdyBBZGIobmV3IGFnYignVGhlIGlucHV0IGVkZ2UgaXMgbm90IGEgdHJlZSBlZGdlLicpKX1mPW51bGw7ZT1sdmU7Zm9yKGQ9bmV3IEFuYihhLmQpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwyMTgpO2g9Yy5kO2k9Yy5lO2lmKG9KYihhLGgsYikmJiFvSmIoYSxpLGIpKXtnPWkuZS1oLmUtYy5hO2lmKGc8ZSl7ZT1nO2Y9Y319fXJldHVybiBmfVxuZnVuY3Rpb24gc1diKGEpe3ZhciBiLGMsZCxlLGYsZztpZihhLmYuZS5jLmxlbmd0aDw9MSl7cmV0dXJufWI9MDtlPXBXYihhKTtjPW94ZTtkb3tiPjAmJihlPWMpO2ZvcihnPW5ldyBBbmIoYS5mLmUpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxNTMpO2lmKEhlYihURChtUWIoZiwoZFdiKCksV1ZiKSkpKSl7Y29udGludWV9ZD1vV2IoYSxmKTskaWQoaGpkKGYuZCksZCl9Yz1wV2IoYSl9d2hpbGUoIXJXYihhLGIrKyxlLGMpKX1cbmZ1bmN0aW9uIFltYyhhLGIpe3ZhciBjLGQsZSxmLGc7Zj1hLmcuYTtnPWEuZy5iO2ZvcihkPW5ldyBBbmIoYS5kKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksNzIpO2U9Yy5uO2EuYT09KGVuYygpLGJuYyl8fGEuaT09KHFwZCgpLFhvZCk/KGUuYT1mKTphLmE9PWNuY3x8YS5pPT0ocXBkKCkscHBkKT8oZS5hPWYrYS5qLmEtYy5vLmEpOihlLmE9ZisoYS5qLmEtYy5vLmEpLzIpO2UuYj1nOyRpZChlLGIpO2crPWMuby5iK2EuZX19XG5mdW5jdGlvbiBCRWQoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbDtqPWE7aT15RGQoaiwnaW5kaXZpZHVhbFNwYWNpbmdzJyk7aWYoaSl7ZD1IeGQoYiwodW1kKCksYW1kKSk7Zz0hZDtpZihnKXtlPW5ldyBkdGQ7SXhkKGIsYW1kLGUpfWg9UkQoR3hkKGIsYW1kKSwzODUpO2w9aTtmPW51bGw7ISFsJiYoZj0oaz1vQyhsLCRDKHFKLE52ZSwyLDAsNiwxKSksbmV3IENDKGwsaykpKTtpZihmKXtjPW5ldyBkRmQobCxoKTt4Z2IoZixjKX19fVxuZnVuY3Rpb24gRkVkKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbTtpPW51bGw7bD1hO2s9bnVsbDtpZihESWUgaW4gbC5hfHxFSWUgaW4gbC5hfHxuSWUgaW4gbC5hKXtqPW51bGw7bT1FR2QoYik7Zz15RGQobCxESWUpO2M9bmV3IGdGZChtKTtjRWQoYy5hLGcpO2g9eURkKGwsRUllKTtkPW5ldyBBRmQobSk7bkVkKGQuYSxoKTtmPXdEZChsLG5JZSk7ZT1uZXcgREZkKG0pO2o9KG9FZChlLmEsZiksZik7az1qfWk9aztyZXR1cm4gaX1cbmZ1bmN0aW9uIG94KGEsYil7dmFyIGMsZCxlO2lmKGI9PT1hKXtyZXR1cm4gdHJ1ZX1pZihaRChiLDU1Mikpe2U9UkQoYiw4NDkpO2lmKGEuYS5kIT1lLmEuZHx8SWgoYSkuZ2MoKSE9SWgoZSkuZ2MoKSl7cmV0dXJuIGZhbHNlfWZvcihkPUloKGUpLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksNDI1KTtpZihRdyhhLGMuYS5sZCgpKSE9UkQoYy5hLm1kKCksMTYpLmdjKCkpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gc1BiKGEpe3ZhciBiLGMsZCxlO2Q9UkQoYS5hLDE3KS5hO2U9UkQoYS5iLDE3KS5hO2I9ZDtjPWU7aWYoZD09MCYmZT09MCl7Yy09MX1lbHNle2lmKGQ9PS0xJiZlPD0wKXtiPTA7Yy09Mn1lbHNle2lmKGQ8PTAmJmU+MCl7Yi09MTtjLT0xfWVsc2V7aWYoZD49MCYmZTwwKXtiKz0xO2MrPTF9ZWxzZXtpZihkPjAmJmU+PTApe2ItPTE7Yys9MX1lbHNle2IrPTE7Yy09MX19fX19cmV0dXJuIG5ldyBQdGQoc2diKGIpLHNnYihjKSl9XG5mdW5jdGlvbiBuTmMoYSxiKXtpZihhLmM8Yi5jKXtyZXR1cm4gLTF9ZWxzZSBpZihhLmM+Yi5jKXtyZXR1cm4gMX1lbHNlIGlmKGEuYjxiLmIpe3JldHVybiAtMX1lbHNlIGlmKGEuYj5iLmIpe3JldHVybiAxfWVsc2UgaWYoYS5hIT1iLmEpe3JldHVybiB0YihhLmEpLXRiKGIuYSl9ZWxzZSBpZihhLmQ9PShzTmMoKSxyTmMpJiZiLmQ9PXFOYyl7cmV0dXJuIC0xfWVsc2UgaWYoYS5kPT1xTmMmJmIuZD09ck5jKXtyZXR1cm4gMX1yZXR1cm4gMH1cbmZ1bmN0aW9uIEFSYyhhLGIpe3ZhciBjLGQsZSxmLGc7Zj1iLmE7Zi5jLmk9PWIuYj8oZz1mLmQpOihnPWYuYyk7Zi5jLmk9PWIuYj8oZD1mLmMpOihkPWYuZCk7ZT1sUWMoYS5hLGcsZCk7aWYoZT4wJiZlPEh6ZSl7Yz1tUWMoYS5hLGQuaSxlLGEuYyk7clFjKGEuYSxkLmksLWMpO3JldHVybiBjPjB9ZWxzZSBpZihlPDAmJi1lPEh6ZSl7Yz1uUWMoYS5hLGQuaSwtZSxhLmMpO3JRYyhhLmEsZC5pLGMpO3JldHVybiBjPjB9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gWDljKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGw7ZT0oYi1hLmQpL2EuYy5jLmxlbmd0aDtmPTA7YS5hKz1jO2EuZD1iO2ZvcihsPW5ldyBBbmIoYS5jKTtsLmE8bC5jLmMubGVuZ3RoOyl7az1SRCh5bmIobCksMjcpO2o9ay5nO2k9ay5mO0R5ZChrLGsuaStmKmUpO0V5ZChrLGsuaitkKmMpO0N5ZChrLGsuZytlKTtBeWQoayxhLmEpOysrZjtoPWsuZztnPWsuZjtKc2QoayxuZXcgcmpkKGgsZyksbmV3IHJqZChqLGkpKX19XG5mdW5jdGlvbiB2QWQoYSl7dmFyIGIsYyxkLGUsZixnLGg7aWYoYT09bnVsbCl7cmV0dXJuIG51bGx9aD1hLmxlbmd0aDtlPShoKzEpLzJ8MDtnPSRDKGdFLFlIZSwyOCxlLDE1LDEpO2glMiE9MCYmKGdbLS1lXT1KQWQoKEJGYihoLTEsYS5sZW5ndGgpLGEuY2hhckNvZGVBdChoLTEpKSkpO2ZvcihjPTAsZD0wO2M8ZTsrK2Mpe2I9SkFkKGloYihhLGQrKykpO2Y9SkFkKGloYihhLGQrKykpO2dbY109KGI8PDR8Zik8PDI0Pj4yNH1yZXR1cm4gZ31cbmZ1bmN0aW9uIEJmYihhKXtpZihhLnplKCkpe3ZhciBiPWEuYztiLkFlKCk/KGEubz0nWycrYi5uKTohYi56ZSgpPyhhLm89J1tMJytiLnhlKCkrJzsnKTooYS5vPSdbJytiLnhlKCkpO2EuYj1iLndlKCkrJ1tdJzthLms9Yi55ZSgpKydbXSc7cmV0dXJufXZhciBjPWEuajt2YXIgZD1hLmQ7ZD1kLnNwbGl0KCcvJyk7YS5vPUVmYignLicsW2MsRWZiKCckJyxkKV0pO2EuYj1FZmIoJy4nLFtjLEVmYignLicsZCldKTthLms9ZFtkLmxlbmd0aC0xXX1cbmZ1bmN0aW9uIGhKYihhLGIpe3ZhciBjLGQsZSxmLGc7Zz1udWxsO2ZvcihmPW5ldyBBbmIoYS5lLmEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMjUpO2lmKGUuYi5hLmMubGVuZ3RoPT1lLmcuYS5jLmxlbmd0aCl7ZD1lLmU7Zz1zSmIoZSk7Zm9yKGM9ZS5lLVJEKGcuYSwxNykuYSsxO2M8ZS5lK1JEKGcuYiwxNykuYTtjKyspe2JbY108YltkXSYmKGQ9Yyl9aWYoYltkXTxiW2UuZV0pey0tYltlLmVdOysrYltkXTtlLmU9ZH19fX1cbmZ1bmN0aW9uIHFRYyhhKXt2YXIgYixjLGQsZSxmLGcsaCxpO2U9b3hlO2Q9cHhlO2ZvcihjPW5ldyBBbmIoYS5lLmIpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwzMCk7Zm9yKGc9bmV3IEFuYihiLmEpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxMCk7aT1LZmIoYS5wW2YucF0pO2g9aStLZmIoYS5iW2EuZ1tmLnBdLnBdKTtlPSR3bmQuTWF0aC5taW4oZSxpKTtkPSR3bmQuTWF0aC5tYXgoZCxoKX19cmV0dXJuIGQtZX1cbmZ1bmN0aW9uIG5TZChhKXtnU2QoKTt2YXIgYixjLGQsZTtkPXFoYihhLEZoYigzNSkpO2I9ZD09LTE/YTooQUZiKDAsZCxhLmxlbmd0aCksYS5zdWJzdHIoMCxkKSk7Yz1kPT0tMT9udWxsOihCRmIoZCsxLGEubGVuZ3RoKzEpLGEuc3Vic3RyKGQrMSkpO2U9S1NkKGZTZCxiKTtpZighZSl7ZT1BU2QoYik7TFNkKGZTZCxiLGUpO2MhPW51bGwmJihlPWhTZChlLGMpKX1lbHNlIGMhPW51bGwmJihlPWhTZChlLCh1RmIoYyksYykpKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIFJlZShhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGo7aT1udWxsO2U9RmVlKGEsYik7Zm9yKGg9MCxqPWUuZ2MoKTtoPGo7KytoKXtmPVJEKGUuWGIoaCksMTc5KTtpZihsaGIoZCxBZmUoUWVlKGEsZikpKSl7Zz1CZmUoUWVlKGEsZikpO2lmKGM9PW51bGwpe2lmKGc9PW51bGwpe3JldHVybiBmfWVsc2UgIWkmJihpPWYpfWVsc2UgaWYobGhiKGMsZykpe3JldHVybiBmfWVsc2UgZz09bnVsbCYmIWkmJihpPWYpfX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFNlZShhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGo7aT1udWxsO2U9R2VlKGEsYik7Zm9yKGg9MCxqPWUuZ2MoKTtoPGo7KytoKXtmPVJEKGUuWGIoaCksMTc5KTtpZihsaGIoZCxBZmUoUWVlKGEsZikpKSl7Zz1CZmUoUWVlKGEsZikpO2lmKGM9PW51bGwpe2lmKGc9PW51bGwpe3JldHVybiBmfWVsc2UgIWkmJihpPWYpfWVsc2UgaWYobGhiKGMsZykpe3JldHVybiBmfWVsc2UgZz09bnVsbCYmIWkmJihpPWYpfX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFBnZShhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2c9bmV3IFlIZDtoPXBrZShhLmUuRGgoKSxiKTtkPVJEKGEuZywxMjQpO25rZSgpO2lmKFJEKGIsNjkpLnhrKCkpe2ZvcihmPTA7ZjxhLmk7KytmKXtlPWRbZl07aC5hbShlLkxrKCkpJiZXR2QoZyxlKX19ZWxzZXtmb3IoZj0wO2Y8YS5pOysrZil7ZT1kW2ZdO2lmKGguYW0oZS5MaygpKSl7aT1lLm1kKCk7V0dkKGcsYz9CZ2UoYSxiLGYsZy5pLGkpOmkpfX19cmV0dXJuIFdIZChnKX1cbmZ1bmN0aW9uIEtqZShhKXt2YXIgYixjLGQsZSxmLGcsaDtpZihhKXtiPWEucWkoQUtlKTtpZihiKXtnPVdEKCROZCgoIWIuYiYmKGIuYj1uZXcgU1ZkKChKVGQoKSxGVGQpLEM4LGIpKSxiLmIpLCdjb252ZXJzaW9uRGVsZWdhdGVzJykpO2lmKGchPW51bGwpe2g9bmV3IGJuYjtmb3IoZD12aGIoZywnXFxcXHcrJyksZT0wLGY9ZC5sZW5ndGg7ZTxmOysrZSl7Yz1kW2VdO1pFYihoLmMsYyl9cmV0dXJuIGh9fX1yZXR1cm4geW9iKCkseW9iKCksdm9ifVxuZnVuY3Rpb24gV1hiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksajtnPWI9PTE/TVhiOkxYYjtmb3IoZj1nLmEuZWMoKS5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDg4KTtmb3IoaT1SRChRYyhhLmYuYyxlKSwyMSkuS2MoKTtpLk9iKCk7KXtoPVJEKGkuUGIoKSw0Mik7ZD1SRChoLmIsODYpO2o9UkQoaC5hLDE5NCk7Yz1qLmM7c3dpdGNoKGUuZyl7Y2FzZSAyOmNhc2UgMTpkLmcuZCs9YzticmVhaztjYXNlIDQ6Y2FzZSAzOmQuZy5jKz1jO319fX1cbmZ1bmN0aW9uIGlkYyhhLGIpe3ZhciBjLGQsZSxmLGc7Yz1uZXcgWnJiKFpXKTtmb3IoZT0oYnRjKCksY0QoV0MoWlcsMSksandlLDIzMiwwLFtac2MsX3NjLFlzYywkc2MsYXRjLFhzY10pKSxmPTAsZz1lLmxlbmd0aDtmPGc7KytmKXtkPWVbZl07WHJiKGMsZCxuZXcgYm5iKX1GRGIoR0RiKENEYihFRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5iLDE2KSksbmV3IHlkYyksbmV3IEFkYyksbmV3IENkYyhiKSksbmV3IEVkYyhjKSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBuM2MoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtO2ZvcihmPWIuS2MoKTtmLk9iKCk7KXtlPVJEKGYuUGIoKSwyNyk7az1lLmkrZS5nLzI7bT1lLmorZS5mLzI7aT1hLmY7Zz1pLmkraS5nLzI7aD1pLmoraS5mLzI7aj1rLWc7bD1tLWg7ZD0kd25kLk1hdGguc3FydChqKmorbCpsKTtqKj1hLmUvZDtsKj1hLmUvZDtpZihjKXtrLT1qO20tPWx9ZWxzZXtrKz1qO20rPWx9RHlkKGUsay1lLmcvMik7RXlkKGUsbS1lLmYvMil9fVxuZnVuY3Rpb24gdnRlKGEpe3ZhciBiLGMsZDtpZihhLmMpcmV0dXJuO2lmKGEuYj09bnVsbClyZXR1cm47Zm9yKGI9YS5iLmxlbmd0aC00O2I+PTA7Yi09Mil7Zm9yKGM9MDtjPD1iO2MrPTIpe2lmKGEuYltjXT5hLmJbYysyXXx8YS5iW2NdPT09YS5iW2MrMl0mJmEuYltjKzFdPmEuYltjKzNdKXtkPWEuYltjKzJdO2EuYltjKzJdPWEuYltjXTthLmJbY109ZDtkPWEuYltjKzNdO2EuYltjKzNdPWEuYltjKzFdO2EuYltjKzFdPWR9fX1hLmM9dHJ1ZX1cbmZ1bmN0aW9uIG5LYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztqPS0xO2s9MDtmb3IoZz1hLGg9MCxpPWcubGVuZ3RoO2g8aTsrK2gpe2Y9Z1toXTtjPW5ldyBocmMoaj09LTE/YVswXTphW2pdLGIsKGxEYygpLGtEYykpO2ZvcihkPTA7ZDxmLmxlbmd0aDtkKyspe2ZvcihlPWQrMTtlPGYubGVuZ3RoO2UrKyl7blFiKGZbZF0sKFl3YygpLHp3YykpJiZuUWIoZltlXSx6d2MpJiZjcmMoYyxmW2RdLGZbZV0pPjAmJisra319KytqfXJldHVybiBrfVxuZnVuY3Rpb24gYXdkKGEpe3ZhciBiLGM7Yz1uZXcgZGliKG5mYihhLlJtKSk7Yy5hKz0nQCc7WmhiKGMsKGI9dGIoYSk+Pj4wLGIudG9TdHJpbmcoMTYpKSk7aWYoYS5WaCgpKXtjLmErPScgKGVQcm94eVVSSTogJztZaGIoYyxhLl9oKCkpO2lmKGEuS2goKSl7Yy5hKz0nIGVDbGFzczogJztZaGIoYyxhLktoKCkpfWMuYSs9JyknfWVsc2UgaWYoYS5LaCgpKXtjLmErPScgKGVDbGFzczogJztZaGIoYyxhLktoKCkpO2MuYSs9JyknfXJldHVybiBjLmF9XG5mdW5jdGlvbiBLR2IoYSl7dmFyIGIsYyxkLGU7aWYoYS5lKXt0aHJvdyBBZGIobmV3IGRnYigobGZiKGxOKSxseWUrbE4uaytteWUpKSl9YS5kPT0oQ21kKCksQW1kKSYmSkdiKGEseW1kKTtmb3IoYz1uZXcgQW5iKGEuYS5hKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMzE2KTtiLmc9Yi5pfWZvcihlPW5ldyBBbmIoYS5hLmIpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSw2MCk7ZC5pPXB4ZX1hLmIuY2YoYSk7cmV0dXJuIGF9XG5mdW5jdGlvbiByVWMoYSxiKXt2YXIgYyxkLGUsZixnO2lmKGI8MiphLmIpe3Rocm93IEFkYihuZXcgYWdiKCdUaGUga25vdCB2ZWN0b3IgbXVzdCBoYXZlIGF0IGxlYXN0IHR3byB0aW1lIHRoZSBkaW1lbnNpb24gZWxlbWVudHMuJykpfWEuZj0xO2ZvcihlPTA7ZTxhLmI7ZSsrKXtSbWIoYS5lLDApfWc9YisxLTIqYS5iO2M9Zztmb3IoZj0xO2Y8ZztmKyspe1JtYihhLmUsZi9jKX1pZihhLmQpe2ZvcihkPTA7ZDxhLmI7ZCsrKXtSbWIoYS5lLDEpfX19XG5mdW5jdGlvbiBBRWQoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGs7aj1iO2s9UkQobHAoQ28oYS5pKSxqKSwyNyk7aWYoIWspe2U9ekRkKGosdUllKTtoPVwiVW5hYmxlIHRvIGZpbmQgZWxrIG5vZGUgZm9yIGpzb24gb2JqZWN0ICdcIitlO2k9aCtcIicgUGFuaWMhXCI7dGhyb3cgQWRiKG5ldyBDRGQoaSkpfWY9d0RkKGosJ2VkZ2VzJyk7Yz1uZXcgS0VkKGEsayk7TURkKGMuYSxjLmIsZik7Zz13RGQoaixpSWUpO2Q9bmV3IFZFZChhKTtYRGQoZC5hLGcpfVxuZnVuY3Rpb24gWE5kKGEsYixjLGQpe3ZhciBlLGYsZyxoLGk7aWYoZCE9bnVsbCl7ZT1hLmRbYl07aWYoZSl7Zj1lLmc7aT1lLmk7Zm9yKGg9MDtoPGk7KytoKXtnPVJEKGZbaF0sMTM2KTtpZihnLkJpKCk9PWMmJnBiKGQsZy5sZCgpKSl7cmV0dXJuIGh9fX19ZWxzZXtlPWEuZFtiXTtpZihlKXtmPWUuZztpPWUuaTtmb3IoaD0wO2g8aTsrK2gpe2c9UkQoZltoXSwxMzYpO2lmKGRFKGcubGQoKSk9PT1kRShkKSl7cmV0dXJuIGh9fX19cmV0dXJuIC0xfVxuZnVuY3Rpb24gTjVkKGEsYil7dmFyIGMsZCxlO2M9Yj09bnVsbD9XZChxdGIoYS5mLG51bGwpKTpLdGIoYS5pLGIpO2lmKFpEKGMsMjQxKSl7ZT1SRChjLDI0MSk7ZS56aSgpPT1udWxsJiZ1bmRlZmluZWQ7cmV0dXJuIGV9ZWxzZSBpZihaRChjLDUwNykpe2Q9UkQoYywyMDM3KTtlPWQuYTshIWUmJihlLnliPT1udWxsP3VuZGVmaW5lZDpiPT1udWxsP3J0YihhLmYsbnVsbCxlKTpMdGIoYS5pLGIsZSkpO3JldHVybiBlfWVsc2V7cmV0dXJuIG51bGx9fVxuZnVuY3Rpb24gSHFlKGEpe0dxZSgpO3ZhciBiLGMsZCxlLGYsZyxoO2lmKGE9PW51bGwpcmV0dXJuIG51bGw7ZT1hLmxlbmd0aDtpZihlJTIhPTApcmV0dXJuIG51bGw7Yj1BaGIoYSk7Zj1lLzJ8MDtjPSRDKGdFLFlIZSwyOCxmLDE1LDEpO2ZvcihkPTA7ZDxmO2QrKyl7Zz1FcWVbYltkKjJdXTtpZihnPT0tMSlyZXR1cm4gbnVsbDtoPUVxZVtiW2QqMisxXV07aWYoaD09LTEpcmV0dXJuIG51bGw7Y1tkXT0oZzw8NHxoKTw8MjQ+PjI0fXJldHVybiBjfVxuZnVuY3Rpb24gY05iKGEsYixjKXt2YXIgZCxlLGY7ZT1SRChWcmIoYS5pLGIpLDMxNCk7aWYoIWUpe2U9bmV3IFVLYihhLmQsYixjKTtXcmIoYS5pLGIsZSk7aWYoak1iKGIpKXt0S2IoYS5hLGIuYyxiLmIsZSl9ZWxzZXtmPWlNYihiKTtkPVJEKFZyYihhLnAsZiksMjUyKTtzd2l0Y2goZi5nKXtjYXNlIDE6Y2FzZSAzOmUuaj10cnVlO2NMYihkLGIuYixlKTticmVhaztjYXNlIDQ6Y2FzZSAyOmUuaz10cnVlO2NMYihkLGIuYyxlKTt9fX1yZXR1cm4gZX1cbmZ1bmN0aW9uIE5kYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztpPWV2KGEuYy1hLmImYS5hLmxlbmd0aC0xKTtqPW51bGw7az1udWxsO2ZvcihmPW5ldyBLbWIoYSk7Zi5hIT1mLmI7KXtlPVJEKEltYihmKSwxMCk7Yz0oaD1SRChtUWIoZSwoWXdjKCksdndjKSksMTIpLCFoP251bGw6aC5pKTtkPShnPVJEKG1RYihlLHd3YyksMTIpLCFnP251bGw6Zy5pKTtpZihqIT1jfHxrIT1kKXtSZGMoaSxiKTtqPWM7az1kfVpFYihpLmMsZSl9UmRjKGksYil9XG5mdW5jdGlvbiBSZ2UoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqO2g9bmV3IFlIZDtpPXBrZShhLmUuRGgoKSxiKTtlPVJEKGEuZywxMjQpO25rZSgpO2lmKFJEKGIsNjkpLnhrKCkpe2ZvcihnPTA7ZzxhLmk7KytnKXtmPWVbZ107aS5hbShmLkxrKCkpJiZXR2QoaCxmKX19ZWxzZXtmb3IoZz0wO2c8YS5pOysrZyl7Zj1lW2ddO2lmKGkuYW0oZi5MaygpKSl7aj1mLm1kKCk7V0dkKGgsZD9CZ2UoYSxiLGcsaC5pLGopOmopfX19cmV0dXJuIFhIZChoLGMpfVxuZnVuY3Rpb24gb0hjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksajtlPWEuYltiLnBdO2lmKGU+PTApe3JldHVybiBlfWVsc2V7Zj0xO2ZvcihoPW5ldyBBbmIoYi5qKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTIpO2ZvcihkPW5ldyBBbmIoZy5nKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMTgpO2o9Yy5kLmk7aWYoYiE9ail7aT1vSGMoYSxqKTtmPSR3bmQuTWF0aC5tYXgoZixpKzEpfX19bkhjKGEsYixmKTtyZXR1cm4gZn19XG5mdW5jdGlvbiB3SGMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2U9YS5iW2IucF07aWYoZT49MCl7cmV0dXJuIGV9ZWxzZXtmPTE7Zm9yKGg9bmV3IEFuYihiLmopO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMik7Zm9yKGQ9bmV3IEFuYihnLmUpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxOCk7aj1jLmMuaTtpZihiIT1qKXtpPXdIYyhhLGopO2Y9JHduZC5NYXRoLm1heChmLGkrMSl9fX12SGMoYSxiLGYpO3JldHVybiBmfX1cbmZ1bmN0aW9uIHdMYyhhLGIsYyl7dmFyIGQsZSxmO2ZvcihkPTE7ZDxhLmMubGVuZ3RoO2QrKyl7Zj0odEZiKGQsYS5jLmxlbmd0aCksUkQoYS5jW2RdLDEwKSk7ZT1kO3doaWxlKGU+MCYmYi5OZSgodEZiKGUtMSxhLmMubGVuZ3RoKSxSRChhLmNbZS0xXSwxMCkpLGYpPjApeyRtYihhLGUsKHRGYihlLTEsYS5jLmxlbmd0aCksUkQoYS5jW2UtMV0sMTApKSk7LS1lfXRGYihlLGEuYy5sZW5ndGgpO2EuY1tlXT1mfWMuYT1uZXcgVHNiO2MuYj1uZXcgVHNifVxuZnVuY3Rpb24geWhkKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrO2s9KGQ9UkQoYi5lJiZiLmUoKSw5KSxuZXcgRnNiKGQsUkQoV0ViKGQsZC5sZW5ndGgpLDkpLDApKTtpPXZoYihjLCdbXFxcXFtcXFxcXVxcXFxzLF0rJyk7Zm9yKGY9aSxnPTAsaD1mLmxlbmd0aDtnPGg7KytnKXtlPWZbZ107aWYoRGhiKGUpLmxlbmd0aD09MCl7Y29udGludWV9aj14aGQoYSxlKTtpZihqPT1udWxsKXtyZXR1cm4gbnVsbH1lbHNle3pzYihrLFJEKGosMjIpKX19cmV0dXJuIGt9XG5mdW5jdGlvbiB0c2UoYSl7dmFyIGIsYyxkLGU7ZT1hLmxlbmd0aDtiPW51bGw7Zm9yKGQ9MDtkPGU7ZCsrKXtjPShCRmIoZCxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGQpKTtpZihxaGIoJy4qKz97WygpfFxcXFxeJCcsRmhiKGMpKT49MCl7aWYoIWIpe2I9bmV3IFJoYjtkPjAmJk5oYihiLChBRmIoMCxkLGEubGVuZ3RoKSxhLnN1YnN0cigwLGQpKSl9Yi5hKz0nXFxcXCc7SmhiKGIsYyZCd2UpfWVsc2UgISFiJiZKaGIoYixjJkJ3ZSl9cmV0dXJuIGI/Yi5hOmF9XG5mdW5jdGlvbiBNWWIoYSl7dmFyIGIsYyxkO2ZvcihjPW5ldyBBbmIoYS5hLmEuYik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDg2KTtkPSh1RmIoMCksMCk7aWYoZD4wKXshKERtZChhLmEuYykmJmIubi5kKSYmIShFbWQoYS5hLmMpJiZiLm4uYikmJihiLmcuZC09JHduZC5NYXRoLm1heCgwLGQvMi0wLjUpKTshKERtZChhLmEuYykmJmIubi5hKSYmIShFbWQoYS5hLmMpJiZiLm4uYykmJihiLmcuYSs9JHduZC5NYXRoLm1heCgwLGQtMSkpfX19XG5mdW5jdGlvbiBZZGMoYSxiLGMpe3ZhciBkLGU7aWYoKGEuYy1hLmImYS5hLmxlbmd0aC0xKT09Mil7aWYoYj09KHFwZCgpLFlvZCl8fGI9PVhvZCl7T2RjKFJEKG9tYihhKSwxNSksKFBuZCgpLExuZCkpO09kYyhSRChvbWIoYSksMTUpLE1uZCl9ZWxzZXtPZGMoUkQob21iKGEpLDE1KSwoUG5kKCksTW5kKSk7T2RjKFJEKG9tYihhKSwxNSksTG5kKX19ZWxzZXtmb3IoZT1uZXcgS21iKGEpO2UuYSE9ZS5iOyl7ZD1SRChJbWIoZSksMTUpO09kYyhkLGMpfX19XG5mdW5jdGlvbiBIR2QoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtlPWN2KG5ldyBRR2QoYSkpO2g9bmV3IEprYihlLGUuYy5sZW5ndGgpO2Y9Y3YobmV3IFFHZChiKSk7aT1uZXcgSmtiKGYsZi5jLmxlbmd0aCk7Zz1udWxsO3doaWxlKGguYj4wJiZpLmI+MCl7Yz0oc0ZiKGguYj4wKSxSRChoLmEuWGIoaC5jPS0taC5iKSwyNykpO2Q9KHNGYihpLmI+MCksUkQoaS5hLlhiKGkuYz0tLWkuYiksMjcpKTtpZihjPT1kKXtnPWN9ZWxzZXticmVha319cmV0dXJuIGd9XG5mdW5jdGlvbiBEbWMoYSxiLGMpe3ZhciBkLGUsZixnO2lmKEhtYyhhLGIpPkhtYyhhLGMpKXtkPWIzYihjLChxcGQoKSxYb2QpKTthLmQ9ZC5kYygpPzA6TDNiKFJEKGQuWGIoMCksMTIpKTtnPWIzYihiLHBwZCk7YS5iPWcuZGMoKT8wOkwzYihSRChnLlhiKDApLDEyKSl9ZWxzZXtlPWIzYihjLChxcGQoKSxwcGQpKTthLmQ9ZS5kYygpPzA6TDNiKFJEKGUuWGIoMCksMTIpKTtmPWIzYihiLFhvZCk7YS5iPWYuZGMoKT8wOkwzYihSRChmLlhiKDApLDEyKSl9fVxuZnVuY3Rpb24gd05iKGEsYil7dmFyIGMsZCxlLGY7Yz1hLm8uYTtmb3IoZj1SRChSRChRYyhhLnIsYiksMjEpLDg3KS5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDExNyk7ZS5lLmE9YypLZmIoVUQoZS5iLm9mKHNOYikpKTtlLmUuYj0oZD1lLmIsZC5wZigodW1kKCksR2xkKSk/ZC5hZygpPT0ocXBkKCksWW9kKT8tZC5NZigpLmItS2ZiKFVEKGQub2YoR2xkKSkpOktmYihVRChkLm9mKEdsZCkpKTpkLmFnKCk9PShxcGQoKSxZb2QpPy1kLk1mKCkuYjowKX19XG5mdW5jdGlvbiBNaGMoYSxiKXt2YXIgYyxkLGUsZjtiLlVnKCdTZWxmLUxvb3AgcHJlLXByb2Nlc3NpbmcnLDEpO2ZvcihkPW5ldyBBbmIoYS5hKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMTApO2lmKHBuYyhjKSl7ZT0oZj1uZXcgb25jKGMpLHBRYihjLChZd2MoKSxQd2MpLGYpLGxuYyhmKSxmKTtGRGIoR0RiKEVEYihuZXcgU0RiKG51bGwsbmV3IFN3YihlLmQsMTYpKSxuZXcgUGhjKSxuZXcgUmhjKSxuZXcgVGhjKTtLaGMoZSl9fWIuVmcoKX1cbmZ1bmN0aW9uIHhzYyhhKXt2YXIgYixjLGQsZSxmLGcsaCxpO2I9dHJ1ZTtlPW51bGw7Zj1udWxsO2o6Zm9yKGk9bmV3IEFuYihhLmEpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxMCk7Zm9yKGQ9bmV3IGlzKE1yKFoyYihoKS5hLktjKCksbmV3IGlyKSk7Z3MoZCk7KXtjPVJEKGhzKGQpLDE4KTtpZighIWUmJmUhPWgpe2I9ZmFsc2U7YnJlYWsgan1lPWg7Zz1jLmMuaTtpZighIWYmJmYhPWcpe2I9ZmFsc2U7YnJlYWsgan1mPWd9fXJldHVybiBifVxuZnVuY3Rpb24gbVRjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7Zj0tMTtoPS0xO2ZvcihnPTA7ZzxiLmMubGVuZ3RoO2crKyl7ZT0odEZiKGcsYi5jLmxlbmd0aCksUkQoYi5jW2ddLDMzOSkpO2lmKGUuYz5hLmMpe2JyZWFrfWVsc2UgaWYoZS5hPj1hLnMpe2Y8MCYmKGY9Zyk7aD1nfX1pPShhLnMrYS5jKS8yO2lmKGY+PTApe2Q9bFRjKGEsYixmLGgpO2k9eVRjKCh0RmIoZCxiLmMubGVuZ3RoKSxSRChiLmNbZF0sMzM5KSkpO3dUYyhiLGQsYyl9cmV0dXJuIGl9XG5mdW5jdGlvbiBfQWQoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqO2c9KGY9bmV3IHBWZCxmKTtuVmQoZywodUZiKGIpLGIpKTtqPSghZy5iJiYoZy5iPW5ldyBTVmQoKEpUZCgpLEZUZCksQzgsZykpLGcuYik7Zm9yKGk9MTtpPGMubGVuZ3RoO2krPTIpe2ZPZChqLGNbaS0xXSxjW2ldKX1kPSghYS5BYiYmKGEuQWI9bmV3IEM1ZChmNyxhLDAsMykpLGEuQWIpO2ZvcihoPTA7aDwwOysraCl7ZT1qVmQoUkQoUUhkKGQsZC5pLTEpLDU5OCkpO2Q9ZX1XR2QoZCxnKX1cbmZ1bmN0aW9uIERTYihhLGIsYyl7dmFyIGQsZSxmO2pRYi5jYWxsKHRoaXMsbmV3IGJuYik7dGhpcy5hPWI7dGhpcy5iPWM7dGhpcy5lPWE7ZD0oYS5iJiZDUmIoYSksYS5hKTt0aGlzLmQ9QlNiKGQuYSx0aGlzLmEpO3RoaXMuYz1CU2IoZC5iLHRoaXMuYik7YlFiKHRoaXMsdGhpcy5kLHRoaXMuYyk7Q1NiKHRoaXMpO2ZvcihmPXRoaXMuZS5lLmEuZWMoKS5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDI3Mik7ZS5jLmMubGVuZ3RoPjAmJkFTYih0aGlzLGUpfX1cbmZ1bmN0aW9uIHpUYihhLGIsYyxkLGUsZil7dmFyIGcsaCxpO2lmKCFlW2IuYV0pe2VbYi5hXT10cnVlO2c9ZDshZyYmKGc9bmV3IGdVYik7Um1iKGcuZSxiKTtmb3IoaT1mW2IuYV0uS2MoKTtpLk9iKCk7KXtoPVJEKGkuUGIoKSwyOTApO2lmKGguZD09Y3x8aC5jPT1jKXtjb250aW51ZX1oLmMhPWImJnpUYihhLGguYyxiLGcsZSxmKTtoLmQhPWImJnpUYihhLGguZCxiLGcsZSxmKTtSbWIoZy5jLGgpO1RtYihnLmQsaC5iKX1yZXR1cm4gZ31yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIHY3YihhKXt2YXIgYixjLGQsZSxmLGcsaDtiPTA7Zm9yKGU9bmV3IEFuYihhLmUpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxOCk7Yz15RGIobmV3IFNEYihudWxsLG5ldyBTd2IoZC5iLDE2KSksbmV3IE43Yik7YyYmKytifWZvcihnPW5ldyBBbmIoYS5nKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMTgpO2g9eURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGYuYiwxNikpLG5ldyBQN2IpO2gmJisrYn1yZXR1cm4gYj49Mn1cbmZ1bmN0aW9uIF9xYyhhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosaztmPWEuYy5kLmo7Zz1SRChqdShjLDApLDgpO2ZvcihrPTE7azxjLmI7aysrKXtqPVJEKGp1KGMsayksOCk7UHViKGQsZyxkLmMuYixkLmMpO2g9aWpkKCRpZChuZXcgc2pkKGcpLGopLDAuNSk7aT1pamQobmV3IHFqZChCVmMoZikpLGUpOyRpZChoLGkpO1B1YihkLGgsZC5jLmIsZC5jKTtnPWo7Zj1iPT0wP3RwZChmKTpycGQoZil9TXViKGQsKHNGYihjLmIhPTApLFJEKGMuYy5iLmMsOCkpKX1cbmZ1bmN0aW9uIGZvZChhKXtkb2QoKTt2YXIgYixjLGQ7Yz15c2IoJG5kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtfbmRdKSk7aWYoZHkoVHgoYyxhKSk+MSl7cmV0dXJuIGZhbHNlfWI9eXNiKFhuZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbV25kLFpuZF0pKTtpZihkeShUeChiLGEpKT4xKXtyZXR1cm4gZmFsc2V9ZD15c2IoY29kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtib2QsYW9kXSkpO2lmKGR5KFR4KGQsYSkpPjEpe3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX1cbmZ1bmN0aW9uICRVYyhhLGIsYyl7dmFyIGQsZSxmO2ZvcihmPW5ldyBBbmIoYS50KTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZiksMjc0KTtpZihkLmIuczwwJiZkLmM+MCl7ZC5iLm4tPWQuYztkLmIubjw9MCYmZC5iLnU+MCYmTXViKGIsZC5iKX19Zm9yKGU9bmV3IEFuYihhLmkpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwyNzQpO2lmKGQuYS5zPDAmJmQuYz4wKXtkLmEudS09ZC5jO2QuYS51PD0wJiZkLmEubj4wJiZNdWIoYyxkLmEpfX19XG5mdW5jdGlvbiB0SWQoYSl7dmFyIGIsYyxkLGUsZjtpZihhLmc9PW51bGwpe2EuZD1hLmJqKGEuZik7V0dkKGEsYS5kKTtpZihhLmMpe2Y9YS5mO3JldHVybiBmfX1iPVJEKGEuZ1thLmktMV0sNTEpO2U9Yi5QYigpO2EuZT1iO2M9YS5iaihlKTtpZihjLk9iKCkpe2EuZD1jO1dHZChhLGMpfWVsc2V7YS5kPW51bGw7d2hpbGUoIWIuT2IoKSl7YkQoYS5nLC0tYS5pLG51bGwpO2lmKGEuaT09MCl7YnJlYWt9ZD1SRChhLmdbYS5pLTFdLDUxKTtiPWR9fXJldHVybiBlfVxuZnVuY3Rpb24gUmZlKGEsYil7dmFyIGMsZCxlLGYsZyxoO2Q9YjtlPWQuTGsoKTtpZihxa2UoYS5lLGUpKXtpZihlLlNpKCkmJmNnZShhLGUsZC5tZCgpKSl7cmV0dXJuIGZhbHNlfX1lbHNle2g9cGtlKGEuZS5EaCgpLGUpO2M9UkQoYS5nLDEyNCk7Zm9yKGY9MDtmPGEuaTsrK2Ype2c9Y1tmXTtpZihoLmFtKGcuTGsoKSkpe2lmKHBiKGcsZCkpe3JldHVybiBmYWxzZX1lbHNle1JEKGVIZChhLGYsYiksNzYpO3JldHVybiB0cnVlfX19fXJldHVybiBXR2QoYSxiKX1cbmZ1bmN0aW9uIEljYyhhLGIsYyxkKXt2YXIgZSxmLGcsaDtlPW5ldyBqM2IoYSk7aDNiKGUsKHIzYigpLG4zYikpO3BRYihlLChZd2MoKSxBd2MpLGIpO3BRYihlLE13YyxkKTtwUWIoZSwoeUNjKCksQkJjKSwoQm9kKCksd29kKSk7cFFiKGUsdndjLGIuYyk7cFFiKGUsd3djLGIuZCk7T2VjKGIsZSk7aD0kd25kLk1hdGguZmxvb3IoYy8yKTtmb3IoZz1uZXcgQW5iKGUuaik7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEyKTtmLm4uYj1ofXJldHVybiBlfVxuZnVuY3Rpb24gZlNjKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2I9MDtmb3IoZD1uZXcgQW5iKGEuYSk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDEwKTtmb3IoZj1uZXcgaXMoTXIoYTNiKGMpLmEuS2MoKSxuZXcgaXIpKTtncyhmKTspe2U9UkQoaHMoZiksMTgpO2lmKGE9PWUuZC5pLmMmJmUuYy5qPT0ocXBkKCkscHBkKSl7Zz1LM2IoZS5jKS5iO2g9SzNiKGUuZCkuYjtiPSR3bmQuTWF0aC5tYXgoYiwkd25kLk1hdGguYWJzKGgtZykpfX19cmV0dXJuIGJ9XG5mdW5jdGlvbiBRVGIoYSxiLGMpe3ZhciBkLGUsZixnLGg7Yy5VZygnRUxLIEZvcmNlJywxKTtIZWIoVEQoR3hkKGIsKHlWYigpLGdWYikpKSl8fFJGYigoZD1uZXcgU0ZiKChsdWQoKSxuZXcgenVkKGIpKSksZCkpO2g9S1RiKGIpO1JUYihoKTtTVGIoYSxSRChtUWIoaCxiVmIpLDQzMikpO2c9Q1RiKGEuYSxoKTtmb3IoZj1nLktjKCk7Zi5PYigpOyl7ZT1SRChmLlBiKCksMjM1KTtwVWIoYS5iLGUsYy5laCgxL2cuZ2MoKSkpfWg9QlRiKGcpO0pUYihoKTtjLlZnKCl9XG5mdW5jdGlvbiBkX2IoYSxiLGMpe3N3aXRjaChjLmcpe2Nhc2UgMTpyZXR1cm4gbmV3IHJqZChiLmEsJHduZC5NYXRoLm1pbihhLmQuYixiLmIpKTtjYXNlIDI6cmV0dXJuIG5ldyByamQoJHduZC5NYXRoLm1heChhLmMuYSxiLmEpLGIuYik7Y2FzZSAzOnJldHVybiBuZXcgcmpkKGIuYSwkd25kLk1hdGgubWF4KGEuYy5iLGIuYikpO2Nhc2UgNDpyZXR1cm4gbmV3IHJqZCgkd25kLk1hdGgubWluKGIuYSxhLmQuYSksYi5iKTt9cmV0dXJuIG5ldyByamQoYi5hLGIuYil9XG5mdW5jdGlvbiB5R2QoYSl7dmFyIGIsYyxkO2I9ZXYoMSsoIWEuYyYmKGEuYz1uZXcgQzVkKEs0LGEsOSw5KSksYS5jKS5pKTtSbWIoYiwoIWEuZCYmKGEuZD1uZXcgWWllKEc0LGEsOCw1KSksYS5kKSk7Zm9yKGQ9bmV3IGRNZCgoIWEuYyYmKGEuYz1uZXcgQzVkKEs0LGEsOSw5KSksYS5jKSk7ZC5lIT1kLmkuZ2MoKTspe2M9UkQoYk1kKGQpLDEyMyk7Um1iKGIsKCFjLmQmJihjLmQ9bmV3IFlpZShHNCxjLDgsNSkpLGMuZCkpfXJldHVybiBRYihiKSxuZXcgRGwoYil9XG5mdW5jdGlvbiB6R2QoYSl7dmFyIGIsYyxkO2I9ZXYoMSsoIWEuYyYmKGEuYz1uZXcgQzVkKEs0LGEsOSw5KSksYS5jKS5pKTtSbWIoYiwoIWEuZSYmKGEuZT1uZXcgWWllKEc0LGEsNyw0KSksYS5lKSk7Zm9yKGQ9bmV3IGRNZCgoIWEuYyYmKGEuYz1uZXcgQzVkKEs0LGEsOSw5KSksYS5jKSk7ZC5lIT1kLmkuZ2MoKTspe2M9UkQoYk1kKGQpLDEyMyk7Um1iKGIsKCFjLmUmJihjLmU9bmV3IFlpZShHNCxjLDcsNCkpLGMuZSkpfXJldHVybiBRYihiKSxuZXcgRGwoYil9XG5mdW5jdGlvbiBqbmUoYSl7dmFyIGIsYyxkLGU7aWYoYT09bnVsbCl7cmV0dXJuIG51bGx9ZWxzZXtkPW51ZShhLHRydWUpO2U9bUxlLmxlbmd0aDtpZihsaGIoZC5zdWJzdHIoZC5sZW5ndGgtZSxlKSxtTGUpKXtjPWQubGVuZ3RoO2lmKGM9PTQpe2I9KEJGYigwLGQubGVuZ3RoKSxkLmNoYXJDb2RlQXQoMCkpO2lmKGI9PTQzKXtyZXR1cm4gV21lfWVsc2UgaWYoYj09NDUpe3JldHVybiBWbWV9fWVsc2UgaWYoYz09Myl7cmV0dXJuIFdtZX19cmV0dXJuIE5lYihkKX19XG5mdW5jdGlvbiBfcmMoYSxiKXt2YXIgYyxkLGUsZixnO2IuVWcoJ0JyZWFraW5nIFBvaW50IFByb2Nlc3NvcicsMSk7JHJjKGEpO2lmKEhlYihURChtUWIoYSwoeUNjKCksdUNjKSkpKSl7Zm9yKGU9bmV3IEFuYihhLmIpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwzMCk7Yz0wO2ZvcihnPW5ldyBBbmIoZC5hKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMTApO2YucD1jKyt9fVZyYyhhKTtXcmMoYSx0cnVlKTtXcmMoYSxmYWxzZSl9Yi5WZygpfVxuZnVuY3Rpb24gTUpjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbTtsPWQ/KHFwZCgpLHBwZCk6KHFwZCgpLFhvZCk7ZT1mYWxzZTtmb3IoaT1iW2NdLGo9MCxrPWkubGVuZ3RoO2o8azsrK2ope2g9aVtqXTtpZihDb2QoUkQobVFiKGgsKHlDYygpLEJCYykpLDEwMSkpKXtjb250aW51ZX1nPWguZTttPSFiM2IoaCxsKS5kYygpJiYhIWc7aWYobSl7Zj1jMWIoZyk7YS5iPW5ldyBZbGMoZixkPzA6Zi5sZW5ndGgtMSl9ZT1lfE5KYyhhLGgsbCxtKX1yZXR1cm4gZX1cbmZ1bmN0aW9uIGdPYyhhLGIsYyxkKXt2YXIgZSxmLGc7Zz1UMGIoYixjKTtaRWIoZC5jLGIpO2lmKGEualtnLnBdPT0tMXx8YS5qW2cucF09PTJ8fGEuYVtiLnBdKXtyZXR1cm4gZH1hLmpbZy5wXT0tMTtmb3IoZj1uZXcgaXMoTXIoVzJiKGcpLmEuS2MoKSxuZXcgaXIpKTtncyhmKTspe2U9UkQoaHMoZiksMTgpO2lmKCEoIVcwYihlKSYmISghVzBiKGUpJiZlLmMuaS5jPT1lLmQuaS5jKSl8fGU9PWIpe2NvbnRpbnVlfXJldHVybiBnT2MoYSxlLGcsZCl9cmV0dXJuIGR9XG5mdW5jdGlvbiBBT2MoYSl7dmFyIGIsYyxkLGU7Yj0wO2M9MDtmb3IoZT1uZXcgQW5iKGEuaik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDEyKTtiPVlkYihCZGIoYixBRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGQuZSwxNikpLG5ldyBOUGMpKSkpO2M9WWRiKEJkYihjLEFEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IoZC5nLDE2KSksbmV3IFBQYykpKSk7aWYoYj4xfHxjPjEpe3JldHVybiAyfX1pZihiK2M9PTEpe3JldHVybiAyfXJldHVybiAwfVxuZnVuY3Rpb24gS3diKGEsYil7dmFyIGMsZCxlLGYsZyxoO2Y9YS5hKk14ZSthLmIqMTUwMjtoPWEuYipNeGUrMTE7Yz0kd25kLk1hdGguZmxvb3IoaCpOeGUpO2YrPWM7aC09YypPeGU7ZiU9T3hlO2EuYT1mO2EuYj1oO2lmKGI8PTI0KXtyZXR1cm4gJHduZC5NYXRoLmZsb29yKGEuYSpFd2JbYl0pfWVsc2V7ZT1hLmEqKDE8PGItMjQpO2c9JHduZC5NYXRoLmZsb29yKGEuYipGd2JbYl0pO2Q9ZStnO2Q+PTIxNDc0ODM2NDgmJihkLT00Mjk0OTY3Mjk2KTtyZXR1cm4gZH19XG5mdW5jdGlvbiB1U2MoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqO2Y9bmV3IGJuYjtqPW5ldyBZdWI7Zz1uZXcgWXViO3ZTYyhhLGosZyxiKTt0U2MoYSxqLGcsYixjKTtmb3IoaT1uZXcgQW5iKGEpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxMTgpO2ZvcihlPW5ldyBBbmIoaC5rKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTMyKTsoIWJ8fGQuYz09KGZUYygpLGRUYykpJiZoLmc+ZC5iLmcmJihaRWIoZi5jLGQpLHRydWUpfX1yZXR1cm4gZn1cbmZ1bmN0aW9uIGplZChhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2g9YS5jO2ZvcihnPSghYy5xPyh5b2IoKSx5b2IoKSx3b2IpOmMucSkudmMoKS5LYygpO2cuT2IoKTspe2Y9UkQoZy5QYigpLDQ0KTtkPSFRRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGgsMTYpKSxuZXcgUEFiKG5ldyB4ZWQoYixmKSkpKS5CZCgoeERiKCksd0RiKSk7aWYoZCl7aT1mLm1kKCk7aWYoWkQoaSw0KSl7ZT1GSWQoaSk7ZSE9bnVsbCYmKGk9ZSl9Yi5xZihSRChmLmxkKCksMTQ5KSxpKX19fVxuZnVuY3Rpb24gbWJkKGEsYixjKXt2YXIgZCxlO1NlZChhLmIpO1ZlZChhLmIsKGdiZCgpLGRiZCksKF9jZCgpLCRjZCkpO1ZlZChhLmIsZWJkLGIuZyk7VmVkKGEuYixmYmQsYi5hKTthLmE9UWVkKGEuYixiKTtjLlVnKCdDb21wYWN0aW9uIGJ5IHNocmlua2luZyBhIHRyZWUnLGEuYS5jLmxlbmd0aCk7aWYoYi5pLmMubGVuZ3RoPjEpe2ZvcihlPW5ldyBBbmIoYS5hKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksNDcpO2QuS2YoYixjLmVoKDEpKX19Yy5WZygpfVxuZnVuY3Rpb24gU3ZkKGEsYixjKXt2YXIgZCxlLGY7Zj1FZWUoKGxrZSgpLGprZSksYS5EaCgpLGIpO2lmKGYpe25rZSgpO2lmKCFSRChmLDY5KS54aygpKXtmPXpmZShRZWUoamtlLGYpKTtpZighZil7dGhyb3cgQWRiKG5ldyBhZ2IoS0hlK2IueGUoKStMSGUpKX19ZT0oZD1hLkloKGYpLFJEKGQ+PTA/YS5MaChkLHRydWUsdHJ1ZSk6UXZkKGEsZix0cnVlKSwxNjApKTtSRChlLDIyMCkuWGwoYixjKX1lbHNle3Rocm93IEFkYihuZXcgYWdiKEtIZStiLnhlKCkrTEhlKSl9fVxuZnVuY3Rpb24gazJkKGEsYil7dmFyIGMsZCxlLGYsZztpZighYil7cmV0dXJuIG51bGx9ZWxzZXtmPVpEKGEuQ2IsOTApfHxaRChhLkNiLDEwMik7Zz0hZiYmWkQoYS5DYiwzMzEpO2ZvcihkPW5ldyBkTWQoKCFiLmEmJihiLmE9bmV3IGlhZShiLG83LGIpKSxiLmEpKTtkLmUhPWQuaS5nYygpOyl7Yz1SRChiTWQoZCksODkpO2U9aTJkKGMpO2lmKGY/WkQoZSw5MCk6Zz9aRChlLDE1Nik6ISFlKXtyZXR1cm4gZX19cmV0dXJuIGY/KEpUZCgpLHpUZCk6KEpUZCgpLHdUZCl9fVxuZnVuY3Rpb24gVzhiKGEsYil7dmFyIGMsZCxlLGY7Yi5VZygnUmVzaXplIGNoaWxkIGdyYXBoIHRvIGZpdCBwYXJlbnQuJywxKTtmb3IoZD1uZXcgQW5iKGEuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDMwKTtUbWIoYS5hLGMuYSk7Yy5hLmMubGVuZ3RoPTB9Zm9yKGY9bmV3IEFuYihhLmEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMCk7ZzNiKGUsbnVsbCl9YS5iLmMubGVuZ3RoPTA7WDhiKGEpOyEhYS5lJiZWOGIoYS5lLGEpO2IuVmcoKX1cbmZ1bmN0aW9uIEZlYyhhLGIpe3ZhciBjLGQsZSxmLGc7Yi5VZygnRWRnZSBqb2luaW5nJywxKTtjPUhlYihURChtUWIoYSwoeUNjKCksbUNjKSkpKTtmb3IoZT1uZXcgQW5iKGEuYik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDMwKTtnPW5ldyBKa2IoZC5hLDApO3doaWxlKGcuYjxnLmQuZ2MoKSl7Zj0oc0ZiKGcuYjxnLmQuZ2MoKSksUkQoZy5kLlhiKGcuYz1nLmIrKyksMTApKTtpZihmLms9PShyM2IoKSxvM2IpKXtIZWMoZixjKTtDa2IoZyl9fX1iLlZnKCl9XG5mdW5jdGlvbiBwVGMoYSxiKXt2YXIgYyxkLGUsZixnO2M9bmV3IGJuYjtlPUVEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLDE2KSksbmV3IElUYyk7Zj1FRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYSwxNikpLG5ldyBLVGMpO2c9VkNiKFVDYihIRGIoTHkoY0QoV0MoUk0sMSkscnZlLDg0OCwwLFtlLGZdKSksbmV3IE1UYykpKTtmb3IoZD0xO2Q8Zy5sZW5ndGg7ZCsrKXtnW2RdLWdbZC0xXT49MipiJiZSbWIoYyxuZXcgQlRjKGdbZC0xXStiLGdbZF0tYikpfXJldHVybiBjfVxuZnVuY3Rpb24gZEVkKGEsYixjKXt2YXIgZCxlLGYsZyxoLGosayxsO2lmKGMpe2Y9Yy5hLmxlbmd0aDtkPW5ldyB2dWUoZik7Zm9yKGg9KGQuYi1kLmEpKmQuYzwwPyh1dWUoKSx0dWUpOm5ldyBSdWUoZCk7aC5PYigpOyl7Zz1SRChoLlBiKCksMTcpO2U9eERkKGMsZy5hKTshIWUmJihpPW51bGwsaj1zRWQoYSwoaz0oYnZkKCksbD1uZXcgUENkLGwpLCEhYiYmTkNkKGssYiksayksZSksanlkKGosekRkKGUsdUllKSksR0VkKGUsaiksSEVkKGUsaiksQ0VkKGEsZSxqKSl9fX1cbmZ1bmN0aW9uIHNZZChhKXt2YXIgYixjLGQsZSxmLGc7aWYoIWEuail7Zz1uZXcgZjFkO2I9aVlkO2Y9Yi5hLnpjKGEsYik7aWYoZj09bnVsbCl7Zm9yKGQ9bmV3IGRNZCh6WWQoYSkpO2QuZSE9ZC5pLmdjKCk7KXtjPVJEKGJNZChkKSwyOSk7ZT1zWWQoYyk7WUdkKGcsZSk7V0dkKGcsYyl9Yi5hLkJjKGEpIT1udWxsfVZIZChnKTthLmo9bmV3IE4kZCgoUkQoUUhkKHhZZCgobFRkKCksa1RkKS5vKSwxMSksMTkpLGcuaSksZy5nKTt5WWQoYSkuYiY9LTMzfXJldHVybiBhLmp9XG5mdW5jdGlvbiBsbmUoYSl7dmFyIGIsYyxkLGU7aWYoYT09bnVsbCl7cmV0dXJuIG51bGx9ZWxzZXtkPW51ZShhLHRydWUpO2U9bUxlLmxlbmd0aDtpZihsaGIoZC5zdWJzdHIoZC5sZW5ndGgtZSxlKSxtTGUpKXtjPWQubGVuZ3RoO2lmKGM9PTQpe2I9KEJGYigwLGQubGVuZ3RoKSxkLmNoYXJDb2RlQXQoMCkpO2lmKGI9PTQzKXtyZXR1cm4gWW1lfWVsc2UgaWYoYj09NDUpe3JldHVybiBYbWV9fWVsc2UgaWYoYz09Myl7cmV0dXJuIFltZX19cmV0dXJuIG5ldyBVZmIoZCl9fVxuZnVuY3Rpb24gcEQoYSl7dmFyIGIsYyxkO2M9YS5sO2lmKChjJmMtMSkhPTApe3JldHVybiAtMX1kPWEubTtpZigoZCZkLTEpIT0wKXtyZXR1cm4gLTF9Yj1hLmg7aWYoKGImYi0xKSE9MCl7cmV0dXJuIC0xfWlmKGI9PTAmJmQ9PTAmJmM9PTApe3JldHVybiAtMX1pZihiPT0wJiZkPT0wJiZjIT0wKXtyZXR1cm4gb2diKGMpfWlmKGI9PTAmJmQhPTAmJmM9PTApe3JldHVybiBvZ2IoZCkrMjJ9aWYoYiE9MCYmZD09MCYmYz09MCl7cmV0dXJuIG9nYihiKSs0NH1yZXR1cm4gLTF9XG5mdW5jdGlvbiB5byhhLGIpe3ZhciBjLGQsZSxmLGc7ZT1iLmEmYS5mO2Y9bnVsbDtmb3IoZD1hLmJbZV07dHJ1ZTtkPWQuYil7aWYoZD09Yil7IWY/KGEuYltlXT1iLmIpOihmLmI9Yi5iKTticmVha31mPWR9Zz1iLmYmYS5mO2Y9bnVsbDtmb3IoYz1hLmNbZ107dHJ1ZTtjPWMuZCl7aWYoYz09Yil7IWY/KGEuY1tnXT1iLmQpOihmLmQ9Yi5kKTticmVha31mPWN9IWIuZT8oYS5hPWIuYyk6KGIuZS5jPWIuYyk7IWIuYz8oYS5lPWIuZSk6KGIuYy5lPWIuZSk7LS1hLmk7KythLmd9XG5mdW5jdGlvbiBEdChhLGIpe3ZhciBjO2IuZD8oYi5kLmI9Yi5iKTooYS5hPWIuYik7Yi5iPyhiLmIuZD1iLmQpOihhLmU9Yi5kKTtpZighYi5lJiYhYi5jKXtjPVJEKEh2YihSRChfamIoYS5iLGIuYSksMjYwKSksMjYwKTtjLmE9MDsrK2EuY31lbHNle2M9UkQoSHZiKFJEKFdqYihhLmIsYi5hKSwyNjApKSwyNjApOy0tYy5hOyFiLmU/KGMuYj1SRChIdmIoYi5jKSw1MTEpKTooYi5lLmM9Yi5jKTshYi5jPyhjLmM9UkQoSHZiKGIuZSksNTExKSk6KGIuYy5lPWIuZSl9LS1hLmR9XG5mdW5jdGlvbiBYUGIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGs7Yz1hLm87Yj1hLnA7Zz1sdmU7ZT1xd2U7aD1sdmU7Zj1xd2U7Zm9yKGo9MDtqPGM7KytqKXtmb3Ioaz0wO2s8YjsrK2spe2lmKFBQYihhLGosaykpe2c9JHduZC5NYXRoLm1pbihnLGopO2U9JHduZC5NYXRoLm1heChlLGopO2g9JHduZC5NYXRoLm1pbihoLGspO2Y9JHduZC5NYXRoLm1heChmLGspfX19aT1lLWcrMTtkPWYtaCsxO3JldHVybiBuZXcgJHRkKHNnYihnKSxzZ2IoaCksc2diKGkpLHNnYihkKSl9XG5mdW5jdGlvbiBGWmIoYSxiKXt2YXIgYyxkLGUsZjtmPW5ldyBKa2IoYSwwKTtjPShzRmIoZi5iPGYuZC5nYygpKSxSRChmLmQuWGIoZi5jPWYuYisrKSwxNDgpKTt3aGlsZShmLmI8Zi5kLmdjKCkpe2Q9KHNGYihmLmI8Zi5kLmdjKCkpLFJEKGYuZC5YYihmLmM9Zi5iKyspLDE0OCkpO2U9bmV3IGZaYihkLmMsYy5kLGIpO3NGYihmLmI+MCk7Zi5hLlhiKGYuYz0tLWYuYik7SWtiKGYsZSk7c0ZiKGYuYjxmLmQuZ2MoKSk7Zi5kLlhiKGYuYz1mLmIrKyk7ZS5hPWZhbHNlO2M9ZH19XG5mdW5jdGlvbiBuNmIoYSl7dmFyIGIsYyxkLGUsZixnO2U9UkQobVFiKGEsKFl3YygpLFh2YykpLDEyKTtmb3IoZz1uZXcgQW5iKGEuaik7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEyKTtmb3IoZD1uZXcgQW5iKGYuZyk7ZC5hPGQuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGQpLDE4KTtaMGIoYixlKTtyZXR1cm4gZn1mb3IoYz1uZXcgQW5iKGYuZSk7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDE4KTtZMGIoYixlKTtyZXR1cm4gZn19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBYZWMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaTtpPVJEKCQ1YihhLmEsYiksMTcpLmE7Yz9jNmIoYS5hLHNnYihpKzEpLGIpOmM2YihhLmEsc2diKGktMSksYik7Zz1uZXcgSXViO2ZvcihlPW5ldyBpcyhNcigoYz9hM2IoYik6WjJiKGIpKS5hLktjKCksbmV3IGlyKSk7Z3MoZSk7KXtkPVJEKGhzKGUpLDE4KTtjPyhmPWQuZC5pKTooZj1kLmMuaSk7ZEUoJDViKGEuYSxmKSk9PT1kRSgkNWIoYS5hLGIpKSYmKGg9Zy5hLnpjKGYsZyksaD09bnVsbCl9cmV0dXJuIGd9XG5mdW5jdGlvbiB5QShhLGIsYyl7dmFyIGQsZTtkPUhkYihjLnEuZ2V0VGltZSgpKTtpZihEZGIoZCwwKTwwKXtlPUF3ZS1ZZGIoTWRiKE9kYihkKSxBd2UpKTtlPT1Bd2UmJihlPTApfWVsc2V7ZT1ZZGIoTWRiKGQsQXdlKSl9aWYoYj09MSl7ZT0kd25kLk1hdGgubWluKChlKzUwKS8xMDB8MCw5KTtUaGIoYSw0OCtlJkJ3ZSl9ZWxzZSBpZihiPT0yKXtlPSR3bmQuTWF0aC5taW4oKGUrNSkvMTB8MCw5OSk7VUEoYSxlLDIpfWVsc2V7VUEoYSxlLDMpO2I+MyYmVUEoYSwwLGItMyl9fVxuZnVuY3Rpb24gZVhiKGEpe3ZhciBiLGMsZCxlO2lmKGRFKG1RYihhLCh5Q2MoKSxJQWMpKSk9PT1kRSgoRm5kKCksQ25kKSkpe3JldHVybiAhYS5lJiZkRShtUWIoYSxnQWMpKSE9PWRFKCh4dmMoKSx1dmMpKX1kPVJEKG1RYihhLGhBYyksMjk5KTtlPUhlYihURChtUWIoYSxuQWMpKSl8fGRFKG1RYihhLG9BYykpPT09ZEUoKHN0YygpLHB0YykpO2I9UkQobVFiKGEsZkFjKSwxNykuYTtjPWEuYS5jLmxlbmd0aDtyZXR1cm4gIWUmJmQhPSh4dmMoKSx1dmMpJiYoYj09MHx8Yj5jKX1cbmZ1bmN0aW9uIFJuYyhhKXt2YXIgYixjO2M9MDtmb3IoO2M8YS5jLmxlbmd0aDtjKyspe2lmKHNuYygodEZiKGMsYS5jLmxlbmd0aCksUkQoYS5jW2NdLDExMykpKT4wKXticmVha319aWYoYz4wJiZjPGEuYy5sZW5ndGgtMSl7cmV0dXJuIGN9Yj0wO2Zvcig7YjxhLmMubGVuZ3RoO2IrKyl7aWYoc25jKCh0RmIoYixhLmMubGVuZ3RoKSxSRChhLmNbYl0sMTEzKSkpPjApe2JyZWFrfX1pZihiPjAmJmM8YS5jLmxlbmd0aC0xKXtyZXR1cm4gYn1yZXR1cm4gYS5jLmxlbmd0aC8yfDB9XG5mdW5jdGlvbiBNemQoYSxiKXt2YXIgYyxkO2lmKGIhPWEuQ2J8fGEuRGI+PjE2IT02JiYhIWIpe2lmKE9qZShhLGIpKXRocm93IEFkYihuZXcgYWdiKFVIZStRemQoYSkpKTtkPW51bGw7ISFhLkNiJiYoZD0oYz1hLkRiPj4xNixjPj0wP0N6ZChhLGQpOmEuQ2IuVGgoYSwtMS1jLG51bGwsZCkpKTshIWImJihkPUl2ZChiLGEsNixkKSk7ZD1CemQoYSxiLGQpOyEhZCYmZC5vaigpfWVsc2UgKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsMSw2LGIsYikpfVxuZnVuY3Rpb24gcHpkKGEsYil7dmFyIGMsZDtpZihiIT1hLkNifHxhLkRiPj4xNiE9MyYmISFiKXtpZihPamUoYSxiKSl0aHJvdyBBZGIobmV3IGFnYihVSGUrcXpkKGEpKSk7ZD1udWxsOyEhYS5DYiYmKGQ9KGM9YS5EYj4+MTYsYz49MD9qemQoYSxkKTphLkNiLlRoKGEsLTEtYyxudWxsLGQpKSk7ISFiJiYoZD1JdmQoYixhLDEyLGQpKTtkPWl6ZChhLGIsZCk7ISFkJiZkLm9qKCl9ZWxzZSAoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDMsYixiKSl9XG5mdW5jdGlvbiBOQ2QoYSxiKXt2YXIgYyxkO2lmKGIhPWEuQ2J8fGEuRGI+PjE2IT05JiYhIWIpe2lmKE9qZShhLGIpKXRocm93IEFkYihuZXcgYWdiKFVIZStPQ2QoYSkpKTtkPW51bGw7ISFhLkNiJiYoZD0oYz1hLkRiPj4xNixjPj0wP0xDZChhLGQpOmEuQ2IuVGgoYSwtMS1jLG51bGwsZCkpKTshIWImJihkPUl2ZChiLGEsOSxkKSk7ZD1LQ2QoYSxiLGQpOyEhZCYmZC5vaigpfWVsc2UgKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsMSw5LGIsYikpfVxuZnVuY3Rpb24gdFdkKGIpe3ZhciBjLGQsZSxmLGc7ZT1XVmQoYik7Zz1iLmo7aWYoZz09bnVsbCYmISFlKXtyZXR1cm4gYi5KaygpP251bGw6ZS5paygpfWVsc2UgaWYoWkQoZSwxNTYpKXtkPWUuamsoKTtpZihkKXtmPWQud2koKTtpZihmIT1iLmkpe2M9UkQoZSwxNTYpO2lmKGMubmsoKSl7dHJ5e2IuZz1mLnRpKGMsZyl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSw4Mikpe2IuZz1udWxsfWVsc2UgdGhyb3cgQWRiKGEpfX1iLmk9Zn19cmV0dXJuIGIuZ31yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIG5SYihhKXt2YXIgYjtiPW5ldyBibmI7Um1iKGIsbmV3IFRGYihuZXcgcmpkKGEuYyxhLmQpLG5ldyByamQoYS5jK2EuYixhLmQpKSk7Um1iKGIsbmV3IFRGYihuZXcgcmpkKGEuYyxhLmQpLG5ldyByamQoYS5jLGEuZCthLmEpKSk7Um1iKGIsbmV3IFRGYihuZXcgcmpkKGEuYythLmIsYS5kK2EuYSksbmV3IHJqZChhLmMrYS5iLGEuZCkpKTtSbWIoYixuZXcgVEZiKG5ldyByamQoYS5jK2EuYixhLmQrYS5hKSxuZXcgcmpkKGEuYyxhLmQrYS5hKSkpO3JldHVybiBifVxuZnVuY3Rpb24gaWMoYil7dmFyIGMsZCxlO2lmKGI9PW51bGwpe3JldHVybiB2dmV9dHJ5e3JldHVybiBqZWIoYil9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwxMDMpKXtjPWE7ZT1uZmIocmIoYikpKydAJysoZD0oZ2liKCksakZiKGIpKT4+PjAsZC50b1N0cmluZygxNikpO2xCYihwQmIoKSwoU0FiKCksJ0V4Y2VwdGlvbiBkdXJpbmcgbGVuaWVudEZvcm1hdCBmb3IgJytlKSxjKTtyZXR1cm4gJzwnK2UrJyB0aHJldyAnK25mYihjLlJtKSsnPid9ZWxzZSB0aHJvdyBBZGIoYSl9fVxuZnVuY3Rpb24gbVRiKGEsYixjKXt2YXIgZCxlLGY7Zm9yKGY9Yi5hLmVjKCkuS2MoKTtmLk9iKCk7KXtlPVJEKGYuUGIoKSw3NCk7ZD1SRChXamIoYS5iLGUpLDI3Mik7IWQmJih2Q2QoSkdkKGUpKT09dkNkKExHZChlKSk/bFRiKGEsZSxjKTpKR2QoZSk9PXZDZChMR2QoZSkpP1dqYihhLmMsZSk9PW51bGwmJldqYihhLmIsTEdkKGUpKSE9bnVsbCYmb1RiKGEsZSxjLGZhbHNlKTpXamIoYS5kLGUpPT1udWxsJiZXamIoYS5iLEpHZChlKSkhPW51bGwmJm9UYihhLGUsYyx0cnVlKSl9fVxuZnVuY3Rpb24gUGZjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7Zm9yKGU9YS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDEwKTtoPW5ldyBSM2I7UDNiKGgsZCk7UTNiKGgsKHFwZCgpLFhvZCkpO3BRYihoLChZd2MoKSxId2MpLChHZWIoKSx0cnVlKSk7Zm9yKGc9Yi5LYygpO2cuT2IoKTspe2Y9UkQoZy5QYigpLDEwKTtpPW5ldyBSM2I7UDNiKGksZik7UTNiKGkscHBkKTtwUWIoaSxId2MsdHJ1ZSk7Yz1uZXcgYTFiO3BRYihjLEh3Yyx0cnVlKTtZMGIoYyxoKTtaMGIoYyxpKX19fVxuZnVuY3Rpb24gUHFjKGEsYixjLGQpe3ZhciBlLGYsZyxoO2U9TnFjKGEsYixjKTtmPU5xYyhhLGMsYik7Zz1SRChXamIoYS5jLGIpLDExOCk7aD1SRChXamIoYS5jLGMpLDExOCk7aWYoZTxmKXtuZXcgYlRjKChmVGMoKSxlVGMpLGcsaCxmLWUpfWVsc2UgaWYoZjxlKXtuZXcgYlRjKChmVGMoKSxlVGMpLGgsZyxlLWYpfWVsc2UgaWYoZSE9MHx8ISghYi5pfHwhYy5pKSYmZFtiLmkuY11bYy5pLmNdKXtuZXcgYlRjKChmVGMoKSxlVGMpLGcsaCwwKTtuZXcgYlRjKGVUYyxoLGcsMCl9fVxuZnVuY3Rpb24gcnNjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7ZT0wO2ZvcihnPW5ldyBBbmIoYi5hKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMTApO2UrPWYuby5iK2YuZC5hK2YuZC5kK2EuZTtmb3IoZD1uZXcgaXMoTXIoWjJiKGYpLmEuS2MoKSxuZXcgaXIpKTtncyhkKTspe2M9UkQoaHMoZCksMTgpO2lmKGMuYy5pLms9PShyM2IoKSxxM2IpKXtpPWMuYy5pO2g9UkQobVFiKGksKFl3YygpLEF3YykpLDEwKTtlKz1oLm8uYitoLmQuYStoLmQuZH19fXJldHVybiBlfVxuZnVuY3Rpb24gc2FkKCl7c2FkPWdlYjtvYWQ9bmV3IHRhZCgnQ0FORElEQVRFX1BPU0lUSU9OX0xBU1RfUExBQ0VEX1JJR0hUJywwKTtuYWQ9bmV3IHRhZCgnQ0FORElEQVRFX1BPU0lUSU9OX0xBU1RfUExBQ0VEX0JFTE9XJywxKTtxYWQ9bmV3IHRhZCgnQ0FORElEQVRFX1BPU0lUSU9OX1dIT0xFX0RSQVdJTkdfUklHSFQnLDIpO3BhZD1uZXcgdGFkKCdDQU5ESURBVEVfUE9TSVRJT05fV0hPTEVfRFJBV0lOR19CRUxPVycsMyk7cmFkPW5ldyB0YWQoJ1dIT0xFX0RSQVdJTkcnLDQpfVxuZnVuY3Rpb24gdkVkKGEsYil7aWYoWkQoYiwyMDcpKXtyZXR1cm4gSURkKGEsUkQoYiwyNykpfWVsc2UgaWYoWkQoYiwxOTMpKXtyZXR1cm4gSkRkKGEsUkQoYiwxMjMpKX1lbHNlIGlmKFpEKGIsMzY2KSl7cmV0dXJuIEhEZChhLFJEKGIsMTM1KSl9ZWxzZSBpZihaRChiLDMyNikpe3JldHVybiBHRGQoYSxSRChiLDc0KSl9ZWxzZSBpZihiKXtyZXR1cm4gbnVsbH1lbHNle3Rocm93IEFkYihuZXcgYWdiKHdJZStGZShuZXcgbW9iKGNEKFdDKGpKLDEpLHJ2ZSwxLDUsW2JdKSkpKSl9fVxuZnVuY3Rpb24gR2xjKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2Y9bmV3IFl1Yjtmb3IoZT1uZXcgQW5iKGEuZC5hKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTI1KTtkLmIuYS5jLmxlbmd0aD09MCYmKFB1YihmLGQsZi5jLmIsZi5jKSx0cnVlKX1pZihmLmI+MSl7Yj1lSmIoKGM9bmV3IGdKYiwrK2EuYixjKSxhLmQpO2ZvcihoPVN1YihmLDApO2guYiE9aC5kLmM7KXtnPVJEKGV2YihoKSwxMjUpO3JJYih1SWIodEliKHZJYihzSWIobmV3IHdJYiwxKSwwKSxiKSxnKSl9fX1cbmZ1bmN0aW9uIGlzYyhhLGIsYyl7dmFyIGQsZSxmLGcsaDtjLlVnKCdCcmVha2luZyBQb2ludCBSZW1vdmluZycsMSk7YS5hPVJEKG1RYihiLCh5Q2MoKSx5QWMpKSwyMjMpO2ZvcihmPW5ldyBBbmIoYi5iKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMzApO2ZvcihoPW5ldyBBbmIoYnYoZS5hKSk7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDEwKTtpZihLcmMoZykpe2Q9UkQobVFiKGcsKFl3YygpLFd2YykpLDMxMyk7IWQuZCYmanNjKGEsZCl9fX1jLlZnKCl9XG5mdW5jdGlvbiB5Q2QoYSxiKXt2YXIgYyxkO2lmKGIhPWEuQ2J8fGEuRGI+PjE2IT0xMSYmISFiKXtpZihPamUoYSxiKSl0aHJvdyBBZGIobmV3IGFnYihVSGUrekNkKGEpKSk7ZD1udWxsOyEhYS5DYiYmKGQ9KGM9YS5EYj4+MTYsYz49MD9zQ2QoYSxkKTphLkNiLlRoKGEsLTEtYyxudWxsLGQpKSk7ISFiJiYoZD1JdmQoYixhLDEwLGQpKTtkPXJDZChhLGIsZCk7ISFkJiZkLm9qKCl9ZWxzZSAoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDExLGIsYikpfVxuZnVuY3Rpb24gQzBiKGEpe3ZhciBiLGMsZCxlO2ZvcihkPW5ldyB2a2IoKG5ldyBta2IoYS5iKSkuYSk7ZC5iOyl7Yz10a2IoZCk7ZT1SRChjLmxkKCksMTIpO2I9UkQoYy5tZCgpLDEwKTtwUWIoYiwoWXdjKCksQXdjKSxlKTtwUWIoZSxJd2MsYik7cFFiKGUsbndjLChHZWIoKSx0cnVlKSk7UTNiKGUsUkQobVFiKGIsaHdjKSw2NCkpO21RYihiLGh3Yyk7cFFiKGUuaSwoeUNjKCksQkJjKSwoQm9kKCkseW9kKSk7UkQobVFiKFkyYihlLmkpLGt3YyksMjEpLkZjKChvdmMoKSxrdmMpKX19XG5mdW5jdGlvbiBYN2IoYSxiLGMpe3ZhciBkLGUsZixnLGgsaTtmPTA7Zz0wO2lmKGEuYyl7Zm9yKGk9bmV3IEFuYihhLmQuaS5qKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksMTIpO2YrPWguZS5jLmxlbmd0aH19ZWxzZXtmPTF9aWYoYS5kKXtmb3IoaT1uZXcgQW5iKGEuYy5pLmopO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxMik7Zys9aC5nLmMubGVuZ3RofX1lbHNle2c9MX1lPWVFKExnYihnLWYpKTtkPShjK2IpLzIrKGMtYikqKDAuNCplKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIERuYyhhKXtCbmMoKTt2YXIgYixjO2lmKGEuSGMoKHFwZCgpLG9wZCkpKXt0aHJvdyBBZGIobmV3IGFnYignUG9ydCBzaWRlcyBtdXN0IG5vdCBjb250YWluIFVOREVGSU5FRCcpKX1zd2l0Y2goYS5nYygpKXtjYXNlIDE6cmV0dXJuIHhuYztjYXNlIDI6Yj1hLkhjKFhvZCkmJmEuSGMocHBkKTtjPWEuSGMoWW9kKSYmYS5IYyhucGQpO3JldHVybiBifHxjP0FuYzp6bmM7Y2FzZSAzOnJldHVybiB5bmM7Y2FzZSA0OnJldHVybiB3bmM7ZGVmYXVsdDpyZXR1cm4gbnVsbDt9fVxuZnVuY3Rpb24gRGlkKGEsYixjKXt0aWQoKTtpZih4aWQoYSxiKSYmeGlkKGEsYykpe3JldHVybiBmYWxzZX1yZXR1cm4gRmlkKG5ldyByamQoYS5jLGEuZCksbmV3IHJqZChhLmMrYS5iLGEuZCksYixjKXx8RmlkKG5ldyByamQoYS5jK2EuYixhLmQpLG5ldyByamQoYS5jK2EuYixhLmQrYS5hKSxiLGMpfHxGaWQobmV3IHJqZChhLmMrYS5iLGEuZCthLmEpLG5ldyByamQoYS5jLGEuZCthLmEpLGIsYyl8fEZpZChuZXcgcmpkKGEuYyxhLmQrYS5hKSxuZXcgcmpkKGEuYyxhLmQpLGIsYyl9XG5mdW5jdGlvbiBYZWUoYSxiKXt2YXIgYyxkLGUsZjtpZighYS5kYygpKXtmb3IoYz0wLGQ9YS5nYygpO2M8ZDsrK2Mpe2Y9V0QoYS5YYihjKSk7aWYoZj09bnVsbD9iPT1udWxsOmxoYihmLnN1YnN0cigwLDMpLCchIyMnKT9iIT1udWxsJiYoZT1iLmxlbmd0aCwhbGhiKGYuc3Vic3RyKGYubGVuZ3RoLWUsZSksYil8fGYubGVuZ3RoIT1iLmxlbmd0aCszKSYmIWxoYihkTGUsYik6bGhiKGYsZUxlKSYmIWxoYihkTGUsYil8fGxoYihmLGIpKXtyZXR1cm4gdHJ1ZX19fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uICQ2YihhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGo7Zz1hLmouYy5sZW5ndGg7aT0kQyhOTixNeWUsMzE0LGcsMCwxKTtmb3IoaD0wO2g8ZztoKyspe2Y9UkQoVm1iKGEuaixoKSwxMik7Zi5wPWg7aVtoXT1VNmIoYzdiKGYpLGMsZCl9VzZiKGEsaSxjLGIsZCk7aj1uZXcgVHNiO2ZvcihlPTA7ZTxpLmxlbmd0aDtlKyspeyEhaVtlXSYmWmpiKGosUkQoVm1iKGEuaixlKSwxMiksaVtlXSl9aWYoai5mLmMrai5pLmMhPTApe3BRYihhLChZd2MoKSxjd2MpLGopO2E3YihhLGkpfX1cbmZ1bmN0aW9uIFlmYyhhLGIpe3ZhciBjLGQsZSxmLGcsaDtiLlVnKCdQYXJ0aXRpb24gcG9zdHByb2Nlc3NpbmcnLDEpO2ZvcihkPW5ldyBBbmIoYS5iKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMzApO2ZvcihmPW5ldyBBbmIoYy5hKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTApO2g9bmV3IEFuYihlLmopO3doaWxlKGguYTxoLmMuYy5sZW5ndGgpe2c9UkQoeW5iKGgpLDEyKTtIZWIoVEQobVFiKGcsKFl3YygpLEh3YykpKSkmJnpuYihoKX19fWIuVmcoKX1cbmZ1bmN0aW9uIHBrYyhhLGIsYyl7dmFyIGQsZSxmO2ZvcihlPW5ldyBBbmIoYS5hLmIpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSw2MCk7Zj1aamMoZCk7aWYoZil7aWYoZi5rPT0ocjNiKCksbTNiKSl7c3dpdGNoKFJEKG1RYihmLChZd2MoKSxod2MpKSw2NCkuZyl7Y2FzZSA0OmYubi5hPWIuYTticmVhaztjYXNlIDI6Zi5uLmE9Yy5hLShmLm8uYStmLmQuYyk7YnJlYWs7Y2FzZSAxOmYubi5iPWIuYjticmVhaztjYXNlIDM6Zi5uLmI9Yy5iLShmLm8uYitmLmQuYSk7fX19fX1cbmZ1bmN0aW9uIGVaYyhhLGIsYyl7dmFyIGQsZSxmO2MuVWcoJ1Byb2Nlc3NvciBkZXRlcm1pbmUgdGhlIGhlaWdodCBmb3IgZWFjaCBsZXZlbCcsMSk7YS5hPWIuYi5iPT0wPzE6Yi5iLmI7ZT1udWxsO2Q9U3ViKGIuYiwwKTt3aGlsZSghZSYmZC5iIT1kLmQuYyl7Zj1SRChldmIoZCksNDApO0hlYihURChtUWIoZiwocSRjKCksbiRjKSkpKSYmKGU9Zil9ISFlJiZmWmMoYSxkdihjRChXQyhaJCwxKSxORWUsNDAsMCxbZV0pKSxjLFJEKG1RYihiLChoX2MoKSxIJGMpKSw4OCkpO2MuVmcoKX1cbmZ1bmN0aW9uIE44YyhhKXt2YXIgYixjLGQsZSxmLGc7ZD0oYnZkKCksZj1uZXcgQUNkLGYpO3p4ZChkLGEpO2ZvcihjPW5ldyBkTWQoKCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKSk7Yy5lIT1jLmkuZ2MoKTspe2I9UkQoYk1kKGMpLDI3KTtnPShlPW5ldyBBQ2QsZSk7eUNkKGcsZCk7enlkKGcsYi5nLGIuZik7anlkKGcsYi5rKTtCeWQoZyxiLmksYi5qKTtXR2QoKCFkLmEmJihkLmE9bmV3IEM1ZChKNCxkLDEwLDExKSksZC5hKSxnKTt6eGQoZyxiKX1yZXR1cm4gZH1cbmZ1bmN0aW9uIG9yZChhLGIsYyl7dmFyIGQsZSxmLGcsaDtlPVJEKEd4ZChiLChoa2QoKSxma2QpKSwxNyk7IWUmJihlPXNnYigwKSk7Zj1SRChHeGQoYyxma2QpLDE3KTshZiYmKGY9c2diKDApKTtpZihlLmE+Zi5hKXtyZXR1cm4gLTF9ZWxzZSBpZihlLmE8Zi5hKXtyZXR1cm4gMX1lbHNle2lmKGEuYSl7ZD1RZmIoYi5qLGMuaik7aWYoZCE9MCl7cmV0dXJuIGR9ZD1RZmIoYi5pLGMuaSk7aWYoZCE9MCl7cmV0dXJuIGR9fWc9Yi5nKmIuZjtoPWMuZypjLmY7cmV0dXJuIFFmYihnLGgpfX1cbmZ1bmN0aW9uIF9OZChhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsOysrYS5lO2k9YS5kPT1udWxsPzA6YS5kLmxlbmd0aDtpZihiPmkpe2s9YS5kO2EuZD0kQyhENixLSmUsNjYsMippKzQsMCwxKTtmb3IoZj0wO2Y8aTsrK2Ype2o9a1tmXTtpZihqKXtkPWouZztsPWouaTtmb3IoaD0wO2g8bDsrK2gpe2U9UkQoZFtoXSwxMzYpO2c9Yk9kKGEsZS5CaSgpKTtjPWEuZFtnXTshYyYmKGM9YS5kW2ddPWEuZGsoKSk7Yy5GYyhlKX19fXJldHVybiB0cnVlfWVsc2V7cmV0dXJuIGZhbHNlfX1cbmZ1bmN0aW9uIE9mZShhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2U9YztmPWUuTGsoKTtpZihxa2UoYS5lLGYpKXtpZihmLlNpKCkpe2Q9UkQoYS5nLDEyNCk7Zm9yKGc9MDtnPGEuaTsrK2cpe2g9ZFtnXTtpZihwYihoLGUpJiZnIT1iKXt0aHJvdyBBZGIobmV3IGFnYihMSWUpKX19fX1lbHNle2k9cGtlKGEuZS5EaCgpLGYpO2Q9UkQoYS5nLDEyNCk7Zm9yKGc9MDtnPGEuaTsrK2cpe2g9ZFtnXTtpZihpLmFtKGguTGsoKSkpe3Rocm93IEFkYihuZXcgYWdiKGdMZSkpfX19VkdkKGEsYixjKX1cbmZ1bmN0aW9uIFJfYihhLGIpe3ZhciBjLGQsZSxmLGcsaDtjPVJEKG1RYihiLChZd2MoKSxld2MpKSwyMSk7Zz1SRChRYygoeiRiKCkseSRiKSxjKSwyMSk7aD1SRChRYyhPX2IsYyksMjEpO2ZvcihmPWcuS2MoKTtmLk9iKCk7KXtkPVJEKGYuUGIoKSwyMSk7aWYoIVJEKFFjKGEuYixkKSwxNSkuZGMoKSl7cmV0dXJuIGZhbHNlfX1mb3IoZT1oLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMjEpO2lmKCFSRChRYyhhLmIsZCksMTUpLmRjKCkpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBkYWQoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGs7aWYoYS5hLmMubGVuZ3RoPT0xKXtyZXR1cm4gUDljKFJEKFZtYihhLmEsMCksMTcyKSxiKX1nPWNhZChhKTtpPTA7aj1hLmQ7Zj1nO2s9YS5kO2g9KGotZikvMitmO3doaWxlKGYrMTxqKXtpPTA7Zm9yKGQ9bmV3IEFuYihhLmEpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxNzIpO2krPShlPVM5YyhjLGgsZmFsc2UpLGUuYSl9aWYoaTxiKXtrPWg7aj1ofWVsc2V7Zj1ofWg9KGotZikvMitmfXJldHVybiBrfVxuZnVuY3Rpb24genhkKGEsYil7dmFyIGMsZCxlLGYsZztpZighYil7cmV0dXJuIGF9aWYoWkQoYiwzNDIpKXtlPVJEKGIsMzQyKTtmPSghYS5vJiYoYS5vPW5ldyBEVmQoKHB2ZCgpLG12ZCksWDQsYSwwKSksYS5vKTtmb3IoZD1lLmdoKCkuYy5LYygpO2QuZSE9ZC5pLmdjKCk7KXtjPVJEKGQuWWooKSw0NCk7Zz1jLm1kKCk7Zk9kKGYsUkQoYy5sZCgpLDE0OSksZyl9fWVsc2V7IWEubyYmKGEubz1uZXcgRFZkKChwdmQoKSxtdmQpLFg0LGEsMCkpO2dPZChhLm8sYi5uZigpKX1yZXR1cm4gYX1cbmZ1bmN0aW9uIHZEKGEpe3ZhciBiLGMsZCxlLGY7aWYoaXNOYU4oYSkpe3JldHVybiBNRCgpLExEfWlmKGE8LTkyMjMzNzIwMzY4NTQ3NzU4MDgpe3JldHVybiBNRCgpLEpEfWlmKGE+PTkyMjMzNzIwMzY4NTQ3NzU4MDcpe3JldHVybiBNRCgpLElEfWU9ZmFsc2U7aWYoYTwwKXtlPXRydWU7YT0tYX1kPTA7aWYoYT49aHhlKXtkPWVFKGEvaHhlKTthLT1kKmh4ZX1jPTA7aWYoYT49Z3hlKXtjPWVFKGEvZ3hlKTthLT1jKmd4ZX1iPWVFKGEpO2Y9aEQoYixjLGQpO2UmJm5EKGYpO3JldHVybiBmfVxuZnVuY3Rpb24gS0NiKGEpe3ZhciBiLGMsZCxlLGY7Zj1uZXcgYm5iO1VtYihhLmIsbmV3IFNFYihmKSk7YS5iLmMubGVuZ3RoPTA7aWYoZi5jLmxlbmd0aCE9MCl7Yj0odEZiKDAsZi5jLmxlbmd0aCksUkQoZi5jWzBdLDgyKSk7Zm9yKGM9MSxkPWYuYy5sZW5ndGg7YzxkOysrYyl7ZT0odEZiKGMsZi5jLmxlbmd0aCksUkQoZi5jW2NdLDgyKSk7ZSE9YiYmZnooYixlKX1pZihaRChiLDYzKSl7dGhyb3cgQWRiKFJEKGIsNjMpKX1pZihaRChiLDI5Nikpe3Rocm93IEFkYihSRChiLDI5NikpfX19XG5mdW5jdGlvbiBpTmIoYSxiKXt2YXIgYyxkLGUsZjtjPSFifHwhYS51LkhjKChQb2QoKSxMb2QpKTtmPTA7Zm9yKGU9bmV3IEFuYihhLmUuWGYoKSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDg1Mik7aWYoZC5hZygpPT0ocXBkKCksb3BkKSl7dGhyb3cgQWRiKG5ldyBhZ2IoJ0xhYmVsIGFuZCBub2RlIHNpemUgY2FsY3VsYXRvciBjYW4gb25seSBiZSB1c2VkIHdpdGggcG9ydHMgdGhhdCBoYXZlIHBvcnQgc2lkZXMgYXNzaWduZWQuJykpfWQuUWYoZisrKTtoTmIoYSxkLGMpfX1cbmZ1bmN0aW9uIElHYihhKXt2YXIgYixjLGQsZSxmO2ZvcihjPW5ldyBBbmIoYS5hLmEpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwzMTYpO2Iuaj1udWxsO2ZvcihmPWIuYS5hLmVjKCkuS2MoKTtmLk9iKCk7KXtkPVJEKGYuUGIoKSw2MCk7aGpkKGQuYik7KCFiLmp8fGQuZC5jPGIuai5kLmMpJiYoYi5qPWQpfWZvcihlPWIuYS5hLmVjKCkuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSw2MCk7ZC5iLmE9ZC5kLmMtYi5qLmQuYztkLmIuYj1kLmQuZC1iLmouZC5kfX1yZXR1cm4gYX1cbmZ1bmN0aW9uIHVZYihhKXt2YXIgYixjLGQsZSxmO2ZvcihjPW5ldyBBbmIoYS5hLmEpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwxOTQpO2IuZj1udWxsO2ZvcihmPWIuYS5hLmVjKCkuS2MoKTtmLk9iKCk7KXtkPVJEKGYuUGIoKSw4Nik7aGpkKGQuZSk7KCFiLmZ8fGQuZy5jPGIuZi5nLmMpJiYoYi5mPWQpfWZvcihlPWIuYS5hLmVjKCkuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSw4Nik7ZC5lLmE9ZC5nLmMtYi5mLmcuYztkLmUuYj1kLmcuZC1iLmYuZy5kfX1yZXR1cm4gYX1cbmZ1bmN0aW9uIHZQYihhKXt2YXIgYixjLGQ7Yz1SRChhLmEsMTcpLmE7ZD1SRChhLmIsMTcpLmE7Yj0kd25kLk1hdGgubWF4KCR3bmQuTWF0aC5hYnMoYyksJHduZC5NYXRoLmFicyhkKSk7aWYoYzxiJiZkPT0tYil7cmV0dXJuIG5ldyBQdGQoc2diKGMrMSksc2diKGQpKX1pZihjPT1iJiZkPGIpe3JldHVybiBuZXcgUHRkKHNnYihjKSxzZ2IoZCsxKSl9aWYoYz49LWImJmQ9PWIpe3JldHVybiBuZXcgUHRkKHNnYihjLTEpLHNnYihkKSl9cmV0dXJuIG5ldyBQdGQoc2diKGMpLHNnYihkLTEpKX1cbmZ1bmN0aW9uIGxjYygpe2hjYygpO3JldHVybiBjRChXQyhZUywxKSxqd2UsODEsMCxbbmJjLGtiYyxvYmMsRWJjLFhiYyxJYmMsYmNjLE5iYyxWYmMsemJjLFJiYyxNYmMsV2JjLHZiYyxkY2MsZWJjLFFiYyxaYmMsRmJjLFliYyxmY2MsVGJjLGZiYyxVYmMsZ2NjLF9iYyxlY2MsR2JjLHNiYyxIYmMsRGJjLGNjYyxpYmMscWJjLEtiYyxoYmMsTGJjLEJiYyx3YmMsT2JjLHliYyxsYmMsamJjLENiYyx4YmMsUGJjLGFjYyxnYmMsU2JjLEFiYyxKYmMsdGJjLHJiYywkYmMscGJjLHViYyxtYmNdKX1cbmZ1bmN0aW9uIENtYyhhLGIsYyl7YS5kPTA7YS5iPTA7Yi5rPT0ocjNiKCkscTNiKSYmYy5rPT1xM2ImJlJEKG1RYihiLChZd2MoKSxBd2MpKSwxMCk9PVJEKG1RYihjLEF3YyksMTApJiYoR21jKGIpLmo9PShxcGQoKSxZb2QpP0RtYyhhLGIsYyk6RG1jKGEsYyxiKSk7Yi5rPT1xM2ImJmMuaz09bzNiP0dtYyhiKS5qPT0ocXBkKCksWW9kKT8oYS5kPTEpOihhLmI9MSk6Yy5rPT1xM2ImJmIuaz09bzNiJiYoR21jKGMpLmo9PShxcGQoKSxZb2QpPyhhLmI9MSk6KGEuZD0xKSk7SW1jKGEsYixjKX1cbmZ1bmN0aW9uIEVGZChhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsO2w9SEZkKGEpO2I9YS5hO2k9YiE9bnVsbDtpJiZzRGQobCwnY2F0ZWdvcnknLGEuYSk7ZT1jdmUobmV3IFhrYihhLmQpKTtnPSFlO2lmKGcpe2o9bmV3IE1CO3NDKGwsJ2tub3duT3B0aW9ucycsaik7Yz1uZXcgTUZkKGopO3hnYihuZXcgWGtiKGEuZCksYyl9Zj1jdmUoYS5nKTtoPSFmO2lmKGgpe2s9bmV3IE1CO3NDKGwsJ3N1cHBvcnRlZEZlYXR1cmVzJyxrKTtkPW5ldyBPRmQoayk7eGdiKGEuZyxkKX1yZXR1cm4gbH1cbmZ1bmN0aW9uIEx5KGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksajtkPWZhbHNlO2I9MzM2O2M9MDtmPW5ldyBocShhLmxlbmd0aCk7Zm9yKGg9YSxpPTAsaj1oLmxlbmd0aDtpPGo7KytpKXtnPWhbaV07ZD1kfChNQ2IoZyksZmFsc2UpO2U9KExDYihnKSxnLmEpO1JtYihmLmEsUWIoZSkpO2ImPWUueWQoKTtjPWF6KGMsZS56ZCgpKX1yZXR1cm4gUkQoUkQoSkNiKG5ldyBTRGIobnVsbCxlayhuZXcgU3diKCh0bSgpLHptKGYuYSkpLDE2KSxuZXcgTXksYixjKSksbmV3IE95KGEpKSw2ODcpLDg0OCl9XG5mdW5jdGlvbiBXWmIoYSxiKXt2YXIgYztpZighIWEuZCYmKGIuYyE9YS5lLmN8fHNaYihhLmUuYixiLmIpKSl7Um1iKGEuZixhLmQpO2EuYT1hLmQuYythLmQuYjthLmQ9bnVsbDthLmU9bnVsbH1wWmIoYi5iKT8oYS5jPWIpOihhLmI9Yik7aWYoYi5iPT0oblpiKCksalpiKSYmIWIuYXx8Yi5iPT1rWmImJmIuYXx8Yi5iPT1sWmImJmIuYXx8Yi5iPT1tWmImJiFiLmEpe2lmKCEhYS5jJiYhIWEuYil7Yz1uZXcgVWlkKGEuYSxhLmMuZCxiLmMtYS5hLGEuYi5kLWEuYy5kKTthLmQ9YzthLmU9Yn19fVxuZnVuY3Rpb24gV2VkKGEpe3ZhciBiO09lZC5jYWxsKHRoaXMpO3RoaXMuaT1uZXcgaWZkO3RoaXMuZz1hO3RoaXMuZj1SRChhLmUmJmEuZSgpLDkpLmxlbmd0aDtpZih0aGlzLmY9PTApe3Rocm93IEFkYihuZXcgYWdiKCdUaGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSBwaGFzZSBpbiB0aGUgcGhhc2UgZW51bWVyYXRpb24uJykpfXRoaXMuYz0oYj1SRChtZmIodGhpcy5nKSw5KSxuZXcgRnNiKGIsUkQoV0ViKGIsYi5sZW5ndGgpLDkpLDApKTt0aGlzLmE9bmV3IHVmZDt0aGlzLmI9bmV3IFRzYn1cbmZ1bmN0aW9uIGVDZChhLGIpe3ZhciBjLGQ7aWYoYiE9YS5DYnx8YS5EYj4+MTYhPTcmJiEhYil7aWYoT2plKGEsYikpdGhyb3cgQWRiKG5ldyBhZ2IoVUhlK2dDZChhKSkpO2Q9bnVsbDshIWEuQ2ImJihkPShjPWEuRGI+PjE2LGM+PTA/Y0NkKGEsZCk6YS5DYi5UaChhLC0xLWMsbnVsbCxkKSkpOyEhYiYmKGQ9UkQoYiw1NCkuUmgoYSwxLEg0LGQpKTtkPWJDZChhLGIsZCk7ISFkJiZkLm9qKCl9ZWxzZSAoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDcsYixiKSl9XG5mdW5jdGlvbiBsVmQoYSxiKXt2YXIgYyxkO2lmKGIhPWEuQ2J8fGEuRGI+PjE2IT0zJiYhIWIpe2lmKE9qZShhLGIpKXRocm93IEFkYihuZXcgYWdiKFVIZStvVmQoYSkpKTtkPW51bGw7ISFhLkNiJiYoZD0oYz1hLkRiPj4xNixjPj0wP2lWZChhLGQpOmEuQ2IuVGgoYSwtMS1jLG51bGwsZCkpKTshIWImJihkPVJEKGIsNTQpLlJoKGEsMCxwNyxkKSk7ZD1oVmQoYSxiLGQpOyEhZCYmZC5vaigpfWVsc2UgKGEuRGImNCkhPTAmJihhLkRiJjEpPT0wJiZxdmQoYSxuZXcgTjNkKGEsMSwzLGIsYikpfVxuZnVuY3Rpb24gTWpiKGEsYil7TGpiKCk7dmFyIGMsZCxlLGYsZyxoLGksaixrO2lmKGIuZD5hLmQpe2g9YTthPWI7Yj1ofWlmKGIuZDw2Myl7cmV0dXJuIFFqYihhLGIpfWc9KGEuZCYtMik8PDQ7aj0kaWIoYSxnKTtrPSRpYihiLGcpO2Q9R2piKGEsWmliKGosZykpO2U9R2piKGIsWmliKGssZykpO2k9TWpiKGosayk7Yz1NamIoZCxlKTtmPU1qYihHamIoaixkKSxHamIoZSxrKSk7Zj1CamIoQmpiKGYsaSksYyk7Zj1aaWIoZixnKTtpPVppYihpLGc8PDEpO3JldHVybiBCamIoQmpiKGksZiksYyl9XG5mdW5jdGlvbiBfQ2MoKXtfQ2M9Z2ViO1pDYz1uZXcgYkRjKGxFZSwwKTtXQ2M9bmV3IGJEYygnTE9OR0VTVF9QQVRIJywxKTtYQ2M9bmV3IGJEYygnTE9OR0VTVF9QQVRIX1NPVVJDRScsMik7VENjPW5ldyBiRGMoJ0NPRkZNQU5fR1JBSEFNJywzKTtWQ2M9bmV3IGJEYyhCQmUsNCk7JENjPW5ldyBiRGMoJ1NUUkVUQ0hfV0lEVEgnLDUpO1lDYz1uZXcgYkRjKCdNSU5fV0lEVEgnLDYpO1NDYz1uZXcgYkRjKCdCRl9NT0RFTF9PUkRFUicsNyk7VUNjPW5ldyBiRGMoJ0RGX01PREVMX09SREVSJyw4KX1cbmZ1bmN0aW9uIEFLYyhhLGIsYyl7dmFyIGQsZSxmLGcsaDtnPWFNYyhhLGMpO2g9JEMoalIsV0FlLDEwLGIubGVuZ3RoLDAsMSk7ZD0wO2ZvcihmPWcuS2MoKTtmLk9iKCk7KXtlPVJEKGYuUGIoKSwxMik7SGViKFREKG1RYihlLChZd2MoKSxud2MpKSkpJiYoaFtkKytdPVJEKG1RYihlLEl3YyksMTApKX1pZihkPGIubGVuZ3RoKXt0aHJvdyBBZGIobmV3IGRnYignRXhwZWN0ZWQgJytiLmxlbmd0aCsnIGhpZXJhcmNoaWNhbCBwb3J0cywgYnV0IGZvdW5kIG9ubHkgJytkKycuJykpfXJldHVybiBofVxuZnVuY3Rpb24gc0JkKGEsYil7dmFyIGMsZCxlLGYsZyxoO2lmKCFhLnRiKXtmPSghYS5yYiYmKGEucmI9bmV3IEo1ZChhLGk3LGEpKSxhLnJiKTtoPW5ldyBVc2IoZi5pKTtmb3IoZT1uZXcgZE1kKGYpO2UuZSE9ZS5pLmdjKCk7KXtkPVJEKGJNZChlKSwxNDIpO2c9ZC54ZSgpO2M9UkQoZz09bnVsbD9ydGIoaC5mLG51bGwsZCk6THRiKGguaSxnLGQpLDE0Mik7ISFjJiYoZz09bnVsbD9ydGIoaC5mLG51bGwsYyk6THRiKGguaSxnLGMpKX1hLnRiPWh9cmV0dXJuIFJEKFhqYihhLnRiLGIpLDE0Mil9XG5mdW5jdGlvbiB3WWQoYSxiKXt2YXIgYyxkLGUsZixnOyhhLmk9PW51bGwmJnJZZChhKSxhLmkpLmxlbmd0aDtpZighYS5wKXtnPW5ldyBVc2IoKDMqYS5nLmkvMnwwKSsxKTtmb3IoZT1uZXcgeU1kKGEuZyk7ZS5lIT1lLmkuZ2MoKTspe2Q9UkQoeE1kKGUpLDE3OSk7Zj1kLnhlKCk7Yz1SRChmPT1udWxsP3J0YihnLmYsbnVsbCxkKTpMdGIoZy5pLGYsZCksMTc5KTshIWMmJihmPT1udWxsP3J0YihnLmYsbnVsbCxjKTpMdGIoZy5pLGYsYykpfWEucD1nfXJldHVybiBSRChYamIoYS5wLGIpLDE3OSl9XG5mdW5jdGlvbiBmRmIoYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqO2RGYihkK2x6KGMsYy5pZSgpKSxlKTtlRmIoYixoRmIoYykpO2Y9Yy5mOyEhZiYmZkZiKGEsYixmLCdDYXVzZWQgYnk6ICcsZmFsc2UpO2ZvcihoPShjLms9PW51bGwmJihjLms9JEMockosTnZlLDgyLDAsMCwxKSksYy5rKSxpPTAsaj1oLmxlbmd0aDtpPGo7KytpKXtnPWhbaV07ZkZiKGEsYixnLCdTdXBwcmVzc2VkOiAnLGZhbHNlKX1jb25zb2xlLmdyb3VwRW5kIT1udWxsJiZjb25zb2xlLmdyb3VwRW5kLmNhbGwoY29uc29sZSl9XG5mdW5jdGlvbiBES2MoYSxiLGMsZCl7dmFyIGUsZixnLGgsaTtpPWIuZTtoPWkubGVuZ3RoO2c9Yi5xLnVnKGksYz8wOmgtMSxjKTtlPWlbYz8wOmgtMV07Zz1nfENLYyhhLGUsYyxkKTtmb3IoZj1jPzE6aC0yO2M/ZjxoOmY+PTA7Zis9Yz8xOi0xKXtnPWd8Yi5jLmxnKGksZixjLGQmJiFIZWIoVEQobVFiKGIuaiwoWXdjKCksandjKSkpKSYmIUhlYihURChtUWIoYi5qLChZd2MoKSxPd2MpKSkpKTtnPWd8Yi5xLnVnKGksZixjKTtnPWd8Q0tjKGEsaVtmXSxjLGQpfVlzYihhLmMsYik7cmV0dXJuIGd9XG5mdW5jdGlvbiBGNmIoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtO2ZvcihrPXUyYihhLmopLGw9MCxtPWsubGVuZ3RoO2w8bTsrK2wpe2o9a1tsXTtpZihjPT0oQkVjKCkseUVjKXx8Yz09QUVjKXtpPXMyYihqLmcpO2ZvcihlPWksZj0wLGc9ZS5sZW5ndGg7ZjxnOysrZil7ZD1lW2ZdO0I2YihiLGQpJiZYMGIoZCx0cnVlKX19aWYoYz09ekVjfHxjPT1BRWMpe2g9czJiKGouZSk7Zm9yKGU9aCxmPTAsZz1lLmxlbmd0aDtmPGc7KytmKXtkPWVbZl07QTZiKGIsZCkmJlgwYihkLHRydWUpfX19fVxuZnVuY3Rpb24gdXFjKGEpe3ZhciBiLGM7Yj1udWxsO2M9bnVsbDtzd2l0Y2gocHFjKGEpLmcpe2Nhc2UgMTpiPShxcGQoKSxYb2QpO2M9cHBkO2JyZWFrO2Nhc2UgMjpiPShxcGQoKSxucGQpO2M9WW9kO2JyZWFrO2Nhc2UgMzpiPShxcGQoKSxwcGQpO2M9WG9kO2JyZWFrO2Nhc2UgNDpiPShxcGQoKSxZb2QpO2M9bnBkO31TbWMoYSxSRChMdmIoS0RiKFJEKFFjKGEuayxiKSwxNSkuT2MoKSxscWMpKSwxMTMpKTtUbWMoYSxSRChMdmIoSkRiKFJEKFFjKGEuayxjKSwxNSkuT2MoKSxscWMpKSwxMTMpKX1cbmZ1bmN0aW9uIHI5YihhKXt2YXIgYixjLGQsZSxmLGc7ZT1SRChWbWIoYS5qLDApLDEyKTtpZihlLmUuYy5sZW5ndGgrZS5nLmMubGVuZ3RoPT0wKXthLm4uYT0wfWVsc2V7Zz0wO2ZvcihkPUZsKEFsKGNEKFdDKGNKLDEpLHJ2ZSwyMCwwLFtuZXcgVDNiKGUpLG5ldyBfM2IoZSldKSkpO2dzKGQpOyl7Yz1SRChocyhkKSwxMik7Zys9Yy5pLm4uYStjLm4uYStjLmEuYX1iPVJEKG1RYihhLCh5Q2MoKSx6QmMpKSw4KTtmPSFiPzA6Yi5hO2Eubi5hPWcvKGUuZS5jLmxlbmd0aCtlLmcuYy5sZW5ndGgpLWZ9fVxuZnVuY3Rpb24gUWRkKGEsYil7dmFyIGMsZCxlO2ZvcihkPW5ldyBBbmIoYi5hKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMjI1KTtSUWIoUkQoYy5iLDY4KSxvamQoYWpkKFJEKGIuYiw2OCkuYyksUkQoYi5iLDY4KS5hKSk7ZT1vUmIoUkQoYi5iLDY4KS5iLFJEKGMuYiw2OCkuYik7ZT4xJiYoYS5hPXRydWUpO1FRYihSRChjLmIsNjgpLCRpZChhamQoUkQoYi5iLDY4KS5jKSxpamQob2pkKGFqZChSRChjLmIsNjgpLmEpLFJEKGIuYiw2OCkuYSksZSkpKTtPZGQoYSxiKTtRZGQoYSxjKX19XG5mdW5jdGlvbiB0WWIoYSl7dmFyIGIsYyxkLGUsZixnLGg7Zm9yKGY9bmV3IEFuYihhLmEuYSk7Zi5hPGYuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGYpLDE5NCk7ZC5lPTA7ZC5kLmEuJGIoKX1mb3IoZT1uZXcgQW5iKGEuYS5hKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTk0KTtmb3IoYz1kLmEuYS5lYygpLktjKCk7Yy5PYigpOyl7Yj1SRChjLlBiKCksODYpO2ZvcihoPWIuZi5LYygpO2guT2IoKTspe2c9UkQoaC5QYigpLDg2KTtpZihnLmQhPWQpe1lzYihkLmQsZyk7KytnLmQuZX19fX19XG5mdW5jdGlvbiBIZmMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaTtpPWEuai5jLmxlbmd0aDtjPTA7Yj1pO2U9MippO2ZvcihoPW5ldyBBbmIoYS5qKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTIpO3N3aXRjaChnLmouZyl7Y2FzZSAyOmNhc2UgNDpnLnA9LTE7YnJlYWs7Y2FzZSAxOmNhc2UgMzpkPWcuZS5jLmxlbmd0aDtmPWcuZy5jLmxlbmd0aDtkPjAmJmY+MD8oZy5wPWIrKyk6ZD4wPyhnLnA9YysrKTpmPjA/KGcucD1lKyspOihnLnA9YysrKTt9fXlvYigpO19tYihhLmosbmV3IExmYyl9XG5mdW5jdGlvbiB6aWMoYSl7dmFyIGIsYztjPW51bGw7Yj1SRChWbWIoYS5nLDApLDE4KTtkb3tjPWIuZC5pO2lmKG5RYihjLChZd2MoKSx3d2MpKSl7cmV0dXJuIFJEKG1RYihjLHd3YyksMTIpLml9aWYoYy5rIT0ocjNiKCkscDNiKSYmZ3MobmV3IGlzKE1yKGEzYihjKS5hLktjKCksbmV3IGlyKSkpKXtiPVJEKGhzKG5ldyBpcyhNcihhM2IoYykuYS5LYygpLG5ldyBpcikpKSwxOCl9ZWxzZSBpZihjLmshPXAzYil7cmV0dXJuIG51bGx9fXdoaWxlKCEhYyYmYy5rIT0ocjNiKCkscDNiKSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBzcWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGs7aD1iLmo7Zz1iLmc7aT1SRChWbWIoaCxoLmMubGVuZ3RoLTEpLDExMyk7az0odEZiKDAsaC5jLmxlbmd0aCksUkQoaC5jWzBdLDExMykpO2o9b3FjKGEsZyxpLGspO2ZvcihmPTE7ZjxoLmMubGVuZ3RoO2YrKyl7Yz0odEZiKGYtMSxoLmMubGVuZ3RoKSxSRChoLmNbZi0xXSwxMTMpKTtlPSh0RmIoZixoLmMubGVuZ3RoKSxSRChoLmNbZl0sMTEzKSk7ZD1vcWMoYSxnLGMsZSk7aWYoZD5qKXtpPWM7az1lO2o9ZH19Yi5hPWs7Yi5jPWl9XG5mdW5jdGlvbiBmTWMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqO2o9bmV3IHlBYihuZXcgVE1jKGEpKTtmb3IoZz1jRChXQyh4UiwxKSxYQWUsMTIsMCxbYixjXSksaD0wLGk9Zy5sZW5ndGg7aDxpOysraCl7Zj1nW2hdO2ouYS56YyhmLChHZWIoKSxFZWIpKT09bnVsbDtmb3IoZT1uZXcgbDRiKGYuYik7eG5iKGUuYSl8fHhuYihlLmIpOyl7ZD1SRCh4bmIoZS5hKT95bmIoZS5hKTp5bmIoZS5iKSwxOCk7ZC5jPT1kLmR8fHJBYihqLGY9PWQuYz9kLmQ6ZC5jKX19cmV0dXJuIFFiKGopLG5ldyBkbmIoail9XG5mdW5jdGlvbiBySWIoYSl7aWYoIWEuYS5kfHwhYS5hLmUpe3Rocm93IEFkYihuZXcgZGdiKChsZmIoek4pLHpOLmsrJyBtdXN0IGhhdmUgYSBzb3VyY2UgYW5kIHRhcmdldCAnKyhsZmIoRE4pLEROLmspKycgc3BlY2lmaWVkLicpKSl9aWYoYS5hLmQ9PWEuYS5lKXt0aHJvdyBBZGIobmV3IGRnYignTmV0d29yayBzaW1wbGV4IGRvZXMgbm90IHN1cHBvcnQgc2VsZi1sb29wczogJythLmErJyAnK2EuYS5kKycgJythLmEuZSkpfUVJYihhLmEuZC5nLGEuYSk7RUliKGEuYS5lLmIsYS5hKTtyZXR1cm4gYS5hfVxuZnVuY3Rpb24geDZiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7Yi5VZygnQ29uc3RyYWludHMgUG9zdHByb2Nlc3NvcicsMSk7Zz0wO2ZvcihmPW5ldyBBbmIoYS5iKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMzApO2k9MDtoPWZhbHNlO2ZvcihkPW5ldyBBbmIoZS5hKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMTApO2lmKGMuaz09KHIzYigpLHAzYikpe2g9dHJ1ZTtwUWIoYywoeUNjKCksVkFjKSxzZ2IoZykpO3BRYihjLG1BYyxzZ2IoaSkpOysraX19aCYmKytnfWIuVmcoKX1cbmZ1bmN0aW9uIE9UYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2Q9MDtpZihiLmIhPTAmJmMuYiE9MCl7Zj1TdWIoYiwwKTtnPVN1YihjLDApO2g9S2ZiKFVEKGV2YihmKSkpO2k9S2ZiKFVEKGV2YihnKSkpO2U9dHJ1ZTtkb3tpZihoPmktYS5iJiZoPGkrYS5iKXtyZXR1cm4gLTF9ZWxzZSBoPmktYS5hJiZoPGkrYS5hJiYrK2Q7aDw9aSYmZi5iIT1mLmQuYz8oaD1LZmIoVUQoZXZiKGYpKSkpOmk8PWgmJmcuYiE9Zy5kLmM/KGk9S2ZiKFVEKGV2YihnKSkpKTooZT1mYWxzZSl9d2hpbGUoZSl9cmV0dXJuIGR9XG5mdW5jdGlvbiBHMmMoYSxiKXt2YXIgYyxkO1NlZChhLmEpO1ZlZChhLmEsKHgyYygpLHYyYyksdjJjKTtWZWQoYS5hLHcyYyx3MmMpO2Q9bmV3IHVmZDtwZmQoZCx3MmMsKGczYygpLGUzYykpO2RFKEd4ZChiLCgkNGMoKSxJNGMpKSkhPT1kRSgoZzRjKCksZDRjKSkmJnBmZChkLHcyYyxiM2MpO0hlYihURChHeGQoYixUNGMpKSkmJnBmZChkLHcyYyxmM2MpO3BmZChkLHcyYyxjM2MpO0hlYihURChHeGQoYixWNGMpKSkmJm5mZChkLHcyYyxkM2MpO1BlZChhLmEsZCk7Yz1RZWQoYS5hLGIpO3JldHVybiBjfVxuZnVuY3Rpb24gVzZiKGEsYixjLGQsZSl7dmFyIGYsZyxoLGk7aT0oZj1SRChtZmIoRTMpLDkpLG5ldyBGc2IoZixSRChXRWIoZixmLmxlbmd0aCksOSksMCkpO2ZvcihoPW5ldyBBbmIoYS5qKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTIpO2lmKGJbZy5wXSl7WDZiKGcsYltnLnBdLGQpO3pzYihpLGcuail9fWlmKGUpe182YihhLGIsKHFwZCgpLFhvZCksMipjLGQpO182YihhLGIscHBkLDIqYyxkKX1lbHNle182YihhLGIsKHFwZCgpLFlvZCksMipjLGQpO182YihhLGIsbnBkLDIqYyxkKX19XG5mdW5jdGlvbiBlZWMoYSl7dmFyIGIsYztmb3IoYz1uZXcgaXMoTXIoYTNiKGEpLmEuS2MoKSxuZXcgaXIpKTtncyhjKTspe2I9UkQoaHMoYyksMTgpO2lmKGIuZC5pLmshPShyM2IoKSxuM2IpKXt0aHJvdyBBZGIobmV3IEplZChuQmUrWDJiKGEpK1wiJyBoYXMgaXRzIGxheWVyIGNvbnN0cmFpbnQgc2V0IHRvIExBU1QsIGJ1dCBoYXMgYXQgbGVhc3Qgb25lIG91dGdvaW5nIGVkZ2UgdGhhdCBcIisnIGRvZXMgbm90IGdvIHRvIGEgTEFTVF9TRVBBUkFURSBub2RlLiBUaGF0IG11c3Qgbm90IGhhcHBlbi4nKSl9fX1cbmZ1bmN0aW9uIG1IYyhhLGIsYyl7dmFyIGQsZSxmLGcsaDtjLlVnKCdMb25nZXN0IHBhdGggbGF5ZXJpbmcnLDEpO2EuYT1iO2g9YS5hLmE7YS5iPSRDKGtFLFB3ZSwyOCxoLmMubGVuZ3RoLDE1LDEpO2Q9MDtmb3IoZz1uZXcgQW5iKGgpO2cuYTxnLmMuYy5sZW5ndGg7KXtlPVJEKHluYihnKSwxMCk7ZS5wPWQ7YS5iW2RdPS0xOysrZH1mb3IoZj1uZXcgQW5iKGgpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMCk7b0hjKGEsZSl9aC5jLmxlbmd0aD0wO2EuYT1udWxsO2EuYj1udWxsO2MuVmcoKX1cbmZ1bmN0aW9uIEpVYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG07aT0wO2ZvcihrPW5ldyBBbmIoYS5hKTtrLmE8ay5jLmMubGVuZ3RoOyl7aj1SRCh5bmIoayksMTApO2g9MDtmb3IoZj1uZXcgaXMoTXIoWjJiKGopLmEuS2MoKSxuZXcgaXIpKTtncyhmKTspe2U9UkQoaHMoZiksMTgpO2w9SzNiKGUuYykuYjttPUszYihlLmQpLmI7aD0kd25kLk1hdGgubWF4KGgsJHduZC5NYXRoLmFicyhtLWwpKX1pPSR3bmQuTWF0aC5tYXgoaSxoKX1nPWQqJHduZC5NYXRoLm1pbigxLGIvYykqaTtyZXR1cm4gZ31cbmZ1bmN0aW9uIEpfYyhhLGIpe3ZhciBjLGQsZSxmLGc7Zz1SRChtUWIoYiwoaF9jKCksWSRjKSksNDMzKTtmb3IoZj1TdWIoYi5iLDApO2YuYiE9Zi5kLmM7KXtlPVJEKGV2YihmKSw0MCk7aWYoYS5iW2UuZ109PTApe3N3aXRjaChnLmcpe2Nhc2UgMDpLX2MoYSxlKTticmVhaztjYXNlIDE6SV9jKGEsZSk7fWEuYltlLmddPTJ9fWZvcihkPVN1YihhLmEsMCk7ZC5iIT1kLmQuYzspe2M9UkQoZXZiKGQpLDY1KTt6ZShjLmIuZCxjLHRydWUpO3plKGMuYy5iLGMsdHJ1ZSl9cFFiKGIsKHEkYygpLGskYyksYS5hKX1cbmZ1bmN0aW9uIHBzZShhKXt2YXIgYjtiPW5ldyBSaGI7KGEmMjU2KSE9MCYmKGIuYSs9J0YnLGIpOyhhJjEyOCkhPTAmJihiLmErPSdIJyxiKTsoYSY1MTIpIT0wJiYoYi5hKz0nWCcsYik7KGEmMikhPTAmJihiLmErPSdpJyxiKTsoYSY4KSE9MCYmKGIuYSs9J20nLGIpOyhhJjQpIT0wJiYoYi5hKz0ncycsYik7KGEmMzIpIT0wJiYoYi5hKz0ndScsYik7KGEmNjQpIT0wJiYoYi5hKz0ndycsYik7KGEmMTYpIT0wJiYoYi5hKz0neCcsYik7KGEmZ3dlKSE9MCYmKGIuYSs9JywnLGIpO3JldHVybiBzaGIoYi5hKX1cbmZ1bmN0aW9uIFc4YyhhLGIpe3ZhciBjLGQsZSxmLGcsaDtiLlVnKGJHZSwxKTtlPVJEKEd4ZChhLChYN2MoKSxON2MpKSwxMDcpO2Y9KCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKTtnPXlhZChmKTtoPSR3bmQuTWF0aC5tYXgoZy5hLEtmYihVRChHeGQoYSwoWDZjKCksVTZjKSkpKS0oZS5iK2UuYykpO2Q9JHduZC5NYXRoLm1heChnLmIsS2ZiKFVEKEd4ZChhLFI2YykpKS0oZS5kK2UuYSkpO2M9ZC1nLmI7SXhkKGEsTTZjLGMpO0l4ZChhLE82YyxoKTtJeGQoYSxONmMsZCtjKTtiLlZnKCl9XG5mdW5jdGlvbiBwa2UoYSxiKXtua2UoKTt2YXIgYyxkLGUsZjtpZighYil7cmV0dXJuIG1rZX1lbHNlIGlmKGI9PShubWUoKSxrbWUpfHwoYj09VWxlfHxiPT1TbGV8fGI9PVRsZSkmJmEhPVJsZSl7cmV0dXJuIG5ldyB3a2UoYSxiKX1lbHNle2Q9UkQoYiw2OTIpO2M9ZC4kaygpO2lmKCFjKXtBZmUoUWVlKChsa2UoKSxqa2UpLGIpKTtjPWQuJGsoKX1mPSghYy5pJiYoYy5pPW5ldyBUc2IpLGMuaSk7ZT1SRChXZChxdGIoZi5mLGEpKSwyMDQxKTshZSYmWmpiKGYsYSxlPW5ldyB3a2UoYSxiKSk7cmV0dXJuIGV9fVxuZnVuY3Rpb24gakhiKGEsYil7dmFyIGMsZDtkPXJBYihhLmIsYi5iKTtpZighZCl7dGhyb3cgQWRiKG5ldyBkZ2IoJ0ludmFsaWQgaGl0Ym94ZXMgZm9yIHNjYW5saW5lIGNvbnN0cmFpbnQgY2FsY3VsYXRpb24uJykpfShkSGIoYi5iLFJEKHRBYihhLmIsYi5iKSw2MCkpfHxkSGIoYi5iLFJEKHNBYihhLmIsYi5iKSw2MCkpKSYmKGdpYigpLFN0cmluZy5mcm9tQ2hhckNvZGUoMTApKTthLmFbYi5iLmZdPVJEKHZBYihhLmIsYi5iKSw2MCk7Yz1SRCh1QWIoYS5iLGIuYiksNjApOyEhYyYmKGEuYVtjLmZdPWIuYil9XG5mdW5jdGlvbiBsVGIoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbDtmPUlHZChiLGZhbHNlLGZhbHNlKTtqPXNzZChmKTtsPUtmYihVRChHeGQoYiwodFNiKCksbVNiKSkpKTtlPWpUYihqLGwrYS5hKTtrPW5ldyBPUmIoZSk7a1FiKGssYik7WmpiKGEuYixiLGspO1pFYihjLmMsayk7aT0oIWIubiYmKGIubj1uZXcgQzVkKEk0LGIsMSw3KSksYi5uKTtmb3IoaD1uZXcgZE1kKGkpO2guZSE9aC5pLmdjKCk7KXtnPVJEKGJNZChoKSwxMzUpO2Q9blRiKGEsZyx0cnVlLDAsMCk7WkViKGMuYyxkKX1yZXR1cm4ga31cbmZ1bmN0aW9uIFplYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2U9bmV3IGJuYjtmb3IoYz0wO2M8PWEuajtjKyspe2Q9bmV3IFI0YihiKTtkLnA9YS5qLWM7WkViKGUuYyxkKX1mb3IoaD1uZXcgQW5iKGEucCk7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDEwKTtnM2IoZyxSRChWbWIoZSxhLmotYS5nW2cucF0pLDMwKSl9Zj1uZXcgQW5iKGUpO3doaWxlKGYuYTxmLmMuYy5sZW5ndGgpe2k9UkQoeW5iKGYpLDMwKTtpLmEuYy5sZW5ndGg9PTAmJnpuYihmKX1iLmIuYy5sZW5ndGg9MDtUbWIoYi5iLGUpfVxuZnVuY3Rpb24geGZjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrO2k9UkQobVFiKGEsKFl3YygpLEF3YykpLDEyKTtqPXhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtpLmkubixpLm4saS5hXSkpLmE7az1hLmkubi5iO2M9czJiKGEuZSk7Zm9yKGU9YyxmPTAsZz1lLmxlbmd0aDtmPGc7KytmKXtkPWVbZl07WjBiKGQsaSk7T3ViKGQuYSxuZXcgcmpkKGosaykpO2lmKGIpe2g9UkQobVFiKGQsKHlDYygpLFJBYykpLDc1KTtpZighaCl7aD1uZXcgRWpkO3BRYihkLFJBYyxoKX1NdWIoaCxuZXcgcmpkKGosaykpfX19XG5mdW5jdGlvbiB5ZmMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGs7ZT1SRChtUWIoYSwoWXdjKCksQXdjKSksMTIpO2o9eGpkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW2UuaS5uLGUubixlLmFdKSkuYTtrPWEuaS5uLmI7Yz1zMmIoYS5nKTtmb3IoZz1jLGg9MCxpPWcubGVuZ3RoO2g8aTsrK2gpe2Y9Z1toXTtZMGIoZixlKTtOdWIoZi5hLG5ldyByamQoaixrKSk7aWYoYil7ZD1SRChtUWIoZiwoeUNjKCksUkFjKSksNzUpO2lmKCFkKXtkPW5ldyBFamQ7cFFiKGYsUkFjLGQpfU11YihkLG5ldyByamQoaixrKSl9fX1cbmZ1bmN0aW9uIEtoYyhhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGo7ZD1hLmI7Zj1kLmU7Zz1Db2QoUkQobVFiKGQsKHlDYygpLEJCYykpLDEwMSkpO2M9ISFmJiZSRChtUWIoZiwoWXdjKCksa3djKSksMjEpLkhjKChvdmMoKSxodmMpKTtpZihnfHxjKXtyZXR1cm59Zm9yKGo9KGg9KG5ldyBnbGIoYS5lKSkuYS52YygpLktjKCksbmV3IGxsYihoKSk7ai5hLk9iKCk7KXtpPShiPVJEKGouYS5QYigpLDQ0KSxSRChiLm1kKCksMTEzKSk7aWYoaS5hKXtlPWkuZDtQM2IoZSxudWxsKTtpLmM9dHJ1ZTthLmE9dHJ1ZX19fVxuZnVuY3Rpb24gaWljKGEsYil7dmFyIGMsZCxlLGY7Yi5VZygnU2VtaS1JbnRlcmFjdGl2ZSBDcm9zc2luZyBNaW5pbWl6YXRpb24gUHJvY2Vzc29yJywxKTtjPWZhbHNlO2ZvcihlPW5ldyBBbmIoYS5iKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMzApO2Y9TURiKFBEYihDRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGQuYSwxNikpLG5ldyBuaWMpLG5ldyBwaWMpLG5ldyByaWMpLG5ldyB2aWMpO2M9Y3xmLmEhPW51bGx9YyYmcFFiKGEsKFl3YygpLHJ3YyksKEdlYigpLHRydWUpKTtiLlZnKCl9XG5mdW5jdGlvbiByS2MoYSxiKXt2YXIgYyxkLGUsZixnLGg7YS5iPW5ldyBibmI7YS5kPVJEKG1RYihiLChZd2MoKSxMd2MpKSwyMzQpO2EuZT1Md2IoYS5kKTtmPW5ldyBZdWI7ZT1kdihjRChXQyhlUiwxKSxPQWUsMzYsMCxbYl0pKTtnPTA7d2hpbGUoZzxlLmMubGVuZ3RoKXtkPSh0RmIoZyxlLmMubGVuZ3RoKSxSRChlLmNbZ10sMzYpKTtkLnA9ZysrO2M9bmV3IEZKYyhkLGEuYSxhLmIpO1RtYihlLGMuYik7Um1iKGEuYixjKTtjLnMmJihoPVN1YihmLDApLGN2YihoLGMpKX1hLmM9bmV3IF9zYjtyZXR1cm4gZn1cbmZ1bmN0aW9uIHlNYihhLGIpe3ZhciBjLGQsZSxmLGcsaDtmb3IoZz1SRChSRChRYyhhLnIsYiksMjEpLDg3KS5LYygpO2cuT2IoKTspe2Y9UkQoZy5QYigpLDExNyk7Yz1mLmM/UUtiKGYuYyk6MDtpZihjPjApe2lmKGYuYSl7aD1mLmIuTWYoKS5hO2lmKGM+aCl7ZT0oYy1oKS8yO2YuZC5iPWU7Zi5kLmM9ZX19ZWxzZXtmLmQuYz1hLnMrY319ZWxzZSBpZihSb2QoYS51KSl7ZD13c2QoZi5iKTtkLmM8MCYmKGYuZC5iPS1kLmMpO2QuYytkLmI+Zi5iLk1mKCkuYSYmKGYuZC5jPWQuYytkLmItZi5iLk1mKCkuYSl9fX1cbmZ1bmN0aW9uIFJVYyhhLGIpe3ZhciBjLGQsZSxmLGc7Zz1uZXcgYm5iO2M9Yjtkb3tmPVJEKFdqYihhLmIsYyksMTMxKTtmLkI9Yy5jO2YuRD1jLmQ7WkViKGcuYyxmKTtjPVJEKFdqYihhLmssYyksMTgpfXdoaWxlKGMpO2Q9KHRGYigwLGcuYy5sZW5ndGgpLFJEKGcuY1swXSwxMzEpKTtkLmo9dHJ1ZTtkLkE9UkQoZC5kLmEuZWMoKS5LYygpLlBiKCksMTgpLmMuaTtlPVJEKFZtYihnLGcuYy5sZW5ndGgtMSksMTMxKTtlLnE9dHJ1ZTtlLkM9UkQoZS5kLmEuZWMoKS5LYygpLlBiKCksMTgpLmQuaTtyZXR1cm4gZ31cbmZ1bmN0aW9uIHBQYihhKXt2YXIgYixjO2I9UkQoYS5hLDE3KS5hO2M9UkQoYS5iLDE3KS5hO2lmKGI+PTApe2lmKGI9PWMpe3JldHVybiBuZXcgUHRkKHNnYigtYi0xKSxzZ2IoLWItMSkpfWlmKGI9PS1jKXtyZXR1cm4gbmV3IFB0ZChzZ2IoLWIpLHNnYihjKzEpKX19aWYoJHduZC5NYXRoLmFicyhiKT4kd25kLk1hdGguYWJzKGMpKXtpZihiPDApe3JldHVybiBuZXcgUHRkKHNnYigtYiksc2diKGMpKX1yZXR1cm4gbmV3IFB0ZChzZ2IoLWIpLHNnYihjKzEpKX1yZXR1cm4gbmV3IFB0ZChzZ2IoYisxKSxzZ2IoYykpfVxuZnVuY3Rpb24gSDhiKGEpe3ZhciBiLGM7Yz1SRChtUWIoYSwoeUNjKCksVUFjKSksMTcxKTtiPVJEKG1RYihhLChZd2MoKSxvd2MpKSwzMTEpO2lmKGM9PShjeGMoKSwkd2MpKXtwUWIoYSxVQWMsYnhjKTtwUWIoYSxvd2MsKEd2YygpLEZ2YykpfWVsc2UgaWYoYz09YXhjKXtwUWIoYSxVQWMsYnhjKTtwUWIoYSxvd2MsKEd2YygpLER2YykpfWVsc2UgaWYoYj09KEd2YygpLEZ2Yykpe3BRYihhLFVBYywkd2MpO3BRYihhLG93YyxFdmMpfWVsc2UgaWYoYj09RHZjKXtwUWIoYSxVQWMsYXhjKTtwUWIoYSxvd2MsRXZjKX19XG5mdW5jdGlvbiBkU2MoKXtkU2M9Z2ViO2JTYz1uZXcgcFNjO1pSYz1wZmQobmV3IHVmZCwoc1hiKCkscFhiKSwoaGNjKCksRmJjKSk7YVNjPW5mZChwZmQobmV3IHVmZCxwWGIsVGJjKSxyWGIsU2JjKTtjU2M9bWZkKG1mZChyZmQobmZkKHBmZChuZXcgdWZkLG5YYixiY2MpLHJYYixhY2MpLHFYYiksX2JjKSxjY2MpOyRSYz1uZmQocGZkKHBmZChwZmQobmV3IHVmZCxvWGIsSWJjKSxxWGIsS2JjKSxxWGIsTGJjKSxyWGIsSmJjKTtfUmM9bmZkKHBmZChwZmQobmV3IHVmZCxxWGIsTGJjKSxxWGIscWJjKSxyWGIscGJjKX1cbmZ1bmN0aW9uIEhVYygpe0hVYz1nZWI7Q1VjPXBmZChuZmQobmV3IHVmZCwoc1hiKCksclhiKSwoaGNjKCksdGJjKSkscFhiLEZiYyk7R1VjPW1mZChtZmQocmZkKG5mZChwZmQobmV3IHVmZCxuWGIsYmNjKSxyWGIsYWNjKSxxWGIpLF9iYyksY2NjKTtEVWM9bmZkKHBmZChwZmQocGZkKG5ldyB1ZmQsb1hiLEliYykscVhiLEtiYykscVhiLExiYyksclhiLEpiYyk7RlVjPXBmZChwZmQobmV3IHVmZCxwWGIsVGJjKSxyWGIsU2JjKTtFVWM9bmZkKHBmZChwZmQobmV3IHVmZCxxWGIsTGJjKSxxWGIscWJjKSxyWGIscGJjKX1cbmZ1bmN0aW9uIGVTYyhhLGIsYyxkLGUpe3ZhciBmLGc7aWYoKCFXMGIoYikmJmIuYy5pLmM9PWIuZC5pLmN8fCFkamQoeGpkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW2UuaS5uLGUubixlLmFdKSksYykpJiYhVzBiKGIpKXtiLmM9PWU/aHUoYi5hLDAsbmV3IHNqZChjKSk6TXViKGIuYSxuZXcgc2pkKGMpKTtpZihkJiYhWnNiKGEuYSxjKSl7Zz1SRChtUWIoYiwoeUNjKCksUkFjKSksNzUpO2lmKCFnKXtnPW5ldyBFamQ7cFFiKGIsUkFjLGcpfWY9bmV3IHNqZChjKTtQdWIoZyxmLGcuYy5iLGcuYyk7WXNiKGEuYSxmKX19fVxuZnVuY3Rpb24gaHQoYSxiKXt2YXIgYyxkLGUsZjtmPVlkYihOZGIoY3dlLHFnYihZZGIoTmRiKGI9PW51bGw/MDp0YihiKSxkd2UpKSwxNSkpKTtjPWYmYS5iLmxlbmd0aC0xO2U9bnVsbDtmb3IoZD1hLmJbY107ZDtlPWQsZD1kLmEpe2lmKGQuZD09ZiYmSGIoZC5pLGIpKXshZT8oYS5iW2NdPWQuYSk6KGUuYT1kLmEpO1RzKFJEKEh2YihkLmMpLDYwNCksUkQoSHZiKGQuZiksNjA0KSk7U3MoUkQoSHZiKGQuYiksMjI3KSxSRChIdmIoZC5lKSwyMjcpKTstLWEuZjsrK2EuZTtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gZGVjKGEpe3ZhciBiLGM7Zm9yKGM9bmV3IGlzKE1yKFoyYihhKS5hLktjKCksbmV3IGlyKSk7Z3MoYyk7KXtiPVJEKGhzKGMpLDE4KTtpZihiLmMuaS5rIT0ocjNiKCksbjNiKSl7dGhyb3cgQWRiKG5ldyBKZWQobkJlK1gyYihhKStcIicgaGFzIGl0cyBsYXllciBjb25zdHJhaW50IHNldCB0byBGSVJTVCwgYnV0IGhhcyBhdCBsZWFzdCBvbmUgaW5jb21pbmcgZWRnZSB0aGF0IFwiKycgZG9lcyBub3QgY29tZSBmcm9tIGEgRklSU1RfU0VQQVJBVEUgbm9kZS4gVGhhdCBtdXN0IG5vdCBoYXBwZW4uJykpfX19XG5mdW5jdGlvbiBUd2QoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqO2U9Z2diKGEuRGImMjU0KTtpZihlPT0wKXthLkViPWN9ZWxzZXtpZihlPT0xKXtoPSRDKGpKLHJ2ZSwxLDIsNSwxKTtmPVh3ZChhLGIpO2lmKGY9PTApe2hbMF09YztoWzFdPWEuRWJ9ZWxzZXtoWzBdPWEuRWI7aFsxXT1jfX1lbHNle2g9JEMoakoscnZlLDEsZSsxLDUsMSk7Zz1TRChhLkViKTtmb3IoZD0yLGk9MCxqPTA7ZDw9MTI4O2Q8PD0xKXtkPT1iPyhoW2orK109Yyk6KGEuRGImZCkhPTAmJihoW2orK109Z1tpKytdKX19YS5FYj1ofWEuRGJ8PWJ9XG5mdW5jdGlvbiB2UWIoYSxiLGMpe3ZhciBkLGUsZixnO3RoaXMuYj1uZXcgYm5iO2U9MDtkPTA7Zm9yKGc9bmV3IEFuYihhKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMTc2KTtjJiZpUGIoZik7Um1iKHRoaXMuYixmKTtlKz1mLm87ZCs9Zi5wfWlmKHRoaXMuYi5jLmxlbmd0aD4wKXtmPVJEKFZtYih0aGlzLmIsMCksMTc2KTtlKz1mLm87ZCs9Zi5wfWUqPTI7ZCo9MjtiPjE/KGU9ZUUoJHduZC5NYXRoLmNlaWwoZSpiKSkpOihkPWVFKCR3bmQuTWF0aC5jZWlsKGQvYikpKTt0aGlzLmE9bmV3IGdRYihlLGQpfVxuZnVuY3Rpb24gbWtjKGEsYixjLGQsZSxmKXt2YXIgZyxoLGksaixrLGwsbSxuLG8scCxxLHI7az1kO2lmKGIuaiYmYi5vKXtuPVJEKFdqYihhLmYsYi5BKSw2MCk7cD1uLmQuYytuLmQuYjstLWt9ZWxzZXtwPWIuYS5jK2IuYS5ifWw9ZTtpZihjLnEmJmMubyl7bj1SRChXamIoYS5mLGMuQyksNjApO2o9bi5kLmM7KytsfWVsc2V7aj1jLmEuY31xPWotcDtpPSR3bmQuTWF0aC5tYXgoMixsLWspO2g9cS9pO289cCtoO2ZvcihtPWs7bTxsOysrbSl7Zz1SRChmLlhiKG0pLDEzMSk7cj1nLmEuYjtnLmEuYz1vLXIvMjtvKz1ofX1cbmZ1bmN0aW9uIFdyYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG07ZT1iP25ldyBkc2M6bmV3IGZzYztmPWZhbHNlO2Rve2Y9ZmFsc2U7aj1iP2h2KGEuYik6YS5iO2ZvcihpPWouS2MoKTtpLk9iKCk7KXtoPVJEKGkuUGIoKSwzMCk7bT1idihoLmEpO2J8fGh2KG0pO2ZvcihsPW5ldyBBbmIobSk7bC5hPGwuYy5jLmxlbmd0aDspe2s9UkQoeW5iKGwpLDEwKTtpZihlLk1iKGspKXtkPWs7Yz1SRChtUWIoaywoWXdjKCksV3ZjKSksMzEzKTtnPWI/Yy5iOmMuaztmPVVyYyhkLGcsYixmYWxzZSl9fX19d2hpbGUoZil9XG5mdW5jdGlvbiBzTWMoYSxiLGMsZCxlLGYpe3ZhciBnLGgsaSxqLGssbDtqPWMuYy5sZW5ndGg7ZiYmKGEuYz0kQyhrRSxQd2UsMjgsYi5sZW5ndGgsMTUsMSkpO2ZvcihnPWU/MDpiLmxlbmd0aC0xO2U/ZzxiLmxlbmd0aDpnPj0wO2crPWU/MTotMSl7aD1iW2ddO2k9ZD09KHFwZCgpLFhvZCk/ZT9iM2IoaCxkKTpodihiM2IoaCxkKSk6ZT9odihiM2IoaCxkKSk6YjNiKGgsZCk7ZiYmKGEuY1toLnBdPWkuZ2MoKSk7Zm9yKGw9aS5LYygpO2wuT2IoKTspe2s9UkQobC5QYigpLDEyKTthLmRbay5wXT1qKyt9VG1iKGMsaSl9fVxuZnVuY3Rpb24gQVVjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrO2Y9S2ZiKFVEKGEuYi5LYygpLlBiKCkpKTtqPUtmYihVRChmcihiLmIpKSk7ZD1pamQoYWpkKGEuYSksai1jKTtlPWlqZChhamQoYi5hKSxjLWYpO2s9JGlkKGQsZSk7aWpkKGssMS8oai1mKSk7dGhpcy5hPWs7dGhpcy5iPW5ldyBibmI7aD10cnVlO2c9YS5iLktjKCk7Zy5QYigpO3doaWxlKGcuT2IoKSl7aT1LZmIoVUQoZy5QYigpKSk7aWYoaCYmaS1jPkFFZSl7dGhpcy5iLkZjKGMpO2g9ZmFsc2V9dGhpcy5iLkZjKGkpfWgmJnRoaXMuYi5GYyhjKX1cbmZ1bmN0aW9uIG1KYihhKXt2YXIgYixjLGQsZTtwSmIoYSxhLm4pO2lmKGEuZC5jLmxlbmd0aD4wKXtObmIoYS5jKTt3aGlsZSh4SmIoYSxSRCh5bmIobmV3IEFuYihhLmUuYSkpLDEyNSkpPGEuZS5hLmMubGVuZ3RoKXtiPXJKYihhKTtlPWIuZS5lLWIuZC5lLWIuYTtiLmUuaiYmKGU9LWUpO2ZvcihkPW5ldyBBbmIoYS5lLmEpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxMjUpO2MuaiYmKGMuZSs9ZSl9Tm5iKGEuYyl9Tm5iKGEuYyk7dUpiKGEsUkQoeW5iKG5ldyBBbmIoYS5lLmEpKSwxMjUpKTtpSmIoYSl9fVxuZnVuY3Rpb24gbmVkKGEsYil7aGVkKCk7dmFyIGMsZDtjPXVnZCh5Z2QoKSxiLlBnKCkpO2lmKGMpe2Q9Yy5qO2lmKFpEKGEsMjA3KSl7cmV0dXJuIHhDZChSRChhLDI3KSk/Q3NiKGQsKFloZCgpLFZoZCkpfHxDc2IoZCxXaGQpOkNzYihkLChZaGQoKSxWaGQpKX1lbHNlIGlmKFpEKGEsMzI2KSl7cmV0dXJuIENzYihkLChZaGQoKSxUaGQpKX1lbHNlIGlmKFpEKGEsMTkzKSl7cmV0dXJuIENzYihkLChZaGQoKSxYaGQpKX1lbHNlIGlmKFpEKGEsMzY2KSl7cmV0dXJuIENzYihkLChZaGQoKSxVaGQpKX19cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBDZ2UoYSxiLGMpe3ZhciBkLGUsZixnLGgsaTtlPWM7Zj1lLkxrKCk7aWYocWtlKGEuZSxmKSl7aWYoZi5TaSgpKXtkPVJEKGEuZywxMjQpO2ZvcihnPTA7ZzxhLmk7KytnKXtoPWRbZ107aWYocGIoaCxlKSYmZyE9Yil7dGhyb3cgQWRiKG5ldyBhZ2IoTEllKSl9fX19ZWxzZXtpPXBrZShhLmUuRGgoKSxmKTtkPVJEKGEuZywxMjQpO2ZvcihnPTA7ZzxhLmk7KytnKXtoPWRbZ107aWYoaS5hbShoLkxrKCkpJiZnIT1iKXt0aHJvdyBBZGIobmV3IGFnYihnTGUpKX19fXJldHVybiBSRChlSGQoYSxiLGMpLDc2KX1cbmZ1bmN0aW9uIGh6KGQsYil7aWYoYiBpbnN0YW5jZW9mIE9iamVjdCl7dHJ5e2IuX19qYXZhJGV4Y2VwdGlvbj1kO2lmKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdtc2llJykhPS0xJiYkZG9jLmRvY3VtZW50TW9kZTw5KXtyZXR1cm59dmFyIGM9ZDtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhiLHtjYXVzZTp7Z2V0OmZ1bmN0aW9uKCl7dmFyIGE9Yy5oZSgpO3JldHVybiBhJiZhLmZlKCl9fSxzdXBwcmVzc2VkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5nZSgpfX19KX1jYXRjaChhKXt9fX1cbmZ1bmN0aW9uIHRqYihhLGIpe3ZhciBjLGQsZSxmLGc7ZD1iPj41O2ImPTMxO2lmKGQ+PWEuZCl7cmV0dXJuIGEuZTwwPyhQaWIoKSxKaWIpOihQaWIoKSxPaWIpfWY9YS5kLWQ7ZT0kQyhrRSxQd2UsMjgsZisxLDE1LDEpO3VqYihlLGYsYS5hLGQsYik7aWYoYS5lPDApe2ZvcihjPTA7YzxkJiZhLmFbY109PTA7YysrKTtpZihjPGR8fGI+MCYmYS5hW2NdPDwzMi1iIT0wKXtmb3IoYz0wO2M8ZiYmZVtjXT09LTE7YysrKXtlW2NdPTB9Yz09ZiYmKytmOysrZVtjXX19Zz1uZXcgY2piKGEuZSxmLGUpO1JpYihnKTtyZXR1cm4gZ31cbmZ1bmN0aW9uIExTYihhKXt2YXIgYixjLGQsZTtlPU1DZChhKTtjPW5ldyBiVGIoZSk7ZD1uZXcgZFRiKGUpO2I9bmV3IGJuYjtUbWIoYiwoIWEuZCYmKGEuZD1uZXcgWWllKEc0LGEsOCw1KSksYS5kKSk7VG1iKGIsKCFhLmUmJihhLmU9bmV3IFlpZShHNCxhLDcsNCkpLGEuZSkpO3JldHVybiBSRCh6RGIoR0RiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihiLDE2KSksYyksZCksc0JiKG5ldyBfQmIsbmV3IGJDYixuZXcgeUNiLG5ldyBBQ2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFsoeEJiKCksd0JiKSx2QmJdKSkpLDIxKX1cbmZ1bmN0aW9uIFRkYyhhLGIpe3ZhciBjO2M9UkQobVFiKGEsKHlDYygpLHhBYykpLDI4Myk7Yi5VZygnTGFiZWwgc2lkZSBzZWxlY3Rpb24gKCcrYysnKScsMSk7c3dpdGNoKGMuZyl7Y2FzZSAwOlVkYyhhLChQbmQoKSxMbmQpKTticmVhaztjYXNlIDE6VWRjKGEsKFBuZCgpLE1uZCkpO2JyZWFrO2Nhc2UgMjpTZGMoYSwoUG5kKCksTG5kKSk7YnJlYWs7Y2FzZSAzOlNkYyhhLChQbmQoKSxNbmQpKTticmVhaztjYXNlIDQ6VmRjKGEsKFBuZCgpLExuZCkpO2JyZWFrO2Nhc2UgNTpWZGMoYSwoUG5kKCksTW5kKSk7fWIuVmcoKX1cbmZ1bmN0aW9uIHFrZShhLGIpe25rZSgpO3ZhciBjLGQsZTtpZihiLkprKCkpe3JldHVybiB0cnVlfWVsc2UgaWYoYi5JaygpPT0tMil7aWYoYj09KExsZSgpLEpsZSl8fGI9PUdsZXx8Yj09SGxlfHxiPT1JbGUpe3JldHVybiB0cnVlfWVsc2V7ZT1hLkRoKCk7aWYoQllkKGUsYik+PTApe3JldHVybiBmYWxzZX1lbHNle2M9RWVlKChsa2UoKSxqa2UpLGUsYik7aWYoIWMpe3JldHVybiB0cnVlfWVsc2V7ZD1jLklrKCk7cmV0dXJuIChkPjF8fGQ9PS0xKSYmeWZlKFFlZShqa2UsYykpIT0zfX19fWVsc2V7cmV0dXJuIGZhbHNlfX1cbmZ1bmN0aW9uIF80YihhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2g9QUdkKFJEKFFIZCgoIWIuYiYmKGIuYj1uZXcgWWllKEU0LGIsNCw3KSksYi5iKSwwKSw4NCkpO2k9QUdkKFJEKFFIZCgoIWIuYyYmKGIuYz1uZXcgWWllKEU0LGIsNSw4KSksYi5jKSwwKSw4NCkpO2lmKHZDZChoKT09dkNkKGkpKXtyZXR1cm4gbnVsbH1pZihOR2QoaSxoKSl7cmV0dXJuIG51bGx9Zz1remQoYik7aWYoZz09Yyl7cmV0dXJuIGR9ZWxzZXtmPVJEKFdqYihhLmEsZyksMTApO2lmKGYpe2U9Zi5lO2lmKGUpe3JldHVybiBlfX19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiB1SGMoYSxiLGMpe3ZhciBkLGUsZixnLGg7Yy5VZygnTG9uZ2VzdCBwYXRoIHRvIHNvdXJjZSBsYXllcmluZycsMSk7YS5hPWI7aD1hLmEuYTthLmI9JEMoa0UsUHdlLDI4LGguYy5sZW5ndGgsMTUsMSk7ZD0wO2ZvcihnPW5ldyBBbmIoaCk7Zy5hPGcuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGcpLDEwKTtlLnA9ZDthLmJbZF09LTE7KytkfWZvcihmPW5ldyBBbmIoaCk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDEwKTt3SGMoYSxlKX1oLmMubGVuZ3RoPTA7YS5hPW51bGw7YS5iPW51bGw7Yy5WZygpfVxuZnVuY3Rpb24gQktjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7ZD1wS2MoYyxhLmxlbmd0aCk7Zz1hW2RdO2Y9cUtjKGMsZy5sZW5ndGgpO2lmKGdbZl0uayE9KHIzYigpLG0zYikpe3JldHVybn1pPWIuajtmb3IoZT0wO2U8aS5jLmxlbmd0aDtlKyspe2g9KHRGYihlLGkuYy5sZW5ndGgpLFJEKGkuY1tlXSwxMikpO2lmKChjP2guaj09KHFwZCgpLFhvZCk6aC5qPT0ocXBkKCkscHBkKSkmJkhlYihURChtUWIoaCwoWXdjKCksbndjKSkpKSl7JG1iKGksZSxSRChtUWIoZ1tmXSwoWXdjKCksQXdjKSksMTIpKTtmKz1jPzE6LTF9fX1cbmZ1bmN0aW9uIG44YyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGo7Yi5VZygnR3JlZWR5IFdpZHRoIEFwcHJveGltYXRvcicsMSk7Yz1LZmIoVUQoR3hkKGEsKFg3YygpLHg3YykpKSk7aT1SRChHeGQoYSxON2MpLDEwNyk7Zj1SRChHeGQoYSxVN2MpLDM5NCk7Zz1IZWIoVEQoR3hkKGEsVDdjKSkpO2g9S2ZiKFVEKEd4ZChhLFE3YykpKTtqPSghYS5hJiYoYS5hPW5ldyBDNWQoSjQsYSwxMCwxMSkpLGEuYSk7QmFkKGopO2U9bmV3IGc4YyhjLGYsZyk7ZD1jOGMoZSxqLGgsaSk7SXhkKGEsKFg2YygpLFc2YyksZC5jKTtiLlZnKCl9XG5mdW5jdGlvbiB5S2QoYSl7aWYoYS5nPT1udWxsKXtzd2l0Y2goYS5wKXtjYXNlIDA6YS5nPXFLZChhKT8oR2ViKCksRmViKTooR2ViKCksRWViKTticmVhaztjYXNlIDE6YS5nPSRlYihyS2QoYSkpO2JyZWFrO2Nhc2UgMjphLmc9aGZiKHNLZChhKSk7YnJlYWs7Y2FzZSAzOmEuZz10S2QoYSk7YnJlYWs7Y2FzZSA0OmEuZz1uZXcgVGZiKHVLZChhKSk7YnJlYWs7Y2FzZSA2OmEuZz1IZ2Iod0tkKGEpKTticmVhaztjYXNlIDU6YS5nPXNnYih2S2QoYSkpO2JyZWFrO2Nhc2UgNzphLmc9YmhiKHhLZChhKSk7fX1yZXR1cm4gYS5nfVxuZnVuY3Rpb24gSEtkKGEpe2lmKGEubj09bnVsbCl7c3dpdGNoKGEucCl7Y2FzZSAwOmEubj16S2QoYSk/KEdlYigpLEZlYik6KEdlYigpLEVlYik7YnJlYWs7Y2FzZSAxOmEubj0kZWIoQUtkKGEpKTticmVhaztjYXNlIDI6YS5uPWhmYihCS2QoYSkpO2JyZWFrO2Nhc2UgMzphLm49Q0tkKGEpO2JyZWFrO2Nhc2UgNDphLm49bmV3IFRmYihES2QoYSkpO2JyZWFrO2Nhc2UgNjphLm49SGdiKEZLZChhKSk7YnJlYWs7Y2FzZSA1OmEubj1zZ2IoRUtkKGEpKTticmVhaztjYXNlIDc6YS5uPWJoYihHS2QoYSkpO319cmV0dXJuIGEubn1cbmZ1bmN0aW9uIFBmZShhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2g9KG5rZSgpLFJEKGIsNjkpLnhrKCkpO2lmKHFrZShhLmUsYikpe2lmKGIuU2koKSYmZGdlKGEsYixkLFpEKGIsMTAyKSYmKFJEKGIsMTkpLkJiJnR4ZSkhPTApKXt0aHJvdyBBZGIobmV3IGFnYihMSWUpKX19ZWxzZXtpPXBrZShhLmUuRGgoKSxiKTtlPVJEKGEuZywxMjQpO2ZvcihnPTA7ZzxhLmk7KytnKXtmPWVbZ107aWYoaS5hbShmLkxrKCkpKXt0aHJvdyBBZGIobmV3IGFnYihnTGUpKX19fVZHZChhLGdnZShhLGIsYyksaD9SRChkLDc2KTpva2UoYixkKSl9XG5mdW5jdGlvbiBIR2IoYSl7dmFyIGIsYyxkLGUsZixnLGg7Zm9yKGY9bmV3IEFuYihhLmEuYSk7Zi5hPGYuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGYpLDMxNik7ZC5nPTA7ZC5pPTA7ZC5lLmEuJGIoKX1mb3IoZT1uZXcgQW5iKGEuYS5hKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMzE2KTtmb3IoYz1kLmEuYS5lYygpLktjKCk7Yy5PYigpOyl7Yj1SRChjLlBiKCksNjApO2ZvcihoPWIuYy5LYygpO2guT2IoKTspe2c9UkQoaC5QYigpLDYwKTtpZihnLmEhPWQpe1lzYihkLmUsZyk7KytnLmEuZzsrK2cuYS5pfX19fX1cbmZ1bmN0aW9uIFg4YihhKXt2YXIgYixjLGQsZSxmO2U9UkQobVFiKGEsKHlDYygpLGxCYykpLDIxKTtmPVJEKG1RYihhLG9CYyksMjEpO2M9bmV3IHJqZChhLmYuYSthLmQuYithLmQuYyxhLmYuYithLmQuZCthLmQuYSk7Yj1uZXcgc2pkKGMpO2lmKGUuSGMoKFFwZCgpLE1wZCkpKXtkPVJEKG1RYihhLG5CYyksOCk7aWYoZi5IYygoZHFkKCksWXBkKSkpe2QuYTw9MCYmKGQuYT0yMCk7ZC5iPD0wJiYoZC5iPTIwKX1iLmE9JHduZC5NYXRoLm1heChjLmEsZC5hKTtiLmI9JHduZC5NYXRoLm1heChjLmIsZC5iKX1ZOGIoYSxjLGIpfVxuZnVuY3Rpb24gU1liKGEsYil7dmFyIGMsZCxlO2IuYT8ockFiKGEuYixiLmIpLGEuYVtiLmIuaV09UkQodkFiKGEuYixiLmIpLDg2KSxjPVJEKHVBYihhLmIsYi5iKSw4NiksISFjJiYoYS5hW2MuaV09Yi5iKSx1bmRlZmluZWQpOihkPVJEKHZBYihhLmIsYi5iKSw4NiksISFkJiZkPT1hLmFbYi5iLmldJiYhIWQuZCYmZC5kIT1iLmIuZCYmZC5mLkZjKGIuYiksZT1SRCh1QWIoYS5iLGIuYiksODYpLCEhZSYmYS5hW2UuaV09PWIuYiYmISFlLmQmJmUuZCE9Yi5iLmQmJmIuYi5mLkZjKGUpLHdBYihhLmIsYi5iKSx1bmRlZmluZWQpfVxuZnVuY3Rpb24gT2VjKGEsYil7dmFyIGMsZCxlLGYsZyxoO2Y9YS5kO2g9S2ZiKFVEKG1RYihhLCh5Q2MoKSxGQWMpKSkpO2lmKGg8MCl7aD0wO3BRYihhLEZBYyxoKX1iLm8uYj1oO2c9JHduZC5NYXRoLmZsb29yKGgvMik7ZD1uZXcgUjNiO1EzYihkLChxcGQoKSxwcGQpKTtQM2IoZCxiKTtkLm4uYj1nO2U9bmV3IFIzYjtRM2IoZSxYb2QpO1AzYihlLGIpO2Uubi5iPWc7WjBiKGEsZCk7Yz1uZXcgYTFiO2tRYihjLGEpO3BRYihjLFJBYyxudWxsKTtZMGIoYyxlKTtaMGIoYyxmKTtOZWMoYixhLGMpO0xlYyhhLGMpO3JldHVybiBjfVxuZnVuY3Rpb24gVVJjKGEpe3ZhciBiLGM7Yz1SRChtUWIoYSwoWXdjKCksa3djKSksMjEpO2I9bmV3IHVmZDtpZihjLkhjKChvdmMoKSxpdmMpKSl7b2ZkKGIsT1JjKTtvZmQoYixRUmMpfWlmKGMuSGMoa3ZjKXx8SGViKFREKG1RYihhLCh5Q2MoKSxHQWMpKSkpKXtvZmQoYixRUmMpO2MuSGMobHZjKSYmb2ZkKGIsUlJjKX1jLkhjKGh2YykmJm9mZChiLE5SYyk7Yy5IYyhudmMpJiZvZmQoYixTUmMpO2MuSGMoanZjKSYmb2ZkKGIsUFJjKTtjLkhjKGV2YykmJm9mZChiLExSYyk7Yy5IYyhndmMpJiZvZmQoYixNUmMpO3JldHVybiBifVxuZnVuY3Rpb24gUWpiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbTtkPWEuZDtmPWIuZDtoPWQrZjtpPWEuZSE9Yi5lPy0xOjE7aWYoaD09Mil7az1OZGIoQ2RiKGEuYVswXSx5eGUpLENkYihiLmFbMF0seXhlKSk7bT1ZZGIoayk7bD1ZZGIoVWRiKGssMzIpKTtyZXR1cm4gbD09MD9uZXcgYWpiKGksbSk6bmV3IGNqYihpLDIsY0QoV0Moa0UsMSksUHdlLDI4LDE1LFttLGxdKSl9Yz1hLmE7ZT1iLmE7Zz0kQyhrRSxQd2UsMjgsaCwxNSwxKTtOamIoYyxkLGUsZixnKTtqPW5ldyBjamIoaSxoLGcpO1JpYihqKTtyZXR1cm4gan1cbmZ1bmN0aW9uIFV5YihhLGIsYyxkKXt2YXIgZSxmO2lmKCFiKXtyZXR1cm4gY31lbHNle2U9YS5hLk5lKGMuZCxiLmQpO2lmKGU9PTApe2QuZD1xbGIoYixjLmUpO2QuYj10cnVlO3JldHVybiBifWY9ZTwwPzA6MTtiLmFbZl09VXliKGEsYi5hW2ZdLGMsZCk7aWYoVnliKGIuYVtmXSkpe2lmKFZ5YihiLmFbMS1mXSkpe2IuYj10cnVlO2IuYVswXS5iPWZhbHNlO2IuYVsxXS5iPWZhbHNlfWVsc2V7VnliKGIuYVtmXS5hW2ZdKT8oYj1hemIoYiwxLWYpKTpWeWIoYi5hW2ZdLmFbMS1mXSkmJihiPV95YihiLDEtZikpfX19cmV0dXJuIGJ9XG5mdW5jdGlvbiBuS2IoYSxiLGMpe3ZhciBkLGUsZixnO2U9YS5pO2Q9YS5uO21LYihhLChaSmIoKSxXSmIpLGUuYytkLmIsYyk7bUtiKGEsWUpiLGUuYytlLmItZC5jLWNbMl0sYyk7Zz1lLmItZC5iLWQuYztpZihjWzBdPjApe2NbMF0rPWEuZDtnLT1jWzBdfWlmKGNbMl0+MCl7Y1syXSs9YS5kO2ctPWNbMl19Zj0kd25kLk1hdGgubWF4KDAsZyk7Y1sxXT0kd25kLk1hdGgubWF4KGNbMV0sZyk7bUtiKGEsWEpiLGUuYytkLmIrY1swXS0oY1sxXS1nKS8yLGMpO2lmKGI9PVhKYil7YS5jLmI9ZjthLmMuYz1lLmMrZC5iKyhmLWcpLzJ9fVxuZnVuY3Rpb24gRF9iKCl7dGhpcy5jPSRDKGlFLHZ4ZSwyOCwocXBkKCksY0QoV0MoRTMsMSksTkFlLDY0LDAsW29wZCxZb2QsWG9kLG5wZCxwcGRdKSkubGVuZ3RoLDE1LDEpO3RoaXMuYj0kQyhpRSx2eGUsMjgsY0QoV0MoRTMsMSksTkFlLDY0LDAsW29wZCxZb2QsWG9kLG5wZCxwcGRdKS5sZW5ndGgsMTUsMSk7dGhpcy5hPSRDKGlFLHZ4ZSwyOCxjRChXQyhFMywxKSxOQWUsNjQsMCxbb3BkLFlvZCxYb2QsbnBkLHBwZF0pLmxlbmd0aCwxNSwxKTtMbmIodGhpcy5jLG94ZSk7TG5iKHRoaXMuYixweGUpO0xuYih0aGlzLmEscHhlKX1cbmZ1bmN0aW9uIHJ0ZShhLGIsYyl7dmFyIGQsZSxmLGc7aWYoYjw9Yyl7ZT1iO2Y9Y31lbHNle2U9YztmPWJ9ZD0wO2lmKGEuYj09bnVsbCl7YS5iPSRDKGtFLFB3ZSwyOCwyLDE1LDEpO2EuYlswXT1lO2EuYlsxXT1mO2EuYz10cnVlfWVsc2V7ZD1hLmIubGVuZ3RoO2lmKGEuYltkLTFdKzE9PWUpe2EuYltkLTFdPWY7cmV0dXJufWc9JEMoa0UsUHdlLDI4LGQrMiwxNSwxKTtoaWIoYS5iLDAsZywwLGQpO2EuYj1nO2EuYltkLTFdPj1lJiYoYS5jPWZhbHNlLGEuYT1mYWxzZSk7YS5iW2QrK109ZTthLmJbZF09ZjthLmN8fHZ0ZShhKX19XG5mdW5jdGlvbiBPcWMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqO2o9Yi5kO2EuYT1uZXcgY25iKGouYy5sZW5ndGgpO2EuYz1uZXcgVHNiO2ZvcihoPW5ldyBBbmIoaik7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDEwNSk7Zj1uZXcgVVNjKG51bGwpO1JtYihhLmEsZik7WmpiKGEuYyxnLGYpfWEuYj1uZXcgVHNiO01xYyhhLGIpO2ZvcihkPTA7ZDxqLmMubGVuZ3RoLTE7ZCsrKXtpPVJEKFZtYihiLmQsZCksMTA1KTtmb3IoZT1kKzE7ZTxqLmMubGVuZ3RoO2UrKyl7UHFjKGEsaSxSRChWbWIoYi5kLGUpLDEwNSksYyl9fX1cbmZ1bmN0aW9uIFEyYyhhKXt2YXIgYixjLGQsZSxmO2U9bmV3IGJuYjtiPW5ldyBidGIoKCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKSk7Zm9yKGQ9bmV3IGlzKE1yKHpHZChhKS5hLktjKCksbmV3IGlyKSk7Z3MoZCk7KXtjPVJEKGhzKGQpLDc0KTtpZighWkQoUUhkKCghYy5iJiYoYy5iPW5ldyBZaWUoRTQsYyw0LDcpKSxjLmIpLDApLDE5Mykpe2Y9QUdkKFJEKFFIZCgoIWMuYyYmKGMuYz1uZXcgWWllKEU0LGMsNSw4KSksYy5jKSwwKSw4NCkpO2IuYS5fYihmKXx8KFpFYihlLmMsZiksdHJ1ZSl9fXJldHVybiBlfVxuZnVuY3Rpb24gTnFlKGEsYixjKXt2YXIgZCxlLGY7YS5lPWM7YS5kPTA7YS5iPTA7YS5mPTE7YS5pPWI7KGEuZSYxNik9PTE2JiYoYS5pPXVzZShhLmkpKTthLmo9YS5pLmxlbmd0aDtNcWUoYSk7Zj1RcWUoYSk7aWYoYS5kIT1hLmopdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxUSWUpKSkpO2lmKGEuZyl7Zm9yKGQ9MDtkPGEuZy5hLmMubGVuZ3RoO2QrKyl7ZT1SRChleWIoYS5nLGQpLDU5Mik7aWYoYS5mPD1lLmEpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxVSWUpKSkpfWEuZy5hLmMubGVuZ3RoPTB9cmV0dXJuIGZ9XG5mdW5jdGlvbiBCTmMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtjPXB4ZTtoPShyM2IoKSxwM2IpO2ZvcihlPW5ldyBBbmIoYi5hKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTApO2Y9ZC5rO2lmKGYhPXAzYil7Zz1VRChtUWIoZCwoWXdjKCksQ3djKSkpO2lmKGc9PW51bGwpe2M9JHduZC5NYXRoLm1heChjLDApO2Qubi5iPWMrYUZjKGEuYSxmLGgpfWVsc2V7ZC5uLmI9KHVGYihnKSxnKX19aT1hRmMoYS5hLGYsaCk7ZC5uLmI8YytpK2QuZC5kJiYoZC5uLmI9YytpK2QuZC5kKTtjPWQubi5iK2Quby5iK2QuZC5hO2g9Zn19XG5mdW5jdGlvbiB3M2MoYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGs7ISFhLmQmJmEuZC5HZyhlKTtmPVJEKGUuWGIoMCksMjcpO2lmKHUzYyhhLGMsZixmYWxzZSkpe3JldHVybiB0cnVlfWc9UkQoZS5YYihlLmdjKCktMSksMjcpO2lmKHUzYyhhLGQsZyx0cnVlKSl7cmV0dXJuIHRydWV9aWYocDNjKGEsZSkpe3JldHVybiB0cnVlfWZvcihrPWUuS2MoKTtrLk9iKCk7KXtqPVJEKGsuUGIoKSwyNyk7Zm9yKGk9Yi5LYygpO2kuT2IoKTspe2g9UkQoaS5QYigpLDI3KTtpZihvM2MoYSxqLGgpKXtyZXR1cm4gdHJ1ZX19fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIE92ZChhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG07bT1iLmMubGVuZ3RoO2w9KGo9YS5JaChjKSxSRChqPj0wP2EuTGgoaixmYWxzZSx0cnVlKTpRdmQoYSxjLGZhbHNlKSw2MSkpO246Zm9yKGY9bC5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDU4KTtmb3Ioaz0wO2s8bTsrK2spe2c9KHRGYihrLGIuYy5sZW5ndGgpLFJEKGIuY1trXSw3NikpO2k9Zy5tZCgpO2g9Zy5MaygpO2Q9ZS5OaChoLGZhbHNlKTtpZihpPT1udWxsP2QhPW51bGw6IXBiKGksZCkpe2NvbnRpbnVlIG59fXJldHVybiBlfXJldHVybiBudWxsfVxuZnVuY3Rpb24gbzZiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7Yi5VZygnQ29tbWVudCBwb3N0LXByb2Nlc3NpbmcnLDEpO2ZvcihmPW5ldyBBbmIoYS5iKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMzApO2Q9bmV3IGJuYjtmb3IoaD1uZXcgQW5iKGUuYSk7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDEwKTtpPVJEKG1RYihnLChZd2MoKSxYd2MpKSwxNSk7Yz1SRChtUWIoZyxWdmMpLDE1KTtpZighIWl8fCEhYyl7cDZiKGcsaSxjKTshIWkmJlRtYihkLGkpOyEhYyYmVG1iKGQsYyl9fVRtYihlLmEsZCl9Yi5WZygpfVxuZnVuY3Rpb24ga2FjKGEsYixjLGQpe3ZhciBlLGYsZyxoO2U9UkQoZTNiKGIsKHFwZCgpLHBwZCkpLktjKCkuUGIoKSwxMik7Zj1SRChlM2IoYixYb2QpLktjKCkuUGIoKSwxMik7Zm9yKGg9bmV3IEFuYihhLmopO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMik7d2hpbGUoZy5lLmMubGVuZ3RoIT0wKXtaMGIoUkQoVm1iKGcuZSwwKSwxOCksZSl9d2hpbGUoZy5nLmMubGVuZ3RoIT0wKXtZMGIoUkQoVm1iKGcuZywwKSwxOCksZil9fWN8fHBRYihiLChZd2MoKSx2d2MpLG51bGwpO2R8fHBRYihiLChZd2MoKSx3d2MpLG51bGwpfVxuZnVuY3Rpb24gSUdkKGEsYixjKXt2YXIgZCxlO2lmKCghYS5hJiYoYS5hPW5ldyBDNWQoRjQsYSw2LDYpKSxhLmEpLmk9PTApe3JldHVybiBFR2QoYSl9ZWxzZXtkPVJEKFFIZCgoIWEuYSYmKGEuYT1uZXcgQzVkKEY0LGEsNiw2KSksYS5hKSwwKSwxNjYpO2lmKGIpe3NMZCgoIWQuYSYmKGQuYT1uZXcgWFpkKEQ0LGQsNSkpLGQuYSkpO096ZChkLDApO1B6ZChkLDApO0h6ZChkLDApO0l6ZChkLDApfWlmKGMpe2U9KCFhLmEmJihhLmE9bmV3IEM1ZChGNCxhLDYsNikpLGEuYSk7d2hpbGUoZS5pPjEpe3ZMZChlLGUuaS0xKX19cmV0dXJuIGR9fVxuZnVuY3Rpb24gVmRjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7Yz1uZXcgd21iO2ZvcihmPW5ldyBBbmIoYS5iKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMzApO2k9dHJ1ZTtkPTA7Zm9yKGg9bmV3IEFuYihlLmEpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMCk7c3dpdGNoKGcuay5nKXtjYXNlIDQ6KytkO2Nhc2UgMTppbWIoYyxnKTticmVhaztjYXNlIDA6WGRjKGcsYik7ZGVmYXVsdDpjLmI9PWMuY3x8V2RjKGMsZCxpLGZhbHNlLGIpO2k9ZmFsc2U7ZD0wO319Yy5iPT1jLmN8fFdkYyhjLGQsaSx0cnVlLGIpfX1cbmZ1bmN0aW9uIGlNYyhhLGIpe3ZhciBjLGQsZSxmLGcsaDtjPTA7Zm9yKGg9bmV3IEFuYihiKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTIpOyRMYyhhLmIsYS5kW2cucF0pO2ZvcihlPW5ldyBsNGIoZy5iKTt4bmIoZS5hKXx8eG5iKGUuYik7KXtkPVJEKHhuYihlLmEpP3luYihlLmEpOnluYihlLmIpLDE4KTtmPUFNYyhhLGc9PWQuYz9kLmQ6ZC5jKTtpZihmPmEuZFtnLnBdKXtjKz1aTGMoYS5iLGYpO2htYihhLmEsc2diKGYpKX19d2hpbGUoIW5tYihhLmEpKXtYTGMoYS5iLFJEKHNtYihhLmEpLDE3KS5hKX19cmV0dXJuIGN9XG5mdW5jdGlvbiBVZWMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqO2EuYT1uZXcgZTZiO2o9MDtlPTA7Zm9yKGQ9bmV3IEFuYihhLmkuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGQpLDMwKTtiLnA9ZTtmb3IoaT1uZXcgQW5iKGIuYSk7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDEwKTtoLnA9ajsrK2p9KytlfWY9YS5yPT0oYUVjKCksVERjKTtnPWY/UWVjOlBlYztmb3IoYz1uZXcgQW5iKGEuaS5iKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMzApO19tYihiLmEsZyk7ZDZiKGEuYSxzZ2IoYi5wKSxiLmEpfX1cbmZ1bmN0aW9uIHplZChhLGIsYyl7dmFyIGQsZSxmLGc7Zj0oIWIuYSYmKGIuYT1uZXcgQzVkKEo0LGIsMTAsMTEpKSxiLmEpLmk7Zm9yKGU9bmV3IGRNZCgoIWIuYSYmKGIuYT1uZXcgQzVkKEo0LGIsMTAsMTEpKSxiLmEpKTtlLmUhPWUuaS5nYygpOyl7ZD1SRChiTWQoZSksMjcpOyghZC5hJiYoZC5hPW5ldyBDNWQoSjQsZCwxMCwxMSkpLGQuYSkuaT09MHx8KGYrPXplZChhLGQsZmFsc2UpKX1pZihjKXtnPXZDZChiKTt3aGlsZShnKXtmKz0oIWcuYSYmKGcuYT1uZXcgQzVkKEo0LGcsMTAsMTEpKSxnLmEpLmk7Zz12Q2QoZyl9fXJldHVybiBmfVxuZnVuY3Rpb24gdkxkKGEsYil7dmFyIGMsZCxlLGY7aWYoYS5QaigpKXtkPW51bGw7ZT1hLlFqKCk7YS5UaigpJiYoZD1hLlZqKGEuJGkoYiksbnVsbCkpO2M9YS5Jaig0LGY9VEhkKGEsYiksbnVsbCxiLGUpO2lmKGEuTWooKSYmZiE9bnVsbCl7ZD1hLk9qKGYsZCk7aWYoIWQpe2EuSmooYyl9ZWxzZXtkLm5qKGMpO2Qub2ooKX19ZWxzZXtpZighZCl7YS5KaihjKX1lbHNle2QubmooYyk7ZC5vaigpfX1yZXR1cm4gZn1lbHNle2Y9VEhkKGEsYik7aWYoYS5NaigpJiZmIT1udWxsKXtkPWEuT2ooZixudWxsKTshIWQmJmQub2ooKX1yZXR1cm4gZn19XG5mdW5jdGlvbiBMTmIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGs7aj1hLmE7Yj1uZXcgX3NiO2k9MDtmb3IoZD1uZXcgQW5iKGEuZCk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDIyNik7az0wO3R2YihjLmIsbmV3IE9OYik7Zm9yKGc9U3ViKGMuYiwwKTtnLmIhPWcuZC5jOyl7Zj1SRChldmIoZyksMjI2KTtpZihiLmEuX2IoZikpe2U9Yy5jO2g9Zi5jO2s8aC5kK2guYStqJiZrK2UuYStqPmguZCYmKGs9aC5kK2guYStqKX19Yy5jLmQ9aztiLmEuemMoYyxiKTtpPSR3bmQuTWF0aC5tYXgoaSxjLmMuZCtjLmMuYSl9cmV0dXJuIGl9XG5mdW5jdGlvbiBvdmMoKXtvdmM9Z2ViO2Z2Yz1uZXcgcHZjKCdDT01NRU5UUycsMCk7aHZjPW5ldyBwdmMoJ0VYVEVSTkFMX1BPUlRTJywxKTtpdmM9bmV3IHB2YygnSFlQRVJFREdFUycsMik7anZjPW5ldyBwdmMoJ0hZUEVSTk9ERVMnLDMpO2t2Yz1uZXcgcHZjKCdOT05fRlJFRV9QT1JUUycsNCk7bHZjPW5ldyBwdmMoJ05PUlRIX1NPVVRIX1BPUlRTJyw1KTtudmM9bmV3IHB2YyhGQmUsNik7ZXZjPW5ldyBwdmMoJ0NFTlRFUl9MQUJFTFMnLDcpO2d2Yz1uZXcgcHZjKCdFTkRfTEFCRUxTJyw4KTttdmM9bmV3IHB2YygnUEFSVElUSU9OUycsOSl9XG5mdW5jdGlvbiBQQShhLGIsYyxkLGUpe2lmKGQ8MCl7ZD1FQShhLGUsY0QoV0MocUosMSksTnZlLDIsNixbQ3dlLER3ZSxFd2UsRndlLEd3ZSxId2UsSXdlLEp3ZSxLd2UsTHdlLE13ZSxOd2VdKSxiKTtkPDAmJihkPUVBKGEsZSxjRChXQyhxSiwxKSxOdmUsMiw2LFsnSmFuJywnRmViJywnTWFyJywnQXByJyxHd2UsJ0p1bicsJ0p1bCcsJ0F1ZycsJ1NlcCcsJ09jdCcsJ05vdicsJ0RlYyddKSxiKSk7aWYoZDwwKXtyZXR1cm4gZmFsc2V9Yy5rPWQ7cmV0dXJuIHRydWV9ZWxzZSBpZihkPjApe2Muaz1kLTE7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gUkEoYSxiLGMsZCxlKXtpZihkPDApe2Q9RUEoYSxlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0N3ZSxEd2UsRXdlLEZ3ZSxHd2UsSHdlLEl3ZSxKd2UsS3dlLEx3ZSxNd2UsTndlXSksYik7ZDwwJiYoZD1FQShhLGUsY0QoV0MocUosMSksTnZlLDIsNixbJ0phbicsJ0ZlYicsJ01hcicsJ0FwcicsR3dlLCdKdW4nLCdKdWwnLCdBdWcnLCdTZXAnLCdPY3QnLCdOb3YnLCdEZWMnXSksYikpO2lmKGQ8MCl7cmV0dXJuIGZhbHNlfWMuaz1kO3JldHVybiB0cnVlfWVsc2UgaWYoZD4wKXtjLms9ZC0xO3JldHVybiB0cnVlfXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIFRBKGEsYixjLGQsZSxmKXt2YXIgZyxoLGksajtoPTMyO2lmKGQ8MCl7aWYoYlswXT49YS5sZW5ndGgpe3JldHVybiBmYWxzZX1oPWloYihhLGJbMF0pO2lmKGghPTQzJiZoIT00NSl7cmV0dXJuIGZhbHNlfSsrYlswXTtkPUhBKGEsYik7aWYoZDwwKXtyZXR1cm4gZmFsc2V9aD09NDUmJihkPS1kKX1pZihoPT0zMiYmYlswXS1jPT0yJiZlLmI9PTIpe2k9bmV3IHVCO2o9aS5xLmdldEZ1bGxZZWFyKCktT3dlK093ZS04MDtnPWolMTAwO2YuYT1kPT1nO2QrPShqLzEwMHwwKSoxMDArKGQ8Zz8xMDA6MCl9Zi5wPWQ7cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBWNGIoYSxiKXt2YXIgYyxkLGUsZixnO2lmKCF2Q2QoYSkpe3JldHVybn1nPVJEKG1RYihiLCh5Q2MoKSxsQmMpKSwxODEpO2RFKEd4ZChhLEJCYykpPT09ZEUoKEJvZCgpLEFvZCkpJiZJeGQoYSxCQmMsem9kKTtkPShsdWQoKSxuZXcgenVkKHZDZChhKSkpO2Y9bmV3IEZ1ZCghdkNkKGEpP251bGw6bmV3IHp1ZCh2Q2QoYSkpLGEpO2U9R0piKGQsZixmYWxzZSx0cnVlKTt6c2IoZywoUXBkKCksTXBkKSk7Yz1SRChtUWIoYixuQmMpLDgpO2MuYT0kd25kLk1hdGgubWF4KGUuYSxjLmEpO2MuYj0kd25kLk1hdGgubWF4KGUuYixjLmIpfVxuZnVuY3Rpb24gY2VjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7Zm9yKGc9UkQobVFiKGEsKFl3YygpLGx3YykpLDE1KS5LYygpO2cuT2IoKTspe2Y9UkQoZy5QYigpLDEwKTtzd2l0Y2goUkQobVFiKGYsKHlDYygpLFVBYykpLDE3MSkuZyl7Y2FzZSAyOmczYihmLGIpO2JyZWFrO2Nhc2UgNDpnM2IoZixjKTt9Zm9yKGU9bmV3IGlzKE1yKFcyYihmKS5hLktjKCksbmV3IGlyKSk7Z3MoZSk7KXtkPVJEKGhzKGUpLDE4KTtpZighIWQuYyYmISFkLmQpe2NvbnRpbnVlfWg9IWQuZDtpPVJEKG1RYihkLEV3YyksMTIpO2g/WjBiKGQsaSk6WTBiKGQsaSl9fX1cbmZ1bmN0aW9uIGVwYygpe2VwYz1nZWI7Wm9jPW5ldyBmcGMoX3llLDAsKHFwZCgpLFlvZCksWW9kKTthcGM9bmV3IGZwYyhiemUsMSxucGQsbnBkKTtZb2M9bmV3IGZwYyhhemUsMixYb2QsWG9kKTtkcGM9bmV3IGZwYyhjemUsMyxwcGQscHBkKTtfb2M9bmV3IGZwYygnTk9SVEhfV0VTVF9DT1JORVInLDQscHBkLFlvZCk7JG9jPW5ldyBmcGMoJ05PUlRIX0VBU1RfQ09STkVSJyw1LFlvZCxYb2QpO2NwYz1uZXcgZnBjKCdTT1VUSF9XRVNUX0NPUk5FUicsNixucGQscHBkKTticGM9bmV3IGZwYygnU09VVEhfRUFTVF9DT1JORVInLDcsWG9kLG5wZCl9XG5mdW5jdGlvbiBQMmMoYSl7dmFyIGIsYyxkLGUsZixnO2Y9bmV3IF9zYjtiPW5ldyBidGIoKCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKSk7Zm9yKGU9bmV3IGlzKE1yKHpHZChhKS5hLktjKCksbmV3IGlyKSk7Z3MoZSk7KXtkPVJEKGhzKGUpLDc0KTtpZighWkQoUUhkKCghZC5iJiYoZC5iPW5ldyBZaWUoRTQsZCw0LDcpKSxkLmIpLDApLDE5Mykpe2c9QUdkKFJEKFFIZCgoIWQuYyYmKGQuYz1uZXcgWWllKEU0LGQsNSw4KSksZC5jKSwwKSw4NCkpO2IuYS5fYihnKXx8KGM9Zi5hLnpjKGcsZiksYz09bnVsbCl9fXJldHVybiBmfVxuZnVuY3Rpb24gdGlkKCl7dGlkPWdlYjtzaWQ9Y0QoV0MobEUsMSkscnhlLDI4LDE0LFsxLDEsMiw2LDI0LDEyMCw3MjAsNTA0MCw0MDMyMCwzNjI4ODAsMzYyODgwMCwzOTkxNjgwMCw0NzkwMDE2MDAsNjIyNzAyMDgwMCw4NzE3ODI5MTIwMCwxMzA3Njc0MzY4MDAwLHtsOjM1MDYxNzYsbTo3OTQwNzcsaDoxfSx7bDo4ODQ3MzYsbTo5MTY0MTEsaDoyMH0se2w6MzM0MjMzNixtOjM5MTI0ODksaDozNjN9LHtsOjU4OTgyNCxtOjMwMzQxMzgsaDo2OTE0fSx7bDozNDA3ODcyLG06MTk2MjUwNixoOjEzODI5NH1dKTskd25kLk1hdGgucG93KDIsLTY1KX1cbmZ1bmN0aW9uIExqYigpe0xqYj1nZWI7dmFyIGEsYjtKamI9JEModUosTnZlLDkyLDMyLDAsMSk7S2piPSRDKHVKLE52ZSw5MiwzMiwwLDEpO2E9MTtmb3IoYj0wO2I8PTE4O2IrKyl7SmpiW2JdPShQaWIoKSxEZGIoYSwwKT49MD9qamIoYSk6WGliKGpqYihPZGIoYSkpKSk7S2piW2JdPUpkYihTZGIoYSxiKSwwKT9qamIoU2RiKGEsYikpOlhpYihqamIoT2RiKFNkYihhLGIpKSkpO2E9TmRiKGEsNSl9Zm9yKDtiPEtqYi5sZW5ndGg7YisrKXtKamJbYl09V2liKEpqYltiLTFdLEpqYlsxXSk7S2piW2JdPVdpYihLamJbYi0xXSwoUGliKCksTWliKSl9fVxuZnVuY3Rpb24gdGdjKGEsYil7dmFyIGMsZCxlLGYsZztpZihhLmMubGVuZ3RoPT0wKXtyZXR1cm4gbmV3IFB0ZChzZ2IoMCksc2diKDApKX1jPSh0RmIoMCxhLmMubGVuZ3RoKSxSRChhLmNbMF0sMTIpKS5qO2c9MDtmPWIuZztkPWIuZysxO3doaWxlKGc8YS5jLmxlbmd0aC0xJiZjLmc8Zil7KytnO2M9KHRGYihnLGEuYy5sZW5ndGgpLFJEKGEuY1tnXSwxMikpLmp9ZT1nO3doaWxlKGU8YS5jLmxlbmd0aC0xJiZjLmc8ZCl7KytlO2M9KHRGYihnLGEuYy5sZW5ndGgpLFJEKGEuY1tnXSwxMikpLmp9cmV0dXJuIG5ldyBQdGQoc2diKGcpLHNnYihlKSl9XG5mdW5jdGlvbiBOSmMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGs7aT1iM2IoYixjKTsoYz09KHFwZCgpLG5wZCl8fGM9PXBwZCkmJihpPWh2KGkpKTtnPWZhbHNlO2Rve2U9ZmFsc2U7Zm9yKGY9MDtmPGkuZ2MoKS0xO2YrKyl7aj1SRChpLlhiKGYpLDEyKTtoPVJEKGkuWGIoZisxKSwxMik7aWYoT0pjKGEsaixoLGQpKXtnPXRydWU7Q01jKGEuYSxSRChpLlhiKGYpLDEyKSxSRChpLlhiKGYrMSksMTIpKTtrPVJEKGkuWGIoZisxKSwxMik7aS5oZChmKzEsUkQoaS5YYihmKSwxMikpO2kuaGQoZixrKTtlPXRydWV9fX13aGlsZShlKTtyZXR1cm4gZ31cbmZ1bmN0aW9uIGxaYyhhLGIsYyl7dmFyIGQsZSxmLGc7Yy5VZyhNRWUsMSk7ZT1SRCh6RGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGIuYiwxNikpLG5ldyBwWmMpLHRCYihuZXcgWkJiLG5ldyBYQmIsbmV3IHdDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsWyh4QmIoKSx2QmIpXSkpKSwxNSk7bVpjKGEsZSwwKTtmb3IoZz1TdWIoYi5iLDApO2cuYiE9Zy5kLmM7KXtmPVJEKGV2YihnKSw0MCk7ZD1XamIoYS5hLHNnYihmLmcpKSE9bnVsbD9SRChXamIoYS5hLHNnYihmLmcpKSwxNykuYTowO3BRYihmLChoX2MoKSxmX2MpLHNnYihkKSl9Yy5WZygpfVxuZnVuY3Rpb24gbzNjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrO2g9Yi5pLWEuZy8yO2k9Yy5pLWEuZy8yO2o9Yi5qLWEuZy8yO2s9Yy5qLWEuZy8yO2Y9Yi5nK2EuZztnPWMuZythLmc7ZD1iLmYrYS5nO2U9Yy5mK2EuZztpZihoPGkrZyYmaTxoJiZqPGsrZSYmazxqKXtyZXR1cm4gdHJ1ZX1lbHNlIGlmKGk8aCtmJiZoPGkmJms8aitkJiZqPGspe3JldHVybiB0cnVlfWVsc2UgaWYoaDxpK2cmJmk8aCYmajxrJiZrPGorZCl7cmV0dXJuIHRydWV9ZWxzZSBpZihpPGgrZiYmaDxpJiZqPGsrZSYmazxqKXtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBnZGMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtO2Y9Yi5jLmxlbmd0aDtnPSh0RmIoYyxiLmMubGVuZ3RoKSxSRChiLmNbY10sMjkzKSk7aD1nLmEuby5hO2w9Zy5jO209MDtmb3Ioaj1nLmM7ajw9Zy5mO2orKyl7aWYoaDw9YS5hW2pdKXtyZXR1cm4gan1rPWEuYVtqXTtpPW51bGw7Zm9yKGU9YysxO2U8ZjtlKyspe2Q9KHRGYihlLGIuYy5sZW5ndGgpLFJEKGIuY1tlXSwyOTMpKTtkLmM8PWomJmQuZj49aiYmKGk9ZCl9ISFpJiYoaz0kd25kLk1hdGgubWF4KGssaS5hLm8uYSkpO2lmKGs+bSl7bD1qO209a319cmV0dXJuIGx9XG5mdW5jdGlvbiBTTmIoYSl7dmFyIGIsYyxkLGUsZixnLGg7Zj1uZXcgeUFiKFJEKFFiKG5ldyBlT2IpLDUwKSk7aD1weGU7Zm9yKGM9bmV3IEFuYihhLmQpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwyMjYpO2g9Yi5jLmM7d2hpbGUoZi5hLmdjKCkhPTApe2c9UkQoZi5hLlRjKCksMjI2KTtpZihnLmMuYytnLmMuYjxoKXtmLmEuQmMoZykhPW51bGx9ZWxzZXticmVha319Zm9yKGU9Zi5hLmVjKCkuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSwyMjYpO011YihkLmIsYik7TXViKGIuYixkKX1mLmEuemMoYiwoR2ViKCksRWViKSk9PW51bGx9fVxuZnVuY3Rpb24gc1pjKGEsYixjKXt2YXIgZCxlLGYsZyxoO2lmKCFncihiKSl7aD1jLmVoKChaRChiLDE2KT9SRChiLDE2KS5nYygpOktyKGIuS2MoKSkpL2EuYXwwKTtoLlVnKE9FZSwxKTtnPW5ldyB2WmM7Zj1udWxsO2ZvcihlPWIuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSw0MCk7Zz1BbChjRChXQyhjSiwxKSxydmUsMjAsMCxbZyxuZXcgZFhjKGQpXSkpO2lmKGYpe3BRYihmLChxJGMoKSxsJGMpLGQpO3BRYihkLGIkYyxmKTtpZihfV2MoZCk9PV9XYyhmKSl7cFFiKGYsbSRjLGQpO3BRYihkLGMkYyxmKX19Zj1kfWguVmcoKTtzWmMoYSxnLGMpfX1cbmZ1bmN0aW9uIHoxZChhLGIpe3ZhciBjLGQsZTtpZihiPT1udWxsKXtmb3IoZD0oIWEuYSYmKGEuYT1uZXcgQzVkKGw3LGEsOSw1KSksbmV3IGRNZChhLmEpKTtkLmUhPWQuaS5nYygpOyl7Yz1SRChiTWQoZCksNjk0KTtlPWMuYztpZigoZT09bnVsbD9jLnpiOmUpPT1udWxsKXtyZXR1cm4gY319fWVsc2V7Zm9yKGQ9KCFhLmEmJihhLmE9bmV3IEM1ZChsNyxhLDksNSkpLG5ldyBkTWQoYS5hKSk7ZC5lIT1kLmkuZ2MoKTspe2M9UkQoYk1kKGQpLDY5NCk7aWYobGhiKGIsKGU9Yy5jLGU9PW51bGw/Yy56YjplKSkpe3JldHVybiBjfX19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBCTGIoYSxiKXt2YXIgYztjPW51bGw7c3dpdGNoKGIuZyl7Y2FzZSAxOmEuZS5wZigodW1kKCksQ2xkKSkmJihjPVJEKGEuZS5vZihDbGQpLDI1NikpO2JyZWFrO2Nhc2UgMzphLmUucGYoKHVtZCgpLERsZCkpJiYoYz1SRChhLmUub2YoRGxkKSwyNTYpKTticmVhaztjYXNlIDI6YS5lLnBmKCh1bWQoKSxCbGQpKSYmKGM9UkQoYS5lLm9mKEJsZCksMjU2KSk7YnJlYWs7Y2FzZSA0OmEuZS5wZigodW1kKCksRWxkKSkmJihjPVJEKGEuZS5vZihFbGQpLDI1NikpO30hYyYmKGM9UkQoYS5lLm9mKCh1bWQoKSx6bGQpKSwyNTYpKTtyZXR1cm4gY31cbmZ1bmN0aW9uICQ1YyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2U9YztmPTA7Zm9yKGg9bmV3IEFuYihiKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMjcpO0l4ZChnLCgkNGMoKSxQNGMpLHNnYihlKyspKTtpPVEyYyhnKTtkPSR3bmQuTWF0aC5hdGFuMihnLmorZy5mLzIsZy5pK2cuZy8yKTtkKz1kPDA/ZEZlOjA7ZDwwLjc4NTM5ODE2MzM5NzQ0ODN8fGQ+RkZlP19tYihpLGEuYik6ZDw9RkZlJiZkPkdGZT9fbWIoaSxhLmQpOmQ8PUdGZSYmZD5IRmU/X21iKGksYS5jKTpkPD1IRmUmJl9tYihpLGEuYSk7Zj0kNWMoYSxpLGYpfXJldHVybiBlfVxuZnVuY3Rpb24gc1RjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksajtlPShkLmMrZC5hKS8yO1h1YihiLmopO011YihiLmosZSk7WHViKGMuZSk7TXViKGMuZSxlKTtqPW5ldyBBVGM7Zm9yKGg9bmV3IEFuYihhLmYpO2guYTxoLmMuYy5sZW5ndGg7KXtmPVJEKHluYihoKSwxMzIpO2k9Zi5hO3VUYyhqLGIsaSk7dVRjKGosYyxpKX1mb3IoZz1uZXcgQW5iKGEuayk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEzMik7aT1mLmI7dVRjKGosYixpKTt1VGMoaixjLGkpfWouYis9MjtqLmErPW5UYyhiLGEucSk7ai5hKz1uVGMoYS5xLGMpO3JldHVybiBqfVxuZnVuY3Rpb24gVV9jKGEsYixjKXt2YXIgZDtjLlVnKCdQcm9jZXNzb3IgYXJyYW5nZSBub2RlJywxKTtIZWIoVEQobVFiKGIsKGhfYygpLEckYykpKSk7ZD1SRChMdmIoRERiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihiLmIsMTYpKSxuZXcgYzBjKSkpLDQwKTthLmE9UkQobVFiKGIsZ19jKSwzNTMpO2EuYT09KHNfYygpLHFfYyl8fGEuYT09cF9jP1RfYyhhLG5ldyBtb2IoY0QoV0MoWiQsMSksTkVlLDQwLDAsW2RdKSksYy5laCgxKSk6YS5hPT1vX2MmJlNfYyhhLG5ldyBtb2IoY0QoV0MoWiQsMSksTkVlLDQwLDAsW2RdKSksYy5laCgxKSk7Yy5WZygpfVxuZnVuY3Rpb24gWDdjKCl7WDdjPWdlYjt4N2M9bmV3IG1HZCgodW1kKCksRGtkKSwxLjMpO0c3Yz1uZXcgbUdkKG1sZCwoR2ViKCksZmFsc2UpKTtPN2M9bmV3IEEzYigxNSk7TjdjPW5ldyBtR2QodGxkLE83Yyk7UTdjPW5ldyBtR2QoZm1kLDE1KTt5N2M9S2tkO0Y3Yz1rbGQ7SDdjPW5sZDtJN2M9cGxkO0U3Yz1pbGQ7SjdjPXNsZDtQN2M9TGxkO1U3Yz0odTdjKCkscDdjKTtUN2M9bzdjO1c3Yz10N2M7VjdjPXI3YztNN2M9azdjO0w3Yz1qN2M7SzdjPWk3YztTN2M9bjdjO0I3Yz1hbGQ7QzdjPWJsZDtBN2M9ZzdjO3o3Yz1mN2M7RDdjPWg3YztSN2M9bTdjfVxuZnVuY3Rpb24gTUtiKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2M9YS5pO2I9YS5uO2g9Yy5kO2EuZj09KHZMYigpLHRMYik/KGgrPShjLmEtYS5lLmIpLzIpOmEuZj09c0xiJiYoaCs9Yy5hLWEuZS5iKTtmb3IoZT1uZXcgQW5iKGEuZCk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDE4Nyk7Zz1kLk1mKCk7Zj1uZXcgcGpkO2YuYj1oO2grPWcuYithLmE7c3dpdGNoKGEuYi5nKXtjYXNlIDA6Zi5hPWMuYytiLmI7YnJlYWs7Y2FzZSAxOmYuYT1jLmMrYi5iKyhjLmItZy5hKS8yO2JyZWFrO2Nhc2UgMjpmLmE9Yy5jK2MuYi1iLmMtZy5hO31kLk9mKGYpfX1cbmZ1bmN0aW9uIE9LYihhKXt2YXIgYixjLGQsZSxmLGcsaDtjPWEuaTtiPWEubjtoPWMuYzthLmI9PShFS2IoKSxCS2IpPyhoKz0oYy5iLWEuZS5hKS8yKTphLmI9PURLYiYmKGgrPWMuYi1hLmUuYSk7Zm9yKGU9bmV3IEFuYihhLmQpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxODcpO2c9ZC5NZigpO2Y9bmV3IHBqZDtmLmE9aDtoKz1nLmErYS5hO3N3aXRjaChhLmYuZyl7Y2FzZSAwOmYuYj1jLmQrYi5kO2JyZWFrO2Nhc2UgMTpmLmI9Yy5kK2IuZCsoYy5hLWcuYikvMjticmVhaztjYXNlIDI6Zi5iPWMuZCtjLmEtYi5hLWcuYjt9ZC5PZihmKX19XG5mdW5jdGlvbiBVN2IoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbztrPWMuYS5jO2c9Yy5hLmMrYy5hLmI7Zj1SRChXamIoYy5jLGIpLDQ2OCk7bj1mLmY7bz1mLmE7aT1uZXcgcmpkKGssbik7bD1uZXcgcmpkKGcsbyk7ZT1rO2MucHx8KGUrPWEuYyk7ZSs9Yy5GK2MudiphLmI7aj1uZXcgcmpkKGUsbik7bT1uZXcgcmpkKGUsbyk7empkKGIuYSxjRChXQyhsMywxKSxOdmUsOCwwLFtpLGpdKSk7aD1jLmQuYS5nYygpPjE7aWYoaCl7ZD1uZXcgcmpkKGUsYy5iKTtNdWIoYi5hLGQpfXpqZChiLmEsY0QoV0MobDMsMSksTnZlLDgsMCxbbSxsXSkpfVxuZnVuY3Rpb24gVEdjKGEsYixjKXt2YXIgZCxlO2lmKGI8YS5kLmIuYy5sZW5ndGgpe2EuYj1SRChWbWIoYS5kLmIsYiksMzApO2EuYT1SRChWbWIoYS5kLmIsYi0xKSwzMCk7YS5jPWJ9ZWxzZXthLmE9bmV3IFI0YihhLmQpO2EuYS5wPWItMTtSbWIoYS5kLmIsYS5hKTthLmI9bmV3IFI0YihhLmQpO2EuYi5wPWI7Um1iKGEuZC5iLGEuYik7YS5jPWJ9ZzNiKGMsYS5iKTtmb3IoZT1uZXcgaXMoTXIoWjJiKGMpLmEuS2MoKSxuZXcgaXIpKTtncyhlKTspe2Q9UkQoaHMoZSksMTgpOyFkLmMuaS5jJiZkLmMuaS5rPT0ocjNiKCksbjNiKSYmZzNiKGQuYy5pLGEuYSl9fVxuZnVuY3Rpb24gR3BkKGEpe0NnZChhLG5ldyBQZmQoJGZkKFhmZChaZmQoWWZkKG5ldyBhZ2QscUhlKSwnRUxLIFJhbmRvbWl6ZXInKSwnRGlzdHJpYnV0ZXMgdGhlIG5vZGVzIHJhbmRvbWx5IG9uIHRoZSBwbGFuZSwgbGVhZGluZyB0byB2ZXJ5IG9iZnVzY2F0aW5nIGxheW91dHMuIENhbiBiZSB1c2VmdWwgdG8gZGVtb25zdHJhdGUgdGhlIHBvd2VyIG9mIFwicmVhbFwiIGxheW91dCBhbGdvcml0aG1zLicpLG5ldyBKcGQpKSk7QWdkKGEscUhlLEV6ZSxDcGQpO0FnZChhLHFIZSxfemUsMTUpO0FnZChhLHFIZSxiQWUsc2diKDApKTtBZ2QoYSxxSGUsRHplLFl6ZSl9XG5mdW5jdGlvbiBHcWUoKXtHcWU9Z2ViO3ZhciBhLGIsYyxkLGUsZjtFcWU9JEMoZ0UsWUhlLDI4LDI1NSwxNSwxKTtGcWU9JEMoaEUsendlLDI4LDE2LDE1LDEpO2ZvcihiPTA7YjwyNTU7YisrKXtFcWVbYl09LTF9Zm9yKGM9NTc7Yz49NDg7Yy0tKXtFcWVbY109Yy00ODw8MjQ+PjI0fWZvcihkPTcwO2Q+PTY1O2QtLSl7RXFlW2RdPWQtNjUrMTA8PDI0Pj4yNH1mb3IoZT0xMDI7ZT49OTc7ZS0tKXtFcWVbZV09ZS05NysxMDw8MjQ+PjI0fWZvcihmPTA7ZjwxMDtmKyspRnFlW2ZdPTQ4K2YmQndlO2ZvcihhPTEwO2E8PTE1O2ErKylGcWVbYV09NjUrYS0xMCZCd2V9XG5mdW5jdGlvbiB5WWMoYSxiKXtiLlVnKCdQcm9jZXNzIGdyYXBoIGJvdW5kcycsMSk7cFFiKGEsKHEkYygpLFpaYyksVXZiKFRDYihIRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5iLDE2KSksbmV3IERZYykpKSk7cFFiKGEsX1pjLFV2YihUQ2IoSERiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuYiwxNikpLG5ldyBGWWMpKSkpO3BRYihhLFlaYyxVdmIoU0NiKEhEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmIsMTYpKSxuZXcgSFljKSkpKTtwUWIoYSwkWmMsVXZiKFNDYihIRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5iLDE2KSksbmV3IEpZYykpKSk7Yi5WZygpfVxuZnVuY3Rpb24gUFdiKGEpe3ZhciBiLGMsZCxlLGY7ZT1SRChtUWIoYSwoeUNjKCksbEJjKSksMjEpO2Y9UkQobVFiKGEsb0JjKSwyMSk7Yz1uZXcgcmpkKGEuZi5hK2EuZC5iK2EuZC5jLGEuZi5iK2EuZC5kK2EuZC5hKTtiPW5ldyBzamQoYyk7aWYoZS5IYygoUXBkKCksTXBkKSkpe2Q9UkQobVFiKGEsbkJjKSw4KTtpZihmLkhjKChkcWQoKSxZcGQpKSl7ZC5hPD0wJiYoZC5hPTIwKTtkLmI8PTAmJihkLmI9MjApfWIuYT0kd25kLk1hdGgubWF4KGMuYSxkLmEpO2IuYj0kd25kLk1hdGgubWF4KGMuYixkLmIpfUhlYihURChtUWIoYSxtQmMpKSl8fFFXYihhLGMsYil9XG5mdW5jdGlvbiBsT2MoYSxiKXt2YXIgYyxkLGUsZjtmb3IoZj1iM2IoYiwocXBkKCksbnBkKSkuS2MoKTtmLk9iKCk7KXtkPVJEKGYuUGIoKSwxMik7Yz1SRChtUWIoZCwoWXdjKCksSXdjKSksMTApOyEhYyYmckliKHVJYih0SWIodkliKHNJYihuZXcgd0liLDApLDAuMSksYS5pW2IucF0uZCksYS5pW2MucF0uYSkpfWZvcihlPWIzYihiLFlvZCkuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSwxMik7Yz1SRChtUWIoZCwoWXdjKCksSXdjKSksMTApOyEhYyYmckliKHVJYih0SWIodkliKHNJYihuZXcgd0liLDApLDAuMSksYS5pW2MucF0uZCksYS5pW2IucF0uYSkpfX1cbmZ1bmN0aW9uIG9ZZChhKXt2YXIgYixjLGQsZSxmLGc7aWYoIWEuYyl7Zz1uZXcgVyRkO2I9aVlkO2Y9Yi5hLnpjKGEsYik7aWYoZj09bnVsbCl7Zm9yKGQ9bmV3IGRNZCh0WWQoYSkpO2QuZSE9ZC5pLmdjKCk7KXtjPVJEKGJNZChkKSw4OSk7ZT1pMmQoYyk7WkQoZSw5MCkmJllHZChnLG9ZZChSRChlLDI5KSkpO1dHZChnLGMpfWIuYS5CYyhhKSE9bnVsbDtiLmEuZ2MoKT09MCYmdW5kZWZpbmVkfVQkZChnKTtWSGQoZyk7YS5jPW5ldyBOJGQoKFJEKFFIZCh4WWQoKGxUZCgpLGtUZCkubyksMTUpLDE5KSxnLmkpLGcuZyk7eVlkKGEpLmImPS0zM31yZXR1cm4gYS5jfVxuZnVuY3Rpb24gRHJlKGEpe3ZhciBiO2lmKGEuYyE9MTApdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxWSWUpKSkpO2I9YS5hO3N3aXRjaChiKXtjYXNlIDExMDpiPTEwO2JyZWFrO2Nhc2UgMTE0OmI9MTM7YnJlYWs7Y2FzZSAxMTY6Yj05O2JyZWFrO2Nhc2UgOTI6Y2FzZSAxMjQ6Y2FzZSA0NjpjYXNlIDk0OmNhc2UgNDU6Y2FzZSA2MzpjYXNlIDQyOmNhc2UgNDM6Y2FzZSAxMjM6Y2FzZSAxMjU6Y2FzZSA0MDpjYXNlIDQxOmNhc2UgOTE6Y2FzZSA5MzpicmVhaztkZWZhdWx0OnRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCkseEplKSkpKTt9cmV0dXJuIGJ9XG5mdW5jdGlvbiBHRChhKXt2YXIgYixjLGQsZSxmO2lmKGEubD09MCYmYS5tPT0wJiZhLmg9PTApe3JldHVybiAnMCd9aWYoYS5oPT1meGUmJmEubT09MCYmYS5sPT0wKXtyZXR1cm4gJy05MjIzMzcyMDM2ODU0Nzc1ODA4J31pZihhLmg+PjE5IT0wKXtyZXR1cm4gJy0nK0dEKHhEKGEpKX1jPWE7ZD0nJzt3aGlsZSghKGMubD09MCYmYy5tPT0wJiZjLmg9PTApKXtlPWZEKGl4ZSk7Yz1pRChjLGUsdHJ1ZSk7Yj0nJytGRChlRCk7aWYoIShjLmw9PTAmJmMubT09MCYmYy5oPT0wKSl7Zj05LWIubGVuZ3RoO2Zvcig7Zj4wO2YtLSl7Yj0nMCcrYn19ZD1iK2R9cmV0dXJuIGR9XG5mdW5jdGlvbiB0a2MoYSl7dmFyIGIsYyxkLGUsZixnLGg7Yj1mYWxzZTtjPTA7Zm9yKGU9bmV3IEFuYihhLmQuYik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDMwKTtkLnA9YysrO2ZvcihnPW5ldyBBbmIoZC5hKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMTApOyFiJiYhZ3IoVzJiKGYpKSYmKGI9dHJ1ZSl9fWg9eXNiKChDbWQoKSxBbWQpLGNEKFdDKHMzLDEpLGp3ZSw4OCwwLFt5bWQsem1kXSkpO2lmKCFiKXt6c2IoaCxCbWQpO3pzYihoLHhtZCl9YS5hPW5ldyBkR2IoaCk7YWtiKGEuZik7YWtiKGEuYik7YWtiKGEuZSk7YWtiKGEuZyl9XG5mdW5jdGlvbiBGdGIoKXtpZighT2JqZWN0LmNyZWF0ZXx8IU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKXtyZXR1cm4gZmFsc2V9dmFyIGE9J19fcHJvdG9fXyc7dmFyIGI9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihiW2FdIT09dW5kZWZpbmVkKXtyZXR1cm4gZmFsc2V9dmFyIGM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYik7aWYoYy5sZW5ndGghPTApe3JldHVybiBmYWxzZX1iW2FdPTQyO2lmKGJbYV0hPT00Mil7cmV0dXJuIGZhbHNlfWlmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGIpLmxlbmd0aD09MCl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfVxuZnVuY3Rpb24gY19iKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGw7ZD1jLmM7ZT1jLmQ7aD1LM2IoYi5jKTtpPUszYihiLmQpO2lmKGQ9PWIuYyl7aD1kX2IoYSxoLGUpO2k9ZV9iKGIuZCl9ZWxzZXtoPWVfYihiLmMpO2k9ZF9iKGEsaSxlKX1qPW5ldyBGamQoYi5hKTtQdWIoaixoLGouYSxqLmEuYSk7UHViKGosaSxqLmMuYixqLmMpO2c9Yi5jPT1kO2w9bmV3IEVfYjtmb3IoZj0wO2Y8ai5iLTE7KytmKXtrPW5ldyBQdGQoUkQoanUoaixmKSw4KSxSRChqdShqLGYrMSksOCkpO2cmJmY9PTB8fCFnJiZmPT1qLmItMj8obC5iPWspOlJtYihsLmEsayl9cmV0dXJuIGx9XG5mdW5jdGlvbiBXMWIoYSxiKXt2YXIgYyxkLGUsZjtmPWEuai5nLWIuai5nO2lmKGYhPTApe3JldHVybiBmfWM9UkQobVFiKGEsKHlDYygpLENCYykpLDE3KTtkPVJEKG1RYihiLENCYyksMTcpO2lmKCEhYyYmISFkKXtlPWMuYS1kLmE7aWYoZSE9MCl7cmV0dXJuIGV9fXN3aXRjaChhLmouZyl7Y2FzZSAxOnJldHVybiBRZmIoYS5uLmEsYi5uLmEpO2Nhc2UgMjpyZXR1cm4gUWZiKGEubi5iLGIubi5iKTtjYXNlIDM6cmV0dXJuIFFmYihiLm4uYSxhLm4uYSk7Y2FzZSA0OnJldHVybiBRZmIoYi5uLmIsYS5uLmIpO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBkZ2IoVUFlKSk7fX1cbmZ1bmN0aW9uIFg5YihhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2lmKEtyKChVOWIoKSxuZXcgaXMoTXIoVzJiKGIpLmEuS2MoKSxuZXcgaXIpKSkpPj1hLmEpe3JldHVybiAtMX1pZighVzliKGIsYykpe3JldHVybiAtMX1pZihncihSRChkLktiKGIpLDIwKSkpe3JldHVybiAxfWU9MDtmb3IoZz1SRChkLktiKGIpLDIwKS5LYygpO2cuT2IoKTspe2Y9UkQoZy5QYigpLDE4KTtpPWYuYy5pPT1iP2YuZC5pOmYuYy5pO2g9WDliKGEsaSxjLGQpO2lmKGg9PS0xKXtyZXR1cm4gLTF9ZT0kd25kLk1hdGgubWF4KGUsaCk7aWYoZT5hLmMtMSl7cmV0dXJuIC0xfX1yZXR1cm4gZSsxfVxuZnVuY3Rpb24gX0dkKGEsYil7dmFyIGMsZCxlLGYsZyxoO2lmKGRFKGIpPT09ZEUoYSkpe3JldHVybiB0cnVlfWlmKCFaRChiLDE1KSl7cmV0dXJuIGZhbHNlfWQ9UkQoYiwxNSk7aD1hLmdjKCk7aWYoZC5nYygpIT1oKXtyZXR1cm4gZmFsc2V9Zz1kLktjKCk7aWYoYS5ZaSgpKXtmb3IoYz0wO2M8aDsrK2Mpe2U9YS5WaShjKTtmPWcuUGIoKTtpZihlPT1udWxsP2YhPW51bGw6IXBiKGUsZikpe3JldHVybiBmYWxzZX19fWVsc2V7Zm9yKGM9MDtjPGg7KytjKXtlPWEuVmkoYyk7Zj1nLlBiKCk7aWYoZEUoZSkhPT1kRShmKSl7cmV0dXJuIGZhbHNlfX19cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBSTmQoYSxiKXt2YXIgYyxkLGUsZixnLGg7aWYoYS5mPjApe2EuX2ooKTtpZihiIT1udWxsKXtmb3IoZj0wO2Y8YS5kLmxlbmd0aDsrK2Ype2M9YS5kW2ZdO2lmKGMpe2Q9UkQoYy5nLDM3OSk7aD1jLmk7Zm9yKGc9MDtnPGg7KytnKXtlPWRbZ107aWYocGIoYixlLm1kKCkpKXtyZXR1cm4gdHJ1ZX19fX19ZWxzZXtmb3IoZj0wO2Y8YS5kLmxlbmd0aDsrK2Ype2M9YS5kW2ZdO2lmKGMpe2Q9UkQoYy5nLDM3OSk7aD1jLmk7Zm9yKGc9MDtnPGg7KytnKXtlPWRbZ107aWYoZEUoYik9PT1kRShlLm1kKCkpKXtyZXR1cm4gdHJ1ZX19fX19fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIHNlZShhLGIpe3ZhciBjLGQsZTtjPWIucWkoYS5hKTtpZihjKXtlPVdEKCROZCgoIWMuYiYmKGMuYj1uZXcgU1ZkKChKVGQoKSxGVGQpLEM4LGMpKSxjLmIpLCdhZmZpbGlhdGlvbicpKTtpZihlIT1udWxsKXtkPXRoYihlLEZoYigzNSkpO3JldHVybiBkPT0tMT9MZWUoYSxVZWUoYSxCWGQoYi5xaygpKSksZSk6ZD09MD9MZWUoYSxudWxsLChCRmIoMSxlLmxlbmd0aCsxKSxlLnN1YnN0cigxKSkpOkxlZShhLChBRmIoMCxkLGUubGVuZ3RoKSxlLnN1YnN0cigwLGQpKSwoQkZiKGQrMSxlLmxlbmd0aCsxKSxlLnN1YnN0cihkKzEpKSl9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gdjliKGEsYixjKXt2YXIgZCxlLGYsZztjLlVnKCdPcnRob2dvbmFsbHkgcm91dGluZyBoaWVyYXJjaGljYWwgcG9ydCBlZGdlcycsMSk7YS5hPTA7ZD15OWIoYik7QjliKGIsZCk7QTliKGEsYixkKTt3OWIoYik7ZT1SRChtUWIoYiwoeUNjKCksQkJjKSksMTAxKTtmPWIuYjt1OWIoKHRGYigwLGYuYy5sZW5ndGgpLFJEKGYuY1swXSwzMCkpLGUsYik7dTliKFJEKFZtYihmLGYuYy5sZW5ndGgtMSksMzApLGUsYik7Zz1iLmI7czliKCh0RmIoMCxnLmMubGVuZ3RoKSxSRChnLmNbMF0sMzApKSk7czliKFJEKFZtYihnLGcuYy5sZW5ndGgtMSksMzApKTtjLlZnKCl9XG5mdW5jdGlvbiBKQWQoYSl7c3dpdGNoKGEpe2Nhc2UgNDg6Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA1MjpjYXNlIDUzOmNhc2UgNTQ6Y2FzZSA1NTpjYXNlIDU2OmNhc2UgNTc6e3JldHVybiBhLTQ4PDwyND4+MjR9Y2FzZSA5NzpjYXNlIDk4OmNhc2UgOTk6Y2FzZSAxMDA6Y2FzZSAxMDE6Y2FzZSAxMDI6e3JldHVybiBhLTk3KzEwPDwyND4+MjR9Y2FzZSA2NTpjYXNlIDY2OmNhc2UgNjc6Y2FzZSA2ODpjYXNlIDY5OmNhc2UgNzA6e3JldHVybiBhLTY1KzEwPDwyND4+MjR9ZGVmYXVsdDp7dGhyb3cgQWRiKG5ldyBWZ2IoJ0ludmFsaWQgaGV4YWRlY2ltYWwnKSl9fX1cbmZ1bmN0aW9uIGlJYigpe2lJYj1nZWI7aEliPW5ldyBqSWIoJ1NQSVJBTCcsMCk7Y0liPW5ldyBqSWIoJ0xJTkVfQllfTElORScsMSk7ZEliPW5ldyBqSWIoJ01BTkhBVFRBTicsMik7YkliPW5ldyBqSWIoJ0pJVFRFUicsMyk7ZkliPW5ldyBqSWIoJ1FVQURSQU5UU19MSU5FX0JZX0xJTkUnLDQpO2dJYj1uZXcgakliKCdRVUFEUkFOVFNfTUFOSEFUVEFOJyw1KTtlSWI9bmV3IGpJYignUVVBRFJBTlRTX0pJVFRFUicsNik7YUliPW5ldyBqSWIoJ0NPTUJJTkVfTElORV9CWV9MSU5FX01BTkhBVFRBTicsNyk7X0hiPW5ldyBqSWIoJ0NPTUJJTkVfSklUVEVSX01BTkhBVFRBTicsOCl9XG5mdW5jdGlvbiBVcmMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqO2k9WnJjKGEsYyk7aj1acmMoYixjKTtlPWZhbHNlO3doaWxlKCEhaSYmISFqKXtpZihkfHxYcmMoaSxqLGMpKXtnPVpyYyhpLGMpO2g9WnJjKGosYyk7YXNjKGIpO2FzYyhhKTtmPWkuYztIZWMoaSxmYWxzZSk7SGVjKGosZmFsc2UpO2lmKGMpe2YzYihiLGoucCxmKTtiLnA9ai5wO2YzYihhLGkucCsxLGYpO2EucD1pLnB9ZWxzZXtmM2IoYSxpLnAsZik7YS5wPWkucDtmM2IoYixqLnArMSxmKTtiLnA9ai5wfWczYihpLG51bGwpO2czYihqLG51bGwpO2k9ZztqPWg7ZT10cnVlfWVsc2V7YnJlYWt9fXJldHVybiBlfVxuZnVuY3Rpb24gYURjKGEpe3N3aXRjaChhLmcpe2Nhc2UgMDpyZXR1cm4gbmV3IFhIYztjYXNlIDE6cmV0dXJuIG5ldyBwSGM7Y2FzZSAzOnJldHVybiBuZXcgR0djO2Nhc2UgNDpyZXR1cm4gbmV3IGdIYztjYXNlIDU6cmV0dXJuIG5ldyBqSWM7Y2FzZSA2OnJldHVybiBuZXcgSUhjO2Nhc2UgMjpyZXR1cm4gbmV3IHhIYztjYXNlIDc6cmV0dXJuIG5ldyBwR2M7Y2FzZSA4OnJldHVybiBuZXcgWUdjO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBhZ2IoJ05vIGltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSBmb3IgdGhlIGxheWVyZXIgJysoYS5mIT1udWxsP2EuZjonJythLmcpKSk7fX1cbmZ1bmN0aW9uIHRJYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2U9ZmFsc2U7Zj1mYWxzZTtmb3IoaD1uZXcgQW5iKGQuaik7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDEyKTtkRShtUWIoZywoWXdjKCksQXdjKSkpPT09ZEUoYykmJihnLmcuYy5sZW5ndGg9PTA/Zy5lLmMubGVuZ3RoPT0wfHwoZT10cnVlKTooZj10cnVlKSl9aT0wO2UmJmVeZj8oaT1jLmo9PShxcGQoKSxZb2QpPy1hLmVbZC5jLnBdW2QucF06Yi1hLmVbZC5jLnBdW2QucF0pOmYmJmVeZj8oaT1hLmVbZC5jLnBdW2QucF0rMSk6ZSYmZiYmKGk9Yy5qPT0ocXBkKCksWW9kKT8wOmIvMik7cmV0dXJuIGl9XG5mdW5jdGlvbiBsU2QoYSxiLGMsZCxlLGYsZyxoKXt2YXIgaSxqLGs7aT0wO2IhPW51bGwmJihpXj1vaGIoYi50b0xvd2VyQ2FzZSgpKSk7YyE9bnVsbCYmKGlePW9oYihjKSk7ZCE9bnVsbCYmKGlePW9oYihkKSk7ZyE9bnVsbCYmKGlePW9oYihnKSk7aCE9bnVsbCYmKGlePW9oYihoKSk7Zm9yKGo9MCxrPWYubGVuZ3RoO2o8aztqKyspe2lePW9oYihmW2pdKX1hPyhpfD0yNTYpOihpJj0tMjU3KTtlPyhpfD0xNik6KGkmPS0xNyk7dGhpcy5mPWk7dGhpcy5pPWI9PW51bGw/bnVsbDoodUZiKGIpLGIpO3RoaXMuYT1jO3RoaXMuZD1kO3RoaXMuaj1mO3RoaXMuZz1nO3RoaXMuZT1ofVxuZnVuY3Rpb24gZDNiKGEsYixjKXt2YXIgZCxlO2U9bnVsbDtzd2l0Y2goYi5nKXtjYXNlIDE6ZT0oSjNiKCksRTNiKTticmVhaztjYXNlIDI6ZT0oSjNiKCksRzNiKTt9ZD1udWxsO3N3aXRjaChjLmcpe2Nhc2UgMTpkPShKM2IoKSxGM2IpO2JyZWFrO2Nhc2UgMjpkPShKM2IoKSxEM2IpO2JyZWFrO2Nhc2UgMzpkPShKM2IoKSxIM2IpO2JyZWFrO2Nhc2UgNDpkPShKM2IoKSxJM2IpO31yZXR1cm4gISFlJiYhIWQ/ZHIoYS5qLG5ldyBZYihuZXcgbW9iKGNEKFdDKHBFLDEpLHJ2ZSwxNzgsMCxbUkQoUWIoZSksMTc4KSxSRChRYihkKSwxNzgpXSkpKSk6KHlvYigpLHlvYigpLHZvYil9XG5mdW5jdGlvbiBLOGIoYSl7dmFyIGIsYyxkO2I9UkQobVFiKGEsKHlDYygpLG5CYykpLDgpO3BRYihhLG5CYyxuZXcgcmpkKGIuYixiLmEpKTtzd2l0Y2goUkQobVFiKGEsUnpjKSwyNTUpLmcpe2Nhc2UgMTpwUWIoYSxSemMsKFJqZCgpLFFqZCkpO2JyZWFrO2Nhc2UgMjpwUWIoYSxSemMsKFJqZCgpLE1qZCkpO2JyZWFrO2Nhc2UgMzpwUWIoYSxSemMsKFJqZCgpLE9qZCkpO2JyZWFrO2Nhc2UgNDpwUWIoYSxSemMsKFJqZCgpLFBqZCkpO31pZigoIWEucT8oeW9iKCkseW9iKCksd29iKTphLnEpLl9iKElCYykpe2M9UkQobVFiKGEsSUJjKSw4KTtkPWMuYTtjLmE9Yy5iO2MuYj1kfX1cbmZ1bmN0aW9uIFBtYyhhLGIsYyxkLGUsZil7dGhpcy5iPWM7dGhpcy5kPWU7aWYoYT49Yi5sZW5ndGgpe3Rocm93IEFkYihuZXcgdmViKCdHcmVlZHkgU3dpdGNoRGVjaWRlcjogRnJlZSBsYXllciBub3QgaW4gZ3JhcGguJykpfXRoaXMuYz1iW2FdO3RoaXMuZT1uZXcgRE1jKGQpO3JNYyh0aGlzLmUsdGhpcy5jLChxcGQoKSxwcGQpKTt0aGlzLmk9bmV3IERNYyhkKTtyTWModGhpcy5pLHRoaXMuYyxYb2QpO3RoaXMuZj1uZXcgS21jKHRoaXMuYyk7dGhpcy5hPSFmJiZlLmkmJiFlLnMmJnRoaXMuY1swXS5rPT0ocjNiKCksbTNiKTt0aGlzLmEmJk5tYyh0aGlzLGEsYi5sZW5ndGgpfVxuZnVuY3Rpb24gJE1iKGEsYil7dmFyIGMsZCxlLGYsZyxoO2Y9IWEuQi5IYygoZHFkKCksV3BkKSk7Zz1hLkIuSGMoWnBkKTthLmE9bmV3IHdLYihnLGYsYS5jKTshIWEubiYmQzJiKGEuYS5uLGEubik7Y0xiKGEuZywoWkpiKCksWEpiKSxhLmEpO2lmKCFiKXtkPW5ldyBkTGIoMSxmLGEuYyk7ZC5uLmE9YS5rO1dyYihhLnAsKHFwZCgpLFlvZCksZCk7ZT1uZXcgZExiKDEsZixhLmMpO2Uubi5kPWEuaztXcmIoYS5wLG5wZCxlKTtoPW5ldyBkTGIoMCxmLGEuYyk7aC5uLmM9YS5rO1dyYihhLnAscHBkLGgpO2M9bmV3IGRMYigwLGYsYS5jKTtjLm4uYj1hLms7V3JiKGEucCxYb2QsYyl9fVxuZnVuY3Rpb24gemtjKGEpe3ZhciBiLGMsZDtiPVJEKG1RYihhLmQsKHlDYygpLHlBYykpLDIyMyk7c3dpdGNoKGIuZyl7Y2FzZSAyOmM9cmtjKGEpO2JyZWFrO2Nhc2UgMzpjPShkPW5ldyBibmIsRkRiKENEYihHRGIoRURiKEVEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmQuYiwxNikpLG5ldyB3bGMpLG5ldyB5bGMpLG5ldyBBbGMpLG5ldyBLa2MpLG5ldyBDbGMoZCkpLGQpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBkZ2IoJ0NvbXBhY3Rpb24gbm90IHN1cHBvcnRlZCBmb3IgJytiKycgZWRnZXMuJykpO315a2MoYSxjKTt4Z2IobmV3IFhrYihhLmcpLG5ldyBpbGMoYSkpfVxuZnVuY3Rpb24gcVljKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7Yi5VZygnUHJvY2VzcyBkaXJlY3Rpb25zJywxKTtjPVJEKG1RYihhLChoX2MoKSxIJGMpKSw4OCk7aWYoYyE9KENtZCgpLHhtZCkpe2ZvcihlPVN1YihhLmIsMCk7ZS5iIT1lLmQuYzspe2Q9UkQoZXZiKGUpLDQwKTtoPVJEKG1RYihkLChxJGMoKSxvJGMpKSwxNykuYTtpPVJEKG1RYihkLHAkYyksMTcpLmE7c3dpdGNoKGMuZyl7Y2FzZSA0OmkqPS0xO2JyZWFrO2Nhc2UgMTpmPWg7aD1pO2k9ZjticmVhaztjYXNlIDI6Zz1oO2g9LWk7aT1nO31wUWIoZCxvJGMsc2diKGgpKTtwUWIoZCxwJGMsc2diKGkpKX19Yi5WZygpfVxuZnVuY3Rpb24gbGVkKGEsYil7dmFyIGM7Yz1uZXcgcVFiOyEhYiYma1FiKGMsUkQoV2piKGEuYSxINCksOTYpKTtaRChiLDQyMikmJmtRYihjLFJEKFdqYihhLmEsTDQpLDk2KSk7aWYoWkQoYiwzNjYpKXtrUWIoYyxSRChXamIoYS5hLEk0KSw5NikpO3JldHVybiBjfVpEKGIsODQpJiZrUWIoYyxSRChXamIoYS5hLEU0KSw5NikpO2lmKFpEKGIsMjA3KSl7a1FiKGMsUkQoV2piKGEuYSxKNCksOTYpKTtyZXR1cm4gY31pZihaRChiLDE5Mykpe2tRYihjLFJEKFdqYihhLmEsSzQpLDk2KSk7cmV0dXJuIGN9WkQoYiwzMjYpJiZrUWIoYyxSRChXamIoYS5hLEc0KSw5NikpO3JldHVybiBjfVxuZnVuY3Rpb24gYV9iKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk7aT1uZXcgbV9iO2ZvcihoPW5ldyBBbmIoYS5hKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTApO2lmKGcuaz09KHIzYigpLG0zYikpe2NvbnRpbnVlfSQkYihpLGcsbmV3IHBqZCk7Zm9yKGY9bmV3IGlzKE1yKGEzYihnKS5hLktjKCksbmV3IGlyKSk7Z3MoZik7KXtlPVJEKGhzKGYpLDE4KTtpZihlLmMuaS5rPT1tM2J8fGUuZC5pLms9PW0zYil7Y29udGludWV9Zm9yKGQ9U3ViKGUuYSwwKTtkLmIhPWQuZC5jOyl7Yz1SRChldmIoZCksOCk7Yj1jO2tfYihpLG5ldyBlWmIoYi5hLGIuYikpfX19cmV0dXJuIGl9XG5mdW5jdGlvbiBLY2QoKXtLY2Q9Z2ViO0pjZD1uZXcgakdkKGlHZSk7SWNkPShfY2QoKSwkY2QpO0hjZD1uZXcgbEdkKG5HZSxJY2QpO0djZD0obGRkKCksa2RkKTtGY2Q9bmV3IGxHZChqR2UsR2NkKTtFY2Q9KFhiZCgpLFRiZCk7RGNkPW5ldyBsR2Qoa0dlLEVjZCk7emNkPW5ldyBsR2QobEdlLG51bGwpO0NjZD0oTWJkKCksS2JkKTtCY2Q9bmV3IGxHZChtR2UsQ2NkKTt2Y2Q9KHNiZCgpLHJiZCk7dWNkPW5ldyBsR2Qob0dlLHZjZCk7d2NkPW5ldyBsR2QocEdlLChHZWIoKSxmYWxzZSkpO3hjZD1uZXcgbEdkKHFHZSxzZ2IoNjQpKTt5Y2Q9bmV3IGxHZChyR2UsdHJ1ZSk7QWNkPUxiZH1cbmZ1bmN0aW9uIGVIYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsO2EucD0xO2U9YS5jO2w9bmV3IEl1Yjtmb3Ioaz1jM2IoYSwoQkVjKCksekVjKSkuS2MoKTtrLk9iKCk7KXtqPVJEKGsuUGIoKSwxMik7Zm9yKGQ9bmV3IEFuYihqLmcpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxOCk7aT1jLmQuaTtpZihhIT1pKXtmPWkuYztpZihmLnA8PWUucCl7Zz1lLnArMTtpZihnPT1iLmIuYy5sZW5ndGgpe2g9bmV3IFI0YihiKTtoLnA9ZztSbWIoYi5iLGgpO2czYihpLGgpfWVsc2V7aD1SRChWbWIoYi5iLGcpLDMwKTtnM2IoaSxoKX1sLmEuemMoaSxsKX19fX1yZXR1cm4gbH1cbmZ1bmN0aW9uIG1YYyhhLGIpe3ZhciBjLGQ7Yz1SRChtUWIoYSwocSRjKCksVFpjKSksMTUpO2lmKCFjfHxjLmdjKCk8MSl7cmV0dXJuIG51bGx9ZWxzZSBpZihjLmdjKCk9PTEpe3JldHVybiBSRChjLlhiKDApLDQwKX1kPW51bGw7c3dpdGNoKGIuZyl7Y2FzZSAyOmQ9UkQoTHZiKEtEYihjLk9jKCksbmV3IG1ZYykpLDQwKTticmVhaztjYXNlIDE6ZD1SRChMdmIoSkRiKGMuT2MoKSxuZXcgS1hjKSksNDApO2JyZWFrO2Nhc2UgNDpkPVJEKEx2YihLRGIoYy5PYygpLG5ldyBPWGMpKSw0MCk7YnJlYWs7Y2FzZSAzOmQ9UkQoTHZiKEpEYihjLk9jKCksbmV3IFNYYykpLDQwKTt9cmV0dXJuIGR9XG5mdW5jdGlvbiB1c2MoYSl7dmFyIGIsYyxkLGUsZixnO2lmKGEuYSE9bnVsbCl7cmV0dXJufWEuYT0kQyh4ZGIsSHllLDI4LGEuYy5iLmMubGVuZ3RoLDE2LDEpO2EuYVswXT1mYWxzZTtpZihuUWIoYS5jLCh5Q2MoKSx3Q2MpKSl7ZD1SRChtUWIoYS5jLHdDYyksMTUpO2ZvcihjPWQuS2MoKTtjLk9iKCk7KXtiPVJEKGMuUGIoKSwxNykuYTtiPjAmJmI8YS5hLmxlbmd0aCYmKGEuYVtiXT1mYWxzZSl9fWVsc2V7Zz1uZXcgQW5iKGEuYy5iKTtnLmE8Zy5jLmMubGVuZ3RoJiZ5bmIoZyk7ZT0xO3doaWxlKGcuYTxnLmMuYy5sZW5ndGgpe2Y9UkQoeW5iKGcpLDMwKTthLmFbZSsrXT14c2MoZil9fX1cbmZ1bmN0aW9uIFg2Yygpe1g2Yz1nZWI7TTZjPW5ldyBqR2QoJ2FkZGl0aW9uYWxIZWlnaHQnKTtONmM9bmV3IGpHZCgnZHJhd2luZ0hlaWdodCcpO082Yz1uZXcgakdkKCdkcmF3aW5nV2lkdGgnKTtSNmM9bmV3IGpHZCgnbWluSGVpZ2h0Jyk7VTZjPW5ldyBqR2QoJ21pbldpZHRoJyk7VjZjPW5ldyBqR2QoJ3Jvd3MnKTtXNmM9bmV3IGpHZCgndGFyZ2V0V2lkdGgnKTtUNmM9bmV3IGtHZCgnbWluUm93SW5jcmVhc2UnLDApO1E2Yz1uZXcga0dkKCdtYXhSb3dJbmNyZWFzZScsMCk7UzZjPW5ldyBrR2QoJ21pblJvd0RlY3JlYXNlJywwKTtQNmM9bmV3IGtHZCgnbWF4Um93RGVjcmVhc2UnLDApfVxuZnVuY3Rpb24gciRkKGEsYil7dmFyIGMsZCxlLGY7ZT1hLmI7c3dpdGNoKGIpe2Nhc2UgMTp7YS5ifD0xO2EuYnw9NDthLmJ8PTg7YnJlYWt9Y2FzZSAyOnthLmJ8PTI7YS5ifD00O2EuYnw9ODticmVha31jYXNlIDQ6e2EuYnw9MTthLmJ8PTI7YS5ifD00O2EuYnw9ODticmVha31jYXNlIDM6e2EuYnw9MTY7YS5ifD04O2JyZWFrfWNhc2UgMDp7YS5ifD0zMjthLmJ8PTE2O2EuYnw9ODthLmJ8PTE7YS5ifD0yO2EuYnw9NDticmVha319aWYoYS5iIT1lJiYhIWEuYyl7Zm9yKGQ9bmV3IGRNZChhLmMpO2QuZSE9ZC5pLmdjKCk7KXtmPVJEKGJNZChkKSw0ODIpO2M9eVlkKGYpO3YkZChjLGIpfX19XG5mdW5jdGlvbiBDS2MoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGssbCxtLG4sbztlPWZhbHNlO2ZvcihnPWIsaD0wLGk9Zy5sZW5ndGg7aDxpOysraCl7Zj1nW2hdO0hlYigoR2ViKCksZi5lP3RydWU6ZmFsc2UpKSYmIVJEKFZtYihhLmIsZi5lLnApLDIxOSkucyYmKGU9ZXwoaj1mLmUsaz1SRChWbWIoYS5iLGoucCksMjE5KSxsPWsuZSxtPXFLYyhjLGwubGVuZ3RoKSxuPWxbbV1bMF0sbi5rPT0ocjNiKCksbTNiKT8obFttXT1BS2MoZixsW21dLGM/KHFwZCgpLHBwZCk6KHFwZCgpLFhvZCkpKTprLmMubWcobCxjKSxvPURLYyhhLGssYyxkKSxCS2Moay5lLGsubyxjKSxvKSl9cmV0dXJuIGV9XG5mdW5jdGlvbiBBZWQoYSxiKXt2YXIgYyxkLGUsZixnO2Y9KCFiLmEmJihiLmE9bmV3IEM1ZChKNCxiLDEwLDExKSksYi5hKS5pO2ZvcihlPW5ldyBkTWQoKCFiLmEmJihiLmE9bmV3IEM1ZChKNCxiLDEwLDExKSksYi5hKSk7ZS5lIT1lLmkuZ2MoKTspe2Q9UkQoYk1kKGUpLDI3KTtpZihkRShHeGQoZCwodW1kKCksWGtkKSkpIT09ZEUoKEZuZCgpLEVuZCkpKXtnPVJEKEd4ZChiLFRsZCksMTQzKTtjPVJEKEd4ZChkLFRsZCksMTQzKTsoZz09Y3x8ISFnJiZOZmQoZyxjKSkmJighZC5hJiYoZC5hPW5ldyBDNWQoSjQsZCwxMCwxMSkpLGQuYSkuaSE9MCYmKGYrPUFlZChhLGQpKX19cmV0dXJuIGZ9XG5mdW5jdGlvbiBUb2MoYSl7dmFyIGIsYyxkLGUsZixnLGg7ZD0wO2g9MDtmb3IoZz1uZXcgQW5iKGEuZCk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEwNSk7ZT1SRCh6RGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGYuaiwxNikpLG5ldyBDcGMpLHRCYihuZXcgWkJiLG5ldyBYQmIsbmV3IHdDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsWyh4QmIoKSx2QmIpXSkpKSwxNSk7Yz1udWxsO2lmKGQ8PWgpe2M9KHFwZCgpLFlvZCk7ZCs9ZS5nYygpfWVsc2UgaWYoaDxkKXtjPShxcGQoKSxucGQpO2grPWUuZ2MoKX1iPWM7RkRiKEdEYihlLk9jKCksbmV3IHFwYyksbmV3IHNwYyhiKSl9fVxuZnVuY3Rpb24gRDZiKGEpe3ZhciBiLGMsZCxlLGY7Zj1uZXcgY25iKGEuYS5jLmxlbmd0aCk7Zm9yKGU9bmV3IEFuYihhLmEpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxMCk7Yz1SRChtUWIoZCwoeUNjKCksVUFjKSksMTcxKTtiPW51bGw7c3dpdGNoKGMuZyl7Y2FzZSAxOmNhc2UgMjpiPShodWMoKSxndWMpO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6Yj0oaHVjKCksZXVjKTt9aWYoYil7cFFiKGQsKFl3YygpLGJ3YyksKGh1YygpLGd1YykpO2I9PWV1Yz9GNmIoZCxjLChCRWMoKSx5RWMpKTpiPT1ndWMmJkY2YihkLGMsKEJFYygpLHpFYykpfWVsc2V7WkViKGYuYyxkKX19cmV0dXJuIGZ9XG5mdW5jdGlvbiBTbmMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaTthLmI9bmV3IGhqKG5ldyBtb2IoKHFwZCgpLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtvcGQsWW9kLFhvZCxucGQscHBkXSkpKSxuZXcgbW9iKChqb2MoKSxjRChXQyhVViwxKSxqd2UsMzcyLDAsW2lvYyxob2MsZ29jXSkpKSk7Zm9yKGc9Y0QoV0MoRTMsMSksTkFlLDY0LDAsW29wZCxZb2QsWG9kLG5wZCxwcGRdKSxoPTAsaT1nLmxlbmd0aDtoPGk7KytoKXtmPWdbaF07Zm9yKGM9Y0QoV0MoVVYsMSksandlLDM3MiwwLFtpb2MsaG9jLGdvY10pLGQ9MCxlPWMubGVuZ3RoO2Q8ZTsrK2Qpe2I9Y1tkXTthaihhLmIsZixiLG5ldyBibmIpfX19XG5mdW5jdGlvbiBCTWIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbDtnPVJEKFJEKFFjKGEucixiKSwyMSksODcpO2g9YS51LkhjKChQb2QoKSxOb2QpKTtjPWEudS5IYyhLb2QpO2Q9YS51LkhjKEpvZCk7aj1hLnUuSGMoT29kKTtsPWEuQi5IYygoZHFkKCksY3FkKSk7az0hYyYmIWQmJihqfHxnLmdjKCk9PTIpO3lNYihhLGIpO2U9bnVsbDtpPW51bGw7aWYoaCl7Zj1nLktjKCk7ZT1SRChmLlBiKCksMTE3KTtpPWU7d2hpbGUoZi5PYigpKXtpPVJEKGYuUGIoKSwxMTcpfWUuZC5iPTA7aS5kLmM9MDtrJiYhZS5hJiYoZS5kLmM9MCl9aWYobCl7Q01iKGcpO2lmKGgpe2UuZC5iPTA7aS5kLmM9MH19fVxuZnVuY3Rpb24gSk5iKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGw7Zz1SRChSRChRYyhhLnIsYiksMjEpLDg3KTtoPWEudS5IYygoUG9kKCksTm9kKSk7Yz1hLnUuSGMoS29kKTtkPWEudS5IYyhKb2QpO2k9YS51LkhjKE9vZCk7bD1hLkIuSGMoKGRxZCgpLGNxZCkpO2o9IWMmJiFkJiYoaXx8Zy5nYygpPT0yKTtITmIoYSxiKTtrPW51bGw7ZT1udWxsO2lmKGgpe2Y9Zy5LYygpO2s9UkQoZi5QYigpLDExNyk7ZT1rO3doaWxlKGYuT2IoKSl7ZT1SRChmLlBiKCksMTE3KX1rLmQuZD0wO2UuZC5hPTA7aiYmIWsuYSYmKGsuZC5hPTApfWlmKGwpe0tOYihnKTtpZihoKXtrLmQuZD0wO2UuZC5hPTB9fX1cbmZ1bmN0aW9uIE9OYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosaztlPWIuaztpZihiLnA+PTApe3JldHVybiBmYWxzZX1lbHNle2IucD1jLmI7Um1iKGMuZSxiKX1pZihlPT0ocjNiKCksbzNiKXx8ZT09cTNiKXtmb3IoZz1uZXcgQW5iKGIuaik7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEyKTtmb3Ioaz0oZD1uZXcgQW5iKChuZXcgXzNiKGYpKS5hLmcpLG5ldyBjNGIoZCkpO3huYihrLmEpOyl7aj1SRCh5bmIoay5hKSwxOCkuZDtoPWouaTtpPWguaztpZihiLmMhPWguYyl7aWYoaT09bzNifHxpPT1xM2Ipe2lmKE9OYyhhLGgsYykpe3JldHVybiB0cnVlfX19fX19cmV0dXJuIHRydWV9XG5mdW5jdGlvbiBHV2QoYSl7dmFyIGI7aWYoKGEuRGImNjQpIT0wKXJldHVybiBjV2QoYSk7Yj1uZXcgU2hiKGNXZChhKSk7Yi5hKz0nIChjaGFuZ2VhYmxlOiAnO09oYihiLChhLkJiJmd3ZSkhPTApO2IuYSs9Jywgdm9sYXRpbGU6ICc7T2hiKGIsKGEuQmImY0tlKSE9MCk7Yi5hKz0nLCB0cmFuc2llbnQ6ICc7T2hiKGIsKGEuQmImcXhlKSE9MCk7Yi5hKz0nLCBkZWZhdWx0VmFsdWVMaXRlcmFsOiAnO05oYihiLGEuaik7Yi5hKz0nLCB1bnNldHRhYmxlOiAnO09oYihiLChhLkJiJmJLZSkhPTApO2IuYSs9JywgZGVyaXZlZDogJztPaGIoYiwoYS5CYiZPdmUpIT0wKTtiLmErPScpJztyZXR1cm4gYi5hfVxuZnVuY3Rpb24gdGVlKGEsYil7dmFyIGMsZCxlLGYsZztlPWIucWkoYS5hKTtpZihlKXtkPSghZS5iJiYoZS5iPW5ldyBTVmQoKEpUZCgpLEZUZCksQzgsZSkpLGUuYik7Yz1XRCgkTmQoZCxES2UpKTtpZihjIT1udWxsKXtmPWMubGFzdEluZGV4T2YoJyMnKTtnPWY9PS0xP1dlZShhLGIuamsoKSxjKTpmPT0wP1ZlZShhLG51bGwsKEJGYigxLGMubGVuZ3RoKzEpLGMuc3Vic3RyKDEpKSk6VmVlKGEsKEFGYigwLGYsYy5sZW5ndGgpLGMuc3Vic3RyKDAsZikpLChCRmIoZisxLGMubGVuZ3RoKzEpLGMuc3Vic3RyKGYrMSkpKTtpZihaRChnLDE1Nikpe3JldHVybiBSRChnLDE1Nil9fX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIHhlZShhLGIpe3ZhciBjLGQsZSxmLGc7ZD1iLnFpKGEuYSk7aWYoZCl7Yz0oIWQuYiYmKGQuYj1uZXcgU1ZkKChKVGQoKSxGVGQpLEM4LGQpKSxkLmIpO2Y9V0QoJE5kKGMsJEtlKSk7aWYoZiE9bnVsbCl7ZT1mLmxhc3RJbmRleE9mKCcjJyk7Zz1lPT0tMT9XZWUoYSxiLmprKCksZik6ZT09MD9WZWUoYSxudWxsLChCRmIoMSxmLmxlbmd0aCsxKSxmLnN1YnN0cigxKSkpOlZlZShhLChBRmIoMCxlLGYubGVuZ3RoKSxmLnN1YnN0cigwLGUpKSwoQkZiKGUrMSxmLmxlbmd0aCsxKSxmLnN1YnN0cihlKzEpKSk7aWYoWkQoZywxNTYpKXtyZXR1cm4gUkQoZywxNTYpfX19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiByUmIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtO2U9WFBiKGEuZCk7Zz1SRChtUWIoYS5iLCh0U2IoKSxuU2IpKSwxMDcpO2g9Zy5iK2cuYztpPWcuZCtnLmE7az1lLmQuYSphLmUraDtqPWUuYi5hKmEuZitpO1JSYihhLmIsbmV3IHJqZChrLGopKTtmb3IobT1uZXcgQW5iKGEuZyk7bS5hPG0uYy5jLmxlbmd0aDspe2w9UkQoeW5iKG0pLDU2OCk7Yj1sLmctZS5hLmE7Yz1sLmktZS5jLmE7ZD0kaWQoampkKG5ldyByamQoYixjKSxsLmEsbC5iKSxpamQobmpkKGFqZCh5UmIobC5lKSksbC5kKmwuYSxsLmMqbC5iKSwtMC41KSk7Zj16UmIobC5lKTtCUmIobC5lLG9qZChkLGYpKX19XG5mdW5jdGlvbiBYZ2MoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtO2IuVWcoJ1Jlc3RvcmluZyByZXZlcnNlZCBlZGdlcycsMSk7Zm9yKGk9bmV3IEFuYihhLmIpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwzMCk7Zm9yKGs9bmV3IEFuYihoLmEpO2suYTxrLmMuYy5sZW5ndGg7KXtqPVJEKHluYihrKSwxMCk7Zm9yKG09bmV3IEFuYihqLmopO20uYTxtLmMuYy5sZW5ndGg7KXtsPVJEKHluYihtKSwxMik7Zz1zMmIobC5nKTtmb3IoZD1nLGU9MCxmPWQubGVuZ3RoO2U8ZjsrK2Upe2M9ZFtlXTtIZWIoVEQobVFiKGMsKFl3YygpLE53YykpKSkmJlgwYihjLGZhbHNlKX19fX1iLlZnKCl9XG5mdW5jdGlvbiBacGMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaTtpPSRDKGlFLE52ZSwxMDksKHFwZCgpLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtvcGQsWW9kLFhvZCxucGQscHBkXSkpLmxlbmd0aCwwLDIpO2ZvcihmPWNEKFdDKEUzLDEpLE5BZSw2NCwwLFtvcGQsWW9kLFhvZCxucGQscHBkXSksZz0wLGg9Zi5sZW5ndGg7ZzxoOysrZyl7ZT1mW2ddO2lbZS5nXT0kQyhpRSx2eGUsMjgsYS5jW2UuZ10sMTUsMSl9X3BjKGksYSxZb2QpO19wYyhpLGEsbnBkKTtZcGMoaSxhLFlvZCxiLGMsZCk7WXBjKGksYSxYb2QsYixjLGQpO1lwYyhpLGEsbnBkLGIsYyxkKTtZcGMoaSxhLHBwZCxiLGMsZCk7cmV0dXJuIGl9XG5mdW5jdGlvbiBzTGMoYSxiLGMpe2lmKFVqYihhLmEsYikpe2lmKFpzYihSRChXamIoYS5hLGIpLDQ5KSxjKSl7cmV0dXJuIDF9fWVsc2V7WmpiKGEuYSxiLG5ldyBfc2IpfWlmKFVqYihhLmEsYykpe2lmKFpzYihSRChXamIoYS5hLGMpLDQ5KSxiKSl7cmV0dXJuIC0xfX1lbHNle1pqYihhLmEsYyxuZXcgX3NiKX1pZihVamIoYS5iLGIpKXtpZihac2IoUkQoV2piKGEuYixiKSw0OSksYykpe3JldHVybiAtMX19ZWxzZXtaamIoYS5iLGIsbmV3IF9zYil9aWYoVWpiKGEuYixjKSl7aWYoWnNiKFJEKFdqYihhLmIsYyksNDkpLGIpKXtyZXR1cm4gMX19ZWxzZXtaamIoYS5iLGMsbmV3IF9zYil9cmV0dXJuIDB9XG5mdW5jdGlvbiB0TWIoYSl7dmFyIGIsYyxkLGUsZixnO2lmKGEucT09KEJvZCgpLHhvZCl8fGEucT09d29kKXtyZXR1cm59ZT1hLmYubi5kK1NKYihSRChWcmIoYS5iLChxcGQoKSxZb2QpKSwxMjcpKSthLmM7Yj1hLmYubi5hK1NKYihSRChWcmIoYS5iLG5wZCksMTI3KSkrYS5jO2Q9UkQoVnJiKGEuYixYb2QpLDEyNyk7Zz1SRChWcmIoYS5iLHBwZCksMTI3KTtmPSR3bmQuTWF0aC5tYXgoMCxkLm4uZC1lKTtmPSR3bmQuTWF0aC5tYXgoZixnLm4uZC1lKTtjPSR3bmQuTWF0aC5tYXgoMCxkLm4uYS1iKTtjPSR3bmQuTWF0aC5tYXgoYyxnLm4uYS1iKTtkLm4uZD1mO2cubi5kPWY7ZC5uLmE9YztnLm4uYT1jfVxuZnVuY3Rpb24gWGZlKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksajtpZihjPT1udWxsKXtlPVJEKGEuZywxMjQpO2ZvcihoPTA7aDxhLmk7KytoKXtnPWVbaF07aWYoZy5MaygpPT1iKXtyZXR1cm4gckxkKGEsZyxkKX19fWY9KG5rZSgpLFJEKGIsNjkpLnhrKCk/UkQoYyw3Nik6b2tlKGIsYykpO2lmKE12ZChhLmUpKXtqPSFwZ2UoYSxiKTtkPXFMZChhLGYsZCk7aT1iLkprKCk/ZmdlKGEsMyxiLG51bGwsYyxrZ2UoYSxiLGMsWkQoYiwxMDIpJiYoUkQoYiwxOSkuQmImdHhlKSE9MCksaik6ZmdlKGEsMSxiLGIuaWsoKSxjLC0xLGopO2Q/ZC5uaihpKTooZD1pKX1lbHNle2Q9cUxkKGEsZixkKX1yZXR1cm4gZH1cbmZ1bmN0aW9uIHhnZCgpe3RoaXMuYj1uZXcgZ3ViO3RoaXMuZD1uZXcgZ3ViO3RoaXMuZT1uZXcgZ3ViO3RoaXMuYz1uZXcgZ3ViO3RoaXMuYT1uZXcgVHNiO3RoaXMuZj1uZXcgVHNiO0hJZChsMyxuZXcgSWdkLG5ldyBLZ2QpO0hJZChrMyxuZXcgZWhkLG5ldyBnaGQpO0hJZChoMyxuZXcgaWhkLG5ldyBraGQpO0hJZChpMyxuZXcgbWhkLG5ldyBvaGQpO0hJZChsNCxuZXcgcWhkLG5ldyBzaGQpO0hJZChWSixuZXcgTWdkLG5ldyBPZ2QpO0hJZChQSyxuZXcgUWdkLG5ldyBTZ2QpO0hJZChCSyxuZXcgVWdkLG5ldyBXZ2QpO0hJZChNSyxuZXcgWWdkLG5ldyAkZ2QpO0hJZChETCxuZXcgYWhkLG5ldyBjaGQpfVxuZnVuY3Rpb24gaGMoYSxiKXt2YXIgYyxkLGUsZixnO2E9YT09bnVsbD92dmU6KHVGYihhKSxhKTtmb3IoZT0wO2U8Yi5sZW5ndGg7ZSsrKXtiW2VdPWljKGJbZV0pfWM9bmV3IGNpYjtnPTA7ZD0wO3doaWxlKGQ8Yi5sZW5ndGgpe2Y9YS5pbmRleE9mKCclcycsZyk7aWYoZj09LTEpe2JyZWFrfWMuYSs9JycremhiKGE9PW51bGw/dnZlOih1RmIoYSksYSksZyxmKTtZaGIoYyxiW2QrK10pO2c9ZisyfVhoYihjLGEsZyxhLmxlbmd0aCk7aWYoZDxiLmxlbmd0aCl7Yy5hKz0nIFsnO1loYihjLGJbZCsrXSk7d2hpbGUoZDxiLmxlbmd0aCl7Yy5hKz1wdmU7WWhiKGMsYltkKytdKX1jLmErPSddJ31yZXR1cm4gYy5hfVxuZnVuY3Rpb24ga01jKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7Yz0wO2ZvcihpPW5ldyBBbmIoYik7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDEyKTskTGMoYS5iLGEuZFtoLnBdKTtnPTA7Zm9yKGU9bmV3IGw0YihoLmIpO3huYihlLmEpfHx4bmIoZS5iKTspe2Q9UkQoeG5iKGUuYSk/eW5iKGUuYSk6eW5iKGUuYiksMTgpO2lmKHVNYyhkKSl7Zj1BTWMoYSxoPT1kLmM/ZC5kOmQuYyk7aWYoZj5hLmRbaC5wXSl7Yys9WkxjKGEuYixmKTtobWIoYS5hLHNnYihmKSl9fWVsc2V7KytnfX1jKz1hLmIuZCpnO3doaWxlKCFubWIoYS5hKSl7WExjKGEuYixSRChzbWIoYS5hKSwxNykuYSl9fXJldHVybiBjfVxuZnVuY3Rpb24gcGplKGEpe3ZhciBiLGMsZCxlLGYsZztmPTA7Yj1XVmQoYSk7ISFiLmtrKCkmJihmfD00KTsoYS5CYiZiS2UpIT0wJiYoZnw9Mik7aWYoWkQoYSwxMDIpKXtjPVJEKGEsMTkpO2U9WjVkKGMpOyhjLkJiJlFIZSkhPTAmJihmfD0zMik7aWYoZSl7QVlkKHVXZChlKSk7Znw9ODtnPWUudDsoZz4xfHxnPT0tMSkmJihmfD0xNik7KGUuQmImUUhlKSE9MCYmKGZ8PTY0KX0oYy5CYiZ0eGUpIT0wJiYoZnw9Y0tlKTtmfD1nd2V9ZWxzZXtpZihaRChiLDQ2OSkpe2Z8PTUxMn1lbHNle2Q9Yi5raygpOyEhZCYmKGQuaSYxKSE9MCYmKGZ8PTI1Nil9fShhLkJiJjUxMikhPTAmJihmfD0xMjgpO3JldHVybiBmfVxuZnVuY3Rpb24gdmtlKGEsYil7dmFyIGM7aWYoYS5mPT10a2Upe2M9eWZlKFFlZSgobGtlKCksamtlKSxiKSk7cmV0dXJuIGEuZT9jPT00JiZiIT0oTGxlKCksSmxlKSYmYiE9KExsZSgpLEdsZSkmJmIhPShMbGUoKSxIbGUpJiZiIT0oTGxlKCksSWxlKTpjPT0yfWlmKCEhYS5kJiYoYS5kLkhjKGIpfHxhLmQuSGMoemZlKFFlZSgobGtlKCksamtlKSxiKSkpfHxhLmQuSGMoRWVlKChsa2UoKSxqa2UpLGEuYixiKSkpKXtyZXR1cm4gdHJ1ZX1pZihhLmYpe2lmKFhlZSgobGtlKCksYS5mKSxCZmUoUWVlKGprZSxiKSkpKXtjPXlmZShRZWUoamtlLGIpKTtyZXR1cm4gYS5lP2M9PTQ6Yz09Mn19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gb0tjKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuO209LTE7bj0wO2ZvcihqPWEsaz0wLGw9ai5sZW5ndGg7azxsOysrayl7aT1qW2tdO2ZvcihmPWksZz0wLGg9Zi5sZW5ndGg7ZzxoOysrZyl7ZT1mW2ddO2I9bmV3IHVyYyhtPT0tMT9hWzBdOmFbbV0sUkQobVFiKFkyYihlKSwoeUNjKCksY0FjKSksMjg0KSxCaWMoZSksSGViKFREKG1RYihZMmIoZSksYkFjKSkpKTtmb3IoYz0wO2M8ZS5qLmMubGVuZ3RoO2MrKyl7Zm9yKGQ9YysxO2Q8ZS5qLmMubGVuZ3RoO2QrKyl7cHJjKGIsUkQoVm1iKGUuaixjKSwxMiksUkQoVm1iKGUuaixkKSwxMikpPjAmJisrbn19fSsrbX1yZXR1cm4gbn1cbmZ1bmN0aW9uIFMyYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsO2c9UkQoR3hkKGMsKHVtZCgpLFFsZCkpLDgpO2k9Zy5hO2s9Zy5iK2E7ZT0kd25kLk1hdGguYXRhbjIoayxpKTtlPDAmJihlKz1kRmUpO2UrPWI7ZT5kRmUmJihlLT1kRmUpO2g9UkQoR3hkKGQsUWxkKSw4KTtqPWguYTtsPWguYithO2Y9JHduZC5NYXRoLmF0YW4yKGwsaik7ZjwwJiYoZis9ZEZlKTtmKz1iO2Y+ZEZlJiYoZi09ZEZlKTtyZXR1cm4gWnkoKSxieigxLjBFLTEwKSwkd25kLk1hdGguYWJzKGUtZik8PTEuMEUtMTB8fGU9PWZ8fGlzTmFOKGUpJiZpc05hTihmKT8wOmU8Zj8tMTplPmY/MTpjeihpc05hTihlKSxpc05hTihmKSl9XG5mdW5jdGlvbiBQR2IoYSl7dmFyIGIsYyxkLGUsZixnLGg7aD1uZXcgVHNiO2ZvcihkPW5ldyBBbmIoYS5hLmIpO2QuYTxkLmMuYy5sZW5ndGg7KXtiPVJEKHluYihkKSw2MCk7WmpiKGgsYixuZXcgYm5iKX1mb3IoZT1uZXcgQW5iKGEuYS5iKTtlLmE8ZS5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoZSksNjApO2IuaT1weGU7Zm9yKGc9Yi5jLktjKCk7Zy5PYigpOyl7Zj1SRChnLlBiKCksNjApO1JEKFdkKHF0YihoLmYsZikpLDE1KS5GYyhiKX19Zm9yKGM9bmV3IEFuYihhLmEuYik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDYwKTtiLmMuJGIoKTtiLmM9UkQoV2QocXRiKGguZixiKSksMTUpfUhHYihhKX1cbmZ1bmN0aW9uIEFZYihhKXt2YXIgYixjLGQsZSxmLGcsaDtoPW5ldyBUc2I7Zm9yKGQ9bmV3IEFuYihhLmEuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGQpLDg2KTtaamIoaCxiLG5ldyBibmIpfWZvcihlPW5ldyBBbmIoYS5hLmIpO2UuYTxlLmMuYy5sZW5ndGg7KXtiPVJEKHluYihlKSw4Nik7Yi5vPXB4ZTtmb3IoZz1iLmYuS2MoKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSw4Nik7UkQoV2QocXRiKGguZixmKSksMTUpLkZjKGIpfX1mb3IoYz1uZXcgQW5iKGEuYS5iKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksODYpO2IuZi4kYigpO2IuZj1SRChXZChxdGIoaC5mLGIpKSwxNSl9dFliKGEpfVxuZnVuY3Rpb24gV1BiKGEsYixjLGQpe3ZhciBlLGY7VlBiKGEsYixjLGQpO2hRYihiLGEuai1iLmorYyk7aVFiKGIsYS5rLWIuaytkKTtmb3IoZj1uZXcgQW5iKGIuZik7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDMzNCk7c3dpdGNoKGUuYS5nKXtjYXNlIDA6ZVFiKGEsYi5nK2UuYi5hLDAsYi5nK2UuYy5hLGIuaS0xKTticmVhaztjYXNlIDE6ZVFiKGEsYi5nK2IubyxiLmkrZS5iLmEsYS5vLTEsYi5pK2UuYy5hKTticmVhaztjYXNlIDI6ZVFiKGEsYi5nK2UuYi5hLGIuaStiLnAsYi5nK2UuYy5hLGEucC0xKTticmVhaztkZWZhdWx0OmVRYihhLDAsYi5pK2UuYi5hLGIuZy0xLGIuaStlLmMuYSk7fX19XG5mdW5jdGlvbiAkZWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2Y9bmV3IGJuYjtiLmIuYy5sZW5ndGg9MDtjPVJEKHpEYihPRGIobmV3IFNEYihudWxsLG5ldyBTd2IobmV3IFhrYihhLmEuYiksMSkpKSx0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFsoeEJiKCksdkJiKV0pKSksMTUpO2ZvcihlPWMuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSwxNyk7Zz1fNWIoYS5hLGQpO2lmKGcuYiE9MCl7aD1uZXcgUjRiKGIpO1pFYihmLmMsaCk7aC5wPWQuYTtmb3Ioaj1TdWIoZywwKTtqLmIhPWouZC5jOyl7aT1SRChldmIoaiksMTApO2czYihpLGgpfX19VG1iKGIuYixmKX1cbmZ1bmN0aW9uIFRQYihiLGMsZCxlLGYpe3ZhciBnLGgsaTt0cnl7aWYoYz49Yi5vKXt0aHJvdyBBZGIobmV3IHdlYil9aT1jPj41O2g9YyYzMTtnPVNkYigxLFlkYihTZGIoaCwxKSkpO2Y/KGIubltkXVtpXT1SZGIoYi5uW2RdW2ldLGcpKTooYi5uW2RdW2ldPUNkYihiLm5bZF1baV0sUWRiKGcpKSk7Zz1TZGIoZywxKTtlPyhiLm5bZF1baV09UmRiKGIubltkXVtpXSxnKSk6KGIubltkXVtpXT1DZGIoYi5uW2RdW2ldLFFkYihnKSkpfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMzMzKSl7dGhyb3cgQWRiKG5ldyB2ZWIoZnplK2IubysnKicrYi5wK2d6ZStjK3B2ZStkK2h6ZSkpfWVsc2UgdGhyb3cgQWRiKGEpfX1cbmZ1bmN0aW9uIGVNYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG07bT1uZXcgeUFiKG5ldyBQTWMoYSkpO2ZvcihoPWNEKFdDKGpSLDEpLFdBZSwxMCwwLFtiLGNdKSxpPTAsaj1oLmxlbmd0aDtpPGo7KytpKXtnPWhbaV07Zm9yKGw9YU1jKGcsZCkuS2MoKTtsLk9iKCk7KXtrPVJEKGwuUGIoKSwxMik7Zm9yKGY9bmV3IGw0YihrLmIpO3huYihmLmEpfHx4bmIoZi5iKTspe2U9UkQoeG5iKGYuYSk/eW5iKGYuYSk6eW5iKGYuYiksMTgpO2lmKCFXMGIoZSkpe20uYS56YyhrLChHZWIoKSxFZWIpKT09bnVsbDt1TWMoZSkmJnJBYihtLGs9PWUuYz9lLmQ6ZS5jKX19fX1yZXR1cm4gUWIobSksbmV3IGRuYihtKX1cbmZ1bmN0aW9uIHcwYyhhLGIsYyxkKXt2YXIgZSxmLGc7aWYoYil7Zj1LZmIoVUQobVFiKGIsKHEkYygpLGokYykpKSkrZDtnPWMrS2ZiKFVEKG1RYihiLGQkYykpKS8yO3BRYihiLG8kYyxzZ2IoWWRiKEhkYigkd25kLk1hdGgucm91bmQoZikpKSkpO3BRYihiLHAkYyxzZ2IoWWRiKEhkYigkd25kLk1hdGgucm91bmQoZykpKSkpO2IuZC5iPT0wfHx3MGMoYSxSRChIcigoZT1TdWIoKG5ldyBkWGMoYikpLmEuZCwwKSxuZXcgZ1hjKGUpKSksNDApLGMrS2ZiKFVEKG1RYihiLGQkYykpKSthLmIsZCtLZmIoVUQobVFiKGIsZyRjKSkpKTttUWIoYixtJGMpIT1udWxsJiZ3MGMoYSxSRChtUWIoYixtJGMpLDQwKSxjLGQpfX1cbmZ1bmN0aW9uIGNkYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG07aT1ZMmIoYi5hKTtlPUtmYihVRChtUWIoaSwoeUNjKCksWEJjKSkpKSoyO2s9S2ZiKFVEKG1RYihpLGNDYykpKTtqPSR3bmQuTWF0aC5tYXgoZSxrKTtmPSRDKGlFLHZ4ZSwyOCxiLmYtYi5jKzEsMTUsMSk7ZD0tajtjPTA7Zm9yKGg9Yi5iLktjKCk7aC5PYigpOyl7Zz1SRChoLlBiKCksMTApO2QrPWEuYVtnLmMucF0rajtmW2MrK109ZH1kKz1hLmFbYi5hLmMucF0rajtmW2MrK109ZDtmb3IobT1uZXcgQW5iKGIuZSk7bS5hPG0uYy5jLmxlbmd0aDspe2w9UkQoeW5iKG0pLDEwKTtkKz1hLmFbbC5jLnBdK2o7ZltjKytdPWR9cmV0dXJuIGZ9XG5mdW5jdGlvbiBYdWQoYSxiKXt2YXIgYyxkLGUsZjtmPVJEKEd4ZChhLCh1bWQoKSxPbGQpKSw2NCkuZy1SRChHeGQoYixPbGQpLDY0KS5nO2lmKGYhPTApe3JldHVybiBmfWM9UkQoR3hkKGEsSmxkKSwxNyk7ZD1SRChHeGQoYixKbGQpLDE3KTtpZighIWMmJiEhZCl7ZT1jLmEtZC5hO2lmKGUhPTApe3JldHVybiBlfX1zd2l0Y2goUkQoR3hkKGEsT2xkKSw2NCkuZyl7Y2FzZSAxOnJldHVybiBRZmIoYS5pLGIuaSk7Y2FzZSAyOnJldHVybiBRZmIoYS5qLGIuaik7Y2FzZSAzOnJldHVybiBRZmIoYi5pLGEuaSk7Y2FzZSA0OnJldHVybiBRZmIoYi5qLGEuaik7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGRnYihVQWUpKTt9fVxuZnVuY3Rpb24gekNkKGEpe3ZhciBiLGMsZDtpZigoYS5EYiY2NCkhPTApcmV0dXJuIEZ5ZChhKTtiPW5ldyBkaWIoR0hlKTtjPWEuaztpZighYyl7IWEubiYmKGEubj1uZXcgQzVkKEk0LGEsMSw3KSk7aWYoYS5uLmk+MCl7ZD0oIWEubiYmKGEubj1uZXcgQzVkKEk0LGEsMSw3KSksUkQoUUhkKGEubiwwKSwxMzUpKS5hOyFkfHxaaGIoWmhiKChiLmErPScgXCInLGIpLGQpLCdcIicpfX1lbHNle1poYihaaGIoKGIuYSs9JyBcIicsYiksYyksJ1wiJyl9WmhiKFVoYihaaGIoVWhiKFpoYihVaGIoWmhiKFVoYigoYi5hKz0nICgnLGIpLGEuaSksJywnKSxhLmopLCcgfCAnKSxhLmcpLCcsJyksYS5mKSwnKScpO3JldHVybiBiLmF9XG5mdW5jdGlvbiBPQ2QoYSl7dmFyIGIsYyxkO2lmKChhLkRiJjY0KSE9MClyZXR1cm4gRnlkKGEpO2I9bmV3IGRpYihISGUpO2M9YS5rO2lmKCFjKXshYS5uJiYoYS5uPW5ldyBDNWQoSTQsYSwxLDcpKTtpZihhLm4uaT4wKXtkPSghYS5uJiYoYS5uPW5ldyBDNWQoSTQsYSwxLDcpKSxSRChRSGQoYS5uLDApLDEzNSkpLmE7IWR8fFpoYihaaGIoKGIuYSs9JyBcIicsYiksZCksJ1wiJyl9fWVsc2V7WmhiKFpoYigoYi5hKz0nIFwiJyxiKSxjKSwnXCInKX1aaGIoVWhiKFpoYihVaGIoWmhiKFVoYihaaGIoVWhiKChiLmErPScgKCcsYiksYS5pKSwnLCcpLGEuaiksJyB8ICcpLGEuZyksJywnKSxhLmYpLCcpJyk7cmV0dXJuIGIuYX1cbmZ1bmN0aW9uIFhuYyhhLGIpe3ZhciBjLGQsZSxmLGc7Yj09KFRFYygpLFFFYykmJkVvYihSRChRYyhhLmEsKEJuYygpLHhuYykpLDE1KSk7Zm9yKGU9UkQoUWMoYS5hLChCbmMoKSx4bmMpKSwxNSkuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSwxMDUpO2M9UkQoVm1iKGQuaiwwKSwxMTMpLmQuajtmPW5ldyBkbmIoZC5qKTtfbWIoZixuZXcgQm9jKTtzd2l0Y2goYi5nKXtjYXNlIDI6UG5jKGEsZixjLChqb2MoKSxob2MpLDEpO2JyZWFrO2Nhc2UgMTpjYXNlIDA6Zz1SbmMoZik7UG5jKGEsbmV3IFJrYihmLDAsZyksYywoam9jKCksaG9jKSwwKTtQbmMoYSxuZXcgUmtiKGYsZyxmLmMubGVuZ3RoKSxjLGhvYywxKTt9fX1cbmZ1bmN0aW9uIHNnZChhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2lmKGI9PW51bGx8fGIubGVuZ3RoPT0wKXtyZXR1cm4gbnVsbH1lPVJEKFhqYihhLmEsYiksMTQzKTtpZighZSl7Zm9yKGQ9KGg9KG5ldyBnbGIoYS5iKSkuYS52YygpLktjKCksbmV3IGxsYihoKSk7ZC5hLk9iKCk7KXtjPShmPVJEKGQuYS5QYigpLDQ0KSxSRChmLm1kKCksMTQzKSk7Zz1jLmM7aT1iLmxlbmd0aDtpZihsaGIoZy5zdWJzdHIoZy5sZW5ndGgtaSxpKSxiKSYmKGIubGVuZ3RoPT1nLmxlbmd0aHx8aWhiKGcsZy5sZW5ndGgtYi5sZW5ndGgtMSk9PTQ2KSl7aWYoZSl7cmV0dXJuIG51bGx9ZT1jfX0hIWUmJiRqYihhLmEsYixlKX1yZXR1cm4gZX1cbmZ1bmN0aW9uIEhPYihhLGIpe3ZhciBjLGQsZSxmO2M9bmV3IE1PYjtkPVJEKHpEYihHRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5mLDE2KSksYyksc0JiKG5ldyBfQmIsbmV3IGJDYixuZXcgeUNiLG5ldyBBQ2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFsoeEJiKCksd0JiKSx2QmJdKSkpLDIxKTtlPWQuZ2MoKTtkPVJEKHpEYihHRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYi5mLDE2KSksYyksc0JiKG5ldyBfQmIsbmV3IGJDYixuZXcgeUNiLG5ldyBBQ2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFt3QmIsdkJiXSkpKSwyMSk7Zj1kLmdjKCk7aWYoZTxmKXtyZXR1cm4gLTF9aWYoZT09Zil7cmV0dXJuIDB9cmV0dXJuIDF9XG5mdW5jdGlvbiBJOGIoYSl7dmFyIGIsYyxkO2lmKCFuUWIoYSwoeUNjKCksZEJjKSkpe3JldHVybn1kPVJEKG1RYihhLGRCYyksMjEpO2lmKGQuZGMoKSl7cmV0dXJufWM9KGI9UkQobWZiKEEzKSw5KSxuZXcgRnNiKGIsUkQoV0ViKGIsYi5sZW5ndGgpLDkpLDApKTtkLkhjKChkb2QoKSwkbmQpKT96c2IoYywkbmQpOnpzYihjLF9uZCk7ZC5IYyhZbmQpfHx6c2IoYyxZbmQpO2QuSGMoWG5kKT96c2IoYyxjb2QpOmQuSGMoV25kKT96c2IoYyxib2QpOmQuSGMoWm5kKSYmenNiKGMsYW9kKTtkLkhjKGNvZCk/enNiKGMsWG5kKTpkLkhjKGJvZCk/enNiKGMsV25kKTpkLkhjKGFvZCkmJnpzYihjLFpuZCk7cFFiKGEsZEJjLGMpfVxuZnVuY3Rpb24gS0xjKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2U9UkQobVFiKGEsKFl3YygpLHB3YykpLDEwKTtkPWEuajtjPSh0RmIoMCxkLmMubGVuZ3RoKSxSRChkLmNbMF0sMTIpKTtmb3IoZz1uZXcgQW5iKGUuaik7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEyKTtpZihkRShmKT09PWRFKG1RYihjLEF3YykpKXtpZihmLmo9PShxcGQoKSxZb2QpJiZhLnA+ZS5wKXtRM2IoZixucGQpO2lmKGYuZCl7aD1mLm8uYjtiPWYuYS5iO2YuYS5iPWgtYn19ZWxzZSBpZihmLmo9PW5wZCYmZS5wPmEucCl7UTNiKGYsWW9kKTtpZihmLmQpe2g9Zi5vLmI7Yj1mLmEuYjtmLmEuYj0tKGgtYil9fWJyZWFrfX1yZXR1cm4gZX1cbmZ1bmN0aW9uIG5UYihhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsO2lmKCEoWkQoYiwyMDcpfHxaRChiLDM2Nil8fFpEKGIsMTkzKSkpe3Rocm93IEFkYihuZXcgYWdiKCdNZXRob2Qgb25seSB3b3JrcyBmb3IgRWxrTm9kZS0sIEVsa0xhYmVsIGFuZCBFbGtQb3J0LW9iamVjdHMuJykpfWc9YS5hLzI7aT1iLmkrZC1nO2s9Yi5qK2UtZztqPWkrYi5nK2EuYTtsPWsrYi5mK2EuYTtmPW5ldyBFamQ7TXViKGYsbmV3IHJqZChpLGspKTtNdWIoZixuZXcgcmpkKGksbCkpO011YihmLG5ldyByamQoaixsKSk7TXViKGYsbmV3IHJqZChqLGspKTtoPW5ldyBPUmIoZik7a1FiKGgsYik7YyYmWmpiKGEuYixiLGgpO3JldHVybiBofVxuZnVuY3Rpb24gdyRiKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbTtmPW5ldyByamQoYixjKTtmb3Ioaz1uZXcgQW5iKGEuYSk7ay5hPGsuYy5jLmxlbmd0aDspe2o9UkQoeW5iKGspLDEwKTskaWQoai5uLGYpO2ZvcihtPW5ldyBBbmIoai5qKTttLmE8bS5jLmMubGVuZ3RoOyl7bD1SRCh5bmIobSksMTIpO2ZvcihlPW5ldyBBbmIobC5nKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTgpO0NqZChkLmEsZik7Zz1SRChtUWIoZCwoeUNjKCksUkFjKSksNzUpOyEhZyYmQ2pkKGcsZik7Zm9yKGk9bmV3IEFuYihkLmIpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSw3Mik7JGlkKGgubixmKX19fX19XG5mdW5jdGlvbiBvMmIoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtO2Y9bmV3IHJqZChiLGMpO2ZvcihrPW5ldyBBbmIoYS5hKTtrLmE8ay5jLmMubGVuZ3RoOyl7aj1SRCh5bmIoayksMTApOyRpZChqLm4sZik7Zm9yKG09bmV3IEFuYihqLmopO20uYTxtLmMuYy5sZW5ndGg7KXtsPVJEKHluYihtKSwxMik7Zm9yKGU9bmV3IEFuYihsLmcpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxOCk7Q2pkKGQuYSxmKTtnPVJEKG1RYihkLCh5Q2MoKSxSQWMpKSw3NSk7ISFnJiZDamQoZyxmKTtmb3IoaT1uZXcgQW5iKGQuYik7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDcyKTskaWQoaC5uLGYpfX19fX1cbmZ1bmN0aW9uIFg0YihhKXtpZigoIWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSksYS5iKS5pPT0wKXt0aHJvdyBBZGIobmV3IEtlZCgnRWRnZXMgbXVzdCBoYXZlIGEgc291cmNlLicpKX1lbHNlIGlmKCghYS5jJiYoYS5jPW5ldyBZaWUoRTQsYSw1LDgpKSxhLmMpLmk9PTApe3Rocm93IEFkYihuZXcgS2VkKCdFZGdlcyBtdXN0IGhhdmUgYSB0YXJnZXQuJykpfWVsc2V7IWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSk7aWYoIShhLmIuaTw9MSYmKCFhLmMmJihhLmM9bmV3IFlpZShFNCxhLDUsOCkpLGEuYy5pPD0xKSkpe3Rocm93IEFkYihuZXcgS2VkKCdIeXBlcmVkZ2VzIGFyZSBub3Qgc3VwcG9ydGVkLicpKX19fVxuZnVuY3Rpb24gbUtjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGw7bD0wO2Y9bmV3IHdtYjtobWIoZixiKTt3aGlsZShmLmIhPWYuYyl7aT1SRChzbWIoZiksMjE5KTtqPTA7az1SRChtUWIoYi5qLCh5Q2MoKSxjQWMpKSwyODQpO2c9S2ZiKFVEKG1RYihiLmosWnpjKSkpO2g9S2ZiKFVEKG1RYihiLmosJHpjKSkpO2lmKGshPShrRWMoKSxoRWMpKXtqKz1nKm5LYyhpLmUsayk7ais9aCpvS2MoaS5lKX1sKz1QTGMoaS5kLGkuZSkrajtmb3IoZT1uZXcgQW5iKGkuYik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDM2KTtjPVJEKFZtYihhLmIsZC5wKSwyMTkpO2Muc3x8KGwrPWxLYyhhLGMpKX19cmV0dXJuIGx9XG5mdW5jdGlvbiBQaWIoKXtQaWI9Z2ViO3ZhciBhO0tpYj1uZXcgYWpiKDEsMSk7TWliPW5ldyBhamIoMSwxMCk7T2liPW5ldyBhamIoMCwwKTtKaWI9bmV3IGFqYigtMSwxKTtMaWI9Y0QoV0ModUosMSksTnZlLDkyLDAsW09pYixLaWIsbmV3IGFqYigxLDIpLG5ldyBhamIoMSwzKSxuZXcgYWpiKDEsNCksbmV3IGFqYigxLDUpLG5ldyBhamIoMSw2KSxuZXcgYWpiKDEsNyksbmV3IGFqYigxLDgpLG5ldyBhamIoMSw5KSxNaWJdKTtOaWI9JEModUosTnZlLDkyLDMyLDAsMSk7Zm9yKGE9MDthPE5pYi5sZW5ndGg7YSsrKXtOaWJbYV09SmRiKFNkYigxLGEpLDApP2pqYihTZGIoMSxhKSk6WGliKGpqYihPZGIoU2RiKDEsYSkpKSl9fVxuZnVuY3Rpb24gSkpiKGEsYixjLGQsZSxmLGcpe2EuYz1kLkxmKCkuYTthLmQ9ZC5MZigpLmI7aWYoZSl7YS5jKz1lLkxmKCkuYTthLmQrPWUuTGYoKS5ifWEuYj1iLk1mKCkuYTthLmE9Yi5NZigpLmI7aWYoIWUpe2M/KGEuYy09ZytiLk1mKCkuYSk6KGEuYys9ZC5NZigpLmErZyl9ZWxzZXtzd2l0Y2goZS5hZygpLmcpe2Nhc2UgMDpjYXNlIDI6YS5jKz1lLk1mKCkuYStnK2YuYStnO2JyZWFrO2Nhc2UgNDphLmMtPWcrZi5hK2crYi5NZigpLmE7YnJlYWs7Y2FzZSAxOmEuYys9ZS5NZigpLmErZzthLmQtPWcrZi5iK2crYi5NZigpLmI7YnJlYWs7Y2FzZSAzOmEuYys9ZS5NZigpLmErZzthLmQrPWUuTWYoKS5iK2crZi5iK2c7fX19XG5mdW5jdGlvbiB4ZGMoYSxiKXt2YXIgYyxkO3RoaXMuYj1uZXcgYm5iO3RoaXMuZT1uZXcgYm5iO3RoaXMuYT1hO3RoaXMuZD1iO3VkYyh0aGlzKTt2ZGModGhpcyk7dGhpcy5iLmRjKCk/KHRoaXMuYz1hLmMucCk6KHRoaXMuYz1SRCh0aGlzLmIuWGIoMCksMTApLmMucCk7dGhpcy5lLmMubGVuZ3RoPT0wPyh0aGlzLmY9YS5jLnApOih0aGlzLmY9UkQoVm1iKHRoaXMuZSx0aGlzLmUuYy5sZW5ndGgtMSksMTApLmMucCk7Zm9yKGQ9UkQobVFiKGEsKFl3YygpLE13YykpLDE1KS5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDcyKTtpZihuUWIoYywoeUNjKCksdUFjKSkpe3RoaXMuZD1SRChtUWIoYyx1QWMpLDIzMik7YnJlYWt9fX1cbmZ1bmN0aW9uIGVyYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosaztkPVJEKFdqYihhLmEsYiksNDkpO2Y9UkQoV2piKGEuYSxjKSw0OSk7ZT1SRChXamIoYS5lLGIpLDQ5KTtnPVJEKFdqYihhLmUsYyksNDkpO2QuYS56YyhjLGQpO2cuYS56YyhiLGcpO2ZvcihrPWYuYS5lYygpLktjKCk7ay5PYigpOyl7aj1SRChrLlBiKCksMTApO2QuYS56YyhqLGQpO1lzYihSRChXamIoYS5lLGopLDQ5KSxiKTt5ZShSRChXamIoYS5lLGopLDQ5KSxlKX1mb3IoaT1lLmEuZWMoKS5LYygpO2kuT2IoKTspe2g9UkQoaS5QYigpLDEwKTtnLmEuemMoaCxnKTtZc2IoUkQoV2piKGEuYSxoKSw0OSksYyk7eWUoUkQoV2piKGEuYSxoKSw0OSksZil9fVxuZnVuY3Rpb24gdUxjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrO2Q9UkQoV2piKGEuYSxiKSw0OSk7Zj1SRChXamIoYS5hLGMpLDQ5KTtlPVJEKFdqYihhLmIsYiksNDkpO2c9UkQoV2piKGEuYixjKSw0OSk7ZC5hLnpjKGMsZCk7Zy5hLnpjKGIsZyk7Zm9yKGs9Zi5hLmVjKCkuS2MoKTtrLk9iKCk7KXtqPVJEKGsuUGIoKSwxMCk7ZC5hLnpjKGosZCk7WXNiKFJEKFdqYihhLmIsaiksNDkpLGIpO3llKFJEKFdqYihhLmIsaiksNDkpLGUpfWZvcihpPWUuYS5lYygpLktjKCk7aS5PYigpOyl7aD1SRChpLlBiKCksMTApO2cuYS56YyhoLGcpO1lzYihSRChXamIoYS5hLGgpLDQ5KSxjKTt5ZShSRChXamIoYS5hLGgpLDQ5KSxmKX19XG5mdW5jdGlvbiBycmMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs7ZD1SRChXamIoYS5hLGIpLDQ5KTtmPVJEKFdqYihhLmEsYyksNDkpO2U9UkQoV2piKGEuZCxiKSw0OSk7Zz1SRChXamIoYS5kLGMpLDQ5KTtkLmEuemMoYyxkKTtnLmEuemMoYixnKTtmb3Ioaz1mLmEuZWMoKS5LYygpO2suT2IoKTspe2o9UkQoay5QYigpLDEyKTtkLmEuemMoaixkKTtZc2IoUkQoV2piKGEuZCxqKSw0OSksYik7eWUoUkQoV2piKGEuZCxqKSw0OSksZSl9Zm9yKGk9ZS5hLmVjKCkuS2MoKTtpLk9iKCk7KXtoPVJEKGkuUGIoKSwxMik7Zy5hLnpjKGgsZyk7WXNiKFJEKFdqYihhLmEsaCksNDkpLGMpO3llKFJEKFdqYihhLmEsaCksNDkpLGYpfX1cbmZ1bmN0aW9uIGxUYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvO2Y9YztpZihjPGQpe209KG49bmV3IFVTYyhhLnApLG89bmV3IFVTYyhhLnApLHllKG4uZSxhLmUpLG4ucT1hLnEsbi5yPW8sTFNjKG4pLHllKG8uaixhLmopLG8ucj1uLExTYyhvKSxuZXcgUHRkKG4sbykpO2w9UkQobS5hLDExOCk7az1SRChtLmIsMTE4KTtlPSh0RmIoZixiLmMubGVuZ3RoKSxSRChiLmNbZl0sMzM5KSk7Zz1zVGMoYSxsLGssZSk7Zm9yKGo9YysxO2o8PWQ7aisrKXtoPSh0RmIoaixiLmMubGVuZ3RoKSxSRChiLmNbal0sMzM5KSk7aT1zVGMoYSxsLGssaCk7aWYocVRjKGgsaSxlLGcpKXtlPWg7Zz1pO2Y9an19fXJldHVybiBmfVxuZnVuY3Rpb24gYzhjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuLG87Zz1SRChRSGQoYiwwKSwyNyk7RHlkKGcsMCk7RXlkKGcsMCk7bT1uZXcgYm5iO1pFYihtLmMsZyk7aD1nO2Y9bmV3IGxhZChhLmEsZy5nLGcuZiwoc2FkKCkscmFkKSk7Zm9yKG49MTtuPGIuaTtuKyspe289UkQoUUhkKGIsbiksMjcpO2k9ZDhjKGEsb2FkLG8saCxmLG0sYyk7aj1kOGMoYSxuYWQsbyxoLGYsbSxjKTtrPWQ4YyhhLHFhZCxvLGgsZixtLGMpO2w9ZDhjKGEscGFkLG8saCxmLG0sYyk7ZT1mOGMoYSxpLGosayxsLG8saCxkKTtEeWQobyxlLmQpO0V5ZChvLGUuZSk7a2FkKGUscmFkKTtmPWU7aD1vO1pFYihtLmMsbyl9cmV0dXJuIGZ9XG5mdW5jdGlvbiB5RWQoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtO2s9bnVsbDttPWI7bD1wRWQoYSxER2QoYyksbSk7anlkKGwsekRkKG0sdUllKSk7Zz13RGQobSxrSWUpO2Q9bmV3IE1FZChhLGwpO09EZChkLmEsZC5iLGcpO2g9d0RkKG0sbEllKTtlPW5ldyBORWQoYSxsKTtQRGQoZS5hLGUuYixoKTtpZigoIWwuYiYmKGwuYj1uZXcgWWllKEU0LGwsNCw3KSksbC5iKS5pPT0wfHwoIWwuYyYmKGwuYz1uZXcgWWllKEU0LGwsNSw4KSksbC5jKS5pPT0wKXtmPXpEZChtLHVJZSk7aT15SWUrZjtqPWkrekllO3Rocm93IEFkYihuZXcgQ0RkKGopKX1HRWQobSxsKTt6RWQoYSxtLGwpO2s9Q0VkKGEsbSxsKTtyZXR1cm4ga31cbmZ1bmN0aW9uIHBKYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2U9JEMoa0UsUHdlLDI4LGEuZS5hLmMubGVuZ3RoLDE1LDEpO2ZvcihnPW5ldyBBbmIoYS5lLmEpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxMjUpO2VbZi5kXSs9Zi5iLmEuYy5sZW5ndGh9aD1ndihiKTt3aGlsZShoLmIhPTApe2Y9UkQoaC5iPT0wP251bGw6KHNGYihoLmIhPTApLFd1YihoLGguYS5hKSksMTI1KTtmb3IoZD1OcihuZXcgQW5iKGYuZy5hKSk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMjE4KTtpPWMuZTtpLmU9JHduZC5NYXRoLm1heChpLmUsZi5lK2MuYSk7LS1lW2kuZF07ZVtpLmRdPT0wJiYoUHViKGgsaSxoLmMuYixoLmMpLHRydWUpfX19XG5mdW5jdGlvbiB0SmIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbDtjPXF3ZTtlPWx2ZTtmb3IoaD1uZXcgQW5iKGEuZS5hKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoaCksMTI1KTtlPSR3bmQuTWF0aC5taW4oZSxmLmUpO2M9JHduZC5NYXRoLm1heChjLGYuZSl9Yj0kQyhrRSxQd2UsMjgsYy1lKzEsMTUsMSk7Zm9yKGc9bmV3IEFuYihhLmUuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEyNSk7Zi5lLT1lOysrYltmLmVdfWQ9MDtpZihhLmshPW51bGwpe2ZvcihqPWEuayxrPTAsbD1qLmxlbmd0aDtrPGw7KytrKXtpPWpba107YltkKytdKz1pO2lmKGIubGVuZ3RoPT1kKXticmVha319fXJldHVybiBifVxuZnVuY3Rpb24gSTBjKGEsYil7dmFyIGMsZCxlLGYsZyxoO2IuVWcoJ0VkZ2Ugcm91dGluZycsMSk7ZT1SRChtUWIoYSwoaF9jKCksSyRjKSksMzkyKTtpZihlPT0oTFpjKCksSlpjKSl7RzBjKGEpfWVsc2UgaWYoZT09SVpjKXtSRChMdmIoRERiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmIsMTYpKSxuZXcgQVdjKSkpLDQwKTtmPUtmYihVRChtUWIoYSwkJGMpKSk7Zz1LZmIoVUQobVFiKGEsSiRjKSkpO2g9UkQobVFiKGEsSCRjKSw4OCk7RTBjKGEsaCxmKTtGMGMoYSxoLGYsZyk7RDBjKGEsaCxmLGcpO2ZvcihkPVN1YihhLmEsMCk7ZC5iIT1kLmQuYzspe2M9UkQoZXZiKGQpLDY1KTtjLmEuYjwyJiZIMGMoYyl9fWIuVmcoKX1cbmZ1bmN0aW9uIElLZChhKXtzd2l0Y2goYS5kKXtjYXNlIDk6Y2FzZSA4OntyZXR1cm4gdHJ1ZX1jYXNlIDM6Y2FzZSA1OmNhc2UgNDpjYXNlIDY6e3JldHVybiBmYWxzZX1jYXNlIDc6e3JldHVybiBSRChIS2QoYSksMTcpLmE9PWEub31jYXNlIDE6Y2FzZSAyOntpZihhLm89PS0yKXtyZXR1cm4gZmFsc2V9ZWxzZXtzd2l0Y2goYS5wKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMjpjYXNlIDY6Y2FzZSA1OmNhc2UgNzp7cmV0dXJuIEdkYihhLmssYS5mKX1jYXNlIDM6Y2FzZSA0OntyZXR1cm4gYS5qPT1hLmV9ZGVmYXVsdDp7cmV0dXJuIGEubj09bnVsbD9hLmc9PW51bGw6cGIoYS5uLGEuZyl9fX19ZGVmYXVsdDp7cmV0dXJuIGZhbHNlfX19XG5mdW5jdGlvbiBHcmMoYSxiKXt2YXIgYyxkLGU7Yi5VZygnQnJlYWtpbmcgUG9pbnQgSW5zZXJ0aW9uJywxKTtkPW5ldyB5c2MoYSk7c3dpdGNoKFJEKG1RYihhLCh5Q2MoKSxyQ2MpKSwzNTEpLmcpe2Nhc2UgMjplPW5ldyBLc2M7YnJlYWs7Y2FzZSAwOmU9bmV3IHpyYzticmVhaztkZWZhdWx0OmU9bmV3IE5zYzt9Yz1lLm9nKGEsZCk7SGViKFREKG1RYihhLHRDYykpKSYmKGM9RnJjKGEsYykpO2lmKCFlLnBnKCkmJm5RYihhLHhDYykpe3N3aXRjaChSRChtUWIoYSx4Q2MpLDM1MikuZyl7Y2FzZSAyOmM9V3NjKGQsYyk7YnJlYWs7Y2FzZSAxOmM9VXNjKGQsYyk7fX1pZihjLmRjKCkpe2IuVmcoKTtyZXR1cm59RHJjKGEsYyk7Yi5WZygpfVxuZnVuY3Rpb24gb0pjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGw7Zj1uZXcgY25iKGIuYy5sZW5ndGgpO2ZvcihqPW5ldyBBbmIoYik7ai5hPGouYy5jLmxlbmd0aDspe2c9UkQoeW5iKGopLDEwKTtSbWIoZixhLmJbZy5jLnBdW2cucF0pfWpKYyhhLGYsYyk7bD1udWxsO3doaWxlKGw9a0pjKGYpKXtsSmMoYSxSRChsLmEsMjM5KSxSRChsLmIsMjM5KSxmKX1iLmMubGVuZ3RoPTA7Zm9yKGU9bmV3IEFuYihmKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMjM5KTtmb3IoaD1kLmQsaT0wLGs9aC5sZW5ndGg7aTxrOysraSl7Zz1oW2ldO1pFYihiLmMsZyk7YS5hW2cuYy5wXVtnLnBdLmE9cEpjKGQuZyxkLmRbMF0pLmF9fX1cbmZ1bmN0aW9uIHduZChhKXtDZ2QoYSxuZXcgUGZkKCRmZChYZmQoWmZkKFlmZChuZXcgYWdkLHBIZSksJ0VMSyBGaXhlZCcpLCdLZWVwcyB0aGUgY3VycmVudCBsYXlvdXQgYXMgaXQgaXMsIHdpdGhvdXQgYW55IGF1dG9tYXRpYyBtb2RpZmljYXRpb24uIE9wdGlvbmFsIGNvb3JkaW5hdGVzIGNhbiBiZSBnaXZlbiBmb3Igbm9kZXMgYW5kIGVkZ2UgYmVuZCBwb2ludHMuJyksbmV3IHpuZCkpKTtBZ2QoYSxwSGUsRXplLHRuZCk7QWdkKGEscEhlLGZFZSxpR2QodW5kKSk7QWdkKGEscEhlLFFHZSxpR2Qob25kKSk7QWdkKGEscEhlLGpBZSxpR2QocG5kKSk7QWdkKGEscEhlLENBZSxpR2Qocm5kKSk7QWdkKGEscEhlLGhBZSxpR2QocW5kKSl9XG5mdW5jdGlvbiBEbyhhLGIsYyl7dmFyIGQsZSxmLGcsaDtkPVlkYihOZGIoY3dlLHFnYihZZGIoTmRiKGI9PW51bGw/MDp0YihiKSxkd2UpKSwxNSkpKTtoPVlkYihOZGIoY3dlLHFnYihZZGIoTmRiKGM9PW51bGw/MDp0YihjKSxkd2UpKSwxNSkpKTtmPUdvKGEsYixkKTtpZighIWYmJmg9PWYuZiYmSGIoYyxmLmkpKXtyZXR1cm4gY31nPUhvKGEsYyxoKTtpZihnKXt0aHJvdyBBZGIobmV3IGFnYigndmFsdWUgYWxyZWFkeSBwcmVzZW50OiAnK2MpKX1lPW5ldyBrcChiLGQsYyxoKTtpZihmKXt5byhhLGYpO0JvKGEsZSxmKTtmLmU9bnVsbDtmLmM9bnVsbDtyZXR1cm4gZi5pfWVsc2V7Qm8oYSxlLG51bGwpO0ZvKGEpO3JldHVybiBudWxsfX1cbmZ1bmN0aW9uIFY3YihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvO2s9Yy5hLmM7Zz1jLmEuYytjLmEuYjtmPVJEKFdqYihjLmMsYiksNDY4KTtuPWYuZjtvPWYuYTtmLmI/KGk9bmV3IHJqZChnLG4pKTooaT1uZXcgcmpkKGssbikpO2YuYz8obD1uZXcgcmpkKGssbykpOihsPW5ldyByamQoZyxvKSk7ZT1rO2MucHx8KGUrPWEuYyk7ZSs9Yy5GK2MudiphLmI7aj1uZXcgcmpkKGUsbik7bT1uZXcgcmpkKGUsbyk7empkKGIuYSxjRChXQyhsMywxKSxOdmUsOCwwLFtpLGpdKSk7aD1jLmQuYS5nYygpPjE7aWYoaCl7ZD1uZXcgcmpkKGUsYy5iKTtNdWIoYi5hLGQpfXpqZChiLmEsY0QoV0MobDMsMSksTnZlLDgsMCxbbSxsXSkpfVxuZnVuY3Rpb24gYUVjKCl7YUVjPWdlYjskRGM9bmV3IGJFYyhMQWUsMCk7VkRjPW5ldyBiRWMoJ05JS09MT1YnLDEpO1lEYz1uZXcgYkVjKCdOSUtPTE9WX1BJWEVMJywyKTtXRGM9bmV3IGJFYygnTklLT0xPVl9JTVBST1ZFRCcsMyk7WERjPW5ldyBiRWMoJ05JS09MT1ZfSU1QUk9WRURfUElYRUwnLDQpO1NEYz1uZXcgYkVjKCdEVU1NWU5PREVfUEVSQ0VOVEFHRScsNSk7WkRjPW5ldyBiRWMoJ05PREVDT1VOVF9QRVJDRU5UQUdFJyw2KTtfRGM9bmV3IGJFYygnTk9fQk9VTkRBUlknLDcpO1REYz1uZXcgYkVjKCdNT0RFTF9PUkRFUl9MRUZUX1RPX1JJR0hUJyw4KTtVRGM9bmV3IGJFYygnTU9ERUxfT1JERVJfUklHSFRfVE9fTEVGVCcsOSl9XG5mdW5jdGlvbiB1c2UoYSl7dmFyIGIsYyxkLGUsZjtkPWEubGVuZ3RoO2I9bmV3IFJoYjtmPTA7d2hpbGUoZjxkKXtjPWloYihhLGYrKyk7aWYoYz09OXx8Yz09MTB8fGM9PTEyfHxjPT0xM3x8Yz09MzIpY29udGludWU7aWYoYz09MzUpe3doaWxlKGY8ZCl7Yz1paGIoYSxmKyspO2lmKGM9PTEzfHxjPT0xMClicmVha31jb250aW51ZX1pZihjPT05MiYmZjxkKXtpZigoZT0oQkZiKGYsYS5sZW5ndGgpLGEuY2hhckNvZGVBdChmKSkpPT0zNXx8ZT09OXx8ZT09MTB8fGU9PTEyfHxlPT0xM3x8ZT09MzIpe0poYihiLGUmQndlKTsrK2Z9ZWxzZXtiLmErPSdcXFxcJztKaGIoYixlJkJ3ZSk7KytmfX1lbHNlIEpoYihiLGMmQndlKX1yZXR1cm4gYi5hfVxuZnVuY3Rpb24gRDRjKCl7RDRjPWdlYjtuNGM9bmV3IGxHZChvRmUsKEdlYigpLGZhbHNlKSk7dDRjPW5ldyBsR2QocEZlLHNnYigwKSk7dTRjPW5ldyBsR2QocUZlLDApO3Y0Yz1uZXcgbEdkKHJGZSxmYWxzZSk7cTRjPShnNGMoKSxkNGMpO3A0Yz1uZXcgbEdkKHNGZSxxNGMpO3NnYigwKTtvNGM9bmV3IGxHZCh0RmUsc2diKDEpKTtBNGM9KHQ1YygpLHI1Yyk7ejRjPW5ldyBsR2QodUZlLEE0Yyk7QzRjPShZM2MoKSxYM2MpO0I0Yz1uZXcgbEdkKHZGZSxDNGMpO3M0Yz0oajVjKCksaTVjKTtyNGM9bmV3IGxHZCh3RmUsczRjKTt5NGM9bmV3IGxHZCh4RmUsMCk7dzRjPW5ldyBsR2QoeUZlLGZhbHNlKTt4NGM9bmV3IGxHZCh6RmUsZmFsc2UpfVxuZnVuY3Rpb24gdDNjKGEsYil7dmFyIGMsZCxlO2ZvcihkPW5ldyBBbmIoYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDI3KTtSYyhhLmEsYyxjKTtSYyhhLmIsYyxjKTtlPVEyYyhjKTtpZihlLmMubGVuZ3RoIT0wKXshIWEuZCYmYS5kLkdnKGUpO1JjKGEuYSxjLCh0RmIoMCxlLmMubGVuZ3RoKSxSRChlLmNbMF0sMjcpKSk7UmMoYS5iLGMsUkQoVm1iKGUsZS5jLmxlbmd0aC0xKSwyNykpO3doaWxlKE4yYyhlKS5jLmxlbmd0aCE9MCl7ZT1OMmMoZSk7ISFhLmQmJmEuZC5HZyhlKTtSYyhhLmEsYywodEZiKDAsZS5jLmxlbmd0aCksUkQoZS5jWzBdLDI3KSkpO1JjKGEuYixjLFJEKFZtYihlLGUuYy5sZW5ndGgtMSksMjcpKX19fX1cbmZ1bmN0aW9uIGp3ZChhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2lmKCFiKXtyZXR1cm4gbnVsbH1lbHNle2lmKGM8PS0xKXtkPXZZZChiLkRoKCksLTEtYyk7aWYoWkQoZCwxMDIpKXtyZXR1cm4gUkQoZCwxOSl9ZWxzZXtnPVJEKGIuTWgoZCksMTYwKTtmb3IoaD0wLGk9Zy5nYygpO2g8aTsrK2gpe2lmKGRFKGcuVWwoaCkpPT09ZEUoYSkpe2U9Zy5UbChoKTtpZihaRChlLDEwMikpe2Y9UkQoZSwxOSk7aWYoKGYuQmImUUhlKSE9MCl7cmV0dXJuIGZ9fX19dGhyb3cgQWRiKG5ldyBkZ2IoJ1RoZSBjb250YWlubWVudCBmZWF0dXJlIGNvdWxkIG5vdCBiZSBsb2NhdGVkJykpfX1lbHNle3JldHVybiBaNWQoUkQodllkKGEuRGgoKSxjKSwxOSkpfX19XG5mdW5jdGlvbiBMcWMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGs7Yz0wO2ZvcihoPW5ldyBBbmIoYS5kKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTA1KTshIWcuaSYmKGcuaS5jPWMrKyl9Yj1ZQyh4ZGIsW052ZSxIeWVdLFsxODMsMjhdLDE2LFtjLGNdLDIpO2s9YS5kO2ZvcihlPTA7ZTxrLmMubGVuZ3RoO2UrKyl7aT0odEZiKGUsay5jLmxlbmd0aCksUkQoay5jW2VdLDEwNSkpO2lmKGkuaSl7Zm9yKGY9ZSsxO2Y8ay5jLmxlbmd0aDtmKyspe2o9KHRGYihmLGsuYy5sZW5ndGgpLFJEKGsuY1tmXSwxMDUpKTtpZihqLmkpe2Q9UXFjKGksaik7YltpLmkuY11bai5pLmNdPWQ7YltqLmkuY11baS5pLmNdPWR9fX19cmV0dXJuIGJ9XG5mdW5jdGlvbiB1N2MoKXt1N2M9Z2ViO203Yz1uZXcgbEdkKExGZSwoR2ViKCksZmFsc2UpKTtzZ2IoLTEpO2Y3Yz1uZXcgbEdkKE1GZSxzZ2IoLTEpKTtzZ2IoLTEpO2c3Yz1uZXcgbEdkKE5GZSxzZ2IoLTEpKTtoN2M9bmV3IGxHZChPRmUsZmFsc2UpO3M3Yz0oejhjKCkseDhjKTtyN2M9bmV3IGxHZChQRmUsczdjKTt0N2M9bmV3IGxHZChRRmUsLTEpO3E3Yz0oXzZjKCksJDZjKTtwN2M9bmV3IGxHZChSRmUscTdjKTtvN2M9bmV3IGxHZChTRmUsdHJ1ZSk7bDdjPShiOWMoKSwkOGMpO2s3Yz1uZXcgbEdkKFRGZSxsN2MpO2o3Yz1uZXcgbEdkKFVGZSxmYWxzZSk7c2diKDEpO2k3Yz1uZXcgbEdkKFZGZSxzZ2IoMSkpO243Yz1uZXcgakdkKFdGZSl9XG5mdW5jdGlvbiBXWWMoKXtXWWM9Z2ViO1ZZYz1uZXcgWFljKCdST09UX1BST0MnLDApO09ZYz1uZXcgWFljKCdGQU5fUFJPQycsMSk7U1ljPW5ldyBYWWMoJ0xFVkVMX1BST0MnLDIpO1RZYz1uZXcgWFljKCdORUlHSEJPUlNfUFJPQycsMyk7UlljPW5ldyBYWWMoJ0xFVkVMX0hFSUdIVCcsNCk7TlljPW5ldyBYWWMoJ0RJUkVDVElPTl9QUk9DJyw1KTtVWWM9bmV3IFhZYygnTk9ERV9QT1NJVElPTl9QUk9DJyw2KTtMWWM9bmV3IFhZYygnQ09NUEFDVElPTl9QUk9DJyw3KTtRWWM9bmV3IFhZYygnTEVWRUxfQ09PUkRTJyw4KTtQWWM9bmV3IFhZYygnR1JBUEhfQk9VTkRTX1BST0MnLDkpO01ZYz1uZXcgWFljKCdERVRSRUVJRllJTkdfUFJPQycsMTApfVxuZnVuY3Rpb24gRmVlKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGw7bD16WWQoYik7aj1udWxsO2U9ZmFsc2U7Zm9yKGg9MCxrPXRZZChsLmEpLmk7aDxrOysraCl7Zz1SRChOX2QobCxoLChmPVJEKFFIZCh0WWQobC5hKSxoKSw4OSksaT1mLmMsWkQoaSw5MCk/UkQoaSwyOSk6KEpUZCgpLHpUZCkpKSwyOSk7Yz1GZWUoYSxnKTtpZighYy5kYygpKXtpZighail7aj1jfWVsc2V7aWYoIWUpe2U9dHJ1ZTtqPW5ldyBQU2Qoail9ai5HYyhjKX19fWQ9S2VlKGEsYik7aWYoZC5kYygpKXtyZXR1cm4gIWo/KHlvYigpLHlvYigpLHZvYik6an1lbHNle2lmKCFqKXtyZXR1cm4gZH1lbHNle2V8fChqPW5ldyBQU2QoaikpO2ouR2MoZCk7cmV0dXJuIGp9fX1cbmZ1bmN0aW9uIEdlZShhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsO2w9ellkKGIpO2o9bnVsbDtkPWZhbHNlO2ZvcihoPTAsaz10WWQobC5hKS5pO2g8azsrK2gpe2Y9UkQoTl9kKGwsaCwoZT1SRChRSGQodFlkKGwuYSksaCksODkpLGk9ZS5jLFpEKGksOTApP1JEKGksMjkpOihKVGQoKSx6VGQpKSksMjkpO2M9R2VlKGEsZik7aWYoIWMuZGMoKSl7aWYoIWope2o9Y31lbHNle2lmKCFkKXtkPXRydWU7aj1uZXcgUFNkKGopfWouR2MoYyl9fX1nPU5lZShhLGIpO2lmKGcuZGMoKSl7cmV0dXJuICFqPyh5b2IoKSx5b2IoKSx2b2IpOmp9ZWxzZXtpZighail7cmV0dXJuIGd9ZWxzZXtkfHwoaj1uZXcgUFNkKGopKTtqLkdjKGcpO3JldHVybiBqfX19XG5mdW5jdGlvbiBfZmUoYSxiLGMpe3ZhciBkLGUsZixnLGgsaTtpZihaRChiLDc2KSl7cmV0dXJuIHJMZChhLGIsYyl9ZWxzZXtoPW51bGw7Zj1udWxsO2Q9UkQoYS5nLDEyNCk7Zm9yKGc9MDtnPGEuaTsrK2cpe2U9ZFtnXTtpZihwYihiLGUubWQoKSkpe2Y9ZS5MaygpO2lmKFpEKGYsMTAyKSYmKFJEKGYsMTkpLkJiJlFIZSkhPTApe2g9ZTticmVha319fWlmKGgpe2lmKE12ZChhLmUpKXtpPWYuSmsoKT9mZ2UoYSw0LGYsYixudWxsLGtnZShhLGYsYixaRChmLDEwMikmJihSRChmLDE5KS5CYiZ0eGUpIT0wKSx0cnVlKTpmZ2UoYSxmLnRrKCk/MjoxLGYsYixmLmlrKCksLTEsdHJ1ZSk7Yz9jLm5qKGkpOihjPWkpfWM9X2ZlKGEsaCxjKX1yZXR1cm4gY319XG5mdW5jdGlvbiB5Z2UoYSxiLGMpe3ZhciBkLGUsZixnO2c9cGtlKGEuZS5EaCgpLGIpO2Q9UkQoYS5nLDEyNCk7bmtlKCk7aWYoUkQoYiw2OSkueGsoKSl7Zm9yKGY9MDtmPGEuaTsrK2Ype2U9ZFtmXTtpZihnLmFtKGUuTGsoKSkpe2lmKHBiKGUsYykpe3ZMZChhLGYpO3JldHVybiB0cnVlfX19fWVsc2UgaWYoYyE9bnVsbCl7Zm9yKGY9MDtmPGEuaTsrK2Ype2U9ZFtmXTtpZihnLmFtKGUuTGsoKSkpe2lmKHBiKGMsZS5tZCgpKSl7dkxkKGEsZik7cmV0dXJuIHRydWV9fX19ZWxzZXtmb3IoZj0wO2Y8YS5pOysrZil7ZT1kW2ZdO2lmKGcuYW0oZS5MaygpKSl7aWYoZS5tZCgpPT1udWxsKXt2TGQoYSxmKTtyZXR1cm4gdHJ1ZX19fX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiB4Y2MoYSxiKXt2YXIgYyxkLGUsZixnO2IuVWcoJ05vZGUgYW5kIFBvcnQgTGFiZWwgUGxhY2VtZW50IGFuZCBOb2RlIFNpemluZycsMSk7REpiKChpMWIoKSxuZXcgdDFiKGEsdHJ1ZSx0cnVlLG5ldyBBY2MpKSk7aWYoUkQobVFiKGEsKFl3YygpLGt3YykpLDIxKS5IYygob3ZjKCksaHZjKSkpe2Y9UkQobVFiKGEsKHlDYygpLEVCYykpLDIxKTtlPWYuSGMoKFBvZCgpLE1vZCkpO2c9SGViKFREKG1RYihhLEZCYykpKTtmb3IoZD1uZXcgQW5iKGEuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDMwKTtGRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGMuYSwxNikpLG5ldyBDY2MpLG5ldyBFY2MoZixlLGcpKX19Yi5WZygpfVxuZnVuY3Rpb24gU0hjKGEsYil7dmFyIGMsZCxlLGYsZzthLmM9PW51bGx8fGEuYy5sZW5ndGg8Yi5jLmxlbmd0aD8oYS5jPSRDKHhkYixIeWUsMjgsYi5jLmxlbmd0aCwxNiwxKSk6Tm5iKGEuYyk7YS5hPW5ldyBibmI7ZD0wO2ZvcihnPW5ldyBBbmIoYik7Zy5hPGcuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGcpLDEwKTtlLnA9ZCsrfWM9bmV3IFl1Yjtmb3IoZj1uZXcgQW5iKGIpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMCk7aWYoIWEuY1tlLnBdKXtUSGMoYSxlKTtjLmI9PTB8fChzRmIoYy5iIT0wKSxSRChjLmEuYS5jLDE1KSkuZ2MoKTxhLmEuYy5sZW5ndGg/TnViKGMsYS5hKTpPdWIoYyxhLmEpO2EuYT1uZXcgYm5ifX1yZXR1cm4gY31cbmZ1bmN0aW9uIFVjZChhKXtDZ2QoYSxuZXcgUGZkKCRmZChYZmQoWmZkKFlmZChuZXcgYWdkLHVHZSksJ0VMSyBTUE9yRSBPdmVybGFwIFJlbW92YWwnKSwnQSBub2RlIG92ZXJsYXAgcmVtb3ZhbCBhbGdvcml0aG0gcHJvcG9zZWQgYnkgTmFjaG1hbnNvbiBldCBhbC4gaW4gXCJOb2RlIG92ZXJsYXAgcmVtb3ZhbCBieSBncm93aW5nIGEgdHJlZVwiLicpLG5ldyBYY2QpKSk7QWdkKGEsdUdlLGlHZSxpR2QoU2NkKSk7QWdkKGEsdUdlLEV6ZSxRY2QpO0FnZChhLHVHZSxfemUsOCk7QWdkKGEsdUdlLG5HZSxpR2QoUmNkKSk7QWdkKGEsdUdlLHFHZSxpR2QoT2NkKSk7QWdkKGEsdUdlLHJHZSxpR2QoUGNkKSk7QWdkKGEsdUdlLExEZSwoR2ViKCksZmFsc2UpKX1cbmZ1bmN0aW9uIERlZShhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2M9Yi5xaShhLmEpO2lmKGMpe2k9V0QoJE5kKCghYy5iJiYoYy5iPW5ldyBTVmQoKEpUZCgpLEZUZCksQzgsYykpLGMuYiksY0xlKSk7aWYoaSE9bnVsbCl7ZD1uZXcgYm5iO2ZvcihmPXZoYihpLCdcXFxcdycpLGc9MCxoPWYubGVuZ3RoO2c8aDsrK2cpe2U9ZltnXTtsaGIoZSwnIyNvdGhlcicpP1JtYihkLCchIyMnK1VlZShhLEJYZChiLnFrKCkpKSk6bGhiKGUsJyMjbG9jYWwnKT8oZC5jLnB1c2gobnVsbCksdW5kZWZpbmVkLHRydWUpOmxoYihlLGFMZSk/Um1iKGQsVWVlKGEsQlhkKGIucWsoKSkpKTooWkViKGQuYyxlKSx0cnVlKX1yZXR1cm4gZH19cmV0dXJuIHlvYigpLHlvYigpLHZvYn1cbmZ1bmN0aW9uIHUkYihhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbjtnPVppZChiLmMsYyxkKTtmb3IobD1uZXcgQW5iKGIuYSk7bC5hPGwuYy5jLmxlbmd0aDspe2s9UkQoeW5iKGwpLDEwKTskaWQoay5uLGcpO2ZvcihuPW5ldyBBbmIoay5qKTtuLmE8bi5jLmMubGVuZ3RoOyl7bT1SRCh5bmIobiksMTIpO2ZvcihmPW5ldyBBbmIobS5nKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTgpO0NqZChlLmEsZyk7aD1SRChtUWIoZSwoeUNjKCksUkFjKSksNzUpOyEhaCYmQ2pkKGgsZyk7Zm9yKGo9bmV3IEFuYihlLmIpO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSw3Mik7JGlkKGkubixnKX19fVJtYihhLmEsayk7ay5hPWF9fVxuZnVuY3Rpb24gd1liKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk7aWYoYS5kKXt0aHJvdyBBZGIobmV3IGRnYigobGZiKGVRKSxseWUrZVEuaytteWUpKSl9YS5jPT0oQ21kKCksQW1kKSYmdlliKGEseW1kKTtmb3IoYz1uZXcgQW5iKGEuYS5hKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMTk0KTtiLmU9MH1mb3IoZz1uZXcgQW5iKGEuYS5iKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksODYpO2Yubz1weGU7Zm9yKGU9Zi5mLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksODYpOysrZC5kLmV9fUxZYihhKTtmb3IoaT1uZXcgQW5iKGEuYS5iKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksODYpO2guaz10cnVlfXJldHVybiBhfVxuZnVuY3Rpb24gbW5jKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksajtoPW5ldyBWbWMoYSk7Yz1uZXcgWXViO1B1YihjLGIsYy5jLmIsYy5jKTt3aGlsZShjLmIhPTApe2Q9UkQoYy5iPT0wP251bGw6KHNGYihjLmIhPTApLFd1YihjLGMuYS5hKSksMTEzKTtkLmQucD0xO2ZvcihnPW5ldyBBbmIoZC5lKTtnLmE8Zy5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZyksMzQwKTtRbWMoaCxlKTtqPWUuZDtqLmQucD09MCYmKFB1YihjLGosYy5jLmIsYy5jKSx0cnVlKX1mb3IoZj1uZXcgQW5iKGQuYik7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDM0MCk7UW1jKGgsZSk7aT1lLmM7aS5kLnA9PTAmJihQdWIoYyxpLGMuYy5iLGMuYyksdHJ1ZSl9fXJldHVybiBofVxuZnVuY3Rpb24ga3NkKGEpe3ZhciBiLGMsZCxlLGY7ZD1LZmIoVUQoR3hkKGEsKHVtZCgpLFVsZCkpKSk7aWYoZD09MSl7cmV0dXJufXp5ZChhLGQqYS5nLGQqYS5mKTtjPWNyKGhyKCghYS5jJiYoYS5jPW5ldyBDNWQoSzQsYSw5LDkpKSxhLmMpLG5ldyBMc2QpKTtmb3IoZj1GbChBbChjRChXQyhjSiwxKSxydmUsMjAsMCxbKCFhLm4mJihhLm49bmV3IEM1ZChJNCxhLDEsNykpLGEubiksKCFhLmMmJihhLmM9bmV3IEM1ZChLNCxhLDksOSkpLGEuYyksY10pKSk7Z3MoZik7KXtlPVJEKGhzKGYpLDQyMik7ZS5xaChkKmUubmgoKSxkKmUub2goKSk7ZS5waChkKmUubWgoKSxkKmUubGgoKSk7Yj1SRChlLm9mKEZsZCksOCk7aWYoYil7Yi5hKj1kO2IuYio9ZH19fVxuZnVuY3Rpb24gUWZlKGEsYixjKXt2YXIgZCxlLGYsZyxoO2c9KG5rZSgpLFJEKGIsNjkpLnhrKCkpO2lmKHFrZShhLmUsYikpe2lmKGIuU2koKSYmZGdlKGEsYixjLFpEKGIsMTAyKSYmKFJEKGIsMTkpLkJiJnR4ZSkhPTApKXtyZXR1cm4gZmFsc2V9fWVsc2V7aD1wa2UoYS5lLkRoKCksYik7ZD1SRChhLmcsMTI0KTtmb3IoZj0wO2Y8YS5pOysrZil7ZT1kW2ZdO2lmKGguYW0oZS5MaygpKSl7aWYoZz9wYihlLGMpOmM9PW51bGw/ZS5tZCgpPT1udWxsOnBiKGMsZS5tZCgpKSl7cmV0dXJuIGZhbHNlfWVsc2V7UkQoZUhkKGEsZixnP1JEKGMsNzYpOm9rZShiLGMpKSw3Nik7cmV0dXJuIHRydWV9fX19cmV0dXJuIFdHZChhLGc/UkQoYyw3Nik6b2tlKGIsYykpfVxuZnVuY3Rpb24gX2RjKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbTtmb3IoZz1uZXcgQW5iKGEuYik7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDMwKTttPXQyYihmLmEpO2ZvcihqPW0saz0wLGw9ai5sZW5ndGg7azxsOysrayl7aT1qW2tdO3N3aXRjaChSRChtUWIoaSwoeUNjKCksVUFjKSksMTcxKS5nKXtjYXNlIDE6ZGVjKGkpO2czYihpLGIpO2FlYyhpLHRydWUsZCk7YnJlYWs7Y2FzZSAzOmVlYyhpKTtnM2IoaSxjKTthZWMoaSxmYWxzZSxlKTt9fX1oPW5ldyBKa2IoYS5iLDApO3doaWxlKGguYjxoLmQuZ2MoKSl7KHNGYihoLmI8aC5kLmdjKCkpLFJEKGguZC5YYihoLmM9aC5iKyspLDMwKSkuYS5jLmxlbmd0aD09MCYmQ2tiKGgpfX1cbmZ1bmN0aW9uIG1qYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscTtuPWIubGVuZ3RoO2k9bjtCRmIoMCxiLmxlbmd0aCk7aWYoYi5jaGFyQ29kZUF0KDApPT00NSl7bD0tMTttPTE7LS1ufWVsc2V7bD0xO209MH1mPSh4amIoKSx3amIpWzEwXTtlPW4vZnwwO3E9biVmO3EhPTAmJisrZTtoPSRDKGtFLFB3ZSwyOCxlLDE1LDEpO2M9dmpiWzhdO2c9MDtvPW0rKHE9PTA/ZjpxKTtmb3IocD1tO3A8aTtwPW8sbz1wK2Ype2Q9T2ViKChBRmIocCxvLGIubGVuZ3RoKSxiLnN1YnN0cihwLG8tcCkpLHF3ZSxsdmUpO2o9KExqYigpLFBqYihoLGgsZyxjKSk7ais9RmpiKGgsZyxkKTtoW2crK109an1rPWc7YS5lPWw7YS5kPWs7YS5hPWg7UmliKGEpfVxuZnVuY3Rpb24gYlBiKGEsYil7dmFyIGMsZCxlLGY7Yz1uZXcgZ1BiO2Q9UkQoekRiKEdEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmYsMTYpKSxjKSxzQmIobmV3IF9CYixuZXcgYkNiLG5ldyB5Q2IsbmV3IEFDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsWyh4QmIoKSx3QmIpLHZCYl0pKSksMjEpO2U9ZC5nYygpO2Q9UkQoekRiKEdEYihuZXcgU0RiKG51bGwsbmV3IFN3YihiLmYsMTYpKSxjKSxzQmIobmV3IF9CYixuZXcgYkNiLG5ldyB5Q2IsbmV3IEFDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsW3dCYix2QmJdKSkpLDIxKTtmPWQuZ2MoKTtlPWU9PTE/MTowO2Y9Zj09MT8xOjA7aWYoZTxmKXtyZXR1cm4gLTF9aWYoZT09Zil7cmV0dXJuIDB9cmV0dXJuIDF9XG5mdW5jdGlvbiBwMGIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtO2g9YS5pO2U9SGViKFREKG1RYihoLCh5Q2MoKSxOQWMpKSkpO2s9MDtkPTA7Zm9yKGo9bmV3IEFuYihhLmcpO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwxOCk7Zz1XMGIoaSk7Zj1nJiZlJiZIZWIoVEQobVFiKGksT0FjKSkpO209aS5kLmk7ZyYmZj8rK2Q6ZyYmIWY/KytrOlkyYihtKS5lPT1oPysrZDorK2t9Zm9yKGM9bmV3IEFuYihhLmUpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwxOCk7Zz1XMGIoYik7Zj1nJiZlJiZIZWIoVEQobVFiKGIsT0FjKSkpO2w9Yi5jLmk7ZyYmZj8rK2s6ZyYmIWY/KytkOlkyYihsKS5lPT1oPysrazorK2R9cmV0dXJuIGstZH1cbmZ1bmN0aW9uIHNRYyhhLGIsYyxkKXt0aGlzLmU9YTt0aGlzLms9UkQobVFiKGEsKFl3YygpLFF3YykpLDMxMik7dGhpcy5nPSRDKGpSLFdBZSwxMCxiLDAsMSk7dGhpcy5iPSRDKFZJLE52ZSwzNDUsYiw3LDEpO3RoaXMuYT0kQyhqUixXQWUsMTAsYiwwLDEpO3RoaXMuZD0kQyhWSSxOdmUsMzQ1LGIsNywxKTt0aGlzLmo9JEMoalIsV0FlLDEwLGIsMCwxKTt0aGlzLmk9JEMoVkksTnZlLDM0NSxiLDcsMSk7dGhpcy5wPSRDKFZJLE52ZSwzNDUsYiw3LDEpO3RoaXMubj0kQyhRSSxOdmUsNDg1LGIsOCwxKTtNbmIodGhpcy5uLChHZWIoKSxmYWxzZSkpO3RoaXMuZj0kQyhRSSxOdmUsNDg1LGIsOCwxKTtNbmIodGhpcy5mLHRydWUpO3RoaXMubz1jO3RoaXMuYz1kfVxuZnVuY3Rpb24gbWRjKGEsYil7dmFyIGMsZCxlLGYsZyxoO2lmKGIuZGMoKSl7cmV0dXJufWlmKFJEKGIuWGIoMCksMjkzKS5kPT0oYnRjKCksJHNjKSl7ZGRjKGEsYil9ZWxzZXtmb3IoZD1iLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMjkzKTtzd2l0Y2goYy5kLmcpe2Nhc2UgNTpfY2MoYSxjLGZkYyhhLGMpKTticmVhaztjYXNlIDA6X2NjKGEsYywoZz1jLmYtYy5jKzEsaD0oZy0xKS8yfDAsYy5jK2gpKTticmVhaztjYXNlIDQ6X2NjKGEsYyxoZGMoYSxjKSk7YnJlYWs7Y2FzZSAyOm5kYyhjKTtfY2MoYSxjLChmPWpkYyhjKSxmP2MuYzpjLmYpKTticmVhaztjYXNlIDE6bmRjKGMpO19jYyhhLGMsKGU9amRjKGMpLGU/Yy5mOmMuYykpO31lZGMoYy5hKX19fVxuZnVuY3Rpb24genQoYSxiLGMsZCl7dmFyIGUsZixnO2c9bmV3IEh1KGIsYyk7aWYoIWEuYSl7YS5hPWEuZT1nO1pqYihhLmIsYixuZXcgR3UoZykpOysrYS5jfWVsc2UgaWYoIWQpe1JEKEh2YihhLmUpLDUxMSkuYj1nO2cuZD1hLmU7YS5lPWc7ZT1SRChXamIoYS5iLGIpLDI2MCk7aWYoIWUpe1pqYihhLmIsYixlPW5ldyBHdShnKSk7KythLmN9ZWxzZXsrK2UuYTtmPWUuYztmLmM9ZztnLmU9ZjtlLmM9Z319ZWxzZXtlPVJEKEh2YihSRChXamIoYS5iLGIpLDI2MCkpLDI2MCk7KytlLmE7Zy5kPWQuZDtnLmU9ZC5lO2cuYj1kO2cuYz1kOyFkLmU/KGUuYj1nKTooZC5lLmM9Zyk7IWQuZD8oYS5hPWcpOihkLmQuYj1nKTtkLmQ9ZztkLmU9Z30rK2EuZDtyZXR1cm4gZ31cbmZ1bmN0aW9uIGxKYihhLGIpe3ZhciBjLGQsZSxmLGc7Yi5VZygnTmV0d29yayBzaW1wbGV4JywxKTtpZihhLmUuYS5jLmxlbmd0aDwxKXtiLlZnKCk7cmV0dXJufWZvcihmPW5ldyBBbmIoYS5lLmEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMjUpO2UuZT0wfWc9YS5lLmEuYy5sZW5ndGg+PTQwO2cmJndKYihhKTtuSmIoYSk7bUpiKGEpO2M9cUpiKGEpO2Q9MDt3aGlsZSghIWMmJmQ8YS5mKXtrSmIoYSxjLGpKYihhLGMpKTtjPXFKYihhKTsrK2R9ZyYmdkpiKGEpO2EuYT9oSmIoYSx0SmIoYSkpOnRKYihhKTthLmI9bnVsbDthLmQ9bnVsbDthLnA9bnVsbDthLmM9bnVsbDthLmc9bnVsbDthLmk9bnVsbDthLm49bnVsbDthLm89bnVsbDtiLlZnKCl9XG5mdW5jdGlvbiBUN2IoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtpZihiLmUpe3JldHVybn1iLmU9dHJ1ZTtmb3IoZD1iLmQuYS5lYygpLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMTgpO2lmKGIubyYmYi5kLmEuZ2MoKTw9MSl7Zz1iLmEuYztoPWIuYS5jK2IuYS5iO2k9bmV3IHJqZChnKyhoLWcpLzIsYi5iKTtNdWIoUkQoYi5kLmEuZWMoKS5LYygpLlBiKCksMTgpLmEsaSk7Y29udGludWV9ZT1SRChXamIoYi5jLGMpLDQ2OCk7aWYoZS5ifHxlLmMpe1Y3YihhLGMsYik7Y29udGludWV9Zj1hLmQ9PShsRmMoKSxrRmMpJiYoZS5kfHxlLmUpJiZfN2IoYSxiKSYmYi5kLmEuZ2MoKTw9MTtmP1c3YihjLGIpOlU3YihhLGMsYil9Yi5rJiZ4Z2IoYi5kLG5ldyBtOGIpfVxuZnVuY3Rpb24gQTVjKGEsYixjLGQsZSxmKXt2YXIgZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0O209ZjtoPShkK2UpLzIrbTtxPWMqJHduZC5NYXRoLmNvcyhoKTtyPWMqJHduZC5NYXRoLnNpbihoKTtzPXEtYi5nLzI7dD1yLWIuZi8yO0R5ZChiLHMpO0V5ZChiLHQpO2w9YS5hLkVnKGIpO3A9Miokd25kLk1hdGguYWNvcyhjL2MrYS5jKTtpZihwPGUtZCl7bj1wL2w7Zz0oZCtlLXApLzJ9ZWxzZXtuPShlLWQpL2w7Zz1kfW89UTJjKGIpO2lmKGEuZSl7YS5lLkZnKGEuZCk7YS5lLkdnKG8pfWZvcihqPW5ldyBBbmIobyk7ai5hPGouYy5jLmxlbmd0aDspe2k9UkQoeW5iKGopLDI3KTtrPWEuYS5FZyhpKTtBNWMoYSxpLGMrYS5jLGcsZytuKmssZik7Zys9biprfX1cbmZ1bmN0aW9uIHpBKGEsYixjKXt2YXIgZDtkPWMucS5nZXRNb250aCgpO3N3aXRjaChiKXtjYXNlIDU6WmhiKGEsY0QoV0MocUosMSksTnZlLDIsNixbJ0onLCdGJywnTScsJ0EnLCdNJywnSicsJ0onLCdBJywnUycsJ08nLCdOJywnRCddKVtkXSk7YnJlYWs7Y2FzZSA0OlpoYihhLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0N3ZSxEd2UsRXdlLEZ3ZSxHd2UsSHdlLEl3ZSxKd2UsS3dlLEx3ZSxNd2UsTndlXSlbZF0pO2JyZWFrO2Nhc2UgMzpaaGIoYSxjRChXQyhxSiwxKSxOdmUsMiw2LFsnSmFuJywnRmViJywnTWFyJywnQXByJyxHd2UsJ0p1bicsJ0p1bCcsJ0F1ZycsJ1NlcCcsJ09jdCcsJ05vdicsJ0RlYyddKVtkXSk7YnJlYWs7ZGVmYXVsdDpVQShhLGQrMSxiKTt9fVxuZnVuY3Rpb24gQVRiKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbTtpPW5ldyByamQoYyxkKTtvamQoaSxSRChtUWIoYiwoSlZiKCksR1ZiKSksOCkpO2ZvcihtPW5ldyBBbmIoYi5lKTttLmE8bS5jLmMubGVuZ3RoOyl7bD1SRCh5bmIobSksMTUzKTskaWQobC5kLGkpO1JtYihhLmUsbCl9Zm9yKGg9bmV3IEFuYihiLmMpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwyOTApO2ZvcihmPW5ldyBBbmIoZy5hKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMjUwKTskaWQoZS5kLGkpfVJtYihhLmMsZyl9Zm9yKGs9bmV3IEFuYihiLmQpO2suYTxrLmMuYy5sZW5ndGg7KXtqPVJEKHluYihrKSw0NTQpOyRpZChqLmQsaSk7Um1iKGEuZCxqKX19XG5mdW5jdGlvbiBURmMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2ZvcihpPW5ldyBBbmIoYi5qKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksMTIpO2ZvcihlPW5ldyBsNGIoaC5iKTt4bmIoZS5hKXx8eG5iKGUuYik7KXtkPVJEKHhuYihlLmEpP3luYihlLmEpOnluYihlLmIpLDE4KTtjPWQuYz09aD9kLmQ6ZC5jO2Y9Yy5pO2lmKGI9PWYpe2NvbnRpbnVlfWo9UkQobVFiKGQsKHlDYygpLEtCYykpLDE3KS5hO2o8MCYmKGo9MCk7Zz1mLnA7aWYoYS5iW2ddPT0wKXtpZihkLmQ9PWMpe2EuYVtnXS09aisxO2EuYVtnXTw9MCYmYS5jW2ddPjAmJk11YihhLmYsZil9ZWxzZXthLmNbZ10tPWorMTthLmNbZ108PTAmJmEuYVtnXT4wJiZNdWIoYS5lLGYpfX19fX1cbmZ1bmN0aW9uIEZWYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosaztpPW5ldyByamQoYyxkKTtvamQoaSxSRChtUWIoYiwocSRjKCksU1pjKSksOCkpO2ZvcihrPVN1YihiLmIsMCk7ay5iIT1rLmQuYzspe2o9UkQoZXZiKGspLDQwKTskaWQoai5lLGkpO011YihhLmIsail9Zm9yKGg9UkQoekRiKEJEYihuZXcgU0RiKG51bGwsbmV3IFN3YihiLmEsMTYpKSksdEJiKG5ldyBaQmIsbmV3IFhCYixuZXcgd0NiLGNEKFdDKFFMLDEpLGp3ZSwxMDgsMCxbKHhCYigpLHZCYildKSkpLDE1KS5LYygpO2guT2IoKTspe2c9UkQoaC5QYigpLDY1KTtmb3IoZj1TdWIoZy5hLDApO2YuYiE9Zi5kLmM7KXtlPVJEKGV2YihmKSw4KTtlLmErPWkuYTtlLmIrPWkuYn1NdWIoYS5hLGcpfX1cbmZ1bmN0aW9uIGtXYyhhLGIpe3ZhciBjLGQsZSxmO2lmKDA8KFpEKGEsMTYpP1JEKGEsMTYpLmdjKCk6S3IoYS5LYygpKSkpe2U9YjtpZigxPGUpey0tZTtmPW5ldyB1V2M7Zm9yKGQ9YS5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDQwKTtmPUFsKGNEKFdDKGNKLDEpLHJ2ZSwyMCwwLFtmLG5ldyBkWGMoYyldKSl9cmV0dXJuIGtXYyhmLGUpfWlmKGU8MCl7Zj1uZXcgeFdjO2ZvcihkPWEuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSw0MCk7Zj1BbChjRChXQyhjSiwxKSxydmUsMjAsMCxbZixuZXcgZFhjKGMpXSkpfWlmKDA8KFpEKGYsMTYpP1JEKGYsMTYpLmdjKCk6S3IoZi5LYygpKSkpe3JldHVybiBrV2MoZixlKX19fXJldHVybiBSRChIcihhLktjKCkpLDQwKX1cbmZ1bmN0aW9uIHYwYyhhLGIsYyl7dmFyIGQsZSxmLGc7Yy5VZygnUHJvY2Vzc29yIG9yZGVyIG5vZGVzJywyKTthLmI9S2ZiKFVEKG1RYihiLChoX2MoKSxfJGMpKSkpO2EuYT1SRChtUWIoYixIJGMpLDg4KTtpZihhLmE9PShDbWQoKSxBbWQpKXthLmE9eG1kO3BRYihiLEgkYyxhLmEpfWU9bmV3IFl1Yjtmb3IoZz1TdWIoYi5iLDApO2cuYiE9Zy5kLmM7KXtmPVJEKGV2YihnKSw0MCk7SGViKFREKG1RYihmLChxJGMoKSxuJGMpKSkpJiYoUHViKGUsZixlLmMuYixlLmMpLHRydWUpfWQ9KHNGYihlLmIhPTApLFJEKGUuYS5hLmMsNDApKTt0MGMoYSxkKTtjLmZoKDEpO3cwYyhhLGQsMC1LZmIoVUQobVFiKGQsKHEkYygpLGQkYykpKSkvMiwwKTtjLmZoKDEpO2MuVmcoKX1cbmZ1bmN0aW9uIGRxZCgpe2RxZD1nZWI7WXBkPW5ldyBlcWQoJ0RFRkFVTFRfTUlOSU1VTV9TSVpFJywwKTskcGQ9bmV3IGVxZCgnTUlOSU1VTV9TSVpFX0FDQ09VTlRTX0ZPUl9QQURESU5HJywxKTtYcGQ9bmV3IGVxZCgnQ09NUFVURV9QQURESU5HJywyKTtfcGQ9bmV3IGVxZCgnT1VUU0lERV9OT0RFX0xBQkVMU19PVkVSSEFORycsMyk7YXFkPW5ldyBlcWQoJ1BPUlRTX09WRVJIQU5HJyw0KTtjcWQ9bmV3IGVxZCgnVU5JRk9STV9QT1JUX1NQQUNJTkcnLDUpO2JxZD1uZXcgZXFkKCdTUEFDRV9FRkZJQ0lFTlRfUE9SVF9MQUJFTFMnLDYpO1pwZD1uZXcgZXFkKCdGT1JDRV9UQUJVTEFSX05PREVfTEFCRUxTJyw3KTtXcGQ9bmV3IGVxZCgnQVNZTU1FVFJJQ0FMJyw4KX1cbmZ1bmN0aW9uIFJqZShhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGo7aWYoIWIpe3JldHVybiBudWxsfWVsc2V7Yz0oZj1iLkRoKCksIWY/bnVsbDpCWGQoZikud2koKS5zaShmKSk7aWYoYyl7ZHViKGEsYixjKTtlPWIuRGgoKTtmb3IoaT0wLGo9KGUuaT09bnVsbCYmcllkKGUpLGUuaSkubGVuZ3RoO2k8ajsrK2kpe2g9KGQ9KGUuaT09bnVsbCYmcllkKGUpLGUuaSksaT49MCYmaTxkLmxlbmd0aD9kW2ldOm51bGwpO2lmKGgucmsoKSYmIWguc2soKSl7aWYoWkQoaCwzMzEpKXtUamUoYSxSRChoLDM1KSxiLGMpfWVsc2V7Zz1SRChoLDE5KTsoZy5CYiZRSGUpIT0wJiZWamUoYSxnLGIsYyl9fX1iLlZoKCkmJlJEKGMsNTQpLmVpKFJEKGIsNTQpLl9oKCkpfXJldHVybiBjfX1cbmZ1bmN0aW9uIGtKYihhLGIsYyl7dmFyIGQsZSxmO2lmKCFiLmYpe3Rocm93IEFkYihuZXcgYWdiKCdHaXZlbiBsZWF2ZSBlZGdlIGlzIG5vIHRyZWUgZWRnZS4nKSl9aWYoYy5mKXt0aHJvdyBBZGIobmV3IGFnYignR2l2ZW4gZW50ZXIgZWRnZSBpcyBhIHRyZWUgZWRnZSBhbHJlYWR5LicpKX1iLmY9ZmFsc2U7JHNiKGEucCxiKTtjLmY9dHJ1ZTtZc2IoYS5wLGMpO2Q9Yy5lLmUtYy5kLmUtYy5hO29KYihhLGMuZSxiKXx8KGQ9LWQpO2ZvcihmPW5ldyBBbmIoYS5lLmEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMjUpO29KYihhLGUsYil8fChlLmUrPWQpfWEuaj0xO05uYihhLmMpO3VKYihhLFJEKHluYihuZXcgQW5iKGEuZS5hKSksMTI1KSk7aUpiKGEpfVxuZnVuY3Rpb24gd0ljKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuO0JJYyhhLGIsYyk7Zj1iW2NdO249ZD8ocXBkKCkscHBkKToocXBkKCksWG9kKTtpZih4SWMoYi5sZW5ndGgsYyxkKSl7ZT1iW2Q/Yy0xOmMrMV07c0ljKGEsZSxkPyhCRWMoKSx6RWMpOihCRWMoKSx5RWMpKTtmb3IoaT1mLGs9MCxtPWkubGVuZ3RoO2s8bTsrK2spe2c9aVtrXTt2SWMoYSxnLG4pfXNJYyhhLGYsZD8oQkVjKCkseUVjKTooQkVjKCksekVjKSk7Zm9yKGg9ZSxqPTAsbD1oLmxlbmd0aDtqPGw7KytqKXtnPWhbal07ISFnLmV8fHZJYyhhLGcsc3BkKG4pKX19ZWxzZXtmb3IoaD1mLGo9MCxsPWgubGVuZ3RoO2o8bDsrK2ope2c9aFtqXTt2SWMoYSxnLG4pfX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBlcmQoYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbDt5b2IoKTtfbWIoYSxuZXcgVXJkKTtoPW5ldyBKa2IoYSwwKTtsPW5ldyBibmI7Zj0wO3doaWxlKGguYjxoLmQuZ2MoKSl7Zz0oc0ZiKGguYjxoLmQuZ2MoKSksUkQoaC5kLlhiKGguYz1oLmIrKyksMTYzKSk7aWYobC5jLmxlbmd0aCE9MCYmdXJkKGcpKnRyZChnKT5mKjIpe2s9bmV3IHpyZChsKTtqPXVyZChnKS90cmQoZyk7aT1pcmQoayxiLG5ldyB6M2IsYyxkLGUsaik7JGlkKGhqZChrLmUpLGkpO2wuYy5sZW5ndGg9MDtmPTA7WkViKGwuYyxrKTtaRWIobC5jLGcpO2Y9dXJkKGspKnRyZChrKSt1cmQoZykqdHJkKGcpfWVsc2V7WkViKGwuYyxnKTtmKz11cmQoZykqdHJkKGcpfX1yZXR1cm4gbH1cbmZ1bmN0aW9uIE85YihhLGIpe3ZhciBjLGQsZSxmLGcsaDtoPVJEKG1RYihiLCh5Q2MoKSxCQmMpKSwxMDEpO2lmKCEoaD09KEJvZCgpLHhvZCl8fGg9PXdvZCkpe3JldHVybn1lPShuZXcgcmpkKGIuZi5hK2IuZC5iK2IuZC5jLGIuZi5iK2IuZC5kK2IuZC5hKSkuYjtmb3IoZz1uZXcgQW5iKGEuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEwKTtpZihmLmshPShyM2IoKSxtM2IpKXtjb250aW51ZX1jPVJEKG1RYihmLChZd2MoKSxod2MpKSw2NCk7aWYoYyE9KHFwZCgpLFhvZCkmJmMhPXBwZCl7Y29udGludWV9ZD1LZmIoVUQobVFiKGYsSndjKSkpO2g9PXhvZCYmKGQqPWUpO2Yubi5iPWQtUkQobVFiKGYsekJjKSw4KS5iO1UyYihmLGZhbHNlLHRydWUpfX1cbmZ1bmN0aW9uIHVnZShhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvO2lmKE12ZChhLmUpKXtpZihiIT1jKXtlPVJEKGEuZywxMjQpO249ZVtjXTtnPW4uTGsoKTtpZihxa2UoYS5lLGcpKXtvPXBrZShhLmUuRGgoKSxnKTtpPS0xO2g9LTE7ZD0wO2ZvcihqPTAsbD1iPmM/YjpjO2o8PWw7KytqKXtpZihqPT1jKXtoPWQrK31lbHNle2Y9ZVtqXTtrPW8uYW0oZi5MaygpKTtqPT1iJiYoaT1qPT1sJiYhaz9kLTE6ZCk7ayYmKytkfX1tPVJEKHVMZChhLGIsYyksNzYpO2ghPWkmJmVaZChhLG5ldyBjNGQoYS5lLDcsZyxzZ2IoaCksbi5tZCgpLGkpKTtyZXR1cm4gbX19fWVsc2V7cmV0dXJuIFJEKFNIZChhLGIsYyksNzYpfXJldHVybiBSRCh1TGQoYSxiLGMpLDc2KX1cbmZ1bmN0aW9uIHVnYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2IuVWcoJ1BvcnQgb3JkZXIgcHJvY2Vzc2luZycsMSk7aT1SRChtUWIoYSwoeUNjKCksSEJjKSksNDMwKTtmb3IoZD1uZXcgQW5iKGEuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDMwKTtmb3IoZj1uZXcgQW5iKGMuYSk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDEwKTtnPVJEKG1RYihlLEJCYyksMTAxKTtoPWUuajtpZihnPT0oQm9kKCksdm9kKXx8Zz09eG9kfHxnPT13b2Qpe3lvYigpO19tYihoLG1nYyl9ZWxzZSBpZihnIT16b2QmJmchPUFvZCl7eW9iKCk7X21iKGgscGdjKTt3Z2MoaCk7aT09KHNFYygpLHJFYykmJl9tYihoLG9nYyl9ZS5pPXRydWU7VjJiKGUpfX1iLlZnKCl9XG5mdW5jdGlvbiBWSGMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaTtpPW5ldyBUc2I7Yj1uZXcgQkliO2ZvcihnPWEuS2MoKTtnLk9iKCk7KXtlPVJEKGcuUGIoKSwxMCk7aD1lSmIoZkpiKG5ldyBnSmIsZSksYik7cnRiKGkuZixlLGgpfWZvcihmPWEuS2MoKTtmLk9iKCk7KXtlPVJEKGYuUGIoKSwxMCk7Zm9yKGQ9bmV3IGlzKE1yKGEzYihlKS5hLktjKCksbmV3IGlyKSk7Z3MoZCk7KXtjPVJEKGhzKGQpLDE4KTtpZihXMGIoYykpe2NvbnRpbnVlfXJJYih1SWIodEliKHNJYih2SWIobmV3IHdJYiwkd25kLk1hdGgubWF4KDEsUkQobVFiKGMsKHlDYygpLExCYykpLDE3KS5hKSksMSksUkQoV2piKGksYy5jLmkpLDEyNSkpLFJEKFdqYihpLGMuZC5pKSwxMjUpKSl9fXJldHVybiBifVxuZnVuY3Rpb24gVFJjKCl7VFJjPWdlYjtPUmM9cGZkKG5ldyB1ZmQsKHNYYigpLHFYYiksKGhjYygpLEJiYykpO1FSYz1wZmQobmV3IHVmZCxwWGIsRmJjKTtSUmM9bmZkKHBmZChuZXcgdWZkLHBYYixUYmMpLHJYYixTYmMpO05SYz1uZmQocGZkKHBmZChuZXcgdWZkLHBYYix2YmMpLHFYYix3YmMpLHJYYix4YmMpO1NSYz1tZmQobWZkKHJmZChuZmQocGZkKG5ldyB1ZmQsblhiLGJjYyksclhiLGFjYykscVhiKSxfYmMpLGNjYyk7UFJjPW5mZChuZXcgdWZkLHJYYixDYmMpO0xSYz1uZmQocGZkKHBmZChwZmQobmV3IHVmZCxvWGIsSWJjKSxxWGIsS2JjKSxxWGIsTGJjKSxyWGIsSmJjKTtNUmM9bmZkKHBmZChwZmQobmV3IHVmZCxxWGIsTGJjKSxxWGIscWJjKSxyWGIscGJjKX1cbmZ1bmN0aW9uIGxEKGEsYixjLGQsZSxmKXt2YXIgZyxoLGksaixrLGwsbTtqPW9EKGIpLW9EKGEpO2c9QUQoYixqKTtpPWhEKDAsMCwwKTt3aGlsZShqPj0wKXtoPXJEKGEsZyk7aWYoaCl7ajwyMj8oaS5sfD0xPDxqLHVuZGVmaW5lZCk6ajw0ND8oaS5tfD0xPDxqLTIyLHVuZGVmaW5lZCk6KGkuaHw9MTw8ai00NCx1bmRlZmluZWQpO2lmKGEubD09MCYmYS5tPT0wJiZhLmg9PTApe2JyZWFrfX1rPWcubTtsPWcuaDttPWcubDtnLmg9bD4+PjE7Zy5tPWs+Pj4xfChsJjEpPDwyMTtnLmw9bT4+PjF8KGsmMSk8PDIxOy0tan1jJiZuRChpKTtpZihmKXtpZihkKXtlRD14RChhKTtlJiYoZUQ9REQoZUQsKE1EKCksS0QpKSl9ZWxzZXtlRD1oRChhLmwsYS5tLGEuaCl9fXJldHVybiBpfVxuZnVuY3Rpb24gckljKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGw7aj1hLmVbYi5jLnBdW2IucF0rMTtpPWIuYy5hLmMubGVuZ3RoKzE7Zm9yKGg9bmV3IEFuYihhLmEpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMik7bD0wO2Y9MDtmb3IoZT1GbChBbChjRChXQyhjSiwxKSxydmUsMjAsMCxbbmV3IFQzYihnKSxuZXcgXzNiKGcpXSkpKTtncyhlKTspe2Q9UkQoaHMoZSksMTIpO2lmKGQuaS5jPT1iLmMpe2wrPUFJYyhhLGQuaSkrMTsrK2Z9fWM9bC9mO2s9Zy5qO2s9PShxcGQoKSxYb2QpP2M8aj8oYS5mW2cucF09YS5jLWMpOihhLmZbZy5wXT1hLmIrKGktYykpOms9PXBwZCYmKGM8aj8oYS5mW2cucF09YS5iK2MpOihhLmZbZy5wXT1hLmMtKGktYykpKX19XG5mdW5jdGlvbiBPZWIoYSxiLGMpe3ZhciBkLGUsZixnLGg7aWYoYT09bnVsbCl7dGhyb3cgQWRiKG5ldyBWZ2IodnZlKSl9Zj1hLmxlbmd0aDtnPWY+MCYmKEJGYigwLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoMCk9PTQ1fHwoQkZiKDAsYS5sZW5ndGgpLGEuY2hhckNvZGVBdCgwKT09NDMpKT8xOjA7Zm9yKGQ9ZztkPGY7ZCsrKXtpZihkZmIoKEJGYihkLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoZCkpKT09LTEpe3Rocm93IEFkYihuZXcgVmdiKG54ZSthKydcIicpKX19aD1wYXJzZUludChhLDEwKTtlPWg8YjtpZihpc05hTihoKSl7dGhyb3cgQWRiKG5ldyBWZ2IobnhlK2ErJ1wiJykpfWVsc2UgaWYoZXx8aD5jKXt0aHJvdyBBZGIobmV3IFZnYihueGUrYSsnXCInKSl9cmV0dXJuIGh9XG5mdW5jdGlvbiBKcWMoYSl7dmFyIGIsYyxkLGUsZixnLGg7Zz1uZXcgWXViO2ZvcihmPW5ldyBBbmIoYS5hKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTE4KTtQU2MoZSxlLmYuYy5sZW5ndGgpO1FTYyhlLGUuay5jLmxlbmd0aCk7aWYoZS5pPT0wKXtlLm89MDtQdWIoZyxlLGcuYy5iLGcuYyl9fXdoaWxlKGcuYiE9MCl7ZT1SRChnLmI9PTA/bnVsbDooc0ZiKGcuYiE9MCksV3ViKGcsZy5hLmEpKSwxMTgpO2Q9ZS5vKzE7Zm9yKGM9bmV3IEFuYihlLmYpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwxMzIpO2g9Yi5hO1JTYyhoLCR3bmQuTWF0aC5tYXgoaC5vLGQpKTtRU2MoaCxoLmktMSk7aC5pPT0wJiYoUHViKGcsaCxnLmMuYixnLmMpLHRydWUpfX19XG5mdW5jdGlvbiBHZWQoYSl7dmFyIGIsYyxkLGUsZixnLGgsaTtmb3IoZz1uZXcgQW5iKGEpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSw3NCk7ZD1BR2QoUkQoUUhkKCghZi5iJiYoZi5iPW5ldyBZaWUoRTQsZiw0LDcpKSxmLmIpLDApLDg0KSk7aD1kLmk7aT1kLmo7ZT1SRChRSGQoKCFmLmEmJihmLmE9bmV3IEM1ZChGNCxmLDYsNikpLGYuYSksMCksMTY2KTtOemQoZSxlLmoraCxlLmsraSk7R3pkKGUsZS5iK2gsZS5jK2kpO2ZvcihjPW5ldyBkTWQoKCFlLmEmJihlLmE9bmV3IFhaZChENCxlLDUpKSxlLmEpKTtjLmUhPWMuaS5nYygpOyl7Yj1SRChiTWQoYyksMzc3KTtVeGQoYixiLmEraCxiLmIraSl9QmpkKFJEKEd4ZChmLCh1bWQoKSxjbGQpKSw3NSksaCxpKX19XG5mdW5jdGlvbiBFcmUoYSl7dmFyIGI7c3dpdGNoKGEpe2Nhc2UgMTAwOnJldHVybiBKcmUoT0xlLHRydWUpO2Nhc2UgNjg6cmV0dXJuIEpyZShPTGUsZmFsc2UpO2Nhc2UgMTE5OnJldHVybiBKcmUoUExlLHRydWUpO2Nhc2UgODc6cmV0dXJuIEpyZShQTGUsZmFsc2UpO2Nhc2UgMTE1OnJldHVybiBKcmUoUUxlLHRydWUpO2Nhc2UgODM6cmV0dXJuIEpyZShRTGUsZmFsc2UpO2Nhc2UgOTk6cmV0dXJuIEpyZShSTGUsdHJ1ZSk7Y2FzZSA2NzpyZXR1cm4gSnJlKFJMZSxmYWxzZSk7Y2FzZSAxMDU6cmV0dXJuIEpyZShTTGUsdHJ1ZSk7Y2FzZSA3MzpyZXR1cm4gSnJlKFNMZSxmYWxzZSk7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IHl6KChiPWEsTkxlK2IudG9TdHJpbmcoMTYpKSkpO319XG5mdW5jdGlvbiBiX2IoYSl7dmFyIGIsYyxkLGUsZjtlPVJEKFZtYihhLmEsMCksMTApO2I9bmV3IGozYihhKTtSbWIoYS5hLGIpO2Iuby5hPSR3bmQuTWF0aC5tYXgoMSxlLm8uYSk7Yi5vLmI9JHduZC5NYXRoLm1heCgxLGUuby5iKTtiLm4uYT1lLm4uYTtiLm4uYj1lLm4uYjtzd2l0Y2goUkQobVFiKGUsKFl3YygpLGh3YykpLDY0KS5nKXtjYXNlIDQ6Yi5uLmErPTI7YnJlYWs7Y2FzZSAxOmIubi5iKz0yO2JyZWFrO2Nhc2UgMjpiLm4uYS09MjticmVhaztjYXNlIDM6Yi5uLmItPTI7fWQ9bmV3IFIzYjtQM2IoZCxiKTtjPW5ldyBhMWI7Zj1SRChWbWIoZS5qLDApLDEyKTtZMGIoYyxmKTtaMGIoYyxkKTskaWQoaGpkKGQubiksZi5uKTskaWQoaGpkKGQuYSksZi5hKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIFdkYyhhLGIsYyxkLGUpe2lmKGMmJighZHx8KGEuYy1hLmImYS5hLmxlbmd0aC0xKT4xKSYmYj09MSYmUkQoYS5hW2EuYl0sMTApLms9PShyM2IoKSxuM2IpKXtRZGMoUkQoYS5hW2EuYl0sMTApLChQbmQoKSxMbmQpKX1lbHNlIGlmKGQmJighY3x8KGEuYy1hLmImYS5hLmxlbmd0aC0xKT4xKSYmYj09MSYmUkQoYS5hW2EuYy0xJmEuYS5sZW5ndGgtMV0sMTApLms9PShyM2IoKSxuM2IpKXtRZGMoUkQoYS5hW2EuYy0xJmEuYS5sZW5ndGgtMV0sMTApLChQbmQoKSxNbmQpKX1lbHNlIGlmKChhLmMtYS5iJmEuYS5sZW5ndGgtMSk9PTIpe1FkYyhSRChvbWIoYSksMTApLChQbmQoKSxMbmQpKTtRZGMoUkQob21iKGEpLDEwKSxNbmQpfWVsc2V7TmRjKGEsZSl9am1iKGEpfVxuZnVuY3Rpb24gUVZjKGEsYixjKXt2YXIgZCxlLGYsZyxoO2Y9MDtmb3IoZT1uZXcgZE1kKCghYS5hJiYoYS5hPW5ldyBDNWQoSjQsYSwxMCwxMSkpLGEuYSkpO2UuZSE9ZS5pLmdjKCk7KXtkPVJEKGJNZChlKSwyNyk7Zz0nJzsoIWQubiYmKGQubj1uZXcgQzVkKEk0LGQsMSw3KSksZC5uKS5pPT0wfHwoZz1SRChRSGQoKCFkLm4mJihkLm49bmV3IEM1ZChJNCxkLDEsNykpLGQubiksMCksMTM1KS5hKTtoPW5ldyBiWGMoZisrLGIsZyk7a1FiKGgsZCk7cFFiKGgsKHEkYygpLGgkYyksZCk7aC5lLmI9ZC5qK2QuZi8yO2guZi5hPSR3bmQuTWF0aC5tYXgoZC5nLDEpO2guZS5hPWQuaStkLmcvMjtoLmYuYj0kd25kLk1hdGgubWF4KGQuZiwxKTtNdWIoYi5iLGgpO3J0YihjLmYsZCxoKX19XG5mdW5jdGlvbiBMNWIoYSl7dmFyIGIsYyxkLGUsZjtkPVJEKG1RYihhLChZd2MoKSxBd2MpKSwyNyk7Zj1SRChHeGQoZCwoeUNjKCksbEJjKSksMTgxKS5IYygoUXBkKCksUHBkKSk7aWYoIWEuZSl7ZT1SRChtUWIoYSxrd2MpLDIxKTtiPW5ldyByamQoYS5mLmErYS5kLmIrYS5kLmMsYS5mLmIrYS5kLmQrYS5kLmEpO2lmKGUuSGMoKG92YygpLGh2YykpKXtJeGQoZCxCQmMsKEJvZCgpLHdvZCkpO0VzZChkLGIuYSxiLmIsZmFsc2UsdHJ1ZSl9ZWxzZXtIZWIoVEQoR3hkKGQsbUJjKSkpfHxFc2QoZCxiLmEsYi5iLHRydWUsdHJ1ZSl9fWY/SXhkKGQsbEJjLHhzYihQcGQpKTpJeGQoZCxsQmMsKGM9UkQobWZiKEgzKSw5KSxuZXcgRnNiKGMsUkQoV0ViKGMsYy5sZW5ndGgpLDkpLDApKSl9XG5mdW5jdGlvbiBKQShhLGIsYyl7dmFyIGQsZSxmLGc7aWYoYlswXT49YS5sZW5ndGgpe2Mubz0wO3JldHVybiB0cnVlfXN3aXRjaChpaGIoYSxiWzBdKSl7Y2FzZSA0MzplPTE7YnJlYWs7Y2FzZSA0NTplPS0xO2JyZWFrO2RlZmF1bHQ6Yy5vPTA7cmV0dXJuIHRydWU7fSsrYlswXTtmPWJbMF07Zz1IQShhLGIpO2lmKGc9PTAmJmJbMF09PWYpe3JldHVybiBmYWxzZX1pZihiWzBdPGEubGVuZ3RoJiZpaGIoYSxiWzBdKT09NTgpe2Q9Zyo2MDsrK2JbMF07Zj1iWzBdO2c9SEEoYSxiKTtpZihnPT0wJiZiWzBdPT1mKXtyZXR1cm4gZmFsc2V9ZCs9Z31lbHNle2Q9ZztkPDI0JiZiWzBdLWY8PTI/KGQqPTYwKTooZD1kJTEwMCsoZC8xMDB8MCkqNjApfWQqPWU7Yy5vPS1kO3JldHVybiB0cnVlfVxuZnVuY3Rpb24gbG5jKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksajtnPW5ldyBibmI7Zm9yKGQ9bmV3IGlzKE1yKGEzYihhLmIpLmEuS2MoKSxuZXcgaXIpKTtncyhkKTspe2M9UkQoaHMoZCksMTgpO1cwYihjKSYmUm1iKGcsbmV3IGtuYyhjLG5uYyhhLGMuYyksbm5jKGEsYy5kKSkpfWZvcihqPShmPShuZXcgZ2xiKGEuZSkpLmEudmMoKS5LYygpLG5ldyBsbGIoZikpO2ouYS5PYigpOyl7aD0oYj1SRChqLmEuUGIoKSw0NCksUkQoYi5tZCgpLDExMykpO2guZC5wPTB9Zm9yKGk9KGU9KG5ldyBnbGIoYS5lKSkuYS52YygpLktjKCksbmV3IGxsYihlKSk7aS5hLk9iKCk7KXtoPShiPVJEKGkuYS5QYigpLDQ0KSxSRChiLm1kKCksMTEzKSk7aC5kLnA9PTAmJlJtYihhLmQsbW5jKGEsaCkpfX1cbmZ1bmN0aW9uIGU1YihhKXt2YXIgYixjLGQsZSxmLGcsaDtmPU1DZChhKTtmb3IoZT1uZXcgZE1kKCghYS5lJiYoYS5lPW5ldyBZaWUoRzQsYSw3LDQpKSxhLmUpKTtlLmUhPWUuaS5nYygpOyl7ZD1SRChiTWQoZSksNzQpO2g9QUdkKFJEKFFIZCgoIWQuYyYmKGQuYz1uZXcgWWllKEU0LGQsNSw4KSksZC5jKSwwKSw4NCkpO2lmKCFOR2QoaCxmKSl7cmV0dXJuIHRydWV9fWZvcihjPW5ldyBkTWQoKCFhLmQmJihhLmQ9bmV3IFlpZShHNCxhLDgsNSkpLGEuZCkpO2MuZSE9Yy5pLmdjKCk7KXtiPVJEKGJNZChjKSw3NCk7Zz1BR2QoUkQoUUhkKCghYi5iJiYoYi5iPW5ldyBZaWUoRTQsYiw0LDcpKSxiLmIpLDApLDg0KSk7aWYoIU5HZChnLGYpKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24galJjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrO2ZvcihnPW5ldyBBbmIoYi5iKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMzApO2ZvcihqPW5ldyBBbmIoZi5hKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksMTApO2s9bmV3IGJuYjtoPTA7Zm9yKGQ9bmV3IGlzKE1yKFoyYihpKS5hLktjKCksbmV3IGlyKSk7Z3MoZCk7KXtjPVJEKGhzKGQpLDE4KTtpZihXMGIoYyl8fCFXMGIoYykmJmMuYy5pLmM9PWMuZC5pLmMpe2NvbnRpbnVlfWU9UkQobVFiKGMsKHlDYygpLE1CYykpLDE3KS5hO2lmKGU+aCl7aD1lO2suYy5sZW5ndGg9MH1lPT1oJiZSbWIoayxuZXcgUHRkKGMuYy5pLGMpKX15b2IoKTtfbWIoayxhLmMpO1FtYihhLmIsaS5wLGspfX19XG5mdW5jdGlvbiBrUmMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGs7Zm9yKGc9bmV3IEFuYihiLmIpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwzMCk7Zm9yKGo9bmV3IEFuYihmLmEpO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwxMCk7az1uZXcgYm5iO2g9MDtmb3IoZD1uZXcgaXMoTXIoYTNiKGkpLmEuS2MoKSxuZXcgaXIpKTtncyhkKTspe2M9UkQoaHMoZCksMTgpO2lmKFcwYihjKXx8IVcwYihjKSYmYy5jLmkuYz09Yy5kLmkuYyl7Y29udGludWV9ZT1SRChtUWIoYywoeUNjKCksTUJjKSksMTcpLmE7aWYoZT5oKXtoPWU7ay5jLmxlbmd0aD0wfWU9PWgmJlJtYihrLG5ldyBQdGQoYy5kLmksYykpfXlvYigpO19tYihrLGEuYyk7UW1iKGEuZixpLnAsayl9fX1cbmZ1bmN0aW9uIEhWYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGo7aj1URChtUWIoYiwoaF9jKCksWiRjKSkpO2lmKGo9PW51bGx8fCh1RmIoaiksaikpe0VWYyhhLGIpO2U9bmV3IGJuYjtmb3IoaT1TdWIoYi5iLDApO2kuYiE9aS5kLmM7KXtnPVJEKGV2YihpKSw0MCk7Yz1EVmMoYSxnLG51bGwpO2lmKGMpe2tRYihjLGIpO1pFYihlLmMsYyl9fWEuYT1udWxsO2EuYj1udWxsO2lmKGUuYy5sZW5ndGg+MSl7Zm9yKGQ9bmV3IEFuYihlKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMTIxKTtmPTA7Zm9yKGg9U3ViKGMuYiwwKTtoLmIhPWguZC5jOyl7Zz1SRChldmIoaCksNDApO2cuZz1mKyt9fX1yZXR1cm4gZX1yZXR1cm4gZHYoY0QoV0MoVyQsMSksSnplLDEyMSwwLFtiXSkpfVxuZnVuY3Rpb24gaHFjKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk7aT1uZXcgRWpkO2I9U3ViKGEsMCk7aD1udWxsO2M9UkQoZXZiKGIpLDgpO2U9UkQoZXZiKGIpLDgpO3doaWxlKGIuYiE9Yi5kLmMpe2g9YztjPWU7ZT1SRChldmIoYiksOCk7Zj1pcWMob2pkKG5ldyByamQoaC5hLGguYiksYykpO2c9aXFjKG9qZChuZXcgcmpkKGUuYSxlLmIpLGMpKTtkPTEwO2Q9JHduZC5NYXRoLm1pbihkLCR3bmQuTWF0aC5hYnMoZi5hK2YuYikvMik7ZD0kd25kLk1hdGgubWluKGQsJHduZC5NYXRoLmFicyhnLmErZy5iKS8yKTtmLmE9TGdiKGYuYSkqZDtmLmI9TGdiKGYuYikqZDtnLmE9TGdiKGcuYSkqZDtnLmI9TGdiKGcuYikqZDtNdWIoaSwkaWQoZixjKSk7TXViKGksJGlkKGcsYykpfXJldHVybiBpfVxuZnVuY3Rpb24gd0tjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7Yy5VZygnTWluaW1pemUgQ3Jvc3NpbmdzICcrYS5hLDEpO2Q9Yi5iLmMubGVuZ3RoPT0wfHwhUURiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihiLmIsMTYpKSxuZXcgUEFiKG5ldyBYS2MpKSkuQmQoKHhEYigpLHdEYikpO2k9Yi5iLmMubGVuZ3RoPT0xJiZSRChWbWIoYi5iLDApLDMwKS5hLmMubGVuZ3RoPT0xO2Y9ZEUobVFiKGIsKHlDYygpLElBYykpKT09PWRFKChGbmQoKSxDbmQpKTtpZihkfHxpJiYhZil7Yy5WZygpO3JldHVybn1lPXJLYyhhLGIpO2c9KGg9UkQoanUoZSwwKSwyMTkpLGguYy5rZygpP2guYy5lZygpP25ldyBLS2MoYSk6bmV3IE1LYyhhKTpuZXcgSUtjKGEpKTtzS2MoZSxnKTtFS2MoYSk7Yy5WZygpfVxuZnVuY3Rpb24geHZkKGEsYixjLGQpe3ZhciBlLGYsZyxoLGk7Zz1hLlBoKCk7aT1hLkpoKCk7ZT1udWxsO2lmKGkpe2lmKCEhYiYmKGp3ZChhLGIsYykuQmImdHhlKT09MCl7ZD1yTGQoaS5FbCgpLGEsZCk7YS5kaShudWxsKTtlPWIuUWgoKX1lbHNle2k9bnVsbH19ZWxzZXshIWcmJihpPWcuUWgoKSk7ISFiJiYoZT1iLlFoKCkpfWkhPWUmJiEhaSYmaS5JbChhKTtoPWEuRmgoKTthLkJoKGIsYyk7aSE9ZSYmISFlJiZlLkhsKGEpO2lmKGEudmgoKSYmYS53aCgpKXtpZighIWcmJmg+PTAmJmghPWMpe2Y9bmV3IE4zZChhLDEsaCxnLG51bGwpOyFkPyhkPWYpOmQubmooZil9aWYoYz49MCl7Zj1uZXcgTjNkKGEsMSxjLGg9PWM/ZzpudWxsLGIpOyFkPyhkPWYpOmQubmooZil9fXJldHVybiBkfVxuZnVuY3Rpb24galNkKGEpe3ZhciBiLGMsZDtpZihhLmI9PW51bGwpe2Q9bmV3IFFoYjtpZihhLmkhPW51bGwpe05oYihkLGEuaSk7ZC5hKz0nOid9aWYoKGEuZiYyNTYpIT0wKXtpZigoYS5mJjI1NikhPTAmJmEuYSE9bnVsbCl7d1NkKGEuaSl8fChkLmErPScvLycsZCk7TmhiKGQsYS5hKX1pZihhLmQhPW51bGwpe2QuYSs9Jy8nO05oYihkLGEuZCl9KGEuZiYxNikhPTAmJihkLmErPScvJyxkKTtmb3IoYj0wLGM9YS5qLmxlbmd0aDtiPGM7YisrKXtiIT0wJiYoZC5hKz0nLycsZCk7TmhiKGQsYS5qW2JdKX1pZihhLmchPW51bGwpe2QuYSs9Jz8nO05oYihkLGEuZyl9fWVsc2V7TmhiKGQsYS5hKX1pZihhLmUhPW51bGwpe2QuYSs9JyMnO05oYihkLGEuZSl9YS5iPWQuYX1yZXR1cm4gYS5ifVxuZnVuY3Rpb24gVjhiKGEsYil7dmFyIGMsZCxlLGYsZyxoO2ZvcihlPW5ldyBBbmIoYi5hKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTApO2Y9bVFiKGQsKFl3YygpLEF3YykpO2lmKFpEKGYsMTIpKXtnPVJEKGYsMTIpO2g9ajJiKGIsZCxnLm8uYSxnLm8uYik7Zy5uLmE9aC5hO2cubi5iPWguYjtRM2IoZyxSRChtUWIoZCxod2MpLDY0KSl9fWM9bmV3IHJqZChiLmYuYStiLmQuYitiLmQuYyxiLmYuYitiLmQuZCtiLmQuYSk7aWYoUkQobVFiKGIsKFl3YygpLGt3YykpLDIxKS5IYygob3ZjKCksaHZjKSkpe3BRYihhLCh5Q2MoKSxCQmMpLChCb2QoKSx3b2QpKTtSRChtUWIoWTJiKGEpLGt3YyksMjEpLkZjKGt2Yyk7cjJiKGEsYyxmYWxzZSl9ZWxzZXtyMmIoYSxjLHRydWUpfX1cbmZ1bmN0aW9uIEZmYyhhLGIsYyxkLGUpe3ZhciBmLGcsaCxpO2Y9bmV3IGozYihhKTtoM2IoZiwocjNiKCkscTNiKSk7cFFiKGYsKHlDYygpLEJCYyksKEJvZCgpLHdvZCkpO3BRYihmLChZd2MoKSxBd2MpLGIuYy5pKTtnPW5ldyBSM2I7cFFiKGcsQXdjLGIuYyk7UTNiKGcsZSk7UDNiKGcsZik7cFFiKGIuYyxJd2MsZik7aD1uZXcgajNiKGEpO2gzYihoLHEzYik7cFFiKGgsQkJjLHdvZCk7cFFiKGgsQXdjLGIuZC5pKTtpPW5ldyBSM2I7cFFiKGksQXdjLGIuZCk7UTNiKGksZSk7UDNiKGksaCk7cFFiKGIuZCxJd2MsaCk7WTBiKGIsZyk7WjBiKGIsaSk7d0ZiKDAsYy5jLmxlbmd0aCk7WEViKGMuYywwLGYpO1pFYihkLmMsaCk7cFFiKGYsJHZjLHNnYigxKSk7cFFiKGgsJHZjLHNnYigxKSl9XG5mdW5jdGlvbiBFbyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2k9WWRiKE5kYihjd2UscWdiKFlkYihOZGIoYj09bnVsbD8wOnRiKGIpLGR3ZSkpLDE1KSkpO2U9WWRiKE5kYihjd2UscWdiKFlkYihOZGIoYz09bnVsbD8wOnRiKGMpLGR3ZSkpLDE1KSkpO2g9SG8oYSxiLGkpO2c9R28oYSxjLGUpO2lmKCEhaCYmZT09aC5hJiZIYihjLGguZykpe3JldHVybiBjfWVsc2UgaWYoISFnJiYhZCl7dGhyb3cgQWRiKG5ldyBhZ2IoJ2tleSBhbHJlYWR5IHByZXNlbnQ6ICcrYykpfSEhaCYmeW8oYSxoKTshIWcmJnlvKGEsZyk7Zj1uZXcga3AoYyxlLGIsaSk7Qm8oYSxmLGcpO2lmKGcpe2cuZT1udWxsO2cuYz1udWxsfWlmKGgpe2guZT1udWxsO2guYz1udWxsfUZvKGEpO3JldHVybiAhaD9udWxsOmguZ31cbmZ1bmN0aW9uIFRqYihhLGIsYyl7dmFyIGQsZSxmLGcsaDtmb3IoZj0wO2Y8YjtmKyspe2Q9MDtmb3IoaD1mKzE7aDxiO2grKyl7ZD1CZGIoQmRiKE5kYihDZGIoYVtmXSx5eGUpLENkYihhW2hdLHl4ZSkpLENkYihjW2YraF0seXhlKSksQ2RiKFlkYihkKSx5eGUpKTtjW2YraF09WWRiKGQpO2Q9VWRiKGQsMzIpfWNbZitiXT1ZZGIoZCl9c2piKGMsYyxiPDwxKTtkPTA7Zm9yKGU9MCxnPTA7ZTxiOysrZSxnKyspe2Q9QmRiKEJkYihOZGIoQ2RiKGFbZV0seXhlKSxDZGIoYVtlXSx5eGUpKSxDZGIoY1tnXSx5eGUpKSxDZGIoWWRiKGQpLHl4ZSkpO2NbZ109WWRiKGQpO2Q9VWRiKGQsMzIpOysrZztkPUJkYihkLENkYihjW2ddLHl4ZSkpO2NbZ109WWRiKGQpO2Q9VWRiKGQsMzIpfXJldHVybiBjfVxuZnVuY3Rpb24geE9jKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrO2lmKGdyKGIpKXtyZXR1cm59aT1LZmIoVUQoaEZjKGMuYywoeUNjKCksZkNjKSkpKTtqPVJEKGhGYyhjLmMsZUNjKSwxNDApOyFqJiYoaj1uZXcgUDJiKTtkPWMuYTtlPW51bGw7Zm9yKGg9Yi5LYygpO2guT2IoKTspe2c9UkQoaC5QYigpLDEyKTtrPTA7aWYoIWUpe2s9ai5kfWVsc2V7az1pO2srPWUuby5ifWY9ZUpiKGZKYihuZXcgZ0piLGcpLGEuZik7WmpiKGEuayxnLGYpO3JJYih1SWIodEliKHNJYih2SWIobmV3IHdJYiwwKSxlRSgkd25kLk1hdGguY2VpbChrKSkpLGQpLGYpKTtlPWc7ZD1mfXJJYih1SWIodEliKHNJYih2SWIobmV3IHdJYiwwKSxlRSgkd25kLk1hdGguY2VpbChqLmErZS5vLmIpKSksZCksYy5kKSl9XG5mdW5jdGlvbiBLOGMoYSxiLGMsZCxlLGYsZyxoKXt2YXIgaSxqLGssbCxtLG47bj1mYWxzZTttPWYtYy5zO2s9Yy50LWIuZisoaj1TOWMoYyxtLGZhbHNlKSxqLmEpO2lmKGQuZytoPm0pe3JldHVybiBmYWxzZX1sPShpPVM5YyhkLG0sZmFsc2UpLGkuYSk7aWYoaytoK2w8PWIuYil7UTljKGMsZi1jLnMpO2MuYz10cnVlO1E5YyhkLGYtYy5zKTtVOWMoZCxjLnMsYy50K2MuZCtoKTtkLms9dHJ1ZTthYWQoYy5xLGQpO249dHJ1ZTtpZihlKXtDYWQoYixkKTtkLmo9YjtpZihhLmMubGVuZ3RoPmcpe0ZhZCgodEZiKGcsYS5jLmxlbmd0aCksUkQoYS5jW2ddLDE4NikpLGQpOyh0RmIoZyxhLmMubGVuZ3RoKSxSRChhLmNbZ10sMTg2KSkuYS5jLmxlbmd0aD09MCYmWG1iKGEsZyl9fX1yZXR1cm4gbn1cbmZ1bmN0aW9uIFFmYyhhLGIpe3ZhciBjLGQsZSxmLGcsaDtiLlVnKCdQYXJ0aXRpb24gbWlkcHJvY2Vzc2luZycsMSk7ZT1uZXcgVHA7RkRiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmEsMTYpKSxuZXcgVWZjKSxuZXcgV2ZjKGUpKTtpZihlLmQ9PTApe3JldHVybn1oPVJEKHpEYihPRGIoKGY9ZS5pLG5ldyBTRGIobnVsbCwoIWY/KGUuaT1uZXcgemYoZSxlLmMpKTpmKS5OYygpKSkpLHRCYihuZXcgWkJiLG5ldyBYQmIsbmV3IHdDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsWyh4QmIoKSx2QmIpXSkpKSwxNSk7ZD1oLktjKCk7Yz1SRChkLlBiKCksMTcpO3doaWxlKGQuT2IoKSl7Zz1SRChkLlBiKCksMTcpO1BmYyhSRChRYyhlLGMpLDIxKSxSRChRYyhlLGcpLDIxKSk7Yz1nfWIuVmcoKX1cbmZ1bmN0aW9uIEdfYihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosaztpZihiLnA9PTApe2IucD0xO2c9YztpZighZyl7ZT1uZXcgYm5iO2Y9KGQ9UkQobWZiKEUzKSw5KSxuZXcgRnNiKGQsUkQoV0ViKGQsZC5sZW5ndGgpLDkpLDApKTtnPW5ldyBQdGQoZSxmKX1SRChnLmEsMTUpLkZjKGIpO2Iuaz09KHIzYigpLG0zYikmJlJEKGcuYiwyMSkuRmMoUkQobVFiKGIsKFl3YygpLGh3YykpLDY0KSk7Zm9yKGk9bmV3IEFuYihiLmopO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxMik7Zm9yKGs9RmwoQWwoY0QoV0MoY0osMSkscnZlLDIwLDAsW25ldyBUM2IoaCksbmV3IF8zYihoKV0pKSk7Z3Moayk7KXtqPVJEKGhzKGspLDEyKTtHX2IoYSxqLmksZyl9fXJldHVybiBnfXJldHVybiBudWxsfVxuZnVuY3Rpb24gYkFkKGEsYil7dmFyIGMsZCxlLGYsZztpZihhLkFiKXtpZihhLkFiKXtnPWEuQWIuaTtpZihnPjApe2U9UkQoYS5BYi5nLDIwMzMpO2lmKGI9PW51bGwpe2ZvcihmPTA7ZjxnOysrZil7Yz1lW2ZdO2lmKGMuZD09bnVsbCl7cmV0dXJuIGN9fX1lbHNle2ZvcihmPTA7ZjxnOysrZil7Yz1lW2ZdO2lmKGxoYihiLGMuZCkpe3JldHVybiBjfX19fX1lbHNle2lmKGI9PW51bGwpe2ZvcihkPW5ldyBkTWQoYS5BYik7ZC5lIT1kLmkuZ2MoKTspe2M9UkQoYk1kKGQpLDU5OCk7aWYoYy5kPT1udWxsKXtyZXR1cm4gY319fWVsc2V7Zm9yKGQ9bmV3IGRNZChhLkFiKTtkLmUhPWQuaS5nYygpOyl7Yz1SRChiTWQoZCksNTk4KTtpZihsaGIoYixjLmQpKXtyZXR1cm4gY319fX19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBSRGQoYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG4scCxxLHIscyx0LHUsdjtuPXFFZChhLEVHZChiKSxlKTtKemQobix6RGQoZSx1SWUpKTtvPW51bGw7cD1lO3E9eURkKHAseEllKTtyPW5ldyBVRWQobik7V0RkKHIuYSxxKTtzPXlEZChwLCdlbmRQb2ludCcpO3Q9bmV3IFlFZChuKTtZRGQodC5hLHMpO3U9d0RkKHAsbkllKTt2PW5ldyBfRWQobik7WkRkKHYuYSx1KTtsPXpEZChlLHBJZSk7Zj1uZXcgUUVkKGEsbik7U0RkKGYuYSxmLmIsbCk7bT16RGQoZSxvSWUpO2c9bmV3IFJFZChhLG4pO1REZChnLmEsZy5iLG0pO2o9d0RkKGUsckllKTtoPW5ldyBTRWQoYyxuKTtVRGQoaC5iLGguYSxqKTtrPXdEZChlLHFJZSk7aT1uZXcgVEVkKGQsbik7VkRkKGkuYixpLmEsayl9XG5mdW5jdGlvbiBxMmIoYSxiLGMpe3ZhciBkLGUsZixnLGg7aD1udWxsO3N3aXRjaChiLmcpe2Nhc2UgMTpmb3IoZT1uZXcgQW5iKGEuaik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDEyKTtpZihIZWIoVEQobVFiKGQsKFl3YygpLG13YykpKSkpe3JldHVybiBkfX1oPW5ldyBSM2I7cFFiKGgsKFl3YygpLG13YyksKEdlYigpLHRydWUpKTticmVhaztjYXNlIDI6Zm9yKGc9bmV3IEFuYihhLmopO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxMik7aWYoSGViKFREKG1RYihmLChZd2MoKSxHd2MpKSkpKXtyZXR1cm4gZn19aD1uZXcgUjNiO3BRYihoLChZd2MoKSxHd2MpLChHZWIoKSx0cnVlKSk7fWlmKGgpe1AzYihoLGEpO1EzYihoLGMpO2QyYihoLm4sYS5vLGMpfXJldHVybiBofVxuZnVuY3Rpb24gZDdiKGEsYil7dmFyIGMsZCxlLGYsZyxoO2g9LTE7Zz1uZXcgWXViO2ZvcihkPW5ldyBsNGIoYS5iKTt4bmIoZC5hKXx8eG5iKGQuYik7KXtjPVJEKHhuYihkLmEpP3luYihkLmEpOnluYihkLmIpLDE4KTtoPSR3bmQuTWF0aC5tYXgoaCxLZmIoVUQobVFiKGMsKHlDYygpLEZBYykpKSkpO2MuYz09YT9GRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGMuYiwxNikpLG5ldyBqN2IpLG5ldyBsN2IoZykpOkZEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYy5iLDE2KSksbmV3IG43YiksbmV3IHA3YihnKSk7Zm9yKGY9U3ViKGcsMCk7Zi5iIT1mLmQuYzspe2U9UkQoZXZiKGYpLDcyKTtuUWIoZSwoWXdjKCksZHdjKSl8fHBRYihlLGR3YyxjKX1UbWIoYixnKTtYdWIoZyl9cmV0dXJuIGh9XG5mdW5jdGlvbiBfVGMoYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqO2g9ZT9kLmI6ZC5hO2lmKFpzYihhLmEsZCkpe3JldHVybn1qPWg+Yy5zJiZoPGMuYztpPWZhbHNlO2lmKGMuZS5iIT0wJiZjLmouYiE9MCl7aT1pfCgkd25kLk1hdGguYWJzKGgtS2ZiKFVEKFF1YihjLmUpKSkpPFZ6ZSYmJHduZC5NYXRoLmFicyhoLUtmYihVRChRdWIoYy5qKSkpKTxWemUpO2k9aXwoJHduZC5NYXRoLmFicyhoLUtmYihVRChSdWIoYy5lKSkpKTxWemUmJiR3bmQuTWF0aC5hYnMoaC1LZmIoVUQoUnViKGMuaikpKSk8VnplKX1pZihqfHxpKXtnPVJEKG1RYihiLCh5Q2MoKSxSQWMpKSw3NSk7aWYoIWcpe2c9bmV3IEVqZDtwUWIoYixSQWMsZyl9Zj1uZXcgc2pkKGQpO1B1YihnLGYsZy5jLmIsZy5jKTtZc2IoYS5hLGYpfX1cbmZ1bmN0aW9uIFpQYihhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosaztpZihZUGIoYSxiLGMsZCkpe3JldHVybiB0cnVlfWVsc2V7Zm9yKGc9bmV3IEFuYihiLmYpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwzMzQpO2g9ZmFsc2U7aT1hLmotYi5qK2M7aj1pK2IubztrPWEuay1iLmsrZDtlPWsrYi5wO3N3aXRjaChmLmEuZyl7Y2FzZSAwOmg9ZlFiKGEsaStmLmIuYSwwLGkrZi5jLmEsay0xKTticmVhaztjYXNlIDE6aD1mUWIoYSxqLGsrZi5iLmEsYS5vLTEsaytmLmMuYSk7YnJlYWs7Y2FzZSAyOmg9ZlFiKGEsaStmLmIuYSxlLGkrZi5jLmEsYS5wLTEpO2JyZWFrO2RlZmF1bHQ6aD1mUWIoYSwwLGsrZi5iLmEsaS0xLGsrZi5jLmEpO31pZihoKXtyZXR1cm4gdHJ1ZX19fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIHlaYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsO2MuVWcoJ1Byb2Nlc3NvciBzZXQgY29vcmRpbmF0ZXMnLDEpO2EuYT1iLmIuYj09MD8xOmIuYi5iO2o9bnVsbDtkPVN1YihiLmIsMCk7d2hpbGUoIWomJmQuYiE9ZC5kLmMpe2w9UkQoZXZiKGQpLDQwKTtpZihIZWIoVEQobVFiKGwsKHEkYygpLG4kYykpKSkpe2o9bDtpPWwuZTtpLmE9UkQobVFiKGwsbyRjKSwxNykuYTtpLmI9UkQobVFiKGwscCRjKSwxNykuYX19aD0kV2Moaik7az0xO2Rve2g9elpjKChlPWgsYy5laChrKSxlKSk7az1oLmIvYS5hfDB9d2hpbGUoaC5iIT0wKTtmb3IoZz1TdWIoYi5iLDApO2cuYiE9Zy5kLmM7KXtmPVJEKGV2YihnKSw0MCk7b2pkKGYuZSxuZXcgcmpkKGYuZi5hLzIsZi5mLmIvMikpfWMuVmcoKX1cbmZ1bmN0aW9uIHVZYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosaztjLlVnKE1FZSwxKTtha2IoYS5iKTtha2IoYS5hKTtoPW51bGw7Zj1TdWIoYi5iLDApO3doaWxlKCFoJiZmLmIhPWYuZC5jKXtqPVJEKGV2YihmKSw0MCk7SGViKFREKG1RYihqLChxJGMoKSxuJGMpKSkpJiYoaD1qKX1pPW5ldyBZdWI7UHViKGksaCxpLmMuYixpLmMpO3RZYyhhLGkpO2ZvcihrPVN1YihiLmIsMCk7ay5iIT1rLmQuYzspe2o9UkQoZXZiKGspLDQwKTtnPVdEKG1RYihqLChxJGMoKSxhJGMpKSk7ZT1YamIoYS5iLGcpIT1udWxsP1JEKFhqYihhLmIsZyksMTcpLmE6MDtwUWIoaixYWmMsc2diKGUpKTtkPTErKFhqYihhLmEsZykhPW51bGw/UkQoWGpiKGEuYSxnKSwxNykuYTowKTtwUWIoaixWWmMsc2diKGQpKX1jLlZnKCl9XG5mdW5jdGlvbiBpa2QoYSl7Q2dkKGEsbmV3IFBmZCgkZmQoWGZkKFpmZChZZmQobmV3IGFnZCxMR2UpLCdFTEsgQm94JyksJ0FsZ29yaXRobSBmb3IgcGFja2luZyBvZiB1bmNvbm5lY3RlZCBib3hlcywgaS5lLiBncmFwaHMgd2l0aG91dCBlZGdlcy4nKSxuZXcgbGtkKSkpO0FnZChhLExHZSxFemUsZWtkKTtBZ2QoYSxMR2UsX3plLDE1KTtBZ2QoYSxMR2UsJHplLHNnYigwKSk7QWdkKGEsTEdlLE1HZSxpR2QoJGpkKSk7QWdkKGEsTEdlLGpBZSxpR2QoYWtkKSk7QWdkKGEsTEdlLGlBZSxpR2QoY2tkKSk7QWdkKGEsTEdlLER6ZSxLR2UpO0FnZChhLExHZSxkQWUsaUdkKF9qZCkpO0FnZChhLExHZSxDQWUsaUdkKGJrZCkpO0FnZChhLExHZSxOR2UsaUdkKFlqZCkpO0FnZChhLExHZSxZRGUsaUdkKFpqZCkpfVxuZnVuY3Rpb24gYzJiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrO2U9YS5pO2c9ZS5vLmE7Zj1lLm8uYjtpZihnPD0wJiZmPD0wKXtyZXR1cm4gcXBkKCksb3BkfWo9YS5uLmE7az1hLm4uYjtoPWEuby5hO2M9YS5vLmI7c3dpdGNoKGIuZyl7Y2FzZSAyOmNhc2UgMTppZihqPDApe3JldHVybiBxcGQoKSxwcGR9ZWxzZSBpZihqK2g+Zyl7cmV0dXJuIHFwZCgpLFhvZH1icmVhaztjYXNlIDQ6Y2FzZSAzOmlmKGs8MCl7cmV0dXJuIHFwZCgpLFlvZH1lbHNlIGlmKGsrYz5mKXtyZXR1cm4gcXBkKCksbnBkfX1pPShqK2gvMikvZztkPShrK2MvMikvZjtyZXR1cm4gaStkPD0xJiZpLWQ8PTA/KHFwZCgpLHBwZCk6aStkPj0xJiZpLWQ+PTA/KHFwZCgpLFhvZCk6ZDwwLjU/KHFwZCgpLFlvZCk6KHFwZCgpLG5wZCl9XG5mdW5jdGlvbiBQTmMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwO2M9ZmFsc2U7az1LZmIoVUQobVFiKGIsKHlDYygpLGJDYykpKSk7bz1wd2Uqaztmb3IoZT1uZXcgQW5iKGIuYik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDMwKTtqPW5ldyBBbmIoZC5hKTtmPVJEKHluYihqKSwxMCk7bD1YTmMoYS5hW2YucF0pO3doaWxlKGouYTxqLmMuYy5sZW5ndGgpe2g9UkQoeW5iKGopLDEwKTttPVhOYyhhLmFbaC5wXSk7aWYobCE9bSl7bj1iRmMoYS5iLGYsaCk7Zz1mLm4uYitmLm8uYitmLmQuYStsLmErbjtpPWgubi5iLWguZC5kK20uYTtpZihnPmkrbyl7cD1sLmcrbS5nO20uYT0obS5nKm0uYStsLmcqbC5hKS9wO20uZz1wO2wuZj1tO2M9dHJ1ZX19Zj1oO2w9bX19cmV0dXJuIGN9XG5mdW5jdGlvbiBNSmIoYSxiLGMsZCxlLGYsZyl7dmFyIGgsaSxqLGssbCxtO209bmV3IFRpZDtmb3Ioaj1iLktjKCk7ai5PYigpOyl7aD1SRChqLlBiKCksODUzKTtmb3IobD1uZXcgQW5iKGguUmYoKSk7bC5hPGwuYy5jLmxlbmd0aDspe2s9UkQoeW5iKGwpLDE4Nyk7aWYoZEUoay5vZigodW1kKCksUWtkKSkpPT09ZEUoKE9tZCgpLE5tZCkpKXtKSmIobSxrLGZhbHNlLGQsZSxmLGcpO1NpZChhLG0pfX19Zm9yKGk9Yy5LYygpO2kuT2IoKTspe2g9UkQoaS5QYigpLDg1Myk7Zm9yKGw9bmV3IEFuYihoLlJmKCkpO2wuYTxsLmMuYy5sZW5ndGg7KXtrPVJEKHluYihsKSwxODcpO2lmKGRFKGsub2YoKHVtZCgpLFFrZCkpKT09PWRFKChPbWQoKSxNbWQpKSl7SkpiKG0sayx0cnVlLGQsZSxmLGcpO1NpZChhLG0pfX19fVxuZnVuY3Rpb24gUFZjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksajtmb3IoZz1uZXcgZE1kKCghYS5hJiYoYS5hPW5ldyBDNWQoSjQsYSwxMCwxMSkpLGEuYSkpO2cuZSE9Zy5pLmdjKCk7KXtmPVJEKGJNZChnKSwyNyk7Zm9yKGU9bmV3IGlzKE1yKHpHZChmKS5hLktjKCksbmV3IGlyKSk7Z3MoZSk7KXtkPVJEKGhzKGUpLDc0KTtpZighbnpkKGQpJiYhbnpkKGQpJiYhb3pkKGQpKXtpPVJEKFdkKHF0YihjLmYsZikpLDQwKTtqPVJEKFdqYihjLEFHZChSRChRSGQoKCFkLmMmJihkLmM9bmV3IFlpZShFNCxkLDUsOCkpLGQuYyksMCksODQpKSksNDApO2lmKCEhaSYmISFqKXtoPW5ldyBXV2MoaSxqKTtwUWIoaCwocSRjKCksaCRjKSxkKTtrUWIoaCxkKTtNdWIoaS5kLGgpO011YihqLmIsaCk7TXViKGIuYSxoKX19fX19XG5mdW5jdGlvbiBITmIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2ZvcihpPVJEKFJEKFFjKGEucixiKSwyMSksODcpLktjKCk7aS5PYigpOyl7aD1SRChpLlBiKCksMTE3KTtlPWguYz9QS2IoaC5jKTowO2lmKGU+MCl7aWYoaC5hKXtqPWguYi5NZigpLmI7aWYoZT5qKXtpZihhLnZ8fGguYy5kLmMubGVuZ3RoPT0xKXtnPShlLWopLzI7aC5kLmQ9ZztoLmQuYT1nfWVsc2V7Yz1SRChWbWIoaC5jLmQsMCksMTg3KS5NZigpLmI7ZD0oYy1qKS8yO2guZC5kPSR3bmQuTWF0aC5tYXgoMCxkKTtoLmQuYT1lLWQtan19fWVsc2V7aC5kLmE9YS50K2V9fWVsc2UgaWYoUm9kKGEudSkpe2Y9d3NkKGguYik7Zi5kPDAmJihoLmQuZD0tZi5kKTtmLmQrZi5hPmguYi5NZigpLmImJihoLmQuYT1mLmQrZi5hLWguYi5NZigpLmIpfX19XG5mdW5jdGlvbiB5VmIoKXt5VmI9Z2ViO2xWYj1uZXcgbUdkKCh1bWQoKSxSbGQpLHNnYigxKSk7clZiPW5ldyBtR2QoZm1kLDgwKTtxVmI9bmV3IG1HZCgkbGQsNSk7WlViPW5ldyBtR2QoRGtkLFl6ZSk7bVZiPW5ldyBtR2QoU2xkLHNnYigxKSk7cFZiPW5ldyBtR2QoVmxkLChHZWIoKSx0cnVlKSk7aVZiPW5ldyBBM2IoNTApO2hWYj1uZXcgbUdkKHRsZCxpVmIpO19VYj1hbGQ7alZiPUhsZDskVWI9bmV3IG1HZChQa2QsZmFsc2UpO2dWYj1zbGQ7ZVZiPW1sZDtmVmI9cGxkO2RWYj1rbGQ7Y1ZiPWlsZDtrVmI9TGxkO2JWYj0oT1ViKCksSFViKTtzVmI9TVViO2FWYj1HVWI7blZiPUpVYjtvVmI9TFViO3ZWYj1tbWQ7eFZiPXFtZDt1VmI9bG1kO3RWYj1rbWQ7d1ZiPShtcWQoKSxqcWQpO25ldyBtR2Qobm1kLHdWYil9XG5mdW5jdGlvbiBWQyhhLGIpe3ZhciBjO3N3aXRjaChYQyhhKSl7Y2FzZSA2OnJldHVybiBiRShiKTtjYXNlIDc6cmV0dXJuIF9EKGIpO2Nhc2UgODpyZXR1cm4gJEQoYik7Y2FzZSAzOnJldHVybiBBcnJheS5pc0FycmF5KGIpJiYoYz1YQyhiKSwhKGM+PTE0JiZjPD0xNikpO2Nhc2UgMTE6cmV0dXJuIGIhPW51bGwmJnR5cGVvZiBiPT09a3ZlO2Nhc2UgMTI6cmV0dXJuIGIhPW51bGwmJih0eXBlb2YgYj09PWd2ZXx8dHlwZW9mIGI9PWt2ZSk7Y2FzZSAwOnJldHVybiBRRChiLGEuX19lbGVtZW50VHlwZUlkJCk7Y2FzZSAyOnJldHVybiBjRShiKSYmIShiLlRtPT09a2ViKTtjYXNlIDE6cmV0dXJuIGNFKGIpJiYhKGIuVG09PT1rZWIpfHxRRChiLGEuX19lbGVtZW50VHlwZUlkJCk7ZGVmYXVsdDpyZXR1cm4gdHJ1ZTt9fVxuZnVuY3Rpb24gZ05iKGEpe3ZhciBiLGMsZCxlO2Q9YS5vO1JNYigpO2lmKGEuQS5kYygpfHxwYihhLkEsUU1iKSl7ZT1kLmF9ZWxzZXthLkQ/KGU9JHduZC5NYXRoLm1heChkLmEsWktiKGEuZikpKTooZT1aS2IoYS5mKSk7aWYoYS5BLkhjKChRcGQoKSxOcGQpKSYmIWEuQi5IYygoZHFkKCksX3BkKSkpe2U9JHduZC5NYXRoLm1heChlLFpLYihSRChWcmIoYS5wLChxcGQoKSxZb2QpKSwyNTIpKSk7ZT0kd25kLk1hdGgubWF4KGUsWktiKFJEKFZyYihhLnAsbnBkKSwyNTIpKSl9Yj1UTWIoYSk7ISFiJiYoZT0kd25kLk1hdGgubWF4KGUsYi5hKSl9SGViKFREKGEuZS5UZigpLm9mKCh1bWQoKSxtbGQpKSkpPyhkLmE9JHduZC5NYXRoLm1heChkLmEsZSkpOihkLmE9ZSk7Yz1hLmYuaTtjLmM9MDtjLmI9ZTskS2IoYS5mKX1cbmZ1bmN0aW9uIG9SYihhLGIpe3ZhciBjLGQsZSxmO2Q9JHduZC5NYXRoLm1pbigkd25kLk1hdGguYWJzKGEuYy0oYi5jK2IuYikpLCR3bmQuTWF0aC5hYnMoYS5jK2EuYi1iLmMpKTtmPSR3bmQuTWF0aC5taW4oJHduZC5NYXRoLmFicyhhLmQtKGIuZCtiLmEpKSwkd25kLk1hdGguYWJzKGEuZCthLmEtYi5kKSk7Yz0kd25kLk1hdGguYWJzKGEuYythLmIvMi0oYi5jK2IuYi8yKSk7aWYoYz5hLmIvMitiLmIvMil7cmV0dXJuIDF9ZT0kd25kLk1hdGguYWJzKGEuZCthLmEvMi0oYi5kK2IuYS8yKSk7aWYoZT5hLmEvMitiLmEvMil7cmV0dXJuIDF9aWYoYz09MCYmZT09MCl7cmV0dXJuIDB9aWYoYz09MCl7cmV0dXJuIGYvZSsxfWlmKGU9PTApe3JldHVybiBkL2MrMX1yZXR1cm4gJHduZC5NYXRoLm1pbihkL2MsZi9lKSsxfVxuZnVuY3Rpb24gb1diKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7Zj0wO2g9MDtpPTA7Zm9yKGU9bmV3IEFuYihhLmYuZSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDE1Myk7aWYoYj09ZCl7Y29udGludWV9Zz1hLmlbYi5hXVtkLmFdO2YrPWc7Yz1iamQoYi5kLGQuZCk7Yz4wJiZhLmQhPShBV2IoKSx6V2IpJiYoaCs9ZyooZC5kLmErYS5hW2IuYV1bZC5hXSooYi5kLmEtZC5kLmEpL2MpKTtjPjAmJmEuZCE9KEFXYigpLHhXYikmJihpKz1nKihkLmQuYithLmFbYi5hXVtkLmFdKihiLmQuYi1kLmQuYikvYykpfXN3aXRjaChhLmQuZyl7Y2FzZSAxOnJldHVybiBuZXcgcmpkKGgvZixiLmQuYik7Y2FzZSAyOnJldHVybiBuZXcgcmpkKGIuZC5hLGkvZik7ZGVmYXVsdDpyZXR1cm4gbmV3IHJqZChoL2YsaS9mKTt9fVxuZnVuY3Rpb24geHNkKGEpe3ZhciBiLGMsZCxlLGYsZztjPSghYS5hJiYoYS5hPW5ldyBYWmQoRDQsYSw1KSksYS5hKS5pKzI7Zz1uZXcgY25iKGMpO1JtYihnLG5ldyByamQoYS5qLGEuaykpO0ZEYihuZXcgU0RiKG51bGwsKCFhLmEmJihhLmE9bmV3IFhaZChENCxhLDUpKSxuZXcgU3diKGEuYSwxNikpKSxuZXcgVXNkKGcpKTtSbWIoZyxuZXcgcmpkKGEuYixhLmMpKTtiPTE7d2hpbGUoYjxnLmMubGVuZ3RoLTEpe2Q9KHRGYihiLTEsZy5jLmxlbmd0aCksUkQoZy5jW2ItMV0sOCkpO2U9KHRGYihiLGcuYy5sZW5ndGgpLFJEKGcuY1tiXSw4KSk7Zj0odEZiKGIrMSxnLmMubGVuZ3RoKSxSRChnLmNbYisxXSw4KSk7ZC5hPT1lLmEmJmUuYT09Zi5hfHxkLmI9PWUuYiYmZS5iPT1mLmI/WG1iKGcsYik6KytifXJldHVybiBnfVxuZnVuY3Rpb24gemdjKGEsYil7c2djKCk7dmFyIGMsZCxlLGYsZztnPVJEKG1RYihhLmksKHlDYygpLEJCYykpLDEwMSk7Zj1hLmouZy1iLmouZztpZihmIT0wfHwhKGc9PShCb2QoKSx2b2QpfHxnPT14b2R8fGc9PXdvZCkpe3JldHVybiAwfWlmKGc9PShCb2QoKSx2b2QpKXtjPVJEKG1RYihhLENCYyksMTcpO2Q9UkQobVFiKGIsQ0JjKSwxNyk7aWYoISFjJiYhIWQpe2U9Yy5hLWQuYTtpZihlIT0wKXtyZXR1cm4gZX19fXN3aXRjaChhLmouZyl7Y2FzZSAxOnJldHVybiBRZmIoYS5uLmEsYi5uLmEpO2Nhc2UgMjpyZXR1cm4gUWZiKGEubi5iLGIubi5iKTtjYXNlIDM6cmV0dXJuIFFmYihiLm4uYSxhLm4uYSk7Y2FzZSA0OnJldHVybiBRZmIoYi5uLmIsYS5uLmIpO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBkZ2IoVUFlKSk7fX1cbmZ1bmN0aW9uIEJrYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2M9bUdiKHBHYihuR2Iob0diKG5ldyBxR2IsYiksbmV3IFZpZChiLmUpKSxra2MpLGEuYSk7Yi5qLmMubGVuZ3RoPT0wfHxlR2IoUkQoVm1iKGIuaiwwKSw2MCkuYSxjKTtpPW5ldyBjSGI7WmpiKGEuZSxjLGkpO2c9bmV3IF9zYjtoPW5ldyBfc2I7Zm9yKGY9bmV3IEFuYihiLmspO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxOCk7WXNiKGcsZS5jKTtZc2IoaCxlLmQpfWQ9Zy5hLmdjKCktaC5hLmdjKCk7aWYoZDwwKXthSGIoaSx0cnVlLChDbWQoKSx5bWQpKTthSGIoaSxmYWxzZSx6bWQpfWVsc2UgaWYoZD4wKXthSGIoaSxmYWxzZSwoQ21kKCkseW1kKSk7YUhiKGksdHJ1ZSx6bWQpfVVtYihiLmcsbmV3IEVsYyhhLGMpKTtaamIoYS5nLGIsYyl9XG5mdW5jdGlvbiBVZ2IoKXtVZ2I9Z2ViO3ZhciBhO1FnYj1jRChXQyhrRSwxKSxQd2UsMjgsMTUsWy0xLC0xLDMwLDE5LDE1LDEzLDExLDExLDEwLDksOSw4LDgsOCw4LDcsNyw3LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDVdKTtSZ2I9JEMoa0UsUHdlLDI4LDM3LDE1LDEpO1NnYj1jRChXQyhrRSwxKSxQd2UsMjgsMTUsWy0xLC0xLDYzLDQwLDMyLDI4LDI1LDIzLDIxLDIwLDE5LDE5LDE4LDE4LDE3LDE3LDE2LDE2LDE2LDE1LDE1LDE1LDE1LDE0LDE0LDE0LDE0LDE0LDE0LDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzXSk7VGdiPSRDKGxFLHJ4ZSwyOCwzNywxNCwxKTtmb3IoYT0yO2E8PTM2O2ErKyl7UmdiW2FdPWVFKCR3bmQuTWF0aC5wb3coYSxRZ2JbYV0pKTtUZ2JbYV09RmRiKFN2ZSxSZ2JbYV0pfX1cbmZ1bmN0aW9uIHRzZChhKXt2YXIgYjtpZigoIWEuYSYmKGEuYT1uZXcgQzVkKEY0LGEsNiw2KSksYS5hKS5pIT0xKXt0aHJvdyBBZGIobmV3IGFnYih0SGUrKCFhLmEmJihhLmE9bmV3IEM1ZChGNCxhLDYsNikpLGEuYSkuaSkpfWI9bmV3IEVqZDshIUJHZChSRChRSGQoKCFhLmImJihhLmI9bmV3IFlpZShFNCxhLDQsNykpLGEuYiksMCksODQpKSYmeWUoYix1c2QoYSxCR2QoUkQoUUhkKCghYS5iJiYoYS5iPW5ldyBZaWUoRTQsYSw0LDcpKSxhLmIpLDApLDg0KSksZmFsc2UpKTshIUJHZChSRChRSGQoKCFhLmMmJihhLmM9bmV3IFlpZShFNCxhLDUsOCkpLGEuYyksMCksODQpKSYmeWUoYix1c2QoYSxCR2QoUkQoUUhkKCghYS5jJiYoYS5jPW5ldyBZaWUoRTQsYSw1LDgpKSxhLmMpLDApLDg0KSksdHJ1ZSkpO3JldHVybiBifVxuZnVuY3Rpb24gelJjKGEsYil7dmFyIGMsZCxlLGYsZztiLmQ/KGU9YS5hLmM9PSh3UWMoKSx2UWMpP1oyYihiLmIpOmEzYihiLmIpKTooZT1hLmEuYz09KHdRYygpLHVRYyk/WjJiKGIuYik6YTNiKGIuYikpO2Y9ZmFsc2U7Zm9yKGQ9bmV3IGlzKE1yKGUuYS5LYygpLG5ldyBpcikpO2dzKGQpOyl7Yz1SRChocyhkKSwxOCk7Zz1IZWIoYS5hLmZbYS5hLmdbYi5iLnBdLnBdKTtpZighZyYmIVcwYihjKSYmYy5jLmkuYz09Yy5kLmkuYyl7Y29udGludWV9aWYoSGViKGEuYS5uW2EuYS5nW2IuYi5wXS5wXSl8fEhlYihhLmEublthLmEuZ1tiLmIucF0ucF0pKXtjb250aW51ZX1mPXRydWU7aWYoWnNiKGEuYixhLmEuZ1tyUmMoYyxiLmIpLnBdKSl7Yi5jPXRydWU7Yi5hPWM7cmV0dXJuIGJ9fWIuYz1mO2IuYT1udWxsO3JldHVybiBifVxuZnVuY3Rpb24gUUpkKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksajtkPWMuZ2MoKTtpZihkPT0wKXtyZXR1cm4gZmFsc2V9ZWxzZXtpZihhLlBqKCkpe2k9YS5RaigpO1pJZChhLGIsYyk7Zz1kPT0xP2EuSWooMyxudWxsLGMuS2MoKS5QYigpLGIsaSk6YS5Jaig1LG51bGwsYyxiLGkpO2lmKGEuTWooKSl7aD1kPDEwMD9udWxsOm5ldyBnTGQoZCk7Zj1iK2Q7Zm9yKGU9YjtlPGY7KytlKXtqPWEueGooZSk7aD1hLk5qKGosaCk7aD1ofWlmKCFoKXthLkpqKGcpfWVsc2V7aC5uaihnKTtoLm9qKCl9fWVsc2V7YS5KaihnKX19ZWxzZXtaSWQoYSxiLGMpO2lmKGEuTWooKSl7aD1kPDEwMD9udWxsOm5ldyBnTGQoZCk7Zj1iK2Q7Zm9yKGU9YjtlPGY7KytlKXtoPWEuTmooYS54aihlKSxoKX0hIWgmJmgub2ooKX19cmV0dXJuIHRydWV9fVxuZnVuY3Rpb24gV0pkKGEsYixjKXt2YXIgZCxlLGYsZyxoO2lmKGEuUGooKSl7ZT1udWxsO2Y9YS5RaigpO2Q9YS5JaigxLGg9KGc9YS5EaihiLGEuWmkoYixjKSksZyksYyxiLGYpO2lmKGEuTWooKSYmIShhLllpKCkmJiEhaD9wYihoLGMpOmRFKGgpPT09ZEUoYykpKXshIWgmJihlPWEuT2ooaCxlKSk7ZT1hLk5qKGMsZSk7aWYoIWUpe2EuSmooZCl9ZWxzZXtlLm5qKGQpO2Uub2ooKX19ZWxzZXtpZighZSl7YS5KaihkKX1lbHNle2UubmooZCk7ZS5vaigpfX1yZXR1cm4gaH1lbHNle2g9KGc9YS5EaihiLGEuWmkoYixjKSksZyk7aWYoYS5NaigpJiYhKGEuWWkoKSYmISFoP3BiKGgsYyk6ZEUoaCk9PT1kRShjKSkpe2U9bnVsbDshIWgmJihlPWEuT2ooaCxudWxsKSk7ZT1hLk5qKGMsZSk7ISFlJiZlLm9qKCl9cmV0dXJuIGh9fVxuZnVuY3Rpb24gblViKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrO2EuZT1iO2EuZj1SRChtUWIoYiwoSlZiKCksSVZiKSksMjM0KTtlVWIoYik7YS5kPSR3bmQuTWF0aC5tYXgoYi5lLmMubGVuZ3RoKjE2K2IuYy5jLmxlbmd0aCwyNTYpO2lmKCFIZWIoVEQobVFiKGIsKHlWYigpLF9VYikpKSkpe2s9YS5lLmUuYy5sZW5ndGg7Zm9yKGk9bmV3IEFuYihiLmUpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxNTMpO2o9aC5kO2ouYT1Jd2IoYS5mKSprO2ouYj1Jd2IoYS5mKSprfX1jPWIuYjtmb3IoZj1uZXcgQW5iKGIuYyk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDI5MCk7ZD1SRChtUWIoZSxvVmIpLDE3KS5hO2lmKGQ+MCl7Zm9yKGc9MDtnPGQ7ZysrKXtSbWIoYyxuZXcgV1RiKGUpKX1ZVGIoZSl9fX1cbmZ1bmN0aW9uIE5JZChhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvO209bmV3IE9DKGEuWmcoKSk7c0MoYixHSWUsbSk7aWYoYyYmIWEuWGcoKS5hLmRjKCkpe2s9bmV3IE1CO3NDKGIsJ2xvZ3MnLGspO2g9MDtmb3Iobz1uZXcgUHBiKGEuWGcoKS5iLktjKCkpO28uYi5PYigpOyl7bj1XRChvLmIuUGIoKSk7bD1uZXcgT0Mobik7SkIoayxoKTtMQihrLGgsbCk7KytofX1pZihkKXtqPW5ldyBoQyhhLldnKCkpO3NDKGIsJ2V4ZWN1dGlvblRpbWUnLGopfWlmKCFhLllnKCkuYS5kYygpKXtnPW5ldyBNQjtzQyhiLGlJZSxnKTtoPTA7Zm9yKGY9bmV3IFBwYihhLllnKCkuYi5LYygpKTtmLmIuT2IoKTspe2U9UkQoZi5iLlBiKCksODcxKTtpPW5ldyB1QztKQihnLGgpO0xCKGcsaCxpKTtOSWQoZSxpLGMsZCk7KytofX19XG5mdW5jdGlvbiBydWUoKXtydWU9Z2ViO0dpZSgpO3F1ZT1uZXcgc3VlO2NEKFdDKEI3LDIpLE52ZSwzODEsMCxbY0QoV0MoQjcsMSksX0xlLDYwMCwwLFtuZXcgb3VlKHdMZSldKV0pO2NEKFdDKEI3LDIpLE52ZSwzODEsMCxbY0QoV0MoQjcsMSksX0xlLDYwMCwwLFtuZXcgb3VlKHhMZSldKV0pO2NEKFdDKEI3LDIpLE52ZSwzODEsMCxbY0QoV0MoQjcsMSksX0xlLDYwMCwwLFtuZXcgb3VlKHlMZSldKSxjRChXQyhCNywxKSxfTGUsNjAwLDAsW25ldyBvdWUoeExlKV0pXSk7bmV3IGVqYignLTEnKTtjRChXQyhCNywyKSxOdmUsMzgxLDAsW2NEKFdDKEI3LDEpLF9MZSw2MDAsMCxbbmV3IG91ZSgnXFxcXGMrJyldKV0pO25ldyBlamIoJzAnKTtuZXcgZWpiKCcwJyk7bmV3IGVqYignMScpO25ldyBlamIoJzAnKTtuZXcgZWpiKElMZSl9XG5mdW5jdGlvbiB3YWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbDtiLlVnKCdIeXBlcm5vZGVzIHByb2Nlc3NpbmcnLDEpO2ZvcihlPW5ldyBBbmIoYS5iKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMzApO2ZvcihoPW5ldyBBbmIoZC5hKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTApO2lmKEhlYihURChtUWIoZywoeUNjKCksTUFjKSkpKSYmZy5qLmMubGVuZ3RoPD0yKXtsPTA7az0wO2M9MDtmPTA7Zm9yKGo9bmV3IEFuYihnLmopO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwxMik7c3dpdGNoKGkuai5nKXtjYXNlIDE6KytsO2JyZWFrO2Nhc2UgMjorK2s7YnJlYWs7Y2FzZSAzOisrYzticmVhaztjYXNlIDQ6KytmO319bD09MCYmYz09MCYmdmFjKGEsZyxmPD1rKX19fWIuVmcoKX1cbmZ1bmN0aW9uIE1VYyhhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsO2ZvcihnPW5ldyBBbmIoYik7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDE4KTtpPWYuYztpZihjLmEuX2IoaSkpe2o9KGRWYygpLGJWYyl9ZWxzZSBpZihkLmEuX2IoaSkpe2o9KGRWYygpLGNWYyl9ZWxzZXt0aHJvdyBBZGIobmV3IGFnYignU291cmNlIHBvcnQgbXVzdCBiZSBpbiBvbmUgb2YgdGhlIHBvcnQgc2V0cy4nKSl9az1mLmQ7aWYoYy5hLl9iKGspKXtsPShkVmMoKSxiVmMpfWVsc2UgaWYoZC5hLl9iKGspKXtsPShkVmMoKSxjVmMpfWVsc2V7dGhyb3cgQWRiKG5ldyBhZ2IoJ1RhcmdldCBwb3J0IG11c3QgYmUgaW4gb25lIG9mIHRoZSBwb3J0IHNldHMuJykpfWg9bmV3IHdWYyhmLGosbCk7WmpiKGEuYixmLGgpO1pFYihlLmMsaCl9fVxuZnVuY3Rpb24gaTJkKGEpe3ZhciBiLGM7aWYoISFhLmMmJmEuYy5WaCgpKXtjPVJEKGEuYyw1NCk7YS5jPVJEKFZ2ZChhLGMpLDE0Mik7aWYoYS5jIT1jKXsoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSw5LDIsYyxhLmMpKTtpZihaRChhLkNiLDQxMSkpe2EuRGI+PjE2PT0tMTUmJmEuQ2IuWWgoKSYmcEtkKG5ldyBPM2QoYS5DYiw5LDEzLGMsYS5jLGZaZChvNGQoUkQoYS5DYiw2MikpLGEpKSl9ZWxzZSBpZihaRChhLkNiLDkwKSl7aWYoYS5EYj4+MTY9PS0yMyYmYS5DYi5ZaCgpKXtiPWEuYztaRChiLDkwKXx8KGI9KEpUZCgpLHpUZCkpO1pEKGMsOTApfHwoYz0oSlRkKCkselRkKSk7cEtkKG5ldyBPM2QoYS5DYiw5LDEwLGMsYixmWmQodFlkKFJEKGEuQ2IsMjkpKSxhKSkpfX19fXJldHVybiBhLmN9XG5mdW5jdGlvbiBsYWMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbDtjLlVnKCdIeXBlcmVkZ2UgbWVyZ2luZycsMSk7amFjKGEsYik7aT1uZXcgSmtiKGIuYiwwKTt3aGlsZShpLmI8aS5kLmdjKCkpe2g9KHNGYihpLmI8aS5kLmdjKCkpLFJEKGkuZC5YYihpLmM9aS5iKyspLDMwKSk7az1oLmE7aWYoay5jLmxlbmd0aD09MCl7Y29udGludWV9ZD1udWxsO2U9bnVsbDtmPW51bGw7Zz1udWxsO2ZvcihqPTA7ajxrLmMubGVuZ3RoO2orKyl7ZD0odEZiKGosay5jLmxlbmd0aCksUkQoay5jW2pdLDEwKSk7ZT1kLms7aWYoZT09KHIzYigpLG8zYikmJmc9PW8zYil7bD1oYWMoZCxmKTtpZihsLmEpe2thYyhkLGYsbC5iLGwuYyk7dEZiKGosay5jLmxlbmd0aCk7JEViKGsuYyxqLDEpOy0tajtkPWY7ZT1nfX1mPWQ7Zz1lfX1jLlZnKCl9XG5mdW5jdGlvbiBVJGQoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbztpZihiPT1jKXtyZXR1cm4gdHJ1ZX1lbHNle2I9ViRkKGEsYik7Yz1WJGQoYSxjKTtkPWgyZChiKTtpZihkKXtrPWgyZChjKTtpZihrIT1kKXtpZighayl7cmV0dXJuIGZhbHNlfWVsc2V7aT1kLm1rKCk7bz1rLm1rKCk7cmV0dXJuIGk9PW8mJmkhPW51bGx9fWVsc2V7Zz0oIWIuZCYmKGIuZD1uZXcgWFpkKG83LGIsMSkpLGIuZCk7Zj1nLmk7bT0oIWMuZCYmKGMuZD1uZXcgWFpkKG83LGMsMSkpLGMuZCk7aWYoZj09bS5pKXtmb3Ioaj0wO2o8ZjsrK2ope2U9UkQoUUhkKGcsaiksODkpO2w9UkQoUUhkKG0saiksODkpO2lmKCFVJGQoYSxlLGwpKXtyZXR1cm4gZmFsc2V9fX1yZXR1cm4gdHJ1ZX19ZWxzZXtoPWIuZTtuPWMuZTtyZXR1cm4gaD09bn19fVxuZnVuY3Rpb24gdmdlKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGw7aWYocWtlKGEuZSxiKSl7bD1wa2UoYS5lLkRoKCksYik7Zj1SRChhLmcsMTI0KTtrPW51bGw7aT0tMTtoPS0xO2U9MDtmb3Ioaj0wO2o8YS5pOysrail7Zz1mW2pdO2lmKGwuYW0oZy5MaygpKSl7ZT09YyYmKGk9aik7aWYoZT09ZCl7aD1qO2s9Zy5tZCgpfSsrZX19aWYoaT09LTEpe3Rocm93IEFkYihuZXcgdmViKE1JZStjK05JZStlKSl9aWYoaD09LTEpe3Rocm93IEFkYihuZXcgdmViKE9JZStkK05JZStlKSl9dUxkKGEsaSxoKTtNdmQoYS5lKSYmZVpkKGEsZmdlKGEsNyxiLHNnYihkKSxrLGMsdHJ1ZSkpO3JldHVybiBrfWVsc2V7dGhyb3cgQWRiKG5ldyBhZ2IoJ1RoZSBmZWF0dXJlIG11c3QgYmUgbWFueS12YWx1ZWQgdG8gc3VwcG9ydCBtb3ZlJykpfX1cbmZ1bmN0aW9uIGoyYihhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2k9bmV3IHNqZChiLm4pO2kuYSs9Yi5vLmEvMjtpLmIrPWIuby5iLzI7aD1LZmIoVUQobVFiKGIsKHlDYygpLEFCYykpKSk7Zj1hLmY7Zz1hLmQ7ZT1hLmM7c3dpdGNoKFJEKG1RYihiLChZd2MoKSxod2MpKSw2NCkuZyl7Y2FzZSAxOmkuYSs9Zy5iK2UuYS1jLzI7aS5iPS1kLWg7Yi5uLmI9LShnLmQraCtlLmIpO2JyZWFrO2Nhc2UgMjppLmE9Zi5hK2cuYitnLmMraDtpLmIrPWcuZCtlLmItZC8yO2Iubi5hPWYuYStnLmMraC1lLmE7YnJlYWs7Y2FzZSAzOmkuYSs9Zy5iK2UuYS1jLzI7aS5iPWYuYitnLmQrZy5hK2g7Yi5uLmI9Zi5iK2cuYStoLWUuYjticmVhaztjYXNlIDQ6aS5hPS1jLWg7aS5iKz1nLmQrZS5iLWQvMjtiLm4uYT0tKGcuYitoK2UuYSk7fXJldHVybiBpfVxuZnVuY3Rpb24gWjRiKGEpe3ZhciBiLGMsZCxlLGYsZztkPW5ldyBkMWI7a1FiKGQsYSk7ZEUobVFiKGQsKHlDYygpLHJBYykpKT09PWRFKChDbWQoKSxBbWQpKSYmcFFiKGQsckFjLGkyYihkKSk7aWYobVFiKGQsKHJpZCgpLHFpZCkpPT1udWxsKXtnPVJEKExqZShhKSwxNjcpO3BRYihkLHFpZCxmRShnLm9mKHFpZCkpKX1wUWIoZCwoWXdjKCksQXdjKSxhKTtwUWIoZCxrd2MsKGI9UkQobWZiKGlYKSw5KSxuZXcgRnNiKGIsUkQoV0ViKGIsYi5sZW5ndGgpLDkpLDApKSk7ZT1GSmIoKCF2Q2QoYSk/bnVsbDoobHVkKCksbmV3IHp1ZCh2Q2QoYSkpKSxsdWQoKSxuZXcgRnVkKCF2Q2QoYSk/bnVsbDpuZXcgenVkKHZDZChhKSksYSkpLHptZCk7Zj1SRChtUWIoZCxxQmMpLDEwNyk7Yz1kLmQ7QjJiKGMsZik7QjJiKGMsZSk7cmV0dXJuIGR9XG5mdW5jdGlvbiBOZWMoYSxiLGMpe3ZhciBkLGU7ZD1iLmMuaTtlPWMuZC5pO2lmKGQuaz09KHIzYigpLG8zYikpe3BRYihhLChZd2MoKSx2d2MpLFJEKG1RYihkLHZ3YyksMTIpKTtwUWIoYSx3d2MsUkQobVFiKGQsd3djKSwxMikpO3BRYihhLHV3YyxURChtUWIoZCx1d2MpKSl9ZWxzZSBpZihkLms9PW4zYil7cFFiKGEsKFl3YygpLHZ3YyksUkQobVFiKGQsdndjKSwxMikpO3BRYihhLHd3YyxSRChtUWIoZCx3d2MpLDEyKSk7cFFiKGEsdXdjLChHZWIoKSx0cnVlKSl9ZWxzZSBpZihlLms9PW4zYil7cFFiKGEsKFl3YygpLHZ3YyksUkQobVFiKGUsdndjKSwxMikpO3BRYihhLHd3YyxSRChtUWIoZSx3d2MpLDEyKSk7cFFiKGEsdXdjLChHZWIoKSx0cnVlKSl9ZWxzZXtwUWIoYSwoWXdjKCksdndjKSxiLmMpO3BRYihhLHd3YyxjLmQpfX1cbmZ1bmN0aW9uIHdKYihhKXt2YXIgYixjLGQsZSxmLGcsaDthLm89bmV3IHdtYjtkPW5ldyBZdWI7Zm9yKGc9bmV3IEFuYihhLmUuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEyNSk7Q0liKGYpLmMubGVuZ3RoPT0xJiYoUHViKGQsZixkLmMuYixkLmMpLHRydWUpfXdoaWxlKGQuYiE9MCl7Zj1SRChkLmI9PTA/bnVsbDooc0ZiKGQuYiE9MCksV3ViKGQsZC5hLmEpKSwxMjUpO2lmKENJYihmKS5jLmxlbmd0aD09MCl7Y29udGludWV9Yj1SRChWbWIoQ0liKGYpLDApLDIxOCk7Yz1mLmcuYS5jLmxlbmd0aD4wO2g9b0liKGIsZik7Yz9GSWIoaC5iLGIpOkZJYihoLmcsYik7Q0liKGgpLmMubGVuZ3RoPT0xJiYoUHViKGQsaCxkLmMuYixkLmMpLHRydWUpO2U9bmV3IFB0ZChmLGIpO2htYihhLm8sZSk7WW1iKGEuZS5hLGYpfX1cbmZ1bmN0aW9uIFNRYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2Q9JHduZC5NYXRoLmFicyhPaWQoYS5iKS5hLU9pZChiLmIpLmEpO2g9JHduZC5NYXRoLmFicyhPaWQoYS5iKS5iLU9pZChiLmIpLmIpO2U9MDtpPTA7Yz0xO2c9MTtpZihkPmEuYi5iLzIrYi5iLmIvMil7ZT0kd25kLk1hdGgubWluKCR3bmQuTWF0aC5hYnMoYS5iLmMtKGIuYi5jK2IuYi5iKSksJHduZC5NYXRoLmFicyhhLmIuYythLmIuYi1iLmIuYykpO2M9MS1lL2R9aWYoaD5hLmIuYS8yK2IuYi5hLzIpe2k9JHduZC5NYXRoLm1pbigkd25kLk1hdGguYWJzKGEuYi5kLShiLmIuZCtiLmIuYSkpLCR3bmQuTWF0aC5hYnMoYS5iLmQrYS5iLmEtYi5iLmQpKTtnPTEtaS9ofWY9JHduZC5NYXRoLm1pbihjLGcpO3JldHVybiAoMS1mKSokd25kLk1hdGguc3FydChkKmQraCpoKX1cbmZ1bmN0aW9uIExVYyhhKXt2YXIgYixjLGQsZTtOVWMoYSxhLmUsYS5mLChkVmMoKSxiVmMpLHRydWUsYS5jLGEuaSk7TlVjKGEsYS5lLGEuZixiVmMsZmFsc2UsYS5jLGEuaSk7TlVjKGEsYS5lLGEuZixjVmMsdHJ1ZSxhLmMsYS5pKTtOVWMoYSxhLmUsYS5mLGNWYyxmYWxzZSxhLmMsYS5pKTtNVWMoYSxhLmMsYS5lLGEuZixhLmkpO2Q9bmV3IEprYihhLmksMCk7d2hpbGUoZC5iPGQuZC5nYygpKXtiPShzRmIoZC5iPGQuZC5nYygpKSxSRChkLmQuWGIoZC5jPWQuYisrKSwxMzEpKTtlPW5ldyBKa2IoYS5pLGQuYik7d2hpbGUoZS5iPGUuZC5nYygpKXtjPShzRmIoZS5iPGUuZC5nYygpKSxSRChlLmQuWGIoZS5jPWUuYisrKSwxMzEpKTtLVWMoYixjKX19V1VjKGEuaSxSRChtUWIoYS5kLChZd2MoKSxMd2MpKSwyMzQpKTtaVWMoYS5pKX1cbmZ1bmN0aW9uIEZYZChhLGIpe3ZhciBjLGQ7aWYoYiE9bnVsbCl7ZD1EWGQoYSk7aWYoZCl7aWYoKGQuaSYxKSE9MCl7aWYoZD09eGRiKXtyZXR1cm4gJEQoYil9ZWxzZSBpZihkPT1rRSl7cmV0dXJuIFpEKGIsMTcpfWVsc2UgaWYoZD09akUpe3JldHVybiBaRChiLDE2MSl9ZWxzZSBpZihkPT1nRSl7cmV0dXJuIFpEKGIsMjIyKX1lbHNlIGlmKGQ9PWhFKXtyZXR1cm4gWkQoYiwxODApfWVsc2UgaWYoZD09aUUpe3JldHVybiBfRChiKX1lbHNlIGlmKGQ9PXdkYil7cmV0dXJuIFpEKGIsMTkxKX1lbHNlIGlmKGQ9PWxFKXtyZXR1cm4gWkQoYiwxNjgpfX1lbHNle3JldHVybiBQUmQoKSxjPVJEKFdqYihPUmQsZCksNTcpLCFjfHxjLmZrKGIpfX1lbHNlIGlmKFpEKGIsNTgpKXtyZXR1cm4gYS5kbChSRChiLDU4KSl9fXJldHVybiBmYWxzZX1cbmZ1bmN0aW9uIHpxZSgpe3pxZT1nZWI7dmFyIGEsYixjLGQsZSxmLGcsaCxpO3hxZT0kQyhnRSxZSGUsMjgsMjU1LDE1LDEpO3lxZT0kQyhoRSx6d2UsMjgsNjQsMTUsMSk7Zm9yKGI9MDtiPDI1NTtiKyspe3hxZVtiXT0tMX1mb3IoYz05MDtjPj02NTtjLS0pe3hxZVtjXT1jLTY1PDwyND4+MjR9Zm9yKGQ9MTIyO2Q+PTk3O2QtLSl7eHFlW2RdPWQtOTcrMjY8PDI0Pj4yNH1mb3IoZT01NztlPj00ODtlLS0pe3hxZVtlXT1lLTQ4KzUyPDwyND4+MjR9eHFlWzQzXT02Mjt4cWVbNDddPTYzO2ZvcihmPTA7Zjw9MjU7ZisrKXlxZVtmXT02NStmJkJ3ZTtmb3IoZz0yNixpPTA7Zzw9NTE7KytnLGkrKyl5cWVbZ109OTcraSZCd2U7Zm9yKGE9NTIsaD0wO2E8PTYxOysrYSxoKyspeXFlW2FdPTQ4K2gmQndlO3lxZVs2Ml09NDM7eXFlWzYzXT00N31cbmZ1bmN0aW9uIHVpYihhLGIpe3ZhciBjLGQsZSxmLGcsaDtlPXhpYihhKTtoPXhpYihiKTtpZihlPT1oKXtpZihhLmU9PWIuZSYmYS5hPDU0JiZiLmE8NTQpe3JldHVybiBhLmY8Yi5mPy0xOmEuZj5iLmY/MTowfWQ9YS5lLWIuZTtjPShhLmQ+MD9hLmQ6JHduZC5NYXRoLmZsb29yKChhLmEtMSkqeHhlKSsxKS0oYi5kPjA/Yi5kOiR3bmQuTWF0aC5mbG9vcigoYi5hLTEpKnh4ZSkrMSk7aWYoYz5kKzEpe3JldHVybiBlfWVsc2UgaWYoYzxkLTEpe3JldHVybiAtZX1lbHNle2Y9KCFhLmMmJihhLmM9b2piKEhkYihhLmYpKSksYS5jKTtnPSghYi5jJiYoYi5jPW9qYihIZGIoYi5mKSkpLGIuYyk7ZDwwPyhmPVdpYihmLFNqYigtZCkpKTpkPjAmJihnPVdpYihnLFNqYihkKSkpO3JldHVybiBRaWIoZixnKX19ZWxzZSByZXR1cm4gZTxoPy0xOjF9XG5mdW5jdGlvbiBwVWIoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs7Yy5VZyhQemUsMSk7YS52ZihiKTtmPTA7d2hpbGUoYS54ZihmKSYmIWMuJGcoKSl7YS53ZigpO2ZvcihrPUZsKEFsKGNEKFdDKGNKLDEpLHJ2ZSwyMCwwLFtiLmUsYi5kLGIuYl0pKSk7Z3Moayk7KXtpPVJEKGhzKGspLDMwOSk7Zm9yKGg9RmwoQWwoY0QoV0MoY0osMSkscnZlLDIwLDAsW2IuZSxiLmQsYi5iXSkpKTtncyhoKTspe2c9UkQoaHMoaCksMzA5KTtpZihnIT1pKXtlPWEudWYoZyxpKTshIWUmJiRpZChpLmMsZSl9fX1mb3Ioaj1GbChBbChjRChXQyhjSiwxKSxydmUsMjAsMCxbYi5lLGIuZCxiLmJdKSkpO2dzKGopOyl7aT1SRChocyhqKSwzMDkpO2Q9aS5jO19pZChkLC1hLmQsLWEuZCxhLmQsYS5kKTskaWQoaS5kLGQpO2QuYT0wO2QuYj0wfSsrZn1jLlZnKCl9XG5mdW5jdGlvbiBIJGIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG47aWYoYS5kYygpKXtyZXR1cm4gbmV3IHBqZH1qPTA7bD0wO2ZvcihlPWEuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSwzNik7Zj1kLmY7aj0kd25kLk1hdGgubWF4KGosZi5hKTtsKz1mLmEqZi5ifWo9JHduZC5NYXRoLm1heChqLCR3bmQuTWF0aC5zcXJ0KGwpKktmYihVRChtUWIoUkQoYS5LYygpLlBiKCksMzYpLCh5Q2MoKSxUemMpKSkpKTttPTA7bj0wO2k9MDtjPWI7Zm9yKGg9YS5LYygpO2guT2IoKTspe2c9UkQoaC5QYigpLDM2KTtrPWcuZjtpZihtK2suYT5qKXttPTA7bis9aStiO2k9MH13JGIoZyxtLG4pO2M9JHduZC5NYXRoLm1heChjLG0ray5hKTtpPSR3bmQuTWF0aC5tYXgoaSxrLmIpO20rPWsuYStifXJldHVybiBuZXcgcmpkKGMrYixuK2krYil9XG5mdW5jdGlvbiBvc2QoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtpZighTUNkKGEpKXt0aHJvdyBBZGIobmV3IGRnYihzSGUpKX1kPU1DZChhKTtmPWQuZztlPWQuZjtpZihmPD0wJiZlPD0wKXtyZXR1cm4gcXBkKCksb3BkfWg9YS5pO2k9YS5qO3N3aXRjaChiLmcpe2Nhc2UgMjpjYXNlIDE6aWYoaDwwKXtyZXR1cm4gcXBkKCkscHBkfWVsc2UgaWYoaCthLmc+Zil7cmV0dXJuIHFwZCgpLFhvZH1icmVhaztjYXNlIDQ6Y2FzZSAzOmlmKGk8MCl7cmV0dXJuIHFwZCgpLFlvZH1lbHNlIGlmKGkrYS5mPmUpe3JldHVybiBxcGQoKSxucGR9fWc9KGgrYS5nLzIpL2Y7Yz0oaSthLmYvMikvZTtyZXR1cm4gZytjPD0xJiZnLWM8PTA/KHFwZCgpLHBwZCk6ZytjPj0xJiZnLWM+PTA/KHFwZCgpLFhvZCk6YzwwLjU/KHFwZCgpLFlvZCk6KHFwZCgpLG5wZCl9XG5mdW5jdGlvbiBEamIoYSxiLGMsZCxlKXt2YXIgZixnO2Y9QmRiKENkYihiWzBdLHl4ZSksQ2RiKGRbMF0seXhlKSk7YVswXT1ZZGIoZik7Zj1UZGIoZiwzMik7aWYoYz49ZSl7Zm9yKGc9MTtnPGU7ZysrKXtmPUJkYihmLEJkYihDZGIoYltnXSx5eGUpLENkYihkW2ddLHl4ZSkpKTthW2ddPVlkYihmKTtmPVRkYihmLDMyKX1mb3IoO2c8YztnKyspe2Y9QmRiKGYsQ2RiKGJbZ10seXhlKSk7YVtnXT1ZZGIoZik7Zj1UZGIoZiwzMil9fWVsc2V7Zm9yKGc9MTtnPGM7ZysrKXtmPUJkYihmLEJkYihDZGIoYltnXSx5eGUpLENkYihkW2ddLHl4ZSkpKTthW2ddPVlkYihmKTtmPVRkYihmLDMyKX1mb3IoO2c8ZTtnKyspe2Y9QmRiKGYsQ2RiKGRbZ10seXhlKSk7YVtnXT1ZZGIoZik7Zj1UZGIoZiwzMil9fURkYihmLDApIT0wJiYoYVtnXT1ZZGIoZikpfVxuZnVuY3Rpb24geXRlKGEpe1ZzZSgpO3ZhciBiLGMsZCxlLGYsZztpZihhLmUhPTQmJmEuZSE9NSl0aHJvdyBBZGIobmV3IGFnYignVG9rZW4jY29tcGxlbWVudFJhbmdlcygpOiBtdXN0IGJlIFJBTkdFOiAnK2EuZSkpO2Y9YTt2dGUoZik7c3RlKGYpO2Q9Zi5iLmxlbmd0aCsyO2YuYlswXT09MCYmKGQtPTIpO2M9Zi5iW2YuYi5sZW5ndGgtMV07Yz09TUxlJiYoZC09Mik7ZT0oKytVc2UsbmV3IHh0ZSg0KSk7ZS5iPSRDKGtFLFB3ZSwyOCxkLDE1LDEpO2c9MDtpZihmLmJbMF0+MCl7ZS5iW2crK109MDtlLmJbZysrXT1mLmJbMF0tMX1mb3IoYj0xO2I8Zi5iLmxlbmd0aC0yO2IrPTIpe2UuYltnKytdPWYuYltiXSsxO2UuYltnKytdPWYuYltiKzFdLTF9aWYoYyE9TUxlKXtlLmJbZysrXT1jKzE7ZS5iW2ddPU1MZX1lLmE9dHJ1ZTtyZXR1cm4gZX1cbmZ1bmN0aW9uIHphYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztiLlVnKCdMYXllciBjb25zdHJhaW50IGVkZ2UgcmV2ZXJzYWwnLDEpO2ZvcihnPW5ldyBBbmIoYS5iKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMzApO2s9LTE7Yz1uZXcgYm5iO2o9dDJiKGYuYSk7Zm9yKGU9MDtlPGoubGVuZ3RoO2UrKyl7ZD1SRChtUWIoaltlXSwoWXdjKCksb3djKSksMzExKTtpZihrPT0tMSl7ZCE9KEd2YygpLEZ2YykmJihrPWUpfWVsc2V7aWYoZD09KEd2YygpLEZ2Yykpe2czYihqW2VdLG51bGwpO2YzYihqW2VdLGsrKyxmKX19ZD09KEd2YygpLER2YykmJihaRWIoYy5jLGpbZV0pLHRydWUpfWZvcihpPW5ldyBBbmIoYyk7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDEwKTtnM2IoaCxudWxsKTtnM2IoaCxmKX19Yi5WZygpfVxuZnVuY3Rpb24gbkxkKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrO2Q9Yy5nYygpO2lmKGQ9PTApe3JldHVybiBmYWxzZX1lbHNle2lmKGEuUGooKSl7aj1hLlFqKCk7SUhkKGEsYixjKTtnPWQ9PTE/YS5JaigzLG51bGwsYy5LYygpLlBiKCksYixqKTphLklqKDUsbnVsbCxjLGIsaik7aWYoYS5NaigpKXtoPWQ8MTAwP251bGw6bmV3IGdMZChkKTtmPWIrZDtmb3IoZT1iO2U8ZjsrK2Upe2s9YS5nW2VdO2g9YS5OaihrLGgpO2g9YS5VaihrLGgpfWlmKCFoKXthLkpqKGcpfWVsc2V7aC5uaihnKTtoLm9qKCl9fWVsc2V7YS5KaihnKX19ZWxzZXtJSGQoYSxiLGMpO2lmKGEuTWooKSl7aD1kPDEwMD9udWxsOm5ldyBnTGQoZCk7Zj1iK2Q7Zm9yKGU9YjtlPGY7KytlKXtpPWEuZ1tlXTtoPWEuTmooaSxoKX0hIWgmJmgub2ooKX19cmV0dXJuIHRydWV9fVxuZnVuY3Rpb24gbTliKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrO2IuVWcoJ0hpZXJhcmNoaWNhbCBwb3J0IGR1bW15IHNpemUgcHJvY2Vzc2luZycsMSk7aT1uZXcgYm5iO2s9bmV3IGJuYjtkPUtmYihVRChtUWIoYSwoeUNjKCksVUJjKSkpKTtjPWQqMjtmb3IoZj1uZXcgQW5iKGEuYik7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDMwKTtpLmMubGVuZ3RoPTA7ay5jLmxlbmd0aD0wO2ZvcihoPW5ldyBBbmIoZS5hKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTApO2lmKGcuaz09KHIzYigpLG0zYikpe2o9UkQobVFiKGcsKFl3YygpLGh3YykpLDY0KTtqPT0ocXBkKCksWW9kKT8oWkViKGkuYyxnKSx0cnVlKTpqPT1ucGQmJihaRWIoay5jLGcpLHRydWUpfX1uOWIoaSx0cnVlLGMpO245YihrLGZhbHNlLGMpfWIuVmcoKX1cbmZ1bmN0aW9uIHdTYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2ZvcihnPW5ldyBBbmIoYS5rKTtnLmE8Zy5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZyksMTMyKTtpZighZHx8ZS5jPT0oZlRjKCksZFRjKSl7aT1lLmI7aWYoaS5nPDAmJmUuZD4wKXtQU2MoaSxpLmQtZS5kKTtlLmM9PShmVGMoKSxkVGMpJiZOU2MoaSxpLmEtZS5kKTtpLmQ8PTAmJmkuaT4wJiYoUHViKGIsaSxiLmMuYixiLmMpLHRydWUpfX19Zm9yKGY9bmV3IEFuYihhLmYpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMzIpO2lmKCFkfHxlLmM9PShmVGMoKSxkVGMpKXtoPWUuYTtpZihoLmc8MCYmZS5kPjApe1FTYyhoLGguaS1lLmQpO2UuYz09KGZUYygpLGRUYykmJk9TYyhoLGguYi1lLmQpO2guaTw9MCYmaC5kPjAmJihQdWIoYyxoLGMuYy5iLGMuYyksdHJ1ZSl9fX19XG5mdW5jdGlvbiBkcmQoYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG47eW9iKCk7X21iKGEsbmV3IE1yZCk7Zz1ndihhKTtuPW5ldyBibmI7bT1uZXcgYm5iO2g9bnVsbDtpPTA7d2hpbGUoZy5iIT0wKXtmPVJEKGcuYj09MD9udWxsOihzRmIoZy5iIT0wKSxXdWIoZyxnLmEuYSkpLDE2Myk7aWYoIWh8fHVyZChoKSp0cmQoaCkvMjx1cmQoZikqdHJkKGYpKXtoPWY7WkViKG4uYyxmKX1lbHNle2krPXVyZChmKSp0cmQoZik7WkViKG0uYyxmKTtpZihtLmMubGVuZ3RoPjEmJihpPnVyZChoKSp0cmQoaCkvMnx8Zy5iPT0wKSl7bD1uZXcgenJkKG0pO2s9dXJkKGgpL3RyZChoKTtqPWlyZChsLGIsbmV3IHozYixjLGQsZSxrKTskaWQoaGpkKGwuZSksaik7aD1sO1pFYihuLmMsbCk7aT0wO20uYy5sZW5ndGg9MH19fVRtYihuLG0pO3JldHVybiBufVxuZnVuY3Rpb24gaGliKGEsYixjLGQsZSl7Z2liKCk7dmFyIGYsZyxoLGksaixrLGw7dkZiKGEsJ3NyYycpO3ZGYihjLCdkZXN0Jyk7bD1yYihhKTtpPXJiKGMpO3FGYigobC5pJjQpIT0wLCdzcmNUeXBlIGlzIG5vdCBhbiBhcnJheScpO3FGYigoaS5pJjQpIT0wLCdkZXN0VHlwZSBpcyBub3QgYW4gYXJyYXknKTtrPWwuYztnPWkuYztxRmIoKGsuaSYxKSE9MD9rPT1nOihnLmkmMSk9PTAsXCJBcnJheSB0eXBlcyBkb24ndCBtYXRjaFwiKTtpaWIoYSxiLGMsZCxlKTtpZigoay5pJjEpPT0wJiZsIT1pKXtqPVNEKGEpO2Y9U0QoYyk7aWYoZEUoYSk9PT1kRShjKSYmYjxkKXtiKz1lO2ZvcihoPWQrZTtoLS0+ZDspe2JEKGYsaCxqWy0tYl0pfX1lbHNle2ZvcihoPWQrZTtkPGg7KXtiRChmLGQrKyxqW2IrK10pfX19ZWxzZXtWRWIoYSxiLGMsZCxlLHRydWUpfX1cbmZ1bmN0aW9uIGNyZChhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztiLlVnKCdCb3ggbGF5b3V0JywyKTtlPU1mYihVRChHeGQoYSwoaGtkKCksZ2tkKSkpKTtmPVJEKEd4ZChhLGRrZCksMTA3KTtjPUhlYihURChHeGQoYSwkamQpKSk7ZD1IZWIoVEQoR3hkKGEsX2pkKSkpO3N3aXRjaChSRChHeGQoYSxZamQpLDMyMCkuZyl7Y2FzZSAwOmc9KGs9bmV3IGRuYigoIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpKSx5b2IoKSxfbWIoayxuZXcgcHJkKGQpKSxrKTtoPXZzZChhKTtpPVVEKEd4ZChhLFhqZCkpOyhpPT1udWxsfHwodUZiKGkpLGkpPD0wKSYmKGk9MS4zKTtqPWdyZChnLGUsZixoLmEsaC5iLGMsKHVGYihpKSxpKSk7RXNkKGEsai5hLGouYixmYWxzZSx0cnVlKTticmVhaztkZWZhdWx0OmhyZChhLGUsZixjKTt9Yi5WZygpfVxuZnVuY3Rpb24gdVVjKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxuLG87bT10VWMoYSxjKTtmb3IoaT0wO2k8YjtpKyspe0lrYihlLGMpO249bmV3IGJuYjtvPShzRmIoZC5iPGQuZC5nYygpKSxSRChkLmQuWGIoZC5jPWQuYisrKSw0MTgpKTtmb3Ioaz1tK2k7azxhLmI7aysrKXtoPW87bz0oc0ZiKGQuYjxkLmQuZ2MoKSksUkQoZC5kLlhiKGQuYz1kLmIrKyksNDE4KSk7Um1iKG4sbmV3IEFVYyhoLG8sYykpfWZvcihsPW0raTtsPGEuYjtsKyspe3NGYihkLmI+MCk7ZC5hLlhiKGQuYz0tLWQuYik7bD5tK2kmJkNrYihkKX1mb3IoZz1uZXcgQW5iKG4pO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSw0MTgpO0lrYihkLGYpfWlmKGk8Yi0xKXtmb3Ioaj1tK2k7ajxhLmI7aisrKXtzRmIoZC5iPjApO2QuYS5YYihkLmM9LS1kLmIpfX19fVxuZnVuY3Rpb24gZ3RlKCl7VnNlKCk7dmFyIGEsYixjLGQsZSxmO2lmKEZzZSlyZXR1cm4gRnNlO2E9KCsrVXNlLG5ldyB4dGUoNCkpO3V0ZShhLGh0ZShXTGUsdHJ1ZSkpO3d0ZShhLGh0ZSgnTScsdHJ1ZSkpO3d0ZShhLGh0ZSgnQycsdHJ1ZSkpO2Y9KCsrVXNlLG5ldyB4dGUoNCkpO2ZvcihkPTA7ZDwxMTtkKyspe3J0ZShmLGQsZCl9Yj0oKytVc2UsbmV3IHh0ZSg0KSk7dXRlKGIsaHRlKCdNJyx0cnVlKSk7cnRlKGIsNDQ0OCw0NjA3KTtydGUoYiw2NTQzOCw2NTQzOSk7ZT0oKytVc2UsbmV3IGl1ZSgyKSk7aHVlKGUsYSk7aHVlKGUsRXNlKTtjPSgrK1VzZSxuZXcgaXVlKDIpKTtjLkptKCRzZShmLGh0ZSgnTCcsdHJ1ZSkpKTtjLkptKGIpO2M9KCsrVXNlLG5ldyBLdGUoMyxjKSk7Yz0oKytVc2UsbmV3IFF0ZShlLGMpKTtGc2U9YztyZXR1cm4gRnNlfVxuZnVuY3Rpb24gdmhiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksajtjPW5ldyBSZWdFeHAoYiwnZycpO2k9JEMocUosTnZlLDIsMCw2LDEpO2Q9MDtqPWE7Zj1udWxsO3doaWxlKHRydWUpe2g9Yy5leGVjKGopO2lmKGg9PW51bGx8fGo9PScnKXtpW2RdPWo7YnJlYWt9ZWxzZXtnPWguaW5kZXg7aVtkXT0oQUZiKDAsZyxqLmxlbmd0aCksai5zdWJzdHIoMCxnKSk7aj16aGIoaixnK2hbMF0ubGVuZ3RoLGoubGVuZ3RoKTtjLmxhc3RJbmRleD0wO2lmKGY9PWope2lbZF09KEFGYigwLDEsai5sZW5ndGgpLGouc3Vic3RyKDAsMSkpO2o9KEJGYigxLGoubGVuZ3RoKzEpLGouc3Vic3RyKDEpKX1mPWo7KytkfX1pZihhLmxlbmd0aD4wKXtlPWkubGVuZ3RoO3doaWxlKGU+MCYmaVtlLTFdPT0nJyl7LS1lfWU8aS5sZW5ndGgmJihpLmxlbmd0aD1lKX1yZXR1cm4gaX1cbmZ1bmN0aW9uIGhfYygpe2hfYz1nZWI7VSRjPW5ldyBBM2IoMjApO1QkYz1uZXcgbUdkKCh1bWQoKSx0bGQpLFUkYyk7XyRjPW5ldyBtR2QoZm1kLDIwKTskJGM9bmV3IG1HZChfbGQsMyk7RSRjPW5ldyBtR2QoRGtkLFl6ZSk7WCRjPW5ldyBtR2QoUmxkLHNnYigxKSk7WiRjPW5ldyBtR2QoVmxkLChHZWIoKSx0cnVlKSk7RyRjPU1rZDtJJGM9KENtZCgpLEFtZCk7SCRjPW5ldyBtR2QoTmtkLEkkYyk7TCRjPWFsZDtNJGM9YmxkO08kYz1rbGQ7UCRjPW1sZDtRJGM9bmxkO1IkYz1wbGQ7TiRjPWlsZDtTJGM9c2xkO1YkYz1MbGQ7Z19jPShCJGMoKSx6JGMpO1kkYz13JGM7Y19jPW1tZDtlX2M9cW1kO2JfYz1sbWQ7YV9jPWttZDtkX2M9KG1xZCgpLGpxZCk7bmV3IG1HZChubWQsZF9jKTtXJGM9diRjO0skYz10JGM7Zl9jPXkkYztGJGM9ciRjO0okYz1zJGN9XG5mdW5jdGlvbiBiZ2QoYSl7dmFyIGIsYztiPVdEKEd4ZChhLCh1bWQoKSxBa2QpKSk7aWYoY2dkKGIsYSkpe3JldHVybn1pZighSHhkKGEsVGxkKSYmKCghYS5hJiYoYS5hPW5ldyBDNWQoSjQsYSwxMCwxMSkpLGEuYSkuaSE9MHx8SGViKFREKEd4ZChhLCRrZCkpKSkpe2lmKGI9PW51bGx8fERoYihiKS5sZW5ndGg9PTApe2lmKCFjZ2Qoc3hlLGEpKXtjPVpoYihaaGIobmV3IGRpYignVW5hYmxlIHRvIGxvYWQgZGVmYXVsdCBsYXlvdXQgYWxnb3JpdGhtICcpLHN4ZSksJyBmb3IgdW5jb25maWd1cmVkIG5vZGUgJyk7Q3NkKGEsYyk7dGhyb3cgQWRiKG5ldyBKZWQoYy5hKSl9fWVsc2V7Yz1aaGIoWmhiKG5ldyBkaWIoXCJMYXlvdXQgYWxnb3JpdGhtICdcIiksYiksXCInIG5vdCBmb3VuZCBmb3IgXCIpO0NzZChhLGMpO3Rocm93IEFkYihuZXcgSmVkKGMuYSkpfX19XG5mdW5jdGlvbiAkS2IoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG47Yz1hLmk7Yj1hLm47aWYoYS5iPT0wKXtuPWMuYytiLmI7bT1jLmItYi5iLWIuYztmb3IoZz1hLmEsaT0wLGs9Zy5sZW5ndGg7aTxrOysraSl7ZT1nW2ldO2RLYihlLG4sbSl9fWVsc2V7ZD1iTGIoYSxmYWxzZSk7ZEtiKGEuYVswXSxjLmMrYi5iLGRbMF0pO2RLYihhLmFbMl0sYy5jK2MuYi1iLmMtZFsyXSxkWzJdKTtsPWMuYi1iLmItYi5jO2lmKGRbMF0+MCl7bC09ZFswXSthLmM7ZFswXSs9YS5jfWRbMl0+MCYmKGwtPWRbMl0rYS5jKTtkWzFdPSR3bmQuTWF0aC5tYXgoZFsxXSxsKTtkS2IoYS5hWzFdLGMuYytiLmIrZFswXS0oZFsxXS1sKS8yLGRbMV0pfWZvcihmPWEuYSxoPTAsaj1mLmxlbmd0aDtoPGo7KytoKXtlPWZbaF07WkQoZSwzMzYpJiZSRChlLDMzNikubGYoKX19XG5mdW5jdGlvbiBpUmMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbDtsPW5ldyBoUmM7bC5kPTA7Zm9yKGc9bmV3IEFuYihhLmIpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwzMCk7bC5kKz1mLmEuYy5sZW5ndGh9ZD0wO2U9MDtsLmE9JEMoa0UsUHdlLDI4LGEuYi5jLmxlbmd0aCwxNSwxKTtqPTA7az0wO2wuZT0kQyhrRSxQd2UsMjgsbC5kLDE1LDEpO2ZvcihjPW5ldyBBbmIoYS5iKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMzApO2IucD1kKys7bC5hW2IucF09ZSsrO2s9MDtmb3IoaT1uZXcgQW5iKGIuYSk7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDEwKTtoLnA9aisrO2wuZVtoLnBdPWsrK319bC5jPW5ldyBtUmMobCk7bC5iPWV2KGwuZCk7alJjKGwsYSk7bC5mPWV2KGwuZCk7a1JjKGwsYSk7cmV0dXJuIGx9XG5mdW5jdGlvbiBNOWMoYSxiKXt2YXIgYyxkLGUsZjtmPVJEKFZtYihhLm4sYS5uLmMubGVuZ3RoLTEpLDIwOSkuZDthLnA9JHduZC5NYXRoLm1pbihhLnAsYi5nKTthLnI9JHduZC5NYXRoLm1heChhLnIsZik7YS5nPSR3bmQuTWF0aC5tYXgoYS5nLGIuZysoYS5iLmMubGVuZ3RoPT0xPzA6YS5pKSk7YS5vPSR3bmQuTWF0aC5taW4oYS5vLGIuZik7YS5lKz1iLmYrKGEuYi5jLmxlbmd0aD09MT8wOmEuaSk7YS5mPSR3bmQuTWF0aC5tYXgoYS5mLGIuZik7ZT1hLm4uYy5sZW5ndGg+MD8oYS5uLmMubGVuZ3RoLTEpKmEuaTowO2ZvcihkPW5ldyBBbmIoYS5uKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMjA5KTtlKz1jLmF9YS5kPWU7YS5hPWEuZS9hLmIuYy5sZW5ndGgtYS5pKigoYS5iLmMubGVuZ3RoLTEpL2EuYi5jLmxlbmd0aCk7RWFkKGEuail9XG5mdW5jdGlvbiBDVGIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbDtrPVREKG1RYihiLCh5VmIoKSxwVmIpKSk7aWYoaz09bnVsbHx8KHVGYihrKSxrKSl7bD0kQyh4ZGIsSHllLDI4LGIuZS5jLmxlbmd0aCwxNiwxKTtnPXlUYihiKTtlPW5ldyBZdWI7Zm9yKGo9bmV3IEFuYihiLmUpO2ouYTxqLmMuYy5sZW5ndGg7KXtoPVJEKHluYihqKSwxNTMpO2M9elRiKGEsaCxudWxsLG51bGwsbCxnKTtpZihjKXtrUWIoYyxiKTtQdWIoZSxjLGUuYy5iLGUuYyl9fWlmKGUuYj4xKXtmb3IoZD1TdWIoZSwwKTtkLmIhPWQuZC5jOyl7Yz1SRChldmIoZCksMjM1KTtmPTA7Zm9yKGk9bmV3IEFuYihjLmUpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxNTMpO2guYT1mKyt9fX1yZXR1cm4gZX1yZXR1cm4gZHYoY0QoV0ModFAsMSksSnplLDIzNSwwLFtiXSkpfVxuZnVuY3Rpb24gcllkKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2lmKCFhLmcpe2g9bmV3IFokZDtiPWlZZDtnPWIuYS56YyhhLGIpO2lmKGc9PW51bGwpe2ZvcihkPW5ldyBkTWQoellkKGEpKTtkLmUhPWQuaS5nYygpOyl7Yz1SRChiTWQoZCksMjkpO1lHZChoLHJZZChjKSl9Yi5hLkJjKGEpIT1udWxsO2IuYS5nYygpPT0wJiZ1bmRlZmluZWR9ZT1oLmk7Zm9yKGY9KCFhLnMmJihhLnM9bmV3IEM1ZCh5NyxhLDIxLDE3KSksbmV3IGRNZChhLnMpKTtmLmUhPWYuaS5nYygpOysrZSl7QldkKFJEKGJNZChmKSw0NjIpLGUpfVlHZChoLCghYS5zJiYoYS5zPW5ldyBDNWQoeTcsYSwyMSwxNykpLGEucykpO1ZIZChoKTthLmc9bmV3IFIkZChhLGgpO2EuaT1SRChoLmcsMjU0KTthLmk9PW51bGwmJihhLmk9a1lkKTthLnA9bnVsbDt5WWQoYSkuYiY9LTV9cmV0dXJuIGEuZ31cbmZ1bmN0aW9uIHllZShhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztjPWIucWkoYS5hKTtpZihjKXtpPVdEKCROZCgoIWMuYiYmKGMuYj1uZXcgU1ZkKChKVGQoKSxGVGQpLEM4LGMpKSxjLmIpLCdtZW1iZXJUeXBlcycpKTtpZihpIT1udWxsKXtqPW5ldyBibmI7Zm9yKGY9dmhiKGksJ1xcXFx3JyksZz0wLGg9Zi5sZW5ndGg7ZzxoOysrZyl7ZT1mW2ddO2Q9ZS5sYXN0SW5kZXhPZignIycpO2s9ZD09LTE/V2VlKGEsYi5qaygpLGUpOmQ9PTA/VmVlKGEsbnVsbCwoQkZiKDEsZS5sZW5ndGgrMSksZS5zdWJzdHIoMSkpKTpWZWUoYSwoQUZiKDAsZCxlLmxlbmd0aCksZS5zdWJzdHIoMCxkKSksKEJGYihkKzEsZS5sZW5ndGgrMSksZS5zdWJzdHIoZCsxKSkpO1pEKGssMTU2KSYmUm1iKGosUkQoaywxNTYpKX1yZXR1cm4gan19cmV0dXJuIHlvYigpLHlvYigpLHZvYn1cbmZ1bmN0aW9uIF9LYihhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvO2Q9YS5pO2M9YS5uO2lmKGEuYj09MCl7Yj1hTGIoYSxmYWxzZSk7ZUtiKGEuYVswXSxkLmQrYy5kLGJbMF0pO2VLYihhLmFbMl0sZC5kK2QuYS1jLmEtYlsyXSxiWzJdKTttPWQuYS1jLmQtYy5hO2w9bTtpZihiWzBdPjApe2JbMF0rPWEuYztsLT1iWzBdfWJbMl0+MCYmKGwtPWJbMl0rYS5jKTtiWzFdPSR3bmQuTWF0aC5tYXgoYlsxXSxsKTtlS2IoYS5hWzFdLGQuZCtjLmQrYlswXS0oYlsxXS1sKS8yLGJbMV0pfWVsc2V7bz1kLmQrYy5kO249ZC5hLWMuZC1jLmE7Zm9yKGc9YS5hLGk9MCxrPWcubGVuZ3RoO2k8azsrK2kpe2U9Z1tpXTtlS2IoZSxvLG4pfX1mb3IoZj1hLmEsaD0wLGo9Zi5sZW5ndGg7aDxqOysraCl7ZT1mW2hdO1pEKGUsMzM2KSYmUkQoZSwzMzYpLm1mKCl9fVxuZnVuY3Rpb24gRXJjKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrO2s9JEMoa0UsUHdlLDI4LGEuYi5jLmxlbmd0aCsxLDE1LDEpO2o9bmV3IF9zYjtkPTA7Zm9yKGY9bmV3IEFuYihhLmIpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwzMCk7a1tkKytdPWouYS5nYygpO2ZvcihpPW5ldyBBbmIoZS5hKTtpLmE8aS5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaSksMTApO2ZvcihjPW5ldyBpcyhNcihhM2IoZykuYS5LYygpLG5ldyBpcikpO2dzKGMpOyl7Yj1SRChocyhjKSwxOCk7ai5hLnpjKGIsail9fWZvcihoPW5ldyBBbmIoZS5hKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTApO2ZvcihjPW5ldyBpcyhNcihaMmIoZykuYS5LYygpLG5ldyBpcikpO2dzKGMpOyl7Yj1SRChocyhjKSwxOCk7ai5hLkJjKGIpIT1udWxsfX19cmV0dXJuIGt9XG5mdW5jdGlvbiBkZ2UoYSxiLGMsZCl7dmFyIGUsZixnLGgsaTtpPXBrZShhLmUuRGgoKSxiKTtlPVJEKGEuZywxMjQpO25rZSgpO2lmKFJEKGIsNjkpLnhrKCkpe2ZvcihnPTA7ZzxhLmk7KytnKXtmPWVbZ107aWYoaS5hbShmLkxrKCkpJiZwYihmLGMpKXtyZXR1cm4gdHJ1ZX19fWVsc2UgaWYoYyE9bnVsbCl7Zm9yKGg9MDtoPGEuaTsrK2gpe2Y9ZVtoXTtpZihpLmFtKGYuTGsoKSkmJnBiKGMsZi5tZCgpKSl7cmV0dXJuIHRydWV9fWlmKGQpe2ZvcihnPTA7ZzxhLmk7KytnKXtmPWVbZ107aWYoaS5hbShmLkxrKCkpJiZkRShjKT09PWRFKEFnZShhLFJEKGYubWQoKSw1OCkpKSl7cmV0dXJuIHRydWV9fX19ZWxzZXtmb3IoZz0wO2c8YS5pOysrZyl7Zj1lW2ddO2lmKGkuYW0oZi5MaygpKSYmZi5tZCgpPT1udWxsKXtyZXR1cm4gZmFsc2V9fX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiB3ZWUoYSxiKXt2YXIgYyxkLGUsZixnLGg7Yz1iLnFpKGEuYSk7aWYoYyl7aD1XRCgkTmQoKCFjLmImJihjLmI9bmV3IFNWZCgoSlRkKCksRlRkKSxDOCxjKSksYy5iKSxGSWUpKTtpZihoIT1udWxsKXtlPXRoYihoLEZoYigzNSkpO2Q9Yi5xaygpO2lmKGU9PS0xKXtnPVVlZShhLEJYZChkKSk7Zj1ofWVsc2UgaWYoZT09MCl7Zz1udWxsO2Y9KEJGYigxLGgubGVuZ3RoKzEpLGguc3Vic3RyKDEpKX1lbHNle2c9KEFGYigwLGUsaC5sZW5ndGgpLGguc3Vic3RyKDAsZSkpO2Y9KEJGYihlKzEsaC5sZW5ndGgrMSksaC5zdWJzdHIoZSsxKSl9c3dpdGNoKHlmZShRZWUoYSxiKSkpe2Nhc2UgMjpjYXNlIDM6e3JldHVybiBKZWUoYSxkLGcsZil9Y2FzZSAwOmNhc2UgNDpjYXNlIDU6Y2FzZSA2OntyZXR1cm4gTWVlKGEsZCxnLGYpfX19fXJldHVybiBudWxsfVxuZnVuY3Rpb24gRlFiKGEsYixjLGQpe3ZhciBlLGYsZyxoO2g9Yztmb3IoZz1uZXcgQW5iKGIuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDIyNSk7ZT1SRChmLmIsNjgpO2lmKCR5KGEuYi5jLGUuYi5jK2UuYi5iKTw9MCYmJHkoZS5iLmMsYS5iLmMrYS5iLmIpPD0wJiYkeShhLmIuZCxlLmIuZCtlLmIuYSk8PTAmJiR5KGUuYi5kLGEuYi5kK2EuYi5hKTw9MCl7aWYoJHkoZS5iLmMsYS5iLmMrYS5iLmIpPT0wJiZkLmE8MHx8JHkoZS5iLmMrZS5iLmIsYS5iLmMpPT0wJiZkLmE+MHx8JHkoZS5iLmQsYS5iLmQrYS5iLmEpPT0wJiZkLmI8MHx8JHkoZS5iLmQrZS5iLmEsYS5iLmQpPT0wJiZkLmI+MCl7aD0wO2JyZWFrfX1lbHNle2g9JHduZC5NYXRoLm1pbihoLFBRYihhLGUsZCkpfWg9JHduZC5NYXRoLm1pbihoLEZRYihhLGYsaCxkKSl9cmV0dXJuIGh9XG5mdW5jdGlvbiBsc2QoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtpZihhLmI8Mil7dGhyb3cgQWRiKG5ldyBhZ2IoJ1RoZSB2ZWN0b3IgY2hhaW4gbXVzdCBjb250YWluIGF0IGxlYXN0IGEgc291cmNlIGFuZCBhIHRhcmdldCBwb2ludC4nKSl9ZT0oc0ZiKGEuYiE9MCksUkQoYS5hLmEuYyw4KSk7TnpkKGIsZS5hLGUuYik7aT1uZXcgbU1kKCghYi5hJiYoYi5hPW5ldyBYWmQoRDQsYiw1KSksYi5hKSk7Zz1TdWIoYSwxKTt3aGlsZShnLmE8YS5iLTEpe2g9UkQoZXZiKGcpLDgpO2lmKGkuZSE9aS5pLmdjKCkpe2M9UkQoYk1kKGkpLDM3Nyl9ZWxzZXtjPShidmQoKSxkPW5ldyBYeGQsZCk7a01kKGksYyl9VXhkKGMsaC5hLGguYil9d2hpbGUoaS5lIT1pLmkuZ2MoKSl7Yk1kKGkpO2NNZChpKX1mPShzRmIoYS5iIT0wKSxSRChhLmMuYi5jLDgpKTtHemQoYixmLmEsZi5iKX1cbmZ1bmN0aW9uIEVnZShhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGo7aj1wa2UoYS5lLkRoKCksYik7Zz1SRChhLmcsMTI0KTtpZihxa2UoYS5lLGIpKXtpZihiLlNpKCkpe2Y9a2dlKGEsYixkLFpEKGIsMTAyKSYmKFJEKGIsMTkpLkJiJnR4ZSkhPTApO2lmKGY+PTAmJmYhPWMpe3Rocm93IEFkYihuZXcgYWdiKExJZSkpfX1lPTA7Zm9yKGk9MDtpPGEuaTsrK2kpe2g9Z1tpXTtpZihqLmFtKGguTGsoKSkpe2lmKGU9PWMpe3JldHVybiBSRChlSGQoYSxpLChua2UoKSxSRChiLDY5KS54aygpP1JEKGQsNzYpOm9rZShiLGQpKSksNzYpfSsrZX19dGhyb3cgQWRiKG5ldyB2ZWIoSEplK2MrTkllK2UpKX1lbHNle2ZvcihpPTA7aTxhLmk7KytpKXtoPWdbaV07aWYoai5hbShoLkxrKCkpKXtyZXR1cm4gbmtlKCksUkQoYiw2OSkueGsoKT9oOmgubWQoKX19cmV0dXJuIG51bGx9fVxuZnVuY3Rpb24gRXBjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrO2M9MDtmb3IoZT1uZXcgQW5iKCh0RmIoMCxhLmMubGVuZ3RoKSxSRChhLmNbMF0sMTA1KSkuZy5iLmopO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxMik7ZC5wPWMrK31iPT0ocXBkKCksWW9kKT9fbWIoYSxuZXcgTXBjKTpfbWIoYSxuZXcgUXBjKTtoPTA7az1hLmMubGVuZ3RoLTE7d2hpbGUoaDxrKXtnPSh0RmIoaCxhLmMubGVuZ3RoKSxSRChhLmNbaF0sMTA1KSk7aj0odEZiKGssYS5jLmxlbmd0aCksUkQoYS5jW2tdLDEwNSkpO2Y9Yj09WW9kP2cuYzpnLmE7aT1iPT1Zb2Q/ai5hOmouYztHcGMoZyxiLChlbmMoKSxjbmMpLGYpO0dwYyhqLGIsYm5jLGkpOysraDstLWt9aD09ayYmR3BjKCh0RmIoaCxhLmMubGVuZ3RoKSxSRChhLmNbaF0sMTA1KSksYiwoZW5jKCksYW5jKSxudWxsKX1cbmZ1bmN0aW9uIGxKYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGo7Zz1uZXcgekpjKGEsYixjKTtpPW5ldyBKa2IoZCwwKTtlPWZhbHNlO3doaWxlKGkuYjxpLmQuZ2MoKSl7aD0oc0ZiKGkuYjxpLmQuZ2MoKSksUkQoaS5kLlhiKGkuYz1pLmIrKyksMjM5KSk7aWYoaD09Ynx8aD09Yyl7Q2tiKGkpfWVsc2UgaWYoIWUmJktmYihwSmMoaC5nLGguZFswXSkuYSk+S2ZiKHBKYyhnLmcsZy5kWzBdKS5hKSl7c0ZiKGkuYj4wKTtpLmEuWGIoaS5jPS0taS5iKTtJa2IoaSxnKTtlPXRydWV9ZWxzZSBpZighIWguZSYmaC5lLmdjKCk+MCl7Zj0oIWguZSYmKGguZT1uZXcgYm5iKSxoLmUpLk1jKGIpO2o9KCFoLmUmJihoLmU9bmV3IGJuYiksaC5lKS5NYyhjKTtpZihmfHxqKXsoIWguZSYmKGguZT1uZXcgYm5iKSxoLmUpLkZjKGcpOysrZy5jfX19ZXx8KFpFYihkLmMsZyksdHJ1ZSl9XG5mdW5jdGlvbiBIM2MoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscjtsPWEuYS5pK2EuYS5nLzI7bT1hLmEuaSthLmEuZy8yO289Yi5pK2IuZy8yO3E9Yi5qK2IuZi8yO2g9bmV3IHJqZChvLHEpO2o9UkQoR3hkKGIsKHVtZCgpLFFsZCkpLDgpO2ouYT1qLmErbDtqLmI9ai5iK207Zj0oaC5iLWouYikvKGguYS1qLmEpO2Q9aC5iLWYqaC5hO3A9Yy5pK2MuZy8yO3I9Yy5qK2MuZi8yO2k9bmV3IHJqZChwLHIpO2s9UkQoR3hkKGMsUWxkKSw4KTtrLmE9ay5hK2w7ay5iPWsuYittO2c9KGkuYi1rLmIpLyhpLmEtay5hKTtlPWkuYi1nKmkuYTtuPShkLWUpLyhnLWYpO2lmKGouYTxuJiZoLmE8bnx8bjxqLmEmJm48aC5hKXtyZXR1cm4gZmFsc2V9ZWxzZSBpZihrLmE8biYmaS5hPG58fG48ay5hJiZuPGkuYSl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfVxuZnVuY3Rpb24gR0RkKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuO209UkQoV2piKGEuYyxiKSwxOTApO2lmKCFtKXt0aHJvdyBBZGIobmV3IENEZCgnRWRnZSBkaWQgbm90IGV4aXN0IGluIGlucHV0LicpKX1qPXVEZChtKTtmPWN2ZSgoIWIuYSYmKGIuYT1uZXcgQzVkKEY0LGIsNiw2KSksYi5hKSk7aD0hZjtpZihoKXtuPW5ldyBNQjtjPW5ldyBwRmQoYSxqLG4pO2F2ZSgoIWIuYSYmKGIuYT1uZXcgQzVkKEY0LGIsNiw2KSksYi5hKSxjKTtzQyhtLG1JZSxuKX1lPUh4ZChiLCh1bWQoKSxjbGQpKTtpZihlKXtrPVJEKEd4ZChiLGNsZCksNzUpO2c9IWt8fGJ2ZShrKTtpPSFnO2lmKGkpe2w9bmV3IE1CO2Q9bmV3IHhGZChsKTt4Z2IoayxkKTtzQyhtLCdqdW5jdGlvblBvaW50cycsbCl9fXNEZChtLCdjb250YWluZXInLGt6ZChiKS5rKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGZaYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGo7aWYoIWdyKGIpKXtqPWMuZWgoKFpEKGIsMTYpP1JEKGIsMTYpLmdjKCk6S3IoYi5LYygpKSkvYS5hfDApO2ouVWcoT0VlLDEpO2k9bmV3IGlaYztoPTA7aWYoZD09KENtZCgpLHltZCl8fGQ9PXptZCl7Zm9yKGc9Yi5LYygpO2cuT2IoKTspe2U9UkQoZy5QYigpLDQwKTtpPUFsKGNEKFdDKGNKLDEpLHJ2ZSwyMCwwLFtpLG5ldyBkWGMoZSldKSk7aDxlLmYuYSYmKGg9ZS5mLmEpfX1lbHNle2ZvcihnPWIuS2MoKTtnLk9iKCk7KXtlPVJEKGcuUGIoKSw0MCk7aT1BbChjRChXQyhjSiwxKSxydmUsMjAsMCxbaSxuZXcgZFhjKGUpXSkpO2g8ZS5mLmImJihoPWUuZi5iKX19Zm9yKGY9Yi5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDQwKTtwUWIoZSwocSRjKCksZCRjKSxoKX1qLlZnKCk7ZlpjKGEsaSxjLGQpfX1cbmZ1bmN0aW9uIFhGYihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosazt0aGlzLmE9YTt0aGlzLmI9Yjt0aGlzLmM9Yzt0aGlzLmU9ZHYoY0QoV0MoJE0sMSkscnZlLDE3NywwLFtuZXcgVEZiKGEsYiksbmV3IFRGYihiLGMpLG5ldyBURmIoYyxhKV0pKTt0aGlzLmY9ZHYoY0QoV0MobDMsMSksTnZlLDgsMCxbYSxiLGNdKSk7dGhpcy5kPShkPW9qZChhamQodGhpcy5iKSx0aGlzLmEpLGU9b2pkKGFqZCh0aGlzLmMpLHRoaXMuYSksZj1vamQoYWpkKHRoaXMuYyksdGhpcy5iKSxnPWQuYSoodGhpcy5hLmErdGhpcy5iLmEpK2QuYioodGhpcy5hLmIrdGhpcy5iLmIpLGg9ZS5hKih0aGlzLmEuYSt0aGlzLmMuYSkrZS5iKih0aGlzLmEuYit0aGlzLmMuYiksaT0yKihkLmEqZi5iLWQuYipmLmEpLGo9KGUuYipnLWQuYipoKS9pLGs9KGQuYSpoLWUuYSpnKS9pLG5ldyByamQoaixrKSl9XG5mdW5jdGlvbiBYMGIoYSxiKXt2YXIgYyxkLGUsZixnLGg7Zj1hLmM7Zz1hLmQ7WTBiKGEsbnVsbCk7WjBiKGEsbnVsbCk7YiYmSGViKFREKG1RYihnLChZd2MoKSxtd2MpKSkpP1kwYihhLHEyYihnLmksKEJFYygpLHpFYyksKHFwZCgpLFhvZCkpKTpZMGIoYSxnKTtiJiZIZWIoVEQobVFiKGYsKFl3YygpLEd3YykpKSk/WjBiKGEscTJiKGYuaSwoQkVjKCkseUVjKSwocXBkKCkscHBkKSkpOlowYihhLGYpO2ZvcihkPW5ldyBBbmIoYS5iKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksNzIpO2U9UkQobVFiKGMsKHlDYygpLHdBYykpLDI3OCk7ZT09KE9tZCgpLE5tZCk/cFFiKGMsd0FjLE1tZCk6ZT09TW1kJiZwUWIoYyx3QWMsTm1kKX1oPUhlYihURChtUWIoYSwoWXdjKCksTndjKSkpKTtwUWIoYSxOd2MsKEdlYigpLGg/ZmFsc2U6dHJ1ZSkpO2EuYT1JamQoYS5hKX1cbmZ1bmN0aW9uIGxXYyhhLGIpe3ZhciBjLGQsZSxmLGc7Yz1qV2MoUkQobVFiKGIsKGhfYygpLEgkYykpLDg4KSk7aWYoYS5iLmI9PTApe3JldHVybiBudWxsfWc9UkQoekRiKEdEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmIsMTYpKSxuZXcgVVdjKSx0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFsoeEJiKCksdkJiKV0pKSksMTUpO2Y9UkQoekRiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihiLmIsMTYpKSxuZXcgQ1djKGcpKSx0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFt2QmJdKSkpLDE1KTtlPVVEKEx2YihKRGIoR0RiKGYuT2MoKSxuZXcgRVdjKGMpKSwodXJiKCksdXJiKCksc3JiKSkpKTtkPVJEKEx2YihERGIoQ0RiKGYuT2MoKSxuZXcgR1djKGMsZSkpKSksNDApO3JldHVybiBkfVxuZnVuY3Rpb24gdk9jKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxO2M9ZUpiKG5ldyBnSmIsYS5mKTtqPWEuaVtiLmMuaS5wXTtuPWEuaVtiLmQuaS5wXTtpPWIuYzttPWIuZDtoPWkuYS5iO2w9bS5hLmI7ai5ifHwoaCs9aS5uLmIpO24uYnx8KGwrPW0ubi5iKTtrPWVFKCR3bmQuTWF0aC5tYXgoMCxoLWwpKTtnPWVFKCR3bmQuTWF0aC5tYXgoMCxsLWgpKTtvPShwPSR3bmQuTWF0aC5tYXgoMSxSRChtUWIoYiwoeUNjKCksTUJjKSksMTcpLmEpLHE9aE9jKGIuYy5pLmssYi5kLmkuaykscCpxKTtlPXJJYih1SWIodEliKHNJYih2SWIobmV3IHdJYixvKSxnKSxjKSxSRChXamIoYS5rLGIuYyksMTI1KSkpO2Y9ckliKHVJYih0SWIoc0liKHZJYihuZXcgd0liLG8pLGspLGMpLFJEKFdqYihhLmssYi5kKSwxMjUpKSk7ZD1uZXcgUU9jKGUsZik7YS5jW2IucF09ZH1cbmZ1bmN0aW9uIE1UYihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2Q9MDtmb3IoZj1uZXcgZE1kKCghYS5hJiYoYS5hPW5ldyBDNWQoSjQsYSwxMCwxMSkpLGEuYSkpO2YuZSE9Zi5pLmdjKCk7KXtlPVJEKGJNZChmKSwyNyk7Zz0nJzsoIWUubiYmKGUubj1uZXcgQzVkKEk0LGUsMSw3KSksZS5uKS5pPT0wfHwoZz1SRChRSGQoKCFlLm4mJihlLm49bmV3IEM1ZChJNCxlLDEsNykpLGUubiksMCksMTM1KS5hKTtoPW5ldyBsVWIoZyk7a1FiKGgsZSk7cFFiKGgsKEpWYigpLEhWYiksZSk7aC5hPWQrKztoLmQuYT1lLmkrZS5nLzI7aC5kLmI9ZS5qK2UuZi8yO2guZS5hPSR3bmQuTWF0aC5tYXgoZS5nLDEpO2guZS5iPSR3bmQuTWF0aC5tYXgoZS5mLDEpO1JtYihiLmUsaCk7cnRiKGMuZixlLGgpO2k9UkQoR3hkKGUsKHlWYigpLGpWYikpLDEwMSk7aT09KEJvZCgpLEFvZCkmJihpPXpvZCl9fVxuZnVuY3Rpb24gYmVjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7Yi5VZygnTGF5ZXIgY29uc3RyYWludCBwb3N0cHJvY2Vzc2luZycsMSk7aT1hLmI7aWYoaS5jLmxlbmd0aCE9MCl7ZD0odEZiKDAsaS5jLmxlbmd0aCksUkQoaS5jWzBdLDMwKSk7Zz1SRChWbWIoaSxpLmMubGVuZ3RoLTEpLDMwKTtjPW5ldyBSNGIoYSk7Zj1uZXcgUjRiKGEpO19kYyhhLGQsZyxjLGYpO2MuYS5jLmxlbmd0aD09MHx8KHdGYigwLGkuYy5sZW5ndGgpLFhFYihpLmMsMCxjKSk7Zi5hLmMubGVuZ3RoPT0wfHwoWkViKGkuYyxmKSx0cnVlKX1pZihuUWIoYSwoWXdjKCksbHdjKSkpe2U9bmV3IFI0YihhKTtoPW5ldyBSNGIoYSk7Y2VjKGEsZSxoKTtlLmEuYy5sZW5ndGg9PTB8fCh3RmIoMCxpLmMubGVuZ3RoKSxYRWIoaS5jLDAsZSkpO2guYS5jLmxlbmd0aD09MHx8KFpFYihpLmMsaCksdHJ1ZSl9Yi5WZygpfVxuZnVuY3Rpb24genRlKGEpe3ZhciBiLGMsZDtzd2l0Y2goYSl7Y2FzZSA5MTpjYXNlIDkzOmNhc2UgNDU6Y2FzZSA5NDpjYXNlIDQ0OmNhc2UgOTI6ZD0nXFxcXCcrU3RyaW5nLmZyb21DaGFyQ29kZShhJkJ3ZSk7YnJlYWs7Y2FzZSAxMjpkPSdcXFxcZic7YnJlYWs7Y2FzZSAxMDpkPSdcXFxcbic7YnJlYWs7Y2FzZSAxMzpkPSdcXFxccic7YnJlYWs7Y2FzZSA5OmQ9J1xcXFx0JzticmVhaztjYXNlIDI3OmQ9J1xcXFxlJzticmVhaztkZWZhdWx0OmlmKGE8MzIpe2M9KGI9YT4+PjAsJzAnK2IudG9TdHJpbmcoMTYpKTtkPSdcXFxceCcremhiKGMsYy5sZW5ndGgtMixjLmxlbmd0aCl9ZWxzZSBpZihhPj10eGUpe2M9KGI9YT4+PjAsJzAnK2IudG9TdHJpbmcoMTYpKTtkPSdcXFxcdicremhiKGMsYy5sZW5ndGgtNixjLmxlbmd0aCl9ZWxzZSBkPScnK1N0cmluZy5mcm9tQ2hhckNvZGUoYSZCd2UpO31yZXR1cm4gZH1cbmZ1bmN0aW9uIFVnYyhhKXt2YXIgYixjLGQ7aWYoRG9kKFJEKG1RYihhLCh5Q2MoKSxCQmMpKSwxMDEpKSl7Zm9yKGM9bmV3IEFuYihhLmopO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwxMik7Yi5qPT0ocXBkKCksb3BkKSYmKGQ9UkQobVFiKGIsKFl3YygpLEl3YykpLDEwKSxkP1EzYihiLFJEKG1RYihkLGh3YyksNjQpKTpiLmUuYy5sZW5ndGgtYi5nLmMubGVuZ3RoPDA/UTNiKGIsWG9kKTpRM2IoYixwcGQpKX19ZWxzZXtmb3IoYz1uZXcgQW5iKGEuaik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDEyKTtkPVJEKG1RYihiLChZd2MoKSxJd2MpKSwxMCk7ZD9RM2IoYixSRChtUWIoZCxod2MpLDY0KSk6Yi5lLmMubGVuZ3RoLWIuZy5jLmxlbmd0aDwwP1EzYihiLChxcGQoKSxYb2QpKTpRM2IoYiwocXBkKCkscHBkKSl9cFFiKGEsQkJjLChCb2QoKSx5b2QpKX19XG5mdW5jdGlvbiB3VWMoYSl7dmFyIGIsYyxkLGUsZixnO3RoaXMuZT1uZXcgYm5iO3RoaXMuYT1uZXcgYm5iO2ZvcihjPWEuYi0xO2M8MztjKyspe2h1KGEsMCxSRChqdShhLDApLDgpKX1pZihhLmI8NCl7dGhyb3cgQWRiKG5ldyBhZ2IoJ0F0IChsZWFzdCBkaW1lbnNpb24gKyAxKSBjb250cm9sIHBvaW50cyBhcmUgbmVjZXNzYXJ5IScpKX1lbHNle3RoaXMuYj0zO3RoaXMuZD10cnVlO3RoaXMuYz1mYWxzZTtyVWModGhpcyxhLmIrdGhpcy5iLTEpO2c9bmV3IGJuYjtmPW5ldyBBbmIodGhpcy5lKTtmb3IoYj0wO2I8dGhpcy5iLTE7YisrKXtSbWIoZyxVRCh5bmIoZikpKX1mb3IoZT1TdWIoYSwwKTtlLmIhPWUuZC5jOyl7ZD1SRChldmIoZSksOCk7Um1iKGcsVUQoeW5iKGYpKSk7Um1iKHRoaXMuYSxuZXcgQlVjKGQsZykpO3RGYigwLGcuYy5sZW5ndGgpO2cuYy5zcGxpY2UoMCwxKX19fVxuZnVuY3Rpb24gU2RjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrO2ZvcihmPW5ldyBBbmIoYS5iKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMzApO2ZvcihoPW5ldyBBbmIoZS5hKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTApO2lmKGcuaz09KHIzYigpLG4zYikpe2k9KGo9UkQoaHMobmV3IGlzKE1yKFoyYihnKS5hLktjKCksbmV3IGlyKSkpLDE4KSxrPVJEKGhzKG5ldyBpcyhNcihhM2IoZykuYS5LYygpLG5ldyBpcikpKSwxOCksIUhlYihURChtUWIoaiwoWXdjKCksTndjKSkpKXx8IUhlYihURChtUWIoayxOd2MpKSkpP2I6UW5kKGIpO1FkYyhnLGkpfWZvcihkPW5ldyBpcyhNcihhM2IoZykuYS5LYygpLG5ldyBpcikpO2dzKGQpOyl7Yz1SRChocyhkKSwxOCk7aT1IZWIoVEQobVFiKGMsKFl3YygpLE53YykpKSk/UW5kKGIpOmI7UGRjKGMsaSl9fX19XG5mdW5jdGlvbiBWOGMoYSxiLGMsZCxlKXt2YXIgZixnLGg7aWYoYy5mPj1iLm8mJmMuZjw9Yi5mfHxiLmEqMC41PD1jLmYmJmIuYSoxLjU+PWMuZil7Zz1SRChWbWIoYi5uLGIubi5jLmxlbmd0aC0xKSwyMDkpO2lmKGcuZStnLmQrYy5nK2U8PWQmJihmPVJEKFZtYihiLm4sYi5uLmMubGVuZ3RoLTEpLDIwOSksZi5mLWEuZitjLmY8PWEuYnx8YS5hLmMubGVuZ3RoPT0xKSl7SzljKGIsYyk7cmV0dXJuIHRydWV9ZWxzZSBpZihiLnMrYy5nPD1kJiYoYi50K2IuZCtjLmYrZTw9YS5ifHxhLmEuYy5sZW5ndGg9PTEpKXtSbWIoYi5iLGMpO2g9UkQoVm1iKGIubixiLm4uYy5sZW5ndGgtMSksMjA5KTtSbWIoYi5uLG5ldyBfOWMoYi5zLGguZitoLmErYi5pLGIuaSkpO1c5YyhSRChWbWIoYi5uLGIubi5jLmxlbmd0aC0xKSwyMDkpLGMpO005YyhiLGMpO3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiB4TGQoYSxiLGMpe3ZhciBkLGUsZixnO2lmKGEuUGooKSl7ZT1udWxsO2Y9YS5RaigpO2Q9YS5JaigxLGc9VUhkKGEsYixjKSxjLGIsZik7aWYoYS5NaigpJiYhKGEuWWkoKSYmZyE9bnVsbD9wYihnLGMpOmRFKGcpPT09ZEUoYykpKXtnIT1udWxsJiYoZT1hLk9qKGcsZSkpO2U9YS5OaihjLGUpO2EuVGooKSYmKGU9YS5XaihnLGMsZSkpO2lmKCFlKXthLkpqKGQpfWVsc2V7ZS5uaihkKTtlLm9qKCl9fWVsc2V7YS5UaigpJiYoZT1hLldqKGcsYyxlKSk7aWYoIWUpe2EuSmooZCl9ZWxzZXtlLm5qKGQpO2Uub2ooKX19cmV0dXJuIGd9ZWxzZXtnPVVIZChhLGIsYyk7aWYoYS5NaigpJiYhKGEuWWkoKSYmZyE9bnVsbD9wYihnLGMpOmRFKGcpPT09ZEUoYykpKXtlPW51bGw7ZyE9bnVsbCYmKGU9YS5PaihnLG51bGwpKTtlPWEuTmooYyxlKTshIWUmJmUub2ooKX1yZXR1cm4gZ319XG5mdW5jdGlvbiBSc2MoYSxiKXt2YXIgYyxkLGUsZixnO2IuVWcoJ1BhdGgtTGlrZSBHcmFwaCBXcmFwcGluZycsMSk7aWYoYS5iLmMubGVuZ3RoPT0wKXtiLlZnKCk7cmV0dXJufWU9bmV3IHlzYyhhKTtnPShlLmk9PW51bGwmJihlLmk9dHNjKGUsbmV3IEFzYykpLEtmYihlLmkpKmUuZik7Yz1nLyhlLmk9PW51bGwmJihlLmk9dHNjKGUsbmV3IEFzYykpLEtmYihlLmkpKTtpZihlLmI+Yyl7Yi5WZygpO3JldHVybn1zd2l0Y2goUkQobVFiKGEsKHlDYygpLHJDYykpLDM1MSkuZyl7Y2FzZSAyOmY9bmV3IEtzYzticmVhaztjYXNlIDA6Zj1uZXcgenJjO2JyZWFrO2RlZmF1bHQ6Zj1uZXcgTnNjO31kPWYub2coYSxlKTtpZighZi5wZygpKXtzd2l0Y2goUkQobVFiKGEseENjKSwzNTIpLmcpe2Nhc2UgMjpkPVdzYyhlLGQpO2JyZWFrO2Nhc2UgMTpkPVVzYyhlLGQpO319UXNjKGEsZSxkKTtiLlZnKCl9XG5mdW5jdGlvbiBtQihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGo7YiU9MjQ7aWYoYS5xLmdldEhvdXJzKCkhPWIpe2Q9bmV3ICR3bmQuRGF0ZShhLnEuZ2V0VGltZSgpKTtkLnNldERhdGUoZC5nZXREYXRlKCkrMSk7aD1hLnEuZ2V0VGltZXpvbmVPZmZzZXQoKS1kLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoaD4wKXtpPWgvNjB8MDtqPWglNjA7ZT1hLnEuZ2V0RGF0ZSgpO2M9YS5xLmdldEhvdXJzKCk7YytpPj0yNCYmKytlO2Y9bmV3ICR3bmQuRGF0ZShhLnEuZ2V0RnVsbFllYXIoKSxhLnEuZ2V0TW9udGgoKSxlLGIraSxhLnEuZ2V0TWludXRlcygpK2osYS5xLmdldFNlY29uZHMoKSxhLnEuZ2V0TWlsbGlzZWNvbmRzKCkpO2EucS5zZXRUaW1lKGYuZ2V0VGltZSgpKX19Zz1hLnEuZ2V0VGltZSgpO2EucS5zZXRUaW1lKGcrMzYwMDAwMCk7YS5xLmdldEhvdXJzKCkhPWImJmEucS5zZXRUaW1lKGcpfVxuZnVuY3Rpb24ga0tjKGEsYil7dmFyIGMsZCxlLGY7TndiKGEuZCxhLmUpO2EuYy5hLiRiKCk7aWYoS2ZiKFVEKG1RYihiLmosKHlDYygpLFp6YykpKSkhPTB8fEtmYihVRChtUWIoYi5qLFp6YykpKSE9MCl7Yz1IemU7ZEUobVFiKGIuaixjQWMpKSE9PWRFKChrRWMoKSxoRWMpKSYmcFFiKGIuaiwoWXdjKCksandjKSwoR2ViKCksdHJ1ZSkpO2Y9UkQobVFiKGIuaixnQ2MpLDE3KS5hO2ZvcihlPTA7ZTxmO2UrKyl7ZD11S2MoYSxiKTtpZihkPGMpe2M9ZDt4S2MoYSk7aWYoYz09MCl7YnJlYWt9fX19ZWxzZXtjPWx2ZTtkRShtUWIoYi5qLGNBYykpIT09ZEUoKGtFYygpLGhFYykpJiZwUWIoYi5qLChZd2MoKSxqd2MpLChHZWIoKSx0cnVlKSk7Zj1SRChtUWIoYi5qLGdDYyksMTcpLmE7Zm9yKGU9MDtlPGY7ZSsrKXtkPXZLYyhhLGIpO2lmKGQ8Yyl7Yz1kO3hLYyhhKTtpZihjPT0wKXticmVha319fX19XG5mdW5jdGlvbiBWc2MoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2c9bmV3IGJuYjtoPTA7Yz0wO2k9MDt3aGlsZShoPGIuYy5sZW5ndGgtMSYmYzxhLmdjKCkpe2Q9UkQoYS5YYihjKSwxNykuYStpO3doaWxlKCh0RmIoaCsxLGIuYy5sZW5ndGgpLFJEKGIuY1toKzFdLDE3KSkuYTxkKXsrK2h9aj0wO2Y9ZC0odEZiKGgsYi5jLmxlbmd0aCksUkQoYi5jW2hdLDE3KSkuYTtlPSh0RmIoaCsxLGIuYy5sZW5ndGgpLFJEKGIuY1toKzFdLDE3KSkuYS1kO2Y+ZSYmKytqO1JtYihnLCh0RmIoaCtqLGIuYy5sZW5ndGgpLFJEKGIuY1toK2pdLDE3KSkpO2krPSh0RmIoaCtqLGIuYy5sZW5ndGgpLFJEKGIuY1toK2pdLDE3KSkuYS1kOysrYzt3aGlsZShjPGEuZ2MoKSYmUkQoYS5YYihjKSwxNykuYStpPD0odEZiKGgraixiLmMubGVuZ3RoKSxSRChiLmNbaCtqXSwxNykpLmEpeysrY31oKz0xK2p9cmV0dXJuIGd9XG5mdW5jdGlvbiBWR2MoYSxiKXt2YXIgYyxkLGUsZixnO2ZvcihnPW5ldyBpcyhNcihaMmIoYikuYS5LYygpLG5ldyBpcikpO2dzKGcpOyl7Zj1SRChocyhnKSwxOCk7aWYoYS5mLmI9PTApe2U9Zi5jLmkuaz09KHIzYigpLHAzYikmJiEhZi5jLmkuYyYmZi5jLmkuYy5wPT1hLmM7aWYoZ3MobmV3IGlzKE1yKFoyYihmLmMuaSkuYS5LYygpLG5ldyBpcikpKSl7Yz1SRChocyhuZXcgaXMoTXIoWjJiKGYuYy5pKS5hLktjKCksbmV3IGlyKSkpLDE4KS5jLmkuYztkPWYuYy5pLms9PW4zYiYmISFjJiZjLnA9PWEuY31lbHNle2Q9ZmFsc2V9fWVsc2V7ZT1mLmMuaS5rPT0ocjNiKCkscDNiKSYmZi5jLmkucD09YS5jO2Q9Zi5jLmkuaz09bjNiJiZSRChocyhuZXcgaXMoTXIoWjJiKGYuYy5pKS5hLktjKCksbmV3IGlyKSkpLDE4KS5jLmkucD09YS5jfWlmKGV8fGQpe3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9XG5mdW5jdGlvbiBESGMoYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQ7bT1uZXcgYm5iO3I9WHgoZCk7cT1iKmEuYTtsPTA7bz0wO2Y9bmV3IF9zYjtnPW5ldyBfc2I7aD1uZXcgYm5iO3M9MDt0PTA7bj0wO3A9MDtqPTA7az0wO3doaWxlKHIuYS5nYygpIT0wKXtpPUhIYyhyLGUsZyk7aWYoaSl7ci5hLkJjKGkpIT1udWxsO1pFYihoLmMsaSk7Zi5hLnpjKGksZik7bz1hLmZbaS5wXTtzKz1hLmVbaS5wXS1vKmEuYjtsPWEuY1tpLnBdO3QrPWwqYS5iO2srPW8qYS5iO3ArPWEuZVtpLnBdfWlmKCFpfHxyLmEuZ2MoKT09MHx8cz49cSYmYS5lW2kucF0+byphLmJ8fHQ+PWMqcSl7WkViKG0uYyxoKTtoPW5ldyBibmI7eWUoZyxmKTtmLmEuJGIoKTtqLT1rO249JHduZC5NYXRoLm1heChuLGoqYS5iK3ApO2orPXQ7cz10O3Q9MDtrPTA7cD0wfX1yZXR1cm4gbmV3IFB0ZChuLG0pfVxuZnVuY3Rpb24gcFlkKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2lmKCFhLmQpe2g9bmV3IHZfZDtiPWlZZDtmPWIuYS56YyhhLGIpO2lmKGY9PW51bGwpe2ZvcihkPW5ldyBkTWQoellkKGEpKTtkLmUhPWQuaS5nYygpOyl7Yz1SRChiTWQoZCksMjkpO1lHZChoLHBZZChjKSl9Yi5hLkJjKGEpIT1udWxsO2IuYS5nYygpPT0wJiZ1bmRlZmluZWR9Zz1oLmk7Zm9yKGU9KCFhLnEmJihhLnE9bmV3IEM1ZChzNyxhLDExLDEwKSksbmV3IGRNZChhLnEpKTtlLmUhPWUuaS5nYygpOysrZyl7UkQoYk1kKGUpLDQxMSl9WUdkKGgsKCFhLnEmJihhLnE9bmV3IEM1ZChzNyxhLDExLDEwKSksYS5xKSk7VkhkKGgpO2EuZD1uZXcgTiRkKChSRChRSGQoeFlkKChsVGQoKSxrVGQpLm8pLDkpLDE5KSxoLmkpLGguZyk7YS5lPVJEKGguZyw2ODgpO2EuZT09bnVsbCYmKGEuZT1qWWQpO3lZZChhKS5iJj0tMTd9cmV0dXJuIGEuZH1cbmZ1bmN0aW9uIGtnZShhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGo7aj1wa2UoYS5lLkRoKCksYik7aT0wO2U9UkQoYS5nLDEyNCk7bmtlKCk7aWYoUkQoYiw2OSkueGsoKSl7Zm9yKGc9MDtnPGEuaTsrK2cpe2Y9ZVtnXTtpZihqLmFtKGYuTGsoKSkpe2lmKHBiKGYsYykpe3JldHVybiBpfSsraX19fWVsc2UgaWYoYyE9bnVsbCl7Zm9yKGg9MDtoPGEuaTsrK2gpe2Y9ZVtoXTtpZihqLmFtKGYuTGsoKSkpe2lmKHBiKGMsZi5tZCgpKSl7cmV0dXJuIGl9KytpfX1pZihkKXtpPTA7Zm9yKGc9MDtnPGEuaTsrK2cpe2Y9ZVtnXTtpZihqLmFtKGYuTGsoKSkpe2lmKGRFKGMpPT09ZEUoQWdlKGEsUkQoZi5tZCgpLDU4KSkpKXtyZXR1cm4gaX0rK2l9fX19ZWxzZXtmb3IoZz0wO2c8YS5pOysrZyl7Zj1lW2ddO2lmKGouYW0oZi5MaygpKSl7aWYoZi5tZCgpPT1udWxsKXtyZXR1cm4gaX0rK2l9fX1yZXR1cm4gLTF9XG5mdW5jdGlvbiBYamUoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGssbCxtLG4sbyxwO2lmKGMuWGgoYikpe2s9KG49Yiwhbj9udWxsOlJEKGQsNTQpLmdpKG4pKTtpZihrKXtwPWMuTmgoYixhLmEpO289Yi50O2lmKG8+MXx8bz09LTEpe2w9UkQocCw3MSk7bT1SRChrLDcxKTtpZihsLmRjKCkpe20uJGIoKX1lbHNle2c9ISFaNWQoYik7Zj0wO2ZvcihoPWEuYT9sLktjKCk6bC5JaSgpO2guT2IoKTspe2o9UkQoaC5QYigpLDU4KTtlPVJEKGN1YihhLGopLDU4KTtpZighZSl7aWYoYS5iJiYhZyl7bS5HaShmLGopOysrZn19ZWxzZXtpZihnKXtpPW0uZGQoZSk7aT09LTE/bS5HaShmLGUpOmYhPWkmJm0uVWkoZixlKX1lbHNle20uR2koZixlKX0rK2Z9fX19ZWxzZXtpZihwPT1udWxsKXtrLldiKG51bGwpfWVsc2V7ZT1jdWIoYSxwKTtlPT1udWxsP2EuYiYmIVo1ZChiKSYmay5XYihwKTprLldiKGUpfX19fX1cbmZ1bmN0aW9uIFY5YihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGo7Yz1uZXcgYWFjO2ZvcihlPW5ldyBpcyhNcihaMmIoYikuYS5LYygpLG5ldyBpcikpO2dzKGUpOyl7ZD1SRChocyhlKSwxOCk7aWYoVzBiKGQpKXtjb250aW51ZX1oPWQuYy5pO2lmKFc5YihoLFQ5Yikpe2o9WDliKGEsaCxUOWIsUzliKTtpZihqPT0tMSl7Y29udGludWV9Yy5iPSR3bmQuTWF0aC5tYXgoYy5iLGopOyFjLmEmJihjLmE9bmV3IGJuYik7Um1iKGMuYSxoKX19Zm9yKGc9bmV3IGlzKE1yKGEzYihiKS5hLktjKCksbmV3IGlyKSk7Z3MoZyk7KXtmPVJEKGhzKGcpLDE4KTtpZihXMGIoZikpe2NvbnRpbnVlfWk9Zi5kLmk7aWYoVzliKGksUzliKSl7aj1YOWIoYSxpLFM5YixUOWIpO2lmKGo9PS0xKXtjb250aW51ZX1jLmQ9JHduZC5NYXRoLm1heChjLmQsaik7IWMuYyYmKGMuYz1uZXcgYm5iKTtSbWIoYy5jLGkpfX1yZXR1cm4gY31cbmZ1bmN0aW9uIHBjYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosaztpZihjLmQuaT09Yi5pKXtyZXR1cm59ZT1uZXcgajNiKGEpO2gzYihlLChyM2IoKSxvM2IpKTtwUWIoZSwoWXdjKCksQXdjKSxjKTtwUWIoZSwoeUNjKCksQkJjKSwoQm9kKCksd29kKSk7WkViKGQuYyxlKTtnPW5ldyBSM2I7UDNiKGcsZSk7UTNiKGcsKHFwZCgpLHBwZCkpO2g9bmV3IFIzYjtQM2IoaCxlKTtRM2IoaCxYb2QpO2s9Yy5kO1owYihjLGcpO2Y9bmV3IGExYjtrUWIoZixjKTtwUWIoZixSQWMsbnVsbCk7WTBiKGYsaCk7WjBiKGYsayk7aj1uZXcgSmtiKGMuYiwwKTt3aGlsZShqLmI8ai5kLmdjKCkpe2k9KHNGYihqLmI8ai5kLmdjKCkpLFJEKGouZC5YYihqLmM9ai5iKyspLDcyKSk7aWYoZEUobVFiKGksd0FjKSk9PT1kRSgoT21kKCksTW1kKSkpe3BRYihpLGR3YyxjKTtDa2Ioaik7Um1iKGYuYixpKX19cmNjKGUsZyxoKX1cbmZ1bmN0aW9uIG9jYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosaztpZihjLmMuaT09Yi5pKXtyZXR1cm59ZT1uZXcgajNiKGEpO2gzYihlLChyM2IoKSxvM2IpKTtwUWIoZSwoWXdjKCksQXdjKSxjKTtwUWIoZSwoeUNjKCksQkJjKSwoQm9kKCksd29kKSk7WkViKGQuYyxlKTtnPW5ldyBSM2I7UDNiKGcsZSk7UTNiKGcsKHFwZCgpLHBwZCkpO2g9bmV3IFIzYjtQM2IoaCxlKTtRM2IoaCxYb2QpO1owYihjLGcpO2Y9bmV3IGExYjtrUWIoZixjKTtwUWIoZixSQWMsbnVsbCk7WTBiKGYsaCk7WjBiKGYsYik7cmNjKGUsZyxoKTtqPW5ldyBKa2IoYy5iLDApO3doaWxlKGouYjxqLmQuZ2MoKSl7aT0oc0ZiKGouYjxqLmQuZ2MoKSksUkQoai5kLlhiKGouYz1qLmIrKyksNzIpKTtrPVJEKG1RYihpLHdBYyksMjc4KTtpZihrPT0oT21kKCksTW1kKSl7blFiKGksZHdjKXx8cFFiKGksZHdjLGMpO0NrYihqKTtSbWIoZi5iLGkpfX19XG5mdW5jdGlvbiBTamIoYSl7TGpiKCk7dmFyIGIsYyxkLGU7Yj1lRShhKTtpZihhPEtqYi5sZW5ndGgpe3JldHVybiBLamJbYl19ZWxzZSBpZihhPD01MCl7cmV0dXJuIFlpYigoUGliKCksTWliKSxiKX1lbHNlIGlmKGE8PUF3ZSl7cmV0dXJuIFppYihZaWIoSmpiWzFdLGIpLGIpfWlmKGE+MTAwMDAwMCl7dGhyb3cgQWRiKG5ldyB0ZWIoJ3Bvd2VyIG9mIHRlbiB0b28gYmlnJykpfWlmKGE8PWx2ZSl7cmV0dXJuIFppYihZaWIoSmpiWzFdLGIpLGIpfWQ9WWliKEpqYlsxXSxsdmUpO2U9ZDtjPUhkYihhLWx2ZSk7Yj1lRShhJWx2ZSk7d2hpbGUoRGRiKGMsbHZlKT4wKXtlPVdpYihlLGQpO2M9VmRiKGMsbHZlKX1lPVdpYihlLFlpYihKamJbMV0sYikpO2U9WmliKGUsbHZlKTtjPUhkYihhLWx2ZSk7d2hpbGUoRGRiKGMsbHZlKT4wKXtlPVppYihlLGx2ZSk7Yz1WZGIoYyxsdmUpfWU9WmliKGUsYik7cmV0dXJuIGV9XG5mdW5jdGlvbiBzOWIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGs7Zm9yKGk9bmV3IEFuYihhLmEpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxMCk7aWYoaC5rIT0ocjNiKCksbTNiKSl7Y29udGludWV9ZT1SRChtUWIoaCwoWXdjKCksaHdjKSksNjQpO2lmKGU9PShxcGQoKSxYb2QpfHxlPT1wcGQpe2ZvcihkPW5ldyBpcyhNcihXMmIoaCkuYS5LYygpLG5ldyBpcikpO2dzKGQpOyl7Yz1SRChocyhkKSwxOCk7Yj1jLmE7aWYoYi5iPT0wKXtjb250aW51ZX1qPWMuYztpZihqLmk9PWgpe2Y9KHNGYihiLmIhPTApLFJEKGIuYS5hLmMsOCkpO2YuYj14amQoY0QoV0MobDMsMSksTnZlLDgsMCxbai5pLm4sai5uLGouYV0pKS5ifWs9Yy5kO2lmKGsuaT09aCl7Zz0oc0ZiKGIuYiE9MCksUkQoYi5jLmIuYyw4KSk7Zy5iPXhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtrLmkubixrLm4say5hXSkpLmJ9fX19fVxuZnVuY3Rpb24gTmxjKGEsYixjLGQpe3ZhciBlLGYsZzt0aGlzLmo9bmV3IGJuYjt0aGlzLms9bmV3IGJuYjt0aGlzLmI9bmV3IGJuYjt0aGlzLmM9bmV3IGJuYjt0aGlzLmU9bmV3IFRpZDt0aGlzLmk9bmV3IEVqZDt0aGlzLmY9bmV3IGNIYjt0aGlzLmQ9bmV3IGJuYjt0aGlzLmc9bmV3IGJuYjtSbWIodGhpcy5iLGEpO1JtYih0aGlzLmIsYik7dGhpcy5lLmM9JHduZC5NYXRoLm1pbihhLmEsYi5hKTt0aGlzLmUuZD0kd25kLk1hdGgubWluKGEuYixiLmIpO3RoaXMuZS5iPSR3bmQuTWF0aC5hYnMoYS5hLWIuYSk7dGhpcy5lLmE9JHduZC5NYXRoLmFicyhhLmItYi5iKTtlPVJEKG1RYihkLCh5Q2MoKSxSQWMpKSw3NSk7aWYoZSl7Zm9yKGc9U3ViKGUsMCk7Zy5iIT1nLmQuYzspe2Y9UkQoZXZiKGcpLDgpO3JHYihmLmEsYS5hKSYmTXViKHRoaXMuaSxmKX19ISFjJiZSbWIodGhpcy5qLGMpO1JtYih0aGlzLmssZCl9XG5mdW5jdGlvbiB2U2MoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGs7aD0tMTtmb3Ioaz1uZXcgQW5iKGEpO2suYTxrLmMuYy5sZW5ndGg7KXtqPVJEKHluYihrKSwxMTgpO2ouZz1oLS07ZT1ZZGIobURiKElEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2Ioai5mLDE2KSksbmV3IHhTYyksbmV3IHpTYykpLmQpO2Y9WWRiKG1EYihJRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGouaywxNikpLG5ldyBCU2MpLG5ldyBEU2MpKS5kKTtnPWU7aT1mO2lmKCFkKXtnPVlkYihtRGIoSURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGouZiwxNikpLG5ldyBGU2MpKS5kKTtpPVlkYihtRGIoSURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGouaywxNikpLG5ldyBIU2MpKS5kKX1qLmQ9ZztqLmE9ZTtqLmk9aTtqLmI9ZjtpPT0wPyhQdWIoYyxqLGMuYy5iLGMuYyksdHJ1ZSk6Zz09MCYmKFB1YihiLGosYi5jLmIsYi5jKSx0cnVlKX19XG5mdW5jdGlvbiBRZGMoYSxiKXt2YXIgYyxkLGUsZixnLGg7aWYoYS5rPT0ocjNiKCksbjNiKSl7Yz1hLms9PW4zYiYmIVFEYihDRGIoUkQobVFiKGEsKFl3YygpLE13YykpLDE1KS5PYygpLG5ldyBQQWIobmV3IHgzYikpKS5CZCgoeERiKCksd0RiKSk/KFBuZCgpLE5uZCk6YjtwUWIoYSwoWXdjKCksc3djKSxjKTtpZihjIT0oUG5kKCksTW5kKSl7ZD1SRChtUWIoYSxBd2MpLDE4KTtoPUtmYihVRChtUWIoZCwoeUNjKCksRkFjKSkpKTtnPTA7aWYoYz09TG5kKXtnPWEuby5iLSR3bmQuTWF0aC5jZWlsKGgvMil9ZWxzZSBpZihjPT1ObmQpe2c9JHduZC5NYXRoLmNlaWwoYS5vLmItS2ZiKFVEKG1RYihZMmIoYSksVkJjKSkpLWgpLzI7YS5vLmItPUtmYihVRChtUWIoWTJiKGEpLFZCYykpKTthLm8uYi09aH1mb3IoZj1uZXcgQW5iKGEuaik7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDEyKTtlLm4uYj1nfX19fVxuZnVuY3Rpb24gWFFjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGw7ZT10cnVlO2ZvcihnPW5ldyBBbmIoYS5iKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMzApO2o9cHhlO2s9bnVsbDtmb3IoaT1uZXcgQW5iKGYuYSk7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDEwKTtsPUtmYihiLnBbaC5wXSkrS2ZiKGIuZFtoLnBdKS1oLmQuZDtkPUtmYihiLnBbaC5wXSkrS2ZiKGIuZFtoLnBdKStoLm8uYitoLmQuYTtpZihsPmomJmQ+ail7az1oO2o9S2ZiKGIucFtoLnBdKStLZmIoYi5kW2gucF0pK2guby5iK2guZC5hfWVsc2V7ZT1mYWxzZTtjLl9nKCkmJmMuYmgoJ2JrIG5vZGUgcGxhY2VtZW50IGJyZWFrcyBvbiAnK2grJyB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIGFmdGVyICcrayk7YnJlYWt9fWlmKCFlKXticmVha319Yy5fZygpJiZjLmJoKGIrJyBpcyBmZWFzaWJsZTogJytlKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIERmYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG07Zj1uZXcgajNiKGEpO2gzYihmLChyM2IoKSxxM2IpKTtwUWIoZiwoeUNjKCksQkJjKSwoQm9kKCksd29kKSk7ZT0wO2lmKGIpe2c9bmV3IFIzYjtwUWIoZywoWXdjKCksQXdjKSxiKTtwUWIoZixBd2MsYi5pKTtRM2IoZywocXBkKCkscHBkKSk7UDNiKGcsZik7bT1zMmIoYi5lKTtmb3Ioaj1tLGs9MCxsPWoubGVuZ3RoO2s8bDsrK2spe2k9altrXTtaMGIoaSxnKX1wUWIoYixJd2MsZik7KytlfWlmKGMpe2g9bmV3IFIzYjtwUWIoZiwoWXdjKCksQXdjKSxjLmkpO3BRYihoLEF3YyxjKTtRM2IoaCwocXBkKCksWG9kKSk7UDNiKGgsZik7bT1zMmIoYy5nKTtmb3Ioaj1tLGs9MCxsPWoubGVuZ3RoO2s8bDsrK2spe2k9altrXTtZMGIoaSxoKX1wUWIoYyxJd2MsZik7KytlfXBRYihmLChZd2MoKSwkdmMpLHNnYihlKSk7WkViKGQuYyxmKTtyZXR1cm4gZn1cbmZ1bmN0aW9uIEJnZChhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbjtmb3IoYz0oaj0obmV3IGdsYihhLmMuYikpLmEudmMoKS5LYygpLG5ldyBsbGIoaikpO2MuYS5PYigpOyl7Yj0oaD1SRChjLmEuUGIoKSw0NCksUkQoaC5tZCgpLDE0MykpO2U9Yi5hO2U9PW51bGwmJihlPScnKTtkPXRnZChhLmMsZSk7IWQmJmUubGVuZ3RoPT0wJiYoZD1GZ2QoYSkpOyEhZCYmIXplKGQuYyxiLGZhbHNlKSYmTXViKGQuYyxiKX1mb3IoZz1TdWIoYS5hLDApO2cuYiE9Zy5kLmM7KXtmPVJEKGV2YihnKSw0ODcpO2s9dWdkKGEuYyxmLmEpO249dWdkKGEuYyxmLmIpOyEhayYmISFuJiZNdWIoay5jLG5ldyBQdGQobixmLmMpKX1YdWIoYS5hKTtmb3IobT1TdWIoYS5iLDApO20uYiE9bS5kLmM7KXtsPVJEKGV2YihtKSw0ODcpO2I9cmdkKGEuYyxsLmEpO2k9dWdkKGEuYyxsLmIpOyEhYiYmISFpJiZNZmQoYixpLGwuYyl9WHViKGEuYil9XG5mdW5jdGlvbiBRSWQoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG47Zj1uZXcgdkMoYSk7Zz1uZXcgSUVkO2U9KHdvKGcuZyksd28oZy5qKSxha2IoZy5iKSx3byhnLmQpLHdvKGcuaSksYWtiKGcuayksYWtiKGcuYyksYWtiKGcuZSksbj1ERWQoZyxmLG51bGwpLEFFZChnLGYpLG4pO2lmKGIpe2o9bmV3IHZDKGIpO2g9UklkKGopO21zZChlLGNEKFdDKGo0LDEpLHJ2ZSw1MzYsMCxbaF0pKX1tPWZhbHNlO2w9ZmFsc2U7aWYoYyl7aj1uZXcgdkMoYyk7UkllIGluIGouYSYmKG09cUMoaixSSWUpLnFlKCkuYSk7U0llIGluIGouYSYmKGw9cUMoaixTSWUpLnFlKCkuYSl9az1LcWQoTXFkKG5ldyBPcWQsbSksbCk7RWVkKG5ldyBIZWQsZSxrKTtSSWUgaW4gZi5hJiZzQyhmLFJJZSxudWxsKTtpZihtfHxsKXtpPW5ldyB1QztOSWQoayxpLG0sbCk7c0MoZixSSWUsaSl9ZD1uZXcgbkZkKGcpO2R2ZShuZXcgeklkKGUpLGQpfVxuZnVuY3Rpb24gRkEoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbDtnPW5ldyBEQjtqPWNEKFdDKGtFLDEpLFB3ZSwyOCwxNSxbMF0pO2U9LTE7Zj0wO2Q9MDtmb3IoaT0wO2k8YS5iLmMubGVuZ3RoOysraSl7az1SRChWbWIoYS5iLGkpLDQ0Myk7aWYoay5iPjApe2lmKGU8MCYmay5hKXtlPWk7Zj1qWzBdO2Q9MH1pZihlPj0wKXtoPWsuYjtpZihpPT1lKXtoLT1kKys7aWYoaD09MCl7cmV0dXJuIDB9fWlmKCFNQShiLGosayxoLGcpKXtpPWUtMTtqWzBdPWY7Y29udGludWV9fWVsc2V7ZT0tMTtpZighTUEoYixqLGssMCxnKSl7cmV0dXJuIDB9fX1lbHNle2U9LTE7aWYoaWhiKGsuYywwKT09MzIpe2w9alswXTtLQShiLGopO2lmKGpbMF0+bCl7Y29udGludWV9fWVsc2UgaWYoeGhiKGIsay5jLGpbMF0pKXtqWzBdKz1rLmMubGVuZ3RoO2NvbnRpbnVlfXJldHVybiAwfX1pZighQ0IoZyxjKSl7cmV0dXJuIDB9cmV0dXJuIGpbMF19XG5mdW5jdGlvbiBxV2IoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtO2s9bmV3IHB3YihuZXcgR1diKGMpKTtoPSRDKHhkYixIeWUsMjgsYS5mLmUuYy5sZW5ndGgsMTYsMSk7U25iKGgsaC5sZW5ndGgpO2NbYi5hXT0wO2ZvcihqPW5ldyBBbmIoYS5mLmUpO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwxNTMpO2kuYSE9Yi5hJiYoY1tpLmFdPWx2ZSk7ekZiKGx3YihrLGkpLEJ4ZSl9d2hpbGUoay5iLmMubGVuZ3RoIT0wKXtsPVJEKG13YihrKSwxNTMpO2hbbC5hXT10cnVlO2ZvcihmPXJ1KG5ldyBzdShhLmIsbCksMCk7Zi5jOyl7ZT1SRChMdShmKSwyOTApO209dFdiKGUsbCk7aWYoaFttLmFdKXtjb250aW51ZX1uUWIoZSwoZFdiKCksVFZiKSk/KGc9S2ZiKFVEKG1RYihlLFRWYikpKSk6KGc9YS5jKTtkPWNbbC5hXStnO2lmKGQ8Y1ttLmFdKXtjW20uYV09ZDtud2IoayxtKTt6RmIobHdiKGssbSksQnhlKX19fX1cbmZ1bmN0aW9uIGlQYihhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvO2c9YS5vO2Q9JEMoa0UsUHdlLDI4LGcsMTUsMSk7ZT0kQyhrRSxQd2UsMjgsZywxNSwxKTtjPWEucDtiPSRDKGtFLFB3ZSwyOCxjLDE1LDEpO2Y9JEMoa0UsUHdlLDI4LGMsMTUsMSk7Zm9yKGo9MDtqPGc7aisrKXtsPTA7d2hpbGUobDxjJiYhUFBiKGEsaixsKSl7KytsfWRbal09bH1mb3Ioaz0wO2s8ZztrKyspe2w9Yy0xO3doaWxlKGw+PTAmJiFQUGIoYSxrLGwpKXstLWx9ZVtrXT1sfWZvcihuPTA7bjxjO24rKyl7aD0wO3doaWxlKGg8ZyYmIVBQYihhLGgsbikpeysraH1iW25dPWh9Zm9yKG89MDtvPGM7bysrKXtoPWctMTt3aGlsZShoPj0wJiYhUFBiKGEsaCxvKSl7LS1ofWZbb109aH1mb3IoaT0wO2k8ZztpKyspe2ZvcihtPTA7bTxjO20rKyl7aTxmW21dJiZpPmJbbV0mJm08ZVtpXSYmbT5kW2ldJiZUUGIoYSxpLG0sZmFsc2UsdHJ1ZSl9fX1cbmZ1bmN0aW9uIGhVYihhKXt2YXIgYixjLGQsZSxmLGcsaCxpO2M9SGViKFREKG1RYihhLCh5VmIoKSwkVWIpKSkpO2Y9YS5hLmMuZDtoPWEuYS5kLmQ7aWYoYyl7Zz1pamQob2pkKG5ldyByamQoaC5hLGguYiksZiksMC41KTtpPWlqZChhamQoYS5lKSwwLjUpO2I9b2pkKCRpZChuZXcgcmpkKGYuYSxmLmIpLGcpLGkpO21qZChhLmQsYil9ZWxzZXtlPUtmYihVRChtUWIoYS5hLHFWYikpKTtkPWEuZDtpZihmLmE+PWguYSl7aWYoZi5iPj1oLmIpe2QuYT1oLmErKGYuYS1oLmEpLzIrZTtkLmI9aC5iKyhmLmItaC5iKS8yLWUtYS5lLmJ9ZWxzZXtkLmE9aC5hKyhmLmEtaC5hKS8yK2U7ZC5iPWYuYisoaC5iLWYuYikvMitlfX1lbHNle2lmKGYuYj49aC5iKXtkLmE9Zi5hKyhoLmEtZi5hKS8yK2U7ZC5iPWguYisoZi5iLWguYikvMitlfWVsc2V7ZC5hPWYuYSsoaC5hLWYuYSkvMitlO2QuYj1mLmIrKGguYi1mLmIpLzItZS1hLmUuYn19fX1cbmZ1bmN0aW9uIHFZZChhKXt2YXIgYixjLGQsZSxmLGcsaCxpO2lmKCFhLmYpe2k9bmV3IGFfZDtoPW5ldyBhX2Q7Yj1pWWQ7Zz1iLmEuemMoYSxiKTtpZihnPT1udWxsKXtmb3IoZj1uZXcgZE1kKHpZZChhKSk7Zi5lIT1mLmkuZ2MoKTspe2U9UkQoYk1kKGYpLDI5KTtZR2QoaSxxWWQoZSkpfWIuYS5CYyhhKSE9bnVsbDtiLmEuZ2MoKT09MCYmdW5kZWZpbmVkfWZvcihkPSghYS5zJiYoYS5zPW5ldyBDNWQoeTcsYSwyMSwxNykpLG5ldyBkTWQoYS5zKSk7ZC5lIT1kLmkuZ2MoKTspe2M9UkQoYk1kKGQpLDE3OSk7WkQoYywxMDIpJiZXR2QoaCxSRChjLDE5KSl9VkhkKGgpO2Eucj1uZXcgc19kKGEsKFJEKFFIZCh4WWQoKGxUZCgpLGtUZCkubyksNiksMTkpLGguaSksaC5nKTtZR2QoaSxhLnIpO1ZIZChpKTthLmY9bmV3IE4kZCgoUkQoUUhkKHhZZChrVGQubyksNSksMTkpLGkuaSksaS5nKTt5WWQoYSkuYiY9LTN9cmV0dXJuIGEuZn1cbmZ1bmN0aW9uIHVTYihhKXtDZ2QoYSxuZXcgUGZkKCRmZChYZmQoWmZkKFlmZChuZXcgYWdkLEF6ZSksJ0VMSyBEaXNDbycpLCdMYXlvdXRlciBmb3IgYXJyYW5naW5nIHVuY29ubmVjdGVkIHN1YmdyYXBocy4gVGhlIHN1YmdyYXBocyB0aGVtc2VsdmVzIGFyZSwgYnkgZGVmYXVsdCwgbm90IGxhaWQgb3V0LicpLG5ldyB4U2IpKSk7QWdkKGEsQXplLEJ6ZSxpR2Qoc1NiKSk7QWdkKGEsQXplLEN6ZSxpR2QobVNiKSk7QWdkKGEsQXplLER6ZSxpR2QoaFNiKSk7QWdkKGEsQXplLEV6ZSxpR2QoblNiKSk7QWdkKGEsQXplLEJ5ZSxpR2QocVNiKSk7QWdkKGEsQXplLEN5ZSxpR2QocFNiKSk7QWdkKGEsQXplLEF5ZSxpR2QoclNiKSk7QWdkKGEsQXplLER5ZSxpR2Qob1NiKSk7QWdkKGEsQXplLHZ6ZSxpR2QoalNiKSk7QWdkKGEsQXplLHd6ZSxpR2QoaVNiKSk7QWdkKGEsQXplLHh6ZSxpR2Qoa1NiKSk7QWdkKGEsQXplLHl6ZSxpR2QobFNiKSl9XG5mdW5jdGlvbiBxQWQoKXtxQWQ9Z2ViO29BZD1jRChXQyhoRSwxKSx6d2UsMjgsMTUsWzQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDY1LDY2LDY3LDY4LDY5LDcwXSk7cEFkPW5ldyBSZWdFeHAoJ1sgXFx0XFxuXFxyXFxmXSsnKTt0cnl7bkFkPWNEKFdDKGg4LDEpLHJ2ZSwyMTE0LDAsW25ldyBjMmQoKFdBKCksWUEoXCJ5eXl5LU1NLWRkJ1QnSEg6bW06c3MnLidTU1NaXCIsX0EoKCRBKCksJEEoKSxaQSkpKSkpLG5ldyBjMmQoWUEoXCJ5eXl5LU1NLWRkJ1QnSEg6bW06c3MnLidTU1NcIixfQSgobnVsbCxaQSkpKSksbmV3IGMyZChZQShcInl5eXktTU0tZGQnVCdISDptbTpzc1wiLF9BKChudWxsLFpBKSkpKSxuZXcgYzJkKFlBKFwieXl5eS1NTS1kZCdUJ0hIOm1tXCIsX0EoKG51bGwsWkEpKSkpLG5ldyBjMmQoWUEoJ3l5eXktTU0tZGQnLF9BKChudWxsLFpBKSkpKV0pfWNhdGNoKGEpe2E9emRiKGEpO2lmKCFaRChhLDgyKSl0aHJvdyBBZGIoYSl9fVxuZnVuY3Rpb24gdUtjKGEsYil7dmFyIGMsZCxlLGY7ZT1Ld2IoYS5kLDEpIT0wO2Q9bUtjKGEsYik7aWYoZD09MCYmSGViKFREKG1RYihiLmosKFl3YygpLGp3YykpKSkpe3JldHVybiAwfSFIZWIoVEQobVFiKGIuaiwoWXdjKCksandjKSkpKSYmIUhlYihURChtUWIoYi5qLE93YykpKXx8ZEUobVFiKGIuaiwoeUNjKCksY0FjKSkpPT09ZEUoKGtFYygpLGhFYykpP2IuYy5tZyhiLmUsZSk6KGU9SGViKFREKG1RYihiLmosandjKSkpKTtES2MoYSxiLGUsdHJ1ZSk7SGViKFREKG1RYihiLmosT3djKSkpJiZwUWIoYi5qLE93YywoR2ViKCksZmFsc2UpKTtpZihIZWIoVEQobVFiKGIuaixqd2MpKSkpe3BRYihiLmosandjLChHZWIoKSxmYWxzZSkpO3BRYihiLmosT3djLHRydWUpfWM9bUtjKGEsYik7ZG97eUtjKGEpO2lmKGM9PTApe3JldHVybiAwfWU9IWU7Zj1jO0RLYyhhLGIsZSxmYWxzZSk7Yz1tS2MoYSxiKX13aGlsZShmPmMpO3JldHVybiBmfVxuZnVuY3Rpb24gdktjKGEsYil7dmFyIGMsZCxlLGY7ZT1Ld2IoYS5kLDEpIT0wO2Q9bEtjKGEsYik7aWYoZD09MCYmSGViKFREKG1RYihiLmosKFl3YygpLGp3YykpKSkpe3JldHVybiAwfSFIZWIoVEQobVFiKGIuaiwoWXdjKCksandjKSkpKSYmIUhlYihURChtUWIoYi5qLE93YykpKXx8ZEUobVFiKGIuaiwoeUNjKCksY0FjKSkpPT09ZEUoKGtFYygpLGhFYykpP2IuYy5tZyhiLmUsZSk6KGU9SGViKFREKG1RYihiLmosandjKSkpKTtES2MoYSxiLGUsdHJ1ZSk7SGViKFREKG1RYihiLmosT3djKSkpJiZwUWIoYi5qLE93YywoR2ViKCksZmFsc2UpKTtpZihIZWIoVEQobVFiKGIuaixqd2MpKSkpe3BRYihiLmosandjLChHZWIoKSxmYWxzZSkpO3BRYihiLmosT3djLHRydWUpfWM9bEtjKGEsYik7ZG97eUtjKGEpO2lmKGM9PTApe3JldHVybiAwfWU9IWU7Zj1jO0RLYyhhLGIsZSxmYWxzZSk7Yz1sS2MoYSxiKX13aGlsZShmPmMpO3JldHVybiBmfVxuZnVuY3Rpb24gR2lkKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbTtpPW9qZChuZXcgcmpkKGMuYSxjLmIpLGEpO2o9aS5hKmIuYi1pLmIqYi5hO2s9Yi5hKmQuYi1iLmIqZC5hO2w9KGkuYSpkLmItaS5iKmQuYSkvazttPWovaztpZihrPT0wKXtpZihqPT0wKXtlPSRpZChuZXcgcmpkKGMuYSxjLmIpLGlqZChuZXcgcmpkKGQuYSxkLmIpLDAuNSkpO2Y9YmpkKGEsZSk7Zz1iamQoJGlkKG5ldyByamQoYS5hLGEuYiksYiksZSk7aD0kd25kLk1hdGguc3FydChkLmEqZC5hK2QuYipkLmIpKjAuNTtpZihmPGcmJmY8PWgpe3JldHVybiBuZXcgcmpkKGEuYSxhLmIpfWlmKGc8PWgpe3JldHVybiAkaWQobmV3IHJqZChhLmEsYS5iKSxiKX1yZXR1cm4gbnVsbH1lbHNle3JldHVybiBudWxsfX1lbHNle3JldHVybiBsPj0wJiZsPD0xJiZtPj0wJiZtPD0xPyRpZChuZXcgcmpkKGEuYSxhLmIpLGlqZChuZXcgcmpkKGIuYSxiLmIpLGwpKTpudWxsfX1cbmZ1bmN0aW9uIFFXYihhLGIsYyl7dmFyIGQsZSxmLGcsaDtkPVJEKG1RYihhLCh5Q2MoKSxkQWMpKSwyMSk7Yy5hPmIuYSYmKGQuSGMoKHVrZCgpLG9rZCkpPyhhLmMuYSs9KGMuYS1iLmEpLzIpOmQuSGMocWtkKSYmKGEuYy5hKz1jLmEtYi5hKSk7Yy5iPmIuYiYmKGQuSGMoKHVrZCgpLHNrZCkpPyhhLmMuYis9KGMuYi1iLmIpLzIpOmQuSGMocmtkKSYmKGEuYy5iKz1jLmItYi5iKSk7aWYoUkQobVFiKGEsKFl3YygpLGt3YykpLDIxKS5IYygob3ZjKCksaHZjKSkmJihjLmE+Yi5hfHxjLmI+Yi5iKSl7Zm9yKGg9bmV3IEFuYihhLmEpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMCk7aWYoZy5rPT0ocjNiKCksbTNiKSl7ZT1SRChtUWIoZyxod2MpLDY0KTtlPT0ocXBkKCksWG9kKT8oZy5uLmErPWMuYS1iLmEpOmU9PW5wZCYmKGcubi5iKz1jLmItYi5iKX19fWY9YS5kO2EuZi5hPWMuYS1mLmItZi5jO2EuZi5iPWMuYi1mLmQtZi5hfVxuZnVuY3Rpb24gWThiKGEsYixjKXt2YXIgZCxlLGYsZyxoO2Q9UkQobVFiKGEsKHlDYygpLGRBYykpLDIxKTtjLmE+Yi5hJiYoZC5IYygodWtkKCksb2tkKSk/KGEuYy5hKz0oYy5hLWIuYSkvMik6ZC5IYyhxa2QpJiYoYS5jLmErPWMuYS1iLmEpKTtjLmI+Yi5iJiYoZC5IYygodWtkKCksc2tkKSk/KGEuYy5iKz0oYy5iLWIuYikvMik6ZC5IYyhya2QpJiYoYS5jLmIrPWMuYi1iLmIpKTtpZihSRChtUWIoYSwoWXdjKCksa3djKSksMjEpLkhjKChvdmMoKSxodmMpKSYmKGMuYT5iLmF8fGMuYj5iLmIpKXtmb3IoZz1uZXcgQW5iKGEuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEwKTtpZihmLms9PShyM2IoKSxtM2IpKXtlPVJEKG1RYihmLGh3YyksNjQpO2U9PShxcGQoKSxYb2QpPyhmLm4uYSs9Yy5hLWIuYSk6ZT09bnBkJiYoZi5uLmIrPWMuYi1iLmIpfX19aD1hLmQ7YS5mLmE9Yy5hLWguYi1oLmM7YS5mLmI9Yy5iLWguZC1oLmF9XG5mdW5jdGlvbiBLUWMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtO2I9YlJjKGEpO2ZvcihrPShoPShuZXcgWGtiKGIpKS5hLnZjKCkuS2MoKSxuZXcgYmxiKGgpKTtrLmEuT2IoKTspe2o9KGU9UkQoay5hLlBiKCksNDQpLFJEKGUubGQoKSwxMCkpO2w9MDttPTA7bD1qLmQuZDttPWouby5iK2ouZC5hO2EuZFtqLnBdPTA7Yz1qO3doaWxlKChmPWEuYVtjLnBdKSE9ail7ZD1kUmMoYyxmKTtpPTA7YS5jPT0od1FjKCksdVFjKT8oaT1kLmQubi5iK2QuZC5hLmItZC5jLm4uYi1kLmMuYS5iKTooaT1kLmMubi5iK2QuYy5hLmItZC5kLm4uYi1kLmQuYS5iKTtnPUtmYihhLmRbYy5wXSkraTthLmRbZi5wXT1nO2w9JHduZC5NYXRoLm1heChsLGYuZC5kLWcpO209JHduZC5NYXRoLm1heChtLGcrZi5vLmIrZi5kLmEpO2M9Zn1jPWo7ZG97YS5kW2MucF09S2ZiKGEuZFtjLnBdKStsO2M9YS5hW2MucF19d2hpbGUoYyE9aik7YS5iW2oucF09bCttfX1cbmZ1bmN0aW9uIFM5YyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG07Zj0wO2c9YS50O2U9MDtkPTA7aT0wO209MDtsPTA7aWYoYyl7YS5uLmMubGVuZ3RoPTA7Um1iKGEubixuZXcgXzljKGEucyxhLnQsYS5pKSl9aD0wO2ZvcihrPW5ldyBBbmIoYS5iKTtrLmE8ay5jLmMubGVuZ3RoOyl7aj1SRCh5bmIoayksMjcpO2lmKGYrai5nKyhoPjA/YS5pOjApPmImJmk+MCl7Zj0wO2crPWkrYS5pO2U9JHduZC5NYXRoLm1heChlLG0pO2QrPWkrYS5pO2k9MDttPTA7aWYoYyl7KytsO1JtYihhLm4sbmV3IF85YyhhLnMsZyxhLmkpKX1oPTB9bSs9ai5nKyhoPjA/YS5pOjApO2k9JHduZC5NYXRoLm1heChpLGouZik7YyYmVzljKFJEKFZtYihhLm4sbCksMjA5KSxqKTtmKz1qLmcrKGg+MD9hLmk6MCk7KytofWU9JHduZC5NYXRoLm1heChlLG0pO2QrPWk7aWYoYyl7YS5yPWU7YS5kPWQ7RWFkKGEuail9cmV0dXJuIG5ldyBVaWQoYS5zLGEudCxlLGQpfVxuZnVuY3Rpb24gQ1JiKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbTthLmI9ZmFsc2U7bD1veGU7aT1weGU7bT1veGU7aj1weGU7Zm9yKGQ9YS5lLmEuZWMoKS5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDI3Mik7ZT1jLmE7bD0kd25kLk1hdGgubWluKGwsZS5jKTtpPSR3bmQuTWF0aC5tYXgoaSxlLmMrZS5iKTttPSR3bmQuTWF0aC5taW4obSxlLmQpO2o9JHduZC5NYXRoLm1heChqLGUuZCtlLmEpO2ZvcihnPW5ldyBBbmIoYy5jKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksNDA3KTtiPWYuYTtpZihiLmEpe2s9ZS5kK2YuYi5iO2g9aytmLmM7bT0kd25kLk1hdGgubWluKG0sayk7aj0kd25kLk1hdGgubWF4KGosaCl9ZWxzZXtrPWUuYytmLmIuYTtoPWsrZi5jO2w9JHduZC5NYXRoLm1pbihsLGspO2k9JHduZC5NYXRoLm1heChpLGgpfX19YS5hPW5ldyByamQoaS1sLGotbSk7YS5jPW5ldyByamQobCthLmQuYSxtK2EuZC5iKX1cbmZ1bmN0aW9uIG1ZZChhKXt2YXIgYixjLGQsZSxmLGcsaCxpO2lmKCFhLmEpe2Eubz1udWxsO2k9bmV3IGVfZChhKTtiPW5ldyBpX2Q7Yz1pWWQ7aD1jLmEuemMoYSxjKTtpZihoPT1udWxsKXtmb3IoZz1uZXcgZE1kKHpZZChhKSk7Zy5lIT1nLmkuZ2MoKTspe2Y9UkQoYk1kKGcpLDI5KTtZR2QoaSxtWWQoZikpfWMuYS5CYyhhKSE9bnVsbDtjLmEuZ2MoKT09MCYmdW5kZWZpbmVkfWZvcihlPSghYS5zJiYoYS5zPW5ldyBDNWQoeTcsYSwyMSwxNykpLG5ldyBkTWQoYS5zKSk7ZS5lIT1lLmkuZ2MoKTspe2Q9UkQoYk1kKGUpLDE3OSk7WkQoZCwzMzEpJiZXR2QoYixSRChkLDM1KSl9VkhkKGIpO2Euaz1uZXcgbl9kKGEsKFJEKFFIZCh4WWQoKGxUZCgpLGtUZCkubyksNyksMTkpLGIuaSksYi5nKTtZR2QoaSxhLmspO1ZIZChpKTthLmE9bmV3IE4kZCgoUkQoUUhkKHhZZChrVGQubyksNCksMTkpLGkuaSksaS5nKTt5WWQoYSkuYiY9LTJ9cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIGFnZShhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosaztrPXBrZShhLmUuRGgoKSxiKTtlPTA7Zj1SRChhLmcsMTI0KTtpPW51bGw7bmtlKCk7aWYoUkQoYiw2OSkueGsoKSl7Zm9yKGg9MDtoPGEuaTsrK2gpe2c9ZltoXTtpZihrLmFtKGcuTGsoKSkpe2lmKHBiKGcsYykpe2k9ZzticmVha30rK2V9fX1lbHNlIGlmKGMhPW51bGwpe2ZvcihoPTA7aDxhLmk7KytoKXtnPWZbaF07aWYoay5hbShnLkxrKCkpKXtpZihwYihjLGcubWQoKSkpe2k9ZzticmVha30rK2V9fX1lbHNle2ZvcihoPTA7aDxhLmk7KytoKXtnPWZbaF07aWYoay5hbShnLkxrKCkpKXtpZihnLm1kKCk9PW51bGwpe2k9ZzticmVha30rK2V9fX1pZihpKXtpZihNdmQoYS5lKSl7aj1iLkprKCk/bmV3IGxsZShhLmUsNCxiLGMsbnVsbCxlLHRydWUpOmZnZShhLGIudGsoKT8yOjEsYixjLGIuaWsoKSwtMSx0cnVlKTtkP2Qubmooaik6KGQ9ail9ZD1fZmUoYSxpLGQpfXJldHVybiBkfVxuZnVuY3Rpb24gZDhjKGEsYixjLGQsZSxmLGcpe3ZhciBoLGksaixrLGwsbSxuLG8scDtvPTA7cD0wO2k9ZS5jO2g9ZS5iO2s9Yy5mO249Yy5nO3N3aXRjaChiLmcpe2Nhc2UgMDpvPWQuaStkLmcrZzthLmM/KHA9bThjKG8sZixkLGcpKToocD1kLmopO209JHduZC5NYXRoLm1heChpLG8rbik7aj0kd25kLk1hdGgubWF4KGgscCtrKTticmVhaztjYXNlIDE6cD1kLmorZC5mK2c7YS5jPyhvPWw4YyhwLGYsZCxnKSk6KG89ZC5pKTttPSR3bmQuTWF0aC5tYXgoaSxvK24pO2o9JHduZC5NYXRoLm1heChoLHArayk7YnJlYWs7Y2FzZSAyOm89aStnO3A9MDttPWkrZytuO2o9JHduZC5NYXRoLm1heChoLGspO2JyZWFrO2Nhc2UgMzpvPTA7cD1oK2c7bT0kd25kLk1hdGgubWF4KGksbik7aj1oK2crazticmVhaztkZWZhdWx0OnRocm93IEFkYihuZXcgYWdiKCdJbGxlZ2FsUGxhY2VtZW50T3B0aW9uLicpKTt9bD1uZXcgbWFkKGEuYSxtLGosYixvLHApO3JldHVybiBsfVxuZnVuY3Rpb24gZzZiKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbTtoPWEuZDtsPVJEKG1RYihhLChZd2MoKSxYd2MpKSwxNSk7Yj1SRChtUWIoYSxWdmMpLDE1KTtpZighbCYmIWIpe3JldHVybn1mPUtmYihVRChoRmMoYSwoeUNjKCksUUJjKSkpKTtnPUtmYihVRChoRmMoYSxSQmMpKSk7bT0wO2lmKGwpe2o9MDtmb3IoZT1sLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMTApO2o9JHduZC5NYXRoLm1heChqLGQuby5iKTttKz1kLm8uYX1tKz1mKihsLmdjKCktMSk7aC5kKz1qK2d9Yz0wO2lmKGIpe2o9MDtmb3IoZT1iLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMTApO2o9JHduZC5NYXRoLm1heChqLGQuby5iKTtjKz1kLm8uYX1jKz1mKihiLmdjKCktMSk7aC5hKz1qK2d9aT0kd25kLk1hdGgubWF4KG0sYyk7aWYoaT5hLm8uYSl7az0oaS1hLm8uYSkvMjtoLmI9JHduZC5NYXRoLm1heChoLmIsayk7aC5jPSR3bmQuTWF0aC5tYXgoaC5jLGspfX1cbmZ1bmN0aW9uIFJJZChhKXt2YXIgYixjLGQsZSxmLGcsaCxpO2Y9bmV3IG1lZDtpZWQoZiwoaGVkKCksZWVkKSk7Zm9yKGQ9KGU9b0MoYSwkQyhxSixOdmUsMiwwLDYsMSkpLG5ldyBEa2IobmV3IG1vYigobmV3IENDKGEsZSkpLmIpKSk7ZC5iPGQuZC5nYygpOyl7Yz0oc0ZiKGQuYjxkLmQuZ2MoKSksV0QoZC5kLlhiKGQuYz1kLmIrKykpKTtnPXZnZChMSWQsYyk7aWYoZyl7Yj1xQyhhLGMpO2IudGUoKT8oaD1iLnRlKCkuYSk6Yi5xZSgpPyhoPScnK2IucWUoKS5hKTpiLnJlKCk/KGg9JycrYi5yZSgpLmEpOihoPWIuSWIoKSk7aT16aGQoZyxoKTtpZihpIT1udWxsKXsoQ3NiKGcuaiwoWWhkKCksVmhkKSl8fENzYihnLmosV2hkKSkmJm9RYihrZWQoZixKNCksZyxpKTtDc2IoZy5qLFRoZCkmJm9RYihrZWQoZixHNCksZyxpKTtDc2IoZy5qLFhoZCkmJm9RYihrZWQoZixLNCksZyxpKTtDc2IoZy5qLFVoZCkmJm9RYihrZWQoZixJNCksZyxpKX19fXJldHVybiBmfVxuZnVuY3Rpb24gaWdlKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrO2U9UkQoYS5nLDEyNCk7aWYocWtlKGEuZSxiKSl7cmV0dXJuIG5rZSgpLFJEKGIsNjkpLnhrKCk/bmV3IG9sZShiLGEpOm5ldyBFa2UoYixhKX1lbHNle2o9cGtlKGEuZS5EaCgpLGIpO2Q9MDtmb3IoaD0wO2g8YS5pOysraCl7Zj1lW2hdO2c9Zi5MaygpO2lmKGouYW0oZykpe25rZSgpO2lmKFJEKGIsNjkpLnhrKCkpe3JldHVybiBmfWVsc2UgaWYoZz09KExsZSgpLEpsZSl8fGc9PUdsZSl7aT1uZXcgZGliKGplYihmLm1kKCkpKTt3aGlsZSgrK2g8YS5pKXtmPWVbaF07Zz1mLkxrKCk7KGc9PUpsZXx8Zz09R2xlKSYmWmhiKGksamViKGYubWQoKSkpfXJldHVybiBJamUoUkQoYi5IaygpLDE1NiksaS5hKX1lbHNle2s9Zi5tZCgpO2shPW51bGwmJmMmJlpEKGIsMTAyKSYmKFJEKGIsMTkpLkJiJnR4ZSkhPTAmJihrPUJnZShhLGIsaCxkLGspKTtyZXR1cm4ga319KytkfXJldHVybiBiLmlrKCl9fVxuZnVuY3Rpb24gaGdlKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksajtpPXBrZShhLmUuRGgoKSxiKTtmPVJEKGEuZywxMjQpO2lmKHFrZShhLmUsYikpe2U9MDtmb3IoaD0wO2g8YS5pOysraCl7Zz1mW2hdO2lmKGkuYW0oZy5MaygpKSl7aWYoZT09Yyl7bmtlKCk7aWYoUkQoYiw2OSkueGsoKSl7cmV0dXJuIGd9ZWxzZXtqPWcubWQoKTtqIT1udWxsJiZkJiZaRChiLDEwMikmJihSRChiLDE5KS5CYiZ0eGUpIT0wJiYoaj1CZ2UoYSxiLGgsZSxqKSk7cmV0dXJuIGp9fSsrZX19dGhyb3cgQWRiKG5ldyB2ZWIoSEplK2MrTkllK2UpKX1lbHNle2U9MDtmb3IoaD0wO2g8YS5pOysraCl7Zz1mW2hdO2lmKGkuYW0oZy5MaygpKSl7bmtlKCk7aWYoUkQoYiw2OSkueGsoKSl7cmV0dXJuIGd9ZWxzZXtqPWcubWQoKTtqIT1udWxsJiZkJiZaRChiLDEwMikmJihSRChiLDE5KS5CYiZ0eGUpIT0wJiYoaj1CZ2UoYSxiLGgsZSxqKSk7cmV0dXJuIGp9fSsrZX1yZXR1cm4gYi5paygpfX1cbmZ1bmN0aW9uIHhqYigpe3hqYj1nZWI7dmpiPWNEKFdDKGtFLDEpLFB3ZSwyOCwxNSxbcXdlLDExNjIyNjE0NjcsaHdlLDEyMjA3MDMxMjUsMzYyNzk3MDU2LDE5NzczMjY3NDMsaHdlLDM4NzQyMDQ4OSxpeGUsMjE0MzU4ODgxLDQyOTk4MTY5Niw4MTU3MzA3MjEsMTQ3NTc4OTA1NiwxNzA4NTkzNzUsMjY4NDM1NDU2LDQxMDMzODY3Myw2MTIyMjAwMzIsODkzODcxNzM5LDEyODAwMDAwMDAsMTgwMTA4ODU0MSwxMTMzNzk5MDQsMTQ4MDM1ODg5LDE5MTEwMjk3NiwyNDQxNDA2MjUsMzA4OTE1Nzc2LDM4NzQyMDQ4OSw0ODE4OTAzMDQsNTk0ODIzMzIxLDcyOTAwMDAwMCw4ODc1MDM2ODEsaHdlLDEyOTE0Njc5NjksMTU0NDgwNDQxNiwxODM4MjY1NjI1LDYwNDY2MTc2XSk7d2piPWNEKFdDKGtFLDEpLFB3ZSwyOCwxNSxbLTEsLTEsMzEsMTksMTUsMTMsMTEsMTEsMTAsOSw5LDgsOCw4LDgsNyw3LDcsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNV0pfVxuZnVuY3Rpb24gR2piKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGw7Zz1hLmU7aT1iLmU7aWYoaT09MCl7cmV0dXJuIGF9aWYoZz09MCl7cmV0dXJuIGIuZT09MD9iOm5ldyBjamIoLWIuZSxiLmQsYi5hKX1mPWEuZDtoPWIuZDtpZihmK2g9PTIpe2M9Q2RiKGEuYVswXSx5eGUpO2Q9Q2RiKGIuYVswXSx5eGUpO2c8MCYmKGM9T2RiKGMpKTtpPDAmJihkPU9kYihkKSk7cmV0dXJuIFBpYigpLEpkYihWZGIoYyxkKSwwKT9qamIoVmRiKGMsZCkpOlhpYihqamIoT2RiKFZkYihjLGQpKSkpfWU9ZiE9aD9mPmg/MTotMTpFamIoYS5hLGIuYSxmKTtpZihlPT0tMSl7bD0taTtrPWc9PWk/SGpiKGIuYSxoLGEuYSxmKTpDamIoYi5hLGgsYS5hLGYpfWVsc2V7bD1nO2lmKGc9PWkpe2lmKGU9PTApe3JldHVybiBQaWIoKSxPaWJ9az1IamIoYS5hLGYsYi5hLGgpfWVsc2V7az1DamIoYS5hLGYsYi5hLGgpfX1qPW5ldyBjamIobCxrLmxlbmd0aCxrKTtSaWIoaik7cmV0dXJuIGp9XG5mdW5jdGlvbiBjNWIoYSxiKXt2YXIgYyxkLGUsZjtmPVo0YihiKTshYi5jJiYoYi5jPW5ldyBDNWQoSzQsYiw5LDkpKTtGRGIobmV3IFNEYihudWxsLCghYi5jJiYoYi5jPW5ldyBDNWQoSzQsYiw5LDkpKSxuZXcgU3diKGIuYywxNikpKSxuZXcgczViKGYpKTtlPVJEKG1RYihmLChZd2MoKSxrd2MpKSwyMSk7WTRiKGIsZSk7aWYoZS5IYygob3ZjKCksaHZjKSkpe2ZvcihkPW5ldyBkTWQoKCFiLmMmJihiLmM9bmV3IEM1ZChLNCxiLDksOSkpLGIuYykpO2QuZSE9ZC5pLmdjKCk7KXtjPVJEKGJNZChkKSwxMjMpO2c1YihhLGIsZixjKX19UkQoR3hkKGIsKHlDYygpLGxCYykpLDE4MSkuZ2MoKSE9MCYmVjRiKGIsZik7SGViKFREKG1RYihmLHNCYykpKSYmZS5GYyhtdmMpO25RYihmLFBCYykmJkhDYyhuZXcgUkNjKEtmYihVRChtUWIoZixQQmMpKSkpLGYpO2RFKEd4ZChiLElBYykpPT09ZEUoKEZuZCgpLENuZCkpP2Q1YihhLGIsZik6YjViKGEsYixmKTtyZXR1cm4gZn1cbmZ1bmN0aW9uIFZyYyhhKXt2YXIgYixjLGQsZSxmLGcsaCxpO2ZvcihlPW5ldyBBbmIoYS5iKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMzApO2ZvcihnPW5ldyBBbmIoYnYoZC5hKSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEwKTtpZihMcmMoZikpe2M9UkQobVFiKGYsKFl3YygpLFd2YykpLDMxMyk7aWYoIWMuZyYmISFjLmQpe2I9YztpPWMuZDt3aGlsZShpKXtVcmMoaS5pLGkuayxmYWxzZSx0cnVlKTthc2MoYi5hKTthc2MoaS5pKTthc2MoaS5rKTthc2MoaS5iKTtaMGIoaS5jLGIuYy5kKTtaMGIoYi5jLG51bGwpO2czYihiLmEsbnVsbCk7ZzNiKGkuaSxudWxsKTtnM2IoaS5rLG51bGwpO2czYihpLmIsbnVsbCk7aD1uZXcgSnJjKGIuaSxpLmEsYi5lLGkuaixpLmYpO2guaz1iLms7aC5uPWIubjtoLmI9Yi5iO2guYz1pLmM7aC5nPWIuZztoLmQ9aS5kO3BRYihiLmksV3ZjLGgpO3BRYihpLmEsV3ZjLGgpO2k9aS5kO2I9aH19fX19fVxuZnVuY3Rpb24gbnVlKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7aWYoYT09bnVsbCl7cmV0dXJuIG51bGx9Zj1hLmxlbmd0aDtpZihmPT0wKXtyZXR1cm4gJyd9aT0kQyhoRSx6d2UsMjgsZiwxNSwxKTtBRmIoMCxmLGEubGVuZ3RoKTtBRmIoMCxmLGkubGVuZ3RoKTtuaGIoYSwwLGYsaSwwKTtjPW51bGw7aD1iO2ZvcihlPTAsZz0wO2U8ZjtlKyspe2Q9aVtlXTtLcWUoKTtpZihkPD0zMiYmKEpxZVtkXSYyKSE9MCl7aWYoaCl7IWMmJihjPW5ldyBTaGIoYSkpO1BoYihjLGUtZysrKX1lbHNle2g9YjtpZihkIT0zMil7IWMmJihjPW5ldyBTaGIoYSkpO3BlYihjLGUtZyxlLWcrMSxTdHJpbmcuZnJvbUNoYXJDb2RlKDMyKSl9fX1lbHNle2g9ZmFsc2V9fWlmKGgpe2lmKCFjKXtyZXR1cm4gQUZiKDAsZi0xLGEubGVuZ3RoKSxhLnN1YnN0cigwLGYtMSl9ZWxzZXtmPWMuYS5sZW5ndGg7cmV0dXJuIGY+MD96aGIoYy5hLDAsZi0xKTonJ319ZWxzZXtyZXR1cm4gIWM/YTpjLmF9fVxuZnVuY3Rpb24geGljKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7Yi5VZygnU29ydCBCeSBJbnB1dCBNb2RlbCAnK21RYihhLCh5Q2MoKSxjQWMpKSwxKTtlPTA7Zm9yKGQ9bmV3IEFuYihhLmIpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwzMCk7aT1lPT0wPzA6ZS0xO2g9UkQoVm1iKGEuYixpKSwzMCk7Zm9yKGc9bmV3IEFuYihjLmEpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxMCk7aWYoZEUobVFiKGYsQkJjKSkhPT1kRSgoQm9kKCksdm9kKSkmJmRFKG1RYihmLEJCYykpIT09ZEUod29kKSl7eW9iKCk7X21iKGYuaixuZXcgdHJjKGgsUkQobVFiKGEsY0FjKSwyODQpLEJpYyhmKSxIZWIoVEQobVFiKGEsYkFjKSkpKSk7Yi5iaCgnTm9kZSAnK2YrJyBwb3J0czogJytmLmopfX15b2IoKTtfbWIoYy5hLG5ldyBmcmMoaCxSRChtUWIoYSxjQWMpLDI4NCksUkQobVFiKGEsX3pjKSwzOTApKSk7Yi5iaCgnTGF5ZXIgJytlKyc6ICcrYyk7KytlfWIuVmcoKX1cbmZ1bmN0aW9uIHV0ZShhLGIpe3ZhciBjLGQsZSxmLGc7Zz1SRChiLDEzOCk7dnRlKGEpO3Z0ZShnKTtpZihnLmI9PW51bGwpcmV0dXJuO2EuYz10cnVlO2lmKGEuYj09bnVsbCl7YS5iPSRDKGtFLFB3ZSwyOCxnLmIubGVuZ3RoLDE1LDEpO2hpYihnLmIsMCxhLmIsMCxnLmIubGVuZ3RoKTtyZXR1cm59Zj0kQyhrRSxQd2UsMjgsYS5iLmxlbmd0aCtnLmIubGVuZ3RoLDE1LDEpO2ZvcihjPTAsZD0wLGU9MDtjPGEuYi5sZW5ndGh8fGQ8Zy5iLmxlbmd0aDspe2lmKGM+PWEuYi5sZW5ndGgpe2ZbZSsrXT1nLmJbZCsrXTtmW2UrK109Zy5iW2QrK119ZWxzZSBpZihkPj1nLmIubGVuZ3RoKXtmW2UrK109YS5iW2MrK107ZltlKytdPWEuYltjKytdfWVsc2UgaWYoZy5iW2RdPGEuYltjXXx8Zy5iW2RdPT09YS5iW2NdJiZnLmJbZCsxXTxhLmJbYysxXSl7ZltlKytdPWcuYltkKytdO2ZbZSsrXT1nLmJbZCsrXX1lbHNle2ZbZSsrXT1hLmJbYysrXTtmW2UrK109YS5iW2MrK119fWEuYj1mfVxuZnVuY3Rpb24gaGFjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGw7Yz1IZWIoVEQobVFiKGEsKFl3YygpLHV3YykpKSk7aD1IZWIoVEQobVFiKGIsdXdjKSkpO2Q9UkQobVFiKGEsdndjKSwxMik7aT1SRChtUWIoYix2d2MpLDEyKTtlPVJEKG1RYihhLHd3YyksMTIpO2o9UkQobVFiKGIsd3djKSwxMik7az0hIWQmJmQ9PWk7bD0hIWUmJmU9PWo7aWYoIWMmJiFoKXtyZXR1cm4gbmV3IG9hYyhSRCh5bmIobmV3IEFuYihhLmopKSwxMikucD09UkQoeW5iKG5ldyBBbmIoYi5qKSksMTIpLnAsayxsKX1mPSghSGViKFREKG1RYihhLHV3YykpKXx8SGViKFREKG1RYihhLHR3YykpKSkmJighSGViKFREKG1RYihiLHV3YykpKXx8SGViKFREKG1RYihiLHR3YykpKSk7Zz0oIUhlYihURChtUWIoYSx1d2MpKSl8fCFIZWIoVEQobVFiKGEsdHdjKSkpKSYmKCFIZWIoVEQobVFiKGIsdXdjKSkpfHwhSGViKFREKG1RYihiLHR3YykpKSk7cmV0dXJuIG5ldyBvYWMoayYmZnx8bCYmZyxrLGwpfVxuZnVuY3Rpb24gTjljKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk7ZD0wO2M9MDtpPW5ldyBZdWI7Yj0wO2ZvcihoPW5ldyBBbmIoYS5uKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMjA5KTtpZihnLmMuYy5sZW5ndGg9PTApe1B1YihpLGcsaS5jLmIsaS5jKX1lbHNle2Q9JHduZC5NYXRoLm1heChkLGcuZCk7Yys9Zy5hKyhiPjA/YS5pOjApfSsrYn1DZShhLm4saSk7YS5kPWM7YS5yPWQ7YS5nPTA7YS5mPTA7YS5lPTA7YS5vPW94ZTthLnA9b3hlO2ZvcihmPW5ldyBBbmIoYS5iKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMjcpO2EucD0kd25kLk1hdGgubWluKGEucCxlLmcpO2EuZz0kd25kLk1hdGgubWF4KGEuZyxlLmcpO2EuZj0kd25kLk1hdGgubWF4KGEuZixlLmYpO2Eubz0kd25kLk1hdGgubWluKGEubyxlLmYpO2EuZSs9ZS5mK2EuaX1hLmE9YS5lL2EuYi5jLmxlbmd0aC1hLmkqKChhLmIuYy5sZW5ndGgtMSkvYS5iLmMubGVuZ3RoKTtFYWQoYS5qKX1cbmZ1bmN0aW9uIHF6ZChhKXt2YXIgYixjLGQsZTtpZigoYS5EYiY2NCkhPTApcmV0dXJuIGt5ZChhKTtiPW5ldyBkaWIoQkhlKTtkPWEuaztpZighZCl7IWEubiYmKGEubj1uZXcgQzVkKEk0LGEsMSw3KSk7aWYoYS5uLmk+MCl7ZT0oIWEubiYmKGEubj1uZXcgQzVkKEk0LGEsMSw3KSksUkQoUUhkKGEubiwwKSwxMzUpKS5hOyFlfHxaaGIoWmhiKChiLmErPScgXCInLGIpLGUpLCdcIicpfX1lbHNle1poYihaaGIoKGIuYSs9JyBcIicsYiksZCksJ1wiJyl9Yz0oIWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSksIShhLmIuaTw9MSYmKCFhLmMmJihhLmM9bmV3IFlpZShFNCxhLDUsOCkpLGEuYy5pPD0xKSkpO2M/KGIuYSs9JyBbJyxiKTooYi5hKz0nICcsYik7WmhiKGIsRWIobmV3IEdiLG5ldyBkTWQoYS5iKSkpO2MmJihiLmErPSddJyxiKTtiLmErPVNBZTtjJiYoYi5hKz0nWycsYik7WmhiKGIsRWIobmV3IEdiLG5ldyBkTWQoYS5jKSkpO2MmJihiLmErPSddJyxiKTtyZXR1cm4gYi5hfVxuZnVuY3Rpb24gb2RjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQ7dj1hLmM7dz1iLmM7Yz1XbWIodi5hLGEsMCk7ZD1XbWIody5hLGIsMCk7dD1SRChjM2IoYSwoQkVjKCkseUVjKSkuS2MoKS5QYigpLDEyKTtDPVJEKGMzYihhLHpFYykuS2MoKS5QYigpLDEyKTt1PVJEKGMzYihiLHlFYykuS2MoKS5QYigpLDEyKTtEPVJEKGMzYihiLHpFYykuS2MoKS5QYigpLDEyKTtyPXMyYih0LmUpO0E9czJiKEMuZyk7cz1zMmIodS5lKTtCPXMyYihELmcpO2YzYihhLGQsdyk7Zm9yKGc9cyxrPTAsbz1nLmxlbmd0aDtrPG87KytrKXtlPWdba107WjBiKGUsdCl9Zm9yKGg9QixsPTAscD1oLmxlbmd0aDtsPHA7KytsKXtlPWhbbF07WTBiKGUsQyl9ZjNiKGIsYyx2KTtmb3IoaT1yLG09MCxxPWkubGVuZ3RoO208cTsrK20pe2U9aVttXTtaMGIoZSx1KX1mb3IoZj1BLGo9MCxuPWYubGVuZ3RoO2o8bjsrK2ope2U9ZltqXTtZMGIoZSxEKX19XG5mdW5jdGlvbiAkMmMoYSl7dmFyIGIsYyxkLGUsZixnLGg7Zz1SRChHeGQoYSwodTJjKCksdDJjKSksMjcpO2ZvcihkPW5ldyBkTWQoKCFnLmUmJihnLmU9bmV3IFlpZShHNCxnLDcsNCkpLGcuZSkpO2QuZSE9ZC5pLmdjKCk7KXtjPVJEKGJNZChkKSw3NCk7aD1uZXcgcmpkKFJEKFFIZCgoIWMuYSYmKGMuYT1uZXcgQzVkKEY0LGMsNiw2KSksYy5hKSwwKSwxNjYpLmosUkQoUUhkKCghYy5hJiYoYy5hPW5ldyBDNWQoRjQsYyw2LDYpKSxjLmEpLDApLDE2Nikuayk7Zj1uZXcgcmpkKFJEKFFIZCgoIWMuYSYmKGMuYT1uZXcgQzVkKEY0LGMsNiw2KSksYy5hKSwwKSwxNjYpLmIsUkQoUUhkKCghYy5hJiYoYy5hPW5ldyBDNWQoRjQsYyw2LDYpKSxjLmEpLDApLDE2NikuYyk7ZT1uZXcgcmpkKGYuYS1oLmEsZi5iLWguYik7Yj0kd25kLk1hdGguYXRhbjIoZS5iLGUuYSk7UkQoUUhkKCghYy5jJiYoYy5jPW5ldyBZaWUoRTQsYyw1LDgpKSxjLmMpLDApLDg0KS5xZigoJDRjKCksVzRjKSxiKX19XG5mdW5jdGlvbiBvNmMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGs7Yi5VZygnSW50ZXJhY3RpdmUgTm9kZSBSZW9yZGVyZXInLDEpO2s9KCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKTtoPW5ldyBibmI7Zm9yKGU9bmV3IGRNZChrKTtlLmUhPWUuaS5nYygpOyl7Yz1SRChiTWQoZSksMjcpO0h4ZChjLChYN2MoKSxBN2MpKSYmKFpFYihoLmMsYyksdHJ1ZSl9Zm9yKGY9bmV3IEFuYihoKTtmLmE8Zi5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZiksMjcpO2RIZChrLGMpfXlvYigpO19tYihoLG5ldyBzNmMpO2ZvcihnPW5ldyBBbmIoaCk7Zy5hPGcuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGcpLDI3KTtqPVJEKEd4ZChjLChYN2MoKSxBN2MpKSwxNykuYTtqPSR3bmQuTWF0aC5taW4oaixrLmkpO1ZHZChrLGosYyl9aT0wO2ZvcihkPW5ldyBkTWQoayk7ZC5lIT1kLmkuZ2MoKTspe2M9UkQoYk1kKGQpLDI3KTtJeGQoYywoWDdjKCksejdjKSxzZ2IoaSkpOysraX1iLlZnKCl9XG5mdW5jdGlvbiBQVGMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs7aWYoJHduZC5NYXRoLmFicyhiLnMtYi5jKTxWemV8fCR3bmQuTWF0aC5hYnMoYy5zLWMuYyk8VnplKXtyZXR1cm4gMH1kPU9UYyhhLGIuaixjLmUpO2U9T1RjKGEsYy5qLGIuZSk7Zj1kPT0tMXx8ZT09LTE7Zz0wO2lmKGYpe2lmKGQ9PS0xKXtuZXcgYlRjKChmVGMoKSxkVGMpLGMsYiwxKTsrK2d9aWYoZT09LTEpe25ldyBiVGMoKGZUYygpLGRUYyksYixjLDEpOysrZ319ZWxzZXtoPVZUYyhiLmosYy5zLGMuYyk7aCs9VlRjKGMuZSxiLnMsYi5jKTtpPVZUYyhjLmosYi5zLGIuYyk7aSs9VlRjKGIuZSxjLnMsYy5jKTtqPWQrMTYqaDtrPWUrMTYqaTtpZihqPGspe25ldyBiVGMoKGZUYygpLGVUYyksYixjLGstail9ZWxzZSBpZihqPmspe25ldyBiVGMoKGZUYygpLGVUYyksYyxiLGotayl9ZWxzZSBpZihqPjAmJms+MCl7bmV3IGJUYygoZlRjKCksZVRjKSxiLGMsMCk7bmV3IGJUYyhlVGMsYyxiLDApfX1yZXR1cm4gZ31cbmZ1bmN0aW9uIHBYYyhhLGIsYyl7dmFyIGQsZSxmO2EuYT1uZXcgYm5iO2ZvcihmPVN1YihiLmIsMCk7Zi5iIT1mLmQuYzspe2U9UkQoZXZiKGYpLDQwKTt3aGlsZShSRChtUWIoZSwoaF9jKCksZl9jKSksMTcpLmE+YS5hLmMubGVuZ3RoLTEpe1JtYihhLmEsbmV3IFB0ZChIemUsS0VlKSl9ZD1SRChtUWIoZSxmX2MpLDE3KS5hO2lmKGM9PShDbWQoKSx5bWQpfHxjPT16bWQpe2UuZS5hPEtmYihVRChSRChWbWIoYS5hLGQpLDQyKS5hKSkmJk50ZChSRChWbWIoYS5hLGQpLDQyKSxlLmUuYSk7ZS5lLmErZS5mLmE+S2ZiKFVEKFJEKFZtYihhLmEsZCksNDIpLmIpKSYmT3RkKFJEKFZtYihhLmEsZCksNDIpLGUuZS5hK2UuZi5hKX1lbHNle2UuZS5iPEtmYihVRChSRChWbWIoYS5hLGQpLDQyKS5hKSkmJk50ZChSRChWbWIoYS5hLGQpLDQyKSxlLmUuYik7ZS5lLmIrZS5mLmI+S2ZiKFVEKFJEKFZtYihhLmEsZCksNDIpLmIpKSYmT3RkKFJEKFZtYihhLmEsZCksNDIpLGUuZS5iK2UuZi5iKX19fVxuZnVuY3Rpb24gZzJiKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrO2Y9aTJiKGQpO2g9SGViKFREKG1RYihkLCh5Q2MoKSxhQmMpKSkpO2lmKChofHxIZWIoVEQobVFiKGEsTUFjKSkpKSYmIURvZChSRChtUWIoYSxCQmMpLDEwMSkpKXtlPXZwZChmKTtpPXEyYihhLGMsYz09KEJFYygpLHpFYyk/ZTpzcGQoZSkpfWVsc2V7aT1uZXcgUjNiO1AzYihpLGEpO2lmKGIpe2s9aS5uO2suYT1iLmEtYS5uLmE7ay5iPWIuYi1hLm4uYjtfaWQoaywwLDAsYS5vLmEsYS5vLmIpO1EzYihpLGMyYihpLGYpKX1lbHNle2U9dnBkKGYpO1EzYihpLGM9PShCRWMoKSx6RWMpP2U6c3BkKGUpKX1nPVJEKG1RYihkLChZd2MoKSxrd2MpKSwyMSk7aj1pLmo7c3dpdGNoKGYuZyl7Y2FzZSAyOmNhc2UgMTooaj09KHFwZCgpLFlvZCl8fGo9PW5wZCkmJmcuRmMoKG92YygpLGx2YykpO2JyZWFrO2Nhc2UgNDpjYXNlIDM6KGo9PShxcGQoKSxYb2QpfHxqPT1wcGQpJiZnLkZjKChvdmMoKSxsdmMpKTt9fXJldHVybiBpfVxuZnVuY3Rpb24gVlhiKGEsYil7dmFyIGMsZCxlLGYsZyxoO2ZvcihnPW5ldyB2a2IoKG5ldyBta2IoYS5mLmIpKS5hKTtnLmI7KXtmPXRrYihnKTtlPVJEKGYubGQoKSw2MDIpO2lmKGI9PTEpe2lmKGUuQWYoKSE9KENtZCgpLEJtZCkmJmUuQWYoKSE9eG1kKXtjb250aW51ZX19ZWxzZXtpZihlLkFmKCkhPShDbWQoKSx5bWQpJiZlLkFmKCkhPXptZCl7Y29udGludWV9fWQ9UkQoUkQoZi5tZCgpLDQyKS5iLDg2KTtoPVJEKFJEKGYubWQoKSw0MikuYSwxOTQpO2M9aC5jO3N3aXRjaChlLkFmKCkuZyl7Y2FzZSAyOmQuZy5jPWEuZS5hO2QuZy5iPSR3bmQuTWF0aC5tYXgoMSxkLmcuYitjKTticmVhaztjYXNlIDE6ZC5nLmM9ZC5nLmMrYztkLmcuYj0kd25kLk1hdGgubWF4KDEsZC5nLmItYyk7YnJlYWs7Y2FzZSA0OmQuZy5kPWEuZS5iO2QuZy5hPSR3bmQuTWF0aC5tYXgoMSxkLmcuYStjKTticmVhaztjYXNlIDM6ZC5nLmQ9ZC5nLmQrYztkLmcuYT0kd25kLk1hdGgubWF4KDEsZC5nLmEtYyk7fX19XG5mdW5jdGlvbiBOTmMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwO2g9JEMoa0UsUHdlLDI4LGIuYi5jLmxlbmd0aCwxNSwxKTtqPSRDKGhSLGp3ZSwyNzMsYi5iLmMubGVuZ3RoLDAsMSk7aT0kQyhqUixXQWUsMTAsYi5iLmMubGVuZ3RoLDAsMSk7Zm9yKGw9YS5hLG09MCxuPWwubGVuZ3RoO208bjsrK20pe2s9bFttXTtwPTA7Zm9yKGc9bmV3IEFuYihrLmUpO2cuYTxnLmMuYy5sZW5ndGg7KXtlPVJEKHluYihnKSwxMCk7ZD1RNGIoZS5jKTsrK2hbZF07bz1LZmIoVUQobVFiKGIsKHlDYygpLFRCYykpKSk7aFtkXT4wJiYhIWlbZF0mJihvPWJGYyhhLmIsaVtkXSxlKSk7cD0kd25kLk1hdGgubWF4KHAsZS5jLmMuYitvKX1mb3IoZj1uZXcgQW5iKGsuZSk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDEwKTtlLm4uYj1wK2UuZC5kO2M9ZS5jO2MuYy5iPXArZS5kLmQrZS5vLmIrZS5kLmE7altXbWIoYy5iLmIsYywwKV09ZS5rO2lbV21iKGMuYi5iLGMsMCldPWV9fX1cbmZ1bmN0aW9uIE01YyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG07Zm9yKGQ9bmV3IGlzKE1yKHpHZChiKS5hLktjKCksbmV3IGlyKSk7Z3MoZCk7KXtjPVJEKGhzKGQpLDc0KTtpZighWkQoUUhkKCghYy5iJiYoYy5iPW5ldyBZaWUoRTQsYyw0LDcpKSxjLmIpLDApLDE5Mykpe2k9QUdkKFJEKFFIZCgoIWMuYyYmKGMuYz1uZXcgWWllKEU0LGMsNSw4KSksYy5jKSwwKSw4NCkpO2lmKCFuemQoYykpe2c9Yi5pK2IuZy8yO2g9Yi5qK2IuZi8yO2s9aS5pK2kuZy8yO2w9aS5qK2kuZi8yO209bmV3IHBqZDttLmE9ay1nO20uYj1sLWg7Zj1uZXcgcmpkKG0uYSxtLmIpO3dpZChmLGIuZyxiLmYpO20uYS09Zi5hO20uYi09Zi5iO2c9ay1tLmE7aD1sLW0uYjtqPW5ldyByamQobS5hLG0uYik7d2lkKGosaS5nLGkuZik7bS5hLT1qLmE7bS5iLT1qLmI7az1nK20uYTtsPWgrbS5iO2U9SUdkKGMsdHJ1ZSx0cnVlKTtPemQoZSxnKTtQemQoZSxoKTtIemQoZSxrKTtJemQoZSxsKTtNNWMoYSxpKX19fX1cbmZ1bmN0aW9uIG9jZChhKXtDZ2QoYSxuZXcgUGZkKCRmZChYZmQoWmZkKFlmZChuZXcgYWdkLGhHZSksJ0VMSyBTUE9yRSBDb21wYWN0aW9uJyksJ1Nocmlua1RyZWUgaXMgYSBjb21wYWN0aW9uIGFsZ29yaXRobSB0aGF0IG1haW50YWlucyB0aGUgdG9wb2xvZ3kgb2YgYSBsYXlvdXQuIFRoZSByZWxvY2F0aW9uIG9mIGRpYWdyYW0gZWxlbWVudHMgaXMgYmFzZWQgb24gY29udHJhY3RpbmcgYSBzcGFubmluZyB0cmVlLicpLG5ldyByY2QpKSk7QWdkKGEsaEdlLGlHZSxpR2QobWNkKSk7QWdkKGEsaEdlLGpHZSxpR2QoamNkKSk7QWdkKGEsaEdlLGtHZSxpR2QoaWNkKSk7QWdkKGEsaEdlLGxHZSxpR2QoZ2NkKSk7QWdkKGEsaEdlLG1HZSxpR2QoaGNkKSk7QWdkKGEsaEdlLEV6ZSxmY2QpO0FnZChhLGhHZSxfemUsOCk7QWdkKGEsaEdlLG5HZSxpR2QobGNkKSk7QWdkKGEsaEdlLG9HZSxpR2QoYmNkKSk7QWdkKGEsaEdlLHBHZSxpR2QoY2NkKSk7QWdkKGEsaEdlLExEZSwoR2ViKCksZmFsc2UpKX1cbmZ1bmN0aW9uIGhRYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsO2IuVWcoJ1NpbXBsZSBub2RlIHBsYWNlbWVudCcsMSk7bD1SRChtUWIoYSwoWXdjKCksUXdjKSksMzEyKTtoPTA7Zm9yKGY9bmV3IEFuYihhLmIpO2YuYTxmLmMuYy5sZW5ndGg7KXtkPVJEKHluYihmKSwzMCk7Zz1kLmM7Zy5iPTA7Yz1udWxsO2ZvcihqPW5ldyBBbmIoZC5hKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksMTApOyEhYyYmKGcuYis9X0VjKGksYyxsLmMpKTtnLmIrPWkuZC5kK2kuby5iK2kuZC5hO2M9aX1oPSR3bmQuTWF0aC5tYXgoaCxnLmIpfWZvcihlPW5ldyBBbmIoYS5iKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMzApO2c9ZC5jO2s9KGgtZy5iKS8yO2M9bnVsbDtmb3Ioaj1uZXcgQW5iKGQuYSk7ai5hPGouYy5jLmxlbmd0aDspe2k9UkQoeW5iKGopLDEwKTshIWMmJihrKz1fRWMoaSxjLGwuYykpO2srPWkuZC5kO2kubi5iPWs7ays9aS5vLmIraS5kLmE7Yz1pfX1iLlZnKCl9XG5mdW5jdGlvbiB0cWMoYSxiKXt2YXIgYyxkLGUsZjtucWMoYi5iLmopO0ZEYihHRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYi5kLDE2KSksbmV3IEVxYyksbmV3IEdxYyk7Zm9yKGY9bmV3IEFuYihiLmQpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMDUpO3N3aXRjaChlLmUuZyl7Y2FzZSAwOmM9UkQoVm1iKGUuaiwwKSwxMTMpLmQuajtTbWMoZSxSRChMdmIoS0RiKFJEKFFjKGUuayxjKSwxNSkuT2MoKSxscWMpKSwxMTMpKTtUbWMoZSxSRChMdmIoSkRiKFJEKFFjKGUuayxjKSwxNSkuT2MoKSxscWMpKSwxMTMpKTticmVhaztjYXNlIDE6ZD1mb2MoZSk7U21jKGUsUkQoTHZiKEtEYihSRChRYyhlLmssZFswXSksMTUpLk9jKCksbHFjKSksMTEzKSk7VG1jKGUsUkQoTHZiKEpEYihSRChRYyhlLmssZFsxXSksMTUpLk9jKCksbHFjKSksMTEzKSk7YnJlYWs7Y2FzZSAyOnZxYyhhLGUpO2JyZWFrO2Nhc2UgMzp1cWMoZSk7YnJlYWs7Y2FzZSA0OnNxYyhhLGUpO31xcWMoZSl9YS5hPW51bGx9XG5mdW5jdGlvbiB5UmMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs7ZD1hLmEubz09KEVRYygpLERRYyk/b3hlOnB4ZTtoPXpSYyhhLG5ldyB4UmMoYixjKSk7aWYoIWguYSYmaC5jKXtNdWIoYS5kLGgpO3JldHVybiBkfWVsc2UgaWYoaC5hKXtlPWguYS5jO2k9aC5hLmQ7aWYoYyl7aj1hLmEuYz09KHdRYygpLHZRYyk/aTplO2Y9YS5hLmM9PXZRYz9lOmk7Zz1hLmEuZ1tmLmkucF07az1LZmIoYS5hLnBbZy5wXSkrS2ZiKGEuYS5kW2YuaS5wXSkrZi5uLmIrZi5hLmItS2ZiKGEuYS5kW2ouaS5wXSktai5uLmItai5hLmJ9ZWxzZXtqPWEuYS5jPT0od1FjKCksdVFjKT9pOmU7Zj1hLmEuYz09dVFjP2U6aTtrPUtmYihhLmEucFthLmEuZ1tmLmkucF0ucF0pK0tmYihhLmEuZFtmLmkucF0pK2Yubi5iK2YuYS5iLUtmYihhLmEuZFtqLmkucF0pLWoubi5iLWouYS5ifWEuYS5uW2EuYS5nW2UuaS5wXS5wXT0oR2ViKCksdHJ1ZSk7YS5hLm5bYS5hLmdbaS5pLnBdLnBdPXRydWU7cmV0dXJuIGt9cmV0dXJuIGR9XG5mdW5jdGlvbiBTZmUoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGssbDtpZihkLmdjKCk9PTApe3JldHVybiBmYWxzZX1pPShua2UoKSxSRChiLDY5KS54aygpKTtnPWk/ZDpuZXcgWkhkKGQuZ2MoKSk7aWYocWtlKGEuZSxiKSl7aWYoYi5TaSgpKXtmb3Ioaz1kLktjKCk7ay5PYigpOyl7aj1rLlBiKCk7aWYoIWRnZShhLGIsaixaRChiLDEwMikmJihSRChiLDE5KS5CYiZ0eGUpIT0wKSl7Zj1va2UoYixqKTtnLkZjKGYpfX19ZWxzZSBpZighaSl7Zm9yKGs9ZC5LYygpO2suT2IoKTspe2o9ay5QYigpO2Y9b2tlKGIsaik7Zy5GYyhmKX19fWVsc2V7bD1wa2UoYS5lLkRoKCksYik7ZT1SRChhLmcsMTI0KTtmb3IoaD0wO2g8YS5pOysraCl7Zj1lW2hdO2lmKGwuYW0oZi5MaygpKSl7dGhyb3cgQWRiKG5ldyBhZ2IoZ0xlKSl9fWlmKGQuZ2MoKT4xKXt0aHJvdyBBZGIobmV3IGFnYihnTGUpKX1pZighaSl7Zj1va2UoYixkLktjKCkuUGIoKSk7Zy5GYyhmKX19cmV0dXJuIFhHZChhLGdnZShhLGIsYyksZyl9XG5mdW5jdGlvbiBGZ2UoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs7aWYocWtlKGEuZSxiKSl7aT0obmtlKCksUkQoYiw2OSkueGsoKT9uZXcgb2xlKGIsYSk6bmV3IEVrZShiLGEpKTtiZ2UoaS5jLGkuYik7QWtlKGksUkQoYywxNikpfWVsc2V7az1wa2UoYS5lLkRoKCksYik7ZD1SRChhLmcsMTI0KTtmb3IoZz0wO2c8YS5pOysrZyl7ZT1kW2ddO2Y9ZS5MaygpO2lmKGsuYW0oZikpe2lmKGY9PShMbGUoKSxKbGUpfHxmPT1HbGUpe2o9TWdlKGEsYixjKTtoPWc7aj92TGQoYSxnKTorK2c7d2hpbGUoZzxhLmkpe2U9ZFtnXTtmPWUuTGsoKTtmPT1KbGV8fGY9PUdsZT92TGQoYSxnKTorK2d9anx8UkQoZUhkKGEsaCxva2UoYixjKSksNzYpfWVsc2UgTWdlKGEsYixjKT92TGQoYSxnKTpSRChlSGQoYSxnLChua2UoKSxSRChiLDY5KS54aygpP1JEKGMsNzYpOm9rZShiLGMpKSksNzYpO3JldHVybn19TWdlKGEsYixjKXx8V0dkKGEsKG5rZSgpLFJEKGIsNjkpLnhrKCk/UkQoYyw3Nik6b2tlKGIsYykpKX19XG5mdW5jdGlvbiB6UGIoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs7aWYoIXBiKGMsYS5iKSl7YS5iPWM7Zj1uZXcgQ1BiO2c9UkQoekRiKEdEYihuZXcgU0RiKG51bGwsbmV3IFN3YihjLmYsMTYpKSxmKSxzQmIobmV3IF9CYixuZXcgYkNiLG5ldyB5Q2IsbmV3IEFDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsWyh4QmIoKSx3QmIpLHZCYl0pKSksMjEpO2EuZT10cnVlO2EuZj10cnVlO2EuYz10cnVlO2EuZD10cnVlO2U9Zy5IYygoSVBiKCksRlBiKSk7ZD1nLkhjKEdQYik7ZSYmIWQmJihhLmY9ZmFsc2UpOyFlJiZkJiYoYS5kPWZhbHNlKTtlPWcuSGMoRVBiKTtkPWcuSGMoSFBiKTtlJiYhZCYmKGEuYz1mYWxzZSk7IWUmJmQmJihhLmU9ZmFsc2UpfWs9UkQoYS5hLlZlKGIsYyksNDIpO2k9UkQoay5hLDE3KS5hO2o9UkQoay5iLDE3KS5hO2g9ZmFsc2U7aTwwP2EuY3x8KGg9dHJ1ZSk6YS5lfHwoaD10cnVlKTtqPDA/YS5kfHwoaD10cnVlKTphLmZ8fChoPXRydWUpO3JldHVybiBoP3pQYihhLGssYyk6a31cbmZ1bmN0aW9uIHlOYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHA7Zm9yKGw9MDtsPGIubGVuZ3RoO2wrKyl7Zm9yKGg9YS5LYygpO2guT2IoKTspe2Y9UkQoaC5QYigpLDIzMCk7Zi5oZyhsLGIpfWZvcihtPTA7bTxiW2xdLmxlbmd0aDttKyspe2ZvcihpPWEuS2MoKTtpLk9iKCk7KXtmPVJEKGkuUGIoKSwyMzApO2YuaWcobCxtLGIpfXA9YltsXVttXS5qO2ZvcihuPTA7bjxwLmMubGVuZ3RoO24rKyl7Zm9yKGo9YS5LYygpO2ouT2IoKTspe2Y9UkQoai5QYigpLDIzMCk7Zi5qZyhsLG0sbixiKX1vPSh0RmIobixwLmMubGVuZ3RoKSxSRChwLmNbbl0sMTIpKTtjPTA7Zm9yKGU9bmV3IGw0YihvLmIpO3huYihlLmEpfHx4bmIoZS5iKTspe2Q9UkQoeG5iKGUuYSk/eW5iKGUuYSk6eW5iKGUuYiksMTgpO2ZvcihrPWEuS2MoKTtrLk9iKCk7KXtmPVJEKGsuUGIoKSwyMzApO2YuZ2cobCxtLG4sYysrLGQsYil9fX19fWZvcihnPWEuS2MoKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSwyMzApO2YuZmcoKX19XG5mdW5jdGlvbiAkN2IoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTthLmI9S2ZiKFVEKG1RYihiLCh5Q2MoKSxVQmMpKSkpO2EuYz1LZmIoVUQobVFiKGIsWEJjKSkpO2EuZD1SRChtUWIoYixEQWMpLDM1MCk7YS5hPVJEKG1RYihiLFh6YyksMjgyKTtZN2IoYik7aD1SRCh6RGIoQ0RiKENEYihFRGIoRURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGIuYiwxNikpLG5ldyBjOGIpLG5ldyBlOGIpLG5ldyBnOGIpLG5ldyBpOGIpLHRCYihuZXcgWkJiLG5ldyBYQmIsbmV3IHdDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsWyh4QmIoKSx2QmIpXSkpKSwxNSk7Zm9yKGU9aC5LYygpO2UuT2IoKTspe2M9UkQoZS5QYigpLDE4KTtnPVJEKG1RYihjLChZd2MoKSxUd2MpKSwxNSk7Zy5KYyhuZXcgazhiKGEpKTtwUWIoYyxUd2MsbnVsbCl9Zm9yKGQ9aC5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDE4KTtpPVJEKG1RYihjLChZd2MoKSxVd2MpKSwxOCk7Zj1SRChtUWIoYyxSd2MpLDE1KTtTN2IoYSxmLGkpO3BRYihjLFJ3YyxudWxsKX19XG5mdW5jdGlvbiByMmQoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtpZihhLmEpe2g9YS5hLnhlKCk7aT1udWxsO2lmKGghPW51bGwpe2IuYSs9JycraH1lbHNle2c9YS5hLm1rKCk7aWYoZyE9bnVsbCl7Zj1xaGIoZyxGaGIoOTEpKTtpZihmIT0tMSl7aT0oQkZiKGYsZy5sZW5ndGgrMSksZy5zdWJzdHIoZikpO2IuYSs9JycremhiKGc9PW51bGw/dnZlOih1RmIoZyksZyksMCxmKX1lbHNle2IuYSs9JycrZ319fWlmKCEhYS5kJiZhLmQuaSE9MCl7ZT10cnVlO2IuYSs9JzwnO2ZvcihkPW5ldyBkTWQoYS5kKTtkLmUhPWQuaS5nYygpOyl7Yz1SRChiTWQoZCksODkpO2U/KGU9ZmFsc2UpOihiLmErPXB2ZSxiKTtyMmQoYyxiKX1iLmErPSc+J31pIT1udWxsJiYoYi5hKz0nJytpLGIpfWVsc2UgaWYoYS5lKXtoPWEuZS56YjtoIT1udWxsJiYoYi5hKz0nJytoLGIpfWVsc2V7Yi5hKz0nPyc7aWYoYS5iKXtiLmErPScgc3VwZXIgJztyMmQoYS5iLGIpfWVsc2V7aWYoYS5mKXtiLmErPScgZXh0ZW5kcyAnO3IyZChhLmYsYil9fX19XG5mdW5jdGlvbiBVYWUoYSl7YS5iPW51bGw7YS5hPW51bGw7YS5vPW51bGw7YS5xPW51bGw7YS52PW51bGw7YS53PW51bGw7YS5CPW51bGw7YS5wPW51bGw7YS5RPW51bGw7YS5SPW51bGw7YS5TPW51bGw7YS5UPW51bGw7YS5VPW51bGw7YS5WPW51bGw7YS5XPW51bGw7YS5iYj1udWxsO2EuZWI9bnVsbDthLmFiPW51bGw7YS5IPW51bGw7YS5kYj1udWxsO2EuYz1udWxsO2EuZD1udWxsO2EuZj1udWxsO2Eubj1udWxsO2Eucj1udWxsO2Eucz1udWxsO2EudT1udWxsO2EuRz1udWxsO2EuSj1udWxsO2EuZT1udWxsO2Euaj1udWxsO2EuaT1udWxsO2EuZz1udWxsO2Euaz1udWxsO2EudD1udWxsO2EuRj1udWxsO2EuST1udWxsO2EuTD1udWxsO2EuTT1udWxsO2EuTz1udWxsO2EuUD1udWxsO2EuJD1udWxsO2EuTj1udWxsO2EuWj1udWxsO2EuY2I9bnVsbDthLks9bnVsbDthLkQ9bnVsbDthLkE9bnVsbDthLkM9bnVsbDthLl89bnVsbDthLmZiPW51bGw7YS5YPW51bGw7YS5ZPW51bGw7YS5nYj1mYWxzZTthLmhiPWZhbHNlfVxuZnVuY3Rpb24geWliKGEpe3ZhciBiLGMsZCxlO2Q9QWpiKCghYS5jJiYoYS5jPW9qYihIZGIoYS5mKSkpLGEuYyksMCk7aWYoYS5lPT0wfHxhLmE9PTAmJmEuZiE9LTEmJmEuZTwwKXtyZXR1cm4gZH1iPXhpYihhKTwwPzE6MDtjPWEuZTtlPShkLmxlbmd0aCsxKyR3bmQuTWF0aC5hYnMoZUUoYS5lKSksbmV3IGNpYik7Yj09MSYmKGUuYSs9Jy0nLGUpO2lmKGEuZT4wKXtjLT1kLmxlbmd0aC1iO2lmKGM+PTApe2UuYSs9JzAuJztmb3IoO2M+bWliLmxlbmd0aDtjLT1taWIubGVuZ3RoKXskaGIoZSxtaWIpfV9oYihlLG1pYixlRShjKSk7WmhiKGUsKEJGYihiLGQubGVuZ3RoKzEpLGQuc3Vic3RyKGIpKSl9ZWxzZXtjPWItYztaaGIoZSx6aGIoZCxiLGVFKGMpKSk7ZS5hKz0nLic7WmhiKGUseWhiKGQsZUUoYykpKX19ZWxzZXtaaGIoZSwoQkZiKGIsZC5sZW5ndGgrMSksZC5zdWJzdHIoYikpKTtmb3IoO2M8LW1pYi5sZW5ndGg7Yys9bWliLmxlbmd0aCl7JGhiKGUsbWliKX1faGIoZSxtaWIsZUUoLWMpKX1yZXR1cm4gZS5hfVxuZnVuY3Rpb24gQk9jKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksajtpZihhLmshPShyM2IoKSxwM2IpKXtyZXR1cm4gZmFsc2V9aWYoYS5qLmMubGVuZ3RoPD0xKXtyZXR1cm4gZmFsc2V9Zj1SRChtUWIoYSwoeUNjKCksQkJjKSksMTAxKTtpZihmPT0oQm9kKCksd29kKSl7cmV0dXJuIGZhbHNlfWU9KHdEYygpLCghYS5xPyh5b2IoKSx5b2IoKSx3b2IpOmEucSkuX2IoaUJjKT8oZD1SRChtUWIoYSxpQmMpLDIwMykpOihkPVJEKG1RYihZMmIoYSksakJjKSwyMDMpKSxkKTtpZihlPT11RGMpe3JldHVybiBmYWxzZX1pZighKGU9PXREY3x8ZT09c0RjKSl7Zz1LZmIoVUQoaEZjKGEsZkNjKSkpO2I9UkQobVFiKGEsZUNjKSwxNDApOyFiJiYoYj1uZXcgUjJiKGcsZyxnLGcpKTtqPWIzYihhLChxcGQoKSxwcGQpKTtpPWIuZCtiLmErKGouZ2MoKS0xKSpnO2lmKGk+YS5vLmIpe3JldHVybiBmYWxzZX1jPWIzYihhLFhvZCk7aD1iLmQrYi5hKyhjLmdjKCktMSkqZztpZihoPmEuby5iKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfVxuZnVuY3Rpb24gVlJjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxO2IuVWcoJ09ydGhvZ29uYWwgZWRnZSByb3V0aW5nJywxKTtqPUtmYihVRChtUWIoYSwoeUNjKCksY0NjKSkpKTtjPUtmYihVRChtUWIoYSxVQmMpKSk7ZD1LZmIoVUQobVFiKGEsWEJjKSkpO209bmV3IFRUYygwLGMpO3E9MDtnPW5ldyBKa2IoYS5iLDApO2g9bnVsbDtrPW51bGw7aT1udWxsO2w9bnVsbDtkb3trPWcuYjxnLmQuZ2MoKT8oc0ZiKGcuYjxnLmQuZ2MoKSksUkQoZy5kLlhiKGcuYz1nLmIrKyksMzApKTpudWxsO2w9IWs/bnVsbDprLmE7aWYoaCl7cDJiKGgscSk7cSs9aC5jLmF9cD0haD9xOnErZDtvPVNUYyhtLGEsaSxsLHApO2U9IWh8fGFyKGksKGRTYygpLGJTYykpO2Y9IWt8fGFyKGwsKGRTYygpLGJTYykpO2lmKG8+MCl7bj0oby0xKSpjOyEhaCYmKG4rPWQpOyEhayYmKG4rPWQpO248aiYmIWUmJiFmJiYobj1qKTtxKz1ufWVsc2UgIWUmJiFmJiYocSs9aik7aD1rO2k9bH13aGlsZShrKTthLmYuYT1xO2IuVmcoKX1cbmZ1bmN0aW9uIHRmZShhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsO2s9bnVsbDshIWEuZCYmKGs9UkQoWGpiKGEuZCxiKSwxNDIpKTtpZighayl7Zj1hLmEudmkoKTtsPWYuaTtpZighYS5kfHxia2IoYS5kKSE9bCl7aT1uZXcgVHNiOyEhYS5kJiZMZChpLGEuZCk7aj1pLmYuYytpLmkuYztmb3IoaD1qO2g8bDsrK2gpe2Q9UkQoUUhkKGYsaCksMTQyKTtlPU9lZShhLmUsZCkueGUoKTtjPVJEKGU9PW51bGw/cnRiKGkuZixudWxsLGQpOkx0YihpLmksZSxkKSwxNDIpOyEhYyYmYyE9ZCYmKGU9PW51bGw/cnRiKGkuZixudWxsLGMpOkx0YihpLmksZSxjKSl9aWYoaS5mLmMraS5pLmMhPWwpe2ZvcihnPTA7ZzxqOysrZyl7ZD1SRChRSGQoZixnKSwxNDIpO2U9T2VlKGEuZSxkKS54ZSgpO2M9UkQoZT09bnVsbD9ydGIoaS5mLG51bGwsZCk6THRiKGkuaSxlLGQpLDE0Mik7ISFjJiZjIT1kJiYoZT09bnVsbD9ydGIoaS5mLG51bGwsYyk6THRiKGkuaSxlLGMpKX19YS5kPWl9az1SRChYamIoYS5kLGIpLDE0Mil9cmV0dXJuIGt9XG5mdW5jdGlvbiB3MGIoYSxiLGMsZCxlLGYsZyl7dmFyIGgsaSxqLGssbCxtLG47bD1IZWIoVEQobVFiKGIsKHlDYygpLGJCYykpKSk7bT1udWxsO2Y9PShCRWMoKSx5RWMpJiZkLmMuaT09Yz8obT1kLmMpOmY9PXpFYyYmZC5kLmk9PWMmJihtPWQuZCk7aj1nO2lmKCFqfHwhbHx8ISFtKXtrPShxcGQoKSxvcGQpO20/KGs9bS5qKTpEb2QoUkQobVFiKGMsQkJjKSwxMDEpKSYmKGs9Zj09eUVjP3BwZDpYb2QpO2k9dDBiKGEsYixjLGYsayxkKTtoPXMwYigoWTJiKGMpLGQpKTtpZihmPT15RWMpe1kwYihoLFJEKFZtYihpLmosMCksMTIpKTtaMGIoaCxlKX1lbHNle1kwYihoLGUpO1owYihoLFJEKFZtYihpLmosMCksMTIpKX1qPW5ldyBHMGIoZCxoLGksUkQobVFiKGksKFl3YygpLEF3YykpLDEyKSxmLCFtKX1lbHNle1JtYihqLmUsZCk7bj0kd25kLk1hdGgubWF4KEtmYihVRChtUWIoai5kLEZBYykpKSxLZmIoVUQobVFiKGQsRkFjKSkpKTtwUWIoai5kLEZBYyxuKX1SYyhhLmEsZCxuZXcgSjBiKGouZCxiLGYpKTtyZXR1cm4gan1cbmZ1bmN0aW9uIGdTZCgpe2dTZD1nZWI7dmFyIGE7ZlNkPW5ldyBNU2Q7X1JkPSRDKHFKLE52ZSwyLDAsNiwxKTtVUmQ9UmRiKHhTZCgzMyw1OCkseFNkKDEsMjYpKTtWUmQ9UmRiKHhTZCg5NywxMjIpLHhTZCg2NSw5MCkpO1dSZD14U2QoNDgsNTcpO1NSZD1SZGIoVVJkLDApO1RSZD1SZGIoVlJkLFdSZCk7WFJkPVJkYihSZGIoMCx4U2QoMSw2KSkseFNkKDMzLDM4KSk7WVJkPVJkYihSZGIoV1JkLHhTZCg2NSw3MCkpLHhTZCg5NywxMDIpKTtjU2Q9UmRiKFNSZCx2U2QoXCItXy4hfionKClcIikpO2RTZD1SZGIoVFJkLHlTZChcIi1fLiF+KicoKVwiKSk7dlNkKE1KZSk7eVNkKE1KZSk7UmRiKGNTZCx2U2QoJzs6QCY9KyQsJykpO1JkYihkU2QseVNkKCc7OkAmPSskLCcpKTtaUmQ9dlNkKCc6Lz8jJyk7JFJkPXlTZCgnOi8/IycpO2FTZD12U2QoJy8/IycpO2JTZD15U2QoJy8/IycpO2E9bmV3IF9zYjthLmEuemMoJ2phcicsYSk7YS5hLnpjKCd6aXAnLGEpO2EuYS56YygnYXJjaGl2ZScsYSk7ZVNkPSh5b2IoKSxuZXcgTHFiKGEpKX1cbmZ1bmN0aW9uIHQwYihhLGIsYyxkLGUsZil7dmFyIGcsaCxpLGosayxsO2c9bnVsbDtqPWQ9PShCRWMoKSx5RWMpP2YuYzpmLmQ7aT1pMmIoYik7aWYoai5pPT1jKXtnPVJEKFdqYihhLmIsaiksMTApO2lmKCFnKXtnPWYyYihqLFJEKG1RYihjLCh5Q2MoKSxCQmMpKSwxMDEpLGUscDBiKGopLG51bGwsai5uLGoubyxpLGIpO3BRYihnLChZd2MoKSxBd2MpLGopO1pqYihhLmIsaixnKX19ZWxzZXtnPWYyYigoaz1uZXcgcVFiLGw9S2ZiKFVEKG1RYihiLCh5Q2MoKSxUQmMpKSkpLzIsb1FiKGssQUJjLGwpLGspLFJEKG1RYihjLEJCYyksMTAxKSxlLGQ9PXlFYz8tMToxLG51bGwsbmV3IHBqZCxuZXcgcmpkKDAsMCksaSxiKTtoPXUwYihnLGMsZCk7cFFiKGcsKFl3YygpLEF3YyksaCk7WmpiKGEuYixoLGcpfVJEKG1RYihiLChZd2MoKSxrd2MpKSwyMSkuRmMoKG92YygpLGh2YykpO0RvZChSRChtUWIoYiwoeUNjKCksQkJjKSksMTAxKSk/cFFiKGIsQkJjLChCb2QoKSx5b2QpKTpwUWIoYixCQmMsKEJvZCgpLHpvZCkpO3JldHVybiBnfVxuZnVuY3Rpb24gWWVjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG87aD0wO289MDtpPUZuYihhLmcsYS5nLmxlbmd0aCk7Zj1hLmU7Zz1hLmo7ZD1hLmI7ZT1hLmM7ZG97bj0wO2ZvcihrPW5ldyBBbmIoYS5xKTtrLmE8ay5jLmMubGVuZ3RoOyl7aj1SRCh5bmIoayksMTApO209V2VjKGEsaik7Yz10cnVlOyhhLnI9PShhRWMoKSxWRGMpfHxhLnI9PVlEYykmJihjPUhlYihURChtLmIpKSk7aWYoUkQobS5hLDE3KS5hPDAmJmMpeysrbjtpPUZuYihhLmcsYS5nLmxlbmd0aCk7YS5lPWEuZStSRChtLmEsMTcpLmE7bys9Zi1hLmU7Zj1hLmUrUkQobS5hLDE3KS5hO2c9YS5qO2Q9YnYoYS5iKTtlPWJ2KGEuYyl9ZWxzZXthLmc9Rm5iKGksaS5sZW5ndGgpO2EuZT1mO2EuYj0oUWIoZCksZD9uZXcgZG5iKGQpOmN2KG5ldyBBbmIoZCkpKTthLmM9KFFiKGUpLGU/bmV3IGRuYihlKTpjdihuZXcgQW5iKGUpKSk7YS5qPWd9fSsraDtsPW4hPTAmJkhlYihURChiLktiKG5ldyBQdGQoc2diKG8pLHNnYihoKSkpKSl9d2hpbGUobCl9XG5mdW5jdGlvbiBlOGMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEM7Zz1hLmY7bT1iLmY7aD1nPT0oc2FkKCksbmFkKXx8Zz09cGFkO249bT09bmFkfHxtPT1wYWQ7aT1nPT1vYWR8fGc9PXFhZDtvPW09PW9hZHx8bT09cWFkO2o9Zz09b2FkfHxnPT1uYWQ7cD1tPT1vYWR8fG09PW5hZDtpZihoJiZuKXtyZXR1cm4gYS5mPT1wYWQ/YTpifWVsc2UgaWYoaSYmbyl7cmV0dXJuIGEuZj09cWFkP2E6Yn1lbHNlIGlmKGomJnApe2lmKGc9PW9hZCl7bD1hO2s9Yn1lbHNle2w9YjtrPWF9Zj0ocT1jLmorYy5mLHI9bC5lK2QuZixzPSR3bmQuTWF0aC5tYXgocSxyKSx0PXMtJHduZC5NYXRoLm1pbihjLmosbC5lKSx1PWwuZCtkLmctYy5pLHUqdCk7ZT0odj1jLmkrYy5nLHc9ay5kK2QuZyxBPSR3bmQuTWF0aC5tYXgodix3KSxCPUEtJHduZC5NYXRoLm1pbihjLmksay5kKSxDPWsuZStkLmYtYy5qLEIqQyk7cmV0dXJuIGY8PWU/YS5mPT1vYWQ/YTpiOmEuZj09bmFkP2E6Yn1yZXR1cm4gYX1cbmZ1bmN0aW9uIHQwYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsO3BRYihiLChxJGMoKSxnJGMpLDApO2k9UkQobVFiKGIsYyRjKSw0MCk7aWYoYi5kLmI9PTApe2lmKGkpe2s9S2ZiKFVEKG1RYihpLGokYykpKSthLmIrdTBjKGEsaSxiKTtwUWIoYixqJGMsayl9ZWxzZXtwUWIoYixqJGMsMCl9fWVsc2V7Zm9yKGQ9KGY9U3ViKChuZXcgZFhjKGIpKS5hLmQsMCksbmV3IGdYYyhmKSk7ZHZiKGQuYSk7KXtjPVJEKGV2YihkLmEpLDY1KS5jO3QwYyhhLGMpfWg9UkQoSHIoKGc9U3ViKChuZXcgZFhjKGIpKS5hLmQsMCksbmV3IGdYYyhnKSkpLDQwKTtsPVJEKEdyKChlPVN1YigobmV3IGRYYyhiKSkuYS5kLDApLG5ldyBnWGMoZSkpKSw0MCk7aj0oS2ZiKFVEKG1RYihsLGokYykpKStLZmIoVUQobVFiKGgsaiRjKSkpKS8yO2lmKGkpe2s9S2ZiKFVEKG1RYihpLGokYykpKSthLmIrdTBjKGEsaSxiKTtwUWIoYixqJGMsayk7cFFiKGIsZyRjLEtmYihVRChtUWIoYixqJGMpKSktaik7czBjKGEsYil9ZWxzZXtwUWIoYixqJGMsail9fX1cbmZ1bmN0aW9uIG5KYihhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsO2s9YS5lLmEuYy5sZW5ndGg7Zm9yKGc9bmV3IEFuYihhLmUuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEyNSk7Zi5qPWZhbHNlfWEuaT0kQyhrRSxQd2UsMjgsaywxNSwxKTthLmc9JEMoa0UsUHdlLDI4LGssMTUsMSk7YS5uPW5ldyBibmI7ZT0wO2w9bmV3IGJuYjtmb3IoaT1uZXcgQW5iKGEuZS5hKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksMTI1KTtoLmQ9ZSsrO2guYi5hLmMubGVuZ3RoPT0wJiZSbWIoYS5uLGgpO1RtYihsLGguZyl9Yj0wO2ZvcihkPW5ldyBBbmIobCk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDIxOCk7Yy5jPWIrKztjLmY9ZmFsc2V9aj1sLmMubGVuZ3RoO2lmKGEuYj09bnVsbHx8YS5iLmxlbmd0aDxqKXthLmI9JEMoaUUsdnhlLDI4LGosMTUsMSk7YS5jPSRDKHhkYixIeWUsMjgsaiwxNiwxKX1lbHNle05uYihhLmMpfWEuZD1sO2EucD1uZXcgSnViKFN2KGEuZC5jLmxlbmd0aCkpO2Euaj0xfVxuZnVuY3Rpb24gdVdiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrO2lmKGIuZS5jLmxlbmd0aDw9MSl7cmV0dXJufWEuZj1iO2EuZD1SRChtUWIoYS5mLChkV2IoKSxVVmIpKSwzOTEpO2EuZz1SRChtUWIoYS5mLFlWYiksMTcpLmE7YS5lPUtmYihVRChtUWIoYS5mLFZWYikpKTthLmM9S2ZiKFVEKG1RYihhLmYsVFZiKSkpO0F0KGEuYik7Zm9yKGU9bmV3IEFuYihhLmYuYyk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDI5MCk7enQoYS5iLGQuYyxkLG51bGwpO3p0KGEuYixkLmQsZCxudWxsKX1oPWEuZi5lLmMubGVuZ3RoO2EuYT1ZQyhpRSxbTnZlLHZ4ZV0sWzEwOSwyOF0sMTUsW2gsaF0sMik7Zm9yKGo9bmV3IEFuYihhLmYuZSk7ai5hPGouYy5jLmxlbmd0aDspe2k9UkQoeW5iKGopLDE1Myk7cVdiKGEsaSxhLmFbaS5hXSl9YS5pPVlDKGlFLFtOdmUsdnhlXSxbMTA5LDI4XSwxNSxbaCxoXSwyKTtmb3IoZj0wO2Y8aDsrK2Ype2ZvcihnPTA7ZzxoOysrZyl7Yz1hLmFbZl1bZ107az0xLyhjKmMpO2EuaVtmXVtnXT1rfX19XG5mdW5jdGlvbiBPV2IoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbztoPWIuYWgoKTtofHxiLlVnKFB6ZSwxKTtjPVJEKG1RYihhLChZd2MoKSxLd2MpKSwxNSk7Zz0xL2MuZ2MoKTtpZihiLl9nKCkpe2IuYmgoJ0VMSyBMYXllcmVkIHVzZXMgdGhlIGZvbGxvd2luZyAnK2MuZ2MoKSsnIG1vZHVsZXM6Jyk7bj0wO2ZvcihtPWMuS2MoKTttLk9iKCk7KXtrPVJEKG0uUGIoKSw0Nyk7ZD0objwxMD8nMCc6JycpK24rKztiLmJoKCcgICBTbG90ICcrZCsnOiAnK25mYihyYihrKSkpfX1vPTA7Zm9yKGw9Yy5LYygpO2wuT2IoKTspe2s9UkQobC5QYigpLDQ3KTtpZihiLiRnKCkpe3JldHVybn1rLktmKGEsYi5laChnKSk7KytvfWZvcihmPW5ldyBBbmIoYS5iKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMzApO1RtYihhLmEsZS5hKTtlLmEuYy5sZW5ndGg9MH1mb3Ioaj1uZXcgQW5iKGEuYSk7ai5hPGouYy5jLmxlbmd0aDspe2k9UkQoeW5iKGopLDEwKTtnM2IoaSxudWxsKX1hLmIuYy5sZW5ndGg9MDtofHxiLlZnKCl9XG5mdW5jdGlvbiB5OWIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG47aj1uZXcgYm5iO2lmKCFuUWIoYSwoWXdjKCksZndjKSkpe3JldHVybiBqfWZvcihkPVJEKG1RYihhLGZ3YyksMTUpLktjKCk7ZC5PYigpOyl7Yj1SRChkLlBiKCksMTApO3g5YihiLGEpO1pFYihqLmMsYil9Zm9yKGY9bmV3IEFuYihhLmIpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwzMCk7Zm9yKGg9bmV3IEFuYihlLmEpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMCk7aWYoZy5rIT0ocjNiKCksbTNiKSl7Y29udGludWV9aT1SRChtUWIoZyxnd2MpLDEwKTshIWkmJihrPW5ldyBSM2IsUDNiKGssZyksbD1SRChtUWIoZyxod2MpLDY0KSxRM2IoayxsKSxtPVJEKFZtYihpLmosMCksMTIpLG49bmV3IGExYixZMGIobixrKSxaMGIobixtKSx1bmRlZmluZWQpfX1mb3IoYz1uZXcgQW5iKGopO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwxMCk7ZzNiKGIsUkQoVm1iKGEuYixhLmIuYy5sZW5ndGgtMSksMzApKX1yZXR1cm4gan1cbmZ1bmN0aW9uIFU4YyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsO2w9bmV3IGJuYjtrPW5ldyBIYWQoMCxjKTtmPTA7Q2FkKGssbmV3IFY5YygwLDAsayxjKSk7ZT0wO2ZvcihqPW5ldyBkTWQoYSk7ai5lIT1qLmkuZ2MoKTspe2k9UkQoYk1kKGopLDI3KTtkPVJEKFZtYihrLmEsay5hLmMubGVuZ3RoLTEpLDE3Mik7aD1lK2kuZysoUkQoVm1iKGsuYSwwKSwxNzIpLmIuYy5sZW5ndGg9PTA/MDpjKTtpZihoPmJ8fEhlYihURChHeGQoaSwoWDdjKCksRDdjKSkpKSl7ZT0wO2YrPWsuYitjO1pFYihsLmMsayk7az1uZXcgSGFkKGYsYyk7ZD1uZXcgVjljKDAsay5mLGssYyk7Q2FkKGssZCk7ZT0wfWlmKGQuYi5jLmxlbmd0aD09MHx8IUhlYihURChHeGQodkNkKGkpLChYN2MoKSxMN2MpKSkpJiYoaS5mPj1kLm8mJmkuZjw9ZC5mfHxkLmEqMC41PD1pLmYmJmQuYSoxLjU+PWkuZikpe0s5YyhkLGkpfWVsc2V7Zz1uZXcgVjljKGQucytkLnIrYyxrLmYsayxjKTtDYWQoayxnKTtLOWMoZyxpKX1lPWkuaStpLmd9WkViKGwuYyxrKTtyZXR1cm4gbH1cbmZ1bmN0aW9uIHN0ZShhKXt2YXIgYixjLGQsZTtpZihhLmI9PW51bGx8fGEuYi5sZW5ndGg8PTIpcmV0dXJuO2lmKGEuYSlyZXR1cm47Yj0wO2U9MDt3aGlsZShlPGEuYi5sZW5ndGgpe2lmKGIhPWUpe2EuYltiXT1hLmJbZSsrXTthLmJbYisxXT1hLmJbZSsrXX1lbHNlIGUrPTI7Yz1hLmJbYisxXTt3aGlsZShlPGEuYi5sZW5ndGgpe2lmKGMrMTxhLmJbZV0pYnJlYWs7aWYoYysxPT1hLmJbZV0pe2EuYltiKzFdPWEuYltlKzFdO2M9YS5iW2IrMV07ZSs9Mn1lbHNlIGlmKGM+PWEuYltlKzFdKXtlKz0yfWVsc2UgaWYoYzxhLmJbZSsxXSl7YS5iW2IrMV09YS5iW2UrMV07Yz1hLmJbYisxXTtlKz0yfWVsc2V7dGhyb3cgQWRiKG5ldyB5eignVG9rZW4jY29tcGFjdFJhbmdlcygpOiBJbnRlcm5lbCBFcnJvcjogWycrYS5iW2JdKycsJythLmJbYisxXSsnXSBbJythLmJbZV0rJywnK2EuYltlKzFdKyddJykpfX1iKz0yfWlmKGIhPWEuYi5sZW5ndGgpe2Q9JEMoa0UsUHdlLDI4LGIsMTUsMSk7aGliKGEuYiwwLGQsMCxiKTthLmI9ZH1hLmE9dHJ1ZX1cbmZ1bmN0aW9uIHgwYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2ZvcihnPUVjKGEuYSkuS2MoKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSwxOCk7aWYoZi5iLmMubGVuZ3RoPjApe2Q9bmV3IGRuYihSRChRYyhhLmEsZiksMjEpKTt5b2IoKTtfbWIoZCxuZXcgTTBiKGIpKTtlPW5ldyBKa2IoZi5iLDApO3doaWxlKGUuYjxlLmQuZ2MoKSl7Yz0oc0ZiKGUuYjxlLmQuZ2MoKSksUkQoZS5kLlhiKGUuYz1lLmIrKyksNzIpKTtoPS0xO3N3aXRjaChSRChtUWIoYywoeUNjKCksd0FjKSksMjc4KS5nKXtjYXNlIDE6aD1kLmMubGVuZ3RoLTE7YnJlYWs7Y2FzZSAwOmg9djBiKGQpO2JyZWFrO2Nhc2UgMjpoPTA7fWlmKGghPS0xKXtpPSh0RmIoaCxkLmMubGVuZ3RoKSxSRChkLmNbaF0sMjQ5KSk7Um1iKGkuYi5iLGMpO1JEKG1RYihZMmIoaS5iLmMuaSksKFl3YygpLGt3YykpLDIxKS5GYygob3ZjKCksZ3ZjKSk7UkQobVFiKFkyYihpLmIuYy5pKSxrd2MpLDIxKS5GYyhldmMpO0NrYihlKTtwUWIoYyxEd2MsZil9fX1ZMGIoZixudWxsKTtaMGIoZixudWxsKX19XG5mdW5jdGlvbiB3T2IoYSxiKXt2YXIgYyxkLGUsZjtjPW5ldyBCT2I7ZD1SRCh6RGIoR0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuZiwxNikpLGMpLHNCYihuZXcgX0JiLG5ldyBiQ2IsbmV3IHlDYixuZXcgQUNiLGNEKFdDKFFMLDEpLGp3ZSwxMDgsMCxbKHhCYigpLHdCYiksdkJiXSkpKSwyMSk7ZT1kLmdjKCk7ZT1lPT0yPzE6MDtlPT0xJiZHZGIoTWRiKFJEKHpEYihDRGIoZC5MYygpLG5ldyBET2IpLFBCYihIZ2IoMCksbmV3IHVDYikpLDE2OCkuYSwyKSwwKSYmKGU9MCk7ZD1SRCh6RGIoR0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGIuZiwxNikpLGMpLHNCYihuZXcgX0JiLG5ldyBiQ2IsbmV3IHlDYixuZXcgQUNiLGNEKFdDKFFMLDEpLGp3ZSwxMDgsMCxbd0JiLHZCYl0pKSksMjEpO2Y9ZC5nYygpO2Y9Zj09Mj8xOjA7Zj09MSYmR2RiKE1kYihSRCh6RGIoQ0RiKGQuTGMoKSxuZXcgRk9iKSxQQmIoSGdiKDApLG5ldyB1Q2IpKSwxNjgpLmEsMiksMCkmJihmPTApO2lmKGU8Zil7cmV0dXJuIC0xfWlmKGU9PWYpe3JldHVybiAwfXJldHVybiAxfVxuZnVuY3Rpb24gVzRiKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbTtiPU1DZChhKTtmPUhlYihURChHeGQoYiwoeUNjKCksTkFjKSkpKTtrPTA7ZT0wO2ZvcihqPW5ldyBkTWQoKCFhLmUmJihhLmU9bmV3IFlpZShHNCxhLDcsNCkpLGEuZSkpO2ouZSE9ai5pLmdjKCk7KXtpPVJEKGJNZChqKSw3NCk7aD1vemQoaSk7Zz1oJiZmJiZIZWIoVEQoR3hkKGksT0FjKSkpO209QUdkKFJEKFFIZCgoIWkuYyYmKGkuYz1uZXcgWWllKEU0LGksNSw4KSksaS5jKSwwKSw4NCkpO2gmJmc/KytlOmgmJiFnPysrazp2Q2QobSk9PWJ8fG09PWI/KytlOisra31mb3IoZD1uZXcgZE1kKCghYS5kJiYoYS5kPW5ldyBZaWUoRzQsYSw4LDUpKSxhLmQpKTtkLmUhPWQuaS5nYygpOyl7Yz1SRChiTWQoZCksNzQpO2g9b3pkKGMpO2c9aCYmZiYmSGViKFREKEd4ZChjLE9BYykpKTtsPUFHZChSRChRSGQoKCFjLmImJihjLmI9bmV3IFlpZShFNCxjLDQsNykpLGMuYiksMCksODQpKTtoJiZnPysrazpoJiYhZz8rK2U6dkNkKGwpPT1ifHxsPT1iPysrazorK2V9cmV0dXJuIGstZX1cbmZ1bmN0aW9uIEplYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbjtiLlVnKCdFZGdlIHNwbGl0dGluZycsMSk7aWYoYS5iLmMubGVuZ3RoPD0yKXtiLlZnKCk7cmV0dXJufWY9bmV3IEprYihhLmIsMCk7Zz0oc0ZiKGYuYjxmLmQuZ2MoKSksUkQoZi5kLlhiKGYuYz1mLmIrKyksMzApKTt3aGlsZShmLmI8Zi5kLmdjKCkpe2U9ZztnPShzRmIoZi5iPGYuZC5nYygpKSxSRChmLmQuWGIoZi5jPWYuYisrKSwzMCkpO2ZvcihpPW5ldyBBbmIoZS5hKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksMTApO2ZvcihrPW5ldyBBbmIoaC5qKTtrLmE8ay5jLmMubGVuZ3RoOyl7aj1SRCh5bmIoayksMTIpO2ZvcihkPW5ldyBBbmIoai5nKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMTgpO209Yy5kO2w9bS5pLmM7bCE9ZSYmbCE9ZyYmT2VjKGMsKG49bmV3IGozYihhKSxoM2IobiwocjNiKCksbzNiKSkscFFiKG4sKFl3YygpLEF3YyksYykscFFiKG4sKHlDYygpLEJCYyksKEJvZCgpLHdvZCkpLGczYihuLGcpLG4pKX19fX1iLlZnKCl9XG5mdW5jdGlvbiBNTGMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtO2s9bmV3IGJuYjttPW5ldyBfc2I7Zz1iLmI7Zm9yKGU9MDtlPGcuYy5sZW5ndGg7ZSsrKXtqPSh0RmIoZSxnLmMubGVuZ3RoKSxSRChnLmNbZV0sMzApKS5hO2suYy5sZW5ndGg9MDtmb3IoZj0wO2Y8ai5jLmxlbmd0aDtmKyspe2g9YS5hW2VdW2ZdO2gucD1mO2guaz09KHIzYigpLHEzYikmJihaRWIoay5jLGgpLHRydWUpOyRtYihSRChWbWIoYi5iLGUpLDMwKS5hLGYsaCk7aC5qLmMubGVuZ3RoPTA7VG1iKGguaixSRChSRChWbWIoYS5iLGUpLDE1KS5YYihmKSwxNikpO0NvZChSRChtUWIoaCwoeUNjKCksQkJjKSksMTAxKSl8fHBRYihoLEJCYywoQm9kKCksdm9kKSl9Zm9yKGQ9bmV3IEFuYihrKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMTApO2w9S0xjKGMpO20uYS56YyhsLG0pO20uYS56YyhjLG0pfX1mb3IoaT1tLmEuZWMoKS5LYygpO2kuT2IoKTspe2g9UkQoaS5QYigpLDEwKTt5b2IoKTtfbWIoaC5qLChzZ2MoKSxtZ2MpKTtoLmk9dHJ1ZTtWMmIoaCl9fVxuZnVuY3Rpb24gemliKGEpe3ZhciBiLGMsZCxlLGY7aWYoYS5nIT1udWxsKXtyZXR1cm4gYS5nfWlmKGEuYTwzMil7YS5nPXpqYihIZGIoYS5mKSxlRShhLmUpKTtyZXR1cm4gYS5nfWU9QWpiKCghYS5jJiYoYS5jPW9qYihIZGIoYS5mKSkpLGEuYyksMCk7aWYoYS5lPT0wKXtyZXR1cm4gZX1iPSghYS5jJiYoYS5jPW9qYihIZGIoYS5mKSkpLGEuYykuZTwwPzI6MTtjPWUubGVuZ3RoO2Q9LWEuZStjLWI7Zj1uZXcgYmliO2YuYSs9JycrZTtpZihhLmU+MCYmZD49LTYpe2lmKGQ+PTApe2FpYihmLGMtZUUoYS5lKSxTdHJpbmcuZnJvbUNoYXJDb2RlKDQ2KSl9ZWxzZXtwZWIoZixiLTEsYi0xLCcwLicpO2FpYihmLGIrMSxJaGIobWliLDAsLWVFKGQpLTEpKX19ZWxzZXtpZihjLWI+PTEpe2FpYihmLGIsU3RyaW5nLmZyb21DaGFyQ29kZSg0NikpOysrY31haWIoZixjLFN0cmluZy5mcm9tQ2hhckNvZGUoNjkpKTtkPjAmJmFpYihmLCsrYyxTdHJpbmcuZnJvbUNoYXJDb2RlKDQzKSk7YWliKGYsKytjLCcnK1pkYihIZGIoZCkpKX1hLmc9Zi5hO3JldHVybiBhLmd9XG5mdW5jdGlvbiBLTmMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQTtkPUtmYihVRChtUWIoYiwoeUNjKCksaEJjKSkpKTt2PVJEKG1RYihiLGdDYyksMTcpLmE7bT00O2U9Mzt3PTIwL3Y7bj1mYWxzZTtpPTA7Zz1sdmU7ZG97Zj1pIT0xO2w9aSE9MDtBPTA7Zm9yKHE9YS5hLHM9MCx1PXEubGVuZ3RoO3M8dTsrK3Mpe289cVtzXTtvLmY9bnVsbDtMTmMoYSxvLGYsbCxkKTtBKz0kd25kLk1hdGguYWJzKG8uYSl9ZG97aD1QTmMoYSxiKX13aGlsZShoKTtmb3IocD1hLmEscj0wLHQ9cC5sZW5ndGg7cjx0Oysrcil7bz1wW3JdO2M9WE5jKG8pLmE7aWYoYyE9MCl7Zm9yKGs9bmV3IEFuYihvLmUpO2suYTxrLmMuYy5sZW5ndGg7KXtqPVJEKHluYihrKSwxMCk7ai5uLmIrPWN9fX1pZihpPT0wfHxpPT0xKXstLW07aWYobTw9MCYmKEE8Z3x8LW0+dikpe2k9MjtnPWx2ZX1lbHNlIGlmKGk9PTApe2k9MTtnPUF9ZWxzZXtpPTA7Zz1BfX1lbHNle249QT49Z3x8Zy1BPHc7Zz1BO24mJi0tZX19d2hpbGUoIShuJiZlPD0wKSl9XG5mdW5jdGlvbiBMRmIoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbztvPW5ldyBUc2I7Zm9yKGY9YS5hLmVjKCkuS2MoKTtmLk9iKCk7KXtkPVJEKGYuUGIoKSwxNzcpO1pqYihvLGQsYy5hZihkKSl9Zz0oUWIoYSksYT9uZXcgZG5iKGEpOmN2KGEuYS5lYygpLktjKCkpKTtfbWIoZyxuZXcgTkZiKG8pKTtoPVh4KGcpO2k9bmV3ICRGYihiKTtuPW5ldyBUc2I7cnRiKG4uZixiLGkpO3doaWxlKGguYS5nYygpIT0wKXtqPW51bGw7az1udWxsO2w9bnVsbDtmb3IoZT1oLmEuZWMoKS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDE3Nyk7aWYoS2ZiKFVEKFdkKHF0YihvLmYsZCkpKSk8PW94ZSl7aWYoVWpiKG4sZC5hKSYmIVVqYihuLGQuYikpe2s9ZC5iO2w9ZC5hO2o9ZDticmVha31pZihVamIobixkLmIpKXtpZighVWpiKG4sZC5hKSl7az1kLmE7bD1kLmI7aj1kO2JyZWFrfX19fWlmKCFqKXticmVha31tPW5ldyAkRmIoayk7Um1iKFJEKFdkKHF0YihuLmYsbCkpLDIyNSkuYSxtKTtydGIobi5mLGssbSk7aC5hLkJjKGopIT1udWxsfXJldHVybiBpfVxuZnVuY3Rpb24gTUZjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuO2MuVWcoJ0RlcHRoLWZpcnN0IGN5Y2xlIHJlbW92YWwnLDEpO2w9Yi5hO2s9bC5jLmxlbmd0aDthLmM9bmV3IGJuYjthLmQ9JEMoeGRiLEh5ZSwyOCxrLDE2LDEpO2EuYT0kQyh4ZGIsSHllLDI4LGssMTYsMSk7YS5iPW5ldyBibmI7Zz0wO2ZvcihqPW5ldyBBbmIobCk7ai5hPGouYy5jLmxlbmd0aDspe2k9UkQoeW5iKGopLDEwKTtpLnA9ZztncihaMmIoaSkpJiZSbWIoYS5jLGkpOysrZ31mb3Iobj1uZXcgQW5iKGEuYyk7bi5hPG4uYy5jLmxlbmd0aDspe209UkQoeW5iKG4pLDEwKTtMRmMoYSxtKX1mb3IoZj0wO2Y8aztmKyspe2lmKCFhLmRbZl0pe2g9KHRGYihmLGwuYy5sZW5ndGgpLFJEKGwuY1tmXSwxMCkpO0xGYyhhLGgpfX1mb3IoZT1uZXcgQW5iKGEuYik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDE4KTtYMGIoZCx0cnVlKTtwUWIoYiwoWXdjKCksYXdjKSwoR2ViKCksdHJ1ZSkpfWEuYz1udWxsO2EuZD1udWxsO2EuYT1udWxsO2EuYj1udWxsO2MuVmcoKX1cbmZ1bmN0aW9uIEtpZChhLGIpe3RpZCgpO3ZhciBjLGQsZSxmLGcsaDtmPWIuYy0oYS5jK2EuYik7ZT1hLmMtKGIuYytiLmIpO2c9YS5kLShiLmQrYi5hKTtjPWIuZC0oYS5kK2EuYSk7ZD0kd25kLk1hdGgubWF4KGUsZik7aD0kd25kLk1hdGgubWF4KGcsYyk7WnkoKTtieih2RWUpO2lmKCgkd25kLk1hdGguYWJzKGQpPD12RWV8fGQ9PTB8fGlzTmFOKGQpJiZpc05hTigwKT8wOmQ8MD8tMTpkPjA/MTpjeihpc05hTihkKSxpc05hTigwKSkpPj0wXihudWxsLGJ6KHZFZSksKCR3bmQuTWF0aC5hYnMoaCk8PXZFZXx8aD09MHx8aXNOYU4oaCkmJmlzTmFOKDApPzA6aDwwPy0xOmg+MD8xOmN6KGlzTmFOKGgpLGlzTmFOKDApKSk+PTApKXtyZXR1cm4gJHduZC5NYXRoLm1heChoLGQpfWJ6KHZFZSk7aWYoKCR3bmQuTWF0aC5hYnMoZCk8PXZFZXx8ZD09MHx8aXNOYU4oZCkmJmlzTmFOKDApPzA6ZDwwPy0xOmQ+MD8xOmN6KGlzTmFOKGQpLGlzTmFOKDApKSk+MCl7cmV0dXJuICR3bmQuTWF0aC5zcXJ0KGgqaCtkKmQpfXJldHVybiAtJHduZC5NYXRoLnNxcnQoaCpoK2QqZCl9XG5mdW5jdGlvbiBodWUoYSxiKXt2YXIgYyxkLGUsZixnLGg7aWYoIWIpcmV0dXJuOyFhLmEmJihhLmE9bmV3IGd5Yik7aWYoYS5lPT0yKXtkeWIoYS5hLGIpO3JldHVybn1pZihiLmU9PTEpe2ZvcihlPTA7ZTxiLlBtKCk7ZSsrKWh1ZShhLGIuTG0oZSkpO3JldHVybn1oPWEuYS5hLmMubGVuZ3RoO2lmKGg9PTApe2R5YihhLmEsYik7cmV0dXJufWc9UkQoZXliKGEuYSxoLTEpLDEyMik7aWYoISgoZy5lPT0wfHxnLmU9PTEwKSYmKGIuZT09MHx8Yi5lPT0xMCkpKXtkeWIoYS5hLGIpO3JldHVybn1mPWIuZT09MD8yOmIuTW0oKS5sZW5ndGg7aWYoZy5lPT0wKXtjPW5ldyBSaGI7ZD1nLkttKCk7ZD49dHhlP05oYihjLHFzZShkKSk6SmhiKGMsZCZCd2UpO2c9KCsrVXNlLG5ldyBldWUoMTAsbnVsbCwwKSk7ZnliKGEuYSxnLGgtMSl9ZWxzZXtjPShnLk1tKCkubGVuZ3RoK2YsbmV3IFJoYik7TmhiKGMsZy5NbSgpKX1pZihiLmU9PTApe2Q9Yi5LbSgpO2Q+PXR4ZT9OaGIoYyxxc2UoZCkpOkpoYihjLGQmQndlKX1lbHNle05oYihjLGIuTW0oKSl9UkQoZyw1MzApLmI9Yy5hfVxuZnVuY3Rpb24gUXNjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxO2lmKGMuZGMoKSl7cmV0dXJufWg9MDttPTA7ZD1jLktjKCk7bz1SRChkLlBiKCksMTcpLmE7d2hpbGUoaDxiLmYpe2lmKGg9PW8pe209MDtkLk9iKCk/KG89UkQoZC5QYigpLDE3KS5hKToobz1iLmYrMSl9aWYoaCE9bSl7cT1SRChWbWIoYS5iLGgpLDMwKTtuPVJEKFZtYihhLmIsbSksMzApO3A9YnYocS5hKTtmb3IobD1uZXcgQW5iKHApO2wuYTxsLmMuYy5sZW5ndGg7KXtrPVJEKHluYihsKSwxMCk7ZjNiKGssbi5hLmMubGVuZ3RoLG4pO2lmKG09PTApe2c9YnYoWjJiKGspKTtmb3IoZj1uZXcgQW5iKGcpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxOCk7WDBiKGUsdHJ1ZSk7cFFiKGEsKFl3YygpLGF3YyksKEdlYigpLHRydWUpKTtvc2MoYSxlLDEpfX19fSsrbTsrK2h9aT1uZXcgSmtiKGEuYiwwKTt3aGlsZShpLmI8aS5kLmdjKCkpe2o9KHNGYihpLmI8aS5kLmdjKCkpLFJEKGkuZC5YYihpLmM9aS5iKyspLDMwKSk7ai5hLmMubGVuZ3RoPT0wJiZDa2IoaSl9fVxuZnVuY3Rpb24gWGpjKGEsYixjKXt2YXIgZCxlLGY7ZT1SRChtUWIoYiwoeUNjKCksWHpjKSksMjgyKTtpZihlPT0oJHVjKCksWXVjKSl7cmV0dXJufWMuVWcoJ0hvcml6b250YWwgQ29tcGFjdGlvbicsMSk7YS5hPWI7Zj1uZXcgQ2tjO2Q9bmV3IFZHYigoZi5kPWIsZi5jPVJEKG1RYihmLmQseUFjKSwyMjMpLHRrYyhmKSxBa2MoZiksemtjKGYpLGYuYSkpO1RHYihkLGEuYik7c3dpdGNoKFJEKG1RYihiLFd6YyksNDMxKS5nKXtjYXNlIDE6UkdiKGQsbmV3IFBpYyhhLmEpKTticmVhaztkZWZhdWx0OlJHYihkLChGR2IoKSxER2IpKTt9c3dpdGNoKGUuZyl7Y2FzZSAxOktHYihkKTticmVhaztjYXNlIDI6S0diKEpHYihkLChDbWQoKSx6bWQpKSk7YnJlYWs7Y2FzZSAzOktHYihTR2IoSkdiKEtHYihkKSwoQ21kKCksem1kKSksbmV3IGZrYykpO2JyZWFrO2Nhc2UgNDpLR2IoU0diKEpHYihLR2IoZCksKENtZCgpLHptZCkpLG5ldyBoa2MoZikpKTticmVhaztjYXNlIDU6S0diKFFHYihkLFZqYykpO31KR2IoZCwoQ21kKCkseW1kKSk7ZC5lPXRydWU7cWtjKGYpO2MuVmcoKX1cbmZ1bmN0aW9uIGJxYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdDtnPWIuYjtrPWcubztpPWcuZDtkPUtmYihVRChrMmIoZywoeUNjKCksVEJjKSkpKTtlPUtmYihVRChrMmIoZyxWQmMpKSk7aj1LZmIoVUQoazJiKGcsZENjKSkpO2g9bmV3IFQyYjtEMmIoaCxpLmQsaS5jLGkuYSxpLmIpO209WnBjKGIsZCxlLGopO2ZvcihyPW5ldyBBbmIoYi5kKTtyLmE8ci5jLmMubGVuZ3RoOyl7cT1SRCh5bmIociksMTA1KTtmb3Iobz1xLmYuYS5lYygpLktjKCk7by5PYigpOyl7bj1SRChvLlBiKCksMzQwKTtmPW4uYTtsPVhwYyhuKTtjPShzPW5ldyBFamQsVnBjKG4sbi5jLG0scyksVXBjKG4sbCxtLHMpLFZwYyhuLG4uZCxtLHMpLHMpO2M9YS5uZyhuLGwsYyk7WHViKGYuYSk7eWUoZi5hLGMpO0ZEYihuZXcgU0RiKG51bGwsbmV3IFN3YihjLDE2KSksbmV3IGZxYyhrLGgpKX1wPXEuaTtpZihwKXthcWMocSxwLG0sZSk7dD1uZXcgc2pkKHAuZyk7Y3FjKGssaCx0KTskaWQodCxwLmopO2NxYyhrLGgsdCl9fUQyYihpLGguZCxoLmMsaC5hLGguYil9XG5mdW5jdGlvbiBmTmIoYSl7dmFyIGIsYyxkLGU7ZT1hLm87Uk1iKCk7aWYoYS5BLmRjKCl8fHBiKGEuQSxRTWIpKXtiPWUuYn1lbHNle2EuRD8oYj0kd25kLk1hdGgubWF4KGUuYixZS2IoYS5mKSkpOihiPVlLYihhLmYpKTtpZihhLkEuSGMoKFFwZCgpLE5wZCkpJiYhYS5CLkhjKChkcWQoKSxfcGQpKSl7Yj0kd25kLk1hdGgubWF4KGIsWUtiKFJEKFZyYihhLnAsKHFwZCgpLFhvZCkpLDI1MikpKTtiPSR3bmQuTWF0aC5tYXgoYixZS2IoUkQoVnJiKGEucCxwcGQpLDI1MikpKX1jPVRNYihhKTshIWMmJihiPSR3bmQuTWF0aC5tYXgoYixjLmIpKTtpZihhLkEuSGMoT3BkKSl7aWYoYS5xPT0oQm9kKCkseG9kKXx8YS5xPT13b2Qpe2I9JHduZC5NYXRoLm1heChiLFNKYihSRChWcmIoYS5iLChxcGQoKSxYb2QpKSwxMjcpKSk7Yj0kd25kLk1hdGgubWF4KGIsU0piKFJEKFZyYihhLmIscHBkKSwxMjcpKSl9fX1IZWIoVEQoYS5lLlRmKCkub2YoKHVtZCgpLG1sZCkpKSk/KGUuYj0kd25kLk1hdGgubWF4KGUuYixiKSk6KGUuYj1iKTtkPWEuZi5pO2QuZD0wO2QuYT1iO19LYihhLmYpfVxuZnVuY3Rpb24gZjhjKGEsYixjLGQsZSxmLGcsaCl7dmFyIGksaixrLGw7aT1kdihjRChXQyh5MSwxKSxydmUsMjM4LDAsW2IsYyxkLGVdKSk7bD1udWxsO3N3aXRjaChhLmIuZyl7Y2FzZSAxOmw9ZHYoY0QoV0MoaDEsMSkscnZlLDUzNSwwLFtuZXcgcjhjLG5ldyBoOGMsbmV3IGo4Y10pKTticmVhaztjYXNlIDA6bD1kdihjRChXQyhoMSwxKSxydmUsNTM1LDAsW25ldyBqOGMsbmV3IGg4YyxuZXcgcjhjXSkpO2JyZWFrO2Nhc2UgMjpsPWR2KGNEKFdDKGgxLDEpLHJ2ZSw1MzUsMCxbbmV3IGg4YyxuZXcgcjhjLG5ldyBqOGNdKSk7fWZvcihrPW5ldyBBbmIobCk7ay5hPGsuYy5jLmxlbmd0aDspe2o9UkQoeW5iKGspLDUzNSk7aS5jLmxlbmd0aD4xJiYoaT1qLkhnKGksYS5hLGgpKX1pZihpLmMubGVuZ3RoPT0xKXtyZXR1cm4gUkQoVm1iKGksaS5jLmxlbmd0aC0xKSwyMzgpfWlmKGkuYy5sZW5ndGg9PTIpe3JldHVybiBlOGMoKHRGYigwLGkuYy5sZW5ndGgpLFJEKGkuY1swXSwyMzgpKSwodEZiKDEsaS5jLmxlbmd0aCksUkQoaS5jWzFdLDIzOCkpLGcsZil9cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBDWmMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqO2MuVWcoJ0ZpbmQgcm9vdHMnLDEpO2EuYS5jLmxlbmd0aD0wO2ZvcihlPVN1YihiLmIsMCk7ZS5iIT1lLmQuYzspe2Q9UkQoZXZiKGUpLDQwKTtpZihkLmIuYj09MCl7cFFiKGQsKHEkYygpLG4kYyksKEdlYigpLHRydWUpKTtSbWIoYS5hLGQpfX1zd2l0Y2goYS5hLmMubGVuZ3RoKXtjYXNlIDA6Zj1uZXcgYlhjKDAsYiwnRFVNTVlfUk9PVCcpO3BRYihmLChxJGMoKSxuJGMpLChHZWIoKSx0cnVlKSk7cFFiKGYsV1pjLHRydWUpO011YihiLmIsZik7YnJlYWs7Y2FzZSAxOmJyZWFrO2RlZmF1bHQ6Zz1uZXcgYlhjKDAsYixJRWUpO2ZvcihpPW5ldyBBbmIoYS5hKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksNDApO2o9bmV3IFdXYyhnLGgpO3BRYihqLChxJGMoKSxXWmMpLChHZWIoKSx0cnVlKSk7TXViKGcuYS5hLGopO011YihnLmQsaik7TXViKGguYixqKTtwUWIoaCxuJGMsZmFsc2UpfXBRYihnLChxJGMoKSxuJGMpLChHZWIoKSx0cnVlKSk7cFFiKGcsV1pjLHRydWUpO011YihiLmIsZyk7fWMuVmcoKX1cbmZ1bmN0aW9uIEFRYihhKXt2YXIgYixjLGQsZSxmLGc7VW1iKGEuYSxuZXcgR1FiKTtmb3IoYz1uZXcgQW5iKGEuYSk7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDIyNSk7ZD1vamQoYWpkKFJEKGEuYiw2OCkuYyksUkQoYi5iLDY4KS5jKTtpZih3UWIpe2c9UkQoYS5iLDY4KS5iO2Y9UkQoYi5iLDY4KS5iO2lmKCR3bmQuTWF0aC5hYnMoZC5hKT49JHduZC5NYXRoLmFicyhkLmIpKXtkLmI9MDtmLmQrZi5hPmcuZCYmZi5kPGcuZCtnLmEmJmtqZChkLCR3bmQuTWF0aC5tYXgoZy5jLShmLmMrZi5iKSxmLmMtKGcuYytnLmIpKSl9ZWxzZXtkLmE9MDtmLmMrZi5iPmcuYyYmZi5jPGcuYytnLmImJmtqZChkLCR3bmQuTWF0aC5tYXgoZy5kLShmLmQrZi5hKSxmLmQtKGcuZCtnLmEpKSl9fWVsc2V7a2pkKGQsU1FiKFJEKGEuYiw2OCksUkQoYi5iLDY4KSkpfWU9JHduZC5NYXRoLnNxcnQoZC5hKmQuYStkLmIqZC5iKTtlPUNRYih4UWIsYixlLGQpO2tqZChkLGUpO1JRYihSRChiLmIsNjgpLGQpO1VtYihiLmEsbmV3IElRYihkKSk7UkQoeFFiLmIsNjgpO0JRYih4UWIseVFiLGIpfX1cbmZ1bmN0aW9uIHRPYyhhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvO2EuZj1uZXcgQkliO2o9MDtlPTA7Zm9yKGc9bmV3IEFuYihhLmUuYik7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDMwKTtmb3IoaT1uZXcgQW5iKGYuYSk7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDEwKTtoLnA9aisrO2ZvcihkPW5ldyBpcyhNcihhM2IoaCkuYS5LYygpLG5ldyBpcikpO2dzKGQpOyl7Yz1SRChocyhkKSwxOCk7Yy5wPWUrK31iPUJPYyhoKTtmb3IobT1uZXcgQW5iKGguaik7bS5hPG0uYy5jLmxlbmd0aDspe2w9UkQoeW5iKG0pLDEyKTtpZihiKXtvPWwuYS5iO2lmKG8hPSR3bmQuTWF0aC5mbG9vcihvKSl7az1vLVhkYihIZGIoJHduZC5NYXRoLnJvdW5kKG8pKSk7bC5hLmItPWt9fW49bC5uLmIrbC5hLmI7aWYobiE9JHduZC5NYXRoLmZsb29yKG4pKXtrPW4tWGRiKEhkYigkd25kLk1hdGgucm91bmQobikpKTtsLm4uYi09a319fX1hLmc9ajthLmI9ZTthLmk9JEMoWFkscnZlLDQxMixqLDAsMSk7YS5jPSRDKFdZLHJ2ZSw2NTUsZSwwLDEpO2EuZC5hLiRiKCl9XG5mdW5jdGlvbiBzTGQoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqO2lmKGEuUGooKSl7aT1hLlFqKCk7aWYoYS5pPjApe2I9bmV3IHpOZChhLmksYS5nKTtjPWEuaTtmPWM8MTAwP251bGw6bmV3IGdMZChjKTtpZihhLlRqKCkpe2ZvcihkPTA7ZDxhLmk7KytkKXtnPWEuZ1tkXTtmPWEuVmooZyxmKX19T0hkKGEpO2U9Yz09MT9hLklqKDQsUUhkKGIsMCksbnVsbCwwLGkpOmEuSWooNixiLG51bGwsLTEsaSk7aWYoYS5NaigpKXtmb3IoZD1uZXcgeU1kKGIpO2QuZSE9ZC5pLmdjKCk7KXtmPWEuT2ooeE1kKGQpLGYpfWlmKCFmKXthLkpqKGUpfWVsc2V7Zi5uaihlKTtmLm9qKCl9fWVsc2V7aWYoIWYpe2EuSmooZSl9ZWxzZXtmLm5qKGUpO2Yub2ooKX19fWVsc2V7T0hkKGEpO2EuSmooYS5Jaig2LCh5b2IoKSx2b2IpLG51bGwsLTEsaSkpfX1lbHNlIGlmKGEuTWooKSl7aWYoYS5pPjApe2g9YS5nO2o9YS5pO09IZChhKTtmPWo8MTAwP251bGw6bmV3IGdMZChqKTtmb3IoZD0wO2Q8ajsrK2Qpe2c9aFtkXTtmPWEuT2ooZyxmKX0hIWYmJmYub2ooKX1lbHNle09IZChhKX19ZWxzZXtPSGQoYSl9fVxuZnVuY3Rpb24geFZjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbTtyVmModGhpcyk7Yz09KGRWYygpLGJWYyk/WXNiKHRoaXMucixhKTpZc2IodGhpcy53LGEpO2s9b3hlO2o9cHhlO2ZvcihnPWIuYS5lYygpLktjKCk7Zy5PYigpOyl7ZT1SRChnLlBiKCksNDIpO2g9UkQoZS5hLDQ2NSk7ZD1SRChlLmIsMTgpO2k9ZC5jO2k9PWEmJihpPWQuZCk7aD09YlZjP1lzYih0aGlzLnIsaSk6WXNiKHRoaXMudyxpKTttPShxcGQoKSxocGQpLkhjKGkuaik/S2ZiKFVEKG1RYihpLChZd2MoKSxTd2MpKSkpOnhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtpLmkubixpLm4saS5hXSkpLmI7az0kd25kLk1hdGgubWluKGssbSk7aj0kd25kLk1hdGgubWF4KGosbSl9bD0ocXBkKCksaHBkKS5IYyhhLmopP0tmYihVRChtUWIoYSwoWXdjKCksU3djKSkpKTp4amQoY0QoV0MobDMsMSksTnZlLDgsMCxbYS5pLm4sYS5uLGEuYV0pKS5iO3ZWYyh0aGlzLGwsayxqKTtmb3IoZj1iLmEuZWMoKS5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDQyKTtzVmModGhpcyxSRChlLmIsMTgpKX10aGlzLm89ZmFsc2V9XG5mdW5jdGlvbiB3RChhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEIsQyxELEYsRztjPWEubCY4MTkxO2Q9YS5sPj4xM3woYS5tJjE1KTw8OTtlPWEubT4+NCY4MTkxO2Y9YS5tPj4xN3woYS5oJjI1NSk8PDU7Zz0oYS5oJjEwNDgzMjApPj44O2g9Yi5sJjgxOTE7aT1iLmw+PjEzfChiLm0mMTUpPDw5O2o9Yi5tPj40JjgxOTE7az1iLm0+PjE3fChiLmgmMjU1KTw8NTtsPShiLmgmMTA0ODMyMCk+Pjg7Qj1jKmg7Qz1kKmg7RD1lKmg7Rj1mKmg7Rz1nKmg7aWYoaSE9MCl7Qys9YyppO0QrPWQqaTtGKz1lKmk7Rys9ZippfWlmKGohPTApe0QrPWMqajtGKz1kKmo7Rys9ZSpqfWlmKGshPTApe0YrPWMqaztHKz1kKmt9bCE9MCYmKEcrPWMqbCk7bj1CJmR4ZTtvPShDJjUxMSk8PDEzO209bitvO3E9Qj4+MjI7cj1DPj45O3M9KEQmMjYyMTQzKTw8NDt0PShGJjMxKTw8MTc7cD1xK3Ircyt0O3Y9RD4+MTg7dz1GPj41O0E9KEcmNDA5NSk8PDg7dT12K3crQTtwKz1tPj4yMjttJj1keGU7dSs9cD4+MjI7cCY9ZHhlO3UmPWV4ZTtyZXR1cm4gaEQobSxwLHUpfVxuZnVuY3Rpb24gRmFjKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2g9UkQoVm1iKGEuaiwwKSwxMik7aWYoaC5nLmMubGVuZ3RoIT0wJiZoLmUuYy5sZW5ndGghPTApe3Rocm93IEFkYihuZXcgZGdiKCdJbnRlcmFjdGl2ZSBsYXlvdXQgZG9lcyBub3Qgc3VwcG9ydCBOT1JUSC9TT1VUSCBwb3J0cyB3aXRoIGluY29taW5nIF9hbmRfIG91dGdvaW5nIGVkZ2VzLicpKX1pZihoLmcuYy5sZW5ndGghPTApe2Y9b3hlO2ZvcihjPW5ldyBBbmIoaC5nKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMTgpO2c9Yi5kLmk7ZD1SRChtUWIoZywoeUNjKCksX0FjKSksMTQwKTtmPSR3bmQuTWF0aC5taW4oZixnLm4uYS1kLmIpfXJldHVybiBuZXcgY2MoUWIoZikpfWlmKGguZS5jLmxlbmd0aCE9MCl7ZT1weGU7Zm9yKGM9bmV3IEFuYihoLmUpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwxOCk7Zz1iLmMuaTtkPVJEKG1RYihnLCh5Q2MoKSxfQWMpKSwxNDApO2U9JHduZC5NYXRoLm1heChlLGcubi5hK2cuby5hK2QuYyl9cmV0dXJuIG5ldyBjYyhRYihlKSl9cmV0dXJuIHdiKCksd2IoKSx2Yn1cbmZ1bmN0aW9uIGNaZChhLGIpe3ZhciBjLGQsZSxmLGcsaCxpO2lmKGEub2woKSl7aWYoYS5pPjQpe2lmKGEuZmsoYikpe2lmKGEuYWwoKSl7ZT1SRChiLDU0KTtkPWUuRWgoKTtpPWQ9PWEuZSYmKGEubWwoKT9lLnloKGUuRmgoKSxhLmlsKCkpPT1hLmpsKCk6LTEtZS5GaCgpPT1hLkxqKCkpO2lmKGEubmwoKSYmIWkmJiFkJiYhIWUuSmgoKSl7Zm9yKGY9MDtmPGEuaTsrK2Ype2M9YS5wbChSRChhLmdbZl0sNTgpKTtpZihkRShjKT09PWRFKGIpKXtyZXR1cm4gdHJ1ZX19fXJldHVybiBpfWVsc2UgaWYoYS5tbCgpJiYhYS5sbCgpKXtnPVJEKGIsNTgpLk1oKFo1ZChSRChhLkxrKCksMTkpKSk7aWYoZEUoZyk9PT1kRShhLmUpKXtyZXR1cm4gdHJ1ZX1lbHNlIGlmKGc9PW51bGx8fCFSRChnLDU4KS5WaCgpKXtyZXR1cm4gZmFsc2V9fX1lbHNle3JldHVybiBmYWxzZX19aD1QSGQoYSxiKTtpZihhLm5sKCkmJiFoKXtmb3IoZj0wO2Y8YS5pOysrZil7ZT1hLnBsKFJEKGEuZ1tmXSw1OCkpO2lmKGRFKGUpPT09ZEUoYikpe3JldHVybiB0cnVlfX19cmV0dXJuIGh9ZWxzZXtyZXR1cm4gUEhkKGEsYil9fVxuZnVuY3Rpb24gYkdjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxO2MuVWcoJ0ludGVyYWN0aXZlIGN5Y2xlIGJyZWFraW5nJywxKTtsPW5ldyBibmI7Zm9yKG49bmV3IEFuYihiLmEpO24uYTxuLmMuYy5sZW5ndGg7KXttPVJEKHluYihuKSwxMCk7bS5wPTE7bz1fMmIobSkuYTtmb3Ioaz1jM2IobSwoQkVjKCksekVjKSkuS2MoKTtrLk9iKCk7KXtqPVJEKGsuUGIoKSwxMik7Zm9yKGY9bmV3IEFuYihqLmcpO2YuYTxmLmMuYy5sZW5ndGg7KXtkPVJEKHluYihmKSwxOCk7cD1kLmQuaTtpZihwIT1tKXtxPV8yYihwKS5hO3E8byYmKFpFYihsLmMsZCksdHJ1ZSl9fX19Zm9yKGc9bmV3IEFuYihsKTtnLmE8Zy5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZyksMTgpO1gwYihkLHRydWUpfWwuYy5sZW5ndGg9MDtmb3IoaT1uZXcgQW5iKGIuYSk7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDEwKTtoLnA+MCYmYUdjKGEsaCxsKX1mb3IoZT1uZXcgQW5iKGwpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxOCk7WDBiKGQsdHJ1ZSl9bC5jLmxlbmd0aD0wO2MuVmcoKX1cbmZ1bmN0aW9uIG1NYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztjPTA7az1uZXcgYm5iO2ZvcihoPW5ldyBBbmIoYik7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDEyKTskTGMoYS5iLGEuZFtnLnBdKTtrLmMubGVuZ3RoPTA7c3dpdGNoKGcuaS5rLmcpe2Nhc2UgMDpkPVJEKG1RYihnLChZd2MoKSxJd2MpKSwxMCk7VW1iKGQuaixuZXcgWE1jKGspKTticmVhaztjYXNlIDE6TXZiKEREYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IoZy5pLmosMTYpKSxuZXcgWk1jKGcpKSksbmV3IGFOYyhrKSk7YnJlYWs7Y2FzZSAzOmU9UkQobVFiKGcsKFl3YygpLEF3YykpLDEyKTtSbWIoayxuZXcgUHRkKGUsc2diKGcuZS5jLmxlbmd0aCtnLmcuYy5sZW5ndGgpKSk7fWZvcihqPW5ldyBBbmIoayk7ai5hPGouYy5jLmxlbmd0aDspe2k9UkQoeW5iKGopLDQyKTtmPUFNYyhhLFJEKGkuYSwxMikpO2lmKGY+YS5kW2cucF0pe2MrPVpMYyhhLmIsZikqUkQoaS5iLDE3KS5hO2htYihhLmEsc2diKGYpKX19d2hpbGUoIW5tYihhLmEpKXtYTGMoYS5iLFJEKHNtYihhLmEpLDE3KS5hKX19cmV0dXJuIGN9XG5mdW5jdGlvbiB4OWIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbDtrPVJEKG1RYihhLChZd2MoKSxod2MpKSw2NCk7ZD1SRChWbWIoYS5qLDApLDEyKTtrPT0ocXBkKCksWW9kKT9RM2IoZCxucGQpOms9PW5wZCYmUTNiKGQsWW9kKTtpZihSRChtUWIoYiwoeUNjKCksbEJjKSksMTgxKS5IYygoUXBkKCksUHBkKSkpe2k9S2ZiKFVEKG1RYihhLF9CYykpKTtqPUtmYihVRChtUWIoYSxhQ2MpKSk7Zz1LZmIoVUQobVFiKGEsWkJjKSkpO2g9UkQobVFiKGIsRUJjKSwyMSk7aWYoaC5IYygoUG9kKCksTG9kKSkpe2M9ajtsPWEuby5hLzItZC5uLmE7Zm9yKGY9bmV3IEFuYihkLmYpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSw3Mik7ZS5uLmI9YztlLm4uYT1sLWUuby5hLzI7Yys9ZS5vLmIrZ319ZWxzZSBpZihoLkhjKE5vZCkpe2ZvcihmPW5ldyBBbmIoZC5mKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksNzIpO2Uubi5hPWkrYS5vLmEtZC5uLmF9fU5KYihuZXcgUEpiKChpMWIoKSxuZXcgdDFiKGIsZmFsc2UsZmFsc2UsbmV3IF8xYikpKSxuZXcgRjFiKG51bGwsYSxmYWxzZSkpfX1cbmZ1bmN0aW9uIHlrYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztpZihiLmMubGVuZ3RoPT0wKXtyZXR1cm59eW9iKCk7WW5iKGIuYyxiLmMubGVuZ3RoLG51bGwpO2U9bmV3IEFuYihiKTtkPVJEKHluYihlKSwxNTQpO3doaWxlKGUuYTxlLmMuYy5sZW5ndGgpe2M9UkQoeW5iKGUpLDE1NCk7aWYockdiKGQuZS5jLGMuZS5jKSYmISh1R2IoTWlkKGQuZSkuYixjLmUuZCl8fHVHYihNaWQoYy5lKS5iLGQuZS5kKSkpe2Q9KFRtYihkLmssYy5rKSxUbWIoZC5iLGMuYiksVG1iKGQuYyxjLmMpLHllKGQuaSxjLmkpLFRtYihkLmQsYy5kKSxUbWIoZC5qLGMuaiksZj0kd25kLk1hdGgubWluKGQuZS5jLGMuZS5jKSxnPSR3bmQuTWF0aC5taW4oZC5lLmQsYy5lLmQpLGg9JHduZC5NYXRoLm1heChkLmUuYytkLmUuYixjLmUuYytjLmUuYiksaT1oLWYsaj0kd25kLk1hdGgubWF4KGQuZS5kK2QuZS5hLGMuZS5kK2MuZS5hKSxrPWotZyxSaWQoZC5lLGYsZyxpLGspLCRHYihkLmYsYy5mKSwhZC5hJiYoZC5hPWMuYSksVG1iKGQuZyxjLmcpLFJtYihkLmcsYyksZCl9ZWxzZXtCa2MoYSxkKTtkPWN9fUJrYyhhLGQpfVxuZnVuY3Rpb24gQjBiKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdjtpPW5ldyBibmI7Zm9yKGY9bmV3IEFuYihiLmEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMCk7Zm9yKGg9bmV3IEFuYihlLmopO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMik7az1udWxsO2Zvcih0PXMyYihnLmcpLHU9MCx2PXQubGVuZ3RoO3U8djsrK3Upe3M9dFt1XTtpZighbjJiKHMuZC5pLGMpKXtyPXcwYihhLGIsYyxzLHMuYywoQkVjKCksekVjKSxrKTtyIT1rJiYoWkViKGkuYyxyKSx0cnVlKTtyLmMmJihrPXIpfX1qPW51bGw7Zm9yKG89czJiKGcuZSkscD0wLHE9by5sZW5ndGg7cDxxOysrcCl7bj1vW3BdO2lmKCFuMmIobi5jLmksYykpe3I9dzBiKGEsYixjLG4sbi5kLChCRWMoKSx5RWMpLGopO3IhPWomJihaRWIoaS5jLHIpLHRydWUpO3IuYyYmKGo9cil9fX19Zm9yKG09bmV3IEFuYihpKTttLmE8bS5jLmMubGVuZ3RoOyl7bD1SRCh5bmIobSksNDUzKTtXbWIoYi5hLGwuYSwwKSE9LTF8fFJtYihiLmEsbC5hKTtsLmMmJihaRWIoZC5jLGwpLHRydWUpfX1cbmZ1bmN0aW9uIGhyZChhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvLHAscTtsPW5ldyBzamQoUkQoR3hkKGEsKGhrZCgpLGJrZCkpLDgpKTtsLmE9JHduZC5NYXRoLm1heChsLmEtYy5iLWMuYywwKTtsLmI9JHduZC5NYXRoLm1heChsLmItYy5kLWMuYSwwKTtlPVVEKEd4ZChhLFhqZCkpOyhlPT1udWxsfHwodUZiKGUpLGUpPD0wKSYmKGU9MS4zKTtoPW5ldyBibmI7Zm9yKG89bmV3IGRNZCgoIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpKTtvLmUhPW8uaS5nYygpOyl7bj1SRChiTWQobyksMjcpO2c9bmV3IEFyZChuKTtaRWIoaC5jLGcpfW09UkQoR3hkKGEsWWpkKSwzMjApO3N3aXRjaChtLmcpe2Nhc2UgMzpxPWVyZChoLGIsbC5hLGwuYiwoaj1kLHVGYihlKSxlLGopKTticmVhaztjYXNlIDE6cT1kcmQoaCxiLGwuYSxsLmIsKGs9ZCx1RmIoZSksZSxrKSk7YnJlYWs7ZGVmYXVsdDpxPWZyZChoLGIsbC5hLGwuYiwoaT1kLHVGYihlKSxlLGkpKTt9Zj1uZXcgenJkKHEpO3A9aXJkKGYsYixjLGwuYSxsLmIsZCwodUZiKGUpLGUpKTtFc2QoYSxwLmEscC5iLGZhbHNlLHRydWUpfVxuZnVuY3Rpb24gbTJiKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksajtoPWEuajtpZihoPT0ocXBkKCksb3BkKSYmYiE9KEJvZCgpLHpvZCkmJmIhPShCb2QoKSxBb2QpKXtoPWMyYihhLGMpO1EzYihhLGgpOyEoIWEucT8oeW9iKCkseW9iKCksd29iKTphLnEpLl9iKCh5Q2MoKSxBQmMpKSYmaCE9b3BkJiYoYS5uLmEhPTB8fGEubi5iIT0wKSYmcFFiKGEsQUJjLGIyYihhLGgpKX1pZihiPT0oQm9kKCkseG9kKSl7aj0wO3N3aXRjaChoLmcpe2Nhc2UgMTpjYXNlIDM6Zj1hLmkuby5hO2Y+MCYmKGo9YS5uLmEvZik7YnJlYWs7Y2FzZSAyOmNhc2UgNDplPWEuaS5vLmI7ZT4wJiYoaj1hLm4uYi9lKTt9cFFiKGEsKFl3YygpLEp3Yyksail9aT1hLm87Zz1hLmE7aWYoZCl7Zy5hPWQuYTtnLmI9ZC5iO2EuZD10cnVlfWVsc2UgaWYoYiE9em9kJiZiIT1Bb2QmJmghPW9wZCl7c3dpdGNoKGguZyl7Y2FzZSAxOmcuYT1pLmEvMjticmVhaztjYXNlIDI6Zy5hPWkuYTtnLmI9aS5iLzI7YnJlYWs7Y2FzZSAzOmcuYT1pLmEvMjtnLmI9aS5iO2JyZWFrO2Nhc2UgNDpnLmI9aS5iLzI7fX1lbHNle2cuYT1pLmEvMjtnLmI9aS5iLzJ9fVxuZnVuY3Rpb24gVkpkKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrO2lmKGEuUGooKSl7az1hLkVqKCk7aT1hLlFqKCk7aWYoaz4wKXtiPW5ldyAkSGQoYS5waigpKTtjPWs7Zj1jPDEwMD9udWxsOm5ldyBnTGQoYyk7YUpkKGEsYyxiLmcpO2U9Yz09MT9hLklqKDQsUUhkKGIsMCksbnVsbCwwLGkpOmEuSWooNixiLG51bGwsLTEsaSk7aWYoYS5NaigpKXtmb3IoZD1uZXcgZE1kKGIpO2QuZSE9ZC5pLmdjKCk7KXtmPWEuT2ooYk1kKGQpLGYpfWlmKCFmKXthLkpqKGUpfWVsc2V7Zi5uaihlKTtmLm9qKCl9fWVsc2V7aWYoIWYpe2EuSmooZSl9ZWxzZXtmLm5qKGUpO2Yub2ooKX19fWVsc2V7YUpkKGEsYS5FaigpLGEuRmooKSk7YS5KaihhLklqKDYsKHlvYigpLHZvYiksbnVsbCwtMSxpKSl9fWVsc2UgaWYoYS5NaigpKXtrPWEuRWooKTtpZihrPjApe2g9YS5GaigpO2o9azthSmQoYSxrLGgpO2Y9ajwxMDA/bnVsbDpuZXcgZ0xkKGopO2ZvcihkPTA7ZDxqOysrZCl7Zz1oW2RdO2Y9YS5PaihnLGYpfSEhZiYmZi5vaigpfWVsc2V7YUpkKGEsYS5FaigpLGEuRmooKSl9fWVsc2V7YUpkKGEsYS5FaigpLGEuRmooKSl9fVxuZnVuY3Rpb24gZnJkKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxuLG8scCxxO2g9JEMoaUUsdnhlLDI4LGEuYy5sZW5ndGgsMTUsMSk7bT1uZXcgcHdiKG5ldyBRcmQpO2l3YihtLGEpO2o9MDtwPW5ldyBibmI7d2hpbGUobS5iLmMubGVuZ3RoIT0wKXtnPVJEKG0uYi5jLmxlbmd0aD09MD9udWxsOlZtYihtLmIsMCksMTYzKTtpZihqPjEmJnVyZChnKSp0cmQoZykvMj5oWzBdKXtmPTA7d2hpbGUoZjxwLmMubGVuZ3RoLTEmJnVyZChnKSp0cmQoZykvMj5oW2ZdKXsrK2Z9bz1uZXcgUmtiKHAsMCxmKzEpO2w9bmV3IHpyZChvKTtrPXVyZChnKS90cmQoZyk7aT1pcmQobCxiLG5ldyB6M2IsYyxkLGUsayk7JGlkKGhqZChsLmUpLGkpO3pGYihsd2IobSxsKSxCeGUpO249bmV3IFJrYihwLGYrMSxwLmMubGVuZ3RoKTtpd2IobSxuKTtwLmMubGVuZ3RoPTA7aj0wO1BuYihoLGgubGVuZ3RoLDApfWVsc2V7cT1tLmIuYy5sZW5ndGg9PTA/bnVsbDpWbWIobS5iLDApO3EhPW51bGwmJm93YihtLDApO2o+MCYmKGhbal09aFtqLTFdKTtoW2pdKz11cmQoZykqdHJkKGcpOysrajtaRWIocC5jLGcpfX1yZXR1cm4gcH1cbmZ1bmN0aW9uIF9uYyhhLGIpe3ZhciBjLGQsZSxmO2M9Yi5iO2Y9bmV3IGRuYihjLmopO2U9MDtkPWMuajtkLmMubGVuZ3RoPTA7Tm5jKFJEKCRpKGEuYiwocXBkKCksWW9kKSwoam9jKCksaW9jKSksMTUpLGMpO2U9T25jKGYsZSxuZXcgSG9jLGQpO05uYyhSRCgkaShhLmIsWW9kLGhvYyksMTUpLGMpO2U9T25jKGYsZSxuZXcgSm9jLGQpO05uYyhSRCgkaShhLmIsWW9kLGdvYyksMTUpLGMpO05uYyhSRCgkaShhLmIsWG9kLGlvYyksMTUpLGMpO05uYyhSRCgkaShhLmIsWG9kLGhvYyksMTUpLGMpO2U9T25jKGYsZSxuZXcgTG9jLGQpO05uYyhSRCgkaShhLmIsWG9kLGdvYyksMTUpLGMpO05uYyhSRCgkaShhLmIsbnBkLGlvYyksMTUpLGMpO2U9T25jKGYsZSxuZXcgTm9jLGQpO05uYyhSRCgkaShhLmIsbnBkLGhvYyksMTUpLGMpO2U9T25jKGYsZSxuZXcgUG9jLGQpO05uYyhSRCgkaShhLmIsbnBkLGdvYyksMTUpLGMpO05uYyhSRCgkaShhLmIscHBkLGlvYyksMTUpLGMpO2U9T25jKGYsZSxuZXcgdG9jLGQpO05uYyhSRCgkaShhLmIscHBkLGhvYyksMTUpLGMpO05uYyhSRCgkaShhLmIscHBkLGdvYyksMTUpLGMpfVxuZnVuY3Rpb24gakpjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuO2ZvcihoPW5ldyBBbmIoYik7aC5hPGguYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGgpLDIzOSk7Zi5lPW51bGw7Zi5jPTB9aT1udWxsO2ZvcihnPW5ldyBBbmIoYik7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDIzOSk7bD1mLmRbMF07aWYoYyYmbC5rIT0ocjNiKCkscDNiKSl7Y29udGludWV9Zm9yKG49UkQobVFiKGwsKFl3YygpLHF3YykpLDE1KS5LYygpO24uT2IoKTspe209UkQobi5QYigpLDEwKTtpZighY3x8bS5rPT0ocjNiKCkscDNiKSl7KCFmLmUmJihmLmU9bmV3IGJuYiksZi5lKS5GYyhhLmJbbS5jLnBdW20ucF0pOysrYS5iW20uYy5wXVttLnBdLmN9fWlmKCFjJiZsLms9PShyM2IoKSxwM2IpKXtpZihpKXtmb3Ioaz1SRChRYyhhLmQsaSksMjEpLktjKCk7ay5PYigpOyl7aj1SRChrLlBiKCksMTApO2ZvcihlPVJEKFFjKGEuZCxsKSwyMSkuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSwxMCk7d0pjKGEuYltqLmMucF1bai5wXSkuRmMoYS5iW2QuYy5wXVtkLnBdKTsrK2EuYltkLmMucF1bZC5wXS5jfX19aT1sfX19XG5mdW5jdGlvbiBpR2MoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHE7Yy5VZygnTW9kZWwgb3JkZXIgY3ljbGUgYnJlYWtpbmcnLDEpO2EuYT0wO2EuYj0wO249bmV3IGJuYjtrPWIuYS5jLmxlbmd0aDtmb3Ioaj1uZXcgQW5iKGIuYSk7ai5hPGouYy5jLmxlbmd0aDspe2k9UkQoeW5iKGopLDEwKTtuUWIoaSwoWXdjKCksendjKSkmJihrPSR3bmQuTWF0aC5tYXgoayxSRChtUWIoaSx6d2MpLDE3KS5hKzEpKX1mb3IocD1uZXcgQW5iKGIuYSk7cC5hPHAuYy5jLmxlbmd0aDspe289UkQoeW5iKHApLDEwKTtnPWhHYyhhLG8sayk7Zm9yKG09YzNiKG8sKEJFYygpLHpFYykpLktjKCk7bS5PYigpOyl7bD1SRChtLlBiKCksMTIpO2ZvcihmPW5ldyBBbmIobC5nKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZiksMTgpO3E9ZC5kLmk7aD1oR2MoYSxxLGspO2g8ZyYmKFpFYihuLmMsZCksdHJ1ZSl9fX1mb3IoZT1uZXcgQW5iKG4pO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxOCk7WDBiKGQsdHJ1ZSk7cFFiKGIsKFl3YygpLGF3YyksKEdlYigpLHRydWUpKX1uLmMubGVuZ3RoPTA7Yy5WZygpfVxuZnVuY3Rpb24gcVViKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbTtnPWIuZDtoPWMuZDt3aGlsZShnLmEtaC5hPT0wJiZnLmItaC5iPT0wKXtpPWZhbHNlO2lmKFpEKGIsMjUwKSYmWkQoYywyNTApJiYhaSl7aj1SRChiLDI1MCkuYTtrPW9qZChuZXcgc2pkKCRUYihqKSksWlRiKGopKTtkPTI7ZT1uZXcgcmpkKGsuYS8kd25kLk1hdGguc3FydChrLmEqay5hK2suYiprLmIpKmQsLWsuYi8kd25kLk1hdGguc3FydChrLmEqay5hK2suYiprLmIpKmQpOyRpZChnLGUpO2w9UkQoYywyNTApLmE7bT1vamQobmV3IHNqZCgkVGIobCkpLFpUYihsKSk7ZD1rPT1tPy0yOjI7Zj1uZXcgcmpkKG0uYS8kd25kLk1hdGguc3FydChtLmEqbS5hK20uYiptLmIpKmQsLShtLmIvJHduZC5NYXRoLnNxcnQobS5hKm0uYSttLmIqbS5iKSkqZCk7JGlkKGcsZik7aT10cnVlfWVsc2V7Zy5hKz1Ld2IoYSwyNikqS3hlK0t3YihhLDI3KSpMeGUtMC41O2cuYis9S3diKGEsMjYpKkt4ZStLd2IoYSwyNykqTHhlLTAuNTtoLmErPUt3YihhLDI2KSpLeGUrS3diKGEsMjcpKkx4ZS0wLjU7aC5iKz1Ld2IoYSwyNikqS3hlK0t3YihhLDI3KSpMeGUtMC41fX19XG5mdW5jdGlvbiBOV2IoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscjtqPUtXYihiKTtxPVJEKG1RYihiLCh5Q2MoKSxvQWMpKSwzMjIpO3hnYihqLG5ldyBVV2IocSkpO3I9UkQobVFiKGIsZ0FjKSwyOTkpO3hnYihqLG5ldyBXV2IocikpO3A9MDtrPW5ldyBibmI7Zm9yKGY9bmV3IEttYihqKTtmLmEhPWYuYjspe2U9UkQoSW1iKGYpLDM2KTtjWGIoYS5jLGUpO209UkQobVFiKGUsKFl3YygpLEt3YykpLDE1KTtwKz1tLmdjKCk7ZD1tLktjKCk7Um1iKGssbmV3IFB0ZChlLGQpKX1jLlVnKCdSZWN1cnNpdmUgaGllcmFyY2hpY2FsIGxheW91dCcscCk7bz0wO249UkQoUkQoVm1iKGssay5jLmxlbmd0aC0xKSw0MikuYiw1MSk7d2hpbGUobi5PYigpKXtmb3IoaT1uZXcgQW5iKGspO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSw0Mik7bT1SRChoLmIsNTEpO2c9UkQoaC5hLDM2KTt3aGlsZShtLk9iKCkpe2w9UkQobS5QYigpLDQ3KTtpZihaRChsLDUxNCkpe2lmKCFnLmUpe2wuS2YoZyxjLmVoKDEpKTsrK287YnJlYWt9ZWxzZXticmVha319ZWxzZXtsLktmKGcsYy5laCgxKSk7KytvfX19fWMuVmcoKX1cbmZ1bmN0aW9uIENlYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHA7Yi5VZygnTGF5ZXIgc2l6ZSBjYWxjdWxhdGlvbicsMSk7az1veGU7aj1weGU7ZT1mYWxzZTtmb3IoaD1uZXcgQW5iKGEuYik7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDMwKTtpPWcuYztpLmE9MDtpLmI9MDtpZihnLmEuYy5sZW5ndGg9PTApe2NvbnRpbnVlfWU9dHJ1ZTtmb3IobT1uZXcgQW5iKGcuYSk7bS5hPG0uYy5jLmxlbmd0aDspe2w9UkQoeW5iKG0pLDEwKTtvPWwubztuPWwuZDtpLmE9JHduZC5NYXRoLm1heChpLmEsby5hK24uYituLmMpfWQ9UkQoVm1iKGcuYSwwKSwxMCk7cD1kLm4uYi1kLmQuZDtkLms9PShyM2IoKSxtM2IpJiYocC09UkQobVFiKGEsKHlDYygpLGVDYykpLDE0MCkuZCk7Zj1SRChWbWIoZy5hLGcuYS5jLmxlbmd0aC0xKSwxMCk7Yz1mLm4uYitmLm8uYitmLmQuYTtmLms9PW0zYiYmKGMrPVJEKG1RYihhLCh5Q2MoKSxlQ2MpKSwxNDApLmEpO2kuYj1jLXA7az0kd25kLk1hdGgubWluKGsscCk7aj0kd25kLk1hdGgubWF4KGosYyl9aWYoIWUpe2s9MDtqPTB9YS5mLmI9ai1rO2EuYy5iLT1rO2IuVmcoKX1cbmZ1bmN0aW9uIHAyYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyO2Y9MDtnPTA7Zm9yKGo9bmV3IEFuYihhLmEpO2ouYTxqLmMuYy5sZW5ndGg7KXtoPVJEKHluYihqKSwxMCk7Zj0kd25kLk1hdGgubWF4KGYsaC5kLmIpO2c9JHduZC5NYXRoLm1heChnLGguZC5jKX1mb3IoaT1uZXcgQW5iKGEuYSk7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDEwKTtjPVJEKG1RYihoLCh5Q2MoKSxSemMpKSwyNTUpO3N3aXRjaChjLmcpe2Nhc2UgMTpvPTA7YnJlYWs7Y2FzZSAyOm89MTticmVhaztjYXNlIDU6bz0wLjU7YnJlYWs7ZGVmYXVsdDpkPTA7bD0wO2ZvcihuPW5ldyBBbmIoaC5qKTtuLmE8bi5jLmMubGVuZ3RoOyl7bT1SRCh5bmIobiksMTIpO20uZS5jLmxlbmd0aD09MHx8KytkO20uZy5jLmxlbmd0aD09MHx8KytsfWQrbD09MD8obz0wLjUpOihvPWwvKGQrbCkpO31xPWEuYztrPWguby5hO3I9KHEuYS1rKSpvO28+MC41PyhyLT1nKjIqKG8tMC41KSk6bzwwLjUmJihyKz1mKjIqKDAuNS1vKSk7ZT1oLmQuYjtyPGUmJihyPWUpO3A9aC5kLmM7cj5xLmEtcC1rJiYocj1xLmEtcC1rKTtoLm4uYT1iK3J9fVxuZnVuY3Rpb24gamVjKGEpe3ZhciBiLGMsZCxlLGY7ZD1SRChtUWIoYSwoeUNjKCksVUFjKSksMTcxKTtpZihkPT0oY3hjKCksJHdjKSl7Zm9yKGM9bmV3IGlzKE1yKFoyYihhKS5hLktjKCksbmV3IGlyKSk7Z3MoYyk7KXtiPVJEKGhzKGMpLDE4KTtpZighbGVjKGIpKXt0aHJvdyBBZGIobmV3IEplZChuQmUrWDJiKGEpK1wiJyBoYXMgaXRzIGxheWVyIGNvbnN0cmFpbnQgc2V0IHRvIEZJUlNUX1NFUEFSQVRFLCBidXQgaGFzIGF0IGxlYXN0IG9uZSBpbmNvbWluZyBlZGdlLiBcIisnRklSU1RfU0VQQVJBVEUgbm9kZXMgbXVzdCBub3QgaGF2ZSBpbmNvbWluZyBlZGdlcy4nKSl9fX1lbHNlIGlmKGQ9PWF4Yyl7Zm9yKGY9bmV3IGlzKE1yKGEzYihhKS5hLktjKCksbmV3IGlyKSk7Z3MoZik7KXtlPVJEKGhzKGYpLDE4KTtpZighbGVjKGUpKXt0aHJvdyBBZGIobmV3IEplZChuQmUrWDJiKGEpK1wiJyBoYXMgaXRzIGxheWVyIGNvbnN0cmFpbnQgc2V0IHRvIExBU1RfU0VQQVJBVEUsIGJ1dCBoYXMgYXQgbGVhc3Qgb25lIG91dGdvaW5nIGVkZ2UuIFwiKydMQVNUX1NFUEFSQVRFIG5vZGVzIG11c3Qgbm90IGhhdmUgb3V0Z29pbmcgZWRnZXMuJykpfX19fVxuZnVuY3Rpb24gUWVkKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG87aWYoYS5lJiZhLmMuYzxhLmYpe3Rocm93IEFkYihuZXcgZGdiKCdFeHBlY3RlZCAnK2EuZisnIHBoYXNlcyB0byBiZSBjb25maWd1cmVkOyAnKydvbmx5IGZvdW5kICcrYS5jLmMpKX1rPVJEKG1mYihhLmcpLDkpO249ZXYoYS5mKTtmb3IoZj1rLGg9MCxqPWYubGVuZ3RoO2g8ajsrK2gpe2Q9ZltoXTtsPVJEKE1lZChhLGQuZyksMTg4KTtsP1JtYihuLFJEKFRlZChhLGwpLDEwNikpOihuLmMucHVzaChudWxsKSx1bmRlZmluZWQsdHJ1ZSl9bz1uZXcgdWZkO0ZEYihDRGIoR0RiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihuLDE2KSksbmV3IFplZCksbmV3IF9lZChiKSksbmV3IGJmZCksbmV3IGRmZChvKSk7b2ZkKG8sYS5hKTtjPW5ldyBibmI7Zm9yKGU9ayxnPTAsaT1lLmxlbmd0aDtnPGk7KytnKXtkPWVbZ107VG1iKGMsVWVkKGEsVXgoUkQoTWVkKG8sZC5nKSwyMCkpKSk7bT1SRChWbWIobixkLmcpLDEwNik7ISFtJiYoWkViKGMuYyxtKSx0cnVlKX1UbWIoYyxVZWQoYSxVeChSRChNZWQobyxrW2subGVuZ3RoLTFdLmcrMSksMjApKSkpO3JldHVybiBjfVxuZnVuY3Rpb24gRnJjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU7bT1uZXcgYm5iO2U9bmV3IGJuYjtwPW51bGw7Zm9yKGg9Yi5LYygpO2guT2IoKTspe2c9UkQoaC5QYigpLDE3KTtmPW5ldyBUcmMoZy5hKTtaRWIoZS5jLGYpO2lmKHApe2YuZD1wO3AuZT1mfXA9Zn10PUVyYyhhKTtmb3Ioaz0wO2s8ZS5jLmxlbmd0aDsrK2spe249bnVsbDtxPVNyYygodEZiKDAsZS5jLmxlbmd0aCksUkQoZS5jWzBdLDY2MSkpKTtjPW51bGw7ZD1veGU7Zm9yKGw9MTtsPGEuYi5jLmxlbmd0aDsrK2wpe3I9cT8kd25kLk1hdGguYWJzKHEuYi1sKTokd25kLk1hdGguYWJzKGwtbi5iKSsxO289bj8kd25kLk1hdGguYWJzKGwtbi5iKTpyKzE7aWYobzxyKXtqPW47aT1vfWVsc2V7aj1xO2k9cn1zPSh1PUtmYihVRChtUWIoYSwoeUNjKCksc0NjKSkpKSx0W2xdKyR3bmQuTWF0aC5wb3coaSx1KSk7aWYoczxkKXtkPXM7Yz1qO2MuYz1sfWlmKCEhcSYmbD09cS5iKXtuPXE7cT1OcmMocSl9fWlmKGMpe1JtYihtLHNnYihjLmMpKTtjLmE9dHJ1ZTtPcmMoYyl9fXlvYigpO1luYihtLmMsbS5jLmxlbmd0aCxudWxsKTtyZXR1cm4gbX1cbmZ1bmN0aW9uIGlEKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7aWYoYi5sPT0wJiZiLm09PTAmJmIuaD09MCl7dGhyb3cgQWRiKG5ldyB0ZWIoJ2RpdmlkZSBieSB6ZXJvJykpfWlmKGEubD09MCYmYS5tPT0wJiZhLmg9PTApe2MmJihlRD1oRCgwLDAsMCkpO3JldHVybiBoRCgwLDAsMCl9aWYoYi5oPT1meGUmJmIubT09MCYmYi5sPT0wKXtyZXR1cm4gakQoYSxjKX1pPWZhbHNlO2lmKGIuaD4+MTkhPTApe2I9eEQoYik7aT0haX1nPXBEKGIpO2Y9ZmFsc2U7ZT1mYWxzZTtkPWZhbHNlO2lmKGEuaD09ZnhlJiZhLm09PTAmJmEubD09MCl7ZT10cnVlO2Y9dHJ1ZTtpZihnPT0tMSl7YT1nRCgoTUQoKSxJRCkpO2Q9dHJ1ZTtpPSFpfWVsc2V7aD1CRChhLGcpO2kmJm5EKGgpO2MmJihlRD1oRCgwLDAsMCkpO3JldHVybiBofX1lbHNlIGlmKGEuaD4+MTkhPTApe2Y9dHJ1ZTthPXhEKGEpO2Q9dHJ1ZTtpPSFpfWlmKGchPS0xKXtyZXR1cm4ga0QoYSxnLGksZixjKX1pZih1RChhLGIpPDApe2MmJihmPyhlRD14RChhKSk6KGVEPWhEKGEubCxhLm0sYS5oKSkpO3JldHVybiBoRCgwLDAsMCl9cmV0dXJuIGxEKGQ/YTpoRChhLmwsYS5tLGEuaCksYixpLGYsZSxjKX1cbmZ1bmN0aW9uIEJqYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvO2c9YS5lO2k9Yi5lO2lmKGc9PTApe3JldHVybiBifWlmKGk9PTApe3JldHVybiBhfWY9YS5kO2g9Yi5kO2lmKGYraD09Mil7Yz1DZGIoYS5hWzBdLHl4ZSk7ZD1DZGIoYi5hWzBdLHl4ZSk7aWYoZz09aSl7az1CZGIoYyxkKTtvPVlkYihrKTtuPVlkYihVZGIoaywzMikpO3JldHVybiBuPT0wP25ldyBhamIoZyxvKTpuZXcgY2piKGcsMixjRChXQyhrRSwxKSxQd2UsMjgsMTUsW28sbl0pKX1yZXR1cm4gUGliKCksSmRiKGc8MD9WZGIoZCxjKTpWZGIoYyxkKSwwKT9qamIoZzwwP1ZkYihkLGMpOlZkYihjLGQpKTpYaWIoampiKE9kYihnPDA/VmRiKGQsYyk6VmRiKGMsZCkpKSl9ZWxzZSBpZihnPT1pKXttPWc7bD1mPj1oP0NqYihhLmEsZixiLmEsaCk6Q2piKGIuYSxoLGEuYSxmKX1lbHNle2U9ZiE9aD9mPmg/MTotMTpFamIoYS5hLGIuYSxmKTtpZihlPT0wKXtyZXR1cm4gUGliKCksT2lifWlmKGU9PTEpe209ZztsPUhqYihhLmEsZixiLmEsaCl9ZWxzZXttPWk7bD1IamIoYi5hLGgsYS5hLGYpfX1qPW5ldyBjamIobSxsLmxlbmd0aCxsKTtSaWIoaik7cmV0dXJuIGp9XG5mdW5jdGlvbiBLVWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaTtpZihhLmc+Yi5mfHxiLmc+YS5mKXtyZXR1cm59Yz0wO2Q9MDtmb3IoZz1hLncuYS5lYygpLktjKCk7Zy5PYigpOyl7ZT1SRChnLlBiKCksMTIpO0FWYyh4amQoY0QoV0MobDMsMSksTnZlLDgsMCxbZS5pLm4sZS5uLGUuYV0pKS5iLGIuZyxiLmYpJiYrK2N9Zm9yKGg9YS5yLmEuZWMoKS5LYygpO2guT2IoKTspe2U9UkQoaC5QYigpLDEyKTtBVmMoeGpkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW2UuaS5uLGUubixlLmFdKSkuYixiLmcsYi5mKSYmLS1jfWZvcihpPWIudy5hLmVjKCkuS2MoKTtpLk9iKCk7KXtlPVJEKGkuUGIoKSwxMik7QVZjKHhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtlLmkubixlLm4sZS5hXSkpLmIsYS5nLGEuZikmJisrZH1mb3IoZj1iLnIuYS5lYygpLktjKCk7Zi5PYigpOyl7ZT1SRChmLlBiKCksMTIpO0FWYyh4amQoY0QoV0MobDMsMSksTnZlLDgsMCxbZS5pLm4sZS5uLGUuYV0pKS5iLGEuZyxhLmYpJiYtLWR9aWYoYzxkKXtuZXcgX1VjKGEsYixkLWMpfWVsc2UgaWYoZDxjKXtuZXcgX1VjKGIsYSxjLWQpfWVsc2V7bmV3IF9VYyhiLGEsMCk7bmV3IF9VYyhhLGIsMCl9fVxuZnVuY3Rpb24gQVNiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscztqPWIuYztlPXpSYihhLmUpO2w9aWpkKG5qZChhamQoeVJiKGEuZSkpLGEuZCphLmEsYS5jKmEuYiksLTAuNSk7Yz1lLmEtbC5hO2Q9ZS5iLWwuYjtnPWIuYTtjPWcuYy1jO2Q9Zy5kLWQ7Zm9yKGk9bmV3IEFuYihqKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksNDA3KTttPWguYjtuPWMrbS5hO3E9ZCttLmI7bz1lRShuL2EuYSk7cj1lRShxL2EuYik7Zj1oLmE7c3dpdGNoKGYuZyl7Y2FzZSAwOms9KElQYigpLEZQYik7YnJlYWs7Y2FzZSAxOms9KElQYigpLEVQYik7YnJlYWs7Y2FzZSAyOms9KElQYigpLEdQYik7YnJlYWs7ZGVmYXVsdDprPShJUGIoKSxIUGIpO31pZihmLmEpe3M9ZUUoKHEraC5jKS9hLmIpO1JtYihhLmYsbmV3IGxSYihrLHNnYihyKSxzZ2IocykpKTtmPT0oSVJiKCksSFJiKT9lUWIoYSwwLHIsbyxzKTplUWIoYSxvLHIsYS5kLTEscyl9ZWxzZXtwPWVFKChuK2guYykvYS5hKTtSbWIoYS5mLG5ldyBsUmIoayxzZ2Iobyksc2diKHApKSk7Zj09KElSYigpLEZSYik/ZVFiKGEsbywwLHAscik6ZVFiKGEsbyxyLHAsYS5jLTEpfX19XG5mdW5jdGlvbiBRJGQoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGs7Yj1uZXcgWiRkO2M9bmV3IFokZDtqPWxoYihwS2UsKGU9YkFkKGEuYixxS2UpLCFlP251bGw6V0QoJE5kKCghZS5iJiYoZS5iPW5ldyBTVmQoKEpUZCgpLEZUZCksQzgsZSkpLGUuYikscktlKSkpKTtmb3IoaT0wO2k8YS5pOysraSl7aD1SRChhLmdbaV0sMTc5KTtpZihaRChoLDEwMikpe2c9UkQoaCwxOSk7KGcuQmImUUhlKSE9MD8oKGcuQmImT3ZlKT09MHx8IWomJihmPWJBZChnLHFLZSksKCFmP251bGw6V0QoJE5kKCghZi5iJiYoZi5iPW5ldyBTVmQoKEpUZCgpLEZUZCksQzgsZikpLGYuYiksRkllKSkpPT1udWxsKSkmJldHZChiLGcpOihrPVo1ZChnKSwhIWsmJihrLkJiJlFIZSkhPTB8fCgoZy5CYiZPdmUpPT0wfHwhaiYmKGQ9YkFkKGcscUtlKSwoIWQ/bnVsbDpXRCgkTmQoKCFkLmImJihkLmI9bmV3IFNWZCgoSlRkKCksRlRkKSxDOCxkKSksZC5iKSxGSWUpKSk9PW51bGwpKSYmV0dkKGMsZykpfWVsc2V7bmtlKCk7aWYoUkQoaCw2OSkueGsoKSl7aWYoIWguc2soKSl7V0dkKGIsaCk7V0dkKGMsaCl9fX19VkhkKGIpO1ZIZChjKTthLmE9UkQoYi5nLDI1NCk7UkQoYy5nLDI1NCl9XG5mdW5jdGlvbiBFZWUoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbDtpZihCWWQoYixjKT49MCl7cmV0dXJuIGN9c3dpdGNoKHlmZShRZWUoYSxjKSkpe2Nhc2UgMjp7aWYobGhiKCcnLE9lZShhLGMucWsoKSkueGUoKSkpe2k9QmZlKFFlZShhLGMpKTtoPUFmZShRZWUoYSxjKSk7az1SZWUoYSxiLGksaCk7aWYoayl7cmV0dXJuIGt9ZT1GZWUoYSxiKTtmb3IoZz0wLGw9ZS5nYygpO2c8bDsrK2cpe2s9UkQoZS5YYihnKSwxNzkpO2lmKFhlZShDZmUoUWVlKGEsaykpLGkpKXtyZXR1cm4ga319fXJldHVybiBudWxsfWNhc2UgNDp7aWYobGhiKCcnLE9lZShhLGMucWsoKSkueGUoKSkpe2ZvcihkPWM7ZDtkPXhmZShRZWUoYSxkKSkpe2o9QmZlKFFlZShhLGQpKTtoPUFmZShRZWUoYSxkKSk7az1TZWUoYSxiLGosaCk7aWYoayl7cmV0dXJuIGt9fWk9QmZlKFFlZShhLGMpKTtpZihsaGIoZExlLGkpKXtyZXR1cm4gVGVlKGEsYil9ZWxzZXtmPUdlZShhLGIpO2ZvcihnPTAsbD1mLmdjKCk7ZzxsOysrZyl7az1SRChmLlhiKGcpLDE3OSk7aWYoWGVlKENmZShRZWUoYSxrKSksaSkpe3JldHVybiBrfX19fXJldHVybiBudWxsfWRlZmF1bHQ6e3JldHVybiBudWxsfX19XG5mdW5jdGlvbiBUZmUoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs7aWYoYy5nYygpPT0wKXtyZXR1cm4gZmFsc2V9aD0obmtlKCksUkQoYiw2OSkueGsoKSk7Zj1oP2M6bmV3IFpIZChjLmdjKCkpO2lmKHFrZShhLmUsYikpe2lmKGIuU2koKSl7Zm9yKGo9Yy5LYygpO2ouT2IoKTspe2k9ai5QYigpO2lmKCFkZ2UoYSxiLGksWkQoYiwxMDIpJiYoUkQoYiwxOSkuQmImdHhlKSE9MCkpe2U9b2tlKGIsaSk7Zi5IYyhlKXx8Zi5GYyhlKX19fWVsc2UgaWYoIWgpe2ZvcihqPWMuS2MoKTtqLk9iKCk7KXtpPWouUGIoKTtlPW9rZShiLGkpO2YuRmMoZSl9fX1lbHNle2lmKGMuZ2MoKT4xKXt0aHJvdyBBZGIobmV3IGFnYihnTGUpKX1rPXBrZShhLmUuRGgoKSxiKTtkPVJEKGEuZywxMjQpO2ZvcihnPTA7ZzxhLmk7KytnKXtlPWRbZ107aWYoay5hbShlLkxrKCkpKXtpZihjLkhjKGg/ZTplLm1kKCkpKXtyZXR1cm4gZmFsc2V9ZWxzZXtmb3Ioaj1jLktjKCk7ai5PYigpOyl7aT1qLlBiKCk7UkQoZUhkKGEsZyxoP1JEKGksNzYpOm9rZShiLGkpKSw3Nil9cmV0dXJuIHRydWV9fX1pZighaCl7ZT1va2UoYixjLktjKCkuUGIoKSk7Zi5GYyhlKX19cmV0dXJuIFlHZChhLGYpfVxuZnVuY3Rpb24gUVFjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrO2s9bmV3IFl1Yjtmb3IoaD0oaj0obmV3IGdsYihhLmMpKS5hLnZjKCkuS2MoKSxuZXcgbGxiKGopKTtoLmEuT2IoKTspe2Y9KGU9UkQoaC5hLlBiKCksNDQpLFJEKGUubWQoKSw0NjcpKTtmLmI9PTAmJihQdWIoayxmLGsuYy5iLGsuYyksdHJ1ZSl9d2hpbGUoay5iIT0wKXtmPVJEKGsuYj09MD9udWxsOihzRmIoay5iIT0wKSxXdWIoayxrLmEuYSkpLDQ2Nyk7Zi5hPT1udWxsJiYoZi5hPTApO2ZvcihkPW5ldyBBbmIoZi5kKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksNjYzKTtjLmIuYT09bnVsbD8oYy5iLmE9S2ZiKGYuYSkrYy5hKTpiLm89PShFUWMoKSxDUWMpPyhjLmIuYT0kd25kLk1hdGgubWluKEtmYihjLmIuYSksS2ZiKGYuYSkrYy5hKSk6KGMuYi5hPSR3bmQuTWF0aC5tYXgoS2ZiKGMuYi5hKSxLZmIoZi5hKStjLmEpKTstLWMuYi5iO2MuYi5iPT0wJiZNdWIoayxjLmIpfX1mb3IoZz0oaT0obmV3IGdsYihhLmMpKS5hLnZjKCkuS2MoKSxuZXcgbGxiKGkpKTtnLmEuT2IoKTspe2Y9KGU9UkQoZy5hLlBiKCksNDQpLFJEKGUubWQoKSw0NjcpKTtiLmlbZi5jLnBdPWYuYX19XG5mdW5jdGlvbiBrU2MoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGssbCxtLG4sbztrPWMrYi5jLmMuYTtmb3Iobj1uZXcgQW5iKGIuaik7bi5hPG4uYy5jLmxlbmd0aDspe209UkQoeW5iKG4pLDEyKTtlPXhqZChjRChXQyhsMywxKSxOdmUsOCwwLFttLmkubixtLm4sbS5hXSkpO2lmKGIuaz09KHIzYigpLHEzYikpe2g9UkQobVFiKG0sKFl3YygpLEF3YykpLDEyKTtlLmE9eGpkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW2guaS5uLGgubixoLmFdKSkuYTtiLm4uYT1lLmF9Zz1uZXcgcmpkKDAsZS5iKTtpZihtLmo9PShxcGQoKSxYb2QpKXtnLmE9a31lbHNlIGlmKG0uaj09cHBkKXtnLmE9Y31lbHNle2NvbnRpbnVlfW89JHduZC5NYXRoLmFicyhlLmEtZy5hKTtpZihvPD1kJiYhaFNjKGIpKXtjb250aW51ZX1mPW0uZy5jLmxlbmd0aCttLmUuYy5sZW5ndGg+MTtmb3Ioaj1uZXcgbDRiKG0uYik7eG5iKGouYSl8fHhuYihqLmIpOyl7aT1SRCh4bmIoai5hKT95bmIoai5hKTp5bmIoai5iKSwxOCk7bD1pLmM9PW0/aS5kOmkuYzskd25kLk1hdGguYWJzKHhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtsLmkubixsLm4sbC5hXSkpLmItZy5iKT4xJiZlU2MoYSxpLGcsZixtKX19fVxuZnVuY3Rpb24gdlVjKGEpe3ZhciBiLGMsZCxlLGYsZztlPW5ldyBKa2IoYS5lLDApO2Q9bmV3IEprYihhLmEsMCk7aWYoYS5kKXtmb3IoYz0wO2M8YS5iO2MrKyl7c0ZiKGUuYjxlLmQuZ2MoKSk7ZS5kLlhiKGUuYz1lLmIrKyl9fWVsc2V7Zm9yKGM9MDtjPGEuYi0xO2MrKyl7c0ZiKGUuYjxlLmQuZ2MoKSk7ZS5kLlhiKGUuYz1lLmIrKyk7Q2tiKGUpfX1iPUtmYigoc0ZiKGUuYjxlLmQuZ2MoKSksVUQoZS5kLlhiKGUuYz1lLmIrKykpKSk7d2hpbGUoYS5mLWI+QUVlKXtmPWI7Zz0wO3doaWxlKCR3bmQuTWF0aC5hYnMoYi1mKTxBRWUpeysrZztiPUtmYigoc0ZiKGUuYjxlLmQuZ2MoKSksVUQoZS5kLlhiKGUuYz1lLmIrKykpKSk7c0ZiKGQuYjxkLmQuZ2MoKSk7ZC5kLlhiKGQuYz1kLmIrKyl9aWYoZzxhLmIpe3NGYihlLmI+MCk7ZS5hLlhiKGUuYz0tLWUuYik7dVVjKGEsYS5iLWcsZixkLGUpO3NGYihlLmI8ZS5kLmdjKCkpO2UuZC5YYihlLmM9ZS5iKyspfXNGYihkLmI+MCk7ZC5hLlhiKGQuYz0tLWQuYil9aWYoIWEuZCl7Zm9yKGM9MDtjPGEuYi0xO2MrKyl7c0ZiKGUuYjxlLmQuZ2MoKSk7ZS5kLlhiKGUuYz1lLmIrKyk7Q2tiKGUpfX1hLmQ9dHJ1ZTthLmM9dHJ1ZX1cbmZ1bmN0aW9uIG5tZSgpe25tZT1nZWI7UmxlPShRbGUoKSxQbGUpLmI7VWxlPVJEKFFIZCh4WWQoUGxlLmIpLDApLDM1KTtTbGU9UkQoUUhkKHhZZChQbGUuYiksMSksMzUpO1RsZT1SRChRSGQoeFlkKFBsZS5iKSwyKSwzNSk7Y21lPVBsZS5iYjtSRChRSGQoeFlkKFBsZS5iYiksMCksMzUpO1JEKFFIZCh4WWQoUGxlLmJiKSwxKSwzNSk7ZW1lPVBsZS5mYjtmbWU9UkQoUUhkKHhZZChQbGUuZmIpLDApLDM1KTtSRChRSGQoeFlkKFBsZS5mYiksMSksMzUpO1JEKFFIZCh4WWQoUGxlLmZiKSwyKSwxOSk7aG1lPVBsZS5xYjtrbWU9UkQoUUhkKHhZZChQbGUucWIpLDApLDM1KTtSRChRSGQoeFlkKFBsZS5xYiksMSksMTkpO1JEKFFIZCh4WWQoUGxlLnFiKSwyKSwxOSk7aW1lPVJEKFFIZCh4WWQoUGxlLnFiKSwzKSwzNSk7am1lPVJEKFFIZCh4WWQoUGxlLnFiKSw0KSwzNSk7bW1lPVJEKFFIZCh4WWQoUGxlLnFiKSw2KSwzNSk7bG1lPVJEKFFIZCh4WWQoUGxlLnFiKSw1KSwxOSk7VmxlPVBsZS5qO1dsZT1QbGUuaztYbGU9UGxlLnE7WWxlPVBsZS53O1psZT1QbGUuQjskbGU9UGxlLkE7X2xlPVBsZS5DO2FtZT1QbGUuRDtibWU9UGxlLl87ZG1lPVBsZS5jYjtnbWU9UGxlLmhifVxuZnVuY3Rpb24geUljKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuO2EuYz0wO2EuYj0wO2Q9MipiLmMuYS5jLmxlbmd0aCsxO286Zm9yKGw9Yy5LYygpO2wuT2IoKTspe2s9UkQobC5QYigpLDEyKTtoPWsuaj09KHFwZCgpLFlvZCl8fGsuaj09bnBkO249MDtpZihoKXttPVJEKG1RYihrLChZd2MoKSxJd2MpKSwxMCk7aWYoIW0pe2NvbnRpbnVlfW4rPXRJYyhhLGQsayxtKX1lbHNle2ZvcihqPW5ldyBBbmIoay5nKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksMTgpO2U9aS5kO2lmKGUuaS5jPT1iLmMpe1JtYihhLmEsayk7Y29udGludWUgb31lbHNle24rPWEuZ1tlLnBdfX1mb3IoZz1uZXcgQW5iKGsuZSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDE4KTtlPWYuYztpZihlLmkuYz09Yi5jKXtSbWIoYS5hLGspO2NvbnRpbnVlIG99ZWxzZXtuLT1hLmdbZS5wXX19fWlmKGsuZS5jLmxlbmd0aCtrLmcuYy5sZW5ndGg+MCl7YS5mW2sucF09bi8oay5lLmMubGVuZ3RoK2suZy5jLmxlbmd0aCk7YS5jPSR3bmQuTWF0aC5taW4oYS5jLGEuZltrLnBdKTthLmI9JHduZC5NYXRoLm1heChhLmIsYS5mW2sucF0pfWVsc2UgaCYmKGEuZltrLnBdPW4pfX1cbmZ1bmN0aW9uIHhuZShhKXthLmI9bnVsbDthLmJiPW51bGw7YS5mYj1udWxsO2EucWI9bnVsbDthLmE9bnVsbDthLmM9bnVsbDthLmQ9bnVsbDthLmU9bnVsbDthLmY9bnVsbDthLm49bnVsbDthLk09bnVsbDthLkw9bnVsbDthLlE9bnVsbDthLlI9bnVsbDthLks9bnVsbDthLmRiPW51bGw7YS5lYj1udWxsO2EuZz1udWxsO2EuaT1udWxsO2Euaj1udWxsO2Euaz1udWxsO2EuZ2I9bnVsbDthLm89bnVsbDthLnA9bnVsbDthLnE9bnVsbDthLnI9bnVsbDthLiQ9bnVsbDthLmliPW51bGw7YS5TPW51bGw7YS5UPW51bGw7YS50PW51bGw7YS5zPW51bGw7YS51PW51bGw7YS52PW51bGw7YS53PW51bGw7YS5CPW51bGw7YS5BPW51bGw7YS5DPW51bGw7YS5EPW51bGw7YS5GPW51bGw7YS5HPW51bGw7YS5IPW51bGw7YS5JPW51bGw7YS5KPW51bGw7YS5QPW51bGw7YS5aPW51bGw7YS5VPW51bGw7YS5WPW51bGw7YS5XPW51bGw7YS5YPW51bGw7YS5ZPW51bGw7YS5fPW51bGw7YS5hYj1udWxsO2EuY2I9bnVsbDthLmhiPW51bGw7YS5uYj1udWxsO2EubGI9bnVsbDthLm1iPW51bGw7YS5vYj1udWxsO2EucGI9bnVsbDthLmpiPW51bGw7YS5rYj1udWxsO2EuTj1mYWxzZTthLk89ZmFsc2V9XG5mdW5jdGlvbiBDOGIoYSxiLGMpe3ZhciBkLGUsZixnO2MuVWcoJ0dyYXBoIHRyYW5zZm9ybWF0aW9uICgnK2EuYSsnKScsMSk7Zz1idihiLmEpO2ZvcihmPW5ldyBBbmIoYi5iKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMzApO1RtYihnLGUuYSl9ZD1SRChtUWIoYiwoeUNjKCksc0FjKSksNDI4KTtpZihkPT0oJHRjKCksWXRjKSl7c3dpdGNoKFJEKG1RYihiLHJBYyksODgpLmcpe2Nhc2UgMjpxOGIoYixnKTticmVhaztjYXNlIDM6RzhiKGIsZyk7YnJlYWs7Y2FzZSA0OmlmKGEuYT09KFA4YigpLE84Yikpe0c4YihiLGcpO3I4YihiLGcpfWVsc2V7cjhiKGIsZyk7RzhiKGIsZyl9fX1lbHNle2lmKGEuYT09KFA4YigpLE84Yikpe3N3aXRjaChSRChtUWIoYixyQWMpLDg4KS5nKXtjYXNlIDI6cThiKGIsZyk7cjhiKGIsZyk7YnJlYWs7Y2FzZSAzOkc4YihiLGcpO3E4YihiLGcpO2JyZWFrO2Nhc2UgNDpxOGIoYixnKTtHOGIoYixnKTt9fWVsc2V7c3dpdGNoKFJEKG1RYihiLHJBYyksODgpLmcpe2Nhc2UgMjpxOGIoYixnKTtyOGIoYixnKTticmVhaztjYXNlIDM6cThiKGIsZyk7RzhiKGIsZyk7YnJlYWs7Y2FzZSA0Okc4YihiLGcpO3E4YihiLGcpO319fWMuVmcoKX1cbmZ1bmN0aW9uIEFYYihhKXt2YXIgYixjLGQsZSxmLGcsaCxpO2ZvcihmPW5ldyBBbmIoYS5hLmIpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSw4Nik7ZS5iLmM9ZS5nLmM7ZS5iLmQ9ZS5nLmR9aT1uZXcgcmpkKG94ZSxveGUpO2I9bmV3IHJqZChweGUscHhlKTtmb3IoZD1uZXcgQW5iKGEuYS5iKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksODYpO2kuYT0kd25kLk1hdGgubWluKGkuYSxjLmcuYyk7aS5iPSR3bmQuTWF0aC5taW4oaS5iLGMuZy5kKTtiLmE9JHduZC5NYXRoLm1heChiLmEsYy5nLmMrYy5nLmIpO2IuYj0kd25kLk1hdGgubWF4KGIuYixjLmcuZCtjLmcuYSl9Zm9yKGg9VWMoYS5jKS5hLm5jKCk7aC5PYigpOyl7Zz1SRChoLlBiKCksNDIpO2M9UkQoZy5iLDg2KTtpLmE9JHduZC5NYXRoLm1pbihpLmEsYy5nLmMpO2kuYj0kd25kLk1hdGgubWluKGkuYixjLmcuZCk7Yi5hPSR3bmQuTWF0aC5tYXgoYi5hLGMuZy5jK2MuZy5iKTtiLmI9JHduZC5NYXRoLm1heChiLmIsYy5nLmQrYy5nLmEpfWEuZD1mamQobmV3IHJqZChpLmEsaS5iKSk7YS5lPW9qZChuZXcgcmpkKGIuYSxiLmIpLGkpO2EuYS5hLmMubGVuZ3RoPTA7YS5hLmIuYy5sZW5ndGg9MH1cbmZ1bmN0aW9uIExaYihhKXtDWmIoKTt2YXIgYixjLGQsZSxmLGcsaDtoPW5ldyBFWmI7Zm9yKGM9bmV3IEFuYihhKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMTQ4KTsoIWguYnx8Yi5jPj1oLmIuYykmJihoLmI9Yik7aWYoIWguY3x8Yi5jPD1oLmMuYyl7aC5kPWguYztoLmM9Yn0oIWguZXx8Yi5kPj1oLmUuZCkmJihoLmU9Yik7KCFoLmZ8fGIuZDw9aC5mLmQpJiYoaC5mPWIpfWQ9bmV3IFBaYigoblpiKCksalpiKSk7dCRiKGEsQVpiLG5ldyBtb2IoY0QoV0Mod1EsMSkscnZlLDM4MiwwLFtkXSkpKTtnPW5ldyBQWmIobVpiKTt0JGIoYSx6WmIsbmV3IG1vYihjRChXQyh3USwxKSxydmUsMzgyLDAsW2ddKSkpO2U9bmV3IFBaYihrWmIpO3QkYihhLHlaYixuZXcgbW9iKGNEKFdDKHdRLDEpLHJ2ZSwzODIsMCxbZV0pKSk7Zj1uZXcgUFpiKGxaYik7dCRiKGEseFpiLG5ldyBtb2IoY0QoV0Mod1EsMSkscnZlLDM4MiwwLFtmXSkpKTtGWmIoZC5jLGpaYik7RlpiKGUuYyxrWmIpO0ZaYihmLmMsbFpiKTtGWmIoZy5jLG1aYik7aC5hLmMubGVuZ3RoPTA7VG1iKGguYSxkLmMpO1RtYihoLmEsaHYoZS5jKSk7VG1iKGguYSxmLmMpO1RtYihoLmEsaHYoZy5jKSk7cmV0dXJuIGh9XG5mdW5jdGlvbiBuOWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbztiLlVnKGJHZSwxKTtuPUtmYihVRChHeGQoYSwoWDZjKCksVzZjKSkpKTtnPUtmYihVRChHeGQoYSwoWDdjKCksUTdjKSkpKTtoPVJEKEd4ZChhLE43YyksMTA3KTtCYWQoKCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKSk7az1VOGMoKCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKSxuLGcpOyFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSk7Zm9yKGo9bmV3IEFuYihrKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksMTg2KTtmb3IoZT1uZXcgQW5iKGkuYSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDE3Mik7bT1uZXcgaGFkKGQucyxkLnQsS2ZiKFVEKEd4ZChhLFE3YykpKSk7YWFkKG0sZCk7Um1iKGkuZCxtKX19bD16YWQoayxnKTtvPSR3bmQuTWF0aC5tYXgobC5hLEtmYihVRChHeGQoYSxVNmMpKSktKGguYitoLmMpKTtmPSR3bmQuTWF0aC5tYXgobC5iLEtmYihVRChHeGQoYSxSNmMpKSktKGguZCtoLmEpKTtjPWYtbC5iO0l4ZChhLE02YyxjKTtJeGQoYSxPNmMsbyk7SXhkKGEsTjZjLGYrYyk7SXhkKGEsVjZjLGspO2IuVmcoKX1cbmZ1bmN0aW9uIEE5YihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHA7aj1uZXcgSXViO2s9bmV3IEl1YjtvPW5ldyBJdWI7cD1uZXcgSXViO2k9S2ZiKFVEKG1RYihiLCh5Q2MoKSxiQ2MpKSkpO2Y9S2ZiKFVEKG1RYihiLFRCYykpKTtmb3IoaD1uZXcgQW5iKGMpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMCk7bD1SRChtUWIoZywoWXdjKCksaHdjKSksNjQpO2lmKGw9PShxcGQoKSxZb2QpKXtrLmEuemMoZyxrKTtmb3IoZT1uZXcgaXMoTXIoWjJiKGcpLmEuS2MoKSxuZXcgaXIpKTtncyhlKTspe2Q9UkQoaHMoZSksMTgpO1lzYihqLGQuYy5pKX19ZWxzZSBpZihsPT1ucGQpe3AuYS56YyhnLHApO2ZvcihlPW5ldyBpcyhNcihaMmIoZykuYS5LYygpLG5ldyBpcikpO2dzKGUpOyl7ZD1SRChocyhlKSwxOCk7WXNiKG8sZC5jLmkpfX19aWYoai5hLmdjKCkhPTApe209bmV3IFRUYygyLGYpO249U1RjKG0sYixqLGssLWktYi5jLmIpO2lmKG4+MCl7YS5hPWkrKG4tMSkqZjtiLmMuYis9YS5hO2IuZi5iKz1hLmF9fWlmKG8uYS5nYygpIT0wKXttPW5ldyBUVGMoMSxmKTtuPVNUYyhtLGIsbyxwLGIuZi5iK2ktYi5jLmIpO24+MCYmKGIuZi5iKz1pKyhuLTEpKmYpfX1cbmZ1bmN0aW9uIG9zYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1O2s9S2ZiKFVEKG1RYihhLCh5Q2MoKSxXQmMpKSkpO2Q9S2ZiKFVEKG1RYihhLG5DYykpKTttPW5ldyBkdGQ7cFFiKG0sV0JjLGsrZCk7aj1iO3I9ai5kO3A9ai5jLmk7cz1qLmQuaTtxPVE0YihwLmMpO3Q9UTRiKHMuYyk7ZT1uZXcgYm5iO2ZvcihsPXE7bDw9dDtsKyspe2g9bmV3IGozYihhKTtoM2IoaCwocjNiKCksbzNiKSk7cFFiKGgsKFl3YygpLEF3Yyksaik7cFFiKGgsQkJjLChCb2QoKSx3b2QpKTtwUWIoaCxZQmMsbSk7bj1SRChWbWIoYS5iLGwpLDMwKTtsPT1xP2YzYihoLG4uYS5jLmxlbmd0aC1jLG4pOmczYihoLG4pO3U9S2ZiKFVEKG1RYihqLEZBYykpKTtpZih1PDApe3U9MDtwUWIoaixGQWMsdSl9aC5vLmI9dTtvPSR3bmQuTWF0aC5mbG9vcih1LzIpO2c9bmV3IFIzYjtRM2IoZywocXBkKCkscHBkKSk7UDNiKGcsaCk7Zy5uLmI9bztpPW5ldyBSM2I7UTNiKGksWG9kKTtQM2IoaSxoKTtpLm4uYj1vO1owYihqLGcpO2Y9bmV3IGExYjtrUWIoZixqKTtwUWIoZixSQWMsbnVsbCk7WTBiKGYsaSk7WjBiKGYscik7cHNjKGgsaixmKTtaRWIoZS5jLGYpO2o9Zn1yZXR1cm4gZX1cbmZ1bmN0aW9uIEhlYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdDtpPVJEKGUzYihhLChxcGQoKSxwcGQpKS5LYygpLlBiKCksMTIpLmU7bj1SRChlM2IoYSxYb2QpLktjKCkuUGIoKSwxMikuZztoPWkuYy5sZW5ndGg7dD1LM2IoUkQoVm1iKGEuaiwwKSwxMikpO3doaWxlKGgtLT4wKXtwPSh0RmIoMCxpLmMubGVuZ3RoKSxSRChpLmNbMF0sMTgpKTtlPSh0RmIoMCxuLmMubGVuZ3RoKSxSRChuLmNbMF0sMTgpKTtzPWUuZC5lO2Y9V21iKHMsZSwwKTskMGIocCxlLmQsZik7WTBiKGUsbnVsbCk7WjBiKGUsbnVsbCk7bz1wLmE7YiYmTXViKG8sbmV3IHNqZCh0KSk7Zm9yKGQ9U3ViKGUuYSwwKTtkLmIhPWQuZC5jOyl7Yz1SRChldmIoZCksOCk7TXViKG8sbmV3IHNqZChjKSl9cj1wLmI7Zm9yKG09bmV3IEFuYihlLmIpO20uYTxtLmMuYy5sZW5ndGg7KXtsPVJEKHluYihtKSw3Mik7WkViKHIuYyxsKX1xPVJEKG1RYihwLCh5Q2MoKSxSQWMpKSw3NSk7Zz1SRChtUWIoZSxSQWMpLDc1KTtpZihnKXtpZighcSl7cT1uZXcgRWpkO3BRYihwLFJBYyxxKX1mb3Ioaz1TdWIoZywwKTtrLmIhPWsuZC5jOyl7aj1SRChldmIoayksOCk7TXViKHEsbmV3IHNqZChqKSl9fX19XG5mdW5jdGlvbiAkUWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQ7cD1iLmIuYy5sZW5ndGg7aWYocDwzKXtyZXR1cm59bj0kQyhrRSxQd2UsMjgscCwxNSwxKTtsPTA7Zm9yKGs9bmV3IEFuYihiLmIpO2suYTxrLmMuYy5sZW5ndGg7KXtqPVJEKHluYihrKSwzMCk7bltsKytdPWouYS5jLmxlbmd0aH1tPW5ldyBKa2IoYi5iLDIpO2ZvcihkPTE7ZDxwLTE7ZCsrKXtjPShzRmIobS5iPG0uZC5nYygpKSxSRChtLmQuWGIobS5jPW0uYisrKSwzMCkpO289bmV3IEFuYihjLmEpO2Y9MDtoPTA7Zm9yKGk9MDtpPG5bZCsxXTtpKyspe3Q9UkQoeW5iKG8pLDEwKTtpZihpPT1uW2QrMV0tMXx8WlFjKGEsdCxkKzEsZCkpe2c9bltkXS0xO1pRYyhhLHQsZCsxLGQpJiYoZz1hLmMuZVtSRChSRChSRChWbWIoYS5jLmIsdC5wKSwxNSkuWGIoMCksNDIpLmEsMTApLnBdKTt3aGlsZShoPD1pKXtzPVJEKFZtYihjLmEsaCksMTApO2lmKCFaUWMoYSxzLGQrMSxkKSl7Zm9yKHI9UkQoVm1iKGEuYy5iLHMucCksMTUpLktjKCk7ci5PYigpOyl7cT1SRChyLlBiKCksNDIpO2U9YS5jLmVbUkQocS5hLDEwKS5wXTsoZTxmfHxlPmcpJiZZc2IoYS5iLFJEKHEuYiwxOCkpfX0rK2h9Zj1nfX19fVxuZnVuY3Rpb24gemhkKGIsYyl7dmFyIGQ7aWYoYz09bnVsbHx8bGhiKGMsdnZlKSl7cmV0dXJuIG51bGx9aWYoYy5sZW5ndGg9PTAmJmIuayE9KGtpZCgpLGZpZCkpe3JldHVybiBudWxsfXN3aXRjaChiLmsuZyl7Y2FzZSAxOnJldHVybiBtaGIoYyxGR2UpPyhHZWIoKSxGZWIpOm1oYihjLEdHZSk/KEdlYigpLEVlYik6bnVsbDtjYXNlIDI6dHJ5e3JldHVybiBzZ2IoT2ViKGMscXdlLGx2ZSkpfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMTMwKSl7cmV0dXJuIG51bGx9ZWxzZSB0aHJvdyBBZGIoYSl9Y2FzZSA0OnRyeXtyZXR1cm4gTmViKGMpfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMTMwKSl7cmV0dXJuIG51bGx9ZWxzZSB0aHJvdyBBZGIoYSl9Y2FzZSAzOnJldHVybiBjO2Nhc2UgNTp1aGQoYik7cmV0dXJuIHhoZChiLGMpO2Nhc2UgNjp1aGQoYik7cmV0dXJuIHloZChiLGIuYSxjKTtjYXNlIDc6dHJ5e2Q9d2hkKGIpO2QuY2coYyk7cmV0dXJuIGR9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwzMykpe3JldHVybiBudWxsfWVsc2UgdGhyb3cgQWRiKGEpfWRlZmF1bHQ6dGhyb3cgQWRiKG5ldyBkZ2IoJ0ludmFsaWQgdHlwZSBzZXQgZm9yIHRoaXMgbGF5b3V0IG9wdGlvbi4nKSk7fX1cbmZ1bmN0aW9uIEpLZChhKXt2YXIgYjtzd2l0Y2goYS5kKXtjYXNlIDE6e2lmKGEuU2ooKSl7cmV0dXJuIGEubyE9LTJ9YnJlYWt9Y2FzZSAyOntpZihhLlNqKCkpe3JldHVybiBhLm89PS0yfWJyZWFrfWNhc2UgMzpjYXNlIDU6Y2FzZSA0OmNhc2UgNjpjYXNlIDc6e3JldHVybiBhLm8+LTJ9ZGVmYXVsdDp7cmV0dXJuIGZhbHNlfX1iPWEuUmooKTtzd2l0Y2goYS5wKXtjYXNlIDA6cmV0dXJuIGIhPW51bGwmJkhlYihURChiKSkhPVBkYihhLmssMCk7Y2FzZSAxOnJldHVybiBiIT1udWxsJiZSRChiLDIyMikuYSE9WWRiKGEuayk8PDI0Pj4yNDtjYXNlIDI6cmV0dXJuIGIhPW51bGwmJlJEKGIsMTgwKS5hIT0oWWRiKGEuaykmQndlKTtjYXNlIDY6cmV0dXJuIGIhPW51bGwmJlBkYihSRChiLDE2OCkuYSxhLmspO2Nhc2UgNTpyZXR1cm4gYiE9bnVsbCYmUkQoYiwxNykuYSE9WWRiKGEuayk7Y2FzZSA3OnJldHVybiBiIT1udWxsJiZSRChiLDE5MSkuYSE9WWRiKGEuayk8PDE2Pj4xNjtjYXNlIDM6cmV0dXJuIGIhPW51bGwmJktmYihVRChiKSkhPWEuajtjYXNlIDQ6cmV0dXJuIGIhPW51bGwmJlJEKGIsMTYxKS5hIT1hLmo7ZGVmYXVsdDpyZXR1cm4gYj09bnVsbD9hLm4hPW51bGw6IXBiKGIsYS5uKTt9fVxuZnVuY3Rpb24gTl9kKGEsYixjKXt2YXIgZCxlLGYsZztpZihhLm9sKCkmJmEubmwoKSl7Zz1PX2QoYSxSRChjLDU4KSk7aWYoZEUoZykhPT1kRShjKSl7YS54aihiKTthLkRqKGIsUF9kKGEsYixnKSk7aWYoYS5hbCgpKXtmPShlPVJEKGMsNTQpLGEubWwoKT9hLmtsKCk/ZS5UaChhLmIsWjVkKFJEKHZZZChVd2QoYS5iKSxhLkxqKCkpLDE5KSkubixSRCh2WWQoVXdkKGEuYiksYS5MaigpKS5IaygpLDI5KS5raygpLG51bGwpOmUuVGgoYS5iLEJZZChlLkRoKCksWjVkKFJEKHZZZChVd2QoYS5iKSxhLkxqKCkpLDE5KSkpLG51bGwsbnVsbCk6ZS5UaChhLmIsLTEtYS5MaigpLG51bGwsbnVsbCkpOyFSRChnLDU0KS5QaCgpJiYoZj0oZD1SRChnLDU0KSxhLm1sKCk/YS5rbCgpP2QuUmgoYS5iLFo1ZChSRCh2WWQoVXdkKGEuYiksYS5MaigpKSwxOSkpLm4sUkQodllkKFV3ZChhLmIpLGEuTGooKSkuSGsoKSwyOSkua2soKSxmKTpkLlJoKGEuYixCWWQoZC5EaCgpLFo1ZChSRCh2WWQoVXdkKGEuYiksYS5MaigpKSwxOSkpKSxudWxsLGYpOmQuUmgoYS5iLC0xLWEuTGooKSxudWxsLGYpKSk7ISFmJiZmLm9qKCl9TXZkKGEuYikmJmEuSmooYS5Jaig5LGMsZyxiLGZhbHNlKSk7cmV0dXJuIGd9fXJldHVybiBjfVxuZnVuY3Rpb24gaUpiKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrO2Q9bmV3IGJuYjtmb3IoZz1uZXcgQW5iKGEuZS5hKTtnLmE8Zy5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZyksMTI1KTtrPTA7ZS5rLmMubGVuZ3RoPTA7Zm9yKGM9bmV3IEFuYihDSWIoZSkpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwyMTgpO2lmKGIuZil7Um1iKGUuayxiKTsrK2t9fWs9PTEmJihaRWIoZC5jLGUpLHRydWUpfWZvcihmPW5ldyBBbmIoZCk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDEyNSk7d2hpbGUoZS5rLmMubGVuZ3RoPT0xKXtqPVJEKHluYihuZXcgQW5iKGUuaykpLDIxOCk7YS5iW2ouY109ai5nO2g9ai5kO2k9ai5lO2ZvcihjPW5ldyBBbmIoQ0liKGUpKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMjE4KTtwYihiLGopfHwoYi5mP2g9PWIuZHx8aT09Yi5lPyhhLmJbai5jXS09YS5iW2IuY10tYi5nKTooYS5iW2ouY10rPWEuYltiLmNdLWIuZyk6ZT09aD9iLmQ9PWU/KGEuYltqLmNdKz1iLmcpOihhLmJbai5jXS09Yi5nKTpiLmQ9PWU/KGEuYltqLmNdLT1iLmcpOihhLmJbai5jXSs9Yi5nKSl9WW1iKGguayxqKTtZbWIoaS5rLGopO2g9PWU/KGU9ai5lKTooZT1qLmQpfX19XG5mdW5jdGlvbiB2TWIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG47Yz1SRChWcmIoYS5iLGIpLDEyNyk7aT1SRChSRChRYyhhLnIsYiksMjEpLDg3KTtpZihpLmRjKCkpe2Mubi5iPTA7Yy5uLmM9MDtyZXR1cm59aj1hLnUuSGMoKFBvZCgpLExvZCkpO2c9MDtoPWkuS2MoKTtrPW51bGw7bD0wO209MDt3aGlsZShoLk9iKCkpe2Q9UkQoaC5QYigpLDExNyk7ZT1LZmIoVUQoZC5iLm9mKCh0TmIoKSxzTmIpKSkpO2Y9ZC5iLk1mKCkuYTthLkEuSGMoKFFwZCgpLFBwZCkpJiZCTWIoYSxiKTtpZighayl7ISFhLkMmJmEuQy5iPjAmJihnPSR3bmQuTWF0aC5tYXgoZyx6TWIoYS5DLmIrZC5kLmIsZSkpKX1lbHNle249bStrLmQuYythLncrZC5kLmI7Zz0kd25kLk1hdGgubWF4KGcsKFp5KCksYnooVHllKSwkd25kLk1hdGguYWJzKGwtZSk8PVR5ZXx8bD09ZXx8aXNOYU4obCkmJmlzTmFOKGUpPzA6bi8oZS1sKSkpfWs9ZDtsPWU7bT1mfWlmKCEhYS5DJiZhLkMuYz4wKXtuPW0rYS5DLmM7aiYmKG4rPWsuZC5jKTtnPSR3bmQuTWF0aC5tYXgoZywoWnkoKSxieihUeWUpLCR3bmQuTWF0aC5hYnMobC0xKTw9VHllfHxsPT0xfHxpc05hTihsKSYmaXNOYU4oMSk/MDpuLygxLWwpKSl9Yy5uLmI9MDtjLmEuYT1nfVxuZnVuY3Rpb24gRU5iKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuO2M9UkQoVnJiKGEuYixiKSwxMjcpO2k9UkQoUkQoUWMoYS5yLGIpLDIxKSw4Nyk7aWYoaS5kYygpKXtjLm4uZD0wO2Mubi5hPTA7cmV0dXJufWo9YS51LkhjKChQb2QoKSxMb2QpKTtnPTA7YS5BLkhjKChRcGQoKSxQcGQpKSYmSk5iKGEsYik7aD1pLktjKCk7az1udWxsO209MDtsPTA7d2hpbGUoaC5PYigpKXtkPVJEKGguUGIoKSwxMTcpO2Y9S2ZiKFVEKGQuYi5vZigodE5iKCksc05iKSkpKTtlPWQuYi5NZigpLmI7aWYoIWspeyEhYS5DJiZhLkMuZD4wJiYoZz0kd25kLk1hdGgubWF4KGcsek1iKGEuQy5kK2QuZC5kLGYpKSl9ZWxzZXtuPWwray5kLmErYS53K2QuZC5kO2c9JHduZC5NYXRoLm1heChnLChaeSgpLGJ6KFR5ZSksJHduZC5NYXRoLmFicyhtLWYpPD1UeWV8fG09PWZ8fGlzTmFOKG0pJiZpc05hTihmKT8wOm4vKGYtbSkpKX1rPWQ7bT1mO2w9ZX1pZighIWEuQyYmYS5DLmE+MCl7bj1sK2EuQy5hO2omJihuKz1rLmQuYSk7Zz0kd25kLk1hdGgubWF4KGcsKFp5KCksYnooVHllKSwkd25kLk1hdGguYWJzKG0tMSk8PVR5ZXx8bT09MXx8aXNOYU4obSkmJmlzTmFOKDEpPzA6bi8oMS1tKSkpfWMubi5kPTA7Yy5hLmI9Z31cbmZ1bmN0aW9uIEw4YyhhLGIsYyxkLGUsZixnLGgpe3ZhciBpLGosayxsLG0sbixvLHAscSxyO289ZmFsc2U7aj1kYWQoYy5xLGIuZitiLmItYy5xLmYpO249ZC5mPmIuYiYmaDtyPWUtKGMucS5lK2otZyk7bD0oaT1TOWMoZCxyLGZhbHNlKSxpLmEpO2lmKG4mJmw+ZC5mKXtyZXR1cm4gZmFsc2V9aWYobil7bT0wO2ZvcihxPW5ldyBBbmIoYi5kKTtxLmE8cS5jLmMubGVuZ3RoOyl7cD1SRCh5bmIocSksMzE1KTttKz1kYWQocCxkLmYpK2d9cj1lLW19aWYocjxkLmcpe3JldHVybiBmYWxzZX1rPWY9PWEuYy5sZW5ndGgtMSYmcj49KHRGYihmLGEuYy5sZW5ndGgpLFJEKGEuY1tmXSwxODYpKS5lO2lmKCFuJiZsPmIuYiYmIWspe3JldHVybiBmYWxzZX1pZihrfHxufHxsPD1iLmIpe2lmKGsmJmw+Yi5iKXtjLmQ9bDtROWMoYyxQOWMoYyxsKSl9ZWxzZXtlYWQoYy5xLGopO2MuYz10cnVlfVE5YyhkLGUtKGMucytjLnIpKTtVOWMoZCxjLnEuZStjLnEuZCxiLmYpO0NhZChiLGQpO2lmKGEuYy5sZW5ndGg+Zil7RmFkKCh0RmIoZixhLmMubGVuZ3RoKSxSRChhLmNbZl0sMTg2KSksZCk7KHRGYihmLGEuYy5sZW5ndGgpLFJEKGEuY1tmXSwxODYpKS5hLmMubGVuZ3RoPT0wJiZYbWIoYSxmKX1vPXRydWV9cmV0dXJuIG99XG5mdW5jdGlvbiB6SmMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaTt0aGlzLmc9YTtoPWIuZC5sZW5ndGg7aT1jLmQubGVuZ3RoO3RoaXMuZD0kQyhqUixXQWUsMTAsaCtpLDAsMSk7Zm9yKGc9MDtnPGg7ZysrKXt0aGlzLmRbZ109Yi5kW2ddfWZvcihmPTA7ZjxpO2YrKyl7dGhpcy5kW2grZl09Yy5kW2ZdfWlmKGIuZSl7dGhpcy5lPWd2KGIuZSk7dGhpcy5lLk1jKGMpO2lmKGMuZSl7Zm9yKGU9Yy5lLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMjM5KTtpZihkPT1iKXtjb250aW51ZX1lbHNlIHRoaXMuZS5IYyhkKT8tLWQuYzp0aGlzLmUuRmMoZCl9fX1lbHNlIGlmKGMuZSl7dGhpcy5lPWd2KGMuZSk7dGhpcy5lLk1jKGIpfXRoaXMuZj1iLmYrYy5mO3RoaXMuYT1iLmErYy5hO3RoaXMuYT4wP3hKYyh0aGlzLHRoaXMuZi90aGlzLmEpOnBKYyhiLmcsYi5kWzBdKS5hIT1udWxsJiZwSmMoYy5nLGMuZFswXSkuYSE9bnVsbD94SmModGhpcywoS2ZiKHBKYyhiLmcsYi5kWzBdKS5hKStLZmIocEpjKGMuZyxjLmRbMF0pLmEpKS8yKTpwSmMoYi5nLGIuZFswXSkuYSE9bnVsbD94SmModGhpcyxwSmMoYi5nLGIuZFswXSkuYSk6cEpjKGMuZyxjLmRbMF0pLmEhPW51bGwmJnhKYyh0aGlzLHBKYyhjLmcsYy5kWzBdKS5hKX1cbmZ1bmN0aW9uIERYYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsO2EuYT1uZXcgZlliKHdzYihzMykpO2ZvcihkPW5ldyBBbmIoYi5hKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksODU1KTtoPW5ldyBpWWIoY0QoV0MoYlEsMSkscnZlLDg2LDAsW10pKTtSbWIoYS5hLmEsaCk7Zm9yKGo9bmV3IEFuYihjLmQpO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwxMTYpO2s9bmV3IElYYihhLGkpO0NYYihrLFJEKG1RYihjLmMsKFl3YygpLGV3YykpLDIxKSk7aWYoIVVqYihhLmcsYykpe1pqYihhLmcsYyxuZXcgcmpkKGkuYyxpLmQpKTtaamIoYS5mLGMsayl9Um1iKGEuYS5iLGspO2dZYihoLGspfWZvcihnPW5ldyBBbmIoYy5iKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksNjAyKTtrPW5ldyBJWGIoYSxmLkRmKCkpO1pqYihhLmIsZixuZXcgUHRkKGgsaykpO0NYYihrLFJEKG1RYihjLmMsKFl3YygpLGV3YykpLDIxKSk7aWYoZi5CZigpKXtsPW5ldyBKWGIoYSxmLkJmKCksMSk7Q1hiKGwsUkQobVFiKGMuYyxld2MpLDIxKSk7ZT1uZXcgaVliKGNEKFdDKGJRLDEpLHJ2ZSw4NiwwLFtdKSk7Z1liKGUsbCk7UmMoYS5jLGYuQWYoKSxuZXcgUHRkKGgsbCkpfX19cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIGdGYyhhKXt2YXIgYjt0aGlzLmE9YTtiPShyM2IoKSxjRChXQyhoUiwxKSxqd2UsMjczLDAsW3AzYixvM2IsbTNiLHEzYixuM2IsbDNiXSkpLmxlbmd0aDt0aGlzLmI9WUMoVjUsW052ZSxrRWVdLFs2MDEsMTQ5XSwwLFtiLGJdLDIpO3RoaXMuYz1ZQyhWNSxbTnZlLGtFZV0sWzYwMSwxNDldLDAsW2IsYl0sMik7ZkZjKHRoaXMscDNiLCh5Q2MoKSxiQ2MpLGNDYyk7ZEZjKHRoaXMscDNiLG8zYixXQmMsWEJjKTtjRmModGhpcyxwM2IscTNiLFdCYyk7Y0ZjKHRoaXMscDNiLG0zYixXQmMpO2RGYyh0aGlzLHAzYixuM2IsYkNjLGNDYyk7ZkZjKHRoaXMsbzNiLFRCYyxVQmMpO2NGYyh0aGlzLG8zYixxM2IsVEJjKTtjRmModGhpcyxvM2IsbTNiLFRCYyk7ZEZjKHRoaXMsbzNiLG4zYixXQmMsWEJjKTtlRmModGhpcyxxM2IsVEJjKTtjRmModGhpcyxxM2IsbTNiLFRCYyk7Y0ZjKHRoaXMscTNiLG4zYiwkQmMpO2VGYyh0aGlzLG0zYixmQ2MpO2RGYyh0aGlzLG0zYixuM2IsYUNjLF9CYyk7ZkZjKHRoaXMsbjNiLFRCYyxUQmMpO2ZGYyh0aGlzLGwzYixUQmMsVUJjKTtkRmModGhpcyxsM2IscDNiLFdCYyxYQmMpO2RGYyh0aGlzLGwzYixuM2IsV0JjLFhCYyk7ZEZjKHRoaXMsbDNiLG8zYixXQmMsWEJjKX1cbmZ1bmN0aW9uIHpnZShhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscTtnPWMuTGsoKTtpZihaRChnLDEwMikmJihSRChnLDE5KS5CYiZ0eGUpIT0wKXttPVJEKGMubWQoKSw1NCk7cD1WdmQoYS5lLG0pO2lmKHAhPW0pe2s9b2tlKGcscCk7TUhkKGEsYixUZ2UoYSxiLGspKTtsPW51bGw7aWYoTXZkKGEuZSkpe2Q9RWVlKChsa2UoKSxqa2UpLGEuZS5EaCgpLGcpO2lmKGQhPXZZZChhLmUuRGgoKSxhLmMpKXtxPXBrZShhLmUuRGgoKSxnKTtoPTA7Zj1SRChhLmcsMTI0KTtmb3IoaT0wO2k8YjsrK2kpe2U9ZltpXTtxLmFtKGUuTGsoKSkmJisraH1sPW5ldyBsbGUoYS5lLDksZCxtLHAsaCxmYWxzZSk7bC5uaihuZXcgUDNkKGEuZSw5LGEuYyxjLGssYixmYWxzZSkpfX1vPVJEKGcsMTkpO249WjVkKG8pO2lmKG4pe2w9bS5UaChhLmUsQllkKG0uRGgoKSxuKSxudWxsLGwpO2w9UkQocCw1NCkuUmgoYS5lLEJZZChwLkRoKCksbiksbnVsbCxsKX1lbHNlIGlmKChvLkJiJlFIZSkhPTApe2o9LTEtQllkKGEuZS5EaCgpLG8pO2w9bS5UaChhLmUsaixudWxsLG51bGwpOyFSRChwLDU0KS5QaCgpJiYobD1SRChwLDU0KS5SaChhLmUsaixudWxsLGwpKX0hIWwmJmwub2ooKTtyZXR1cm4ga319cmV0dXJuIGN9XG5mdW5jdGlvbiBTSWQoYSl7dmFyIGIsYyxkO3dnZChMSWQsY0QoV0MoQjIsMSkscnZlLDEzNCwwLFtuZXcgdm1kXSkpO2M9bmV3IE5CKGEpO2ZvcihkPTA7ZDxjLmEubGVuZ3RoOysrZCl7Yj1KQihjLGQpLnRlKCkuYTtsaGIoYiwnbGF5ZXJlZCcpP3dnZChMSWQsY0QoV0MoQjIsMSkscnZlLDEzNCwwLFtuZXcgUHpjXSkpOmxoYihiLCdmb3JjZScpP3dnZChMSWQsY0QoV0MoQjIsMSkscnZlLDEzNCwwLFtuZXcgUFViXSkpOmxoYihiLCdzdHJlc3MnKT93Z2QoTElkLGNEKFdDKEIyLDEpLHJ2ZSwxMzQsMCxbbmV3IFJWYl0pKTpsaGIoYiwnbXJ0cmVlJyk/d2dkKExJZCxjRChXQyhCMiwxKSxydmUsMTM0LDAsW25ldyBDJGNdKSk6bGhiKGIsJ3JhZGlhbCcpP3dnZChMSWQsY0QoV0MoQjIsMSkscnZlLDEzNCwwLFtuZXcgRTRjXSkpOmxoYihiLCdkaXNjbycpP3dnZChMSWQsY0QoV0MoQjIsMSkscnZlLDEzNCwwLFtuZXcgWkhiLG5ldyBmU2JdKSk6bGhiKGIsJ3Nwb3JlT3ZlcmxhcCcpfHxsaGIoYiwnc3BvcmVDb21wYWN0aW9uJyk/d2dkKExJZCxjRChXQyhCMiwxKSxydmUsMTM0LDAsW25ldyBMY2RdKSk6bGhiKGIsJ3JlY3RwYWNraW5nJykmJndnZChMSWQsY0QoV0MoQjIsMSkscnZlLDEzNCwwLFtuZXcgdjdjXSkpfX1cbmZ1bmN0aW9uIHIyYihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyO209bmV3IHNqZChhLm8pO3I9Yi5hL20uYTtoPWIuYi9tLmI7cD1iLmEtbS5hO2Y9Yi5iLW0uYjtpZihjKXtlPWRFKG1RYihhLCh5Q2MoKSxCQmMpKSk9PT1kRSgoQm9kKCksd29kKSk7Zm9yKG89bmV3IEFuYihhLmopO28uYTxvLmMuYy5sZW5ndGg7KXtuPVJEKHluYihvKSwxMik7c3dpdGNoKG4uai5nKXtjYXNlIDE6ZXx8KG4ubi5hKj1yKTticmVhaztjYXNlIDI6bi5uLmErPXA7ZXx8KG4ubi5iKj1oKTticmVhaztjYXNlIDM6ZXx8KG4ubi5hKj1yKTtuLm4uYis9ZjticmVhaztjYXNlIDQ6ZXx8KG4ubi5iKj1oKTt9fX1mb3Ioaj1uZXcgQW5iKGEuYik7ai5hPGouYy5jLmxlbmd0aDspe2k9UkQoeW5iKGopLDcyKTtrPWkubi5hK2kuby5hLzI7bD1pLm4uYitpLm8uYi8yO3E9ay9tLmE7Zz1sL20uYjtpZihxK2c+PTEpe2lmKHEtZz4wJiZsPj0wKXtpLm4uYSs9cDtpLm4uYis9ZipnfWVsc2UgaWYocS1nPDAmJms+PTApe2kubi5hKz1wKnE7aS5uLmIrPWZ9fX1hLm8uYT1iLmE7YS5vLmI9Yi5iO3BRYihhLCh5Q2MoKSxsQmMpLChRcGQoKSxkPVJEKG1mYihIMyksOSksbmV3IEZzYihkLFJEKFdFYihkLGQubGVuZ3RoKSw5KSwwKSkpfVxuZnVuY3Rpb24gSVNkKGEsYixjLGQsZSxmKXt2YXIgZztpZighKGI9PW51bGx8fCFtU2QoYixaUmQsJFJkKSkpe3Rocm93IEFkYihuZXcgYWdiKCdpbnZhbGlkIHNjaGVtZTogJytiKSl9aWYoIWEmJiEoYyE9bnVsbCYmcWhiKGMsRmhiKDM1KSk9PS0xJiZjLmxlbmd0aD4wJiYoQkZiKDAsYy5sZW5ndGgpLGMuY2hhckNvZGVBdCgwKSE9NDcpKSl7dGhyb3cgQWRiKG5ldyBhZ2IoJ2ludmFsaWQgb3BhcXVlUGFydDogJytjKSl9aWYoYSYmIShiIT1udWxsJiZ0cGIoZVNkLGIudG9Mb3dlckNhc2UoKSkpJiYhKGM9PW51bGx8fCFtU2QoYyxhU2QsYlNkKSkpe3Rocm93IEFkYihuZXcgYWdiKE5KZStjKSl9aWYoYSYmYiE9bnVsbCYmdHBiKGVTZCxiLnRvTG93ZXJDYXNlKCkpJiYhRVNkKGMpKXt0aHJvdyBBZGIobmV3IGFnYihOSmUrYykpfWlmKCFGU2QoZCkpe3Rocm93IEFkYihuZXcgYWdiKCdpbnZhbGlkIGRldmljZTogJytkKSl9aWYoIUhTZChlKSl7Zz1lPT1udWxsPydpbnZhbGlkIHNlZ21lbnRzOiBudWxsJzonaW52YWxpZCBzZWdtZW50OiAnK3RTZChlKTt0aHJvdyBBZGIobmV3IGFnYihnKSl9aWYoIShmPT1udWxsfHxxaGIoZixGaGIoMzUpKT09LTEpKXt0aHJvdyBBZGIobmV3IGFnYignaW52YWxpZCBxdWVyeTogJytmKSl9fVxuZnVuY3Rpb24gV0hjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHI7Yy5VZygnTmV0d29yayBzaW1wbGV4IGxheWVyaW5nJywxKTthLmI9YjtyPVJEKG1RYihiLCh5Q2MoKSxnQ2MpKSwxNykuYSo0O3E9YS5iLmE7aWYocS5jLmxlbmd0aDwxKXtjLlZnKCk7cmV0dXJufWY9U0hjKGEscSk7cD1udWxsO2ZvcihlPVN1YihmLDApO2UuYiE9ZS5kLmM7KXtkPVJEKGV2YihlKSwxNSk7aD1yKmVFKCR3bmQuTWF0aC5zcXJ0KGQuZ2MoKSkpO2c9VkhjKGQpO2xKYih5SmIoQUpiKHpKYihDSmIoZyksaCkscCksdHJ1ZSksYy5laCgxKSk7bT1hLmIuYjtmb3Iobz1uZXcgQW5iKGcuYSk7by5hPG8uYy5jLmxlbmd0aDspe249UkQoeW5iKG8pLDEyNSk7d2hpbGUobS5jLmxlbmd0aDw9bi5lKXtRbWIobSxtLmMubGVuZ3RoLG5ldyBSNGIoYS5iKSl9az1SRChuLmYsMTApO2czYihrLFJEKFZtYihtLG4uZSksMzApKX1pZihmLmI+MSl7cD0kQyhrRSxQd2UsMjgsYS5iLmIuYy5sZW5ndGgsMTUsMSk7bD0wO2ZvcihqPW5ldyBBbmIoYS5iLmIpO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwzMCk7cFtsKytdPWkuYS5jLmxlbmd0aH19fXEuYy5sZW5ndGg9MDthLmE9bnVsbDthLmI9bnVsbDthLmM9bnVsbDtjLlZnKCl9XG5mdW5jdGlvbiB0TWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbDtrPW5ldyBibmI7bD1uZXcgd21iO2Y9bnVsbDtlPTA7Zm9yKGQ9MDtkPGIubGVuZ3RoOysrZCl7Yz1iW2RdO3ZNYyhmLGMpJiYoZT1vTWMoYSxsLGssY01jLGUpKTtuUWIoYywoWXdjKCkscHdjKSkmJihmPVJEKG1RYihjLHB3YyksMTApKTtzd2l0Y2goYy5rLmcpe2Nhc2UgMDpmb3IoaT1scihkcihiM2IoYywocXBkKCksWW9kKSksbmV3IGVOYykpO3hjKGkpOyl7Zz1SRCh5YyhpKSwxMik7YS5kW2cucF09ZSsrO1pFYihrLmMsZyl9ZT1vTWMoYSxsLGssY01jLGUpO2ZvcihqPWxyKGRyKGIzYihjLG5wZCksbmV3IGVOYykpO3hjKGopOyl7Zz1SRCh5YyhqKSwxMik7YS5kW2cucF09ZSsrO1pFYihrLmMsZyl9YnJlYWs7Y2FzZSAzOmlmKCFiM2IoYyxiTWMpLmRjKCkpe2c9UkQoYjNiKGMsYk1jKS5YYigwKSwxMik7YS5kW2cucF09ZSsrO1pFYihrLmMsZyl9YjNiKGMsY01jKS5kYygpfHxobWIobCxjKTticmVhaztjYXNlIDE6Zm9yKGg9YjNiKGMsKHFwZCgpLHBwZCkpLktjKCk7aC5PYigpOyl7Zz1SRChoLlBiKCksMTIpO2EuZFtnLnBdPWUrKztaRWIoay5jLGcpfWIzYihjLFhvZCkuSmMobmV3IGNOYyhsLGMpKTt9fW9NYyhhLGwsayxjTWMsZSk7cmV0dXJuIGt9XG5mdW5jdGlvbiB2Z2QoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbztpZihiPT1udWxsfHxiLmxlbmd0aD09MCl7cmV0dXJuIG51bGx9Zj1SRChYamIoYS5mLGIpLDIzKTtpZighZil7Zm9yKGU9KG49KG5ldyBnbGIoYS5kKSkuYS52YygpLktjKCksbmV3IGxsYihuKSk7ZS5hLk9iKCk7KXtjPShnPVJEKGUuYS5QYigpLDQ0KSxSRChnLm1kKCksMjMpKTtoPWMuZjtvPWIubGVuZ3RoO2lmKGxoYihoLnN1YnN0cihoLmxlbmd0aC1vLG8pLGIpJiYoYi5sZW5ndGg9PWgubGVuZ3RofHxpaGIoaCxoLmxlbmd0aC1iLmxlbmd0aC0xKT09NDYpKXtpZihmKXtyZXR1cm4gbnVsbH1mPWN9fWlmKCFmKXtmb3IoZD0obT0obmV3IGdsYihhLmQpKS5hLnZjKCkuS2MoKSxuZXcgbGxiKG0pKTtkLmEuT2IoKTspe2M9KGc9UkQoZC5hLlBiKCksNDQpLFJEKGcubWQoKSwyMykpO2w9Yy5nO2lmKGwhPW51bGwpe2ZvcihpPWwsaj0wLGs9aS5sZW5ndGg7ajxrOysrail7aD1pW2pdO289Yi5sZW5ndGg7aWYobGhiKGguc3Vic3RyKGgubGVuZ3RoLW8sbyksYikmJihiLmxlbmd0aD09aC5sZW5ndGh8fGloYihoLGgubGVuZ3RoLWIubGVuZ3RoLTEpPT00Nikpe2lmKGYpe3JldHVybiBudWxsfWY9Y319fX19ISFmJiYkamIoYS5mLGIsZil9cmV0dXJuIGZ9XG5mdW5jdGlvbiBJQShhLGIpe3ZhciBjLGQsZSxmLGc7Yz1uZXcgY2liO2c9ZmFsc2U7Zm9yKGY9MDtmPGIubGVuZ3RoO2YrKyl7ZD0oQkZiKGYsYi5sZW5ndGgpLGIuY2hhckNvZGVBdChmKSk7aWYoZD09MzIpe3dBKGEsYywwKTtjLmErPScgJzt3QShhLGMsMCk7d2hpbGUoZisxPGIubGVuZ3RoJiYoQkZiKGYrMSxiLmxlbmd0aCksYi5jaGFyQ29kZUF0KGYrMSk9PTMyKSl7KytmfWNvbnRpbnVlfWlmKGcpe2lmKGQ9PTM5KXtpZihmKzE8Yi5sZW5ndGgmJihCRmIoZisxLGIubGVuZ3RoKSxiLmNoYXJDb2RlQXQoZisxKT09MzkpKXtjLmErPVN0cmluZy5mcm9tQ2hhckNvZGUoZCk7KytmfWVsc2V7Zz1mYWxzZX19ZWxzZXtjLmErPVN0cmluZy5mcm9tQ2hhckNvZGUoZCl9Y29udGludWV9aWYocWhiKCdHeU1MZGtIbXNTRWNEYWhLelp2JyxGaGIoZCkpPjApe3dBKGEsYywwKTtjLmErPVN0cmluZy5mcm9tQ2hhckNvZGUoZCk7ZT1CQShiLGYpO3dBKGEsYyxlKTtmKz1lLTE7Y29udGludWV9aWYoZD09Mzkpe2lmKGYrMTxiLmxlbmd0aCYmKEJGYihmKzEsYi5sZW5ndGgpLGIuY2hhckNvZGVBdChmKzEpPT0zOSkpe2MuYSs9XCInXCI7KytmfWVsc2V7Zz10cnVlfX1lbHNle2MuYSs9U3RyaW5nLmZyb21DaGFyQ29kZShkKX19d0EoYSxjLDApO0NBKGEpfVxuZnVuY3Rpb24gdFNjKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0O3Q9WXgoYSk7aT1uZXcgYm5iO2Y9YS5jLmxlbmd0aDtqPWYtMTtrPWYrMTt3aGlsZSh0LmEuZ2MoKSE9MCl7d2hpbGUoYy5iIT0wKXtyPShzRmIoYy5iIT0wKSxSRChXdWIoYyxjLmEuYSksMTE4KSk7dC5hLkJjKHIpIT1udWxsO3IuZz1qLS07d1NjKHIsYixjLGQpfXdoaWxlKGIuYiE9MCl7cz0oc0ZiKGIuYiE9MCksUkQoV3ViKGIsYi5hLmEpLDExOCkpO3QuYS5CYyhzKSE9bnVsbDtzLmc9aysrO3dTYyhzLGIsYyxkKX1oPXF3ZTtmb3IocD10LmEuZWMoKS5LYygpO3AuT2IoKTspe289UkQocC5QYigpLDExOCk7aWYoIWQmJm8uYj4wJiZvLmE8PTApe2kuYy5sZW5ndGg9MDtaRWIoaS5jLG8pO2JyZWFrfW49by5pLW8uZDtpZihuPj1oKXtpZihuPmgpe2kuYy5sZW5ndGg9MDtoPW59WkViKGkuYyxvKX19aWYoaS5jLmxlbmd0aCE9MCl7Zz1SRChWbWIoaSxKd2IoZSxpLmMubGVuZ3RoKSksMTE4KTt0LmEuQmMoZykhPW51bGw7Zy5nPWsrKzt3U2MoZyxiLGMsZCk7aS5jLmxlbmd0aD0wfX1xPWEuYy5sZW5ndGgrMTtmb3IobT1uZXcgQW5iKGEpO20uYTxtLmMuYy5sZW5ndGg7KXtsPVJEKHluYihtKSwxMTgpO2wuZzxmJiYobC5nPWwuZytxKX19XG5mdW5jdGlvbiBGSmMoYSxiLGMpe3ZhciBkLGUsZixnO3RoaXMuaj1hO3RoaXMuZT1jMWIoYSk7dGhpcy5vPXRoaXMuai5lO3RoaXMuaT0hIXRoaXMubzt0aGlzLnA9dGhpcy5pP1JEKFZtYihjLFkyYih0aGlzLm8pLnApLDIxOSk6bnVsbDtlPVJEKG1RYihhLChZd2MoKSxrd2MpKSwyMSk7dGhpcy5nPWUuSGMoKG92YygpLGh2YykpO3RoaXMuYj1uZXcgYm5iO3RoaXMuZD1uZXcgUkxjKHRoaXMuZSk7Zz1SRChtUWIodGhpcy5qLEx3YyksMjM0KTt0aGlzLnE9V0pjKGIsZyx0aGlzLmUpO3RoaXMuaz1uZXcgX0tjKHRoaXMpO2Y9ZHYoY0QoV0MoUVksMSkscnZlLDIzMCwwLFt0aGlzLHRoaXMuZCx0aGlzLmssdGhpcy5xXSkpO2lmKGI9PShSS2MoKSxPS2MpJiYhSGViKFREKG1RYihhLCh5Q2MoKSxlQWMpKSkpKXtkPW5ldyBxSmModGhpcy5lKTtaRWIoZi5jLGQpO3RoaXMuYz1uZXcgVUljKGQsZyxSRCh0aGlzLnEsNDEzKSl9ZWxzZSBpZihiPT1PS2MmJkhlYihURChtUWIoYSwoeUNjKCksZUFjKSkpKSl7ZD1uZXcgcUpjKHRoaXMuZSk7WkViKGYuYyxkKTt0aGlzLmM9bmV3IHZMYyhkLGcsUkQodGhpcy5xLDQxMykpfWVsc2V7dGhpcy5jPW5ldyBzbWMoYix0aGlzKX1SbWIoZix0aGlzLmMpO3lOYyhmLHRoaXMuZSk7dGhpcy5zPSRLYyh0aGlzLmspfVxuZnVuY3Rpb24gejBiKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxuLG8scCxxO2Y9bmV3IGJuYjtmb3Ioaj1uZXcgQW5iKGQpO2ouYTxqLmMuYy5sZW5ndGg7KXtoPVJEKHluYihqKSw0NTMpO2c9bnVsbDtpZihoLmY9PShCRWMoKSx6RWMpKXtmb3Iobz1uZXcgQW5iKGguZSk7by5hPG8uYy5jLmxlbmd0aDspe249UkQoeW5iKG8pLDE4KTtxPW4uZC5pO2lmKFkyYihxKT09Yil7cTBiKGEsYixoLG4saC5iLG4uZCl9ZWxzZSBpZighY3x8bjJiKHEsYykpe3IwYihhLGIsaCxkLG4pfWVsc2V7bT13MGIoYSxiLGMsbixoLmIsekVjLGcpO20hPWcmJihaRWIoZi5jLG0pLHRydWUpO20uYyYmKGc9bSl9fX1lbHNle2ZvcihsPW5ldyBBbmIoaC5lKTtsLmE8bC5jLmMubGVuZ3RoOyl7az1SRCh5bmIobCksMTgpO3A9ay5jLmk7aWYoWTJiKHApPT1iKXtxMGIoYSxiLGgsayxrLmMsaC5iKX1lbHNlIGlmKCFjfHxuMmIocCxjKSl7Y29udGludWV9ZWxzZXttPXcwYihhLGIsYyxrLGguYix5RWMsZyk7bSE9ZyYmKFpFYihmLmMsbSksdHJ1ZSk7bS5jJiYoZz1tKX19fX1mb3IoaT1uZXcgQW5iKGYpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSw0NTMpO1dtYihiLmEsaC5hLDApIT0tMXx8Um1iKGIuYSxoLmEpO2guYyYmKFpFYihlLmMsaCksdHJ1ZSl9fVxuZnVuY3Rpb24gUVhiKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2I9MDtmb3IoZj1uZXcgQW5iKGEuYi5hKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZiksMTk0KTtkLmI9MDtkLmM9MH1QWGIoYSwwKTtPWGIoYSxhLmcpO3VZYihhLmMpO3lZYihhLmMpO2M9KENtZCgpLHltZCk7d1liKHFZYih2WWIod1liKHFZYih2WWIod1liKHZZYihhLmMsYykpLEZtZChjKSkpKSxjKSkpO3ZZYihhLmMseW1kKTtUWGIoYSxhLmcpO1VYYihhLDApO1ZYYihhLDApO1dYYihhLDEpO1BYYihhLDEpO09YYihhLGEuZCk7dVliKGEuYyk7Zm9yKGc9bmV3IEFuYihhLmIuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGcpLDE5NCk7Yis9JHduZC5NYXRoLmFicyhkLmMpfWZvcihoPW5ldyBBbmIoYS5iLmEpO2guYTxoLmMuYy5sZW5ndGg7KXtkPVJEKHluYihoKSwxOTQpO2QuYj0wO2QuYz0wfWM9Qm1kO3dZYihxWWIodlliKHdZYihxWWIodlliKHdZYih5WWIodlliKGEuYyxjKSkpLEZtZChjKSkpKSxjKSkpO3ZZYihhLmMseW1kKTtUWGIoYSxhLmQpO1VYYihhLDEpO1ZYYihhLDEpO1dYYihhLDApO3lZYihhLmMpO2ZvcihlPW5ldyBBbmIoYS5iLmEpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxOTQpO2IrPSR3bmQuTWF0aC5hYnMoZC5jKX1yZXR1cm4gYn1cbmZ1bmN0aW9uIEEwYihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscTtpZighSGViKFREKG1RYihjLCh5Q2MoKSxOQWMpKSkpKXtyZXR1cm59Zm9yKGg9bmV3IEFuYihjLmopO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMik7bT1zMmIoZy5nKTtmb3Ioaj1tLGs9MCxsPWoubGVuZ3RoO2s8bDsrK2spe2k9altrXTtmPWkuZC5pPT1jO2U9ZiYmSGViKFREKG1RYihpLE9BYykpKTtpZihlKXtvPWkuYztuPVJEKFdqYihhLmIsbyksMTApO2lmKCFuKXtuPWYyYihvLChCb2QoKSx6b2QpLG8uaiwtMSxudWxsLG51bGwsby5vLFJEKG1RYihiLHJBYyksODgpLGIpO3BRYihuLChZd2MoKSxBd2MpLG8pO1pqYihhLmIsbyxuKTtSbWIoYi5hLG4pfXE9aS5kO3A9UkQoV2piKGEuYixxKSwxMCk7aWYoIXApe3A9ZjJiKHEsKEJvZCgpLHpvZCkscS5qLDEsbnVsbCxudWxsLHEubyxSRChtUWIoYixyQWMpLDg4KSxiKTtwUWIocCwoWXdjKCksQXdjKSxxKTtaamIoYS5iLHEscCk7Um1iKGIuYSxwKX1kPXMwYihpKTtZMGIoZCxSRChWbWIobi5qLDApLDEyKSk7WjBiKGQsUkQoVm1iKHAuaiwwKSwxMikpO1JjKGEuYSxpLG5ldyBKMGIoZCxiLChCRWMoKSx6RWMpKSk7UkQobVFiKGIsKFl3YygpLGt3YykpLDIxKS5GYygob3ZjKCksaHZjKSl9fX19XG5mdW5jdGlvbiBPUWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtO2ZvcihlPW5ldyBBbmIoYS5hLmIpO2UuYTxlLmMuYy5sZW5ndGg7KXtjPVJEKHluYihlKSwzMCk7Zm9yKGk9bmV3IEFuYihjLmEpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxMCk7Yi5qW2gucF09aDtiLmlbaC5wXT1iLm89PShFUWMoKSxEUWMpP3B4ZTpveGV9fWFrYihhLmMpO2c9YS5hLmI7Yi5jPT0od1FjKCksdVFjKSYmKGc9aHYoZykpO3NSYyhhLmUsYixhLmIpO01uYihiLnAsbnVsbCk7Zm9yKGY9Zy5LYygpO2YuT2IoKTspe2M9UkQoZi5QYigpLDMwKTtqPWMuYTtiLm89PShFUWMoKSxEUWMpJiYoaj1odihqKSk7Zm9yKG09ai5LYygpO20uT2IoKTspe2w9UkQobS5QYigpLDEwKTtiLmdbbC5wXT09bCYmUFFjKGEsbCxiKX19UVFjKGEsYik7Zm9yKGQ9Zy5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDMwKTtmb3IobT1uZXcgQW5iKGMuYSk7bS5hPG0uYy5jLmxlbmd0aDspe2w9UkQoeW5iKG0pLDEwKTtiLnBbbC5wXT1iLnBbYi5nW2wucF0ucF07aWYobD09Yi5nW2wucF0pe2s9S2ZiKGIuaVtiLmpbbC5wXS5wXSk7KGIubz09KEVRYygpLERRYykmJms+cHhlfHxiLm89PUNRYyYmazxveGUpJiYoYi5wW2wucF09S2ZiKGIucFtsLnBdKStrKX19fWEuZS54ZygpfVxuZnVuY3Rpb24gbGRjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG87Yy5VZygnTGFiZWwgZHVtbXkgc3dpdGNoaW5nJywxKTtkPVJEKG1RYihiLCh5Q2MoKSx1QWMpKSwyMzIpOyRjYyhiKTtlPWlkYyhiLGQpO2EuYT0kQyhpRSx2eGUsMjgsYi5iLmMubGVuZ3RoLDE1LDEpO2ZvcihoPShidGMoKSxjRChXQyhaVywxKSxqd2UsMjMyLDAsW1pzYyxfc2MsWXNjLCRzYyxhdGMsWHNjXSkpLGs9MCxuPWgubGVuZ3RoO2s8bjsrK2spe2Y9aFtrXTtpZigoZj09YXRjfHxmPT1Yc2N8fGY9PSRzYykmJiFSRChDc2IoZS5hLGYpP2UuYltmLmddOm51bGwsMTUpLmRjKCkpe2JkYyhhLGIpO2JyZWFrfX1mb3IoaT1jRChXQyhaVywxKSxqd2UsMjMyLDAsW1pzYyxfc2MsWXNjLCRzYyxhdGMsWHNjXSksbD0wLG89aS5sZW5ndGg7bDxvOysrbCl7Zj1pW2xdO2Y9PWF0Y3x8Zj09WHNjfHxmPT0kc2N8fG1kYyhhLFJEKENzYihlLmEsZik/ZS5iW2YuZ106bnVsbCwxNSkpfWZvcihnPWNEKFdDKFpXLDEpLGp3ZSwyMzIsMCxbWnNjLF9zYyxZc2MsJHNjLGF0YyxYc2NdKSxqPTAsbT1nLmxlbmd0aDtqPG07KytqKXtmPWdbal07KGY9PWF0Y3x8Zj09WHNjfHxmPT0kc2MpJiZtZGMoYSxSRChDc2IoZS5hLGYpP2UuYltmLmddOm51bGwsMTUpKX1hLmE9bnVsbDtjLlZnKCl9XG5mdW5jdGlvbiB0dGUoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGs7aj1iO2lmKGouYj09bnVsbHx8YS5iPT1udWxsKXJldHVybjt2dGUoYSk7c3RlKGEpO3Z0ZShqKTtzdGUoaik7Yz0kQyhrRSxQd2UsMjgsYS5iLmxlbmd0aCtqLmIubGVuZ3RoLDE1LDEpO2s9MDtkPTA7Zz0wO3doaWxlKGQ8YS5iLmxlbmd0aCYmZzxqLmIubGVuZ3RoKXtlPWEuYltkXTtmPWEuYltkKzFdO2g9ai5iW2ddO2k9ai5iW2crMV07aWYoZjxoKXtkKz0yfWVsc2UgaWYoZj49aCYmZTw9aSl7aWYoaDw9ZSYmZjw9aSl7Y1trKytdPWU7Y1trKytdPWY7ZCs9Mn1lbHNlIGlmKGg8PWUpe2NbaysrXT1lO2NbaysrXT1pO2EuYltkXT1pKzE7Zys9Mn1lbHNlIGlmKGY8PWkpe2NbaysrXT1oO2NbaysrXT1mO2QrPTJ9ZWxzZXtjW2srK109aDtjW2srK109aTthLmJbZF09aSsxfX1lbHNlIGlmKGk8ZSl7Zys9Mn1lbHNle3Rocm93IEFkYihuZXcgeXooJ1Rva2VuI2ludGVyc2VjdFJhbmdlcygpOiBJbnRlcm5hbCBFcnJvcjogWycrYS5iW2RdKycsJythLmJbZCsxXSsnXSAmIFsnK2ouYltnXSsnLCcrai5iW2crMV0rJ10nKSl9fXdoaWxlKGQ8YS5iLmxlbmd0aCl7Y1trKytdPWEuYltkKytdO2NbaysrXT1hLmJbZCsrXX1hLmI9JEMoa0UsUHdlLDI4LGssMTUsMSk7aGliKGMsMCxhLmIsMCxrKX1cbmZ1bmN0aW9uIFJYYihhKXt2YXIgYixjLGQsZSxmLGcsaDtiPW5ldyBibmI7YS5nPW5ldyBibmI7YS5kPW5ldyBibmI7Zm9yKGc9bmV3IHZrYigobmV3IG1rYihhLmYuYikpLmEpO2cuYjspe2Y9dGtiKGcpO1JtYihiLFJEKFJEKGYubWQoKSw0MikuYiw4NikpO0RtZChSRChmLmxkKCksNjAyKS5BZigpKT9SbWIoYS5kLFJEKGYubWQoKSw0MikpOlJtYihhLmcsUkQoZi5tZCgpLDQyKSl9T1hiKGEsYS5kKTtPWGIoYSxhLmcpO2EuYz1uZXcgRVliKGEuYik7Q1liKGEuYywoelhiKCkseVhiKSk7VFhiKGEsYS5kKTtUWGIoYSxhLmcpO1RtYihiLGEuYy5hLmIpO2EuZT1uZXcgcmpkKG94ZSxveGUpO2EuYT1uZXcgcmpkKHB4ZSxweGUpO2ZvcihkPW5ldyBBbmIoYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDg2KTthLmUuYT0kd25kLk1hdGgubWluKGEuZS5hLGMuZy5jKTthLmUuYj0kd25kLk1hdGgubWluKGEuZS5iLGMuZy5kKTthLmEuYT0kd25kLk1hdGgubWF4KGEuYS5hLGMuZy5jK2MuZy5iKTthLmEuYj0kd25kLk1hdGgubWF4KGEuYS5iLGMuZy5kK2MuZy5hKX1CWWIoYS5jLG5ldyAkWGIpO2g9MDtkb3tlPVFYYihhKTsrK2h9d2hpbGUoKGg8Mnx8ZT5wd2UpJiZoPDEwKTtCWWIoYS5jLG5ldyBiWWIpO1FYYihhKTt4WWIoYS5jKTtBWGIoYS5mKX1cbmZ1bmN0aW9uIEI5YihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHA7Yz1SRChtUWIoYSwoeUNjKCksQkJjKSksMTAxKTtnPWEuZjtmPWEuZDtoPWcuYStmLmIrZi5jO2k9MC1mLmQtYS5jLmI7az1nLmIrZi5kK2YuYS1hLmMuYjtqPW5ldyBibmI7bD1uZXcgYm5iO2ZvcihlPW5ldyBBbmIoYik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDEwKTtzd2l0Y2goYy5nKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpyOWIoZCk7YnJlYWs7Y2FzZSA0Om09UkQobVFiKGQsekJjKSw4KTtuPSFtPzA6bS5hO2Qubi5hPWgqS2ZiKFVEKG1RYihkLChZd2MoKSxKd2MpKSkpLW47VTJiKGQsdHJ1ZSxmYWxzZSk7YnJlYWs7Y2FzZSA1Om89UkQobVFiKGQsekJjKSw4KTtwPSFvPzA6by5hO2Qubi5hPUtmYihVRChtUWIoZCwoWXdjKCksSndjKSkpKS1wO1UyYihkLHRydWUsZmFsc2UpO2cuYT0kd25kLk1hdGgubWF4KGcuYSxkLm4uYStkLm8uYS8yKTt9c3dpdGNoKFJEKG1RYihkLChZd2MoKSxod2MpKSw2NCkuZyl7Y2FzZSAxOmQubi5iPWk7WkViKGouYyxkKTticmVhaztjYXNlIDM6ZC5uLmI9aztaRWIobC5jLGQpO319c3dpdGNoKGMuZyl7Y2FzZSAxOmNhc2UgMjp0OWIoaixhKTt0OWIobCxhKTticmVhaztjYXNlIDM6ejliKGosYSk7ejliKGwsYSk7fX1cbmZ1bmN0aW9uICRKYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG07c3dpdGNoKGEuay5nKXtjYXNlIDE6ZD1SRChtUWIoYSwoWXdjKCksQXdjKSksMTgpO2M9UkQobVFiKGQsQndjKSw3NSk7IWM/KGM9bmV3IEVqZCk6SGViKFREKG1RYihkLE53YykpKSYmKGM9SWpkKGMpKTtqPVJEKG1RYihhLHZ3YyksMTIpO2lmKGope2s9eGpkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW2ouaS5uLGoubixqLmFdKSk7aWYoYjw9ay5hKXtyZXR1cm4gay5ifVB1YihjLGssYy5hLGMuYS5hKX1sPVJEKG1RYihhLHd3YyksMTIpO2lmKGwpe209eGpkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW2wuaS5uLGwubixsLmFdKSk7aWYobS5hPD1iKXtyZXR1cm4gbS5ifVB1YihjLG0sYy5jLmIsYy5jKX1pZihjLmI+PTIpe2k9U3ViKGMsMCk7Zz1SRChldmIoaSksOCk7aD1SRChldmIoaSksOCk7d2hpbGUoaC5hPGImJmkuYiE9aS5kLmMpe2c9aDtoPVJEKGV2YihpKSw4KX1yZXR1cm4gZy5iKyhiLWcuYSkvKGguYS1nLmEpKihoLmItZy5iKX1icmVhaztjYXNlIDM6Zj1SRChtUWIoUkQoVm1iKGEuaiwwKSwxMiksKFl3YygpLEF3YykpLDEyKTtlPWYuaTtzd2l0Y2goZi5qLmcpe2Nhc2UgMTpyZXR1cm4gZS5uLmI7Y2FzZSAzOnJldHVybiBlLm4uYitlLm8uYjt9fXJldHVybiBfMmIoYSkuYn1cbmZ1bmN0aW9uIEFrYyhhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsO2ZvcihnPW5ldyBBbmIoYS5kLmIpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwzMCk7Zm9yKGk9bmV3IEFuYihmLmEpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxMCk7aWYoSGViKFREKG1RYihoLCh5Q2MoKSxVemMpKSkpKXtpZighZ3IoVzJiKGgpKSl7ZD1SRChlcihXMmIoaCkpLDE4KTtrPWQuYy5pO2s9PWgmJihrPWQuZC5pKTtsPW5ldyBQdGQoayxvamQoYWpkKGgubiksay5uKSk7WmpiKGEuYixoLGwpO2NvbnRpbnVlfX1lPW5ldyBVaWQoaC5uLmEtaC5kLmIsaC5uLmItaC5kLmQsaC5vLmEraC5kLmIraC5kLmMsaC5vLmIraC5kLmQraC5kLmEpO2I9bUdiKHBHYihuR2Iob0diKG5ldyBxR2IsaCksZSksamtjKSxhLmEpO2dHYihoR2IoaUdiKG5ldyBqR2IsY0QoV0MoaE4sMSkscnZlLDYwLDAsW2JdKSksYiksYS5hKTtqPW5ldyBjSGI7WmpiKGEuZSxiLGopO2M9S3IobmV3IGlzKE1yKFoyYihoKS5hLktjKCksbmV3IGlyKSkpLUtyKG5ldyBpcyhNcihhM2IoaCkuYS5LYygpLG5ldyBpcikpKTtjPDA/YUhiKGosdHJ1ZSwoQ21kKCkseW1kKSk6Yz4wJiZhSGIoaix0cnVlLChDbWQoKSx6bWQpKTtoLms9PShyM2IoKSxtM2IpJiZiSGIoaik7WmpiKGEuZixoLGIpfX19XG5mdW5jdGlvbiBPVmMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdTtlPVJEKG1RYihhLChxJGMoKSxoJGMpKSwyNyk7aj1sdmU7az1sdmU7aD1xd2U7aT1xd2U7Zm9yKHQ9U3ViKGEuYiwwKTt0LmIhPXQuZC5jOyl7cj1SRChldmIodCksNDApO249ci5lO289ci5mO2o9JHduZC5NYXRoLm1pbihqLG4uYS1vLmEvMik7az0kd25kLk1hdGgubWluKGssbi5iLW8uYi8yKTtoPSR3bmQuTWF0aC5tYXgoaCxuLmErby5hLzIpO2k9JHduZC5NYXRoLm1heChpLG4uYitvLmIvMil9bT1SRChHeGQoZSwoaF9jKCksVCRjKSksMTA3KTtmb3Iocz1TdWIoYS5iLDApO3MuYiE9cy5kLmM7KXtyPVJEKGV2YihzKSw0MCk7bD1tUWIocixoJGMpO2lmKFpEKGwsMjA3KSl7Zj1SRChsLDI3KTtCeWQoZixyLmUuYSxyLmUuYik7enhkKGYscil9fWZvcihxPVN1YihhLmEsMCk7cS5iIT1xLmQuYzspe3A9UkQoZXZiKHEpLDY1KTtkPVJEKG1RYihwLGgkYyksNzQpO2lmKGQpe2I9cC5hO2M9SUdkKGQsdHJ1ZSx0cnVlKTtsc2QoYixjKX19dT1oLWorKG0uYittLmMpO2c9aS1rKyhtLmQrbS5hKTtIZWIoVEQoR3hkKGUsKHVtZCgpLG1sZCkpKSl8fEVzZChlLHUsZyxmYWxzZSxmYWxzZSk7SXhkKGUsSWtkLHUtKG0uYittLmMpKTtJeGQoZSxIa2QsZy0obS5kK20uYSkpfVxuZnVuY3Rpb24gV2VjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGw7aT10cnVlO2U9MDtqPWEuZ1tiLnBdO2s9Yi5vLmIrYS5vO2M9YS5kW2IucF1bMl07JG1iKGEuYixqLHNnYihSRChWbWIoYS5iLGopLDE3KS5hLTErYykpOyRtYihhLmMsaixLZmIoVUQoVm1iKGEuYyxqKSkpLWsrYyphLmYpOysrajtpZihqPj1hLmopeysrYS5qO1JtYihhLmIsc2diKDEpKTtSbWIoYS5jLGspfWVsc2V7ZD1hLmRbYi5wXVsxXTskbWIoYS5iLGosc2diKFJEKFZtYihhLmIsaiksMTcpLmErMS1kKSk7JG1iKGEuYyxqLEtmYihVRChWbWIoYS5jLGopKSkray1kKmEuZil9KGEucj09KGFFYygpLFZEYykmJihSRChWbWIoYS5iLGopLDE3KS5hPmEua3x8UkQoVm1iKGEuYixqLTEpLDE3KS5hPmEuayl8fGEucj09WURjJiYoS2ZiKFVEKFZtYihhLmMsaikpKT5hLm58fEtmYihVRChWbWIoYS5jLGotMSkpKT5hLm4pKSYmKGk9ZmFsc2UpO2ZvcihnPW5ldyBpcyhNcihaMmIoYikuYS5LYygpLG5ldyBpcikpO2dzKGcpOyl7Zj1SRChocyhnKSwxOCk7aD1mLmMuaTtpZihhLmdbaC5wXT09ail7bD1XZWMoYSxoKTtlPWUrUkQobC5hLDE3KS5hO2k9aSYmSGViKFREKGwuYikpfX1hLmdbYi5wXT1qO2U9ZSthLmRbYi5wXVswXTtyZXR1cm4gbmV3IFB0ZChzZ2IoZSksKEdlYigpLGk/dHJ1ZTpmYWxzZSkpfVxuZnVuY3Rpb24gY1hiKGEsYil7dmFyIGMsZCxlLGYsZztjPUtmYihVRChtUWIoYiwoeUNjKCksVEJjKSkpKTtjPDImJnBRYihiLFRCYywyKTtkPVJEKG1RYihiLHJBYyksODgpO2Q9PShDbWQoKSxBbWQpJiZwUWIoYixyQWMsaTJiKGIpKTtlPVJEKG1RYihiLE5CYyksMTcpO2UuYT09MD9wUWIoYiwoWXdjKCksTHdjKSxuZXcgT3diKTpwUWIoYiwoWXdjKCksTHdjKSxuZXcgUHdiKGUuYSkpO2Y9VEQobVFiKGIsZ0JjKSk7Zj09bnVsbCYmcFFiKGIsZ0JjLChHZWIoKSxkRShtUWIoYix5QWMpKT09PWRFKChZbWQoKSxVbWQpKT90cnVlOmZhbHNlKSk7RkRiKG5ldyBTRGIobnVsbCxuZXcgU3diKGIuYSwxNikpLG5ldyBmWGIoYSkpO0ZEYihFRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYi5iLDE2KSksbmV3IGhYYiksbmV3IGpYYihhKSk7Zz1uZXcgZ0ZjKGIpO3BRYihiLChZd2MoKSxRd2MpLGcpO1NlZChhLmEpO1ZlZChhLmEsKHNYYigpLG5YYiksUkQobVFiKGIscEFjKSwxODgpKTtWZWQoYS5hLG9YYixSRChtUWIoYiwkQWMpLDE4OCkpO1ZlZChhLmEscFhiLFJEKG1RYihiLG9BYyksMTg4KSk7VmVkKGEuYSxxWGIsUkQobVFiKGIsa0JjKSwxODgpKTtWZWQoYS5hLHJYYixLUmMoUkQobVFiKGIseUFjKSwyMjMpKSk7UGVkKGEuYSxiWGIoYikpO3BRYihiLEt3YyxRZWQoYS5hLGIpKX1cbmZ1bmN0aW9uIFNUYyhhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG0sbixvLHAscSxyO2w9bmV3IFRzYjtnPW5ldyBibmI7UVRjKGEsYyxhLmQuQWcoKSxnLGwpO1FUYyhhLGQsYS5kLkJnKCksZyxsKTthLmI9MC4yKihwPVJUYyhFRGIobmV3IFNEYihudWxsLG5ldyBTd2IoZywxNikpLG5ldyBYVGMpKSxxPVJUYyhFRGIobmV3IFNEYihudWxsLG5ldyBTd2IoZywxNikpLG5ldyBaVGMpKSwkd25kLk1hdGgubWluKHAscSkpO2Y9MDtmb3IoaD0wO2g8Zy5jLmxlbmd0aC0xO2grKyl7aT0odEZiKGgsZy5jLmxlbmd0aCksUkQoZy5jW2hdLDExOCkpO2ZvcihvPWgrMTtvPGcuYy5sZW5ndGg7bysrKXtmKz1QVGMoYSxpLCh0RmIobyxnLmMubGVuZ3RoKSxSRChnLmNbb10sMTE4KSkpfX1tPVJEKG1RYihiLChZd2MoKSxMd2MpKSwyMzQpO2Y+PTImJihyPXVTYyhnLHRydWUsbSksIWEuZSYmKGEuZT1uZXcgeFRjKGEpKSx0VGMoYS5lLHIsZyxhLmIpLHVuZGVmaW5lZCk7VVRjKGcsbSk7V1RjKGcpO249LTE7Zm9yKGs9bmV3IEFuYihnKTtrLmE8ay5jLmMubGVuZ3RoOyl7aj1SRCh5bmIoayksMTE4KTtpZigkd25kLk1hdGguYWJzKGoucy1qLmMpPFZ6ZSl7Y29udGludWV9bj0kd25kLk1hdGgubWF4KG4sai5vKTthLmQueWcoaixlLGEuYyl9YS5kLmEuYS4kYigpO3JldHVybiBuKzF9XG5mdW5jdGlvbiBzMGMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdTtsPVJEKEhyKChnPVN1YigobmV3IGRYYyhiKSkuYS5kLDApLG5ldyBnWGMoZykpKSw0MCk7bz1sP1JEKG1RYihsLChxJGMoKSxiJGMpKSw0MCk6bnVsbDtlPTE7d2hpbGUoISFsJiYhIW8pe2k9MDt1PTA7Yz1sO2Q9bztmb3IoaD0wO2g8ZTtoKyspe2M9X1djKGMpO2Q9X1djKGQpO3UrPUtmYihVRChtUWIoYywocSRjKCksZyRjKSkpKTtpKz1LZmIoVUQobVFiKGQsZyRjKSkpfXQ9S2ZiKFVEKG1RYihvLChxJGMoKSxqJGMpKSkpO3M9S2ZiKFVEKG1RYihsLGokYykpKTttPXUwYyhhLGwsbyk7bj10K2krYS5iK20tcy11O2lmKDA8bil7aj1iO2s9MDt3aGlsZSghIWomJmohPWQpeysraztqPVJEKG1RYihqLGMkYyksNDApfWlmKGope3I9bi9rO2o9Yjt3aGlsZShqIT1kKXtxPUtmYihVRChtUWIoaixqJGMpKSkrbjtwUWIoaixqJGMscSk7cD1LZmIoVUQobVFiKGosZyRjKSkpK247cFFiKGosZyRjLHApO24tPXI7aj1SRChtUWIoaixjJGMpLDQwKX19ZWxzZXtyZXR1cm59fSsrZTtsLmQuYj09MD8obD1rV2MobmV3IGRYYyhiKSxlKSk6KGw9UkQoSHIoKGY9U3ViKChuZXcgZFhjKGwpKS5hLmQsMCksbmV3IGdYYyhmKSkpLDQwKSk7bz1sP1JEKG1RYihsLGIkYyksNDApOm51bGx9fVxuZnVuY3Rpb24gTG1jKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3O2lmKG09YS5jW2JdLG49YS5jW2NdLChvPVJEKG1RYihtLChZd2MoKSxxd2MpKSwxNSksISFvJiZvLmdjKCkhPTAmJm8uSGMobikpfHwocD1tLmshPShyM2IoKSxvM2IpJiZuLmshPW8zYixxPVJEKG1RYihtLHB3YyksMTApLHI9UkQobVFiKG4scHdjKSwxMCkscz1xIT1yLHQ9ISFxJiZxIT1tfHwhIXImJnIhPW4sdT1NbWMobSwocXBkKCksWW9kKSksdj1NbWMobixucGQpLHQ9dHwoTW1jKG0sbnBkKXx8TW1jKG4sWW9kKSksdz10JiZzfHx1fHx2LHAmJncpfHxtLms9PShyM2IoKSxxM2IpJiZuLms9PXAzYnx8bi5rPT0ocjNiKCkscTNiKSYmbS5rPT1wM2Ipe3JldHVybiBmYWxzZX1rPWEuY1tiXTtmPWEuY1tjXTtlPWpNYyhhLmUsayxmLChxcGQoKSxwcGQpKTtpPWpNYyhhLmksayxmLFhvZCk7Q21jKGEuZixrLGYpO2o9bG1jKGEuYixrLGYpK1JEKGUuYSwxNykuYStSRChpLmEsMTcpLmErYS5mLmQ7aD1sbWMoYS5iLGYsaykrUkQoZS5iLDE3KS5hK1JEKGkuYiwxNykuYSthLmYuYjtpZihhLmEpe2w9UkQobVFiKGssQXdjKSwxMik7Zz1SRChtUWIoZixBd2MpLDEyKTtkPWhNYyhhLmcsbCxnKTtqKz1SRChkLmEsMTcpLmE7aCs9UkQoZC5iLDE3KS5hfXJldHVybiBqPmh9XG5mdW5jdGlvbiBJYWQoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzO2o9b3hlO2s9b3hlO2g9cHhlO2k9cHhlO2ZvcihtPW5ldyBBbmIoYi5pKTttLmE8bS5jLmMubGVuZ3RoOyl7bD1SRCh5bmIobSksNjgpO2U9UkQoUkQoV2piKGEuZyxsLmEpLDQyKS5iLDI3KTtCeWQoZSxsLmIuYyxsLmIuZCk7aj0kd25kLk1hdGgubWluKGosZS5pKTtrPSR3bmQuTWF0aC5taW4oayxlLmopO2g9JHduZC5NYXRoLm1heChoLGUuaStlLmcpO2k9JHduZC5NYXRoLm1heChpLGUuaitlLmYpfW49UkQoR3hkKGEuYywobmNkKCksZWNkKSksMTA3KTtFc2QoYS5jLGgtaisobi5iK24uYyksaS1rKyhuLmQrbi5hKSx0cnVlLHRydWUpO0lzZChhLmMsLWorbi5iLC1rK24uZCk7Zm9yKGQ9bmV3IGRNZCh1Q2QoYS5jKSk7ZC5lIT1kLmkuZ2MoKTspe2M9UkQoYk1kKGQpLDc0KTtnPUlHZChjLHRydWUsdHJ1ZSk7bz1KR2QoYyk7cT1MR2QoYyk7cD1uZXcgcmpkKG8uaStvLmcvMixvLmorby5mLzIpO2Y9bmV3IHJqZChxLmkrcS5nLzIscS5qK3EuZi8yKTtyPW9qZChuZXcgcmpkKGYuYSxmLmIpLHApO3dpZChyLG8uZyxvLmYpOyRpZChwLHIpO3M9b2pkKG5ldyByamQocC5hLHAuYiksZik7d2lkKHMscS5nLHEuZik7JGlkKGYscyk7TnpkKGcscC5hLHAuYik7R3pkKGcsZi5hLGYuYil9fVxuZnVuY3Rpb24gVGNjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG87Yi5VZygnTGFiZWwgZHVtbXkgcmVtb3ZhbCcsMSk7ZD1LZmIoVUQobVFiKGEsKHlDYygpLFZCYykpKSk7ZT1LZmIoVUQobVFiKGEsWkJjKSkpO2o9UkQobVFiKGEsckFjKSw4OCk7Zm9yKGk9bmV3IEFuYihhLmIpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwzMCk7bD1uZXcgSmtiKGguYSwwKTt3aGlsZShsLmI8bC5kLmdjKCkpe2s9KHNGYihsLmI8bC5kLmdjKCkpLFJEKGwuZC5YYihsLmM9bC5iKyspLDEwKSk7aWYoay5rPT0ocjNiKCksbjNiKSl7bT1SRChtUWIoaywoWXdjKCksQXdjKSksMTgpO289S2ZiKFVEKG1RYihtLEZBYykpKTtnPWRFKG1RYihrLHN3YykpPT09ZEUoKFBuZCgpLE1uZCkpO2M9bmV3IHNqZChrLm4pO2cmJihjLmIrPW8rZCk7Zj1uZXcgcmpkKGsuby5hLGsuby5iKyhrLms9PW4zYiYmIVFEYihDRGIoUkQobVFiKGssTXdjKSwxNSkuT2MoKSxuZXcgUEFiKG5ldyB4M2IpKSkuQmQoKHhEYigpLHdEYikpPzA6LW8tZCkpO249UkQobVFiKGssTXdjKSwxNSk7aj09KENtZCgpLEJtZCl8fGo9PXhtZD9TY2MobixjLGUsZixnLGopOlJjYyhuLGMsZSxmKTtUbWIobS5iLG4pO0hlYyhrLGRFKG1RYihhLHlBYykpPT09ZEUoKFltZCgpLFZtZCkpKTtDa2IobCl9fX1iLlZnKCl9XG5mdW5jdGlvbiBaQmQoYSl7aWYoYS5xKXJldHVybjthLnE9dHJ1ZTthLnA9akJkKGEsMCk7YS5hPWpCZChhLDEpO29CZChhLmEsMCk7YS5mPWpCZChhLDIpO29CZChhLmYsMSk7aUJkKGEuZiwyKTthLm49akJkKGEsMyk7aUJkKGEubiwzKTtpQmQoYS5uLDQpO2lCZChhLm4sNSk7aUJkKGEubiw2KTthLmc9akJkKGEsNCk7b0JkKGEuZyw3KTtpQmQoYS5nLDgpO2EuYz1qQmQoYSw1KTtvQmQoYS5jLDcpO29CZChhLmMsOCk7YS5pPWpCZChhLDYpO29CZChhLmksOSk7b0JkKGEuaSwxMCk7b0JkKGEuaSwxMSk7b0JkKGEuaSwxMik7aUJkKGEuaSwxMyk7YS5qPWpCZChhLDcpO29CZChhLmosOSk7YS5kPWpCZChhLDgpO29CZChhLmQsMyk7b0JkKGEuZCw0KTtvQmQoYS5kLDUpO29CZChhLmQsNik7aUJkKGEuZCw3KTtpQmQoYS5kLDgpO2lCZChhLmQsOSk7aUJkKGEuZCwxMCk7YS5iPWpCZChhLDkpO2lCZChhLmIsMCk7aUJkKGEuYiwxKTthLmU9akJkKGEsMTApO2lCZChhLmUsMSk7aUJkKGEuZSwyKTtpQmQoYS5lLDMpO2lCZChhLmUsNCk7b0JkKGEuZSw1KTtvQmQoYS5lLDYpO29CZChhLmUsNyk7b0JkKGEuZSw4KTtvQmQoYS5lLDkpO29CZChhLmUsMTApO2lCZChhLmUsMTEpO2Euaz1qQmQoYSwxMSk7aUJkKGEuaywwKTtpQmQoYS5rLDEpO2Eubz1rQmQoYSwxMik7YS5zPWtCZChhLDEzKX1cbmZ1bmN0aW9uIENYYihhLGIpe2IuZGMoKSYmSlliKGEuaix0cnVlLHRydWUsdHJ1ZSx0cnVlKTtwYihiLChxcGQoKSxjcGQpKSYmSlliKGEuaix0cnVlLHRydWUsdHJ1ZSxmYWxzZSk7cGIoYixab2QpJiZKWWIoYS5qLGZhbHNlLHRydWUsdHJ1ZSx0cnVlKTtwYihiLGtwZCkmJkpZYihhLmosdHJ1ZSx0cnVlLGZhbHNlLHRydWUpO3BiKGIsbXBkKSYmSlliKGEuaix0cnVlLGZhbHNlLHRydWUsdHJ1ZSk7cGIoYixkcGQpJiZKWWIoYS5qLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSk7cGIoYiwkb2QpJiZKWWIoYS5qLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSk7cGIoYixscGQpJiZKWWIoYS5qLHRydWUsZmFsc2UsZmFsc2UsdHJ1ZSk7cGIoYixqcGQpJiZKWWIoYS5qLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7cGIoYixocGQpJiZKWWIoYS5qLHRydWUsdHJ1ZSx0cnVlLHRydWUpO3BiKGIsYXBkKSYmSlliKGEuaix0cnVlLHRydWUsdHJ1ZSx0cnVlKTtwYihiLGhwZCkmJkpZYihhLmosdHJ1ZSx0cnVlLHRydWUsdHJ1ZSk7cGIoYixfb2QpJiZKWWIoYS5qLHRydWUsdHJ1ZSx0cnVlLHRydWUpO3BiKGIsaXBkKSYmSlliKGEuaix0cnVlLHRydWUsdHJ1ZSx0cnVlKTtwYihiLGdwZCkmJkpZYihhLmosdHJ1ZSx0cnVlLHRydWUsdHJ1ZSk7cGIoYixmcGQpJiZKWWIoYS5qLHRydWUsdHJ1ZSx0cnVlLHRydWUpfVxuZnVuY3Rpb24gdEFkKGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG07aWYoYi5hIT1jLmprKCkpe3Rocm93IEFkYihuZXcgYWdiKFZIZStjLnhlKCkrV0hlKSl9ZT1PZWUoKGxrZSgpLGprZSksYykuSmwoKTtpZihlKXtyZXR1cm4gZS5qaygpLndpKCkucmkoZSxkKX1oPU9lZShqa2UsYykuTGwoKTtpZihoKXtpZihkPT1udWxsKXtyZXR1cm4gbnVsbH1pPVJEKGQsMTUpO2lmKGkuZGMoKSl7cmV0dXJuICcnfW09bmV3IFFoYjtmb3IoZz1pLktjKCk7Zy5PYigpOyl7Zj1nLlBiKCk7TmhiKG0saC5qaygpLndpKCkucmkoaCxmKSk7bS5hKz0nICd9cmV0dXJuIHFlYihtLG0uYS5sZW5ndGgtMSl9bD1PZWUoamtlLGMpLk1sKCk7aWYoIWwuZGMoKSl7Zm9yKGs9bC5LYygpO2suT2IoKTspe2o9UkQoay5QYigpLDE1Nik7aWYoai5mayhkKSl7dHJ5e209ai5qaygpLndpKCkucmkoaixkKTtpZihtIT1udWxsKXtyZXR1cm4gbX19Y2F0Y2goYSl7YT16ZGIoYSk7aWYoIVpEKGEsMTAzKSl0aHJvdyBBZGIoYSl9fX10aHJvdyBBZGIobmV3IGFnYihcIkludmFsaWQgdmFsdWU6ICdcIitkK1wiJyBmb3IgZGF0YXR5cGUgOlwiK2MueGUoKSkpfVJEKGMsODQ3KS5vaygpO3JldHVybiBkPT1udWxsP251bGw6WkQoZCwxODApPycnK1JEKGQsMTgwKS5hOnJiKGQpPT1xSz9hMmQobkFkWzBdLFJEKGQsMjA2KSk6amViKGQpfVxuZnVuY3Rpb24gWlVjKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrO2o9bmV3IFl1YjtoPW5ldyBZdWI7Zm9yKGY9bmV3IEFuYihhKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZiksMTMxKTtkLnY9MDtkLm49ZC5pLmMubGVuZ3RoO2QudT1kLnQuYy5sZW5ndGg7ZC5uPT0wJiYoUHViKGosZCxqLmMuYixqLmMpLHRydWUpO2QudT09MCYmZC5yLmEuZ2MoKT09MCYmKFB1YihoLGQsaC5jLmIsaC5jKSx0cnVlKX1nPS0xO3doaWxlKGouYiE9MCl7ZD1SRChrdShqLDApLDEzMSk7Zm9yKGM9bmV3IEFuYihkLnQpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwyNzQpO2s9Yi5iO2sudj0kd25kLk1hdGgubWF4KGsudixkLnYrMSk7Zz0kd25kLk1hdGgubWF4KGcsay52KTstLWsubjtrLm49PTAmJihQdWIoaixrLGouYy5iLGouYyksdHJ1ZSl9fWlmKGc+LTEpe2ZvcihlPVN1YihoLDApO2UuYiE9ZS5kLmM7KXtkPVJEKGV2YihlKSwxMzEpO2Qudj1nfXdoaWxlKGguYiE9MCl7ZD1SRChrdShoLDApLDEzMSk7Zm9yKGM9bmV3IEFuYihkLmkpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwyNzQpO2k9Yi5hO2lmKGkuci5hLmdjKCkhPTApe2NvbnRpbnVlfWkudj0kd25kLk1hdGgubWluKGkudixkLnYtMSk7LS1pLnU7aS51PT0wJiYoUHViKGgsaSxoLmMuYixoLmMpLHRydWUpfX19fVxuZnVuY3Rpb24gV1RjKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrO2o9bmV3IGJuYjtoPW5ldyBibmI7Zm9yKGc9bmV3IEFuYihhKTtnLmE8Zy5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZyksMTE4KTtQU2MoZSxlLmYuYy5sZW5ndGgpO1FTYyhlLGUuay5jLmxlbmd0aCk7ZS5kPT0wJiYoWkViKGouYyxlKSx0cnVlKTtlLmk9PTAmJmUuZS5iPT0wJiYoWkViKGguYyxlKSx0cnVlKX1kPS0xO3doaWxlKGouYy5sZW5ndGghPTApe2U9UkQoWG1iKGosMCksMTE4KTtmb3IoYz1uZXcgQW5iKGUuayk7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDEzMik7az1iLmI7UlNjKGssJHduZC5NYXRoLm1heChrLm8sZS5vKzEpKTtkPSR3bmQuTWF0aC5tYXgoZCxrLm8pO1BTYyhrLGsuZC0xKTtrLmQ9PTAmJihaRWIoai5jLGspLHRydWUpfX1pZihkPi0xKXtmb3IoZj1uZXcgQW5iKGgpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxMTgpO2Uubz1kfXdoaWxlKGguYy5sZW5ndGghPTApe2U9UkQoWG1iKGgsMCksMTE4KTtmb3IoYz1uZXcgQW5iKGUuZik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDEzMik7aT1iLmE7aWYoaS5lLmI+MCl7Y29udGludWV9UlNjKGksJHduZC5NYXRoLm1pbihpLm8sZS5vLTEpKTtRU2MoaSxpLmktMSk7aS5pPT0wJiYoWkViKGguYyxpKSx0cnVlKX19fX1cbmZ1bmN0aW9uIExpZChhLGIsYyxkLGUpe3ZhciBmLGcsaCxpO2k9b3hlO2c9ZmFsc2U7aD1HaWQoYSxvamQobmV3IHJqZChiLmEsYi5iKSxhKSwkaWQobmV3IHJqZChjLmEsYy5iKSxlKSxvamQobmV3IHJqZChkLmEsZC5iKSxjKSk7Zj0hIWgmJiEoJHduZC5NYXRoLmFicyhoLmEtYS5hKTw9SUdlJiYkd25kLk1hdGguYWJzKGguYi1hLmIpPD1JR2V8fCR3bmQuTWF0aC5hYnMoaC5hLWIuYSk8PUlHZSYmJHduZC5NYXRoLmFicyhoLmItYi5iKTw9SUdlKTtoPUdpZChhLG9qZChuZXcgcmpkKGIuYSxiLmIpLGEpLGMsZSk7ISFoJiYoKCR3bmQuTWF0aC5hYnMoaC5hLWEuYSk8PUlHZSYmJHduZC5NYXRoLmFicyhoLmItYS5iKTw9SUdlKT09KCR3bmQuTWF0aC5hYnMoaC5hLWIuYSk8PUlHZSYmJHduZC5NYXRoLmFicyhoLmItYi5iKTw9SUdlKXx8Zj8oaT0kd25kLk1hdGgubWluKGksZWpkKG9qZChoLGMpKSkpOihnPXRydWUpKTtoPUdpZChhLG9qZChuZXcgcmpkKGIuYSxiLmIpLGEpLGQsZSk7ISFoJiYoZ3x8KCR3bmQuTWF0aC5hYnMoaC5hLWEuYSk8PUlHZSYmJHduZC5NYXRoLmFicyhoLmItYS5iKTw9SUdlKT09KCR3bmQuTWF0aC5hYnMoaC5hLWIuYSk8PUlHZSYmJHduZC5NYXRoLmFicyhoLmItYi5iKTw9SUdlKXx8ZikmJihpPSR3bmQuTWF0aC5taW4oaSxlamQob2pkKGgsZCkpKSk7cmV0dXJuIGl9XG5mdW5jdGlvbiBlV2IoYSl7Q2dkKGEsbmV3IFBmZChXZmQoJGZkKFhmZChaZmQoWWZkKG5ldyBhZ2QsQUFlKSxCQWUpLFwiTWluaW1pemVzIHRoZSBzdHJlc3Mgd2l0aGluIGEgbGF5b3V0IHVzaW5nIHN0cmVzcyBtYWpvcml6YXRpb24uIFN0cmVzcyBleGlzdHMgaWYgdGhlIGV1Y2xpZGVhbiBkaXN0YW5jZSBiZXR3ZWVuIGEgcGFpciBvZiBub2RlcyBkb2Vzbid0IG1hdGNoIHRoZWlyIGdyYXBoIHRoZW9yZXRpYyBkaXN0YW5jZSwgdGhhdCBpcywgdGhlIHNob3J0ZXN0IHBhdGggYmV0d2VlbiB0aGUgdHdvIG5vZGVzLiBUaGUgbWV0aG9kIGFsbG93cyB0byBzcGVjaWZ5IGluZGl2aWR1YWwgZWRnZSBsZW5ndGhzLlwiKSxuZXcgaFdiKSxaemUpKSk7QWdkKGEsQUFlLGRBZSxpR2QoWFZiKSk7QWdkKGEsQUFlLGZBZSwoR2ViKCksdHJ1ZSkpO0FnZChhLEFBZSxqQWUsaUdkKCRWYikpO0FnZChhLEFBZSxDQWUsaUdkKF9WYikpO0FnZChhLEFBZSxpQWUsaUdkKGFXYikpO0FnZChhLEFBZSxrQWUsaUdkKFpWYikpO0FnZChhLEFBZSxnQWUsaUdkKGJXYikpO0FnZChhLEFBZSxsQWUsaUdkKGNXYikpO0FnZChhLEFBZSx2QWUsaUdkKFdWYikpO0FnZChhLEFBZSx4QWUsaUdkKFVWYikpO0FnZChhLEFBZSx5QWUsaUdkKFZWYikpO0FnZChhLEFBZSx6QWUsaUdkKFlWYikpO0FnZChhLEFBZSx3QWUsaUdkKFRWYikpfVxuZnVuY3Rpb24ga0pjKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk7Yj1udWxsO2ZvcihkPW5ldyBBbmIoYSk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDIzOSk7S2ZiKHBKYyhjLmcsYy5kWzBdKS5hKTtjLmI9bnVsbDtpZighIWMuZSYmYy5lLmdjKCk+MCYmYy5jPT0wKXshYiYmKGI9bmV3IGJuYik7WkViKGIuYyxjKX19aWYoYil7d2hpbGUoYi5jLmxlbmd0aCE9MCl7Yz1SRChYbWIoYiwwKSwyMzkpO2lmKCEhYy5iJiZjLmIuYy5sZW5ndGg+MCl7Zm9yKGY9KCFjLmImJihjLmI9bmV3IGJuYiksbmV3IEFuYihjLmIpKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMjM5KTtpZihNZmIocEpjKGUuZyxlLmRbMF0pLmEpPT1NZmIocEpjKGMuZyxjLmRbMF0pLmEpKXtpZihXbWIoYSxlLDApPldtYihhLGMsMCkpe3JldHVybiBuZXcgUHRkKGUsYyl9fWVsc2UgaWYoS2ZiKHBKYyhlLmcsZS5kWzBdKS5hKT5LZmIocEpjKGMuZyxjLmRbMF0pLmEpKXtyZXR1cm4gbmV3IFB0ZChlLGMpfX19Zm9yKGg9KCFjLmUmJihjLmU9bmV3IGJuYiksYy5lKS5LYygpO2guT2IoKTspe2c9UkQoaC5QYigpLDIzOSk7aT0oIWcuYiYmKGcuYj1uZXcgYm5iKSxnLmIpO3dGYigwLGkuYy5sZW5ndGgpO1hFYihpLmMsMCxjKTtnLmM9PWkuYy5sZW5ndGgmJihaRWIoYi5jLGcpLHRydWUpfX19cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBfSmMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscjtiLlVnKCdJbnRlcmFjdGl2ZSBjcm9zc2luZyBtaW5pbWl6YXRpb24nLDEpO2c9MDtmb3IoZj1uZXcgQW5iKGEuYik7Zi5hPGYuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGYpLDMwKTtkLnA9ZysrfW09YzFiKGEpO3E9bmV3IElMYyhtLmxlbmd0aCk7eU5jKG5ldyBtb2IoY0QoV0MoUVksMSkscnZlLDIzMCwwLFtxXSkpLG0pO3A9MDtnPTA7Zm9yKGU9bmV3IEFuYihhLmIpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwzMCk7Yz0wO2w9MDtmb3Ioaz1uZXcgQW5iKGQuYSk7ay5hPGsuYy5jLmxlbmd0aDspe2k9UkQoeW5iKGspLDEwKTtpZihpLm4uYT4wKXtjKz1pLm4uYStpLm8uYS8yOysrbH1mb3Iobz1uZXcgQW5iKGkuaik7by5hPG8uYy5jLmxlbmd0aDspe249UkQoeW5iKG8pLDEyKTtuLnA9cCsrfX1sPjAmJihjLz1sKTtyPSRDKGlFLHZ4ZSwyOCxkLmEuYy5sZW5ndGgsMTUsMSk7aD0wO2ZvcihqPW5ldyBBbmIoZC5hKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksMTApO2kucD1oKys7cltpLnBdPSRKYyhpLGMpO2kuaz09KHIzYigpLG8zYikmJnBRYihpLChZd2MoKSxDd2MpLHJbaS5wXSl9eW9iKCk7X21iKGQuYSxuZXcgZUtjKHIpKTt3SWMocSxtLGcsdHJ1ZSk7KytnfWIuVmcoKX1cbmZ1bmN0aW9uIHd0ZShhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztpZihiLmU9PTUpe3R0ZShhLGIpO3JldHVybn1qPWI7aWYoai5iPT1udWxsfHxhLmI9PW51bGwpcmV0dXJuO3Z0ZShhKTtzdGUoYSk7dnRlKGopO3N0ZShqKTtjPSRDKGtFLFB3ZSwyOCxhLmIubGVuZ3RoK2ouYi5sZW5ndGgsMTUsMSk7az0wO2Q9MDtnPTA7d2hpbGUoZDxhLmIubGVuZ3RoJiZnPGouYi5sZW5ndGgpe2U9YS5iW2RdO2Y9YS5iW2QrMV07aD1qLmJbZ107aT1qLmJbZysxXTtpZihmPGgpe2NbaysrXT1hLmJbZCsrXTtjW2srK109YS5iW2QrK119ZWxzZSBpZihmPj1oJiZlPD1pKXtpZihoPD1lJiZmPD1pKXtkKz0yfWVsc2UgaWYoaDw9ZSl7YS5iW2RdPWkrMTtnKz0yfWVsc2UgaWYoZjw9aSl7Y1trKytdPWU7Y1trKytdPWgtMTtkKz0yfWVsc2V7Y1trKytdPWU7Y1trKytdPWgtMTthLmJbZF09aSsxO2crPTJ9fWVsc2UgaWYoaTxlKXtnKz0yfWVsc2V7dGhyb3cgQWRiKG5ldyB5eignVG9rZW4jc3VidHJhY3RSYW5nZXMoKTogSW50ZXJuYWwgRXJyb3I6IFsnK2EuYltkXSsnLCcrYS5iW2QrMV0rJ10gLSBbJytqLmJbZ10rJywnK2ouYltnKzFdKyddJykpfX13aGlsZShkPGEuYi5sZW5ndGgpe2NbaysrXT1hLmJbZCsrXTtjW2srK109YS5iW2QrK119YS5iPSRDKGtFLFB3ZSwyOCxrLDE1LDEpO2hpYihjLDAsYS5iLDAsayl9XG5mdW5jdGlvbiBvVGIoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQ7aD1JR2QoYixmYWxzZSxmYWxzZSk7cj1zc2QoaCk7ZCYmKHI9SWpkKHIpKTt0PUtmYihVRChHeGQoYiwodFNiKCksbVNiKSkpKTtxPShzRmIoci5iIT0wKSxSRChyLmEuYS5jLDgpKTtsPVJEKGp1KHIsMSksOCk7aWYoci5iPjIpe2s9bmV3IGJuYjtUbWIoayxuZXcgUmtiKHIsMSxyLmIpKTtmPWpUYihrLHQrYS5hKTtzPW5ldyBPUmIoZik7a1FiKHMsYik7WkViKGMuYyxzKX1lbHNle2Q/KHM9UkQoV2piKGEuYixKR2QoYikpLDI3MikpOihzPVJEKFdqYihhLmIsTEdkKGIpKSwyNzIpKX1pPUpHZChiKTtkJiYoaT1MR2QoYikpO2c9cVRiKHEsaSk7aj10K2EuYTtpZihnLmEpe2orPSR3bmQuTWF0aC5hYnMocS5iLWwuYik7cD1uZXcgcmpkKGwuYSwobC5iK3EuYikvMil9ZWxzZXtqKz0kd25kLk1hdGguYWJzKHEuYS1sLmEpO3A9bmV3IHJqZCgobC5hK3EuYSkvMixsLmIpfWQ/WmpiKGEuZCxiLG5ldyBRUmIocyxnLHAsaikpOlpqYihhLmMsYixuZXcgUVJiKHMsZyxwLGopKTtaamIoYS5iLGIscyk7bz0oIWIubiYmKGIubj1uZXcgQzVkKEk0LGIsMSw3KSksYi5uKTtmb3Iobj1uZXcgZE1kKG8pO24uZSE9bi5pLmdjKCk7KXttPVJEKGJNZChuKSwxMzUpO2U9blRiKGEsbSx0cnVlLDAsMCk7WkViKGMuYyxlKX19XG5mdW5jdGlvbiBzTWIoYSl7dmFyIGIsYyxkLGUsZixnLGg7aWYoYS5BLmRjKCkpe3JldHVybn1pZihhLkEuSGMoKFFwZCgpLE9wZCkpKXtSRChWcmIoYS5iLChxcGQoKSxZb2QpKSwxMjcpLms9dHJ1ZTtSRChWcmIoYS5iLG5wZCksMTI3KS5rPXRydWU7Yj1hLnEhPShCb2QoKSx4b2QpJiZhLnEhPXdvZDtRSmIoUkQoVnJiKGEuYixYb2QpLDEyNyksYik7UUpiKFJEKFZyYihhLmIscHBkKSwxMjcpLGIpO1FKYihhLmcsYik7aWYoYS5BLkhjKFBwZCkpe1JEKFZyYihhLmIsWW9kKSwxMjcpLmo9dHJ1ZTtSRChWcmIoYS5iLG5wZCksMTI3KS5qPXRydWU7UkQoVnJiKGEuYixYb2QpLDEyNykuaz10cnVlO1JEKFZyYihhLmIscHBkKSwxMjcpLms9dHJ1ZTthLmcuaz10cnVlfX1pZihhLkEuSGMoTnBkKSl7YS5hLmo9dHJ1ZTthLmEuaz10cnVlO2EuZy5qPXRydWU7YS5nLms9dHJ1ZTtoPWEuQi5IYygoZHFkKCksX3BkKSk7Zm9yKGU9bk1iKCksZj0wLGc9ZS5sZW5ndGg7ZjxnOysrZil7ZD1lW2ZdO2M9UkQoVnJiKGEuaSxkKSwzMTQpO2lmKGMpe2lmKGpNYihkKSl7Yy5qPXRydWU7Yy5rPXRydWV9ZWxzZXtjLmo9IWg7Yy5rPSFofX19fWlmKGEuQS5IYyhNcGQpJiZhLkIuSGMoKGRxZCgpLCRwZCkpKXthLmcuaj10cnVlO2EuZy5qPXRydWU7aWYoIWEuYS5qKXthLmEuaj10cnVlO2EuYS5rPXRydWU7YS5hLmU9dHJ1ZX19fVxuZnVuY3Rpb24gZU9jKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHI7Zm9yKGQ9bmV3IEFuYihhLmUuYik7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDMwKTtmb3IoZj1uZXcgQW5iKGMuYSk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDEwKTtuPWEuaVtlLnBdO2o9bi5hLmU7aT1uLmQuZTtlLm4uYj1qO3I9aS1qLWUuby5iO2I9Qk9jKGUpO209KHdEYygpLCghZS5xPyh5b2IoKSx5b2IoKSx3b2IpOmUucSkuX2IoKHlDYygpLGlCYykpPyhsPVJEKG1RYihlLGlCYyksMjAzKSk6KGw9UkQobVFiKFkyYihlKSxqQmMpLDIwMykpLGwpO2ImJihtPT10RGN8fG09PXNEYykmJihlLm8uYis9cik7aWYoYiYmKG09PXZEY3x8bT09dERjfHxtPT1zRGMpKXtmb3IocD1uZXcgQW5iKGUuaik7cC5hPHAuYy5jLmxlbmd0aDspe289UkQoeW5iKHApLDEyKTtpZigocXBkKCksYXBkKS5IYyhvLmopKXtrPVJEKFdqYihhLmssbyksMTI1KTtvLm4uYj1rLmUtan19Zm9yKGg9bmV3IEFuYihlLmIpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSw3Mik7cT1SRChtUWIoZSxkQmMpLDIxKTtxLkhjKChkb2QoKSxhb2QpKT8oZy5uLmIrPXIpOnEuSGMoYm9kKSYmKGcubi5iKz1yLzIpfShtPT10RGN8fG09PXNEYykmJmIzYihlLChxcGQoKSxucGQpKS5KYyhuZXcgeVBjKHIpKX19fX1cbmZ1bmN0aW9uIHFPYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG07aj1uZXcgYm5iO2ZvcihpPW5ldyBBbmIoYi5hKTtpLmE8aS5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaSksMTApO2ZvcihtPWIzYihnLChxcGQoKSxYb2QpKS5LYygpO20uT2IoKTspe2w9UkQobS5QYigpLDEyKTtmb3IoZT1uZXcgQW5iKGwuZyk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDE4KTtpZighVzBiKGQpJiZkLmMuaS5jPT1kLmQuaS5jfHxXMGIoZCl8fGQuZC5pLmMhPWMpe2NvbnRpbnVlfVpFYihqLmMsZCl9fX1mb3IoaD1odihjLmEpLktjKCk7aC5PYigpOyl7Zz1SRChoLlBiKCksMTApO2ZvcihtPWIzYihnLChxcGQoKSxwcGQpKS5LYygpO20uT2IoKTspe2w9UkQobS5QYigpLDEyKTtmb3IoZT1uZXcgQW5iKGwuZSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDE4KTtpZighVzBiKGQpJiZkLmMuaS5jPT1kLmQuaS5jfHxXMGIoZCl8fGQuYy5pLmMhPWIpe2NvbnRpbnVlfWlmKGouYy5sZW5ndGghPTApe2s9bmV3IEprYihqLGouYy5sZW5ndGgpO2Y9KHNGYihrLmI+MCksUkQoay5hLlhiKGsuYz0tLWsuYiksMTgpKTt3aGlsZShmIT1kJiZrLmI+MCl7YS5hW2YucF09dHJ1ZTthLmFbZC5wXT10cnVlO2Y9KHNGYihrLmI+MCksUkQoay5hLlhiKGsuYz0tLWsuYiksMTgpKX1rLmI+MCYmQ2tiKGspfX19fX1cbmZ1bmN0aW9uIFp5YihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbjtpZighYS5iKXtyZXR1cm4gZmFsc2V9Zz1udWxsO209bnVsbDtpPW5ldyBGemIobnVsbCxudWxsKTtlPTE7aS5hWzFdPWEuYjtsPWk7d2hpbGUobC5hW2VdKXtqPWU7aD1tO209bDtsPWwuYVtlXTtkPWEuYS5OZShiLGwuZCk7ZT1kPDA/MDoxO2Q9PTAmJighYy5jfHxGdmIobC5lLGMuZCkpJiYoZz1sKTtpZighKCEhbCYmbC5iKSYmIVZ5YihsLmFbZV0pKXtpZihWeWIobC5hWzEtZV0pKXttPW0uYVtqXT1hemIobCxlKX1lbHNlIGlmKCFWeWIobC5hWzEtZV0pKXtuPW0uYVsxLWpdO2lmKG4pe2lmKCFWeWIobi5hWzEtal0pJiYhVnliKG4uYVtqXSkpe20uYj1mYWxzZTtuLmI9dHJ1ZTtsLmI9dHJ1ZX1lbHNle2Y9aC5hWzFdPT1tPzE6MDtWeWIobi5hW2pdKT8oaC5hW2ZdPV95YihtLGopKTpWeWIobi5hWzEtal0pJiYoaC5hW2ZdPWF6YihtLGopKTtsLmI9aC5hW2ZdLmI9dHJ1ZTtoLmFbZl0uYVswXS5iPWZhbHNlO2guYVtmXS5hWzFdLmI9ZmFsc2V9fX19fWlmKGcpe2MuYj10cnVlO2MuZD1nLmU7aWYobCE9Zyl7az1uZXcgRnpiKGwuZCxsLmUpOyR5YihhLGksZyxrKTttPT1nJiYobT1rKX1tLmFbbS5hWzFdPT1sPzE6MF09bC5hWyFsLmFbMF0/MTowXTstLWEuY31hLmI9aS5hWzFdOyEhYS5iJiYoYS5iLmI9ZmFsc2UpO3JldHVybiBjLmJ9XG5mdW5jdGlvbiBJbGMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtO2ZvcihlPW5ldyBBbmIoYS5hLmEuYik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDYwKTtmb3IoaT1kLmMuS2MoKTtpLk9iKCk7KXtoPVJEKGkuUGIoKSw2MCk7aWYoZC5hPT1oLmEpe2NvbnRpbnVlfURtZChhLmEuZCk/KGw9YS5hLmcuZmYoZCxoKSk6KGw9YS5hLmcuZ2YoZCxoKSk7Zj1kLmIuYStkLmQuYitsLWguYi5hO2Y9JHduZC5NYXRoLmNlaWwoZik7Zj0kd25kLk1hdGgubWF4KDAsZik7aWYoX2pjKGQsaCkpe2c9ZUpiKG5ldyBnSmIsYS5kKTtqPWVFKCR3bmQuTWF0aC5jZWlsKGguYi5hLWQuYi5hKSk7Yj1qLShoLmIuYS1kLmIuYSk7az0kamMoZCkuYTtjPWQ7aWYoIWspe2s9JGpjKGgpLmE7Yj0tYjtjPWh9aWYoayl7Yy5iLmEtPWI7ay5uLmEtPWJ9ckliKHVJYih0SWIodkliKHNJYihuZXcgd0liLCR3bmQuTWF0aC5tYXgoMCxqKSksMSksZyksYS5jW2QuYS5kXSkpO3JJYih1SWIodEliKHZJYihzSWIobmV3IHdJYiwkd25kLk1hdGgubWF4KDAsLWopKSwxKSxnKSxhLmNbaC5hLmRdKSl9ZWxzZXttPTE7KFpEKGQuZywxNTQpJiZaRChoLmcsMTApfHxaRChoLmcsMTU0KSYmWkQoZC5nLDEwKSkmJihtPTIpO3JJYih1SWIodEliKHZJYihzSWIobmV3IHdJYixlRShmKSksbSksYS5jW2QuYS5kXSksYS5jW2guYS5kXSkpfX19fVxuZnVuY3Rpb24gUEljKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbTtpZihjKXtkPS0xO2s9bmV3IEprYihiLDApO3doaWxlKGsuYjxrLmQuZ2MoKSl7aD0oc0ZiKGsuYjxrLmQuZ2MoKSksUkQoay5kLlhiKGsuYz1rLmIrKyksMTApKTtsPWEuY1toLmMucF1baC5wXS5hO2lmKGw9PW51bGwpe2c9ZCsxO2Y9bmV3IEprYihiLGsuYik7d2hpbGUoZi5iPGYuZC5nYygpKXttPVRJYyhhLChzRmIoZi5iPGYuZC5nYygpKSxSRChmLmQuWGIoZi5jPWYuYisrKSwxMCkpKS5hO2lmKG0hPW51bGwpe2c9KHVGYihtKSxtKTticmVha319bD0oZCtnKS8yO2EuY1toLmMucF1baC5wXS5hPWw7YS5jW2guYy5wXVtoLnBdLmQ9KHVGYihsKSxsKTthLmNbaC5jLnBdW2gucF0uYj0xfWQ9KHVGYihsKSxsKX19ZWxzZXtlPTA7Zm9yKGo9bmV3IEFuYihiKTtqLmE8ai5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaiksMTApO2EuY1toLmMucF1baC5wXS5hIT1udWxsJiYoZT0kd25kLk1hdGgubWF4KGUsS2ZiKGEuY1toLmMucF1baC5wXS5hKSkpfWUrPTI7Zm9yKGk9bmV3IEFuYihiKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksMTApO2lmKGEuY1toLmMucF1baC5wXS5hPT1udWxsKXtsPUt3YihhLmksMjQpKk54ZSplLTE7YS5jW2guYy5wXVtoLnBdLmE9bDthLmNbaC5jLnBdW2gucF0uZD1sO2EuY1toLmMucF1baC5wXS5iPTF9fX19XG5mdW5jdGlvbiB4QShhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsOyFjJiYoYz1oQihiLnEuZ2V0VGltZXpvbmVPZmZzZXQoKSkpO2U9KGIucS5nZXRUaW1lem9uZU9mZnNldCgpLWMuYSkqNjAwMDA7aD1uZXcgd0IoQmRiKEhkYihiLnEuZ2V0VGltZSgpKSxlKSk7aT1oO2lmKGgucS5nZXRUaW1lem9uZU9mZnNldCgpIT1iLnEuZ2V0VGltZXpvbmVPZmZzZXQoKSl7ZT4wPyhlLT04NjQwMDAwMCk6KGUrPTg2NDAwMDAwKTtpPW5ldyB3QihCZGIoSGRiKGIucS5nZXRUaW1lKCkpLGUpKX1rPW5ldyBjaWI7aj1hLmEubGVuZ3RoO2ZvcihmPTA7ZjxqOyl7ZD1paGIoYS5hLGYpO2lmKGQ+PTk3JiZkPD0xMjJ8fGQ+PTY1JiZkPD05MCl7Zm9yKGc9ZisxO2c8aiYmaWhiKGEuYSxnKT09ZDsrK2cpO0xBKGssZCxnLWYsaCxpLGMpO2Y9Z31lbHNlIGlmKGQ9PTM5KXsrK2Y7aWYoZjxqJiZpaGIoYS5hLGYpPT0zOSl7ay5hKz1cIidcIjsrK2Y7Y29udGludWV9bD1mYWxzZTt3aGlsZSghbCl7Zz1mO3doaWxlKGc8aiYmaWhiKGEuYSxnKSE9MzkpeysrZ31pZihnPj1qKXt0aHJvdyBBZGIobmV3IGFnYihcIk1pc3NpbmcgdHJhaWxpbmcgJ1wiKSl9ZysxPGomJmloYihhLmEsZysxKT09Mzk/KytnOihsPXRydWUpO1poYihrLHpoYihhLmEsZixnKSk7Zj1nKzF9fWVsc2V7ay5hKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGQpOysrZn19cmV0dXJuIGsuYX1cbmZ1bmN0aW9uIGFiZSgpe1JSZChnNyxuZXcgSWJlKTtSUmQoZjcsbmV3IG5jZSk7UlJkKGg3LG5ldyBVY2UpO1JSZChpNyxuZXcga2RlKTtSUmQoazcsbmV3IG5kZSk7UlJkKG03LG5ldyBxZGUpO1JSZChsNyxuZXcgdGRlKTtSUmQobjcsbmV3IHdkZSk7UlJkKHA3LG5ldyBlYmUpO1JSZChxNyxuZXcgaGJlKTtSUmQocjcsbmV3IGtiZSk7UlJkKHM3LG5ldyBuYmUpO1JSZCh0NyxuZXcgcWJlKTtSUmQodTcsbmV3IHRiZSk7UlJkKHY3LG5ldyB3YmUpO1JSZCh5NyxuZXcgemJlKTtSUmQoQTcsbmV3IENiZSk7UlJkKEM4LG5ldyBGYmUpO1JSZChvNyxuZXcgTGJlKTtSUmQoejcsbmV3IE9iZSk7UlJkKFFJLG5ldyBSYmUpO1JSZChXQyhnRSwxKSxuZXcgVWJlKTtSUmQoUkksbmV3IFhiZSk7UlJkKFNJLG5ldyAkYmUpO1JSZChxSyxuZXcgYmNlKTtSUmQoVDYsbmV3IGVjZSk7UlJkKFZJLG5ldyBoY2UpO1JSZChZNixuZXcga2NlKTtSUmQoWjYsbmV3IHFjZSk7UlJkKFRiYixuZXcgdGNlKTtSUmQoSmJiLG5ldyB3Y2UpO1JSZChaSSxuZXcgemNlKTtSUmQoYkosbmV3IENjZSk7UlJkKFVJLG5ldyBGY2UpO1JSZChlSixuZXcgSWNlKTtSUmQoVkssbmV3IExjZSk7UlJkKEFhYixuZXcgT2NlKTtSUmQoemFiLG5ldyBSY2UpO1JSZChsSixuZXcgWGNlKTtSUmQocUosbmV3ICRjZSk7UlJkKGE3LG5ldyBiZGUpO1JSZCgkNixuZXcgZWRlKX1cbmZ1bmN0aW9uIEluYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztpZihhPT1udWxsKXtyZXR1cm4gdnZlfWk9Yi5hLnpjKGEsYik7aWYoaSE9bnVsbCl7cmV0dXJuICdbLi4uXSd9Yz1uZXcgSnliKHB2ZSwnWycsJ10nKTtmb3IoZT1hLGY9MCxnPWUubGVuZ3RoO2Y8ZzsrK2Ype2Q9ZVtmXTtpZihkIT1udWxsJiYocmIoZCkuaSY0KSE9MCl7aWYoQXJyYXkuaXNBcnJheShkKSYmKGs9WEMoZCksIShrPj0xNCYmazw9MTYpKSl7aWYoYi5hLl9iKGQpKXshYy5hPyhjLmE9bmV3IGRpYihjLmQpKTpaaGIoYy5hLGMuYik7V2hiKGMuYSwnWy4uLl0nKX1lbHNle2g9U0QoZCk7aj1uZXcgYnRiKGIpO0d5YihjLEluYihoLGopKX19ZWxzZSBaRChkLDE4Myk/R3liKGMsaG9iKFJEKGQsMTgzKSkpOlpEKGQsMTk1KT9HeWIoYyxhb2IoUkQoZCwxOTUpKSk6WkQoZCwyMDEpP0d5YihjLGJvYihSRChkLDIwMSkpKTpaRChkLDIxMTEpP0d5YihjLGdvYihSRChkLDIxMTEpKSk6WkQoZCw1Myk/R3liKGMsZW9iKFJEKGQsNTMpKSk6WkQoZCwzNzYpP0d5YihjLGZvYihSRChkLDM3NikpKTpaRChkLDg0Nik/R3liKGMsZG9iKFJEKGQsODQ2KSkpOlpEKGQsMTA5KSYmR3liKGMsY29iKFJEKGQsMTA5KSkpfWVsc2V7R3liKGMsZD09bnVsbD92dmU6amViKGQpKX19cmV0dXJuICFjLmE/Yy5jOmMuZS5sZW5ndGg9PTA/Yy5hLmE6Yy5hLmErKCcnK2MuZSl9XG5mdW5jdGlvbiBLWGQoYSxiKXt2YXIgYyxkLGUsZjtmPWEuRjtpZihiPT1udWxsKXthLkY9bnVsbDt5WGQoYSxudWxsKX1lbHNle2EuRj0odUZiKGIpLGIpO2Q9cWhiKGIsRmhiKDYwKSk7aWYoZCE9LTEpe2U9KEFGYigwLGQsYi5sZW5ndGgpLGIuc3Vic3RyKDAsZCkpO3FoYihiLEZoYig0NikpPT0tMSYmIWxoYihlLGh2ZSkmJiFsaGIoZSxkS2UpJiYhbGhiKGUsZUtlKSYmIWxoYihlLGZLZSkmJiFsaGIoZSxnS2UpJiYhbGhiKGUsaEtlKSYmIWxoYihlLGlLZSkmJiFsaGIoZSxqS2UpJiYoZT1rS2UpO2M9dGhiKGIsRmhiKDYyKSk7YyE9LTEmJihlKz0nJysoQkZiKGMrMSxiLmxlbmd0aCsxKSxiLnN1YnN0cihjKzEpKSk7eVhkKGEsZSl9ZWxzZXtlPWI7aWYocWhiKGIsRmhiKDQ2KSk9PS0xKXtkPXFoYihiLEZoYig5MSkpO2QhPS0xJiYoZT0oQUZiKDAsZCxiLmxlbmd0aCksYi5zdWJzdHIoMCxkKSkpO2lmKCFsaGIoZSxodmUpJiYhbGhiKGUsZEtlKSYmIWxoYihlLGVLZSkmJiFsaGIoZSxmS2UpJiYhbGhiKGUsZ0tlKSYmIWxoYihlLGhLZSkmJiFsaGIoZSxpS2UpJiYhbGhiKGUsaktlKSl7ZT1rS2U7ZCE9LTEmJihlKz0nJysoQkZiKGQsYi5sZW5ndGgrMSksYi5zdWJzdHIoZCkpKX1lbHNle2U9Yn19eVhkKGEsZSk7ZT09YiYmKGEuRj1hLkQpfX0oYS5EYiY0KSE9MCYmKGEuRGImMSk9PTAmJnF2ZChhLG5ldyBOM2QoYSwxLDUsZixiKSl9XG5mdW5jdGlvbiBQdmQoYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbTtqPWMubGVuZ3RoLTE7aT0oQkZiKGosYy5sZW5ndGgpLGMuY2hhckNvZGVBdChqKSk7aWYoaT09OTMpe2g9cWhiKGMsRmhiKDkxKSk7aWYoaD49MCl7Zj1VdmQoYiwoQUZiKDEsaCxjLmxlbmd0aCksYy5zdWJzdHIoMSxoLTEpKSk7bD0oQUZiKGgrMSxqLGMubGVuZ3RoKSxjLnN1YnN0cihoKzEsai0oaCsxKSkpO3JldHVybiBOdmQoYixsLGYpfX1lbHNle2Q9LTE7X2ViPT1udWxsJiYoX2ViPW5ldyBSZWdFeHAoJ1xcXFxkJykpO2lmKF9lYi50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoaSkpKXtkPXVoYihjLEZoYig0Niksai0xKTtpZihkPj0wKXtlPVJEKEZ2ZChiLFp2ZChiLChBRmIoMSxkLGMubGVuZ3RoKSxjLnN1YnN0cigxLGQtMSkpKSxmYWxzZSksNjEpO2s9MDt0cnl7az1PZWIoKEJGYihkKzEsYy5sZW5ndGgrMSksYy5zdWJzdHIoZCsxKSkscXdlLGx2ZSl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwxMzApKXtnPWE7dGhyb3cgQWRiKG5ldyBSU2QoZykpfWVsc2UgdGhyb3cgQWRiKGEpfWlmKGs8ZS5nYygpKXttPWUuWGIoayk7WkQobSw3NikmJihtPVJEKG0sNzYpLm1kKCkpO3JldHVybiBSRChtLDU4KX19fWlmKGQ8MCl7cmV0dXJuIFJEKEZ2ZChiLFp2ZChiLChCRmIoMSxjLmxlbmd0aCsxKSxjLnN1YnN0cigxKSkpLGZhbHNlKSw1OCl9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gSmNjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scDtiLlVnKCdMYWJlbCBkdW1teSBpbnNlcnRpb25zJywxKTtsPW5ldyBibmI7Zz1LZmIoVUQobVFiKGEsKHlDYygpLFZCYykpKSk7aj1LZmIoVUQobVFiKGEsWkJjKSkpO2s9UkQobVFiKGEsckFjKSw4OCk7Zm9yKG49bmV3IEFuYihhLmEpO24uYTxuLmMuYy5sZW5ndGg7KXttPVJEKHluYihuKSwxMCk7Zm9yKGY9bmV3IGlzKE1yKGEzYihtKS5hLktjKCksbmV3IGlyKSk7Z3MoZik7KXtlPVJEKGhzKGYpLDE4KTtpZihlLmMuaSE9ZS5kLmkmJmJyKGUuYixHY2MpKXtwPUtjYyhlKTtvPWV2KGUuYi5jLmxlbmd0aCk7Yz1JY2MoYSxlLHAsbyk7WkViKGwuYyxjKTtkPWMubztoPW5ldyBKa2IoZS5iLDApO3doaWxlKGguYjxoLmQuZ2MoKSl7aT0oc0ZiKGguYjxoLmQuZ2MoKSksUkQoaC5kLlhiKGguYz1oLmIrKyksNzIpKTtpZihkRShtUWIoaSx3QWMpKT09PWRFKChPbWQoKSxMbWQpKSl7aWYoaz09KENtZCgpLEJtZCl8fGs9PXhtZCl7ZC5hKz1pLm8uYStqO2QuYj0kd25kLk1hdGgubWF4KGQuYixpLm8uYil9ZWxzZXtkLmE9JHduZC5NYXRoLm1heChkLmEsaS5vLmEpO2QuYis9aS5vLmIran1aRWIoby5jLGkpO0NrYihoKX19aWYoaz09KENtZCgpLEJtZCl8fGs9PXhtZCl7ZC5hLT1qO2QuYis9ZytwfWVsc2V7ZC5iKz1nLWorcH19fX1UbWIoYS5hLGwpO2IuVmcoKX1cbmZ1bmN0aW9uIEhfYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvO2EuYz1hLmU7bz1URChtUWIoYiwoeUNjKCksT0JjKSkpO249bz09bnVsbHx8KHVGYihvKSxvKTtmPVJEKG1RYihiLChZd2MoKSxrd2MpKSwyMSkuSGMoKG92YygpLGh2YykpO2U9UkQobVFiKGIsQkJjKSwxMDEpO2M9IShlPT0oQm9kKCksdm9kKXx8ZT09eG9kfHxlPT13b2QpO2lmKG4mJihjfHwhZikpe2ZvcihsPW5ldyBBbmIoYi5hKTtsLmE8bC5jLmMubGVuZ3RoOyl7aj1SRCh5bmIobCksMTApO2oucD0wfW09bmV3IGJuYjtmb3Ioaz1uZXcgQW5iKGIuYSk7ay5hPGsuYy5jLmxlbmd0aDspe2o9UkQoeW5iKGspLDEwKTtkPUdfYihhLGosbnVsbCk7aWYoZCl7aT1uZXcgZDFiO2tRYihpLGIpO3BRYihpLGV3YyxSRChkLmIsMjEpKTtDMmIoaS5kLGIuZCk7cFFiKGksbkJjLG51bGwpO2ZvcihoPVJEKGQuYSwxNSkuS2MoKTtoLk9iKCk7KXtnPVJEKGguUGIoKSwxMCk7Um1iKGkuYSxnKTtnLmE9aX1tLkZjKGkpfX1mJiYoZEUobVFiKGIsWXpjKSk9PT1kRSgoVSRiKCksUSRiKSk/KGEuYz1hLmIpOmRFKG1RYihiLFl6YykpPT09ZEUoUyRiKT8oYS5jPWEuZCk6KGEuYz1hLmEpKX1lbHNle209bmV3IG1vYihjRChXQyhlUiwxKSxPQWUsMzYsMCxbYl0pKX1kRShtUWIoYixZemMpKSE9PWRFKChVJGIoKSxUJGIpKSYmKHlvYigpLG0uamQobmV3IEtfYikpO3JldHVybiBtfVxuZnVuY3Rpb24gbzJkKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksajtqPWEuYzshYiYmKGI9ZDJkKTthLmM9YjtpZigoYS5EYiY0KSE9MCYmKGEuRGImMSk9PTApe2k9bmV3IE4zZChhLDEsMixqLGEuYyk7IWM/KGM9aSk6Yy5uaihpKX1pZihqIT1iKXtpZihaRChhLkNiLDI5Mikpe2lmKGEuRGI+PjE2PT0tMTApe2M9UkQoYS5DYiwyOTIpLllrKGIsYyl9ZWxzZSBpZihhLkRiPj4xNj09LTE1KXshYiYmKGI9KEpUZCgpLHdUZCkpOyFqJiYoaj0oSlRkKCksd1RkKSk7aWYoYS5DYi5ZaCgpKXtpPW5ldyBQM2QoYS5DYiwxLDEzLGosYixmWmQobzRkKFJEKGEuQ2IsNjIpKSxhKSxmYWxzZSk7IWM/KGM9aSk6Yy5uaihpKX19fWVsc2UgaWYoWkQoYS5DYiw5MCkpe2lmKGEuRGI+PjE2PT0tMjMpe1pEKGIsOTApfHwoYj0oSlRkKCkselRkKSk7WkQoaiw5MCl8fChqPShKVGQoKSx6VGQpKTtpZihhLkNiLlloKCkpe2k9bmV3IFAzZChhLkNiLDEsMTAsaixiLGZaZCh0WWQoUkQoYS5DYiwyOSkpLGEpLGZhbHNlKTshYz8oYz1pKTpjLm5qKGkpfX19ZWxzZSBpZihaRChhLkNiLDQ1Nykpe2g9UkQoYS5DYiw4NTApO2c9KCFoLmImJihoLmI9bmV3IHBhZShuZXcgbGFlKSksaC5iKTtmb3IoZj0oZD1uZXcgdmtiKChuZXcgbWtiKGcuYSkpLmEpLG5ldyB4YWUoZCkpO2YuYS5iOyl7ZT1SRCh0a2IoZi5hKS5sZCgpLDg5KTtjPW8yZChlLGsyZChlLGgpLGMpfX19cmV0dXJuIGN9XG5mdW5jdGlvbiBZNGIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtO2c9SGViKFREKEd4ZChhLCh5Q2MoKSxOQWMpKSkpO209UkQoR3hkKGEsRUJjKSwyMSk7aT1mYWxzZTtqPWZhbHNlO2w9bmV3IGRNZCgoIWEuYyYmKGEuYz1uZXcgQzVkKEs0LGEsOSw5KSksYS5jKSk7d2hpbGUobC5lIT1sLmkuZ2MoKSYmKCFpfHwhaikpe2Y9UkQoYk1kKGwpLDEyMyk7aD0wO2ZvcihlPUZsKEFsKGNEKFdDKGNKLDEpLHJ2ZSwyMCwwLFsoIWYuZCYmKGYuZD1uZXcgWWllKEc0LGYsOCw1KSksZi5kKSwoIWYuZSYmKGYuZT1uZXcgWWllKEc0LGYsNyw0KSksZi5lKV0pKSk7Z3MoZSk7KXtkPVJEKGhzKGUpLDc0KTtrPWcmJm96ZChkKSYmSGViKFREKEd4ZChkLE9BYykpKTtjPWNaZCgoIWQuYiYmKGQuYj1uZXcgWWllKEU0LGQsNCw3KSksZC5iKSxmKT9hPT12Q2QoQUdkKFJEKFFIZCgoIWQuYyYmKGQuYz1uZXcgWWllKEU0LGQsNSw4KSksZC5jKSwwKSw4NCkpKTphPT12Q2QoQUdkKFJEKFFIZCgoIWQuYiYmKGQuYj1uZXcgWWllKEU0LGQsNCw3KSksZC5iKSwwKSw4NCkpKTtpZihrfHxjKXsrK2g7aWYoaD4xKXticmVha319fWg+MD8oaT10cnVlKTptLkhjKChQb2QoKSxMb2QpKSYmKCFmLm4mJihmLm49bmV3IEM1ZChJNCxmLDEsNykpLGYubikuaT4wJiYoaT10cnVlKTtoPjEmJihqPXRydWUpfWkmJmIuRmMoKG92YygpLGh2YykpO2omJmIuRmMoKG92YygpLGl2YykpfVxuZnVuY3Rpb24gRHNkKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbTttPVJEKEd4ZChhLCh1bWQoKSxrbGQpKSwyMSk7aWYobS5kYygpKXtyZXR1cm4gbnVsbH1oPTA7Zz0wO2lmKG0uSGMoKFFwZCgpLE9wZCkpKXtrPVJEKEd4ZChhLEhsZCksMTAxKTtkPTI7Yz0yO2U9MjtmPTI7Yj0hdkNkKGEpP1JEKEd4ZChhLE5rZCksODgpOlJEKEd4ZCh2Q2QoYSksTmtkKSw4OCk7Zm9yKGo9bmV3IGRNZCgoIWEuYyYmKGEuYz1uZXcgQzVkKEs0LGEsOSw5KSksYS5jKSk7ai5lIT1qLmkuZ2MoKTspe2k9UkQoYk1kKGopLDEyMyk7bD1SRChHeGQoaSxPbGQpLDY0KTtpZihsPT0ocXBkKCksb3BkKSl7bD1vc2QoaSxiKTtJeGQoaSxPbGQsbCl9aWYoaz09KEJvZCgpLHdvZCkpe3N3aXRjaChsLmcpe2Nhc2UgMTpkPSR3bmQuTWF0aC5tYXgoZCxpLmkraS5nKTticmVhaztjYXNlIDI6Yz0kd25kLk1hdGgubWF4KGMsaS5qK2kuZik7YnJlYWs7Y2FzZSAzOmU9JHduZC5NYXRoLm1heChlLGkuaStpLmcpO2JyZWFrO2Nhc2UgNDpmPSR3bmQuTWF0aC5tYXgoZixpLmoraS5mKTt9fWVsc2V7c3dpdGNoKGwuZyl7Y2FzZSAxOmQrPWkuZysyO2JyZWFrO2Nhc2UgMjpjKz1pLmYrMjticmVhaztjYXNlIDM6ZSs9aS5nKzI7YnJlYWs7Y2FzZSA0OmYrPWkuZisyO319fWg9JHduZC5NYXRoLm1heChkLGUpO2c9JHduZC5NYXRoLm1heChjLGYpfXJldHVybiBFc2QoYSxoLGcsdHJ1ZSx0cnVlKX1cbmZ1bmN0aW9uIFJxYyhhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1O3M9UkQoekRiKFBEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYi5kLDE2KSksbmV3IFZxYyhjKSksbmV3IFhxYyhjKSksdEJiKG5ldyBaQmIsbmV3IFhCYixuZXcgd0NiLGNEKFdDKFFMLDEpLGp3ZSwxMDgsMCxbKHhCYigpLHZCYildKSkpLDE1KTtsPWx2ZTtrPXF3ZTtmb3IoaT1uZXcgQW5iKGIuYi5qKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksMTIpO2lmKGguaj09Yyl7bD0kd25kLk1hdGgubWluKGwsaC5wKTtrPSR3bmQuTWF0aC5tYXgoayxoLnApfX1pZihsPT1sdmUpe2ZvcihnPTA7ZzxzLmdjKCk7ZysrKXtVbWMoUkQocy5YYihnKSwxMDUpLGMsZyl9fWVsc2V7dD0kQyhrRSxQd2UsMjgsZS5sZW5ndGgsMTUsMSk7UW5iKHQsdC5sZW5ndGgpO2ZvcihyPXMuS2MoKTtyLk9iKCk7KXtxPVJEKHIuUGIoKSwxMDUpO2Y9UkQoV2piKGEuYixxKSwxODMpO2o9MDtmb3IocD1sO3A8PWs7cCsrKXtmW3BdJiYoaj0kd25kLk1hdGgubWF4KGosZFtwXSkpfWlmKHEuaSl7bj1xLmkuYzt1PW5ldyBfc2I7Zm9yKG09MDttPGUubGVuZ3RoO20rKyl7ZVtuXVttXSYmWXNiKHUsc2diKHRbbV0pKX13aGlsZShac2IodSxzZ2IoaikpKXsrK2p9fVVtYyhxLGMsaik7Zm9yKG89bDtvPD1rO28rKyl7ZltvXSYmKGRbb109aisxKX0hIXEuaSYmKHRbcS5pLmNdPWopfX19XG5mdW5jdGlvbiB3T2MoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwO2U9bnVsbDtmb3IoZD1uZXcgQW5iKGIuYSk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDEwKTtCT2MoYyk/KGY9KGg9ZUpiKGZKYihuZXcgZ0piLGMpLGEuZiksaT1lSmIoZkpiKG5ldyBnSmIsYyksYS5mKSxqPW5ldyBST2MoYyx0cnVlLGgsaSksaz1jLm8uYixsPSh3RGMoKSwoIWMucT8oeW9iKCkseW9iKCksd29iKTpjLnEpLl9iKCh5Q2MoKSxpQmMpKT8obT1SRChtUWIoYyxpQmMpLDIwMykpOihtPVJEKG1RYihZMmIoYyksakJjKSwyMDMpKSxtKSxuPTEwMDAwLGw9PXNEYyYmKG49MSksbz1ySWIodUliKHRJYihzSWIodkliKG5ldyB3SWIsbiksZUUoJHduZC5NYXRoLmNlaWwoaykpKSxoKSxpKSksbD09dERjJiZZc2IoYS5kLG8pLHhPYyhhLGh2KGIzYihjLChxcGQoKSxwcGQpKSksaikseE9jKGEsYjNiKGMsWG9kKSxqKSxqKSk6KGY9KHA9ZUpiKGZKYihuZXcgZ0piLGMpLGEuZiksRkRiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihjLmosMTYpKSxuZXcgY1BjKSxuZXcgZVBjKGEscCkpLG5ldyBST2MoYyxmYWxzZSxwLHApKSk7YS5pW2MucF09ZjtpZihlKXtnPWUuYy5kLmErYkZjKGEubixlLmMsYykrYy5kLmQ7ZS5ifHwoZys9ZS5jLm8uYik7ckliKHVJYih0SWIodkliKHNJYihuZXcgd0liLGVFKCR3bmQuTWF0aC5jZWlsKGcpKSksMCksZS5kKSxmLmEpKX1lPWZ9fVxuZnVuY3Rpb24gaF9iKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuO2Y9bmV3IHRfYihiKTtsPWNfYihhLGIsZik7bj0kd25kLk1hdGgubWF4KEtmYihVRChtUWIoYiwoeUNjKCksRkFjKSkpKSwxKTtmb3Ioaz1uZXcgQW5iKGwuYSk7ay5hPGsuYy5jLmxlbmd0aDspe2o9UkQoeW5iKGspLDQyKTtpPWdfYihSRChqLmEsOCksUkQoai5iLDgpLG4pO289dHJ1ZTtvPW8mbF9iKGMsbmV3IHJqZChpLmMsaS5kKSk7bz1vJmxfYihjLFppZChuZXcgcmpkKGkuYyxpLmQpLGkuYiwwKSk7bz1vJmxfYihjLFppZChuZXcgcmpkKGkuYyxpLmQpLDAsaS5hKSk7byZsX2IoYyxaaWQobmV3IHJqZChpLmMsaS5kKSxpLmIsaS5hKSl9bT1mLmQ7aD1nX2IoUkQobC5iLmEsOCksUkQobC5iLmIsOCksbik7aWYobT09KHFwZCgpLHBwZCl8fG09PVhvZCl7ZC5jW20uZ109JHduZC5NYXRoLm1pbihkLmNbbS5nXSxoLmQpO2QuYlttLmddPSR3bmQuTWF0aC5tYXgoZC5iW20uZ10saC5kK2guYSl9ZWxzZXtkLmNbbS5nXT0kd25kLk1hdGgubWluKGQuY1ttLmddLGguYyk7ZC5iW20uZ109JHduZC5NYXRoLm1heChkLmJbbS5nXSxoLmMraC5iKX1lPXB4ZTtnPWYuYy5pLmQ7c3dpdGNoKG0uZyl7Y2FzZSA0OmU9Zy5jO2JyZWFrO2Nhc2UgMjplPWcuYjticmVhaztjYXNlIDE6ZT1nLmE7YnJlYWs7Y2FzZSAzOmU9Zy5kO31kLmFbbS5nXT0kd25kLk1hdGgubWF4KGQuYVttLmddLGUpO3JldHVybiBmfVxuZnVuY3Rpb24gVzdiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQ7aD1SRChXamIoYi5jLGEpLDQ2OCk7cz1iLmEuYztpPWIuYS5jK2IuYS5iO0M9aC5mO0Q9aC5hO2c9QzxEO3A9bmV3IHJqZChzLEMpO3Q9bmV3IHJqZChpLEQpO2U9KHMraSkvMjtxPW5ldyByamQoZSxDKTt1PW5ldyByamQoZSxEKTtmPVg3YihhLEMsRCk7dz1LM2IoYi5CKTtBPW5ldyByamQoZSxmKTtCPUszYihiLkQpO2M9dWlkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW3csQSxCXSkpO249ZmFsc2U7cj1iLkIuaTtpZighIXImJiEhci5jJiZoLmQpe2o9ZyYmci5wPHIuYy5hLmMubGVuZ3RoLTF8fCFnJiZyLnA+MDtpZihqKXtpZihqKXttPXIucDtnPysrbTotLW07bD1SRChWbWIoci5jLmEsbSksMTApO2Q9WjdiKGwpO249IShEaWQoZCx3LGNbMF0pfHx5aWQoZCx3LGNbMF0pKX19ZWxzZXtuPXRydWV9fW89ZmFsc2U7dj1iLkQuaTtpZighIXYmJiEhdi5jJiZoLmUpe2s9ZyYmdi5wPjB8fCFnJiZ2LnA8di5jLmEuYy5sZW5ndGgtMTtpZihrKXttPXYucDtnPy0tbTorK207bD1SRChWbWIodi5jLmEsbSksMTApO2Q9WjdiKGwpO289IShEaWQoZCxjWzBdLEIpfHx5aWQoZCxjWzBdLEIpKX1lbHNle289dHJ1ZX19biYmbyYmTXViKGEuYSxBKTtufHx6amQoYS5hLGNEKFdDKGwzLDEpLE52ZSw4LDAsW3AscV0pKTtvfHx6amQoYS5hLGNEKFdDKGwzLDEpLE52ZSw4LDAsW3UsdF0pKX1cbmZ1bmN0aW9uIE1OYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHM7bj1iLmMubGVuZ3RoO209MDtmb3IobD1uZXcgQW5iKGEuYik7bC5hPGwuYy5jLmxlbmd0aDspe2s9UkQoeW5iKGwpLDMwKTtyPWsuYTtpZihyLmMubGVuZ3RoPT0wKXtjb250aW51ZX1xPW5ldyBBbmIocik7aj0wO3M9bnVsbDtlPVJEKHluYihxKSwxMCk7Zj1udWxsO3doaWxlKGUpe2Y9UkQoVm1iKGIsZS5wKSwyNjEpO2lmKGYuYz49MCl7aT1udWxsO2g9bmV3IEprYihrLmEsaisxKTt3aGlsZShoLmI8aC5kLmdjKCkpe2c9KHNGYihoLmI8aC5kLmdjKCkpLFJEKGguZC5YYihoLmM9aC5iKyspLDEwKSk7aT1SRChWbWIoYixnLnApLDI2MSk7aWYoaS5kPT1mLmQmJmkuYzxmLmMpe2JyZWFrfWVsc2V7aT1udWxsfX1pZihpKXtpZihzKXskbWIoZCxlLnAsc2diKFJEKFZtYihkLGUucCksMTcpLmEtMSkpO1JEKFZtYihjLHMucCksMTUpLk1jKGYpfWY9WU5jKGYsZSxuKyspO1pFYihiLmMsZik7Um1iKGMsbmV3IGJuYik7aWYocyl7UkQoVm1iKGMscy5wKSwxNSkuRmMoZik7Um1iKGQsc2diKDEpKX1lbHNle1JtYihkLHNnYigwKSl9fX1vPW51bGw7aWYocS5hPHEuYy5jLmxlbmd0aCl7bz1SRCh5bmIocSksMTApO3A9UkQoVm1iKGIsby5wKSwyNjEpO1JEKFZtYihjLGUucCksMTUpLkZjKHApOyRtYihkLG8ucCxzZ2IoUkQoVm1iKGQsby5wKSwxNykuYSsxKSl9Zi5kPW07Zi5jPWorKztzPWU7ZT1vfSsrbX19XG5mdW5jdGlvbiBJNWIoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG47Zj1SRChtUWIoYSwoWXdjKCksQXdjKSksNzQpO2lmKCFmKXtyZXR1cm59ZD1hLmE7ZT1uZXcgc2pkKGMpOyRpZChlLE01YihhKSk7aWYobjJiKGEuZC5pLGEuYy5pKSl7bT1hLmM7bD14amQoY0QoV0MobDMsMSksTnZlLDgsMCxbbS5uLG0uYV0pKTtvamQobCxjKX1lbHNle2w9SzNiKGEuYyl9UHViKGQsbCxkLmEsZC5hLmEpO249SzNiKGEuZCk7bVFiKGEsV3djKSE9bnVsbCYmJGlkKG4sUkQobVFiKGEsV3djKSw4KSk7UHViKGQsbixkLmMuYixkLmMpO0NqZChkLGUpO2c9SUdkKGYsdHJ1ZSx0cnVlKTtLemQoZyxSRChRSGQoKCFmLmImJihmLmI9bmV3IFlpZShFNCxmLDQsNykpLGYuYiksMCksODQpKTtMemQoZyxSRChRSGQoKCFmLmMmJihmLmM9bmV3IFlpZShFNCxmLDUsOCkpLGYuYyksMCksODQpKTtsc2QoZCxnKTtmb3Ioaz1uZXcgQW5iKGEuYik7ay5hPGsuYy5jLmxlbmd0aDspe2o9UkQoeW5iKGspLDcyKTtoPVJEKG1RYihqLEF3YyksMTM1KTtDeWQoaCxqLm8uYSk7QXlkKGgsai5vLmIpO0J5ZChoLGoubi5hK2UuYSxqLm4uYitlLmIpO0l4ZChoLChaY2MoKSxZY2MpLFREKG1RYihqLFljYykpKX1pPVJEKG1RYihhLCh5Q2MoKSxSQWMpKSw3NSk7aWYoaSl7Q2pkKGksZSk7SXhkKGYsUkFjLGkpfWVsc2V7SXhkKGYsUkFjLG51bGwpfWI9PShZbWQoKSxXbWQpP0l4ZChmLHlBYyxXbWQpOkl4ZChmLHlBYyxudWxsKX1cbmZ1bmN0aW9uIE8zYyhhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEI7aWYoYy5jLmxlbmd0aCE9MCl7bz1uZXcgYm5iO2ZvcihuPW5ldyBBbmIoYyk7bi5hPG4uYy5jLmxlbmd0aDspe209UkQoeW5iKG4pLDI3KTtSbWIobyxuZXcgcmpkKG0uaSxtLmopKX1kLmRoKGIsJ0JlZm9yZSByZW1vdmluZyBvdmVybGFwcycpO3doaWxlKHAzYyhhLGMpKXtuM2MoYSxjLGZhbHNlKX1kLmRoKGIsJ0FmdGVyIHJlbW92aW5nIG92ZXJsYXBzJyk7aD0wO2k9MDtlPW51bGw7aWYoYy5jLmxlbmd0aCE9MCl7ZT0odEZiKDAsYy5jLmxlbmd0aCksUkQoYy5jWzBdLDI3KSk7aD1lLmktKHRGYigwLG8uYy5sZW5ndGgpLFJEKG8uY1swXSw4KSkuYTtpPWUuai0odEZiKDAsby5jLmxlbmd0aCksUkQoby5jWzBdLDgpKS5ifWc9JHduZC5NYXRoLnNxcnQoaCpoK2kqaSk7bD1NMmMoYyk7Zj0xO2lmKGwuYS5nYygpIT0wKXtmb3Ioaz1sLmEuZWMoKS5LYygpO2suT2IoKTspe2o9UkQoay5QYigpLDI3KTtwPWEuZjtxPXAuaStwLmcvMjtyPXAuaitwLmYvMjtzPWouaStqLmcvMjt0PWouaitqLmYvMjt1PXMtcTt2PXQtcjt3PSR3bmQuTWF0aC5zcXJ0KHUqdSt2KnYpO0E9dS93O0I9di93O0R5ZChqLGouaStBKmcpO0V5ZChqLGouaitCKmcpfWQuZGgoYiwnQ2hpbGQgbW92ZW1lbnQgJytmKTsrK2Z9ISFhLmEmJmEuYS5HZyhuZXcgZG5iKGwpKTtPM2MoYSxiLG5ldyBkbmIobCksZCl9fVxuZnVuY3Rpb24gRmlkKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0O2k9YTtrPW9qZChuZXcgcmpkKGIuYSxiLmIpLGEpO2o9YztsPW9qZChuZXcgcmpkKGQuYSxkLmIpLGMpO209aS5hO3E9aS5iO289ai5hO3M9ai5iO249ay5hO3I9ay5iO3A9bC5hO3Q9bC5iO2U9cCpyLW4qdDtaeSgpO2J6KHZFZSk7aWYoJHduZC5NYXRoLmFicygwLWUpPD12RWV8fDA9PWV8fGlzTmFOKDApJiZpc05hTihlKSl7cmV0dXJuIGZhbHNlfWc9MS9lKigobS1vKSpyLShxLXMpKm4pO2g9MS9lKi0oLShtLW8pKnQrKHEtcykqcCk7Zj0obnVsbCxieih2RWUpLCgkd25kLk1hdGguYWJzKDAtZyk8PXZFZXx8MD09Z3x8aXNOYU4oMCkmJmlzTmFOKGcpPzA6MDxnPy0xOjA+Zz8xOmN6KGlzTmFOKDApLGlzTmFOKGcpKSk8MCYmKG51bGwsYnoodkVlKSwoJHduZC5NYXRoLmFicyhnLTEpPD12RWV8fGc9PTF8fGlzTmFOKGcpJiZpc05hTigxKT8wOmc8MT8tMTpnPjE/MTpjeihpc05hTihnKSxpc05hTigxKSkpPDApJiYobnVsbCxieih2RWUpLCgkd25kLk1hdGguYWJzKDAtaCk8PXZFZXx8MD09aHx8aXNOYU4oMCkmJmlzTmFOKGgpPzA6MDxoPy0xOjA+aD8xOmN6KGlzTmFOKDApLGlzTmFOKGgpKSk8MCkmJihudWxsLGJ6KHZFZSksKCR3bmQuTWF0aC5hYnMoaC0xKTw9dkVlfHxoPT0xfHxpc05hTihoKSYmaXNOYU4oMSk/MDpoPDE/LTE6aD4xPzE6Y3ooaXNOYU4oaCksaXNOYU4oMSkpKTwwKSk7cmV0dXJuIGZ9XG5mdW5jdGlvbiBFWGQoYil7dmFyIGMsZCxlLGY7ZD1iLkQhPW51bGw/Yi5EOmIuQjtjPXFoYihkLEZoYig5MSkpO2lmKGMhPS0xKXtlPShBRmIoMCxjLGQubGVuZ3RoKSxkLnN1YnN0cigwLGMpKTtmPW5ldyBRaGI7ZG8gZi5hKz0nWyc7d2hpbGUoKGM9cGhiKGQsOTEsKytjKSkhPS0xKTtpZihsaGIoZSxodmUpKWYuYSs9J1onO2Vsc2UgaWYobGhiKGUsZEtlKSlmLmErPSdCJztlbHNlIGlmKGxoYihlLGVLZSkpZi5hKz0nQyc7ZWxzZSBpZihsaGIoZSxmS2UpKWYuYSs9J0QnO2Vsc2UgaWYobGhiKGUsZ0tlKSlmLmErPSdGJztlbHNlIGlmKGxoYihlLGhLZSkpZi5hKz0nSSc7ZWxzZSBpZihsaGIoZSxpS2UpKWYuYSs9J0onO2Vsc2UgaWYobGhiKGUsaktlKSlmLmErPSdTJztlbHNle2YuYSs9J0wnO2YuYSs9JycrZTtmLmErPSc7J310cnl7cmV0dXJuIG51bGx9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoIVpEKGEsNjMpKXRocm93IEFkYihhKX19ZWxzZSBpZihxaGIoZCxGaGIoNDYpKT09LTEpe2lmKGxoYihkLGh2ZSkpcmV0dXJuIHhkYjtlbHNlIGlmKGxoYihkLGRLZSkpcmV0dXJuIGdFO2Vsc2UgaWYobGhiKGQsZUtlKSlyZXR1cm4gaEU7ZWxzZSBpZihsaGIoZCxmS2UpKXJldHVybiBpRTtlbHNlIGlmKGxoYihkLGdLZSkpcmV0dXJuIGpFO2Vsc2UgaWYobGhiKGQsaEtlKSlyZXR1cm4ga0U7ZWxzZSBpZihsaGIoZCxpS2UpKXJldHVybiBsRTtlbHNlIGlmKGxoYihkLGpLZSkpcmV0dXJuIHdkYn1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIHBUYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBO2EuZT1iO2g9UlNiKGIpO3c9bmV3IGJuYjtmb3IoZD1uZXcgQW5iKGgpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxNSk7QT1uZXcgYm5iO1pFYih3LmMsQSk7aT1uZXcgX3NiO2ZvcihvPWMuS2MoKTtvLk9iKCk7KXtuPVJEKG8uUGIoKSwyNyk7Zj1uVGIoYSxuLHRydWUsMCwwKTtaRWIoQS5jLGYpO3A9bi5pO3E9bi5qO25ldyByamQocCxxKTttPSghbi5uJiYobi5uPW5ldyBDNWQoSTQsbiwxLDcpKSxuLm4pO2ZvcihsPW5ldyBkTWQobSk7bC5lIT1sLmkuZ2MoKTspe2o9UkQoYk1kKGwpLDEzNSk7ZT1uVGIoYSxqLGZhbHNlLHAscSk7WkViKEEuYyxlKX12PSghbi5jJiYobi5jPW5ldyBDNWQoSzQsbiw5LDkpKSxuLmMpO2ZvcihzPW5ldyBkTWQodik7cy5lIT1zLmkuZ2MoKTspe3I9UkQoYk1kKHMpLDEyMyk7Zz1uVGIoYSxyLGZhbHNlLHAscSk7WkViKEEuYyxnKTt0PXIuaStwO3U9ci5qK3E7bT0oIXIubiYmKHIubj1uZXcgQzVkKEk0LHIsMSw3KSksci5uKTtmb3Ioaz1uZXcgZE1kKG0pO2suZSE9ay5pLmdjKCk7KXtqPVJEKGJNZChrKSwxMzUpO2U9blRiKGEsaixmYWxzZSx0LHUpO1pFYihBLmMsZSl9fXllKGksVXgoQWwoY0QoV0MoY0osMSkscnZlLDIwLDAsW3pHZChuKSx5R2QobildKSkpKX1tVGIoYSxpLEEpfWEuZj1uZXcgVFJiKHcpO2tRYihhLmYsYik7cmV0dXJuIGEuZn1cbmZ1bmN0aW9uIFlqZShhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdztmb3IobD1uZXcgRHViKG5ldyB3dWIoYSkpO2wuYyE9bC5kLmEuZDspe2s9Q3ViKGwpO2g9UkQoay5kLDU4KTtiPVJEKGsuZSw1OCk7Zz1oLkRoKCk7Zm9yKHA9MCx1PShnLmk9PW51bGwmJnJZZChnKSxnLmkpLmxlbmd0aDtwPHU7KytwKXtqPShmPShnLmk9PW51bGwmJnJZZChnKSxnLmkpLHA+PTAmJnA8Zi5sZW5ndGg/ZltwXTpudWxsKTtpZihqLnJrKCkmJiFqLnNrKCkpe2lmKFpEKGosMTAyKSl7aT1SRChqLDE5KTsoaS5CYiZRSGUpPT0wJiYodz1aNWQoaSksISghIXcmJih3LkJiJlFIZSkhPTApKSYmWGplKGEsaSxoLGIpfWVsc2V7bmtlKCk7aWYoUkQoaiw2OSkueGsoKSl7Yz0odj1qLFJEKCF2P251bGw6UkQoYiw1NCkuZ2kodiksMTYwKSk7aWYoYyl7bj1SRChoLk1oKGopLDE2MCk7ZD1jLmdjKCk7Zm9yKHE9MCxvPW4uZ2MoKTtxPG87KytxKXttPW4uVGwocSk7aWYoWkQobSwxMDIpKXt0PW4uVWwocSk7ZT1jdWIoYSx0KTtpZihlPT1udWxsJiZ0IT1udWxsKXtzPVJEKG0sMTkpO2lmKCFhLmJ8fChzLkJiJlFIZSkhPTB8fCEhWjVkKHMpKXtjb250aW51ZX1lPXR9aWYoIWMuT2wobSxlKSl7Zm9yKHI9MDtyPGQ7KytyKXtpZihjLlRsKHIpPT1tJiZkRShjLlVsKHIpKT09PWRFKGUpKXtjLlRpKGMuZ2MoKS0xLHIpOy0tZDticmVha319fX1lbHNle2MuT2wobi5UbChxKSxuLlVsKHEpKX19fX19fX19fVxuZnVuY3Rpb24gZ0ljKGEsYixjKXt2YXIgZDtjLlVnKCdTdHJldGNoV2lkdGggbGF5ZXJpbmcnLDEpO2lmKGIuYS5jLmxlbmd0aD09MCl7Yy5WZygpO3JldHVybn1hLmM9YjthLnQ9MDthLnU9MDthLmk9b3hlO2EuZz1weGU7YS5kPUtmYihVRChtUWIoYiwoeUNjKCksVEJjKSkpKTthSWMoYSk7YkljKGEpOyRIYyhhKTtmSWMoYSk7X0hjKGEpO2EuaT0kd25kLk1hdGgubWF4KDEsYS5pKTthLmc9JHduZC5NYXRoLm1heCgxLGEuZyk7YS5kPWEuZC9hLmk7YS5mPWEuZy9hLmk7YS5zPWRJYyhhKTtkPW5ldyBSNGIoYS5jKTtSbWIoYS5jLmIsZCk7YS5yPWJ2KGEucCk7YS5uPUZuYihhLmssYS5rLmxlbmd0aCk7d2hpbGUoYS5yLmMubGVuZ3RoIT0wKXthLm89aEljKGEpO2lmKCFhLm98fGNJYyhhKSYmYS5iLmEuZ2MoKSE9MCl7aUljKGEsZCk7ZD1uZXcgUjRiKGEuYyk7Um1iKGEuYy5iLGQpO3llKGEuYSxhLmIpO2EuYi5hLiRiKCk7YS50PWEudTthLnU9MH1lbHNle2lmKGNJYyhhKSl7YS5jLmIuYy5sZW5ndGg9MDtkPW5ldyBSNGIoYS5jKTtSbWIoYS5jLmIsZCk7YS50PTA7YS51PTA7YS5iLmEuJGIoKTthLmEuYS4kYigpOysrYS5mO2Eucj1idihhLnApO2Eubj1GbmIoYS5rLGEuay5sZW5ndGgpfWVsc2V7ZzNiKGEubyxkKTtZbWIoYS5yLGEubyk7WXNiKGEuYixhLm8pO2EudD1hLnQtYS5rW2Euby5wXSphLmQrYS5qW2Euby5wXTthLnUrPWEuZVthLm8ucF0qYS5kfX19Yi5hLmMubGVuZ3RoPTA7RW9iKGIuYik7Yy5WZygpfVxuZnVuY3Rpb24gc09jKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGw7YS5qPSRDKGtFLFB3ZSwyOCxhLmcsMTUsMSk7YS5vPW5ldyBibmI7RkRiKEVEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmUuYiwxNikpLG5ldyBBUGMpLG5ldyBDUGMoYSkpO2EuYT0kQyh4ZGIsSHllLDI4LGEuYiwxNiwxKTtNRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5lLmIsMTYpKSxuZXcgUlBjKGEpKTtkPShsPW5ldyBibmIsRkRiKENEYihFRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5lLmIsMTYpKSxuZXcgSFBjKSxuZXcgSlBjKGEpKSxuZXcgTFBjKGEsbCkpLGwpO2ZvcihpPW5ldyBBbmIoZCk7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDUxNSk7aWYoaC5jLmxlbmd0aDw9MSl7Y29udGludWV9aWYoaC5jLmxlbmd0aD09Mil7VU9jKGgpO0JPYygodEZiKDAsaC5jLmxlbmd0aCksUkQoaC5jWzBdLDE4KSkuZC5pKXx8Um1iKGEubyxoKTtjb250aW51ZX1pZihUT2MoaCl8fFNPYyhoLG5ldyBGUGMpKXtjb250aW51ZX1qPW5ldyBBbmIoaCk7ZT1udWxsO3doaWxlKGouYTxqLmMuYy5sZW5ndGgpe2I9UkQoeW5iKGopLDE4KTtjPWEuY1tiLnBdOyFlfHxqLmE+PWouYy5jLmxlbmd0aD8oaz1oT2MoKHIzYigpLHAzYiksbzNiKSk6KGs9aE9jKChyM2IoKSxvM2IpLG8zYikpO2sqPTI7Zj1jLmEuZztjLmEuZz0kd25kLk1hdGgubWF4KGYsZisoay1mKSk7Zz1jLmIuZztjLmIuZz0kd25kLk1hdGgubWF4KGcsZysoay1nKSk7ZT1ifX19XG5mdW5jdGlvbiBxa2MoYSl7dmFyIGIsYyxkLGU7RkRiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmEuYiwxNikpLG5ldyBRa2MpLG5ldyBTa2MpO29rYyhhKTtGRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuYS5iLDE2KSksbmV3IFVrYyksbmV3IFdrYyk7aWYoYS5jPT0oWW1kKCksV21kKSl7RkRiKENEYihFRGIobmV3IFNEYihudWxsLG5ldyBTd2IobmV3IFhrYihhLmYpLDEpKSxuZXcgY2xjKSxuZXcgZWxjKSxuZXcgZ2xjKGEpKTtGRGIoQ0RiKEdEYihFRGIoRURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuZC5iLDE2KSksbmV3IGtsYyksbmV3IG1sYyksbmV3IG9sYyksbmV3IHFsYyksbmV3IHNsYyhhKSl9ZT1uZXcgcmpkKG94ZSxveGUpO2I9bmV3IHJqZChweGUscHhlKTtmb3IoZD1uZXcgQW5iKGEuYS5iKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksNjApO2UuYT0kd25kLk1hdGgubWluKGUuYSxjLmQuYyk7ZS5iPSR3bmQuTWF0aC5taW4oZS5iLGMuZC5kKTtiLmE9JHduZC5NYXRoLm1heChiLmEsYy5kLmMrYy5kLmIpO2IuYj0kd25kLk1hdGgubWF4KGIuYixjLmQuZCtjLmQuYSl9JGlkKGhqZChhLmQuYyksZmpkKG5ldyByamQoZS5hLGUuYikpKTskaWQoaGpkKGEuZC5mKSxvamQobmV3IHJqZChiLmEsYi5iKSxlKSk7cGtjKGEsZSxiKTtha2IoYS5mKTtha2IoYS5iKTtha2IoYS5nKTtha2IoYS5lKTthLmEuYS5jLmxlbmd0aD0wO2EuYS5iLmMubGVuZ3RoPTA7YS5hPW51bGw7YS5kPW51bGx9XG5mdW5jdGlvbiBKR2IoYSxiKXt2YXIgYztpZihhLmUpe3Rocm93IEFkYihuZXcgZGdiKChsZmIobE4pLGx5ZStsTi5rK215ZSkpKX1pZighY0diKGEuYSxiKSl7dGhyb3cgQWRiKG5ldyB5eihueWUrYitveWUpKX1pZihiPT1hLmQpe3JldHVybiBhfWM9YS5kO2EuZD1iO3N3aXRjaChjLmcpe2Nhc2UgMDpzd2l0Y2goYi5nKXtjYXNlIDI6R0diKGEpO2JyZWFrO2Nhc2UgMTpPR2IoYSk7R0diKGEpO2JyZWFrO2Nhc2UgNDpVR2IoYSk7R0diKGEpO2JyZWFrO2Nhc2UgMzpVR2IoYSk7T0diKGEpO0dHYihhKTt9YnJlYWs7Y2FzZSAyOnN3aXRjaChiLmcpe2Nhc2UgMTpPR2IoYSk7UEdiKGEpO2JyZWFrO2Nhc2UgNDpVR2IoYSk7R0diKGEpO2JyZWFrO2Nhc2UgMzpVR2IoYSk7T0diKGEpO0dHYihhKTt9YnJlYWs7Y2FzZSAxOnN3aXRjaChiLmcpe2Nhc2UgMjpPR2IoYSk7UEdiKGEpO2JyZWFrO2Nhc2UgNDpPR2IoYSk7VUdiKGEpO0dHYihhKTticmVhaztjYXNlIDM6T0diKGEpO1VHYihhKTtPR2IoYSk7R0diKGEpO31icmVhaztjYXNlIDQ6c3dpdGNoKGIuZyl7Y2FzZSAyOlVHYihhKTtHR2IoYSk7YnJlYWs7Y2FzZSAxOlVHYihhKTtPR2IoYSk7R0diKGEpO2JyZWFrO2Nhc2UgMzpPR2IoYSk7UEdiKGEpO31icmVhaztjYXNlIDM6c3dpdGNoKGIuZyl7Y2FzZSAyOk9HYihhKTtVR2IoYSk7R0diKGEpO2JyZWFrO2Nhc2UgMTpPR2IoYSk7VUdiKGEpO09HYihhKTtHR2IoYSk7YnJlYWs7Y2FzZSA0Ok9HYihhKTtQR2IoYSk7fX1yZXR1cm4gYX1cbmZ1bmN0aW9uIHZZYihhLGIpe3ZhciBjO2lmKGEuZCl7dGhyb3cgQWRiKG5ldyBkZ2IoKGxmYihlUSksbHllK2VRLmsrbXllKSkpfWlmKCFlWWIoYS5hLGIpKXt0aHJvdyBBZGIobmV3IHl6KG55ZStiK295ZSkpfWlmKGI9PWEuYyl7cmV0dXJuIGF9Yz1hLmM7YS5jPWI7c3dpdGNoKGMuZyl7Y2FzZSAwOnN3aXRjaChiLmcpe2Nhc2UgMjpzWWIoYSk7YnJlYWs7Y2FzZSAxOnpZYihhKTtzWWIoYSk7YnJlYWs7Y2FzZSA0OkRZYihhKTtzWWIoYSk7YnJlYWs7Y2FzZSAzOkRZYihhKTt6WWIoYSk7c1liKGEpO31icmVhaztjYXNlIDI6c3dpdGNoKGIuZyl7Y2FzZSAxOnpZYihhKTtBWWIoYSk7YnJlYWs7Y2FzZSA0OkRZYihhKTtzWWIoYSk7YnJlYWs7Y2FzZSAzOkRZYihhKTt6WWIoYSk7c1liKGEpO31icmVhaztjYXNlIDE6c3dpdGNoKGIuZyl7Y2FzZSAyOnpZYihhKTtBWWIoYSk7YnJlYWs7Y2FzZSA0OnpZYihhKTtEWWIoYSk7c1liKGEpO2JyZWFrO2Nhc2UgMzp6WWIoYSk7RFliKGEpO3pZYihhKTtzWWIoYSk7fWJyZWFrO2Nhc2UgNDpzd2l0Y2goYi5nKXtjYXNlIDI6RFliKGEpO3NZYihhKTticmVhaztjYXNlIDE6RFliKGEpO3pZYihhKTtzWWIoYSk7YnJlYWs7Y2FzZSAzOnpZYihhKTtBWWIoYSk7fWJyZWFrO2Nhc2UgMzpzd2l0Y2goYi5nKXtjYXNlIDI6elliKGEpO0RZYihhKTtzWWIoYSk7YnJlYWs7Y2FzZSAxOnpZYihhKTtEWWIoYSk7elliKGEpO3NZYihhKTticmVhaztjYXNlIDQ6elliKGEpO0FZYihhKTt9fXJldHVybiBhfVxuZnVuY3Rpb24gQ3NkKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksajtpZihaRChhLkVoKCksMTY3KSl7Q3NkKFJEKGEuRWgoKSwxNjcpLGIpO2IuYSs9JyA+ICd9ZWxzZXtiLmErPSdSb290ICd9Yz1hLkRoKCkuemI7bGhiKGMuc3Vic3RyKDAsMyksJ0VsaycpP1poYihiLChCRmIoMyxjLmxlbmd0aCsxKSxjLnN1YnN0cigzKSkpOihiLmErPScnK2MsYik7ZT1hLmpoKCk7aWYoZSl7WmhiKChiLmErPScgJyxiKSxlKTtyZXR1cm59aWYoWkQoYSwzNjYpKXtqPVJEKGEsMTM1KS5hO2lmKGope1poYigoYi5hKz0nICcsYiksaik7cmV0dXJufX1mb3IoZz1uZXcgZE1kKGEua2goKSk7Zy5lIT1nLmkuZ2MoKTspe2Y9UkQoYk1kKGcpLDEzNSk7aj1mLmE7aWYoail7WmhiKChiLmErPScgJyxiKSxqKTtyZXR1cm59fWlmKFpEKGEsMzI2KSl7ZD1SRChhLDc0KTshZC5iJiYoZC5iPW5ldyBZaWUoRTQsZCw0LDcpKTtpZihkLmIuaSE9MCYmKCFkLmMmJihkLmM9bmV3IFlpZShFNCxkLDUsOCkpLGQuYy5pIT0wKSl7Yi5hKz0nICgnO2g9bmV3IG1NZCgoIWQuYiYmKGQuYj1uZXcgWWllKEU0LGQsNCw3KSksZC5iKSk7d2hpbGUoaC5lIT1oLmkuZ2MoKSl7aC5lPjAmJihiLmErPXB2ZSxiKTtDc2QoUkQoYk1kKGgpLDE2NyksYil9Yi5hKz1TQWU7aT1uZXcgbU1kKCghZC5jJiYoZC5jPW5ldyBZaWUoRTQsZCw1LDgpKSxkLmMpKTt3aGlsZShpLmUhPWkuaS5nYygpKXtpLmU+MCYmKGIuYSs9cHZlLGIpO0NzZChSRChiTWQoaSksMTY3KSxiKX1iLmErPScpJ319fVxuZnVuY3Rpb24gTFRiKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrO2ZvcihpPW5ldyBkTWQoKCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKSk7aS5lIT1pLmkuZ2MoKTspe2g9UkQoYk1kKGkpLDI3KTtmb3IoZT1uZXcgaXMoTXIoekdkKGgpLmEuS2MoKSxuZXcgaXIpKTtncyhlKTspe2Q9UkQoaHMoZSksNzQpOyFkLmImJihkLmI9bmV3IFlpZShFNCxkLDQsNykpO2lmKCEoZC5iLmk8PTEmJighZC5jJiYoZC5jPW5ldyBZaWUoRTQsZCw1LDgpKSxkLmMuaTw9MSkpKXt0aHJvdyBBZGIobmV3IEtlZCgnR3JhcGggbXVzdCBub3QgY29udGFpbiBoeXBlcmVkZ2VzLicpKX1pZighbnpkKGQpJiZoIT1BR2QoUkQoUUhkKCghZC5jJiYoZC5jPW5ldyBZaWUoRTQsZCw1LDgpKSxkLmMpLDApLDg0KSkpe2o9bmV3IGNVYjtrUWIoaixkKTtwUWIoaiwoSlZiKCksSFZiKSxkKTtfVGIoaixSRChXZChxdGIoYy5mLGgpKSwxNTMpKTthVWIoaixSRChXamIoYyxBR2QoUkQoUUhkKCghZC5jJiYoZC5jPW5ldyBZaWUoRTQsZCw1LDgpKSxkLmMpLDApLDg0KSkpLDE1MykpO1JtYihiLmMsaik7Zm9yKGc9bmV3IGRNZCgoIWQubiYmKGQubj1uZXcgQzVkKEk0LGQsMSw3KSksZC5uKSk7Zy5lIT1nLmkuZ2MoKTspe2Y9UkQoYk1kKGcpLDEzNSk7az1uZXcgaVViKGosZi5hKTtrUWIoayxmKTtwUWIoayxIVmIsZik7ay5lLmE9JHduZC5NYXRoLm1heChmLmcsMSk7ay5lLmI9JHduZC5NYXRoLm1heChmLmYsMSk7aFViKGspO1JtYihiLmQsayl9fX19fVxuZnVuY3Rpb24gVmVjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbTtjLlVnKCdOb2RlIHByb21vdGlvbiBoZXVyaXN0aWMnLDEpO2EuaT1iO2Eucj1SRChtUWIoYiwoeUNjKCksWkFjKSksMjQzKTthLnIhPShhRWMoKSxURGMpJiZhLnIhPVVEYz9UZWMoYSk6VWVjKGEpO2s9UkQobVFiKGEuaSxZQWMpLDE3KS5hO2Y9bmV3IG5mYztzd2l0Y2goYS5yLmcpe2Nhc2UgMjpjYXNlIDE6WWVjKGEsZik7YnJlYWs7Y2FzZSAzOmEucj1fRGM7WWVjKGEsZik7aT0wO2ZvcihoPW5ldyBBbmIoYS5iKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTcpO2k9JHduZC5NYXRoLm1heChpLGcuYSl9aWYoaT5hLmspe2Eucj1WRGM7WWVjKGEsZil9YnJlYWs7Y2FzZSA0OmEucj1fRGM7WWVjKGEsZik7aj0wO2ZvcihlPW5ldyBBbmIoYS5jKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1VRCh5bmIoZSkpO2o9JHduZC5NYXRoLm1heChqLCh1RmIoZCksZCkpfWlmKGo+YS5uKXthLnI9WURjO1llYyhhLGYpfWJyZWFrO2Nhc2UgNjptPWVFKCR3bmQuTWF0aC5jZWlsKGEuZy5sZW5ndGgqay8xMDApKTtZZWMoYSxuZXcgcWZjKG0pKTticmVhaztjYXNlIDU6bD1lRSgkd25kLk1hdGguY2VpbChhLmUqay8xMDApKTtZZWMoYSxuZXcgdGZjKGwpKTticmVhaztjYXNlIDg6U2VjKGEsdHJ1ZSk7YnJlYWs7Y2FzZSA5OlNlYyhhLGZhbHNlKTticmVhaztkZWZhdWx0OlllYyhhLGYpO31hLnIhPVREYyYmYS5yIT1VRGM/WmVjKGEsYik6JGVjKGEsYik7Yy5WZygpfVxuZnVuY3Rpb24gJHJjKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0O2w9YS5iO2s9bmV3IEprYihsLDApO0lrYihrLG5ldyBSNGIoYSkpO3M9ZmFsc2U7Zz0xO3doaWxlKGsuYjxrLmQuZ2MoKSl7aj0oc0ZiKGsuYjxrLmQuZ2MoKSksUkQoay5kLlhiKGsuYz1rLmIrKyksMzApKTtwPSh0RmIoZyxsLmMubGVuZ3RoKSxSRChsLmNbZ10sMzApKTtxPWJ2KGouYSk7cj1xLmMubGVuZ3RoO2ZvcihvPW5ldyBBbmIocSk7by5hPG8uYy5jLmxlbmd0aDspe209UkQoeW5iKG8pLDEwKTtnM2IobSxwKX1pZihzKXtmb3Iobj1odihxKS5LYygpO24uT2IoKTspe209UkQobi5QYigpLDEwKTtmb3IoZj1uZXcgQW5iKGJ2KFoyYihtKSkpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxOCk7WDBiKGUsdHJ1ZSk7cFFiKGEsKFl3YygpLGF3YyksKEdlYigpLHRydWUpKTtkPW9zYyhhLGUscik7Yz1SRChtUWIobSxXdmMpLDMxMyk7dD1SRChWbWIoZCxkLmMubGVuZ3RoLTEpLDE4KTtjLms9dC5jLmk7Yy5uPXQ7Yy5iPWUuZC5pO2MuYz1lfX1zPWZhbHNlfWVsc2V7aWYocS5jLmxlbmd0aCE9MCl7Yj0odEZiKDAscS5jLmxlbmd0aCksUkQocS5jWzBdLDEwKSk7aWYoYi5rPT0ocjNiKCksbDNiKSl7cz10cnVlO2c9LTF9fX0rK2d9aD1uZXcgSmtiKGEuYiwwKTt3aGlsZShoLmI8aC5kLmdjKCkpe2k9KHNGYihoLmI8aC5kLmdjKCkpLFJEKGguZC5YYihoLmM9aC5iKyspLDMwKSk7aS5hLmMubGVuZ3RoPT0wJiZDa2IoaCl9fVxuZnVuY3Rpb24gRkpiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0O2w9bmV3IENMYihhKTtfTWIobCwhKGI9PShDbWQoKSxCbWQpfHxiPT14bWQpKTtrPWwuYTttPW5ldyB6M2I7Zm9yKGU9KFpKYigpLGNEKFdDKEpOLDEpLGp3ZSwyMzcsMCxbV0piLFhKYixZSmJdKSksZz0wLGk9ZS5sZW5ndGg7ZzxpOysrZyl7Yz1lW2ddO2o9b0tiKGssV0piLGMpOyEhaiYmKG0uZD0kd25kLk1hdGgubWF4KG0uZCxqLmpmKCkpKX1mb3IoZD1jRChXQyhKTiwxKSxqd2UsMjM3LDAsW1dKYixYSmIsWUpiXSksZj0wLGg9ZC5sZW5ndGg7ZjxoOysrZil7Yz1kW2ZdO2o9b0tiKGssWUpiLGMpOyEhaiYmKG0uYT0kd25kLk1hdGgubWF4KG0uYSxqLmpmKCkpKX1mb3IocD1jRChXQyhKTiwxKSxqd2UsMjM3LDAsW1dKYixYSmIsWUpiXSkscj0wLHQ9cC5sZW5ndGg7cjx0Oysrcil7bj1wW3JdO2o9b0tiKGssbixXSmIpOyEhaiYmKG0uYj0kd25kLk1hdGgubWF4KG0uYixqLmtmKCkpKX1mb3Iobz1jRChXQyhKTiwxKSxqd2UsMjM3LDAsW1dKYixYSmIsWUpiXSkscT0wLHM9by5sZW5ndGg7cTxzOysrcSl7bj1vW3FdO2o9b0tiKGssbixZSmIpOyEhaiYmKG0uYz0kd25kLk1hdGgubWF4KG0uYyxqLmtmKCkpKX1pZihtLmQ+MCl7bS5kKz1rLm4uZDttLmQrPWsuZH1pZihtLmE+MCl7bS5hKz1rLm4uYTttLmErPWsuZH1pZihtLmI+MCl7bS5iKz1rLm4uYjttLmIrPWsuZH1pZihtLmM+MCl7bS5jKz1rLm4uYzttLmMrPWsuZH1yZXR1cm4gbX1cbmZ1bmN0aW9uIHU5YihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvO209Yy5kO2w9Yy5jO2Y9bmV3IHJqZChjLmYuYStjLmQuYitjLmQuYyxjLmYuYitjLmQuZCtjLmQuYSk7Zz1mLmI7Zm9yKGo9bmV3IEFuYihhLmEpO2ouYTxqLmMuYy5sZW5ndGg7KXtoPVJEKHluYihqKSwxMCk7aWYoaC5rIT0ocjNiKCksbTNiKSl7Y29udGludWV9ZD1SRChtUWIoaCwoWXdjKCksaHdjKSksNjQpO2U9UkQobVFiKGgsaXdjKSw4KTtrPWgubjtzd2l0Y2goZC5nKXtjYXNlIDI6ay5hPWMuZi5hK20uYy1sLmE7YnJlYWs7Y2FzZSA0OmsuYT0tbC5hLW0uYjt9bz0wO3N3aXRjaChkLmcpe2Nhc2UgMjpjYXNlIDQ6aWYoYj09KEJvZCgpLHhvZCkpe249S2ZiKFVEKG1RYihoLEp3YykpKTtrLmI9Zi5iKm4tUkQobVFiKGgsKHlDYygpLHpCYykpLDgpLmI7bz1rLmIrZS5iO1UyYihoLGZhbHNlLHRydWUpfWVsc2UgaWYoYj09d29kKXtrLmI9S2ZiKFVEKG1RYihoLEp3YykpKS1SRChtUWIoaCwoeUNjKCksekJjKSksOCkuYjtvPWsuYitlLmI7VTJiKGgsZmFsc2UsdHJ1ZSl9fWc9JHduZC5NYXRoLm1heChnLG8pfWMuZi5iKz1nLWYuYjtmb3IoaT1uZXcgQW5iKGEuYSk7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDEwKTtpZihoLmshPShyM2IoKSxtM2IpKXtjb250aW51ZX1kPVJEKG1RYihoLChZd2MoKSxod2MpKSw2NCk7az1oLm47c3dpdGNoKGQuZyl7Y2FzZSAxOmsuYj0tbC5iLW0uZDticmVhaztjYXNlIDM6ay5iPWMuZi5iK20uYS1sLmI7fX19XG5mdW5jdGlvbiBuTmIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscjtrPVJEKFJEKFFjKGEucixiKSwyMSksODcpO2lmKGsuZ2MoKTw9Mnx8Yj09KHFwZCgpLFhvZCl8fGI9PShxcGQoKSxwcGQpKXtyTmIoYSxiKTtyZXR1cm59cD1hLnUuSGMoKFBvZCgpLE9vZCkpO2M9Yj09KHFwZCgpLFlvZCk/KG1PYigpLGxPYik6KG1PYigpLGlPYik7cj1iPT1Zb2Q/KHZMYigpLHNMYik6KHZMYigpLHVMYik7ZD1XTmIoX05iKGMpLGEucyk7cT1iPT1Zb2Q/b3hlOnB4ZTtmb3Ioaj1rLktjKCk7ai5PYigpOyl7aD1SRChqLlBiKCksMTE3KTtpZighaC5jfHxoLmMuZC5jLmxlbmd0aDw9MCl7Y29udGludWV9bz1oLmIuTWYoKTtuPWguZTtsPWguYzttPWwuaTttLmI9KGY9bC5uLGwuZS5hK2YuYitmLmMpO20uYT0oZz1sLm4sbC5lLmIrZy5kK2cuYSk7aWYocCl7bS5jPW4uYS0oZT1sLm4sbC5lLmErZS5iK2UuYyktYS5zO3A9ZmFsc2V9ZWxzZXttLmM9bi5hK28uYSthLnN9SXZiKHIsUHllKTtsLmY9cjtSS2IobCwoRUtiKCksREtiKSk7Um1iKGQuZCxuZXcgc09iKG0sVU5iKGQsbSkpKTtxPWI9PVlvZD8kd25kLk1hdGgubWluKHEsbi5iKTokd25kLk1hdGgubWF4KHEsbi5iK2guYi5NZigpLmIpfXErPWI9PVlvZD8tYS50OmEudDtWTmIoKGQuZT1xLGQpKTtmb3IoaT1rLktjKCk7aS5PYigpOyl7aD1SRChpLlBiKCksMTE3KTtpZighaC5jfHxoLmMuZC5jLmxlbmd0aDw9MCl7Y29udGludWV9bT1oLmMuaTttLmMtPWguZS5hO20uZC09aC5lLmJ9fVxuZnVuY3Rpb24gRDBiKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0O2U9bmV3IGJuYjtmb3IocD1uZXcgQW5iKGIuYSk7cC5hPHAuYy5jLmxlbmd0aDspe289UkQoeW5iKHApLDEwKTtuPW8uZTtpZihuKXtkPUQwYihhLG4sbyk7VG1iKGUsZCk7QTBiKGEsbixvKTtpZihSRChtUWIobiwoWXdjKCksa3djKSksMjEpLkhjKChvdmMoKSxodmMpKSl7cz1SRChtUWIobywoeUNjKCksQkJjKSksMTAxKTttPVJEKG1RYihvLEVCYyksMTgxKS5IYygoUG9kKCksTG9kKSk7Zm9yKHI9bmV3IEFuYihvLmopO3IuYTxyLmMuYy5sZW5ndGg7KXtxPVJEKHluYihyKSwxMik7Zj1SRChXamIoYS5iLHEpLDEwKTtpZighZil7Zj1mMmIocSxzLHEuaiwtKHEuZS5jLmxlbmd0aC1xLmcuYy5sZW5ndGgpLG51bGwsbmV3IHBqZCxxLm8sUkQobVFiKG4sckFjKSw4OCksbik7cFFiKGYsQXdjLHEpO1pqYihhLmIscSxmKTtSbWIobi5hLGYpfWc9UkQoVm1iKGYuaiwwKSwxMik7Zm9yKGs9bmV3IEFuYihxLmYpO2suYTxrLmMuYy5sZW5ndGg7KXtqPVJEKHluYihrKSw3Mik7aD1uZXcgeDJiO2guby5hPWouby5hO2guby5iPWouby5iO1JtYihnLmYsaCk7aWYoIW0pe3Q9cS5qO2w9MDtSb2QoUkQobVFiKG8sRUJjKSwyMSkpJiYobD1xc2Qoai5uLGoubyxxLm8sMCx0KSk7cz09KEJvZCgpLHpvZCl8fChxcGQoKSxhcGQpLkhjKHQpPyhoLm8uYT1sKTooaC5vLmI9bCl9fX19fX1pPW5ldyBibmI7ejBiKGEsYixjLGUsaSk7ISFjJiZCMGIoYSxiLGMsaSk7cmV0dXJuIGl9XG5mdW5jdGlvbiBOSWMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbDtpZihhLmNbYi5jLnBdW2IucF0uZSl7cmV0dXJufWVsc2V7YS5jW2IuYy5wXVtiLnBdLmU9dHJ1ZX1hLmNbYi5jLnBdW2IucF0uYj0wO2EuY1tiLmMucF1bYi5wXS5kPTA7YS5jW2IuYy5wXVtiLnBdLmE9bnVsbDtmb3Ioaz1uZXcgQW5iKGIuaik7ay5hPGsuYy5jLmxlbmd0aDspe2o9UkQoeW5iKGspLDEyKTtsPWM/bmV3IFQzYihqKTpuZXcgXzNiKGopO2ZvcihpPWwuS2MoKTtpLk9iKCk7KXtoPVJEKGkuUGIoKSwxMik7Zz1oLmk7aWYoZy5jPT1iLmMpe2lmKGchPWIpe05JYyhhLGcsYyk7YS5jW2IuYy5wXVtiLnBdLmIrPWEuY1tnLmMucF1bZy5wXS5iO2EuY1tiLmMucF1bYi5wXS5kKz1hLmNbZy5jLnBdW2cucF0uZH19ZWxzZXthLmNbYi5jLnBdW2IucF0uZCs9YS5nW2gucF07KythLmNbYi5jLnBdW2IucF0uYn19fWY9UkQobVFiKGIsKFl3YygpLFV2YykpLDE1KTtpZihmKXtmb3IoZT1mLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMTApO2lmKGIuYz09ZC5jKXtOSWMoYSxkLGMpO2EuY1tiLmMucF1bYi5wXS5iKz1hLmNbZC5jLnBdW2QucF0uYjthLmNbYi5jLnBdW2IucF0uZCs9YS5jW2QuYy5wXVtkLnBdLmR9fX1pZihhLmNbYi5jLnBdW2IucF0uYj4wKXthLmNbYi5jLnBdW2IucF0uZCs9S3diKGEuaSwyNCkqTnhlKjAuMDcwMDAwMDAwMjk4MDIzMjItMC4wMzUwMDAwMDAxNDkwMTE2MTthLmNbYi5jLnBdW2IucF0uYT1hLmNbYi5jLnBdW2IucF0uZC9hLmNbYi5jLnBdW2IucF0uYn19XG5mdW5jdGlvbiBEOGIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHE7Zm9yKG89bmV3IEFuYihhKTtvLmE8by5jLmMubGVuZ3RoOyl7bj1SRCh5bmIobyksMTApO0U4YihuLm4pO0U4YihuLm8pO0Y4YihuLmYpO0k4YihuKTtLOGIobik7Zm9yKHE9bmV3IEFuYihuLmopO3EuYTxxLmMuYy5sZW5ndGg7KXtwPVJEKHluYihxKSwxMik7RThiKHAubik7RThiKHAuYSk7RThiKHAubyk7UTNiKHAsSjhiKHAuaikpO2Y9UkQobVFiKHAsKHlDYygpLENCYykpLDE3KTshIWYmJnBRYihwLENCYyxzZ2IoLWYuYSkpO2ZvcihlPW5ldyBBbmIocC5nKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTgpO2ZvcihjPVN1YihkLmEsMCk7Yy5iIT1jLmQuYzspe2I9UkQoZXZiKGMpLDgpO0U4YihiKX1pPVJEKG1RYihkLFJBYyksNzUpO2lmKGkpe2ZvcihoPVN1YihpLDApO2guYiE9aC5kLmM7KXtnPVJEKGV2YihoKSw4KTtFOGIoZyl9fWZvcihsPW5ldyBBbmIoZC5iKTtsLmE8bC5jLmMubGVuZ3RoOyl7aj1SRCh5bmIobCksNzIpO0U4YihqLm4pO0U4YihqLm8pfX1mb3IobT1uZXcgQW5iKHAuZik7bS5hPG0uYy5jLmxlbmd0aDspe2o9UkQoeW5iKG0pLDcyKTtFOGIoai5uKTtFOGIoai5vKX19aWYobi5rPT0ocjNiKCksbTNiKSl7cFFiKG4sKFl3YygpLGh3YyksSjhiKFJEKG1RYihuLGh3YyksNjQpKSk7SDhiKG4pfWZvcihrPW5ldyBBbmIobi5iKTtrLmE8ay5jLmMubGVuZ3RoOyl7aj1SRCh5bmIoayksNzIpO0k4YihqKTtFOGIoai5vKTtFOGIoai5uKX19fVxuZnVuY3Rpb24gaUVkKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQsRixHO0Q9V2piKGEuZSxkKTtpZihEPT1udWxsKXtEPW5ldyB1QztuPVJEKEQsMTkwKTtzPWIrJ19zJzt0PXMrZTttPW5ldyBPQyh0KTtzQyhuLHVJZSxtKX1DPVJEKEQsMTkwKTtvRGQoYyxDKTtHPW5ldyB1QztxRGQoRywneCcsZC5qKTtxRGQoRywneScsZC5rKTtzQyhDLHhJZSxHKTtBPW5ldyB1QztxRGQoQSwneCcsZC5iKTtxRGQoQSwneScsZC5jKTtzQyhDLCdlbmRQb2ludCcsQSk7bD1jdmUoKCFkLmEmJihkLmE9bmV3IFhaZChENCxkLDUpKSxkLmEpKTtvPSFsO2lmKG8pe3c9bmV3IE1CO2Y9bmV3IHFGZCh3KTt4Z2IoKCFkLmEmJihkLmE9bmV3IFhaZChENCxkLDUpKSxkLmEpLGYpO3NDKEMsbkllLHcpfWk9RHpkKGQpO3U9ISFpO3UmJnJEZChhLmEsQyxwSWUsS0RkKGEsRHpkKGQpKSk7cj1FemQoZCk7dj0hIXI7diYmckRkKGEuYSxDLG9JZSxLRGQoYSxFemQoZCkpKTtqPSghZC5lJiYoZC5lPW5ldyBZaWUoRjQsZCwxMCw5KSksZC5lKS5pPT0wO3A9IWo7aWYocCl7Qj1uZXcgTUI7Zz1uZXcgc0ZkKGEsQik7eGdiKCghZC5lJiYoZC5lPW5ldyBZaWUoRjQsZCwxMCw5KSksZC5lKSxnKTtzQyhDLHJJZSxCKX1rPSghZC5nJiYoZC5nPW5ldyBZaWUoRjQsZCw5LDEwKSksZC5nKS5pPT0wO3E9IWs7aWYocSl7Rj1uZXcgTUI7aD1uZXcgdUZkKGEsRik7eGdiKCghZC5nJiYoZC5nPW5ldyBZaWUoRjQsZCw5LDEwKSksZC5nKSxoKTtzQyhDLHFJZSxGKX19XG5mdW5jdGlvbiBYTWIoYSl7Uk1iKCk7dmFyIGIsYyxkLGUsZixnLGg7ZD1hLmYubjtmb3IoZz1raShhLnIpLmEubmMoKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSwxMTcpO2U9MDtpZihmLmIucGYoKHVtZCgpLEdsZCkpKXtlPUtmYihVRChmLmIub2YoR2xkKSkpO2lmKGU8MCl7c3dpdGNoKGYuYi5hZygpLmcpe2Nhc2UgMTpkLmQ9JHduZC5NYXRoLm1heChkLmQsLWUpO2JyZWFrO2Nhc2UgMzpkLmE9JHduZC5NYXRoLm1heChkLmEsLWUpO2JyZWFrO2Nhc2UgMjpkLmM9JHduZC5NYXRoLm1heChkLmMsLWUpO2JyZWFrO2Nhc2UgNDpkLmI9JHduZC5NYXRoLm1heChkLmIsLWUpO319fWlmKFJvZChhLnUpKXtiPXJzZChmLmIsZSk7aD0hUkQoYS5lLm9mKHBsZCksMTgxKS5IYygoZHFkKCksV3BkKSk7Yz1mYWxzZTtzd2l0Y2goZi5iLmFnKCkuZyl7Y2FzZSAxOmM9Yj5kLmQ7ZC5kPSR3bmQuTWF0aC5tYXgoZC5kLGIpO2lmKGgmJmMpe2QuZD0kd25kLk1hdGgubWF4KGQuZCxkLmEpO2QuYT1kLmQrZX1icmVhaztjYXNlIDM6Yz1iPmQuYTtkLmE9JHduZC5NYXRoLm1heChkLmEsYik7aWYoaCYmYyl7ZC5hPSR3bmQuTWF0aC5tYXgoZC5hLGQuZCk7ZC5kPWQuYStlfWJyZWFrO2Nhc2UgMjpjPWI+ZC5jO2QuYz0kd25kLk1hdGgubWF4KGQuYyxiKTtpZihoJiZjKXtkLmM9JHduZC5NYXRoLm1heChkLmIsZC5jKTtkLmI9ZC5jK2V9YnJlYWs7Y2FzZSA0OmM9Yj5kLmI7ZC5iPSR3bmQuTWF0aC5tYXgoZC5iLGIpO2lmKGgmJmMpe2QuYj0kd25kLk1hdGgubWF4KGQuYixkLmMpO2QuYz1kLmIrZX19fX19XG5mdW5jdGlvbiBwQShhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztqPScnO2lmKGIubGVuZ3RoPT0wKXtyZXR1cm4gYS5uZSh5d2Usd3dlLC0xLC0xKX1rPURoYihiKTtsaGIoay5zdWJzdHIoMCwzKSwnYXQgJykmJihrPShCRmIoMyxrLmxlbmd0aCsxKSxrLnN1YnN0cigzKSkpO2s9ay5yZXBsYWNlKC9cXFsuKj9cXF0vZywnJyk7Zz1rLmluZGV4T2YoJygnKTtpZihnPT0tMSl7Zz1rLmluZGV4T2YoJ0AnKTtpZihnPT0tMSl7aj1rO2s9Jyd9ZWxzZXtqPURoYigoQkZiKGcrMSxrLmxlbmd0aCsxKSxrLnN1YnN0cihnKzEpKSk7az1EaGIoKEFGYigwLGcsay5sZW5ndGgpLGsuc3Vic3RyKDAsZykpKX19ZWxzZXtjPWsuaW5kZXhPZignKScsZyk7aj0oQUZiKGcrMSxjLGsubGVuZ3RoKSxrLnN1YnN0cihnKzEsYy0oZysxKSkpO2s9RGhiKChBRmIoMCxnLGsubGVuZ3RoKSxrLnN1YnN0cigwLGcpKSl9Zz1xaGIoayxGaGIoNDYpKTtnIT0tMSYmKGs9KEJGYihnKzEsay5sZW5ndGgrMSksay5zdWJzdHIoZysxKSkpOyhrLmxlbmd0aD09MHx8bGhiKGssJ0Fub255bW91cyBmdW5jdGlvbicpKSYmKGs9d3dlKTtoPXRoYihqLEZoYig1OCkpO2U9dWhiKGosRmhiKDU4KSxoLTEpO2k9LTE7ZD0tMTtmPXl3ZTtpZihoIT0tMSYmZSE9LTEpe2Y9KEFGYigwLGUsai5sZW5ndGgpLGouc3Vic3RyKDAsZSkpO2k9akEoKEFGYihlKzEsaCxqLmxlbmd0aCksai5zdWJzdHIoZSsxLGgtKGUrMSkpKSk7ZD1qQSgoQkZiKGgrMSxqLmxlbmd0aCsxKSxqLnN1YnN0cihoKzEpKSl9cmV0dXJuIGEubmUoZixrLGksZCl9XG5mdW5jdGlvbiBDNmIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbDtmb3Ioaj1uZXcgQW5iKGEpO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwxMCk7Zz1SRChtUWIoaSwoeUNjKCksVUFjKSksMTcxKTtmPW51bGw7c3dpdGNoKGcuZyl7Y2FzZSAxOmNhc2UgMjpmPShodWMoKSxndWMpO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6Zj0oaHVjKCksZXVjKTt9aWYoZil7cFFiKGksKFl3YygpLGJ3YyksKGh1YygpLGd1YykpO2Y9PWV1Yz9GNmIoaSxnLChCRWMoKSx5RWMpKTpmPT1ndWMmJkY2YihpLGcsKEJFYygpLHpFYykpfWVsc2V7aWYoRG9kKFJEKG1RYihpLEJCYyksMTAxKSkmJmkuai5jLmxlbmd0aCE9MCl7Yj10cnVlO2ZvcihsPW5ldyBBbmIoaS5qKTtsLmE8bC5jLmMubGVuZ3RoOyl7az1SRCh5bmIobCksMTIpO2lmKCEoay5qPT0ocXBkKCksWG9kKSYmay5lLmMubGVuZ3RoLWsuZy5jLmxlbmd0aD4wfHxrLmo9PXBwZCYmay5lLmMubGVuZ3RoLWsuZy5jLmxlbmd0aDwwKSl7Yj1mYWxzZTticmVha31mb3IoZT1uZXcgQW5iKGsuZyk7ZS5hPGUuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGUpLDE4KTtoPVJEKG1RYihjLmQuaSxVQWMpLDE3MSk7aWYoaD09KGN4YygpLF93Yyl8fGg9PWF4Yyl7Yj1mYWxzZTticmVha319Zm9yKGQ9bmV3IEFuYihrLmUpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxOCk7aD1SRChtUWIoYy5jLmksVUFjKSwxNzEpO2lmKGg9PShjeGMoKSxad2MpfHxoPT0kd2Mpe2I9ZmFsc2U7YnJlYWt9fX1iJiZGNmIoaSxnLChCRWMoKSxBRWMpKX19fX1cbmZ1bmN0aW9uIExOYyhhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdzt3PTA7bj0wO2ZvcihsPW5ldyBBbmIoYi5lKTtsLmE8bC5jLmMubGVuZ3RoOyl7az1SRCh5bmIobCksMTApO209MDtoPTA7aT1jP1JEKG1RYihrLEhOYyksMTcpLmE6cXdlO3I9ZD9SRChtUWIoayxJTmMpLDE3KS5hOnF3ZTtqPSR3bmQuTWF0aC5tYXgoaSxyKTtmb3IodD1uZXcgQW5iKGsuaik7dC5hPHQuYy5jLmxlbmd0aDspe3M9UkQoeW5iKHQpLDEyKTt1PWsubi5iK3Mubi5iK3MuYS5iO2lmKGQpe2ZvcihnPW5ldyBBbmIocy5nKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMTgpO3A9Zi5kO289cC5pO2lmKGIhPWEuYVtvLnBdKXtxPSR3bmQuTWF0aC5tYXgoUkQobVFiKG8sSE5jKSwxNykuYSxSRChtUWIobyxJTmMpLDE3KS5hKTt2PVJEKG1RYihmLCh5Q2MoKSxNQmMpKSwxNykuYTtpZih2Pj1qJiZ2Pj1xKXttKz1vLm4uYitwLm4uYitwLmEuYi11OysraH19fX1pZihjKXtmb3IoZz1uZXcgQW5iKHMuZSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDE4KTtwPWYuYztvPXAuaTtpZihiIT1hLmFbby5wXSl7cT0kd25kLk1hdGgubWF4KFJEKG1RYihvLEhOYyksMTcpLmEsUkQobVFiKG8sSU5jKSwxNykuYSk7dj1SRChtUWIoZiwoeUNjKCksTUJjKSksMTcpLmE7aWYodj49aiYmdj49cSl7bSs9by5uLmIrcC5uLmIrcC5hLmItdTsrK2h9fX19fWlmKGg+MCl7dys9bS9oOysrbn19aWYobj4wKXtiLmE9ZSp3L247Yi5nPW59ZWxzZXtiLmE9MDtiLmc9MH19XG5mdW5jdGlvbiBoVGIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQTtmPWEuZi5iO209Zi5hO2s9Zi5iO289YS5lLmc7bj1hLmUuZjt6eWQoYS5lLGYuYSxmLmIpO3c9bS9vO0E9ay9uO2ZvcihqPW5ldyBkTWQoaXlkKGEuZSkpO2ouZSE9ai5pLmdjKCk7KXtpPVJEKGJNZChqKSwxMzUpO0R5ZChpLGkuaSp3KTtFeWQoaSxpLmoqQSl9Zm9yKHM9bmV3IGRNZCh3Q2QoYS5lKSk7cy5lIT1zLmkuZ2MoKTspe3I9UkQoYk1kKHMpLDEyMyk7dT1yLmk7dj1yLmo7dT4wJiZEeWQocix1KncpO3Y+MCYmRXlkKHIsdipBKX1CdmIoYS5iLG5ldyB0VGIpO2I9bmV3IGJuYjtmb3IoaD1uZXcgdmtiKChuZXcgbWtiKGEuYykpLmEpO2guYjspe2c9dGtiKGgpO2Q9UkQoZy5sZCgpLDc0KTtjPVJEKGcubWQoKSw0MDcpLmE7ZT1JR2QoZCxmYWxzZSxmYWxzZSk7bD1mVGIoSkdkKGQpLHNzZChlKSxjKTtsc2QobCxlKTt0PUtHZChkKTtpZighIXQmJldtYihiLHQsMCk9PS0xKXtaRWIoYi5jLHQpO2dUYih0LChzRmIobC5iIT0wKSxSRChsLmEuYS5jLDgpKSxjKX19Zm9yKHE9bmV3IHZrYigobmV3IG1rYihhLmQpKS5hKTtxLmI7KXtwPXRrYihxKTtkPVJEKHAubGQoKSw3NCk7Yz1SRChwLm1kKCksNDA3KS5hO2U9SUdkKGQsZmFsc2UsZmFsc2UpO2w9ZlRiKExHZChkKSxJamQoc3NkKGUpKSxjKTtsPUlqZChsKTtsc2QobCxlKTt0PU1HZChkKTtpZighIXQmJldtYihiLHQsMCk9PS0xKXtaRWIoYi5jLHQpO2dUYih0LChzRmIobC5iIT0wKSxSRChsLmMuYi5jLDgpKSxjKX19fVxuZnVuY3Rpb24gR0piKGEsYixjLGQpe3ZhciBlLGYsZyxoLGk7aD1uZXcgQ0xiKGIpO2lOYihoLGQpO2U9dHJ1ZTtpZighIWEmJmEucGYoKHVtZCgpLE5rZCkpKXtmPVJEKGEub2YoKHVtZCgpLE5rZCkpLDg4KTtlPWY9PShDbWQoKSxBbWQpfHxmPT15bWR8fGY9PXptZH0kTWIoaCxmYWxzZSk7VW1iKGguZS5SZigpLG5ldyBkTmIoaCxmYWxzZSxlKSk7RU1iKGgsaC5mLChaSmIoKSxXSmIpLChxcGQoKSxZb2QpKTtFTWIoaCxoLmYsWUpiLG5wZCk7RU1iKGgsaC5nLFdKYixwcGQpO0VNYihoLGguZyxZSmIsWG9kKTtHTWIoaCxZb2QpO0dNYihoLG5wZCk7Rk1iKGgsWG9kKTtGTWIoaCxwcGQpO1JNYigpO2c9aC5BLkhjKChRcGQoKSxNcGQpKSYmaC5CLkhjKChkcWQoKSwkcGQpKT9TTWIoaCk6bnVsbDshIWcmJnVLYihoLmEsZyk7WE1iKGgpO3hNYihoKTtHTmIoaCk7c01iKGgpO2dOYihoKTt5TmIoaCk7b05iKGgsWW9kKTtvTmIoaCxucGQpO3RNYihoKTtmTmIoaCk7aWYoIWMpe3JldHVybiBoLm99Vk1iKGgpO0NOYihoKTtvTmIoaCxYb2QpO29OYihoLHBwZCk7aT1oLkIuSGMoKGRxZCgpLF9wZCkpO0lNYihoLGksWW9kKTtJTWIoaCxpLG5wZCk7Sk1iKGgsaSxYb2QpO0pNYihoLGkscHBkKTtGRGIobmV3IFNEYihudWxsLG5ldyBTd2IobmV3IGdsYihoLmkpLDApKSxuZXcgS01iKTtGRGIoQ0RiKG5ldyBTRGIobnVsbCxraShoLnIpLmEub2MoKSksbmV3IE1NYiksbmV3IE9NYik7V01iKGgpO2guZS5QZihoLm8pO0ZEYihuZXcgU0RiKG51bGwsa2koaC5yKS5hLm9jKCkpLG5ldyBZTWIpO3JldHVybiBoLm99XG5mdW5jdGlvbiBMWWIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwO2o9b3hlO2ZvcihkPW5ldyBBbmIoYS5hLmIpO2QuYTxkLmMuYy5sZW5ndGg7KXtiPVJEKHluYihkKSw4Nik7aj0kd25kLk1hdGgubWluKGosYi5kLmYuZy5jK2IuZS5hKX1uPW5ldyBZdWI7Zm9yKGc9bmV3IEFuYihhLmEuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDE5NCk7Zi5pPWo7Zi5lPT0wJiYoUHViKG4sZixuLmMuYixuLmMpLHRydWUpfXdoaWxlKG4uYiE9MCl7Zj1SRChuLmI9PTA/bnVsbDooc0ZiKG4uYiE9MCksV3ViKG4sbi5hLmEpKSwxOTQpO2U9Zi5mLmcuYztmb3IobT1mLmEuYS5lYygpLktjKCk7bS5PYigpOyl7az1SRChtLlBiKCksODYpO3A9Zi5pK2suZS5hO2suZC5nfHxrLmcuYzxwPyhrLm89cCk6KGsubz1rLmcuYyl9ZS09Zi5mLm87Zi5iKz1lO2EuYz09KENtZCgpLHptZCl8fGEuYz09eG1kPyhmLmMrPWUpOihmLmMtPWUpO2ZvcihsPWYuYS5hLmVjKCkuS2MoKTtsLk9iKCk7KXtrPVJEKGwuUGIoKSw4Nik7Zm9yKGk9ay5mLktjKCk7aS5PYigpOyl7aD1SRChpLlBiKCksODYpO0RtZChhLmMpPyhvPWEuZi55ZihrLGgpKToobz1hLmYuemYoayxoKSk7aC5kLmk9JHduZC5NYXRoLm1heChoLmQuaSxrLm8ray5nLmIrby1oLmUuYSk7aC5rfHwoaC5kLmk9JHduZC5NYXRoLm1heChoLmQuaSxoLmcuYy1oLmUuYSkpOy0taC5kLmU7aC5kLmU9PTAmJk11YihuLGguZCl9fX1mb3IoYz1uZXcgQW5iKGEuYS5iKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksODYpO2IuZy5jPWIub319XG5mdW5jdGlvbiB2T2IoYSl7dmFyIGIsYyxkLGUsZixnLGgsaTtoPWEuYjtiPWEuYTtzd2l0Y2goUkQobVFiKGEsKFlIYigpLFVIYikpLDQzNSkuZyl7Y2FzZSAwOl9tYihoLG5ldyBGcmIobmV3IFVPYikpO2JyZWFrO2Nhc2UgMTpkZWZhdWx0Ol9tYihoLG5ldyBGcmIobmV3IFpPYikpO31zd2l0Y2goUkQobVFiKGEsU0hiKSw0MzYpLmcpe2Nhc2UgMTpfbWIoaCxuZXcgUE9iKTtfbWIoaCxuZXcgY1BiKTtfbWIoaCxuZXcgeE9iKTticmVhaztjYXNlIDA6ZGVmYXVsdDpfbWIoaCxuZXcgUE9iKTtfbWIoaCxuZXcgSU9iKTt9c3dpdGNoKFJEKG1RYihhLFdIYiksMjU3KS5nKXtjYXNlIDA6aT1uZXcgd1BiO2JyZWFrO2Nhc2UgMTppPW5ldyBxUGI7YnJlYWs7Y2FzZSAyOmk9bmV3IHRQYjticmVhaztjYXNlIDM6aT1uZXcgblBiO2JyZWFrO2Nhc2UgNTppPW5ldyBBUGIobmV3IHRQYik7YnJlYWs7Y2FzZSA0Omk9bmV3IEFQYihuZXcgcVBiKTticmVhaztjYXNlIDc6aT1uZXcga1BiKG5ldyBBUGIobmV3IHFQYiksbmV3IEFQYihuZXcgdFBiKSk7YnJlYWs7Y2FzZSA4Omk9bmV3IGtQYihuZXcgQVBiKG5ldyBuUGIpLG5ldyBBUGIobmV3IHRQYikpO2JyZWFrO2Nhc2UgNjpkZWZhdWx0Omk9bmV3IEFQYihuZXcgblBiKTt9Zm9yKGc9bmV3IEFuYihoKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMTc2KTtkPTA7ZT0wO2M9bmV3IFB0ZChzZ2IoZCksc2diKGUpKTt3aGlsZShaUGIoYixmLGQsZSkpe2M9UkQoaS5WZShjLGYpLDQyKTtkPVJEKGMuYSwxNykuYTtlPVJEKGMuYiwxNykuYX1XUGIoYixmLGQsZSl9fVxuZnVuY3Rpb24gVF9jKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3O2MuVWcoX0VlLDEpO209KHEkYygpLFhaYyk7YS5hPT0oc19jKCkscF9jKSYmKG09VlpjKTtrPTA7eW9iKCk7Yi5qZChuZXcgdUdkKG0pKTtmPWIuZ2MoKTtoPWIuZmQoYi5nYygpKTtqPXRydWU7d2hpbGUoaiYmaC5TYigpKXtzPVJEKGguVWIoKSw0MCk7UkQobVFiKHMsbSksMTcpLmE9PTA/LS1mOihqPWZhbHNlKX13PWIua2QoMCxmKTtnPW5ldyBadWIodyk7dz1iLmtkKGYsYi5nYygpKTtpPW5ldyBadWIodyk7aWYoZy5iPT0wKXtmb3IocD1TdWIoaSwwKTtwLmIhPXAuZC5jOyl7bz1SRChldmIocCksNDApO3BRYihvLGkkYyxzZ2IoaysrKSl9fWVsc2V7bD1nLmI7Zm9yKHY9U3ViKGcsMCk7di5iIT12LmQuYzspe3U9UkQoZXZiKHYpLDQwKTtwUWIodSxpJGMsc2diKGsrKykpO2Q9JFdjKHUpO1RfYyhhLGQsYy5laCgxL2x8MCkpO3R2YihkLEZvYihuZXcgdUdkKGkkYykpKTtuPW5ldyBZdWI7Zm9yKHQ9U3ViKGQsMCk7dC5iIT10LmQuYzspe3M9UkQoZXZiKHQpLDQwKTtmb3Iocj1TdWIodS5kLDApO3IuYiE9ci5kLmM7KXtxPVJEKGV2YihyKSw2NSk7cS5jPT1zJiYoUHViKG4scSxuLmMuYixuLmMpLHRydWUpfX1YdWIodS5kKTt5ZSh1LmQsbik7aD1TdWIoaSxpLmIpO2U9dS5kLmI7aj10cnVlO3doaWxlKDA8ZSYmaiYmaC5TYigpKXtzPVJEKGguVWIoKSw0MCk7aWYoUkQobVFiKHMsbSksMTcpLmE9PTApe3BRYihzLGkkYyxzZ2IoaysrKSk7LS1lO2guUWIoKX1lbHNle2o9ZmFsc2V9fX19Yy5WZygpfVxuZnVuY3Rpb24gUzNjKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuO2w9S2ZiKFVEKEd4ZChhLCgkNGMoKSxXNGMpKSkpO2lmKEhlYihURChHeGQoYSxVNGMpKSkpe2s9UkQoR3hkKGEsKHUyYygpLHQyYykpLDI3KTtmPVJEKFFIZChtemQoUkQoUUhkKCghay5lJiYoay5lPW5ldyBZaWUoRzQsayw3LDQpKSxrLmUpLCghay5lJiYoay5lPW5ldyBZaWUoRzQsayw3LDQpKSxrLmUpLmktMSksNzQpKSwwKSwyNyk7ZD1SRChRSGQobXpkKFJEKFFIZCgoIWsuZSYmKGsuZT1uZXcgWWllKEc0LGssNyw0KSksay5lKSwwKSw3NCkpLDApLDI3KTtnPW5ldyByamQoZi5pK2YuZy8yLGYuaitmLmYvMik7ZT1uZXcgcmpkKGQuaStkLmcvMixkLmorZC5mLzIpO2M9bDtjPD0wJiYoYys9ZEZlKTttPSR3bmQuTWF0aC5hY29zKChnLmEqZS5hK2cuYiplLmIpLygkd25kLk1hdGguc3FydChnLmEqZy5hK2cuYipnLmIpKiR3bmQuTWF0aC5zcXJ0KGUuYSplLmErZS5iKmUuYikpKTttPD0wJiYobSs9ZEZlKTtiPSR3bmQuTWF0aC5hdGFuMihnLmIsZy5hKTtiPD0wJiYoYis9ZEZlKTtsPUZFZS0oYi1jK20vMil9Zm9yKGk9bmV3IGRNZCgoIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpKTtpLmUhPWkuaS5nYygpOyl7aD1SRChiTWQoaSksMjcpO2o9bmV3IHJqZChoLmkraC5nLzIsaC5qK2guZi8yKTtuPWouYSokd25kLk1hdGguY29zKGwpLWouYiokd25kLk1hdGguc2luKGwpO2ouYj1qLmEqJHduZC5NYXRoLnNpbihsKStqLmIqJHduZC5NYXRoLmNvcyhsKTtqLmE9bjtCeWQoaCxqLmEtaC5nLzIsai5iLWguZi8yKX19XG5mdW5jdGlvbiBxY2MoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQ7Yi5VZygnSW52ZXJ0ZWQgcG9ydCBwcmVwcm9jZXNzaW5nJywxKTtrPWEuYjtqPW5ldyBKa2IoaywwKTtjPW51bGw7dD1uZXcgYm5iO3doaWxlKGouYjxqLmQuZ2MoKSl7cz1jO2M9KHNGYihqLmI8ai5kLmdjKCkpLFJEKGouZC5YYihqLmM9ai5iKyspLDMwKSk7Zm9yKG49bmV3IEFuYih0KTtuLmE8bi5jLmMubGVuZ3RoOyl7bD1SRCh5bmIobiksMTApO2czYihsLHMpfXQuYy5sZW5ndGg9MDtmb3Iobz1uZXcgQW5iKGMuYSk7by5hPG8uYy5jLmxlbmd0aDspe2w9UkQoeW5iKG8pLDEwKTtpZihsLmshPShyM2IoKSxwM2IpKXtjb250aW51ZX1pZighRG9kKFJEKG1RYihsLCh5Q2MoKSxCQmMpKSwxMDEpKSl7Y29udGludWV9Zm9yKHI9ZDNiKGwsKEJFYygpLHlFYyksKHFwZCgpLFhvZCkpLktjKCk7ci5PYigpOyl7cD1SRChyLlBiKCksMTIpO2k9cC5lO2g9UkQoYW5iKGksJEMoV1EsVkFlLDE4LGkuYy5sZW5ndGgsMCwxKSksNDgzKTtmb3IoZT1oLGY9MCxnPWUubGVuZ3RoO2Y8ZzsrK2Ype2Q9ZVtmXTtvY2MoYSxwLGQsdCl9fWZvcihxPWQzYihsLHpFYyxwcGQpLktjKCk7cS5PYigpOyl7cD1SRChxLlBiKCksMTIpO2k9cC5nO2g9UkQoYW5iKGksJEMoV1EsVkFlLDE4LGkuYy5sZW5ndGgsMCwxKSksNDgzKTtmb3IoZT1oLGY9MCxnPWUubGVuZ3RoO2Y8ZzsrK2Ype2Q9ZVtmXTtwY2MoYSxwLGQsdCl9fX19Zm9yKG09bmV3IEFuYih0KTttLmE8bS5jLmMubGVuZ3RoOyl7bD1SRCh5bmIobSksMTApO2czYihsLGMpfWIuVmcoKX1cbmZ1bmN0aW9uIE5VYyhhLGIsYyxkLGUsZixnKXt2YXIgaCxpLGosayxsLG0sbixvLHAscSxyLHMsdDttPW51bGw7ZD09KGRWYygpLGJWYyk/KG09Yik6ZD09Y1ZjJiYobT1jKTtmb3IocD1tLmEuZWMoKS5LYygpO3AuT2IoKTspe289UkQocC5QYigpLDEyKTtxPXhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtvLmkubixvLm4sby5hXSkpLmI7dD1uZXcgX3NiO2g9bmV3IF9zYjtmb3Ioaj1uZXcgbDRiKG8uYik7eG5iKGouYSl8fHhuYihqLmIpOyl7aT1SRCh4bmIoai5hKT95bmIoai5hKTp5bmIoai5iKSwxOCk7aWYoSGViKFREKG1RYihpLChZd2MoKSxOd2MpKSkpIT1lKXtjb250aW51ZX1pZihXbWIoZixpLDApIT0tMSl7aS5kPT1vPyhyPWkuYyk6KHI9aS5kKTtzPXhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtyLmkubixyLm4sci5hXSkpLmI7aWYoJHduZC5NYXRoLmFicyhzLXEpPDAuMil7Y29udGludWV9czxxP2IuYS5fYihyKT9Zc2IodCxuZXcgUHRkKGJWYyxpKSk6WXNiKHQsbmV3IFB0ZChjVmMsaSkpOmIuYS5fYihyKT9Zc2IoaCxuZXcgUHRkKGJWYyxpKSk6WXNiKGgsbmV3IFB0ZChjVmMsaSkpfX1pZih0LmEuZ2MoKT4xKXtuPW5ldyB4VmMobyx0LGQpO3hnYih0LG5ldyBuVmMoYSxuKSk7WkViKGcuYyxuKTtmb3IobD10LmEuZWMoKS5LYygpO2wuT2IoKTspe2s9UkQobC5QYigpLDQyKTtZbWIoZixrLmIpfX1pZihoLmEuZ2MoKT4xKXtuPW5ldyB4VmMobyxoLGQpO3hnYihoLG5ldyBwVmMoYSxuKSk7WkViKGcuYyxuKTtmb3IobD1oLmEuZWMoKS5LYygpO2wuT2IoKTspe2s9UkQobC5QYigpLDQyKTtZbWIoZixrLmIpfX19fVxuZnVuY3Rpb24gcDZiKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHI7cD1hLm47cT1hLm87bT1hLmQ7bD1LZmIoVUQoaEZjKGEsKHlDYygpLFFCYykpKSk7aWYoYil7az1sKihiLmdjKCktMSk7bj0wO2ZvcihpPWIuS2MoKTtpLk9iKCk7KXtnPVJEKGkuUGIoKSwxMCk7ays9Zy5vLmE7bj0kd25kLk1hdGgubWF4KG4sZy5vLmIpfXI9cC5hLShrLXEuYSkvMjtmPXAuYi1tLmQrbjtkPXEuYS8oYi5nYygpKzEpO2U9ZDtmb3IoaD1iLktjKCk7aC5PYigpOyl7Zz1SRChoLlBiKCksMTApO2cubi5hPXI7Zy5uLmI9Zi1nLm8uYjtyKz1nLm8uYStsO2o9bjZiKGcpO2oubi5hPWcuby5hLzItai5hLmE7ai5uLmI9Zy5vLmI7bz1SRChtUWIoZywoWXdjKCksWHZjKSksMTIpO2lmKG8uZS5jLmxlbmd0aCtvLmcuYy5sZW5ndGg9PTEpe28ubi5hPWUtby5hLmE7by5uLmI9MDtQM2IobyxhKX1lKz1kfX1pZihjKXtrPWwqKGMuZ2MoKS0xKTtuPTA7Zm9yKGk9Yy5LYygpO2kuT2IoKTspe2c9UkQoaS5QYigpLDEwKTtrKz1nLm8uYTtuPSR3bmQuTWF0aC5tYXgobixnLm8uYil9cj1wLmEtKGstcS5hKS8yO2Y9cC5iK3EuYittLmEtbjtkPXEuYS8oYy5nYygpKzEpO2U9ZDtmb3IoaD1jLktjKCk7aC5PYigpOyl7Zz1SRChoLlBiKCksMTApO2cubi5hPXI7Zy5uLmI9ZjtyKz1nLm8uYStsO2o9bjZiKGcpO2oubi5hPWcuby5hLzItai5hLmE7ai5uLmI9MDtvPVJEKG1RYihnLChZd2MoKSxYdmMpKSwxMik7aWYoby5lLmMubGVuZ3RoK28uZy5jLmxlbmd0aD09MSl7by5uLmE9ZS1vLmEuYTtvLm4uYj1xLmI7UDNiKG8sYSl9ZSs9ZH19fVxuZnVuY3Rpb24gSGFjKGEsYil7dmFyIGMsZCxlLGYsZyxoO2lmKCFSRChtUWIoYiwoWXdjKCksa3djKSksMjEpLkhjKChvdmMoKSxodmMpKSl7cmV0dXJufWZvcihoPW5ldyBBbmIoYi5hKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoaCksMTApO2lmKGYuaz09KHIzYigpLHAzYikpe2U9UkQobVFiKGYsKHlDYygpLF9BYykpLDE0MCk7YS5jPSR3bmQuTWF0aC5taW4oYS5jLGYubi5hLWUuYik7YS5hPSR3bmQuTWF0aC5tYXgoYS5hLGYubi5hK2Yuby5hK2UuYyk7YS5kPSR3bmQuTWF0aC5taW4oYS5kLGYubi5iLWUuZCk7YS5iPSR3bmQuTWF0aC5tYXgoYS5iLGYubi5iK2Yuby5iK2UuYSl9fWZvcihnPW5ldyBBbmIoYi5hKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMTApO2lmKGYuayE9KHIzYigpLHAzYikpe3N3aXRjaChmLmsuZyl7Y2FzZSAyOmQ9UkQobVFiKGYsKHlDYygpLFVBYykpLDE3MSk7aWYoZD09KGN4YygpLCR3Yykpe2Yubi5hPWEuYy0xMDtHYWMoZixuZXcgT2FjKS5KYihuZXcgUmFjKGYpKTticmVha31pZihkPT1heGMpe2Yubi5hPWEuYSsxMDtHYWMoZixuZXcgVWFjKS5KYihuZXcgWGFjKGYpKTticmVha31jPVJEKG1RYihmLG93YyksMzExKTtpZihjPT0oR3ZjKCksRnZjKSl7RmFjKGYpLkpiKG5ldyAkYWMoZikpO2Yubi5iPWEuZC0xMDticmVha31pZihjPT1EdmMpe0ZhYyhmKS5KYihuZXcgYmJjKGYpKTtmLm4uYj1hLmIrMTA7YnJlYWt9YnJlYWs7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYignVGhlIG5vZGUgdHlwZSAnK2YuaysnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlICcrWFMpKTt9fX19XG5mdW5jdGlvbiBnNWIoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHE7aT1uZXcgcmpkKGQuaStkLmcvMixkLmorZC5mLzIpO249VzRiKGQpO289UkQoR3hkKGIsKHlDYygpLEJCYykpLDEwMSk7cT1SRChHeGQoZCxHQmMpLDY0KTtpZighSFBkKEZ4ZChkKSxBQmMpKXtkLmk9PTAmJmQuaj09MD8ocD0wKToocD1uc2QoZCxxKSk7SXhkKGQsQUJjLHApfWo9bmV3IHJqZChiLmcsYi5mKTtlPWYyYihkLG8scSxuLGosaSxuZXcgcmpkKGQuZyxkLmYpLFJEKG1RYihjLHJBYyksODgpLGMpO3BRYihlLChZd2MoKSxBd2MpLGQpO2Y9UkQoVm1iKGUuaiwwKSwxMik7TzNiKGYsZTViKGQpKTtwUWIoZSxFQmMsKFBvZCgpLHhzYihOb2QpKSk7bD1SRChHeGQoYixFQmMpLDE4MSkuSGMoTG9kKTtmb3IoaD1uZXcgZE1kKCghZC5uJiYoZC5uPW5ldyBDNWQoSTQsZCwxLDcpKSxkLm4pKTtoLmUhPWguaS5nYygpOyl7Zz1SRChiTWQoaCksMTM1KTtpZighSGViKFREKEd4ZChnLHBCYykpKSYmISFnLmEpe209aDViKGcpO1JtYihmLmYsbSk7aWYoIWwpe2s9MDtSb2QoUkQoR3hkKGIsRUJjKSwyMSkpJiYoaz1xc2QobmV3IHJqZChnLmksZy5qKSxuZXcgcmpkKGcuZyxnLmYpLG5ldyByamQoZC5nLGQuZiksMCxxKSk7c3dpdGNoKHEuZyl7Y2FzZSAyOmNhc2UgNDptLm8uYT1rO2JyZWFrO2Nhc2UgMTpjYXNlIDM6bS5vLmI9azt9fX19cFFiKGUsX0JjLFVEKEd4ZCh2Q2QoYiksX0JjKSkpO3BRYihlLGFDYyxVRChHeGQodkNkKGIpLGFDYykpKTtwUWIoZSxaQmMsVUQoR3hkKHZDZChiKSxaQmMpKSk7Um1iKGMuYSxlKTtaamIoYS5hLGQsZSl9XG5mdW5jdGlvbiBqNWIoYSxiLGMsZCxlLGYpe3ZhciBnLGgsaSxqLGssbDtqPW5ldyBSM2I7a1FiKGosYik7UTNiKGosUkQoR3hkKGIsKHlDYygpLEdCYykpLDY0KSk7cFFiKGosKFl3YygpLEF3YyksYik7UDNiKGosYyk7bD1qLm87bC5hPWIuZztsLmI9Yi5mO2s9ai5uO2suYT1iLmk7ay5iPWIuajtaamIoYS5hLGIsaik7Zz15RGIoR0RiKEVEYihuZXcgU0RiKG51bGwsKCFiLmUmJihiLmU9bmV3IFlpZShHNCxiLDcsNCkpLG5ldyBTd2IoYi5lLDE2KSkpLG5ldyB3NWIpLG5ldyBvNWIpLG5ldyB5NWIoYikpO2d8fChnPXlEYihHRGIoRURiKG5ldyBTRGIobnVsbCwoIWIuZCYmKGIuZD1uZXcgWWllKEc0LGIsOCw1KSksbmV3IFN3YihiLmQsMTYpKSksbmV3IEE1YiksbmV3IHE1YiksbmV3IEM1YihiKSkpO2d8fChnPXlEYihuZXcgU0RiKG51bGwsKCFiLmUmJihiLmU9bmV3IFlpZShHNCxiLDcsNCkpLG5ldyBTd2IoYi5lLDE2KSkpLG5ldyBFNWIpKTtwUWIoaixud2MsKEdlYigpLGc/dHJ1ZTpmYWxzZSkpO20yYihqLGYsZSxSRChHeGQoYix6QmMpLDgpKTtmb3IoaT1uZXcgZE1kKCghYi5uJiYoYi5uPW5ldyBDNWQoSTQsYiwxLDcpKSxiLm4pKTtpLmUhPWkuaS5nYygpOyl7aD1SRChiTWQoaSksMTM1KTshSGViKFREKEd4ZChoLHBCYykpKSYmISFoLmEmJlJtYihqLmYsaDViKGgpKX1zd2l0Y2goZS5nKXtjYXNlIDI6Y2FzZSAxOihqLmo9PShxcGQoKSxZb2QpfHxqLmo9PW5wZCkmJmQuRmMoKG92YygpLGx2YykpO2JyZWFrO2Nhc2UgNDpjYXNlIDM6KGouaj09KHFwZCgpLFhvZCl8fGouaj09cHBkKSYmZC5GYygob3ZjKCksbHZjKSk7fXJldHVybiBqfVxuZnVuY3Rpb24gZHVkKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQ7dD0wO289MDtuPTA7bT0xO2ZvcihzPW5ldyBkTWQoKCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKSk7cy5lIT1zLmkuZ2MoKTspe3E9UkQoYk1kKHMpLDI3KTttKz1LcihuZXcgaXMoTXIoekdkKHEpLmEuS2MoKSxuZXcgaXIpKSk7Qj1xLmc7bz0kd25kLk1hdGgubWF4KG8sQik7bD1xLmY7bj0kd25kLk1hdGgubWF4KG4sbCk7dCs9QipsfXA9KCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKS5pO2c9dCsyKmQqZCptKnA7Zj0kd25kLk1hdGguc3FydChnKTtpPSR3bmQuTWF0aC5tYXgoZipjLG8pO2g9JHduZC5NYXRoLm1heChmL2Msbik7Zm9yKHI9bmV3IGRNZCgoIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpKTtyLmUhPXIuaS5nYygpOyl7cT1SRChiTWQociksMjcpO0M9ZS5iKyhLd2IoYiwyNikqS3hlK0t3YihiLDI3KSpMeGUpKihpLXEuZyk7RD1lLmIrKEt3YihiLDI2KSpLeGUrS3diKGIsMjcpKkx4ZSkqKGgtcS5mKTtEeWQocSxDKTtFeWQocSxEKX1BPWkrKGUuYitlLmMpO3c9aCsoZS5kK2UuYSk7Zm9yKHY9bmV3IGRNZCgoIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpKTt2LmUhPXYuaS5nYygpOyl7dT1SRChiTWQodiksMjcpO2ZvcihrPW5ldyBpcyhNcih6R2QodSkuYS5LYygpLG5ldyBpcikpO2dzKGspOyl7aj1SRChocyhrKSw3NCk7bnpkKGopfHxjdWQoaixiLEEsdyl9fUErPWUuYitlLmM7dys9ZS5kK2UuYTtFc2QoYSxBLHcsZmFsc2UsdHJ1ZSl9XG5mdW5jdGlvbiBzNmIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscjtiLlVnKCdDb21tZW50IHByZS1wcm9jZXNzaW5nJywxKTtjPTA7aT1uZXcgQW5iKGEuYSk7d2hpbGUoaS5hPGkuYy5jLmxlbmd0aCl7aD1SRCh5bmIoaSksMTApO2lmKEhlYihURChtUWIoaCwoeUNjKCksVXpjKSkpKSl7KytjO2U9MDtkPW51bGw7aj1udWxsO2ZvcihvPW5ldyBBbmIoaC5qKTtvLmE8by5jLmMubGVuZ3RoOyl7bT1SRCh5bmIobyksMTIpO2UrPW0uZS5jLmxlbmd0aCttLmcuYy5sZW5ndGg7aWYobS5lLmMubGVuZ3RoPT0xKXtkPVJEKFZtYihtLmUsMCksMTgpO2o9ZC5jfWlmKG0uZy5jLmxlbmd0aD09MSl7ZD1SRChWbWIobS5nLDApLDE4KTtqPWQuZH19aWYoZT09MSYmai5lLmMubGVuZ3RoK2ouZy5jLmxlbmd0aD09MSYmIUhlYihURChtUWIoai5pLFV6YykpKSl7dDZiKGgsZCxqLGouaSk7em5iKGkpfWVsc2V7cj1uZXcgYm5iO2ZvcihuPW5ldyBBbmIoaC5qKTtuLmE8bi5jLmMubGVuZ3RoOyl7bT1SRCh5bmIobiksMTIpO2ZvcihsPW5ldyBBbmIobS5nKTtsLmE8bC5jLmMubGVuZ3RoOyl7az1SRCh5bmIobCksMTgpO2suZC5nLmMubGVuZ3RoPT0wfHwoWkViKHIuYyxrKSx0cnVlKX1mb3IoZz1uZXcgQW5iKG0uZSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDE4KTtmLmMuZS5jLmxlbmd0aD09MHx8KFpFYihyLmMsZiksdHJ1ZSl9fWZvcihxPW5ldyBBbmIocik7cS5hPHEuYy5jLmxlbmd0aDspe3A9UkQoeW5iKHEpLDE4KTtYMGIocCx0cnVlKX19fX1iLl9nKCkmJmIuYmgoJ0ZvdW5kICcrYysnIGNvbW1lbnQgYm94ZXMnKTtiLlZnKCl9XG5mdW5jdGlvbiB3a2UoYSxiKXt1a2UoKTt2YXIgYyxkLGUsZixnLGgsaTt0aGlzLmE9bmV3IHprZSh0aGlzKTt0aGlzLmI9YTt0aGlzLmM9Yjt0aGlzLmY9Q2ZlKFFlZSgobGtlKCksamtlKSxiKSk7aWYodGhpcy5mLmRjKCkpe2lmKChoPVRlZShqa2UsYSkpPT1iKXt0aGlzLmU9dHJ1ZTt0aGlzLmQ9bmV3IGJuYjt0aGlzLmY9bmV3IE9TZDt0aGlzLmYuRmMoZExlKTtSRCh0ZmUoUGVlKGprZSxCWGQoYSkpLCcnKSwyOSk9PWEmJnRoaXMuZi5GYyhVZWUoamtlLEJYZChhKSkpO2ZvcihlPUdlZShqa2UsYSkuS2MoKTtlLk9iKCk7KXtkPVJEKGUuUGIoKSwxNzkpO3N3aXRjaCh5ZmUoUWVlKGprZSxkKSkpe2Nhc2UgNDp7dGhpcy5kLkZjKGQpO2JyZWFrfWNhc2UgNTp7dGhpcy5mLkdjKENmZShRZWUoamtlLGQpKSk7YnJlYWt9fX19ZWxzZXtua2UoKTtpZihSRChiLDY5KS54aygpKXt0aGlzLmU9dHJ1ZTt0aGlzLmY9bnVsbDt0aGlzLmQ9bmV3IGJuYjtmb3IoZz0wLGk9KGEuaT09bnVsbCYmcllkKGEpLGEuaSkubGVuZ3RoO2c8aTsrK2cpe2Q9KGM9KGEuaT09bnVsbCYmcllkKGEpLGEuaSksZz49MCYmZzxjLmxlbmd0aD9jW2ddOm51bGwpO2ZvcihmPXpmZShRZWUoamtlLGQpKTtmO2Y9emZlKFFlZShqa2UsZikpKXtmPT1iJiZ0aGlzLmQuRmMoZCl9fX1lbHNlIGlmKHlmZShRZWUoamtlLGIpKT09MSYmISFoKXt0aGlzLmY9bnVsbDt0aGlzLmQ9KExsZSgpLEtsZSl9ZWxzZXt0aGlzLmY9bnVsbDt0aGlzLmU9dHJ1ZTt0aGlzLmQ9KHlvYigpLG5ldyBtcGIoYikpfX19ZWxzZXt0aGlzLmU9eWZlKFFlZShqa2UsYikpPT01O3RoaXMuZi5GYih0a2UpJiYodGhpcy5mPXRrZSl9fVxuZnVuY3Rpb24gcU5iKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG87Yz0wO2Q9cE5iKGEsYik7bT1hLnM7bj1hLnQ7Zm9yKGo9UkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuS2MoKTtqLk9iKCk7KXtpPVJEKGouUGIoKSwxMTcpO2lmKCFpLmN8fGkuYy5kLmMubGVuZ3RoPD0wKXtjb250aW51ZX1vPWkuYi5NZigpO2g9aS5iLnBmKCh1bWQoKSxHbGQpKT9LZmIoVUQoaS5iLm9mKEdsZCkpKTowO2s9aS5jO2w9ay5pO2wuYj0oZz1rLm4say5lLmErZy5iK2cuYyk7bC5hPShmPWsubixrLmUuYitmLmQrZi5hKTtzd2l0Y2goYi5nKXtjYXNlIDE6bC5jPWkuYT8oby5hLWwuYikvMjpvLmErbTtsLmQ9by5iK2grZDtSS2IoaywoRUtiKCksQktiKSk7U0tiKGssKHZMYigpLHVMYikpO2JyZWFrO2Nhc2UgMzpsLmM9aS5hPyhvLmEtbC5iKS8yOm8uYSttO2wuZD0taC1kLWwuYTtSS2IoaywoRUtiKCksQktiKSk7U0tiKGssKHZMYigpLHNMYikpO2JyZWFrO2Nhc2UgMjpsLmM9LWgtZC1sLmI7aWYoaS5hKXtlPWEudj9sLmE6UkQoVm1iKGsuZCwwKSwxODcpLk1mKCkuYjtsLmQ9KG8uYi1lKS8yfWVsc2V7bC5kPW8uYitufVJLYihrLChFS2IoKSxES2IpKTtTS2IoaywodkxiKCksdExiKSk7YnJlYWs7Y2FzZSA0OmwuYz1vLmEraCtkO2lmKGkuYSl7ZT1hLnY/bC5hOlJEKFZtYihrLmQsMCksMTg3KS5NZigpLmI7bC5kPShvLmItZSkvMn1lbHNle2wuZD1vLmIrbn1SS2IoaywoRUtiKCksQ0tiKSk7U0tiKGssKHZMYigpLHRMYikpO30oYj09KHFwZCgpLFlvZCl8fGI9PW5wZCkmJihjPSR3bmQuTWF0aC5tYXgoYyxsLmEpKX1jPjAmJihSRChWcmIoYS5iLGIpLDEyNykuYS5iPWMpfVxuZnVuY3Rpb24gd2NjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuLG8scDttPUtmYihVRChtUWIoYSwoeUNjKCksX0JjKSkpKTtuPUtmYihVRChtUWIoYSxhQ2MpKSk7bD1LZmIoVUQobVFiKGEsWkJjKSkpO2g9YS5vO2Y9UkQoVm1iKGEuaiwwKSwxMik7Zz1mLm47cD11Y2MoZixsKTtpZighcCl7cmV0dXJufWlmKGIuSGMoKFBvZCgpLExvZCkpKXtzd2l0Y2goUkQobVFiKGEsKFl3YygpLGh3YykpLDY0KS5nKXtjYXNlIDE6cC5jPShoLmEtcC5iKS8yLWcuYTtwLmQ9bjticmVhaztjYXNlIDM6cC5jPShoLmEtcC5iKS8yLWcuYTtwLmQ9LW4tcC5hO2JyZWFrO2Nhc2UgMjppZihjJiZmLmUuYy5sZW5ndGg9PTAmJmYuZy5jLmxlbmd0aD09MCl7az1kP3AuYTpSRChWbWIoZi5mLDApLDcyKS5vLmI7cC5kPShoLmItaykvMi1nLmJ9ZWxzZXtwLmQ9aC5iK24tZy5ifXAuYz0tbS1wLmI7YnJlYWs7Y2FzZSA0OmlmKGMmJmYuZS5jLmxlbmd0aD09MCYmZi5nLmMubGVuZ3RoPT0wKXtrPWQ/cC5hOlJEKFZtYihmLmYsMCksNzIpLm8uYjtwLmQ9KGguYi1rKS8yLWcuYn1lbHNle3AuZD1oLmIrbi1nLmJ9cC5jPW07fX1lbHNlIGlmKGIuSGMoTm9kKSl7c3dpdGNoKFJEKG1RYihhLChZd2MoKSxod2MpKSw2NCkuZyl7Y2FzZSAxOmNhc2UgMzpwLmM9Zy5hK207YnJlYWs7Y2FzZSAyOmNhc2UgNDppZihjJiYhZi5jKXtrPWQ/cC5hOlJEKFZtYihmLmYsMCksNzIpLm8uYjtwLmQ9KGguYi1rKS8yLWcuYn1lbHNle3AuZD1nLmIrbn19fWU9cC5kO2ZvcihqPW5ldyBBbmIoZi5mKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksNzIpO289aS5uO28uYT1wLmM7by5iPWU7ZSs9aS5vLmIrbH19XG5mdW5jdGlvbiB3OWIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGO3c9bmV3IGJuYjtmb3Iobz1uZXcgQW5iKGEuYik7by5hPG8uYy5jLmxlbmd0aDspe249UkQoeW5iKG8pLDMwKTtmb3Iocj1uZXcgQW5iKG4uYSk7ci5hPHIuYy5jLmxlbmd0aDspe3A9UkQoeW5iKHIpLDEwKTtpZihwLmshPShyM2IoKSxtM2IpKXtjb250aW51ZX1pZighblFiKHAsKFl3YygpLGd3YykpKXtjb250aW51ZX1zPW51bGw7dT1udWxsO3Q9bnVsbDtmb3IoQz1uZXcgQW5iKHAuaik7Qy5hPEMuYy5jLmxlbmd0aDspe0I9UkQoeW5iKEMpLDEyKTtzd2l0Y2goQi5qLmcpe2Nhc2UgNDpzPUI7YnJlYWs7Y2FzZSAyOnU9QjticmVhaztkZWZhdWx0OnQ9Qjt9fXY9UkQoVm1iKHQuZywwKSwxOCk7az1uZXcgRmpkKHYuYSk7aj1uZXcgc2pkKHQubik7JGlkKGoscC5uKTtsPVN1YihrLDApO2N2YihsLGopO0E9SWpkKHYuYSk7bT1uZXcgc2pkKHQubik7JGlkKG0scC5uKTtQdWIoQSxtLEEuYy5iLEEuYyk7RD1SRChtUWIocCxnd2MpLDEwKTtGPVJEKFZtYihELmosMCksMTIpO2k9UkQoYW5iKHMuZSwkQyhXUSxWQWUsMTgsMCwwLDEpKSw0ODMpO2ZvcihkPWksZj0wLGg9ZC5sZW5ndGg7ZjxoOysrZil7Yj1kW2ZdO1owYihiLEYpO0FqZChiLmEsYi5hLmIsayl9aT1zMmIodS5nKTtmb3IoYz1pLGU9MCxnPWMubGVuZ3RoO2U8ZzsrK2Upe2I9Y1tlXTtZMGIoYixGKTtBamQoYi5hLDAsQSl9WTBiKHYsbnVsbCk7WjBiKHYsbnVsbCk7WkViKHcuYyxwKX19Zm9yKHE9bmV3IEFuYih3KTtxLmE8cS5jLmMubGVuZ3RoOyl7cD1SRCh5bmIocSksMTApO2czYihwLG51bGwpfX1cbmZ1bmN0aW9uIENMYihhKXt2YXIgYjt0aGlzLnI9VHkobmV3IEZMYixuZXcgSkxiKTt0aGlzLmI9bmV3IFpyYihSRChRYihFMyksMjk3KSk7dGhpcy5wPW5ldyBacmIoUkQoUWIoRTMpLDI5NykpO3RoaXMuaT1uZXcgWnJiKFJEKFFiKFhOKSwyOTcpKTt0aGlzLmU9YTt0aGlzLm89bmV3IHNqZChhLk1mKCkpO3RoaXMuRD1IZWIoVEQoYS5vZigodW1kKCksbW1kKSkpKTt0aGlzLkY9YS5ZZigpfHxIZWIoVEQoYS5vZigka2QpKSk7dGhpcy5BPVJEKGEub2Yoa2xkKSwyMSk7dGhpcy5CPVJEKGEub2YocGxkKSwyMSk7dGhpcy5xPVJEKGEub2YoSGxkKSwxMDEpO3RoaXMudT1SRChhLm9mKExsZCksMjEpO2lmKCFTb2QodGhpcy51KSl7dGhyb3cgQWRiKG5ldyBKZWQoJ0ludmFsaWQgcG9ydCBsYWJlbCBwbGFjZW1lbnQ6ICcrdGhpcy51KSl9dGhpcy52PUhlYihURChhLm9mKE5sZCkpKTt0aGlzLmo9UkQoYS5vZihpbGQpLDIxKTtpZighZm9kKHRoaXMuaikpe3Rocm93IEFkYihuZXcgSmVkKCdJbnZhbGlkIG5vZGUgbGFiZWwgcGxhY2VtZW50OiAnK3RoaXMuaikpfXRoaXMubj1SRChmdGQoYSxnbGQpLDEwNyk7dGhpcy5rPUtmYihVRChmdGQoYSxjbWQpKSk7dGhpcy5kPUtmYihVRChmdGQoYSxibWQpKSk7dGhpcy53PUtmYihVRChmdGQoYSxqbWQpKSk7dGhpcy5zPUtmYihVRChmdGQoYSxkbWQpKSk7dGhpcy50PUtmYihVRChmdGQoYSxlbWQpKSk7dGhpcy5DPVJEKGZ0ZChhLGhtZCksMTQwKTt0aGlzLmM9Mip0aGlzLmQ7Yj0hdGhpcy5CLkhjKChkcWQoKSxXcGQpKTt0aGlzLmY9bmV3IGRMYigwLGIsMCk7dGhpcy5nPW5ldyBkTGIoMSxiLDApO2NMYih0aGlzLmYsKFpKYigpLFhKYiksdGhpcy5nKX1cbmZ1bmN0aW9uIERuZSgpe1JSZChWYmIsbmV3IGlvZSk7UlJkKFhiYixuZXcgUG9lKTtSUmQoWWJiLG5ldyB1cGUpO1JSZChaYmIsbmV3IF9wZSk7UlJkKHFKLG5ldyBscWUpO1JSZChXQyhnRSwxKSxuZXcgb3FlKTtSUmQoUUksbmV3IHJxZSk7UlJkKFJJLG5ldyB1cWUpO1JSZChxSixuZXcgR25lKTtSUmQocUosbmV3IEpuZSk7UlJkKHFKLG5ldyBNbmUpO1JSZChWSSxuZXcgUG5lKTtSUmQocUosbmV3IFNuZSk7UlJkKFFLLG5ldyBWbmUpO1JSZChRSyxuZXcgWW5lKTtSUmQocUosbmV3IF9uZSk7UlJkKFpJLG5ldyBjb2UpO1JSZChxSixuZXcgZm9lKTtSUmQocUosbmV3IGxvZSk7UlJkKHFKLG5ldyBvb2UpO1JSZChxSixuZXcgcm9lKTtSUmQocUosbmV3IHVvZSk7UlJkKFdDKGdFLDEpLG5ldyB4b2UpO1JSZChxSixuZXcgQW9lKTtSUmQocUosbmV3IERvZSk7UlJkKFFLLG5ldyBHb2UpO1JSZChRSyxuZXcgSm9lKTtSUmQocUosbmV3IE1vZSk7UlJkKGJKLG5ldyBTb2UpO1JSZChxSixuZXcgVm9lKTtSUmQoZUosbmV3IFlvZSk7UlJkKHFKLG5ldyBfb2UpO1JSZChxSixuZXcgY3BlKTtSUmQocUosbmV3IGZwZSk7UlJkKHFKLG5ldyBpcGUpO1JSZChRSyxuZXcgbHBlKTtSUmQoUUssbmV3IG9wZSk7UlJkKHFKLG5ldyBycGUpO1JSZChxSixuZXcgeHBlKTtSUmQocUosbmV3IEFwZSk7UlJkKHFKLG5ldyBEcGUpO1JSZChxSixuZXcgR3BlKTtSUmQocUosbmV3IEpwZSk7UlJkKGxKLG5ldyBNcGUpO1JSZChxSixuZXcgUHBlKTtSUmQocUosbmV3IFNwZSk7UlJkKHFKLG5ldyBWcGUpO1JSZChsSixuZXcgWXBlKTtSUmQoZUosbmV3IGNxZSk7UlJkKHFKLG5ldyBmcWUpO1JSZChiSixuZXcgaXFlKX1cbmZ1bmN0aW9uIGpzYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvO2s9bmV3IEVqZDtzd2l0Y2goYS5hLmcpe2Nhc2UgMzptPVJEKG1RYihiLmUsKFl3YygpLFR3YykpLDE1KTtuPVJEKG1RYihiLmosVHdjKSwxNSk7bz1SRChtUWIoYi5mLFR3YyksMTUpO2M9UkQobVFiKGIuZSxSd2MpLDE1KTtkPVJEKG1RYihiLmosUndjKSwxNSk7ZT1SRChtUWIoYi5mLFJ3YyksMTUpO2c9bmV3IGJuYjtUbWIoZyxtKTtuLkpjKG5ldyBtc2MpO1RtYihnLGh2KG4pKTtUbWIoZyxvKTtmPW5ldyBibmI7VG1iKGYsYyk7VG1iKGYsaHYoZCkpO1RtYihmLGUpO3BRYihiLmYsVHdjLGcpO3BRYihiLmYsUndjLGYpO3BRYihiLmYsVXdjLGIuZik7cFFiKGIuZSxUd2MsbnVsbCk7cFFiKGIuZSxSd2MsbnVsbCk7cFFiKGIuaixUd2MsbnVsbCk7cFFiKGIuaixSd2MsbnVsbCk7YnJlYWs7Y2FzZSAxOnllKGssYi5lLmEpO011YihrLGIuaS5uKTt5ZShrLGh2KGIuai5hKSk7TXViKGssYi5hLm4pO3llKGssYi5mLmEpO2JyZWFrO2RlZmF1bHQ6eWUoayxiLmUuYSk7eWUoayxodihiLmouYSkpO3llKGssYi5mLmEpO31YdWIoYi5mLmEpO3llKGIuZi5hLGspO1kwYihiLmYsYi5lLmMpO2g9UkQobVFiKGIuZSwoeUNjKCksUkFjKSksNzUpO2o9UkQobVFiKGIuaixSQWMpLDc1KTtpPVJEKG1RYihiLmYsUkFjKSw3NSk7aWYoISFofHwhIWp8fCEhaSl7bD1uZXcgRWpkO2hzYyhsLGkpO2hzYyhsLGopO2hzYyhsLGgpO3BRYihiLmYsUkFjLGwpfVkwYihiLmosbnVsbCk7WjBiKGIuaixudWxsKTtZMGIoYi5lLG51bGwpO1owYihiLmUsbnVsbCk7ZzNiKGIuYSxudWxsKTtnM2IoYi5pLG51bGwpOyEhYi5nJiZqc2MoYSxiLmcpfVxuZnVuY3Rpb24gdGliKCl7dGliPWdlYjt2YXIgYSxiLGM7bmV3IEFpYigxLDApO25ldyBBaWIoMTAsMCk7bmV3IEFpYigwLDApO2xpYj0kQyh0SixOdmUsMjQ3LDExLDAsMSk7bWliPSRDKGhFLHp3ZSwyOCwxMDAsMTUsMSk7bmliPWNEKFdDKGlFLDEpLHZ4ZSwyOCwxNSxbMSw1LDI1LDEyNSw2MjUsMzEyNSwxNTYyNSw3ODEyNSwzOTA2MjUsMTk1MzEyNSw5NzY1NjI1LDQ4ODI4MTI1LDI0NDE0MDYyNSwxMjIwNzAzMTI1LDYxMDM1MTU2MjUsMzA1MTc1NzgxMjUsMTUyNTg3ODkwNjI1LDc2MjkzOTQ1MzEyNSwzODE0Njk3MjY1NjI1LDE5MDczNDg2MzI4MTI1LDk1MzY3NDMxNjQwNjI1LDQ3NjgzNzE1ODIwMzEyNSwyMzg0MTg1NzkxMDE1NjI1XSk7b2liPSRDKGtFLFB3ZSwyOCxuaWIubGVuZ3RoLDE1LDEpO3BpYj1jRChXQyhpRSwxKSx2eGUsMjgsMTUsWzEsMTAsMTAwLEF3ZSwxMDAwMCx3eGUsMTAwMDAwMCwxMDAwMDAwMCwxMDAwMDAwMDAsaXhlLDEwMDAwMDAwMDAwLDEwMDAwMDAwMDAwMCwxMDAwMDAwMDAwMDAwLDEwMDAwMDAwMDAwMDAwLDEwMDAwMDAwMDAwMDAwMCwxMDAwMDAwMDAwMDAwMDAwLDEwMDAwMDAwMDAwMDAwMDAwXSk7cWliPSRDKGtFLFB3ZSwyOCxwaWIubGVuZ3RoLDE1LDEpO3JpYj0kQyh0SixOdmUsMjQ3LDExLDAsMSk7YT0wO2Zvcig7YTxyaWIubGVuZ3RoO2ErKyl7bGliW2FdPW5ldyBBaWIoYSwwKTtyaWJbYV09bmV3IEFpYigwLGEpO21pYlthXT00OH1mb3IoO2E8bWliLmxlbmd0aDthKyspe21pYlthXT00OH1mb3IoYz0wO2M8b2liLmxlbmd0aDtjKyspe29pYltjXT1DaWIobmliW2NdKX1mb3IoYj0wO2I8cWliLmxlbmd0aDtiKyspe3FpYltiXT1DaWIocGliW2JdKX1MamIoKX1cbmZ1bmN0aW9uIEh0Yigpe2Z1bmN0aW9uIGUoKXt0aGlzLm9iaj10aGlzLmNyZWF0ZU9iamVjdCgpfVxuO2UucHJvdG90eXBlLmNyZWF0ZU9iamVjdD1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmNyZWF0ZShudWxsKX07ZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm9ialthXX07ZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5vYmpbYV09Yn07ZS5wcm90b3R5cGVbSnhlXT1mdW5jdGlvbihhKXtkZWxldGUgdGhpcy5vYmpbYV19O2UucHJvdG90eXBlLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcy5vYmopfTtlLnByb3RvdHlwZS5lbnRyaWVzPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5rZXlzKCk7dmFyIGM9dGhpczt2YXIgZD0wO3JldHVybiB7bmV4dDpmdW5jdGlvbigpe2lmKGQ+PWIubGVuZ3RoKXJldHVybiB7ZG9uZTp0cnVlfTt2YXIgYT1iW2QrK107cmV0dXJuIHt2YWx1ZTpbYSxjLmdldChhKV0sZG9uZTpmYWxzZX19fX07aWYoIUZ0YigpKXtlLnByb3RvdHlwZS5jcmVhdGVPYmplY3Q9ZnVuY3Rpb24oKXtyZXR1cm4ge319O2UucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5vYmpbJzonK2FdfTtlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm9ialsnOicrYV09Yn07ZS5wcm90b3R5cGVbSnhlXT1mdW5jdGlvbihhKXtkZWxldGUgdGhpcy5vYmpbJzonK2FdfTtlLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7dmFyIGE9W107Zm9yKHZhciBiIGluIHRoaXMub2JqKXtiLmNoYXJDb2RlQXQoMCk9PTU4JiZhLnB1c2goYi5zdWJzdHJpbmcoMSkpfXJldHVybiBhfX1yZXR1cm4gZX1cbmZ1bmN0aW9uIHEkYygpe3EkYz1nZWI7aCRjPW5ldyBqR2QockFlKTtuZXcgakdkKHNBZSk7bmV3IGtHZCgnREVQVEgnLHNnYigwKSk7WFpjPW5ldyBrR2QoJ0ZBTicsc2diKDApKTtWWmM9bmV3IGtHZChRRWUsc2diKDApKTtuJGM9bmV3IGtHZCgnUk9PVCcsKEdlYigpLGZhbHNlKSk7YiRjPW5ldyBrR2QoJ0xFRlRORUlHSEJPUicsbnVsbCk7bCRjPW5ldyBrR2QoJ1JJR0hUTkVJR0hCT1InLG51bGwpO2MkYz1uZXcga0dkKCdMRUZUU0lCTElORycsbnVsbCk7bSRjPW5ldyBrR2QoJ1JJR0hUU0lCTElORycsbnVsbCk7V1pjPW5ldyBrR2QoJ0RVTU1ZJyxmYWxzZSk7bmV3IGtHZCgnTEVWRUwnLHNnYigwKSk7ayRjPW5ldyBrR2QoJ1JFTU9WQUJMRV9FREdFUycsbmV3IFl1Yik7byRjPW5ldyBrR2QoJ1hDT09SJyxzZ2IoMCkpO3AkYz1uZXcga0dkKCdZQ09PUicsc2diKDApKTtkJGM9bmV3IGtHZCgnTEVWRUxIRUlHSFQnLDApO2YkYz1uZXcga0dkKCdMRVZFTE1JTicsMCk7ZSRjPW5ldyBrR2QoJ0xFVkVMTUFYJywwKTtaWmM9bmV3IGtHZCgnR1JBUEhfWE1JTicsMCk7X1pjPW5ldyBrR2QoJ0dSQVBIX1lNSU4nLDApO1laYz1uZXcga0dkKCdHUkFQSF9YTUFYJywwKTskWmM9bmV3IGtHZCgnR1JBUEhfWU1BWCcsMCk7VVpjPW5ldyBrR2QoJ0NPTVBBQ1RfTEVWRUxfQVNDRU5TSU9OJyxmYWxzZSk7VFpjPW5ldyBrR2QoJ0NPTVBBQ1RfQ09OU1RSQUlOVFMnLG5ldyBibmIpO2EkYz1uZXcga0dkKCdJRCcsJycpO2kkYz1uZXcga0dkKCdQT1NJVElPTicsc2diKDApKTtqJGM9bmV3IGtHZCgnUFJFTElNJywwKTtnJGM9bmV3IGtHZCgnTU9ESUZJRVInLDApO1NaYz1uZXcgakdkKHRBZSk7UlpjPW5ldyBqR2QodUFlKX1cbmZ1bmN0aW9uIEJxZShhKXt6cWUoKTt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscTtpZihhPT1udWxsKXJldHVybiBudWxsO2w9YS5sZW5ndGgqODtpZihsPT0wKXtyZXR1cm4gJyd9aD1sJTI0O249bC8yNHwwO209aCE9MD9uKzE6bjtmPW51bGw7Zj0kQyhoRSx6d2UsMjgsbSo0LDE1LDEpO2o9MDtrPTA7Yj0wO2M9MDtkPTA7Zz0wO2U9MDtmb3IoaT0wO2k8bjtpKyspe2I9YVtlKytdO2M9YVtlKytdO2Q9YVtlKytdO2s9KGMmMTUpPDwyND4+MjQ7aj0oYiYzKTw8MjQ+PjI0O289KGImLTEyOCk9PTA/Yj4+Mjw8MjQ+PjI0OihiPj4yXjE5Mik8PDI0Pj4yNDtwPShjJi0xMjgpPT0wP2M+PjQ8PDI0Pj4yNDooYz4+NF4yNDApPDwyND4+MjQ7cT0oZCYtMTI4KT09MD9kPj42PDwyND4+MjQ6KGQ+PjZeMjUyKTw8MjQ+PjI0O2ZbZysrXT15cWVbb107ZltnKytdPXlxZVtwfGo8PDRdO2ZbZysrXT15cWVbazw8MnxxXTtmW2crK109eXFlW2QmNjNdfWlmKGg9PTgpe2I9YVtlXTtqPShiJjMpPDwyND4+MjQ7bz0oYiYtMTI4KT09MD9iPj4yPDwyND4+MjQ6KGI+PjJeMTkyKTw8MjQ+PjI0O2ZbZysrXT15cWVbb107ZltnKytdPXlxZVtqPDw0XTtmW2crK109NjE7ZltnKytdPTYxfWVsc2UgaWYoaD09MTYpe2I9YVtlXTtjPWFbZSsxXTtrPShjJjE1KTw8MjQ+PjI0O2o9KGImMyk8PDI0Pj4yNDtvPShiJi0xMjgpPT0wP2I+PjI8PDI0Pj4yNDooYj4+Ml4xOTIpPDwyND4+MjQ7cD0oYyYtMTI4KT09MD9jPj40PDwyND4+MjQ6KGM+PjReMjQwKTw8MjQ+PjI0O2ZbZysrXT15cWVbb107ZltnKytdPXlxZVtwfGo8PDRdO2ZbZysrXT15cWVbazw8Ml07ZltnKytdPTYxfXJldHVybiBJaGIoZiwwLGYubGVuZ3RoKX1cbmZ1bmN0aW9uIENCKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk7YS5lPT0wJiZhLnA+MCYmKGEucD0tKGEucC0xKSk7YS5wPnF3ZSYmdEIoYixhLnAtT3dlKTtnPWIucS5nZXREYXRlKCk7bkIoYiwxKTthLms+PTAmJnFCKGIsYS5rKTtpZihhLmM+PTApe25CKGIsYS5jKX1lbHNlIGlmKGEuaz49MCl7aT1uZXcgdkIoYi5xLmdldEZ1bGxZZWFyKCktT3dlLGIucS5nZXRNb250aCgpLDM1KTtkPTM1LWkucS5nZXREYXRlKCk7bkIoYiwkd25kLk1hdGgubWluKGQsZykpfWVsc2V7bkIoYixnKX1hLmY8MCYmKGEuZj1iLnEuZ2V0SG91cnMoKSk7YS5iPjAmJmEuZjwxMiYmKGEuZis9MTIpO29CKGIsYS5mPT0yNCYmYS5nPzA6YS5mKTthLmo+PTAmJnBCKGIsYS5qKTthLm4+PTAmJnJCKGIsYS5uKTthLmk+PTAmJnNCKGIsQmRiKE5kYihGZGIoSGRiKGIucS5nZXRUaW1lKCkpLEF3ZSksQXdlKSxhLmkpKTtpZihhLmEpe2U9bmV3IHVCO3RCKGUsZS5xLmdldEZ1bGxZZWFyKCktT3dlLTgwKTtMZGIoSGRiKGIucS5nZXRUaW1lKCkpLEhkYihlLnEuZ2V0VGltZSgpKSkmJnRCKGIsZS5xLmdldEZ1bGxZZWFyKCktT3dlKzEwMCl9aWYoYS5kPj0wKXtpZihhLmM9PS0xKXtjPSg3K2EuZC1iLnEuZ2V0RGF5KCkpJTc7Yz4zJiYoYy09Nyk7aD1iLnEuZ2V0TW9udGgoKTtuQihiLGIucS5nZXREYXRlKCkrYyk7Yi5xLmdldE1vbnRoKCkhPWgmJm5CKGIsYi5xLmdldERhdGUoKSsoYz4wPy03OjcpKX1lbHNle2lmKGIucS5nZXREYXkoKSE9YS5kKXtyZXR1cm4gZmFsc2V9fX1pZihhLm8+cXdlKXtmPWIucS5nZXRUaW1lem9uZU9mZnNldCgpO3NCKGIsQmRiKEhkYihiLnEuZ2V0VGltZSgpKSwoYS5vLWYpKjYwKkF3ZSkpfXJldHVybiB0cnVlfVxuZnVuY3Rpb24gSjViKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU7ZT1tUWIoYiwoWXdjKCksQXdjKSk7aWYoIVpEKGUsMjA3KSl7cmV0dXJufW89UkQoZSwyNyk7cD1iLmU7bT1uZXcgc2pkKGIuYyk7Zj1iLmQ7bS5hKz1mLmI7bS5iKz1mLmQ7dT1SRChHeGQobywoeUNjKCksb0JjKSksMTgxKTtpZihDc2IodSwoZHFkKCksWHBkKSkpe249UkQoR3hkKG8scUJjKSwxMDcpO0UyYihuLGYuYSk7SDJiKG4sZi5kKTtGMmIobixmLmIpO0cyYihuLGYuYyl9Yz1uZXcgYm5iO2ZvcihrPW5ldyBBbmIoYi5hKTtrLmE8ay5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoayksMTApO2lmKFpEKG1RYihpLEF3YyksMjA3KSl7SzViKGksbSl9ZWxzZSBpZihaRChtUWIoaSxBd2MpLDE5MykmJiFwKXtkPVJEKG1RYihpLEF3YyksMTIzKTtzPWoyYihiLGksZC5nLGQuZik7QnlkKGQscy5hLHMuYil9Zm9yKHI9bmV3IEFuYihpLmopO3IuYTxyLmMuYy5sZW5ndGg7KXtxPVJEKHluYihyKSwxMik7RkRiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihxLmcsMTYpKSxuZXcgUTViKGkpKSxuZXcgUzViKGMpKX19aWYocCl7Zm9yKHI9bmV3IEFuYihwLmopO3IuYTxyLmMuYy5sZW5ndGg7KXtxPVJEKHluYihyKSwxMik7RkRiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihxLmcsMTYpKSxuZXcgVTViKHApKSxuZXcgVzViKGMpKX19dD1SRChHeGQobyx5QWMpLDIyMyk7Zm9yKGg9bmV3IEFuYihjKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTgpO0k1YihnLHQsbSl9TDViKGIpO2ZvcihqPW5ldyBBbmIoYi5hKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksMTApO2w9aS5lOyEhbCYmSjViKGEsbCl9fVxuZnVuY3Rpb24geE5iKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuO2lmKFJEKFJEKFFjKGEucixiKSwyMSksODcpLmRjKCkpe3JldHVybn1nPVJEKFZyYihhLmIsYiksMTI3KTtpPWcuaTtoPWcubjtrPUJMYihhLGIpO2Q9aS5iLWguYi1oLmM7ZT1nLmEuYTtmPWkuYytoLmI7bj1hLnc7aWYoKGs9PShwb2QoKSxtb2QpfHxrPT1vb2QpJiZSRChSRChRYyhhLnIsYiksMjEpLDg3KS5nYygpPT0xKXtlPWs9PW1vZD9lLTIqYS53OmU7az1sb2R9aWYoZDxlJiYhYS5CLkhjKChkcWQoKSxhcWQpKSl7aWYoaz09bW9kKXtuKz0oZC1lKS8oUkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuZ2MoKSsxKTtmKz1ufWVsc2V7bis9KGQtZSkvKFJEKFJEKFFjKGEucixiKSwyMSksODcpLmdjKCktMSl9fWVsc2V7aWYoZDxlKXtlPWs9PW1vZD9lLTIqYS53OmU7az1sb2R9c3dpdGNoKGsuZyl7Y2FzZSAzOmYrPShkLWUpLzI7YnJlYWs7Y2FzZSA0OmYrPWQtZTticmVhaztjYXNlIDA6Yz0oZC1lKS8oUkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuZ2MoKSsxKTtuKz0kd25kLk1hdGgubWF4KDAsYyk7Zis9bjticmVhaztjYXNlIDE6Yz0oZC1lKS8oUkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuZ2MoKS0xKTtuKz0kd25kLk1hdGgubWF4KDAsYyk7fX1mb3IobT1SRChSRChRYyhhLnIsYiksMjEpLDg3KS5LYygpO20uT2IoKTspe2w9UkQobS5QYigpLDExNyk7bC5lLmE9ZitsLmQuYjtsLmUuYj0oaj1sLmIsai5wZigodW1kKCksR2xkKSk/ai5hZygpPT0ocXBkKCksWW9kKT8tai5NZigpLmItS2ZiKFVEKGoub2YoR2xkKSkpOktmYihVRChqLm9mKEdsZCkpKTpqLmFnKCk9PShxcGQoKSxZb2QpPy1qLk1mKCkuYjowKTtmKz1sLmQuYitsLmIuTWYoKS5hK2wuZC5jK259fVxuZnVuY3Rpb24gQk5iKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG87aWYoUkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuZGMoKSl7cmV0dXJufWc9UkQoVnJiKGEuYixiKSwxMjcpO2k9Zy5pO2g9Zy5uO2w9QkxiKGEsYik7ZD1pLmEtaC5kLWguYTtlPWcuYS5iO2Y9aS5kK2guZDtvPWEudztqPWEuby5hO2lmKChsPT0ocG9kKCksbW9kKXx8bD09b29kKSYmUkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuZ2MoKT09MSl7ZT1sPT1tb2Q/ZS0yKmEudzplO2w9bG9kfWlmKGQ8ZSYmIWEuQi5IYygoZHFkKCksYXFkKSkpe2lmKGw9PW1vZCl7bys9KGQtZSkvKFJEKFJEKFFjKGEucixiKSwyMSksODcpLmdjKCkrMSk7Zis9b31lbHNle28rPShkLWUpLyhSRChSRChRYyhhLnIsYiksMjEpLDg3KS5nYygpLTEpfX1lbHNle2lmKGQ8ZSl7ZT1sPT1tb2Q/ZS0yKmEudzplO2w9bG9kfXN3aXRjaChsLmcpe2Nhc2UgMzpmKz0oZC1lKS8yO2JyZWFrO2Nhc2UgNDpmKz1kLWU7YnJlYWs7Y2FzZSAwOmM9KGQtZSkvKFJEKFJEKFFjKGEucixiKSwyMSksODcpLmdjKCkrMSk7bys9JHduZC5NYXRoLm1heCgwLGMpO2YrPW87YnJlYWs7Y2FzZSAxOmM9KGQtZSkvKFJEKFJEKFFjKGEucixiKSwyMSksODcpLmdjKCktMSk7bys9JHduZC5NYXRoLm1heCgwLGMpO319Zm9yKG49UkQoUkQoUWMoYS5yLGIpLDIxKSw4NykuS2MoKTtuLk9iKCk7KXttPVJEKG4uUGIoKSwxMTcpO20uZS5hPShrPW0uYixrLnBmKCh1bWQoKSxHbGQpKT9rLmFnKCk9PShxcGQoKSxwcGQpPy1rLk1mKCkuYS1LZmIoVUQoay5vZihHbGQpKSk6aitLZmIoVUQoay5vZihHbGQpKSk6ay5hZygpPT0ocXBkKCkscHBkKT8tay5NZigpLmE6aik7bS5lLmI9ZittLmQuZDtmKz1tLmQuZCttLmIuTWYoKS5iK20uZC5hK299fVxuZnVuY3Rpb24gYlpjKGEsYil7dmFyIGMsZCxlLGYsZztiLlVnKCdQcm9jZXNzb3IgZGV0ZXJtaW5lIHRoZSBjb29yZHMgZm9yIGVhY2ggbGV2ZWwnLDEpO2Q9bmV3IGJuYjtmb3IoZz1TdWIoYS5iLDApO2cuYiE9Zy5kLmM7KXtlPVJEKGV2YihnKSw0MCk7d2hpbGUoUkQobVFiKGUsKGhfYygpLGZfYykpLDE3KS5hPmQuYy5sZW5ndGgtMSl7Um1iKGQsbmV3IFB0ZChIemUsS0VlKSl9Yz1SRChtUWIoZSxmX2MpLDE3KS5hO2lmKERtZChSRChtUWIoYSxIJGMpLDg4KSkpe2UuZS5hPEtmYihVRCgodEZiKGMsZC5jLmxlbmd0aCksUkQoZC5jW2NdLDQyKSkuYSkpJiZOdGQoKHRGYihjLGQuYy5sZW5ndGgpLFJEKGQuY1tjXSw0MikpLGUuZS5hKTtlLmUuYStlLmYuYT5LZmIoVUQoKHRGYihjLGQuYy5sZW5ndGgpLFJEKGQuY1tjXSw0MikpLmIpKSYmT3RkKCh0RmIoYyxkLmMubGVuZ3RoKSxSRChkLmNbY10sNDIpKSxlLmUuYStlLmYuYSl9ZWxzZXtlLmUuYjxLZmIoVUQoKHRGYihjLGQuYy5sZW5ndGgpLFJEKGQuY1tjXSw0MikpLmEpKSYmTnRkKCh0RmIoYyxkLmMubGVuZ3RoKSxSRChkLmNbY10sNDIpKSxlLmUuYik7ZS5lLmIrZS5mLmI+S2ZiKFVEKCh0RmIoYyxkLmMubGVuZ3RoKSxSRChkLmNbY10sNDIpKS5iKSkmJk90ZCgodEZiKGMsZC5jLmxlbmd0aCksUkQoZC5jW2NdLDQyKSksZS5lLmIrZS5mLmIpfX1mb3IoZj1TdWIoYS5iLDApO2YuYiE9Zi5kLmM7KXtlPVJEKGV2YihmKSw0MCk7Yz1SRChtUWIoZSwoaF9jKCksZl9jKSksMTcpLmE7cFFiKGUsKHEkYygpLGYkYyksVUQoKHRGYihjLGQuYy5sZW5ndGgpLFJEKGQuY1tjXSw0MikpLmEpKTtwUWIoZSxlJGMsVUQoKHRGYihjLGQuYy5sZW5ndGgpLFJEKGQuY1tjXSw0MikpLmIpKX1iLlZnKCl9XG5mdW5jdGlvbiBUZWMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwO2Eubz1LZmIoVUQobVFiKGEuaSwoeUNjKCksYkNjKSkpKTthLmY9S2ZiKFVEKG1RYihhLmksWEJjKSkpO2Euaj1hLmkuYi5jLmxlbmd0aDtoPWEuai0xO209MDthLms9MDthLm49MDthLmI9ZHYoJEMoYkosTnZlLDE3LGEuaiwwLDEpKTthLmM9ZHYoJEMoVkksTnZlLDM0NSxhLmosNywxKSk7Zm9yKGc9bmV3IEFuYihhLmkuYik7Zy5hPGcuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGcpLDMwKTtlLnA9aDtmb3IobD1uZXcgQW5iKGUuYSk7bC5hPGwuYy5jLmxlbmd0aDspe2s9UkQoeW5iKGwpLDEwKTtrLnA9bTsrK219LS1ofWEuZz0kQyhrRSxQd2UsMjgsbSwxNSwxKTthLmQ9WUMoa0UsW052ZSxQd2VdLFs1MywyOF0sMTUsW20sM10sMik7YS5wPW5ldyBibmI7YS5xPW5ldyBibmI7Yj0wO2EuZT0wO2ZvcihmPW5ldyBBbmIoYS5pLmIpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwzMCk7aD1lLnA7ZD0wO3A9MDtpPWUuYS5jLmxlbmd0aDtqPTA7Zm9yKGw9bmV3IEFuYihlLmEpO2wuYTxsLmMuYy5sZW5ndGg7KXtrPVJEKHluYihsKSwxMCk7bT1rLnA7YS5nW21dPWsuYy5wO2orPWsuby5iK2EubztjPUtyKG5ldyBpcyhNcihaMmIoaykuYS5LYygpLG5ldyBpcikpKTtvPUtyKG5ldyBpcyhNcihhM2IoaykuYS5LYygpLG5ldyBpcikpKTthLmRbbV1bMF09by1jO2EuZFttXVsxXT1jO2EuZFttXVsyXT1vO2QrPWM7cCs9bztjPjAmJlJtYihhLnEsayk7Um1iKGEucCxrKX1iLT1kO249aStiO2orPWIqYS5mOyRtYihhLmIsaCxzZ2IobikpOyRtYihhLmMsaCxqKTthLms9JHduZC5NYXRoLm1heChhLmssbik7YS5uPSR3bmQuTWF0aC5tYXgoYS5uLGopO2EuZSs9YjtiKz1wfX1cbmZ1bmN0aW9uIHFwZCgpe3FwZD1nZWI7dmFyIGE7b3BkPW5ldyB1cGQoU3llLDApO1lvZD1uZXcgdXBkKF95ZSwxKTtYb2Q9bmV3IHVwZChhemUsMik7bnBkPW5ldyB1cGQoYnplLDMpO3BwZD1uZXcgdXBkKGN6ZSw0KTticGQ9KHlvYigpLG5ldyBMcWIoKGE9UkQobWZiKEUzKSw5KSxuZXcgRnNiKGEsUkQoV0ViKGEsYS5sZW5ndGgpLDkpLDApKSkpO2NwZD1lcSh5c2IoWW9kLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtdKSkpO1pvZD1lcSh5c2IoWG9kLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtdKSkpO2twZD1lcSh5c2IobnBkLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtdKSkpO21wZD1lcSh5c2IocHBkLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtdKSkpO2hwZD1lcSh5c2IoWW9kLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtucGRdKSkpO2FwZD1lcSh5c2IoWG9kLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtwcGRdKSkpO2pwZD1lcSh5c2IoWW9kLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtwcGRdKSkpO2RwZD1lcSh5c2IoWW9kLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtYb2RdKSkpO2xwZD1lcSh5c2IobnBkLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtwcGRdKSkpOyRvZD1lcSh5c2IoWG9kLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtucGRdKSkpO2dwZD1lcSh5c2IoWW9kLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtYb2QscHBkXSkpKTtfb2Q9ZXEoeXNiKFhvZCxjRChXQyhFMywxKSxOQWUsNjQsMCxbbnBkLHBwZF0pKSk7aXBkPWVxKHlzYihZb2QsY0QoV0MoRTMsMSksTkFlLDY0LDAsW25wZCxwcGRdKSkpO2VwZD1lcSh5c2IoWW9kLGNEKFdDKEUzLDEpLE5BZSw2NCwwLFtYb2QsbnBkXSkpKTtmcGQ9ZXEoeXNiKFlvZCxjRChXQyhFMywxKSxOQWUsNjQsMCxbWG9kLG5wZCxwcGRdKSkpfVxuZnVuY3Rpb24gR2ZjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEE7Yi5VZyhxQmUsMSk7cD1uZXcgYm5iO3c9bmV3IGJuYjtmb3Ioaj1uZXcgQW5iKGEuYik7ai5hPGouYy5jLmxlbmd0aDspe2k9UkQoeW5iKGopLDMwKTtyPS0xO289dDJiKGkuYSk7Zm9yKGw9byxtPTAsbj1sLmxlbmd0aDttPG47KyttKXtrPWxbbV07KytyO2lmKCEoay5rPT0ocjNiKCkscDNiKSYmRG9kKFJEKG1RYihrLCh5Q2MoKSxCQmMpKSwxMDEpKSkpe2NvbnRpbnVlfUNvZChSRChtUWIoaywoeUNjKCksQkJjKSksMTAxKSl8fEhmYyhrKTtwUWIoaywoWXdjKCkscHdjKSxrKTtwLmMubGVuZ3RoPTA7dy5jLmxlbmd0aD0wO2M9bmV3IGJuYjt1PW5ldyBZdWI7X3EodSxlM2IoaywocXBkKCksWW9kKSkpO0VmYyhhLHUscCx3LGMpO2g9cjtBPWs7Zm9yKGY9bmV3IEFuYihwKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZiksMTApO2YzYihkLGgsaSk7KytyO3BRYihkLHB3YyxrKTtnPVJEKFZtYihkLmosMCksMTIpO3E9UkQobVFiKGcsQXdjKSwxMik7SGViKFREKG1RYihxLFN6YykpKXx8UkQobVFiKGQscXdjKSwxNSkuRmMoQSl9WHViKHUpO2Zvcih0PWUzYihrLG5wZCkuS2MoKTt0Lk9iKCk7KXtzPVJEKHQuUGIoKSwxMik7UHViKHUscyx1LmEsdS5hLmEpfUVmYyhhLHUsdyxudWxsLGMpO3Y9aztmb3IoZT1uZXcgQW5iKHcpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxMCk7ZjNiKGQsKytyLGkpO3BRYihkLHB3YyxrKTtnPVJEKFZtYihkLmosMCksMTIpO3E9UkQobVFiKGcsQXdjKSwxMik7SGViKFREKG1RYihxLFN6YykpKXx8UkQobVFiKHYscXdjKSwxNSkuRmMoZCl9Yy5jLmxlbmd0aD09MHx8cFFiKGssVXZjLGMpfX1iLlZnKCl9XG5mdW5jdGlvbiB0WWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQ7aWYoYi5iIT0wKXtuPW5ldyBZdWI7aD1udWxsO289bnVsbDtkPWVFKCR3bmQuTWF0aC5mbG9vcigkd25kLk1hdGgubG9nKGIuYikqJHduZC5NYXRoLkxPRzEwRSkrMSk7aT0wO2Zvcih0PVN1YihiLDApO3QuYiE9dC5kLmM7KXtyPVJEKGV2Yih0KSw0MCk7aWYoZEUobykhPT1kRShtUWIociwocSRjKCksYSRjKSkpKXtvPVdEKG1RYihyLGEkYykpO2k9MH1vIT1udWxsPyhoPW8rd1ljKGkrKyxkKSk6KGg9d1ljKGkrKyxkKSk7cFFiKHIsYSRjLGgpO2ZvcihxPShlPVN1YigobmV3IGRYYyhyKSkuYS5kLDApLG5ldyBnWGMoZSkpO2R2YihxLmEpOyl7cD1SRChldmIocS5hKSw2NSkuYztQdWIobixwLG4uYy5iLG4uYyk7cFFiKHAsYSRjLGgpfX1tPW5ldyBUc2I7Zm9yKGc9MDtnPGgubGVuZ3RoLWQ7ZysrKXtmb3Iocz1TdWIoYiwwKTtzLmIhPXMuZC5jOyl7cj1SRChldmIocyksNDApO2o9emhiKFdEKG1RYihyLChxJGMoKSxhJGMpKSksMCxnKzEpO2M9KGo9PW51bGw/V2QocXRiKG0uZixudWxsKSk6S3RiKG0uaSxqKSkhPW51bGw/UkQoaj09bnVsbD9XZChxdGIobS5mLG51bGwpKTpLdGIobS5pLGopLDE3KS5hKzE6MTskamIobSxqLHNnYihjKSl9fWZvcihsPW5ldyB2a2IoKG5ldyBta2IobSkpLmEpO2wuYjspe2s9dGtiKGwpO2Y9c2diKFdqYihhLmEsay5sZCgpKSE9bnVsbD9SRChXamIoYS5hLGsubGQoKSksMTcpLmE6MCk7JGpiKGEuYSxXRChrLmxkKCkpLHNnYihSRChrLm1kKCksMTcpLmErZi5hKSk7Zj1SRChXamIoYS5iLGsubGQoKSksMTcpOyghZnx8Zi5hPFJEKGsubWQoKSwxNykuYSkmJiRqYihhLmIsV0Qoay5sZCgpKSxSRChrLm1kKCksMTcpKX10WWMoYSxuKX19XG5mdW5jdGlvbiBIcGMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtO2M9bnVsbDtpPW51bGw7ZT1SRChtUWIoYS5iLCh5Q2MoKSxDQWMpKSwzNDkpO2lmKGU9PShURWMoKSxSRWMpKXtjPW5ldyBibmI7aT1uZXcgYm5ifWZvcihoPW5ldyBBbmIoYS5kKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTA1KTtmPWcuaTtpZighZil7Y29udGludWV9c3dpdGNoKGcuZS5nKXtjYXNlIDA6Yj1SRChOc2IobmV3IE9zYihnLmIpKSw2NCk7ZT09UkVjJiZiPT0ocXBkKCksWW9kKT8oWkViKGMuYyxnKSx0cnVlKTplPT1SRWMmJmI9PShxcGQoKSxucGQpPyhaRWIoaS5jLGcpLHRydWUpOkZwYyhnLGIpO2JyZWFrO2Nhc2UgMTpqPWcuYS5kLmo7az1nLmMuZC5qO2o9PShxcGQoKSxZb2QpP0dwYyhnLFlvZCwoZW5jKCksYm5jKSxnLmEpOms9PVlvZD9HcGMoZyxZb2QsKGVuYygpLGNuYyksZy5jKTpqPT1ucGQ/R3BjKGcsbnBkLChlbmMoKSxjbmMpLGcuYSk6az09bnBkJiZHcGMoZyxucGQsKGVuYygpLGJuYyksZy5jKTticmVhaztjYXNlIDI6Y2FzZSAzOmQ9Zy5iO0NzYihkLChxcGQoKSxZb2QpKT9Dc2IoZCxucGQpP0NzYihkLHBwZCk/Q3NiKGQsWG9kKXx8R3BjKGcsWW9kLChlbmMoKSxjbmMpLGcuYyk6R3BjKGcsWW9kLChlbmMoKSxibmMpLGcuYSk6R3BjKGcsWW9kLChlbmMoKSxhbmMpLG51bGwpOkdwYyhnLG5wZCwoZW5jKCksYW5jKSxudWxsKTticmVhaztjYXNlIDQ6bD1nLmEuZC5qO209Zy5hLmQuajtsPT0ocXBkKCksWW9kKXx8bT09WW9kP0dwYyhnLG5wZCwoZW5jKCksYW5jKSxudWxsKTpHcGMoZyxZb2QsKGVuYygpLGFuYyksbnVsbCk7fX1pZihjKXtjLmMubGVuZ3RoPT0wfHxFcGMoYywocXBkKCksWW9kKSk7aS5jLmxlbmd0aD09MHx8RXBjKGksKHFwZCgpLG5wZCkpfX1cbmZ1bmN0aW9uIG9HYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyO2MuVWcoJ0JyZWFkdGggZmlyc3QgbW9kZWwgb3JkZXIgbGF5ZXJpbmcnLDEpO2EuYT1iO3E9bmV3IGJuYjtmb3IocD1uZXcgQW5iKGEuYS5hKTtwLmE8cC5jLmMubGVuZ3RoOyl7bj1SRCh5bmIocCksMTApO24uaz09KHIzYigpLHAzYikmJihaRWIocS5jLG4pLHRydWUpfXlvYigpO19tYihxLG5ldyB0R2MpO2k9dHJ1ZTtlPW5ldyBSNGIoYS5hKTtkPW51bGw7Um1iKGEuYS5iLGUpO2ZvcihvPW5ldyBBbmIocSk7by5hPG8uYy5jLmxlbmd0aDspe249UkQoeW5iKG8pLDEwKTtpZihpKXtnM2IobixlKTtpPWZhbHNlfWVsc2V7Zm9yKGg9bmV3IGlzKE1yKFoyYihuKS5hLktjKCksbmV3IGlyKSk7Z3MoaCk7KXtmPVJEKGhzKGgpLDE4KTtpZihmLmMuaS5rPT0ocjNiKCkscDNiKSYmZi5jLmkuYz09ZXx8Zi5jLmkuaz09bjNiJiZSRChocyhuZXcgaXMoTXIoWjJiKGYuYy5pKS5hLktjKCksbmV3IGlyKSkpLDE4KS5jLmkuYz09ZSl7ZD1uZXcgUjRiKGEuYSk7Um1iKGEuYS5iLGQpO2U9bmV3IFI0YihhLmEpO1JtYihhLmEuYixlKX19Zm9yKGc9bmV3IGlzKE1yKFoyYihuKS5hLktjKCksbmV3IGlyKSk7Z3MoZyk7KXtmPVJEKGhzKGcpLDE4KTtmLmMuaS5rPT0ocjNiKCksbjNiKSYmIWYuYy5pLmMmJmczYihmLmMuaSxkKX1nM2IobixlKX19YS5hLmEuYy5sZW5ndGg9MDtyPW5ldyBibmI7Zm9yKGw9bmV3IEFuYihhLmEuYik7bC5hPGwuYy5jLmxlbmd0aDspe2o9UkQoeW5iKGwpLDMwKTtqLmEuYy5sZW5ndGg9PTAmJihaRWIoci5jLGopLHRydWUpfUNlKGEuYS5iLHIpO209MDtmb3Ioaz1uZXcgQW5iKGEuYS5iKTtrLmE8ay5jLmMubGVuZ3RoOyl7aj1SRCh5bmIoayksMzApO2oucD1tOysrbX1jLlZnKCl9XG5mdW5jdGlvbiBLNWIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwO2Q9UkQobVFiKGEsKFl3YygpLEF3YykpLDI3KTtvPVJEKG1RYihhLCh5Q2MoKSxtQWMpKSwxNykuYTtmPVJEKG1RYihhLFZBYyksMTcpLmE7SXhkKGQsbUFjLHNnYihvKSk7SXhkKGQsVkFjLHNnYihmKSk7RHlkKGQsYS5uLmErYi5hKTtFeWQoZCxhLm4uYitiLmIpO2lmKFJEKEd4ZChkLGxCYyksMTgxKS5nYygpIT0wfHwhIWEuZXx8ZEUobVFiKFkyYihhKSxrQmMpKT09PWRFKChKRGMoKSxIRGMpKSYmeERjKCh3RGMoKSwoIWEucT8oeW9iKCkseW9iKCksd29iKTphLnEpLl9iKGlCYyk/KG09UkQobVFiKGEsaUJjKSwyMDMpKToobT1SRChtUWIoWTJiKGEpLGpCYyksMjAzKSksbSkpKXtDeWQoZCxhLm8uYSk7QXlkKGQsYS5vLmIpfWZvcihsPW5ldyBBbmIoYS5qKTtsLmE8bC5jLmMubGVuZ3RoOyl7aj1SRCh5bmIobCksMTIpO3A9bVFiKGosQXdjKTtpZihaRChwLDE5Mykpe2U9UkQocCwxMjMpO0J5ZChlLGoubi5hLGoubi5iKTtJeGQoZSxHQmMsai5qKX19bj1SRChtUWIoYSxkQmMpLDE4MSkuZ2MoKSE9MDtmb3IoaT1uZXcgQW5iKGEuYik7aS5hPGkuYy5jLmxlbmd0aDspe2c9UkQoeW5iKGkpLDcyKTtpZihufHxSRChtUWIoZyxkQmMpLDE4MSkuZ2MoKSE9MCl7Yz1SRChtUWIoZyxBd2MpLDEzNSk7enlkKGMsZy5vLmEsZy5vLmIpO0J5ZChjLGcubi5hLGcubi5iKX19aWYoIVJvZChSRChtUWIoYSxFQmMpLDIxKSkpe2ZvcihrPW5ldyBBbmIoYS5qKTtrLmE8ay5jLmMubGVuZ3RoOyl7aj1SRCh5bmIoayksMTIpO2ZvcihoPW5ldyBBbmIoai5mKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksNzIpO2M9UkQobVFiKGcsQXdjKSwxMzUpO0N5ZChjLGcuby5hKTtBeWQoYyxnLm8uYik7QnlkKGMsZy5uLmEsZy5uLmIpfX19fVxuZnVuY3Rpb24gWDJjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDO2IuVWcoJ0NhbGN1bGF0ZSBHcmFwaCBTaXplJywxKTtiLmRoKGEsZUZlKTtsPUh6ZTttPUh6ZTtqPWZGZTtrPWZGZTtmb3IocD1uZXcgZE1kKCghYS5hJiYoYS5hPW5ldyBDNWQoSjQsYSwxMCwxMSkpLGEuYSkpO3AuZSE9cC5pLmdjKCk7KXtuPVJEKGJNZChwKSwyNyk7cz1uLmk7dD1uLmo7Qz1uLmc7aD1uLmY7aT1SRChHeGQobiwodW1kKCksZWxkKSksMTQwKTtsPSR3bmQuTWF0aC5taW4obCxzLWkuYik7bT0kd25kLk1hdGgubWluKG0sdC1pLmQpO2o9JHduZC5NYXRoLm1heChqLHMrQytpLmMpO2s9JHduZC5NYXRoLm1heChrLHQraCtpLmEpfXI9UkQoR3hkKGEsKHVtZCgpLHRsZCkpLDEwNyk7cT1uZXcgcmpkKGwtci5iLG0tci5kKTtCPWotbCsoci5iK3IuYyk7Zz1rLW0rKHIuZCtyLmEpO2lmKEhlYihURChHeGQoYSwoJDRjKCksRzRjKSkpKSl7dT1SRChHeGQoYSwodTJjKCksdDJjKSksMjcpO3Y9UkQoR3hkKHUsZWxkKSwxNDApO3c9dS5pK3UuZy8yKyh2LmIrdi5jKS8yLXEuYTtBPXUuait1LmYvMisodi5kK3YuYSkvMi1xLmI7ZT1CLXc7Zj1nLUE7aWYoZTxCLzIpe2M9ZS13O0IrPWM7cS5hLT1jfWVsc2V7Yz13LWU7Qis9Y31pZihmPGcvMil7ZD1mLUE7Zys9ZDtxLmItPWR9ZWxzZXtkPUEtZjtnKz1kfX1mb3Iobz1uZXcgZE1kKCghYS5hJiYoYS5hPW5ldyBDNWQoSjQsYSwxMCwxMSkpLGEuYSkpO28uZSE9by5pLmdjKCk7KXtuPVJEKGJNZChvKSwyNyk7RHlkKG4sbi5pLXEuYSk7RXlkKG4sbi5qLXEuYil9aWYoIUhlYihURChHeGQoYSxtbGQpKSkpe0N5ZChhLEIpO0F5ZChhLGcpfUl4ZChhLElrZCxCLShyLmIrci5jKSk7SXhkKGEsSGtkLGctKHIuZCtyLmEpKTtiLmRoKGEsZ0ZlKX1cbmZ1bmN0aW9uIElVYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbjthLmUuYS4kYigpO2EuZi5hLiRiKCk7YS5jLmMubGVuZ3RoPTA7YS5pLmMubGVuZ3RoPTA7YS5nLmEuJGIoKTtpZihiKXtmb3IoZz1uZXcgQW5iKGIuYSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDEwKTtmb3IobD1lM2IoZiwocXBkKCksWG9kKSkuS2MoKTtsLk9iKCk7KXtrPVJEKGwuUGIoKSwxMik7WXNiKGEuZSxrKTtmb3IoZT1uZXcgQW5iKGsuZyk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDE4KTtpZihXMGIoZCkpe2NvbnRpbnVlfVJtYihhLmMsZCk7T1VjKGEsZCk7aD1kLmMuaS5rOyhoPT0ocjNiKCkscDNiKXx8aD09cTNifHxoPT1tM2J8fGg9PWwzYikmJlJtYihhLmosZCk7bj1kLmQ7bT1uLmkuYzttPT1jP1lzYihhLmYsbik6bT09Yj9Zc2IoYS5lLG4pOlltYihhLmMsZCl9fX19aWYoYyl7Zm9yKGc9bmV3IEFuYihjLmEpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxMCk7Zm9yKGo9bmV3IEFuYihmLmopO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwxMik7Zm9yKGU9bmV3IEFuYihpLmcpO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxOCk7VzBiKGQpJiZZc2IoYS5nLGQpfX1mb3IobD1lM2IoZiwocXBkKCkscHBkKSkuS2MoKTtsLk9iKCk7KXtrPVJEKGwuUGIoKSwxMik7WXNiKGEuZixrKTtmb3IoZT1uZXcgQW5iKGsuZyk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDE4KTtpZihXMGIoZCkpe2NvbnRpbnVlfVJtYihhLmMsZCk7T1VjKGEsZCk7aD1kLmMuaS5rOyhoPT0ocjNiKCkscDNiKXx8aD09cTNifHxoPT1tM2J8fGg9PWwzYikmJlJtYihhLmosZCk7bj1kLmQ7bT1uLmkuYzttPT1jP1lzYihhLmYsbik6bT09Yj9Zc2IoYS5lLG4pOlltYihhLmMsZCl9fX19fVxuZnVuY3Rpb24gaVNjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU7Yy5VZygnUG9seWxpbmUgZWRnZSByb3V0aW5nJywxKTtxPUtmYihVRChtUWIoYiwoeUNjKCksQUFjKSkpKTtuPUtmYihVRChtUWIoYixjQ2MpKSk7ZT1LZmIoVUQobVFiKGIsVUJjKSkpO2Q9JHduZC5NYXRoLm1pbigxLGUvbik7dD0wO2k9MDtpZihiLmIuYy5sZW5ndGghPTApe3U9ZlNjKFJEKFZtYihiLmIsMCksMzApKTt0PTAuNCpkKnV9aD1uZXcgSmtiKGIuYiwwKTt3aGlsZShoLmI8aC5kLmdjKCkpe2c9KHNGYihoLmI8aC5kLmdjKCkpLFJEKGguZC5YYihoLmM9aC5iKyspLDMwKSk7Zj1hcihnLGJTYyk7ZiYmdD4wJiYodC09bik7cDJiKGcsdCk7az0wO2ZvcihtPW5ldyBBbmIoZy5hKTttLmE8bS5jLmMubGVuZ3RoOyl7bD1SRCh5bmIobSksMTApO2o9MDtmb3IocD1uZXcgaXMoTXIoYTNiKGwpLmEuS2MoKSxuZXcgaXIpKTtncyhwKTspe289UkQoaHMocCksMTgpO3I9SzNiKG8uYykuYjtzPUszYihvLmQpLmI7aWYoZz09by5kLmkuYyYmIVcwYihvKSl7alNjKG8sdCwwLjQqZCokd25kLk1hdGguYWJzKHItcykpO2lmKG8uYy5qPT0ocXBkKCkscHBkKSl7cj0wO3M9MH19aj0kd25kLk1hdGgubWF4KGosJHduZC5NYXRoLmFicyhzLXIpKX1zd2l0Y2gobC5rLmcpe2Nhc2UgMDpjYXNlIDQ6Y2FzZSAxOmNhc2UgMzpjYXNlIDU6a1NjKGEsbCx0LHEpO31rPSR3bmQuTWF0aC5tYXgoayxqKX1pZihoLmI8aC5kLmdjKCkpe3U9ZlNjKChzRmIoaC5iPGguZC5nYygpKSxSRChoLmQuWGIoaC5jPWguYisrKSwzMCkpKTtrPSR3bmQuTWF0aC5tYXgoayx1KTtzRmIoaC5iPjApO2guYS5YYihoLmM9LS1oLmIpfWk9MC40KmQqazshZiYmaC5iPGguZC5nYygpJiYoaSs9bik7dCs9Zy5jLmEraX1hLmEuYS4kYigpO2IuZi5hPXQ7Yy5WZygpfVxuZnVuY3Rpb24gR0dkKGEpe3ZhciBiLGMsZCxlLGY7SXZiKGEsSUllKTtzd2l0Y2goKCFhLmImJihhLmI9bmV3IFlpZShFNCxhLDQsNykpLGEuYikuaSsoIWEuYyYmKGEuYz1uZXcgWWllKEU0LGEsNSw4KSksYS5jKS5pKXtjYXNlIDA6dGhyb3cgQWRiKG5ldyBhZ2IoJ1RoZSBlZGdlIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgc291cmNlIG9yIHRhcmdldC4nKSk7Y2FzZSAxOnJldHVybiAoIWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSksYS5iKS5pPT0wP3ZDZChBR2QoUkQoUUhkKCghYS5jJiYoYS5jPW5ldyBZaWUoRTQsYSw1LDgpKSxhLmMpLDApLDg0KSkpOnZDZChBR2QoUkQoUUhkKCghYS5iJiYoYS5iPW5ldyBZaWUoRTQsYSw0LDcpKSxhLmIpLDApLDg0KSkpO31pZigoIWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSksYS5iKS5pPT0xJiYoIWEuYyYmKGEuYz1uZXcgWWllKEU0LGEsNSw4KSksYS5jKS5pPT0xKXtlPUFHZChSRChRSGQoKCFhLmImJihhLmI9bmV3IFlpZShFNCxhLDQsNykpLGEuYiksMCksODQpKTtmPUFHZChSRChRSGQoKCFhLmMmJihhLmM9bmV3IFlpZShFNCxhLDUsOCkpLGEuYyksMCksODQpKTtpZih2Q2QoZSk9PXZDZChmKSl7cmV0dXJuIHZDZChlKX1lbHNlIGlmKGU9PXZDZChmKSl7cmV0dXJuIGV9ZWxzZSBpZihmPT12Q2QoZSkpe3JldHVybiBmfX1kPUZsKEFsKGNEKFdDKGNKLDEpLHJ2ZSwyMCwwLFsoIWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSksYS5iKSwoIWEuYyYmKGEuYz1uZXcgWWllKEU0LGEsNSw4KSksYS5jKV0pKSk7Yj1BR2QoUkQoaHMoZCksODQpKTt3aGlsZShncyhkKSl7Yz1BR2QoUkQoaHMoZCksODQpKTtpZihjIT1iJiYhTkdkKGMsYikpe2lmKHZDZChjKT09dkNkKGIpKXtiPXZDZChjKX1lbHNle2I9SEdkKGIsYyk7aWYoIWIpe3JldHVybiBudWxsfX19fXJldHVybiBifVxuZnVuY3Rpb24gX3pkKGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1O249Yy5sZW5ndGg7aWYobj4wKXtqPShCRmIoMCxjLmxlbmd0aCksYy5jaGFyQ29kZUF0KDApKTtpZihqIT02NCl7aWYoaj09Mzcpe209Yy5sYXN0SW5kZXhPZignJScpO2s9ZmFsc2U7aWYobSE9MCYmKG09PW4tMXx8KGs9KEJGYihtKzEsYy5sZW5ndGgpLGMuY2hhckNvZGVBdChtKzEpPT00NikpKSl7aD0oQUZiKDEsbSxjLmxlbmd0aCksYy5zdWJzdHIoMSxtLTEpKTt1PWxoYignJScsaCk/bnVsbDpvU2QoaCk7ZT0wO2lmKGspe3RyeXtlPU9lYigoQkZiKG0rMixjLmxlbmd0aCsxKSxjLnN1YnN0cihtKzIpKSxxd2UsbHZlKX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDEzMCkpe2k9YTt0aHJvdyBBZGIobmV3IFJTZChpKSl9ZWxzZSB0aHJvdyBBZGIoYSl9fWZvcihyPVAyZChiLkdoKCkpO3IuT2IoKTspe3A9azNkKHIpO2lmKFpEKHAsNTE5KSl7Zj1SRChwLDU5OCk7dD1mLmQ7aWYoKHU9PW51bGw/dD09bnVsbDpsaGIodSx0KSkmJmUtLT09MCl7cmV0dXJuIGZ9fX1yZXR1cm4gbnVsbH19bD1jLmxhc3RJbmRleE9mKCcuJyk7bz1sPT0tMT9jOihBRmIoMCxsLGMubGVuZ3RoKSxjLnN1YnN0cigwLGwpKTtkPTA7aWYobCE9LTEpe3RyeXtkPU9lYigoQkZiKGwrMSxjLmxlbmd0aCsxKSxjLnN1YnN0cihsKzEpKSxxd2UsbHZlKX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDEzMCkpe289Y31lbHNlIHRocm93IEFkYihhKX19bz1saGIoJyUnLG8pP251bGw6b1NkKG8pO2ZvcihxPVAyZChiLkdoKCkpO3EuT2IoKTspe3A9azNkKHEpO2lmKFpEKHAsMTk3KSl7Zz1SRChwLDE5Nyk7cz1nLnhlKCk7aWYoKG89PW51bGw/cz09bnVsbDpsaGIobyxzKSkmJmQtLT09MCl7cmV0dXJuIGd9fX1yZXR1cm4gbnVsbH19cmV0dXJuIFB2ZChiLGMpfVxuZnVuY3Rpb24gSGxjKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscztrPW5ldyBUc2I7aT1uZXcgVHA7Zm9yKGQ9bmV3IEFuYihhLmEuYS5iKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoZCksNjApO2o9WmpjKGIpO2lmKGope3J0YihrLmYsaixiKX1lbHNle3M9JGpjKGIpO2lmKHMpe2ZvcihmPW5ldyBBbmIocy5rKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTgpO1JjKGksZSxiKX19fX1mb3IoYz1uZXcgQW5iKGEuYS5hLmIpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSw2MCk7aj1aamMoYik7aWYoail7Zm9yKGg9bmV3IGlzKE1yKGEzYihqKS5hLktjKCksbmV3IGlyKSk7Z3MoaCk7KXtnPVJEKGhzKGgpLDE4KTtpZihXMGIoZykpe2NvbnRpbnVlfW89Zy5jO3I9Zy5kO2lmKChxcGQoKSxocGQpLkhjKGcuYy5qKSYmaHBkLkhjKGcuZC5qKSl7Y29udGludWV9cD1SRChXamIoayxnLmQuaSksNjApO3JJYih1SWIodEliKHZJYihzSWIobmV3IHdJYiwwKSwxMDApLGEuY1tiLmEuZF0pLGEuY1twLmEuZF0pKTtpZihvLmo9PXBwZCYmcTRiKChKM2IoKSxHM2IsbykpKXtmb3IobT1SRChRYyhpLGcpLDIxKS5LYygpO20uT2IoKTspe2w9UkQobS5QYigpLDYwKTtpZihsLmQuYzxiLmQuYyl7bj1hLmNbbC5hLmRdO3E9YS5jW2IuYS5kXTtpZihuPT1xKXtjb250aW51ZX1ySWIodUliKHRJYih2SWIoc0liKG5ldyB3SWIsMSksMTAwKSxuKSxxKSl9fX1pZihyLmo9PVhvZCYmdjRiKChKM2IoKSxFM2IscikpKXtmb3IobT1SRChRYyhpLGcpLDIxKS5LYygpO20uT2IoKTspe2w9UkQobS5QYigpLDYwKTtpZihsLmQuYz5iLmQuYyl7bj1hLmNbYi5hLmRdO3E9YS5jW2wuYS5kXTtpZihuPT1xKXtjb250aW51ZX1ySWIodUliKHRJYih2SWIoc0liKG5ldyB3SWIsMSksMTAwKSxuKSxxKSl9fX19fX19XG5mdW5jdGlvbiBtTmIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHc7bT1SRChSRChRYyhhLnIsYiksMjEpLDg3KTtpZihiPT0ocXBkKCksWG9kKXx8Yj09cHBkKXtxTmIoYSxiKTtyZXR1cm59Zj1iPT1Zb2Q/KG1PYigpLGlPYik6KG1PYigpLGxPYik7dT1iPT1Zb2Q/KHZMYigpLHVMYik6KHZMYigpLHNMYik7Yz1SRChWcmIoYS5iLGIpLDEyNyk7ZD1jLmk7ZT1kLmMrSGlkKGNEKFdDKGlFLDEpLHZ4ZSwyOCwxNSxbYy5uLmIsYS5DLmIsYS5rXSkpO3I9ZC5jK2QuYi1IaWQoY0QoV0MoaUUsMSksdnhlLDI4LDE1LFtjLm4uYyxhLkMuYyxhLmtdKSk7Zz1XTmIoX05iKGYpLGEudCk7cz1iPT1Zb2Q/cHhlOm94ZTtmb3IobD1tLktjKCk7bC5PYigpOyl7aj1SRChsLlBiKCksMTE3KTtpZighai5jfHxqLmMuZC5jLmxlbmd0aDw9MCl7Y29udGludWV9cT1qLmIuTWYoKTtwPWouZTtuPWouYztvPW4uaTtvLmI9KGk9bi5uLG4uZS5hK2kuYitpLmMpO28uYT0oaD1uLm4sbi5lLmIraC5kK2guYSk7SXZiKHUsUHllKTtuLmY9dTtSS2IobiwoRUtiKCksREtiKSk7by5jPXAuYS0oby5iLXEuYSkvMjt2PSR3bmQuTWF0aC5taW4oZSxwLmEpO3c9JHduZC5NYXRoLm1heChyLHAuYStxLmEpO28uYzx2PyhvLmM9dik6by5jK28uYj53JiYoby5jPXctby5iKTtSbWIoZy5kLG5ldyBzT2IobyxVTmIoZyxvKSkpO3M9Yj09WW9kPyR3bmQuTWF0aC5tYXgocyxwLmIrai5iLk1mKCkuYik6JHduZC5NYXRoLm1pbihzLHAuYil9cys9Yj09WW9kP2EudDotYS50O3Q9Vk5iKChnLmU9cyxnKSk7dD4wJiYoUkQoVnJiKGEuYixiKSwxMjcpLmEuYj10KTtmb3Ioaz1tLktjKCk7ay5PYigpOyl7aj1SRChrLlBiKCksMTE3KTtpZighai5jfHxqLmMuZC5jLmxlbmd0aDw9MCl7Y29udGludWV9bz1qLmMuaTtvLmMtPWouZS5hO28uZC09ai5lLmJ9fVxuZnVuY3Rpb24gSlNiKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuO2I9bmV3IFRzYjtmb3IoaT1uZXcgZE1kKGEpO2kuZSE9aS5pLmdjKCk7KXtoPVJEKGJNZChpKSwyNyk7Yz1uZXcgX3NiO1pqYihGU2IsaCxjKTtuPW5ldyBUU2I7ZT1SRCh6RGIobmV3IFNEYihudWxsLG5ldyBUd2IobmV3IGlzKE1yKHlHZChoKS5hLktjKCksbmV3IGlyKSkpKSxPQmIobix0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFsoeEJiKCksdkJiKV0pKSkpLDg1KTtJU2IoYyxSRChlLnhjKChHZWIoKSx0cnVlKSksMTYpLG5ldyBWU2IpO2Q9UkQoekRiKENEYihSRChlLnhjKGZhbHNlKSwxNSkuTGMoKSxuZXcgWFNiKSx0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFt2QmJdKSkpLDE1KTtmb3IoZz1kLktjKCk7Zy5PYigpOyl7Zj1SRChnLlBiKCksNzQpO209S0dkKGYpO2lmKG0pe2o9UkQoV2QocXRiKGIuZixtKSksMjEpO2lmKCFqKXtqPUxTYihtKTtydGIoYi5mLG0sail9eWUoYyxqKX19ZT1SRCh6RGIobmV3IFNEYihudWxsLG5ldyBUd2IobmV3IGlzKE1yKHpHZChoKS5hLktjKCksbmV3IGlyKSkpKSxPQmIobix0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFt2QmJdKSkpKSw4NSk7SVNiKGMsUkQoZS54Yyh0cnVlKSwxNiksbmV3IFpTYik7ZD1SRCh6RGIoQ0RiKFJEKGUueGMoZmFsc2UpLDE1KS5MYygpLG5ldyBfU2IpLHRCYihuZXcgWkJiLG5ldyBYQmIsbmV3IHdDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsW3ZCYl0pKSksMTUpO2ZvcihsPWQuS2MoKTtsLk9iKCk7KXtrPVJEKGwuUGIoKSw3NCk7bT1NR2Qoayk7aWYobSl7aj1SRChXZChxdGIoYi5mLG0pKSwyMSk7aWYoIWope2o9TFNiKG0pO3J0YihiLmYsbSxqKX15ZShjLGopfX19fVxuZnVuY3Rpb24gempiKGEsYil7eGpiKCk7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scDtpPURkYihhLDApPDA7aSYmKGE9T2RiKGEpKTtpZihEZGIoYSwwKT09MCl7c3dpdGNoKGIpe2Nhc2UgMDpyZXR1cm4gJzAnO2Nhc2UgMTpyZXR1cm4genhlO2Nhc2UgMjpyZXR1cm4gJzAuMDAnO2Nhc2UgMzpyZXR1cm4gJzAuMDAwJztjYXNlIDQ6cmV0dXJuICcwLjAwMDAnO2Nhc2UgNTpyZXR1cm4gJzAuMDAwMDAnO2Nhc2UgNjpyZXR1cm4gJzAuMDAwMDAwJztkZWZhdWx0Om49bmV3IGJpYjtiPDA/KG4uYSs9JzBFKycsbik6KG4uYSs9JzBFJyxuKTtuLmErPWI9PXF3ZT8nMjE0NzQ4MzY0OCc6JycrLWI7cmV0dXJuIG4uYTt9fWs9MTg7bD0kQyhoRSx6d2UsMjgsaysxLDE1LDEpO2M9aztwPWE7ZG97aj1wO3A9RmRiKHAsMTApO2xbLS1jXT1ZZGIoQmRiKDQ4LFZkYihqLE5kYihwLDEwKSkpKSZCd2V9d2hpbGUoRGRiKHAsMCkhPTApO2U9VmRiKFZkYihWZGIoayxjKSxiKSwxKTtpZihiPT0wKXtpJiYobFstLWNdPTQ1KTtyZXR1cm4gSWhiKGwsYyxrLWMpfWlmKGI+MCYmRGRiKGUsLTYpPj0wKXtpZihEZGIoZSwwKT49MCl7Zj1jK1lkYihlKTtmb3IoaD1rLTE7aD49ZjtoLS0pe2xbaCsxXT1sW2hdfWxbKytmXT00NjtpJiYobFstLWNdPTQ1KTtyZXR1cm4gSWhiKGwsYyxrLWMrMSl9Zm9yKGc9MjtMZGIoZyxCZGIoT2RiKGUpLDEpKTtnKyspe2xbLS1jXT00OH1sWy0tY109NDY7bFstLWNdPTQ4O2kmJihsWy0tY109NDUpO3JldHVybiBJaGIobCxjLGstYyl9bz1jKzE7ZD1rO209bmV3IGNpYjtpJiYobS5hKz0nLScsbSk7aWYoZC1vPj0xKXtUaGIobSxsW2NdKTttLmErPScuJzttLmErPUloYihsLGMrMSxrLWMtMSl9ZWxzZXttLmErPUloYihsLGMsay1jKX1tLmErPSdFJztEZGIoZSwwKT4wJiYobS5hKz0nKycsbSk7bS5hKz0nJytaZGIoZSk7cmV0dXJuIG0uYX1cbmZ1bmN0aW9uIEVzZChhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdztxPW5ldyByamQoYS5nLGEuZik7cD12c2QoYSk7cC5hPSR3bmQuTWF0aC5tYXgocC5hLGIpO3AuYj0kd25kLk1hdGgubWF4KHAuYixjKTt3PXAuYS9xLmE7az1wLmIvcS5iO3U9cC5hLXEuYTtpPXAuYi1xLmI7aWYoZCl7Zz0hdkNkKGEpP1JEKEd4ZChhLCh1bWQoKSxOa2QpKSw4OCk6UkQoR3hkKHZDZChhKSwodW1kKCksTmtkKSksODgpO2g9ZEUoR3hkKGEsKHVtZCgpLEhsZCkpKT09PWRFKChCb2QoKSx3b2QpKTtmb3Iocz1uZXcgZE1kKCghYS5jJiYoYS5jPW5ldyBDNWQoSzQsYSw5LDkpKSxhLmMpKTtzLmUhPXMuaS5nYygpOyl7cj1SRChiTWQocyksMTIzKTt0PVJEKEd4ZChyLE9sZCksNjQpO2lmKHQ9PShxcGQoKSxvcGQpKXt0PW9zZChyLGcpO0l4ZChyLE9sZCx0KX1zd2l0Y2godC5nKXtjYXNlIDE6aHx8RHlkKHIsci5pKncpO2JyZWFrO2Nhc2UgMjpEeWQocixyLmkrdSk7aHx8RXlkKHIsci5qKmspO2JyZWFrO2Nhc2UgMzpofHxEeWQocixyLmkqdyk7RXlkKHIsci5qK2kpO2JyZWFrO2Nhc2UgNDpofHxFeWQocixyLmoqayk7fX19enlkKGEscC5hLHAuYik7aWYoZSl7Zm9yKG09bmV3IGRNZCgoIWEubiYmKGEubj1uZXcgQzVkKEk0LGEsMSw3KSksYS5uKSk7bS5lIT1tLmkuZ2MoKTspe2w9UkQoYk1kKG0pLDEzNSk7bj1sLmkrbC5nLzI7bz1sLmorbC5mLzI7dj1uL3EuYTtqPW8vcS5iO2lmKHYraj49MSl7aWYodi1qPjAmJm8+PTApe0R5ZChsLGwuaSt1KTtFeWQobCxsLmoraSpqKX1lbHNlIGlmKHYtajwwJiZuPj0wKXtEeWQobCxsLmkrdSp2KTtFeWQobCxsLmoraSl9fX19SXhkKGEsKHVtZCgpLGtsZCksKFFwZCgpLGY9UkQobWZiKEgzKSw5KSxuZXcgRnNiKGYsUkQoV0ViKGYsZi5sZW5ndGgpLDkpLDApKSk7cmV0dXJuIG5ldyByamQodyxrKX1cbmZ1bmN0aW9uIF80YyhhKXtDZ2QoYSxuZXcgUGZkKFdmZCgkZmQoWGZkKFpmZChZZmQobmV3IGFnZCxDRmUpLCdFTEsgUmFkaWFsJyksJ0EgcmFkaWFsIGxheW91dCBwcm92aWRlciB3aGljaCBpcyBiYXNlZCBvbiB0aGUgYWxnb3JpdGhtIG9mIFBldGVyIEVhZGVzIHB1Ymxpc2hlZCBpbiBcIkRyYXdpbmcgZnJlZSB0cmVlcy5cIiwgcHVibGlzaGVkIGJ5IEludGVybmF0aW9uYWwgSW5zdGl0dXRlIGZvciBBZHZhbmNlZCBTdHVkeSBvZiBTb2NpYWwgSW5mb3JtYXRpb24gU2NpZW5jZSwgRnVqaXRzdSBMaW1pdGVkIGluIDE5OTEuIFRoZSByYWRpYWwgbGF5b3V0ZXIgdGFrZXMgYSB0cmVlIGFuZCBwbGFjZXMgdGhlIG5vZGVzIGluIHJhZGlhbCBvcmRlciBhcm91bmQgdGhlIHJvb3QuIFRoZSBub2RlcyBvZiB0aGUgc2FtZSB0cmVlIGxldmVsIGFyZSBwbGFjZWQgb24gdGhlIHNhbWUgcmFkaXVzLicpLG5ldyBjNWMpLENGZSkpKTtBZ2QoYSxDRmUsZkVlLGlHZChSNGMpKTtBZ2QoYSxDRmUsX3plLGlHZChZNGMpKTtBZ2QoYSxDRmUsakFlLGlHZChLNGMpKTtBZ2QoYSxDRmUsQ0FlLGlHZChMNGMpKTtBZ2QoYSxDRmUsaUFlLGlHZChNNGMpKTtBZ2QoYSxDRmUsa0FlLGlHZChKNGMpKTtBZ2QoYSxDRmUsZ0FlLGlHZChONGMpKTtBZ2QoYSxDRmUsbEFlLGlHZChRNGMpKTtBZ2QoYSxDRmUsdEZlLGlHZChINGMpKTtBZ2QoYSxDRmUsc0ZlLGlHZChJNGMpKTtBZ2QoYSxDRmUsckZlLGlHZChUNGMpKTtBZ2QoYSxDRmUseEZlLGlHZChXNGMpKTtBZ2QoYSxDRmUseUZlLGlHZChVNGMpKTtBZ2QoYSxDRmUsekZlLGlHZChWNGMpKTtBZ2QoYSxDRmUsd0ZlLGlHZChPNGMpKTtBZ2QoYSxDRmUscEZlLGlHZChQNGMpKTtBZ2QoYSxDRmUscUZlLGlHZChTNGMpKTtBZ2QoYSxDRmUsdUZlLGlHZChYNGMpKTtBZ2QoYSxDRmUsdkZlLGlHZChaNGMpKTtBZ2QoYSxDRmUsb0ZlLGlHZChHNGMpKX1cbmZ1bmN0aW9uIFBlYihhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsO2lmKGE9PW51bGwpe3Rocm93IEFkYihuZXcgVmdiKHZ2ZSkpfWo9YTtmPWEubGVuZ3RoO2k9ZmFsc2U7aWYoZj4wKXtiPShCRmIoMCxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KDApKTtpZihiPT00NXx8Yj09NDMpe2E9KEJGYigxLGEubGVuZ3RoKzEpLGEuc3Vic3RyKDEpKTstLWY7aT1iPT00NX19aWYoZj09MCl7dGhyb3cgQWRiKG5ldyBWZ2IobnhlK2orJ1wiJykpfXdoaWxlKGEubGVuZ3RoPjAmJihCRmIoMCxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KDApPT00OCkpe2E9KEJGYigxLGEubGVuZ3RoKzEpLGEuc3Vic3RyKDEpKTstLWZ9aWYoZj4oVWdiKCksU2diKVsxMF0pe3Rocm93IEFkYihuZXcgVmdiKG54ZStqKydcIicpKX1mb3IoZT0wO2U8ZjtlKyspe2lmKGRmYigoQkZiKGUsYS5sZW5ndGgpLGEuY2hhckNvZGVBdChlKSkpPT0tMSl7dGhyb3cgQWRiKG5ldyBWZ2IobnhlK2orJ1wiJykpfX1sPTA7Zz1RZ2JbMTBdO2s9UmdiWzEwXTtoPU9kYihUZ2JbMTBdKTtjPXRydWU7ZD1mJWc7aWYoZD4wKXtsPS1wYXJzZUludCgoQUZiKDAsZCxhLmxlbmd0aCksYS5zdWJzdHIoMCxkKSksMTApO2E9KEJGYihkLGEubGVuZ3RoKzEpLGEuc3Vic3RyKGQpKTtmLT1kO2M9ZmFsc2V9d2hpbGUoZj49Zyl7ZD1wYXJzZUludCgoQUZiKDAsZyxhLmxlbmd0aCksYS5zdWJzdHIoMCxnKSksMTApO2E9KEJGYihnLGEubGVuZ3RoKzEpLGEuc3Vic3RyKGcpKTtmLT1nO2lmKGMpe2M9ZmFsc2V9ZWxzZXtpZihEZGIobCxoKTwwKXt0aHJvdyBBZGIobmV3IFZnYihueGUraisnXCInKSl9bD1OZGIobCxrKX1sPVZkYihsLGQpfWlmKERkYihsLDApPjApe3Rocm93IEFkYihuZXcgVmdiKG54ZStqKydcIicpKX1pZighaSl7bD1PZGIobCk7aWYoRGRiKGwsMCk8MCl7dGhyb3cgQWRiKG5ldyBWZ2IobnhlK2orJ1wiJykpfX1yZXR1cm4gbH1cbmZ1bmN0aW9uIG9TZChhKXtnU2QoKTt2YXIgYixjLGQsZSxmLGcsaCxpO2lmKGE9PW51bGwpcmV0dXJuIG51bGw7ZT1xaGIoYSxGaGIoMzcpKTtpZihlPDApe3JldHVybiBhfWVsc2V7aT1uZXcgZGliKChBRmIoMCxlLGEubGVuZ3RoKSxhLnN1YnN0cigwLGUpKSk7Yj0kQyhnRSxZSGUsMjgsNCwxNSwxKTtoPTA7ZD0wO2ZvcihnPWEubGVuZ3RoO2U8ZztlKyspe0JGYihlLGEubGVuZ3RoKTtpZihhLmNoYXJDb2RlQXQoZSk9PTM3JiZhLmxlbmd0aD5lKzImJnpTZCgoQkZiKGUrMSxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGUrMSkpLFhSZCxZUmQpJiZ6U2QoKEJGYihlKzIsYS5sZW5ndGgpLGEuY2hhckNvZGVBdChlKzIpKSxYUmQsWVJkKSl7Yz1EU2QoKEJGYihlKzEsYS5sZW5ndGgpLGEuY2hhckNvZGVBdChlKzEpKSwoQkZiKGUrMixhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGUrMikpKTtlKz0yO2lmKGQ+MCl7KGMmMTkyKT09MTI4PyhiW2grK109Yzw8MjQ+PjI0KTooZD0wKX1lbHNlIGlmKGM+PTEyOCl7aWYoKGMmMjI0KT09MTkyKXtiW2grK109Yzw8MjQ+PjI0O2Q9Mn1lbHNlIGlmKChjJjI0MCk9PTIyNCl7YltoKytdPWM8PDI0Pj4yNDtkPTN9ZWxzZSBpZigoYyYyNDgpPT0yNDApe2JbaCsrXT1jPDwyND4+MjQ7ZD00fX1pZihkPjApe2lmKGg9PWQpe3N3aXRjaChoKXtjYXNlIDI6e1RoYihpLCgoYlswXSYzMSk8PDZ8YlsxXSY2MykmQndlKTticmVha31jYXNlIDM6e1RoYihpLCgoYlswXSYxNSk8PDEyfChiWzFdJjYzKTw8NnxiWzJdJjYzKSZCd2UpO2JyZWFrfX1oPTA7ZD0wfX1lbHNle2ZvcihmPTA7ZjxoOysrZil7VGhiKGksYltmXSZCd2UpfWg9MDtpLmErPVN0cmluZy5mcm9tQ2hhckNvZGUoYyl9fWVsc2V7Zm9yKGY9MDtmPGg7KytmKXtUaGIoaSxiW2ZdJkJ3ZSl9aD0wO1RoYihpLChCRmIoZSxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGUpKSl9fXJldHVybiBpLmF9fVxuZnVuY3Rpb24gYXRkKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG87bj12Q2QoQUdkKFJEKFFIZCgoIWEuYiYmKGEuYj1uZXcgWWllKEU0LGEsNCw3KSksYS5iKSwwKSw4NCkpKTtvPXZDZChBR2QoUkQoUUhkKCghYS5jJiYoYS5jPW5ldyBZaWUoRTQsYSw1LDgpKSxhLmMpLDApLDg0KSkpO2w9bj09bztoPW5ldyBwamQ7Yj1SRChHeGQoYSwodm5kKCksb25kKSksNzUpO2lmKCEhYiYmYi5iPj0yKXtpZigoIWEuYSYmKGEuYT1uZXcgQzVkKEY0LGEsNiw2KSksYS5hKS5pPT0wKXtjPShidmQoKSxlPW5ldyBSemQsZSk7V0dkKCghYS5hJiYoYS5hPW5ldyBDNWQoRjQsYSw2LDYpKSxhLmEpLGMpfWVsc2UgaWYoKCFhLmEmJihhLmE9bmV3IEM1ZChGNCxhLDYsNikpLGEuYSkuaT4xKXttPW5ldyBtTWQoKCFhLmEmJihhLmE9bmV3IEM1ZChGNCxhLDYsNikpLGEuYSkpO3doaWxlKG0uZSE9bS5pLmdjKCkpe2NNZChtKX19bHNkKGIsUkQoUUhkKCghYS5hJiYoYS5hPW5ldyBDNWQoRjQsYSw2LDYpKSxhLmEpLDApLDE2NikpfWlmKGwpe2ZvcihkPW5ldyBkTWQoKCFhLmEmJihhLmE9bmV3IEM1ZChGNCxhLDYsNikpLGEuYSkpO2QuZSE9ZC5pLmdjKCk7KXtjPVJEKGJNZChkKSwxNjYpO2ZvcihqPW5ldyBkTWQoKCFjLmEmJihjLmE9bmV3IFhaZChENCxjLDUpKSxjLmEpKTtqLmUhPWouaS5nYygpOyl7aT1SRChiTWQoaiksMzc3KTtoLmE9JHduZC5NYXRoLm1heChoLmEsaS5hKTtoLmI9JHduZC5NYXRoLm1heChoLmIsaS5iKX19fWZvcihnPW5ldyBkTWQoKCFhLm4mJihhLm49bmV3IEM1ZChJNCxhLDEsNykpLGEubikpO2cuZSE9Zy5pLmdjKCk7KXtmPVJEKGJNZChnKSwxMzUpO2s9UkQoR3hkKGYsdW5kKSw4KTshIWsmJkJ5ZChmLGsuYSxrLmIpO2lmKGwpe2guYT0kd25kLk1hdGgubWF4KGguYSxmLmkrZi5nKTtoLmI9JHduZC5NYXRoLm1heChoLmIsZi5qK2YuZil9fXJldHVybiBofVxuZnVuY3Rpb24gTUEoYSxiLGMsZCxlKXt2YXIgZixnLGg7S0EoYSxiKTtnPWJbMF07Zj1paGIoYy5jLDApO2g9LTE7aWYoREEoYykpe2lmKGQ+MCl7aWYoZytkPmEubGVuZ3RoKXtyZXR1cm4gZmFsc2V9aD1IQSgoQUZiKDAsZytkLGEubGVuZ3RoKSxhLnN1YnN0cigwLGcrZCkpLGIpfWVsc2V7aD1IQShhLGIpfX1zd2l0Y2goZil7Y2FzZSA3MTpoPUVBKGEsZyxjRChXQyhxSiwxKSxOdmUsMiw2LFtRd2UsUndlXSksYik7ZS5lPWg7cmV0dXJuIHRydWU7Y2FzZSA3NzpyZXR1cm4gUEEoYSxiLGUsaCxnKTtjYXNlIDc2OnJldHVybiBSQShhLGIsZSxoLGcpO2Nhc2UgNjk6cmV0dXJuIE5BKGEsYixnLGUpO2Nhc2UgOTk6cmV0dXJuIFFBKGEsYixnLGUpO2Nhc2UgOTc6aD1FQShhLGcsY0QoV0MocUosMSksTnZlLDIsNixbJ0FNJywnUE0nXSksYik7ZS5iPWg7cmV0dXJuIHRydWU7Y2FzZSAxMjE6cmV0dXJuIFRBKGEsYixnLGgsYyxlKTtjYXNlIDEwMDppZihoPD0wKXtyZXR1cm4gZmFsc2V9ZS5jPWg7cmV0dXJuIHRydWU7Y2FzZSA4MzppZihoPDApe3JldHVybiBmYWxzZX1yZXR1cm4gT0EoaCxnLGJbMF0sZSk7Y2FzZSAxMDQ6aD09MTImJihoPTApO2Nhc2UgNzU6Y2FzZSA3MjppZihoPDApe3JldHVybiBmYWxzZX1lLmY9aDtlLmc9ZmFsc2U7cmV0dXJuIHRydWU7Y2FzZSAxMDc6aWYoaDwwKXtyZXR1cm4gZmFsc2V9ZS5mPWg7ZS5nPXRydWU7cmV0dXJuIHRydWU7Y2FzZSAxMDk6aWYoaDwwKXtyZXR1cm4gZmFsc2V9ZS5qPWg7cmV0dXJuIHRydWU7Y2FzZSAxMTU6aWYoaDwwKXtyZXR1cm4gZmFsc2V9ZS5uPWg7cmV0dXJuIHRydWU7Y2FzZSA5MDppZihnPGEubGVuZ3RoJiYoQkZiKGcsYS5sZW5ndGgpLGEuY2hhckNvZGVBdChnKT09OTApKXsrK2JbMF07ZS5vPTA7cmV0dXJuIHRydWV9Y2FzZSAxMjI6Y2FzZSAxMTg6cmV0dXJuIFNBKGEsZyxiLGUpO2RlZmF1bHQ6cmV0dXJuIGZhbHNlO319XG5mdW5jdGlvbiBZUWMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCO3Q9Yi5jLmxlbmd0aDtlPW5ldyBzUWMoYS5hLGMsbnVsbCxudWxsKTtCPSRDKGlFLHZ4ZSwyOCx0LDE1LDEpO3A9JEMoaUUsdnhlLDI4LHQsMTUsMSk7bz0kQyhpRSx2eGUsMjgsdCwxNSwxKTtxPTA7Zm9yKGg9MDtoPHQ7aCsrKXtwW2hdPWx2ZTtvW2hdPXF3ZX1mb3IoaT0wO2k8dDtpKyspe2Q9KHRGYihpLGIuYy5sZW5ndGgpLFJEKGIuY1tpXSwxODUpKTtCW2ldPXFRYyhkKTtCW3FdPkJbaV0mJihxPWkpO2ZvcihsPW5ldyBBbmIoYS5hLmIpO2wuYTxsLmMuYy5sZW5ndGg7KXtrPVJEKHluYihsKSwzMCk7Zm9yKHM9bmV3IEFuYihrLmEpO3MuYTxzLmMuYy5sZW5ndGg7KXtyPVJEKHluYihzKSwxMCk7dz1LZmIoZC5wW3IucF0pK0tmYihkLmRbci5wXSk7cFtpXT0kd25kLk1hdGgubWluKHBbaV0sdyk7b1tpXT0kd25kLk1hdGgubWF4KG9baV0sdytyLm8uYil9fX1BPSRDKGlFLHZ4ZSwyOCx0LDE1LDEpO2ZvcihqPTA7ajx0O2orKyl7KHRGYihqLGIuYy5sZW5ndGgpLFJEKGIuY1tqXSwxODUpKS5vPT0oRVFjKCksQ1FjKT8oQVtqXT1wW3FdLXBbal0pOihBW2pdPW9bcV0tb1tqXSl9Zj0kQyhpRSx2eGUsMjgsdCwxNSwxKTtmb3Iobj1uZXcgQW5iKGEuYS5iKTtuLmE8bi5jLmMubGVuZ3RoOyl7bT1SRCh5bmIobiksMzApO2Zvcih2PW5ldyBBbmIobS5hKTt2LmE8di5jLmMubGVuZ3RoOyl7dT1SRCh5bmIodiksMTApO2ZvcihnPTA7Zzx0O2crKyl7ZltnXT1LZmIoKHRGYihnLGIuYy5sZW5ndGgpLFJEKGIuY1tnXSwxODUpKS5wW3UucF0pK0tmYigodEZiKGcsYi5jLmxlbmd0aCksUkQoYi5jW2ddLDE4NSkpLmRbdS5wXSkrQVtnXX1iRmIoZixoZWIoaW9iLnByb3RvdHlwZS5NZSxpb2IsW10pKTtlLnBbdS5wXT0oZlsxXStmWzJdKS8yO2UuZFt1LnBdPTB9fXJldHVybiBlfVxuZnVuY3Rpb24gWDZiKGEsYixjKXt2YXIgZCxlLGYsZyxoO2Q9Yi5pO2Y9YS5pLm87ZT1hLmkuZDtoPWEubjtnPXhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtoLGEuYV0pKTtzd2l0Y2goYS5qLmcpe2Nhc2UgMTpTS2IoYiwodkxiKCksc0xiKSk7ZC5kPS1lLmQtYy1kLmE7aWYoUkQoUkQoVm1iKGIuZCwwKSwxODcpLm9mKChZd2MoKSxzd2MpKSwyOTEpPT0oUG5kKCksTG5kKSl7UktiKGIsKEVLYigpLERLYikpO2QuYz1nLmEtS2ZiKFVEKG1RYihhLHl3YykpKS1jLWQuYn1lbHNle1JLYihiLChFS2IoKSxDS2IpKTtkLmM9Zy5hK0tmYihVRChtUWIoYSx5d2MpKSkrY31icmVhaztjYXNlIDI6UktiKGIsKEVLYigpLENLYikpO2QuYz1mLmErZS5jK2M7aWYoUkQoUkQoVm1iKGIuZCwwKSwxODcpLm9mKChZd2MoKSxzd2MpKSwyOTEpPT0oUG5kKCksTG5kKSl7U0tiKGIsKHZMYigpLHNMYikpO2QuZD1nLmItS2ZiKFVEKG1RYihhLHl3YykpKS1jLWQuYX1lbHNle1NLYihiLCh2TGIoKSx1TGIpKTtkLmQ9Zy5iK0tmYihVRChtUWIoYSx5d2MpKSkrY31icmVhaztjYXNlIDM6U0tiKGIsKHZMYigpLHVMYikpO2QuZD1mLmIrZS5hK2M7aWYoUkQoUkQoVm1iKGIuZCwwKSwxODcpLm9mKChZd2MoKSxzd2MpKSwyOTEpPT0oUG5kKCksTG5kKSl7UktiKGIsKEVLYigpLERLYikpO2QuYz1nLmEtS2ZiKFVEKG1RYihhLHl3YykpKS1jLWQuYn1lbHNle1JLYihiLChFS2IoKSxDS2IpKTtkLmM9Zy5hK0tmYihVRChtUWIoYSx5d2MpKSkrY31icmVhaztjYXNlIDQ6UktiKGIsKEVLYigpLERLYikpO2QuYz0tZS5iLWMtZC5iO2lmKFJEKFJEKFZtYihiLmQsMCksMTg3KS5vZigoWXdjKCksc3djKSksMjkxKT09KFBuZCgpLExuZCkpe1NLYihiLCh2TGIoKSxzTGIpKTtkLmQ9Zy5iLUtmYihVRChtUWIoYSx5d2MpKSktYy1kLmF9ZWxzZXtTS2IoYiwodkxiKCksdUxiKSk7ZC5kPWcuYitLZmIoVUQobVFiKGEseXdjKSkpK2N9fX1cbmZ1bmN0aW9uIFE4YyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHA7Yy5VZyhBRmUsMSk7IWIuYSYmKGIuYT1uZXcgQzVkKEo0LGIsMTAsMTEpKTtkPUtmYihVRChHeGQoYiwoWDdjKCkseDdjKSkpKTtrPUtmYihVRChHeGQoYixRN2MpKSk7bT1SRChHeGQoYixON2MpLDEwNyk7bj1uZXcgbTljKGQsayk7Zj1sOWMobixiLG0pO1A4YyhiLG4pO2g9UkQoR3hkKGIsSzdjKSwxNykuYTt3aGlsZShoPjEpe2U9TjhjKGIpO2w9Zi5nO289UkQoR3hkKGIsTjdjKSwxMDcpO3A9S2ZiKFVEKEd4ZChiLHg3YykpKTsoIWIuYSYmKGIuYT1uZXcgQzVkKEo0LGIsMTAsMTEpKSxiLmEpLmk+MSYmS2ZiKFVEKEd4ZChiLChYNmMoKSxUNmMpKSkpIT1veGUmJihmLmMrKG8uYitvLmMpKS8oZi5iKyhvLmQrby5hKSk8cD9JeGQoZSwoWDZjKCksVzZjKSxLZmIoVUQoR3hkKGIsVzZjKSkpK0tmYihVRChHeGQoYixUNmMpKSkpOighYi5hJiYoYi5hPW5ldyBDNWQoSjQsYiwxMCwxMSkpLGIuYSkuaT4xJiZLZmIoVUQoR3hkKGIsKFg2YygpLFM2YykpKSkhPW94ZSYmKGYuYysoby5iK28uYykpLyhmLmIrKG8uZCtvLmEpKT5wJiZJeGQoZSwoWDZjKCksVzZjKSwkd25kLk1hdGgubWF4KEtmYihVRChHeGQoYixVNmMpKSksS2ZiKFVEKEd4ZChlLFc2YykpKS1LZmIoVUQoR3hkKGIsUzZjKSkpKSk7bj1uZXcgbTljKGQsayk7aT1sOWMobixlLG0pO2o9aS5nO2lmKGo+PWwmJmo9PWope2ZvcihnPTA7ZzwoIWUuYSYmKGUuYT1uZXcgQzVkKEo0LGUsMTAsMTEpKSxlLmEpLmk7ZysrKXtPOGMoYSxSRChRSGQoKCFlLmEmJihlLmE9bmV3IEM1ZChKNCxlLDEwLDExKSksZS5hKSxnKSwyNyksUkQoUUhkKCghYi5hJiYoYi5hPW5ldyBDNWQoSjQsYiwxMCwxMSkpLGIuYSksZyksMjcpKX1QOGMoYixuKTtqYWQoZixpLmMpO2lhZChmLGkuYil9LS1ofUl4ZChiLChYNmMoKSxONmMpLGYuYik7SXhkKGIsTzZjLGYuYyk7Yy5WZygpfVxuZnVuY3Rpb24gZkhjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscztiLlVnKCdJbnRlcmFjdGl2ZSBub2RlIGxheWVyaW5nJywxKTtjPW5ldyBibmI7Zm9yKG09bmV3IEFuYihhLmEpO20uYTxtLmMuYy5sZW5ndGg7KXtrPVJEKHluYihtKSwxMCk7aT1rLm4uYTtoPWkray5vLmE7aD0kd25kLk1hdGgubWF4KGkrMSxoKTtzPW5ldyBKa2IoYywwKTtkPW51bGw7d2hpbGUocy5iPHMuZC5nYygpKXtxPShzRmIocy5iPHMuZC5nYygpKSxSRChzLmQuWGIocy5jPXMuYisrKSw1NzgpKTtpZihxLmM+PWgpe3NGYihzLmI+MCk7cy5hLlhiKHMuYz0tLXMuYik7YnJlYWt9ZWxzZSBpZihxLmE+aSl7aWYoIWQpe1JtYihxLmIsayk7cS5jPSR3bmQuTWF0aC5taW4ocS5jLGkpO3EuYT0kd25kLk1hdGgubWF4KHEuYSxoKTtkPXF9ZWxzZXtUbWIoZC5iLHEuYik7ZC5hPSR3bmQuTWF0aC5tYXgoZC5hLHEuYSk7Q2tiKHMpfX19aWYoIWQpe2Q9bmV3IGpIYztkLmM9aTtkLmE9aDtJa2IocyxkKTtSbWIoZC5iLGspfX1nPWEuYjtqPTA7Zm9yKHI9bmV3IEFuYihjKTtyLmE8ci5jLmMubGVuZ3RoOyl7cT1SRCh5bmIociksNTc4KTtlPW5ldyBSNGIoYSk7ZS5wPWorKztaRWIoZy5jLGUpO2ZvcihuPW5ldyBBbmIocS5iKTtuLmE8bi5jLmMubGVuZ3RoOyl7az1SRCh5bmIobiksMTApO2czYihrLGUpO2sucD0wfX1mb3IobD1uZXcgQW5iKGEuYSk7bC5hPGwuYy5jLmxlbmd0aDspe2s9UkQoeW5iKGwpLDEwKTtpZihrLnA9PTApe3A9ZUhjKGssYSk7d2hpbGUocC5hLmdjKCkhPTApe289UkQocC5hLmVjKCkuS2MoKS5QYigpLDEwKTtwLmEuQmMobykhPW51bGw7eWUocCxlSGMobyxhKSl9fX1mPW5ldyBKa2IoZywwKTt3aGlsZShmLmI8Zi5kLmdjKCkpeyhzRmIoZi5iPGYuZC5nYygpKSxSRChmLmQuWGIoZi5jPWYuYisrKSwzMCkpLmEuYy5sZW5ndGg9PTAmJkNrYihmKX1hLmEuYy5sZW5ndGg9MDtiLlZnKCl9XG5mdW5jdGlvbiBncmQoYSxiLGMsZCxlLGYsZyl7dmFyIGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEcsSCxJO249MDtEPTA7Zm9yKGk9bmV3IEFuYihhKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksMjcpO0RzZChoKTtuPSR3bmQuTWF0aC5tYXgobixoLmcpO0QrPWguZypoLmZ9bz1EL2EuYy5sZW5ndGg7Qz1hcmQoYSxvKTtEKz1hLmMubGVuZ3RoKkM7bj0kd25kLk1hdGgubWF4KG4sJHduZC5NYXRoLnNxcnQoRCpnKSkrYy5iO0g9Yy5iO0k9Yy5kO209MDtrPWMuYitjLmM7Qj1uZXcgWXViO011YihCLHNnYigwKSk7dz1uZXcgWXViO2o9bmV3IEprYihhLDApO3doaWxlKGouYjxqLmQuZ2MoKSl7aD0oc0ZiKGouYjxqLmQuZ2MoKSksUkQoai5kLlhiKGouYz1qLmIrKyksMjcpKTtHPWguZztsPWguZjtpZihIK0c+bil7aWYoZil7T3ViKHcsbSk7T3ViKEIsc2diKGouYi0xKSl9SD1jLmI7SSs9bStiO209MDtrPSR3bmQuTWF0aC5tYXgoayxjLmIrYy5jK0cpfUR5ZChoLEgpO0V5ZChoLEkpO2s9JHduZC5NYXRoLm1heChrLEgrRytjLmMpO209JHduZC5NYXRoLm1heChtLGwpO0grPUcrYn1rPSR3bmQuTWF0aC5tYXgoayxkKTtGPUkrbStjLmE7aWYoRjxlKXttKz1lLUY7Rj1lfWlmKGYpe0g9Yy5iO2o9bmV3IEprYihhLDApO091YihCLHNnYihhLmMubGVuZ3RoKSk7QT1TdWIoQiwwKTtyPVJEKGV2YihBKSwxNykuYTtPdWIodyxtKTt2PVN1Yih3LDApO3U9MDt3aGlsZShqLmI8ai5kLmdjKCkpe2lmKGouYj09cil7SD1jLmI7dT1LZmIoVUQoZXZiKHYpKSk7cj1SRChldmIoQSksMTcpLmF9aD0oc0ZiKGouYjxqLmQuZ2MoKSksUkQoai5kLlhiKGouYz1qLmIrKyksMjcpKTtzPWguZjtBeWQoaCx1KTtwPXU7aWYoai5iPT1yKXtxPWstSC1jLmM7dD1oLmc7Q3lkKGgscSk7SnNkKGgsbmV3IHJqZChxLHApLG5ldyByamQodCxzKSl9SCs9aC5nK2J9fXJldHVybiBuZXcgcmpkKGssRil9XG5mdW5jdGlvbiBoMGIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEM7Yi5VZygnQ29tcG91bmQgZ3JhcGggcG9zdHByb2Nlc3NvcicsMSk7Yz1IZWIoVEQobVFiKGEsKHlDYygpLG1DYykpKSk7aD1SRChtUWIoYSwoWXdjKCksX3ZjKSksMjI5KTtrPW5ldyBfc2I7Zm9yKHI9aC5lYygpLktjKCk7ci5PYigpOyl7cT1SRChyLlBiKCksMTgpO2c9bmV3IGRuYihoLmNjKHEpKTt5b2IoKTtfbWIoZyxuZXcgTTBiKGEpKTt2PUgwYigodEZiKDAsZy5jLmxlbmd0aCksUkQoZy5jWzBdLDI0OSkpKTtBPUkwYihSRChWbWIoZyxnLmMubGVuZ3RoLTEpLDI0OSkpO3Q9di5pO24yYihBLmksdCk/KHM9dC5lKToocz1ZMmIodCkpO2w9aTBiKHEsZyk7WHViKHEuYSk7bT1udWxsO2ZvcihmPW5ldyBBbmIoZyk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDI0OSk7cD1uZXcgcGpkO2UyYihwLGUuYSxzKTtuPWUuYjtkPW5ldyBFamQ7QWpkKGQsMCxuLmEpO0NqZChkLHApO3U9bmV3IHNqZChLM2Iobi5jKSk7dz1uZXcgc2pkKEszYihuLmQpKTskaWQodSxwKTskaWQodyxwKTtpZihtKXtkLmI9PTA/KG89dyk6KG89KHNGYihkLmIhPTApLFJEKGQuYS5hLmMsOCkpKTtCPSR3bmQuTWF0aC5hYnMobS5hLW8uYSk+VnplO0M9JHduZC5NYXRoLmFicyhtLmItby5iKT5WemU7KCFjJiZCJiZDfHxjJiYoQnx8QykpJiZNdWIocS5hLHUpfXllKHEuYSxkKTtkLmI9PTA/KG09dSk6KG09KHNGYihkLmIhPTApLFJEKGQuYy5iLmMsOCkpKTtqMGIobixsLHApO2lmKEkwYihlKT09QSl7aWYoWTJiKEEuaSkhPWUuYSl7cD1uZXcgcGpkO2UyYihwLFkyYihBLmkpLHMpfXBRYihxLFd3YyxwKX1rMGIobixxLHMpO2suYS56YyhuLGspfVkwYihxLHYpO1owYihxLEEpfWZvcihqPWsuYS5lYygpLktjKCk7ai5PYigpOyl7aT1SRChqLlBiKCksMTgpO1kwYihpLG51bGwpO1owYihpLG51bGwpfWIuVmcoKX1cbmZ1bmN0aW9uIGxYYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG07ZT1SRChtUWIoYSwoaF9jKCksSCRjKSksODgpO2s9ZT09KENtZCgpLHltZCl8fGU9PXptZD94bWQ6em1kO2M9UkQoekRiKENEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmIsMTYpKSxuZXcgJFhjKSx0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFsoeEJiKCksdkJiKV0pKSksMTUpO2k9UkQoekRiKEdEYihjLk9jKCksbmV3IGFZYyhiKSksdEJiKG5ldyBaQmIsbmV3IFhCYixuZXcgd0NiLGNEKFdDKFFMLDEpLGp3ZSwxMDgsMCxbdkJiXSkpKSwxNSk7aS5HYyhSRCh6RGIoR0RiKGMuT2MoKSxuZXcgY1ljKGIpKSx0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFt2QmJdKSkpLDE2KSk7aS5qZChuZXcgZVljKGspKTttPW5ldyB5QWIobmV3IGlZYyhlKSk7ZD1uZXcgVHNiO2ZvcihoPWkuS2MoKTtoLk9iKCk7KXtnPVJEKGguUGIoKSwyNDApO2o9UkQoZy5hLDQwKTtpZihIZWIoVEQoZy5jKSkpe20uYS56YyhqLChHZWIoKSxFZWIpKT09bnVsbDsobmV3IHpBYihtLmEuWmMoaixmYWxzZSkpKS5hLmdjKCk+MCYmWmpiKGQsaixSRCgobmV3IHpBYihtLmEuWmMoaixmYWxzZSkpKS5hLlZjKCksNDApKTsobmV3IHpBYihtLmEuYWQoaix0cnVlKSkpLmEuZ2MoKT4xJiZaamIoZCxuWGMobSxqKSxqKX1lbHNle2lmKChuZXcgekFiKG0uYS5aYyhqLGZhbHNlKSkpLmEuZ2MoKT4wKXtmPVJEKChuZXcgekFiKG0uYS5aYyhqLGZhbHNlKSkpLmEuVmMoKSw0MCk7ZEUoZik9PT1kRShXZChxdGIoZC5mLGopKSkmJlJEKG1RYihqLChxJGMoKSxUWmMpKSwxNSkuRmMoZil9aWYoKG5ldyB6QWIobS5hLmFkKGosdHJ1ZSkpKS5hLmdjKCk+MSl7bD1uWGMobSxqKTtkRShXZChxdGIoZC5mLGwpKSk9PT1kRShqKSYmUkQobVFiKGwsKHEkYygpLFRaYykpLDE1KS5GYyhqKX1tLmEuQmMoaikhPW51bGx9fX1cbmZ1bmN0aW9uIEJUYihhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1O2lmKGEuZ2MoKT09MSl7cmV0dXJuIFJEKGEuWGIoMCksMjM1KX1lbHNlIGlmKGEuZ2MoKTw9MCl7cmV0dXJuIG5ldyBnVWJ9Zm9yKGU9YS5LYygpO2UuT2IoKTspe2M9UkQoZS5QYigpLDIzNSk7bz0wO2s9bHZlO2w9bHZlO2k9cXdlO2o9cXdlO2ZvcihuPW5ldyBBbmIoYy5lKTtuLmE8bi5jLmMubGVuZ3RoOyl7bT1SRCh5bmIobiksMTUzKTtvKz1SRChtUWIobSwoeVZiKCksbFZiKSksMTcpLmE7az0kd25kLk1hdGgubWluKGssbS5kLmEtbS5lLmEvMik7bD0kd25kLk1hdGgubWluKGwsbS5kLmItbS5lLmIvMik7aT0kd25kLk1hdGgubWF4KGksbS5kLmErbS5lLmEvMik7aj0kd25kLk1hdGgubWF4KGosbS5kLmIrbS5lLmIvMil9cFFiKGMsKHlWYigpLGxWYiksc2diKG8pKTtwUWIoYywoSlZiKCksR1ZiKSxuZXcgcmpkKGssbCkpO3BRYihjLEZWYixuZXcgcmpkKGksaikpfXlvYigpO2EuamQobmV3IEZUYik7cD1uZXcgZ1ViO2tRYihwLFJEKGEuWGIoMCksOTYpKTtoPTA7cz0wO2ZvcihmPWEuS2MoKTtmLk9iKCk7KXtjPVJEKGYuUGIoKSwyMzUpO3E9b2pkKGFqZChSRChtUWIoYywoSlZiKCksRlZiKSksOCkpLFJEKG1RYihjLEdWYiksOCkpO2g9JHduZC5NYXRoLm1heChoLHEuYSk7cys9cS5hKnEuYn1oPSR3bmQuTWF0aC5tYXgoaCwkd25kLk1hdGguc3FydChzKSpLZmIoVUQobVFiKHAsKHlWYigpLFpVYikpKSkpO3I9S2ZiKFVEKG1RYihwLHJWYikpKTt0PTA7dT0wO2c9MDtiPXI7Zm9yKGQ9YS5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDIzNSk7cT1vamQoYWpkKFJEKG1RYihjLChKVmIoKSxGVmIpKSw4KSksUkQobVFiKGMsR1ZiKSw4KSk7aWYodCtxLmE+aCl7dD0wO3UrPWcrcjtnPTB9QVRiKHAsYyx0LHUpO2I9JHduZC5NYXRoLm1heChiLHQrcS5hKTtnPSR3bmQuTWF0aC5tYXgoZyxxLmIpO3QrPXEuYStyfXJldHVybiBwfVxuZnVuY3Rpb24gQXFlKGEpe3pxZSgpO3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxO2lmKGE9PW51bGwpcmV0dXJuIG51bGw7Zj1BaGIoYSk7bz1EcWUoZik7aWYobyU0IT0wKXtyZXR1cm4gbnVsbH1wPW8vNHwwO2lmKHA9PTApcmV0dXJuICRDKGdFLFlIZSwyOCwwLDE1LDEpO2w9bnVsbDtiPTA7Yz0wO2Q9MDtlPTA7Zz0wO2g9MDtpPTA7aj0wO249MDttPTA7az0wO2w9JEMoZ0UsWUhlLDI4LHAqMywxNSwxKTtmb3IoO248cC0xO24rKyl7aWYoIUNxZShnPWZbaysrXSl8fCFDcWUoaD1mW2srK10pfHwhQ3FlKGk9ZltrKytdKXx8IUNxZShqPWZbaysrXSkpcmV0dXJuIG51bGw7Yj14cWVbZ107Yz14cWVbaF07ZD14cWVbaV07ZT14cWVbal07bFttKytdPShiPDwyfGM+PjQpPDwyND4+MjQ7bFttKytdPSgoYyYxNSk8PDR8ZD4+MiYxNSk8PDI0Pj4yNDtsW20rK109KGQ8PDZ8ZSk8PDI0Pj4yNH1pZighQ3FlKGc9ZltrKytdKXx8IUNxZShoPWZbaysrXSkpe3JldHVybiBudWxsfWI9eHFlW2ddO2M9eHFlW2hdO2k9ZltrKytdO2o9ZltrKytdO2lmKHhxZVtpXT09LTF8fHhxZVtqXT09LTEpe2lmKGk9PTYxJiZqPT02MSl7aWYoKGMmMTUpIT0wKXJldHVybiBudWxsO3E9JEMoZ0UsWUhlLDI4LG4qMysxLDE1LDEpO2hpYihsLDAscSwwLG4qMyk7cVttXT0oYjw8MnxjPj40KTw8MjQ+PjI0O3JldHVybiBxfWVsc2UgaWYoaSE9NjEmJmo9PTYxKXtkPXhxZVtpXTtpZigoZCYzKSE9MClyZXR1cm4gbnVsbDtxPSRDKGdFLFlIZSwyOCxuKjMrMiwxNSwxKTtoaWIobCwwLHEsMCxuKjMpO3FbbSsrXT0oYjw8MnxjPj40KTw8MjQ+PjI0O3FbbV09KChjJjE1KTw8NHxkPj4yJjE1KTw8MjQ+PjI0O3JldHVybiBxfWVsc2V7cmV0dXJuIG51bGx9fWVsc2V7ZD14cWVbaV07ZT14cWVbal07bFttKytdPShiPDwyfGM+PjQpPDwyND4+MjQ7bFttKytdPSgoYyYxNSk8PDR8ZD4+MiYxNSk8PDI0Pj4yNDtsW20rK109KGQ8PDZ8ZSk8PDI0Pj4yNH1yZXR1cm4gbH1cbmZ1bmN0aW9uIHdmYyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHY7Yi5VZyhxQmUsMSk7bz1SRChtUWIoYSwoeUNjKCkseUFjKSksMjIzKTtmb3IoZT1uZXcgQW5iKGEuYik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDMwKTtqPXQyYihkLmEpO2ZvcihnPWosaD0wLGk9Zy5sZW5ndGg7aDxpOysraCl7Zj1nW2hdO2lmKGYuayE9KHIzYigpLHEzYikpe2NvbnRpbnVlfWlmKG89PShZbWQoKSxXbWQpKXtmb3IobD1uZXcgQW5iKGYuaik7bC5hPGwuYy5jLmxlbmd0aDspe2s9UkQoeW5iKGwpLDEyKTtrLmUuYy5sZW5ndGg9PTB8fHpmYyhrKTtrLmcuYy5sZW5ndGg9PTB8fEFmYyhrKX19ZWxzZSBpZihaRChtUWIoZiwoWXdjKCksQXdjKSksMTgpKXtxPVJEKG1RYihmLEF3YyksMTgpO3I9UkQoZTNiKGYsKHFwZCgpLHBwZCkpLktjKCkuUGIoKSwxMik7cz1SRChlM2IoZixYb2QpLktjKCkuUGIoKSwxMik7dD1SRChtUWIocixBd2MpLDEyKTt1PVJEKG1RYihzLEF3YyksMTIpO1kwYihxLHUpO1owYihxLHQpO3Y9bmV3IHNqZChzLmkubik7di5hPXhqZChjRChXQyhsMywxKSxOdmUsOCwwLFt1Lmkubix1Lm4sdS5hXSkpLmE7TXViKHEuYSx2KTt2PW5ldyBzamQoci5pLm4pO3YuYT14amQoY0QoV0MobDMsMSksTnZlLDgsMCxbdC5pLm4sdC5uLHQuYV0pKS5hO011YihxLmEsdil9ZWxzZXtpZihmLmouYy5sZW5ndGg+PTIpe3A9dHJ1ZTttPW5ldyBBbmIoZi5qKTtjPVJEKHluYihtKSwxMik7bj1udWxsO3doaWxlKG0uYTxtLmMuYy5sZW5ndGgpe249YztjPVJEKHluYihtKSwxMik7aWYoIXBiKG1RYihuLEF3YyksbVFiKGMsQXdjKSkpe3A9ZmFsc2U7YnJlYWt9fX1lbHNle3A9ZmFsc2V9Zm9yKGw9bmV3IEFuYihmLmopO2wuYTxsLmMuYy5sZW5ndGg7KXtrPVJEKHluYihsKSwxMik7ay5lLmMubGVuZ3RoPT0wfHx4ZmMoayxwKTtrLmcuYy5sZW5ndGg9PTB8fHlmYyhrLHApfX1nM2IoZixudWxsKX19Yi5WZygpfVxuZnVuY3Rpb24gTFFjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdjtmb3IoaD1uZXcgQW5iKGEuYS5iKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoaCksMzApO2Zvcih0PW5ldyBBbmIoZi5hKTt0LmE8dC5jLmMubGVuZ3RoOyl7cz1SRCh5bmIodCksMTApO2IuZ1tzLnBdPXM7Yi5hW3MucF09cztiLmRbcy5wXT0wfX1pPWEuYS5iO2IuYz09KHdRYygpLHVRYykmJihpPWh2KGkpKTtmb3IoZz1pLktjKCk7Zy5PYigpOyl7Zj1SRChnLlBiKCksMzApO249LTE7bT1mLmE7aWYoYi5vPT0oRVFjKCksRFFjKSl7bj1sdmU7bT1odihtKX1mb3Iodj1tLktjKCk7di5PYigpOyl7dT1SRCh2LlBiKCksMTApO2w9bnVsbDtiLmM9PXVRYz8obD1SRChWbWIoYS5iLmYsdS5wKSwxNSkpOihsPVJEKFZtYihhLmIuYix1LnApLDE1KSk7aWYobC5nYygpPjApe2Q9bC5nYygpO2o9ZUUoJHduZC5NYXRoLmZsb29yKChkKzEpLzIpKS0xO2U9ZUUoJHduZC5NYXRoLmNlaWwoKGQrMSkvMikpLTE7aWYoYi5vPT1EUWMpe2ZvcihrPWU7az49ajtrLS0pe2lmKGIuYVt1LnBdPT11KXtwPVJEKGwuWGIoayksNDIpO289UkQocC5hLDEwKTtpZighWnNiKGMscC5iKSYmbj5hLmIuZVtvLnBdKXtiLmFbby5wXT11O2IuZ1t1LnBdPWIuZ1tvLnBdO2IuYVt1LnBdPWIuZ1t1LnBdO2IuZltiLmdbdS5wXS5wXT0oR2ViKCksSGViKGIuZltiLmdbdS5wXS5wXSkmdS5rPT0ocjNiKCksbzNiKT90cnVlOmZhbHNlKTtuPWEuYi5lW28ucF19fX19ZWxzZXtmb3Ioaz1qO2s8PWU7aysrKXtpZihiLmFbdS5wXT09dSl7cj1SRChsLlhiKGspLDQyKTtxPVJEKHIuYSwxMCk7aWYoIVpzYihjLHIuYikmJm48YS5iLmVbcS5wXSl7Yi5hW3EucF09dTtiLmdbdS5wXT1iLmdbcS5wXTtiLmFbdS5wXT1iLmdbdS5wXTtiLmZbYi5nW3UucF0ucF09KEdlYigpLEhlYihiLmZbYi5nW3UucF0ucF0pJnUuaz09KHIzYigpLG8zYik/dHJ1ZTpmYWxzZSk7bj1hLmIuZVtxLnBdfX19fX19fX1cbmZ1bmN0aW9uIGlPYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEI7dD1hLmNbKHRGYigwLGIuYy5sZW5ndGgpLFJEKGIuY1swXSwxOCkpLnBdO0E9YS5jWyh0RmIoMSxiLmMubGVuZ3RoKSxSRChiLmNbMV0sMTgpKS5wXTtpZih0LmEuZS5lLXQuYS5hLSh0LmIuZS5lLXQuYi5hKT09MCYmQS5hLmUuZS1BLmEuYS0oQS5iLmUuZS1BLmIuYSk9PTApe3JldHVybiBmYWxzZX1yPXQuYi5lLmY7aWYoIVpEKHIsMTApKXtyZXR1cm4gZmFsc2V9cT1SRChyLDEwKTt2PWEuaVtxLnBdO3c9IXEuYz8tMTpXbWIocS5jLmEscSwwKTtmPW94ZTtpZih3PjApe2U9UkQoVm1iKHEuYy5hLHctMSksMTApO2c9YS5pW2UucF07Qj0kd25kLk1hdGguY2VpbChiRmMoYS5uLGUscSkpO2Y9di5hLmUtcS5kLmQtKGcuYS5lK2Uuby5iK2UuZC5hKS1CfWo9b3hlO2lmKHc8cS5jLmEuYy5sZW5ndGgtMSl7aT1SRChWbWIocS5jLmEsdysxKSwxMCk7az1hLmlbaS5wXTtCPSR3bmQuTWF0aC5jZWlsKGJGYyhhLm4saSxxKSk7aj1rLmEuZS1pLmQuZC0odi5hLmUrcS5vLmIrcS5kLmEpLUJ9aWYoYyYmKFp5KCksYnoodkVlKSwkd25kLk1hdGguYWJzKGYtaik8PXZFZXx8Zj09anx8aXNOYU4oZikmJmlzTmFOKGopKSl7cmV0dXJuIHRydWV9ZD1HT2ModC5hKTtoPS1HT2ModC5iKTtsPS1HT2MoQS5hKTtzPUdPYyhBLmIpO3A9dC5hLmUuZS10LmEuYS0odC5iLmUuZS10LmIuYSk+MCYmQS5hLmUuZS1BLmEuYS0oQS5iLmUuZS1BLmIuYSk8MDtvPXQuYS5lLmUtdC5hLmEtKHQuYi5lLmUtdC5iLmEpPDAmJkEuYS5lLmUtQS5hLmEtKEEuYi5lLmUtQS5iLmEpPjA7bj10LmEuZS5lK3QuYi5hPEEuYi5lLmUrQS5hLmE7bT10LmEuZS5lK3QuYi5hPkEuYi5lLmUrQS5hLmE7dT0wOyFwJiYhbyYmKG0/ZitsPjA/KHU9bCk6ai1kPjAmJih1PWQpOm4mJihmK2g+MD8odT1oKTpqLXM+MCYmKHU9cykpKTt2LmEuZSs9dTt2LmImJih2LmQuZSs9dSk7cmV0dXJuIGZhbHNlfVxuZnVuY3Rpb24gT0piKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbTtkPW5ldyBVaWQoYi5MZigpLmEsYi5MZigpLmIsYi5NZigpLmEsYi5NZigpLmIpO2U9bmV3IFRpZDtpZihhLmMpe2ZvcihnPW5ldyBBbmIoYi5SZigpKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMTg3KTtlLmM9Zi5MZigpLmErYi5MZigpLmE7ZS5kPWYuTGYoKS5iK2IuTGYoKS5iO2UuYj1mLk1mKCkuYTtlLmE9Zi5NZigpLmI7U2lkKGQsZSl9fWZvcihqPW5ldyBBbmIoYi5YZigpKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksODUyKTtrPWkuTGYoKS5hK2IuTGYoKS5hO2w9aS5MZigpLmIrYi5MZigpLmI7aWYoYS5lKXtlLmM9aztlLmQ9bDtlLmI9aS5NZigpLmE7ZS5hPWkuTWYoKS5iO1NpZChkLGUpfWlmKGEuZCl7Zm9yKGc9bmV3IEFuYihpLlJmKCkpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxODcpO2UuYz1mLkxmKCkuYStrO2UuZD1mLkxmKCkuYitsO2UuYj1mLk1mKCkuYTtlLmE9Zi5NZigpLmI7U2lkKGQsZSl9fWlmKGEuYil7bT1uZXcgcmpkKC1jLC1jKTtpZihSRChiLm9mKCh1bWQoKSxMbGQpKSwxODEpLkhjKChQb2QoKSxOb2QpKSl7Zm9yKGc9bmV3IEFuYihpLlJmKCkpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxODcpO20uYSs9Zi5NZigpLmErYzttLmIrPWYuTWYoKS5iK2N9fW0uYT0kd25kLk1hdGgubWF4KG0uYSwwKTttLmI9JHduZC5NYXRoLm1heChtLmIsMCk7TUpiKGQsaS5XZigpLGkuVWYoKSxiLGksbSxjKX19YS5iJiZNSmIoZCxiLldmKCksYi5VZigpLGIsbnVsbCxudWxsLGMpO2g9bmV3IFMyYihiLlZmKCkpO2guZD0kd25kLk1hdGgubWF4KDAsYi5MZigpLmItZC5kKTtoLmE9JHduZC5NYXRoLm1heCgwLGQuZCtkLmEtKGIuTGYoKS5iK2IuTWYoKS5iKSk7aC5iPSR3bmQuTWF0aC5tYXgoMCxiLkxmKCkuYS1kLmMpO2guYz0kd25kLk1hdGgubWF4KDAsZC5jK2QuYi0oYi5MZigpLmErYi5NZigpLmEpKTtiLlpmKGgpfVxuZnVuY3Rpb24gTXooKXt2YXIgYT1bJ1xcXFx1MDAwMCcsJ1xcXFx1MDAwMScsJ1xcXFx1MDAwMicsJ1xcXFx1MDAwMycsJ1xcXFx1MDAwNCcsJ1xcXFx1MDAwNScsJ1xcXFx1MDAwNicsJ1xcXFx1MDAwNycsJ1xcXFxiJywnXFxcXHQnLCdcXFxcbicsJ1xcXFx1MDAwQicsJ1xcXFxmJywnXFxcXHInLCdcXFxcdTAwMEUnLCdcXFxcdTAwMEYnLCdcXFxcdTAwMTAnLCdcXFxcdTAwMTEnLCdcXFxcdTAwMTInLCdcXFxcdTAwMTMnLCdcXFxcdTAwMTQnLCdcXFxcdTAwMTUnLCdcXFxcdTAwMTYnLCdcXFxcdTAwMTcnLCdcXFxcdTAwMTgnLCdcXFxcdTAwMTknLCdcXFxcdTAwMUEnLCdcXFxcdTAwMUInLCdcXFxcdTAwMUMnLCdcXFxcdTAwMUQnLCdcXFxcdTAwMUUnLCdcXFxcdTAwMUYnXTthWzM0XT0nXFxcXFwiJzthWzkyXT0nXFxcXFxcXFwnO2FbMTczXT0nXFxcXHUwMGFkJzthWzE1MzZdPSdcXFxcdTA2MDAnO2FbMTUzN109J1xcXFx1MDYwMSc7YVsxNTM4XT0nXFxcXHUwNjAyJzthWzE1MzldPSdcXFxcdTA2MDMnO2FbMTc1N109J1xcXFx1MDZkZCc7YVsxODA3XT0nXFxcXHUwNzBmJzthWzYwNjhdPSdcXFxcdTE3YjQnO2FbNjA2OV09J1xcXFx1MTdiNSc7YVs4MjAzXT0nXFxcXHUyMDBiJzthWzgyMDRdPSdcXFxcdTIwMGMnO2FbODIwNV09J1xcXFx1MjAwZCc7YVs4MjA2XT0nXFxcXHUyMDBlJzthWzgyMDddPSdcXFxcdTIwMGYnO2FbODIzMl09J1xcXFx1MjAyOCc7YVs4MjMzXT0nXFxcXHUyMDI5JzthWzgyMzRdPSdcXFxcdTIwMmEnO2FbODIzNV09J1xcXFx1MjAyYic7YVs4MjM2XT0nXFxcXHUyMDJjJzthWzgyMzddPSdcXFxcdTIwMmQnO2FbODIzOF09J1xcXFx1MjAyZSc7YVs4Mjg4XT0nXFxcXHUyMDYwJzthWzgyODldPSdcXFxcdTIwNjEnO2FbODI5MF09J1xcXFx1MjA2Mic7YVs4MjkxXT0nXFxcXHUyMDYzJzthWzgyOTJdPSdcXFxcdTIwNjQnO2FbODI5OF09J1xcXFx1MjA2YSc7YVs4Mjk5XT0nXFxcXHUyMDZiJzthWzgzMDBdPSdcXFxcdTIwNmMnO2FbODMwMV09J1xcXFx1MjA2ZCc7YVs4MzAyXT0nXFxcXHUyMDZlJzthWzgzMDNdPSdcXFxcdTIwNmYnO2FbNjUyNzldPSdcXFxcdWZlZmYnO2FbNjU1MjldPSdcXFxcdWZmZjknO2FbNjU1MzBdPSdcXFxcdWZmZmEnO2FbNjU1MzFdPSdcXFxcdWZmZmInO3JldHVybiBhfVxuZnVuY3Rpb24gelZiKGEpe0NnZChhLG5ldyBQZmQoX2ZkKFdmZCgkZmQoWGZkKFpmZChZZmQobmV3IGFnZCxaemUpLCdFTEsgRm9yY2UnKSwnRm9yY2UtYmFzZWQgYWxnb3JpdGhtIHByb3ZpZGVkIGJ5IHRoZSBFY2xpcHNlIExheW91dCBLZXJuZWwuIEltcGxlbWVudHMgbWV0aG9kcyB0aGF0IGZvbGxvdyBwaHlzaWNhbCBhbmFsb2dpZXMgYnkgc2ltdWxhdGluZyBmb3JjZXMgdGhhdCBtb3ZlIHRoZSBub2RlcyBpbnRvIGEgYmFsYW5jZWQgZGlzdHJpYnV0aW9uLiBDdXJyZW50bHkgdGhlIG9yaWdpbmFsIEVhZGVzIG1vZGVsIGFuZCB0aGUgRnJ1Y2h0ZXJtYW4gLSBSZWluZ29sZCBtb2RlbCBhcmUgc3VwcG9ydGVkLicpLG5ldyBDVmIpLFp6ZSkseXNiKChhR2QoKSxaRmQpLGNEKFdDKFQ1LDEpLGp3ZSwyNDUsMCxbWEZkXSkpKSkpO0FnZChhLFp6ZSwkemUsc2diKDEpKTtBZ2QoYSxaemUsX3plLDgwKTtBZ2QoYSxaemUsYUFlLDUpO0FnZChhLFp6ZSxEemUsWXplKTtBZ2QoYSxaemUsYkFlLHNnYigxKSk7QWdkKGEsWnplLGNBZSwoR2ViKCksdHJ1ZSkpO0FnZChhLFp6ZSxFemUsaVZiKTtBZ2QoYSxaemUsZEFlLGlHZChfVWIpKTtBZ2QoYSxaemUsZUFlLGlHZChqVmIpKTtBZ2QoYSxaemUsZkFlLGZhbHNlKTtBZ2QoYSxaemUsZ0FlLGlHZChnVmIpKTtBZ2QoYSxaemUsaEFlLGlHZChlVmIpKTtBZ2QoYSxaemUsaUFlLGlHZChmVmIpKTtBZ2QoYSxaemUsakFlLGlHZChkVmIpKTtBZ2QoYSxaemUsa0FlLGlHZChjVmIpKTtBZ2QoYSxaemUsbEFlLGlHZChrVmIpKTtBZ2QoYSxaemUsUnplLGlHZChiVmIpKTtBZ2QoYSxaemUsVXplLGlHZChzVmIpKTtBZ2QoYSxaemUsU3plLGlHZChhVmIpKTtBZ2QoYSxaemUsV3plLGlHZChuVmIpKTtBZ2QoYSxaemUsVHplLGlHZChvVmIpKTtBZ2QoYSxaemUsbUFlLGlHZCh2VmIpKTtBZ2QoYSxaemUsbkFlLGlHZCh4VmIpKTtBZ2QoYSxaemUsb0FlLGlHZCh1VmIpKTtBZ2QoYSxaemUscEFlLGlHZCh0VmIpKTtBZ2QoYSxaemUscUFlLHdWYil9XG5mdW5jdGlvbiBodGUoYSxiKXtWc2UoKTt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbztpZihia2Iod3NlKT09MCl7bD0kQyhxZGIsTnZlLDEyMix5c2UubGVuZ3RoLDAsMSk7Zm9yKGc9MDtnPGwubGVuZ3RoO2crKyl7bFtnXT0oKytVc2UsbmV3IHh0ZSg0KSl9ZD1uZXcgUmhiO2ZvcihmPTA7Zjx2c2UubGVuZ3RoO2YrKyl7az0oKytVc2UsbmV3IHh0ZSg0KSk7aWYoZjw4NCl7aD1mKjI7bj0oQkZiKGgsWExlLmxlbmd0aCksWExlLmNoYXJDb2RlQXQoaCkpO209KEJGYihoKzEsWExlLmxlbmd0aCksWExlLmNoYXJDb2RlQXQoaCsxKSk7cnRlKGssbixtKX1lbHNle2g9KGYtODQpKjI7cnRlKGssenNlW2hdLHpzZVtoKzFdKX1pPXZzZVtmXTtsaGIoaSwnU3BlY2lhbHMnKSYmcnRlKGssNjU1MjAsNjU1MzMpO2lmKGxoYihpLFZMZSkpe3J0ZShrLDk4MzA0MCwxMDQ4NTczKTtydGUoaywxMDQ4NTc2LDExMTQxMDkpfSRqYih3c2UsaSxrKTskamIoeHNlLGkseXRlKGspKTtqPWQuYS5sZW5ndGg7MDxqPyhkLmE9emhiKGQuYSwwLDApKTowPmomJihkLmErPUhoYigkQyhoRSx6d2UsMjgsLWosMTUsMSkpKTtkLmErPSdJcyc7aWYocWhiKGksRmhiKDMyKSk+PTApe2ZvcihlPTA7ZTxpLmxlbmd0aDtlKyspe0JGYihlLGkubGVuZ3RoKTtpLmNoYXJDb2RlQXQoZSkhPTMyJiZKaGIoZCwoQkZiKGUsaS5sZW5ndGgpLGkuY2hhckNvZGVBdChlKSkpfX1lbHNle2QuYSs9JycraX1sdGUoZC5hLGksdHJ1ZSl9bHRlKFdMZSwnQ24nLGZhbHNlKTtsdGUoWUxlLCdDbicsdHJ1ZSk7Yz0oKytVc2UsbmV3IHh0ZSg0KSk7cnRlKGMsMCxNTGUpOyRqYih3c2UsJ0FMTCcsYyk7JGpiKHhzZSwnQUxMJyx5dGUoYykpOyFBc2UmJihBc2U9bmV3IFRzYik7JGpiKEFzZSxXTGUsV0xlKTshQXNlJiYoQXNlPW5ldyBUc2IpOyRqYihBc2UsWUxlLFlMZSk7IUFzZSYmKEFzZT1uZXcgVHNiKTskamIoQXNlLCdBTEwnLCdBTEwnKX1vPWI/UkQoWGpiKHdzZSxhKSwxMzgpOlJEKFhqYih4c2UsYSksMTM4KTtyZXR1cm4gb31cbmZ1bmN0aW9uIGlfYyhhKXtDZ2QoYSxuZXcgUGZkKF9mZChXZmQoJGZkKFhmZChaZmQoWWZkKG5ldyBhZ2QsWkVlKSwnRUxLIE1yLiBUcmVlJyksXCJUcmVlLWJhc2VkIGFsZ29yaXRobSBwcm92aWRlZCBieSB0aGUgRWNsaXBzZSBMYXlvdXQgS2VybmVsLiBDb21wdXRlcyBhIHNwYW5uaW5nIHRyZWUgb2YgdGhlIGlucHV0IGdyYXBoIGFuZCBhcnJhbmdlcyBhbGwgbm9kZXMgYWNjb3JkaW5nIHRvIHRoZSByZXN1bHRpbmcgcGFyZW50LWNoaWxkcmVuIGhpZXJhcmNoeS4gSSBwaXR5IHRoZSBmb29sIHdobyBkb2Vzbid0IHVzZSBNci4gVHJlZSBMYXlvdXQuXCIpLG5ldyBsX2MpLCRFZSkseHNiKChhR2QoKSxXRmQpKSkpKTtBZ2QoYSxaRWUsRXplLFUkYyk7QWdkKGEsWkVlLF96ZSwyMCk7QWdkKGEsWkVlLEFEZSwzKTtBZ2QoYSxaRWUsRHplLFl6ZSk7QWdkKGEsWkVlLCR6ZSxzZ2IoMSkpO0FnZChhLFpFZSxjQWUsKEdlYigpLHRydWUpKTtBZ2QoYSxaRWUsTERlLGlHZChHJGMpKTtBZ2QoYSxaRWUsUERlLEkkYyk7QWdkKGEsWkVlLGRBZSxpR2QoTCRjKSk7QWdkKGEsWkVlLGlFZSxpR2QoTSRjKSk7QWdkKGEsWkVlLGpBZSxpR2QoTyRjKSk7QWdkKGEsWkVlLGhBZSxpR2QoUCRjKSk7QWdkKGEsWkVlLENBZSxpR2QoUSRjKSk7QWdkKGEsWkVlLGlBZSxpR2QoUiRjKSk7QWdkKGEsWkVlLGtBZSxpR2QoTiRjKSk7QWdkKGEsWkVlLGdBZSxpR2QoUyRjKSk7QWdkKGEsWkVlLGxBZSxpR2QoViRjKSk7QWdkKGEsWkVlLFZFZSxpR2QoZ19jKSk7QWdkKGEsWkVlLFhFZSxpR2QoWSRjKSk7QWdkKGEsWkVlLG1BZSxpR2QoY19jKSk7QWdkKGEsWkVlLG5BZSxpR2QoZV9jKSk7QWdkKGEsWkVlLG9BZSxpR2QoYl9jKSk7QWdkKGEsWkVlLHBBZSxpR2QoYV9jKSk7QWdkKGEsWkVlLHFBZSxkX2MpO0FnZChhLFpFZSxVRWUsaUdkKFckYykpO0FnZChhLFpFZSxXRWUsaUdkKEskYykpO0FnZChhLFpFZSxURWUsaUdkKGZfYykpO0FnZChhLFpFZSxSRWUsaUdkKEYkYykpO0FnZChhLFpFZSxTRWUsaUdkKEokYykpfVxuZnVuY3Rpb24gck5iKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbTtqPVJEKFJEKFFjKGEucixiKSwyMSksODcpO2c9VU1iKGEsYik7Yz1hLnUuSGMoKFBvZCgpLEpvZCkpO2ZvcihpPWouS2MoKTtpLk9iKCk7KXtoPVJEKGkuUGIoKSwxMTcpO2lmKCFoLmN8fGguYy5kLmMubGVuZ3RoPD0wKXtjb250aW51ZX1tPWguYi5NZigpO2s9aC5jO2w9ay5pO2wuYj0oZj1rLm4say5lLmErZi5iK2YuYyk7bC5hPShlPWsubixrLmUuYitlLmQrZS5hKTtzd2l0Y2goYi5nKXtjYXNlIDE6aWYoaC5hKXtsLmM9KG0uYS1sLmIpLzI7UktiKGssKEVLYigpLEJLYikpfWVsc2UgaWYoZ3x8Yyl7bC5jPS1sLmItYS5zO1JLYihrLChFS2IoKSxES2IpKX1lbHNle2wuYz1tLmErYS5zO1JLYihrLChFS2IoKSxDS2IpKX1sLmQ9LWwuYS1hLnQ7U0tiKGssKHZMYigpLHNMYikpO2JyZWFrO2Nhc2UgMzppZihoLmEpe2wuYz0obS5hLWwuYikvMjtSS2IoaywoRUtiKCksQktiKSl9ZWxzZSBpZihnfHxjKXtsLmM9LWwuYi1hLnM7UktiKGssKEVLYigpLERLYikpfWVsc2V7bC5jPW0uYSthLnM7UktiKGssKEVLYigpLENLYikpfWwuZD1tLmIrYS50O1NLYihrLCh2TGIoKSx1TGIpKTticmVhaztjYXNlIDI6aWYoaC5hKXtkPWEudj9sLmE6UkQoVm1iKGsuZCwwKSwxODcpLk1mKCkuYjtsLmQ9KG0uYi1kKS8yO1NLYihrLCh2TGIoKSx0TGIpKX1lbHNlIGlmKGd8fGMpe2wuZD0tbC5hLWEudDtTS2IoaywodkxiKCksc0xiKSl9ZWxzZXtsLmQ9bS5iK2EudDtTS2IoaywodkxiKCksdUxiKSl9bC5jPW0uYSthLnM7UktiKGssKEVLYigpLENLYikpO2JyZWFrO2Nhc2UgNDppZihoLmEpe2Q9YS52P2wuYTpSRChWbWIoay5kLDApLDE4NykuTWYoKS5iO2wuZD0obS5iLWQpLzI7U0tiKGssKHZMYigpLHRMYikpfWVsc2UgaWYoZ3x8Yyl7bC5kPS1sLmEtYS50O1NLYihrLCh2TGIoKSxzTGIpKX1lbHNle2wuZD1tLmIrYS50O1NLYihrLCh2TGIoKSx1TGIpKX1sLmM9LWwuYi1hLnM7UktiKGssKEVLYigpLERLYikpO31nPWZhbHNlfX1cbmZ1bmN0aW9uIHQ2YihhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHM7bT1mYWxzZTtsPWZhbHNlO2lmKERvZChSRChtUWIoZCwoeUNjKCksQkJjKSksMTAxKSkpe2c9ZmFsc2U7aD1mYWxzZTt0OmZvcihvPW5ldyBBbmIoZC5qKTtvLmE8by5jLmMubGVuZ3RoOyl7bj1SRCh5bmIobyksMTIpO2ZvcihxPUZsKEFsKGNEKFdDKGNKLDEpLHJ2ZSwyMCwwLFtuZXcgVDNiKG4pLG5ldyBfM2IobildKSkpO2dzKHEpOyl7cD1SRChocyhxKSwxMik7aWYoIUhlYihURChtUWIocC5pLFV6YykpKSl7aWYobi5qPT0ocXBkKCksWW9kKSl7Zz10cnVlO2JyZWFrIHR9aWYobi5qPT1ucGQpe2g9dHJ1ZTticmVhayB0fX19fW09aCYmIWc7bD1nJiYhaH1pZighbSYmIWwmJmQuYi5jLmxlbmd0aCE9MCl7az0wO2ZvcihqPW5ldyBBbmIoZC5iKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksNzIpO2srPWkubi5iK2kuby5iLzJ9ay89ZC5iLmMubGVuZ3RoO3M9az49ZC5vLmIvMn1lbHNle3M9IWx9aWYocyl7cj1SRChtUWIoZCwoWXdjKCksWHdjKSksMTUpO2lmKCFyKXtmPW5ldyBibmI7cFFiKGQsWHdjLGYpfWVsc2UgaWYobSl7Zj1yfWVsc2V7ZT1SRChtUWIoZCxWdmMpLDE1KTtpZighZSl7Zj1uZXcgYm5iO3BRYihkLFZ2YyxmKX1lbHNle3IuZ2MoKTw9ZS5nYygpPyhmPXIpOihmPWUpfX19ZWxzZXtlPVJEKG1RYihkLChZd2MoKSxWdmMpKSwxNSk7aWYoIWUpe2Y9bmV3IGJuYjtwUWIoZCxWdmMsZil9ZWxzZSBpZihsKXtmPWV9ZWxzZXtyPVJEKG1RYihkLFh3YyksMTUpO2lmKCFyKXtmPW5ldyBibmI7cFFiKGQsWHdjLGYpfWVsc2V7ZS5nYygpPD1yLmdjKCk/KGY9ZSk6KGY9cil9fX1mLkZjKGEpO3BRYihhLChZd2MoKSxYdmMpLGMpO2lmKGIuZD09Yyl7WjBiKGIsbnVsbCk7Yy5lLmMubGVuZ3RoK2MuZy5jLmxlbmd0aD09MCYmUDNiKGMsbnVsbCk7dTZiKGMpfWVsc2V7WTBiKGIsbnVsbCk7Yy5lLmMubGVuZ3RoK2MuZy5jLmxlbmd0aD09MCYmUDNiKGMsbnVsbCl9WHViKGIuYSl9XG5mdW5jdGlvbiBHSGMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEcsSCxJO2MuVWcoJ01pbldpZHRoIGxheWVyaW5nJywxKTtuPWIuYjtBPWIuYTtJPVJEKG1RYihiLCh5Q2MoKSxXQWMpKSwxNykuYTtoPVJEKG1RYihiLFhBYyksMTcpLmE7YS5iPUtmYihVRChtUWIoYixUQmMpKSk7YS5kPW94ZTtmb3IodT1uZXcgQW5iKEEpO3UuYTx1LmMuYy5sZW5ndGg7KXtzPVJEKHluYih1KSwxMCk7aWYocy5rIT0ocjNiKCkscDNiKSl7Y29udGludWV9RD1zLm8uYjthLmQ9JHduZC5NYXRoLm1pbihhLmQsRCl9YS5kPSR3bmQuTWF0aC5tYXgoMSxhLmQpO0I9QS5jLmxlbmd0aDthLmM9JEMoa0UsUHdlLDI4LEIsMTUsMSk7YS5mPSRDKGtFLFB3ZSwyOCxCLDE1LDEpO2EuZT0kQyhpRSx2eGUsMjgsQiwxNSwxKTtqPTA7YS5hPTA7Zm9yKHY9bmV3IEFuYihBKTt2LmE8di5jLmMubGVuZ3RoOyl7cz1SRCh5bmIodiksMTApO3MucD1qKys7YS5jW3MucF09RUhjKFoyYihzKSk7YS5mW3MucF09RUhjKGEzYihzKSk7YS5lW3MucF09cy5vLmIvYS5kO2EuYSs9YS5lW3MucF19YS5iLz1hLmQ7YS5hLz1CO3c9RkhjKEEpO19tYihBLEZvYihuZXcgTUhjKGEpKSk7cD1veGU7bz1sdmU7Zz1udWxsO0g9STtHPUk7Zj1oO2U9aDtpZihJPDApe0g9UkQoQkhjLmEuSWQoKSwxNykuYTtHPVJEKEJIYy5iLklkKCksMTcpLmF9aWYoaDwwKXtmPVJEKEFIYy5hLklkKCksMTcpLmE7ZT1SRChBSGMuYi5JZCgpLDE3KS5hfWZvcihGPUg7Rjw9RztGKyspe2ZvcihkPWY7ZDw9ZTtkKyspe0M9REhjKGEsRixkLEEsdyk7cj1LZmIoVUQoQy5hKSk7bT1SRChDLmIsMTUpO3E9bS5nYygpO2lmKHI8cHx8cj09cCYmcTxvKXtwPXI7bz1xO2c9bX19fWZvcihsPWcuS2MoKTtsLk9iKCk7KXtrPVJEKGwuUGIoKSwxNSk7aT1uZXcgUjRiKGIpO2Zvcih0PWsuS2MoKTt0Lk9iKCk7KXtzPVJEKHQuUGIoKSwxMCk7ZzNiKHMsaSl9WkViKG4uYyxpKX1Fb2Iobik7QS5jLmxlbmd0aD0wO2MuVmcoKX1cbmZ1bmN0aW9uIFVVYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEIsQyxELEYsRztjLlVnKCdTcGxpbmUgZWRnZSByb3V0aW5nJywxKTtpZihiLmIuYy5sZW5ndGg9PTApe2IuZi5hPTA7Yy5WZygpO3JldHVybn1zPUtmYihVRChtUWIoYiwoeUNjKCksY0NjKSkpKTtoPUtmYihVRChtUWIoYixYQmMpKSk7Zz1LZmIoVUQobVFiKGIsVUJjKSkpO3I9UkQobVFiKGIsREFjKSwzNTApO0I9cj09KGxGYygpLGtGYyk7QT1LZmIoVUQobVFiKGIsRUFjKSkpO2EuZD1iO2Euai5jLmxlbmd0aD0wO2EuYS5jLmxlbmd0aD0wO2FrYihhLmspO2k9UkQoVm1iKGIuYiwwKSwzMCk7az1hcihpLmEsKGRTYygpLGJTYykpO289UkQoVm1iKGIuYixiLmIuYy5sZW5ndGgtMSksMzApO2w9YXIoby5hLGJTYyk7cD1uZXcgQW5iKGIuYik7cT1udWxsO0c9MDtkb3t0PXAuYTxwLmMuYy5sZW5ndGg/UkQoeW5iKHApLDMwKTpudWxsO0lVYyhhLHEsdCk7TFVjKGEpO0M9Y3diKG5EYihJRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuaSwxNikpLG5ldyBqVmMpLG5ldyBsVmMpKSk7Rj0wO3U9RzttPSFxfHxrJiZxPT1pO249IXR8fGwmJnQ9PW87aWYoQz4wKXtqPTA7ISFxJiYoais9aCk7ais9KEMtMSkqZzshIXQmJihqKz1oKTtCJiYhIXQmJihqPSR3bmQuTWF0aC5tYXgoaixKVWModCxnLHMsQSkpKTtpZihqPHMmJiFtJiYhbil7Rj0ocy1qKS8yO2o9c311Kz1qfWVsc2UgIW0mJiFuJiYodSs9cyk7ISF0JiZwMmIodCx1KTtmb3Iodz1uZXcgQW5iKGEuaSk7dy5hPHcuYy5jLmxlbmd0aDspe3Y9UkQoeW5iKHcpLDEzMSk7di5hLmM9Rzt2LmEuYj11LUc7di5GPUY7di5wPSFxfVRtYihhLmEsYS5pKTtHPXU7ISF0JiYoRys9dC5jLmEpO3E9dDttPW59d2hpbGUodCk7Zm9yKGU9bmV3IEFuYihhLmopO2UuYTxlLmMuYy5sZW5ndGg7KXtkPVJEKHluYihlKSwxOCk7Zj1QVWMoYSxkKTtwUWIoZCwoWXdjKCksUndjKSxmKTtEPVJVYyhhLGQpO3BRYihkLFR3YyxEKX1iLmYuYT1HO2EuZD1udWxsO2MuVmcoKX1cbmZ1bmN0aW9uIFo5YihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEIsQyxEO2EuYj1iO2EuYT1SRChtUWIoYiwoeUNjKCksSkFjKSksMTcpLmE7YS5jPVJEKG1RYihiLExBYyksMTcpLmE7YS5jPT0wJiYoYS5jPWx2ZSk7cT1uZXcgSmtiKGIuYiwwKTt3aGlsZShxLmI8cS5kLmdjKCkpe3A9KHNGYihxLmI8cS5kLmdjKCkpLFJEKHEuZC5YYihxLmM9cS5iKyspLDMwKSk7aD1uZXcgYm5iO2s9LTE7dT0tMTtmb3IodD1uZXcgQW5iKHAuYSk7dC5hPHQuYy5jLmxlbmd0aDspe3M9UkQoeW5iKHQpLDEwKTtpZihLcigoVTliKCksbmV3IGlzKE1yKFcyYihzKS5hLktjKCksbmV3IGlyKSkpKT49YS5hKXtkPVY5YihhLHMpO2s9JHduZC5NYXRoLm1heChrLGQuYik7dT0kd25kLk1hdGgubWF4KHUsZC5kKTtSbWIoaCxuZXcgUHRkKHMsZCkpfX1CPW5ldyBibmI7Zm9yKGo9MDtqPGs7KytqKXtRbWIoQiwwLChzRmIocS5iPjApLHEuYS5YYihxLmM9LS1xLmIpLEM9bmV3IFI0YihhLmIpLElrYihxLEMpLHNGYihxLmI8cS5kLmdjKCkpLHEuZC5YYihxLmM9cS5iKyspLEMpKX1mb3IoZz1uZXcgQW5iKGgpO2cuYTxnLmMuYy5sZW5ndGg7KXtlPVJEKHluYihnKSw0Mik7bj1SRChlLmIsNTgwKS5hO2lmKCFuKXtjb250aW51ZX1mb3IobT1uZXcgQW5iKG4pO20uYTxtLmMuYy5sZW5ndGg7KXtsPVJEKHluYihtKSwxMCk7WTliKGEsbCxTOWIsQil9fWM9bmV3IGJuYjtmb3IoaT0wO2k8dTsrK2kpe1JtYihjLChEPW5ldyBSNGIoYS5iKSxJa2IocSxEKSxEKSl9Zm9yKGY9bmV3IEFuYihoKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksNDIpO0E9UkQoZS5iLDU4MCkuYztpZighQSl7Y29udGludWV9Zm9yKHc9bmV3IEFuYihBKTt3LmE8dy5jLmMubGVuZ3RoOyl7dj1SRCh5bmIodyksMTApO1k5YihhLHYsVDliLGMpfX19cj1uZXcgSmtiKGIuYiwwKTt3aGlsZShyLmI8ci5kLmdjKCkpe289KHNGYihyLmI8ci5kLmdjKCkpLFJEKHIuZC5YYihyLmM9ci5iKyspLDMwKSk7by5hLmMubGVuZ3RoPT0wJiZDa2Iocil9fVxuZnVuY3Rpb24gd0xkKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU7cD1hLmkhPTA7dD1mYWxzZTtyPW51bGw7aWYoTXZkKGEuZSkpe2s9Yi5nYygpO2lmKGs+MCl7bT1rPDEwMD9udWxsOm5ldyBnTGQoayk7aj1uZXcgJEhkKGIpO289ai5nO3I9JEMoa0UsUHdlLDI4LGssMTUsMSk7ZD0wO3U9bmV3IFpIZChrKTtmb3IoZT0wO2U8YS5pOysrZSl7aD1hLmdbZV07bj1oO3Y6Zm9yKHM9MDtzPDI7KytzKXtmb3IoaT1rOy0taT49MDspe2lmKG4hPW51bGw/cGIobixvW2ldKTpkRShuKT09PWRFKG9baV0pKXtpZihyLmxlbmd0aDw9ZCl7cT1yO3I9JEMoa0UsUHdlLDI4LDIqci5sZW5ndGgsMTUsMSk7aGliKHEsMCxyLDAsZCl9cltkKytdPWU7V0dkKHUsb1tpXSk7YnJlYWsgdn19bj1uO2lmKGRFKG4pPT09ZEUoaCkpe2JyZWFrfX19aj11O289dS5nO2s9ZDtpZihkPnIubGVuZ3RoKXtxPXI7cj0kQyhrRSxQd2UsMjgsZCwxNSwxKTtoaWIocSwwLHIsMCxkKX1pZihkPjApe3Q9dHJ1ZTtmb3IoZj0wO2Y8ZDsrK2Ype249b1tmXTttPUtnZShhLFJEKG4sNzYpLG0pfWZvcihnPWQ7LS1nPj0wOyl7VEhkKGEscltnXSl9aWYoZCE9ayl7Zm9yKGU9azstLWU+PWQ7KXtUSGQoaixlKX1xPXI7cj0kQyhrRSxQd2UsMjgsZCwxNSwxKTtoaWIocSwwLHIsMCxkKX1iPWp9fX1lbHNle2I9YUhkKGEsYik7Zm9yKGU9YS5pOy0tZT49MDspe2lmKGIuSGMoYS5nW2VdKSl7VEhkKGEsZSk7dD10cnVlfX19aWYodCl7aWYociE9bnVsbCl7Yz1iLmdjKCk7bD1jPT0xP2RaZChhLDQsYi5LYygpLlBiKCksbnVsbCxyWzBdLHApOmRaZChhLDYsYixyLHJbMF0scCk7bT1jPDEwMD9udWxsOm5ldyBnTGQoYyk7Zm9yKGU9Yi5LYygpO2UuT2IoKTspe249ZS5QYigpO209b2dlKGEsUkQobiw3NiksbSl9aWYoIW0pe3F2ZChhLmUsbCl9ZWxzZXttLm5qKGwpO20ub2ooKX19ZWxzZXttPXRMZChiLmdjKCkpO2ZvcihlPWIuS2MoKTtlLk9iKCk7KXtuPWUuUGIoKTttPW9nZShhLFJEKG4sNzYpLG0pfSEhbSYmbS5vaigpfXJldHVybiB0cnVlfWVsc2V7cmV0dXJuIGZhbHNlfX1cbmZ1bmN0aW9uIGlfYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdDtjPW5ldyBwX2IoYik7Yy5hfHxiX2IoYik7aj1hX2IoYik7aT1uZXcgVHA7cT1uZXcgRF9iO2ZvcihwPW5ldyBBbmIoYi5hKTtwLmE8cC5jLmMubGVuZ3RoOyl7bz1SRCh5bmIocCksMTApO2ZvcihlPW5ldyBpcyhNcihhM2IobykuYS5LYygpLG5ldyBpcikpO2dzKGUpOyl7ZD1SRChocyhlKSwxOCk7aWYoZC5jLmkuaz09KHIzYigpLG0zYil8fGQuZC5pLms9PW0zYil7az1oX2IoYSxkLGoscSk7UmMoaSxmX2Ioay5kKSxrLmEpfX19Zz1uZXcgYm5iO2Zvcih0PVJEKG1RYihjLmMsKFl3YygpLGV3YykpLDIxKS5LYygpO3QuT2IoKTspe3M9UkQodC5QYigpLDY0KTtuPXEuY1tzLmddO209cS5iW3MuZ107aD1xLmFbcy5nXTtmPW51bGw7cj1udWxsO3N3aXRjaChzLmcpe2Nhc2UgNDpmPW5ldyBVaWQoYS5kLmEsbixqLmIuYS1hLmQuYSxtLW4pO3I9bmV3IFVpZChhLmQuYSxuLGgsbS1uKTtsX2IoaixuZXcgcmpkKGYuYytmLmIsZi5kKSk7bF9iKGosbmV3IHJqZChmLmMrZi5iLGYuZCtmLmEpKTticmVhaztjYXNlIDI6Zj1uZXcgVWlkKGouYS5hLG4sYS5jLmEtai5hLmEsbS1uKTtyPW5ldyBVaWQoYS5jLmEtaCxuLGgsbS1uKTtsX2IoaixuZXcgcmpkKGYuYyxmLmQpKTtsX2IoaixuZXcgcmpkKGYuYyxmLmQrZi5hKSk7YnJlYWs7Y2FzZSAxOmY9bmV3IFVpZChuLGEuZC5iLG0tbixqLmIuYi1hLmQuYik7cj1uZXcgVWlkKG4sYS5kLmIsbS1uLGgpO2xfYihqLG5ldyByamQoZi5jLGYuZCtmLmEpKTtsX2IoaixuZXcgcmpkKGYuYytmLmIsZi5kK2YuYSkpO2JyZWFrO2Nhc2UgMzpmPW5ldyBVaWQobixqLmEuYixtLW4sYS5jLmItai5hLmIpO3I9bmV3IFVpZChuLGEuYy5iLWgsbS1uLGgpO2xfYihqLG5ldyByamQoZi5jLGYuZCkpO2xfYihqLG5ldyByamQoZi5jK2YuYixmLmQpKTt9aWYoZil7bD1uZXcgeV9iO2wuZD1zO2wuYj1mO2wuYz1yO2wuYT1VeChSRChRYyhpLGZfYihzKSksMjEpKTtaRWIoZy5jLGwpfX1UbWIoYy5iLGcpO2MuZD1EWmIoTFpiKGopKTtyZXR1cm4gY31cbmZ1bmN0aW9uIFBRYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHA7aWYoYy5wW2IucF0hPW51bGwpe3JldHVybn1oPXRydWU7Yy5wW2IucF09MDtnPWI7cD1jLm89PShFUWMoKSxDUWMpP3B4ZTpveGU7ZG97ZT1hLmIuZVtnLnBdO2Y9Zy5jLmEuYy5sZW5ndGg7aWYoYy5vPT1DUWMmJmU+MHx8Yy5vPT1EUWMmJmU8Zi0xKXtpPW51bGw7aj1udWxsO2Mubz09RFFjPyhpPVJEKFZtYihnLmMuYSxlKzEpLDEwKSk6KGk9UkQoVm1iKGcuYy5hLGUtMSksMTApKTtqPWMuZ1tpLnBdO1BRYyhhLGosYyk7cD1hLmUud2cocCxiLGcpO2MualtiLnBdPT1iJiYoYy5qW2IucF09Yy5qW2oucF0pO2lmKGMualtiLnBdPT1jLmpbai5wXSl7bz1iRmMoYS5kLGcsaSk7aWYoYy5vPT1EUWMpe2Q9S2ZiKGMucFtiLnBdKTtsPUtmYihjLnBbai5wXSkrS2ZiKGMuZFtpLnBdKS1pLmQuZC1vLWcuZC5hLWcuby5iLUtmYihjLmRbZy5wXSk7aWYoaCl7aD1mYWxzZTtjLnBbYi5wXT0kd25kLk1hdGgubWluKGwscCl9ZWxzZXtjLnBbYi5wXT0kd25kLk1hdGgubWluKGQsJHduZC5NYXRoLm1pbihsLHApKX19ZWxzZXtkPUtmYihjLnBbYi5wXSk7bD1LZmIoYy5wW2oucF0pK0tmYihjLmRbaS5wXSkraS5vLmIraS5kLmErbytnLmQuZC1LZmIoYy5kW2cucF0pO2lmKGgpe2g9ZmFsc2U7Yy5wW2IucF09JHduZC5NYXRoLm1heChsLHApfWVsc2V7Yy5wW2IucF09JHduZC5NYXRoLm1heChkLCR3bmQuTWF0aC5tYXgobCxwKSl9fX1lbHNle289S2ZiKFVEKG1RYihhLmEsKHlDYygpLGJDYykpKSk7bj1OUWMoYSxjLmpbYi5wXSk7az1OUWMoYSxjLmpbai5wXSk7aWYoYy5vPT1EUWMpe209S2ZiKGMucFtiLnBdKStLZmIoYy5kW2cucF0pK2cuby5iK2cuZC5hK28tKEtmYihjLnBbai5wXSkrS2ZiKGMuZFtpLnBdKS1pLmQuZCk7VFFjKG4sayxtKX1lbHNle209S2ZiKGMucFtiLnBdKStLZmIoYy5kW2cucF0pLWcuZC5kLUtmYihjLnBbai5wXSktS2ZiKGMuZFtpLnBdKS1pLm8uYi1pLmQuYS1vO1RRYyhuLGssbSl9fX1lbHNle3A9YS5lLndnKHAsYixnKX1nPWMuYVtnLnBdfXdoaWxlKGchPWIpO3FSYyhhLmUsYil9XG5mdW5jdGlvbiAkS2MoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEM7Yz1LZmIoVUQobVFiKGEuYS5qLCh5Q2MoKSxpQWMpKSkpO2lmKGM8LTF8fCFhLmEuaXx8Q29kKFJEKG1RYihhLmEubyxCQmMpLDEwMSkpfHxiM2IoYS5hLm8sKHFwZCgpLFhvZCkpLmdjKCk8MiYmYjNiKGEuYS5vLHBwZCkuZ2MoKTwyKXtyZXR1cm4gdHJ1ZX1pZihhLmEuYy5rZygpKXtyZXR1cm4gZmFsc2V9dj0wO3U9MDt0PW5ldyBibmI7Zm9yKGk9YS5hLmUsaj0wLGs9aS5sZW5ndGg7ajxrOysrail7aD1pW2pdO2ZvcihtPWgsbj0wLHA9bS5sZW5ndGg7bjxwOysrbil7bD1tW25dO2lmKGwuaz09KHIzYigpLHEzYikpe1pFYih0LmMsbCk7Y29udGludWV9ZD1hLmJbbC5jLnBdW2wucF07aWYobC5rPT1tM2Ipe2QuYj0xO1JEKG1RYihsLChZd2MoKSxBd2MpKSwxMikuaj09KHFwZCgpLFhvZCkmJih1Kz1kLmEpfWVsc2V7Qz1iM2IobCwocXBkKCkscHBkKSk7Qy5kYygpfHwhYnIoQyxuZXcgbExjKT8oZC5jPTEpOihlPWIzYihsLFhvZCksKGUuZGMoKXx8IWJyKGUsbmV3IGhMYykpJiYodis9ZC5hKSl9Zm9yKGc9bmV3IGlzKE1yKGEzYihsKS5hLktjKCksbmV3IGlyKSk7Z3MoZyk7KXtmPVJEKGhzKGcpLDE4KTt2Kz1kLmM7dSs9ZC5iO0I9Zi5kLmk7WktjKGEsZCxCKX1yPUFsKGNEKFdDKGNKLDEpLHJ2ZSwyMCwwLFtiM2IobCwocXBkKCksWW9kKSksYjNiKGwsbnBkKV0pKTtmb3IoQT1uZXcgaXMobmV3IElsKHIuYS5sZW5ndGgsci5hKSk7Z3MoQSk7KXt3PVJEKGhzKEEpLDEyKTtzPVJEKG1RYih3LChZd2MoKSxJd2MpKSwxMCk7aWYocyl7dis9ZC5jO3UrPWQuYjtaS2MoYSxkLHMpfX19Zm9yKG89bmV3IEFuYih0KTtvLmE8by5jLmMubGVuZ3RoOyl7bD1SRCh5bmIobyksMTApO2Q9YS5iW2wuYy5wXVtsLnBdO2ZvcihnPW5ldyBpcyhNcihhM2IobCkuYS5LYygpLG5ldyBpcikpO2dzKGcpOyl7Zj1SRChocyhnKSwxOCk7dis9ZC5jO3UrPWQuYjtCPWYuZC5pO1pLYyhhLGQsQil9fXQuYy5sZW5ndGg9MH1iPXYrdTtxPWI9PTA/b3hlOih2LXUpL2I7cmV0dXJuIHE+PWN9XG5mdW5jdGlvbiB6RWQoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEc7dD1iO3M9bmV3IFRwO3U9bmV3IFRwO2s9d0RkKHQsbUllKTtkPW5ldyBPRWQoYSxjLHMsdSk7UURkKGQuYSxkLmIsZC5jLGQuZCxrKTtpPShBPXMuaSwhQT8ocy5pPW5ldyB6ZihzLHMuYykpOkEpO2ZvcihDPWkuS2MoKTtDLk9iKCk7KXtCPVJEKEMuUGIoKSwxNjYpO2U9UkQoUWMocyxCKSwyMSk7Zm9yKHA9ZS5LYygpO3AuT2IoKTspe289cC5QYigpO3Y9UkQoQW8oYS5kLG8pLDE2Nik7aWYodil7aD0oIUIuZSYmKEIuZT1uZXcgWWllKEY0LEIsMTAsOSkpLEIuZSk7V0dkKGgsdil9ZWxzZXtnPXpEZCh0LHVJZSk7bT1BSWUrbytCSWUrZztuPW0rekllO3Rocm93IEFkYihuZXcgQ0RkKG4pKX19fWo9KHc9dS5pLCF3Pyh1Lmk9bmV3IHpmKHUsdS5jKSk6dyk7Zm9yKEY9ai5LYygpO0YuT2IoKTspe0Q9UkQoRi5QYigpLDE2Nik7Zj1SRChRYyh1LEQpLDIxKTtmb3Iocj1mLktjKCk7ci5PYigpOyl7cT1yLlBiKCk7dj1SRChBbyhhLmQscSksMTY2KTtpZih2KXtsPSghRC5nJiYoRC5nPW5ldyBZaWUoRjQsRCw5LDEwKSksRC5nKTtXR2QobCx2KX1lbHNle2c9ekRkKHQsdUllKTttPUFJZStxK0JJZStnO249bSt6SWU7dGhyb3cgQWRiKG5ldyBDRGQobikpfX19IWMuYiYmKGMuYj1uZXcgWWllKEU0LGMsNCw3KSk7aWYoYy5iLmkhPTAmJighYy5jJiYoYy5jPW5ldyBZaWUoRTQsYyw1LDgpKSxjLmMuaSE9MCkmJighYy5iJiYoYy5iPW5ldyBZaWUoRTQsYyw0LDcpKSxjLmIuaTw9MSYmKCFjLmMmJihjLmM9bmV3IFlpZShFNCxjLDUsOCkpLGMuYy5pPD0xKSkmJighYy5hJiYoYy5hPW5ldyBDNWQoRjQsYyw2LDYpKSxjLmEpLmk9PTEpe0c9UkQoUUhkKCghYy5hJiYoYy5hPW5ldyBDNWQoRjQsYyw2LDYpKSxjLmEpLDApLDE2Nik7aWYoIUR6ZChHKSYmIUV6ZChHKSl7S3pkKEcsUkQoUUhkKCghYy5iJiYoYy5iPW5ldyBZaWUoRTQsYyw0LDcpKSxjLmIpLDApLDg0KSk7THpkKEcsUkQoUUhkKCghYy5jJiYoYy5jPW5ldyBZaWUoRTQsYyw1LDgpKSxjLmMpLDApLDg0KSl9fX1cbmZ1bmN0aW9uIFFOYyhhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEIsQyxEO2Zvcih0PWEuYSx1PTAsdj10Lmxlbmd0aDt1PHY7Kyt1KXtzPXRbdV07aj1sdmU7az1sdmU7Zm9yKG89bmV3IEFuYihzLmUpO28uYTxvLmMuYy5sZW5ndGg7KXttPVJEKHluYihvKSwxMCk7Zz0hbS5jPy0xOldtYihtLmMuYSxtLDApO2lmKGc+MCl7bD1SRChWbWIobS5jLmEsZy0xKSwxMCk7Qj1iRmMoYS5iLG0sbCk7cT1tLm4uYi1tLmQuZC0obC5uLmIrbC5vLmIrbC5kLmErQil9ZWxzZXtxPW0ubi5iLW0uZC5kfWo9JHduZC5NYXRoLm1pbihxLGopO2lmKGc8bS5jLmEuYy5sZW5ndGgtMSl7bD1SRChWbWIobS5jLmEsZysxKSwxMCk7Qj1iRmMoYS5iLG0sbCk7cj1sLm4uYi1sLmQuZC0obS5uLmIrbS5vLmIrbS5kLmErQil9ZWxzZXtyPTIqbS5uLmJ9az0kd25kLk1hdGgubWluKHIsayl9aT1sdmU7Zj1mYWxzZTtlPVJEKFZtYihzLmUsMCksMTApO2ZvcihEPW5ldyBBbmIoZS5qKTtELmE8RC5jLmMubGVuZ3RoOyl7Qz1SRCh5bmIoRCksMTIpO3A9ZS5uLmIrQy5uLmIrQy5hLmI7Zm9yKGQ9bmV3IEFuYihDLmUpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxOCk7dz1jLmM7Yj13Lmkubi5iK3cubi5iK3cuYS5iLXA7aWYoJHduZC5NYXRoLmFicyhiKTwkd25kLk1hdGguYWJzKGkpJiYkd25kLk1hdGguYWJzKGIpPChiPDA/ajprKSl7aT1iO2Y9dHJ1ZX19fWg9UkQoVm1iKHMuZSxzLmUuYy5sZW5ndGgtMSksMTApO2ZvcihBPW5ldyBBbmIoaC5qKTtBLmE8QS5jLmMubGVuZ3RoOyl7dz1SRCh5bmIoQSksMTIpO3A9aC5uLmIrdy5uLmIrdy5hLmI7Zm9yKGQ9bmV3IEFuYih3LmcpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxOCk7Qz1jLmQ7Yj1DLmkubi5iK0Mubi5iK0MuYS5iLXA7aWYoJHduZC5NYXRoLmFicyhiKTwkd25kLk1hdGguYWJzKGkpJiYkd25kLk1hdGguYWJzKGIpPChiPDA/ajprKSl7aT1iO2Y9dHJ1ZX19fWlmKGYmJmkhPTApe2ZvcihuPW5ldyBBbmIocy5lKTtuLmE8bi5jLmMubGVuZ3RoOyl7bT1SRCh5bmIobiksMTApO20ubi5iKz1pfX19fVxuZnVuY3Rpb24gdmFjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHI7ZD1uZXcgYm5iO2U9bHZlO2Y9bHZlO2c9bHZlO2lmKGMpe2U9YS5mLmE7Zm9yKHA9bmV3IEFuYihiLmopO3AuYTxwLmMuYy5sZW5ndGg7KXtvPVJEKHluYihwKSwxMik7Zm9yKGk9bmV3IEFuYihvLmcpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxOCk7aWYoaC5hLmIhPTApe2s9UkQoUXViKGguYSksOCk7aWYoay5hPGUpe2Y9ZS1rLmE7Zz1sdmU7ZC5jLmxlbmd0aD0wO2U9ay5hfWlmKGsuYTw9ZSl7WkViKGQuYyxoKTtoLmEuYj4xJiYoZz0kd25kLk1hdGgubWluKGcsJHduZC5NYXRoLmFicyhSRChqdShoLmEsMSksOCkuYi1rLmIpKSl9fX19fWVsc2V7Zm9yKHA9bmV3IEFuYihiLmopO3AuYTxwLmMuYy5sZW5ndGg7KXtvPVJEKHluYihwKSwxMik7Zm9yKGk9bmV3IEFuYihvLmUpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxOCk7aWYoaC5hLmIhPTApe209UkQoUnViKGguYSksOCk7aWYobS5hPmUpe2Y9bS5hLWU7Zz1sdmU7ZC5jLmxlbmd0aD0wO2U9bS5hfWlmKG0uYT49ZSl7WkViKGQuYyxoKTtoLmEuYj4xJiYoZz0kd25kLk1hdGgubWluKGcsJHduZC5NYXRoLmFicyhSRChqdShoLmEsaC5hLmItMiksOCkuYi1tLmIpKSl9fX19fWlmKGQuYy5sZW5ndGghPTAmJmY+Yi5vLmEvMiYmZz5iLm8uYi8yKXtuPW5ldyBSM2I7UDNiKG4sYik7UTNiKG4sKHFwZCgpLFlvZCkpO24ubi5hPWIuby5hLzI7cj1uZXcgUjNiO1AzYihyLGIpO1EzYihyLG5wZCk7ci5uLmE9Yi5vLmEvMjtyLm4uYj1iLm8uYjtmb3IoaT1uZXcgQW5iKGQpO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxOCk7aWYoYyl7aj1SRChVdWIoaC5hKSw4KTtxPWguYS5iPT0wP0szYihoLmQpOlJEKFF1YihoLmEpLDgpO3EuYj49ai5iP1kwYihoLHIpOlkwYihoLG4pfWVsc2V7aj1SRChWdWIoaC5hKSw4KTtxPWguYS5iPT0wP0szYihoLmMpOlJEKFJ1YihoLmEpLDgpO3EuYj49ai5iP1owYihoLHIpOlowYihoLG4pfWw9UkQobVFiKGgsKHlDYygpLFJBYykpLDc1KTshIWwmJnplKGwsaix0cnVlKX1iLm4uYT1lLWIuby5hLzJ9fVxuZnVuY3Rpb24gRTBjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbTtmb3IoaD1TdWIoYS5iLDApO2guYiE9aC5kLmM7KXtnPVJEKGV2YihoKSw0MCk7aWYobGhiKGcuYyxJRWUpKXtjb250aW51ZX1qPWlXYyhnLGEpO2I9PShDbWQoKSx5bWQpfHxiPT16bWQ/X21iKGosbmV3IEQxYyk6X21iKGosbmV3IEgxYyk7aT1qLmMubGVuZ3RoO2ZvcihkPTA7ZDxpO2QrKyl7az0odEZiKGQsai5jLmxlbmd0aCksUkQoai5jW2RdLDY1KSkuYztsaGIoay5jLCduMTEnKSYmbzA7aWYoSGViKFREKG1RYihnLChxJGMoKSxVWmMpKSkpJiYhbVdjKCh0RmIoZCxqLmMubGVuZ3RoKSxSRChqLmNbZF0sNjUpKSxhKSl7Y29udGludWV9ZT1pPT0xPzAuNTooZCsxKS8oaSsxKTtpZihiPT15bWQpe2Y9S2ZiKFVEKG1RYihnLGYkYykpKTttPWcuZS5iK2cuZi5iKmU7TnViKCh0RmIoZCxqLmMubGVuZ3RoKSxSRChqLmNbZF0sNjUpKS5hLG5ldyByamQoJHduZC5NYXRoLm1pbihmLGcuZS5hLWMpLG0pKTtOdWIoKHRGYihkLGouYy5sZW5ndGgpLFJEKGouY1tkXSw2NSkpLmEsbmV3IHJqZChnLmUuYSxtKSl9ZWxzZSBpZihiPT16bWQpe2Y9S2ZiKFVEKG1RYihnLGUkYykpKStjO209Zy5lLmIrZy5mLmIqZTtOdWIoKHRGYihkLGouYy5sZW5ndGgpLFJEKGouY1tkXSw2NSkpLmEsbmV3IHJqZChmLG0pKTtOdWIoKHRGYihkLGouYy5sZW5ndGgpLFJEKGouY1tkXSw2NSkpLmEsbmV3IHJqZChnLmUuYStnLmYuYSxtKSl9ZWxzZSBpZihiPT1CbWQpe2Y9S2ZiKFVEKG1RYihnLGYkYykpKTtsPWcuZS5hK2cuZi5hKmU7TnViKCh0RmIoZCxqLmMubGVuZ3RoKSxSRChqLmNbZF0sNjUpKS5hLG5ldyByamQobCwkd25kLk1hdGgubWluKGcuZS5iLWMsZikpKTtOdWIoKHRGYihkLGouYy5sZW5ndGgpLFJEKGouY1tkXSw2NSkpLmEsbmV3IHJqZChsLGcuZS5iKSl9ZWxzZXtmPUtmYihVRChtUWIoZyxlJGMpKSkrYztsPWcuZS5hK2cuZi5hKmU7TnViKCh0RmIoZCxqLmMubGVuZ3RoKSxSRChqLmNbZF0sNjUpKS5hLG5ldyByamQobCxmKSk7TnViKCh0RmIoZCxqLmMubGVuZ3RoKSxSRChqLmNbZF0sNjUpKS5hLG5ldyByamQobCxnLmUuYitnLmYuYikpfX19fVxuZnVuY3Rpb24gZjJiKGEsYixjLGQsZSxmLGcsaCxpKXt2YXIgaixrLGwsbSxuLG8scDtuPWM7az1uZXcgajNiKGkpO2gzYihrLChyM2IoKSxtM2IpKTtwUWIoaywoWXdjKCksaXdjKSxnKTtwUWIoaywoeUNjKCksQkJjKSwoQm9kKCksd29kKSk7cD1LZmIoVUQoYS5vZihBQmMpKSk7cFFiKGssQUJjLHApO2w9bmV3IFIzYjtQM2IobCxrKTtpZighKGIhPXpvZCYmYiE9QW9kKSl7ZD49MD8obj12cGQoaCkpOihuPXNwZCh2cGQoaCkpKTthLnFmKEdCYyxuKX1qPW5ldyBwamQ7bT1mYWxzZTtpZihhLnBmKHpCYykpe21qZChqLFJEKGEub2YoekJjKSw4KSk7bT10cnVlfWVsc2V7bGpkKGosZy5hLzIsZy5iLzIpfXN3aXRjaChuLmcpe2Nhc2UgNDpwUWIoayxVQWMsKGN4YygpLCR3YykpO3BRYihrLGJ3YywoaHVjKCksZ3VjKSk7ay5vLmI9Zy5iO3A8MCYmKGsuby5hPS1wKTtRM2IobCwocXBkKCksWG9kKSk7bXx8KGouYT1nLmEpO2ouYS09Zy5hO2JyZWFrO2Nhc2UgMjpwUWIoayxVQWMsKGN4YygpLGF4YykpO3BRYihrLGJ3YywoaHVjKCksZXVjKSk7ay5vLmI9Zy5iO3A8MCYmKGsuby5hPS1wKTtRM2IobCwocXBkKCkscHBkKSk7bXx8KGouYT0wKTticmVhaztjYXNlIDE6cFFiKGssb3djLChHdmMoKSxGdmMpKTtrLm8uYT1nLmE7cDwwJiYoay5vLmI9LXApO1EzYihsLChxcGQoKSxucGQpKTttfHwoai5iPWcuYik7ai5iLT1nLmI7YnJlYWs7Y2FzZSAzOnBRYihrLG93YywoR3ZjKCksRHZjKSk7ay5vLmE9Zy5hO3A8MCYmKGsuby5iPS1wKTtRM2IobCwocXBkKCksWW9kKSk7bXx8KGouYj0wKTt9bWpkKGwubixqKTtwUWIoayx6QmMsaik7aWYoYj09dm9kfHxiPT14b2R8fGI9PXdvZCl7bz0wO2lmKGI9PXZvZCYmYS5wZihDQmMpKXtzd2l0Y2gobi5nKXtjYXNlIDE6Y2FzZSAyOm89UkQoYS5vZihDQmMpLDE3KS5hO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6bz0tUkQoYS5vZihDQmMpLDE3KS5hO319ZWxzZXtzd2l0Y2gobi5nKXtjYXNlIDQ6Y2FzZSAyOm89Zi5iO2I9PXhvZCYmKG8vPWUuYik7YnJlYWs7Y2FzZSAxOmNhc2UgMzpvPWYuYTtiPT14b2QmJihvLz1lLmEpO319cFFiKGssSndjLG8pfXBRYihrLGh3YyxuKTtyZXR1cm4ga31cbmZ1bmN0aW9uIE9JZCgpe01JZCgpO2Z1bmN0aW9uIGgoZil7dmFyIGc9dGhpczt0aGlzLmRpc3BhdGNoPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZGF0YTtzd2l0Y2goYi5jbWQpe2Nhc2UgJ2FsZ29yaXRobXMnOnZhciBjPVBJZCgoeW9iKCksbmV3IHhwYihuZXcgZ2xiKExJZC5iKSkpKTtmLnBvc3RNZXNzYWdlKHtpZDpiLmlkLGRhdGE6Y30pO2JyZWFrO2Nhc2UgJ2NhdGVnb3JpZXMnOnZhciBkPVBJZCgoeW9iKCksbmV3IHhwYihuZXcgZ2xiKExJZC5jKSkpKTtmLnBvc3RNZXNzYWdlKHtpZDpiLmlkLGRhdGE6ZH0pO2JyZWFrO2Nhc2UgJ29wdGlvbnMnOnZhciBlPVBJZCgoeW9iKCksbmV3IHhwYihuZXcgZ2xiKExJZC5kKSkpKTtmLnBvc3RNZXNzYWdlKHtpZDpiLmlkLGRhdGE6ZX0pO2JyZWFrO2Nhc2UgJ3JlZ2lzdGVyJzpTSWQoYi5hbGdvcml0aG1zKTtmLnBvc3RNZXNzYWdlKHtpZDpiLmlkfSk7YnJlYWs7Y2FzZSAnbGF5b3V0JzpRSWQoYi5ncmFwaCxiLmxheW91dE9wdGlvbnN8fHt9LGIub3B0aW9uc3x8e30pO2YucG9zdE1lc3NhZ2Uoe2lkOmIuaWQsZGF0YTpiLmdyYXBofSk7YnJlYWs7fX07dGhpcy5zYXZlRGlzcGF0Y2g9ZnVuY3Rpb24oYil7dHJ5e2cuZGlzcGF0Y2goYil9Y2F0Y2goYSl7Zi5wb3N0TWVzc2FnZSh7aWQ6Yi5kYXRhLmlkLGVycm9yOmF9KX19fVxuZnVuY3Rpb24gaihiKXt2YXIgYz10aGlzO3RoaXMuZGlzcGF0Y2hlcj1uZXcgaCh7cG9zdE1lc3NhZ2U6ZnVuY3Rpb24oYSl7Yy5vbm1lc3NhZ2Uoe2RhdGE6YX0pfX0pO3RoaXMucG9zdE1lc3NhZ2U9ZnVuY3Rpb24oYSl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuZGlzcGF0Y2hlci5zYXZlRGlzcGF0Y2goe2RhdGE6YX0pfSwwKX19XG5pZih0eXBlb2YgZG9jdW1lbnQ9PT1ZeGUmJnR5cGVvZiBzZWxmIT09WXhlKXt2YXIgaT1uZXcgaChzZWxmKTtzZWxmLm9ubWVzc2FnZT1pLnNhdmVEaXNwYXRjaH1lbHNlIGlmKHR5cGVvZiBtb2R1bGUhPT1ZeGUmJm1vZHVsZS5leHBvcnRzKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywnX19lc01vZHVsZScse3ZhbHVlOnRydWV9KTttb2R1bGUuZXhwb3J0cz17J2RlZmF1bHQnOmosV29ya2VyOmp9fX1cbmZ1bmN0aW9uIGk1YihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG07az1uZXcgajNiKGMpO2tRYihrLGIpO3BRYihrLChZd2MoKSxBd2MpLGIpO2suby5hPWIuZztrLm8uYj1iLmY7ay5uLmE9Yi5pO2subi5iPWIuajtSbWIoYy5hLGspO1pqYihhLmEsYixrKTsoKCFiLmEmJihiLmE9bmV3IEM1ZChKNCxiLDEwLDExKSksYi5hKS5pIT0wfHxIZWIoVEQoR3hkKGIsKHlDYygpLE5BYykpKSkpJiZwUWIoayxZdmMsKEdlYigpLHRydWUpKTtqPVJEKG1RYihjLGt3YyksMjEpO2w9UkQobVFiKGssKHlDYygpLEJCYykpLDEwMSk7bD09KEJvZCgpLEFvZCk/cFFiKGssQkJjLHpvZCk6bCE9em9kJiZqLkZjKChvdmMoKSxrdmMpKTttPTA7ZD1SRChtUWIoYyxyQWMpLDg4KTtmb3IoaT1uZXcgZE1kKCghYi5jJiYoYi5jPW5ldyBDNWQoSzQsYiw5LDkpKSxiLmMpKTtpLmUhPWkuaS5nYygpOyl7aD1SRChiTWQoaSksMTIzKTtlPXZDZChiKTsoZEUoR3hkKGUsY0FjKSkhPT1kRSgoa0VjKCksaEVjKSl8fGRFKEd4ZChlLHBBYykpPT09ZEUoKFB0YygpLE90YykpfHxkRShHeGQoZSxwQWMpKT09PWRFKChQdGMoKSxNdGMpKXx8SGViKFREKEd4ZChlLGVBYykpKXx8ZEUoR3hkKGUsWXpjKSkhPT1kRSgoVSRiKCksVCRiKSl8fGRFKEd4ZChlLFpBYykpPT09ZEUoKGFFYygpLFREYykpfHxkRShHeGQoZSxaQWMpKT09PWRFKChhRWMoKSxVRGMpKXx8ZEUoR3hkKGUsJEFjKSk9PT1kRSgoX0NjKCksU0NjKSl8fGRFKEd4ZChlLCRBYykpPT09ZEUoKF9DYygpLFVDYykpKSYmIUhlYihURChHeGQoYixhQWMpKSkmJkl4ZChoLHp3YyxzZ2IobSsrKSk7SGViKFREKEd4ZChoLHBCYykpKXx8ajViKGEsaCxrLGosZCxsKX1mb3IoZz1uZXcgZE1kKCghYi5uJiYoYi5uPW5ldyBDNWQoSTQsYiwxLDcpKSxiLm4pKTtnLmUhPWcuaS5nYygpOyl7Zj1SRChiTWQoZyksMTM1KTshSGViKFREKEd4ZChmLHBCYykpKSYmISFmLmEmJlJtYihrLmIsaDViKGYpKX1IZWIoVEQobVFiKGssVXpjKSkpJiZqLkZjKChvdmMoKSxmdmMpKTtpZihIZWIoVEQobVFiKGssTUFjKSkpKXtqLkZjKChvdmMoKSxqdmMpKTtqLkZjKGl2Yyk7cFFiKGssQkJjLHpvZCl9cmV0dXJuIGt9XG5mdW5jdGlvbiBpcmQoYSxiLGMsZCxlLGYsZyl7dmFyIGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEcsSCxJO3A9MDtEPTA7Zm9yKGo9bmV3IEFuYihhLmIpO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwxNjMpOyEhaS5jJiZEc2QoaS5jKTtwPSR3bmQuTWF0aC5tYXgocCx1cmQoaSkpO0QrPXVyZChpKSp0cmQoaSl9cT1EL2EuYi5jLmxlbmd0aDtDPWJyZChhLmIscSk7RCs9YS5iLmMubGVuZ3RoKkM7cD0kd25kLk1hdGgubWF4KHAsJHduZC5NYXRoLnNxcnQoRCpnKSkrYy5iO0g9Yy5iO0k9Yy5kO249MDtsPWMuYitjLmM7Qj1uZXcgWXViO011YihCLHNnYigwKSk7dz1uZXcgWXViO2s9bmV3IEprYihhLmIsMCk7bz1udWxsO2g9bmV3IGJuYjt3aGlsZShrLmI8ay5kLmdjKCkpe2k9KHNGYihrLmI8ay5kLmdjKCkpLFJEKGsuZC5YYihrLmM9ay5iKyspLDE2MykpO0c9dXJkKGkpO209dHJkKGkpO2lmKEgrRz5wKXtpZihmKXtPdWIodyxuKTtPdWIoQixzZ2Ioay5iLTEpKTtSbWIoYS5kLG8pO2guYy5sZW5ndGg9MH1IPWMuYjtJKz1uK2I7bj0wO2w9JHduZC5NYXRoLm1heChsLGMuYitjLmMrRyl9WkViKGguYyxpKTt4cmQoaSxILEkpO2w9JHduZC5NYXRoLm1heChsLEgrRytjLmMpO249JHduZC5NYXRoLm1heChuLG0pO0grPUcrYjtvPWl9VG1iKGEuYSxoKTtSbWIoYS5kLFJEKFZtYihoLGguYy5sZW5ndGgtMSksMTYzKSk7bD0kd25kLk1hdGgubWF4KGwsZCk7Rj1JK24rYy5hO2lmKEY8ZSl7bis9ZS1GO0Y9ZX1pZihmKXtIPWMuYjtrPW5ldyBKa2IoYS5iLDApO091YihCLHNnYihhLmIuYy5sZW5ndGgpKTtBPVN1YihCLDApO3M9UkQoZXZiKEEpLDE3KS5hO091Yih3LG4pO3Y9U3ViKHcsMCk7dT0wO3doaWxlKGsuYjxrLmQuZ2MoKSl7aWYoay5iPT1zKXtIPWMuYjt1PUtmYihVRChldmIodikpKTtzPVJEKGV2YihBKSwxNykuYX1pPShzRmIoay5iPGsuZC5nYygpKSxSRChrLmQuWGIoay5jPWsuYisrKSwxNjMpKTt2cmQoaSx1KTtpZihrLmI9PXMpe3I9bC1ILWMuYzt0PXVyZChpKTt3cmQoaSxyKTt5cmQoaSwoci10KS8yLDApfUgrPXVyZChpKStifX1yZXR1cm4gbmV3IHJqZChsLEYpfVxuZnVuY3Rpb24gem5lKGEpe2lmKGEuTilyZXR1cm47YS5OPXRydWU7YS5iPWpCZChhLDApO2lCZChhLmIsMCk7aUJkKGEuYiwxKTtpQmQoYS5iLDIpO2EuYmI9akJkKGEsMSk7aUJkKGEuYmIsMCk7aUJkKGEuYmIsMSk7YS5mYj1qQmQoYSwyKTtpQmQoYS5mYiwzKTtpQmQoYS5mYiw0KTtvQmQoYS5mYiw1KTthLnFiPWpCZChhLDMpO2lCZChhLnFiLDApO29CZChhLnFiLDEpO29CZChhLnFiLDIpO2lCZChhLnFiLDMpO2lCZChhLnFiLDQpO29CZChhLnFiLDUpO2lCZChhLnFiLDYpO2EuYT1rQmQoYSw0KTthLmM9a0JkKGEsNSk7YS5kPWtCZChhLDYpO2EuZT1rQmQoYSw3KTthLmY9a0JkKGEsOCk7YS5nPWtCZChhLDkpO2EuaT1rQmQoYSwxMCk7YS5qPWtCZChhLDExKTthLms9a0JkKGEsMTIpO2Eubj1rQmQoYSwxMyk7YS5vPWtCZChhLDE0KTthLnA9a0JkKGEsMTUpO2EucT1rQmQoYSwxNik7YS5zPWtCZChhLDE3KTthLnI9a0JkKGEsMTgpO2EudD1rQmQoYSwxOSk7YS51PWtCZChhLDIwKTthLnY9a0JkKGEsMjEpO2Eudz1rQmQoYSwyMik7YS5CPWtCZChhLDIzKTthLkE9a0JkKGEsMjQpO2EuQz1rQmQoYSwyNSk7YS5EPWtCZChhLDI2KTthLkY9a0JkKGEsMjcpO2EuRz1rQmQoYSwyOCk7YS5IPWtCZChhLDI5KTthLko9a0JkKGEsMzApO2EuST1rQmQoYSwzMSk7YS5LPWtCZChhLDMyKTthLk09a0JkKGEsMzMpO2EuTD1rQmQoYSwzNCk7YS5QPWtCZChhLDM1KTthLlE9a0JkKGEsMzYpO2EuUj1rQmQoYSwzNyk7YS5TPWtCZChhLDM4KTthLlQ9a0JkKGEsMzkpO2EuVT1rQmQoYSw0MCk7YS5WPWtCZChhLDQxKTthLlg9a0JkKGEsNDIpO2EuVz1rQmQoYSw0Myk7YS5ZPWtCZChhLDQ0KTthLlo9a0JkKGEsNDUpO2EuJD1rQmQoYSw0Nik7YS5fPWtCZChhLDQ3KTthLmFiPWtCZChhLDQ4KTthLmNiPWtCZChhLDQ5KTthLmRiPWtCZChhLDUwKTthLmViPWtCZChhLDUxKTthLmdiPWtCZChhLDUyKTthLmhiPWtCZChhLDUzKTthLmliPWtCZChhLDU0KTthLmpiPWtCZChhLDU1KTthLmtiPWtCZChhLDU2KTthLmxiPWtCZChhLDU3KTthLm1iPWtCZChhLDU4KTthLm5iPWtCZChhLDU5KTthLm9iPWtCZChhLDYwKTthLnBiPWtCZChhLDYxKX1cbmZ1bmN0aW9uIHc4YihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1O3M9MDtpZihiLmYuYT09MCl7Zm9yKHE9bmV3IEFuYihhKTtxLmE8cS5jLmMubGVuZ3RoOyl7bz1SRCh5bmIocSksMTApO3M9JHduZC5NYXRoLm1heChzLG8ubi5hK28uby5hK28uZC5jKX19ZWxzZXtzPWIuZi5hLWIuYy5hfXMtPWIuYy5hO2ZvcihwPW5ldyBBbmIoYSk7cC5hPHAuYy5jLmxlbmd0aDspe289UkQoeW5iKHApLDEwKTt4OGIoby5uLHMtby5vLmEpO3k4YihvLmYpO3U4YihvKTsoIW8ucT8oeW9iKCkseW9iKCksd29iKTpvLnEpLl9iKCh5Q2MoKSxJQmMpKSYmeDhiKFJEKG1RYihvLElCYyksOCkscy1vLm8uYSk7c3dpdGNoKFJEKG1RYihvLFJ6YyksMjU1KS5nKXtjYXNlIDE6cFFiKG8sUnpjLChSamQoKSxQamQpKTticmVhaztjYXNlIDI6cFFiKG8sUnpjLChSamQoKSxPamQpKTt9cj1vLm87Zm9yKHU9bmV3IEFuYihvLmopO3UuYTx1LmMuYy5sZW5ndGg7KXt0PVJEKHluYih1KSwxMik7eDhiKHQubixyLmEtdC5vLmEpO3g4Yih0LmEsdC5vLmEpO1EzYih0LG84Yih0LmopKTtnPVJEKG1RYih0LENCYyksMTcpOyEhZyYmcFFiKHQsQ0JjLHNnYigtZy5hKSk7Zm9yKGY9bmV3IEFuYih0LmcpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSwxOCk7Zm9yKGQ9U3ViKGUuYSwwKTtkLmIhPWQuZC5jOyl7Yz1SRChldmIoZCksOCk7Yy5hPXMtYy5hfWo9UkQobVFiKGUsUkFjKSw3NSk7aWYoail7Zm9yKGk9U3ViKGosMCk7aS5iIT1pLmQuYzspe2g9UkQoZXZiKGkpLDgpO2guYT1zLWguYX19Zm9yKG09bmV3IEFuYihlLmIpO20uYTxtLmMuYy5sZW5ndGg7KXtrPVJEKHluYihtKSw3Mik7eDhiKGsubixzLWsuby5hKX19Zm9yKG49bmV3IEFuYih0LmYpO24uYTxuLmMuYy5sZW5ndGg7KXtrPVJEKHluYihuKSw3Mik7eDhiKGsubix0Lm8uYS1rLm8uYSl9fWlmKG8uaz09KHIzYigpLG0zYikpe3BRYihvLChZd2MoKSxod2MpLG84YihSRChtUWIobyxod2MpLDY0KSkpO3Q4YihvKX1mb3IobD1uZXcgQW5iKG8uYik7bC5hPGwuYy5jLmxlbmd0aDspe2s9UkQoeW5iKGwpLDcyKTt1OGIoayk7eDhiKGsubixyLmEtay5vLmEpfX19XG5mdW5jdGlvbiB6OGIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdTtzPTA7aWYoYi5mLmI9PTApe2ZvcihxPW5ldyBBbmIoYSk7cS5hPHEuYy5jLmxlbmd0aDspe289UkQoeW5iKHEpLDEwKTtzPSR3bmQuTWF0aC5tYXgocyxvLm4uYitvLm8uYitvLmQuYSl9fWVsc2V7cz1iLmYuYi1iLmMuYn1zLT1iLmMuYjtmb3IocD1uZXcgQW5iKGEpO3AuYTxwLmMuYy5sZW5ndGg7KXtvPVJEKHluYihwKSwxMCk7QThiKG8ubixzLW8uby5iKTtCOGIoby5mKTt2OGIobyk7KCFvLnE/KHlvYigpLHlvYigpLHdvYik6by5xKS5fYigoeUNjKCksSUJjKSkmJkE4YihSRChtUWIobyxJQmMpLDgpLHMtby5vLmIpO3N3aXRjaChSRChtUWIobyxSemMpLDI1NSkuZyl7Y2FzZSAzOnBRYihvLFJ6YywoUmpkKCksTWpkKSk7YnJlYWs7Y2FzZSA0OnBRYihvLFJ6YywoUmpkKCksUWpkKSk7fXI9by5vO2Zvcih1PW5ldyBBbmIoby5qKTt1LmE8dS5jLmMubGVuZ3RoOyl7dD1SRCh5bmIodSksMTIpO0E4Yih0Lm4sci5iLXQuby5iKTtBOGIodC5hLHQuby5iKTtRM2IodCxwOGIodC5qKSk7Zz1SRChtUWIodCxDQmMpLDE3KTshIWcmJnBRYih0LENCYyxzZ2IoLWcuYSkpO2ZvcihmPW5ldyBBbmIodC5nKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTgpO2ZvcihkPVN1YihlLmEsMCk7ZC5iIT1kLmQuYzspe2M9UkQoZXZiKGQpLDgpO2MuYj1zLWMuYn1qPVJEKG1RYihlLFJBYyksNzUpO2lmKGope2ZvcihpPVN1YihqLDApO2kuYiE9aS5kLmM7KXtoPVJEKGV2YihpKSw4KTtoLmI9cy1oLmJ9fWZvcihtPW5ldyBBbmIoZS5iKTttLmE8bS5jLmMubGVuZ3RoOyl7az1SRCh5bmIobSksNzIpO0E4YihrLm4scy1rLm8uYil9fWZvcihuPW5ldyBBbmIodC5mKTtuLmE8bi5jLmMubGVuZ3RoOyl7az1SRCh5bmIobiksNzIpO0E4YihrLm4sdC5vLmItay5vLmIpfX1pZihvLms9PShyM2IoKSxtM2IpKXtwUWIobywoWXdjKCksaHdjKSxwOGIoUkQobVFiKG8saHdjKSw2NCkpKTtzOGIobyl9Zm9yKGw9bmV3IEFuYihvLmIpO2wuYTxsLmMuYy5sZW5ndGg7KXtrPVJEKHluYihsKSw3Mik7djhiKGspO0E4YihrLm4sci5iLWsuby5iKX19fVxuZnVuY3Rpb24gRHJjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQsRixHLEg7cz1uZXcgSmtiKGEuYiwwKTtrPWIuS2MoKTtvPTA7aj1SRChrLlBiKCksMTcpLmE7dj0wO2M9bmV3IF9zYjtBPW5ldyBJdWI7d2hpbGUocy5iPHMuZC5nYygpKXtyPShzRmIocy5iPHMuZC5nYygpKSxSRChzLmQuWGIocy5jPXMuYisrKSwzMCkpO2Zvcih1PW5ldyBBbmIoci5hKTt1LmE8dS5jLmMubGVuZ3RoOyl7dD1SRCh5bmIodSksMTApO2ZvcihuPW5ldyBpcyhNcihhM2IodCkuYS5LYygpLG5ldyBpcikpO2dzKG4pOyl7bD1SRChocyhuKSwxOCk7QS5hLnpjKGwsQSl9Zm9yKG09bmV3IGlzKE1yKFoyYih0KS5hLktjKCksbmV3IGlyKSk7Z3MobSk7KXtsPVJEKGhzKG0pLDE4KTtBLmEuQmMobCkhPW51bGx9fWlmKG8rMT09ail7ZT1uZXcgUjRiKGEpO0lrYihzLGUpO2Y9bmV3IFI0YihhKTtJa2IocyxmKTtmb3IoQz1BLmEuZWMoKS5LYygpO0MuT2IoKTspe0I9UkQoQy5QYigpLDE4KTtpZighYy5hLl9iKEIpKXsrK3Y7Yy5hLnpjKEIsYyl9Zz1uZXcgajNiKGEpO3BRYihnLCh5Q2MoKSxCQmMpLChCb2QoKSx5b2QpKTtnM2IoZyxlKTtoM2IoZywocjNiKCksbDNiKSk7cD1uZXcgUjNiO1AzYihwLGcpO1EzYihwLChxcGQoKSxwcGQpKTtEPW5ldyBSM2I7UDNiKEQsZyk7UTNiKEQsWG9kKTtkPW5ldyBqM2IoYSk7cFFiKGQsQkJjLHlvZCk7ZzNiKGQsZik7aDNiKGQsbDNiKTtxPW5ldyBSM2I7UDNiKHEsZCk7UTNiKHEscHBkKTtGPW5ldyBSM2I7UDNiKEYsZCk7UTNiKEYsWG9kKTt3PW5ldyBhMWI7WTBiKHcsQi5jKTtaMGIodyxwKTtwUWIodywoWXdjKCksendjKSxSRChtUWIoQix6d2MpLDE3KSk7SD1uZXcgYTFiO1kwYihILEQpO1owYihILHEpO3BRYihILHp3YyxSRChtUWIoQix6d2MpLDE3KSk7WTBiKEIsRik7aD1uZXcgSnJjKGcsZCx3LEgsQik7cFFiKGcsV3ZjLGgpO3BRYihkLFd2YyxoKTtHPXcuYy5pO2lmKEcuaz09bDNiKXtpPVJEKG1RYihHLFd2YyksMzEzKTtpLmQ9aDtoLmc9aX19aWYoay5PYigpKXtqPVJEKGsuUGIoKSwxNykuYX1lbHNle2JyZWFrfX0rK299cmV0dXJuIHNnYih2KX1cbmZ1bmN0aW9uIHJrYyhhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscTtwPW5ldyBibmI7Zm9yKG09bmV3IEFuYihhLmQuYik7bS5hPG0uYy5jLmxlbmd0aDspe2w9UkQoeW5iKG0pLDMwKTtmb3Iobz1uZXcgQW5iKGwuYSk7by5hPG8uYy5jLmxlbmd0aDspe249UkQoeW5iKG8pLDEwKTtlPVJEKFdqYihhLmYsbiksNjApO2ZvcihpPW5ldyBpcyhNcihhM2IobikuYS5LYygpLG5ldyBpcikpO2dzKGkpOyl7Zz1SRChocyhpKSwxOCk7ZD1TdWIoZy5hLDApO2o9dHJ1ZTtrPW51bGw7aWYoZC5iIT1kLmQuYyl7Yj1SRChldmIoZCksOCk7Yz1udWxsO2lmKGcuYy5qPT0ocXBkKCksWW9kKSl7cT1uZXcgTmxjKGIsbmV3IHJqZChiLmEsZS5kLmQpLGUsZyk7cS5mLmE9dHJ1ZTtxLmE9Zy5jO1pFYihwLmMscSl9aWYoZy5jLmo9PW5wZCl7cT1uZXcgTmxjKGIsbmV3IHJqZChiLmEsZS5kLmQrZS5kLmEpLGUsZyk7cS5mLmQ9dHJ1ZTtxLmE9Zy5jO1pFYihwLmMscSl9d2hpbGUoZC5iIT1kLmQuYyl7Yz1SRChldmIoZCksOCk7aWYoIXJHYihiLmIsYy5iKSl7az1uZXcgTmxjKGIsYyxudWxsLGcpO1pFYihwLmMsayk7aWYoail7aj1mYWxzZTtpZihjLmI8ZS5kLmQpe2suZi5hPXRydWV9ZWxzZSBpZihjLmI+ZS5kLmQrZS5kLmEpe2suZi5kPXRydWV9ZWxzZXtrLmYuZD10cnVlO2suZi5hPXRydWV9fX1kLmIhPWQuZC5jJiYoYj1jKX1pZihrKXtmPVJEKFdqYihhLmYsZy5kLmkpLDYwKTtpZihiLmI8Zi5kLmQpe2suZi5hPXRydWV9ZWxzZSBpZihiLmI+Zi5kLmQrZi5kLmEpe2suZi5kPXRydWV9ZWxzZXtrLmYuZD10cnVlO2suZi5hPXRydWV9fX19Zm9yKGg9bmV3IGlzKE1yKFoyYihuKS5hLktjKCksbmV3IGlyKSk7Z3MoaCk7KXtnPVJEKGhzKGgpLDE4KTtpZihnLmEuYiE9MCl7Yj1SRChSdWIoZy5hKSw4KTtpZihnLmQuaj09KHFwZCgpLFlvZCkpe3E9bmV3IE5sYyhiLG5ldyByamQoYi5hLGUuZC5kKSxlLGcpO3EuZi5hPXRydWU7cS5hPWcuZDtaRWIocC5jLHEpfWlmKGcuZC5qPT1ucGQpe3E9bmV3IE5sYyhiLG5ldyByamQoYi5hLGUuZC5kK2UuZC5hKSxlLGcpO3EuZi5kPXRydWU7cS5hPWcuZDtaRWIocC5jLHEpfX19fX1yZXR1cm4gcH1cbmZ1bmN0aW9uIE52ZChhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG07aT1uZXcgYm5iO2w9Yi5sZW5ndGg7Zz0kNWQoYyk7Zm9yKGo9MDtqPGw7KytqKXtrPXJoYihiLEZoYig2MSksaik7ZD13dmQoZywoQUZiKGosayxiLmxlbmd0aCksYi5zdWJzdHIoaixrLWopKSk7ZT1pWGQoZCk7Zj1lLmprKCkud2koKTtzd2l0Y2goaWhiKGIsKytrKSl7Y2FzZSAzOTp7aD1waGIoYiwzOSwrK2spO1JtYihpLG5ldyBLVGQoZCxsd2QoKEFGYihrLGgsYi5sZW5ndGgpLGIuc3Vic3RyKGssaC1rKSksZixlKSkpO2o9aCsxO2JyZWFrfWNhc2UgMzQ6e2g9cGhiKGIsMzQsKytrKTtSbWIoaSxuZXcgS1RkKGQsbHdkKChBRmIoayxoLGIubGVuZ3RoKSxiLnN1YnN0cihrLGgtaykpLGYsZSkpKTtqPWgrMTticmVha31jYXNlIDkxOnttPW5ldyBibmI7Um1iKGksbmV3IEtUZChkLG0pKTtuOmZvcig7Oyl7c3dpdGNoKGloYihiLCsraykpe2Nhc2UgMzk6e2g9cGhiKGIsMzksKytrKTtSbWIobSxsd2QoKEFGYihrLGgsYi5sZW5ndGgpLGIuc3Vic3RyKGssaC1rKSksZixlKSk7az1oKzE7YnJlYWt9Y2FzZSAzNDp7aD1waGIoYiwzNCwrK2spO1JtYihtLGx3ZCgoQUZiKGssaCxiLmxlbmd0aCksYi5zdWJzdHIoayxoLWspKSxmLGUpKTtrPWgrMTticmVha31jYXNlIDExMDp7KytrO2lmKGIuaW5kZXhPZigndWxsJyxrKT09ayl7bS5jLnB1c2gobnVsbCl9ZWxzZXt0aHJvdyBBZGIobmV3IHl6KE1IZSkpfWsrPTM7YnJlYWt9fWlmKGs8bCl7c3dpdGNoKEJGYihrLGIubGVuZ3RoKSxiLmNoYXJDb2RlQXQoaykpe2Nhc2UgNDQ6e2JyZWFrfWNhc2UgOTM6e2JyZWFrIG59ZGVmYXVsdDp7dGhyb3cgQWRiKG5ldyB5eignRXhwZWN0aW5nICwgb3IgXScpKX19fWVsc2V7YnJlYWt9fWo9aysxO2JyZWFrfWNhc2UgMTEwOnsrK2s7aWYoYi5pbmRleE9mKCd1bGwnLGspPT1rKXtSbWIoaSxuZXcgS1RkKGQsbnVsbCkpfWVsc2V7dGhyb3cgQWRiKG5ldyB5eihNSGUpKX1qPWsrMzticmVha319aWYoajxsKXtCRmIoaixiLmxlbmd0aCk7aWYoYi5jaGFyQ29kZUF0KGopIT00NCl7dGhyb3cgQWRiKG5ldyB5eignRXhwZWN0aW5nICwnKSl9fWVsc2V7YnJlYWt9fXJldHVybiBPdmQoYSxpLGMpfVxuZnVuY3Rpb24gT3FlKGEpe3ZhciBiLGMsZCxlLGY7Yj1hLmM7Zj1udWxsO3N3aXRjaChiKXtjYXNlIDY6cmV0dXJuIGEuRW0oKTtjYXNlIDEzOnJldHVybiBhLkZtKCk7Y2FzZSAyMzpyZXR1cm4gYS53bSgpO2Nhc2UgMjI6cmV0dXJuIGEuQm0oKTtjYXNlIDE4OnJldHVybiBhLnltKCk7Y2FzZSA4Ok1xZShhKTtmPShWc2UoKSxEc2UpO2JyZWFrO2Nhc2UgOTpyZXR1cm4gYS5lbSh0cnVlKTtjYXNlIDE5OnJldHVybiBhLmZtKCk7Y2FzZSAxMDpzd2l0Y2goYS5hKXtjYXNlIDEwMDpjYXNlIDY4OmNhc2UgMTE5OmNhc2UgODc6Y2FzZSAxMTU6Y2FzZSA4MzpmPWEuZG0oYS5hKTtNcWUoYSk7cmV0dXJuIGY7Y2FzZSAxMDE6Y2FzZSAxMDI6Y2FzZSAxMTA6Y2FzZSAxMTQ6Y2FzZSAxMTY6Y2FzZSAxMTc6Y2FzZSAxMTg6Y2FzZSAxMjA6e2M9YS5jbSgpO2M8dHhlPyhmPShWc2UoKSxWc2UoKSwrK1VzZSxuZXcgSHRlKDAsYykpKTooZj1jdGUocXNlKGMpKSl9YnJlYWs7Y2FzZSA5OTpyZXR1cm4gYS5vbSgpO2Nhc2UgNjc6cmV0dXJuIGEuam0oKTtjYXNlIDEwNTpyZXR1cm4gYS5ybSgpO2Nhc2UgNzM6cmV0dXJuIGEua20oKTtjYXNlIDEwMzpyZXR1cm4gYS5wbSgpO2Nhc2UgODg6cmV0dXJuIGEubG0oKTtjYXNlIDQ5OmNhc2UgNTA6Y2FzZSA1MTpjYXNlIDUyOmNhc2UgNTM6Y2FzZSA1NDpjYXNlIDU1OmNhc2UgNTY6Y2FzZSA1NzpyZXR1cm4gYS5nbSgpO2Nhc2UgODA6Y2FzZSAxMTI6Zj1TcWUoYSxhLmEpO2lmKCFmKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksaEplKSkpKTticmVhaztkZWZhdWx0OmY9WXNlKGEuYSk7fU1xZShhKTticmVhaztjYXNlIDA6aWYoYS5hPT05M3x8YS5hPT0xMjN8fGEuYT09MTI1KXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksZ0plKSkpKTtmPVlzZShhLmEpO2Q9YS5hO01xZShhKTtpZigoZCY2NDUxMik9PXV4ZSYmYS5jPT0wJiYoYS5hJjY0NTEyKT09NTYzMjApe2U9JEMoaEUsendlLDI4LDIsMTUsMSk7ZVswXT1kJkJ3ZTtlWzFdPWEuYSZCd2U7Zj1idGUoY3RlKEloYihlLDAsZS5sZW5ndGgpKSwwKTtNcWUoYSl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLGdKZSkpKSk7fXJldHVybiBmfVxuZnVuY3Rpb24gV1VjKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQsRjtDPW5ldyBZdWI7dz1uZXcgWXViO3E9LTE7Zm9yKGk9bmV3IEFuYihhKTtpLmE8aS5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaSksMTMxKTtnLnM9cS0tO2s9MDt0PTA7Zm9yKGY9bmV3IEFuYihnLnQpO2YuYTxmLmMuYy5sZW5ndGg7KXtkPVJEKHluYihmKSwyNzQpO3QrPWQuY31mb3IoZT1uZXcgQW5iKGcuaSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDI3NCk7ays9ZC5jfWcubj1rO2cudT10O3Q9PTA/KFB1Yih3LGcsdy5jLmIsdy5jKSx0cnVlKTprPT0wJiYoUHViKEMsZyxDLmMuYixDLmMpLHRydWUpfUY9WHgoYSk7bD1hLmMubGVuZ3RoO3A9bCsxO3I9bC0xO249bmV3IGJuYjt3aGlsZShGLmEuZ2MoKSE9MCl7d2hpbGUody5iIT0wKXt2PShzRmIody5iIT0wKSxSRChXdWIodyx3LmEuYSksMTMxKSk7Ri5hLkJjKHYpIT1udWxsO3Yucz1yLS07JFVjKHYsQyx3KX13aGlsZShDLmIhPTApe0E9KHNGYihDLmIhPTApLFJEKFd1YihDLEMuYS5hKSwxMzEpKTtGLmEuQmMoQSkhPW51bGw7QS5zPXArKzskVWMoQSxDLHcpfW89cXdlO2ZvcihqPUYuYS5lYygpLktjKCk7ai5PYigpOyl7Zz1SRChqLlBiKCksMTMxKTtzPWcudS1nLm47aWYocz49byl7aWYocz5vKXtuLmMubGVuZ3RoPTA7bz1zfVpFYihuLmMsZyl9fWlmKG4uYy5sZW5ndGghPTApe209UkQoVm1iKG4sSndiKGIsbi5jLmxlbmd0aCkpLDEzMSk7Ri5hLkJjKG0pIT1udWxsO20ucz1wKys7JFVjKG0sQyx3KTtuLmMubGVuZ3RoPTB9fXU9YS5jLmxlbmd0aCsxO2ZvcihoPW5ldyBBbmIoYSk7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDEzMSk7Zy5zPGwmJihnLnMrPXUpfWZvcihCPW5ldyBBbmIoYSk7Qi5hPEIuYy5jLmxlbmd0aDspe0E9UkQoeW5iKEIpLDEzMSk7Yz1uZXcgSmtiKEEudCwwKTt3aGlsZShjLmI8Yy5kLmdjKCkpe2Q9KHNGYihjLmI8Yy5kLmdjKCkpLFJEKGMuZC5YYihjLmM9Yy5iKyspLDI3NCkpO0Q9ZC5iO2lmKEEucz5ELnMpe0NrYihjKTtZbWIoRC5pLGQpO2lmKGQuYz4wKXtkLmE9RDtSbWIoRC50LGQpO2QuYj1BO1JtYihBLmksZCl9fX19fVxuZnVuY3Rpb24gRWZjKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQsRjtwPW5ldyBjbmIoYi5iKTt1PW5ldyBjbmIoYi5iKTttPW5ldyBjbmIoYi5iKTtCPW5ldyBjbmIoYi5iKTtxPW5ldyBjbmIoYi5iKTtmb3IoQT1TdWIoYiwwKTtBLmIhPUEuZC5jOyl7dj1SRChldmIoQSksMTIpO2ZvcihoPW5ldyBBbmIodi5nKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoaCksMTgpO2lmKGYuYy5pPT1mLmQuaSl7aWYodi5qPT1mLmQuail7WkViKEIuYyxmKTtjb250aW51ZX1lbHNlIGlmKHYuaj09KHFwZCgpLFlvZCkmJmYuZC5qPT1ucGQpe1pFYihxLmMsZik7Y29udGludWV9fX19Zm9yKGk9bmV3IEFuYihxKTtpLmE8aS5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoaSksMTgpO0ZmYyhhLGYsYyxkLChxcGQoKSxYb2QpKX1mb3IoZz1uZXcgQW5iKEIpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwxOCk7Qz1uZXcgajNiKGEpO2gzYihDLChyM2IoKSxxM2IpKTtwUWIoQywoeUNjKCksQkJjKSwoQm9kKCksd29kKSk7cFFiKEMsKFl3YygpLEF3YyksZik7RD1uZXcgUjNiO3BRYihELEF3YyxmLmQpO1EzYihELChxcGQoKSxwcGQpKTtQM2IoRCxDKTtGPW5ldyBSM2I7cFFiKEYsQXdjLGYuYyk7UTNiKEYsWG9kKTtQM2IoRixDKTtwUWIoZi5jLEl3YyxDKTtwUWIoZi5kLEl3YyxDKTtZMGIoZixudWxsKTtaMGIoZixudWxsKTtaRWIoYy5jLEMpO3BRYihDLCR2YyxzZ2IoMikpfWZvcih3PVN1YihiLDApO3cuYiE9dy5kLmM7KXt2PVJEKGV2Yih3KSwxMik7aj12LmUuYy5sZW5ndGg+MDtyPXYuZy5jLmxlbmd0aD4wO2omJnI/KFpFYihtLmMsdiksdHJ1ZSk6aj8oWkViKHAuYyx2KSx0cnVlKTpyJiYoWkViKHUuYyx2KSx0cnVlKX1mb3Iobz1uZXcgQW5iKHApO28uYTxvLmMuYy5sZW5ndGg7KXtuPVJEKHluYihvKSwxMik7Um1iKGUsRGZjKGEsbixudWxsLGMpKX1mb3IodD1uZXcgQW5iKHUpO3QuYTx0LmMuYy5sZW5ndGg7KXtzPVJEKHluYih0KSwxMik7Um1iKGUsRGZjKGEsbnVsbCxzLGMpKX1mb3IobD1uZXcgQW5iKG0pO2wuYTxsLmMuYy5sZW5ndGg7KXtrPVJEKHluYihsKSwxMik7Um1iKGUsRGZjKGEsayxrLGMpKX19XG5mdW5jdGlvbiBwc2QoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQ7bT1veGU7bj1veGU7az0wO2w9MDtpPW5ldyBibmI7Zm9yKGg9bmV3IGRNZCgoIWEuYiYmKGEuYj1uZXcgQzVkKEc0LGEsMTIsMykpLGEuYikpO2guZSE9aC5pLmdjKCk7KXtmPVJEKGJNZChoKSw3NCk7aT1BbChjRChXQyhjSiwxKSxydmUsMjAsMCxbaSwoIWYubiYmKGYubj1uZXcgQzVkKEk0LGYsMSw3KSksZi5uKV0pKX1mb3IodD1GbChBbChjRChXQyhjSiwxKSxydmUsMjAsMCxbKCFhLm4mJihhLm49bmV3IEM1ZChJNCxhLDEsNykpLGEubiksKCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKSxpXSkpKTtncyh0KTspe3M9UkQoaHModCksNDIyKTtqPVJEKHMub2YoKHVtZCgpLGVsZCkpLDE0MCk7bT5zLm5oKCktai5iJiYobT1zLm5oKCktai5iKTtuPnMub2goKS1qLmQmJihuPXMub2goKS1qLmQpO2s8cy5uaCgpK3MubWgoKStqLmMmJihrPXMubmgoKStzLm1oKCkrai5jKTtsPHMub2goKStzLmxoKCkrai5hJiYobD1zLm9oKCkrcy5saCgpK2ouYSl9Zm9yKGc9bmV3IGRNZCgoIWEuYiYmKGEuYj1uZXcgQzVkKEc0LGEsMTIsMykpLGEuYikpO2cuZSE9Zy5pLmdjKCk7KXtmPVJEKGJNZChnKSw3NCk7Zm9yKHI9bmV3IGRNZCgoIWYuYSYmKGYuYT1uZXcgQzVkKEY0LGYsNiw2KSksZi5hKSk7ci5lIT1yLmkuZ2MoKTspe3E9UkQoYk1kKHIpLDE2Nik7bz1xLmo7ZD1xLmI7cD1xLms7ZT1xLmM7bT0kd25kLk1hdGgubWluKG0sbyk7bT0kd25kLk1hdGgubWluKG0sZCk7az0kd25kLk1hdGgubWF4KGssbyk7az0kd25kLk1hdGgubWF4KGssZCk7bj0kd25kLk1hdGgubWluKG4scCk7bj0kd25kLk1hdGgubWluKG4sZSk7bD0kd25kLk1hdGgubWF4KGwscCk7bD0kd25kLk1hdGgubWF4KGwsZSk7Zm9yKGM9bmV3IGRNZCgoIXEuYSYmKHEuYT1uZXcgWFpkKEQ0LHEsNSkpLHEuYSkpO2MuZSE9Yy5pLmdjKCk7KXtiPVJEKGJNZChjKSwzNzcpO209JHduZC5NYXRoLm1pbihtLGIuYSk7az0kd25kLk1hdGgubWF4KGssYi5hKTtuPSR3bmQuTWF0aC5taW4obixiLmIpO2w9JHduZC5NYXRoLm1heChsLGIuYil9fX1JeGQoYSwodW1kKCksSWtkKSxrLW0pO0l4ZChhLEhrZCxsLW4pfVxuZnVuY3Rpb24gdU9jKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGw7Yy5VZygnTmV0d29yayBzaW1wbGV4IG5vZGUgcGxhY2VtZW50JywxKTthLmU9YjthLm49UkQobVFiKGIsKFl3YygpLFF3YykpLDMxMik7dE9jKGEpO2ZPYyhhKTtGRGIoRURiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuZS5iLDE2KSksbmV3IGlQYyksbmV3IGtQYyhhKSk7RkRiKENEYihFRGIoQ0RiKEVEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmUuYiwxNikpLG5ldyBaUGMpLG5ldyBfUGMpLG5ldyBiUWMpLG5ldyBkUWMpLG5ldyBnUGMoYSkpO2lmKEhlYihURChtUWIoYS5lLCh5Q2MoKSxnQmMpKSkpKXtnPWMuZWgoMSk7Zy5VZygnU3RyYWlnaHQgRWRnZXMgUHJlLVByb2Nlc3NpbmcnLDEpO3NPYyhhKTtnLlZnKCl9QUliKGEuZik7Zj1SRChtUWIoYixnQ2MpLDE3KS5hKmEuZi5hLmMubGVuZ3RoO2xKYih5SmIoekpiKENKYihhLmYpLGYpLGZhbHNlKSxjLmVoKDEpKTtpZihhLmQuYS5nYygpIT0wKXtnPWMuZWgoMSk7Zy5VZygnRmxleGlibGUgV2hlcmUgU3BhY2UgUHJvY2Vzc2luZycsMSk7aD1SRChMdmIoS0RiKEdEYihuZXcgU0RiKG51bGwsbmV3IFN3YihhLmYuYSwxNikpLG5ldyBtUGMpLG5ldyBJT2MpKSwxNykuYTtpPVJEKEx2YihKRGIoR0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuZi5hLDE2KSksbmV3IG9QYyksbmV3IE1PYykpLDE3KS5hO2o9aS1oO2s9ZUpiKG5ldyBnSmIsYS5mKTtsPWVKYihuZXcgZ0piLGEuZik7ckliKHVJYih0SWIoc0liKHZJYihuZXcgd0liLDIwMDAwKSxqKSxrKSxsKSk7RkRiKENEYihDRGIoX25iKGEuaSksbmV3IHFQYyksbmV3IHNQYyksbmV3IHVQYyhoLGssaixsKSk7Zm9yKGU9YS5kLmEuZWMoKS5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDIxOCk7ZC5nPTF9bEpiKHlKYih6SmIoQ0piKGEuZiksZiksZmFsc2UpLGcuZWgoMSkpO2cuVmcoKX1pZihIZWIoVEQobVFiKGIsZ0JjKSkpKXtnPWMuZWgoMSk7Zy5VZygnU3RyYWlnaHQgRWRnZXMgUG9zdC1Qcm9jZXNzaW5nJywxKTtyT2MoYSk7Zy5WZygpfWVPYyhhKTthLmU9bnVsbDthLmY9bnVsbDthLmk9bnVsbDthLmM9bnVsbDtha2IoYS5rKTthLmo9bnVsbDthLmE9bnVsbDthLm89bnVsbDthLmQuYS4kYigpO2MuVmcoKX1cbmZ1bmN0aW9uIFhHYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdDtjLlVnKCdEZXB0aCBmaXJzdCBtb2RlbCBvcmRlciBsYXllcmluZycsMSk7YS5kPWI7cT1uZXcgYm5iO2ZvcihwPW5ldyBBbmIoYS5kLmEpO3AuYTxwLmMuYy5sZW5ndGg7KXtuPVJEKHluYihwKSwxMCk7bi5rPT0ocjNiKCkscDNiKSYmKFpFYihxLmMsbiksdHJ1ZSl9eW9iKCk7X21iKHEsbmV3IGFIYyk7Zz10cnVlO2EuYj1uZXcgUjRiKGEuZCk7YS5hPW51bGw7Um1iKGEuZC5iLGEuYik7YS5iLnA9MDthLmM9MDthLmY9bmV3IFl1Yjtmb3Iobz1uZXcgQW5iKHEpO28uYTxvLmMuYy5sZW5ndGg7KXtuPVJEKHluYihvKSwxMCk7aWYoZyl7ZzNiKG4sYS5iKTtnPWZhbHNlfWVsc2V7aWYoVkdjKGEsbikpe209YS5jO209VUdjKG0sbik7ZD1tKzI7az1tLWEuYztpZihhLmYuYj09MCl7VEdjKGEsZCxuKX1lbHNle2lmKGs+MCl7Zm9yKHQ9U3ViKGEuZiwwKTt0LmIhPXQuZC5jOyl7cz1SRChldmIodCksMTApO3MucCs9bS1hLmV9V0djKGEpO1h1YihhLmYpO1RHYyhhLGQsbil9ZWxzZXtNdWIoYS5mLG4pO24ucD1kO2EuZT0kd25kLk1hdGgubWF4KGEuZSxkKTtmb3IoZj1uZXcgaXMoTXIoWjJiKG4pLmEuS2MoKSxuZXcgaXIpKTtncyhmKTspe2U9UkQoaHMoZiksMTgpO2lmKCFlLmMuaS5jJiZlLmMuaS5rPT0ocjNiKCksbjNiKSl7TXViKGEuZixlLmMuaSk7ZS5jLmkucD1kLTF9fWEuYz1kfX19ZWxzZXtXR2MoYSk7WHViKGEuZik7ZD0wO2lmKGdzKG5ldyBpcyhNcihaMmIobikuYS5LYygpLG5ldyBpcikpKSl7bT0wO209VUdjKG0sbik7ZD1tKzI7VEdjKGEsZCxuKX1lbHNle011YihhLmYsbik7bi5wPTA7YS5lPSR3bmQuTWF0aC5tYXgoYS5lLDApO2EuYj1SRChWbWIoYS5kLmIsMCksMzApO2EuYz0wfX19fWEuZi5iPT0wfHxXR2MoYSk7YS5kLmEuYy5sZW5ndGg9MDtyPW5ldyBibmI7Zm9yKGo9bmV3IEFuYihhLmQuYik7ai5hPGouYy5jLmxlbmd0aDspe2g9UkQoeW5iKGopLDMwKTtoLmEuYy5sZW5ndGg9PTAmJihaRWIoci5jLGgpLHRydWUpfUNlKGEuZC5iLHIpO2w9MDtmb3IoaT1uZXcgQW5iKGEuZC5iKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksMzApO2gucD1sOysrbH1jLlZnKCl9XG5mdW5jdGlvbiBFRWQoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEcsSCxJLEosSztEPW51bGw7Rz1iO0Y9cEVkKGEsREdkKGMpLEcpO2p5ZChGLHpEZChHLHVJZSkpO0g9UkQoQW8oYS5nLHREZChxQyhHLGJJZSkpKSwyNyk7bT1xQyhHLCdzb3VyY2VQb3J0Jyk7ZD1udWxsOyEhbSYmKGQ9dERkKG0pKTtJPVJEKEFvKGEuaixkKSwxMjMpO2lmKCFIKXtoPXVEZChHKTtvPVwiQW4gZWRnZSBtdXN0IGhhdmUgYSBzb3VyY2Ugbm9kZSAoZWRnZSBpZDogJ1wiK2g7cD1vK3pJZTt0aHJvdyBBZGIobmV3IENEZChwKSl9aWYoISFJJiYhSGIoTUNkKEkpLEgpKXtpPXpEZChHLHVJZSk7cT1cIlRoZSBzb3VyY2UgcG9ydCBvZiBhbiBlZGdlIG11c3QgYmUgYSBwb3J0IG9mIHRoZSBlZGdlJ3Mgc291cmNlIG5vZGUgKGVkZ2UgaWQ6ICdcIitpO3I9cSt6SWU7dGhyb3cgQWRiKG5ldyBDRGQocikpfUI9KCFGLmImJihGLmI9bmV3IFlpZShFNCxGLDQsNykpLEYuYik7Zj1udWxsO0k/KGY9SSk6KGY9SCk7V0dkKEIsZik7Sj1SRChBbyhhLmcsdERkKHFDKEcsQ0llKSkpLDI3KTtuPXFDKEcsJ3RhcmdldFBvcnQnKTtlPW51bGw7ISFuJiYoZT10RGQobikpO0s9UkQoQW8oYS5qLGUpLDEyMyk7aWYoIUope2w9dURkKEcpO3M9XCJBbiBlZGdlIG11c3QgaGF2ZSBhIHRhcmdldCBub2RlIChlZGdlIGlkOiAnXCIrbDt0PXMrekllO3Rocm93IEFkYihuZXcgQ0RkKHQpKX1pZighIUsmJiFIYihNQ2QoSyksSikpe2o9ekRkKEcsdUllKTt1PVwiVGhlIHRhcmdldCBwb3J0IG9mIGFuIGVkZ2UgbXVzdCBiZSBhIHBvcnQgb2YgdGhlIGVkZ2UncyB0YXJnZXQgbm9kZSAoZWRnZSBpZDogJ1wiK2o7dj11K3pJZTt0aHJvdyBBZGIobmV3IENEZCh2KSl9Qz0oIUYuYyYmKEYuYz1uZXcgWWllKEU0LEYsNSw4KSksRi5jKTtnPW51bGw7Sz8oZz1LKTooZz1KKTtXR2QoQyxnKTtpZigoIUYuYiYmKEYuYj1uZXcgWWllKEU0LEYsNCw3KSksRi5iKS5pPT0wfHwoIUYuYyYmKEYuYz1uZXcgWWllKEU0LEYsNSw4KSksRi5jKS5pPT0wKXtrPXpEZChHLHVJZSk7dz15SWUraztBPXcrekllO3Rocm93IEFkYihuZXcgQ0RkKEEpKX1HRWQoRyxGKTtGRWQoRyxGKTtEPUNFZChhLEcsRik7cmV0dXJuIER9XG5mdW5jdGlvbiBKVGIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEcsSCxJO249UkQobVFiKGEsKEpWYigpLEhWYikpLDI3KTt0PWx2ZTt1PWx2ZTtyPXF3ZTtzPXF3ZTtmb3Iodz1uZXcgQW5iKGEuZSk7dy5hPHcuYy5jLmxlbmd0aDspe3Y9UkQoeW5iKHcpLDE1Myk7Rj12LmQ7Rz12LmU7dD0kd25kLk1hdGgubWluKHQsRi5hLUcuYS8yKTt1PSR3bmQuTWF0aC5taW4odSxGLmItRy5iLzIpO3I9JHduZC5NYXRoLm1heChyLEYuYStHLmEvMik7cz0kd25kLk1hdGgubWF4KHMsRi5iK0cuYi8yKX1mb3IoYz1uZXcgQW5iKGEuYik7Yy5hPGMuYy5jLmxlbmd0aDspe2I9UkQoeW5iKGMpLDI1MCk7Rj1iLmQ7Rz1iLmU7dD0kd25kLk1hdGgubWluKHQsRi5hLUcuYS8yKTt1PSR3bmQuTWF0aC5taW4odSxGLmItRy5iLzIpO3I9JHduZC5NYXRoLm1heChyLEYuYStHLmEvMik7cz0kd25kLk1hdGgubWF4KHMsRi5iK0cuYi8yKX1EPVJEKEd4ZChuLCh5VmIoKSxoVmIpKSwxMDcpO0M9bmV3IHJqZChELmItdCxELmQtdSk7Zm9yKGo9bmV3IEFuYihhLmUpO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwxNTMpO0I9bVFiKGksSFZiKTtpZihaRChCLDIwNykpe3A9UkQoQiwyNyk7QT0kaWQobmV3IHNqZChpLmQpLEMpO0J5ZChwLEEuYS1wLmcvMixBLmItcC5mLzIpfX1mb3IoZj1uZXcgQW5iKGEuYyk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDI5MCk7bD1SRChtUWIoZSxIVmIpLDc0KTttPUlHZChsLHRydWUsdHJ1ZSk7SD1uZXcgc2pkKFpUYihlKSk7JGlkKEgsQyk7TnpkKG0sSC5hLEguYik7VW1iKGUuYSxuZXcgT1RiKEMsbSkpO2Q9bmV3IHNqZCgkVGIoZSkpOyRpZChkLEMpO0d6ZChtLGQuYSxkLmIpfWZvcihoPW5ldyBBbmIoYS5kKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksNDU0KTtvPVJEKG1RYihnLEhWYiksMTM1KTtxPSRpZChuZXcgc2pkKGcuZCksQyk7QnlkKG8scS5hLHEuYil9ST1yLXQrKEQuYitELmMpO2s9cy11KyhELmQrRC5hKTtIZWIoVEQoR3hkKG4sKHVtZCgpLG1sZCkpKSl8fEVzZChuLEksayxmYWxzZSx0cnVlKTtJeGQobixJa2QsSS0oRC5iK0QuYykpO0l4ZChuLEhrZCxrLShELmQrRC5hKSl9XG5mdW5jdGlvbiBGJGIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRDtsPUgkYihCJGIoYSwocXBkKCksYnBkKSksYik7bz1HJGIoQiRiKGEsY3BkKSxiKTt1PUckYihCJGIoYSxrcGQpLGIpO0I9SSRiKEIkYihhLG1wZCksYik7bT1JJGIoQiRiKGEsWm9kKSxiKTtzPUckYihCJGIoYSxqcGQpLGIpO3A9RyRiKEIkYihhLGRwZCksYik7dz1HJGIoQiRiKGEsbHBkKSxiKTt2PUckYihCJGIoYSwkb2QpLGIpO0M9SSRiKEIkYihhLGFwZCksYik7cj1HJGIoQiRiKGEsaHBkKSxiKTt0PUckYihCJGIoYSxncGQpLGIpO0E9RyRiKEIkYihhLF9vZCksYik7RD1JJGIoQiRiKGEsaXBkKSxiKTtuPUkkYihCJGIoYSxlcGQpLGIpO3E9RyRiKEIkYihhLGZwZCksYik7Yz1IaWQoY0QoV0MoaUUsMSksdnhlLDI4LDE1LFtzLmEsQi5hLHcuYSxELmFdKSk7ZD1IaWQoY0QoV0MoaUUsMSksdnhlLDI4LDE1LFtvLmEsbC5hLHUuYSxxLmFdKSk7ZT1yLmE7Zj1IaWQoY0QoV0MoaUUsMSksdnhlLDI4LDE1LFtwLmEsbS5hLHYuYSxuLmFdKSk7aj1IaWQoY0QoV0MoaUUsMSksdnhlLDI4LDE1LFtzLmIsby5iLHAuYix0LmJdKSk7aT1IaWQoY0QoV0MoaUUsMSksdnhlLDI4LDE1LFtCLmIsbC5iLG0uYixxLmJdKSk7az1DLmI7aD1IaWQoY0QoV0MoaUUsMSksdnhlLDI4LDE1LFt3LmIsdS5iLHYuYixBLmJdKSk7eCRiKEIkYihhLGJwZCksYytlLGorayk7eCRiKEIkYihhLGZwZCksYytlLGorayk7eCRiKEIkYihhLGNwZCksYytlLDApO3gkYihCJGIoYSxrcGQpLGMrZSxqK2sraSk7eCRiKEIkYihhLG1wZCksMCxqK2spO3gkYihCJGIoYSxab2QpLGMrZStkLGorayk7eCRiKEIkYihhLGRwZCksYytlK2QsMCk7eCRiKEIkYihhLGxwZCksMCxqK2sraSk7eCRiKEIkYihhLCRvZCksYytlK2QsaitrK2kpO3gkYihCJGIoYSxhcGQpLDAsaik7eCRiKEIkYihhLGhwZCksYywwKTt4JGIoQiRiKGEsX29kKSwwLGoraytpKTt4JGIoQiRiKGEsZXBkKSxjK2UrZCwwKTtnPW5ldyBwamQ7Zy5hPUhpZChjRChXQyhpRSwxKSx2eGUsMjgsMTUsW2MrZCtlK2YsQy5hLHQuYSxBLmFdKSk7Zy5iPUhpZChjRChXQyhpRSwxKSx2eGUsMjgsMTUsW2oraStrK2gsci5iLEQuYixuLmJdKSk7cmV0dXJuIGd9XG5mdW5jdGlvbiBFRmIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRDtzPW5ldyByamQob3hlLG94ZSk7Yj1uZXcgcmpkKHB4ZSxweGUpO2ZvcihCPW5ldyBBbmIoYSk7Qi5hPEIuYy5jLmxlbmd0aDspe0E9UkQoeW5iKEIpLDgpO3MuYT0kd25kLk1hdGgubWluKHMuYSxBLmEpO3MuYj0kd25kLk1hdGgubWluKHMuYixBLmIpO2IuYT0kd25kLk1hdGgubWF4KGIuYSxBLmEpO2IuYj0kd25kLk1hdGgubWF4KGIuYixBLmIpfW09bmV3IHJqZChiLmEtcy5hLGIuYi1zLmIpO2o9bmV3IHJqZChzLmEtNTAscy5iLW0uYS01MCk7az1uZXcgcmpkKHMuYS01MCxiLmIrbS5hKzUwKTtsPW5ldyByamQoYi5hK20uYi8yKzUwLHMuYittLmIvMik7bj1uZXcgWEZiKGosayxsKTt3PW5ldyBfc2I7Zj1uZXcgYm5iO2M9bmV3IGJuYjt3LmEuemMobix3KTtmb3IoRD1uZXcgQW5iKGEpO0QuYTxELmMuYy5sZW5ndGg7KXtDPVJEKHluYihEKSw4KTtmLmMubGVuZ3RoPTA7Zm9yKHY9dy5hLmVjKCkuS2MoKTt2Lk9iKCk7KXt0PVJEKHYuUGIoKSwzMTcpO2Q9dC5kO2JqZChkLHQuYSk7JHkoYmpkKHQuZCxDKSxiamQodC5kLHQuYSkpPDAmJihaRWIoZi5jLHQpLHRydWUpfWMuYy5sZW5ndGg9MDtmb3IodT1uZXcgQW5iKGYpO3UuYTx1LmMuYy5sZW5ndGg7KXt0PVJEKHluYih1KSwzMTcpO2ZvcihxPW5ldyBBbmIodC5lKTtxLmE8cS5jLmMubGVuZ3RoOyl7bz1SRCh5bmIocSksMTc3KTtnPXRydWU7Zm9yKGk9bmV3IEFuYihmKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksMzE3KTtoIT10JiYoRnZiKG8sVm1iKGguZSwwKSl8fEZ2YihvLFZtYihoLmUsMSkpfHxGdmIobyxWbWIoaC5lLDIpKSkmJihnPWZhbHNlKX1nJiYoWkViKGMuYyxvKSx0cnVlKX19VmUodyxmKTt4Z2IodyxuZXcgRkZiKTtmb3IocD1uZXcgQW5iKGMpO3AuYTxwLmMuYy5sZW5ndGg7KXtvPVJEKHluYihwKSwxNzcpO1lzYih3LG5ldyBYRmIoQyxvLmEsby5iKSl9fXI9bmV3IF9zYjt4Z2IodyxuZXcgSEZiKHIpKTtlPXIuYS5lYygpLktjKCk7d2hpbGUoZS5PYigpKXtvPVJEKGUuUGIoKSwxNzcpOyhXRmIobixvLmEpfHxXRmIobixvLmIpKSYmZS5RYigpfXhnYihyLG5ldyBKRmIpO3JldHVybiByfVxuZnVuY3Rpb24gcHZkKCl7cHZkPWdlYjtkdmQoKTtvdmQ9Y3ZkLmE7UkQoUUhkKHhZZChjdmQuYSksMCksMTkpO2l2ZD1jdmQuZjtSRChRSGQoeFlkKGN2ZC5mKSwwKSwxOSk7UkQoUUhkKHhZZChjdmQuZiksMSksMzUpO252ZD1jdmQubjtSRChRSGQoeFlkKGN2ZC5uKSwwKSwzNSk7UkQoUUhkKHhZZChjdmQubiksMSksMzUpO1JEKFFIZCh4WWQoY3ZkLm4pLDIpLDM1KTtSRChRSGQoeFlkKGN2ZC5uKSwzKSwzNSk7anZkPWN2ZC5nO1JEKFFIZCh4WWQoY3ZkLmcpLDApLDE5KTtSRChRSGQoeFlkKGN2ZC5nKSwxKSwzNSk7ZnZkPWN2ZC5jO1JEKFFIZCh4WWQoY3ZkLmMpLDApLDE5KTtSRChRSGQoeFlkKGN2ZC5jKSwxKSwxOSk7a3ZkPWN2ZC5pO1JEKFFIZCh4WWQoY3ZkLmkpLDApLDE5KTtSRChRSGQoeFlkKGN2ZC5pKSwxKSwxOSk7UkQoUUhkKHhZZChjdmQuaSksMiksMTkpO1JEKFFIZCh4WWQoY3ZkLmkpLDMpLDE5KTtSRChRSGQoeFlkKGN2ZC5pKSw0KSwzNSk7bHZkPWN2ZC5qO1JEKFFIZCh4WWQoY3ZkLmopLDApLDE5KTtndmQ9Y3ZkLmQ7UkQoUUhkKHhZZChjdmQuZCksMCksMTkpO1JEKFFIZCh4WWQoY3ZkLmQpLDEpLDE5KTtSRChRSGQoeFlkKGN2ZC5kKSwyKSwxOSk7UkQoUUhkKHhZZChjdmQuZCksMyksMTkpO1JEKFFIZCh4WWQoY3ZkLmQpLDQpLDM1KTtSRChRSGQoeFlkKGN2ZC5kKSw1KSwzNSk7UkQoUUhkKHhZZChjdmQuZCksNiksMzUpO1JEKFFIZCh4WWQoY3ZkLmQpLDcpLDM1KTtldmQ9Y3ZkLmI7UkQoUUhkKHhZZChjdmQuYiksMCksMzUpO1JEKFFIZCh4WWQoY3ZkLmIpLDEpLDM1KTtodmQ9Y3ZkLmU7UkQoUUhkKHhZZChjdmQuZSksMCksMzUpO1JEKFFIZCh4WWQoY3ZkLmUpLDEpLDM1KTtSRChRSGQoeFlkKGN2ZC5lKSwyKSwzNSk7UkQoUUhkKHhZZChjdmQuZSksMyksMzUpO1JEKFFIZCh4WWQoY3ZkLmUpLDQpLDE5KTtSRChRSGQoeFlkKGN2ZC5lKSw1KSwxOSk7UkQoUUhkKHhZZChjdmQuZSksNiksMTkpO1JEKFFIZCh4WWQoY3ZkLmUpLDcpLDE5KTtSRChRSGQoeFlkKGN2ZC5lKSw4KSwxOSk7UkQoUUhkKHhZZChjdmQuZSksOSksMTkpO1JEKFFIZCh4WWQoY3ZkLmUpLDEwKSwzNSk7bXZkPWN2ZC5rO1JEKFFIZCh4WWQoY3ZkLmspLDApLDM1KTtSRChRSGQoeFlkKGN2ZC5rKSwxKSwzNSl9XG5mdW5jdGlvbiBQcWUoYSl7dmFyIGIsYyxkLGUsZjtiPWEuYztzd2l0Y2goYil7Y2FzZSAxMTpyZXR1cm4gYS52bSgpO2Nhc2UgMTI6cmV0dXJuIGEueG0oKTtjYXNlIDE0OnJldHVybiBhLnptKCk7Y2FzZSAxNTpyZXR1cm4gYS5DbSgpO2Nhc2UgMTY6cmV0dXJuIGEuQW0oKTtjYXNlIDE3OnJldHVybiBhLkRtKCk7Y2FzZSAyMTpNcWUoYSk7cmV0dXJuIFZzZSgpLFZzZSgpLEVzZTtjYXNlIDEwOnN3aXRjaChhLmEpe2Nhc2UgNjU6cmV0dXJuIGEuaG0oKTtjYXNlIDkwOnJldHVybiBhLm1tKCk7Y2FzZSAxMjI6cmV0dXJuIGEudG0oKTtjYXNlIDk4OnJldHVybiBhLm5tKCk7Y2FzZSA2NjpyZXR1cm4gYS5pbSgpO2Nhc2UgNjA6cmV0dXJuIGEuc20oKTtjYXNlIDYyOnJldHVybiBhLnFtKCk7fX1mPU9xZShhKTtiPWEuYztzd2l0Y2goYil7Y2FzZSAzOnJldHVybiBhLkltKGYpO2Nhc2UgNDpyZXR1cm4gYS5HbShmKTtjYXNlIDU6cmV0dXJuIGEuSG0oZik7Y2FzZSAwOmlmKGEuYT09MTIzJiZhLmQ8YS5qKXtlPWEuZDtkPTA7Yz0tMTtpZigoYj1paGIoYS5pLGUrKykpPj00OCYmYjw9NTcpe2Q9Yi00ODt3aGlsZShlPGEuaiYmKGI9aWhiKGEuaSxlKyspKT49NDgmJmI8PTU3KXtkPWQqMTArYi00ODtpZihkPDApdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxDSmUpKSkpfX1lbHNle3Rocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCkseUplKSkpKX1jPWQ7aWYoYj09NDQpe2lmKGU+PWEuail7dGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxBSmUpKSkpfWVsc2UgaWYoKGI9aWhiKGEuaSxlKyspKT49NDgmJmI8PTU3KXtjPWItNDg7d2hpbGUoZTxhLmomJihiPWloYihhLmksZSsrKSk+PTQ4JiZiPD01Nyl7Yz1jKjEwK2ItNDg7aWYoYzwwKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksQ0plKSkpKX1pZihkPmMpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxCSmUpKSkpfWVsc2V7Yz0tMX19aWYoYiE9MTI1KXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksekplKSkpKTtpZihhLmJtKGUpKXtmPShWc2UoKSxWc2UoKSwrK1VzZSxuZXcgS3RlKDksZikpO2EuZD1lKzF9ZWxzZXtmPShWc2UoKSxWc2UoKSwrK1VzZSxuZXcgS3RlKDMsZikpO2EuZD1lfWYuT20oZCk7Zi5ObShjKTtNcWUoYSl9fXJldHVybiBmfVxuZnVuY3Rpb24gYlhiKGEpe3ZhciBiLGMsZCxlLGY7Yz1SRChtUWIoYSwoWXdjKCksa3djKSksMjEpO2I9dmZkKFlXYik7ZT1SRChtUWIoYSwoeUNjKCksSUFjKSksMzQ2KTtlPT0oRm5kKCksQ25kKSYmb2ZkKGIsWldiKTtIZWIoVEQobVFiKGEsR0FjKSkpP3BmZChiLChzWGIoKSxuWGIpLChoY2MoKSxaYmMpKTpwZmQoYiwoc1hiKCkscFhiKSwoaGNjKCksWmJjKSk7bVFiKGEsKHJpZCgpLHFpZCkpIT1udWxsJiZvZmQoYiwkV2IpOyhIZWIoVEQobVFiKGEsUEFjKSkpfHxIZWIoVEQobVFiKGEsSEFjKSkpKSYmbmZkKGIsKHNYYigpLHJYYiksKGhjYygpLGxiYykpO3N3aXRjaChSRChtUWIoYSxyQWMpLDg4KS5nKXtjYXNlIDI6Y2FzZSAzOmNhc2UgNDpuZmQocGZkKGIsKHNYYigpLG5YYiksKGhjYygpLG5iYykpLHJYYixtYmMpO31jLkhjKChvdmMoKSxmdmMpKSYmbmZkKHBmZChwZmQoYiwoc1hiKCksblhiKSwoaGNjKCksa2JjKSkscVhiLGliYyksclhiLGpiYyk7ZEUobVFiKGEsWkFjKSkhPT1kRSgoYUVjKCksJERjKSkmJnBmZChiLChzWGIoKSxwWGIpLChoY2MoKSxSYmMpKTtpZihjLkhjKG12Yykpe3BmZChiLChzWGIoKSxuWGIpLChoY2MoKSxYYmMpKTtwZmQoYixvWGIsVmJjKTtwZmQoYixwWGIsV2JjKX1kRShtUWIoYSxYemMpKSE9PWRFKCgkdWMoKSxZdWMpKSYmZEUobVFiKGEseUFjKSkhPT1kRSgoWW1kKCksVm1kKSkmJm5mZChiLChzWGIoKSxyWGIpLChoY2MoKSxBYmMpKTtIZWIoVEQobVFiKGEsS0FjKSkpJiZwZmQoYiwoc1hiKCkscFhiKSwoaGNjKCksemJjKSk7SGViKFREKG1RYihhLG5BYykpKSYmcGZkKGIsKHNYYigpLHBYYiksKGhjYygpLGRjYykpO2lmKGVYYihhKSl7ZEUobVFiKGEsSUFjKSk9PT1kRShDbmQpPyhkPVJEKG1RYihhLGdBYyksMjk5KSk6KGQ9UkQobVFiKGEsaEFjKSwyOTkpKTtmPWQ9PSh4dmMoKSx2dmMpPyhoY2MoKSxVYmMpOihoY2MoKSxnY2MpO3BmZChiLChzWGIoKSxxWGIpLGYpfXN3aXRjaChSRChtUWIoYSx2Q2MpLDM4OCkuZyl7Y2FzZSAxOnBmZChiLChzWGIoKSxxWGIpLChoY2MoKSxlY2MpKTticmVhaztjYXNlIDI6bmZkKHBmZChwZmQoYiwoc1hiKCkscFhiKSwoaGNjKCksZWJjKSkscVhiLGZiYyksclhiLGdiYyk7fWRFKG1RYihhLGNBYykpIT09ZEUoKGtFYygpLGhFYykpJiZwZmQoYiwoc1hiKCkscFhiKSwoaGNjKCksZmNjKSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBjcmMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQ7aWYoVWpiKGEuYSxiKSl7aWYoWnNiKFJEKFdqYihhLmEsYiksNDkpLGMpKXtyZXR1cm4gMX19ZWxzZXtaamIoYS5hLGIsbmV3IF9zYil9aWYoVWpiKGEuYSxjKSl7aWYoWnNiKFJEKFdqYihhLmEsYyksNDkpLGIpKXtyZXR1cm4gLTF9fWVsc2V7WmpiKGEuYSxjLG5ldyBfc2IpfWlmKFVqYihhLmUsYikpe2lmKFpzYihSRChXamIoYS5lLGIpLDQ5KSxjKSl7cmV0dXJuIC0xfX1lbHNle1pqYihhLmUsYixuZXcgX3NiKX1pZihVamIoYS5lLGMpKXtpZihac2IoUkQoV2piKGEuYSxjKSw0OSksYikpe3JldHVybiAxfX1lbHNle1pqYihhLmUsYyxuZXcgX3NiKX1pZihhLmM9PShrRWMoKSxpRWMpfHwhblFiKGIsKFl3YygpLHp3YykpfHwhblFiKGMsKFl3YygpLHp3YykpKXtsPW51bGw7Zm9yKGo9bmV3IEFuYihiLmopO2ouYTxqLmMuYy5sZW5ndGg7KXtoPVJEKHluYihqKSwxMik7aC5lLmMubGVuZ3RoPT0wfHxSRChWbWIoaC5lLDApLDE4KS5jLmkuYyE9Yi5jJiYobD1SRChWbWIoaC5lLDApLDE4KS5jKX1uPW51bGw7Zm9yKGk9bmV3IEFuYihjLmopO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxMik7aC5lLmMubGVuZ3RoPT0wfHxSRChWbWIoaC5lLDApLDE4KS5jLmkuYyE9Yy5jJiYobj1SRChWbWIoaC5lLDApLDE4KS5jKX1pZighIWwmJiEhbil7az1sLmk7bT1uLmk7aWYoISFrJiZrPT1tKXtmb3IocD1uZXcgQW5iKGsuaik7cC5hPHAuYy5jLmxlbmd0aDspe289UkQoeW5iKHApLDEyKTtpZihvPT1sKXtlcmMoYSxjLGIpO3JldHVybiAtMX1lbHNlIGlmKG89PW4pe2VyYyhhLGIsYyk7cmV0dXJuIDF9fXJldHVybiBoZ2IoZHJjKGEsYiksZHJjKGEsYykpfWZvcihyPWEuZCxzPTAsdD1yLmxlbmd0aDtzPHQ7KytzKXtxPXJbc107aWYocT09ayl7ZXJjKGEsYyxiKTtyZXR1cm4gLTF9ZWxzZSBpZihxPT1tKXtlcmMoYSxiLGMpO3JldHVybiAxfX19aWYoIW5RYihiLChZd2MoKSx6d2MpKXx8IW5RYihjLHp3Yykpe2U9ZHJjKGEsYik7Zz1kcmMoYSxjKTtlPmc/ZXJjKGEsYixjKTplcmMoYSxjLGIpO3JldHVybiBlPGc/LTE6ZT5nPzE6MH19ZD1SRChtUWIoYiwoWXdjKCksendjKSksMTcpLmE7Zj1SRChtUWIoYyx6d2MpLDE3KS5hO2Q+Zj9lcmMoYSxiLGMpOmVyYyhhLGMsYik7cmV0dXJuIGQ8Zj8tMTpkPmY/MTowfVxuZnVuY3Rpb24gdUFkKGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyO2lmKGQ9PW51bGwpe3JldHVybiBudWxsfWlmKGIuYSE9Yy5qaygpKXt0aHJvdyBBZGIobmV3IGFnYihWSGUrYy54ZSgpK1dIZSkpfWlmKFpEKGMsNDY5KSl7cj16MWQoUkQoYyw2ODUpLGQpO2lmKCFyKXt0aHJvdyBBZGIobmV3IGFnYihYSGUrZCtcIicgaXMgbm90IGEgdmFsaWQgZW51bWVyYXRvciBvZiAnXCIrYy54ZSgpK1wiJ1wiKSl9cmV0dXJuIHJ9c3dpdGNoKE9lZSgobGtlKCksamtlKSxjKS5ObCgpKXtjYXNlIDI6e2Q9bnVlKGQsZmFsc2UpO2JyZWFrfWNhc2UgMzp7ZD1udWUoZCx0cnVlKTticmVha319ZT1PZWUoamtlLGMpLkpsKCk7aWYoZSl7cmV0dXJuIGUuamsoKS53aSgpLnRpKGUsZCl9bj1PZWUoamtlLGMpLkxsKCk7aWYobil7cj1uZXcgYm5iO2ZvcihrPXhBZChkKSxsPTAsbT1rLmxlbmd0aDtsPG07KytsKXtqPWtbbF07Um1iKHIsbi5qaygpLndpKCkudGkobixqKSl9cmV0dXJuIHJ9cT1PZWUoamtlLGMpLk1sKCk7aWYoIXEuZGMoKSl7Zm9yKHA9cS5LYygpO3AuT2IoKTspe289UkQocC5QYigpLDE1Nik7dHJ5e3I9by5qaygpLndpKCkudGkobyxkKTtpZihyIT1udWxsKXtyZXR1cm4gcn19Y2F0Y2goYSl7YT16ZGIoYSk7aWYoIVpEKGEsNjMpKXRocm93IEFkYihhKX19dGhyb3cgQWRiKG5ldyBhZ2IoWEhlK2QrXCInIGRvZXMgbm90IG1hdGNoIGFueSBtZW1iZXIgdHlwZXMgb2YgdGhlIHVuaW9uIGRhdGF0eXBlICdcIitjLnhlKCkrXCInXCIpKX1SRChjLDg0Nykub2soKTtmPVFqZShjLmtrKCkpO2lmKCFmKXJldHVybiBudWxsO2lmKGY9PVNJKXtoPTA7dHJ5e2g9T2ViKGQscXdlLGx2ZSkmQndlfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMTMwKSl7Zz1BaGIoZCk7aD1nWzBdfWVsc2UgdGhyb3cgQWRiKGEpfXJldHVybiBoZmIoaCl9aWYoZj09cUspe2ZvcihpPTA7aTxuQWQubGVuZ3RoOysraSl7dHJ5e3JldHVybiBiMmQobkFkW2ldLGQpfWNhdGNoKGEpe2E9emRiKGEpO2lmKCFaRChhLDMzKSl0aHJvdyBBZGIoYSl9fXRocm93IEFkYihuZXcgYWdiKFhIZStkK1wiJyBpcyBub3QgYSBkYXRlIGZvcm1hdHRlZCBzdHJpbmcgb2YgdGhlIGZvcm0geXl5eS1NTS1kZCdUJ0hIOm1tOnNzJy4nU1NTWiBvciBhIHZhbGlkIHN1YnNldCB0aGVyZW9mXCIpKX10aHJvdyBBZGIobmV3IGFnYihYSGUrZCtcIicgaXMgaW52YWxpZC4gXCIpKX1cbmZ1bmN0aW9uIHokYigpe3okYj1nZWI7eSRiPW5ldyBUcDtSYyh5JGIsKHFwZCgpLGJwZCksZnBkKTtSYyh5JGIsbXBkLGZwZCk7UmMoeSRiLG1wZCxpcGQpO1JjKHkkYixab2QsZXBkKTtSYyh5JGIsWm9kLGZwZCk7UmMoeSRiLGNwZCxmcGQpO1JjKHkkYixjcGQsZ3BkKTtSYyh5JGIsa3BkLF9vZCk7UmMoeSRiLGtwZCxmcGQpO1JjKHkkYixocGQsYXBkKTtSYyh5JGIsaHBkLGZwZCk7UmMoeSRiLGhwZCxncGQpO1JjKHkkYixocGQsX29kKTtSYyh5JGIsYXBkLGhwZCk7UmMoeSRiLGFwZCxpcGQpO1JjKHkkYixhcGQsZXBkKTtSYyh5JGIsYXBkLGZwZCk7UmMoeSRiLGpwZCxqcGQpO1JjKHkkYixqcGQsZ3BkKTtSYyh5JGIsanBkLGlwZCk7UmMoeSRiLGRwZCxkcGQpO1JjKHkkYixkcGQsZ3BkKTtSYyh5JGIsZHBkLGVwZCk7UmMoeSRiLGxwZCxscGQpO1JjKHkkYixscGQsX29kKTtSYyh5JGIsbHBkLGlwZCk7UmMoeSRiLCRvZCwkb2QpO1JjKHkkYiwkb2QsX29kKTtSYyh5JGIsJG9kLGVwZCk7UmMoeSRiLGdwZCxjcGQpO1JjKHkkYixncGQsaHBkKTtSYyh5JGIsZ3BkLGpwZCk7UmMoeSRiLGdwZCxkcGQpO1JjKHkkYixncGQsZnBkKTtSYyh5JGIsZ3BkLGdwZCk7UmMoeSRiLGdwZCxpcGQpO1JjKHkkYixncGQsZXBkKTtSYyh5JGIsX29kLGtwZCk7UmMoeSRiLF9vZCxocGQpO1JjKHkkYixfb2QsbHBkKTtSYyh5JGIsX29kLCRvZCk7UmMoeSRiLF9vZCxfb2QpO1JjKHkkYixfb2QsaXBkKTtSYyh5JGIsX29kLGVwZCk7UmMoeSRiLF9vZCxmcGQpO1JjKHkkYixpcGQsbXBkKTtSYyh5JGIsaXBkLGFwZCk7UmMoeSRiLGlwZCxqcGQpO1JjKHkkYixpcGQsbHBkKTtSYyh5JGIsaXBkLGdwZCk7UmMoeSRiLGlwZCxfb2QpO1JjKHkkYixpcGQsaXBkKTtSYyh5JGIsaXBkLGZwZCk7UmMoeSRiLGVwZCxab2QpO1JjKHkkYixlcGQsYXBkKTtSYyh5JGIsZXBkLGRwZCk7UmMoeSRiLGVwZCwkb2QpO1JjKHkkYixlcGQsZ3BkKTtSYyh5JGIsZXBkLF9vZCk7UmMoeSRiLGVwZCxlcGQpO1JjKHkkYixlcGQsZnBkKTtSYyh5JGIsZnBkLGJwZCk7UmMoeSRiLGZwZCxtcGQpO1JjKHkkYixmcGQsWm9kKTtSYyh5JGIsZnBkLGNwZCk7UmMoeSRiLGZwZCxrcGQpO1JjKHkkYixmcGQsaHBkKTtSYyh5JGIsZnBkLGFwZCk7UmMoeSRiLGZwZCxncGQpO1JjKHkkYixmcGQsX29kKTtSYyh5JGIsZnBkLGlwZCk7UmMoeSRiLGZwZCxlcGQpO1JjKHkkYixmcGQsZnBkKX1cbmZ1bmN0aW9uIF8kYihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEI7YS5kPW5ldyByamQob3hlLG94ZSk7YS5jPW5ldyByamQocHhlLHB4ZSk7Zm9yKG09Yi5LYygpO20uT2IoKTspe2s9UkQobS5QYigpLDM2KTtmb3IodD1uZXcgQW5iKGsuYSk7dC5hPHQuYy5jLmxlbmd0aDspe3M9UkQoeW5iKHQpLDEwKTthLmQuYT0kd25kLk1hdGgubWluKGEuZC5hLHMubi5hLXMuZC5iKTthLmQuYj0kd25kLk1hdGgubWluKGEuZC5iLHMubi5iLXMuZC5kKTthLmMuYT0kd25kLk1hdGgubWF4KGEuYy5hLHMubi5hK3Muby5hK3MuZC5jKTthLmMuYj0kd25kLk1hdGgubWF4KGEuYy5iLHMubi5iK3Muby5iK3MuZC5hKX19aD1uZXcgcV9iO2ZvcihsPWIuS2MoKTtsLk9iKCk7KXtrPVJEKGwuUGIoKSwzNik7ZD1pX2IoYSxrKTtSbWIoaC5hLGQpO2QuYT1kLmF8IVJEKG1RYihkLmMsKFl3YygpLGV3YykpLDIxKS5kYygpfWEuYj0oTlhiKCksQj1uZXcgWFhiLEIuZj1uZXcgRVhiKGMpLEIuYj1EWGIoQi5mLGgpLEIpO1JYYigobz1hLmIsbmV3IE9xZCxvKSk7YS5lPW5ldyBwamQ7YS5hPWEuYi5mLmU7Zm9yKGc9bmV3IEFuYihoLmEpO2cuYTxnLmMuYy5sZW5ndGg7KXtlPVJEKHluYihnKSw4NTUpO3U9U1hiKGEuYixlKTtvMmIoZS5jLHUuYSx1LmIpO2ZvcihxPW5ldyBBbmIoZS5jLmEpO3EuYTxxLmMuYy5sZW5ndGg7KXtwPVJEKHluYihxKSwxMCk7aWYocC5rPT0ocjNiKCksbTNiKSl7cj1kX2IoYSxwLm4sUkQobVFiKHAsKFl3YygpLGh3YykpLDY0KSk7JGlkKGhqZChwLm4pLHIpfX19Zm9yKGY9bmV3IEFuYihoLmEpO2YuYTxmLmMuYy5sZW5ndGg7KXtlPVJEKHluYihmKSw4NTUpO2ZvcihqPW5ldyBBbmIob19iKGUpKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksMTgpO0E9bmV3IEZqZChpLmEpO2h1KEEsMCxLM2IoaS5jKSk7TXViKEEsSzNiKGkuZCkpO249bnVsbDtmb3Iodz1TdWIoQSwwKTt3LmIhPXcuZC5jOyl7dj1SRChldmIodyksOCk7aWYoIW4pe249djtjb250aW51ZX1pZihfeShuLmEsdi5hKSl7YS5lLmE9JHduZC5NYXRoLm1pbihhLmUuYSxuLmEpO2EuYS5hPSR3bmQuTWF0aC5tYXgoYS5hLmEsbi5hKX1lbHNlIGlmKF95KG4uYix2LmIpKXthLmUuYj0kd25kLk1hdGgubWluKGEuZS5iLG4uYik7YS5hLmI9JHduZC5NYXRoLm1heChhLmEuYixuLmIpfW49dn19fWZqZChhLmUpOyRpZChhLmEsYS5lKX1cbmZ1bmN0aW9uIHZpYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGo7Yz0wO2c9MDtmPWIubGVuZ3RoO2g9bnVsbDtqPW5ldyBjaWI7aWYoZzxmJiYoQkZiKGcsYi5sZW5ndGgpLGIuY2hhckNvZGVBdChnKT09NDMpKXsrK2c7KytjO2lmKGc8ZiYmKEJGYihnLGIubGVuZ3RoKSxiLmNoYXJDb2RlQXQoZyk9PTQzfHwoQkZiKGcsYi5sZW5ndGgpLGIuY2hhckNvZGVBdChnKT09NDUpKSl7dGhyb3cgQWRiKG5ldyBWZ2IobnhlK2IrJ1wiJykpfX13aGlsZShnPGYmJihCRmIoZyxiLmxlbmd0aCksYi5jaGFyQ29kZUF0KGcpIT00NikmJihCRmIoZyxiLmxlbmd0aCksYi5jaGFyQ29kZUF0KGcpIT0xMDEpJiYoQkZiKGcsYi5sZW5ndGgpLGIuY2hhckNvZGVBdChnKSE9NjkpKXsrK2d9ai5hKz0nJyt6aGIoYj09bnVsbD92dmU6KHVGYihiKSxiKSxjLGcpO2lmKGc8ZiYmKEJGYihnLGIubGVuZ3RoKSxiLmNoYXJDb2RlQXQoZyk9PTQ2KSl7KytnO2M9Zzt3aGlsZShnPGYmJihCRmIoZyxiLmxlbmd0aCksYi5jaGFyQ29kZUF0KGcpIT0xMDEpJiYoQkZiKGcsYi5sZW5ndGgpLGIuY2hhckNvZGVBdChnKSE9NjkpKXsrK2d9YS5lPWctYztqLmErPScnK3poYihiPT1udWxsP3Z2ZToodUZiKGIpLGIpLGMsZyl9ZWxzZXthLmU9MH1pZihnPGYmJihCRmIoZyxiLmxlbmd0aCksYi5jaGFyQ29kZUF0KGcpPT0xMDF8fChCRmIoZyxiLmxlbmd0aCksYi5jaGFyQ29kZUF0KGcpPT02OSkpKXsrK2c7Yz1nO2lmKGc8ZiYmKEJGYihnLGIubGVuZ3RoKSxiLmNoYXJDb2RlQXQoZyk9PTQzKSl7KytnO2c8ZiYmKEJGYihnLGIubGVuZ3RoKSxiLmNoYXJDb2RlQXQoZykhPTQ1KSYmKytjfWg9KEFGYihjLGYsYi5sZW5ndGgpLGIuc3Vic3RyKGMsZi1jKSk7YS5lPWEuZS1PZWIoaCxxd2UsbHZlKTtpZihhLmUhPWVFKGEuZSkpe3Rocm93IEFkYihuZXcgVmdiKCdTY2FsZSBvdXQgb2YgcmFuZ2UuJykpfX1pPWouYTtpZihpLmxlbmd0aDwxNil7YS5mPShzaWI9PW51bGwmJihzaWI9bmV3IFJlZ0V4cCgnXlsrLV0/XFxcXGQqJCcsJ2knKSksc2liLnRlc3QoaSk/cGFyc2VJbnQoaSwxMCk6TmFOKTtpZihpc05hTihhLmYpKXt0aHJvdyBBZGIobmV3IFZnYihueGUrYisnXCInKSl9YS5hPUNpYihhLmYpfWVsc2V7d2liKGEsbmV3IGVqYihpKSl9YS5kPWouYS5sZW5ndGg7Zm9yKGU9MDtlPGouYS5sZW5ndGg7KytlKXtkPWloYihqLmEsZSk7aWYoZCE9NDUmJmQhPTQ4KXticmVha30tLWEuZH1hLmQ9PTAmJihhLmQ9MSl9XG5mdW5jdGlvbiBXYWUoYSl7X0FkKGEuYixBS2UsY0QoV0MocUosMSksTnZlLDIsNixbQ0tlLCdDb25zaXN0ZW50VHJhbnNpZW50J10pKTtfQWQoYS5hLEFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtDS2UsJ1dlbGxGb3JtZWRTb3VyY2VVUkknXSkpO19BZChhLm8sQUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0NLZSwnSW50ZXJmYWNlSXNBYnN0cmFjdCBBdE1vc3RPbmVJRCBVbmlxdWVGZWF0dXJlTmFtZXMgVW5pcXVlT3BlcmF0aW9uU2lnbmF0dXJlcyBOb0NpcmN1bGFyU3VwZXJUeXBlcyBXZWxsRm9ybWVkTWFwRW50cnlDbGFzcyBDb25zaXN0ZW50U3VwZXJUeXBlcyBEaXNqb2ludEZlYXR1cmVBbmRPcGVyYXRpb25TaWduYXR1cmVzJ10pKTtfQWQoYS5wLEFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtDS2UsJ1dlbGxGb3JtZWRJbnN0YW5jZVR5cGVOYW1lIFVuaXF1ZVR5cGVQYXJhbWV0ZXJOYW1lcyddKSk7X0FkKGEudixBS2UsY0QoV0MocUosMSksTnZlLDIsNixbQ0tlLCdVbmlxdWVFbnVtZXJhdG9yTmFtZXMgVW5pcXVlRW51bWVyYXRvckxpdGVyYWxzJ10pKTtfQWQoYS5SLEFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtDS2UsJ1dlbGxGb3JtZWROYW1lJ10pKTtfQWQoYS5ULEFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtDS2UsJ1VuaXF1ZVBhcmFtZXRlck5hbWVzIFVuaXF1ZVR5cGVQYXJhbWV0ZXJOYW1lcyBOb1JlcGVhdGluZ1ZvaWQnXSkpO19BZChhLlUsQUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0NLZSwnV2VsbEZvcm1lZE5zVVJJIFdlbGxGb3JtZWROc1ByZWZpeCBVbmlxdWVTdWJwYWNrYWdlTmFtZXMgVW5pcXVlQ2xhc3NpZmllck5hbWVzIFVuaXF1ZU5zVVJJcyddKSk7X0FkKGEuVyxBS2UsY0QoV0MocUosMSksTnZlLDIsNixbQ0tlLCdDb25zaXN0ZW50T3Bwb3NpdGUgU2luZ2xlQ29udGFpbmVyIENvbnNpc3RlbnRLZXlzIENvbnNpc3RlbnRVbmlxdWUgQ29uc2lzdGVudENvbnRhaW5lciddKSk7X0FkKGEuYmIsQUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0NLZSwnVmFsaWREZWZhdWx0VmFsdWVMaXRlcmFsJ10pKTtfQWQoYS5lYixBS2UsY0QoV0MocUosMSksTnZlLDIsNixbQ0tlLCdWYWxpZExvd2VyQm91bmQgVmFsaWRVcHBlckJvdW5kIENvbnNpc3RlbnRCb3VuZHMgVmFsaWRUeXBlJ10pKTtfQWQoYS5ILEFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtDS2UsJ0NvbnNpc3RlbnRUeXBlIENvbnNpc3RlbnRCb3VuZHMgQ29uc2lzdGVudEFyZ3VtZW50cyddKSl9XG5mdW5jdGlvbiBTN2IoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEM7aWYoYi5kYygpKXtyZXR1cm59ZT1uZXcgRWpkO2g9Yz9jOlJEKGIuWGIoMCksMTgpO289aC5jO0hVYygpO209by5pLms7aWYoIShtPT0ocjNiKCkscDNiKXx8bT09cTNifHxtPT1tM2J8fG09PWwzYikpe3Rocm93IEFkYihuZXcgYWdiKCdUaGUgdGFyZ2V0IG5vZGUgb2YgdGhlIGVkZ2UgbXVzdCBiZSBhIG5vcm1hbCBub2RlIG9yIGEgbm9ydGhTb3V0aFBvcnQuJykpfU91YihlLHhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtvLmkubixvLm4sby5hXSkpKTtpZigocXBkKCksaHBkKS5IYyhvLmopKXtxPUtmYihVRChtUWIobywoWXdjKCksU3djKSkpKTtsPW5ldyByamQoeGpkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW28uaS5uLG8ubixvLmFdKSkuYSxxKTtQdWIoZSxsLGUuYy5iLGUuYyl9az1udWxsO2Q9ZmFsc2U7aT1iLktjKCk7d2hpbGUoaS5PYigpKXtnPVJEKGkuUGIoKSwxOCk7Zj1nLmE7aWYoZi5iIT0wKXtpZihkKXtqPWlqZCgkaWQoaywoc0ZiKGYuYiE9MCksUkQoZi5hLmEuYyw4KSkpLDAuNSk7UHViKGUsaixlLmMuYixlLmMpO2Q9ZmFsc2V9ZWxzZXtkPXRydWV9az1hamQoKHNGYihmLmIhPTApLFJEKGYuYy5iLmMsOCkpKTt5ZShlLGYpO1h1YihmKX19cD1oLmQ7aWYoaHBkLkhjKHAuaikpe3E9S2ZiKFVEKG1RYihwLChZd2MoKSxTd2MpKSkpO2w9bmV3IHJqZCh4amQoY0QoV0MobDMsMSksTnZlLDgsMCxbcC5pLm4scC5uLHAuYV0pKS5hLHEpO1B1YihlLGwsZS5jLmIsZS5jKX1PdWIoZSx4amQoY0QoV0MobDMsMSksTnZlLDgsMCxbcC5pLm4scC5uLHAuYV0pKSk7YS5kPT0obEZjKCksaUZjKSYmKHI9KHNGYihlLmIhPTApLFJEKGUuYS5hLmMsOCkpLHM9UkQoanUoZSwxKSw4KSx0PW5ldyBxamQoQlZjKG8uaikpLHQuYSo9NSx0LmIqPTUsdT1vamQobmV3IHJqZChzLmEscy5iKSxyKSx2PW5ldyByamQoUjdiKHQuYSx1LmEpLFI3Yih0LmIsdS5iKSksJGlkKHYsciksdz1TdWIoZSwxKSxjdmIodyx2KSxBPShzRmIoZS5iIT0wKSxSRChlLmMuYi5jLDgpKSxCPVJEKGp1KGUsZS5iLTIpLDgpLHQ9bmV3IHFqZChCVmMocC5qKSksdC5hKj01LHQuYio9NSx1PW9qZChuZXcgcmpkKEIuYSxCLmIpLEEpLEM9bmV3IHJqZChSN2IodC5hLHUuYSksUjdiKHQuYix1LmIpKSwkaWQoQyxBKSxodShlLGUuYi0xLEMpLHVuZGVmaW5lZCk7bj1uZXcgd1VjKGUpO3llKGguYSxzVWMobikpfVxuZnVuY3Rpb24gY3VkKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQsRixHLEgsSSxKLEssTCxNLE4sTyxQO3Q9UkQoUUhkKCghYS5iJiYoYS5iPW5ldyBZaWUoRTQsYSw0LDcpKSxhLmIpLDApLDg0KTt2PXQubmgoKTt3PXQub2goKTt1PXQubWgoKS8yO3A9dC5saCgpLzI7aWYoWkQodCwxOTMpKXtzPVJEKHQsMTIzKTt2Kz1NQ2QocykuaTt2Kz1NQ2QocykuaX12Kz11O3crPXA7Rj1SRChRSGQoKCFhLmImJihhLmI9bmV3IFlpZShFNCxhLDQsNykpLGEuYiksMCksODQpO0g9Ri5uaCgpO0k9Ri5vaCgpO0c9Ri5taCgpLzI7QT1GLmxoKCkvMjtpZihaRChGLDE5Mykpe0Q9UkQoRiwxMjMpO0grPU1DZChEKS5pO0grPU1DZChEKS5pfUgrPUc7SSs9QTtpZigoIWEuYSYmKGEuYT1uZXcgQzVkKEY0LGEsNiw2KSksYS5hKS5pPT0wKXtoPShidmQoKSxqPW5ldyBSemQsaik7V0dkKCghYS5hJiYoYS5hPW5ldyBDNWQoRjQsYSw2LDYpKSxhLmEpLGgpfWVsc2UgaWYoKCFhLmEmJihhLmE9bmV3IEM1ZChGNCxhLDYsNikpLGEuYSkuaT4xKXtvPW5ldyBtTWQoKCFhLmEmJihhLmE9bmV3IEM1ZChGNCxhLDYsNikpLGEuYSkpO3doaWxlKG8uZSE9by5pLmdjKCkpe2NNZChvKX19Zz1SRChRSGQoKCFhLmEmJihhLmE9bmV3IEM1ZChGNCxhLDYsNikpLGEuYSksMCksMTY2KTtxPUg7SD52K3U/KHE9dit1KTpIPHYtdSYmKHE9di11KTtyPUk7ST53K3A/KHI9dytwKTpJPHctcCYmKHI9dy1wKTtxPnYtdSYmcTx2K3UmJnI+dy1wJiZyPHcrcCYmKHE9dit1KTtPemQoZyxxKTtQemQoZyxyKTtCPXY7dj5IK0c/KEI9SCtHKTp2PEgtRyYmKEI9SC1HKTtDPXc7dz5JK0E/KEM9SStBKTp3PEktQSYmKEM9SS1BKTtCPkgtRyYmQjxIK0cmJkM+SS1BJiZDPEkrQSYmKEM9SStBKTtIemQoZyxCKTtJemQoZyxDKTtzTGQoKCFnLmEmJihnLmE9bmV3IFhaZChENCxnLDUpKSxnLmEpKTtmPUp3YihiLDUpO3Q9PUYmJisrZjtMPUItcTtPPUMtcjtKPSR3bmQuTWF0aC5zcXJ0KEwqTCtPKk8pO2w9SiowLjIwMDAwMDAwMjk4MDIzMjI0O009TC8oZisxKTtQPU8vKGYrMSk7Sz1xO049cjtmb3Ioaz0wO2s8ZjtrKyspe0srPU07Tis9UDttPUsrS3diKGIsMjQpKk54ZSpsLWwvMjttPDA/KG09MSk6bT5jJiYobT1jLTEpO249TitLd2IoYiwyNCkqTnhlKmwtbC8yO248MD8obj0xKTpuPmQmJihuPWQtMSk7ZT0oYnZkKCksaT1uZXcgWHhkLGkpO1Z4ZChlLG0pO1d4ZChlLG4pO1dHZCgoIWcuYSYmKGcuYT1uZXcgWFpkKEQ0LGcsNSkpLGcuYSksZSl9fVxuZnVuY3Rpb24gWTdjKGEpe0NnZChhLG5ldyBQZmQoJGZkKFhmZChaZmQoWWZkKG5ldyBhZ2QsJEZlKSwnRUxLIFJlY3RhbmdsZSBQYWNraW5nJyksJ0FsZ29yaXRobSBmb3IgcGFja2luZyBvZiB1bmNvbm5lY3RlZCBib3hlcywgaS5lLiBncmFwaHMgd2l0aG91dCBlZGdlcy4gVGhlIGdpdmVuIG9yZGVyIG9mIHRoZSBib3hlcyBpcyBhbHdheXMgcHJlc2VydmVkIGFuZCB0aGUgbWFpbiByZWFkaW5nIGRpcmVjdGlvbiBvZiB0aGUgYm94ZXMgaXMgbGVmdCB0byByaWdodC4gVGhlIGFsZ29yaXRobSBpcyBkaXZpZGVkIGludG8gdHdvIHBoYXNlcy4gT25lIHBoYXNlIGFwcHJveGltYXRlcyB0aGUgd2lkdGggaW4gd2hpY2ggdGhlIHJlY3RhbmdsZXMgY2FuIGJlIHBsYWNlZC4gVGhlIG5leHQgcGhhc2UgcGxhY2VzIHRoZSByZWN0YW5nbGVzIGluIHJvd3MgdXNpbmcgdGhlIHByZXZpb3VzbHkgY2FsY3VsYXRlZCB3aWR0aCBhcyBib3VuZGluZyB3aWR0aCBhbmQgYnVuZGxlcyByZWN0YW5nbGVzIHdpdGggYSBzaW1pbGFyIGhlaWdodCBpbiBibG9ja3MuIEEgY29tcGFjdGlvbiBzdGVwIHJlZHVjZXMgdGhlIHNpemUgb2YgdGhlIGRyYXdpbmcuIEZpbmFsbHksIHRoZSByZWN0YW5nbGVzIGFyZSBleHBhbmRlZCB0byBmaWxsIHRoZWlyIGJvdW5kaW5nIGJveCBhbmQgZWxpbWluYXRlIGVtcHR5IHVudXNlZCBzcGFjZXMuJyksbmV3IF83YykpKTtBZ2QoYSwkRmUsRHplLDEuMyk7QWdkKGEsJEZlLGhBZSwoR2ViKCksZmFsc2UpKTtBZ2QoYSwkRmUsRXplLE83Yyk7QWdkKGEsJEZlLF96ZSwxNSk7QWdkKGEsJEZlLFlEZSxpR2QoeTdjKSk7QWdkKGEsJEZlLGpBZSxpR2QoRjdjKSk7QWdkKGEsJEZlLENBZSxpR2QoSDdjKSk7QWdkKGEsJEZlLGlBZSxpR2QoSTdjKSk7QWdkKGEsJEZlLGtBZSxpR2QoRTdjKSk7QWdkKGEsJEZlLGdBZSxpR2QoSjdjKSk7QWdkKGEsJEZlLGxBZSxpR2QoUDdjKSk7QWdkKGEsJEZlLFJGZSxpR2QoVTdjKSk7QWdkKGEsJEZlLFNGZSxpR2QoVDdjKSk7QWdkKGEsJEZlLFFGZSxpR2QoVzdjKSk7QWdkKGEsJEZlLFBGZSxpR2QoVjdjKSk7QWdkKGEsJEZlLFRGZSxpR2QoTTdjKSk7QWdkKGEsJEZlLFVGZSxpR2QoTDdjKSk7QWdkKGEsJEZlLFZGZSxpR2QoSzdjKSk7QWdkKGEsJEZlLFdGZSxpR2QoUzdjKSk7QWdkKGEsJEZlLGRBZSxpR2QoQjdjKSk7QWdkKGEsJEZlLGlFZSxpR2QoQzdjKSk7QWdkKGEsJEZlLE5GZSxpR2QoQTdjKSk7QWdkKGEsJEZlLE1GZSxpR2QoejdjKSk7QWdkKGEsJEZlLE9GZSxpR2QoRDdjKSk7QWdkKGEsJEZlLExGZSxpR2QoUjdjKSl9XG5mdW5jdGlvbiBBamIoYSxiKXt4amIoKTt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEcsSDtCPWEuZTtvPWEuZDtlPWEuYTtpZihCPT0wKXtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiAnMCc7Y2FzZSAxOnJldHVybiB6eGU7Y2FzZSAyOnJldHVybiAnMC4wMCc7Y2FzZSAzOnJldHVybiAnMC4wMDAnO2Nhc2UgNDpyZXR1cm4gJzAuMDAwMCc7Y2FzZSA1OnJldHVybiAnMC4wMDAwMCc7Y2FzZSA2OnJldHVybiAnMC4wMDAwMDAnO2RlZmF1bHQ6dz1uZXcgYmliO2I8MD8ody5hKz0nMEUrJyx3KToody5hKz0nMEUnLHcpO3cuYSs9LWI7cmV0dXJuIHcuYTt9fXQ9byoxMCsxKzc7dT0kQyhoRSx6d2UsMjgsdCsxLDE1LDEpO2M9dDtpZihvPT0xKXtoPWVbMF07aWYoaDwwKXtIPUNkYihoLHl4ZSk7ZG97cD1IO0g9RmRiKEgsMTApO3VbLS1jXT00OCtZZGIoVmRiKHAsTmRiKEgsMTApKSkmQndlfXdoaWxlKERkYihILDApIT0wKX1lbHNle0g9aDtkb3twPUg7SD1ILzEwfDA7dVstLWNdPTQ4KyhwLUgqMTApJkJ3ZX13aGlsZShIIT0wKX19ZWxzZXtEPSRDKGtFLFB3ZSwyOCxvLDE1LDEpO0c9bztoaWIoZSwwLEQsMCxHKTtJOndoaWxlKHRydWUpe0E9MDtmb3Ioaj1HLTE7aj49MDtqLS0pe0Y9QmRiKFNkYihBLDMyKSxDZGIoRFtqXSx5eGUpKTtyPXlqYihGKTtEW2pdPVlkYihyKTtBPVlkYihUZGIociwzMikpfXM9WWRiKEEpO3E9Yztkb3t1Wy0tY109NDgrcyUxMCZCd2V9d2hpbGUoKHM9cy8xMHwwKSE9MCYmYyE9MCk7ZD05LXErYztmb3IoaT0wO2k8ZCYmYz4wO2krKyl7dVstLWNdPTQ4fWw9Ry0xO2Zvcig7RFtsXT09MDtsLS0pe2lmKGw9PTApe2JyZWFrIEl9fUc9bCsxfXdoaWxlKHVbY109PTQ4KXsrK2N9fW49QjwwO2c9dC1jLWItMTtpZihiPT0wKXtuJiYodVstLWNdPTQ1KTtyZXR1cm4gSWhiKHUsYyx0LWMpfWlmKGI+MCYmZz49LTYpe2lmKGc+PTApe2s9YytnO2ZvcihtPXQtMTttPj1rO20tLSl7dVttKzFdPXVbbV19dVsrK2tdPTQ2O24mJih1Wy0tY109NDUpO3JldHVybiBJaGIodSxjLHQtYysxKX1mb3IobD0yO2w8LWcrMTtsKyspe3VbLS1jXT00OH11Wy0tY109NDY7dVstLWNdPTQ4O24mJih1Wy0tY109NDUpO3JldHVybiBJaGIodSxjLHQtYyl9Qz1jKzE7Zj10O3Y9bmV3IGNpYjtuJiYodi5hKz0nLScsdik7aWYoZi1DPj0xKXtUaGIodix1W2NdKTt2LmErPScuJzt2LmErPUloYih1LGMrMSx0LWMtMSl9ZWxzZXt2LmErPUloYih1LGMsdC1jKX12LmErPSdFJztnPjAmJih2LmErPScrJyx2KTt2LmErPScnK2c7cmV0dXJuIHYuYX1cbmZ1bmN0aW9uIEphZChhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdzthLmM9YjthLmc9bmV3IFRzYjtjPShsdWQoKSxuZXcgenVkKGEuYykpO2Q9bmV3IFBKYihjKTtMSmIoZCk7dD1XRChHeGQoYS5jLChuY2QoKSxnY2QpKSk7aT1SRChHeGQoYS5jLGljZCksMzI0KTt2PVJEKEd4ZChhLmMsamNkKSw0MzcpO2c9UkQoR3hkKGEuYyxiY2QpLDQ5MCk7dT1SRChHeGQoYS5jLGhjZCksNDM4KTthLmo9S2ZiKFVEKEd4ZChhLmMsa2NkKSkpO2g9YS5hO3N3aXRjaChpLmcpe2Nhc2UgMDpoPWEuYTticmVhaztjYXNlIDE6aD1hLmI7YnJlYWs7Y2FzZSAyOmg9YS5pO2JyZWFrO2Nhc2UgMzpoPWEuZTticmVhaztjYXNlIDQ6aD1hLmY7YnJlYWs7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYihlR2UrKGkuZiE9bnVsbD9pLmY6JycraS5nKSkpO31hLmQ9bmV3IHFiZChoLHYsZyk7cFFiKGEuZCwoT1FiKCksTVFiKSxURChHeGQoYS5jLGRjZCkpKTthLmQuYz1IZWIoVEQoR3hkKGEuYyxjY2QpKSk7aWYodENkKGEuYykuaT09MCl7cmV0dXJuIGEuZH1mb3IobD1uZXcgZE1kKHRDZChhLmMpKTtsLmUhPWwuaS5nYygpOyl7az1SRChiTWQobCksMjcpO249ay5nLzI7bT1rLmYvMjt3PW5ldyByamQoay5pK24say5qK20pO3doaWxlKFVqYihhLmcsdykpe1ppZCh3LCgkd25kLk1hdGgucmFuZG9tKCktMC41KSpWemUsKCR3bmQuTWF0aC5yYW5kb20oKS0wLjUpKlZ6ZSl9cD1SRChHeGQoaywodW1kKCksZWxkKSksMTQwKTtxPW5ldyBUUWIodyxuZXcgVWlkKHcuYS1uLWEuai8yLXAuYix3LmItbS1hLmovMi1wLmQsay5nK2EuaisocC5iK3AuYyksay5mK2EuaisocC5kK3AuYSkpKTtSbWIoYS5kLmkscSk7WmpiKGEuZyx3LG5ldyBQdGQocSxrKSl9c3dpdGNoKHUuZyl7Y2FzZSAwOmlmKHQ9PW51bGwpe2EuZC5kPVJEKFZtYihhLmQuaSwwKSw2OCl9ZWxzZXtmb3Iocz1uZXcgQW5iKGEuZC5pKTtzLmE8cy5jLmMubGVuZ3RoOyl7cT1SRCh5bmIocyksNjgpO289UkQoUkQoV2piKGEuZyxxLmEpLDQyKS5iLDI3KS5qaCgpO28hPW51bGwmJmxoYihvLHQpJiYoYS5kLmQ9cSl9fWJyZWFrO2Nhc2UgMTplPW5ldyByamQoYS5jLmcsYS5jLmYpO2UuYSo9MC41O2UuYio9MC41O1ppZChlLGEuYy5pLGEuYy5qKTtmPW94ZTtmb3Iocj1uZXcgQW5iKGEuZC5pKTtyLmE8ci5jLmMubGVuZ3RoOyl7cT1SRCh5bmIociksNjgpO2o9YmpkKHEuYSxlKTtpZihqPGYpe2Y9ajthLmQuZD1xfX1icmVhaztkZWZhdWx0OnRocm93IEFkYihuZXcgYWdiKGVHZSsodS5mIT1udWxsP3UuZjonJyt1LmcpKSk7fXJldHVybiBhLmR9XG5mdW5jdGlvbiBiNWIoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHE7bT0wO2ZvcihlPW5ldyBkTWQoKCFiLmEmJihiLmE9bmV3IEM1ZChKNCxiLDEwLDExKSksYi5hKSk7ZS5lIT1lLmkuZ2MoKTspe2Q9UkQoYk1kKGUpLDI3KTtpZighSGViKFREKEd4ZChkLCh5Q2MoKSxwQmMpKSkpKXtrPXZDZChkKTtpZigoZEUoR3hkKGssY0FjKSkhPT1kRSgoa0VjKCksaEVjKSl8fGRFKEd4ZChrLHBBYykpPT09ZEUoKFB0YygpLE90YykpfHxkRShHeGQoayxwQWMpKT09PWRFKChQdGMoKSxNdGMpKXx8SGViKFREKEd4ZChrLGVBYykpKXx8ZEUoR3hkKGssWXpjKSkhPT1kRSgoVSRiKCksVCRiKSl8fGRFKEd4ZChrLFpBYykpPT09ZEUoKGFFYygpLFREYykpfHxkRShHeGQoayxaQWMpKT09PWRFKChhRWMoKSxVRGMpKXx8ZEUoR3hkKGssJEFjKSk9PT1kRSgoX0NjKCksU0NjKSl8fGRFKEd4ZChrLCRBYykpPT09ZEUoKF9DYygpLFVDYykpKSYmIUhlYihURChHeGQoZCxhQWMpKSkpe0l4ZChkLChZd2MoKSx6d2MpLHNnYihtKSk7KyttfWk1YihhLGQsYyl9fW09MDtmb3Ioaj1uZXcgZE1kKCghYi5iJiYoYi5iPW5ldyBDNWQoRzQsYiwxMiwzKSksYi5iKSk7ai5lIT1qLmkuZ2MoKTspe2g9UkQoYk1kKGopLDc0KTtpZihkRShHeGQoYiwoeUNjKCksY0FjKSkpIT09ZEUoKGtFYygpLGhFYykpfHxkRShHeGQoYixwQWMpKT09PWRFKChQdGMoKSxPdGMpKXx8ZEUoR3hkKGIscEFjKSk9PT1kRSgoUHRjKCksTXRjKSl8fEhlYihURChHeGQoYixlQWMpKSl8fGRFKEd4ZChiLFl6YykpIT09ZEUoKFUkYigpLFQkYikpfHxkRShHeGQoYixaQWMpKT09PWRFKChhRWMoKSxURGMpKXx8ZEUoR3hkKGIsWkFjKSk9PT1kRSgoYUVjKCksVURjKSl8fGRFKEd4ZChiLCRBYykpPT09ZEUoKF9DYygpLFNDYykpfHxkRShHeGQoYiwkQWMpKT09PWRFKChfQ2MoKSxVQ2MpKSl7SXhkKGgsKFl3YygpLHp3Yyksc2diKG0pKTsrK219cD1KR2QoaCk7cT1MR2QoaCk7bD1IZWIoVEQoR3hkKHAsTkFjKSkpO289IUhlYihURChHeGQoaCxwQmMpKSk7bj1sJiZvemQoaCkmJkhlYihURChHeGQoaCxPQWMpKSk7Zj12Q2QocCk9PWImJnZDZChwKT09dkNkKHEpO2c9KHZDZChwKT09YiYmcT09YileKHZDZChxKT09YiYmcD09Yik7byYmIW4mJihnfHxmKSYmZjViKGEsaCxiLGMpfWlmKHZDZChiKSl7Zm9yKGk9bmV3IGRNZCh1Q2QodkNkKGIpKSk7aS5lIT1pLmkuZ2MoKTspe2g9UkQoYk1kKGkpLDc0KTtwPUpHZChoKTtpZihwPT1iJiZvemQoaCkpe249SGViKFREKEd4ZChwLCh5Q2MoKSxOQWMpKSkpJiZIZWIoVEQoR3hkKGgsT0FjKSkpO24mJmY1YihhLGgsYixjKX19fX1cbmZ1bmN0aW9uIFNGYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEIsQyxELEYsRyxILEksSixLLEw7Yy5VZygnR3JlZWR5IGN5Y2xlIHJlbW92YWwnLDEpO3Q9Yi5hO0w9dC5jLmxlbmd0aDthLmE9JEMoa0UsUHdlLDI4LEwsMTUsMSk7YS5jPSRDKGtFLFB3ZSwyOCxMLDE1LDEpO2EuYj0kQyhrRSxQd2UsMjgsTCwxNSwxKTtqPTA7Zm9yKHI9bmV3IEFuYih0KTtyLmE8ci5jLmMubGVuZ3RoOyl7cD1SRCh5bmIociksMTApO3AucD1qO2ZvcihDPW5ldyBBbmIocC5qKTtDLmE8Qy5jLmMubGVuZ3RoOyl7dz1SRCh5bmIoQyksMTIpO2ZvcihoPW5ldyBBbmIody5lKTtoLmE8aC5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoaCksMTgpO2lmKGQuYy5pPT1wKXtjb250aW51ZX1HPVJEKG1RYihkLCh5Q2MoKSxLQmMpKSwxNykuYTthLmFbal0rPUc+MD9HKzE6MX1mb3IoZz1uZXcgQW5iKHcuZyk7Zy5hPGcuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGcpLDE4KTtpZihkLmQuaT09cCl7Y29udGludWV9Rz1SRChtUWIoZCwoeUNjKCksS0JjKSksMTcpLmE7YS5jW2pdKz1HPjA/RysxOjF9fWEuY1tqXT09MD9NdWIoYS5lLHApOmEuYVtqXT09MCYmTXViKGEuZixwKTsrK2p9bz0tMTtuPTE7bD1uZXcgYm5iO2EuZD1SRChtUWIoYiwoWXdjKCksTHdjKSksMjM0KTt3aGlsZShMPjApe3doaWxlKGEuZS5iIT0wKXtJPVJEKFV1YihhLmUpLDEwKTthLmJbSS5wXT1vLS07VEZjKGEsSSk7LS1MfXdoaWxlKGEuZi5iIT0wKXtKPVJEKFV1YihhLmYpLDEwKTthLmJbSi5wXT1uKys7VEZjKGEsSik7LS1MfWlmKEw+MCl7bT1xd2U7Zm9yKHM9bmV3IEFuYih0KTtzLmE8cy5jLmMubGVuZ3RoOyl7cD1SRCh5bmIocyksMTApO2lmKGEuYltwLnBdPT0wKXt1PWEuY1twLnBdLWEuYVtwLnBdO2lmKHU+PW0pe2lmKHU+bSl7bC5jLmxlbmd0aD0wO209dX1aRWIobC5jLHApfX19az1hLnNnKGwpO2EuYltrLnBdPW4rKztURmMoYSxrKTstLUx9fUg9dC5jLmxlbmd0aCsxO2ZvcihqPTA7ajx0LmMubGVuZ3RoO2orKyl7YS5iW2pdPDAmJihhLmJbal0rPUgpfWZvcihxPW5ldyBBbmIodCk7cS5hPHEuYy5jLmxlbmd0aDspe3A9UkQoeW5iKHEpLDEwKTtGPXUyYihwLmopO2ZvcihBPUYsQj0wLEQ9QS5sZW5ndGg7QjxEOysrQil7dz1BW0JdO3Y9czJiKHcuZyk7Zm9yKGU9dixmPTAsaT1lLmxlbmd0aDtmPGk7KytmKXtkPWVbZl07Sz1kLmQuaS5wO2lmKGEuYltwLnBdPmEuYltLXSl7WDBiKGQsdHJ1ZSk7cFFiKGIsYXdjLChHZWIoKSx0cnVlKSl9fX19YS5hPW51bGw7YS5jPW51bGw7YS5iPW51bGw7WHViKGEuZik7WHViKGEuZSk7Yy5WZygpfVxuZnVuY3Rpb24gdXNkKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3O3Y9UkQoUUhkKCghYS5hJiYoYS5hPW5ldyBDNWQoRjQsYSw2LDYpKSxhLmEpLDApLDE2Nik7az1uZXcgRWpkO3U9bmV3IFRzYjt3PXhzZCh2KTtydGIodS5mLHYsdyk7bT1uZXcgVHNiO2Q9bmV3IFl1Yjtmb3Iobz1GbChBbChjRChXQyhjSiwxKSxydmUsMjAsMCxbKCFiLmQmJihiLmQ9bmV3IFlpZShHNCxiLDgsNSkpLGIuZCksKCFiLmUmJihiLmU9bmV3IFlpZShHNCxiLDcsNCkpLGIuZSldKSkpO2dzKG8pOyl7bj1SRChocyhvKSw3NCk7aWYoKCFhLmEmJihhLmE9bmV3IEM1ZChGNCxhLDYsNikpLGEuYSkuaSE9MSl7dGhyb3cgQWRiKG5ldyBhZ2IodEhlKyghYS5hJiYoYS5hPW5ldyBDNWQoRjQsYSw2LDYpKSxhLmEpLmkpKX1pZihuIT1hKXtxPVJEKFFIZCgoIW4uYSYmKG4uYT1uZXcgQzVkKEY0LG4sNiw2KSksbi5hKSwwKSwxNjYpO1B1YihkLHEsZC5jLmIsZC5jKTtwPVJEKFdkKHF0Yih1LmYscSkpLDEzKTtpZighcCl7cD14c2QocSk7cnRiKHUuZixxLHApfWw9Yz9vamQobmV3IHNqZChSRChWbWIodyx3LmMubGVuZ3RoLTEpLDgpKSxSRChWbWIocCxwLmMubGVuZ3RoLTEpLDgpKTpvamQobmV3IHNqZCgodEZiKDAsdy5jLmxlbmd0aCksUkQody5jWzBdLDgpKSksKHRGYigwLHAuYy5sZW5ndGgpLFJEKHAuY1swXSw4KSkpO3J0YihtLmYscSxsKX19aWYoZC5iIT0wKXtyPVJEKFZtYih3LGM/dy5jLmxlbmd0aC0xOjApLDgpO2ZvcihqPTE7ajx3LmMubGVuZ3RoO2orKyl7cz1SRChWbWIodyxjP3cuYy5sZW5ndGgtMS1qOmopLDgpO2U9U3ViKGQsMCk7d2hpbGUoZS5iIT1lLmQuYyl7cT1SRChldmIoZSksMTY2KTtwPVJEKFdkKHF0Yih1LmYscSkpLDEzKTtpZihwLmMubGVuZ3RoPD1qKXtndmIoZSl9ZWxzZXt0PSRpZChuZXcgc2pkKFJEKFZtYihwLGM/cC5jLmxlbmd0aC0xLWo6aiksOCkpLFJEKFdkKHF0YihtLmYscSkpLDgpKTtpZihzLmEhPXQuYXx8cy5iIT10LmIpe2Y9cy5hLXIuYTtoPXMuYi1yLmI7Zz10LmEtci5hO2k9dC5iLXIuYjtnKmg9PWkqZiYmKGY9PTB8fGlzTmFOKGYpP2Y6ZjwwPy0xOjEpPT0oZz09MHx8aXNOYU4oZyk/ZzpnPDA/LTE6MSkmJihoPT0wfHxpc05hTihoKT9oOmg8MD8tMToxKT09KGk9PTB8fGlzTmFOKGkpP2k6aTwwPy0xOjEpPygkd25kLk1hdGguYWJzKGYpPCR3bmQuTWF0aC5hYnMoZyl8fCR3bmQuTWF0aC5hYnMoaCk8JHduZC5NYXRoLmFicyhpKSkmJihQdWIoayxzLGsuYy5iLGsuYyksdHJ1ZSk6aj4xJiYoUHViKGsscixrLmMuYixrLmMpLHRydWUpO2d2YihlKX19fXI9c319cmV0dXJuIGt9XG5mdW5jdGlvbiBTX2MoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRDtjLlVnKF9FZSwxKTtEPVJEKHpEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYiwxNikpLG5ldyBlMGMpLHRCYihuZXcgWkJiLG5ldyBYQmIsbmV3IHdDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsWyh4QmIoKSx2QmIpXSkpKSwxNSk7az1SRCh6RGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGIsMTYpKSxuZXcgZzBjKGIpKSx0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFt2QmJdKSkpLDE1KTtvPVJEKHpEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYiwxNikpLG5ldyBpMGMoYikpLHRCYihuZXcgWkJiLG5ldyBYQmIsbmV3IHdDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsW3ZCYl0pKSksMTUpO3A9JEMoWiQsTkVlLDQwLGIuZ2MoKSwwLDEpO2ZvcihnPTA7ZzxrLmdjKCk7ZysrKXtlPVJEKGsuWGIoZyksNDApO0M9UkQobVFiKGUsKGhfYygpLFckYykpLDE3KS5hO2lmKEM+PTAmJkM8ay5nYygpJiYhcFtDXSl7cFtDXT1lO2suZ2QoZyk7LS1nfX1mb3IoaD0wO2g8ay5nYygpO2grKyl7ZT1SRChrLlhiKGgpLDQwKTtDPVJEKG1RYihlLChoX2MoKSxXJGMpKSwxNykuYTtmb3IobT0wOzttKyspe249QyttO2lmKG48cC5sZW5ndGgmJm4+PTAmJiFwW25dKXtwW25dPWU7ay5nZChoKTstLWg7YnJlYWt9bj1DLW07aWYobjxwLmxlbmd0aCYmbj49MCYmIXBbbl0pe3Bbbl09ZTtrLmdkKGgpOy0taDticmVha319fW8uamQobmV3IGswYyk7Zm9yKGk9cC5sZW5ndGgtMTtpPj0wO2ktLSl7aWYoIXBbaV0mJiFvLmRjKCkpe3BbaV09UkQoby5YYigwKSw0MCk7by5nZCgwKX19Zm9yKGo9MDtqPHAubGVuZ3RoO2orKyl7aWYoIXBbal0mJiFELmRjKCkpe3Bbal09UkQoRC5YYigwKSw0MCk7RC5nZCgwKX19Zm9yKGY9MDtmPHAubGVuZ3RoO2YrKyl7cFFiKHBbZl0sKHEkYygpLGkkYyksc2diKGYpKX1sPVJEKFJEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYiwxNikpLG5ldyBvMGMpLG5ldyBhMGMpLDUzNCk7Zm9yKHc9bCxBPTAsQj13Lmxlbmd0aDtBPEI7KytBKXt2PXdbQV07ZD0kV2Modik7U19jKGEsZCxjLmVoKDEvbC5sZW5ndGh8MCkpO3lvYigpO3R2YihkLG5ldyB1R2QoKHEkYygpLGkkYykpKTtxPW5ldyBZdWI7Zm9yKHU9U3ViKGQsMCk7dS5iIT11LmQuYzspe3Q9UkQoZXZiKHUpLDQwKTtmb3Iocz1TdWIodi5kLDApO3MuYiE9cy5kLmM7KXtyPVJEKGV2YihzKSw2NSk7ci5jPT10JiYoUHViKHEscixxLmMuYixxLmMpLHRydWUpfX1YdWIodi5kKTt5ZSh2LmQscSl9Yy5WZygpfVxuZnVuY3Rpb24galRiKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHI7ZD1uZXcgYm5iO2g9bmV3IGJuYjtxPWIvMjtuPWEuZ2MoKTtlPVJEKGEuWGIoMCksOCk7cj1SRChhLlhiKDEpLDgpO289a1RiKGUuYSxlLmIsci5hLHIuYixxKTtSbWIoZCwodEZiKDAsby5jLmxlbmd0aCksUkQoby5jWzBdLDgpKSk7Um1iKGgsKHRGYigxLG8uYy5sZW5ndGgpLFJEKG8uY1sxXSw4KSkpO2ZvcihqPTI7ajxuO2orKyl7cD1lO2U9cjtyPVJEKGEuWGIoaiksOCk7bz1rVGIoZS5hLGUuYixwLmEscC5iLHEpO1JtYihkLCh0RmIoMSxvLmMubGVuZ3RoKSxSRChvLmNbMV0sOCkpKTtSbWIoaCwodEZiKDAsby5jLmxlbmd0aCksUkQoby5jWzBdLDgpKSk7bz1rVGIoZS5hLGUuYixyLmEsci5iLHEpO1JtYihkLCh0RmIoMCxvLmMubGVuZ3RoKSxSRChvLmNbMF0sOCkpKTtSbWIoaCwodEZiKDEsby5jLmxlbmd0aCksUkQoby5jWzFdLDgpKSl9bz1rVGIoci5hLHIuYixlLmEsZS5iLHEpO1JtYihkLCh0RmIoMSxvLmMubGVuZ3RoKSxSRChvLmNbMV0sOCkpKTtSbWIoaCwodEZiKDAsby5jLmxlbmd0aCksUkQoby5jWzBdLDgpKSk7Yz1uZXcgRWpkO2c9bmV3IGJuYjtNdWIoYywodEZiKDAsZC5jLmxlbmd0aCksUkQoZC5jWzBdLDgpKSk7Zm9yKGs9MTtrPGQuYy5sZW5ndGgtMjtrKz0yKXtmPSh0RmIoayxkLmMubGVuZ3RoKSxSRChkLmNba10sOCkpO209aVRiKCh0RmIoay0xLGQuYy5sZW5ndGgpLFJEKGQuY1trLTFdLDgpKSxmLCh0RmIoaysxLGQuYy5sZW5ndGgpLFJEKGQuY1trKzFdLDgpKSwodEZiKGsrMixkLmMubGVuZ3RoKSxSRChkLmNbaysyXSw4KSkpOyFpc0Zpbml0ZShtLmEpfHwhaXNGaW5pdGUobS5iKT8oUHViKGMsZixjLmMuYixjLmMpLHRydWUpOihQdWIoYyxtLGMuYy5iLGMuYyksdHJ1ZSl9TXViKGMsUkQoVm1iKGQsZC5jLmxlbmd0aC0xKSw4KSk7Um1iKGcsKHRGYigwLGguYy5sZW5ndGgpLFJEKGguY1swXSw4KSkpO2ZvcihsPTE7bDxoLmMubGVuZ3RoLTI7bCs9Mil7Zj0odEZiKGwsaC5jLmxlbmd0aCksUkQoaC5jW2xdLDgpKTttPWlUYigodEZiKGwtMSxoLmMubGVuZ3RoKSxSRChoLmNbbC0xXSw4KSksZiwodEZiKGwrMSxoLmMubGVuZ3RoKSxSRChoLmNbbCsxXSw4KSksKHRGYihsKzIsaC5jLmxlbmd0aCksUkQoaC5jW2wrMl0sOCkpKTshaXNGaW5pdGUobS5hKXx8IWlzRmluaXRlKG0uYik/KFpFYihnLmMsZiksdHJ1ZSk6KFpFYihnLmMsbSksdHJ1ZSl9Um1iKGcsUkQoVm1iKGgsaC5jLmxlbmd0aC0xKSw4KSk7Zm9yKGk9Zy5jLmxlbmd0aC0xO2k+PTA7aS0tKXtNdWIoYywodEZiKGksZy5jLmxlbmd0aCksUkQoZy5jW2ldLDgpKSl9cmV0dXJuIGN9XG5mdW5jdGlvbiBsOWMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdTt0PUtmYihVRChHeGQoYiwoWDZjKCksVzZjKSkpKTtuPUtmYihVRChHeGQoYixVNmMpKSk7bT1LZmIoVUQoR3hkKGIsUjZjKSkpO0JhZCgoIWIuYSYmKGIuYT1uZXcgQzVkKEo0LGIsMTAsMTEpKSxiLmEpKTtyPVU4YygoIWIuYSYmKGIuYT1uZXcgQzVkKEo0LGIsMTAsMTEpKSxiLmEpLHQsYS5iKTtmb3IocT0wO3E8ci5jLmxlbmd0aDtxKyspe2k9KHRGYihxLHIuYy5sZW5ndGgpLFJEKHIuY1txXSwxODYpKTtpZihxIT0wKXtvPSh0RmIocS0xLHIuYy5sZW5ndGgpLFJEKHIuY1txLTFdLDE4NikpO0dhZChpLG8uZitvLmIrYS5iKX1wPUo4YyhxLHIsdCxhLmIsSGViKFREKEd4ZChiLChYN2MoKSxMN2MpKSkpKTtpZihIZWIoVEQocC5iKSkpe2ZvcihmPW5ldyBBbmIoaS5hKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTcyKTtlLmM9ZmFsc2U7ZS5rPWZhbHNlO045YyhlKX1pLmQ9bmV3IGJuYjtpLmU9dDstLXF9ZWxzZXtrOWMoYSxpKTtpZihxKzE8ci5jLmxlbmd0aCl7YS5lPSR3bmQuTWF0aC5tYXgoaS5lK2EuYitSRChWbWIoKHRGYihxKzEsci5jLmxlbmd0aCksUkQoci5jW3ErMV0sMTg2KSkuYSwwKSwxNzIpLnItdCxhLmMpO2EuZj0kd25kLk1hdGgubWluKGkuZSthLmIrUkQoVm1iKCh0RmIocSsxLHIuYy5sZW5ndGgpLFJEKHIuY1txKzFdLDE4NikpLmEsMCksMTcyKS5yLXQsYS5kKTtpZihpLmQuYy5sZW5ndGghPTApe2EuYz0kd25kLk1hdGgubWF4KGEuYyxSRChWbWIoaS5kLGkuZC5jLmxlbmd0aC0xKSwzMTUpLmQrKGkuZC5jLmxlbmd0aDw9MT8wOmEuYikpO2EuZD0kd25kLk1hdGgubWluKGEuYyxSRChWbWIoaS5kLGkuZC5jLmxlbmd0aC0xKSwzMTUpLmQrKGkuZC5jLmxlbmd0aDw9MT8wOmEuYikpfX1pZihyLmMubGVuZ3RoPT0xKXtsPVJEKFZtYihpLmQsaS5kLmMubGVuZ3RoLTEpLDMxNSk7az1SRChWbWIobC5hLGwuYS5jLmxlbmd0aC0xKSwxNzIpO2ZvcihoPW5ldyBBbmIoay5uKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMjA5KTthLmM9JHduZC5NYXRoLm1heChhLmMsay5yLWcuZCk7YS5kPSR3bmQuTWF0aC5taW4oYS5kLGsuci1nLmQpO2EuZT0kd25kLk1hdGgubWF4KGEuZSxnLmQrYS5iKTthLmY9JHduZC5NYXRoLm1pbihhLmYsZy5kK2EuYil9fX19cz16YWQocixhLmIpO3U9JHduZC5NYXRoLm1heChzLmEsbi0oYy5iK2MuYykpO2o9JHduZC5NYXRoLm1heChzLmIsbS0oYy5kK2MuYSkpO2Q9ai1zLmI7SXhkKGIsTTZjLGQpO0l4ZChiLFY2YyxyKTtyZXR1cm4gbmV3IGxhZChhLmEsdSxzLmIrZCwoc2FkKCkscmFkKSl9XG5mdW5jdGlvbiBlOWIoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEc7QT1SRChtUWIoYSwoeUNjKCksQkJjKSksMTAxKTtpZighKEEhPShCb2QoKSx6b2QpJiZBIT1Bb2QpKXtyZXR1cm59bz1hLmI7bj1vLmMubGVuZ3RoO2s9bmV3IGNuYigoZGsobisyLGx3ZSksZHooQmRiKEJkYig1LG4rMiksKG4rMikvMTB8MCkpKSk7cD1uZXcgY25iKChkayhuKzIsbHdlKSxkeihCZGIoQmRiKDUsbisyKSwobisyKS8xMHwwKSkpKTtSbWIoayxuZXcgVHNiKTtSbWIoayxuZXcgVHNiKTtSbWIocCxuZXcgYm5iKTtSbWIocCxuZXcgYm5iKTt3PW5ldyBibmI7Zm9yKGI9MDtiPG47YisrKXtjPSh0RmIoYixvLmMubGVuZ3RoKSxSRChvLmNbYl0sMzApKTtCPSh0RmIoYixrLmMubGVuZ3RoKSxSRChrLmNbYl0sODUpKTtxPW5ldyBUc2I7WkViKGsuYyxxKTtEPSh0RmIoYixwLmMubGVuZ3RoKSxSRChwLmNbYl0sMTUpKTtzPW5ldyBibmI7WkViKHAuYyxzKTtmb3IoZT1uZXcgQW5iKGMuYSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDEwKTtpZihhOWIoZCkpe1pFYih3LmMsZCk7Y29udGludWV9Zm9yKGo9bmV3IGlzKE1yKFoyYihkKS5hLktjKCksbmV3IGlyKSk7Z3Moaik7KXtoPVJEKGhzKGopLDE4KTtGPWguYy5pO2lmKCFhOWIoRikpe2NvbnRpbnVlfUM9UkQoQi54YyhtUWIoRiwoWXdjKCksQXdjKSkpLDEwKTtpZighQyl7Qz1fOGIoYSxGKTtCLnpjKG1RYihGLEF3YyksQyk7RC5GYyhDKX1ZMGIoaCxSRChWbWIoQy5qLDEpLDEyKSl9Zm9yKGk9bmV3IGlzKE1yKGEzYihkKS5hLktjKCksbmV3IGlyKSk7Z3MoaSk7KXtoPVJEKGhzKGkpLDE4KTtHPWguZC5pO2lmKCFhOWIoRykpe2NvbnRpbnVlfXI9UkQoV2piKHEsbVFiKEcsKFl3YygpLEF3YykpKSwxMCk7aWYoIXIpe3I9XzhiKGEsRyk7WmpiKHEsbVFiKEcsQXdjKSxyKTtaRWIocy5jLHIpfVowYihoLFJEKFZtYihyLmosMCksMTIpKX19fWZvcihsPTA7bDxwLmMubGVuZ3RoO2wrKyl7dD0odEZiKGwscC5jLmxlbmd0aCksUkQocC5jW2xdLDE1KSk7aWYodC5kYygpKXtjb250aW51ZX1tPW51bGw7aWYobD09MCl7bT1uZXcgUjRiKGEpO3dGYigwLG8uYy5sZW5ndGgpO1hFYihvLmMsMCxtKX1lbHNlIGlmKGw9PWsuYy5sZW5ndGgtMSl7bT1uZXcgUjRiKGEpO1pFYihvLmMsbSl9ZWxzZXttPSh0RmIobC0xLG8uYy5sZW5ndGgpLFJEKG8uY1tsLTFdLDMwKSl9Zm9yKGc9dC5LYygpO2cuT2IoKTspe2Y9UkQoZy5QYigpLDEwKTtnM2IoZixtKX19Zm9yKHY9bmV3IEFuYih3KTt2LmE8di5jLmMubGVuZ3RoOyl7dT1SRCh5bmIodiksMTApO2czYih1LG51bGwpfXBRYihhLChZd2MoKSxmd2MpLHcpfVxuZnVuY3Rpb24gU05jKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQsRixHLEgsSSxKLEs7ST1uZXcgYm5iO2ZvcihvPW5ldyBBbmIoYi5iKTtvLmE8by5jLmMubGVuZ3RoOyl7bT1SRCh5bmIobyksMzApO2Zvcih2PW5ldyBBbmIobS5hKTt2LmE8di5jLmMubGVuZ3RoOyl7dT1SRCh5bmIodiksMTApO3UucD0tMTtsPXF3ZTtCPXF3ZTtmb3IoRD1uZXcgQW5iKHUuaik7RC5hPEQuYy5jLmxlbmd0aDspe0M9UkQoeW5iKEQpLDEyKTtmb3IoZT1uZXcgQW5iKEMuZSk7ZS5hPGUuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGUpLDE4KTtGPVJEKG1RYihjLCh5Q2MoKSxNQmMpKSwxNykuYTtsPSR3bmQuTWF0aC5tYXgobCxGKX1mb3IoZD1uZXcgQW5iKEMuZyk7ZC5hPGQuYy5jLmxlbmd0aDspe2M9UkQoeW5iKGQpLDE4KTtGPVJEKG1RYihjLCh5Q2MoKSxNQmMpKSwxNykuYTtCPSR3bmQuTWF0aC5tYXgoQixGKX19cFFiKHUsSE5jLHNnYihsKSk7cFFiKHUsSU5jLHNnYihCKSl9fXI9MDtmb3Iobj1uZXcgQW5iKGIuYik7bi5hPG4uYy5jLmxlbmd0aDspe209UkQoeW5iKG4pLDMwKTtmb3Iodj1uZXcgQW5iKG0uYSk7di5hPHYuYy5jLmxlbmd0aDspe3U9UkQoeW5iKHYpLDEwKTtpZih1LnA8MCl7SD1uZXcgWk5jO0guYj1yKys7T05jKGEsdSxIKTtaRWIoSS5jLEgpfX19QT1ldihJLmMubGVuZ3RoKTtrPWV2KEkuYy5sZW5ndGgpO2ZvcihnPTA7ZzxJLmMubGVuZ3RoO2crKyl7Um1iKEEsbmV3IGJuYik7Um1iKGssc2diKDApKX1NTmMoYixJLEEsayk7Sj1SRChhbmIoSSwkQyhTWSx1RWUsMjYxLEkuYy5sZW5ndGgsMCwxKSksODU0KTt3PVJEKGFuYihBLCRDKFFLLEl6ZSwxNSxBLmMubGVuZ3RoLDAsMSkpLDE5OCk7aj0kQyhrRSxQd2UsMjgsay5jLmxlbmd0aCwxNSwxKTtmb3IoaD0wO2g8ai5sZW5ndGg7aCsrKXtqW2hdPSh0RmIoaCxrLmMubGVuZ3RoKSxSRChrLmNbaF0sMTcpKS5hfXM9MDt0PW5ldyBibmI7Zm9yKGk9MDtpPEoubGVuZ3RoO2krKyl7altpXT09MCYmKFpFYih0LmMsSltpXSksdHJ1ZSl9cT0kQyhrRSxQd2UsMjgsSi5sZW5ndGgsMTUsMSk7d2hpbGUodC5jLmxlbmd0aCE9MCl7SD1SRChYbWIodCwwKSwyNjEpO3FbSC5iXT1zKys7d2hpbGUoIXdbSC5iXS5kYygpKXtLPVJEKHdbSC5iXS5nZCgwKSwyNjEpOy0taltLLmJdO2pbSy5iXT09MCYmKFpFYih0LmMsSyksdHJ1ZSl9fWEuYT0kQyhTWSx1RWUsMjYxLEoubGVuZ3RoLDAsMSk7Zm9yKGY9MDtmPEoubGVuZ3RoO2YrKyl7cD1KW2ZdO0c9cVtmXTthLmFbR109cDtwLmI9Rztmb3Iodj1uZXcgQW5iKHAuZSk7di5hPHYuYy5jLmxlbmd0aDspe3U9UkQoeW5iKHYpLDEwKTt1LnA9R319cmV0dXJuIGEuYX1cbmZ1bmN0aW9uIEo4YyhhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG0sbixvLHAscSxyO3A9ZmFsc2U7aT1mYWxzZTttPWErMTtvPSh0RmIoYSxiLmMubGVuZ3RoKSxSRChiLmNbYV0sMTg2KSk7aD1vLmE7aj1udWxsO2ZvcihnPTA7ZzxvLmEuYy5sZW5ndGg7ZysrKXtmPSh0RmIoZyxoLmMubGVuZ3RoKSxSRChoLmNbZ10sMTcyKSk7aWYoZi5jKXtjb250aW51ZX1pZihmLmIuYy5sZW5ndGg9PTApe2dpYigpO1N0cmluZy5mcm9tQ2hhckNvZGUoMTApO0ZhZChvLGYpOy0tZztwPXRydWU7Y29udGludWV9aWYoIWYuayl7ISFqJiZnYWQoaik7aj1uZXcgaGFkKCFqPzA6ai5lK2ouZCtkLG8uZixkKTtVOWMoZixqLmUrai5kLG8uZik7Um1iKG8uZCxqKTthYWQoaixmKTtmLms9dHJ1ZX1rPW51bGw7az0ocj1udWxsLGc8by5hLmMubGVuZ3RoLTE/KHI9UkQoVm1iKG8uYSxnKzEpLDE3MikpOm08Yi5jLmxlbmd0aCYmKHRGYihtLGIuYy5sZW5ndGgpLFJEKGIuY1ttXSwxODYpKS5hLmMubGVuZ3RoIT0wJiYocj1SRChWbWIoKHRGYihtLGIuYy5sZW5ndGgpLFJEKGIuY1ttXSwxODYpKS5hLDApLDE3MikpLHIpO3E9ZmFsc2U7ISFrJiYocT0hcGIoay5qLG8pKTtpZihrKXtpZihrLmIuYy5sZW5ndGghPTAmJiFIZWIoVEQoUkQoVm1iKGsuYiwwKSwyNykub2YoKFg3YygpLEQ3YykpKSkpe1E5YyhmLGMtZi5zKTtnYWQoZi5xKTtwPXB8SThjKG8sZixrLGMsZCl9ZWxzZXtGYWQobyxrKTticmVha31pZihrLmIuYy5sZW5ndGg9PTApe2IuYy5sZW5ndGg+bSYmRmFkKCh0RmIobSxiLmMubGVuZ3RoKSxSRChiLmNbbV0sMTg2KSksayk7az1udWxsO3doaWxlKGIuYy5sZW5ndGg+bSYmKHRGYihtLGIuYy5sZW5ndGgpLFJEKGIuY1ttXSwxODYpKS5hLmMubGVuZ3RoPT0wKXtZbWIoYiwodEZiKG0sYi5jLmxlbmd0aCksYi5jW21dKSl9fWlmKCFrKXstLWc7Y29udGludWV9aWYoIUhlYihURChSRChWbWIoay5iLDApLDI3KS5vZigoWDdjKCksRDdjKSkpKSYmSzhjKGIsbyxmLGsscSxjLG0sZCkpe3A9dHJ1ZTtjb250aW51ZX1pZihxKXtuPW8uYjtsPWsuZjtpZighSGViKFREKFJEKFZtYihrLmIsMCksMjcpLm9mKEQ3YykpKSYmTDhjKGIsbyxmLGssYyxtLGQsZSkpe3A9dHJ1ZTtpZihuPGwpe2k9dHJ1ZTtrLmo9bzticmVha31jb250aW51ZX1lbHNlIGlmKE04YyhvLGYpKXtmLmM9dHJ1ZTtwPXRydWU7Y29udGludWV9fWVsc2UgaWYoTThjKG8sZikpe2YuYz10cnVlO3A9dHJ1ZTtjb250aW51ZX1pZihwKXtjb250aW51ZX19aWYoTThjKG8sZikpe2YuYz10cnVlO3A9dHJ1ZTshIWsmJihrLms9ZmFsc2UpO2NvbnRpbnVlfWVsc2V7Z2FkKGYucSl9fXJldHVybiBuZXcgUHRkKChHZWIoKSxwP3RydWU6ZmFsc2UpLGk/dHJ1ZTpmYWxzZSl9XG5mdW5jdGlvbiB5Q2MoKXt5Q2M9Z2ViO1FCYz0odW1kKCksV2xkKTtSQmM9WGxkO1NCYz1ZbGQ7VEJjPVpsZDtWQmM9JGxkO1dCYz1fbGQ7WkJjPWJtZDtfQmM9ZG1kO2FDYz1lbWQ7JEJjPWNtZDtiQ2M9Zm1kO2RDYz1nbWQ7ZkNjPWptZDtZQmM9YW1kO1BCYz0oT3pjKCksZXpjKTtVQmM9ZnpjO1hCYz1nemM7Y0NjPWh6YztKQmM9bmV3IG1HZChSbGQsc2diKDApKTtLQmM9YnpjO0xCYz1jemM7TUJjPWR6Yzt2Q2M9RnpjO25DYz1remM7b0NjPW56YztyQ2M9dnpjO3BDYz1xemM7cUNjPXN6Yzt4Q2M9S3pjO3dDYz1IemM7dENjPUJ6YztzQ2M9enpjO3VDYz1EemM7aUJjPVV5YztqQmM9VnljO0RBYz1keWM7RUFjPWd5YztqQ2M9bW1kO2xDYz1xbWQ7aUNjPWxtZDtoQ2M9a21kO2tDYz0obXFkKCksanFkKTtuZXcgbUdkKG5tZCxrQ2MpO3JCYz1uZXcgQTNiKDEyKTtxQmM9bmV3IG1HZCh0bGQsckJjKTt6QWM9KFltZCgpLFVtZCk7eUFjPW5ldyBtR2QoU2tkLHpBYyk7QUJjPW5ldyBtR2QoR2xkLDApO05CYz1uZXcgbUdkKFNsZCxzZ2IoMSkpO1R6Yz1uZXcgbUdkKERrZCxZemUpO3BCYz1ybGQ7QkJjPUhsZDtHQmM9T2xkO3FBYz1Na2Q7UnpjPUJrZDtJQWM9WGtkO09CYz1uZXcgbUdkKFZsZCwoR2ViKCksdHJ1ZSkpO05BYz0ka2Q7T0FjPV9rZDtsQmM9a2xkO29CYz1wbGQ7bUJjPW1sZDt0QWM9KENtZCgpLEFtZCk7ckFjPW5ldyBtR2QoTmtkLHRBYyk7ZEJjPWlsZDtjQmM9Z2xkO0VCYz1MbGQ7REJjPUtsZDtGQmM9TmxkO3VCYz0ocG9kKCksb29kKTtuZXcgbUdkKHpsZCx1QmMpO3dCYz1DbGQ7eEJjPURsZDt5QmM9RWxkO3ZCYz1CbGQ7bUNjPWp6YzskQWM9RnljO1pBYz1EeWM7Z0NjPWl6YztVQWM9dnljO3BBYz1SeGM7b0FjPVB4YztlQWM9eXhjO2ZBYz16eGM7aEFjPUV4YztnQWM9QXhjO25BYz1OeGM7YUJjPUh5YztiQmM9SXljO1FBYz1veWM7a0JjPVp5YztmQmM9TXljO0dBYz1qeWM7aEJjPVN5YztCQWM9X3hjO0NBYz1ieWM7ZEFjPUtrZDtlQmM9SnljO1h6Yz1teGM7V3pjPWt4YztWemM9anhjO0tBYz1teWM7SkFjPWx5YztMQWM9bnljO25CYz1ubGQ7UkFjPWNsZDtGQWM9VWtkO3dBYz1Ra2Q7dkFjPVBrZDtpQWM9SHhjO0NCYz1KbGQ7VXpjPUprZDtNQWM9WmtkO3pCYz1GbGQ7c0JjPXZsZDt0QmM9eGxkO1dBYz15eWM7WEFjPUF5YztJQmM9UWxkO1N6Yz1peGM7WUFjPUN5Yzt4QWM9WHhjO3VBYz1WeGM7X0FjPWVsZDtTQWM9c3ljO2dCYz1QeWM7ZUNjPWhtZDtzQWM9VHhjO0hCYz1feWM7QUFjPVp4YztqQWM9SnhjO2tBYz1LeGM7VEFjPXV5YztsQWM9THhjO1BBYz1ibGQ7VkFjPXh5YzttQWM9TXhjO2NBYz13eGM7X3pjPXN4YztaemM9cXhjOyR6Yz1yeGM7YUFjPXV4YztZemM9b3hjO2JBYz12eGM7SEFjPWt5Y31cbmZ1bmN0aW9uIE1xZShhKXt2YXIgYixjLGQ7aWYoYS5kPj1hLmope2EuYT0tMTthLmM9MTtyZXR1cm59Yj1paGIoYS5pLGEuZCsrKTthLmE9YjtpZihhLmI9PTEpe3N3aXRjaChiKXtjYXNlIDkyOmQ9MTA7aWYoYS5kPj1hLmopdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxWSWUpKSkpO2EuYT1paGIoYS5pLGEuZCsrKTticmVhaztjYXNlIDQ1OmlmKChhLmUmNTEyKT09NTEyJiZhLmQ8YS5qJiZpaGIoYS5pLGEuZCk9PTkxKXsrK2EuZDtkPTI0fWVsc2UgZD0wO2JyZWFrO2Nhc2UgOTE6aWYoKGEuZSY1MTIpIT01MTImJmEuZDxhLmomJmloYihhLmksYS5kKT09NTgpeysrYS5kO2Q9MjA7YnJlYWt9ZGVmYXVsdDppZigoYiY2NDUxMik9PXV4ZSYmYS5kPGEuail7Yz1paGIoYS5pLGEuZCk7aWYoKGMmNjQ1MTIpPT01NjMyMCl7YS5hPXR4ZSsoYi11eGU8PDEwKStjLTU2MzIwOysrYS5kfX1kPTA7fWEuYz1kO3JldHVybn1zd2l0Y2goYil7Y2FzZSAxMjQ6ZD0yO2JyZWFrO2Nhc2UgNDI6ZD0zO2JyZWFrO2Nhc2UgNDM6ZD00O2JyZWFrO2Nhc2UgNjM6ZD01O2JyZWFrO2Nhc2UgNDE6ZD03O2JyZWFrO2Nhc2UgNDY6ZD04O2JyZWFrO2Nhc2UgOTE6ZD05O2JyZWFrO2Nhc2UgOTQ6ZD0xMTticmVhaztjYXNlIDM2OmQ9MTI7YnJlYWs7Y2FzZSA0MDpkPTY7aWYoYS5kPj1hLmopYnJlYWs7aWYoaWhiKGEuaSxhLmQpIT02MylicmVhaztpZigrK2EuZD49YS5qKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksV0llKSkpKTtiPWloYihhLmksYS5kKyspO3N3aXRjaChiKXtjYXNlIDU4OmQ9MTM7YnJlYWs7Y2FzZSA2MTpkPTE0O2JyZWFrO2Nhc2UgMzM6ZD0xNTticmVhaztjYXNlIDkxOmQ9MTk7YnJlYWs7Y2FzZSA2MjpkPTE4O2JyZWFrO2Nhc2UgNjA6aWYoYS5kPj1hLmopdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxXSWUpKSkpO2I9aWhiKGEuaSxhLmQrKyk7aWYoYj09NjEpe2Q9MTZ9ZWxzZSBpZihiPT0zMyl7ZD0xN31lbHNlIHRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksWEllKSkpKTticmVhaztjYXNlIDM1OndoaWxlKGEuZDxhLmope2I9aWhiKGEuaSxhLmQrKyk7aWYoYj09NDEpYnJlYWt9aWYoYiE9NDEpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxZSWUpKSkpO2Q9MjE7YnJlYWs7ZGVmYXVsdDppZihiPT00NXx8OTc8PWImJmI8PTEyMnx8NjU8PWImJmI8PTkwKXstLWEuZDtkPTIyO2JyZWFrfWVsc2UgaWYoYj09NDApe2Q9MjM7YnJlYWt9dGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxXSWUpKSkpO31icmVhaztjYXNlIDkyOmQ9MTA7aWYoYS5kPj1hLmopdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxWSWUpKSkpO2EuYT1paGIoYS5pLGEuZCsrKTticmVhaztkZWZhdWx0OmQ9MDt9YS5jPWR9XG5mdW5jdGlvbiBvWGMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHE7Yy5VZygnUHJvY2VzcyBjb21wYWN0aW9uJywxKTtpZighSGViKFREKG1RYihiLChoX2MoKSxGJGMpKSkpKXtyZXR1cm59ZT1SRChtUWIoYixIJGMpLDg4KTtuPUtmYihVRChtUWIoYixfJGMpKSk7cFhjKGEsYixlKTtsWGMoYixuLzIvMik7bz1iLmI7dHZiKG8sbmV3IEVYYyhlKSk7Zm9yKGo9U3ViKG8sMCk7ai5iIT1qLmQuYzspe2k9UkQoZXZiKGopLDQwKTtpZighSGViKFREKG1RYihpLChxJGMoKSxuJGMpKSkpKXtkPW1YYyhpLGUpO3A9bFdjKGksYik7bD0wO209MDtpZihkKXtxPWQuZTtzd2l0Y2goZS5nKXtjYXNlIDI6bD1xLmEtbi1pLmYuYTtwLmUuYS1uLWkuZi5hPGwmJihsPXAuZS5hLW4taS5mLmEpO209bCtpLmYuYTticmVhaztjYXNlIDE6bD1xLmErZC5mLmErbjtwLmUuYStuPmwmJihsPXAuZS5hK3AuZi5hK24pO209bCtpLmYuYTticmVhaztjYXNlIDQ6bD1xLmItbi1pLmYuYjtwLmUuYi1uLWkuZi5iPGwmJihsPXAuZS5iLW4taS5mLmIpO209bCtpLmYuYjticmVhaztjYXNlIDM6bD1xLmIrZC5mLmIrbjtwLmUuYituPmwmJihsPXAuZS5iK3AuZi5iK24pO209bCtpLmYuYjt9fWVsc2UgaWYocCl7c3dpdGNoKGUuZyl7Y2FzZSAyOmw9cC5lLmEtbi1pLmYuYTttPWwraS5mLmE7YnJlYWs7Y2FzZSAxOmw9cC5lLmErcC5mLmErbjttPWwraS5mLmE7YnJlYWs7Y2FzZSA0Omw9cC5lLmItbi1pLmYuYjttPWwraS5mLmI7YnJlYWs7Y2FzZSAzOmw9cC5lLmIrcC5mLmIrbjttPWwraS5mLmI7fX1pZihkRShtUWIoYixLJGMpKT09PWRFKChMWmMoKSxJWmMpKSl7Zj1sO2c9bTtoPUREYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5hLDE2KSksbmV3IElYYyhmLGcpKSk7aWYoaC5hIT1udWxsKXtlPT0oQ21kKCkseW1kKXx8ZT09em1kPyhpLmUuYT1sKTooaS5lLmI9bCl9ZWxzZXtlPT0oQ21kKCkseW1kKXx8ZT09Qm1kPyhoPUREYihDRGIoTkRiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuYSwxNikpKSxuZXcgV1hjKGYpKSkpOihoPUREYihDRGIoTkRiKG5ldyBTRGIobnVsbCxuZXcgU3diKGEuYSwxNikpKSxuZXcgWVhjKGYpKSkpO2guYSE9bnVsbCYmKGU9PXltZHx8ZT09em1kPyhpLmUuYT1LZmIoVUQoKHNGYihoLmEhPW51bGwpLFJEKGguYSw0MikpLmEpKSk6KGkuZS5iPUtmYihVRCgoc0ZiKGguYSE9bnVsbCksUkQoaC5hLDQyKSkuYSkpKSl9aWYoaC5hIT1udWxsKXtrPVdtYihhLmEsKHNGYihoLmEhPW51bGwpLGguYSksMCk7aWYoaz4wJiZrIT1SRChtUWIoaSxmX2MpLDE3KS5hKXtwUWIoaSxVWmMsKEdlYigpLHRydWUpKTtwUWIoaSxmX2Msc2diKGspKX19fWVsc2V7ZT09KENtZCgpLHltZCl8fGU9PXptZD8oaS5lLmE9bCk6KGkuZS5iPWwpfX19Yy5WZygpfVxuZnVuY3Rpb24gRnJlKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksajthLmI9MTtNcWUoYSk7Yj1udWxsO2lmKGEuYz09MCYmYS5hPT05NCl7TXFlKGEpO2I9KFZzZSgpLFZzZSgpLCsrVXNlLG5ldyB4dGUoNCkpO3J0ZShiLDAsTUxlKTtoPShudWxsLCsrVXNlLG5ldyB4dGUoNCkpfWVsc2V7aD0oVnNlKCksVnNlKCksKytVc2UsbmV3IHh0ZSg0KSl9ZT10cnVlO3doaWxlKChqPWEuYykhPTEpe2lmKGo9PTAmJmEuYT09OTMmJiFlKXtpZihiKXt3dGUoYixoKTtoPWJ9YnJlYWt9Yz1hLmE7ZD1mYWxzZTtpZihqPT0xMCl7c3dpdGNoKGMpe2Nhc2UgMTAwOmNhc2UgNjg6Y2FzZSAxMTk6Y2FzZSA4NzpjYXNlIDExNTpjYXNlIDgzOnV0ZShoLEVyZShjKSk7ZD10cnVlO2JyZWFrO2Nhc2UgMTA1OmNhc2UgNzM6Y2FzZSA5OTpjYXNlIDY3OmM9KHV0ZShoLEVyZShjKSksLTEpO2M8MCYmKGQ9dHJ1ZSk7YnJlYWs7Y2FzZSAxMTI6Y2FzZSA4MDppPVNxZShhLGMpO2lmKCFpKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksaEplKSkpKTt1dGUoaCxpKTtkPXRydWU7YnJlYWs7ZGVmYXVsdDpjPURyZShhKTt9fWVsc2UgaWYoaj09MjQmJiFlKXtpZihiKXt3dGUoYixoKTtoPWJ9Zj1GcmUoYSk7d3RlKGgsZik7aWYoYS5jIT0wfHxhLmEhPTkzKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksbEplKSkpKTticmVha31NcWUoYSk7aWYoIWQpe2lmKGo9PTApe2lmKGM9PTkxKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksbUplKSkpKTtpZihjPT05Myl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLG5KZSkpKSk7aWYoYz09NDUmJiFlJiZhLmEhPTkzKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksb0plKSkpKX1pZihhLmMhPTB8fGEuYSE9NDV8fGM9PTQ1JiZlKXtydGUoaCxjLGMpfWVsc2V7TXFlKGEpO2lmKChqPWEuYyk9PTEpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxqSmUpKSkpO2lmKGo9PTAmJmEuYT09OTMpe3J0ZShoLGMsYyk7cnRlKGgsNDUsNDUpfWVsc2UgaWYoaj09MCYmYS5hPT05M3x8aj09MjQpe3Rocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksb0plKSkpKX1lbHNle2c9YS5hO2lmKGo9PTApe2lmKGc9PTkxKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksbUplKSkpKTtpZihnPT05Myl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLG5KZSkpKSk7aWYoZz09NDUpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxvSmUpKSkpfWVsc2Ugaj09MTAmJihnPURyZShhKSk7TXFlKGEpO2lmKGM+Zyl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHJKZSkpKSk7cnRlKGgsYyxnKX19fWU9ZmFsc2V9aWYoYS5jPT0xKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksakplKSkpKTt2dGUoaCk7c3RlKGgpO2EuYj0wO01xZShhKTtyZXR1cm4gaH1cbmZ1bmN0aW9uIEVHYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHY7Yy5VZygnQ29mZm1hbi1HcmFoYW0gTGF5ZXJpbmcnLDEpO2lmKGIuYS5jLmxlbmd0aD09MCl7Yy5WZygpO3JldHVybn12PVJEKG1RYihiLCh5Q2MoKSxTQWMpKSwxNykuYTtpPTA7Zz0wO2ZvcihtPW5ldyBBbmIoYi5hKTttLmE8bS5jLmMubGVuZ3RoOyl7bD1SRCh5bmIobSksMTApO2wucD1pKys7Zm9yKGY9bmV3IGlzKE1yKGEzYihsKS5hLktjKCksbmV3IGlyKSk7Z3MoZik7KXtlPVJEKGhzKGYpLDE4KTtlLnA9ZysrfX1hLmQ9JEMoeGRiLEh5ZSwyOCxpLDE2LDEpO2EuYT0kQyh4ZGIsSHllLDI4LGcsMTYsMSk7YS5iPSRDKGtFLFB3ZSwyOCxpLDE1LDEpO2EuZT0kQyhrRSxQd2UsMjgsaSwxNSwxKTthLmY9JEMoa0UsUHdlLDI4LGksMTUsMSk7TmMoYS5jKTtGR2MoYSxiKTtvPW5ldyBwd2IobmV3IEpHYyhhKSk7Zm9yKHU9bmV3IEFuYihiLmEpO3UuYTx1LmMuYy5sZW5ndGg7KXtzPVJEKHluYih1KSwxMCk7Zm9yKGY9bmV3IGlzKE1yKFoyYihzKS5hLktjKCksbmV3IGlyKSk7Z3MoZik7KXtlPVJEKGhzKGYpLDE4KTthLmFbZS5wXXx8KythLmJbcy5wXX1hLmJbcy5wXT09MCYmKHpGYihsd2IobyxzKSxCeGUpLHRydWUpfWg9MDt3aGlsZShvLmIuYy5sZW5ndGghPTApe3M9UkQobXdiKG8pLDEwKTthLmZbcy5wXT1oKys7Zm9yKGY9bmV3IGlzKE1yKGEzYihzKS5hLktjKCksbmV3IGlyKSk7Z3MoZik7KXtlPVJEKGhzKGYpLDE4KTtpZihhLmFbZS5wXSl7Y29udGludWV9cT1lLmQuaTstLWEuYltxLnBdO1JjKGEuYyxxLHNnYihhLmZbcy5wXSkpO2EuYltxLnBdPT0wJiYoekZiKGx3YihvLHEpLEJ4ZSksdHJ1ZSl9fW49bmV3IHB3YihuZXcgTkdjKGEpKTtmb3IodD1uZXcgQW5iKGIuYSk7dC5hPHQuYy5jLmxlbmd0aDspe3M9UkQoeW5iKHQpLDEwKTtmb3IoZj1uZXcgaXMoTXIoYTNiKHMpLmEuS2MoKSxuZXcgaXIpKTtncyhmKTspe2U9UkQoaHMoZiksMTgpO2EuYVtlLnBdfHwrK2EuZVtzLnBdfWEuZVtzLnBdPT0wJiYoekZiKGx3YihuLHMpLEJ4ZSksdHJ1ZSl9az1uZXcgYm5iO2Q9QkdjKGIsayk7d2hpbGUobi5iLmMubGVuZ3RoIT0wKXtyPVJEKG13YihuKSwxMCk7KGQuYS5jLmxlbmd0aD49dnx8IXpHYyhyLGQpKSYmKGQ9QkdjKGIsaykpO2czYihyLGQpO2ZvcihmPW5ldyBpcyhNcihaMmIocikuYS5LYygpLG5ldyBpcikpO2dzKGYpOyl7ZT1SRChocyhmKSwxOCk7aWYoYS5hW2UucF0pe2NvbnRpbnVlfXA9ZS5jLmk7LS1hLmVbcC5wXTthLmVbcC5wXT09MCYmKHpGYihsd2IobixwKSxCeGUpLHRydWUpfX1mb3Ioaj1rLmMubGVuZ3RoLTE7aj49MDstLWope1JtYihiLmIsKHRGYihqLGsuYy5sZW5ndGgpLFJEKGsuY1tqXSwzMCkpKX1iLmEuYy5sZW5ndGg9MDtjLlZnKCl9XG5mdW5jdGlvbiBTZWMoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdTt1PWZhbHNlO2Rve3U9ZmFsc2U7Zm9yKGY9Yj8obmV3IFhrYihhLmEuYikpLmEuZ2MoKS0yOjE7Yj9mPj0wOmY8KG5ldyBYa2IoYS5hLmIpKS5hLmdjKCk7Zis9Yj8tMToxKXtlPV81YihhLmEsc2diKGYpKTtmb3Iobj0wO248ZS5iO24rKyl7bD1SRChqdShlLG4pLDEwKTtpZighblFiKGwsKFl3YygpLHp3YykpKXtjb250aW51ZX1pZihhNmIoYS5hLHNnYihmKSkmJmEucj09KGFFYygpLFREYyl8fGI2YihhLmEsc2diKGYpKSYmYS5yPT0oYUVjKCksVURjKSl7Y29udGludWV9dD10cnVlO2ZvcihyPTA7cjxlLmI7cisrKXtxPVJEKGp1KGUsciksMTApO25RYihxLHp3YykmJihiJiZSRChtUWIobCx6d2MpLDE3KS5hPFJEKG1RYihxLHp3YyksMTcpLmF8fCFiJiZSRChtUWIobCx6d2MpLDE3KS5hPlJEKG1RYihxLHp3YyksMTcpLmEpJiYodD1mYWxzZSl9aWYoIXQpe2NvbnRpbnVlfWk9Yj9mKzE6Zi0xO2g9XzViKGEuYSxzZ2IoaSkpO2c9ZmFsc2U7cz10cnVlO2Q9ZmFsc2U7Zm9yKGs9U3ViKGgsMCk7ay5iIT1rLmQuYzspe2o9UkQoZXZiKGspLDEwKTtpZihuUWIoaix6d2MpKXtpZihqLnAhPWwucCl7Zz1nfChiP1JEKG1RYihqLHp3YyksMTcpLmE8UkQobVFiKGwsendjKSwxNykuYTpSRChtUWIoaix6d2MpLDE3KS5hPlJEKG1RYihsLHp3YyksMTcpLmEpO3M9ZmFsc2V9fWVsc2UgaWYoIWcmJnMpe2lmKGouaz09KHIzYigpLG4zYikpe2Q9dHJ1ZTtiPyhtPVJEKGhzKG5ldyBpcyhNcihaMmIoaikuYS5LYygpLG5ldyBpcikpKSwxOCkuYy5pKToobT1SRChocyhuZXcgaXMoTXIoYTNiKGopLmEuS2MoKSxuZXcgaXIpKSksMTgpLmQuaSk7aWYobT09bCl7Yj8oYz1SRChocyhuZXcgaXMoTXIoYTNiKGopLmEuS2MoKSxuZXcgaXIpKSksMTgpLmQuaSk6KGM9UkQoaHMobmV3IGlzKE1yKFoyYihqKS5hLktjKCksbmV3IGlyKSkpLDE4KS5jLmkpOyhiP1JEKCQ1YihhLmEsYyksMTcpLmEtUkQoJDViKGEuYSxtKSwxNykuYTpSRCgkNWIoYS5hLG0pLDE3KS5hLVJEKCQ1YihhLmEsYyksMTcpLmEpPD0yJiYocz1mYWxzZSl9fX19aWYoZCYmcyl7Yj8oYz1SRChocyhuZXcgaXMoTXIoYTNiKGwpLmEuS2MoKSxuZXcgaXIpKSksMTgpLmQuaSk6KGM9UkQoaHMobmV3IGlzKE1yKFoyYihsKS5hLktjKCksbmV3IGlyKSkpLDE4KS5jLmkpOyhiP1JEKCQ1YihhLmEsYyksMTcpLmEtUkQoJDViKGEuYSxsKSwxNykuYTpSRCgkNWIoYS5hLGwpLDE3KS5hLVJEKCQ1YihhLmEsYyksMTcpLmEpPD0yJiZjLms9PShyM2IoKSxwM2IpJiYocz1mYWxzZSl9aWYoZ3x8cyl7cD1YZWMoYSxsLGIpO3doaWxlKHAuYS5nYygpIT0wKXtvPVJEKHAuYS5lYygpLktjKCkuUGIoKSwxMCk7cC5hLkJjKG8pIT1udWxsO3llKHAsWGVjKGEsbyxiKSl9LS1uO3U9dHJ1ZX19fX13aGlsZSh1KX1cbmZ1bmN0aW9uIFhhZShhKXtfQWQoYS5jLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI2RlY2ltYWwnXSkpO19BZChhLmQscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0RLZSwnaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjaW50ZWdlciddKSk7X0FkKGEuZSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbREtlLCdodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNib29sZWFuJ10pKTtfQWQoYS5mLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ0VCb29sZWFuJyxHSWUsJ0VCb29sZWFuOk9iamVjdCddKSk7X0FkKGEuaSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbREtlLCdodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNieXRlJ10pKTtfQWQoYS5nLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI2hleEJpbmFyeSddKSk7X0FkKGEuaixxS2UsY0QoV0MocUosMSksTnZlLDIsNixbREtlLCdFQnl0ZScsR0llLCdFQnl0ZTpPYmplY3QnXSkpO19BZChhLm4scUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0RLZSwnRUNoYXInLEdJZSwnRUNoYXI6T2JqZWN0J10pKTtfQWQoYS50LHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI2RvdWJsZSddKSk7X0FkKGEudSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbREtlLCdFRG91YmxlJyxHSWUsJ0VEb3VibGU6T2JqZWN0J10pKTtfQWQoYS5GLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI2Zsb2F0J10pKTtfQWQoYS5HLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ0VGbG9hdCcsR0llLCdFRmxvYXQ6T2JqZWN0J10pKTtfQWQoYS5JLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI2ludCddKSk7X0FkKGEuSixxS2UsY0QoV0MocUosMSksTnZlLDIsNixbREtlLCdFSW50JyxHSWUsJ0VJbnQ6T2JqZWN0J10pKTtfQWQoYS5OLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI2xvbmcnXSkpO19BZChhLk8scUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0RLZSwnRUxvbmcnLEdJZSwnRUxvbmc6T2JqZWN0J10pKTtfQWQoYS5aLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI3Nob3J0J10pKTtfQWQoYS4kLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ0VTaG9ydCcsR0llLCdFU2hvcnQ6T2JqZWN0J10pKTtfQWQoYS5fLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtES2UsJ2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI3N0cmluZyddKSl9XG5mdW5jdGlvbiBDMGMoYSxiLGMsZCxlLGYsZyl7dmFyIGgsaSxqLGssbCxtLG4sbzttPVJEKGQuYSwxNykuYTtuPVJEKGQuYiwxNykuYTtsPWEuYjtvPWEuYztoPTA7az0wO2lmKGI9PShDbWQoKSx5bWQpfHxiPT16bWQpe2s9VXZiKFFDYihIRGIoR0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGMuYiwxNikpLG5ldyBiMmMpLG5ldyBiMWMpKSk7aWYobC5lLmIrbC5mLmIvMj5rKXtqPSsrbjtoPUtmYihVRChMdmIoSkRiKEdEYihuZXcgU0RiKG51bGwsbmV3IFN3YihjLmIsMTYpKSxuZXcgZDJjKGUsaikpLG5ldyBkMWMpKSkpfWVsc2V7aT0rK207aD1LZmIoVUQoTHZiKEtEYihHRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYy5iLDE2KSksbmV3IGYyYyhlLGkpKSxuZXcgaDFjKSkpKX19ZWxzZXtrPVV2YihRQ2IoSERiKEdEYihuZXcgU0RiKG51bGwsbmV3IFN3YihjLmIsMTYpKSxuZXcgeDFjKSxuZXcgbDFjKSkpO2lmKGwuZS5hK2wuZi5hLzI+ayl7aj0rK247aD1LZmIoVUQoTHZiKEpEYihHRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYy5iLDE2KSksbmV3IHoxYyhlLGopKSxuZXcgbjFjKSkpKX1lbHNle2k9KyttO2g9S2ZiKFVEKEx2YihLRGIoR0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKGMuYiwxNikpLG5ldyBCMWMoZSxpKSksbmV3IHIxYykpKSl9fWlmKGI9PXltZCl7T3ViKGEuYSxuZXcgcmpkKEtmYihVRChtUWIobCwocSRjKCksZiRjKSkpKS1lLGgpKTtPdWIoYS5hLG5ldyByamQoby5lLmErby5mLmErZStmLGgpKTtPdWIoYS5hLG5ldyByamQoby5lLmErby5mLmErZStmLG8uZS5iK28uZi5iLzIpKTtPdWIoYS5hLG5ldyByamQoby5lLmErby5mLmEsby5lLmIrby5mLmIvMikpfWVsc2UgaWYoYj09em1kKXtPdWIoYS5hLG5ldyByamQoS2ZiKFVEKG1RYihsLChxJGMoKSxlJGMpKSkpK2UsbC5lLmIrbC5mLmIvMikpO091YihhLmEsbmV3IHJqZChsLmUuYStsLmYuYStlLGgpKTtPdWIoYS5hLG5ldyByamQoby5lLmEtZS1mLGgpKTtPdWIoYS5hLG5ldyByamQoby5lLmEtZS1mLG8uZS5iK28uZi5iLzIpKTtPdWIoYS5hLG5ldyByamQoby5lLmEsby5lLmIrby5mLmIvMikpfWVsc2UgaWYoYj09Qm1kKXtPdWIoYS5hLG5ldyByamQoaCxLZmIoVUQobVFiKGwsKHEkYygpLGYkYykpKSktZSkpO091YihhLmEsbmV3IHJqZChoLG8uZS5iK28uZi5iK2UrZikpO091YihhLmEsbmV3IHJqZChvLmUuYStvLmYuYS8yLG8uZS5iK28uZi5iK2UrZikpO091YihhLmEsbmV3IHJqZChvLmUuYStvLmYuYS8yLG8uZS5iK28uZi5iK2UpKX1lbHNle2EuYS5iPT0wfHwoUkQoUnViKGEuYSksOCkuYj1LZmIoVUQobVFiKGwsKHEkYygpLGUkYykpKSkrZSpSRChnLmIsMTcpLmEpO091YihhLmEsbmV3IHJqZChoLEtmYihVRChtUWIobCwocSRjKCksZSRjKSkpKStlKlJEKGcuYiwxNykuYSkpO091YihhLmEsbmV3IHJqZChoLG8uZS5iLWUqUkQoZy5hLDE3KS5hLWYpKX1yZXR1cm4gbmV3IFB0ZChzZ2IobSksc2diKG4pKX1cbmZ1bmN0aW9uIEFTZChhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbjtnPXRydWU7bD1udWxsO2Q9bnVsbDtlPW51bGw7Yj1mYWxzZTtuPV9SZDtqPW51bGw7Zj1udWxsO2g9MDtpPXNTZChhLGgsWlJkLCRSZCk7aWYoaTxhLmxlbmd0aCYmKEJGYihpLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoaSk9PTU4KSl7bD0oQUZiKGgsaSxhLmxlbmd0aCksYS5zdWJzdHIoaCxpLWgpKTtoPWkrMX1jPWwhPW51bGwmJnRwYihlU2QsbC50b0xvd2VyQ2FzZSgpKTtpZihjKXtpPWEubGFzdEluZGV4T2YoJyEvJyk7aWYoaT09LTEpe3Rocm93IEFkYihuZXcgYWdiKCdubyBhcmNoaXZlIHNlcGFyYXRvcicpKX1nPXRydWU7ZD16aGIoYSxoLCsraSk7aD1pfWVsc2UgaWYoaD49MCYmbGhiKGEuc3Vic3RyKGgsJy8vJy5sZW5ndGgpLCcvLycpKXtoKz0yO2k9c1NkKGEsaCxhU2QsYlNkKTtkPShBRmIoaCxpLGEubGVuZ3RoKSxhLnN1YnN0cihoLGktaCkpO2g9aX1lbHNlIGlmKGwhPW51bGwmJihoPT1hLmxlbmd0aHx8KEJGYihoLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoaCkhPTQ3KSkpe2c9ZmFsc2U7aT1yaGIoYSxGaGIoMzUpLGgpO2k9PS0xJiYoaT1hLmxlbmd0aCk7ZD0oQUZiKGgsaSxhLmxlbmd0aCksYS5zdWJzdHIoaCxpLWgpKTtoPWl9aWYoIWMmJmg8YS5sZW5ndGgmJihCRmIoaCxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGgpPT00Nykpe2k9c1NkKGEsaCsxLGFTZCxiU2QpO2s9KEFGYihoKzEsaSxhLmxlbmd0aCksYS5zdWJzdHIoaCsxLGktKGgrMSkpKTtpZihrLmxlbmd0aD4wJiZpaGIoayxrLmxlbmd0aC0xKT09NTgpe2U9aztoPWl9fWlmKGg8YS5sZW5ndGgmJihCRmIoaCxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGgpPT00NykpeysraDtiPXRydWV9aWYoaDxhLmxlbmd0aCYmKEJGYihoLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoaCkhPTYzKSYmKEJGYihoLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoaCkhPTM1KSl7bT1uZXcgYm5iO3doaWxlKGg8YS5sZW5ndGgmJihCRmIoaCxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGgpIT02MykmJihCRmIoaCxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGgpIT0zNSkpe2k9c1NkKGEsaCxhU2QsYlNkKTtSbWIobSwoQUZiKGgsaSxhLmxlbmd0aCksYS5zdWJzdHIoaCxpLWgpKSk7aD1pO2g8YS5sZW5ndGgmJihCRmIoaCxhLmxlbmd0aCksYS5jaGFyQ29kZUF0KGgpPT00NykmJihCU2QoYSwrK2gpfHwobS5jLnB1c2goJycpLHVuZGVmaW5lZCx0cnVlKSl9bj0kQyhxSixOdmUsMixtLmMubGVuZ3RoLDYsMSk7YW5iKG0sbil9aWYoaDxhLmxlbmd0aCYmKEJGYihoLGEubGVuZ3RoKSxhLmNoYXJDb2RlQXQoaCk9PTYzKSl7aT1waGIoYSwzNSwrK2gpO2k9PS0xJiYoaT1hLmxlbmd0aCk7aj0oQUZiKGgsaSxhLmxlbmd0aCksYS5zdWJzdHIoaCxpLWgpKTtoPWl9aDxhLmxlbmd0aCYmKGY9eWhiKGEsKytoKSk7SVNkKGcsbCxkLGUsbixqKTtyZXR1cm4gbmV3IGxTZChnLGwsZCxlLGIsbixqLGYpfVxuZnVuY3Rpb24gUF9iKCl7UF9iPWdlYjt6JGIoKTtPX2I9bmV3IFRwO1JjKE9fYiwocXBkKCksY3BkKSxicGQpO1JjKE9fYixtcGQsYnBkKTtSYyhPX2IsZHBkLGJwZCk7UmMoT19iLGpwZCxicGQpO1JjKE9fYixpcGQsYnBkKTtSYyhPX2IsZ3BkLGJwZCk7UmMoT19iLGpwZCxjcGQpO1JjKE9fYixicGQsWm9kKTtSYyhPX2IsY3BkLFpvZCk7UmMoT19iLG1wZCxab2QpO1JjKE9fYixkcGQsWm9kKTtSYyhPX2IsaHBkLFpvZCk7UmMoT19iLGpwZCxab2QpO1JjKE9fYixpcGQsWm9kKTtSYyhPX2IsZ3BkLFpvZCk7UmMoT19iLGFwZCxab2QpO1JjKE9fYixicGQsa3BkKTtSYyhPX2IsY3BkLGtwZCk7UmMoT19iLFpvZCxrcGQpO1JjKE9fYixtcGQsa3BkKTtSYyhPX2IsZHBkLGtwZCk7UmMoT19iLGhwZCxrcGQpO1JjKE9fYixqcGQsa3BkKTtSYyhPX2IsYXBkLGtwZCk7UmMoT19iLGxwZCxrcGQpO1JjKE9fYixpcGQsa3BkKTtSYyhPX2IsZXBkLGtwZCk7UmMoT19iLGdwZCxrcGQpO1JjKE9fYixjcGQsbXBkKTtSYyhPX2IsZHBkLG1wZCk7UmMoT19iLGpwZCxtcGQpO1JjKE9fYixncGQsbXBkKTtSYyhPX2IsY3BkLGRwZCk7UmMoT19iLG1wZCxkcGQpO1JjKE9fYixqcGQsZHBkKTtSYyhPX2IsZHBkLGRwZCk7UmMoT19iLGlwZCxkcGQpO1JjKE9fYixicGQsJG9kKTtSYyhPX2IsY3BkLCRvZCk7UmMoT19iLFpvZCwkb2QpO1JjKE9fYixrcGQsJG9kKTtSYyhPX2IsbXBkLCRvZCk7UmMoT19iLGRwZCwkb2QpO1JjKE9fYixocGQsJG9kKTtSYyhPX2IsanBkLCRvZCk7UmMoT19iLGxwZCwkb2QpO1JjKE9fYixhcGQsJG9kKTtSYyhPX2IsZ3BkLCRvZCk7UmMoT19iLGlwZCwkb2QpO1JjKE9fYixmcGQsJG9kKTtSYyhPX2IsYnBkLGxwZCk7UmMoT19iLGNwZCxscGQpO1JjKE9fYixab2QsbHBkKTtSYyhPX2IsbXBkLGxwZCk7UmMoT19iLGRwZCxscGQpO1JjKE9fYixocGQsbHBkKTtSYyhPX2IsanBkLGxwZCk7UmMoT19iLGFwZCxscGQpO1JjKE9fYixncGQsbHBkKTtSYyhPX2IsZXBkLGxwZCk7UmMoT19iLGZwZCxscGQpO1JjKE9fYixjcGQsYXBkKTtSYyhPX2IsbXBkLGFwZCk7UmMoT19iLGRwZCxhcGQpO1JjKE9fYixqcGQsYXBkKTtSYyhPX2IsbHBkLGFwZCk7UmMoT19iLGdwZCxhcGQpO1JjKE9fYixpcGQsYXBkKTtSYyhPX2IsYnBkLF9vZCk7UmMoT19iLGNwZCxfb2QpO1JjKE9fYixab2QsX29kKTtSYyhPX2IsbXBkLF9vZCk7UmMoT19iLGRwZCxfb2QpO1JjKE9fYixocGQsX29kKTtSYyhPX2IsanBkLF9vZCk7UmMoT19iLGFwZCxfb2QpO1JjKE9fYixncGQsX29kKTtSYyhPX2IsY3BkLGlwZCk7UmMoT19iLFpvZCxpcGQpO1JjKE9fYixrcGQsaXBkKTtSYyhPX2IsZHBkLGlwZCk7UmMoT19iLGJwZCxlcGQpO1JjKE9fYixjcGQsZXBkKTtSYyhPX2Isa3BkLGVwZCk7UmMoT19iLG1wZCxlcGQpO1JjKE9fYixkcGQsZXBkKTtSYyhPX2IsaHBkLGVwZCk7UmMoT19iLGpwZCxlcGQpO1JjKE9fYixqcGQsZnBkKTtSYyhPX2IsZHBkLGZwZCk7UmMoT19iLGFwZCxicGQpO1JjKE9fYixhcGQsbXBkKTtSYyhPX2IsYXBkLFpvZCk7UmMoT19iLGhwZCxicGQpO1JjKE9fYixocGQsY3BkKTtSYyhPX2IsaHBkLGtwZCl9XG5mdW5jdGlvbiBfUWMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHc7Yy5VZygnQnJhbmRlcyAmIEtvZXBmIG5vZGUgcGxhY2VtZW50JywxKTthLmE9YjthLmM9aVJjKGIpO2Q9UkQobVFiKGIsKHlDYygpLGZCYykpLDI4MSk7bj1IZWIoVEQobVFiKGIsZ0JjKSkpO2EuZD1kPT0oT3VjKCksTHVjKSYmIW58fGQ9PUl1YzskUWMoYSxiKTt2PW51bGw7dz1udWxsO3I9bnVsbDtzPW51bGw7cT0oZGsoNCxpd2UpLG5ldyBjbmIoNCkpO3N3aXRjaChSRChtUWIoYixmQmMpLDI4MSkuZyl7Y2FzZSAzOnI9bmV3IHNRYyhiLGEuYy5kLChFUWMoKSxDUWMpLCh3UWMoKSx1UWMpKTtaRWIocS5jLHIpO2JyZWFrO2Nhc2UgMTpzPW5ldyBzUWMoYixhLmMuZCwoRVFjKCksRFFjKSwod1FjKCksdVFjKSk7WkViKHEuYyxzKTticmVhaztjYXNlIDQ6dj1uZXcgc1FjKGIsYS5jLmQsKEVRYygpLENRYyksKHdRYygpLHZRYykpO1pFYihxLmMsdik7YnJlYWs7Y2FzZSAyOnc9bmV3IHNRYyhiLGEuYy5kLChFUWMoKSxEUWMpLCh3UWMoKSx2UWMpKTtaRWIocS5jLHcpO2JyZWFrO2RlZmF1bHQ6cj1uZXcgc1FjKGIsYS5jLmQsKEVRYygpLENRYyksKHdRYygpLHVRYykpO3M9bmV3IHNRYyhiLGEuYy5kLERRYyx1UWMpO3Y9bmV3IHNRYyhiLGEuYy5kLENRYyx2UWMpO3c9bmV3IHNRYyhiLGEuYy5kLERRYyx2UWMpO1pFYihxLmMsdik7WkViKHEuYyx3KTtaRWIocS5jLHIpO1pFYihxLmMscyk7fWU9bmV3IE1RYyhiLGEuYyk7Zm9yKGg9bmV3IEFuYihxKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoaCksMTg1KTtMUWMoZSxmLGEuYik7S1FjKGYpfW09bmV3IFJRYyhiLGEuYyk7Zm9yKGk9bmV3IEFuYihxKTtpLmE8aS5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoaSksMTg1KTtPUWMobSxmKX1pZihjLl9nKCkpe2ZvcihqPW5ldyBBbmIocSk7ai5hPGouYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGopLDE4NSk7Yy5iaChmKycgc2l6ZSBpcyAnK3FRYyhmKSl9fWw9bnVsbDtpZihhLmQpe2s9WVFjKGEscSxhLmMuZCk7WFFjKGIsayxjKSYmKGw9ayl9aWYoIWwpe2ZvcihqPW5ldyBBbmIocSk7ai5hPGouYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGopLDE4NSk7WFFjKGIsZixjKSYmKCFsfHxxUWMobCk+cVFjKGYpKSYmKGw9Zil9fSFsJiYobD0odEZiKDAscS5jLmxlbmd0aCksUkQocS5jWzBdLDE4NSkpKTtmb3IocD1uZXcgQW5iKGIuYik7cC5hPHAuYy5jLmxlbmd0aDspe289UkQoeW5iKHApLDMwKTtmb3IodT1uZXcgQW5iKG8uYSk7dS5hPHUuYy5jLmxlbmd0aDspe3Q9UkQoeW5iKHUpLDEwKTt0Lm4uYj1LZmIobC5wW3QucF0pK0tmYihsLmRbdC5wXSl9fWlmKGMuX2coKSl7Yy5iaCgnQ2hvc2VuIG5vZGUgcGxhY2VtZW50OiAnK2wpO2MuYmgoJ0Jsb2NrczogJytiUmMobCkpO2MuYmgoJ0NsYXNzZXM6ICcrY1JjKGwsYykpO2MuYmgoJ01hcmtlZCBlZGdlczogJythLmIpfWZvcihnPW5ldyBBbmIocSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDE4NSk7Zi5nPW51bGw7Zi5iPW51bGw7Zi5hPW51bGw7Zi5kPW51bGw7Zi5qPW51bGw7Zi5pPW51bGw7Zi5wPW51bGx9Z1JjKGEuYyk7YS5iLmEuJGIoKTtjLlZnKCl9XG5mdW5jdGlvbiBHVmMoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEc7aWYoYS5jLmxlbmd0aD09MSl7Q1ZjKCh0RmIoMCxhLmMubGVuZ3RoKSxSRChhLmNbMF0sMTIxKSkpO3JldHVybiB0RmIoMCxhLmMubGVuZ3RoKSxSRChhLmNbMF0sMTIxKX1lbHNlIGlmKGEuYy5sZW5ndGg8PTApe3JldHVybiBuZXcgWVdjfWZvcihpPW5ldyBBbmIoYSk7aS5hPGkuYy5jLmxlbmd0aDspe2c9UkQoeW5iKGkpLDEyMSk7cz0wO289bHZlO3A9bHZlO209cXdlO249cXdlO2ZvcihyPVN1YihnLmIsMCk7ci5iIT1yLmQuYzspe3E9UkQoZXZiKHIpLDQwKTtzKz1SRChtUWIocSwoaF9jKCksWCRjKSksMTcpLmE7bz0kd25kLk1hdGgubWluKG8scS5lLmEpO3A9JHduZC5NYXRoLm1pbihwLHEuZS5iKTttPSR3bmQuTWF0aC5tYXgobSxxLmUuYStxLmYuYSk7bj0kd25kLk1hdGgubWF4KG4scS5lLmIrcS5mLmIpfXBRYihnLChoX2MoKSxYJGMpLHNnYihzKSk7cFFiKGcsKHEkYygpLFNaYyksbmV3IHJqZChvLHApKTtwUWIoZyxSWmMsbmV3IHJqZChtLG4pKX15b2IoKTtfbWIoYSxuZXcgS1ZjKTt2PW5ldyBZV2M7a1FiKHYsKHRGYigwLGEuYy5sZW5ndGgpLFJEKGEuY1swXSw5NikpKTtsPTA7RD0wO2ZvcihqPW5ldyBBbmIoYSk7ai5hPGouYy5jLmxlbmd0aDspe2c9UkQoeW5iKGopLDEyMSk7dz1vamQoYWpkKFJEKG1RYihnLChxJGMoKSxSWmMpKSw4KSksUkQobVFiKGcsU1pjKSw4KSk7bD0kd25kLk1hdGgubWF4KGwsdy5hKTtEKz13LmEqdy5ifWw9JHduZC5NYXRoLm1heChsLCR3bmQuTWF0aC5zcXJ0KEQpKktmYihVRChtUWIodiwoaF9jKCksRSRjKSkpKSk7QT1LZmIoVUQobVFiKHYsXyRjKSkpO0Y9MDtHPTA7az0wO2I9QTtmb3IoaD1uZXcgQW5iKGEpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxMjEpO3c9b2pkKGFqZChSRChtUWIoZywocSRjKCksUlpjKSksOCkpLFJEKG1RYihnLFNaYyksOCkpO2lmKEYrdy5hPmwpe0Y9MDtHKz1rK0E7az0wfUZWYyh2LGcsRixHKTtiPSR3bmQuTWF0aC5tYXgoYixGK3cuYSk7az0kd25kLk1hdGgubWF4KGssdy5iKTtGKz13LmErQX11PW5ldyBUc2I7Yz1uZXcgVHNiO2ZvcihDPW5ldyBBbmIoYSk7Qy5hPEMuYy5jLmxlbmd0aDspe0I9UkQoeW5iKEMpLDEyMSk7ZD1IZWIoVEQobVFiKEIsKHVtZCgpLE1rZCkpKSk7dD0hQi5xPyhudWxsLHdvYik6Qi5xO2ZvcihmPXQudmMoKS5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDQ0KTtpZihVamIodSxlLmxkKCkpKXtpZihkRShSRChlLmxkKCksMTQ5KS5TZygpKSE9PWRFKGUubWQoKSkpe2lmKGQmJlVqYihjLGUubGQoKSkpe2dpYigpOydGb3VuZCBkaWZmZXJlbnQgdmFsdWVzIGZvciBwcm9wZXJ0eSAnK1JEKGUubGQoKSwxNDkpLlBnKCkrJyBpbiBjb21wb25lbnRzLic7U3RyaW5nLmZyb21DaGFyQ29kZSgxMCl9ZWxzZXtaamIodSxSRChlLmxkKCksMTQ5KSxlLm1kKCkpO3BRYih2LFJEKGUubGQoKSwxNDkpLGUubWQoKSk7ZCYmWmpiKGMsUkQoZS5sZCgpLDE0OSksZS5tZCgpKX19fWVsc2V7WmpiKHUsUkQoZS5sZCgpLDE0OSksZS5tZCgpKTtwUWIodixSRChlLmxkKCksMTQ5KSxlLm1kKCkpfX19Q1ZjKHYpO3JldHVybiB2fVxuZnVuY3Rpb24gZjdkKGEsYil7c3dpdGNoKGEuZSl7Y2FzZSAwOmNhc2UgMjpjYXNlIDQ6Y2FzZSA2OmNhc2UgNDI6Y2FzZSA0NDpjYXNlIDQ2OmNhc2UgNDg6Y2FzZSA4OmNhc2UgMTA6Y2FzZSAxMjpjYXNlIDE0OmNhc2UgMTY6Y2FzZSAxODpjYXNlIDIwOmNhc2UgMjI6Y2FzZSAyNDpjYXNlIDI2OmNhc2UgMjg6Y2FzZSAzMDpjYXNlIDMyOmNhc2UgMzQ6Y2FzZSAzNjpjYXNlIDM4OnJldHVybiBuZXcgc2plKGEuYixhLmEsYixhLmMpO2Nhc2UgMTpyZXR1cm4gbmV3IF9aZChhLmEsYixCWWQoYi5EaCgpLGEuYykpO2Nhc2UgNDM6cmV0dXJuIG5ldyBsaWUoYS5hLGIsQllkKGIuRGgoKSxhLmMpKTtjYXNlIDM6cmV0dXJuIG5ldyBYWmQoYS5hLGIsQllkKGIuRGgoKSxhLmMpKTtjYXNlIDQ1OnJldHVybiBuZXcgaWllKGEuYSxiLEJZZChiLkRoKCksYS5jKSk7Y2FzZSA0MTpyZXR1cm4gbmV3IERWZChSRChXVmQoYS5jKSwyOSksYS5hLGIsQllkKGIuRGgoKSxhLmMpKTtjYXNlIDUwOnJldHVybiBuZXcgQ2plKFJEKFdWZChhLmMpLDI5KSxhLmEsYixCWWQoYi5EaCgpLGEuYykpO2Nhc2UgNTpyZXR1cm4gbmV3IG9pZShhLmEsYixCWWQoYi5EaCgpLGEuYyksYS5kLm4pO2Nhc2UgNDc6cmV0dXJuIG5ldyBzaWUoYS5hLGIsQllkKGIuRGgoKSxhLmMpLGEuZC5uKTtjYXNlIDc6cmV0dXJuIG5ldyBDNWQoYS5hLGIsQllkKGIuRGgoKSxhLmMpLGEuZC5uKTtjYXNlIDQ5OnJldHVybiBuZXcgRzVkKGEuYSxiLEJZZChiLkRoKCksYS5jKSxhLmQubik7Y2FzZSA5OnJldHVybiBuZXcgZ2llKGEuYSxiLEJZZChiLkRoKCksYS5jKSk7Y2FzZSAxMTpyZXR1cm4gbmV3IGVpZShhLmEsYixCWWQoYi5EaCgpLGEuYykpO2Nhc2UgMTM6cmV0dXJuIG5ldyBhaWUoYS5hLGIsQllkKGIuRGgoKSxhLmMpKTtjYXNlIDE1OnJldHVybiBuZXcgS2ZlKGEuYSxiLEJZZChiLkRoKCksYS5jKSk7Y2FzZSAxNzpyZXR1cm4gbmV3IENpZShhLmEsYixCWWQoYi5EaCgpLGEuYykpO2Nhc2UgMTk6cmV0dXJuIG5ldyB6aWUoYS5hLGIsQllkKGIuRGgoKSxhLmMpKTtjYXNlIDIxOnJldHVybiBuZXcgdmllKGEuYSxiLEJZZChiLkRoKCksYS5jKSk7Y2FzZSAyMzpyZXR1cm4gbmV3IFBaZChhLmEsYixCWWQoYi5EaCgpLGEuYykpO2Nhc2UgMjU6cmV0dXJuIG5ldyBiamUoYS5hLGIsQllkKGIuRGgoKSxhLmMpLGEuZC5uKTtjYXNlIDI3OnJldHVybiBuZXcgWWllKGEuYSxiLEJZZChiLkRoKCksYS5jKSxhLmQubik7Y2FzZSAyOTpyZXR1cm4gbmV3IFRpZShhLmEsYixCWWQoYi5EaCgpLGEuYyksYS5kLm4pO2Nhc2UgMzE6cmV0dXJuIG5ldyBOaWUoYS5hLGIsQllkKGIuRGgoKSxhLmMpLGEuZC5uKTtjYXNlIDMzOnJldHVybiBuZXcgJGllKGEuYSxiLEJZZChiLkRoKCksYS5jKSxhLmQubik7Y2FzZSAzNTpyZXR1cm4gbmV3IFZpZShhLmEsYixCWWQoYi5EaCgpLGEuYyksYS5kLm4pO2Nhc2UgMzc6cmV0dXJuIG5ldyBQaWUoYS5hLGIsQllkKGIuRGgoKSxhLmMpLGEuZC5uKTtjYXNlIDM5OnJldHVybiBuZXcgSWllKGEuYSxiLEJZZChiLkRoKCksYS5jKSxhLmQubik7Y2FzZSA0MDpyZXR1cm4gbmV3IFVnZShiLEJZZChiLkRoKCksYS5jKSk7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IHl6KCdVbmtub3duIGZlYXR1cmUgc3R5bGU6ICcrYS5lKSk7fX1cbmZ1bmN0aW9uIGgyYyhhKXt2YXIgYixjLGQsZSxmLGcsaCxpO2Y9MDtlPWEuYS5iO2ZvcihpPVN1YihhLmEsMCk7aS5iIT1pLmQuYzspe2g9UkQoZXZiKGkpLDI0MCk7Zz0oZisxKS8oZSsxKTtpZighYS5jJiYhYS5kKXtyZXR1cm59ZWxzZSBpZighIWEuYyYmIWEuZCl7YS5nPXRydWU7aWYoYS5iPT0oQ21kKCkseW1kKSl7ZD1hLmMuZS5iK2EuYy5mLmIrYS5lKihmKzEpO2I9bmV3IHJqZChLZmIoVUQobVFiKGEuYywocSRjKCksZSRjKSkpKSthLmUsZCk7Yz1uZXcgcmpkKEtmYihVRChtUWIoYS5jLGYkYykpKS1hLmUsZCl9ZWxzZSBpZihhLmI9PXptZCl7ZD1hLmMuZS5iK2EuYy5mLmIrYS5lKihmKzEpO2I9bmV3IHJqZChLZmIoVUQobVFiKGEuYywocSRjKCksZiRjKSkpKS1hLmUsZCk7Yz1uZXcgcmpkKEtmYihVRChtUWIoYS5jLGUkYykpKSthLmUsZCl9ZWxzZSBpZihhLmI9PUJtZCl7ZD1hLmMuZS5hK2EuYy5mLmErYS5lKihmKzEpO2I9bmV3IHJqZChkLEtmYihVRChtUWIoYS5jLChxJGMoKSxlJGMpKSkpK2EuZSk7Yz1uZXcgcmpkKGQsS2ZiKFVEKG1RYihhLmMsZiRjKSkpLWEuZSl9ZWxzZXtkPWEuYy5lLmErYS5jLmYuYSthLmUqKGYrMSk7Yj1uZXcgcmpkKGQsS2ZiKFVEKG1RYihhLmMsKHEkYygpLGYkYykpKSktYS5lKTtjPW5ldyByamQoZCxLZmIoVUQobVFiKGEuYyxlJGMpKSkrYS5lKX19ZWxzZSBpZighIWEuYyYmISFhLmQpe2lmKGEuYj09KENtZCgpLHltZCkpe2Q9YS5kLmUuYipnKyhhLmMuZS5iK2EuYy5mLmIpKigxLWcpO2I9bmV3IHJqZChLZmIoVUQobVFiKGEuYywocSRjKCksZSRjKSkpKSthLmUsZCk7Yz1uZXcgcmpkKEtmYihVRChtUWIoYS5jLGYkYykpKS1hLmUsZCl9ZWxzZSBpZihhLmI9PXptZCl7ZD1hLmQuZS5iKmcrKGEuYy5lLmIrYS5jLmYuYikqKDEtZyk7Yj1uZXcgcmpkKEtmYihVRChtUWIoYS5jLChxJGMoKSxmJGMpKSkpLWEuZSxkKTtjPW5ldyByamQoS2ZiKFVEKG1RYihhLmMsZSRjKSkpK2EuZSxkKX1lbHNlIGlmKGEuYj09Qm1kKXtkPWEuZC5lLmEqZysoYS5jLmUuYSthLmMuZi5hKSooMS1nKTtiPW5ldyByamQoZCxLZmIoVUQobVFiKGEuYywocSRjKCksZSRjKSkpKSthLmUpO2M9bmV3IHJqZChkLEtmYihVRChtUWIoYS5jLGYkYykpKS1hLmUpfWVsc2V7ZD1hLmQuZS5hKmcrKGEuYy5lLmErYS5jLmYuYSkqKDEtZyk7Yj1uZXcgcmpkKGQsS2ZiKFVEKG1RYihhLmMsKHEkYygpLGYkYykpKSktYS5lKTtjPW5ldyByamQoZCxLZmIoVUQobVFiKGEuYyxlJGMpKSkrYS5lKX19ZWxzZXthLmY9dHJ1ZTtpZihhLmI9PShDbWQoKSx5bWQpKXtkPWEuZC5lLmItYS5lKihmKzEpO2I9bmV3IHJqZChLZmIoVUQobVFiKGEuZCwocSRjKCksZSRjKSkpKSthLmUsZCk7Yz1uZXcgcmpkKEtmYihVRChtUWIoYS5kLGYkYykpKS1hLmUsZCl9ZWxzZSBpZihhLmI9PXptZCl7ZD1hLmQuZS5iLWEuZSooZisxKTtiPW5ldyByamQoS2ZiKFVEKG1RYihhLmQsKHEkYygpLGYkYykpKSktYS5lLGQpO2M9bmV3IHJqZChLZmIoVUQobVFiKGEuZCxlJGMpKSkrYS5lLGQpfWVsc2UgaWYoYS5iPT1CbWQpe2Q9YS5kLmUuYS1hLmUqKGYrMSk7Yj1uZXcgcmpkKGQsS2ZiKFVEKG1RYihhLmQsKHEkYygpLGUkYykpKSkrYS5lKTtjPW5ldyByamQoZCxLZmIoVUQobVFiKGEuZCxmJGMpKSktYS5lKX1lbHNle2Q9YS5kLmUuYS1hLmUqKGYrMSk7Yj1uZXcgcmpkKGQsS2ZiKFVEKG1RYihhLmQsKHEkYygpLGYkYykpKSktYS5lKTtjPW5ldyByamQoZCxLZmIoVUQobVFiKGEuZCxlJGMpKSkrYS5lKX19UkQoaC5hLDgpLmE9Yi5hO1JEKGguYSw4KS5iPWIuYjtoLmIuYT1jLmE7aC5iLmI9Yy5iOysrZn19XG5mdW5jdGlvbiBMQShhLGIsYyxkLGUsZil7dmFyIGcsaCxpLGosayxsLG0sbixvLHAscSxyO3N3aXRjaChiKXtjYXNlIDcxOmg9ZC5xLmdldEZ1bGxZZWFyKCktT3dlPj0tMTkwMD8xOjA7Yz49ND9aaGIoYSxjRChXQyhxSiwxKSxOdmUsMiw2LFtRd2UsUndlXSlbaF0pOlpoYihhLGNEKFdDKHFKLDEpLE52ZSwyLDYsWydCQycsJ0FEJ10pW2hdKTticmVhaztjYXNlIDEyMTpBQShhLGMsZCk7YnJlYWs7Y2FzZSA3Nzp6QShhLGMsZCk7YnJlYWs7Y2FzZSAxMDc6aT1lLnEuZ2V0SG91cnMoKTtpPT0wP1VBKGEsMjQsYyk6VUEoYSxpLGMpO2JyZWFrO2Nhc2UgODM6eUEoYSxjLGUpO2JyZWFrO2Nhc2UgNjk6az1kLnEuZ2V0RGF5KCk7Yz09NT9aaGIoYSxjRChXQyhxSiwxKSxOdmUsMiw2LFsnUycsJ00nLCdUJywnVycsJ1QnLCdGJywnUyddKVtrXSk6Yz09ND9aaGIoYSxjRChXQyhxSiwxKSxOdmUsMiw2LFtTd2UsVHdlLFV3ZSxWd2UsV3dlLFh3ZSxZd2VdKVtrXSk6WmhiKGEsY0QoV0MocUosMSksTnZlLDIsNixbJ1N1bicsJ01vbicsJ1R1ZScsJ1dlZCcsJ1RodScsJ0ZyaScsJ1NhdCddKVtrXSk7YnJlYWs7Y2FzZSA5NzplLnEuZ2V0SG91cnMoKT49MTImJmUucS5nZXRIb3VycygpPDI0P1poYihhLGNEKFdDKHFKLDEpLE52ZSwyLDYsWydBTScsJ1BNJ10pWzFdKTpaaGIoYSxjRChXQyhxSiwxKSxOdmUsMiw2LFsnQU0nLCdQTSddKVswXSk7YnJlYWs7Y2FzZSAxMDQ6bD1lLnEuZ2V0SG91cnMoKSUxMjtsPT0wP1VBKGEsMTIsYyk6VUEoYSxsLGMpO2JyZWFrO2Nhc2UgNzU6bT1lLnEuZ2V0SG91cnMoKSUxMjtVQShhLG0sYyk7YnJlYWs7Y2FzZSA3MjpuPWUucS5nZXRIb3VycygpO1VBKGEsbixjKTticmVhaztjYXNlIDk5Om89ZC5xLmdldERheSgpO2M9PTU/WmhiKGEsY0QoV0MocUosMSksTnZlLDIsNixbJ1MnLCdNJywnVCcsJ1cnLCdUJywnRicsJ1MnXSlbb10pOmM9PTQ/WmhiKGEsY0QoV0MocUosMSksTnZlLDIsNixbU3dlLFR3ZSxVd2UsVndlLFd3ZSxYd2UsWXdlXSlbb10pOmM9PTM/WmhiKGEsY0QoV0MocUosMSksTnZlLDIsNixbJ1N1bicsJ01vbicsJ1R1ZScsJ1dlZCcsJ1RodScsJ0ZyaScsJ1NhdCddKVtvXSk6VUEoYSxvLDEpO2JyZWFrO2Nhc2UgNzY6cD1kLnEuZ2V0TW9udGgoKTtjPT01P1poYihhLGNEKFdDKHFKLDEpLE52ZSwyLDYsWydKJywnRicsJ00nLCdBJywnTScsJ0onLCdKJywnQScsJ1MnLCdPJywnTicsJ0QnXSlbcF0pOmM9PTQ/WmhiKGEsY0QoV0MocUosMSksTnZlLDIsNixbQ3dlLER3ZSxFd2UsRndlLEd3ZSxId2UsSXdlLEp3ZSxLd2UsTHdlLE13ZSxOd2VdKVtwXSk6Yz09Mz9aaGIoYSxjRChXQyhxSiwxKSxOdmUsMiw2LFsnSmFuJywnRmViJywnTWFyJywnQXByJyxHd2UsJ0p1bicsJ0p1bCcsJ0F1ZycsJ1NlcCcsJ09jdCcsJ05vdicsJ0RlYyddKVtwXSk6VUEoYSxwKzEsYyk7YnJlYWs7Y2FzZSA4MTpxPWQucS5nZXRNb250aCgpLzN8MDtjPDQ/WmhiKGEsY0QoV0MocUosMSksTnZlLDIsNixbJ1ExJywnUTInLCdRMycsJ1E0J10pW3FdKTpaaGIoYSxjRChXQyhxSiwxKSxOdmUsMiw2LFsnMXN0IHF1YXJ0ZXInLCcybmQgcXVhcnRlcicsJzNyZCBxdWFydGVyJywnNHRoIHF1YXJ0ZXInXSlbcV0pO2JyZWFrO2Nhc2UgMTAwOnI9ZC5xLmdldERhdGUoKTtVQShhLHIsYyk7YnJlYWs7Y2FzZSAxMDk6aj1lLnEuZ2V0TWludXRlcygpO1VBKGEsaixjKTticmVhaztjYXNlIDExNTpnPWUucS5nZXRTZWNvbmRzKCk7VUEoYSxnLGMpO2JyZWFrO2Nhc2UgMTIyOmM8ND9aaGIoYSxmLmNbMF0pOlpoYihhLGYuY1sxXSk7YnJlYWs7Y2FzZSAxMTg6WmhiKGEsZi5iKTticmVhaztjYXNlIDkwOmM8Mz9aaGIoYSxjQihmKSk6Yz09Mz9aaGIoYSxiQihmKSk6WmhiKGEsZUIoZi5hKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gZmFsc2U7fXJldHVybiB0cnVlfVxuZnVuY3Rpb24gZjViKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQsRixHLEg7WDRiKGIpO2k9UkQoUUhkKCghYi5iJiYoYi5iPW5ldyBZaWUoRTQsYiw0LDcpKSxiLmIpLDApLDg0KTtrPVJEKFFIZCgoIWIuYyYmKGIuYz1uZXcgWWllKEU0LGIsNSw4KSksYi5jKSwwKSw4NCk7aD1BR2QoaSk7aj1BR2Qoayk7Zz0oIWIuYSYmKGIuYT1uZXcgQzVkKEY0LGIsNiw2KSksYi5hKS5pPT0wP251bGw6UkQoUUhkKCghYi5hJiYoYi5hPW5ldyBDNWQoRjQsYiw2LDYpKSxiLmEpLDApLDE2Nik7QT1SRChXamIoYS5hLGgpLDEwKTtGPVJEKFdqYihhLmEsaiksMTApO0I9bnVsbDtHPW51bGw7aWYoWkQoaSwxOTMpKXt3PVJEKFdqYihhLmEsaSksMzA1KTtpZihaRCh3LDEyKSl7Qj1SRCh3LDEyKX1lbHNlIGlmKFpEKHcsMTApKXtBPVJEKHcsMTApO0I9UkQoVm1iKEEuaiwwKSwxMil9fWlmKFpEKGssMTkzKSl7RD1SRChXamIoYS5hLGspLDMwNSk7aWYoWkQoRCwxMikpe0c9UkQoRCwxMil9ZWxzZSBpZihaRChELDEwKSl7Rj1SRChELDEwKTtHPVJEKFZtYihGLmosMCksMTIpfX1pZighQXx8IUYpe3Rocm93IEFkYihuZXcgS2VkKCdUaGUgc291cmNlIG9yIHRoZSB0YXJnZXQgb2YgZWRnZSAnK2IrJyBjb3VsZCBub3QgYmUgZm91bmQuICcrJ1RoaXMgdXN1YWxseSBoYXBwZW5zIHdoZW4gYW4gZWRnZSBjb25uZWN0cyBhIG5vZGUgbGFpZCBvdXQgYnkgRUxLIExheWVyZWQgdG8gYSBub2RlIGluICcrJ2Fub3RoZXIgbGV2ZWwgb2YgaGllcmFyY2h5IGxhaWQgb3V0IGJ5IGVpdGhlciBhbm90aGVyIGluc3RhbmNlIG9mIEVMSyBMYXllcmVkIG9yIGFub3RoZXIgJysnbGF5b3V0IGFsZ29yaXRobSBhbGx0b2dldGhlci4gVGhlIGZvcm1lciBjYW4gYmUgc29sdmVkIGJ5IHNldHRpbmcgdGhlIGhpZXJhcmNoeUhhbmRsaW5nICcrJ29wdGlvbiB0byBJTkNMVURFX0NISUxEUkVOLicpKX1wPW5ldyBhMWI7a1FiKHAsYik7cFFiKHAsKFl3YygpLEF3YyksYik7cFFiKHAsKHlDYygpLFJBYyksbnVsbCk7bj1SRChtUWIoZCxrd2MpLDIxKTtBPT1GJiZuLkZjKChvdmMoKSxudmMpKTtpZighQil7dj0oQkVjKCksekVjKTtDPW51bGw7aWYoISFnJiZEb2QoUkQobVFiKEEsQkJjKSwxMDEpKSl7Qz1uZXcgcmpkKGcuaixnLmspO0ZzZChDLGt6ZChiKSk7R3NkKEMsYyk7aWYoTkdkKGosaCkpe3Y9eUVjOyRpZChDLEEubil9fUI9ZzJiKEEsQyx2LGQpfWlmKCFHKXt2PShCRWMoKSx5RWMpO0g9bnVsbDtpZighIWcmJkRvZChSRChtUWIoRixCQmMpLDEwMSkpKXtIPW5ldyByamQoZy5iLGcuYyk7RnNkKEgsa3pkKGIpKTtHc2QoSCxjKX1HPWcyYihGLEgsdixZMmIoRikpfVkwYihwLEIpO1owYihwLEcpOyhCLmUuYy5sZW5ndGg+MXx8Qi5nLmMubGVuZ3RoPjF8fEcuZS5jLmxlbmd0aD4xfHxHLmcuYy5sZW5ndGg+MSkmJm4uRmMoKG92YygpLGl2YykpO2ZvcihtPW5ldyBkTWQoKCFiLm4mJihiLm49bmV3IEM1ZChJNCxiLDEsNykpLGIubikpO20uZSE9bS5pLmdjKCk7KXtsPVJEKGJNZChtKSwxMzUpO2lmKCFIZWIoVEQoR3hkKGwscEJjKSkpJiYhIWwuYSl7cT1oNWIobCk7Um1iKHAuYixxKTtzd2l0Y2goUkQobVFiKHEsd0FjKSwyNzgpLmcpe2Nhc2UgMTpjYXNlIDI6bi5GYygob3ZjKCksZ3ZjKSk7YnJlYWs7Y2FzZSAwOm4uRmMoKG92YygpLGV2YykpO3BRYihxLHdBYywoT21kKCksTG1kKSk7fX19Zj1SRChtUWIoZCxvQWMpLDMyMik7cj1SRChtUWIoZCxrQmMpLDMyMyk7ZT1mPT0oc3RjKCkscHRjKXx8cj09KEpEYygpLEZEYyk7aWYoISFnJiYoIWcuYSYmKGcuYT1uZXcgWFpkKEQ0LGcsNSkpLGcuYSkuaSE9MCYmZSl7cz1zc2QoZyk7bz1uZXcgRWpkO2Zvcih1PVN1YihzLDApO3UuYiE9dS5kLmM7KXt0PVJEKGV2Yih1KSw4KTtNdWIobyxuZXcgc2pkKHQpKX1wUWIocCxCd2Msbyl9cmV0dXJuIHB9XG5mdW5jdGlvbiBGMGMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEcsSCxJO0M9MDtEPTA7QT1uZXcgVHNiO3Y9UkQoTHZiKEpEYihHRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5iLDE2KSksbmV3IHYxYyksbmV3IFowYykpLDE3KS5hKzE7Qj0kQyhrRSxQd2UsMjgsdiwxNSwxKTtxPSRDKGtFLFB3ZSwyOCx2LDE1LDEpO2ZvcihwPTA7cDx2O3ArKyl7QltwXT0wO3FbcF09MH1pPVJEKHpEYihCRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5hLDE2KSkpLHRCYihuZXcgWkJiLG5ldyBYQmIsbmV3IHdDYixjRChXQyhRTCwxKSxqd2UsMTA4LDAsWyh4QmIoKSx2QmIpXSkpKSwxNSk7Zm9yKGs9aS5LYygpO2suT2IoKTspe2o9UkQoay5QYigpLDY1KTtHPVJEKG1RYihqLmIsKGhfYygpLGZfYykpLDE3KS5hO0k9UkQobVFiKGouYyxmX2MpLDE3KS5hO3U9SS1HO2lmKHU+MSl7Zm9yKGg9RysxO2g8STtoKyspe2w9aDt3PVJEKHpEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IoYS5iLDE2KSksbmV3IFAxYyhsKSksdEJiKG5ldyBaQmIsbmV3IFhCYixuZXcgd0NiLGNEKFdDKFFMLDEpLGp3ZSwxMDgsMCxbdkJiXSkpKSwxNSk7bz0wO2lmKGI9PShDbWQoKSx5bWQpfHxiPT16bWQpe3cuamQobmV3IFYxYyk7Zm9yKG89MDtvPHcuZ2MoKTtvKyspe3I9KGgtRykvKEktRyk7aWYoUkQody5YYihvKSw0MCkuZS5iPmouYi5lLmIqKDEtcikrai5jLmUuYipyKXticmVha319aWYody5nYygpPjApe0g9ai5hLmI9PTA/YWpkKGouYi5lKTpSRChSdWIoai5hKSw4KTt0PSRpZChhamQoUkQody5YYih3LmdjKCktMSksNDApLmUpLFJEKHcuWGIody5nYygpLTEpLDQwKS5mKTttPSRpZChhamQoUkQody5YYigwKSw0MCkuZSksUkQody5YYigwKSw0MCkuZik7aWYobz49dy5nYygpLTEmJkguYj50LmImJmouYy5lLmI+dC5iKXtjb250aW51ZX1pZihvPD0wJiZILmI8bS5hJiZqLmMuZS5iPG0uYil7Y29udGludWV9fX1lbHNle3cuamQobmV3IFoxYyk7Zm9yKG89MDtvPHcuZ2MoKTtvKyspe3I9KGgtRykvKEktRyk7aWYoUkQody5YYihvKSw0MCkuZS5hPmouYi5lLmEqKDEtcikrai5jLmUuYSpyKXticmVha319aWYody5nYygpPjApe0g9ai5hLmI9PTA/YWpkKGouYi5lKTpSRChSdWIoai5hKSw4KTt0PSRpZChhamQoUkQody5YYih3LmdjKCktMSksNDApLmUpLFJEKHcuWGIody5nYygpLTEpLDQwKS5mKTttPSRpZChhamQoUkQody5YYigwKSw0MCkuZSksUkQody5YYigwKSw0MCkuZik7aWYobz49dy5nYygpLTEmJkguYT50LmEmJmouYy5lLmE+dC5hKXtjb250aW51ZX1pZihvPD0wJiZILmE8bS5hJiZqLmMuZS5hPG0uYSl7Y29udGludWV9fX1lPW5ldyBwamQ7Zj1uZXcgcGpkO011YihqLmEsZSk7TXViKGouYSxmKTtnPW5ldyBndWQoZSxmLGopO3M9UmRiKFNkYihoLDMyKSxDZGIobyx5eGUpKTtpZihVamIoQSxIZ2IocykpKXtuPVJEKFdqYihBLEhnYihzKSksNjc1KTtNdWIobi5hLGcpO0RtZChuLmIpP3R2YihuLmEsbmV3IGwyYyk6dHZiKG4uYSxuZXcgcDJjKTtoMmMobil9ZWxzZXtuPW5ldyBpMmMobz09MD9udWxsOlJEKHcuWGIoby0xKSw0MCksbz09dy5nYygpP251bGw6UkQody5YYihvKSw0MCksZyxhKTtaamIoQSxIZ2Iocyksbil9aWYoYj09eW1kfHxiPT16bWQpe24uZiYmbi5kLmUuYjw9S2ZiKFVEKG1RYihhLChxJGMoKSxfWmMpKSkpJiYrK0M7bi5nJiZuLmMuZS5iK24uYy5mLmI+PUtmYihVRChtUWIoYSwocSRjKCksJFpjKSkpKSYmKytEfWVsc2V7bi5mJiZuLmQuZS5hPD1LZmIoVUQobVFiKGEsKHEkYygpLFpaYykpKSkmJisrQztuLmcmJm4uYy5lLmErbi5jLmYuYT49S2ZiKFVEKG1RYihhLChxJGMoKSxZWmMpKSkpJiYrK0R9fX1lbHNlIGlmKHU9PTApe0gwYyhqKX1lbHNlIGlmKHU8MCl7KytCW0ddOysrcVtJXTtGPUMwYyhqLGIsYSxuZXcgUHRkKHNnYihDKSxzZ2IoRCkpLGMsZCxuZXcgUHRkKHNnYihxW0ldKSxzZ2IoQltHXSkpKTtDPVJEKEYuYSwxNykuYTtEPVJEKEYuYiwxNykuYX19fVxuZnVuY3Rpb24gcXJjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscztkPWI7aT1jO2lmKGEuYiYmZC5qPT0ocXBkKCkscHBkKSYmaS5qPT0ocXBkKCkscHBkKSl7cz1kO2Q9aTtpPXN9aWYoVWpiKGEuYSxkKSl7aWYoWnNiKFJEKFdqYihhLmEsZCksNDkpLGkpKXtyZXR1cm4gMX19ZWxzZXtaamIoYS5hLGQsbmV3IF9zYil9aWYoVWpiKGEuYSxpKSl7aWYoWnNiKFJEKFdqYihhLmEsaSksNDkpLGQpKXtyZXR1cm4gLTF9fWVsc2V7WmpiKGEuYSxpLG5ldyBfc2IpfWlmKFVqYihhLmQsZCkpe2lmKFpzYihSRChXamIoYS5kLGQpLDQ5KSxpKSl7cmV0dXJuIC0xfX1lbHNle1pqYihhLmQsZCxuZXcgX3NiKX1pZihVamIoYS5kLGkpKXtpZihac2IoUkQoV2piKGEuYSxpKSw0OSksZCkpe3JldHVybiAxfX1lbHNle1pqYihhLmQsaSxuZXcgX3NiKX1pZihkLmohPWkuail7cj15cmMoZC5qLGkuaik7cj09LTE/cnJjKGEsaSxkKTpycmMoYSxkLGkpO3JldHVybiByfWlmKGQuZS5jLmxlbmd0aCE9MCYmaS5lLmMubGVuZ3RoIT0wKXtpZihhLmIpe3I9b3JjKGQsaSk7aWYociE9MCl7cj09LTE/cnJjKGEsaSxkKTpyPT0xJiZycmMoYSxkLGkpO3JldHVybiByfX1mPVJEKFZtYihkLmUsMCksMTgpLmMuaTtrPVJEKFZtYihpLmUsMCksMTgpLmMuaTtpZihmPT1rKXtlPVJEKG1RYihSRChWbWIoZC5lLDApLDE4KSwoWXdjKCksendjKSksMTcpLmE7aj1SRChtUWIoUkQoVm1iKGkuZSwwKSwxOCksendjKSwxNykuYTtlPmo/cnJjKGEsZCxpKTpycmMoYSxpLGQpO3JldHVybiBlPGo/LTE6ZT5qPzE6MH1mb3Iobz1hLmMscD0wLHE9by5sZW5ndGg7cDxxOysrcCl7bj1vW3BdO2lmKG49PWYpe3JyYyhhLGQsaSk7cmV0dXJuIDF9ZWxzZSBpZihuPT1rKXtycmMoYSxpLGQpO3JldHVybiAtMX19fWlmKGQuZy5jLmxlbmd0aCE9MCYmaS5nLmMubGVuZ3RoIT0wKXtoPVJEKG1RYihkLChZd2MoKSx4d2MpKSwxMCk7bT1SRChtUWIoaSx4d2MpLDEwKTtpZihhLmU9PShrRWMoKSxqRWMpJiYhIWgmJiEhbSYmblFiKGgsendjKSYmblFiKG0sendjKSl7ZT1SRChtUWIoaCx6d2MpLDE3KS5hO2o9UkQobVFiKG0sendjKSwxNykuYTtlPmo/cnJjKGEsZCxpKTpycmMoYSxpLGQpO3JldHVybiBlPGo/LTE6ZT5qPzE6MH1pZihhLmIpe3I9b3JjKGQsaSk7aWYociE9MCl7cj09LTE/cnJjKGEsaSxkKTpyPT0xJiZycmMoYSxkLGkpO3JldHVybiByfX1nPTA7bD0wO25RYihSRChWbWIoZC5nLDApLDE4KSx6d2MpJiYoZz1SRChtUWIoUkQoVm1iKGQuZywwKSwxOCksendjKSwxNykuYSk7blFiKFJEKFZtYihpLmcsMCksMTgpLHp3YykmJihsPVJEKG1RYihSRChWbWIoZC5nLDApLDE4KSx6d2MpLDE3KS5hKTtpZighIWgmJmg9PW0pe2lmKEhlYihURChtUWIoUkQoVm1iKGQuZywwKSwxOCksTndjKSkpJiYhSGViKFREKG1RYihSRChWbWIoaS5nLDApLDE4KSxOd2MpKSkpe3JyYyhhLGQsaSk7cmV0dXJuIDF9ZWxzZSBpZighSGViKFREKG1RYihSRChWbWIoZC5nLDApLDE4KSxOd2MpKSkmJkhlYihURChtUWIoUkQoVm1iKGkuZywwKSwxOCksTndjKSkpKXtycmMoYSxpLGQpO3JldHVybiAtMX1nPmw/cnJjKGEsZCxpKTpycmMoYSxpLGQpO3JldHVybiBnPGw/LTE6Zz5sPzE6MH1pZihhLmYpe2EuZi5fYihoKSYmKGc9UkQoYS5mLnhjKGgpLDE3KS5hKTthLmYuX2IobSkmJihsPVJEKGEuZi54YyhtKSwxNykuYSl9Zz5sP3JyYyhhLGQsaSk6cnJjKGEsaSxkKTtyZXR1cm4gZzxsPy0xOmc+bD8xOjB9aWYoZC5lLmMubGVuZ3RoIT0wJiZpLmcuYy5sZW5ndGghPTApe3JyYyhhLGQsaSk7cmV0dXJuIDF9ZWxzZSBpZihkLmcuYy5sZW5ndGghPTAmJmkuZS5jLmxlbmd0aCE9MCl7cnJjKGEsaSxkKTtyZXR1cm4gLTF9ZWxzZSBpZihuUWIoZCwoWXdjKCksendjKSkmJm5RYihpLHp3Yykpe2U9UkQobVFiKGQsendjKSwxNykuYTtqPVJEKG1RYihpLHp3YyksMTcpLmE7ZT5qP3JyYyhhLGQsaSk6cnJjKGEsaSxkKTtyZXR1cm4gZTxqPy0xOmU+aj8xOjB9ZWxzZXtycmMoYSxpLGQpO3JldHVybiAtMX19XG5mdW5jdGlvbiBZYWUoYSl7aWYoYS5nYilyZXR1cm47YS5nYj10cnVlO2EuYj1qQmQoYSwwKTtpQmQoYS5iLDE4KTtvQmQoYS5iLDE5KTthLmE9akJkKGEsMSk7aUJkKGEuYSwxKTtvQmQoYS5hLDIpO29CZChhLmEsMyk7b0JkKGEuYSw0KTtvQmQoYS5hLDUpO2Eubz1qQmQoYSwyKTtpQmQoYS5vLDgpO2lCZChhLm8sOSk7b0JkKGEubywxMCk7b0JkKGEubywxMSk7b0JkKGEubywxMik7b0JkKGEubywxMyk7b0JkKGEubywxNCk7b0JkKGEubywxNSk7b0JkKGEubywxNik7b0JkKGEubywxNyk7b0JkKGEubywxOCk7b0JkKGEubywxOSk7b0JkKGEubywyMCk7b0JkKGEubywyMSk7b0JkKGEubywyMik7b0JkKGEubywyMyk7bkJkKGEubyk7bkJkKGEubyk7bkJkKGEubyk7bkJkKGEubyk7bkJkKGEubyk7bkJkKGEubyk7bkJkKGEubyk7bkJkKGEubyk7bkJkKGEubyk7bkJkKGEubyk7YS5wPWpCZChhLDMpO2lCZChhLnAsMik7aUJkKGEucCwzKTtpQmQoYS5wLDQpO2lCZChhLnAsNSk7b0JkKGEucCw2KTtvQmQoYS5wLDcpO25CZChhLnApO25CZChhLnApO2EucT1qQmQoYSw0KTtpQmQoYS5xLDgpO2Eudj1qQmQoYSw1KTtvQmQoYS52LDkpO25CZChhLnYpO25CZChhLnYpO25CZChhLnYpO2Eudz1qQmQoYSw2KTtpQmQoYS53LDIpO2lCZChhLncsMyk7aUJkKGEudyw0KTtvQmQoYS53LDUpO2EuQj1qQmQoYSw3KTtvQmQoYS5CLDEpO25CZChhLkIpO25CZChhLkIpO25CZChhLkIpO2EuUT1qQmQoYSw4KTtvQmQoYS5RLDApO25CZChhLlEpO2EuUj1qQmQoYSw5KTtpQmQoYS5SLDEpO2EuUz1qQmQoYSwxMCk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7bkJkKGEuUyk7YS5UPWpCZChhLDExKTtvQmQoYS5ULDEwKTtvQmQoYS5ULDExKTtvQmQoYS5ULDEyKTtvQmQoYS5ULDEzKTtvQmQoYS5ULDE0KTtuQmQoYS5UKTtuQmQoYS5UKTthLlU9akJkKGEsMTIpO2lCZChhLlUsMik7aUJkKGEuVSwzKTtvQmQoYS5VLDQpO29CZChhLlUsNSk7b0JkKGEuVSw2KTtvQmQoYS5VLDcpO25CZChhLlUpO2EuVj1qQmQoYSwxMyk7b0JkKGEuViwxMCk7YS5XPWpCZChhLDE0KTtpQmQoYS5XLDE4KTtpQmQoYS5XLDE5KTtpQmQoYS5XLDIwKTtvQmQoYS5XLDIxKTtvQmQoYS5XLDIyKTtvQmQoYS5XLDIzKTthLmJiPWpCZChhLDE1KTtpQmQoYS5iYiwxMCk7aUJkKGEuYmIsMTEpO2lCZChhLmJiLDEyKTtpQmQoYS5iYiwxMyk7aUJkKGEuYmIsMTQpO2lCZChhLmJiLDE1KTtpQmQoYS5iYiwxNik7b0JkKGEuYmIsMTcpO25CZChhLmJiKTtuQmQoYS5iYik7YS5lYj1qQmQoYSwxNik7aUJkKGEuZWIsMik7aUJkKGEuZWIsMyk7aUJkKGEuZWIsNCk7aUJkKGEuZWIsNSk7aUJkKGEuZWIsNik7aUJkKGEuZWIsNyk7b0JkKGEuZWIsOCk7b0JkKGEuZWIsOSk7YS5hYj1qQmQoYSwxNyk7aUJkKGEuYWIsMCk7aUJkKGEuYWIsMSk7YS5IPWpCZChhLDE4KTtvQmQoYS5ILDApO29CZChhLkgsMSk7b0JkKGEuSCwyKTtvQmQoYS5ILDMpO29CZChhLkgsNCk7b0JkKGEuSCw1KTtuQmQoYS5IKTthLmRiPWpCZChhLDE5KTtvQmQoYS5kYiwyKTthLmM9a0JkKGEsMjApO2EuZD1rQmQoYSwyMSk7YS5lPWtCZChhLDIyKTthLmY9a0JkKGEsMjMpO2EuaT1rQmQoYSwyNCk7YS5nPWtCZChhLDI1KTthLmo9a0JkKGEsMjYpO2Euaz1rQmQoYSwyNyk7YS5uPWtCZChhLDI4KTthLnI9a0JkKGEsMjkpO2Eucz1rQmQoYSwzMCk7YS50PWtCZChhLDMxKTthLnU9a0JkKGEsMzIpO2EuZmI9a0JkKGEsMzMpO2EuQT1rQmQoYSwzNCk7YS5DPWtCZChhLDM1KTthLkQ9a0JkKGEsMzYpO2EuRj1rQmQoYSwzNyk7YS5HPWtCZChhLDM4KTthLkk9a0JkKGEsMzkpO2EuSj1rQmQoYSw0MCk7YS5MPWtCZChhLDQxKTthLk09a0JkKGEsNDIpO2EuTj1rQmQoYSw0Myk7YS5PPWtCZChhLDQ0KTthLlA9a0JkKGEsNDUpO2EuWD1rQmQoYSw0Nik7YS5ZPWtCZChhLDQ3KTthLlo9a0JkKGEsNDgpO2EuJD1rQmQoYSw0OSk7YS5fPWtCZChhLDUwKTthLmNiPWtCZChhLDUxKTthLks9a0JkKGEsNTIpfVxuZnVuY3Rpb24gZDViKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LEEsQixDLEQsRixHO2c9bmV3IFl1Yjt3PVJEKG1RYihjLCh5Q2MoKSxyQWMpKSw4OCk7cD0wO3llKGcsKCFiLmEmJihiLmE9bmV3IEM1ZChKNCxiLDEwLDExKSksYi5hKSk7d2hpbGUoZy5iIT0wKXtrPVJEKGcuYj09MD9udWxsOihzRmIoZy5iIT0wKSxXdWIoZyxnLmEuYSkpLDI3KTtqPXZDZChrKTsoZEUoR3hkKGosY0FjKSkhPT1kRSgoa0VjKCksaEVjKSl8fGRFKEd4ZChqLHBBYykpPT09ZEUoKFB0YygpLE90YykpfHxkRShHeGQoaixwQWMpKT09PWRFKChQdGMoKSxNdGMpKXx8SGViKFREKEd4ZChqLGVBYykpKXx8ZEUoR3hkKGosWXpjKSkhPT1kRSgoVSRiKCksVCRiKSl8fGRFKEd4ZChqLFpBYykpPT09ZEUoKGFFYygpLFREYykpfHxkRShHeGQoaixaQWMpKT09PWRFKChhRWMoKSxVRGMpKXx8ZEUoR3hkKGosJEFjKSk9PT1kRSgoX0NjKCksU0NjKSl8fGRFKEd4ZChqLCRBYykpPT09ZEUoKF9DYygpLFVDYykpKSYmIUhlYihURChHeGQoayxhQWMpKSkmJkl4ZChrLChZd2MoKSx6d2MpLHNnYihwKyspKTtyPSFIZWIoVEQoR3hkKGsscEJjKSkpO2lmKHIpe209KCFrLmEmJihrLmE9bmV3IEM1ZChKNCxrLDEwLDExKSksay5hKS5pIT0wO289YTViKGspO249ZEUoR3hkKGssSUFjKSk9PT1kRSgoRm5kKCksQ25kKSk7Rz0hSHhkKGssKHVtZCgpLEFrZCkpfHxraGIoV0QoR3hkKGssQWtkKSkpO3U9bnVsbDtpZihHJiZuJiYobXx8bykpe3U9WjRiKGspO3BRYih1LHJBYyx3KTtuUWIodSxQQmMpJiZIQ2MobmV3IFJDYyhLZmIoVUQobVFiKHUsUEJjKSkpKSx1KTtpZihSRChHeGQoayxsQmMpLDE4MSkuZ2MoKSE9MCl7bD11O0ZEYihuZXcgU0RiKG51bGwsKCFrLmMmJihrLmM9bmV3IEM1ZChLNCxrLDksOSkpLG5ldyBTd2Ioay5jLDE2KSkpLG5ldyB1NWIobCkpO1Y0YihrLHUpfX1BPWM7Qj1SRChXamIoYS5hLHZDZChrKSksMTApOyEhQiYmKEE9Qi5lKTt0PWk1YihhLGssQSk7aWYodSl7dC5lPXU7dS5lPXQ7eWUoZywoIWsuYSYmKGsuYT1uZXcgQzVkKEo0LGssMTAsMTEpKSxrLmEpKX19fXA9MDtQdWIoZyxiLGcuYy5iLGcuYyk7d2hpbGUoZy5iIT0wKXtmPVJEKGcuYj09MD9udWxsOihzRmIoZy5iIT0wKSxXdWIoZyxnLmEuYSkpLDI3KTtmb3IoaT1uZXcgZE1kKCghZi5iJiYoZi5iPW5ldyBDNWQoRzQsZiwxMiwzKSksZi5iKSk7aS5lIT1pLmkuZ2MoKTspe2g9UkQoYk1kKGkpLDc0KTtYNGIoaCk7KGRFKEd4ZChiLGNBYykpIT09ZEUoKGtFYygpLGhFYykpfHxkRShHeGQoYixwQWMpKT09PWRFKChQdGMoKSxPdGMpKXx8ZEUoR3hkKGIscEFjKSk9PT1kRSgoUHRjKCksTXRjKSl8fEhlYihURChHeGQoYixlQWMpKSl8fGRFKEd4ZChiLFl6YykpIT09ZEUoKFUkYigpLFQkYikpfHxkRShHeGQoYixaQWMpKT09PWRFKChhRWMoKSxURGMpKXx8ZEUoR3hkKGIsWkFjKSk9PT1kRSgoYUVjKCksVURjKSl8fGRFKEd4ZChiLCRBYykpPT09ZEUoKF9DYygpLFNDYykpfHxkRShHeGQoYiwkQWMpKT09PWRFKChfQ2MoKSxVQ2MpKSkmJkl4ZChoLChZd2MoKSx6d2MpLHNnYihwKyspKTtEPUFHZChSRChRSGQoKCFoLmImJihoLmI9bmV3IFlpZShFNCxoLDQsNykpLGguYiksMCksODQpKTtGPUFHZChSRChRSGQoKCFoLmMmJihoLmM9bmV3IFlpZShFNCxoLDUsOCkpLGguYyksMCksODQpKTtpZihIZWIoVEQoR3hkKGgscEJjKSkpfHxIZWIoVEQoR3hkKEQscEJjKSkpfHxIZWIoVEQoR3hkKEYscEJjKSkpKXtjb250aW51ZX1xPW96ZChoKSYmSGViKFREKEd4ZChELE5BYykpKSYmSGViKFREKEd4ZChoLE9BYykpKTt2PWY7cXx8TkdkKEYsRCk/KHY9RCk6TkdkKEQsRikmJih2PUYpO0E9YztCPVJEKFdqYihhLmEsdiksMTApOyEhQiYmKEE9Qi5lKTtzPWY1YihhLGgsdixBKTtwUWIocywoWXdjKCksWnZjKSxfNGIoYSxoLGIsYykpfW49ZEUoR3hkKGYsSUFjKSk9PT1kRSgoRm5kKCksQ25kKSk7aWYobil7Zm9yKGU9bmV3IGRNZCgoIWYuYSYmKGYuYT1uZXcgQzVkKEo0LGYsMTAsMTEpKSxmLmEpKTtlLmUhPWUuaS5nYygpOyl7ZD1SRChiTWQoZSksMjcpO0c9IUh4ZChkLCh1bWQoKSxBa2QpKXx8a2hiKFdEKEd4ZChkLEFrZCkpKTtDPWRFKEd4ZChkLElBYykpPT09ZEUoQ25kKTtHJiZDJiYoUHViKGcsZCxnLmMuYixnLmMpLHRydWUpfX19fVxuZnVuY3Rpb24gWXdjKCl7WXdjPWdlYjt2YXIgYSxiO0F3Yz1uZXcgakdkKHJBZSk7WnZjPW5ldyBqR2QoJ2Nvb3JkaW5hdGVPcmlnaW4nKTtLd2M9bmV3IGpHZCgncHJvY2Vzc29ycycpO1l2Yz1uZXcga0dkKCdjb21wb3VuZE5vZGUnLChHZWIoKSxmYWxzZSkpO253Yz1uZXcga0dkKCdpbnNpZGVDb25uZWN0aW9ucycsZmFsc2UpO0J3Yz1uZXcgakdkKCdvcmlnaW5hbEJlbmRwb2ludHMnKTtDd2M9bmV3IGpHZCgnb3JpZ2luYWxEdW1teU5vZGVQb3NpdGlvbicpO0R3Yz1uZXcgakdkKCdvcmlnaW5hbExhYmVsRWRnZScpO013Yz1uZXcgakdkKCdyZXByZXNlbnRlZExhYmVscycpO2N3Yz1uZXcgakdkKCdlbmRMYWJlbHMnKTtkd2M9bmV3IGpHZCgnZW5kTGFiZWwub3JpZ2luJyk7c3djPW5ldyBrR2QoJ2xhYmVsU2lkZScsKFBuZCgpLE9uZCkpO3l3Yz1uZXcga0dkKCdtYXhFZGdlVGhpY2tuZXNzJywwKTtOd2M9bmV3IGtHZCgncmV2ZXJzZWQnLGZhbHNlKTtMd2M9bmV3IGpHZChzQWUpO3Z3Yz1uZXcga0dkKCdsb25nRWRnZVNvdXJjZScsbnVsbCk7d3djPW5ldyBrR2QoJ2xvbmdFZGdlVGFyZ2V0JyxudWxsKTt1d2M9bmV3IGtHZCgnbG9uZ0VkZ2VIYXNMYWJlbER1bW1pZXMnLGZhbHNlKTt0d2M9bmV3IGtHZCgnbG9uZ0VkZ2VCZWZvcmVMYWJlbER1bW15JyxmYWxzZSk7YndjPW5ldyBrR2QoJ2VkZ2VDb25zdHJhaW50JywoaHVjKCksZnVjKSk7cHdjPW5ldyBqR2QoJ2luTGF5ZXJMYXlvdXRVbml0Jyk7b3djPW5ldyBrR2QoJ2luTGF5ZXJDb25zdHJhaW50JywoR3ZjKCksRXZjKSk7cXdjPW5ldyBrR2QoJ2luTGF5ZXJTdWNjZXNzb3JDb25zdHJhaW50JyxuZXcgYm5iKTtyd2M9bmV3IGtHZCgnaW5MYXllclN1Y2Nlc3NvckNvbnN0cmFpbnRCZXR3ZWVuTm9uRHVtbWllcycsZmFsc2UpO0l3Yz1uZXcgakdkKCdwb3J0RHVtbXknKTskdmM9bmV3IGtHZCgnY3Jvc3NpbmdIaW50JyxzZ2IoMCkpO2t3Yz1uZXcga0dkKCdncmFwaFByb3BlcnRpZXMnLChiPVJEKG1mYihpWCksOSksbmV3IEZzYihiLFJEKFdFYihiLGIubGVuZ3RoKSw5KSwwKSkpO2h3Yz1uZXcga0dkKCdleHRlcm5hbFBvcnRTaWRlJywocXBkKCksb3BkKSk7aXdjPW5ldyBrR2QoJ2V4dGVybmFsUG9ydFNpemUnLG5ldyBwamQpO2Z3Yz1uZXcgakdkKCdleHRlcm5hbFBvcnRSZXBsYWNlZER1bW1pZXMnKTtnd2M9bmV3IGpHZCgnZXh0ZXJuYWxQb3J0UmVwbGFjZWREdW1teScpO2V3Yz1uZXcga0dkKCdleHRlcm5hbFBvcnRDb25uZWN0aW9ucycsKGE9UkQobWZiKEUzKSw5KSxuZXcgRnNiKGEsUkQoV0ViKGEsYS5sZW5ndGgpLDkpLDApKSk7SndjPW5ldyBrR2QoWHllLDApO1V2Yz1uZXcgakdkKCdiYXJ5Y2VudGVyQXNzb2NpYXRlcycpO1h3Yz1uZXcgakdkKCdUb3BTaWRlQ29tbWVudHMnKTtWdmM9bmV3IGpHZCgnQm90dG9tU2lkZUNvbW1lbnRzJyk7WHZjPW5ldyBqR2QoJ0NvbW1lbnRDb25uZWN0aW9uUG9ydCcpO213Yz1uZXcga0dkKCdpbnB1dENvbGxlY3QnLGZhbHNlKTtHd2M9bmV3IGtHZCgnb3V0cHV0Q29sbGVjdCcsZmFsc2UpO2F3Yz1uZXcga0dkKCdjeWNsaWMnLGZhbHNlKTtfdmM9bmV3IGpHZCgnY3Jvc3NIaWVyYXJjaHlNYXAnKTtXd2M9bmV3IGpHZCgndGFyZ2V0T2Zmc2V0Jyk7bmV3IGtHZCgnc3BsaW5lTGFiZWxTaXplJyxuZXcgcGpkKTtRd2M9bmV3IGpHZCgnc3BhY2luZ3MnKTtId2M9bmV3IGtHZCgncGFydGl0aW9uQ29uc3RyYWludCcsZmFsc2UpO1d2Yz1uZXcgakdkKCdicmVha2luZ1BvaW50LmluZm8nKTtVd2M9bmV3IGpHZCgnc3BsaW5lcy5zdXJ2aXZpbmdFZGdlJyk7VHdjPW5ldyBqR2QoJ3NwbGluZXMucm91dGUuc3RhcnQnKTtSd2M9bmV3IGpHZCgnc3BsaW5lcy5lZGdlQ2hhaW4nKTtGd2M9bmV3IGpHZCgnb3JpZ2luYWxQb3J0Q29uc3RyYWludHMnKTtQd2M9bmV3IGpHZCgnc2VsZkxvb3BIb2xkZXInKTtTd2M9bmV3IGpHZCgnc3BsaW5lcy5uc1BvcnRZJyk7endjPW5ldyBqR2QoJ21vZGVsT3JkZXInKTt4d2M9bmV3IGpHZCgnbG9uZ0VkZ2VUYXJnZXROb2RlJyk7andjPW5ldyBrR2QoR0JlLGZhbHNlKTtPd2M9bmV3IGtHZChHQmUsZmFsc2UpO2x3Yz1uZXcgakdkKCdsYXllckNvbnN0cmFpbnRzLmhpZGRlbk5vZGVzJyk7RXdjPW5ldyBqR2QoJ2xheWVyQ29uc3RyYWludHMub3Bwb3NpZGVQb3J0Jyk7VndjPW5ldyBqR2QoJ3RhcmdldE5vZGUubW9kZWxPcmRlcicpfVxuZnVuY3Rpb24gRDBjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuLG87Zm9yKGw9U3ViKGEuYiwwKTtsLmIhPWwuZC5jOyl7az1SRChldmIobCksNDApO2lmKGxoYihrLmMsSUVlKSl7Y29udGludWV9Zj1SRCh6RGIobmV3IFNEYihudWxsLG5ldyBTd2IoaFdjKGssYSksMTYpKSx0QmIobmV3IFpCYixuZXcgWEJiLG5ldyB3Q2IsY0QoV0MoUUwsMSksandlLDEwOCwwLFsoeEJiKCksdkJiKV0pKSksMTUpO2I9PShDbWQoKSx5bWQpfHxiPT16bWQ/Zi5qZChuZXcgTDFjKTpmLmpkKG5ldyBSMWMpO289Zi5nYygpO2ZvcihlPTA7ZTxvO2UrKyl7Zz1vPT0xPzAuNTooMStlKS8obysxKTtpZihiPT15bWQpe2o9S2ZiKFVEKG1RYihrLChxJGMoKSxlJGMpKSkpO2lmKGsuZS5hK2suZi5hK2Q8ail7T3ViKFJEKGYuWGIoZSksNjUpLmEsbmV3IHJqZChqK2Msay5lLmIray5mLmIqZykpfWVsc2UgaWYoUkQoZi5YYihlKSw2NSkuYS5iPjApe2g9UkQoUnViKFJEKGYuWGIoZSksNjUpLmEpLDgpLmE7bT1rLmUuYStrLmYuYS8yO2k9UkQoUnViKFJEKGYuWGIoZSksNjUpLmEpLDgpLmI7bj1rLmUuYitrLmYuYi8yO2Q+MCYmJHduZC5NYXRoLmFicyhpLW4pLygkd25kLk1hdGguYWJzKGgtbSkvNDApPjUwJiYobj5pP091YihSRChmLlhiKGUpLDY1KS5hLG5ldyByamQoay5lLmEray5mLmErZC81LjMsay5lLmIray5mLmIqZy1kLzIpKTpPdWIoUkQoZi5YYihlKSw2NSkuYSxuZXcgcmpkKGsuZS5hK2suZi5hK2QvNS4zLGsuZS5iK2suZi5iKmcrZC8yKSkpfU91YihSRChmLlhiKGUpLDY1KS5hLG5ldyByamQoay5lLmEray5mLmEsay5lLmIray5mLmIqZykpfWVsc2UgaWYoYj09em1kKXtqPUtmYihVRChtUWIoaywocSRjKCksZiRjKSkpKTtpZihrLmUuYS1kPmope091YihSRChmLlhiKGUpLDY1KS5hLG5ldyByamQoai1jLGsuZS5iK2suZi5iKmcpKX1lbHNlIGlmKFJEKGYuWGIoZSksNjUpLmEuYj4wKXtoPVJEKFJ1YihSRChmLlhiKGUpLDY1KS5hKSw4KS5hO209ay5lLmEray5mLmEvMjtpPVJEKFJ1YihSRChmLlhiKGUpLDY1KS5hKSw4KS5iO249ay5lLmIray5mLmIvMjtkPjAmJiR3bmQuTWF0aC5hYnMoaS1uKS8oJHduZC5NYXRoLmFicyhoLW0pLzQwKT41MCYmKG4+aT9PdWIoUkQoZi5YYihlKSw2NSkuYSxuZXcgcmpkKGsuZS5hLWQvNS4zLGsuZS5iK2suZi5iKmctZC8yKSk6T3ViKFJEKGYuWGIoZSksNjUpLmEsbmV3IHJqZChrLmUuYS1kLzUuMyxrLmUuYitrLmYuYipnK2QvMikpKX1PdWIoUkQoZi5YYihlKSw2NSkuYSxuZXcgcmpkKGsuZS5hLGsuZS5iK2suZi5iKmcpKX1lbHNlIGlmKGI9PUJtZCl7aj1LZmIoVUQobVFiKGssKHEkYygpLGUkYykpKSk7aWYoay5lLmIray5mLmIrZDxqKXtPdWIoUkQoZi5YYihlKSw2NSkuYSxuZXcgcmpkKGsuZS5hK2suZi5hKmcsaitjKSl9ZWxzZSBpZihSRChmLlhiKGUpLDY1KS5hLmI+MCl7aD1SRChSdWIoUkQoZi5YYihlKSw2NSkuYSksOCkuYTttPWsuZS5hK2suZi5hLzI7aT1SRChSdWIoUkQoZi5YYihlKSw2NSkuYSksOCkuYjtuPWsuZS5iK2suZi5iLzI7ZD4wJiYkd25kLk1hdGguYWJzKGgtbSkvKCR3bmQuTWF0aC5hYnMoaS1uKS80MCk+NTAmJihtPmg/T3ViKFJEKGYuWGIoZSksNjUpLmEsbmV3IHJqZChrLmUuYStrLmYuYSpnLWQvMixrLmUuYitkLzUuMytrLmYuYikpOk91YihSRChmLlhiKGUpLDY1KS5hLG5ldyByamQoay5lLmEray5mLmEqZytkLzIsay5lLmIrZC81LjMray5mLmIpKSl9T3ViKFJEKGYuWGIoZSksNjUpLmEsbmV3IHJqZChrLmUuYStrLmYuYSpnLGsuZS5iK2suZi5iKSl9ZWxzZXtqPUtmYihVRChtUWIoaywocSRjKCksZiRjKSkpKTtpZihtV2MoUkQoZi5YYihlKSw2NSksYSkpe091YihSRChmLlhiKGUpLDY1KS5hLG5ldyByamQoay5lLmEray5mLmEqZyxSRChSdWIoUkQoZi5YYihlKSw2NSkuYSksOCkuYikpfWVsc2UgaWYoay5lLmItZD5qKXtPdWIoUkQoZi5YYihlKSw2NSkuYSxuZXcgcmpkKGsuZS5hK2suZi5hKmcsai1jKSl9ZWxzZSBpZihSRChmLlhiKGUpLDY1KS5hLmI+MCl7aD1SRChSdWIoUkQoZi5YYihlKSw2NSkuYSksOCkuYTttPWsuZS5hK2suZi5hLzI7aT1SRChSdWIoUkQoZi5YYihlKSw2NSkuYSksOCkuYjtuPWsuZS5iK2suZi5iLzI7ZD4wJiYkd25kLk1hdGguYWJzKGgtbSkvKCR3bmQuTWF0aC5hYnMoaS1uKS80MCk+NTAmJihtPmg/T3ViKFJEKGYuWGIoZSksNjUpLmEsbmV3IHJqZChrLmUuYStrLmYuYSpnLWQvMixrLmUuYi1kLzUuMykpOk91YihSRChmLlhiKGUpLDY1KS5hLG5ldyByamQoay5lLmEray5mLmEqZytkLzIsay5lLmItZC81LjMpKSl9T3ViKFJEKGYuWGIoZSksNjUpLmEsbmV3IHJqZChrLmUuYStrLmYuYSpnLGsuZS5iKSl9fX19XG5mdW5jdGlvbiB1bWQoKXt1bWQ9Z2ViO3ZhciBhLGI7QWtkPW5ldyBqR2QoT0dlKTtUbGQ9bmV3IGpHZChQR2UpO0NrZD0oUmpkKCksTGpkKTtCa2Q9bmV3IGxHZChNRGUsQ2tkKTtuZXcgWHNkO0RrZD1uZXcgbEdkKER6ZSxudWxsKTtFa2Q9bmV3IGpHZChRR2UpO0xrZD0odWtkKCkseXNiKHRrZCxjRChXQyhxMywxKSxqd2UsMjk4LDAsW3BrZF0pKSk7S2tkPW5ldyBsR2QoWURlLExrZCk7TWtkPW5ldyBsR2QoTERlLChHZWIoKSxmYWxzZSkpO09rZD0oQ21kKCksQW1kKTtOa2Q9bmV3IGxHZChQRGUsT2tkKTtUa2Q9KFltZCgpLFhtZCk7U2tkPW5ldyBsR2Qoa0RlLFRrZCk7V2tkPW5ldyBsR2QoTUdlLGZhbHNlKTtZa2Q9KEZuZCgpLERuZCk7WGtkPW5ldyBsR2QoZkRlLFlrZCk7dWxkPW5ldyBBM2IoMTIpO3RsZD1uZXcgbEdkKEV6ZSx1bGQpO2FsZD1uZXcgbEdkKGRBZSxmYWxzZSk7YmxkPW5ldyBsR2QoaUVlLGZhbHNlKTtzbGQ9bmV3IGxHZChnQWUsZmFsc2UpO0lsZD0oQm9kKCksQW9kKTtIbGQ9bmV3IGxHZChlQWUsSWxkKTtRbGQ9bmV3IGpHZChmRWUpO1JsZD1uZXcgakdkKCR6ZSk7U2xkPW5ldyBqR2QoYkFlKTtWbGQ9bmV3IGpHZChjQWUpO2RsZD1uZXcgRWpkO2NsZD1uZXcgbEdkKFpEZSxkbGQpO0prZD1uZXcgbEdkKGFFZSxmYWxzZSk7WmtkPW5ldyBsR2QoYkVlLGZhbHNlKTtuZXcgakdkKFJHZSk7ZmxkPW5ldyBQMmI7ZWxkPW5ldyBsR2QoZ0VlLGZsZCk7cmxkPW5ldyBsR2QoSkRlLGZhbHNlKTtuZXcgWHNkO1VsZD1uZXcgbEdkKFNHZSwxKTtJa2Q9bmV3IGpHZChUR2UpO0hrZD1uZXcgakdkKFVHZSk7bW1kPW5ldyBsR2QobUFlLGZhbHNlKTtuZXcgbEdkKFZHZSx0cnVlKTtzZ2IoMCk7bmV3IGxHZChXR2Usc2diKDEwMCkpO25ldyBsR2QoWEdlLGZhbHNlKTtzZ2IoMCk7bmV3IGxHZChZR2Usc2diKDQwMDApKTtzZ2IoMCk7bmV3IGxHZChaR2Usc2diKDQwMCkpO25ldyBsR2QoJEdlLGZhbHNlKTtuZXcgbEdkKF9HZSxmYWxzZSk7bmV3IGxHZChhSGUsdHJ1ZSk7bmV3IGxHZChiSGUsZmFsc2UpO0drZD0oR3JkKCksRnJkKTtGa2Q9bmV3IGxHZChOR2UsR2tkKTtXbGQ9bmV3IGxHZCh4RGUsMTApO1hsZD1uZXcgbEdkKHlEZSwxMCk7WWxkPW5ldyBsR2QoQnplLDIwKTtabGQ9bmV3IGxHZCh6RGUsMTApOyRsZD1uZXcgbEdkKGFBZSwyKTtfbGQ9bmV3IGxHZChBRGUsMTApO2JtZD1uZXcgbEdkKEJEZSwwKTtjbWQ9bmV3IGxHZChFRGUsNSk7ZG1kPW5ldyBsR2QoQ0RlLDEpO2VtZD1uZXcgbEdkKEREZSwxKTtmbWQ9bmV3IGxHZChfemUsMjApO2dtZD1uZXcgbEdkKEZEZSwxMCk7am1kPW5ldyBsR2QoR0RlLDEwKTthbWQ9bmV3IGpHZChIRGUpO2ltZD1uZXcgUTJiO2htZD1uZXcgbEdkKGhFZSxpbWQpO3hsZD1uZXcgakdkKGVFZSk7d2xkPWZhbHNlO3ZsZD1uZXcgbEdkKGRFZSx3bGQpO2hsZD1uZXcgQTNiKDUpO2dsZD1uZXcgbEdkKFFEZSxobGQpO2psZD0oZG9kKCksYj1SRChtZmIoQTMpLDkpLG5ldyBGc2IoYixSRChXRWIoYixiLmxlbmd0aCksOSksMCkpO2lsZD1uZXcgbEdkKGtBZSxqbGQpO0FsZD0ocG9kKCksbW9kKTt6bGQ9bmV3IGxHZChURGUsQWxkKTtDbGQ9bmV3IGpHZChVRGUpO0RsZD1uZXcgakdkKFZEZSk7RWxkPW5ldyBqR2QoV0RlKTtCbGQ9bmV3IGpHZChYRGUpO2xsZD0oYT1SRChtZmIoSDMpLDkpLG5ldyBGc2IoYSxSRChXRWIoYSxhLmxlbmd0aCksOSksMCkpO2tsZD1uZXcgbEdkKGpBZSxsbGQpO3FsZD14c2IoKGRxZCgpLFlwZCkpO3BsZD1uZXcgbEdkKGlBZSxxbGQpO29sZD1uZXcgcmpkKDAsMCk7bmxkPW5ldyBsR2QoQ0FlLG9sZCk7bWxkPW5ldyBsR2QoaEFlLGZhbHNlKTtSa2Q9KE9tZCgpLExtZCk7UWtkPW5ldyBsR2QoJERlLFJrZCk7UGtkPW5ldyBsR2QoZkFlLGZhbHNlKTtuZXcgakdkKGNIZSk7c2diKDEpO25ldyBsR2QoZEhlLG51bGwpO0ZsZD1uZXcgakdkKGNFZSk7SmxkPW5ldyBqR2QoX0RlKTtQbGQ9KHFwZCgpLG9wZCk7T2xkPW5ldyBsR2QoS0RlLFBsZCk7R2xkPW5ldyBqR2QoSURlKTtNbGQ9KFBvZCgpLHhzYihOb2QpKTtMbGQ9bmV3IGxHZChsQWUsTWxkKTtLbGQ9bmV3IGxHZChSRGUsZmFsc2UpO05sZD1uZXcgbEdkKFNEZSx0cnVlKTtuZXcgWHNkO3FtZD1uZXcgbEdkKG5BZSwxKTtzbWQ9bmV3IGxHZChlSGUsbnVsbCk7bG1kPW5ldyBsR2Qob0FlLDE1MCk7a21kPW5ldyBsR2QocEFlLDEuNDE0KTtubWQ9bmV3IGxHZChxQWUsbnVsbCk7b21kPW5ldyBsR2QoZkhlLDEpOyRrZD1uZXcgbEdkKE5EZSxmYWxzZSk7X2tkPW5ldyBsR2QoT0RlLGZhbHNlKTtVa2Q9bmV3IGxHZChDemUsMSk7VmtkPShpbmQoKSxnbmQpO25ldyBsR2QoZ0hlLFZrZCk7eWxkPXRydWU7cm1kPShtcWQoKSxqcWQpO3RtZD1qcWQ7cG1kPWpxZH1cbmZ1bmN0aW9uIGhjYygpe2hjYz1nZWI7bmJjPW5ldyBpY2MoJ0RJUkVDVElPTl9QUkVQUk9DRVNTT1InLDApO2tiYz1uZXcgaWNjKCdDT01NRU5UX1BSRVBST0NFU1NPUicsMSk7b2JjPW5ldyBpY2MoJ0VER0VfQU5EX0xBWUVSX0NPTlNUUkFJTlRfRURHRV9SRVZFUlNFUicsMik7RWJjPW5ldyBpY2MoJ0lOVEVSQUNUSVZFX0VYVEVSTkFMX1BPUlRfUE9TSVRJT05FUicsMyk7WGJjPW5ldyBpY2MoJ1BBUlRJVElPTl9QUkVQUk9DRVNTT1InLDQpO0liYz1uZXcgaWNjKCdMQUJFTF9EVU1NWV9JTlNFUlRFUicsNSk7YmNjPW5ldyBpY2MoJ1NFTEZfTE9PUF9QUkVQUk9DRVNTT1InLDYpO05iYz1uZXcgaWNjKCdMQVlFUl9DT05TVFJBSU5UX1BSRVBST0NFU1NPUicsNyk7VmJjPW5ldyBpY2MoJ1BBUlRJVElPTl9NSURQUk9DRVNTT1InLDgpO3piYz1uZXcgaWNjKCdISUdIX0RFR1JFRV9OT0RFX0xBWUVSX1BST0NFU1NPUicsOSk7UmJjPW5ldyBpY2MoJ05PREVfUFJPTU9USU9OJywxMCk7TWJjPW5ldyBpY2MoJ0xBWUVSX0NPTlNUUkFJTlRfUE9TVFBST0NFU1NPUicsMTEpO1diYz1uZXcgaWNjKCdQQVJUSVRJT05fUE9TVFBST0NFU1NPUicsMTIpO3ZiYz1uZXcgaWNjKCdISUVSQVJDSElDQUxfUE9SVF9DT05TVFJBSU5UX1BST0NFU1NPUicsMTMpO2RjYz1uZXcgaWNjKCdTRU1JX0lOVEVSQUNUSVZFX0NST1NTTUlOX1BST0NFU1NPUicsMTQpO2ViYz1uZXcgaWNjKCdCUkVBS0lOR19QT0lOVF9JTlNFUlRFUicsMTUpO1FiYz1uZXcgaWNjKCdMT05HX0VER0VfU1BMSVRURVInLDE2KTtaYmM9bmV3IGljYygnUE9SVF9TSURFX1BST0NFU1NPUicsMTcpO0ZiYz1uZXcgaWNjKCdJTlZFUlRFRF9QT1JUX1BST0NFU1NPUicsMTgpO1liYz1uZXcgaWNjKCdQT1JUX0xJU1RfU09SVEVSJywxOSk7ZmNjPW5ldyBpY2MoJ1NPUlRfQllfSU5QVVRfT1JERVJfT0ZfTU9ERUwnLDIwKTtUYmM9bmV3IGljYygnTk9SVEhfU09VVEhfUE9SVF9QUkVQUk9DRVNTT1InLDIxKTtmYmM9bmV3IGljYygnQlJFQUtJTkdfUE9JTlRfUFJPQ0VTU09SJywyMik7VWJjPW5ldyBpY2MoakJlLDIzKTtnY2M9bmV3IGljYyhrQmUsMjQpO19iYz1uZXcgaWNjKCdTRUxGX0xPT1BfUE9SVF9SRVNUT1JFUicsMjUpO2VjYz1uZXcgaWNjKCdTSU5HTEVfRURHRV9HUkFQSF9XUkFQUEVSJywyNik7R2JjPW5ldyBpY2MoJ0lOX0xBWUVSX0NPTlNUUkFJTlRfUFJPQ0VTU09SJywyNyk7c2JjPW5ldyBpY2MoJ0VORF9OT0RFX1BPUlRfTEFCRUxfTUFOQUdFTUVOVF9QUk9DRVNTT1InLDI4KTtIYmM9bmV3IGljYygnTEFCRUxfQU5EX05PREVfU0laRV9QUk9DRVNTT1InLDI5KTtEYmM9bmV3IGljYygnSU5ORVJNT1NUX05PREVfTUFSR0lOX0NBTENVTEFUT1InLDMwKTtjY2M9bmV3IGljYygnU0VMRl9MT09QX1JPVVRFUicsMzEpO2liYz1uZXcgaWNjKCdDT01NRU5UX05PREVfTUFSR0lOX0NBTENVTEFUT1InLDMyKTtxYmM9bmV3IGljYygnRU5EX0xBQkVMX1BSRVBST0NFU1NPUicsMzMpO0tiYz1uZXcgaWNjKCdMQUJFTF9EVU1NWV9TV0lUQ0hFUicsMzQpO2hiYz1uZXcgaWNjKCdDRU5URVJfTEFCRUxfTUFOQUdFTUVOVF9QUk9DRVNTT1InLDM1KTtMYmM9bmV3IGljYygnTEFCRUxfU0lERV9TRUxFQ1RPUicsMzYpO0JiYz1uZXcgaWNjKCdIWVBFUkVER0VfRFVNTVlfTUVSR0VSJywzNyk7d2JjPW5ldyBpY2MoJ0hJRVJBUkNISUNBTF9QT1JUX0RVTU1ZX1NJWkVfUFJPQ0VTU09SJywzOCk7T2JjPW5ldyBpY2MoJ0xBWUVSX1NJWkVfQU5EX0dSQVBIX0hFSUdIVF9DQUxDVUxBVE9SJywzOSk7eWJjPW5ldyBpY2MoJ0hJRVJBUkNISUNBTF9QT1JUX1BPU0lUSU9OX1BST0NFU1NPUicsNDApO2xiYz1uZXcgaWNjKCdDT05TVFJBSU5UU19QT1NUUFJPQ0VTU09SJyw0MSk7amJjPW5ldyBpY2MoJ0NPTU1FTlRfUE9TVFBST0NFU1NPUicsNDIpO0NiYz1uZXcgaWNjKCdIWVBFUk5PREVfUFJPQ0VTU09SJyw0Myk7eGJjPW5ldyBpY2MoJ0hJRVJBUkNISUNBTF9QT1JUX09SVEhPR09OQUxfRURHRV9ST1VURVInLDQ0KTtQYmM9bmV3IGljYygnTE9OR19FREdFX0pPSU5FUicsNDUpO2FjYz1uZXcgaWNjKCdTRUxGX0xPT1BfUE9TVFBST0NFU1NPUicsNDYpO2diYz1uZXcgaWNjKCdCUkVBS0lOR19QT0lOVF9SRU1PVkVSJyw0Nyk7U2JjPW5ldyBpY2MoJ05PUlRIX1NPVVRIX1BPUlRfUE9TVFBST0NFU1NPUicsNDgpO0FiYz1uZXcgaWNjKCdIT1JJWk9OVEFMX0NPTVBBQ1RPUicsNDkpO0piYz1uZXcgaWNjKCdMQUJFTF9EVU1NWV9SRU1PVkVSJyw1MCk7dGJjPW5ldyBpY2MoJ0ZJTkFMX1NQTElORV9CRU5EUE9JTlRTX0NBTENVTEFUT1InLDUxKTtyYmM9bmV3IGljYygnRU5EX0xBQkVMX1NPUlRFUicsNTIpOyRiYz1uZXcgaWNjKCdSRVZFUlNFRF9FREdFX1JFU1RPUkVSJyw1Myk7cGJjPW5ldyBpY2MoJ0VORF9MQUJFTF9QT1NUUFJPQ0VTU09SJyw1NCk7dWJjPW5ldyBpY2MoJ0hJRVJBUkNISUNBTF9OT0RFX1JFU0laRVInLDU1KTttYmM9bmV3IGljYygnRElSRUNUSU9OX1BPU1RQUk9DRVNTT1InLDU2KX1cbmZ1bmN0aW9uIE96Yygpe096Yz1nZWI7VXhjPSgkdGMoKSxZdGMpO1R4Yz1uZXcgbEdkKEhCZSxVeGMpO2p5Yz1uZXcgbEdkKElCZSwoR2ViKCksZmFsc2UpKTtweWM9KE92YygpLE12Yyk7b3ljPW5ldyBsR2QoSkJlLHB5Yyk7SHljPW5ldyBsR2QoS0JlLGZhbHNlKTtJeWM9bmV3IGxHZChMQmUsdHJ1ZSk7aXhjPW5ldyBsR2QoTUJlLGZhbHNlKTthemM9KHNFYygpLHFFYyk7X3ljPW5ldyBsR2QoTkJlLGF6Yyk7c2diKDEpO2l6Yz1uZXcgbEdkKE9CZSxzZ2IoNykpO2p6Yz1uZXcgbEdkKFBCZSxmYWxzZSk7a3ljPW5ldyBsR2QoUUJlLGZhbHNlKTtTeGM9KFB0YygpLEx0Yyk7UnhjPW5ldyBsR2QoUkJlLFN4Yyk7R3ljPShfQ2MoKSxaQ2MpO0Z5Yz1uZXcgbEdkKFNCZSxHeWMpO3d5Yz0oY3hjKCksYnhjKTt2eWM9bmV3IGxHZChUQmUsd3ljKTtzZ2IoLTEpO3V5Yz1uZXcgbEdkKFVCZSxudWxsKTtzZ2IoLTEpO3h5Yz1uZXcgbEdkKFZCZSxzZ2IoLTEpKTtzZ2IoLTEpO3l5Yz1uZXcgbEdkKFdCZSxzZ2IoNCkpO3NnYigtMSk7QXljPW5ldyBsR2QoWEJlLHNnYigyKSk7RXljPShhRWMoKSwkRGMpO0R5Yz1uZXcgbEdkKFlCZSxFeWMpO3NnYigwKTtDeWM9bmV3IGxHZChaQmUsc2diKDApKTtzeWM9bmV3IGxHZCgkQmUsc2diKGx2ZSkpO1F4Yz0oc3RjKCkscXRjKTtQeGM9bmV3IGxHZChfQmUsUXhjKTt5eGM9bmV3IGxHZChhQ2UsZmFsc2UpO0h4Yz1uZXcgbEdkKGJDZSwwLjEpO054Yz1uZXcgbEdkKGNDZSxmYWxzZSk7SnhjPW5ldyBsR2QoZENlLG51bGwpO0t4Yz1uZXcgbEdkKGVDZSxudWxsKTtzZ2IoLTEpO0x4Yz1uZXcgbEdkKGZDZSxudWxsKTtzZ2IoLTEpO014Yz1uZXcgbEdkKGdDZSxzZ2IoLTEpKTtzZ2IoMCk7enhjPW5ldyBsR2QoaENlLHNnYig0MCkpO0Z4Yz0oeHZjKCksd3ZjKTtFeGM9bmV3IGxHZChpQ2UsRnhjKTtCeGM9dXZjO0F4Yz1uZXcgbEdkKGpDZSxCeGMpOyR5Yz0oSkRjKCksRURjKTtaeWM9bmV3IGxHZChrQ2UsJHljKTtQeWM9bmV3IGpHZChsQ2UpO0t5Yz0oQ3VjKCksQXVjKTtKeWM9bmV3IGxHZChtQ2UsS3ljKTtOeWM9KE91YygpLEx1Yyk7TXljPW5ldyBsR2QobkNlLE55Yyk7bmV3IFhzZDtTeWM9bmV3IGxHZChvQ2UsMC4zKTtVeWM9bmV3IGpHZChwQ2UpO1d5Yz0od0RjKCksdURjKTtWeWM9bmV3IGxHZChxQ2UsV3ljKTtheWM9KEtFYygpLElFYyk7X3hjPW5ldyBsR2QockNlLGF5Yyk7Y3ljPShURWMoKSxTRWMpO2J5Yz1uZXcgbEdkKHNDZSxjeWMpO2V5Yz0obEZjKCksa0ZjKTtkeWM9bmV3IGxHZCh0Q2UsZXljKTtneWM9bmV3IGxHZCh1Q2UsMC4yKTtaeGM9bmV3IGxHZCh2Q2UsMik7ZXpjPW5ldyBsR2Qod0NlLG51bGwpO2d6Yz1uZXcgbEdkKHhDZSwxMCk7ZnpjPW5ldyBsR2QoeUNlLDEwKTtoemM9bmV3IGxHZCh6Q2UsMjApO3NnYigwKTtiemM9bmV3IGxHZChBQ2Usc2diKDApKTtzZ2IoMCk7Y3pjPW5ldyBsR2QoQkNlLHNnYigwKSk7c2diKDApO2R6Yz1uZXcgbEdkKENDZSxzZ2IoMCkpO2p4Yz1uZXcgbEdkKERDZSxmYWxzZSk7bnhjPSgkdWMoKSxZdWMpO214Yz1uZXcgbEdkKEVDZSxueGMpO2x4Yz0oanRjKCksaXRjKTtreGM9bmV3IGxHZChGQ2UsbHhjKTtteWM9bmV3IGxHZChHQ2UsZmFsc2UpO3NnYigwKTtseWM9bmV3IGxHZChIQ2Usc2diKDE2KSk7c2diKDApO255Yz1uZXcgbEdkKElDZSxzZ2IoNSkpO0d6Yz0oREZjKCksQkZjKTtGemM9bmV3IGxHZChKQ2UsR3pjKTtremM9bmV3IGxHZChLQ2UsMTApO256Yz1uZXcgbEdkKExDZSwxKTt3emM9KEV0YygpLER0Yyk7dnpjPW5ldyBsR2QoTUNlLHd6Yyk7cXpjPW5ldyBqR2QoTkNlKTt0emM9c2diKDEpO3NnYigwKTtzemM9bmV3IGxHZChPQ2UsdHpjKTtMemM9KHVGYygpLHJGYyk7S3pjPW5ldyBsR2QoUENlLEx6Yyk7SHpjPW5ldyBqR2QoUUNlKTtCemM9bmV3IGxHZChSQ2UsdHJ1ZSk7enpjPW5ldyBsR2QoU0NlLDIpO0R6Yz1uZXcgbEdkKFRDZSx0cnVlKTtZeGM9KHR1YygpLHJ1Yyk7WHhjPW5ldyBsR2QoVUNlLFl4Yyk7V3hjPShidGMoKSxac2MpO1Z4Yz1uZXcgbEdkKFZDZSxXeGMpO3h4Yz0oa0VjKCksaEVjKTt3eGM9bmV3IGxHZChXQ2UseHhjKTt2eGM9bmV3IGxHZChYQ2UsZmFsc2UpO3V4Yz1uZXcgbEdkKFlDZSxmYWxzZSk7cHhjPShVJGIoKSxUJGIpO294Yz1uZXcgbEdkKFpDZSxweGMpO3R4Yz0obERjKCksaURjKTtzeGM9bmV3IGxHZCgkQ2UsdHhjKTtxeGM9bmV3IGxHZChfQ2UsMCk7cnhjPW5ldyBsR2QoYURlLDApO3J5Yz1OdGM7cXljPXB0Yzt6eWM9WUNjO0J5Yz1ZQ2M7dHljPVRDYztJeGM9KEZuZCgpLENuZCk7T3hjPXF0YztHeGM9cXRjO0N4Yz1xdGM7RHhjPUNuZDtReWM9SERjO1J5Yz1FRGM7THljPUVEYztPeWM9RURjO1R5Yz1HRGM7WXljPUhEYztYeWM9SERjO2Z5Yz0oWW1kKCksV21kKTtoeWM9V21kO2l5Yz1rRmM7JHhjPVZtZDtsemM9Q0ZjO216Yz1BRmM7b3pjPUNGYztwemM9QUZjO3h6Yz1DRmM7eXpjPUFGYztyemM9Q3RjO3V6Yz1EdGM7TXpjPUNGYztOemM9QUZjO0l6Yz1DRmM7SnpjPUFGYztDemM9QUZjO0F6Yz1BRmM7RXpjPUFGY31cbmZ1bmN0aW9uIGlOYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEIsQyxELEYsRyxILEksSixLLEwsTSxOLE8sUCxRLFIsUyxULFUsVixXLFgsWSxaLCQsYWIsYmIsY2IsZGIsZWIsZmIsZ2IsaGIsaWIsamIsa2IsbGI7Y2I9MDtmb3IoSD1iLEs9MCxOPUgubGVuZ3RoO0s8TjsrK0spe0Y9SFtLXTtmb3IoVj1uZXcgQW5iKEYuaik7Vi5hPFYuYy5jLmxlbmd0aDspe1U9UkQoeW5iKFYpLDEyKTtYPTA7Zm9yKGg9bmV3IEFuYihVLmcpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxOCk7Ri5jIT1nLmQuaS5jJiYrK1h9WD4wJiYoYS5hW1UucF09Y2IrKyl9fWhiPTA7Zm9yKEk9YyxMPTAsTz1JLmxlbmd0aDtMPE87KytMKXtGPUlbTF07UD0wO2ZvcihWPW5ldyBBbmIoRi5qKTtWLmE8Vi5jLmMubGVuZ3RoOyl7VT1SRCh5bmIoViksMTIpO2lmKFUuaj09KHFwZCgpLFlvZCkpe2ZvcihoPW5ldyBBbmIoVS5lKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTgpO2lmKEYuYyE9Zy5jLmkuYyl7KytQO2JyZWFrfX19ZWxzZXticmVha319Uj0wO1k9bmV3IEprYihGLmosRi5qLmMubGVuZ3RoKTt3aGlsZShZLmI+MCl7VT0oc0ZiKFkuYj4wKSxSRChZLmEuWGIoWS5jPS0tWS5iKSwxMikpO1g9MDtmb3IoaD1uZXcgQW5iKFUuZSk7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDE4KTtGLmMhPWcuYy5pLmMmJisrWH1pZihYPjApe2lmKFUuaj09KHFwZCgpLFlvZCkpe2EuYVtVLnBdPWhiOysraGJ9ZWxzZXthLmFbVS5wXT1oYitQK1I7KytSfX19aGIrPVJ9Vz1uZXcgVHNiO289bmV3IEl1Yjtmb3IoRz1iLEo9MCxNPUcubGVuZ3RoO0o8TTsrK0ope0Y9R1tKXTtmb3IoZmI9bmV3IEFuYihGLmopO2ZiLmE8ZmIuYy5jLmxlbmd0aDspe2ViPVJEKHluYihmYiksMTIpO2ZvcihoPW5ldyBBbmIoZWIuZyk7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDE4KTtqYj1nLmQ7aWYoRi5jIT1qYi5pLmMpe2RiPVJEKFdkKHF0YihXLmYsZWIpKSw0NzgpO2liPVJEKFdkKHF0YihXLmYsamIpKSw0NzgpO2lmKCFkYiYmIWliKXtuPW5ldyBsTmM7by5hLnpjKG4sbyk7Um1iKG4uYSxnKTtSbWIobi5kLGViKTtydGIoVy5mLGViLG4pO1JtYihuLmQsamIpO3J0YihXLmYsamIsbil9ZWxzZSBpZighZGIpe1JtYihpYi5hLGcpO1JtYihpYi5kLGViKTtydGIoVy5mLGViLGliKX1lbHNlIGlmKCFpYil7Um1iKGRiLmEsZyk7Um1iKGRiLmQsamIpO3J0YihXLmYsamIsZGIpfWVsc2UgaWYoZGI9PWliKXtSbWIoZGIuYSxnKX1lbHNle1JtYihkYi5hLGcpO2ZvcihUPW5ldyBBbmIoaWIuZCk7VC5hPFQuYy5jLmxlbmd0aDspe1M9UkQoeW5iKFQpLDEyKTtydGIoVy5mLFMsZGIpfVRtYihkYi5hLGliLmEpO1RtYihkYi5kLGliLmQpO28uYS5CYyhpYikhPW51bGx9fX19fXA9UkQoRWUobywkQyhPWSx7MzoxLDQ6MSw1OjEsMjA0NToxfSw0Nzgsby5hLmdjKCksMCwxKSksMjA0NSk7RD1iWzBdLmM7YmI9Y1swXS5jO2ZvcihrPXAsbD0wLG09ay5sZW5ndGg7bDxtOysrbCl7aj1rW2xdO2ouZT1jYjtqLmY9aGI7Zm9yKFY9bmV3IEFuYihqLmQpO1YuYTxWLmMuYy5sZW5ndGg7KXtVPVJEKHluYihWKSwxMik7Wj1hLmFbVS5wXTtpZihVLmkuYz09RCl7WjxqLmUmJihqLmU9Wik7Wj5qLmImJihqLmI9Wil9ZWxzZSBpZihVLmkuYz09YmIpe1o8ai5mJiYoai5mPVopO1o+ai5jJiYoai5jPVopfX19V25iKHAsMCxwLmxlbmd0aCxudWxsKTtnYj0kQyhrRSxQd2UsMjgscC5sZW5ndGgsMTUsMSk7ZD0kQyhrRSxQd2UsMjgsaGIrMSwxNSwxKTtmb3Iocj0wO3I8cC5sZW5ndGg7cisrKXtnYltyXT1wW3JdLmY7ZFtnYltyXV09MX1mPTA7Zm9yKHM9MDtzPGQubGVuZ3RoO3MrKyl7ZFtzXT09MT8oZFtzXT1mKTotLWZ9JD0wO2Zvcih0PTA7dDxnYi5sZW5ndGg7dCsrKXtnYlt0XSs9ZFtnYlt0XV07JD0kd25kLk1hdGgubWF4KCQsZ2JbdF0rMSl9aT0xO3doaWxlKGk8JCl7aSo9Mn1sYj0yKmktMTtpLT0xO2tiPSRDKGtFLFB3ZSwyOCxsYiwxNSwxKTtlPTA7Zm9yKEI9MDtCPGdiLmxlbmd0aDtCKyspe0E9Z2JbQl0raTsrK2tiW0FdO3doaWxlKEE+MCl7QSUyPjAmJihlKz1rYltBKzFdKTtBPShBLTEpLzJ8MDsrK2tiW0FdfX1DPSRDKE5ZLHJ2ZSwzNzQscC5sZW5ndGgqMiwwLDEpO2Zvcih1PTA7dTxwLmxlbmd0aDt1Kyspe0NbMip1XT1uZXcgb05jKHBbdV0scFt1XS5lLHBbdV0uYiwoc05jKCksck5jKSk7Q1syKnUrMV09bmV3IG9OYyhwW3VdLHBbdV0uYixwW3VdLmUscU5jKX1XbmIoQywwLEMubGVuZ3RoLG51bGwpO1E9MDtmb3Iodj0wO3Y8Qy5sZW5ndGg7disrKXtzd2l0Y2goQ1t2XS5kLmcpe2Nhc2UgMDorK1E7YnJlYWs7Y2FzZSAxOi0tUTtlKz1RO319YWI9JEMoTlkscnZlLDM3NCxwLmxlbmd0aCoyLDAsMSk7Zm9yKHc9MDt3PHAubGVuZ3RoO3crKyl7YWJbMip3XT1uZXcgb05jKHBbd10scFt3XS5mLHBbd10uYywoc05jKCksck5jKSk7YWJbMip3KzFdPW5ldyBvTmMocFt3XSxwW3ddLmMscFt3XS5mLHFOYyl9V25iKGFiLDAsYWIubGVuZ3RoLG51bGwpO1E9MDtmb3IocT0wO3E8YWIubGVuZ3RoO3ErKyl7c3dpdGNoKGFiW3FdLmQuZyl7Y2FzZSAwOisrUTticmVhaztjYXNlIDE6LS1RO2UrPVE7fX1yZXR1cm4gZX1cbmZ1bmN0aW9uIFZzZSgpe1ZzZT1nZWI7RXNlPW5ldyBXc2UoNyk7R3NlPSgrK1VzZSxuZXcgSHRlKDgsOTQpKTsrK1VzZTtuZXcgSHRlKDgsNjQpO0hzZT0oKytVc2UsbmV3IEh0ZSg4LDM2KSk7TnNlPSgrK1VzZSxuZXcgSHRlKDgsNjUpKTtPc2U9KCsrVXNlLG5ldyBIdGUoOCwxMjIpKTtQc2U9KCsrVXNlLG5ldyBIdGUoOCw5MCkpO1NzZT0oKytVc2UsbmV3IEh0ZSg4LDk4KSk7THNlPSgrK1VzZSxuZXcgSHRlKDgsNjYpKTtRc2U9KCsrVXNlLG5ldyBIdGUoOCw2MCkpO1RzZT0oKytVc2UsbmV3IEh0ZSg4LDYyKSk7RHNlPW5ldyBXc2UoMTEpO0JzZT0oKytVc2UsbmV3IHh0ZSg0KSk7cnRlKEJzZSw0OCw1Nyk7UnNlPSgrK1VzZSxuZXcgeHRlKDQpKTtydGUoUnNlLDQ4LDU3KTtydGUoUnNlLDY1LDkwKTtydGUoUnNlLDk1LDk1KTtydGUoUnNlLDk3LDEyMik7TXNlPSgrK1VzZSxuZXcgeHRlKDQpKTtydGUoTXNlLDksOSk7cnRlKE1zZSwxMCwxMCk7cnRlKE1zZSwxMiwxMik7cnRlKE1zZSwxMywxMyk7cnRlKE1zZSwzMiwzMik7SXNlPXl0ZShCc2UpO0tzZT15dGUoUnNlKTtKc2U9eXRlKE1zZSk7d3NlPW5ldyBUc2I7eHNlPW5ldyBUc2I7eXNlPWNEKFdDKHFKLDEpLE52ZSwyLDYsWydDbicsJ0x1JywnTGwnLCdMdCcsJ0xtJywnTG8nLCdNbicsJ01lJywnTWMnLCdOZCcsJ05sJywnTm8nLCdacycsJ1psJywnWnAnLCdDYycsJ0NmJyxudWxsLCdDbycsJ0NzJywnUGQnLCdQcycsJ1BlJywnUGMnLCdQbycsJ1NtJywnU2MnLCdTaycsJ1NvJywnUGknLCdQZicsJ0wnLCdNJywnTicsJ1onLCdDJywnUCcsJ1MnXSk7dnNlPWNEKFdDKHFKLDEpLE52ZSwyLDYsWydCYXNpYyBMYXRpbicsJ0xhdGluLTEgU3VwcGxlbWVudCcsJ0xhdGluIEV4dGVuZGVkLUEnLCdMYXRpbiBFeHRlbmRlZC1CJywnSVBBIEV4dGVuc2lvbnMnLCdTcGFjaW5nIE1vZGlmaWVyIExldHRlcnMnLCdDb21iaW5pbmcgRGlhY3JpdGljYWwgTWFya3MnLCdHcmVlaycsJ0N5cmlsbGljJywnQXJtZW5pYW4nLCdIZWJyZXcnLCdBcmFiaWMnLCdTeXJpYWMnLCdUaGFhbmEnLCdEZXZhbmFnYXJpJywnQmVuZ2FsaScsJ0d1cm11a2hpJywnR3VqYXJhdGknLCdPcml5YScsJ1RhbWlsJywnVGVsdWd1JywnS2FubmFkYScsJ01hbGF5YWxhbScsJ1NpbmhhbGEnLCdUaGFpJywnTGFvJywnVGliZXRhbicsJ015YW5tYXInLCdHZW9yZ2lhbicsJ0hhbmd1bCBKYW1vJywnRXRoaW9waWMnLCdDaGVyb2tlZScsJ1VuaWZpZWQgQ2FuYWRpYW4gQWJvcmlnaW5hbCBTeWxsYWJpY3MnLCdPZ2hhbScsJ1J1bmljJywnS2htZXInLCdNb25nb2xpYW4nLCdMYXRpbiBFeHRlbmRlZCBBZGRpdGlvbmFsJywnR3JlZWsgRXh0ZW5kZWQnLCdHZW5lcmFsIFB1bmN0dWF0aW9uJywnU3VwZXJzY3JpcHRzIGFuZCBTdWJzY3JpcHRzJywnQ3VycmVuY3kgU3ltYm9scycsJ0NvbWJpbmluZyBNYXJrcyBmb3IgU3ltYm9scycsJ0xldHRlcmxpa2UgU3ltYm9scycsJ051bWJlciBGb3JtcycsJ0Fycm93cycsJ01hdGhlbWF0aWNhbCBPcGVyYXRvcnMnLCdNaXNjZWxsYW5lb3VzIFRlY2huaWNhbCcsJ0NvbnRyb2wgUGljdHVyZXMnLCdPcHRpY2FsIENoYXJhY3RlciBSZWNvZ25pdGlvbicsJ0VuY2xvc2VkIEFscGhhbnVtZXJpY3MnLCdCb3ggRHJhd2luZycsJ0Jsb2NrIEVsZW1lbnRzJywnR2VvbWV0cmljIFNoYXBlcycsJ01pc2NlbGxhbmVvdXMgU3ltYm9scycsJ0RpbmdiYXRzJywnQnJhaWxsZSBQYXR0ZXJucycsJ0NKSyBSYWRpY2FscyBTdXBwbGVtZW50JywnS2FuZ3hpIFJhZGljYWxzJywnSWRlb2dyYXBoaWMgRGVzY3JpcHRpb24gQ2hhcmFjdGVycycsJ0NKSyBTeW1ib2xzIGFuZCBQdW5jdHVhdGlvbicsJ0hpcmFnYW5hJywnS2F0YWthbmEnLCdCb3BvbW9mbycsJ0hhbmd1bCBDb21wYXRpYmlsaXR5IEphbW8nLCdLYW5idW4nLCdCb3BvbW9mbyBFeHRlbmRlZCcsJ0VuY2xvc2VkIENKSyBMZXR0ZXJzIGFuZCBNb250aHMnLCdDSksgQ29tcGF0aWJpbGl0eScsJ0NKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEnLCdDSksgVW5pZmllZCBJZGVvZ3JhcGhzJywnWWkgU3lsbGFibGVzJywnWWkgUmFkaWNhbHMnLCdIYW5ndWwgU3lsbGFibGVzJyxWTGUsJ0NKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMnLCdBbHBoYWJldGljIFByZXNlbnRhdGlvbiBGb3JtcycsJ0FyYWJpYyBQcmVzZW50YXRpb24gRm9ybXMtQScsJ0NvbWJpbmluZyBIYWxmIE1hcmtzJywnQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMnLCdTbWFsbCBGb3JtIFZhcmlhbnRzJywnQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1CJywnU3BlY2lhbHMnLCdIYWxmd2lkdGggYW5kIEZ1bGx3aWR0aCBGb3JtcycsJ09sZCBJdGFsaWMnLCdHb3RoaWMnLCdEZXNlcmV0JywnQnl6YW50aW5lIE11c2ljYWwgU3ltYm9scycsJ011c2ljYWwgU3ltYm9scycsJ01hdGhlbWF0aWNhbCBBbHBoYW51bWVyaWMgU3ltYm9scycsJ0NKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEInLCdDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIFN1cHBsZW1lbnQnLCdUYWdzJ10pO3pzZT1jRChXQyhrRSwxKSxQd2UsMjgsMTUsWzY2MzA0LDY2MzUxLDY2MzUyLDY2MzgzLDY2NTYwLDY2NjM5LDExODc4NCwxMTkwMzksMTE5MDQwLDExOTI5NSwxMTk4MDgsMTIwODMxLDEzMTA3MiwxNzM3ODIsMTk0NTYwLDE5NTEwMyw5MTc1MDQsOTE3NjMxXSl9XG5mdW5jdGlvbiBoTWIoKXtoTWI9Z2ViO2VNYj1uZXcga01iKCdPVVRfVF9MJywwLChFS2IoKSxDS2IpLCh2TGIoKSxzTGIpLChaSmIoKSxXSmIpLFdKYixjRChXQyhiTCwxKSxydmUsMjEsMCxbeXNiKChkb2QoKSxfbmQpLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtjb2QsWG5kXSkpXSkpO2RNYj1uZXcga01iKCdPVVRfVF9DJywxLEJLYixzTGIsV0piLFhKYixjRChXQyhiTCwxKSxydmUsMjEsMCxbeXNiKF9uZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbY29kLFduZF0pKSx5c2IoX25kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtjb2QsV25kLFluZF0pKV0pKTtmTWI9bmV3IGtNYignT1VUX1RfUicsMixES2Isc0xiLFdKYixZSmIsY0QoV0MoYkwsMSkscnZlLDIxLDAsW3lzYihfbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW2NvZCxabmRdKSldKSk7WExiPW5ldyBrTWIoJ09VVF9CX0wnLDMsQ0tiLHVMYixZSmIsV0piLGNEKFdDKGJMLDEpLHJ2ZSwyMSwwLFt5c2IoX25kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFthb2QsWG5kXSkpXSkpO1dMYj1uZXcga01iKCdPVVRfQl9DJyw0LEJLYix1TGIsWUpiLFhKYixjRChXQyhiTCwxKSxydmUsMjEsMCxbeXNiKF9uZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbYW9kLFduZF0pKSx5c2IoX25kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFthb2QsV25kLFluZF0pKV0pKTtZTGI9bmV3IGtNYignT1VUX0JfUicsNSxES2IsdUxiLFlKYixZSmIsY0QoV0MoYkwsMSkscnZlLDIxLDAsW3lzYihfbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW2FvZCxabmRdKSldKSk7X0xiPW5ldyBrTWIoJ09VVF9MX1QnLDYsREtiLHVMYixXSmIsV0piLGNEKFdDKGJMLDEpLHJ2ZSwyMSwwLFt5c2IoX25kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtYbmQsY29kLFluZF0pKV0pKTskTGI9bmV3IGtNYignT1VUX0xfQycsNyxES2IsdExiLFhKYixXSmIsY0QoV0MoYkwsMSkscnZlLDIxLDAsW3lzYihfbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW1huZCxib2RdKSkseXNiKF9uZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbWG5kLGJvZCxZbmRdKSldKSk7WkxiPW5ldyBrTWIoJ09VVF9MX0InLDgsREtiLHNMYixZSmIsV0piLGNEKFdDKGJMLDEpLHJ2ZSwyMSwwLFt5c2IoX25kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtYbmQsYW9kLFluZF0pKV0pKTtjTWI9bmV3IGtNYignT1VUX1JfVCcsOSxDS2IsdUxiLFdKYixZSmIsY0QoV0MoYkwsMSkscnZlLDIxLDAsW3lzYihfbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW1puZCxjb2QsWW5kXSkpXSkpO2JNYj1uZXcga01iKCdPVVRfUl9DJywxMCxDS2IsdExiLFhKYixZSmIsY0QoV0MoYkwsMSkscnZlLDIxLDAsW3lzYihfbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW1puZCxib2RdKSkseXNiKF9uZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbWm5kLGJvZCxZbmRdKSldKSk7YU1iPW5ldyBrTWIoJ09VVF9SX0InLDExLENLYixzTGIsWUpiLFlKYixjRChXQyhiTCwxKSxydmUsMjEsMCxbeXNiKF9uZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbWm5kLGFvZCxZbmRdKSldKSk7VUxiPW5ldyBrTWIoJ0lOX1RfTCcsMTIsQ0tiLHVMYixXSmIsV0piLGNEKFdDKGJMLDEpLHJ2ZSwyMSwwLFt5c2IoJG5kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtjb2QsWG5kXSkpLHlzYigkbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW2NvZCxYbmQsWW5kXSkpXSkpO1RMYj1uZXcga01iKCdJTl9UX0MnLDEzLEJLYix1TGIsV0piLFhKYixjRChXQyhiTCwxKSxydmUsMjEsMCxbeXNiKCRuZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbY29kLFduZF0pKSx5c2IoJG5kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtjb2QsV25kLFluZF0pKV0pKTtWTGI9bmV3IGtNYignSU5fVF9SJywxNCxES2IsdUxiLFdKYixZSmIsY0QoV0MoYkwsMSkscnZlLDIxLDAsW3lzYigkbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW2NvZCxabmRdKSkseXNiKCRuZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbY29kLFpuZCxZbmRdKSldKSk7UkxiPW5ldyBrTWIoJ0lOX0NfTCcsMTUsQ0tiLHRMYixYSmIsV0piLGNEKFdDKGJMLDEpLHJ2ZSwyMSwwLFt5c2IoJG5kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtib2QsWG5kXSkpLHlzYigkbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW2JvZCxYbmQsWW5kXSkpXSkpO1FMYj1uZXcga01iKCdJTl9DX0MnLDE2LEJLYix0TGIsWEpiLFhKYixjRChXQyhiTCwxKSxydmUsMjEsMCxbeXNiKCRuZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbYm9kLFduZF0pKSx5c2IoJG5kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFtib2QsV25kLFluZF0pKV0pKTtTTGI9bmV3IGtNYignSU5fQ19SJywxNyxES2IsdExiLFhKYixZSmIsY0QoV0MoYkwsMSkscnZlLDIxLDAsW3lzYigkbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW2JvZCxabmRdKSkseXNiKCRuZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbYm9kLFpuZCxZbmRdKSldKSk7T0xiPW5ldyBrTWIoJ0lOX0JfTCcsMTgsQ0tiLHNMYixZSmIsV0piLGNEKFdDKGJMLDEpLHJ2ZSwyMSwwLFt5c2IoJG5kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFthb2QsWG5kXSkpLHlzYigkbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW2FvZCxYbmQsWW5kXSkpXSkpO05MYj1uZXcga01iKCdJTl9CX0MnLDE5LEJLYixzTGIsWUpiLFhKYixjRChXQyhiTCwxKSxydmUsMjEsMCxbeXNiKCRuZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbYW9kLFduZF0pKSx5c2IoJG5kLGNEKFdDKEEzLDEpLGp3ZSw5NSwwLFthb2QsV25kLFluZF0pKV0pKTtQTGI9bmV3IGtNYignSU5fQl9SJywyMCxES2Isc0xiLFlKYixZSmIsY0QoV0MoYkwsMSkscnZlLDIxLDAsW3lzYigkbmQsY0QoV0MoQTMsMSksandlLDk1LDAsW2FvZCxabmRdKSkseXNiKCRuZCxjRChXQyhBMywxKSxqd2UsOTUsMCxbYW9kLFpuZCxZbmRdKSldKSk7Z01iPW5ldyBrTWIoU3llLDIxLG51bGwsbnVsbCxudWxsLG51bGwsY0QoV0MoYkwsMSkscnZlLDIxLDAsW10pKX1cbmZ1bmN0aW9uIEpUZCgpe0pUZD1nZWI7blRkPShsVGQoKSxrVGQpLmI7UkQoUUhkKHhZZChrVGQuYiksMCksMzUpO1JEKFFIZCh4WWQoa1RkLmIpLDEpLDE5KTttVGQ9a1RkLmE7UkQoUUhkKHhZZChrVGQuYSksMCksMzUpO1JEKFFIZCh4WWQoa1RkLmEpLDEpLDE5KTtSRChRSGQoeFlkKGtUZC5hKSwyKSwxOSk7UkQoUUhkKHhZZChrVGQuYSksMyksMTkpO1JEKFFIZCh4WWQoa1RkLmEpLDQpLDE5KTtvVGQ9a1RkLm87UkQoUUhkKHhZZChrVGQubyksMCksMzUpO1JEKFFIZCh4WWQoa1RkLm8pLDEpLDM1KTtxVGQ9UkQoUUhkKHhZZChrVGQubyksMiksMTkpO1JEKFFIZCh4WWQoa1RkLm8pLDMpLDE5KTtSRChRSGQoeFlkKGtUZC5vKSw0KSwxOSk7UkQoUUhkKHhZZChrVGQubyksNSksMTkpO1JEKFFIZCh4WWQoa1RkLm8pLDYpLDE5KTtSRChRSGQoeFlkKGtUZC5vKSw3KSwxOSk7UkQoUUhkKHhZZChrVGQubyksOCksMTkpO1JEKFFIZCh4WWQoa1RkLm8pLDkpLDE5KTtSRChRSGQoeFlkKGtUZC5vKSwxMCksMTkpO1JEKFFIZCh4WWQoa1RkLm8pLDExKSwxOSk7UkQoUUhkKHhZZChrVGQubyksMTIpLDE5KTtSRChRSGQoeFlkKGtUZC5vKSwxMyksMTkpO1JEKFFIZCh4WWQoa1RkLm8pLDE0KSwxOSk7UkQoUUhkKHhZZChrVGQubyksMTUpLDE5KTtSRChRSGQodVlkKGtUZC5vKSwwKSw2Mik7UkQoUUhkKHVZZChrVGQubyksMSksNjIpO1JEKFFIZCh1WWQoa1RkLm8pLDIpLDYyKTtSRChRSGQodVlkKGtUZC5vKSwzKSw2Mik7UkQoUUhkKHVZZChrVGQubyksNCksNjIpO1JEKFFIZCh1WWQoa1RkLm8pLDUpLDYyKTtSRChRSGQodVlkKGtUZC5vKSw2KSw2Mik7UkQoUUhkKHVZZChrVGQubyksNyksNjIpO1JEKFFIZCh1WWQoa1RkLm8pLDgpLDYyKTtSRChRSGQodVlkKGtUZC5vKSw5KSw2Mik7cFRkPWtUZC5wO1JEKFFIZCh4WWQoa1RkLnApLDApLDM1KTtSRChRSGQoeFlkKGtUZC5wKSwxKSwzNSk7UkQoUUhkKHhZZChrVGQucCksMiksMzUpO1JEKFFIZCh4WWQoa1RkLnApLDMpLDM1KTtSRChRSGQoeFlkKGtUZC5wKSw0KSwxOSk7UkQoUUhkKHhZZChrVGQucCksNSksMTkpO1JEKFFIZCh1WWQoa1RkLnApLDApLDYyKTtSRChRSGQodVlkKGtUZC5wKSwxKSw2Mik7clRkPWtUZC5xO1JEKFFIZCh4WWQoa1RkLnEpLDApLDM1KTtzVGQ9a1RkLnY7UkQoUUhkKHhZZChrVGQudiksMCksMTkpO1JEKFFIZCh1WWQoa1RkLnYpLDApLDYyKTtSRChRSGQodVlkKGtUZC52KSwxKSw2Mik7UkQoUUhkKHVZZChrVGQudiksMiksNjIpO3RUZD1rVGQudztSRChRSGQoeFlkKGtUZC53KSwwKSwzNSk7UkQoUUhkKHhZZChrVGQudyksMSksMzUpO1JEKFFIZCh4WWQoa1RkLncpLDIpLDM1KTtSRChRSGQoeFlkKGtUZC53KSwzKSwxOSk7dVRkPWtUZC5CO1JEKFFIZCh4WWQoa1RkLkIpLDApLDE5KTtSRChRSGQodVlkKGtUZC5CKSwwKSw2Mik7UkQoUUhkKHVZZChrVGQuQiksMSksNjIpO1JEKFFIZCh1WWQoa1RkLkIpLDIpLDYyKTt4VGQ9a1RkLlE7UkQoUUhkKHhZZChrVGQuUSksMCksMTkpO1JEKFFIZCh1WWQoa1RkLlEpLDApLDYyKTt5VGQ9a1RkLlI7UkQoUUhkKHhZZChrVGQuUiksMCksMzUpO3pUZD1rVGQuUztSRChRSGQodVlkKGtUZC5TKSwwKSw2Mik7UkQoUUhkKHVZZChrVGQuUyksMSksNjIpO1JEKFFIZCh1WWQoa1RkLlMpLDIpLDYyKTtSRChRSGQodVlkKGtUZC5TKSwzKSw2Mik7UkQoUUhkKHVZZChrVGQuUyksNCksNjIpO1JEKFFIZCh1WWQoa1RkLlMpLDUpLDYyKTtSRChRSGQodVlkKGtUZC5TKSw2KSw2Mik7UkQoUUhkKHVZZChrVGQuUyksNyksNjIpO1JEKFFIZCh1WWQoa1RkLlMpLDgpLDYyKTtSRChRSGQodVlkKGtUZC5TKSw5KSw2Mik7UkQoUUhkKHVZZChrVGQuUyksMTApLDYyKTtSRChRSGQodVlkKGtUZC5TKSwxMSksNjIpO1JEKFFIZCh1WWQoa1RkLlMpLDEyKSw2Mik7UkQoUUhkKHVZZChrVGQuUyksMTMpLDYyKTtSRChRSGQodVlkKGtUZC5TKSwxNCksNjIpO0FUZD1rVGQuVDtSRChRSGQoeFlkKGtUZC5UKSwwKSwxOSk7UkQoUUhkKHhZZChrVGQuVCksMiksMTkpO0JUZD1SRChRSGQoeFlkKGtUZC5UKSwzKSwxOSk7UkQoUUhkKHhZZChrVGQuVCksNCksMTkpO1JEKFFIZCh1WWQoa1RkLlQpLDApLDYyKTtSRChRSGQodVlkKGtUZC5UKSwxKSw2Mik7UkQoUUhkKHhZZChrVGQuVCksMSksMTkpO0NUZD1rVGQuVTtSRChRSGQoeFlkKGtUZC5VKSwwKSwzNSk7UkQoUUhkKHhZZChrVGQuVSksMSksMzUpO1JEKFFIZCh4WWQoa1RkLlUpLDIpLDE5KTtSRChRSGQoeFlkKGtUZC5VKSwzKSwxOSk7UkQoUUhkKHhZZChrVGQuVSksNCksMTkpO1JEKFFIZCh4WWQoa1RkLlUpLDUpLDE5KTtSRChRSGQodVlkKGtUZC5VKSwwKSw2Mik7RFRkPWtUZC5WO1JEKFFIZCh4WWQoa1RkLlYpLDApLDE5KTtFVGQ9a1RkLlc7UkQoUUhkKHhZZChrVGQuVyksMCksMzUpO1JEKFFIZCh4WWQoa1RkLlcpLDEpLDM1KTtSRChRSGQoeFlkKGtUZC5XKSwyKSwzNSk7UkQoUUhkKHhZZChrVGQuVyksMyksMTkpO1JEKFFIZCh4WWQoa1RkLlcpLDQpLDE5KTtSRChRSGQoeFlkKGtUZC5XKSw1KSwxOSk7R1RkPWtUZC5iYjtSRChRSGQoeFlkKGtUZC5iYiksMCksMzUpO1JEKFFIZCh4WWQoa1RkLmJiKSwxKSwzNSk7UkQoUUhkKHhZZChrVGQuYmIpLDIpLDM1KTtSRChRSGQoeFlkKGtUZC5iYiksMyksMzUpO1JEKFFIZCh4WWQoa1RkLmJiKSw0KSwzNSk7UkQoUUhkKHhZZChrVGQuYmIpLDUpLDM1KTtSRChRSGQoeFlkKGtUZC5iYiksNiksMzUpO1JEKFFIZCh4WWQoa1RkLmJiKSw3KSwxOSk7UkQoUUhkKHVZZChrVGQuYmIpLDApLDYyKTtSRChRSGQodVlkKGtUZC5iYiksMSksNjIpO0hUZD1rVGQuZWI7UkQoUUhkKHhZZChrVGQuZWIpLDApLDM1KTtSRChRSGQoeFlkKGtUZC5lYiksMSksMzUpO1JEKFFIZCh4WWQoa1RkLmViKSwyKSwzNSk7UkQoUUhkKHhZZChrVGQuZWIpLDMpLDM1KTtSRChRSGQoeFlkKGtUZC5lYiksNCksMzUpO1JEKFFIZCh4WWQoa1RkLmViKSw1KSwzNSk7UkQoUUhkKHhZZChrVGQuZWIpLDYpLDE5KTtSRChRSGQoeFlkKGtUZC5lYiksNyksMTkpO0ZUZD1rVGQuYWI7UkQoUUhkKHhZZChrVGQuYWIpLDApLDM1KTtSRChRSGQoeFlkKGtUZC5hYiksMSksMzUpO3ZUZD1rVGQuSDtSRChRSGQoeFlkKGtUZC5IKSwwKSwxOSk7UkQoUUhkKHhZZChrVGQuSCksMSksMTkpO1JEKFFIZCh4WWQoa1RkLkgpLDIpLDE5KTtSRChRSGQoeFlkKGtUZC5IKSwzKSwxOSk7UkQoUUhkKHhZZChrVGQuSCksNCksMTkpO1JEKFFIZCh4WWQoa1RkLkgpLDUpLDE5KTtSRChRSGQodVlkKGtUZC5IKSwwKSw2Mik7SVRkPWtUZC5kYjtSRChRSGQoeFlkKGtUZC5kYiksMCksMTkpO3dUZD1rVGQuTX1cbmZ1bmN0aW9uIEFuZShhKXt2YXIgYjtpZihhLk8pcmV0dXJuO2EuTz10cnVlO1BBZChhLCd0eXBlJyk7Q0JkKGEsJ2Vjb3JlLnhtbC50eXBlJyk7REJkKGEsZExlKTtiPVJEKE41ZCgoWVNkKCksWFNkKSxkTGUpLDIwNDQpO1dHZCh6WWQoYS5mYiksYS5iKTt2QmQoYS5iLFZiYiwnQW55VHlwZScsZmFsc2UsZmFsc2UsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5iKSwwKSwzNSksYS53Yi5ELHBLZSxudWxsLDAsLTEsVmJiLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO3RCZChSRChRSGQoeFlkKGEuYiksMSksMzUpLGEud2IuRCwnYW55JyxudWxsLDAsLTEsVmJiLHRydWUsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLHRydWUpO3RCZChSRChRSGQoeFlkKGEuYiksMiksMzUpLGEud2IuRCwnYW55QXR0cmlidXRlJyxudWxsLDAsLTEsVmJiLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO3ZCZChhLmJiLFhiYixpTGUsZmFsc2UsZmFsc2UsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5iYiksMCksMzUpLGEuZ2IsJ2RhdGEnLG51bGwsMCwxLFhiYixmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UpO3RCZChSRChRSGQoeFlkKGEuYmIpLDEpLDM1KSxhLmdiLENJZSxudWxsLDEsMSxYYmIsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt2QmQoYS5mYixZYmIsakxlLGZhbHNlLGZhbHNlLHRydWUpO3RCZChSRChRSGQoeFlkKGEuZmIpLDApLDM1KSxiLmdiLCdyYXdWYWx1ZScsbnVsbCwwLDEsWWJiLHRydWUsdHJ1ZSx0cnVlLGZhbHNlLHRydWUsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5mYiksMSksMzUpLGIuYSxhSWUsbnVsbCwwLDEsWWJiLHRydWUsdHJ1ZSx0cnVlLGZhbHNlLHRydWUsdHJ1ZSk7ekJkKFJEKFFIZCh4WWQoYS5mYiksMiksMTkpLGEud2IucSxudWxsLCdpbnN0YW5jZVR5cGUnLDEsMSxZYmIsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7dkJkKGEucWIsWmJiLGtMZSxmYWxzZSxmYWxzZSx0cnVlKTt0QmQoUkQoUUhkKHhZZChhLnFiKSwwKSwzNSksYS53Yi5ELHBLZSxudWxsLDAsLTEsbnVsbCxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLnFiKSwxKSwxOSksYS53Yi5hYixudWxsLCd4TUxOU1ByZWZpeE1hcCcsMCwtMSxudWxsLHRydWUsZmFsc2UsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLnFiKSwyKSwxOSksYS53Yi5hYixudWxsLCd4U0lTY2hlbWFMb2NhdGlvbicsMCwtMSxudWxsLHRydWUsZmFsc2UsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLnFiKSwzKSwzNSksYS5nYiwnY0RBVEEnLG51bGwsMCwtMixudWxsLHRydWUsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLHRydWUpO3RCZChSRChRSGQoeFlkKGEucWIpLDQpLDM1KSxhLmdiLCdjb21tZW50JyxudWxsLDAsLTIsbnVsbCx0cnVlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSx0cnVlKTt6QmQoUkQoUUhkKHhZZChhLnFiKSw1KSwxOSksYS5iYixudWxsLEtMZSwwLC0yLG51bGwsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSx0cnVlKTt0QmQoUkQoUUhkKHhZZChhLnFiKSw2KSwzNSksYS5nYixoSWUsbnVsbCwwLC0yLG51bGwsdHJ1ZSx0cnVlLHRydWUsZmFsc2UsZmFsc2UsdHJ1ZSk7eEJkKGEuYSxqSiwnQW55U2ltcGxlVHlwZScsdHJ1ZSk7eEJkKGEuYyxxSiwnQW55VVJJJyx0cnVlKTt4QmQoYS5kLFdDKGdFLDEpLCdCYXNlNjRCaW5hcnknLHRydWUpO3hCZChhLmUseGRiLCdCb29sZWFuJyx0cnVlKTt4QmQoYS5mLFFJLCdCb29sZWFuT2JqZWN0Jyx0cnVlKTt4QmQoYS5nLGdFLCdCeXRlJyx0cnVlKTt4QmQoYS5pLFJJLCdCeXRlT2JqZWN0Jyx0cnVlKTt4QmQoYS5qLHFKLCdEYXRlJyx0cnVlKTt4QmQoYS5rLHFKLCdEYXRlVGltZScsdHJ1ZSk7eEJkKGEubix0SiwnRGVjaW1hbCcsdHJ1ZSk7eEJkKGEubyxpRSwnRG91YmxlJyx0cnVlKTt4QmQoYS5wLFZJLCdEb3VibGVPYmplY3QnLHRydWUpO3hCZChhLnEscUosJ0R1cmF0aW9uJyx0cnVlKTt4QmQoYS5zLFFLLCdFTlRJVElFUycsdHJ1ZSk7eEJkKGEucixRSywnRU5USVRJRVNCYXNlJyx0cnVlKTt4QmQoYS50LHFKLHFMZSx0cnVlKTt4QmQoYS51LGpFLCdGbG9hdCcsdHJ1ZSk7eEJkKGEudixaSSwnRmxvYXRPYmplY3QnLHRydWUpO3hCZChhLncscUosJ0dEYXknLHRydWUpO3hCZChhLkIscUosJ0dNb250aCcsdHJ1ZSk7eEJkKGEuQSxxSiwnR01vbnRoRGF5Jyx0cnVlKTt4QmQoYS5DLHFKLCdHWWVhcicsdHJ1ZSk7eEJkKGEuRCxxSiwnR1llYXJNb250aCcsdHJ1ZSk7eEJkKGEuRixXQyhnRSwxKSwnSGV4QmluYXJ5Jyx0cnVlKTt4QmQoYS5HLHFKLCdJRCcsdHJ1ZSk7eEJkKGEuSCxxSiwnSURSRUYnLHRydWUpO3hCZChhLkosUUssJ0lEUkVGUycsdHJ1ZSk7eEJkKGEuSSxRSywnSURSRUZTQmFzZScsdHJ1ZSk7eEJkKGEuSyxrRSwnSW50Jyx0cnVlKTt4QmQoYS5NLHVKLCdJbnRlZ2VyJyx0cnVlKTt4QmQoYS5MLGJKLCdJbnRPYmplY3QnLHRydWUpO3hCZChhLlAscUosJ0xhbmd1YWdlJyx0cnVlKTt4QmQoYS5RLGxFLCdMb25nJyx0cnVlKTt4QmQoYS5SLGVKLCdMb25nT2JqZWN0Jyx0cnVlKTt4QmQoYS5TLHFKLCdOYW1lJyx0cnVlKTt4QmQoYS5ULHFKLHJMZSx0cnVlKTt4QmQoYS5VLHVKLCdOZWdhdGl2ZUludGVnZXInLHRydWUpO3hCZChhLlYscUosQkxlLHRydWUpO3hCZChhLlgsUUssJ05NVE9LRU5TJyx0cnVlKTt4QmQoYS5XLFFLLCdOTVRPS0VOU0Jhc2UnLHRydWUpO3hCZChhLlksdUosJ05vbk5lZ2F0aXZlSW50ZWdlcicsdHJ1ZSk7eEJkKGEuWix1SiwnTm9uUG9zaXRpdmVJbnRlZ2VyJyx0cnVlKTt4QmQoYS4kLHFKLCdOb3JtYWxpemVkU3RyaW5nJyx0cnVlKTt4QmQoYS5fLHFKLCdOT1RBVElPTicsdHJ1ZSk7eEJkKGEuYWIscUosJ1Bvc2l0aXZlSW50ZWdlcicsdHJ1ZSk7eEJkKGEuY2IscUosJ1FOYW1lJyx0cnVlKTt4QmQoYS5kYix3ZGIsJ1Nob3J0Jyx0cnVlKTt4QmQoYS5lYixsSiwnU2hvcnRPYmplY3QnLHRydWUpO3hCZChhLmdiLHFKLHV3ZSx0cnVlKTt4QmQoYS5oYixxSiwnVGltZScsdHJ1ZSk7eEJkKGEuaWIscUosJ1Rva2VuJyx0cnVlKTt4QmQoYS5qYix3ZGIsJ1Vuc2lnbmVkQnl0ZScsdHJ1ZSk7eEJkKGEua2IsbEosJ1Vuc2lnbmVkQnl0ZU9iamVjdCcsdHJ1ZSk7eEJkKGEubGIsbEUsJ1Vuc2lnbmVkSW50Jyx0cnVlKTt4QmQoYS5tYixlSiwnVW5zaWduZWRJbnRPYmplY3QnLHRydWUpO3hCZChhLm5iLHVKLCdVbnNpZ25lZExvbmcnLHRydWUpO3hCZChhLm9iLGtFLCdVbnNpZ25lZFNob3J0Jyx0cnVlKTt4QmQoYS5wYixiSiwnVW5zaWduZWRTaG9ydE9iamVjdCcsdHJ1ZSk7cEJkKGEsZExlKTt5bmUoYSl9XG5mdW5jdGlvbiBGZWQoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRCxGLEcsSCxJLEosSyxMLE0sTixPLFAsUSxSLFMsVCxVLFYsVyxYLFksWiwkLGFiO2lmKGQuJGcoKSl7cmV0dXJuIHlvYigpLHlvYigpLHZvYn1pZihIZWIoVEQoR3hkKGIsKHVtZCgpLHJsZCkpKSkpe3JldHVybiB5b2IoKSx5b2IoKSx2b2J9QT0oIWIuYSYmKGIuYT1uZXcgQzVkKEo0LGIsMTAsMTEpKSxiLmEpLmkhPTA7Qz1EZWQoYik7Qj0hQy5kYygpO2lmKEF8fEIpe2U9UkQoR3hkKGIsVGxkKSwxNDMpO2lmKCFlKXt0aHJvdyBBZGIobmV3IEplZCgnUmVzb2x2ZWQgYWxnb3JpdGhtIGlzIG5vdCBzZXQ7IGFwcGx5IGEgTGF5b3V0QWxnb3JpdGhtUmVzb2x2ZXIgYmVmb3JlIGNvbXB1dGluZyBsYXlvdXQuJykpfVk9T2ZkKGUsKGFHZCgpLFlGZCkpO0JlZChiKTtpZighQSYmQiYmIVkpe3JldHVybiB5b2IoKSx5b2IoKSx2b2J9dD1uZXcgYm5iO2lmKGRFKEd4ZChiLFhrZCkpPT09ZEUoKEZuZCgpLENuZCkpJiYoT2ZkKGUsVkZkKXx8T2ZkKGUsVUZkKSkpe2lmKEhlYihURChHeGQoYixtbWQpKSkpe3Rocm93IEFkYihuZXcgSmVkKCdUb3Bkb3duIGxheW91dCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIGhpZXJhcmNoeSBoYW5kbGluZy4nKSl9TT1BZWQoYSxiKTtOPW5ldyBZdWI7eWUoTiwoIWIuYSYmKGIuYT1uZXcgQzVkKEo0LGIsMTAsMTEpKSxiLmEpKTt3aGlsZShOLmIhPTApe0s9UkQoTi5iPT0wP251bGw6KHNGYihOLmIhPTApLFd1YihOLE4uYS5hKSksMjcpO0JlZChLKTtYPWRFKEd4ZChLLFhrZCkpPT09ZEUoRW5kKTtpZihYfHxIeGQoSyxBa2QpJiYhTmZkKGUsR3hkKEssVGxkKSkpe3E9RmVkKGEsSyxjLGQpO1RtYih0LHEpO0l4ZChLLFhrZCxFbmQpO2tzZChLKX1lbHNle3llKE4sKCFLLmEmJihLLmE9bmV3IEM1ZChKNCxLLDEwLDExKSksSy5hKSl9fX1lbHNle009KCFiLmEmJihiLmE9bmV3IEM1ZChKNCxiLDEwLDExKSksYi5hKS5pO2lmKEhlYihURChHeGQoYixtbWQpKSkpe1o9ZC5laCgxKTtaLlVnKHlHZSwxKTtpZihHeGQoYixubWQpPT1udWxsKXt0aHJvdyBBZGIobmV3IEplZChiLmsrJyBoYXMgbm90IGJlZW4gYXNzaWduZWQgYSB0b3AtZG93biBub2RlIHR5cGUuJykpfWlmKFJEKEd4ZChiLG5tZCksMjgwKT09KG1xZCgpLGpxZCl8fFJEKEd4ZChiLG5tZCksMjgwKT09bHFkKXtmb3Iocz1uZXcgZE1kKCghYi5hJiYoYi5hPW5ldyBDNWQoSjQsYiwxMCwxMSkpLGIuYSkpO3MuZSE9cy5pLmdjKCk7KXtyPVJEKGJNZChzKSwyNyk7Sj1SRChHeGQocixUbGQpLDE0Myk7aWYoKCFyLmEmJihyLmE9bmV3IEM1ZChKNCxyLDEwLDExKSksci5hKS5pPjAmJihsdGQoSi5mKSxmYWxzZSkpe2lmKFJEKEd4ZChyLG5tZCksMjgwKT09anFkKXt0aHJvdyBBZGIobmV3IEplZCgnVG9wZG93biBMYXlvdXQgUHJvdmlkZXJzIHNob3VsZCBvbmx5IGJlIHVzZWQgb24gcGFyYWxsZWwgbm9kZXMuJykpfWZFKGx0ZChKLmYpKTtudWxsLlVtKCk7enlkKHIsJHduZC5NYXRoLm1heChyLmcsbnVsbC5WbSksJHduZC5NYXRoLm1heChyLmYsbnVsbC5WbSkpfWVsc2UgaWYoR3hkKHIsc21kKSE9bnVsbCl7aD1SRChHeGQocixzbWQpLDM0Nyk7Vz1oLlRnKHIpO3p5ZChyLCR3bmQuTWF0aC5tYXgoci5nLFcuYSksJHduZC5NYXRoLm1heChyLmYsVy5iKSl9fX1PPVJEKEd4ZChiLHRsZCksMTA3KTtuPWIuZy0oTy5iK08uYyk7bT1iLmYtKE8uZCtPLmEpO1ouYmgoJ0F2YWlsYWJsZSBDaGlsZCBBcmVhOiAoJytuKyd8JyttKycpJyk7SXhkKGIsRGtkLG4vbSk7Q2VkKGIsZSxkLmVoKE0pKTtpZihSRChHeGQoYixubWQpLDI4MCk9PWxxZCl7cHNkKGIpO3p5ZChiLE8uYitLZmIoVUQoR3hkKGIsSWtkKSkpK08uYyxPLmQrS2ZiKFVEKEd4ZChiLEhrZCkpKStPLmEpfVouYmgoJ0V4ZWN1dGVkIGxheW91dCBhbGdvcml0aG06ICcrV0QoR3hkKGIsQWtkKSkrJyBvbiBub2RlICcrYi5rKTtpZihSRChHeGQoYixubWQpLDI4MCk9PWpxZCl7aWYobjwwfHxtPDApe3Rocm93IEFkYihuZXcgSmVkKCdUaGUgc2l6ZSBkZWZpbmVkIGJ5IHRoZSBwYXJlbnQgcGFyYWxsZWwgbm9kZSBpcyB0b28gc21hbGwgZm9yIHRoZSBzcGFjZSBwcm92aWRlZCBieSB0aGUgcGFkZGluZ3Mgb2YgdGhlIGNoaWxkIGhpZXJhcmNoaWNhbCBub2RlLiAnK2IuaykpfUh4ZChiLElrZCl8fEh4ZChiLEhrZCl8fHBzZChiKTtwPUtmYihVRChHeGQoYixJa2QpKSk7bz1LZmIoVUQoR3hkKGIsSGtkKSkpO1ouYmgoJ0Rlc2lyZWQgQ2hpbGQgQXJlYTogKCcrcCsnfCcrbysnKScpO1E9bi9wO1I9bS9vO1A9JHduZC5NYXRoLm1pbihRLCR3bmQuTWF0aC5taW4oUixLZmIoVUQoR3hkKGIsb21kKSkpKSk7SXhkKGIscW1kLFApO1ouYmgoYi5rKycgLS0gTG9jYWwgU2NhbGUgRmFjdG9yIChYfFkpOiAoJytRKyd8JytSKycpJyk7dT1SRChHeGQoYixLa2QpLDIxKTtmPTA7Zz0wO1A8USYmKHUuSGMoKHVrZCgpLG9rZCkpPyhmPShuLzItcCpQLzIpL1ApOnUuSGMocWtkKSYmKGY9KG4tcCpQKS9QKSk7UDxSJiYodS5IYygodWtkKCksc2tkKSk/KGc9KG0vMi1vKlAvMikvUCk6dS5IYyhya2QpJiYoZz0obS1vKlApL1ApKTskPWYrKE8uYi9QLU8uYik7YWI9ZysoTy5kL1AtTy5kKTtaLmJoKCdTaGlmdDogKCcrJCsnfCcrYWIrJyknKTtmb3IoTD1uZXcgZE1kKCghYi5hJiYoYi5hPW5ldyBDNWQoSjQsYiwxMCwxMSkpLGIuYSkpO0wuZSE9TC5pLmdjKCk7KXtLPVJEKGJNZChMKSwyNyk7RHlkKEssSy5pKyQpO0V5ZChLLEsuaithYil9Zm9yKHc9bmV3IGRNZCgoIWIuYiYmKGIuYj1uZXcgQzVkKEc0LGIsMTIsMykpLGIuYikpO3cuZSE9dy5pLmdjKCk7KXt2PVJEKGJNZCh3KSw3NCk7Zm9yKFQ9bmV3IGRNZCgoIXYuYSYmKHYuYT1uZXcgQzVkKEY0LHYsNiw2KSksdi5hKSk7VC5lIT1ULmkuZ2MoKTspe1M9UkQoYk1kKFQpLDE2Nik7TnpkKFMsUy5qKyQsUy5rK2FiKTtHemQoUyxTLmIrJCxTLmMrYWIpO2ZvcihqPW5ldyBkTWQoKCFTLmEmJihTLmE9bmV3IFhaZChENCxTLDUpKSxTLmEpKTtqLmUhPWouaS5nYygpOyl7aT1SRChiTWQoaiksMzc3KTtVeGQoaSxpLmErJCxpLmIrYWIpfX1mb3IoST1uZXcgZE1kKCghdi5uJiYodi5uPW5ldyBDNWQoSTQsdiwxLDcpKSx2Lm4pKTtJLmUhPUkuaS5nYygpOyl7SD1SRChiTWQoSSksMTM1KTtCeWQoSCxILmkrJCxILmorYWIpfUc9UkQoR3hkKHYsY2xkKSw3NSk7Zm9yKEY9U3ViKEcsMCk7Ri5iIT1GLmQuYzspe0Q9UkQoZXZiKEYpLDgpO0QuYSs9JDtELmIrPWFifUl4ZCh2LGNsZCxHKX19Wi5WZygpfWZvcihsPW5ldyBkTWQoKCFiLmEmJihiLmE9bmV3IEM1ZChKNCxiLDEwLDExKSksYi5hKSk7bC5lIT1sLmkuZ2MoKTspe2s9UkQoYk1kKGwpLDI3KTtxPUZlZChhLGssYyxkKTtUbWIodCxxKTtrc2Qoayl9fWlmKGQuJGcoKSl7cmV0dXJuIHlvYigpLHlvYigpLHZvYn1mb3IoVj1uZXcgQW5iKHQpO1YuYTxWLmMuYy5sZW5ndGg7KXtVPVJEKHluYihWKSw3NCk7SXhkKFUscmxkLChHZWIoKSx0cnVlKSl9SGViKFREKEd4ZChiLG1tZCkpKXx8Q2VkKGIsZSxkLmVoKE0pKTtHZWQodCk7cmV0dXJuIEImJlk/QzooeW9iKCkseW9iKCksdm9iKX1lbHNle3JldHVybiB5b2IoKSx5b2IoKSx2b2J9fVxuZnVuY3Rpb24gSnJlKGEsYil7dmFyIGMsZDtpZighQnJlKXtCcmU9bmV3IFRzYjtDcmU9bmV3IFRzYjtkPShWc2UoKSxWc2UoKSwrK1VzZSxuZXcgeHRlKDQpKTtvc2UoZCwnXFx0XFxuXFxyXFxyICAnKTskamIoQnJlLFFMZSxkKTskamIoQ3JlLFFMZSx5dGUoZCkpO2Q9KG51bGwsKytVc2UsbmV3IHh0ZSg0KSk7b3NlKGQsVExlKTskamIoQnJlLE9MZSxkKTskamIoQ3JlLE9MZSx5dGUoZCkpO2Q9KG51bGwsKytVc2UsbmV3IHh0ZSg0KSk7b3NlKGQsVExlKTskamIoQnJlLE9MZSxkKTskamIoQ3JlLE9MZSx5dGUoZCkpO2Q9KG51bGwsKytVc2UsbmV3IHh0ZSg0KSk7b3NlKGQsVUxlKTt1dGUoZCxSRChYamIoQnJlLE9MZSksMTIyKSk7JGpiKEJyZSxQTGUsZCk7JGpiKENyZSxQTGUseXRlKGQpKTtkPShudWxsLCsrVXNlLG5ldyB4dGUoNCkpO29zZShkLCctLjA6QVpfX2F6XFx4QjdcXHhCN1xceEMwXFx4RDZcXHhEOFxceEY2XFx4RjhcXHUwMTMxXFx1MDEzNFxcdTAxM0VcXHUwMTQxXFx1MDE0OFxcdTAxNEFcXHUwMTdFXFx1MDE4MFxcdTAxQzNcXHUwMUNEXFx1MDFGMFxcdTAxRjRcXHUwMUY1XFx1MDFGQVxcdTAyMTdcXHUwMjUwXFx1MDJBOFxcdTAyQkJcXHUwMkMxXFx1MDJEMFxcdTAyRDFcXHUwMzAwXFx1MDM0NVxcdTAzNjBcXHUwMzYxXFx1MDM4NlxcdTAzOEFcXHUwMzhDXFx1MDM4Q1xcdTAzOEVcXHUwM0ExXFx1MDNBM1xcdTAzQ0VcXHUwM0QwXFx1MDNENlxcdTAzREFcXHUwM0RBXFx1MDNEQ1xcdTAzRENcXHUwM0RFXFx1MDNERVxcdTAzRTBcXHUwM0UwXFx1MDNFMlxcdTAzRjNcXHUwNDAxXFx1MDQwQ1xcdTA0MEVcXHUwNDRGXFx1MDQ1MVxcdTA0NUNcXHUwNDVFXFx1MDQ4MVxcdTA0ODNcXHUwNDg2XFx1MDQ5MFxcdTA0QzRcXHUwNEM3XFx1MDRDOFxcdTA0Q0JcXHUwNENDXFx1MDREMFxcdTA0RUJcXHUwNEVFXFx1MDRGNVxcdTA0RjhcXHUwNEY5XFx1MDUzMVxcdTA1NTZcXHUwNTU5XFx1MDU1OVxcdTA1NjFcXHUwNTg2XFx1MDU5MVxcdTA1QTFcXHUwNUEzXFx1MDVCOVxcdTA1QkJcXHUwNUJEXFx1MDVCRlxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzRcXHUwNUM0XFx1MDVEMFxcdTA1RUFcXHUwNUYwXFx1MDVGMlxcdTA2MjFcXHUwNjNBXFx1MDY0MFxcdTA2NTJcXHUwNjYwXFx1MDY2OVxcdTA2NzBcXHUwNkI3XFx1MDZCQVxcdTA2QkVcXHUwNkMwXFx1MDZDRVxcdTA2RDBcXHUwNkQzXFx1MDZENVxcdTA2RThcXHUwNkVBXFx1MDZFRFxcdTA2RjBcXHUwNkY5XFx1MDkwMVxcdTA5MDNcXHUwOTA1XFx1MDkzOVxcdTA5M0NcXHUwOTREXFx1MDk1MVxcdTA5NTRcXHUwOTU4XFx1MDk2M1xcdTA5NjZcXHUwOTZGXFx1MDk4MVxcdTA5ODNcXHUwOTg1XFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5M1xcdTA5QThcXHUwOUFBXFx1MDlCMFxcdTA5QjJcXHUwOUIyXFx1MDlCNlxcdTA5QjlcXHUwOUJDXFx1MDlCQ1xcdTA5QkVcXHUwOUM0XFx1MDlDN1xcdTA5QzhcXHUwOUNCXFx1MDlDRFxcdTA5RDdcXHUwOUQ3XFx1MDlEQ1xcdTA5RERcXHUwOURGXFx1MDlFM1xcdTA5RTZcXHUwOUYxXFx1MEEwMlxcdTBBMDJcXHUwQTA1XFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExM1xcdTBBMjhcXHUwQTJBXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBM0NcXHUwQTNDXFx1MEEzRVxcdTBBNDJcXHUwQTQ3XFx1MEE0OFxcdTBBNEJcXHUwQTREXFx1MEE1OVxcdTBBNUNcXHUwQTVFXFx1MEE1RVxcdTBBNjZcXHUwQTc0XFx1MEE4MVxcdTBBODNcXHUwQTg1XFx1MEE4QlxcdTBBOERcXHUwQThEXFx1MEE4RlxcdTBBOTFcXHUwQTkzXFx1MEFBOFxcdTBBQUFcXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1XFx1MEFCOVxcdTBBQkNcXHUwQUM1XFx1MEFDN1xcdTBBQzlcXHUwQUNCXFx1MEFDRFxcdTBBRTBcXHUwQUUwXFx1MEFFNlxcdTBBRUZcXHUwQjAxXFx1MEIwM1xcdTBCMDVcXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzXFx1MEIyOFxcdTBCMkFcXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM2XFx1MEIzOVxcdTBCM0NcXHUwQjQzXFx1MEI0N1xcdTBCNDhcXHUwQjRCXFx1MEI0RFxcdTBCNTZcXHUwQjU3XFx1MEI1Q1xcdTBCNURcXHUwQjVGXFx1MEI2MVxcdTBCNjZcXHUwQjZGXFx1MEI4MlxcdTBCODNcXHUwQjg1XFx1MEI4QVxcdTBCOEVcXHUwQjkwXFx1MEI5MlxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQThcXHUwQkFBXFx1MEJBRVxcdTBCQjVcXHUwQkI3XFx1MEJCOVxcdTBCQkVcXHUwQkMyXFx1MEJDNlxcdTBCQzhcXHUwQkNBXFx1MEJDRFxcdTBCRDdcXHUwQkQ3XFx1MEJFN1xcdTBCRUZcXHUwQzAxXFx1MEMwM1xcdTBDMDVcXHUwQzBDXFx1MEMwRVxcdTBDMTBcXHUwQzEyXFx1MEMyOFxcdTBDMkFcXHUwQzMzXFx1MEMzNVxcdTBDMzlcXHUwQzNFXFx1MEM0NFxcdTBDNDZcXHUwQzQ4XFx1MEM0QVxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDNjBcXHUwQzYxXFx1MEM2NlxcdTBDNkZcXHUwQzgyXFx1MEM4M1xcdTBDODVcXHUwQzhDXFx1MEM4RVxcdTBDOTBcXHUwQzkyXFx1MENBOFxcdTBDQUFcXHUwQ0IzXFx1MENCNVxcdTBDQjlcXHUwQ0JFXFx1MENDNFxcdTBDQzZcXHUwQ0M4XFx1MENDQVxcdTBDQ0RcXHUwQ0Q1XFx1MENENlxcdTBDREVcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0U2XFx1MENFRlxcdTBEMDJcXHUwRDAzXFx1MEQwNVxcdTBEMENcXHUwRDBFXFx1MEQxMFxcdTBEMTJcXHUwRDI4XFx1MEQyQVxcdTBEMzlcXHUwRDNFXFx1MEQ0M1xcdTBENDZcXHUwRDQ4XFx1MEQ0QVxcdTBENERcXHUwRDU3XFx1MEQ1N1xcdTBENjBcXHUwRDYxXFx1MEQ2NlxcdTBENkZcXHUwRTAxXFx1MEUyRVxcdTBFMzBcXHUwRTNBXFx1MEU0MFxcdTBFNEVcXHUwRTUwXFx1MEU1OVxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThBXFx1MEU4RFxcdTBFOERcXHUwRTk0XFx1MEU5N1xcdTBFOTlcXHUwRTlGXFx1MEVBMVxcdTBFQTNcXHUwRUE1XFx1MEVBNVxcdTBFQTdcXHUwRUE3XFx1MEVBQVxcdTBFQUJcXHUwRUFEXFx1MEVBRVxcdTBFQjBcXHUwRUI5XFx1MEVCQlxcdTBFQkRcXHUwRUMwXFx1MEVDNFxcdTBFQzZcXHUwRUM2XFx1MEVDOFxcdTBFQ0RcXHUwRUQwXFx1MEVEOVxcdTBGMThcXHUwRjE5XFx1MEYyMFxcdTBGMjlcXHUwRjM1XFx1MEYzNVxcdTBGMzdcXHUwRjM3XFx1MEYzOVxcdTBGMzlcXHUwRjNFXFx1MEY0N1xcdTBGNDlcXHUwRjY5XFx1MEY3MVxcdTBGODRcXHUwRjg2XFx1MEY4QlxcdTBGOTBcXHUwRjk1XFx1MEY5N1xcdTBGOTdcXHUwRjk5XFx1MEZBRFxcdTBGQjFcXHUwRkI3XFx1MEZCOVxcdTBGQjlcXHUxMEEwXFx1MTBDNVxcdTEwRDBcXHUxMEY2XFx1MTEwMFxcdTExMDBcXHUxMTAyXFx1MTEwM1xcdTExMDVcXHUxMTA3XFx1MTEwOVxcdTExMDlcXHUxMTBCXFx1MTEwQ1xcdTExMEVcXHUxMTEyXFx1MTEzQ1xcdTExM0NcXHUxMTNFXFx1MTEzRVxcdTExNDBcXHUxMTQwXFx1MTE0Q1xcdTExNENcXHUxMTRFXFx1MTE0RVxcdTExNTBcXHUxMTUwXFx1MTE1NFxcdTExNTVcXHUxMTU5XFx1MTE1OVxcdTExNUZcXHUxMTYxXFx1MTE2M1xcdTExNjNcXHUxMTY1XFx1MTE2NVxcdTExNjdcXHUxMTY3XFx1MTE2OVxcdTExNjlcXHUxMTZEXFx1MTE2RVxcdTExNzJcXHUxMTczXFx1MTE3NVxcdTExNzVcXHUxMTlFXFx1MTE5RVxcdTExQThcXHUxMUE4XFx1MTFBQlxcdTExQUJcXHUxMUFFXFx1MTFBRlxcdTExQjdcXHUxMUI4XFx1MTFCQVxcdTExQkFcXHUxMUJDXFx1MTFDMlxcdTExRUJcXHUxMUVCXFx1MTFGMFxcdTExRjBcXHUxMUY5XFx1MTFGOVxcdTFFMDBcXHUxRTlCXFx1MUVBMFxcdTFFRjlcXHUxRjAwXFx1MUYxNVxcdTFGMThcXHUxRjFEXFx1MUYyMFxcdTFGNDVcXHUxRjQ4XFx1MUY0RFxcdTFGNTBcXHUxRjU3XFx1MUY1OVxcdTFGNTlcXHUxRjVCXFx1MUY1QlxcdTFGNURcXHUxRjVEXFx1MUY1RlxcdTFGN0RcXHUxRjgwXFx1MUZCNFxcdTFGQjZcXHUxRkJDXFx1MUZCRVxcdTFGQkVcXHUxRkMyXFx1MUZDNFxcdTFGQzZcXHUxRkNDXFx1MUZEMFxcdTFGRDNcXHUxRkQ2XFx1MUZEQlxcdTFGRTBcXHUxRkVDXFx1MUZGMlxcdTFGRjRcXHUxRkY2XFx1MUZGQ1xcdTIwRDBcXHUyMERDXFx1MjBFMVxcdTIwRTFcXHUyMTI2XFx1MjEyNlxcdTIxMkFcXHUyMTJCXFx1MjEyRVxcdTIxMkVcXHUyMTgwXFx1MjE4MlxcdTMwMDVcXHUzMDA1XFx1MzAwN1xcdTMwMDdcXHUzMDIxXFx1MzAyRlxcdTMwMzFcXHUzMDM1XFx1MzA0MVxcdTMwOTRcXHUzMDk5XFx1MzA5QVxcdTMwOURcXHUzMDlFXFx1MzBBMVxcdTMwRkFcXHUzMEZDXFx1MzBGRVxcdTMxMDVcXHUzMTJDXFx1NEUwMFxcdTlGQTVcXHVBQzAwXFx1RDdBMycpOyRqYihCcmUsUkxlLGQpOyRqYihDcmUsUkxlLHl0ZShkKSk7ZD0obnVsbCwrK1VzZSxuZXcgeHRlKDQpKTtvc2UoZCxVTGUpO3J0ZShkLDk1LDk1KTtydGUoZCw1OCw1OCk7JGpiKEJyZSxTTGUsZCk7JGpiKENyZSxTTGUseXRlKGQpKX1jPWI/UkQoWGpiKEJyZSxhKSwxMzgpOlJEKFhqYihDcmUsYSksMTM4KTtyZXR1cm4gY31cbmZ1bmN0aW9uIHpDYyhhKXtDZ2QoYSxuZXcgUGZkKF9mZChXZmQoJGZkKFhmZChaZmQoWWZkKG5ldyBhZ2Qsc3hlKSwnRUxLIExheWVyZWQnKSwnTGF5ZXItYmFzZWQgYWxnb3JpdGhtIHByb3ZpZGVkIGJ5IHRoZSBFY2xpcHNlIExheW91dCBLZXJuZWwuIEFycmFuZ2VzIGFzIG1hbnkgZWRnZXMgYXMgcG9zc2libGUgaW50byBvbmUgZGlyZWN0aW9uIGJ5IHBsYWNpbmcgbm9kZXMgaW50byBzdWJzZXF1ZW50IGxheWVycy4gVGhpcyBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBkaWZmZXJlbnQgcm91dGluZyBzdHlsZXMgKHN0cmFpZ2h0LCBvcnRob2dvbmFsLCBzcGxpbmVzKTsgaWYgb3J0aG9nb25hbCByb3V0aW5nIGlzIHNlbGVjdGVkLCBhcmJpdHJhcnkgcG9ydCBjb25zdHJhaW50cyBhcmUgcmVzcGVjdGVkLCB0aHVzIGVuYWJsaW5nIHRoZSBsYXlvdXQgb2YgYmxvY2sgZGlhZ3JhbXMgc3VjaCBhcyBhY3Rvci1vcmllbnRlZCBtb2RlbHMgb3IgY2lyY3VpdCBzY2hlbWF0aWNzLiBGdXJ0aGVybW9yZSwgZnVsbCBsYXlvdXQgb2YgY29tcG91bmQgZ3JhcGhzIHdpdGggY3Jvc3MtaGllcmFyY2h5IGVkZ2VzIGlzIHN1cHBvcnRlZCB3aGVuIHRoZSByZXNwZWN0aXZlIG9wdGlvbiBpcyBhY3RpdmF0ZWQgb24gdGhlIHRvcCBsZXZlbC4nKSxuZXcgQ0NjKSxzeGUpLHlzYigoYUdkKCksX0ZkKSxjRChXQyhUNSwxKSxqd2UsMjQ1LDAsW1lGZCxaRmQsWEZkLCRGZCxWRmQsVUZkXSkpKSkpO0FnZChhLHN4ZSx4RGUsaUdkKFFCYykpO0FnZChhLHN4ZSx5RGUsaUdkKFJCYykpO0FnZChhLHN4ZSxCemUsaUdkKFNCYykpO0FnZChhLHN4ZSx6RGUsaUdkKFRCYykpO0FnZChhLHN4ZSxhQWUsaUdkKFZCYykpO0FnZChhLHN4ZSxBRGUsaUdkKFdCYykpO0FnZChhLHN4ZSxCRGUsaUdkKFpCYykpO0FnZChhLHN4ZSxDRGUsaUdkKF9CYykpO0FnZChhLHN4ZSxERGUsaUdkKGFDYykpO0FnZChhLHN4ZSxFRGUsaUdkKCRCYykpO0FnZChhLHN4ZSxfemUsaUdkKGJDYykpO0FnZChhLHN4ZSxGRGUsaUdkKGRDYykpO0FnZChhLHN4ZSxHRGUsaUdkKGZDYykpO0FnZChhLHN4ZSxIRGUsaUdkKFlCYykpO0FnZChhLHN4ZSx3Q2UsaUdkKFBCYykpO0FnZChhLHN4ZSx5Q2UsaUdkKFVCYykpO0FnZChhLHN4ZSx4Q2UsaUdkKFhCYykpO0FnZChhLHN4ZSx6Q2UsaUdkKGNDYykpO0FnZChhLHN4ZSwkemUsc2diKDApKTtBZ2QoYSxzeGUsQUNlLGlHZChLQmMpKTtBZ2QoYSxzeGUsQkNlLGlHZChMQmMpKTtBZ2QoYSxzeGUsQ0NlLGlHZChNQmMpKTtBZ2QoYSxzeGUsSkNlLGlHZCh2Q2MpKTtBZ2QoYSxzeGUsS0NlLGlHZChuQ2MpKTtBZ2QoYSxzeGUsTENlLGlHZChvQ2MpKTtBZ2QoYSxzeGUsTUNlLGlHZChyQ2MpKTtBZ2QoYSxzeGUsTkNlLGlHZChwQ2MpKTtBZ2QoYSxzeGUsT0NlLGlHZChxQ2MpKTtBZ2QoYSxzeGUsUENlLGlHZCh4Q2MpKTtBZ2QoYSxzeGUsUUNlLGlHZCh3Q2MpKTtBZ2QoYSxzeGUsUkNlLGlHZCh0Q2MpKTtBZ2QoYSxzeGUsU0NlLGlHZChzQ2MpKTtBZ2QoYSxzeGUsVENlLGlHZCh1Q2MpKTtBZ2QoYSxzeGUscENlLGlHZChpQmMpKTtBZ2QoYSxzeGUscUNlLGlHZChqQmMpKTtBZ2QoYSxzeGUsdENlLGlHZChEQWMpKTtBZ2QoYSxzeGUsdUNlLGlHZChFQWMpKTtBZ2QoYSxzeGUsbUFlLGlHZChqQ2MpKTtBZ2QoYSxzeGUsbkFlLGlHZChsQ2MpKTtBZ2QoYSxzeGUsb0FlLGlHZChpQ2MpKTtBZ2QoYSxzeGUscEFlLGlHZChoQ2MpKTtBZ2QoYSxzeGUscUFlLGtDYyk7QWdkKGEsc3hlLEV6ZSxyQmMpO0FnZChhLHN4ZSxrRGUsekFjKTtBZ2QoYSxzeGUsSURlLDApO0FnZChhLHN4ZSxiQWUsc2diKDEpKTtBZ2QoYSxzeGUsRHplLFl6ZSk7QWdkKGEsc3hlLEpEZSxpR2QocEJjKSk7QWdkKGEsc3hlLGVBZSxpR2QoQkJjKSk7QWdkKGEsc3hlLEtEZSxpR2QoR0JjKSk7QWdkKGEsc3hlLExEZSxpR2QocUFjKSk7QWdkKGEsc3hlLE1EZSxpR2QoUnpjKSk7QWdkKGEsc3hlLGZEZSxpR2QoSUFjKSk7QWdkKGEsc3hlLGNBZSwoR2ViKCksdHJ1ZSkpO0FnZChhLHN4ZSxORGUsaUdkKE5BYykpO0FnZChhLHN4ZSxPRGUsaUdkKE9BYykpO0FnZChhLHN4ZSxqQWUsaUdkKGxCYykpO0FnZChhLHN4ZSxpQWUsaUdkKG9CYykpO0FnZChhLHN4ZSxoQWUsaUdkKG1CYykpO0FnZChhLHN4ZSxQRGUsdEFjKTtBZ2QoYSxzeGUsa0FlLGlHZChkQmMpKTtBZ2QoYSxzeGUsUURlLGlHZChjQmMpKTtBZ2QoYSxzeGUsbEFlLGlHZChFQmMpKTtBZ2QoYSxzeGUsUkRlLGlHZChEQmMpKTtBZ2QoYSxzeGUsU0RlLGlHZChGQmMpKTtBZ2QoYSxzeGUsVERlLHVCYyk7QWdkKGEsc3hlLFVEZSxpR2Qod0JjKSk7QWdkKGEsc3hlLFZEZSxpR2QoeEJjKSk7QWdkKGEsc3hlLFdEZSxpR2QoeUJjKSk7QWdkKGEsc3hlLFhEZSxpR2QodkJjKSk7QWdkKGEsc3hlLFBCZSxpR2QobUNjKSk7QWdkKGEsc3hlLFNCZSxpR2QoJEFjKSk7QWdkKGEsc3hlLFlCZSxpR2QoWkFjKSk7QWdkKGEsc3hlLE9CZSxpR2QoZ0NjKSk7QWdkKGEsc3hlLFRCZSxpR2QoVUFjKSk7QWdkKGEsc3hlLFJCZSxpR2QocEFjKSk7QWdkKGEsc3hlLF9CZSxpR2Qob0FjKSk7QWdkKGEsc3hlLGFDZSxpR2QoZUFjKSk7QWdkKGEsc3hlLGhDZSxpR2QoZkFjKSk7QWdkKGEsc3hlLGlDZSxpR2QoaEFjKSk7QWdkKGEsc3hlLGpDZSxpR2QoZ0FjKSk7QWdkKGEsc3hlLGNDZSxpR2QobkFjKSk7QWdkKGEsc3hlLEtCZSxpR2QoYUJjKSk7QWdkKGEsc3hlLExCZSxpR2QoYkJjKSk7QWdkKGEsc3hlLEpCZSxpR2QoUUFjKSk7QWdkKGEsc3hlLGtDZSxpR2Qoa0JjKSk7QWdkKGEsc3hlLG5DZSxpR2QoZkJjKSk7QWdkKGEsc3hlLElCZSxpR2QoR0FjKSk7QWdkKGEsc3hlLG9DZSxpR2QoaEJjKSk7QWdkKGEsc3hlLHJDZSxpR2QoQkFjKSk7QWdkKGEsc3hlLHNDZSxpR2QoQ0FjKSk7QWdkKGEsc3hlLFlEZSxpR2QoZEFjKSk7QWdkKGEsc3hlLG1DZSxpR2QoZUJjKSk7QWdkKGEsc3hlLEVDZSxpR2QoWHpjKSk7QWdkKGEsc3hlLEZDZSxpR2QoV3pjKSk7QWdkKGEsc3hlLERDZSxpR2QoVnpjKSk7QWdkKGEsc3hlLEdDZSxpR2QoS0FjKSk7QWdkKGEsc3hlLEhDZSxpR2QoSkFjKSk7QWdkKGEsc3hlLElDZSxpR2QoTEFjKSk7QWdkKGEsc3hlLENBZSxpR2QobkJjKSk7QWdkKGEsc3hlLFpEZSxpR2QoUkFjKSk7QWdkKGEsc3hlLEN6ZSxpR2QoRkFjKSk7QWdkKGEsc3hlLCREZSxpR2Qod0FjKSk7QWdkKGEsc3hlLGZBZSxpR2QodkFjKSk7QWdkKGEsc3hlLGJDZSxpR2QoaUFjKSk7QWdkKGEsc3hlLF9EZSxpR2QoQ0JjKSk7QWdkKGEsc3hlLGFFZSxpR2QoVXpjKSk7QWdkKGEsc3hlLGJFZSxpR2QoTUFjKSk7QWdkKGEsc3hlLGNFZSxpR2QoekJjKSk7QWdkKGEsc3hlLGRFZSxpR2Qoc0JjKSk7QWdkKGEsc3hlLGVFZSxpR2QodEJjKSk7QWdkKGEsc3hlLFdCZSxpR2QoV0FjKSk7QWdkKGEsc3hlLFhCZSxpR2QoWEFjKSk7QWdkKGEsc3hlLGZFZSxpR2QoSUJjKSk7QWdkKGEsc3hlLE1CZSxpR2QoU3pjKSk7QWdkKGEsc3hlLFpCZSxpR2QoWUFjKSk7QWdkKGEsc3hlLFVDZSxpR2QoeEFjKSk7QWdkKGEsc3hlLFZDZSxpR2QodUFjKSk7QWdkKGEsc3hlLGdFZSxpR2QoX0FjKSk7QWdkKGEsc3hlLCRCZSxpR2QoU0FjKSk7QWdkKGEsc3hlLGxDZSxpR2QoZ0JjKSk7QWdkKGEsc3hlLGhFZSxpR2QoZUNjKSk7QWdkKGEsc3hlLEhCZSxpR2Qoc0FjKSk7QWdkKGEsc3hlLE5CZSxpR2QoSEJjKSk7QWdkKGEsc3hlLHZDZSxpR2QoQUFjKSk7QWdkKGEsc3hlLGRDZSxpR2QoakFjKSk7QWdkKGEsc3hlLGVDZSxpR2Qoa0FjKSk7QWdkKGEsc3hlLFVCZSxpR2QoVEFjKSk7QWdkKGEsc3hlLGZDZSxpR2QobEFjKSk7QWdkKGEsc3hlLGlFZSxpR2QoUEFjKSk7QWdkKGEsc3hlLFZCZSxpR2QoVkFjKSk7QWdkKGEsc3hlLGdDZSxpR2QobUFjKSk7QWdkKGEsc3hlLFdDZSxpR2QoY0FjKSk7QWdkKGEsc3hlLCRDZSxpR2QoX3pjKSk7QWdkKGEsc3hlLF9DZSxpR2QoWnpjKSk7QWdkKGEsc3hlLGFEZSxpR2QoJHpjKSk7QWdkKGEsc3hlLFlDZSxpR2QoYUFjKSk7QWdkKGEsc3hlLFpDZSxpR2QoWXpjKSk7QWdkKGEsc3hlLFhDZSxpR2QoYkFjKSk7QWdkKGEsc3hlLFFCZSxpR2QoSEFjKSl9XG5mdW5jdGlvbiB5bmUoYSl7X0FkKGEuYSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCdhbnlTaW1wbGVUeXBlJ10pKTtfQWQoYS5iLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ2FueVR5cGUnLHJLZSxwS2VdKSk7X0FkKFJEKFFIZCh4WWQoYS5iKSwwKSwzNSkscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW3JLZSxZS2UsR0llLCc6bWl4ZWQnXSkpO19BZChSRChRSGQoeFlkKGEuYiksMSksMzUpLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtyS2UsWUtlLGNMZSxlTGUsR0llLCc6MScsbkxlLCdsYXgnXSkpO19BZChSRChRSGQoeFlkKGEuYiksMiksMzUpLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtyS2UsV0tlLGNMZSxlTGUsR0llLCc6MicsbkxlLCdsYXgnXSkpO19BZChhLmMscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnYW55VVJJJyxiTGUsWktlXSkpO19BZChhLmQscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnYmFzZTY0QmluYXJ5JyxiTGUsWktlXSkpO19BZChhLmUscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSxodmUsYkxlLFpLZV0pKTtfQWQoYS5mLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ2Jvb2xlYW46T2JqZWN0JyxES2UsaHZlXSkpO19BZChhLmcscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSxkS2VdKSk7X0FkKGEuaSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCdieXRlOk9iamVjdCcsREtlLGRLZV0pKTtfQWQoYS5qLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ2RhdGUnLGJMZSxaS2VdKSk7X0FkKGEuayxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCdkYXRlVGltZScsYkxlLFpLZV0pKTtfQWQoYS5uLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ2RlY2ltYWwnLGJMZSxaS2VdKSk7X0FkKGEubyxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLGZLZSxiTGUsWktlXSkpO19BZChhLnAscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnZG91YmxlOk9iamVjdCcsREtlLGZLZV0pKTtfQWQoYS5xLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ2R1cmF0aW9uJyxiTGUsWktlXSkpO19BZChhLnMscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnRU5USVRJRVMnLERLZSxvTGUscExlLCcxJ10pKTtfQWQoYS5yLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsb0xlLCRLZSxxTGVdKSk7X0FkKGEudCxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLHFMZSxES2UsckxlXSkpO19BZChhLnUscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSxnS2UsYkxlLFpLZV0pKTtfQWQoYS52LHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ2Zsb2F0Ok9iamVjdCcsREtlLGdLZV0pKTtfQWQoYS53LHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ2dEYXknLGJMZSxaS2VdKSk7X0FkKGEuQixxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCdnTW9udGgnLGJMZSxaS2VdKSk7X0FkKGEuQSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCdnTW9udGhEYXknLGJMZSxaS2VdKSk7X0FkKGEuQyxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCdnWWVhcicsYkxlLFpLZV0pKTtfQWQoYS5ELHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ2dZZWFyTW9udGgnLGJMZSxaS2VdKSk7X0FkKGEuRixxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCdoZXhCaW5hcnknLGJMZSxaS2VdKSk7X0FkKGEuRyxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCdJRCcsREtlLHJMZV0pKTtfQWQoYS5ILHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ0lEUkVGJyxES2UsckxlXSkpO19BZChhLkoscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnSURSRUZTJyxES2Usc0xlLHBMZSwnMSddKSk7X0FkKGEuSSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLHNMZSwkS2UsJ0lEUkVGJ10pKTtfQWQoYS5LLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsaEtlXSkpO19BZChhLk0scUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSx0TGVdKSk7X0FkKGEuTCxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCdpbnQ6T2JqZWN0JyxES2UsaEtlXSkpO19BZChhLlAscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnbGFuZ3VhZ2UnLERLZSx1TGUsdkxlLHdMZV0pKTtfQWQoYS5RLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsaUtlXSkpO19BZChhLlIscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnbG9uZzpPYmplY3QnLERLZSxpS2VdKSk7X0FkKGEuUyxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCdOYW1lJyxES2UsdUxlLHZMZSx4TGVdKSk7X0FkKGEuVCxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLHJMZSxES2UsJ05hbWUnLHZMZSx5TGVdKSk7X0FkKGEuVSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCduZWdhdGl2ZUludGVnZXInLERLZSx6TGUsQUxlLCctMSddKSk7X0FkKGEuVixxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLEJMZSxES2UsdUxlLHZMZSwnXFxcXGMrJ10pKTtfQWQoYS5YLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ05NVE9LRU5TJyxES2UsQ0xlLHBMZSwnMSddKSk7X0FkKGEuVyxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLENMZSwkS2UsQkxlXSkpO19BZChhLlkscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSxETGUsREtlLHRMZSxFTGUsJzAnXSkpO19BZChhLloscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSx6TGUsREtlLHRMZSxBTGUsJzAnXSkpO19BZChhLiQscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSxGTGUsREtlLGp2ZSxiTGUsJ3JlcGxhY2UnXSkpO19BZChhLl8scUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnTk9UQVRJT04nLGJMZSxaS2VdKSk7X0FkKGEuYWIscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwncG9zaXRpdmVJbnRlZ2VyJyxES2UsRExlLEVMZSwnMSddKSk7X0FkKGEuYmIscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwncHJvY2Vzc2luZ0luc3RydWN0aW9uXy5fdHlwZScscktlLCdlbXB0eSddKSk7X0FkKFJEKFFIZCh4WWQoYS5iYiksMCksMzUpLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtyS2UsVktlLEdJZSwnZGF0YSddKSk7X0FkKFJEKFFIZCh4WWQoYS5iYiksMSksMzUpLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtyS2UsVktlLEdJZSxDSWVdKSk7X0FkKGEuY2IscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnUU5hbWUnLGJMZSxaS2VdKSk7X0FkKGEuZGIscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSxqS2VdKSk7X0FkKGEuZWIscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnc2hvcnQ6T2JqZWN0JyxES2UsaktlXSkpO19BZChhLmZiLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ3NpbXBsZUFueVR5cGUnLHJLZSxVS2VdKSk7X0FkKFJEKFFIZCh4WWQoYS5mYiksMCksMzUpLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJzozJyxyS2UsVUtlXSkpO19BZChSRChRSGQoeFlkKGEuZmIpLDEpLDM1KSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCc6NCcscktlLFVLZV0pKTtfQWQoUkQoUUhkKHhZZChhLmZiKSwyKSwxOSkscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwnOjUnLHJLZSxVS2VdKSk7X0FkKGEuZ2IscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSxqdmUsYkxlLCdwcmVzZXJ2ZSddKSk7X0FkKGEuaGIscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwndGltZScsYkxlLFpLZV0pKTtfQWQoYS5pYixxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLHVMZSxES2UsRkxlLGJMZSxaS2VdKSk7X0FkKGEuamIscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSxHTGUsQUxlLCcyNTUnLEVMZSwnMCddKSk7X0FkKGEua2IscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwndW5zaWduZWRCeXRlOk9iamVjdCcsREtlLEdMZV0pKTtfQWQoYS5sYixxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLEhMZSxBTGUsJzQyOTQ5NjcyOTUnLEVMZSwnMCddKSk7X0FkKGEubWIscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSwndW5zaWduZWRJbnQ6T2JqZWN0JyxES2UsSExlXSkpO19BZChhLm5iLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtHSWUsJ3Vuc2lnbmVkTG9uZycsREtlLERMZSxBTGUsSUxlLEVMZSwnMCddKSk7X0FkKGEub2IscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW0dJZSxKTGUsQUxlLCc2NTUzNScsRUxlLCcwJ10pKTtfQWQoYS5wYixxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCd1bnNpZ25lZFNob3J0Ok9iamVjdCcsREtlLEpMZV0pKTtfQWQoYS5xYixxS2UsY0QoV0MocUosMSksTnZlLDIsNixbR0llLCcnLHJLZSxwS2VdKSk7X0FkKFJEKFFIZCh4WWQoYS5xYiksMCksMzUpLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtyS2UsWUtlLEdJZSwnOm1peGVkJ10pKTtfQWQoUkQoUUhkKHhZZChhLnFiKSwxKSwxOSkscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW3JLZSxWS2UsR0llLCd4bWxuczpwcmVmaXgnXSkpO19BZChSRChRSGQoeFlkKGEucWIpLDIpLDE5KSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbcktlLFZLZSxHSWUsJ3hzaTpzY2hlbWFMb2NhdGlvbiddKSk7X0FkKFJEKFFIZCh4WWQoYS5xYiksMyksMzUpLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtyS2UsWEtlLEdJZSwnY0RBVEEnLF9LZSxhTGVdKSk7X0FkKFJEKFFIZCh4WWQoYS5xYiksNCksMzUpLHFLZSxjRChXQyhxSiwxKSxOdmUsMiw2LFtyS2UsWEtlLEdJZSwnY29tbWVudCcsX0tlLGFMZV0pKTtfQWQoUkQoUUhkKHhZZChhLnFiKSw1KSwxOSkscUtlLGNEKFdDKHFKLDEpLE52ZSwyLDYsW3JLZSxYS2UsR0llLEtMZSxfS2UsYUxlXSkpO19BZChSRChRSGQoeFlkKGEucWIpLDYpLDM1KSxxS2UsY0QoV0MocUosMSksTnZlLDIsNixbcktlLFhLZSxHSWUsaEllLF9LZSxhTGVdKSl9XG5mdW5jdGlvbiBUSWQoYSl7cmV0dXJuIGxoYignX1VJX0VNRkRpYWdub3N0aWNfbWFya2VyJyxhKT8nRU1GIFByb2JsZW0nOmxoYignX1VJX0NpcmN1bGFyQ29udGFpbm1lbnRfZGlhZ25vc3RpYycsYSk/J0FuIG9iamVjdCBtYXkgbm90IGNpcmN1bGFybHkgY29udGFpbiBpdHNlbGYnOmxoYihUSWUsYSk/J1dyb25nIGNoYXJhY3Rlci4nOmxoYihVSWUsYSk/J0ludmFsaWQgcmVmZXJlbmNlIG51bWJlci4nOmxoYihWSWUsYSk/J0EgY2hhcmFjdGVyIGlzIHJlcXVpcmVkIGFmdGVyIFxcXFwuJzpsaGIoV0llLGEpP1wiJz8nIGlzIG5vdCBleHBlY3RlZC4gICcoPzonIG9yICcoPz0nIG9yICcoPyEnIG9yICcoPzwnIG9yICcoPyMnIG9yICcoPz4nP1wiOmxoYihYSWUsYSk/XCInKD88JyBvciAnKD88IScgaXMgZXhwZWN0ZWQuXCI6bGhiKFlJZSxhKT8nQSBjb21tZW50IGlzIG5vdCB0ZXJtaW5hdGVkLic6bGhiKFpJZSxhKT9cIicpJyBpcyBleHBlY3RlZC5cIjpsaGIoJEllLGEpPydVbmV4cGVjdGVkIGVuZCBvZiB0aGUgcGF0dGVybiBpbiBhIG1vZGlmaWVyIGdyb3VwLic6bGhiKF9JZSxhKT9cIic6JyBpcyBleHBlY3RlZC5cIjpsaGIoYUplLGEpPydVbmV4cGVjdGVkIGVuZCBvZiB0aGUgcGF0dGVybiBpbiBhIGNvbmRpdGlvbmFsIGdyb3VwLic6bGhiKGJKZSxhKT8nQSBiYWNrIHJlZmVyZW5jZSBvciBhbiBhbmNob3Igb3IgYSBsb29rYWhlYWQgb3IgYSBsb29rLWJlaGluZCBpcyBleHBlY3RlZCBpbiBhIGNvbmRpdGlvbmFsIHBhdHRlcm4uJzpsaGIoY0plLGEpPydUaGVyZSBhcmUgbW9yZSB0aGFuIHRocmVlIGNob2ljZXMgaW4gYSBjb25kaXRpb25hbCBncm91cC4nOmxoYihkSmUsYSk/J0EgY2hhcmFjdGVyIGluIFUrMDA0MC1VKzAwNWYgbXVzdCBmb2xsb3cgXFxcXGMuJzpsaGIoZUplLGEpP1wiQSAneycgaXMgcmVxdWlyZWQgYmVmb3JlIGEgY2hhcmFjdGVyIGNhdGVnb3J5LlwiOmxoYihmSmUsYSk/XCJBIHByb3BlcnR5IG5hbWUgaXMgbm90IGNsb3NlZCBieSAnfScuXCI6bGhiKGdKZSxhKT8nVW5leHBlY3RlZCBtZXRhIGNoYXJhY3Rlci4nOmxoYihoSmUsYSk/J1Vua25vd24gcHJvcGVydHkuJzpsaGIoaUplLGEpP1wiQSBQT1NJWCBjaGFyYWN0ZXIgY2xhc3MgbXVzdCBiZSBjbG9zZWQgYnkgJzpdJy5cIjpsaGIoakplLGEpPydVbmV4cGVjdGVkIGVuZCBvZiB0aGUgcGF0dGVybiBpbiBhIGNoYXJhY3RlciBjbGFzcy4nOmxoYihrSmUsYSk/J1Vua25vd24gbmFtZSBmb3IgYSBQT1NJWCBjaGFyYWN0ZXIgY2xhc3MuJzpsaGIoJ3BhcnNlci5jYy40JyxhKT9cIictJyBpcyBpbnZhbGlkIGhlcmUuXCI6bGhiKGxKZSxhKT9cIiddJyBpcyBleHBlY3RlZC5cIjpsaGIobUplLGEpP1wiJ1snIGlzIGludmFsaWQgaW4gYSBjaGFyYWN0ZXIgY2xhc3MuICBXcml0ZSAnXFxcXFsnLlwiOmxoYihuSmUsYSk/XCInXScgaXMgaW52YWxpZCBpbiBhIGNoYXJhY3RlciBjbGFzcy4gIFdyaXRlICdcXFxcXScuXCI6bGhiKG9KZSxhKT9cIictJyBpcyBhbiBpbnZhbGlkIGNoYXJhY3RlciByYW5nZS4gV3JpdGUgJ1xcXFwtJy5cIjpsaGIocEplLGEpP1wiJ1snIGlzIGV4cGVjdGVkLlwiOmxoYihxSmUsYSk/XCInKScgb3IgJy1bJyBvciAnK1snIG9yICcmWycgaXMgZXhwZWN0ZWQuXCI6bGhiKHJKZSxhKT8nVGhlIHJhbmdlIGVuZCBjb2RlIHBvaW50IGlzIGxlc3MgdGhhbiB0aGUgc3RhcnQgY29kZSBwb2ludC4nOmxoYihzSmUsYSk/J0ludmFsaWQgVW5pY29kZSBoZXggbm90YXRpb24uJzpsaGIodEplLGEpPydPdmVyZmxvdyBpbiBhIGhleCBub3RhdGlvbi4nOmxoYih1SmUsYSk/XCInXFxcXHh7JyBtdXN0IGJlIGNsb3NlZCBieSAnfScuXCI6bGhiKHZKZSxhKT8nSW52YWxpZCBVbmljb2RlIGNvZGUgcG9pbnQuJzpsaGIod0plLGEpPydBbiBhbmNob3IgbXVzdCBub3QgYmUgaGVyZS4nOmxoYih4SmUsYSk/J1RoaXMgZXhwcmVzc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGluIHRoZSBjdXJyZW50IG9wdGlvbiBzZXR0aW5nLic6bGhiKHlKZSxhKT8nSW52YWxpZCBxdWFudGlmaWVyLiBBIGRpZ2l0IGlzIGV4cGVjdGVkLic6bGhiKHpKZSxhKT9cIkludmFsaWQgcXVhbnRpZmllci4gSW52YWxpZCBxdWFudGl0eSBvciBhICd9JyBpcyBtaXNzaW5nLlwiOmxoYihBSmUsYSk/XCJJbnZhbGlkIHF1YW50aWZpZXIuIEEgZGlnaXQgb3IgJ30nIGlzIGV4cGVjdGVkLlwiOmxoYihCSmUsYSk/J0ludmFsaWQgcXVhbnRpZmllci4gQSBtaW4gcXVhbnRpdHkgbXVzdCBiZSA8PSBhIG1heCBxdWFudGl0eS4nOmxoYihDSmUsYSk/J0ludmFsaWQgcXVhbnRpZmllci4gQSBxdWFudGl0eSB2YWx1ZSBvdmVyZmxvdy4nOmxoYignX1VJX1BhY2thZ2VSZWdpc3RyeV9leHRlbnNpb25wb2ludCcsYSk/J0Vjb3JlIFBhY2thZ2UgUmVnaXN0cnkgZm9yIEdlbmVyYXRlZCBQYWNrYWdlcyc6bGhiKCdfVUlfRHluYW1pY1BhY2thZ2VSZWdpc3RyeV9leHRlbnNpb25wb2ludCcsYSk/J0Vjb3JlIFBhY2thZ2UgUmVnaXN0cnkgZm9yIER5bmFtaWMgUGFja2FnZXMnOmxoYignX1VJX0ZhY3RvcnlSZWdpc3RyeV9leHRlbnNpb25wb2ludCcsYSk/J0Vjb3JlIEZhY3RvcnkgT3ZlcnJpZGUgUmVnaXN0cnknOmxoYignX1VJX1VSSUV4dGVuc2lvblBhcnNlclJlZ2lzdHJ5X2V4dGVuc2lvbnBvaW50JyxhKT8nVVJJIEV4dGVuc2lvbiBQYXJzZXIgUmVnaXN0cnknOmxoYignX1VJX1VSSVByb3RvY29sUGFyc2VyUmVnaXN0cnlfZXh0ZW5zaW9ucG9pbnQnLGEpPydVUkkgUHJvdG9jb2wgUGFyc2VyIFJlZ2lzdHJ5JzpsaGIoJ19VSV9VUklDb250ZW50UGFyc2VyUmVnaXN0cnlfZXh0ZW5zaW9ucG9pbnQnLGEpPydVUkkgQ29udGVudCBQYXJzZXIgUmVnaXN0cnknOmxoYignX1VJX0NvbnRlbnRIYW5kbGVyUmVnaXN0cnlfZXh0ZW5zaW9ucG9pbnQnLGEpPydDb250ZW50IEhhbmRsZXIgUmVnaXN0cnknOmxoYignX1VJX1VSSU1hcHBpbmdSZWdpc3RyeV9leHRlbnNpb25wb2ludCcsYSk/J1VSSSBDb252ZXJ0ZXIgTWFwcGluZyBSZWdpc3RyeSc6bGhiKCdfVUlfUGFja2FnZVJlZ2lzdHJ5SW1wbGVtZW50YXRpb25fZXh0ZW5zaW9ucG9pbnQnLGEpPydFY29yZSBQYWNrYWdlIFJlZ2lzdHJ5IEltcGxlbWVudGF0aW9uJzpsaGIoJ19VSV9WYWxpZGF0aW9uRGVsZWdhdGVSZWdpc3RyeV9leHRlbnNpb25wb2ludCcsYSk/J1ZhbGlkYXRpb24gRGVsZWdhdGUgUmVnaXN0cnknOmxoYignX1VJX1NldHRpbmdEZWxlZ2F0ZVJlZ2lzdHJ5X2V4dGVuc2lvbnBvaW50JyxhKT8nRmVhdHVyZSBTZXR0aW5nIERlbGVnYXRlIEZhY3RvcnkgUmVnaXN0cnknOmxoYignX1VJX0ludm9jYXRpb25EZWxlZ2F0ZVJlZ2lzdHJ5X2V4dGVuc2lvbnBvaW50JyxhKT8nT3BlcmF0aW9uIEludm9jYXRpb24gRGVsZWdhdGUgRmFjdG9yeSBSZWdpc3RyeSc6bGhiKCdfVUlfRUNsYXNzSW50ZXJmYWNlTm90QWJzdHJhY3RfZGlhZ25vc3RpYycsYSk/J0EgY2xhc3MgdGhhdCBpcyBhbiBpbnRlcmZhY2UgbXVzdCBhbHNvIGJlIGFic3RyYWN0JzpsaGIoJ19VSV9FQ2xhc3NOb0NpcmN1bGFyU3VwZXJUeXBlc19kaWFnbm9zdGljJyxhKT8nQSBjbGFzcyBtYXkgbm90IGJlIGEgc3VwZXIgdHlwZSBvZiBpdHNlbGYnOmxoYignX1VJX0VDbGFzc05vdFdlbGxGb3JtZWRNYXBFbnRyeU5vSW5zdGFuY2VDbGFzc05hbWVfZGlhZ25vc3RpYycsYSk/XCJBIGNsYXNzIHRoYXQgaW5oZXJpdHMgZnJvbSBhIG1hcCBlbnRyeSBjbGFzcyBtdXN0IGhhdmUgaW5zdGFuY2UgY2xhc3MgbmFtZSAnamF2YS51dGlsLk1hcCRFbnRyeSdcIjpsaGIoJ19VSV9FUmVmZXJlbmNlT3Bwb3NpdGVPZk9wcG9zaXRlSW5jb25zaXN0ZW50X2RpYWdub3N0aWMnLGEpPydUaGUgb3Bwb3NpdGUgb2YgdGhlIG9wcG9zaXRlIG1heSBub3QgYmUgYSByZWZlcmVuY2UgZGlmZmVyZW50IGZyb20gdGhpcyBvbmUnOmxoYignX1VJX0VSZWZlcmVuY2VPcHBvc2l0ZU5vdEZlYXR1cmVPZlR5cGVfZGlhZ25vc3RpYycsYSk/XCJUaGUgb3Bwb3NpdGUgbXVzdCBiZSBhIGZlYXR1cmUgb2YgdGhlIHJlZmVyZW5jZSdzIHR5cGVcIjpsaGIoJ19VSV9FUmVmZXJlbmNlVHJhbnNpZW50T3Bwb3NpdGVOb3RUcmFuc2llbnRfZGlhZ25vc3RpYycsYSk/J1RoZSBvcHBvc2l0ZSBvZiBhIHRyYW5zaWVudCByZWZlcmVuY2UgbXVzdCBiZSB0cmFuc2llbnQgaWYgaXQgaXMgcHJveHkgcmVzb2x2aW5nJzpsaGIoJ19VSV9FUmVmZXJlbmNlT3Bwb3NpdGVCb3RoQ29udGFpbm1lbnRfZGlhZ25vc3RpYycsYSk/J1RoZSBvcHBvc2l0ZSBvZiBhIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBtdXN0IG5vdCBiZSBhIGNvbnRhaW5tZW50IHJlZmVyZW5jZSc6bGhiKCdfVUlfRVJlZmVyZW5jZUNvbnNpc3RlbnRVbmlxdWVfZGlhZ25vc3RpYycsYSk/J0EgY29udGFpbm1lbnQgb3IgYmlkaXJlY3Rpb25hbCByZWZlcmVuY2UgbXVzdCBiZSB1bmlxdWUgaWYgaXRzIHVwcGVyIGJvdW5kIGlzIGRpZmZlcmVudCBmcm9tIDEnOmxoYignX1VJX0VUeXBlZEVsZW1lbnROb1R5cGVfZGlhZ25vc3RpYycsYSk/J1RoZSB0eXBlZCBlbGVtZW50IG11c3QgaGF2ZSBhIHR5cGUnOmxoYignX1VJX0VBdHRyaWJ1dGVOb0RhdGFUeXBlX2RpYWdub3N0aWMnLGEpPydUaGUgZ2VuZXJpYyBhdHRyaWJ1dGUgdHlwZSBtdXN0IG5vdCByZWZlciB0byBhIGNsYXNzJzpsaGIoJ19VSV9FUmVmZXJlbmNlTm9DbGFzc19kaWFnbm9zdGljJyxhKT8nVGhlIGdlbmVyaWMgcmVmZXJlbmNlIHR5cGUgbXVzdCBub3QgcmVmZXIgdG8gYSBkYXRhIHR5cGUnOmxoYignX1VJX0VHZW5lcmljVHlwZU5vVHlwZVBhcmFtZXRlckFuZENsYXNzaWZpZXJfZGlhZ25vc3RpYycsYSk/XCJBIGdlbmVyaWMgdHlwZSBjYW4ndCByZWZlciB0byBib3RoIGEgdHlwZSBwYXJhbWV0ZXIgYW5kIGEgY2xhc3NpZmllclwiOmxoYignX1VJX0VHZW5lcmljVHlwZU5vQ2xhc3NfZGlhZ25vc3RpYycsYSk/J0EgZ2VuZXJpYyBzdXBlciB0eXBlIG11c3QgcmVmZXIgdG8gYSBjbGFzcyc6bGhiKCdfVUlfRUdlbmVyaWNUeXBlTm9UeXBlUGFyYW1ldGVyT3JDbGFzc2lmaWVyX2RpYWdub3N0aWMnLGEpPydBIGdlbmVyaWMgdHlwZSBpbiB0aGlzIGNvbnRleHQgbXVzdCByZWZlciB0byBhIGNsYXNzaWZpZXIgb3IgYSB0eXBlIHBhcmFtZXRlcic6bGhiKCdfVUlfRUdlbmVyaWNUeXBlQm91bmRzT25seUZvclR5cGVBcmd1bWVudF9kaWFnbm9zdGljJyxhKT8nQSBnZW5lcmljIHR5cGUgbWF5IGhhdmUgYm91bmRzIG9ubHkgd2hlbiB1c2VkIGFzIGEgdHlwZSBhcmd1bWVudCc6bGhiKCdfVUlfRUdlbmVyaWNUeXBlTm9VcHBlckFuZExvd2VyQm91bmRfZGlhZ25vc3RpYycsYSk/J0EgZ2VuZXJpYyB0eXBlIG11c3Qgbm90IGhhdmUgYm90aCBhIGxvd2VyIGFuZCBhbiB1cHBlciBib3VuZCc6bGhiKCdfVUlfRUdlbmVyaWNUeXBlTm9UeXBlUGFyYW1ldGVyT3JDbGFzc2lmaWVyQW5kQm91bmRfZGlhZ25vc3RpYycsYSk/J0EgZ2VuZXJpYyB0eXBlIHdpdGggYm91bmRzIG11c3Qgbm90IGFsc28gcmVmZXIgdG8gYSB0eXBlIHBhcmFtZXRlciBvciBjbGFzc2lmaWVyJzpsaGIoJ19VSV9FR2VuZXJpY1R5cGVOb0FyZ3VtZW50c19kaWFnbm9zdGljJyxhKT8nQSBnZW5lcmljIHR5cGUgbWF5IGhhdmUgYXJndW1lbnRzIG9ubHkgaWYgaXQgcmVmZXJzIHRvIGEgY2xhc3NpZmllcic6bGhiKCdfVUlfRUdlbmVyaWNUeXBlT3V0T2ZTY29wZVR5cGVQYXJhbWV0ZXJfZGlhZ25vc3RpYycsYSk/J0EgZ2VuZXJpYyB0eXBlIG1heSBvbmx5IHJlZmVyIHRvIGEgdHlwZSBwYXJhbWV0ZXIgdGhhdCBpcyBpbiBzY29wZSc6YX1cbmZ1bmN0aW9uICRCZChhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHA7aWYoYS5yKXJldHVybjthLnI9dHJ1ZTtQQWQoYSwnZ3JhcGgnKTtDQmQoYSwnZ3JhcGgnKTtEQmQoYSwkSGUpO2VCZChhLm8sJ1QnKTtXR2QoellkKGEuYSksYS5wKTtXR2QoellkKGEuZiksYS5hKTtXR2QoellkKGEubiksYS5mKTtXR2QoellkKGEuZyksYS5uKTtXR2QoellkKGEuYyksYS5uKTtXR2QoellkKGEuaSksYS5jKTtXR2QoellkKGEuaiksYS5jKTtXR2QoellkKGEuZCksYS5mKTtXR2QoellkKGEuZSksYS5hKTt2QmQoYS5wLFU1LGt6ZSx0cnVlLHRydWUsZmFsc2UpO289YkJkKGEucCxhLnAsJ3NldFByb3BlcnR5Jyk7cD1mQmQobyk7aj1sQmQoYS5vKTtrPShjPShkPW5ldyBzMmQsZCksYyk7V0dkKCghai5kJiYoai5kPW5ldyBYWmQobzcsaiwxKSksai5kKSxrKTtsPW1CZChwKTtuMmQoayxsKTtkQmQobyxqLF9IZSk7aj1tQmQocCk7ZEJkKG8saixhSWUpO289YkJkKGEucCxudWxsLCdnZXRQcm9wZXJ0eScpO3A9ZkJkKG8pO2o9bEJkKGEubyk7az1tQmQocCk7V0dkKCghai5kJiYoai5kPW5ldyBYWmQobzcsaiwxKSksai5kKSxrKTtkQmQobyxqLF9IZSk7aj1tQmQocCk7bj1YVmQobyxqLG51bGwpOyEhbiYmbi5vaigpO289YkJkKGEucCxhLndiLmUsJ2hhc1Byb3BlcnR5Jyk7aj1sQmQoYS5vKTtrPShlPShmPW5ldyBzMmQsZiksZSk7V0dkKCghai5kJiYoai5kPW5ldyBYWmQobzcsaiwxKSksai5kKSxrKTtkQmQobyxqLF9IZSk7bz1iQmQoYS5wLGEucCwnY29weVByb3BlcnRpZXMnKTtjQmQobyxhLnAsYkllKTtvPWJCZChhLnAsbnVsbCwnZ2V0QWxsUHJvcGVydGllcycpO2o9bEJkKGEud2IuUCk7az1sQmQoYS5vKTtXR2QoKCFqLmQmJihqLmQ9bmV3IFhaZChvNyxqLDEpKSxqLmQpLGspO2w9KGc9KGg9bmV3IHMyZCxoKSxnKTtXR2QoKCFrLmQmJihrLmQ9bmV3IFhaZChvNyxrLDEpKSxrLmQpLGwpO2s9bEJkKGEud2IuTSk7V0dkKCghai5kJiYoai5kPW5ldyBYWmQobzcsaiwxKSksai5kKSxrKTttPVhWZChvLGosbnVsbCk7ISFtJiZtLm9qKCk7dkJkKGEuYSxDNCx4SGUsdHJ1ZSxmYWxzZSx0cnVlKTt6QmQoUkQoUUhkKHhZZChhLmEpLDApLDE5KSxhLmssbnVsbCxjSWUsMCwtMSxDNCxmYWxzZSxmYWxzZSx0cnVlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO3ZCZChhLmYsSDQsekhlLHRydWUsZmFsc2UsdHJ1ZSk7ekJkKFJEKFFIZCh4WWQoYS5mKSwwKSwxOSksYS5nLFJEKFFIZCh4WWQoYS5nKSwwKSwxOSksJ2xhYmVscycsMCwtMSxINCxmYWxzZSxmYWxzZSx0cnVlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO3RCZChSRChRSGQoeFlkKGEuZiksMSksMzUpLGEud2IuXyxkSWUsbnVsbCwwLDEsSDQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt2QmQoYS5uLEw0LCdFbGtTaGFwZScsdHJ1ZSxmYWxzZSx0cnVlKTt0QmQoUkQoUUhkKHhZZChhLm4pLDApLDM1KSxhLndiLnQsZUllLHp4ZSwxLDEsTDQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLm4pLDEpLDM1KSxhLndiLnQsZkllLHp4ZSwxLDEsTDQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLm4pLDIpLDM1KSxhLndiLnQsJ3gnLHp4ZSwxLDEsTDQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLm4pLDMpLDM1KSxhLndiLnQsJ3knLHp4ZSwxLDEsTDQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTtvPWJCZChhLm4sbnVsbCwnc2V0RGltZW5zaW9ucycpO2NCZChvLGEud2IudCxmSWUpO2NCZChvLGEud2IudCxlSWUpO289YkJkKGEubixudWxsLCdzZXRMb2NhdGlvbicpO2NCZChvLGEud2IudCwneCcpO2NCZChvLGEud2IudCwneScpO3ZCZChhLmcsSTQsRkhlLGZhbHNlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEuZyksMCksMTkpLGEuZixSRChRSGQoeFlkKGEuZiksMCksMTkpLGdJZSwwLDEsSTQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7dEJkKFJEKFFIZCh4WWQoYS5nKSwxKSwzNSksYS53Yi5fLGhJZSwnJywwLDEsSTQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt2QmQoYS5jLEU0LEFIZSx0cnVlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEuYyksMCksMTkpLGEuZCxSRChRSGQoeFlkKGEuZCksMSksMTkpLCdvdXRnb2luZ0VkZ2VzJywwLC0xLEU0LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5jKSwxKSwxOSksYS5kLFJEKFFIZCh4WWQoYS5kKSwyKSwxOSksJ2luY29taW5nRWRnZXMnLDAsLTEsRTQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlKTt2QmQoYS5pLEo0LEdIZSxmYWxzZSxmYWxzZSx0cnVlKTt6QmQoUkQoUUhkKHhZZChhLmkpLDApLDE5KSxhLmosUkQoUUhkKHhZZChhLmopLDApLDE5KSwncG9ydHMnLDAsLTEsSjQsZmFsc2UsZmFsc2UsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLmkpLDEpLDE5KSxhLmksUkQoUUhkKHhZZChhLmkpLDIpLDE5KSxpSWUsMCwtMSxKNCxmYWxzZSxmYWxzZSx0cnVlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuaSksMiksMTkpLGEuaSxSRChRSGQoeFlkKGEuaSksMSksMTkpLGdJZSwwLDEsSjQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5pKSwzKSwxOSksYS5kLFJEKFFIZCh4WWQoYS5kKSwwKSwxOSksJ2NvbnRhaW5lZEVkZ2VzJywwLC0xLEo0LGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7dEJkKFJEKFFIZCh4WWQoYS5pKSw0KSwzNSksYS53Yi5lLGpJZSxudWxsLDAsMSxKNCx0cnVlLHRydWUsZmFsc2UsZmFsc2UsdHJ1ZSx0cnVlKTt2QmQoYS5qLEs0LEhIZSxmYWxzZSxmYWxzZSx0cnVlKTt6QmQoUkQoUUhkKHhZZChhLmopLDApLDE5KSxhLmksUkQoUUhkKHhZZChhLmkpLDApLDE5KSxnSWUsMCwxLEs0LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO3ZCZChhLmQsRzQsQkhlLGZhbHNlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEuZCksMCksMTkpLGEuaSxSRChRSGQoeFlkKGEuaSksMyksMTkpLCdjb250YWluaW5nTm9kZScsMCwxLEc0LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuZCksMSksMTkpLGEuYyxSRChRSGQoeFlkKGEuYyksMCksMTkpLGtJZSwwLC0xLEc0LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5kKSwyKSwxOSksYS5jLFJEKFFIZCh4WWQoYS5jKSwxKSwxOSksbEllLDAsLTEsRzQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLmQpLDMpLDE5KSxhLmUsUkQoUUhkKHhZZChhLmUpLDUpLDE5KSxtSWUsMCwtMSxHNCxmYWxzZSxmYWxzZSx0cnVlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO3RCZChSRChRSGQoeFlkKGEuZCksNCksMzUpLGEud2IuZSwnaHlwZXJlZGdlJyxudWxsLDAsMSxHNCx0cnVlLHRydWUsZmFsc2UsZmFsc2UsdHJ1ZSx0cnVlKTt0QmQoUkQoUUhkKHhZZChhLmQpLDUpLDM1KSxhLndiLmUsakllLG51bGwsMCwxLEc0LHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSx0cnVlLHRydWUpO3RCZChSRChRSGQoeFlkKGEuZCksNiksMzUpLGEud2IuZSwnc2VsZmxvb3AnLG51bGwsMCwxLEc0LHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSx0cnVlLHRydWUpO3RCZChSRChRSGQoeFlkKGEuZCksNyksMzUpLGEud2IuZSwnY29ubmVjdGVkJyxudWxsLDAsMSxHNCx0cnVlLHRydWUsZmFsc2UsZmFsc2UsdHJ1ZSx0cnVlKTt2QmQoYS5iLEQ0LHlIZSxmYWxzZSxmYWxzZSx0cnVlKTt0QmQoUkQoUUhkKHhZZChhLmIpLDApLDM1KSxhLndiLnQsJ3gnLHp4ZSwxLDEsRDQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLmIpLDEpLDM1KSxhLndiLnQsJ3knLHp4ZSwxLDEsRDQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTtvPWJCZChhLmIsbnVsbCwnc2V0Jyk7Y0JkKG8sYS53Yi50LCd4Jyk7Y0JkKG8sYS53Yi50LCd5Jyk7dkJkKGEuZSxGNCxDSGUsZmFsc2UsZmFsc2UsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5lKSwwKSwzNSksYS53Yi50LCdzdGFydFgnLG51bGwsMCwxLEY0LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7dEJkKFJEKFFIZCh4WWQoYS5lKSwxKSwzNSksYS53Yi50LCdzdGFydFknLG51bGwsMCwxLEY0LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7dEJkKFJEKFFIZCh4WWQoYS5lKSwyKSwzNSksYS53Yi50LCdlbmRYJyxudWxsLDAsMSxGNCxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UpO3RCZChSRChRSGQoeFlkKGEuZSksMyksMzUpLGEud2IudCwnZW5kWScsbnVsbCwwLDEsRjQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLmUpLDQpLDE5KSxhLmIsbnVsbCxuSWUsMCwtMSxGNCxmYWxzZSxmYWxzZSx0cnVlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuZSksNSksMTkpLGEuZCxSRChRSGQoeFlkKGEuZCksMyksMTkpLGdJZSwwLDEsRjQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5lKSw2KSwxOSksYS5jLG51bGwsb0llLDAsMSxGNCxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuZSksNyksMTkpLGEuYyxudWxsLHBJZSwwLDEsRjQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLmUpLDgpLDE5KSxhLmUsUkQoUUhkKHhZZChhLmUpLDkpLDE5KSxxSWUsMCwtMSxGNCxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuZSksOSksMTkpLGEuZSxSRChRSGQoeFlkKGEuZSksOCksMTkpLHJJZSwwLC0xLEY0LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSk7dEJkKFJEKFFIZCh4WWQoYS5lKSwxMCksMzUpLGEud2IuXyxkSWUsbnVsbCwwLDEsRjQsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTtvPWJCZChhLmUsbnVsbCwnc2V0U3RhcnRMb2NhdGlvbicpO2NCZChvLGEud2IudCwneCcpO2NCZChvLGEud2IudCwneScpO289YkJkKGEuZSxudWxsLCdzZXRFbmRMb2NhdGlvbicpO2NCZChvLGEud2IudCwneCcpO2NCZChvLGEud2IudCwneScpO3ZCZChhLmssVUssJ0Vsa1Byb3BlcnR5VG9WYWx1ZU1hcEVudHJ5JyxmYWxzZSxmYWxzZSxmYWxzZSk7aj1sQmQoYS5vKTtrPShpPShiPW5ldyBzMmQsYiksaSk7V0dkKCghai5kJiYoai5kPW5ldyBYWmQobzcsaiwxKSksai5kKSxrKTt1QmQoUkQoUUhkKHhZZChhLmspLDApLDM1KSxqLCdrZXknLFVLLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UpO3RCZChSRChRSGQoeFlkKGEuayksMSksMzUpLGEucyxhSWUsbnVsbCwwLDEsVUssZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt4QmQoYS5vLFY1LCdJUHJvcGVydHknLHRydWUpO3hCZChhLnMsakosJ1Byb3BlcnR5VmFsdWUnLHRydWUpO3BCZChhLCRIZSl9XG5mdW5jdGlvbiBLcWUoKXtLcWU9Z2ViO0pxZT0kQyhnRSxZSGUsMjgsdHhlLDE1LDEpO0pxZVs5XT0zNTtKcWVbMTBdPTE5O0pxZVsxM109MTk7SnFlWzMyXT01MTtKcWVbMzNdPTQ5O0pxZVszNF09MzM7S25iKEpxZSwzNSwzOCw0OSk7SnFlWzM4XT0xO0tuYihKcWUsMzksNDUsNDkpO0tuYihKcWUsNDUsNDcsLTcxKTtKcWVbNDddPTQ5O0tuYihKcWUsNDgsNTgsLTcxKTtKcWVbNThdPTYxO0pxZVs1OV09NDk7SnFlWzYwXT0xO0pxZVs2MV09NDk7SnFlWzYyXT0zMztLbmIoSnFlLDYzLDY1LDQ5KTtLbmIoSnFlLDY1LDkxLC0zKTtLbmIoSnFlLDkxLDkzLDMzKTtKcWVbOTNdPTE7SnFlWzk0XT0zMztKcWVbOTVdPS0zO0pxZVs5Nl09MzM7S25iKEpxZSw5NywxMjMsLTMpO0tuYihKcWUsMTIzLDE4MywzMyk7SnFlWzE4M109LTg3O0tuYihKcWUsMTg0LDE5MiwzMyk7S25iKEpxZSwxOTIsMjE1LC0xOSk7SnFlWzIxNV09MzM7S25iKEpxZSwyMTYsMjQ3LC0xOSk7SnFlWzI0N109MzM7S25iKEpxZSwyNDgsMzA2LC0xOSk7S25iKEpxZSwzMDYsMzA4LDMzKTtLbmIoSnFlLDMwOCwzMTksLTE5KTtLbmIoSnFlLDMxOSwzMjEsMzMpO0tuYihKcWUsMzIxLDMyOSwtMTkpO0pxZVszMjldPTMzO0tuYihKcWUsMzMwLDM4MywtMTkpO0pxZVszODNdPTMzO0tuYihKcWUsMzg0LDQ1MiwtMTkpO0tuYihKcWUsNDUyLDQ2MSwzMyk7S25iKEpxZSw0NjEsNDk3LC0xOSk7S25iKEpxZSw0OTcsNTAwLDMzKTtLbmIoSnFlLDUwMCw1MDIsLTE5KTtLbmIoSnFlLDUwMiw1MDYsMzMpO0tuYihKcWUsNTA2LDUzNiwtMTkpO0tuYihKcWUsNTM2LDU5MiwzMyk7S25iKEpxZSw1OTIsNjgxLC0xOSk7S25iKEpxZSw2ODEsNjk5LDMzKTtLbmIoSnFlLDY5OSw3MDYsLTE5KTtLbmIoSnFlLDcwNiw3MjAsMzMpO0tuYihKcWUsNzIwLDcyMiwtODcpO0tuYihKcWUsNzIyLDc2OCwzMyk7S25iKEpxZSw3NjgsODM4LC04Nyk7S25iKEpxZSw4MzgsODY0LDMzKTtLbmIoSnFlLDg2NCw4NjYsLTg3KTtLbmIoSnFlLDg2Niw5MDIsMzMpO0pxZVs5MDJdPS0xOTtKcWVbOTAzXT0tODc7S25iKEpxZSw5MDQsOTA3LC0xOSk7SnFlWzkwN109MzM7SnFlWzkwOF09LTE5O0pxZVs5MDldPTMzO0tuYihKcWUsOTEwLDkzMCwtMTkpO0pxZVs5MzBdPTMzO0tuYihKcWUsOTMxLDk3NSwtMTkpO0pxZVs5NzVdPTMzO0tuYihKcWUsOTc2LDk4MywtMTkpO0tuYihKcWUsOTgzLDk4NiwzMyk7SnFlWzk4Nl09LTE5O0pxZVs5ODddPTMzO0pxZVs5ODhdPS0xOTtKcWVbOTg5XT0zMztKcWVbOTkwXT0tMTk7SnFlWzk5MV09MzM7SnFlWzk5Ml09LTE5O0pxZVs5OTNdPTMzO0tuYihKcWUsOTk0LDEwMTIsLTE5KTtLbmIoSnFlLDEwMTIsMTAyNSwzMyk7S25iKEpxZSwxMDI1LDEwMzcsLTE5KTtKcWVbMTAzN109MzM7S25iKEpxZSwxMDM4LDExMDQsLTE5KTtKcWVbMTEwNF09MzM7S25iKEpxZSwxMTA1LDExMTcsLTE5KTtKcWVbMTExN109MzM7S25iKEpxZSwxMTE4LDExNTQsLTE5KTtKcWVbMTE1NF09MzM7S25iKEpxZSwxMTU1LDExNTksLTg3KTtLbmIoSnFlLDExNTksMTE2OCwzMyk7S25iKEpxZSwxMTY4LDEyMjEsLTE5KTtLbmIoSnFlLDEyMjEsMTIyMywzMyk7S25iKEpxZSwxMjIzLDEyMjUsLTE5KTtLbmIoSnFlLDEyMjUsMTIyNywzMyk7S25iKEpxZSwxMjI3LDEyMjksLTE5KTtLbmIoSnFlLDEyMjksMTIzMiwzMyk7S25iKEpxZSwxMjMyLDEyNjAsLTE5KTtLbmIoSnFlLDEyNjAsMTI2MiwzMyk7S25iKEpxZSwxMjYyLDEyNzAsLTE5KTtLbmIoSnFlLDEyNzAsMTI3MiwzMyk7S25iKEpxZSwxMjcyLDEyNzQsLTE5KTtLbmIoSnFlLDEyNzQsMTMyOSwzMyk7S25iKEpxZSwxMzI5LDEzNjcsLTE5KTtLbmIoSnFlLDEzNjcsMTM2OSwzMyk7SnFlWzEzNjldPS0xOTtLbmIoSnFlLDEzNzAsMTM3NywzMyk7S25iKEpxZSwxMzc3LDE0MTUsLTE5KTtLbmIoSnFlLDE0MTUsMTQyNSwzMyk7S25iKEpxZSwxNDI1LDE0NDIsLTg3KTtKcWVbMTQ0Ml09MzM7S25iKEpxZSwxNDQzLDE0NjYsLTg3KTtKcWVbMTQ2Nl09MzM7S25iKEpxZSwxNDY3LDE0NzAsLTg3KTtKcWVbMTQ3MF09MzM7SnFlWzE0NzFdPS04NztKcWVbMTQ3Ml09MzM7S25iKEpxZSwxNDczLDE0NzUsLTg3KTtKcWVbMTQ3NV09MzM7SnFlWzE0NzZdPS04NztLbmIoSnFlLDE0NzcsMTQ4OCwzMyk7S25iKEpxZSwxNDg4LDE1MTUsLTE5KTtLbmIoSnFlLDE1MTUsMTUyMCwzMyk7S25iKEpxZSwxNTIwLDE1MjMsLTE5KTtLbmIoSnFlLDE1MjMsMTU2OSwzMyk7S25iKEpxZSwxNTY5LDE1OTUsLTE5KTtLbmIoSnFlLDE1OTUsMTYwMCwzMyk7SnFlWzE2MDBdPS04NztLbmIoSnFlLDE2MDEsMTYxMSwtMTkpO0tuYihKcWUsMTYxMSwxNjE5LC04Nyk7S25iKEpxZSwxNjE5LDE2MzIsMzMpO0tuYihKcWUsMTYzMiwxNjQyLC04Nyk7S25iKEpxZSwxNjQyLDE2NDgsMzMpO0pxZVsxNjQ4XT0tODc7S25iKEpxZSwxNjQ5LDE3MjAsLTE5KTtLbmIoSnFlLDE3MjAsMTcyMiwzMyk7S25iKEpxZSwxNzIyLDE3MjcsLTE5KTtKcWVbMTcyN109MzM7S25iKEpxZSwxNzI4LDE3NDMsLTE5KTtKcWVbMTc0M109MzM7S25iKEpxZSwxNzQ0LDE3NDgsLTE5KTtKcWVbMTc0OF09MzM7SnFlWzE3NDldPS0xOTtLbmIoSnFlLDE3NTAsMTc2NSwtODcpO0tuYihKcWUsMTc2NSwxNzY3LC0xOSk7S25iKEpxZSwxNzY3LDE3NjksLTg3KTtKcWVbMTc2OV09MzM7S25iKEpxZSwxNzcwLDE3NzQsLTg3KTtLbmIoSnFlLDE3NzQsMTc3NiwzMyk7S25iKEpxZSwxNzc2LDE3ODYsLTg3KTtLbmIoSnFlLDE3ODYsMjMwNSwzMyk7S25iKEpxZSwyMzA1LDIzMDgsLTg3KTtKcWVbMjMwOF09MzM7S25iKEpxZSwyMzA5LDIzNjIsLTE5KTtLbmIoSnFlLDIzNjIsMjM2NCwzMyk7SnFlWzIzNjRdPS04NztKcWVbMjM2NV09LTE5O0tuYihKcWUsMjM2NiwyMzgyLC04Nyk7S25iKEpxZSwyMzgyLDIzODUsMzMpO0tuYihKcWUsMjM4NSwyMzg5LC04Nyk7S25iKEpxZSwyMzg5LDIzOTIsMzMpO0tuYihKcWUsMjM5MiwyNDAyLC0xOSk7S25iKEpxZSwyNDAyLDI0MDQsLTg3KTtLbmIoSnFlLDI0MDQsMjQwNiwzMyk7S25iKEpxZSwyNDA2LDI0MTYsLTg3KTtLbmIoSnFlLDI0MTYsMjQzMywzMyk7S25iKEpxZSwyNDMzLDI0MzYsLTg3KTtKcWVbMjQzNl09MzM7S25iKEpxZSwyNDM3LDI0NDUsLTE5KTtLbmIoSnFlLDI0NDUsMjQ0NywzMyk7S25iKEpxZSwyNDQ3LDI0NDksLTE5KTtLbmIoSnFlLDI0NDksMjQ1MSwzMyk7S25iKEpxZSwyNDUxLDI0NzMsLTE5KTtKcWVbMjQ3M109MzM7S25iKEpxZSwyNDc0LDI0ODEsLTE5KTtKcWVbMjQ4MV09MzM7SnFlWzI0ODJdPS0xOTtLbmIoSnFlLDI0ODMsMjQ4NiwzMyk7S25iKEpxZSwyNDg2LDI0OTAsLTE5KTtLbmIoSnFlLDI0OTAsMjQ5MiwzMyk7SnFlWzI0OTJdPS04NztKcWVbMjQ5M109MzM7S25iKEpxZSwyNDk0LDI1MDEsLTg3KTtLbmIoSnFlLDI1MDEsMjUwMywzMyk7S25iKEpxZSwyNTAzLDI1MDUsLTg3KTtLbmIoSnFlLDI1MDUsMjUwNywzMyk7S25iKEpxZSwyNTA3LDI1MTAsLTg3KTtLbmIoSnFlLDI1MTAsMjUxOSwzMyk7SnFlWzI1MTldPS04NztLbmIoSnFlLDI1MjAsMjUyNCwzMyk7S25iKEpxZSwyNTI0LDI1MjYsLTE5KTtKcWVbMjUyNl09MzM7S25iKEpxZSwyNTI3LDI1MzAsLTE5KTtLbmIoSnFlLDI1MzAsMjUzMiwtODcpO0tuYihKcWUsMjUzMiwyNTM0LDMzKTtLbmIoSnFlLDI1MzQsMjU0NCwtODcpO0tuYihKcWUsMjU0NCwyNTQ2LC0xOSk7S25iKEpxZSwyNTQ2LDI1NjIsMzMpO0pxZVsyNTYyXT0tODc7S25iKEpxZSwyNTYzLDI1NjUsMzMpO0tuYihKcWUsMjU2NSwyNTcxLC0xOSk7S25iKEpxZSwyNTcxLDI1NzUsMzMpO0tuYihKcWUsMjU3NSwyNTc3LC0xOSk7S25iKEpxZSwyNTc3LDI1NzksMzMpO0tuYihKcWUsMjU3OSwyNjAxLC0xOSk7SnFlWzI2MDFdPTMzO0tuYihKcWUsMjYwMiwyNjA5LC0xOSk7SnFlWzI2MDldPTMzO0tuYihKcWUsMjYxMCwyNjEyLC0xOSk7SnFlWzI2MTJdPTMzO0tuYihKcWUsMjYxMywyNjE1LC0xOSk7SnFlWzI2MTVdPTMzO0tuYihKcWUsMjYxNiwyNjE4LC0xOSk7S25iKEpxZSwyNjE4LDI2MjAsMzMpO0pxZVsyNjIwXT0tODc7SnFlWzI2MjFdPTMzO0tuYihKcWUsMjYyMiwyNjI3LC04Nyk7S25iKEpxZSwyNjI3LDI2MzEsMzMpO0tuYihKcWUsMjYzMSwyNjMzLC04Nyk7S25iKEpxZSwyNjMzLDI2MzUsMzMpO0tuYihKcWUsMjYzNSwyNjM4LC04Nyk7S25iKEpxZSwyNjM4LDI2NDksMzMpO0tuYihKcWUsMjY0OSwyNjUzLC0xOSk7SnFlWzI2NTNdPTMzO0pxZVsyNjU0XT0tMTk7S25iKEpxZSwyNjU1LDI2NjIsMzMpO0tuYihKcWUsMjY2MiwyNjc0LC04Nyk7S25iKEpxZSwyNjc0LDI2NzcsLTE5KTtLbmIoSnFlLDI2NzcsMjY4OSwzMyk7S25iKEpxZSwyNjg5LDI2OTIsLTg3KTtKcWVbMjY5Ml09MzM7S25iKEpxZSwyNjkzLDI3MDAsLTE5KTtKcWVbMjcwMF09MzM7SnFlWzI3MDFdPS0xOTtKcWVbMjcwMl09MzM7S25iKEpxZSwyNzAzLDI3MDYsLTE5KTtKcWVbMjcwNl09MzM7S25iKEpxZSwyNzA3LDI3MjksLTE5KTtKcWVbMjcyOV09MzM7S25iKEpxZSwyNzMwLDI3MzcsLTE5KTtKcWVbMjczN109MzM7S25iKEpxZSwyNzM4LDI3NDAsLTE5KTtKcWVbMjc0MF09MzM7S25iKEpxZSwyNzQxLDI3NDYsLTE5KTtLbmIoSnFlLDI3NDYsMjc0OCwzMyk7SnFlWzI3NDhdPS04NztKcWVbMjc0OV09LTE5O0tuYihKcWUsMjc1MCwyNzU4LC04Nyk7SnFlWzI3NThdPTMzO0tuYihKcWUsMjc1OSwyNzYyLC04Nyk7SnFlWzI3NjJdPTMzO0tuYihKcWUsMjc2MywyNzY2LC04Nyk7S25iKEpxZSwyNzY2LDI3ODQsMzMpO0pxZVsyNzg0XT0tMTk7S25iKEpxZSwyNzg1LDI3OTAsMzMpO0tuYihKcWUsMjc5MCwyODAwLC04Nyk7S25iKEpxZSwyODAwLDI4MTcsMzMpO0tuYihKcWUsMjgxNywyODIwLC04Nyk7SnFlWzI4MjBdPTMzO0tuYihKcWUsMjgyMSwyODI5LC0xOSk7S25iKEpxZSwyODI5LDI4MzEsMzMpO0tuYihKcWUsMjgzMSwyODMzLC0xOSk7S25iKEpxZSwyODMzLDI4MzUsMzMpO0tuYihKcWUsMjgzNSwyODU3LC0xOSk7SnFlWzI4NTddPTMzO0tuYihKcWUsMjg1OCwyODY1LC0xOSk7SnFlWzI4NjVdPTMzO0tuYihKcWUsMjg2NiwyODY4LC0xOSk7S25iKEpxZSwyODY4LDI4NzAsMzMpO0tuYihKcWUsMjg3MCwyODc0LC0xOSk7S25iKEpxZSwyODc0LDI4NzYsMzMpO0pxZVsyODc2XT0tODc7SnFlWzI4NzddPS0xOTtLbmIoSnFlLDI4NzgsMjg4NCwtODcpO0tuYihKcWUsMjg4NCwyODg3LDMzKTtLbmIoSnFlLDI4ODcsMjg4OSwtODcpO0tuYihKcWUsMjg4OSwyODkxLDMzKTtLbmIoSnFlLDI4OTEsMjg5NCwtODcpO0tuYihKcWUsMjg5NCwyOTAyLDMzKTtLbmIoSnFlLDI5MDIsMjkwNCwtODcpO0tuYihKcWUsMjkwNCwyOTA4LDMzKTtLbmIoSnFlLDI5MDgsMjkxMCwtMTkpO0pxZVsyOTEwXT0zMztLbmIoSnFlLDI5MTEsMjkxNCwtMTkpO0tuYihKcWUsMjkxNCwyOTE4LDMzKTtLbmIoSnFlLDI5MTgsMjkyOCwtODcpO0tuYihKcWUsMjkyOCwyOTQ2LDMzKTtLbmIoSnFlLDI5NDYsMjk0OCwtODcpO0pxZVsyOTQ4XT0zMztLbmIoSnFlLDI5NDksMjk1NSwtMTkpO0tuYihKcWUsMjk1NSwyOTU4LDMzKTtLbmIoSnFlLDI5NTgsMjk2MSwtMTkpO0pxZVsyOTYxXT0zMztLbmIoSnFlLDI5NjIsMjk2NiwtMTkpO0tuYihKcWUsMjk2NiwyOTY5LDMzKTtLbmIoSnFlLDI5NjksMjk3MSwtMTkpO0pxZVsyOTcxXT0zMztKcWVbMjk3Ml09LTE5O0pxZVsyOTczXT0zMztLbmIoSnFlLDI5NzQsMjk3NiwtMTkpO0tuYihKcWUsMjk3NiwyOTc5LDMzKTtLbmIoSnFlLDI5NzksMjk4MSwtMTkpO0tuYihKcWUsMjk4MSwyOTg0LDMzKTtLbmIoSnFlLDI5ODQsMjk4NywtMTkpO0tuYihKcWUsMjk4NywyOTkwLDMzKTtLbmIoSnFlLDI5OTAsMjk5OCwtMTkpO0pxZVsyOTk4XT0zMztLbmIoSnFlLDI5OTksMzAwMiwtMTkpO0tuYihKcWUsMzAwMiwzMDA2LDMzKTtLbmIoSnFlLDMwMDYsMzAxMSwtODcpO0tuYihKcWUsMzAxMSwzMDE0LDMzKTtLbmIoSnFlLDMwMTQsMzAxNywtODcpO0pxZVszMDE3XT0zMztLbmIoSnFlLDMwMTgsMzAyMiwtODcpO0tuYihKcWUsMzAyMiwzMDMxLDMzKTtKcWVbMzAzMV09LTg3O0tuYihKcWUsMzAzMiwzMDQ3LDMzKTtLbmIoSnFlLDMwNDcsMzA1NiwtODcpO0tuYihKcWUsMzA1NiwzMDczLDMzKTtLbmIoSnFlLDMwNzMsMzA3NiwtODcpO0pxZVszMDc2XT0zMztLbmIoSnFlLDMwNzcsMzA4NSwtMTkpO0pxZVszMDg1XT0zMztLbmIoSnFlLDMwODYsMzA4OSwtMTkpO0pxZVszMDg5XT0zMztLbmIoSnFlLDMwOTAsMzExMywtMTkpO0pxZVszMTEzXT0zMztLbmIoSnFlLDMxMTQsMzEyNCwtMTkpO0pxZVszMTI0XT0zMztLbmIoSnFlLDMxMjUsMzEzMCwtMTkpO0tuYihKcWUsMzEzMCwzMTM0LDMzKTtLbmIoSnFlLDMxMzQsMzE0MSwtODcpO0pxZVszMTQxXT0zMztLbmIoSnFlLDMxNDIsMzE0NSwtODcpO0pxZVszMTQ1XT0zMztLbmIoSnFlLDMxNDYsMzE1MCwtODcpO0tuYihKcWUsMzE1MCwzMTU3LDMzKTtLbmIoSnFlLDMxNTcsMzE1OSwtODcpO0tuYihKcWUsMzE1OSwzMTY4LDMzKTtLbmIoSnFlLDMxNjgsMzE3MCwtMTkpO0tuYihKcWUsMzE3MCwzMTc0LDMzKTtLbmIoSnFlLDMxNzQsMzE4NCwtODcpO0tuYihKcWUsMzE4NCwzMjAyLDMzKTtLbmIoSnFlLDMyMDIsMzIwNCwtODcpO0pxZVszMjA0XT0zMztLbmIoSnFlLDMyMDUsMzIxMywtMTkpO0pxZVszMjEzXT0zMztLbmIoSnFlLDMyMTQsMzIxNywtMTkpO0pxZVszMjE3XT0zMztLbmIoSnFlLDMyMTgsMzI0MSwtMTkpO0pxZVszMjQxXT0zMztLbmIoSnFlLDMyNDIsMzI1MiwtMTkpO0pxZVszMjUyXT0zMztLbmIoSnFlLDMyNTMsMzI1OCwtMTkpO0tuYihKcWUsMzI1OCwzMjYyLDMzKTtLbmIoSnFlLDMyNjIsMzI2OSwtODcpO0pxZVszMjY5XT0zMztLbmIoSnFlLDMyNzAsMzI3MywtODcpO0pxZVszMjczXT0zMztLbmIoSnFlLDMyNzQsMzI3OCwtODcpO0tuYihKcWUsMzI3OCwzMjg1LDMzKTtLbmIoSnFlLDMyODUsMzI4NywtODcpO0tuYihKcWUsMzI4NywzMjk0LDMzKTtKcWVbMzI5NF09LTE5O0pxZVszMjk1XT0zMztLbmIoSnFlLDMyOTYsMzI5OCwtMTkpO0tuYihKcWUsMzI5OCwzMzAyLDMzKTtLbmIoSnFlLDMzMDIsMzMxMiwtODcpO0tuYihKcWUsMzMxMiwzMzMwLDMzKTtLbmIoSnFlLDMzMzAsMzMzMiwtODcpO0pxZVszMzMyXT0zMztLbmIoSnFlLDMzMzMsMzM0MSwtMTkpO0pxZVszMzQxXT0zMztLbmIoSnFlLDMzNDIsMzM0NSwtMTkpO0pxZVszMzQ1XT0zMztLbmIoSnFlLDMzNDYsMzM2OSwtMTkpO0pxZVszMzY5XT0zMztLbmIoSnFlLDMzNzAsMzM4NiwtMTkpO0tuYihKcWUsMzM4NiwzMzkwLDMzKTtLbmIoSnFlLDMzOTAsMzM5NiwtODcpO0tuYihKcWUsMzM5NiwzMzk4LDMzKTtLbmIoSnFlLDMzOTgsMzQwMSwtODcpO0pxZVszNDAxXT0zMztLbmIoSnFlLDM0MDIsMzQwNiwtODcpO0tuYihKcWUsMzQwNiwzNDE1LDMzKTtKcWVbMzQxNV09LTg3O0tuYihKcWUsMzQxNiwzNDI0LDMzKTtLbmIoSnFlLDM0MjQsMzQyNiwtMTkpO0tuYihKcWUsMzQyNiwzNDMwLDMzKTtLbmIoSnFlLDM0MzAsMzQ0MCwtODcpO0tuYihKcWUsMzQ0MCwzNTg1LDMzKTtLbmIoSnFlLDM1ODUsMzYzMSwtMTkpO0pxZVszNjMxXT0zMztKcWVbMzYzMl09LTE5O0pxZVszNjMzXT0tODc7S25iKEpxZSwzNjM0LDM2MzYsLTE5KTtLbmIoSnFlLDM2MzYsMzY0MywtODcpO0tuYihKcWUsMzY0MywzNjQ4LDMzKTtLbmIoSnFlLDM2NDgsMzY1NCwtMTkpO0tuYihKcWUsMzY1NCwzNjYzLC04Nyk7SnFlWzM2NjNdPTMzO0tuYihKcWUsMzY2NCwzNjc0LC04Nyk7S25iKEpxZSwzNjc0LDM3MTMsMzMpO0tuYihKcWUsMzcxMywzNzE1LC0xOSk7SnFlWzM3MTVdPTMzO0pxZVszNzE2XT0tMTk7S25iKEpxZSwzNzE3LDM3MTksMzMpO0tuYihKcWUsMzcxOSwzNzIxLC0xOSk7SnFlWzM3MjFdPTMzO0pxZVszNzIyXT0tMTk7S25iKEpxZSwzNzIzLDM3MjUsMzMpO0pxZVszNzI1XT0tMTk7S25iKEpxZSwzNzI2LDM3MzIsMzMpO0tuYihKcWUsMzczMiwzNzM2LC0xOSk7SnFlWzM3MzZdPTMzO0tuYihKcWUsMzczNywzNzQ0LC0xOSk7SnFlWzM3NDRdPTMzO0tuYihKcWUsMzc0NSwzNzQ4LC0xOSk7SnFlWzM3NDhdPTMzO0pxZVszNzQ5XT0tMTk7SnFlWzM3NTBdPTMzO0pxZVszNzUxXT0tMTk7S25iKEpxZSwzNzUyLDM3NTQsMzMpO0tuYihKcWUsMzc1NCwzNzU2LC0xOSk7SnFlWzM3NTZdPTMzO0tuYihKcWUsMzc1NywzNzU5LC0xOSk7SnFlWzM3NTldPTMzO0pxZVszNzYwXT0tMTk7SnFlWzM3NjFdPS04NztLbmIoSnFlLDM3NjIsMzc2NCwtMTkpO0tuYihKcWUsMzc2NCwzNzcwLC04Nyk7SnFlWzM3NzBdPTMzO0tuYihKcWUsMzc3MSwzNzczLC04Nyk7SnFlWzM3NzNdPS0xOTtLbmIoSnFlLDM3NzQsMzc3NiwzMyk7S25iKEpxZSwzNzc2LDM3ODEsLTE5KTtKcWVbMzc4MV09MzM7SnFlWzM3ODJdPS04NztKcWVbMzc4M109MzM7S25iKEpxZSwzNzg0LDM3OTAsLTg3KTtLbmIoSnFlLDM3OTAsMzc5MiwzMyk7S25iKEpxZSwzNzkyLDM4MDIsLTg3KTtLbmIoSnFlLDM4MDIsMzg2NCwzMyk7S25iKEpxZSwzODY0LDM4NjYsLTg3KTtLbmIoSnFlLDM4NjYsMzg3MiwzMyk7S25iKEpxZSwzODcyLDM4ODIsLTg3KTtLbmIoSnFlLDM4ODIsMzg5MywzMyk7SnFlWzM4OTNdPS04NztKcWVbMzg5NF09MzM7SnFlWzM4OTVdPS04NztKcWVbMzg5Nl09MzM7SnFlWzM4OTddPS04NztLbmIoSnFlLDM4OTgsMzkwMiwzMyk7S25iKEpxZSwzOTAyLDM5MDQsLTg3KTtLbmIoSnFlLDM5MDQsMzkxMiwtMTkpO0pxZVszOTEyXT0zMztLbmIoSnFlLDM5MTMsMzk0NiwtMTkpO0tuYihKcWUsMzk0NiwzOTUzLDMzKTtLbmIoSnFlLDM5NTMsMzk3MywtODcpO0pxZVszOTczXT0zMztLbmIoSnFlLDM5NzQsMzk4MCwtODcpO0tuYihKcWUsMzk4MCwzOTg0LDMzKTtLbmIoSnFlLDM5ODQsMzk5MCwtODcpO0pxZVszOTkwXT0zMztKcWVbMzk5MV09LTg3O0pxZVszOTkyXT0zMztLbmIoSnFlLDM5OTMsNDAxNCwtODcpO0tuYihKcWUsNDAxNCw0MDE3LDMzKTtLbmIoSnFlLDQwMTcsNDAyNCwtODcpO0pxZVs0MDI0XT0zMztKcWVbNDAyNV09LTg3O0tuYihKcWUsNDAyNiw0MjU2LDMzKTtLbmIoSnFlLDQyNTYsNDI5NCwtMTkpO0tuYihKcWUsNDI5NCw0MzA0LDMzKTtLbmIoSnFlLDQzMDQsNDM0MywtMTkpO0tuYihKcWUsNDM0Myw0MzUyLDMzKTtKcWVbNDM1Ml09LTE5O0pxZVs0MzUzXT0zMztLbmIoSnFlLDQzNTQsNDM1NiwtMTkpO0pxZVs0MzU2XT0zMztLbmIoSnFlLDQzNTcsNDM2MCwtMTkpO0pxZVs0MzYwXT0zMztKcWVbNDM2MV09LTE5O0pxZVs0MzYyXT0zMztLbmIoSnFlLDQzNjMsNDM2NSwtMTkpO0pxZVs0MzY1XT0zMztLbmIoSnFlLDQzNjYsNDM3MSwtMTkpO0tuYihKcWUsNDM3MSw0NDEyLDMzKTtKcWVbNDQxMl09LTE5O0pxZVs0NDEzXT0zMztKcWVbNDQxNF09LTE5O0pxZVs0NDE1XT0zMztKcWVbNDQxNl09LTE5O0tuYihKcWUsNDQxNyw0NDI4LDMzKTtKcWVbNDQyOF09LTE5O0pxZVs0NDI5XT0zMztKcWVbNDQzMF09LTE5O0pxZVs0NDMxXT0zMztKcWVbNDQzMl09LTE5O0tuYihKcWUsNDQzMyw0NDM2LDMzKTtLbmIoSnFlLDQ0MzYsNDQzOCwtMTkpO0tuYihKcWUsNDQzOCw0NDQxLDMzKTtKcWVbNDQ0MV09LTE5O0tuYihKcWUsNDQ0Miw0NDQ3LDMzKTtLbmIoSnFlLDQ0NDcsNDQ1MCwtMTkpO0pxZVs0NDUwXT0zMztKcWVbNDQ1MV09LTE5O0pxZVs0NDUyXT0zMztKcWVbNDQ1M109LTE5O0pxZVs0NDU0XT0zMztKcWVbNDQ1NV09LTE5O0pxZVs0NDU2XT0zMztKcWVbNDQ1N109LTE5O0tuYihKcWUsNDQ1OCw0NDYxLDMzKTtLbmIoSnFlLDQ0NjEsNDQ2MywtMTkpO0tuYihKcWUsNDQ2Myw0NDY2LDMzKTtLbmIoSnFlLDQ0NjYsNDQ2OCwtMTkpO0pxZVs0NDY4XT0zMztKcWVbNDQ2OV09LTE5O0tuYihKcWUsNDQ3MCw0NTEwLDMzKTtKcWVbNDUxMF09LTE5O0tuYihKcWUsNDUxMSw0NTIwLDMzKTtKcWVbNDUyMF09LTE5O0tuYihKcWUsNDUyMSw0NTIzLDMzKTtKcWVbNDUyM109LTE5O0tuYihKcWUsNDUyNCw0NTI2LDMzKTtLbmIoSnFlLDQ1MjYsNDUyOCwtMTkpO0tuYihKcWUsNDUyOCw0NTM1LDMzKTtLbmIoSnFlLDQ1MzUsNDUzNywtMTkpO0pxZVs0NTM3XT0zMztKcWVbNDUzOF09LTE5O0pxZVs0NTM5XT0zMztLbmIoSnFlLDQ1NDAsNDU0NywtMTkpO0tuYihKcWUsNDU0Nyw0NTg3LDMzKTtKcWVbNDU4N109LTE5O0tuYihKcWUsNDU4OCw0NTkyLDMzKTtKcWVbNDU5Ml09LTE5O0tuYihKcWUsNDU5Myw0NjAxLDMzKTtKcWVbNDYwMV09LTE5O0tuYihKcWUsNDYwMiw3NjgwLDMzKTtLbmIoSnFlLDc2ODAsNzgzNiwtMTkpO0tuYihKcWUsNzgzNiw3ODQwLDMzKTtLbmIoSnFlLDc4NDAsNzkzMCwtMTkpO0tuYihKcWUsNzkzMCw3OTM2LDMzKTtLbmIoSnFlLDc5MzYsNzk1OCwtMTkpO0tuYihKcWUsNzk1OCw3OTYwLDMzKTtLbmIoSnFlLDc5NjAsNzk2NiwtMTkpO0tuYihKcWUsNzk2Niw3OTY4LDMzKTtLbmIoSnFlLDc5NjgsODAwNiwtMTkpO0tuYihKcWUsODAwNiw4MDA4LDMzKTtLbmIoSnFlLDgwMDgsODAxNCwtMTkpO0tuYihKcWUsODAxNCw4MDE2LDMzKTtLbmIoSnFlLDgwMTYsODAyNCwtMTkpO0pxZVs4MDI0XT0zMztKcWVbODAyNV09LTE5O0pxZVs4MDI2XT0zMztKcWVbODAyN109LTE5O0pxZVs4MDI4XT0zMztKcWVbODAyOV09LTE5O0pxZVs4MDMwXT0zMztLbmIoSnFlLDgwMzEsODA2MiwtMTkpO0tuYihKcWUsODA2Miw4MDY0LDMzKTtLbmIoSnFlLDgwNjQsODExNywtMTkpO0pxZVs4MTE3XT0zMztLbmIoSnFlLDgxMTgsODEyNSwtMTkpO0pxZVs4MTI1XT0zMztKcWVbODEyNl09LTE5O0tuYihKcWUsODEyNyw4MTMwLDMzKTtLbmIoSnFlLDgxMzAsODEzMywtMTkpO0pxZVs4MTMzXT0zMztLbmIoSnFlLDgxMzQsODE0MSwtMTkpO0tuYihKcWUsODE0MSw4MTQ0LDMzKTtLbmIoSnFlLDgxNDQsODE0OCwtMTkpO0tuYihKcWUsODE0OCw4MTUwLDMzKTtLbmIoSnFlLDgxNTAsODE1NiwtMTkpO0tuYihKcWUsODE1Niw4MTYwLDMzKTtLbmIoSnFlLDgxNjAsODE3MywtMTkpO0tuYihKcWUsODE3Myw4MTc4LDMzKTtLbmIoSnFlLDgxNzgsODE4MSwtMTkpO0pxZVs4MTgxXT0zMztLbmIoSnFlLDgxODIsODE4OSwtMTkpO0tuYihKcWUsODE4OSw4NDAwLDMzKTtLbmIoSnFlLDg0MDAsODQxMywtODcpO0tuYihKcWUsODQxMyw4NDE3LDMzKTtKcWVbODQxN109LTg3O0tuYihKcWUsODQxOCw4NDg2LDMzKTtKcWVbODQ4Nl09LTE5O0tuYihKcWUsODQ4Nyw4NDkwLDMzKTtLbmIoSnFlLDg0OTAsODQ5MiwtMTkpO0tuYihKcWUsODQ5Miw4NDk0LDMzKTtKcWVbODQ5NF09LTE5O0tuYihKcWUsODQ5NSw4NTc2LDMzKTtLbmIoSnFlLDg1NzYsODU3OSwtMTkpO0tuYihKcWUsODU3OSwxMjI5MywzMyk7SnFlWzEyMjkzXT0tODc7SnFlWzEyMjk0XT0zMztKcWVbMTIyOTVdPS0xOTtLbmIoSnFlLDEyMjk2LDEyMzIxLDMzKTtLbmIoSnFlLDEyMzIxLDEyMzMwLC0xOSk7S25iKEpxZSwxMjMzMCwxMjMzNiwtODcpO0pxZVsxMjMzNl09MzM7S25iKEpxZSwxMjMzNywxMjM0MiwtODcpO0tuYihKcWUsMTIzNDIsMTIzNTMsMzMpO0tuYihKcWUsMTIzNTMsMTI0MzcsLTE5KTtLbmIoSnFlLDEyNDM3LDEyNDQxLDMzKTtLbmIoSnFlLDEyNDQxLDEyNDQzLC04Nyk7S25iKEpxZSwxMjQ0MywxMjQ0NSwzMyk7S25iKEpxZSwxMjQ0NSwxMjQ0NywtODcpO0tuYihKcWUsMTI0NDcsMTI0NDksMzMpO0tuYihKcWUsMTI0NDksMTI1MzksLTE5KTtKcWVbMTI1MzldPTMzO0tuYihKcWUsMTI1NDAsMTI1NDMsLTg3KTtLbmIoSnFlLDEyNTQzLDEyNTQ5LDMzKTtLbmIoSnFlLDEyNTQ5LDEyNTg5LC0xOSk7S25iKEpxZSwxMjU4OSwxOTk2OCwzMyk7S25iKEpxZSwxOTk2OCw0MDg3MCwtMTkpO0tuYihKcWUsNDA4NzAsNDQwMzIsMzMpO0tuYihKcWUsNDQwMzIsNTUyMDQsLTE5KTtLbmIoSnFlLDU1MjA0LHV4ZSwzMyk7S25iKEpxZSw1NzM0NCw2NTUzNCwzMyl9XG5mdW5jdGlvbiBaYWUoYSl7dmFyIGIsYyxkLGUsZixnLGg7aWYoYS5oYilyZXR1cm47YS5oYj10cnVlO1BBZChhLCdlY29yZScpO0NCZChhLCdlY29yZScpO0RCZChhLEFLZSk7ZUJkKGEuZmIsJ0UnKTtlQmQoYS5MLCdUJyk7ZUJkKGEuUCwnSycpO2VCZChhLlAsJ1YnKTtlQmQoYS5jYiwnRScpO1dHZCh6WWQoYS5iKSxhLmJiKTtXR2QoellkKGEuYSksYS5RKTtXR2QoellkKGEubyksYS5wKTtXR2QoellkKGEucCksYS5SKTtXR2QoellkKGEucSksYS5wKTtXR2QoellkKGEudiksYS5xKTtXR2QoellkKGEudyksYS5SKTtXR2QoellkKGEuQiksYS5RKTtXR2QoellkKGEuUiksYS5RKTtXR2QoellkKGEuVCksYS5lYik7V0dkKHpZZChhLlUpLGEuUik7V0dkKHpZZChhLlYpLGEuZWIpO1dHZCh6WWQoYS5XKSxhLmJiKTtXR2QoellkKGEuYmIpLGEuZWIpO1dHZCh6WWQoYS5lYiksYS5SKTtXR2QoellkKGEuZGIpLGEuUik7dkJkKGEuYixnNyxSSmUsZmFsc2UsZmFsc2UsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5iKSwwKSwzNSksYS5lLCdpRCcsbnVsbCwwLDEsZzcsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLmIpLDEpLDE5KSxhLnEsbnVsbCwnZUF0dHJpYnV0ZVR5cGUnLDEsMSxnNyx0cnVlLHRydWUsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlKTt2QmQoYS5hLGY3LE9KZSxmYWxzZSxmYWxzZSx0cnVlKTt0QmQoUkQoUUhkKHhZZChhLmEpLDApLDM1KSxhLl8sYkllLG51bGwsMCwxLGY3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5hKSwxKSwxOSksYS5hYixudWxsLCdkZXRhaWxzJywwLC0xLGY3LGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5hKSwyKSwxOSksYS5RLFJEKFFIZCh4WWQoYS5RKSwwKSwxOSksJ2VNb2RlbEVsZW1lbnQnLDAsMSxmNyx0cnVlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuYSksMyksMTkpLGEuUyxudWxsLCdjb250ZW50cycsMCwtMSxmNyxmYWxzZSxmYWxzZSx0cnVlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuYSksNCksMTkpLGEuUyxudWxsLCdyZWZlcmVuY2VzJywwLC0xLGY3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSk7dkJkKGEubyxoNywnRUNsYXNzJyxmYWxzZSxmYWxzZSx0cnVlKTt0QmQoUkQoUUhkKHhZZChhLm8pLDApLDM1KSxhLmUsJ2Fic3RyYWN0JyxudWxsLDAsMSxoNyxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UpO3RCZChSRChRSGQoeFlkKGEubyksMSksMzUpLGEuZSwnaW50ZXJmYWNlJyxudWxsLDAsMSxoNyxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEubyksMiksMTkpLGEubyxudWxsLCdlU3VwZXJUeXBlcycsMCwtMSxoNyxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5vKSwzKSwxOSksYS5ULFJEKFFIZCh4WWQoYS5UKSwwKSwxOSksJ2VPcGVyYXRpb25zJywwLC0xLGg3LGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5vKSw0KSwxOSksYS5iLG51bGwsJ2VBbGxBdHRyaWJ1dGVzJywwLC0xLGg3LHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEubyksNSksMTkpLGEuVyxudWxsLCdlQWxsUmVmZXJlbmNlcycsMCwtMSxoNyx0cnVlLHRydWUsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlKTt6QmQoUkQoUUhkKHhZZChhLm8pLDYpLDE5KSxhLlcsbnVsbCwnZVJlZmVyZW5jZXMnLDAsLTEsaDcsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSk7ekJkKFJEKFFIZCh4WWQoYS5vKSw3KSwxOSksYS5iLG51bGwsJ2VBdHRyaWJ1dGVzJywwLC0xLGg3LHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEubyksOCksMTkpLGEuVyxudWxsLCdlQWxsQ29udGFpbm1lbnRzJywwLC0xLGg3LHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEubyksOSksMTkpLGEuVCxudWxsLCdlQWxsT3BlcmF0aW9ucycsMCwtMSxoNyx0cnVlLHRydWUsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlKTt6QmQoUkQoUUhkKHhZZChhLm8pLDEwKSwxOSksYS5iYixudWxsLCdlQWxsU3RydWN0dXJhbEZlYXR1cmVzJywwLC0xLGg3LHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEubyksMTEpLDE5KSxhLm8sbnVsbCwnZUFsbFN1cGVyVHlwZXMnLDAsLTEsaDcsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSk7ekJkKFJEKFFIZCh4WWQoYS5vKSwxMiksMTkpLGEuYixudWxsLCdlSURBdHRyaWJ1dGUnLDAsMSxoNyx0cnVlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSk7ekJkKFJEKFFIZCh4WWQoYS5vKSwxMyksMTkpLGEuYmIsUkQoUUhkKHhZZChhLmJiKSw3KSwxOSksJ2VTdHJ1Y3R1cmFsRmVhdHVyZXMnLDAsLTEsaDcsZmFsc2UsZmFsc2UsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLm8pLDE0KSwxOSksYS5ILG51bGwsJ2VHZW5lcmljU3VwZXJUeXBlcycsMCwtMSxoNyxmYWxzZSxmYWxzZSx0cnVlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5vKSwxNSksMTkpLGEuSCxudWxsLCdlQWxsR2VuZXJpY1N1cGVyVHlwZXMnLDAsLTEsaDcsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSk7aD15QmQoUkQoUUhkKHVZZChhLm8pLDApLDYyKSxhLmUsJ2lzU3VwZXJUeXBlT2YnKTtjQmQoaCxhLm8sJ3NvbWVDbGFzcycpO3lCZChSRChRSGQodVlkKGEubyksMSksNjIpLGEuSSwnZ2V0RmVhdHVyZUNvdW50Jyk7aD15QmQoUkQoUUhkKHVZZChhLm8pLDIpLDYyKSxhLmJiLEVLZSk7Y0JkKGgsYS5JLCdmZWF0dXJlSUQnKTtoPXlCZChSRChRSGQodVlkKGEubyksMyksNjIpLGEuSSxGS2UpO2NCZChoLGEuYmIsR0tlKTtoPXlCZChSRChRSGQodVlkKGEubyksNCksNjIpLGEuYmIsRUtlKTtjQmQoaCxhLl8sJ2ZlYXR1cmVOYW1lJyk7eUJkKFJEKFFIZCh1WWQoYS5vKSw1KSw2MiksYS5JLCdnZXRPcGVyYXRpb25Db3VudCcpO2g9eUJkKFJEKFFIZCh1WWQoYS5vKSw2KSw2MiksYS5ULCdnZXRFT3BlcmF0aW9uJyk7Y0JkKGgsYS5JLCdvcGVyYXRpb25JRCcpO2g9eUJkKFJEKFFIZCh1WWQoYS5vKSw3KSw2MiksYS5JLEhLZSk7Y0JkKGgsYS5ULElLZSk7aD15QmQoUkQoUUhkKHVZZChhLm8pLDgpLDYyKSxhLlQsJ2dldE92ZXJyaWRlJyk7Y0JkKGgsYS5ULElLZSk7aD15QmQoUkQoUUhkKHVZZChhLm8pLDkpLDYyKSxhLkgsJ2dldEZlYXR1cmVUeXBlJyk7Y0JkKGgsYS5iYixHS2UpO3ZCZChhLnAsaTcsU0plLHRydWUsZmFsc2UsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5wKSwwKSwzNSksYS5fLCdpbnN0YW5jZUNsYXNzTmFtZScsbnVsbCwwLDEsaTcsZmFsc2UsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSxmYWxzZSk7Yj1sQmQoYS5MKTtjPVZhZSgpO1dHZCgoIWIuZCYmKGIuZD1uZXcgWFpkKG83LGIsMSkpLGIuZCksYyk7dUJkKFJEKFFIZCh4WWQoYS5wKSwxKSwzNSksYiwnaW5zdGFuY2VDbGFzcycsaTcsdHJ1ZSx0cnVlLGZhbHNlLHRydWUpO3RCZChSRChRSGQoeFlkKGEucCksMiksMzUpLGEuTSxKS2UsbnVsbCwwLDEsaTcsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5wKSwzKSwzNSksYS5fLCdpbnN0YW5jZVR5cGVOYW1lJyxudWxsLDAsMSxpNyxmYWxzZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLnApLDQpLDE5KSxhLlUsUkQoUUhkKHhZZChhLlUpLDMpLDE5KSwnZVBhY2thZ2UnLDAsMSxpNyx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEucCksNSksMTkpLGEuZGIsbnVsbCxLS2UsMCwtMSxpNyxmYWxzZSxmYWxzZSx0cnVlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSk7aD15QmQoUkQoUUhkKHVZZChhLnApLDApLDYyKSxhLmUsTEtlKTtjQmQoaCxhLk0sZ3ZlKTt5QmQoUkQoUUhkKHVZZChhLnApLDEpLDYyKSxhLkksJ2dldENsYXNzaWZpZXJJRCcpO3ZCZChhLnEsazcsJ0VEYXRhVHlwZScsZmFsc2UsZmFsc2UsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5xKSwwKSwzNSksYS5lLCdzZXJpYWxpemFibGUnLEZHZSwwLDEsazcsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt2QmQoYS52LG03LCdFRW51bScsZmFsc2UsZmFsc2UsdHJ1ZSk7ekJkKFJEKFFIZCh4WWQoYS52KSwwKSwxOSksYS53LFJEKFFIZCh4WWQoYS53KSwzKSwxOSksJ2VMaXRlcmFscycsMCwtMSxtNyxmYWxzZSxmYWxzZSx0cnVlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO2g9eUJkKFJEKFFIZCh1WWQoYS52KSwwKSw2MiksYS53LE1LZSk7Y0JkKGgsYS5fLEdJZSk7aD15QmQoUkQoUUhkKHVZZChhLnYpLDEpLDYyKSxhLncsTUtlKTtjQmQoaCxhLkksYUllKTtoPXlCZChSRChRSGQodVlkKGEudiksMiksNjIpLGEudywnZ2V0RUVudW1MaXRlcmFsQnlMaXRlcmFsJyk7Y0JkKGgsYS5fLCdsaXRlcmFsJyk7dkJkKGEudyxsNyxUSmUsZmFsc2UsZmFsc2UsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS53KSwwKSwzNSksYS5JLGFJZSxudWxsLDAsMSxsNyxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UpO3RCZChSRChRSGQoeFlkKGEudyksMSksMzUpLGEuQSwnaW5zdGFuY2UnLG51bGwsMCwxLGw3LHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLncpLDIpLDM1KSxhLl8sJ2xpdGVyYWwnLG51bGwsMCwxLGw3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS53KSwzKSwxOSksYS52LFJEKFFIZCh4WWQoYS52KSwwKSwxOSksJ2VFbnVtJywwLDEsbDcsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7dkJkKGEuQixuNywnRUZhY3RvcnknLGZhbHNlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEuQiksMCksMTkpLGEuVSxSRChRSGQoeFlkKGEuVSksMiksMTkpLCdlUGFja2FnZScsMSwxLG43LHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7aD15QmQoUkQoUUhkKHVZZChhLkIpLDApLDYyKSxhLlMsJ2NyZWF0ZScpO2NCZChoLGEubywnZUNsYXNzJyk7aD15QmQoUkQoUUhkKHVZZChhLkIpLDEpLDYyKSxhLk0sJ2NyZWF0ZUZyb21TdHJpbmcnKTtjQmQoaCxhLnEsJ2VEYXRhVHlwZScpO2NCZChoLGEuXywnbGl0ZXJhbFZhbHVlJyk7aD15QmQoUkQoUUhkKHVZZChhLkIpLDIpLDYyKSxhLl8sJ2NvbnZlcnRUb1N0cmluZycpO2NCZChoLGEucSwnZURhdGFUeXBlJyk7Y0JkKGgsYS5NLCdpbnN0YW5jZVZhbHVlJyk7dkJkKGEuUSxwNyxESGUsdHJ1ZSxmYWxzZSx0cnVlKTt6QmQoUkQoUUhkKHhZZChhLlEpLDApLDE5KSxhLmEsUkQoUUhkKHhZZChhLmEpLDIpLDE5KSwnZUFubm90YXRpb25zJywwLC0xLHA3LGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7aD15QmQoUkQoUUhkKHVZZChhLlEpLDApLDYyKSxhLmEsJ2dldEVBbm5vdGF0aW9uJyk7Y0JkKGgsYS5fLGJJZSk7dkJkKGEuUixxNyxFSGUsdHJ1ZSxmYWxzZSx0cnVlKTt0QmQoUkQoUUhkKHhZZChhLlIpLDApLDM1KSxhLl8sR0llLG51bGwsMCwxLHE3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7dkJkKGEuUyxyNywnRU9iamVjdCcsZmFsc2UsZmFsc2UsdHJ1ZSk7eUJkKFJEKFFIZCh1WWQoYS5TKSwwKSw2MiksYS5vLCdlQ2xhc3MnKTt5QmQoUkQoUUhkKHVZZChhLlMpLDEpLDYyKSxhLmUsJ2VJc1Byb3h5Jyk7eUJkKFJEKFFIZCh1WWQoYS5TKSwyKSw2MiksYS5YLCdlUmVzb3VyY2UnKTt5QmQoUkQoUUhkKHVZZChhLlMpLDMpLDYyKSxhLlMsJ2VDb250YWluZXInKTt5QmQoUkQoUUhkKHVZZChhLlMpLDQpLDYyKSxhLmJiLCdlQ29udGFpbmluZ0ZlYXR1cmUnKTt5QmQoUkQoUUhkKHVZZChhLlMpLDUpLDYyKSxhLlcsJ2VDb250YWlubWVudEZlYXR1cmUnKTtoPXlCZChSRChRSGQodVlkKGEuUyksNiksNjIpLG51bGwsJ2VDb250ZW50cycpO2I9bEJkKGEuZmIpO2M9bEJkKGEuUyk7V0dkKCghYi5kJiYoYi5kPW5ldyBYWmQobzcsYiwxKSksYi5kKSxjKTtlPVhWZChoLGIsbnVsbCk7ISFlJiZlLm9qKCk7aD15QmQoUkQoUUhkKHVZZChhLlMpLDcpLDYyKSxudWxsLCdlQWxsQ29udGVudHMnKTtiPWxCZChhLmNiKTtjPWxCZChhLlMpO1dHZCgoIWIuZCYmKGIuZD1uZXcgWFpkKG83LGIsMSkpLGIuZCksYyk7Zj1YVmQoaCxiLG51bGwpOyEhZiYmZi5vaigpO2g9eUJkKFJEKFFIZCh1WWQoYS5TKSw4KSw2MiksbnVsbCwnZUNyb3NzUmVmZXJlbmNlcycpO2I9bEJkKGEuZmIpO2M9bEJkKGEuUyk7V0dkKCghYi5kJiYoYi5kPW5ldyBYWmQobzcsYiwxKSksYi5kKSxjKTtnPVhWZChoLGIsbnVsbCk7ISFnJiZnLm9qKCk7aD15QmQoUkQoUUhkKHVZZChhLlMpLDkpLDYyKSxhLk0sJ2VHZXQnKTtjQmQoaCxhLmJiLEdLZSk7aD15QmQoUkQoUUhkKHVZZChhLlMpLDEwKSw2MiksYS5NLCdlR2V0Jyk7Y0JkKGgsYS5iYixHS2UpO2NCZChoLGEuZSwncmVzb2x2ZScpO2g9eUJkKFJEKFFIZCh1WWQoYS5TKSwxMSksNjIpLG51bGwsJ2VTZXQnKTtjQmQoaCxhLmJiLEdLZSk7Y0JkKGgsYS5NLCduZXdWYWx1ZScpO2g9eUJkKFJEKFFIZCh1WWQoYS5TKSwxMiksNjIpLGEuZSwnZUlzU2V0Jyk7Y0JkKGgsYS5iYixHS2UpO2g9eUJkKFJEKFFIZCh1WWQoYS5TKSwxMyksNjIpLG51bGwsJ2VVbnNldCcpO2NCZChoLGEuYmIsR0tlKTtoPXlCZChSRChRSGQodVlkKGEuUyksMTQpLDYyKSxhLk0sJ2VJbnZva2UnKTtjQmQoaCxhLlQsSUtlKTtiPWxCZChhLmZiKTtjPVZhZSgpO1dHZCgoIWIuZCYmKGIuZD1uZXcgWFpkKG83LGIsMSkpLGIuZCksYyk7ZEJkKGgsYiwnYXJndW1lbnRzJyk7YUJkKGgsYS5LKTt2QmQoYS5ULHM3LFZKZSxmYWxzZSxmYWxzZSx0cnVlKTt6QmQoUkQoUUhkKHhZZChhLlQpLDApLDE5KSxhLm8sUkQoUUhkKHhZZChhLm8pLDMpLDE5KSxOS2UsMCwxLHM3LHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuVCksMSksMTkpLGEuZGIsbnVsbCxLS2UsMCwtMSxzNyxmYWxzZSxmYWxzZSx0cnVlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5UKSwyKSwxOSksYS5WLFJEKFFIZCh4WWQoYS5WKSwwKSwxOSksJ2VQYXJhbWV0ZXJzJywwLC0xLHM3LGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5UKSwzKSwxOSksYS5wLG51bGwsJ2VFeGNlcHRpb25zJywwLC0xLHM3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSx0cnVlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLlQpLDQpLDE5KSxhLkgsbnVsbCwnZUdlbmVyaWNFeGNlcHRpb25zJywwLC0xLHM3LGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt5QmQoUkQoUUhkKHVZZChhLlQpLDApLDYyKSxhLkksSEtlKTtoPXlCZChSRChRSGQodVlkKGEuVCksMSksNjIpLGEuZSwnaXNPdmVycmlkZU9mJyk7Y0JkKGgsYS5ULCdzb21lT3BlcmF0aW9uJyk7dkJkKGEuVSx0NywnRVBhY2thZ2UnLGZhbHNlLGZhbHNlLHRydWUpO3RCZChSRChRSGQoeFlkKGEuVSksMCksMzUpLGEuXywnbnNVUkknLG51bGwsMCwxLHQ3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7dEJkKFJEKFFIZCh4WWQoYS5VKSwxKSwzNSksYS5fLCduc1ByZWZpeCcsbnVsbCwwLDEsdDcsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLlUpLDIpLDE5KSxhLkIsUkQoUUhkKHhZZChhLkIpLDApLDE5KSwnZUZhY3RvcnlJbnN0YW5jZScsMSwxLHQ3LHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5VKSwzKSwxOSksYS5wLFJEKFFIZCh4WWQoYS5wKSw0KSwxOSksJ2VDbGFzc2lmaWVycycsMCwtMSx0NyxmYWxzZSxmYWxzZSx0cnVlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5VKSw0KSwxOSksYS5VLFJEKFFIZCh4WWQoYS5VKSw1KSwxOSksJ2VTdWJwYWNrYWdlcycsMCwtMSx0NyxmYWxzZSxmYWxzZSx0cnVlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5VKSw1KSwxOSksYS5VLFJEKFFIZCh4WWQoYS5VKSw0KSwxOSksJ2VTdXBlclBhY2thZ2UnLDAsMSx0Nyx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UpO2g9eUJkKFJEKFFIZCh1WWQoYS5VKSwwKSw2MiksYS5wLCdnZXRFQ2xhc3NpZmllcicpO2NCZChoLGEuXyxHSWUpO3ZCZChhLlYsdTcsV0plLGZhbHNlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEuViksMCksMTkpLGEuVCxSRChRSGQoeFlkKGEuVCksMiksMTkpLCdlT3BlcmF0aW9uJywwLDEsdTcsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7dkJkKGEuVyx2NyxYSmUsZmFsc2UsZmFsc2UsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5XKSwwKSwzNSksYS5lLCdjb250YWlubWVudCcsbnVsbCwwLDEsdjcsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLlcpLDEpLDM1KSxhLmUsJ2NvbnRhaW5lcicsbnVsbCwwLDEsdjcsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5XKSwyKSwzNSksYS5lLCdyZXNvbHZlUHJveGllcycsRkdlLDAsMSx2NyxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuVyksMyksMTkpLGEuVyxudWxsLCdlT3Bwb3NpdGUnLDAsMSx2NyxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuVyksNCksMTkpLGEubyxudWxsLCdlUmVmZXJlbmNlVHlwZScsMSwxLHY3LHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEuVyksNSksMTkpLGEuYixudWxsLCdlS2V5cycsMCwtMSx2NyxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UpO3ZCZChhLmJiLHk3LFFKZSx0cnVlLGZhbHNlLHRydWUpO3RCZChSRChRSGQoeFlkKGEuYmIpLDApLDM1KSxhLmUsJ2NoYW5nZWFibGUnLEZHZSwwLDEseTcsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLmJiKSwxKSwzNSksYS5lLCd2b2xhdGlsZScsbnVsbCwwLDEseTcsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLmJiKSwyKSwzNSksYS5lLCd0cmFuc2llbnQnLG51bGwsMCwxLHk3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7dEJkKFJEKFFIZCh4WWQoYS5iYiksMyksMzUpLGEuXywnZGVmYXVsdFZhbHVlTGl0ZXJhbCcsbnVsbCwwLDEseTcsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLmJiKSw0KSwzNSksYS5NLEpLZSxudWxsLDAsMSx5Nyx0cnVlLHRydWUsZmFsc2UsZmFsc2UsdHJ1ZSx0cnVlKTt0QmQoUkQoUUhkKHhZZChhLmJiKSw1KSwzNSksYS5lLCd1bnNldHRhYmxlJyxudWxsLDAsMSx5NyxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UpO3RCZChSRChRSGQoeFlkKGEuYmIpLDYpLDM1KSxhLmUsJ2Rlcml2ZWQnLG51bGwsMCwxLHk3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5iYiksNyksMTkpLGEubyxSRChRSGQoeFlkKGEubyksMTMpLDE5KSxOS2UsMCwxLHk3LHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO3lCZChSRChRSGQodVlkKGEuYmIpLDApLDYyKSxhLkksRktlKTtoPXlCZChSRChRSGQodVlkKGEuYmIpLDEpLDYyKSxudWxsLCdnZXRDb250YWluZXJDbGFzcycpO2I9bEJkKGEuTCk7Yz1WYWUoKTtXR2QoKCFiLmQmJihiLmQ9bmV3IFhaZChvNyxiLDEpKSxiLmQpLGMpO2Q9WFZkKGgsYixudWxsKTshIWQmJmQub2ooKTt2QmQoYS5lYixBNyxQSmUsdHJ1ZSxmYWxzZSx0cnVlKTt0QmQoUkQoUUhkKHhZZChhLmViKSwwKSwzNSksYS5lLCdvcmRlcmVkJyxGR2UsMCwxLEE3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7dEJkKFJEKFFIZCh4WWQoYS5lYiksMSksMzUpLGEuZSwndW5pcXVlJyxGR2UsMCwxLEE3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7dEJkKFJEKFFIZCh4WWQoYS5lYiksMiksMzUpLGEuSSwnbG93ZXJCb3VuZCcsbnVsbCwwLDEsQTcsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLmViKSwzKSwzNSksYS5JLCd1cHBlckJvdW5kJywnMScsMCwxLEE3LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSk7dEJkKFJEKFFIZCh4WWQoYS5lYiksNCksMzUpLGEuZSwnbWFueScsbnVsbCwwLDEsQTcsdHJ1ZSx0cnVlLGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSk7dEJkKFJEKFFIZCh4WWQoYS5lYiksNSksMzUpLGEuZSwncmVxdWlyZWQnLG51bGwsMCwxLEE3LHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSx0cnVlLHRydWUpO3pCZChSRChRSGQoeFlkKGEuZWIpLDYpLDE5KSxhLnAsbnVsbCwnZVR5cGUnLDAsMSxBNyxmYWxzZSx0cnVlLHRydWUsZmFsc2UsdHJ1ZSx0cnVlLGZhbHNlKTt6QmQoUkQoUUhkKHhZZChhLmViKSw3KSwxOSksYS5ILG51bGwsJ2VHZW5lcmljVHlwZScsMCwxLEE3LGZhbHNlLHRydWUsdHJ1ZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UpO3ZCZChhLmFiLFVLLCdFU3RyaW5nVG9TdHJpbmdNYXBFbnRyeScsZmFsc2UsZmFsc2UsZmFsc2UpO3RCZChSRChRSGQoeFlkKGEuYWIpLDApLDM1KSxhLl8sJ2tleScsbnVsbCwwLDEsVUssZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlKTt0QmQoUkQoUUhkKHhZZChhLmFiKSwxKSwzNSksYS5fLGFJZSxudWxsLDAsMSxVSyxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUsZmFsc2UpO3ZCZChhLkgsbzcsVUplLGZhbHNlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEuSCksMCksMTkpLGEuSCxudWxsLCdlVXBwZXJCb3VuZCcsMCwxLG83LGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5IKSwxKSwxOSksYS5ILG51bGwsJ2VUeXBlQXJndW1lbnRzJywwLC0xLG83LGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5IKSwyKSwxOSksYS5wLG51bGwsJ2VSYXdUeXBlJywxLDEsbzcsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLHRydWUpO3pCZChSRChRSGQoeFlkKGEuSCksMyksMTkpLGEuSCxudWxsLCdlTG93ZXJCb3VuZCcsMCwxLG83LGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7ekJkKFJEKFFIZCh4WWQoYS5IKSw0KSwxOSksYS5kYixudWxsLCdlVHlwZVBhcmFtZXRlcicsMCwxLG83LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO3pCZChSRChRSGQoeFlkKGEuSCksNSksMTkpLGEucCxudWxsLCdlQ2xhc3NpZmllcicsMCwxLG83LGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSk7aD15QmQoUkQoUUhkKHVZZChhLkgpLDApLDYyKSxhLmUsTEtlKTtjQmQoaCxhLk0sZ3ZlKTt2QmQoYS5kYix6NyxZSmUsZmFsc2UsZmFsc2UsdHJ1ZSk7ekJkKFJEKFFIZCh4WWQoYS5kYiksMCksMTkpLGEuSCxudWxsLCdlQm91bmRzJywwLC0xLHo3LGZhbHNlLGZhbHNlLHRydWUsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7eEJkKGEuYyx0SiwnRUJpZ0RlY2ltYWwnLHRydWUpO3hCZChhLmQsdUosJ0VCaWdJbnRlZ2VyJyx0cnVlKTt4QmQoYS5lLHhkYiwnRUJvb2xlYW4nLHRydWUpO3hCZChhLmYsUUksJ0VCb29sZWFuT2JqZWN0Jyx0cnVlKTt4QmQoYS5pLGdFLCdFQnl0ZScsdHJ1ZSk7eEJkKGEuZyxXQyhnRSwxKSwnRUJ5dGVBcnJheScsdHJ1ZSk7eEJkKGEuaixSSSwnRUJ5dGVPYmplY3QnLHRydWUpO3hCZChhLmssaEUsJ0VDaGFyJyx0cnVlKTt4QmQoYS5uLFNJLCdFQ2hhcmFjdGVyT2JqZWN0Jyx0cnVlKTt4QmQoYS5yLHFLLCdFRGF0ZScsdHJ1ZSk7eEJkKGEucyxUNiwnRURpYWdub3N0aWNDaGFpbicsZmFsc2UpO3hCZChhLnQsaUUsJ0VEb3VibGUnLHRydWUpO3hCZChhLnUsVkksJ0VEb3VibGVPYmplY3QnLHRydWUpO3hCZChhLmZiLFk2LCdFRUxpc3QnLGZhbHNlKTt4QmQoYS5BLFo2LCdFRW51bWVyYXRvcicsZmFsc2UpO3hCZChhLkMsVGJiLCdFRmVhdHVyZU1hcCcsZmFsc2UpO3hCZChhLkQsSmJiLCdFRmVhdHVyZU1hcEVudHJ5JyxmYWxzZSk7eEJkKGEuRixqRSwnRUZsb2F0Jyx0cnVlKTt4QmQoYS5HLFpJLCdFRmxvYXRPYmplY3QnLHRydWUpO3hCZChhLkksa0UsJ0VJbnQnLHRydWUpO3hCZChhLkosYkosJ0VJbnRlZ2VyT2JqZWN0Jyx0cnVlKTt4QmQoYS5MLFVJLCdFSmF2YUNsYXNzJyx0cnVlKTt4QmQoYS5NLGpKLCdFSmF2YU9iamVjdCcsdHJ1ZSk7eEJkKGEuTixsRSwnRUxvbmcnLHRydWUpO3hCZChhLk8sZUosJ0VMb25nT2JqZWN0Jyx0cnVlKTt4QmQoYS5QLFZLLCdFTWFwJyxmYWxzZSk7eEJkKGEuWCxBYWIsJ0VSZXNvdXJjZScsZmFsc2UpO3hCZChhLlksemFiLCdFUmVzb3VyY2VTZXQnLGZhbHNlKTt4QmQoYS5aLHdkYiwnRVNob3J0Jyx0cnVlKTt4QmQoYS4kLGxKLCdFU2hvcnRPYmplY3QnLHRydWUpO3hCZChhLl8scUosJ0VTdHJpbmcnLHRydWUpO3hCZChhLmNiLGE3LCdFVHJlZUl0ZXJhdG9yJyxmYWxzZSk7eEJkKGEuSywkNiwnRUludm9jYXRpb25UYXJnZXRFeGNlcHRpb24nLGZhbHNlKTtwQmQoYSxBS2UpfVxudmFyIGd2ZT0nb2JqZWN0JyxodmU9J2Jvb2xlYW4nLGl2ZT0nbnVtYmVyJyxqdmU9J3N0cmluZycsa3ZlPSdmdW5jdGlvbicsbHZlPTIxNDc0ODM2NDcsbXZlPSdqYXZhLmxhbmcnLG52ZT17MzoxfSxvdmU9J2NvbS5nb29nbGUuY29tbW9uLmJhc2UnLHB2ZT0nLCAnLHF2ZT0nJXMgKCVzKSBtdXN0IG5vdCBiZSBuZWdhdGl2ZScscnZlPXszOjEsNDoxLDU6MX0sc3ZlPSduZWdhdGl2ZSBzaXplOiAnLHR2ZT0nbm8gY2FsbHMgdG8gbmV4dCgpIHNpbmNlIHRoZSBsYXN0IGNhbGwgdG8gcmVtb3ZlKCknLHV2ZT0nT3B0aW9uYWwub2YoJyx2dmU9J251bGwnLHd2ZT17MjA0OjEsNTE6MX0seHZlPSdjb20uZ29vZ2xlLmNvbW1vbi5jb2xsZWN0Jyx5dmU9ezIwNDoxLDUxOjEsMTI4OjF9LHp2ZT17MjI5OjEsMzoxfSxBdmU9ezUxOjF9LEJ2ZT0namF2YS51dGlsJyxDdmU9ezg1OjF9LER2ZT17MjA6MSwzMToxLDE2OjF9LEV2ZT0yMDYzLEZ2ZT17MjA6MSwzMToxLDE2OjEsMjE6MX0sR3ZlPXs4NToxLDEzOToxLDEzMzoxfSxIdmU9ezIwOjEsMzE6MSwxNjoxLDIxOjEsODc6MX0sSXZlPXsyMDoxLDMxOjEsMTY6MSwyNzc6MSwyMToxLDg3OjF9LEp2ZT17NTE6MSwxMjg6MX0sS3ZlPXszNTg6MSw0NDoxfSxMdmU9J0Fic3RyYWN0TWFwRW50cnknLE12ZT0nZXhwZWN0ZWRWYWx1ZXNQZXJLZXknLE52ZT17MzoxLDY6MSw0OjEsNToxfSxPdmU9MTYzODQsUHZlPXsxNTk6MX0sUXZlPXs0MToxfSxSdmU9ezIwMjoxfSxTdmU9e2w6NDE5NDMwMyxtOjQxOTQzMDMsaDo1MjQyODd9LFR2ZT17MjUzOjEsMzoxLDM0OjF9LFV2ZT0ncmFuZ2UgdW5ib3VuZGVkIG9uIHRoaXMgc2lkZScsVnZlPXsyMDoxfSxXdmU9ezIwOjEsMTY6MX0sWHZlPXszOjEsMjA6MSwzMToxLDE2OjF9LFl2ZT17MzA3OjEsMzoxLDIwOjEsMzE6MSwxNjoxLDE1OjEsNTk6MX0sWnZlPXszOjEsNDoxLDU6MSwxNzM6MX0sJHZlPXszOjEsODU6MX0sX3ZlPXsyMDoxLDE2OjEsMjE6MX0sYXdlPXszOjEsMjA6MSwzMToxLDE2OjEsMjE6MX0sYndlPXsyMDoxLDE2OjEsMjE6MSw4NzoxfSxjd2U9NDYxODQ1OTA3LGR3ZT0tODYyMDQ4OTQzLGV3ZT17MzoxLDY6MSw0OjEsNToxLDE3MzoxfSxmd2U9J2V4cGVjdGVkU2l6ZScsZ3dlPTEwMjQsaHdlPTEwNzM3NDE4MjQsaXdlPSdpbml0aWFsQXJyYXlTaXplJyxqd2U9ezM6MSw2OjEsNDoxLDk6MSw1OjF9LGt3ZT17MjA6MSwzMToxLDU2OjEsMTY6MSwxNToxfSxsd2U9J2FycmF5U2l6ZScsbXdlPXsyMDoxLDMxOjEsNTY6MSwxNjoxLDE1OjEsNTk6MX0sbndlPXs0NjoxfSxvd2U9ezM4MDoxfSxwd2U9MS4wRS00LHF3ZT0tMjE0NzQ4MzY0OCxyd2U9J19fbm9pbml0X18nLHN3ZT17MzoxLDEwMzoxLDYzOjEsODI6MX0sdHdlPSdjb20uZ29vZ2xlLmd3dC5jb3JlLmNsaWVudC5pbXBsJyx1d2U9J1N0cmluZycsdndlPSdjb20uZ29vZ2xlLmd3dC5jb3JlLmNsaWVudCcsd3dlPSdhbm9ueW1vdXMnLHh3ZT0nZm5TdGFjaycseXdlPSdVbmtub3duJyx6d2U9ezIwMToxLDM6MSw0OjF9LEF3ZT0xMDAwLEJ3ZT02NTUzNSxDd2U9J0phbnVhcnknLER3ZT0nRmVicnVhcnknLEV3ZT0nTWFyY2gnLEZ3ZT0nQXByaWwnLEd3ZT0nTWF5JyxId2U9J0p1bmUnLEl3ZT0nSnVseScsSndlPSdBdWd1c3QnLEt3ZT0nU2VwdGVtYmVyJyxMd2U9J09jdG9iZXInLE13ZT0nTm92ZW1iZXInLE53ZT0nRGVjZW1iZXInLE93ZT0xOTAwLFB3ZT17NTM6MSwzOjEsNDoxfSxRd2U9J0JlZm9yZSBDaHJpc3QnLFJ3ZT0nQW5ubyBEb21pbmknLFN3ZT0nU3VuZGF5JyxUd2U9J01vbmRheScsVXdlPSdUdWVzZGF5JyxWd2U9J1dlZG5lc2RheScsV3dlPSdUaHVyc2RheScsWHdlPSdGcmlkYXknLFl3ZT0nU2F0dXJkYXknLFp3ZT0nY29tLmdvb2dsZS5nd3QuaTE4bi5zaGFyZWQnLCR3ZT0nRGF0ZVRpbWVGb3JtYXQnLF93ZT0nY29tLmdvb2dsZS5nd3QuaTE4bi5jbGllbnQnLGF4ZT0nRGVmYXVsdERhdGVUaW1lRm9ybWF0SW5mbycsYnhlPXszOjEsNDoxLDM0OjEsMjA2OjF9LGN4ZT0nY29tLmdvb2dsZS5nd3QuanNvbi5jbGllbnQnLGR4ZT00MTk0MzAzLGV4ZT0xMDQ4NTc1LGZ4ZT01MjQyODgsZ3hlPTQxOTQzMDQsaHhlPTE3NTkyMTg2MDQ0NDE2LGl4ZT0xMDAwMDAwMDAwLGp4ZT0tMTc1OTIxODYwNDQ0MTYsa3hlPSdqYXZhLmlvJyxseGU9ezM6MSwxMDM6MSw3NzoxLDYzOjEsODI6MX0sbXhlPXszOjEsMjk2OjEsODI6MX0sbnhlPSdGb3IgaW5wdXQgc3RyaW5nOiBcIicsb3hlPUluZmluaXR5LHB4ZT0tSW5maW5pdHkscXhlPTQwOTYscnhlPXszOjEsNDoxLDM3NjoxfSxzeGU9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkJyx0eGU9NjU1MzYsdXhlPTU1Mjk2LHZ4ZT17MTA5OjEsMzoxLDQ6MX0sd3hlPTEwMDAwMCx4eGU9MC4zMDEwMjk5OTU2NjM5ODEyLHl4ZT00Mjk0OTY3Mjk1LHp4ZT0nMC4wJyxBeGU9ezQ0OjF9LEJ4ZT0nVW5hYmxlIHRvIGFkZCBlbGVtZW50IHRvIHF1ZXVlJyxDeGU9ezM6MSw0OjEsMjA6MSwzMToxLDU2OjEsMTM6MSwxNjoxLDE1OjEsNTk6MX0sRHhlPXszOjEsMjA6MSwzMToxLDU2OjEsMTY6MSwxNToxLDU5OjF9LEV4ZT17MjA6MSwxNjoxLDE1OjF9LEZ4ZT17MzoxLDUwOjF9LEd4ZT17MTg5OjF9LEh4ZT17MzoxLDQ6MSw4NToxfSxJeGU9ezM6MSw0OjEsMjA6MSwzMToxLDE2OjEsNDk6MSwyMToxfSxKeGU9J2RlbGV0ZScsS3hlPTEuNDkwMTE2MTE5Mzg0NzY1NkUtOCxMeGU9MS4xMTAyMjMwMjQ2MjUxNTY1RS0xNixNeGU9MTU1MjU0ODUsTnhlPTUuOTYwNDY0NDc3NTM5MDYyNUUtOCxPeGU9MTY3NzcyMTYsUHhlPTE2Nzc3MjE1LFF4ZT0nLCBsZW5ndGg6ICcsUnhlPXszOjEsNDoxLDIwOjEsMzE6MSw1NjoxLDE2OjEsMTU6MSw1OToxfSxTeGU9J3N1Yk1hcDogJyxUeGU9JyBsZXNzIHRoYW4gJyxVeGU9ezM6MSwzNDoxLDIyOjEsMzA0OjF9LFZ4ZT0namF2YS51dGlsLmZ1bmN0aW9uJyxXeGU9J2phdmEudXRpbC5sb2dnaW5nJyxYeGU9ezM6MSw0OjEsNToxLDg1NjoxfSxZeGU9J3VuZGVmaW5lZCcsWnhlPSdqYXZhLnV0aWwuc3RyZWFtJywkeGU9ezUzMzoxLDY4NzoxfSxfeGU9J2Zyb21JbmRleDogJyxheWU9JyA+IHRvSW5kZXg6ICcsYnllPScsIHRvSW5kZXg6ICcsY3llPSdJbmRleDogJyxkeWU9JywgU2l6ZTogJyxleWU9J29yZy5lY2xpcHNlLmVsay5hbGcuY29tbW9uJyxmeWU9ezUwOjF9LGd5ZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5jb21tb24uY29tcGFjdGlvbicsaHllPSdTY2FubGluZS9FdmVudEhhbmRsZXInLGl5ZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5jb21tb24uY29tcGFjdGlvbi5vbmVkJyxqeWU9J0NOb2RlIGJlbG9uZ3MgdG8gYW5vdGhlciBDR3JvdXAuJyxreWU9J0lTcGFjaW5nc0hhbmRsZXIvMScsbHllPSdUaGUgJyxteWU9JyBpbnN0YW5jZSBoYXMgYmVlbiBmaW5pc2hlZCBhbHJlYWR5LicsbnllPSdUaGUgZGlyZWN0aW9uICcsb3llPScgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgQ0dyYXBoIGluc3RhbmNlLicscHllPSdPbmVEaW1lbnNpb25hbENvbXBhY3RvcicscXllPSdPbmVEaW1lbnNpb25hbENvbXBhY3Rvci9sYW1iZGEkMCRUeXBlJyxyeWU9J1F1YWRydXBsZXQnLHN5ZT0nU2NhbmxpbmVDb25zdHJhaW50Q2FsY3VsYXRvcicsdHllPSdTY2FubGluZUNvbnN0cmFpbnRDYWxjdWxhdG9yL0NvbnN0cmFpbnRzU2NhbmxpbmVIYW5kbGVyJyx1eWU9J1NjYW5saW5lQ29uc3RyYWludENhbGN1bGF0b3IvQ29uc3RyYWludHNTY2FubGluZUhhbmRsZXIvbGFtYmRhJDAkVHlwZScsdnllPSdTY2FubGluZUNvbnN0cmFpbnRDYWxjdWxhdG9yL1RpbWVzdGFtcCcsd3llPSdTY2FubGluZUNvbnN0cmFpbnRDYWxjdWxhdG9yL2xhbWJkYSQwJFR5cGUnLHh5ZT17MTc4OjEsNDY6MX0seXllPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmNvbW1vbi5jb21wYWN0aW9uLm9wdGlvbnMnLHp5ZT0nb3JnLmVjbGlwc2UuZWxrLmNvcmUuZGF0YScsQXllPSdvcmcuZWNsaXBzZS5lbGsucG9seW9taW5vLnRyYXZlcnNhbFN0cmF0ZWd5JyxCeWU9J29yZy5lY2xpcHNlLmVsay5wb2x5b21pbm8ubG93TGV2ZWxTb3J0JyxDeWU9J29yZy5lY2xpcHNlLmVsay5wb2x5b21pbm8uaGlnaExldmVsU29ydCcsRHllPSdvcmcuZWNsaXBzZS5lbGsucG9seW9taW5vLmZpbGwnLEV5ZT17MTM0OjF9LEZ5ZT0ncG9seW9taW5vJyxHeWU9J29yZy5lY2xpcHNlLmVsay5hbGcuY29tbW9uLm5ldHdvcmtzaW1wbGV4JyxIeWU9ezE4MzoxLDM6MSw0OjF9LEl5ZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5jb21tb24ubm9kZXNwYWNpbmcnLEp5ZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5jb21tb24ubm9kZXNwYWNpbmcuY2VsbHN5c3RlbScsS3llPSdDRU5URVInLEx5ZT17MjE3OjEsMzM2OjF9LE15ZT17MzoxLDQ6MSw1OjEsNjAzOjF9LE55ZT0nTEVGVCcsT3llPSdSSUdIVCcsUHllPSdWZXJ0aWNhbCBhbGlnbm1lbnQgY2Fubm90IGJlIG51bGwnLFF5ZT0nQk9UVE9NJyxSeWU9J29yZy5lY2xpcHNlLmVsay5hbGcuY29tbW9uLm5vZGVzcGFjaW5nLmludGVybmFsJyxTeWU9J1VOREVGSU5FRCcsVHllPTAuMDEsVXllPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmNvbW1vbi5ub2Rlc3BhY2luZy5pbnRlcm5hbC5hbGdvcml0aG0nLFZ5ZT0nTGFiZWxQbGFjZXIvbGFtYmRhJDAkVHlwZScsV3llPSdMYWJlbFBsYWNlci9sYW1iZGEkMSRUeXBlJyxYeWU9J3BvcnRSYXRpb09yUG9zaXRpb24nLFl5ZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5jb21tb24ub3ZlcmxhcHMnLFp5ZT0nRE9XTicsJHllPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmNvbW1vbi5wb2x5b21pbm8nLF95ZT0nTk9SVEgnLGF6ZT0nRUFTVCcsYnplPSdTT1VUSCcsY3plPSdXRVNUJyxkemU9J29yZy5lY2xpcHNlLmVsay5hbGcuY29tbW9uLnBvbHlvbWluby5zdHJ1Y3R1cmVzJyxlemU9J0RpcmVjdGlvbicsZnplPSdHcmlkIGlzIG9ubHkgb2Ygc2l6ZSAnLGd6ZT0nLiBSZXF1ZXN0ZWQgcG9pbnQgKCcsaHplPScpIGlzIG91dCBvZiBib3VuZHMuJyxpemU9JyBHaXZlbiBjZW50ZXIgYmFzZWQgY29vcmRpbmF0ZXMgd2VyZSAoJyxqemU9J29yZy5lY2xpcHNlLmVsay5ncmFwaC5wcm9wZXJ0aWVzJyxremU9J0lQcm9wZXJ0eUhvbGRlcicsbHplPXszOjEsOTY6MSwxMzc6MX0sbXplPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmNvbW1vbi5zcG9yZScsbnplPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmNvbW1vbi51dGlscycsb3plPXsyMDU6MX0scHplPSdvcmcuZWNsaXBzZS5lbGsuY29yZScscXplPSdDb25uZWN0ZWQgQ29tcG9uZW50cyBDb21wYWN0aW9uJyxyemU9J29yZy5lY2xpcHNlLmVsay5hbGcuZGlzY28nLHN6ZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5kaXNjby5ncmFwaCcsdHplPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmRpc2NvLm9wdGlvbnMnLHV6ZT0nQ29tcGFjdGlvblN0cmF0ZWd5Jyx2emU9J29yZy5lY2xpcHNlLmVsay5kaXNjby5jb21wb25lbnRDb21wYWN0aW9uLnN0cmF0ZWd5Jyx3emU9J29yZy5lY2xpcHNlLmVsay5kaXNjby5jb21wb25lbnRDb21wYWN0aW9uLmNvbXBvbmVudExheW91dEFsZ29yaXRobScseHplPSdvcmcuZWNsaXBzZS5lbGsuZGlzY28uZGVidWcuZGlzY29HcmFwaCcseXplPSdvcmcuZWNsaXBzZS5lbGsuZGlzY28uZGVidWcuZGlzY29Qb2x5cycsenplPSdjb21wb25lbnRDb21wYWN0aW9uJyxBemU9J29yZy5lY2xpcHNlLmVsay5kaXNjbycsQnplPSdvcmcuZWNsaXBzZS5lbGsuc3BhY2luZy5jb21wb25lbnRDb21wb25lbnQnLEN6ZT0nb3JnLmVjbGlwc2UuZWxrLmVkZ2UudGhpY2tuZXNzJyxEemU9J29yZy5lY2xpcHNlLmVsay5hc3BlY3RSYXRpbycsRXplPSdvcmcuZWNsaXBzZS5lbGsucGFkZGluZycsRnplPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmRpc2NvLnRyYW5zZm9ybScsR3plPTEuNTcwNzk2MzI2Nzk0ODk2NixIemU9MS43OTc2OTMxMzQ4NjIzMTU3RTMwOCxJemU9ezM6MSw0OjEsNToxLDE5ODoxfSxKemU9ezM6MSw2OjEsNDoxLDU6MSwxMDA6MSwxMTU6MX0sS3plPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmZvcmNlJyxMemU9J0NvbXBvbmVudHNQcm9jZXNzb3InLE16ZT0nQ29tcG9uZW50c1Byb2Nlc3Nvci8xJyxOemU9J0Vsa0dyYXBoSW1wb3J0ZXIvbGFtYmRhJDAkVHlwZScsT3plPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmZvcmNlLmdyYXBoJyxQemU9J0NvbXBvbmVudCBMYXlvdXQnLFF6ZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5mb3JjZS5tb2RlbCcsUnplPSdvcmcuZWNsaXBzZS5lbGsuZm9yY2UubW9kZWwnLFN6ZT0nb3JnLmVjbGlwc2UuZWxrLmZvcmNlLml0ZXJhdGlvbnMnLFR6ZT0nb3JnLmVjbGlwc2UuZWxrLmZvcmNlLnJlcHVsc2l2ZVBvd2VyJyxVemU9J29yZy5lY2xpcHNlLmVsay5mb3JjZS50ZW1wZXJhdHVyZScsVnplPTAuMDAxLFd6ZT0nb3JnLmVjbGlwc2UuZWxrLmZvcmNlLnJlcHVsc2lvbicsWHplPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmZvcmNlLm9wdGlvbnMnLFl6ZT0xLjYwMDAwMDAyMzg0MTg1OCxaemU9J29yZy5lY2xpcHNlLmVsay5mb3JjZScsJHplPSdvcmcuZWNsaXBzZS5lbGsucHJpb3JpdHknLF96ZT0nb3JnLmVjbGlwc2UuZWxrLnNwYWNpbmcubm9kZU5vZGUnLGFBZT0nb3JnLmVjbGlwc2UuZWxrLnNwYWNpbmcuZWRnZUxhYmVsJyxiQWU9J29yZy5lY2xpcHNlLmVsay5yYW5kb21TZWVkJyxjQWU9J29yZy5lY2xpcHNlLmVsay5zZXBhcmF0ZUNvbm5lY3RlZENvbXBvbmVudHMnLGRBZT0nb3JnLmVjbGlwc2UuZWxrLmludGVyYWN0aXZlJyxlQWU9J29yZy5lY2xpcHNlLmVsay5wb3J0Q29uc3RyYWludHMnLGZBZT0nb3JnLmVjbGlwc2UuZWxrLmVkZ2VMYWJlbHMuaW5saW5lJyxnQWU9J29yZy5lY2xpcHNlLmVsay5vbWl0Tm9kZU1pY3JvTGF5b3V0JyxoQWU9J29yZy5lY2xpcHNlLmVsay5ub2RlU2l6ZS5maXhlZEdyYXBoU2l6ZScsaUFlPSdvcmcuZWNsaXBzZS5lbGsubm9kZVNpemUub3B0aW9ucycsakFlPSdvcmcuZWNsaXBzZS5lbGsubm9kZVNpemUuY29uc3RyYWludHMnLGtBZT0nb3JnLmVjbGlwc2UuZWxrLm5vZGVMYWJlbHMucGxhY2VtZW50JyxsQWU9J29yZy5lY2xpcHNlLmVsay5wb3J0TGFiZWxzLnBsYWNlbWVudCcsbUFlPSdvcmcuZWNsaXBzZS5lbGsudG9wZG93bkxheW91dCcsbkFlPSdvcmcuZWNsaXBzZS5lbGsudG9wZG93bi5zY2FsZUZhY3Rvcicsb0FlPSdvcmcuZWNsaXBzZS5lbGsudG9wZG93bi5oaWVyYXJjaGljYWxOb2RlV2lkdGgnLHBBZT0nb3JnLmVjbGlwc2UuZWxrLnRvcGRvd24uaGllcmFyY2hpY2FsTm9kZUFzcGVjdFJhdGlvJyxxQWU9J29yZy5lY2xpcHNlLmVsay50b3Bkb3duLm5vZGVUeXBlJyxyQWU9J29yaWdpbicsc0FlPSdyYW5kb20nLHRBZT0nYm91bmRpbmdCb3gudXBMZWZ0Jyx1QWU9J2JvdW5kaW5nQm94Lmxvd1JpZ2h0Jyx2QWU9J29yZy5lY2xpcHNlLmVsay5zdHJlc3MuZml4ZWQnLHdBZT0nb3JnLmVjbGlwc2UuZWxrLnN0cmVzcy5kZXNpcmVkRWRnZUxlbmd0aCcseEFlPSdvcmcuZWNsaXBzZS5lbGsuc3RyZXNzLmRpbWVuc2lvbicseUFlPSdvcmcuZWNsaXBzZS5lbGsuc3RyZXNzLmVwc2lsb24nLHpBZT0nb3JnLmVjbGlwc2UuZWxrLnN0cmVzcy5pdGVyYXRpb25MaW1pdCcsQUFlPSdvcmcuZWNsaXBzZS5lbGsuc3RyZXNzJyxCQWU9J0VMSyBTdHJlc3MnLENBZT0nb3JnLmVjbGlwc2UuZWxrLm5vZGVTaXplLm1pbmltdW0nLERBZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5mb3JjZS5zdHJlc3MnLEVBZT0nTGF5ZXJlZCBsYXlvdXQnLEZBZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5sYXllcmVkJyxHQWU9J29yZy5lY2xpcHNlLmVsay5hbGcubGF5ZXJlZC5jb21wYWN0aW9uLmNvbXBvbmVudHMnLEhBZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5sYXllcmVkLmNvbXBhY3Rpb24ub25lZCcsSUFlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmxheWVyZWQuY29tcGFjdGlvbi5vbmVkLmFsZ3MnLEpBZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5sYXllcmVkLmNvbXBhY3Rpb24ucmVjdGh1bGwnLEtBZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5sYXllcmVkLmNvbXBvbmVudHMnLExBZT0nTk9ORScsTUFlPSdNT0RFTF9PUkRFUicsTkFlPXszOjEsNjoxLDQ6MSw5OjEsNToxLDEyNjoxfSxPQWU9ezM6MSw2OjEsNDoxLDU6MSwxNTA6MSwxMDA6MSwxMTU6MX0sUEFlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmxheWVyZWQuY29tcG91bmQnLFFBZT17NDc6MX0sUkFlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmxheWVyZWQuZ3JhcGgnLFNBZT0nIC0+ICcsVEFlPSdOb3Qgc3VwcG9ydGVkIGJ5IExHcmFwaCcsVUFlPSdQb3J0IHNpZGUgaXMgdW5kZWZpbmVkJyxWQWU9ezM6MSw2OjEsNDoxLDU6MSw0ODM6MSwxNTA6MSwxMDA6MSwxMTU6MX0sV0FlPXszOjEsNjoxLDQ6MSw1OjEsMTUwOjEsMTk5OjEsMjEwOjEsMTAwOjEsMTE1OjF9LFhBZT17MzoxLDY6MSw0OjEsNToxLDE1MDoxLDIwNDI6MSwyMTA6MSwxMDA6MSwxMTU6MX0sWUFlPScoW3tcIlxcJyBcXHRcXHJcXG4nLFpBZT0nKV19XCJcXCcgXFx0XFxyXFxuJywkQWU9J1RoZSBnaXZlbiBzdHJpbmcgY29udGFpbnMgcGFydHMgdGhhdCBjYW5ub3QgYmUgcGFyc2VkIGFzIG51bWJlcnMuJyxfQWU9J29yZy5lY2xpcHNlLmVsay5jb3JlLm1hdGgnLGFCZT17MzoxLDQ6MSwxNDA6MSwyMTQ6MSw0MjM6MX0sYkJlPXszOjEsNDoxLDEwNzoxLDIxNDoxLDQyMzoxfSxjQmU9J29yZy5lY2xpcHNlLmVsay5hbGcubGF5ZXJlZC5ncmFwaC50cmFuc2Zvcm0nLGRCZT0nRWxrR3JhcGhJbXBvcnRlcicsZUJlPSdFbGtHcmFwaEltcG9ydGVyL2xhbWJkYSQxJFR5cGUnLGZCZT0nRWxrR3JhcGhJbXBvcnRlci9sYW1iZGEkMiRUeXBlJyxnQmU9J0Vsa0dyYXBoSW1wb3J0ZXIvbGFtYmRhJDQkVHlwZScsaEJlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmxheWVyZWQuaW50ZXJtZWRpYXRlJyxpQmU9J05vZGUgbWFyZ2luIGNhbGN1bGF0aW9uJyxqQmU9J09ORV9TSURFRF9HUkVFRFlfU1dJVENIJyxrQmU9J1RXT19TSURFRF9HUkVFRFlfU1dJVENIJyxsQmU9J05vIGltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSBmb3IgdGhlIGxheW91dCBwcm9jZXNzb3IgJyxtQmU9J0ludGVybWVkaWF0ZVByb2Nlc3NvclN0cmF0ZWd5JyxuQmU9XCJOb2RlICdcIixvQmU9J0ZJUlNUX1NFUEFSQVRFJyxwQmU9J0xBU1RfU0VQQVJBVEUnLHFCZT0nT2RkIHBvcnQgc2lkZSBwcm9jZXNzaW5nJyxyQmU9J29yZy5lY2xpcHNlLmVsay5hbGcubGF5ZXJlZC5pbnRlcm1lZGlhdGUuY29tcGFjdGlvbicsc0JlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmxheWVyZWQuaW50ZXJtZWRpYXRlLmdyZWVkeXN3aXRjaCcsdEJlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmxheWVyZWQucDNvcmRlci5jb3VudGluZycsdUJlPXsyMzA6MX0sdkJlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmxheWVyZWQuaW50ZXJtZWRpYXRlLmxvb3BzJyx3QmU9J29yZy5lY2xpcHNlLmVsay5hbGcubGF5ZXJlZC5pbnRlcm1lZGlhdGUubG9vcHMub3JkZXJpbmcnLHhCZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5sYXllcmVkLmludGVybWVkaWF0ZS5sb29wcy5yb3V0aW5nJyx5QmU9J29yZy5lY2xpcHNlLmVsay5hbGcubGF5ZXJlZC5pbnRlcm1lZGlhdGUucHJlc2VydmVvcmRlcicsekJlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmxheWVyZWQuaW50ZXJtZWRpYXRlLndyYXBwaW5nJyxBQmU9J29yZy5lY2xpcHNlLmVsay5hbGcubGF5ZXJlZC5vcHRpb25zJyxCQmU9J0lOVEVSQUNUSVZFJyxDQmU9J0dSRUVEWScsREJlPSdERVBUSF9GSVJTVCcsRUJlPSdFREdFX0xFTkdUSCcsRkJlPSdTRUxGX0xPT1BTJyxHQmU9J2ZpcnN0VHJ5V2l0aEluaXRpYWxPcmRlcicsSEJlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5kaXJlY3Rpb25Db25ncnVlbmN5JyxJQmU9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLmZlZWRiYWNrRWRnZXMnLEpCZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuaW50ZXJhY3RpdmVSZWZlcmVuY2VQb2ludCcsS0JlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5tZXJnZUVkZ2VzJyxMQmU9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLm1lcmdlSGllcmFyY2h5RWRnZXMnLE1CZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuYWxsb3dOb25GbG93UG9ydHNUb1N3aXRjaFNpZGVzJyxOQmU9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLnBvcnRTb3J0aW5nU3RyYXRlZ3knLE9CZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQudGhvcm91Z2huZXNzJyxQQmU9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLnVubmVjZXNzYXJ5QmVuZHBvaW50cycsUUJlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5nZW5lcmF0ZVBvc2l0aW9uQW5kTGF5ZXJJZHMnLFJCZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuY3ljbGVCcmVha2luZy5zdHJhdGVneScsU0JlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5sYXllcmluZy5zdHJhdGVneScsVEJlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5sYXllcmluZy5sYXllckNvbnN0cmFpbnQnLFVCZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQubGF5ZXJpbmcubGF5ZXJDaG9pY2VDb25zdHJhaW50JyxWQmU9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLmxheWVyaW5nLmxheWVySWQnLFdCZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQubGF5ZXJpbmcubWluV2lkdGgudXBwZXJCb3VuZE9uV2lkdGgnLFhCZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQubGF5ZXJpbmcubWluV2lkdGgudXBwZXJMYXllckVzdGltYXRpb25TY2FsaW5nRmFjdG9yJyxZQmU9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLmxheWVyaW5nLm5vZGVQcm9tb3Rpb24uc3RyYXRlZ3knLFpCZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQubGF5ZXJpbmcubm9kZVByb21vdGlvbi5tYXhJdGVyYXRpb25zJywkQmU9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLmxheWVyaW5nLmNvZmZtYW5HcmFoYW0ubGF5ZXJCb3VuZCcsX0JlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5jcm9zc2luZ01pbmltaXphdGlvbi5zdHJhdGVneScsYUNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5jcm9zc2luZ01pbmltaXphdGlvbi5mb3JjZU5vZGVNb2RlbE9yZGVyJyxiQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLmNyb3NzaW5nTWluaW1pemF0aW9uLmhpZXJhcmNoaWNhbFN3ZWVwaW5lc3MnLGNDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuY3Jvc3NpbmdNaW5pbWl6YXRpb24uc2VtaUludGVyYWN0aXZlJyxkQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLmNyb3NzaW5nTWluaW1pemF0aW9uLmluTGF5ZXJQcmVkT2YnLGVDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuY3Jvc3NpbmdNaW5pbWl6YXRpb24uaW5MYXllclN1Y2NPZicsZkNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5jcm9zc2luZ01pbmltaXphdGlvbi5wb3NpdGlvbkNob2ljZUNvbnN0cmFpbnQnLGdDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuY3Jvc3NpbmdNaW5pbWl6YXRpb24ucG9zaXRpb25JZCcsaENlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5jcm9zc2luZ01pbmltaXphdGlvbi5ncmVlZHlTd2l0Y2guYWN0aXZhdGlvblRocmVzaG9sZCcsaUNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5jcm9zc2luZ01pbmltaXphdGlvbi5ncmVlZHlTd2l0Y2gudHlwZScsakNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5jcm9zc2luZ01pbmltaXphdGlvbi5ncmVlZHlTd2l0Y2hIaWVyYXJjaGljYWwudHlwZScsa0NlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5ub2RlUGxhY2VtZW50LnN0cmF0ZWd5JyxsQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLm5vZGVQbGFjZW1lbnQuZmF2b3JTdHJhaWdodEVkZ2VzJyxtQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLm5vZGVQbGFjZW1lbnQuYmsuZWRnZVN0cmFpZ2h0ZW5pbmcnLG5DZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQubm9kZVBsYWNlbWVudC5iay5maXhlZEFsaWdubWVudCcsb0NlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5ub2RlUGxhY2VtZW50LmxpbmVhclNlZ21lbnRzLmRlZmxlY3Rpb25EYW1wZW5pbmcnLHBDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQubm9kZVBsYWNlbWVudC5uZXR3b3JrU2ltcGxleC5ub2RlRmxleGliaWxpdHknLHFDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQubm9kZVBsYWNlbWVudC5uZXR3b3JrU2ltcGxleC5ub2RlRmxleGliaWxpdHkuZGVmYXVsdCcsckNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5lZGdlUm91dGluZy5zZWxmTG9vcERpc3RyaWJ1dGlvbicsc0NlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5lZGdlUm91dGluZy5zZWxmTG9vcE9yZGVyaW5nJyx0Q2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLmVkZ2VSb3V0aW5nLnNwbGluZXMubW9kZScsdUNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5lZGdlUm91dGluZy5zcGxpbmVzLnNsb3BweS5sYXllclNwYWNpbmdGYWN0b3InLHZDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuZWRnZVJvdXRpbmcucG9seWxpbmUuc2xvcGVkRWRnZVpvbmVXaWR0aCcsd0NlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5zcGFjaW5nLmJhc2VWYWx1ZScseENlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5zcGFjaW5nLmVkZ2VOb2RlQmV0d2VlbkxheWVycycseUNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5zcGFjaW5nLmVkZ2VFZGdlQmV0d2VlbkxheWVycycsekNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5zcGFjaW5nLm5vZGVOb2RlQmV0d2VlbkxheWVycycsQUNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5wcmlvcml0eS5kaXJlY3Rpb24nLEJDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQucHJpb3JpdHkuc2hvcnRuZXNzJyxDQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLnByaW9yaXR5LnN0cmFpZ2h0bmVzcycsRENlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5jb21wYWN0aW9uLmNvbm5lY3RlZENvbXBvbmVudHMnLEVDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuY29tcGFjdGlvbi5wb3N0Q29tcGFjdGlvbi5zdHJhdGVneScsRkNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5jb21wYWN0aW9uLnBvc3RDb21wYWN0aW9uLmNvbnN0cmFpbnRzJyxHQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLmhpZ2hEZWdyZWVOb2Rlcy50cmVhdG1lbnQnLEhDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuaGlnaERlZ3JlZU5vZGVzLnRocmVzaG9sZCcsSUNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5oaWdoRGVncmVlTm9kZXMudHJlZUhlaWdodCcsSkNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC53cmFwcGluZy5zdHJhdGVneScsS0NlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC53cmFwcGluZy5hZGRpdGlvbmFsRWRnZVNwYWNpbmcnLExDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQud3JhcHBpbmcuY29ycmVjdGlvbkZhY3RvcicsTUNlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC53cmFwcGluZy5jdXR0aW5nLnN0cmF0ZWd5JyxOQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLndyYXBwaW5nLmN1dHRpbmcuY3V0cycsT0NlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC53cmFwcGluZy5jdXR0aW5nLm1zZC5mcmVlZG9tJyxQQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLndyYXBwaW5nLnZhbGlkaWZ5LnN0cmF0ZWd5JyxRQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLndyYXBwaW5nLnZhbGlkaWZ5LmZvcmJpZGRlbkluZGljZXMnLFJDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQud3JhcHBpbmcubXVsdGlFZGdlLmltcHJvdmVDdXRzJyxTQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLndyYXBwaW5nLm11bHRpRWRnZS5kaXN0YW5jZVBlbmFsdHknLFRDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQud3JhcHBpbmcubXVsdGlFZGdlLmltcHJvdmVXcmFwcGVkRWRnZXMnLFVDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuZWRnZUxhYmVscy5zaWRlU2VsZWN0aW9uJyxWQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLmVkZ2VMYWJlbHMuY2VudGVyTGFiZWxQbGFjZW1lbnRTdHJhdGVneScsV0NlPSdvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5jb25zaWRlck1vZGVsT3JkZXIuc3RyYXRlZ3knLFhDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuY29uc2lkZXJNb2RlbE9yZGVyLnBvcnRNb2RlbE9yZGVyJyxZQ2U9J29yZy5lY2xpcHNlLmVsay5sYXllcmVkLmNvbnNpZGVyTW9kZWxPcmRlci5ub01vZGVsT3JkZXInLFpDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuY29uc2lkZXJNb2RlbE9yZGVyLmNvbXBvbmVudHMnLCRDZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuY29uc2lkZXJNb2RlbE9yZGVyLmxvbmdFZGdlU3RyYXRlZ3knLF9DZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuY29uc2lkZXJNb2RlbE9yZGVyLmNyb3NzaW5nQ291bnRlck5vZGVJbmZsdWVuY2UnLGFEZT0nb3JnLmVjbGlwc2UuZWxrLmxheWVyZWQuY29uc2lkZXJNb2RlbE9yZGVyLmNyb3NzaW5nQ291bnRlclBvcnRJbmZsdWVuY2UnLGJEZT0nbGF5ZXJpbmcnLGNEZT0nbGF5ZXJpbmcubWluV2lkdGgnLGREZT0nbGF5ZXJpbmcubm9kZVByb21vdGlvbicsZURlPSdjcm9zc2luZ01pbmltaXphdGlvbicsZkRlPSdvcmcuZWNsaXBzZS5lbGsuaGllcmFyY2h5SGFuZGxpbmcnLGdEZT0nY3Jvc3NpbmdNaW5pbWl6YXRpb24uZ3JlZWR5U3dpdGNoJyxoRGU9J25vZGVQbGFjZW1lbnQnLGlEZT0nbm9kZVBsYWNlbWVudC5iaycsakRlPSdlZGdlUm91dGluZycsa0RlPSdvcmcuZWNsaXBzZS5lbGsuZWRnZVJvdXRpbmcnLGxEZT0nc3BhY2luZycsbURlPSdwcmlvcml0eScsbkRlPSdjb21wYWN0aW9uJyxvRGU9J2NvbXBhY3Rpb24ucG9zdENvbXBhY3Rpb24nLHBEZT0nU3BlY2lmaWVzIHdoZXRoZXIgYW5kIGhvdyBwb3N0LXByb2Nlc3MgY29tcGFjdGlvbiBpcyBhcHBsaWVkLicscURlPSdoaWdoRGVncmVlTm9kZXMnLHJEZT0nd3JhcHBpbmcnLHNEZT0nd3JhcHBpbmcuY3V0dGluZycsdERlPSd3cmFwcGluZy52YWxpZGlmeScsdURlPSd3cmFwcGluZy5tdWx0aUVkZ2UnLHZEZT0nZWRnZUxhYmVscycsd0RlPSdjb25zaWRlck1vZGVsT3JkZXInLHhEZT0nb3JnLmVjbGlwc2UuZWxrLnNwYWNpbmcuY29tbWVudENvbW1lbnQnLHlEZT0nb3JnLmVjbGlwc2UuZWxrLnNwYWNpbmcuY29tbWVudE5vZGUnLHpEZT0nb3JnLmVjbGlwc2UuZWxrLnNwYWNpbmcuZWRnZUVkZ2UnLEFEZT0nb3JnLmVjbGlwc2UuZWxrLnNwYWNpbmcuZWRnZU5vZGUnLEJEZT0nb3JnLmVjbGlwc2UuZWxrLnNwYWNpbmcubGFiZWxMYWJlbCcsQ0RlPSdvcmcuZWNsaXBzZS5lbGsuc3BhY2luZy5sYWJlbFBvcnRIb3Jpem9udGFsJyxERGU9J29yZy5lY2xpcHNlLmVsay5zcGFjaW5nLmxhYmVsUG9ydFZlcnRpY2FsJyxFRGU9J29yZy5lY2xpcHNlLmVsay5zcGFjaW5nLmxhYmVsTm9kZScsRkRlPSdvcmcuZWNsaXBzZS5lbGsuc3BhY2luZy5ub2RlU2VsZkxvb3AnLEdEZT0nb3JnLmVjbGlwc2UuZWxrLnNwYWNpbmcucG9ydFBvcnQnLEhEZT0nb3JnLmVjbGlwc2UuZWxrLnNwYWNpbmcuaW5kaXZpZHVhbCcsSURlPSdvcmcuZWNsaXBzZS5lbGsucG9ydC5ib3JkZXJPZmZzZXQnLEpEZT0nb3JnLmVjbGlwc2UuZWxrLm5vTGF5b3V0JyxLRGU9J29yZy5lY2xpcHNlLmVsay5wb3J0LnNpZGUnLExEZT0nb3JnLmVjbGlwc2UuZWxrLmRlYnVnTW9kZScsTURlPSdvcmcuZWNsaXBzZS5lbGsuYWxpZ25tZW50JyxORGU9J29yZy5lY2xpcHNlLmVsay5pbnNpZGVTZWxmTG9vcHMuYWN0aXZhdGUnLE9EZT0nb3JnLmVjbGlwc2UuZWxrLmluc2lkZVNlbGZMb29wcy55bycsUERlPSdvcmcuZWNsaXBzZS5lbGsuZGlyZWN0aW9uJyxRRGU9J29yZy5lY2xpcHNlLmVsay5ub2RlTGFiZWxzLnBhZGRpbmcnLFJEZT0nb3JnLmVjbGlwc2UuZWxrLnBvcnRMYWJlbHMubmV4dFRvUG9ydElmUG9zc2libGUnLFNEZT0nb3JnLmVjbGlwc2UuZWxrLnBvcnRMYWJlbHMudHJlYXRBc0dyb3VwJyxURGU9J29yZy5lY2xpcHNlLmVsay5wb3J0QWxpZ25tZW50LmRlZmF1bHQnLFVEZT0nb3JnLmVjbGlwc2UuZWxrLnBvcnRBbGlnbm1lbnQubm9ydGgnLFZEZT0nb3JnLmVjbGlwc2UuZWxrLnBvcnRBbGlnbm1lbnQuc291dGgnLFdEZT0nb3JnLmVjbGlwc2UuZWxrLnBvcnRBbGlnbm1lbnQud2VzdCcsWERlPSdvcmcuZWNsaXBzZS5lbGsucG9ydEFsaWdubWVudC5lYXN0JyxZRGU9J29yZy5lY2xpcHNlLmVsay5jb250ZW50QWxpZ25tZW50JyxaRGU9J29yZy5lY2xpcHNlLmVsay5qdW5jdGlvblBvaW50cycsJERlPSdvcmcuZWNsaXBzZS5lbGsuZWRnZUxhYmVscy5wbGFjZW1lbnQnLF9EZT0nb3JnLmVjbGlwc2UuZWxrLnBvcnQuaW5kZXgnLGFFZT0nb3JnLmVjbGlwc2UuZWxrLmNvbW1lbnRCb3gnLGJFZT0nb3JnLmVjbGlwc2UuZWxrLmh5cGVybm9kZScsY0VlPSdvcmcuZWNsaXBzZS5lbGsucG9ydC5hbmNob3InLGRFZT0nb3JnLmVjbGlwc2UuZWxrLnBhcnRpdGlvbmluZy5hY3RpdmF0ZScsZUVlPSdvcmcuZWNsaXBzZS5lbGsucGFydGl0aW9uaW5nLnBhcnRpdGlvbicsZkVlPSdvcmcuZWNsaXBzZS5lbGsucG9zaXRpb24nLGdFZT0nb3JnLmVjbGlwc2UuZWxrLm1hcmdpbnMnLGhFZT0nb3JnLmVjbGlwc2UuZWxrLnNwYWNpbmcucG9ydHNTdXJyb3VuZGluZycsaUVlPSdvcmcuZWNsaXBzZS5lbGsuaW50ZXJhY3RpdmVMYXlvdXQnLGpFZT0nb3JnLmVjbGlwc2UuZWxrLmNvcmUudXRpbCcsa0VlPXszOjEsNDoxLDU6MSw2MDE6MX0sbEVlPSdORVRXT1JLX1NJTVBMRVgnLG1FZT0nU0lNUExFJyxuRWU9ezEwNjoxLDQ3OjF9LG9FZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5sYXllcmVkLnAxY3ljbGVzJyxwRWU9J29yZy5lY2xpcHNlLmVsay5hbGcubGF5ZXJlZC5wMmxheWVycycscUVlPXs0MTM6MSwyMzA6MX0sckVlPXs4NDY6MSwzOjEsNDoxfSxzRWU9J29yZy5lY2xpcHNlLmVsay5hbGcubGF5ZXJlZC5wM29yZGVyJyx0RWU9J29yZy5lY2xpcHNlLmVsay5hbGcubGF5ZXJlZC5wNG5vZGVzJyx1RWU9ezM6MSw0OjEsNToxLDg1NDoxfSx2RWU9MS4wRS01LHdFZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5sYXllcmVkLnA0bm9kZXMuYmsnLHhFZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5sYXllcmVkLnA1ZWRnZXMnLHlFZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5sYXllcmVkLnA1ZWRnZXMub3J0aG9nb25hbCcsekVlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLmxheWVyZWQucDVlZGdlcy5vcnRob2dvbmFsLmRpcmVjdGlvbicsQUVlPTEuMEUtNixCRWU9J29yZy5lY2xpcHNlLmVsay5hbGcubGF5ZXJlZC5wNWVkZ2VzLnNwbGluZXMnLENFZT0wLjA5OTk5OTk5OTk5OTk5OTk4LERFZT0xLjBFLTgsRUVlPTQuNzEyMzg4OTgwMzg0NjksRkVlPTMuMTQxNTkyNjUzNTg5NzkzLEdFZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5tcnRyZWUnLEhFZT0wLjEwMDAwMDAwMTQ5MDExNjEyLElFZT0nU1VQRVJfUk9PVCcsSkVlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLm1ydHJlZS5ncmFwaCcsS0VlPS0xLjc5NzY5MzEzNDg2MjMxNTdFMzA4LExFZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5tcnRyZWUuaW50ZXJtZWRpYXRlJyxNRWU9J1Byb2Nlc3NvciBjb21wdXRlIGZhbm91dCcsTkVlPXszOjEsNjoxLDQ6MSw1OjEsNTM0OjEsMTAwOjEsMTE1OjF9LE9FZT0nU2V0IG5laWdoYm9ycyBpbiBsZXZlbCcsUEVlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLm1ydHJlZS5vcHRpb25zJyxRRWU9J0RFU0NFTkRBTlRTJyxSRWU9J29yZy5lY2xpcHNlLmVsay5tcnRyZWUuY29tcGFjdGlvbicsU0VlPSdvcmcuZWNsaXBzZS5lbGsubXJ0cmVlLmVkZ2VFbmRUZXh0dXJlTGVuZ3RoJyxURWU9J29yZy5lY2xpcHNlLmVsay5tcnRyZWUudHJlZUxldmVsJyxVRWU9J29yZy5lY2xpcHNlLmVsay5tcnRyZWUucG9zaXRpb25Db25zdHJhaW50JyxWRWU9J29yZy5lY2xpcHNlLmVsay5tcnRyZWUud2VpZ2h0aW5nJyxXRWU9J29yZy5lY2xpcHNlLmVsay5tcnRyZWUuZWRnZVJvdXRpbmdNb2RlJyxYRWU9J29yZy5lY2xpcHNlLmVsay5tcnRyZWUuc2VhcmNoT3JkZXInLFlFZT0nUG9zaXRpb24gQ29uc3RyYWludCcsWkVlPSdvcmcuZWNsaXBzZS5lbGsubXJ0cmVlJywkRWU9J29yZy5lY2xpcHNlLmVsay50cmVlJyxfRWU9J1Byb2Nlc3NvciBhcnJhbmdlIGxldmVsJyxhRmU9J29yZy5lY2xpcHNlLmVsay5hbGcubXJ0cmVlLnAyb3JkZXInLGJGZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5tcnRyZWUucDRyb3V0ZScsY0ZlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLnJhZGlhbCcsZEZlPTYuMjgzMTg1MzA3MTc5NTg2LGVGZT0nQmVmb3JlJyxmRmU9NC45RS0zMjQsZ0ZlPSdBZnRlcicsaEZlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLnJhZGlhbC5pbnRlcm1lZGlhdGUnLGlGZT0nQ09NUEFDVElPTicsakZlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLnJhZGlhbC5pbnRlcm1lZGlhdGUuY29tcGFjdGlvbicsa0ZlPXszOjEsNDoxLDU6MSwxMDA6MX0sbEZlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLnJhZGlhbC5pbnRlcm1lZGlhdGUub3B0aW1pemF0aW9uJyxtRmU9J05vIGltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSBmb3IgdGhlIGxheW91dCBvcHRpb24gJyxuRmU9J29yZy5lY2xpcHNlLmVsay5hbGcucmFkaWFsLm9wdGlvbnMnLG9GZT0nb3JnLmVjbGlwc2UuZWxrLnJhZGlhbC5jZW50ZXJPblJvb3QnLHBGZT0nb3JnLmVjbGlwc2UuZWxrLnJhZGlhbC5vcmRlcklkJyxxRmU9J29yZy5lY2xpcHNlLmVsay5yYWRpYWwucmFkaXVzJyxyRmU9J29yZy5lY2xpcHNlLmVsay5yYWRpYWwucm90YXRlJyxzRmU9J29yZy5lY2xpcHNlLmVsay5yYWRpYWwuY29tcGFjdG9yJyx0RmU9J29yZy5lY2xpcHNlLmVsay5yYWRpYWwuY29tcGFjdGlvblN0ZXBTaXplJyx1RmU9J29yZy5lY2xpcHNlLmVsay5yYWRpYWwuc29ydGVyJyx2RmU9J29yZy5lY2xpcHNlLmVsay5yYWRpYWwud2VkZ2VDcml0ZXJpYScsd0ZlPSdvcmcuZWNsaXBzZS5lbGsucmFkaWFsLm9wdGltaXphdGlvbkNyaXRlcmlhJyx4RmU9J29yZy5lY2xpcHNlLmVsay5yYWRpYWwucm90YXRpb24udGFyZ2V0QW5nbGUnLHlGZT0nb3JnLmVjbGlwc2UuZWxrLnJhZGlhbC5yb3RhdGlvbi5jb21wdXRlQWRkaXRpb25hbFdlZGdlU3BhY2UnLHpGZT0nb3JnLmVjbGlwc2UuZWxrLnJhZGlhbC5yb3RhdGlvbi5vdXRnb2luZ0VkZ2VBbmdsZXMnLEFGZT0nQ29tcGFjdGlvbicsQkZlPSdyb3RhdGlvbicsQ0ZlPSdvcmcuZWNsaXBzZS5lbGsucmFkaWFsJyxERmU9J29yZy5lY2xpcHNlLmVsay5hbGcucmFkaWFsLnAxcG9zaXRpb24ud2VkZ2UnLEVGZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5yYWRpYWwuc29ydGluZycsRkZlPTUuNDk3Nzg3MTQzNzgyMTM4LEdGZT0zLjkyNjk5MDgxNjk4NzI0MTQsSEZlPTIuMzU2MTk0NDkwMTkyMzQ1LElGZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5yZWN0cGFja2luZycsSkZlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLnJlY3RwYWNraW5nLmludGVybWVkaWF0ZScsS0ZlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLnJlY3RwYWNraW5nLm9wdGlvbnMnLExGZT0nb3JnLmVjbGlwc2UuZWxrLnJlY3RwYWNraW5nLnRyeWJveCcsTUZlPSdvcmcuZWNsaXBzZS5lbGsucmVjdHBhY2tpbmcuY3VycmVudFBvc2l0aW9uJyxORmU9J29yZy5lY2xpcHNlLmVsay5yZWN0cGFja2luZy5kZXNpcmVkUG9zaXRpb24nLE9GZT0nb3JnLmVjbGlwc2UuZWxrLnJlY3RwYWNraW5nLmluTmV3Um93JyxQRmU9J29yZy5lY2xpcHNlLmVsay5yZWN0cGFja2luZy53aWR0aEFwcHJveGltYXRpb24uc3RyYXRlZ3knLFFGZT0nb3JnLmVjbGlwc2UuZWxrLnJlY3RwYWNraW5nLndpZHRoQXBwcm94aW1hdGlvbi50YXJnZXRXaWR0aCcsUkZlPSdvcmcuZWNsaXBzZS5lbGsucmVjdHBhY2tpbmcud2lkdGhBcHByb3hpbWF0aW9uLm9wdGltaXphdGlvbkdvYWwnLFNGZT0nb3JnLmVjbGlwc2UuZWxrLnJlY3RwYWNraW5nLndpZHRoQXBwcm94aW1hdGlvbi5sYXN0UGxhY2VTaGlmdCcsVEZlPSdvcmcuZWNsaXBzZS5lbGsucmVjdHBhY2tpbmcucGFja2luZy5zdHJhdGVneScsVUZlPSdvcmcuZWNsaXBzZS5lbGsucmVjdHBhY2tpbmcucGFja2luZy5jb21wYWN0aW9uLnJvd0hlaWdodFJlZXZhbHVhdGlvbicsVkZlPSdvcmcuZWNsaXBzZS5lbGsucmVjdHBhY2tpbmcucGFja2luZy5jb21wYWN0aW9uLml0ZXJhdGlvbnMnLFdGZT0nb3JnLmVjbGlwc2UuZWxrLnJlY3RwYWNraW5nLndoaXRlU3BhY2VFbGltaW5hdGlvbi5zdHJhdGVneScsWEZlPSd3aWR0aEFwcHJveGltYXRpb24nLFlGZT0nQ29tcGFjdGlvbiBTdHJhdGVneScsWkZlPSdwYWNraW5nLmNvbXBhY3Rpb24nLCRGZT0nb3JnLmVjbGlwc2UuZWxrLnJlY3RwYWNraW5nJyxfRmU9J29yZy5lY2xpcHNlLmVsay5hbGcucmVjdHBhY2tpbmcucDF3aWR0aGFwcHJveGltYXRpb24nLGFHZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5yZWN0cGFja2luZy5wMnBhY2tpbmcnLGJHZT0nTm8gQ29tcGFjdGlvbicsY0dlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLnJlY3RwYWNraW5nLnAzd2hpdGVzcGFjZWVsaW1pbmF0aW9uJyxkR2U9J29yZy5lY2xpcHNlLmVsay5hbGcucmVjdHBhY2tpbmcudXRpbCcsZUdlPSdObyBpbXBsZW1lbnRhdGlvbiBhdmFpbGFibGUgZm9yICcsZkdlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLnNwb3JlJyxnR2U9J29yZy5lY2xpcHNlLmVsay5hbGcuc3BvcmUub3B0aW9ucycsaEdlPSdvcmcuZWNsaXBzZS5lbGsuc3BvcmVDb21wYWN0aW9uJyxpR2U9J29yZy5lY2xpcHNlLmVsay51bmRlcmx5aW5nTGF5b3V0QWxnb3JpdGhtJyxqR2U9J29yZy5lY2xpcHNlLmVsay5wcm9jZXNzaW5nT3JkZXIudHJlZUNvbnN0cnVjdGlvbicsa0dlPSdvcmcuZWNsaXBzZS5lbGsucHJvY2Vzc2luZ09yZGVyLnNwYW5uaW5nVHJlZUNvc3RGdW5jdGlvbicsbEdlPSdvcmcuZWNsaXBzZS5lbGsucHJvY2Vzc2luZ09yZGVyLnByZWZlcnJlZFJvb3QnLG1HZT0nb3JnLmVjbGlwc2UuZWxrLnByb2Nlc3NpbmdPcmRlci5yb290U2VsZWN0aW9uJyxuR2U9J29yZy5lY2xpcHNlLmVsay5zdHJ1Y3R1cmUuc3RydWN0dXJlRXh0cmFjdGlvblN0cmF0ZWd5JyxvR2U9J29yZy5lY2xpcHNlLmVsay5jb21wYWN0aW9uLmNvbXBhY3Rpb25TdHJhdGVneScscEdlPSdvcmcuZWNsaXBzZS5lbGsuY29tcGFjdGlvbi5vcnRob2dvbmFsJyxxR2U9J29yZy5lY2xpcHNlLmVsay5vdmVybGFwUmVtb3ZhbC5tYXhJdGVyYXRpb25zJyxyR2U9J29yZy5lY2xpcHNlLmVsay5vdmVybGFwUmVtb3ZhbC5ydW5TY2FubGluZScsc0dlPSdwcm9jZXNzaW5nT3JkZXInLHRHZT0nb3ZlcmxhcFJlbW92YWwnLHVHZT0nb3JnLmVjbGlwc2UuZWxrLnNwb3JlT3ZlcmxhcCcsdkdlPSdvcmcuZWNsaXBzZS5lbGsuYWxnLnNwb3JlLnAxc3RydWN0dXJlJyx3R2U9J29yZy5lY2xpcHNlLmVsay5hbGcuc3BvcmUucDJwcm9jZXNzaW5nb3JkZXInLHhHZT0nb3JnLmVjbGlwc2UuZWxrLmFsZy5zcG9yZS5wM2V4ZWN1dGlvbicseUdlPSdUb3Bkb3duIExheW91dCcsekdlPSdJbnZhbGlkIGluZGV4OiAnLEFHZT0nb3JnLmVjbGlwc2UuZWxrLmNvcmUuYWxnJyxCR2U9ezM0MToxfSxDR2U9ezI5NToxfSxER2U9J01ha2Ugc3VyZSBpdHMgdHlwZSBpcyByZWdpc3RlcmVkIHdpdGggdGhlICcsRUdlPScgdXRpbGl0eSBjbGFzcy4nLEZHZT0ndHJ1ZScsR0dlPSdmYWxzZScsSEdlPVwiQ291bGRuJ3QgY2xvbmUgcHJvcGVydHkgJ1wiLElHZT0wLjA1LEpHZT0nb3JnLmVjbGlwc2UuZWxrLmNvcmUub3B0aW9ucycsS0dlPTEuMjk5OTk5OTUyMzE2Mjg0MixMR2U9J29yZy5lY2xpcHNlLmVsay5ib3gnLE1HZT0nb3JnLmVjbGlwc2UuZWxrLmV4cGFuZE5vZGVzJyxOR2U9J29yZy5lY2xpcHNlLmVsay5ib3gucGFja2luZ01vZGUnLE9HZT0nb3JnLmVjbGlwc2UuZWxrLmFsZ29yaXRobScsUEdlPSdvcmcuZWNsaXBzZS5lbGsucmVzb2x2ZWRBbGdvcml0aG0nLFFHZT0nb3JnLmVjbGlwc2UuZWxrLmJlbmRQb2ludHMnLFJHZT0nb3JnLmVjbGlwc2UuZWxrLmxhYmVsTWFuYWdlcicsU0dlPSdvcmcuZWNsaXBzZS5lbGsuc2NhbGVGYWN0b3InLFRHZT0nb3JnLmVjbGlwc2UuZWxrLmNoaWxkQXJlYVdpZHRoJyxVR2U9J29yZy5lY2xpcHNlLmVsay5jaGlsZEFyZWFIZWlnaHQnLFZHZT0nb3JnLmVjbGlwc2UuZWxrLmFuaW1hdGUnLFdHZT0nb3JnLmVjbGlwc2UuZWxrLmFuaW1UaW1lRmFjdG9yJyxYR2U9J29yZy5lY2xpcHNlLmVsay5sYXlvdXRBbmNlc3RvcnMnLFlHZT0nb3JnLmVjbGlwc2UuZWxrLm1heEFuaW1UaW1lJyxaR2U9J29yZy5lY2xpcHNlLmVsay5taW5BbmltVGltZScsJEdlPSdvcmcuZWNsaXBzZS5lbGsucHJvZ3Jlc3NCYXInLF9HZT0nb3JnLmVjbGlwc2UuZWxrLnZhbGlkYXRlR3JhcGgnLGFIZT0nb3JnLmVjbGlwc2UuZWxrLnZhbGlkYXRlT3B0aW9ucycsYkhlPSdvcmcuZWNsaXBzZS5lbGsuem9vbVRvRml0JyxjSGU9J29yZy5lY2xpcHNlLmVsay5mb250Lm5hbWUnLGRIZT0nb3JnLmVjbGlwc2UuZWxrLmZvbnQuc2l6ZScsZUhlPSdvcmcuZWNsaXBzZS5lbGsudG9wZG93bi5zaXplQXBwcm94aW1hdG9yJyxmSGU9J29yZy5lY2xpcHNlLmVsay50b3Bkb3duLnNjYWxlQ2FwJyxnSGU9J29yZy5lY2xpcHNlLmVsay5lZGdlLnR5cGUnLGhIZT0ncGFydGl0aW9uaW5nJyxpSGU9J25vZGVMYWJlbHMnLGpIZT0ncG9ydEFsaWdubWVudCcsa0hlPSdub2RlU2l6ZScsbEhlPSdwb3J0JyxtSGU9J3BvcnRMYWJlbHMnLG5IZT0ndG9wZG93bicsb0hlPSdpbnNpZGVTZWxmTG9vcHMnLHBIZT0nb3JnLmVjbGlwc2UuZWxrLmZpeGVkJyxxSGU9J29yZy5lY2xpcHNlLmVsay5yYW5kb20nLHJIZT17MzoxLDM0OjEsMjI6MSwzNDc6MX0sc0hlPSdwb3J0IG11c3QgaGF2ZSBhIHBhcmVudCBub2RlIHRvIGNhbGN1bGF0ZSB0aGUgcG9ydCBzaWRlJyx0SGU9J1RoZSBlZGdlIG5lZWRzIHRvIGhhdmUgZXhhY3RseSBvbmUgZWRnZSBzZWN0aW9uLiBGb3VuZDogJyx1SGU9J29yZy5lY2xpcHNlLmVsay5jb3JlLnV0aWwuYWRhcHRlcnMnLHZIZT0nb3JnLmVjbGlwc2UuZW1mLmVjb3JlJyx3SGU9J29yZy5lY2xpcHNlLmVsay5ncmFwaCcseEhlPSdFTWFwUHJvcGVydHlIb2xkZXInLHlIZT0nRWxrQmVuZFBvaW50Jyx6SGU9J0Vsa0dyYXBoRWxlbWVudCcsQUhlPSdFbGtDb25uZWN0YWJsZVNoYXBlJyxCSGU9J0Vsa0VkZ2UnLENIZT0nRWxrRWRnZVNlY3Rpb24nLERIZT0nRU1vZGVsRWxlbWVudCcsRUhlPSdFTmFtZWRFbGVtZW50JyxGSGU9J0Vsa0xhYmVsJyxHSGU9J0Vsa05vZGUnLEhIZT0nRWxrUG9ydCcsSUhlPXs5NDoxLDkzOjF9LEpIZT0nb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuaW1wbCcsS0hlPVwiVGhlIGZlYXR1cmUgJ1wiLExIZT1cIicgaXMgbm90IGEgdmFsaWQgY2hhbmdlYWJsZSBmZWF0dXJlXCIsTUhlPSdFeHBlY3RpbmcgbnVsbCcsTkhlPVwiJyBpcyBub3QgYSB2YWxpZCBmZWF0dXJlXCIsT0hlPSdUaGUgZmVhdHVyZSBJRCcsUEhlPScgaXMgbm90IGEgdmFsaWQgZmVhdHVyZSBJRCcsUUhlPTMyNzY4LFJIZT17MTEwOjEsOTQ6MSw5MzoxLDU4OjEsNTQ6MSw5OToxfSxTSGU9J29yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsJyxUSGU9J29yZy5lY2xpcHNlLmVsay5ncmFwaC5pbXBsJyxVSGU9J1JlY3Vyc2l2ZSBjb250YWlubWVudCBub3QgYWxsb3dlZCBmb3IgJyxWSGU9XCJUaGUgZGF0YXR5cGUgJ1wiLFdIZT1cIicgaXMgbm90IGEgdmFsaWQgY2xhc3NpZmllclwiLFhIZT1cIlRoZSB2YWx1ZSAnXCIsWUhlPXsxOTU6MSwzOjEsNDoxfSxaSGU9XCJUaGUgY2xhc3MgJ1wiLCRIZT0naHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbGsvRWxrR3JhcGgnLF9IZT0ncHJvcGVydHknLGFJZT0ndmFsdWUnLGJJZT0nc291cmNlJyxjSWU9J3Byb3BlcnRpZXMnLGRJZT0naWRlbnRpZmllcicsZUllPSdoZWlnaHQnLGZJZT0nd2lkdGgnLGdJZT0ncGFyZW50JyxoSWU9J3RleHQnLGlJZT0nY2hpbGRyZW4nLGpJZT0naGllcmFyY2hpY2FsJyxrSWU9J3NvdXJjZXMnLGxJZT0ndGFyZ2V0cycsbUllPSdzZWN0aW9ucycsbkllPSdiZW5kUG9pbnRzJyxvSWU9J291dGdvaW5nU2hhcGUnLHBJZT0naW5jb21pbmdTaGFwZScscUllPSdvdXRnb2luZ1NlY3Rpb25zJyxySWU9J2luY29taW5nU2VjdGlvbnMnLHNJZT0nb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsJyx0SWU9J1NldmVyZSBpbXBsZW1lbnRhdGlvbiBlcnJvciBpbiB0aGUgSnNvbiB0byBFbGtHcmFwaCBpbXBvcnRlci4nLHVJZT0naWQnLHZJZT0nb3JnLmVjbGlwc2UuZWxrLmdyYXBoLmpzb24nLHdJZT0nVW5oYW5kbGVkIHBhcmFtZXRlciB0eXBlczogJyx4SWU9J3N0YXJ0UG9pbnQnLHlJZT1cIkFuIGVkZ2UgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBzb3VyY2UgYW5kIG9uZSB0YXJnZXQgKGVkZ2UgaWQ6ICdcIix6SWU9XCInKS5cIixBSWU9J1JlZmVyZW5jZWQgZWRnZSBzZWN0aW9uIGRvZXMgbm90IGV4aXN0OiAnLEJJZT1cIiAoZWRnZSBpZDogJ1wiLENJZT0ndGFyZ2V0JyxESWU9J3NvdXJjZVBvaW50JyxFSWU9J3RhcmdldFBvaW50JyxGSWU9J2dyb3VwJyxHSWU9J25hbWUnLEhJZT0nY29ubmVjdGFibGVTaGFwZSBjYW5ub3QgYmUgbnVsbCcsSUllPSdlZGdlIGNhbm5vdCBiZSBudWxsJyxKSWU9XCJQYXNzZWQgZWRnZSBpcyBub3QgJ3NpbXBsZScuXCIsS0llPSdvcmcuZWNsaXBzZS5lbGsuZ3JhcGgudXRpbCcsTEllPVwiVGhlICdubyBkdXBsaWNhdGVzJyBjb25zdHJhaW50IGlzIHZpb2xhdGVkXCIsTUllPSd0YXJnZXRJbmRleD0nLE5JZT0nLCBzaXplPScsT0llPSdzb3VyY2VJbmRleD0nLFBJZT17MzoxLDQ6MSwyMDoxLDMxOjEsNTY6MSwxNjoxLDE1OjEsNTk6MSw3MDoxLDY2OjEsNjE6MX0sUUllPXszOjEsNDoxLDIwOjEsMzE6MSw1NjoxLDE2OjEsNTE6MSwxNToxLDU5OjEsNzA6MSw2NjoxLDYxOjEsNTk2OjF9LFJJZT0nbG9nZ2luZycsU0llPSdtZWFzdXJlRXhlY3V0aW9uVGltZScsVEllPSdwYXJzZXIucGFyc2UuMScsVUllPSdwYXJzZXIucGFyc2UuMicsVkllPSdwYXJzZXIubmV4dC4xJyxXSWU9J3BhcnNlci5uZXh0LjInLFhJZT0ncGFyc2VyLm5leHQuMycsWUllPSdwYXJzZXIubmV4dC40JyxaSWU9J3BhcnNlci5mYWN0b3IuMScsJEllPSdwYXJzZXIuZmFjdG9yLjInLF9JZT0ncGFyc2VyLmZhY3Rvci4zJyxhSmU9J3BhcnNlci5mYWN0b3IuNCcsYkplPSdwYXJzZXIuZmFjdG9yLjUnLGNKZT0ncGFyc2VyLmZhY3Rvci42JyxkSmU9J3BhcnNlci5hdG9tLjEnLGVKZT0ncGFyc2VyLmF0b20uMicsZkplPSdwYXJzZXIuYXRvbS4zJyxnSmU9J3BhcnNlci5hdG9tLjQnLGhKZT0ncGFyc2VyLmF0b20uNScsaUplPSdwYXJzZXIuY2MuMScsakplPSdwYXJzZXIuY2MuMicsa0plPSdwYXJzZXIuY2MuMycsbEplPSdwYXJzZXIuY2MuNScsbUplPSdwYXJzZXIuY2MuNicsbkplPSdwYXJzZXIuY2MuNycsb0plPSdwYXJzZXIuY2MuOCcscEplPSdwYXJzZXIub3BlLjEnLHFKZT0ncGFyc2VyLm9wZS4yJyxySmU9J3BhcnNlci5vcGUuMycsc0plPSdwYXJzZXIuZGVzY2FwZS4xJyx0SmU9J3BhcnNlci5kZXNjYXBlLjInLHVKZT0ncGFyc2VyLmRlc2NhcGUuMycsdkplPSdwYXJzZXIuZGVzY2FwZS40Jyx3SmU9J3BhcnNlci5kZXNjYXBlLjUnLHhKZT0ncGFyc2VyLnByb2Nlc3MuMScseUplPSdwYXJzZXIucXVhbnRpZmllci4xJyx6SmU9J3BhcnNlci5xdWFudGlmaWVyLjInLEFKZT0ncGFyc2VyLnF1YW50aWZpZXIuMycsQkplPSdwYXJzZXIucXVhbnRpZmllci40JyxDSmU9J3BhcnNlci5xdWFudGlmaWVyLjUnLERKZT0nb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnknLEVKZT17NDI0OjEsNjg2OjF9LEZKZT17MzoxLDQ6MSwyMDoxLDMxOjEsNTY6MSwxNjoxLDE1OjEsNzA6MSw2MToxfSxHSmU9ezM3ODoxLDE1MjoxfSxISmU9J2luZGV4PScsSUplPXszOjEsNDoxLDU6MSwxMjk6MX0sSkplPXszOjEsNDoxLDIwOjEsMzE6MSw1NjoxLDE2OjEsMTU6MSw1OToxLDcwOjEsNjE6MX0sS0plPXszOjEsNjoxLDQ6MSw1OjEsMTk4OjF9LExKZT17MzoxLDQ6MSw1OjEsMTczOjEsMzc5OjF9LE1KZT0nOy8/OkAmPSskLCcsTkplPSdpbnZhbGlkIGF1dGhvcml0eTogJyxPSmU9J0VBbm5vdGF0aW9uJyxQSmU9J0VUeXBlZEVsZW1lbnQnLFFKZT0nRVN0cnVjdHVyYWxGZWF0dXJlJyxSSmU9J0VBdHRyaWJ1dGUnLFNKZT0nRUNsYXNzaWZpZXInLFRKZT0nRUVudW1MaXRlcmFsJyxVSmU9J0VHZW5lcmljVHlwZScsVkplPSdFT3BlcmF0aW9uJyxXSmU9J0VQYXJhbWV0ZXInLFhKZT0nRVJlZmVyZW5jZScsWUplPSdFVHlwZVBhcmFtZXRlcicsWkplPSdvcmcuZWNsaXBzZS5lbWYuZWNvcmUudXRpbCcsJEplPXs3OToxfSxfSmU9ezM6MSwyMDoxLDE2OjEsMTU6MSw2MToxLDU5NzoxLDc5OjEsNzE6MSw5NzoxfSxhS2U9J29yZy5lY2xpcHNlLmVtZi5lY29yZS51dGlsLkZlYXR1cmVNYXAkRW50cnknLGJLZT04MTkyLGNLZT0yMDQ4LGRLZT0nYnl0ZScsZUtlPSdjaGFyJyxmS2U9J2RvdWJsZScsZ0tlPSdmbG9hdCcsaEtlPSdpbnQnLGlLZT0nbG9uZycsaktlPSdzaG9ydCcsa0tlPSdqYXZhLmxhbmcuT2JqZWN0JyxsS2U9ezM6MSw0OjEsNToxLDI1NDoxfSxtS2U9ezM6MSw0OjEsNToxLDY4ODoxfSxuS2U9ezM6MSw0OjEsMjA6MSwzMToxLDU2OjEsMTY6MSwxNToxLDU5OjEsNzA6MSw2NjoxLDYxOjEsNzE6MX0sb0tlPXszOjEsNDoxLDIwOjEsMzE6MSw1NjoxLDE2OjEsMTU6MSw1OToxLDcwOjEsNjY6MSw2MToxLDc5OjEsNzE6MSw5NzoxfSxwS2U9J21peGVkJyxxS2U9J2h0dHA6Ly8vb3JnL2VjbGlwc2UvZW1mL2Vjb3JlL3V0aWwvRXh0ZW5kZWRNZXRhRGF0YScscktlPSdraW5kJyxzS2U9ezM6MSw0OjEsNToxLDY4OToxfSx0S2U9ezM6MSw0OjEsMjA6MSwzMToxLDU2OjEsMTY6MSwxNToxLDcwOjEsNjE6MSw3OToxLDcxOjEsOTc6MX0sdUtlPXsyMDoxLDMxOjEsNTY6MSwxNjoxLDE1OjEsNjE6MSw3MToxfSx2S2U9ezUxOjEsMTI4OjEsMjg3OjF9LHdLZT17NzY6MSwzNDM6MX0seEtlPVwiVGhlIHZhbHVlIG9mIHR5cGUgJ1wiLHlLZT1cIicgbXVzdCBiZSBvZiB0eXBlICdcIix6S2U9MTM1MixBS2U9J2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUnLEJLZT0tMzI3NjgsQ0tlPSdjb25zdHJhaW50cycsREtlPSdiYXNlVHlwZScsRUtlPSdnZXRFU3RydWN0dXJhbEZlYXR1cmUnLEZLZT0nZ2V0RmVhdHVyZUlEJyxHS2U9J2ZlYXR1cmUnLEhLZT0nZ2V0T3BlcmF0aW9uSUQnLElLZT0nb3BlcmF0aW9uJyxKS2U9J2RlZmF1bHRWYWx1ZScsS0tlPSdlVHlwZVBhcmFtZXRlcnMnLExLZT0naXNJbnN0YW5jZScsTUtlPSdnZXRFRW51bUxpdGVyYWwnLE5LZT0nZUNvbnRhaW5pbmdDbGFzcycsT0tlPXs1NzoxfSxQS2U9ezM6MSw0OjEsNToxLDEyNDoxfSxRS2U9J29yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZScsUktlPXs5NDoxLDkzOjEsNTk5OjEsMjAzNDoxfSxTS2U9J29yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5pbXBsJyxUS2U9J3Vuc3BlY2lmaWVkJyxVS2U9J3NpbXBsZScsVktlPSdhdHRyaWJ1dGUnLFdLZT0nYXR0cmlidXRlV2lsZGNhcmQnLFhLZT0nZWxlbWVudCcsWUtlPSdlbGVtZW50V2lsZGNhcmQnLFpLZT0nY29sbGFwc2UnLCRLZT0naXRlbVR5cGUnLF9LZT0nbmFtZXNwYWNlJyxhTGU9JyMjdGFyZ2V0TmFtZXNwYWNlJyxiTGU9J3doaXRlU3BhY2UnLGNMZT0nd2lsZGNhcmRzJyxkTGU9J2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDMvWE1MVHlwZScsZUxlPScjI2FueScsZkxlPSd1bmluaXRpYWxpemVkJyxnTGU9J1RoZSBtdWx0aXBsaWNpdHkgY29uc3RyYWludCBpcyB2aW9sYXRlZCcsaExlPSdvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1sLnR5cGUnLGlMZT0nUHJvY2Vzc2luZ0luc3RydWN0aW9uJyxqTGU9J1NpbXBsZUFueVR5cGUnLGtMZT0nWE1MVHlwZURvY3VtZW50Um9vdCcsbExlPSdvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1sLnR5cGUuaW1wbCcsbUxlPSdJTkYnLG5MZT0ncHJvY2Vzc2luZycsb0xlPSdFTlRJVElFU18uX2Jhc2UnLHBMZT0nbWluTGVuZ3RoJyxxTGU9J0VOVElUWScsckxlPSdOQ05hbWUnLHNMZT0nSURSRUZTXy5fYmFzZScsdExlPSdpbnRlZ2VyJyx1TGU9J3Rva2VuJyx2TGU9J3BhdHRlcm4nLHdMZT0nW2EtekEtWl17MSw4fSgtW2EtekEtWjAtOV17MSw4fSkqJyx4TGU9J1xcXFxpXFxcXGMqJyx5TGU9J1tcXFxcaS1bOl1dW1xcXFxjLVs6XV0qJyx6TGU9J25vblBvc2l0aXZlSW50ZWdlcicsQUxlPSdtYXhJbmNsdXNpdmUnLEJMZT0nTk1UT0tFTicsQ0xlPSdOTVRPS0VOU18uX2Jhc2UnLERMZT0nbm9uTmVnYXRpdmVJbnRlZ2VyJyxFTGU9J21pbkluY2x1c2l2ZScsRkxlPSdub3JtYWxpemVkU3RyaW5nJyxHTGU9J3Vuc2lnbmVkQnl0ZScsSExlPSd1bnNpZ25lZEludCcsSUxlPScxODQ0Njc0NDA3MzcwOTU1MTYxNScsSkxlPSd1bnNpZ25lZFNob3J0JyxLTGU9J3Byb2Nlc3NpbmdJbnN0cnVjdGlvbicsTExlPSdvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1sLnR5cGUuaW50ZXJuYWwnLE1MZT0xMTE0MTExLE5MZT0nSW50ZXJuYWwgRXJyb3I6IHNob3J0aGFuZHM6IFxcXFx1JyxPTGU9J3htbDppc0RpZ2l0JyxQTGU9J3htbDppc1dvcmQnLFFMZT0neG1sOmlzU3BhY2UnLFJMZT0neG1sOmlzTmFtZUNoYXInLFNMZT0neG1sOmlzSW5pdGlhbE5hbWVDaGFyJyxUTGU9JzA5XFx1MDY2MFxcdTA2NjlcXHUwNkYwXFx1MDZGOVxcdTA5NjZcXHUwOTZGXFx1MDlFNlxcdTA5RUZcXHUwQTY2XFx1MEE2RlxcdTBBRTZcXHUwQUVGXFx1MEI2NlxcdTBCNkZcXHUwQkU3XFx1MEJFRlxcdTBDNjZcXHUwQzZGXFx1MENFNlxcdTBDRUZcXHUwRDY2XFx1MEQ2RlxcdTBFNTBcXHUwRTU5XFx1MEVEMFxcdTBFRDlcXHUwRjIwXFx1MEYyOScsVUxlPSdBWmF6XFx4QzBcXHhENlxceEQ4XFx4RjZcXHhGOFxcdTAxMzFcXHUwMTM0XFx1MDEzRVxcdTAxNDFcXHUwMTQ4XFx1MDE0QVxcdTAxN0VcXHUwMTgwXFx1MDFDM1xcdTAxQ0RcXHUwMUYwXFx1MDFGNFxcdTAxRjVcXHUwMUZBXFx1MDIxN1xcdTAyNTBcXHUwMkE4XFx1MDJCQlxcdTAyQzFcXHUwMzg2XFx1MDM4NlxcdTAzODhcXHUwMzhBXFx1MDM4Q1xcdTAzOENcXHUwMzhFXFx1MDNBMVxcdTAzQTNcXHUwM0NFXFx1MDNEMFxcdTAzRDZcXHUwM0RBXFx1MDNEQVxcdTAzRENcXHUwM0RDXFx1MDNERVxcdTAzREVcXHUwM0UwXFx1MDNFMFxcdTAzRTJcXHUwM0YzXFx1MDQwMVxcdTA0MENcXHUwNDBFXFx1MDQ0RlxcdTA0NTFcXHUwNDVDXFx1MDQ1RVxcdTA0ODFcXHUwNDkwXFx1MDRDNFxcdTA0QzdcXHUwNEM4XFx1MDRDQlxcdTA0Q0NcXHUwNEQwXFx1MDRFQlxcdTA0RUVcXHUwNEY1XFx1MDRGOFxcdTA0RjlcXHUwNTMxXFx1MDU1NlxcdTA1NTlcXHUwNTU5XFx1MDU2MVxcdTA1ODZcXHUwNUQwXFx1MDVFQVxcdTA1RjBcXHUwNUYyXFx1MDYyMVxcdTA2M0FcXHUwNjQxXFx1MDY0QVxcdTA2NzFcXHUwNkI3XFx1MDZCQVxcdTA2QkVcXHUwNkMwXFx1MDZDRVxcdTA2RDBcXHUwNkQzXFx1MDZENVxcdTA2RDVcXHUwNkU1XFx1MDZFNlxcdTA5MDVcXHUwOTM5XFx1MDkzRFxcdTA5M0RcXHUwOTU4XFx1MDk2MVxcdTA5ODVcXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzXFx1MDlBOFxcdTA5QUFcXHUwOUIwXFx1MDlCMlxcdTA5QjJcXHUwOUI2XFx1MDlCOVxcdTA5RENcXHUwOUREXFx1MDlERlxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTBBMDVcXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzXFx1MEEyOFxcdTBBMkFcXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OVxcdTBBNUNcXHUwQTVFXFx1MEE1RVxcdTBBNzJcXHUwQTc0XFx1MEE4NVxcdTBBOEJcXHUwQThEXFx1MEE4RFxcdTBBOEZcXHUwQTkxXFx1MEE5M1xcdTBBQThcXHUwQUFBXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNVxcdTBBQjlcXHUwQUJEXFx1MEFCRFxcdTBBRTBcXHUwQUUwXFx1MEIwNVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTNcXHUwQjI4XFx1MEIyQVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzZcXHUwQjM5XFx1MEIzRFxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUZcXHUwQjYxXFx1MEI4NVxcdTBCOEFcXHUwQjhFXFx1MEI5MFxcdTBCOTJcXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4XFx1MEJBQVxcdTBCQUVcXHUwQkI1XFx1MEJCN1xcdTBCQjlcXHUwQzA1XFx1MEMwQ1xcdTBDMEVcXHUwQzEwXFx1MEMxMlxcdTBDMjhcXHUwQzJBXFx1MEMzM1xcdTBDMzVcXHUwQzM5XFx1MEM2MFxcdTBDNjFcXHUwQzg1XFx1MEM4Q1xcdTBDOEVcXHUwQzkwXFx1MEM5MlxcdTBDQThcXHUwQ0FBXFx1MENCM1xcdTBDQjVcXHUwQ0I5XFx1MENERVxcdTBDREVcXHUwQ0UwXFx1MENFMVxcdTBEMDVcXHUwRDBDXFx1MEQwRVxcdTBEMTBcXHUwRDEyXFx1MEQyOFxcdTBEMkFcXHUwRDM5XFx1MEQ2MFxcdTBENjFcXHUwRTAxXFx1MEUyRVxcdTBFMzBcXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwXFx1MEU0NVxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThBXFx1MEU4RFxcdTBFOERcXHUwRTk0XFx1MEU5N1xcdTBFOTlcXHUwRTlGXFx1MEVBMVxcdTBFQTNcXHUwRUE1XFx1MEVBNVxcdTBFQTdcXHUwRUE3XFx1MEVBQVxcdTBFQUJcXHUwRUFEXFx1MEVBRVxcdTBFQjBcXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVCRFxcdTBFQzBcXHUwRUM0XFx1MEY0MFxcdTBGNDdcXHUwRjQ5XFx1MEY2OVxcdTEwQTBcXHUxMEM1XFx1MTBEMFxcdTEwRjZcXHUxMTAwXFx1MTEwMFxcdTExMDJcXHUxMTAzXFx1MTEwNVxcdTExMDdcXHUxMTA5XFx1MTEwOVxcdTExMEJcXHUxMTBDXFx1MTEwRVxcdTExMTJcXHUxMTNDXFx1MTEzQ1xcdTExM0VcXHUxMTNFXFx1MTE0MFxcdTExNDBcXHUxMTRDXFx1MTE0Q1xcdTExNEVcXHUxMTRFXFx1MTE1MFxcdTExNTBcXHUxMTU0XFx1MTE1NVxcdTExNTlcXHUxMTU5XFx1MTE1RlxcdTExNjFcXHUxMTYzXFx1MTE2M1xcdTExNjVcXHUxMTY1XFx1MTE2N1xcdTExNjdcXHUxMTY5XFx1MTE2OVxcdTExNkRcXHUxMTZFXFx1MTE3MlxcdTExNzNcXHUxMTc1XFx1MTE3NVxcdTExOUVcXHUxMTlFXFx1MTFBOFxcdTExQThcXHUxMUFCXFx1MTFBQlxcdTExQUVcXHUxMUFGXFx1MTFCN1xcdTExQjhcXHUxMUJBXFx1MTFCQVxcdTExQkNcXHUxMUMyXFx1MTFFQlxcdTExRUJcXHUxMUYwXFx1MTFGMFxcdTExRjlcXHUxMUY5XFx1MUUwMFxcdTFFOUJcXHUxRUEwXFx1MUVGOVxcdTFGMDBcXHUxRjE1XFx1MUYxOFxcdTFGMURcXHUxRjIwXFx1MUY0NVxcdTFGNDhcXHUxRjREXFx1MUY1MFxcdTFGNTdcXHUxRjU5XFx1MUY1OVxcdTFGNUJcXHUxRjVCXFx1MUY1RFxcdTFGNURcXHUxRjVGXFx1MUY3RFxcdTFGODBcXHUxRkI0XFx1MUZCNlxcdTFGQkNcXHUxRkJFXFx1MUZCRVxcdTFGQzJcXHUxRkM0XFx1MUZDNlxcdTFGQ0NcXHUxRkQwXFx1MUZEM1xcdTFGRDZcXHUxRkRCXFx1MUZFMFxcdTFGRUNcXHUxRkYyXFx1MUZGNFxcdTFGRjZcXHUxRkZDXFx1MjEyNlxcdTIxMjZcXHUyMTJBXFx1MjEyQlxcdTIxMkVcXHUyMTJFXFx1MjE4MFxcdTIxODJcXHUzMDA3XFx1MzAwN1xcdTMwMjFcXHUzMDI5XFx1MzA0MVxcdTMwOTRcXHUzMEExXFx1MzBGQVxcdTMxMDVcXHUzMTJDXFx1NEUwMFxcdTlGQTVcXHVBQzAwXFx1RDdBMycsVkxlPSdQcml2YXRlIFVzZScsV0xlPSdBU1NJR05FRCcsWExlPSdcXHgwMFxceDdGXFx4ODBcXHhGRlxcdTAxMDBcXHUwMTdGXFx1MDE4MFxcdTAyNEZcXHUwMjUwXFx1MDJBRlxcdTAyQjBcXHUwMkZGXFx1MDMwMFxcdTAzNkZcXHUwMzcwXFx1MDNGRlxcdTA0MDBcXHUwNEZGXFx1MDUzMFxcdTA1OEZcXHUwNTkwXFx1MDVGRlxcdTA2MDBcXHUwNkZGXFx1MDcwMFxcdTA3NEZcXHUwNzgwXFx1MDdCRlxcdTA5MDBcXHUwOTdGXFx1MDk4MFxcdTA5RkZcXHUwQTAwXFx1MEE3RlxcdTBBODBcXHUwQUZGXFx1MEIwMFxcdTBCN0ZcXHUwQjgwXFx1MEJGRlxcdTBDMDBcXHUwQzdGXFx1MEM4MFxcdTBDRkZcXHUwRDAwXFx1MEQ3RlxcdTBEODBcXHUwREZGXFx1MEUwMFxcdTBFN0ZcXHUwRTgwXFx1MEVGRlxcdTBGMDBcXHUwRkZGXFx1MTAwMFxcdTEwOUZcXHUxMEEwXFx1MTBGRlxcdTExMDBcXHUxMUZGXFx1MTIwMFxcdTEzN0ZcXHUxM0EwXFx1MTNGRlxcdTE0MDBcXHUxNjdGXFx1MTY4MFxcdTE2OUZcXHUxNkEwXFx1MTZGRlxcdTE3ODBcXHUxN0ZGXFx1MTgwMFxcdTE4QUZcXHUxRTAwXFx1MUVGRlxcdTFGMDBcXHUxRkZGXFx1MjAwMFxcdTIwNkZcXHUyMDcwXFx1MjA5RlxcdTIwQTBcXHUyMENGXFx1MjBEMFxcdTIwRkZcXHUyMTAwXFx1MjE0RlxcdTIxNTBcXHUyMThGXFx1MjE5MFxcdTIxRkZcXHUyMjAwXFx1MjJGRlxcdTIzMDBcXHUyM0ZGXFx1MjQwMFxcdTI0M0ZcXHUyNDQwXFx1MjQ1RlxcdTI0NjBcXHUyNEZGXFx1MjUwMFxcdTI1N0ZcXHUyNTgwXFx1MjU5RlxcdTI1QTBcXHUyNUZGXFx1MjYwMFxcdTI2RkZcXHUyNzAwXFx1MjdCRlxcdTI4MDBcXHUyOEZGXFx1MkU4MFxcdTJFRkZcXHUyRjAwXFx1MkZERlxcdTJGRjBcXHUyRkZGXFx1MzAwMFxcdTMwM0ZcXHUzMDQwXFx1MzA5RlxcdTMwQTBcXHUzMEZGXFx1MzEwMFxcdTMxMkZcXHUzMTMwXFx1MzE4RlxcdTMxOTBcXHUzMTlGXFx1MzFBMFxcdTMxQkZcXHUzMjAwXFx1MzJGRlxcdTMzMDBcXHUzM0ZGXFx1MzQwMFxcdTREQjVcXHU0RTAwXFx1OUZGRlxcdUEwMDBcXHVBNDhGXFx1QTQ5MFxcdUE0Q0ZcXHVBQzAwXFx1RDdBM1xcdUUwMDBcXHVGOEZGXFx1RjkwMFxcdUZBRkZcXHVGQjAwXFx1RkI0RlxcdUZCNTBcXHVGREZGXFx1RkUyMFxcdUZFMkZcXHVGRTMwXFx1RkU0RlxcdUZFNTBcXHVGRTZGXFx1RkU3MFxcdUZFRkVcXHVGRUZGXFx1RkVGRlxcdUZGMDBcXHVGRkVGJyxZTGU9J1VOQVNTSUdORUQnLFpMZT17MzoxLDEyMjoxfSwkTGU9J29yZy5lY2xpcHNlLmVtZi5lY29yZS54bWwudHlwZS51dGlsJyxfTGU9ezM6MSw0OjEsNToxLDM4MToxfSxhTWU9J29yZy5lY2xpcHNlLnh0ZXh0LnhiYXNlLmxpYicsYk1lPSdDYW5ub3QgYWRkIGVsZW1lbnRzIHRvIGEgUmFuZ2UnLGNNZT0nQ2Fubm90IHNldCBlbGVtZW50cyBpbiBhIFJhbmdlJyxkTWU9J0Nhbm5vdCByZW1vdmUgZWxlbWVudHMgZnJvbSBhIFJhbmdlJyxlTWU9J3VzZXIuYWdlbnQnO3ZhciBfLGVlYixfZGIseWRiPS0xOyR3bmQuZ29vZz0kd25kLmdvb2d8fHt9OyR3bmQuZ29vZy5nbG9iYWw9JHduZC5nb29nLmdsb2JhbHx8JHduZDtlZWI9e307ZmViKDEsbnVsbCx7fSxuYik7Xy5GYj1mdW5jdGlvbiBvYihhKXtyZXR1cm4gbWIodGhpcyxhKX07Xy5HYj1mdW5jdGlvbiBxYigpe3JldHVybiB0aGlzLlJtfTtfLkhiPWZ1bmN0aW9uIHNiKCl7cmV0dXJuIGtGYih0aGlzKX07Xy5JYj1mdW5jdGlvbiB1Yigpe3ZhciBhO3JldHVybiBuZmIocmIodGhpcykpKydAJysoYT10Yih0aGlzKT4+PjAsYS50b1N0cmluZygxNikpfTtfLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5GYihhKX07Xy5oYXNoQ29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkhiKCl9O18udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5JYigpfTt2YXIgTkQsT0QsUEQ7ZmViKDI5NywxLHsyOTc6MSwyMTI0OjF9LHBmYik7Xy52ZT1mdW5jdGlvbiBxZmIoYSl7dmFyIGI7Yj1uZXcgcGZiO2IuaT00O2E+MT8oYi5jPXhmYih0aGlzLGEtMSkpOihiLmM9dGhpcyk7cmV0dXJuIGJ9O18ud2U9ZnVuY3Rpb24gd2ZiKCl7bGZiKHRoaXMpO3JldHVybiB0aGlzLmJ9O18ueGU9ZnVuY3Rpb24geWZiKCl7cmV0dXJuIG5mYih0aGlzKX07Xy55ZT1mdW5jdGlvbiBBZmIoKXtyZXR1cm4gbGZiKHRoaXMpLHRoaXMua307Xy56ZT1mdW5jdGlvbiBDZmIoKXtyZXR1cm4gKHRoaXMuaSY0KSE9MH07Xy5BZT1mdW5jdGlvbiBEZmIoKXtyZXR1cm4gKHRoaXMuaSYxKSE9MH07Xy5JYj1mdW5jdGlvbiBHZmIoKXtyZXR1cm4gb2ZiKHRoaXMpfTtfLmk9MDt2YXIga2ZiPTE7dmFyIGpKPXNmYihtdmUsJ09iamVjdCcsMSk7dmFyIFVJPXNmYihtdmUsJ0NsYXNzJywyOTcpO2ZlYigyMDk2LDEsbnZlKTt2YXIgb0U9c2ZiKG92ZSwnT3B0aW9uYWwnLDIwOTYpO2ZlYigxMTkxLDIwOTYsbnZlLHhiKTtfLkZiPWZ1bmN0aW9uIHliKGEpe3JldHVybiBhPT09dGhpc307Xy5IYj1mdW5jdGlvbiB6Yigpe3JldHVybiAyMDQwNzMyMzMyfTtfLkliPWZ1bmN0aW9uIEFiKCl7cmV0dXJuICdPcHRpb25hbC5hYnNlbnQoKSd9O18uSmI9ZnVuY3Rpb24gQmIoYSl7UWIoYSk7cmV0dXJuIHdiKCksdmJ9O3ZhciB2Yjt2YXIgbUU9c2ZiKG92ZSwnQWJzZW50JywxMTkxKTtmZWIoNjM2LDEse30sR2IpO3ZhciBuRT1zZmIob3ZlLCdKb2luZXInLDYzNik7dmFyIHBFPXVmYihvdmUsJ1ByZWRpY2F0ZScpO2ZlYig1ODksMSx7MTc4OjEsNTg5OjEsMzoxLDQ2OjF9LFliKTtfLk1iPWZ1bmN0aW9uIGFjKGEpe3JldHVybiBYYih0aGlzLGEpfTtfLkxiPWZ1bmN0aW9uIFpiKGEpe3JldHVybiBYYih0aGlzLGEpfTtfLkZiPWZ1bmN0aW9uICRiKGEpe3ZhciBiO2lmKFpEKGEsNTg5KSl7Yj1SRChhLDU4OSk7cmV0dXJuIFJ0KHRoaXMuYSxiLmEpfXJldHVybiBmYWxzZX07Xy5IYj1mdW5jdGlvbiBfYigpe3JldHVybiBDb2IodGhpcy5hKSszMDY2NTQyNTJ9O18uSWI9ZnVuY3Rpb24gYmMoKXtyZXR1cm4gV2IodGhpcy5hKX07dmFyIHFFPXNmYihvdmUsJ1ByZWRpY2F0ZXMvQW5kUHJlZGljYXRlJyw1ODkpO2ZlYig0MTksMjA5Nix7NDE5OjEsMzoxfSxjYyk7Xy5GYj1mdW5jdGlvbiBkYyhhKXt2YXIgYjtpZihaRChhLDQxOSkpe2I9UkQoYSw0MTkpO3JldHVybiBwYih0aGlzLmEsYi5hKX1yZXR1cm4gZmFsc2V9O18uSGI9ZnVuY3Rpb24gZWMoKXtyZXR1cm4gMTUwMjQ3NjU3Mit0Yih0aGlzLmEpfTtfLkliPWZ1bmN0aW9uIGZjKCl7cmV0dXJuIHV2ZSt0aGlzLmErJyknfTtfLkpiPWZ1bmN0aW9uIGdjKGEpe3JldHVybiBuZXcgY2MoUmIoYS5LYih0aGlzLmEpLCd0aGUgRnVuY3Rpb24gcGFzc2VkIHRvIE9wdGlvbmFsLnRyYW5zZm9ybSgpIG11c3Qgbm90IHJldHVybiBudWxsLicpKX07dmFyIHJFPXNmYihvdmUsJ1ByZXNlbnQnLDQxOSk7ZmViKDIwNCwxLHd2ZSk7Xy5OYj1mdW5jdGlvbiBrYyhhKXtadGIodGhpcyxhKX07Xy5RYj1mdW5jdGlvbiBsYygpe2pjKCl9O3ZhciBlST1zZmIoeHZlLCdVbm1vZGlmaWFibGVJdGVyYXRvcicsMjA0KTtmZWIoMjA3NiwyMDQseXZlKTtfLlFiPWZ1bmN0aW9uIG5jKCl7amMoKX07Xy5SYj1mdW5jdGlvbiBtYyhhKXt0aHJvdyBBZGIobmV3IGppYil9O18uV2I9ZnVuY3Rpb24gb2MoYSl7dGhyb3cgQWRiKG5ldyBqaWIpfTt2YXIgZkk9c2ZiKHh2ZSwnVW5tb2RpZmlhYmxlTGlzdEl0ZXJhdG9yJywyMDc2KTtmZWIoMzk5LDIwNzYseXZlKTtfLk9iPWZ1bmN0aW9uIHJjKCl7cmV0dXJuIHRoaXMuYzx0aGlzLmR9O18uU2I9ZnVuY3Rpb24gc2MoKXtyZXR1cm4gdGhpcy5jPjB9O18uUGI9ZnVuY3Rpb24gdGMoKXtpZih0aGlzLmM+PXRoaXMuZCl7dGhyb3cgQWRiKG5ldyBEdmIpfXJldHVybiB0aGlzLlhiKHRoaXMuYysrKX07Xy5UYj1mdW5jdGlvbiB1Yygpe3JldHVybiB0aGlzLmN9O18uVWI9ZnVuY3Rpb24gdmMoKXtpZih0aGlzLmM8PTApe3Rocm93IEFkYihuZXcgRHZiKX1yZXR1cm4gdGhpcy5YYigtLXRoaXMuYyl9O18uVmI9ZnVuY3Rpb24gd2MoKXtyZXR1cm4gdGhpcy5jLTF9O18uYz0wO18uZD0wO3ZhciBzRT1zZmIoeHZlLCdBYnN0cmFjdEluZGV4ZWRMaXN0SXRlcmF0b3InLDM5OSk7ZmViKDcxMywyMDQsd3ZlKTtfLk9iPWZ1bmN0aW9uIEFjKCl7cmV0dXJuIHhjKHRoaXMpfTtfLlBiPWZ1bmN0aW9uIEJjKCl7cmV0dXJuIHljKHRoaXMpfTtfLmU9MTt2YXIgdEU9c2ZiKHh2ZSwnQWJzdHJhY3RJdGVyYXRvcicsNzEzKTtmZWIoMjA4NCwxLHsyMjk6MX0pO18uWmI9ZnVuY3Rpb24gSGMoKXt2YXIgYTtyZXR1cm4gYT10aGlzLmYsIWE/KHRoaXMuZj10aGlzLmFjKCkpOmF9O18uRmI9ZnVuY3Rpb24gSWMoYSl7cmV0dXJuIHh3KHRoaXMsYSl9O18uSGI9ZnVuY3Rpb24gSmMoKXtyZXR1cm4gdGIodGhpcy5aYigpKX07Xy5kYz1mdW5jdGlvbiBLYygpe3JldHVybiB0aGlzLmdjKCk9PTB9O18uZWM9ZnVuY3Rpb24gTGMoKXtyZXR1cm4gRWModGhpcyl9O18uSWI9ZnVuY3Rpb24gTWMoKXtyZXR1cm4gamViKHRoaXMuWmIoKSl9O3ZhciBZRT1zZmIoeHZlLCdBYnN0cmFjdE11bHRpbWFwJywyMDg0KTtmZWIoNzQyLDIwODQsenZlKTtfLiRiPWZ1bmN0aW9uIFhjKCl7TmModGhpcyl9O18uX2I9ZnVuY3Rpb24gWWMoYSl7cmV0dXJuIE9jKHRoaXMsYSl9O18uYWM9ZnVuY3Rpb24gWmMoKXtyZXR1cm4gbmV3IG5lKHRoaXMsdGhpcy5jKX07Xy5pYz1mdW5jdGlvbiAkYyhhKXtyZXR1cm4gdGhpcy5oYygpfTtfLmJjPWZ1bmN0aW9uIF9jKCl7cmV0dXJuIG5ldyB6Zih0aGlzLHRoaXMuYyl9O18uamM9ZnVuY3Rpb24gYWQoKXtyZXR1cm4gdGhpcy5tYyh0aGlzLmhjKCkpfTtfLmtjPWZ1bmN0aW9uIGJkKCl7cmV0dXJuIG5ldyBIZCh0aGlzKX07Xy5sYz1mdW5jdGlvbiBjZCgpe3JldHVybiBlayh0aGlzLmMudmMoKS5OYygpLG5ldyBoaCw2NCx0aGlzLmQpfTtfLmNjPWZ1bmN0aW9uIGRkKGEpe3JldHVybiBRYyh0aGlzLGEpfTtfLmZjPWZ1bmN0aW9uIGdkKGEpe3JldHVybiBTYyh0aGlzLGEpfTtfLmdjPWZ1bmN0aW9uIGhkKCl7cmV0dXJuIHRoaXMuZH07Xy5tYz1mdW5jdGlvbiBqZChhKXtyZXR1cm4geW9iKCksbmV3IHhwYihhKX07Xy5uYz1mdW5jdGlvbiBrZCgpe3JldHVybiBuZXcgRGQodGhpcyl9O18ub2M9ZnVuY3Rpb24gbGQoKXtyZXR1cm4gZWsodGhpcy5jLkNjKCkuTmMoKSxuZXcgRmQsNjQsdGhpcy5kKX07Xy5wYz1mdW5jdGlvbiBtZChhLGIpe3JldHVybiBuZXcgbGcodGhpcyxhLGIsbnVsbCl9O18uZD0wO3ZhciBURT1zZmIoeHZlLCdBYnN0cmFjdE1hcEJhc2VkTXVsdGltYXAnLDc0Mik7ZmViKDE2OTYsNzQyLHp2ZSk7Xy5oYz1mdW5jdGlvbiBwZCgpe3JldHVybiBuZXcgY25iKHRoaXMuYSl9O18uamM9ZnVuY3Rpb24gcWQoKXtyZXR1cm4geW9iKCkseW9iKCksdm9ifTtfLmNjPWZ1bmN0aW9uIHNkKGEpe3JldHVybiBSRChRYyh0aGlzLGEpLDE1KX07Xy5mYz1mdW5jdGlvbiB1ZChhKXtyZXR1cm4gUkQoU2ModGhpcyxhKSwxNSl9O18uWmI9ZnVuY3Rpb24gb2QoKXtyZXR1cm4gbmQodGhpcyl9O18uRmI9ZnVuY3Rpb24gcmQoYSl7cmV0dXJuIHh3KHRoaXMsYSl9O18ucWM9ZnVuY3Rpb24gdGQoYSl7cmV0dXJuIFJEKFFjKHRoaXMsYSksMTUpfTtfLnJjPWZ1bmN0aW9uIHZkKGEpe3JldHVybiBSRChTYyh0aGlzLGEpLDE1KX07Xy5tYz1mdW5jdGlvbiB3ZChhKXtyZXR1cm4gSG9iKFJEKGEsMTUpKX07Xy5wYz1mdW5jdGlvbiB4ZChhLGIpe3JldHVybiBWYyh0aGlzLGEsUkQoYiwxNSksbnVsbCl9O3ZhciB1RT1zZmIoeHZlLCdBYnN0cmFjdExpc3RNdWx0aW1hcCcsMTY5Nik7ZmViKDc0OCwxLEF2ZSk7Xy5OYj1mdW5jdGlvbiB6ZChhKXtadGIodGhpcyxhKX07Xy5PYj1mdW5jdGlvbiBBZCgpe3JldHVybiB0aGlzLmMuT2IoKXx8dGhpcy5lLk9iKCl9O18uUGI9ZnVuY3Rpb24gQmQoKXt2YXIgYTtpZighdGhpcy5lLk9iKCkpe2E9UkQodGhpcy5jLlBiKCksNDQpO3RoaXMuYj1hLmxkKCk7dGhpcy5hPVJEKGEubWQoKSwxNik7dGhpcy5lPXRoaXMuYS5LYygpfXJldHVybiB0aGlzLnNjKHRoaXMuYix0aGlzLmUuUGIoKSl9O18uUWI9ZnVuY3Rpb24gQ2QoKXt0aGlzLmUuUWIoKTtSRChIdmIodGhpcy5hKSwxNikuZGMoKSYmdGhpcy5jLlFiKCk7LS10aGlzLmQuZH07dmFyIENFPXNmYih4dmUsJ0Fic3RyYWN0TWFwQmFzZWRNdWx0aW1hcC9JdHInLDc0OCk7ZmViKDExMjksNzQ4LEF2ZSxEZCk7Xy5zYz1mdW5jdGlvbiBFZChhLGIpe3JldHVybiBifTt2YXIgdkU9c2ZiKHh2ZSwnQWJzdHJhY3RNYXBCYXNlZE11bHRpbWFwLzEnLDExMjkpO2ZlYigxMTMwLDEse30sRmQpO18uS2I9ZnVuY3Rpb24gR2QoYSl7cmV0dXJuIFJEKGEsMTYpLk5jKCl9O3ZhciB3RT1zZmIoeHZlLCdBYnN0cmFjdE1hcEJhc2VkTXVsdGltYXAvMW1ldGhvZHJlZiRzcGxpdGVyYXRvciRUeXBlJywxMTMwKTtmZWIoMTEzMSw3NDgsQXZlLEhkKTtfLnNjPWZ1bmN0aW9uIElkKGEsYil7cmV0dXJuIG5ldyBncChhLGIpfTt2YXIgeEU9c2ZiKHh2ZSwnQWJzdHJhY3RNYXBCYXNlZE11bHRpbWFwLzInLDExMzEpO3ZhciBWSz11ZmIoQnZlLCdNYXAnKTtmZWIoMjA2NSwxLEN2ZSk7Xy53Yz1mdW5jdGlvbiBUZChhKXtCdmIodGhpcyxhKX07Xy55Yz1mdW5jdGlvbiAkZChhLGIsYyl7cmV0dXJuIEN2Yih0aGlzLGEsYixjKX07Xy4kYj1mdW5jdGlvbiBPZCgpe3RoaXMudmMoKS4kYigpfTtfLnRjPWZ1bmN0aW9uIFBkKGEpe3JldHVybiBKZCh0aGlzLGEpfTtfLl9iPWZ1bmN0aW9uIFFkKGEpe3JldHVybiAhIUtkKHRoaXMsYSxmYWxzZSl9O18udWM9ZnVuY3Rpb24gUmQoYSl7dmFyIGIsYyxkO2ZvcihjPXRoaXMudmMoKS5LYygpO2MuT2IoKTspe2I9UkQoYy5QYigpLDQ0KTtkPWIubWQoKTtpZihkRShhKT09PWRFKGQpfHxhIT1udWxsJiZwYihhLGQpKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfTtfLkZiPWZ1bmN0aW9uIFNkKGEpe3ZhciBiLGMsZDtpZihhPT09dGhpcyl7cmV0dXJuIHRydWV9aWYoIVpEKGEsODUpKXtyZXR1cm4gZmFsc2V9ZD1SRChhLDg1KTtpZih0aGlzLmdjKCkhPWQuZ2MoKSl7cmV0dXJuIGZhbHNlfWZvcihjPWQudmMoKS5LYygpO2MuT2IoKTspe2I9UkQoYy5QYigpLDQ0KTtpZighdGhpcy50YyhiKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX07Xy54Yz1mdW5jdGlvbiBVZChhKXtyZXR1cm4gV2QoS2QodGhpcyxhLGZhbHNlKSl9O18uSGI9ZnVuY3Rpb24gWGQoKXtyZXR1cm4gQm9iKHRoaXMudmMoKSl9O18uZGM9ZnVuY3Rpb24gWWQoKXtyZXR1cm4gdGhpcy5nYygpPT0wfTtfLmVjPWZ1bmN0aW9uIFpkKCl7cmV0dXJuIG5ldyBYa2IodGhpcyl9O18uemM9ZnVuY3Rpb24gX2QoYSxiKXt0aHJvdyBBZGIobmV3IGtpYignUHV0IG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBtYXAnKSl9O18uQWM9ZnVuY3Rpb24gYWUoYSl7TGQodGhpcyxhKX07Xy5CYz1mdW5jdGlvbiBiZShhKXtyZXR1cm4gV2QoS2QodGhpcyxhLHRydWUpKX07Xy5nYz1mdW5jdGlvbiBjZSgpe3JldHVybiB0aGlzLnZjKCkuZ2MoKX07Xy5JYj1mdW5jdGlvbiBkZSgpe3JldHVybiBNZCh0aGlzKX07Xy5DYz1mdW5jdGlvbiBlZSgpe3JldHVybiBuZXcgZ2xiKHRoaXMpfTt2YXIgS0o9c2ZiKEJ2ZSwnQWJzdHJhY3RNYXAnLDIwNjUpO2ZlYigyMDg1LDIwNjUsQ3ZlKTtfLmJjPWZ1bmN0aW9uIGdlKCl7cmV0dXJuIG5ldyByZih0aGlzKX07Xy52Yz1mdW5jdGlvbiBoZSgpe3JldHVybiBmZSh0aGlzKX07Xy5lYz1mdW5jdGlvbiBpZSgpe3ZhciBhO2E9dGhpcy5nO3JldHVybiAhYT8odGhpcy5nPXRoaXMuYmMoKSk6YX07Xy5DYz1mdW5jdGlvbiBqZSgpe3ZhciBhO2E9dGhpcy5pO3JldHVybiAhYT8odGhpcy5pPW5ldyBudyh0aGlzKSk6YX07dmFyIHVIPXNmYih4dmUsJ01hcHMvVmlld0NhY2hpbmdBYnN0cmFjdE1hcCcsMjA4NSk7ZmViKDQwMiwyMDg1LEN2ZSxuZSk7Xy54Yz1mdW5jdGlvbiBzZShhKXtyZXR1cm4ga2UodGhpcyxhKX07Xy5CYz1mdW5jdGlvbiB2ZShhKXtyZXR1cm4gbGUodGhpcyxhKX07Xy4kYj1mdW5jdGlvbiBvZSgpe3RoaXMuZD09dGhpcy5lLmM/dGhpcy5lLiRiKCk6QXIobmV3IG1mKHRoaXMpKX07Xy5fYj1mdW5jdGlvbiBwZShhKXtyZXR1cm4gV3YodGhpcy5kLGEpfTtfLkVjPWZ1bmN0aW9uIHFlKCl7cmV0dXJuIG5ldyBkZih0aGlzKX07Xy5EYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkVjKCl9O18uRmI9ZnVuY3Rpb24gcmUoYSl7cmV0dXJuIHRoaXM9PT1hfHxwYih0aGlzLmQsYSl9O18uSGI9ZnVuY3Rpb24gdGUoKXtyZXR1cm4gdGIodGhpcy5kKX07Xy5lYz1mdW5jdGlvbiB1ZSgpe3JldHVybiB0aGlzLmUuZWMoKX07Xy5nYz1mdW5jdGlvbiB3ZSgpe3JldHVybiB0aGlzLmQuZ2MoKX07Xy5JYj1mdW5jdGlvbiB4ZSgpe3JldHVybiBqZWIodGhpcy5kKX07dmFyIEJFPXNmYih4dmUsJ0Fic3RyYWN0TWFwQmFzZWRNdWx0aW1hcC9Bc01hcCcsNDAyKTt2YXIgY0o9dWZiKG12ZSwnSXRlcmFibGUnKTtmZWIoMzEsMSxEdmUpO18uSmM9ZnVuY3Rpb24gTGUoYSl7eGdiKHRoaXMsYSl9O18uTGM9ZnVuY3Rpb24gTmUoKXtyZXR1cm4gdGhpcy5PYygpfTtfLk5jPWZ1bmN0aW9uIFBlKCl7cmV0dXJuIG5ldyBTd2IodGhpcywwKX07Xy5PYz1mdW5jdGlvbiBRZSgpe3JldHVybiBuZXcgU0RiKG51bGwsdGhpcy5OYygpKX07Xy5GYz1mdW5jdGlvbiBHZShhKXt0aHJvdyBBZGIobmV3IGtpYignQWRkIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBjb2xsZWN0aW9uJykpfTtfLkdjPWZ1bmN0aW9uIEhlKGEpe3JldHVybiB5ZSh0aGlzLGEpfTtfLiRiPWZ1bmN0aW9uIEllKCl7QWUodGhpcyl9O18uSGM9ZnVuY3Rpb24gSmUoYSl7cmV0dXJuIHplKHRoaXMsYSxmYWxzZSl9O18uSWM9ZnVuY3Rpb24gS2UoYSl7cmV0dXJuIEJlKHRoaXMsYSl9O18uZGM9ZnVuY3Rpb24gTWUoKXtyZXR1cm4gdGhpcy5nYygpPT0wfTtfLk1jPWZ1bmN0aW9uIE9lKGEpe3JldHVybiB6ZSh0aGlzLGEsdHJ1ZSl9O18uUGM9ZnVuY3Rpb24gUmUoKXtyZXR1cm4gRGUodGhpcyl9O18uUWM9ZnVuY3Rpb24gU2UoYSl7cmV0dXJuIEVlKHRoaXMsYSl9O18uSWI9ZnVuY3Rpb24gVGUoKXtyZXR1cm4gRmUodGhpcyl9O3ZhciB2Sj1zZmIoQnZlLCdBYnN0cmFjdENvbGxlY3Rpb24nLDMxKTt2YXIgYkw9dWZiKEJ2ZSwnU2V0Jyk7ZmViKEV2ZSwzMSxGdmUpO18uTmM9ZnVuY3Rpb24gWWUoKXtyZXR1cm4gbmV3IFN3Yih0aGlzLDEpfTtfLkZiPWZ1bmN0aW9uIFdlKGEpe3JldHVybiBVZSh0aGlzLGEpfTtfLkhiPWZ1bmN0aW9uIFhlKCl7cmV0dXJuIEJvYih0aGlzKX07dmFyIFJKPXNmYihCdmUsJ0Fic3RyYWN0U2V0JyxFdmUpO2ZlYigyMDY4LEV2ZSxGdmUpO3ZhciBVSD1zZmIoeHZlLCdTZXRzL0ltcHJvdmVkQWJzdHJhY3RTZXQnLDIwNjgpO2ZlYigyMDY5LDIwNjgsRnZlKTtfLiRiPWZ1bmN0aW9uICRlKCl7dGhpcy5SYygpLiRiKCl9O18uSGM9ZnVuY3Rpb24gX2UoYSl7cmV0dXJuIFplKHRoaXMsYSl9O18uZGM9ZnVuY3Rpb24gYWYoKXtyZXR1cm4gdGhpcy5SYygpLmRjKCl9O18uTWM9ZnVuY3Rpb24gYmYoYSl7dmFyIGI7aWYodGhpcy5IYyhhKSYmWkQoYSw0NCkpe2I9UkQoYSw0NCk7cmV0dXJuIHRoaXMuUmMoKS5lYygpLk1jKGIubGQoKSl9cmV0dXJuIGZhbHNlfTtfLmdjPWZ1bmN0aW9uIGNmKCl7cmV0dXJuIHRoaXMuUmMoKS5nYygpfTt2YXIgbkg9c2ZiKHh2ZSwnTWFwcy9FbnRyeVNldCcsMjA2OSk7ZmViKDExMjcsMjA2OSxGdmUsZGYpO18uSGM9ZnVuY3Rpb24gZWYoYSl7cmV0dXJuIE5rKHRoaXMuYS5kLnZjKCksYSl9O18uS2M9ZnVuY3Rpb24gZmYoKXtyZXR1cm4gbmV3IG1mKHRoaXMuYSl9O18uUmM9ZnVuY3Rpb24gZ2YoKXtyZXR1cm4gdGhpcy5hfTtfLk1jPWZ1bmN0aW9uIGhmKGEpe3ZhciBiO2lmKCFOayh0aGlzLmEuZC52YygpLGEpKXtyZXR1cm4gZmFsc2V9Yj1SRChIdmIoUkQoYSw0NCkpLDQ0KTtUYyh0aGlzLmEuZSxiLmxkKCkpO3JldHVybiB0cnVlfTtfLk5jPWZ1bmN0aW9uIGpmKCl7cmV0dXJuIGdrKHRoaXMuYS5kLnZjKCkuTmMoKSxuZXcga2YodGhpcy5hKSl9O3ZhciB6RT1zZmIoeHZlLCdBYnN0cmFjdE1hcEJhc2VkTXVsdGltYXAvQXNNYXAvQXNNYXBFbnRyaWVzJywxMTI3KTtmZWIoMTEyOCwxLHt9LGtmKTtfLktiPWZ1bmN0aW9uIGxmKGEpe3JldHVybiBtZSh0aGlzLmEsUkQoYSw0NCkpfTt2YXIgeUU9c2ZiKHh2ZSwnQWJzdHJhY3RNYXBCYXNlZE11bHRpbWFwL0FzTWFwL0FzTWFwRW50cmllcy8wbWV0aG9kcmVmJHdyYXBFbnRyeSRUeXBlJywxMTI4KTtmZWIoNzQ2LDEsQXZlLG1mKTtfLk5iPWZ1bmN0aW9uIG5mKGEpe1p0Yih0aGlzLGEpfTtfLlBiPWZ1bmN0aW9uIHBmKCl7dmFyIGE7cmV0dXJuIGE9UkQodGhpcy5iLlBiKCksNDQpLHRoaXMuYT1SRChhLm1kKCksMTYpLG1lKHRoaXMuYyxhKX07Xy5PYj1mdW5jdGlvbiBvZigpe3JldHVybiB0aGlzLmIuT2IoKX07Xy5RYj1mdW5jdGlvbiBxZigpe1ZiKCEhdGhpcy5hKTt0aGlzLmIuUWIoKTt0aGlzLmMuZS5kLT10aGlzLmEuZ2MoKTt0aGlzLmEuJGIoKTt0aGlzLmE9bnVsbH07dmFyIEFFPXNmYih4dmUsJ0Fic3RyYWN0TWFwQmFzZWRNdWx0aW1hcC9Bc01hcC9Bc01hcEl0ZXJhdG9yJyw3NDYpO2ZlYig1NDIsMjA2OCxGdmUscmYpO18uJGI9ZnVuY3Rpb24gc2YoKXt0aGlzLmIuJGIoKX07Xy5IYz1mdW5jdGlvbiB0ZihhKXtyZXR1cm4gdGhpcy5iLl9iKGEpfTtfLkpjPWZ1bmN0aW9uIHVmKGEpe1FiKGEpO3RoaXMuYi53YyhuZXcgbHcoYSkpfTtfLmRjPWZ1bmN0aW9uIHZmKCl7cmV0dXJuIHRoaXMuYi5kYygpfTtfLktjPWZ1bmN0aW9uIHdmKCl7cmV0dXJuIG5ldyBhdyh0aGlzLmIudmMoKS5LYygpKX07Xy5NYz1mdW5jdGlvbiB4ZihhKXtpZih0aGlzLmIuX2IoYSkpe3RoaXMuYi5CYyhhKTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O18uZ2M9ZnVuY3Rpb24geWYoKXtyZXR1cm4gdGhpcy5iLmdjKCl9O3ZhciBySD1zZmIoeHZlLCdNYXBzL0tleVNldCcsNTQyKTtmZWIoMzI3LDU0MixGdmUsemYpO18uJGI9ZnVuY3Rpb24gQWYoKXt2YXIgYTtBcigoYT10aGlzLmIudmMoKS5LYygpLG5ldyBIZih0aGlzLGEpKSl9O18uSWM9ZnVuY3Rpb24gQmYoYSl7cmV0dXJuIHRoaXMuYi5lYygpLkljKGEpfTtfLkZiPWZ1bmN0aW9uIENmKGEpe3JldHVybiB0aGlzPT09YXx8cGIodGhpcy5iLmVjKCksYSl9O18uSGI9ZnVuY3Rpb24gRGYoKXtyZXR1cm4gdGIodGhpcy5iLmVjKCkpfTtfLktjPWZ1bmN0aW9uIEVmKCl7dmFyIGE7cmV0dXJuIGE9dGhpcy5iLnZjKCkuS2MoKSxuZXcgSGYodGhpcyxhKX07Xy5NYz1mdW5jdGlvbiBGZihhKXt2YXIgYixjO2M9MDtiPVJEKHRoaXMuYi5CYyhhKSwxNik7aWYoYil7Yz1iLmdjKCk7Yi4kYigpO3RoaXMuYS5kLT1jfXJldHVybiBjPjB9O18uTmM9ZnVuY3Rpb24gR2YoKXtyZXR1cm4gdGhpcy5iLmVjKCkuTmMoKX07dmFyIEVFPXNmYih4dmUsJ0Fic3RyYWN0TWFwQmFzZWRNdWx0aW1hcC9LZXlTZXQnLDMyNyk7ZmViKDc0NywxLEF2ZSxIZik7Xy5OYj1mdW5jdGlvbiBJZihhKXtadGIodGhpcyxhKX07Xy5PYj1mdW5jdGlvbiBKZigpe3JldHVybiB0aGlzLmMuT2IoKX07Xy5QYj1mdW5jdGlvbiBLZigpe3RoaXMuYT1SRCh0aGlzLmMuUGIoKSw0NCk7cmV0dXJuIHRoaXMuYS5sZCgpfTtfLlFiPWZ1bmN0aW9uIExmKCl7dmFyIGE7VmIoISF0aGlzLmEpO2E9UkQodGhpcy5hLm1kKCksMTYpO3RoaXMuYy5RYigpO3RoaXMuYi5hLmQtPWEuZ2MoKTthLiRiKCk7dGhpcy5hPW51bGx9O3ZhciBERT1zZmIoeHZlLCdBYnN0cmFjdE1hcEJhc2VkTXVsdGltYXAvS2V5U2V0LzEnLDc0Nyk7ZmViKDUwMyw0MDIsezg1OjEsMTMzOjF9LE1mKTtfLmJjPWZ1bmN0aW9uIE5mKCl7cmV0dXJuIHRoaXMuU2MoKX07Xy5lYz1mdW5jdGlvbiBRZigpe3JldHVybiB0aGlzLlVjKCl9O18uU2M9ZnVuY3Rpb24gT2YoKXtyZXR1cm4gbmV3IGVnKHRoaXMuYyx0aGlzLldjKCkpfTtfLlRjPWZ1bmN0aW9uIFBmKCl7cmV0dXJuIHRoaXMuV2MoKS5UYygpfTtfLlVjPWZ1bmN0aW9uIFJmKCl7dmFyIGE7cmV0dXJuIGE9dGhpcy5iLCFhPyh0aGlzLmI9dGhpcy5TYygpKTphfTtfLlZjPWZ1bmN0aW9uIFNmKCl7cmV0dXJuIHRoaXMuV2MoKS5WYygpfTtfLldjPWZ1bmN0aW9uIFRmKCl7cmV0dXJuIFJEKHRoaXMuZCwxMzMpfTt2YXIgSUU9c2ZiKHh2ZSwnQWJzdHJhY3RNYXBCYXNlZE11bHRpbWFwL1NvcnRlZEFzTWFwJyw1MDMpO2ZlYig0NDYsNTAzLEd2ZSxVZik7Xy5iYz1mdW5jdGlvbiBXZigpe3JldHVybiBuZXcgZ2codGhpcy5hLFJEKFJEKHRoaXMuZCwxMzMpLDEzOSkpfTtfLlNjPWZ1bmN0aW9uIFhmKCl7cmV0dXJuIG5ldyBnZyh0aGlzLmEsUkQoUkQodGhpcy5kLDEzMyksMTM5KSl9O18uZWM9ZnVuY3Rpb24gX2YoKXt2YXIgYTtyZXR1cm4gYT10aGlzLmIsUkQoIWE/KHRoaXMuYj1uZXcgZ2codGhpcy5hLFJEKFJEKHRoaXMuZCwxMzMpLDEzOSkpKTphLDI3Nyl9O18uVWM9ZnVuY3Rpb24gYWcoKXt2YXIgYTtyZXR1cm4gYT10aGlzLmIsUkQoIWE/KHRoaXMuYj1uZXcgZ2codGhpcy5hLFJEKFJEKHRoaXMuZCwxMzMpLDEzOSkpKTphLDI3Nyl9O18uV2M9ZnVuY3Rpb24gY2coKXtyZXR1cm4gUkQoUkQodGhpcy5kLDEzMyksMTM5KX07Xy5YYz1mdW5jdGlvbiBWZihhKXtyZXR1cm4gUkQoUkQodGhpcy5kLDEzMyksMTM5KS5YYyhhKX07Xy5ZYz1mdW5jdGlvbiBZZihhKXtyZXR1cm4gUkQoUkQodGhpcy5kLDEzMyksMTM5KS5ZYyhhKX07Xy5aYz1mdW5jdGlvbiBaZihhLGIpe3JldHVybiBuZXcgVWYodGhpcy5hLFJEKFJEKHRoaXMuZCwxMzMpLDEzOSkuWmMoYSxiKSl9O18uJGM9ZnVuY3Rpb24gJGYoYSl7cmV0dXJuIFJEKFJEKHRoaXMuZCwxMzMpLDEzOSkuJGMoYSl9O18uX2M9ZnVuY3Rpb24gYmcoYSl7cmV0dXJuIFJEKFJEKHRoaXMuZCwxMzMpLDEzOSkuX2MoYSl9O18uYWQ9ZnVuY3Rpb24gZGcoYSxiKXtyZXR1cm4gbmV3IFVmKHRoaXMuYSxSRChSRCh0aGlzLmQsMTMzKSwxMzkpLmFkKGEsYikpfTt2YXIgRkU9c2ZiKHh2ZSwnQWJzdHJhY3RNYXBCYXNlZE11bHRpbWFwL05hdmlnYWJsZUFzTWFwJyw0NDYpO2ZlYig1MDIsMzI3LEh2ZSxlZyk7Xy5OYz1mdW5jdGlvbiBmZygpe3JldHVybiB0aGlzLmIuZWMoKS5OYygpfTt2YXIgSkU9c2ZiKHh2ZSwnQWJzdHJhY3RNYXBCYXNlZE11bHRpbWFwL1NvcnRlZEtleVNldCcsNTAyKTtmZWIoNDAxLDUwMixJdmUsZ2cpO3ZhciBHRT1zZmIoeHZlLCdBYnN0cmFjdE1hcEJhc2VkTXVsdGltYXAvTmF2aWdhYmxlS2V5U2V0Jyw0MDEpO2ZlYig1NTEsMzEsRHZlLGxnKTtfLkZjPWZ1bmN0aW9uIG1nKGEpe3ZhciBiLGM7aWcodGhpcyk7Yz10aGlzLmQuZGMoKTtiPXRoaXMuZC5GYyhhKTtpZihiKXsrK3RoaXMuZi5kO2MmJmhnKHRoaXMpfXJldHVybiBifTtfLkdjPWZ1bmN0aW9uIG5nKGEpe3ZhciBiLGMsZDtpZihhLmRjKCkpe3JldHVybiBmYWxzZX1kPShpZyh0aGlzKSx0aGlzLmQuZ2MoKSk7Yj10aGlzLmQuR2MoYSk7aWYoYil7Yz10aGlzLmQuZ2MoKTt0aGlzLmYuZCs9Yy1kO2Q9PTAmJmhnKHRoaXMpfXJldHVybiBifTtfLiRiPWZ1bmN0aW9uIG9nKCl7dmFyIGE7YT0oaWcodGhpcyksdGhpcy5kLmdjKCkpO2lmKGE9PTApe3JldHVybn10aGlzLmQuJGIoKTt0aGlzLmYuZC09YTtqZyh0aGlzKX07Xy5IYz1mdW5jdGlvbiBwZyhhKXtpZyh0aGlzKTtyZXR1cm4gdGhpcy5kLkhjKGEpfTtfLkljPWZ1bmN0aW9uIHFnKGEpe2lnKHRoaXMpO3JldHVybiB0aGlzLmQuSWMoYSl9O18uRmI9ZnVuY3Rpb24gcmcoYSl7aWYoYT09PXRoaXMpe3JldHVybiB0cnVlfWlnKHRoaXMpO3JldHVybiBwYih0aGlzLmQsYSl9O18uSGI9ZnVuY3Rpb24gc2coKXtpZyh0aGlzKTtyZXR1cm4gdGIodGhpcy5kKX07Xy5LYz1mdW5jdGlvbiB0Zygpe2lnKHRoaXMpO3JldHVybiBuZXcgT2codGhpcyl9O18uTWM9ZnVuY3Rpb24gdWcoYSl7dmFyIGI7aWcodGhpcyk7Yj10aGlzLmQuTWMoYSk7aWYoYil7LS10aGlzLmYuZDtqZyh0aGlzKX1yZXR1cm4gYn07Xy5nYz1mdW5jdGlvbiB2Zygpe3JldHVybiBrZyh0aGlzKX07Xy5OYz1mdW5jdGlvbiB3Zygpe3JldHVybiBpZyh0aGlzKSx0aGlzLmQuTmMoKX07Xy5JYj1mdW5jdGlvbiB4Zygpe2lnKHRoaXMpO3JldHVybiBqZWIodGhpcy5kKX07dmFyIExFPXNmYih4dmUsJ0Fic3RyYWN0TWFwQmFzZWRNdWx0aW1hcC9XcmFwcGVkQ29sbGVjdGlvbicsNTUxKTt2YXIgUUs9dWZiKEJ2ZSwnTGlzdCcpO2ZlYig3NDQsNTUxLHsyMDoxLDMxOjEsMTY6MSwxNToxfSx5Zyk7Xy5qZD1mdW5jdGlvbiBIZyhhKXt0dmIodGhpcyxhKX07Xy5OYz1mdW5jdGlvbiBJZygpe3JldHVybiBpZyh0aGlzKSx0aGlzLmQuTmMoKX07Xy5iZD1mdW5jdGlvbiB6ZyhhLGIpe3ZhciBjO2lnKHRoaXMpO2M9dGhpcy5kLmRjKCk7UkQodGhpcy5kLDE1KS5iZChhLGIpOysrdGhpcy5hLmQ7YyYmaGcodGhpcyl9O18uY2Q9ZnVuY3Rpb24gQWcoYSxiKXt2YXIgYyxkLGU7aWYoYi5kYygpKXtyZXR1cm4gZmFsc2V9ZT0oaWcodGhpcyksdGhpcy5kLmdjKCkpO2M9UkQodGhpcy5kLDE1KS5jZChhLGIpO2lmKGMpe2Q9dGhpcy5kLmdjKCk7dGhpcy5hLmQrPWQtZTtlPT0wJiZoZyh0aGlzKX1yZXR1cm4gY307Xy5YYj1mdW5jdGlvbiBCZyhhKXtpZyh0aGlzKTtyZXR1cm4gUkQodGhpcy5kLDE1KS5YYihhKX07Xy5kZD1mdW5jdGlvbiBDZyhhKXtpZyh0aGlzKTtyZXR1cm4gUkQodGhpcy5kLDE1KS5kZChhKX07Xy5lZD1mdW5jdGlvbiBEZygpe2lnKHRoaXMpO3JldHVybiBuZXcgVWcodGhpcyl9O18uZmQ9ZnVuY3Rpb24gRWcoYSl7aWcodGhpcyk7cmV0dXJuIG5ldyBWZyh0aGlzLGEpfTtfLmdkPWZ1bmN0aW9uIEZnKGEpe3ZhciBiO2lnKHRoaXMpO2I9UkQodGhpcy5kLDE1KS5nZChhKTstLXRoaXMuYS5kO2pnKHRoaXMpO3JldHVybiBifTtfLmhkPWZ1bmN0aW9uIEdnKGEsYil7aWcodGhpcyk7cmV0dXJuIFJEKHRoaXMuZCwxNSkuaGQoYSxiKX07Xy5rZD1mdW5jdGlvbiBKZyhhLGIpe2lnKHRoaXMpO3JldHVybiBWYyh0aGlzLmEsdGhpcy5lLFJEKHRoaXMuZCwxNSkua2QoYSxiKSwhdGhpcy5iP3RoaXM6dGhpcy5iKX07dmFyIE5FPXNmYih4dmUsJ0Fic3RyYWN0TWFwQmFzZWRNdWx0aW1hcC9XcmFwcGVkTGlzdCcsNzQ0KTtmZWIoMTEyNiw3NDQsezIwOjEsMzE6MSwxNjoxLDE1OjEsNTk6MX0sS2cpO3ZhciBIRT1zZmIoeHZlLCdBYnN0cmFjdE1hcEJhc2VkTXVsdGltYXAvUmFuZG9tQWNjZXNzV3JhcHBlZExpc3QnLDExMjYpO2ZlYig2MjgsMSxBdmUsT2cpO18uTmI9ZnVuY3Rpb24gUWcoYSl7WnRiKHRoaXMsYSl9O18uT2I9ZnVuY3Rpb24gUmcoKXtOZyh0aGlzKTtyZXR1cm4gdGhpcy5iLk9iKCl9O18uUGI9ZnVuY3Rpb24gU2coKXtOZyh0aGlzKTtyZXR1cm4gdGhpcy5iLlBiKCl9O18uUWI9ZnVuY3Rpb24gVGcoKXtNZyh0aGlzKX07dmFyIEtFPXNmYih4dmUsJ0Fic3RyYWN0TWFwQmFzZWRNdWx0aW1hcC9XcmFwcGVkQ29sbGVjdGlvbi9XcmFwcGVkSXRlcmF0b3InLDYyOCk7ZmViKDc0NSw2MjgsSnZlLFVnLFZnKTtfLlFiPWZ1bmN0aW9uIF9nKCl7TWcodGhpcyl9O18uUmI9ZnVuY3Rpb24gV2coYSl7dmFyIGI7Yj1rZyh0aGlzLmEpPT0wOyhOZyh0aGlzKSxSRCh0aGlzLmIsMTI4KSkuUmIoYSk7Kyt0aGlzLmEuYS5kO2ImJmhnKHRoaXMuYSl9O18uU2I9ZnVuY3Rpb24gWGcoKXtyZXR1cm4gKE5nKHRoaXMpLFJEKHRoaXMuYiwxMjgpKS5TYigpfTtfLlRiPWZ1bmN0aW9uIFlnKCl7cmV0dXJuIChOZyh0aGlzKSxSRCh0aGlzLmIsMTI4KSkuVGIoKX07Xy5VYj1mdW5jdGlvbiBaZygpe3JldHVybiAoTmcodGhpcyksUkQodGhpcy5iLDEyOCkpLlViKCl9O18uVmI9ZnVuY3Rpb24gJGcoKXtyZXR1cm4gKE5nKHRoaXMpLFJEKHRoaXMuYiwxMjgpKS5WYigpfTtfLldiPWZ1bmN0aW9uIGFoKGEpeyhOZyh0aGlzKSxSRCh0aGlzLmIsMTI4KSkuV2IoYSl9O3ZhciBNRT1zZmIoeHZlLCdBYnN0cmFjdE1hcEJhc2VkTXVsdGltYXAvV3JhcHBlZExpc3QvV3JhcHBlZExpc3RJdGVyYXRvcicsNzQ1KTtmZWIoNzQzLDU1MSxIdmUsYmgpO18uTmM9ZnVuY3Rpb24gZGgoKXtyZXR1cm4gaWcodGhpcyksdGhpcy5kLk5jKCl9O3ZhciBRRT1zZmIoeHZlLCdBYnN0cmFjdE1hcEJhc2VkTXVsdGltYXAvV3JhcHBlZFNvcnRlZFNldCcsNzQzKTtmZWIoMTEyNSw3NDMsSXZlLGVoKTt2YXIgT0U9c2ZiKHh2ZSwnQWJzdHJhY3RNYXBCYXNlZE11bHRpbWFwL1dyYXBwZWROYXZpZ2FibGVTZXQnLDExMjUpO2ZlYigxMTI0LDU1MSxGdmUsZmgpO18uTmM9ZnVuY3Rpb24gZ2goKXtyZXR1cm4gaWcodGhpcyksdGhpcy5kLk5jKCl9O3ZhciBQRT1zZmIoeHZlLCdBYnN0cmFjdE1hcEJhc2VkTXVsdGltYXAvV3JhcHBlZFNldCcsMTEyNCk7ZmViKDExMzMsMSx7fSxoaCk7Xy5LYj1mdW5jdGlvbiBpaChhKXtyZXR1cm4gZmQoUkQoYSw0NCkpfTt2YXIgUkU9c2ZiKHh2ZSwnQWJzdHJhY3RNYXBCYXNlZE11bHRpbWFwL2xhbWJkYSQxJFR5cGUnLDExMzMpO2ZlYigxMTMyLDEse30samgpO18uS2I9ZnVuY3Rpb24ga2goYSl7cmV0dXJuIG5ldyBncCh0aGlzLmEsYSl9O3ZhciBTRT1zZmIoeHZlLCdBYnN0cmFjdE1hcEJhc2VkTXVsdGltYXAvbGFtYmRhJDIkVHlwZScsMTEzMik7dmFyIFVLPXVmYihCdmUsJ01hcC9FbnRyeScpO2ZlYigzNTgsMSxLdmUpO18uRmI9ZnVuY3Rpb24gbGgoYSl7dmFyIGI7aWYoWkQoYSw0NCkpe2I9UkQoYSw0NCk7cmV0dXJuIEhiKHRoaXMubGQoKSxiLmxkKCkpJiZIYih0aGlzLm1kKCksYi5tZCgpKX1yZXR1cm4gZmFsc2V9O18uSGI9ZnVuY3Rpb24gbWgoKXt2YXIgYSxiO2E9dGhpcy5sZCgpO2I9dGhpcy5tZCgpO3JldHVybiAoYT09bnVsbD8wOnRiKGEpKV4oYj09bnVsbD8wOnRiKGIpKX07Xy5uZD1mdW5jdGlvbiBuaChhKXt0aHJvdyBBZGIobmV3IGppYil9O18uSWI9ZnVuY3Rpb24gb2goKXtyZXR1cm4gdGhpcy5sZCgpKyc9Jyt0aGlzLm1kKCl9O3ZhciBVRT1zZmIoeHZlLEx2ZSwzNTgpO2ZlYigyMDg2LDMxLER2ZSk7Xy4kYj1mdW5jdGlvbiBwaCgpe3RoaXMub2QoKS4kYigpfTtfLkhjPWZ1bmN0aW9uIHFoKGEpe3ZhciBiO2lmKFpEKGEsNDQpKXtiPVJEKGEsNDQpO3JldHVybiBDYyh0aGlzLm9kKCksYi5sZCgpLGIubWQoKSl9cmV0dXJuIGZhbHNlfTtfLk1jPWZ1bmN0aW9uIHJoKGEpe3ZhciBiO2lmKFpEKGEsNDQpKXtiPVJEKGEsNDQpO3JldHVybiBHYyh0aGlzLm9kKCksYi5sZCgpLGIubWQoKSl9cmV0dXJuIGZhbHNlfTtfLmdjPWZ1bmN0aW9uIHNoKCl7cmV0dXJuIHRoaXMub2QoKS5kfTt2YXIgeUg9c2ZiKHh2ZSwnTXVsdGltYXBzL0VudHJpZXMnLDIwODYpO2ZlYig3NDksMjA4NixEdmUsdGgpO18uS2M9ZnVuY3Rpb24gdWgoKXtyZXR1cm4gdGhpcy5hLmtjKCl9O18ub2Q9ZnVuY3Rpb24gdmgoKXtyZXR1cm4gdGhpcy5hfTtfLk5jPWZ1bmN0aW9uIHdoKCl7cmV0dXJuIHRoaXMuYS5sYygpfTt2YXIgVkU9c2ZiKHh2ZSwnQWJzdHJhY3RNdWx0aW1hcC9FbnRyaWVzJyw3NDkpO2ZlYig3NTAsNzQ5LEZ2ZSx4aCk7Xy5OYz1mdW5jdGlvbiBBaCgpe3JldHVybiB0aGlzLmEubGMoKX07Xy5GYj1mdW5jdGlvbiB5aChhKXtyZXR1cm4gUngodGhpcyxhKX07Xy5IYj1mdW5jdGlvbiB6aCgpe3JldHVybiBTeCh0aGlzKX07dmFyIFdFPXNmYih4dmUsJ0Fic3RyYWN0TXVsdGltYXAvRW50cnlTZXQnLDc1MCk7ZmViKDc1MSwzMSxEdmUsQmgpO18uJGI9ZnVuY3Rpb24gQ2goKXt0aGlzLmEuJGIoKX07Xy5IYz1mdW5jdGlvbiBEaChhKXtyZXR1cm4gRGModGhpcy5hLGEpfTtfLktjPWZ1bmN0aW9uIEVoKCl7cmV0dXJuIHRoaXMuYS5uYygpfTtfLmdjPWZ1bmN0aW9uIEZoKCl7cmV0dXJuIHRoaXMuYS5kfTtfLk5jPWZ1bmN0aW9uIEdoKCl7cmV0dXJuIHRoaXMuYS5vYygpfTt2YXIgWEU9c2ZiKHh2ZSwnQWJzdHJhY3RNdWx0aW1hcC9WYWx1ZXMnLDc1MSk7ZmViKDIwODcsMzEsezg0OToxLDIwOjEsMzE6MSwxNjoxfSk7Xy5KYz1mdW5jdGlvbiBPaChhKXtRYihhKTtJaCh0aGlzKS5KYyhuZXcgbHgoYSkpfTtfLk5jPWZ1bmN0aW9uIFNoKCl7dmFyIGE7cmV0dXJuIGE9SWgodGhpcykuTmMoKSxlayhhLG5ldyBzeCw2NHxhLnlkKCkmMTI5Nix0aGlzLmEuZCl9O18uRmM9ZnVuY3Rpb24gS2goYSl7SGgoKTtyZXR1cm4gdHJ1ZX07Xy5HYz1mdW5jdGlvbiBMaChhKXtyZXR1cm4gUWIodGhpcyksUWIoYSksWkQoYSw1NTIpP254KFJEKGEsODQ5KSk6IWEuZGMoKSYmeHIodGhpcyxhLktjKCkpfTtfLkhjPWZ1bmN0aW9uIE1oKGEpe3ZhciBiO3JldHVybiBiPVJEKFh2KG5kKHRoaXMuYSksYSksMTYpLCghYj8wOmIuZ2MoKSk+MH07Xy5GYj1mdW5jdGlvbiBOaChhKXtyZXR1cm4gb3godGhpcyxhKX07Xy5IYj1mdW5jdGlvbiBQaCgpe3JldHVybiB0YihJaCh0aGlzKSl9O18uZGM9ZnVuY3Rpb24gUWgoKXtyZXR1cm4gSWgodGhpcykuZGMoKX07Xy5NYz1mdW5jdGlvbiBSaChhKXtyZXR1cm4gUncodGhpcyxhLDEpPjB9O18uSWI9ZnVuY3Rpb24gVGgoKXtyZXR1cm4gamViKEloKHRoaXMpKX07dmFyICRFPXNmYih4dmUsJ0Fic3RyYWN0TXVsdGlzZXQnLDIwODcpO2ZlYigyMDg5LDIwNjgsRnZlKTtfLiRiPWZ1bmN0aW9uIFVoKCl7TmModGhpcy5hLmEpfTtfLkhjPWZ1bmN0aW9uIFZoKGEpe3ZhciBiLGM7aWYoWkQoYSw1MDQpKXtjPVJEKGEsNDI1KTtpZihSRChjLmEubWQoKSwxNikuZ2MoKTw9MCl7cmV0dXJuIGZhbHNlfWI9UXcodGhpcy5hLGMuYS5sZCgpKTtyZXR1cm4gYj09UkQoYy5hLm1kKCksMTYpLmdjKCl9cmV0dXJuIGZhbHNlfTtfLk1jPWZ1bmN0aW9uIFdoKGEpe3ZhciBiLGMsZCxlO2lmKFpEKGEsNTA0KSl7Yz1SRChhLDQyNSk7Yj1jLmEubGQoKTtkPVJEKGMuYS5tZCgpLDE2KS5nYygpO2lmKGQhPTApe2U9dGhpcy5hO3JldHVybiBxeChlLGIsZCl9fXJldHVybiBmYWxzZX07dmFyIElIPXNmYih4dmUsJ011bHRpc2V0cy9FbnRyeVNldCcsMjA4OSk7ZmViKDExMzksMjA4OSxGdmUsWGgpO18uS2M9ZnVuY3Rpb24gWWgoKXtyZXR1cm4gbmV3IF93KGZlKG5kKHRoaXMuYS5hKSkuS2MoKSl9O18uZ2M9ZnVuY3Rpb24gWmgoKXtyZXR1cm4gbmQodGhpcy5hLmEpLmdjKCl9O3ZhciBaRT1zZmIoeHZlLCdBYnN0cmFjdE11bHRpc2V0L0VudHJ5U2V0JywxMTM5KTtmZWIoNjI3LDc0Mix6dmUpO18uaGM9ZnVuY3Rpb24gYWkoKXtyZXR1cm4gdGhpcy5wZCgpfTtfLmpjPWZ1bmN0aW9uIGJpKCl7cmV0dXJuIHRoaXMucWQoKX07Xy5jYz1mdW5jdGlvbiBlaShhKXtyZXR1cm4gdGhpcy5yZChhKX07Xy5mYz1mdW5jdGlvbiBnaShhKXtyZXR1cm4gdGhpcy5zZChhKX07Xy5aYj1mdW5jdGlvbiBfaCgpe3ZhciBhO3JldHVybiBhPXRoaXMuZiwhYT8odGhpcy5mPXRoaXMuYWMoKSk6YX07Xy5xZD1mdW5jdGlvbiBjaSgpe3JldHVybiB5b2IoKSx5b2IoKSx4b2J9O18uRmI9ZnVuY3Rpb24gZGkoYSl7cmV0dXJuIHh3KHRoaXMsYSl9O18ucmQ9ZnVuY3Rpb24gZmkoYSl7cmV0dXJuIFJEKFFjKHRoaXMsYSksMjEpfTtfLnNkPWZ1bmN0aW9uIGhpKGEpe3JldHVybiBSRChTYyh0aGlzLGEpLDIxKX07Xy5tYz1mdW5jdGlvbiBpaShhKXtyZXR1cm4geW9iKCksbmV3IExxYihSRChhLDIxKSl9O18ucGM9ZnVuY3Rpb24gamkoYSxiKXtyZXR1cm4gbmV3IGZoKHRoaXMsYSxSRChiLDIxKSl9O3ZhciBfRT1zZmIoeHZlLCdBYnN0cmFjdFNldE11bHRpbWFwJyw2MjcpO2ZlYigxNzIzLDYyNyx6dmUpO18uaGM9ZnVuY3Rpb24gbWkoKXtyZXR1cm4gbmV3IHlBYih0aGlzLmIpfTtfLnBkPWZ1bmN0aW9uIG5pKCl7cmV0dXJuIG5ldyB5QWIodGhpcy5iKX07Xy5qYz1mdW5jdGlvbiBvaSgpe3JldHVybiBaeChuZXcgeUFiKHRoaXMuYikpfTtfLnFkPWZ1bmN0aW9uIHBpKCl7cmV0dXJuIFp4KG5ldyB5QWIodGhpcy5iKSl9O18uY2M9ZnVuY3Rpb24gcWkoYSl7cmV0dXJuIFJEKFJEKFFjKHRoaXMsYSksMjEpLDg3KX07Xy5yZD1mdW5jdGlvbiByaShhKXtyZXR1cm4gUkQoUkQoUWModGhpcyxhKSwyMSksODcpfTtfLmZjPWZ1bmN0aW9uIHNpKGEpe3JldHVybiBSRChSRChTYyh0aGlzLGEpLDIxKSw4Nyl9O18uc2Q9ZnVuY3Rpb24gdGkoYSl7cmV0dXJuIFJEKFJEKFNjKHRoaXMsYSksMjEpLDg3KX07Xy5tYz1mdW5jdGlvbiB1aShhKXtyZXR1cm4gWkQoYSwyNzcpP1p4KFJEKGEsMjc3KSk6KHlvYigpLG5ldyBqcmIoUkQoYSw4NykpKX07Xy5aYj1mdW5jdGlvbiBsaSgpe3ZhciBhO3JldHVybiBhPXRoaXMuZiwhYT8odGhpcy5mPVpEKHRoaXMuYywxMzkpP25ldyBVZih0aGlzLFJEKHRoaXMuYywxMzkpKTpaRCh0aGlzLmMsMTMzKT9uZXcgTWYodGhpcyxSRCh0aGlzLmMsMTMzKSk6bmV3IG5lKHRoaXMsdGhpcy5jKSk6YX07Xy5wYz1mdW5jdGlvbiB2aShhLGIpe3JldHVybiBaRChiLDI3Nyk/bmV3IGVoKHRoaXMsYSxSRChiLDI3NykpOm5ldyBiaCh0aGlzLGEsUkQoYiw4NykpfTt2YXIgYkY9c2ZiKHh2ZSwnQWJzdHJhY3RTb3J0ZWRTZXRNdWx0aW1hcCcsMTcyMyk7ZmViKDE3MjQsMTcyMyx6dmUpO18uWmI9ZnVuY3Rpb24geGkoKXt2YXIgYTtyZXR1cm4gYT10aGlzLmYsUkQoUkQoIWE/KHRoaXMuZj1aRCh0aGlzLmMsMTM5KT9uZXcgVWYodGhpcyxSRCh0aGlzLmMsMTM5KSk6WkQodGhpcy5jLDEzMyk/bmV3IE1mKHRoaXMsUkQodGhpcy5jLDEzMykpOm5ldyBuZSh0aGlzLHRoaXMuYykpOmEsMTMzKSwxMzkpfTtfLmVjPWZ1bmN0aW9uIHppKCl7dmFyIGE7cmV0dXJuIGE9dGhpcy5pLFJEKFJEKCFhPyh0aGlzLmk9WkQodGhpcy5jLDEzOSk/bmV3IGdnKHRoaXMsUkQodGhpcy5jLDEzOSkpOlpEKHRoaXMuYywxMzMpP25ldyBlZyh0aGlzLFJEKHRoaXMuYywxMzMpKTpuZXcgemYodGhpcyx0aGlzLmMpKTphLDg3KSwyNzcpfTtfLmJjPWZ1bmN0aW9uIHlpKCl7cmV0dXJuIFpEKHRoaXMuYywxMzkpP25ldyBnZyh0aGlzLFJEKHRoaXMuYywxMzkpKTpaRCh0aGlzLmMsMTMzKT9uZXcgZWcodGhpcyxSRCh0aGlzLmMsMTMzKSk6bmV3IHpmKHRoaXMsdGhpcy5jKX07dmFyIGFGPXNmYih4dmUsJ0Fic3RyYWN0U29ydGVkS2V5U29ydGVkU2V0TXVsdGltYXAnLDE3MjQpO2ZlYigyMTA5LDEsezIwNDY6MX0pO18uRmI9ZnVuY3Rpb24gQWkoYSl7cmV0dXJuIFF5KHRoaXMsYSl9O18uSGI9ZnVuY3Rpb24gQmkoKXt2YXIgYTtyZXR1cm4gQm9iKChhPXRoaXMuZywhYT8odGhpcy5nPW5ldyBEaSh0aGlzKSk6YSkpfTtfLkliPWZ1bmN0aW9uIENpKCl7dmFyIGE7cmV0dXJuIE1kKChhPXRoaXMuZiwhYT8odGhpcy5mPW5ldyBaaih0aGlzKSk6YSkpfTt2YXIgZUY9c2ZiKHh2ZSwnQWJzdHJhY3RUYWJsZScsMjEwOSk7ZmViKDY3OSxFdmUsRnZlLERpKTtfLiRiPWZ1bmN0aW9uIEVpKCl7WGkoKX07Xy5IYz1mdW5jdGlvbiBGaShhKXt2YXIgYixjO2lmKFpEKGEsNDc5KSl7Yj1SRChhLDY5Nyk7Yz1SRChYdihiaih0aGlzLmEpLFFtKGIuYy5lLGIuYikpLDg1KTtyZXR1cm4gISFjJiZOayhjLnZjKCksbmV3IGdwKFFtKGIuYy5jLGIuYSksVWkoYi5jLGIuYixiLmEpKSl9cmV0dXJuIGZhbHNlfTtfLktjPWZ1bmN0aW9uIEdpKCl7cmV0dXJuIFZpKHRoaXMuYSl9O18uTWM9ZnVuY3Rpb24gSGkoYSl7dmFyIGIsYztpZihaRChhLDQ3OSkpe2I9UkQoYSw2OTcpO2M9UkQoWHYoYmoodGhpcy5hKSxRbShiLmMuZSxiLmIpKSw4NSk7cmV0dXJuICEhYyYmT2soYy52YygpLG5ldyBncChRbShiLmMuYyxiLmEpLFVpKGIuYyxiLmIsYi5hKSkpfXJldHVybiBmYWxzZX07Xy5nYz1mdW5jdGlvbiBJaSgpe3JldHVybiBkaih0aGlzLmEpfTtfLk5jPWZ1bmN0aW9uIEppKCl7cmV0dXJuIFdpKHRoaXMuYSl9O3ZhciBjRj1zZmIoeHZlLCdBYnN0cmFjdFRhYmxlL0NlbGxTZXQnLDY3OSk7ZmViKDIwMjUsMzEsRHZlLEtpKTtfLiRiPWZ1bmN0aW9uIExpKCl7WGkoKX07Xy5IYz1mdW5jdGlvbiBNaShhKXtyZXR1cm4gWWkodGhpcy5hLGEpfTtfLktjPWZ1bmN0aW9uIE5pKCl7cmV0dXJuIGZqKHRoaXMuYSl9O18uZ2M9ZnVuY3Rpb24gT2koKXtyZXR1cm4gZGoodGhpcy5hKX07Xy5OYz1mdW5jdGlvbiBQaSgpe3JldHVybiBnaih0aGlzLmEpfTt2YXIgZEY9c2ZiKHh2ZSwnQWJzdHJhY3RUYWJsZS9WYWx1ZXMnLDIwMjUpO2ZlYigxNjk3LDE2OTYsenZlKTt2YXIgZkY9c2ZiKHh2ZSwnQXJyYXlMaXN0TXVsdGltYXBHd3RTZXJpYWxpemF0aW9uRGVwZW5kZW5jaWVzJywxNjk3KTtmZWIoNTIwLDE2OTcsenZlLFJpLFNpKTtfLmhjPWZ1bmN0aW9uIFRpKCl7cmV0dXJuIG5ldyBjbmIodGhpcy5hKX07Xy5hPTA7dmFyIGdGPXNmYih4dmUsJ0FycmF5TGlzdE11bHRpbWFwJyw1MjApO2ZlYig2NzgsMjEwOSx7Njc4OjEsMjA0NjoxLDM6MX0saGopO3ZhciBzRj1zZmIoeHZlLCdBcnJheVRhYmxlJyw2NzgpO2ZlYigyMDIxLDM5OSx5dmUsaWopO18uWGI9ZnVuY3Rpb24gamooYSl7cmV0dXJuIG5ldyBwaih0aGlzLmEsYSl9O3ZhciBoRj1zZmIoeHZlLCdBcnJheVRhYmxlLzEnLDIwMjEpO2ZlYigyMDIyLDEse30sa2opO18udGQ9ZnVuY3Rpb24gbGooYSl7cmV0dXJuIG5ldyBwaih0aGlzLmEsYSl9O3ZhciBpRj1zZmIoeHZlLCdBcnJheVRhYmxlLzFtZXRob2RyZWYkZ2V0Q2VsbCRUeXBlJywyMDIyKTtmZWIoMjExMCwxLHs2OTc6MX0pO18uRmI9ZnVuY3Rpb24gbWooYSl7dmFyIGI7aWYoYT09PXRoaXMpe3JldHVybiB0cnVlfWlmKFpEKGEsNDc5KSl7Yj1SRChhLDY5Nyk7cmV0dXJuIEhiKFFtKHRoaXMuYy5lLHRoaXMuYiksUW0oYi5jLmUsYi5iKSkmJkhiKFFtKHRoaXMuYy5jLHRoaXMuYSksUW0oYi5jLmMsYi5hKSkmJkhiKFVpKHRoaXMuYyx0aGlzLmIsdGhpcy5hKSxVaShiLmMsYi5iLGIuYSkpfXJldHVybiBmYWxzZX07Xy5IYj1mdW5jdGlvbiBuaigpe3JldHVybiBUbmIoY0QoV0MoakosMSkscnZlLDEsNSxbUW0odGhpcy5jLmUsdGhpcy5iKSxRbSh0aGlzLmMuYyx0aGlzLmEpLFVpKHRoaXMuYyx0aGlzLmIsdGhpcy5hKV0pKX07Xy5JYj1mdW5jdGlvbiBvaigpe3JldHVybiAnKCcrUW0odGhpcy5jLmUsdGhpcy5iKSsnLCcrUW0odGhpcy5jLmMsdGhpcy5hKSsnKT0nK1VpKHRoaXMuYyx0aGlzLmIsdGhpcy5hKX07dmFyIGJJPXNmYih4dmUsJ1RhYmxlcy9BYnN0cmFjdENlbGwnLDIxMTApO2ZlYig0NzksMjExMCx7NDc5OjEsNjk3OjF9LHBqKTtfLmE9MDtfLmI9MDtfLmQ9MDt2YXIgakY9c2ZiKHh2ZSwnQXJyYXlUYWJsZS8yJyw0NzkpO2ZlYigyMDI0LDEse30scWopO18udGQ9ZnVuY3Rpb24gcmooYSl7cmV0dXJuIF9pKHRoaXMuYSxhKX07dmFyIGtGPXNmYih4dmUsJ0FycmF5VGFibGUvMm1ldGhvZHJlZiRnZXRWYWx1ZSRUeXBlJywyMDI0KTtmZWIoMjAyMywzOTkseXZlLHNqKTtfLlhiPWZ1bmN0aW9uIHRqKGEpe3JldHVybiBfaSh0aGlzLmEsYSl9O3ZhciBsRj1zZmIoeHZlLCdBcnJheVRhYmxlLzMnLDIwMjMpO2ZlYigyMDc3LDIwNjUsQ3ZlKTtfLiRiPWZ1bmN0aW9uIHZqKCl7QXIodGhpcy5rYygpKX07Xy52Yz1mdW5jdGlvbiB3aigpe3JldHVybiBuZXcgZ3codGhpcyl9O18ubGM9ZnVuY3Rpb24geGooKXtyZXR1cm4gbmV3IFV3Yih0aGlzLmtjKCksdGhpcy5nYygpKX07dmFyIHBIPXNmYih4dmUsJ01hcHMvSXRlcmF0b3JCYXNlZEFic3RyYWN0TWFwJywyMDc3KTtmZWIoODQyLDIwNzcsQ3ZlKTtfLiRiPWZ1bmN0aW9uIEJqKCl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLl9iPWZ1bmN0aW9uIENqKGEpe3JldHVybiBFbih0aGlzLmMsYSl9O18ua2M9ZnVuY3Rpb24gRGooKXtyZXR1cm4gbmV3IFJqKHRoaXMsdGhpcy5jLmIuYy5nYygpKX07Xy5sYz1mdW5jdGlvbiBFaigpe3JldHVybiBmayh0aGlzLmMuYi5jLmdjKCksMTYsbmV3IExqKHRoaXMpKX07Xy54Yz1mdW5jdGlvbiBGaihhKXt2YXIgYjtiPVJEKEZuKHRoaXMuYyxhKSwxNyk7cmV0dXJuICFiP251bGw6dGhpcy52ZChiLmEpfTtfLmRjPWZ1bmN0aW9uIEdqKCl7cmV0dXJuIHRoaXMuYy5iLmMuZGMoKX07Xy5lYz1mdW5jdGlvbiBIaigpe3JldHVybiBobih0aGlzLmMpfTtfLnpjPWZ1bmN0aW9uIElqKGEsYil7dmFyIGM7Yz1SRChGbih0aGlzLmMsYSksMTcpO2lmKCFjKXt0aHJvdyBBZGIobmV3IGFnYih0aGlzLnVkKCkrJyAnK2ErJyBub3QgaW4gJytobih0aGlzLmMpKSl9cmV0dXJuIHRoaXMud2QoYy5hLGIpfTtfLkJjPWZ1bmN0aW9uIEpqKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5nYz1mdW5jdGlvbiBLaigpe3JldHVybiB0aGlzLmMuYi5jLmdjKCl9O3ZhciBwRj1zZmIoeHZlLCdBcnJheVRhYmxlL0FycmF5TWFwJyw4NDIpO2ZlYigyMDIwLDEse30sTGopO18udGQ9ZnVuY3Rpb24gTWooYSl7cmV0dXJuIHlqKHRoaXMuYSxhKX07dmFyIG1GPXNmYih4dmUsJ0FycmF5VGFibGUvQXJyYXlNYXAvMG1ldGhvZHJlZiRnZXRFbnRyeSRUeXBlJywyMDIwKTtmZWIoMjAxOCwzNTgsS3ZlLE5qKTtfLmxkPWZ1bmN0aW9uIE9qKCl7cmV0dXJuIHpqKHRoaXMuYSx0aGlzLmIpfTtfLm1kPWZ1bmN0aW9uIFBqKCl7cmV0dXJuIHRoaXMuYS52ZCh0aGlzLmIpfTtfLm5kPWZ1bmN0aW9uIFFqKGEpe3JldHVybiB0aGlzLmEud2QodGhpcy5iLGEpfTtfLmI9MDt2YXIgbkY9c2ZiKHh2ZSwnQXJyYXlUYWJsZS9BcnJheU1hcC8xJywyMDE4KTtmZWIoMjAxOSwzOTkseXZlLFJqKTtfLlhiPWZ1bmN0aW9uIFNqKGEpe3JldHVybiB5aih0aGlzLmEsYSl9O3ZhciBvRj1zZmIoeHZlLCdBcnJheVRhYmxlL0FycmF5TWFwLzInLDIwMTkpO2ZlYigyMDE3LDg0MixDdmUsVGopO18udWQ9ZnVuY3Rpb24gVWooKXtyZXR1cm4gJ0NvbHVtbid9O18udmQ9ZnVuY3Rpb24gVmooYSl7cmV0dXJuIFVpKHRoaXMuYix0aGlzLmEsYSl9O18ud2Q9ZnVuY3Rpb24gV2ooYSxiKXtyZXR1cm4gY2oodGhpcy5iLHRoaXMuYSxhLGIpfTtfLmE9MDt2YXIgckY9c2ZiKHh2ZSwnQXJyYXlUYWJsZS9Sb3cnLDIwMTcpO2ZlYig4NDMsODQyLEN2ZSxaaik7Xy52ZD1mdW5jdGlvbiBfaihhKXtyZXR1cm4gbmV3IFRqKHRoaXMuYSxhKX07Xy56Yz1mdW5jdGlvbiBhayhhLGIpe3JldHVybiBSRChiLDg1KSxYaigpfTtfLndkPWZ1bmN0aW9uIGJrKGEsYil7cmV0dXJuIFJEKGIsODUpLFlqKCl9O18udWQ9ZnVuY3Rpb24gJGooKXtyZXR1cm4gJ1Jvdyd9O3ZhciBxRj1zZmIoeHZlLCdBcnJheVRhYmxlL1Jvd01hcCcsODQzKTtmZWIoMTE1NywxLFB2ZSxoayk7Xy5BZD1mdW5jdGlvbiBsayhhKXtyZXR1cm4gKHRoaXMuYS55ZCgpJi0yNjImYSkhPTB9O18ueWQ9ZnVuY3Rpb24gaWsoKXtyZXR1cm4gdGhpcy5hLnlkKCkmLTI2Mn07Xy56ZD1mdW5jdGlvbiBqaygpe3JldHVybiB0aGlzLmEuemQoKX07Xy5OYj1mdW5jdGlvbiBrayhhKXt0aGlzLmEuTmIobmV3IHBrKGEsdGhpcy5iKSl9O18uQmQ9ZnVuY3Rpb24gbWsoYSl7cmV0dXJuIHRoaXMuYS5CZChuZXcgbmsoYSx0aGlzLmIpKX07dmFyIHlGPXNmYih4dmUsJ0NvbGxlY3RTcGxpdGVyYXRvcnMvMScsMTE1Nyk7ZmViKDExNTgsMSxRdmUsbmspO18uQ2Q9ZnVuY3Rpb24gb2soYSl7dGhpcy5hLkNkKHRoaXMuYi5LYihhKSl9O3ZhciB0Rj1zZmIoeHZlLCdDb2xsZWN0U3BsaXRlcmF0b3JzLzEvbGFtYmRhJDAkVHlwZScsMTE1OCk7ZmViKDExNTksMSxRdmUscGspO18uQ2Q9ZnVuY3Rpb24gcWsoYSl7dGhpcy5hLkNkKHRoaXMuYi5LYihhKSl9O3ZhciB1Rj1zZmIoeHZlLCdDb2xsZWN0U3BsaXRlcmF0b3JzLzEvbGFtYmRhJDEkVHlwZScsMTE1OSk7ZmViKDExNTQsMSxQdmUscmspO18uQWQ9ZnVuY3Rpb24gdmsoYSl7cmV0dXJuICgoMTY0NjR8dGhpcy5iKSZhKSE9MH07Xy55ZD1mdW5jdGlvbiBzaygpe3JldHVybiAxNjQ2NHx0aGlzLmJ9O18uemQ9ZnVuY3Rpb24gdGsoKXtyZXR1cm4gdGhpcy5hLnpkKCl9O18uTmI9ZnVuY3Rpb24gdWsoYSl7dGhpcy5hLlFlKG5ldyB6ayhhLHRoaXMuYykpfTtfLkJkPWZ1bmN0aW9uIHdrKGEpe3JldHVybiB0aGlzLmEuUmUobmV3IHhrKGEsdGhpcy5jKSl9O18uYj0wO3ZhciB4Rj1zZmIoeHZlLCdDb2xsZWN0U3BsaXRlcmF0b3JzLzFXaXRoQ2hhcmFjdGVyaXN0aWNzJywxMTU0KTtmZWIoMTE1NSwxLFJ2ZSx4ayk7Xy5EZD1mdW5jdGlvbiB5ayhhKXt0aGlzLmEuQ2QodGhpcy5iLnRkKGEpKX07dmFyIHZGPXNmYih4dmUsJ0NvbGxlY3RTcGxpdGVyYXRvcnMvMVdpdGhDaGFyYWN0ZXJpc3RpY3MvbGFtYmRhJDAkVHlwZScsMTE1NSk7ZmViKDExNTYsMSxSdmUsemspO18uRGQ9ZnVuY3Rpb24gQWsoYSl7dGhpcy5hLkNkKHRoaXMuYi50ZChhKSl9O3ZhciB3Rj1zZmIoeHZlLCdDb2xsZWN0U3BsaXRlcmF0b3JzLzFXaXRoQ2hhcmFjdGVyaXN0aWNzL2xhbWJkYSQxJFR5cGUnLDExNTYpO2ZlYigxMTUwLDEsUHZlKTtfLkFkPWZ1bmN0aW9uIEdrKGEpe3JldHVybiAodGhpcy5hJmEpIT0wfTtfLnlkPWZ1bmN0aW9uIERrKCl7cmV0dXJuIHRoaXMuYX07Xy56ZD1mdW5jdGlvbiBFaygpeyEhdGhpcy5lJiYodGhpcy5iPUtnYih0aGlzLmIsdGhpcy5lLnpkKCkpKTtyZXR1cm4gS2diKHRoaXMuYiwwKX07Xy5OYj1mdW5jdGlvbiBGayhhKXtpZih0aGlzLmUpe3RoaXMuZS5OYihhKTt0aGlzLmU9bnVsbH10aGlzLmMuTmIobmV3IEtrKHRoaXMsYSkpO3RoaXMuYj0wfTtfLkJkPWZ1bmN0aW9uIEhrKGEpe3doaWxlKHRydWUpe2lmKCEhdGhpcy5lJiZ0aGlzLmUuQmQoYSkpe1BkYih0aGlzLmIsU3ZlKSYmKHRoaXMuYj1WZGIodGhpcy5iLDEpKTtyZXR1cm4gdHJ1ZX1lbHNle3RoaXMuZT1udWxsfWlmKCF0aGlzLmMuQmQobmV3IElrKHRoaXMpKSl7cmV0dXJuIGZhbHNlfX19O18uYT0wO18uYj0wO3ZhciBDRj1zZmIoeHZlLCdDb2xsZWN0U3BsaXRlcmF0b3JzL0ZsYXRNYXBTcGxpdGVyYXRvcicsMTE1MCk7ZmViKDExNTIsMSxRdmUsSWspO18uQ2Q9ZnVuY3Rpb24gSmsoYSl7QmsodGhpcy5hLGEpfTt2YXIgekY9c2ZiKHh2ZSwnQ29sbGVjdFNwbGl0ZXJhdG9ycy9GbGF0TWFwU3BsaXRlcmF0b3IvbGFtYmRhJDAkVHlwZScsMTE1Mik7ZmViKDExNTMsMSxRdmUsS2spO18uQ2Q9ZnVuY3Rpb24gTGsoYSl7Q2sodGhpcy5hLHRoaXMuYixhKX07dmFyIEFGPXNmYih4dmUsJ0NvbGxlY3RTcGxpdGVyYXRvcnMvRmxhdE1hcFNwbGl0ZXJhdG9yL2xhbWJkYSQxJFR5cGUnLDExNTMpO2ZlYigxMTUxLDExNTAsUHZlLE1rKTt2YXIgQkY9c2ZiKHh2ZSwnQ29sbGVjdFNwbGl0ZXJhdG9ycy9GbGF0TWFwU3BsaXRlcmF0b3JPZk9iamVjdCcsMTE1MSk7ZmViKDI1MywxLFR2ZSk7Xy5GZD1mdW5jdGlvbiBTayhhKXtyZXR1cm4gdGhpcy5FZChSRChhLDI1MykpfTtfLkVkPWZ1bmN0aW9uIFJrKGEpe3ZhciBiO2lmKGE9PShrbCgpLGpsKSl7cmV0dXJuIDF9aWYoYT09KFdrKCksVmspKXtyZXR1cm4gLTF9Yj0odXgoKSxMZWIodGhpcy5hLGEuYSkpO2lmKGIhPTApe3JldHVybiBifXJldHVybiBaRCh0aGlzLDUyNik9PVpEKGEsNTI2KT8wOlpEKHRoaXMsNTI2KT8xOi0xfTtfLklkPWZ1bmN0aW9uIFRrKCl7cmV0dXJuIHRoaXMuYX07Xy5GYj1mdW5jdGlvbiBVayhhKXtyZXR1cm4gUGsodGhpcyxhKX07dmFyIEhGPXNmYih4dmUsJ0N1dCcsMjUzKTtmZWIoMTgyMywyNTMsVHZlLFhrKTtfLkVkPWZ1bmN0aW9uIFlrKGEpe3JldHVybiBhPT10aGlzPzA6MX07Xy5HZD1mdW5jdGlvbiBaayhhKXt0aHJvdyBBZGIobmV3IENlYil9O18uSGQ9ZnVuY3Rpb24gJGsoYSl7YS5hKz0nK1xcdTIyMUUpJ307Xy5JZD1mdW5jdGlvbiBfaygpe3Rocm93IEFkYihuZXcgZGdiKFV2ZSkpfTtfLkhiPWZ1bmN0aW9uIGFsKCl7cmV0dXJuIGdpYigpLGpGYih0aGlzKX07Xy5KZD1mdW5jdGlvbiBibChhKXtyZXR1cm4gZmFsc2V9O18uSWI9ZnVuY3Rpb24gY2woKXtyZXR1cm4gJytcXHUyMjFFJ307dmFyIFZrO3ZhciBERj1zZmIoeHZlLCdDdXQvQWJvdmVBbGwnLDE4MjMpO2ZlYig1MjYsMjUzLHsyNTM6MSw1MjY6MSwzOjEsMzQ6MX0sZGwpO18uR2Q9ZnVuY3Rpb24gZWwoYSl7WWhiKChhLmErPScoJyxhKSx0aGlzLmEpfTtfLkhkPWZ1bmN0aW9uIGZsKGEpe1RoYihZaGIoYSx0aGlzLmEpLDkzKX07Xy5IYj1mdW5jdGlvbiBnbCgpe3JldHVybiB+dGIodGhpcy5hKX07Xy5KZD1mdW5jdGlvbiBobChhKXtyZXR1cm4gdXgoKSxMZWIodGhpcy5hLGEpPDB9O18uSWI9ZnVuY3Rpb24gaWwoKXtyZXR1cm4gJy8nK3RoaXMuYSsnXFxcXCd9O3ZhciBFRj1zZmIoeHZlLCdDdXQvQWJvdmVWYWx1ZScsNTI2KTtmZWIoMTgyMiwyNTMsVHZlLGxsKTtfLkVkPWZ1bmN0aW9uIG1sKGEpe3JldHVybiBhPT10aGlzPzA6LTF9O18uR2Q9ZnVuY3Rpb24gbmwoYSl7YS5hKz0nKC1cXHUyMjFFJ307Xy5IZD1mdW5jdGlvbiBvbChhKXt0aHJvdyBBZGIobmV3IENlYil9O18uSWQ9ZnVuY3Rpb24gcGwoKXt0aHJvdyBBZGIobmV3IGRnYihVdmUpKX07Xy5IYj1mdW5jdGlvbiBxbCgpe3JldHVybiBnaWIoKSxqRmIodGhpcyl9O18uSmQ9ZnVuY3Rpb24gcmwoYSl7cmV0dXJuIHRydWV9O18uSWI9ZnVuY3Rpb24gc2woKXtyZXR1cm4gJy1cXHUyMjFFJ307dmFyIGpsO3ZhciBGRj1zZmIoeHZlLCdDdXQvQmVsb3dBbGwnLDE4MjIpO2ZlYigxODI0LDI1MyxUdmUsdGwpO18uR2Q9ZnVuY3Rpb24gdWwoYSl7WWhiKChhLmErPSdbJyxhKSx0aGlzLmEpfTtfLkhkPWZ1bmN0aW9uIHZsKGEpe1RoYihZaGIoYSx0aGlzLmEpLDQxKX07Xy5IYj1mdW5jdGlvbiB3bCgpe3JldHVybiB0Yih0aGlzLmEpfTtfLkpkPWZ1bmN0aW9uIHhsKGEpe3JldHVybiB1eCgpLExlYih0aGlzLmEsYSk8PTB9O18uSWI9ZnVuY3Rpb24geWwoKXtyZXR1cm4gJ1xcXFwnK3RoaXMuYSsnLyd9O3ZhciBHRj1zZmIoeHZlLCdDdXQvQmVsb3dWYWx1ZScsMTgyNCk7ZmViKDU0NywxLFZ2ZSk7Xy5KYz1mdW5jdGlvbiBCbChhKXt4Z2IodGhpcyxhKX07Xy5JYj1mdW5jdGlvbiBDbCgpe3JldHVybiBMcihSRChSYih0aGlzLCd1c2UgT3B0aW9uYWwub3JOdWxsKCkgaW5zdGVhZCBvZiBPcHRpb25hbC5vcihudWxsKScpLDIwKS5LYygpKX07dmFyIExGPXNmYih4dmUsJ0ZsdWVudEl0ZXJhYmxlJyw1NDcpO2ZlYig0NDIsNTQ3LFZ2ZSxEbCk7Xy5LYz1mdW5jdGlvbiBFbCgpe3JldHVybiBuZXcgaXMoTXIodGhpcy5hLktjKCksbmV3IGlyKSl9O3ZhciBJRj1zZmIoeHZlLCdGbHVlbnRJdGVyYWJsZS8yJyw0NDIpO2ZlYigxMDU5LDU0NyxWdmUsR2wpO18uS2M9ZnVuY3Rpb24gSGwoKXtyZXR1cm4gRmwodGhpcyl9O3ZhciBLRj1zZmIoeHZlLCdGbHVlbnRJdGVyYWJsZS8zJywxMDU5KTtmZWIoNzI0LDM5OSx5dmUsSWwpO18uWGI9ZnVuY3Rpb24gSmwoYSl7cmV0dXJuIHRoaXMuYVthXS5LYygpfTt2YXIgSkY9c2ZiKHh2ZSwnRmx1ZW50SXRlcmFibGUvMy8xJyw3MjQpO2ZlYigyMDcwLDEse30pO18uSWI9ZnVuY3Rpb24gS2woKXtyZXR1cm4gamViKHRoaXMuS2QoKS5iKX07dmFyIFNGPXNmYih4dmUsJ0ZvcndhcmRpbmdPYmplY3QnLDIwNzApO2ZlYigyMDcxLDIwNzAsV3ZlKTtfLktkPWZ1bmN0aW9uIFFsKCl7cmV0dXJuIHRoaXMuTGQoKX07Xy5KYz1mdW5jdGlvbiBSbChhKXt4Z2IodGhpcyxhKX07Xy5MYz1mdW5jdGlvbiBVbCgpe3JldHVybiB0aGlzLk9jKCl9O18uTmM9ZnVuY3Rpb24gWGwoKXtyZXR1cm4gbmV3IFN3Yih0aGlzLDApfTtfLk9jPWZ1bmN0aW9uIFlsKCl7cmV0dXJuIG5ldyBTRGIobnVsbCx0aGlzLk5jKCkpfTtfLkZjPWZ1bmN0aW9uIExsKGEpe3JldHVybiB0aGlzLkxkKCkscXBiKCl9O18uR2M9ZnVuY3Rpb24gTWwoYSl7cmV0dXJuIHRoaXMuTGQoKSxycGIoKX07Xy4kYj1mdW5jdGlvbiBObCgpe3RoaXMuTGQoKSxzcGIoKX07Xy5IYz1mdW5jdGlvbiBPbChhKXtyZXR1cm4gdGhpcy5MZCgpLkhjKGEpfTtfLkljPWZ1bmN0aW9uIFBsKGEpe3JldHVybiB0aGlzLkxkKCkuSWMoYSl9O18uZGM9ZnVuY3Rpb24gU2woKXtyZXR1cm4gdGhpcy5MZCgpLmIuZGMoKX07Xy5LYz1mdW5jdGlvbiBUbCgpe3JldHVybiB0aGlzLkxkKCkuS2MoKX07Xy5NYz1mdW5jdGlvbiBWbChhKXtyZXR1cm4gdGhpcy5MZCgpLHZwYigpfTtfLmdjPWZ1bmN0aW9uIFdsKCl7cmV0dXJuIHRoaXMuTGQoKS5iLmdjKCl9O18uUGM9ZnVuY3Rpb24gWmwoKXtyZXR1cm4gdGhpcy5MZCgpLlBjKCl9O18uUWM9ZnVuY3Rpb24gJGwoYSl7cmV0dXJuIHRoaXMuTGQoKS5RYyhhKX07dmFyIE1GPXNmYih4dmUsJ0ZvcndhcmRpbmdDb2xsZWN0aW9uJywyMDcxKTtmZWIoMjA3OCwzMSxYdmUpO18uS2M9ZnVuY3Rpb24gZ20oKXtyZXR1cm4gdGhpcy5PZCgpfTtfLkZjPWZ1bmN0aW9uIGFtKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5HYz1mdW5jdGlvbiBibShhKXt0aHJvdyBBZGIobmV3IGppYil9O18uTWQ9ZnVuY3Rpb24gY20oKXt2YXIgYTthPXRoaXMuYztyZXR1cm4gIWE/KHRoaXMuYz10aGlzLk5kKCkpOmF9O18uJGI9ZnVuY3Rpb24gZG0oKXt0aHJvdyBBZGIobmV3IGppYil9O18uSGM9ZnVuY3Rpb24gZW0oYSl7cmV0dXJuIGEhPW51bGwmJnplKHRoaXMsYSxmYWxzZSl9O18uTmQ9ZnVuY3Rpb24gZm0oKXtzd2l0Y2godGhpcy5nYygpKXtjYXNlIDA6cmV0dXJuIHRtKCksdG0oKSxzbTtjYXNlIDE6cmV0dXJuIHRtKCksbmV3IER5KFFiKHRoaXMuT2QoKS5QYigpKSk7ZGVmYXVsdDpyZXR1cm4gbmV3IEZ4KHRoaXMsdGhpcy5QYygpKTt9fTtfLk1jPWZ1bmN0aW9uIGhtKGEpe3Rocm93IEFkYihuZXcgamliKX07dmFyIGxHPXNmYih4dmUsJ0ltbXV0YWJsZUNvbGxlY3Rpb24nLDIwNzgpO2ZlYig3MjcsMjA3OCxYdmUsaW0pO18uS2M9ZnVuY3Rpb24gbm0oKXtyZXR1cm4gTnIodGhpcy5hLktjKCkpfTtfLkhjPWZ1bmN0aW9uIGptKGEpe3JldHVybiBhIT1udWxsJiZ0aGlzLmEuSGMoYSl9O18uSWM9ZnVuY3Rpb24ga20oYSl7cmV0dXJuIHRoaXMuYS5JYyhhKX07Xy5kYz1mdW5jdGlvbiBsbSgpe3JldHVybiB0aGlzLmEuZGMoKX07Xy5PZD1mdW5jdGlvbiBtbSgpe3JldHVybiBOcih0aGlzLmEuS2MoKSl9O18uZ2M9ZnVuY3Rpb24gb20oKXtyZXR1cm4gdGhpcy5hLmdjKCl9O18uUGM9ZnVuY3Rpb24gcG0oKXtyZXR1cm4gdGhpcy5hLlBjKCl9O18uUWM9ZnVuY3Rpb24gcW0oYSl7cmV0dXJuIHRoaXMuYS5RYyhhKX07Xy5JYj1mdW5jdGlvbiBybSgpe3JldHVybiBqZWIodGhpcy5hKX07dmFyIE5GPXNmYih4dmUsJ0ZvcndhcmRpbmdJbW11dGFibGVDb2xsZWN0aW9uJyw3MjcpO2ZlYigzMDcsMjA3OCxZdmUpO18uS2M9ZnVuY3Rpb24gRW0oKXtyZXR1cm4gdGhpcy5PZCgpfTtfLmVkPWZ1bmN0aW9uIEZtKCl7cmV0dXJuIHRoaXMuUGQoMCl9O18uZmQ9ZnVuY3Rpb24gSG0oYSl7cmV0dXJuIHRoaXMuUGQoYSl9O18uamQ9ZnVuY3Rpb24gTG0oYSl7dHZiKHRoaXMsYSl9O18uTmM9ZnVuY3Rpb24gTW0oKXtyZXR1cm4gbmV3IFN3Yih0aGlzLDE2KX07Xy5rZD1mdW5jdGlvbiBPbShhLGIpe3JldHVybiB0aGlzLlFkKGEsYil9O18uYmQ9ZnVuY3Rpb24gd20oYSxiKXt0aHJvdyBBZGIobmV3IGppYil9O18uY2Q9ZnVuY3Rpb24geG0oYSxiKXt0aHJvdyBBZGIobmV3IGppYil9O18uTWQ9ZnVuY3Rpb24geW0oKXtyZXR1cm4gdGhpc307Xy5GYj1mdW5jdGlvbiBBbShhKXtyZXR1cm4gJHUodGhpcyxhKX07Xy5IYj1mdW5jdGlvbiBCbSgpe3JldHVybiBfdSh0aGlzKX07Xy5kZD1mdW5jdGlvbiBDbShhKXtyZXR1cm4gYT09bnVsbD8tMTphdih0aGlzLGEpfTtfLk9kPWZ1bmN0aW9uIERtKCl7cmV0dXJuIHRoaXMuUGQoMCl9O18uUGQ9ZnVuY3Rpb24gR20oYSl7cmV0dXJuIHVtKHRoaXMsYSl9O18uZ2Q9ZnVuY3Rpb24gSm0oYSl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLmhkPWZ1bmN0aW9uIEttKGEsYil7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLlFkPWZ1bmN0aW9uIE5tKGEsYil7dmFyIGM7cmV0dXJuIFBtKChjPW5ldyBwdih0aGlzKSxuZXcgUmtiKGMsYSxiKSkpfTt2YXIgc207dmFyIHFHPXNmYih4dmUsJ0ltbXV0YWJsZUxpc3QnLDMwNyk7ZmViKDIxMDUsMzA3LFl2ZSk7Xy5LYz1mdW5jdGlvbiBabSgpe3JldHVybiBOcih0aGlzLlJkKCkuS2MoKSl9O18ua2Q9ZnVuY3Rpb24gYW4oYSxiKXtyZXR1cm4gUG0odGhpcy5SZCgpLmtkKGEsYikpfTtfLkhjPWZ1bmN0aW9uIFJtKGEpe3JldHVybiBhIT1udWxsJiZ0aGlzLlJkKCkuSGMoYSl9O18uSWM9ZnVuY3Rpb24gU20oYSl7cmV0dXJuIHRoaXMuUmQoKS5JYyhhKX07Xy5GYj1mdW5jdGlvbiBUbShhKXtyZXR1cm4gcGIodGhpcy5SZCgpLGEpfTtfLlhiPWZ1bmN0aW9uIFVtKGEpe3JldHVybiBRbSh0aGlzLGEpfTtfLkhiPWZ1bmN0aW9uIFZtKCl7cmV0dXJuIHRiKHRoaXMuUmQoKSl9O18uZGQ9ZnVuY3Rpb24gV20oYSl7cmV0dXJuIHRoaXMuUmQoKS5kZChhKX07Xy5kYz1mdW5jdGlvbiBYbSgpe3JldHVybiB0aGlzLlJkKCkuZGMoKX07Xy5PZD1mdW5jdGlvbiBZbSgpe3JldHVybiBOcih0aGlzLlJkKCkuS2MoKSl9O18uZ2M9ZnVuY3Rpb24gJG0oKXtyZXR1cm4gdGhpcy5SZCgpLmdjKCl9O18uUWQ9ZnVuY3Rpb24gX20oYSxiKXtyZXR1cm4gUG0odGhpcy5SZCgpLmtkKGEsYikpfTtfLlBjPWZ1bmN0aW9uIGJuKCl7cmV0dXJuIHRoaXMuUmQoKS5RYygkQyhqSixydmUsMSx0aGlzLlJkKCkuZ2MoKSw1LDEpKX07Xy5RYz1mdW5jdGlvbiBjbihhKXtyZXR1cm4gdGhpcy5SZCgpLlFjKGEpfTtfLkliPWZ1bmN0aW9uIGRuKCl7cmV0dXJuIGplYih0aGlzLlJkKCkpfTt2YXIgT0Y9c2ZiKHh2ZSwnRm9yd2FyZGluZ0ltbXV0YWJsZUxpc3QnLDIxMDUpO2ZlYig3MjksMSwkdmUpO18udmM9ZnVuY3Rpb24gcG4oKXtyZXR1cm4gZ24odGhpcyl9O18ud2M9ZnVuY3Rpb24gcm4oYSl7QnZiKHRoaXMsYSl9O18uZWM9ZnVuY3Rpb24gdm4oKXtyZXR1cm4gaG4odGhpcyl9O18ueWM9ZnVuY3Rpb24gd24oYSxiLGMpe3JldHVybiBDdmIodGhpcyxhLGIsYyl9O18uQ2M9ZnVuY3Rpb24gRG4oKXtyZXR1cm4gdGhpcy5WZCgpfTtfLiRiPWZ1bmN0aW9uIGtuKCl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLl9iPWZ1bmN0aW9uIGxuKGEpe3JldHVybiB0aGlzLnhjKGEpIT1udWxsfTtfLnVjPWZ1bmN0aW9uIG1uKGEpe3JldHVybiB0aGlzLlZkKCkuSGMoYSl9O18uVGQ9ZnVuY3Rpb24gbm4oKXtyZXR1cm4gbmV3IHhxKHRoaXMpfTtfLlVkPWZ1bmN0aW9uIG9uKCl7cmV0dXJuIG5ldyBHcSh0aGlzKX07Xy5GYj1mdW5jdGlvbiBxbihhKXtyZXR1cm4gVHYodGhpcyxhKX07Xy5IYj1mdW5jdGlvbiB0bigpe3JldHVybiBnbih0aGlzKS5IYigpfTtfLmRjPWZ1bmN0aW9uIHVuKCl7cmV0dXJuIHRoaXMuZ2MoKT09MH07Xy56Yz1mdW5jdGlvbiB6bihhLGIpe3JldHVybiBqbigpfTtfLkJjPWZ1bmN0aW9uIEFuKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5JYj1mdW5jdGlvbiBCbigpe3JldHVybiBadih0aGlzKX07Xy5WZD1mdW5jdGlvbiBDbigpe2lmKHRoaXMuZSl7cmV0dXJuIHRoaXMuZX1yZXR1cm4gdGhpcy5lPXRoaXMuVWQoKX07Xy5jPW51bGw7Xy5kPW51bGw7Xy5lPW51bGw7dmFyIGVuO3ZhciBBRz1zZmIoeHZlLCdJbW11dGFibGVNYXAnLDcyOSk7ZmViKDczMCw3MjksJHZlKTtfLl9iPWZ1bmN0aW9uIEhuKGEpe3JldHVybiBFbih0aGlzLGEpfTtfLnVjPWZ1bmN0aW9uIEluKGEpe3JldHVybiBwcWIodGhpcy5iLGEpfTtfLlNkPWZ1bmN0aW9uIEpuKCl7cmV0dXJuIGdvKG5ldyBYbih0aGlzKSl9O18uVGQ9ZnVuY3Rpb24gS24oKXtyZXR1cm4gZ28oc3FiKHRoaXMuYikpfTtfLlVkPWZ1bmN0aW9uIExuKCl7cmV0dXJuIF9sKCksbmV3IGltKHRxYih0aGlzLmIpKX07Xy5GYj1mdW5jdGlvbiBNbihhKXtyZXR1cm4gcnFiKHRoaXMuYixhKX07Xy54Yz1mdW5jdGlvbiBObihhKXtyZXR1cm4gRm4odGhpcyxhKX07Xy5IYj1mdW5jdGlvbiBPbigpe3JldHVybiB0Yih0aGlzLmIuYyl9O18uZGM9ZnVuY3Rpb24gUG4oKXtyZXR1cm4gdGhpcy5iLmMuZGMoKX07Xy5nYz1mdW5jdGlvbiBRbigpe3JldHVybiB0aGlzLmIuYy5nYygpfTtfLkliPWZ1bmN0aW9uIFJuKCl7cmV0dXJuIGplYih0aGlzLmIuYyl9O3ZhciBRRj1zZmIoeHZlLCdGb3J3YXJkaW5nSW1tdXRhYmxlTWFwJyw3MzApO2ZlYigyMDcyLDIwNzEsX3ZlKTtfLktkPWZ1bmN0aW9uIFNuKCl7cmV0dXJuIHRoaXMuV2QoKX07Xy5MZD1mdW5jdGlvbiBUbigpe3JldHVybiB0aGlzLldkKCl9O18uTmM9ZnVuY3Rpb24gV24oKXtyZXR1cm4gbmV3IFN3Yih0aGlzLDEpfTtfLkZiPWZ1bmN0aW9uIFVuKGEpe3JldHVybiBhPT09dGhpc3x8dGhpcy5XZCgpLkZiKGEpfTtfLkhiPWZ1bmN0aW9uIFZuKCl7cmV0dXJuIHRoaXMuV2QoKS5IYigpfTt2YXIgVEY9c2ZiKHh2ZSwnRm9yd2FyZGluZ1NldCcsMjA3Mik7ZmViKDEwODUsMjA3MixfdmUsWG4pO18uS2Q9ZnVuY3Rpb24gWm4oKXtyZXR1cm4gcXFiKHRoaXMuYS5iKX07Xy5MZD1mdW5jdGlvbiAkbigpe3JldHVybiBxcWIodGhpcy5hLmIpfTtfLkhjPWZ1bmN0aW9uIFluKGIpe2lmKFpEKGIsNDQpJiZSRChiLDQ0KS5sZCgpPT1udWxsKXtyZXR1cm4gZmFsc2V9dHJ5e3JldHVybiBQcWIocXFiKHRoaXMuYS5iKSxiKX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDIxMikpe3JldHVybiBmYWxzZX1lbHNlIHRocm93IEFkYihhKX19O18uV2Q9ZnVuY3Rpb24gX24oKXtyZXR1cm4gcXFiKHRoaXMuYS5iKX07Xy5RYz1mdW5jdGlvbiBhbyhhKXt2YXIgYjtiPVFxYihxcWIodGhpcy5hLmIpLGEpO3FxYih0aGlzLmEuYikuYi5nYygpPGIubGVuZ3RoJiZiRChiLHFxYih0aGlzLmEuYikuYi5nYygpLG51bGwpO3JldHVybiBifTt2YXIgUEY9c2ZiKHh2ZSwnRm9yd2FyZGluZ0ltbXV0YWJsZU1hcC8xJywxMDg1KTtmZWIoMjA3OSwyMDc4LGF3ZSk7Xy5LYz1mdW5jdGlvbiBlbygpe3JldHVybiB0aGlzLk9kKCl9O18uTmM9ZnVuY3Rpb24gZm8oKXtyZXR1cm4gbmV3IFN3Yih0aGlzLDEpfTtfLkZiPWZ1bmN0aW9uIGJvKGEpe3JldHVybiBSeCh0aGlzLGEpfTtfLkhiPWZ1bmN0aW9uIGNvKCl7cmV0dXJuIFN4KHRoaXMpfTt2YXIgQ0c9c2ZiKHh2ZSwnSW1tdXRhYmxlU2V0JywyMDc5KTtmZWIoNzE5LDIwNzksYXdlKTtfLktjPWZ1bmN0aW9uIG5vKCl7cmV0dXJuIE5yKG5ldyBQcGIodGhpcy5hLmIuS2MoKSkpfTtfLkhjPWZ1bmN0aW9uIGlvKGEpe3JldHVybiBhIT1udWxsJiZ0cGIodGhpcy5hLGEpfTtfLkljPWZ1bmN0aW9uIGpvKGEpe3JldHVybiB1cGIodGhpcy5hLGEpfTtfLkhiPWZ1bmN0aW9uIGtvKCl7cmV0dXJuIHRiKHRoaXMuYS5iKX07Xy5kYz1mdW5jdGlvbiBsbygpe3JldHVybiB0aGlzLmEuYi5kYygpfTtfLk9kPWZ1bmN0aW9uIG1vKCl7cmV0dXJuIE5yKG5ldyBQcGIodGhpcy5hLmIuS2MoKSkpfTtfLmdjPWZ1bmN0aW9uIG9vKCl7cmV0dXJuIHRoaXMuYS5iLmdjKCl9O18uUGM9ZnVuY3Rpb24gcG8oKXtyZXR1cm4gdGhpcy5hLmIuUGMoKX07Xy5RYz1mdW5jdGlvbiBxbyhhKXtyZXR1cm4gd3BiKHRoaXMuYSxhKX07Xy5JYj1mdW5jdGlvbiBybygpe3JldHVybiBqZWIodGhpcy5hLmIpfTt2YXIgUkY9c2ZiKHh2ZSwnRm9yd2FyZGluZ0ltbXV0YWJsZVNldCcsNzE5KTtmZWIoMjA3MywyMDcyLGJ3ZSk7Xy5LZD1mdW5jdGlvbiBzbygpe3JldHVybiB0aGlzLmJ9O18uTGQ9ZnVuY3Rpb24gdG8oKXtyZXR1cm4gdGhpcy5ifTtfLldkPWZ1bmN0aW9uIHVvKCl7cmV0dXJuIHRoaXMuYn07Xy5OYz1mdW5jdGlvbiB2bygpe3JldHVybiBuZXcgJHdiKHRoaXMpfTt2YXIgVUY9c2ZiKHh2ZSwnRm9yd2FyZGluZ1NvcnRlZFNldCcsMjA3Myk7ZmViKDU0MywyMDc3LCR2ZSxJbyk7Xy5BYz1mdW5jdGlvbiBSbyhhKXtMZCh0aGlzLGEpfTtfLkNjPWZ1bmN0aW9uIFVvKCl7dmFyIGE7cmV0dXJuIGE9dGhpcy5kLG5ldyBHcCghYT8odGhpcy5kPW5ldyBtcCh0aGlzKSk6YSl9O18uJGI9ZnVuY3Rpb24gSm8oKXt3byh0aGlzKX07Xy5fYj1mdW5jdGlvbiBLbyhhKXtyZXR1cm4gISFHbyh0aGlzLGEsWWRiKE5kYihjd2UscWdiKFlkYihOZGIoYT09bnVsbD8wOnRiKGEpLGR3ZSkpLDE1KSkpKX07Xy51Yz1mdW5jdGlvbiBMbyhhKXtyZXR1cm4geG8odGhpcyxhKX07Xy5rYz1mdW5jdGlvbiBNbygpe3JldHVybiBuZXcgYXAodGhpcyx0aGlzKX07Xy53Yz1mdW5jdGlvbiBObyhhKXt6byh0aGlzLGEpfTtfLnhjPWZ1bmN0aW9uIE9vKGEpe3JldHVybiBBbyh0aGlzLGEpfTtfLmVjPWZ1bmN0aW9uIFBvKCl7cmV0dXJuIG5ldyBOcCh0aGlzKX07Xy56Yz1mdW5jdGlvbiBRbyhhLGIpe3JldHVybiBEbyh0aGlzLGEsYil9O18uQmM9ZnVuY3Rpb24gU28oYSl7dmFyIGI7Yj1Hbyh0aGlzLGEsWWRiKE5kYihjd2UscWdiKFlkYihOZGIoYT09bnVsbD8wOnRiKGEpLGR3ZSkpLDE1KSkpKTtpZighYil7cmV0dXJuIG51bGx9ZWxzZXt5byh0aGlzLGIpO2IuZT1udWxsO2IuYz1udWxsO3JldHVybiBiLml9fTtfLmdjPWZ1bmN0aW9uIFRvKCl7cmV0dXJuIHRoaXMuaX07Xy54ZD1mdW5jdGlvbiBWbygpe3ZhciBhO3JldHVybiBhPXRoaXMuZCxuZXcgR3AoIWE/KHRoaXMuZD1uZXcgbXAodGhpcykpOmEpfTtfLmY9MDtfLmc9MDtfLmk9MDt2YXIgZkc9c2ZiKHh2ZSwnSGFzaEJpTWFwJyw1NDMpO2ZlYig1NDQsMSxBdmUpO18uTmI9ZnVuY3Rpb24gWW8oYSl7WnRiKHRoaXMsYSl9O18uT2I9ZnVuY3Rpb24gWm8oKXtyZXR1cm4gV28odGhpcyl9O18uUGI9ZnVuY3Rpb24gJG8oKXt2YXIgYTtpZighV28odGhpcykpe3Rocm93IEFkYihuZXcgRHZiKX1hPVJEKEh2Yih0aGlzLmMpLDMwMyk7dGhpcy5jPWEuYzt0aGlzLmY9YTstLXRoaXMuZDtyZXR1cm4gdGhpcy5YZChhKX07Xy5RYj1mdW5jdGlvbiBfbygpe2lmKHRoaXMuZS5nIT10aGlzLmIpe3Rocm93IEFkYihuZXcgSnJiKX1pZighdGhpcy5mKXt0aHJvdyBBZGIobmV3IGRnYih0dmUpKX15byh0aGlzLmUsdGhpcy5mKTt0aGlzLmI9dGhpcy5lLmc7dGhpcy5mPW51bGx9O18uYj0wO18uZD0wO18uZj1udWxsO3ZhciBjRz1zZmIoeHZlLCdIYXNoQmlNYXAvSXRyJyw1NDQpO2ZlYigxMDIzLDU0NCxBdmUsYXApO18uWGQ9ZnVuY3Rpb24gYnAoYSl7cmV0dXJuIG5ldyBjcCh0aGlzLGEpfTt2YXIgV0Y9c2ZiKHh2ZSwnSGFzaEJpTWFwLzEnLDEwMjMpO2ZlYihnd2UsMzU4LEt2ZSxjcCk7Xy5sZD1mdW5jdGlvbiBkcCgpe3JldHVybiB0aGlzLmEuZ307Xy5tZD1mdW5jdGlvbiBlcCgpe3JldHVybiB0aGlzLmEuaX07Xy5uZD1mdW5jdGlvbiBmcChhKXt2YXIgYixjLGQ7Yz10aGlzLmEuaTtkPVlkYihOZGIoY3dlLHFnYihZZGIoTmRiKGE9PW51bGw/MDp0YihhKSxkd2UpKSwxNSkpKTtpZihkPT10aGlzLmEuZiYmKGRFKGEpPT09ZEUoYyl8fGEhPW51bGwmJnBiKGEsYykpKXtyZXR1cm4gYX1OYighSG8odGhpcy5iLmEsYSxkKSxhKTt5byh0aGlzLmIuYSx0aGlzLmEpO2I9bmV3IGtwKHRoaXMuYS5nLHRoaXMuYS5hLGEsZCk7Qm8odGhpcy5iLmEsYix0aGlzLmEpO3RoaXMuYS5lPW51bGw7dGhpcy5hLmM9bnVsbDt0aGlzLmIuYj10aGlzLmIuYS5nO3RoaXMuYi5mPT10aGlzLmEmJih0aGlzLmIuZj1iKTt0aGlzLmE9YjtyZXR1cm4gY307dmFyIFZGPXNmYih4dmUsJ0hhc2hCaU1hcC8xL01hcEVudHJ5Jyxnd2UpO2ZlYigyNDYsMzU4LHszNTg6MSwyNDY6MSwzOjEsNDQ6MX0sZ3ApO18ubGQ9ZnVuY3Rpb24gaHAoKXtyZXR1cm4gdGhpcy5nfTtfLm1kPWZ1bmN0aW9uIGlwKCl7cmV0dXJuIHRoaXMuaX07Xy5uZD1mdW5jdGlvbiBqcChhKXt0aHJvdyBBZGIobmV3IGppYil9O3ZhciBtRz1zZmIoeHZlLCdJbW11dGFibGVFbnRyeScsMjQ2KTtmZWIoMzAzLDI0Nix7MzU4OjEsMzAzOjEsMjQ2OjEsMzoxLDQ0OjF9LGtwKTtfLmE9MDtfLmY9MDt2YXIgWEY9c2ZiKHh2ZSwnSGFzaEJpTWFwL0JpRW50cnknLDMwMyk7ZmViKDYxOSwyMDc3LCR2ZSxtcCk7Xy5BYz1mdW5jdGlvbiB2cChhKXtMZCh0aGlzLGEpfTtfLkNjPWZ1bmN0aW9uIHlwKCl7cmV0dXJuIG5ldyBOcCh0aGlzLmEpfTtfLiRiPWZ1bmN0aW9uIG5wKCl7d28odGhpcy5hKX07Xy5fYj1mdW5jdGlvbiBvcChhKXtyZXR1cm4geG8odGhpcy5hLGEpfTtfLmtjPWZ1bmN0aW9uIHBwKCl7cmV0dXJuIG5ldyBBcCh0aGlzLHRoaXMuYSl9O18ud2M9ZnVuY3Rpb24gcXAoYSl7UWIoYSk7em8odGhpcy5hLG5ldyBMcChhKSl9O18ueGM9ZnVuY3Rpb24gcnAoYSl7cmV0dXJuIGxwKHRoaXMsYSl9O18uZWM9ZnVuY3Rpb24gc3AoKXtyZXR1cm4gbmV3IEdwKHRoaXMpfTtfLnpjPWZ1bmN0aW9uIHVwKGEsYil7cmV0dXJuIEVvKHRoaXMuYSxhLGIsZmFsc2UpfTtfLkJjPWZ1bmN0aW9uIHdwKGEpe3ZhciBiO2I9SG8odGhpcy5hLGEsWWRiKE5kYihjd2UscWdiKFlkYihOZGIoYT09bnVsbD8wOnRiKGEpLGR3ZSkpLDE1KSkpKTtpZighYil7cmV0dXJuIG51bGx9ZWxzZXt5byh0aGlzLmEsYik7Yi5lPW51bGw7Yi5jPW51bGw7cmV0dXJuIGIuZ319O18uZ2M9ZnVuY3Rpb24geHAoKXtyZXR1cm4gdGhpcy5hLml9O18ueGQ9ZnVuY3Rpb24genAoKXtyZXR1cm4gbmV3IE5wKHRoaXMuYSl9O3ZhciBiRz1zZmIoeHZlLCdIYXNoQmlNYXAvSW52ZXJzZScsNjE5KTtmZWIoMTAyMCw1NDQsQXZlLEFwKTtfLlhkPWZ1bmN0aW9uIEJwKGEpe3JldHVybiBuZXcgQ3AodGhpcyxhKX07dmFyIFpGPXNmYih4dmUsJ0hhc2hCaU1hcC9JbnZlcnNlLzEnLDEwMjApO2ZlYigxMDIxLDM1OCxLdmUsQ3ApO18ubGQ9ZnVuY3Rpb24gRHAoKXtyZXR1cm4gdGhpcy5hLml9O18ubWQ9ZnVuY3Rpb24gRXAoKXtyZXR1cm4gdGhpcy5hLmd9O18ubmQ9ZnVuY3Rpb24gRnAoYSl7dmFyIGIsYyxkO2Q9dGhpcy5hLmc7Yj1ZZGIoTmRiKGN3ZSxxZ2IoWWRiKE5kYihhPT1udWxsPzA6dGIoYSksZHdlKSksMTUpKSk7aWYoYj09dGhpcy5hLmEmJihkRShhKT09PWRFKGQpfHxhIT1udWxsJiZwYihhLGQpKSl7cmV0dXJuIGF9TmIoIUdvKHRoaXMuYi5hLmEsYSxiKSxhKTt5byh0aGlzLmIuYS5hLHRoaXMuYSk7Yz1uZXcga3AoYSxiLHRoaXMuYS5pLHRoaXMuYS5mKTt0aGlzLmE9YztCbyh0aGlzLmIuYS5hLGMsbnVsbCk7dGhpcy5iLmI9dGhpcy5iLmEuYS5nO3JldHVybiBkfTt2YXIgWUY9c2ZiKHh2ZSwnSGFzaEJpTWFwL0ludmVyc2UvMS9JbnZlcnNlRW50cnknLDEwMjEpO2ZlYig2MjAsNTQyLEZ2ZSxHcCk7Xy5LYz1mdW5jdGlvbiBIcCgpe3JldHVybiBuZXcgSnAodGhpcy5hLmEpfTtfLk1jPWZ1bmN0aW9uIElwKGEpe3ZhciBiO2I9SG8odGhpcy5hLmEsYSxZZGIoTmRiKGN3ZSxxZ2IoWWRiKE5kYihhPT1udWxsPzA6dGIoYSksZHdlKSksMTUpKSkpO2lmKCFiKXtyZXR1cm4gZmFsc2V9ZWxzZXt5byh0aGlzLmEuYSxiKTtyZXR1cm4gdHJ1ZX19O3ZhciBfRj1zZmIoeHZlLCdIYXNoQmlNYXAvSW52ZXJzZS9JbnZlcnNlS2V5U2V0Jyw2MjApO2ZlYigxMDE5LDU0NCxBdmUsSnApO18uWGQ9ZnVuY3Rpb24gS3AoYSl7cmV0dXJuIGEuaX07dmFyICRGPXNmYih4dmUsJ0hhc2hCaU1hcC9JbnZlcnNlL0ludmVyc2VLZXlTZXQvMScsMTAxOSk7ZmViKDEwMjIsMSx7fSxMcCk7Xy5ZZD1mdW5jdGlvbiBNcChhLGIpe3RwKHRoaXMuYSxhLGIpfTt2YXIgYUc9c2ZiKHh2ZSwnSGFzaEJpTWFwL0ludmVyc2UvbGFtYmRhJDAkVHlwZScsMTAyMik7ZmViKDYxOCw1NDIsRnZlLE5wKTtfLktjPWZ1bmN0aW9uIE9wKCl7cmV0dXJuIG5ldyBRcCh0aGlzLmEpfTtfLk1jPWZ1bmN0aW9uIFBwKGEpe3ZhciBiO2I9R28odGhpcy5hLGEsWWRiKE5kYihjd2UscWdiKFlkYihOZGIoYT09bnVsbD8wOnRiKGEpLGR3ZSkpLDE1KSkpKTtpZighYil7cmV0dXJuIGZhbHNlfWVsc2V7eW8odGhpcy5hLGIpO2IuZT1udWxsO2IuYz1udWxsO3JldHVybiB0cnVlfX07dmFyIGVHPXNmYih4dmUsJ0hhc2hCaU1hcC9LZXlTZXQnLDYxOCk7ZmViKDEwMTgsNTQ0LEF2ZSxRcCk7Xy5YZD1mdW5jdGlvbiBScChhKXtyZXR1cm4gYS5nfTt2YXIgZEc9c2ZiKHh2ZSwnSGFzaEJpTWFwL0tleVNldC8xJywxMDE4KTtmZWIoMTEyMyw2MjcsenZlKTt2YXIgZ0c9c2ZiKHh2ZSwnSGFzaE11bHRpbWFwR3d0U2VyaWFsaXphdGlvbkRlcGVuZGVuY2llcycsMTEyMyk7ZmViKDI3MSwxMTIzLHp2ZSxUcCk7Xy5oYz1mdW5jdGlvbiBVcCgpe3JldHVybiBuZXcgYXRiKFN2KHRoaXMuYSkpfTtfLnBkPWZ1bmN0aW9uIFZwKCl7cmV0dXJuIG5ldyBhdGIoU3YodGhpcy5hKSl9O18uYT0yO3ZhciBoRz1zZmIoeHZlLCdIYXNoTXVsdGltYXAnLDI3MSk7ZmViKDIwOTcsMzA3LFl2ZSk7Xy5IYz1mdW5jdGlvbiBZcChhKXtyZXR1cm4gdGhpcy5aZCgpLkhjKGEpfTtfLmRjPWZ1bmN0aW9uIFpwKCl7cmV0dXJuIHRoaXMuWmQoKS5kYygpfTtfLmdjPWZ1bmN0aW9uICRwKCl7cmV0dXJuIHRoaXMuWmQoKS5nYygpfTt2YXIgaUc9c2ZiKHh2ZSwnSW1tdXRhYmxlQXNMaXN0JywyMDk3KTtmZWIoMjAzMCw3MzAsJHZlKTtfLlZkPWZ1bmN0aW9uIGFxKCl7cmV0dXJuIF9sKCksbmV3IEZ5KHRoaXMuYSl9O18uQ2M9ZnVuY3Rpb24gYnEoKXtyZXR1cm4gX2woKSxuZXcgRnkodGhpcy5hKX07Xy54ZD1mdW5jdGlvbiBjcSgpe3JldHVybiBfbCgpLG5ldyBGeSh0aGlzLmEpfTt2YXIgakc9c2ZiKHh2ZSwnSW1tdXRhYmxlQmlNYXAnLDIwMzApO2ZlYigyMDc1LDEse30pO3ZhciBrRz1zZmIoeHZlLCdJbW11dGFibGVDb2xsZWN0aW9uL0J1aWxkZXInLDIwNzUpO2ZlYigxMDM1LDcxOSxhd2UsZHEpO3ZhciBuRz1zZmIoeHZlLCdJbW11dGFibGVFbnVtU2V0JywxMDM1KTtmZWIoOTgwLDM5OSx5dmUsZnEpO18uWGI9ZnVuY3Rpb24gZ3EoYSl7cmV0dXJuIHRoaXMuYS5YYihhKX07dmFyIG9HPXNmYih4dmUsJ0ltbXV0YWJsZUxpc3QvMScsOTgwKTtmZWIoOTc5LDIwNzUse30saHEpO3ZhciBwRz1zZmIoeHZlLCdJbW11dGFibGVMaXN0L0J1aWxkZXInLDk3OSk7ZmViKDYyMywyMDQsd3ZlLGlxKTtfLk9iPWZ1bmN0aW9uIGpxKCl7cmV0dXJuIHRoaXMuYS5PYigpfTtfLlBiPWZ1bmN0aW9uIGtxKCl7cmV0dXJuIFJEKHRoaXMuYS5QYigpLDQ0KS5sZCgpfTt2YXIgckc9c2ZiKHh2ZSwnSW1tdXRhYmxlTWFwLzEnLDYyMyk7ZmViKDEwNTQsMSx7fSxscSk7Xy5LYj1mdW5jdGlvbiBtcShhKXtyZXR1cm4gUkQoYSw0NCkubGQoKX07dmFyIHNHPXNmYih4dmUsJ0ltbXV0YWJsZU1hcC8ybWV0aG9kcmVmJGdldEtleSRUeXBlJywxMDU0KTtmZWIoMTA1MywxLHt9LG9xKTt2YXIgdEc9c2ZiKHh2ZSwnSW1tdXRhYmxlTWFwL0J1aWxkZXInLDEwNTMpO2ZlYigyMDk4LDIwNzksYXdlKTtfLk1kPWZ1bmN0aW9uIHBxKCl7dmFyIGE7cmV0dXJuIGE9dGhpcy5iLCFhPyh0aGlzLmI9bmV3IFhxKHRoaXMpKTphfTtfLk5kPWZ1bmN0aW9uIHFxKCl7cmV0dXJuIG5ldyBGeCh0aGlzLEVlKHRoaXMsJEMoakoscnZlLDEsdGhpcy5nYygpLDUsMSkpKX07dmFyIEJHPXNmYih4dmUsJ0ltbXV0YWJsZVNldC9DYWNoaW5nQXNMaXN0JywyMDk4KTtmZWIoMjA5OSwyMDk4LGF3ZSk7Xy5LYz1mdW5jdGlvbiB1cSgpe3ZhciBhO3JldHVybiBhPWduKHRoaXMuYSkuT2QoKSxuZXcgaXEoYSl9O18uTmQ9ZnVuY3Rpb24gcnEoKXtyZXR1cm4gbmV3IFhxKHRoaXMpfTtfLkpjPWZ1bmN0aW9uIHNxKGEpe3ZhciBiLGM7UWIoYSk7Yz10aGlzLmdjKCk7Zm9yKGI9MDtiPGM7YisrKXthLkNkKFJEKGduKHRoaXMuYSkuTWQoKS5YYihiKSw0NCkubGQoKSl9fTtfLk9kPWZ1bmN0aW9uIHRxKCl7dmFyIGE7cmV0dXJuIGE9dGhpcy5iLHVtKCFhPyh0aGlzLmI9bmV3IFhxKHRoaXMpKTphLDApfTtfLk5jPWZ1bmN0aW9uIHZxKCl7cmV0dXJuIGZrKHRoaXMuZ2MoKSwxMjk2LG5ldyBWcSh0aGlzKSl9O3ZhciBGRz1zZmIoeHZlLCdJbmRleGVkSW1tdXRhYmxlU2V0JywyMDk5KTtmZWIoMTIzMCwyMDk5LGF3ZSx4cSk7Xy5LYz1mdW5jdGlvbiBCcSgpe3ZhciBhO3JldHVybiBhPWduKHRoaXMuYSkuT2QoKSxuZXcgaXEoYSl9O18uSGM9ZnVuY3Rpb24geXEoYSl7cmV0dXJuIHRoaXMuYS5fYihhKX07Xy5KYz1mdW5jdGlvbiB6cShhKXtRYihhKTtCdmIodGhpcy5hLG5ldyBFcShhKSl9O18uT2Q9ZnVuY3Rpb24gQXEoKXt2YXIgYTtyZXR1cm4gYT1nbih0aGlzLmEpLk9kKCksbmV3IGlxKGEpfTtfLmdjPWZ1bmN0aW9uIENxKCl7cmV0dXJuIHRoaXMuYS5nYygpfTtfLk5jPWZ1bmN0aW9uIERxKCl7cmV0dXJuIGdrKGduKHRoaXMuYSkuTmMoKSxuZXcgbHEpfTt2YXIgdkc9c2ZiKHh2ZSwnSW1tdXRhYmxlTWFwS2V5U2V0JywxMjMwKTtmZWIoMTIzMSwxLHt9LEVxKTtfLllkPWZ1bmN0aW9uIEZxKGEsYil7X2woKTt0aGlzLmEuQ2QoYSl9O3ZhciB1Rz1zZmIoeHZlLCdJbW11dGFibGVNYXBLZXlTZXQvbGFtYmRhJDAkVHlwZScsMTIzMSk7ZmViKDEyMjcsMjA3OCxYdmUsR3EpO18uS2M9ZnVuY3Rpb24gS3EoKXtyZXR1cm4gbmV3IFBxKHRoaXMpfTtfLk1kPWZ1bmN0aW9uIEhxKCl7dmFyIGE7YT1nbih0aGlzLmEpLk1kKCk7cmV0dXJuIG5ldyBTcSh0aGlzLGEpfTtfLkhjPWZ1bmN0aW9uIElxKGEpe3JldHVybiBhIT1udWxsJiZCcihuZXcgUHEodGhpcyksYSl9O18uT2Q9ZnVuY3Rpb24gSnEoKXtyZXR1cm4gbmV3IFBxKHRoaXMpfTtfLmdjPWZ1bmN0aW9uIExxKCl7cmV0dXJuIHRoaXMuYS5nYygpfTtfLk5jPWZ1bmN0aW9uIE1xKCl7cmV0dXJuIGdrKGduKHRoaXMuYSkuTmMoKSxuZXcgTnEpfTt2YXIgekc9c2ZiKHh2ZSwnSW1tdXRhYmxlTWFwVmFsdWVzJywxMjI3KTtmZWIoMTIyOCwxLHt9LE5xKTtfLktiPWZ1bmN0aW9uIE9xKGEpe3JldHVybiBSRChhLDQ0KS5tZCgpfTt2YXIgd0c9c2ZiKHh2ZSwnSW1tdXRhYmxlTWFwVmFsdWVzLzBtZXRob2RyZWYkZ2V0VmFsdWUkVHlwZScsMTIyOCk7ZmViKDYzNywyMDQsd3ZlLFBxKTtfLk9iPWZ1bmN0aW9uIFFxKCl7cmV0dXJuIHRoaXMuYS5PYigpfTtfLlBiPWZ1bmN0aW9uIFJxKCl7cmV0dXJuIFJEKHRoaXMuYS5QYigpLDQ0KS5tZCgpfTt2YXIgeEc9c2ZiKHh2ZSwnSW1tdXRhYmxlTWFwVmFsdWVzLzEnLDYzNyk7ZmViKDEyMjksMjA5NyxZdmUsU3EpO18uWmQ9ZnVuY3Rpb24gVHEoKXtyZXR1cm4gdGhpcy5hfTtfLlhiPWZ1bmN0aW9uIFVxKGEpe3JldHVybiBSRCh0aGlzLmIuWGIoYSksNDQpLm1kKCl9O3ZhciB5Rz1zZmIoeHZlLCdJbW11dGFibGVNYXBWYWx1ZXMvMicsMTIyOSk7ZmViKDEyMzIsMSx7fSxWcSk7Xy50ZD1mdW5jdGlvbiBXcShhKXtyZXR1cm4gd3EodGhpcy5hLGEpfTt2YXIgREc9c2ZiKHh2ZSwnSW5kZXhlZEltbXV0YWJsZVNldC8wbWV0aG9kcmVmJGdldCRUeXBlJywxMjMyKTtmZWIoNjM4LDIwOTcsWXZlLFhxKTtfLlpkPWZ1bmN0aW9uIFlxKCl7cmV0dXJuIHRoaXMuYX07Xy5YYj1mdW5jdGlvbiBacShhKXtyZXR1cm4gd3EodGhpcy5hLGEpfTtfLmdjPWZ1bmN0aW9uICRxKCl7cmV0dXJuIHRoaXMuYS5hLmdjKCl9O3ZhciBFRz1zZmIoeHZlLCdJbmRleGVkSW1tdXRhYmxlU2V0LzEnLDYzOCk7ZmViKDQzLDEse30saXIpO18uS2I9ZnVuY3Rpb24ganIoYSl7cmV0dXJuIFJEKGEsMjApLktjKCl9O18uRmI9ZnVuY3Rpb24ga3IoYSl7cmV0dXJuIHRoaXM9PT1hfTt2YXIgR0c9c2ZiKHh2ZSwnSXRlcmFibGVzLzEwJyw0Myk7ZmViKDEwNTUsNTQ3LFZ2ZSxtcik7Xy5KYz1mdW5jdGlvbiBucihhKXtRYihhKTt0aGlzLmIuSmMobmV3IHFyKHRoaXMuYSxhKSl9O18uS2M9ZnVuY3Rpb24gb3IoKXtyZXR1cm4gbHIodGhpcyl9O3ZhciBJRz1zZmIoeHZlLCdJdGVyYWJsZXMvNCcsMTA1NSk7ZmViKDEwNTYsMSxRdmUscXIpO18uQ2Q9ZnVuY3Rpb24gcnIoYSl7cHIodGhpcy5iLHRoaXMuYSxhKX07dmFyIEhHPXNmYih4dmUsJ0l0ZXJhYmxlcy80L2xhbWJkYSQwJFR5cGUnLDEwNTYpO2ZlYigxMDU3LDU0NyxWdmUsc3IpO18uSmM9ZnVuY3Rpb24gdHIoYSl7UWIoYSk7eGdiKHRoaXMuYSxuZXcgdnIoYSx0aGlzLmIpKX07Xy5LYz1mdW5jdGlvbiB1cigpe3JldHVybiBNcihuZXcgZE1kKHRoaXMuYSksdGhpcy5iKX07dmFyIEtHPXNmYih4dmUsJ0l0ZXJhYmxlcy81JywxMDU3KTtmZWIoMTA1OCwxLFF2ZSx2cik7Xy5DZD1mdW5jdGlvbiB3cihhKXt0aGlzLmEuQ2QoS3NkKGEpKX07dmFyIEpHPXNmYih4dmUsJ0l0ZXJhYmxlcy81L2xhbWJkYSQwJFR5cGUnLDEwNTgpO2ZlYigxMDg3LDIwNCx3dmUsT3IpO18uT2I9ZnVuY3Rpb24gUHIoKXtyZXR1cm4gdGhpcy5hLk9iKCl9O18uUGI9ZnVuY3Rpb24gUXIoKXtyZXR1cm4gdGhpcy5hLlBiKCl9O3ZhciBMRz1zZmIoeHZlLCdJdGVyYXRvcnMvMScsMTA4Nyk7ZmViKDEwODgsNzEzLHd2ZSxScik7Xy5ZYj1mdW5jdGlvbiBTcigpe3ZhciBhO3doaWxlKHRoaXMuYi5PYigpKXthPXRoaXMuYi5QYigpO2lmKHRoaXMuYS5MYihhKSl7cmV0dXJuIGF9fXJldHVybiB0aGlzLmU9MixudWxsfTt2YXIgTUc9c2ZiKHh2ZSwnSXRlcmF0b3JzLzUnLDEwODgpO2ZlYig0OTcsMSxBdmUpO18uTmI9ZnVuY3Rpb24gVXIoYSl7WnRiKHRoaXMsYSl9O18uT2I9ZnVuY3Rpb24gVnIoKXtyZXR1cm4gdGhpcy5iLk9iKCl9O18uUGI9ZnVuY3Rpb24gV3IoKXtyZXR1cm4gdGhpcy4kZCh0aGlzLmIuUGIoKSl9O18uUWI9ZnVuY3Rpb24gWHIoKXt0aGlzLmIuUWIoKX07dmFyIGNJPXNmYih4dmUsJ1RyYW5zZm9ybWVkSXRlcmF0b3InLDQ5Nyk7ZmViKDEwODksNDk3LEF2ZSxZcik7Xy4kZD1mdW5jdGlvbiBacihhKXtyZXR1cm4gdGhpcy5hLktiKGEpfTt2YXIgTkc9c2ZiKHh2ZSwnSXRlcmF0b3JzLzYnLDEwODkpO2ZlYig3MzIsMjA0LHd2ZSwkcik7Xy5PYj1mdW5jdGlvbiBfcigpe3JldHVybiAhdGhpcy5hfTtfLlBiPWZ1bmN0aW9uIGFzKCl7aWYodGhpcy5hKXt0aHJvdyBBZGIobmV3IER2Yil9dGhpcy5hPXRydWU7cmV0dXJuIHRoaXMuYn07Xy5hPWZhbHNlO3ZhciBPRz1zZmIoeHZlLCdJdGVyYXRvcnMvOScsNzMyKTtmZWIoMTA4NiwzOTkseXZlLGRzKTtfLlhiPWZ1bmN0aW9uIGVzKGEpe3JldHVybiB0aGlzLmFbdGhpcy5iK2FdfTtfLmI9MDt2YXIgYnM7dmFyIFBHPXNmYih4dmUsJ0l0ZXJhdG9ycy9BcnJheUl0cicsMTA4Nik7ZmViKDM4LDEsezM4OjEsNTE6MX0saXMpO18uTmI9ZnVuY3Rpb24ganMoYSl7WnRiKHRoaXMsYSl9O18uT2I9ZnVuY3Rpb24ga3MoKXtyZXR1cm4gZ3ModGhpcyl9O18uUGI9ZnVuY3Rpb24gbHMoKXtyZXR1cm4gaHModGhpcyl9O18uUWI9ZnVuY3Rpb24gbXMoKXtpZighdGhpcy5jKXt0aHJvdyBBZGIobmV3IGRnYih0dmUpKX10aGlzLmMuUWIoKTt0aGlzLmM9bnVsbH07dmFyIFFHPXNmYih4dmUsJ0l0ZXJhdG9ycy9Db25jYXRlbmF0ZWRJdGVyYXRvcicsMzgpO2ZlYigyMiwxLHszOjEsMzQ6MSwyMjoxfSk7Xy5GZD1mdW5jdGlvbiBycyhhKXtyZXR1cm4gbnModGhpcyxSRChhLDIyKSl9O18uRmI9ZnVuY3Rpb24gdHMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLkhiPWZ1bmN0aW9uIHVzKCl7cmV0dXJuIGtGYih0aGlzKX07Xy5JYj1mdW5jdGlvbiB2cygpe3JldHVybiBwcyh0aGlzKX07Xy5nPTA7dmFyIFdJPXNmYihtdmUsJ0VudW0nLDIyKTtmZWIoNTQ5LDIyLHs1NDk6MSwzOjEsMzQ6MSwyMjoxLDUxOjF9LEFzKTtfLk5iPWZ1bmN0aW9uIEJzKGEpe1p0Yih0aGlzLGEpfTtfLk9iPWZ1bmN0aW9uIENzKCl7cmV0dXJuIGZhbHNlfTtfLlBiPWZ1bmN0aW9uIERzKCl7dGhyb3cgQWRiKG5ldyBEdmIpfTtfLlFiPWZ1bmN0aW9uIEVzKCl7VmIoZmFsc2UpfTt2YXIgeXM7dmFyIFJHPXRmYih4dmUsJ0l0ZXJhdG9ycy9FbXB0eU1vZGlmaWFibGVJdGVyYXRvcicsNTQ5LFdJLEdzLEZzKTt2YXIgSHM7ZmViKDE5MDcsNjI3LHp2ZSk7dmFyIFhHPXNmYih4dmUsJ0xpbmtlZEhhc2hNdWx0aW1hcEd3dFNlcmlhbGl6YXRpb25EZXBlbmRlbmNpZXMnLDE5MDcpO2ZlYigxOTA4LDE5MDcsenZlLEtzKTtfLmhjPWZ1bmN0aW9uIE1zKCl7cmV0dXJuIG5ldyBKdWIoU3YodGhpcy5iKSl9O18uJGI9ZnVuY3Rpb24gTHMoKXtOYyh0aGlzKTtTcyh0aGlzLmEsdGhpcy5hKX07Xy5wZD1mdW5jdGlvbiBOcygpe3JldHVybiBuZXcgSnViKFN2KHRoaXMuYikpfTtfLmljPWZ1bmN0aW9uIE9zKGEpe3JldHVybiBuZXcgaXQodGhpcyxhLHRoaXMuYil9O18ua2M9ZnVuY3Rpb24gUHMoKXtyZXR1cm4gbmV3IFpzKHRoaXMpfTtfLmxjPWZ1bmN0aW9uIFFzKCl7dmFyIGE7cmV0dXJuIG5ldyBTd2IoKGE9dGhpcy5nLFJEKCFhPyh0aGlzLmc9bmV3IHhoKHRoaXMpKTphLDIxKSksMTcpfTtfLmVjPWZ1bmN0aW9uIFJzKCl7dmFyIGE7cmV0dXJuIGE9dGhpcy5pLCFhPyh0aGlzLmk9bmV3IHpmKHRoaXMsdGhpcy5jKSk6YX07Xy5uYz1mdW5jdGlvbiBVcygpe3JldHVybiBuZXcgY3cobmV3IFpzKHRoaXMpKX07Xy5vYz1mdW5jdGlvbiBWcygpe3ZhciBhO3JldHVybiBnayhuZXcgU3diKChhPXRoaXMuZyxSRCghYT8odGhpcy5nPW5ldyB4aCh0aGlzKSk6YSwyMSkpLDE3KSxuZXcgV3MpfTtfLmI9Mjt2YXIgWUc9c2ZiKHh2ZSwnTGlua2VkSGFzaE11bHRpbWFwJywxOTA4KTtmZWIoMTkxMSwxLHt9LFdzKTtfLktiPWZ1bmN0aW9uIFhzKGEpe3JldHVybiBSRChhLDQ0KS5tZCgpfTt2YXIgU0c9c2ZiKHh2ZSwnTGlua2VkSGFzaE11bHRpbWFwLzBtZXRob2RyZWYkZ2V0VmFsdWUkVHlwZScsMTkxMSk7ZmViKDgzNCwxLEF2ZSxacyk7Xy5OYj1mdW5jdGlvbiAkcyhhKXtadGIodGhpcyxhKX07Xy5QYj1mdW5jdGlvbiBhdCgpe3JldHVybiBZcyh0aGlzKX07Xy5PYj1mdW5jdGlvbiBfcygpe3JldHVybiB0aGlzLmEhPXRoaXMuYi5hfTtfLlFiPWZ1bmN0aW9uIGJ0KCl7VmIoISF0aGlzLmMpO0djKHRoaXMuYix0aGlzLmMuZyx0aGlzLmMuaSk7dGhpcy5jPW51bGx9O3ZhciBURz1zZmIoeHZlLCdMaW5rZWRIYXNoTXVsdGltYXAvMScsODM0KTtmZWIoMjI3LDI0Nix7MzU4OjEsMjQ2OjEsMjI3OjEsNjA0OjEsMzoxLDQ0OjF9LGN0KTtfLl9kPWZ1bmN0aW9uIGR0KCl7cmV0dXJuIFJEKEh2Yih0aGlzLmYpLDYwNCl9O18uYWU9ZnVuY3Rpb24gZXQoYSl7dGhpcy5jPWF9O18uYmU9ZnVuY3Rpb24gZnQoYSl7dGhpcy5mPWF9O18uZD0wO3ZhciBVRz1zZmIoeHZlLCdMaW5rZWRIYXNoTXVsdGltYXAvVmFsdWVFbnRyeScsMjI3KTtmZWIoMTkwOSwyMDY4LHs2MDQ6MSwyMDoxLDMxOjEsMTY6MSwyMToxfSxpdCk7Xy5GYz1mdW5jdGlvbiBqdChhKXt2YXIgYixjLGQsZSxmO2Y9WWRiKE5kYihjd2UscWdiKFlkYihOZGIoYT09bnVsbD8wOnRiKGEpLGR3ZSkpLDE1KSkpO2I9ZiZ0aGlzLmIubGVuZ3RoLTE7ZT10aGlzLmJbYl07Zm9yKGM9ZTtjO2M9Yy5hKXtpZihjLmQ9PWYmJkhiKGMuaSxhKSl7cmV0dXJuIGZhbHNlfX1kPW5ldyBjdCh0aGlzLmMsYSxmLGUpO1RzKHRoaXMuZCxkKTtkLmY9dGhpczt0aGlzLmQ9ZDtTcyhSRChIdmIodGhpcy5nLmEuYiksMjI3KSxkKTtTcyhkLHRoaXMuZy5hKTt0aGlzLmJbYl09ZDsrK3RoaXMuZjsrK3RoaXMuZTtndCh0aGlzKTtyZXR1cm4gdHJ1ZX07Xy4kYj1mdW5jdGlvbiBrdCgpe3ZhciBhLGI7TW5iKHRoaXMuYixudWxsKTt0aGlzLmY9MDtmb3IoYT10aGlzLmE7YSE9dGhpczthPWEuX2QoKSl7Yj1SRChhLDIyNyk7U3MoUkQoSHZiKGIuYiksMjI3KSxSRChIdmIoYi5lKSwyMjcpKX10aGlzLmE9dGhpczt0aGlzLmQ9dGhpczsrK3RoaXMuZX07Xy5IYz1mdW5jdGlvbiBsdChhKXt2YXIgYixjO2M9WWRiKE5kYihjd2UscWdiKFlkYihOZGIoYT09bnVsbD8wOnRiKGEpLGR3ZSkpLDE1KSkpO2ZvcihiPXRoaXMuYltjJnRoaXMuYi5sZW5ndGgtMV07YjtiPWIuYSl7aWYoYi5kPT1jJiZIYihiLmksYSkpe3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9O18uSmM9ZnVuY3Rpb24gbXQoYSl7dmFyIGI7UWIoYSk7Zm9yKGI9dGhpcy5hO2IhPXRoaXM7Yj1iLl9kKCkpe2EuQ2QoUkQoYiwyMjcpLmkpfX07Xy5fZD1mdW5jdGlvbiBudCgpe3JldHVybiB0aGlzLmF9O18uS2M9ZnVuY3Rpb24gb3QoKXtyZXR1cm4gbmV3IHV0KHRoaXMpfTtfLk1jPWZ1bmN0aW9uIHB0KGEpe3JldHVybiBodCh0aGlzLGEpfTtfLmFlPWZ1bmN0aW9uIHF0KGEpe3RoaXMuZD1hfTtfLmJlPWZ1bmN0aW9uIHJ0KGEpe3RoaXMuYT1hfTtfLmdjPWZ1bmN0aW9uIHN0KCl7cmV0dXJuIHRoaXMuZn07Xy5lPTA7Xy5mPTA7dmFyIFdHPXNmYih4dmUsJ0xpbmtlZEhhc2hNdWx0aW1hcC9WYWx1ZVNldCcsMTkwOSk7ZmViKDE5MTAsMSxBdmUsdXQpO18uTmI9ZnVuY3Rpb24gdnQoYSl7WnRiKHRoaXMsYSl9O18uT2I9ZnVuY3Rpb24gd3QoKXtyZXR1cm4gdHQodGhpcyksdGhpcy5iIT10aGlzLmN9O18uUGI9ZnVuY3Rpb24geHQoKXt2YXIgYSxiO3R0KHRoaXMpO2lmKHRoaXMuYj09dGhpcy5jKXt0aHJvdyBBZGIobmV3IER2Yil9YT1SRCh0aGlzLmIsMjI3KTtiPWEuaTt0aGlzLmQ9YTt0aGlzLmI9UkQoSHZiKGEuZiksNjA0KTtyZXR1cm4gYn07Xy5RYj1mdW5jdGlvbiB5dCgpe3R0KHRoaXMpO1ZiKCEhdGhpcy5kKTtodCh0aGlzLmMsdGhpcy5kLmkpO3RoaXMuYT10aGlzLmMuZTt0aGlzLmQ9bnVsbH07Xy5hPTA7dmFyIFZHPXNmYih4dmUsJ0xpbmtlZEhhc2hNdWx0aW1hcC9WYWx1ZVNldC8xJywxOTEwKTtmZWIoNzgwLDIwODQsenZlLEV0KTtfLlpiPWZ1bmN0aW9uIEZ0KCl7dmFyIGE7cmV0dXJuIGE9dGhpcy5mLCFhPyh0aGlzLmY9bmV3IHp3KHRoaXMpKTphfTtfLkZiPWZ1bmN0aW9uIEt0KGEpe3JldHVybiB4dyh0aGlzLGEpfTtfLmNjPWZ1bmN0aW9uIEx0KGEpe3JldHVybiBuZXcgc3UodGhpcyxhKX07Xy5mYz1mdW5jdGlvbiBPdChhKXtyZXR1cm4gQ3QodGhpcyxhKX07Xy4kYj1mdW5jdGlvbiBHdCgpe0F0KHRoaXMpfTtfLl9iPWZ1bmN0aW9uIEh0KGEpe3JldHVybiBCdCh0aGlzLGEpfTtfLmFjPWZ1bmN0aW9uIEl0KCl7cmV0dXJuIG5ldyB6dyh0aGlzKX07Xy5iYz1mdW5jdGlvbiBKdCgpe3JldHVybiBuZXcgdnUodGhpcyl9O18ucWM9ZnVuY3Rpb24gTXQoYSl7cmV0dXJuIG5ldyBzdSh0aGlzLGEpfTtfLmRjPWZ1bmN0aW9uIE50KCl7cmV0dXJuICF0aGlzLmF9O18ucmM9ZnVuY3Rpb24gUHQoYSl7cmV0dXJuIEN0KHRoaXMsYSl9O18uZ2M9ZnVuY3Rpb24gUXQoKXtyZXR1cm4gdGhpcy5kfTtfLmM9MDtfLmQ9MDt2YXIgZEg9c2ZiKHh2ZSwnTGlua2VkTGlzdE11bHRpbWFwJyw3ODApO2ZlYig1NiwzMSxrd2UpO18uamQ9ZnVuY3Rpb24gZXUoYSl7dHZiKHRoaXMsYSl9O18uTmM9ZnVuY3Rpb24gZnUoKXtyZXR1cm4gbmV3IFN3Yih0aGlzLDE2KX07Xy5iZD1mdW5jdGlvbiBUdChhLGIpe3Rocm93IEFkYihuZXcga2liKCdBZGQgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGxpc3QnKSl9O18uRmM9ZnVuY3Rpb24gVXQoYSl7dGhpcy5iZCh0aGlzLmdjKCksYSk7cmV0dXJuIHRydWV9O18uY2Q9ZnVuY3Rpb24gVnQoYSxiKXt2YXIgYyxkLGU7dUZiKGIpO2M9ZmFsc2U7Zm9yKGU9Yi5LYygpO2UuT2IoKTspe2Q9ZS5QYigpO3RoaXMuYmQoYSsrLGQpO2M9dHJ1ZX1yZXR1cm4gY307Xy4kYj1mdW5jdGlvbiBXdCgpe3RoaXMuY2UoMCx0aGlzLmdjKCkpfTtfLkZiPWZ1bmN0aW9uIFh0KGEpe3JldHVybiBSdCh0aGlzLGEpfTtfLkhiPWZ1bmN0aW9uIFl0KCl7cmV0dXJuIENvYih0aGlzKX07Xy5kZD1mdW5jdGlvbiBadChhKXtyZXR1cm4gU3QodGhpcyxhKX07Xy5LYz1mdW5jdGlvbiAkdCgpe3JldHVybiBuZXcgRGtiKHRoaXMpfTtfLmVkPWZ1bmN0aW9uIF90KCl7cmV0dXJuIHRoaXMuZmQoMCl9O18uZmQ9ZnVuY3Rpb24gYXUoYSl7cmV0dXJuIG5ldyBKa2IodGhpcyxhKX07Xy5nZD1mdW5jdGlvbiBidShhKXt0aHJvdyBBZGIobmV3IGtpYignUmVtb3ZlIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBsaXN0JykpfTtfLmNlPWZ1bmN0aW9uIGN1KGEsYil7dmFyIGMsZDtkPXRoaXMuZmQoYSk7Zm9yKGM9YTtjPGI7KytjKXtkLlBiKCk7ZC5RYigpfX07Xy5oZD1mdW5jdGlvbiBkdShhLGIpe3Rocm93IEFkYihuZXcga2liKCdTZXQgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGxpc3QnKSl9O18ua2Q9ZnVuY3Rpb24gZ3UoYSxiKXtyZXR1cm4gbmV3IFJrYih0aGlzLGEsYil9O18uaj0wO3ZhciBDSj1zZmIoQnZlLCdBYnN0cmFjdExpc3QnLDU2KTtmZWIoMjA2Miw1Nixrd2UpO18uYmQ9ZnVuY3Rpb24gbHUoYSxiKXtodSh0aGlzLGEsYil9O18uY2Q9ZnVuY3Rpb24gbXUoYSxiKXtyZXR1cm4gaXUodGhpcyxhLGIpfTtfLlhiPWZ1bmN0aW9uIG51KGEpe3JldHVybiBqdSh0aGlzLGEpfTtfLktjPWZ1bmN0aW9uIG91KCl7cmV0dXJuIHRoaXMuZmQoMCl9O18uZ2Q9ZnVuY3Rpb24gcHUoYSl7cmV0dXJuIGt1KHRoaXMsYSl9O18uaGQ9ZnVuY3Rpb24gcXUoYixjKXt2YXIgZCxlO2Q9dGhpcy5mZChiKTt0cnl7ZT1kLlBiKCk7ZC5XYihjKTtyZXR1cm4gZX1jYXRjaChhKXthPXpkYihhKTtpZihaRChhLDExMikpe3Rocm93IEFkYihuZXcgdmViKFwiQ2FuJ3Qgc2V0IGVsZW1lbnQgXCIrYikpfWVsc2UgdGhyb3cgQWRiKGEpfX07dmFyIFFKPXNmYihCdmUsJ0Fic3RyYWN0U2VxdWVudGlhbExpc3QnLDIwNjIpO2ZlYig2NDYsMjA2Mixrd2Usc3UpO18uZmQ9ZnVuY3Rpb24gdHUoYSl7cmV0dXJuIHJ1KHRoaXMsYSl9O18uZ2M9ZnVuY3Rpb24gdXUoKXt2YXIgYTthPVJEKFdqYih0aGlzLmEuYix0aGlzLmIpLDI2MCk7cmV0dXJuICFhPzA6YS5hfTt2YXIgJEc9c2ZiKHh2ZSwnTGlua2VkTGlzdE11bHRpbWFwLzEnLDY0Nik7ZmViKDEzMTYsMjA2OCxGdmUsdnUpO18uSGM9ZnVuY3Rpb24gd3UoYSl7cmV0dXJuIEJ0KHRoaXMuYSxhKX07Xy5LYz1mdW5jdGlvbiB4dSgpe3JldHVybiBuZXcgQnUodGhpcy5hKX07Xy5NYz1mdW5jdGlvbiB5dShhKXtyZXR1cm4gIUN0KHRoaXMuYSxhKS5hLmRjKCl9O18uZ2M9ZnVuY3Rpb24genUoKXtyZXR1cm4gYmtiKHRoaXMuYS5iKX07dmFyIFpHPXNmYih4dmUsJ0xpbmtlZExpc3RNdWx0aW1hcC8xS2V5U2V0SW1wbCcsMTMxNik7ZmViKDEzMTUsMSxBdmUsQnUpO18uTmI9ZnVuY3Rpb24gQ3UoYSl7WnRiKHRoaXMsYSl9O18uT2I9ZnVuY3Rpb24gRHUoKXtBdSh0aGlzKTtyZXR1cm4gISF0aGlzLmN9O18uUGI9ZnVuY3Rpb24gRXUoKXtBdSh0aGlzKTtpZighdGhpcy5jKXt0aHJvdyBBZGIobmV3IER2Yil9dGhpcy5hPXRoaXMuYztZc2IodGhpcy5kLHRoaXMuYS5hKTtkb3t0aGlzLmM9dGhpcy5jLmJ9d2hpbGUoISF0aGlzLmMmJiFZc2IodGhpcy5kLHRoaXMuYy5hKSk7cmV0dXJuIHRoaXMuYS5hfTtfLlFiPWZ1bmN0aW9uIEZ1KCl7QXUodGhpcyk7VmIoISF0aGlzLmEpO0FyKG5ldyBOdSh0aGlzLmUsdGhpcy5hLmEpKTt0aGlzLmE9bnVsbDt0aGlzLmI9dGhpcy5lLmN9O18uYj0wO3ZhciBfRz1zZmIoeHZlLCdMaW5rZWRMaXN0TXVsdGltYXAvRGlzdGluY3RLZXlJdGVyYXRvcicsMTMxNSk7ZmViKDI2MCwxLHsyNjA6MX0sR3UpO18uYT0wO3ZhciBhSD1zZmIoeHZlLCdMaW5rZWRMaXN0TXVsdGltYXAvS2V5TGlzdCcsMjYwKTtmZWIoNTExLDM1OCx7MzU4OjEsNTExOjEsNDQ6MX0sSHUpO18ubGQ9ZnVuY3Rpb24gSXUoKXtyZXR1cm4gdGhpcy5hfTtfLm1kPWZ1bmN0aW9uIEp1KCl7cmV0dXJuIHRoaXMuZn07Xy5uZD1mdW5jdGlvbiBLdShhKXt2YXIgYjtiPXRoaXMuZjt0aGlzLmY9YTtyZXR1cm4gYn07dmFyIGJIPXNmYih4dmUsJ0xpbmtlZExpc3RNdWx0aW1hcC9Ob2RlJyw1MTEpO2ZlYig1NjYsMSxKdmUsTnUsT3UpO18uTmI9ZnVuY3Rpb24gUXUoYSl7WnRiKHRoaXMsYSl9O18uUmI9ZnVuY3Rpb24gUHUoYSl7dGhpcy5lPXp0KHRoaXMuZix0aGlzLmIsYSx0aGlzLmMpOysrdGhpcy5kO3RoaXMuYT1udWxsfTtfLk9iPWZ1bmN0aW9uIFJ1KCl7cmV0dXJuICEhdGhpcy5jfTtfLlNiPWZ1bmN0aW9uIFN1KCl7cmV0dXJuICEhdGhpcy5lfTtfLlBiPWZ1bmN0aW9uIFR1KCl7cmV0dXJuIEx1KHRoaXMpfTtfLlRiPWZ1bmN0aW9uIFV1KCl7cmV0dXJuIHRoaXMuZH07Xy5VYj1mdW5jdGlvbiBWdSgpe3JldHVybiBNdSh0aGlzKX07Xy5WYj1mdW5jdGlvbiBXdSgpe3JldHVybiB0aGlzLmQtMX07Xy5RYj1mdW5jdGlvbiBYdSgpe1ZiKCEhdGhpcy5hKTtpZih0aGlzLmEhPXRoaXMuYyl7dGhpcy5lPXRoaXMuYS5lOy0tdGhpcy5kfWVsc2V7dGhpcy5jPXRoaXMuYS5jfUR0KHRoaXMuZix0aGlzLmEpO3RoaXMuYT1udWxsfTtfLldiPWZ1bmN0aW9uIFl1KGEpe1ViKCEhdGhpcy5hKTt0aGlzLmEuZj1hfTtfLmQ9MDt2YXIgY0g9c2ZiKHh2ZSwnTGlua2VkTGlzdE11bHRpbWFwL1ZhbHVlRm9yS2V5SXRlcmF0b3InLDU2Nik7ZmViKDEwMzEsNTYsa3dlKTtfLmJkPWZ1bmN0aW9uIGl2KGEsYil7dGhpcy5hLmJkKGEsYil9O18uY2Q9ZnVuY3Rpb24ganYoYSxiKXtyZXR1cm4gdGhpcy5hLmNkKGEsYil9O18uSGM9ZnVuY3Rpb24ga3YoYSl7cmV0dXJuIHRoaXMuYS5IYyhhKX07Xy5YYj1mdW5jdGlvbiBsdihhKXtyZXR1cm4gdGhpcy5hLlhiKGEpfTtfLmdkPWZ1bmN0aW9uIG12KGEpe3JldHVybiB0aGlzLmEuZ2QoYSl9O18uaGQ9ZnVuY3Rpb24gbnYoYSxiKXtyZXR1cm4gdGhpcy5hLmhkKGEsYil9O18uZ2M9ZnVuY3Rpb24gb3YoKXtyZXR1cm4gdGhpcy5hLmdjKCl9O3ZhciBmSD1zZmIoeHZlLCdMaXN0cy9BYnN0cmFjdExpc3RXcmFwcGVyJywxMDMxKTtmZWIoMTAzMiwxMDMxLG13ZSk7dmFyIGdIPXNmYih4dmUsJ0xpc3RzL1JhbmRvbUFjY2Vzc0xpc3RXcmFwcGVyJywxMDMyKTtmZWIoMTAzNCwxMDMyLG13ZSxwdik7Xy5mZD1mdW5jdGlvbiBxdihhKXtyZXR1cm4gdGhpcy5hLmZkKGEpfTt2YXIgZUg9c2ZiKHh2ZSwnTGlzdHMvMScsMTAzNCk7ZmViKDQ0MSw1Nix7NDQxOjEsMjA6MSwzMToxLDU2OjEsMTY6MSwxNToxfSx1dik7Xy5iZD1mdW5jdGlvbiB2dihhLGIpe3RoaXMuYS5iZCh0dih0aGlzLGEpLGIpfTtfLiRiPWZ1bmN0aW9uIHd2KCl7dGhpcy5hLiRiKCl9O18uWGI9ZnVuY3Rpb24geHYoYSl7cmV0dXJuIHRoaXMuYS5YYihzdih0aGlzLGEpKX07Xy5LYz1mdW5jdGlvbiB5digpe3JldHVybiBydih0aGlzLDApfTtfLmZkPWZ1bmN0aW9uIHp2KGEpe3JldHVybiBydih0aGlzLGEpfTtfLmdkPWZ1bmN0aW9uIEF2KGEpe3JldHVybiB0aGlzLmEuZ2Qoc3YodGhpcyxhKSl9O18uY2U9ZnVuY3Rpb24gQnYoYSxiKXsoVGIoYSxiLHRoaXMuYS5nYygpKSxodih0aGlzLmEua2QodHYodGhpcyxiKSx0dih0aGlzLGEpKSkpLiRiKCl9O18uaGQ9ZnVuY3Rpb24gQ3YoYSxiKXtyZXR1cm4gdGhpcy5hLmhkKHN2KHRoaXMsYSksYil9O18uZ2M9ZnVuY3Rpb24gRHYoKXtyZXR1cm4gdGhpcy5hLmdjKCl9O18ua2Q9ZnVuY3Rpb24gRXYoYSxiKXtyZXR1cm4gVGIoYSxiLHRoaXMuYS5nYygpKSxodih0aGlzLmEua2QodHYodGhpcyxiKSx0dih0aGlzLGEpKSl9O3ZhciBqSD1zZmIoeHZlLCdMaXN0cy9SZXZlcnNlTGlzdCcsNDQxKTtmZWIoMTAzMCw0NDEsezQ0MToxLDIwOjEsMzE6MSw1NjoxLDE2OjEsMTU6MSw1OToxfSxGdik7dmFyIGhIPXNmYih4dmUsJ0xpc3RzL1JhbmRvbUFjY2Vzc1JldmVyc2VMaXN0JywxMDMwKTtmZWIoMTAzMywxLEp2ZSxHdik7Xy5OYj1mdW5jdGlvbiBJdihhKXtadGIodGhpcyxhKX07Xy5SYj1mdW5jdGlvbiBIdihhKXt0aGlzLmMuUmIoYSk7dGhpcy5jLlViKCk7dGhpcy5hPWZhbHNlfTtfLk9iPWZ1bmN0aW9uIEp2KCl7cmV0dXJuIHRoaXMuYy5TYigpfTtfLlNiPWZ1bmN0aW9uIEt2KCl7cmV0dXJuIHRoaXMuYy5PYigpfTtfLlBiPWZ1bmN0aW9uIEx2KCl7aWYoIXRoaXMuYy5TYigpKXt0aHJvdyBBZGIobmV3IER2Yil9dGhpcy5hPXRydWU7cmV0dXJuIHRoaXMuYy5VYigpfTtfLlRiPWZ1bmN0aW9uIE12KCl7cmV0dXJuIHR2KHRoaXMuYix0aGlzLmMuVGIoKSl9O18uVWI9ZnVuY3Rpb24gTnYoKXtpZighdGhpcy5jLk9iKCkpe3Rocm93IEFkYihuZXcgRHZiKX10aGlzLmE9dHJ1ZTtyZXR1cm4gdGhpcy5jLlBiKCl9O18uVmI9ZnVuY3Rpb24gT3YoKXtyZXR1cm4gdHYodGhpcy5iLHRoaXMuYy5UYigpKS0xfTtfLlFiPWZ1bmN0aW9uIFB2KCl7VmIodGhpcy5hKTt0aGlzLmMuUWIoKTt0aGlzLmE9ZmFsc2V9O18uV2I9ZnVuY3Rpb24gUXYoYSl7VWIodGhpcy5hKTt0aGlzLmMuV2IoYSl9O18uYT1mYWxzZTt2YXIgaUg9c2ZiKHh2ZSwnTGlzdHMvUmV2ZXJzZUxpc3QvMScsMTAzMyk7ZmViKDQ0MCw0OTcsQXZlLGF3KTtfLiRkPWZ1bmN0aW9uIGJ3KGEpe3JldHVybiBfdihhKX07dmFyIGtIPXNmYih4dmUsJ01hcHMvMScsNDQwKTtmZWIoNzEyLDQ5NyxBdmUsY3cpO18uJGQ9ZnVuY3Rpb24gZHcoYSl7cmV0dXJuIFJEKGEsNDQpLm1kKCl9O3ZhciBsSD1zZmIoeHZlLCdNYXBzLzInLDcxMik7ZmViKDk3NSw0OTcsQXZlLGV3KTtfLiRkPWZ1bmN0aW9uIGZ3KGEpe3JldHVybiBuZXcgZ3AoYSxNdyh0aGlzLmEsYSkpfTt2YXIgbUg9c2ZiKHh2ZSwnTWFwcy8zJyw5NzUpO2ZlYig5NzIsMjA2OSxGdmUsZ3cpO18uSmM9ZnVuY3Rpb24gaHcoYSl7dWoodGhpcy5hLGEpfTtfLktjPWZ1bmN0aW9uIGl3KCl7cmV0dXJuIHRoaXMuYS5rYygpfTtfLlJjPWZ1bmN0aW9uIGp3KCl7cmV0dXJuIHRoaXMuYX07Xy5OYz1mdW5jdGlvbiBrdygpe3JldHVybiB0aGlzLmEubGMoKX07dmFyIG9IPXNmYih4dmUsJ01hcHMvSXRlcmF0b3JCYXNlZEFic3RyYWN0TWFwLzEnLDk3Mik7ZmViKDk3MywxLHt9LGx3KTtfLllkPWZ1bmN0aW9uIG13KGEsYil7dGhpcy5hLkNkKGEpfTt2YXIgcUg9c2ZiKHh2ZSwnTWFwcy9LZXlTZXQvbGFtYmRhJDAkVHlwZScsOTczKTtmZWIoOTcxLDMxLER2ZSxudyk7Xy4kYj1mdW5jdGlvbiBvdygpe3RoaXMuYS4kYigpfTtfLkhjPWZ1bmN0aW9uIHB3KGEpe3JldHVybiB0aGlzLmEudWMoYSl9O18uSmM9ZnVuY3Rpb24gcXcoYSl7UWIoYSk7dGhpcy5hLndjKG5ldyB2dyhhKSl9O18uZGM9ZnVuY3Rpb24gcncoKXtyZXR1cm4gdGhpcy5hLmRjKCl9O18uS2M9ZnVuY3Rpb24gc3coKXtyZXR1cm4gbmV3IGN3KHRoaXMuYS52YygpLktjKCkpfTtfLk1jPWZ1bmN0aW9uIHR3KGIpe3ZhciBjLGQ7dHJ5e3JldHVybiB6ZSh0aGlzLGIsdHJ1ZSl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSw0OCkpe2ZvcihkPXRoaXMuYS52YygpLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksNDQpO2lmKEhiKGIsYy5tZCgpKSl7dGhpcy5hLkJjKGMubGQoKSk7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX1lbHNlIHRocm93IEFkYihhKX19O18uZ2M9ZnVuY3Rpb24gdXcoKXtyZXR1cm4gdGhpcy5hLmdjKCl9O3ZhciB0SD1zZmIoeHZlLCdNYXBzL1ZhbHVlcycsOTcxKTtmZWIoOTc0LDEse30sdncpO18uWWQ9ZnVuY3Rpb24gd3coYSxiKXt0aGlzLmEuQ2QoYil9O3ZhciBzSD1zZmIoeHZlLCdNYXBzL1ZhbHVlcy9sYW1iZGEkMCRUeXBlJyw5NzQpO2ZlYig3NTIsMjA4NSxDdmUsencpO18ueGM9ZnVuY3Rpb24gRHcoYSl7cmV0dXJuIHRoaXMuYS5fYihhKT90aGlzLmEuY2MoYSk6bnVsbH07Xy5CYz1mdW5jdGlvbiBHdyhhKXtyZXR1cm4gdGhpcy5hLl9iKGEpP3RoaXMuYS5mYyhhKTpudWxsfTtfLiRiPWZ1bmN0aW9uIEF3KCl7dGhpcy5hLiRiKCl9O18uX2I9ZnVuY3Rpb24gQncoYSl7cmV0dXJuIHRoaXMuYS5fYihhKX07Xy5FYz1mdW5jdGlvbiBDdygpe3JldHVybiBuZXcgSXcodGhpcyl9O18uRGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FYygpfTtfLmRjPWZ1bmN0aW9uIEV3KCl7cmV0dXJuIHRoaXMuYS5kYygpfTtfLmVjPWZ1bmN0aW9uIEZ3KCl7cmV0dXJuIHRoaXMuYS5lYygpfTtfLmdjPWZ1bmN0aW9uIEh3KCl7cmV0dXJuIHRoaXMuYS5lYygpLmdjKCl9O3ZhciB4SD1zZmIoeHZlLCdNdWx0aW1hcHMvQXNNYXAnLDc1Mik7ZmViKDExMzQsMjA2OSxGdmUsSXcpO18uS2M9ZnVuY3Rpb24gSncoKXtyZXR1cm4gUnYodGhpcy5hLmEuZWMoKSxuZXcgTncodGhpcykpfTtfLlJjPWZ1bmN0aW9uIEt3KCl7cmV0dXJuIHRoaXMuYX07Xy5NYz1mdW5jdGlvbiBMdyhhKXt2YXIgYjtpZighWmUodGhpcyxhKSl7cmV0dXJuIGZhbHNlfWI9UkQoSHZiKFJEKGEsNDQpKSw0NCk7eXcodGhpcy5hLGIubGQoKSk7cmV0dXJuIHRydWV9O3ZhciB3SD1zZmIoeHZlLCdNdWx0aW1hcHMvQXNNYXAvRW50cnlTZXQnLDExMzQpO2ZlYigxMTM4LDEse30sTncpO18uS2I9ZnVuY3Rpb24gT3coYSl7cmV0dXJuIE13KHRoaXMsYSl9O18uRmI9ZnVuY3Rpb24gUHcoYSl7cmV0dXJuIHRoaXM9PT1hfTt2YXIgdkg9c2ZiKHh2ZSwnTXVsdGltYXBzL0FzTWFwL0VudHJ5U2V0LzEnLDExMzgpO2ZlYig1NTIsMjA4Nyx7NTUyOjEsODQ5OjEsMjA6MSwzMToxLDE2OjF9LFN3KTtfLiRiPWZ1bmN0aW9uIFR3KCl7TmModGhpcy5hKX07Xy5IYz1mdW5jdGlvbiBVdyhhKXtyZXR1cm4gT2ModGhpcy5hLGEpfTtfLkpjPWZ1bmN0aW9uIFZ3KGEpe1FiKGEpO3hnYihQYyh0aGlzLmEpLG5ldyBmeChhKSl9O18uS2M9ZnVuY3Rpb24gV3coKXtyZXR1cm4gbmV3IGF3KFBjKHRoaXMuYSkuYS5rYygpKX07Xy5nYz1mdW5jdGlvbiBYdygpe3JldHVybiB0aGlzLmEuZH07Xy5OYz1mdW5jdGlvbiBZdygpe3JldHVybiBnayhQYyh0aGlzLmEpLk5jKCksbmV3IFp3KX07dmFyIERIPXNmYih4dmUsJ011bHRpbWFwcy9LZXlzJyw1NTIpO2ZlYigxMTM2LDEse30sWncpO18uS2I9ZnVuY3Rpb24gJHcoYSl7cmV0dXJuIFJEKGEsNDQpLmxkKCl9O3ZhciB6SD1zZmIoeHZlLCdNdWx0aW1hcHMvS2V5cy8wbWV0aG9kcmVmJGdldEtleSRUeXBlJywxMTM2KTtmZWIoMTEzNSw0OTcsQXZlLF93KTtfLiRkPWZ1bmN0aW9uIGF4KGEpe3JldHVybiBuZXcgZXgoUkQoYSw0NCkpfTt2YXIgQkg9c2ZiKHh2ZSwnTXVsdGltYXBzL0tleXMvMScsMTEzNSk7ZmViKDIwODgsMSx7NDI1OjF9KTtfLkZiPWZ1bmN0aW9uIGJ4KGEpe3ZhciBiO2lmKFpEKGEsNTA0KSl7Yj1SRChhLDQyNSk7cmV0dXJuIFJEKHRoaXMuYS5tZCgpLDE2KS5nYygpPT1SRChiLmEubWQoKSwxNikuZ2MoKSYmSGIodGhpcy5hLmxkKCksYi5hLmxkKCkpfXJldHVybiBmYWxzZX07Xy5IYj1mdW5jdGlvbiBjeCgpe3ZhciBhO2E9dGhpcy5hLmxkKCk7cmV0dXJuIChhPT1udWxsPzA6dGIoYSkpXlJEKHRoaXMuYS5tZCgpLDE2KS5nYygpfTtfLkliPWZ1bmN0aW9uIGR4KCl7dmFyIGEsYjtiPUdoYih0aGlzLmEubGQoKSk7YT1SRCh0aGlzLmEubWQoKSwxNikuZ2MoKTtyZXR1cm4gYT09MT9iOmIrJyB4ICcrYX07dmFyIEhIPXNmYih4dmUsJ011bHRpc2V0cy9BYnN0cmFjdEVudHJ5JywyMDg4KTtmZWIoNTA0LDIwODgsezUwNDoxLDQyNToxfSxleCk7dmFyIEFIPXNmYih4dmUsJ011bHRpbWFwcy9LZXlzLzEvMScsNTA0KTtmZWIoMTEzNywxLFF2ZSxmeCk7Xy5DZD1mdW5jdGlvbiBneChhKXt0aGlzLmEuQ2QoUkQoYSw0NCkubGQoKSl9O3ZhciBDSD1zZmIoeHZlLCdNdWx0aW1hcHMvS2V5cy9sYW1iZGEkMSRUeXBlJywxMTM3KTtmZWIoMTE0MCwxLFF2ZSxqeCk7Xy5DZD1mdW5jdGlvbiBreChhKXtoeChSRChhLDQyNSkpfTt2YXIgRUg9c2ZiKHh2ZSwnTXVsdGlzZXQvbGFtYmRhJDAkVHlwZScsMTE0MCk7ZmViKDc1MywxLFF2ZSxseCk7Xy5DZD1mdW5jdGlvbiBteChhKXtpeCh0aGlzLmEsUkQoYSw0MjUpKX07dmFyIEZIPXNmYih4dmUsJ011bHRpc2V0L2xhbWJkYSQxJFR5cGUnLDc1Myk7ZmViKDExNDEsMSx7fSxyeCk7dmFyIEdIPXNmYih4dmUsJ011bHRpc2V0cy8wbWV0aG9kcmVmJGFkZCRUeXBlJywxMTQxKTtmZWIoNzU0LDEse30sc3gpO18uS2I9ZnVuY3Rpb24gdHgoYSl7cmV0dXJuIHB4KFJEKGEsNDI1KSl9O3ZhciBKSD1zZmIoeHZlLCdNdWx0aXNldHMvbGFtYmRhJDEkVHlwZScsNzU0KTtmZWIoMjEwNiwxLG52ZSk7dmFyIEtIPXNmYih4dmUsJ1JhbmdlR3d0U2VyaWFsaXphdGlvbkRlcGVuZGVuY2llcycsMjEwNik7ZmViKDUyMSwyMTA2LHsxNzg6MSw1MjE6MSwzOjEsNDY6MX0sd3gpO18uTGI9ZnVuY3Rpb24geHgoYSl7cmV0dXJuIHZ4KHRoaXMsUkQoYSwzNCkpfTtfLk1iPWZ1bmN0aW9uIEJ4KGEpe3JldHVybiB2eCh0aGlzLFJEKGEsMzQpKX07Xy5GYj1mdW5jdGlvbiB6eChhKXt2YXIgYjtpZihaRChhLDUyMSkpe2I9UkQoYSw1MjEpO3JldHVybiBQayh0aGlzLmEsYi5hKSYmUGsodGhpcy5iLGIuYil9cmV0dXJuIGZhbHNlfTtfLkhiPWZ1bmN0aW9uIEF4KCl7cmV0dXJuIHRoaXMuYS5IYigpKjMxK3RoaXMuYi5IYigpfTtfLkliPWZ1bmN0aW9uIEN4KCl7cmV0dXJuIER4KHRoaXMuYSx0aGlzLmIpfTt2YXIgTEg9c2ZiKHh2ZSwnUmFuZ2UnLDUyMSk7ZmViKDY1NCwyMDk3LFl2ZSxGeCk7Xy5mZD1mdW5jdGlvbiBKeChhKXtyZXR1cm4gdW0odGhpcy5iLGEpfTtfLlpkPWZ1bmN0aW9uIEd4KCl7cmV0dXJuIHRoaXMuYX07Xy5YYj1mdW5jdGlvbiBIeChhKXtyZXR1cm4gUW0odGhpcy5iLGEpfTtfLlBkPWZ1bmN0aW9uIEl4KGEpe3JldHVybiB1bSh0aGlzLmIsYSl9O3ZhciBNSD1zZmIoeHZlLCdSZWd1bGFySW1tdXRhYmxlQXNMaXN0Jyw2NTQpO2ZlYig2NTYsMjEwNSxZdmUsS3gpO18uUmQ9ZnVuY3Rpb24gTHgoKXtyZXR1cm4gdGhpcy5hfTt2YXIgTkg9c2ZiKHh2ZSwnUmVndWxhckltbXV0YWJsZUxpc3QnLDY1Nik7ZmViKDU0OCw3MzAsJHZlLE14LE54KTt2YXIgT0g9c2ZiKHh2ZSwnUmVndWxhckltbXV0YWJsZU1hcCcsNTQ4KTtmZWIoNzMxLDcxOSxhd2UsUXgpO3ZhciBPeDt2YXIgUEg9c2ZiKHh2ZSwnUmVndWxhckltbXV0YWJsZVNldCcsNzMxKTtmZWIoMjA3NCxFdmUsRnZlKTtfLktjPWZ1bmN0aW9uIGJ5KCl7cmV0dXJuIG5ldyBveSh0aGlzLmEsdGhpcy5iKX07Xy5GYz1mdW5jdGlvbiAkeChhKXt0aHJvdyBBZGIobmV3IGppYil9O18uR2M9ZnVuY3Rpb24gX3goYSl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLiRiPWZ1bmN0aW9uIGF5KCl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLk1jPWZ1bmN0aW9uIGN5KGEpe3Rocm93IEFkYihuZXcgamliKX07dmFyIFZIPXNmYih4dmUsJ1NldHMvU2V0VmlldycsMjA3NCk7ZmViKDk3NiwyMDc0LEZ2ZSxleSk7Xy5LYz1mdW5jdGlvbiBpeSgpe3JldHVybiBuZXcgb3kodGhpcy5hLHRoaXMuYil9O18uSGM9ZnVuY3Rpb24gZnkoYSl7cmV0dXJuIEJzYih0aGlzLmEsYSkmJnRoaXMuYi5IYyhhKX07Xy5JYz1mdW5jdGlvbiBneShhKXtyZXR1cm4gQmUodGhpcy5hLGEpJiZ0aGlzLmIuSWMoYSl9O18uZGM9ZnVuY3Rpb24gaHkoKXtyZXR1cm4gQW9iKHRoaXMuYix0aGlzLmEpfTtfLkxjPWZ1bmN0aW9uIGp5KCl7cmV0dXJuIENEYihuZXcgU0RiKG51bGwsbmV3IFN3Yih0aGlzLmEsMSkpLG5ldyBxeSh0aGlzLmIpKX07Xy5nYz1mdW5jdGlvbiBreSgpe3JldHVybiBkeSh0aGlzKX07Xy5PYz1mdW5jdGlvbiBseSgpe3JldHVybiBDRGIobmV3IFNEYihudWxsLG5ldyBTd2IodGhpcy5hLDEpKSxuZXcgbXkodGhpcy5iKSl9O3ZhciBUSD1zZmIoeHZlLCdTZXRzLzInLDk3Nik7ZmViKDk3NywxLG53ZSxteSk7Xy5NYj1mdW5jdGlvbiBueShhKXtyZXR1cm4gdGhpcy5hLkhjKGEpfTt2YXIgUUg9c2ZiKHh2ZSwnU2V0cy8yLzBtZXRob2RyZWYkY29udGFpbnMkVHlwZScsOTc3KTtmZWIoNzE0LDcxMyx3dmUsb3kpO18uWWI9ZnVuY3Rpb24gcHkoKXt2YXIgYTt3aGlsZShNc2IodGhpcy5hKSl7YT1Oc2IodGhpcy5hKTtpZih0aGlzLmMuSGMoYSkpe3JldHVybiBhfX1yZXR1cm4gdGhpcy5lPTIsbnVsbH07dmFyIFJIPXNmYih4dmUsJ1NldHMvMi8xJyw3MTQpO2ZlYig5NzgsMSxud2UscXkpO18uTWI9ZnVuY3Rpb24gcnkoYSl7cmV0dXJuIHRoaXMuYS5IYyhhKX07dmFyIFNIPXNmYih4dmUsJ1NldHMvMi8xbWV0aG9kcmVmJGNvbnRhaW5zJFR5cGUnLDk3OCk7ZmViKDYxNiwyMDczLHs2MTY6MSwzOjEsMjA6MSwxNjoxLDI3NzoxLDIxOjEsODc6MX0sc3kpO18uS2Q9ZnVuY3Rpb24gdHkoKXtyZXR1cm4gdGhpcy5ifTtfLkxkPWZ1bmN0aW9uIHV5KCl7cmV0dXJuIHRoaXMuYn07Xy5XZD1mdW5jdGlvbiB2eSgpe3JldHVybiB0aGlzLmJ9O18uSmM9ZnVuY3Rpb24gd3koYSl7dGhpcy5hLkpjKGEpfTtfLkxjPWZ1bmN0aW9uIHh5KCl7cmV0dXJuIHRoaXMuYS5MYygpfTtfLk9jPWZ1bmN0aW9uIHl5KCl7cmV0dXJuIHRoaXMuYS5PYygpfTt2YXIgV0g9c2ZiKHh2ZSwnU2V0cy9Vbm1vZGlmaWFibGVOYXZpZ2FibGVTZXQnLDYxNik7ZmViKDIwMzEsMjAzMCwkdmUsenkpO18uVmQ9ZnVuY3Rpb24gQXkoKXtyZXR1cm4gX2woKSxuZXcgRnkodGhpcy5hKX07Xy5DYz1mdW5jdGlvbiBCeSgpe3JldHVybiBfbCgpLG5ldyBGeSh0aGlzLmEpfTtfLnhkPWZ1bmN0aW9uIEN5KCl7cmV0dXJuIF9sKCksbmV3IEZ5KHRoaXMuYSl9O3ZhciBYSD1zZmIoeHZlLCdTaW5nbGV0b25JbW11dGFibGVCaU1hcCcsMjAzMSk7ZmViKDY1NywyMTA1LFl2ZSxEeSk7Xy5SZD1mdW5jdGlvbiBFeSgpe3JldHVybiB0aGlzLmF9O3ZhciBZSD1zZmIoeHZlLCdTaW5nbGV0b25JbW11dGFibGVMaXN0Jyw2NTcpO2ZlYigzNjMsMjA3OSxhd2UsRnkpO18uS2M9ZnVuY3Rpb24gSXkoKXtyZXR1cm4gbmV3ICRyKHRoaXMuYSl9O18uSGM9ZnVuY3Rpb24gR3koYSl7cmV0dXJuIHBiKHRoaXMuYSxhKX07Xy5PZD1mdW5jdGlvbiBIeSgpe3JldHVybiBuZXcgJHIodGhpcy5hKX07Xy5nYz1mdW5jdGlvbiBKeSgpe3JldHVybiAxfTt2YXIgWkg9c2ZiKHh2ZSwnU2luZ2xldG9uSW1tdXRhYmxlU2V0JywzNjMpO2ZlYigxMTQ4LDEse30sTXkpO18uS2I9ZnVuY3Rpb24gTnkoYSl7cmV0dXJuIFJEKGEsMTU5KX07dmFyIF9IPXNmYih4dmUsJ1N0cmVhbXMvbGFtYmRhJDAkVHlwZScsMTE0OCk7ZmViKDExNDksMSxvd2UsT3kpO18uZGU9ZnVuY3Rpb24gUHkoKXtLeSh0aGlzLmEpfTt2YXIgYUk9c2ZiKHh2ZSwnU3RyZWFtcy9sYW1iZGEkMSRUeXBlJywxMTQ5KTtmZWIoMTcyNSwxNzI0LHp2ZSxSeSk7Xy5aYj1mdW5jdGlvbiBTeSgpe3ZhciBhO3JldHVybiBhPXRoaXMuZixSRChSRCghYT8odGhpcy5mPVpEKHRoaXMuYywxMzkpP25ldyBVZih0aGlzLFJEKHRoaXMuYywxMzkpKTpaRCh0aGlzLmMsMTMzKT9uZXcgTWYodGhpcyxSRCh0aGlzLmMsMTMzKSk6bmV3IG5lKHRoaXMsdGhpcy5jKSk6YSwxMzMpLDEzOSl9O18uaGM9ZnVuY3Rpb24gVnkoKXtyZXR1cm4gbmV3IHlBYih0aGlzLmIpfTtfLnBkPWZ1bmN0aW9uIFd5KCl7cmV0dXJuIG5ldyB5QWIodGhpcy5iKX07Xy5lYz1mdW5jdGlvbiBZeSgpe3ZhciBhO3JldHVybiBhPXRoaXMuaSxSRChSRCghYT8odGhpcy5pPVpEKHRoaXMuYywxMzkpP25ldyBnZyh0aGlzLFJEKHRoaXMuYywxMzkpKTpaRCh0aGlzLmMsMTMzKT9uZXcgZWcodGhpcyxSRCh0aGlzLmMsMTMzKSk6bmV3IHpmKHRoaXMsdGhpcy5jKSk6YSw4NyksMjc3KX07Xy5hYz1mdW5jdGlvbiBVeSgpe3JldHVybiBaRCh0aGlzLmMsMTM5KT9uZXcgVWYodGhpcyxSRCh0aGlzLmMsMTM5KSk6WkQodGhpcy5jLDEzMyk/bmV3IE1mKHRoaXMsUkQodGhpcy5jLDEzMykpOm5ldyBuZSh0aGlzLHRoaXMuYyl9O18uaWM9ZnVuY3Rpb24gWHkoYSl7YT09bnVsbCYmdGhpcy5hLk5lKGEsYSk7cmV0dXJuIG5ldyB5QWIodGhpcy5iKX07dmFyIGRJPXNmYih4dmUsJ1RyZWVNdWx0aW1hcCcsMTcyNSk7ZmViKDgyLDEsezM6MSw4MjoxfSk7Xy5lZT1mdW5jdGlvbiBweihhKXtyZXR1cm4gbmV3IEVycm9yKGEpfTtfLmZlPWZ1bmN0aW9uIHJ6KCl7cmV0dXJuIHRoaXMuZX07Xy5nZT1mdW5jdGlvbiBzeigpe3ZhciBhLGIsYztjPSh0aGlzLms9PW51bGwmJih0aGlzLms9JEMockosTnZlLDgyLDAsMCwxKSksdGhpcy5rKTtiPSRDKGpKLHJ2ZSwxLGMubGVuZ3RoLDUsMSk7Zm9yKGE9MDthPGMubGVuZ3RoO2ErKyl7YlthXT1jW2FdLmV9cmV0dXJuIGJ9O18uaGU9ZnVuY3Rpb24gdHooKXtyZXR1cm4gdGhpcy5mfTtfLmllPWZ1bmN0aW9uIHV6KCl7cmV0dXJuIHRoaXMuZ307Xy5qZT1mdW5jdGlvbiB2eigpe2t6KHRoaXMscXoodGhpcy5lZShseih0aGlzLHRoaXMuZykpKSk7Z0EodGhpcyl9O18uSWI9ZnVuY3Rpb24gd3ooKXtyZXR1cm4gbHoodGhpcyx0aGlzLmllKCkpfTtfLmU9cndlO18uaT1mYWxzZTtfLm49dHJ1ZTt2YXIgcko9c2ZiKG12ZSwnVGhyb3dhYmxlJyw4Mik7ZmViKDEwMyw4Mix7MzoxLDEwMzoxLDgyOjF9KTt2YXIgWUk9c2ZiKG12ZSwnRXhjZXB0aW9uJywxMDMpO2ZlYig2MywxMDMsc3dlLHh6LHl6KTt2YXIga0o9c2ZiKG12ZSwnUnVudGltZUV4Y2VwdGlvbicsNjMpO2ZlYig2MDcsNjMsc3dlKTt2YXIgZEo9c2ZiKG12ZSwnSnNFeGNlcHRpb24nLDYwNyk7ZmViKDg3NSw2MDcsc3dlKTt2YXIgakk9c2ZiKHR3ZSwnSmF2YVNjcmlwdEV4Y2VwdGlvbkJhc2UnLDg3NSk7ZmViKDQ4Niw4NzUsezQ4NjoxLDM6MSwxMDM6MSw2MzoxLDgyOjF9LEN6KTtfLmllPWZ1bmN0aW9uIEZ6KCl7QnoodGhpcyk7cmV0dXJuIHRoaXMuY307Xy5rZT1mdW5jdGlvbiBHeigpe3JldHVybiBkRSh0aGlzLmIpPT09ZEUoenopP251bGw6dGhpcy5ifTt2YXIgeno7dmFyIGdJPXNmYih2d2UsJ0phdmFTY3JpcHRFeGNlcHRpb24nLDQ4Nik7dmFyIGhJPXNmYih2d2UsJ0phdmFTY3JpcHRPYmplY3QkJywwKTt2YXIgSno7ZmViKDIwNDcsMSx7fSk7dmFyIGlJPXNmYih2d2UsJ1NjaGVkdWxlcicsMjA0Nyk7dmFyIE56PTAsT3o9MCxQej0tMTtmZWIoOTAyLDIwNDcse30sYkEpO3ZhciBaejt2YXIga0k9c2ZiKHR3ZSwnU2NoZWR1bGVySW1wbCcsOTAyKTt2YXIgZUE7ZmViKDIwNTgsMSx7fSk7dmFyIG9JPXNmYih0d2UsJ1N0YWNrVHJhY2VDcmVhdG9yL0NvbGxlY3RvcicsMjA1OCk7ZmViKDg3NiwyMDU4LHt9LG1BKTtfLmxlPWZ1bmN0aW9uIG5BKGEpe3ZhciBiPXt9LGo7dmFyIGM9W107YVt4d2VdPWM7dmFyIGQ9YXJndW1lbnRzLmNhbGxlZS5jYWxsZXI7d2hpbGUoZCl7dmFyIGU9KGZBKCksZC5uYW1lfHwoZC5uYW1lPWlBKGQudG9TdHJpbmcoKSkpKTtjLnB1c2goZSk7dmFyIGY9JzonK2U7dmFyIGc9YltmXTtpZihnKXt2YXIgaCxpO2ZvcihoPTAsaT1nLmxlbmd0aDtoPGk7aCsrKXtpZihnW2hdPT09ZCl7cmV0dXJufX19KGd8fChiW2ZdPVtdKSkucHVzaChkKTtkPWQuY2FsbGVyfX07Xy5tZT1mdW5jdGlvbiBvQShhKXt2YXIgYixjLGQsZTtkPShmQSgpLGEmJmFbeHdlXT9hW3h3ZV06W10pO2M9ZC5sZW5ndGg7ZT0kQyhtSixOdmUsMzE5LGMsMCwxKTtmb3IoYj0wO2I8YztiKyspe2VbYl09bmV3IGVoYihkW2JdLG51bGwsLTEpfXJldHVybiBlfTt2YXIgbEk9c2ZiKHR3ZSwnU3RhY2tUcmFjZUNyZWF0b3IvQ29sbGVjdG9yTGVnYWN5Jyw4NzYpO2ZlYigyMDU5LDIwNTgse30pO18ubGU9ZnVuY3Rpb24gcUEoYSl7fTtfLm5lPWZ1bmN0aW9uIHJBKGEsYixjLGQpe3JldHVybiBuZXcgZWhiKGIsYSsnQCcrZCxjPDA/LTE6Yyl9O18ubWU9ZnVuY3Rpb24gc0EoYSl7dmFyIGIsYyxkLGUsZixnO2U9a0EoYSk7Zj0kQyhtSixOdmUsMzE5LDAsMCwxKTtiPTA7ZD1lLmxlbmd0aDtpZihkPT0wKXtyZXR1cm4gZn1nPXBBKHRoaXMsZVswXSk7bGhiKGcuZCx3d2UpfHwoZltiKytdPWcpO2ZvcihjPTE7YzxkO2MrKyl7ZltiKytdPXBBKHRoaXMsZVtjXSl9cmV0dXJuIGZ9O3ZhciBuST1zZmIodHdlLCdTdGFja1RyYWNlQ3JlYXRvci9Db2xsZWN0b3JNb2Rlcm4nLDIwNTkpO2ZlYig4NzcsMjA1OSx7fSx0QSk7Xy5uZT1mdW5jdGlvbiB1QShhLGIsYyxkKXtyZXR1cm4gbmV3IGVoYihiLGEsLTEpfTt2YXIgbUk9c2ZiKHR3ZSwnU3RhY2tUcmFjZUNyZWF0b3IvQ29sbGVjdG9yTW9kZXJuTm9Tb3VyY2VNYXAnLDg3Nyk7ZmViKDEwNjQsMSx7fSk7dmFyIHZJPXNmYihad2UsJHdlLDEwNjQpO2ZlYig2MjQsMTA2NCx7NjI0OjF9LFhBKTt2YXIgVkE7dmFyIHBJPXNmYihfd2UsJHdlLDYyNCk7ZmViKDIxMDEsMSx7fSk7dmFyIHdJPXNmYihad2UsYXhlLDIxMDEpO2ZlYigyMTAyLDIxMDEse30pO3ZhciBxST1zZmIoX3dlLGF4ZSwyMTAyKTtmZWIoMTEyMCwxLHt9LGFCKTt2YXIgWkE7dmFyIHJJPXNmYihfd2UsJ0xvY2FsZUluZm8nLDExMjApO2ZlYigyMDI3LDEse30sZEIpO18uYT0wO3ZhciBzST1zZmIoX3dlLCdUaW1lWm9uZScsMjAyNyk7ZmViKDEyOTMsMjEwMix7fSxqQik7dmFyIHRJPXNmYignY29tLmdvb2dsZS5nd3QuaTE4bi5jbGllbnQuaW1wbC5jbGRyJywnRGF0ZVRpbWVGb3JtYXRJbmZvSW1wbCcsMTI5Myk7ZmViKDQ0MywxLHs0NDM6MX0sa0IpO18uYT1mYWxzZTtfLmI9MDt2YXIgdUk9c2ZiKFp3ZSwnRGF0ZVRpbWVGb3JtYXQvUGF0dGVyblBhcnQnLDQ0Myk7ZmViKDIwNiwxLGJ4ZSx1Qix2Qix3Qik7Xy5GZD1mdW5jdGlvbiB4QihhKXtyZXR1cm4gbEIodGhpcyxSRChhLDIwNikpfTtfLkZiPWZ1bmN0aW9uIHlCKGEpe3JldHVybiBaRChhLDIwNikmJkdkYihIZGIodGhpcy5xLmdldFRpbWUoKSksSGRiKFJEKGEsMjA2KS5xLmdldFRpbWUoKSkpfTtfLkhiPWZ1bmN0aW9uIHpCKCl7dmFyIGE7YT1IZGIodGhpcy5xLmdldFRpbWUoKSk7cmV0dXJuIFlkYigkZGIoYSxVZGIoYSwzMikpKX07Xy5JYj1mdW5jdGlvbiBCQigpe3ZhciBhLGIsYztjPS10aGlzLnEuZ2V0VGltZXpvbmVPZmZzZXQoKTthPShjPj0wPycrJzonJykrKGMvNjB8MCk7Yj1BQigkd25kLk1hdGguYWJzKGMpJTYwKTtyZXR1cm4gKE1yYigpLEtyYilbdGhpcy5xLmdldERheSgpXSsnICcrTHJiW3RoaXMucS5nZXRNb250aCgpXSsnICcrQUIodGhpcy5xLmdldERhdGUoKSkrJyAnK0FCKHRoaXMucS5nZXRIb3VycygpKSsnOicrQUIodGhpcy5xLmdldE1pbnV0ZXMoKSkrJzonK0FCKHRoaXMucS5nZXRTZWNvbmRzKCkpKycgR01UJythK2IrJyAnK3RoaXMucS5nZXRGdWxsWWVhcigpfTt2YXIgcUs9c2ZiKEJ2ZSwnRGF0ZScsMjA2KTtmZWIoMjAxNSwyMDYsYnhlLERCKTtfLmE9ZmFsc2U7Xy5iPTA7Xy5jPTA7Xy5kPTA7Xy5lPTA7Xy5mPTA7Xy5nPWZhbHNlO18uaT0wO18uaj0wO18uaz0wO18ubj0wO18ubz0wO18ucD0wO3ZhciB4ST1zZmIoJ2NvbS5nb29nbGUuZ3d0LmkxOG4uc2hhcmVkLmltcGwnLCdEYXRlUmVjb3JkJywyMDE1KTtmZWIoMjA2NCwxLHt9KTtfLnBlPWZ1bmN0aW9uIEVCKCl7cmV0dXJuIG51bGx9O18ucWU9ZnVuY3Rpb24gRkIoKXtyZXR1cm4gbnVsbH07Xy5yZT1mdW5jdGlvbiBHQigpe3JldHVybiBudWxsfTtfLnNlPWZ1bmN0aW9uIEhCKCl7cmV0dXJuIG51bGx9O18udGU9ZnVuY3Rpb24gSUIoKXtyZXR1cm4gbnVsbH07dmFyIEdJPXNmYihjeGUsJ0pTT05WYWx1ZScsMjA2NCk7ZmViKDIyMSwyMDY0LHsyMjE6MX0sTUIsTkIpO18uRmI9ZnVuY3Rpb24gT0IoYSl7aWYoIVpEKGEsMjIxKSl7cmV0dXJuIGZhbHNlfXJldHVybiBIeih0aGlzLmEsUkQoYSwyMjEpLmEpfTtfLm9lPWZ1bmN0aW9uIFBCKCl7cmV0dXJuIFRCfTtfLkhiPWZ1bmN0aW9uIFFCKCl7cmV0dXJuIEl6KHRoaXMuYSl9O18ucGU9ZnVuY3Rpb24gUkIoKXtyZXR1cm4gdGhpc307Xy5JYj1mdW5jdGlvbiBTQigpe3ZhciBhLGIsYztjPW5ldyBkaWIoJ1snKTtmb3IoYj0wLGE9dGhpcy5hLmxlbmd0aDtiPGE7YisrKXtiPjAmJihjLmErPScsJyxjKTtZaGIoYyxKQih0aGlzLGIpKX1jLmErPSddJztyZXR1cm4gYy5hfTt2YXIgeUk9c2ZiKGN4ZSwnSlNPTkFycmF5JywyMjEpO2ZlYig0OTMsMjA2NCx7NDkzOjF9LFhCKTtfLm9lPWZ1bmN0aW9uIFlCKCl7cmV0dXJuIF9CfTtfLnFlPWZ1bmN0aW9uIFpCKCl7cmV0dXJuIHRoaXN9O18uSWI9ZnVuY3Rpb24gJEIoKXtyZXR1cm4gR2ViKCksJycrdGhpcy5hfTtfLmE9ZmFsc2U7dmFyIFVCLFZCO3ZhciB6ST1zZmIoY3hlLCdKU09OQm9vbGVhbicsNDkzKTtmZWIoOTk3LDYzLHN3ZSxhQyk7dmFyIEFJPXNmYihjeGUsJ0pTT05FeGNlcHRpb24nLDk5Nyk7ZmViKDEwMzYsMjA2NCx7fSxkQyk7Xy5vZT1mdW5jdGlvbiBlQygpe3JldHVybiBnQ307Xy5JYj1mdW5jdGlvbiBmQygpe3JldHVybiB2dmV9O3ZhciBiQzt2YXIgQkk9c2ZiKGN4ZSwnSlNPTk51bGwnLDEwMzYpO2ZlYigyNjMsMjA2NCx7MjYzOjF9LGhDKTtfLkZiPWZ1bmN0aW9uIGlDKGEpe2lmKCFaRChhLDI2Mykpe3JldHVybiBmYWxzZX1yZXR1cm4gdGhpcy5hPT1SRChhLDI2MykuYX07Xy5vZT1mdW5jdGlvbiBqQygpe3JldHVybiBuQ307Xy5IYj1mdW5jdGlvbiBrQygpe3JldHVybiBOZmIodGhpcy5hKX07Xy5yZT1mdW5jdGlvbiBsQygpe3JldHVybiB0aGlzfTtfLkliPWZ1bmN0aW9uIG1DKCl7cmV0dXJuIHRoaXMuYSsnJ307Xy5hPTA7dmFyIENJPXNmYihjeGUsJ0pTT05OdW1iZXInLDI2Myk7ZmViKDE5MCwyMDY0LHsxOTA6MX0sdUMsdkMpO18uRmI9ZnVuY3Rpb24gd0MoYSl7aWYoIVpEKGEsMTkwKSl7cmV0dXJuIGZhbHNlfXJldHVybiBIeih0aGlzLmEsUkQoYSwxOTApLmEpfTtfLm9lPWZ1bmN0aW9uIHhDKCl7cmV0dXJuIEJDfTtfLkhiPWZ1bmN0aW9uIHlDKCl7cmV0dXJuIEl6KHRoaXMuYSl9O18uc2U9ZnVuY3Rpb24gekMoKXtyZXR1cm4gdGhpc307Xy5JYj1mdW5jdGlvbiBBQygpe3ZhciBhLGIsYyxkLGUsZixnO2c9bmV3IGRpYigneycpO2E9dHJ1ZTtmPW9DKHRoaXMsJEMocUosTnZlLDIsMCw2LDEpKTtmb3IoYz1mLGQ9MCxlPWMubGVuZ3RoO2Q8ZTsrK2Qpe2I9Y1tkXTthPyhhPWZhbHNlKTooZy5hKz1wdmUsZyk7WmhiKGcsTHooYikpO2cuYSs9JzonO1loYihnLHFDKHRoaXMsYikpfWcuYSs9J30nO3JldHVybiBnLmF9O3ZhciBFST1zZmIoY3hlLCdKU09OT2JqZWN0JywxOTApO2ZlYig2MDUsRXZlLEZ2ZSxDQyk7Xy5IYz1mdW5jdGlvbiBEQyhhKXtyZXR1cm4gYkUoYSkmJnBDKHRoaXMuYSxXRChhKSl9O18uS2M9ZnVuY3Rpb24gRUMoKXtyZXR1cm4gbmV3IERrYihuZXcgbW9iKHRoaXMuYikpfTtfLmdjPWZ1bmN0aW9uIEZDKCl7cmV0dXJuIHRoaXMuYi5sZW5ndGh9O3ZhciBEST1zZmIoY3hlLCdKU09OT2JqZWN0LzEnLDYwNSk7dmFyIEdDO2ZlYigyMTEsMjA2NCx7MjExOjF9LE9DKTtfLkZiPWZ1bmN0aW9uIFBDKGEpe2lmKCFaRChhLDIxMSkpe3JldHVybiBmYWxzZX1yZXR1cm4gbGhiKHRoaXMuYSxSRChhLDIxMSkuYSl9O18ub2U9ZnVuY3Rpb24gUUMoKXtyZXR1cm4gVUN9O18uSGI9ZnVuY3Rpb24gUkMoKXtyZXR1cm4gb2hiKHRoaXMuYSl9O18udGU9ZnVuY3Rpb24gU0MoKXtyZXR1cm4gdGhpc307Xy5JYj1mdW5jdGlvbiBUQygpe3JldHVybiBMeih0aGlzLmEpfTt2YXIgRkk9c2ZiKGN4ZSwnSlNPTlN0cmluZycsMjExKTt2YXIgZUQ7dmFyIElELEpELEtELExEO2ZlYigyMDYwLDEsezUzMzoxfSk7dmFyIElJPXNmYihreGUsJ091dHB1dFN0cmVhbScsMjA2MCk7ZmViKDIwNjEsMjA2MCx7NTMzOjF9KTt2YXIgSEk9c2ZiKGt4ZSwnRmlsdGVyT3V0cHV0U3RyZWFtJywyMDYxKTtmZWIoODc4LDIwNjEsezUzMzoxfSxvZWIpO3ZhciBKST1zZmIoa3hlLCdQcmludFN0cmVhbScsODc4KTtmZWIoNDI3LDEsezQ4NDoxfSk7Xy5JYj1mdW5jdGlvbiBzZWIoKXtyZXR1cm4gdGhpcy5hfTt2YXIgS0k9c2ZiKG12ZSwnQWJzdHJhY3RTdHJpbmdCdWlsZGVyJyw0MjcpO2ZlYig1MzgsNjMsc3dlLHRlYik7dmFyIExJPXNmYihtdmUsJ0FyaXRobWV0aWNFeGNlcHRpb24nLDUzOCk7ZmViKDc3LDYzLGx4ZSx1ZWIsdmViKTt2YXIgYUo9c2ZiKG12ZSwnSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbicsNzcpO2ZlYigzMzMsNzcsezM6MSwzMzM6MSwxMDM6MSw3NzoxLDYzOjEsODI6MX0sd2ViLHhlYik7dmFyIE1JPXNmYihtdmUsJ0FycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbicsMzMzKTtmZWIoNTM3LDYzLHN3ZSx5ZWIsemViKTt2YXIgTkk9c2ZiKG12ZSwnQXJyYXlTdG9yZUV4Y2VwdGlvbicsNTM3KTtmZWIoMjk2LDgyLG14ZSxBZWIpO3ZhciBYST1zZmIobXZlLCdFcnJvcicsMjk2KTtmZWIoMjAwLDI5NixteGUsQ2ViLERlYik7dmFyIE9JPXNmYihtdmUsJ0Fzc2VydGlvbkVycm9yJywyMDApO05EPXszOjEsNDg1OjEsMzQ6MX07dmFyIEVlYixGZWI7dmFyIFFJPXNmYihtdmUsJ0Jvb2xlYW4nLDQ4NSk7ZmViKDI0MiwxLHszOjEsMjQyOjF9KTt2YXIgTWViO3ZhciBpSj1zZmIobXZlLCdOdW1iZXInLDI0Mik7ZmViKDIyMiwyNDIsezM6MSwyMjI6MSwzNDoxLDI0MjoxfSxTZWIpO18uRmQ9ZnVuY3Rpb24gVGViKGEpe3JldHVybiBSZWIodGhpcyxSRChhLDIyMikpfTtfLnVlPWZ1bmN0aW9uIFVlYigpe3JldHVybiB0aGlzLmF9O18uRmI9ZnVuY3Rpb24gVmViKGEpe3JldHVybiBaRChhLDIyMikmJlJEKGEsMjIyKS5hPT10aGlzLmF9O18uSGI9ZnVuY3Rpb24gV2ViKCl7cmV0dXJuIHRoaXMuYX07Xy5JYj1mdW5jdGlvbiBYZWIoKXtyZXR1cm4gJycrdGhpcy5hfTtfLmE9MDt2YXIgUkk9c2ZiKG12ZSwnQnl0ZScsMjIyKTt2YXIgWWViO2ZlYigxODAsMSx7MzoxLDE4MDoxLDM0OjF9LGJmYik7Xy5GZD1mdW5jdGlvbiBjZmIoYSl7cmV0dXJuIGFmYih0aGlzLFJEKGEsMTgwKSl9O18uRmI9ZnVuY3Rpb24gZWZiKGEpe3JldHVybiBaRChhLDE4MCkmJlJEKGEsMTgwKS5hPT10aGlzLmF9O18uSGI9ZnVuY3Rpb24gZmZiKCl7cmV0dXJuIHRoaXMuYX07Xy5JYj1mdW5jdGlvbiBnZmIoKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLmEpfTtfLmE9MDt2YXIgX2ViO3ZhciBTST1zZmIobXZlLCdDaGFyYWN0ZXInLDE4MCk7dmFyIGlmYjtmZWIoMjEyLDYzLHszOjEsMjEyOjEsMTAzOjEsNjM6MSw4MjoxfSxIZmIsSWZiKTt2YXIgVEk9c2ZiKG12ZSwnQ2xhc3NDYXN0RXhjZXB0aW9uJywyMTIpO09EPXszOjEsMzQ6MSwzNDU6MSwyNDI6MX07dmFyIFZJPXNmYihtdmUsJ0RvdWJsZScsMzQ1KTtmZWIoMTYxLDI0Mix7MzoxLDM0OjEsMTYxOjEsMjQyOjF9LFRmYixVZmIpO18uRmQ9ZnVuY3Rpb24gVmZiKGEpe3JldHVybiBTZmIodGhpcyxSRChhLDE2MSkpfTtfLnVlPWZ1bmN0aW9uIFdmYigpe3JldHVybiB0aGlzLmF9O18uRmI9ZnVuY3Rpb24gWGZiKGEpe3JldHVybiBaRChhLDE2MSkmJkxmYih0aGlzLmEsUkQoYSwxNjEpLmEpfTtfLkhiPWZ1bmN0aW9uIFlmYigpe3JldHVybiBlRSh0aGlzLmEpfTtfLkliPWZ1bmN0aW9uICRmYigpe3JldHVybiAnJyt0aGlzLmF9O18uYT0wO3ZhciBaST1zZmIobXZlLCdGbG9hdCcsMTYxKTtmZWIoMzMsNjMsezM6MSwxMDM6MSwzMzoxLDYzOjEsODI6MX0sX2ZiLGFnYixiZ2IpO3ZhciAkST1zZmIobXZlLCdJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24nLDMzKTtmZWIoNzMsNjMsc3dlLGNnYixkZ2IpO3ZhciBfST1zZmIobXZlLCdJbGxlZ2FsU3RhdGVFeGNlcHRpb24nLDczKTtmZWIoMTcsMjQyLHszOjEsMzQ6MSwxNzoxLDI0MjoxfSxmZ2IpO18uRmQ9ZnVuY3Rpb24gaWdiKGEpe3JldHVybiBlZ2IodGhpcyxSRChhLDE3KSl9O18udWU9ZnVuY3Rpb24gamdiKCl7cmV0dXJuIHRoaXMuYX07Xy5GYj1mdW5jdGlvbiBrZ2IoYSl7cmV0dXJuIFpEKGEsMTcpJiZSRChhLDE3KS5hPT10aGlzLmF9O18uSGI9ZnVuY3Rpb24gbGdiKCl7cmV0dXJuIHRoaXMuYX07Xy5JYj1mdW5jdGlvbiByZ2IoKXtyZXR1cm4gJycrdGhpcy5hfTtfLmE9MDt2YXIgYko9c2ZiKG12ZSwnSW50ZWdlcicsMTcpO3ZhciB0Z2I7dmFyIHZnYjtmZWIoMTY4LDI0Mix7MzoxLDM0OjEsMTY4OjEsMjQyOjF9LHpnYik7Xy5GZD1mdW5jdGlvbiBCZ2IoYSl7cmV0dXJuIHlnYih0aGlzLFJEKGEsMTY4KSl9O18udWU9ZnVuY3Rpb24gQ2diKCl7cmV0dXJuIFhkYih0aGlzLmEpfTtfLkZiPWZ1bmN0aW9uIERnYihhKXtyZXR1cm4gWkQoYSwxNjgpJiZHZGIoUkQoYSwxNjgpLmEsdGhpcy5hKX07Xy5IYj1mdW5jdGlvbiBFZ2IoKXtyZXR1cm4gRmdiKHRoaXMuYSl9O18uSWI9ZnVuY3Rpb24gR2diKCl7cmV0dXJuICcnK1pkYih0aGlzLmEpfTtfLmE9MDt2YXIgZUo9c2ZiKG12ZSwnTG9uZycsMTY4KTt2YXIgSWdiO2ZlYigyMTQwLDEse30pO2ZlYigxOTA0LDYzLHN3ZSxNZ2IpO3ZhciBmSj1zZmIobXZlLCdOZWdhdGl2ZUFycmF5U2l6ZUV4Y2VwdGlvbicsMTkwNCk7ZmViKDE2OSw2MDcsezM6MSwxMDM6MSwxNjk6MSw2MzoxLDgyOjF9LE5nYixPZ2IpO18uZWU9ZnVuY3Rpb24gUGdiKGEpe3JldHVybiBuZXcgVHlwZUVycm9yKGEpfTt2YXIgZ0o9c2ZiKG12ZSwnTnVsbFBvaW50ZXJFeGNlcHRpb24nLDE2OSk7dmFyIFFnYixSZ2IsU2diLFRnYjtmZWIoMTMwLDMzLHszOjEsMTAzOjEsMzM6MSwxMzA6MSw2MzoxLDgyOjF9LFZnYik7dmFyIGhKPXNmYihtdmUsJ051bWJlckZvcm1hdEV4Y2VwdGlvbicsMTMwKTtmZWIoMTkxLDI0Mix7MzoxLDM0OjEsMjQyOjEsMTkxOjF9LFhnYik7Xy5GZD1mdW5jdGlvbiBZZ2IoYSl7cmV0dXJuIFdnYih0aGlzLFJEKGEsMTkxKSl9O18udWU9ZnVuY3Rpb24gWmdiKCl7cmV0dXJuIHRoaXMuYX07Xy5GYj1mdW5jdGlvbiAkZ2IoYSl7cmV0dXJuIFpEKGEsMTkxKSYmUkQoYSwxOTEpLmE9PXRoaXMuYX07Xy5IYj1mdW5jdGlvbiBfZ2IoKXtyZXR1cm4gdGhpcy5hfTtfLkliPWZ1bmN0aW9uIGFoYigpe3JldHVybiAnJyt0aGlzLmF9O18uYT0wO3ZhciBsSj1zZmIobXZlLCdTaG9ydCcsMTkxKTt2YXIgY2hiO2ZlYigzMTksMSx7MzoxLDMxOToxfSxlaGIpO18uRmI9ZnVuY3Rpb24gZmhiKGEpe3ZhciBiO2lmKFpEKGEsMzE5KSl7Yj1SRChhLDMxOSk7cmV0dXJuIHRoaXMuYz09Yi5jJiZ0aGlzLmQ9PWIuZCYmdGhpcy5hPT1iLmEmJnRoaXMuYj09Yi5ifXJldHVybiBmYWxzZX07Xy5IYj1mdW5jdGlvbiBnaGIoKXtyZXR1cm4gVG5iKGNEKFdDKGpKLDEpLHJ2ZSwxLDUsW3NnYih0aGlzLmMpLHRoaXMuYSx0aGlzLmQsdGhpcy5iXSkpfTtfLkliPWZ1bmN0aW9uIGhoYigpe3JldHVybiB0aGlzLmErJy4nK3RoaXMuZCsnKCcrKHRoaXMuYiE9bnVsbD90aGlzLmI6J1Vua25vd24gU291cmNlJykrKHRoaXMuYz49MD8nOicrdGhpcy5jOicnKSsnKSd9O18uYz0wO3ZhciBtSj1zZmIobXZlLCdTdGFja1RyYWNlRWxlbWVudCcsMzE5KTtQRD17MzoxLDQ4NDoxLDM0OjEsMjoxfTt2YXIgcUo9c2ZiKG12ZSx1d2UsMik7ZmViKDExMSw0MjcsezQ4NDoxfSxRaGIsUmhiLFNoYik7dmFyIG5KPXNmYihtdmUsJ1N0cmluZ0J1ZmZlcicsMTExKTtmZWIoMTA0LDQyNyx7NDg0OjF9LGJpYixjaWIsZGliKTt2YXIgb0o9c2ZiKG12ZSwnU3RyaW5nQnVpbGRlcicsMTA0KTtmZWIoNzAyLDc3LGx4ZSxlaWIpO3ZhciBwSj1zZmIobXZlLCdTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uJyw3MDIpO2ZlYigyMTQ1LDEse30pO3ZhciBmaWI7ZmViKDQ4LDYzLHszOjEsMTAzOjEsNjM6MSw4MjoxLDQ4OjF9LGppYixraWIpO3ZhciBzSj1zZmIobXZlLCdVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbicsNDgpO2ZlYigyNDcsMjQyLHszOjEsMzQ6MSwyNDI6MSwyNDc6MX0sQWliLEJpYik7Xy5GZD1mdW5jdGlvbiBFaWIoYSl7cmV0dXJuIHVpYih0aGlzLFJEKGEsMjQ3KSl9O18udWU9ZnVuY3Rpb24gRmliKCl7cmV0dXJuIE5lYih6aWIodGhpcykpfTtfLkZiPWZ1bmN0aW9uIEdpYihhKXt2YXIgYjtpZih0aGlzPT09YSl7cmV0dXJuIHRydWV9aWYoWkQoYSwyNDcpKXtiPVJEKGEsMjQ3KTtyZXR1cm4gdGhpcy5lPT1iLmUmJnVpYih0aGlzLGIpPT0wfXJldHVybiBmYWxzZX07Xy5IYj1mdW5jdGlvbiBIaWIoKXt2YXIgYTtpZih0aGlzLmIhPTApe3JldHVybiB0aGlzLmJ9aWYodGhpcy5hPDU0KXthPUhkYih0aGlzLmYpO3RoaXMuYj1ZZGIoQ2RiKGEsLTEpKTt0aGlzLmI9MzMqdGhpcy5iK1lkYihDZGIoVGRiKGEsMzIpLC0xKSk7dGhpcy5iPTE3KnRoaXMuYitlRSh0aGlzLmUpO3JldHVybiB0aGlzLmJ9dGhpcy5iPTE3KlZpYih0aGlzLmMpK2VFKHRoaXMuZSk7cmV0dXJuIHRoaXMuYn07Xy5JYj1mdW5jdGlvbiBJaWIoKXtyZXR1cm4gemliKHRoaXMpfTtfLmE9MDtfLmI9MDtfLmQ9MDtfLmU9MDtfLmY9MDt2YXIgbGliLG1pYixuaWIsb2liLHBpYixxaWIscmliLHNpYjt2YXIgdEo9c2ZiKCdqYXZhLm1hdGgnLCdCaWdEZWNpbWFsJywyNDcpO2ZlYig5MiwyNDIsezM6MSwzNDoxLDI0MjoxLDkyOjF9LGFqYixiamIsY2piLGRqYixlamIpO18uRmQ9ZnVuY3Rpb24gZ2piKGEpe3JldHVybiBRaWIodGhpcyxSRChhLDkyKSl9O18udWU9ZnVuY3Rpb24gaGpiKCl7cmV0dXJuIE5lYihBamIodGhpcywwKSl9O18uRmI9ZnVuY3Rpb24gaWpiKGEpe3JldHVybiBTaWIodGhpcyxhKX07Xy5IYj1mdW5jdGlvbiBsamIoKXtyZXR1cm4gVmliKHRoaXMpfTtfLkliPWZ1bmN0aW9uIG5qYigpe3JldHVybiBBamIodGhpcywwKX07Xy5iPS0yO18uYz0wO18uZD0wO18uZT0wO3ZhciBKaWIsS2liLExpYixNaWIsTmliLE9pYjt2YXIgdUo9c2ZiKCdqYXZhLm1hdGgnLCdCaWdJbnRlZ2VyJyw5Mik7dmFyIHZqYix3amI7dmFyIEpqYixLamI7ZmViKDQ5OCwyMDY1LEN2ZSk7Xy4kYj1mdW5jdGlvbiBka2IoKXtha2IodGhpcyl9O18uX2I9ZnVuY3Rpb24gZWtiKGEpe3JldHVybiBVamIodGhpcyxhKX07Xy51Yz1mdW5jdGlvbiBma2IoYSl7cmV0dXJuIFZqYih0aGlzLGEsdGhpcy5pKXx8VmpiKHRoaXMsYSx0aGlzLmYpfTtfLnZjPWZ1bmN0aW9uIGdrYigpe3JldHVybiBuZXcgbWtiKHRoaXMpfTtfLnhjPWZ1bmN0aW9uIGhrYihhKXtyZXR1cm4gV2piKHRoaXMsYSl9O18uemM9ZnVuY3Rpb24gaWtiKGEsYil7cmV0dXJuIFpqYih0aGlzLGEsYil9O18uQmM9ZnVuY3Rpb24gamtiKGEpe3JldHVybiBfamIodGhpcyxhKX07Xy5nYz1mdW5jdGlvbiBra2IoKXtyZXR1cm4gYmtiKHRoaXMpfTtfLmc9MDt2YXIgeUo9c2ZiKEJ2ZSwnQWJzdHJhY3RIYXNoTWFwJyw0OTgpO2ZlYigyNjcsRXZlLEZ2ZSxta2IpO18uJGI9ZnVuY3Rpb24gbmtiKCl7dGhpcy5hLiRiKCl9O18uSGM9ZnVuY3Rpb24gb2tiKGEpe3JldHVybiBsa2IodGhpcyxhKX07Xy5LYz1mdW5jdGlvbiBwa2IoKXtyZXR1cm4gbmV3IHZrYih0aGlzLmEpfTtfLk1jPWZ1bmN0aW9uIHFrYihhKXt2YXIgYjtpZihsa2IodGhpcyxhKSl7Yj1SRChhLDQ0KS5sZCgpO3RoaXMuYS5CYyhiKTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O18uZ2M9ZnVuY3Rpb24gcmtiKCl7cmV0dXJuIHRoaXMuYS5nYygpfTt2YXIgeEo9c2ZiKEJ2ZSwnQWJzdHJhY3RIYXNoTWFwL0VudHJ5U2V0JywyNjcpO2ZlYigyNjgsMSxBdmUsdmtiKTtfLk5iPWZ1bmN0aW9uIHdrYihhKXtadGIodGhpcyxhKX07Xy5QYj1mdW5jdGlvbiB5a2IoKXtyZXR1cm4gdGtiKHRoaXMpfTtfLk9iPWZ1bmN0aW9uIHhrYigpe3JldHVybiB0aGlzLmJ9O18uUWI9ZnVuY3Rpb24gemtiKCl7dWtiKHRoaXMpfTtfLmI9ZmFsc2U7Xy5kPTA7dmFyIHdKPXNmYihCdmUsJ0Fic3RyYWN0SGFzaE1hcC9FbnRyeVNldEl0ZXJhdG9yJywyNjgpO2ZlYig0MjYsMSxBdmUsRGtiKTtfLk5iPWZ1bmN0aW9uIEVrYihhKXtadGIodGhpcyxhKX07Xy5PYj1mdW5jdGlvbiBGa2IoKXtyZXR1cm4gQWtiKHRoaXMpfTtfLlBiPWZ1bmN0aW9uIEdrYigpe3JldHVybiBCa2IodGhpcyl9O18uUWI9ZnVuY3Rpb24gSGtiKCl7Q2tiKHRoaXMpfTtfLmI9MDtfLmM9LTE7dmFyIHpKPXNmYihCdmUsJ0Fic3RyYWN0TGlzdC9JdGVyYXRvckltcGwnLDQyNik7ZmViKDk4LDQyNixKdmUsSmtiKTtfLlFiPWZ1bmN0aW9uIFBrYigpe0NrYih0aGlzKX07Xy5SYj1mdW5jdGlvbiBLa2IoYSl7SWtiKHRoaXMsYSl9O18uU2I9ZnVuY3Rpb24gTGtiKCl7cmV0dXJuIHRoaXMuYj4wfTtfLlRiPWZ1bmN0aW9uIE1rYigpe3JldHVybiB0aGlzLmJ9O18uVWI9ZnVuY3Rpb24gTmtiKCl7cmV0dXJuIHNGYih0aGlzLmI+MCksdGhpcy5hLlhiKHRoaXMuYz0tLXRoaXMuYil9O18uVmI9ZnVuY3Rpb24gT2tiKCl7cmV0dXJuIHRoaXMuYi0xfTtfLldiPWZ1bmN0aW9uIFFrYihhKXt5RmIodGhpcy5jIT0tMSk7dGhpcy5hLmhkKHRoaXMuYyxhKX07dmFyIEFKPXNmYihCdmUsJ0Fic3RyYWN0TGlzdC9MaXN0SXRlcmF0b3JJbXBsJyw5OCk7ZmViKDI0NCw1Nixrd2UsUmtiKTtfLmJkPWZ1bmN0aW9uIFNrYihhLGIpe3dGYihhLHRoaXMuYik7dGhpcy5jLmJkKHRoaXMuYSthLGIpOysrdGhpcy5ifTtfLlhiPWZ1bmN0aW9uIFRrYihhKXt0RmIoYSx0aGlzLmIpO3JldHVybiB0aGlzLmMuWGIodGhpcy5hK2EpfTtfLmdkPWZ1bmN0aW9uIFVrYihhKXt2YXIgYjt0RmIoYSx0aGlzLmIpO2I9dGhpcy5jLmdkKHRoaXMuYSthKTstLXRoaXMuYjtyZXR1cm4gYn07Xy5oZD1mdW5jdGlvbiBWa2IoYSxiKXt0RmIoYSx0aGlzLmIpO3JldHVybiB0aGlzLmMuaGQodGhpcy5hK2EsYil9O18uZ2M9ZnVuY3Rpb24gV2tiKCl7cmV0dXJuIHRoaXMuYn07Xy5hPTA7Xy5iPTA7dmFyIEJKPXNmYihCdmUsJ0Fic3RyYWN0TGlzdC9TdWJMaXN0JywyNDQpO2ZlYigyNjYsRXZlLEZ2ZSxYa2IpO18uJGI9ZnVuY3Rpb24gWWtiKCl7dGhpcy5hLiRiKCl9O18uSGM9ZnVuY3Rpb24gWmtiKGEpe3JldHVybiB0aGlzLmEuX2IoYSl9O18uS2M9ZnVuY3Rpb24gJGtiKCl7dmFyIGE7cmV0dXJuIGE9dGhpcy5hLnZjKCkuS2MoKSxuZXcgYmxiKGEpfTtfLk1jPWZ1bmN0aW9uIF9rYihhKXtpZih0aGlzLmEuX2IoYSkpe3RoaXMuYS5CYyhhKTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O18uZ2M9ZnVuY3Rpb24gYWxiKCl7cmV0dXJuIHRoaXMuYS5nYygpfTt2YXIgRUo9c2ZiKEJ2ZSwnQWJzdHJhY3RNYXAvMScsMjY2KTtmZWIoNTQxLDEsQXZlLGJsYik7Xy5OYj1mdW5jdGlvbiBjbGIoYSl7WnRiKHRoaXMsYSl9O18uT2I9ZnVuY3Rpb24gZGxiKCl7cmV0dXJuIHRoaXMuYS5PYigpfTtfLlBiPWZ1bmN0aW9uIGVsYigpe3ZhciBhO3JldHVybiBhPVJEKHRoaXMuYS5QYigpLDQ0KSxhLmxkKCl9O18uUWI9ZnVuY3Rpb24gZmxiKCl7dGhpcy5hLlFiKCl9O3ZhciBESj1zZmIoQnZlLCdBYnN0cmFjdE1hcC8xLzEnLDU0MSk7ZmViKDIzMSwzMSxEdmUsZ2xiKTtfLiRiPWZ1bmN0aW9uIGhsYigpe3RoaXMuYS4kYigpfTtfLkhjPWZ1bmN0aW9uIGlsYihhKXtyZXR1cm4gdGhpcy5hLnVjKGEpfTtfLktjPWZ1bmN0aW9uIGpsYigpe3ZhciBhO3JldHVybiBhPXRoaXMuYS52YygpLktjKCksbmV3IGxsYihhKX07Xy5nYz1mdW5jdGlvbiBrbGIoKXtyZXR1cm4gdGhpcy5hLmdjKCl9O3ZhciBHSj1zZmIoQnZlLCdBYnN0cmFjdE1hcC8yJywyMzEpO2ZlYigzMDEsMSxBdmUsbGxiKTtfLk5iPWZ1bmN0aW9uIG1sYihhKXtadGIodGhpcyxhKX07Xy5PYj1mdW5jdGlvbiBubGIoKXtyZXR1cm4gdGhpcy5hLk9iKCl9O18uUGI9ZnVuY3Rpb24gb2xiKCl7dmFyIGE7cmV0dXJuIGE9UkQodGhpcy5hLlBiKCksNDQpLGEubWQoKX07Xy5RYj1mdW5jdGlvbiBwbGIoKXt0aGlzLmEuUWIoKX07dmFyIEZKPXNmYihCdmUsJ0Fic3RyYWN0TWFwLzIvMScsMzAxKTtmZWIoNDk0LDEsezQ5NDoxLDQ0OjF9KTtfLkZiPWZ1bmN0aW9uIHJsYihhKXt2YXIgYjtpZighWkQoYSw0NCkpe3JldHVybiBmYWxzZX1iPVJEKGEsNDQpO3JldHVybiBGdmIodGhpcy5kLGIubGQoKSkmJkZ2Yih0aGlzLmUsYi5tZCgpKX07Xy5sZD1mdW5jdGlvbiBzbGIoKXtyZXR1cm4gdGhpcy5kfTtfLm1kPWZ1bmN0aW9uIHRsYigpe3JldHVybiB0aGlzLmV9O18uSGI9ZnVuY3Rpb24gdWxiKCl7cmV0dXJuIEd2Yih0aGlzLmQpXkd2Yih0aGlzLmUpfTtfLm5kPWZ1bmN0aW9uIHZsYihhKXtyZXR1cm4gcWxiKHRoaXMsYSl9O18uSWI9ZnVuY3Rpb24gd2xiKCl7cmV0dXJuIHRoaXMuZCsnPScrdGhpcy5lfTt2YXIgSEo9c2ZiKEJ2ZSwnQWJzdHJhY3RNYXAvQWJzdHJhY3RFbnRyeScsNDk0KTtmZWIoMzk3LDQ5NCx7NDk0OjEsMzk3OjEsNDQ6MX0seGxiKTt2YXIgSUo9c2ZiKEJ2ZSwnQWJzdHJhY3RNYXAvU2ltcGxlRW50cnknLDM5Nyk7ZmViKDIwODIsMSxBeGUpO18uRmI9ZnVuY3Rpb24geWxiKGEpe3ZhciBiO2lmKCFaRChhLDQ0KSl7cmV0dXJuIGZhbHNlfWI9UkQoYSw0NCk7cmV0dXJuIEZ2Yih0aGlzLmxkKCksYi5sZCgpKSYmRnZiKHRoaXMubWQoKSxiLm1kKCkpfTtfLkhiPWZ1bmN0aW9uIHpsYigpe3JldHVybiBHdmIodGhpcy5sZCgpKV5HdmIodGhpcy5tZCgpKX07Xy5JYj1mdW5jdGlvbiBBbGIoKXtyZXR1cm4gdGhpcy5sZCgpKyc9Jyt0aGlzLm1kKCl9O3ZhciBKSj1zZmIoQnZlLEx2ZSwyMDgyKTtmZWIoMjA5MCwyMDY1LEd2ZSk7Xy5YYz1mdW5jdGlvbiBEbGIoYSl7cmV0dXJuIFZkKHRoaXMuRWUoYSkpfTtfLnRjPWZ1bmN0aW9uIEVsYihhKXtyZXR1cm4gQmxiKHRoaXMsYSl9O18uX2I9ZnVuY3Rpb24gRmxiKGEpe3JldHVybiBDbGIodGhpcyxhKX07Xy52Yz1mdW5jdGlvbiBHbGIoKXtyZXR1cm4gbmV3IFBsYih0aGlzKX07Xy5UYz1mdW5jdGlvbiBIbGIoKXtyZXR1cm4gS2xiKHRoaXMuR2UoKSl9O18uWWM9ZnVuY3Rpb24gSWxiKGEpe3JldHVybiBWZCh0aGlzLkhlKGEpKX07Xy54Yz1mdW5jdGlvbiBKbGIoYSl7dmFyIGI7Yj1hO3JldHVybiBXZCh0aGlzLkZlKGIpKX07Xy4kYz1mdW5jdGlvbiBMbGIoYSl7cmV0dXJuIFZkKHRoaXMuSWUoYSkpfTtfLmVjPWZ1bmN0aW9uIE1sYigpe3JldHVybiBuZXcgVWxiKHRoaXMpfTtfLlZjPWZ1bmN0aW9uIE5sYigpe3JldHVybiBLbGIodGhpcy5KZSgpKX07Xy5fYz1mdW5jdGlvbiBPbGIoYSl7cmV0dXJuIFZkKHRoaXMuS2UoYSkpfTt2YXIgT0o9c2ZiKEJ2ZSwnQWJzdHJhY3ROYXZpZ2FibGVNYXAnLDIwOTApO2ZlYig2MjksRXZlLEZ2ZSxQbGIpO18uSGM9ZnVuY3Rpb24gUWxiKGEpe3JldHVybiBaRChhLDQ0KSYmQmxiKHRoaXMuYixSRChhLDQ0KSl9O18uS2M9ZnVuY3Rpb24gUmxiKCl7cmV0dXJuIHRoaXMuYi5EZSgpfTtfLk1jPWZ1bmN0aW9uIFNsYihhKXt2YXIgYjtpZihaRChhLDQ0KSl7Yj1SRChhLDQ0KTtyZXR1cm4gdGhpcy5iLkxlKGIpfXJldHVybiBmYWxzZX07Xy5nYz1mdW5jdGlvbiBUbGIoKXtyZXR1cm4gdGhpcy5iLmdjKCl9O3ZhciBMSj1zZmIoQnZlLCdBYnN0cmFjdE5hdmlnYWJsZU1hcC9FbnRyeVNldCcsNjI5KTtmZWIoMTE0NixFdmUsSXZlLFVsYik7Xy5OYz1mdW5jdGlvbiAkbGIoKXtyZXR1cm4gbmV3ICR3Yih0aGlzKX07Xy4kYj1mdW5jdGlvbiBWbGIoKXt0aGlzLmEuJGIoKX07Xy5IYz1mdW5jdGlvbiBXbGIoYSl7cmV0dXJuIENsYih0aGlzLmEsYSl9O18uS2M9ZnVuY3Rpb24gWGxiKCl7dmFyIGE7YT10aGlzLmEudmMoKS5iLkRlKCk7cmV0dXJuIG5ldyBfbGIoYSl9O18uTWM9ZnVuY3Rpb24gWWxiKGEpe2lmKENsYih0aGlzLmEsYSkpe3RoaXMuYS5CYyhhKTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O18uZ2M9ZnVuY3Rpb24gWmxiKCl7cmV0dXJuIHRoaXMuYS5nYygpfTt2YXIgTko9c2ZiKEJ2ZSwnQWJzdHJhY3ROYXZpZ2FibGVNYXAvTmF2aWdhYmxlS2V5U2V0JywxMTQ2KTtmZWIoMTE0NywxLEF2ZSxfbGIpO18uTmI9ZnVuY3Rpb24gYW1iKGEpe1p0Yih0aGlzLGEpfTtfLk9iPWZ1bmN0aW9uIGJtYigpe3JldHVybiBBa2IodGhpcy5hLmEpfTtfLlBiPWZ1bmN0aW9uIGNtYigpe3ZhciBhO2E9dnpiKHRoaXMuYSk7cmV0dXJuIGEubGQoKX07Xy5RYj1mdW5jdGlvbiBkbWIoKXt3emIodGhpcy5hKX07dmFyIE1KPXNmYihCdmUsJ0Fic3RyYWN0TmF2aWdhYmxlTWFwL05hdmlnYWJsZUtleVNldC8xJywxMTQ3KTtmZWIoMjEwMywzMSxEdmUpO18uRmM9ZnVuY3Rpb24gZW1iKGEpe3JldHVybiB6RmIobHdiKHRoaXMsYSksQnhlKSx0cnVlfTtfLkdjPWZ1bmN0aW9uIGZtYihhKXt1RmIoYSk7bUZiKGEhPXRoaXMsXCJDYW4ndCBhZGQgYSBxdWV1ZSB0byBpdHNlbGZcIik7cmV0dXJuIHllKHRoaXMsYSl9O18uJGI9ZnVuY3Rpb24gZ21iKCl7d2hpbGUobXdiKHRoaXMpIT1udWxsKTt9O3ZhciBQSj1zZmIoQnZlLCdBYnN0cmFjdFF1ZXVlJywyMTAzKTtmZWIoMzEwLDMxLHs0OjEsMjA6MSwzMToxLDE2OjF9LHdtYix4bWIpO18uRmM9ZnVuY3Rpb24geW1iKGEpe3JldHVybiBpbWIodGhpcyxhKSx0cnVlfTtfLiRiPWZ1bmN0aW9uIEFtYigpe2ptYih0aGlzKX07Xy5IYz1mdW5jdGlvbiBCbWIoYSl7cmV0dXJuIGttYihuZXcgS21iKHRoaXMpLGEpfTtfLmRjPWZ1bmN0aW9uIENtYigpe3JldHVybiBubWIodGhpcyl9O18uS2M9ZnVuY3Rpb24gRG1iKCl7cmV0dXJuIG5ldyBLbWIodGhpcyl9O18uTWM9ZnVuY3Rpb24gRW1iKGEpe3JldHVybiBxbWIobmV3IEttYih0aGlzKSxhKX07Xy5nYz1mdW5jdGlvbiBGbWIoKXtyZXR1cm4gdGhpcy5jLXRoaXMuYiZ0aGlzLmEubGVuZ3RoLTF9O18uTmM9ZnVuY3Rpb24gR21iKCl7cmV0dXJuIG5ldyBTd2IodGhpcywyNzIpfTtfLlFjPWZ1bmN0aW9uIEhtYihhKXt2YXIgYjtiPXRoaXMuYy10aGlzLmImdGhpcy5hLmxlbmd0aC0xO2EubGVuZ3RoPGImJihhPWNGYihuZXcgQXJyYXkoYiksYSkpO2xtYih0aGlzLGEsYik7YS5sZW5ndGg+YiYmYkQoYSxiLG51bGwpO3JldHVybiBhfTtfLmI9MDtfLmM9MDt2YXIgVEo9c2ZiKEJ2ZSwnQXJyYXlEZXF1ZScsMzEwKTtmZWIoNDU5LDEsQXZlLEttYik7Xy5OYj1mdW5jdGlvbiBMbWIoYSl7WnRiKHRoaXMsYSl9O18uT2I9ZnVuY3Rpb24gTW1iKCl7cmV0dXJuIHRoaXMuYSE9dGhpcy5ifTtfLlBiPWZ1bmN0aW9uIE5tYigpe3JldHVybiBJbWIodGhpcyl9O18uUWI9ZnVuY3Rpb24gT21iKCl7Sm1iKHRoaXMpfTtfLmE9MDtfLmI9MDtfLmM9LTE7dmFyIFNKPXNmYihCdmUsJ0FycmF5RGVxdWUvSXRlcmF0b3JJbXBsJyw0NTkpO2ZlYigxMyw1NixDeGUsYm5iLGNuYixkbmIpO18uYmQ9ZnVuY3Rpb24gZW5iKGEsYil7UW1iKHRoaXMsYSxiKX07Xy5GYz1mdW5jdGlvbiBmbmIoYSl7cmV0dXJuIFJtYih0aGlzLGEpfTtfLmNkPWZ1bmN0aW9uIGduYihhLGIpe3JldHVybiBTbWIodGhpcyxhLGIpfTtfLkdjPWZ1bmN0aW9uIGhuYihhKXtyZXR1cm4gVG1iKHRoaXMsYSl9O18uJGI9ZnVuY3Rpb24gaW5iKCl7YUZiKHRoaXMuYywwKX07Xy5IYz1mdW5jdGlvbiBqbmIoYSl7cmV0dXJuIFdtYih0aGlzLGEsMCkhPS0xfTtfLkpjPWZ1bmN0aW9uIGtuYihhKXtVbWIodGhpcyxhKX07Xy5YYj1mdW5jdGlvbiBsbmIoYSl7cmV0dXJuIFZtYih0aGlzLGEpfTtfLmRkPWZ1bmN0aW9uIG1uYihhKXtyZXR1cm4gV21iKHRoaXMsYSwwKX07Xy5kYz1mdW5jdGlvbiBubmIoKXtyZXR1cm4gdGhpcy5jLmxlbmd0aD09MH07Xy5LYz1mdW5jdGlvbiBvbmIoKXtyZXR1cm4gbmV3IEFuYih0aGlzKX07Xy5nZD1mdW5jdGlvbiBwbmIoYSl7cmV0dXJuIFhtYih0aGlzLGEpfTtfLk1jPWZ1bmN0aW9uIHFuYihhKXtyZXR1cm4gWW1iKHRoaXMsYSl9O18uY2U9ZnVuY3Rpb24gcm5iKGEsYil7Wm1iKHRoaXMsYSxiKX07Xy5oZD1mdW5jdGlvbiBzbmIoYSxiKXtyZXR1cm4gJG1iKHRoaXMsYSxiKX07Xy5nYz1mdW5jdGlvbiB0bmIoKXtyZXR1cm4gdGhpcy5jLmxlbmd0aH07Xy5qZD1mdW5jdGlvbiB1bmIoYSl7X21iKHRoaXMsYSl9O18uUGM9ZnVuY3Rpb24gdm5iKCl7cmV0dXJuIFVFYih0aGlzLmMpfTtfLlFjPWZ1bmN0aW9uIHduYihhKXtyZXR1cm4gYW5iKHRoaXMsYSl9O3ZhciBWSj1zZmIoQnZlLCdBcnJheUxpc3QnLDEzKTtmZWIoNywxLEF2ZSxBbmIpO18uTmI9ZnVuY3Rpb24gQm5iKGEpe1p0Yih0aGlzLGEpfTtfLk9iPWZ1bmN0aW9uIENuYigpe3JldHVybiB4bmIodGhpcyl9O18uUGI9ZnVuY3Rpb24gRG5iKCl7cmV0dXJuIHluYih0aGlzKX07Xy5RYj1mdW5jdGlvbiBFbmIoKXt6bmIodGhpcyl9O18uYT0wO18uYj0tMTt2YXIgVUo9c2ZiKEJ2ZSwnQXJyYXlMaXN0LzEnLDcpO2ZlYigyMTEyLCR3bmQuRnVuY3Rpb24se30saW9iKTtfLk1lPWZ1bmN0aW9uIGpvYihhLGIpe3JldHVybiBRZmIoYSxiKX07ZmViKDE1MSw1NixEeGUsbW9iKTtfLkhjPWZ1bmN0aW9uIG5vYihhKXtyZXR1cm4gU3QodGhpcyxhKSE9LTF9O18uSmM9ZnVuY3Rpb24gb29iKGEpe3ZhciBiLGMsZCxlO3VGYihhKTtmb3IoYz10aGlzLmEsZD0wLGU9Yy5sZW5ndGg7ZDxlOysrZCl7Yj1jW2RdO2EuQ2QoYil9fTtfLlhiPWZ1bmN0aW9uIHBvYihhKXtyZXR1cm4ga29iKHRoaXMsYSl9O18uaGQ9ZnVuY3Rpb24gcW9iKGEsYil7dmFyIGM7Yz0odEZiKGEsdGhpcy5hLmxlbmd0aCksdGhpcy5hW2FdKTtiRCh0aGlzLmEsYSxiKTtyZXR1cm4gY307Xy5nYz1mdW5jdGlvbiByb2IoKXtyZXR1cm4gdGhpcy5hLmxlbmd0aH07Xy5qZD1mdW5jdGlvbiBzb2IoYSl7WW5iKHRoaXMuYSx0aGlzLmEubGVuZ3RoLGEpfTtfLlBjPWZ1bmN0aW9uIHRvYigpe3JldHVybiBsb2IodGhpcywkQyhqSixydmUsMSx0aGlzLmEubGVuZ3RoLDUsMSkpfTtfLlFjPWZ1bmN0aW9uIHVvYihhKXtyZXR1cm4gbG9iKHRoaXMsYSl9O3ZhciBXSj1zZmIoQnZlLCdBcnJheXMvQXJyYXlMaXN0JywxNTEpO3ZhciB2b2Isd29iLHhvYjtmZWIoOTUzLDU2LER4ZSxKb2IpO18uSGM9ZnVuY3Rpb24gS29iKGEpe3JldHVybiBmYWxzZX07Xy5YYj1mdW5jdGlvbiBMb2IoYSl7cmV0dXJuIElvYihhKX07Xy5LYz1mdW5jdGlvbiBNb2IoKXtyZXR1cm4geW9iKCksUW9iKCksUG9ifTtfLmVkPWZ1bmN0aW9uIE5vYigpe3JldHVybiB5b2IoKSxRb2IoKSxQb2J9O18uZ2M9ZnVuY3Rpb24gT29iKCl7cmV0dXJuIDB9O3ZhciBZSj1zZmIoQnZlLCdDb2xsZWN0aW9ucy9FbXB0eUxpc3QnLDk1Myk7ZmViKDk1NCwxLEp2ZSxSb2IpO18uTmI9ZnVuY3Rpb24gVG9iKGEpe1p0Yih0aGlzLGEpfTtfLlJiPWZ1bmN0aW9uIFNvYihhKXt0aHJvdyBBZGIobmV3IGppYil9O18uT2I9ZnVuY3Rpb24gVW9iKCl7cmV0dXJuIGZhbHNlfTtfLlNiPWZ1bmN0aW9uIFZvYigpe3JldHVybiBmYWxzZX07Xy5QYj1mdW5jdGlvbiBXb2IoKXt0aHJvdyBBZGIobmV3IER2Yil9O18uVGI9ZnVuY3Rpb24gWG9iKCl7cmV0dXJuIDB9O18uVWI9ZnVuY3Rpb24gWW9iKCl7dGhyb3cgQWRiKG5ldyBEdmIpfTtfLlZiPWZ1bmN0aW9uIFpvYigpe3JldHVybiAtMX07Xy5RYj1mdW5jdGlvbiAkb2IoKXt0aHJvdyBBZGIobmV3IGNnYil9O18uV2I9ZnVuY3Rpb24gX29iKGEpe3Rocm93IEFkYihuZXcgY2diKX07dmFyIFBvYjt2YXIgWEo9c2ZiKEJ2ZSwnQ29sbGVjdGlvbnMvRW1wdHlMaXN0SXRlcmF0b3InLDk1NCk7ZmViKDk1NiwyMDY1LCR2ZSxhcGIpO18uX2I9ZnVuY3Rpb24gYnBiKGEpe3JldHVybiBmYWxzZX07Xy51Yz1mdW5jdGlvbiBjcGIoYSl7cmV0dXJuIGZhbHNlfTtfLnZjPWZ1bmN0aW9uIGRwYigpe3JldHVybiB5b2IoKSx4b2J9O18ueGM9ZnVuY3Rpb24gZXBiKGEpe3JldHVybiBudWxsfTtfLmVjPWZ1bmN0aW9uIGZwYigpe3JldHVybiB5b2IoKSx4b2J9O18uZ2M9ZnVuY3Rpb24gZ3BiKCl7cmV0dXJuIDB9O18uQ2M9ZnVuY3Rpb24gaHBiKCl7cmV0dXJuIHlvYigpLHZvYn07dmFyIFpKPXNmYihCdmUsJ0NvbGxlY3Rpb25zL0VtcHR5TWFwJyw5NTYpO2ZlYig5NTUsRXZlLGF3ZSxpcGIpO18uSGM9ZnVuY3Rpb24ganBiKGEpe3JldHVybiBmYWxzZX07Xy5LYz1mdW5jdGlvbiBrcGIoKXtyZXR1cm4geW9iKCksUW9iKCksUG9ifTtfLmdjPWZ1bmN0aW9uIGxwYigpe3JldHVybiAwfTt2YXIgJEo9c2ZiKEJ2ZSwnQ29sbGVjdGlvbnMvRW1wdHlTZXQnLDk1NSk7ZmViKDYwOCw1Nix7MzoxLDIwOjEsMzE6MSw1NjoxLDE2OjEsMTU6MX0sbXBiKTtfLkhjPWZ1bmN0aW9uIG5wYihhKXtyZXR1cm4gRnZiKHRoaXMuYSxhKX07Xy5YYj1mdW5jdGlvbiBvcGIoYSl7dEZiKGEsMSk7cmV0dXJuIHRoaXMuYX07Xy5nYz1mdW5jdGlvbiBwcGIoKXtyZXR1cm4gMX07dmFyIF9KPXNmYihCdmUsJ0NvbGxlY3Rpb25zL1NpbmdsZXRvbkxpc3QnLDYwOCk7ZmViKDM4NCwxLFd2ZSx4cGIpO18uSmM9ZnVuY3Rpb24gRHBiKGEpe3hnYih0aGlzLGEpfTtfLkxjPWZ1bmN0aW9uIEdwYigpe3JldHVybiBuZXcgU0RiKG51bGwsdGhpcy5OYygpKX07Xy5OYz1mdW5jdGlvbiBKcGIoKXtyZXR1cm4gbmV3IFN3Yih0aGlzLDApfTtfLk9jPWZ1bmN0aW9uIEtwYigpe3JldHVybiBuZXcgU0RiKG51bGwsdGhpcy5OYygpKX07Xy5GYz1mdW5jdGlvbiB5cGIoYSl7cmV0dXJuIHFwYigpfTtfLkdjPWZ1bmN0aW9uIHpwYihhKXtyZXR1cm4gcnBiKCl9O18uJGI9ZnVuY3Rpb24gQXBiKCl7c3BiKCl9O18uSGM9ZnVuY3Rpb24gQnBiKGEpe3JldHVybiB0cGIodGhpcyxhKX07Xy5JYz1mdW5jdGlvbiBDcGIoYSl7cmV0dXJuIHVwYih0aGlzLGEpfTtfLmRjPWZ1bmN0aW9uIEVwYigpe3JldHVybiB0aGlzLmIuZGMoKX07Xy5LYz1mdW5jdGlvbiBGcGIoKXtyZXR1cm4gbmV3IFBwYih0aGlzLmIuS2MoKSl9O18uTWM9ZnVuY3Rpb24gSHBiKGEpe3JldHVybiB2cGIoKX07Xy5nYz1mdW5jdGlvbiBJcGIoKXtyZXR1cm4gdGhpcy5iLmdjKCl9O18uUGM9ZnVuY3Rpb24gTHBiKCl7cmV0dXJuIHRoaXMuYi5QYygpfTtfLlFjPWZ1bmN0aW9uIE1wYihhKXtyZXR1cm4gd3BiKHRoaXMsYSl9O18uSWI9ZnVuY3Rpb24gTnBiKCl7cmV0dXJuIGplYih0aGlzLmIpfTt2YXIgYks9c2ZiKEJ2ZSwnQ29sbGVjdGlvbnMvVW5tb2RpZmlhYmxlQ29sbGVjdGlvbicsMzg0KTtmZWIoMzgzLDEsQXZlLFBwYik7Xy5OYj1mdW5jdGlvbiBRcGIoYSl7WnRiKHRoaXMsYSl9O18uT2I9ZnVuY3Rpb24gUnBiKCl7cmV0dXJuIHRoaXMuYi5PYigpfTtfLlBiPWZ1bmN0aW9uIFNwYigpe3JldHVybiB0aGlzLmIuUGIoKX07Xy5RYj1mdW5jdGlvbiBUcGIoKXtPcGIoKX07dmFyIGFLPXNmYihCdmUsJ0NvbGxlY3Rpb25zL1VubW9kaWZpYWJsZUNvbGxlY3Rpb25JdGVyYXRvcicsMzgzKTtmZWIoNTQwLDM4NCxFeGUsVXBiKTtfLk5jPWZ1bmN0aW9uIGZxYigpe3JldHVybiBuZXcgU3diKHRoaXMsMTYpfTtfLmJkPWZ1bmN0aW9uIFZwYihhLGIpe3Rocm93IEFkYihuZXcgamliKX07Xy5jZD1mdW5jdGlvbiBXcGIoYSxiKXt0aHJvdyBBZGIobmV3IGppYil9O18uRmI9ZnVuY3Rpb24gWHBiKGEpe3JldHVybiBwYih0aGlzLmEsYSl9O18uWGI9ZnVuY3Rpb24gWXBiKGEpe3JldHVybiB0aGlzLmEuWGIoYSl9O18uSGI9ZnVuY3Rpb24gWnBiKCl7cmV0dXJuIHRiKHRoaXMuYSl9O18uZGQ9ZnVuY3Rpb24gJHBiKGEpe3JldHVybiB0aGlzLmEuZGQoYSl9O18uZGM9ZnVuY3Rpb24gX3BiKCl7cmV0dXJuIHRoaXMuYS5kYygpfTtfLmVkPWZ1bmN0aW9uIGFxYigpe3JldHVybiBuZXcgaHFiKHRoaXMuYS5mZCgwKSl9O18uZmQ9ZnVuY3Rpb24gYnFiKGEpe3JldHVybiBuZXcgaHFiKHRoaXMuYS5mZChhKSl9O18uZ2Q9ZnVuY3Rpb24gY3FiKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5oZD1mdW5jdGlvbiBkcWIoYSxiKXt0aHJvdyBBZGIobmV3IGppYil9O18uamQ9ZnVuY3Rpb24gZXFiKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5rZD1mdW5jdGlvbiBncWIoYSxiKXtyZXR1cm4gbmV3IFVwYih0aGlzLmEua2QoYSxiKSl9O3ZhciBkSz1zZmIoQnZlLCdDb2xsZWN0aW9ucy9Vbm1vZGlmaWFibGVMaXN0Jyw1NDApO2ZlYig3MDUsMzgzLEp2ZSxocWIpO18uUWI9ZnVuY3Rpb24gbnFiKCl7T3BiKCl9O18uUmI9ZnVuY3Rpb24gaXFiKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5TYj1mdW5jdGlvbiBqcWIoKXtyZXR1cm4gdGhpcy5hLlNiKCl9O18uVGI9ZnVuY3Rpb24ga3FiKCl7cmV0dXJuIHRoaXMuYS5UYigpfTtfLlViPWZ1bmN0aW9uIGxxYigpe3JldHVybiB0aGlzLmEuVWIoKX07Xy5WYj1mdW5jdGlvbiBtcWIoKXtyZXR1cm4gdGhpcy5hLlZiKCl9O18uV2I9ZnVuY3Rpb24gb3FiKGEpe3Rocm93IEFkYihuZXcgamliKX07dmFyIGNLPXNmYihCdmUsJ0NvbGxlY3Rpb25zL1VubW9kaWZpYWJsZUxpc3RJdGVyYXRvcicsNzA1KTtmZWIoNjA5LDEsQ3ZlLHVxYik7Xy53Yz1mdW5jdGlvbiBBcWIoYSl7QnZiKHRoaXMsYSl9O18ueWM9ZnVuY3Rpb24gRnFiKGEsYixjKXtyZXR1cm4gQ3ZiKHRoaXMsYSxiLGMpfTtfLiRiPWZ1bmN0aW9uIHZxYigpe3Rocm93IEFkYihuZXcgamliKX07Xy5fYj1mdW5jdGlvbiB3cWIoYSl7cmV0dXJuIHRoaXMuYy5fYihhKX07Xy51Yz1mdW5jdGlvbiB4cWIoYSl7cmV0dXJuIHBxYih0aGlzLGEpfTtfLnZjPWZ1bmN0aW9uIHlxYigpe3JldHVybiBxcWIodGhpcyl9O18uRmI9ZnVuY3Rpb24genFiKGEpe3JldHVybiBycWIodGhpcyxhKX07Xy54Yz1mdW5jdGlvbiBCcWIoYSl7cmV0dXJuIHRoaXMuYy54YyhhKX07Xy5IYj1mdW5jdGlvbiBDcWIoKXtyZXR1cm4gdGIodGhpcy5jKX07Xy5kYz1mdW5jdGlvbiBEcWIoKXtyZXR1cm4gdGhpcy5jLmRjKCl9O18uZWM9ZnVuY3Rpb24gRXFiKCl7cmV0dXJuIHNxYih0aGlzKX07Xy56Yz1mdW5jdGlvbiBHcWIoYSxiKXt0aHJvdyBBZGIobmV3IGppYil9O18uQmM9ZnVuY3Rpb24gSHFiKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5nYz1mdW5jdGlvbiBJcWIoKXtyZXR1cm4gdGhpcy5jLmdjKCl9O18uSWI9ZnVuY3Rpb24gSnFiKCl7cmV0dXJuIGplYih0aGlzLmMpfTtfLkNjPWZ1bmN0aW9uIEtxYigpe3JldHVybiB0cWIodGhpcyl9O3ZhciBoSz1zZmIoQnZlLCdDb2xsZWN0aW9ucy9Vbm1vZGlmaWFibGVNYXAnLDYwOSk7ZmViKDM5NiwzODQsX3ZlLExxYik7Xy5OYz1mdW5jdGlvbiBPcWIoKXtyZXR1cm4gbmV3IFN3Yih0aGlzLDEpfTtfLkZiPWZ1bmN0aW9uIE1xYihhKXtyZXR1cm4gcGIodGhpcy5iLGEpfTtfLkhiPWZ1bmN0aW9uIE5xYigpe3JldHVybiB0Yih0aGlzLmIpfTt2YXIgaks9c2ZiKEJ2ZSwnQ29sbGVjdGlvbnMvVW5tb2RpZmlhYmxlU2V0JywzOTYpO2ZlYig5NTcsMzk2LF92ZSxTcWIpO18uSGM9ZnVuY3Rpb24gVHFiKGEpe3JldHVybiBQcWIodGhpcyxhKX07Xy5JYz1mdW5jdGlvbiBVcWIoYSl7cmV0dXJuIHRoaXMuYi5JYyhhKX07Xy5LYz1mdW5jdGlvbiBWcWIoKXt2YXIgYTthPXRoaXMuYi5LYygpO3JldHVybiBuZXcgWXFiKGEpfTtfLlBjPWZ1bmN0aW9uIFdxYigpe3ZhciBhO2E9dGhpcy5iLlBjKCk7UnFiKGEsYS5sZW5ndGgpO3JldHVybiBhfTtfLlFjPWZ1bmN0aW9uIFhxYihhKXtyZXR1cm4gUXFiKHRoaXMsYSl9O3ZhciBnSz1zZmIoQnZlLCdDb2xsZWN0aW9ucy9Vbm1vZGlmaWFibGVNYXAvVW5tb2RpZmlhYmxlRW50cnlTZXQnLDk1Nyk7ZmViKDk1OCwxLEF2ZSxZcWIpO18uTmI9ZnVuY3Rpb24gWnFiKGEpe1p0Yih0aGlzLGEpfTtfLlBiPWZ1bmN0aW9uIF9xYigpe3JldHVybiBuZXcgYnJiKFJEKHRoaXMuYS5QYigpLDQ0KSl9O18uT2I9ZnVuY3Rpb24gJHFiKCl7cmV0dXJuIHRoaXMuYS5PYigpfTtfLlFiPWZ1bmN0aW9uIGFyYigpe3Rocm93IEFkYihuZXcgamliKX07dmFyIGVLPXNmYihCdmUsJ0NvbGxlY3Rpb25zL1VubW9kaWZpYWJsZU1hcC9Vbm1vZGlmaWFibGVFbnRyeVNldC8xJyw5NTgpO2ZlYig3MDMsMSxBeGUsYnJiKTtfLkZiPWZ1bmN0aW9uIGNyYihhKXtyZXR1cm4gdGhpcy5hLkZiKGEpfTtfLmxkPWZ1bmN0aW9uIGRyYigpe3JldHVybiB0aGlzLmEubGQoKX07Xy5tZD1mdW5jdGlvbiBlcmIoKXtyZXR1cm4gdGhpcy5hLm1kKCl9O18uSGI9ZnVuY3Rpb24gZnJiKCl7cmV0dXJuIHRoaXMuYS5IYigpfTtfLm5kPWZ1bmN0aW9uIGdyYihhKXt0aHJvdyBBZGIobmV3IGppYil9O18uSWI9ZnVuY3Rpb24gaHJiKCl7cmV0dXJuIGplYih0aGlzLmEpfTt2YXIgZks9c2ZiKEJ2ZSwnQ29sbGVjdGlvbnMvVW5tb2RpZmlhYmxlTWFwL1VubW9kaWZpYWJsZUVudHJ5U2V0L1VubW9kaWZpYWJsZUVudHJ5Jyw3MDMpO2ZlYig2MTAsNTQwLHsyMDoxLDE2OjEsMTU6MSw1OToxfSxpcmIpO3ZhciBpSz1zZmIoQnZlLCdDb2xsZWN0aW9ucy9Vbm1vZGlmaWFibGVSYW5kb21BY2Nlc3NMaXN0Jyw2MTApO2ZlYig3MDQsMzk2LGJ3ZSxqcmIpO18uTmM9ZnVuY3Rpb24gbXJiKCl7cmV0dXJuIG5ldyAkd2IodGhpcyl9O18uRmI9ZnVuY3Rpb24ga3JiKGEpe3JldHVybiBwYih0aGlzLmEsYSl9O18uSGI9ZnVuY3Rpb24gbHJiKCl7cmV0dXJuIHRiKHRoaXMuYSl9O3ZhciBrSz1zZmIoQnZlLCdDb2xsZWN0aW9ucy9Vbm1vZGlmaWFibGVTb3J0ZWRTZXQnLDcwNCk7ZmViKDg1OCwxLEZ4ZSxucmIpO18uTmU9ZnVuY3Rpb24gb3JiKGEsYil7dmFyIGM7cmV0dXJuIGM9eWdjKFJEKGEsMTIpLFJEKGIsMTIpKSxjIT0wP2M6emdjKFJEKGEsMTIpLFJEKGIsMTIpKX07Xy5GYj1mdW5jdGlvbiBwcmIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIHFyYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgbEs9c2ZiKEJ2ZSwnQ29tcGFyYXRvci9sYW1iZGEkMCRUeXBlJyw4NTgpO3ZhciBycmIsc3JiLHRyYjtmZWIoNzY5LDEsRnhlLHdyYik7Xy5OZT1mdW5jdGlvbiB4cmIoYSxiKXtyZXR1cm4gdnJiKFJEKGEsMzQpLFJEKGIsMzQpKX07Xy5GYj1mdW5jdGlvbiB5cmIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIHpyYigpe3JldHVybiB1cmIoKSx0cmJ9O3ZhciBtSz1zZmIoQnZlLCdDb21wYXJhdG9ycy9OYXR1cmFsT3JkZXJDb21wYXJhdG9yJyw3NjkpO2ZlYigxMjI2LDEsRnhlLEJyYik7Xy5OZT1mdW5jdGlvbiBDcmIoYSxiKXtyZXR1cm4gQXJiKFJEKGEsMzQpLFJEKGIsMzQpKX07Xy5GYj1mdW5jdGlvbiBEcmIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIEVyYigpe3JldHVybiB1cmIoKSxzcmJ9O3ZhciBuSz1zZmIoQnZlLCdDb21wYXJhdG9ycy9SZXZlcnNlTmF0dXJhbE9yZGVyQ29tcGFyYXRvcicsMTIyNik7ZmViKDUyLDEsRnhlLEZyYik7Xy5GYj1mdW5jdGlvbiBIcmIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk5lPWZ1bmN0aW9uIEdyYihhLGIpe3JldHVybiB0aGlzLmEuTmUoYixhKX07Xy5PZT1mdW5jdGlvbiBJcmIoKXtyZXR1cm4gdGhpcy5hfTt2YXIgb0s9c2ZiKEJ2ZSwnQ29tcGFyYXRvcnMvUmV2ZXJzZWRDb21wYXJhdG9yJyw1Mik7ZmViKDE3NSw2Myxzd2UsSnJiKTt2YXIgcEs9c2ZiKEJ2ZSwnQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbicsMTc1KTt2YXIgS3JiLExyYjtmZWIoMTk0OCwxLEd4ZSxQcmIpO18uUGU9ZnVuY3Rpb24gUXJiKGEpe05yYih0aGlzLGEpfTtfLkliPWZ1bmN0aW9uIFJyYigpe3JldHVybiAnRG91YmxlU3VtbWFyeVN0YXRpc3RpY3NbY291bnQgPSAnK1pkYih0aGlzLmEpKycsIGF2ZyA9ICcrKElkYih0aGlzLmEsMCk/T3JiKHRoaXMpL1hkYih0aGlzLmEpOjApKycsIG1pbiA9ICcrdGhpcy5jKycsIG1heCA9ICcrdGhpcy5iKycsIHN1bSA9ICcrT3JiKHRoaXMpKyddJ307Xy5hPTA7Xy5iPXB4ZTtfLmM9b3hlO18uZD0wO18uZT0wO18uZj0wO3ZhciBySz1zZmIoQnZlLCdEb3VibGVTdW1tYXJ5U3RhdGlzdGljcycsMTk0OCk7ZmViKDE4NjgsNjMsc3dlLFNyYik7dmFyIHNLPXNmYihCdmUsJ0VtcHR5U3RhY2tFeGNlcHRpb24nLDE4NjgpO2ZlYig0NjEsMjA2NSxDdmUsWnJiKTtfLnpjPWZ1bmN0aW9uIGRzYihhLGIpe3JldHVybiBYcmIodGhpcyxhLGIpfTtfLiRiPWZ1bmN0aW9uICRyYigpe1RyYih0aGlzKX07Xy5fYj1mdW5jdGlvbiBfcmIoYSl7cmV0dXJuIFVyYih0aGlzLGEpfTtfLnVjPWZ1bmN0aW9uIGFzYihhKXt2YXIgYixjO2ZvcihjPW5ldyBPc2IodGhpcy5hKTtjLmE8Yy5jLmEubGVuZ3RoOyl7Yj1Oc2IoYyk7aWYoRnZiKGEsdGhpcy5iW2IuZ10pKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfTtfLnZjPWZ1bmN0aW9uIGJzYigpe3JldHVybiBuZXcgaHNiKHRoaXMpfTtfLnhjPWZ1bmN0aW9uIGNzYihhKXtyZXR1cm4gVnJiKHRoaXMsYSl9O18uQmM9ZnVuY3Rpb24gZXNiKGEpe3JldHVybiBZcmIodGhpcyxhKX07Xy5nYz1mdW5jdGlvbiBmc2IoKXtyZXR1cm4gdGhpcy5hLmN9O3ZhciB3Sz1zZmIoQnZlLCdFbnVtTWFwJyw0NjEpO2ZlYigxMzQwLEV2ZSxGdmUsaHNiKTtfLiRiPWZ1bmN0aW9uIGlzYigpe1RyYih0aGlzLmEpfTtfLkhjPWZ1bmN0aW9uIGpzYihhKXtyZXR1cm4gZ3NiKHRoaXMsYSl9O18uS2M9ZnVuY3Rpb24ga3NiKCl7cmV0dXJuIG5ldyBuc2IodGhpcy5hKX07Xy5NYz1mdW5jdGlvbiBsc2IoYSl7dmFyIGI7aWYoZ3NiKHRoaXMsYSkpe2I9UkQoYSw0NCkubGQoKTtZcmIodGhpcy5hLGIpO3JldHVybiB0cnVlfXJldHVybiBmYWxzZX07Xy5nYz1mdW5jdGlvbiBtc2IoKXtyZXR1cm4gdGhpcy5hLmEuY307dmFyIHVLPXNmYihCdmUsJ0VudW1NYXAvRW50cnlTZXQnLDEzNDApO2ZlYigxMzQxLDEsQXZlLG5zYik7Xy5OYj1mdW5jdGlvbiBvc2IoYSl7WnRiKHRoaXMsYSl9O18uUGI9ZnVuY3Rpb24gcXNiKCl7cmV0dXJuIHRoaXMuYj1Oc2IodGhpcy5hKSxuZXcgc3NiKHRoaXMuYyx0aGlzLmIpfTtfLk9iPWZ1bmN0aW9uIHBzYigpe3JldHVybiBNc2IodGhpcy5hKX07Xy5RYj1mdW5jdGlvbiByc2IoKXt5RmIoISF0aGlzLmIpO1lyYih0aGlzLmMsdGhpcy5iKTt0aGlzLmI9bnVsbH07dmFyIHRLPXNmYihCdmUsJ0VudW1NYXAvRW50cnlTZXRJdGVyYXRvcicsMTM0MSk7ZmViKDEzNDIsMjA4MixBeGUsc3NiKTtfLmxkPWZ1bmN0aW9uIHRzYigpe3JldHVybiB0aGlzLmF9O18ubWQ9ZnVuY3Rpb24gdXNiKCl7cmV0dXJuIHRoaXMuYi5iW3RoaXMuYS5nXX07Xy5uZD1mdW5jdGlvbiB2c2IoYSl7cmV0dXJuIF9FYih0aGlzLmIuYix0aGlzLmEuZyxhKX07dmFyIHZLPXNmYihCdmUsJ0VudW1NYXAvTWFwRW50cnknLDEzNDIpO2ZlYigxODEsRXZlLHsyMDoxLDMxOjEsMTY6MSwxODE6MSwyMToxfSk7dmFyIHpLPXNmYihCdmUsJ0VudW1TZXQnLDE4MSk7ZmViKDE2MiwxODEsezIwOjEsMzE6MSwxNjoxLDE4MToxLDE2MjoxLDIxOjF9LEZzYik7Xy5GYz1mdW5jdGlvbiBHc2IoYSl7cmV0dXJuIHpzYih0aGlzLFJEKGEsMjIpKX07Xy5IYz1mdW5jdGlvbiBIc2IoYSl7cmV0dXJuIEJzYih0aGlzLGEpfTtfLktjPWZ1bmN0aW9uIElzYigpe3JldHVybiBuZXcgT3NiKHRoaXMpfTtfLk1jPWZ1bmN0aW9uIEpzYihhKXtyZXR1cm4gRHNiKHRoaXMsYSl9O18uZ2M9ZnVuY3Rpb24gS3NiKCl7cmV0dXJuIHRoaXMuY307Xy5jPTA7dmFyIHlLPXNmYihCdmUsJ0VudW1TZXQvRW51bVNldEltcGwnLDE2Mik7ZmViKDM1NiwxLEF2ZSxPc2IpO18uTmI9ZnVuY3Rpb24gUHNiKGEpe1p0Yih0aGlzLGEpfTtfLlBiPWZ1bmN0aW9uIFJzYigpe3JldHVybiBOc2IodGhpcyl9O18uT2I9ZnVuY3Rpb24gUXNiKCl7cmV0dXJuIE1zYih0aGlzKX07Xy5RYj1mdW5jdGlvbiBTc2IoKXt5RmIodGhpcy5iIT0tMSk7YkQodGhpcy5jLmIsdGhpcy5iLG51bGwpOy0tdGhpcy5jLmM7dGhpcy5iPS0xfTtfLmE9LTE7Xy5iPS0xO3ZhciB4Sz1zZmIoQnZlLCdFbnVtU2V0L0VudW1TZXRJbXBsL0l0ZXJhdG9ySW1wbCcsMzU2KTtmZWIoNDUsNDk4LEh4ZSxUc2IsVXNiLFZzYik7Xy5CZT1mdW5jdGlvbiBXc2IoYSxiKXtyZXR1cm4gZEUoYSk9PT1kRShiKXx8YSE9bnVsbCYmcGIoYSxiKX07Xy5DZT1mdW5jdGlvbiBYc2IoYSl7dmFyIGI7aWYoYT09bnVsbCl7cmV0dXJuIDB9Yj10YihhKTtyZXR1cm4gYnwwfTt2YXIgQUs9c2ZiKEJ2ZSwnSGFzaE1hcCcsNDUpO2ZlYig0OSxFdmUsSXhlLF9zYixhdGIsYnRiKTtfLkZjPWZ1bmN0aW9uIGR0YihhKXtyZXR1cm4gWXNiKHRoaXMsYSl9O18uJGI9ZnVuY3Rpb24gZXRiKCl7dGhpcy5hLiRiKCl9O18uSGM9ZnVuY3Rpb24gZnRiKGEpe3JldHVybiBac2IodGhpcyxhKX07Xy5kYz1mdW5jdGlvbiBndGIoKXtyZXR1cm4gdGhpcy5hLmdjKCk9PTB9O18uS2M9ZnVuY3Rpb24gaHRiKCl7cmV0dXJuIHRoaXMuYS5lYygpLktjKCl9O18uTWM9ZnVuY3Rpb24gaXRiKGEpe3JldHVybiAkc2IodGhpcyxhKX07Xy5nYz1mdW5jdGlvbiBqdGIoKXtyZXR1cm4gdGhpcy5hLmdjKCl9O3ZhciBCSz1zZmIoQnZlLCdIYXNoU2V0Jyw0OSk7ZmViKDE4OTcsMSxSdmUsbHRiKTtfLkRkPWZ1bmN0aW9uIG10YihhKXtrdGIodGhpcyxhKX07Xy5JYj1mdW5jdGlvbiBudGIoKXtyZXR1cm4gJ0ludFN1bW1hcnlTdGF0aXN0aWNzW2NvdW50ID0gJytaZGIodGhpcy5hKSsnLCBhdmcgPSAnKyhJZGIodGhpcy5hLDApP1hkYih0aGlzLmQpL1hkYih0aGlzLmEpOjApKycsIG1pbiA9ICcrdGhpcy5jKycsIG1heCA9ICcrdGhpcy5iKycsIHN1bSA9ICcrWmRiKHRoaXMuZCkrJ10nfTtfLmE9MDtfLmI9cXdlO18uYz1sdmU7Xy5kPTA7dmFyIENLPXNmYihCdmUsJ0ludFN1bW1hcnlTdGF0aXN0aWNzJywxODk3KTtmZWIoMTA2MiwxLFZ2ZSx0dGIpO18uSmM9ZnVuY3Rpb24gdXRiKGEpe3hnYih0aGlzLGEpfTtfLktjPWZ1bmN0aW9uIHZ0Yigpe3JldHVybiBuZXcgd3RiKHRoaXMpfTtfLmM9MDt2YXIgRUs9c2ZiKEJ2ZSwnSW50ZXJuYWxIYXNoQ29kZU1hcCcsMTA2Mik7ZmViKDcyNiwxLEF2ZSx3dGIpO18uTmI9ZnVuY3Rpb24geHRiKGEpe1p0Yih0aGlzLGEpfTtfLlBiPWZ1bmN0aW9uIHp0Yigpe3JldHVybiB0aGlzLmQ9dGhpcy5hW3RoaXMuYysrXSx0aGlzLmR9O18uT2I9ZnVuY3Rpb24geXRiKCl7dmFyIGE7aWYodGhpcy5jPHRoaXMuYS5sZW5ndGgpe3JldHVybiB0cnVlfWE9dGhpcy5iLm5leHQoKTtpZighYS5kb25lKXt0aGlzLmE9YS52YWx1ZVsxXTt0aGlzLmM9MDtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O18uUWI9ZnVuY3Rpb24gQXRiKCl7c3RiKHRoaXMuZSx0aGlzLmQubGQoKSk7dGhpcy5jIT0wJiYtLXRoaXMuY307Xy5jPTA7Xy5kPW51bGw7dmFyIERLPXNmYihCdmUsJ0ludGVybmFsSGFzaENvZGVNYXAvMScsNzI2KTt2YXIgRHRiO2ZlYigxMDYwLDEsVnZlLE50Yik7Xy5KYz1mdW5jdGlvbiBPdGIoYSl7eGdiKHRoaXMsYSl9O18uS2M9ZnVuY3Rpb24gUHRiKCl7cmV0dXJuIG5ldyBRdGIodGhpcyl9O18uYz0wO18uZD0wO3ZhciBISz1zZmIoQnZlLCdJbnRlcm5hbFN0cmluZ01hcCcsMTA2MCk7ZmViKDcyNSwxLEF2ZSxRdGIpO18uTmI9ZnVuY3Rpb24gUnRiKGEpe1p0Yih0aGlzLGEpfTtfLlBiPWZ1bmN0aW9uIFR0Yigpe3JldHVybiB0aGlzLmM9dGhpcy5hLHRoaXMuYT10aGlzLmIubmV4dCgpLG5ldyBWdGIodGhpcy5kLHRoaXMuYyx0aGlzLmQuZCl9O18uT2I9ZnVuY3Rpb24gU3RiKCl7cmV0dXJuICF0aGlzLmEuZG9uZX07Xy5RYj1mdW5jdGlvbiBVdGIoKXtNdGIodGhpcy5kLHRoaXMuYy52YWx1ZVswXSl9O3ZhciBGSz1zZmIoQnZlLCdJbnRlcm5hbFN0cmluZ01hcC8xJyw3MjUpO2ZlYigxMDYxLDIwODIsQXhlLFZ0Yik7Xy5sZD1mdW5jdGlvbiBXdGIoKXtyZXR1cm4gdGhpcy5iLnZhbHVlWzBdfTtfLm1kPWZ1bmN0aW9uIFh0Yigpe2lmKHRoaXMuYS5kIT10aGlzLmMpe3JldHVybiBLdGIodGhpcy5hLHRoaXMuYi52YWx1ZVswXSl9cmV0dXJuIHRoaXMuYi52YWx1ZVsxXX07Xy5uZD1mdW5jdGlvbiBZdGIoYSl7cmV0dXJuIEx0Yih0aGlzLmEsdGhpcy5iLnZhbHVlWzBdLGEpfTtfLmM9MDt2YXIgR0s9c2ZiKEJ2ZSwnSW50ZXJuYWxTdHJpbmdNYXAvMicsMTA2MSk7ZmViKDIxNSw0NSxIeGUsZ3ViLGh1Yik7Xy4kYj1mdW5jdGlvbiBpdWIoKXthdWIodGhpcyl9O18uX2I9ZnVuY3Rpb24ganViKGEpe3JldHVybiBidWIodGhpcyxhKX07Xy51Yz1mdW5jdGlvbiBrdWIoYSl7dmFyIGI7Yj10aGlzLmQuYTt3aGlsZShiIT10aGlzLmQpe2lmKEZ2YihiLmUsYSkpe3JldHVybiB0cnVlfWI9Yi5hfXJldHVybiBmYWxzZX07Xy52Yz1mdW5jdGlvbiBsdWIoKXtyZXR1cm4gbmV3IHd1Yih0aGlzKX07Xy54Yz1mdW5jdGlvbiBtdWIoYSl7cmV0dXJuIGN1Yih0aGlzLGEpfTtfLnpjPWZ1bmN0aW9uIG51YihhLGIpe3JldHVybiBkdWIodGhpcyxhLGIpfTtfLkJjPWZ1bmN0aW9uIG91YihhKXtyZXR1cm4gZnViKHRoaXMsYSl9O18uZ2M9ZnVuY3Rpb24gcHViKCl7cmV0dXJuIGJrYih0aGlzLmUpfTtfLmM9ZmFsc2U7dmFyIExLPXNmYihCdmUsJ0xpbmtlZEhhc2hNYXAnLDIxNSk7ZmViKDQwMCwzOTcsezQ5NDoxLDM5NzoxLDQwMDoxLDQ0OjF9LHR1Yix1dWIpO3ZhciBJSz1zZmIoQnZlLCdMaW5rZWRIYXNoTWFwL0NoYWluRW50cnknLDQwMCk7ZmViKDcxNSxFdmUsRnZlLHd1Yik7Xy4kYj1mdW5jdGlvbiB4dWIoKXthdWIodGhpcy5hKX07Xy5IYz1mdW5jdGlvbiB5dWIoYSl7cmV0dXJuIHZ1Yih0aGlzLGEpfTtfLktjPWZ1bmN0aW9uIHp1Yigpe3JldHVybiBuZXcgRHViKHRoaXMpfTtfLk1jPWZ1bmN0aW9uIEF1YihhKXt2YXIgYjtpZih2dWIodGhpcyxhKSl7Yj1SRChhLDQ0KS5sZCgpO2Z1Yih0aGlzLmEsYik7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfTtfLmdjPWZ1bmN0aW9uIEJ1Yigpe3JldHVybiBia2IodGhpcy5hLmUpfTt2YXIgS0s9c2ZiKEJ2ZSwnTGlua2VkSGFzaE1hcC9FbnRyeVNldCcsNzE1KTtmZWIoNzE2LDEsQXZlLER1Yik7Xy5OYj1mdW5jdGlvbiBFdWIoYSl7WnRiKHRoaXMsYSl9O18uUGI9ZnVuY3Rpb24gR3ViKCl7cmV0dXJuIEN1Yih0aGlzKX07Xy5PYj1mdW5jdGlvbiBGdWIoKXtyZXR1cm4gdGhpcy5jIT10aGlzLmQuYS5kfTtfLlFiPWZ1bmN0aW9uIEh1Yigpe3lGYighIXRoaXMuYSk7ckZiKHRoaXMuZC5hLmUuZyx0aGlzLmIpO3J1Yih0aGlzLmEpO19qYih0aGlzLmQuYS5lLHRoaXMuYS5kKTt0aGlzLmI9dGhpcy5kLmEuZS5nO3RoaXMuYT1udWxsfTtfLmI9MDt2YXIgSks9c2ZiKEJ2ZSwnTGlua2VkSGFzaE1hcC9FbnRyeVNldC9FbnRyeUl0ZXJhdG9yJyw3MTYpO2ZlYigxNzQsNDksSXhlLEl1YixKdWIsS3ViKTt2YXIgTUs9c2ZiKEJ2ZSwnTGlua2VkSGFzaFNldCcsMTc0KTtmZWIoNjcsMjA2Mix7MzoxLDQ6MSwyMDoxLDMxOjEsNTY6MSwxNjoxLDY3OjEsMTU6MX0sWXViLFp1Yik7Xy5GYz1mdW5jdGlvbiAkdWIoYSl7cmV0dXJuIE11Yih0aGlzLGEpfTtfLiRiPWZ1bmN0aW9uIF91Yigpe1h1Yih0aGlzKX07Xy5mZD1mdW5jdGlvbiBhdmIoYSl7cmV0dXJuIFN1Yih0aGlzLGEpfTtfLmdjPWZ1bmN0aW9uIGJ2Yigpe3JldHVybiB0aGlzLmJ9O18uYj0wO3ZhciBQSz1zZmIoQnZlLCdMaW5rZWRMaXN0Jyw2Nyk7ZmViKDk4MSwxLEp2ZSxodmIpO18uTmI9ZnVuY3Rpb24ganZiKGEpe1p0Yih0aGlzLGEpfTtfLlJiPWZ1bmN0aW9uIGl2YihhKXtjdmIodGhpcyxhKX07Xy5PYj1mdW5jdGlvbiBrdmIoKXtyZXR1cm4gZHZiKHRoaXMpfTtfLlNiPWZ1bmN0aW9uIGx2Yigpe3JldHVybiB0aGlzLmIuYiE9dGhpcy5kLmF9O18uUGI9ZnVuY3Rpb24gbXZiKCl7cmV0dXJuIGV2Yih0aGlzKX07Xy5UYj1mdW5jdGlvbiBudmIoKXtyZXR1cm4gdGhpcy5hfTtfLlViPWZ1bmN0aW9uIG92Yigpe3JldHVybiBmdmIodGhpcyl9O18uVmI9ZnVuY3Rpb24gcHZiKCl7cmV0dXJuIHRoaXMuYS0xfTtfLlFiPWZ1bmN0aW9uIHF2Yigpe2d2Yih0aGlzKX07Xy5XYj1mdW5jdGlvbiBydmIoYSl7eUZiKCEhdGhpcy5jKTt0aGlzLmMuYz1hfTtfLmE9MDtfLmM9bnVsbDt2YXIgTks9c2ZiKEJ2ZSwnTGlua2VkTGlzdC9MaXN0SXRlcmF0b3JJbXBsJyw5ODEpO2ZlYig2MTcsMSx7fSxzdmIpO3ZhciBPSz1zZmIoQnZlLCdMaW5rZWRMaXN0L05vZGUnLDYxNyk7ZmViKDIwNTcsMSx7fSk7dmFyIHV2Yix2dmI7dmFyIFRLPXNmYihCdmUsJ0xvY2FsZScsMjA1Nyk7ZmViKDg3MywyMDU3LHt9LHh2Yik7Xy5JYj1mdW5jdGlvbiB5dmIoKXtyZXR1cm4gJyd9O3ZhciBSSz1zZmIoQnZlLCdMb2NhbGUvMScsODczKTtmZWIoODc0LDIwNTcse30senZiKTtfLkliPWZ1bmN0aW9uIEF2Yigpe3JldHVybiAndW5rbm93bid9O3ZhciBTSz1zZmIoQnZlLCdMb2NhbGUvNCcsODc0KTtmZWIoMTEyLDYzLHszOjEsMTAzOjEsNjM6MSw4MjoxLDExMjoxfSxEdmIsRXZiKTt2YXIgV0s9c2ZiKEJ2ZSwnTm9TdWNoRWxlbWVudEV4Y2VwdGlvbicsMTEyKTtmZWIoNDc1LDEsezQ3NToxfSxPdmIpO18uRmI9ZnVuY3Rpb24gUHZiKGEpe3ZhciBiO2lmKGE9PT10aGlzKXtyZXR1cm4gdHJ1ZX1pZighWkQoYSw0NzUpKXtyZXR1cm4gZmFsc2V9Yj1SRChhLDQ3NSk7cmV0dXJuIEZ2Yih0aGlzLmEsYi5hKX07Xy5IYj1mdW5jdGlvbiBRdmIoKXtyZXR1cm4gR3ZiKHRoaXMuYSl9O18uSWI9ZnVuY3Rpb24gUnZiKCl7cmV0dXJuIHRoaXMuYSE9bnVsbD91dmUrR2hiKHRoaXMuYSkrJyknOidPcHRpb25hbC5lbXB0eSgpJ307dmFyIEp2Yjt2YXIgWks9c2ZiKEJ2ZSwnT3B0aW9uYWwnLDQ3NSk7ZmViKDQxNCwxLHs0MTQ6MX0sWHZiLFl2Yik7Xy5GYj1mdW5jdGlvbiBadmIoYSl7dmFyIGI7aWYoYT09PXRoaXMpe3JldHVybiB0cnVlfWlmKCFaRChhLDQxNCkpe3JldHVybiBmYWxzZX1iPVJEKGEsNDE0KTtyZXR1cm4gdGhpcy5hPT1iLmEmJlFmYih0aGlzLmIsYi5iKT09MH07Xy5IYj1mdW5jdGlvbiAkdmIoKXtyZXR1cm4gdGhpcy5hP2VFKHRoaXMuYik6MH07Xy5JYj1mdW5jdGlvbiBfdmIoKXtyZXR1cm4gdGhpcy5hPydPcHRpb25hbERvdWJsZS5vZignKygnJyt0aGlzLmIpKycpJzonT3B0aW9uYWxEb3VibGUuZW1wdHkoKSd9O18uYT1mYWxzZTtfLmI9MDt2YXIgU3ZiO3ZhciBYSz1zZmIoQnZlLCdPcHRpb25hbERvdWJsZScsNDE0KTtmZWIoNTI0LDEsezUyNDoxfSxkd2IsZXdiKTtfLkZiPWZ1bmN0aW9uIGZ3YihhKXt2YXIgYjtpZihhPT09dGhpcyl7cmV0dXJuIHRydWV9aWYoIVpEKGEsNTI0KSl7cmV0dXJuIGZhbHNlfWI9UkQoYSw1MjQpO3JldHVybiB0aGlzLmE9PWIuYSYmaGdiKHRoaXMuYixiLmIpPT0wfTtfLkhiPWZ1bmN0aW9uIGd3Yigpe3JldHVybiB0aGlzLmE/dGhpcy5iOjB9O18uSWI9ZnVuY3Rpb24gaHdiKCl7cmV0dXJuIHRoaXMuYT8nT3B0aW9uYWxJbnQub2YoJysoJycrdGhpcy5iKSsnKSc6J09wdGlvbmFsSW50LmVtcHR5KCknfTtfLmE9ZmFsc2U7Xy5iPTA7dmFyIGF3Yjt2YXIgWUs9c2ZiKEJ2ZSwnT3B0aW9uYWxJbnQnLDUyNCk7ZmViKDUxMCwyMTAzLER2ZSxwd2IpO18uR2M9ZnVuY3Rpb24gcXdiKGEpe3JldHVybiBpd2IodGhpcyxhKX07Xy4kYj1mdW5jdGlvbiByd2IoKXthRmIodGhpcy5iLmMsMCl9O18uSGM9ZnVuY3Rpb24gc3diKGEpe3JldHVybiAoYT09bnVsbD8tMTpXbWIodGhpcy5iLGEsMCkpIT0tMX07Xy5LYz1mdW5jdGlvbiB0d2IoKXtyZXR1cm4gbmV3IHp3Yih0aGlzKX07Xy5NYz1mdW5jdGlvbiB1d2IoYSl7cmV0dXJuIG53Yih0aGlzLGEpfTtfLmdjPWZ1bmN0aW9uIHZ3Yigpe3JldHVybiB0aGlzLmIuYy5sZW5ndGh9O18uTmM9ZnVuY3Rpb24gd3diKCl7cmV0dXJuIG5ldyBTd2IodGhpcywyNTYpfTtfLlBjPWZ1bmN0aW9uIHh3Yigpe3JldHVybiBVRWIodGhpcy5iLmMpfTtfLlFjPWZ1bmN0aW9uIHl3YihhKXtyZXR1cm4gYW5iKHRoaXMuYixhKX07dmFyIF9LPXNmYihCdmUsJ1ByaW9yaXR5UXVldWUnLDUxMCk7ZmViKDEyOTYsMSxBdmUsendiKTtfLk5iPWZ1bmN0aW9uIEF3YihhKXtadGIodGhpcyxhKX07Xy5PYj1mdW5jdGlvbiBCd2IoKXtyZXR1cm4gdGhpcy5hPHRoaXMuYy5iLmMubGVuZ3RofTtfLlBiPWZ1bmN0aW9uIEN3Yigpe3NGYih0aGlzLmE8dGhpcy5jLmIuYy5sZW5ndGgpO3RoaXMuYj10aGlzLmErKztyZXR1cm4gVm1iKHRoaXMuYy5iLHRoaXMuYil9O18uUWI9ZnVuY3Rpb24gRHdiKCl7eUZiKHRoaXMuYiE9LTEpO293Yih0aGlzLmMsdGhpcy5hPXRoaXMuYik7dGhpcy5iPS0xfTtfLmE9MDtfLmI9LTE7dmFyICRLPXNmYihCdmUsJ1ByaW9yaXR5UXVldWUvMScsMTI5Nik7ZmViKDIzNCwxLHsyMzQ6MX0sT3diLFB3Yik7Xy5hPTA7Xy5iPTA7dmFyIEV3YixGd2IsR3diPTA7dmFyIGFMPXNmYihCdmUsJ1JhbmRvbScsMjM0KTtmZWIoMjUsMSxQdmUsU3diLFR3YixVd2IpO18uQWQ9ZnVuY3Rpb24gWXdiKGEpe3JldHVybiAodGhpcy5hJmEpIT0wfTtfLnlkPWZ1bmN0aW9uIFZ3Yigpe3JldHVybiB0aGlzLmF9O18uemQ9ZnVuY3Rpb24gV3diKCl7UXdiKHRoaXMpO3JldHVybiB0aGlzLmN9O18uTmI9ZnVuY3Rpb24gWHdiKGEpe1F3Yih0aGlzKTt0aGlzLmQuTmIoYSl9O18uQmQ9ZnVuY3Rpb24gWndiKGEpe3JldHVybiBSd2IodGhpcyxhKX07Xy5hPTA7Xy5jPTA7dmFyIHFMPXNmYihCdmUsJ1NwbGl0ZXJhdG9ycy9JdGVyYXRvclNwbGl0ZXJhdG9yJywyNSk7ZmViKDQ5NSwyNSxQdmUsJHdiKTt2YXIgY0w9c2ZiKEJ2ZSwnU29ydGVkU2V0LzEnLDQ5NSk7ZmViKDYxMSwxLEd4ZSxheGIpO18uUGU9ZnVuY3Rpb24gYnhiKGEpe3RoaXMuYS5DZChhKX07dmFyIGRMPXNmYihCdmUsJ1NwbGl0ZXJhdG9yL09mRG91YmxlLzBtZXRob2RyZWYkYWNjZXB0JFR5cGUnLDYxMSk7ZmViKDYxMiwxLEd4ZSxjeGIpO18uUGU9ZnVuY3Rpb24gZHhiKGEpe3RoaXMuYS5DZChhKX07dmFyIGVMPXNmYihCdmUsJ1NwbGl0ZXJhdG9yL09mRG91YmxlLzFtZXRob2RyZWYkYWNjZXB0JFR5cGUnLDYxMik7ZmViKDYxMywxLFJ2ZSxleGIpO18uRGQ9ZnVuY3Rpb24gZnhiKGEpe3RoaXMuYS5DZChzZ2IoYSkpfTt2YXIgZkw9c2ZiKEJ2ZSwnU3BsaXRlcmF0b3IvT2ZJbnQvMm1ldGhvZHJlZiRhY2NlcHQkVHlwZScsNjEzKTtmZWIoNjE0LDEsUnZlLGd4Yik7Xy5EZD1mdW5jdGlvbiBoeGIoYSl7dGhpcy5hLkNkKHNnYihhKSl9O3ZhciBnTD1zZmIoQnZlLCdTcGxpdGVyYXRvci9PZkludC8zbWV0aG9kcmVmJGFjY2VwdCRUeXBlJyw2MTQpO2ZlYig2MjUsMSxQdmUpO18uTmI9ZnVuY3Rpb24gbnhiKGEpe193Yih0aGlzLGEpfTtfLkFkPWZ1bmN0aW9uIG94YihhKXtyZXR1cm4gKHRoaXMuZCZhKSE9MH07Xy55ZD1mdW5jdGlvbiBseGIoKXtyZXR1cm4gdGhpcy5kfTtfLnpkPWZ1bmN0aW9uIG14Yigpe3JldHVybiB0aGlzLmV9O18uZD0wO18uZT0wO3ZhciBtTD1zZmIoQnZlLCdTcGxpdGVyYXRvcnMvQmFzZVNwbGl0ZXJhdG9yJyw2MjUpO2ZlYig3MzYsNjI1LFB2ZSk7Xy5RZT1mdW5jdGlvbiBxeGIoYSl7aXhiKHRoaXMsYSl9O18uTmI9ZnVuY3Rpb24gcnhiKGEpe1pEKGEsMTg5KT9peGIodGhpcyxSRChhLDE4OSkpOml4Yih0aGlzLG5ldyBjeGIoYSkpfTtfLkJkPWZ1bmN0aW9uIHN4YihhKXtyZXR1cm4gWkQoYSwxODkpP3RoaXMuUmUoUkQoYSwxODkpKTp0aGlzLlJlKG5ldyBheGIoYSkpfTt2YXIgaEw9c2ZiKEJ2ZSwnU3BsaXRlcmF0b3JzL0Fic3RyYWN0RG91YmxlU3BsaXRlcmF0b3InLDczNik7ZmViKDczNSw2MjUsUHZlKTtfLlFlPWZ1bmN0aW9uIHV4YihhKXtpeGIodGhpcyxhKX07Xy5OYj1mdW5jdGlvbiB2eGIoYSl7WkQoYSwyMDIpP2l4Yih0aGlzLFJEKGEsMjAyKSk6aXhiKHRoaXMsbmV3IGd4YihhKSl9O18uQmQ9ZnVuY3Rpb24gd3hiKGEpe3JldHVybiBaRChhLDIwMik/dGhpcy5SZShSRChhLDIwMikpOnRoaXMuUmUobmV3IGV4YihhKSl9O3ZhciBpTD1zZmIoQnZlLCdTcGxpdGVyYXRvcnMvQWJzdHJhY3RJbnRTcGxpdGVyYXRvcicsNzM1KTtmZWIoNTAwLDYyNSxQdmUpO3ZhciBqTD1zZmIoQnZlLCdTcGxpdGVyYXRvcnMvQWJzdHJhY3RTcGxpdGVyYXRvcicsNTAwKTtmZWIoNzA2LDEsUHZlKTtfLk5iPWZ1bmN0aW9uIER4YihhKXtfd2IodGhpcyxhKX07Xy5BZD1mdW5jdGlvbiBFeGIoYSl7cmV0dXJuICh0aGlzLmImYSkhPTB9O18ueWQ9ZnVuY3Rpb24gQnhiKCl7cmV0dXJuIHRoaXMuYn07Xy56ZD1mdW5jdGlvbiBDeGIoKXtyZXR1cm4gdGhpcy5kLXRoaXMuY307Xy5iPTA7Xy5jPTA7Xy5kPTA7dmFyIGxMPXNmYihCdmUsJ1NwbGl0ZXJhdG9ycy9CYXNlQXJyYXlTcGxpdGVyYXRvcicsNzA2KTtmZWIoOTYwLDcwNixQdmUsR3hiKTtfLlNlPWZ1bmN0aW9uIEh4YihhLGIpe0Z4Yih0aGlzLFJEKGEsNDEpLGIpfTtfLk5iPWZ1bmN0aW9uIEl4YihhKXt5eGIodGhpcyxhKX07Xy5CZD1mdW5jdGlvbiBKeGIoYSl7cmV0dXJuIHp4Yih0aGlzLGEpfTt2YXIga0w9c2ZiKEJ2ZSwnU3BsaXRlcmF0b3JzL0FycmF5U3BsaXRlcmF0b3InLDk2MCk7ZmViKDcwNyw3MDYsUHZlLEx4Yik7Xy5TZT1mdW5jdGlvbiBOeGIoYSxiKXtLeGIodGhpcyxSRChhLDE4OSksYil9O18uUWU9ZnVuY3Rpb24gT3hiKGEpe3l4Yih0aGlzLGEpfTtfLk5iPWZ1bmN0aW9uIFB4YihhKXtaRChhLDE4OSk/eXhiKHRoaXMsUkQoYSwxODkpKTp5eGIodGhpcyxuZXcgY3hiKGEpKX07Xy5SZT1mdW5jdGlvbiBReGIoYSl7cmV0dXJuIHp4Yih0aGlzLGEpfTtfLkJkPWZ1bmN0aW9uIFJ4YihhKXtyZXR1cm4gWkQoYSwxODkpP3p4Yih0aGlzLFJEKGEsMTg5KSk6enhiKHRoaXMsbmV3IGF4YihhKSl9O3ZhciBuTD1zZmIoQnZlLCdTcGxpdGVyYXRvcnMvRG91YmxlQXJyYXlTcGxpdGVyYXRvcicsNzA3KTtmZWIoMjA2NiwxLFB2ZSk7Xy5OYj1mdW5jdGlvbiBXeGIoYSl7X3diKHRoaXMsYSl9O18uQWQ9ZnVuY3Rpb24gWHhiKGEpe3JldHVybiAoMTY0NDgmYSkhPTB9O18ueWQ9ZnVuY3Rpb24gVXhiKCl7cmV0dXJuIDE2NDQ4fTtfLnpkPWZ1bmN0aW9uIFZ4Yigpe3JldHVybiAwfTt2YXIgU3hiO3ZhciBwTD1zZmIoQnZlLCdTcGxpdGVyYXRvcnMvRW1wdHlTcGxpdGVyYXRvcicsMjA2Nik7ZmViKDk1OSwyMDY2LFB2ZSwkeGIpO18uUWU9ZnVuY3Rpb24gX3hiKGEpe1l4YihhKX07Xy5OYj1mdW5jdGlvbiBheWIoYSl7WkQoYSwyMDIpP1l4YihSRChhLDIwMikpOll4YihuZXcgZ3hiKGEpKX07Xy5SZT1mdW5jdGlvbiBieWIoYSl7cmV0dXJuIFp4YihhKX07Xy5CZD1mdW5jdGlvbiBjeWIoYSl7cmV0dXJuIFpEKGEsMjAyKT9aeGIoUkQoYSwyMDIpKTpaeGIobmV3IGV4YihhKSl9O3ZhciBvTD1zZmIoQnZlLCdTcGxpdGVyYXRvcnMvRW1wdHlTcGxpdGVyYXRvci9PZkludCcsOTU5KTtmZWIoNTg4LDU2LFJ4ZSxneWIpO18uYmQ9ZnVuY3Rpb24gaHliKGEsYil7bHliKGEsdGhpcy5hLmMubGVuZ3RoKzEpO1FtYih0aGlzLmEsYSxiKX07Xy5GYz1mdW5jdGlvbiBpeWIoYSl7cmV0dXJuIFJtYih0aGlzLmEsYSl9O18uY2Q9ZnVuY3Rpb24ganliKGEsYil7bHliKGEsdGhpcy5hLmMubGVuZ3RoKzEpO3JldHVybiBTbWIodGhpcy5hLGEsYil9O18uR2M9ZnVuY3Rpb24ga3liKGEpe3JldHVybiBUbWIodGhpcy5hLGEpfTtfLiRiPWZ1bmN0aW9uIG15Yigpe2FGYih0aGlzLmEuYywwKX07Xy5IYz1mdW5jdGlvbiBueWIoYSl7cmV0dXJuIFdtYih0aGlzLmEsYSwwKSE9LTF9O18uSWM9ZnVuY3Rpb24gb3liKGEpe3JldHVybiBCZSh0aGlzLmEsYSl9O18uSmM9ZnVuY3Rpb24gcHliKGEpe1VtYih0aGlzLmEsYSl9O18uWGI9ZnVuY3Rpb24gcXliKGEpe3JldHVybiBseWIoYSx0aGlzLmEuYy5sZW5ndGgpLFZtYih0aGlzLmEsYSl9O18uZGQ9ZnVuY3Rpb24gcnliKGEpe3JldHVybiBXbWIodGhpcy5hLGEsMCl9O18uZGM9ZnVuY3Rpb24gc3liKCl7cmV0dXJuIHRoaXMuYS5jLmxlbmd0aD09MH07Xy5LYz1mdW5jdGlvbiB0eWIoKXtyZXR1cm4gbmV3IEFuYih0aGlzLmEpfTtfLmdkPWZ1bmN0aW9uIHV5YihhKXtyZXR1cm4gbHliKGEsdGhpcy5hLmMubGVuZ3RoKSxYbWIodGhpcy5hLGEpfTtfLmNlPWZ1bmN0aW9uIHZ5YihhLGIpe1ptYih0aGlzLmEsYSxiKX07Xy5oZD1mdW5jdGlvbiB3eWIoYSxiKXtyZXR1cm4gbHliKGEsdGhpcy5hLmMubGVuZ3RoKSwkbWIodGhpcy5hLGEsYil9O18uZ2M9ZnVuY3Rpb24geHliKCl7cmV0dXJuIHRoaXMuYS5jLmxlbmd0aH07Xy5qZD1mdW5jdGlvbiB5eWIoYSl7X21iKHRoaXMuYSxhKX07Xy5rZD1mdW5jdGlvbiB6eWIoYSxiKXtyZXR1cm4gbmV3IFJrYih0aGlzLmEsYSxiKX07Xy5QYz1mdW5jdGlvbiBBeWIoKXtyZXR1cm4gVUViKHRoaXMuYS5jKX07Xy5RYz1mdW5jdGlvbiBCeWIoYSl7cmV0dXJuIGFuYih0aGlzLmEsYSl9O18uSWI9ZnVuY3Rpb24gQ3liKCl7cmV0dXJuIEZlKHRoaXMuYSl9O3ZhciBFTD1zZmIoQnZlLCdWZWN0b3InLDU4OCk7ZmViKDgyNCw1ODgsUnhlLEZ5Yik7dmFyIHJMPXNmYihCdmUsJ1N0YWNrJyw4MjQpO2ZlYigyMTMsMSx7MjEzOjF9LEp5Yik7Xy5JYj1mdW5jdGlvbiBLeWIoKXtyZXR1cm4gSXliKHRoaXMpfTt2YXIgc0w9c2ZiKEJ2ZSwnU3RyaW5nSm9pbmVyJywyMTMpO2ZlYig1NTMsMjA5MCx7MzoxLDg1OjEsMTM5OjEsMTMzOjF9LGR6YixlemIpO18uJGI9ZnVuY3Rpb24gZnpiKCl7THliKHRoaXMpfTtfLkRlPWZ1bmN0aW9uIGd6Yigpe3JldHVybiBuZXcgeHpiKHRoaXMpfTtfLnZjPWZ1bmN0aW9uIGh6Yigpe3JldHVybiBuZXcgRHpiKHRoaXMpfTtfLkVlPWZ1bmN0aW9uIGl6YihhKXtyZXR1cm4gUHliKHRoaXMsYSx0cnVlKX07Xy5GZT1mdW5jdGlvbiBqemIoYSl7cmV0dXJuIE15Yih0aGlzLGEpfTtfLkdlPWZ1bmN0aW9uIGt6Yigpe3JldHVybiBOeWIodGhpcyl9O18uSGU9ZnVuY3Rpb24gbHpiKGEpe3JldHVybiBReWIodGhpcyxhLHRydWUpfTtfLkllPWZ1bmN0aW9uIG16YihhKXtyZXR1cm4gUHliKHRoaXMsYSxmYWxzZSl9O18uSmU9ZnVuY3Rpb24gbnpiKCl7cmV0dXJuIE95Yih0aGlzKX07Xy5LZT1mdW5jdGlvbiBvemIoYSl7cmV0dXJuIFF5Yih0aGlzLGEsZmFsc2UpfTtfLlpjPWZ1bmN0aW9uIHB6YihhLGIpe3JldHVybiBSeWIodGhpcyxhLGIpfTtfLnpjPWZ1bmN0aW9uIHF6YihhLGIpe3JldHVybiBXeWIodGhpcyxhLGIpfTtfLkJjPWZ1bmN0aW9uIHJ6YihhKXtyZXR1cm4gWHliKHRoaXMsYSl9O18uTGU9ZnVuY3Rpb24gc3piKGEpe3JldHVybiBZeWIodGhpcyxhKX07Xy5nYz1mdW5jdGlvbiB0emIoKXtyZXR1cm4gdGhpcy5jfTtfLmFkPWZ1bmN0aW9uIHV6YihhLGIpe3JldHVybiBjemIodGhpcyxhLGIpfTtfLmM9MDt2YXIgQ0w9c2ZiKEJ2ZSwnVHJlZU1hcCcsNTUzKTtmZWIoNTU0LDEsQXZlLHh6Yix5emIpO18uTmI9ZnVuY3Rpb24genpiKGEpe1p0Yih0aGlzLGEpfTtfLlBiPWZ1bmN0aW9uIEJ6Yigpe3JldHVybiB2emIodGhpcyl9O18uT2I9ZnVuY3Rpb24gQXpiKCl7cmV0dXJuIEFrYih0aGlzLmEpfTtfLlFiPWZ1bmN0aW9uIEN6Yigpe3d6Yih0aGlzKX07dmFyIHRMPXNmYihCdmUsJ1RyZWVNYXAvRW50cnlJdGVyYXRvcicsNTU0KTtmZWIoMTE0Miw2MjksRnZlLER6Yik7Xy4kYj1mdW5jdGlvbiBFemIoKXtMeWIodGhpcy5hKX07dmFyIHVMPXNmYihCdmUsJ1RyZWVNYXAvRW50cnlTZXQnLDExNDIpO2ZlYig0NDcsMzk3LHs0OTQ6MSwzOTc6MSw0NDoxLDQ0NzoxfSxGemIpO18uYj1mYWxzZTt2YXIgdkw9c2ZiKEJ2ZSwnVHJlZU1hcC9Ob2RlJyw0NDcpO2ZlYig2MzAsMSx7fSxHemIpO18uSWI9ZnVuY3Rpb24gSHpiKCl7cmV0dXJuICdTdGF0ZTogbXY9Jyt0aGlzLmMrJyB2YWx1ZT0nK3RoaXMuZCsnIGRvbmU9Jyt0aGlzLmErJyBmb3VuZD0nK3RoaXMuYn07Xy5hPWZhbHNlO18uYj1mYWxzZTtfLmM9ZmFsc2U7dmFyIHdMPXNmYihCdmUsJ1RyZWVNYXAvU3RhdGUnLDYzMCk7ZmViKDYzMSwyMDkwLEd2ZSxLemIpO18uRGU9ZnVuY3Rpb24gTHpiKCl7cmV0dXJuIG5ldyB5emIodGhpcy5jLHRoaXMuZix0aGlzLmIsdGhpcy5hLHRoaXMuZSx0aGlzLmQpfTtfLnZjPWZ1bmN0aW9uIE16Yigpe3JldHVybiBuZXcgUGxiKHRoaXMpfTtfLkVlPWZ1bmN0aW9uIE56YihhKXtyZXR1cm4gSXpiKHRoaXMsUHliKHRoaXMuYyxhLHRydWUpKX07Xy5GZT1mdW5jdGlvbiBPemIoYSl7cmV0dXJuIEl6Yih0aGlzLE15Yih0aGlzLmMsYSkpfTtfLkdlPWZ1bmN0aW9uIFB6Yigpe3ZhciBhO3JldHVybiB0aGlzLmYuVGUoKT90aGlzLmE/KGE9UHliKHRoaXMuYyx0aGlzLmIsdHJ1ZSkpOihhPVB5Yih0aGlzLmMsdGhpcy5iLGZhbHNlKSk6KGE9TnliKHRoaXMuYykpLCEhYSYmSnpiKHRoaXMsYS5kKT9hOm51bGx9O18uSGU9ZnVuY3Rpb24gUXpiKGEpe3JldHVybiBJemIodGhpcyxReWIodGhpcy5jLGEsdHJ1ZSkpfTtfLkllPWZ1bmN0aW9uIFJ6YihhKXtyZXR1cm4gSXpiKHRoaXMsUHliKHRoaXMuYyxhLGZhbHNlKSl9O18uSmU9ZnVuY3Rpb24gU3piKCl7dmFyIGE7dGhpcy5mLlVlKCk/dGhpcy5kPyhhPVF5Yih0aGlzLmMsdGhpcy5lLHRydWUpKTooYT1ReWIodGhpcy5jLHRoaXMuZSxmYWxzZSkpOihhPU95Yih0aGlzLmMpKTtyZXR1cm4gISFhJiZKemIodGhpcyxhLmQpP2E6bnVsbH07Xy5LZT1mdW5jdGlvbiBUemIoYSl7cmV0dXJuIEl6Yih0aGlzLFF5Yih0aGlzLmMsYSxmYWxzZSkpfTtfLlpjPWZ1bmN0aW9uIFV6YihhLGIpe2lmKHRoaXMuZi5VZSgpJiZ0aGlzLmMuYS5OZShhLHRoaXMuZSk+MCl7dGhyb3cgQWRiKG5ldyBhZ2IoU3hlK2ErJyBncmVhdGVyIHRoYW4gJyt0aGlzLmUpKX1yZXR1cm4gdGhpcy5mLlRlKCk/YnpiKHRoaXMuYyx0aGlzLmIsdGhpcy5hLGEsYik6UnliKHRoaXMuYyxhLGIpfTtfLnpjPWZ1bmN0aW9uIFZ6YihhLGIpe2lmKCFUeWIodGhpcy5jLHRoaXMuZixhLHRoaXMuYix0aGlzLmEsdGhpcy5lLHRoaXMuZCkpe3Rocm93IEFkYihuZXcgYWdiKGErJyBvdXRzaWRlIHRoZSByYW5nZSAnK3RoaXMuYisnIHRvICcrdGhpcy5lKSl9cmV0dXJuIFd5Yih0aGlzLmMsYSxiKX07Xy5CYz1mdW5jdGlvbiBXemIoYSl7dmFyIGI7Yj1hO2lmKCFUeWIodGhpcy5jLHRoaXMuZixiLHRoaXMuYix0aGlzLmEsdGhpcy5lLHRoaXMuZCkpe3JldHVybiBudWxsfXJldHVybiBYeWIodGhpcy5jLGIpfTtfLkxlPWZ1bmN0aW9uIFh6YihhKXtyZXR1cm4gSnpiKHRoaXMsYS5sZCgpKSYmWXliKHRoaXMuYyxhKX07Xy5nYz1mdW5jdGlvbiBZemIoKXt2YXIgYSxiLGM7dGhpcy5mLlRlKCk/dGhpcy5hPyhiPVB5Yih0aGlzLmMsdGhpcy5iLHRydWUpKTooYj1QeWIodGhpcy5jLHRoaXMuYixmYWxzZSkpOihiPU55Yih0aGlzLmMpKTtpZighKCEhYiYmSnpiKHRoaXMsYi5kKT9iOm51bGwpKXtyZXR1cm4gMH1hPTA7Zm9yKGM9bmV3IHl6Yih0aGlzLmMsdGhpcy5mLHRoaXMuYix0aGlzLmEsdGhpcy5lLHRoaXMuZCk7QWtiKGMuYSk7Yy5iPVJEKEJrYihjLmEpLDQ0KSl7KythfXJldHVybiBhfTtfLmFkPWZ1bmN0aW9uIFp6YihhLGIpe2lmKHRoaXMuZi5UZSgpJiZ0aGlzLmMuYS5OZShhLHRoaXMuYik8MCl7dGhyb3cgQWRiKG5ldyBhZ2IoU3hlK2ErVHhlK3RoaXMuYikpfXJldHVybiB0aGlzLmYuVWUoKT9iemIodGhpcy5jLGEsYix0aGlzLmUsdGhpcy5kKTpjemIodGhpcy5jLGEsYil9O18uYT1mYWxzZTtfLmQ9ZmFsc2U7dmFyIEJMPXNmYihCdmUsJ1RyZWVNYXAvU3ViTWFwJyw2MzEpO2ZlYigzMDQsMjIsVXhlLGRBYik7Xy5UZT1mdW5jdGlvbiBlQWIoKXtyZXR1cm4gZmFsc2V9O18uVWU9ZnVuY3Rpb24gZkFiKCl7cmV0dXJuIGZhbHNlfTt2YXIgJHpiLF96YixhQWIsYkFiO3ZhciBBTD10ZmIoQnZlLCdUcmVlTWFwL1N1Yk1hcFR5cGUnLDMwNCxXSSxoQWIsZ0FiKTtmZWIoMTE0MywzMDQsVXhlLGlBYik7Xy5VZT1mdW5jdGlvbiBqQWIoKXtyZXR1cm4gdHJ1ZX07dmFyIHhMPXRmYihCdmUsJ1RyZWVNYXAvU3ViTWFwVHlwZS8xJywxMTQzLEFMLG51bGwsbnVsbCk7ZmViKDExNDQsMzA0LFV4ZSxrQWIpO18uVGU9ZnVuY3Rpb24gbEFiKCl7cmV0dXJuIHRydWV9O18uVWU9ZnVuY3Rpb24gbUFiKCl7cmV0dXJuIHRydWV9O3ZhciB5TD10ZmIoQnZlLCdUcmVlTWFwL1N1Yk1hcFR5cGUvMicsMTE0NCxBTCxudWxsLG51bGwpO2ZlYigxMTQ1LDMwNCxVeGUsbkFiKTtfLlRlPWZ1bmN0aW9uIG9BYigpe3JldHVybiB0cnVlfTt2YXIgekw9dGZiKEJ2ZSwnVHJlZU1hcC9TdWJNYXBUeXBlLzMnLDExNDUsQUwsbnVsbCxudWxsKTt2YXIgcEFiO2ZlYigxNTcsRXZlLHszOjEsMjA6MSwzMToxLDE2OjEsMjc3OjEsMjE6MSw4NzoxLDE1NzoxfSx4QWIseUFiLHpBYik7Xy5OYz1mdW5jdGlvbiBHQWIoKXtyZXR1cm4gbmV3ICR3Yih0aGlzKX07Xy5GYz1mdW5jdGlvbiBBQWIoYSl7cmV0dXJuIHJBYih0aGlzLGEpfTtfLiRiPWZ1bmN0aW9uIEJBYigpe3RoaXMuYS4kYigpfTtfLkhjPWZ1bmN0aW9uIENBYihhKXtyZXR1cm4gdGhpcy5hLl9iKGEpfTtfLktjPWZ1bmN0aW9uIERBYigpe3JldHVybiB0aGlzLmEuZWMoKS5LYygpfTtfLk1jPWZ1bmN0aW9uIEVBYihhKXtyZXR1cm4gd0FiKHRoaXMsYSl9O18uZ2M9ZnVuY3Rpb24gRkFiKCl7cmV0dXJuIHRoaXMuYS5nYygpfTt2YXIgREw9c2ZiKEJ2ZSwnVHJlZVNldCcsMTU3KTtmZWIoMTA4MiwxLHt9LEpBYik7Xy5WZT1mdW5jdGlvbiBLQWIoYSxiKXtyZXR1cm4gSEFiKHRoaXMuYSxhLGIpfTt2YXIgRkw9c2ZiKFZ4ZSwnQmluYXJ5T3BlcmF0b3IvbGFtYmRhJDAkVHlwZScsMTA4Mik7ZmViKDEwODMsMSx7fSxMQWIpO18uVmU9ZnVuY3Rpb24gTUFiKGEsYil7cmV0dXJuIElBYih0aGlzLmEsYSxiKX07dmFyIEdMPXNmYihWeGUsJ0JpbmFyeU9wZXJhdG9yL2xhbWJkYSQxJFR5cGUnLDEwODMpO2ZlYig5NTIsMSx7fSxOQWIpO18uS2I9ZnVuY3Rpb24gT0FiKGEpe3JldHVybiBhfTt2YXIgSEw9c2ZiKFZ4ZSwnRnVuY3Rpb24vbGFtYmRhJDAkVHlwZScsOTUyKTtmZWIoMzk1LDEsbndlLFBBYik7Xy5NYj1mdW5jdGlvbiBRQWIoYSl7cmV0dXJuICF0aGlzLmEuTWIoYSl9O3ZhciBJTD1zZmIoVnhlLCdQcmVkaWNhdGUvbGFtYmRhJDIkVHlwZScsMzk1KTtmZWIoNTgxLDEsezU4MToxfSk7dmFyIEpMPXNmYihXeGUsJ0hhbmRsZXInLDU4MSk7ZmViKDIxMDcsMSxudmUpO18ueGU9ZnVuY3Rpb24gVEFiKCl7cmV0dXJuICdEVU1NWSd9O18uSWI9ZnVuY3Rpb24gVUFiKCl7cmV0dXJuIHRoaXMueGUoKX07dmFyIFJBYjt2YXIgTEw9c2ZiKFd4ZSwnTGV2ZWwnLDIxMDcpO2ZlYigxNzA2LDIxMDcsbnZlLFZBYik7Xy54ZT1mdW5jdGlvbiBXQWIoKXtyZXR1cm4gJ0lORk8nfTt2YXIgS0w9c2ZiKFd4ZSwnTGV2ZWwvTGV2ZWxJbmZvJywxNzA2KTtmZWIoMTg0MywxLHt9LCRBYik7dmFyIFhBYjt2YXIgTUw9c2ZiKFd4ZSwnTG9nTWFuYWdlcicsMTg0Myk7ZmViKDE4OTYsMSxudmUsYUJiKTtfLmI9bnVsbDt2YXIgTkw9c2ZiKFd4ZSwnTG9nUmVjb3JkJywxODk2KTtmZWIoNTI1LDEsezUyNToxfSxvQmIpO18uZT1mYWxzZTt2YXIgYkJiPWZhbHNlLGNCYj1mYWxzZSxkQmI9ZmFsc2UsZUJiPWZhbHNlLGZCYj1mYWxzZTt2YXIgT0w9c2ZiKFd4ZSwnTG9nZ2VyJyw1MjUpO2ZlYig4MzUsNTgxLHs1ODE6MX0sckJiKTt2YXIgUEw9c2ZiKFd4ZSwnU2ltcGxlQ29uc29sZUxvZ0hhbmRsZXInLDgzNSk7ZmViKDEwOCwyMix7MzoxLDM0OjEsMjI6MSwxMDg6MX0seUJiKTt2YXIgdUJiLHZCYix3QmI7dmFyIFFMPXRmYihaeGUsJ0NvbGxlY3Rvci9DaGFyYWN0ZXJpc3RpY3MnLDEwOCxXSSxBQmIsekJiKTt2YXIgQkJiO2ZlYig3NTgsMSx7fSxEQmIpO3ZhciBSTD1zZmIoWnhlLCdDb2xsZWN0b3JJbXBsJyw3NTgpO2ZlYigxMDc0LDEse30sUkJiKTtfLlZlPWZ1bmN0aW9uIFNCYihhLGIpe3JldHVybiBIeWIoUkQoYSwyMTMpLFJEKGIsMjEzKSl9O3ZhciBTTD1zZmIoWnhlLCdDb2xsZWN0b3JzLzEwbWV0aG9kcmVmJG1lcmdlJFR5cGUnLDEwNzQpO2ZlYigxMDc1LDEse30sVEJiKTtfLktiPWZ1bmN0aW9uIFVCYihhKXtyZXR1cm4gSXliKFJEKGEsMjEzKSl9O3ZhciBUTD1zZmIoWnhlLCdDb2xsZWN0b3JzLzExbWV0aG9kcmVmJHRvU3RyaW5nJFR5cGUnLDEwNzUpO2ZlYigxMDc2LDEse30sVkJiKTtfLktiPWZ1bmN0aW9uIFdCYihhKXtyZXR1cm4gR2ViKCksU1NiKGEpP3RydWU6ZmFsc2V9O3ZhciBVTD1zZmIoWnhlLCdDb2xsZWN0b3JzLzEybWV0aG9kcmVmJHRlc3QkVHlwZScsMTA3Nik7ZmViKDE0NCwxLHt9LFhCYik7Xy5ZZD1mdW5jdGlvbiBZQmIoYSxiKXtSRChhLDE2KS5GYyhiKX07dmFyIFZMPXNmYihaeGUsJ0NvbGxlY3RvcnMvMjBtZXRob2RyZWYkYWRkJFR5cGUnLDE0NCk7ZmViKDE0NiwxLHt9LFpCYik7Xy5YZT1mdW5jdGlvbiAkQmIoKXtyZXR1cm4gbmV3IGJuYn07dmFyIFdMPXNmYihaeGUsJ0NvbGxlY3RvcnMvMjFtZXRob2RyZWYkY3RvciRUeXBlJywxNDYpO2ZlYigzNTksMSx7fSxfQmIpO18uWGU9ZnVuY3Rpb24gYUNiKCl7cmV0dXJuIG5ldyBfc2J9O3ZhciBYTD1zZmIoWnhlLCdDb2xsZWN0b3JzLzIzbWV0aG9kcmVmJGN0b3IkVHlwZScsMzU5KTtmZWIoMzYwLDEse30sYkNiKTtfLllkPWZ1bmN0aW9uIGNDYihhLGIpe1lzYihSRChhLDQ5KSxiKX07dmFyIFlMPXNmYihaeGUsJ0NvbGxlY3RvcnMvMjRtZXRob2RyZWYkYWRkJFR5cGUnLDM2MCk7ZmViKDEwNjksMSx7fSxkQ2IpO18uVmU9ZnVuY3Rpb24gZUNiKGEsYil7cmV0dXJuIEVCYihSRChhLDE1KSxSRChiLDE2KSl9O3ZhciBaTD1zZmIoWnhlLCdDb2xsZWN0b3JzLzRtZXRob2RyZWYkYWRkQWxsJFR5cGUnLDEwNjkpO2ZlYigxMDczLDEse30sZkNiKTtfLllkPWZ1bmN0aW9uIGdDYihhLGIpe0d5YihSRChhLDIxMyksUkQoYiw0ODQpKX07dmFyICRMPXNmYihaeGUsJ0NvbGxlY3RvcnMvOW1ldGhvZHJlZiRhZGQkVHlwZScsMTA3Myk7ZmViKDEwNzIsMSx7fSxoQ2IpO18uWGU9ZnVuY3Rpb24gaUNiKCl7cmV0dXJuIG5ldyBKeWIodGhpcy5hLHRoaXMuYix0aGlzLmMpfTt2YXIgX0w9c2ZiKFp4ZSwnQ29sbGVjdG9ycy9sYW1iZGEkMTUkVHlwZScsMTA3Mik7ZmViKDEwNzcsMSx7fSxqQ2IpO18uWGU9ZnVuY3Rpb24ga0NiKCl7dmFyIGE7cmV0dXJuIGE9bmV3IGd1YixkdWIoYSwoR2ViKCksZmFsc2UpLG5ldyBibmIpLGR1YihhLHRydWUsbmV3IGJuYiksYX07dmFyIGFNPXNmYihaeGUsJ0NvbGxlY3RvcnMvbGFtYmRhJDIyJFR5cGUnLDEwNzcpO2ZlYigxMDc4LDEse30sbENiKTtfLlhlPWZ1bmN0aW9uIG1DYigpe3JldHVybiBjRChXQyhqSiwxKSxydmUsMSw1LFt0aGlzLmFdKX07dmFyIGJNPXNmYihaeGUsJ0NvbGxlY3RvcnMvbGFtYmRhJDI1JFR5cGUnLDEwNzgpO2ZlYigxMDc5LDEse30sbkNiKTtfLllkPWZ1bmN0aW9uIG9DYihhLGIpe0dCYih0aGlzLmEsU0QoYSkpfTt2YXIgY009c2ZiKFp4ZSwnQ29sbGVjdG9ycy9sYW1iZGEkMjYkVHlwZScsMTA3OSk7ZmViKDEwODAsMSx7fSxwQ2IpO18uVmU9ZnVuY3Rpb24gcUNiKGEsYil7cmV0dXJuIEhCYih0aGlzLmEsU0QoYSksU0QoYikpfTt2YXIgZE09c2ZiKFp4ZSwnQ29sbGVjdG9ycy9sYW1iZGEkMjckVHlwZScsMTA4MCk7ZmViKDEwODEsMSx7fSxyQ2IpO18uS2I9ZnVuY3Rpb24gc0NiKGEpe3JldHVybiBTRChhKVswXX07dmFyIGVNPXNmYihaeGUsJ0NvbGxlY3RvcnMvbGFtYmRhJDI4JFR5cGUnLDEwODEpO2ZlYig3MjgsMSx7fSx1Q2IpO18uVmU9ZnVuY3Rpb24gdkNiKGEsYil7cmV0dXJuIHRDYihhLGIpfTt2YXIgZk09c2ZiKFp4ZSwnQ29sbGVjdG9ycy9sYW1iZGEkNCRUeXBlJyw3MjgpO2ZlYigxNDUsMSx7fSx3Q2IpO18uVmU9ZnVuY3Rpb24geENiKGEsYil7cmV0dXJuIEpCYihSRChhLDE2KSxSRChiLDE2KSl9O3ZhciBnTT1zZmIoWnhlLCdDb2xsZWN0b3JzL2xhbWJkYSQ0MiRUeXBlJywxNDUpO2ZlYigzNjEsMSx7fSx5Q2IpO18uVmU9ZnVuY3Rpb24gekNiKGEsYil7cmV0dXJuIEtCYihSRChhLDQ5KSxSRChiLDQ5KSl9O3ZhciBoTT1zZmIoWnhlLCdDb2xsZWN0b3JzL2xhbWJkYSQ1MCRUeXBlJywzNjEpO2ZlYigzNjIsMSx7fSxBQ2IpO18uS2I9ZnVuY3Rpb24gQkNiKGEpe3JldHVybiBSRChhLDQ5KX07dmFyIGlNPXNmYihaeGUsJ0NvbGxlY3RvcnMvbGFtYmRhJDUxJFR5cGUnLDM2Mik7ZmViKDEwNjgsMSx7fSxDQ2IpO18uWWQ9ZnVuY3Rpb24gRENiKGEsYil7TEJiKHRoaXMuYSxSRChhLDg1KSxiKX07dmFyIGpNPXNmYihaeGUsJ0NvbGxlY3RvcnMvbGFtYmRhJDckVHlwZScsMTA2OCk7ZmViKDEwNzAsMSx7fSxFQ2IpO18uVmU9ZnVuY3Rpb24gRkNiKGEsYil7cmV0dXJuIE5CYihSRChhLDg1KSxSRChiLDg1KSxuZXcgZENiKX07dmFyIGtNPXNmYihaeGUsJ0NvbGxlY3RvcnMvbGFtYmRhJDgkVHlwZScsMTA3MCk7ZmViKDEwNzEsMSx7fSxHQ2IpO18uS2I9ZnVuY3Rpb24gSENiKGEpe3JldHVybiBNQmIodGhpcy5hLFJEKGEsODUpKX07dmFyIGxNPXNmYihaeGUsJ0NvbGxlY3RvcnMvbGFtYmRhJDkkVHlwZScsMTA3MSk7ZmViKDU1MCwxLHt9KTtfLiRlPWZ1bmN0aW9uIE9DYigpe0lDYih0aGlzKX07Xy5kPWZhbHNlO3ZhciBUTT1zZmIoWnhlLCdUZXJtaW5hdGFibGVTdHJlYW0nLDU1MCk7ZmViKDgyNyw1NTAsJHhlLFdDYik7Xy4kZT1mdW5jdGlvbiBYQ2IoKXtJQ2IodGhpcyl9O3ZhciBxTT1zZmIoWnhlLCdEb3VibGVTdHJlYW1JbXBsJyw4MjcpO2ZlYigxODQ3LDczNixQdmUsJENiKTtfLlJlPWZ1bmN0aW9uIGFEYihhKXtyZXR1cm4gWkNiKHRoaXMsUkQoYSwxODkpKX07Xy5hPW51bGw7dmFyIG5NPXNmYihaeGUsJ0RvdWJsZVN0cmVhbUltcGwvMicsMTg0Nyk7ZmViKDE4NDgsMSxHeGUsYkRiKTtfLlBlPWZ1bmN0aW9uIGNEYihhKXtfQ2IodGhpcy5hLGEpfTt2YXIgbU09c2ZiKFp4ZSwnRG91YmxlU3RyZWFtSW1wbC8yL2xhbWJkYSQwJFR5cGUnLDE4NDgpO2ZlYigxODQ1LDEsR3hlLGREYik7Xy5QZT1mdW5jdGlvbiBlRGIoYSl7WUNiKHRoaXMuYSxhKX07dmFyIG9NPXNmYihaeGUsJ0RvdWJsZVN0cmVhbUltcGwvbGFtYmRhJDAkVHlwZScsMTg0NSk7ZmViKDE4NDYsMSxHeGUsZkRiKTtfLlBlPWZ1bmN0aW9uIGdEYihhKXtOcmIodGhpcy5hLGEpfTt2YXIgcE09c2ZiKFp4ZSwnRG91YmxlU3RyZWFtSW1wbC9sYW1iZGEkMiRUeXBlJywxODQ2KTtmZWIoMTM5Nyw3MzUsUHZlLGtEYik7Xy5SZT1mdW5jdGlvbiBsRGIoYSl7cmV0dXJuIGpEYih0aGlzLFJEKGEsMjAyKSl9O18uYT0wO18uYj0wO18uYz0wO3ZhciByTT1zZmIoWnhlLCdJbnRTdHJlYW0vNScsMTM5Nyk7ZmViKDgwNiw1NTAsJHhlLG9EYik7Xy4kZT1mdW5jdGlvbiBwRGIoKXtJQ2IodGhpcyl9O18uX2U9ZnVuY3Rpb24gcURiKCl7cmV0dXJuIExDYih0aGlzKSx0aGlzLmF9O3ZhciB2TT1zZmIoWnhlLCdJbnRTdHJlYW1JbXBsJyw4MDYpO2ZlYig4MDcsNTUwLCR4ZSxyRGIpO18uJGU9ZnVuY3Rpb24gc0RiKCl7SUNiKHRoaXMpfTtfLl9lPWZ1bmN0aW9uIHREYigpe3JldHVybiBMQ2IodGhpcyksVHhiKCksU3hifTt2YXIgc009c2ZiKFp4ZSwnSW50U3RyZWFtSW1wbC9FbXB0eScsODA3KTtmZWIoMTY4NywxLFJ2ZSx1RGIpO18uRGQ9ZnVuY3Rpb24gdkRiKGEpe2t0Yih0aGlzLmEsYSl9O3ZhciB1TT1zZmIoWnhlLCdJbnRTdHJlYW1JbXBsL2xhbWJkYSQ0JFR5cGUnLDE2ODcpO3ZhciBSTT11ZmIoWnhlLCdTdHJlYW0nKTtmZWIoMjYsNTUwLHs1MzM6MSw2ODc6MSw4NDg6MX0sU0RiKTtfLiRlPWZ1bmN0aW9uIFREYigpe0lDYih0aGlzKX07dmFyIHdEYjt2YXIgUU09c2ZiKFp4ZSwnU3RyZWFtSW1wbCcsMjYpO2ZlYigxMTAyLDUwMCxQdmUsWURiKTtfLkJkPWZ1bmN0aW9uIFpEYihhKXt3aGlsZShXRGIodGhpcykpe2lmKHRoaXMuYS5CZChhKSl7cmV0dXJuIHRydWV9ZWxzZXtJQ2IodGhpcy5iKTt0aGlzLmI9bnVsbDt0aGlzLmE9bnVsbH19cmV0dXJuIGZhbHNlfTt2YXIgeE09c2ZiKFp4ZSwnU3RyZWFtSW1wbC8xJywxMTAyKTtmZWIoMTEwMywxLFF2ZSwkRGIpO18uQ2Q9ZnVuY3Rpb24gX0RiKGEpe1hEYih0aGlzLmEsUkQoYSw4NDgpKX07dmFyIHdNPXNmYihaeGUsJ1N0cmVhbUltcGwvMS9sYW1iZGEkMCRUeXBlJywxMTAzKTtmZWIoMTEwNCwxLG53ZSxhRWIpO18uTWI9ZnVuY3Rpb24gYkViKGEpe3JldHVybiBZc2IodGhpcy5hLGEpfTt2YXIgeU09c2ZiKFp4ZSwnU3RyZWFtSW1wbC8xbWV0aG9kcmVmJGFkZCRUeXBlJywxMTA0KTtmZWIoMTEwNSw1MDAsUHZlLGNFYik7Xy5CZD1mdW5jdGlvbiBkRWIoYSl7dmFyIGI7aWYoIXRoaXMuYSl7Yj1uZXcgYm5iO3RoaXMuYi5hLk5iKG5ldyBlRWIoYikpO3lvYigpO19tYihiLHRoaXMuYyk7dGhpcy5hPW5ldyBTd2IoYiwxNil9cmV0dXJuIFJ3Yih0aGlzLmEsYSl9O18uYT1udWxsO3ZhciBBTT1zZmIoWnhlLCdTdHJlYW1JbXBsLzUnLDExMDUpO2ZlYigxMTA2LDEsUXZlLGVFYik7Xy5DZD1mdW5jdGlvbiBmRWIoYSl7Um1iKHRoaXMuYSxhKX07dmFyIHpNPXNmYihaeGUsJ1N0cmVhbUltcGwvNS8ybWV0aG9kcmVmJGFkZCRUeXBlJywxMTA2KTtmZWIoNzM3LDUwMCxQdmUsaEViKTtfLkJkPWZ1bmN0aW9uIGlFYihhKXt0aGlzLmI9ZmFsc2U7d2hpbGUoIXRoaXMuYiYmdGhpcy5jLkJkKG5ldyBqRWIodGhpcyxhKSkpO3JldHVybiB0aGlzLmJ9O18uYj1mYWxzZTt2YXIgQ009c2ZiKFp4ZSwnU3RyZWFtSW1wbC9GaWx0ZXJTcGxpdGVyYXRvcicsNzM3KTtmZWIoMTA5NiwxLFF2ZSxqRWIpO18uQ2Q9ZnVuY3Rpb24ga0ViKGEpe2dFYih0aGlzLmEsdGhpcy5iLGEpfTt2YXIgQk09c2ZiKFp4ZSwnU3RyZWFtSW1wbC9GaWx0ZXJTcGxpdGVyYXRvci9sYW1iZGEkMCRUeXBlJywxMDk2KTtmZWIoMTA5MSw3MzYsUHZlLG5FYik7Xy5SZT1mdW5jdGlvbiBvRWIoYSl7cmV0dXJuIG1FYih0aGlzLFJEKGEsMTg5KSl9O3ZhciBFTT1zZmIoWnhlLCdTdHJlYW1JbXBsL01hcFRvRG91YmxlU3BsaXRlcmF0b3InLDEwOTEpO2ZlYigxMDk1LDEsUXZlLHBFYik7Xy5DZD1mdW5jdGlvbiBxRWIoYSl7bEViKHRoaXMuYSx0aGlzLmIsYSl9O3ZhciBETT1zZmIoWnhlLCdTdHJlYW1JbXBsL01hcFRvRG91YmxlU3BsaXRlcmF0b3IvbGFtYmRhJDAkVHlwZScsMTA5NSk7ZmViKDEwOTAsNzM1LFB2ZSx0RWIpO18uUmU9ZnVuY3Rpb24gdUViKGEpe3JldHVybiBzRWIodGhpcyxSRChhLDIwMikpfTt2YXIgR009c2ZiKFp4ZSwnU3RyZWFtSW1wbC9NYXBUb0ludFNwbGl0ZXJhdG9yJywxMDkwKTtmZWIoMTA5NCwxLFF2ZSx2RWIpO18uQ2Q9ZnVuY3Rpb24gd0ViKGEpe3JFYih0aGlzLmEsdGhpcy5iLGEpfTt2YXIgRk09c2ZiKFp4ZSwnU3RyZWFtSW1wbC9NYXBUb0ludFNwbGl0ZXJhdG9yL2xhbWJkYSQwJFR5cGUnLDEwOTQpO2ZlYig3MzQsNTAwLFB2ZSx6RWIpO18uQmQ9ZnVuY3Rpb24gQUViKGEpe3JldHVybiB5RWIodGhpcyxhKX07dmFyIElNPXNmYihaeGUsJ1N0cmVhbUltcGwvTWFwVG9PYmpTcGxpdGVyYXRvcicsNzM0KTtmZWIoMTA5MywxLFF2ZSxCRWIpO18uQ2Q9ZnVuY3Rpb24gQ0ViKGEpe3hFYih0aGlzLmEsdGhpcy5iLGEpfTt2YXIgSE09c2ZiKFp4ZSwnU3RyZWFtSW1wbC9NYXBUb09ialNwbGl0ZXJhdG9yL2xhbWJkYSQwJFR5cGUnLDEwOTMpO2ZlYigxMDkyLDUwMCxQdmUsREViKTtfLkJkPWZ1bmN0aW9uIEVFYihhKXt3aGlsZShJZGIodGhpcy5iLDApKXtpZighdGhpcy5hLkJkKG5ldyBGRWIpKXtyZXR1cm4gZmFsc2V9dGhpcy5iPVZkYih0aGlzLmIsMSl9cmV0dXJuIHRoaXMuYS5CZChhKX07Xy5iPTA7dmFyIEtNPXNmYihaeGUsJ1N0cmVhbUltcGwvU2tpcFNwbGl0ZXJhdG9yJywxMDkyKTtmZWIoMTA5NywxLFF2ZSxGRWIpO18uQ2Q9ZnVuY3Rpb24gR0ViKGEpe307dmFyIEpNPXNmYihaeGUsJ1N0cmVhbUltcGwvU2tpcFNwbGl0ZXJhdG9yL2xhbWJkYSQwJFR5cGUnLDEwOTcpO2ZlYig2MjYsMSxRdmUsSUViKTtfLkNkPWZ1bmN0aW9uIEpFYihhKXtIRWIodGhpcyxhKX07dmFyIExNPXNmYihaeGUsJ1N0cmVhbUltcGwvVmFsdWVDb25zdW1lcicsNjI2KTtmZWIoMTA5OCwxLFF2ZSxLRWIpO18uQ2Q9ZnVuY3Rpb24gTEViKGEpe3hEYigpfTt2YXIgTU09c2ZiKFp4ZSwnU3RyZWFtSW1wbC9sYW1iZGEkMCRUeXBlJywxMDk4KTtmZWIoMTA5OSwxLFF2ZSxNRWIpO18uQ2Q9ZnVuY3Rpb24gTkViKGEpe3hEYigpfTt2YXIgTk09c2ZiKFp4ZSwnU3RyZWFtSW1wbC9sYW1iZGEkMSRUeXBlJywxMDk5KTtmZWIoMTEwMCwxLHt9LE9FYik7Xy5WZT1mdW5jdGlvbiBQRWIoYSxiKXtyZXR1cm4gVURiKHRoaXMuYSxhLGIpfTt2YXIgT009c2ZiKFp4ZSwnU3RyZWFtSW1wbC9sYW1iZGEkNCRUeXBlJywxMTAwKTtmZWIoMTEwMSwxLFF2ZSxRRWIpO18uQ2Q9ZnVuY3Rpb24gUkViKGEpe1ZEYih0aGlzLmIsdGhpcy5hLGEpfTt2YXIgUE09c2ZiKFp4ZSwnU3RyZWFtSW1wbC9sYW1iZGEkNSRUeXBlJywxMTAxKTtmZWIoMTEwNywxLFF2ZSxTRWIpO18uQ2Q9ZnVuY3Rpb24gVEViKGEpe1BDYih0aGlzLmEsUkQoYSwzODApKX07dmFyIFNNPXNmYihaeGUsJ1Rlcm1pbmF0YWJsZVN0cmVhbS9sYW1iZGEkMCRUeXBlJywxMTA3KTtmZWIoMjE0MiwxLHt9KTtmZWIoMjAxNCwxLHt9LGdGYik7dmFyIFVNPXNmYignamF2YWVtdWwuaW50ZXJuYWwnLCdDb25zb2xlTG9nZ2VyJywyMDE0KTt2YXIgaUZiPTA7ZmViKDIxMzQsMSx7fSk7ZmViKDE4MzAsMSxRdmUsRkZiKTtfLkNkPWZ1bmN0aW9uIEdGYihhKXtSRChhLDMxNyl9O3ZhciBWTT1zZmIoZXllLCdCb3d5ZXJXYXRzb25Ucmlhbmd1bGF0aW9uL2xhbWJkYSQwJFR5cGUnLDE4MzApO2ZlYigxODMxLDEsUXZlLEhGYik7Xy5DZD1mdW5jdGlvbiBJRmIoYSl7eWUodGhpcy5hLFJEKGEsMzE3KS5lKX07dmFyIFdNPXNmYihleWUsJ0Jvd3llcldhdHNvblRyaWFuZ3VsYXRpb24vbGFtYmRhJDEkVHlwZScsMTgzMSk7ZmViKDE4MzIsMSxRdmUsSkZiKTtfLkNkPWZ1bmN0aW9uIEtGYihhKXtSRChhLDE3Nyl9O3ZhciBYTT1zZmIoZXllLCdCb3d5ZXJXYXRzb25Ucmlhbmd1bGF0aW9uL2xhbWJkYSQyJFR5cGUnLDE4MzIpO2ZlYigxODI3LDEsZnllLE5GYik7Xy5OZT1mdW5jdGlvbiBPRmIoYSxiKXtyZXR1cm4gTUZiKHRoaXMuYSxSRChhLDE3NyksUkQoYiwxNzcpKX07Xy5GYj1mdW5jdGlvbiBQRmIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIFFGYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgWU09c2ZiKGV5ZSwnTmFpdmVNaW5TVC9sYW1iZGEkMCRUeXBlJywxODI3KTtmZWIoNDQ5LDEse30sU0ZiKTt2YXIgWk09c2ZiKGV5ZSwnTm9kZU1pY3JvTGF5b3V0Jyw0NDkpO2ZlYigxNzcsMSx7MTc3OjF9LFRGYik7Xy5GYj1mdW5jdGlvbiBVRmIoYSl7dmFyIGI7aWYoWkQoYSwxNzcpKXtiPVJEKGEsMTc3KTtyZXR1cm4gRnZiKHRoaXMuYSxiLmEpJiZGdmIodGhpcy5iLGIuYil8fEZ2Yih0aGlzLmEsYi5iKSYmRnZiKHRoaXMuYixiLmEpfWVsc2V7cmV0dXJuIGZhbHNlfX07Xy5IYj1mdW5jdGlvbiBWRmIoKXtyZXR1cm4gR3ZiKHRoaXMuYSkrR3ZiKHRoaXMuYil9O3ZhciAkTT1zZmIoZXllLCdURWRnZScsMTc3KTtmZWIoMzE3LDEsezMxNzoxfSxYRmIpO18uRmI9ZnVuY3Rpb24gWUZiKGEpe3ZhciBiO2lmKFpEKGEsMzE3KSl7Yj1SRChhLDMxNyk7cmV0dXJuIFdGYih0aGlzLGIuYSkmJldGYih0aGlzLGIuYikmJldGYih0aGlzLGIuYyl9ZWxzZXtyZXR1cm4gZmFsc2V9fTtfLkhiPWZ1bmN0aW9uIFpGYigpe3JldHVybiBHdmIodGhpcy5hKStHdmIodGhpcy5iKStHdmIodGhpcy5jKX07dmFyIF9NPXNmYihleWUsJ1RUcmlhbmdsZScsMzE3KTtmZWIoMjI1LDEsezIyNToxfSwkRmIpO3ZhciBhTj1zZmIoZXllLCdUcmVlJywyMjUpO2ZlYigxMjE4LDEse30sYUdiKTt2YXIgY049c2ZiKGd5ZSwnU2NhbmxpbmUnLDEyMTgpO3ZhciBiTj11ZmIoZ3llLGh5ZSk7ZmViKDE3NTgsMSx7fSxkR2IpO3ZhciBkTj1zZmIoaXllLCdDR3JhcGgnLDE3NTgpO2ZlYigzMTYsMSx7MzE2OjF9LGZHYik7Xy5iPTA7Xy5jPTA7Xy5kPTA7Xy5nPTA7Xy5pPTA7Xy5rPXB4ZTt2YXIgZk49c2ZiKGl5ZSwnQ0dyb3VwJywzMTYpO2ZlYig4MzAsMSx7fSxqR2IpO3ZhciBlTj1zZmIoaXllLCdDR3JvdXAvQ0dyb3VwQnVpbGRlcicsODMwKTtmZWIoNjAsMSx7NjA6MX0sa0diKTtfLkliPWZ1bmN0aW9uIGxHYigpe3ZhciBhO2lmKHRoaXMuail7cmV0dXJuIFdEKHRoaXMuai5LYih0aGlzKSl9cmV0dXJuIGxmYihoTiksaE4ubysnQCcrKGE9a0ZiKHRoaXMpPj4+MCxhLnRvU3RyaW5nKDE2KSl9O18uZj0wO18uaT1weGU7dmFyIGhOPXNmYihpeWUsJ0NOb2RlJyw2MCk7ZmViKDgyOSwxLHt9LHFHYik7dmFyIGdOPXNmYihpeWUsJ0NOb2RlL0NOb2RlQnVpbGRlcicsODI5KTt2YXIgdkdiO2ZlYigxNTkwLDEse30seEdiKTtfLmZmPWZ1bmN0aW9uIHlHYihhLGIpe3JldHVybiAwfTtfLmdmPWZ1bmN0aW9uIHpHYihhLGIpe3JldHVybiAwfTt2YXIgaU49c2ZiKGl5ZSxreWUsMTU5MCk7ZmViKDE4NTMsMSx7fSxBR2IpO18uY2Y9ZnVuY3Rpb24gQkdiKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scDtqPW94ZTtmb3IoZD1uZXcgQW5iKGEuYS5iKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoZCksNjApO2o9JHduZC5NYXRoLm1pbihqLGIuYS5qLmQuYytiLmIuYSl9bj1uZXcgWXViO2ZvcihnPW5ldyBBbmIoYS5hLmEpO2cuYTxnLmMuYy5sZW5ndGg7KXtmPVJEKHluYihnKSwzMTYpO2Yuaz1qO2YuZz09MCYmKFB1YihuLGYsbi5jLmIsbi5jKSx0cnVlKX13aGlsZShuLmIhPTApe2Y9UkQobi5iPT0wP251bGw6KHNGYihuLmIhPTApLFd1YihuLG4uYS5hKSksMzE2KTtlPWYuai5kLmM7Zm9yKG09Zi5hLmEuZWMoKS5LYygpO20uT2IoKTspe2s9UkQobS5QYigpLDYwKTtwPWYuaytrLmIuYTshTEdiKGEsZixhLmQpfHxrLmQuYzxwPyhrLmk9cCk6KGsuaT1rLmQuYyl9ZS09Zi5qLmk7Zi5iKz1lO2EuZD09KENtZCgpLHptZCl8fGEuZD09eG1kPyhmLmMrPWUpOihmLmMtPWUpO2ZvcihsPWYuYS5hLmVjKCkuS2MoKTtsLk9iKCk7KXtrPVJEKGwuUGIoKSw2MCk7Zm9yKGk9ay5jLktjKCk7aS5PYigpOyl7aD1SRChpLlBiKCksNjApO0RtZChhLmQpPyhvPWEuZy5mZihrLGgpKToobz1hLmcuZ2YoayxoKSk7aC5hLms9JHduZC5NYXRoLm1heChoLmEuayxrLmkray5kLmIrby1oLmIuYSk7TUdiKGEsaCxhLmQpJiYoaC5hLms9JHduZC5NYXRoLm1heChoLmEuayxoLmQuYy1oLmIuYSkpOy0taC5hLmc7aC5hLmc9PTAmJk11YihuLGguYSl9fX1mb3IoYz1uZXcgQW5iKGEuYS5iKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksNjApO2IuZC5jPWIuaX19O3ZhciBqTj1zZmIoaXllLCdMb25nZXN0UGF0aENvbXBhY3Rpb24nLDE4NTMpO2ZlYigxNzU2LDEse30sVkdiKTtfLmU9ZmFsc2U7dmFyIENHYixER2IsRUdiO3ZhciBsTj1zZmIoaXllLHB5ZSwxNzU2KTtmZWIoMTc1NywxLFF2ZSxXR2IpO18uQ2Q9ZnVuY3Rpb24gWEdiKGEpe05HYih0aGlzLmEsUkQoYSw0MikpfTt2YXIga049c2ZiKGl5ZSxxeWUsMTc1Nyk7ZmViKDE4NTQsMSx7fSxZR2IpO18uZGY9ZnVuY3Rpb24gWkdiKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2ZvcihjPW5ldyBBbmIoYS5hLmIpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSw2MCk7Yi5jLiRiKCl9Zm9yKGU9bmV3IEFuYihhLmEuYik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDYwKTtmb3IoZz1uZXcgQW5iKGEuYS5iKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksNjApO2lmKGQ9PWYpe2NvbnRpbnVlfWlmKCEhZC5hJiZkLmE9PWYuYSl7Y29udGludWV9RG1kKGEuZCk/KGg9YS5nLmdmKGQsZikpOihoPWEuZy5mZihkLGYpKTsoZi5kLmM+ZC5kLmN8fGQuZC5jPT1mLmQuYyYmZC5kLmI8Zi5kLmIpJiZzR2IoZi5kLmQrZi5kLmEraCxkLmQuZCkmJnVHYihmLmQuZCxkLmQuZCtkLmQuYStoKSYmZC5jLkZjKGYpfX19O3ZhciBtTj1zZmIoaXllLCdRdWFkcmF0aWNDb25zdHJhaW50Q2FsY3VsYXRpb24nLDE4NTQpO2ZlYig1MjksMSx7NTI5OjF9LGNIYik7Xy5hPWZhbHNlO18uYj1mYWxzZTtfLmM9ZmFsc2U7Xy5kPWZhbHNlO3ZhciBuTj1zZmIoaXllLHJ5ZSw1MjkpO2ZlYig4MTcsMSx7fSxmSGIpO18uZGY9ZnVuY3Rpb24gZ0hiKGEpe3RoaXMuYz1hO2VIYih0aGlzLG5ldyB4SGIpfTt2YXIgdE49c2ZiKGl5ZSxzeWUsODE3KTtmZWIoMTc4NCwxLHs2OTM6MX0sbEhiKTtfLmJmPWZ1bmN0aW9uIG1IYihhKXtpSGIodGhpcyxSRChhLDQ3MykpfTt2YXIgcE49c2ZiKGl5ZSx0eWUsMTc4NCk7ZmViKDE3ODUsMSxmeWUsb0hiKTtfLk5lPWZ1bmN0aW9uIHBIYihhLGIpe3JldHVybiBuSGIoUkQoYSw2MCksUkQoYiw2MCkpfTtfLkZiPWZ1bmN0aW9uIHFIYihhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gckhiKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBvTj1zZmIoaXllLHV5ZSwxNzg1KTtmZWIoNDczLDEsezQ3MzoxfSxzSGIpO18uYT1mYWxzZTt2YXIgcU49c2ZiKGl5ZSx2eWUsNDczKTtmZWIoMTc4NiwxLGZ5ZSx0SGIpO18uTmU9ZnVuY3Rpb24gdUhiKGEsYil7cmV0dXJuIGhIYihSRChhLDQ3MyksUkQoYiw0NzMpKX07Xy5GYj1mdW5jdGlvbiB2SGIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIHdIYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgck49c2ZiKGl5ZSx3eWUsMTc4Nik7ZmViKDE3ODcsMSx4eWUseEhiKTtfLkxiPWZ1bmN0aW9uIHlIYihhKXtyZXR1cm4gUkQoYSw2MCksdHJ1ZX07Xy5GYj1mdW5jdGlvbiB6SGIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk1iPWZ1bmN0aW9uIEFIYihhKXtyZXR1cm4gUkQoYSw2MCksdHJ1ZX07dmFyIHNOPXNmYihpeWUsJ1NjYW5saW5lQ29uc3RyYWludENhbGN1bGF0b3IvbGFtYmRhJDEkVHlwZScsMTc4Nyk7ZmViKDQzNiwyMix7MzoxLDM0OjEsMjI6MSw0MzY6MX0sRUhiKTt2YXIgQkhiLENIYjt2YXIgdU49dGZiKHl5ZSwnSGlnaExldmVsU29ydGluZ0NyaXRlcmlvbicsNDM2LFdJLEdIYixGSGIpO3ZhciBISGI7ZmViKDQzNSwyMix7MzoxLDM0OjEsMjI6MSw0MzU6MX0sTUhiKTt2YXIgSkhiLEtIYjt2YXIgdk49dGZiKHl5ZSwnTG93TGV2ZWxTb3J0aW5nQ3JpdGVyaW9uJyw0MzUsV0ksT0hiLE5IYik7dmFyIFBIYjt2YXIgQjI9dWZiKHp5ZSwnSUxheW91dE1ldGFEYXRhUHJvdmlkZXInKTtmZWIoODY0LDEsRXllLFpIYik7Xy5oZj1mdW5jdGlvbiAkSGIoYSl7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsQXllKSxGeWUpLCdQb2x5b21pbm8gVHJhdmVyc2FsIFN0cmF0ZWd5JyksJ1RyYXZlcnNhbCBzdHJhdGVneSBmb3IgdHJ5aW5nIGRpZmZlcmVudCBjYW5kaWRhdGUgcG9zaXRpb25zIGZvciBwb2x5b21pbm9lcy4nKSxYSGIpLChraWQoKSxlaWQpKSx4TikseHNiKChZaGQoKSxXaGQpKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxCeWUpLEZ5ZSksJ1BvbHlvbWlubyBTZWNvbmRhcnkgU29ydGluZyBDcml0ZXJpb24nKSwnUG9zc2libGUgc2Vjb25kYXJ5IHNvcnRpbmcgY3JpdGVyaWEgZm9yIHRoZSBwcm9jZXNzaW5nIG9yZGVyIG9mIHBvbHlvbWlub2VzLiBUaGV5IGFyZSB1c2VkIHdoZW4gcG9seW9taW5vZXMgYXJlIGVxdWFsIGFjY29yZGluZyB0byB0aGUgcHJpbWFyeSBzb3J0aW5nIGNyaXRlcmlvbiBIaWdoTGV2ZWxTb3J0aW5nQ3JpdGVyaW9uLicpLFZIYiksZWlkKSx2TikseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsQ3llKSxGeWUpLCdQb2x5b21pbm8gUHJpbWFyeSBTb3J0aW5nIENyaXRlcmlvbicpLCdQb3NzaWJsZSBwcmltYXJ5IHNvcnRpbmcgY3JpdGVyaWEgZm9yIHRoZSBwcm9jZXNzaW5nIG9yZGVyIG9mIHBvbHlvbWlub2VzLicpLFRIYiksZWlkKSx1TikseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsRHllKSxGeWUpLCdGaWxsIFBvbHlvbWlub2VzJyksJ1VzZSB0aGUgUHJvZmlsZSBGaWxsIGFsZ29yaXRobSB0byBmaWxsIHBvbHlvbWlub2VzIHRvIHByZXZlbnQgc21hbGwgcG9seW9taW5vZXMgZnJvbSBiZWluZyBwbGFjZWQgaW5zaWRlIG9mIGJpZyBwb2x5b21pbm9lcyB3aXRoIGxhcmdlIGhvbGVzLiBNaWdodCBpbmNyZWFzZSBwYWNraW5nIGFyZWEuJyksKEdlYigpLHRydWUpKSxjaWQpLFFJKSx4c2IoV2hkKSkpKX07dmFyIFJIYixTSGIsVEhiLFVIYixWSGIsV0hiLFhIYjt2YXIgd049c2ZiKHl5ZSwnUG9seW9taW5vT3B0aW9ucycsODY0KTtmZWIoMjU3LDIyLHszOjEsMzQ6MSwyMjoxLDI1NzoxfSxqSWIpO3ZhciBfSGIsYUliLGJJYixjSWIsZEliLGVJYixmSWIsZ0liLGhJYjt2YXIgeE49dGZiKHl5ZSwnVHJhdmVyc2FsU3RyYXRlZ3knLDI1NyxXSSxsSWIsa0liKTt2YXIgbUliO2ZlYigyMTgsMSx7MjE4OjF9LHBJYik7Xy5JYj1mdW5jdGlvbiBxSWIoKXtyZXR1cm4gJ05FZGdlW2lkPScrdGhpcy5iKycgdz0nK3RoaXMuZysnIGQ9Jyt0aGlzLmErJ10nfTtfLmE9MTtfLmI9MDtfLmM9MDtfLmY9ZmFsc2U7Xy5nPTA7dmFyIHpOPXNmYihHeWUsJ05FZGdlJywyMTgpO2ZlYigxODIsMSx7fSx3SWIpO3ZhciB5Tj1zZmIoR3llLCdORWRnZS9ORWRnZUJ1aWxkZXInLDE4Mik7ZmViKDY2MiwxLHt9LEJJYik7dmFyIEFOPXNmYihHeWUsJ05HcmFwaCcsNjYyKTtmZWIoMTI1LDEsezEyNToxfSxESWIpO18uYz0tMTtfLmQ9MDtfLmU9MDtfLmk9LTE7Xy5qPWZhbHNlO3ZhciBETj1zZmIoR3llLCdOTm9kZScsMTI1KTtmZWIoODA4LDEsRXhlLEdJYik7Xy5KYz1mdW5jdGlvbiBPSWIoYSl7eGdiKHRoaXMsYSl9O18uTGM9ZnVuY3Rpb24gVkliKCl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgU3diKHRoaXMsMTYpKX07Xy5qZD1mdW5jdGlvbiAkSWIoYSl7dHZiKHRoaXMsYSl9O18uTmM9ZnVuY3Rpb24gX0liKCl7cmV0dXJuIG5ldyBTd2IodGhpcywxNil9O18uT2M9ZnVuY3Rpb24gYUpiKCl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgU3diKHRoaXMsMTYpKX07Xy5iZD1mdW5jdGlvbiBISWIoYSxiKXsrK3RoaXMuYjtRbWIodGhpcy5hLGEsYil9O18uRmM9ZnVuY3Rpb24gSUliKGEpe3JldHVybiBFSWIodGhpcyxhKX07Xy5jZD1mdW5jdGlvbiBKSWIoYSxiKXsrK3RoaXMuYjtyZXR1cm4gU21iKHRoaXMuYSxhLGIpfTtfLkdjPWZ1bmN0aW9uIEtJYihhKXsrK3RoaXMuYjtyZXR1cm4gVG1iKHRoaXMuYSxhKX07Xy4kYj1mdW5jdGlvbiBMSWIoKXsrK3RoaXMuYjthRmIodGhpcy5hLmMsMCl9O18uSGM9ZnVuY3Rpb24gTUliKGEpe3JldHVybiBXbWIodGhpcy5hLGEsMCkhPS0xfTtfLkljPWZ1bmN0aW9uIE5JYihhKXtyZXR1cm4gQmUodGhpcy5hLGEpfTtfLlhiPWZ1bmN0aW9uIFBJYihhKXtyZXR1cm4gVm1iKHRoaXMuYSxhKX07Xy5kZD1mdW5jdGlvbiBRSWIoYSl7cmV0dXJuIFdtYih0aGlzLmEsYSwwKX07Xy5kYz1mdW5jdGlvbiBSSWIoKXtyZXR1cm4gdGhpcy5hLmMubGVuZ3RoPT0wfTtfLktjPWZ1bmN0aW9uIFNJYigpe3JldHVybiBOcihuZXcgQW5iKHRoaXMuYSkpfTtfLmVkPWZ1bmN0aW9uIFRJYigpe3Rocm93IEFkYihuZXcgamliKX07Xy5mZD1mdW5jdGlvbiBVSWIoYSl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLmdkPWZ1bmN0aW9uIFdJYihhKXsrK3RoaXMuYjtyZXR1cm4gWG1iKHRoaXMuYSxhKX07Xy5NYz1mdW5jdGlvbiBYSWIoYSl7cmV0dXJuIEZJYih0aGlzLGEpfTtfLmhkPWZ1bmN0aW9uIFlJYihhLGIpeysrdGhpcy5iO3JldHVybiAkbWIodGhpcy5hLGEsYil9O18uZ2M9ZnVuY3Rpb24gWkliKCl7cmV0dXJuIHRoaXMuYS5jLmxlbmd0aH07Xy5rZD1mdW5jdGlvbiBiSmIoYSxiKXtyZXR1cm4gbmV3IFJrYih0aGlzLmEsYSxiKX07Xy5QYz1mdW5jdGlvbiBjSmIoKXtyZXR1cm4gVUViKHRoaXMuYS5jKX07Xy5RYz1mdW5jdGlvbiBkSmIoYSl7cmV0dXJuIGFuYih0aGlzLmEsYSl9O18uYj0wO3ZhciBCTj1zZmIoR3llLCdOTm9kZS9DaGFuZ2VBd2FyZUFycmF5TGlzdCcsODA4KTtmZWIoMjc1LDEse30sZ0piKTt2YXIgQ049c2ZiKEd5ZSwnTk5vZGUvTk5vZGVCdWlsZGVyJywyNzUpO2ZlYigxNjk1LDEse30sQkpiKTtfLmE9ZmFsc2U7Xy5mPWx2ZTtfLmo9MDt2YXIgRU49c2ZiKEd5ZSwnTmV0d29ya1NpbXBsZXgnLDE2OTUpO2ZlYigxMzE0LDEsUXZlLEhKYik7Xy5DZD1mdW5jdGlvbiBJSmIoYSl7R0piKHRoaXMuYSxSRChhLDY5NSksdHJ1ZSxmYWxzZSl9O3ZhciBGTj1zZmIoSXllLCdOb2RlTGFiZWxBbmRTaXplQ2FsY3VsYXRvci9sYW1iZGEkMCRUeXBlJywxMzE0KTtmZWIoNTY1LDEse30sUEpiKTtfLmI9dHJ1ZTtfLmM9dHJ1ZTtfLmQ9dHJ1ZTtfLmU9dHJ1ZTt2YXIgR049c2ZiKEl5ZSwnTm9kZU1hcmdpbkNhbGN1bGF0b3InLDU2NSk7ZmViKDIxNywxLHsyMTc6MX0pO18uaj1mYWxzZTtfLms9ZmFsc2U7dmFyIElOPXNmYihKeWUsJ0NlbGwnLDIxNyk7ZmViKDEyNywyMTcsezEyNzoxLDIxNzoxfSxUSmIpO18uamY9ZnVuY3Rpb24gVUpiKCl7cmV0dXJuIFNKYih0aGlzKX07Xy5rZj1mdW5jdGlvbiBWSmIoKXt2YXIgYTthPXRoaXMubjtyZXR1cm4gdGhpcy5hLmErYS5iK2EuY307dmFyIEhOPXNmYihKeWUsJ0F0b21pY0NlbGwnLDEyNyk7ZmViKDIzNywyMix7MzoxLDM0OjEsMjI6MSwyMzc6MX0sJEpiKTt2YXIgV0piLFhKYixZSmI7dmFyIEpOPXRmYihKeWUsJ0NvbnRhaW5lckFyZWEnLDIzNyxXSSxhS2IsX0piKTt2YXIgYktiO2ZlYigzMzYsMjE3LEx5ZSk7dmFyIEtOPXNmYihKeWUsJ0NvbnRhaW5lckNlbGwnLDMzNik7ZmViKDE1MzgsMzM2LEx5ZSx3S2IpO18uamY9ZnVuY3Rpb24geEtiKCl7dmFyIGE7YT0wO3RoaXMuZT90aGlzLmI/KGE9dGhpcy5iLmIpOiEhdGhpcy5hWzFdWzFdJiYoYT10aGlzLmFbMV1bMV0uamYoKSk6KGE9dktiKHRoaXMscktiKHRoaXMsdHJ1ZSkpKTtyZXR1cm4gYT4wP2ErdGhpcy5uLmQrdGhpcy5uLmE6MH07Xy5rZj1mdW5jdGlvbiB5S2IoKXt2YXIgYSxiLGMsZCxlO2U9MDtpZih0aGlzLmUpe3RoaXMuYj8oZT10aGlzLmIuYSk6ISF0aGlzLmFbMV1bMV0mJihlPXRoaXMuYVsxXVsxXS5rZigpKX1lbHNlIGlmKHRoaXMuZyl7ZT12S2IodGhpcyxwS2IodGhpcyxudWxsLHRydWUpKX1lbHNle2ZvcihiPShaSmIoKSxjRChXQyhKTiwxKSxqd2UsMjM3LDAsW1dKYixYSmIsWUpiXSkpLGM9MCxkPWIubGVuZ3RoO2M8ZDsrK2Mpe2E9YltjXTtlPSR3bmQuTWF0aC5tYXgoZSx2S2IodGhpcyxwS2IodGhpcyxhLHRydWUpKSl9fXJldHVybiBlPjA/ZSt0aGlzLm4uYit0aGlzLm4uYzowfTtfLmxmPWZ1bmN0aW9uIHpLYigpe3ZhciBhLGIsYyxkLGU7aWYodGhpcy5nKXthPXBLYih0aGlzLG51bGwsZmFsc2UpO2ZvcihjPShaSmIoKSxjRChXQyhKTiwxKSxqd2UsMjM3LDAsW1dKYixYSmIsWUpiXSkpLGQ9MCxlPWMubGVuZ3RoO2Q8ZTsrK2Qpe2I9Y1tkXTtuS2IodGhpcyxiLGEpfX1lbHNle2ZvcihjPShaSmIoKSxjRChXQyhKTiwxKSxqd2UsMjM3LDAsW1dKYixYSmIsWUpiXSkpLGQ9MCxlPWMubGVuZ3RoO2Q8ZTsrK2Qpe2I9Y1tkXTthPXBLYih0aGlzLGIsZmFsc2UpO25LYih0aGlzLGIsYSl9fX07Xy5tZj1mdW5jdGlvbiBBS2IoKXt2YXIgYSxiLGMsZDtiPXRoaXMuaTthPXRoaXMubjtkPXJLYih0aGlzLGZhbHNlKTtsS2IodGhpcywoWkpiKCksV0piKSxiLmQrYS5kLGQpO2xLYih0aGlzLFlKYixiLmQrYi5hLWEuYS1kWzJdLGQpO2M9Yi5hLWEuZC1hLmE7aWYoZFswXT4wKXtkWzBdKz10aGlzLmQ7Yy09ZFswXX1pZihkWzJdPjApe2RbMl0rPXRoaXMuZDtjLT1kWzJdfXRoaXMuYy5hPSR3bmQuTWF0aC5tYXgoMCxjKTt0aGlzLmMuZD1iLmQrYS5kKyh0aGlzLmMuYS1jKS8yO2RbMV09JHduZC5NYXRoLm1heChkWzFdLGMpO2xLYih0aGlzLFhKYixiLmQrYS5kK2RbMF0tKGRbMV0tYykvMixkKX07Xy5iPW51bGw7Xy5kPTA7Xy5lPWZhbHNlO18uZj1mYWxzZTtfLmc9ZmFsc2U7dmFyIGlLYj0wLGpLYj0wO3ZhciBMTj1zZmIoSnllLCdHcmlkQ29udGFpbmVyQ2VsbCcsMTUzOCk7ZmViKDQ3MSwyMix7MzoxLDM0OjEsMjI6MSw0NzE6MX0sRktiKTt2YXIgQktiLENLYixES2I7dmFyIE1OPXRmYihKeWUsJ0hvcml6b250YWxMYWJlbEFsaWdubWVudCcsNDcxLFdJLEhLYixHS2IpO3ZhciBJS2I7ZmViKDMxNCwyMTcsezIxNzoxLDMxNDoxfSxUS2IsVUtiLFZLYik7Xy5qZj1mdW5jdGlvbiBXS2IoKXtyZXR1cm4gUEtiKHRoaXMpfTtfLmtmPWZ1bmN0aW9uIFhLYigpe3JldHVybiBRS2IodGhpcyl9O18uYT0wO18uYz1mYWxzZTt2YXIgTk49c2ZiKEp5ZSwnTGFiZWxDZWxsJywzMTQpO2ZlYigyNTIsMzM2LHsyMTc6MSwzMzY6MSwyNTI6MX0sZExiKTtfLmpmPWZ1bmN0aW9uIGVMYigpe3JldHVybiBZS2IodGhpcyl9O18ua2Y9ZnVuY3Rpb24gZkxiKCl7cmV0dXJuIFpLYih0aGlzKX07Xy5sZj1mdW5jdGlvbiBpTGIoKXskS2IodGhpcyl9O18ubWY9ZnVuY3Rpb24gakxiKCl7X0tiKHRoaXMpfTtfLmI9MDtfLmM9MDtfLmQ9ZmFsc2U7dmFyIFNOPXNmYihKeWUsJ1N0cmlwQ29udGFpbmVyQ2VsbCcsMjUyKTtmZWIoMTY5MSwxLG53ZSxrTGIpO18uTWI9ZnVuY3Rpb24gbExiKGEpe3JldHVybiBnTGIoUkQoYSwyMTcpKX07dmFyIE9OPXNmYihKeWUsJ1N0cmlwQ29udGFpbmVyQ2VsbC9sYW1iZGEkMCRUeXBlJywxNjkxKTtmZWIoMTY5MiwxLHt9LG1MYik7Xy5ZZT1mdW5jdGlvbiBuTGIoYSl7cmV0dXJuIFJEKGEsMjE3KS5rZigpfTt2YXIgUE49c2ZiKEp5ZSwnU3RyaXBDb250YWluZXJDZWxsL2xhbWJkYSQxJFR5cGUnLDE2OTIpO2ZlYigxNjkzLDEsbndlLG9MYik7Xy5NYj1mdW5jdGlvbiBwTGIoYSl7cmV0dXJuIGhMYihSRChhLDIxNykpfTt2YXIgUU49c2ZiKEp5ZSwnU3RyaXBDb250YWluZXJDZWxsL2xhbWJkYSQyJFR5cGUnLDE2OTMpO2ZlYigxNjk0LDEse30scUxiKTtfLlllPWZ1bmN0aW9uIHJMYihhKXtyZXR1cm4gUkQoYSwyMTcpLmpmKCl9O3ZhciBSTj1zZmIoSnllLCdTdHJpcENvbnRhaW5lckNlbGwvbGFtYmRhJDMkVHlwZScsMTY5NCk7ZmViKDQ3MiwyMix7MzoxLDM0OjEsMjI6MSw0NzI6MX0sd0xiKTt2YXIgc0xiLHRMYix1TGI7dmFyIFROPXRmYihKeWUsJ1ZlcnRpY2FsTGFiZWxBbGlnbm1lbnQnLDQ3MixXSSx5TGIseExiKTt2YXIgekxiO2ZlYig4MDAsMSx7fSxDTGIpO18uYz0wO18uZD0wO18uaz0wO18ucz0wO18udD0wO18udj1mYWxzZTtfLnc9MDtfLkQ9ZmFsc2U7Xy5GPWZhbHNlO3ZhciBXTj1zZmIoUnllLCdOb2RlQ29udGV4dCcsODAwKTtmZWIoMTUzNiwxLGZ5ZSxGTGIpO18uTmU9ZnVuY3Rpb24gR0xiKGEsYil7cmV0dXJuIEVMYihSRChhLDY0KSxSRChiLDY0KSl9O18uRmI9ZnVuY3Rpb24gSExiKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBJTGIoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFVOPXNmYihSeWUsJ05vZGVDb250ZXh0LzBtZXRob2RyZWYkY29tcGFyZVBvcnRTaWRlcyRUeXBlJywxNTM2KTtmZWIoMTUzNywxLGZ5ZSxKTGIpO18uTmU9ZnVuY3Rpb24gS0xiKGEsYil7cmV0dXJuIERMYihSRChhLDExNyksUkQoYiwxMTcpKX07Xy5GYj1mdW5jdGlvbiBMTGIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIE1MYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgVk49c2ZiKFJ5ZSwnTm9kZUNvbnRleHQvMW1ldGhvZHJlZiRjb21wYXJlUG9ydENvbnRleHRzJFR5cGUnLDE1MzcpO2ZlYigxNjQsMjIsezM6MSwzNDoxLDIyOjEsMTY0OjF9LGtNYik7dmFyIE5MYixPTGIsUExiLFFMYixSTGIsU0xiLFRMYixVTGIsVkxiLFdMYixYTGIsWUxiLFpMYiwkTGIsX0xiLGFNYixiTWIsY01iLGRNYixlTWIsZk1iLGdNYjt2YXIgWE49dGZiKFJ5ZSwnTm9kZUxhYmVsTG9jYXRpb24nLDE2NCxXSSxuTWIsbU1iKTt2YXIgb01iO2ZlYigxMTcsMSx7MTE3OjF9LHJNYik7Xy5hPWZhbHNlO3ZhciBZTj1zZmIoUnllLCdQb3J0Q29udGV4dCcsMTE3KTtmZWIoMTU0MSwxLFF2ZSxLTWIpO18uQ2Q9ZnVuY3Rpb24gTE1iKGEpe05LYihSRChhLDMxNCkpfTt2YXIgWk49c2ZiKFV5ZSxWeWUsMTU0MSk7ZmViKDE1NDIsMSxud2UsTU1iKTtfLk1iPWZ1bmN0aW9uIE5NYihhKXtyZXR1cm4gISFSRChhLDExNykuY307dmFyICROPXNmYihVeWUsV3llLDE1NDIpO2ZlYigxNTQzLDEsUXZlLE9NYik7Xy5DZD1mdW5jdGlvbiBQTWIoYSl7TktiKFJEKGEsMTE3KS5jKX07dmFyIF9OPXNmYihVeWUsJ0xhYmVsUGxhY2VyL2xhbWJkYSQyJFR5cGUnLDE1NDMpO3ZhciBRTWI7ZmViKDE1NDAsMSxRdmUsWU1iKTtfLkNkPWZ1bmN0aW9uIFpNYihhKXtSTWIoKTtxTWIoUkQoYSwxMTcpKX07dmFyIGFPPXNmYihVeWUsJ05vZGVMYWJlbEFuZFNpemVVdGlsaXRpZXMvbGFtYmRhJDAkVHlwZScsMTU0MCk7ZmViKDgwMSwxLFF2ZSxkTmIpO18uQ2Q9ZnVuY3Rpb24gZU5iKGEpe2JOYih0aGlzLmIsdGhpcy5jLHRoaXMuYSxSRChhLDE4NykpfTtfLmE9ZmFsc2U7Xy5jPWZhbHNlO3ZhciBiTz1zZmIoVXllLCdOb2RlTGFiZWxDZWxsQ3JlYXRvci9sYW1iZGEkMCRUeXBlJyw4MDEpO2ZlYigxNTM5LDEsUXZlLGtOYik7Xy5DZD1mdW5jdGlvbiBsTmIoYSl7ak5iKHRoaXMuYSxSRChhLDE4NykpfTt2YXIgY089c2ZiKFV5ZSwnUG9ydENvbnRleHRDcmVhdG9yL2xhbWJkYSQwJFR5cGUnLDE1MzkpO3ZhciBzTmI7ZmViKDE5MDIsMSx7fSxNTmIpO3ZhciBlTz1zZmIoWXllLCdHcmVlZHlSZWN0YW5nbGVTdHJpcE92ZXJsYXBSZW1vdmVyJywxOTAyKTtmZWIoMTkwMywxLGZ5ZSxPTmIpO18uTmU9ZnVuY3Rpb24gUE5iKGEsYil7cmV0dXJuIE5OYihSRChhLDIyNiksUkQoYiwyMjYpKX07Xy5GYj1mdW5jdGlvbiBRTmIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIFJOYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgZE89c2ZiKFl5ZSwnR3JlZWR5UmVjdGFuZ2xlU3RyaXBPdmVybGFwUmVtb3Zlci8wbWV0aG9kcmVmJGNvbXBhcmVCeVlDb29yZGluYXRlJFR5cGUnLDE5MDMpO2ZlYigxODQ5LDEse30sWU5iKTtfLmE9NTtfLmU9MDt2YXIga089c2ZiKFl5ZSwnUmVjdGFuZ2xlU3RyaXBPdmVybGFwUmVtb3ZlcicsMTg0OSk7ZmViKDE4NTAsMSxmeWUsYU9iKTtfLk5lPWZ1bmN0aW9uIGJPYihhLGIpe3JldHVybiBaTmIoUkQoYSwyMjYpLFJEKGIsMjI2KSl9O18uRmI9ZnVuY3Rpb24gY09iKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBkT2IoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIGZPPXNmYihZeWUsJ1JlY3RhbmdsZVN0cmlwT3ZlcmxhcFJlbW92ZXIvMG1ldGhvZHJlZiRjb21wYXJlTGVmdFJlY3RhbmdsZUJvcmRlcnMkVHlwZScsMTg1MCk7ZmViKDE4NTIsMSxmeWUsZU9iKTtfLk5lPWZ1bmN0aW9uIGZPYihhLGIpe3JldHVybiAkTmIoUkQoYSwyMjYpLFJEKGIsMjI2KSl9O18uRmI9ZnVuY3Rpb24gZ09iKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBoT2IoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIGdPPXNmYihZeWUsJ1JlY3RhbmdsZVN0cmlwT3ZlcmxhcFJlbW92ZXIvMW1ldGhvZHJlZiRjb21wYXJlUmlnaHRSZWN0YW5nbGVCb3JkZXJzJFR5cGUnLDE4NTIpO2ZlYig0MTcsMjIsezM6MSwzNDoxLDIyOjEsNDE3OjF9LG5PYik7dmFyIGlPYixqT2Isa09iLGxPYjt2YXIgaE89dGZiKFl5ZSwnUmVjdGFuZ2xlU3RyaXBPdmVybGFwUmVtb3Zlci9PdmVybGFwUmVtb3ZhbERpcmVjdGlvbicsNDE3LFdJLHBPYixvT2IpO3ZhciBxT2I7ZmViKDIyNiwxLHsyMjY6MX0sc09iKTt2YXIgaU89c2ZiKFl5ZSwnUmVjdGFuZ2xlU3RyaXBPdmVybGFwUmVtb3Zlci9SZWN0YW5nbGVOb2RlJywyMjYpO2ZlYigxODUxLDEsUXZlLHRPYik7Xy5DZD1mdW5jdGlvbiB1T2IoYSl7VE5iKHRoaXMuYSxSRChhLDIyNikpfTt2YXIgak89c2ZiKFl5ZSwnUmVjdGFuZ2xlU3RyaXBPdmVybGFwUmVtb3Zlci9sYW1iZGEkMSRUeXBlJywxODUxKTtmZWIoMTMyMywxLGZ5ZSx4T2IpO18uTmU9ZnVuY3Rpb24geU9iKGEsYil7cmV0dXJuIHdPYihSRChhLDE3NiksUkQoYiwxNzYpKX07Xy5GYj1mdW5jdGlvbiB6T2IoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIEFPYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgb089c2ZiKCR5ZSwnUG9seW9taW5vQ29tcGFjdG9yL0Nvcm5lckNhc2VzR3JlYXRlclRoYW5SZXN0Q29tcGFyYXRvcicsMTMyMyk7ZmViKDEzMjYsMSx7fSxCT2IpO18uS2I9ZnVuY3Rpb24gQ09iKGEpe3JldHVybiBSRChhLDMzNCkuYX07dmFyIGxPPXNmYigkeWUsJ1BvbHlvbWlub0NvbXBhY3Rvci9Db3JuZXJDYXNlc0dyZWF0ZXJUaGFuUmVzdENvbXBhcmF0b3IvbGFtYmRhJDAkVHlwZScsMTMyNik7ZmViKDEzMjcsMSxud2UsRE9iKTtfLk1iPWZ1bmN0aW9uIEVPYihhKXtyZXR1cm4gUkQoYSwzMzIpLmF9O3ZhciBtTz1zZmIoJHllLCdQb2x5b21pbm9Db21wYWN0b3IvQ29ybmVyQ2FzZXNHcmVhdGVyVGhhblJlc3RDb21wYXJhdG9yL2xhbWJkYSQxJFR5cGUnLDEzMjcpO2ZlYigxMzI4LDEsbndlLEZPYik7Xy5NYj1mdW5jdGlvbiBHT2IoYSl7cmV0dXJuIFJEKGEsMzMyKS5hfTt2YXIgbk89c2ZiKCR5ZSwnUG9seW9taW5vQ29tcGFjdG9yL0Nvcm5lckNhc2VzR3JlYXRlclRoYW5SZXN0Q29tcGFyYXRvci9sYW1iZGEkMiRUeXBlJywxMzI4KTtmZWIoMTMyMSwxLGZ5ZSxJT2IpO18uTmU9ZnVuY3Rpb24gSk9iKGEsYil7cmV0dXJuIEhPYihSRChhLDE3NiksUkQoYiwxNzYpKX07Xy5GYj1mdW5jdGlvbiBLT2IoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIExPYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgcU89c2ZiKCR5ZSwnUG9seW9taW5vQ29tcGFjdG9yL01pbk51bU9mRXh0ZW5zaW9uRGlyZWN0aW9uc0NvbXBhcmF0b3InLDEzMjEpO2ZlYigxMzI0LDEse30sTU9iKTtfLktiPWZ1bmN0aW9uIE5PYihhKXtyZXR1cm4gUkQoYSwzMzQpLmF9O3ZhciBwTz1zZmIoJHllLCdQb2x5b21pbm9Db21wYWN0b3IvTWluTnVtT2ZFeHRlbnNpb25EaXJlY3Rpb25zQ29tcGFyYXRvci9sYW1iZGEkMCRUeXBlJywxMzI0KTtmZWIoNzgxLDEsZnllLFBPYik7Xy5OZT1mdW5jdGlvbiBRT2IoYSxiKXtyZXR1cm4gT09iKFJEKGEsMTc2KSxSRChiLDE3NikpfTtfLkZiPWZ1bmN0aW9uIFJPYihhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gU09iKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciByTz1zZmIoJHllLCdQb2x5b21pbm9Db21wYWN0b3IvTWluTnVtT2ZFeHRlbnNpb25zQ29tcGFyYXRvcicsNzgxKTtmZWIoMTMxOSwxLGZ5ZSxVT2IpO18uTmU9ZnVuY3Rpb24gVk9iKGEsYil7cmV0dXJuIFRPYihSRChhLDMzMCksUkQoYiwzMzApKX07Xy5GYj1mdW5jdGlvbiBXT2IoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIFhPYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgdE89c2ZiKCR5ZSwnUG9seW9taW5vQ29tcGFjdG9yL01pblBlcmltZXRlckNvbXBhcmF0b3InLDEzMTkpO2ZlYigxMzIwLDEsZnllLFpPYik7Xy5OZT1mdW5jdGlvbiAkT2IoYSxiKXtyZXR1cm4gWU9iKFJEKGEsMzMwKSxSRChiLDMzMCkpfTtfLkZiPWZ1bmN0aW9uIF9PYihhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gYVBiKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBzTz1zZmIoJHllLCdQb2x5b21pbm9Db21wYWN0b3IvTWluUGVyaW1ldGVyQ29tcGFyYXRvcldpdGhTaGFwZScsMTMyMCk7ZmViKDEzMjIsMSxmeWUsY1BiKTtfLk5lPWZ1bmN0aW9uIGRQYihhLGIpe3JldHVybiBiUGIoUkQoYSwxNzYpLFJEKGIsMTc2KSl9O18uRmI9ZnVuY3Rpb24gZVBiKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBmUGIoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIHZPPXNmYigkeWUsJ1BvbHlvbWlub0NvbXBhY3Rvci9TaW5nbGVFeHRlbnNpb25TaWRlR3JlYXRlclRoYW5SZXN0Q29tcGFyYXRvcicsMTMyMik7ZmViKDEzMjUsMSx7fSxnUGIpO18uS2I9ZnVuY3Rpb24gaFBiKGEpe3JldHVybiBSRChhLDMzNCkuYX07dmFyIHVPPXNmYigkeWUsJ1BvbHlvbWlub0NvbXBhY3Rvci9TaW5nbGVFeHRlbnNpb25TaWRlR3JlYXRlclRoYW5SZXN0Q29tcGFyYXRvci9sYW1iZGEkMCRUeXBlJywxMzI1KTtmZWIoNzgyLDEse30sa1BiKTtfLlZlPWZ1bmN0aW9uIGxQYihhLGIpe3JldHVybiBqUGIodGhpcyxSRChhLDQyKSxSRChiLDE3NikpfTt2YXIgd089c2ZiKCR5ZSwnU3VjY2Vzc29yQ29tYmluYXRpb24nLDc4Mik7ZmViKDY0OSwxLHt9LG5QYik7Xy5WZT1mdW5jdGlvbiBvUGIoYSxiKXt2YXIgYztyZXR1cm4gbVBiKChjPVJEKGEsNDIpLFJEKGIsMTc2KSxjKSl9O3ZhciB4Tz1zZmIoJHllLCdTdWNjZXNzb3JKaXR0ZXInLDY0OSk7ZmViKDY0OCwxLHt9LHFQYik7Xy5WZT1mdW5jdGlvbiByUGIoYSxiKXt2YXIgYztyZXR1cm4gcFBiKChjPVJEKGEsNDIpLFJEKGIsMTc2KSxjKSl9O3ZhciB5Tz1zZmIoJHllLCdTdWNjZXNzb3JMaW5lQnlMaW5lJyw2NDgpO2ZlYig1NzMsMSx7fSx0UGIpO18uVmU9ZnVuY3Rpb24gdVBiKGEsYil7dmFyIGM7cmV0dXJuIHNQYigoYz1SRChhLDQyKSxSRChiLDE3NiksYykpfTt2YXIgek89c2ZiKCR5ZSwnU3VjY2Vzc29yTWFuaGF0dGFuJyw1NzMpO2ZlYigxMzQ0LDEse30sd1BiKTtfLlZlPWZ1bmN0aW9uIHhQYihhLGIpe3ZhciBjO3JldHVybiB2UGIoKGM9UkQoYSw0MiksUkQoYiwxNzYpLGMpKX07dmFyIEFPPXNmYigkeWUsJ1N1Y2Nlc3Nvck1heE5vcm1XaW5kaW5nSW5NYXRoUG9zU2Vuc2UnLDEzNDQpO2ZlYig0MDksMSx7fSxBUGIpO18uVmU9ZnVuY3Rpb24gQlBiKGEsYil7cmV0dXJuIHlQYih0aGlzLGEsYil9O18uYz1mYWxzZTtfLmQ9ZmFsc2U7Xy5lPWZhbHNlO18uZj1mYWxzZTt2YXIgQ089c2ZiKCR5ZSwnU3VjY2Vzc29yUXVhZHJhbnRzR2VuZXJpYycsNDA5KTtmZWIoMTM0NSwxLHt9LENQYik7Xy5LYj1mdW5jdGlvbiBEUGIoYSl7cmV0dXJuIFJEKGEsMzM0KS5hfTt2YXIgQk89c2ZiKCR5ZSwnU3VjY2Vzc29yUXVhZHJhbnRzR2VuZXJpYy9sYW1iZGEkMCRUeXBlJywxMzQ1KTtmZWIoMzMyLDIyLHszOjEsMzQ6MSwyMjoxLDMzMjoxfSxKUGIpO18uYT1mYWxzZTt2YXIgRVBiLEZQYixHUGIsSFBiO3ZhciBETz10ZmIoZHplLGV6ZSwzMzIsV0ksTFBiLEtQYik7dmFyIE1QYjtmZWIoMTMxNywxLHt9KTtfLkliPWZ1bmN0aW9uIFVQYigpe3ZhciBhLGIsYyxkLGUsZjtjPScgJzthPXNnYigwKTtmb3IoZT0wO2U8dGhpcy5vO2UrKyl7Yys9JycrYS5hO2E9c2diKE9QYihhLmEpKX1jKz0nXFxuJzthPXNnYigwKTtmb3IoZj0wO2Y8dGhpcy5wO2YrKyl7Yys9JycrYS5hO2E9c2diKE9QYihhLmEpKTtmb3IoZD0wO2Q8dGhpcy5vO2QrKyl7Yj1TUGIodGhpcyxkLGYpO0RkYihiLDApPT0wPyhjKz0nXycpOkRkYihiLDEpPT0wPyhjKz0nWCcpOihjKz0nMCcpfWMrPSdcXG4nfXJldHVybiB6aGIoYywwLGMubGVuZ3RoLTEpfTtfLm89MDtfLnA9MDt2YXIgSE89c2ZiKGR6ZSwnVHdvQml0R3JpZCcsMTMxNyk7ZmViKDMzMCwxMzE3LHszMzA6MX0sZ1FiKTtfLmo9MDtfLms9MDt2YXIgRU89c2ZiKGR6ZSwnUGxhbmFyR3JpZCcsMzMwKTtmZWIoMTc2LDMzMCx7MzMwOjEsMTc2OjF9KTtfLmc9MDtfLmk9MDt2YXIgRk89c2ZiKGR6ZSwnUG9seW9taW5vJywxNzYpO3ZhciBVNT11ZmIoanplLGt6ZSk7ZmViKDEzNywxLGx6ZSxxUWIpO18ucWY9ZnVuY3Rpb24gdVFiKGEsYil7cmV0dXJuIG9RYih0aGlzLGEsYil9O18ubmY9ZnVuY3Rpb24gclFiKCl7cmV0dXJuIGxRYih0aGlzKX07Xy5vZj1mdW5jdGlvbiBzUWIoYSl7cmV0dXJuIG1RYih0aGlzLGEpfTtfLnBmPWZ1bmN0aW9uIHRRYihhKXtyZXR1cm4gblFiKHRoaXMsYSl9O3ZhciBXNT1zZmIoanplLCdNYXBQcm9wZXJ0eUhvbGRlcicsMTM3KTtmZWIoMTMxOCwxMzcsbHplLHZRYik7dmFyIEdPPXNmYihkemUsJ1BvbHlvbWlub2VzJywxMzE4KTt2YXIgd1FiPWZhbHNlLHhRYix5UWI7ZmViKDE4MjgsMSxRdmUsR1FiKTtfLkNkPWZ1bmN0aW9uIEhRYihhKXtBUWIoUkQoYSwyMjUpKX07dmFyIElPPXNmYihtemUsJ0RlcHRoRmlyc3RDb21wYWN0aW9uLzBtZXRob2RyZWYkY29tcGFjdFRyZWUkVHlwZScsMTgyOCk7ZmViKDgyNSwxLFF2ZSxJUWIpO18uQ2Q9ZnVuY3Rpb24gSlFiKGEpe0RRYih0aGlzLmEsUkQoYSwyMjUpKX07dmFyIEpPPXNmYihtemUsJ0RlcHRoRmlyc3RDb21wYWN0aW9uL2xhbWJkYSQxJFR5cGUnLDgyNSk7ZmViKDE4MjksMSxRdmUsS1FiKTtfLkNkPWZ1bmN0aW9uIExRYihhKXtFUWIodGhpcy5hLHRoaXMuYix0aGlzLmMsUkQoYSwyMjUpKX07dmFyIEtPPXNmYihtemUsJ0RlcHRoRmlyc3RDb21wYWN0aW9uL2xhbWJkYSQyJFR5cGUnLDE4MjkpO3ZhciBNUWIsTlFiO2ZlYig2OCwxLHs2ODoxfSxUUWIpO3ZhciBMTz1zZmIobXplLCdOb2RlJyw2OCk7ZmViKDEyMTQsMSx7fSxXUWIpO3ZhciBRTz1zZmIobXplLCdTY2FubGluZU92ZXJsYXBDaGVjaycsMTIxNCk7ZmViKDEyMTUsMSx7NjkzOjF9LCRRYik7Xy5iZj1mdW5jdGlvbiBfUWIoYSl7WVFiKHRoaXMsUkQoYSw0NTEpKX07dmFyIE5PPXNmYihtemUsJ1NjYW5saW5lT3ZlcmxhcENoZWNrL092ZXJsYXBzU2NhbmxpbmVIYW5kbGVyJywxMjE1KTtmZWIoMTIxNiwxLGZ5ZSxiUmIpO18uTmU9ZnVuY3Rpb24gY1JiKGEsYil7cmV0dXJuIGFSYihSRChhLDY4KSxSRChiLDY4KSl9O18uRmI9ZnVuY3Rpb24gZFJiKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBlUmIoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIE1PPXNmYihtemUsJ1NjYW5saW5lT3ZlcmxhcENoZWNrL092ZXJsYXBzU2NhbmxpbmVIYW5kbGVyL2xhbWJkYSQwJFR5cGUnLDEyMTYpO2ZlYig0NTEsMSx7NDUxOjF9LGZSYik7Xy5hPWZhbHNlO3ZhciBPTz1zZmIobXplLCdTY2FubGluZU92ZXJsYXBDaGVjay9UaW1lc3RhbXAnLDQ1MSk7ZmViKDEyMTcsMSxmeWUsZ1JiKTtfLk5lPWZ1bmN0aW9uIGhSYihhLGIpe3JldHVybiBYUWIoUkQoYSw0NTEpLFJEKGIsNDUxKSl9O18uRmI9ZnVuY3Rpb24gaVJiKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBqUmIoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFBPPXNmYihtemUsJ1NjYW5saW5lT3ZlcmxhcENoZWNrL2xhbWJkYSQwJFR5cGUnLDEyMTcpO2ZlYig1NTcsMSx7fSxrUmIpO3ZhciBSTz1zZmIobnplLCdTVkdJbWFnZScsNTU3KTtmZWIoMzM0LDEsezMzNDoxfSxsUmIpO18uSWI9ZnVuY3Rpb24gbVJiKCl7cmV0dXJuICcoJyt0aGlzLmErcHZlK3RoaXMuYitwdmUrdGhpcy5jKycpJ307dmFyIFNPPXNmYihuemUsJ1VuaXF1ZVRyaXBsZScsMzM0KTtmZWIoMjA1LDEsb3plKTt2YXIgZjI9c2ZiKHB6ZSwnQWJzdHJhY3RMYXlvdXRQcm92aWRlcicsMjA1KTtmZWIoMTExNCwyMDUsb3plLHBSYik7Xy5yZj1mdW5jdGlvbiBxUmIoYSxiKXt2YXIgYyxkLGUsZjtiLlVnKHF6ZSwxKTt0aGlzLmE9S2ZiKFVEKEd4ZChhLCh0U2IoKSxzU2IpKSkpO2lmKEh4ZChhLGlTYikpe2U9V0QoR3hkKGEsaVNiKSk7Yz1zZ2QoeWdkKCksZSk7aWYoYyl7ZD1SRChsdGQoYy5mKSwyMDUpO2QucmYoYSxiLmVoKDEpKX19Zj1uZXcgclRiKHRoaXMuYSk7dGhpcy5iPXBUYihmLGEpO3N3aXRjaChSRChHeGQoYSwoZVNiKCksYVNiKSksNDg5KS5nKXtjYXNlIDA6c1JiKG5ldyB3UmIsdGhpcy5iKTtJeGQoYSxsU2IsbVFiKHRoaXMuYixsU2IpKTticmVhaztkZWZhdWx0OmdpYigpO1N0cmluZy5mcm9tQ2hhckNvZGUoMTApO31oVGIoZik7SXhkKGEsa1NiLHRoaXMuYik7Yi5WZygpfTtfLmE9MDt2YXIgVE89c2ZiKHJ6ZSwnRGlzQ29MYXlvdXRQcm92aWRlcicsMTExNCk7ZmViKDEyMDgsMSx7fSx3UmIpO18uYz1mYWxzZTtfLmU9MDtfLmY9MDt2YXIgVU89c2ZiKHJ6ZSwnRGlzQ29Qb2x5b21pbm9Db21wYWN0b3InLDEyMDgpO2ZlYig1NjcsMSx7NTY3OjF9LERSYik7Xy5iPXRydWU7dmFyIFZPPXNmYihzemUsJ0RDQ29tcG9uZW50Jyw1NjcpO2ZlYig0MDYsMjIsezM6MSwzNDoxLDIyOjEsNDA2OjF9LEpSYik7Xy5hPWZhbHNlO3ZhciBFUmIsRlJiLEdSYixIUmI7dmFyIFdPPXRmYihzemUsJ0RDRGlyZWN0aW9uJyw0MDYsV0ksTFJiLEtSYik7dmFyIE1SYjtmZWIoMjcyLDEzNyx7MzoxLDI3MjoxLDk2OjEsMTM3OjF9LE9SYik7dmFyIFhPPXNmYihzemUsJ0RDRWxlbWVudCcsMjcyKTtmZWIoNDA3LDEsezQwNzoxfSxRUmIpO18uYz0wO3ZhciBZTz1zZmIoc3plLCdEQ0V4dGVuc2lvbicsNDA3KTtmZWIoNzYyLDEzNyxsemUsVFJiKTt2YXIgWk89c2ZiKHN6ZSwnRENHcmFwaCcsNzYyKTtmZWIoNDg5LDIyLHszOjEsMzQ6MSwyMjoxLDQ4OToxfSxXUmIpO3ZhciBVUmI7dmFyICRPPXRmYih0emUsdXplLDQ4OSxXSSxZUmIsWFJiKTt2YXIgWlJiO2ZlYig4NjUsMSxFeWUsZlNiKTtfLmhmPWZ1bmN0aW9uIGdTYihhKXtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCx2emUpLHp6ZSksJ0Nvbm5lY3RlZCBDb21wb25lbnRzIENvbXBhY3Rpb24gU3RyYXRlZ3knKSwnU3RyYXRlZ3kgZm9yIHBhY2tpbmcgZGlmZmVyZW50IGNvbm5lY3RlZCBjb21wb25lbnRzIGluIG9yZGVyIHRvIHNhdmUgc3BhY2UgYW5kIGVuaGFuY2UgcmVhZGFiaWxpdHkgb2YgYSBncmFwaC4nKSxiU2IpLChraWQoKSxlaWQpKSwkTykseHNiKChZaGQoKSxXaGQpKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLHd6ZSksenplKSwnQ29ubmVjdGVkIENvbXBvbmVudHMgTGF5b3V0IEFsZ29yaXRobScpLFwiQSBsYXlvdXQgYWxnb3JpdGhtIHRoYXQgaXMgdG8gYmUgYXBwbGllZCB0byBlYWNoIGNvbm5lY3RlZCBjb21wb25lbnQgYmVmb3JlIHRoZSBjb21wb25lbnRzIHRoZW1zZWx2ZXMgYXJlIGNvbXBhY3RlZC4gSWYgdW5zcGVjaWZpZWQsIHRoZSBwb3NpdGlvbnMgb2YgdGhlIGNvbXBvbmVudHMnIG5vZGVzIGFyZSBub3QgYWx0ZXJlZC5cIiksaWlkKSxxSikseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCx4emUpLCdkZWJ1ZycpLCdEQ0dyYXBoJyksJ0FjY2VzcyB0byB0aGUgRENHcmFwaCBpcyBpbnRlbmRlZCBmb3IgdGhlIGRlYnVnIHZpZXcsJyksaGlkKSxqSikseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCx5emUpLCdkZWJ1ZycpLCdMaXN0IG9mIFBvbHlvbWlub2VzJyksJ0FjY2VzcyB0byB0aGUgcG9seW9taW5vZXMgaXMgaW50ZW5kZWQgZm9yIHRoZSBkZWJ1ZyB2aWV3LCcpLGhpZCksakopLHhzYihXaGQpKSkpO3VTYigobmV3IHZTYixhKSl9O3ZhciBfUmIsYVNiLGJTYixjU2IsZFNiO3ZhciBfTz1zZmIodHplLCdEaXNDb01ldGFEYXRhUHJvdmlkZXInLDg2NSk7ZmViKDEwMTAsMSxFeWUsdlNiKTtfLmhmPWZ1bmN0aW9uIHdTYihhKXt1U2IoYSl9O3ZhciBoU2IsaVNiLGpTYixrU2IsbFNiLG1TYixuU2Isb1NiLHBTYixxU2IsclNiLHNTYjt2YXIgYlA9c2ZiKHR6ZSwnRGlzQ29PcHRpb25zJywxMDEwKTtmZWIoMTAxMSwxLHt9LHhTYik7Xy5zZj1mdW5jdGlvbiB5U2IoKXt2YXIgYTtyZXR1cm4gYT1uZXcgcFJiLGF9O18udGY9ZnVuY3Rpb24gelNiKGEpe307dmFyIGFQPXNmYih0emUsJ0Rpc0NvT3B0aW9ucy9EaXNjb0ZhY3RvcnknLDEwMTEpO2ZlYig1NjgsMTc2LHszMzA6MSwxNzY6MSw1Njg6MX0sRFNiKTtfLmE9MDtfLmI9MDtfLmM9MDtfLmQ9MDt2YXIgY1A9c2ZiKCdvcmcuZWNsaXBzZS5lbGsuYWxnLmRpc2NvLnN0cnVjdHVyZXMnLCdEQ1BvbHlvbWlubycsNTY4KTt2YXIgRVNiLEZTYixHU2I7ZmViKDEyODYsMSxud2UsVFNiKTtfLk1iPWZ1bmN0aW9uIFVTYihhKXtyZXR1cm4gU1NiKGEpfTt2YXIgZFA9c2ZiKEZ6ZSwnRWxrR3JhcGhDb21wb25lbnRzUHJvY2Vzc29yL2xhbWJkYSQwJFR5cGUnLDEyODYpO2ZlYigxMjg3LDEse30sVlNiKTtfLktiPWZ1bmN0aW9uIFdTYihhKXtyZXR1cm4gSFNiKCksSkdkKFJEKGEsNzQpKX07dmFyIGVQPXNmYihGemUsJ0Vsa0dyYXBoQ29tcG9uZW50c1Byb2Nlc3Nvci9sYW1iZGEkMSRUeXBlJywxMjg3KTtmZWIoMTI4OCwxLG53ZSxYU2IpO18uTWI9ZnVuY3Rpb24gWVNiKGEpe3JldHVybiBOU2IoUkQoYSw3NCkpfTt2YXIgZlA9c2ZiKEZ6ZSwnRWxrR3JhcGhDb21wb25lbnRzUHJvY2Vzc29yL2xhbWJkYSQyJFR5cGUnLDEyODgpO2ZlYigxMjg5LDEse30sWlNiKTtfLktiPWZ1bmN0aW9uICRTYihhKXtyZXR1cm4gSFNiKCksTEdkKFJEKGEsNzQpKX07dmFyIGdQPXNmYihGemUsJ0Vsa0dyYXBoQ29tcG9uZW50c1Byb2Nlc3Nvci9sYW1iZGEkMyRUeXBlJywxMjg5KTtmZWIoMTI5MCwxLG53ZSxfU2IpO18uTWI9ZnVuY3Rpb24gYVRiKGEpe3JldHVybiBPU2IoUkQoYSw3NCkpfTt2YXIgaFA9c2ZiKEZ6ZSwnRWxrR3JhcGhDb21wb25lbnRzUHJvY2Vzc29yL2xhbWJkYSQ0JFR5cGUnLDEyOTApO2ZlYigxMjkxLDEsbndlLGJUYik7Xy5NYj1mdW5jdGlvbiBjVGIoYSl7cmV0dXJuIFBTYih0aGlzLmEsUkQoYSw3NCkpfTt2YXIgaVA9c2ZiKEZ6ZSwnRWxrR3JhcGhDb21wb25lbnRzUHJvY2Vzc29yL2xhbWJkYSQ1JFR5cGUnLDEyOTEpO2ZlYigxMjkyLDEse30sZFRiKTtfLktiPWZ1bmN0aW9uIGVUYihhKXtyZXR1cm4gUVNiKHRoaXMuYSxSRChhLDc0KSl9O3ZhciBqUD1zZmIoRnplLCdFbGtHcmFwaENvbXBvbmVudHNQcm9jZXNzb3IvbGFtYmRhJDYkVHlwZScsMTI5Mik7ZmViKDEyMDUsMSx7fSxyVGIpO18uYT0wO3ZhciBtUD1zZmIoRnplLCdFbGtHcmFwaFRyYW5zZm9ybWVyJywxMjA1KTtmZWIoMTIwNiwxLHt9LHRUYik7Xy5ZZD1mdW5jdGlvbiB1VGIoYSxiKXtzVGIodGhpcyxSRChhLDE2NyksUkQoYiwyNzIpKX07dmFyIGxQPXNmYihGemUsJ0Vsa0dyYXBoVHJhbnNmb3JtZXIvT2Zmc2V0QXBwbGllcicsMTIwNik7ZmViKDEyMDcsMSxRdmUsd1RiKTtfLkNkPWZ1bmN0aW9uIHhUYihhKXt2VGIodGhpcyxSRChhLDgpKX07dmFyIGtQPXNmYihGemUsJ0Vsa0dyYXBoVHJhbnNmb3JtZXIvT2Zmc2V0QXBwbGllci9PZmZTZXRUb0NoYWluQXBwbGllcicsMTIwNyk7ZmViKDc2MCwxLHt9LERUYik7dmFyIG9QPXNmYihLemUsTHplLDc2MCk7ZmViKDExOTUsMSxmeWUsRlRiKTtfLk5lPWZ1bmN0aW9uIEdUYihhLGIpe3JldHVybiBFVGIoUkQoYSwyMzUpLFJEKGIsMjM1KSl9O18uRmI9ZnVuY3Rpb24gSFRiKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBJVGIoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIG5QPXNmYihLemUsTXplLDExOTUpO2ZlYigxMTk2LDEsUXZlLE9UYik7Xy5DZD1mdW5jdGlvbiBQVGIoYSl7TlRiKHRoaXMuYix0aGlzLmEsUkQoYSwyNTApKX07dmFyIHBQPXNmYihLemUsTnplLDExOTYpO2ZlYig3MzgsMjA1LG96ZSxUVGIpO18ucmY9ZnVuY3Rpb24gVVRiKGEsYil7UVRiKHRoaXMsYSxiKX07dmFyIHFQPXNmYihLemUsJ0ZvcmNlTGF5b3V0UHJvdmlkZXInLDczOCk7ZmViKDMwOSwxMzcsezM6MSwzMDk6MSw5NjoxLDEzNzoxfSk7dmFyIHdQPXNmYihPemUsJ0ZQYXJ0aWNsZScsMzA5KTtmZWIoMjUwLDMwOSx7MzoxLDI1MDoxLDMwOToxLDk2OjEsMTM3OjF9LFdUYik7Xy5JYj1mdW5jdGlvbiBYVGIoKXt2YXIgYTtpZih0aGlzLmEpe2E9V21iKHRoaXMuYS5hLHRoaXMsMCk7cmV0dXJuIGE+PTA/J2InK2ErJ1snK2JVYih0aGlzLmEpKyddJzonYlsnK2JVYih0aGlzLmEpKyddJ31yZXR1cm4gJ2JfJytrRmIodGhpcyl9O3ZhciByUD1zZmIoT3plLCdGQmVuZHBvaW50JywyNTApO2ZlYigyOTAsMTM3LHszOjEsMjkwOjEsOTY6MSwxMzc6MX0sY1ViKTtfLkliPWZ1bmN0aW9uIGRVYigpe3JldHVybiBiVWIodGhpcyl9O3ZhciBzUD1zZmIoT3plLCdGRWRnZScsMjkwKTtmZWIoMjM1LDEzNyx7MzoxLDIzNToxLDk2OjEsMTM3OjF9LGdVYik7dmFyIHRQPXNmYihPemUsJ0ZHcmFwaCcsMjM1KTtmZWIoNDU0LDMwOSx7MzoxLDQ1NDoxLDMwOToxLDk2OjEsMTM3OjF9LGlVYik7Xy5JYj1mdW5jdGlvbiBqVWIoKXtyZXR1cm4gdGhpcy5iPT1udWxsfHx0aGlzLmIubGVuZ3RoPT0wPydsWycrYlViKHRoaXMuYSkrJ10nOidsXycrdGhpcy5ifTt2YXIgdVA9c2ZiKE96ZSwnRkxhYmVsJyw0NTQpO2ZlYigxNTMsMzA5LHszOjEsMTUzOjEsMzA5OjEsOTY6MSwxMzc6MX0sbFViKTtfLkliPWZ1bmN0aW9uIG1VYigpe3JldHVybiBrVWIodGhpcyl9O18uYT0wO3ZhciB2UD1zZmIoT3plLCdGTm9kZScsMTUzKTtmZWIoMjEwMCwxLHt9KTtfLnZmPWZ1bmN0aW9uIHJVYihhKXtuVWIodGhpcyxhKX07Xy53Zj1mdW5jdGlvbiBzVWIoKXtvVWIodGhpcyl9O18uZD0wO3ZhciB4UD1zZmIoUXplLCdBYnN0cmFjdEZvcmNlTW9kZWwnLDIxMDApO2ZlYig2NDEsMjEwMCx7NjQxOjF9LHRVYik7Xy51Zj1mdW5jdGlvbiB2VWIoYSxiKXt2YXIgYyxkLGUsZixnO3FVYih0aGlzLmYsYSxiKTtlPW9qZChhamQoYi5kKSxhLmQpO2c9JHduZC5NYXRoLnNxcnQoZS5hKmUuYStlLmIqZS5iKTtkPSR3bmQuTWF0aC5tYXgoMCxnLWVqZChhLmUpLzItZWpkKGIuZSkvMik7Yz1mVWIodGhpcy5lLGEsYik7Yz4wPyhmPS11VWIoZCx0aGlzLmMpKmMpOihmPXlVYihkLHRoaXMuYikqUkQobVFiKGEsKHlWYigpLGxWYikpLDE3KS5hKTtpamQoZSxmL2cpO3JldHVybiBlfTtfLnZmPWZ1bmN0aW9uIHdVYihhKXtuVWIodGhpcyxhKTt0aGlzLmE9UkQobVFiKGEsKHlWYigpLGFWYikpLDE3KS5hO3RoaXMuYz1LZmIoVUQobVFiKGEsclZiKSkpO3RoaXMuYj1LZmIoVUQobVFiKGEsblZiKSkpfTtfLnhmPWZ1bmN0aW9uIHhVYihhKXtyZXR1cm4gYTx0aGlzLmF9O18uYT0wO18uYj0wO18uYz0wO3ZhciB5UD1zZmIoUXplLCdFYWRlc01vZGVsJyw2NDEpO2ZlYig2NDIsMjEwMCx7NjQyOjF9LHpVYik7Xy51Zj1mdW5jdGlvbiBCVWIoYSxiKXt2YXIgYyxkLGUsZixnO3FVYih0aGlzLmYsYSxiKTtlPW9qZChhamQoYi5kKSxhLmQpO2c9JHduZC5NYXRoLnNxcnQoZS5hKmUuYStlLmIqZS5iKTtkPSR3bmQuTWF0aC5tYXgoMCxnLWVqZChhLmUpLzItZWpkKGIuZSkvMik7Zj1GVWIoZCx0aGlzLmEpKlJEKG1RYihhLCh5VmIoKSxsVmIpKSwxNykuYTtjPWZVYih0aGlzLmUsYSxiKTtjPjAmJihmLT1BVWIoZCx0aGlzLmEpKmMpO2lqZChlLGYqdGhpcy5iL2cpO3JldHVybiBlfTtfLnZmPWZ1bmN0aW9uIENVYihhKXt2YXIgYixjLGQsZSxmLGcsaDtuVWIodGhpcyxhKTt0aGlzLmI9S2ZiKFVEKG1RYihhLCh5VmIoKSxzVmIpKSkpO3RoaXMuYz10aGlzLmIvUkQobVFiKGEsYVZiKSwxNykuYTtkPWEuZS5jLmxlbmd0aDtmPTA7ZT0wO2ZvcihoPW5ldyBBbmIoYS5lKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTUzKTtmKz1nLmUuYTtlKz1nLmUuYn1iPWYqZTtjPUtmYihVRChtUWIoYSxyVmIpKSkqVHllO3RoaXMuYT0kd25kLk1hdGguc3FydChiLygyKmQpKSpjfTtfLndmPWZ1bmN0aW9uIERVYigpe29VYih0aGlzKTt0aGlzLmItPXRoaXMuY307Xy54Zj1mdW5jdGlvbiBFVWIoYSl7cmV0dXJuIHRoaXMuYj4wfTtfLmE9MDtfLmI9MDtfLmM9MDt2YXIgelA9c2ZiKFF6ZSwnRnJ1Y2h0ZXJtYW5SZWluZ29sZE1vZGVsJyw2NDIpO2ZlYig4NjAsMSxFeWUsUFViKTtfLmhmPWZ1bmN0aW9uIFFVYihhKXtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxSemUpLCcnKSwnRm9yY2UgTW9kZWwnKSwnRGV0ZXJtaW5lcyB0aGUgbW9kZWwgZm9yIGZvcmNlIGNhbGN1bGF0aW9uLicpLElVYiksKGtpZCgpLGVpZCkpLEJQKSx4c2IoKFloZCgpLFdoZCkpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFN6ZSksJycpLCdJdGVyYXRpb25zJyksJ1RoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBvbiB0aGUgZm9yY2UgbW9kZWwuJyksc2diKDMwMCkpLGdpZCksYkopLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFR6ZSksJycpLCdSZXB1bHNpdmUgUG93ZXInKSwnRGV0ZXJtaW5lcyBob3cgbWFueSBiZW5kIHBvaW50cyBhcmUgYWRkZWQgdG8gdGhlIGVkZ2U7IHN1Y2ggYmVuZCBwb2ludHMgYXJlIHJlZ2FyZGVkIGFzIHJlcGVsbGluZyBwYXJ0aWNsZXMgaW4gdGhlIGZvcmNlIG1vZGVsJyksc2diKDApKSxnaWQpLGJKKSx4c2IoVGhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxVemUpLCcnKSwnRlIgVGVtcGVyYXR1cmUnKSwnVGhlIHRlbXBlcmF0dXJlIGlzIHVzZWQgYXMgYSBzY2FsaW5nIGZhY3RvciBmb3IgcGFydGljbGUgZGlzcGxhY2VtZW50cy4nKSxWemUpLGRpZCksVkkpLHhzYihXaGQpKSkpO3pnZChhLFV6ZSxSemUsTlViKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxXemUpLCcnKSwnRWFkZXMgUmVwdWxzaW9uJyksXCJGYWN0b3IgZm9yIHJlcHVsc2l2ZSBmb3JjZXMgaW4gRWFkZXMnIG1vZGVsLlwiKSw1KSxkaWQpLFZJKSx4c2IoV2hkKSkpKTt6Z2QoYSxXemUsUnplLEtVYik7elZiKChuZXcgQVZiLGEpKX07dmFyIEdVYixIVWIsSVViLEpVYixLVWIsTFViLE1VYixOVWI7dmFyIEFQPXNmYihYemUsJ0ZvcmNlTWV0YURhdGFQcm92aWRlcicsODYwKTtmZWIoNDMyLDIyLHszOjEsMzQ6MSwyMjoxLDQzMjoxfSxVVWIpO3ZhciBSVWIsU1ViO3ZhciBCUD10ZmIoWHplLCdGb3JjZU1vZGVsU3RyYXRlZ3knLDQzMixXSSxXVWIsVlViKTt2YXIgWFViO2ZlYihBd2UsMSxFeWUsQVZiKTtfLmhmPWZ1bmN0aW9uIEJWYihhKXt6VmIoYSl9O3ZhciBaVWIsJFViLF9VYixhVmIsYlZiLGNWYixkVmIsZVZiLGZWYixnVmIsaFZiLGlWYixqVmIsa1ZiLGxWYixtVmIsblZiLG9WYixwVmIscVZiLHJWYixzVmIsdFZiLHVWYix2VmIsd1ZiLHhWYjt2YXIgRFA9c2ZiKFh6ZSwnRm9yY2VPcHRpb25zJyxBd2UpO2ZlYigxMDAxLDEse30sQ1ZiKTtfLnNmPWZ1bmN0aW9uIERWYigpe3ZhciBhO3JldHVybiBhPW5ldyBUVGIsYX07Xy50Zj1mdW5jdGlvbiBFVmIoYSl7fTt2YXIgQ1A9c2ZiKFh6ZSwnRm9yY2VPcHRpb25zL0ZvcmNlRmFjdG9yeScsMTAwMSk7dmFyIEZWYixHVmIsSFZiLElWYjtmZWIoODYxLDEsRXllLFJWYik7Xy5oZj1mdW5jdGlvbiBTVmIoYSl7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsdkFlKSwnJyksJ0ZpeGVkIFBvc2l0aW9uJyksJ1ByZXZlbnQgdGhhdCB0aGUgbm9kZSBpcyBtb3ZlZCBieSB0aGUgbGF5b3V0IGFsZ29yaXRobS4nKSwoR2ViKCksZmFsc2UpKSwoa2lkKCksY2lkKSksUUkpLHhzYigoWWhkKCksVmhkKSkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsd0FlKSwnJyksJ0Rlc2lyZWQgRWRnZSBMZW5ndGgnKSwnRWl0aGVyIHNwZWNpZmllZCBmb3IgcGFyZW50IG5vZGVzIG9yIGZvciBpbmRpdmlkdWFsIGVkZ2VzLCB3aGVyZSB0aGUgbGF0dGVyIHRha2VzIGhpZ2hlciBwcmVjZWRlbmNlLicpLDEwMCksZGlkKSxWSSkseXNiKFdoZCxjRChXQyhkMywxKSxqd2UsMTcwLDAsW1RoZF0pKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCx4QWUpLCcnKSwnTGF5b3V0IERpbWVuc2lvbicpLCdEaW1lbnNpb25zIHRoYXQgYXJlIHBlcm1pdHRlZCB0byBiZSBhbHRlcmVkIGR1cmluZyBsYXlvdXQuJyksTVZiKSxlaWQpLEpQKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCx5QWUpLCcnKSwnU3RyZXNzIEVwc2lsb24nKSwnVGVybWluYXRpb24gY3JpdGVyaW9uIGZvciB0aGUgaXRlcmF0aXZlIHByb2Nlc3MuJyksVnplKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCx6QWUpLCcnKSwnSXRlcmF0aW9uIExpbWl0JyksXCJNYXhpbXVtIG51bWJlciBvZiBwZXJmb3JtZWQgaXRlcmF0aW9ucy4gVGFrZXMgaGlnaGVyIHByZWNlZGVuY2UgdGhhbiAnZXBzaWxvbicuXCIpLHNnYihsdmUpKSxnaWQpLGJKKSx4c2IoV2hkKSkpKTtlV2IoKG5ldyBmV2IsYSkpfTt2YXIgS1ZiLExWYixNVmIsTlZiLE9WYixQVmI7dmFyIEVQPXNmYihYemUsJ1N0cmVzc01ldGFEYXRhUHJvdmlkZXInLDg2MSk7ZmViKDEwMDQsMSxFeWUsZldiKTtfLmhmPWZ1bmN0aW9uIGdXYihhKXtlV2IoYSl9O3ZhciBUVmIsVVZiLFZWYixXVmIsWFZiLFlWYixaVmIsJFZiLF9WYixhV2IsYldiLGNXYjt2YXIgR1A9c2ZiKFh6ZSwnU3RyZXNzT3B0aW9ucycsMTAwNCk7ZmViKDEwMDUsMSx7fSxoV2IpO18uc2Y9ZnVuY3Rpb24gaVdiKCl7dmFyIGE7cmV0dXJuIGE9bmV3IGtXYixhfTtfLnRmPWZ1bmN0aW9uIGpXYihhKXt9O3ZhciBGUD1zZmIoWHplLCdTdHJlc3NPcHRpb25zL1N0cmVzc0ZhY3RvcnknLDEwMDUpO2ZlYigxMTEwLDIwNSxvemUsa1diKTtfLnJmPWZ1bmN0aW9uIGxXYihhLGIpe3ZhciBjLGQsZSxmLGc7Yi5VZyhCQWUsMSk7SGViKFREKEd4ZChhLChkV2IoKSxYVmIpKSkpP0hlYihURChHeGQoYSxiV2IpKSl8fFJGYigoYz1uZXcgU0ZiKChsdWQoKSxuZXcgenVkKGEpKSksYykpOlFUYihuZXcgVFRiLGEsYi5laCgxKSk7ZT1LVGIoYSk7ZD1DVGIodGhpcy5hLGUpO2ZvcihnPWQuS2MoKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSwyMzUpO2lmKGYuZS5jLmxlbmd0aDw9MSl7Y29udGludWV9dVdiKHRoaXMuYixmKTtzV2IodGhpcy5iKTtVbWIoZi5kLG5ldyBtV2IpfWU9QlRiKGQpO0pUYihlKTtiLlZnKCl9O3ZhciBJUD1zZmIoREFlLCdTdHJlc3NMYXlvdXRQcm92aWRlcicsMTExMCk7ZmViKDExMTEsMSxRdmUsbVdiKTtfLkNkPWZ1bmN0aW9uIG5XYihhKXtoVWIoUkQoYSw0NTQpKX07dmFyIEhQPXNmYihEQWUsJ1N0cmVzc0xheW91dFByb3ZpZGVyL2xhbWJkYSQwJFR5cGUnLDExMTEpO2ZlYigxMDAyLDEse30sdldiKTtfLmM9MDtfLmU9MDtfLmc9MDt2YXIgTFA9c2ZiKERBZSwnU3RyZXNzTWFqb3JpemF0aW9uJywxMDAyKTtmZWIoMzkxLDIyLHszOjEsMzQ6MSwyMjoxLDM5MToxfSxCV2IpO3ZhciB4V2IseVdiLHpXYjt2YXIgSlA9dGZiKERBZSwnU3RyZXNzTWFqb3JpemF0aW9uL0RpbWVuc2lvbicsMzkxLFdJLERXYixDV2IpO3ZhciBFV2I7ZmViKDEwMDMsMSxmeWUsR1diKTtfLk5lPWZ1bmN0aW9uIEhXYihhLGIpe3JldHVybiB3V2IodGhpcy5hLFJEKGEsMTUzKSxSRChiLDE1MykpfTtfLkZiPWZ1bmN0aW9uIElXYihhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gSldiKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBLUD1zZmIoREFlLCdTdHJlc3NNYWpvcml6YXRpb24vbGFtYmRhJDAkVHlwZScsMTAwMyk7ZmViKDExOTIsMSx7fSxSV2IpO3ZhciBPUD1zZmIoRkFlLCdFbGtMYXllcmVkJywxMTkyKTtmZWIoMTE5MywxLFF2ZSxVV2IpO18uQ2Q9ZnVuY3Rpb24gVldiKGEpe1NXYih0aGlzLmEsUkQoYSwzNikpfTt2YXIgTVA9c2ZiKEZBZSwnRWxrTGF5ZXJlZC9sYW1iZGEkMCRUeXBlJywxMTkzKTtmZWIoMTE5NCwxLFF2ZSxXV2IpO18uQ2Q9ZnVuY3Rpb24gWFdiKGEpe1RXYih0aGlzLmEsUkQoYSwzNikpfTt2YXIgTlA9c2ZiKEZBZSwnRWxrTGF5ZXJlZC9sYW1iZGEkMSRUeXBlJywxMTk0KTtmZWIoMTI4MSwxLHt9LGRYYik7dmFyIFlXYixaV2IsJFdiO3ZhciBTUD1zZmIoRkFlLCdHcmFwaENvbmZpZ3VyYXRvcicsMTI4MSk7ZmViKDc3MCwxLFF2ZSxmWGIpO18uQ2Q9ZnVuY3Rpb24gZ1hiKGEpe2FYYih0aGlzLmEsUkQoYSwxMCkpfTt2YXIgUFA9c2ZiKEZBZSwnR3JhcGhDb25maWd1cmF0b3IvbGFtYmRhJDAkVHlwZScsNzcwKTtmZWIoNzcxLDEse30saFhiKTtfLktiPWZ1bmN0aW9uIGlYYihhKXtyZXR1cm4gX1diKCksbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwzMCkuYSwxNikpfTt2YXIgUVA9c2ZiKEZBZSwnR3JhcGhDb25maWd1cmF0b3IvbGFtYmRhJDEkVHlwZScsNzcxKTtmZWIoNzcyLDEsUXZlLGpYYik7Xy5DZD1mdW5jdGlvbiBrWGIoYSl7YVhiKHRoaXMuYSxSRChhLDEwKSl9O3ZhciBSUD1zZmIoRkFlLCdHcmFwaENvbmZpZ3VyYXRvci9sYW1iZGEkMiRUeXBlJyw3NzIpO2ZlYigxMTA5LDIwNSxvemUsbFhiKTtfLnJmPWZ1bmN0aW9uIG1YYihhLGIpe3ZhciBjO2M9YzViKG5ldyBrNWIsYSk7ZEUoR3hkKGEsKHlDYygpLElBYykpKT09PWRFKChGbmQoKSxDbmQpKT9MV2IodGhpcy5hLGMsYik6TVdiKHRoaXMuYSxjLGIpO2IuJGcoKXx8SjViKG5ldyBONWIsYyl9O3ZhciBUUD1zZmIoRkFlLCdMYXllcmVkTGF5b3V0UHJvdmlkZXInLDExMDkpO2ZlYigzNjcsMjIsezM6MSwzNDoxLDIyOjEsMzY3OjF9LHRYYik7dmFyIG5YYixvWGIscFhiLHFYYixyWGI7dmFyIFVQPXRmYihGQWUsJ0xheWVyZWRQaGFzZXMnLDM2NyxXSSx2WGIsdVhiKTt2YXIgd1hiO2ZlYigxNzE3LDEse30sRVhiKTtfLmk9MDt2YXIgeVhiO3ZhciBYUD1zZmIoR0FlLCdDb21wb25lbnRzVG9DR3JhcGhUcmFuc2Zvcm1lcicsMTcxNyk7dmFyIGpZYjtmZWIoMTcxOCwxLHt9LEZYYik7Xy55Zj1mdW5jdGlvbiBHWGIoYSxiKXtyZXR1cm4gJHduZC5NYXRoLm1pbihhLmEhPW51bGw/S2ZiKGEuYSk6YS5jLmksYi5hIT1udWxsP0tmYihiLmEpOmIuYy5pKX07Xy56Zj1mdW5jdGlvbiBIWGIoYSxiKXtyZXR1cm4gJHduZC5NYXRoLm1pbihhLmEhPW51bGw/S2ZiKGEuYSk6YS5jLmksYi5hIT1udWxsP0tmYihiLmEpOmIuYy5pKX07dmFyIFZQPXNmYihHQWUsJ0NvbXBvbmVudHNUb0NHcmFwaFRyYW5zZm9ybWVyLzEnLDE3MTgpO2ZlYig4NiwxLHs4NjoxfSk7Xy5pPTA7Xy5rPXRydWU7Xy5vPXB4ZTt2YXIgYlE9c2ZiKEhBZSwnQ05vZGUnLDg2KTtmZWIoNDcwLDg2LHs0NzA6MSw4NjoxfSxJWGIsSlhiKTtfLkliPWZ1bmN0aW9uIEtYYigpe3JldHVybiAnJ307dmFyIFdQPXNmYihHQWUsJ0NvbXBvbmVudHNUb0NHcmFwaFRyYW5zZm9ybWVyL0NSZWN0Tm9kZScsNDcwKTtmZWIoMTY4OCwxLHt9LFhYYik7dmFyIExYYixNWGI7dmFyICRQPXNmYihHQWUsJ09uZURpbWVuc2lvbmFsQ29tcG9uZW50c0NvbXBhY3Rpb24nLDE2ODgpO2ZlYigxNjg5LDEse30sJFhiKTtfLktiPWZ1bmN0aW9uIF9YYihhKXtyZXR1cm4gWVhiKFJEKGEsNDIpKX07Xy5GYj1mdW5jdGlvbiBhWWIoYSl7cmV0dXJuIHRoaXM9PT1hfTt2YXIgWVA9c2ZiKEdBZSwnT25lRGltZW5zaW9uYWxDb21wb25lbnRzQ29tcGFjdGlvbi9sYW1iZGEkMCRUeXBlJywxNjg5KTtmZWIoMTY5MCwxLHt9LGJZYik7Xy5LYj1mdW5jdGlvbiBjWWIoYSl7cmV0dXJuIFpYYihSRChhLDQyKSl9O18uRmI9ZnVuY3Rpb24gZFliKGEpe3JldHVybiB0aGlzPT09YX07dmFyIFpQPXNmYihHQWUsJ09uZURpbWVuc2lvbmFsQ29tcG9uZW50c0NvbXBhY3Rpb24vbGFtYmRhJDEkVHlwZScsMTY5MCk7ZmViKDE3MjAsMSx7fSxmWWIpO3ZhciBfUD1zZmIoSEFlLCdDR3JhcGgnLDE3MjApO2ZlYigxOTQsMSx7MTk0OjF9LGlZYik7Xy5iPTA7Xy5jPTA7Xy5lPTA7Xy5nPXRydWU7Xy5pPXB4ZTt2YXIgYVE9c2ZiKEhBZSwnQ0dyb3VwJywxOTQpO2ZlYigxNzE5LDEse30sbFliKTtfLnlmPWZ1bmN0aW9uIG1ZYihhLGIpe3JldHVybiAkd25kLk1hdGgubWF4KGEuYSE9bnVsbD9LZmIoYS5hKTphLmMuaSxiLmEhPW51bGw/S2ZiKGIuYSk6Yi5jLmkpfTtfLnpmPWZ1bmN0aW9uIG5ZYihhLGIpe3JldHVybiAkd25kLk1hdGgubWF4KGEuYSE9bnVsbD9LZmIoYS5hKTphLmMuaSxiLmEhPW51bGw/S2ZiKGIuYSk6Yi5jLmkpfTt2YXIgY1E9c2ZiKEhBZSxreWUsMTcxOSk7ZmViKDE3MjEsMSx7fSxFWWIpO18uZD1mYWxzZTt2YXIgb1liO3ZhciBlUT1zZmIoSEFlLHB5ZSwxNzIxKTtmZWIoMTcyMiwxLHt9LEZZYik7Xy5LYj1mdW5jdGlvbiBHWWIoYSl7cmV0dXJuIHBZYigpLEdlYigpLFJEKFJEKGEsNDIpLmEsODYpLmQuZSE9MD90cnVlOmZhbHNlfTtfLkZiPWZ1bmN0aW9uIEhZYihhKXtyZXR1cm4gdGhpcz09PWF9O3ZhciBkUT1zZmIoSEFlLHF5ZSwxNzIyKTtmZWIoODMzLDEse30sS1liKTtfLmE9ZmFsc2U7Xy5iPWZhbHNlO18uYz1mYWxzZTtfLmQ9ZmFsc2U7dmFyIGZRPXNmYihIQWUscnllLDgzMyk7ZmViKDE4OTgsMSx7fSxRWWIpO3ZhciBrUT1zZmIoSUFlLHN5ZSwxODk4KTt2YXIgd1E9dWZiKEpBZSxoeWUpO2ZlYigxODk5LDEsezM4MjoxfSxVWWIpO18uYmY9ZnVuY3Rpb24gVlliKGEpe1NZYih0aGlzLFJEKGEsNDc2KSl9O3ZhciBoUT1zZmIoSUFlLHR5ZSwxODk5KTtmZWIoT3dlLDEsZnllLFhZYik7Xy5OZT1mdW5jdGlvbiBZWWIoYSxiKXtyZXR1cm4gV1liKFJEKGEsODYpLFJEKGIsODYpKX07Xy5GYj1mdW5jdGlvbiBaWWIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uICRZYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgZ1E9c2ZiKElBZSx1eWUsT3dlKTtmZWIoNDc2LDEsezQ3NjoxfSxfWWIpO18uYT1mYWxzZTt2YXIgaVE9c2ZiKElBZSx2eWUsNDc2KTtmZWIoMTkwMSwxLGZ5ZSxhWmIpO18uTmU9ZnVuY3Rpb24gYlpiKGEsYil7cmV0dXJuIFJZYihSRChhLDQ3NiksUkQoYiw0NzYpKX07Xy5GYj1mdW5jdGlvbiBjWmIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIGRaYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgalE9c2ZiKElBZSx3eWUsMTkwMSk7ZmViKDE0OCwxLHsxNDg6MX0sZVpiLGZaYik7Xy5GYj1mdW5jdGlvbiBnWmIoYSl7dmFyIGI7aWYoYT09bnVsbCl7cmV0dXJuIGZhbHNlfWlmKG1RIT1yYihhKSl7cmV0dXJuIGZhbHNlfWI9UkQoYSwxNDgpO3JldHVybiBGdmIodGhpcy5jLGIuYykmJkZ2Yih0aGlzLmQsYi5kKX07Xy5IYj1mdW5jdGlvbiBoWmIoKXtyZXR1cm4gVG5iKGNEKFdDKGpKLDEpLHJ2ZSwxLDUsW3RoaXMuYyx0aGlzLmRdKSl9O18uSWI9ZnVuY3Rpb24gaVpiKCl7cmV0dXJuICcoJyt0aGlzLmMrcHZlK3RoaXMuZCsodGhpcy5hPydjeCc6JycpK3RoaXMuYisnKSd9O18uYT10cnVlO18uYz0wO18uZD0wO3ZhciBtUT1zZmIoSkFlLCdQb2ludCcsMTQ4KTtmZWIoNDE2LDIyLHszOjEsMzQ6MSwyMjoxLDQxNjoxfSxxWmIpO3ZhciBqWmIsa1piLGxaYixtWmI7dmFyIGxRPXRmYihKQWUsJ1BvaW50L1F1YWRyYW50Jyw0MTYsV0ksdVpiLHRaYik7dmFyIHZaYjtmZWIoMTcwOCwxLHt9LEVaYik7Xy5iPW51bGw7Xy5jPW51bGw7Xy5kPW51bGw7Xy5lPW51bGw7Xy5mPW51bGw7dmFyIHhaYix5WmIselpiLEFaYixCWmI7dmFyIHZRPXNmYihKQWUsJ1JlY3RpbGluZWFyQ29udmV4SHVsbCcsMTcwOCk7ZmViKDU4MywxLHszODI6MX0sUFpiKTtfLmJmPWZ1bmN0aW9uIFFaYihhKXtPWmIodGhpcyxSRChhLDE0OCkpfTtfLmI9MDt2YXIgTVpiO3ZhciBvUT1zZmIoSkFlLCdSZWN0aWxpbmVhckNvbnZleEh1bGwvTWF4aW1hbEVsZW1lbnRzRXZlbnRIYW5kbGVyJyw1ODMpO2ZlYigxNzEwLDEsZnllLFNaYik7Xy5OZT1mdW5jdGlvbiBUWmIoYSxiKXtyZXR1cm4gUlpiKFVEKGEpLFVEKGIpKX07Xy5GYj1mdW5jdGlvbiBVWmIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIFZaYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgblE9c2ZiKEpBZSwnUmVjdGlsaW5lYXJDb252ZXhIdWxsL01heGltYWxFbGVtZW50c0V2ZW50SGFuZGxlci9sYW1iZGEkMCRUeXBlJywxNzEwKTtmZWIoMTcwOSwxLHszODI6MX0sWFpiKTtfLmJmPWZ1bmN0aW9uIFlaYihhKXtXWmIodGhpcyxSRChhLDE0OCkpfTtfLmE9MDtfLmI9bnVsbDtfLmM9bnVsbDtfLmQ9bnVsbDtfLmU9bnVsbDt2YXIgcFE9c2ZiKEpBZSwnUmVjdGlsaW5lYXJDb252ZXhIdWxsL1JlY3RhbmdsZUV2ZW50SGFuZGxlcicsMTcwOSk7ZmViKDE3MTEsMSxmeWUsWlpiKTtfLk5lPWZ1bmN0aW9uICRaYihhLGIpe3JldHVybiBHWmIoUkQoYSwxNDgpLFJEKGIsMTQ4KSl9O18uRmI9ZnVuY3Rpb24gX1piKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBhJGIoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIHFRPXNmYihKQWUsJ1JlY3RpbGluZWFyQ29udmV4SHVsbC9sYW1iZGEkMCRUeXBlJywxNzExKTtmZWIoMTcxMiwxLGZ5ZSxiJGIpO18uTmU9ZnVuY3Rpb24gYyRiKGEsYil7cmV0dXJuIEhaYihSRChhLDE0OCksUkQoYiwxNDgpKX07Xy5GYj1mdW5jdGlvbiBkJGIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIGUkYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgclE9c2ZiKEpBZSwnUmVjdGlsaW5lYXJDb252ZXhIdWxsL2xhbWJkYSQxJFR5cGUnLDE3MTIpO2ZlYigxNzEzLDEsZnllLGYkYik7Xy5OZT1mdW5jdGlvbiBnJGIoYSxiKXtyZXR1cm4gSVpiKFJEKGEsMTQ4KSxSRChiLDE0OCkpfTtfLkZiPWZ1bmN0aW9uIGgkYihhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gaSRiKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBzUT1zZmIoSkFlLCdSZWN0aWxpbmVhckNvbnZleEh1bGwvbGFtYmRhJDIkVHlwZScsMTcxMyk7ZmViKDE3MTQsMSxmeWUsaiRiKTtfLk5lPWZ1bmN0aW9uIGskYihhLGIpe3JldHVybiBKWmIoUkQoYSwxNDgpLFJEKGIsMTQ4KSl9O18uRmI9ZnVuY3Rpb24gbCRiKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBtJGIoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIHRRPXNmYihKQWUsJ1JlY3RpbGluZWFyQ29udmV4SHVsbC9sYW1iZGEkMyRUeXBlJywxNzE0KTtmZWIoMTcxNSwxLGZ5ZSxuJGIpO18uTmU9ZnVuY3Rpb24gbyRiKGEsYil7cmV0dXJuIEtaYihSRChhLDE0OCksUkQoYiwxNDgpKX07Xy5GYj1mdW5jdGlvbiBwJGIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIHEkYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgdVE9c2ZiKEpBZSwnUmVjdGlsaW5lYXJDb252ZXhIdWxsL2xhbWJkYSQ0JFR5cGUnLDE3MTUpO2ZlYigxNzE2LDEse30scyRiKTt2YXIgeFE9c2ZiKEpBZSwnU2NhbmxpbmUnLDE3MTYpO2ZlYigyMTA0LDEse30pO3ZhciB5UT1zZmIoS0FlLCdBYnN0cmFjdEdyYXBoUGxhY2VyJywyMTA0KTtmZWIoMzM1LDEsezMzNToxfSxDJGIpO18uRmY9ZnVuY3Rpb24gRCRiKGEpe2lmKHRoaXMuR2YoYSkpe1JjKHRoaXMuYixSRChtUWIoYSwoWXdjKCksZXdjKSksMjEpLGEpO3JldHVybiB0cnVlfWVsc2V7cmV0dXJuIGZhbHNlfX07Xy5HZj1mdW5jdGlvbiBFJGIoYSl7dmFyIGIsYyxkLGU7Yj1SRChtUWIoYSwoWXdjKCksZXdjKSksMjEpO2U9UkQoUWMoeSRiLGIpLDIxKTtmb3IoZD1lLktjKCk7ZC5PYigpOyl7Yz1SRChkLlBiKCksMjEpO2lmKCFSRChRYyh0aGlzLmIsYyksMTUpLmRjKCkpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9O3ZhciB5JGI7dmFyIEJRPXNmYihLQWUsJ0NvbXBvbmVudEdyb3VwJywzMzUpO2ZlYig3NzksMjEwNCx7fSxKJGIpO18uSGY9ZnVuY3Rpb24gSyRiKGEpe3ZhciBiLGM7Zm9yKGM9bmV3IEFuYih0aGlzLmEpO2MuYTxjLmMuYy5sZW5ndGg7KXtiPVJEKHluYihjKSwzMzUpO2lmKGIuRmYoYSkpe3JldHVybn19Um1iKHRoaXMuYSxuZXcgQyRiKGEpKX07Xy5FZj1mdW5jdGlvbiBMJGIoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbzt0aGlzLmEuYy5sZW5ndGg9MDtiLmEuYy5sZW5ndGg9MDtpZihhLmRjKCkpe2IuZi5hPTA7Yi5mLmI9MDtyZXR1cm59Zz1SRChhLlhiKDApLDM2KTtrUWIoYixnKTtmb3IoZT1hLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMzYpO3RoaXMuSGYoZCl9bz1uZXcgcGpkO2Y9S2ZiKFVEKG1RYihnLCh5Q2MoKSxTQmMpKSkpO2ZvcihqPW5ldyBBbmIodGhpcy5hKTtqLmE8ai5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaiksMzM1KTtrPUYkYihoLGYpO3gkYihVYyhoLmIpLG8uYSxvLmIpO28uYSs9ay5hO28uYis9ay5ifWIuZi5hPW8uYS1mO2IuZi5iPW8uYi1mO2lmKEhlYihURChtUWIoZyxWemMpKSkmJmRFKG1RYihnLHlBYykpPT09ZEUoKFltZCgpLFVtZCkpKXtmb3Iobj1hLktjKCk7bi5PYigpOyl7bD1SRChuLlBiKCksMzYpO3ckYihsLGwuYy5hLGwuYy5iKX1jPW5ldyBqX2I7XyRiKGMsYSxmKTtmb3IobT1hLktjKCk7bS5PYigpOyl7bD1SRChtLlBiKCksMzYpOyRpZChoamQobC5jKSxjLmUpfSRpZChoamQoYi5mKSxjLmEpfWZvcihpPW5ldyBBbmIodGhpcy5hKTtpLmE8aS5jLmMubGVuZ3RoOyl7aD1SRCh5bmIoaSksMzM1KTt2JGIoYixVYyhoLmIpKX19O3ZhciB6UT1zZmIoS0FlLCdDb21wb25lbnRHcm91cEdyYXBoUGxhY2VyJyw3NzkpO2ZlYigxMzEyLDc3OSx7fSxOJGIpO18uSGY9ZnVuY3Rpb24gTyRiKGEpe00kYih0aGlzLGEpfTtfLkVmPWZ1bmN0aW9uIFAkYihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdDt0aGlzLmEuYy5sZW5ndGg9MDtiLmEuYy5sZW5ndGg9MDtpZihhLmRjKCkpe2IuZi5hPTA7Yi5mLmI9MDtyZXR1cm59Zz1SRChhLlhiKDApLDM2KTtrUWIoYixnKTtmb3IoZT1hLktjKCk7ZS5PYigpOyl7ZD1SRChlLlBiKCksMzYpO00kYih0aGlzLGQpfXQ9bmV3IHBqZDtzPW5ldyBwamQ7cD1uZXcgcGpkO289bmV3IHBqZDtmPUtmYihVRChtUWIoZywoeUNjKCksU0JjKSkpKTtmb3Ioaj1uZXcgQW5iKHRoaXMuYSk7ai5hPGouYy5jLmxlbmd0aDspe2g9UkQoeW5iKGopLDMzNSk7aWYoRG1kKFJEKG1RYihiLCh1bWQoKSxOa2QpKSw4OCkpKXtwLmE9dC5hO2ZvcihyPW5ldyBhdyhQYyhGYyhoLmIpLmEpLmEua2MoKSk7ci5iLk9iKCk7KXtxPVJEKF92KHIuYi5QYigpKSwyMSk7aWYocS5IYygocXBkKCksWW9kKSkpe3AuYT1zLmE7YnJlYWt9fX1lbHNlIGlmKEVtZChSRChtUWIoYixOa2QpLDg4KSkpe3AuYj10LmI7Zm9yKHI9bmV3IGF3KFBjKEZjKGguYikuYSkuYS5rYygpKTtyLmIuT2IoKTspe3E9UkQoX3Yoci5iLlBiKCkpLDIxKTtpZihxLkhjKChxcGQoKSxwcGQpKSl7cC5iPXMuYjticmVha319fWs9RiRiKFJEKGgsNTc5KSxmKTt4JGIoVWMoaC5iKSxwLmEscC5iKTtpZihEbWQoUkQobVFiKGIsTmtkKSw4OCkpKXtzLmE9cC5hK2suYTtvLmE9JHduZC5NYXRoLm1heChvLmEscy5hKTtmb3Iocj1uZXcgYXcoUGMoRmMoaC5iKS5hKS5hLmtjKCkpO3IuYi5PYigpOyl7cT1SRChfdihyLmIuUGIoKSksMjEpO2lmKHEuSGMoKHFwZCgpLG5wZCkpKXt0LmE9cC5hK2suYTticmVha319cy5iPXAuYitrLmI7cC5iPXMuYjtvLmI9JHduZC5NYXRoLm1heChvLmIscC5iKX1lbHNlIGlmKEVtZChSRChtUWIoYixOa2QpLDg4KSkpe3MuYj1wLmIray5iO28uYj0kd25kLk1hdGgubWF4KG8uYixzLmIpO2ZvcihyPW5ldyBhdyhQYyhGYyhoLmIpLmEpLmEua2MoKSk7ci5iLk9iKCk7KXtxPVJEKF92KHIuYi5QYigpKSwyMSk7aWYocS5IYygocXBkKCksWG9kKSkpe3QuYj1wLmIray5iO2JyZWFrfX1zLmE9cC5hK2suYTtwLmE9cy5hO28uYT0kd25kLk1hdGgubWF4KG8uYSxwLmEpfX1iLmYuYT1vLmEtZjtiLmYuYj1vLmItZjtpZihIZWIoVEQobVFiKGcsVnpjKSkpJiZkRShtUWIoZyx5QWMpKT09PWRFKChZbWQoKSxVbWQpKSl7Zm9yKG49YS5LYygpO24uT2IoKTspe2w9UkQobi5QYigpLDM2KTt3JGIobCxsLmMuYSxsLmMuYil9Yz1uZXcgal9iO18kYihjLGEsZik7Zm9yKG09YS5LYygpO20uT2IoKTspe2w9UkQobS5QYigpLDM2KTskaWQoaGpkKGwuYyksYy5lKX0kaWQoaGpkKGIuZiksYy5hKX1mb3IoaT1uZXcgQW5iKHRoaXMuYSk7aS5hPGkuYy5jLmxlbmd0aDspe2g9UkQoeW5iKGkpLDMzNSk7diRiKGIsVWMoaC5iKSl9fTt2YXIgQVE9c2ZiKEtBZSwnQ29tcG9uZW50R3JvdXBNb2RlbE9yZGVyR3JhcGhQbGFjZXInLDEzMTIpO2ZlYigzODksMjIsezM6MSwzNDoxLDIyOjEsMzg5OjF9LFYkYik7dmFyIFEkYixSJGIsUyRiLFQkYjt2YXIgQ1E9dGZiKEtBZSwnQ29tcG9uZW50T3JkZXJpbmdTdHJhdGVneScsMzg5LFdJLFgkYixXJGIpO3ZhciBZJGI7ZmViKDY1OSwxLHt9LGpfYik7dmFyIEtRPXNmYihLQWUsJ0NvbXBvbmVudHNDb21wYWN0b3InLDY1OSk7ZmViKDE1MzMsMTMsQ3hlLG1fYik7Xy5GYz1mdW5jdGlvbiBuX2IoYSl7cmV0dXJuIGtfYih0aGlzLFJEKGEsMTQ4KSl9O3ZhciBEUT1zZmIoS0FlLCdDb21wb25lbnRzQ29tcGFjdG9yL0h1bGxwb2ludHMnLDE1MzMpO2ZlYigxNTMwLDEsezg1NToxfSxwX2IpO18uYT1mYWxzZTt2YXIgRVE9c2ZiKEtBZSwnQ29tcG9uZW50c0NvbXBhY3Rvci9JbnRlcm5hbENvbXBvbmVudCcsMTUzMCk7ZmViKDE1MjksMSxWdmUscV9iKTtfLkpjPWZ1bmN0aW9uIHJfYihhKXt4Z2IodGhpcyxhKX07Xy5LYz1mdW5jdGlvbiBzX2IoKXtyZXR1cm4gbmV3IEFuYih0aGlzLmEpfTt2YXIgRlE9c2ZiKEtBZSwnQ29tcG9uZW50c0NvbXBhY3Rvci9JbnRlcm5hbENvbm5lY3RlZENvbXBvbmVudHMnLDE1MjkpO2ZlYigxNTMyLDEsezYwMjoxfSx0X2IpO18uQmY9ZnVuY3Rpb24gdl9iKCl7cmV0dXJuIG51bGx9O18uQ2Y9ZnVuY3Rpb24gd19iKCl7cmV0dXJuIHRoaXMuYX07Xy5BZj1mdW5jdGlvbiB1X2IoKXtyZXR1cm4gZl9iKHRoaXMuZCl9O18uRGY9ZnVuY3Rpb24geF9iKCl7cmV0dXJuIHRoaXMuYn07dmFyIEdRPXNmYihLQWUsJ0NvbXBvbmVudHNDb21wYWN0b3IvSW50ZXJuYWxFeHRlcm5hbEV4dGVuc2lvbicsMTUzMik7ZmViKDE1MzEsMSx7NjAyOjF9LHlfYik7Xy5DZj1mdW5jdGlvbiBCX2IoKXtyZXR1cm4gdGhpcy5hfTtfLkFmPWZ1bmN0aW9uIHpfYigpe3JldHVybiBmX2IodGhpcy5kKX07Xy5CZj1mdW5jdGlvbiBBX2IoKXtyZXR1cm4gdGhpcy5jfTtfLkRmPWZ1bmN0aW9uIENfYigpe3JldHVybiB0aGlzLmJ9O3ZhciBIUT1zZmIoS0FlLCdDb21wb25lbnRzQ29tcGFjdG9yL0ludGVybmFsVW5pb25FeHRlcm5hbEV4dGVuc2lvbicsMTUzMSk7ZmViKDE1MzUsMSx7fSxEX2IpO3ZhciBJUT1zZmIoS0FlLCdDb21wb25lbnRzQ29tcGFjdG9yL091dGVyU2VnbWVudHMnLDE1MzUpO2ZlYigxNTM0LDEse30sRV9iKTt2YXIgSlE9c2ZiKEtBZSwnQ29tcG9uZW50c0NvbXBhY3Rvci9TZWdtZW50cycsMTUzNCk7ZmViKDEyODIsMSx7fSxJX2IpO3ZhciBNUT1zZmIoS0FlLEx6ZSwxMjgyKTtmZWIoMTI4MywxLGZ5ZSxLX2IpO18uTmU9ZnVuY3Rpb24gTF9iKGEsYil7cmV0dXJuIEpfYihSRChhLDM2KSxSRChiLDM2KSl9O18uRmI9ZnVuY3Rpb24gTV9iKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBOX2IoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIExRPXNmYihLQWUsJ0NvbXBvbmVudHNQcm9jZXNzb3IvbGFtYmRhJDAkVHlwZScsMTI4Myk7ZmViKDU3OSwzMzUsezMzNToxLDU3OToxfSxTX2IpO18uRmY9ZnVuY3Rpb24gVF9iKGEpe3JldHVybiBRX2IodGhpcyxhKX07Xy5HZj1mdW5jdGlvbiBVX2IoYSl7cmV0dXJuIFJfYih0aGlzLGEpfTt2YXIgT19iO3ZhciBOUT1zZmIoS0FlLCdNb2RlbE9yZGVyQ29tcG9uZW50R3JvdXAnLDU3OSk7ZmViKDEzMTAsMjEwNCx7fSxWX2IpO18uRWY9ZnVuY3Rpb24gV19iKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbTtpZihhLmdjKCk9PTEpe2w9UkQoYS5YYigwKSwzNik7aWYobCE9Yil7Yi5hLmMubGVuZ3RoPTA7dSRiKGIsbCwwLDApO2tRYihiLGwpO0MyYihiLmQsbC5kKTtiLmYuYT1sLmYuYTtiLmYuYj1sLmYuYn1yZXR1cm59ZWxzZSBpZihhLmRjKCkpe2IuYS5jLmxlbmd0aD0wO2IuZi5hPTA7Yi5mLmI9MDtyZXR1cm59dGhpcy5KZihhLGIpO2U9UkQoYS5YYigwKSwzNik7Yi5hLmMubGVuZ3RoPTA7a1FiKGIsZSk7aj0wO209MDtmb3IoZz1hLktjKCk7Zy5PYigpOyl7Zj1SRChnLlBiKCksMzYpO2s9Zi5mO2o9JHduZC5NYXRoLm1heChqLGsuYSk7bSs9ay5hKmsuYn1qPSR3bmQuTWF0aC5tYXgoaiwkd25kLk1hdGguc3FydChtKSpLZmIoVUQobVFiKGIsKHlDYygpLFR6YykpKSkpO2Q9S2ZiKFVEKG1RYihiLFNCYykpKTt0aGlzLklmKGEsYixqLGQpO2lmKEhlYihURChtUWIoZSxWemMpKSkpe2M9bmV3IGpfYjtfJGIoYyxhLGQpO2ZvcihpPWEuS2MoKTtpLk9iKCk7KXtoPVJEKGkuUGIoKSwzNik7JGlkKGhqZChoLmMpLGMuZSl9JGlkKGhqZChiLmYpLGMuYSl9diRiKGIsYSl9O18uSWY9ZnVuY3Rpb24gWF9iKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGw7az0wO2w9MDtoPTA7ZT1kO2ZvcihnPWEuS2MoKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSwzNik7aj1mLmY7aWYoaytqLmE+Yyl7az0wO2wrPWgrZDtoPTB9aT1mLmM7dyRiKGYsaytpLmEsbCtpLmIpO2hqZChpKTtlPSR3bmQuTWF0aC5tYXgoZSxrK2ouYSk7aD0kd25kLk1hdGgubWF4KGgsai5iKTtrKz1qLmErZH1iLmYuYT1lO2IuZi5iPWwraH07Xy5KZj1mdW5jdGlvbiBZX2IoYSxiKXt2YXIgYyxkLGUsZixnO2lmKGRFKG1RYihiLCh5Q2MoKSxZemMpKSk9PT1kRSgoVSRiKCksVCRiKSkpe2ZvcihkPWEuS2MoKTtkLk9iKCk7KXtjPVJEKGQuUGIoKSwzNik7Zz0wO2ZvcihmPW5ldyBBbmIoYy5hKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTApO2crPVJEKG1RYihlLEpCYyksMTcpLmF9Yy5wPWd9eW9iKCk7YS5qZChuZXcgYjBiKX19O3ZhciBRUT1zZmIoS0FlLCdTaW1wbGVSb3dHcmFwaFBsYWNlcicsMTMxMCk7ZmViKDEzMTMsMTMxMCx7fSxaX2IpO18uSWY9ZnVuY3Rpb24gJF9iKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuO209MDtuPTA7aD0wO2U9ZDtpPW51bGw7bD0wO2ZvcihnPWEuS2MoKTtnLk9iKCk7KXtmPVJEKGcuUGIoKSwzNik7az1mLmY7aWYobStrLmE+YyYmIVJEKG1RYihmLChZd2MoKSxld2MpKSwyMSkuSGMoKHFwZCgpLFlvZCkpfHwhIWkmJlJEKG1RYihpLChZd2MoKSxld2MpKSwyMSkuSGMoKHFwZCgpLFhvZCkpfHxSRChtUWIoZiwoWXdjKCksZXdjKSksMjEpLkhjKChxcGQoKSxwcGQpKSl7bT1sO24rPWgrZDtoPTB9aj1mLmM7UkQobVFiKGYsKFl3YygpLGV3YykpLDIxKS5IYygocXBkKCksWW9kKSkmJihtPWUrZCk7dyRiKGYsbStqLmEsbitqLmIpO2U9JHduZC5NYXRoLm1heChlLG0ray5hKTtSRChtUWIoZixld2MpLDIxKS5IYyhucGQpJiYobD0kd25kLk1hdGgubWF4KGwsbStrLmErZCkpO2hqZChqKTtoPSR3bmQuTWF0aC5tYXgoaCxrLmIpO20rPWsuYStkO2k9Zn1iLmYuYT1lO2IuZi5iPW4raH07Xy5KZj1mdW5jdGlvbiBfX2IoYSxiKXt9O3ZhciBPUT1zZmIoS0FlLCdNb2RlbE9yZGVyUm93R3JhcGhQbGFjZXInLDEzMTMpO2ZlYigxMzExLDEsZnllLGIwYik7Xy5OZT1mdW5jdGlvbiBjMGIoYSxiKXtyZXR1cm4gYTBiKFJEKGEsMzYpLFJEKGIsMzYpKX07Xy5GYj1mdW5jdGlvbiBkMGIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIGUwYigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgUFE9c2ZiKEtBZSwnU2ltcGxlUm93R3JhcGhQbGFjZXIvMScsMTMxMSk7dmFyIGYwYjtmZWIoMTI4MCwxLHh5ZSxsMGIpO18uTGI9ZnVuY3Rpb24gbTBiKGEpe3ZhciBiO3JldHVybiBiPVJEKG1RYihSRChhLDI0OSkuYiwoeUNjKCksUkFjKSksNzUpLCEhYiYmYi5iIT0wfTtfLkZiPWZ1bmN0aW9uIG4wYihhKXtyZXR1cm4gdGhpcz09PWF9O18uTWI9ZnVuY3Rpb24gbzBiKGEpe3ZhciBiO3JldHVybiBiPVJEKG1RYihSRChhLDI0OSkuYiwoeUNjKCksUkFjKSksNzUpLCEhYiYmYi5iIT0wfTt2YXIgUlE9c2ZiKFBBZSwnQ29tcG91bmRHcmFwaFBvc3Rwcm9jZXNzb3IvMScsMTI4MCk7ZmViKDEyNzksMSxRQWUsRTBiKTtfLktmPWZ1bmN0aW9uIEYwYihhLGIpe3kwYih0aGlzLFJEKGEsMzYpLGIpfTt2YXIgVFE9c2ZiKFBBZSwnQ29tcG91bmRHcmFwaFByZXByb2Nlc3NvcicsMTI3OSk7ZmViKDQ1MywxLHs0NTM6MX0sRzBiKTtfLmM9ZmFsc2U7dmFyIFNRPXNmYihQQWUsJ0NvbXBvdW5kR3JhcGhQcmVwcm9jZXNzb3IvRXh0ZXJuYWxQb3J0Jyw0NTMpO2ZlYigyNDksMSx7MjQ5OjF9LEowYik7Xy5JYj1mdW5jdGlvbiBLMGIoKXtyZXR1cm4gcHModGhpcy5jKSsnOicrXzBiKHRoaXMuYil9O3ZhciBWUT1zZmIoUEFlLCdDcm9zc0hpZXJhcmNoeUVkZ2UnLDI0OSk7ZmViKDc3NywxLGZ5ZSxNMGIpO18uTmU9ZnVuY3Rpb24gTjBiKGEsYil7cmV0dXJuIEwwYih0aGlzLFJEKGEsMjQ5KSxSRChiLDI0OSkpfTtfLkZiPWZ1bmN0aW9uIE8wYihhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gUTBiKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBVUT1zZmIoUEFlLCdDcm9zc0hpZXJhcmNoeUVkZ2VDb21wYXJhdG9yJyw3NzcpO2ZlYigzMDUsMTM3LHszOjEsMzA1OjEsOTY6MSwxMzc6MX0pO18ucD0wO3ZhciBkUj1zZmIoUkFlLCdMR3JhcGhFbGVtZW50JywzMDUpO2ZlYigxOCwzMDUsezM6MSwxODoxLDMwNToxLDk2OjEsMTM3OjF9LGExYik7Xy5JYj1mdW5jdGlvbiBiMWIoKXtyZXR1cm4gXzBiKHRoaXMpfTt2YXIgV1E9c2ZiKFJBZSwnTEVkZ2UnLDE4KTtmZWIoMzYsMzA1LHszOjEsMjA6MSwzNjoxLDMwNToxLDk2OjEsMTM3OjF9LGQxYik7Xy5KYz1mdW5jdGlvbiBlMWIoYSl7eGdiKHRoaXMsYSl9O18uS2M9ZnVuY3Rpb24gZjFiKCl7cmV0dXJuIG5ldyBBbmIodGhpcy5iKX07Xy5JYj1mdW5jdGlvbiBnMWIoKXtpZih0aGlzLmIuYy5sZW5ndGg9PTApe3JldHVybiAnRy11bmxheWVyZWQnK0ZlKHRoaXMuYSl9ZWxzZSBpZih0aGlzLmEuYy5sZW5ndGg9PTApe3JldHVybiAnRy1sYXllcmVkJytGZSh0aGlzLmIpfXJldHVybiAnR1tsYXllcmxlc3MnK0ZlKHRoaXMuYSkrJywgbGF5ZXJzJytGZSh0aGlzLmIpKyddJ307dmFyIGVSPXNmYihSQWUsJ0xHcmFwaCcsMzYpO3ZhciBoMWI7ZmViKDY2NiwxLHt9KTtfLkxmPWZ1bmN0aW9uIGoxYigpe3JldHVybiB0aGlzLmUubn07Xy5vZj1mdW5jdGlvbiBrMWIoYSl7cmV0dXJuIG1RYih0aGlzLmUsYSl9O18uTWY9ZnVuY3Rpb24gbDFiKCl7cmV0dXJuIHRoaXMuZS5vfTtfLk5mPWZ1bmN0aW9uIG0xYigpe3JldHVybiB0aGlzLmUucH07Xy5wZj1mdW5jdGlvbiBuMWIoYSl7cmV0dXJuIG5RYih0aGlzLmUsYSl9O18uT2Y9ZnVuY3Rpb24gbzFiKGEpe3RoaXMuZS5uLmE9YS5hO3RoaXMuZS5uLmI9YS5ifTtfLlBmPWZ1bmN0aW9uIHAxYihhKXt0aGlzLmUuby5hPWEuYTt0aGlzLmUuby5iPWEuYn07Xy5RZj1mdW5jdGlvbiBxMWIoYSl7dGhpcy5lLnA9YX07dmFyIFhRPXNmYihSQWUsJ0xHcmFwaEFkYXB0ZXJzL0Fic3RyYWN0TFNoYXBlQWRhcHRlcicsNjY2KTtmZWIoNDc0LDEsezg1MzoxfSxyMWIpO18uUmY9ZnVuY3Rpb24gczFiKCl7dmFyIGEsYjtpZighdGhpcy5iKXt0aGlzLmI9ZXYodGhpcy5hLmIuYy5sZW5ndGgpO2ZvcihiPW5ldyBBbmIodGhpcy5hLmIpO2IuYTxiLmMuYy5sZW5ndGg7KXthPVJEKHluYihiKSw3Mik7Um1iKHRoaXMuYixuZXcgRDFiKGEpKX19cmV0dXJuIHRoaXMuYn07Xy5iPW51bGw7dmFyIFlRPXNmYihSQWUsJ0xHcmFwaEFkYXB0ZXJzL0xFZGdlQWRhcHRlcicsNDc0KTtmZWIoNjY1LDEse30sdDFiKTtfLlNmPWZ1bmN0aW9uIHUxYigpe3ZhciBhLGIsYyxkLGUsZjtpZighdGhpcy5iKXt0aGlzLmI9bmV3IGJuYjtmb3IoZD1uZXcgQW5iKHRoaXMuYS5iKTtkLmE8ZC5jLmMubGVuZ3RoOyl7Yz1SRCh5bmIoZCksMzApO2ZvcihmPW5ldyBBbmIoYy5hKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMTApO2lmKHRoaXMuYy5NYihlKSl7Um1iKHRoaXMuYixuZXcgRjFiKHRoaXMsZSx0aGlzLmUpKTtpZih0aGlzLmQpe2lmKG5RYihlLChZd2MoKSxYd2MpKSl7Zm9yKGI9UkQobVFiKGUsWHdjKSwxNSkuS2MoKTtiLk9iKCk7KXthPVJEKGIuUGIoKSwxMCk7Um1iKHRoaXMuYixuZXcgRjFiKHRoaXMsYSxmYWxzZSkpfX1pZihuUWIoZSxWdmMpKXtmb3IoYj1SRChtUWIoZSxWdmMpLDE1KS5LYygpO2IuT2IoKTspe2E9UkQoYi5QYigpLDEwKTtSbWIodGhpcy5iLG5ldyBGMWIodGhpcyxhLGZhbHNlKSl9fX19fX19cmV0dXJuIHRoaXMuYn07Xy5MZj1mdW5jdGlvbiB2MWIoKXt0aHJvdyBBZGIobmV3IGtpYihUQWUpKX07Xy5vZj1mdW5jdGlvbiB3MWIoYSl7cmV0dXJuIG1RYih0aGlzLmEsYSl9O18uTWY9ZnVuY3Rpb24geDFiKCl7cmV0dXJuIHRoaXMuYS5mfTtfLk5mPWZ1bmN0aW9uIHkxYigpe3JldHVybiB0aGlzLmEucH07Xy5wZj1mdW5jdGlvbiB6MWIoYSl7cmV0dXJuIG5RYih0aGlzLmEsYSl9O18uT2Y9ZnVuY3Rpb24gQTFiKGEpe3Rocm93IEFkYihuZXcga2liKFRBZSkpfTtfLlBmPWZ1bmN0aW9uIEIxYihhKXt0aGlzLmEuZi5hPWEuYTt0aGlzLmEuZi5iPWEuYn07Xy5RZj1mdW5jdGlvbiBDMWIoYSl7dGhpcy5hLnA9YX07Xy5iPW51bGw7Xy5kPWZhbHNlO18uZT1mYWxzZTt2YXIgWlE9c2ZiKFJBZSwnTEdyYXBoQWRhcHRlcnMvTEdyYXBoQWRhcHRlcicsNjY1KTtmZWIoNTg1LDY2Nix7MTg3OjF9LEQxYik7dmFyICRRPXNmYihSQWUsJ0xHcmFwaEFkYXB0ZXJzL0xMYWJlbEFkYXB0ZXInLDU4NSk7ZmViKDU4NCw2NjYsezY5NToxfSxGMWIpO18uVGY9ZnVuY3Rpb24gRzFiKCl7cmV0dXJuIHRoaXMuYn07Xy5VZj1mdW5jdGlvbiBIMWIoKXtyZXR1cm4geW9iKCkseW9iKCksdm9ifTtfLlJmPWZ1bmN0aW9uIEkxYigpe3ZhciBhLGI7aWYoIXRoaXMuYSl7dGhpcy5hPWV2KFJEKHRoaXMuZSwxMCkuYi5jLmxlbmd0aCk7Zm9yKGI9bmV3IEFuYihSRCh0aGlzLmUsMTApLmIpO2IuYTxiLmMuYy5sZW5ndGg7KXthPVJEKHluYihiKSw3Mik7Um1iKHRoaXMuYSxuZXcgRDFiKGEpKX19cmV0dXJuIHRoaXMuYX07Xy5WZj1mdW5jdGlvbiBKMWIoKXt2YXIgYTthPVJEKHRoaXMuZSwxMCkuZDtyZXR1cm4gbmV3IFIyYihhLmQsYS5jLGEuYSxhLmIpfTtfLldmPWZ1bmN0aW9uIEsxYigpe3JldHVybiB5b2IoKSx5b2IoKSx2b2J9O18uWGY9ZnVuY3Rpb24gTDFiKCl7dmFyIGEsYjtpZighdGhpcy5jKXt0aGlzLmM9ZXYoUkQodGhpcy5lLDEwKS5qLmMubGVuZ3RoKTtmb3IoYj1uZXcgQW5iKFJEKHRoaXMuZSwxMCkuaik7Yi5hPGIuYy5jLmxlbmd0aDspe2E9UkQoeW5iKGIpLDEyKTtSbWIodGhpcy5jLG5ldyBRMWIoYSx0aGlzLmQpKX19cmV0dXJuIHRoaXMuY307Xy5ZZj1mdW5jdGlvbiBNMWIoKXtyZXR1cm4gSGViKFREKG1RYihSRCh0aGlzLmUsMTApLChZd2MoKSxZdmMpKSkpfTtfLlpmPWZ1bmN0aW9uIE4xYihhKXtSRCh0aGlzLmUsMTApLmQuYj1hLmI7UkQodGhpcy5lLDEwKS5kLmQ9YS5kO1JEKHRoaXMuZSwxMCkuZC5jPWEuYztSRCh0aGlzLmUsMTApLmQuYT1hLmF9O18uJGY9ZnVuY3Rpb24gTzFiKGEpe1JEKHRoaXMuZSwxMCkuZi5iPWEuYjtSRCh0aGlzLmUsMTApLmYuZD1hLmQ7UkQodGhpcy5lLDEwKS5mLmM9YS5jO1JEKHRoaXMuZSwxMCkuZi5hPWEuYX07Xy5fZj1mdW5jdGlvbiBQMWIoKXtFMWIodGhpcywoaTFiKCksaDFiKSl9O18uYT1udWxsO18uYj1udWxsO18uYz1udWxsO18uZD1mYWxzZTt2YXIgX1E9c2ZiKFJBZSwnTEdyYXBoQWRhcHRlcnMvTE5vZGVBZGFwdGVyJyw1ODQpO2ZlYigxNzg4LDY2Nix7ODUyOjF9LFExYik7Xy5VZj1mdW5jdGlvbiBSMWIoKXt2YXIgYSxiLGMsZCxlLGYsZyxoO2lmKHRoaXMuZCYmUkQodGhpcy5lLDEyKS5pLms9PShyM2IoKSxxM2IpKXtyZXR1cm4geW9iKCkseW9iKCksdm9ifWVsc2UgaWYoIXRoaXMuYSl7dGhpcy5hPW5ldyBibmI7Zm9yKGM9bmV3IEFuYihSRCh0aGlzLmUsMTIpLmUpO2MuYTxjLmMuYy5sZW5ndGg7KXthPVJEKHluYihjKSwxOCk7Um1iKHRoaXMuYSxuZXcgcjFiKGEpKX1pZih0aGlzLmQpe2Q9UkQobVFiKFJEKHRoaXMuZSwxMiksKFl3YygpLEl3YykpLDEwKTtpZihkKXtmb3IoYj1uZXcgaXMoTXIoWjJiKGQpLmEuS2MoKSxuZXcgaXIpKTtncyhiKTspe2E9UkQoaHMoYiksMTgpO1JtYih0aGlzLmEsbmV3IHIxYihhKSl9fX1pZihuUWIoUkQodGhpcy5lLDEyKS5pLChZd2MoKSxQd2MpKSl7Zz1SRChtUWIoUkQodGhpcy5lLDEyKS5pLFB3YyksMzM3KTtoPVJEKGN1YihnLmUsdGhpcy5lKSwxMTMpO2lmKGgpe2ZvcihmPW5ldyBBbmIoaC5iKTtmLmE8Zi5jLmMubGVuZ3RoOyl7ZT1SRCh5bmIoZiksMzQwKTtSbWIodGhpcy5hLG5ldyByMWIoZS5hKSl9fX19cmV0dXJuIHRoaXMuYX07Xy5SZj1mdW5jdGlvbiBTMWIoKXt2YXIgYSxiO2lmKCF0aGlzLmIpe3RoaXMuYj1ldihSRCh0aGlzLmUsMTIpLmYuYy5sZW5ndGgpO2ZvcihiPW5ldyBBbmIoUkQodGhpcy5lLDEyKS5mKTtiLmE8Yi5jLmMubGVuZ3RoOyl7YT1SRCh5bmIoYiksNzIpO1JtYih0aGlzLmIsbmV3IEQxYihhKSl9fXJldHVybiB0aGlzLmJ9O18uV2Y9ZnVuY3Rpb24gVDFiKCl7dmFyIGEsYixjLGQsZSxmLGcsaDtpZih0aGlzLmQmJlJEKHRoaXMuZSwxMikuaS5rPT0ocjNiKCkscTNiKSl7cmV0dXJuIHlvYigpLHlvYigpLHZvYn1lbHNlIGlmKCF0aGlzLmMpe3RoaXMuYz1uZXcgYm5iO2ZvcihjPW5ldyBBbmIoUkQodGhpcy5lLDEyKS5nKTtjLmE8Yy5jLmMubGVuZ3RoOyl7YT1SRCh5bmIoYyksMTgpO1JtYih0aGlzLmMsbmV3IHIxYihhKSl9aWYodGhpcy5kKXtkPVJEKG1RYihSRCh0aGlzLmUsMTIpLChZd2MoKSxJd2MpKSwxMCk7aWYoZCl7Zm9yKGI9bmV3IGlzKE1yKGEzYihkKS5hLktjKCksbmV3IGlyKSk7Z3MoYik7KXthPVJEKGhzKGIpLDE4KTtSbWIodGhpcy5jLG5ldyByMWIoYSkpfX19aWYoblFiKFJEKHRoaXMuZSwxMikuaSwoWXdjKCksUHdjKSkpe2c9UkQobVFiKFJEKHRoaXMuZSwxMikuaSxQd2MpLDMzNyk7aD1SRChjdWIoZy5lLHRoaXMuZSksMTEzKTtpZihoKXtmb3IoZj1uZXcgQW5iKGguZSk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDM0MCk7Um1iKHRoaXMuYyxuZXcgcjFiKGUuYSkpfX19fXJldHVybiB0aGlzLmN9O18uYWc9ZnVuY3Rpb24gVTFiKCl7cmV0dXJuIFJEKHRoaXMuZSwxMikuan07Xy5iZz1mdW5jdGlvbiBWMWIoKXtyZXR1cm4gSGViKFREKG1RYihSRCh0aGlzLmUsMTIpLChZd2MoKSxud2MpKSkpfTtfLmE9bnVsbDtfLmI9bnVsbDtfLmM9bnVsbDtfLmQ9ZmFsc2U7dmFyIGFSPXNmYihSQWUsJ0xHcmFwaEFkYXB0ZXJzL0xQb3J0QWRhcHRlcicsMTc4OCk7ZmViKDE3ODksMSxmeWUsWDFiKTtfLk5lPWZ1bmN0aW9uIFkxYihhLGIpe3JldHVybiBXMWIoUkQoYSwxMiksUkQoYiwxMikpfTtfLkZiPWZ1bmN0aW9uIFoxYihhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gJDFiKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBiUj1zZmIoUkFlLCdMR3JhcGhBZGFwdGVycy9Qb3J0Q29tcGFyYXRvcicsMTc4OSk7ZmViKDgxOCwxLG53ZSxfMWIpO18uTWI9ZnVuY3Rpb24gYTJiKGEpe3JldHVybiBSRChhLDEwKSxpMWIoKSx0cnVlfTt2YXIgY1I9c2ZiKFJBZSwnTEdyYXBoQWRhcHRlcnMvbGFtYmRhJDAkVHlwZScsODE4KTtmZWIoNDA0LDMwNSx7MzoxLDMwNToxLDQwNDoxLDk2OjEsMTM3OjF9KTt2YXIgeVI9c2ZiKFJBZSwnTFNoYXBlJyw0MDQpO2ZlYig3Miw0MDQsezM6MSwzMDU6MSw3MjoxLDQwNDoxLDk2OjEsMTM3OjF9LHgyYix5MmIpO18uSWI9ZnVuY3Rpb24gejJiKCl7dmFyIGE7YT13MmIodGhpcyk7cmV0dXJuIGE9PW51bGw/J2xhYmVsJzonbF8nK2F9O3ZhciBmUj1zZmIoUkFlLCdMTGFiZWwnLDcyKTtmZWIoMjE0LDEsezM6MSw0OjEsMjE0OjEsNDIzOjF9KTtfLkZiPWZ1bmN0aW9uIEsyYihhKXt2YXIgYjtpZihaRChhLDIxNCkpe2I9UkQoYSwyMTQpO3JldHVybiB0aGlzLmQ9PWIuZCYmdGhpcy5hPT1iLmEmJnRoaXMuYj09Yi5iJiZ0aGlzLmM9PWIuY31lbHNle3JldHVybiBmYWxzZX19O18uSGI9ZnVuY3Rpb24gTDJiKCl7dmFyIGEsYjthPU5mYih0aGlzLmIpPDwxNjthfD1OZmIodGhpcy5hKSZCd2U7Yj1OZmIodGhpcy5jKTw8MTY7Ynw9TmZiKHRoaXMuZCkmQndlO3JldHVybiBhXmJ9O18uY2c9ZnVuY3Rpb24gTjJiKGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG07Zz0wO3doaWxlKGc8Yi5sZW5ndGgmJk0yYigoQkZiKGcsYi5sZW5ndGgpLGIuY2hhckNvZGVBdChnKSksWUFlKSl7KytnfWM9Yi5sZW5ndGg7d2hpbGUoYz4wJiZNMmIoKEJGYihjLTEsYi5sZW5ndGgpLGIuY2hhckNvZGVBdChjLTEpKSxaQWUpKXstLWN9aWYoZzxjKXtsPXZoYigoQUZiKGcsYyxiLmxlbmd0aCksYi5zdWJzdHIoZyxjLWcpKSwnLHw7Jyk7dHJ5e2ZvcihpPWwsaj0wLGs9aS5sZW5ndGg7ajxrOysrail7aD1pW2pdO2Y9dmhiKGgsJz0nKTtpZihmLmxlbmd0aCE9Mil7dGhyb3cgQWRiKG5ldyBhZ2IoJ0V4cGVjdGluZyBhIGxpc3Qgb2Yga2V5LXZhbHVlIHBhaXJzLicpKX1lPURoYihmWzBdKTttPU5lYihEaGIoZlsxXSkpO2xoYihlLCd0b3AnKT8odGhpcy5kPW0pOmxoYihlLCdsZWZ0Jyk/KHRoaXMuYj1tKTpsaGIoZSwnYm90dG9tJyk/KHRoaXMuYT1tKTpsaGIoZSwncmlnaHQnKSYmKHRoaXMuYz1tKX19Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwxMzApKXtkPWE7dGhyb3cgQWRiKG5ldyBhZ2IoJEFlK2QpKX1lbHNlIHRocm93IEFkYihhKX19fTtfLkliPWZ1bmN0aW9uIE8yYigpe3JldHVybiAnW3RvcD0nK3RoaXMuZCsnLGxlZnQ9Jyt0aGlzLmIrJyxib3R0b209Jyt0aGlzLmErJyxyaWdodD0nK3RoaXMuYysnXSd9O18uYT0wO18uYj0wO18uYz0wO18uZD0wO3ZhciBtMz1zZmIoX0FlLCdTcGFjaW5nJywyMTQpO2ZlYigxNDAsMjE0LGFCZSxQMmIsUTJiLFIyYixTMmIpO3ZhciBoMz1zZmIoX0FlLCdFbGtNYXJnaW4nLDE0MCk7ZmViKDY2MCwxNDAsYUJlLFQyYik7dmFyIGdSPXNmYihSQWUsJ0xNYXJnaW4nLDY2MCk7ZmViKDEwLDQwNCx7MzoxLDMwNToxLDEwOjEsNDA0OjEsOTY6MSwxMzc6MX0sajNiKTtfLkliPWZ1bmN0aW9uIGszYigpe3JldHVybiBpM2IodGhpcyl9O18uaT1mYWxzZTt2YXIgalI9c2ZiKFJBZSwnTE5vZGUnLDEwKTtmZWIoMjczLDIyLHszOjEsMzQ6MSwyMjoxLDI3MzoxfSxzM2IpO3ZhciBsM2IsbTNiLG4zYixvM2IscDNiLHEzYjt2YXIgaFI9dGZiKFJBZSwnTE5vZGUvTm9kZVR5cGUnLDI3MyxXSSx1M2IsdDNiKTt2YXIgdjNiO2ZlYig3NzUsMSxud2UseDNiKTtfLk1iPWZ1bmN0aW9uIHkzYihhKXtyZXR1cm4gSGViKFREKG1RYihSRChhLDcyKSwoeUNjKCksdkFjKSkpKX07dmFyIGlSPXNmYihSQWUsJ0xOb2RlL2xhbWJkYSQwJFR5cGUnLDc3NSk7ZmViKDEwNywyMTQsYkJlLHozYixBM2IsQjNiKTt2YXIgaTM9c2ZiKF9BZSwnRWxrUGFkZGluZycsMTA3KTtmZWIoNzc4LDEwNyxiQmUsQzNiKTt2YXIga1I9c2ZiKFJBZSwnTFBhZGRpbmcnLDc3OCk7ZmViKDEyLDQwNCx7MzoxLDMwNToxLDEyOjEsNDA0OjEsOTY6MSwxMzc6MX0sUjNiKTtfLkliPWZ1bmN0aW9uIFMzYigpe3ZhciBhLGIsYzthPW5ldyBiaWI7WmhiKChhLmErPSdwXycsYSksTTNiKHRoaXMpKTshIXRoaXMuaSYmWmhiKFloYigoYS5hKz0nWycsYSksdGhpcy5pKSwnXScpO2lmKHRoaXMuZS5jLmxlbmd0aD09MSYmdGhpcy5nLmMubGVuZ3RoPT0wJiZSRChWbWIodGhpcy5lLDApLDE4KS5jIT10aGlzKXtiPVJEKFZtYih0aGlzLmUsMCksMTgpLmM7WmhiKChhLmErPScgPDwgJyxhKSxNM2IoYikpO1poYihZaGIoKGEuYSs9J1snLGEpLGIuaSksJ10nKX1pZih0aGlzLmUuYy5sZW5ndGg9PTAmJnRoaXMuZy5jLmxlbmd0aD09MSYmUkQoVm1iKHRoaXMuZywwKSwxOCkuZCE9dGhpcyl7Yz1SRChWbWIodGhpcy5nLDApLDE4KS5kO1poYigoYS5hKz0nID4+ICcsYSksTTNiKGMpKTtaaGIoWWhiKChhLmErPSdbJyxhKSxjLmkpLCddJyl9cmV0dXJuIGEuYX07Xy5jPXRydWU7Xy5kPWZhbHNlO3ZhciBEM2IsRTNiLEYzYixHM2IsSDNiLEkzYjt2YXIgeFI9c2ZiKFJBZSwnTFBvcnQnLDEyKTtmZWIoNDA4LDEsVnZlLFQzYik7Xy5KYz1mdW5jdGlvbiBVM2IoYSl7eGdiKHRoaXMsYSl9O18uS2M9ZnVuY3Rpb24gVjNiKCl7dmFyIGE7YT1uZXcgQW5iKHRoaXMuYS5lKTtyZXR1cm4gbmV3IFczYihhKX07dmFyIG1SPXNmYihSQWUsJ0xQb3J0LzEnLDQwOCk7ZmViKDEzMDksMSxBdmUsVzNiKTtfLk5iPWZ1bmN0aW9uIFgzYihhKXtadGIodGhpcyxhKX07Xy5QYj1mdW5jdGlvbiBaM2IoKXtyZXR1cm4gUkQoeW5iKHRoaXMuYSksMTgpLmN9O18uT2I9ZnVuY3Rpb24gWTNiKCl7cmV0dXJuIHhuYih0aGlzLmEpfTtfLlFiPWZ1bmN0aW9uICQzYigpe3puYih0aGlzLmEpfTt2YXIgbFI9c2ZiKFJBZSwnTFBvcnQvMS8xJywxMzA5KTtmZWIoMzY5LDEsVnZlLF8zYik7Xy5KYz1mdW5jdGlvbiBhNGIoYSl7eGdiKHRoaXMsYSl9O18uS2M9ZnVuY3Rpb24gYjRiKCl7dmFyIGE7cmV0dXJuIGE9bmV3IEFuYih0aGlzLmEuZyksbmV3IGM0YihhKX07dmFyIG9SPXNmYihSQWUsJ0xQb3J0LzInLDM2OSk7ZmViKDc3NiwxLEF2ZSxjNGIpO18uTmI9ZnVuY3Rpb24gZDRiKGEpe1p0Yih0aGlzLGEpfTtfLlBiPWZ1bmN0aW9uIGY0Yigpe3JldHVybiBSRCh5bmIodGhpcy5hKSwxOCkuZH07Xy5PYj1mdW5jdGlvbiBlNGIoKXtyZXR1cm4geG5iKHRoaXMuYSl9O18uUWI9ZnVuY3Rpb24gZzRiKCl7em5iKHRoaXMuYSl9O3ZhciBuUj1zZmIoUkFlLCdMUG9ydC8yLzEnLDc3Nik7ZmViKDEzMDIsMSxWdmUsaDRiKTtfLkpjPWZ1bmN0aW9uIGk0YihhKXt4Z2IodGhpcyxhKX07Xy5LYz1mdW5jdGlvbiBqNGIoKXtyZXR1cm4gbmV3IGw0Yih0aGlzKX07dmFyIHFSPXNmYihSQWUsJ0xQb3J0L0NvbWJpbmVJdGVyJywxMzAyKTtmZWIoMjA4LDEsQXZlLGw0Yik7Xy5OYj1mdW5jdGlvbiBtNGIoYSl7WnRiKHRoaXMsYSl9O18uUWI9ZnVuY3Rpb24gcDRiKCl7JHRiKCl9O18uT2I9ZnVuY3Rpb24gbjRiKCl7cmV0dXJuIGs0Yih0aGlzKX07Xy5QYj1mdW5jdGlvbiBvNGIoKXtyZXR1cm4geG5iKHRoaXMuYSk/eW5iKHRoaXMuYSk6eW5iKHRoaXMuYil9O3ZhciBwUj1zZmIoUkFlLCdMUG9ydC9Db21iaW5lSXRlci8xJywyMDgpO2ZlYigxMzAzLDEseHllLHI0Yik7Xy5MYj1mdW5jdGlvbiBzNGIoYSl7cmV0dXJuIHE0YihhKX07Xy5GYj1mdW5jdGlvbiB0NGIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk1iPWZ1bmN0aW9uIHU0YihhKXtyZXR1cm4gSjNiKCksUkQoYSwxMikuZy5jLmxlbmd0aCE9MH07dmFyIHJSPXNmYihSQWUsJ0xQb3J0L2xhbWJkYSQwJFR5cGUnLDEzMDMpO2ZlYigxMzA0LDEseHllLHc0Yik7Xy5MYj1mdW5jdGlvbiB4NGIoYSl7cmV0dXJuIHY0YihhKX07Xy5GYj1mdW5jdGlvbiB5NGIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk1iPWZ1bmN0aW9uIHo0YihhKXtyZXR1cm4gSjNiKCksUkQoYSwxMikuZS5jLmxlbmd0aCE9MH07dmFyIHNSPXNmYihSQWUsJ0xQb3J0L2xhbWJkYSQxJFR5cGUnLDEzMDQpO2ZlYigxMzA1LDEseHllLEE0Yik7Xy5MYj1mdW5jdGlvbiBCNGIoYSl7cmV0dXJuIEozYigpLFJEKGEsMTIpLmo9PShxcGQoKSxZb2QpfTtfLkZiPWZ1bmN0aW9uIEM0YihhKXtyZXR1cm4gdGhpcz09PWF9O18uTWI9ZnVuY3Rpb24gRDRiKGEpe3JldHVybiBKM2IoKSxSRChhLDEyKS5qPT0ocXBkKCksWW9kKX07dmFyIHRSPXNmYihSQWUsJ0xQb3J0L2xhbWJkYSQyJFR5cGUnLDEzMDUpO2ZlYigxMzA2LDEseHllLEU0Yik7Xy5MYj1mdW5jdGlvbiBGNGIoYSl7cmV0dXJuIEozYigpLFJEKGEsMTIpLmo9PShxcGQoKSxYb2QpfTtfLkZiPWZ1bmN0aW9uIEc0YihhKXtyZXR1cm4gdGhpcz09PWF9O18uTWI9ZnVuY3Rpb24gSDRiKGEpe3JldHVybiBKM2IoKSxSRChhLDEyKS5qPT0ocXBkKCksWG9kKX07dmFyIHVSPXNmYihSQWUsJ0xQb3J0L2xhbWJkYSQzJFR5cGUnLDEzMDYpO2ZlYigxMzA3LDEseHllLEk0Yik7Xy5MYj1mdW5jdGlvbiBKNGIoYSl7cmV0dXJuIEozYigpLFJEKGEsMTIpLmo9PShxcGQoKSxucGQpfTtfLkZiPWZ1bmN0aW9uIEs0YihhKXtyZXR1cm4gdGhpcz09PWF9O18uTWI9ZnVuY3Rpb24gTDRiKGEpe3JldHVybiBKM2IoKSxSRChhLDEyKS5qPT0ocXBkKCksbnBkKX07dmFyIHZSPXNmYihSQWUsJ0xQb3J0L2xhbWJkYSQ0JFR5cGUnLDEzMDcpO2ZlYigxMzA4LDEseHllLE00Yik7Xy5MYj1mdW5jdGlvbiBONGIoYSl7cmV0dXJuIEozYigpLFJEKGEsMTIpLmo9PShxcGQoKSxwcGQpfTtfLkZiPWZ1bmN0aW9uIE80YihhKXtyZXR1cm4gdGhpcz09PWF9O18uTWI9ZnVuY3Rpb24gUDRiKGEpe3JldHVybiBKM2IoKSxSRChhLDEyKS5qPT0ocXBkKCkscHBkKX07dmFyIHdSPXNmYihSQWUsJ0xQb3J0L2xhbWJkYSQ1JFR5cGUnLDEzMDgpO2ZlYigzMCwzMDUsezM6MSwyMDoxLDMwNToxLDMwOjEsOTY6MSwxMzc6MX0sUjRiKTtfLkpjPWZ1bmN0aW9uIFM0YihhKXt4Z2IodGhpcyxhKX07Xy5LYz1mdW5jdGlvbiBUNGIoKXtyZXR1cm4gbmV3IEFuYih0aGlzLmEpfTtfLkliPWZ1bmN0aW9uIFU0Yigpe3JldHVybiAnTF8nK1dtYih0aGlzLmIuYix0aGlzLDApK0ZlKHRoaXMuYSl9O3ZhciB6Uj1zZmIoUkFlLCdMYXllcicsMzApO2ZlYigxMzMwLDEse30sazViKTt2YXIgSlI9c2ZiKGNCZSxkQmUsMTMzMCk7ZmViKDEzMzQsMSx7fSxvNWIpO18uS2I9ZnVuY3Rpb24gcDViKGEpe3JldHVybiBBR2QoUkQoYSw4NCkpfTt2YXIgQVI9c2ZiKGNCZSwnRWxrR3JhcGhJbXBvcnRlci8wbWV0aG9kcmVmJGNvbm5lY3RhYmxlU2hhcGVUb05vZGUkVHlwZScsMTMzNCk7ZmViKDEzMzcsMSx7fSxxNWIpO18uS2I9ZnVuY3Rpb24gcjViKGEpe3JldHVybiBBR2QoUkQoYSw4NCkpfTt2YXIgQlI9c2ZiKGNCZSwnRWxrR3JhcGhJbXBvcnRlci8xbWV0aG9kcmVmJGNvbm5lY3RhYmxlU2hhcGVUb05vZGUkVHlwZScsMTMzNyk7ZmViKDEzMzEsMSxRdmUsczViKTtfLkNkPWZ1bmN0aW9uIHQ1YihhKXskNGIodGhpcy5hLFJEKGEsMTIzKSl9O3ZhciBDUj1zZmIoY0JlLE56ZSwxMzMxKTtmZWIoMTMzMiwxLFF2ZSx1NWIpO18uQ2Q9ZnVuY3Rpb24gdjViKGEpeyQ0Yih0aGlzLmEsUkQoYSwxMjMpKX07dmFyIERSPXNmYihjQmUsZUJlLDEzMzIpO2ZlYigxMzMzLDEse30sdzViKTtfLktiPWZ1bmN0aW9uIHg1YihhKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBTd2IobXpkKFJEKGEsNzQpKSwxNikpfTt2YXIgRVI9c2ZiKGNCZSxmQmUsMTMzMyk7ZmViKDEzMzUsMSxud2UseTViKTtfLk1iPWZ1bmN0aW9uIHo1YihhKXtyZXR1cm4gbDViKHRoaXMuYSxSRChhLDI3KSl9O3ZhciBGUj1zZmIoY0JlLGdCZSwxMzM1KTtmZWIoMTMzNiwxLHt9LEE1Yik7Xy5LYj1mdW5jdGlvbiBCNWIoYSl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgU3diKGx6ZChSRChhLDc0KSksMTYpKX07dmFyIEdSPXNmYihjQmUsJ0Vsa0dyYXBoSW1wb3J0ZXIvbGFtYmRhJDUkVHlwZScsMTMzNik7ZmViKDEzMzgsMSxud2UsQzViKTtfLk1iPWZ1bmN0aW9uIEQ1YihhKXtyZXR1cm4gbTViKHRoaXMuYSxSRChhLDI3KSl9O3ZhciBIUj1zZmIoY0JlLCdFbGtHcmFwaEltcG9ydGVyL2xhbWJkYSQ3JFR5cGUnLDEzMzgpO2ZlYigxMzM5LDEsbndlLEU1Yik7Xy5NYj1mdW5jdGlvbiBGNWIoYSl7cmV0dXJuIG41YihSRChhLDc0KSl9O3ZhciBJUj1zZmIoY0JlLCdFbGtHcmFwaEltcG9ydGVyL2xhbWJkYSQ4JFR5cGUnLDEzMzkpO2ZlYigxMjk3LDEse30sTjViKTt2YXIgRzViO3ZhciBPUj1zZmIoY0JlLCdFbGtHcmFwaExheW91dFRyYW5zZmVycmVyJywxMjk3KTtmZWIoMTI5OCwxLG53ZSxRNWIpO18uTWI9ZnVuY3Rpb24gUjViKGEpe3JldHVybiBPNWIodGhpcy5hLFJEKGEsMTgpKX07dmFyIEtSPXNmYihjQmUsJ0Vsa0dyYXBoTGF5b3V0VHJhbnNmZXJyZXIvbGFtYmRhJDAkVHlwZScsMTI5OCk7ZmViKDEyOTksMSxRdmUsUzViKTtfLkNkPWZ1bmN0aW9uIFQ1YihhKXtINWIoKTtSbWIodGhpcy5hLFJEKGEsMTgpKX07dmFyIExSPXNmYihjQmUsJ0Vsa0dyYXBoTGF5b3V0VHJhbnNmZXJyZXIvbGFtYmRhJDEkVHlwZScsMTI5OSk7ZmViKDEzMDAsMSxud2UsVTViKTtfLk1iPWZ1bmN0aW9uIFY1YihhKXtyZXR1cm4gUDViKHRoaXMuYSxSRChhLDE4KSl9O3ZhciBNUj1zZmIoY0JlLCdFbGtHcmFwaExheW91dFRyYW5zZmVycmVyL2xhbWJkYSQyJFR5cGUnLDEzMDApO2ZlYigxMzAxLDEsUXZlLFc1Yik7Xy5DZD1mdW5jdGlvbiBYNWIoYSl7SDViKCk7Um1iKHRoaXMuYSxSRChhLDE4KSl9O3ZhciBOUj1zZmIoY0JlLCdFbGtHcmFwaExheW91dFRyYW5zZmVycmVyL2xhbWJkYSQzJFR5cGUnLDEzMDEpO2ZlYig4MTksMSx7fSxlNmIpO3ZhciBQUj1zZmIoaEJlLCdCaUxpbmtlZEhhc2hNdWx0aU1hcCcsODE5KTtmZWIoMTU1MCwxLFFBZSxoNmIpO18uS2Y9ZnVuY3Rpb24gaTZiKGEsYil7ZjZiKFJEKGEsMzYpLGIpfTt2YXIgU1I9c2ZiKGhCZSwnQ29tbWVudE5vZGVNYXJnaW5DYWxjdWxhdG9yJywxNTUwKTtmZWIoMTU1MSwxLHt9LGo2Yik7Xy5LYj1mdW5jdGlvbiBrNmIoYSl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgU3diKFJEKGEsMzApLmEsMTYpKX07dmFyIFFSPXNmYihoQmUsJ0NvbW1lbnROb2RlTWFyZ2luQ2FsY3VsYXRvci9sYW1iZGEkMCRUeXBlJywxNTUxKTtmZWIoMTU1MiwxLFF2ZSxsNmIpO18uQ2Q9ZnVuY3Rpb24gbTZiKGEpe2c2YihSRChhLDEwKSl9O3ZhciBSUj1zZmIoaEJlLCdDb21tZW50Tm9kZU1hcmdpbkNhbGN1bGF0b3IvbGFtYmRhJDEkVHlwZScsMTU1Mik7ZmViKDE1NTMsMSxRQWUscTZiKTtfLktmPWZ1bmN0aW9uIHI2YihhLGIpe282YihSRChhLDM2KSxiKX07dmFyIFRSPXNmYihoQmUsJ0NvbW1lbnRQb3N0cHJvY2Vzc29yJywxNTUzKTtmZWIoMTU1NCwxLFFBZSx2NmIpO18uS2Y9ZnVuY3Rpb24gdzZiKGEsYil7czZiKFJEKGEsMzYpLGIpfTt2YXIgVVI9c2ZiKGhCZSwnQ29tbWVudFByZXByb2Nlc3NvcicsMTU1NCk7ZmViKDE1NTUsMSxRQWUseTZiKTtfLktmPWZ1bmN0aW9uIHo2YihhLGIpe3g2YihSRChhLDM2KSxiKX07dmFyIFZSPXNmYihoQmUsJ0NvbnN0cmFpbnRzUG9zdHByb2Nlc3NvcicsMTU1NSk7ZmViKDE1NTYsMSxRQWUsRzZiKTtfLktmPWZ1bmN0aW9uIEg2YihhLGIpe0U2YihSRChhLDM2KSxiKX07dmFyIFdSPXNmYihoQmUsJ0VkZ2VBbmRMYXllckNvbnN0cmFpbnRFZGdlUmV2ZXJzZXInLDE1NTYpO2ZlYigxNTU3LDEsUUFlLEs2Yik7Xy5LZj1mdW5jdGlvbiBNNmIoYSxiKXtJNmIoUkQoYSwzNiksYil9O3ZhciAkUj1zZmIoaEJlLCdFbmRMYWJlbFBvc3Rwcm9jZXNzb3InLDE1NTcpO2ZlYigxNTU4LDEse30sTjZiKTtfLktiPWZ1bmN0aW9uIE82YihhKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwzMCkuYSwxNikpfTt2YXIgWFI9c2ZiKGhCZSwnRW5kTGFiZWxQb3N0cHJvY2Vzc29yL2xhbWJkYSQwJFR5cGUnLDE1NTgpO2ZlYigxNTU5LDEsbndlLFA2Yik7Xy5NYj1mdW5jdGlvbiBRNmIoYSl7cmV0dXJuIEw2YihSRChhLDEwKSl9O3ZhciBZUj1zZmIoaEJlLCdFbmRMYWJlbFBvc3Rwcm9jZXNzb3IvbGFtYmRhJDEkVHlwZScsMTU1OSk7ZmViKDE1NjAsMSxRdmUsUjZiKTtfLkNkPWZ1bmN0aW9uIFM2YihhKXtKNmIoUkQoYSwxMCkpfTt2YXIgWlI9c2ZiKGhCZSwnRW5kTGFiZWxQb3N0cHJvY2Vzc29yL2xhbWJkYSQyJFR5cGUnLDE1NjApO2ZlYigxNTYxLDEsUUFlLGI3Yik7Xy5LZj1mdW5jdGlvbiBlN2IoYSxiKXtaNmIoUkQoYSwzNiksYil9O3ZhciBmUz1zZmIoaEJlLCdFbmRMYWJlbFByZXByb2Nlc3NvcicsMTU2MSk7ZmViKDE1NjIsMSx7fSxmN2IpO18uS2I9ZnVuY3Rpb24gZzdiKGEpe3JldHVybiBuZXcgU0RiKG51bGwsbmV3IFN3YihSRChhLDMwKS5hLDE2KSl9O3ZhciBfUj1zZmIoaEJlLCdFbmRMYWJlbFByZXByb2Nlc3Nvci9sYW1iZGEkMCRUeXBlJywxNTYyKTtmZWIoMTU2MywxLFF2ZSxoN2IpO18uQ2Q9ZnVuY3Rpb24gaTdiKGEpe1Y2Yih0aGlzLmEsdGhpcy5iLHRoaXMuYyxSRChhLDEwKSl9O18uYT0wO18uYj0wO18uYz1mYWxzZTt2YXIgYVM9c2ZiKGhCZSwnRW5kTGFiZWxQcmVwcm9jZXNzb3IvbGFtYmRhJDEkVHlwZScsMTU2Myk7ZmViKDE1NjQsMSxud2UsajdiKTtfLk1iPWZ1bmN0aW9uIGs3YihhKXtyZXR1cm4gZEUobVFiKFJEKGEsNzIpLCh5Q2MoKSx3QWMpKSk9PT1kRSgoT21kKCksTm1kKSl9O3ZhciBiUz1zZmIoaEJlLCdFbmRMYWJlbFByZXByb2Nlc3Nvci9sYW1iZGEkMiRUeXBlJywxNTY0KTtmZWIoMTU2NSwxLFF2ZSxsN2IpO18uQ2Q9ZnVuY3Rpb24gbTdiKGEpe011Yih0aGlzLmEsUkQoYSw3MikpfTt2YXIgY1M9c2ZiKGhCZSwnRW5kTGFiZWxQcmVwcm9jZXNzb3IvbGFtYmRhJDMkVHlwZScsMTU2NSk7ZmViKDE1NjYsMSxud2UsbjdiKTtfLk1iPWZ1bmN0aW9uIG83YihhKXtyZXR1cm4gZEUobVFiKFJEKGEsNzIpLCh5Q2MoKSx3QWMpKSk9PT1kRSgoT21kKCksTW1kKSl9O3ZhciBkUz1zZmIoaEJlLCdFbmRMYWJlbFByZXByb2Nlc3Nvci9sYW1iZGEkNCRUeXBlJywxNTY2KTtmZWIoMTU2NywxLFF2ZSxwN2IpO18uQ2Q9ZnVuY3Rpb24gcTdiKGEpe011Yih0aGlzLmEsUkQoYSw3MikpfTt2YXIgZVM9c2ZiKGhCZSwnRW5kTGFiZWxQcmVwcm9jZXNzb3IvbGFtYmRhJDUkVHlwZScsMTU2Nyk7ZmViKDE2MTUsMSxRQWUsejdiKTtfLktmPWZ1bmN0aW9uIEE3YihhLGIpe3c3YihSRChhLDM2KSxiKX07dmFyIHI3Yjt2YXIgblM9c2ZiKGhCZSwnRW5kTGFiZWxTb3J0ZXInLDE2MTUpO2ZlYigxNjE2LDEsZnllLEM3Yik7Xy5OZT1mdW5jdGlvbiBEN2IoYSxiKXtyZXR1cm4gQjdiKFJEKGEsNDY2KSxSRChiLDQ2NikpfTtfLkZiPWZ1bmN0aW9uIEU3YihhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gRjdiKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBnUz1zZmIoaEJlLCdFbmRMYWJlbFNvcnRlci8xJywxNjE2KTtmZWIoNDY2LDEsezQ2NjoxfSxHN2IpO3ZhciBoUz1zZmIoaEJlLCdFbmRMYWJlbFNvcnRlci9MYWJlbEdyb3VwJyw0NjYpO2ZlYigxNjE3LDEse30sSDdiKTtfLktiPWZ1bmN0aW9uIEk3YihhKXtyZXR1cm4gczdiKCksbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwzMCkuYSwxNikpfTt2YXIgaVM9c2ZiKGhCZSwnRW5kTGFiZWxTb3J0ZXIvbGFtYmRhJDAkVHlwZScsMTYxNyk7ZmViKDE2MTgsMSxud2UsSjdiKTtfLk1iPWZ1bmN0aW9uIEs3YihhKXtyZXR1cm4gczdiKCksUkQoYSwxMCkuaz09KHIzYigpLHAzYil9O3ZhciBqUz1zZmIoaEJlLCdFbmRMYWJlbFNvcnRlci9sYW1iZGEkMSRUeXBlJywxNjE4KTtmZWIoMTYxOSwxLFF2ZSxMN2IpO18uQ2Q9ZnVuY3Rpb24gTTdiKGEpe3g3YihSRChhLDEwKSl9O3ZhciBrUz1zZmIoaEJlLCdFbmRMYWJlbFNvcnRlci9sYW1iZGEkMiRUeXBlJywxNjE5KTtmZWIoMTYyMCwxLG53ZSxON2IpO18uTWI9ZnVuY3Rpb24gTzdiKGEpe3JldHVybiBzN2IoKSxkRShtUWIoUkQoYSw3MiksKHlDYygpLHdBYykpKT09PWRFKChPbWQoKSxNbWQpKX07dmFyIGxTPXNmYihoQmUsJ0VuZExhYmVsU29ydGVyL2xhbWJkYSQzJFR5cGUnLDE2MjApO2ZlYigxNjIxLDEsbndlLFA3Yik7Xy5NYj1mdW5jdGlvbiBRN2IoYSl7cmV0dXJuIHM3YigpLGRFKG1RYihSRChhLDcyKSwoeUNjKCksd0FjKSkpPT09ZEUoKE9tZCgpLE5tZCkpfTt2YXIgbVM9c2ZiKGhCZSwnRW5kTGFiZWxTb3J0ZXIvbGFtYmRhJDQkVHlwZScsMTYyMSk7ZmViKDE1NjgsMSxRQWUsYThiKTtfLktmPWZ1bmN0aW9uIGI4YihhLGIpeyQ3Yih0aGlzLFJEKGEsMzYpKX07Xy5iPTA7Xy5jPTA7dmFyIHVTPXNmYihoQmUsJ0ZpbmFsU3BsaW5lQmVuZHBvaW50c0NhbGN1bGF0b3InLDE1NjgpO2ZlYigxNTY5LDEse30sYzhiKTtfLktiPWZ1bmN0aW9uIGQ4YihhKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwzMCkuYSwxNikpfTt2YXIgb1M9c2ZiKGhCZSwnRmluYWxTcGxpbmVCZW5kcG9pbnRzQ2FsY3VsYXRvci9sYW1iZGEkMCRUeXBlJywxNTY5KTtmZWIoMTU3MCwxLHt9LGU4Yik7Xy5LYj1mdW5jdGlvbiBmOGIoYSl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgVHdiKG5ldyBpcyhNcihhM2IoUkQoYSwxMCkpLmEuS2MoKSxuZXcgaXIpKSkpfTt2YXIgcFM9c2ZiKGhCZSwnRmluYWxTcGxpbmVCZW5kcG9pbnRzQ2FsY3VsYXRvci9sYW1iZGEkMSRUeXBlJywxNTcwKTtmZWIoMTU3MSwxLG53ZSxnOGIpO18uTWI9ZnVuY3Rpb24gaDhiKGEpe3JldHVybiAhVzBiKFJEKGEsMTgpKX07dmFyIHFTPXNmYihoQmUsJ0ZpbmFsU3BsaW5lQmVuZHBvaW50c0NhbGN1bGF0b3IvbGFtYmRhJDIkVHlwZScsMTU3MSk7ZmViKDE1NzIsMSxud2UsaThiKTtfLk1iPWZ1bmN0aW9uIGo4YihhKXtyZXR1cm4gblFiKFJEKGEsMTgpLChZd2MoKSxUd2MpKX07dmFyIHJTPXNmYihoQmUsJ0ZpbmFsU3BsaW5lQmVuZHBvaW50c0NhbGN1bGF0b3IvbGFtYmRhJDMkVHlwZScsMTU3Mik7ZmViKDE1NzMsMSxRdmUsazhiKTtfLkNkPWZ1bmN0aW9uIGw4YihhKXtUN2IodGhpcy5hLFJEKGEsMTMxKSl9O3ZhciBzUz1zZmIoaEJlLCdGaW5hbFNwbGluZUJlbmRwb2ludHNDYWxjdWxhdG9yL2xhbWJkYSQ0JFR5cGUnLDE1NzMpO2ZlYigxNTc0LDEsUXZlLG04Yik7Xy5DZD1mdW5jdGlvbiBuOGIoYSl7RW9iKFJEKGEsMTgpLmEpfTt2YXIgdFM9c2ZiKGhCZSwnRmluYWxTcGxpbmVCZW5kcG9pbnRzQ2FsY3VsYXRvci9sYW1iZGEkNSRUeXBlJywxNTc0KTtmZWIoODAzLDEsUUFlLEw4Yik7Xy5LZj1mdW5jdGlvbiBNOGIoYSxiKXtDOGIodGhpcyxSRChhLDM2KSxiKX07dmFyIHdTPXNmYihoQmUsJ0dyYXBoVHJhbnNmb3JtZXInLDgwMyk7ZmViKDUxNywyMix7MzoxLDM0OjEsMjI6MSw1MTc6MX0sUThiKTt2YXIgTjhiLE84Yjt2YXIgdlM9dGZiKGhCZSwnR3JhcGhUcmFuc2Zvcm1lci9Nb2RlJyw1MTcsV0ksUzhiLFI4Yik7dmFyIFQ4YjtmZWIoMTU3NSwxLFFBZSxaOGIpO18uS2Y9ZnVuY3Rpb24gJDhiKGEsYil7VzhiKFJEKGEsMzYpLGIpfTt2YXIgeFM9c2ZiKGhCZSwnSGllcmFyY2hpY2FsTm9kZVJlc2l6aW5nUHJvY2Vzc29yJywxNTc1KTtmZWIoMTU3NiwxLFFBZSxmOWIpO18uS2Y9ZnVuY3Rpb24gZzliKGEsYil7YjliKFJEKGEsMzYpLGIpfTt2YXIgelM9c2ZiKGhCZSwnSGllcmFyY2hpY2FsUG9ydENvbnN0cmFpbnRQcm9jZXNzb3InLDE1NzYpO2ZlYigxNTc3LDEsZnllLGk5Yik7Xy5OZT1mdW5jdGlvbiBqOWIoYSxiKXtyZXR1cm4gaDliKFJEKGEsMTApLFJEKGIsMTApKX07Xy5GYj1mdW5jdGlvbiBrOWIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIGw5Yigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgeVM9c2ZiKGhCZSwnSGllcmFyY2hpY2FsUG9ydENvbnN0cmFpbnRQcm9jZXNzb3IvTm9kZUNvbXBhcmF0b3InLDE1NzcpO2ZlYigxNTc4LDEsUUFlLG85Yik7Xy5LZj1mdW5jdGlvbiBwOWIoYSxiKXttOWIoUkQoYSwzNiksYil9O3ZhciBBUz1zZmIoaEJlLCdIaWVyYXJjaGljYWxQb3J0RHVtbXlTaXplUHJvY2Vzc29yJywxNTc4KTtmZWIoMTU3OSwxLFFBZSxDOWIpO18uS2Y9ZnVuY3Rpb24gRDliKGEsYil7djliKHRoaXMsUkQoYSwzNiksYil9O18uYT0wO3ZhciBEUz1zZmIoaEJlLCdIaWVyYXJjaGljYWxQb3J0T3J0aG9nb25hbEVkZ2VSb3V0ZXInLDE1NzkpO2ZlYigxNTgwLDEsZnllLEY5Yik7Xy5OZT1mdW5jdGlvbiBHOWIoYSxiKXtyZXR1cm4gRTliKFJEKGEsMTApLFJEKGIsMTApKX07Xy5GYj1mdW5jdGlvbiBIOWIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIEk5Yigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgQlM9c2ZiKGhCZSwnSGllcmFyY2hpY2FsUG9ydE9ydGhvZ29uYWxFZGdlUm91dGVyLzEnLDE1ODApO2ZlYigxNTgxLDEsZnllLEs5Yik7Xy5OZT1mdW5jdGlvbiBMOWIoYSxiKXtyZXR1cm4gSjliKFJEKGEsMTApLFJEKGIsMTApKX07Xy5GYj1mdW5jdGlvbiBNOWIoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIE45Yigpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgQ1M9c2ZiKGhCZSwnSGllcmFyY2hpY2FsUG9ydE9ydGhvZ29uYWxFZGdlUm91dGVyLzInLDE1ODEpO2ZlYigxNTgyLDEsUUFlLFE5Yik7Xy5LZj1mdW5jdGlvbiBSOWIoYSxiKXtQOWIoUkQoYSwzNiksYil9O3ZhciBFUz1zZmIoaEJlLCdIaWVyYXJjaGljYWxQb3J0UG9zaXRpb25Qcm9jZXNzb3InLDE1ODIpO2ZlYigxNTgzLDEsUUFlLCQ5Yik7Xy5LZj1mdW5jdGlvbiBfOWIoYSxiKXtaOWIodGhpcyxSRChhLDM2KSl9O18uYT0wO18uYz0wO3ZhciBTOWIsVDliO3ZhciBJUz1zZmIoaEJlLCdIaWdoRGVncmVlTm9kZUxheWVyaW5nUHJvY2Vzc29yJywxNTgzKTtmZWIoNTgwLDEsezU4MDoxfSxhYWMpO18uYj0tMTtfLmQ9LTE7dmFyIEZTPXNmYihoQmUsJ0hpZ2hEZWdyZWVOb2RlTGF5ZXJpbmdQcm9jZXNzb3IvSGlnaERlZ3JlZU5vZGVJbmZvcm1hdGlvbicsNTgwKTtmZWIoMTU4NCwxLHt9LGJhYyk7Xy5LYj1mdW5jdGlvbiBjYWMoYSl7cmV0dXJuIFU5YigpLFoyYihSRChhLDEwKSl9O18uRmI9ZnVuY3Rpb24gZGFjKGEpe3JldHVybiB0aGlzPT09YX07dmFyIEdTPXNmYihoQmUsJ0hpZ2hEZWdyZWVOb2RlTGF5ZXJpbmdQcm9jZXNzb3IvbGFtYmRhJDAkVHlwZScsMTU4NCk7ZmViKDE1ODUsMSx7fSxlYWMpO18uS2I9ZnVuY3Rpb24gZmFjKGEpe3JldHVybiBVOWIoKSxhM2IoUkQoYSwxMCkpfTtfLkZiPWZ1bmN0aW9uIGdhYyhhKXtyZXR1cm4gdGhpcz09PWF9O3ZhciBIUz1zZmIoaEJlLCdIaWdoRGVncmVlTm9kZUxheWVyaW5nUHJvY2Vzc29yL2xhbWJkYSQxJFR5cGUnLDE1ODUpO2ZlYigxNTkxLDEsUUFlLG1hYyk7Xy5LZj1mdW5jdGlvbiBuYWMoYSxiKXtsYWModGhpcyxSRChhLDM2KSxiKX07dmFyIE5TPXNmYihoQmUsJ0h5cGVyZWRnZUR1bW15TWVyZ2VyJywxNTkxKTtmZWIoODA0LDEse30sb2FjKTtfLmE9ZmFsc2U7Xy5iPWZhbHNlO18uYz1mYWxzZTt2YXIgSlM9c2ZiKGhCZSwnSHlwZXJlZGdlRHVtbXlNZXJnZXIvTWVyZ2VTdGF0ZScsODA0KTtmZWIoMTU5MiwxLHt9LHBhYyk7Xy5LYj1mdW5jdGlvbiBxYWMoYSl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgU3diKFJEKGEsMzApLmEsMTYpKX07dmFyIEtTPXNmYihoQmUsJ0h5cGVyZWRnZUR1bW15TWVyZ2VyL2xhbWJkYSQwJFR5cGUnLDE1OTIpO2ZlYigxNTkzLDEse30scmFjKTtfLktiPWZ1bmN0aW9uIHNhYyhhKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwxMCkuaiwxNikpfTt2YXIgTFM9c2ZiKGhCZSwnSHlwZXJlZGdlRHVtbXlNZXJnZXIvbGFtYmRhJDEkVHlwZScsMTU5Myk7ZmViKDE1OTQsMSxRdmUsdGFjKTtfLkNkPWZ1bmN0aW9uIHVhYyhhKXtSRChhLDEyKS5wPS0xfTt2YXIgTVM9c2ZiKGhCZSwnSHlwZXJlZGdlRHVtbXlNZXJnZXIvbGFtYmRhJDIkVHlwZScsMTU5NCk7ZmViKDE1OTUsMSxRQWUseGFjKTtfLktmPWZ1bmN0aW9uIHlhYyhhLGIpe3dhYyhSRChhLDM2KSxiKX07dmFyIE9TPXNmYihoQmUsJ0h5cGVybm9kZXNQcm9jZXNzb3InLDE1OTUpO2ZlYigxNTk2LDEsUUFlLEFhYyk7Xy5LZj1mdW5jdGlvbiBCYWMoYSxiKXt6YWMoUkQoYSwzNiksYil9O3ZhciBQUz1zZmIoaEJlLCdJbkxheWVyQ29uc3RyYWludFByb2Nlc3NvcicsMTU5Nik7ZmViKDE1OTcsMSxRQWUsRGFjKTtfLktmPWZ1bmN0aW9uIEVhYyhhLGIpe0NhYyhSRChhLDM2KSxiKX07dmFyIFFTPXNmYihoQmUsJ0lubmVybW9zdE5vZGVNYXJnaW5DYWxjdWxhdG9yJywxNTk3KTtmZWIoMTU5OCwxLFFBZSxJYWMpO18uS2Y9ZnVuY3Rpb24gTmFjKGEsYil7SGFjKHRoaXMsUkQoYSwzNikpfTtfLmE9cHhlO18uYj1weGU7Xy5jPW94ZTtfLmQ9b3hlO3ZhciBYUz1zZmIoaEJlLCdJbnRlcmFjdGl2ZUV4dGVybmFsUG9ydFBvc2l0aW9uZXInLDE1OTgpO2ZlYigxNTk5LDEse30sT2FjKTtfLktiPWZ1bmN0aW9uIFBhYyhhKXtyZXR1cm4gUkQoYSwxOCkuZC5pfTtfLkZiPWZ1bmN0aW9uIFFhYyhhKXtyZXR1cm4gdGhpcz09PWF9O3ZhciBSUz1zZmIoaEJlLCdJbnRlcmFjdGl2ZUV4dGVybmFsUG9ydFBvc2l0aW9uZXIvbGFtYmRhJDAkVHlwZScsMTU5OSk7ZmViKDE2MDAsMSx7fSxSYWMpO18uS2I9ZnVuY3Rpb24gU2FjKGEpe3JldHVybiBKYWModGhpcy5hLFVEKGEpKX07Xy5GYj1mdW5jdGlvbiBUYWMoYSl7cmV0dXJuIHRoaXM9PT1hfTt2YXIgU1M9c2ZiKGhCZSwnSW50ZXJhY3RpdmVFeHRlcm5hbFBvcnRQb3NpdGlvbmVyL2xhbWJkYSQxJFR5cGUnLDE2MDApO2ZlYigxNjAxLDEse30sVWFjKTtfLktiPWZ1bmN0aW9uIFZhYyhhKXtyZXR1cm4gUkQoYSwxOCkuYy5pfTtfLkZiPWZ1bmN0aW9uIFdhYyhhKXtyZXR1cm4gdGhpcz09PWF9O3ZhciBUUz1zZmIoaEJlLCdJbnRlcmFjdGl2ZUV4dGVybmFsUG9ydFBvc2l0aW9uZXIvbGFtYmRhJDIkVHlwZScsMTYwMSk7ZmViKDE2MDIsMSx7fSxYYWMpO18uS2I9ZnVuY3Rpb24gWWFjKGEpe3JldHVybiBLYWModGhpcy5hLFVEKGEpKX07Xy5GYj1mdW5jdGlvbiBaYWMoYSl7cmV0dXJuIHRoaXM9PT1hfTt2YXIgVVM9c2ZiKGhCZSwnSW50ZXJhY3RpdmVFeHRlcm5hbFBvcnRQb3NpdGlvbmVyL2xhbWJkYSQzJFR5cGUnLDE2MDIpO2ZlYigxNjAzLDEse30sJGFjKTtfLktiPWZ1bmN0aW9uIF9hYyhhKXtyZXR1cm4gTGFjKHRoaXMuYSxVRChhKSl9O18uRmI9ZnVuY3Rpb24gYWJjKGEpe3JldHVybiB0aGlzPT09YX07dmFyIFZTPXNmYihoQmUsJ0ludGVyYWN0aXZlRXh0ZXJuYWxQb3J0UG9zaXRpb25lci9sYW1iZGEkNCRUeXBlJywxNjAzKTtmZWIoMTYwNCwxLHt9LGJiYyk7Xy5LYj1mdW5jdGlvbiBjYmMoYSl7cmV0dXJuIE1hYyh0aGlzLmEsVUQoYSkpfTtfLkZiPWZ1bmN0aW9uIGRiYyhhKXtyZXR1cm4gdGhpcz09PWF9O3ZhciBXUz1zZmIoaEJlLCdJbnRlcmFjdGl2ZUV4dGVybmFsUG9ydFBvc2l0aW9uZXIvbGFtYmRhJDUkVHlwZScsMTYwNCk7ZmViKDgxLDIyLHszOjEsMzQ6MSwyMjoxLDgxOjEsMTk2OjF9LGljYyk7Xy5kZz1mdW5jdGlvbiBqY2MoKXtzd2l0Y2godGhpcy5nKXtjYXNlIDE1OnJldHVybiBuZXcgSHJjO2Nhc2UgMjI6cmV0dXJuIG5ldyBic2M7Y2FzZSA0NzpyZXR1cm4gbmV3IGtzYztjYXNlIDI4OmNhc2UgMzU6cmV0dXJuIG5ldyBMZGM7Y2FzZSAzMjpyZXR1cm4gbmV3IGg2YjtjYXNlIDQyOnJldHVybiBuZXcgcTZiO2Nhc2UgMTpyZXR1cm4gbmV3IHY2YjtjYXNlIDQxOnJldHVybiBuZXcgeTZiO2Nhc2UgNTY6cmV0dXJuIG5ldyBMOGIoKFA4YigpLE84YikpO2Nhc2UgMDpyZXR1cm4gbmV3IEw4YigoUDhiKCksTjhiKSk7Y2FzZSAyOnJldHVybiBuZXcgRzZiO2Nhc2UgNTQ6cmV0dXJuIG5ldyBLNmI7Y2FzZSAzMzpyZXR1cm4gbmV3IGI3YjtjYXNlIDUxOnJldHVybiBuZXcgYThiO2Nhc2UgNTU6cmV0dXJuIG5ldyBaOGI7Y2FzZSAxMzpyZXR1cm4gbmV3IGY5YjtjYXNlIDM4OnJldHVybiBuZXcgbzliO2Nhc2UgNDQ6cmV0dXJuIG5ldyBDOWI7Y2FzZSA0MDpyZXR1cm4gbmV3IFE5YjtjYXNlIDk6cmV0dXJuIG5ldyAkOWI7Y2FzZSA0OTpyZXR1cm4gbmV3IFlqYztjYXNlIDM3OnJldHVybiBuZXcgbWFjO2Nhc2UgNDM6cmV0dXJuIG5ldyB4YWM7Y2FzZSAyNzpyZXR1cm4gbmV3IEFhYztjYXNlIDMwOnJldHVybiBuZXcgRGFjO2Nhc2UgMzpyZXR1cm4gbmV3IElhYztjYXNlIDE4OnJldHVybiBuZXcgc2NjO2Nhc2UgMjk6cmV0dXJuIG5ldyB5Y2M7Y2FzZSA1OnJldHVybiBuZXcgTGNjO2Nhc2UgNTA6cmV0dXJuIG5ldyBVY2M7Y2FzZSAzNDpyZXR1cm4gbmV3IHBkYztjYXNlIDM2OnJldHVybiBuZXcgWmRjO2Nhc2UgNTI6cmV0dXJuIG5ldyB6N2I7Y2FzZSAxMTpyZXR1cm4gbmV3IGZlYztjYXNlIDc6cmV0dXJuIG5ldyBwZWM7Y2FzZSAzOTpyZXR1cm4gbmV3IERlYztjYXNlIDQ1OnJldHVybiBuZXcgR2VjO2Nhc2UgMTY6cmV0dXJuIG5ldyBLZWM7Y2FzZSAxMDpyZXR1cm4gbmV3IF9lYztjYXNlIDQ4OnJldHVybiBuZXcgQmZjO2Nhc2UgMjE6cmV0dXJuIG5ldyBJZmM7Y2FzZSAyMzpyZXR1cm4gbmV3IEZLYygoUktjKCksUEtjKSk7Y2FzZSA4OnJldHVybiBuZXcgUmZjO2Nhc2UgMTI6cmV0dXJuIG5ldyBaZmM7Y2FzZSA0OnJldHVybiBuZXcgY2djO2Nhc2UgMTk6cmV0dXJuIG5ldyB4Z2M7Y2FzZSAxNzpyZXR1cm4gbmV3IFZnYztjYXNlIDUzOnJldHVybiBuZXcgWWdjO2Nhc2UgNjpyZXR1cm4gbmV3IE5oYztjYXNlIDI1OnJldHVybiBuZXcgYWhjO2Nhc2UgNDY6cmV0dXJuIG5ldyByaGM7Y2FzZSAzMTpyZXR1cm4gbmV3IFloYztjYXNlIDE0OnJldHVybiBuZXcgamljO2Nhc2UgMjY6cmV0dXJuIG5ldyBTc2M7Y2FzZSAyMDpyZXR1cm4gbmV3IHlpYztjYXNlIDI0OnJldHVybiBuZXcgRktjKChSS2MoKSxRS2MpKTtkZWZhdWx0OnRocm93IEFkYihuZXcgYWdiKGxCZSsodGhpcy5mIT1udWxsP3RoaXMuZjonJyt0aGlzLmcpKSk7fX07dmFyIGViYyxmYmMsZ2JjLGhiYyxpYmMsamJjLGtiYyxsYmMsbWJjLG5iYyxvYmMscGJjLHFiYyxyYmMsc2JjLHRiYyx1YmMsdmJjLHdiYyx4YmMseWJjLHpiYyxBYmMsQmJjLENiYyxEYmMsRWJjLEZiYyxHYmMsSGJjLEliYyxKYmMsS2JjLExiYyxNYmMsTmJjLE9iYyxQYmMsUWJjLFJiYyxTYmMsVGJjLFViYyxWYmMsV2JjLFhiYyxZYmMsWmJjLCRiYyxfYmMsYWNjLGJjYyxjY2MsZGNjLGVjYyxmY2MsZ2NjO3ZhciBZUz10ZmIoaEJlLG1CZSw4MSxXSSxsY2Msa2NjKTt2YXIgbWNjO2ZlYigxNjA1LDEsUUFlLHNjYyk7Xy5LZj1mdW5jdGlvbiB0Y2MoYSxiKXtxY2MoUkQoYSwzNiksYil9O3ZhciBaUz1zZmIoaEJlLCdJbnZlcnRlZFBvcnRQcm9jZXNzb3InLDE2MDUpO2ZlYigxNjA2LDEsUUFlLHljYyk7Xy5LZj1mdW5jdGlvbiB6Y2MoYSxiKXt4Y2MoUkQoYSwzNiksYil9O3ZhciBiVD1zZmIoaEJlLCdMYWJlbEFuZE5vZGVTaXplUHJvY2Vzc29yJywxNjA2KTtmZWIoMTYwNywxLG53ZSxBY2MpO18uTWI9ZnVuY3Rpb24gQmNjKGEpe3JldHVybiBSRChhLDEwKS5rPT0ocjNiKCkscDNiKX07dmFyICRTPXNmYihoQmUsJ0xhYmVsQW5kTm9kZVNpemVQcm9jZXNzb3IvbGFtYmRhJDAkVHlwZScsMTYwNyk7ZmViKDE2MDgsMSxud2UsQ2NjKTtfLk1iPWZ1bmN0aW9uIERjYyhhKXtyZXR1cm4gUkQoYSwxMCkuaz09KHIzYigpLG0zYil9O3ZhciBfUz1zZmIoaEJlLCdMYWJlbEFuZE5vZGVTaXplUHJvY2Vzc29yL2xhbWJkYSQxJFR5cGUnLDE2MDgpO2ZlYigxNjA5LDEsUXZlLEVjYyk7Xy5DZD1mdW5jdGlvbiBGY2MoYSl7dmNjKHRoaXMuYix0aGlzLmEsdGhpcy5jLFJEKGEsMTApKX07Xy5hPWZhbHNlO18uYz1mYWxzZTt2YXIgYVQ9c2ZiKGhCZSwnTGFiZWxBbmROb2RlU2l6ZVByb2Nlc3Nvci9sYW1iZGEkMiRUeXBlJywxNjA5KTtmZWIoMTYxMCwxLFFBZSxMY2MpO18uS2Y9ZnVuY3Rpb24gTWNjKGEsYil7SmNjKFJEKGEsMzYpLGIpfTt2YXIgR2NjO3ZhciBkVD1zZmIoaEJlLCdMYWJlbER1bW15SW5zZXJ0ZXInLDE2MTApO2ZlYigxNjExLDEseHllLE5jYyk7Xy5MYj1mdW5jdGlvbiBPY2MoYSl7cmV0dXJuIGRFKG1RYihSRChhLDcyKSwoeUNjKCksd0FjKSkpPT09ZEUoKE9tZCgpLExtZCkpfTtfLkZiPWZ1bmN0aW9uIFBjYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uTWI9ZnVuY3Rpb24gUWNjKGEpe3JldHVybiBkRShtUWIoUkQoYSw3MiksKHlDYygpLHdBYykpKT09PWRFKChPbWQoKSxMbWQpKX07dmFyIGNUPXNmYihoQmUsJ0xhYmVsRHVtbXlJbnNlcnRlci8xJywxNjExKTtmZWIoMTYxMiwxLFFBZSxVY2MpO18uS2Y9ZnVuY3Rpb24gVmNjKGEsYil7VGNjKFJEKGEsMzYpLGIpfTt2YXIgZlQ9c2ZiKGhCZSwnTGFiZWxEdW1teVJlbW92ZXInLDE2MTIpO2ZlYigxNjEzLDEsbndlLFdjYyk7Xy5NYj1mdW5jdGlvbiBYY2MoYSl7cmV0dXJuIEhlYihURChtUWIoUkQoYSw3MiksKHlDYygpLHZBYykpKSl9O3ZhciBlVD1zZmIoaEJlLCdMYWJlbER1bW15UmVtb3Zlci9sYW1iZGEkMCRUeXBlJywxNjEzKTtmZWIoMTM3OCwxLFFBZSxwZGMpO18uS2Y9ZnVuY3Rpb24gdGRjKGEsYil7bGRjKHRoaXMsUkQoYSwzNiksYil9O18uYT1udWxsO3ZhciBZY2M7dmFyIG1UPXNmYihoQmUsJ0xhYmVsRHVtbXlTd2l0Y2hlcicsMTM3OCk7ZmViKDI5MywxLHsyOTM6MX0seGRjKTtfLmM9MDtfLmQ9bnVsbDtfLmY9MDt2YXIgZ1Q9c2ZiKGhCZSwnTGFiZWxEdW1teVN3aXRjaGVyL0xhYmVsRHVtbXlJbmZvJywyOTMpO2ZlYigxMzc5LDEse30seWRjKTtfLktiPWZ1bmN0aW9uIHpkYyhhKXtyZXR1cm4gWmNjKCksbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwzMCkuYSwxNikpfTt2YXIgaFQ9c2ZiKGhCZSwnTGFiZWxEdW1teVN3aXRjaGVyL2xhbWJkYSQwJFR5cGUnLDEzNzkpO2ZlYigxMzgwLDEsbndlLEFkYyk7Xy5NYj1mdW5jdGlvbiBCZGMoYSl7cmV0dXJuIFpjYygpLFJEKGEsMTApLms9PShyM2IoKSxuM2IpfTt2YXIgaVQ9c2ZiKGhCZSwnTGFiZWxEdW1teVN3aXRjaGVyL2xhbWJkYSQxJFR5cGUnLDEzODApO2ZlYigxMzgxLDEse30sQ2RjKTtfLktiPWZ1bmN0aW9uIERkYyhhKXtyZXR1cm4gcWRjKHRoaXMuYSxSRChhLDEwKSl9O3ZhciBqVD1zZmIoaEJlLCdMYWJlbER1bW15U3dpdGNoZXIvbGFtYmRhJDIkVHlwZScsMTM4MSk7ZmViKDEzODIsMSxRdmUsRWRjKTtfLkNkPWZ1bmN0aW9uIEZkYyhhKXtyZGModGhpcy5hLFJEKGEsMjkzKSl9O3ZhciBrVD1zZmIoaEJlLCdMYWJlbER1bW15U3dpdGNoZXIvbGFtYmRhJDMkVHlwZScsMTM4Mik7ZmViKDEzODMsMSxmeWUsR2RjKTtfLk5lPWZ1bmN0aW9uIEhkYyhhLGIpe3JldHVybiBzZGMoUkQoYSwyOTMpLFJEKGIsMjkzKSl9O18uRmI9ZnVuY3Rpb24gSWRjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBKZGMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIGxUPXNmYihoQmUsJ0xhYmVsRHVtbXlTd2l0Y2hlci9sYW1iZGEkNCRUeXBlJywxMzgzKTtmZWIoODAyLDEsUUFlLExkYyk7Xy5LZj1mdW5jdGlvbiBNZGMoYSxiKXtLZGMoUkQoYSwzNiksYil9O3ZhciBuVD1zZmIoaEJlLCdMYWJlbE1hbmFnZW1lbnRQcm9jZXNzb3InLDgwMik7ZmViKDE2MTQsMSxRQWUsWmRjKTtfLktmPWZ1bmN0aW9uICRkYyhhLGIpe1RkYyhSRChhLDM2KSxiKX07dmFyIG9UPXNmYihoQmUsJ0xhYmVsU2lkZVNlbGVjdG9yJywxNjE0KTtmZWIoMTYyMiwxLFFBZSxmZWMpO18uS2Y9ZnVuY3Rpb24gZ2VjKGEsYil7YmVjKFJEKGEsMzYpLGIpfTt2YXIgcFQ9c2ZiKGhCZSwnTGF5ZXJDb25zdHJhaW50UG9zdHByb2Nlc3NvcicsMTYyMik7ZmViKDE2MjMsMSxRQWUscGVjKTtfLktmPWZ1bmN0aW9uIHFlYyhhLGIpe25lYyhSRChhLDM2KSxiKX07dmFyIGhlYzt2YXIgclQ9c2ZiKGhCZSwnTGF5ZXJDb25zdHJhaW50UHJlcHJvY2Vzc29yJywxNjIzKTtmZWIoMzcxLDIyLHszOjEsMzQ6MSwyMjoxLDM3MToxfSx4ZWMpO3ZhciByZWMsc2VjLHRlYyx1ZWM7dmFyIHFUPXRmYihoQmUsJ0xheWVyQ29uc3RyYWludFByZXByb2Nlc3Nvci9IaWRkZW5Ob2RlQ29ubmVjdGlvbnMnLDM3MSxXSSx6ZWMseWVjKTt2YXIgQWVjO2ZlYigxNjI0LDEsUUFlLERlYyk7Xy5LZj1mdW5jdGlvbiBFZWMoYSxiKXtDZWMoUkQoYSwzNiksYil9O3ZhciBzVD1zZmIoaEJlLCdMYXllclNpemVBbmRHcmFwaEhlaWdodENhbGN1bGF0b3InLDE2MjQpO2ZlYigxNjI1LDEsUUFlLEdlYyk7Xy5LZj1mdW5jdGlvbiBJZWMoYSxiKXtGZWMoUkQoYSwzNiksYil9O3ZhciB0VD1zZmIoaEJlLCdMb25nRWRnZUpvaW5lcicsMTYyNSk7ZmViKDE2MjYsMSxRQWUsS2VjKTtfLktmPWZ1bmN0aW9uIE1lYyhhLGIpe0plYyhSRChhLDM2KSxiKX07dmFyIHVUPXNmYihoQmUsJ0xvbmdFZGdlU3BsaXR0ZXInLDE2MjYpO2ZlYigxNjI3LDEsUUFlLF9lYyk7Xy5LZj1mdW5jdGlvbiBjZmMoYSxiKXtWZWModGhpcyxSRChhLDM2KSxiKX07Xy5lPTA7Xy5mPTA7Xy5qPTA7Xy5rPTA7Xy5uPTA7Xy5vPTA7dmFyIFBlYyxRZWM7dmFyIEFUPXNmYihoQmUsJ05vZGVQcm9tb3Rpb24nLDE2MjcpO2ZlYigxNjI4LDEsZnllLGVmYyk7Xy5OZT1mdW5jdGlvbiBmZmMoYSxiKXtyZXR1cm4gZGZjKFJEKGEsMTApLFJEKGIsMTApKX07Xy5GYj1mdW5jdGlvbiBnZmMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIGhmYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgdlQ9c2ZiKGhCZSwnTm9kZVByb21vdGlvbi8xJywxNjI4KTtmZWIoMTYyOSwxLGZ5ZSxqZmMpO18uTmU9ZnVuY3Rpb24ga2ZjKGEsYil7cmV0dXJuIGlmYyhSRChhLDEwKSxSRChiLDEwKSl9O18uRmI9ZnVuY3Rpb24gbGZjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBtZmMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIHdUPXNmYihoQmUsJ05vZGVQcm9tb3Rpb24vMicsMTYyOSk7ZmViKDE2MzAsMSx7fSxuZmMpO18uS2I9ZnVuY3Rpb24gb2ZjKGEpe3JldHVybiBSRChhLDQyKSxSZWMoKSxHZWIoKSx0cnVlfTtfLkZiPWZ1bmN0aW9uIHBmYyhhKXtyZXR1cm4gdGhpcz09PWF9O3ZhciB4VD1zZmIoaEJlLCdOb2RlUHJvbW90aW9uL2xhbWJkYSQwJFR5cGUnLDE2MzApO2ZlYigxNjMxLDEse30scWZjKTtfLktiPWZ1bmN0aW9uIHJmYyhhKXtyZXR1cm4gYWZjKHRoaXMuYSxSRChhLDQyKSl9O18uRmI9ZnVuY3Rpb24gc2ZjKGEpe3JldHVybiB0aGlzPT09YX07Xy5hPTA7dmFyIHlUPXNmYihoQmUsJ05vZGVQcm9tb3Rpb24vbGFtYmRhJDEkVHlwZScsMTYzMSk7ZmViKDE2MzIsMSx7fSx0ZmMpO18uS2I9ZnVuY3Rpb24gdWZjKGEpe3JldHVybiBiZmModGhpcy5hLFJEKGEsNDIpKX07Xy5GYj1mdW5jdGlvbiB2ZmMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLmE9MDt2YXIgelQ9c2ZiKGhCZSwnTm9kZVByb21vdGlvbi9sYW1iZGEkMiRUeXBlJywxNjMyKTtmZWIoMTYzMywxLFFBZSxCZmMpO18uS2Y9ZnVuY3Rpb24gQ2ZjKGEsYil7d2ZjKFJEKGEsMzYpLGIpfTt2YXIgQlQ9c2ZiKGhCZSwnTm9ydGhTb3V0aFBvcnRQb3N0cHJvY2Vzc29yJywxNjMzKTtmZWIoMTYzNCwxLFFBZSxJZmMpO18uS2Y9ZnVuY3Rpb24gS2ZjKGEsYil7R2ZjKFJEKGEsMzYpLGIpfTt2YXIgRFQ9c2ZiKGhCZSwnTm9ydGhTb3V0aFBvcnRQcmVwcm9jZXNzb3InLDE2MzQpO2ZlYigxNjM1LDEsZnllLExmYyk7Xy5OZT1mdW5jdGlvbiBNZmMoYSxiKXtyZXR1cm4gSmZjKFJEKGEsMTIpLFJEKGIsMTIpKX07Xy5GYj1mdW5jdGlvbiBOZmMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIE9mYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgQ1Q9c2ZiKGhCZSwnTm9ydGhTb3V0aFBvcnRQcmVwcm9jZXNzb3IvbGFtYmRhJDAkVHlwZScsMTYzNSk7ZmViKDE2MzYsMSxRQWUsUmZjKTtfLktmPWZ1bmN0aW9uIFRmYyhhLGIpe1FmYyhSRChhLDM2KSxiKX07dmFyIEdUPXNmYihoQmUsJ1BhcnRpdGlvbk1pZHByb2Nlc3NvcicsMTYzNik7ZmViKDE2MzcsMSxud2UsVWZjKTtfLk1iPWZ1bmN0aW9uIFZmYyhhKXtyZXR1cm4gblFiKFJEKGEsMTApLCh5Q2MoKSx0QmMpKX07dmFyIEVUPXNmYihoQmUsJ1BhcnRpdGlvbk1pZHByb2Nlc3Nvci9sYW1iZGEkMCRUeXBlJywxNjM3KTtmZWIoMTYzOCwxLFF2ZSxXZmMpO18uQ2Q9ZnVuY3Rpb24gWGZjKGEpe1NmYyh0aGlzLmEsUkQoYSwxMCkpfTt2YXIgRlQ9c2ZiKGhCZSwnUGFydGl0aW9uTWlkcHJvY2Vzc29yL2xhbWJkYSQxJFR5cGUnLDE2MzgpO2ZlYigxNjM5LDEsUUFlLFpmYyk7Xy5LZj1mdW5jdGlvbiAkZmMoYSxiKXtZZmMoUkQoYSwzNiksYil9O3ZhciBIVD1zZmIoaEJlLCdQYXJ0aXRpb25Qb3N0cHJvY2Vzc29yJywxNjM5KTtmZWIoMTY0MCwxLFFBZSxjZ2MpO18uS2Y9ZnVuY3Rpb24gZGdjKGEsYil7YWdjKFJEKGEsMzYpLGIpfTt2YXIgTVQ9c2ZiKGhCZSwnUGFydGl0aW9uUHJlcHJvY2Vzc29yJywxNjQwKTtmZWIoMTY0MSwxLG53ZSxlZ2MpO18uTWI9ZnVuY3Rpb24gZmdjKGEpe3JldHVybiBuUWIoUkQoYSwxMCksKHlDYygpLHRCYykpfTt2YXIgSVQ9c2ZiKGhCZSwnUGFydGl0aW9uUHJlcHJvY2Vzc29yL2xhbWJkYSQwJFR5cGUnLDE2NDEpO2ZlYigxNjQyLDEse30sZ2djKTtfLktiPWZ1bmN0aW9uIGhnYyhhKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBUd2IobmV3IGlzKE1yKGEzYihSRChhLDEwKSkuYS5LYygpLG5ldyBpcikpKSl9O3ZhciBKVD1zZmIoaEJlLCdQYXJ0aXRpb25QcmVwcm9jZXNzb3IvbGFtYmRhJDEkVHlwZScsMTY0Mik7ZmViKDE2NDMsMSxud2UsaWdjKTtfLk1iPWZ1bmN0aW9uIGpnYyhhKXtyZXR1cm4gX2ZjKFJEKGEsMTgpKX07dmFyIEtUPXNmYihoQmUsJ1BhcnRpdGlvblByZXByb2Nlc3Nvci9sYW1iZGEkMiRUeXBlJywxNjQzKTtmZWIoMTY0NCwxLFF2ZSxrZ2MpO18uQ2Q9ZnVuY3Rpb24gbGdjKGEpe2JnYyhSRChhLDE4KSl9O3ZhciBMVD1zZmIoaEJlLCdQYXJ0aXRpb25QcmVwcm9jZXNzb3IvbGFtYmRhJDMkVHlwZScsMTY0NCk7ZmViKDE2NDUsMSxRQWUseGdjKTtfLktmPWZ1bmN0aW9uIEJnYyhhLGIpe3VnYyhSRChhLDM2KSxiKX07dmFyIG1nYyxuZ2Msb2djLHBnYyxxZ2MscmdjO3ZhciBTVD1zZmIoaEJlLCdQb3J0TGlzdFNvcnRlcicsMTY0NSk7ZmViKDE2NDgsMSxmeWUsRGdjKTtfLk5lPWZ1bmN0aW9uIEVnYyhhLGIpe3JldHVybiB5Z2MoUkQoYSwxMiksUkQoYiwxMikpfTtfLkZiPWZ1bmN0aW9uIEZnYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gR2djKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBOVD1zZmIoaEJlLCdQb3J0TGlzdFNvcnRlci9sYW1iZGEkMCRUeXBlJywxNjQ4KTtmZWIoMTY1MCwxLGZ5ZSxIZ2MpO18uTmU9ZnVuY3Rpb24gSWdjKGEsYil7cmV0dXJuIHpnYyhSRChhLDEyKSxSRChiLDEyKSl9O18uRmI9ZnVuY3Rpb24gSmdjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBLZ2MoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIE9UPXNmYihoQmUsJ1BvcnRMaXN0U29ydGVyL2xhbWJkYSQxJFR5cGUnLDE2NTApO2ZlYigxNjQ2LDEse30sTGdjKTtfLktiPWZ1bmN0aW9uIE1nYyhhKXtyZXR1cm4gc2djKCksUkQoYSwxMikuZX07dmFyIFBUPXNmYihoQmUsJ1BvcnRMaXN0U29ydGVyL2xhbWJkYSQyJFR5cGUnLDE2NDYpO2ZlYigxNjQ3LDEse30sTmdjKTtfLktiPWZ1bmN0aW9uIE9nYyhhKXtyZXR1cm4gc2djKCksUkQoYSwxMikuZ307dmFyIFFUPXNmYihoQmUsJ1BvcnRMaXN0U29ydGVyL2xhbWJkYSQzJFR5cGUnLDE2NDcpO2ZlYigxNjQ5LDEsZnllLFBnYyk7Xy5OZT1mdW5jdGlvbiBRZ2MoYSxiKXtyZXR1cm4gQWdjKFJEKGEsMTIpLFJEKGIsMTIpKX07Xy5GYj1mdW5jdGlvbiBSZ2MoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIFNnYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgUlQ9c2ZiKGhCZSwnUG9ydExpc3RTb3J0ZXIvbGFtYmRhJDQkVHlwZScsMTY0OSk7ZmViKDE2NTEsMSxRQWUsVmdjKTtfLktmPWZ1bmN0aW9uIFdnYyhhLGIpe1RnYyhSRChhLDM2KSxiKX07dmFyIFRUPXNmYihoQmUsJ1BvcnRTaWRlUHJvY2Vzc29yJywxNjUxKTtmZWIoMTY1MiwxLFFBZSxZZ2MpO18uS2Y9ZnVuY3Rpb24gWmdjKGEsYil7WGdjKFJEKGEsMzYpLGIpfTt2YXIgVVQ9c2ZiKGhCZSwnUmV2ZXJzZWRFZGdlUmVzdG9yZXInLDE2NTIpO2ZlYigxNjU3LDEsUUFlLGFoYyk7Xy5LZj1mdW5jdGlvbiBiaGMoYSxiKXskZ2ModGhpcyxSRChhLDM2KSxiKX07dmFyIF9UPXNmYihoQmUsJ1NlbGZMb29wUG9ydFJlc3RvcmVyJywxNjU3KTtmZWIoMTY1OCwxLHt9LGNoYyk7Xy5LYj1mdW5jdGlvbiBkaGMoYSl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgU3diKFJEKGEsMzApLmEsMTYpKX07dmFyIFZUPXNmYihoQmUsJ1NlbGZMb29wUG9ydFJlc3RvcmVyL2xhbWJkYSQwJFR5cGUnLDE2NTgpO2ZlYigxNjU5LDEsbndlLGVoYyk7Xy5NYj1mdW5jdGlvbiBmaGMoYSl7cmV0dXJuIFJEKGEsMTApLms9PShyM2IoKSxwM2IpfTt2YXIgV1Q9c2ZiKGhCZSwnU2VsZkxvb3BQb3J0UmVzdG9yZXIvbGFtYmRhJDEkVHlwZScsMTY1OSk7ZmViKDE2NjAsMSxud2UsZ2hjKTtfLk1iPWZ1bmN0aW9uIGhoYyhhKXtyZXR1cm4gblFiKFJEKGEsMTApLChZd2MoKSxQd2MpKX07dmFyIFhUPXNmYihoQmUsJ1NlbGZMb29wUG9ydFJlc3RvcmVyL2xhbWJkYSQyJFR5cGUnLDE2NjApO2ZlYigxNjYxLDEse30saWhjKTtfLktiPWZ1bmN0aW9uIGpoYyhhKXtyZXR1cm4gUkQobVFiKFJEKGEsMTApLChZd2MoKSxQd2MpKSwzMzcpfTt2YXIgWVQ9c2ZiKGhCZSwnU2VsZkxvb3BQb3J0UmVzdG9yZXIvbGFtYmRhJDMkVHlwZScsMTY2MSk7ZmViKDE2NjIsMSxRdmUsa2hjKTtfLkNkPWZ1bmN0aW9uIGxoYyhhKXtfZ2ModGhpcy5hLFJEKGEsMzM3KSl9O3ZhciBaVD1zZmIoaEJlLCdTZWxmTG9vcFBvcnRSZXN0b3Jlci9sYW1iZGEkNCRUeXBlJywxNjYyKTtmZWIoODA1LDEsUXZlLG1oYyk7Xy5DZD1mdW5jdGlvbiBuaGMoYSl7Um1jKFJEKGEsMTA1KSl9O3ZhciAkVD1zZmIoaEJlLCdTZWxmTG9vcFBvcnRSZXN0b3Jlci9sYW1iZGEkNSRUeXBlJyw4MDUpO2ZlYigxNjYzLDEsUUFlLHJoYyk7Xy5LZj1mdW5jdGlvbiB0aGMoYSxiKXtvaGMoUkQoYSwzNiksYil9O3ZhciBpVT1zZmIoaEJlLCdTZWxmTG9vcFBvc3RQcm9jZXNzb3InLDE2NjMpO2ZlYigxNjY0LDEse30sdWhjKTtfLktiPWZ1bmN0aW9uIHZoYyhhKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwzMCkuYSwxNikpfTt2YXIgYVU9c2ZiKGhCZSwnU2VsZkxvb3BQb3N0UHJvY2Vzc29yL2xhbWJkYSQwJFR5cGUnLDE2NjQpO2ZlYigxNjY1LDEsbndlLHdoYyk7Xy5NYj1mdW5jdGlvbiB4aGMoYSl7cmV0dXJuIFJEKGEsMTApLms9PShyM2IoKSxwM2IpfTt2YXIgYlU9c2ZiKGhCZSwnU2VsZkxvb3BQb3N0UHJvY2Vzc29yL2xhbWJkYSQxJFR5cGUnLDE2NjUpO2ZlYigxNjY2LDEsbndlLHloYyk7Xy5NYj1mdW5jdGlvbiB6aGMoYSl7cmV0dXJuIG5RYihSRChhLDEwKSwoWXdjKCksUHdjKSl9O3ZhciBjVT1zZmIoaEJlLCdTZWxmTG9vcFBvc3RQcm9jZXNzb3IvbGFtYmRhJDIkVHlwZScsMTY2Nik7ZmViKDE2NjcsMSxRdmUsQWhjKTtfLkNkPWZ1bmN0aW9uIEJoYyhhKXtwaGMoUkQoYSwxMCkpfTt2YXIgZFU9c2ZiKGhCZSwnU2VsZkxvb3BQb3N0UHJvY2Vzc29yL2xhbWJkYSQzJFR5cGUnLDE2NjcpO2ZlYigxNjY4LDEse30sQ2hjKTtfLktiPWZ1bmN0aW9uIERoYyhhKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwxMDUpLmYsMSkpfTt2YXIgZVU9c2ZiKGhCZSwnU2VsZkxvb3BQb3N0UHJvY2Vzc29yL2xhbWJkYSQ0JFR5cGUnLDE2NjgpO2ZlYigxNjY5LDEsUXZlLEVoYyk7Xy5DZD1mdW5jdGlvbiBGaGMoYSl7cWhjKHRoaXMuYSxSRChhLDM0MCkpfTt2YXIgZlU9c2ZiKGhCZSwnU2VsZkxvb3BQb3N0UHJvY2Vzc29yL2xhbWJkYSQ1JFR5cGUnLDE2NjkpO2ZlYigxNjcwLDEsbndlLEdoYyk7Xy5NYj1mdW5jdGlvbiBIaGMoYSl7cmV0dXJuICEhUkQoYSwxMDUpLml9O3ZhciBnVT1zZmIoaEJlLCdTZWxmTG9vcFBvc3RQcm9jZXNzb3IvbGFtYmRhJDYkVHlwZScsMTY3MCk7ZmViKDE2NzEsMSxRdmUsSWhjKTtfLkNkPWZ1bmN0aW9uIEpoYyhhKXtzaGModGhpcy5hLFJEKGEsMTA1KSl9O3ZhciBoVT1zZmIoaEJlLCdTZWxmTG9vcFBvc3RQcm9jZXNzb3IvbGFtYmRhJDckVHlwZScsMTY3MSk7ZmViKDE2NTMsMSxRQWUsTmhjKTtfLktmPWZ1bmN0aW9uIE9oYyhhLGIpe01oYyhSRChhLDM2KSxiKX07dmFyIG1VPXNmYihoQmUsJ1NlbGZMb29wUHJlUHJvY2Vzc29yJywxNjUzKTtmZWIoMTY1NCwxLHt9LFBoYyk7Xy5LYj1mdW5jdGlvbiBRaGMoYSl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgU3diKFJEKGEsMTA1KS5mLDEpKX07dmFyIGpVPXNmYihoQmUsJ1NlbGZMb29wUHJlUHJvY2Vzc29yL2xhbWJkYSQwJFR5cGUnLDE2NTQpO2ZlYigxNjU1LDEse30sUmhjKTtfLktiPWZ1bmN0aW9uIFNoYyhhKXtyZXR1cm4gUkQoYSwzNDApLmF9O3ZhciBrVT1zZmIoaEJlLCdTZWxmTG9vcFByZVByb2Nlc3Nvci9sYW1iZGEkMSRUeXBlJywxNjU1KTtmZWIoMTY1NiwxLFF2ZSxUaGMpO18uQ2Q9ZnVuY3Rpb24gVWhjKGEpe0xoYyhSRChhLDE4KSl9O3ZhciBsVT1zZmIoaEJlLCdTZWxmTG9vcFByZVByb2Nlc3Nvci9sYW1iZGEkMiRUeXBlJywxNjU2KTtmZWIoMTY3MiwxLFFBZSxZaGMpO18uS2Y9ZnVuY3Rpb24gWmhjKGEsYil7V2hjKHRoaXMsUkQoYSwzNiksYil9O3ZhciBzVT1zZmIoaEJlLCdTZWxmTG9vcFJvdXRlcicsMTY3Mik7ZmViKDE2NzMsMSx7fSwkaGMpO18uS2I9ZnVuY3Rpb24gX2hjKGEpe3JldHVybiBuZXcgU0RiKG51bGwsbmV3IFN3YihSRChhLDMwKS5hLDE2KSl9O3ZhciBuVT1zZmIoaEJlLCdTZWxmTG9vcFJvdXRlci9sYW1iZGEkMCRUeXBlJywxNjczKTtmZWIoMTY3NCwxLG53ZSxhaWMpO18uTWI9ZnVuY3Rpb24gYmljKGEpe3JldHVybiBSRChhLDEwKS5rPT0ocjNiKCkscDNiKX07dmFyIG9VPXNmYihoQmUsJ1NlbGZMb29wUm91dGVyL2xhbWJkYSQxJFR5cGUnLDE2NzQpO2ZlYigxNjc1LDEsbndlLGNpYyk7Xy5NYj1mdW5jdGlvbiBkaWMoYSl7cmV0dXJuIG5RYihSRChhLDEwKSwoWXdjKCksUHdjKSl9O3ZhciBwVT1zZmIoaEJlLCdTZWxmTG9vcFJvdXRlci9sYW1iZGEkMiRUeXBlJywxNjc1KTtmZWIoMTY3NiwxLHt9LGVpYyk7Xy5LYj1mdW5jdGlvbiBmaWMoYSl7cmV0dXJuIFJEKG1RYihSRChhLDEwKSwoWXdjKCksUHdjKSksMzM3KX07dmFyIHFVPXNmYihoQmUsJ1NlbGZMb29wUm91dGVyL2xhbWJkYSQzJFR5cGUnLDE2NzYpO2ZlYigxNjc3LDEsUXZlLGdpYyk7Xy5DZD1mdW5jdGlvbiBoaWMoYSl7VmhjKHRoaXMuYSx0aGlzLmIsUkQoYSwzMzcpKX07dmFyIHJVPXNmYihoQmUsJ1NlbGZMb29wUm91dGVyL2xhbWJkYSQ0JFR5cGUnLDE2NzcpO2ZlYigxNjc4LDEsUUFlLGppYyk7Xy5LZj1mdW5jdGlvbiBtaWMoYSxiKXtpaWMoUkQoYSwzNiksYil9O3ZhciB4VT1zZmIoaEJlLCdTZW1pSW50ZXJhY3RpdmVDcm9zc01pblByb2Nlc3NvcicsMTY3OCk7ZmViKDE2NzksMSxud2UsbmljKTtfLk1iPWZ1bmN0aW9uIG9pYyhhKXtyZXR1cm4gUkQoYSwxMCkuaz09KHIzYigpLHAzYil9O3ZhciB0VT1zZmIoaEJlLCdTZW1pSW50ZXJhY3RpdmVDcm9zc01pblByb2Nlc3Nvci9sYW1iZGEkMCRUeXBlJywxNjc5KTtmZWIoMTY4MCwxLG53ZSxwaWMpO18uTWI9ZnVuY3Rpb24gcWljKGEpe3JldHVybiBsUWIoUkQoYSwxMCkpLl9iKCh5Q2MoKSxJQmMpKX07dmFyIHVVPXNmYihoQmUsJ1NlbWlJbnRlcmFjdGl2ZUNyb3NzTWluUHJvY2Vzc29yL2xhbWJkYSQxJFR5cGUnLDE2ODApO2ZlYigxNjgxLDEsZnllLHJpYyk7Xy5OZT1mdW5jdGlvbiBzaWMoYSxiKXtyZXR1cm4ga2ljKFJEKGEsMTApLFJEKGIsMTApKX07Xy5GYj1mdW5jdGlvbiB0aWMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIHVpYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgdlU9c2ZiKGhCZSwnU2VtaUludGVyYWN0aXZlQ3Jvc3NNaW5Qcm9jZXNzb3IvbGFtYmRhJDIkVHlwZScsMTY4MSk7ZmViKDE2ODIsMSx7fSx2aWMpO18uVmU9ZnVuY3Rpb24gd2ljKGEsYil7cmV0dXJuIGxpYyhSRChhLDEwKSxSRChiLDEwKSl9O3ZhciB3VT1zZmIoaEJlLCdTZW1pSW50ZXJhY3RpdmVDcm9zc01pblByb2Nlc3Nvci9sYW1iZGEkMyRUeXBlJywxNjgyKTtmZWIoMTY4NCwxLFFBZSx5aWMpO18uS2Y9ZnVuY3Rpb24gQ2ljKGEsYil7eGljKFJEKGEsMzYpLGIpfTt2YXIgQVU9c2ZiKGhCZSwnU29ydEJ5SW5wdXRNb2RlbFByb2Nlc3NvcicsMTY4NCk7ZmViKDE2ODUsMSxud2UsRGljKTtfLk1iPWZ1bmN0aW9uIEVpYyhhKXtyZXR1cm4gUkQoYSwxMikuZy5jLmxlbmd0aCE9MH07dmFyIHlVPXNmYihoQmUsJ1NvcnRCeUlucHV0TW9kZWxQcm9jZXNzb3IvbGFtYmRhJDAkVHlwZScsMTY4NSk7ZmViKDE2ODYsMSxRdmUsRmljKTtfLkNkPWZ1bmN0aW9uIEdpYyhhKXtBaWModGhpcy5hLFJEKGEsMTIpKX07dmFyIHpVPXNmYihoQmUsJ1NvcnRCeUlucHV0TW9kZWxQcm9jZXNzb3IvbGFtYmRhJDEkVHlwZScsMTY4Nik7ZmViKDE3NTksODE3LHt9LFBpYyk7Xy5kZj1mdW5jdGlvbiBRaWMoYSl7dmFyIGIsYyxkLGU7dGhpcy5jPWE7c3dpdGNoKHRoaXMuYS5nKXtjYXNlIDI6Yj1uZXcgYm5iO0ZEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IodGhpcy5jLmEuYiwxNikpLG5ldyBSamMpLG5ldyBUamModGhpcyxiKSk7ZUhiKHRoaXMsbmV3IFppYyk7VW1iKGIsbmV3IGJqYyk7Yi5jLmxlbmd0aD0wO0ZEYihDRGIobmV3IFNEYihudWxsLG5ldyBTd2IodGhpcy5jLmEuYiwxNikpLG5ldyBkamMpLG5ldyBmamMoYikpO2VIYih0aGlzLG5ldyBqamMpO1VtYihiLG5ldyBuamMpO2IuYy5sZW5ndGg9MDtjPVd2YihUQ2IoSERiKG5ldyBTRGIobnVsbCxuZXcgU3diKHRoaXMuYy5hLmIsMTYpKSxuZXcgcGpjKHRoaXMpKSksbmV3IHJqYyk7RkRiKG5ldyBTRGIobnVsbCxuZXcgU3diKHRoaXMuYy5hLmEsMTYpKSxuZXcgdmpjKGMsYikpO2VIYih0aGlzLG5ldyB6amMpO1VtYihiLG5ldyBEamMpO2IuYy5sZW5ndGg9MDticmVhaztjYXNlIDM6ZD1uZXcgYm5iO2VIYih0aGlzLG5ldyBSaWMpO2U9V3ZiKFRDYihIRGIobmV3IFNEYihudWxsLG5ldyBTd2IodGhpcy5jLmEuYiwxNikpLG5ldyBWaWModGhpcykpKSxuZXcgdGpjKTtGRGIoQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKHRoaXMuYy5hLmIsMTYpKSxuZXcgRmpjKSxuZXcgSGpjKGUsZCkpO2VIYih0aGlzLG5ldyBMamMpO1VtYihkLG5ldyBQamMpO2QuYy5sZW5ndGg9MDticmVhaztkZWZhdWx0OnRocm93IEFkYihuZXcgSWVkKTt9fTtfLmI9MDt2YXIgWlU9c2ZiKHJCZSwnRWRnZUF3YXJlU2NhbmxpbmVDb25zdHJhaW50Q2FsY3VsYXRpb24nLDE3NTkpO2ZlYigxNzYwLDEseHllLFJpYyk7Xy5MYj1mdW5jdGlvbiBTaWMoYSl7cmV0dXJuIFpEKFJEKGEsNjApLmcsMTU0KX07Xy5GYj1mdW5jdGlvbiBUaWMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk1iPWZ1bmN0aW9uIFVpYyhhKXtyZXR1cm4gWkQoUkQoYSw2MCkuZywxNTQpfTt2YXIgQlU9c2ZiKHJCZSwnRWRnZUF3YXJlU2NhbmxpbmVDb25zdHJhaW50Q2FsY3VsYXRpb24vbGFtYmRhJDAkVHlwZScsMTc2MCk7ZmViKDE3NjEsMSx7fSxWaWMpO18uWWU9ZnVuY3Rpb24gV2ljKGEpe3JldHVybiBKaWModGhpcy5hLFJEKGEsNjApKX07dmFyIENVPXNmYihyQmUsJ0VkZ2VBd2FyZVNjYW5saW5lQ29uc3RyYWludENhbGN1bGF0aW9uL2xhbWJkYSQxJFR5cGUnLDE3NjEpO2ZlYigxNzY5LDEsb3dlLFhpYyk7Xy5kZT1mdW5jdGlvbiBZaWMoKXtJaWModGhpcy5hLHRoaXMuYiwtMSl9O18uYj0wO3ZhciBEVT1zZmIockJlLCdFZGdlQXdhcmVTY2FubGluZUNvbnN0cmFpbnRDYWxjdWxhdGlvbi9sYW1iZGEkMTAkVHlwZScsMTc2OSk7ZmViKDE3NzEsMSx4eWUsWmljKTtfLkxiPWZ1bmN0aW9uICRpYyhhKXtyZXR1cm4gWkQoUkQoYSw2MCkuZywxNTQpfTtfLkZiPWZ1bmN0aW9uIF9pYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uTWI9ZnVuY3Rpb24gYWpjKGEpe3JldHVybiBaRChSRChhLDYwKS5nLDE1NCl9O3ZhciBFVT1zZmIockJlLCdFZGdlQXdhcmVTY2FubGluZUNvbnN0cmFpbnRDYWxjdWxhdGlvbi9sYW1iZGEkMTEkVHlwZScsMTc3MSk7ZmViKDE3NzIsMSxRdmUsYmpjKTtfLkNkPWZ1bmN0aW9uIGNqYyhhKXtSRChhLDM4MCkuZGUoKX07dmFyIEZVPXNmYihyQmUsJ0VkZ2VBd2FyZVNjYW5saW5lQ29uc3RyYWludENhbGN1bGF0aW9uL2xhbWJkYSQxMiRUeXBlJywxNzcyKTtmZWIoMTc3MywxLG53ZSxkamMpO18uTWI9ZnVuY3Rpb24gZWpjKGEpe3JldHVybiBaRChSRChhLDYwKS5nLDEwKX07dmFyIEdVPXNmYihyQmUsJ0VkZ2VBd2FyZVNjYW5saW5lQ29uc3RyYWludENhbGN1bGF0aW9uL2xhbWJkYSQxMyRUeXBlJywxNzczKTtmZWIoMTc3NSwxLFF2ZSxmamMpO18uQ2Q9ZnVuY3Rpb24gZ2pjKGEpe0tpYyh0aGlzLmEsUkQoYSw2MCkpfTt2YXIgSFU9c2ZiKHJCZSwnRWRnZUF3YXJlU2NhbmxpbmVDb25zdHJhaW50Q2FsY3VsYXRpb24vbGFtYmRhJDE0JFR5cGUnLDE3NzUpO2ZlYigxNzc0LDEsb3dlLGhqYyk7Xy5kZT1mdW5jdGlvbiBpamMoKXtJaWModGhpcy5iLHRoaXMuYSwtMSl9O18uYT0wO3ZhciBJVT1zZmIockJlLCdFZGdlQXdhcmVTY2FubGluZUNvbnN0cmFpbnRDYWxjdWxhdGlvbi9sYW1iZGEkMTUkVHlwZScsMTc3NCk7ZmViKDE3NzYsMSx4eWUsampjKTtfLkxiPWZ1bmN0aW9uIGtqYyhhKXtyZXR1cm4gWkQoUkQoYSw2MCkuZywxMCl9O18uRmI9ZnVuY3Rpb24gbGpjKGEpe3JldHVybiB0aGlzPT09YX07Xy5NYj1mdW5jdGlvbiBtamMoYSl7cmV0dXJuIFpEKFJEKGEsNjApLmcsMTApfTt2YXIgSlU9c2ZiKHJCZSwnRWRnZUF3YXJlU2NhbmxpbmVDb25zdHJhaW50Q2FsY3VsYXRpb24vbGFtYmRhJDE2JFR5cGUnLDE3NzYpO2ZlYigxNzc3LDEsUXZlLG5qYyk7Xy5DZD1mdW5jdGlvbiBvamMoYSl7UkQoYSwzODApLmRlKCl9O3ZhciBLVT1zZmIockJlLCdFZGdlQXdhcmVTY2FubGluZUNvbnN0cmFpbnRDYWxjdWxhdGlvbi9sYW1iZGEkMTckVHlwZScsMTc3Nyk7ZmViKDE3NzgsMSx7fSxwamMpO18uWWU9ZnVuY3Rpb24gcWpjKGEpe3JldHVybiBMaWModGhpcy5hLFJEKGEsNjApKX07dmFyIExVPXNmYihyQmUsJ0VkZ2VBd2FyZVNjYW5saW5lQ29uc3RyYWludENhbGN1bGF0aW9uL2xhbWJkYSQxOCRUeXBlJywxNzc4KTtmZWIoMTc3OSwxLHt9LHJqYyk7Xy5XZT1mdW5jdGlvbiBzamMoKXtyZXR1cm4gMH07dmFyIE1VPXNmYihyQmUsJ0VkZ2VBd2FyZVNjYW5saW5lQ29uc3RyYWludENhbGN1bGF0aW9uL2xhbWJkYSQxOSRUeXBlJywxNzc5KTtmZWIoMTc2MiwxLHt9LHRqYyk7Xy5XZT1mdW5jdGlvbiB1amMoKXtyZXR1cm4gMH07dmFyIE5VPXNmYihyQmUsJ0VkZ2VBd2FyZVNjYW5saW5lQ29uc3RyYWludENhbGN1bGF0aW9uL2xhbWJkYSQyJFR5cGUnLDE3NjIpO2ZlYigxNzgxLDEsUXZlLHZqYyk7Xy5DZD1mdW5jdGlvbiB3amMoYSl7TWljKHRoaXMuYSx0aGlzLmIsUkQoYSwzMTYpKX07Xy5hPTA7dmFyIE9VPXNmYihyQmUsJ0VkZ2VBd2FyZVNjYW5saW5lQ29uc3RyYWludENhbGN1bGF0aW9uL2xhbWJkYSQyMCRUeXBlJywxNzgxKTtmZWIoMTc4MCwxLG93ZSx4amMpO18uZGU9ZnVuY3Rpb24geWpjKCl7SGljKHRoaXMuYSx0aGlzLmIsLTEpfTtfLmI9MDt2YXIgUFU9c2ZiKHJCZSwnRWRnZUF3YXJlU2NhbmxpbmVDb25zdHJhaW50Q2FsY3VsYXRpb24vbGFtYmRhJDIxJFR5cGUnLDE3ODApO2ZlYigxNzgyLDEseHllLHpqYyk7Xy5MYj1mdW5jdGlvbiBBamMoYSl7cmV0dXJuIFJEKGEsNjApLHRydWV9O18uRmI9ZnVuY3Rpb24gQmpjKGEpe3JldHVybiB0aGlzPT09YX07Xy5NYj1mdW5jdGlvbiBDamMoYSl7cmV0dXJuIFJEKGEsNjApLHRydWV9O3ZhciBRVT1zZmIockJlLCdFZGdlQXdhcmVTY2FubGluZUNvbnN0cmFpbnRDYWxjdWxhdGlvbi9sYW1iZGEkMjIkVHlwZScsMTc4Mik7ZmViKDE3ODMsMSxRdmUsRGpjKTtfLkNkPWZ1bmN0aW9uIEVqYyhhKXtSRChhLDM4MCkuZGUoKX07dmFyIFJVPXNmYihyQmUsJ0VkZ2VBd2FyZVNjYW5saW5lQ29uc3RyYWludENhbGN1bGF0aW9uL2xhbWJkYSQyMyRUeXBlJywxNzgzKTtmZWIoMTc2MywxLG53ZSxGamMpO18uTWI9ZnVuY3Rpb24gR2pjKGEpe3JldHVybiBaRChSRChhLDYwKS5nLDEwKX07dmFyIFNVPXNmYihyQmUsJ0VkZ2VBd2FyZVNjYW5saW5lQ29uc3RyYWludENhbGN1bGF0aW9uL2xhbWJkYSQzJFR5cGUnLDE3NjMpO2ZlYigxNzY1LDEsUXZlLEhqYyk7Xy5DZD1mdW5jdGlvbiBJamMoYSl7TmljKHRoaXMuYSx0aGlzLmIsUkQoYSw2MCkpfTtfLmE9MDt2YXIgVFU9c2ZiKHJCZSwnRWRnZUF3YXJlU2NhbmxpbmVDb25zdHJhaW50Q2FsY3VsYXRpb24vbGFtYmRhJDQkVHlwZScsMTc2NSk7ZmViKDE3NjQsMSxvd2UsSmpjKTtfLmRlPWZ1bmN0aW9uIEtqYygpe0lpYyh0aGlzLmIsdGhpcy5hLC0xKX07Xy5hPTA7dmFyIFVVPXNmYihyQmUsJ0VkZ2VBd2FyZVNjYW5saW5lQ29uc3RyYWludENhbGN1bGF0aW9uL2xhbWJkYSQ1JFR5cGUnLDE3NjQpO2ZlYigxNzY2LDEseHllLExqYyk7Xy5MYj1mdW5jdGlvbiBNamMoYSl7cmV0dXJuIFJEKGEsNjApLHRydWV9O18uRmI9ZnVuY3Rpb24gTmpjKGEpe3JldHVybiB0aGlzPT09YX07Xy5NYj1mdW5jdGlvbiBPamMoYSl7cmV0dXJuIFJEKGEsNjApLHRydWV9O3ZhciBWVT1zZmIockJlLCdFZGdlQXdhcmVTY2FubGluZUNvbnN0cmFpbnRDYWxjdWxhdGlvbi9sYW1iZGEkNiRUeXBlJywxNzY2KTtmZWIoMTc2NywxLFF2ZSxQamMpO18uQ2Q9ZnVuY3Rpb24gUWpjKGEpe1JEKGEsMzgwKS5kZSgpfTt2YXIgV1U9c2ZiKHJCZSwnRWRnZUF3YXJlU2NhbmxpbmVDb25zdHJhaW50Q2FsY3VsYXRpb24vbGFtYmRhJDckVHlwZScsMTc2Nyk7ZmViKDE3NjgsMSxud2UsUmpjKTtfLk1iPWZ1bmN0aW9uIFNqYyhhKXtyZXR1cm4gWkQoUkQoYSw2MCkuZywxNTQpfTt2YXIgWFU9c2ZiKHJCZSwnRWRnZUF3YXJlU2NhbmxpbmVDb25zdHJhaW50Q2FsY3VsYXRpb24vbGFtYmRhJDgkVHlwZScsMTc2OCk7ZmViKDE3NzAsMSxRdmUsVGpjKTtfLkNkPWZ1bmN0aW9uIFVqYyhhKXtPaWModGhpcy5hLHRoaXMuYixSRChhLDYwKSl9O3ZhciBZVT1zZmIockJlLCdFZGdlQXdhcmVTY2FubGluZUNvbnN0cmFpbnRDYWxjdWxhdGlvbi9sYW1iZGEkOSRUeXBlJywxNzcwKTtmZWIoMTU4NiwxLFFBZSxZamMpO18uS2Y9ZnVuY3Rpb24gYmtjKGEsYil7WGpjKHRoaXMsUkQoYSwzNiksYil9O3ZhciBWamM7dmFyIGJWPXNmYihyQmUsJ0hvcml6b250YWxHcmFwaENvbXBhY3RvcicsMTU4Nik7ZmViKDE1ODcsMSx7fSxja2MpO18uZmY9ZnVuY3Rpb24gZGtjKGEsYil7dmFyIGMsZCxlO2lmKF9qYyhhLGIpKXtyZXR1cm4gMH1jPVpqYyhhKTtkPVpqYyhiKTtpZighIWMmJmMuaz09KHIzYigpLG0zYil8fCEhZCYmZC5rPT0ocjNiKCksbTNiKSl7cmV0dXJuIDB9ZT1SRChtUWIodGhpcy5hLmEsKFl3YygpLFF3YykpLDMxMik7cmV0dXJuIFpFYyhlLGM/Yy5rOihyM2IoKSxvM2IpLGQ/ZC5rOihyM2IoKSxvM2IpKX07Xy5nZj1mdW5jdGlvbiBla2MoYSxiKXt2YXIgYyxkLGU7aWYoX2pjKGEsYikpe3JldHVybiAxfWM9WmpjKGEpO2Q9WmpjKGIpO2U9UkQobVFiKHRoaXMuYS5hLChZd2MoKSxRd2MpKSwzMTIpO3JldHVybiBhRmMoZSxjP2MuazoocjNiKCksbzNiKSxkP2QuazoocjNiKCksbzNiKSl9O3ZhciAkVT1zZmIockJlLCdIb3Jpem9udGFsR3JhcGhDb21wYWN0b3IvMScsMTU4Nyk7ZmViKDE1ODgsMSx7fSxma2MpO18uZWY9ZnVuY3Rpb24gZ2tjKGEsYil7cmV0dXJuIFdqYygpLGEuYS5pPT0wfTt2YXIgX1U9c2ZiKHJCZSwnSG9yaXpvbnRhbEdyYXBoQ29tcGFjdG9yL2xhbWJkYSQwJFR5cGUnLDE1ODgpO2ZlYigxNTg5LDEse30saGtjKTtfLmVmPWZ1bmN0aW9uIGlrYyhhLGIpe3JldHVybiBha2ModGhpcy5hLGEsYil9O3ZhciBhVj1zZmIockJlLCdIb3Jpem9udGFsR3JhcGhDb21wYWN0b3IvbGFtYmRhJDEkVHlwZScsMTU4OSk7ZmViKDE3MzAsMSx7fSxDa2MpO3ZhciBqa2Msa2tjO3ZhciBCVj1zZmIockJlLCdMR3JhcGhUb0NHcmFwaFRyYW5zZm9ybWVyJywxNzMwKTtmZWIoMTczOCwxLG53ZSxLa2MpO18uTWI9ZnVuY3Rpb24gTGtjKGEpe3JldHVybiBhIT1udWxsfTt2YXIgY1Y9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci8wbWV0aG9kcmVmJG5vbk51bGwkVHlwZScsMTczOCk7ZmViKDE3MzEsMSx7fSxNa2MpO18uS2I9ZnVuY3Rpb24gTmtjKGEpe3JldHVybiBsa2MoKSxqZWIobVFiKFJEKFJEKGEsNjApLmcsMTApLChZd2MoKSxBd2MpKSl9O3ZhciBkVj1zZmIockJlLCdMR3JhcGhUb0NHcmFwaFRyYW5zZm9ybWVyL2xhbWJkYSQwJFR5cGUnLDE3MzEpO2ZlYigxNzMyLDEse30sT2tjKTtfLktiPWZ1bmN0aW9uIFBrYyhhKXtyZXR1cm4gbGtjKCksTWxjKFJEKFJEKGEsNjApLmcsMTU0KSl9O3ZhciBlVj1zZmIockJlLCdMR3JhcGhUb0NHcmFwaFRyYW5zZm9ybWVyL2xhbWJkYSQxJFR5cGUnLDE3MzIpO2ZlYigxNzQxLDEsbndlLFFrYyk7Xy5NYj1mdW5jdGlvbiBSa2MoYSl7cmV0dXJuIGxrYygpLFpEKFJEKGEsNjApLmcsMTApfTt2YXIgZlY9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci9sYW1iZGEkMTAkVHlwZScsMTc0MSk7ZmViKDE3NDIsMSxRdmUsU2tjKTtfLkNkPWZ1bmN0aW9uIFRrYyhhKXtEa2MoUkQoYSw2MCkpfTt2YXIgZ1Y9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci9sYW1iZGEkMTEkVHlwZScsMTc0Mik7ZmViKDE3NDMsMSxud2UsVWtjKTtfLk1iPWZ1bmN0aW9uIFZrYyhhKXtyZXR1cm4gbGtjKCksWkQoUkQoYSw2MCkuZywxNTQpfTt2YXIgaFY9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci9sYW1iZGEkMTIkVHlwZScsMTc0Myk7ZmViKDE3NDcsMSxRdmUsV2tjKTtfLkNkPWZ1bmN0aW9uIFhrYyhhKXtFa2MoUkQoYSw2MCkpfTt2YXIgaVY9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci9sYW1iZGEkMTMkVHlwZScsMTc0Nyk7ZmViKDE3NDQsMSxRdmUsWWtjKTtfLkNkPWZ1bmN0aW9uIFprYyhhKXtGa2ModGhpcy5hLFJEKGEsOCkpfTtfLmE9MDt2YXIgalY9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci9sYW1iZGEkMTQkVHlwZScsMTc0NCk7ZmViKDE3NDUsMSxRdmUsJGtjKTtfLkNkPWZ1bmN0aW9uIF9rYyhhKXtHa2ModGhpcy5hLFJEKGEsMTE2KSl9O18uYT0wO3ZhciBrVj1zZmIockJlLCdMR3JhcGhUb0NHcmFwaFRyYW5zZm9ybWVyL2xhbWJkYSQxNSRUeXBlJywxNzQ1KTtmZWIoMTc0NiwxLFF2ZSxhbGMpO18uQ2Q9ZnVuY3Rpb24gYmxjKGEpe0hrYyh0aGlzLmEsUkQoYSw4KSl9O18uYT0wO3ZhciBsVj1zZmIockJlLCdMR3JhcGhUb0NHcmFwaFRyYW5zZm9ybWVyL2xhbWJkYSQxNiRUeXBlJywxNzQ2KTtmZWIoMTc0OCwxLHt9LGNsYyk7Xy5LYj1mdW5jdGlvbiBkbGMoYSl7cmV0dXJuIGxrYygpLG5ldyBTRGIobnVsbCxuZXcgVHdiKG5ldyBpcyhNcihhM2IoUkQoYSwxMCkpLmEuS2MoKSxuZXcgaXIpKSkpfTt2YXIgbVY9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci9sYW1iZGEkMTckVHlwZScsMTc0OCk7ZmViKDE3NDksMSxud2UsZWxjKTtfLk1iPWZ1bmN0aW9uIGZsYyhhKXtyZXR1cm4gbGtjKCksVzBiKFJEKGEsMTgpKX07dmFyIG5WPXNmYihyQmUsJ0xHcmFwaFRvQ0dyYXBoVHJhbnNmb3JtZXIvbGFtYmRhJDE4JFR5cGUnLDE3NDkpO2ZlYigxNzUwLDEsUXZlLGdsYyk7Xy5DZD1mdW5jdGlvbiBobGMoYSl7dWtjKHRoaXMuYSxSRChhLDE4KSl9O3ZhciBvVj1zZmIockJlLCdMR3JhcGhUb0NHcmFwaFRyYW5zZm9ybWVyL2xhbWJkYSQxOSRUeXBlJywxNzUwKTtmZWIoMTczNCwxLFF2ZSxpbGMpO18uQ2Q9ZnVuY3Rpb24gamxjKGEpe3ZrYyh0aGlzLmEsUkQoYSwxNTQpKX07dmFyIHBWPXNmYihyQmUsJ0xHcmFwaFRvQ0dyYXBoVHJhbnNmb3JtZXIvbGFtYmRhJDIkVHlwZScsMTczNCk7ZmViKDE3NTEsMSx7fSxrbGMpO18uS2I9ZnVuY3Rpb24gbGxjKGEpe3JldHVybiBsa2MoKSxuZXcgU0RiKG51bGwsbmV3IFN3YihSRChhLDMwKS5hLDE2KSl9O3ZhciBxVj1zZmIockJlLCdMR3JhcGhUb0NHcmFwaFRyYW5zZm9ybWVyL2xhbWJkYSQyMCRUeXBlJywxNzUxKTtmZWIoMTc1MiwxLHt9LG1sYyk7Xy5LYj1mdW5jdGlvbiBubGMoYSl7cmV0dXJuIGxrYygpLG5ldyBTRGIobnVsbCxuZXcgVHdiKG5ldyBpcyhNcihhM2IoUkQoYSwxMCkpLmEuS2MoKSxuZXcgaXIpKSkpfTt2YXIgclY9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci9sYW1iZGEkMjEkVHlwZScsMTc1Mik7ZmViKDE3NTMsMSx7fSxvbGMpO18uS2I9ZnVuY3Rpb24gcGxjKGEpe3JldHVybiBsa2MoKSxSRChtUWIoUkQoYSwxOCksKFl3YygpLFR3YykpLDE1KX07dmFyIHNWPXNmYihyQmUsJ0xHcmFwaFRvQ0dyYXBoVHJhbnNmb3JtZXIvbGFtYmRhJDIyJFR5cGUnLDE3NTMpO2ZlYigxNzU0LDEsbndlLHFsYyk7Xy5NYj1mdW5jdGlvbiBybGMoYSl7cmV0dXJuIElrYyhSRChhLDE1KSl9O3ZhciB0Vj1zZmIockJlLCdMR3JhcGhUb0NHcmFwaFRyYW5zZm9ybWVyL2xhbWJkYSQyMyRUeXBlJywxNzU0KTtmZWIoMTc1NSwxLFF2ZSxzbGMpO18uQ2Q9ZnVuY3Rpb24gdGxjKGEpe25rYyh0aGlzLmEsUkQoYSwxNSkpfTt2YXIgdVY9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci9sYW1iZGEkMjQkVHlwZScsMTc1NSk7ZmViKDE3MzMsMSxRdmUsdWxjKTtfLkNkPWZ1bmN0aW9uIHZsYyhhKXt3a2ModGhpcy5hLHRoaXMuYixSRChhLDE1NCkpfTt2YXIgdlY9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci9sYW1iZGEkMyRUeXBlJywxNzMzKTtmZWIoMTczNSwxLHt9LHdsYyk7Xy5LYj1mdW5jdGlvbiB4bGMoYSl7cmV0dXJuIGxrYygpLG5ldyBTRGIobnVsbCxuZXcgU3diKFJEKGEsMzApLmEsMTYpKX07dmFyIHdWPXNmYihyQmUsJ0xHcmFwaFRvQ0dyYXBoVHJhbnNmb3JtZXIvbGFtYmRhJDQkVHlwZScsMTczNSk7ZmViKDE3MzYsMSx7fSx5bGMpO18uS2I9ZnVuY3Rpb24gemxjKGEpe3JldHVybiBsa2MoKSxuZXcgU0RiKG51bGwsbmV3IFR3YihuZXcgaXMoTXIoYTNiKFJEKGEsMTApKS5hLktjKCksbmV3IGlyKSkpKX07dmFyIHhWPXNmYihyQmUsJ0xHcmFwaFRvQ0dyYXBoVHJhbnNmb3JtZXIvbGFtYmRhJDUkVHlwZScsMTczNik7ZmViKDE3MzcsMSx7fSxBbGMpO18uS2I9ZnVuY3Rpb24gQmxjKGEpe3JldHVybiBsa2MoKSxSRChtUWIoUkQoYSwxOCksKFl3YygpLFR3YykpLDE1KX07dmFyIHlWPXNmYihyQmUsJ0xHcmFwaFRvQ0dyYXBoVHJhbnNmb3JtZXIvbGFtYmRhJDYkVHlwZScsMTczNyk7ZmViKDE3MzksMSxRdmUsQ2xjKTtfLkNkPWZ1bmN0aW9uIERsYyhhKXtKa2ModGhpcy5hLFJEKGEsMTUpKX07dmFyIHpWPXNmYihyQmUsJ0xHcmFwaFRvQ0dyYXBoVHJhbnNmb3JtZXIvbGFtYmRhJDgkVHlwZScsMTczOSk7ZmViKDE3NDAsMSxRdmUsRWxjKTtfLkNkPWZ1bmN0aW9uIEZsYyhhKXt4a2ModGhpcy5hLHRoaXMuYixSRChhLDE1NCkpfTt2YXIgQVY9c2ZiKHJCZSwnTEdyYXBoVG9DR3JhcGhUcmFuc2Zvcm1lci9sYW1iZGEkOSRUeXBlJywxNzQwKTtmZWIoMTcyOSwxLHt9LEpsYyk7Xy5jZj1mdW5jdGlvbiBLbGMoYSl7dmFyIGIsYyxkLGUsZjt0aGlzLmE9YTt0aGlzLmQ9bmV3IEJJYjt0aGlzLmM9JEMoRE4scnZlLDEyNSx0aGlzLmEuYS5hLmMubGVuZ3RoLDAsMSk7dGhpcy5iPTA7Zm9yKGM9bmV3IEFuYih0aGlzLmEuYS5hKTtjLmE8Yy5jLmMubGVuZ3RoOyl7Yj1SRCh5bmIoYyksMzE2KTtiLmQ9dGhpcy5iO2Y9ZUpiKGZKYihuZXcgZ0piLGIpLHRoaXMuZCk7dGhpcy5jW3RoaXMuYl09ZjsrK3RoaXMuYn1JbGModGhpcyk7SGxjKHRoaXMpO0dsYyh0aGlzKTtsSmIoQ0piKHRoaXMuZCksbmV3IE9xZCk7Zm9yKGU9bmV3IEFuYih0aGlzLmEuYS5iKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksNjApO2QuZC5jPXRoaXMuY1tkLmEuZF0uZStkLmIuYX19O18uYj0wO3ZhciBDVj1zZmIockJlLCdOZXR3b3JrU2ltcGxleENvbXBhY3Rpb24nLDE3MjkpO2ZlYigxNTQsMSx7MzQ6MSwxNTQ6MX0sTmxjKTtfLkZkPWZ1bmN0aW9uIE9sYyhhKXtyZXR1cm4gTGxjKHRoaXMsUkQoYSwxNTQpKX07Xy5JYj1mdW5jdGlvbiBQbGMoKXtyZXR1cm4gTWxjKHRoaXMpfTt2YXIgRFY9c2ZiKHJCZSwnVmVydGljYWxTZWdtZW50JywxNTQpO2ZlYig4NDEsMSx7fSxZbGMpO18uYz0wO18uZT0wO18uaT0wO3ZhciBHVj1zZmIoc0JlLCdCZXR3ZWVuTGF5ZXJFZGdlVHdvTm9kZUNyb3NzaW5nc0NvdW50ZXInLDg0MSk7ZmViKDY3NywxLHs2Nzc6MX0sZG1jKTtfLkliPWZ1bmN0aW9uIGVtYygpe3JldHVybiAnQWRqYWNlbmN5TGlzdCBbbm9kZT0nK3RoaXMuZCsnLCBhZGphY2VuY2llcz0gJyt0aGlzLmErJ10nfTtfLmI9MDtfLmM9MDtfLmY9MDt2YXIgRlY9c2ZiKHNCZSwnQmV0d2VlbkxheWVyRWRnZVR3b05vZGVDcm9zc2luZ3NDb3VudGVyL0FkamFjZW5jeUxpc3QnLDY3Nyk7ZmViKDI5NCwxLHszNDoxLDI5NDoxfSxobWMpO18uRmQ9ZnVuY3Rpb24gaW1jKGEpe3JldHVybiBmbWModGhpcyxSRChhLDI5NCkpfTtfLkliPWZ1bmN0aW9uIGptYygpe3JldHVybiAnQWRqYWNlbmN5IFtwb3NpdGlvbj0nK3RoaXMuYysnLCBjYXJkaW5hbGl0eT0nK3RoaXMuYSsnLCBjdXJyZW50Q2FyZGluYWxpdHk9Jyt0aGlzLmIrJ10nfTtfLmE9MDtfLmI9MDtfLmM9MDt2YXIgRVY9c2ZiKHNCZSwnQmV0d2VlbkxheWVyRWRnZVR3b05vZGVDcm9zc2luZ3NDb3VudGVyL0FkamFjZW5jeUxpc3QvQWRqYWNlbmN5JywyOTQpO2ZlYigyMDI2LDEse30sbW1jKTtfLmI9MDtfLmU9ZmFsc2U7dmFyIEhWPXNmYihzQmUsJ0Nyb3NzaW5nTWF0cml4RmlsbGVyJywyMDI2KTt2YXIgUVk9dWZiKHRCZSwnSUluaXRpYWxpemFibGUnKTtmZWIoMTg2NywxLHVCZSxzbWMpO18uZ2c9ZnVuY3Rpb24gdm1jKGEsYixjLGQsZSxmKXt9O18uaWc9ZnVuY3Rpb24geG1jKGEsYixjKXt9O18uZWc9ZnVuY3Rpb24gdG1jKCl7cmV0dXJuIHRoaXMuYyE9KFJLYygpLFBLYyl9O18uZmc9ZnVuY3Rpb24gdW1jKCl7dGhpcy5lPSRDKGtFLFB3ZSwyOCx0aGlzLmQsMTUsMSl9O18uaGc9ZnVuY3Rpb24gd21jKGEsYil7YlthXVswXS5jLnA9YX07Xy5qZz1mdW5jdGlvbiB5bWMoYSxiLGMsZCl7Kyt0aGlzLmR9O18ua2c9ZnVuY3Rpb24gem1jKCl7cmV0dXJuIHRydWV9O18ubGc9ZnVuY3Rpb24gQW1jKGEsYixjLGQpe29tYyh0aGlzLGEsYixjKTtyZXR1cm4gbm1jKHRoaXMsYil9O18ubWc9ZnVuY3Rpb24gQm1jKGEsYil7dmFyIGM7Yz1wbWMoYixhLmxlbmd0aCk7b21jKHRoaXMsYSxjLGIpO3JldHVybiBxbWModGhpcyxjKX07Xy5kPTA7dmFyIElWPXNmYihzQmUsJ0dyZWVkeVN3aXRjaEhldXJpc3RpYycsMTg2Nyk7ZmViKDIwMjksMSx7fSxLbWMpO18uYj0wO18uZD0wO3ZhciBKVj1zZmIoc0JlLCdOb3J0aFNvdXRoRWRnZU5laWdoYm91cmluZ05vZGVDcm9zc2luZ3NDb3VudGVyJywyMDI5KTtmZWIoMjAxNiwxLHt9LFBtYyk7Xy5hPWZhbHNlO3ZhciBLVj1zZmIoc0JlLCdTd2l0Y2hEZWNpZGVyJywyMDE2KTtmZWIoMTA1LDEsezEwNToxfSxWbWMpO18uYT1udWxsO18uYz1udWxsO18uaT1udWxsO3ZhciBOVj1zZmIodkJlLCdTZWxmSHlwZXJMb29wJywxMDUpO2ZlYigyMDEzLDEse30sX21jKTtfLmM9MDtfLmU9MDt2YXIgTVY9c2ZiKHZCZSwnU2VsZkh5cGVyTG9vcExhYmVscycsMjAxMyk7ZmViKDQyMSwyMix7MzoxLDM0OjEsMjI6MSw0MjE6MX0sZm5jKTt2YXIgYW5jLGJuYyxjbmMsZG5jO3ZhciBMVj10ZmIodkJlLCdTZWxmSHlwZXJMb29wTGFiZWxzL0FsaWdubWVudCcsNDIxLFdJLGhuYyxnbmMpO3ZhciBpbmM7ZmViKDM0MCwxLHszNDA6MX0sa25jKTt2YXIgT1Y9c2ZiKHZCZSwnU2VsZkxvb3BFZGdlJywzNDApO2ZlYigzMzcsMSx7MzM3OjF9LG9uYyk7Xy5hPWZhbHNlO3ZhciBRVj1zZmIodkJlLCdTZWxmTG9vcEhvbGRlcicsMzM3KTtmZWIoMTc5MCwxLG53ZSxxbmMpO18uTWI9ZnVuY3Rpb24gcm5jKGEpe3JldHVybiBXMGIoUkQoYSwxOCkpfTt2YXIgUFY9c2ZiKHZCZSwnU2VsZkxvb3BIb2xkZXIvbGFtYmRhJDAkVHlwZScsMTc5MCk7ZmViKDExMywxLHsxMTM6MX0sdG5jKTtfLmE9ZmFsc2U7Xy5jPWZhbHNlO3ZhciBTVj1zZmIodkJlLCdTZWxmTG9vcFBvcnQnLDExMyk7ZmViKDE4NTUsMSxud2UsdW5jKTtfLk1iPWZ1bmN0aW9uIHZuYyhhKXtyZXR1cm4gVzBiKFJEKGEsMTgpKX07dmFyIFJWPXNmYih2QmUsJ1NlbGZMb29wUG9ydC9sYW1iZGEkMCRUeXBlJywxODU1KTtmZWIoMzc1LDIyLHszOjEsMzQ6MSwyMjoxLDM3NToxfSxDbmMpO3ZhciB3bmMseG5jLHluYyx6bmMsQW5jO3ZhciBUVj10ZmIodkJlLCdTZWxmTG9vcFR5cGUnLDM3NSxXSSxGbmMsRW5jKTt2YXIgR25jO2ZlYigxNzk4LDEse30sYm9jKTt2YXIgSW5jLEpuYyxLbmMsTG5jO3ZhciBnVz1zZmIod0JlLCdQb3J0UmVzdG9yZXInLDE3OTgpO2ZlYigzNzIsMjIsezM6MSwzNDoxLDIyOjEsMzcyOjF9LGtvYyk7dmFyIGdvYyxob2MsaW9jO3ZhciBVVj10ZmIod0JlLCdQb3J0UmVzdG9yZXIvUG9ydFNpZGVBcmVhJywzNzIsV0ksbW9jLGxvYyk7dmFyIG5vYztmZWIoMTc5OSwxLHt9LHBvYyk7Xy5LYj1mdW5jdGlvbiBxb2MoYSl7cmV0dXJuIE1uYygpLFJEKGEsMTUpLk9jKCl9O3ZhciBWVj1zZmIod0JlLCdQb3J0UmVzdG9yZXIvbGFtYmRhJDAkVHlwZScsMTc5OSk7ZmViKDE4MDAsMSxRdmUscm9jKTtfLkNkPWZ1bmN0aW9uIHNvYyhhKXtNbmMoKTtSRChhLDExMykuYz1mYWxzZX07dmFyIFdWPXNmYih3QmUsJ1BvcnRSZXN0b3Jlci9sYW1iZGEkMSRUeXBlJywxODAwKTtmZWIoMTgwOSwxLG53ZSx0b2MpO18uTWI9ZnVuY3Rpb24gdW9jKGEpe3JldHVybiBNbmMoKSxSRChhLDEyKS5qPT0ocXBkKCkscHBkKX07dmFyIFhWPXNmYih3QmUsJ1BvcnRSZXN0b3Jlci9sYW1iZGEkMTAkVHlwZScsMTgwOSk7ZmViKDE4MTAsMSx7fSx2b2MpO18uS2I9ZnVuY3Rpb24gd29jKGEpe3JldHVybiBNbmMoKSxSRChhLDExMykuZH07dmFyIFlWPXNmYih3QmUsJ1BvcnRSZXN0b3Jlci9sYW1iZGEkMTEkVHlwZScsMTgxMCk7ZmViKDE4MTEsMSxRdmUseG9jKTtfLkNkPWZ1bmN0aW9uIHlvYyhhKXtjb2ModGhpcy5hLFJEKGEsMTIpKX07dmFyIFpWPXNmYih3QmUsJ1BvcnRSZXN0b3Jlci9sYW1iZGEkMTIkVHlwZScsMTgxMSk7ZmViKDE4MDEsMSxRdmUsem9jKTtfLkNkPWZ1bmN0aW9uIEFvYyhhKXtkb2ModGhpcy5hLFJEKGEsMTA1KSl9O3ZhciAkVj1zZmIod0JlLCdQb3J0UmVzdG9yZXIvbGFtYmRhJDIkVHlwZScsMTgwMSk7ZmViKDE4MDIsMSxmeWUsQm9jKTtfLk5lPWZ1bmN0aW9uIENvYyhhLGIpe3JldHVybiBlb2MoUkQoYSwxMTMpLFJEKGIsMTEzKSl9O18uRmI9ZnVuY3Rpb24gRG9jKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBFb2MoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIF9WPXNmYih3QmUsJ1BvcnRSZXN0b3Jlci9sYW1iZGEkMyRUeXBlJywxODAyKTtmZWIoMTgwMywxLG53ZSxGb2MpO18uTWI9ZnVuY3Rpb24gR29jKGEpe3JldHVybiBNbmMoKSxSRChhLDExMykuY307dmFyIGFXPXNmYih3QmUsJ1BvcnRSZXN0b3Jlci9sYW1iZGEkNCRUeXBlJywxODAzKTtmZWIoMTgwNCwxLG53ZSxIb2MpO18uTWI9ZnVuY3Rpb24gSW9jKGEpe3JldHVybiBUbmMoUkQoYSwxMikpfTt2YXIgYlc9c2ZiKHdCZSwnUG9ydFJlc3RvcmVyL2xhbWJkYSQ1JFR5cGUnLDE4MDQpO2ZlYigxODA1LDEsbndlLEpvYyk7Xy5NYj1mdW5jdGlvbiBLb2MoYSl7cmV0dXJuIE1uYygpLFJEKGEsMTIpLmo9PShxcGQoKSxZb2QpfTt2YXIgY1c9c2ZiKHdCZSwnUG9ydFJlc3RvcmVyL2xhbWJkYSQ2JFR5cGUnLDE4MDUpO2ZlYigxODA2LDEsbndlLExvYyk7Xy5NYj1mdW5jdGlvbiBNb2MoYSl7cmV0dXJuIE1uYygpLFJEKGEsMTIpLmo9PShxcGQoKSxYb2QpfTt2YXIgZFc9c2ZiKHdCZSwnUG9ydFJlc3RvcmVyL2xhbWJkYSQ3JFR5cGUnLDE4MDYpO2ZlYigxODA3LDEsbndlLE5vYyk7Xy5NYj1mdW5jdGlvbiBPb2MoYSl7cmV0dXJuIFVuYyhSRChhLDEyKSl9O3ZhciBlVz1zZmIod0JlLCdQb3J0UmVzdG9yZXIvbGFtYmRhJDgkVHlwZScsMTgwNyk7ZmViKDE4MDgsMSxud2UsUG9jKTtfLk1iPWZ1bmN0aW9uIFFvYyhhKXtyZXR1cm4gTW5jKCksUkQoYSwxMikuaj09KHFwZCgpLG5wZCl9O3ZhciBmVz1zZmIod0JlLCdQb3J0UmVzdG9yZXIvbGFtYmRhJDkkVHlwZScsMTgwOCk7ZmViKDI3NiwyMix7MzoxLDM0OjEsMjI6MSwyNzY6MX0sZnBjKTt2YXIgWW9jLFpvYywkb2MsX29jLGFwYyxicGMsY3BjLGRwYzt2YXIgaFc9dGZiKHdCZSwnUG9ydFNpZGVBc3NpZ25lci9UYXJnZXQnLDI3NixXSSxocGMsZ3BjKTt2YXIgaXBjO2ZlYigxNzkxLDEse30sa3BjKTtfLktiPWZ1bmN0aW9uIGxwYyhhKXtyZXR1cm4gQ0RiKG5ldyBTRGIobnVsbCxuZXcgU3diKFJEKGEsMTA1KS5qLDE2KSksbmV3IENwYyl9O3ZhciBpVz1zZmIod0JlLCdQb3J0U2lkZUFzc2lnbmVyL2xhbWJkYSQxJFR5cGUnLDE3OTEpO2ZlYigxNzkyLDEse30sbXBjKTtfLktiPWZ1bmN0aW9uIG5wYyhhKXtyZXR1cm4gUkQoYSwxMTMpLmR9O3ZhciBqVz1zZmIod0JlLCdQb3J0U2lkZUFzc2lnbmVyL2xhbWJkYSQyJFR5cGUnLDE3OTIpO2ZlYigxNzkzLDEsUXZlLG9wYyk7Xy5DZD1mdW5jdGlvbiBwcGMoYSl7UTNiKFJEKGEsMTIpLChxcGQoKSxZb2QpKX07dmFyIGtXPXNmYih3QmUsJ1BvcnRTaWRlQXNzaWduZXIvbGFtYmRhJDMkVHlwZScsMTc5Myk7ZmViKDE3OTQsMSx7fSxxcGMpO18uS2I9ZnVuY3Rpb24gcnBjKGEpe3JldHVybiBSRChhLDExMykuZH07dmFyIGxXPXNmYih3QmUsJ1BvcnRTaWRlQXNzaWduZXIvbGFtYmRhJDQkVHlwZScsMTc5NCk7ZmViKDE3OTUsMSxRdmUsc3BjKTtfLkNkPWZ1bmN0aW9uIHRwYyhhKXtWb2ModGhpcy5hLFJEKGEsMTIpKX07dmFyIG1XPXNmYih3QmUsJ1BvcnRTaWRlQXNzaWduZXIvbGFtYmRhJDUkVHlwZScsMTc5NSk7ZmViKDE3OTYsMSxmeWUsdXBjKTtfLk5lPWZ1bmN0aW9uIHZwYyhhLGIpe3JldHVybiBXb2MoUkQoYSwxMDUpLFJEKGIsMTA1KSl9O18uRmI9ZnVuY3Rpb24gd3BjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiB4cGMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIG5XPXNmYih3QmUsJ1BvcnRTaWRlQXNzaWduZXIvbGFtYmRhJDYkVHlwZScsMTc5Nik7ZmViKDE3OTcsMSxmeWUseXBjKTtfLk5lPWZ1bmN0aW9uIHpwYyhhLGIpe3JldHVybiBYb2MoUkQoYSwxMTMpLFJEKGIsMTEzKSl9O18uRmI9ZnVuY3Rpb24gQXBjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBCcGMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIG9XPXNmYih3QmUsJ1BvcnRTaWRlQXNzaWduZXIvbGFtYmRhJDckVHlwZScsMTc5Nyk7ZmViKDgyMCwxLG53ZSxDcGMpO18uTWI9ZnVuY3Rpb24gRHBjKGEpe3JldHVybiBSRChhLDExMykuY307dmFyIHBXPXNmYih3QmUsJ1BvcnRTaWRlQXNzaWduZXIvbGFtYmRhJDgkVHlwZScsODIwKTtmZWIoMjEwOCwxLHt9KTt2YXIgcVc9c2ZiKHhCZSwnQWJzdHJhY3RTZWxmTG9vcFJvdXRlcicsMjEwOCk7ZmViKDE4MTYsMSxmeWUsTXBjKTtfLk5lPWZ1bmN0aW9uIE5wYyhhLGIpe3JldHVybiBLcGMoUkQoYSwxMDUpLFJEKGIsMTA1KSl9O18uRmI9ZnVuY3Rpb24gT3BjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBQcGMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIHJXPXNmYih4QmUsVnllLDE4MTYpO2ZlYigxODE3LDEsZnllLFFwYyk7Xy5OZT1mdW5jdGlvbiBScGMoYSxiKXtyZXR1cm4gTHBjKFJEKGEsMTA1KSxSRChiLDEwNSkpfTtfLkZiPWZ1bmN0aW9uIFNwYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gVHBjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBzVz1zZmIoeEJlLFd5ZSwxODE3KTtmZWIoMTg1NiwyMTA4LHt9LGRxYyk7Xy5uZz1mdW5jdGlvbiBlcWMoYSxiLGMpe3JldHVybiBjfTt2YXIgdVc9c2ZiKHhCZSwnT3J0aG9nb25hbFNlbGZMb29wUm91dGVyJywxODU2KTtmZWIoMTg1OCwxLFF2ZSxmcWMpO18uQ2Q9ZnVuY3Rpb24gZ3FjKGEpe2NxYyh0aGlzLmIsdGhpcy5hLFJEKGEsOCkpfTt2YXIgdFc9c2ZiKHhCZSwnT3J0aG9nb25hbFNlbGZMb29wUm91dGVyL2xhbWJkYSQwJFR5cGUnLDE4NTgpO2ZlYigxODU3LDE4NTYse30sanFjKTtfLm5nPWZ1bmN0aW9uIGtxYyhhLGIsYyl7dmFyIGQsZTtkPWEuYy5kO2h1KGMsMCwkaWQoYWpkKGQubiksZC5hKSk7ZT1hLmQuZDtNdWIoYywkaWQoYWpkKGUubiksZS5hKSk7cmV0dXJuIGhxYyhjKX07dmFyIHZXPXNmYih4QmUsJ1BvbHlsaW5lU2VsZkxvb3BSb3V0ZXInLDE4NTcpO2ZlYigxODEyLDEse30seXFjKTtfLmE9bnVsbDt2YXIgbHFjO3ZhciB6Vz1zZmIoeEJlLCdSb3V0aW5nRGlyZWN0b3InLDE4MTIpO2ZlYigxODEzLDEsZnllLEFxYyk7Xy5OZT1mdW5jdGlvbiBCcWMoYSxiKXtyZXR1cm4genFjKFJEKGEsMTEzKSxSRChiLDExMykpfTtfLkZiPWZ1bmN0aW9uIENxYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gRHFjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciB3Vz1zZmIoeEJlLCdSb3V0aW5nRGlyZWN0b3IvbGFtYmRhJDAkVHlwZScsMTgxMyk7ZmViKDE4MTQsMSx7fSxFcWMpO18uS2I9ZnVuY3Rpb24gRnFjKGEpe3JldHVybiBtcWMoKSxSRChhLDEwNSkuan07dmFyIHhXPXNmYih4QmUsJ1JvdXRpbmdEaXJlY3Rvci9sYW1iZGEkMSRUeXBlJywxODE0KTtmZWIoMTgxNSwxLFF2ZSxHcWMpO18uQ2Q9ZnVuY3Rpb24gSHFjKGEpe21xYygpO1JEKGEsMTUpLmpkKGxxYyl9O3ZhciB5Vz1zZmIoeEJlLCdSb3V0aW5nRGlyZWN0b3IvbGFtYmRhJDIkVHlwZScsMTgxNSk7ZmViKDE4MTgsMSx7fSxTcWMpO3ZhciBDVz1zZmIoeEJlLCdSb3V0aW5nU2xvdEFzc2lnbmVyJywxODE4KTtmZWIoMTgxOSwxLG53ZSxWcWMpO18uTWI9ZnVuY3Rpb24gV3FjKGEpe3JldHVybiBUcWModGhpcy5hLFJEKGEsMTA1KSl9O3ZhciBBVz1zZmIoeEJlLCdSb3V0aW5nU2xvdEFzc2lnbmVyL2xhbWJkYSQwJFR5cGUnLDE4MTkpO2ZlYigxODIwLDEsZnllLFhxYyk7Xy5OZT1mdW5jdGlvbiBZcWMoYSxiKXtyZXR1cm4gVXFjKHRoaXMuYSxSRChhLDEwNSksUkQoYiwxMDUpKX07Xy5GYj1mdW5jdGlvbiBacWMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uICRxYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgQlc9c2ZiKHhCZSwnUm91dGluZ1Nsb3RBc3NpZ25lci9sYW1iZGEkMSRUeXBlJywxODIwKTtmZWIoMTg1OSwxODU2LHt9LGFyYyk7Xy5uZz1mdW5jdGlvbiBicmMoYSxiLGMpe3ZhciBkLGUsZixnO2Q9S2ZiKFVEKGsyYihhLmIuZy5iLCh5Q2MoKSxWQmMpKSkpO2c9bmV3IEdqZChjRChXQyhsMywxKSxOdmUsOCwwLFsoZj1hLmMuZCwkaWQobmV3IHNqZChmLm4pLGYuYSkpXSkpO19xYyhhLGIsYyxnLGQpO011YihnLChlPWEuZC5kLCRpZChuZXcgc2pkKGUubiksZS5hKSkpO3JldHVybiBzVWMobmV3IHdVYyhnKSl9O3ZhciBEVz1zZmIoeEJlLCdTcGxpbmVTZWxmTG9vcFJvdXRlcicsMTg1OSk7ZmViKDU4NiwxLGZ5ZSxmcmMsaHJjKTtfLk5lPWZ1bmN0aW9uIGlyYyhhLGIpe3JldHVybiBjcmModGhpcyxSRChhLDEwKSxSRChiLDEwKSl9O18uRmI9ZnVuY3Rpb24ganJjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBrcmMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIEZXPXNmYih5QmUsJ01vZGVsT3JkZXJOb2RlQ29tcGFyYXRvcicsNTg2KTtmZWIoMTgyMSwxLG53ZSxscmMpO18uTWI9ZnVuY3Rpb24gbXJjKGEpe3JldHVybiBSRChhLDEyKS5lLmMubGVuZ3RoIT0wfTt2YXIgRVc9c2ZiKHlCZSwnTW9kZWxPcmRlck5vZGVDb21wYXJhdG9yL2xhbWJkYSQwJFR5cGUnLDE4MjEpO2ZlYig4MjEsMSxmeWUsdHJjLHVyYyk7Xy5OZT1mdW5jdGlvbiB2cmMoYSxiKXtyZXR1cm4gcHJjKHRoaXMsYSxiKX07Xy5GYj1mdW5jdGlvbiB3cmMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIHhyYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTtfLmI9ZmFsc2U7dmFyIEdXPXNmYih5QmUsJ01vZGVsT3JkZXJQb3J0Q29tcGFyYXRvcicsODIxKTtmZWIoODE1LDEse30senJjKTtfLm9nPWZ1bmN0aW9uIEJyYyhhLGIpe3ZhciBjLGQsZSxmO2U9QXJjKGIpO2M9bmV3IGJuYjtmPWIuZi9lO2ZvcihkPTE7ZDxlOysrZCl7Um1iKGMsc2diKFlkYihIZGIoJHduZC5NYXRoLnJvdW5kKGQqZikpKSkpfXJldHVybiBjfTtfLnBnPWZ1bmN0aW9uIENyYygpe3JldHVybiBmYWxzZX07dmFyIEhXPXNmYih6QmUsJ0FSREN1dEluZGV4SGV1cmlzdGljJyw4MTUpO2ZlYigxNTQ0LDEsUUFlLEhyYyk7Xy5LZj1mdW5jdGlvbiBJcmMoYSxiKXtHcmMoUkQoYSwzNiksYil9O3ZhciBLVz1zZmIoekJlLCdCcmVha2luZ1BvaW50SW5zZXJ0ZXInLDE1NDQpO2ZlYigzMTMsMSx7MzEzOjF9LEpyYyk7Xy5JYj1mdW5jdGlvbiBNcmMoKXt2YXIgYTthPW5ldyBiaWI7YS5hKz0nQlBJbmZvWyc7YS5hKz0nXFxuXFx0c3RhcnQ9JztZaGIoYSx0aGlzLmkpO2EuYSs9J1xcblxcdGVuZD0nO1loYihhLHRoaXMuYSk7YS5hKz0nXFxuXFx0bm9kZVN0YXJ0RWRnZT0nO1loYihhLHRoaXMuZSk7YS5hKz0nXFxuXFx0c3RhcnRFbmRFZGdlPSc7WWhiKGEsdGhpcy5qKTthLmErPSdcXG5cXHRvcmlnaW5hbEVkZ2U9JztZaGIoYSx0aGlzLmYpO2EuYSs9J1xcblxcdHN0YXJ0SW5MYXllckR1bW15PSc7WWhiKGEsdGhpcy5rKTthLmErPSdcXG5cXHRzdGFydEluTGF5ZXJFZGdlPSc7WWhiKGEsdGhpcy5uKTthLmErPSdcXG5cXHRlbmRJbkxheWVyRHVtbXk9JztZaGIoYSx0aGlzLmIpO2EuYSs9J1xcblxcdGVuZEluTGF5ZXJFZGdlPSc7WWhiKGEsdGhpcy5jKTtyZXR1cm4gYS5hfTt2YXIgSVc9c2ZiKHpCZSwnQnJlYWtpbmdQb2ludEluc2VydGVyL0JQSW5mbycsMzEzKTtmZWIoNjYxLDEsezY2MToxfSxUcmMpO18uYT1mYWxzZTtfLmI9MDtfLmM9MDt2YXIgSlc9c2ZiKHpCZSwnQnJlYWtpbmdQb2ludEluc2VydGVyL0N1dCcsNjYxKTtmZWIoMTU0NSwxLFFBZSxic2MpO18uS2Y9ZnVuY3Rpb24gY3NjKGEsYil7X3JjKFJEKGEsMzYpLGIpfTt2YXIgTlc9c2ZiKHpCZSwnQnJlYWtpbmdQb2ludFByb2Nlc3NvcicsMTU0NSk7ZmViKDE1NDYsMSxud2UsZHNjKTtfLk1iPWZ1bmN0aW9uIGVzYyhhKXtyZXR1cm4gS3JjKFJEKGEsMTApKX07dmFyIExXPXNmYih6QmUsJ0JyZWFraW5nUG9pbnRQcm9jZXNzb3IvMG1ldGhvZHJlZiRpc0VuZCRUeXBlJywxNTQ2KTtmZWIoMTU0NywxLG53ZSxmc2MpO18uTWI9ZnVuY3Rpb24gZ3NjKGEpe3JldHVybiBMcmMoUkQoYSwxMCkpfTt2YXIgTVc9c2ZiKHpCZSwnQnJlYWtpbmdQb2ludFByb2Nlc3Nvci8xbWV0aG9kcmVmJGlzU3RhcnQkVHlwZScsMTU0Nyk7ZmViKDE1NDgsMSxRQWUsa3NjKTtfLktmPWZ1bmN0aW9uIGxzYyhhLGIpe2lzYyh0aGlzLFJEKGEsMzYpLGIpfTt2YXIgUFc9c2ZiKHpCZSwnQnJlYWtpbmdQb2ludFJlbW92ZXInLDE1NDgpO2ZlYigxNTQ5LDEsUXZlLG1zYyk7Xy5DZD1mdW5jdGlvbiBuc2MoYSl7UkQoYSwxMzEpLms9dHJ1ZX07dmFyIE9XPXNmYih6QmUsJ0JyZWFraW5nUG9pbnRSZW1vdmVyL2xhbWJkYSQwJFR5cGUnLDE1NDkpO2ZlYig4MTEsMSx7fSx5c2MpO18uYj0wO18uZT0wO18uZj0wO18uaj0wO3ZhciBWVz1zZmIoekJlLCdHcmFwaFN0YXRzJyw4MTEpO2ZlYig4MTIsMSx7fSxBc2MpO18uVmU9ZnVuY3Rpb24gQnNjKGEsYil7cmV0dXJuICR3bmQuTWF0aC5tYXgoS2ZiKFVEKGEpKSxLZmIoVUQoYikpKX07dmFyIFFXPXNmYih6QmUsJ0dyYXBoU3RhdHMvMG1ldGhvZHJlZiRtYXgkVHlwZScsODEyKTtmZWIoODEzLDEse30sQ3NjKTtfLlZlPWZ1bmN0aW9uIERzYyhhLGIpe3JldHVybiAkd25kLk1hdGgubWF4KEtmYihVRChhKSksS2ZiKFVEKGIpKSl9O3ZhciBSVz1zZmIoekJlLCdHcmFwaFN0YXRzLzJtZXRob2RyZWYkbWF4JFR5cGUnLDgxMyk7ZmViKDE3MjYsMSx7fSxFc2MpO18uVmU9ZnVuY3Rpb24gRnNjKGEsYil7cmV0dXJuIHpzYyhVRChhKSxVRChiKSl9O3ZhciBTVz1zZmIoekJlLCdHcmFwaFN0YXRzL2xhbWJkYSQxJFR5cGUnLDE3MjYpO2ZlYigxNzI3LDEse30sR3NjKTtfLktiPWZ1bmN0aW9uIEhzYyhhKXtyZXR1cm4gc3NjKHRoaXMuYSxSRChhLDMwKSl9O3ZhciBUVz1zZmIoekJlLCdHcmFwaFN0YXRzL2xhbWJkYSQyJFR5cGUnLDE3MjcpO2ZlYigxNzI4LDEse30sSXNjKTtfLktiPWZ1bmN0aW9uIEpzYyhhKXtyZXR1cm4gcnNjKHRoaXMuYSxSRChhLDMwKSl9O3ZhciBVVz1zZmIoekJlLCdHcmFwaFN0YXRzL2xhbWJkYSQ2JFR5cGUnLDE3MjgpO2ZlYig4MTQsMSx7fSxLc2MpO18ub2c9ZnVuY3Rpb24gTHNjKGEsYil7dmFyIGM7Yz1SRChtUWIoYSwoeUNjKCkscENjKSksMTUpO3JldHVybiBjP2M6KHlvYigpLHlvYigpLHZvYil9O18ucGc9ZnVuY3Rpb24gTXNjKCl7cmV0dXJuIGZhbHNlfTt2YXIgV1c9c2ZiKHpCZSwnSUN1dEluZGV4Q2FsY3VsYXRvci9NYW51YWxDdXRJbmRleENhbGN1bGF0b3InLDgxNCk7ZmViKDgxNiwxLHt9LE5zYyk7Xy5vZz1mdW5jdGlvbiBPc2MoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdTt1PShiLm49PW51bGwmJnZzYyhiKSxiLm4pO2k9KGIuZD09bnVsbCYmdnNjKGIpLGIuZCk7dD0kQyhpRSx2eGUsMjgsdS5sZW5ndGgsMTUsMSk7dFswXT11WzBdO3I9dVswXTtmb3Ioaj0xO2o8dS5sZW5ndGg7aisrKXt0W2pdPXRbai0xXSt1W2pdO3IrPXVbal19ZT1BcmMoYiktMTtnPVJEKG1RYihhLCh5Q2MoKSxxQ2MpKSwxNykuYTtkPXB4ZTtjPW5ldyBibmI7Zm9yKG09JHduZC5NYXRoLm1heCgwLGUtZyk7bTw9JHduZC5NYXRoLm1pbihiLmYtMSxlK2cpO20rKyl7cD1yLyhtKzEpO3E9MDtrPTE7Zj1uZXcgYm5iO3M9cHhlO2w9MDtoPTA7bz1pWzBdO2lmKG09PTApe3M9cjtoPShiLmc9PW51bGwmJihiLmc9cXNjKGIsbmV3IENzYykpLEtmYihiLmcpKX1lbHNle3doaWxlKGs8Yi5mKXtpZih0W2stMV0tcT49cCl7Um1iKGYsc2diKGspKTtzPSR3bmQuTWF0aC5tYXgocyx0W2stMV0tbCk7aCs9bztxKz10W2stMV0tcTtsPXRbay0xXTtvPWlba119bz0kd25kLk1hdGgubWF4KG8saVtrXSk7KytrfWgrPW99bj0kd25kLk1hdGgubWluKDEvcywxL2IuYi9oKTtpZihuPmQpe2Q9bjtjPWZ9fXJldHVybiBjfTtfLnBnPWZ1bmN0aW9uIFBzYygpe3JldHVybiBmYWxzZX07dmFyIFhXPXNmYih6QmUsJ01TREN1dEluZGV4SGV1cmlzdGljJyw4MTYpO2ZlYigxNjgzLDEsUUFlLFNzYyk7Xy5LZj1mdW5jdGlvbiBUc2MoYSxiKXtSc2MoUkQoYSwzNiksYil9O3ZhciBZVz1zZmIoekJlLCdTaW5nbGVFZGdlR3JhcGhXcmFwcGVyJywxNjgzKTtmZWIoMjMyLDIyLHszOjEsMzQ6MSwyMjoxLDIzMjoxfSxjdGMpO3ZhciBYc2MsWXNjLFpzYywkc2MsX3NjLGF0Yzt2YXIgWlc9dGZiKEFCZSwnQ2VudGVyRWRnZUxhYmVsUGxhY2VtZW50U3RyYXRlZ3knLDIzMixXSSxldGMsZHRjKTt2YXIgZnRjO2ZlYig0MzEsMjIsezM6MSwzNDoxLDIyOjEsNDMxOjF9LGt0Yyk7dmFyIGh0YyxpdGM7dmFyICRXPXRmYihBQmUsJ0NvbnN0cmFpbnRDYWxjdWxhdGlvblN0cmF0ZWd5Jyw0MzEsV0ksbXRjLGx0Yyk7dmFyIG50YztmZWIoMzIyLDIyLHszOjEsMzQ6MSwyMjoxLDMyMjoxLDE4ODoxLDE5NjoxfSx1dGMpO18uZGc9ZnVuY3Rpb24gd3RjKCl7cmV0dXJuIHR0Yyh0aGlzKX07Xy5xZz1mdW5jdGlvbiB2dGMoKXtyZXR1cm4gdHRjKHRoaXMpfTt2YXIgcHRjLHF0YyxydGM7dmFyIF9XPXRmYihBQmUsJ0Nyb3NzaW5nTWluaW1pemF0aW9uU3RyYXRlZ3knLDMyMixXSSx5dGMseHRjKTt2YXIgenRjO2ZlYigzNTEsMjIsezM6MSwzNDoxLDIyOjEsMzUxOjF9LEZ0Yyk7dmFyIEJ0YyxDdGMsRHRjO3ZhciBhWD10ZmIoQUJlLCdDdXR0aW5nU3RyYXRlZ3knLDM1MSxXSSxIdGMsR3RjKTt2YXIgSXRjO2ZlYigzNDgsMjIsezM6MSwzNDoxLDIyOjEsMzQ4OjEsMTg4OjEsMTk2OjF9LFJ0Yyk7Xy5kZz1mdW5jdGlvbiBUdGMoKXtyZXR1cm4gUXRjKHRoaXMpfTtfLnFnPWZ1bmN0aW9uIFN0Yygpe3JldHVybiBRdGModGhpcyl9O3ZhciBLdGMsTHRjLE10YyxOdGMsT3RjO3ZhciBiWD10ZmIoQUJlLCdDeWNsZUJyZWFraW5nU3RyYXRlZ3knLDM0OCxXSSxWdGMsVXRjKTt2YXIgV3RjO2ZlYig0MjgsMjIsezM6MSwzNDoxLDIyOjEsNDI4OjF9LF90Yyk7dmFyIFl0YyxadGM7dmFyIGNYPXRmYihBQmUsJ0RpcmVjdGlvbkNvbmdydWVuY3knLDQyOCxXSSxidWMsYXVjKTt2YXIgY3VjO2ZlYig0NjAsMjIsezM6MSwzNDoxLDIyOjEsNDYwOjF9LGl1Yyk7dmFyIGV1YyxmdWMsZ3VjO3ZhciBkWD10ZmIoQUJlLCdFZGdlQ29uc3RyYWludCcsNDYwLFdJLGt1YyxqdWMpO3ZhciBsdWM7ZmViKDI4MywyMix7MzoxLDM0OjEsMjI6MSwyODM6MX0sdnVjKTt2YXIgbnVjLG91YyxwdWMscXVjLHJ1YyxzdWM7dmFyIGVYPXRmYihBQmUsJ0VkZ2VMYWJlbFNpZGVTZWxlY3Rpb24nLDI4MyxXSSx4dWMsd3VjKTt2YXIgeXVjO2ZlYig0ODgsMjIsezM6MSwzNDoxLDIyOjEsNDg4OjF9LER1Yyk7dmFyIEF1YyxCdWM7dmFyIGZYPXRmYihBQmUsJ0VkZ2VTdHJhaWdodGVuaW5nU3RyYXRlZ3knLDQ4OCxXSSxGdWMsRXVjKTt2YXIgR3VjO2ZlYigyODEsMjIsezM6MSwzNDoxLDIyOjEsMjgxOjF9LFB1Yyk7dmFyIEl1YyxKdWMsS3VjLEx1YyxNdWMsTnVjO3ZhciBnWD10ZmIoQUJlLCdGaXhlZEFsaWdubWVudCcsMjgxLFdJLFJ1YyxRdWMpO3ZhciBTdWM7ZmViKDI4MiwyMix7MzoxLDM0OjEsMjI6MSwyODI6MX0sX3VjKTt2YXIgVXVjLFZ1YyxXdWMsWHVjLFl1YyxadWM7dmFyIGhYPXRmYihBQmUsJ0dyYXBoQ29tcGFjdGlvblN0cmF0ZWd5JywyODIsV0ksYnZjLGF2Yyk7dmFyIGN2YztmZWIoMjU5LDIyLHszOjEsMzQ6MSwyMjoxLDI1OToxfSxwdmMpO3ZhciBldmMsZnZjLGd2YyxodmMsaXZjLGp2YyxrdmMsbHZjLG12YyxudmM7dmFyIGlYPXRmYihBQmUsJ0dyYXBoUHJvcGVydGllcycsMjU5LFdJLHJ2YyxxdmMpO3ZhciBzdmM7ZmViKDI5OSwyMix7MzoxLDM0OjEsMjI6MSwyOTk6MX0seXZjKTt2YXIgdXZjLHZ2Yyx3dmM7dmFyIGpYPXRmYihBQmUsJ0dyZWVkeVN3aXRjaFR5cGUnLDI5OSxXSSxBdmMsenZjKTt2YXIgQnZjO2ZlYigzMTEsMjIsezM6MSwzNDoxLDIyOjEsMzExOjF9LEh2Yyk7dmFyIER2YyxFdmMsRnZjO3ZhciBrWD10ZmIoQUJlLCdJbkxheWVyQ29uc3RyYWludCcsMzExLFdJLEp2YyxJdmMpO3ZhciBLdmM7ZmViKDQyOSwyMix7MzoxLDM0OjEsMjI6MSw0Mjk6MX0sUHZjKTt2YXIgTXZjLE52Yzt2YXIgbFg9dGZiKEFCZSwnSW50ZXJhY3RpdmVSZWZlcmVuY2VQb2ludCcsNDI5LFdJLFJ2YyxRdmMpO3ZhciBTdmM7dmFyIFV2YyxWdmMsV3ZjLFh2YyxZdmMsWnZjLCR2YyxfdmMsYXdjLGJ3Yyxjd2MsZHdjLGV3Yyxmd2MsZ3djLGh3Yyxpd2MsandjLGt3Yyxsd2MsbXdjLG53Yyxvd2MscHdjLHF3Yyxyd2Msc3djLHR3Yyx1d2MsdndjLHd3Yyx4d2MseXdjLHp3YyxBd2MsQndjLEN3YyxEd2MsRXdjLEZ3YyxHd2MsSHdjLEl3YyxKd2MsS3djLEx3YyxNd2MsTndjLE93YyxQd2MsUXdjLFJ3YyxTd2MsVHdjLFV3YyxWd2MsV3djLFh3YztmZWIoMTcxLDIyLHszOjEsMzQ6MSwyMjoxLDE3MToxfSxkeGMpO3ZhciBad2MsJHdjLF93YyxheGMsYnhjO3ZhciBtWD10ZmIoQUJlLCdMYXllckNvbnN0cmFpbnQnLDE3MSxXSSxmeGMsZXhjKTt2YXIgZ3hjO2ZlYig4NTksMSxFeWUsUHpjKTtfLmhmPWZ1bmN0aW9uIFF6YyhhKXtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxIQmUpLCcnKSwnRGlyZWN0aW9uIENvbmdydWVuY3knKSwnU3BlY2lmaWVzIGhvdyBkcmF3aW5ncyBvZiB0aGUgc2FtZSBncmFwaCB3aXRoIGRpZmZlcmVudCBsYXlvdXQgZGlyZWN0aW9ucyBjb21wYXJlIHRvIGVhY2ggb3RoZXI6IGVpdGhlciBhIG5hdHVyYWwgcmVhZGluZyBkaXJlY3Rpb24gaXMgcHJlc2VydmVkIG9yIHRoZSBkcmF3aW5ncyBhcmUgcm90YXRlZCB2ZXJzaW9ucyBvZiBlYWNoIG90aGVyLicpLFV4YyksKGtpZCgpLGVpZCkpLGNYKSx4c2IoKFloZCgpLFdoZCkpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLElCZSksJycpLCdGZWVkYmFjayBFZGdlcycpLCdXaGV0aGVyIGZlZWRiYWNrIGVkZ2VzIHNob3VsZCBiZSBoaWdobGlnaHRlZCBieSByb3V0aW5nIGFyb3VuZCB0aGUgbm9kZXMuJyksKEdlYigpLGZhbHNlKSksY2lkKSxRSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsSkJlKSwnJyksJ0ludGVyYWN0aXZlIFJlZmVyZW5jZSBQb2ludCcpLCdEZXRlcm1pbmVzIHdoaWNoIHBvaW50IG9mIGEgbm9kZSBpcyBjb25zaWRlcmVkIGJ5IGludGVyYWN0aXZlIGxheW91dCBwaGFzZXMuJykscHljKSxlaWQpLGxYKSx4c2IoV2hkKSkpKTt6Z2QoYSxKQmUsUkJlLHJ5Yyk7emdkKGEsSkJlLF9CZSxxeWMpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLEtCZSksJycpLCdNZXJnZSBFZGdlcycpLCdFZGdlcyB0aGF0IGhhdmUgbm8gcG9ydHMgYXJlIG1lcmdlZCBzbyB0aGV5IHRvdWNoIHRoZSBjb25uZWN0ZWQgbm9kZXMgYXQgdGhlIHNhbWUgcG9pbnRzLiBXaGVuIHRoaXMgb3B0aW9uIGlzIGRpc2FibGVkLCBvbmUgcG9ydCBpcyBjcmVhdGVkIGZvciBlYWNoIGVkZ2UgZGlyZWN0bHkgY29ubmVjdGVkIHRvIGEgbm9kZS4gV2hlbiBpdCBpcyBlbmFibGVkLCBhbGwgc3VjaCBpbmNvbWluZyBlZGdlcyBzaGFyZSBhbiBpbnB1dCBwb3J0LCBhbmQgYWxsIG91dGdvaW5nIGVkZ2VzIHNoYXJlIGFuIG91dHB1dCBwb3J0LicpLGZhbHNlKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxMQmUpLCcnKSwnTWVyZ2UgSGllcmFyY2h5LUNyb3NzaW5nIEVkZ2VzJyksJ0lmIGhpZXJhcmNoaWNhbCBsYXlvdXQgaXMgYWN0aXZlLCBoaWVyYXJjaHktY3Jvc3NpbmcgZWRnZXMgdXNlIGFzIGZldyBoaWVyYXJjaGljYWwgcG9ydHMgYXMgcG9zc2libGUuIFRoZXkgYXJlIGJyb2tlbiBieSB0aGUgYWxnb3JpdGhtLCB3aXRoIGhpZXJhcmNoaWNhbCBwb3J0cyBpbnNlcnRlZCBhcyByZXF1aXJlZC4gVXN1YWxseSwgb25lIHN1Y2ggcG9ydCBpcyBjcmVhdGVkIGZvciBlYWNoIGVkZ2UgYXQgZWFjaCBoaWVyYXJjaHkgY3Jvc3NpbmcgcG9pbnQuIFdpdGggdGhpcyBvcHRpb24gc2V0IHRvIHRydWUsIHdlIHRyeSB0byBjcmVhdGUgYXMgZmV3IGhpZXJhcmNoaWNhbCBwb3J0cyBhcyBwb3NzaWJsZSBpbiB0aGUgcHJvY2Vzcy4gSW4gcGFydGljdWxhciwgYWxsIGVkZ2VzIHRoYXQgZm9ybSBhIGh5cGVyZWRnZSBjYW4gc2hhcmUgYSBwb3J0LicpLHRydWUpLGNpZCksUUkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoTmhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxNQmUpLCcnKSwnQWxsb3cgTm9uLUZsb3cgUG9ydHMgVG8gU3dpdGNoIFNpZGVzJyksXCJTcGVjaWZpZXMgd2hldGhlciBub24tZmxvdyBwb3J0cyBtYXkgc3dpdGNoIHNpZGVzIGlmIHRoZWlyIG5vZGUncyBwb3J0IGNvbnN0cmFpbnRzIGFyZSBlaXRoZXIgRklYRURfU0lERSBvciBGSVhFRF9PUkRFUi4gQSBub24tZmxvdyBwb3J0IGlzIGEgcG9ydCBvbiBhIHNpZGUgdGhhdCBpcyBub3QgcGFydCBvZiB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgbGF5b3V0IGZsb3cuIEZvciBpbnN0YW5jZSwgZ2l2ZW4gYSBsZWZ0LXRvLXJpZ2h0IGxheW91dCBkaXJlY3Rpb24sIG5vcnRoIGFuZCBzb3V0aCBwb3J0cyB3b3VsZCBiZSBjb25zaWRlcmVkIG5vbi1mbG93IHBvcnRzLiBGdXJ0aGVyIG5vdGUgdGhhdCB0aGUgdW5kZXJseWluZyBjcml0ZXJpdW0gd2hldGhlciB0byBzd2l0Y2ggc2lkZXMgb3Igbm90IHNvbGVseSByZWxpZXMgb24gdGhlIG1pbmltaXphdGlvbiBvZiBlZGdlIGNyb3NzaW5ncy4gSGVuY2UsIGVkZ2UgbGVuZ3RoIGFuZCBvdGhlciBhZXN0aGV0aWNzIGNyaXRlcmlhIGFyZSBub3QgYWRkcmVzc2VkLlwiKSxmYWxzZSksY2lkKSxRSSkseHNiKFhoZCkpLGNEKFdDKHFKLDEpLE52ZSwyLDYsWydvcmcuZWNsaXBzZS5lbGsubGF5ZXJlZC5ub3J0aE9yU291dGhQb3J0J10pKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLE5CZSksJycpLCdQb3J0IFNvcnRpbmcgU3RyYXRlZ3knKSxcIk9ubHkgcmVsZXZhbnQgZm9yIG5vZGVzIHdpdGggRklYRURfU0lERSBwb3J0IGNvbnN0cmFpbnRzLiBEZXRlcm1pbmVzIHRoZSB3YXkgYSBub2RlJ3MgcG9ydHMgYXJlIGRpc3RyaWJ1dGVkIG9uIHRoZSBzaWRlcyBvZiBhIG5vZGUgaWYgdGhlaXIgb3JkZXIgaXMgbm90IHByZXNjcmliZWQuIFRoZSBvcHRpb24gaXMgc2V0IG9uIHBhcmVudCBub2Rlcy5cIiksYXpjKSxlaWQpLHhYKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxPQmUpLCcnKSwnVGhvcm91Z2huZXNzJyksJ0hvdyBtdWNoIGVmZm9ydCBzaG91bGQgYmUgc3BlbnQgdG8gcHJvZHVjZSBhIG5pY2UgbGF5b3V0LicpLHNnYig3KSksZ2lkKSxiSikseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsUEJlKSwnJyksJ0FkZCBVbm5lY2Vzc2FyeSBCZW5kcG9pbnRzJyksJ0FkZHMgYmVuZCBwb2ludHMgZXZlbiBpZiBhbiBlZGdlIGRvZXMgbm90IGNoYW5nZSBkaXJlY3Rpb24uIElmIHRydWUsIGVhY2ggbG9uZyBlZGdlIGR1bW15IHdpbGwgY29udHJpYnV0ZSBhIGJlbmQgcG9pbnQgdG8gaXRzIGVkZ2VzIGFuZCBoaWVyYXJjaHktY3Jvc3NpbmcgZWRnZXMgd2lsbCBhbHdheXMgZ2V0IGEgYmVuZCBwb2ludCB3aGVyZSB0aGV5IGNyb3NzIGhpZXJhcmNoeSBib3VuZGFyaWVzLiBCeSBkZWZhdWx0LCBiZW5kIHBvaW50cyBhcmUgb25seSBhZGRlZCB3aGVyZSBhbiBlZGdlIGNoYW5nZXMgZGlyZWN0aW9uLicpLGZhbHNlKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxRQmUpLCcnKSwnR2VuZXJhdGUgUG9zaXRpb24gYW5kIExheWVyIElEcycpLCdJZiBlbmFibGVkIHBvc2l0aW9uIGlkIGFuZCBsYXllciBpZCBhcmUgZ2VuZXJhdGVkLCB3aGljaCBhcmUgdXN1YWxseSBvbmx5IHVzZWQgaW50ZXJuYWxseSB3aGVuIHNldHRpbmcgdGhlIGludGVyYWN0aXZlTGF5b3V0IG9wdGlvbi4gVGhpcyBvcHRpb24gc2hvdWxkIGJlIHNwZWNpZmllZCBvbiB0aGUgcm9vdCBub2RlLicpLGZhbHNlKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxSQmUpLCdjeWNsZUJyZWFraW5nJyksJ0N5Y2xlIEJyZWFraW5nIFN0cmF0ZWd5JyksJ1N0cmF0ZWd5IGZvciBjeWNsZSBicmVha2luZy4gQ3ljbGUgYnJlYWtpbmcgbG9va3MgZm9yIGN5Y2xlcyBpbiB0aGUgZ3JhcGggYW5kIGRldGVybWluZXMgd2hpY2ggZWRnZXMgdG8gcmV2ZXJzZSB0byBicmVhayB0aGUgY3ljbGVzLiBSZXZlcnNlZCBlZGdlcyB3aWxsIGVuZCB1cCBwb2ludGluZyB0byB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9mIHJlZ3VsYXIgZWRnZXMgKHRoYXQgaXMsIHJldmVyc2VkIGVkZ2VzIHdpbGwgcG9pbnQgbGVmdCBpZiBlZGdlcyB1c3VhbGx5IHBvaW50IHJpZ2h0KS4nKSxTeGMpLGVpZCksYlgpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFNCZSksYkRlKSwnTm9kZSBMYXllcmluZyBTdHJhdGVneScpLCdTdHJhdGVneSBmb3Igbm9kZSBsYXllcmluZy4nKSxHeWMpLGVpZCksclgpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFRCZSksYkRlKSwnTGF5ZXIgQ29uc3RyYWludCcpLCdEZXRlcm1pbmVzIGEgY29uc3RyYWludCBvbiB0aGUgcGxhY2VtZW50IG9mIHRoZSBub2RlIHJlZ2FyZGluZyB0aGUgbGF5ZXJpbmcuJyksd3ljKSxlaWQpLG1YKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxVQmUpLGJEZSksJ0xheWVyIENob2ljZSBDb25zdHJhaW50JyksXCJBbGxvd3MgdG8gc2V0IGEgY29uc3RyYWludCByZWdhcmRpbmcgdGhlIGxheWVyIHBsYWNlbWVudCBvZiBhIG5vZGUuIExldCBpIGJlIHRoZSB2YWx1ZSBvZiB0ZWggY29uc3RyYWludC4gQXNzdW1lZCB0aGUgZHJhd2luZyBoYXMgbiBsYXllcnMgYW5kIGkgPCBuLiBJZiBzZXQgdG8gaSwgaXQgZXhwcmVzc2VzIHRoYXQgdGhlIG5vZGUgc2hvdWxkIGJlIHBsYWNlZCBpbiBpLXRoIGxheWVyLiBTaG91bGQgaT49biBiZSB0cnVlIHRoZW4gdGhlIG5vZGUgaXMgcGxhY2VkIGluIHRoZSBsYXN0IGxheWVyIG9mIHRoZSBkcmF3aW5nLiBOb3RlIHRoYXQgdGhpcyBvcHRpb24gaXMgbm90IHBhcnQgb2YgYW55IG9mIEVMSyBMYXllcmVkJ3MgZGVmYXVsdCBjb25maWd1cmF0aW9ucyBidXQgaXMgb25seSBldmFsdWF0ZWQgYXMgcGFydCBvZiB0aGUgYEludGVyYWN0aXZlTGF5ZXJlZEdyYXBoVmlzaXRvcmAsIHdoaWNoIG11c3QgYmUgYXBwbGllZCBtYW51YWxseSBvciB1c2VkIHZpYSB0aGUgYERpYWdyYW1MYXlvdXRFbmdpbmUuXCIpLG51bGwpLGdpZCksYkopLHhzYihWaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFZCZSksYkRlKSwnTGF5ZXIgSUQnKSwnTGF5ZXIgaWRlbnRpZmllciB0aGF0IHdhcyBjYWxjdWxhdGVkIGJ5IEVMSyBMYXllcmVkIGZvciBhIG5vZGUuIFRoaXMgaXMgb25seSBnZW5lcmF0ZWQgaWYgaW50ZXJhY3RpdmVMYXlvdCBvciBnZW5lcmF0ZVBvc2l0aW9uQW5kTGF5ZXJJZHMgaXMgc2V0LicpLHNnYigtMSkpLGdpZCksYkopLHhzYihWaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFdCZSksY0RlKSwnVXBwZXIgQm91bmQgT24gV2lkdGggW01pbldpZHRoIExheWVyZXJdJyksXCJEZWZpbmVzIGEgbG9vc2UgdXBwZXIgYm91bmQgb24gdGhlIHdpZHRoIG9mIHRoZSBNaW5XaWR0aCBsYXllcmVyLiBJZiBzZXQgdG8gJy0xJyBtdWx0aXBsZSB2YWx1ZXMgYXJlIHRlc3RlZCBhbmQgdGhlIGJlc3QgcmVzdWx0IGlzIHNlbGVjdGVkLlwiKSxzZ2IoNCkpLGdpZCksYkopLHhzYihXaGQpKSkpO3pnZChhLFdCZSxTQmUsenljKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxYQmUpLGNEZSksJ1VwcGVyIExheWVyIEVzdGltYXRpb24gU2NhbGluZyBGYWN0b3IgW01pbldpZHRoIExheWVyZXJdJyksXCJNdWx0aXBsaWVkIHdpdGggVXBwZXIgQm91bmQgT24gV2lkdGggZm9yIGRlZmluaW5nIGFuIHVwcGVyIGJvdW5kIG9uIHRoZSB3aWR0aCBvZiBsYXllcnMgd2hpY2ggaGF2ZW4ndCBiZWVuIGRldGVybWluZWQgeWV0LCBidXQgd2hvc2UgbWF4aW11bSB3aWR0aCBoYWQgYmVlbiAocm91Z2hseSkgZXN0aW1hdGVkIGJ5IHRoZSBNaW5XaWR0aCBhbGdvcml0aG0uIENvbXBlbnNhdGVzIGZvciB0b28gaGlnaCBlc3RpbWF0aW9ucy4gSWYgc2V0IHRvICctMScgbXVsdGlwbGUgdmFsdWVzIGFyZSB0ZXN0ZWQgYW5kIHRoZSBiZXN0IHJlc3VsdCBpcyBzZWxlY3RlZC5cIiksc2diKDIpKSxnaWQpLGJKKSx4c2IoV2hkKSkpKTt6Z2QoYSxYQmUsU0JlLEJ5Yyk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsWUJlKSxkRGUpLCdOb2RlIFByb21vdGlvbiBTdHJhdGVneScpLCdSZWR1Y2VzIG51bWJlciBvZiBkdW1teSBub2RlcyBhZnRlciBsYXllcmluZyBwaGFzZSAoaWYgcG9zc2libGUpLicpLEV5YyksZWlkKSx2WCkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsWkJlKSxkRGUpLCdNYXggTm9kZSBQcm9tb3Rpb24gSXRlcmF0aW9ucycpLCdMaW1pdHMgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIGZvciBub2RlIHByb21vdGlvbi4nKSxzZ2IoMCkpLGdpZCksYkopLHhzYihXaGQpKSkpO3pnZChhLFpCZSxZQmUsbnVsbCk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsJEJlKSwnbGF5ZXJpbmcuY29mZm1hbkdyYWhhbScpLCdMYXllciBCb3VuZCcpLCdUaGUgbWF4aW11bSBudW1iZXIgb2Ygbm9kZXMgYWxsb3dlZCBwZXIgbGF5ZXIuJyksc2diKGx2ZSkpLGdpZCksYkopLHhzYihXaGQpKSkpO3pnZChhLCRCZSxTQmUsdHljKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxfQmUpLGVEZSksJ0Nyb3NzaW5nIE1pbmltaXphdGlvbiBTdHJhdGVneScpLCdTdHJhdGVneSBmb3IgY3Jvc3NpbmcgbWluaW1pemF0aW9uLicpLFF4YyksZWlkKSxfVykseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsYUNlKSxlRGUpLCdGb3JjZSBOb2RlIE1vZGVsIE9yZGVyJyksJ1RoZSBub2RlIG9yZGVyIGdpdmVuIGJ5IHRoZSBtb2RlbCBkb2VzIG5vdCBjaGFuZ2UgdG8gcHJvZHVjZSBhIGJldHRlciBsYXlvdXQuIEUuZy4gaWYgbm9kZSBBIGlzIGJlZm9yZSBub2RlIEIgaW4gdGhlIG1vZGVsIHRoaXMgaXMgbm90IGNoYW5nZWQgZHVyaW5nIGNyb3NzaW5nIG1pbmltaXphdGlvbi4gVGhpcyBhc3N1bWVzIHRoYXQgdGhlIG5vZGUgbW9kZWwgb3JkZXIgaXMgYWxyZWFkeSByZXNwZWN0ZWQgYmVmb3JlIGNyb3NzaW5nIG1pbmltaXphdGlvbi4gVGhpcyBjYW4gYmUgYWNoaWV2ZWQgYnkgc2V0dGluZyBjb25zaWRlck1vZGVsT3JkZXIuc3RyYXRlZ3kgdG8gTk9ERVNfQU5EX0VER0VTLicpLGZhbHNlKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxiQ2UpLGVEZSksJ0hpZXJhcmNoaWNhbCBTd2VlcGluZXNzJyksJ0hvdyBsaWtlbHkgaXQgaXMgdG8gdXNlIGNyb3NzLWhpZXJhcmNoeSAoMSkgdnMgYm90dG9tLXVwICgtMSkuJyksMC4xKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTt6Z2QoYSxiQ2UsZkRlLEl4Yyk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsY0NlKSxlRGUpLCdTZW1pLUludGVyYWN0aXZlIENyb3NzaW5nIE1pbmltaXphdGlvbicpLFwiUHJlc2VydmVzIHRoZSBvcmRlciBvZiBub2RlcyB3aXRoaW4gYSBsYXllciBidXQgc3RpbGwgbWluaW1pemVzIGNyb3NzaW5ncyBiZXR3ZWVuIGVkZ2VzIGNvbm5lY3RpbmcgbG9uZyBlZGdlIGR1bW1pZXMuIERlcml2ZXMgdGhlIGRlc2lyZWQgb3JkZXIgZnJvbSBwb3NpdGlvbnMgc3BlY2lmaWVkIGJ5IHRoZSAnb3JnLmVjbGlwc2UuZWxrLnBvc2l0aW9uJyBsYXlvdXQgb3B0aW9uLiBSZXF1aXJlcyBhIGNyb3NzaW5nIG1pbmltaXphdGlvbiBzdHJhdGVneSB0aGF0IGlzIGFibGUgdG8gcHJvY2VzcyAnaW4tbGF5ZXInIGNvbnN0cmFpbnRzLlwiKSxmYWxzZSksY2lkKSxRSSkseHNiKFdoZCkpKSk7emdkKGEsY0NlLF9CZSxPeGMpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGRDZSksZURlKSwnSW4gTGF5ZXIgUHJlZGVjZXNzb3Igb2YnKSxcIkFsbG93cyB0byBzZXQgYSBjb25zdHJhaW50IHdoaWNoIHNwZWNpZmllcyBvZiB3aGljaCBub2RlIHRoZSBjdXJyZW50IG5vZGUgaXMgdGhlIHByZWRlY2Vzc29yLiBJZiBzZXQgdG8gJ3MnIHRoZW4gdGhlIG5vZGUgaXMgdGhlIHByZWRlY2Vzc29yIG9mICdzJyBhbmQgaXMgaW4gdGhlIHNhbWUgbGF5ZXJcIiksbnVsbCksaWlkKSxxSikseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsZUNlKSxlRGUpLCdJbiBMYXllciBTdWNjZXNzb3Igb2YnKSxcIkFsbG93cyB0byBzZXQgYSBjb25zdHJhaW50IHdoaWNoIHNwZWNpZmllcyBvZiB3aGljaCBub2RlIHRoZSBjdXJyZW50IG5vZGUgaXMgdGhlIHN1Y2Nlc3Nvci4gSWYgc2V0IHRvICdzJyB0aGVuIHRoZSBub2RlIGlzIHRoZSBzdWNjZXNzb3Igb2YgJ3MnIGFuZCBpcyBpbiB0aGUgc2FtZSBsYXllclwiKSxudWxsKSxpaWQpLHFKKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxmQ2UpLGVEZSksJ1Bvc2l0aW9uIENob2ljZSBDb25zdHJhaW50JyksXCJBbGxvd3MgdG8gc2V0IGEgY29uc3RyYWludCByZWdhcmRpbmcgdGhlIHBvc2l0aW9uIHBsYWNlbWVudCBvZiBhIG5vZGUgaW4gYSBsYXllci4gQXNzdW1lZCB0aGUgbGF5ZXIgaW4gd2hpY2ggdGhlIG5vZGUgcGxhY2VkIGluY2x1ZGVzIG4gb3RoZXIgbm9kZXMgYW5kIGkgPCBuLiBJZiBzZXQgdG8gaSwgaXQgZXhwcmVzc2VzIHRoYXQgdGhlIG5vZGUgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgaS10aCBwb3NpdGlvbi4gU2hvdWxkIGk+PW4gYmUgdHJ1ZSB0aGVuIHRoZSBub2RlIGlzIHBsYWNlZCBhdCB0aGUgbGFzdCBwb3NpdGlvbiBpbiB0aGUgbGF5ZXIuIE5vdGUgdGhhdCB0aGlzIG9wdGlvbiBpcyBub3QgcGFydCBvZiBhbnkgb2YgRUxLIExheWVyZWQncyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zIGJ1dCBpcyBvbmx5IGV2YWx1YXRlZCBhcyBwYXJ0IG9mIHRoZSBgSW50ZXJhY3RpdmVMYXllcmVkR3JhcGhWaXNpdG9yYCwgd2hpY2ggbXVzdCBiZSBhcHBsaWVkIG1hbnVhbGx5IG9yIHVzZWQgdmlhIHRoZSBgRGlhZ3JhbUxheW91dEVuZ2luZS5cIiksbnVsbCksZ2lkKSxiSikseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsZ0NlKSxlRGUpLCdQb3NpdGlvbiBJRCcpLCdQb3NpdGlvbiB3aXRoaW4gYSBsYXllciB0aGF0IHdhcyBkZXRlcm1pbmVkIGJ5IEVMSyBMYXllcmVkIGZvciBhIG5vZGUuIFRoaXMgaXMgb25seSBnZW5lcmF0ZWQgaWYgaW50ZXJhY3RpdmVMYXlvdCBvciBnZW5lcmF0ZVBvc2l0aW9uQW5kTGF5ZXJJZHMgaXMgc2V0LicpLHNnYigtMSkpLGdpZCksYkopLHhzYihWaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGhDZSksZ0RlKSwnR3JlZWR5IFN3aXRjaCBBY3RpdmF0aW9uIFRocmVzaG9sZCcpLFwiQnkgZGVmYXVsdCBpdCBpcyBkZWNpZGVkIGF1dG9tYXRpY2FsbHkgaWYgdGhlIGdyZWVkeSBzd2l0Y2ggaXMgYWN0aXZhdGVkIG9yIG5vdC4gVGhlIGRlY2lzaW9uIGlzIGJhc2VkIG9uIHdoZXRoZXIgdGhlIHNpemUgb2YgdGhlIGlucHV0IGdyYXBoICh3aXRob3V0IGR1bW15IG5vZGVzKSBpcyBzbWFsbGVyIHRoYW4gdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLiBBICcwJyBlbmZvcmNlcyB0aGUgYWN0aXZhdGlvbi5cIiksc2diKDQwKSksZ2lkKSxiSikseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsaUNlKSxnRGUpLCdHcmVlZHkgU3dpdGNoIENyb3NzaW5nIE1pbmltaXphdGlvbicpLFwiR3JlZWR5IFN3aXRjaCBzdHJhdGVneSBmb3IgY3Jvc3NpbmcgbWluaW1pemF0aW9uLiBUaGUgZ3JlZWR5IHN3aXRjaCBoZXVyaXN0aWMgaXMgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHJlZ3VsYXIgY3Jvc3NpbmcgbWluaW1pemF0aW9uIGFzIGEgcG9zdC1wcm9jZXNzb3IuIE5vdGUgdGhhdCBpZiAnaGllcmFyY2h5SGFuZGxpbmcnIGlzIHNldCB0byAnSU5DTFVERV9DSElMRFJFTicsIHRoZSAnZ3JlZWR5U3dpdGNoSGllcmFyY2hpY2FsLnR5cGUnIG9wdGlvbiBtdXN0IGJlIHVzZWQuXCIpLEZ4YyksZWlkKSxqWCkseHNiKFdoZCkpKSk7emdkKGEsaUNlLF9CZSxHeGMpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGpDZSksJ2Nyb3NzaW5nTWluaW1pemF0aW9uLmdyZWVkeVN3aXRjaEhpZXJhcmNoaWNhbCcpLCdHcmVlZHkgU3dpdGNoIENyb3NzaW5nIE1pbmltaXphdGlvbiAoaGllcmFyY2hpY2FsKScpLFwiQWN0aXZhdGVzIHRoZSBncmVlZHkgc3dpdGNoIGhldXJpc3RpYyBpbiBjYXNlIGhpZXJhcmNoaWNhbCBsYXlvdXQgaXMgdXNlZC4gVGhlIGRpZmZlcmVuY2VzIHRvIHRoZSBub24taGllcmFyY2hpY2FsIGNhc2UgKHNlZSAnZ3JlZWR5U3dpdGNoLnR5cGUnKSBhcmU6IDEpIGdyZWVkeSBzd2l0Y2ggaXMgaW5hY3RpdmUgYnkgZGVmYXVsdCwgMykgb25seSB0aGUgb3B0aW9uIHZhbHVlIHNldCBvbiB0aGUgbm9kZSBhdCB3aGljaCBoaWVyYXJjaGljYWwgbGF5b3V0IHN0YXJ0cyBpcyByZWxldmFudCwgYW5kIDIpIGlmIGl0J3MgYWN0aXZhdGVkIGJ5IHRoZSB1c2VyLCBpdCBwcm9wZXJseSBhZGRyZXNzZXMgaGllcmFyY2h5LWNyb3NzaW5nIGVkZ2VzLlwiKSxCeGMpLGVpZCksalgpLHhzYihXaGQpKSkpO3pnZChhLGpDZSxfQmUsQ3hjKTt6Z2QoYSxqQ2UsZkRlLER4Yyk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsa0NlKSxoRGUpLCdOb2RlIFBsYWNlbWVudCBTdHJhdGVneScpLCdTdHJhdGVneSBmb3Igbm9kZSBwbGFjZW1lbnQuJyksJHljKSxlaWQpLHVYKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGxDZSksaERlKSwnRmF2b3IgU3RyYWlnaHQgRWRnZXMgT3ZlciBCYWxhbmNpbmcnKSxcIkZhdm9yIHN0cmFpZ2h0IGVkZ2VzIG92ZXIgYSBiYWxhbmNlZCBub2RlIHBsYWNlbWVudC4gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgZGV0ZXJtaW5lZCBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHRoZSB1c2VkICdlZGdlUm91dGluZycuIEZvciBhbiBvcnRob2dvbmFsIHN0eWxlIGl0IGlzIHNldCB0byB0cnVlLCBmb3IgYWxsIG90aGVyIHN0eWxlcyB0byBmYWxzZS5cIiksY2lkKSxRSSkseHNiKFdoZCkpKSk7emdkKGEsbENlLGtDZSxReWMpO3pnZChhLGxDZSxrQ2UsUnljKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxtQ2UpLGlEZSksJ0JLIEVkZ2UgU3RyYWlnaHRlbmluZycpLFwiU3BlY2lmaWVzIHdoZXRoZXIgdGhlIEJyYW5kZXMgS29lcGYgbm9kZSBwbGFjZXIgdHJpZXMgdG8gaW5jcmVhc2UgdGhlIG51bWJlciBvZiBzdHJhaWdodCBlZGdlcyBhdCB0aGUgZXhwZW5zZSBvZiBkaWFncmFtIHNpemUuIFRoZXJlIGlzIGEgc3VidGxlIGRpZmZlcmVuY2UgdG8gdGhlICdmYXZvclN0cmFpZ2h0RWRnZXMnIG9wdGlvbiwgd2hpY2ggZGVjaWRlcyB3aGV0aGVyIGEgYmFsYW5jZWQgcGxhY2VtZW50IG9mIHRoZSBub2RlcyBpcyBkZXNpcmVkLCBvciBub3QuIEluIGJrIHRlcm1zIHRoaXMgbWVhbnMgY29tYmluaW5nIHRoZSBmb3VyIGFsaWdubWVudHMgaW50byBhIHNpbmdsZSBiYWxhbmNlZCBvbmUsIG9yIG5vdC4gVGhpcyBvcHRpb24gb24gdGhlIG90aGVyIGhhbmQgdHJpZXMgdG8gc3RyYWlnaHRlbiBhZGRpdGlvbmFsIGVkZ2VzIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgZWFjaCBvZiB0aGUgZm91ciBhbGlnbm1lbnRzLlwiKSxLeWMpLGVpZCksZlgpLHhzYihXaGQpKSkpO3pnZChhLG1DZSxrQ2UsTHljKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxuQ2UpLGlEZSksJ0JLIEZpeGVkIEFsaWdubWVudCcpLCdUZWxscyB0aGUgQksgbm9kZSBwbGFjZXIgdG8gdXNlIGEgY2VydGFpbiBhbGlnbm1lbnQgKG91dCBvZiBpdHMgZm91cikgaW5zdGVhZCBvZiB0aGUgb25lIHByb2R1Y2luZyB0aGUgc21hbGxlc3QgaGVpZ2h0LCBvciB0aGUgY29tYmluYXRpb24gb2YgYWxsIGZvdXIuJyksTnljKSxlaWQpLGdYKSx4c2IoV2hkKSkpKTt6Z2QoYSxuQ2Usa0NlLE95Yyk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsb0NlKSwnbm9kZVBsYWNlbWVudC5saW5lYXJTZWdtZW50cycpLCdMaW5lYXIgU2VnbWVudHMgRGVmbGVjdGlvbiBEYW1wZW5pbmcnKSwnRGFtcGVucyB0aGUgbW92ZW1lbnQgb2Ygbm9kZXMgdG8ga2VlcCB0aGUgZGlhZ3JhbSBmcm9tIGdldHRpbmcgdG9vIGxhcmdlLicpLDAuMyksZGlkKSxWSSkseHNiKFdoZCkpKSk7emdkKGEsb0NlLGtDZSxUeWMpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQscENlKSwnbm9kZVBsYWNlbWVudC5uZXR3b3JrU2ltcGxleCcpLCdOb2RlIEZsZXhpYmlsaXR5JyksXCJBaW1zIGF0IHNob3J0ZXIgYW5kIHN0cmFpZ2h0ZXIgZWRnZXMuIFR3byBjb25maWd1cmF0aW9ucyBhcmUgcG9zc2libGU6IChhKSBhbGxvdyBwb3J0cyB0byBtb3ZlIGZyZWVseSBvbiB0aGUgc2lkZSB0aGV5IGFyZSBhc3NpZ25lZCB0byAodGhlIG9yZGVyIGlzIGFsd2F5cyBkZWZpbmVkIGJlZm9yZWhhbmQpLCAoYikgYWRkaXRpb25hbGx5IGFsbG93IHRvIGVubGFyZ2UgYSBub2RlIHdoZXJldmVyIGl0IGhlbHBzLiBJZiB0aGlzIG9wdGlvbiBpcyBub3QgY29uZmlndXJlZCBmb3IgYSBub2RlLCB0aGUgJ25vZGVGbGV4aWJpbGl0eS5kZWZhdWx0JyB2YWx1ZSBpcyB1c2VkLCB3aGljaCBpcyBzcGVjaWZpZWQgZm9yIHRoZSBub2RlJ3MgcGFyZW50LlwiKSxlaWQpLHRYKSx4c2IoVmhkKSkpKTt6Z2QoYSxwQ2Usa0NlLFl5Yyk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQscUNlKSwnbm9kZVBsYWNlbWVudC5uZXR3b3JrU2ltcGxleC5ub2RlRmxleGliaWxpdHknKSwnTm9kZSBGbGV4aWJpbGl0eSBEZWZhdWx0JyksXCJEZWZhdWx0IHZhbHVlIG9mIHRoZSAnbm9kZUZsZXhpYmlsaXR5JyBvcHRpb24gZm9yIHRoZSBjaGlsZHJlbiBvZiBhIGhpZXJhcmNoaWNhbCBub2RlLlwiKSxXeWMpLGVpZCksdFgpLHhzYihXaGQpKSkpO3pnZChhLHFDZSxrQ2UsWHljKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxyQ2UpLGpEZSksJ1NlbGYtTG9vcCBEaXN0cmlidXRpb24nKSwnQWx0ZXIgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgbG9vcHMgYXJvdW5kIHRoZSBub2RlLiBJdCBvbmx5IHRha2VzIGVmZmVjdCBmb3IgUG9ydENvbnN0cmFpbnRzLkZSRUUuJyksYXljKSxlaWQpLHpYKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxzQ2UpLGpEZSksJ1NlbGYtTG9vcCBPcmRlcmluZycpLCdBbHRlciB0aGUgb3JkZXJpbmcgb2YgdGhlIGxvb3BzIHRoZXkgY2FuIGVpdGhlciBiZSBzdGFja2VkIG9yIHNlcXVlbmNlZC4gSXQgb25seSB0YWtlcyBlZmZlY3QgZm9yIFBvcnRDb25zdHJhaW50cy5GUkVFLicpLGN5YyksZWlkKSxBWCkseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsdENlKSwnZWRnZVJvdXRpbmcuc3BsaW5lcycpLCdTcGxpbmUgUm91dGluZyBNb2RlJyksJ1NwZWNpZmllcyB0aGUgd2F5IGNvbnRyb2wgcG9pbnRzIGFyZSBhc3NlbWJsZWQgZm9yIGVhY2ggaW5kaXZpZHVhbCBlZGdlLiBDT05TRVJWQVRJVkUgZW5zdXJlcyB0aGF0IGVkZ2VzIGFyZSBwcm9wZXJseSByb3V0ZWQgYXJvdW5kIHRoZSBub2RlcyBidXQgZmVlbHMgcmF0aGVyIG9ydGhvZ29uYWwgYXQgdGltZXMuIFNMT1BQWSB1c2VzIGZld2VyIGNvbnRyb2wgcG9pbnRzIHRvIG9idGFpbiBjdXJ2aWVyIGVkZ2Ugcm91dGVzIGJ1dCBtYXkgcmVzdWx0IGluIGVkZ2VzIG92ZXJsYXBwaW5nIG5vZGVzLicpLGV5YyksZWlkKSxDWCkseHNiKFdoZCkpKSk7emdkKGEsdENlLGtEZSxmeWMpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLHVDZSksJ2VkZ2VSb3V0aW5nLnNwbGluZXMuc2xvcHB5JyksJ1Nsb3BweSBTcGxpbmUgTGF5ZXIgU3BhY2luZyBGYWN0b3InKSwnU3BhY2luZyBmYWN0b3IgZm9yIHJvdXRpbmcgYXJlYSBiZXR3ZWVuIGxheWVycyB3aGVuIHVzaW5nIHNsb3BweSBzcGxpbmUgcm91dGluZy4nKSwwLjIpLGRpZCksVkkpLHhzYihXaGQpKSkpO3pnZChhLHVDZSxrRGUsaHljKTt6Z2QoYSx1Q2UsdENlLGl5Yyk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsdkNlKSwnZWRnZVJvdXRpbmcucG9seWxpbmUnKSwnU2xvcGVkIEVkZ2UgWm9uZSBXaWR0aCcpLCdXaWR0aCBvZiB0aGUgc3RyaXAgdG8gdGhlIGxlZnQgYW5kIHRvIHRoZSByaWdodCBvZiBlYWNoIGxheWVyIHdoZXJlIHRoZSBwb2x5bGluZSBlZGdlIHJvdXRlciBpcyBhbGxvd2VkIHRvIHJlZnJhaW4gZnJvbSBlbnN1cmluZyB0aGF0IGVkZ2VzIGFyZSByb3V0ZWQgaG9yaXpvbnRhbGx5LiBUaGlzIHByZXZlbnRzIGF3a3dhcmQgYmVuZCBwb2ludHMgZm9yIG5vZGVzIHRoYXQgZXh0ZW50IGFsbW9zdCB0byB0aGUgZWRnZSBvZiB0aGVpciBsYXllci4nKSwyKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTt6Z2QoYSx2Q2Usa0RlLCR4Yyk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCx3Q2UpLGxEZSksJ1NwYWNpbmcgQmFzZSBWYWx1ZScpLFwiQW4gb3B0aW9uYWwgYmFzZSB2YWx1ZSBmb3IgYWxsIG90aGVyIGxheW91dCBvcHRpb25zIG9mIHRoZSAnc3BhY2luZycgZ3JvdXAuIEl0IGNhbiBiZSB1c2VkIHRvIGNvbnZlbmllbnRseSBhbHRlciB0aGUgb3ZlcmFsbCAnc3BhY2lvdXNuZXNzJyBvZiB0aGUgZHJhd2luZy4gV2hlbmV2ZXIgYW4gZXhwbGljaXQgdmFsdWUgaXMgc2V0IGZvciB0aGUgb3RoZXIgbGF5b3V0IG9wdGlvbnMsIHRoaXMgYmFzZSB2YWx1ZSB3aWxsIGhhdmUgbm8gZWZmZWN0LiBUaGUgYmFzZSB2YWx1ZSBpcyBub3QgaW5oZXJpdGVkLCBpLmUuIGl0IG11c3QgYmUgc2V0IGZvciBlYWNoIGhpZXJhcmNoaWNhbCBub2RlLlwiKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCx4Q2UpLGxEZSksJ0VkZ2UgTm9kZSBCZXR3ZWVuIExheWVycyBTcGFjaW5nJyksXCJUaGUgc3BhY2luZyB0byBiZSBwcmVzZXJ2ZWQgYmV0d2VlbiBub2RlcyBhbmQgZWRnZXMgdGhhdCBhcmUgcm91dGVkIG5leHQgdG8gdGhlIG5vZGUncyBsYXllci4gRm9yIHRoZSBzcGFjaW5nIGJldHdlZW4gbm9kZXMgYW5kIGVkZ2VzIHRoYXQgY3Jvc3MgdGhlIG5vZGUncyBsYXllciAnc3BhY2luZy5lZGdlTm9kZScgaXMgdXNlZC5cIiksMTApLGRpZCksVkkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLHlDZSksbERlKSwnRWRnZSBFZGdlIEJldHdlZW4gTGF5ZXIgU3BhY2luZycpLFwiU3BhY2luZyB0byBiZSBwcmVzZXJ2ZWQgYmV0d2VlbiBwYWlycyBvZiBlZGdlcyB0aGF0IGFyZSByb3V0ZWQgYmV0d2VlbiB0aGUgc2FtZSBwYWlyIG9mIGxheWVycy4gTm90ZSB0aGF0ICdzcGFjaW5nLmVkZ2VFZGdlJyBpcyB1c2VkIGZvciB0aGUgc3BhY2luZyBiZXR3ZWVuIHBhaXJzIG9mIGVkZ2VzIGNyb3NzaW5nIHRoZSBzYW1lIGxheWVyLlwiKSwxMCksZGlkKSxWSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsekNlKSxsRGUpLCdOb2RlIE5vZGUgQmV0d2VlbiBMYXllcnMgU3BhY2luZycpLFwiVGhlIHNwYWNpbmcgdG8gYmUgcHJlc2VydmVkIGJldHdlZW4gYW55IHBhaXIgb2Ygbm9kZXMgb2YgdHdvIGFkamFjZW50IGxheWVycy4gTm90ZSB0aGF0ICdzcGFjaW5nLm5vZGVOb2RlJyBpcyB1c2VkIGZvciB0aGUgc3BhY2luZyBiZXR3ZWVuIG5vZGVzIHdpdGhpbiB0aGUgbGF5ZXIgaXRzZWxmLlwiKSwyMCksZGlkKSxWSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsQUNlKSxtRGUpLCdEaXJlY3Rpb24gUHJpb3JpdHknKSwnRGVmaW5lcyBob3cgaW1wb3J0YW50IGl0IGlzIHRvIGhhdmUgYSBjZXJ0YWluIGVkZ2UgcG9pbnQgaW50byB0aGUgZGlyZWN0aW9uIG9mIHRoZSBvdmVyYWxsIGxheW91dC4gVGhpcyBvcHRpb24gaXMgZXZhbHVhdGVkIGR1cmluZyB0aGUgY3ljbGUgYnJlYWtpbmcgcGhhc2UuJyksc2diKDApKSxnaWQpLGJKKSx4c2IoVGhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxCQ2UpLG1EZSksJ1Nob3J0bmVzcyBQcmlvcml0eScpLCdEZWZpbmVzIGhvdyBpbXBvcnRhbnQgaXQgaXMgdG8ga2VlcCBhbiBlZGdlIGFzIHNob3J0IGFzIHBvc3NpYmxlLiBUaGlzIG9wdGlvbiBpcyBldmFsdWF0ZWQgZHVyaW5nIHRoZSBsYXllcmluZyBwaGFzZS4nKSxzZ2IoMCkpLGdpZCksYkopLHhzYihUaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLENDZSksbURlKSwnU3RyYWlnaHRuZXNzIFByaW9yaXR5JyksJ0RlZmluZXMgaG93IGltcG9ydGFudCBpdCBpcyB0byBrZWVwIGFuIGVkZ2Ugc3RyYWlnaHQsIGkuZS4gYWxpZ25lZCB3aXRoIG9uZSBvZiB0aGUgdHdvIGF4ZXMuIFRoaXMgb3B0aW9uIGlzIGV2YWx1YXRlZCBkdXJpbmcgbm9kZSBwbGFjZW1lbnQuJyksc2diKDApKSxnaWQpLGJKKSx4c2IoVGhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxEQ2UpLG5EZSkscXplKSwnVHJpZXMgdG8gZnVydGhlciBjb21wYWN0IGNvbXBvbmVudHMgKGRpc2Nvbm5lY3RlZCBzdWItZ3JhcGhzKS4nKSxmYWxzZSksY2lkKSxRSSkseHNiKFdoZCkpKSk7emdkKGEsRENlLGNBZSx0cnVlKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxFQ2UpLG9EZSksJ1Bvc3QgQ29tcGFjdGlvbiBTdHJhdGVneScpLHBEZSksbnhjKSxlaWQpLGhYKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxGQ2UpLG9EZSksJ1Bvc3QgQ29tcGFjdGlvbiBDb25zdHJhaW50IENhbGN1bGF0aW9uJykscERlKSxseGMpLGVpZCksJFcpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLEdDZSkscURlKSwnSGlnaCBEZWdyZWUgTm9kZSBUcmVhdG1lbnQnKSwnTWFrZXMgcm9vbSBhcm91bmQgaGlnaCBkZWdyZWUgbm9kZXMgdG8gcGxhY2UgbGVhZnMgYW5kIHRyZWVzLicpLGZhbHNlKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxIQ2UpLHFEZSksJ0hpZ2ggRGVncmVlIE5vZGUgVGhyZXNob2xkJyksJ1doZXRoZXIgYSBub2RlIGlzIGNvbnNpZGVyZWQgdG8gaGF2ZSBhIGhpZ2ggZGVncmVlLicpLHNnYigxNikpLGdpZCksYkopLHhzYihXaGQpKSkpO3pnZChhLEhDZSxHQ2UsdHJ1ZSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsSUNlKSxxRGUpLCdIaWdoIERlZ3JlZSBOb2RlIE1heGltdW0gVHJlZSBIZWlnaHQnKSwnTWF4aW11bSBoZWlnaHQgb2YgYSBzdWJ0cmVlIGNvbm5lY3RlZCB0byBhIGhpZ2ggZGVncmVlIG5vZGUgdG8gYmUgbW92ZWQgdG8gc2VwYXJhdGUgbGF5ZXJzLicpLHNnYig1KSksZ2lkKSxiSikseHNiKFdoZCkpKSk7emdkKGEsSUNlLEdDZSx0cnVlKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxKQ2UpLHJEZSksJ0dyYXBoIFdyYXBwaW5nIFN0cmF0ZWd5JyksXCJGb3IgY2VydGFpbiBncmFwaHMgYW5kIGNlcnRhaW4gcHJlc2NyaWJlZCBkcmF3aW5nIGFyZWFzIGl0IG1heSBiZSBkZXNpcmFibGUgdG8gc3BsaXQgdGhlIGxhaWQgb3V0IGdyYXBoIGludG8gY2h1bmtzIHRoYXQgYXJlIHBsYWNlZCBzaWRlIGJ5IHNpZGUuIFRoZSBlZGdlcyB0aGF0IGNvbm5lY3QgZGlmZmVyZW50IGNodW5rcyBhcmUgJ3dyYXBwZWQnIGFyb3VuZCBmcm9tIHRoZSBlbmQgb2Ygb25lIGNodW5rIHRvIHRoZSBzdGFydCBvZiB0aGUgb3RoZXIgY2h1bmsuIFRoZSBwb2ludHMgYmV0d2VlbiB0aGUgY2h1bmtzIGFyZSByZWZlcnJlZCB0byBhcyAnY3V0cycuXCIpLEd6YyksZWlkKSxFWCkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsS0NlKSxyRGUpLCdBZGRpdGlvbmFsIFdyYXBwZWQgRWRnZXMgU3BhY2luZycpLCdUbyB2aXN1YWxseSBzZXBhcmF0ZSBlZGdlcyB0aGF0IGFyZSB3cmFwcGVkIGZyb20gcmVndWxhcmx5IHJvdXRlZCBlZGdlcyBhbiBhZGRpdGlvbmFsIHNwYWNpbmcgdmFsdWUgY2FuIGJlIHNwZWNpZmllZCBpbiBmb3JtIG9mIHRoaXMgbGF5b3V0IG9wdGlvbi4gVGhlIHNwYWNpbmcgaXMgYWRkZWQgdG8gdGhlIHJlZ3VsYXIgZWRnZU5vZGUgc3BhY2luZy4nKSwxMCksZGlkKSxWSSkseHNiKFdoZCkpKSk7emdkKGEsS0NlLEpDZSxsemMpO3pnZChhLEtDZSxKQ2UsbXpjKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxMQ2UpLHJEZSksJ0NvcnJlY3Rpb24gRmFjdG9yIGZvciBXcmFwcGluZycpLFwiQXQgdGltZXMgYW5kIGZvciBjZXJ0YWluIHR5cGVzIG9mIGdyYXBocyB0aGUgZXhlY3V0ZWQgd3JhcHBpbmcgbWF5IHByb2R1Y2UgcmVzdWx0cyB0aGF0IGFyZSBjb25zaXN0ZW50bHkgYmlhc2VkIGluIHRoZSBzYW1lIGZhc2hpb246IGVpdGhlciB3cmFwcGluZyB0byBvZnRlbiBvciB0byByYXJlbHkuIFRoaXMgZmFjdG9yIGNhbiBiZSB1c2VkIHRvIGNvcnJlY3QgdGhlIGJpYXMuIEludGVybmFsbHksIGl0IGlzIHNpbXBseSBtdWx0aXBsaWVkIHdpdGggdGhlICdhc3BlY3QgcmF0aW8nIGxheW91dCBvcHRpb24uXCIpLDEpLGRpZCksVkkpLHhzYihXaGQpKSkpO3pnZChhLExDZSxKQ2Usb3pjKTt6Z2QoYSxMQ2UsSkNlLHB6Yyk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsTUNlKSxzRGUpLCdDdXR0aW5nIFN0cmF0ZWd5JyksJ1RoZSBzdHJhdGVneSBieSB3aGljaCB0aGUgbGF5ZXIgaW5kZXhlcyBhcmUgZGV0ZXJtaW5lZCBhdCB3aGljaCB0aGUgbGF5ZXJpbmcgY3J1bWJsZXMgaW50byBjaHVua3MuJyksd3pjKSxlaWQpLGFYKSx4c2IoV2hkKSkpKTt6Z2QoYSxNQ2UsSkNlLHh6Yyk7emdkKGEsTUNlLEpDZSx5emMpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsTkNlKSxzRGUpLCdNYW51YWxseSBTcGVjaWZpZWQgQ3V0cycpLCdBbGxvd3MgdGhlIHVzZXIgdG8gc3BlY2lmeSBoZXIgb3duIGN1dHMgZm9yIGEgY2VydGFpbiBncmFwaC4nKSxoaWQpLFFLKSx4c2IoV2hkKSkpKTt6Z2QoYSxOQ2UsTUNlLHJ6Yyk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsT0NlKSwnd3JhcHBpbmcuY3V0dGluZy5tc2QnKSwnTVNEIEZyZWVkb20nKSwnVGhlIE1TRCBjdXR0aW5nIHN0cmF0ZWd5IHN0YXJ0cyB3aXRoIGFuIGluaXRpYWwgZ3Vlc3Mgb24gdGhlIG51bWJlciBvZiBjaHVua3MgdGhlIGdyYXBoIHNob3VsZCBiZSBzcGxpdCBpbnRvLiBUaGUgZnJlZWRvbSBzcGVjaWZpZXMgaG93IG11Y2ggdGhlIHN0cmF0ZWd5IG1heSBkZXZpYXRlIGZyb20gdGhpcyBndWVzcy4gRS5nLiBpZiBhbiBpbml0aWFsIG51bWJlciBvZiAzIGlzIGNvbXB1dGVkLCBhIGZyZWVkb20gb2YgMSBhbGxvd3MgMiwgMywgYW5kIDQgY3V0cy4nKSx0emMpLGdpZCksYkopLHhzYihXaGQpKSkpO3pnZChhLE9DZSxNQ2UsdXpjKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxQQ2UpLHREZSksJ1ZhbGlkaWZpY2F0aW9uIFN0cmF0ZWd5JyksJ1doZW4gd3JhcHBpbmcgZ3JhcGhzLCBvbmUgY2FuIHNwZWNpZnkgaW5kaWNlcyB0aGF0IGFyZSBub3QgYWxsb3dlZCBhcyBzcGxpdCBwb2ludHMuIFRoZSB2YWxpZGlmaWNhdGlvbiBzdHJhdGVneSBtYWtlcyBzdXJlIGV2ZXJ5IGNvbXB1dGVkIHNwbGl0IHBvaW50IGlzIGFsbG93ZWQuJyksTHpjKSxlaWQpLERYKSx4c2IoV2hkKSkpKTt6Z2QoYSxQQ2UsSkNlLE16Yyk7emdkKGEsUENlLEpDZSxOemMpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsUUNlKSx0RGUpLCdWYWxpZCBJbmRpY2VzIGZvciBXcmFwcGluZycpLG51bGwpLGhpZCksUUspLHhzYihXaGQpKSkpO3pnZChhLFFDZSxKQ2UsSXpjKTt6Z2QoYSxRQ2UsSkNlLEp6Yyk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsUkNlKSx1RGUpLCdJbXByb3ZlIEN1dHMnKSwnRm9yIGdlbmVyYWwgZ3JhcGhzIGl0IGlzIGltcG9ydGFudCB0aGF0IG5vdCB0b28gbWFueSBlZGdlcyB3cmFwIGJhY2t3YXJkcy4gVGh1cyBhIGNvbXByb21pc2UgYmV0d2VlbiBldmVubHktZGlzdHJpYnV0ZWQgY3V0cyBhbmQgdGhlIHRvdGFsIG51bWJlciBvZiBjdXQgZWRnZXMgaXMgc291Z2h0LicpLHRydWUpLGNpZCksUUkpLHhzYihXaGQpKSkpO3pnZChhLFJDZSxKQ2UsQ3pjKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxTQ2UpLHVEZSksJ0Rpc3RhbmNlIFBlbmFsdHkgV2hlbiBJbXByb3ZpbmcgQ3V0cycpLG51bGwpLDIpLGRpZCksVkkpLHhzYihXaGQpKSkpO3pnZChhLFNDZSxKQ2UsQXpjKTt6Z2QoYSxTQ2UsUkNlLHRydWUpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFRDZSksdURlKSwnSW1wcm92ZSBXcmFwcGVkIEVkZ2VzJyksJ1RoZSBpbml0aWFsIHdyYXBwaW5nIGlzIHBlcmZvcm1lZCBpbiBhIHZlcnkgc2ltcGxlIHdheS4gQXMgYSBjb25zZXF1ZW5jZSwgZWRnZXMgdGhhdCB3cmFwIGZyb20gb25lIGNodW5rIHRvIGFub3RoZXIgbWF5IGJlIHVubmVjZXNzYXJpbHkgbG9uZy4gQWN0aXZhdGluZyB0aGlzIG9wdGlvbiB0cmllcyB0byBzaG9ydGVuIHN1Y2ggZWRnZXMuJyksdHJ1ZSksY2lkKSxRSSkseHNiKFdoZCkpKSk7emdkKGEsVENlLEpDZSxFemMpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFVDZSksdkRlKSwnRWRnZSBMYWJlbCBTaWRlIFNlbGVjdGlvbicpLCdNZXRob2QgdG8gZGVjaWRlIG9uIGVkZ2UgbGFiZWwgc2lkZXMuJyksWXhjKSxlaWQpLGVYKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxWQ2UpLHZEZSksJ0VkZ2UgQ2VudGVyIExhYmVsIFBsYWNlbWVudCBTdHJhdGVneScpLCdEZXRlcm1pbmVzIGluIHdoaWNoIGxheWVyIGNlbnRlciBsYWJlbHMgb2YgbG9uZyBlZGdlcyBzaG91bGQgYmUgcGxhY2VkLicpLFd4YyksZWlkKSxaVykseXNiKFdoZCxjRChXQyhkMywxKSxqd2UsMTcwLDAsW1VoZF0pKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxXQ2UpLHdEZSksJ0NvbnNpZGVyIE1vZGVsIE9yZGVyJyksJ1ByZXNlcnZlcyB0aGUgb3JkZXIgb2Ygbm9kZXMgYW5kIGVkZ2VzIGluIHRoZSBtb2RlbCBmaWxlIGlmIHRoaXMgZG9lcyBub3QgbGVhZCB0byBhZGRpdGlvbmFsIGVkZ2UgY3Jvc3NpbmdzLiBEZXBlbmRpbmcgb24gdGhlIHN0cmF0ZWd5IHRoaXMgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSBzaW5jZSB0aGUgbm9kZSBhbmQgZWRnZSBvcmRlciBtaWdodCBiZSBjb25mbGljdGluZy4nKSx4eGMpLGVpZCksd1gpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFhDZSksd0RlKSwnQ29uc2lkZXIgUG9ydCBPcmRlcicpLCdJZiBkaXNhYmxlZCB0aGUgcG9ydCBvcmRlciBvZiBvdXRwdXQgcG9ydHMgaXMgZGVyaXZlZCBmcm9tIHRoZSBlZGdlIG9yZGVyIGFuZCBpbnB1dCBwb3J0cyBhcmUgb3JkZXJlZCBieSB0aGVpciBpbmNvbWluZyBjb25uZWN0aW9ucy4gSWYgZW5hYmxlZCBhbGwgcG9ydHMgYXJlIG9yZGVyZWQgYnkgdGhlIHBvcnQgbW9kZWwgb3JkZXIuJyksZmFsc2UpLGNpZCksUUkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFlDZSksd0RlKSwnTm8gTW9kZWwgT3JkZXInKSwnU2V0IG9uIGEgbm9kZSB0byBub3Qgc2V0IGEgbW9kZWwgb3JkZXIgZm9yIHRoaXMgbm9kZSBldmVuIHRob3VnaCBpdCBpcyBhIHJlYWwgbm9kZS4nKSxmYWxzZSksY2lkKSxRSSkseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsWkNlKSx3RGUpLCdDb25zaWRlciBNb2RlbCBPcmRlciBmb3IgQ29tcG9uZW50cycpLCdJZiBzZXQgdG8gTk9ORSB0aGUgdXN1YWwgb3JkZXJpbmcgc3RyYXRlZ3kgKGJ5IGN1bXVsYXRpdmUgbm9kZSBwcmlvcml0eSBhbmQgc2l6ZSBvZiBub2RlcykgaXMgdXNlZC4gSU5TSURFX1BPUlRfU0lERVMgb3JkZXJzIHRoZSBjb21wb25lbnRzIHdpdGggZXh0ZXJuYWwgcG9ydHMgb25seSBpbnNpZGUgdGhlIGdyb3VwcyB3aXRoIHRoZSBzYW1lIHBvcnQgc2lkZS4gRk9SQ0VfTU9ERUxfT1JERVIgZW5mb3JjZXMgdGhlIG1vZGUgb3JkZXIgb24gY29tcG9uZW50cy4gVGhpcyBvcHRpb24gbWlnaHQgcHJvZHVjZSBiYWQgYWxpZ25tZW50cyBhbmQgc3ViIG9wdGltYWwgZHJhd2luZ3MgaW4gdGVybXMgb2YgdXNlZCBhcmVhIHNpbmNlIHRoZSBvcmRlcmluZyBzaG91bGQgYmUgcmVzcGVjdGVkLicpLHB4YyksZWlkKSxDUSkseHNiKFdoZCkpKSk7emdkKGEsWkNlLGNBZSxudWxsKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCwkQ2UpLHdEZSksJ0xvbmcgRWRnZSBPcmRlcmluZyBTdHJhdGVneScpLCdJbmRpY2F0ZXMgd2hldGhlciBsb25nIGVkZ2VzIGFyZSBzb3J0ZWQgdW5kZXIsIG92ZXIsIG9yIGVxdWFsIHRvIG5vZGVzIHRoYXQgaGF2ZSBubyBjb25uZWN0aW9uIHRvIGEgcHJldmlvdXMgbGF5ZXIgaW4gYSBsZWZ0LXRvLXJpZ2h0IG9yIHJpZ2h0LXRvLWxlZnQgbGF5b3V0LiBVbmRlciBhbmQgb3ZlciBjaGFuZ2VzIHRvIHJpZ2h0IGFuZCBsZWZ0IGluIGEgdmVydGljYWwgbGF5b3V0LicpLHR4YyksZWlkKSxzWCkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsX0NlKSx3RGUpLCdDcm9zc2luZyBDb3VudGVyIE5vZGUgT3JkZXIgSW5mbHVlbmNlJyksJ0luZGljYXRlcyB3aXRoIHdoYXQgcGVyY2VudGFnZSAoMSBmb3IgMTAwJSkgdmlvbGF0aW9ucyBvZiB0aGUgbm9kZSBtb2RlbCBvcmRlciBhcmUgd2VpZ2h0ZWQgYWdhaW5zdCB0aGUgY3Jvc3NpbmdzIGUuZy4gYSB2YWx1ZSBvZiAwLjUgbWVhbnMgdHdvIG1vZGVsIG9yZGVyIHZpb2xhdGlvbnMgYXJlIGFzIGltcG9ydGFudCBhcyBvbiBlZGdlIGNyb3NzaW5nLiBUaGlzIGFsbG93cyBzb21lIGVkZ2UgY3Jvc3NpbmdzIGluIGZhdm9yIG9mIHByZXNlcnZpbmcgdGhlIG1vZGVsIG9yZGVyLiBJdCBpcyBhZHZpc2VkIHRvIHNldCB0aGlzIHZhbHVlIHRvIGEgdmVyeSBzbWFsbCBwb3NpdGl2ZSB2YWx1ZSAoZS5nLiAwLjAwMSkgdG8gaGF2ZSBtaW5pbWFsIGNyb3NzaW5nIGFuZCBhIG9wdGltYWwgbm9kZSBvcmRlci4gRGVmYXVsdHMgdG8gbm8gaW5mbHVlbmNlICgwKS4nKSwwKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTt6Z2QoYSxfQ2UsV0NlLG51bGwpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGFEZSksd0RlKSwnQ3Jvc3NpbmcgQ291bnRlciBQb3J0IE9yZGVyIEluZmx1ZW5jZScpLCdJbmRpY2F0ZXMgd2l0aCB3aGF0IHBlcmNlbnRhZ2UgKDEgZm9yIDEwMCUpIHZpb2xhdGlvbnMgb2YgdGhlIHBvcnQgbW9kZWwgb3JkZXIgYXJlIHdlaWdodGVkIGFnYWluc3QgdGhlIGNyb3NzaW5ncyBlLmcuIGEgdmFsdWUgb2YgMC41IG1lYW5zIHR3byBtb2RlbCBvcmRlciB2aW9sYXRpb25zIGFyZSBhcyBpbXBvcnRhbnQgYXMgb24gZWRnZSBjcm9zc2luZy4gVGhpcyBhbGxvd3Mgc29tZSBlZGdlIGNyb3NzaW5ncyBpbiBmYXZvciBvZiBwcmVzZXJ2aW5nIHRoZSBtb2RlbCBvcmRlci4gSXQgaXMgYWR2aXNlZCB0byBzZXQgdGhpcyB2YWx1ZSB0byBhIHZlcnkgc21hbGwgcG9zaXRpdmUgdmFsdWUgKGUuZy4gMC4wMDEpIHRvIGhhdmUgbWluaW1hbCBjcm9zc2luZyBhbmQgYSBvcHRpbWFsIHBvcnQgb3JkZXIuIERlZmF1bHRzIHRvIG5vIGluZmx1ZW5jZSAoMCkuJyksMCksZGlkKSxWSSkseHNiKFdoZCkpKSk7emdkKGEsYURlLFdDZSxudWxsKTt6Q2MoKG5ldyBBQ2MsYSkpfTt2YXIgaXhjLGp4YyxreGMsbHhjLG14YyxueGMsb3hjLHB4YyxxeGMscnhjLHN4Yyx0eGMsdXhjLHZ4Yyx3eGMseHhjLHl4Yyx6eGMsQXhjLEJ4YyxDeGMsRHhjLEV4YyxGeGMsR3hjLEh4YyxJeGMsSnhjLEt4YyxMeGMsTXhjLE54YyxPeGMsUHhjLFF4YyxSeGMsU3hjLFR4YyxVeGMsVnhjLFd4YyxYeGMsWXhjLFp4YywkeGMsX3hjLGF5YyxieWMsY3ljLGR5YyxleWMsZnljLGd5YyxoeWMsaXljLGp5YyxreWMsbHljLG15YyxueWMsb3ljLHB5YyxxeWMscnljLHN5Yyx0eWMsdXljLHZ5Yyx3eWMseHljLHl5Yyx6eWMsQXljLEJ5YyxDeWMsRHljLEV5YyxGeWMsR3ljLEh5YyxJeWMsSnljLEt5YyxMeWMsTXljLE55YyxPeWMsUHljLFF5YyxSeWMsU3ljLFR5YyxVeWMsVnljLFd5YyxYeWMsWXljLFp5YywkeWMsX3ljLGF6YyxiemMsY3pjLGR6YyxlemMsZnpjLGd6YyxoemMsaXpjLGp6YyxremMsbHpjLG16YyxuemMsb3pjLHB6YyxxemMscnpjLHN6Yyx0emMsdXpjLHZ6Yyx3emMseHpjLHl6Yyx6emMsQXpjLEJ6YyxDemMsRHpjLEV6YyxGemMsR3pjLEh6YyxJemMsSnpjLEt6YyxMemMsTXpjLE56Yzt2YXIgblg9c2ZiKEFCZSwnTGF5ZXJlZE1ldGFEYXRhUHJvdmlkZXInLDg1OSk7ZmViKDk5OCwxLEV5ZSxBQ2MpO18uaGY9ZnVuY3Rpb24gQkNjKGEpe3pDYyhhKX07dmFyIFJ6YyxTemMsVHpjLFV6YyxWemMsV3pjLFh6YyxZemMsWnpjLCR6YyxfemMsYUFjLGJBYyxjQWMsZEFjLGVBYyxmQWMsZ0FjLGhBYyxpQWMsakFjLGtBYyxsQWMsbUFjLG5BYyxvQWMscEFjLHFBYyxyQWMsc0FjLHRBYyx1QWMsdkFjLHdBYyx4QWMseUFjLHpBYyxBQWMsQkFjLENBYyxEQWMsRUFjLEZBYyxHQWMsSEFjLElBYyxKQWMsS0FjLExBYyxNQWMsTkFjLE9BYyxQQWMsUUFjLFJBYyxTQWMsVEFjLFVBYyxWQWMsV0FjLFhBYyxZQWMsWkFjLCRBYyxfQWMsYUJjLGJCYyxjQmMsZEJjLGVCYyxmQmMsZ0JjLGhCYyxpQmMsakJjLGtCYyxsQmMsbUJjLG5CYyxvQmMscEJjLHFCYyxyQmMsc0JjLHRCYyx1QmMsdkJjLHdCYyx4QmMseUJjLHpCYyxBQmMsQkJjLENCYyxEQmMsRUJjLEZCYyxHQmMsSEJjLElCYyxKQmMsS0JjLExCYyxNQmMsTkJjLE9CYyxQQmMsUUJjLFJCYyxTQmMsVEJjLFVCYyxWQmMsV0JjLFhCYyxZQmMsWkJjLCRCYyxfQmMsYUNjLGJDYyxjQ2MsZENjLGVDYyxmQ2MsZ0NjLGhDYyxpQ2MsakNjLGtDYyxsQ2MsbUNjLG5DYyxvQ2MscENjLHFDYyxyQ2Msc0NjLHRDYyx1Q2MsdkNjLHdDYyx4Q2M7dmFyIHBYPXNmYihBQmUsJ0xheWVyZWRPcHRpb25zJyw5OTgpO2ZlYig5OTksMSx7fSxDQ2MpO18uc2Y9ZnVuY3Rpb24gRENjKCl7dmFyIGE7cmV0dXJuIGE9bmV3IGxYYixhfTtfLnRmPWZ1bmN0aW9uIEVDYyhhKXt9O3ZhciBvWD1zZmIoQUJlLCdMYXllcmVkT3B0aW9ucy9MYXllcmVkRmFjdG9yeScsOTk5KTtmZWIoMTM5MSwxLHt9KTtfLmE9MDt2YXIgRkNjO3ZhciBiND1zZmIoakVlLCdFbGtTcGFjaW5ncy9BYnN0cmFjdFNwYWNpbmdzQnVpbGRlcicsMTM5MSk7ZmViKDc5MiwxMzkxLHt9LFJDYyk7dmFyIE9DYyxQQ2M7dmFyIHFYPXNmYihBQmUsJ0xheWVyZWRTcGFjaW5ncy9MYXllcmVkU3BhY2luZ3NCdWlsZGVyJyw3OTIpO2ZlYigyNjUsMjIsezM6MSwzNDoxLDIyOjEsMjY1OjEsMTg4OjEsMTk2OjF9LGJEYyk7Xy5kZz1mdW5jdGlvbiBkRGMoKXtyZXR1cm4gYURjKHRoaXMpfTtfLnFnPWZ1bmN0aW9uIGNEYygpe3JldHVybiBhRGModGhpcyl9O3ZhciBTQ2MsVENjLFVDYyxWQ2MsV0NjLFhDYyxZQ2MsWkNjLCRDYzt2YXIgclg9dGZiKEFCZSwnTGF5ZXJpbmdTdHJhdGVneScsMjY1LFdJLGZEYyxlRGMpO3ZhciBnRGM7ZmViKDM5MCwyMix7MzoxLDM0OjEsMjI6MSwzOTA6MX0sbkRjKTt2YXIgaURjLGpEYyxrRGM7dmFyIHNYPXRmYihBQmUsJ0xvbmdFZGdlT3JkZXJpbmdTdHJhdGVneScsMzkwLFdJLHBEYyxvRGMpO3ZhciBxRGM7ZmViKDIwMywyMix7MzoxLDM0OjEsMjI6MSwyMDM6MX0seURjKTt2YXIgc0RjLHREYyx1RGMsdkRjO3ZhciB0WD10ZmIoQUJlLCdOb2RlRmxleGliaWxpdHknLDIwMyxXSSxCRGMsQURjKTt2YXIgQ0RjO2ZlYigzMjMsMjIsezM6MSwzNDoxLDIyOjEsMzIzOjEsMTg4OjEsMTk2OjF9LExEYyk7Xy5kZz1mdW5jdGlvbiBORGMoKXtyZXR1cm4gS0RjKHRoaXMpfTtfLnFnPWZ1bmN0aW9uIE1EYygpe3JldHVybiBLRGModGhpcyl9O3ZhciBFRGMsRkRjLEdEYyxIRGMsSURjO3ZhciB1WD10ZmIoQUJlLCdOb2RlUGxhY2VtZW50U3RyYXRlZ3knLDMyMyxXSSxQRGMsT0RjKTt2YXIgUURjO2ZlYigyNDMsMjIsezM6MSwzNDoxLDIyOjEsMjQzOjF9LGJFYyk7dmFyIFNEYyxURGMsVURjLFZEYyxXRGMsWERjLFlEYyxaRGMsJERjLF9EYzt2YXIgdlg9dGZiKEFCZSwnTm9kZVByb21vdGlvblN0cmF0ZWd5JywyNDMsV0ksZEVjLGNFYyk7dmFyIGVFYztmZWIoMjg0LDIyLHszOjEsMzQ6MSwyMjoxLDI4NDoxfSxsRWMpO3ZhciBnRWMsaEVjLGlFYyxqRWM7dmFyIHdYPXRmYihBQmUsJ09yZGVyaW5nU3RyYXRlZ3knLDI4NCxXSSxuRWMsbUVjKTt2YXIgb0VjO2ZlYig0MzAsMjIsezM6MSwzNDoxLDIyOjEsNDMwOjF9LHRFYyk7dmFyIHFFYyxyRWM7dmFyIHhYPXRmYihBQmUsJ1BvcnRTb3J0aW5nU3RyYXRlZ3knLDQzMCxXSSx2RWMsdUVjKTt2YXIgd0VjO2ZlYig0NjMsMjIsezM6MSwzNDoxLDIyOjEsNDYzOjF9LENFYyk7dmFyIHlFYyx6RWMsQUVjO3ZhciB5WD10ZmIoQUJlLCdQb3J0VHlwZScsNDYzLFdJLEVFYyxERWMpO3ZhciBGRWM7ZmViKDM4NywyMix7MzoxLDM0OjEsMjI6MSwzODc6MX0sTEVjKTt2YXIgSEVjLElFYyxKRWM7dmFyIHpYPXRmYihBQmUsJ1NlbGZMb29wRGlzdHJpYnV0aW9uU3RyYXRlZ3knLDM4NyxXSSxORWMsTUVjKTt2YXIgT0VjO2ZlYigzNDksMjIsezM6MSwzNDoxLDIyOjEsMzQ5OjF9LFVFYyk7dmFyIFFFYyxSRWMsU0VjO3ZhciBBWD10ZmIoQUJlLCdTZWxmTG9vcE9yZGVyaW5nU3RyYXRlZ3knLDM0OSxXSSxXRWMsVkVjKTt2YXIgWEVjO2ZlYigzMTIsMSx7MzEyOjF9LGdGYyk7dmFyIEJYPXNmYihBQmUsJ1NwYWNpbmdzJywzMTIpO2ZlYigzNTAsMjIsezM6MSwzNDoxLDIyOjEsMzUwOjF9LG1GYyk7dmFyIGlGYyxqRmMsa0ZjO3ZhciBDWD10ZmIoQUJlLCdTcGxpbmVSb3V0aW5nTW9kZScsMzUwLFdJLG9GYyxuRmMpO3ZhciBwRmM7ZmViKDM1MiwyMix7MzoxLDM0OjEsMjI6MSwzNTI6MX0sdkZjKTt2YXIgckZjLHNGYyx0RmM7dmFyIERYPXRmYihBQmUsJ1ZhbGlkaWZ5U3RyYXRlZ3knLDM1MixXSSx4RmMsd0ZjKTt2YXIgeUZjO2ZlYigzODgsMjIsezM6MSwzNDoxLDIyOjEsMzg4OjF9LEVGYyk7dmFyIEFGYyxCRmMsQ0ZjO3ZhciBFWD10ZmIoQUJlLCdXcmFwcGluZ1N0cmF0ZWd5JywzODgsV0ksR0ZjLEZGYyk7dmFyIEhGYztmZWIoMTM5OCwxLG5FZSxORmMpO18ucmc9ZnVuY3Rpb24gT0ZjKGEpe3JldHVybiBSRChhLDM2KSxKRmN9O18uS2Y9ZnVuY3Rpb24gUEZjKGEsYil7TUZjKHRoaXMsUkQoYSwzNiksYil9O3ZhciBKRmM7dmFyIEZYPXNmYihvRWUsJ0RlcHRoRmlyc3RDeWNsZUJyZWFrZXInLDEzOTgpO2ZlYig3OTMsMSxuRWUsVUZjKTtfLnJnPWZ1bmN0aW9uIFdGYyhhKXtyZXR1cm4gUkQoYSwzNiksUUZjfTtfLktmPWZ1bmN0aW9uIFhGYyhhLGIpe1NGYyh0aGlzLFJEKGEsMzYpLGIpfTtfLnNnPWZ1bmN0aW9uIFZGYyhhKXtyZXR1cm4gUkQoVm1iKGEsSndiKHRoaXMuZCxhLmMubGVuZ3RoKSksMTApfTt2YXIgUUZjO3ZhciBHWD1zZmIob0VlLCdHcmVlZHlDeWNsZUJyZWFrZXInLDc5Myk7ZmViKDE0MDEsNzkzLG5FZSxZRmMpO18uc2c9ZnVuY3Rpb24gWkZjKGEpe3ZhciBiLGMsZCxlO2U9bnVsbDtiPWx2ZTtmb3IoZD1uZXcgQW5iKGEpO2QuYTxkLmMuYy5sZW5ndGg7KXtjPVJEKHluYihkKSwxMCk7aWYoblFiKGMsKFl3YygpLHp3YykpJiZSRChtUWIoYyx6d2MpLDE3KS5hPGIpe2I9UkQobVFiKGMsendjKSwxNykuYTtlPWN9fWlmKCFlKXtyZXR1cm4gUkQoVm1iKGEsSndiKHRoaXMuZCxhLmMubGVuZ3RoKSksMTApfXJldHVybiBlfTt2YXIgSFg9c2ZiKG9FZSwnR3JlZWR5TW9kZWxPcmRlckN5Y2xlQnJlYWtlcicsMTQwMSk7ZmViKDEzOTksMSxuRWUsY0djKTtfLnJnPWZ1bmN0aW9uIGRHYyhhKXtyZXR1cm4gUkQoYSwzNiksJEZjfTtfLktmPWZ1bmN0aW9uIGVHYyhhLGIpe2JHYyh0aGlzLFJEKGEsMzYpLGIpfTt2YXIgJEZjO3ZhciBJWD1zZmIob0VlLCdJbnRlcmFjdGl2ZUN5Y2xlQnJlYWtlcicsMTM5OSk7ZmViKDE0MDAsMSxuRWUsakdjKTtfLnJnPWZ1bmN0aW9uIGtHYyhhKXtyZXR1cm4gUkQoYSwzNiksZkdjfTtfLktmPWZ1bmN0aW9uIGxHYyhhLGIpe2lHYyh0aGlzLFJEKGEsMzYpLGIpfTtfLmE9MDtfLmI9MDt2YXIgZkdjO3ZhciBKWD1zZmIob0VlLCdNb2RlbE9yZGVyQ3ljbGVCcmVha2VyJywxNDAwKTtmZWIoMTQxMywxLG5FZSxwR2MpO18ucmc9ZnVuY3Rpb24gcUdjKGEpe3JldHVybiBSRChhLDM2KSxtR2N9O18uS2Y9ZnVuY3Rpb24gc0djKGEsYil7b0djKHRoaXMsUkQoYSwzNiksYil9O3ZhciBtR2M7dmFyIExYPXNmYihwRWUsJ0JyZWFkdGhGaXJzdE1vZGVsT3JkZXJMYXllcmVyJywxNDEzKTtmZWIoMTQxNCwxLGZ5ZSx0R2MpO18uTmU9ZnVuY3Rpb24gdUdjKGEsYil7cmV0dXJuIHJHYyhSRChhLDEwKSxSRChiLDEwKSl9O18uRmI9ZnVuY3Rpb24gdkdjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiB3R2MoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIEtYPXNmYihwRWUsJ0JyZWFkdGhGaXJzdE1vZGVsT3JkZXJMYXllcmVyL2xhbWJkYSQwJFR5cGUnLDE0MTQpO2ZlYigxNDA0LDEsbkVlLEdHYyk7Xy5yZz1mdW5jdGlvbiBIR2MoYSl7cmV0dXJuIFJEKGEsMzYpLHhHY307Xy5LZj1mdW5jdGlvbiBJR2MoYSxiKXtFR2ModGhpcyxSRChhLDM2KSxiKX07dmFyIHhHYzt2YXIgT1g9c2ZiKHBFZSwnQ29mZm1hbkdyYWhhbUxheWVyZXInLDE0MDQpO2ZlYigxNDA1LDEsZnllLEpHYyk7Xy5OZT1mdW5jdGlvbiBLR2MoYSxiKXtyZXR1cm4gQUdjKHRoaXMuYSxSRChhLDEwKSxSRChiLDEwKSl9O18uRmI9ZnVuY3Rpb24gTEdjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBNR2MoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIE1YPXNmYihwRWUsJ0NvZmZtYW5HcmFoYW1MYXllcmVyLzBtZXRob2RyZWYkY29tcGFyZU5vZGVzSW5Ub3BvJFR5cGUnLDE0MDUpO2ZlYigxNDA2LDEsZnllLE5HYyk7Xy5OZT1mdW5jdGlvbiBPR2MoYSxiKXtyZXR1cm4gREdjKHRoaXMuYSxSRChhLDEwKSxSRChiLDEwKSl9O18uRmI9ZnVuY3Rpb24gUEdjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBRR2MoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIE5YPXNmYihwRWUsJ0NvZmZtYW5HcmFoYW1MYXllcmVyL2xhbWJkYSQxJFR5cGUnLDE0MDYpO2ZlYigxNDE1LDEsbkVlLFlHYyk7Xy5yZz1mdW5jdGlvbiBaR2MoYSl7cmV0dXJuIFJEKGEsMzYpLFJHY307Xy5LZj1mdW5jdGlvbiBfR2MoYSxiKXtYR2ModGhpcyxSRChhLDM2KSxiKX07Xy5jPTA7Xy5lPTA7dmFyIFJHYzt2YXIgUVg9c2ZiKHBFZSwnRGVwdGhGaXJzdE1vZGVsT3JkZXJMYXllcmVyJywxNDE1KTtmZWIoMTQxNiwxLGZ5ZSxhSGMpO18uTmU9ZnVuY3Rpb24gYkhjKGEsYil7cmV0dXJuICRHYyhSRChhLDEwKSxSRChiLDEwKSl9O18uRmI9ZnVuY3Rpb24gY0hjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBkSGMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFBYPXNmYihwRWUsJ0RlcHRoRmlyc3RNb2RlbE9yZGVyTGF5ZXJlci9sYW1iZGEkMCRUeXBlJywxNDE2KTtmZWIoMTQwNywxLG5FZSxnSGMpO18ucmc9ZnVuY3Rpb24gaEhjKGEpe3JldHVybiBSRChhLDM2KSxwZmQocGZkKHBmZChuZXcgdWZkLChzWGIoKSxuWGIpLChoY2MoKSxFYmMpKSxvWGIsTmJjKSxwWGIsTWJjKX07Xy5LZj1mdW5jdGlvbiBpSGMoYSxiKXtmSGMoUkQoYSwzNiksYil9O3ZhciBTWD1zZmIocEVlLCdJbnRlcmFjdGl2ZUxheWVyZXInLDE0MDcpO2ZlYig1NzgsMSx7NTc4OjF9LGpIYyk7Xy5hPTA7Xy5jPTA7dmFyIFJYPXNmYihwRWUsJ0ludGVyYWN0aXZlTGF5ZXJlci9MYXllclNwYW4nLDU3OCk7ZmViKDE0MDMsMSxuRWUscEhjKTtfLnJnPWZ1bmN0aW9uIHFIYyhhKXtyZXR1cm4gUkQoYSwzNiksa0hjfTtfLktmPWZ1bmN0aW9uIHJIYyhhLGIpe21IYyh0aGlzLFJEKGEsMzYpLGIpfTt2YXIga0hjO3ZhciBUWD1zZmIocEVlLCdMb25nZXN0UGF0aExheWVyZXInLDE0MDMpO2ZlYigxNDEyLDEsbkVlLHhIYyk7Xy5yZz1mdW5jdGlvbiB5SGMoYSl7cmV0dXJuIFJEKGEsMzYpLHNIY307Xy5LZj1mdW5jdGlvbiB6SGMoYSxiKXt1SGModGhpcyxSRChhLDM2KSxiKX07dmFyIHNIYzt2YXIgVVg9c2ZiKHBFZSwnTG9uZ2VzdFBhdGhTb3VyY2VMYXllcmVyJywxNDEyKTtmZWIoMTQxMCwxLG5FZSxJSGMpO18ucmc9ZnVuY3Rpb24gSkhjKGEpe3JldHVybiBSRChhLDM2KSxwZmQocGZkKHBmZChuZXcgdWZkLChzWGIoKSxuWGIpLChoY2MoKSxvYmMpKSxvWGIsTmJjKSxwWGIsTWJjKX07Xy5LZj1mdW5jdGlvbiBLSGMoYSxiKXtHSGModGhpcyxSRChhLDM2KSxiKX07Xy5hPTA7Xy5iPTA7Xy5kPTA7dmFyIEFIYyxCSGM7dmFyIFdYPXNmYihwRWUsJ01pbldpZHRoTGF5ZXJlcicsMTQxMCk7ZmViKDE0MTEsMSxmeWUsTUhjKTtfLk5lPWZ1bmN0aW9uIE5IYyhhLGIpe3JldHVybiBMSGModGhpcyxSRChhLDEwKSxSRChiLDEwKSl9O18uRmI9ZnVuY3Rpb24gT0hjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBQSGMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFZYPXNmYihwRWUsJ01pbldpZHRoTGF5ZXJlci9NaW5PdXRnb2luZ0VkZ2VzQ29tcGFyYXRvcicsMTQxMSk7ZmViKDE0MDIsMSxuRWUsWEhjKTtfLnJnPWZ1bmN0aW9uIFlIYyhhKXtyZXR1cm4gUkQoYSwzNiksUUhjfTtfLktmPWZ1bmN0aW9uIFpIYyhhLGIpe1dIYyh0aGlzLFJEKGEsMzYpLGIpfTt2YXIgUUhjO3ZhciBYWD1zZmIocEVlLCdOZXR3b3JrU2ltcGxleExheWVyZXInLDE0MDIpO2ZlYigxNDA4LDEsbkVlLGpJYyk7Xy5yZz1mdW5jdGlvbiBrSWMoYSl7cmV0dXJuIFJEKGEsMzYpLHBmZChwZmQocGZkKG5ldyB1ZmQsKHNYYigpLG5YYiksKGhjYygpLG9iYykpLG9YYixOYmMpLHBYYixNYmMpfTtfLktmPWZ1bmN0aW9uIGxJYyhhLGIpe2dJYyh0aGlzLFJEKGEsMzYpLGIpfTtfLmQ9MDtfLmY9MDtfLmc9MDtfLmk9MDtfLnM9MDtfLnQ9MDtfLnU9MDt2YXIgWlg9c2ZiKHBFZSwnU3RyZXRjaFdpZHRoTGF5ZXJlcicsMTQwOCk7ZmViKDE0MDksMSxmeWUsbkljKTtfLk5lPWZ1bmN0aW9uIG9JYyhhLGIpe3JldHVybiBtSWMoUkQoYSwxMCksUkQoYiwxMCkpfTtfLkZiPWZ1bmN0aW9uIHBJYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gcUljKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBZWD1zZmIocEVlLCdTdHJldGNoV2lkdGhMYXllcmVyLzEnLDE0MDkpO2ZlYig0MTMsMSxxRWUpO18uZ2c9ZnVuY3Rpb24gRkljKGEsYixjLGQsZSxmKXt9O18udWc9ZnVuY3Rpb24gREljKGEsYixjKXtyZXR1cm4gd0ljKHRoaXMsYSxiLGMpfTtfLmZnPWZ1bmN0aW9uIEVJYygpe3RoaXMuZz0kQyhqRSxyRWUsMjgsdGhpcy5kLDE1LDEpO3RoaXMuZj0kQyhqRSxyRWUsMjgsdGhpcy5kLDE1LDEpfTtfLmhnPWZ1bmN0aW9uIEdJYyhhLGIpe3RoaXMuZVthXT0kQyhrRSxQd2UsMjgsYlthXS5sZW5ndGgsMTUsMSl9O18uaWc9ZnVuY3Rpb24gSEljKGEsYixjKXt2YXIgZDtkPWNbYV1bYl07ZC5wPWI7dGhpcy5lW2FdW2JdPWJ9O18uamc9ZnVuY3Rpb24gSUljKGEsYixjLGQpe1JEKFZtYihkW2FdW2JdLmosYyksMTIpLnA9dGhpcy5kKyt9O18uYj0wO18uYz0wO18uZD0wO3ZhciBfWD1zZmIoc0VlLCdBYnN0cmFjdEJhcnljZW50ZXJQb3J0RGlzdHJpYnV0b3InLDQxMyk7ZmViKDE2OTgsMSxmeWUsSkljKTtfLk5lPWZ1bmN0aW9uIEtJYyhhLGIpe3JldHVybiB6SWModGhpcy5hLFJEKGEsMTIpLFJEKGIsMTIpKX07Xy5GYj1mdW5jdGlvbiBMSWMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIE1JYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgJFg9c2ZiKHNFZSwnQWJzdHJhY3RCYXJ5Y2VudGVyUG9ydERpc3RyaWJ1dG9yL2xhbWJkYSQwJFR5cGUnLDE2OTgpO2ZlYig4MzIsMSx1QmUsVUljKTtfLmdnPWZ1bmN0aW9uIFhJYyhhLGIsYyxkLGUsZil7fTtfLmlnPWZ1bmN0aW9uIFpJYyhhLGIsYyl7fTtfLmpnPWZ1bmN0aW9uICRJYyhhLGIsYyxkKXt9O18uZWc9ZnVuY3Rpb24gVkljKCl7cmV0dXJuIGZhbHNlfTtfLmZnPWZ1bmN0aW9uIFdJYygpe3RoaXMuYz10aGlzLmUuYTt0aGlzLmc9dGhpcy5mLmd9O18uaGc9ZnVuY3Rpb24gWUljKGEsYil7YlthXVswXS5jLnA9YX07Xy5rZz1mdW5jdGlvbiBfSWMoKXtyZXR1cm4gZmFsc2V9O18udmc9ZnVuY3Rpb24gYUpjKGEsYixjLGQpe2lmKGMpe1JJYyh0aGlzLGEpfWVsc2V7T0ljKHRoaXMsYSxkKTtQSWModGhpcyxhLGIpfWlmKGEuYy5sZW5ndGg+MSl7SGViKFREKG1RYihZMmIoKHRGYigwLGEuYy5sZW5ndGgpLFJEKGEuY1swXSwxMCkpKSwoeUNjKCksZUFjKSkpKT93TGMoYSx0aGlzLmQsUkQodGhpcyw2NjkpKTooeW9iKCksX21iKGEsdGhpcy5kKSk7bkpjKHRoaXMuZSxhKX19O18ubGc9ZnVuY3Rpb24gYkpjKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaixrO2lmKGIhPVNJYyhjLGEubGVuZ3RoKSl7Zj1hW2ItKGM/MTotMSldO3NJYyh0aGlzLmYsZixjPyhCRWMoKSx6RWMpOihCRWMoKSx5RWMpKX1lPWFbYl1bMF07az0hZHx8ZS5rPT0ocjNiKCksbTNiKTtqPWR2KGFbYl0pO3RoaXMudmcoaixrLGZhbHNlLGMpO2c9MDtmb3IoaT1uZXcgQW5iKGopO2kuYTxpLmMuYy5sZW5ndGg7KXtoPVJEKHluYihpKSwxMCk7YVtiXVtnKytdPWh9cmV0dXJuIGZhbHNlfTtfLm1nPWZ1bmN0aW9uIGNKYyhhLGIpe3ZhciBjLGQsZSxmLGc7Zz1TSWMoYixhLmxlbmd0aCk7Zj1kdihhW2ddKTt0aGlzLnZnKGYsZmFsc2UsdHJ1ZSxiKTtjPTA7Zm9yKGU9bmV3IEFuYihmKTtlLmE8ZS5jLmMubGVuZ3RoOyl7ZD1SRCh5bmIoZSksMTApO2FbZ11bYysrXT1kfXJldHVybiBmYWxzZX07dmFyIGNZPXNmYihzRWUsJ0JhcnljZW50ZXJIZXVyaXN0aWMnLDgzMik7ZmViKDY2NywxLHs2Njc6MX0sZEpjKTtfLkliPWZ1bmN0aW9uIGVKYygpe3JldHVybiAnQmFyeWNlbnRlclN0YXRlIFtub2RlPScrdGhpcy5jKycsIHN1bW1lZFdlaWdodD0nK3RoaXMuZCsnLCBkZWdyZWU9Jyt0aGlzLmIrJywgYmFyeWNlbnRlcj0nK3RoaXMuYSsnLCB2aXNpdGVkPScrdGhpcy5lKyddJ307Xy5iPTA7Xy5kPTA7Xy5lPWZhbHNlO3ZhciBhWT1zZmIoc0VlLCdCYXJ5Y2VudGVySGV1cmlzdGljL0JhcnljZW50ZXJTdGF0ZScsNjY3KTtmZWIoMTg2NSwxLGZ5ZSxmSmMpO18uTmU9ZnVuY3Rpb24gZ0pjKGEsYil7cmV0dXJuIFFJYyh0aGlzLmEsUkQoYSwxMCksUkQoYiwxMCkpfTtfLkZiPWZ1bmN0aW9uIGhKYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gaUpjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBiWT1zZmIoc0VlLCdCYXJ5Y2VudGVySGV1cmlzdGljL2xhbWJkYSQwJFR5cGUnLDE4NjUpO2ZlYig4MzEsMSx1QmUscUpjKTtfLmZnPWZ1bmN0aW9uIHJKYygpe307Xy5nZz1mdW5jdGlvbiBzSmMoYSxiLGMsZCxlLGYpe307Xy5qZz1mdW5jdGlvbiB2SmMoYSxiLGMsZCl7fTtfLmhnPWZ1bmN0aW9uIHRKYyhhLGIpe3RoaXMuYVthXT0kQyhhWSx7MzoxLDQ6MSw1OjEsMjExNzoxfSw2NjcsYlthXS5sZW5ndGgsMCwxKTt0aGlzLmJbYV09JEMoZFksezM6MSw0OjEsNToxLDIxMTg6MX0sMjM5LGJbYV0ubGVuZ3RoLDAsMSl9O18uaWc9ZnVuY3Rpb24gdUpjKGEsYixjKXttSmModGhpcyxjW2FdW2JdLHRydWUpfTtfLmM9ZmFsc2U7dmFyIGZZPXNmYihzRWUsJ0ZvcnN0ZXJDb25zdHJhaW50UmVzb2x2ZXInLDgzMSk7ZmViKDIzOSwxLHsyMzk6MX0seUpjLHpKYyk7Xy5JYj1mdW5jdGlvbiBBSmMoKXt2YXIgYSxiO2I9bmV3IGJpYjtiLmErPSdbJztmb3IoYT0wO2E8dGhpcy5kLmxlbmd0aDthKyspe1poYihiLGkzYih0aGlzLmRbYV0pKTtwSmModGhpcy5nLHRoaXMuZFswXSkuYSE9bnVsbCYmWmhiKFpoYigoYi5hKz0nPCcsYiksUGZiKHBKYyh0aGlzLmcsdGhpcy5kWzBdKS5hKSksJz4nKTthPHRoaXMuZC5sZW5ndGgtMSYmKGIuYSs9cHZlLGIpfXJldHVybiAoYi5hKz0nXScsYikuYX07Xy5hPTA7Xy5jPTA7Xy5mPTA7dmFyIGRZPXNmYihzRWUsJ0ZvcnN0ZXJDb25zdHJhaW50UmVzb2x2ZXIvQ29uc3RyYWludEdyb3VwJywyMzkpO2ZlYigxODYwLDEsUXZlLEJKYyk7Xy5DZD1mdW5jdGlvbiBDSmMoYSl7bUpjKHRoaXMuYSxSRChhLDEwKSxmYWxzZSl9O3ZhciBlWT1zZmIoc0VlLCdGb3JzdGVyQ29uc3RyYWludFJlc29sdmVyL2xhbWJkYSQwJFR5cGUnLDE4NjApO2ZlYigyMTksMSx7MjE5OjEsMjMwOjF9LEZKYyk7Xy5nZz1mdW5jdGlvbiBISmMoYSxiLGMsZCxlLGYpe307Xy5oZz1mdW5jdGlvbiBJSmMoYSxiKXt9O18uZmc9ZnVuY3Rpb24gR0pjKCl7dGhpcy5yPSRDKGtFLFB3ZSwyOCx0aGlzLm4sMTUsMSl9O18uaWc9ZnVuY3Rpb24gSkpjKGEsYixjKXt2YXIgZCxlO2U9Y1thXVtiXTtkPWUuZTshIWQmJlJtYih0aGlzLmIsZCl9O18uamc9ZnVuY3Rpb24gS0pjKGEsYixjLGQpeysrdGhpcy5ufTtfLkliPWZ1bmN0aW9uIExKYygpe3JldHVybiBJbmIodGhpcy5lLG5ldyBfc2IpfTtfLmc9ZmFsc2U7Xy5pPWZhbHNlO18ubj0wO18ucz1mYWxzZTt2YXIgZ1k9c2ZiKHNFZSwnR3JhcGhJbmZvSG9sZGVyJywyMTkpO2ZlYigxOTA1LDEsdUJlLFBKYyk7Xy5nZz1mdW5jdGlvbiBTSmMoYSxiLGMsZCxlLGYpe307Xy5oZz1mdW5jdGlvbiBUSmMoYSxiKXt9O18uamc9ZnVuY3Rpb24gVkpjKGEsYixjLGQpe307Xy51Zz1mdW5jdGlvbiBRSmMoYSxiLGMpe2MmJmI+MD8ocE1jKHRoaXMuYSxhW2ItMV0sYVtiXSksdW5kZWZpbmVkKTohYyYmYjxhLmxlbmd0aC0xPyhwTWModGhpcy5hLGFbYl0sYVtiKzFdKSx1bmRlZmluZWQpOnJNYyh0aGlzLmEsYVtiXSxjPyhxcGQoKSxwcGQpOihxcGQoKSxYb2QpKTtyZXR1cm4gTUpjKHRoaXMsYSxiLGMpfTtfLmZnPWZ1bmN0aW9uIFJKYygpe3RoaXMuZD0kQyhrRSxQd2UsMjgsdGhpcy5jLDE1LDEpO3RoaXMuYT1uZXcgRE1jKHRoaXMuZCl9O18uaWc9ZnVuY3Rpb24gVUpjKGEsYixjKXt2YXIgZDtkPWNbYV1bYl07dGhpcy5jKz1kLmouYy5sZW5ndGh9O18uYz0wO3ZhciBoWT1zZmIoc0VlLCdHcmVlZHlQb3J0RGlzdHJpYnV0b3InLDE5MDUpO2ZlYigxNDIxLDEsbkVlLGFLYyk7Xy5yZz1mdW5jdGlvbiBiS2MoYSl7cmV0dXJuIFpKYyhSRChhLDM2KSl9O18uS2Y9ZnVuY3Rpb24gY0tjKGEsYil7X0pjKFJEKGEsMzYpLGIpfTt2YXIgWEpjO3ZhciBqWT1zZmIoc0VlLCdJbnRlcmFjdGl2ZUNyb3NzaW5nTWluaW1pemVyJywxNDIxKTtmZWIoMTQyMiwxLGZ5ZSxlS2MpO18uTmU9ZnVuY3Rpb24gZktjKGEsYil7cmV0dXJuIGRLYyh0aGlzLFJEKGEsMTApLFJEKGIsMTApKX07Xy5GYj1mdW5jdGlvbiBnS2MoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIGhLYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgaVk9c2ZiKHNFZSwnSW50ZXJhY3RpdmVDcm9zc2luZ01pbmltaXplci8xJywxNDIyKTtmZWIoNTE0LDEsezUxNDoxLDEwNjoxLDQ3OjF9LEZLYyk7Xy5yZz1mdW5jdGlvbiBHS2MoYSl7dmFyIGI7cmV0dXJuIFJEKGEsMzYpLGI9dmZkKGlLYykscGZkKGIsKHNYYigpLHBYYiksKGhjYygpLFliYykpLGJ9O18uS2Y9ZnVuY3Rpb24gSEtjKGEsYil7d0tjKHRoaXMsUkQoYSwzNiksYil9O18uZT0wO3ZhciBpS2M7dmFyIHBZPXNmYihzRWUsJ0xheWVyU3dlZXBDcm9zc2luZ01pbmltaXplcicsNTE0KTtmZWIoMTQxOCwxLFF2ZSxJS2MpO18uQ2Q9ZnVuY3Rpb24gSktjKGEpe2tLYyh0aGlzLmEsUkQoYSwyMTkpKX07dmFyIGtZPXNmYihzRWUsJ0xheWVyU3dlZXBDcm9zc2luZ01pbmltaXplci8wbWV0aG9kcmVmJGNvbXBhcmVEaWZmZXJlbnRSYW5kb21pemVkTGF5b3V0cyRUeXBlJywxNDE4KTtmZWIoMTQxOSwxLFF2ZSxLS2MpO18uQ2Q9ZnVuY3Rpb24gTEtjKGEpe3RLYyh0aGlzLmEsUkQoYSwyMTkpKX07dmFyIGxZPXNmYihzRWUsJ0xheWVyU3dlZXBDcm9zc2luZ01pbmltaXplci8xbWV0aG9kcmVmJG1pbmltaXplQ3Jvc3NpbmdzTm9Db3VudGVyJFR5cGUnLDE0MTkpO2ZlYigxNDIwLDEsUXZlLE1LYyk7Xy5DZD1mdW5jdGlvbiBOS2MoYSl7dktjKHRoaXMuYSxSRChhLDIxOSkpfTt2YXIgbVk9c2ZiKHNFZSwnTGF5ZXJTd2VlcENyb3NzaW5nTWluaW1pemVyLzJtZXRob2RyZWYkbWluaW1pemVDcm9zc2luZ3NXaXRoQ291bnRlciRUeXBlJywxNDIwKTtmZWIoNDY0LDIyLHszOjEsMzQ6MSwyMjoxLDQ2NDoxfSxTS2MpO3ZhciBPS2MsUEtjLFFLYzt2YXIgblk9dGZiKHNFZSwnTGF5ZXJTd2VlcENyb3NzaW5nTWluaW1pemVyL0Nyb3NzTWluVHlwZScsNDY0LFdJLFVLYyxUS2MpO3ZhciBWS2M7ZmViKDE0MTcsMSxud2UsWEtjKTtfLk1iPWZ1bmN0aW9uIFlLYyhhKXtyZXR1cm4gaktjKCksUkQoYSwzMCkuYS5jLmxlbmd0aD09MH07dmFyIG9ZPXNmYihzRWUsJ0xheWVyU3dlZXBDcm9zc2luZ01pbmltaXplci9sYW1iZGEkMCRUeXBlJywxNDE3KTtmZWIoMTg2MiwxLHVCZSxfS2MpO18uZmc9ZnVuY3Rpb24gYUxjKCl7fTtfLmdnPWZ1bmN0aW9uIGJMYyhhLGIsYyxkLGUsZil7fTtfLmpnPWZ1bmN0aW9uIGVMYyhhLGIsYyxkKXt9O18uaGc9ZnVuY3Rpb24gY0xjKGEsYil7YlthXVswXS5jLnA9YTt0aGlzLmJbYV09JEMocVksezM6MSw0OjEsNToxLDIwNDM6MX0sNjY4LGJbYV0ubGVuZ3RoLDAsMSl9O18uaWc9ZnVuY3Rpb24gZExjKGEsYixjKXt2YXIgZDtkPWNbYV1bYl07ZC5wPWI7YkQodGhpcy5iW2FdLGIsbmV3IGZMYyl9O3ZhciB0WT1zZmIoc0VlLCdMYXllclN3ZWVwVHlwZURlY2lkZXInLDE4NjIpO2ZlYig2NjgsMSx7NjY4OjF9LGZMYyk7Xy5JYj1mdW5jdGlvbiBnTGMoKXtyZXR1cm4gJ05vZGVJbmZvIFtjb25uZWN0ZWRFZGdlcz0nK3RoaXMuYSsnLCBoaWVyYXJjaGljYWxJbmZsdWVuY2U9Jyt0aGlzLmIrJywgcmFuZG9tSW5mbHVlbmNlPScrdGhpcy5jKyddJ307Xy5hPTA7Xy5iPTA7Xy5jPTA7dmFyIHFZPXNmYihzRWUsJ0xheWVyU3dlZXBUeXBlRGVjaWRlci9Ob2RlSW5mbycsNjY4KTtmZWIoMTg2MywxLHh5ZSxoTGMpO18uTGI9ZnVuY3Rpb24gaUxjKGEpe3JldHVybiBrNGIobmV3IGw0YihSRChhLDEyKS5iKSl9O18uRmI9ZnVuY3Rpb24gakxjKGEpe3JldHVybiB0aGlzPT09YX07Xy5NYj1mdW5jdGlvbiBrTGMoYSl7cmV0dXJuIGs0YihuZXcgbDRiKFJEKGEsMTIpLmIpKX07dmFyIHJZPXNmYihzRWUsJ0xheWVyU3dlZXBUeXBlRGVjaWRlci9sYW1iZGEkMCRUeXBlJywxODYzKTtmZWIoMTg2NCwxLHh5ZSxsTGMpO18uTGI9ZnVuY3Rpb24gbUxjKGEpe3JldHVybiBrNGIobmV3IGw0YihSRChhLDEyKS5iKSl9O18uRmI9ZnVuY3Rpb24gbkxjKGEpe3JldHVybiB0aGlzPT09YX07Xy5NYj1mdW5jdGlvbiBvTGMoYSl7cmV0dXJuIGs0YihuZXcgbDRiKFJEKGEsMTIpLmIpKX07dmFyIHNZPXNmYihzRWUsJ0xheWVyU3dlZXBUeXBlRGVjaWRlci9sYW1iZGEkMSRUeXBlJywxODY0KTtmZWIoMTkwNiw0MTMscUVlLHBMYyk7Xy50Zz1mdW5jdGlvbiBxTGMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbDtqPXRoaXMuZztzd2l0Y2goYy5nKXtjYXNlIDE6e2Q9MDtlPTA7Zm9yKGk9bmV3IEFuYihhLmopO2kuYTxpLmMuYy5sZW5ndGg7KXtnPVJEKHluYihpKSwxMik7aWYoZy5lLmMubGVuZ3RoIT0wKXsrK2Q7Zy5qPT0ocXBkKCksWW9kKSYmKytlfX1mPWIrZTtsPWIrZDtmb3IoaD1jM2IoYSwoQkVjKCkseUVjKSkuS2MoKTtoLk9iKCk7KXtnPVJEKGguUGIoKSwxMik7aWYoZy5qPT0ocXBkKCksWW9kKSl7altnLnBdPWY7LS1mfWVsc2V7altnLnBdPWw7LS1sfX1yZXR1cm4gZH1jYXNlIDI6e2s9MDtmb3IoaD1jM2IoYSwoQkVjKCksekVjKSkuS2MoKTtoLk9iKCk7KXtnPVJEKGguUGIoKSwxMik7KytrO2pbZy5wXT1iK2t9cmV0dXJuIGt9ZGVmYXVsdDp0aHJvdyBBZGIobmV3IF9mYik7fX07dmFyIHVZPXNmYihzRWUsJ0xheWVyVG90YWxQb3J0RGlzdHJpYnV0b3InLDE5MDYpO2ZlYig2NjksODMyLHs2Njk6MSwyMzA6MX0sdkxjKTtfLnZnPWZ1bmN0aW9uIHhMYyhhLGIsYyxkKXtpZihjKXtSSWModGhpcyxhKX1lbHNle09JYyh0aGlzLGEsZCk7UEljKHRoaXMsYSxiKX1pZihhLmMubGVuZ3RoPjEpe0hlYihURChtUWIoWTJiKCh0RmIoMCxhLmMubGVuZ3RoKSxSRChhLmNbMF0sMTApKSksKHlDYygpLGVBYykpKSk/d0xjKGEsdGhpcy5kLHRoaXMpOih5b2IoKSxfbWIoYSx0aGlzLmQpKTtIZWIoVEQobVFiKFkyYigodEZiKDAsYS5jLmxlbmd0aCksUkQoYS5jWzBdLDEwKSkpLGVBYykpKXx8bkpjKHRoaXMuZSxhKX19O3ZhciB3WT1zZmIoc0VlLCdNb2RlbE9yZGVyQmFyeWNlbnRlckhldXJpc3RpYycsNjY5KTtmZWIoMTg2NiwxLGZ5ZSx5TGMpO18uTmU9ZnVuY3Rpb24gekxjKGEsYil7cmV0dXJuIHRMYyh0aGlzLmEsUkQoYSwxMCksUkQoYiwxMCkpfTtfLkZiPWZ1bmN0aW9uIEFMYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gQkxjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciB2WT1zZmIoc0VlLCdNb2RlbE9yZGVyQmFyeWNlbnRlckhldXJpc3RpYy9sYW1iZGEkMCRUeXBlJywxODY2KTtmZWIoMTQyMywxLG5FZSxGTGMpO18ucmc9ZnVuY3Rpb24gR0xjKGEpe3ZhciBiO3JldHVybiBSRChhLDM2KSxiPXZmZChDTGMpLHBmZChiLChzWGIoKSxwWGIpLChoY2MoKSxZYmMpKSxifTtfLktmPWZ1bmN0aW9uIEhMYyhhLGIpe0VMYygoUkQoYSwzNiksYikpfTt2YXIgQ0xjO3ZhciB4WT1zZmIoc0VlLCdOb0Nyb3NzaW5nTWluaW1pemVyJywxNDIzKTtmZWIoODA5LDQxMyxxRWUsSUxjKTtfLnRnPWZ1bmN0aW9uIEpMYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbjtsPXRoaXMuZztzd2l0Y2goYy5nKXtjYXNlIDE6e2U9MDtmPTA7Zm9yKGs9bmV3IEFuYihhLmopO2suYTxrLmMuYy5sZW5ndGg7KXtpPVJEKHluYihrKSwxMik7aWYoaS5lLmMubGVuZ3RoIT0wKXsrK2U7aS5qPT0ocXBkKCksWW9kKSYmKytmfX1kPTEvKGUrMSk7Zz1iK2YqZDtuPWIrMS1kO2ZvcihqPWMzYihhLChCRWMoKSx5RWMpKS5LYygpO2ouT2IoKTspe2k9UkQoai5QYigpLDEyKTtpZihpLmo9PShxcGQoKSxZb2QpKXtsW2kucF09ZztnLT1kfWVsc2V7bFtpLnBdPW47bi09ZH19YnJlYWt9Y2FzZSAyOntoPTA7Zm9yKGs9bmV3IEFuYihhLmopO2suYTxrLmMuYy5sZW5ndGg7KXtpPVJEKHluYihrKSwxMik7aS5nLmMubGVuZ3RoPT0wfHwrK2h9ZD0xLyhoKzEpO209YitkO2ZvcihqPWMzYihhLChCRWMoKSx6RWMpKS5LYygpO2ouT2IoKTspe2k9UkQoai5QYigpLDEyKTtsW2kucF09bTttKz1kfWJyZWFrfWRlZmF1bHQ6dGhyb3cgQWRiKG5ldyBhZ2IoJ1BvcnQgdHlwZSBpcyB1bmRlZmluZWQnKSk7fXJldHVybiAxfTt2YXIgeVk9c2ZiKHNFZSwnTm9kZVJlbGF0aXZlUG9ydERpc3RyaWJ1dG9yJyw4MDkpO2ZlYig4MjIsMSx7fSxOTGMsT0xjKTt2YXIgelk9c2ZiKHNFZSwnU3dlZXBDb3B5Jyw4MjIpO2ZlYigxODYxLDEsdUJlLFJMYyk7Xy5oZz1mdW5jdGlvbiBVTGMoYSxiKXt9O18uZmc9ZnVuY3Rpb24gU0xjKCl7dmFyIGE7YT0kQyhrRSxQd2UsMjgsdGhpcy5mLDE1LDEpO3RoaXMuZD1uZXcgak5jKGEpO3RoaXMuYT1uZXcgRE1jKGEpfTtfLmdnPWZ1bmN0aW9uIFRMYyhhLGIsYyxkLGUsZil7dmFyIGc7Zz1SRChWbWIoZlthXVtiXS5qLGMpLDEyKTtlLmM9PWcmJmUuYy5pLmM9PWUuZC5pLmMmJisrdGhpcy5lW2FdfTtfLmlnPWZ1bmN0aW9uIFZMYyhhLGIsYyl7dmFyIGQ7ZD1jW2FdW2JdO3RoaXMuY1thXT10aGlzLmNbYV18ZC5rPT0ocjNiKCkscTNiKX07Xy5qZz1mdW5jdGlvbiBXTGMoYSxiLGMsZCl7dmFyIGU7ZT1SRChWbWIoZFthXVtiXS5qLGMpLDEyKTtlLnA9dGhpcy5mKys7ZS5nLmMubGVuZ3RoK2UuZS5jLmxlbmd0aD4xJiYoZS5qPT0ocXBkKCksWG9kKT8odGhpcy5iW2FdPXRydWUpOmUuaj09cHBkJiZhPjAmJih0aGlzLmJbYS0xXT10cnVlKSl9O18uZj0wO3ZhciBBWT1zZmIodEJlLCdBbGxDcm9zc2luZ3NDb3VudGVyJywxODYxKTtmZWIoNTk1LDEse30sX0xjKTtfLmI9MDtfLmQ9MDt2YXIgQlk9c2ZiKHRCZSwnQmluYXJ5SW5kZXhlZFRyZWUnLDU5NSk7ZmViKDUzMiwxLHt9LERNYyk7dmFyIGJNYyxjTWM7dmFyIExZPXNmYih0QmUsJ0Nyb3NzaW5nc0NvdW50ZXInLDUzMik7ZmViKDE5NTAsMSxmeWUsSE1jKTtfLk5lPWZ1bmN0aW9uIElNYyhhLGIpe3JldHVybiB3TWModGhpcy5hLFJEKGEsMTIpLFJEKGIsMTIpKX07Xy5GYj1mdW5jdGlvbiBKTWMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIEtNYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgQ1k9c2ZiKHRCZSwnQ3Jvc3NpbmdzQ291bnRlci9sYW1iZGEkMCRUeXBlJywxOTUwKTtmZWIoMTk1MSwxLGZ5ZSxMTWMpO18uTmU9ZnVuY3Rpb24gTU1jKGEsYil7cmV0dXJuIHhNYyh0aGlzLmEsUkQoYSwxMiksUkQoYiwxMikpfTtfLkZiPWZ1bmN0aW9uIE5NYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gT01jKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBEWT1zZmIodEJlLCdDcm9zc2luZ3NDb3VudGVyL2xhbWJkYSQxJFR5cGUnLDE5NTEpO2ZlYigxOTUyLDEsZnllLFBNYyk7Xy5OZT1mdW5jdGlvbiBRTWMoYSxiKXtyZXR1cm4geU1jKHRoaXMuYSxSRChhLDEyKSxSRChiLDEyKSl9O18uRmI9ZnVuY3Rpb24gUk1jKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBTTWMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIEVZPXNmYih0QmUsJ0Nyb3NzaW5nc0NvdW50ZXIvbGFtYmRhJDIkVHlwZScsMTk1Mik7ZmViKDE5NTMsMSxmeWUsVE1jKTtfLk5lPWZ1bmN0aW9uIFVNYyhhLGIpe3JldHVybiB6TWModGhpcy5hLFJEKGEsMTIpLFJEKGIsMTIpKX07Xy5GYj1mdW5jdGlvbiBWTWMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIFdNYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgRlk9c2ZiKHRCZSwnQ3Jvc3NpbmdzQ291bnRlci9sYW1iZGEkMyRUeXBlJywxOTUzKTtmZWIoMTk1NCwxLFF2ZSxYTWMpO18uQ2Q9ZnVuY3Rpb24gWU1jKGEpe0VNYyh0aGlzLmEsUkQoYSwxMikpfTt2YXIgR1k9c2ZiKHRCZSwnQ3Jvc3NpbmdzQ291bnRlci9sYW1iZGEkNCRUeXBlJywxOTU0KTtmZWIoMTk1NSwxLG53ZSxaTWMpO18uTWI9ZnVuY3Rpb24gJE1jKGEpe3JldHVybiBGTWModGhpcy5hLFJEKGEsMTIpKX07dmFyIEhZPXNmYih0QmUsJ0Nyb3NzaW5nc0NvdW50ZXIvbGFtYmRhJDUkVHlwZScsMTk1NSk7ZmViKDE5NTYsMSxRdmUsYU5jKTtfLkNkPWZ1bmN0aW9uIGJOYyhhKXtfTWModGhpcyxhKX07dmFyIElZPXNmYih0QmUsJ0Nyb3NzaW5nc0NvdW50ZXIvbGFtYmRhJDYkVHlwZScsMTk1Nik7ZmViKDE5NTcsMSxRdmUsY05jKTtfLkNkPWZ1bmN0aW9uIGROYyhhKXt2YXIgYjtkTWMoKTtobWIodGhpcy5iLChiPXRoaXMuYSxSRChhLDEyKSxiKSl9O3ZhciBKWT1zZmIodEJlLCdDcm9zc2luZ3NDb3VudGVyL2xhbWJkYSQ3JFR5cGUnLDE5NTcpO2ZlYig4MzksMSx4eWUsZU5jKTtfLkxiPWZ1bmN0aW9uIGZOYyhhKXtyZXR1cm4gZE1jKCksblFiKFJEKGEsMTIpLChZd2MoKSxJd2MpKX07Xy5GYj1mdW5jdGlvbiBnTmMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk1iPWZ1bmN0aW9uIGhOYyhhKXtyZXR1cm4gZE1jKCksblFiKFJEKGEsMTIpLChZd2MoKSxJd2MpKX07dmFyIEtZPXNmYih0QmUsJ0Nyb3NzaW5nc0NvdW50ZXIvbGFtYmRhJDgkVHlwZScsODM5KTtmZWIoMTk0OSwxLHt9LGpOYyk7dmFyIFBZPXNmYih0QmUsJ0h5cGVyZWRnZUNyb3NzaW5nc0NvdW50ZXInLDE5NDkpO2ZlYig0NzgsMSx7MzQ6MSw0Nzg6MX0sbE5jKTtfLkZkPWZ1bmN0aW9uIG1OYyhhKXtyZXR1cm4ga05jKHRoaXMsUkQoYSw0NzgpKX07Xy5iPTA7Xy5jPTA7Xy5lPTA7Xy5mPTA7dmFyIE9ZPXNmYih0QmUsJ0h5cGVyZWRnZUNyb3NzaW5nc0NvdW50ZXIvSHlwZXJlZGdlJyw0NzgpO2ZlYigzNzQsMSx7MzQ6MSwzNzQ6MX0sb05jKTtfLkZkPWZ1bmN0aW9uIHBOYyhhKXtyZXR1cm4gbk5jKHRoaXMsUkQoYSwzNzQpKX07Xy5iPTA7Xy5jPTA7dmFyIE5ZPXNmYih0QmUsJ0h5cGVyZWRnZUNyb3NzaW5nc0NvdW50ZXIvSHlwZXJlZGdlQ29ybmVyJywzNzQpO2ZlYig1MzEsMjIsezM6MSwzNDoxLDIyOjEsNTMxOjF9LHROYyk7dmFyIHFOYyxyTmM7dmFyIE1ZPXRmYih0QmUsJ0h5cGVyZWRnZUNyb3NzaW5nc0NvdW50ZXIvSHlwZXJlZGdlQ29ybmVyL1R5cGUnLDUzMSxXSSx2TmMsdU5jKTt2YXIgd05jO2ZlYigxNDI1LDEsbkVlLEROYyk7Xy5yZz1mdW5jdGlvbiBFTmMoYSl7cmV0dXJuIFJEKG1RYihSRChhLDM2KSwoWXdjKCksa3djKSksMjEpLkhjKChvdmMoKSxodmMpKT96TmM6bnVsbH07Xy5LZj1mdW5jdGlvbiBGTmMoYSxiKXtDTmModGhpcyxSRChhLDM2KSxiKX07dmFyIHpOYzt2YXIgUlk9c2ZiKHRFZSwnSW50ZXJhY3RpdmVOb2RlUGxhY2VyJywxNDI1KTtmZWIoMTQyNiwxLG5FZSxUTmMpO18ucmc9ZnVuY3Rpb24gVU5jKGEpe3JldHVybiBSRChtUWIoUkQoYSwzNiksKFl3YygpLGt3YykpLDIxKS5IYygob3ZjKCksaHZjKSk/R05jOm51bGx9O18uS2Y9ZnVuY3Rpb24gVk5jKGEsYil7Uk5jKHRoaXMsUkQoYSwzNiksYil9O3ZhciBHTmMsSE5jLElOYzt2YXIgVFk9c2ZiKHRFZSwnTGluZWFyU2VnbWVudHNOb2RlUGxhY2VyJywxNDI2KTtmZWIoMjYxLDEsezM0OjEsMjYxOjF9LFpOYyk7Xy5GZD1mdW5jdGlvbiAkTmMoYSl7cmV0dXJuIFdOYyh0aGlzLFJEKGEsMjYxKSl9O18uRmI9ZnVuY3Rpb24gX05jKGEpe3ZhciBiO2lmKFpEKGEsMjYxKSl7Yj1SRChhLDI2MSk7cmV0dXJuIHRoaXMuYj09Yi5ifXJldHVybiBmYWxzZX07Xy5IYj1mdW5jdGlvbiBhT2MoKXtyZXR1cm4gdGhpcy5ifTtfLkliPWZ1bmN0aW9uIGJPYygpe3JldHVybiAnbHMnK0ZlKHRoaXMuZSl9O18uYT0wO18uYj0wO18uYz0tMTtfLmQ9LTE7Xy5nPTA7dmFyIFNZPXNmYih0RWUsJ0xpbmVhclNlZ21lbnRzTm9kZVBsYWNlci9MaW5lYXJTZWdtZW50JywyNjEpO2ZlYigxNDI4LDEsbkVlLHlPYyk7Xy5yZz1mdW5jdGlvbiB6T2MoYSl7cmV0dXJuIFJEKG1RYihSRChhLDM2KSwoWXdjKCksa3djKSksMjEpLkhjKChvdmMoKSxodmMpKT9jT2M6bnVsbH07Xy5LZj1mdW5jdGlvbiBIT2MoYSxiKXt1T2ModGhpcyxSRChhLDM2KSxiKX07Xy5iPTA7Xy5nPTA7dmFyIGNPYzt2YXIgRFo9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXInLDE0MjgpO2ZlYigxNDQ3LDEsZnllLElPYyk7Xy5OZT1mdW5jdGlvbiBKT2MoYSxiKXtyZXR1cm4gaGdiKFJEKGEsMTcpLmEsUkQoYiwxNykuYSl9O18uRmI9ZnVuY3Rpb24gS09jKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBMT2MoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFVZPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyLzBtZXRob2RyZWYkY29tcGFyZSRUeXBlJywxNDQ3KTtmZWIoMTQ0OSwxLGZ5ZSxNT2MpO18uTmU9ZnVuY3Rpb24gTk9jKGEsYil7cmV0dXJuIGhnYihSRChhLDE3KS5hLFJEKGIsMTcpLmEpfTtfLkZiPWZ1bmN0aW9uIE9PYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gUE9jKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBWWT1zZmIodEVlLCdOZXR3b3JrU2ltcGxleFBsYWNlci8xbWV0aG9kcmVmJGNvbXBhcmUkVHlwZScsMTQ0OSk7ZmViKDY1NSwxLHs2NTU6MX0sUU9jKTt2YXIgV1k9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXIvRWRnZVJlcCcsNjU1KTtmZWIoNDEyLDEsezQxMjoxfSxST2MpO18uYj1mYWxzZTt2YXIgWFk9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXIvTm9kZVJlcCcsNDEyKTtmZWIoNTE1LDEzLHszOjEsNDoxLDIwOjEsMzE6MSw1NjoxLDEzOjEsMTY6MSwxNToxLDU5OjEsNTE1OjF9LFZPYyk7dmFyIGFaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL1BhdGgnLDUxNSk7ZmViKDE0MjksMSx7fSxXT2MpO18uS2I9ZnVuY3Rpb24gWE9jKGEpe3JldHVybiBSRChhLDE4KS5kLmkua307dmFyIFlZPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL1BhdGgvbGFtYmRhJDAkVHlwZScsMTQyOSk7ZmViKDE0MzAsMSxud2UsWU9jKTtfLk1iPWZ1bmN0aW9uIFpPYyhhKXtyZXR1cm4gUkQoYSwyNzMpPT0ocjNiKCksbzNiKX07dmFyIFpZPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL1BhdGgvbGFtYmRhJDEkVHlwZScsMTQzMCk7ZmViKDE0MzEsMSx7fSwkT2MpO18uS2I9ZnVuY3Rpb24gX09jKGEpe3JldHVybiBSRChhLDE4KS5kLml9O3ZhciAkWT1zZmIodEVlLCdOZXR3b3JrU2ltcGxleFBsYWNlci9QYXRoL2xhbWJkYSQyJFR5cGUnLDE0MzEpO2ZlYigxNDMyLDEsbndlLGFQYyk7Xy5NYj1mdW5jdGlvbiBiUGMoYSl7cmV0dXJuIEVQYyh6RGMoUkQoYSwxMCkpKX07dmFyIF9ZPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL1BhdGgvbGFtYmRhJDMkVHlwZScsMTQzMik7ZmViKDE0MzMsMSxud2UsY1BjKTtfLk1iPWZ1bmN0aW9uIGRQYyhhKXtyZXR1cm4gRE9jKFJEKGEsMTIpKX07dmFyIGJaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQwJFR5cGUnLDE0MzMpO2ZlYigxNDM0LDEsUXZlLGVQYyk7Xy5DZD1mdW5jdGlvbiBmUGMoYSl7ak9jKHRoaXMuYSx0aGlzLmIsUkQoYSwxMikpfTt2YXIgY1o9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXIvbGFtYmRhJDEkVHlwZScsMTQzNCk7ZmViKDE0NDMsMSxRdmUsZ1BjKTtfLkNkPWZ1bmN0aW9uIGhQYyhhKXtrT2ModGhpcy5hLFJEKGEsMTgpKX07dmFyIGRaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQxMCRUeXBlJywxNDQzKTtmZWIoMTQ0NCwxLHt9LGlQYyk7Xy5LYj1mdW5jdGlvbiBqUGMoYSl7cmV0dXJuIGRPYygpLG5ldyBTRGIobnVsbCxuZXcgU3diKFJEKGEsMzApLmEsMTYpKX07dmFyIGVaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQxMSRUeXBlJywxNDQ0KTtmZWIoMTQ0NSwxLFF2ZSxrUGMpO18uQ2Q9ZnVuY3Rpb24gbFBjKGEpe2xPYyh0aGlzLmEsUkQoYSwxMCkpfTt2YXIgZlo9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXIvbGFtYmRhJDEyJFR5cGUnLDE0NDUpO2ZlYigxNDQ2LDEse30sbVBjKTtfLktiPWZ1bmN0aW9uIG5QYyhhKXtyZXR1cm4gZE9jKCksc2diKFJEKGEsMTI1KS5lKX07dmFyIGdaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQxMyRUeXBlJywxNDQ2KTtmZWIoMTQ0OCwxLHt9LG9QYyk7Xy5LYj1mdW5jdGlvbiBwUGMoYSl7cmV0dXJuIGRPYygpLHNnYihSRChhLDEyNSkuZSl9O3ZhciBoWj1zZmIodEVlLCdOZXR3b3JrU2ltcGxleFBsYWNlci9sYW1iZGEkMTUkVHlwZScsMTQ0OCk7ZmViKDE0NTAsMSxud2UscVBjKTtfLk1iPWZ1bmN0aW9uIHJQYyhhKXtyZXR1cm4gZE9jKCksUkQoYSw0MTIpLmMuaz09KHIzYigpLHAzYil9O3ZhciBpWj1zZmIodEVlLCdOZXR3b3JrU2ltcGxleFBsYWNlci9sYW1iZGEkMTckVHlwZScsMTQ1MCk7ZmViKDE0NTEsMSxud2Usc1BjKTtfLk1iPWZ1bmN0aW9uIHRQYyhhKXtyZXR1cm4gZE9jKCksUkQoYSw0MTIpLmMuai5jLmxlbmd0aD4xfTt2YXIgalo9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXIvbGFtYmRhJDE4JFR5cGUnLDE0NTEpO2ZlYigxNDUyLDEsUXZlLHVQYyk7Xy5DZD1mdW5jdGlvbiB2UGMoYSl7RU9jKHRoaXMuYyx0aGlzLmIsdGhpcy5kLHRoaXMuYSxSRChhLDQxMikpfTtfLmM9MDtfLmQ9MDt2YXIga1o9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXIvbGFtYmRhJDE5JFR5cGUnLDE0NTIpO2ZlYigxNDM1LDEse30sd1BjKTtfLktiPWZ1bmN0aW9uIHhQYyhhKXtyZXR1cm4gZE9jKCksbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwzMCkuYSwxNikpfTt2YXIgbFo9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXIvbGFtYmRhJDIkVHlwZScsMTQzNSk7ZmViKDE0NTMsMSxRdmUseVBjKTtfLkNkPWZ1bmN0aW9uIHpQYyhhKXtGT2ModGhpcy5hLFJEKGEsMTIpKX07Xy5hPTA7dmFyIG1aPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQyMCRUeXBlJywxNDUzKTtmZWIoMTQ1NCwxLHt9LEFQYyk7Xy5LYj1mdW5jdGlvbiBCUGMoYSl7cmV0dXJuIGRPYygpLG5ldyBTRGIobnVsbCxuZXcgU3diKFJEKGEsMzApLmEsMTYpKX07dmFyIG5aPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQyMSRUeXBlJywxNDU0KTtmZWIoMTQ1NSwxLFF2ZSxDUGMpO18uQ2Q9ZnVuY3Rpb24gRFBjKGEpe21PYyh0aGlzLmEsUkQoYSwxMCkpfTt2YXIgb1o9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXIvbGFtYmRhJDIyJFR5cGUnLDE0NTUpO2ZlYigxNDU2LDEsbndlLEZQYyk7Xy5NYj1mdW5jdGlvbiBHUGMoYSl7cmV0dXJuIEVQYyhhKX07dmFyIHBaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQyMyRUeXBlJywxNDU2KTtmZWIoMTQ1NywxLHt9LEhQYyk7Xy5LYj1mdW5jdGlvbiBJUGMoYSl7cmV0dXJuIGRPYygpLG5ldyBTRGIobnVsbCxuZXcgU3diKFJEKGEsMzApLmEsMTYpKX07dmFyIHFaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQyNCRUeXBlJywxNDU3KTtmZWIoMTQ1OCwxLG53ZSxKUGMpO18uTWI9ZnVuY3Rpb24gS1BjKGEpe3JldHVybiBuT2ModGhpcy5hLFJEKGEsMTApKX07dmFyIHJaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQyNSRUeXBlJywxNDU4KTtmZWIoMTQ1OSwxLFF2ZSxMUGMpO18uQ2Q9ZnVuY3Rpb24gTVBjKGEpe29PYyh0aGlzLmEsdGhpcy5iLFJEKGEsMTApKX07dmFyIHNaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQyNiRUeXBlJywxNDU5KTtmZWIoMTQ2MCwxLG53ZSxOUGMpO18uTWI9ZnVuY3Rpb24gT1BjKGEpe3JldHVybiBkT2MoKSwhVzBiKFJEKGEsMTgpKX07dmFyIHRaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQyNyRUeXBlJywxNDYwKTtmZWIoMTQ2MSwxLG53ZSxQUGMpO18uTWI9ZnVuY3Rpb24gUVBjKGEpe3JldHVybiBkT2MoKSwhVzBiKFJEKGEsMTgpKX07dmFyIHVaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQyOCRUeXBlJywxNDYxKTtmZWIoMTQ2MiwxLHt9LFJQYyk7Xy5WZT1mdW5jdGlvbiBTUGMoYSxiKXtyZXR1cm4gcE9jKHRoaXMuYSxSRChhLDMwKSxSRChiLDMwKSl9O3ZhciB2Wj1zZmIodEVlLCdOZXR3b3JrU2ltcGxleFBsYWNlci9sYW1iZGEkMjkkVHlwZScsMTQ2Mik7ZmViKDE0MzYsMSx7fSxUUGMpO18uS2I9ZnVuY3Rpb24gVVBjKGEpe3JldHVybiBkT2MoKSxuZXcgU0RiKG51bGwsbmV3IFR3YihuZXcgaXMoTXIoYTNiKFJEKGEsMTApKS5hLktjKCksbmV3IGlyKSkpKX07dmFyIHdaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQzJFR5cGUnLDE0MzYpO2ZlYigxNDM3LDEsbndlLFZQYyk7Xy5NYj1mdW5jdGlvbiBXUGMoYSl7cmV0dXJuIGRPYygpLENPYyhSRChhLDE4KSl9O3ZhciB4Wj1zZmIodEVlLCdOZXR3b3JrU2ltcGxleFBsYWNlci9sYW1iZGEkNCRUeXBlJywxNDM3KTtmZWIoMTQzOCwxLFF2ZSxYUGMpO18uQ2Q9ZnVuY3Rpb24gWVBjKGEpe3ZPYyh0aGlzLmEsUkQoYSwxOCkpfTt2YXIgeVo9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXIvbGFtYmRhJDUkVHlwZScsMTQzOCk7ZmViKDE0MzksMSx7fSxaUGMpO18uS2I9ZnVuY3Rpb24gJFBjKGEpe3JldHVybiBkT2MoKSxuZXcgU0RiKG51bGwsbmV3IFN3YihSRChhLDMwKS5hLDE2KSl9O3ZhciB6Wj1zZmIodEVlLCdOZXR3b3JrU2ltcGxleFBsYWNlci9sYW1iZGEkNiRUeXBlJywxNDM5KTtmZWIoMTQ0MCwxLG53ZSxfUGMpO18uTWI9ZnVuY3Rpb24gYVFjKGEpe3JldHVybiBkT2MoKSxSRChhLDEwKS5rPT0ocjNiKCkscDNiKX07dmFyIEFaPXNmYih0RWUsJ05ldHdvcmtTaW1wbGV4UGxhY2VyL2xhbWJkYSQ3JFR5cGUnLDE0NDApO2ZlYigxNDQxLDEse30sYlFjKTtfLktiPWZ1bmN0aW9uIGNRYyhhKXtyZXR1cm4gZE9jKCksbmV3IFNEYihudWxsLG5ldyBUd2IobmV3IGlzKE1yKFcyYihSRChhLDEwKSkuYS5LYygpLG5ldyBpcikpKSl9O3ZhciBCWj1zZmIodEVlLCdOZXR3b3JrU2ltcGxleFBsYWNlci9sYW1iZGEkOCRUeXBlJywxNDQxKTtmZWIoMTQ0MiwxLG53ZSxkUWMpO18uTWI9ZnVuY3Rpb24gZVFjKGEpe3JldHVybiBkT2MoKSxWMGIoUkQoYSwxOCkpfTt2YXIgQ1o9c2ZiKHRFZSwnTmV0d29ya1NpbXBsZXhQbGFjZXIvbGFtYmRhJDkkVHlwZScsMTQ0Mik7ZmViKDE0MjQsMSxuRWUsaVFjKTtfLnJnPWZ1bmN0aW9uIGpRYyhhKXtyZXR1cm4gUkQobVFiKFJEKGEsMzYpLChZd2MoKSxrd2MpKSwyMSkuSGMoKG92YygpLGh2YykpP2ZRYzpudWxsfTtfLktmPWZ1bmN0aW9uIGtRYyhhLGIpe2hRYyhSRChhLDM2KSxiKX07dmFyIGZRYzt2YXIgRVo9c2ZiKHRFZSwnU2ltcGxlTm9kZVBsYWNlcicsMTQyNCk7ZmViKDE4NSwxLHsxODU6MX0sc1FjKTtfLkliPWZ1bmN0aW9uIHRRYygpe3ZhciBhO2E9Jyc7dGhpcy5jPT0od1FjKCksdlFjKT8oYSs9T3llKTp0aGlzLmM9PXVRYyYmKGErPU55ZSk7dGhpcy5vPT0oRVFjKCksQ1FjKT8oYSs9WnllKTp0aGlzLm89PURRYz8oYSs9J1VQJyk6KGErPSdCQUxBTkNFRCcpO3JldHVybiBhfTt2YXIgSFo9c2ZiKHdFZSwnQktBbGlnbmVkTGF5b3V0JywxODUpO2ZlYig1MjMsMjIsezM6MSwzNDoxLDIyOjEsNTIzOjF9LHhRYyk7dmFyIHVRYyx2UWM7dmFyIEZaPXRmYih3RWUsJ0JLQWxpZ25lZExheW91dC9IRGlyZWN0aW9uJyw1MjMsV0kselFjLHlRYyk7dmFyIEFRYztmZWIoNTIyLDIyLHszOjEsMzQ6MSwyMjoxLDUyMjoxfSxGUWMpO3ZhciBDUWMsRFFjO3ZhciBHWj10ZmIod0VlLCdCS0FsaWduZWRMYXlvdXQvVkRpcmVjdGlvbicsNTIyLFdJLEhRYyxHUWMpO3ZhciBJUWM7ZmViKDE2OTksMSx7fSxNUWMpO3ZhciBJWj1zZmIod0VlLCdCS0FsaWduZXInLDE2OTkpO2ZlYigxNzAyLDEse30sUlFjKTt2YXIgTFo9c2ZiKHdFZSwnQktDb21wYWN0b3InLDE3MDIpO2ZlYig2NjMsMSx7NjYzOjF9LFNRYyk7Xy5hPTA7dmFyIEpaPXNmYih3RWUsJ0JLQ29tcGFjdG9yL0NsYXNzRWRnZScsNjYzKTtmZWIoNDY3LDEsezQ2NzoxfSxVUWMpO18uYT1udWxsO18uYj0wO3ZhciBLWj1zZmIod0VlLCdCS0NvbXBhY3Rvci9DbGFzc05vZGUnLDQ2Nyk7ZmViKDE0MjcsMSxuRWUsYVJjKTtfLnJnPWZ1bmN0aW9uIGVSYyhhKXtyZXR1cm4gUkQobVFiKFJEKGEsMzYpLChZd2MoKSxrd2MpKSwyMSkuSGMoKG92YygpLGh2YykpP1ZRYzpudWxsfTtfLktmPWZ1bmN0aW9uIGZSYyhhLGIpe19RYyh0aGlzLFJEKGEsMzYpLGIpfTtfLmQ9ZmFsc2U7dmFyIFZRYzt2YXIgTVo9c2ZiKHdFZSwnQktOb2RlUGxhY2VyJywxNDI3KTtmZWIoMTcwMCwxLHt9LGhSYyk7Xy5kPTA7dmFyIE9aPXNmYih3RWUsJ05laWdoYm9yaG9vZEluZm9ybWF0aW9uJywxNzAwKTtmZWIoMTcwMSwxLGZ5ZSxtUmMpO18uTmU9ZnVuY3Rpb24gblJjKGEsYil7cmV0dXJuIGxSYyh0aGlzLFJEKGEsNDIpLFJEKGIsNDIpKX07Xy5GYj1mdW5jdGlvbiBvUmMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIHBSYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgTlo9c2ZiKHdFZSwnTmVpZ2hib3Job29kSW5mb3JtYXRpb24vTmVpZ2hib3JDb21wYXJhdG9yJywxNzAxKTtmZWIoODIzLDEse30pO3ZhciBTWj1zZmIod0VlLCdUaHJlc2hvbGRTdHJhdGVneScsODIzKTtmZWIoMTgyNSw4MjMse30sdVJjKTtfLndnPWZ1bmN0aW9uIHZSYyhhLGIsYyl7cmV0dXJuIHRoaXMuYS5vPT0oRVFjKCksRFFjKT9veGU6cHhlfTtfLnhnPWZ1bmN0aW9uIHdSYygpe307dmFyIFBaPXNmYih3RWUsJ1RocmVzaG9sZFN0cmF0ZWd5L051bGxUaHJlc2hvbGRTdHJhdGVneScsMTgyNSk7ZmViKDU4NywxLHs1ODc6MX0seFJjKTtfLmM9ZmFsc2U7Xy5kPWZhbHNlO3ZhciBRWj1zZmIod0VlLCdUaHJlc2hvbGRTdHJhdGVneS9Qb3N0cHJvY2Vzc2FibGUnLDU4Nyk7ZmViKDE4MjYsODIzLHt9LEJSYyk7Xy53Zz1mdW5jdGlvbiBDUmMoYSxiLGMpe3ZhciBkLGUsZjtlPWI9PWM7ZD10aGlzLmEuYVtjLnBdPT1iO2lmKCEoZXx8ZCkpe3JldHVybiBhfWY9YTtpZih0aGlzLmEuYz09KHdRYygpLHZRYykpe2UmJihmPXlSYyh0aGlzLGIsdHJ1ZSkpOyFpc05hTihmKSYmIWlzRmluaXRlKGYpJiZkJiYoZj15UmModGhpcyxjLGZhbHNlKSl9ZWxzZXtlJiYoZj15UmModGhpcyxiLHRydWUpKTshaXNOYU4oZikmJiFpc0Zpbml0ZShmKSYmZCYmKGY9eVJjKHRoaXMsYyxmYWxzZSkpfXJldHVybiBmfTtfLnhnPWZ1bmN0aW9uIERSYygpe3ZhciBhLGIsYyxkLGU7d2hpbGUodGhpcy5kLmIhPTApe2U9UkQoVHViKHRoaXMuZCksNTg3KTtkPXpSYyh0aGlzLGUpO2lmKCFkLmEpe2NvbnRpbnVlfWE9ZC5hO2M9SGViKHRoaXMuYS5mW3RoaXMuYS5nW2UuYi5wXS5wXSk7aWYoIWMmJiFXMGIoYSkmJmEuYy5pLmM9PWEuZC5pLmMpe2NvbnRpbnVlfWI9QVJjKHRoaXMsZSk7Ynx8RXliKHRoaXMuZSxlKX13aGlsZSh0aGlzLmUuYS5jLmxlbmd0aCE9MCl7QVJjKHRoaXMsUkQoRHliKHRoaXMuZSksNTg3KSl9fTt2YXIgUlo9c2ZiKHdFZSwnVGhyZXNob2xkU3RyYXRlZ3kvU2ltcGxlVGhyZXNob2xkU3RyYXRlZ3knLDE4MjYpO2ZlYig2NDUsMSx7NjQ1OjEsMTg4OjEsMTk2OjF9LEhSYyk7Xy5kZz1mdW5jdGlvbiBKUmMoKXtyZXR1cm4gR1JjKHRoaXMpfTtfLnFnPWZ1bmN0aW9uIElSYygpe3JldHVybiBHUmModGhpcyl9O3ZhciBFUmM7dmFyIFRaPXNmYih4RWUsJ0VkZ2VSb3V0ZXJGYWN0b3J5Jyw2NDUpO2ZlYigxNDg1LDEsbkVlLFdSYyk7Xy5yZz1mdW5jdGlvbiBYUmMoYSl7cmV0dXJuIFVSYyhSRChhLDM2KSl9O18uS2Y9ZnVuY3Rpb24gWVJjKGEsYil7VlJjKFJEKGEsMzYpLGIpfTt2YXIgTFJjLE1SYyxOUmMsT1JjLFBSYyxRUmMsUlJjLFNSYzt2YXIgVVo9c2ZiKHhFZSwnT3J0aG9nb25hbEVkZ2VSb3V0ZXInLDE0ODUpO2ZlYigxNDc4LDEsbkVlLGxTYyk7Xy5yZz1mdW5jdGlvbiBtU2MoYSl7cmV0dXJuIGdTYyhSRChhLDM2KSl9O18uS2Y9ZnVuY3Rpb24gblNjKGEsYil7aVNjKHRoaXMsUkQoYSwzNiksYil9O3ZhciBaUmMsJFJjLF9SYyxhU2MsYlNjLGNTYzt2YXIgV1o9c2ZiKHhFZSwnUG9seWxpbmVFZGdlUm91dGVyJywxNDc4KTtmZWIoMTQ3OSwxLHh5ZSxwU2MpO18uTGI9ZnVuY3Rpb24gcVNjKGEpe3JldHVybiBvU2MoUkQoYSwxMCkpfTtfLkZiPWZ1bmN0aW9uIHJTYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uTWI9ZnVuY3Rpb24gc1NjKGEpe3JldHVybiBvU2MoUkQoYSwxMCkpfTt2YXIgVlo9c2ZiKHhFZSwnUG9seWxpbmVFZGdlUm91dGVyLzEnLDE0NzkpO2ZlYigxODcyLDEsbndlLHhTYyk7Xy5NYj1mdW5jdGlvbiB5U2MoYSl7cmV0dXJuIFJEKGEsMTMyKS5jPT0oZlRjKCksZFRjKX07dmFyIFhaPXNmYih5RWUsJ0h5cGVyRWRnZUN5Y2xlRGV0ZWN0b3IvbGFtYmRhJDAkVHlwZScsMTg3Mik7ZmViKDE4NzMsMSx7fSx6U2MpO18uWmU9ZnVuY3Rpb24gQVNjKGEpe3JldHVybiBSRChhLDEzMikuZH07dmFyIFlaPXNmYih5RWUsJ0h5cGVyRWRnZUN5Y2xlRGV0ZWN0b3IvbGFtYmRhJDEkVHlwZScsMTg3Myk7ZmViKDE4NzQsMSxud2UsQlNjKTtfLk1iPWZ1bmN0aW9uIENTYyhhKXtyZXR1cm4gUkQoYSwxMzIpLmM9PShmVGMoKSxkVGMpfTt2YXIgWlo9c2ZiKHlFZSwnSHlwZXJFZGdlQ3ljbGVEZXRlY3Rvci9sYW1iZGEkMiRUeXBlJywxODc0KTtmZWIoMTg3NSwxLHt9LERTYyk7Xy5aZT1mdW5jdGlvbiBFU2MoYSl7cmV0dXJuIFJEKGEsMTMyKS5kfTt2YXIgJFo9c2ZiKHlFZSwnSHlwZXJFZGdlQ3ljbGVEZXRlY3Rvci9sYW1iZGEkMyRUeXBlJywxODc1KTtmZWIoMTg3NiwxLHt9LEZTYyk7Xy5aZT1mdW5jdGlvbiBHU2MoYSl7cmV0dXJuIFJEKGEsMTMyKS5kfTt2YXIgX1o9c2ZiKHlFZSwnSHlwZXJFZGdlQ3ljbGVEZXRlY3Rvci9sYW1iZGEkNCRUeXBlJywxODc2KTtmZWIoMTg3NywxLHt9LEhTYyk7Xy5aZT1mdW5jdGlvbiBJU2MoYSl7cmV0dXJuIFJEKGEsMTMyKS5kfTt2YXIgYSQ9c2ZiKHlFZSwnSHlwZXJFZGdlQ3ljbGVEZXRlY3Rvci9sYW1iZGEkNSRUeXBlJywxODc3KTtmZWIoMTE4LDEsezM0OjEsMTE4OjF9LFVTYyk7Xy5GZD1mdW5jdGlvbiBWU2MoYSl7cmV0dXJuIEtTYyh0aGlzLFJEKGEsMTE4KSl9O18uRmI9ZnVuY3Rpb24gV1NjKGEpe3ZhciBiO2lmKFpEKGEsMTE4KSl7Yj1SRChhLDExOCk7cmV0dXJuIHRoaXMuZz09Yi5nfXJldHVybiBmYWxzZX07Xy5IYj1mdW5jdGlvbiBYU2MoKXtyZXR1cm4gdGhpcy5nfTtfLkliPWZ1bmN0aW9uIFpTYygpe3ZhciBhLGIsYyxkO2E9bmV3IGRpYigneycpO2Q9bmV3IEFuYih0aGlzLm4pO3doaWxlKGQuYTxkLmMuYy5sZW5ndGgpe2M9UkQoeW5iKGQpLDEyKTtiPVgyYihjLmkpO2I9PW51bGwmJihiPSduJyskMmIoYy5pKSk7YS5hKz0nJytiO2QuYTxkLmMuYy5sZW5ndGgmJihhLmErPScsJyxhKX1hLmErPSd9JztyZXR1cm4gYS5hfTtfLmE9MDtfLmI9MDtfLmM9TmFOO18uZD0wO18uZz0wO18uaT0wO18ubz0wO18ucz1OYU47dmFyIGwkPXNmYih5RWUsJ0h5cGVyRWRnZVNlZ21lbnQnLDExOCk7ZmViKDEzMiwxLHsxMzI6MX0sYlRjKTtfLkliPWZ1bmN0aW9uIGNUYygpe3JldHVybiB0aGlzLmErJy0+Jyt0aGlzLmIrJyAoJytvcyh0aGlzLmMpKycpJ307Xy5kPTA7dmFyIGMkPXNmYih5RWUsJ0h5cGVyRWRnZVNlZ21lbnREZXBlbmRlbmN5JywxMzIpO2ZlYig1MjgsMjIsezM6MSwzNDoxLDIyOjEsNTI4OjF9LGdUYyk7dmFyIGRUYyxlVGM7dmFyIGIkPXRmYih5RWUsJ0h5cGVyRWRnZVNlZ21lbnREZXBlbmRlbmN5L0RlcGVuZGVuY3lUeXBlJyw1MjgsV0ksaVRjLGhUYyk7dmFyIGpUYztmZWIoMTg3OCwxLHt9LHhUYyk7dmFyIGskPXNmYih5RWUsJ0h5cGVyRWRnZVNlZ21lbnRTcGxpdHRlcicsMTg3OCk7ZmViKDE4NzksMSx7fSxBVGMpO18uYT0wO18uYj0wO3ZhciBkJD1zZmIoeUVlLCdIeXBlckVkZ2VTZWdtZW50U3BsaXR0ZXIvQXJlYVJhdGluZycsMTg3OSk7ZmViKDMzOSwxLHszMzk6MX0sQlRjKTtfLmE9MDtfLmI9MDtfLmM9MDt2YXIgZSQ9c2ZiKHlFZSwnSHlwZXJFZGdlU2VnbWVudFNwbGl0dGVyL0ZyZWVBcmVhJywzMzkpO2ZlYigxODgwLDEsZnllLENUYyk7Xy5OZT1mdW5jdGlvbiBEVGMoYSxiKXtyZXR1cm4gelRjKFJEKGEsMTE4KSxSRChiLDExOCkpfTtfLkZiPWZ1bmN0aW9uIEVUYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gRlRjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBmJD1zZmIoeUVlLCdIeXBlckVkZ2VTZWdtZW50U3BsaXR0ZXIvbGFtYmRhJDAkVHlwZScsMTg4MCk7ZmViKDE4ODEsMSxRdmUsR1RjKTtfLkNkPWZ1bmN0aW9uIEhUYyhhKXtyVGModGhpcy5hLHRoaXMuZCx0aGlzLmMsdGhpcy5iLFJEKGEsMTE4KSl9O18uYj0wO3ZhciBnJD1zZmIoeUVlLCdIeXBlckVkZ2VTZWdtZW50U3BsaXR0ZXIvbGFtYmRhJDEkVHlwZScsMTg4MSk7ZmViKDE4ODIsMSx7fSxJVGMpO18uS2I9ZnVuY3Rpb24gSlRjKGEpe3JldHVybiBuZXcgU0RiKG51bGwsbmV3IFN3YihSRChhLDExOCkuZSwxNikpfTt2YXIgaCQ9c2ZiKHlFZSwnSHlwZXJFZGdlU2VnbWVudFNwbGl0dGVyL2xhbWJkYSQyJFR5cGUnLDE4ODIpO2ZlYigxODgzLDEse30sS1RjKTtfLktiPWZ1bmN0aW9uIExUYyhhKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwxMTgpLmosMTYpKX07dmFyIGkkPXNmYih5RWUsJ0h5cGVyRWRnZVNlZ21lbnRTcGxpdHRlci9sYW1iZGEkMyRUeXBlJywxODgzKTtmZWIoMTg4NCwxLHt9LE1UYyk7Xy5ZZT1mdW5jdGlvbiBOVGMoYSl7cmV0dXJuIEtmYihVRChhKSl9O3ZhciBqJD1zZmIoeUVlLCdIeXBlckVkZ2VTZWdtZW50U3BsaXR0ZXIvbGFtYmRhJDQkVHlwZScsMTg4NCk7ZmViKDY2NCwxLHt9LFRUYyk7Xy5hPTA7Xy5iPTA7Xy5jPTA7dmFyIG8kPXNmYih5RWUsJ09ydGhvZ29uYWxSb3V0aW5nR2VuZXJhdG9yJyw2NjQpO2ZlYigxNzAzLDEse30sWFRjKTtfLktiPWZ1bmN0aW9uIFlUYyhhKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwxMTgpLmUsMTYpKX07dmFyIG0kPXNmYih5RWUsJ09ydGhvZ29uYWxSb3V0aW5nR2VuZXJhdG9yL2xhbWJkYSQwJFR5cGUnLDE3MDMpO2ZlYigxNzA0LDEse30sWlRjKTtfLktiPWZ1bmN0aW9uICRUYyhhKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBTd2IoUkQoYSwxMTgpLmosMTYpKX07dmFyIG4kPXNmYih5RWUsJ09ydGhvZ29uYWxSb3V0aW5nR2VuZXJhdG9yL2xhbWJkYSQxJFR5cGUnLDE3MDQpO2ZlYig2NzAsMSx7fSk7dmFyIHAkPXNmYih6RWUsJ0Jhc2VSb3V0aW5nRGlyZWN0aW9uU3RyYXRlZ3knLDY3MCk7ZmViKDE4NzAsNjcwLHt9LGNVYyk7Xy55Zz1mdW5jdGlvbiBkVWMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwO2lmKCEhYS5yJiYhYS5xKXtyZXR1cm59az1iK2EubypjO2ZvcihqPW5ldyBBbmIoYS5uKTtqLmE8ai5jLmMubGVuZ3RoOyl7aT1SRCh5bmIoaiksMTIpO2w9eGpkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW2kuaS5uLGkubixpLmFdKSkuYTtmb3IoaD1uZXcgQW5iKGkuZyk7aC5hPGguYy5jLmxlbmd0aDspe2c9UkQoeW5iKGgpLDE4KTtpZighVzBiKGcpKXtvPWcuZDtwPXhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtvLmkubixvLm4sby5hXSkpLmE7aWYoJHduZC5NYXRoLmFicyhsLXApPlZ6ZSl7Zj1rO2U9YTtkPW5ldyByamQobCxmKTtNdWIoZy5hLGQpO19UYyh0aGlzLGcsZSxkLGZhbHNlKTttPWEucjtpZihtKXtuPUtmYihVRChqdShtLmUsMCkpKTtkPW5ldyByamQobixmKTtNdWIoZy5hLGQpO19UYyh0aGlzLGcsZSxkLGZhbHNlKTtmPWIrbS5vKmM7ZT1tO2Q9bmV3IHJqZChuLGYpO011YihnLmEsZCk7X1RjKHRoaXMsZyxlLGQsZmFsc2UpfWQ9bmV3IHJqZChwLGYpO011YihnLmEsZCk7X1RjKHRoaXMsZyxlLGQsZmFsc2UpfX19fX07Xy56Zz1mdW5jdGlvbiBlVWMoYSl7cmV0dXJuIGEuaS5uLmErYS5uLmErYS5hLmF9O18uQWc9ZnVuY3Rpb24gZlVjKCl7cmV0dXJuIHFwZCgpLG5wZH07Xy5CZz1mdW5jdGlvbiBnVWMoKXtyZXR1cm4gcXBkKCksWW9kfTt2YXIgcSQ9c2ZiKHpFZSwnTm9ydGhUb1NvdXRoUm91dGluZ1N0cmF0ZWd5JywxODcwKTtmZWIoMTg3MSw2NzAse30saFVjKTtfLnlnPWZ1bmN0aW9uIGlVYyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHA7aWYoISFhLnImJiFhLnEpe3JldHVybn1rPWItYS5vKmM7Zm9yKGo9bmV3IEFuYihhLm4pO2ouYTxqLmMuYy5sZW5ndGg7KXtpPVJEKHluYihqKSwxMik7bD14amQoY0QoV0MobDMsMSksTnZlLDgsMCxbaS5pLm4saS5uLGkuYV0pKS5hO2ZvcihoPW5ldyBBbmIoaS5nKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMTgpO2lmKCFXMGIoZykpe289Zy5kO3A9eGpkKGNEKFdDKGwzLDEpLE52ZSw4LDAsW28uaS5uLG8ubixvLmFdKSkuYTtpZigkd25kLk1hdGguYWJzKGwtcCk+VnplKXtmPWs7ZT1hO2Q9bmV3IHJqZChsLGYpO011YihnLmEsZCk7X1RjKHRoaXMsZyxlLGQsZmFsc2UpO209YS5yO2lmKG0pe249S2ZiKFVEKGp1KG0uZSwwKSkpO2Q9bmV3IHJqZChuLGYpO011YihnLmEsZCk7X1RjKHRoaXMsZyxlLGQsZmFsc2UpO2Y9Yi1tLm8qYztlPW07ZD1uZXcgcmpkKG4sZik7TXViKGcuYSxkKTtfVGModGhpcyxnLGUsZCxmYWxzZSl9ZD1uZXcgcmpkKHAsZik7TXViKGcuYSxkKTtfVGModGhpcyxnLGUsZCxmYWxzZSl9fX19fTtfLnpnPWZ1bmN0aW9uIGpVYyhhKXtyZXR1cm4gYS5pLm4uYSthLm4uYSthLmEuYX07Xy5BZz1mdW5jdGlvbiBrVWMoKXtyZXR1cm4gcXBkKCksWW9kfTtfLkJnPWZ1bmN0aW9uIGxVYygpe3JldHVybiBxcGQoKSxucGR9O3ZhciByJD1zZmIoekVlLCdTb3V0aFRvTm9ydGhSb3V0aW5nU3RyYXRlZ3knLDE4NzEpO2ZlYigxODY5LDY3MCx7fSxtVWMpO18ueWc9ZnVuY3Rpb24gblVjKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scDtpZighIWEuciYmIWEucSl7cmV0dXJufWs9YithLm8qYztmb3Ioaj1uZXcgQW5iKGEubik7ai5hPGouYy5jLmxlbmd0aDspe2k9UkQoeW5iKGopLDEyKTtsPXhqZChjRChXQyhsMywxKSxOdmUsOCwwLFtpLmkubixpLm4saS5hXSkpLmI7Zm9yKGg9bmV3IEFuYihpLmcpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwxOCk7aWYoIVcwYihnKSl7bz1nLmQ7cD14amQoY0QoV0MobDMsMSksTnZlLDgsMCxbby5pLm4sby5uLG8uYV0pKS5iO2lmKCR3bmQuTWF0aC5hYnMobC1wKT5WemUpe2Y9aztlPWE7ZD1uZXcgcmpkKGYsbCk7TXViKGcuYSxkKTtfVGModGhpcyxnLGUsZCx0cnVlKTttPWEucjtpZihtKXtuPUtmYihVRChqdShtLmUsMCkpKTtkPW5ldyByamQoZixuKTtNdWIoZy5hLGQpO19UYyh0aGlzLGcsZSxkLHRydWUpO2Y9YittLm8qYztlPW07ZD1uZXcgcmpkKGYsbik7TXViKGcuYSxkKTtfVGModGhpcyxnLGUsZCx0cnVlKX1kPW5ldyByamQoZixwKTtNdWIoZy5hLGQpO19UYyh0aGlzLGcsZSxkLHRydWUpfX19fX07Xy56Zz1mdW5jdGlvbiBvVWMoYSl7cmV0dXJuIGEuaS5uLmIrYS5uLmIrYS5hLmJ9O18uQWc9ZnVuY3Rpb24gcFVjKCl7cmV0dXJuIHFwZCgpLFhvZH07Xy5CZz1mdW5jdGlvbiBxVWMoKXtyZXR1cm4gcXBkKCkscHBkfTt2YXIgcyQ9c2ZiKHpFZSwnV2VzdFRvRWFzdFJvdXRpbmdTdHJhdGVneScsMTg2OSk7ZmViKDgyOCwxLHt9LHdVYyk7Xy5JYj1mdW5jdGlvbiB4VWMoKXtyZXR1cm4gRmUodGhpcy5hKX07Xy5iPTA7Xy5jPWZhbHNlO18uZD1mYWxzZTtfLmY9MDt2YXIgdSQ9c2ZiKEJFZSwnTnViU3BsaW5lJyw4MjgpO2ZlYig0MTgsMSx7NDE4OjF9LEFVYyxCVWMpO3ZhciB0JD1zZmIoQkVlLCdOdWJTcGxpbmUvUG9sYXJDUCcsNDE4KTtmZWIoMTQ4MCwxLG5FZSxWVWMpO18ucmc9ZnVuY3Rpb24gWFVjKGEpe3JldHVybiBRVWMoUkQoYSwzNikpfTtfLktmPWZ1bmN0aW9uIFlVYyhhLGIpe1VVYyh0aGlzLFJEKGEsMzYpLGIpfTt2YXIgQ1VjLERVYyxFVWMsRlVjLEdVYzt2YXIgQiQ9c2ZiKEJFZSwnU3BsaW5lRWRnZVJvdXRlcicsMTQ4MCk7ZmViKDI3NCwxLHsyNzQ6MX0sX1VjKTtfLkliPWZ1bmN0aW9uIGFWYygpe3JldHVybiB0aGlzLmErJyAtPignK3RoaXMuYysnKSAnK3RoaXMuYn07Xy5jPTA7dmFyIHYkPXNmYihCRWUsJ1NwbGluZUVkZ2VSb3V0ZXIvRGVwZW5kZW5jeScsMjc0KTtmZWIoNDY1LDIyLHszOjEsMzQ6MSwyMjoxLDQ2NToxfSxlVmMpO3ZhciBiVmMsY1ZjO3ZhciB3JD10ZmIoQkVlLCdTcGxpbmVFZGdlUm91dGVyL1NpZGVUb1Byb2Nlc3MnLDQ2NSxXSSxnVmMsZlZjKTt2YXIgaFZjO2ZlYigxNDgxLDEsbndlLGpWYyk7Xy5NYj1mdW5jdGlvbiBrVmMoYSl7cmV0dXJuIEhVYygpLCFSRChhLDEzMSkub307dmFyIHgkPXNmYihCRWUsJ1NwbGluZUVkZ2VSb3V0ZXIvbGFtYmRhJDAkVHlwZScsMTQ4MSk7ZmViKDE0ODIsMSx7fSxsVmMpO18uWmU9ZnVuY3Rpb24gbVZjKGEpe3JldHVybiBIVWMoKSxSRChhLDEzMSkudisxfTt2YXIgeSQ9c2ZiKEJFZSwnU3BsaW5lRWRnZVJvdXRlci9sYW1iZGEkMSRUeXBlJywxNDgyKTtmZWIoMTQ4MywxLFF2ZSxuVmMpO18uQ2Q9ZnVuY3Rpb24gb1ZjKGEpe1NVYyh0aGlzLmEsdGhpcy5iLFJEKGEsNDIpKX07dmFyIHokPXNmYihCRWUsJ1NwbGluZUVkZ2VSb3V0ZXIvbGFtYmRhJDIkVHlwZScsMTQ4Myk7ZmViKDE0ODQsMSxRdmUscFZjKTtfLkNkPWZ1bmN0aW9uIHFWYyhhKXtUVWModGhpcy5hLHRoaXMuYixSRChhLDQyKSl9O3ZhciBBJD1zZmIoQkVlLCdTcGxpbmVFZGdlUm91dGVyL2xhbWJkYSQzJFR5cGUnLDE0ODQpO2ZlYigxMzEsMSx7MzQ6MSwxMzE6MX0sd1ZjLHhWYyk7Xy5GZD1mdW5jdGlvbiB5VmMoYSl7cmV0dXJuIHVWYyh0aGlzLFJEKGEsMTMxKSl9O18uYj0wO18uZT1mYWxzZTtfLmY9MDtfLmc9MDtfLmo9ZmFsc2U7Xy5rPWZhbHNlO18ubj0wO18ubz1mYWxzZTtfLnA9ZmFsc2U7Xy5xPWZhbHNlO18ucz0wO18udT0wO18udj0wO18uRj0wO3ZhciBEJD1zZmIoQkVlLCdTcGxpbmVTZWdtZW50JywxMzEpO2ZlYig0NjgsMSx7NDY4OjF9LHpWYyk7Xy5hPTA7Xy5iPWZhbHNlO18uYz1mYWxzZTtfLmQ9ZmFsc2U7Xy5lPWZhbHNlO18uZj0wO3ZhciBDJD1zZmIoQkVlLCdTcGxpbmVTZWdtZW50L0VkZ2VJbmZvcm1hdGlvbicsNDY4KTtmZWIoMTE5OCwxLHt9LElWYyk7dmFyIEYkPXNmYihHRWUsTHplLDExOTgpO2ZlYigxMTk5LDEsZnllLEtWYyk7Xy5OZT1mdW5jdGlvbiBMVmMoYSxiKXtyZXR1cm4gSlZjKFJEKGEsMTIxKSxSRChiLDEyMSkpfTtfLkZiPWZ1bmN0aW9uIE1WYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gTlZjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBFJD1zZmIoR0VlLE16ZSwxMTk5KTtmZWIoMTE5NywxLHt9LFRWYyk7dmFyIEckPXNmYihHRWUsJ01yVHJlZScsMTE5Nyk7ZmViKDQwNSwyMix7MzoxLDM0OjEsMjI6MSw0MDU6MSwxODg6MSwxOTY6MX0sJFZjKTtfLmRnPWZ1bmN0aW9uIGFXYygpe3JldHVybiBaVmModGhpcyl9O18ucWc9ZnVuY3Rpb24gX1ZjKCl7cmV0dXJuIFpWYyh0aGlzKX07dmFyIFVWYyxWVmMsV1ZjLFhWYzt2YXIgSCQ9dGZiKEdFZSwnVHJlZUxheW91dFBoYXNlcycsNDA1LFdJLGNXYyxiV2MpO3ZhciBkV2M7ZmViKDExMTIsMjA1LG96ZSxmV2MpO18ucmY9ZnVuY3Rpb24gZ1djKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksajtIZWIoVEQoR3hkKGEsKGhfYygpLFMkYykpKSl8fFJGYigoYz1uZXcgU0ZiKChsdWQoKSxuZXcgenVkKGEpKSksYykpO2c9Yi5laChIRWUpO2cuVWcoJ2J1aWxkIHRHcmFwaCcsMSk7aD0oaT1uZXcgWVdjLGtRYihpLGEpLHBRYihpLChxJGMoKSxoJGMpLGEpLGo9bmV3IFRzYixRVmMoYSxpLGopLFBWYyhhLGksaiksaSk7Zy5WZygpO2c9Yi5laChIRWUpO2cuVWcoJ1NwbGl0IGdyYXBoJywxKTtmPUhWYyh0aGlzLmEsaCk7Zy5WZygpO2ZvcihlPW5ldyBBbmIoZik7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDEyMSk7UlZjKHRoaXMuYixkLGIuZWgoMC41OTk5OTk5OTQwMzk1MzU1L2YuYy5sZW5ndGgpKX1nPWIuZWgoSEVlKTtnLlVnKCdQYWNrIGNvbXBvbmVudHMnLDEpO2g9R1ZjKGYpO2cuVmcoKTtnPWIuZWgoSEVlKTtnLlVnKCdBcHBseSBsYXlvdXQgcmVzdWx0cycsMSk7T1ZjKGgpO2cuVmcoKX07dmFyIEkkPXNmYihHRWUsJ1RyZWVMYXlvdXRQcm92aWRlcicsMTExMik7ZmViKDE4OTQsMSxWdmUsdVdjKTtfLkpjPWZ1bmN0aW9uIHZXYyhhKXt4Z2IodGhpcyxhKX07Xy5LYz1mdW5jdGlvbiB3V2MoKXtyZXR1cm4geW9iKCksUW9iKCksUG9ifTt2YXIgSiQ9c2ZiKEdFZSwnVHJlZVV0aWwvMScsMTg5NCk7ZmViKDE4OTUsMSxWdmUseFdjKTtfLkpjPWZ1bmN0aW9uIHlXYyhhKXt4Z2IodGhpcyxhKX07Xy5LYz1mdW5jdGlvbiB6V2MoKXtyZXR1cm4geW9iKCksUW9iKCksUG9ifTt2YXIgSyQ9c2ZiKEdFZSwnVHJlZVV0aWwvMicsMTg5NSk7ZmViKDE4ODUsMSxud2UsQVdjKTtfLk1iPWZ1bmN0aW9uIEJXYyhhKXtyZXR1cm4gSGViKFREKG1RYihSRChhLDQwKSwocSRjKCksbiRjKSkpKX07dmFyIEwkPXNmYihHRWUsJ1RyZWVVdGlsL2xhbWJkYSQwJFR5cGUnLDE4ODUpO2ZlYigxODkxLDEsbndlLENXYyk7Xy5NYj1mdW5jdGlvbiBEV2MoYSl7cmV0dXJuIHRoaXMuYS5IYyhSRChhLDQwKSl9O3ZhciBNJD1zZmIoR0VlLCdUcmVlVXRpbC9sYW1iZGEkMTAkVHlwZScsMTg5MSk7ZmViKDE4OTIsMSx7fSxFV2MpO18uS2I9ZnVuY3Rpb24gRldjKGEpe3JldHVybiBuV2ModGhpcy5hLFJEKGEsNDApKX07dmFyIE4kPXNmYihHRWUsJ1RyZWVVdGlsL2xhbWJkYSQxMSRUeXBlJywxODkyKTtmZWIoMTg5MywxLG53ZSxHV2MpO18uTWI9ZnVuY3Rpb24gSFdjKGEpe3JldHVybiBvV2ModGhpcy5hLHRoaXMuYixSRChhLDQwKSl9O3ZhciBPJD1zZmIoR0VlLCdUcmVlVXRpbC9sYW1iZGEkMTIkVHlwZScsMTg5Myk7ZmViKDE4ODYsMSxud2UsSVdjKTtfLk1iPWZ1bmN0aW9uIEpXYyhhKXtyZXR1cm4gcFdjKHRoaXMuYSxSRChhLDY1KSl9O3ZhciBQJD1zZmIoR0VlLCdUcmVlVXRpbC9sYW1iZGEkMyRUeXBlJywxODg2KTtmZWIoMTg4NywxLGZ5ZSxLV2MpO18uTmU9ZnVuY3Rpb24gTFdjKGEsYil7cmV0dXJuIHFXYyhSRChhLDY1KSxSRChiLDY1KSl9O18uRmI9ZnVuY3Rpb24gTVdjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBOV2MoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFEkPXNmYihHRWUsJ1RyZWVVdGlsL2xhbWJkYSQ0JFR5cGUnLDE4ODcpO2ZlYigxODg4LDEsbndlLE9XYyk7Xy5NYj1mdW5jdGlvbiBQV2MoYSl7cmV0dXJuIHJXYyh0aGlzLmEsUkQoYSw2NSkpfTt2YXIgUiQ9c2ZiKEdFZSwnVHJlZVV0aWwvbGFtYmRhJDckVHlwZScsMTg4OCk7ZmViKDE4ODksMSxmeWUsUVdjKTtfLk5lPWZ1bmN0aW9uIFJXYyhhLGIpe3JldHVybiBzV2MoUkQoYSw2NSksUkQoYiw2NSkpfTtfLkZiPWZ1bmN0aW9uIFNXYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gVFdjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBTJD1zZmIoR0VlLCdUcmVlVXRpbC9sYW1iZGEkOCRUeXBlJywxODg5KTtmZWIoMTg5MCwxLHt9LFVXYyk7Xy5LYj1mdW5jdGlvbiBWV2MoYSl7cmV0dXJuIFJEKGEsNjUpLmJ9O3ZhciBUJD1zZmIoR0VlLCdUcmVlVXRpbC9sYW1iZGEkOSRUeXBlJywxODkwKTtmZWIoNTA4LDEzNyx7MzoxLDUwODoxLDk2OjEsMTM3OjF9KTtfLmc9MDt2YXIgViQ9c2ZiKEpFZSwnVEdyYXBoRWxlbWVudCcsNTA4KTtmZWIoNjUsNTA4LHszOjEsNjU6MSw1MDg6MSw5NjoxLDEzNzoxfSxXV2MpO18uSWI9ZnVuY3Rpb24gWFdjKCl7cmV0dXJuICEhdGhpcy5iJiYhIXRoaXMuYz9hWGModGhpcy5iKSsnLT4nK2FYYyh0aGlzLmMpOidlXycrdGIodGhpcyl9O3ZhciBVJD1zZmIoSkVlLCdURWRnZScsNjUpO2ZlYigxMjEsMTM3LHszOjEsMTIxOjEsOTY6MSwxMzc6MX0sWVdjKTtfLkliPWZ1bmN0aW9uIFpXYygpe3ZhciBhLGIsYyxkLGU7ZT1udWxsO2ZvcihkPVN1Yih0aGlzLmIsMCk7ZC5iIT1kLmQuYzspe2M9UkQoZXZiKGQpLDQwKTtlKz0oYy5jPT1udWxsfHxjLmMubGVuZ3RoPT0wPyduXycrYy5nOiduXycrYy5jKSsnXFxuJ31mb3IoYj1TdWIodGhpcy5hLDApO2IuYiE9Yi5kLmM7KXthPVJEKGV2YihiKSw2NSk7ZSs9KCEhYS5iJiYhIWEuYz9hWGMoYS5iKSsnLT4nK2FYYyhhLmMpOidlXycrdGIoYSkpKydcXG4nfXJldHVybiBlfTt2YXIgVyQ9c2ZiKEpFZSwnVEdyYXBoJywxMjEpO2ZlYig2NDMsNTA4LHszOjEsNTA4OjEsNjQzOjEsOTY6MSwxMzc6MX0pO3ZhciAkJD1zZmIoSkVlLCdUU2hhcGUnLDY0Myk7ZmViKDQwLDY0Myx7MzoxLDUwODoxLDQwOjEsNjQzOjEsOTY6MSwxMzc6MX0sYlhjKTtfLkliPWZ1bmN0aW9uIGNYYygpe3JldHVybiBhWGModGhpcyl9O3ZhciBaJD1zZmIoSkVlLCdUTm9kZScsNDApO2ZlYigyMzYsMSxWdmUsZFhjKTtfLkpjPWZ1bmN0aW9uIGVYYyhhKXt4Z2IodGhpcyxhKX07Xy5LYz1mdW5jdGlvbiBmWGMoKXt2YXIgYTtyZXR1cm4gYT1TdWIodGhpcy5hLmQsMCksbmV3IGdYYyhhKX07dmFyIFkkPXNmYihKRWUsJ1ROb2RlLzInLDIzNik7ZmViKDMyOSwxLEF2ZSxnWGMpO18uTmI9ZnVuY3Rpb24gaFhjKGEpe1p0Yih0aGlzLGEpfTtfLlBiPWZ1bmN0aW9uIGpYYygpe3JldHVybiBSRChldmIodGhpcy5hKSw2NSkuY307Xy5PYj1mdW5jdGlvbiBpWGMoKXtyZXR1cm4gZHZiKHRoaXMuYSl9O18uUWI9ZnVuY3Rpb24ga1hjKCl7Z3ZiKHRoaXMuYSl9O3ZhciBYJD1zZmIoSkVlLCdUTm9kZS8yLzEnLDMyOSk7ZmViKDE5MjMsMSxRQWUscVhjKTtfLktmPWZ1bmN0aW9uIERYYyhhLGIpe29YYyh0aGlzLFJEKGEsMTIxKSxiKX07dmFyIG1fPXNmYihMRWUsJ0NvbXBhY3Rpb25Qcm9jZXNzb3InLDE5MjMpO2ZlYigxOTI0LDEsZnllLEVYYyk7Xy5OZT1mdW5jdGlvbiBGWGMoYSxiKXtyZXR1cm4gclhjKHRoaXMuYSxSRChhLDQwKSxSRChiLDQwKSl9O18uRmI9ZnVuY3Rpb24gR1hjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBIWGMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIF8kPXNmYihMRWUsJ0NvbXBhY3Rpb25Qcm9jZXNzb3IvbGFtYmRhJDAkVHlwZScsMTkyNCk7ZmViKDE5MjUsMSxud2UsSVhjKTtfLk1iPWZ1bmN0aW9uIEpYYyhhKXtyZXR1cm4gc1hjKHRoaXMuYix0aGlzLmEsUkQoYSw0MikpfTtfLmE9MDtfLmI9MDt2YXIgYV89c2ZiKExFZSwnQ29tcGFjdGlvblByb2Nlc3Nvci9sYW1iZGEkMSRUeXBlJywxOTI1KTtmZWIoMTkzNCwxLGZ5ZSxLWGMpO18uTmU9ZnVuY3Rpb24gTFhjKGEsYil7cmV0dXJuIHRYYyhSRChhLDQwKSxSRChiLDQwKSl9O18uRmI9ZnVuY3Rpb24gTVhjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBOWGMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIGJfPXNmYihMRWUsJ0NvbXBhY3Rpb25Qcm9jZXNzb3IvbGFtYmRhJDEwJFR5cGUnLDE5MzQpO2ZlYigxOTM1LDEsZnllLE9YYyk7Xy5OZT1mdW5jdGlvbiBQWGMoYSxiKXtyZXR1cm4gdVhjKFJEKGEsNDApLFJEKGIsNDApKX07Xy5GYj1mdW5jdGlvbiBRWGMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIFJYYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgY189c2ZiKExFZSwnQ29tcGFjdGlvblByb2Nlc3Nvci9sYW1iZGEkMTEkVHlwZScsMTkzNSk7ZmViKDE5MzYsMSxmeWUsU1hjKTtfLk5lPWZ1bmN0aW9uIFRYYyhhLGIpe3JldHVybiB2WGMoUkQoYSw0MCksUkQoYiw0MCkpfTtfLkZiPWZ1bmN0aW9uIFVYYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gVlhjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBkXz1zZmIoTEVlLCdDb21wYWN0aW9uUHJvY2Vzc29yL2xhbWJkYSQxMiRUeXBlJywxOTM2KTtmZWIoMTkyNiwxLG53ZSxXWGMpO18uTWI9ZnVuY3Rpb24gWFhjKGEpe3JldHVybiB3WGModGhpcy5hLFJEKGEsNDIpKX07Xy5hPTA7dmFyIGVfPXNmYihMRWUsJ0NvbXBhY3Rpb25Qcm9jZXNzb3IvbGFtYmRhJDIkVHlwZScsMTkyNik7ZmViKDE5MjcsMSxud2UsWVhjKTtfLk1iPWZ1bmN0aW9uIFpYYyhhKXtyZXR1cm4geFhjKHRoaXMuYSxSRChhLDQyKSl9O18uYT0wO3ZhciBmXz1zZmIoTEVlLCdDb21wYWN0aW9uUHJvY2Vzc29yL2xhbWJkYSQzJFR5cGUnLDE5MjcpO2ZlYigxOTI4LDEsbndlLCRYYyk7Xy5NYj1mdW5jdGlvbiBfWGMoYSl7cmV0dXJuIFJEKGEsNDApLmMuaW5kZXhPZihJRWUpPT0tMX07dmFyIGdfPXNmYihMRWUsJ0NvbXBhY3Rpb25Qcm9jZXNzb3IvbGFtYmRhJDQkVHlwZScsMTkyOCk7ZmViKDE5MjksMSx7fSxhWWMpO18uS2I9ZnVuY3Rpb24gYlljKGEpe3JldHVybiB5WGModGhpcy5hLFJEKGEsNDApKX07Xy5hPTA7dmFyIGhfPXNmYihMRWUsJ0NvbXBhY3Rpb25Qcm9jZXNzb3IvbGFtYmRhJDUkVHlwZScsMTkyOSk7ZmViKDE5MzAsMSx7fSxjWWMpO18uS2I9ZnVuY3Rpb24gZFljKGEpe3JldHVybiB6WGModGhpcy5hLFJEKGEsNDApKX07Xy5hPTA7dmFyIGlfPXNmYihMRWUsJ0NvbXBhY3Rpb25Qcm9jZXNzb3IvbGFtYmRhJDYkVHlwZScsMTkzMCk7ZmViKDE5MzEsMSxmeWUsZVljKTtfLk5lPWZ1bmN0aW9uIGZZYyhhLGIpe3JldHVybiBBWGModGhpcy5hLFJEKGEsMjQwKSxSRChiLDI0MCkpfTtfLkZiPWZ1bmN0aW9uIGdZYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gaFljKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBqXz1zZmIoTEVlLCdDb21wYWN0aW9uUHJvY2Vzc29yL2xhbWJkYSQ3JFR5cGUnLDE5MzEpO2ZlYigxOTMyLDEsZnllLGlZYyk7Xy5OZT1mdW5jdGlvbiBqWWMoYSxiKXtyZXR1cm4gQlhjKHRoaXMuYSxSRChhLDQwKSxSRChiLDQwKSl9O18uRmI9ZnVuY3Rpb24ga1ljKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBsWWMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIGtfPXNmYihMRWUsJ0NvbXBhY3Rpb25Qcm9jZXNzb3IvbGFtYmRhJDgkVHlwZScsMTkzMik7ZmViKDE5MzMsMSxmeWUsbVljKTtfLk5lPWZ1bmN0aW9uIG5ZYyhhLGIpe3JldHVybiBDWGMoUkQoYSw0MCksUkQoYiw0MCkpfTtfLkZiPWZ1bmN0aW9uIG9ZYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gcFljKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBsXz1zZmIoTEVlLCdDb21wYWN0aW9uUHJvY2Vzc29yL2xhbWJkYSQ5JFR5cGUnLDE5MzMpO2ZlYigxOTIxLDEsUUFlLHJZYyk7Xy5LZj1mdW5jdGlvbiBzWWMoYSxiKXtxWWMoUkQoYSwxMjEpLGIpfTt2YXIgbl89c2ZiKExFZSwnRGlyZWN0aW9uUHJvY2Vzc29yJywxOTIxKTtmZWIoMTkxMywxLFFBZSx2WWMpO18uS2Y9ZnVuY3Rpb24geFljKGEsYil7dVljKHRoaXMsUkQoYSwxMjEpLGIpfTt2YXIgb189c2ZiKExFZSwnRmFuUHJvY2Vzc29yJywxOTEzKTtmZWIoMTkzNywxLFFBZSx6WWMpO18uS2Y9ZnVuY3Rpb24gQ1ljKGEsYil7eVljKFJEKGEsMTIxKSxiKX07dmFyIHRfPXNmYihMRWUsJ0dyYXBoQm91bmRzUHJvY2Vzc29yJywxOTM3KTtmZWIoMTkzOCwxLHt9LERZYyk7Xy5ZZT1mdW5jdGlvbiBFWWMoYSl7cmV0dXJuIFJEKGEsNDApLmUuYX07dmFyIHBfPXNmYihMRWUsJ0dyYXBoQm91bmRzUHJvY2Vzc29yL2xhbWJkYSQwJFR5cGUnLDE5MzgpO2ZlYigxOTM5LDEse30sRlljKTtfLlllPWZ1bmN0aW9uIEdZYyhhKXtyZXR1cm4gUkQoYSw0MCkuZS5ifTt2YXIgcV89c2ZiKExFZSwnR3JhcGhCb3VuZHNQcm9jZXNzb3IvbGFtYmRhJDEkVHlwZScsMTkzOSk7ZmViKDE5NDAsMSx7fSxIWWMpO18uWWU9ZnVuY3Rpb24gSVljKGEpe3JldHVybiBBWWMoUkQoYSw0MCkpfTt2YXIgcl89c2ZiKExFZSwnR3JhcGhCb3VuZHNQcm9jZXNzb3IvbGFtYmRhJDIkVHlwZScsMTk0MCk7ZmViKDE5NDEsMSx7fSxKWWMpO18uWWU9ZnVuY3Rpb24gS1ljKGEpe3JldHVybiBCWWMoUkQoYSw0MCkpfTt2YXIgc189c2ZiKExFZSwnR3JhcGhCb3VuZHNQcm9jZXNzb3IvbGFtYmRhJDMkVHlwZScsMTk0MSk7ZmViKDI2MiwyMix7MzoxLDM0OjEsMjI6MSwyNjI6MSwxOTY6MX0sWFljKTtfLmRnPWZ1bmN0aW9uIFlZYygpe3N3aXRjaCh0aGlzLmcpe2Nhc2UgMDpyZXR1cm4gbmV3IERaYztjYXNlIDE6cmV0dXJuIG5ldyB2WWM7Y2FzZSAyOnJldHVybiBuZXcgblpjO2Nhc2UgMzpyZXR1cm4gbmV3IHRaYztjYXNlIDQ6cmV0dXJuIG5ldyBnWmM7Y2FzZSA4OnJldHVybiBuZXcgY1pjO2Nhc2UgNTpyZXR1cm4gbmV3IHJZYztjYXNlIDY6cmV0dXJuIG5ldyBBWmM7Y2FzZSA3OnJldHVybiBuZXcgcVhjO2Nhc2UgOTpyZXR1cm4gbmV3IHpZYztjYXNlIDEwOnJldHVybiBuZXcgR1pjO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBhZ2IobEJlKyh0aGlzLmYhPW51bGw/dGhpcy5mOicnK3RoaXMuZykpKTt9fTt2YXIgTFljLE1ZYyxOWWMsT1ljLFBZYyxRWWMsUlljLFNZYyxUWWMsVVljLFZZYzt2YXIgdV89dGZiKExFZSxtQmUsMjYyLFdJLCRZYyxaWWMpO3ZhciBfWWM7ZmViKDE5MjAsMSxRQWUsY1pjKTtfLktmPWZ1bmN0aW9uIGRaYyhhLGIpe2JaYyhSRChhLDEyMSksYil9O3ZhciB2Xz1zZmIoTEVlLCdMZXZlbENvb3JkaW5hdGVzUHJvY2Vzc29yJywxOTIwKTtmZWIoMTkxOCwxLFFBZSxnWmMpO18uS2Y9ZnVuY3Rpb24gaFpjKGEsYil7ZVpjKHRoaXMsUkQoYSwxMjEpLGIpfTtfLmE9MDt2YXIgeF89c2ZiKExFZSwnTGV2ZWxIZWlnaHRQcm9jZXNzb3InLDE5MTgpO2ZlYigxOTE5LDEsVnZlLGlaYyk7Xy5KYz1mdW5jdGlvbiBqWmMoYSl7eGdiKHRoaXMsYSl9O18uS2M9ZnVuY3Rpb24ga1pjKCl7cmV0dXJuIHlvYigpLFFvYigpLFBvYn07dmFyIHdfPXNmYihMRWUsJ0xldmVsSGVpZ2h0UHJvY2Vzc29yLzEnLDE5MTkpO2ZlYigxOTE0LDEsUUFlLG5aYyk7Xy5LZj1mdW5jdGlvbiBvWmMoYSxiKXtsWmModGhpcyxSRChhLDEyMSksYil9O3ZhciB6Xz1zZmIoTEVlLCdMZXZlbFByb2Nlc3NvcicsMTkxNCk7ZmViKDE5MTUsMSxud2UscFpjKTtfLk1iPWZ1bmN0aW9uIHFaYyhhKXtyZXR1cm4gSGViKFREKG1RYihSRChhLDQwKSwocSRjKCksbiRjKSkpKX07dmFyIHlfPXNmYihMRWUsJ0xldmVsUHJvY2Vzc29yL2xhbWJkYSQwJFR5cGUnLDE5MTUpO2ZlYigxOTE2LDEsUUFlLHRaYyk7Xy5LZj1mdW5jdGlvbiB1WmMoYSxiKXtyWmModGhpcyxSRChhLDEyMSksYil9O18uYT0wO3ZhciBCXz1zZmIoTEVlLCdOZWlnaGJvcnNQcm9jZXNzb3InLDE5MTYpO2ZlYigxOTE3LDEsVnZlLHZaYyk7Xy5KYz1mdW5jdGlvbiB3WmMoYSl7eGdiKHRoaXMsYSl9O18uS2M9ZnVuY3Rpb24geFpjKCl7cmV0dXJuIHlvYigpLFFvYigpLFBvYn07dmFyIEFfPXNmYihMRWUsJ05laWdoYm9yc1Byb2Nlc3Nvci8xJywxOTE3KTtmZWIoMTkyMiwxLFFBZSxBWmMpO18uS2Y9ZnVuY3Rpb24gQlpjKGEsYil7eVpjKHRoaXMsUkQoYSwxMjEpLGIpfTtfLmE9MDt2YXIgQ189c2ZiKExFZSwnTm9kZVBvc2l0aW9uUHJvY2Vzc29yJywxOTIyKTtmZWIoMTkxMiwxLFFBZSxEWmMpO18uS2Y9ZnVuY3Rpb24gRVpjKGEsYil7Q1pjKHRoaXMsUkQoYSwxMjEpLGIpfTt2YXIgRF89c2ZiKExFZSwnUm9vdFByb2Nlc3NvcicsMTkxMik7ZmViKDE5NDIsMSxRQWUsR1pjKTtfLktmPWZ1bmN0aW9uIEhaYyhhLGIpe0ZaYyhSRChhLDEyMSksYil9O3ZhciBFXz1zZmIoTEVlLCdVbnRyZWVpZnllcicsMTk0Mik7ZmViKDM5MiwyMix7MzoxLDM0OjEsMjI6MSwzOTI6MX0sTVpjKTt2YXIgSVpjLEpaYyxLWmM7dmFyIEZfPXRmYihQRWUsJ0VkZ2VSb3V0aW5nTW9kZScsMzkyLFdJLE9aYyxOWmMpO3ZhciBQWmM7dmFyIFJaYyxTWmMsVFpjLFVaYyxWWmMsV1pjLFhaYyxZWmMsWlpjLCRaYyxfWmMsYSRjLGIkYyxjJGMsZCRjLGUkYyxmJGMsZyRjLGgkYyxpJGMsaiRjLGskYyxsJGMsbSRjLG4kYyxvJGMscCRjO2ZlYig4NjIsMSxFeWUsQyRjKTtfLmhmPWZ1bmN0aW9uIEQkYyhhKXtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxSRWUpLCcnKSxZRWUpLCdUdXJucyBvbiBUcmVlIGNvbXBhY3Rpb24gd2hpY2ggZGVjcmVhc2VzIHRoZSBzaXplIG9mIHRoZSB3aG9sZSB0cmVlIGJ5IHBsYWNpbmcgbm9kZXMgb2YgbXVsdGlwbGUgbGV2ZWxzIGluIG9uZSBsYXJnZSBsZXZlbCcpLChHZWIoKSxmYWxzZSkpLChraWQoKSxjaWQpKSxRSSkseHNiKChZaGQoKSxXaGQpKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxTRWUpLCcnKSwnRWRnZSBFbmQgVGV4dHVyZSBMZW5ndGgnKSwnU2hvdWxkIGJlIHNldCB0byB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0dXJlIGF0IHRoZSBlbmQgb2YgYW4gZWRnZS4gVGhpcyB2YWx1ZSBjYW4gYmUgdXNlZCB0byBpbXByb3ZlIHRoZSBFZGdlIFJvdXRpbmcuJyksNyksZGlkKSxWSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsVEVlKSwnJyksJ1RyZWUgTGV2ZWwnKSwnVGhlIGluZGV4IGZvciB0aGUgdHJlZSBsZXZlbCB0aGUgbm9kZSBpcyBpbicpLHNnYigwKSksZ2lkKSxiSikseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsVUVlKSwnJyksWUVlKSwnV2hlbiBzZXQgdG8gYSBwb3NpdGl2ZSBudW1iZXIgdGhpcyBvcHRpb24gd2lsbCBmb3JjZSB0aGUgYWxnb3JpdGhtIHRvIHBsYWNlIHRoZSBub2RlIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gd2l0aGluIHRoZSB0cmVlcyBsYXllciBpZiB3ZWlnaHRpbmcgaXMgc2V0IHRvIGNvbnN0cmFpbnQnKSxzZ2IoLTEpKSxnaWQpLGJKKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxWRWUpLCcnKSwnV2VpZ2h0aW5nIG9mIE5vZGVzJyksJ1doaWNoIHdlaWdodGluZyB0byB1c2Ugd2hlbiBjb21wdXRpbmcgYSBub2RlIG9yZGVyLicpLEEkYyksZWlkKSxKXykseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsV0VlKSwnJyksJ0VkZ2UgUm91dGluZyBNb2RlJyksJ0Nob29zZXMgYW4gRWRnZSBSb3V0aW5nIGFsZ29yaXRobS4nKSx1JGMpLGVpZCksRl8pLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFhFZSksJycpLCdTZWFyY2ggT3JkZXInKSwnV2hpY2ggc2VhcmNoIG9yZGVyIHRvIHVzZSB3aGVuIGNvbXB1dGluZyBhIHNwYW5uaW5nIHRyZWUuJykseCRjKSxlaWQpLEtfKSx4c2IoV2hkKSkpKTtpX2MoKG5ldyBqX2MsYSkpfTt2YXIgciRjLHMkYyx0JGMsdSRjLHYkYyx3JGMseCRjLHkkYyx6JGMsQSRjO3ZhciBHXz1zZmIoUEVlLCdNclRyZWVNZXRhRGF0YVByb3ZpZGVyJyw4NjIpO2ZlYigxMDA2LDEsRXllLGpfYyk7Xy5oZj1mdW5jdGlvbiBrX2MoYSl7aV9jKGEpfTt2YXIgRSRjLEYkYyxHJGMsSCRjLEkkYyxKJGMsSyRjLEwkYyxNJGMsTiRjLE8kYyxQJGMsUSRjLFIkYyxTJGMsVCRjLFUkYyxWJGMsVyRjLFgkYyxZJGMsWiRjLCQkYyxfJGMsYV9jLGJfYyxjX2MsZF9jLGVfYyxmX2MsZ19jO3ZhciBJXz1zZmIoUEVlLCdNclRyZWVPcHRpb25zJywxMDA2KTtmZWIoMTAwNywxLHt9LGxfYyk7Xy5zZj1mdW5jdGlvbiBtX2MoKXt2YXIgYTtyZXR1cm4gYT1uZXcgZldjLGF9O18udGY9ZnVuY3Rpb24gbl9jKGEpe307dmFyIEhfPXNmYihQRWUsJ01yVHJlZU9wdGlvbnMvTXJ0cmVlRmFjdG9yeScsMTAwNyk7ZmViKDM1MywyMix7MzoxLDM0OjEsMjI6MSwzNTM6MX0sdF9jKTt2YXIgb19jLHBfYyxxX2Mscl9jO3ZhciBKXz10ZmIoUEVlLCdPcmRlcldlaWdodGluZycsMzUzLFdJLHZfYyx1X2MpO3ZhciB3X2M7ZmViKDQzMywyMix7MzoxLDM0OjEsMjI6MSw0MzM6MX0sQl9jKTt2YXIgeV9jLHpfYzt2YXIgS189dGZiKFBFZSwnVHJlZWlmeWluZ09yZGVyJyw0MzMsV0ksRF9jLENfYyk7dmFyIEVfYztmZWIoMTQ4NiwxLG5FZSxOX2MpO18ucmc9ZnVuY3Rpb24gT19jKGEpe3JldHVybiBSRChhLDEyMSksR19jfTtfLktmPWZ1bmN0aW9uIFBfYyhhLGIpe01fYyh0aGlzLFJEKGEsMTIxKSxiKX07dmFyIEdfYzt2YXIgTF89c2ZiKCdvcmcuZWNsaXBzZS5lbGsuYWxnLm1ydHJlZS5wMXRyZWVpZnknLCdERlNUcmVlaWZ5ZXInLDE0ODYpO2ZlYigxNDg3LDEsbkVlLFZfYyk7Xy5yZz1mdW5jdGlvbiBXX2MoYSl7cmV0dXJuIFJEKGEsMTIxKSxRX2N9O18uS2Y9ZnVuY3Rpb24gJF9jKGEsYil7VV9jKHRoaXMsUkQoYSwxMjEpLGIpfTt2YXIgUV9jO3ZhciBUXz1zZmIoYUZlLCdOb2RlT3JkZXJlcicsMTQ4Nyk7ZmViKDE0OTQsMSx7fSxhMGMpO18udGQ9ZnVuY3Rpb24gYjBjKGEpe3JldHVybiBfX2MoYSl9O3ZhciBNXz1zZmIoYUZlLCdOb2RlT3JkZXJlci8wbWV0aG9kcmVmJGxhbWJkYSQ2JFR5cGUnLDE0OTQpO2ZlYigxNDg4LDEsbndlLGMwYyk7Xy5NYj1mdW5jdGlvbiBkMGMoYSl7cmV0dXJuIFJfYygpLEhlYihURChtUWIoUkQoYSw0MCksKHEkYygpLG4kYykpKSl9O3ZhciBOXz1zZmIoYUZlLCdOb2RlT3JkZXJlci9sYW1iZGEkMCRUeXBlJywxNDg4KTtmZWIoMTQ4OSwxLG53ZSxlMGMpO18uTWI9ZnVuY3Rpb24gZjBjKGEpe3JldHVybiBSX2MoKSxSRChtUWIoUkQoYSw0MCksKGhfYygpLFckYykpLDE3KS5hPDB9O3ZhciBPXz1zZmIoYUZlLCdOb2RlT3JkZXJlci9sYW1iZGEkMSRUeXBlJywxNDg5KTtmZWIoMTQ5MCwxLG53ZSxnMGMpO18uTWI9ZnVuY3Rpb24gaDBjKGEpe3JldHVybiBYX2ModGhpcy5hLFJEKGEsNDApKX07dmFyIFBfPXNmYihhRmUsJ05vZGVPcmRlcmVyL2xhbWJkYSQyJFR5cGUnLDE0OTApO2ZlYigxNDkxLDEsbndlLGkwYyk7Xy5NYj1mdW5jdGlvbiBqMGMoYSl7cmV0dXJuIFlfYyh0aGlzLmEsUkQoYSw0MCkpfTt2YXIgUV89c2ZiKGFGZSwnTm9kZU9yZGVyZXIvbGFtYmRhJDMkVHlwZScsMTQ5MSk7ZmViKDE0OTIsMSxmeWUsazBjKTtfLk5lPWZ1bmN0aW9uIGwwYyhhLGIpe3JldHVybiBaX2MoUkQoYSw0MCksUkQoYiw0MCkpfTtfLkZiPWZ1bmN0aW9uIG0wYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gbjBjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBSXz1zZmIoYUZlLCdOb2RlT3JkZXJlci9sYW1iZGEkNCRUeXBlJywxNDkyKTtmZWIoMTQ5MywxLG53ZSxvMGMpO18uTWI9ZnVuY3Rpb24gcDBjKGEpe3JldHVybiBSX2MoKSxSRChtUWIoUkQoYSw0MCksKHEkYygpLFhaYykpLDE3KS5hIT0wfTt2YXIgU189c2ZiKGFGZSwnTm9kZU9yZGVyZXIvbGFtYmRhJDUkVHlwZScsMTQ5Myk7ZmViKDE0OTUsMSxuRWUseDBjKTtfLnJnPWZ1bmN0aW9uIHkwYyhhKXtyZXR1cm4gUkQoYSwxMjEpLHEwY307Xy5LZj1mdW5jdGlvbiB6MGMoYSxiKXt2MGModGhpcyxSRChhLDEyMSksYil9O18uYj0wO3ZhciBxMGM7dmFyIFVfPXNmYignb3JnLmVjbGlwc2UuZWxrLmFsZy5tcnRyZWUucDNwbGFjZScsJ05vZGVQbGFjZXInLDE0OTUpO2ZlYigxNDk2LDEsbkVlLEowYyk7Xy5yZz1mdW5jdGlvbiBLMGMoYSl7cmV0dXJuIFJEKGEsMTIxKSxBMGN9O18uS2Y9ZnVuY3Rpb24gWTBjKGEsYil7STBjKFJEKGEsMTIxKSxiKX07dmFyIEEwYzt2YXIgbzA9c2ZiKGJGZSwnRWRnZVJvdXRlcicsMTQ5Nik7ZmViKDE0OTgsMSxmeWUsWjBjKTtfLk5lPWZ1bmN0aW9uICQwYyhhLGIpe3JldHVybiBoZ2IoUkQoYSwxNykuYSxSRChiLDE3KS5hKX07Xy5GYj1mdW5jdGlvbiBfMGMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIGExYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgVl89c2ZiKGJGZSwnRWRnZVJvdXRlci8wbWV0aG9kcmVmJGNvbXBhcmUkVHlwZScsMTQ5OCk7ZmViKDE1MDMsMSx7fSxiMWMpO18uWWU9ZnVuY3Rpb24gYzFjKGEpe3JldHVybiBLZmIoVUQoYSkpfTt2YXIgV189c2ZiKGJGZSwnRWRnZVJvdXRlci8xbWV0aG9kcmVmJGRvdWJsZVZhbHVlJFR5cGUnLDE1MDMpO2ZlYigxNTA1LDEsZnllLGQxYyk7Xy5OZT1mdW5jdGlvbiBlMWMoYSxiKXtyZXR1cm4gUWZiKEtmYihVRChhKSksS2ZiKFVEKGIpKSl9O18uRmI9ZnVuY3Rpb24gZjFjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBnMWMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFhfPXNmYihiRmUsJ0VkZ2VSb3V0ZXIvMm1ldGhvZHJlZiRjb21wYXJlJFR5cGUnLDE1MDUpO2ZlYigxNTA3LDEsZnllLGgxYyk7Xy5OZT1mdW5jdGlvbiBpMWMoYSxiKXtyZXR1cm4gUWZiKEtmYihVRChhKSksS2ZiKFVEKGIpKSl9O18uRmI9ZnVuY3Rpb24gajFjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBrMWMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFlfPXNmYihiRmUsJ0VkZ2VSb3V0ZXIvM21ldGhvZHJlZiRjb21wYXJlJFR5cGUnLDE1MDcpO2ZlYigxNTA5LDEse30sbDFjKTtfLlllPWZ1bmN0aW9uIG0xYyhhKXtyZXR1cm4gS2ZiKFVEKGEpKX07dmFyIFpfPXNmYihiRmUsJ0VkZ2VSb3V0ZXIvNG1ldGhvZHJlZiRkb3VibGVWYWx1ZSRUeXBlJywxNTA5KTtmZWIoMTUxMSwxLGZ5ZSxuMWMpO18uTmU9ZnVuY3Rpb24gbzFjKGEsYil7cmV0dXJuIFFmYihLZmIoVUQoYSkpLEtmYihVRChiKSkpfTtfLkZiPWZ1bmN0aW9uIHAxYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gcTFjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciAkXz1zZmIoYkZlLCdFZGdlUm91dGVyLzVtZXRob2RyZWYkY29tcGFyZSRUeXBlJywxNTExKTtmZWIoMTUxMywxLGZ5ZSxyMWMpO18uTmU9ZnVuY3Rpb24gczFjKGEsYil7cmV0dXJuIFFmYihLZmIoVUQoYSkpLEtmYihVRChiKSkpfTtfLkZiPWZ1bmN0aW9uIHQxYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gdTFjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBfXz1zZmIoYkZlLCdFZGdlUm91dGVyLzZtZXRob2RyZWYkY29tcGFyZSRUeXBlJywxNTEzKTtmZWIoMTQ5NywxLHt9LHYxYyk7Xy5LYj1mdW5jdGlvbiB3MWMoYSl7cmV0dXJuIEIwYygpLFJEKG1RYihSRChhLDQwKSwoaF9jKCksZl9jKSksMTcpfTt2YXIgYTA9c2ZiKGJGZSwnRWRnZVJvdXRlci9sYW1iZGEkMCRUeXBlJywxNDk3KTtmZWIoMTUwOCwxLHt9LHgxYyk7Xy5LYj1mdW5jdGlvbiB5MWMoYSl7cmV0dXJuIEwwYyhSRChhLDQwKSl9O3ZhciBiMD1zZmIoYkZlLCdFZGdlUm91dGVyL2xhbWJkYSQxMSRUeXBlJywxNTA4KTtmZWIoMTUxMCwxLHt9LHoxYyk7Xy5LYj1mdW5jdGlvbiBBMWMoYSl7cmV0dXJuIE0wYyh0aGlzLmIsdGhpcy5hLFJEKGEsNDApKX07Xy5hPTA7Xy5iPTA7dmFyIGMwPXNmYihiRmUsJ0VkZ2VSb3V0ZXIvbGFtYmRhJDEzJFR5cGUnLDE1MTApO2ZlYigxNTEyLDEse30sQjFjKTtfLktiPWZ1bmN0aW9uIEMxYyhhKXtyZXR1cm4gTjBjKHRoaXMuYix0aGlzLmEsUkQoYSw0MCkpfTtfLmE9MDtfLmI9MDt2YXIgZDA9c2ZiKGJGZSwnRWRnZVJvdXRlci9sYW1iZGEkMTUkVHlwZScsMTUxMik7ZmViKDE1MTQsMSxmeWUsRDFjKTtfLk5lPWZ1bmN0aW9uIEUxYyhhLGIpe3JldHVybiBPMGMoUkQoYSw2NSksUkQoYiw2NSkpfTtfLkZiPWZ1bmN0aW9uIEYxYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gRzFjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBlMD1zZmIoYkZlLCdFZGdlUm91dGVyL2xhbWJkYSQxNyRUeXBlJywxNTE0KTtmZWIoMTUxNSwxLGZ5ZSxIMWMpO18uTmU9ZnVuY3Rpb24gSTFjKGEsYil7cmV0dXJuIFAwYyhSRChhLDY1KSxSRChiLDY1KSl9O18uRmI9ZnVuY3Rpb24gSjFjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBLMWMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIGYwPXNmYihiRmUsJ0VkZ2VSb3V0ZXIvbGFtYmRhJDE4JFR5cGUnLDE1MTUpO2ZlYigxNTE2LDEsZnllLEwxYyk7Xy5OZT1mdW5jdGlvbiBNMWMoYSxiKXtyZXR1cm4gUTBjKFJEKGEsNjUpLFJEKGIsNjUpKX07Xy5GYj1mdW5jdGlvbiBOMWMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIE8xYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgZzA9c2ZiKGJGZSwnRWRnZVJvdXRlci9sYW1iZGEkMTkkVHlwZScsMTUxNik7ZmViKDE0OTksMSxud2UsUDFjKTtfLk1iPWZ1bmN0aW9uIFExYyhhKXtyZXR1cm4gUjBjKHRoaXMuYSxSRChhLDQwKSl9O18uYT0wO3ZhciBoMD1zZmIoYkZlLCdFZGdlUm91dGVyL2xhbWJkYSQyJFR5cGUnLDE0OTkpO2ZlYigxNTE3LDEsZnllLFIxYyk7Xy5OZT1mdW5jdGlvbiBTMWMoYSxiKXtyZXR1cm4gUzBjKFJEKGEsNjUpLFJEKGIsNjUpKX07Xy5GYj1mdW5jdGlvbiBUMWMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIFUxYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgaTA9c2ZiKGJGZSwnRWRnZVJvdXRlci9sYW1iZGEkMjAkVHlwZScsMTUxNyk7ZmViKDE1MDAsMSxmeWUsVjFjKTtfLk5lPWZ1bmN0aW9uIFcxYyhhLGIpe3JldHVybiBUMGMoUkQoYSw0MCksUkQoYiw0MCkpfTtfLkZiPWZ1bmN0aW9uIFgxYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gWTFjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBqMD1zZmIoYkZlLCdFZGdlUm91dGVyL2xhbWJkYSQzJFR5cGUnLDE1MDApO2ZlYigxNTAxLDEsZnllLFoxYyk7Xy5OZT1mdW5jdGlvbiAkMWMoYSxiKXtyZXR1cm4gVTBjKFJEKGEsNDApLFJEKGIsNDApKX07Xy5GYj1mdW5jdGlvbiBfMWMoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIGEyYygpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgazA9c2ZiKGJGZSwnRWRnZVJvdXRlci9sYW1iZGEkNCRUeXBlJywxNTAxKTtmZWIoMTUwMiwxLHt9LGIyYyk7Xy5LYj1mdW5jdGlvbiBjMmMoYSl7cmV0dXJuIFYwYyhSRChhLDQwKSl9O3ZhciBsMD1zZmIoYkZlLCdFZGdlUm91dGVyL2xhbWJkYSQ1JFR5cGUnLDE1MDIpO2ZlYigxNTA0LDEse30sZDJjKTtfLktiPWZ1bmN0aW9uIGUyYyhhKXtyZXR1cm4gVzBjKHRoaXMuYix0aGlzLmEsUkQoYSw0MCkpfTtfLmE9MDtfLmI9MDt2YXIgbTA9c2ZiKGJGZSwnRWRnZVJvdXRlci9sYW1iZGEkNyRUeXBlJywxNTA0KTtmZWIoMTUwNiwxLHt9LGYyYyk7Xy5LYj1mdW5jdGlvbiBnMmMoYSl7cmV0dXJuIFgwYyh0aGlzLmIsdGhpcy5hLFJEKGEsNDApKX07Xy5hPTA7Xy5iPTA7dmFyIG4wPXNmYihiRmUsJ0VkZ2VSb3V0ZXIvbGFtYmRhJDkkVHlwZScsMTUwNik7ZmViKDY3NSwxLHs2NzU6MX0saTJjKTtfLmU9MDtfLmY9ZmFsc2U7Xy5nPWZhbHNlO3ZhciByMD1zZmIoYkZlLCdNdWx0aUxldmVsRWRnZU5vZGVOb2RlR2FwJyw2NzUpO2ZlYigxOTQzLDEsZnllLGwyYyk7Xy5OZT1mdW5jdGlvbiBtMmMoYSxiKXtyZXR1cm4gajJjKFJEKGEsMjQwKSxSRChiLDI0MCkpfTtfLkZiPWZ1bmN0aW9uIG4yYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gbzJjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBwMD1zZmIoYkZlLCdNdWx0aUxldmVsRWRnZU5vZGVOb2RlR2FwL2xhbWJkYSQwJFR5cGUnLDE5NDMpO2ZlYigxOTQ0LDEsZnllLHAyYyk7Xy5OZT1mdW5jdGlvbiBxMmMoYSxiKXtyZXR1cm4gazJjKFJEKGEsMjQwKSxSRChiLDI0MCkpfTtfLkZiPWZ1bmN0aW9uIHIyYyhhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gczJjKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBxMD1zZmIoYkZlLCdNdWx0aUxldmVsRWRnZU5vZGVOb2RlR2FwL2xhbWJkYSQxJFR5cGUnLDE5NDQpO3ZhciB0MmM7ZmViKDUwMSwyMix7MzoxLDM0OjEsMjI6MSw1MDE6MSwxODg6MSwxOTY6MX0sejJjKTtfLmRnPWZ1bmN0aW9uIEIyYygpe3JldHVybiB5MmModGhpcyl9O18ucWc9ZnVuY3Rpb24gQTJjKCl7cmV0dXJuIHkyYyh0aGlzKX07dmFyIHYyYyx3MmM7dmFyIHMwPXRmYihjRmUsJ1JhZGlhbExheW91dFBoYXNlcycsNTAxLFdJLEQyYyxDMmMpO3ZhciBFMmM7ZmViKDExMTMsMjA1LG96ZSxIMmMpO18ucmY9ZnVuY3Rpb24gSTJjKGEsYil7dmFyIGMsZCxlLGYsZyxoO2M9RzJjKHRoaXMsYSk7Yi5VZygnUmFkaWFsIGxheW91dCcsYy5jLmxlbmd0aCk7SGViKFREKEd4ZChhLCgkNGMoKSxONGMpKSkpfHxSRmIoKGQ9bmV3IFNGYigobHVkKCksbmV3IHp1ZChhKSkpLGQpKTtoPUsyYyhhKTtJeGQoYSwodTJjKCksdDJjKSxoKTtpZighaCl7dGhyb3cgQWRiKG5ldyBhZ2IoJ1RoZSBnaXZlbiBncmFwaCBpcyBub3QgYSB0cmVlIScpKX1lPUtmYihVRChHeGQoYSxTNGMpKSk7ZT09MCYmKGU9SjJjKGEpKTtJeGQoYSxTNGMsZSk7Zm9yKGc9bmV3IEFuYihHMmModGhpcyxhKSk7Zy5hPGcuYy5jLmxlbmd0aDspe2Y9UkQoeW5iKGcpLDQ3KTtmLktmKGEsYi5laCgxKSl9Yi5WZygpfTt2YXIgdDA9c2ZiKGNGZSwnUmFkaWFsTGF5b3V0UHJvdmlkZXInLDExMTMpO2ZlYig1NTYsMSxmeWUsVDJjKTtfLk5lPWZ1bmN0aW9uIFUyYyhhLGIpe3JldHVybiBTMmModGhpcy5hLHRoaXMuYixSRChhLDI3KSxSRChiLDI3KSl9O18uRmI9ZnVuY3Rpb24gVjJjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBXMmMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07Xy5hPTA7Xy5iPTA7dmFyIHUwPXNmYihjRmUsJ1JhZGlhbFV0aWwvbGFtYmRhJDAkVHlwZScsNTU2KTtmZWIoMTM5NSwxLFFBZSxZMmMpO18uS2Y9ZnVuY3Rpb24gWjJjKGEsYil7WDJjKFJEKGEsMjcpLGIpfTt2YXIgdjA9c2ZiKGhGZSwnQ2FsY3VsYXRlR3JhcGhTaXplJywxMzk1KTtmZWIoMTM5NiwxLFFBZSxfMmMpO18uS2Y9ZnVuY3Rpb24gYTNjKGEsYil7JDJjKFJEKGEsMjcpKX07dmFyIHcwPXNmYihoRmUsJ0VkZ2VBbmdsZUNhbGN1bGF0b3InLDEzOTYpO2ZlYigzNjgsMjIsezM6MSwzNDoxLDIyOjEsMzY4OjEsMTk2OjF9LGgzYyk7Xy5kZz1mdW5jdGlvbiBpM2MoKXtzd2l0Y2godGhpcy5nKXtjYXNlIDA6cmV0dXJuIG5ldyBRM2M7Y2FzZSAxOnJldHVybiBuZXcgQTNjO2Nhc2UgMjpyZXR1cm4gbmV3IFUzYztjYXNlIDM6cmV0dXJuIG5ldyBZMmM7Y2FzZSA0OnJldHVybiBuZXcgXzJjO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBhZ2IobEJlKyh0aGlzLmYhPW51bGw/dGhpcy5mOicnK3RoaXMuZykpKTt9fTt2YXIgYjNjLGMzYyxkM2MsZTNjLGYzYzt2YXIgeDA9dGZiKGhGZSxtQmUsMzY4LFdJLGszYyxqM2MpO3ZhciBsM2M7ZmViKDY1MywxLHt9KTtfLmU9MTtfLmc9MDt2YXIgeTA9c2ZiKGpGZSwnQWJzdHJhY3RSYWRpdXNFeHRlbnNpb25Db21wYWN0aW9uJyw2NTMpO2ZlYigxODM0LDY1Myx7fSx4M2MpO18uQ2c9ZnVuY3Rpb24geTNjKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksajt0aGlzLmM9UkQoR3hkKGEsKHUyYygpLHQyYykpLDI3KTtyM2ModGhpcyx0aGlzLmMpO3RoaXMuZD11NWMoUkQoR3hkKGEsKCQ0YygpLFg0YykpLDMwMCkpO2k9UkQoR3hkKGEsSDRjKSwxNyk7ISFpJiZxM2ModGhpcyxpLmEpO2g9VUQoR3hkKGEsKHVtZCgpLGZtZCkpKTtzM2ModGhpcywodUZiKGgpLGgpKTtqPVEyYyh0aGlzLmMpOyEhdGhpcy5kJiZ0aGlzLmQuR2coaik7dDNjKHRoaXMsaik7Zz1uZXcgbW9iKGNEKFdDKEo0LDEpLGtGZSwyNywwLFt0aGlzLmNdKSk7Zm9yKGM9MDtjPDI7YysrKXtmb3IoYj0wO2I8ai5jLmxlbmd0aDtiKyspe2U9bmV3IG1vYihjRChXQyhKNCwxKSxrRmUsMjcsMCxbKHRGYihiLGouYy5sZW5ndGgpLFJEKGouY1tiXSwyNykpXSkpO2Y9YjxqLmMubGVuZ3RoLTE/KHRGYihiKzEsai5jLmxlbmd0aCksUkQoai5jW2IrMV0sMjcpKToodEZiKDAsai5jLmxlbmd0aCksUkQoai5jWzBdLDI3KSk7ZD1iPT0wP1JEKFZtYihqLGouYy5sZW5ndGgtMSksMjcpOih0RmIoYi0xLGouYy5sZW5ndGgpLFJEKGouY1tiLTFdLDI3KSk7djNjKHRoaXMsKHRGYihiLGouYy5sZW5ndGgpLFJEKGouY1tiXSwyNyksZyksZCxmLGUpfX19O3ZhciB6MD1zZmIoakZlLCdBbm51bHVzV2VkZ2VDb21wYWN0aW9uJywxODM0KTtmZWIoMTM5MywxLFFBZSxBM2MpO18uS2Y9ZnVuY3Rpb24gQjNjKGEsYil7ejNjKFJEKGEsMjcpLGIpfTt2YXIgQTA9c2ZiKGpGZSwnR2VuZXJhbENvbXBhY3RvcicsMTM5Myk7ZmViKDE4MzMsNjUzLHt9LEYzYyk7Xy5DZz1mdW5jdGlvbiBHM2MoYSl7dmFyIGIsYyxkLGU7Yz1SRChHeGQoYSwodTJjKCksdDJjKSksMjcpO3RoaXMuZj1jO3RoaXMuYj11NWMoUkQoR3hkKGEsKCQ0YygpLFg0YykpLDMwMCkpO2U9UkQoR3hkKGEsSDRjKSwxNyk7ISFlJiZxM2ModGhpcyxlLmEpO2Q9VUQoR3hkKGEsKHVtZCgpLGZtZCkpKTtzM2ModGhpcywodUZiKGQpLGQpKTtiPVEyYyhjKTshIXRoaXMuYiYmdGhpcy5iLkdnKGIpO0QzYyh0aGlzLGIpfTtfLmE9MDt2YXIgQjA9c2ZiKGpGZSwnUmFkaWFsQ29tcGFjdGlvbicsMTgzMyk7ZmViKDE4NDIsMSx7fSxJM2MpO18uRGc9ZnVuY3Rpb24gSjNjKGEpe3ZhciBiLGMsZCxlLGYsZzt0aGlzLmE9YTtiPTA7Zz1RMmMoYSk7ZD0wO2ZvcihmPW5ldyBBbmIoZyk7Zi5hPGYuYy5jLmxlbmd0aDspe2U9UkQoeW5iKGYpLDI3KTsrK2Q7Zm9yKGM9ZDtjPGcuYy5sZW5ndGg7YysrKXtIM2ModGhpcyxlLCh0RmIoYyxnLmMubGVuZ3RoKSxSRChnLmNbY10sMjcpKSkmJihiKz0xKX19cmV0dXJuIGJ9O3ZhciBDMD1zZmIobEZlLCdDcm9zc2luZ01pbmltaXphdGlvblBvc2l0aW9uJywxODQyKTtmZWIoMTg0MCwxLHt9LEszYyk7Xy5EZz1mdW5jdGlvbiBMM2MoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG47ZD0wO2ZvcihjPW5ldyBpcyhNcih6R2QoYSkuYS5LYygpLG5ldyBpcikpO2dzKGMpOyl7Yj1SRChocyhjKSw3NCk7aD1BR2QoUkQoUUhkKCghYi5jJiYoYi5jPW5ldyBZaWUoRTQsYiw1LDgpKSxiLmMpLDApLDg0KSk7aj1oLmkraC5nLzI7az1oLmoraC5mLzI7ZT1hLmkrYS5nLzI7Zj1hLmorYS5mLzI7bD1uZXcgcGpkO2wuYT1qLWU7bC5iPWstZjtnPW5ldyByamQobC5hLGwuYik7d2lkKGcsYS5nLGEuZik7bC5hLT1nLmE7bC5iLT1nLmI7ZT1qLWwuYTtmPWstbC5iO2k9bmV3IHJqZChsLmEsbC5iKTt3aWQoaSxoLmcsaC5mKTtsLmEtPWkuYTtsLmItPWkuYjtqPWUrbC5hO2s9ZitsLmI7bT1qLWU7bj1rLWY7ZCs9JHduZC5NYXRoLnNxcnQobSptK24qbil9cmV0dXJuIGR9O3ZhciBEMD1zZmIobEZlLCdFZGdlTGVuZ3RoT3B0aW1pemF0aW9uJywxODQwKTtmZWIoMTg0MSwxLHt9LE0zYyk7Xy5EZz1mdW5jdGlvbiBOM2MoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbDtkPTA7Zm9yKGM9bmV3IGlzKE1yKHpHZChhKS5hLktjKCksbmV3IGlyKSk7Z3MoYyk7KXtiPVJEKGhzKGMpLDc0KTtoPUFHZChSRChRSGQoKCFiLmMmJihiLmM9bmV3IFlpZShFNCxiLDUsOCkpLGIuYyksMCksODQpKTtpPWguaStoLmcvMjtqPWguaitoLmYvMjtlPVJEKEd4ZChoLCh1bWQoKSxRbGQpKSw4KTtmPWEuaStlLmErYS5nLzI7Zz1hLmorZS5iK2EuZjtrPWktZjtsPWotZztkKz0kd25kLk1hdGguc3FydChrKmsrbCpsKX1yZXR1cm4gZH07dmFyIEUwPXNmYihsRmUsJ0VkZ2VMZW5ndGhQb3NpdGlvbk9wdGltaXphdGlvbicsMTg0MSk7ZmViKDEzOTIsNjUzLFFBZSxRM2MpO18uS2Y9ZnVuY3Rpb24gUjNjKGEsYil7UDNjKHRoaXMsUkQoYSwyNyksYil9O3ZhciBGMD1zZmIoJ29yZy5lY2xpcHNlLmVsay5hbGcucmFkaWFsLmludGVybWVkaWF0ZS5vdmVybGFwcycsJ1JhZGl1c0V4dGVuc2lvbk92ZXJsYXBSZW1vdmFsJywxMzkyKTtmZWIoMTM5NCwxLFFBZSxVM2MpO18uS2Y9ZnVuY3Rpb24gVjNjKGEsYil7VDNjKFJEKGEsMjcpLGIpfTt2YXIgRzA9c2ZiKCdvcmcuZWNsaXBzZS5lbGsuYWxnLnJhZGlhbC5pbnRlcm1lZGlhdGUucm90YXRpb24nLCdHZW5lcmFsUm90YXRvcicsMTM5NCk7ZmViKDQzNCwyMix7MzoxLDM0OjEsMjI6MSw0MzQ6MX0sJDNjKTt2YXIgVzNjLFgzYzt2YXIgSDA9dGZiKG5GZSwnQW5udWx1c1dlZGdlQ3JpdGVyaWEnLDQzNCxXSSxhNGMsXzNjKTt2YXIgYjRjO2ZlYigzOTMsMjIsezM6MSwzNDoxLDIyOjEsMzkzOjF9LGk0Yyk7dmFyIGQ0YyxlNGMsZjRjO3ZhciBJMD10ZmIobkZlLHV6ZSwzOTMsV0ksazRjLGo0Yyk7dmFyIGw0YztmZWIoODYzLDEsRXllLEU0Yyk7Xy5oZj1mdW5jdGlvbiBGNGMoYSl7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsb0ZlKSwnJyksJ0NlbnRlciBPbiBSb290JyksJ0NlbnRlcnMgdGhlIGxheW91dCBvbiB0aGUgcm9vdCBvZiB0aGUgdHJlZSBpLmUuIHNvIHRoYXQgdGhlIGNlbnRyYWwgbm9kZSBpcyBhbHNvIHRoZSBjZW50ZXIgbm9kZSBvZiB0aGUgZmluYWwgbGF5b3V0LiBUaGlzIGludHJvZHVjZXMgYWRkaXRpb25hbCB3aGl0ZXNwYWNlLicpLChHZWIoKSxmYWxzZSkpLChraWQoKSxjaWQpKSxRSSkseHNiKChZaGQoKSxXaGQpKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxwRmUpLCcnKSwnT3JkZXIgSUQnKSwnVGhlIGlkIGNhbiBiZSB1c2VkIHRvIGRlZmluZSBhbiBvcmRlciBmb3Igbm9kZXMgb2Ygb25lIHJhZGl1cy4gVGhpcyBjYW4gYmUgdXNlZCB0byBzb3J0IHRoZW0gaW4gdGhlIGxheWVyIGFjY29yZGluZ2x5LicpLHNnYigwKSksZ2lkKSxiSikseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQscUZlKSwnJyksJ1JhZGl1cycpLCdUaGUgcmFkaXVzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIGluaXRpYWwgcmFkaXVzIGZvciB0aGUgcmFkaWFsIGxheW91dGVyLicpLDApLGRpZCksVkkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLHJGZSksJycpLCdSb3RhdGUnKSwnVGhlIHJvdGF0ZSBvcHRpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIGEgcm90YXRpb24gb2YgdGhlIGxheW91dCBzaG91bGQgYmUgcGVyZm9ybWVkLicpLGZhbHNlKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxzRmUpLCcnKSxBRmUpLCdXaXRoIHRoZSBjb21wYWN0ZXIgb3B0aW9uIGl0IGNhbiBiZSBkZXRlcm1pbmVkIGhvdyBjb21wYWN0aW9uIG9uIHRoZSBncmFwaCBpcyBkb25lLiBJdCBjYW4gYmUgY2hvc2VuIGJldHdlZW4gbm9uZSwgdGhlIHJhZGlhbCBjb21wYWN0aW9uIG9yIHRoZSBjb21wYWN0aW9uIG9mIHdlZGdlcyBzZXBhcmF0ZWx5LicpLHE0YyksZWlkKSxJMCkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsdEZlKSwnJyksJ0NvbXBhY3Rpb24gU3RlcCBTaXplJyksJ0RldGVybWluZSB0aGUgc2l6ZSBvZiBzdGVwcyB3aXRoIHdoaWNoIHRoZSBjb21wYWN0aW9uIGlzIGRvbmUuIFN0ZXAgc2l6ZSAxIGNvcnJlbGF0ZXMgdG8gYSBjb21wYWN0aW9uIG9mIDEgcGl4ZWwgcGVyIEl0ZXJhdGlvbi4nKSxzZ2IoMSkpLGdpZCksYkopLHhzYihXaGQpKSkpO3pnZChhLHRGZSxzRmUsbnVsbCk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsdUZlKSwnJyksJ1NvcnRlcicpLCdTb3J0IHRoZSBub2RlcyBwZXIgcmFkaXVzIGFjY29yZGluZyB0byB0aGUgc29ydGluZyBhbGdvcml0aG0uIFRoZSBzdHJhdGVnaWVzIGFyZSBub25lLCBieSB0aGUgZ2l2ZW4gb3JkZXIgaWQsIG9yIHNvcnRpbmcgdGhlbSBieSBwb2xhciBjb29yZGluYXRlcy4nKSxBNGMpLGVpZCksTjApLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLHZGZSksJycpLCdBbm51bHVzIFdlZGdlIENyaXRlcmlhJyksJ0RldGVybWluZSBob3cgdGhlIHdlZGdlIGZvciB0aGUgbm9kZSBwbGFjZW1lbnQgaXMgY2FsY3VsYXRlZC4gSXQgY2FuIGJlIGNob3NlbiBiZXR3ZWVuIHdlZGdlIGRldGVybWluYXRpb24gYnkgdGhlIG51bWJlciBvZiBsZWF2ZXMgb3IgYnkgdGhlIG1heGltdW0gc3VtIG9mIGRpYWdvbmFscy4nKSxDNGMpLGVpZCksSDApLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLHdGZSksJycpLCdUcmFuc2xhdGlvbiBPcHRpbWl6YXRpb24nKSwnRmluZCB0aGUgb3B0aW1hbCB0cmFuc2xhdGlvbiBvZiB0aGUgbm9kZXMgb2YgdGhlIGZpcnN0IHJhZGlpIGFjY29yZGluZyB0byB0aGlzIGNyaXRlcmlhLiBGb3IgZXhhbXBsZSBlZGdlIGNyb3NzaW5ncyBjYW4gYmUgbWluaW1pemVkLicpLHM0YyksZWlkKSxNMCkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQseEZlKSxCRmUpLCdUYXJnZXQgQW5nbGUnKSwnVGhlIGFuZ2xlIGluIHJhZGlhbnMgdGhhdCB0aGUgbGF5b3V0IHNob3VsZCBiZSByb3RhdGVkIHRvIGFmdGVyIGxheW91dC4nKSwwKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTt6Z2QoYSx4RmUsckZlLG51bGwpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLHlGZSksQkZlKSwnQWRkaXRpb25hbCBXZWRnZSBTcGFjZScpLCdJZiBzZXQgdG8gdHJ1ZSwgbW9kaWZpZXMgdGhlIHRhcmdldCBhbmdsZSBieSByb3RhdGluZyBmdXJ0aGVyIHN1Y2ggdGhhdCBzcGFjZSBpcyBsZWZ0IGZvciBhbiBlZGdlIHRvIHBhc3MgaW4gYmV0d2VlbiB0aGUgbm9kZXMuIFRoaXMgb3B0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0b3AtZG93biBsYXlvdXQuJyksZmFsc2UpLGNpZCksUUkpLHhzYihXaGQpKSkpO3pnZChhLHlGZSxyRmUsbnVsbCk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsekZlKSxCRmUpLCdPdXRnb2luZyBFZGdlIEFuZ2xlcycpLCdDYWxjdWxhdGUgdGhlIHJlcXVpcmVkIGFuZ2xlIG9mIGNvbm5lY3RlZCBub2RlcyB0byBsZWF2ZSBzcGFjZSBmb3IgYW4gaW5jb21pbmcgZWRnZS4gVGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRvcC1kb3duIGxheW91dC4nKSxmYWxzZSksY2lkKSxRSSkseHNiKFdoZCkpKSk7XzRjKChuZXcgYTVjLGEpKX07dmFyIG40YyxvNGMscDRjLHE0YyxyNGMsczRjLHQ0Yyx1NGMsdjRjLHc0Yyx4NGMseTRjLHo0YyxBNGMsQjRjLEM0Yzt2YXIgSjA9c2ZiKG5GZSwnUmFkaWFsTWV0YURhdGFQcm92aWRlcicsODYzKTtmZWIoMTAwOCwxLEV5ZSxhNWMpO18uaGY9ZnVuY3Rpb24gYjVjKGEpe180YyhhKX07dmFyIEc0YyxINGMsSTRjLEo0YyxLNGMsTDRjLE00YyxONGMsTzRjLFA0YyxRNGMsUjRjLFM0YyxUNGMsVTRjLFY0YyxXNGMsWDRjLFk0YyxaNGM7dmFyIEwwPXNmYihuRmUsJ1JhZGlhbE9wdGlvbnMnLDEwMDgpO2ZlYigxMDA5LDEse30sYzVjKTtfLnNmPWZ1bmN0aW9uIGQ1Yygpe3ZhciBhO3JldHVybiBhPW5ldyBIMmMsYX07Xy50Zj1mdW5jdGlvbiBlNWMoYSl7fTt2YXIgSzA9c2ZiKG5GZSwnUmFkaWFsT3B0aW9ucy9SYWRpYWxGYWN0b3J5JywxMDA5KTtmZWIoMzU0LDIyLHszOjEsMzQ6MSwyMjoxLDM1NDoxfSxsNWMpO3ZhciBmNWMsZzVjLGg1YyxpNWM7dmFyIE0wPXRmYihuRmUsJ1JhZGlhbFRyYW5zbGF0aW9uU3RyYXRlZ3knLDM1NCxXSSxuNWMsbTVjKTt2YXIgbzVjO2ZlYigzMDAsMjIsezM6MSwzNDoxLDIyOjEsMzAwOjF9LHY1Yyk7dmFyIHE1YyxyNWMsczVjO3ZhciBOMD10ZmIobkZlLCdTb3J0aW5nU3RyYXRlZ3knLDMwMCxXSSx4NWMsdzVjKTt2YXIgeTVjO2ZlYigxNDc2LDEsbkVlLEQ1Yyk7Xy5yZz1mdW5jdGlvbiBFNWMoYSl7cmV0dXJuIFJEKGEsMjcpLG51bGx9O18uS2Y9ZnVuY3Rpb24gRjVjKGEsYil7QjVjKHRoaXMsUkQoYSwyNyksYil9O18uYz0wO3ZhciBPMD1zZmIoJ29yZy5lY2xpcHNlLmVsay5hbGcucmFkaWFsLnAxcG9zaXRpb24nLCdFYWRlc1JhZGlhbCcsMTQ3Nik7ZmViKDE4MzgsMSx7fSxHNWMpO18uRWc9ZnVuY3Rpb24gSDVjKGEpe3JldHVybiBPMmMoYSl9O3ZhciBQMD1zZmIoREZlLCdBbm51bHVzV2VkZ2VCeUxlYWZzJywxODM4KTtmZWIoMTgzOSwxLHt9LEo1Yyk7Xy5FZz1mdW5jdGlvbiBLNWMoYSl7cmV0dXJuIEk1Yyh0aGlzLGEpfTt2YXIgUTA9c2ZiKERGZSwnQW5udWx1c1dlZGdlQnlOb2RlU3BhY2UnLDE4MzkpO2ZlYigxNDc3LDEsbkVlLE41Yyk7Xy5yZz1mdW5jdGlvbiBPNWMoYSl7cmV0dXJuIFJEKGEsMjcpLG51bGx9O18uS2Y9ZnVuY3Rpb24gUDVjKGEsYil7TDVjKHRoaXMsUkQoYSwyNyksYil9O3ZhciBSMD1zZmIoJ29yZy5lY2xpcHNlLmVsay5hbGcucmFkaWFsLnAycm91dGluZycsJ1N0cmFpZ2h0TGluZUVkZ2VSb3V0ZXInLDE0NzcpO2ZlYig4MjYsMSx7fSxSNWMpO18uRmc9ZnVuY3Rpb24gUzVjKGEpe307Xy5HZz1mdW5jdGlvbiBVNWMoYSl7UTVjKHRoaXMsYSl9O3ZhciBUMD1zZmIoRUZlLCdJRFNvcnRlcicsODI2KTtmZWIoMTgzNywxLGZ5ZSxWNWMpO18uTmU9ZnVuY3Rpb24gVzVjKGEsYil7cmV0dXJuIFQ1YyhSRChhLDI3KSxSRChiLDI3KSl9O18uRmI9ZnVuY3Rpb24gWDVjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBZNWMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFMwPXNmYihFRmUsJ0lEU29ydGVyL2xhbWJkYSQwJFR5cGUnLDE4MzcpO2ZlYigxODM2LDEse30sXzVjKTtfLkZnPWZ1bmN0aW9uIGE2YyhhKXtaNWModGhpcyxhKX07Xy5HZz1mdW5jdGlvbiBiNmMoYSl7dmFyIGI7aWYoIWEuZGMoKSl7aWYoIXRoaXMuZSl7Yj1MMmMoUkQoYS5YYigwKSwyNykpO1o1Yyh0aGlzLGIpfVE1Yyh0aGlzLmUsYSl9fTt2YXIgVTA9c2ZiKEVGZSwnUG9sYXJDb29yZGluYXRlU29ydGVyJywxODM2KTtmZWIoNDQ1LDIyLHszOjEsMzQ6MSwyMjoxLDQ0NToxfSxnNmMpO3ZhciBjNmMsZDZjLGU2Yzt2YXIgVjA9dGZiKElGZSwnUmVjdFBhY2tpbmdMYXlvdXRQaGFzZXMnLDQ0NSxXSSxpNmMsaDZjKTt2YXIgajZjO2ZlYigxMTE4LDIwNSxvemUsbDZjKTtfLnJmPWZ1bmN0aW9uIG42YyhhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEIsQyxEO2IuVWcoJ1JlY3RhbmdsZSBQYWNraW5nJywxKTtsPVJEKEd4ZChhLChYN2MoKSxON2MpKSwxMDcpO2k9SGViKFREKEd4ZChhLEc3YykpKTtrPUtmYihVRChHeGQoYSxRN2MpKSk7Qz1IZWIoVEQoR3hkKGEsUjdjKSkpO3Q9KCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKTtIZWIoVEQoR3hkKGEsSjdjKSkpfHxSRmIoKGU9bmV3IFNGYigobHVkKCksbmV3IHp1ZChhKSkpLGUpKTtCPWZhbHNlO2lmKEMmJnQuaT49Myl7dj1SRChRSGQodCwwKSwyNyk7dz1SRChRSGQodCwxKSwyNyk7Zj0wO3doaWxlKGYrMjx0Lmkpe3U9djt2PXc7dz1SRChRSGQodCxmKzIpLDI3KTtpZih1LmY+PXYuZit3LmYra3x8dy5mPj11LmYrdi5mK2spe0I9dHJ1ZTticmVha31lbHNleysrZn19fWVsc2V7Qj10cnVlfWlmKCFCKXttPXQuaTtmb3IoaD1uZXcgZE1kKHQpO2guZSE9aC5pLmdjKCk7KXtnPVJEKGJNZChoKSwyNyk7SXhkKGcsKHVtZCgpLFJsZCksc2diKG0pKTstLW19Y3JkKGEsbmV3IE9xZCk7Yi5WZygpO3JldHVybn1jPShTZWQodGhpcy5hKSxWZWQodGhpcy5hLChmNmMoKSxjNmMpLFJEKEd4ZChhLFY3YyksMTg4KSksVmVkKHRoaXMuYSxkNmMsUkQoR3hkKGEsTTdjKSwxODgpKSxWZWQodGhpcy5hLGU2YyxSRChHeGQoYSxTN2MpLDE4OCkpLFBlZCh0aGlzLmEsKEQ9bmV3IHVmZCxwZmQoRCxjNmMsKHo2YygpLHk2YykpLHBmZChELGQ2Yyx4NmMpLEhlYihURChHeGQoYSxCN2MpKSkmJnBmZChELGM2Yyx3NmMpLEQpKSxRZWQodGhpcy5hLGEpKTtqPTEvYy5jLmxlbmd0aDtBPTA7Zm9yKG89bmV3IEFuYihjKTtvLmE8by5jLmMubGVuZ3RoOyl7bj1SRCh5bmIobyksNDcpO2lmKGIuJGcoKSl7cmV0dXJufW4uS2YoYSxiLmVoKGopKTsrK0F9cT0wO3A9MDtmb3Iocz1uZXcgZE1kKHQpO3MuZSE9cy5pLmdjKCk7KXtyPVJEKGJNZChzKSwyNyk7cT0kd25kLk1hdGgubWF4KHEsci5pK3IuZyk7cD0kd25kLk1hdGgubWF4KHAsci5qK3IuZil9SnNkKGEsbmV3IHJqZChLZmIoVUQoR3hkKGEsKFg2YygpLE82YykpKSksS2ZiKFVEKEd4ZChhLE42YykpKSksbmV3IHJqZChxLHApKTttNmModCxsKTtpfHxFc2QoYSxLZmIoVUQoR3hkKGEsTzZjKSkpKyhsLmIrbC5jKSxLZmIoVUQoR3hkKGEsTjZjKSkpKyhsLmQrbC5hKSxmYWxzZSx0cnVlKTtIZWIoVEQoR3hkKGEsSjdjKSkpfHxSRmIoKGQ9bmV3IFNGYigobHVkKCksbmV3IHp1ZChhKSkpLGQpKTtiLlZnKCl9O3ZhciBXMD1zZmIoSUZlLCdSZWN0UGFja2luZ0xheW91dFByb3ZpZGVyJywxMTE4KTtmZWIoMTUxOCwxLFFBZSxwNmMpO18uS2Y9ZnVuY3Rpb24gcjZjKGEsYil7bzZjKFJEKGEsMjcpLGIpfTt2YXIgWTA9c2ZiKEpGZSwnSW50ZXJhY3RpdmVOb2RlUmVvcmRlcmVyJywxNTE4KTtmZWIoMTUxOSwxLGZ5ZSxzNmMpO18uTmU9ZnVuY3Rpb24gdDZjKGEsYil7cmV0dXJuIHE2YyhSRChhLDI3KSxSRChiLDI3KSl9O18uRmI9ZnVuY3Rpb24gdTZjKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiB2NmMoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFgwPXNmYihKRmUsJ0ludGVyYWN0aXZlTm9kZVJlb3JkZXJlci9sYW1iZGEkMCRUeXBlJywxNTE5KTtmZWIoNDU2LDIyLHszOjEsMzQ6MSwyMjoxLDQ1NjoxLDE5NjoxfSxBNmMpO18uZGc9ZnVuY3Rpb24gQjZjKCl7c3dpdGNoKHRoaXMuZyl7Y2FzZSAwOnJldHVybiBuZXcgcDZjO2Nhc2UgMTpyZXR1cm4gbmV3IEs2YztjYXNlIDI6cmV0dXJuIG5ldyBINmM7fXJldHVybiBudWxsfTt2YXIgdzZjLHg2Yyx5NmM7dmFyIFowPXRmYihKRmUsbUJlLDQ1NixXSSxENmMsQzZjKTt2YXIgRTZjO2ZlYigxNTIxLDEsUUFlLEg2Yyk7Xy5LZj1mdW5jdGlvbiBJNmMoYSxiKXtHNmMoUkQoYSwyNyksYil9O3ZhciAkMD1zZmIoSkZlLCdNaW5TaXplUG9zdFByb2Nlc3NvcicsMTUyMSk7ZmViKDE1MjAsMSxRQWUsSzZjKTtfLktmPWZ1bmN0aW9uIEw2YyhhLGIpe0o2YyhSRChhLDI3KSxiKX07dmFyIF8wPXNmYihKRmUsJ01pblNpemVQcmVQcm9jZXNzb3InLDE1MjApO3ZhciBNNmMsTjZjLE82YyxQNmMsUTZjLFI2YyxTNmMsVDZjLFU2YyxWNmMsVzZjO2ZlYigzOTQsMjIsezM6MSwzNDoxLDIyOjEsMzk0OjF9LGE3Yyk7dmFyIFk2YyxaNmMsJDZjO3ZhciBhMT10ZmIoS0ZlLCdPcHRpbWl6YXRpb25Hb2FsJywzOTQsV0ksYzdjLGI3Yyk7dmFyIGQ3YztmZWIoODY3LDEsRXllLHY3Yyk7Xy5oZj1mdW5jdGlvbiB3N2MoYSl7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsTEZlKSwnJyksJ1RyeSBib3ggbGF5b3V0IGZpcnN0JyksJ1doZXRoZXIgb25lIHNob3VsZCBjaGVjayB3aGV0aGVyIHRoZSByZWdpb25zIGFyZSBzdGFja2FibGUgdG8gc2VlIHdoZXRoZXIgYm94IGxheW91dCB3b3VsZCBkbyB0aGUgam9iLiBGb3IgZXhhbXBsZSwgbm9kZXMgd2l0aCB0aGUgc2FtZSBoZWlnaHQgYXJlIG5vdCBzdGFja2FibGUgaW5zaWRlIGEgcm93LiBUaGVyZWZvcmUsIGJveCBsYXlvdXQgd2lsbCBwZXJmb3JtIGJldHRlciBhbmQgZmFzdGVyLicpLChHZWIoKSxmYWxzZSkpLChraWQoKSxjaWQpKSxRSSkseHNiKChZaGQoKSxXaGQpKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxNRmUpLCcnKSwnQ3VycmVudCBwb3NpdGlvbiBvZiBhIG5vZGUgaW4gdGhlIG9yZGVyIG9mIG5vZGVzJyksJ1RoZSByZWN0YW5nbGVzIGFyZSBvcmRlcmVkLiBOb3JtYWxseSBhY2NvcmRpbmcgdG8gdGhlaXIgZGVmaW5pdGlvbiB0aGUgdGhlIG1vZGVsLiBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgYSBub2RlLicpLHNnYigtMSkpLGdpZCksYkopLHhzYihWaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLE5GZSksJycpLCdEZXNpcmVkIGluZGV4IG9mIG5vZGUnKSwnVGhlIHJlY3RhbmdsZXMgYXJlIG9yZGVyZWQuIE5vcm1hbGx5IGFjY29yZGluZyB0byB0aGVpciBkZWZpbml0aW9uIHRoZSB0aGUgbW9kZWwuIFRoaXMgb3B0aW9uIGFsbG93cyB0byBzcGVjaWZ5IGEgZGVzaXJlZCBwb3NpdGlvbiB0aGF0IGhhcyBwcmVmZXJlbmNlIG92ZXIgdGhlIG9yaWdpbmFsIHBvc2l0aW9uLicpLHNnYigtMSkpLGdpZCksYkopLHhzYihWaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLE9GZSksJycpLCdJbiBuZXcgUm93JyksJ0lmIHNldCB0byB0cnVlIHRoaXMgbm9kZSBiZWdpbnMgaW4gYSBuZXcgcm93LiBDb25zZXF1ZW50bHkgdGhpcyBub2RlIGNhbm5vdCBiZSBtb3ZlZCBpbiBhIHByZXZpb3VzIGxheWVyIGR1cmluZyBjb21wYWN0aW9uLiBXaWR0aCBhcHByb3hpbWF0aW9uIGRvZXMgZG9lcyBub3QgdGFrZSB0aGlzIGludG8gYWNjb3VudC4nKSxmYWxzZSksY2lkKSxRSSkseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsUEZlKSxYRmUpLCdXaWR0aCBBcHByb3hpbWF0aW9uIFN0cmF0ZWd5JyksJ1N0cmF0ZWd5IGZvciBmaW5kaW5nIGFuIGluaXRpYWwgd2lkdGggb2YgdGhlIGRyYXdpbmcuJyksczdjKSxlaWQpLGwxKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxRRmUpLFhGZSksJ1RhcmdldCBXaWR0aCcpLCdPcHRpb24gdG8gcGxhY2UgdGhlIHJlY3RhbmdsZXMgaW4gdGhlIGdpdmVuIHRhcmdldCB3aWR0aCBpbnN0ZWFkIG9mIGFwcHJveGltYXRpbmcgdGhlIHdpZHRoIHVzaW5nIHRoZSBkZXNpcmVkIGFzcGVjdCByYXRpby4gVGhlIHBhZGRpbmcgaXMgbm90IGluY2x1ZGVkIGluIHRoaXMuIE1lYW5pbmcgYSBkcmF3aW5nIHdpbGwgaGF2ZSB3aWR0aCBvZiB0YXJnZXR3aWR0aCArIGhvcml6b250YWwgcGFkZGluZy4nKSwtMSksZGlkKSxWSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsUkZlKSxYRmUpLCdPcHRpbWl6YXRpb24gR29hbCcpLCdPcHRpbWl6YXRpb24gZ29hbCBmb3IgYXBwcm94aW1hdGlvbiBvZiB0aGUgYm91bmRpbmcgYm94IGdpdmVuIGJ5IHRoZSBmaXJzdCBpdGVyYXRpb24uIERldGVybWluZXMgd2hldGhlciBsYXlvdXQgaXMgc29ydGVkIGJ5IHRoZSBtYXhpbXVtIHNjYWxpbmcsIGFzcGVjdCByYXRpbywgb3IgYXJlYS4gRGVwZW5kaW5nIG9uIHRoZSBzdHJhdGVneSB0aGUgYXNwZWN0IHJhdGlvIG1pZ2h0IGJlIG5lYXJseSBpZ25vcmVkLicpLHE3YyksZWlkKSxhMSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsU0ZlKSxYRmUpLCdTaGlmdCBMYXN0IFBsYWNlZC4nKSwnV2hlbiBwbGFjaW5nIGEgcmVjdGFuZ2xlIGJlaGluZCBvciBiZWxvdyB0aGUgbGFzdCBwbGFjZWQgcmVjdGFuZ2xlIGluIHRoZSBmaXJzdCBpdGVyYXRpb24sIGl0IGlzIHNvbWV0aW1lcyBwb3NzaWJsZSB0byBzaGlmdCB0aGUgcmVjdGFuZ2xlIGZ1cnRoZXIgdG8gdGhlIGxlZnQgb3IgcmlnaHQsIHJlc3VsdGluZyBpbiBsZXNzIHdoaXRlc3BhY2UuIFRydWUgKGRlZmF1bHQpIGVuYWJsZXMgdGhlIHNoaWZ0IGFuZCBmYWxzZSBkaXNhYmxlcyBpdC4gRGlzYWJsaW5nIHRoZSBzaGlmdCBwcm9kdWNlcyBhIGdyZWF0ZXIgYXBwcm94aW1hdGVkIGFyZWEgYnkgdGhlIGZpcnN0IGl0ZXJhdGlvbiBhbmQgYSBsYXlvdXQsIHdoZW4gdXNpbmcgT05MWSB0aGUgZmlyc3QgaXRlcmF0aW9uIChkZWZhdWx0IG5vdCB0aGUgY2FzZSksIHdoZXJlIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIGltcGxlbWVudCBhIHNpemUgdHJhbnNmb3JtYXRpb24gb2YgcmVjdGFuZ2xlcyB0aGF0IHdpbGwgZmlsbCB0aGUgYm91bmRpbmcgYm94IGFuZCBlbGltaW5hdGUgZW1wdHkgc3BhY2VzLicpLHRydWUpLGNpZCksUUkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFRGZSksJ3BhY2tpbmcnKSxZRmUpLCdTdHJhdGVneSBmb3IgZmluZGluZyBhbiBpbml0aWFsIHBsYWNlbWVudCBvbiBub2Rlcy4nKSxsN2MpLGVpZCksbzEpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFVGZSksWkZlKSwnUm93IEhlaWdodCBSZWV2YWx1YXRpb24nKSwnRHVyaW5nIHRoZSBjb21wYWN0aW9uIHN0ZXAgdGhlIGhlaWdodCBvZiBhIHJvdyBpcyBub3JtYWxseSBub3QgY2hhbmdlZC4gSWYgdGhpcyBvcHRpb25zIGlzIHNldCwgdGhlIGJsb2NrcyBvZiBvdGhlciByb3dzIG1pZ2h0IGJlIGFkZGVkIGlmIHRoZXkgZXhjZWVkIHRoZSByb3cgaGVpZ2h0LiBJZiB0aGlzIGlzIHRoZSBjYXNlIHRoZSB3aG9sZSByb3cgaGFzIHRvIGJlIHBhY2tlZCBhZ2FpbiB0byBiZSBvcHRpbWFsIHJlZ2FyZGluZyB0aGUgbmV3IHJvdyBoZWlnaHQuIFRoaXMgb3B0aW9uIHNob3VsZCwgdGhlcmVmb3JlLCBiZSB1c2VkIHdpdGggY2FyZSBzaW5jZSBpdCBtaWdodCBiZSBjb21wdXRhdGlvbiBoZWF2eS4nKSxmYWxzZSksY2lkKSxRSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsVkZlKSxaRmUpLCdDb21wYWN0aW9uIGl0ZXJhdGlvbnMnKSwnRGVmaW5lcyB0aGUgbnVtYmVyIG9mIGNvbXBhY3Rpb24gaXRlcmF0aW9ucy4gRS5nLiBpZiBzZXQgdG8gMiB0aGUgd2lkdGggaXMgaW5pdGlhbGx5IGFwcHJveGltYXRlZCwgdGhlbiB0aGUgZHJhd2luZyBpcyBjb21wYWN0ZWQgYW5kIGJhc2VkIG9uIHRoZSByZXN1bHRpbmcgZHJhd2luZyB0aGUgdGFyZ2V0IHdpZHRoIGlzIGRlY3JlYXNlZCBvciBpbmNyZWFzZWQgYW5kIGEgc2Vjb25kIGNvbXBhY3Rpb24gc3RlcCBpcyBleGVjdXRlZCBhbmQgdGhlIHJlc3VsdCBjb21wYXJlZCB0byB0aGUgZmlyc3Qgb25lLiBUaGUgYmVzdCBydW4gaXMgdXNlZCBiYXNlZCBvbiB0aGUgc2NhbGUgbWVhc3VyZS4nKSxzZ2IoMSkpLGdpZCksYkopLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsV0ZlKSwnd2hpdGVTcGFjZUVsaW1pbmF0aW9uJyksJ1doaXRlIFNwYWNlIEFwcHJveGltYXRpb24gU3RyYXRlZ3knKSwnU3RyYXRlZ3kgZm9yIGV4cGFuZGluZyBub2RlcyBzdWNoIHRoYXQgd2hpdGVzcGFjZSBpbiB0aGUgcGFyZW50IGlzIGVsaW1pbmF0ZWQuJyksZWlkKSx0MSkseHNiKFdoZCkpKSk7WTdjKChuZXcgWjdjLGEpKX07dmFyIGY3YyxnN2MsaDdjLGk3YyxqN2MsazdjLGw3YyxtN2MsbjdjLG83YyxwN2MscTdjLHI3YyxzN2MsdDdjO3ZhciBiMT1zZmIoS0ZlLCdSZWN0UGFja2luZ01ldGFEYXRhUHJvdmlkZXInLDg2Nyk7ZmViKDEwMTYsMSxFeWUsWjdjKTtfLmhmPWZ1bmN0aW9uICQ3YyhhKXtZN2MoYSl9O3ZhciB4N2MseTdjLHo3YyxBN2MsQjdjLEM3YyxEN2MsRTdjLEY3YyxHN2MsSDdjLEk3YyxKN2MsSzdjLEw3YyxNN2MsTjdjLE83YyxQN2MsUTdjLFI3YyxTN2MsVDdjLFU3YyxWN2MsVzdjO3ZhciBkMT1zZmIoS0ZlLCdSZWN0UGFja2luZ09wdGlvbnMnLDEwMTYpO2ZlYigxMDE3LDEse30sXzdjKTtfLnNmPWZ1bmN0aW9uIGE4Yygpe3ZhciBhO3JldHVybiBhPW5ldyBsNmMsYX07Xy50Zj1mdW5jdGlvbiBiOGMoYSl7fTt2YXIgYzE9c2ZiKEtGZSwnUmVjdFBhY2tpbmdPcHRpb25zL1JlY3RwYWNraW5nRmFjdG9yeScsMTAxNyk7ZmViKDE3MDUsMSx7fSxnOGMpO18uYT0wO18uYz1mYWxzZTt2YXIgZTE9c2ZiKF9GZSwnQXJlYUFwcHJveGltYXRpb24nLDE3MDUpO3ZhciBoMT11ZmIoX0ZlLCdCZXN0Q2FuZGlkYXRlRmlsdGVyJyk7ZmViKDY3MywxLHs1MzU6MX0saDhjKTtfLkhnPWZ1bmN0aW9uIGk4YyhhLGIsYyl7dmFyIGQsZSxmLGcsaCxpO2k9bmV3IGJuYjtmPW94ZTtmb3IoaD1uZXcgQW5iKGEpO2guYTxoLmMuYy5sZW5ndGg7KXtnPVJEKHluYihoKSwyMzgpO2Y9JHduZC5NYXRoLm1pbihmLChnLmMrKGMuYitjLmMpKSooZy5iKyhjLmQrYy5hKSkpfWZvcihlPW5ldyBBbmIoYSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDIzOCk7KGQuYysoYy5iK2MuYykpKihkLmIrKGMuZCtjLmEpKT09ZiYmKFpFYihpLmMsZCksdHJ1ZSl9cmV0dXJuIGl9O3ZhciBmMT1zZmIoX0ZlLCdBcmVhRmlsdGVyJyw2NzMpO2ZlYig2NzQsMSx7NTM1OjF9LGo4Yyk7Xy5IZz1mdW5jdGlvbiBrOGMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaTtoPW5ldyBibmI7aT1veGU7Zm9yKGc9bmV3IEFuYihhKTtnLmE8Zy5jLmMubGVuZ3RoOyl7Zj1SRCh5bmIoZyksMjM4KTtpPSR3bmQuTWF0aC5taW4oaSwkd25kLk1hdGguYWJzKChmLmMrKGMuYitjLmMpKS8oZi5iKyhjLmQrYy5hKSktYikpfWZvcihlPW5ldyBBbmIoYSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDIzOCk7JHduZC5NYXRoLmFicygoZC5jKyhjLmIrYy5jKSkvKGQuYisoYy5kK2MuYSkpLWIpPT1pJiYoWkViKGguYyxkKSx0cnVlKX1yZXR1cm4gaH07dmFyIGcxPXNmYihfRmUsJ0FzcGVjdFJhdGlvRmlsdGVyJyw2NzQpO2ZlYigxNDY5LDEsbkVlLG84Yyk7Xy5yZz1mdW5jdGlvbiBwOGMoYSl7cmV0dXJuIFJEKGEsMjcpLG51bGx9O18uS2Y9ZnVuY3Rpb24gcThjKGEsYil7bjhjKFJEKGEsMjcpLGIpfTt2YXIgaTE9c2ZiKF9GZSwnR3JlZWR5V2lkdGhBcHByb3hpbWF0b3InLDE0NjkpO2ZlYig2NzIsMSx7NTM1OjF9LHI4Yyk7Xy5IZz1mdW5jdGlvbiBzOGMoYSxiLGMpe3ZhciBkLGUsZixnLGgsaTtpPW5ldyBibmI7Zj1weGU7Zm9yKGg9bmV3IEFuYihhKTtoLmE8aC5jLmMubGVuZ3RoOyl7Zz1SRCh5bmIoaCksMjM4KTtmPSR3bmQuTWF0aC5tYXgoZixBYWQoZy5jKyhjLmIrYy5jKSxnLmIrKGMuZCtjLmEpLGcuYSkpfWZvcihlPW5ldyBBbmIoYSk7ZS5hPGUuYy5jLmxlbmd0aDspe2Q9UkQoeW5iKGUpLDIzOCk7QWFkKGQuYysoYy5iK2MuYyksZC5iKyhjLmQrYy5hKSxkLmEpPT1mJiYoWkViKGkuYyxkKSx0cnVlKX1yZXR1cm4gaX07dmFyIGoxPXNmYihfRmUsJ1NjYWxlTWVhc3VyZUZpbHRlcicsNjcyKTtmZWIoMTQ3MCwxLG5FZSx1OGMpO18ucmc9ZnVuY3Rpb24gdjhjKGEpe3JldHVybiBSRChhLDI3KSxudWxsfTtfLktmPWZ1bmN0aW9uIHc4YyhhLGIpe3Q4YyhSRChhLDI3KSxiKX07dmFyIGsxPXNmYihfRmUsJ1RhcmdldFdpZHRoV2lkdGhBcHByb3hpbWF0b3InLDE0NzApO2ZlYig0OTEsMjIsezM6MSwzNDoxLDIyOjEsNDkxOjEsMTg4OjEsMTk2OjF9LEI4Yyk7Xy5kZz1mdW5jdGlvbiBEOGMoKXtyZXR1cm4gQThjKHRoaXMpfTtfLnFnPWZ1bmN0aW9uIEM4Yygpe3JldHVybiBBOGModGhpcyl9O3ZhciB4OGMseThjO3ZhciBsMT10ZmIoX0ZlLCdXaWR0aEFwcHJveGltYXRpb25TdHJhdGVneScsNDkxLFdJLEY4YyxFOGMpO3ZhciBHOGM7ZmViKDE0NzEsMSxuRWUsUjhjKTtfLnJnPWZ1bmN0aW9uIFM4YyhhKXtyZXR1cm4gUkQoYSwyNyksbnVsbH07Xy5LZj1mdW5jdGlvbiBUOGMoYSxiKXtROGModGhpcyxSRChhLDI3KSxiKX07dmFyIG0xPXNmYihhR2UsJ0NvbXBhY3RvcicsMTQ3MSk7ZmViKDE0NzMsMSxuRWUsWDhjKTtfLnJnPWZ1bmN0aW9uIFk4YyhhKXtyZXR1cm4gUkQoYSwyNyksbnVsbH07Xy5LZj1mdW5jdGlvbiBaOGMoYSxiKXtXOGMoUkQoYSwyNyksYil9O3ZhciBuMT1zZmIoYUdlLCdOb1BsYWNlbWVudCcsMTQ3Myk7ZmViKDQzOSwyMix7MzoxLDM0OjEsMjI6MSw0Mzk6MSwxODg6MSwxOTY6MX0sZDljKTtfLmRnPWZ1bmN0aW9uIGY5Yygpe3JldHVybiBjOWModGhpcyl9O18ucWc9ZnVuY3Rpb24gZTljKCl7cmV0dXJuIGM5Yyh0aGlzKX07dmFyICQ4YyxfOGMsYTljO3ZhciBvMT10ZmIoYUdlLCdQYWNraW5nU3RyYXRlZ3knLDQzOSxXSSxoOWMsZzljKTt2YXIgaTljO2ZlYig4MTAsMSx7fSxtOWMpO18uYT0wO18uYj0wO18uYz0wO18uZD1veGU7Xy5lPTA7Xy5mPW94ZTt2YXIgcDE9c2ZiKGFHZSwnUm93RmlsbGluZ0FuZENvbXBhY3Rpb24nLDgxMCk7ZmViKDE0NzIsMSxuRWUsbzljKTtfLnJnPWZ1bmN0aW9uIHA5YyhhKXtyZXR1cm4gUkQoYSwyNyksbnVsbH07Xy5LZj1mdW5jdGlvbiBxOWMoYSxiKXtuOWMoUkQoYSwyNyksYil9O3ZhciBxMT1zZmIoYUdlLCdTaW1wbGVQbGFjZW1lbnQnLDE0NzIpO2ZlYigxNDc0LDEsbkVlLHM5Yyk7Xy5yZz1mdW5jdGlvbiB0OWMoYSl7cmV0dXJuIFJEKGEsMjcpLG51bGx9O18uS2Y9ZnVuY3Rpb24gdTljKGEsYil7dGhpcy5JZyhSRChhLDI3KSxiKX07Xy5JZz1mdW5jdGlvbiB2OWMoYSxiKXtyOWMoYSxiKX07dmFyIHIxPXNmYihjR2UsJ0VxdWFsV2hpdGVzcGFjZUVsaW1pbmF0b3InLDE0NzQpO2ZlYigxNDc1LDE0NzQsbkVlLHg5Yyk7Xy5JZz1mdW5jdGlvbiB5OWMoYSxiKXt2YXIgYyxkLGUsZixnO2IuVWcoJ1RvIEFzcGVjdCBSYXRpbyBXaGl0ZXNhcGNlIEVsaW1pbmF0b3InLDEpO2c9S2ZiKFVEKEd4ZChhLChYNmMoKSxPNmMpKSkpO2Y9S2ZiKFVEKEd4ZChhLE42YykpKTtlPUtmYihVRChHeGQoYSwoWDdjKCkseDdjKSkpKTtjPUtmYihVRChHeGQoYSxNNmMpKSk7ZD1nL2Y7aWYoZDxlKXtnPWYqZTtJeGQoYSxPNmMsZyl9ZWxzZXtjKz1nL2UtZjtJeGQoYSxNNmMsYyk7SXhkKGEsTjZjLGYrYyl9cjljKGEsYik7Yi5WZygpfTt2YXIgczE9c2ZiKGNHZSwnVG9Bc3BlY3RyYXRpb05vZGVFeHBhbmRlcicsMTQ3NSk7ZmViKDQ5MiwyMix7MzoxLDM0OjEsMjI6MSw0OTI6MSwxODg6MSwxOTY6MX0sRDljKTtfLmRnPWZ1bmN0aW9uIEY5Yygpe3JldHVybiBDOWModGhpcyl9O18ucWc9ZnVuY3Rpb24gRTljKCl7cmV0dXJuIEM5Yyh0aGlzKX07dmFyIHo5YyxBOWM7dmFyIHQxPXRmYihjR2UsJ1doaXRlU3BhY2VFbGltaW5hdGlvblN0cmF0ZWd5Jyw0OTIsV0ksSDljLEc5Yyk7dmFyIEk5YztmZWIoMTcyLDEsezE3MjoxfSxWOWMpO18uYT0wO18uYz1mYWxzZTtfLmQ9MDtfLmU9MDtfLmY9MDtfLmc9MDtfLmk9MDtfLms9ZmFsc2U7Xy5vPW94ZTtfLnA9b3hlO18ucj0wO18ucz0wO18udD0wO3ZhciB3MT1zZmIoZEdlLCdCbG9jaycsMTcyKTtmZWIoMjA5LDEsezIwOToxfSxfOWMpO18uYT0wO18uYj0wO18uZD0wO18uZT0wO18uZj0wO3ZhciB1MT1zZmIoZEdlLCdCbG9ja1JvdycsMjA5KTtmZWIoMzE1LDEsezMxNToxfSxoYWQpO18uYj0wO18uYz0wO18uZD0wO18uZT0wO18uZj0wO3ZhciB2MT1zZmIoZEdlLCdCbG9ja1N0YWNrJywzMTUpO2ZlYigyMzgsMSx7MjM4OjF9LGxhZCxtYWQpO18uYT0wO18uYj0wO18uYz0wO18uZD0wO18uZT0wO18uZz0wO3ZhciB5MT1zZmIoZEdlLCdEcmF3aW5nRGF0YScsMjM4KTtmZWIoMzczLDIyLHszOjEsMzQ6MSwyMjoxLDM3MzoxfSx0YWQpO3ZhciBuYWQsb2FkLHBhZCxxYWQscmFkO3ZhciB4MT10ZmIoZEdlLCdEcmF3aW5nRGF0YURlc2NyaXB0b3InLDM3MyxXSSx2YWQsdWFkKTt2YXIgd2FkO2ZlYigxODYsMSx7MTg2OjF9LEhhZCk7Xy5iPTA7Xy5jPTA7Xy5lPTA7Xy5mPTA7dmFyIHoxPXNmYihkR2UsJ1JlY3RSb3cnLDE4Nik7ZmViKDc2MywxLHt9LFBhZCk7Xy5qPTA7dmFyIEYxPXNmYihmR2UsZEJlLDc2Myk7ZmViKDEyMDksMSx7fSxRYWQpO18uYWY9ZnVuY3Rpb24gUmFkKGEpe3JldHVybiBiamQoYS5hLGEuYil9O3ZhciBBMT1zZmIoZkdlLE56ZSwxMjA5KTtmZWIoMTIxMCwxLHt9LFNhZCk7Xy5hZj1mdW5jdGlvbiBUYWQoYSl7cmV0dXJuIEthZCh0aGlzLmEsYSl9O3ZhciBCMT1zZmIoZkdlLGVCZSwxMjEwKTtmZWIoMTIxMSwxLHt9LFVhZCk7Xy5hZj1mdW5jdGlvbiBWYWQoYSl7cmV0dXJuIExhZCh0aGlzLmEsYSl9O3ZhciBDMT1zZmIoZkdlLGZCZSwxMjExKTtmZWIoMTIxMiwxLHt9LFdhZCk7Xy5hZj1mdW5jdGlvbiBYYWQoYSl7cmV0dXJuIE1hZCh0aGlzLmEsYSl9O3ZhciBEMT1zZmIoZkdlLCdFbGtHcmFwaEltcG9ydGVyL2xhbWJkYSQzJFR5cGUnLDEyMTIpO2ZlYigxMjEzLDEse30sWWFkKTtfLmFmPWZ1bmN0aW9uIFphZChhKXtyZXR1cm4gTmFkKHRoaXMuYSxhKX07dmFyIEUxPXNmYihmR2UsZ0JlLDEyMTMpO2ZlYigxMTE1LDIwNSxvemUsJGFkKTtfLnJmPWZ1bmN0aW9uIGFiZChhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbjtpZihIeGQoYSwobmNkKCksbWNkKSkpe249V0QoR3hkKGEsKFRjZCgpLFNjZCkpKTtmPXNnZCh5Z2QoKSxuKTtpZihmKXtnPVJEKGx0ZChmLmYpLDIwNSk7Zy5yZihhLGIuZWgoMSkpfX1JeGQoYSxoY2QsKE1iZCgpLEtiZCkpO0l4ZChhLGljZCwoWGJkKCksVWJkKSk7SXhkKGEsamNkLChsZGQoKSxrZGQpKTtoPVJEKEd4ZChhLChUY2QoKSxPY2QpKSwxNykuYTtiLlVnKCdPdmVybGFwIHJlbW92YWwnLDEpO0hlYihURChHeGQoYSxOY2QpKSkmJidudWxsNDVzY2FubGluZU92ZXJsYXBzJztpPW5ldyBfc2I7aj1uZXcgY2JkKGkpO2Q9bmV3IFBhZDtjPUphZChkLGEpO2s9dHJ1ZTtlPTA7d2hpbGUoZTxoJiZrKXtpZihIZWIoVEQoR3hkKGEsUGNkKSkpKXtpLmEuJGIoKTtWUWIobmV3IFdRYihqKSxjLmkpO2lmKGkuYS5nYygpPT0wKXticmVha31jLmU9aX1TZWQodGhpcy5iKTtWZWQodGhpcy5iLChnYmQoKSxkYmQpLChfY2QoKSwkY2QpKTtWZWQodGhpcy5iLGViZCxjLmcpO1ZlZCh0aGlzLmIsZmJkLChDYmQoKSxCYmQpKTt0aGlzLmE9UWVkKHRoaXMuYixjKTtmb3IobT1uZXcgQW5iKHRoaXMuYSk7bS5hPG0uYy5jLmxlbmd0aDspe2w9UkQoeW5iKG0pLDQ3KTtsLktmKGMsYi5laCgxKSl9T2FkKGQsYyk7az1IZWIoVEQobVFiKGMsKE9RYigpLE5RYikpKSk7KytlfUlhZChkLGMpO2IuVmcoKX07dmFyIEgxPXNmYihmR2UsJ092ZXJsYXBSZW1vdmFsTGF5b3V0UHJvdmlkZXInLDExMTUpO2ZlYigxMTE2LDEse30sY2JkKTt2YXIgRzE9c2ZiKGZHZSwnT3ZlcmxhcFJlbW92YWxMYXlvdXRQcm92aWRlci9sYW1iZGEkMCRUeXBlJywxMTE2KTtmZWIoNDQ0LDIyLHszOjEsMzQ6MSwyMjoxLDQ0NDoxfSxoYmQpO3ZhciBkYmQsZWJkLGZiZDt2YXIgSTE9dGZiKGZHZSwnU1BPckVQaGFzZXMnLDQ0NCxXSSxqYmQsaWJkKTt2YXIga2JkO2ZlYigxMjE5LDEse30sbmJkKTt2YXIgSzE9c2ZiKGZHZSwnU2hyaW5rVHJlZScsMTIxOSk7ZmViKDExMTcsMjA1LG96ZSxvYmQpO18ucmY9ZnVuY3Rpb24gcGJkKGEsYil7dmFyIGMsZCxlLGYsZztpZihIeGQoYSwobmNkKCksbWNkKSkpe2c9V0QoR3hkKGEsbWNkKSk7ZT1zZ2QoeWdkKCksZyk7aWYoZSl7Zj1SRChsdGQoZS5mKSwyMDUpO2YucmYoYSxiLmVoKDEpKX19ZD1uZXcgUGFkO2M9SmFkKGQsYSk7bWJkKHRoaXMuYSxjLGIuZWgoMSkpO0lhZChkLGMpfTt2YXIgSjE9c2ZiKGZHZSwnU2hyaW5rVHJlZUxheW91dFByb3ZpZGVyJywxMTE3KTtmZWIoMzA2LDEzNyx7MzoxLDMwNjoxLDk2OjEsMTM3OjF9LHFiZCk7Xy5jPWZhbHNlO3ZhciBMMT1zZmIoJ29yZy5lY2xpcHNlLmVsay5hbGcuc3BvcmUuZ3JhcGgnLCdHcmFwaCcsMzA2KTtmZWIoNDkwLDIyLHszOjEsMzQ6MSwyMjoxLDQ5MDoxLDE4ODoxLDE5NjoxfSx1YmQpO18uZGc9ZnVuY3Rpb24gd2JkKCl7cmV0dXJuIHRiZCh0aGlzKX07Xy5xZz1mdW5jdGlvbiB2YmQoKXtyZXR1cm4gdGJkKHRoaXMpfTt2YXIgcmJkO3ZhciBNMT10ZmIoZ0dlLHV6ZSw0OTAsV0kseWJkLHhiZCk7dmFyIHpiZDtmZWIoNTU4LDIyLHszOjEsMzQ6MSwyMjoxLDU1ODoxLDE4ODoxLDE5NjoxfSxEYmQpO18uZGc9ZnVuY3Rpb24gRmJkKCl7cmV0dXJuIG5ldyBUZGR9O18ucWc9ZnVuY3Rpb24gRWJkKCl7cmV0dXJuIG5ldyBUZGR9O3ZhciBCYmQ7dmFyIE4xPXRmYihnR2UsJ092ZXJsYXBSZW1vdmFsU3RyYXRlZ3knLDU1OCxXSSxIYmQsR2JkKTt2YXIgSWJkO2ZlYig0MzgsMjIsezM6MSwzNDoxLDIyOjEsNDM4OjF9LE5iZCk7dmFyIEtiZCxMYmQ7dmFyIE8xPXRmYihnR2UsJ1Jvb3RTZWxlY3Rpb24nLDQzOCxXSSxQYmQsT2JkKTt2YXIgUWJkO2ZlYigzMjQsMjIsezM6MSwzNDoxLDIyOjEsMzI0OjF9LFliZCk7dmFyIFNiZCxUYmQsVWJkLFZiZCxXYmQ7dmFyIFAxPXRmYihnR2UsJ1NwYW5uaW5nVHJlZUNvc3RGdW5jdGlvbicsMzI0LFdJLCRiZCxaYmQpO3ZhciBfYmQ7ZmViKDEwMTQsMSxFeWUscGNkKTtfLmhmPWZ1bmN0aW9uIHFjZChhKXtvY2QoYSl9O3ZhciBiY2QsY2NkLGRjZCxlY2QsZmNkLGdjZCxoY2QsaWNkLGpjZCxrY2QsbGNkLG1jZDt2YXIgUjE9c2ZiKGdHZSwnU3BvcmVDb21wYWN0aW9uT3B0aW9ucycsMTAxNCk7ZmViKDEwMTUsMSx7fSxyY2QpO18uc2Y9ZnVuY3Rpb24gc2NkKCl7dmFyIGE7cmV0dXJuIGE9bmV3IG9iZCxhfTtfLnRmPWZ1bmN0aW9uIHRjZChhKXt9O3ZhciBRMT1zZmIoZ0dlLCdTcG9yZUNvbXBhY3Rpb25PcHRpb25zL1Nwb3JlQ29tcGFjdGlvbkZhY3RvcnknLDEwMTUpO2ZlYig4NjYsMSxFeWUsTGNkKTtfLmhmPWZ1bmN0aW9uIE1jZChhKXtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGlHZSksJycpLCdVbmRlcmx5aW5nIExheW91dCBBbGdvcml0aG0nKSwnQSBsYXlvdXQgYWxnb3JpdGhtIHRoYXQgaXMgYXBwbGllZCB0byB0aGUgZ3JhcGggYmVmb3JlIGl0IGlzIGNvbXBhY3RlZC4gSWYgdGhpcyBpcyBudWxsLCBub3RoaW5nIGlzIGFwcGxpZWQgYmVmb3JlIGNvbXBhY3Rpb24uJyksKGtpZCgpLGlpZCkpLHFKKSx4c2IoKFloZCgpLFdoZCkpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLG5HZSksJ3N0cnVjdHVyZScpLCdTdHJ1Y3R1cmUgRXh0cmFjdGlvbiBTdHJhdGVneScpLCdUaGlzIG9wdGlvbiBkZWZpbmVzIHdoYXQga2luZCBvZiB0cmlhbmd1bGF0aW9uIG9yIG90aGVyIHBhcnRpdGlvbmluZyBvZiB0aGUgcGxhbmUgaXMgYXBwbGllZCB0byB0aGUgdmVydGljZXMuJyksSWNkKSxlaWQpLFYxKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxqR2UpLHNHZSksJ1RyZWUgQ29uc3RydWN0aW9uIFN0cmF0ZWd5JyksJ1doZXRoZXIgYSBtaW5pbXVtIHNwYW5uaW5nIHRyZWUgb3IgYSBtYXhpbXVtIHNwYW5uaW5nIHRyZWUgc2hvdWxkIGJlIGNvbnN0cnVjdGVkLicpLEdjZCksZWlkKSxXMSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsa0dlKSxzR2UpLCdDb3N0IEZ1bmN0aW9uIGZvciBTcGFubmluZyBUcmVlJyksJ1RoZSBjb3N0IGZ1bmN0aW9uIGlzIHVzZWQgaW4gdGhlIGNyZWF0aW9uIG9mIHRoZSBzcGFubmluZyB0cmVlLicpLEVjZCksZWlkKSxQMSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsbEdlKSxzR2UpLCdSb290IG5vZGUgZm9yIHNwYW5uaW5nIHRyZWUgY29uc3RydWN0aW9uJyksJ1RoZSBpZGVudGlmaWVyIG9mIHRoZSBub2RlIHRoYXQgaXMgcHJlZmVycmVkIGFzIHRoZSByb290IG9mIHRoZSBzcGFubmluZyB0cmVlLiBJZiB0aGlzIGlzIG51bGwsIHRoZSBmaXJzdCBub2RlIGlzIGNob3Nlbi4nKSxudWxsKSxpaWQpLHFKKSx4c2IoV2hkKSkpKTt6Z2QoYSxsR2UsbUdlLEFjZCk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsbUdlKSxzR2UpLCdSb290IHNlbGVjdGlvbiBmb3Igc3Bhbm5pbmcgdHJlZScpLCdUaGlzIHNldHMgdGhlIG1ldGhvZCB1c2VkIHRvIHNlbGVjdCBhIHJvb3Qgbm9kZSBmb3IgdGhlIGNvbnN0cnVjdGlvbiBvZiBhIHNwYW5uaW5nIHRyZWUnKSxDY2QpLGVpZCksTzEpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLG9HZSksbkRlKSxZRmUpLCdUaGlzIG9wdGlvbiBkZWZpbmVzIGhvdyB0aGUgY29tcGFjdGlvbiBpcyBhcHBsaWVkLicpLHZjZCksZWlkKSxNMSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQscEdlKSxuRGUpLCdPcnRob2dvbmFsIENvbXBhY3Rpb24nKSwnUmVzdHJpY3RzIHRoZSB0cmFuc2xhdGlvbiBvZiBub2RlcyB0byBvcnRob2dvbmFsIGRpcmVjdGlvbnMgaW4gdGhlIGNvbXBhY3Rpb24gcGhhc2UuJyksKEdlYigpLGZhbHNlKSksY2lkKSxRSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQscUdlKSx0R2UpLCdVcHBlciBsaW1pdCBmb3IgaXRlcmF0aW9ucyBvZiBvdmVybGFwIHJlbW92YWwnKSxudWxsKSxzZ2IoNjQpKSxnaWQpLGJKKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxyR2UpLHRHZSksJ1doZXRoZXIgdG8gcnVuIGEgc3VwcGxlbWVudGFyeSBzY2FubGluZSBvdmVybGFwIGNoZWNrLicpLG51bGwpLHRydWUpLGNpZCksUUkpLHhzYihXaGQpKSkpO1VjZCgobmV3IFZjZCxhKSk7b2NkKChuZXcgcGNkLGEpKX07dmFyIHVjZCx2Y2Qsd2NkLHhjZCx5Y2QsemNkLEFjZCxCY2QsQ2NkLERjZCxFY2QsRmNkLEdjZCxIY2QsSWNkLEpjZDt2YXIgUzE9c2ZiKGdHZSwnU3BvcmVNZXRhRGF0YVByb3ZpZGVyJyw4NjYpO2ZlYigxMDEyLDEsRXllLFZjZCk7Xy5oZj1mdW5jdGlvbiBXY2QoYSl7VWNkKGEpfTt2YXIgTmNkLE9jZCxQY2QsUWNkLFJjZCxTY2Q7dmFyIFUxPXNmYihnR2UsJ1Nwb3JlT3ZlcmxhcFJlbW92YWxPcHRpb25zJywxMDEyKTtmZWIoMTAxMywxLHt9LFhjZCk7Xy5zZj1mdW5jdGlvbiBZY2QoKXt2YXIgYTtyZXR1cm4gYT1uZXcgJGFkLGF9O18udGY9ZnVuY3Rpb24gWmNkKGEpe307dmFyIFQxPXNmYihnR2UsJ1Nwb3JlT3ZlcmxhcFJlbW92YWxPcHRpb25zL1Nwb3JlT3ZlcmxhcEZhY3RvcnknLDEwMTMpO2ZlYig1MzksMjIsezM6MSwzNDoxLDIyOjEsNTM5OjEsMTg4OjEsMTk2OjF9LGNkZCk7Xy5kZz1mdW5jdGlvbiBlZGQoKXtyZXR1cm4gYmRkKHRoaXMpfTtfLnFnPWZ1bmN0aW9uIGRkZCgpe3JldHVybiBiZGQodGhpcyl9O3ZhciAkY2Q7dmFyIFYxPXRmYihnR2UsJ1N0cnVjdHVyZUV4dHJhY3Rpb25TdHJhdGVneScsNTM5LFdJLGdkZCxmZGQpO3ZhciBoZGQ7ZmViKDQzNywyMix7MzoxLDM0OjEsMjI6MSw0Mzc6MSwxODg6MSwxOTY6MX0sbmRkKTtfLmRnPWZ1bmN0aW9uIHBkZCgpe3JldHVybiBtZGQodGhpcyl9O18ucWc9ZnVuY3Rpb24gb2RkKCl7cmV0dXJuIG1kZCh0aGlzKX07dmFyIGpkZCxrZGQ7dmFyIFcxPXRmYihnR2UsJ1RyZWVDb25zdHJ1Y3Rpb25TdHJhdGVneScsNDM3LFdJLHJkZCxxZGQpO3ZhciBzZGQ7ZmViKDE0NjMsMSxuRWUsdmRkKTtfLnJnPWZ1bmN0aW9uIHdkZChhKXtyZXR1cm4gUkQoYSwzMDYpLG5ldyB1ZmR9O18uS2Y9ZnVuY3Rpb24geGRkKGEsYil7dWRkKFJEKGEsMzA2KSxiKX07dmFyIFkxPXNmYih2R2UsJ0RlbGF1bmF5VHJpYW5ndWxhdGlvblBoYXNlJywxNDYzKTtmZWIoMTQ2NCwxLFF2ZSx5ZGQpO18uQ2Q9ZnVuY3Rpb24gemRkKGEpe1JtYih0aGlzLmEsUkQoYSw2OCkuYSl9O3ZhciBYMT1zZmIodkdlLCdEZWxhdW5heVRyaWFuZ3VsYXRpb25QaGFzZS9sYW1iZGEkMCRUeXBlJywxNDY0KTtmZWIoNzk0LDEsbkVlLERkZCk7Xy5yZz1mdW5jdGlvbiBFZGQoYSl7cmV0dXJuIFJEKGEsMzA2KSxuZXcgdWZkfTtfLktmPWZ1bmN0aW9uIEZkZChhLGIpe3RoaXMuSmcoUkQoYSwzMDYpLGIpfTtfLkpnPWZ1bmN0aW9uIEdkZChhLGIpe3ZhciBjLGQsZTtiLlVnKCdNaW5pbXVtIHNwYW5uaW5nIHRyZWUgY29uc3RydWN0aW9uJywxKTthLmQ/KGQ9YS5kLmEpOihkPVJEKFZtYihhLmksMCksNjgpLmEpO0hlYihURChtUWIoYSwoT1FiKCksTVFiKSkpKT8oZT1MRmIoYS5lLGQsKGM9YS5iLGMpKSk6KGU9TEZiKGEuZSxkLGEuYikpO0JkZCh0aGlzLGUsYSk7Yi5WZygpfTt2YXIgYTI9c2ZiKHdHZSwnTWluU1RQaGFzZScsNzk0KTtmZWIoMTQ2Niw3OTQsbkVlLEhkZCk7Xy5KZz1mdW5jdGlvbiBKZGQoYSxiKXt2YXIgYyxkLGUsZjtiLlVnKCdNYXhpbXVtIHNwYW5uaW5nIHRyZWUgY29uc3RydWN0aW9uJywxKTtjPW5ldyBLZGQoYSk7YS5kPyhlPWEuZC5jKTooZT1SRChWbWIoYS5pLDApLDY4KS5jKTtIZWIoVEQobVFiKGEsKE9RYigpLE1RYikpKSk/KGY9TEZiKGEuZSxlLChkPWMsZCkpKTooZj1MRmIoYS5lLGUsYykpO0JkZCh0aGlzLGYsYSk7Yi5WZygpfTt2YXIgJDE9c2ZiKHdHZSwnTWF4U1RQaGFzZScsMTQ2Nik7ZmViKDE0NjcsMSx7fSxLZGQpO18uYWY9ZnVuY3Rpb24gTGRkKGEpe3JldHVybiBJZGQodGhpcy5hLGEpfTt2YXIgWjE9c2ZiKHdHZSwnTWF4U1RQaGFzZS9sYW1iZGEkMCRUeXBlJywxNDY3KTtmZWIoMTQ2NSwxLFF2ZSxNZGQpO18uQ2Q9ZnVuY3Rpb24gTmRkKGEpe0NkZCh0aGlzLmEsUkQoYSw2OCkpfTt2YXIgXzE9c2ZiKHdHZSwnTWluU1RQaGFzZS9sYW1iZGEkMCRUeXBlJywxNDY1KTtmZWIoNzk2LDEsbkVlLFRkZCk7Xy5yZz1mdW5jdGlvbiBVZGQoYSl7cmV0dXJuIFJEKGEsMzA2KSxuZXcgdWZkfTtfLktmPWZ1bmN0aW9uIFZkZChhLGIpe1NkZCh0aGlzLFJEKGEsMzA2KSxiKX07Xy5hPWZhbHNlO3ZhciBjMj1zZmIoeEdlLCdHcm93VHJlZVBoYXNlJyw3OTYpO2ZlYig3OTcsMSxRdmUsV2RkKTtfLkNkPWZ1bmN0aW9uIFhkZChhKXtSZGQodGhpcy5hLHRoaXMuYix0aGlzLmMsUkQoYSwyMjUpKX07dmFyIGIyPXNmYih4R2UsJ0dyb3dUcmVlUGhhc2UvbGFtYmRhJDAkVHlwZScsNzk3KTtmZWIoMTQ2OCwxLG5FZSxfZGQpO18ucmc9ZnVuY3Rpb24gYWVkKGEpe3JldHVybiBSRChhLDMwNiksbmV3IHVmZH07Xy5LZj1mdW5jdGlvbiBiZWQoYSxiKXskZGQodGhpcyxSRChhLDMwNiksYil9O3ZhciBlMj1zZmIoeEdlLCdTaHJpbmtUcmVlQ29tcGFjdGlvblBoYXNlJywxNDY4KTtmZWIoNzk1LDEsUXZlLGNlZCk7Xy5DZD1mdW5jdGlvbiBkZWQoYSl7WmRkKHRoaXMuYSx0aGlzLmIsdGhpcy5jLFJEKGEsMjI1KSl9O3ZhciBkMj1zZmIoeEdlLCdTaHJpbmtUcmVlQ29tcGFjdGlvblBoYXNlL2xhbWJkYSQwJFR5cGUnLDc5NSk7dmFyIGo0PXVmYihqRWUsJ0lHcmFwaEVsZW1lbnRWaXNpdG9yJyk7ZmViKDg3MiwxLHs1MzY6MX0sbWVkKTtfLktnPWZ1bmN0aW9uIHBlZChhKXt2YXIgYjtiPWxlZCh0aGlzLGEpO2tRYihiLFJEKFdqYih0aGlzLmIsYSksOTYpKTtqZWQodGhpcyxhLGIpfTt2YXIgZWVkLGZlZCxnZWQ7dmFyIGwyPXNmYihwemUsJ0xheW91dENvbmZpZ3VyYXRvcicsODcyKTt2YXIgZzI9dWZiKHB6ZSwnTGF5b3V0Q29uZmlndXJhdG9yL0lQcm9wZXJ0eUhvbGRlck9wdGlvbkZpbHRlcicpO2ZlYig5NDQsMSx7MjAzMjoxfSxxZWQpO18uTGc9ZnVuY3Rpb24gcmVkKGEsYil7cmV0dXJuIGhlZCgpLCFhLnBmKGIpfTt2YXIgaDI9c2ZiKHB6ZSwnTGF5b3V0Q29uZmlndXJhdG9yL2xhbWJkYSQwJFR5cGUnLDk0NCk7ZmViKDk0MywxLHs4NDU6MX0sc2VkKTtfLk1nPWZ1bmN0aW9uIHRlZChhLGIpe3JldHVybiBoZWQoKSwhYS5wZihiKX07dmFyIGkyPXNmYihwemUsJ0xheW91dENvbmZpZ3VyYXRvci9sYW1iZGEkMSRUeXBlJyw5NDMpO2ZlYig5NDUsMSx7MjAzMjoxfSx2ZWQpO18uTGc9ZnVuY3Rpb24gd2VkKGEsYil7cmV0dXJuIHVlZChhLGIpfTt2YXIgajI9c2ZiKHB6ZSwnTGF5b3V0Q29uZmlndXJhdG9yL2xhbWJkYSQyJFR5cGUnLDk0NSk7ZmViKDk0NiwxLG53ZSx4ZWQpO18uTWI9ZnVuY3Rpb24geWVkKGEpe3JldHVybiBvZWQodGhpcy5hLHRoaXMuYixSRChhLDIwMzIpKX07dmFyIGsyPXNmYihwemUsJ0xheW91dENvbmZpZ3VyYXRvci9sYW1iZGEkMyRUeXBlJyw5NDYpO2ZlYig4NjksMSx7fSxIZWQpO3ZhciBtMj1zZmIocHplLCdSZWN1cnNpdmVHcmFwaExheW91dEVuZ2luZScsODY5KTtmZWIoMjI0LDYzLHN3ZSxJZWQsSmVkKTt2YXIgbjI9c2ZiKHB6ZSwnVW5zdXBwb3J0ZWRDb25maWd1cmF0aW9uRXhjZXB0aW9uJywyMjQpO2ZlYigzNzAsNjMsc3dlLEtlZCk7dmFyIG8yPXNmYihwemUsJ1Vuc3VwcG9ydGVkR3JhcGhFeGNlcHRpb24nLDM3MCk7ZmViKDc2MSwxLHt9KTt2YXIgTjM9c2ZiKGpFZSwnQWJzdHJhY3RSYW5kb21MaXN0QWNjZXNzb3InLDc2MSk7ZmViKDQ1MCw3NjEse30sV2VkKTtfLk5nPWZ1bmN0aW9uIFllZCgpe3JldHVybiBudWxsfTtfLmQ9dHJ1ZTtfLmU9dHJ1ZTtfLmY9MDt2YXIgdTI9c2ZiKEFHZSwnQWxnb3JpdGhtQXNzZW1ibGVyJyw0NTApO2ZlYigxMjAwLDEsbndlLFplZCk7Xy5NYj1mdW5jdGlvbiAkZWQoYSl7cmV0dXJuICEhUkQoYSwxMDYpfTt2YXIgcDI9c2ZiKEFHZSwnQWxnb3JpdGhtQXNzZW1ibGVyL2xhbWJkYSQwJFR5cGUnLDEyMDApO2ZlYigxMjAxLDEse30sX2VkKTtfLktiPWZ1bmN0aW9uIGFmZChhKXtyZXR1cm4gWGVkKHRoaXMuYSxSRChhLDEwNikpfTt2YXIgcTI9c2ZiKEFHZSwnQWxnb3JpdGhtQXNzZW1ibGVyL2xhbWJkYSQxJFR5cGUnLDEyMDEpO2ZlYigxMjAyLDEsbndlLGJmZCk7Xy5NYj1mdW5jdGlvbiBjZmQoYSl7cmV0dXJuICEhUkQoYSw4MCl9O3ZhciByMj1zZmIoQUdlLCdBbGdvcml0aG1Bc3NlbWJsZXIvbGFtYmRhJDIkVHlwZScsMTIwMik7ZmViKDEyMDMsMSxRdmUsZGZkKTtfLkNkPWZ1bmN0aW9uIGVmZChhKXtvZmQodGhpcy5hLFJEKGEsODApKX07dmFyIHMyPXNmYihBR2UsJ0FsZ29yaXRobUFzc2VtYmxlci9sYW1iZGEkMyRUeXBlJywxMjAzKTtmZWIoMTIwNCwxLFF2ZSxmZmQpO18uQ2Q9ZnVuY3Rpb24gZ2ZkKGEpe1JlZCh0aGlzLmEsdGhpcy5iLFJEKGEsMTk2KSl9O3ZhciB0Mj1zZmIoQUdlLCdBbGdvcml0aG1Bc3NlbWJsZXIvbGFtYmRhJDQkVHlwZScsMTIwNCk7ZmViKDEzNDMsMSxmeWUsaWZkKTtfLk5lPWZ1bmN0aW9uIGpmZChhLGIpe3JldHVybiBoZmQoUkQoYSwxOTYpLFJEKGIsMTk2KSl9O18uRmI9ZnVuY3Rpb24ga2ZkKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBsZmQoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIHYyPXNmYihBR2UsJ0VudW1CYXNlZEZhY3RvcnlDb21wYXJhdG9yJywxMzQzKTtmZWIoODAsNzYxLHs4MDoxfSx1ZmQpO18uTmc9ZnVuY3Rpb24gd2ZkKCl7cmV0dXJuIG5ldyBfc2J9O18uYT0wO3ZhciB3Mj1zZmIoQUdlLCdMYXlvdXRQcm9jZXNzb3JDb25maWd1cmF0aW9uJyw4MCk7ZmViKDEwMjUsMSx7NTM2OjF9LEJmZCk7Xy5LZz1mdW5jdGlvbiBGZmQoYSl7QnZiKHlmZCxuZXcgS2ZkKGEpKX07dmFyIHhmZCx5ZmQsemZkO3ZhciBBMj1zZmIoenllLCdEZXByZWNhdGVkTGF5b3V0T3B0aW9uUmVwbGFjZXInLDEwMjUpO2ZlYigxMDI2LDEsUXZlLEdmZCk7Xy5DZD1mdW5jdGlvbiBIZmQoYSl7Q2ZkKFJEKGEsMTY3KSl9O3ZhciB4Mj1zZmIoenllLCdEZXByZWNhdGVkTGF5b3V0T3B0aW9uUmVwbGFjZXIvbGFtYmRhJDAkVHlwZScsMTAyNik7ZmViKDEwMjcsMSxRdmUsSWZkKTtfLkNkPWZ1bmN0aW9uIEpmZChhKXtEZmQoUkQoYSwxNjcpKX07dmFyIHkyPXNmYih6eWUsJ0RlcHJlY2F0ZWRMYXlvdXRPcHRpb25SZXBsYWNlci9sYW1iZGEkMSRUeXBlJywxMDI3KTtmZWIoMTAyOCwxLHt9LEtmZCk7Xy5ZZD1mdW5jdGlvbiBMZmQoYSxiKXtFZmQodGhpcy5hLFJEKGEsMTQ5KSxSRChiLDQxKSl9O3ZhciB6Mj1zZmIoenllLCdEZXByZWNhdGVkTGF5b3V0T3B0aW9uUmVwbGFjZXIvbGFtYmRhJDIkVHlwZScsMTAyOCk7ZmViKDE0MywxLHs3MDE6MSwxNDM6MX0sUGZkKTtfLkZiPWZ1bmN0aW9uIFFmZChhKXtyZXR1cm4gTmZkKHRoaXMsYSl9O18uT2c9ZnVuY3Rpb24gUmZkKCl7cmV0dXJuIHRoaXMuYn07Xy5QZz1mdW5jdGlvbiBTZmQoKXtyZXR1cm4gdGhpcy5jfTtfLnhlPWZ1bmN0aW9uIFRmZCgpe3JldHVybiB0aGlzLmV9O18uSGI9ZnVuY3Rpb24gVWZkKCl7cmV0dXJuIG9oYih0aGlzLmMpfTtfLkliPWZ1bmN0aW9uIFZmZCgpe3JldHVybiAnTGF5b3V0IEFsZ29yaXRobTogJyt0aGlzLmN9O3ZhciBEMj1zZmIoenllLCdMYXlvdXRBbGdvcml0aG1EYXRhJywxNDMpO2ZlYigyNjksMSx7fSxhZ2QpO3ZhciBDMj1zZmIoenllLCdMYXlvdXRBbGdvcml0aG1EYXRhL0J1aWxkZXInLDI2OSk7ZmViKDEwMjksMSx7NTM2OjF9LGRnZCk7Xy5LZz1mdW5jdGlvbiBlZ2QoYSl7WkQoYSwyMDcpJiYhSGViKFREKGEub2YoKHVtZCgpLHJsZCkpKSkmJmJnZChSRChhLDI3KSl9O3ZhciBFMj1zZmIoenllLCdMYXlvdXRBbGdvcml0aG1SZXNvbHZlcicsMTAyOSk7ZmViKDIzMywxLHs3MDE6MSwyMzM6MX0sZmdkKTtfLkZiPWZ1bmN0aW9uIGdnZChhKXtpZihaRChhLDIzMykpe3JldHVybiBsaGIodGhpcy5iLFJEKGEsMjMzKS5iKX1yZXR1cm4gZmFsc2V9O18uT2c9ZnVuY3Rpb24gaGdkKCl7cmV0dXJuIHRoaXMuYX07Xy5QZz1mdW5jdGlvbiBpZ2QoKXtyZXR1cm4gdGhpcy5ifTtfLnhlPWZ1bmN0aW9uIGpnZCgpe3JldHVybiB0aGlzLmR9O18uSGI9ZnVuY3Rpb24ga2dkKCl7cmV0dXJuIG9oYih0aGlzLmIpfTtfLkliPWZ1bmN0aW9uIGxnZCgpe3JldHVybiAnTGF5b3V0IFR5cGU6ICcrdGhpcy5ifTt2YXIgRzI9c2ZiKHp5ZSwnTGF5b3V0Q2F0ZWdvcnlEYXRhJywyMzMpO2ZlYigzNTcsMSx7fSxwZ2QpO3ZhciBGMj1zZmIoenllLCdMYXlvdXRDYXRlZ29yeURhdGEvQnVpbGRlcicsMzU3KTtmZWIoODc5LDEse30seGdkKTt2YXIgcWdkO3ZhciBiMz1zZmIoenllLCdMYXlvdXRNZXRhRGF0YVNlcnZpY2UnLDg3OSk7ZmViKDg4MCwxLHt9LEdnZCk7dmFyIEkyPXNmYih6eWUsJ0xheW91dE1ldGFEYXRhU2VydmljZS9SZWdpc3RyeScsODgwKTtmZWIoNDg3LDEsezQ4NzoxfSxIZ2QpO3ZhciBIMj1zZmIoenllLCdMYXlvdXRNZXRhRGF0YVNlcnZpY2UvUmVnaXN0cnkvVHJpcGxlJyw0ODcpO2ZlYig4ODEsMSxCR2UsSWdkKTtfLlFnPWZ1bmN0aW9uIEpnZCgpe3JldHVybiBuZXcgcGpkfTt2YXIgSjI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQwJFR5cGUnLDg4MSk7ZmViKDg4MiwxLENHZSxLZ2QpO18uUmc9ZnVuY3Rpb24gTGdkKGEpe3JldHVybiBhamQoUkQoYSw4KSl9O3ZhciBLMj1zZmIoenllLCdMYXlvdXRNZXRhRGF0YVNlcnZpY2UvbGFtYmRhJDEkVHlwZScsODgyKTtmZWIoODkxLDEsQkdlLE1nZCk7Xy5RZz1mdW5jdGlvbiBOZ2QoKXtyZXR1cm4gbmV3IGJuYn07dmFyIEwyPXNmYih6eWUsJ0xheW91dE1ldGFEYXRhU2VydmljZS9sYW1iZGEkMTAkVHlwZScsODkxKTtmZWIoODkyLDEsQ0dlLE9nZCk7Xy5SZz1mdW5jdGlvbiBQZ2QoYSl7cmV0dXJuIG5ldyBkbmIoUkQoYSwxMykpfTt2YXIgTTI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQxMSRUeXBlJyw4OTIpO2ZlYig4OTMsMSxCR2UsUWdkKTtfLlFnPWZ1bmN0aW9uIFJnZCgpe3JldHVybiBuZXcgWXVifTt2YXIgTjI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQxMiRUeXBlJyw4OTMpO2ZlYig4OTQsMSxDR2UsU2dkKTtfLlJnPWZ1bmN0aW9uIFRnZChhKXtyZXR1cm4gZ3YoUkQoYSw2NykpfTt2YXIgTzI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQxMyRUeXBlJyw4OTQpO2ZlYig4OTUsMSxCR2UsVWdkKTtfLlFnPWZ1bmN0aW9uIFZnZCgpe3JldHVybiBuZXcgX3NifTt2YXIgUDI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQxNCRUeXBlJyw4OTUpO2ZlYig4OTYsMSxDR2UsV2dkKTtfLlJnPWZ1bmN0aW9uIFhnZChhKXtyZXR1cm4gVXgoUkQoYSw0OSkpfTt2YXIgUTI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQxNSRUeXBlJyw4OTYpO2ZlYig4OTcsMSxCR2UsWWdkKTtfLlFnPWZ1bmN0aW9uIFpnZCgpe3JldHVybiBuZXcgSXVifTt2YXIgUjI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQxNiRUeXBlJyw4OTcpO2ZlYig4OTgsMSxDR2UsJGdkKTtfLlJnPWZ1bmN0aW9uIF9nZChhKXtyZXR1cm4gWHgoUkQoYSw0OSkpfTt2YXIgUzI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQxNyRUeXBlJyw4OTgpO2ZlYig4OTksMSxCR2UsYWhkKTtfLlFnPWZ1bmN0aW9uIGJoZCgpe3JldHVybiBuZXcgeEFifTt2YXIgVDI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQxOCRUeXBlJyw4OTkpO2ZlYig5MDAsMSxDR2UsY2hkKTtfLlJnPWZ1bmN0aW9uIGRoZChhKXtyZXR1cm4gWXgoUkQoYSwxNTcpKX07dmFyIFUyPXNmYih6eWUsJ0xheW91dE1ldGFEYXRhU2VydmljZS9sYW1iZGEkMTkkVHlwZScsOTAwKTtmZWIoODgzLDEsQkdlLGVoZCk7Xy5RZz1mdW5jdGlvbiBmaGQoKXtyZXR1cm4gbmV3IEVqZH07dmFyIFYyPXNmYih6eWUsJ0xheW91dE1ldGFEYXRhU2VydmljZS9sYW1iZGEkMiRUeXBlJyw4ODMpO2ZlYig4ODQsMSxDR2UsZ2hkKTtfLlJnPWZ1bmN0aW9uIGhoZChhKXtyZXR1cm4gbmV3IEZqZChSRChhLDc1KSl9O3ZhciBXMj1zZmIoenllLCdMYXlvdXRNZXRhRGF0YVNlcnZpY2UvbGFtYmRhJDMkVHlwZScsODg0KTtmZWIoODg1LDEsQkdlLGloZCk7Xy5RZz1mdW5jdGlvbiBqaGQoKXtyZXR1cm4gbmV3IFAyYn07dmFyIFgyPXNmYih6eWUsJ0xheW91dE1ldGFEYXRhU2VydmljZS9sYW1iZGEkNCRUeXBlJyw4ODUpO2ZlYig4ODYsMSxDR2Usa2hkKTtfLlJnPWZ1bmN0aW9uIGxoZChhKXtyZXR1cm4gbmV3IFMyYihSRChhLDE0MCkpfTt2YXIgWTI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQ1JFR5cGUnLDg4Nik7ZmViKDg4NywxLEJHZSxtaGQpO18uUWc9ZnVuY3Rpb24gbmhkKCl7cmV0dXJuIG5ldyB6M2J9O3ZhciBaMj1zZmIoenllLCdMYXlvdXRNZXRhRGF0YVNlcnZpY2UvbGFtYmRhJDYkVHlwZScsODg3KTtmZWIoODg4LDEsQ0dlLG9oZCk7Xy5SZz1mdW5jdGlvbiBwaGQoYSl7cmV0dXJuIG5ldyBCM2IoUkQoYSwxMDcpKX07dmFyICQyPXNmYih6eWUsJ0xheW91dE1ldGFEYXRhU2VydmljZS9sYW1iZGEkNyRUeXBlJyw4ODgpO2ZlYig4ODksMSxCR2UscWhkKTtfLlFnPWZ1bmN0aW9uIHJoZCgpe3JldHVybiBuZXcgZHRkfTt2YXIgXzI9c2ZiKHp5ZSwnTGF5b3V0TWV0YURhdGFTZXJ2aWNlL2xhbWJkYSQ4JFR5cGUnLDg4OSk7ZmViKDg5MCwxLENHZSxzaGQpO18uUmc9ZnVuY3Rpb24gdGhkKGEpe3JldHVybiBuZXcgZXRkKFJEKGEsMzg1KSl9O3ZhciBhMz1zZmIoenllLCdMYXlvdXRNZXRhRGF0YVNlcnZpY2UvbGFtYmRhJDkkVHlwZScsODkwKTt2YXIgVjU9dWZiKGp6ZSwnSVByb3BlcnR5Jyk7ZmViKDIzLDEsezM0OjEsNzAxOjEsMjM6MSwxNDk6MX0sQWhkKTtfLkZkPWZ1bmN0aW9uIEJoZChhKXtyZXR1cm4gdmhkKHRoaXMsUkQoYSwxNDkpKX07Xy5GYj1mdW5jdGlvbiBDaGQoYSl7cmV0dXJuIFpEKGEsMjMpP2xoYih0aGlzLmYsUkQoYSwyMykuZik6WkQoYSwxNDkpJiZsaGIodGhpcy5mLFJEKGEsMTQ5KS5QZygpKX07Xy5TZz1mdW5jdGlvbiBEaGQoKXt2YXIgYTtpZihaRCh0aGlzLmIsNCkpe2E9RklkKHRoaXMuYik7aWYoYT09bnVsbCl7dGhyb3cgQWRiKG5ldyBkZ2IoSEdlK3RoaXMuZitcIicuIFwiK1wiTWFrZSBzdXJlIGl0J3MgdHlwZSBpcyByZWdpc3RlcmVkIHdpdGggdGhlIFwiKyhsZmIoYjYpLGI2LmspK0VHZSkpfXJldHVybiBhfWVsc2V7cmV0dXJuIHRoaXMuYn19O18uT2c9ZnVuY3Rpb24gRWhkKCl7cmV0dXJuIHRoaXMuZH07Xy5QZz1mdW5jdGlvbiBGaGQoKXtyZXR1cm4gdGhpcy5mfTtfLnhlPWZ1bmN0aW9uIEdoZCgpe3JldHVybiB0aGlzLml9O18uSGI9ZnVuY3Rpb24gSGhkKCl7cmV0dXJuIG9oYih0aGlzLmYpfTtfLkliPWZ1bmN0aW9uIEloZCgpe3JldHVybiAnTGF5b3V0IE9wdGlvbjogJyt0aGlzLmZ9O3ZhciBmMz1zZmIoenllLCdMYXlvdXRPcHRpb25EYXRhJywyMyk7ZmViKDI0LDEse30sU2hkKTt2YXIgYzM9c2ZiKHp5ZSwnTGF5b3V0T3B0aW9uRGF0YS9CdWlsZGVyJywyNCk7ZmViKDE3MCwyMix7MzoxLDM0OjEsMjI6MSwxNzA6MX0sWmhkKTt2YXIgVGhkLFVoZCxWaGQsV2hkLFhoZDt2YXIgZDM9dGZiKHp5ZSwnTGF5b3V0T3B0aW9uRGF0YS9UYXJnZXQnLDE3MCxXSSxfaGQsJGhkKTt2YXIgYWlkO2ZlYigyODUsMjIsezM6MSwzNDoxLDIyOjEsMjg1OjF9LGxpZCk7dmFyIGNpZCxkaWQsZWlkLGZpZCxnaWQsaGlkLGlpZCxqaWQ7dmFyIGUzPXRmYih6eWUsJ0xheW91dE9wdGlvbkRhdGEvVHlwZScsMjg1LFdJLG5pZCxtaWQpO3ZhciBvaWQ7dmFyIHFpZDt2YXIgc2lkO2ZlYigxMTYsMSx7MTE2OjF9LFRpZCxVaWQsVmlkKTtfLkZiPWZ1bmN0aW9uIFdpZChhKXt2YXIgYjtpZihhPT1udWxsfHwhWkQoYSwxMTYpKXtyZXR1cm4gZmFsc2V9Yj1SRChhLDExNik7cmV0dXJuIEZ2Yih0aGlzLmMsYi5jKSYmRnZiKHRoaXMuZCxiLmQpJiZGdmIodGhpcy5iLGIuYikmJkZ2Yih0aGlzLmEsYi5hKX07Xy5IYj1mdW5jdGlvbiBYaWQoKXtyZXR1cm4gVG5iKGNEKFdDKGpKLDEpLHJ2ZSwxLDUsW3RoaXMuYyx0aGlzLmQsdGhpcy5iLHRoaXMuYV0pKX07Xy5JYj1mdW5jdGlvbiBZaWQoKXtyZXR1cm4gJ1JlY3RbeD0nK3RoaXMuYysnLHk9Jyt0aGlzLmQrJyx3PScrdGhpcy5iKycsaD0nK3RoaXMuYSsnXSd9O18uYT0wO18uYj0wO18uYz0wO18uZD0wO3ZhciBqMz1zZmIoX0FlLCdFbGtSZWN0YW5nbGUnLDExNik7ZmViKDgsMSx7MzoxLDQ6MSw4OjEsNDIzOjF9LHBqZCxxamQscmpkLHNqZCk7Xy5GYj1mdW5jdGlvbiB0amQoYSl7cmV0dXJuIGRqZCh0aGlzLGEpfTtfLkhiPWZ1bmN0aW9uIHVqZCgpe3JldHVybiBOZmIodGhpcy5hKStwZ2IoTmZiKHRoaXMuYikpfTtfLmNnPWZ1bmN0aW9uIHdqZChiKXt2YXIgYyxkLGUsZjtlPTA7d2hpbGUoZTxiLmxlbmd0aCYmdmpkKChCRmIoZSxiLmxlbmd0aCksYi5jaGFyQ29kZUF0KGUpKSxZQWUpKXsrK2V9Yz1iLmxlbmd0aDt3aGlsZShjPjAmJnZqZCgoQkZiKGMtMSxiLmxlbmd0aCksYi5jaGFyQ29kZUF0KGMtMSkpLFpBZSkpey0tY31pZihlPj1jKXt0aHJvdyBBZGIobmV3IGFnYignVGhlIGdpdmVuIHN0cmluZyBkb2VzIG5vdCBjb250YWluIGFueSBudW1iZXJzLicpKX1mPXZoYigoQUZiKGUsYyxiLmxlbmd0aCksYi5zdWJzdHIoZSxjLWUpKSwnLHw7fFxccnxcXG4nKTtpZihmLmxlbmd0aCE9Mil7dGhyb3cgQWRiKG5ldyBhZ2IoJ0V4YWN0bHkgdHdvIG51bWJlcnMgYXJlIGV4cGVjdGVkLCAnK2YubGVuZ3RoKycgd2VyZSBmb3VuZC4nKSl9dHJ5e3RoaXMuYT1OZWIoRGhiKGZbMF0pKTt0aGlzLmI9TmViKERoYihmWzFdKSl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwxMzApKXtkPWE7dGhyb3cgQWRiKG5ldyBhZ2IoJEFlK2QpKX1lbHNlIHRocm93IEFkYihhKX19O18uSWI9ZnVuY3Rpb24geWpkKCl7cmV0dXJuICcoJyt0aGlzLmErJywnK3RoaXMuYisnKSd9O18uYT0wO18uYj0wO3ZhciBsMz1zZmIoX0FlLCdLVmVjdG9yJyw4KTtmZWIoNzUsNjcsezM6MSw0OjEsMjA6MSwzMToxLDU2OjEsMTY6MSw2NzoxLDE1OjEsNzU6MSw0MjM6MX0sRWpkLEZqZCxHamQpO18uUGM9ZnVuY3Rpb24gSmpkKCl7cmV0dXJuIERqZCh0aGlzKX07Xy5jZz1mdW5jdGlvbiBIamQoYil7dmFyIGMsZCxlLGYsZyxoO2U9dmhiKGIsJyx8O3xcXFxcKHxcXFxcKXxcXFxcW3xcXFxcXXxcXFxce3xcXFxcfXwgfFxcdHxcXG4nKTtYdWIodGhpcyk7dHJ5e2Q9MDtnPTA7Zj0wO2g9MDt3aGlsZShkPGUubGVuZ3RoKXtpZihlW2RdIT1udWxsJiZEaGIoZVtkXSkubGVuZ3RoPjApe2clMj09MD8oZj1OZWIoZVtkXSkpOihoPU5lYihlW2RdKSk7Zz4wJiZnJTIhPTAmJk11Yih0aGlzLG5ldyByamQoZixoKSk7KytnfSsrZH19Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwxMzApKXtjPWE7dGhyb3cgQWRiKG5ldyBhZ2IoJ1RoZSBnaXZlbiBzdHJpbmcgZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdCBmb3IgdmVjdG9ycy4nK2MpKX1lbHNlIHRocm93IEFkYihhKX19O18uSWI9ZnVuY3Rpb24gS2pkKCl7dmFyIGEsYixjO2E9bmV3IGRpYignKCcpO2I9U3ViKHRoaXMsMCk7d2hpbGUoYi5iIT1iLmQuYyl7Yz1SRChldmIoYiksOCk7WmhiKGEsYy5hKycsJytjLmIpO2IuYiE9Yi5kLmMmJihhLmErPSc7ICcsYSl9cmV0dXJuIChhLmErPScpJyxhKS5hfTt2YXIgazM9c2ZiKF9BZSwnS1ZlY3RvckNoYWluJyw3NSk7ZmViKDI1NSwyMix7MzoxLDM0OjEsMjI6MSwyNTU6MX0sU2pkKTt2YXIgTGpkLE1qZCxOamQsT2pkLFBqZCxRamQ7dmFyIG4zPXRmYihKR2UsJ0FsaWdubWVudCcsMjU1LFdJLFVqZCxUamQpO3ZhciBWamQ7ZmViKDk5MSwxLEV5ZSxqa2QpO18uaGY9ZnVuY3Rpb24ga2tkKGEpe2lrZChhKX07dmFyIFhqZCxZamQsWmpkLCRqZCxfamQsYWtkLGJrZCxja2QsZGtkLGVrZCxma2QsZ2tkO3ZhciBwMz1zZmIoSkdlLCdCb3hMYXlvdXRlck9wdGlvbnMnLDk5MSk7ZmViKDk5MiwxLHt9LGxrZCk7Xy5zZj1mdW5jdGlvbiBta2QoKXt2YXIgYTtyZXR1cm4gYT1uZXcganJkLGF9O18udGY9ZnVuY3Rpb24gbmtkKGEpe307dmFyIG8zPXNmYihKR2UsJ0JveExheW91dGVyT3B0aW9ucy9Cb3hGYWN0b3J5Jyw5OTIpO2ZlYigyOTgsMjIsezM6MSwzNDoxLDIyOjEsMjk4OjF9LHZrZCk7dmFyIG9rZCxwa2QscWtkLHJrZCxza2QsdGtkO3ZhciBxMz10ZmIoSkdlLCdDb250ZW50QWxpZ25tZW50JywyOTgsV0kseGtkLHdrZCk7dmFyIHlrZDtmZWIoNjk5LDEsRXllLHZtZCk7Xy5oZj1mdW5jdGlvbiB3bWQoYSl7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxPR2UpLCcnKSwnTGF5b3V0IEFsZ29yaXRobScpLCdTZWxlY3QgYSBzcGVjaWZpYyBsYXlvdXQgYWxnb3JpdGhtLicpLChraWQoKSxpaWQpKSxxSikseHNiKChZaGQoKSxXaGQpKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFBHZSksJycpLCdSZXNvbHZlZCBMYXlvdXQgQWxnb3JpdGhtJyksJ01ldGEgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIHNlbGVjdGVkIGFsZ29yaXRobS4nKSxoaWQpLEQyKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxNRGUpLCcnKSwnQWxpZ25tZW50JyksJ0FsaWdubWVudCBvZiB0aGUgc2VsZWN0ZWQgbm9kZSByZWxhdGl2ZSB0byBvdGhlciBub2RlczsgdGhlIGV4YWN0IG1lYW5pbmcgZGVwZW5kcyBvbiB0aGUgdXNlZCBhbGdvcml0aG0uJyksQ2tkKSxlaWQpLG4zKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLER6ZSksJycpLCdBc3BlY3QgUmF0aW8nKSwnVGhlIGRlc2lyZWQgYXNwZWN0IHJhdGlvIG9mIHRoZSBkcmF3aW5nLCB0aGF0IGlzIHRoZSBxdW90aWVudCBvZiB3aWR0aCBieSBoZWlnaHQuJyksZGlkKSxWSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxRR2UpLCcnKSwnQmVuZCBQb2ludHMnKSxcIkEgZml4ZWQgbGlzdCBvZiBiZW5kIHBvaW50cyBmb3IgdGhlIGVkZ2UuIFRoaXMgaXMgdXNlZCBieSB0aGUgJ0ZpeGVkIExheW91dCcgYWxnb3JpdGhtIHRvIHNwZWNpZnkgYSBwcmUtZGVmaW5lZCByb3V0aW5nIGZvciBhbiBlZGdlLiBUaGUgdmVjdG9yIGNoYWluIG11c3QgaW5jbHVkZSB0aGUgc291cmNlIHBvaW50LCBhbnkgYmVuZCBwb2ludHMsIGFuZCB0aGUgdGFyZ2V0IHBvaW50LCBzbyBpdCBtdXN0IGhhdmUgYXQgbGVhc3QgdHdvIHBvaW50cy5cIiksaGlkKSxrMykseHNiKFRoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsWURlKSwnJyksJ0NvbnRlbnQgQWxpZ25tZW50JyksJ1NwZWNpZmllcyBob3cgdGhlIGNvbnRlbnQgb2YgYSBub2RlIGFyZSBhbGlnbmVkLiBFYWNoIG5vZGUgY2FuIGluZGl2aWR1YWxseSBjb250cm9sIHRoZSBhbGlnbm1lbnQgb2YgaXRzIGNvbnRlbnRzLiBJLmUuIGlmIGEgbm9kZSBzaG91bGQgYmUgYWxpZ25lZCB0b3AgbGVmdCBpbiBpdHMgcGFyZW50IG5vZGUsIHRoZSBwYXJlbnQgbm9kZSBzaG91bGQgc3BlY2lmeSB0aGF0IG9wdGlvbi4nKSxMa2QpLGZpZCkscTMpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLExEZSksJycpLCdEZWJ1ZyBNb2RlJyksJ1doZXRoZXIgYWRkaXRpb25hbCBkZWJ1ZyBpbmZvcm1hdGlvbiBzaGFsbCBiZSBnZW5lcmF0ZWQuJyksKEdlYigpLGZhbHNlKSksY2lkKSxRSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsUERlKSwnJyksZXplKSwnT3ZlcmFsbCBkaXJlY3Rpb24gb2YgZWRnZXM6IGhvcml6b250YWwgKHJpZ2h0IC8gbGVmdCkgb3IgdmVydGljYWwgKGRvd24gLyB1cCkuJyksT2tkKSxlaWQpLHMzKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxrRGUpLCcnKSwnRWRnZSBSb3V0aW5nJyksJ1doYXQga2luZCBvZiBlZGdlIHJvdXRpbmcgc3R5bGUgc2hvdWxkIGJlIGFwcGxpZWQgZm9yIHRoZSBjb250ZW50IG9mIGEgcGFyZW50IG5vZGUuIEFsZ29yaXRobXMgbWF5IGFsc28gc2V0IHRoaXMgb3B0aW9uIHRvIHNpbmdsZSBlZGdlcyBpbiBvcmRlciB0byBtYXJrIHRoZW0gYXMgc3BsaW5lcy4gVGhlIGJlbmQgcG9pbnQgbGlzdCBvZiBlZGdlcyB3aXRoIHRoaXMgb3B0aW9uIHNldCB0byBTUExJTkVTIG11c3QgYmUgaW50ZXJwcmV0ZWQgYXMgY29udHJvbCBwb2ludHMgZm9yIGEgcGllY2V3aXNlIGN1YmljIHNwbGluZS4nKSxUa2QpLGVpZCksdTMpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLE1HZSksJycpLCdFeHBhbmQgTm9kZXMnKSwnSWYgYWN0aXZlLCBub2RlcyBhcmUgZXhwYW5kZWQgdG8gZmlsbCB0aGUgYXJlYSBvZiB0aGVpciBwYXJlbnQuJyksZmFsc2UpLGNpZCksUUkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGZEZSksJycpLCdIaWVyYXJjaHkgSGFuZGxpbmcnKSxcIkRldGVybWluZXMgd2hldGhlciBzZXBhcmF0ZSBsYXlvdXQgcnVucyBhcmUgdHJpZ2dlcmVkIGZvciBkaWZmZXJlbnQgY29tcG91bmQgbm9kZXMgaW4gYSBoaWVyYXJjaGljYWwgZ3JhcGguIFNldHRpbmcgYSBub2RlJ3MgaGllcmFyY2h5IGhhbmRsaW5nIHRvIGBJTkNMVURFX0NISUxEUkVOYCB3aWxsIGxheSBvdXQgdGhhdCBub2RlIGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRhbnRzIGluIGEgc2luZ2xlIGxheW91dCBydW4sIHVudGlsIGEgZGVzY2VuZGFudCBpcyBlbmNvdW50ZXJlZCB3aGljaCBoYXMgaXRzIGhpZXJhcmNoeSBoYW5kbGluZyBzZXQgdG8gYFNFUEFSQVRFX0NISUxEUkVOYC4gSW4gZ2VuZXJhbCwgYFNFUEFSQVRFX0NISUxEUkVOYCB3aWxsIGVuc3VyZSB0aGF0IGEgbmV3IGxheW91dCBydW4gaXMgdHJpZ2dlcmVkIGZvciBhIG5vZGUgd2l0aCB0aGF0IHNldHRpbmcuIEluY2x1ZGluZyBtdWx0aXBsZSBsZXZlbHMgb2YgaGllcmFyY2h5IGluIGEgc2luZ2xlIGxheW91dCBydW4gbWF5IGFsbG93IGNyb3NzLWhpZXJhcmNoaWNhbCBlZGdlcyB0byBiZSBsYWlkIG91dCBwcm9wZXJseS4gSWYgdGhlIHJvb3Qgbm9kZSBpcyBzZXQgdG8gYElOSEVSSVRgIChvciBub3Qgc2V0IGF0IGFsbCksIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGBTRVBBUkFURV9DSElMRFJFTmAuXCIpLFlrZCksZWlkKSx5MykseXNiKFdoZCxjRChXQyhkMywxKSxqd2UsMTcwLDAsW1ZoZF0pKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxFemUpLCcnKSwnUGFkZGluZycpLFwiVGhlIHBhZGRpbmcgdG8gYmUgbGVmdCB0byBhIHBhcmVudCBlbGVtZW50J3MgYm9yZGVyIHdoZW4gcGxhY2luZyBjaGlsZCBlbGVtZW50cy4gVGhpcyBjYW4gYWxzbyBzZXJ2ZSBhcyBhbiBvdXRwdXQgb3B0aW9uIG9mIGEgbGF5b3V0IGFsZ29yaXRobSBpZiBub2RlIHNpemUgY2FsY3VsYXRpb24gaXMgc2V0dXAgYXBwcm9wcmlhdGVseS5cIiksdWxkKSxoaWQpLGkzKSx5c2IoV2hkLGNEKFdDKGQzLDEpLGp3ZSwxNzAsMCxbVmhkXSkpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGRBZSksJycpLCdJbnRlcmFjdGl2ZScpLCdXaGV0aGVyIHRoZSBhbGdvcml0aG0gc2hvdWxkIGJlIHJ1biBpbiBpbnRlcmFjdGl2ZSBtb2RlIGZvciB0aGUgY29udGVudCBvZiBhIHBhcmVudCBub2RlLiBXaGF0IHRoaXMgbWVhbnMgZXhhY3RseSBkZXBlbmRzIG9uIGhvdyB0aGUgc3BlY2lmaWMgYWxnb3JpdGhtIGludGVycHJldHMgdGhpcyBvcHRpb24uIFVzdWFsbHkgaW4gdGhlIGludGVyYWN0aXZlIG1vZGUgYWxnb3JpdGhtcyB0cnkgdG8gbW9kaWZ5IHRoZSBjdXJyZW50IGxheW91dCBhcyBsaXR0bGUgYXMgcG9zc2libGUuJyksZmFsc2UpLGNpZCksUUkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGlFZSksJycpLCdpbnRlcmFjdGl2ZSBMYXlvdXQnKSwnV2hldGhlciB0aGUgZ3JhcGggc2hvdWxkIGJlIGNoYW5nZWFibGUgaW50ZXJhY3RpdmVseSBhbmQgYnkgc2V0dGluZyBjb25zdHJhaW50cycpLGZhbHNlKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxnQWUpLCcnKSwnT21pdCBOb2RlIE1pY3JvIExheW91dCcpLFwiTm9kZSBtaWNybyBsYXlvdXQgY29tcHJpc2VzIHRoZSBjb21wdXRhdGlvbiBvZiBub2RlIGRpbWVuc2lvbnMgKGlmIHJlcXVlc3RlZCksIHRoZSBwbGFjZW1lbnQgb2YgcG9ydHMgYW5kIHRoZWlyIGxhYmVscywgYW5kIHRoZSBwbGFjZW1lbnQgb2Ygbm9kZSBsYWJlbHMuIFRoZSBmdW5jdGlvbmFsaXR5IGlzIGltcGxlbWVudGVkIGluZGVwZW5kZW50IG9mIGFueSBzcGVjaWZpYyBsYXlvdXQgYWxnb3JpdGhtIGFuZCBzaG91bGRuJ3QgaGF2ZSBhbnkgbmVnYXRpdmUgaW1wYWN0IG9uIHRoZSBsYXlvdXQgYWxnb3JpdGhtJ3MgcGVyZm9ybWFuY2UgaXRzZWxmLiBZZXQsIGlmIGFueSB1bmZvcmVzZWVuIGJlaGF2aW9yIG9jY3VycywgdGhpcyBvcHRpb24gYWxsb3dzIHRvIGRlYWN0aXZhdGUgdGhlIG1pY3JvIGxheW91dC5cIiksZmFsc2UpLGNpZCksUUkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGVBZSksJycpLCdQb3J0IENvbnN0cmFpbnRzJyksJ0RlZmluZXMgY29uc3RyYWludHMgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb3J0cyBvZiBhIG5vZGUuJyksSWxkKSxlaWQpLEMzKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGZFZSksJycpLCdQb3NpdGlvbicpLFwiVGhlIHBvc2l0aW9uIG9mIGEgbm9kZSwgcG9ydCwgb3IgbGFiZWwuIFRoaXMgaXMgdXNlZCBieSB0aGUgJ0ZpeGVkIExheW91dCcgYWxnb3JpdGhtIHRvIHNwZWNpZnkgYSBwcmUtZGVmaW5lZCBwb3NpdGlvbi5cIiksaGlkKSxsMykseXNiKFZoZCxjRChXQyhkMywxKSxqd2UsMTcwLDAsW1hoZCxVaGRdKSkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCwkemUpLCcnKSwnUHJpb3JpdHknKSwnRGVmaW5lcyB0aGUgcHJpb3JpdHkgb2YgYW4gb2JqZWN0OyBpdHMgbWVhbmluZyBkZXBlbmRzIG9uIHRoZSBzcGVjaWZpYyBsYXlvdXQgYWxnb3JpdGhtIGFuZCB0aGUgY29udGV4dCB3aGVyZSBpdCBpcyB1c2VkLicpLGdpZCksYkopLHlzYihWaGQsY0QoV0MoZDMsMSksandlLDE3MCwwLFtUaGRdKSkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxiQWUpLCcnKSwnUmFuZG9taXphdGlvbiBTZWVkJyksJ1NlZWQgdXNlZCBmb3IgcHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9ycyB0byBjb250cm9sIHRoZSBsYXlvdXQgYWxnb3JpdGhtLiBJZiB0aGUgdmFsdWUgaXMgMCwgdGhlIHNlZWQgc2hhbGwgYmUgZGV0ZXJtaW5lZCBwc2V1ZG8tcmFuZG9tbHkgKGUuZy4gZnJvbSB0aGUgc3lzdGVtIHRpbWUpLicpLGdpZCksYkopLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsY0FlKSwnJyksJ1NlcGFyYXRlIENvbm5lY3RlZCBDb21wb25lbnRzJyksJ1doZXRoZXIgZWFjaCBjb25uZWN0ZWQgY29tcG9uZW50IHNob3VsZCBiZSBwcm9jZXNzZWQgc2VwYXJhdGVseS4nKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxaRGUpLCcnKSwnSnVuY3Rpb24gUG9pbnRzJyksJ1RoaXMgb3B0aW9uIGlzIG5vdCB1c2VkIGFzIG9wdGlvbiwgYnV0IGFzIG91dHB1dCBvZiB0aGUgbGF5b3V0IGFsZ29yaXRobXMuIEl0IGlzIGF0dGFjaGVkIHRvIGVkZ2VzIGFuZCBkZXRlcm1pbmVzIHRoZSBwb2ludHMgd2hlcmUganVuY3Rpb24gc3ltYm9scyBzaG91bGQgYmUgZHJhd24gaW4gb3JkZXIgdG8gcmVwcmVzZW50IGh5cGVyZWRnZXMgd2l0aCBvcnRob2dvbmFsIHJvdXRpbmcuIFdoZXRoZXIgc3VjaCBwb2ludHMgYXJlIGNvbXB1dGVkIGRlcGVuZHMgb24gdGhlIGNob3NlbiBsYXlvdXQgYWxnb3JpdGhtIGFuZCBlZGdlIHJvdXRpbmcgc3R5bGUuIFRoZSBwb2ludHMgYXJlIHB1dCBpbnRvIHRoZSB2ZWN0b3IgY2hhaW4gd2l0aCBubyBzcGVjaWZpYyBvcmRlci4nKSxkbGQpLGhpZCksazMpLHhzYihUaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGFFZSksJycpLCdDb21tZW50IEJveCcpLCdXaGV0aGVyIHRoZSBub2RlIHNob3VsZCBiZSByZWdhcmRlZCBhcyBhIGNvbW1lbnQgYm94IGluc3RlYWQgb2YgYSByZWd1bGFyIG5vZGUuIEluIHRoYXQgY2FzZSBpdHMgcGxhY2VtZW50IHNob3VsZCBiZSBzaW1pbGFyIHRvIGhvdyBsYWJlbHMgYXJlIGhhbmRsZWQuIEFueSBlZGdlcyBpbmNpZGVudCB0byBhIGNvbW1lbnQgYm94IHNwZWNpZnkgdG8gd2hpY2ggZ3JhcGggZWxlbWVudHMgdGhlIGNvbW1lbnQgaXMgcmVsYXRlZC4nKSxmYWxzZSksY2lkKSxRSSkseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsYkVlKSwnJyksJ0h5cGVybm9kZScpLCdXaGV0aGVyIHRoZSBub2RlIHNob3VsZCBiZSBoYW5kbGVkIGFzIGEgaHlwZXJub2RlLicpLGZhbHNlKSxjaWQpLFFJKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFJHZSksJycpLCdMYWJlbCBNYW5hZ2VyJyksXCJMYWJlbCBtYW5hZ2VycyBjYW4gc2hvcnRlbiBsYWJlbHMgdXBvbiBhIGxheW91dCBhbGdvcml0aG0ncyByZXF1ZXN0LlwiKSxoaWQpLGczKSx5c2IoV2hkLGNEKFdDKGQzLDEpLGp3ZSwxNzAsMCxbVWhkXSkpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGdFZSksJycpLCdNYXJnaW5zJyksXCJNYXJnaW5zIGRlZmluZSBhZGRpdGlvbmFsIHNwYWNlIGFyb3VuZCB0aGUgYWN0dWFsIGJvdW5kcyBvZiBhIGdyYXBoIGVsZW1lbnQuIEZvciBpbnN0YW5jZSwgcG9ydHMgb3IgbGFiZWxzIGJlaW5nIHBsYWNlZCBvbiB0aGUgb3V0c2lkZSBvZiBhIG5vZGUncyBib3JkZXIgbWlnaHQgaW50cm9kdWNlIHN1Y2ggYSBtYXJnaW4uIFRoZSBtYXJnaW4gaXMgdXNlZCB0byBndWFyYW50ZWUgbm9uLW92ZXJsYXAgb2Ygb3RoZXIgZ3JhcGggZWxlbWVudHMgd2l0aCB0aG9zZSBwb3J0cyBvciBsYWJlbHMuXCIpLGZsZCksaGlkKSxoMykseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsSkRlKSwnJyksJ05vIExheW91dCcpLFwiTm8gbGF5b3V0IGlzIGRvbmUgZm9yIHRoZSBhc3NvY2lhdGVkIGVsZW1lbnQuIFRoaXMgaXMgdXNlZCB0byBtYXJrIHBhcnRzIG9mIGEgZGlhZ3JhbSB0byBhdm9pZCB0aGVpciBpbmNsdXNpb24gaW4gdGhlIGxheW91dCBncmFwaCwgb3IgdG8gbWFyayBwYXJ0cyBvZiB0aGUgbGF5b3V0IGdyYXBoIHRvIHByZXZlbnQgbGF5b3V0IGVuZ2luZXMgZnJvbSBwcm9jZXNzaW5nIHRoZW0uIElmIHlvdSB3aXNoIHRvIGV4Y2x1ZGUgdGhlIGNvbnRlbnRzIG9mIGEgY29tcG91bmQgbm9kZSBmcm9tIGF1dG9tYXRpYyBsYXlvdXQsIHdoaWxlIHRoZSBub2RlIGl0c2VsZiBpcyBzdGlsbCBjb25zaWRlcmVkIG9uIGl0cyBvd24gbGF5ZXIsIHVzZSB0aGUgJ0ZpeGVkIExheW91dCcgYWxnb3JpdGhtIGZvciB0aGF0IG5vZGUuXCIpLGZhbHNlKSxjaWQpLFFJKSx5c2IoVmhkLGNEKFdDKGQzLDEpLGp3ZSwxNzAsMCxbVGhkLFhoZCxVaGRdKSkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsU0dlKSwnJyksJ1NjYWxlIEZhY3RvcicpLFwiVGhlIHNjYWxpbmcgZmFjdG9yIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgbm9kZSBpbiByZWN1cnNpdmUgbGF5b3V0LiBJdCBjYXVzZXMgdGhlIGNvcnJlc3BvbmRpbmcgbm9kZSdzIHNpemUgdG8gYmUgYWRqdXN0ZWQsIGFuZCBpdHMgcG9ydHMgYW5kIGxhYmVscyB0byBiZSBzaXplZCBhbmQgcGxhY2VkIGFjY29yZGluZ2x5IGFmdGVyIHRoZSBsYXlvdXQgb2YgdGhhdCBub2RlIGhhcyBiZWVuIGRldGVybWluZWQgKGFuZCBiZWZvcmUgdGhlIG5vZGUgaXRzZWxmIGFuZCBpdHMgc2libGluZ3MgYXJlIGFycmFuZ2VkKS4gVGhlIHNjYWxpbmcgaXMgbm90IHJldmVydGVkIGFmdGVyd2FyZHMsIHNvIHRoZSByZXN1bHRpbmcgbGF5b3V0IGdyYXBoIGNvbnRhaW5zIHRoZSBhZGp1c3RlZCBzaXplIGFuZCBwb3NpdGlvbiBkYXRhLiBUaGlzIG9wdGlvbiBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBpZiAnTGF5b3V0IEhpZXJhcmNoeScgaXMgc2V0LlwiKSwxKSxkaWQpLFZJKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFRHZSksJycpLCdDaGlsZCBBcmVhIFdpZHRoJyksJ1RoZSB3aWR0aCBvZiB0aGUgYXJlYSBvY2N1cGllZCBieSB0aGUgbGFpZCBvdXQgY2hpbGRyZW4gb2YgYSBub2RlLicpLGRpZCksVkkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsVUdlKSwnJyksJ0NoaWxkIEFyZWEgSGVpZ2h0JyksJ1RoZSBoZWlnaHQgb2YgdGhlIGFyZWEgb2NjdXBpZWQgYnkgdGhlIGxhaWQgb3V0IGNoaWxkcmVuIG9mIGEgbm9kZS4nKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxtQWUpLCcnKSx5R2UpLFwiVHVybnMgdG9wZG93biBsYXlvdXQgb24gYW5kIG9mZi4gSWYgdGhpcyBvcHRpb24gaXMgZW5hYmxlZCwgaGllcmFyY2hpY2FsIGxheW91dCB3aWxsIGJlIGNvbXB1dGVkIGZpcnN0IGZvciB0aGUgcm9vdCBub2RlIGFuZCB0aGVuIGZvciBpdHMgY2hpbGRyZW4gcmVjdXJzaXZlbHkuIExheW91dHMgYXJlIHRoZW4gc2NhbGVkIGRvd24gdG8gZml0IHRoZSBhcmVhIHByb3ZpZGVkIGJ5IHRoZWlyIHBhcmVudHMuIEdyYXBocyBtdXN0IGZvbGxvdyBhIGNlcnRhaW4gc3RydWN0dXJlIGZvciB0b3Bkb3duIGxheW91dCB0byB3b3JrIHByb3Blcmx5LiB7QGxpbmsgVG9wZG93bk5vZGVUeXBlcy5QQVJBTExFTF9OT0RFfSBub2RlcyBtdXN0IGhhdmUgY2hpbGRyZW4gb2YgdHlwZSB7QGxpbmsgVG9wZG93bk5vZGVUeXBlcy5ISUVSQVJDSElDQUxfTk9ERX0gYW5kIG11c3QgZGVmaW5lIHtAbGluayB0b3Bkb3duLmhpZXJhcmNoaWNhbE5vZGVXaWR0aH0gYW5kIHtAbGluayB0b3Bkb3duLmhpZXJhcmNoaWNhbE5vZGVBc3BlY3RSYXRpb30gZm9yIHRoZWlyIGNoaWxkcmVuLiBGdXJ0aGVybW9yZSB0aGV5IG5lZWQgdG8gYmUgbGFpZCBvdXQgdXNpbmcgYW4gYWxnb3JpdGhtIHRoYXQgaXMgYSB7QGxpbmsgVG9wZG93bkxheW91dFByb3ZpZGVyfS4gSGllcmFyY2hpY2FsIG5vZGVzIGNhbiBhbHNvIGJlIHBhcmVudHMgb2Ygb3RoZXIgaGllcmFyY2hpY2FsIG5vZGVzIGFuZCBjYW4gb3B0aW9uYWxseSB1c2UgYSB7QGxpbmsgVG9wZG93blNpemVBcHByb3hpbWF0b3J9IHRvIGR5bmFtaWNhbGx5IHNldCBzaXplcyBkdXJpbmcgdG9wZG93biBsYXlvdXQuIEluIHRoaXMgY2FzZSB7QGxpbmsgdG9wZG93bi5oaWVyYXJjaGljYWxOb2RlV2lkdGh9IGFuZCB7QGxpbmsgdG9wZG93bi5oaWVyYXJjaGljYWxOb2RlQXNwZWN0UmF0aW99IHNob3VsZCBiZSBzZXQgb24gdGhlIG5vZGUgaXRzZWxmIHJhdGhlciB0aGFuIHRoZSBwYXJlbnQuIFRoZSB2YWx1ZXMgYXJlIHRoZW4gdXNlZCBieSB0aGUgc2l6ZSBhcHByb3hpbWF0b3IgYXMgYmFzZSB2YWx1ZXMuIEhpZXJhcmNoaWNhbCBub2RlcyByZXF1aXJlIHRoZSBsYXlvdXQgb3B0aW9uIHtAbGluayBub2RlU2l6ZS5maXhlZEdyYXBoU2l6ZX0gdG8gYmUgdHJ1ZSB0byBwcmV2ZW50IHRoZSBhbGdvcml0aG0gdXNlZCB0aGVyZSBmcm9tIHJlc2l6aW5nIHRoZSBoaWVyYXJjaGljYWwgbm9kZS4gVGhpcyBvcHRpb24gaXMgbm90IHN1cHBvcnRlZCBpZiAnSGllcmFyY2h5IEhhbmRsaW5nJyBpcyBzZXQgdG8gJ0lOQ0xVREVfQ0hJTERSRU4nXCIpLGZhbHNlKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTt6Z2QoYSxtQWUscUFlLG51bGwpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFZHZSksJycpLCdBbmltYXRlJyksJ1doZXRoZXIgdGhlIHNoaWZ0IGZyb20gdGhlIG9sZCBsYXlvdXQgdG8gdGhlIG5ldyBjb21wdXRlZCBsYXlvdXQgc2hhbGwgYmUgYW5pbWF0ZWQuJyksdHJ1ZSksY2lkKSxRSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsV0dlKSwnJyksJ0FuaW1hdGlvbiBUaW1lIEZhY3RvcicpLFwiRmFjdG9yIGZvciBjb21wdXRhdGlvbiBvZiBhbmltYXRpb24gdGltZS4gVGhlIGhpZ2hlciB0aGUgdmFsdWUsIHRoZSBsb25nZXIgdGhlIGFuaW1hdGlvbiB0aW1lLiBJZiB0aGUgdmFsdWUgaXMgMCwgdGhlIHJlc3VsdGluZyB0aW1lIGlzIGFsd2F5cyBlcXVhbCB0byB0aGUgbWluaW11bSBkZWZpbmVkIGJ5ICdNaW5pbWFsIEFuaW1hdGlvbiBUaW1lJy5cIiksc2diKDEwMCkpLGdpZCksYkopLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFhHZSksJycpLCdMYXlvdXQgQW5jZXN0b3JzJyksJ1doZXRoZXIgdGhlIGhpZXJhcmNoeSBsZXZlbHMgb24gdGhlIHBhdGggZnJvbSB0aGUgc2VsZWN0ZWQgZWxlbWVudCB0byB0aGUgcm9vdCBvZiB0aGUgZGlhZ3JhbSBzaGFsbCBiZSBpbmNsdWRlZCBpbiB0aGUgbGF5b3V0IHByb2Nlc3MuJyksZmFsc2UpLGNpZCksUUkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFlHZSksJycpLCdNYXhpbWFsIEFuaW1hdGlvbiBUaW1lJyksJ1RoZSBtYXhpbWFsIHRpbWUgZm9yIGFuaW1hdGlvbnMsIGluIG1pbGxpc2Vjb25kcy4nKSxzZ2IoNDAwMCkpLGdpZCksYkopLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFpHZSksJycpLCdNaW5pbWFsIEFuaW1hdGlvbiBUaW1lJyksJ1RoZSBtaW5pbWFsIHRpbWUgZm9yIGFuaW1hdGlvbnMsIGluIG1pbGxpc2Vjb25kcy4nKSxzZ2IoNDAwKSksZ2lkKSxiSikseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsJEdlKSwnJyksJ1Byb2dyZXNzIEJhcicpLCdXaGV0aGVyIGEgcHJvZ3Jlc3MgYmFyIHNoYWxsIGJlIGRpc3BsYXllZCBkdXJpbmcgbGF5b3V0IGNvbXB1dGF0aW9ucy4nKSxmYWxzZSksY2lkKSxRSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsX0dlKSwnJyksJ1ZhbGlkYXRlIEdyYXBoJyksJ1doZXRoZXIgdGhlIGdyYXBoIHNoYWxsIGJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IGxheW91dCBhbGdvcml0aG0gaXMgYXBwbGllZC4gSWYgdGhpcyBvcHRpb24gaXMgZW5hYmxlZCBhbmQgYXQgbGVhc3Qgb25lIGVycm9yIGlzIGZvdW5kLCB0aGUgbGF5b3V0IHByb2Nlc3MgaXMgYWJvcnRlZCBhbmQgYSBtZXNzYWdlIGlzIHNob3duIHRvIHRoZSB1c2VyLicpLGZhbHNlKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxhSGUpLCcnKSwnVmFsaWRhdGUgT3B0aW9ucycpLCdXaGV0aGVyIGxheW91dCBvcHRpb25zIHNoYWxsIGJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IGxheW91dCBhbGdvcml0aG0gaXMgYXBwbGllZC4gSWYgdGhpcyBvcHRpb24gaXMgZW5hYmxlZCBhbmQgYXQgbGVhc3Qgb25lIGVycm9yIGlzIGZvdW5kLCB0aGUgbGF5b3V0IHByb2Nlc3MgaXMgYWJvcnRlZCBhbmQgYSBtZXNzYWdlIGlzIHNob3duIHRvIHRoZSB1c2VyLicpLHRydWUpLGNpZCksUUkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGJIZSksJycpLCdab29tIHRvIEZpdCcpLCdXaGV0aGVyIHRoZSB6b29tIGxldmVsIHNoYWxsIGJlIHNldCB0byB2aWV3IHRoZSB3aG9sZSBkaWFncmFtIGFmdGVyIGxheW91dC4nKSxmYWxzZSksY2lkKSxRSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsTkdlKSwnYm94JyksJ0JveCBMYXlvdXQgTW9kZScpLCdDb25maWd1cmVzIHRoZSBwYWNraW5nIG1vZGUgdXNlZCBieSB0aGUge0BsaW5rIEJveExheW91dFByb3ZpZGVyfS4gSWYgU0lNUExFIGlzIG5vdCByZXF1aXJlZCAobmVpdGhlciBwcmlvcml0aWVzIGFyZSB1c2VkIG5vciB0aGUgaW50ZXJhY3RpdmUgbW9kZSksIEdST1VQX0RFQyBjYW4gaW1wcm92ZSB0aGUgcGFja2luZyBhbmQgZGVjcmVhc2UgdGhlIGFyZWEuIEdST1VQX01JWEVEIGFuZCBHUk9VUF9JTkMgbWF5LCBpbiB2ZXJ5IHNwZWNpZmljIHNjZW5hcmlvcywgd29yayBiZXR0ZXIuJyksR2tkKSxlaWQpLFIzKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCx4RGUpLGxEZSksJ0NvbW1lbnQgQ29tbWVudCBTcGFjaW5nJyksJ1NwYWNpbmcgdG8gYmUgcHJlc2VydmVkIGJldHdlZW4gYSBjb21tZW50IGJveCBhbmQgb3RoZXIgY29tbWVudCBib3hlcyBjb25uZWN0ZWQgdG8gdGhlIHNhbWUgbm9kZS4gVGhlIHNwYWNlIGxlZnQgYmV0d2VlbiBjb21tZW50IGJveGVzIG9mIGRpZmZlcmVudCBub2RlcyBpcyBjb250cm9sbGVkIGJ5IHRoZSBub2RlLW5vZGUgc3BhY2luZy4nKSwxMCksZGlkKSxWSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQseURlKSxsRGUpLCdDb21tZW50IE5vZGUgU3BhY2luZycpLCdTcGFjaW5nIHRvIGJlIHByZXNlcnZlZCBiZXR3ZWVuIGEgbm9kZSBhbmQgaXRzIGNvbm5lY3RlZCBjb21tZW50IGJveGVzLiBUaGUgc3BhY2UgbGVmdCBiZXR3ZWVuIGEgbm9kZSBhbmQgdGhlIGNvbW1lbnRzIG9mIGFub3RoZXIgbm9kZSBpcyBjb250cm9sbGVkIGJ5IHRoZSBub2RlLW5vZGUgc3BhY2luZy4nKSwxMCksZGlkKSxWSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsQnplKSxsRGUpLCdDb21wb25lbnRzIFNwYWNpbmcnKSxcIlNwYWNpbmcgdG8gYmUgcHJlc2VydmVkIGJldHdlZW4gcGFpcnMgb2YgY29ubmVjdGVkIGNvbXBvbmVudHMuIFRoaXMgb3B0aW9uIGlzIG9ubHkgcmVsZXZhbnQgaWYgJ3NlcGFyYXRlQ29ubmVjdGVkQ29tcG9uZW50cycgaXMgYWN0aXZhdGVkLlwiKSwyMCksZGlkKSxWSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsekRlKSxsRGUpLCdFZGdlIFNwYWNpbmcnKSwnU3BhY2luZyB0byBiZSBwcmVzZXJ2ZWQgYmV0d2VlbiBhbnkgdHdvIGVkZ2VzLiBOb3RlIHRoYXQgd2hpbGUgdGhpcyBjYW4gc29tZXdoYXQgZWFzaWx5IGJlIHNhdGlzZmllZCBmb3IgdGhlIHNlZ21lbnRzIG9mIG9ydGhvZ29uYWxseSBkcmF3biBlZGdlcywgaXQgaXMgaGFyZGVyIGZvciBnZW5lcmFsIHBvbHlsaW5lcyBvciBzcGxpbmVzLicpLDEwKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxhQWUpLGxEZSksJ0VkZ2UgTGFiZWwgU3BhY2luZycpLFwiVGhlIG1pbmltYWwgZGlzdGFuY2UgdG8gYmUgcHJlc2VydmVkIGJldHdlZW4gYSBsYWJlbCBhbmQgdGhlIGVkZ2UgaXQgaXMgYXNzb2NpYXRlZCB3aXRoLiBOb3RlIHRoYXQgdGhlIHBsYWNlbWVudCBvZiBhIGxhYmVsIGlzIGluZmx1ZW5jZWQgYnkgdGhlICdlZGdlbGFiZWxzLnBsYWNlbWVudCcgb3B0aW9uLlwiKSwyKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxBRGUpLGxEZSksJ0VkZ2UgTm9kZSBTcGFjaW5nJyksJ1NwYWNpbmcgdG8gYmUgcHJlc2VydmVkIGJldHdlZW4gbm9kZXMgYW5kIGVkZ2VzLicpLDEwKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxCRGUpLGxEZSksJ0xhYmVsIFNwYWNpbmcnKSwnRGV0ZXJtaW5lcyB0aGUgYW1vdW50IG9mIHNwYWNlIHRvIGJlIGxlZnQgYmV0d2VlbiB0d28gbGFiZWxzIG9mIHRoZSBzYW1lIGdyYXBoIGVsZW1lbnQuJyksMCksZGlkKSxWSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsRURlKSxsRGUpLCdMYWJlbCBOb2RlIFNwYWNpbmcnKSxcIlNwYWNpbmcgdG8gYmUgcHJlc2VydmVkIGJldHdlZW4gbGFiZWxzIGFuZCB0aGUgYm9yZGVyIG9mIG5vZGUgdGhleSBhcmUgYXNzb2NpYXRlZCB3aXRoLiBOb3RlIHRoYXQgdGhlIHBsYWNlbWVudCBvZiBhIGxhYmVsIGlzIGluZmx1ZW5jZWQgYnkgdGhlICdub2RlbGFiZWxzLnBsYWNlbWVudCcgb3B0aW9uLlwiKSw1KSxkaWQpLFZJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxDRGUpLGxEZSksJ0hvcml6b250YWwgc3BhY2luZyBiZXR3ZWVuIExhYmVsIGFuZCBQb3J0JyksXCJIb3Jpem9udGFsIHNwYWNpbmcgdG8gYmUgcHJlc2VydmVkIGJldHdlZW4gbGFiZWxzIGFuZCB0aGUgcG9ydHMgdGhleSBhcmUgYXNzb2NpYXRlZCB3aXRoLiBOb3RlIHRoYXQgdGhlIHBsYWNlbWVudCBvZiBhIGxhYmVsIGlzIGluZmx1ZW5jZWQgYnkgdGhlICdwb3J0bGFiZWxzLnBsYWNlbWVudCcgb3B0aW9uLlwiKSwxKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxERGUpLGxEZSksJ1ZlcnRpY2FsIHNwYWNpbmcgYmV0d2VlbiBMYWJlbCBhbmQgUG9ydCcpLFwiVmVydGljYWwgc3BhY2luZyB0byBiZSBwcmVzZXJ2ZWQgYmV0d2VlbiBsYWJlbHMgYW5kIHRoZSBwb3J0cyB0aGV5IGFyZSBhc3NvY2lhdGVkIHdpdGguIE5vdGUgdGhhdCB0aGUgcGxhY2VtZW50IG9mIGEgbGFiZWwgaXMgaW5mbHVlbmNlZCBieSB0aGUgJ3BvcnRsYWJlbHMucGxhY2VtZW50JyBvcHRpb24uXCIpLDEpLGRpZCksVkkpLHhzYihXaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLF96ZSksbERlKSwnTm9kZSBTcGFjaW5nJyksJ1RoZSBtaW5pbWFsIGRpc3RhbmNlIHRvIGJlIHByZXNlcnZlZCBiZXR3ZWVuIGVhY2ggdHdvIG5vZGVzLicpLDIwKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxGRGUpLGxEZSksJ05vZGUgU2VsZiBMb29wIFNwYWNpbmcnKSwnU3BhY2luZyB0byBiZSBwcmVzZXJ2ZWQgYmV0d2VlbiBhIG5vZGUgYW5kIGl0cyBzZWxmIGxvb3BzLicpLDEwKSxkaWQpLFZJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxHRGUpLGxEZSksJ1BvcnQgU3BhY2luZycpLCdTcGFjaW5nIGJldHdlZW4gcGFpcnMgb2YgcG9ydHMgb2YgdGhlIHNhbWUgbm9kZS4nKSwxMCksZGlkKSxWSSkseXNiKFdoZCxjRChXQyhkMywxKSxqd2UsMTcwLDAsW1ZoZF0pKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLEhEZSksbERlKSwnSW5kaXZpZHVhbCBTcGFjaW5nJyksXCJBbGxvd3MgdG8gc3BlY2lmeSBpbmRpdmlkdWFsIHNwYWNpbmcgdmFsdWVzIGZvciBncmFwaCBlbGVtZW50cyB0aGF0IHNoYWxsIGJlIGRpZmZlcmVudCBmcm9tIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBlbGVtZW50J3MgcGFyZW50LlwiKSxoaWQpLGw0KSx5c2IoVmhkLGNEKFdDKGQzLDEpLGp3ZSwxNzAsMCxbVGhkLFhoZCxVaGRdKSkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsaEVlKSxsRGUpLCdBZGRpdGlvbmFsIFBvcnQgU3BhY2UnKSwnQWRkaXRpb25hbCBzcGFjZSBhcm91bmQgdGhlIHNldHMgb2YgcG9ydHMgb24gZWFjaCBub2RlIHNpZGUuIEZvciBlYWNoIHNpZGUgb2YgYSBub2RlLCB0aGlzIG9wdGlvbiBjYW4gcmVzZXJ2ZSBhZGRpdGlvbmFsIHNwYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHBvcnRzIG9uIGVhY2ggc2lkZS4gRm9yIGV4YW1wbGUsIGEgdG9wIHNwYWNpbmcgb2YgMjAgbWFrZXMgc3VyZSB0aGF0IHRoZSBmaXJzdCBwb3J0IG9uIHRoZSB3ZXN0ZXJuIGFuZCBlYXN0ZXJuIHNpZGUgaXMgMjAgdW5pdHMgYXdheSBmcm9tIHRoZSBub3J0aGVybiBib3JkZXIuJyksaW1kKSxoaWQpLGgzKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGVFZSksaEhlKSwnTGF5b3V0IFBhcnRpdGlvbicpLCdQYXJ0aXRpb24gdG8gd2hpY2ggdGhlIG5vZGUgYmVsb25ncy4gVGhpcyByZXF1aXJlcyBMYXlvdXQgUGFydGl0aW9uaW5nIHRvIGJlIGFjdGl2ZS4gTm9kZXMgd2l0aCBsb3dlciBwYXJ0aXRpb24gSURzIHdpbGwgYXBwZWFyIHRvIHRoZSBsZWZ0IG9mIG5vZGVzIHdpdGggaGlnaGVyIHBhcnRpdGlvbiBJRHMgKGFzc3VtaW5nIGEgbGVmdC10by1yaWdodCBsYXlvdXQgZGlyZWN0aW9uKS4nKSxnaWQpLGJKKSx5c2IoV2hkLGNEKFdDKGQzLDEpLGp3ZSwxNzAsMCxbVmhkXSkpKSkpO3pnZChhLGVFZSxkRWUseWxkKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxkRWUpLGhIZSksJ0xheW91dCBQYXJ0aXRpb25pbmcnKSwnV2hldGhlciB0byBhY3RpdmF0ZSBwYXJ0aXRpb25lZCBsYXlvdXQuIFRoaXMgd2lsbCBhbGxvdyB0byBncm91cCBub2RlcyB0aHJvdWdoIHRoZSBMYXlvdXQgUGFydGl0aW9uIG9wdGlvbi4gYSBwYWlyIG9mIG5vZGVzIHdpdGggZGlmZmVyZW50IHBhcnRpdGlvbiBpbmRpY2VzIGlzIHRoZW4gcGxhY2VkIHN1Y2ggdGhhdCB0aGUgbm9kZSB3aXRoIGxvd2VyIGluZGV4IGlzIHBsYWNlZCB0byB0aGUgbGVmdCBvZiB0aGUgb3RoZXIgbm9kZSAod2l0aCBsZWZ0LXRvLXJpZ2h0IGxheW91dCBkaXJlY3Rpb24pLiBEZXBlbmRpbmcgb24gdGhlIGxheW91dCBhbGdvcml0aG0sIHRoaXMgbWF5IG9ubHkgYmUgZ3VhcmFudGVlZCB0byB3b3JrIGlmIGFsbCBub2RlcyBoYXZlIGEgbGF5b3V0IHBhcnRpdGlvbiBjb25maWd1cmVkLCBvciBhdCBsZWFzdCBpZiBlZGdlcyB0aGF0IGNyb3NzIHBhcnRpdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIGEgcGFydGl0aW9uLWNyb3NzaW5nIGN5Y2xlLicpLHdsZCksY2lkKSxRSSkseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsUURlKSxpSGUpLCdOb2RlIExhYmVsIFBhZGRpbmcnKSwnRGVmaW5lIHBhZGRpbmcgZm9yIG5vZGUgbGFiZWxzIHRoYXQgYXJlIHBsYWNlZCBpbnNpZGUgb2YgYSBub2RlLicpLGhsZCksaGlkKSxpMykseHNiKFdoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsa0FlKSxpSGUpLCdOb2RlIExhYmVsIFBsYWNlbWVudCcpLFwiSGludHMgZm9yIHdoZXJlIG5vZGUgbGFiZWxzIGFyZSB0byBiZSBwbGFjZWQ7IGlmIGVtcHR5LCB0aGUgbm9kZSBsYWJlbCdzIHBvc2l0aW9uIGlzIG5vdCBtb2RpZmllZC5cIiksamxkKSxmaWQpLEEzKSx5c2IoVmhkLGNEKFdDKGQzLDEpLGp3ZSwxNzAsMCxbVWhkXSkpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFREZSksakhlKSwnUG9ydCBBbGlnbm1lbnQnKSwnRGVmaW5lcyB0aGUgZGVmYXVsdCBwb3J0IGRpc3RyaWJ1dGlvbiBmb3IgYSBub2RlLiBNYXkgYmUgb3ZlcnJpZGRlbiBmb3IgZWFjaCBzaWRlIGluZGl2aWR1YWxseS4nKSxBbGQpLGVpZCksQjMpLHhzYihWaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsVURlKSxqSGUpLCdQb3J0IEFsaWdubWVudCAoTm9ydGgpJyksXCJEZWZpbmVzIGhvdyBwb3J0cyBvbiB0aGUgbm9ydGhlcm4gc2lkZSBhcmUgcGxhY2VkLCBvdmVycmlkaW5nIHRoZSBub2RlJ3MgZ2VuZXJhbCBwb3J0IGFsaWdubWVudC5cIiksZWlkKSxCMykseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxWRGUpLGpIZSksJ1BvcnQgQWxpZ25tZW50IChTb3V0aCknKSxcIkRlZmluZXMgaG93IHBvcnRzIG9uIHRoZSBzb3V0aGVybiBzaWRlIGFyZSBwbGFjZWQsIG92ZXJyaWRpbmcgdGhlIG5vZGUncyBnZW5lcmFsIHBvcnQgYWxpZ25tZW50LlwiKSxlaWQpLEIzKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFdEZSksakhlKSwnUG9ydCBBbGlnbm1lbnQgKFdlc3QpJyksXCJEZWZpbmVzIGhvdyBwb3J0cyBvbiB0aGUgd2VzdGVybiBzaWRlIGFyZSBwbGFjZWQsIG92ZXJyaWRpbmcgdGhlIG5vZGUncyBnZW5lcmFsIHBvcnQgYWxpZ25tZW50LlwiKSxlaWQpLEIzKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFhEZSksakhlKSwnUG9ydCBBbGlnbm1lbnQgKEVhc3QpJyksXCJEZWZpbmVzIGhvdyBwb3J0cyBvbiB0aGUgZWFzdGVybiBzaWRlIGFyZSBwbGFjZWQsIG92ZXJyaWRpbmcgdGhlIG5vZGUncyBnZW5lcmFsIHBvcnQgYWxpZ25tZW50LlwiKSxlaWQpLEIzKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxqQWUpLGtIZSksJ05vZGUgU2l6ZSBDb25zdHJhaW50cycpLFwiV2hhdCBzaG91bGQgYmUgdGFrZW4gaW50byBhY2NvdW50IHdoZW4gY2FsY3VsYXRpbmcgYSBub2RlJ3Mgc2l6ZS4gRW1wdHkgc2l6ZSBjb25zdHJhaW50cyBzcGVjaWZ5IHRoYXQgYSBub2RlJ3Mgc2l6ZSBpcyBhbHJlYWR5IGZpeGVkIGFuZCBzaG91bGQgbm90IGJlIGNoYW5nZWQuXCIpLGxsZCksZmlkKSxIMykseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsaUFlKSxrSGUpLCdOb2RlIFNpemUgT3B0aW9ucycpLCdPcHRpb25zIG1vZGlmeWluZyB0aGUgYmVoYXZpb3Igb2YgdGhlIHNpemUgY29uc3RyYWludHMgc2V0IG9uIGEgbm9kZS4gRWFjaCBtZW1iZXIgb2YgdGhlIHNldCBzcGVjaWZpZXMgc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCB3aGVuIGNhbGN1bGF0aW5nIG5vZGUgc2l6ZXMuIFRoZSBlbXB0eSBzZXQgY29ycmVzcG9uZHMgdG8gbm8gZnVydGhlciBtb2RpZmljYXRpb25zLicpLHFsZCksZmlkKSxJMykseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsQ0FlKSxrSGUpLCdOb2RlIFNpemUgTWluaW11bScpLCdUaGUgbWluaW1hbCBzaXplIHRvIHdoaWNoIGEgbm9kZSBjYW4gYmUgcmVkdWNlZC4nKSxvbGQpLGhpZCksbDMpLHhzYihWaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGhBZSksa0hlKSwnRml4ZWQgR3JhcGggU2l6ZScpLFwiQnkgZGVmYXVsdCwgdGhlIGZpeGVkIGxheW91dCBwcm92aWRlciB3aWxsIGVubGFyZ2UgYSBncmFwaCB1bnRpbCBpdCBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiBpdHMgY2hpbGRyZW4uIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgaXQgd29uJ3QgZG8gc28uXCIpLGZhbHNlKSxjaWQpLFFJKSx4c2IoV2hkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCwkRGUpLHZEZSksJ0VkZ2UgTGFiZWwgUGxhY2VtZW50JyksJ0dpdmVzIGEgaGludCBvbiB3aGVyZSB0byBwdXQgZWRnZSBsYWJlbHMuJyksUmtkKSxlaWQpLHQzKSx4c2IoVWhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxmQWUpLHZEZSksJ0lubGluZSBFZGdlIExhYmVscycpLFwiSWYgdHJ1ZSwgYW4gZWRnZSBsYWJlbCBpcyBwbGFjZWQgZGlyZWN0bHkgb24gaXRzIGVkZ2UuIE1heSBvbmx5IGFwcGx5IHRvIGNlbnRlciBlZGdlIGxhYmVscy4gVGhpcyBraW5kIG9mIGxhYmVsIHBsYWNlbWVudCBpcyBvbmx5IGFkdmlzYWJsZSBpZiB0aGUgbGFiZWwncyByZW5kZXJpbmcgaXMgc3VjaCB0aGF0IGl0IGlzIG5vdCBjcm9zc2VkIGJ5IGl0cyBlZGdlIGFuZCB0aHVzIHN0YXlzIGxlZ2libGUuXCIpLGZhbHNlKSxjaWQpLFFJKSx4c2IoVWhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGNIZSksJ2ZvbnQnKSwnRm9udCBOYW1lJyksJ0ZvbnQgbmFtZSB1c2VkIGZvciBhIGxhYmVsLicpLGlpZCkscUopLHhzYihVaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsZEhlKSwnZm9udCcpLCdGb250IFNpemUnKSwnRm9udCBzaXplIHVzZWQgZm9yIGEgbGFiZWwuJyksZ2lkKSxiSikseHNiKFVoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxjRWUpLGxIZSksJ1BvcnQgQW5jaG9yIE9mZnNldCcpLCdUaGUgb2Zmc2V0IHRvIHRoZSBwb3J0IHBvc2l0aW9uIHdoZXJlIGNvbm5lY3Rpb25zIHNoYWxsIGJlIGF0dGFjaGVkLicpLGhpZCksbDMpLHhzYihYaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsX0RlKSxsSGUpLCdQb3J0IEluZGV4JyksXCJUaGUgaW5kZXggb2YgYSBwb3J0IGluIHRoZSBmaXhlZCBvcmRlciBhcm91bmQgYSBub2RlLiBUaGUgb3JkZXIgaXMgYXNzdW1lZCBhcyBjbG9ja3dpc2UsIHN0YXJ0aW5nIHdpdGggdGhlIGxlZnRtb3N0IHBvcnQgb24gdGhlIHRvcCBzaWRlLiBUaGlzIG9wdGlvbiBtdXN0IGJlIHNldCBpZiAnUG9ydCBDb25zdHJhaW50cycgaXMgc2V0IHRvIEZJWEVEX09SREVSIGFuZCBubyBzcGVjaWZpYyBwb3NpdGlvbnMgYXJlIGdpdmVuIGZvciB0aGUgcG9ydHMuIEFkZGl0aW9uYWxseSwgdGhlIG9wdGlvbiAnUG9ydCBTaWRlJyBtdXN0IGJlIGRlZmluZWQgaW4gdGhpcyBjYXNlLlwiKSxnaWQpLGJKKSx4c2IoWGhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxLRGUpLGxIZSksJ1BvcnQgU2lkZScpLFwiVGhlIHNpZGUgb2YgYSBub2RlIG9uIHdoaWNoIGEgcG9ydCBpcyBzaXR1YXRlZC4gVGhpcyBvcHRpb24gbXVzdCBiZSBzZXQgaWYgJ1BvcnQgQ29uc3RyYWludHMnIGlzIHNldCB0byBGSVhFRF9TSURFIG9yIEZJWEVEX09SREVSIGFuZCBubyBzcGVjaWZpYyBwb3NpdGlvbnMgYXJlIGdpdmVuIGZvciB0aGUgcG9ydHMuXCIpLFBsZCksZWlkKSxFMykseHNiKFhoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxJRGUpLGxIZSksJ1BvcnQgQm9yZGVyIE9mZnNldCcpLFwiVGhlIG9mZnNldCBvZiBwb3J0cyBvbiB0aGUgbm9kZSBib3JkZXIuIFdpdGggYSBwb3NpdGl2ZSBvZmZzZXQgdGhlIHBvcnQgaXMgbW92ZWQgb3V0c2lkZSBvZiB0aGUgbm9kZSwgd2hpbGUgd2l0aCBhIG5lZ2F0aXZlIG9mZnNldCB0aGUgcG9ydCBpcyBtb3ZlZCB0b3dhcmRzIHRoZSBpbnNpZGUuIEFuIG9mZnNldCBvZiAwIG1lYW5zIHRoYXQgdGhlIHBvcnQgaXMgcGxhY2VkIGRpcmVjdGx5IG9uIHRoZSBub2RlIGJvcmRlciwgaS5lLiBpZiB0aGUgcG9ydCBzaWRlIGlzIG5vcnRoLCB0aGUgcG9ydCdzIHNvdXRoIGJvcmRlciB0b3VjaGVzIHRoZSBub2RlcydzIG5vcnRoIGJvcmRlcjsgaWYgdGhlIHBvcnQgc2lkZSBpcyBlYXN0LCB0aGUgcG9ydCdzIHdlc3QgYm9yZGVyIHRvdWNoZXMgdGhlIG5vZGVzJ3MgZWFzdCBib3JkZXI7IGlmIHRoZSBwb3J0IHNpZGUgaXMgc291dGgsIHRoZSBwb3J0J3Mgbm9ydGggYm9yZGVyIHRvdWNoZXMgdGhlIG5vZGUncyBzb3V0aCBib3JkZXI7IGlmIHRoZSBwb3J0IHNpZGUgaXMgd2VzdCwgdGhlIHBvcnQncyBlYXN0IGJvcmRlciB0b3VjaGVzIHRoZSBub2RlJ3Mgd2VzdCBib3JkZXIuXCIpLGRpZCksVkkpLHhzYihYaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLGxBZSksbUhlKSwnUG9ydCBMYWJlbCBQbGFjZW1lbnQnKSxcIkRlY2lkZXMgb24gYSBwbGFjZW1lbnQgbWV0aG9kIGZvciBwb3J0IGxhYmVsczsgaWYgZW1wdHksIHRoZSBub2RlIGxhYmVsJ3MgcG9zaXRpb24gaXMgbm90IG1vZGlmaWVkLlwiKSxNbGQpLGZpZCksRDMpLHhzYihWaGQpKSkpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLFJEZSksbUhlKSwnUG9ydCBMYWJlbHMgTmV4dCB0byBQb3J0JyksXCJVc2UgJ3BvcnRMYWJlbHMucGxhY2VtZW50JzogTkVYVF9UT19QT1JUX09GX1BPU1NJQkxFLlwiKSxmYWxzZSksY2lkKSxRSSkseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsU0RlKSxtSGUpLCdUcmVhdCBQb3J0IExhYmVscyBhcyBHcm91cCcpLCdJZiB0aGlzIG9wdGlvbiBpcyB0cnVlIChkZWZhdWx0KSwgdGhlIGxhYmVscyBvZiBhIHBvcnQgd2lsbCBiZSB0cmVhdGVkIGFzIGEgZ3JvdXAgd2hlbiBpdCBjb21lcyB0byBjZW50ZXJpbmcgdGhlbSBuZXh0IHRvIHRoZWlyIHBvcnQuIElmIHRoaXMgb3B0aW9uIGlzIGZhbHNlLCBvbmx5IHRoZSBmaXJzdCBsYWJlbCB3aWxsIGJlIGNlbnRlcmVkIG5leHQgdG8gdGhlIHBvcnQsIHdpdGggdGhlIG90aGVycyBiZWluZyBwbGFjZWQgYmVsb3cuIFRoaXMgb25seSBhcHBsaWVzIHRvIGxhYmVscyBvZiBlYXN0ZXJuIGFuZCB3ZXN0ZXJuIHBvcnRzIGFuZCB3aWxsIGhhdmUgbm8gZWZmZWN0IGlmIGxhYmVscyBhcmUgbm90IHBsYWNlZCBuZXh0IHRvIHRoZWlyIHBvcnQuJyksdHJ1ZSksY2lkKSxRSSkseHNiKFZoZCkpKSk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQsbkFlKSxuSGUpLCdUb3Bkb3duIFNjYWxlIEZhY3RvcicpLFwiVGhlIHNjYWxpbmcgZmFjdG9yIHRvIGJlIGFwcGxpZWQgdG8gdGhlIG5vZGVzIGxhaWQgb3V0IHdpdGhpbiB0aGUgbm9kZSBpbiByZWN1cnNpdmUgdG9wZG93biBsYXlvdXQuIFRoZSBkaWZmZXJlbmNlIHRvICdTY2FsZSBGYWN0b3InIGlzIHRoYXQgdGhlIG5vZGUgaXRzZWxmIGlzIG5vdCBzY2FsZWQuIFRoaXMgdmFsdWUgaGFzIHRvIGJlIHNldCBvbiBoaWVyYXJjaGljYWwgbm9kZXMuXCIpLDEpLGRpZCksVkkpLHhzYihXaGQpKSkpO3pnZChhLG5BZSxxQWUscm1kKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxlSGUpLG5IZSksJ1RvcGRvd24gU2l6ZSBBcHByb3hpbWF0b3InKSwnVGhlIHNpemUgYXBwcm94aW1hdG9yIHRvIGJlIHVzZWQgdG8gc2V0IHNpemVzIG9mIGhpZXJhcmNoaWNhbCBub2RlcyBkdXJpbmcgdG9wZG93biBsYXlvdXQuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIG51bGwsIHdoaWNoIHJlc3VsdHMgaW4gbm9kZXMga2VlcGluZyB3aGF0ZXZlciBzaXplIGlzIGRlZmluZWQgZm9yIHRoZW0gZS5nLiB0aHJvdWdoIHBhcmVudCBwYXJhbGxlbCBub2RlIG9yIGJ5IG1hbnVhbGx5IHNldHRpbmcgdGhlIHNpemUuJyksbnVsbCksZWlkKSxNMykseHNiKFZoZCkpKSk7emdkKGEsZUhlLHFBZSx0bWQpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLG9BZSksbkhlKSwnVG9wZG93biBIaWVyYXJjaGljYWwgTm9kZSBXaWR0aCcpLCdUaGUgZml4ZWQgc2l6ZSBvZiBhIGhpZXJhcmNoaWNhbCBub2RlIHdoZW4gdXNpbmcgdG9wZG93biBsYXlvdXQuIElmIHRoaXMgdmFsdWUgaXMgc2V0IG9uIGEgcGFyYWxsZWwgbm9kZSBpdCBhcHBsaWVzIHRvIGl0cyBjaGlsZHJlbiwgd2hlbiBzZXQgb24gYSBoaWVyYXJjaGljYWwgbm9kZSBpdCBhcHBsaWVzIHRvIHRoZSBub2RlIGl0c2VsZi4nKSwxNTApLGRpZCksVkkpLHlzYihXaGQsY0QoV0MoZDMsMSksandlLDE3MCwwLFtWaGRdKSkpKSk7emdkKGEsb0FlLHFBZSxudWxsKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxwQWUpLG5IZSksJ1RvcGRvd24gSGllcmFyY2hpY2FsIE5vZGUgQXNwZWN0IFJhdGlvJyksJ1RoZSBmaXhlZCBhc3BlY3QgcmF0aW8gb2YgYSBoaWVyYXJjaGljYWwgbm9kZSB3aGVuIHVzaW5nIHRvcGRvd24gbGF5b3V0LiBEZWZhdWx0IGlzIDEvc3FydCgyKS4gSWYgdGhpcyB2YWx1ZSBpcyBzZXQgb24gYSBwYXJhbGxlbCBub2RlIGl0IGFwcGxpZXMgdG8gaXRzIGNoaWxkcmVuLCB3aGVuIHNldCBvbiBhIGhpZXJhcmNoaWNhbCBub2RlIGl0IGFwcGxpZXMgdG8gdGhlIG5vZGUgaXRzZWxmLicpLDEuNDE0KSxkaWQpLFZJKSx5c2IoV2hkLGNEKFdDKGQzLDEpLGp3ZSwxNzAsMCxbVmhkXSkpKSkpO3pnZChhLHBBZSxxQWUsbnVsbCk7RWdkKGEsbmV3IEFoZChRaGQoUGhkKFJoZChKaGQoS2hkKE9oZChMaGQoTWhkKG5ldyBTaGQscUFlKSxuSGUpLCdUb3Bkb3duIE5vZGUgVHlwZScpLCdUaGUgZGlmZmVyZW50IG5vZGUgdHlwZXMgdXNlZCBmb3IgdG9wZG93biBsYXlvdXQuIElmIHRoZSBub2RlIHR5cGUgaXMgc2V0IHRvIHtAbGluayBUb3Bkb3duTm9kZVR5cGVzLlBBUkFMTEVMX05PREV9IHRoZSBhbGdvcml0aG0gbXVzdCBiZSBzZXQgdG8gYSB7QGxpbmsgVG9wZG93bkxheW91dFByb3ZpZGVyfSBzdWNoIGFzIHtAbGluayBUb3Bkb3duUGFja2luZ30uIFRoZSB7QGxpbmsgbm9kZVNpemUuZml4ZWRHcmFwaFNpemV9IG9wdGlvbiBpcyB0ZWNobmljYWxseSBvbmx5IHJlcXVpcmVkIGZvciBoaWVyYXJjaGljYWwgbm9kZXMuJyksbnVsbCksZWlkKSxKMykseHNiKFZoZCkpKSk7emdkKGEscUFlLGhBZSxudWxsKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxmSGUpLG5IZSksJ1RvcGRvd24gU2NhbGUgQ2FwJyksJ0RldGVybWluZXMgdGhlIHVwcGVyIGxpbWl0IGZvciB0aGUgdG9wZG93biBzY2FsZSBmYWN0b3IuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEuMCB3aGljaCBlbnN1cmVzIHRoYXQgbmVzdGVkIGNoaWxkcmVuIG5ldmVyIGVuZCB1cCBhcHBlYXJpbmcgbGFyZ2VyIHRoYW4gdGhlaXIgcGFyZW50cyBpbiB0ZXJtcyBvZiB1bml0IHNpemVzIHN1Y2ggYXMgdGhlIGZvbnQgc2l6ZS4gSWYgdGhlIGxpbWl0IGlzIGxhcmdlciwgbm9kZXMgd2lsbCBmdWxseSB1dGlsaXplIHRoZSBhdmFpbGFibGUgc3BhY2UsIGJ1dCBpdCBpcyBjb3VudGVyaW5pdWl0aXZlIGZvciBpbm5lciBub2RlcyB0byBoYXZlIGEgbGFyZ2VyIHNjYWxlIHRoYW4gb3V0ZXIgbm9kZXMuJyksMSksZGlkKSxWSSkseHNiKFdoZCkpKSk7emdkKGEsZkhlLHFBZSxwbWQpO0VnZChhLG5ldyBBaGQoUWhkKFBoZChSaGQoSmhkKEtoZChPaGQoTGhkKE1oZChuZXcgU2hkLE5EZSksb0hlKSwnQWN0aXZhdGUgSW5zaWRlIFNlbGYgTG9vcHMnKSxcIldoZXRoZXIgdGhpcyBub2RlIGFsbG93cyB0byByb3V0ZSBzZWxmIGxvb3BzIGluc2lkZSBvZiBpdCBpbnN0ZWFkIG9mIGFyb3VuZCBpdC4gSWYgc2V0IHRvIHRydWUsIHRoaXMgd2lsbCBtYWtlIHRoZSBub2RlIGEgY29tcG91bmQgbm9kZSBpZiBpdCBpc24ndCBhbHJlYWR5LCBhbmQgd2lsbCByZXF1aXJlIHRoZSBsYXlvdXQgYWxnb3JpdGhtIHRvIHN1cHBvcnQgY29tcG91bmQgbm9kZXMgd2l0aCBoaWVyYXJjaGljYWwgcG9ydHMuXCIpLGZhbHNlKSxjaWQpLFFJKSx4c2IoVmhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxPRGUpLG9IZSksJ0luc2lkZSBTZWxmIExvb3AnKSwnV2hldGhlciBhIHNlbGYgbG9vcCBzaG91bGQgYmUgcm91dGVkIGluc2lkZSBhIG5vZGUgaW5zdGVhZCBvZiBhcm91bmQgdGhhdCBub2RlLicpLGZhbHNlKSxjaWQpLFFJKSx4c2IoVGhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxDemUpLCdlZGdlJyksJ0VkZ2UgVGhpY2tuZXNzJyksJ1RoZSB0aGlja25lc3Mgb2YgYW4gZWRnZS4gVGhpcyBpcyBhIGhpbnQgb24gdGhlIGxpbmUgd2lkdGggdXNlZCB0byBkcmF3IGFuIGVkZ2UsIHBvc3NpYmx5IHJlcXVpcmluZyBtb3JlIHNwYWNlIHRvIGJlIHJlc2VydmVkIGZvciBpdC4nKSwxKSxkaWQpLFZJKSx4c2IoVGhkKSkpKTtFZ2QoYSxuZXcgQWhkKFFoZChQaGQoUmhkKEpoZChLaGQoT2hkKExoZChNaGQobmV3IFNoZCxnSGUpLCdlZGdlJyksJ0VkZ2UgVHlwZScpLCdUaGUgdHlwZSBvZiBhbiBlZGdlLiBUaGlzIGlzIHVzdWFsbHkgdXNlZCBmb3IgVU1MIGNsYXNzIGRpYWdyYW1zLCB3aGVyZSBhc3NvY2lhdGlvbnMgbXVzdCBiZSBoYW5kbGVkIGRpZmZlcmVudGx5IGZyb20gZ2VuZXJhbGl6YXRpb25zLicpLFZrZCksZWlkKSx2MykseHNiKFRoZCkpKSk7RGdkKGEsbmV3IGZnZChtZ2Qob2dkKG5nZChuZXcgcGdkLHN4ZSksJ0xheWVyZWQnKSwnVGhlIGxheWVyLWJhc2VkIG1ldGhvZCB3YXMgaW50cm9kdWNlZCBieSBTdWdpeWFtYSwgVGFnYXdhIGFuZCBUb2RhIGluIDE5ODEuIEl0IGVtcGhhc2l6ZXMgdGhlIGRpcmVjdGlvbiBvZiBlZGdlcyBieSBwb2ludGluZyBhcyBtYW55IGVkZ2VzIGFzIHBvc3NpYmxlIGludG8gdGhlIHNhbWUgZGlyZWN0aW9uLiBUaGUgbm9kZXMgYXJlIGFycmFuZ2VkIGluIGxheWVycywgd2hpY2ggYXJlIHNvbWV0aW1lcyBjYWxsZWQgXCJoaWVyYXJjaGllc1wiLCBhbmQgdGhlbiByZW9yZGVyZWQgc3VjaCB0aGF0IHRoZSBudW1iZXIgb2YgZWRnZSBjcm9zc2luZ3MgaXMgbWluaW1pemVkLiBBZnRlcndhcmRzLCBjb25jcmV0ZSBjb29yZGluYXRlcyBhcmUgY29tcHV0ZWQgZm9yIHRoZSBub2RlcyBhbmQgZWRnZSBiZW5kIHBvaW50cy4nKSkpO0RnZChhLG5ldyBmZ2QobWdkKG9nZChuZ2QobmV3IHBnZCwnb3JnLmVjbGlwc2UuZWxrLm9ydGhvZ29uYWwnKSwnT3J0aG9nb25hbCcpLCdPcnRob2dvbmFsIG1ldGhvZHMgdGhhdCBmb2xsb3cgdGhlIFwidG9wb2xvZ3ktc2hhcGUtbWV0cmljc1wiIGFwcHJvYWNoIGJ5IEJhdGluaSwgTmFyZGVsbGkgYW5kIFRhbWFzc2lhIFxcJzg2LiBUaGUgZmlyc3QgcGhhc2UgZGV0ZXJtaW5lcyB0aGUgdG9wb2xvZ3kgb2YgdGhlIGRyYXdpbmcgYnkgYXBwbHlpbmcgYSBwbGFuYXJpemF0aW9uIHRlY2huaXF1ZSwgd2hpY2ggcmVzdWx0cyBpbiBhIHBsYW5hciByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ3JhcGguIFRoZSBvcnRob2dvbmFsIHNoYXBlIGlzIGNvbXB1dGVkIGluIHRoZSBzZWNvbmQgcGhhc2UsIHdoaWNoIGFpbXMgYXQgbWluaW1pemluZyB0aGUgbnVtYmVyIG9mIGVkZ2UgYmVuZHMsIGFuZCBpcyBjYWxsZWQgb3J0aG9nb25hbGl6YXRpb24uIFRoZSB0aGlyZCBwaGFzZSBsZWFkcyB0byBjb25jcmV0ZSBjb29yZGluYXRlcyBmb3Igbm9kZXMgYW5kIGVkZ2UgYmVuZCBwb2ludHMgYnkgYXBwbHlpbmcgYSBjb21wYWN0aW9uIG1ldGhvZCwgdGh1cyBkZWZpbmluZyB0aGUgbWV0cmljcy4nKSkpO0RnZChhLG5ldyBmZ2QobWdkKG9nZChuZ2QobmV3IHBnZCxaemUpLCdGb3JjZScpLCdMYXlvdXQgYWxnb3JpdGhtcyB0aGF0IGZvbGxvdyBwaHlzaWNhbCBhbmFsb2dpZXMgYnkgc2ltdWxhdGluZyBhIHN5c3RlbSBvZiBhdHRyYWN0aXZlIGFuZCByZXB1bHNpdmUgZm9yY2VzLiBUaGUgZmlyc3Qgc3VjY2Vzc2Z1bCBtZXRob2Qgb2YgdGhpcyBraW5kIHdhcyBwcm9wb3NlZCBieSBFYWRlcyBpbiAxOTg0LicpKSk7RGdkKGEsbmV3IGZnZChtZ2Qob2dkKG5nZChuZXcgcGdkLCdvcmcuZWNsaXBzZS5lbGsuY2lyY2xlJyksJ0NpcmNsZScpLCdDaXJjdWxhciBsYXlvdXQgYWxnb3JpdGhtcyBlbXBoYXNpemUgY3ljbGVzIG9yIGJpY29ubmVjdGVkIGNvbXBvbmVudHMgb2YgYSBncmFwaCBieSBhcnJhbmdpbmcgdGhlbSBpbiBjaXJjbGVzLiBUaGlzIGlzIHVzZWZ1bCBpZiBhIGRyYXdpbmcgaXMgZGVzaXJlZCB3aGVyZSBzdWNoIGNvbXBvbmVudHMgYXJlIGNsZWFybHkgZ3JvdXBlZCwgb3Igd2hlcmUgY3ljbGVzIGFyZSBzaG93biBhcyBwcm9taW5lbnQgT1BUSU9OUyBvZiB0aGUgZ3JhcGguJykpKTtEZ2QoYSxuZXcgZmdkKG1nZChvZ2QobmdkKG5ldyBwZ2QsJEVlKSwnVHJlZScpLCdTcGVjaWFsaXplZCBsYXlvdXQgbWV0aG9kcyBmb3IgdHJlZXMsIGkuZS4gYWN5Y2xpYyBncmFwaHMuIFRoZSByZWd1bGFyIHN0cnVjdHVyZSBvZiBncmFwaHMgdGhhdCBoYXZlIG5vIHVuZGlyZWN0ZWQgY3ljbGVzIGNhbiBiZSBlbXBoYXNpemVkIHVzaW5nIGFuIGFsZ29yaXRobSBvZiB0aGlzIHR5cGUuJykpKTtEZ2QoYSxuZXcgZmdkKG1nZChvZ2QobmdkKG5ldyBwZ2QsJ29yZy5lY2xpcHNlLmVsay5wbGFuYXInKSwnUGxhbmFyJyksJ0FsZ29yaXRobXMgdGhhdCByZXF1aXJlIGEgcGxhbmFyIG9yIHVwd2FyZCBwbGFuYXIgZ3JhcGguIE1vc3Qgb2YgdGhlc2UgYWxnb3JpdGhtcyBhcmUgdGhlb3JldGljYWxseSBpbnRlcmVzdGluZywgYnV0IG5vdCBwcmFjdGljYWxseSB1c2FibGUuJykpKTtEZ2QoYSxuZXcgZmdkKG1nZChvZ2QobmdkKG5ldyBwZ2QsQ0ZlKSwnUmFkaWFsJyksJ1JhZGlhbCBsYXlvdXQgYWxnb3JpdGhtcyB1c3VhbGx5IHBvc2l0aW9uIHRoZSBub2RlcyBvZiB0aGUgZ3JhcGggb24gY29uY2VudHJpYyBjaXJjbGVzLicpKSk7d25kKChuZXcgeG5kLGEpKTtpa2QoKG5ldyBqa2QsYSkpO0dwZCgobmV3IEhwZCxhKSl9O3ZhciBBa2QsQmtkLENrZCxEa2QsRWtkLEZrZCxHa2QsSGtkLElrZCxKa2QsS2tkLExrZCxNa2QsTmtkLE9rZCxQa2QsUWtkLFJrZCxTa2QsVGtkLFVrZCxWa2QsV2tkLFhrZCxZa2QsWmtkLCRrZCxfa2QsYWxkLGJsZCxjbGQsZGxkLGVsZCxmbGQsZ2xkLGhsZCxpbGQsamxkLGtsZCxsbGQsbWxkLG5sZCxvbGQscGxkLHFsZCxybGQsc2xkLHRsZCx1bGQsdmxkLHdsZCx4bGQseWxkLHpsZCxBbGQsQmxkLENsZCxEbGQsRWxkLEZsZCxHbGQsSGxkLElsZCxKbGQsS2xkLExsZCxNbGQsTmxkLE9sZCxQbGQsUWxkLFJsZCxTbGQsVGxkLFVsZCxWbGQsV2xkLFhsZCxZbGQsWmxkLCRsZCxfbGQsYW1kLGJtZCxjbWQsZG1kLGVtZCxmbWQsZ21kLGhtZCxpbWQsam1kLGttZCxsbWQsbW1kLG5tZCxvbWQscG1kLHFtZCxybWQsc21kLHRtZDt2YXIgcjM9c2ZiKEpHZSwnQ29yZU9wdGlvbnMnLDY5OSk7ZmViKDg4LDIyLHszOjEsMzQ6MSwyMjoxLDg4OjF9LEdtZCk7dmFyIHhtZCx5bWQsem1kLEFtZCxCbWQ7dmFyIHMzPXRmYihKR2UsZXplLDg4LFdJLEltZCxIbWQpO3ZhciBKbWQ7ZmViKDI3OCwyMix7MzoxLDM0OjEsMjI6MSwyNzg6MX0sUG1kKTt2YXIgTG1kLE1tZCxObWQ7dmFyIHQzPXRmYihKR2UsJ0VkZ2VMYWJlbFBsYWNlbWVudCcsMjc4LFdJLFJtZCxRbWQpO3ZhciBTbWQ7ZmViKDIyMywyMix7MzoxLDM0OjEsMjI6MSwyMjM6MX0sWm1kKTt2YXIgVW1kLFZtZCxXbWQsWG1kO3ZhciB1Mz10ZmIoSkdlLCdFZGdlUm91dGluZycsMjIzLFdJLF9tZCwkbWQpO3ZhciBhbmQ7ZmViKDMyMSwyMix7MzoxLDM0OjEsMjI6MSwzMjE6MX0sam5kKTt2YXIgY25kLGRuZCxlbmQsZm5kLGduZCxobmQ7dmFyIHYzPXRmYihKR2UsJ0VkZ2VUeXBlJywzMjEsV0ksbG5kLGtuZCk7dmFyIG1uZDtmZWIoOTg5LDEsRXllLHhuZCk7Xy5oZj1mdW5jdGlvbiB5bmQoYSl7d25kKGEpfTt2YXIgb25kLHBuZCxxbmQscm5kLHNuZCx0bmQsdW5kO3ZhciB4Mz1zZmIoSkdlLCdGaXhlZExheW91dGVyT3B0aW9ucycsOTg5KTtmZWIoOTkwLDEse30sem5kKTtfLnNmPWZ1bmN0aW9uIEFuZCgpe3ZhciBhO3JldHVybiBhPW5ldyBidGQsYX07Xy50Zj1mdW5jdGlvbiBCbmQoYSl7fTt2YXIgdzM9c2ZiKEpHZSwnRml4ZWRMYXlvdXRlck9wdGlvbnMvRml4ZWRGYWN0b3J5Jyw5OTApO2ZlYigzNDYsMjIsezM6MSwzNDoxLDIyOjEsMzQ2OjF9LEduZCk7dmFyIENuZCxEbmQsRW5kO3ZhciB5Mz10ZmIoSkdlLCdIaWVyYXJjaHlIYW5kbGluZycsMzQ2LFdJLEluZCxIbmQpO3ZhciBKbmQ7ZmViKDI5MSwyMix7MzoxLDM0OjEsMjI6MSwyOTE6MX0sUm5kKTt2YXIgTG5kLE1uZCxObmQsT25kO3ZhciB6Mz10ZmIoSkdlLCdMYWJlbFNpZGUnLDI5MSxXSSxUbmQsU25kKTt2YXIgVW5kO2ZlYig5NSwyMix7MzoxLDM0OjEsMjI6MSw5NToxfSxlb2QpO3ZhciBXbmQsWG5kLFluZCxabmQsJG5kLF9uZCxhb2QsYm9kLGNvZDt2YXIgQTM9dGZiKEpHZSwnTm9kZUxhYmVsUGxhY2VtZW50Jyw5NSxXSSxob2QsZ29kKTt2YXIgaW9kO2ZlYigyNTYsMjIsezM6MSwzNDoxLDIyOjEsMjU2OjF9LHFvZCk7dmFyIGtvZCxsb2QsbW9kLG5vZCxvb2Q7dmFyIEIzPXRmYihKR2UsJ1BvcnRBbGlnbm1lbnQnLDI1NixXSSxzb2Qscm9kKTt2YXIgdG9kO2ZlYigxMDEsMjIsezM6MSwzNDoxLDIyOjEsMTAxOjF9LEVvZCk7dmFyIHZvZCx3b2QseG9kLHlvZCx6b2QsQW9kO3ZhciBDMz10ZmIoSkdlLCdQb3J0Q29uc3RyYWludHMnLDEwMSxXSSxHb2QsRm9kKTt2YXIgSG9kO2ZlYigyNzksMjIsezM6MSwzNDoxLDIyOjEsMjc5OjF9LFFvZCk7dmFyIEpvZCxLb2QsTG9kLE1vZCxOb2QsT29kO3ZhciBEMz10ZmIoSkdlLCdQb3J0TGFiZWxQbGFjZW1lbnQnLDI3OSxXSSxVb2QsVG9kKTt2YXIgVm9kO2ZlYig2NCwyMix7MzoxLDM0OjEsMjI6MSw2NDoxfSx1cGQpO3ZhciBYb2QsWW9kLFpvZCwkb2QsX29kLGFwZCxicGQsY3BkLGRwZCxlcGQsZnBkLGdwZCxocGQsaXBkLGpwZCxrcGQsbHBkLG1wZCxucGQsb3BkLHBwZDt2YXIgRTM9dGZiKEpHZSwnUG9ydFNpZGUnLDY0LFdJLHhwZCx3cGQpO3ZhciB5cGQ7ZmViKDk5MywxLEV5ZSxIcGQpO18uaGY9ZnVuY3Rpb24gSXBkKGEpe0dwZChhKX07dmFyIEFwZCxCcGQsQ3BkLERwZCxFcGQ7dmFyIEczPXNmYihKR2UsJ1JhbmRvbUxheW91dGVyT3B0aW9ucycsOTkzKTtmZWIoOTk0LDEse30sSnBkKTtfLnNmPWZ1bmN0aW9uIEtwZCgpe3ZhciBhO3JldHVybiBhPW5ldyBldWQsYX07Xy50Zj1mdW5jdGlvbiBMcGQoYSl7fTt2YXIgRjM9c2ZiKEpHZSwnUmFuZG9tTGF5b3V0ZXJPcHRpb25zL1JhbmRvbUZhY3RvcnknLDk5NCk7ZmViKDM4NiwyMix7MzoxLDM0OjEsMjI6MSwzODY6MX0sUnBkKTt2YXIgTXBkLE5wZCxPcGQsUHBkO3ZhciBIMz10ZmIoSkdlLCdTaXplQ29uc3RyYWludCcsMzg2LFdJLFRwZCxTcGQpO3ZhciBVcGQ7ZmViKDI2NCwyMix7MzoxLDM0OjEsMjI6MSwyNjQ6MX0sZXFkKTt2YXIgV3BkLFhwZCxZcGQsWnBkLCRwZCxfcGQsYXFkLGJxZCxjcWQ7dmFyIEkzPXRmYihKR2UsJ1NpemVPcHRpb25zJywyNjQsV0ksZ3FkLGZxZCk7dmFyIGhxZDtmZWIoMjgwLDIyLHszOjEsMzQ6MSwyMjoxLDI4MDoxfSxucWQpO3ZhciBqcWQsa3FkLGxxZDt2YXIgSjM9dGZiKEpHZSwnVG9wZG93bk5vZGVUeXBlcycsMjgwLFdJLHBxZCxvcWQpO3ZhciBxcWQ7ZmViKDM0NywyMixySGUpO3ZhciBzcWQsdHFkO3ZhciBNMz10ZmIoSkdlLCdUb3Bkb3duU2l6ZUFwcHJveGltYXRvcicsMzQ3LFdJLHhxZCx3cWQpO2ZlYig5ODcsMzQ3LHJIZSx6cWQpO18uVGc9ZnVuY3Rpb24gQXFkKGEpe3JldHVybiB5cWQoYSl9O3ZhciBLMz10ZmIoSkdlLCdUb3Bkb3duU2l6ZUFwcHJveGltYXRvci8xJyw5ODcsTTMsbnVsbCxudWxsKTtmZWIoOTg4LDM0NyxySGUsQnFkKTtfLlRnPWZ1bmN0aW9uIENxZChiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcsQSxCLEMsRDtjPVJEKEd4ZChiLCh1bWQoKSxUbGQpKSwxNDMpO0E9KGJ2ZCgpLG89bmV3IEFDZCxvKTt6eGQoQSxiKTtCPW5ldyBUc2I7Zm9yKGc9bmV3IGRNZCgoIWIuYSYmKGIuYT1uZXcgQzVkKEo0LGIsMTAsMTEpKSxiLmEpKTtnLmUhPWcuaS5nYygpOyl7ZT1SRChiTWQoZyksMjcpO3Q9KG49bmV3IEFDZCxuKTt5Q2QodCxBKTt6eGQodCxlKTtEPXlxZChlKTt6eWQodCwkd25kLk1hdGgubWF4KGUuZyxELmEpLCR3bmQuTWF0aC5tYXgoZS5mLEQuYikpO3J0YihCLmYsZSx0KX1mb3IoZj1uZXcgZE1kKCghYi5hJiYoYi5hPW5ldyBDNWQoSjQsYiwxMCwxMSkpLGIuYSkpO2YuZSE9Zi5pLmdjKCk7KXtlPVJEKGJNZChmKSwyNyk7Zm9yKGw9bmV3IGRNZCgoIWUuZSYmKGUuZT1uZXcgWWllKEc0LGUsNyw0KSksZS5lKSk7bC5lIT1sLmkuZ2MoKTspe2s9UkQoYk1kKGwpLDc0KTt2PVJEKFdkKHF0YihCLmYsZSkpLDI3KTt3PVJEKFdqYihCLFFIZCgoIWsuYyYmKGsuYz1uZXcgWWllKEU0LGssNSw4KSksay5jKSwwKSksMjcpO3U9KG09bmV3IHJ6ZCxtKTtXR2QoKCF1LmImJih1LmI9bmV3IFlpZShFNCx1LDQsNykpLHUuYiksdik7V0dkKCghdS5jJiYodS5jPW5ldyBZaWUoRTQsdSw1LDgpKSx1LmMpLHcpO3B6ZCh1LHZDZCh2KSk7enhkKHUsayl9fXE9UkQobHRkKGMuZiksMjA1KTt0cnl7cS5yZihBLG5ldyB6dGQpO210ZChjLmYscSl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSwxMDMpKXtwPWE7dGhyb3cgQWRiKHApfWVsc2UgdGhyb3cgQWRiKGEpfUh4ZChBLElrZCl8fEh4ZChBLEhrZCl8fHBzZChBKTtqPUtmYihVRChHeGQoQSxJa2QpKSk7aT1LZmIoVUQoR3hkKEEsSGtkKSkpO2g9ai9pO2Q9S2ZiKFVEKEd4ZChBLGxtZCkpKSokd25kLk1hdGguc3FydCgoIUEuYSYmKEEuYT1uZXcgQzVkKEo0LEEsMTAsMTEpKSxBLmEpLmkpO0M9UkQoR3hkKEEsdGxkKSwxMDcpO3M9Qy5iK0MuYysxO3I9Qy5kK0MuYSsxO3JldHVybiBuZXcgcmpkKCR3bmQuTWF0aC5tYXgocyxkKSwkd25kLk1hdGgubWF4KHIsZC9oKSl9O3ZhciBMMz10ZmIoSkdlLCdUb3Bkb3duU2l6ZUFwcHJveGltYXRvci8yJyw5ODgsTTMsbnVsbCxudWxsKTt2YXIgRHFkO2ZlYigzNDQsMSx7ODcxOjF9LE9xZCk7Xy5VZz1mdW5jdGlvbiBQcWQoYSxiKXtyZXR1cm4gRnFkKHRoaXMsYSxiKX07Xy5WZz1mdW5jdGlvbiBRcWQoKXtIcWQodGhpcyl9O18uV2c9ZnVuY3Rpb24gUnFkKCl7cmV0dXJuIHRoaXMucX07Xy5YZz1mdW5jdGlvbiBTcWQoKXtyZXR1cm4gIXRoaXMuZj9udWxsOkhvYih0aGlzLmYpfTtfLllnPWZ1bmN0aW9uIFRxZCgpe3JldHVybiBIb2IodGhpcy5hKX07Xy5aZz1mdW5jdGlvbiBVcWQoKXtyZXR1cm4gdGhpcy5wfTtfLiRnPWZ1bmN0aW9uIFZxZCgpe3JldHVybiBmYWxzZX07Xy5fZz1mdW5jdGlvbiBXcWQoKXtyZXR1cm4gdGhpcy5ufTtfLmFoPWZ1bmN0aW9uIFhxZCgpe3JldHVybiB0aGlzLnAhPW51bGwmJiF0aGlzLmJ9O18uYmg9ZnVuY3Rpb24gWXFkKGEpe3ZhciBiO2lmKHRoaXMubil7Yj1hO1JtYih0aGlzLmYsYil9fTtfLmRoPWZ1bmN0aW9uIFpxZChhLGIpe3ZhciBjLGQ7dGhpcy5uJiYhIWEmJkpxZCh0aGlzLChjPW5ldyBaamUsZD1SamUoYyxhKSxZamUoYyksZCksKHR0ZCgpLHF0ZCkpfTtfLmVoPWZ1bmN0aW9uICRxZChhKXt2YXIgYjtpZih0aGlzLmIpe3JldHVybiBudWxsfWVsc2V7Yj1HcWQodGhpcyx0aGlzLmcpO011Yih0aGlzLmEsYik7Yi5pPXRoaXM7dGhpcy5kPWE7cmV0dXJuIGJ9fTtfLmZoPWZ1bmN0aW9uIF9xZChhKXthPjAmJiF0aGlzLmImJklxZCh0aGlzLGEpfTtfLmI9ZmFsc2U7Xy5jPTA7Xy5kPS0xO18uZT1udWxsO18uZj1udWxsO18uZz0tMTtfLmo9ZmFsc2U7Xy5rPWZhbHNlO18ubj1mYWxzZTtfLm89MDtfLnE9MDtfLnI9MDt2YXIgTzM9c2ZiKGpFZSwnQmFzaWNQcm9ncmVzc01vbml0b3InLDM0NCk7ZmViKDcxNywyMDUsb3plLGpyZCk7Xy5yZj1mdW5jdGlvbiBucmQoYSxiKXtjcmQoYSxiKX07dmFyIFYzPXNmYihqRWUsJ0JveExheW91dFByb3ZpZGVyJyw3MTcpO2ZlYig5ODMsMSxmeWUscHJkKTtfLk5lPWZ1bmN0aW9uIHFyZChhLGIpe3JldHVybiBvcmQodGhpcyxSRChhLDI3KSxSRChiLDI3KSl9O18uRmI9ZnVuY3Rpb24gcnJkKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBzcmQoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07Xy5hPWZhbHNlO3ZhciBQMz1zZmIoakVlLCdCb3hMYXlvdXRQcm92aWRlci8xJyw5ODMpO2ZlYigxNjMsMSx7MTYzOjF9LHpyZCxBcmQpO18uSWI9ZnVuY3Rpb24gQnJkKCl7cmV0dXJuIHRoaXMuYz96Q2QodGhpcy5jKTpGZSh0aGlzLmIpfTt2YXIgUTM9c2ZiKGpFZSwnQm94TGF5b3V0UHJvdmlkZXIvR3JvdXAnLDE2Myk7ZmViKDMyMCwyMix7MzoxLDM0OjEsMjI6MSwzMjA6MX0sSHJkKTt2YXIgQ3JkLERyZCxFcmQsRnJkO3ZhciBSMz10ZmIoakVlLCdCb3hMYXlvdXRQcm92aWRlci9QYWNraW5nTW9kZScsMzIwLFdJLEpyZCxJcmQpO3ZhciBLcmQ7ZmViKDk4NCwxLGZ5ZSxNcmQpO18uTmU9ZnVuY3Rpb24gTnJkKGEsYil7cmV0dXJuIGtyZChSRChhLDE2MyksUkQoYiwxNjMpKX07Xy5GYj1mdW5jdGlvbiBPcmQoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLk9lPWZ1bmN0aW9uIFByZCgpe3JldHVybiBuZXcgRnJiKHRoaXMpfTt2YXIgUzM9c2ZiKGpFZSwnQm94TGF5b3V0UHJvdmlkZXIvbGFtYmRhJDAkVHlwZScsOTg0KTtmZWIoOTg1LDEsZnllLFFyZCk7Xy5OZT1mdW5jdGlvbiBScmQoYSxiKXtyZXR1cm4gbHJkKFJEKGEsMTYzKSxSRChiLDE2MykpfTtfLkZiPWZ1bmN0aW9uIFNyZChhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24gVHJkKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBUMz1zZmIoakVlLCdCb3hMYXlvdXRQcm92aWRlci9sYW1iZGEkMSRUeXBlJyw5ODUpO2ZlYig5ODYsMSxmeWUsVXJkKTtfLk5lPWZ1bmN0aW9uIFZyZChhLGIpe3JldHVybiBtcmQoUkQoYSwxNjMpLFJEKGIsMTYzKSl9O18uRmI9ZnVuY3Rpb24gV3JkKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBYcmQoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIFUzPXNmYihqRWUsJ0JveExheW91dFByb3ZpZGVyL2xhbWJkYSQyJFR5cGUnLDk4Nik7ZmViKDEzODQsMSx7ODQ1OjF9LFlyZCk7Xy5NZz1mdW5jdGlvbiBacmQoYSxiKXtyZXR1cm4gR0NjKCksIVpEKGIsMTY3KXx8dWVkKChoZWQoKSxnZWQsUkQoYSwxNjcpKSxiKX07dmFyIFczPXNmYihqRWUsJ0Vsa1NwYWNpbmdzL0Fic3RyYWN0U3BhY2luZ3NCdWlsZGVyL2xhbWJkYSQwJFR5cGUnLDEzODQpO2ZlYigxMzg1LDEsUXZlLCRyZCk7Xy5DZD1mdW5jdGlvbiBfcmQoYSl7SkNjKHRoaXMuYSxSRChhLDE0OSkpfTt2YXIgWDM9c2ZiKGpFZSwnRWxrU3BhY2luZ3MvQWJzdHJhY3RTcGFjaW5nc0J1aWxkZXIvbGFtYmRhJDEkVHlwZScsMTM4NSk7ZmViKDEzODYsMSxRdmUsYXNkKTtfLkNkPWZ1bmN0aW9uIGJzZChhKXtSRChhLDk2KTtHQ2MoKX07dmFyIFkzPXNmYihqRWUsJ0Vsa1NwYWNpbmdzL0Fic3RyYWN0U3BhY2luZ3NCdWlsZGVyL2xhbWJkYSQyJFR5cGUnLDEzODYpO2ZlYigxMzkwLDEsUXZlLGNzZCk7Xy5DZD1mdW5jdGlvbiBkc2QoYSl7S0NjKHRoaXMuYSxSRChhLDk2KSl9O3ZhciBaMz1zZmIoakVlLCdFbGtTcGFjaW5ncy9BYnN0cmFjdFNwYWNpbmdzQnVpbGRlci9sYW1iZGEkMyRUeXBlJywxMzkwKTtmZWIoMTM4OCwxLG53ZSxlc2QpO18uTWI9ZnVuY3Rpb24gZnNkKGEpe3JldHVybiBMQ2ModGhpcy5hLHRoaXMuYixSRChhLDE0OSkpfTt2YXIgJDM9c2ZiKGpFZSwnRWxrU3BhY2luZ3MvQWJzdHJhY3RTcGFjaW5nc0J1aWxkZXIvbGFtYmRhJDQkVHlwZScsMTM4OCk7ZmViKDEzODcsMSxud2UsZ3NkKTtfLk1iPWZ1bmN0aW9uIGhzZChhKXtyZXR1cm4gTkNjKHRoaXMuYSx0aGlzLmIsUkQoYSw4NDUpKX07dmFyIF8zPXNmYihqRWUsJ0Vsa1NwYWNpbmdzL0Fic3RyYWN0U3BhY2luZ3NCdWlsZGVyL2xhbWJkYSQ1JFR5cGUnLDEzODcpO2ZlYigxMzg5LDEsUXZlLGlzZCk7Xy5DZD1mdW5jdGlvbiBqc2QoYSl7TUNjKHRoaXMuYSx0aGlzLmIsUkQoYSwxNDkpKX07dmFyIGE0PXNmYihqRWUsJ0Vsa1NwYWNpbmdzL0Fic3RyYWN0U3BhY2luZ3NCdWlsZGVyL2xhbWJkYSQ2JFR5cGUnLDEzODkpO2ZlYig5NDcsMSx7fSxMc2QpO18uS2I9ZnVuY3Rpb24gTXNkKGEpe3JldHVybiBLc2QoYSl9O18uRmI9ZnVuY3Rpb24gTnNkKGEpe3JldHVybiB0aGlzPT09YX07dmFyIGM0PXNmYihqRWUsJ0Vsa1V0aWwvbGFtYmRhJDAkVHlwZScsOTQ3KTtmZWIoOTQ4LDEsUXZlLE9zZCk7Xy5DZD1mdW5jdGlvbiBQc2QoYSl7eXNkKHRoaXMuYSx0aGlzLmIsUkQoYSw3NCkpfTtfLmE9MDtfLmI9MDt2YXIgZDQ9c2ZiKGpFZSwnRWxrVXRpbC9sYW1iZGEkMSRUeXBlJyw5NDgpO2ZlYig5NDksMSxRdmUsUXNkKTtfLkNkPWZ1bmN0aW9uIFJzZChhKXt6c2QodGhpcy5hLHRoaXMuYixSRChhLDE2NikpfTtfLmE9MDtfLmI9MDt2YXIgZTQ9c2ZiKGpFZSwnRWxrVXRpbC9sYW1iZGEkMiRUeXBlJyw5NDkpO2ZlYig5NTAsMSxRdmUsU3NkKTtfLkNkPWZ1bmN0aW9uIFRzZChhKXtBc2QodGhpcy5hLHRoaXMuYixSRChhLDEzNSkpfTtfLmE9MDtfLmI9MDt2YXIgZjQ9c2ZiKGpFZSwnRWxrVXRpbC9sYW1iZGEkMyRUeXBlJyw5NTApO2ZlYig5NTEsMSxRdmUsVXNkKTtfLkNkPWZ1bmN0aW9uIFZzZChhKXtCc2QodGhpcy5hLFJEKGEsMzc3KSl9O3ZhciBnND1zZmIoakVlLCdFbGtVdGlsL2xhbWJkYSQ0JFR5cGUnLDk1MSk7ZmViKDMyNSwxLHszNDoxLDMyNToxfSxYc2QpO18uRmQ9ZnVuY3Rpb24gWXNkKGEpe3JldHVybiBXc2QodGhpcyxSRChhLDI0MikpfTtfLkZiPWZ1bmN0aW9uIFpzZChhKXt2YXIgYjtpZihaRChhLDMyNSkpe2I9UkQoYSwzMjUpO3JldHVybiB0aGlzLmE9PWIuYX1yZXR1cm4gZmFsc2V9O18uSGI9ZnVuY3Rpb24gJHNkKCl7cmV0dXJuIGVFKHRoaXMuYSl9O18uSWI9ZnVuY3Rpb24gX3NkKCl7cmV0dXJuIHRoaXMuYSsnIChleGNsdXNpdmUpJ307Xy5hPTA7dmFyIGg0PXNmYihqRWUsJ0V4Y2x1c2l2ZUJvdW5kcy9FeGNsdXNpdmVMb3dlckJvdW5kJywzMjUpO2ZlYigxMTE5LDIwNSxvemUsYnRkKTtfLnJmPWZ1bmN0aW9uIGN0ZChhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyxBLEI7Yi5VZygnRml4ZWQgTGF5b3V0JywxKTtmPVJEKEd4ZChhLCh1bWQoKSxTa2QpKSwyMjMpO2w9MDttPTA7Zm9yKHM9bmV3IGRNZCgoIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpKTtzLmUhPXMuaS5nYygpOyl7cT1SRChiTWQocyksMjcpO0I9UkQoR3hkKHEsKHZuZCgpLHVuZCkpLDgpO2lmKEIpe0J5ZChxLEIuYSxCLmIpO2lmKFJEKEd4ZChxLHBuZCksMTgxKS5IYygoUXBkKCksTXBkKSkpe249UkQoR3hkKHEscm5kKSw4KTtuLmE+MCYmbi5iPjAmJkVzZChxLG4uYSxuLmIsdHJ1ZSx0cnVlKX19bD0kd25kLk1hdGgubWF4KGwscS5pK3EuZyk7bT0kd25kLk1hdGgubWF4KG0scS5qK3EuZik7Zm9yKGo9bmV3IGRNZCgoIXEubiYmKHEubj1uZXcgQzVkKEk0LHEsMSw3KSkscS5uKSk7ai5lIT1qLmkuZ2MoKTspe2g9UkQoYk1kKGopLDEzNSk7Qj1SRChHeGQoaCx1bmQpLDgpOyEhQiYmQnlkKGgsQi5hLEIuYik7bD0kd25kLk1hdGgubWF4KGwscS5pK2guaStoLmcpO209JHduZC5NYXRoLm1heChtLHEuaitoLmoraC5mKX1mb3Iodj1uZXcgZE1kKCghcS5jJiYocS5jPW5ldyBDNWQoSzQscSw5LDkpKSxxLmMpKTt2LmUhPXYuaS5nYygpOyl7dT1SRChiTWQodiksMTIzKTtCPVJEKEd4ZCh1LHVuZCksOCk7ISFCJiZCeWQodSxCLmEsQi5iKTt3PXEuaSt1Lmk7QT1xLmordS5qO2w9JHduZC5NYXRoLm1heChsLHcrdS5nKTttPSR3bmQuTWF0aC5tYXgobSxBK3UuZik7Zm9yKGk9bmV3IGRNZCgoIXUubiYmKHUubj1uZXcgQzVkKEk0LHUsMSw3KSksdS5uKSk7aS5lIT1pLmkuZ2MoKTspe2g9UkQoYk1kKGkpLDEzNSk7Qj1SRChHeGQoaCx1bmQpLDgpOyEhQiYmQnlkKGgsQi5hLEIuYik7bD0kd25kLk1hdGgubWF4KGwsdytoLmkraC5nKTttPSR3bmQuTWF0aC5tYXgobSxBK2guaitoLmYpfX1mb3IoZT1uZXcgaXMoTXIoekdkKHEpLmEuS2MoKSxuZXcgaXIpKTtncyhlKTspe2M9UkQoaHMoZSksNzQpO2s9YXRkKGMpO2w9JHduZC5NYXRoLm1heChsLGsuYSk7bT0kd25kLk1hdGgubWF4KG0say5iKX1mb3IoZD1uZXcgaXMoTXIoeUdkKHEpLmEuS2MoKSxuZXcgaXIpKTtncyhkKTspe2M9UkQoaHMoZCksNzQpO2lmKHZDZChKR2QoYykpIT1hKXtrPWF0ZChjKTtsPSR3bmQuTWF0aC5tYXgobCxrLmEpO209JHduZC5NYXRoLm1heChtLGsuYil9fX1pZihmPT0oWW1kKCksVW1kKSl7Zm9yKHI9bmV3IGRNZCgoIWEuYSYmKGEuYT1uZXcgQzVkKEo0LGEsMTAsMTEpKSxhLmEpKTtyLmUhPXIuaS5nYygpOyl7cT1SRChiTWQociksMjcpO2ZvcihkPW5ldyBpcyhNcih6R2QocSkuYS5LYygpLG5ldyBpcikpO2dzKGQpOyl7Yz1SRChocyhkKSw3NCk7Zz10c2QoYyk7Zy5iPT0wP0l4ZChjLGNsZCxudWxsKTpJeGQoYyxjbGQsZyl9fX1pZighSGViKFREKEd4ZChhLCh2bmQoKSxxbmQpKSkpKXt0PVJEKEd4ZChhLHNuZCksMTA3KTtwPWwrdC5iK3QuYztvPW0rdC5kK3QuYTtFc2QoYSxwLG8sdHJ1ZSx0cnVlKX1iLlZnKCl9O3ZhciBpND1zZmIoakVlLCdGaXhlZExheW91dFByb3ZpZGVyJywxMTE5KTtmZWIoMzg1LDEzNyx7MzoxLDQyMzoxLDM4NToxLDk2OjEsMTM3OjF9LGR0ZCxldGQpO18uY2c9ZnVuY3Rpb24gaHRkKGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosaztpZighYil7cmV0dXJufXRyeXtqPXZoYihiLCc7LDsnKTtmb3IoZz1qLGg9MCxpPWcubGVuZ3RoO2g8aTsrK2gpe2Y9Z1toXTtkPXZoYihmLCdcXFxcOicpO2U9dmdkKHlnZCgpLGRbMF0pO2lmKCFlKXt0aHJvdyBBZGIobmV3IGFnYignSW52YWxpZCBvcHRpb24gaWQ6ICcrZFswXSkpfWs9emhkKGUsZFsxXSk7aWYoaz09bnVsbCl7dGhyb3cgQWRiKG5ldyBhZ2IoJ0ludmFsaWQgb3B0aW9uIHZhbHVlOiAnK2RbMV0pKX1rPT1udWxsPyghdGhpcy5xJiYodGhpcy5xPW5ldyBUc2IpLF9qYih0aGlzLnEsZSkpOighdGhpcy5xJiYodGhpcy5xPW5ldyBUc2IpLFpqYih0aGlzLnEsZSxrKSl9fWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsMTAzKSl7Yz1hO3Rocm93IEFkYihuZXcgYmdiKGMpKX1lbHNlIHRocm93IEFkYihhKX19O18uSWI9ZnVuY3Rpb24gaXRkKCl7dmFyIGE7YT1XRCh6RGIoR0RiKCghdGhpcy5xPyh5b2IoKSx5b2IoKSx3b2IpOnRoaXMucSkudmMoKS5PYygpLG5ldyBqdGQpLHNCYihuZXcgaENiLG5ldyBmQ2IsbmV3IFJCYixuZXcgVEJiLGNEKFdDKFFMLDEpLGp3ZSwxMDgsMCxbXSkpKSk7cmV0dXJuIGF9O3ZhciBsND1zZmIoakVlLCdJbmRpdmlkdWFsU3BhY2luZ3MnLDM4NSk7ZmViKDk4MiwxLHt9LGp0ZCk7Xy5LYj1mdW5jdGlvbiBrdGQoYSl7cmV0dXJuIGd0ZChSRChhLDQ0KSl9O3ZhciBrND1zZmIoakVlLCdJbmRpdmlkdWFsU3BhY2luZ3MvbGFtYmRhJDAkVHlwZScsOTgyKTtmZWIoNzE4LDEse30sbnRkKTtfLmM9MDt2YXIgbTQ9c2ZiKGpFZSwnSW5zdGFuY2VQb29sJyw3MTgpO2ZlYigxODM1LDEse30sb3RkKTt2YXIgbzQ9c2ZiKGpFZSwnTG9nZ2VkR3JhcGgnLDE4MzUpO2ZlYig0MTUsMjIsezM6MSwzNDoxLDIyOjEsNDE1OjF9LHV0ZCk7dmFyIHB0ZCxxdGQscnRkLHN0ZDt2YXIgbjQ9dGZiKGpFZSwnTG9nZ2VkR3JhcGgvVHlwZScsNDE1LFdJLHd0ZCx2dGQpO3ZhciB4dGQ7ZmViKDEwNjMsMSx7ODcxOjF9LHp0ZCk7Xy5VZz1mdW5jdGlvbiBBdGQoYSxiKXtyZXR1cm4gZmFsc2V9O18uVmc9ZnVuY3Rpb24gQnRkKCl7fTtfLldnPWZ1bmN0aW9uIEN0ZCgpe3JldHVybiAwfTtfLlhnPWZ1bmN0aW9uIER0ZCgpe3JldHVybiBudWxsfTtfLllnPWZ1bmN0aW9uIEV0ZCgpe3JldHVybiBudWxsfTtfLlpnPWZ1bmN0aW9uIEZ0ZCgpe3JldHVybiBudWxsfTtfLiRnPWZ1bmN0aW9uIEd0ZCgpe3JldHVybiBmYWxzZX07Xy5fZz1mdW5jdGlvbiBIdGQoKXtyZXR1cm4gZmFsc2V9O18uYWg9ZnVuY3Rpb24gSXRkKCl7cmV0dXJuIGZhbHNlfTtfLmJoPWZ1bmN0aW9uIEp0ZChhKXt9O18uZGg9ZnVuY3Rpb24gS3RkKGEsYil7fTtfLmVoPWZ1bmN0aW9uIEx0ZChhKXtyZXR1cm4gdGhpc307Xy5maD1mdW5jdGlvbiBNdGQoYSl7fTt2YXIgcDQ9c2ZiKGpFZSwnTnVsbEVsa1Byb2dyZXNzTW9uaXRvcicsMTA2Myk7ZmViKDQyLDEsezIwOjEsNDI6MX0sUHRkKTtfLkpjPWZ1bmN0aW9uIFJ0ZChhKXt4Z2IodGhpcyxhKX07Xy5GYj1mdW5jdGlvbiBRdGQoYSl7dmFyIGIsYyxkO2lmKFpEKGEsNDIpKXtjPVJEKGEsNDIpO2I9dGhpcy5hPT1udWxsP2MuYT09bnVsbDpwYih0aGlzLmEsYy5hKTtkPXRoaXMuYj09bnVsbD9jLmI9PW51bGw6cGIodGhpcy5iLGMuYik7cmV0dXJuIGImJmR9ZWxzZXtyZXR1cm4gZmFsc2V9fTtfLkhiPWZ1bmN0aW9uIFN0ZCgpe3ZhciBhLGIsYyxkLGUsZjtjPXRoaXMuYT09bnVsbD8wOnRiKHRoaXMuYSk7YT1jJkJ3ZTtiPWMmLTY1NTM2O2Y9dGhpcy5iPT1udWxsPzA6dGIodGhpcy5iKTtkPWYmQndlO2U9ZiYtNjU1MzY7cmV0dXJuIGFeZT4+MTYmQndlfGJeZDw8MTZ9O18uS2M9ZnVuY3Rpb24gVHRkKCl7cmV0dXJuIG5ldyBWdGQodGhpcyl9O18uSWI9ZnVuY3Rpb24gVXRkKCl7cmV0dXJuIHRoaXMuYT09bnVsbCYmdGhpcy5iPT1udWxsPydwYWlyKG51bGwsbnVsbCknOnRoaXMuYT09bnVsbD8ncGFpcihudWxsLCcramViKHRoaXMuYikrJyknOnRoaXMuYj09bnVsbD8ncGFpcignK2plYih0aGlzLmEpKycsbnVsbCknOidwYWlyKCcramViKHRoaXMuYSkrJywnK2plYih0aGlzLmIpKycpJ307dmFyIHI0PXNmYihqRWUsJ1BhaXInLDQyKTtmZWIoOTk1LDEsQXZlLFZ0ZCk7Xy5OYj1mdW5jdGlvbiBXdGQoYSl7WnRiKHRoaXMsYSl9O18uT2I9ZnVuY3Rpb24gWHRkKCl7cmV0dXJuICF0aGlzLmMmJighdGhpcy5iJiZ0aGlzLmEuYSE9bnVsbHx8dGhpcy5hLmIhPW51bGwpfTtfLlBiPWZ1bmN0aW9uIFl0ZCgpe2lmKCF0aGlzLmMmJiF0aGlzLmImJnRoaXMuYS5hIT1udWxsKXt0aGlzLmI9dHJ1ZTtyZXR1cm4gdGhpcy5hLmF9ZWxzZSBpZighdGhpcy5jJiZ0aGlzLmEuYiE9bnVsbCl7dGhpcy5jPXRydWU7cmV0dXJuIHRoaXMuYS5ifXRocm93IEFkYihuZXcgRHZiKX07Xy5RYj1mdW5jdGlvbiBadGQoKXt0aGlzLmMmJnRoaXMuYS5iIT1udWxsPyh0aGlzLmEuYj1udWxsKTp0aGlzLmImJnRoaXMuYS5hIT1udWxsJiYodGhpcy5hLmE9bnVsbCk7dGhyb3cgQWRiKG5ldyBjZ2IpfTtfLmI9ZmFsc2U7Xy5jPWZhbHNlO3ZhciBxND1zZmIoakVlLCdQYWlyLzEnLDk5NSk7ZmViKDQ1NSwxLHs0NTU6MX0sJHRkKTtfLkZiPWZ1bmN0aW9uIF90ZChhKXtyZXR1cm4gRnZiKHRoaXMuYSxSRChhLDQ1NSkuYSkmJkZ2Yih0aGlzLmMsUkQoYSw0NTUpLmMpJiZGdmIodGhpcy5kLFJEKGEsNDU1KS5kKSYmRnZiKHRoaXMuYixSRChhLDQ1NSkuYil9O18uSGI9ZnVuY3Rpb24gYXVkKCl7cmV0dXJuIFRuYihjRChXQyhqSiwxKSxydmUsMSw1LFt0aGlzLmEsdGhpcy5jLHRoaXMuZCx0aGlzLmJdKSl9O18uSWI9ZnVuY3Rpb24gYnVkKCl7cmV0dXJuICcoJyt0aGlzLmErcHZlK3RoaXMuYytwdmUrdGhpcy5kK3B2ZSt0aGlzLmIrJyknfTt2YXIgczQ9c2ZiKGpFZSwnUXVhZHJ1cGxlJyw0NTUpO2ZlYigxMTA4LDIwNSxvemUsZXVkKTtfLnJmPWZ1bmN0aW9uIGZ1ZChhLGIpe3ZhciBjLGQsZSxmLGc7Yi5VZygnUmFuZG9tIExheW91dCcsMSk7aWYoKCFhLmEmJihhLmE9bmV3IEM1ZChKNCxhLDEwLDExKSksYS5hKS5pPT0wKXtiLlZnKCk7cmV0dXJufWY9UkQoR3hkKGEsKEZwZCgpLERwZCkpLDE3KTshIWYmJmYuYSE9MD8oZT1uZXcgUHdiKGYuYSkpOihlPW5ldyBPd2IpO2M9TWZiKFVEKEd4ZChhLEFwZCkpKTtnPU1mYihVRChHeGQoYSxFcGQpKSk7ZD1SRChHeGQoYSxCcGQpLDEwNyk7ZHVkKGEsZSxjLGcsZCk7Yi5WZygpfTt2YXIgdDQ9c2ZiKGpFZSwnUmFuZG9tTGF5b3V0UHJvdmlkZXInLDExMDgpO2ZlYigyNDAsMSx7MjQwOjF9LGd1ZCk7Xy5GYj1mdW5jdGlvbiBodWQoYSl7cmV0dXJuIEZ2Yih0aGlzLmEsUkQoYSwyNDApLmEpJiZGdmIodGhpcy5iLFJEKGEsMjQwKS5iKSYmRnZiKHRoaXMuYyxSRChhLDI0MCkuYyl9O18uSGI9ZnVuY3Rpb24gaXVkKCl7cmV0dXJuIFRuYihjRChXQyhqSiwxKSxydmUsMSw1LFt0aGlzLmEsdGhpcy5iLHRoaXMuY10pKX07Xy5JYj1mdW5jdGlvbiBqdWQoKXtyZXR1cm4gJygnK3RoaXMuYStwdmUrdGhpcy5iK3B2ZSt0aGlzLmMrJyknfTt2YXIgdTQ9c2ZiKGpFZSwnVHJpcGxlJywyNDApO3ZhciBrdWQ7ZmViKDU2MiwxLHt9KTtfLkxmPWZ1bmN0aW9uIG91ZCgpe3JldHVybiBuZXcgcmpkKHRoaXMuZi5pLHRoaXMuZi5qKX07Xy5vZj1mdW5jdGlvbiBwdWQoYSl7aWYoaEdkKGEsKHVtZCgpLEdsZCkpKXtyZXR1cm4gR3hkKHRoaXMuZixtdWQpfXJldHVybiBHeGQodGhpcy5mLGEpfTtfLk1mPWZ1bmN0aW9uIHF1ZCgpe3JldHVybiBuZXcgcmpkKHRoaXMuZi5nLHRoaXMuZi5mKX07Xy5OZj1mdW5jdGlvbiBydWQoKXtyZXR1cm4gdGhpcy5nfTtfLnBmPWZ1bmN0aW9uIHN1ZChhKXtyZXR1cm4gSHhkKHRoaXMuZixhKX07Xy5PZj1mdW5jdGlvbiB0dWQoYSl7RHlkKHRoaXMuZixhLmEpO0V5ZCh0aGlzLmYsYS5iKX07Xy5QZj1mdW5jdGlvbiB1dWQoYSl7Q3lkKHRoaXMuZixhLmEpO0F5ZCh0aGlzLmYsYS5iKX07Xy5RZj1mdW5jdGlvbiB2dWQoYSl7dGhpcy5nPWF9O18uZz0wO3ZhciBtdWQ7dmFyIHY0PXNmYih1SGUsJ0Vsa0dyYXBoQWRhcHRlcnMvQWJzdHJhY3RFbGtHcmFwaEVsZW1lbnRBZGFwdGVyJyw1NjIpO2ZlYig1NjMsMSx7ODUzOjF9LHd1ZCk7Xy5SZj1mdW5jdGlvbiB4dWQoKXt2YXIgYSxiO2lmKCF0aGlzLmIpe3RoaXMuYj1mdihpeWQodGhpcy5hKS5pKTtmb3IoYj1uZXcgZE1kKGl5ZCh0aGlzLmEpKTtiLmUhPWIuaS5nYygpOyl7YT1SRChiTWQoYiksMTM1KTtSbWIodGhpcy5iLG5ldyBCdWQoYSkpfX1yZXR1cm4gdGhpcy5ifTtfLmI9bnVsbDt2YXIgdzQ9c2ZiKHVIZSwnRWxrR3JhcGhBZGFwdGVycy9FbGtFZGdlQWRhcHRlcicsNTYzKTtmZWIoMjg5LDU2Mix7fSx6dWQpO18uU2Y9ZnVuY3Rpb24gQXVkKCl7cmV0dXJuIHl1ZCh0aGlzKX07Xy5hPW51bGw7dmFyIHg0PXNmYih1SGUsJ0Vsa0dyYXBoQWRhcHRlcnMvRWxrR3JhcGhBZGFwdGVyJywyODkpO2ZlYig2NDAsNTYyLHsxODc6MX0sQnVkKTt2YXIgeTQ9c2ZiKHVIZSwnRWxrR3JhcGhBZGFwdGVycy9FbGtMYWJlbEFkYXB0ZXInLDY0MCk7ZmViKDYzOSw1NjIsezY5NToxfSxGdWQpO18uUmY9ZnVuY3Rpb24gSXVkKCl7cmV0dXJuIEN1ZCh0aGlzKX07Xy5WZj1mdW5jdGlvbiBKdWQoKXt2YXIgYTtyZXR1cm4gYT1SRChHeGQodGhpcy5mLCh1bWQoKSxlbGQpKSwxNDApLCFhJiYoYT1uZXcgUDJiKSxhfTtfLlhmPWZ1bmN0aW9uIEx1ZCgpe3JldHVybiBEdWQodGhpcyl9O18uWmY9ZnVuY3Rpb24gTnVkKGEpe3ZhciBiO2I9bmV3IFMyYihhKTtJeGQodGhpcy5mLCh1bWQoKSxlbGQpLGIpfTtfLiRmPWZ1bmN0aW9uIE91ZChhKXtJeGQodGhpcy5mLCh1bWQoKSx0bGQpLG5ldyBCM2IoYSkpfTtfLlRmPWZ1bmN0aW9uIEd1ZCgpe3JldHVybiB0aGlzLmR9O18uVWY9ZnVuY3Rpb24gSHVkKCl7dmFyIGEsYjtpZighdGhpcy5hKXt0aGlzLmE9bmV3IGJuYjtmb3IoYj1uZXcgaXMoTXIoeUdkKFJEKHRoaXMuZiwyNykpLmEuS2MoKSxuZXcgaXIpKTtncyhiKTspe2E9UkQoaHMoYiksNzQpO1JtYih0aGlzLmEsbmV3IHd1ZChhKSl9fXJldHVybiB0aGlzLmF9O18uV2Y9ZnVuY3Rpb24gS3VkKCl7dmFyIGEsYjtpZighdGhpcy5jKXt0aGlzLmM9bmV3IGJuYjtmb3IoYj1uZXcgaXMoTXIoekdkKFJEKHRoaXMuZiwyNykpLmEuS2MoKSxuZXcgaXIpKTtncyhiKTspe2E9UkQoaHMoYiksNzQpO1JtYih0aGlzLmMsbmV3IHd1ZChhKSl9fXJldHVybiB0aGlzLmN9O18uWWY9ZnVuY3Rpb24gTXVkKCl7cmV0dXJuIHRDZChSRCh0aGlzLmYsMjcpKS5pIT0wfHxIZWIoVEQoUkQodGhpcy5mLDI3KS5vZigodW1kKCksJGtkKSkpKX07Xy5fZj1mdW5jdGlvbiBQdWQoKXtFdWQodGhpcywobHVkKCksa3VkKSl9O18uYT1udWxsO18uYj1udWxsO18uYz1udWxsO18uZD1udWxsO18uZT1udWxsO3ZhciB6ND1zZmIodUhlLCdFbGtHcmFwaEFkYXB0ZXJzL0Vsa05vZGVBZGFwdGVyJyw2MzkpO2ZlYigxMjg0LDU2Mix7ODUyOjF9LFJ1ZCk7Xy5SZj1mdW5jdGlvbiBUdWQoKXtyZXR1cm4gUXVkKHRoaXMpfTtfLlVmPWZ1bmN0aW9uIFN1ZCgpe3ZhciBhLGI7aWYoIXRoaXMuYSl7dGhpcy5hPWV2KFJEKHRoaXMuZiwxMjMpLmhoKCkuaSk7Zm9yKGI9bmV3IGRNZChSRCh0aGlzLmYsMTIzKS5oaCgpKTtiLmUhPWIuaS5nYygpOyl7YT1SRChiTWQoYiksNzQpO1JtYih0aGlzLmEsbmV3IHd1ZChhKSl9fXJldHVybiB0aGlzLmF9O18uV2Y9ZnVuY3Rpb24gVXVkKCl7dmFyIGEsYjtpZighdGhpcy5jKXt0aGlzLmM9ZXYoUkQodGhpcy5mLDEyMykuaWgoKS5pKTtmb3IoYj1uZXcgZE1kKFJEKHRoaXMuZiwxMjMpLmloKCkpO2IuZSE9Yi5pLmdjKCk7KXthPVJEKGJNZChiKSw3NCk7Um1iKHRoaXMuYyxuZXcgd3VkKGEpKX19cmV0dXJuIHRoaXMuY307Xy5hZz1mdW5jdGlvbiBWdWQoKXtyZXR1cm4gUkQoUkQodGhpcy5mLDEyMykub2YoKHVtZCgpLE9sZCkpLDY0KX07Xy5iZz1mdW5jdGlvbiBXdWQoKXt2YXIgYSxiLGMsZCxlLGYsZyxoO2Q9TUNkKFJEKHRoaXMuZiwxMjMpKTtmb3IoYz1uZXcgZE1kKFJEKHRoaXMuZiwxMjMpLmloKCkpO2MuZSE9Yy5pLmdjKCk7KXthPVJEKGJNZChjKSw3NCk7Zm9yKGg9bmV3IGRNZCgoIWEuYyYmKGEuYz1uZXcgWWllKEU0LGEsNSw4KSksYS5jKSk7aC5lIT1oLmkuZ2MoKTspe2c9UkQoYk1kKGgpLDg0KTtpZihOR2QoQUdkKGcpLGQpKXtyZXR1cm4gdHJ1ZX1lbHNlIGlmKEFHZChnKT09ZCYmSGViKFREKEd4ZChhLCh1bWQoKSxfa2QpKSkpKXtyZXR1cm4gdHJ1ZX19fWZvcihiPW5ldyBkTWQoUkQodGhpcy5mLDEyMykuaGgoKSk7Yi5lIT1iLmkuZ2MoKTspe2E9UkQoYk1kKGIpLDc0KTtmb3IoZj1uZXcgZE1kKCghYS5iJiYoYS5iPW5ldyBZaWUoRTQsYSw0LDcpKSxhLmIpKTtmLmUhPWYuaS5nYygpOyl7ZT1SRChiTWQoZiksODQpO2lmKE5HZChBR2QoZSksZCkpe3JldHVybiB0cnVlfX19cmV0dXJuIGZhbHNlfTtfLmE9bnVsbDtfLmI9bnVsbDtfLmM9bnVsbDt2YXIgQTQ9c2ZiKHVIZSwnRWxrR3JhcGhBZGFwdGVycy9FbGtQb3J0QWRhcHRlcicsMTI4NCk7ZmViKDEyODUsMSxmeWUsWXVkKTtfLk5lPWZ1bmN0aW9uIFp1ZChhLGIpe3JldHVybiBYdWQoUkQoYSwxMjMpLFJEKGIsMTIzKSl9O18uRmI9ZnVuY3Rpb24gJHVkKGEpe3JldHVybiB0aGlzPT09YX07Xy5PZT1mdW5jdGlvbiBfdWQoKXtyZXR1cm4gbmV3IEZyYih0aGlzKX07dmFyIEI0PXNmYih1SGUsJ0Vsa0dyYXBoQWRhcHRlcnMvUG9ydENvbXBhcmF0b3InLDEyODUpO3ZhciByNz11ZmIodkhlLCdFT2JqZWN0Jyk7dmFyIEM0PXVmYih3SGUseEhlKTt2YXIgRDQ9dWZiKHdIZSx5SGUpO3ZhciBIND11ZmIod0hlLHpIZSk7dmFyIEw0PXVmYih3SGUsJ0Vsa1NoYXBlJyk7dmFyIEU0PXVmYih3SGUsQUhlKTt2YXIgRzQ9dWZiKHdIZSxCSGUpO3ZhciBGND11ZmIod0hlLENIZSk7dmFyIHA3PXVmYih2SGUsREhlKTt2YXIgbjc9dWZiKHZIZSwnRUZhY3RvcnknKTt2YXIgYXZkO3ZhciBxNz11ZmIodkhlLEVIZSk7dmFyIHQ3PXVmYih2SGUsJ0VQYWNrYWdlJyk7dmFyIGN2ZDt2YXIgZXZkLGZ2ZCxndmQsaHZkLGl2ZCxqdmQsa3ZkLGx2ZCxtdmQsbnZkLG92ZDt2YXIgSTQ9dWZiKHdIZSxGSGUpO3ZhciBKND11ZmIod0hlLEdIZSk7dmFyIEs0PXVmYih3SGUsSEhlKTtmZWIoOTMsMSxJSGUpO18udGg9ZnVuY3Rpb24gcnZkKCl7dGhpcy51aCgpO3JldHVybiBudWxsfTtfLnVoPWZ1bmN0aW9uIHN2ZCgpe3JldHVybiBudWxsfTtfLnZoPWZ1bmN0aW9uIHR2ZCgpe3JldHVybiB0aGlzLnVoKCksZmFsc2V9O18ud2g9ZnVuY3Rpb24gdXZkKCl7cmV0dXJuIGZhbHNlfTtfLnhoPWZ1bmN0aW9uIHZ2ZChhKXtxdmQodGhpcyxhKX07dmFyIGc2PXNmYihKSGUsJ0Jhc2ljTm90aWZpZXJJbXBsJyw5Myk7ZmViKDk5LDkzLFJIZSk7Xy5ZaD1mdW5jdGlvbiBEd2QoKXtyZXR1cm4gTXZkKHRoaXMpfTtfLnloPWZ1bmN0aW9uIGJ3ZChhLGIpe3JldHVybiBhfTtfLnpoPWZ1bmN0aW9uIGN3ZCgpe3Rocm93IEFkYihuZXcgamliKX07Xy5BaD1mdW5jdGlvbiBkd2QoYSl7dmFyIGI7cmV0dXJuIGI9WjVkKFJEKHZZZCh0aGlzLkRoKCksdGhpcy5GaCgpKSwxOSkpLHRoaXMuUGgoKS5UaCh0aGlzLGIubixiLmYsYSl9O18uQmg9ZnVuY3Rpb24gZXdkKGEsYil7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLkNoPWZ1bmN0aW9uIGZ3ZChhLGIsYyl7cmV0dXJuIHh2ZCh0aGlzLGEsYixjKX07Xy5EaD1mdW5jdGlvbiBnd2QoKXt2YXIgYTtpZih0aGlzLnpoKCkpe2E9dGhpcy56aCgpLk5rKCk7aWYoYSl7cmV0dXJuIGF9fXJldHVybiB0aGlzLmlpKCl9O18uRWg9ZnVuY3Rpb24gaHdkKCl7cmV0dXJuIHl2ZCh0aGlzKX07Xy5GaD1mdW5jdGlvbiBpd2QoKXt0aHJvdyBBZGIobmV3IGppYil9O18uR2g9ZnVuY3Rpb24ga3dkKCl7dmFyIGEsYjtiPXRoaXMuJGgoKS5PaygpOyFiJiZ0aGlzLnpoKCkuVGsoYj0oTjJkKCksYT1QJGQocllkKHRoaXMuRGgoKSkpLGE9PW51bGw/TTJkOm5ldyBRMmQodGhpcyxhKSkpO3JldHVybiBifTtfLkhoPWZ1bmN0aW9uIG13ZChhLGIpe3JldHVybiBhfTtfLkloPWZ1bmN0aW9uIG53ZChhKXt2YXIgYjtiPWEucGsoKTtyZXR1cm4gIWI/QllkKHRoaXMuRGgoKSxhKTphLkxqKCl9O18uSmg9ZnVuY3Rpb24gb3dkKCl7dmFyIGE7YT10aGlzLnpoKCk7cmV0dXJuICFhP251bGw6YS5RaygpfTtfLktoPWZ1bmN0aW9uIHB3ZCgpe3JldHVybiAhdGhpcy56aCgpP251bGw6dGhpcy56aCgpLk5rKCl9O18uTGg9ZnVuY3Rpb24gcXdkKGEsYixjKXtyZXR1cm4gRHZkKHRoaXMsYSxiLGMpfTtfLk1oPWZ1bmN0aW9uIHJ3ZChhKXtyZXR1cm4gRXZkKHRoaXMsYSl9O18uTmg9ZnVuY3Rpb24gc3dkKGEsYil7cmV0dXJuIEZ2ZCh0aGlzLGEsYil9O18uT2g9ZnVuY3Rpb24gdHdkKCl7dmFyIGE7YT10aGlzLnpoKCk7cmV0dXJuICEhYSYmYS5SaygpfTtfLlBoPWZ1bmN0aW9uIHV3ZCgpe3Rocm93IEFkYihuZXcgamliKX07Xy5RaD1mdW5jdGlvbiB2d2QoKXtyZXR1cm4gSHZkKHRoaXMpfTtfLlJoPWZ1bmN0aW9uIHd3ZChhLGIsYyxkKXtyZXR1cm4gSXZkKHRoaXMsYSxiLGQpfTtfLlNoPWZ1bmN0aW9uIHh3ZChhLGIsYyl7dmFyIGQ7cmV0dXJuIGQ9UkQodllkKHRoaXMuRGgoKSxiKSw2OSksZC53aygpLnprKHRoaXMsdGhpcy5oaSgpLGItdGhpcy5qaSgpLGEsYyl9O18uVGg9ZnVuY3Rpb24geXdkKGEsYixjLGQpe3JldHVybiBKdmQodGhpcyxhLGIsZCl9O18uVWg9ZnVuY3Rpb24gendkKGEsYixjKXt2YXIgZDtyZXR1cm4gZD1SRCh2WWQodGhpcy5EaCgpLGIpLDY5KSxkLndrKCkuQWsodGhpcyx0aGlzLmhpKCksYi10aGlzLmppKCksYSxjKX07Xy5WaD1mdW5jdGlvbiBBd2QoKXtyZXR1cm4gISF0aGlzLnpoKCkmJiEhdGhpcy56aCgpLlBrKCl9O18uV2g9ZnVuY3Rpb24gQndkKGEpe3JldHVybiBLdmQodGhpcyxhKX07Xy5YaD1mdW5jdGlvbiBDd2QoYSl7cmV0dXJuIEx2ZCh0aGlzLGEpfTtfLlpoPWZ1bmN0aW9uIEV3ZChhKXtyZXR1cm4gUHZkKHRoaXMsYSl9O18uJGg9ZnVuY3Rpb24gRndkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLl9oPWZ1bmN0aW9uIEd3ZCgpe3JldHVybiAhdGhpcy56aCgpP251bGw6dGhpcy56aCgpLlBrKCl9O18uYWk9ZnVuY3Rpb24gSHdkKCl7cmV0dXJuIEh2ZCh0aGlzKX07Xy5iaT1mdW5jdGlvbiBJd2QoYSxiKXtXdmQodGhpcyxhLGIpfTtfLmNpPWZ1bmN0aW9uIEp3ZChhKXt0aGlzLiRoKCkuU2soYSl9O18uZGk9ZnVuY3Rpb24gS3dkKGEpe3RoaXMuJGgoKS5WayhhKX07Xy5laT1mdW5jdGlvbiBMd2QoYSl7dGhpcy4kaCgpLlVrKGEpfTtfLmZpPWZ1bmN0aW9uIE13ZChhLGIpe3ZhciBjLGQsZSxmO2Y9dGhpcy5KaCgpO2lmKCEhZiYmISFhKXtiPXJMZChmLkVsKCksdGhpcyxiKTtmLklsKHRoaXMpfWQ9dGhpcy5QaCgpO2lmKGQpe2lmKChqd2QodGhpcyx0aGlzLlBoKCksdGhpcy5GaCgpKS5CYiZ0eGUpIT0wKXtlPWQuUWgoKTshIWUmJighYT9lLkhsKHRoaXMpOiFmJiZlLklsKHRoaXMpKX1lbHNle2I9KGM9dGhpcy5GaCgpLGM+PTA/dGhpcy5BaChiKTp0aGlzLlBoKCkuVGgodGhpcywtMS1jLG51bGwsYikpO2I9dGhpcy5DaChudWxsLC0xLGIpfX10aGlzLmRpKGEpO3JldHVybiBifTtfLmdpPWZ1bmN0aW9uIE53ZChhKXt2YXIgYixjLGQsZSxmLGcsaCxpO2M9dGhpcy5EaCgpO2Y9QllkKGMsYSk7Yj10aGlzLmppKCk7aWYoZj49Yil7cmV0dXJuIFJEKGEsNjkpLndrKCkuRGsodGhpcyx0aGlzLmhpKCksZi1iKX1lbHNlIGlmKGY8PS0xKXtnPUVlZSgobGtlKCksamtlKSxjLGEpO2lmKGcpe25rZSgpO1JEKGcsNjkpLnhrKCl8fChnPXpmZShRZWUoamtlLGcpKSk7ZT0oZD10aGlzLkloKGcpLFJEKGQ+PTA/dGhpcy5MaChkLHRydWUsdHJ1ZSk6UXZkKHRoaXMsZyx0cnVlKSwxNjApKTtpPWcuSWsoKTtpZihpPjF8fGk9PS0xKXtyZXR1cm4gUkQoUkQoZSwyMjApLlNsKGEsZmFsc2UpLDc5KX19ZWxzZXt0aHJvdyBBZGIobmV3IGFnYihLSGUrYS54ZSgpK05IZSkpfX1lbHNlIGlmKGEuSmsoKSl7cmV0dXJuIGQ9dGhpcy5JaChhKSxSRChkPj0wP3RoaXMuTGgoZCxmYWxzZSx0cnVlKTpRdmQodGhpcyxhLGZhbHNlKSw3OSl9aD1uZXcgTlRkKHRoaXMsYSk7cmV0dXJuIGh9O18uaGk9ZnVuY3Rpb24gT3dkKCl7cmV0dXJuIFl2ZCh0aGlzKX07Xy5paT1mdW5jdGlvbiBQd2QoKXtyZXR1cm4gKGxUZCgpLGtUZCkuU307Xy5qaT1mdW5jdGlvbiBRd2QoKXtyZXR1cm4gQVlkKHRoaXMuaWkoKSl9O18ua2k9ZnVuY3Rpb24gUndkKGEpeyR2ZCh0aGlzLGEpfTtfLkliPWZ1bmN0aW9uIFN3ZCgpe3JldHVybiBhd2QodGhpcyl9O3ZhciBHNz1zZmIoU0hlLCdCYXNpY0VPYmplY3RJbXBsJyw5OSk7dmFyIFpTZDtmZWIoMTE5LDk5LHsxMTA6MSw5NDoxLDkzOjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMTE5OjF9KTtfLmxpPWZ1bmN0aW9uIF93ZChhKXt2YXIgYjtiPVZ3ZCh0aGlzKTtyZXR1cm4gYlthXX07Xy5taT1mdW5jdGlvbiBheGQoYSxiKXt2YXIgYztjPVZ3ZCh0aGlzKTtiRChjLGEsYil9O18ubmk9ZnVuY3Rpb24gYnhkKGEpe3ZhciBiO2I9VndkKHRoaXMpO2JEKGIsYSxudWxsKX07Xy50aD1mdW5jdGlvbiBjeGQoKXtyZXR1cm4gUkQoWXdkKHRoaXMsNCksMTI5KX07Xy51aD1mdW5jdGlvbiBkeGQoKXt0aHJvdyBBZGIobmV3IGppYil9O18udmg9ZnVuY3Rpb24gZXhkKCl7cmV0dXJuICh0aGlzLkRiJjQpIT0wfTtfLnpoPWZ1bmN0aW9uIGZ4ZCgpe3Rocm93IEFkYihuZXcgamliKX07Xy5vaT1mdW5jdGlvbiBneGQoYSl7JHdkKHRoaXMsMixhKX07Xy5CaD1mdW5jdGlvbiBoeGQoYSxiKXt0aGlzLkRiPWI8PDE2fHRoaXMuRGImMjU1O3RoaXMub2koYSl9O18uRGg9ZnVuY3Rpb24gaXhkKCl7cmV0dXJuIFV3ZCh0aGlzKX07Xy5GaD1mdW5jdGlvbiBqeGQoKXtyZXR1cm4gdGhpcy5EYj4+MTZ9O18uR2g9ZnVuY3Rpb24ga3hkKCl7dmFyIGEsYjtyZXR1cm4gTjJkKCksYj1QJGQocllkKChhPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWE/dGhpcy5paSgpOmEpKSksYj09bnVsbD8obnVsbCxNMmQpOm5ldyBRMmQodGhpcyxiKX07Xy53aD1mdW5jdGlvbiBseGQoKXtyZXR1cm4gKHRoaXMuRGImMSk9PTB9O18uSmg9ZnVuY3Rpb24gbXhkKCl7cmV0dXJuIFJEKFl3ZCh0aGlzLDEyOCksMjAzNCl9O18uS2g9ZnVuY3Rpb24gbnhkKCl7cmV0dXJuIFJEKFl3ZCh0aGlzLDE2KSwyOSl9O18uT2g9ZnVuY3Rpb24gb3hkKCl7cmV0dXJuICh0aGlzLkRiJjMyKSE9MH07Xy5QaD1mdW5jdGlvbiBweGQoKXtyZXR1cm4gUkQoWXdkKHRoaXMsMiksNTQpfTtfLlZoPWZ1bmN0aW9uIHF4ZCgpe3JldHVybiAodGhpcy5EYiY2NCkhPTB9O18uJGg9ZnVuY3Rpb24gcnhkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLl9oPWZ1bmN0aW9uIHN4ZCgpe3JldHVybiBSRChZd2QodGhpcyw2NCksMjg4KX07Xy5jaT1mdW5jdGlvbiB0eGQoYSl7JHdkKHRoaXMsMTYsYSl9O18uZGk9ZnVuY3Rpb24gdXhkKGEpeyR3ZCh0aGlzLDEyOCxhKX07Xy5laT1mdW5jdGlvbiB2eGQoYSl7JHdkKHRoaXMsNjQsYSl9O18uaGk9ZnVuY3Rpb24gd3hkKCl7cmV0dXJuIFd3ZCh0aGlzKX07Xy5EYj0wO3ZhciB4YWI9c2ZiKFNIZSwnTWluaW1hbEVPYmplY3RJbXBsJywxMTkpO2ZlYigxMjAsMTE5LHsxMTA6MSw5NDoxLDkzOjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMTE5OjEsMTIwOjF9KTtfLm9pPWZ1bmN0aW9uIHh4ZChhKXt0aGlzLkNiPWF9O18uUGg9ZnVuY3Rpb24geXhkKCl7cmV0dXJuIHRoaXMuQ2J9O3ZhciB3YWI9c2ZiKFNIZSwnTWluaW1hbEVPYmplY3RJbXBsL0NvbnRhaW5lcicsMTIwKTtmZWIoMjA4MywxMjAsezExMDoxLDM0MjoxLDk2OjEsOTQ6MSw5MzoxLDU4OjEsMTE0OjEsNTQ6MSw5OToxLDExOToxLDEyMDoxfSk7Xy5MaD1mdW5jdGlvbiBKeGQoYSxiLGMpe3JldHVybiBBeGQodGhpcyxhLGIsYyl9O18uVWg9ZnVuY3Rpb24gS3hkKGEsYixjKXtyZXR1cm4gQnhkKHRoaXMsYSxiLGMpfTtfLldoPWZ1bmN0aW9uIEx4ZChhKXtyZXR1cm4gQ3hkKHRoaXMsYSl9O18uYmk9ZnVuY3Rpb24gTXhkKGEsYil7RHhkKHRoaXMsYSxiKX07Xy5paT1mdW5jdGlvbiBOeGQoKXtyZXR1cm4gcHZkKCksb3ZkfTtfLmtpPWZ1bmN0aW9uIE94ZChhKXtFeGQodGhpcyxhKX07Xy5uZj1mdW5jdGlvbiBQeGQoKXtyZXR1cm4gRnhkKHRoaXMpfTtfLmdoPWZ1bmN0aW9uIFF4ZCgpe3JldHVybiAhdGhpcy5vJiYodGhpcy5vPW5ldyBEVmQoKHB2ZCgpLG12ZCksWDQsdGhpcywwKSksdGhpcy5vfTtfLm9mPWZ1bmN0aW9uIFJ4ZChhKXtyZXR1cm4gR3hkKHRoaXMsYSl9O18ucGY9ZnVuY3Rpb24gU3hkKGEpe3JldHVybiBIeGQodGhpcyxhKX07Xy5xZj1mdW5jdGlvbiBUeGQoYSxiKXtyZXR1cm4gSXhkKHRoaXMsYSxiKX07dmFyIE00PXNmYihUSGUsJ0VNYXBQcm9wZXJ0eUhvbGRlckltcGwnLDIwODMpO2ZlYig1NzIsMTIwLHsxMTA6MSwzNzc6MSw5NDoxLDkzOjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMTE5OjEsMTIwOjF9LFh4ZCk7Xy5MaD1mdW5jdGlvbiBZeGQoYSxiLGMpe3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuIHRoaXMuYTtjYXNlIDE6cmV0dXJuIHRoaXMuYjt9cmV0dXJuIER2ZCh0aGlzLGEsYixjKX07Xy5XaD1mdW5jdGlvbiBaeGQoYSl7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4gdGhpcy5hIT0wO2Nhc2UgMTpyZXR1cm4gdGhpcy5iIT0wO31yZXR1cm4gS3ZkKHRoaXMsYSl9O18uYmk9ZnVuY3Rpb24gJHhkKGEsYil7c3dpdGNoKGEpe2Nhc2UgMDpWeGQodGhpcyxLZmIoVUQoYikpKTtyZXR1cm47Y2FzZSAxOld4ZCh0aGlzLEtmYihVRChiKSkpO3JldHVybjt9V3ZkKHRoaXMsYSxiKX07Xy5paT1mdW5jdGlvbiBfeGQoKXtyZXR1cm4gcHZkKCksZXZkfTtfLmtpPWZ1bmN0aW9uIGF5ZChhKXtzd2l0Y2goYSl7Y2FzZSAwOlZ4ZCh0aGlzLDApO3JldHVybjtjYXNlIDE6V3hkKHRoaXMsMCk7cmV0dXJuO30kdmQodGhpcyxhKX07Xy5JYj1mdW5jdGlvbiBieWQoKXt2YXIgYTtpZigodGhpcy5EYiY2NCkhPTApcmV0dXJuIGF3ZCh0aGlzKTthPW5ldyBTaGIoYXdkKHRoaXMpKTthLmErPScgKHg6ICc7S2hiKGEsdGhpcy5hKTthLmErPScsIHk6ICc7S2hiKGEsdGhpcy5iKTthLmErPScpJztyZXR1cm4gYS5hfTtfLmE9MDtfLmI9MDt2YXIgTjQ9c2ZiKFRIZSwnRWxrQmVuZFBvaW50SW1wbCcsNTcyKTtmZWIoNzM5LDIwODMsezExMDoxLDM0MjoxLDE2NzoxLDk2OjEsOTQ6MSw5MzoxLDU4OjEsMTE0OjEsNTQ6MSw5OToxLDExOToxLDEyMDoxfSk7Xy5MaD1mdW5jdGlvbiBseWQoYSxiLGMpe3JldHVybiBjeWQodGhpcyxhLGIsYyl9O18uU2g9ZnVuY3Rpb24gbXlkKGEsYixjKXtyZXR1cm4gZHlkKHRoaXMsYSxiLGMpfTtfLlVoPWZ1bmN0aW9uIG55ZChhLGIsYyl7cmV0dXJuIGV5ZCh0aGlzLGEsYixjKX07Xy5XaD1mdW5jdGlvbiBveWQoYSl7cmV0dXJuIGZ5ZCh0aGlzLGEpfTtfLmJpPWZ1bmN0aW9uIHB5ZChhLGIpe2d5ZCh0aGlzLGEsYil9O18uaWk9ZnVuY3Rpb24gcXlkKCl7cmV0dXJuIHB2ZCgpLGl2ZH07Xy5raT1mdW5jdGlvbiByeWQoYSl7aHlkKHRoaXMsYSl9O18uamg9ZnVuY3Rpb24gc3lkKCl7cmV0dXJuIHRoaXMua307Xy5raD1mdW5jdGlvbiB0eWQoKXtyZXR1cm4gaXlkKHRoaXMpfTtfLkliPWZ1bmN0aW9uIHV5ZCgpe3JldHVybiBreWQodGhpcyl9O18uaz1udWxsO3ZhciBSND1zZmIoVEhlLCdFbGtHcmFwaEVsZW1lbnRJbXBsJyw3MzkpO2ZlYig3NDAsNzM5LHsxMTA6MSwzNDI6MSwxNjc6MSw0MjI6MSw5NjoxLDk0OjEsOTM6MSw1ODoxLDExNDoxLDU0OjEsOTk6MSwxMTk6MSwxMjA6MX0pO18uTGg9ZnVuY3Rpb24gR3lkKGEsYixjKXtyZXR1cm4gdnlkKHRoaXMsYSxiLGMpfTtfLldoPWZ1bmN0aW9uIEh5ZChhKXtyZXR1cm4gd3lkKHRoaXMsYSl9O18uYmk9ZnVuY3Rpb24gSXlkKGEsYil7eHlkKHRoaXMsYSxiKX07Xy5paT1mdW5jdGlvbiBKeWQoKXtyZXR1cm4gcHZkKCksbnZkfTtfLmtpPWZ1bmN0aW9uIEt5ZChhKXt5eWQodGhpcyxhKX07Xy5saD1mdW5jdGlvbiBMeWQoKXtyZXR1cm4gdGhpcy5mfTtfLm1oPWZ1bmN0aW9uIE15ZCgpe3JldHVybiB0aGlzLmd9O18ubmg9ZnVuY3Rpb24gTnlkKCl7cmV0dXJuIHRoaXMuaX07Xy5vaD1mdW5jdGlvbiBPeWQoKXtyZXR1cm4gdGhpcy5qfTtfLnBoPWZ1bmN0aW9uIFB5ZChhLGIpe3p5ZCh0aGlzLGEsYil9O18ucWg9ZnVuY3Rpb24gUXlkKGEsYil7QnlkKHRoaXMsYSxiKX07Xy5yaD1mdW5jdGlvbiBSeWQoYSl7RHlkKHRoaXMsYSl9O18uc2g9ZnVuY3Rpb24gU3lkKGEpe0V5ZCh0aGlzLGEpfTtfLkliPWZ1bmN0aW9uIFR5ZCgpe3JldHVybiBGeWQodGhpcyl9O18uZj0wO18uZz0wO18uaT0wO18uaj0wO3ZhciBZND1zZmIoVEhlLCdFbGtTaGFwZUltcGwnLDc0MCk7ZmViKDc0MSw3NDAsezExMDoxLDM0MjoxLDg0OjEsMTY3OjEsNDIyOjEsOTY6MSw5NDoxLDkzOjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMTE5OjEsMTIwOjF9KTtfLkxoPWZ1bmN0aW9uIF95ZChhLGIsYyl7cmV0dXJuIFV5ZCh0aGlzLGEsYixjKX07Xy5TaD1mdW5jdGlvbiBhemQoYSxiLGMpe3JldHVybiBWeWQodGhpcyxhLGIsYyl9O18uVWg9ZnVuY3Rpb24gYnpkKGEsYixjKXtyZXR1cm4gV3lkKHRoaXMsYSxiLGMpfTtfLldoPWZ1bmN0aW9uIGN6ZChhKXtyZXR1cm4gWHlkKHRoaXMsYSl9O18uYmk9ZnVuY3Rpb24gZHpkKGEsYil7WXlkKHRoaXMsYSxiKX07Xy5paT1mdW5jdGlvbiBlemQoKXtyZXR1cm4gcHZkKCksZnZkfTtfLmtpPWZ1bmN0aW9uIGZ6ZChhKXtaeWQodGhpcyxhKX07Xy5oaD1mdW5jdGlvbiBnemQoKXtyZXR1cm4gIXRoaXMuZCYmKHRoaXMuZD1uZXcgWWllKEc0LHRoaXMsOCw1KSksdGhpcy5kfTtfLmloPWZ1bmN0aW9uIGh6ZCgpe3JldHVybiAhdGhpcy5lJiYodGhpcy5lPW5ldyBZaWUoRzQsdGhpcyw3LDQpKSx0aGlzLmV9O3ZhciBPND1zZmIoVEhlLCdFbGtDb25uZWN0YWJsZVNoYXBlSW1wbCcsNzQxKTtmZWIoMzI2LDczOSx7MTEwOjEsMzQyOjEsNzQ6MSwxNjc6MSwzMjY6MSw5NjoxLDk0OjEsOTM6MSw1ODoxLDExNDoxLDU0OjEsOTk6MSwxMTk6MSwxMjA6MX0scnpkKTtfLkFoPWZ1bmN0aW9uIHN6ZChhKXtyZXR1cm4ganpkKHRoaXMsYSl9O18uTGg9ZnVuY3Rpb24gdHpkKGEsYixjKXtzd2l0Y2goYSl7Y2FzZSAzOnJldHVybiBremQodGhpcyk7Y2FzZSA0OnJldHVybiAhdGhpcy5iJiYodGhpcy5iPW5ldyBZaWUoRTQsdGhpcyw0LDcpKSx0aGlzLmI7Y2FzZSA1OnJldHVybiAhdGhpcy5jJiYodGhpcy5jPW5ldyBZaWUoRTQsdGhpcyw1LDgpKSx0aGlzLmM7Y2FzZSA2OnJldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyBDNWQoRjQsdGhpcyw2LDYpKSx0aGlzLmE7Y2FzZSA3OnJldHVybiBHZWIoKSwhdGhpcy5iJiYodGhpcy5iPW5ldyBZaWUoRTQsdGhpcyw0LDcpKSx0aGlzLmIuaTw9MSYmKCF0aGlzLmMmJih0aGlzLmM9bmV3IFlpZShFNCx0aGlzLDUsOCkpLHRoaXMuYy5pPD0xKT9mYWxzZTp0cnVlO2Nhc2UgODpyZXR1cm4gR2ViKCksbnpkKHRoaXMpP3RydWU6ZmFsc2U7Y2FzZSA5OnJldHVybiBHZWIoKSxvemQodGhpcyk/dHJ1ZTpmYWxzZTtjYXNlIDEwOnJldHVybiBHZWIoKSwhdGhpcy5iJiYodGhpcy5iPW5ldyBZaWUoRTQsdGhpcyw0LDcpKSx0aGlzLmIuaSE9MCYmKCF0aGlzLmMmJih0aGlzLmM9bmV3IFlpZShFNCx0aGlzLDUsOCkpLHRoaXMuYy5pIT0wKT90cnVlOmZhbHNlO31yZXR1cm4gY3lkKHRoaXMsYSxiLGMpfTtfLlNoPWZ1bmN0aW9uIHV6ZChhLGIsYyl7dmFyIGQ7c3dpdGNoKGIpe2Nhc2UgMzohIXRoaXMuQ2ImJihjPShkPXRoaXMuRGI+PjE2LGQ+PTA/anpkKHRoaXMsYyk6dGhpcy5DYi5UaCh0aGlzLC0xLWQsbnVsbCxjKSkpO3JldHVybiBpemQodGhpcyxSRChhLDI3KSxjKTtjYXNlIDQ6cmV0dXJuICF0aGlzLmImJih0aGlzLmI9bmV3IFlpZShFNCx0aGlzLDQsNykpLHFMZCh0aGlzLmIsYSxjKTtjYXNlIDU6cmV0dXJuICF0aGlzLmMmJih0aGlzLmM9bmV3IFlpZShFNCx0aGlzLDUsOCkpLHFMZCh0aGlzLmMsYSxjKTtjYXNlIDY6cmV0dXJuICF0aGlzLmEmJih0aGlzLmE9bmV3IEM1ZChGNCx0aGlzLDYsNikpLHFMZCh0aGlzLmEsYSxjKTt9cmV0dXJuIGR5ZCh0aGlzLGEsYixjKX07Xy5VaD1mdW5jdGlvbiB2emQoYSxiLGMpe3N3aXRjaChiKXtjYXNlIDM6cmV0dXJuIGl6ZCh0aGlzLG51bGwsYyk7Y2FzZSA0OnJldHVybiAhdGhpcy5iJiYodGhpcy5iPW5ldyBZaWUoRTQsdGhpcyw0LDcpKSxyTGQodGhpcy5iLGEsYyk7Y2FzZSA1OnJldHVybiAhdGhpcy5jJiYodGhpcy5jPW5ldyBZaWUoRTQsdGhpcyw1LDgpKSxyTGQodGhpcy5jLGEsYyk7Y2FzZSA2OnJldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyBDNWQoRjQsdGhpcyw2LDYpKSxyTGQodGhpcy5hLGEsYyk7fXJldHVybiBleWQodGhpcyxhLGIsYyl9O18uV2g9ZnVuY3Rpb24gd3pkKGEpe3N3aXRjaChhKXtjYXNlIDM6cmV0dXJuICEha3pkKHRoaXMpO2Nhc2UgNDpyZXR1cm4gISF0aGlzLmImJnRoaXMuYi5pIT0wO2Nhc2UgNTpyZXR1cm4gISF0aGlzLmMmJnRoaXMuYy5pIT0wO2Nhc2UgNjpyZXR1cm4gISF0aGlzLmEmJnRoaXMuYS5pIT0wO2Nhc2UgNzpyZXR1cm4gIXRoaXMuYiYmKHRoaXMuYj1uZXcgWWllKEU0LHRoaXMsNCw3KSksISh0aGlzLmIuaTw9MSYmKCF0aGlzLmMmJih0aGlzLmM9bmV3IFlpZShFNCx0aGlzLDUsOCkpLHRoaXMuYy5pPD0xKSk7Y2FzZSA4OnJldHVybiBuemQodGhpcyk7Y2FzZSA5OnJldHVybiBvemQodGhpcyk7Y2FzZSAxMDpyZXR1cm4gIXRoaXMuYiYmKHRoaXMuYj1uZXcgWWllKEU0LHRoaXMsNCw3KSksdGhpcy5iLmkhPTAmJighdGhpcy5jJiYodGhpcy5jPW5ldyBZaWUoRTQsdGhpcyw1LDgpKSx0aGlzLmMuaSE9MCk7fXJldHVybiBmeWQodGhpcyxhKX07Xy5iaT1mdW5jdGlvbiB4emQoYSxiKXtzd2l0Y2goYSl7Y2FzZSAzOnB6ZCh0aGlzLFJEKGIsMjcpKTtyZXR1cm47Y2FzZSA0OiF0aGlzLmImJih0aGlzLmI9bmV3IFlpZShFNCx0aGlzLDQsNykpO3NMZCh0aGlzLmIpOyF0aGlzLmImJih0aGlzLmI9bmV3IFlpZShFNCx0aGlzLDQsNykpO1lHZCh0aGlzLmIsUkQoYiwxNikpO3JldHVybjtjYXNlIDU6IXRoaXMuYyYmKHRoaXMuYz1uZXcgWWllKEU0LHRoaXMsNSw4KSk7c0xkKHRoaXMuYyk7IXRoaXMuYyYmKHRoaXMuYz1uZXcgWWllKEU0LHRoaXMsNSw4KSk7WUdkKHRoaXMuYyxSRChiLDE2KSk7cmV0dXJuO2Nhc2UgNjohdGhpcy5hJiYodGhpcy5hPW5ldyBDNWQoRjQsdGhpcyw2LDYpKTtzTGQodGhpcy5hKTshdGhpcy5hJiYodGhpcy5hPW5ldyBDNWQoRjQsdGhpcyw2LDYpKTtZR2QodGhpcy5hLFJEKGIsMTYpKTtyZXR1cm47fWd5ZCh0aGlzLGEsYil9O18uaWk9ZnVuY3Rpb24geXpkKCl7cmV0dXJuIHB2ZCgpLGd2ZH07Xy5raT1mdW5jdGlvbiB6emQoYSl7c3dpdGNoKGEpe2Nhc2UgMzpwemQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSA0OiF0aGlzLmImJih0aGlzLmI9bmV3IFlpZShFNCx0aGlzLDQsNykpO3NMZCh0aGlzLmIpO3JldHVybjtjYXNlIDU6IXRoaXMuYyYmKHRoaXMuYz1uZXcgWWllKEU0LHRoaXMsNSw4KSk7c0xkKHRoaXMuYyk7cmV0dXJuO2Nhc2UgNjohdGhpcy5hJiYodGhpcy5hPW5ldyBDNWQoRjQsdGhpcyw2LDYpKTtzTGQodGhpcy5hKTtyZXR1cm47fWh5ZCh0aGlzLGEpfTtfLkliPWZ1bmN0aW9uIEF6ZCgpe3JldHVybiBxemQodGhpcyl9O3ZhciBQND1zZmIoVEhlLCdFbGtFZGdlSW1wbCcsMzI2KTtmZWIoNDUyLDIwODMsezExMDoxLDM0MjoxLDE2NjoxLDQ1MjoxLDk2OjEsOTQ6MSw5MzoxLDU4OjEsMTE0OjEsNTQ6MSw5OToxLDExOToxLDEyMDoxfSxSemQpO18uQWg9ZnVuY3Rpb24gU3pkKGEpe3JldHVybiBDemQodGhpcyxhKX07Xy5MaD1mdW5jdGlvbiBUemQoYSxiLGMpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIHRoaXMuajtjYXNlIDI6cmV0dXJuIHRoaXMuaztjYXNlIDM6cmV0dXJuIHRoaXMuYjtjYXNlIDQ6cmV0dXJuIHRoaXMuYztjYXNlIDU6cmV0dXJuICF0aGlzLmEmJih0aGlzLmE9bmV3IFhaZChENCx0aGlzLDUpKSx0aGlzLmE7Y2FzZSA2OnJldHVybiBGemQodGhpcyk7Y2FzZSA3OmlmKGIpcmV0dXJuIEV6ZCh0aGlzKTtyZXR1cm4gdGhpcy5pO2Nhc2UgODppZihiKXJldHVybiBEemQodGhpcyk7cmV0dXJuIHRoaXMuZjtjYXNlIDk6cmV0dXJuICF0aGlzLmcmJih0aGlzLmc9bmV3IFlpZShGNCx0aGlzLDksMTApKSx0aGlzLmc7Y2FzZSAxMDpyZXR1cm4gIXRoaXMuZSYmKHRoaXMuZT1uZXcgWWllKEY0LHRoaXMsMTAsOSkpLHRoaXMuZTtjYXNlIDExOnJldHVybiB0aGlzLmQ7fXJldHVybiBBeGQodGhpcyxhLGIsYyl9O18uU2g9ZnVuY3Rpb24gVXpkKGEsYixjKXt2YXIgZCxlLGY7c3dpdGNoKGIpe2Nhc2UgNjohIXRoaXMuQ2ImJihjPShlPXRoaXMuRGI+PjE2LGU+PTA/Q3pkKHRoaXMsYyk6dGhpcy5DYi5UaCh0aGlzLC0xLWUsbnVsbCxjKSkpO3JldHVybiBCemQodGhpcyxSRChhLDc0KSxjKTtjYXNlIDk6cmV0dXJuICF0aGlzLmcmJih0aGlzLmc9bmV3IFlpZShGNCx0aGlzLDksMTApKSxxTGQodGhpcy5nLGEsYyk7Y2FzZSAxMDpyZXR1cm4gIXRoaXMuZSYmKHRoaXMuZT1uZXcgWWllKEY0LHRoaXMsMTAsOSkpLHFMZCh0aGlzLmUsYSxjKTt9cmV0dXJuIGY9UkQodllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/KHB2ZCgpLGh2ZCk6ZCksYiksNjkpLGYud2soKS56ayh0aGlzLFd3ZCh0aGlzKSxiLUFZZCgocHZkKCksaHZkKSksYSxjKX07Xy5VaD1mdW5jdGlvbiBWemQoYSxiLGMpe3N3aXRjaChiKXtjYXNlIDU6cmV0dXJuICF0aGlzLmEmJih0aGlzLmE9bmV3IFhaZChENCx0aGlzLDUpKSxyTGQodGhpcy5hLGEsYyk7Y2FzZSA2OnJldHVybiBCemQodGhpcyxudWxsLGMpO2Nhc2UgOTpyZXR1cm4gIXRoaXMuZyYmKHRoaXMuZz1uZXcgWWllKEY0LHRoaXMsOSwxMCkpLHJMZCh0aGlzLmcsYSxjKTtjYXNlIDEwOnJldHVybiAhdGhpcy5lJiYodGhpcy5lPW5ldyBZaWUoRjQsdGhpcywxMCw5KSksckxkKHRoaXMuZSxhLGMpO31yZXR1cm4gQnhkKHRoaXMsYSxiLGMpfTtfLldoPWZ1bmN0aW9uIFd6ZChhKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiB0aGlzLmohPTA7Y2FzZSAyOnJldHVybiB0aGlzLmshPTA7Y2FzZSAzOnJldHVybiB0aGlzLmIhPTA7Y2FzZSA0OnJldHVybiB0aGlzLmMhPTA7Y2FzZSA1OnJldHVybiAhIXRoaXMuYSYmdGhpcy5hLmkhPTA7Y2FzZSA2OnJldHVybiAhIUZ6ZCh0aGlzKTtjYXNlIDc6cmV0dXJuICEhdGhpcy5pO2Nhc2UgODpyZXR1cm4gISF0aGlzLmY7Y2FzZSA5OnJldHVybiAhIXRoaXMuZyYmdGhpcy5nLmkhPTA7Y2FzZSAxMDpyZXR1cm4gISF0aGlzLmUmJnRoaXMuZS5pIT0wO2Nhc2UgMTE6cmV0dXJuIHRoaXMuZCE9bnVsbDt9cmV0dXJuIEN4ZCh0aGlzLGEpfTtfLmJpPWZ1bmN0aW9uIFh6ZChhLGIpe3N3aXRjaChhKXtjYXNlIDE6T3pkKHRoaXMsS2ZiKFVEKGIpKSk7cmV0dXJuO2Nhc2UgMjpQemQodGhpcyxLZmIoVUQoYikpKTtyZXR1cm47Y2FzZSAzOkh6ZCh0aGlzLEtmYihVRChiKSkpO3JldHVybjtjYXNlIDQ6SXpkKHRoaXMsS2ZiKFVEKGIpKSk7cmV0dXJuO2Nhc2UgNTohdGhpcy5hJiYodGhpcy5hPW5ldyBYWmQoRDQsdGhpcyw1KSk7c0xkKHRoaXMuYSk7IXRoaXMuYSYmKHRoaXMuYT1uZXcgWFpkKEQ0LHRoaXMsNSkpO1lHZCh0aGlzLmEsUkQoYiwxNikpO3JldHVybjtjYXNlIDY6TXpkKHRoaXMsUkQoYiw3NCkpO3JldHVybjtjYXNlIDc6THpkKHRoaXMsUkQoYiw4NCkpO3JldHVybjtjYXNlIDg6S3pkKHRoaXMsUkQoYiw4NCkpO3JldHVybjtjYXNlIDk6IXRoaXMuZyYmKHRoaXMuZz1uZXcgWWllKEY0LHRoaXMsOSwxMCkpO3NMZCh0aGlzLmcpOyF0aGlzLmcmJih0aGlzLmc9bmV3IFlpZShGNCx0aGlzLDksMTApKTtZR2QodGhpcy5nLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAxMDohdGhpcy5lJiYodGhpcy5lPW5ldyBZaWUoRjQsdGhpcywxMCw5KSk7c0xkKHRoaXMuZSk7IXRoaXMuZSYmKHRoaXMuZT1uZXcgWWllKEY0LHRoaXMsMTAsOSkpO1lHZCh0aGlzLmUsUkQoYiwxNikpO3JldHVybjtjYXNlIDExOkp6ZCh0aGlzLFdEKGIpKTtyZXR1cm47fUR4ZCh0aGlzLGEsYil9O18uaWk9ZnVuY3Rpb24gWXpkKCl7cmV0dXJuIHB2ZCgpLGh2ZH07Xy5raT1mdW5jdGlvbiBaemQoYSl7c3dpdGNoKGEpe2Nhc2UgMTpPemQodGhpcywwKTtyZXR1cm47Y2FzZSAyOlB6ZCh0aGlzLDApO3JldHVybjtjYXNlIDM6SHpkKHRoaXMsMCk7cmV0dXJuO2Nhc2UgNDpJemQodGhpcywwKTtyZXR1cm47Y2FzZSA1OiF0aGlzLmEmJih0aGlzLmE9bmV3IFhaZChENCx0aGlzLDUpKTtzTGQodGhpcy5hKTtyZXR1cm47Y2FzZSA2Ok16ZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDc6THpkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgODpLemQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSA5OiF0aGlzLmcmJih0aGlzLmc9bmV3IFlpZShGNCx0aGlzLDksMTApKTtzTGQodGhpcy5nKTtyZXR1cm47Y2FzZSAxMDohdGhpcy5lJiYodGhpcy5lPW5ldyBZaWUoRjQsdGhpcywxMCw5KSk7c0xkKHRoaXMuZSk7cmV0dXJuO2Nhc2UgMTE6SnpkKHRoaXMsbnVsbCk7cmV0dXJuO31FeGQodGhpcyxhKX07Xy5JYj1mdW5jdGlvbiAkemQoKXtyZXR1cm4gUXpkKHRoaXMpfTtfLmI9MDtfLmM9MDtfLmQ9bnVsbDtfLmo9MDtfLms9MDt2YXIgUTQ9c2ZiKFRIZSwnRWxrRWRnZVNlY3Rpb25JbXBsJyw0NTIpO2ZlYigxNTgsMTIwLHsxMTA6MSw5NDoxLDkzOjEsMTU1OjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMTU4OjEsMTE5OjEsMTIwOjF9KTtfLkxoPWZ1bmN0aW9uIGNBZChhLGIsYyl7dmFyIGQ7aWYoYT09MCl7cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksdGhpcy5BYn1yZXR1cm4genZkKHRoaXMsYS1BWWQodGhpcy5paSgpKSx2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD90aGlzLmlpKCk6ZCksYSksYixjKX07Xy5TaD1mdW5jdGlvbiBkQWQoYSxiLGMpe3ZhciBkLGU7aWYoYj09MCl7cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSkscUxkKHRoaXMuQWIsYSxjKX1yZXR1cm4gZT1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD90aGlzLmlpKCk6ZCksYiksNjkpLGUud2soKS56ayh0aGlzLFd3ZCh0aGlzKSxiLUFZZCh0aGlzLmlpKCkpLGEsYyl9O18uVWg9ZnVuY3Rpb24gZUFkKGEsYixjKXt2YXIgZCxlO2lmKGI9PTApe3JldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHJMZCh0aGlzLkFiLGEsYyl9cmV0dXJuIGU9UkQodllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/dGhpcy5paSgpOmQpLGIpLDY5KSxlLndrKCkuQWsodGhpcyxXd2QodGhpcyksYi1BWWQodGhpcy5paSgpKSxhLGMpfTtfLldoPWZ1bmN0aW9uIGZBZChhKXt2YXIgYjtpZihhPT0wKXtyZXR1cm4gISF0aGlzLkFiJiZ0aGlzLkFiLmkhPTB9cmV0dXJuIEF2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/dGhpcy5paSgpOmIpLGEpKX07Xy5aaD1mdW5jdGlvbiBnQWQoYSl7cmV0dXJuIF96ZCh0aGlzLGEpfTtfLmJpPWZ1bmN0aW9uIGhBZChhLGIpe3ZhciBjO3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtzTGQodGhpcy5BYik7IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtZR2QodGhpcy5BYixSRChiLDE2KSk7cmV0dXJuO31CdmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgoYz1SRChZd2QodGhpcywxNiksMjkpLCFjP3RoaXMuaWkoKTpjKSxhKSxiKX07Xy5kaT1mdW5jdGlvbiBpQWQoYSl7JHdkKHRoaXMsMTI4LGEpfTtfLmlpPWZ1bmN0aW9uIGpBZCgpe3JldHVybiBKVGQoKSx4VGR9O18ua2k9ZnVuY3Rpb24ga0FkKGEpe3ZhciBiO3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtzTGQodGhpcy5BYik7cmV0dXJuO31DdmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP3RoaXMuaWkoKTpiKSxhKSl9O18ucGk9ZnVuY3Rpb24gbEFkKCl7dGhpcy5CYnw9MX07Xy5xaT1mdW5jdGlvbiBtQWQoYSl7cmV0dXJuIGJBZCh0aGlzLGEpfTtfLkJiPTA7dmFyIGs4PXNmYihTSGUsJ0VNb2RlbEVsZW1lbnRJbXBsJywxNTgpO2ZlYig3MjAsMTU4LHsxMTA6MSw5NDoxLDkzOjEsNDgwOjEsMTU1OjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMTU4OjEsMTE5OjEsMTIwOjF9LHlBZCk7Xy5yaT1mdW5jdGlvbiB6QWQoYSxiKXtyZXR1cm4gdEFkKHRoaXMsYSxiKX07Xy5zaT1mdW5jdGlvbiBBQWQoYSl7dmFyIGIsYyxkLGUsZjtpZih0aGlzLmEhPUJYZChhKXx8KGEuQmImMjU2KSE9MCl7dGhyb3cgQWRiKG5ldyBhZ2IoWkhlK2EuemIrV0hlKSl9Zm9yKGQ9ellkKGEpO3RZZChkLmEpLmkhPTA7KXtjPVJEKE5fZChkLDAsKGI9UkQoUUhkKHRZZChkLmEpLDApLDg5KSxmPWIuYyxaRChmLDkwKT9SRChmLDI5KTooSlRkKCkselRkKSkpLDI5KTtpZihEWGQoYykpe2U9QlhkKGMpLndpKCkuc2koYyk7UkQoZSw1NCkuY2koYSk7cmV0dXJuIGV9ZD16WWQoYyl9cmV0dXJuIChhLkQhPW51bGw/YS5EOmEuQik9PSdqYXZhLnV0aWwuTWFwJEVudHJ5Jz9uZXcgTFVkKGEpOm5ldyB6VWQoYSl9O18udGk9ZnVuY3Rpb24gQkFkKGEsYil7cmV0dXJuIHVBZCh0aGlzLGEsYil9O18uTGg9ZnVuY3Rpb24gQ0FkKGEsYixjKXt2YXIgZDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHRoaXMuQWI7Y2FzZSAxOnJldHVybiB0aGlzLmE7fXJldHVybiB6dmQodGhpcyxhLUFZZCgoSlRkKCksdVRkKSksdllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/dVRkOmQpLGEpLGIsYyl9O18uU2g9ZnVuY3Rpb24gREFkKGEsYixjKXt2YXIgZCxlO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSkscUxkKHRoaXMuQWIsYSxjKTtjYXNlIDE6ISF0aGlzLmEmJihjPVJEKHRoaXMuYSw1NCkuVGgodGhpcyw0LHQ3LGMpKTtyZXR1cm4gckFkKHRoaXMsUkQoYSwyNDEpLGMpO31yZXR1cm4gZT1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD8oSlRkKCksdVRkKTpkKSxiKSw2OSksZS53aygpLnprKHRoaXMsV3dkKHRoaXMpLGItQVlkKChKVGQoKSx1VGQpKSxhLGMpfTtfLlVoPWZ1bmN0aW9uIEVBZChhLGIsYyl7dmFyIGQsZTtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHJMZCh0aGlzLkFiLGEsYyk7Y2FzZSAxOnJldHVybiByQWQodGhpcyxudWxsLGMpO31yZXR1cm4gZT1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD8oSlRkKCksdVRkKTpkKSxiKSw2OSksZS53aygpLkFrKHRoaXMsV3dkKHRoaXMpLGItQVlkKChKVGQoKSx1VGQpKSxhLGMpfTtfLldoPWZ1bmN0aW9uIEZBZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhIXRoaXMuQWImJnRoaXMuQWIuaSE9MDtjYXNlIDE6cmV0dXJuICEhdGhpcy5hO31yZXR1cm4gQXZkKHRoaXMsYS1BWWQoKEpUZCgpLHVUZCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP3VUZDpiKSxhKSl9O18uYmk9ZnVuY3Rpb24gR0FkKGEsYil7dmFyIGM7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTshdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO1lHZCh0aGlzLkFiLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAxOndBZCh0aGlzLFJEKGIsMjQxKSk7cmV0dXJuO31CdmQodGhpcyxhLUFZZCgoSlRkKCksdVRkKSksdllkKChjPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWM/dVRkOmMpLGEpLGIpfTtfLmlpPWZ1bmN0aW9uIEhBZCgpe3JldHVybiBKVGQoKSx1VGR9O18ua2k9ZnVuY3Rpb24gSUFkKGEpe3ZhciBiO3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtzTGQodGhpcy5BYik7cmV0dXJuO2Nhc2UgMTp3QWQodGhpcyxudWxsKTtyZXR1cm47fUN2ZCh0aGlzLGEtQVlkKChKVGQoKSx1VGQpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj91VGQ6YiksYSkpfTt2YXIgbkFkLG9BZCxwQWQ7dmFyIGk4PXNmYihTSGUsJ0VGYWN0b3J5SW1wbCcsNzIwKTtmZWIoMTAzNyw3MjAsezExMDoxLDIxMTM6MSw5NDoxLDkzOjEsNDgwOjEsMTU1OjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMTU4OjEsMTE5OjEsMTIwOjF9LEtBZCk7Xy5yaT1mdW5jdGlvbiBMQWQoYSxiKXtzd2l0Y2goYS5oaygpKXtjYXNlIDEyOnJldHVybiBSRChiLDE0OSkuUGcoKTtjYXNlIDEzOnJldHVybiBqZWIoYik7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYihWSGUrYS54ZSgpK1dIZSkpO319O18uc2k9ZnVuY3Rpb24gTUFkKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk7c3dpdGNoKGEuRz09LTEmJihhLkc9KGI9QlhkKGEpLGI/ZlpkKGIudmkoKSxhKTotMSkpLGEuRyl7Y2FzZSA0OnJldHVybiBmPW5ldyBoQ2QsZjtjYXNlIDY6cmV0dXJuIGc9bmV3IEFDZCxnO2Nhc2UgNzpyZXR1cm4gaD1uZXcgUENkLGg7Y2FzZSA4OnJldHVybiBkPW5ldyByemQsZDtjYXNlIDk6cmV0dXJuIGM9bmV3IFh4ZCxjO2Nhc2UgMTA6cmV0dXJuIGU9bmV3IFJ6ZCxlO2Nhc2UgMTE6cmV0dXJuIGk9bmV3IF9DZCxpO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBhZ2IoWkhlK2EuemIrV0hlKSk7fX07Xy50aT1mdW5jdGlvbiBOQWQoYSxiKXtzd2l0Y2goYS5oaygpKXtjYXNlIDEzOmNhc2UgMTI6cmV0dXJuIG51bGw7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYihWSGUrYS54ZSgpK1dIZSkpO319O3ZhciBTND1zZmIoVEhlLCdFbGtHcmFwaEZhY3RvcnlJbXBsJywxMDM3KTtmZWIoNDQ4LDE1OCx7MTEwOjEsOTQ6MSw5MzoxLDE1NToxLDE5NzoxLDU4OjEsMTE0OjEsNTQ6MSw5OToxLDE1ODoxLDExOToxLDEyMDoxfSk7Xy5HaD1mdW5jdGlvbiBSQWQoKXt2YXIgYSxiO2I9KGE9UkQoWXdkKHRoaXMsMTYpLDI5KSxQJGQocllkKCFhP3RoaXMuaWkoKTphKSkpO3JldHVybiBiPT1udWxsPyhOMmQoKSxOMmQoKSxNMmQpOm5ldyBlM2QodGhpcyxiKX07Xy5MaD1mdW5jdGlvbiBTQWQoYSxiLGMpe3ZhciBkO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksdGhpcy5BYjtjYXNlIDE6cmV0dXJuIHRoaXMueGUoKTt9cmV0dXJuIHp2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/dGhpcy5paSgpOmQpLGEpLGIsYyl9O18uV2g9ZnVuY3Rpb24gVEFkKGEpe3ZhciBiO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICEhdGhpcy5BYiYmdGhpcy5BYi5pIT0wO2Nhc2UgMTpyZXR1cm4gdGhpcy56YiE9bnVsbDt9cmV0dXJuIEF2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/dGhpcy5paSgpOmIpLGEpKX07Xy5iaT1mdW5jdGlvbiBVQWQoYSxiKXt2YXIgYztzd2l0Y2goYSl7Y2FzZSAwOiF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7c0xkKHRoaXMuQWIpOyF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7WUdkKHRoaXMuQWIsUkQoYiwxNikpO3JldHVybjtjYXNlIDE6dGhpcy51aShXRChiKSk7cmV0dXJuO31CdmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgoYz1SRChZd2QodGhpcywxNiksMjkpLCFjP3RoaXMuaWkoKTpjKSxhKSxiKX07Xy5paT1mdW5jdGlvbiBWQWQoKXtyZXR1cm4gSlRkKCkseVRkfTtfLmtpPWZ1bmN0aW9uIFdBZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOiF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7c0xkKHRoaXMuQWIpO3JldHVybjtjYXNlIDE6dGhpcy51aShudWxsKTtyZXR1cm47fUN2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/dGhpcy5paSgpOmIpLGEpKX07Xy54ZT1mdW5jdGlvbiBYQWQoKXtyZXR1cm4gdGhpcy56Yn07Xy51aT1mdW5jdGlvbiBZQWQoYSl7UEFkKHRoaXMsYSl9O18uSWI9ZnVuY3Rpb24gWkFkKCl7cmV0dXJuIFFBZCh0aGlzKX07Xy56Yj1udWxsO3ZhciBvOD1zZmIoU0hlLCdFTmFtZWRFbGVtZW50SW1wbCcsNDQ4KTtmZWIoMTg0LDQ0OCx7MTEwOjEsOTQ6MSw5MzoxLDE1NToxLDE5NzoxLDU4OjEsMjQxOjEsMTE0OjEsNTQ6MSw5OToxLDE1ODoxLDE4NDoxLDExOToxLDEyMDoxLDY5MDoxfSxFQmQpO18uQWg9ZnVuY3Rpb24gR0JkKGEpe3JldHVybiBxQmQodGhpcyxhKX07Xy5MaD1mdW5jdGlvbiBIQmQoYSxiLGMpe3ZhciBkO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksdGhpcy5BYjtjYXNlIDE6cmV0dXJuIHRoaXMuemI7Y2FzZSAyOnJldHVybiB0aGlzLnliO2Nhc2UgMzpyZXR1cm4gdGhpcy54YjtjYXNlIDQ6cmV0dXJuIHRoaXMuc2I7Y2FzZSA1OnJldHVybiAhdGhpcy5yYiYmKHRoaXMucmI9bmV3IEo1ZCh0aGlzLGk3LHRoaXMpKSx0aGlzLnJiO2Nhc2UgNjpyZXR1cm4gIXRoaXMudmImJih0aGlzLnZiPW5ldyBHNWQodDcsdGhpcyw2LDcpKSx0aGlzLnZiO2Nhc2UgNzppZihiKXJldHVybiB0aGlzLkRiPj4xNj09Nz9SRCh0aGlzLkNiLDI0MSk6bnVsbDtyZXR1cm4gZ0JkKHRoaXMpO31yZXR1cm4genZkKHRoaXMsYS1BWWQoKEpUZCgpLENUZCkpLHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkP0NUZDpkKSxhKSxiLGMpfTtfLlNoPWZ1bmN0aW9uIElCZChhLGIsYyl7dmFyIGQsZSxmO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSkscUxkKHRoaXMuQWIsYSxjKTtjYXNlIDQ6ISF0aGlzLnNiJiYoYz1SRCh0aGlzLnNiLDU0KS5UaCh0aGlzLDEsbjcsYykpO3JldHVybiBoQmQodGhpcyxSRChhLDQ4MCksYyk7Y2FzZSA1OnJldHVybiAhdGhpcy5yYiYmKHRoaXMucmI9bmV3IEo1ZCh0aGlzLGk3LHRoaXMpKSxxTGQodGhpcy5yYixhLGMpO2Nhc2UgNjpyZXR1cm4gIXRoaXMudmImJih0aGlzLnZiPW5ldyBHNWQodDcsdGhpcyw2LDcpKSxxTGQodGhpcy52YixhLGMpO2Nhc2UgNzohIXRoaXMuQ2ImJihjPShlPXRoaXMuRGI+PjE2LGU+PTA/cUJkKHRoaXMsYyk6dGhpcy5DYi5UaCh0aGlzLC0xLWUsbnVsbCxjKSkpO3JldHVybiB4dmQodGhpcyxhLDcsYyk7fXJldHVybiBmPVJEKHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkPyhKVGQoKSxDVGQpOmQpLGIpLDY5KSxmLndrKCkuemsodGhpcyxXd2QodGhpcyksYi1BWWQoKEpUZCgpLENUZCkpLGEsYyl9O18uVWg9ZnVuY3Rpb24gSkJkKGEsYixjKXt2YXIgZCxlO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksckxkKHRoaXMuQWIsYSxjKTtjYXNlIDQ6cmV0dXJuIGhCZCh0aGlzLG51bGwsYyk7Y2FzZSA1OnJldHVybiAhdGhpcy5yYiYmKHRoaXMucmI9bmV3IEo1ZCh0aGlzLGk3LHRoaXMpKSxyTGQodGhpcy5yYixhLGMpO2Nhc2UgNjpyZXR1cm4gIXRoaXMudmImJih0aGlzLnZiPW5ldyBHNWQodDcsdGhpcyw2LDcpKSxyTGQodGhpcy52YixhLGMpO2Nhc2UgNzpyZXR1cm4geHZkKHRoaXMsbnVsbCw3LGMpO31yZXR1cm4gZT1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD8oSlRkKCksQ1RkKTpkKSxiKSw2OSksZS53aygpLkFrKHRoaXMsV3dkKHRoaXMpLGItQVlkKChKVGQoKSxDVGQpKSxhLGMpfTtfLldoPWZ1bmN0aW9uIEtCZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhIXRoaXMuQWImJnRoaXMuQWIuaSE9MDtjYXNlIDE6cmV0dXJuIHRoaXMuemIhPW51bGw7Y2FzZSAyOnJldHVybiB0aGlzLnliIT1udWxsO2Nhc2UgMzpyZXR1cm4gdGhpcy54YiE9bnVsbDtjYXNlIDQ6cmV0dXJuICEhdGhpcy5zYjtjYXNlIDU6cmV0dXJuICEhdGhpcy5yYiYmdGhpcy5yYi5pIT0wO2Nhc2UgNjpyZXR1cm4gISF0aGlzLnZiJiZ0aGlzLnZiLmkhPTA7Y2FzZSA3OnJldHVybiAhIWdCZCh0aGlzKTt9cmV0dXJuIEF2ZCh0aGlzLGEtQVlkKChKVGQoKSxDVGQpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj9DVGQ6YiksYSkpfTtfLlpoPWZ1bmN0aW9uIExCZChhKXt2YXIgYjtiPXNCZCh0aGlzLGEpO3JldHVybiBiP2I6X3pkKHRoaXMsYSl9O18uYmk9ZnVuY3Rpb24gTUJkKGEsYil7dmFyIGM7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTshdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO1lHZCh0aGlzLkFiLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAxOlBBZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSAyOkRCZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSAzOkNCZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSA0OkJCZCh0aGlzLFJEKGIsNDgwKSk7cmV0dXJuO2Nhc2UgNTohdGhpcy5yYiYmKHRoaXMucmI9bmV3IEo1ZCh0aGlzLGk3LHRoaXMpKTtzTGQodGhpcy5yYik7IXRoaXMucmImJih0aGlzLnJiPW5ldyBKNWQodGhpcyxpNyx0aGlzKSk7WUdkKHRoaXMucmIsUkQoYiwxNikpO3JldHVybjtjYXNlIDY6IXRoaXMudmImJih0aGlzLnZiPW5ldyBHNWQodDcsdGhpcyw2LDcpKTtzTGQodGhpcy52Yik7IXRoaXMudmImJih0aGlzLnZiPW5ldyBHNWQodDcsdGhpcyw2LDcpKTtZR2QodGhpcy52YixSRChiLDE2KSk7cmV0dXJuO31CdmQodGhpcyxhLUFZZCgoSlRkKCksQ1RkKSksdllkKChjPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWM/Q1RkOmMpLGEpLGIpfTtfLmVpPWZ1bmN0aW9uIE5CZChhKXt2YXIgYixjO2lmKCEhYSYmISF0aGlzLnJiKXtmb3IoYz1uZXcgZE1kKHRoaXMucmIpO2MuZSE9Yy5pLmdjKCk7KXtiPWJNZChjKTtaRChiLDM2NCkmJihSRChiLDM2NCkudz1udWxsKX19JHdkKHRoaXMsNjQsYSl9O18uaWk9ZnVuY3Rpb24gT0JkKCl7cmV0dXJuIEpUZCgpLENUZH07Xy5raT1mdW5jdGlvbiBQQmQoYSl7dmFyIGI7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTtyZXR1cm47Y2FzZSAxOlBBZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDI6REJkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgMzpDQmQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSA0OkJCZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDU6IXRoaXMucmImJih0aGlzLnJiPW5ldyBKNWQodGhpcyxpNyx0aGlzKSk7c0xkKHRoaXMucmIpO3JldHVybjtjYXNlIDY6IXRoaXMudmImJih0aGlzLnZiPW5ldyBHNWQodDcsdGhpcyw2LDcpKTtzTGQodGhpcy52Yik7cmV0dXJuO31DdmQodGhpcyxhLUFZZCgoSlRkKCksQ1RkKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/Q1RkOmIpLGEpKX07Xy5waT1mdW5jdGlvbiBRQmQoKXtyQmQodGhpcyl9O18udmk9ZnVuY3Rpb24gUkJkKCl7cmV0dXJuICF0aGlzLnJiJiYodGhpcy5yYj1uZXcgSjVkKHRoaXMsaTcsdGhpcykpLHRoaXMucmJ9O18ud2k9ZnVuY3Rpb24gU0JkKCl7cmV0dXJuIHRoaXMuc2J9O18ueGk9ZnVuY3Rpb24gVEJkKCl7cmV0dXJuIHRoaXMudWJ9O18ueWk9ZnVuY3Rpb24gVUJkKCl7cmV0dXJuIHRoaXMueGJ9O18uemk9ZnVuY3Rpb24gVkJkKCl7cmV0dXJuIHRoaXMueWJ9O18uQWk9ZnVuY3Rpb24gV0JkKGEpe3RoaXMudWI9YX07Xy5JYj1mdW5jdGlvbiBYQmQoKXt2YXIgYTtpZigodGhpcy5EYiY2NCkhPTApcmV0dXJuIFFBZCh0aGlzKTthPW5ldyBTaGIoUUFkKHRoaXMpKTthLmErPScgKG5zVVJJOiAnO05oYihhLHRoaXMueWIpO2EuYSs9JywgbnNQcmVmaXg6ICc7TmhiKGEsdGhpcy54Yik7YS5hKz0nKSc7cmV0dXJuIGEuYX07Xy54Yj1udWxsO18ueWI9bnVsbDt2YXIgJEFkO3ZhciB5OD1zZmIoU0hlLCdFUGFja2FnZUltcGwnLDE4NCk7ZmViKDU2OSwxODQsezExMDoxLDIxMTU6MSw1Njk6MSw5NDoxLDkzOjEsMTU1OjEsMTk3OjEsNTg6MSwyNDE6MSwxMTQ6MSw1NDoxLDk5OjEsMTU4OjEsMTg0OjEsMTE5OjEsMTIwOjEsNjkwOjF9LF9CZCk7Xy5xPWZhbHNlO18ucj1mYWxzZTt2YXIgWUJkPWZhbHNlO3ZhciBUND1zZmIoVEhlLCdFbGtHcmFwaFBhY2thZ2VJbXBsJyw1NjkpO2ZlYigzNjYsNzQwLHsxMTA6MSwzNDI6MSwxNjc6MSwxMzU6MSw0MjI6MSwzNjY6MSw5NjoxLDk0OjEsOTM6MSw1ODoxLDExNDoxLDU0OjEsOTk6MSwxMTk6MSwxMjA6MX0saENkKTtfLkFoPWZ1bmN0aW9uIGlDZChhKXtyZXR1cm4gY0NkKHRoaXMsYSl9O18uTGg9ZnVuY3Rpb24gakNkKGEsYixjKXtzd2l0Y2goYSl7Y2FzZSA3OnJldHVybiBkQ2QodGhpcyk7Y2FzZSA4OnJldHVybiB0aGlzLmE7fXJldHVybiB2eWQodGhpcyxhLGIsYyl9O18uU2g9ZnVuY3Rpb24ga0NkKGEsYixjKXt2YXIgZDtzd2l0Y2goYil7Y2FzZSA3OiEhdGhpcy5DYiYmKGM9KGQ9dGhpcy5EYj4+MTYsZD49MD9jQ2QodGhpcyxjKTp0aGlzLkNiLlRoKHRoaXMsLTEtZCxudWxsLGMpKSk7cmV0dXJuIGJDZCh0aGlzLFJEKGEsMTY3KSxjKTt9cmV0dXJuIGR5ZCh0aGlzLGEsYixjKX07Xy5VaD1mdW5jdGlvbiBsQ2QoYSxiLGMpe2lmKGI9PTcpe3JldHVybiBiQ2QodGhpcyxudWxsLGMpfXJldHVybiBleWQodGhpcyxhLGIsYyl9O18uV2g9ZnVuY3Rpb24gbUNkKGEpe3N3aXRjaChhKXtjYXNlIDc6cmV0dXJuICEhZENkKHRoaXMpO2Nhc2UgODpyZXR1cm4gIWxoYignJyx0aGlzLmEpO31yZXR1cm4gd3lkKHRoaXMsYSl9O18uYmk9ZnVuY3Rpb24gbkNkKGEsYil7c3dpdGNoKGEpe2Nhc2UgNzplQ2QodGhpcyxSRChiLDE2NykpO3JldHVybjtjYXNlIDg6ZkNkKHRoaXMsV0QoYikpO3JldHVybjt9eHlkKHRoaXMsYSxiKX07Xy5paT1mdW5jdGlvbiBvQ2QoKXtyZXR1cm4gcHZkKCksanZkfTtfLmtpPWZ1bmN0aW9uIHBDZChhKXtzd2l0Y2goYSl7Y2FzZSA3OmVDZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDg6ZkNkKHRoaXMsJycpO3JldHVybjt9eXlkKHRoaXMsYSl9O18uSWI9ZnVuY3Rpb24gcUNkKCl7cmV0dXJuIGdDZCh0aGlzKX07Xy5hPScnO3ZhciBVND1zZmIoVEhlLCdFbGtMYWJlbEltcGwnLDM2Nik7ZmViKDIwNyw3NDEsezExMDoxLDM0MjoxLDg0OjEsMTY3OjEsMjc6MSw0MjI6MSwyMDc6MSw5NjoxLDk0OjEsOTM6MSw1ODoxLDExNDoxLDU0OjEsOTk6MSwxMTk6MSwxMjA6MX0sQUNkKTtfLkFoPWZ1bmN0aW9uIEJDZChhKXtyZXR1cm4gc0NkKHRoaXMsYSl9O18uTGg9ZnVuY3Rpb24gQ0NkKGEsYixjKXtzd2l0Y2goYSl7Y2FzZSA5OnJldHVybiAhdGhpcy5jJiYodGhpcy5jPW5ldyBDNWQoSzQsdGhpcyw5LDkpKSx0aGlzLmM7Y2FzZSAxMDpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgQzVkKEo0LHRoaXMsMTAsMTEpKSx0aGlzLmE7Y2FzZSAxMTpyZXR1cm4gdkNkKHRoaXMpO2Nhc2UgMTI6cmV0dXJuICF0aGlzLmImJih0aGlzLmI9bmV3IEM1ZChHNCx0aGlzLDEyLDMpKSx0aGlzLmI7Y2FzZSAxMzpyZXR1cm4gR2ViKCksIXRoaXMuYSYmKHRoaXMuYT1uZXcgQzVkKEo0LHRoaXMsMTAsMTEpKSx0aGlzLmEuaT4wP3RydWU6ZmFsc2U7fXJldHVybiBVeWQodGhpcyxhLGIsYyl9O18uU2g9ZnVuY3Rpb24gRENkKGEsYixjKXt2YXIgZDtzd2l0Y2goYil7Y2FzZSA5OnJldHVybiAhdGhpcy5jJiYodGhpcy5jPW5ldyBDNWQoSzQsdGhpcyw5LDkpKSxxTGQodGhpcy5jLGEsYyk7Y2FzZSAxMDpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgQzVkKEo0LHRoaXMsMTAsMTEpKSxxTGQodGhpcy5hLGEsYyk7Y2FzZSAxMTohIXRoaXMuQ2ImJihjPShkPXRoaXMuRGI+PjE2LGQ+PTA/c0NkKHRoaXMsYyk6dGhpcy5DYi5UaCh0aGlzLC0xLWQsbnVsbCxjKSkpO3JldHVybiByQ2QodGhpcyxSRChhLDI3KSxjKTtjYXNlIDEyOnJldHVybiAhdGhpcy5iJiYodGhpcy5iPW5ldyBDNWQoRzQsdGhpcywxMiwzKSkscUxkKHRoaXMuYixhLGMpO31yZXR1cm4gVnlkKHRoaXMsYSxiLGMpfTtfLlVoPWZ1bmN0aW9uIEVDZChhLGIsYyl7c3dpdGNoKGIpe2Nhc2UgOTpyZXR1cm4gIXRoaXMuYyYmKHRoaXMuYz1uZXcgQzVkKEs0LHRoaXMsOSw5KSksckxkKHRoaXMuYyxhLGMpO2Nhc2UgMTA6cmV0dXJuICF0aGlzLmEmJih0aGlzLmE9bmV3IEM1ZChKNCx0aGlzLDEwLDExKSksckxkKHRoaXMuYSxhLGMpO2Nhc2UgMTE6cmV0dXJuIHJDZCh0aGlzLG51bGwsYyk7Y2FzZSAxMjpyZXR1cm4gIXRoaXMuYiYmKHRoaXMuYj1uZXcgQzVkKEc0LHRoaXMsMTIsMykpLHJMZCh0aGlzLmIsYSxjKTt9cmV0dXJuIFd5ZCh0aGlzLGEsYixjKX07Xy5XaD1mdW5jdGlvbiBGQ2QoYSl7c3dpdGNoKGEpe2Nhc2UgOTpyZXR1cm4gISF0aGlzLmMmJnRoaXMuYy5pIT0wO2Nhc2UgMTA6cmV0dXJuICEhdGhpcy5hJiZ0aGlzLmEuaSE9MDtjYXNlIDExOnJldHVybiAhIXZDZCh0aGlzKTtjYXNlIDEyOnJldHVybiAhIXRoaXMuYiYmdGhpcy5iLmkhPTA7Y2FzZSAxMzpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgQzVkKEo0LHRoaXMsMTAsMTEpKSx0aGlzLmEuaT4wO31yZXR1cm4gWHlkKHRoaXMsYSl9O18uYmk9ZnVuY3Rpb24gR0NkKGEsYil7c3dpdGNoKGEpe2Nhc2UgOTohdGhpcy5jJiYodGhpcy5jPW5ldyBDNWQoSzQsdGhpcyw5LDkpKTtzTGQodGhpcy5jKTshdGhpcy5jJiYodGhpcy5jPW5ldyBDNWQoSzQsdGhpcyw5LDkpKTtZR2QodGhpcy5jLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAxMDohdGhpcy5hJiYodGhpcy5hPW5ldyBDNWQoSjQsdGhpcywxMCwxMSkpO3NMZCh0aGlzLmEpOyF0aGlzLmEmJih0aGlzLmE9bmV3IEM1ZChKNCx0aGlzLDEwLDExKSk7WUdkKHRoaXMuYSxSRChiLDE2KSk7cmV0dXJuO2Nhc2UgMTE6eUNkKHRoaXMsUkQoYiwyNykpO3JldHVybjtjYXNlIDEyOiF0aGlzLmImJih0aGlzLmI9bmV3IEM1ZChHNCx0aGlzLDEyLDMpKTtzTGQodGhpcy5iKTshdGhpcy5iJiYodGhpcy5iPW5ldyBDNWQoRzQsdGhpcywxMiwzKSk7WUdkKHRoaXMuYixSRChiLDE2KSk7cmV0dXJuO31ZeWQodGhpcyxhLGIpfTtfLmlpPWZ1bmN0aW9uIEhDZCgpe3JldHVybiBwdmQoKSxrdmR9O18ua2k9ZnVuY3Rpb24gSUNkKGEpe3N3aXRjaChhKXtjYXNlIDk6IXRoaXMuYyYmKHRoaXMuYz1uZXcgQzVkKEs0LHRoaXMsOSw5KSk7c0xkKHRoaXMuYyk7cmV0dXJuO2Nhc2UgMTA6IXRoaXMuYSYmKHRoaXMuYT1uZXcgQzVkKEo0LHRoaXMsMTAsMTEpKTtzTGQodGhpcy5hKTtyZXR1cm47Y2FzZSAxMTp5Q2QodGhpcyxudWxsKTtyZXR1cm47Y2FzZSAxMjohdGhpcy5iJiYodGhpcy5iPW5ldyBDNWQoRzQsdGhpcywxMiwzKSk7c0xkKHRoaXMuYik7cmV0dXJuO31aeWQodGhpcyxhKX07Xy5JYj1mdW5jdGlvbiBKQ2QoKXtyZXR1cm4gekNkKHRoaXMpfTt2YXIgVjQ9c2ZiKFRIZSwnRWxrTm9kZUltcGwnLDIwNyk7ZmViKDE5Myw3NDEsezExMDoxLDM0MjoxLDg0OjEsMTY3OjEsMTIzOjEsNDIyOjEsMTkzOjEsOTY6MSw5NDoxLDkzOjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMTE5OjEsMTIwOjF9LFBDZCk7Xy5BaD1mdW5jdGlvbiBRQ2QoYSl7cmV0dXJuIExDZCh0aGlzLGEpfTtfLkxoPWZ1bmN0aW9uIFJDZChhLGIsYyl7aWYoYT09OSl7cmV0dXJuIE1DZCh0aGlzKX1yZXR1cm4gVXlkKHRoaXMsYSxiLGMpfTtfLlNoPWZ1bmN0aW9uIFNDZChhLGIsYyl7dmFyIGQ7c3dpdGNoKGIpe2Nhc2UgOTohIXRoaXMuQ2ImJihjPShkPXRoaXMuRGI+PjE2LGQ+PTA/TENkKHRoaXMsYyk6dGhpcy5DYi5UaCh0aGlzLC0xLWQsbnVsbCxjKSkpO3JldHVybiBLQ2QodGhpcyxSRChhLDI3KSxjKTt9cmV0dXJuIFZ5ZCh0aGlzLGEsYixjKX07Xy5VaD1mdW5jdGlvbiBUQ2QoYSxiLGMpe2lmKGI9PTkpe3JldHVybiBLQ2QodGhpcyxudWxsLGMpfXJldHVybiBXeWQodGhpcyxhLGIsYyl9O18uV2g9ZnVuY3Rpb24gVUNkKGEpe2lmKGE9PTkpe3JldHVybiAhIU1DZCh0aGlzKX1yZXR1cm4gWHlkKHRoaXMsYSl9O18uYmk9ZnVuY3Rpb24gVkNkKGEsYil7c3dpdGNoKGEpe2Nhc2UgOTpOQ2QodGhpcyxSRChiLDI3KSk7cmV0dXJuO31ZeWQodGhpcyxhLGIpfTtfLmlpPWZ1bmN0aW9uIFdDZCgpe3JldHVybiBwdmQoKSxsdmR9O18ua2k9ZnVuY3Rpb24gWENkKGEpe3N3aXRjaChhKXtjYXNlIDk6TkNkKHRoaXMsbnVsbCk7cmV0dXJuO31aeWQodGhpcyxhKX07Xy5JYj1mdW5jdGlvbiBZQ2QoKXtyZXR1cm4gT0NkKHRoaXMpfTt2YXIgVzQ9c2ZiKFRIZSwnRWxrUG9ydEltcGwnLDE5Myk7dmFyIE82PXVmYihzSWUsJ0Jhc2ljRU1hcC9FbnRyeScpO2ZlYigxMTIyLDEyMCx7MTEwOjEsNDQ6MSw5NDoxLDkzOjEsMTM2OjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMTE5OjEsMTIwOjF9LF9DZCk7Xy5GYj1mdW5jdGlvbiBmRGQoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLmxkPWZ1bmN0aW9uIGhEZCgpe3JldHVybiB0aGlzLmJ9O18uSGI9ZnVuY3Rpb24gakRkKCl7cmV0dXJuIGtGYih0aGlzKX07Xy5EaT1mdW5jdGlvbiBsRGQoYSl7WkNkKHRoaXMsUkQoYSwxNDkpKX07Xy5MaD1mdW5jdGlvbiBhRGQoYSxiLGMpe3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuIHRoaXMuYjtjYXNlIDE6cmV0dXJuIHRoaXMuYzt9cmV0dXJuIER2ZCh0aGlzLGEsYixjKX07Xy5XaD1mdW5jdGlvbiBiRGQoYSl7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4gISF0aGlzLmI7Y2FzZSAxOnJldHVybiB0aGlzLmMhPW51bGw7fXJldHVybiBLdmQodGhpcyxhKX07Xy5iaT1mdW5jdGlvbiBjRGQoYSxiKXtzd2l0Y2goYSl7Y2FzZSAwOlpDZCh0aGlzLFJEKGIsMTQ5KSk7cmV0dXJuO2Nhc2UgMTokQ2QodGhpcyxiKTtyZXR1cm47fVd2ZCh0aGlzLGEsYil9O18uaWk9ZnVuY3Rpb24gZERkKCl7cmV0dXJuIHB2ZCgpLG12ZH07Xy5raT1mdW5jdGlvbiBlRGQoYSl7c3dpdGNoKGEpe2Nhc2UgMDpaQ2QodGhpcyxudWxsKTtyZXR1cm47Y2FzZSAxOiRDZCh0aGlzLG51bGwpO3JldHVybjt9JHZkKHRoaXMsYSl9O18uQmk9ZnVuY3Rpb24gZ0RkKCl7dmFyIGE7aWYodGhpcy5hPT0tMSl7YT10aGlzLmI7dGhpcy5hPSFhPzA6dGIoYSl9cmV0dXJuIHRoaXMuYX07Xy5tZD1mdW5jdGlvbiBpRGQoKXtyZXR1cm4gdGhpcy5jfTtfLkNpPWZ1bmN0aW9uIGtEZChhKXt0aGlzLmE9YX07Xy5uZD1mdW5jdGlvbiBtRGQoYSl7dmFyIGI7Yj10aGlzLmM7JENkKHRoaXMsYSk7cmV0dXJuIGJ9O18uSWI9ZnVuY3Rpb24gbkRkKCl7dmFyIGE7aWYoKHRoaXMuRGImNjQpIT0wKXJldHVybiBhd2QodGhpcyk7YT1uZXcgYmliO1poYihaaGIoWmhiKGEsdGhpcy5iP3RoaXMuYi5QZygpOnZ2ZSksU0FlKSxHaGIodGhpcy5jKSk7cmV0dXJuIGEuYX07Xy5hPS0xO18uYz1udWxsO3ZhciBYND1zZmIoVEhlLCdFbGtQcm9wZXJ0eVRvVmFsdWVNYXBFbnRyeUltcGwnLDExMjIpO2ZlYig5OTYsMSx7fSxCRGQpO3ZhciBaND1zZmIodkllLCdKc29uQWRhcHRlcicsOTk2KTtmZWIoMjE2LDYzLHN3ZSxDRGQpO3ZhciAkND1zZmIodkllLCdKc29uSW1wb3J0RXhjZXB0aW9uJywyMTYpO2ZlYig4NjgsMSx7fSxJRWQpO3ZhciBPNT1zZmIodkllLCdKc29uSW1wb3J0ZXInLDg2OCk7ZmViKDkwMywxLHt9LEpFZCk7dmFyIF80PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkMCRUeXBlJyw5MDMpO2ZlYig5MDQsMSx7fSxLRWQpO3ZhciBhNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDEkVHlwZScsOTA0KTtmZWIoOTEyLDEse30sTEVkKTt2YXIgYjU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQxMCRUeXBlJyw5MTIpO2ZlYig5MTQsMSx7fSxNRWQpO3ZhciBjNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDExJFR5cGUnLDkxNCk7ZmViKDkxNSwxLHt9LE5FZCk7dmFyIGQ1PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkMTIkVHlwZScsOTE1KTtmZWIoOTIxLDEse30sT0VkKTt2YXIgZTU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQxMyRUeXBlJyw5MjEpO2ZlYig5MjAsMSx7fSxQRWQpO3ZhciBmNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDE0JFR5cGUnLDkyMCk7ZmViKDkxNiwxLHt9LFFFZCk7dmFyIGc1PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkMTUkVHlwZScsOTE2KTtmZWIoOTE3LDEse30sUkVkKTt2YXIgaDU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQxNiRUeXBlJyw5MTcpO2ZlYig5MTgsMSx7fSxTRWQpO3ZhciBpNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDE3JFR5cGUnLDkxOCk7ZmViKDkxOSwxLHt9LFRFZCk7dmFyIGo1PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkMTgkVHlwZScsOTE5KTtmZWIoOTI0LDEse30sVUVkKTt2YXIgazU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQxOSRUeXBlJyw5MjQpO2ZlYig5MDUsMSx7fSxWRWQpO3ZhciBsNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDIkVHlwZScsOTA1KTtmZWIoOTIyLDEse30sV0VkKTt2YXIgbTU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQyMCRUeXBlJyw5MjIpO2ZlYig5MjMsMSx7fSxYRWQpO3ZhciBuNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDIxJFR5cGUnLDkyMyk7ZmViKDkyNywxLHt9LFlFZCk7dmFyIG81PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkMjIkVHlwZScsOTI3KTtmZWIoOTI1LDEse30sWkVkKTt2YXIgcDU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQyMyRUeXBlJyw5MjUpO2ZlYig5MjYsMSx7fSwkRWQpO3ZhciBxNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDI0JFR5cGUnLDkyNik7ZmViKDkyOSwxLHt9LF9FZCk7dmFyIHI1PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkMjUkVHlwZScsOTI5KTtmZWIoOTI4LDEse30sYUZkKTt2YXIgczU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQyNiRUeXBlJyw5MjgpO2ZlYig5MzAsMSxRdmUsYkZkKTtfLkNkPWZ1bmN0aW9uIGNGZChhKXtfRGQodGhpcy5iLHRoaXMuYSxXRChhKSl9O3ZhciB0NT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDI3JFR5cGUnLDkzMCk7ZmViKDkzMSwxLFF2ZSxkRmQpO18uQ2Q9ZnVuY3Rpb24gZUZkKGEpe2FFZCh0aGlzLmIsdGhpcy5hLFdEKGEpKX07dmFyIHU1PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkMjgkVHlwZScsOTMxKTtmZWIoOTMyLDEse30sZkZkKTt2YXIgdjU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQyOSRUeXBlJyw5MzIpO2ZlYig5MDgsMSx7fSxnRmQpO3ZhciB3NT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDMkVHlwZScsOTA4KTtmZWIoOTMzLDEse30saEZkKTt2YXIgeDU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQzMCRUeXBlJyw5MzMpO2ZlYig5MzQsMSx7fSxpRmQpO3ZhciB5NT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDMxJFR5cGUnLDkzNCk7ZmViKDkzNSwxLHt9LGpGZCk7dmFyIHo1PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkMzIkVHlwZScsOTM1KTtmZWIoOTM2LDEse30sa0ZkKTt2YXIgQTU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQzMyRUeXBlJyw5MzYpO2ZlYig5MzcsMSx7fSxsRmQpO3ZhciBCNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDM0JFR5cGUnLDkzNyk7ZmViKDg3MCwxLHt9LG5GZCk7dmFyIEM1PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkMzUkVHlwZScsODcwKTtmZWIoOTQxLDEse30scEZkKTt2YXIgRDU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQzNiRUeXBlJyw5NDEpO2ZlYig5MzgsMSxRdmUscUZkKTtfLkNkPWZ1bmN0aW9uIHJGZChhKXtqRWQodGhpcy5hLFJEKGEsMzc3KSl9O3ZhciBFNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDM3JFR5cGUnLDkzOCk7ZmViKDkzOSwxLFF2ZSxzRmQpO18uQ2Q9ZnVuY3Rpb24gdEZkKGEpe2tFZCh0aGlzLmEsdGhpcy5iLFJEKGEsMTY2KSl9O3ZhciBGNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDM4JFR5cGUnLDkzOSk7ZmViKDk0MCwxLFF2ZSx1RmQpO18uQ2Q9ZnVuY3Rpb24gdkZkKGEpe2xFZCh0aGlzLmEsdGhpcy5iLFJEKGEsMTY2KSl9O3ZhciBHNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDM5JFR5cGUnLDk0MCk7ZmViKDkwNiwxLHt9LHdGZCk7dmFyIEg1PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkNCRUeXBlJyw5MDYpO2ZlYig5NDIsMSxRdmUseEZkKTtfLkNkPWZ1bmN0aW9uIHlGZChhKXttRWQodGhpcy5hLFJEKGEsOCkpfTt2YXIgSTU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQ0MCRUeXBlJyw5NDIpO2ZlYig5MDcsMSx7fSx6RmQpO3ZhciBKNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDUkVHlwZScsOTA3KTtmZWIoOTExLDEse30sQUZkKTt2YXIgSzU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQ2JFR5cGUnLDkxMSk7ZmViKDkwOSwxLHt9LEJGZCk7dmFyIEw1PXNmYih2SWUsJ0pzb25JbXBvcnRlci9sYW1iZGEkNyRUeXBlJyw5MDkpO2ZlYig5MTAsMSx7fSxDRmQpO3ZhciBNNT1zZmIodkllLCdKc29uSW1wb3J0ZXIvbGFtYmRhJDgkVHlwZScsOTEwKTtmZWIoOTEzLDEse30sREZkKTt2YXIgTjU9c2ZiKHZJZSwnSnNvbkltcG9ydGVyL2xhbWJkYSQ5JFR5cGUnLDkxMyk7ZmViKDk2MSwxLFF2ZSxNRmQpO18uQ2Q9ZnVuY3Rpb24gTkZkKGEpe29EZCh0aGlzLmEsbmV3IE9DKFdEKGEpKSl9O3ZhciBQNT1zZmIodkllLCdKc29uTWV0YURhdGFDb252ZXJ0ZXIvbGFtYmRhJDAkVHlwZScsOTYxKTtmZWIoOTYyLDEsUXZlLE9GZCk7Xy5DZD1mdW5jdGlvbiBQRmQoYSl7SUZkKHRoaXMuYSxSRChhLDI0NSkpfTt2YXIgUTU9c2ZiKHZJZSwnSnNvbk1ldGFEYXRhQ29udmVydGVyL2xhbWJkYSQxJFR5cGUnLDk2Mik7ZmViKDk2MywxLFF2ZSxRRmQpO18uQ2Q9ZnVuY3Rpb24gUkZkKGEpe0pGZCh0aGlzLmEsUkQoYSwxNDMpKX07dmFyIFI1PXNmYih2SWUsJ0pzb25NZXRhRGF0YUNvbnZlcnRlci9sYW1iZGEkMiRUeXBlJyw5NjMpO2ZlYig5NjQsMSxRdmUsU0ZkKTtfLkNkPWZ1bmN0aW9uIFRGZChhKXtLRmQodGhpcy5hLFJEKGEsMTcwKSl9O3ZhciBTNT1zZmIodkllLCdKc29uTWV0YURhdGFDb252ZXJ0ZXIvbGFtYmRhJDMkVHlwZScsOTY0KTtmZWIoMjQ1LDIyLHszOjEsMzQ6MSwyMjoxLDI0NToxfSxiR2QpO3ZhciBVRmQsVkZkLFdGZCxYRmQsWUZkLFpGZCwkRmQsX0ZkO3ZhciBUNT10ZmIoanplLCdHcmFwaEZlYXR1cmUnLDI0NSxXSSxkR2QsY0dkKTt2YXIgZUdkO2ZlYigxMSwxLHszNDoxLDE0OToxfSxqR2Qsa0dkLGxHZCxtR2QpO18uRmQ9ZnVuY3Rpb24gbkdkKGEpe3JldHVybiBnR2QodGhpcyxSRChhLDE0OSkpfTtfLkZiPWZ1bmN0aW9uIG9HZChhKXtyZXR1cm4gaEdkKHRoaXMsYSl9O18uU2c9ZnVuY3Rpb24gcEdkKCl7cmV0dXJuIGlHZCh0aGlzKX07Xy5QZz1mdW5jdGlvbiBxR2QoKXtyZXR1cm4gdGhpcy5ifTtfLkhiPWZ1bmN0aW9uIHJHZCgpe3JldHVybiBvaGIodGhpcy5iKX07Xy5JYj1mdW5jdGlvbiBzR2QoKXtyZXR1cm4gdGhpcy5ifTt2YXIgWTU9c2ZiKGp6ZSwnUHJvcGVydHknLDExKTtmZWIoNjcxLDEsZnllLHVHZCk7Xy5OZT1mdW5jdGlvbiB2R2QoYSxiKXtyZXR1cm4gdEdkKHRoaXMsUkQoYSw5NiksUkQoYiw5NikpfTtfLkZiPWZ1bmN0aW9uIHdHZChhKXtyZXR1cm4gdGhpcz09PWF9O18uT2U9ZnVuY3Rpb24geEdkKCl7cmV0dXJuIG5ldyBGcmIodGhpcyl9O3ZhciBYNT1zZmIoanplLCdQcm9wZXJ0eUhvbGRlckNvbXBhcmF0b3InLDY3MSk7ZmViKDcwOSwxLEF2ZSxRR2QpO18uTmI9ZnVuY3Rpb24gUkdkKGEpe1p0Yih0aGlzLGEpfTtfLlBiPWZ1bmN0aW9uIFRHZCgpe3JldHVybiBQR2QodGhpcyl9O18uUWI9ZnVuY3Rpb24gVUdkKCl7JHRiKCl9O18uT2I9ZnVuY3Rpb24gU0dkKCl7cmV0dXJuICEhdGhpcy5hfTt2YXIgWjU9c2ZiKEtJZSwnRWxrR3JhcGhVdGlsL0FuY2VzdG9ySXRlcmF0b3InLDcwOSk7dmFyIFk2PXVmYihzSWUsJ0VMaXN0Jyk7ZmViKDcwLDU2LHsyMDoxLDMxOjEsNTY6MSwxNjoxLDE1OjEsNzA6MSw2MToxfSk7Xy5iZD1mdW5jdGlvbiBoSGQoYSxiKXtWR2QodGhpcyxhLGIpfTtfLkZjPWZ1bmN0aW9uIGlIZChhKXtyZXR1cm4gV0dkKHRoaXMsYSl9O18uY2Q9ZnVuY3Rpb24gakhkKGEsYil7cmV0dXJuIFhHZCh0aGlzLGEsYil9O18uR2M9ZnVuY3Rpb24ga0hkKGEpe3JldHVybiBZR2QodGhpcyxhKX07Xy5JaT1mdW5jdGlvbiBsSGQoKXtyZXR1cm4gbmV3IHlNZCh0aGlzKX07Xy5KaT1mdW5jdGlvbiBtSGQoKXtyZXR1cm4gbmV3IEJNZCh0aGlzKX07Xy5LaT1mdW5jdGlvbiBuSGQoYSl7cmV0dXJuIFpHZCh0aGlzLGEpfTtfLkxpPWZ1bmN0aW9uIG9IZCgpe3JldHVybiB0cnVlfTtfLk1pPWZ1bmN0aW9uIHBIZChhLGIpe307Xy5OaT1mdW5jdGlvbiBxSGQoKXt9O18uT2k9ZnVuY3Rpb24gckhkKGEsYil7JEdkKHRoaXMsYSxiKX07Xy5QaT1mdW5jdGlvbiBzSGQoYSxiLGMpe307Xy5RaT1mdW5jdGlvbiB0SGQoYSxiKXt9O18uUmk9ZnVuY3Rpb24gdUhkKGEsYixjKXt9O18uRmI9ZnVuY3Rpb24gdkhkKGEpe3JldHVybiBfR2QodGhpcyxhKX07Xy5IYj1mdW5jdGlvbiB3SGQoKXtyZXR1cm4gY0hkKHRoaXMpfTtfLlNpPWZ1bmN0aW9uIHhIZCgpe3JldHVybiBmYWxzZX07Xy5LYz1mdW5jdGlvbiB5SGQoKXtyZXR1cm4gbmV3IGRNZCh0aGlzKX07Xy5lZD1mdW5jdGlvbiB6SGQoKXtyZXR1cm4gbmV3IG1NZCh0aGlzKX07Xy5mZD1mdW5jdGlvbiBBSGQoYSl7dmFyIGI7Yj10aGlzLmdjKCk7aWYoYTwwfHxhPmIpdGhyb3cgQWRiKG5ldyBhTWQoYSxiKSk7cmV0dXJuIG5ldyBuTWQodGhpcyxhKX07Xy5VaT1mdW5jdGlvbiBCSGQoYSxiKXt0aGlzLlRpKGEsdGhpcy5kZChiKSl9O18uTWM9ZnVuY3Rpb24gQ0hkKGEpe3JldHVybiBkSGQodGhpcyxhKX07Xy5XaT1mdW5jdGlvbiBESGQoYSxiKXtyZXR1cm4gYn07Xy5oZD1mdW5jdGlvbiBFSGQoYSxiKXtyZXR1cm4gZUhkKHRoaXMsYSxiKX07Xy5JYj1mdW5jdGlvbiBGSGQoKXtyZXR1cm4gZkhkKHRoaXMpfTtfLllpPWZ1bmN0aW9uIEdIZCgpe3JldHVybiB0cnVlfTtfLlppPWZ1bmN0aW9uIEhIZChhLGIpe3JldHVybiBnSGQodGhpcyxiKX07dmFyIHU2PXNmYihzSWUsJ0Fic3RyYWN0RUxpc3QnLDcwKTtmZWIoNjYsNzAsUEllLFlIZCxaSGQsJEhkKTtfLkVpPWZ1bmN0aW9uIF9IZChhLGIpe3JldHVybiBJSGQodGhpcyxhLGIpfTtfLkZpPWZ1bmN0aW9uIGFJZChhKXtyZXR1cm4gSkhkKHRoaXMsYSl9O18uR2k9ZnVuY3Rpb24gYklkKGEsYil7S0hkKHRoaXMsYSxiKX07Xy5IaT1mdW5jdGlvbiBjSWQoYSl7TEhkKHRoaXMsYSl9O18uJGk9ZnVuY3Rpb24gZElkKGEpe3JldHVybiBOSGQodGhpcyxhKX07Xy4kYj1mdW5jdGlvbiBlSWQoKXtPSGQodGhpcyl9O18uSGM9ZnVuY3Rpb24gZklkKGEpe3JldHVybiBQSGQodGhpcyxhKX07Xy5YYj1mdW5jdGlvbiBnSWQoYSl7cmV0dXJuIFFIZCh0aGlzLGEpfTtfLl9pPWZ1bmN0aW9uIGhJZChhKXt2YXIgYixjLGQ7Kyt0aGlzLmo7Yz10aGlzLmc9PW51bGw/MDp0aGlzLmcubGVuZ3RoO2lmKGE+Yyl7ZD10aGlzLmc7Yj1jKyhjLzJ8MCkrNDtiPGEmJihiPWEpO3RoaXMuZz10aGlzLmFqKGIpO2QhPW51bGwmJmhpYihkLDAsdGhpcy5nLDAsdGhpcy5pKX19O18uZGQ9ZnVuY3Rpb24gaUlkKGEpe3JldHVybiBSSGQodGhpcyxhKX07Xy5kYz1mdW5jdGlvbiBqSWQoKXtyZXR1cm4gdGhpcy5pPT0wfTtfLlRpPWZ1bmN0aW9uIGtJZChhLGIpe3JldHVybiBTSGQodGhpcyxhLGIpfTtfLmFqPWZ1bmN0aW9uIGxJZChhKXtyZXR1cm4gJEMoakoscnZlLDEsYSw1LDEpfTtfLlZpPWZ1bmN0aW9uIG1JZChhKXtyZXR1cm4gdGhpcy5nW2FdfTtfLmdkPWZ1bmN0aW9uIG5JZChhKXtyZXR1cm4gVEhkKHRoaXMsYSl9O18uWGk9ZnVuY3Rpb24gb0lkKGEsYil7cmV0dXJuIFVIZCh0aGlzLGEsYil9O18uZ2M9ZnVuY3Rpb24gcElkKCl7cmV0dXJuIHRoaXMuaX07Xy5QYz1mdW5jdGlvbiBxSWQoKXtyZXR1cm4gV0hkKHRoaXMpfTtfLlFjPWZ1bmN0aW9uIHJJZChhKXtyZXR1cm4gWEhkKHRoaXMsYSl9O18uaT0wO3ZhciBENj1zZmIoc0llLCdCYXNpY0VMaXN0Jyw2Nik7dmFyIGE3PXVmYihzSWUsJ1RyZWVJdGVyYXRvcicpO2ZlYig3MDgsNjYsUUllKTtfLk5iPWZ1bmN0aW9uIHZJZChhKXtadGIodGhpcyxhKX07Xy5PYj1mdW5jdGlvbiB3SWQoKXtyZXR1cm4gdGhpcy5nPT1udWxsJiYhdGhpcy5jP3NJZCh0aGlzKTp0aGlzLmc9PW51bGx8fHRoaXMuaSE9MCYmUkQodGhpcy5nW3RoaXMuaS0xXSw1MSkuT2IoKX07Xy5QYj1mdW5jdGlvbiB4SWQoKXtyZXR1cm4gdElkKHRoaXMpfTtfLlFiPWZ1bmN0aW9uIHlJZCgpe2lmKCF0aGlzLmUpe3Rocm93IEFkYihuZXcgZGdiKCdUaGVyZSBpcyBubyB2YWxpZCBvYmplY3QgdG8gcmVtb3ZlLicpKX10aGlzLmUuUWIoKX07Xy5jPWZhbHNlO3ZhciB2Nj1zZmIoc0llLCdBYnN0cmFjdFRyZWVJdGVyYXRvcicsNzA4KTtmZWIoNzAwLDcwOCxRSWUseklkKTtfLmJqPWZ1bmN0aW9uIEFJZChhKXt2YXIgYjtiPVJEKGEsNTgpLkdoKCkuS2MoKTtaRChiLDI4NykmJlJEKGIsMjg3KS53bChuZXcgQklkKTtyZXR1cm4gYn07dmFyIF81PXNmYihLSWUsJ0Vsa0dyYXBoVXRpbC9Qcm9wZXJ0aWVzU2tpcHBpbmdUcmVlSXRlcmF0b3InLDcwMCk7ZmViKDk2NSwxLHt9LEJJZCk7dmFyICQ1PXNmYihLSWUsJ0Vsa0dyYXBoVXRpbC9Qcm9wZXJ0aWVzU2tpcHBpbmdUcmVlSXRlcmF0b3IvMScsOTY1KTt2YXIgQ0lkLERJZDt2YXIgYjY9c2ZiKEtJZSwnRWxrUmVmbGVjdCcsbnVsbCk7ZmViKDkwMSwxLENHZSxKSWQpO18uUmc9ZnVuY3Rpb24gS0lkKGEpe3JldHVybiBFSWQoKSxBc2IoUkQoYSwxODEpKX07dmFyIGE2PXNmYihLSWUsJ0Vsa1JlZmxlY3QvbGFtYmRhJDAkVHlwZScsOTAxKTt2YXIgTElkO3ZhciBfNj11ZmIoc0llLCdSZXNvdXJjZUxvY2F0b3InKTtmZWIoMTA2NSwxLHt9KTt2YXIgUzY9c2ZiKHNJZSwnRGVsZWdhdGluZ1Jlc291cmNlTG9jYXRvcicsMTA2NSk7ZmViKDEwNjYsMTA2NSx7fSk7dmFyIGM2PXNmYignb3JnLmVjbGlwc2UuZW1mLmNvbW1vbicsJ0VNRlBsdWdpbicsMTA2Nik7dmFyIGQ2PXVmYihESmUsJ0FkYXB0ZXInKTt2YXIgZTY9dWZiKERKZSwnTm90aWZpY2F0aW9uJyk7ZmViKDExNzQsMSxFSmUpO18uY2o9ZnVuY3Rpb24gVklkKCl7cmV0dXJuIHRoaXMuZH07Xy5kaj1mdW5jdGlvbiBXSWQoYSl7fTtfLmVqPWZ1bmN0aW9uIFhJZChhKXt0aGlzLmQ9YX07Xy5maj1mdW5jdGlvbiBZSWQoYSl7dGhpcy5kPT1hJiYodGhpcy5kPW51bGwpfTtfLmQ9bnVsbDt2YXIgZjY9c2ZiKEpIZSwnQWRhcHRlckltcGwnLDExNzQpO2ZlYigyMDkzLDcwLEZKZSk7Xy5FaT1mdW5jdGlvbiBkSmQoYSxiKXtyZXR1cm4gWklkKHRoaXMsYSxiKX07Xy5GaT1mdW5jdGlvbiBlSmQoYSl7dmFyIGIsYyxkOysrdGhpcy5qO2lmKGEuZGMoKSl7cmV0dXJuIGZhbHNlfWVsc2V7Yj10aGlzLkVqKCk7Zm9yKGQ9YS5LYygpO2QuT2IoKTspe2M9ZC5QYigpO3RoaXMucmoodGhpcy5aaShiLGMpKTsrK2J9cmV0dXJuIHRydWV9fTtfLkdpPWZ1bmN0aW9uIGZKZChhLGIpeyRJZCh0aGlzLGEsYil9O18uSGk9ZnVuY3Rpb24gZ0pkKGEpe19JZCh0aGlzLGEpfTtfLnBqPWZ1bmN0aW9uIGhKZCgpe3JldHVybiB0aGlzLnNqKCl9O18uJGI9ZnVuY3Rpb24gaUpkKCl7YUpkKHRoaXMsdGhpcy5FaigpLHRoaXMuRmooKSl9O18uSGM9ZnVuY3Rpb24gakpkKGEpe3JldHVybiB0aGlzLnVqKGEpfTtfLkljPWZ1bmN0aW9uIGtKZChhKXtyZXR1cm4gdGhpcy52aihhKX07Xy5xaj1mdW5jdGlvbiBsSmQoYSxiKXt0aGlzLkJqKCkuVW0oKX07Xy5yaj1mdW5jdGlvbiBtSmQoYSl7dGhpcy5CaigpLlVtKCl9O18uc2o9ZnVuY3Rpb24gbkpkKCl7cmV0dXJuIHRoaXMuQmooKX07Xy50aj1mdW5jdGlvbiBvSmQoKXt0aGlzLkJqKCkuVW0oKX07Xy51aj1mdW5jdGlvbiBwSmQoYSl7cmV0dXJuIHRoaXMuQmooKS5VbSgpfTtfLnZqPWZ1bmN0aW9uIHFKZChhKXtyZXR1cm4gdGhpcy5CaigpLlVtKCl9O18ud2o9ZnVuY3Rpb24gckpkKGEpe3JldHVybiB0aGlzLkJqKCkuVW0oKX07Xy54aj1mdW5jdGlvbiBzSmQoYSl7cmV0dXJuIHRoaXMuQmooKS5VbSgpfTtfLnlqPWZ1bmN0aW9uIHRKZCgpe3JldHVybiB0aGlzLkJqKCkuVW0oKX07Xy56aj1mdW5jdGlvbiB1SmQoYSl7cmV0dXJuIHRoaXMuQmooKS5VbSgpfTtfLkFqPWZ1bmN0aW9uIHZKZCgpe3JldHVybiB0aGlzLkJqKCkuVW0oKX07Xy5Daj1mdW5jdGlvbiB3SmQoYSl7cmV0dXJuIHRoaXMuQmooKS5VbSgpfTtfLkRqPWZ1bmN0aW9uIHhKZChhLGIpe3JldHVybiB0aGlzLkJqKCkuVW0oKX07Xy5Faj1mdW5jdGlvbiB5SmQoKXtyZXR1cm4gdGhpcy5CaigpLlVtKCl9O18uRmo9ZnVuY3Rpb24gekpkKCl7cmV0dXJuIHRoaXMuQmooKS5VbSgpfTtfLkdqPWZ1bmN0aW9uIEFKZChhKXtyZXR1cm4gdGhpcy5CaigpLlVtKCl9O18uSGo9ZnVuY3Rpb24gQkpkKCl7cmV0dXJuIHRoaXMuQmooKS5VbSgpfTtfLkZiPWZ1bmN0aW9uIENKZChhKXtyZXR1cm4gdGhpcy53aihhKX07Xy5YYj1mdW5jdGlvbiBESmQoYSl7cmV0dXJuIHRoaXMuV2koYSx0aGlzLnhqKGEpKX07Xy5IYj1mdW5jdGlvbiBFSmQoKXtyZXR1cm4gdGhpcy55aigpfTtfLmRkPWZ1bmN0aW9uIEZKZChhKXtyZXR1cm4gdGhpcy56aihhKX07Xy5kYz1mdW5jdGlvbiBHSmQoKXtyZXR1cm4gdGhpcy5BaigpfTtfLlRpPWZ1bmN0aW9uIEhKZChhLGIpe3JldHVybiBiSmQodGhpcyxhLGIpfTtfLlZpPWZ1bmN0aW9uIElKZChhKXtyZXR1cm4gdGhpcy54aihhKX07Xy5nZD1mdW5jdGlvbiBKSmQoYSl7cmV0dXJuIGNKZCh0aGlzLGEpfTtfLk1jPWZ1bmN0aW9uIEtKZChhKXt2YXIgYjtiPXRoaXMuZGQoYSk7aWYoYj49MCl7dGhpcy5nZChiKTtyZXR1cm4gdHJ1ZX1lbHNle3JldHVybiBmYWxzZX19O18uWGk9ZnVuY3Rpb24gTEpkKGEsYil7cmV0dXJuIHRoaXMuRGooYSx0aGlzLlppKGEsYikpfTtfLmdjPWZ1bmN0aW9uIE1KZCgpe3JldHVybiB0aGlzLkVqKCl9O18uUGM9ZnVuY3Rpb24gTkpkKCl7cmV0dXJuIHRoaXMuRmooKX07Xy5RYz1mdW5jdGlvbiBPSmQoYSl7cmV0dXJuIHRoaXMuR2ooYSl9O18uSWI9ZnVuY3Rpb24gUEpkKCl7cmV0dXJuIHRoaXMuSGooKX07dmFyIFI2PXNmYihzSWUsJ0RlbGVnYXRpbmdFTGlzdCcsMjA5Myk7ZmViKDIwOTQsMjA5MyxGSmUpO18uRWk9ZnVuY3Rpb24gWEpkKGEsYil7cmV0dXJuIFFKZCh0aGlzLGEsYil9O18uRmk9ZnVuY3Rpb24gWUpkKGEpe3JldHVybiB0aGlzLkVpKHRoaXMuRWooKSxhKX07Xy5HaT1mdW5jdGlvbiBaSmQoYSxiKXtSSmQodGhpcyxhLGIpfTtfLkhpPWZ1bmN0aW9uICRKZChhKXtTSmQodGhpcyxhKX07Xy5MaT1mdW5jdGlvbiBfSmQoKXtyZXR1cm4gIXRoaXMuTWooKX07Xy4kYj1mdW5jdGlvbiBhS2QoKXtWSmQodGhpcyl9O18uSWo9ZnVuY3Rpb24gYktkKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBhTGQodGhpcyxhLGIsYyxkLGUpfTtfLkpqPWZ1bmN0aW9uIGNLZChhKXtxdmQodGhpcy5qaigpLGEpfTtfLktqPWZ1bmN0aW9uIGRLZCgpe3JldHVybiBudWxsfTtfLkxqPWZ1bmN0aW9uIGVLZCgpe3JldHVybiAtMX07Xy5qaj1mdW5jdGlvbiBmS2QoKXtyZXR1cm4gbnVsbH07Xy5Naj1mdW5jdGlvbiBnS2QoKXtyZXR1cm4gZmFsc2V9O18uTmo9ZnVuY3Rpb24gaEtkKGEsYil7cmV0dXJuIGJ9O18uT2o9ZnVuY3Rpb24gaUtkKGEsYil7cmV0dXJuIGJ9O18uUGo9ZnVuY3Rpb24gaktkKCl7cmV0dXJuIGZhbHNlfTtfLlFqPWZ1bmN0aW9uIGtLZCgpe3JldHVybiAhdGhpcy5BaigpfTtfLlRpPWZ1bmN0aW9uIGxLZChhLGIpe3ZhciBjLGQ7aWYodGhpcy5QaigpKXtkPXRoaXMuUWooKTtjPWJKZCh0aGlzLGEsYik7dGhpcy5Kaih0aGlzLklqKDcsc2diKGIpLGMsYSxkKSk7cmV0dXJuIGN9ZWxzZXtyZXR1cm4gYkpkKHRoaXMsYSxiKX19O18uZ2Q9ZnVuY3Rpb24gbUtkKGEpe3ZhciBiLGMsZCxlO2lmKHRoaXMuUGooKSl7Yz1udWxsO2Q9dGhpcy5RaigpO2I9dGhpcy5Jaig0LGU9Y0pkKHRoaXMsYSksbnVsbCxhLGQpO2lmKHRoaXMuTWooKSYmISFlKXtjPXRoaXMuT2ooZSxjKTtpZighYyl7dGhpcy5KaihiKX1lbHNle2MubmooYik7Yy5vaigpfX1lbHNle2lmKCFjKXt0aGlzLkpqKGIpfWVsc2V7Yy5uaihiKTtjLm9qKCl9fXJldHVybiBlfWVsc2V7ZT1jSmQodGhpcyxhKTtpZih0aGlzLk1qKCkmJiEhZSl7Yz10aGlzLk9qKGUsbnVsbCk7ISFjJiZjLm9qKCl9cmV0dXJuIGV9fTtfLlhpPWZ1bmN0aW9uIG5LZChhLGIpe3JldHVybiBXSmQodGhpcyxhLGIpfTt2YXIgaTY9c2ZiKEpIZSwnRGVsZWdhdGluZ05vdGlmeWluZ0xpc3RJbXBsJywyMDk0KTtmZWIoMTUyLDEsR0plKTtfLm5qPWZ1bmN0aW9uIFBLZChhKXtyZXR1cm4gb0tkKHRoaXMsYSl9O18ub2o9ZnVuY3Rpb24gUUtkKCl7cEtkKHRoaXMpfTtfLmdqPWZ1bmN0aW9uIFJLZCgpe3JldHVybiB0aGlzLmR9O18uS2o9ZnVuY3Rpb24gU0tkKCl7cmV0dXJuIG51bGx9O18uUmo9ZnVuY3Rpb24gVEtkKCl7cmV0dXJuIG51bGx9O18uaGo9ZnVuY3Rpb24gVUtkKGEpe3JldHVybiAtMX07Xy5paj1mdW5jdGlvbiBWS2QoKXtyZXR1cm4geUtkKHRoaXMpfTtfLmpqPWZ1bmN0aW9uIFdLZCgpe3JldHVybiBudWxsfTtfLmtqPWZ1bmN0aW9uIFhLZCgpe3JldHVybiBIS2QodGhpcyl9O18ubGo9ZnVuY3Rpb24gWUtkKCl7cmV0dXJuIHRoaXMubzwwP3RoaXMubzwtMj8tMi10aGlzLm8tMTotMTp0aGlzLm99O18uU2o9ZnVuY3Rpb24gWktkKCl7cmV0dXJuIGZhbHNlfTtfLm1qPWZ1bmN0aW9uICRLZChhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsO3N3aXRjaCh0aGlzLmQpe2Nhc2UgMTpjYXNlIDI6e2U9YS5naigpO3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOntmPWEuamooKTtpZihkRShmKT09PWRFKHRoaXMuamooKSkmJnRoaXMuaGoobnVsbCk9PWEuaGoobnVsbCkpe3RoaXMuZz1hLmlqKCk7YS5naigpPT0xJiYodGhpcy5kPTEpO3JldHVybiB0cnVlfX19fWNhc2UgNDp7ZT1hLmdqKCk7c3dpdGNoKGUpe2Nhc2UgNDp7Zj1hLmpqKCk7aWYoZEUoZik9PT1kRSh0aGlzLmpqKCkpJiZ0aGlzLmhqKG51bGwpPT1hLmhqKG51bGwpKXtqPUpLZCh0aGlzKTtpPXRoaXMubzwwP3RoaXMubzwtMj8tMi10aGlzLm8tMTotMTp0aGlzLm87Zz1hLmxqKCk7dGhpcy5kPTY7bD1uZXcgWkhkKDIpO2lmKGk8PWcpe1dHZChsLHRoaXMubik7V0dkKGwsYS5raigpKTt0aGlzLmc9Y0QoV0Moa0UsMSksUHdlLDI4LDE1LFt0aGlzLm89aSxnKzFdKX1lbHNle1dHZChsLGEua2ooKSk7V0dkKGwsdGhpcy5uKTt0aGlzLmc9Y0QoV0Moa0UsMSksUHdlLDI4LDE1LFt0aGlzLm89ZyxpXSl9dGhpcy5uPWw7anx8KHRoaXMubz0tMi10aGlzLm8tMSk7cmV0dXJuIHRydWV9YnJlYWt9fWJyZWFrfWNhc2UgNjp7ZT1hLmdqKCk7c3dpdGNoKGUpe2Nhc2UgNDp7Zj1hLmpqKCk7aWYoZEUoZik9PT1kRSh0aGlzLmpqKCkpJiZ0aGlzLmhqKG51bGwpPT1hLmhqKG51bGwpKXtqPUpLZCh0aGlzKTtnPWEubGooKTtrPVJEKHRoaXMuZyw1Myk7ZD0kQyhrRSxQd2UsMjgsay5sZW5ndGgrMSwxNSwxKTtiPTA7d2hpbGUoYjxrLmxlbmd0aCl7aD1rW2JdO2lmKGg8PWcpe2RbYisrXT1oOysrZ31lbHNle2JyZWFrfX1jPVJEKHRoaXMubiwxNSk7Yy5iZChiLGEua2ooKSk7ZFtiXT1nO3doaWxlKCsrYjxkLmxlbmd0aCl7ZFtiXT1rW2ItMV19dGhpcy5nPWQ7anx8KHRoaXMubz0tMi1kWzBdKTtyZXR1cm4gdHJ1ZX1icmVha319YnJlYWt9fXJldHVybiBmYWxzZX07Xy5JYj1mdW5jdGlvbiBfS2QoKXt2YXIgYSxiLGMsZDtkPW5ldyBTaGIobmZiKHRoaXMuUm0pKydAJysoYj10Yih0aGlzKT4+PjAsYi50b1N0cmluZygxNikpKTtkLmErPScgKGV2ZW50VHlwZTogJztzd2l0Y2godGhpcy5kKXtjYXNlIDE6e2QuYSs9J1NFVCc7YnJlYWt9Y2FzZSAyOntkLmErPSdVTlNFVCc7YnJlYWt9Y2FzZSAzOntkLmErPSdBREQnO2JyZWFrfWNhc2UgNTp7ZC5hKz0nQUREX01BTlknO2JyZWFrfWNhc2UgNDp7ZC5hKz0nUkVNT1ZFJzticmVha31jYXNlIDY6e2QuYSs9J1JFTU9WRV9NQU5ZJzticmVha31jYXNlIDc6e2QuYSs9J01PVkUnO2JyZWFrfWNhc2UgODp7ZC5hKz0nUkVNT1ZJTkdfQURBUFRFUic7YnJlYWt9Y2FzZSA5OntkLmErPSdSRVNPTFZFJzticmVha31kZWZhdWx0OntMaGIoZCx0aGlzLmQpO2JyZWFrfX1JS2QodGhpcykmJihkLmErPScsIHRvdWNoOiB0cnVlJyxkKTtkLmErPScsIHBvc2l0aW9uOiAnO0xoYihkLHRoaXMubzwwP3RoaXMubzwtMj8tMi10aGlzLm8tMTotMTp0aGlzLm8pO2QuYSs9Jywgbm90aWZpZXI6ICc7TWhiKGQsdGhpcy5qaigpKTtkLmErPScsIGZlYXR1cmU6ICc7TWhiKGQsdGhpcy5LaigpKTtkLmErPScsIG9sZFZhbHVlOiAnO01oYihkLEhLZCh0aGlzKSk7ZC5hKz0nLCBuZXdWYWx1ZTogJztpZih0aGlzLmQ9PTYmJlpEKHRoaXMuZyw1Mykpe2M9UkQodGhpcy5nLDUzKTtkLmErPSdbJztmb3IoYT0wO2E8Yy5sZW5ndGg7KXtkLmErPWNbYV07KythPGMubGVuZ3RoJiYoZC5hKz1wdmUsZCl9ZC5hKz0nXSd9ZWxzZXtNaGIoZCx5S2QodGhpcykpfWQuYSs9JywgaXNUb3VjaDogJztPaGIoZCxJS2QodGhpcykpO2QuYSs9Jywgd2FzU2V0OiAnO09oYihkLEpLZCh0aGlzKSk7ZC5hKz0nKSc7cmV0dXJuIGQuYX07Xy5kPTA7Xy5lPTA7Xy5mPTA7Xy5qPTA7Xy5rPTA7Xy5vPTA7Xy5wPTA7dmFyIGs2PXNmYihKSGUsJ05vdGlmaWNhdGlvbkltcGwnLDE1Mik7ZmViKDExODgsMTUyLEdKZSxhTGQpO18uS2o9ZnVuY3Rpb24gYkxkKCl7cmV0dXJuIHRoaXMuYS5LaigpfTtfLmhqPWZ1bmN0aW9uIGNMZChhKXtyZXR1cm4gdGhpcy5hLkxqKCl9O18uamo9ZnVuY3Rpb24gZExkKCl7cmV0dXJuIHRoaXMuYS5qaigpfTt2YXIgaDY9c2ZiKEpIZSwnRGVsZWdhdGluZ05vdGlmeWluZ0xpc3RJbXBsLzEnLDExODgpO2ZlYigyNTEsNjYsUEllLGZMZCxnTGQpO18uRmM9ZnVuY3Rpb24gaExkKGEpe3JldHVybiBlTGQodGhpcyxSRChhLDM3OCkpfTtfLm5qPWZ1bmN0aW9uIGlMZChhKXtyZXR1cm4gZUxkKHRoaXMsYSl9O18ub2o9ZnVuY3Rpb24gakxkKCl7dmFyIGEsYixjO2ZvcihhPTA7YTx0aGlzLmk7KythKXtiPVJEKHRoaXMuZ1thXSwzNzgpO2M9Yi5qaigpO2MhPW51bGwmJmIuZ2ooKSE9LTEmJlJEKGMsOTQpLnhoKGIpfX07Xy5haj1mdW5jdGlvbiBrTGQoYSl7cmV0dXJuICRDKGU2LHJ2ZSwzNzgsYSwwLDEpfTt2YXIgajY9c2ZiKEpIZSwnTm90aWZpY2F0aW9uQ2hhaW5JbXBsJywyNTEpO2ZlYigxNTI0LDkzLElIZSk7Xy51aD1mdW5jdGlvbiBsTGQoKXtyZXR1cm4gdGhpcy5lfTtfLndoPWZ1bmN0aW9uIG1MZCgpe3JldHVybiAodGhpcy5mJjEpIT0wfTtfLmY9MTt2YXIgbDY9c2ZiKEpIZSwnTm90aWZpZXJJbXBsJywxNTI0KTtmZWIoMjA5MSw2NixQSWUpO18uRWk9ZnVuY3Rpb24geUxkKGEsYil7cmV0dXJuIG5MZCh0aGlzLGEsYil9O18uRmk9ZnVuY3Rpb24gekxkKGEpe3JldHVybiB0aGlzLkVpKHRoaXMuaSxhKX07Xy5HaT1mdW5jdGlvbiBBTGQoYSxiKXtvTGQodGhpcyxhLGIpfTtfLkhpPWZ1bmN0aW9uIEJMZChhKXtwTGQodGhpcyxhKX07Xy5MaT1mdW5jdGlvbiBDTGQoKXtyZXR1cm4gIXRoaXMuTWooKX07Xy4kYj1mdW5jdGlvbiBETGQoKXtzTGQodGhpcyl9O18uSWo9ZnVuY3Rpb24gRUxkKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBWTGQodGhpcyxhLGIsYyxkLGUpfTtfLkpqPWZ1bmN0aW9uIEZMZChhKXtxdmQodGhpcy5qaigpLGEpfTtfLktqPWZ1bmN0aW9uIEdMZCgpe3JldHVybiBudWxsfTtfLkxqPWZ1bmN0aW9uIEhMZCgpe3JldHVybiAtMX07Xy5qaj1mdW5jdGlvbiBJTGQoKXtyZXR1cm4gbnVsbH07Xy5Naj1mdW5jdGlvbiBKTGQoKXtyZXR1cm4gZmFsc2V9O18uVGo9ZnVuY3Rpb24gS0xkKCl7cmV0dXJuIGZhbHNlfTtfLk5qPWZ1bmN0aW9uIExMZChhLGIpe3JldHVybiBifTtfLk9qPWZ1bmN0aW9uIE1MZChhLGIpe3JldHVybiBifTtfLlBqPWZ1bmN0aW9uIE5MZCgpe3JldHVybiBmYWxzZX07Xy5Raj1mdW5jdGlvbiBPTGQoKXtyZXR1cm4gdGhpcy5pIT0wfTtfLlRpPWZ1bmN0aW9uIFBMZChhLGIpe3JldHVybiB1TGQodGhpcyxhLGIpfTtfLmdkPWZ1bmN0aW9uIFFMZChhKXtyZXR1cm4gdkxkKHRoaXMsYSl9O18uWGk9ZnVuY3Rpb24gUkxkKGEsYil7cmV0dXJuIHhMZCh0aGlzLGEsYil9O18uVWo9ZnVuY3Rpb24gU0xkKGEsYil7cmV0dXJuIGJ9O18uVmo9ZnVuY3Rpb24gVExkKGEsYil7cmV0dXJuIGJ9O18uV2o9ZnVuY3Rpb24gVUxkKGEsYixjKXtyZXR1cm4gY307dmFyIG42PXNmYihKSGUsJ05vdGlmeWluZ0xpc3RJbXBsJywyMDkxKTtmZWIoMTE4NywxNTIsR0plLFZMZCk7Xy5Laj1mdW5jdGlvbiBXTGQoKXtyZXR1cm4gdGhpcy5hLktqKCl9O18uaGo9ZnVuY3Rpb24gWExkKGEpe3JldHVybiB0aGlzLmEuTGooKX07Xy5qaj1mdW5jdGlvbiBZTGQoKXtyZXR1cm4gdGhpcy5hLmpqKCl9O3ZhciBtNj1zZmIoSkhlLCdOb3RpZnlpbmdMaXN0SW1wbC8xJywxMTg3KTtmZWIoOTY2LDY2LFBJZSxaTGQpO18uSGM9ZnVuY3Rpb24gJExkKGEpe2lmKHRoaXMuaT4xMCl7aWYoIXRoaXMuYnx8dGhpcy5jLmohPXRoaXMuYSl7dGhpcy5iPW5ldyBidGIodGhpcyk7dGhpcy5hPXRoaXMuan1yZXR1cm4gWnNiKHRoaXMuYixhKX1lbHNle3JldHVybiBQSGQodGhpcyxhKX19O18uWWk9ZnVuY3Rpb24gX0xkKCl7cmV0dXJuIHRydWV9O18uYT0wO3ZhciBvNj1zZmIoc0llLCdBYnN0cmFjdEVMaXN0LzEnLDk2Nik7ZmViKDMwMiw3NyxseGUsYU1kKTt2YXIgcDY9c2ZiKHNJZSwnQWJzdHJhY3RFTGlzdC9CYXNpY0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24nLDMwMik7ZmViKDM3LDEsQXZlLGRNZCk7Xy5OYj1mdW5jdGlvbiBnTWQoYSl7WnRiKHRoaXMsYSl9O18uWGo9ZnVuY3Rpb24gZU1kKCl7aWYodGhpcy5pLmohPXRoaXMuZil7dGhyb3cgQWRiKG5ldyBKcmIpfX07Xy5Zaj1mdW5jdGlvbiBmTWQoKXtyZXR1cm4gYk1kKHRoaXMpfTtfLk9iPWZ1bmN0aW9uIGhNZCgpe3JldHVybiB0aGlzLmUhPXRoaXMuaS5nYygpfTtfLlBiPWZ1bmN0aW9uIGlNZCgpe3JldHVybiB0aGlzLllqKCl9O18uUWI9ZnVuY3Rpb24gak1kKCl7Y01kKHRoaXMpfTtfLmU9MDtfLmY9MDtfLmc9LTE7dmFyIHE2PXNmYihzSWUsJ0Fic3RyYWN0RUxpc3QvRUl0ZXJhdG9yJywzNyk7ZmViKDI4NiwzNyxKdmUsbU1kLG5NZCk7Xy5RYj1mdW5jdGlvbiB2TWQoKXtjTWQodGhpcyl9O18uUmI9ZnVuY3Rpb24gb01kKGEpe2tNZCh0aGlzLGEpfTtfLlpqPWZ1bmN0aW9uIHBNZCgpe3ZhciBiO3RyeXtiPXRoaXMuZC5YYigtLXRoaXMuZSk7dGhpcy5YaigpO3RoaXMuZz10aGlzLmU7cmV0dXJuIGJ9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSw3Nykpe3RoaXMuWGooKTt0aHJvdyBBZGIobmV3IER2Yil9ZWxzZSB0aHJvdyBBZGIoYSl9fTtfLiRqPWZ1bmN0aW9uIHFNZChhKXtsTWQodGhpcyxhKX07Xy5TYj1mdW5jdGlvbiByTWQoKXtyZXR1cm4gdGhpcy5lIT0wfTtfLlRiPWZ1bmN0aW9uIHNNZCgpe3JldHVybiB0aGlzLmV9O18uVWI9ZnVuY3Rpb24gdE1kKCl7cmV0dXJuIHRoaXMuWmooKX07Xy5WYj1mdW5jdGlvbiB1TWQoKXtyZXR1cm4gdGhpcy5lLTF9O18uV2I9ZnVuY3Rpb24gd01kKGEpe3RoaXMuJGooYSl9O3ZhciByNj1zZmIoc0llLCdBYnN0cmFjdEVMaXN0L0VMaXN0SXRlcmF0b3InLDI4Nik7ZmViKDM1NSwzNyxBdmUseU1kKTtfLllqPWZ1bmN0aW9uIHpNZCgpe3JldHVybiB4TWQodGhpcyl9O18uUWI9ZnVuY3Rpb24gQU1kKCl7dGhyb3cgQWRiKG5ldyBqaWIpfTt2YXIgczY9c2ZiKHNJZSwnQWJzdHJhY3RFTGlzdC9Ob25SZXNvbHZpbmdFSXRlcmF0b3InLDM1NSk7ZmViKDM5OCwyODYsSnZlLEJNZCxDTWQpO18uUmI9ZnVuY3Rpb24gRE1kKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5Zaj1mdW5jdGlvbiBFTWQoKXt2YXIgYjt0cnl7Yj10aGlzLmMuVmkodGhpcy5lKTt0aGlzLlhqKCk7dGhpcy5nPXRoaXMuZSsrO3JldHVybiBifWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsNzcpKXt0aGlzLlhqKCk7dGhyb3cgQWRiKG5ldyBEdmIpfWVsc2UgdGhyb3cgQWRiKGEpfX07Xy5aaj1mdW5jdGlvbiBGTWQoKXt2YXIgYjt0cnl7Yj10aGlzLmMuVmkoLS10aGlzLmUpO3RoaXMuWGooKTt0aGlzLmc9dGhpcy5lO3JldHVybiBifWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsNzcpKXt0aGlzLlhqKCk7dGhyb3cgQWRiKG5ldyBEdmIpfWVsc2UgdGhyb3cgQWRiKGEpfX07Xy5RYj1mdW5jdGlvbiBHTWQoKXt0aHJvdyBBZGIobmV3IGppYil9O18uV2I9ZnVuY3Rpb24gSE1kKGEpe3Rocm93IEFkYihuZXcgamliKX07dmFyIHQ2PXNmYihzSWUsJ0Fic3RyYWN0RUxpc3QvTm9uUmVzb2x2aW5nRUxpc3RJdGVyYXRvcicsMzk4KTtmZWIoMjA4MCw3MCxKSmUpO18uRWk9ZnVuY3Rpb24gUE1kKGEsYil7dmFyIGMsZCxlLGYsZyxoLGksaixrLGwsbTtlPWIuZ2MoKTtpZihlIT0wKXtqPVJEKFl3ZCh0aGlzLmEsNCksMTI5KTtrPWo9PW51bGw/MDpqLmxlbmd0aDttPWsrZTtkPU5NZCh0aGlzLG0pO2w9ay1hO2w+MCYmaGliKGosYSxkLGErZSxsKTtpPWIuS2MoKTtmb3IoZz0wO2c8ZTsrK2cpe2g9aS5QYigpO2M9YStnO0xNZChkLGMsZ0hkKHRoaXMsaCkpfUJkZSh0aGlzLGQpO2ZvcihmPTA7ZjxlOysrZil7aD1kW2FdO3RoaXMuTWkoYSxoKTsrK2F9cmV0dXJuIHRydWV9ZWxzZXsrK3RoaXMuajtyZXR1cm4gZmFsc2V9fTtfLkZpPWZ1bmN0aW9uIFFNZChhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGo7ZD1hLmdjKCk7aWYoZCE9MCl7aT0oYz1SRChZd2QodGhpcy5hLDQpLDEyOSksYz09bnVsbD8wOmMubGVuZ3RoKTtqPWkrZDtiPU5NZCh0aGlzLGopO2g9YS5LYygpO2ZvcihmPWk7ZjxqOysrZil7Zz1oLlBiKCk7TE1kKGIsZixnSGQodGhpcyxnKSl9QmRlKHRoaXMsYik7Zm9yKGU9aTtlPGo7KytlKXtnPWJbZV07dGhpcy5NaShlLGcpfXJldHVybiB0cnVlfWVsc2V7Kyt0aGlzLmo7cmV0dXJuIGZhbHNlfX07Xy5HaT1mdW5jdGlvbiBSTWQoYSxiKXt2YXIgYyxkLGUsZjtkPVJEKFl3ZCh0aGlzLmEsNCksMTI5KTtlPWQ9PW51bGw/MDpkLmxlbmd0aDtjPU5NZCh0aGlzLGUrMSk7Zj1nSGQodGhpcyxiKTthIT1lJiZoaWIoZCxhLGMsYSsxLGUtYSk7YkQoYyxhLGYpO0JkZSh0aGlzLGMpO3RoaXMuTWkoYSxiKX07Xy5IaT1mdW5jdGlvbiBTTWQoYSl7dmFyIGIsYyxkO2Q9KGM9UkQoWXdkKHRoaXMuYSw0KSwxMjkpLGM9PW51bGw/MDpjLmxlbmd0aCk7Yj1OTWQodGhpcyxkKzEpO0xNZChiLGQsZ0hkKHRoaXMsYSkpO0JkZSh0aGlzLGIpO3RoaXMuTWkoZCxhKX07Xy5JaT1mdW5jdGlvbiBUTWQoKXtyZXR1cm4gbmV3IHNOZCh0aGlzKX07Xy5KaT1mdW5jdGlvbiBVTWQoKXtyZXR1cm4gbmV3IHZOZCh0aGlzKX07Xy5LaT1mdW5jdGlvbiBWTWQoYSl7dmFyIGIsYztjPShiPVJEKFl3ZCh0aGlzLmEsNCksMTI5KSxiPT1udWxsPzA6Yi5sZW5ndGgpO2lmKGE8MHx8YT5jKXRocm93IEFkYihuZXcgYU1kKGEsYykpO3JldHVybiBuZXcgd05kKHRoaXMsYSl9O18uJGI9ZnVuY3Rpb24gV01kKCl7dmFyIGEsYjsrK3RoaXMuajthPVJEKFl3ZCh0aGlzLmEsNCksMTI5KTtiPWE9PW51bGw/MDphLmxlbmd0aDtCZGUodGhpcyxudWxsKTskR2QodGhpcyxiLGEpfTtfLkhjPWZ1bmN0aW9uIFhNZChhKXt2YXIgYixjLGQsZSxmO2I9UkQoWXdkKHRoaXMuYSw0KSwxMjkpO2lmKGIhPW51bGwpe2lmKGEhPW51bGwpe2ZvcihkPWIsZT0wLGY9ZC5sZW5ndGg7ZTxmOysrZSl7Yz1kW2VdO2lmKHBiKGEsYykpe3JldHVybiB0cnVlfX19ZWxzZXtmb3IoZD1iLGU9MCxmPWQubGVuZ3RoO2U8ZjsrK2Upe2M9ZFtlXTtpZihkRShjKT09PWRFKGEpKXtyZXR1cm4gdHJ1ZX19fX1yZXR1cm4gZmFsc2V9O18uWGI9ZnVuY3Rpb24gWU1kKGEpe3ZhciBiLGM7Yj1SRChZd2QodGhpcy5hLDQpLDEyOSk7Yz1iPT1udWxsPzA6Yi5sZW5ndGg7aWYoYT49Yyl0aHJvdyBBZGIobmV3IGFNZChhLGMpKTtyZXR1cm4gYlthXX07Xy5kZD1mdW5jdGlvbiBaTWQoYSl7dmFyIGIsYyxkO2I9UkQoWXdkKHRoaXMuYSw0KSwxMjkpO2lmKGIhPW51bGwpe2lmKGEhPW51bGwpe2ZvcihjPTAsZD1iLmxlbmd0aDtjPGQ7KytjKXtpZihwYihhLGJbY10pKXtyZXR1cm4gY319fWVsc2V7Zm9yKGM9MCxkPWIubGVuZ3RoO2M8ZDsrK2Mpe2lmKGRFKGJbY10pPT09ZEUoYSkpe3JldHVybiBjfX19fXJldHVybiAtMX07Xy5kYz1mdW5jdGlvbiAkTWQoKXtyZXR1cm4gUkQoWXdkKHRoaXMuYSw0KSwxMjkpPT1udWxsfTtfLktjPWZ1bmN0aW9uIF9NZCgpe3JldHVybiBuZXcgak5kKHRoaXMpfTtfLmVkPWZ1bmN0aW9uIGFOZCgpe3JldHVybiBuZXcgbk5kKHRoaXMpfTtfLmZkPWZ1bmN0aW9uIGJOZChhKXt2YXIgYixjO2M9KGI9UkQoWXdkKHRoaXMuYSw0KSwxMjkpLGI9PW51bGw/MDpiLmxlbmd0aCk7aWYoYTwwfHxhPmMpdGhyb3cgQWRiKG5ldyBhTWQoYSxjKSk7cmV0dXJuIG5ldyBvTmQodGhpcyxhKX07Xy5UaT1mdW5jdGlvbiBjTmQoYSxiKXt2YXIgYyxkLGU7Yz1NTWQodGhpcyk7ZT1jPT1udWxsPzA6Yy5sZW5ndGg7aWYoYT49ZSl0aHJvdyBBZGIobmV3IHZlYihNSWUrYStOSWUrZSkpO2lmKGI+PWUpdGhyb3cgQWRiKG5ldyB2ZWIoT0llK2IrTkllK2UpKTtkPWNbYl07aWYoYSE9Yil7YTxiP2hpYihjLGEsYyxhKzEsYi1hKTpoaWIoYyxiKzEsYyxiLGEtYik7YkQoYyxhLGQpO0JkZSh0aGlzLGMpfXJldHVybiBkfTtfLlZpPWZ1bmN0aW9uIGROZChhKXtyZXR1cm4gUkQoWXdkKHRoaXMuYSw0KSwxMjkpW2FdfTtfLmdkPWZ1bmN0aW9uIGVOZChhKXtyZXR1cm4gT01kKHRoaXMsYSl9O18uWGk9ZnVuY3Rpb24gZk5kKGEsYil7dmFyIGMsZDtjPU1NZCh0aGlzKTtkPWNbYV07TE1kKGMsYSxnSGQodGhpcyxiKSk7QmRlKHRoaXMsYyk7cmV0dXJuIGR9O18uZ2M9ZnVuY3Rpb24gZ05kKCl7dmFyIGE7cmV0dXJuIGE9UkQoWXdkKHRoaXMuYSw0KSwxMjkpLGE9PW51bGw/MDphLmxlbmd0aH07Xy5QYz1mdW5jdGlvbiBoTmQoKXt2YXIgYSxiLGM7YT1SRChZd2QodGhpcy5hLDQpLDEyOSk7Yz1hPT1udWxsPzA6YS5sZW5ndGg7Yj0kQyhkNixJSmUsNDI0LGMsMCwxKTtjPjAmJmhpYihhLDAsYiwwLGMpO3JldHVybiBifTtfLlFjPWZ1bmN0aW9uIGlOZChhKXt2YXIgYixjLGQ7Yj1SRChZd2QodGhpcy5hLDQpLDEyOSk7ZD1iPT1udWxsPzA6Yi5sZW5ndGg7aWYoZD4wKXtpZihhLmxlbmd0aDxkKXtjPUlNZChyYihhKS5jLGQpO2E9Y31oaWIoYiwwLGEsMCxkKX1hLmxlbmd0aD5kJiZiRChhLGQsbnVsbCk7cmV0dXJuIGF9O3ZhciBKTWQ7dmFyIEE2PXNmYihzSWUsJ0FycmF5RGVsZWdhdGluZ0VMaXN0JywyMDgwKTtmZWIoMTA1MSwzNyxBdmUsak5kKTtfLlhqPWZ1bmN0aW9uIGtOZCgpe2lmKHRoaXMuYi5qIT10aGlzLmZ8fGRFKFJEKFl3ZCh0aGlzLmIuYSw0KSwxMjkpKSE9PWRFKHRoaXMuYSkpe3Rocm93IEFkYihuZXcgSnJiKX19O18uUWI9ZnVuY3Rpb24gbE5kKCl7Y01kKHRoaXMpO3RoaXMuYT1SRChZd2QodGhpcy5iLmEsNCksMTI5KX07dmFyIHc2PXNmYihzSWUsJ0FycmF5RGVsZWdhdGluZ0VMaXN0L0VJdGVyYXRvcicsMTA1MSk7ZmViKDcyMiwyODYsSnZlLG5OZCxvTmQpO18uWGo9ZnVuY3Rpb24gcE5kKCl7aWYodGhpcy5iLmohPXRoaXMuZnx8ZEUoUkQoWXdkKHRoaXMuYi5hLDQpLDEyOSkpIT09ZEUodGhpcy5hKSl7dGhyb3cgQWRiKG5ldyBKcmIpfX07Xy4kaj1mdW5jdGlvbiBxTmQoYSl7bE1kKHRoaXMsYSk7dGhpcy5hPVJEKFl3ZCh0aGlzLmIuYSw0KSwxMjkpfTtfLlFiPWZ1bmN0aW9uIHJOZCgpe2NNZCh0aGlzKTt0aGlzLmE9UkQoWXdkKHRoaXMuYi5hLDQpLDEyOSl9O3ZhciB4Nj1zZmIoc0llLCdBcnJheURlbGVnYXRpbmdFTGlzdC9FTGlzdEl0ZXJhdG9yJyw3MjIpO2ZlYigxMDUyLDM1NSxBdmUsc05kKTtfLlhqPWZ1bmN0aW9uIHROZCgpe2lmKHRoaXMuYi5qIT10aGlzLmZ8fGRFKFJEKFl3ZCh0aGlzLmIuYSw0KSwxMjkpKSE9PWRFKHRoaXMuYSkpe3Rocm93IEFkYihuZXcgSnJiKX19O3ZhciB5Nj1zZmIoc0llLCdBcnJheURlbGVnYXRpbmdFTGlzdC9Ob25SZXNvbHZpbmdFSXRlcmF0b3InLDEwNTIpO2ZlYig3MjMsMzk4LEp2ZSx2TmQsd05kKTtfLlhqPWZ1bmN0aW9uIHhOZCgpe2lmKHRoaXMuYi5qIT10aGlzLmZ8fGRFKFJEKFl3ZCh0aGlzLmIuYSw0KSwxMjkpKSE9PWRFKHRoaXMuYSkpe3Rocm93IEFkYihuZXcgSnJiKX19O3ZhciB6Nj1zZmIoc0llLCdBcnJheURlbGVnYXRpbmdFTGlzdC9Ob25SZXNvbHZpbmdFTGlzdEl0ZXJhdG9yJyw3MjMpO2ZlYig2MTUsMzAyLGx4ZSx5TmQpO3ZhciBCNj1zZmIoc0llLCdCYXNpY0VMaXN0L0Jhc2ljSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbicsNjE1KTtmZWIoNzEwLDY2LFBJZSx6TmQpO18uYmQ9ZnVuY3Rpb24gQU5kKGEsYil7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLkZjPWZ1bmN0aW9uIEJOZChhKXt0aHJvdyBBZGIobmV3IGppYil9O18uY2Q9ZnVuY3Rpb24gQ05kKGEsYil7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLkdjPWZ1bmN0aW9uIEROZChhKXt0aHJvdyBBZGIobmV3IGppYil9O18uJGI9ZnVuY3Rpb24gRU5kKCl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLl9pPWZ1bmN0aW9uIEZOZChhKXt0aHJvdyBBZGIobmV3IGppYil9O18uS2M9ZnVuY3Rpb24gR05kKCl7cmV0dXJuIHRoaXMuSWkoKX07Xy5lZD1mdW5jdGlvbiBITmQoKXtyZXR1cm4gdGhpcy5KaSgpfTtfLmZkPWZ1bmN0aW9uIElOZChhKXtyZXR1cm4gdGhpcy5LaShhKX07Xy5UaT1mdW5jdGlvbiBKTmQoYSxiKXt0aHJvdyBBZGIobmV3IGppYil9O18uVWk9ZnVuY3Rpb24gS05kKGEsYil7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLmdkPWZ1bmN0aW9uIExOZChhKXt0aHJvdyBBZGIobmV3IGppYil9O18uTWM9ZnVuY3Rpb24gTU5kKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5oZD1mdW5jdGlvbiBOTmQoYSxiKXt0aHJvdyBBZGIobmV3IGppYil9O3ZhciBDNj1zZmIoc0llLCdCYXNpY0VMaXN0L1VubW9kaWZpYWJsZUVMaXN0Jyw3MTApO2ZlYig3MjEsMSx7MzoxLDIwOjEsMTY6MSwxNToxLDYxOjEsNTk3OjF9KTtfLmJkPWZ1bmN0aW9uIG1PZChhLGIpe09OZCh0aGlzLGEsUkQoYiw0NCkpfTtfLkZjPWZ1bmN0aW9uIG5PZChhKXtyZXR1cm4gUE5kKHRoaXMsUkQoYSw0NCkpfTtfLkpjPWZ1bmN0aW9uIHZPZChhKXt4Z2IodGhpcyxhKX07Xy5YYj1mdW5jdGlvbiB3T2QoYSl7cmV0dXJuIFJEKFFIZCh0aGlzLmMsYSksMTM2KX07Xy5UaT1mdW5jdGlvbiBGT2QoYSxiKXtyZXR1cm4gUkQodGhpcy5jLlRpKGEsYiksNDQpfTtfLlVpPWZ1bmN0aW9uIEdPZChhLGIpe2VPZCh0aGlzLGEsUkQoYiw0NCkpfTtfLkxjPWZ1bmN0aW9uIEpPZCgpe3JldHVybiBuZXcgU0RiKG51bGwsbmV3IFN3Yih0aGlzLDE2KSl9O18uZ2Q9ZnVuY3Rpb24gS09kKGEpe3JldHVybiBSRCh0aGlzLmMuZ2QoYSksNDQpfTtfLmhkPWZ1bmN0aW9uIE1PZChhLGIpe3JldHVybiBrT2QodGhpcyxhLFJEKGIsNDQpKX07Xy5qZD1mdW5jdGlvbiBPT2QoYSl7dHZiKHRoaXMsYSl9O18uTmM9ZnVuY3Rpb24gUE9kKCl7cmV0dXJuIG5ldyBTd2IodGhpcywxNil9O18uT2M9ZnVuY3Rpb24gUU9kKCl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgU3diKHRoaXMsMTYpKX07Xy5jZD1mdW5jdGlvbiBvT2QoYSxiKXtyZXR1cm4gdGhpcy5jLmNkKGEsYil9O18uR2M9ZnVuY3Rpb24gcE9kKGEpe3JldHVybiB0aGlzLmMuR2MoYSl9O18uJGI9ZnVuY3Rpb24gcU9kKCl7dGhpcy5jLiRiKCl9O18uSGM9ZnVuY3Rpb24gck9kKGEpe3JldHVybiB0aGlzLmMuSGMoYSl9O18uSWM9ZnVuY3Rpb24gc09kKGEpe3JldHVybiBCZSh0aGlzLmMsYSl9O18uX2o9ZnVuY3Rpb24gdE9kKCl7dmFyIGEsYixjO2lmKHRoaXMuZD09bnVsbCl7dGhpcy5kPSRDKEQ2LEtKZSw2NiwyKnRoaXMuZisxLDAsMSk7Yz10aGlzLmU7dGhpcy5mPTA7Zm9yKGI9dGhpcy5jLktjKCk7Yi5lIT1iLmkuZ2MoKTspe2E9UkQoYi5ZaigpLDEzNik7VU5kKHRoaXMsYSl9dGhpcy5lPWN9fTtfLkZiPWZ1bmN0aW9uIHVPZChhKXtyZXR1cm4gWk5kKHRoaXMsYSl9O18uSGI9ZnVuY3Rpb24geE9kKCl7cmV0dXJuIGNIZCh0aGlzLmMpfTtfLmRkPWZ1bmN0aW9uIHlPZChhKXtyZXR1cm4gdGhpcy5jLmRkKGEpfTtfLmFrPWZ1bmN0aW9uIHpPZCgpe3RoaXMuYz1uZXcgWU9kKHRoaXMpfTtfLmRjPWZ1bmN0aW9uIEFPZCgpe3JldHVybiB0aGlzLmY9PTB9O18uS2M9ZnVuY3Rpb24gQk9kKCl7cmV0dXJuIHRoaXMuYy5LYygpfTtfLmVkPWZ1bmN0aW9uIENPZCgpe3JldHVybiB0aGlzLmMuZWQoKX07Xy5mZD1mdW5jdGlvbiBET2QoYSl7cmV0dXJuIHRoaXMuYy5mZChhKX07Xy5iaz1mdW5jdGlvbiBFT2QoKXtyZXR1cm4gZE9kKHRoaXMpfTtfLmNrPWZ1bmN0aW9uIEhPZChhLGIsYyl7cmV0dXJuIG5ldyBaUGQoYSxiLGMpfTtfLmRrPWZ1bmN0aW9uIElPZCgpe3JldHVybiBuZXcgY1BkfTtfLk1jPWZ1bmN0aW9uIExPZChhKXtyZXR1cm4gaE9kKHRoaXMsYSl9O18uZ2M9ZnVuY3Rpb24gTk9kKCl7cmV0dXJuIHRoaXMuZn07Xy5rZD1mdW5jdGlvbiBST2QoYSxiKXtyZXR1cm4gbmV3IFJrYih0aGlzLmMsYSxiKX07Xy5QYz1mdW5jdGlvbiBTT2QoKXtyZXR1cm4gdGhpcy5jLlBjKCl9O18uUWM9ZnVuY3Rpb24gVE9kKGEpe3JldHVybiB0aGlzLmMuUWMoYSl9O18uSWI9ZnVuY3Rpb24gVU9kKCl7cmV0dXJuIGZIZCh0aGlzLmMpfTtfLmU9MDtfLmY9MDt2YXIgUTY9c2ZiKHNJZSwnQmFzaWNFTWFwJyw3MjEpO2ZlYigxMDQ2LDY2LFBJZSxZT2QpO18uTWk9ZnVuY3Rpb24gWk9kKGEsYil7Vk9kKHRoaXMsUkQoYiwxMzYpKX07Xy5QaT1mdW5jdGlvbiBfT2QoYSxiLGMpe3ZhciBkOysrKGQ9dGhpcyxSRChiLDEzNiksZCkuYS5lfTtfLlFpPWZ1bmN0aW9uIGFQZChhLGIpe1dPZCh0aGlzLFJEKGIsMTM2KSl9O18uUmk9ZnVuY3Rpb24gYlBkKGEsYixjKXtYT2QodGhpcyxSRChiLDEzNiksUkQoYywxMzYpKX07Xy5PaT1mdW5jdGlvbiAkT2QoYSxiKXtUTmQodGhpcy5hKX07dmFyIEU2PXNmYihzSWUsJ0Jhc2ljRU1hcC8xJywxMDQ2KTtmZWIoMTA0Nyw2NixQSWUsY1BkKTtfLmFqPWZ1bmN0aW9uIGRQZChhKXtyZXR1cm4gJEMoTjYsTEplLDYyMSxhLDAsMSl9O3ZhciBGNj1zZmIoc0llLCdCYXNpY0VNYXAvMicsMTA0Nyk7ZmViKDEwNDgsRXZlLEZ2ZSxlUGQpO18uJGI9ZnVuY3Rpb24gZlBkKCl7dGhpcy5hLmMuJGIoKX07Xy5IYz1mdW5jdGlvbiBnUGQoYSl7cmV0dXJuIFFOZCh0aGlzLmEsYSl9O18uS2M9ZnVuY3Rpb24gaFBkKCl7cmV0dXJuIHRoaXMuYS5mPT0wPyhqUWQoKSxpUWQuYSk6bmV3IERQZCh0aGlzLmEpfTtfLk1jPWZ1bmN0aW9uIGlQZChhKXt2YXIgYjtiPXRoaXMuYS5mO2pPZCh0aGlzLmEsYSk7cmV0dXJuIHRoaXMuYS5mIT1ifTtfLmdjPWZ1bmN0aW9uIGpQZCgpe3JldHVybiB0aGlzLmEuZn07dmFyIEc2PXNmYihzSWUsJ0Jhc2ljRU1hcC8zJywxMDQ4KTtmZWIoMTA0OSwzMSxEdmUsa1BkKTtfLiRiPWZ1bmN0aW9uIGxQZCgpe3RoaXMuYS5jLiRiKCl9O18uSGM9ZnVuY3Rpb24gbVBkKGEpe3JldHVybiBSTmQodGhpcy5hLGEpfTtfLktjPWZ1bmN0aW9uIG5QZCgpe3JldHVybiB0aGlzLmEuZj09MD8oalFkKCksaVFkLmEpOm5ldyBGUGQodGhpcy5hKX07Xy5nYz1mdW5jdGlvbiBvUGQoKXtyZXR1cm4gdGhpcy5hLmZ9O3ZhciBINj1zZmIoc0llLCdCYXNpY0VNYXAvNCcsMTA0OSk7ZmViKDEwNTAsRXZlLEZ2ZSxxUGQpO18uJGI9ZnVuY3Rpb24gclBkKCl7dGhpcy5hLmMuJGIoKX07Xy5IYz1mdW5jdGlvbiBzUGQoYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqO2lmKHRoaXMuYS5mPjAmJlpEKGEsNDQpKXt0aGlzLmEuX2ooKTtpPVJEKGEsNDQpO2g9aS5sZCgpO2U9aD09bnVsbD8wOnRiKGgpO2Y9Yk9kKHRoaXMuYSxlKTtiPXRoaXMuYS5kW2ZdO2lmKGIpe2M9UkQoYi5nLDM3OSk7aj1iLmk7Zm9yKGc9MDtnPGo7KytnKXtkPWNbZ107aWYoZC5CaSgpPT1lJiZkLkZiKGkpKXtyZXR1cm4gdHJ1ZX19fX1yZXR1cm4gZmFsc2V9O18uS2M9ZnVuY3Rpb24gdFBkKCl7cmV0dXJuIHRoaXMuYS5mPT0wPyhqUWQoKSxpUWQuYSk6bmV3IHhQZCh0aGlzLmEpfTtfLk1jPWZ1bmN0aW9uIHVQZChhKXtyZXR1cm4gcFBkKHRoaXMsYSl9O18uZ2M9ZnVuY3Rpb24gdlBkKCl7cmV0dXJuIHRoaXMuYS5mfTt2YXIgSTY9c2ZiKHNJZSwnQmFzaWNFTWFwLzUnLDEwNTApO2ZlYig2MjIsMSxBdmUseFBkKTtfLk5iPWZ1bmN0aW9uIHlQZChhKXtadGIodGhpcyxhKX07Xy5PYj1mdW5jdGlvbiB6UGQoKXtyZXR1cm4gdGhpcy5iIT0tMX07Xy5QYj1mdW5jdGlvbiBBUGQoKXt2YXIgYTtpZih0aGlzLmYuZSE9dGhpcy5jKXt0aHJvdyBBZGIobmV3IEpyYil9aWYodGhpcy5iPT0tMSl7dGhyb3cgQWRiKG5ldyBEdmIpfXRoaXMuZD10aGlzLmE7dGhpcy5lPXRoaXMuYjt3UGQodGhpcyk7YT1SRCh0aGlzLmYuZFt0aGlzLmRdLmdbdGhpcy5lXSwxMzYpO3JldHVybiB0aGlzLmVrKGEpfTtfLlFiPWZ1bmN0aW9uIEJQZCgpe2lmKHRoaXMuZi5lIT10aGlzLmMpe3Rocm93IEFkYihuZXcgSnJiKX1pZih0aGlzLmU9PS0xKXt0aHJvdyBBZGIobmV3IGNnYil9dGhpcy5mLmMuTWMoUUhkKHRoaXMuZi5kW3RoaXMuZF0sdGhpcy5lKSk7dGhpcy5jPXRoaXMuZi5lO3RoaXMuZT0tMTt0aGlzLmE9PXRoaXMuZCYmdGhpcy5iIT0tMSYmLS10aGlzLmJ9O18uZWs9ZnVuY3Rpb24gQ1BkKGEpe3JldHVybiBhfTtfLmE9MDtfLmI9LTE7Xy5jPTA7Xy5kPTA7Xy5lPTA7dmFyIEo2PXNmYihzSWUsJ0Jhc2ljRU1hcC9CYXNpY0VNYXBJdGVyYXRvcicsNjIyKTtmZWIoMTA0NCw2MjIsQXZlLERQZCk7Xy5laz1mdW5jdGlvbiBFUGQoYSl7cmV0dXJuIGEubGQoKX07dmFyIEs2PXNmYihzSWUsJ0Jhc2ljRU1hcC9CYXNpY0VNYXBLZXlJdGVyYXRvcicsMTA0NCk7ZmViKDEwNDUsNjIyLEF2ZSxGUGQpO18uZWs9ZnVuY3Rpb24gR1BkKGEpe3JldHVybiBhLm1kKCl9O3ZhciBMNj1zZmIoc0llLCdCYXNpY0VNYXAvQmFzaWNFTWFwVmFsdWVJdGVyYXRvcicsMTA0NSk7ZmViKDEwNDMsMSxDdmUsSVBkKTtfLndjPWZ1bmN0aW9uIE9QZChhKXtCdmIodGhpcyxhKX07Xy55Yz1mdW5jdGlvbiBUUGQoYSxiLGMpe3JldHVybiBDdmIodGhpcyxhLGIsYyl9O18uJGI9ZnVuY3Rpb24gSlBkKCl7dGhpcy5hLmMuJGIoKX07Xy5fYj1mdW5jdGlvbiBLUGQoYSl7cmV0dXJuIEhQZCh0aGlzLGEpfTtfLnVjPWZ1bmN0aW9uIExQZChhKXtyZXR1cm4gUk5kKHRoaXMuYSxhKX07Xy52Yz1mdW5jdGlvbiBNUGQoKXtyZXR1cm4gWU5kKHRoaXMuYSl9O18uRmI9ZnVuY3Rpb24gTlBkKGEpe3JldHVybiBaTmQodGhpcy5hLGEpfTtfLnhjPWZ1bmN0aW9uIFBQZChhKXtyZXR1cm4gJE5kKHRoaXMuYSxhKX07Xy5IYj1mdW5jdGlvbiBRUGQoKXtyZXR1cm4gY0hkKHRoaXMuYS5jKX07Xy5kYz1mdW5jdGlvbiBSUGQoKXtyZXR1cm4gdGhpcy5hLmY9PTB9O18uZWM9ZnVuY3Rpb24gU1BkKCl7cmV0dXJuIGNPZCh0aGlzLmEpfTtfLnpjPWZ1bmN0aW9uIFVQZChhLGIpe3JldHVybiBmT2QodGhpcy5hLGEsYil9O18uQmM9ZnVuY3Rpb24gVlBkKGEpe3JldHVybiBqT2QodGhpcy5hLGEpfTtfLmdjPWZ1bmN0aW9uIFdQZCgpe3JldHVybiB0aGlzLmEuZn07Xy5JYj1mdW5jdGlvbiBYUGQoKXtyZXR1cm4gZkhkKHRoaXMuYS5jKX07Xy5DYz1mdW5jdGlvbiBZUGQoKXtyZXR1cm4gbE9kKHRoaXMuYSl9O3ZhciBNNj1zZmIoc0llLCdCYXNpY0VNYXAvRGVsZWdhdGluZ01hcCcsMTA0Myk7ZmViKDYyMSwxLHs0NDoxLDEzNjoxLDYyMToxfSxaUGQpO18uRmI9ZnVuY3Rpb24gJFBkKGEpe3ZhciBiO2lmKFpEKGEsNDQpKXtiPVJEKGEsNDQpO3JldHVybiAodGhpcy5iIT1udWxsP3BiKHRoaXMuYixiLmxkKCkpOmRFKHRoaXMuYik9PT1kRShiLmxkKCkpKSYmKHRoaXMuYyE9bnVsbD9wYih0aGlzLmMsYi5tZCgpKTpkRSh0aGlzLmMpPT09ZEUoYi5tZCgpKSl9ZWxzZXtyZXR1cm4gZmFsc2V9fTtfLkJpPWZ1bmN0aW9uIF9QZCgpe3JldHVybiB0aGlzLmF9O18ubGQ9ZnVuY3Rpb24gYVFkKCl7cmV0dXJuIHRoaXMuYn07Xy5tZD1mdW5jdGlvbiBiUWQoKXtyZXR1cm4gdGhpcy5jfTtfLkhiPWZ1bmN0aW9uIGNRZCgpe3JldHVybiB0aGlzLmFeKHRoaXMuYz09bnVsbD8wOnRiKHRoaXMuYykpfTtfLkNpPWZ1bmN0aW9uIGRRZChhKXt0aGlzLmE9YX07Xy5EaT1mdW5jdGlvbiBlUWQoYSl7dGhyb3cgQWRiKG5ldyB4eil9O18ubmQ9ZnVuY3Rpb24gZlFkKGEpe3ZhciBiO2I9dGhpcy5jO3RoaXMuYz1hO3JldHVybiBifTtfLkliPWZ1bmN0aW9uIGdRZCgpe3JldHVybiB0aGlzLmIrJy0+Jyt0aGlzLmN9O18uYT0wO3ZhciBONj1zZmIoc0llLCdCYXNpY0VNYXAvRW50cnlJbXBsJyw2MjEpO2ZlYig1NDYsMSx7fSxoUWQpO3ZhciBQNj1zZmIoc0llLCdCYXNpY0VNYXAvVmlldycsNTQ2KTt2YXIgaVFkO2ZlYig3ODMsMSx7fSk7Xy5GYj1mdW5jdGlvbiB4UWQoYSl7cmV0dXJuIFJ0KCh5b2IoKSx2b2IpLGEpfTtfLkhiPWZ1bmN0aW9uIHlRZCgpe3JldHVybiBDb2IoKHlvYigpLHZvYikpfTtfLkliPWZ1bmN0aW9uIHpRZCgpe3JldHVybiBGZSgoeW9iKCksdm9iKSl9O3ZhciBWNj1zZmIoc0llLCdFQ29sbGVjdGlvbnMvQmFzaWNFbXB0eVVubW9kaWZpYWJsZUVMaXN0Jyw3ODMpO2ZlYigxMzQ4LDEsSnZlLEFRZCk7Xy5OYj1mdW5jdGlvbiBDUWQoYSl7WnRiKHRoaXMsYSl9O18uUmI9ZnVuY3Rpb24gQlFkKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5PYj1mdW5jdGlvbiBEUWQoKXtyZXR1cm4gZmFsc2V9O18uU2I9ZnVuY3Rpb24gRVFkKCl7cmV0dXJuIGZhbHNlfTtfLlBiPWZ1bmN0aW9uIEZRZCgpe3Rocm93IEFkYihuZXcgRHZiKX07Xy5UYj1mdW5jdGlvbiBHUWQoKXtyZXR1cm4gMH07Xy5VYj1mdW5jdGlvbiBIUWQoKXt0aHJvdyBBZGIobmV3IER2Yil9O18uVmI9ZnVuY3Rpb24gSVFkKCl7cmV0dXJuIC0xfTtfLlFiPWZ1bmN0aW9uIEpRZCgpe3Rocm93IEFkYihuZXcgamliKX07Xy5XYj1mdW5jdGlvbiBLUWQoYSl7dGhyb3cgQWRiKG5ldyBqaWIpfTt2YXIgVTY9c2ZiKHNJZSwnRUNvbGxlY3Rpb25zL0Jhc2ljRW1wdHlVbm1vZGlmaWFibGVFTGlzdC8xJywxMzQ4KTtmZWIoMTM0Niw3ODMsezIwOjEsMTY6MSwxNToxLDYxOjF9LExRZCk7Xy5iZD1mdW5jdGlvbiBNUWQoYSxiKXttUWQoKX07Xy5GYz1mdW5jdGlvbiBOUWQoYSl7cmV0dXJuIG5RZCgpfTtfLmNkPWZ1bmN0aW9uIE9RZChhLGIpe3JldHVybiBvUWQoKX07Xy5HYz1mdW5jdGlvbiBQUWQoYSl7cmV0dXJuIHBRZCgpfTtfLiRiPWZ1bmN0aW9uIFFRZCgpe3FRZCgpfTtfLkhjPWZ1bmN0aW9uIFJRZChhKXtyZXR1cm4gZmFsc2V9O18uSWM9ZnVuY3Rpb24gU1FkKGEpe3JldHVybiBmYWxzZX07Xy5KYz1mdW5jdGlvbiBUUWQoYSl7eGdiKHRoaXMsYSl9O18uWGI9ZnVuY3Rpb24gVVFkKGEpe3JldHVybiBJb2IoKHlvYigpLHZvYixhKSksbnVsbH07Xy5kZD1mdW5jdGlvbiBWUWQoYSl7cmV0dXJuIC0xfTtfLmRjPWZ1bmN0aW9uIFdRZCgpe3JldHVybiB0cnVlfTtfLktjPWZ1bmN0aW9uIFhRZCgpe3JldHVybiB0aGlzLmF9O18uZWQ9ZnVuY3Rpb24gWVFkKCl7cmV0dXJuIHRoaXMuYX07Xy5mZD1mdW5jdGlvbiBaUWQoYSl7cmV0dXJuIHRoaXMuYX07Xy5UaT1mdW5jdGlvbiAkUWQoYSxiKXtyZXR1cm4gclFkKCl9O18uVWk9ZnVuY3Rpb24gX1FkKGEsYil7c1FkKCl9O18uTGM9ZnVuY3Rpb24gYVJkKCl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgU3diKHRoaXMsMTYpKX07Xy5nZD1mdW5jdGlvbiBiUmQoYSl7cmV0dXJuIHRRZCgpfTtfLk1jPWZ1bmN0aW9uIGNSZChhKXtyZXR1cm4gdVFkKCl9O18uaGQ9ZnVuY3Rpb24gZFJkKGEsYil7cmV0dXJuIHZRZCgpfTtfLmdjPWZ1bmN0aW9uIGVSZCgpe3JldHVybiAwfTtfLmpkPWZ1bmN0aW9uIGZSZChhKXt0dmIodGhpcyxhKX07Xy5OYz1mdW5jdGlvbiBnUmQoKXtyZXR1cm4gbmV3IFN3Yih0aGlzLDE2KX07Xy5PYz1mdW5jdGlvbiBoUmQoKXtyZXR1cm4gbmV3IFNEYihudWxsLG5ldyBTd2IodGhpcywxNikpfTtfLmtkPWZ1bmN0aW9uIGlSZChhLGIpe3JldHVybiB5b2IoKSxuZXcgUmtiKHZvYixhLGIpfTtfLlBjPWZ1bmN0aW9uIGpSZCgpe3JldHVybiBEZSgoeW9iKCksdm9iKSl9O18uUWM9ZnVuY3Rpb24ga1JkKGEpe3JldHVybiB5b2IoKSxFZSh2b2IsYSl9O3ZhciBXNj1zZmIoc0llLCdFQ29sbGVjdGlvbnMvRW1wdHlVbm1vZGlmaWFibGVFTGlzdCcsMTM0Nik7ZmViKDEzNDcsNzgzLHsyMDoxLDE2OjEsMTU6MSw2MToxLDU5NzoxfSxsUmQpO18uYmQ9ZnVuY3Rpb24gbVJkKGEsYil7bVFkKCl9O18uRmM9ZnVuY3Rpb24gblJkKGEpe3JldHVybiBuUWQoKX07Xy5jZD1mdW5jdGlvbiBvUmQoYSxiKXtyZXR1cm4gb1FkKCl9O18uR2M9ZnVuY3Rpb24gcFJkKGEpe3JldHVybiBwUWQoKX07Xy4kYj1mdW5jdGlvbiBxUmQoKXtxUWQoKX07Xy5IYz1mdW5jdGlvbiByUmQoYSl7cmV0dXJuIGZhbHNlfTtfLkljPWZ1bmN0aW9uIHNSZChhKXtyZXR1cm4gZmFsc2V9O18uSmM9ZnVuY3Rpb24gdFJkKGEpe3hnYih0aGlzLGEpfTtfLlhiPWZ1bmN0aW9uIHVSZChhKXtyZXR1cm4gSW9iKCh5b2IoKSx2b2IsYSkpLG51bGx9O18uZGQ9ZnVuY3Rpb24gdlJkKGEpe3JldHVybiAtMX07Xy5kYz1mdW5jdGlvbiB3UmQoKXtyZXR1cm4gdHJ1ZX07Xy5LYz1mdW5jdGlvbiB4UmQoKXtyZXR1cm4gdGhpcy5hfTtfLmVkPWZ1bmN0aW9uIHlSZCgpe3JldHVybiB0aGlzLmF9O18uZmQ9ZnVuY3Rpb24gelJkKGEpe3JldHVybiB0aGlzLmF9O18uVGk9ZnVuY3Rpb24gQlJkKGEsYil7cmV0dXJuIHJRZCgpfTtfLlVpPWZ1bmN0aW9uIENSZChhLGIpe3NRZCgpfTtfLkxjPWZ1bmN0aW9uIERSZCgpe3JldHVybiBuZXcgU0RiKG51bGwsbmV3IFN3Yih0aGlzLDE2KSl9O18uZ2Q9ZnVuY3Rpb24gRVJkKGEpe3JldHVybiB0UWQoKX07Xy5NYz1mdW5jdGlvbiBGUmQoYSl7cmV0dXJuIHVRZCgpfTtfLmhkPWZ1bmN0aW9uIEdSZChhLGIpe3JldHVybiB2UWQoKX07Xy5nYz1mdW5jdGlvbiBIUmQoKXtyZXR1cm4gMH07Xy5qZD1mdW5jdGlvbiBJUmQoYSl7dHZiKHRoaXMsYSl9O18uTmM9ZnVuY3Rpb24gSlJkKCl7cmV0dXJuIG5ldyBTd2IodGhpcywxNil9O18uT2M9ZnVuY3Rpb24gS1JkKCl7cmV0dXJuIG5ldyBTRGIobnVsbCxuZXcgU3diKHRoaXMsMTYpKX07Xy5rZD1mdW5jdGlvbiBMUmQoYSxiKXtyZXR1cm4geW9iKCksbmV3IFJrYih2b2IsYSxiKX07Xy5QYz1mdW5jdGlvbiBNUmQoKXtyZXR1cm4gRGUoKHlvYigpLHZvYikpfTtfLlFjPWZ1bmN0aW9uIE5SZChhKXtyZXR1cm4geW9iKCksRWUodm9iLGEpfTtfLmJrPWZ1bmN0aW9uIEFSZCgpe3JldHVybiB5b2IoKSx5b2IoKSx3b2J9O3ZhciBYNj1zZmIoc0llLCdFQ29sbGVjdGlvbnMvRW1wdHlVbm1vZGlmaWFibGVFTWFwJywxMzQ3KTt2YXIgWjY9dWZiKHNJZSwnRW51bWVyYXRvcicpO3ZhciBPUmQ7ZmViKDI4OCwxLHsyODg6MX0sbFNkKTtfLkZiPWZ1bmN0aW9uIHBTZChhKXt2YXIgYjtpZih0aGlzPT09YSlyZXR1cm4gdHJ1ZTtpZighWkQoYSwyODgpKXJldHVybiBmYWxzZTtiPVJEKGEsMjg4KTtyZXR1cm4gdGhpcy5mPT1iLmYmJnJTZCh0aGlzLmksYi5pKSYmcVNkKHRoaXMuYSwodGhpcy5mJjI1NikhPTA/KGIuZiYyNTYpIT0wP2IuYTpudWxsOihiLmYmMjU2KSE9MD9udWxsOmIuYSkmJnFTZCh0aGlzLmQsYi5kKSYmcVNkKHRoaXMuZyxiLmcpJiZxU2QodGhpcy5lLGIuZSkmJmlTZCh0aGlzLGIpfTtfLkhiPWZ1bmN0aW9uIHVTZCgpe3JldHVybiB0aGlzLmZ9O18uSWI9ZnVuY3Rpb24gQ1NkKCl7cmV0dXJuIGpTZCh0aGlzKX07Xy5mPTA7dmFyIFNSZD0wLFRSZD0wLFVSZD0wLFZSZD0wLFdSZD0wLFhSZD0wLFlSZD0wLFpSZD0wLCRSZD0wLF9SZCxhU2Q9MCxiU2Q9MCxjU2Q9MCxkU2Q9MCxlU2QsZlNkO3ZhciBjNz1zZmIoc0llLCdVUkknLDI4OCk7ZmViKDExMjEsNDUsSHhlLE1TZCk7Xy56Yz1mdW5jdGlvbiBOU2QoYSxiKXtyZXR1cm4gUkQoJGpiKHRoaXMsV0QoYSksUkQoYiwyODgpKSwyODgpfTt2YXIgYjc9c2ZiKHNJZSwnVVJJL1VSSUNhY2hlJywxMTIxKTtmZWIoNTA2LDY2LFBJZSxPU2QsUFNkKTtfLlNpPWZ1bmN0aW9uIFFTZCgpe3JldHVybiB0cnVlfTt2YXIgZDc9c2ZiKHNJZSwnVW5pcXVlRUxpc3QnLDUwNik7ZmViKDU5MCw2Myxzd2UsUlNkKTt2YXIgZTc9c2ZiKHNJZSwnV3JhcHBlZEV4Y2VwdGlvbicsNTkwKTt2YXIgZjc9dWZiKHZIZSxPSmUpO3ZhciBBNz11ZmIodkhlLFBKZSk7dmFyIHk3PXVmYih2SGUsUUplKTt2YXIgZzc9dWZiKHZIZSxSSmUpO3ZhciBpNz11ZmIodkhlLFNKZSk7dmFyIGg3PXVmYih2SGUsJ0VDbGFzcycpO3ZhciBrNz11ZmIodkhlLCdFRGF0YVR5cGUnKTt2YXIgU1NkO2ZlYigxMjMzLDQ1LEh4ZSxWU2QpO18ueGM9ZnVuY3Rpb24gV1NkKGEpe3JldHVybiBiRShhKT9YamIodGhpcyxhKTpXZChxdGIodGhpcy5mLGEpKX07dmFyIGo3PXNmYih2SGUsJ0VEYXRhVHlwZS9JbnRlcm5hbC9Db252ZXJzaW9uRGVsZWdhdGUvRmFjdG9yeS9SZWdpc3RyeS9JbXBsJywxMjMzKTt2YXIgbTc9dWZiKHZIZSwnRUVudW0nKTt2YXIgbDc9dWZiKHZIZSxUSmUpO3ZhciBvNz11ZmIodkhlLFVKZSk7dmFyIHM3PXVmYih2SGUsVkplKTt2YXIgWFNkO3ZhciB1Nz11ZmIodkhlLFdKZSk7dmFyIHY3PXVmYih2SGUsWEplKTtmZWIoMTA0MiwxLHt9LF9TZCk7Xy5JYj1mdW5jdGlvbiBhVGQoKXtyZXR1cm4gJ05JTCd9O3ZhciB3Nz1zZmIodkhlLCdFU3RydWN0dXJhbEZlYXR1cmUvSW50ZXJuYWwvRHluYW1pY1ZhbHVlSG9sZGVyLzEnLDEwNDIpO3ZhciBiVGQ7ZmViKDEwNDEsNDUsSHhlLGVUZCk7Xy54Yz1mdW5jdGlvbiBmVGQoYSl7cmV0dXJuIGJFKGEpP1hqYih0aGlzLGEpOldkKHF0Yih0aGlzLmYsYSkpfTt2YXIgeDc9c2ZiKHZIZSwnRVN0cnVjdHVyYWxGZWF0dXJlL0ludGVybmFsL1NldHRpbmdEZWxlZ2F0ZS9GYWN0b3J5L1JlZ2lzdHJ5L0ltcGwnLDEwNDEpO3ZhciB6Nz11ZmIodkhlLFlKZSk7dmFyIEI3PXVmYih2SGUsJ0VWYWxpZGF0b3IvUGF0dGVybk1hdGNoZXInKTt2YXIgZ1RkO3ZhciBpVGQ7dmFyIGtUZDt2YXIgbVRkLG5UZCxvVGQscFRkLHFUZCxyVGQsc1RkLHRUZCx1VGQsdlRkLHdUZCx4VGQseVRkLHpUZCxBVGQsQlRkLENUZCxEVGQsRVRkLEZUZCxHVGQsSFRkLElUZDt2YXIgSmJiPXVmYihaSmUsJ0ZlYXR1cmVNYXAvRW50cnknKTtmZWIoNTQ1LDEsezc2OjF9LEtUZCk7Xy5Maz1mdW5jdGlvbiBMVGQoKXtyZXR1cm4gdGhpcy5hfTtfLm1kPWZ1bmN0aW9uIE1UZCgpe3JldHVybiB0aGlzLmJ9O3ZhciBDNz1zZmIoU0hlLCdCYXNpY0VPYmplY3RJbXBsLzEnLDU0NSk7ZmViKDEwNDAsMSwkSmUsTlRkKTtfLkZrPWZ1bmN0aW9uIE9UZChhKXtyZXR1cm4gRnZkKHRoaXMuYSx0aGlzLmIsYSl9O18uUWo9ZnVuY3Rpb24gUFRkKCl7cmV0dXJuIEx2ZCh0aGlzLmEsdGhpcy5iKX07Xy5XYj1mdW5jdGlvbiBRVGQoYSl7WHZkKHRoaXMuYSx0aGlzLmIsYSl9O18uR2s9ZnVuY3Rpb24gUlRkKCl7X3ZkKHRoaXMuYSx0aGlzLmIpfTt2YXIgRDc9c2ZiKFNIZSwnQmFzaWNFT2JqZWN0SW1wbC80JywxMDQwKTtmZWIoMjA4MSwxLHsxMTQ6MX0pO18uTWs9ZnVuY3Rpb24gVVRkKGEpe3RoaXMuZT1hPT0wP1NUZDokQyhqSixydmUsMSxhLDUsMSl9O18ubGk9ZnVuY3Rpb24gVlRkKGEpe3JldHVybiB0aGlzLmVbYV19O18ubWk9ZnVuY3Rpb24gV1RkKGEsYil7dGhpcy5lW2FdPWJ9O18ubmk9ZnVuY3Rpb24gWFRkKGEpe3RoaXMuZVthXT1udWxsfTtfLk5rPWZ1bmN0aW9uIFlUZCgpe3JldHVybiB0aGlzLmN9O18uT2s9ZnVuY3Rpb24gWlRkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLlBrPWZ1bmN0aW9uICRUZCgpe3Rocm93IEFkYihuZXcgamliKX07Xy5Raz1mdW5jdGlvbiBfVGQoKXtyZXR1cm4gdGhpcy5kfTtfLlJrPWZ1bmN0aW9uIGFVZCgpe3JldHVybiB0aGlzLmUhPW51bGx9O18uU2s9ZnVuY3Rpb24gYlVkKGEpe3RoaXMuYz1hfTtfLlRrPWZ1bmN0aW9uIGNVZChhKXt0aHJvdyBBZGIobmV3IGppYil9O18uVWs9ZnVuY3Rpb24gZFVkKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5Waz1mdW5jdGlvbiBlVWQoYSl7dGhpcy5kPWF9O3ZhciBTVGQ7dmFyIEU3PXNmYihTSGUsJ0Jhc2ljRU9iamVjdEltcGwvRVByb3BlcnRpZXNIb2xkZXJCYXNlSW1wbCcsMjA4MSk7ZmViKDE5MiwyMDgxLHsxMTQ6MX0sZlVkKTtfLk9rPWZ1bmN0aW9uIGdVZCgpe3JldHVybiB0aGlzLmF9O18uUGs9ZnVuY3Rpb24gaFVkKCl7cmV0dXJuIHRoaXMuYn07Xy5Uaz1mdW5jdGlvbiBpVWQoYSl7dGhpcy5hPWF9O18uVWs9ZnVuY3Rpb24galVkKGEpe3RoaXMuYj1hfTt2YXIgRjc9c2ZiKFNIZSwnQmFzaWNFT2JqZWN0SW1wbC9FUHJvcGVydGllc0hvbGRlckltcGwnLDE5Mik7ZmViKDUxNiw5OSxSSGUsa1VkKTtfLnVoPWZ1bmN0aW9uIGxVZCgpe3JldHVybiB0aGlzLmZ9O18uemg9ZnVuY3Rpb24gbVVkKCl7cmV0dXJuIHRoaXMua307Xy5CaD1mdW5jdGlvbiBuVWQoYSxiKXt0aGlzLmc9YTt0aGlzLmk9Yn07Xy5EaD1mdW5jdGlvbiBvVWQoKXtyZXR1cm4gKHRoaXMuaiYyKT09MD90aGlzLmlpKCk6dGhpcy4kaCgpLk5rKCl9O18uRmg9ZnVuY3Rpb24gcFVkKCl7cmV0dXJuIHRoaXMuaX07Xy53aD1mdW5jdGlvbiBxVWQoKXtyZXR1cm4gKHRoaXMuaiYxKSE9MH07Xy5QaD1mdW5jdGlvbiByVWQoKXtyZXR1cm4gdGhpcy5nfTtfLlZoPWZ1bmN0aW9uIHNVZCgpe3JldHVybiAodGhpcy5qJjQpIT0wfTtfLiRoPWZ1bmN0aW9uIHRVZCgpe3JldHVybiAhdGhpcy5rJiYodGhpcy5rPW5ldyBmVWQpLHRoaXMua307Xy5jaT1mdW5jdGlvbiB1VWQoYSl7dGhpcy4kaCgpLlNrKGEpO2E/KHRoaXMuanw9Mik6KHRoaXMuaiY9LTMpfTtfLmVpPWZ1bmN0aW9uIHZVZChhKXt0aGlzLiRoKCkuVWsoYSk7YT8odGhpcy5qfD00KToodGhpcy5qJj0tNSl9O18uaWk9ZnVuY3Rpb24gd1VkKCl7cmV0dXJuIChsVGQoKSxrVGQpLlN9O18uaT0wO18uaj0xO3ZhciBxOD1zZmIoU0hlLCdFT2JqZWN0SW1wbCcsNTE2KTtmZWIoNzk4LDUxNix7MTEwOjEsOTQ6MSw5MzoxLDU4OjEsMTE0OjEsNTQ6MSw5OToxfSx6VWQpO18ubGk9ZnVuY3Rpb24gQVVkKGEpe3JldHVybiB0aGlzLmVbYV19O18ubWk9ZnVuY3Rpb24gQlVkKGEsYil7dGhpcy5lW2FdPWJ9O18ubmk9ZnVuY3Rpb24gQ1VkKGEpe3RoaXMuZVthXT1udWxsfTtfLkRoPWZ1bmN0aW9uIERVZCgpe3JldHVybiB0aGlzLmR9O18uSWg9ZnVuY3Rpb24gRVVkKGEpe3JldHVybiBCWWQodGhpcy5kLGEpfTtfLktoPWZ1bmN0aW9uIEZVZCgpe3JldHVybiB0aGlzLmR9O18uT2g9ZnVuY3Rpb24gR1VkKCl7cmV0dXJuIHRoaXMuZSE9bnVsbH07Xy4kaD1mdW5jdGlvbiBIVWQoKXshdGhpcy5rJiYodGhpcy5rPW5ldyBWVWQpO3JldHVybiB0aGlzLmt9O18uY2k9ZnVuY3Rpb24gSVVkKGEpe3RoaXMuZD1hfTtfLmhpPWZ1bmN0aW9uIEpVZCgpe3ZhciBhO2lmKHRoaXMuZT09bnVsbCl7YT1BWWQodGhpcy5kKTt0aGlzLmU9YT09MD94VWQ6JEMoakoscnZlLDEsYSw1LDEpfXJldHVybiB0aGlzfTtfLmppPWZ1bmN0aW9uIEtVZCgpe3JldHVybiAwfTt2YXIgeFVkO3ZhciBKNz1zZmIoU0hlLCdEeW5hbWljRU9iamVjdEltcGwnLDc5OCk7ZmViKDE1MjIsNzk4LHsxMTA6MSw0NDoxLDk0OjEsOTM6MSwxMzY6MSw1ODoxLDExNDoxLDU0OjEsOTk6MX0sTFVkKTtfLkZiPWZ1bmN0aW9uIE5VZChhKXtyZXR1cm4gdGhpcz09PWF9O18uSGI9ZnVuY3Rpb24gUlVkKCl7cmV0dXJuIGtGYih0aGlzKX07Xy5jaT1mdW5jdGlvbiBNVWQoYSl7dGhpcy5kPWE7dGhpcy5iPXdZZChhLCdrZXknKTt0aGlzLmM9d1lkKGEsYUllKX07Xy5CaT1mdW5jdGlvbiBPVWQoKXt2YXIgYTtpZih0aGlzLmE9PS0xKXthPUd2ZCh0aGlzLHRoaXMuYik7dGhpcy5hPWE9PW51bGw/MDp0YihhKX1yZXR1cm4gdGhpcy5hfTtfLmxkPWZ1bmN0aW9uIFBVZCgpe3JldHVybiBHdmQodGhpcyx0aGlzLmIpfTtfLm1kPWZ1bmN0aW9uIFFVZCgpe3JldHVybiBHdmQodGhpcyx0aGlzLmMpfTtfLkNpPWZ1bmN0aW9uIFNVZChhKXt0aGlzLmE9YX07Xy5EaT1mdW5jdGlvbiBUVWQoYSl7WHZkKHRoaXMsdGhpcy5iLGEpfTtfLm5kPWZ1bmN0aW9uIFVVZChhKXt2YXIgYjtiPUd2ZCh0aGlzLHRoaXMuYyk7WHZkKHRoaXMsdGhpcy5jLGEpO3JldHVybiBifTtfLmE9MDt2YXIgSDc9c2ZiKFNIZSwnRHluYW1pY0VPYmplY3RJbXBsL0Jhc2ljRU1hcEVudHJ5JywxNTIyKTtmZWIoMTUyMywxLHsxMTQ6MX0sVlVkKTtfLk1rPWZ1bmN0aW9uIFdVZChhKXt0aHJvdyBBZGIobmV3IGppYil9O18ubGk9ZnVuY3Rpb24gWFVkKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5taT1mdW5jdGlvbiBZVWQoYSxiKXt0aHJvdyBBZGIobmV3IGppYil9O18ubmk9ZnVuY3Rpb24gWlVkKGEpe3Rocm93IEFkYihuZXcgamliKX07Xy5Oaz1mdW5jdGlvbiAkVWQoKXt0aHJvdyBBZGIobmV3IGppYil9O18uT2s9ZnVuY3Rpb24gX1VkKCl7cmV0dXJuIHRoaXMuYX07Xy5Qaz1mdW5jdGlvbiBhVmQoKXtyZXR1cm4gdGhpcy5ifTtfLlFrPWZ1bmN0aW9uIGJWZCgpe3JldHVybiB0aGlzLmN9O18uUms9ZnVuY3Rpb24gY1ZkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLlNrPWZ1bmN0aW9uIGRWZChhKXt0aHJvdyBBZGIobmV3IGppYil9O18uVGs9ZnVuY3Rpb24gZVZkKGEpe3RoaXMuYT1hfTtfLlVrPWZ1bmN0aW9uIGZWZChhKXt0aGlzLmI9YX07Xy5Waz1mdW5jdGlvbiBnVmQoYSl7dGhpcy5jPWF9O3ZhciBJNz1zZmIoU0hlLCdEeW5hbWljRU9iamVjdEltcGwvRHluYW1pY0VQcm9wZXJ0aWVzSG9sZGVySW1wbCcsMTUyMyk7ZmViKDUxOSwxNTgsezExMDoxLDk0OjEsOTM6MSw1OTg6MSwxNTU6MSw1ODoxLDExNDoxLDU0OjEsOTk6MSw1MTk6MSwxNTg6MSwxMTk6MSwxMjA6MX0scFZkKTtfLkFoPWZ1bmN0aW9uIHFWZChhKXtyZXR1cm4gaVZkKHRoaXMsYSl9O18uTGg9ZnVuY3Rpb24gclZkKGEsYixjKXt2YXIgZDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHRoaXMuQWI7Y2FzZSAxOnJldHVybiB0aGlzLmQ7Y2FzZSAyOnJldHVybiBjPyghdGhpcy5iJiYodGhpcy5iPW5ldyBTVmQoKEpUZCgpLEZUZCksQzgsdGhpcykpLHRoaXMuYik6KCF0aGlzLmImJih0aGlzLmI9bmV3IFNWZCgoSlRkKCksRlRkKSxDOCx0aGlzKSksZE9kKHRoaXMuYikpO2Nhc2UgMzpyZXR1cm4ga1ZkKHRoaXMpO2Nhc2UgNDpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgWFpkKHI3LHRoaXMsNCkpLHRoaXMuYTtjYXNlIDU6cmV0dXJuICF0aGlzLmMmJih0aGlzLmM9bmV3IHppZShyNyx0aGlzLDUpKSx0aGlzLmM7fXJldHVybiB6dmQodGhpcyxhLUFZZCgoSlRkKCksbVRkKSksdllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/bVRkOmQpLGEpLGIsYyl9O18uU2g9ZnVuY3Rpb24gc1ZkKGEsYixjKXt2YXIgZCxlLGY7c3dpdGNoKGIpe2Nhc2UgMDpyZXR1cm4gIXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKSxxTGQodGhpcy5BYixhLGMpO2Nhc2UgMzohIXRoaXMuQ2ImJihjPShlPXRoaXMuRGI+PjE2LGU+PTA/aVZkKHRoaXMsYyk6dGhpcy5DYi5UaCh0aGlzLC0xLWUsbnVsbCxjKSkpO3JldHVybiBoVmQodGhpcyxSRChhLDE1NSksYyk7fXJldHVybiBmPVJEKHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkPyhKVGQoKSxtVGQpOmQpLGIpLDY5KSxmLndrKCkuemsodGhpcyxXd2QodGhpcyksYi1BWWQoKEpUZCgpLG1UZCkpLGEsYyl9O18uVWg9ZnVuY3Rpb24gdFZkKGEsYixjKXt2YXIgZCxlO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksckxkKHRoaXMuQWIsYSxjKTtjYXNlIDI6cmV0dXJuICF0aGlzLmImJih0aGlzLmI9bmV3IFNWZCgoSlRkKCksRlRkKSxDOCx0aGlzKSksQlZkKHRoaXMuYixhLGMpO2Nhc2UgMzpyZXR1cm4gaFZkKHRoaXMsbnVsbCxjKTtjYXNlIDQ6cmV0dXJuICF0aGlzLmEmJih0aGlzLmE9bmV3IFhaZChyNyx0aGlzLDQpKSxyTGQodGhpcy5hLGEsYyk7fXJldHVybiBlPVJEKHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkPyhKVGQoKSxtVGQpOmQpLGIpLDY5KSxlLndrKCkuQWsodGhpcyxXd2QodGhpcyksYi1BWWQoKEpUZCgpLG1UZCkpLGEsYyl9O18uV2g9ZnVuY3Rpb24gdVZkKGEpe3ZhciBiO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICEhdGhpcy5BYiYmdGhpcy5BYi5pIT0wO2Nhc2UgMTpyZXR1cm4gdGhpcy5kIT1udWxsO2Nhc2UgMjpyZXR1cm4gISF0aGlzLmImJnRoaXMuYi5mIT0wO2Nhc2UgMzpyZXR1cm4gISFrVmQodGhpcyk7Y2FzZSA0OnJldHVybiAhIXRoaXMuYSYmdGhpcy5hLmkhPTA7Y2FzZSA1OnJldHVybiAhIXRoaXMuYyYmdGhpcy5jLmkhPTA7fXJldHVybiBBdmQodGhpcyxhLUFZZCgoSlRkKCksbVRkKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/bVRkOmIpLGEpKX07Xy5iaT1mdW5jdGlvbiB2VmQoYSxiKXt2YXIgYztzd2l0Y2goYSl7Y2FzZSAwOiF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7c0xkKHRoaXMuQWIpOyF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7WUdkKHRoaXMuQWIsUkQoYiwxNikpO3JldHVybjtjYXNlIDE6bVZkKHRoaXMsV0QoYikpO3JldHVybjtjYXNlIDI6IXRoaXMuYiYmKHRoaXMuYj1uZXcgU1ZkKChKVGQoKSxGVGQpLEM4LHRoaXMpKTtDVmQodGhpcy5iLGIpO3JldHVybjtjYXNlIDM6bFZkKHRoaXMsUkQoYiwxNTUpKTtyZXR1cm47Y2FzZSA0OiF0aGlzLmEmJih0aGlzLmE9bmV3IFhaZChyNyx0aGlzLDQpKTtzTGQodGhpcy5hKTshdGhpcy5hJiYodGhpcy5hPW5ldyBYWmQocjcsdGhpcyw0KSk7WUdkKHRoaXMuYSxSRChiLDE2KSk7cmV0dXJuO2Nhc2UgNTohdGhpcy5jJiYodGhpcy5jPW5ldyB6aWUocjcsdGhpcyw1KSk7c0xkKHRoaXMuYyk7IXRoaXMuYyYmKHRoaXMuYz1uZXcgemllKHI3LHRoaXMsNSkpO1lHZCh0aGlzLmMsUkQoYiwxNikpO3JldHVybjt9QnZkKHRoaXMsYS1BWWQoKEpUZCgpLG1UZCkpLHZZZCgoYz1SRChZd2QodGhpcywxNiksMjkpLCFjP21UZDpjKSxhKSxiKX07Xy5paT1mdW5jdGlvbiB3VmQoKXtyZXR1cm4gSlRkKCksbVRkfTtfLmtpPWZ1bmN0aW9uIHhWZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOiF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7c0xkKHRoaXMuQWIpO3JldHVybjtjYXNlIDE6blZkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgMjohdGhpcy5iJiYodGhpcy5iPW5ldyBTVmQoKEpUZCgpLEZUZCksQzgsdGhpcykpO3RoaXMuYi5jLiRiKCk7cmV0dXJuO2Nhc2UgMzpsVmQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSA0OiF0aGlzLmEmJih0aGlzLmE9bmV3IFhaZChyNyx0aGlzLDQpKTtzTGQodGhpcy5hKTtyZXR1cm47Y2FzZSA1OiF0aGlzLmMmJih0aGlzLmM9bmV3IHppZShyNyx0aGlzLDUpKTtzTGQodGhpcy5jKTtyZXR1cm47fUN2ZCh0aGlzLGEtQVlkKChKVGQoKSxtVGQpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj9tVGQ6YiksYSkpfTtfLkliPWZ1bmN0aW9uIHlWZCgpe3JldHVybiBvVmQodGhpcyl9O18uZD1udWxsO3ZhciBMNz1zZmIoU0hlLCdFQW5ub3RhdGlvbkltcGwnLDUxOSk7ZmViKDE0MSw3MjEsX0plLERWZCk7Xy5HaT1mdW5jdGlvbiBFVmQoYSxiKXt6VmQodGhpcyxhLFJEKGIsNDQpKX07Xy5Xaz1mdW5jdGlvbiBGVmQoYSxiKXtyZXR1cm4gQVZkKHRoaXMsUkQoYSw0NCksYil9O18uJGk9ZnVuY3Rpb24gR1ZkKGEpe3JldHVybiBSRChSRCh0aGlzLmMsNzEpLiRpKGEpLDEzNil9O18uSWk9ZnVuY3Rpb24gSFZkKCl7cmV0dXJuIFJEKHRoaXMuYyw3MSkuSWkoKX07Xy5KaT1mdW5jdGlvbiBJVmQoKXtyZXR1cm4gUkQodGhpcy5jLDcxKS5KaSgpfTtfLktpPWZ1bmN0aW9uIEpWZChhKXtyZXR1cm4gUkQodGhpcy5jLDcxKS5LaShhKX07Xy5Yaz1mdW5jdGlvbiBLVmQoYSxiKXtyZXR1cm4gQlZkKHRoaXMsYSxiKX07Xy5Gaz1mdW5jdGlvbiBMVmQoYSl7cmV0dXJuIFJEKHRoaXMuYyw3OSkuRmsoYSl9O18uYWs9ZnVuY3Rpb24gTVZkKCl7fTtfLlFqPWZ1bmN0aW9uIE5WZCgpe3JldHVybiBSRCh0aGlzLmMsNzkpLlFqKCl9O18uY2s9ZnVuY3Rpb24gT1ZkKGEsYixjKXt2YXIgZDtkPVJEKEJYZCh0aGlzLmIpLndpKCkuc2kodGhpcy5iKSwxMzYpO2QuQ2koYSk7ZC5EaShiKTtkLm5kKGMpO3JldHVybiBkfTtfLmRrPWZ1bmN0aW9uIFBWZCgpe3JldHVybiBuZXcgdWplKHRoaXMpfTtfLldiPWZ1bmN0aW9uIFFWZChhKXtDVmQodGhpcyxhKX07Xy5Haz1mdW5jdGlvbiBSVmQoKXtSRCh0aGlzLmMsNzkpLkdrKCl9O3ZhciBEYmI9c2ZiKFpKZSwnRWNvcmVFTWFwJywxNDEpO2ZlYigxNjUsMTQxLF9KZSxTVmQpO18uX2o9ZnVuY3Rpb24gVFZkKCl7dmFyIGEsYixjLGQsZSxmO2lmKHRoaXMuZD09bnVsbCl7Zj0kQyhENixLSmUsNjYsMip0aGlzLmYrMSwwLDEpO2ZvcihjPXRoaXMuYy5LYygpO2MuZSE9Yy5pLmdjKCk7KXtiPVJEKGMuWWooKSwxMzYpO2Q9Yi5CaSgpO2U9KGQmbHZlKSVmLmxlbmd0aDthPWZbZV07IWEmJihhPWZbZV09bmV3IHVqZSh0aGlzKSk7YS5GYyhiKX10aGlzLmQ9Zn19O3ZhciBLNz1zZmIoU0hlLCdFQW5ub3RhdGlvbkltcGwvMScsMTY1KTtmZWIoMjkyLDQ0OCx7MTEwOjEsOTQ6MSw5MzoxLDE1NToxLDE5NzoxLDU4OjEsMTE0OjEsNDgxOjEsNTQ6MSw5OToxLDE1ODoxLDI5MjoxLDExOToxLDEyMDoxfSk7Xy5MaD1mdW5jdGlvbiBlV2QoYSxiLGMpe3ZhciBkLGU7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4gIXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKSx0aGlzLkFiO2Nhc2UgMTpyZXR1cm4gdGhpcy56YjtjYXNlIDI6cmV0dXJuIEdlYigpLCh0aGlzLkJiJjI1NikhPTA/dHJ1ZTpmYWxzZTtjYXNlIDM6cmV0dXJuIEdlYigpLCh0aGlzLkJiJjUxMikhPTA/dHJ1ZTpmYWxzZTtjYXNlIDQ6cmV0dXJuIHNnYih0aGlzLnMpO2Nhc2UgNTpyZXR1cm4gc2diKHRoaXMudCk7Y2FzZSA2OnJldHVybiBHZWIoKSx0aGlzLkprKCk/dHJ1ZTpmYWxzZTtjYXNlIDc6cmV0dXJuIEdlYigpLGU9dGhpcy5zLGU+PTE/dHJ1ZTpmYWxzZTtjYXNlIDg6aWYoYilyZXR1cm4gV1ZkKHRoaXMpO3JldHVybiB0aGlzLnI7Y2FzZSA5OnJldHVybiB0aGlzLnE7fXJldHVybiB6dmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkP3RoaXMuaWkoKTpkKSxhKSxiLGMpfTtfLlVoPWZ1bmN0aW9uIGZXZChhLGIsYyl7dmFyIGQsZTtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHJMZCh0aGlzLkFiLGEsYyk7Y2FzZSA5OnJldHVybiBWVmQodGhpcyxjKTt9cmV0dXJuIGU9UkQodllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/dGhpcy5paSgpOmQpLGIpLDY5KSxlLndrKCkuQWsodGhpcyxXd2QodGhpcyksYi1BWWQodGhpcy5paSgpKSxhLGMpfTtfLldoPWZ1bmN0aW9uIGdXZChhKXt2YXIgYixjO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICEhdGhpcy5BYiYmdGhpcy5BYi5pIT0wO2Nhc2UgMTpyZXR1cm4gdGhpcy56YiE9bnVsbDtjYXNlIDI6cmV0dXJuICh0aGlzLkJiJjI1Nik9PTA7Y2FzZSAzOnJldHVybiAodGhpcy5CYiY1MTIpPT0wO2Nhc2UgNDpyZXR1cm4gdGhpcy5zIT0wO2Nhc2UgNTpyZXR1cm4gdGhpcy50IT0xO2Nhc2UgNjpyZXR1cm4gdGhpcy5KaygpO2Nhc2UgNzpyZXR1cm4gYz10aGlzLnMsYz49MTtjYXNlIDg6cmV0dXJuICEhdGhpcy5yJiYhdGhpcy5xLmUmJmoyZCh0aGlzLnEpLmk9PTA7Y2FzZSA5OnJldHVybiAhIXRoaXMucSYmISghIXRoaXMuciYmIXRoaXMucS5lJiZqMmQodGhpcy5xKS5pPT0wKTt9cmV0dXJuIEF2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/dGhpcy5paSgpOmIpLGEpKX07Xy5iaT1mdW5jdGlvbiBoV2QoYSxiKXt2YXIgYyxkO3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtzTGQodGhpcy5BYik7IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtZR2QodGhpcy5BYixSRChiLDE2KSk7cmV0dXJuO2Nhc2UgMTp0aGlzLnVpKFdEKGIpKTtyZXR1cm47Y2FzZSAyOl9WZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDM6YVdkKHRoaXMsSGViKFREKGIpKSk7cmV0dXJuO2Nhc2UgNDokVmQodGhpcyxSRChiLDE3KS5hKTtyZXR1cm47Y2FzZSA1OnRoaXMuWmsoUkQoYiwxNykuYSk7cmV0dXJuO2Nhc2UgODpZVmQodGhpcyxSRChiLDE0MikpO3JldHVybjtjYXNlIDk6ZD1YVmQodGhpcyxSRChiLDg5KSxudWxsKTshIWQmJmQub2ooKTtyZXR1cm47fUJ2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKChjPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWM/dGhpcy5paSgpOmMpLGEpLGIpfTtfLmlpPWZ1bmN0aW9uIGlXZCgpe3JldHVybiBKVGQoKSxIVGR9O18ua2k9ZnVuY3Rpb24galdkKGEpe3ZhciBiLGM7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTtyZXR1cm47Y2FzZSAxOnRoaXMudWkobnVsbCk7cmV0dXJuO2Nhc2UgMjpfVmQodGhpcyx0cnVlKTtyZXR1cm47Y2FzZSAzOmFXZCh0aGlzLHRydWUpO3JldHVybjtjYXNlIDQ6JFZkKHRoaXMsMCk7cmV0dXJuO2Nhc2UgNTp0aGlzLlprKDEpO3JldHVybjtjYXNlIDg6WVZkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgOTpjPVhWZCh0aGlzLG51bGwsbnVsbCk7ISFjJiZjLm9qKCk7cmV0dXJuO31DdmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP3RoaXMuaWkoKTpiKSxhKSl9O18ucGk9ZnVuY3Rpb24ga1dkKCl7V1ZkKHRoaXMpO3RoaXMuQmJ8PTF9O18uSGs9ZnVuY3Rpb24gbFdkKCl7cmV0dXJuIFdWZCh0aGlzKX07Xy5Jaz1mdW5jdGlvbiBtV2QoKXtyZXR1cm4gdGhpcy50fTtfLkprPWZ1bmN0aW9uIG5XZCgpe3ZhciBhO3JldHVybiBhPXRoaXMudCxhPjF8fGE9PS0xfTtfLlNpPWZ1bmN0aW9uIG9XZCgpe3JldHVybiAodGhpcy5CYiY1MTIpIT0wfTtfLllrPWZ1bmN0aW9uIHBXZChhLGIpe3JldHVybiBaVmQodGhpcyxhLGIpfTtfLlprPWZ1bmN0aW9uIHFXZChhKXtiV2QodGhpcyxhKX07Xy5JYj1mdW5jdGlvbiByV2QoKXtyZXR1cm4gY1dkKHRoaXMpfTtfLnM9MDtfLnQ9MTt2YXIgQTk9c2ZiKFNIZSwnRVR5cGVkRWxlbWVudEltcGwnLDI5Mik7ZmViKDQ2MiwyOTIsezExMDoxLDk0OjEsOTM6MSwxNTU6MSwxOTc6MSw1ODoxLDE3OToxLDY5OjEsMTE0OjEsNDgxOjEsNTQ6MSw5OToxLDE1ODoxLDQ2MjoxLDI5MjoxLDExOToxLDEyMDoxLDY5MjoxfSk7Xy5BaD1mdW5jdGlvbiBJV2QoYSl7cmV0dXJuIHNXZCh0aGlzLGEpfTtfLkxoPWZ1bmN0aW9uIEpXZChhLGIsYyl7dmFyIGQsZTtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHRoaXMuQWI7Y2FzZSAxOnJldHVybiB0aGlzLnpiO2Nhc2UgMjpyZXR1cm4gR2ViKCksKHRoaXMuQmImMjU2KSE9MD90cnVlOmZhbHNlO2Nhc2UgMzpyZXR1cm4gR2ViKCksKHRoaXMuQmImNTEyKSE9MD90cnVlOmZhbHNlO2Nhc2UgNDpyZXR1cm4gc2diKHRoaXMucyk7Y2FzZSA1OnJldHVybiBzZ2IodGhpcy50KTtjYXNlIDY6cmV0dXJuIEdlYigpLHRoaXMuSmsoKT90cnVlOmZhbHNlO2Nhc2UgNzpyZXR1cm4gR2ViKCksZT10aGlzLnMsZT49MT90cnVlOmZhbHNlO2Nhc2UgODppZihiKXJldHVybiBXVmQodGhpcyk7cmV0dXJuIHRoaXMucjtjYXNlIDk6cmV0dXJuIHRoaXMucTtjYXNlIDEwOnJldHVybiBHZWIoKSwodGhpcy5CYiZnd2UpIT0wP3RydWU6ZmFsc2U7Y2FzZSAxMTpyZXR1cm4gR2ViKCksKHRoaXMuQmImY0tlKSE9MD90cnVlOmZhbHNlO2Nhc2UgMTI6cmV0dXJuIEdlYigpLCh0aGlzLkJiJnF4ZSkhPTA/dHJ1ZTpmYWxzZTtjYXNlIDEzOnJldHVybiB0aGlzLmo7Y2FzZSAxNDpyZXR1cm4gdFdkKHRoaXMpO2Nhc2UgMTU6cmV0dXJuIEdlYigpLCh0aGlzLkJiJmJLZSkhPTA/dHJ1ZTpmYWxzZTtjYXNlIDE2OnJldHVybiBHZWIoKSwodGhpcy5CYiZPdmUpIT0wP3RydWU6ZmFsc2U7Y2FzZSAxNzpyZXR1cm4gdVdkKHRoaXMpO31yZXR1cm4genZkKHRoaXMsYS1BWWQodGhpcy5paSgpKSx2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD90aGlzLmlpKCk6ZCksYSksYixjKX07Xy5TaD1mdW5jdGlvbiBLV2QoYSxiLGMpe3ZhciBkLGUsZjtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHFMZCh0aGlzLkFiLGEsYyk7Y2FzZSAxNzohIXRoaXMuQ2ImJihjPShlPXRoaXMuRGI+PjE2LGU+PTA/c1dkKHRoaXMsYyk6dGhpcy5DYi5UaCh0aGlzLC0xLWUsbnVsbCxjKSkpO3JldHVybiB4dmQodGhpcyxhLDE3LGMpO31yZXR1cm4gZj1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD90aGlzLmlpKCk6ZCksYiksNjkpLGYud2soKS56ayh0aGlzLFd3ZCh0aGlzKSxiLUFZZCh0aGlzLmlpKCkpLGEsYyl9O18uVWg9ZnVuY3Rpb24gTFdkKGEsYixjKXt2YXIgZCxlO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksckxkKHRoaXMuQWIsYSxjKTtjYXNlIDk6cmV0dXJuIFZWZCh0aGlzLGMpO2Nhc2UgMTc6cmV0dXJuIHh2ZCh0aGlzLG51bGwsMTcsYyk7fXJldHVybiBlPVJEKHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkP3RoaXMuaWkoKTpkKSxiKSw2OSksZS53aygpLkFrKHRoaXMsV3dkKHRoaXMpLGItQVlkKHRoaXMuaWkoKSksYSxjKX07Xy5XaD1mdW5jdGlvbiBNV2QoYSl7dmFyIGIsYztzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhIXRoaXMuQWImJnRoaXMuQWIuaSE9MDtjYXNlIDE6cmV0dXJuIHRoaXMuemIhPW51bGw7Y2FzZSAyOnJldHVybiAodGhpcy5CYiYyNTYpPT0wO2Nhc2UgMzpyZXR1cm4gKHRoaXMuQmImNTEyKT09MDtjYXNlIDQ6cmV0dXJuIHRoaXMucyE9MDtjYXNlIDU6cmV0dXJuIHRoaXMudCE9MTtjYXNlIDY6cmV0dXJuIHRoaXMuSmsoKTtjYXNlIDc6cmV0dXJuIGM9dGhpcy5zLGM+PTE7Y2FzZSA4OnJldHVybiAhIXRoaXMuciYmIXRoaXMucS5lJiZqMmQodGhpcy5xKS5pPT0wO2Nhc2UgOTpyZXR1cm4gISF0aGlzLnEmJiEoISF0aGlzLnImJiF0aGlzLnEuZSYmajJkKHRoaXMucSkuaT09MCk7Y2FzZSAxMDpyZXR1cm4gKHRoaXMuQmImZ3dlKT09MDtjYXNlIDExOnJldHVybiAodGhpcy5CYiZjS2UpIT0wO2Nhc2UgMTI6cmV0dXJuICh0aGlzLkJiJnF4ZSkhPTA7Y2FzZSAxMzpyZXR1cm4gdGhpcy5qIT1udWxsO2Nhc2UgMTQ6cmV0dXJuIHRXZCh0aGlzKSE9bnVsbDtjYXNlIDE1OnJldHVybiAodGhpcy5CYiZiS2UpIT0wO2Nhc2UgMTY6cmV0dXJuICh0aGlzLkJiJk92ZSkhPTA7Y2FzZSAxNzpyZXR1cm4gISF1V2QodGhpcyk7fXJldHVybiBBdmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP3RoaXMuaWkoKTpiKSxhKSl9O18uYmk9ZnVuY3Rpb24gTldkKGEsYil7dmFyIGMsZDtzd2l0Y2goYSl7Y2FzZSAwOiF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7c0xkKHRoaXMuQWIpOyF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7WUdkKHRoaXMuQWIsUkQoYiwxNikpO3JldHVybjtjYXNlIDE6Q1dkKHRoaXMsV0QoYikpO3JldHVybjtjYXNlIDI6X1ZkKHRoaXMsSGViKFREKGIpKSk7cmV0dXJuO2Nhc2UgMzphV2QodGhpcyxIZWIoVEQoYikpKTtyZXR1cm47Y2FzZSA0OiRWZCh0aGlzLFJEKGIsMTcpLmEpO3JldHVybjtjYXNlIDU6dGhpcy5aayhSRChiLDE3KS5hKTtyZXR1cm47Y2FzZSA4OllWZCh0aGlzLFJEKGIsMTQyKSk7cmV0dXJuO2Nhc2UgOTpkPVhWZCh0aGlzLFJEKGIsODkpLG51bGwpOyEhZCYmZC5vaigpO3JldHVybjtjYXNlIDEwOnhXZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDExOkZXZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDEyOkRXZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDEzOnlXZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSAxNTpFV2QodGhpcyxIZWIoVEQoYikpKTtyZXR1cm47Y2FzZSAxNjpBV2QodGhpcyxIZWIoVEQoYikpKTtyZXR1cm47fUJ2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKChjPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWM/dGhpcy5paSgpOmMpLGEpLGIpfTtfLmlpPWZ1bmN0aW9uIE9XZCgpe3JldHVybiBKVGQoKSxHVGR9O18ua2k9ZnVuY3Rpb24gUFdkKGEpe3ZhciBiLGM7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTtyZXR1cm47Y2FzZSAxOlpEKHRoaXMuQ2IsOTApJiZ2JGQoeVlkKFJEKHRoaXMuQ2IsOTApKSw0KTtQQWQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSAyOl9WZCh0aGlzLHRydWUpO3JldHVybjtjYXNlIDM6YVdkKHRoaXMsdHJ1ZSk7cmV0dXJuO2Nhc2UgNDokVmQodGhpcywwKTtyZXR1cm47Y2FzZSA1OnRoaXMuWmsoMSk7cmV0dXJuO2Nhc2UgODpZVmQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSA5OmM9WFZkKHRoaXMsbnVsbCxudWxsKTshIWMmJmMub2ooKTtyZXR1cm47Y2FzZSAxMDp4V2QodGhpcyx0cnVlKTtyZXR1cm47Y2FzZSAxMTpGV2QodGhpcyxmYWxzZSk7cmV0dXJuO2Nhc2UgMTI6RFdkKHRoaXMsZmFsc2UpO3JldHVybjtjYXNlIDEzOnRoaXMuaT1udWxsO3pXZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDE1OkVXZCh0aGlzLGZhbHNlKTtyZXR1cm47Y2FzZSAxNjpBV2QodGhpcyxmYWxzZSk7cmV0dXJuO31DdmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP3RoaXMuaWkoKTpiKSxhKSl9O18ucGk9ZnVuY3Rpb24gUVdkKCl7QWZlKFFlZSgobGtlKCksamtlKSx0aGlzKSk7V1ZkKHRoaXMpO3RoaXMuQmJ8PTF9O18ucGs9ZnVuY3Rpb24gUldkKCl7cmV0dXJuIHRoaXMuZn07Xy5paz1mdW5jdGlvbiBTV2QoKXtyZXR1cm4gdFdkKHRoaXMpfTtfLnFrPWZ1bmN0aW9uIFRXZCgpe3JldHVybiB1V2QodGhpcyl9O18udWs9ZnVuY3Rpb24gVVdkKCl7cmV0dXJuIG51bGx9O18uJGs9ZnVuY3Rpb24gVldkKCl7cmV0dXJuIHRoaXMua307Xy5Maj1mdW5jdGlvbiBXV2QoKXtyZXR1cm4gdGhpcy5ufTtfLnZrPWZ1bmN0aW9uIFhXZCgpe3JldHVybiB2V2QodGhpcyl9O18ud2s9ZnVuY3Rpb24gWVdkKCl7dmFyIGEsYixjLGQsZSxmLGcsaCxpO2lmKCF0aGlzLnApe2M9dVdkKHRoaXMpOyhjLmk9PW51bGwmJnJZZChjKSxjLmkpLmxlbmd0aDtkPXRoaXMudWsoKTshIWQmJkFZZCh1V2QoZCkpO2U9V1ZkKHRoaXMpO2c9ZS5raygpO2E9IWc/bnVsbDooZy5pJjEpIT0wP2c9PXhkYj9RSTpnPT1rRT9iSjpnPT1qRT9aSTpnPT1pRT9WSTpnPT1sRT9lSjpnPT13ZGI/bEo6Zz09Z0U/Ukk6U0k6ZztiPXRXZCh0aGlzKTtoPWUuaWsoKTtNamUodGhpcyk7KHRoaXMuQmImT3ZlKSE9MCYmKCEhKGY9VGVlKChsa2UoKSxqa2UpLGMpKSYmZiE9dGhpc3x8ISEoZj16ZmUoUWVlKGprZSx0aGlzKSkpKT8odGhpcy5wPW5ldyBaNmQodGhpcyxmKSk6dGhpcy5KaygpP3RoaXMuYWwoKT8hZD8odGhpcy5CYiZiS2UpIT0wPyFhP3RoaXMuYmwoKT8odGhpcy5wPW5ldyBpN2QoNDIsdGhpcykpOih0aGlzLnA9bmV3IGk3ZCgwLHRoaXMpKTphPT1VSz8odGhpcy5wPW5ldyBnN2QoNTAsTzYsdGhpcykpOnRoaXMuYmwoKT8odGhpcy5wPW5ldyBnN2QoNDMsYSx0aGlzKSk6KHRoaXMucD1uZXcgZzdkKDEsYSx0aGlzKSk6IWE/dGhpcy5ibCgpPyh0aGlzLnA9bmV3IGk3ZCg0NCx0aGlzKSk6KHRoaXMucD1uZXcgaTdkKDIsdGhpcykpOmE9PVVLPyh0aGlzLnA9bmV3IGc3ZCg0MSxPNix0aGlzKSk6dGhpcy5ibCgpPyh0aGlzLnA9bmV3IGc3ZCg0NSxhLHRoaXMpKToodGhpcy5wPW5ldyBnN2QoMyxhLHRoaXMpKToodGhpcy5CYiZiS2UpIT0wPyFhP3RoaXMuYmwoKT8odGhpcy5wPW5ldyBqN2QoNDYsdGhpcyxkKSk6KHRoaXMucD1uZXcgajdkKDQsdGhpcyxkKSk6dGhpcy5ibCgpPyh0aGlzLnA9bmV3IGg3ZCg0NyxhLHRoaXMsZCkpOih0aGlzLnA9bmV3IGg3ZCg1LGEsdGhpcyxkKSk6IWE/dGhpcy5ibCgpPyh0aGlzLnA9bmV3IGo3ZCg0OCx0aGlzLGQpKToodGhpcy5wPW5ldyBqN2QoNix0aGlzLGQpKTp0aGlzLmJsKCk/KHRoaXMucD1uZXcgaDdkKDQ5LGEsdGhpcyxkKSk6KHRoaXMucD1uZXcgaDdkKDcsYSx0aGlzLGQpKTpaRChlLDE1Nik/YT09SmJiPyh0aGlzLnA9bmV3IGk3ZCg0MCx0aGlzKSk6KHRoaXMuQmImNTEyKSE9MD8odGhpcy5CYiZiS2UpIT0wPyFhPyh0aGlzLnA9bmV3IGk3ZCg4LHRoaXMpKToodGhpcy5wPW5ldyBnN2QoOSxhLHRoaXMpKTohYT8odGhpcy5wPW5ldyBpN2QoMTAsdGhpcykpOih0aGlzLnA9bmV3IGc3ZCgxMSxhLHRoaXMpKToodGhpcy5CYiZiS2UpIT0wPyFhPyh0aGlzLnA9bmV3IGk3ZCgxMix0aGlzKSk6KHRoaXMucD1uZXcgZzdkKDEzLGEsdGhpcykpOiFhPyh0aGlzLnA9bmV3IGk3ZCgxNCx0aGlzKSk6KHRoaXMucD1uZXcgZzdkKDE1LGEsdGhpcykpOiFkP3RoaXMuYmwoKT8odGhpcy5CYiZiS2UpIT0wPyFhPyh0aGlzLnA9bmV3IGk3ZCgxNix0aGlzKSk6KHRoaXMucD1uZXcgZzdkKDE3LGEsdGhpcykpOiFhPyh0aGlzLnA9bmV3IGk3ZCgxOCx0aGlzKSk6KHRoaXMucD1uZXcgZzdkKDE5LGEsdGhpcykpOih0aGlzLkJiJmJLZSkhPTA/IWE/KHRoaXMucD1uZXcgaTdkKDIwLHRoaXMpKToodGhpcy5wPW5ldyBnN2QoMjEsYSx0aGlzKSk6IWE/KHRoaXMucD1uZXcgaTdkKDIyLHRoaXMpKToodGhpcy5wPW5ldyBnN2QoMjMsYSx0aGlzKSk6KGk9ZC50LGk+MXx8aT09LTE/dGhpcy5ibCgpPyh0aGlzLkJiJmJLZSkhPTA/IWE/KHRoaXMucD1uZXcgajdkKDI0LHRoaXMsZCkpOih0aGlzLnA9bmV3IGg3ZCgyNSxhLHRoaXMsZCkpOiFhPyh0aGlzLnA9bmV3IGo3ZCgyNix0aGlzLGQpKToodGhpcy5wPW5ldyBoN2QoMjcsYSx0aGlzLGQpKToodGhpcy5CYiZiS2UpIT0wPyFhPyh0aGlzLnA9bmV3IGo3ZCgyOCx0aGlzLGQpKToodGhpcy5wPW5ldyBoN2QoMjksYSx0aGlzLGQpKTohYT8odGhpcy5wPW5ldyBqN2QoMzAsdGhpcyxkKSk6KHRoaXMucD1uZXcgaDdkKDMxLGEsdGhpcyxkKSk6dGhpcy5ibCgpPyh0aGlzLkJiJmJLZSkhPTA/IWE/KHRoaXMucD1uZXcgajdkKDMyLHRoaXMsZCkpOih0aGlzLnA9bmV3IGg3ZCgzMyxhLHRoaXMsZCkpOiFhPyh0aGlzLnA9bmV3IGo3ZCgzNCx0aGlzLGQpKToodGhpcy5wPW5ldyBoN2QoMzUsYSx0aGlzLGQpKToodGhpcy5CYiZiS2UpIT0wPyFhPyh0aGlzLnA9bmV3IGo3ZCgzNix0aGlzLGQpKToodGhpcy5wPW5ldyBoN2QoMzcsYSx0aGlzLGQpKTohYT8odGhpcy5wPW5ldyBqN2QoMzgsdGhpcyxkKSk6KHRoaXMucD1uZXcgaDdkKDM5LGEsdGhpcyxkKSkpOnRoaXMuX2soKT90aGlzLmJsKCk/KHRoaXMucD1uZXcgSzdkKFJEKGUsMjkpLHRoaXMsZCkpOih0aGlzLnA9bmV3IEM3ZChSRChlLDI5KSx0aGlzLGQpKTpaRChlLDE1Nik/YT09SmJiPyh0aGlzLnA9bmV3IGk3ZCg0MCx0aGlzKSk6KHRoaXMuQmImYktlKSE9MD8hYT8odGhpcy5wPW5ldyBKOGQoUkQoZSwxNTYpLGIsaCx0aGlzKSk6KHRoaXMucD1uZXcgTDhkKGIsaCx0aGlzLChhOGQoKSxnPT1rRT9ZN2Q6Zz09eGRiP1Q3ZDpnPT1sRT9aN2Q6Zz09akU/WDdkOmc9PWlFP1c3ZDpnPT13ZGI/XzdkOmc9PWdFP1U3ZDpnPT1oRT9WN2Q6JDdkKSkpOiFhPyh0aGlzLnA9bmV3IEM4ZChSRChlLDE1NiksYixoLHRoaXMpKToodGhpcy5wPW5ldyBFOGQoYixoLHRoaXMsKGE4ZCgpLGc9PWtFP1k3ZDpnPT14ZGI/VDdkOmc9PWxFP1o3ZDpnPT1qRT9YN2Q6Zz09aUU/VzdkOmc9PXdkYj9fN2Q6Zz09Z0U/VTdkOmc9PWhFP1Y3ZDokN2QpKSk6dGhpcy5hbCgpPyFkPyh0aGlzLkJiJmJLZSkhPTA/dGhpcy5ibCgpPyh0aGlzLnA9bmV3IGQ5ZChSRChlLDI5KSx0aGlzKSk6KHRoaXMucD1uZXcgYjlkKFJEKGUsMjkpLHRoaXMpKTp0aGlzLmJsKCk/KHRoaXMucD1uZXcgXzhkKFJEKGUsMjkpLHRoaXMpKToodGhpcy5wPW5ldyBaOGQoUkQoZSwyOSksdGhpcykpOih0aGlzLkJiJmJLZSkhPTA/dGhpcy5ibCgpPyh0aGlzLnA9bmV3IGw5ZChSRChlLDI5KSx0aGlzLGQpKToodGhpcy5wPW5ldyBqOWQoUkQoZSwyOSksdGhpcyxkKSk6dGhpcy5ibCgpPyh0aGlzLnA9bmV3IGg5ZChSRChlLDI5KSx0aGlzLGQpKToodGhpcy5wPW5ldyBmOWQoUkQoZSwyOSksdGhpcyxkKSk6dGhpcy5ibCgpPyFkPyh0aGlzLkJiJmJLZSkhPTA/KHRoaXMucD1uZXcgcDlkKFJEKGUsMjkpLHRoaXMpKToodGhpcy5wPW5ldyBuOWQoUkQoZSwyOSksdGhpcykpOih0aGlzLkJiJmJLZSkhPTA/KHRoaXMucD1uZXcgdDlkKFJEKGUsMjkpLHRoaXMsZCkpOih0aGlzLnA9bmV3IHI5ZChSRChlLDI5KSx0aGlzLGQpKTohZD8odGhpcy5CYiZiS2UpIT0wPyh0aGlzLnA9bmV3IHY5ZChSRChlLDI5KSx0aGlzKSk6KHRoaXMucD1uZXcgTjhkKFJEKGUsMjkpLHRoaXMpKToodGhpcy5CYiZiS2UpIT0wPyh0aGlzLnA9bmV3IHo5ZChSRChlLDI5KSx0aGlzLGQpKToodGhpcy5wPW5ldyB4OWQoUkQoZSwyOSksdGhpcyxkKSl9cmV0dXJuIHRoaXMucH07Xy5yaz1mdW5jdGlvbiBaV2QoKXtyZXR1cm4gKHRoaXMuQmImZ3dlKSE9MH07Xy5faz1mdW5jdGlvbiAkV2QoKXtyZXR1cm4gZmFsc2V9O18uYWw9ZnVuY3Rpb24gX1dkKCl7cmV0dXJuIGZhbHNlfTtfLnNrPWZ1bmN0aW9uIGFYZCgpe3JldHVybiAodGhpcy5CYiZPdmUpIT0wfTtfLnhrPWZ1bmN0aW9uIGJYZCgpe3JldHVybiB3V2QodGhpcyl9O18uYmw9ZnVuY3Rpb24gY1hkKCl7cmV0dXJuIGZhbHNlfTtfLnRrPWZ1bmN0aW9uIGRYZCgpe3JldHVybiAodGhpcy5CYiZiS2UpIT0wfTtfLmNsPWZ1bmN0aW9uIGVYZChhKXt0aGlzLms9YX07Xy51aT1mdW5jdGlvbiBmWGQoYSl7Q1dkKHRoaXMsYSl9O18uSWI9ZnVuY3Rpb24gZ1hkKCl7cmV0dXJuIEdXZCh0aGlzKX07Xy5lPWZhbHNlO18ubj0wO3ZhciBzOT1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsJyw0NjIpO2ZlYigzMzEsNDYyLHsxMTA6MSw5NDoxLDkzOjEsMzU6MSwxNTU6MSwxOTc6MSw1ODoxLDE3OToxLDY5OjEsMTE0OjEsNDgxOjEsNTQ6MSw5OToxLDMzMToxLDE1ODoxLDQ2MjoxLDI5MjoxLDExOToxLDEyMDoxLDY5MjoxfSxtWGQpO18uTGg9ZnVuY3Rpb24gblhkKGEsYixjKXt2YXIgZCxlO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksdGhpcy5BYjtjYXNlIDE6cmV0dXJuIHRoaXMuemI7Y2FzZSAyOnJldHVybiBHZWIoKSwodGhpcy5CYiYyNTYpIT0wP3RydWU6ZmFsc2U7Y2FzZSAzOnJldHVybiBHZWIoKSwodGhpcy5CYiY1MTIpIT0wP3RydWU6ZmFsc2U7Y2FzZSA0OnJldHVybiBzZ2IodGhpcy5zKTtjYXNlIDU6cmV0dXJuIHNnYih0aGlzLnQpO2Nhc2UgNjpyZXR1cm4gR2ViKCksalhkKHRoaXMpP3RydWU6ZmFsc2U7Y2FzZSA3OnJldHVybiBHZWIoKSxlPXRoaXMucyxlPj0xP3RydWU6ZmFsc2U7Y2FzZSA4OmlmKGIpcmV0dXJuIFdWZCh0aGlzKTtyZXR1cm4gdGhpcy5yO2Nhc2UgOTpyZXR1cm4gdGhpcy5xO2Nhc2UgMTA6cmV0dXJuIEdlYigpLCh0aGlzLkJiJmd3ZSkhPTA/dHJ1ZTpmYWxzZTtjYXNlIDExOnJldHVybiBHZWIoKSwodGhpcy5CYiZjS2UpIT0wP3RydWU6ZmFsc2U7Y2FzZSAxMjpyZXR1cm4gR2ViKCksKHRoaXMuQmImcXhlKSE9MD90cnVlOmZhbHNlO2Nhc2UgMTM6cmV0dXJuIHRoaXMuajtjYXNlIDE0OnJldHVybiB0V2QodGhpcyk7Y2FzZSAxNTpyZXR1cm4gR2ViKCksKHRoaXMuQmImYktlKSE9MD90cnVlOmZhbHNlO2Nhc2UgMTY6cmV0dXJuIEdlYigpLCh0aGlzLkJiJk92ZSkhPTA/dHJ1ZTpmYWxzZTtjYXNlIDE3OnJldHVybiB1V2QodGhpcyk7Y2FzZSAxODpyZXR1cm4gR2ViKCksKHRoaXMuQmImUUhlKSE9MD90cnVlOmZhbHNlO2Nhc2UgMTk6aWYoYilyZXR1cm4gaVhkKHRoaXMpO3JldHVybiBoWGQodGhpcyk7fXJldHVybiB6dmQodGhpcyxhLUFZZCgoSlRkKCksblRkKSksdllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/blRkOmQpLGEpLGIsYyl9O18uV2g9ZnVuY3Rpb24gb1hkKGEpe3ZhciBiLGM7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4gISF0aGlzLkFiJiZ0aGlzLkFiLmkhPTA7Y2FzZSAxOnJldHVybiB0aGlzLnpiIT1udWxsO2Nhc2UgMjpyZXR1cm4gKHRoaXMuQmImMjU2KT09MDtjYXNlIDM6cmV0dXJuICh0aGlzLkJiJjUxMik9PTA7Y2FzZSA0OnJldHVybiB0aGlzLnMhPTA7Y2FzZSA1OnJldHVybiB0aGlzLnQhPTE7Y2FzZSA2OnJldHVybiBqWGQodGhpcyk7Y2FzZSA3OnJldHVybiBjPXRoaXMucyxjPj0xO2Nhc2UgODpyZXR1cm4gISF0aGlzLnImJiF0aGlzLnEuZSYmajJkKHRoaXMucSkuaT09MDtjYXNlIDk6cmV0dXJuICEhdGhpcy5xJiYhKCEhdGhpcy5yJiYhdGhpcy5xLmUmJmoyZCh0aGlzLnEpLmk9PTApO2Nhc2UgMTA6cmV0dXJuICh0aGlzLkJiJmd3ZSk9PTA7Y2FzZSAxMTpyZXR1cm4gKHRoaXMuQmImY0tlKSE9MDtjYXNlIDEyOnJldHVybiAodGhpcy5CYiZxeGUpIT0wO2Nhc2UgMTM6cmV0dXJuIHRoaXMuaiE9bnVsbDtjYXNlIDE0OnJldHVybiB0V2QodGhpcykhPW51bGw7Y2FzZSAxNTpyZXR1cm4gKHRoaXMuQmImYktlKSE9MDtjYXNlIDE2OnJldHVybiAodGhpcy5CYiZPdmUpIT0wO2Nhc2UgMTc6cmV0dXJuICEhdVdkKHRoaXMpO2Nhc2UgMTg6cmV0dXJuICh0aGlzLkJiJlFIZSkhPTA7Y2FzZSAxOTpyZXR1cm4gISFoWGQodGhpcyk7fXJldHVybiBBdmQodGhpcyxhLUFZZCgoSlRkKCksblRkKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/blRkOmIpLGEpKX07Xy5iaT1mdW5jdGlvbiBwWGQoYSxiKXt2YXIgYyxkO3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtzTGQodGhpcy5BYik7IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtZR2QodGhpcy5BYixSRChiLDE2KSk7cmV0dXJuO2Nhc2UgMTpDV2QodGhpcyxXRChiKSk7cmV0dXJuO2Nhc2UgMjpfVmQodGhpcyxIZWIoVEQoYikpKTtyZXR1cm47Y2FzZSAzOmFXZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDQ6JFZkKHRoaXMsUkQoYiwxNykuYSk7cmV0dXJuO2Nhc2UgNTpsWGQodGhpcyxSRChiLDE3KS5hKTtyZXR1cm47Y2FzZSA4OllWZCh0aGlzLFJEKGIsMTQyKSk7cmV0dXJuO2Nhc2UgOTpkPVhWZCh0aGlzLFJEKGIsODkpLG51bGwpOyEhZCYmZC5vaigpO3JldHVybjtjYXNlIDEwOnhXZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDExOkZXZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDEyOkRXZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDEzOnlXZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSAxNTpFV2QodGhpcyxIZWIoVEQoYikpKTtyZXR1cm47Y2FzZSAxNjpBV2QodGhpcyxIZWIoVEQoYikpKTtyZXR1cm47Y2FzZSAxODprWGQodGhpcyxIZWIoVEQoYikpKTtyZXR1cm47fUJ2ZCh0aGlzLGEtQVlkKChKVGQoKSxuVGQpKSx2WWQoKGM9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYz9uVGQ6YyksYSksYil9O18uaWk9ZnVuY3Rpb24gcVhkKCl7cmV0dXJuIEpUZCgpLG5UZH07Xy5raT1mdW5jdGlvbiByWGQoYSl7dmFyIGIsYztzd2l0Y2goYSl7Y2FzZSAwOiF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7c0xkKHRoaXMuQWIpO3JldHVybjtjYXNlIDE6WkQodGhpcy5DYiw5MCkmJnYkZCh5WWQoUkQodGhpcy5DYiw5MCkpLDQpO1BBZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDI6X1ZkKHRoaXMsdHJ1ZSk7cmV0dXJuO2Nhc2UgMzphV2QodGhpcyx0cnVlKTtyZXR1cm47Y2FzZSA0OiRWZCh0aGlzLDApO3JldHVybjtjYXNlIDU6dGhpcy5iPTA7YldkKHRoaXMsMSk7cmV0dXJuO2Nhc2UgODpZVmQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSA5OmM9WFZkKHRoaXMsbnVsbCxudWxsKTshIWMmJmMub2ooKTtyZXR1cm47Y2FzZSAxMDp4V2QodGhpcyx0cnVlKTtyZXR1cm47Y2FzZSAxMTpGV2QodGhpcyxmYWxzZSk7cmV0dXJuO2Nhc2UgMTI6RFdkKHRoaXMsZmFsc2UpO3JldHVybjtjYXNlIDEzOnRoaXMuaT1udWxsO3pXZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDE1OkVXZCh0aGlzLGZhbHNlKTtyZXR1cm47Y2FzZSAxNjpBV2QodGhpcyxmYWxzZSk7cmV0dXJuO2Nhc2UgMTg6a1hkKHRoaXMsZmFsc2UpO3JldHVybjt9Q3ZkKHRoaXMsYS1BWWQoKEpUZCgpLG5UZCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP25UZDpiKSxhKSl9O18ucGk9ZnVuY3Rpb24gc1hkKCl7aVhkKHRoaXMpO0FmZShRZWUoKGxrZSgpLGprZSksdGhpcykpO1dWZCh0aGlzKTt0aGlzLkJifD0xfTtfLkprPWZ1bmN0aW9uIHRYZCgpe3JldHVybiBqWGQodGhpcyl9O18uWWs9ZnVuY3Rpb24gdVhkKGEsYil7dGhpcy5iPTA7dGhpcy5hPW51bGw7cmV0dXJuIFpWZCh0aGlzLGEsYil9O18uWms9ZnVuY3Rpb24gdlhkKGEpe2xYZCh0aGlzLGEpfTtfLkliPWZ1bmN0aW9uIHdYZCgpe3ZhciBhO2lmKCh0aGlzLkRiJjY0KSE9MClyZXR1cm4gR1dkKHRoaXMpO2E9bmV3IFNoYihHV2QodGhpcykpO2EuYSs9JyAoaUQ6ICc7T2hiKGEsKHRoaXMuQmImUUhlKSE9MCk7YS5hKz0nKSc7cmV0dXJuIGEuYX07Xy5iPTA7dmFyIE03PXNmYihTSGUsJ0VBdHRyaWJ1dGVJbXBsJywzMzEpO2ZlYigzNjQsNDQ4LHsxMTA6MSw5NDoxLDkzOjEsMTQyOjEsMTU1OjEsMTk3OjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMzY0OjEsMTU4OjEsMTE5OjEsMTIwOjEsNjkxOjF9KTtfLmRsPWZ1bmN0aW9uIE5YZChhKXtyZXR1cm4gYS5EaCgpPT10aGlzfTtfLkFoPWZ1bmN0aW9uIE9YZChhKXtyZXR1cm4gQVhkKHRoaXMsYSl9O18uQmg9ZnVuY3Rpb24gUFhkKGEsYil7dGhpcy53PW51bGw7dGhpcy5EYj1iPDwxNnx0aGlzLkRiJjI1NTt0aGlzLkNiPWF9O18uTGg9ZnVuY3Rpb24gUVhkKGEsYixjKXt2YXIgZDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHRoaXMuQWI7Y2FzZSAxOnJldHVybiB0aGlzLnpiO2Nhc2UgMjpyZXR1cm4gdGhpcy5EIT1udWxsP3RoaXMuRDp0aGlzLkI7Y2FzZSAzOnJldHVybiBEWGQodGhpcyk7Y2FzZSA0OnJldHVybiB0aGlzLmlrKCk7Y2FzZSA1OnJldHVybiB0aGlzLkY7Y2FzZSA2OmlmKGIpcmV0dXJuIEJYZCh0aGlzKTtyZXR1cm4geFhkKHRoaXMpO2Nhc2UgNzpyZXR1cm4gIXRoaXMuQSYmKHRoaXMuQT1uZXcgaWllKHo3LHRoaXMsNykpLHRoaXMuQTt9cmV0dXJuIHp2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/dGhpcy5paSgpOmQpLGEpLGIsYyl9O18uU2g9ZnVuY3Rpb24gUlhkKGEsYixjKXt2YXIgZCxlLGY7c3dpdGNoKGIpe2Nhc2UgMDpyZXR1cm4gIXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKSxxTGQodGhpcy5BYixhLGMpO2Nhc2UgNjohIXRoaXMuQ2ImJihjPShlPXRoaXMuRGI+PjE2LGU+PTA/QVhkKHRoaXMsYyk6dGhpcy5DYi5UaCh0aGlzLC0xLWUsbnVsbCxjKSkpO3JldHVybiB4dmQodGhpcyxhLDYsYyk7fXJldHVybiBmPVJEKHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkP3RoaXMuaWkoKTpkKSxiKSw2OSksZi53aygpLnprKHRoaXMsV3dkKHRoaXMpLGItQVlkKHRoaXMuaWkoKSksYSxjKX07Xy5VaD1mdW5jdGlvbiBTWGQoYSxiLGMpe3ZhciBkLGU7c3dpdGNoKGIpe2Nhc2UgMDpyZXR1cm4gIXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKSxyTGQodGhpcy5BYixhLGMpO2Nhc2UgNjpyZXR1cm4geHZkKHRoaXMsbnVsbCw2LGMpO2Nhc2UgNzpyZXR1cm4gIXRoaXMuQSYmKHRoaXMuQT1uZXcgaWllKHo3LHRoaXMsNykpLHJMZCh0aGlzLkEsYSxjKTt9cmV0dXJuIGU9UkQodllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/dGhpcy5paSgpOmQpLGIpLDY5KSxlLndrKCkuQWsodGhpcyxXd2QodGhpcyksYi1BWWQodGhpcy5paSgpKSxhLGMpfTtfLldoPWZ1bmN0aW9uIFRYZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhIXRoaXMuQWImJnRoaXMuQWIuaSE9MDtjYXNlIDE6cmV0dXJuIHRoaXMuemIhPW51bGw7Y2FzZSAyOnJldHVybiB0aGlzLkQhPW51bGwmJnRoaXMuRD09dGhpcy5GO2Nhc2UgMzpyZXR1cm4gISFEWGQodGhpcyk7Y2FzZSA0OnJldHVybiB0aGlzLmlrKCkhPW51bGw7Y2FzZSA1OnJldHVybiB0aGlzLkYhPW51bGwmJnRoaXMuRiE9dGhpcy5EJiZ0aGlzLkYhPXRoaXMuQjtjYXNlIDY6cmV0dXJuICEheFhkKHRoaXMpO2Nhc2UgNzpyZXR1cm4gISF0aGlzLkEmJnRoaXMuQS5pIT0wO31yZXR1cm4gQXZkKHRoaXMsYS1BWWQodGhpcy5paSgpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj90aGlzLmlpKCk6YiksYSkpfTtfLmJpPWZ1bmN0aW9uIFVYZChhLGIpe3ZhciBjO3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtzTGQodGhpcy5BYik7IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtZR2QodGhpcy5BYixSRChiLDE2KSk7cmV0dXJuO2Nhc2UgMTpMWGQodGhpcyxXRChiKSk7cmV0dXJuO2Nhc2UgMjpJWGQodGhpcyxXRChiKSk7cmV0dXJuO2Nhc2UgNTpLWGQodGhpcyxXRChiKSk7cmV0dXJuO2Nhc2UgNzohdGhpcy5BJiYodGhpcy5BPW5ldyBpaWUoejcsdGhpcyw3KSk7c0xkKHRoaXMuQSk7IXRoaXMuQSYmKHRoaXMuQT1uZXcgaWllKHo3LHRoaXMsNykpO1lHZCh0aGlzLkEsUkQoYiwxNikpO3JldHVybjt9QnZkKHRoaXMsYS1BWWQodGhpcy5paSgpKSx2WWQoKGM9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYz90aGlzLmlpKCk6YyksYSksYil9O18uaWk9ZnVuY3Rpb24gVlhkKCl7cmV0dXJuIEpUZCgpLHBUZH07Xy5raT1mdW5jdGlvbiBXWGQoYSl7dmFyIGI7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTtyZXR1cm47Y2FzZSAxOlpEKHRoaXMuQ2IsMTg0KSYmKFJEKHRoaXMuQ2IsMTg0KS50Yj1udWxsKTtQQWQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSAyOnlYZCh0aGlzLG51bGwpO3pYZCh0aGlzLHRoaXMuRCk7cmV0dXJuO2Nhc2UgNTpLWGQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSA3OiF0aGlzLkEmJih0aGlzLkE9bmV3IGlpZSh6Nyx0aGlzLDcpKTtzTGQodGhpcy5BKTtyZXR1cm47fUN2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/dGhpcy5paSgpOmIpLGEpKX07Xy5oaz1mdW5jdGlvbiBYWGQoKXt2YXIgYTtyZXR1cm4gdGhpcy5HPT0tMSYmKHRoaXMuRz0oYT1CWGQodGhpcyksYT9mWmQoYS52aSgpLHRoaXMpOi0xKSksdGhpcy5HfTtfLmlrPWZ1bmN0aW9uIFlYZCgpe3JldHVybiBudWxsfTtfLmprPWZ1bmN0aW9uIFpYZCgpe3JldHVybiBCWGQodGhpcyl9O18uZWw9ZnVuY3Rpb24gJFhkKCl7cmV0dXJuIHRoaXMudn07Xy5raz1mdW5jdGlvbiBfWGQoKXtyZXR1cm4gRFhkKHRoaXMpfTtfLmxrPWZ1bmN0aW9uIGFZZCgpe3JldHVybiB0aGlzLkQhPW51bGw/dGhpcy5EOnRoaXMuQn07Xy5taz1mdW5jdGlvbiBiWWQoKXtyZXR1cm4gdGhpcy5GfTtfLmZrPWZ1bmN0aW9uIGNZZChhKXtyZXR1cm4gRlhkKHRoaXMsYSl9O18uZmw9ZnVuY3Rpb24gZFlkKGEpe3RoaXMudj1hfTtfLmdsPWZ1bmN0aW9uIGVZZChhKXtHWGQodGhpcyxhKX07Xy5obD1mdW5jdGlvbiBmWWQoYSl7dGhpcy5DPWF9O18udWk9ZnVuY3Rpb24gZ1lkKGEpe0xYZCh0aGlzLGEpfTtfLkliPWZ1bmN0aW9uIGhZZCgpe3JldHVybiBNWGQodGhpcyl9O18uQz1udWxsO18uRD1udWxsO18uRz0tMTt2YXIgYzg9c2ZiKFNIZSwnRUNsYXNzaWZpZXJJbXBsJywzNjQpO2ZlYig5MCwzNjQsezExMDoxLDk0OjEsOTM6MSwyOToxLDE0MjoxLDE1NToxLDE5NzoxLDU4OjEsMTE0OjEsNTQ6MSw5OToxLDkwOjEsMzY0OjEsMTU4OjEsNDgyOjEsMTE5OjEsMTIwOjEsNjkxOjF9LEhZZCk7Xy5kbD1mdW5jdGlvbiBJWWQoYSl7cmV0dXJuIERZZCh0aGlzLGEuRGgoKSl9O18uTGg9ZnVuY3Rpb24gSllkKGEsYixjKXt2YXIgZDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHRoaXMuQWI7Y2FzZSAxOnJldHVybiB0aGlzLnpiO2Nhc2UgMjpyZXR1cm4gdGhpcy5EIT1udWxsP3RoaXMuRDp0aGlzLkI7Y2FzZSAzOnJldHVybiBEWGQodGhpcyk7Y2FzZSA0OnJldHVybiBudWxsO2Nhc2UgNTpyZXR1cm4gdGhpcy5GO2Nhc2UgNjppZihiKXJldHVybiBCWGQodGhpcyk7cmV0dXJuIHhYZCh0aGlzKTtjYXNlIDc6cmV0dXJuICF0aGlzLkEmJih0aGlzLkE9bmV3IGlpZSh6Nyx0aGlzLDcpKSx0aGlzLkE7Y2FzZSA4OnJldHVybiBHZWIoKSwodGhpcy5CYiYyNTYpIT0wP3RydWU6ZmFsc2U7Y2FzZSA5OnJldHVybiBHZWIoKSwodGhpcy5CYiY1MTIpIT0wP3RydWU6ZmFsc2U7Y2FzZSAxMDpyZXR1cm4gellkKHRoaXMpO2Nhc2UgMTE6cmV0dXJuICF0aGlzLnEmJih0aGlzLnE9bmV3IEM1ZChzNyx0aGlzLDExLDEwKSksdGhpcy5xO2Nhc2UgMTI6cmV0dXJuIG1ZZCh0aGlzKTtjYXNlIDEzOnJldHVybiBxWWQodGhpcyk7Y2FzZSAxNDpyZXR1cm4gcVlkKHRoaXMpLHRoaXMucjtjYXNlIDE1OnJldHVybiBtWWQodGhpcyksdGhpcy5rO2Nhc2UgMTY6cmV0dXJuIG5ZZCh0aGlzKTtjYXNlIDE3OnJldHVybiBwWWQodGhpcyk7Y2FzZSAxODpyZXR1cm4gcllkKHRoaXMpO2Nhc2UgMTk6cmV0dXJuIHNZZCh0aGlzKTtjYXNlIDIwOnJldHVybiBtWWQodGhpcyksdGhpcy5vO2Nhc2UgMjE6cmV0dXJuICF0aGlzLnMmJih0aGlzLnM9bmV3IEM1ZCh5Nyx0aGlzLDIxLDE3KSksdGhpcy5zO2Nhc2UgMjI6cmV0dXJuIHRZZCh0aGlzKTtjYXNlIDIzOnJldHVybiBvWWQodGhpcyk7fXJldHVybiB6dmQodGhpcyxhLUFZZCgoSlRkKCksb1RkKSksdllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/b1RkOmQpLGEpLGIsYyl9O18uU2g9ZnVuY3Rpb24gS1lkKGEsYixjKXt2YXIgZCxlLGY7c3dpdGNoKGIpe2Nhc2UgMDpyZXR1cm4gIXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKSxxTGQodGhpcy5BYixhLGMpO2Nhc2UgNjohIXRoaXMuQ2ImJihjPShlPXRoaXMuRGI+PjE2LGU+PTA/QVhkKHRoaXMsYyk6dGhpcy5DYi5UaCh0aGlzLC0xLWUsbnVsbCxjKSkpO3JldHVybiB4dmQodGhpcyxhLDYsYyk7Y2FzZSAxMTpyZXR1cm4gIXRoaXMucSYmKHRoaXMucT1uZXcgQzVkKHM3LHRoaXMsMTEsMTApKSxxTGQodGhpcy5xLGEsYyk7Y2FzZSAyMTpyZXR1cm4gIXRoaXMucyYmKHRoaXMucz1uZXcgQzVkKHk3LHRoaXMsMjEsMTcpKSxxTGQodGhpcy5zLGEsYyk7fXJldHVybiBmPVJEKHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkPyhKVGQoKSxvVGQpOmQpLGIpLDY5KSxmLndrKCkuemsodGhpcyxXd2QodGhpcyksYi1BWWQoKEpUZCgpLG9UZCkpLGEsYyl9O18uVWg9ZnVuY3Rpb24gTFlkKGEsYixjKXt2YXIgZCxlO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksckxkKHRoaXMuQWIsYSxjKTtjYXNlIDY6cmV0dXJuIHh2ZCh0aGlzLG51bGwsNixjKTtjYXNlIDc6cmV0dXJuICF0aGlzLkEmJih0aGlzLkE9bmV3IGlpZSh6Nyx0aGlzLDcpKSxyTGQodGhpcy5BLGEsYyk7Y2FzZSAxMTpyZXR1cm4gIXRoaXMucSYmKHRoaXMucT1uZXcgQzVkKHM3LHRoaXMsMTEsMTApKSxyTGQodGhpcy5xLGEsYyk7Y2FzZSAyMTpyZXR1cm4gIXRoaXMucyYmKHRoaXMucz1uZXcgQzVkKHk3LHRoaXMsMjEsMTcpKSxyTGQodGhpcy5zLGEsYyk7Y2FzZSAyMjpyZXR1cm4gckxkKHRZZCh0aGlzKSxhLGMpO31yZXR1cm4gZT1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD8oSlRkKCksb1RkKTpkKSxiKSw2OSksZS53aygpLkFrKHRoaXMsV3dkKHRoaXMpLGItQVlkKChKVGQoKSxvVGQpKSxhLGMpfTtfLldoPWZ1bmN0aW9uIE1ZZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhIXRoaXMuQWImJnRoaXMuQWIuaSE9MDtjYXNlIDE6cmV0dXJuIHRoaXMuemIhPW51bGw7Y2FzZSAyOnJldHVybiB0aGlzLkQhPW51bGwmJnRoaXMuRD09dGhpcy5GO2Nhc2UgMzpyZXR1cm4gISFEWGQodGhpcyk7Y2FzZSA0OnJldHVybiBmYWxzZTtjYXNlIDU6cmV0dXJuIHRoaXMuRiE9bnVsbCYmdGhpcy5GIT10aGlzLkQmJnRoaXMuRiE9dGhpcy5CO2Nhc2UgNjpyZXR1cm4gISF4WGQodGhpcyk7Y2FzZSA3OnJldHVybiAhIXRoaXMuQSYmdGhpcy5BLmkhPTA7Y2FzZSA4OnJldHVybiAodGhpcy5CYiYyNTYpIT0wO2Nhc2UgOTpyZXR1cm4gKHRoaXMuQmImNTEyKSE9MDtjYXNlIDEwOnJldHVybiAhIXRoaXMudSYmdFlkKHRoaXMudS5hKS5pIT0wJiYhKCEhdGhpcy5uJiZkJGQodGhpcy5uKSk7Y2FzZSAxMTpyZXR1cm4gISF0aGlzLnEmJnRoaXMucS5pIT0wO2Nhc2UgMTI6cmV0dXJuIG1ZZCh0aGlzKS5pIT0wO2Nhc2UgMTM6cmV0dXJuIHFZZCh0aGlzKS5pIT0wO2Nhc2UgMTQ6cmV0dXJuIHFZZCh0aGlzKSx0aGlzLnIuaSE9MDtjYXNlIDE1OnJldHVybiBtWWQodGhpcyksdGhpcy5rLmkhPTA7Y2FzZSAxNjpyZXR1cm4gbllkKHRoaXMpLmkhPTA7Y2FzZSAxNzpyZXR1cm4gcFlkKHRoaXMpLmkhPTA7Y2FzZSAxODpyZXR1cm4gcllkKHRoaXMpLmkhPTA7Y2FzZSAxOTpyZXR1cm4gc1lkKHRoaXMpLmkhPTA7Y2FzZSAyMDpyZXR1cm4gbVlkKHRoaXMpLCEhdGhpcy5vO2Nhc2UgMjE6cmV0dXJuICEhdGhpcy5zJiZ0aGlzLnMuaSE9MDtjYXNlIDIyOnJldHVybiAhIXRoaXMubiYmZCRkKHRoaXMubik7Y2FzZSAyMzpyZXR1cm4gb1lkKHRoaXMpLmkhPTA7fXJldHVybiBBdmQodGhpcyxhLUFZZCgoSlRkKCksb1RkKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/b1RkOmIpLGEpKX07Xy5aaD1mdW5jdGlvbiBOWWQoYSl7dmFyIGI7Yj10aGlzLmk9PW51bGx8fCEhdGhpcy5xJiZ0aGlzLnEuaSE9MD9udWxsOndZZCh0aGlzLGEpO3JldHVybiBiP2I6X3pkKHRoaXMsYSl9O18uYmk9ZnVuY3Rpb24gT1lkKGEsYil7dmFyIGM7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTshdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO1lHZCh0aGlzLkFiLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAxOkxYZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSAyOklYZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSA1OktYZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSA3OiF0aGlzLkEmJih0aGlzLkE9bmV3IGlpZSh6Nyx0aGlzLDcpKTtzTGQodGhpcy5BKTshdGhpcy5BJiYodGhpcy5BPW5ldyBpaWUoejcsdGhpcyw3KSk7WUdkKHRoaXMuQSxSRChiLDE2KSk7cmV0dXJuO2Nhc2UgODpFWWQodGhpcyxIZWIoVEQoYikpKTtyZXR1cm47Y2FzZSA5OkZZZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDEwOlZKZCh6WWQodGhpcykpO1lHZCh6WWQodGhpcyksUkQoYiwxNikpO3JldHVybjtjYXNlIDExOiF0aGlzLnEmJih0aGlzLnE9bmV3IEM1ZChzNyx0aGlzLDExLDEwKSk7c0xkKHRoaXMucSk7IXRoaXMucSYmKHRoaXMucT1uZXcgQzVkKHM3LHRoaXMsMTEsMTApKTtZR2QodGhpcy5xLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAyMTohdGhpcy5zJiYodGhpcy5zPW5ldyBDNWQoeTcsdGhpcywyMSwxNykpO3NMZCh0aGlzLnMpOyF0aGlzLnMmJih0aGlzLnM9bmV3IEM1ZCh5Nyx0aGlzLDIxLDE3KSk7WUdkKHRoaXMucyxSRChiLDE2KSk7cmV0dXJuO2Nhc2UgMjI6c0xkKHRZZCh0aGlzKSk7WUdkKHRZZCh0aGlzKSxSRChiLDE2KSk7cmV0dXJuO31CdmQodGhpcyxhLUFZZCgoSlRkKCksb1RkKSksdllkKChjPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWM/b1RkOmMpLGEpLGIpfTtfLmlpPWZ1bmN0aW9uIFBZZCgpe3JldHVybiBKVGQoKSxvVGR9O18ua2k9ZnVuY3Rpb24gUVlkKGEpe3ZhciBiO3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtzTGQodGhpcy5BYik7cmV0dXJuO2Nhc2UgMTpaRCh0aGlzLkNiLDE4NCkmJihSRCh0aGlzLkNiLDE4NCkudGI9bnVsbCk7UEFkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgMjp5WGQodGhpcyxudWxsKTt6WGQodGhpcyx0aGlzLkQpO3JldHVybjtjYXNlIDU6S1hkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgNzohdGhpcy5BJiYodGhpcy5BPW5ldyBpaWUoejcsdGhpcyw3KSk7c0xkKHRoaXMuQSk7cmV0dXJuO2Nhc2UgODpFWWQodGhpcyxmYWxzZSk7cmV0dXJuO2Nhc2UgOTpGWWQodGhpcyxmYWxzZSk7cmV0dXJuO2Nhc2UgMTA6ISF0aGlzLnUmJlZKZCh0aGlzLnUpO3JldHVybjtjYXNlIDExOiF0aGlzLnEmJih0aGlzLnE9bmV3IEM1ZChzNyx0aGlzLDExLDEwKSk7c0xkKHRoaXMucSk7cmV0dXJuO2Nhc2UgMjE6IXRoaXMucyYmKHRoaXMucz1uZXcgQzVkKHk3LHRoaXMsMjEsMTcpKTtzTGQodGhpcy5zKTtyZXR1cm47Y2FzZSAyMjohIXRoaXMubiYmc0xkKHRoaXMubik7cmV0dXJuO31DdmQodGhpcyxhLUFZZCgoSlRkKCksb1RkKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/b1RkOmIpLGEpKX07Xy5waT1mdW5jdGlvbiBSWWQoKXt2YXIgYSxiO21ZZCh0aGlzKTtxWWQodGhpcyk7bllkKHRoaXMpO3BZZCh0aGlzKTtyWWQodGhpcyk7c1lkKHRoaXMpO29ZZCh0aGlzKTtPSGQocSRkKHlZZCh0aGlzKSkpO2lmKHRoaXMucyl7Zm9yKGE9MCxiPXRoaXMucy5pO2E8YjsrK2Epe2FBZChRSGQodGhpcy5zLGEpKX19aWYodGhpcy5xKXtmb3IoYT0wLGI9dGhpcy5xLmk7YTxiOysrYSl7YUFkKFFIZCh0aGlzLnEsYSkpfX1PZWUoKGxrZSgpLGprZSksdGhpcykueGUoKTt0aGlzLkJifD0xfTtfLkliPWZ1bmN0aW9uIFNZZCgpe3JldHVybiBHWWQodGhpcyl9O18uaz1udWxsO18ucj1udWxsO3ZhciBpWWQsallkLGtZZDt2YXIgYjg9c2ZiKFNIZSwnRUNsYXNzSW1wbCcsOTApO2ZlYigyMDkyLDIwOTEsbktlKTtfLkVpPWZ1bmN0aW9uIFRZZChhLGIpe3JldHVybiBuTGQodGhpcyxhLGIpfTtfLkZpPWZ1bmN0aW9uIFVZZChhKXtyZXR1cm4gbkxkKHRoaXMsdGhpcy5pLGEpfTtfLkdpPWZ1bmN0aW9uIFZZZChhLGIpe29MZCh0aGlzLGEsYil9O18uSGk9ZnVuY3Rpb24gV1lkKGEpe3BMZCh0aGlzLGEpfTtfLldrPWZ1bmN0aW9uIFhZZChhLGIpe3JldHVybiBxTGQodGhpcyxhLGIpfTtfLiRpPWZ1bmN0aW9uIFlZZChhKXtyZXR1cm4gTkhkKHRoaXMsYSl9O18uWGs9ZnVuY3Rpb24gYVpkKGEsYil7cmV0dXJuIHJMZCh0aGlzLGEsYil9O18uWGk9ZnVuY3Rpb24gYlpkKGEsYil7cmV0dXJuIHhMZCh0aGlzLGEsYil9O18uSWk9ZnVuY3Rpb24gWllkKCl7cmV0dXJuIG5ldyB5TWQodGhpcyl9O18uSmk9ZnVuY3Rpb24gJFlkKCl7cmV0dXJuIG5ldyBCTWQodGhpcyl9O18uS2k9ZnVuY3Rpb24gX1lkKGEpe3JldHVybiBaR2QodGhpcyxhKX07dmFyIFViYj1zZmIoWkplLCdOb3RpZnlpbmdJbnRlcm5hbEVMaXN0SW1wbCcsMjA5Mik7ZmViKDYzMiwyMDkyLG9LZSk7Xy5IYz1mdW5jdGlvbiBsWmQoYSl7cmV0dXJuIGNaZCh0aGlzLGEpfTtfLklqPWZ1bmN0aW9uIG1aZChhLGIsYyxkLGUpe3JldHVybiBkWmQodGhpcyxhLGIsYyxkLGUpfTtfLkpqPWZ1bmN0aW9uIG5aZChhKXtlWmQodGhpcyxhKX07Xy5Gaz1mdW5jdGlvbiBvWmQoYSl7cmV0dXJuIHRoaXN9O18uTGs9ZnVuY3Rpb24gcFpkKCl7cmV0dXJuIHZZZCh0aGlzLmUuRGgoKSx0aGlzLkxqKCkpfTtfLktqPWZ1bmN0aW9uIHFaZCgpe3JldHVybiB0aGlzLkxrKCl9O18uTGo9ZnVuY3Rpb24gclpkKCl7cmV0dXJuIEJZZCh0aGlzLmUuRGgoKSx0aGlzLkxrKCkpfTtfLmlsPWZ1bmN0aW9uIHNaZCgpe3JldHVybiBSRCh0aGlzLkxrKCkuSGsoKSwyOSkua2soKX07Xy5qbD1mdW5jdGlvbiB0WmQoKXtyZXR1cm4gWjVkKFJEKHRoaXMuTGsoKSwxOSkpLm59O18uamo9ZnVuY3Rpb24gdVpkKCl7cmV0dXJuIHRoaXMuZX07Xy5rbD1mdW5jdGlvbiB2WmQoKXtyZXR1cm4gdHJ1ZX07Xy5sbD1mdW5jdGlvbiB3WmQoKXtyZXR1cm4gZmFsc2V9O18ubWw9ZnVuY3Rpb24geFpkKCl7cmV0dXJuIGZhbHNlfTtfLm5sPWZ1bmN0aW9uIHlaZCgpe3JldHVybiBmYWxzZX07Xy5kZD1mdW5jdGlvbiB6WmQoYSl7cmV0dXJuIGZaZCh0aGlzLGEpfTtfLk5qPWZ1bmN0aW9uIEFaZChhLGIpe3ZhciBjO3JldHVybiBjPVJEKGEsNTQpLHRoaXMubWwoKT90aGlzLmtsKCk/Yy5SaCh0aGlzLmUsdGhpcy5qbCgpLHRoaXMuaWwoKSxiKTpjLlJoKHRoaXMuZSxCWWQoYy5EaCgpLFo1ZChSRCh0aGlzLkxrKCksMTkpKSksbnVsbCxiKTpjLlJoKHRoaXMuZSwtMS10aGlzLkxqKCksbnVsbCxiKX07Xy5Paj1mdW5jdGlvbiBCWmQoYSxiKXt2YXIgYztyZXR1cm4gYz1SRChhLDU0KSx0aGlzLm1sKCk/dGhpcy5rbCgpP2MuVGgodGhpcy5lLHRoaXMuamwoKSx0aGlzLmlsKCksYik6Yy5UaCh0aGlzLmUsQllkKGMuRGgoKSxaNWQoUkQodGhpcy5MaygpLDE5KSkpLG51bGwsYik6Yy5UaCh0aGlzLmUsLTEtdGhpcy5MaigpLG51bGwsYil9O18uYWw9ZnVuY3Rpb24gQ1pkKCl7cmV0dXJuIGZhbHNlfTtfLm9sPWZ1bmN0aW9uIERaZCgpe3JldHVybiB0cnVlfTtfLmZrPWZ1bmN0aW9uIEVaZChhKXtyZXR1cm4gUVJkKHRoaXMuZCxhKX07Xy5Qaj1mdW5jdGlvbiBGWmQoKXtyZXR1cm4gTXZkKHRoaXMuZSl9O18uUWo9ZnVuY3Rpb24gR1pkKCl7cmV0dXJuIHRoaXMuaSE9MH07Xy5haj1mdW5jdGlvbiBIWmQoYSl7cmV0dXJuIElNZCh0aGlzLmQsYSl9O18uV2k9ZnVuY3Rpb24gSVpkKGEsYil7cmV0dXJuIHRoaXMub2woKSYmdGhpcy5ubCgpP2daZCh0aGlzLGEsUkQoYiw1OCkpOmJ9O18ucGw9ZnVuY3Rpb24gSlpkKGEpe3JldHVybiBhLlZoKCk/VnZkKHRoaXMuZSxSRChhLDU0KSk6YX07Xy5XYj1mdW5jdGlvbiBLWmQoYSl7aFpkKHRoaXMsYSl9O18uUGM9ZnVuY3Rpb24gTFpkKCl7cmV0dXJuIGlaZCh0aGlzKX07Xy5RYz1mdW5jdGlvbiBNWmQoYSl7dmFyIGI7aWYodGhpcy5ubCgpKXtmb3IoYj10aGlzLmktMTtiPj0wOy0tYil7UUhkKHRoaXMsYil9fXJldHVybiBYSGQodGhpcyxhKX07Xy5Haz1mdW5jdGlvbiBOWmQoKXtzTGQodGhpcyl9O18uWmk9ZnVuY3Rpb24gT1pkKGEsYil7cmV0dXJuIGpaZCh0aGlzLGEsYil9O3ZhciB5YmI9c2ZiKFpKZSwnRWNvcmVFTGlzdCcsNjMyKTtmZWIoNTA1LDYzMixvS2UsUFpkKTtfLkxpPWZ1bmN0aW9uIFFaZCgpe3JldHVybiBmYWxzZX07Xy5Maj1mdW5jdGlvbiBSWmQoKXtyZXR1cm4gdGhpcy5jfTtfLk1qPWZ1bmN0aW9uIFNaZCgpe3JldHVybiBmYWxzZX07Xy5vbD1mdW5jdGlvbiBUWmQoKXtyZXR1cm4gdHJ1ZX07Xy5TaT1mdW5jdGlvbiBVWmQoKXtyZXR1cm4gdHJ1ZX07Xy5XaT1mdW5jdGlvbiBWWmQoYSxiKXtyZXR1cm4gYn07Xy5ZaT1mdW5jdGlvbiBXWmQoKXtyZXR1cm4gZmFsc2V9O18uYz0wO3ZhciBpYmI9c2ZiKFpKZSwnRU9iamVjdEVMaXN0Jyw1MDUpO2ZlYig4Myw1MDUsb0tlLFhaZCk7Xy5Naj1mdW5jdGlvbiBZWmQoKXtyZXR1cm4gdHJ1ZX07Xy5tbD1mdW5jdGlvbiBaWmQoKXtyZXR1cm4gZmFsc2V9O18uYWw9ZnVuY3Rpb24gJFpkKCl7cmV0dXJuIHRydWV9O3ZhciBjYmI9c2ZiKFpKZSwnRU9iamVjdENvbnRhaW5tZW50RUxpc3QnLDgzKTtmZWIoNTU1LDgzLG9LZSxfWmQpO18uTmk9ZnVuY3Rpb24gYSRkKCl7dGhpcy5iPXRydWV9O18uUWo9ZnVuY3Rpb24gYiRkKCl7cmV0dXJuIHRoaXMuYn07Xy5Haz1mdW5jdGlvbiBjJGQoKXt2YXIgYTtzTGQodGhpcyk7aWYoTXZkKHRoaXMuZSkpe2E9dGhpcy5iO3RoaXMuYj1mYWxzZTtxdmQodGhpcy5lLG5ldyBRM2QodGhpcy5lLDIsdGhpcy5jLGEsZmFsc2UpKX1lbHNle3RoaXMuYj1mYWxzZX19O18uYj1mYWxzZTt2YXIgYmJiPXNmYihaSmUsJ0VPYmplY3RDb250YWlubWVudEVMaXN0L1Vuc2V0dGFibGUnLDU1NSk7ZmViKDExNjEsNTU1LG9LZSxoJGQpO18uVGk9ZnVuY3Rpb24gbCRkKGEsYil7dmFyIGMsZDtyZXR1cm4gYz1SRCh1TGQodGhpcyxhLGIpLDg5KSxNdmQodGhpcy5lKSYmZVpkKHRoaXMsbmV3IGM0ZCh0aGlzLmEsNywoSlRkKCkscVRkKSxzZ2IoYiksKGQ9Yy5jLFpEKGQsOTApP1JEKGQsMjkpOnpUZCksYSkpLGN9O18uVWo9ZnVuY3Rpb24gbSRkKGEsYil7cmV0dXJuIGUkZCh0aGlzLFJEKGEsODkpLGIpfTtfLlZqPWZ1bmN0aW9uIG4kZChhLGIpe3JldHVybiBmJGQodGhpcyxSRChhLDg5KSxiKX07Xy5Xaj1mdW5jdGlvbiBvJGQoYSxiLGMpe3JldHVybiBnJGQodGhpcyxSRChhLDg5KSxSRChiLDg5KSxjKX07Xy5Jaj1mdW5jdGlvbiBpJGQoYSxiLGMsZCxlKXtzd2l0Y2goYSl7Y2FzZSAzOntyZXR1cm4gZFpkKHRoaXMsYSxiLGMsZCx0aGlzLmk+MSl9Y2FzZSA1OntyZXR1cm4gZFpkKHRoaXMsYSxiLGMsZCx0aGlzLmktUkQoYywxNSkuZ2MoKT4wKX1kZWZhdWx0OntyZXR1cm4gbmV3IFAzZCh0aGlzLmUsYSx0aGlzLmMsYixjLGQsdHJ1ZSl9fX07Xy5Uaj1mdW5jdGlvbiBqJGQoKXtyZXR1cm4gdHJ1ZX07Xy5Raj1mdW5jdGlvbiBrJGQoKXtyZXR1cm4gZCRkKHRoaXMpfTtfLkdrPWZ1bmN0aW9uIHAkZCgpe3NMZCh0aGlzKX07dmFyIFM3PXNmYihTSGUsJ0VDbGFzc0ltcGwvMScsMTE2MSk7ZmViKDExNzUsMTE3NCxFSmUpO18uZGo9ZnVuY3Rpb24gdCRkKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2M9YS5naigpO2lmKGMhPTgpe2Q9cyRkKGEpO2lmKGQ9PTApe3N3aXRjaChjKXtjYXNlIDE6Y2FzZSA5OntoPWEua2ooKTtpZihoIT1udWxsKXtiPXlZZChSRChoLDQ4MikpOyFiLmMmJihiLmM9bmV3IFg5ZCk7ZEhkKGIuYyxhLmpqKCkpfWc9YS5paigpO2lmKGchPW51bGwpe2U9UkQoZyw0ODIpO2lmKChlLkJiJjEpPT0wKXtiPXlZZChlKTshYi5jJiYoYi5jPW5ldyBYOWQpO1dHZChiLmMsUkQoYS5qaigpLDI5KSl9fWJyZWFrfWNhc2UgMzp7Zz1hLmlqKCk7aWYoZyE9bnVsbCl7ZT1SRChnLDQ4Mik7aWYoKGUuQmImMSk9PTApe2I9eVlkKGUpOyFiLmMmJihiLmM9bmV3IFg5ZCk7V0dkKGIuYyxSRChhLmpqKCksMjkpKX19YnJlYWt9Y2FzZSA1OntnPWEuaWooKTtpZihnIT1udWxsKXtmb3IoZj1SRChnLDE2KS5LYygpO2YuT2IoKTspe2U9UkQoZi5QYigpLDQ4Mik7aWYoKGUuQmImMSk9PTApe2I9eVlkKGUpOyFiLmMmJihiLmM9bmV3IFg5ZCk7V0dkKGIuYyxSRChhLmpqKCksMjkpKX19fWJyZWFrfWNhc2UgNDp7aD1hLmtqKCk7aWYoaCE9bnVsbCl7ZT1SRChoLDQ4Mik7aWYoKGUuQmImMSk9PTApe2I9eVlkKGUpOyFiLmMmJihiLmM9bmV3IFg5ZCk7ZEhkKGIuYyxhLmpqKCkpfX1icmVha31jYXNlIDY6e2g9YS5raigpO2lmKGghPW51bGwpe2ZvcihmPVJEKGgsMTYpLktjKCk7Zi5PYigpOyl7ZT1SRChmLlBiKCksNDgyKTtpZigoZS5CYiYxKT09MCl7Yj15WWQoZSk7IWIuYyYmKGIuYz1uZXcgWDlkKTtkSGQoYi5jLGEuamooKSl9fX1icmVha319fXRoaXMucWwoZCl9fTtfLnFsPWZ1bmN0aW9uIHUkZChhKXtyJGQodGhpcyxhKX07Xy5iPTYzO3ZhciB1OT1zZmIoU0hlLCdFU3VwZXJBZGFwdGVyJywxMTc1KTtmZWIoMTE3NiwxMTc1LEVKZSx3JGQpO18ucWw9ZnVuY3Rpb24geCRkKGEpe3YkZCh0aGlzLGEpfTt2YXIgTjc9c2ZiKFNIZSwnRUNsYXNzSW1wbC8xMCcsMTE3Nik7ZmViKDExNjUsNzEwLG9LZSk7Xy5FaT1mdW5jdGlvbiB5JGQoYSxiKXtyZXR1cm4gSUhkKHRoaXMsYSxiKX07Xy5GaT1mdW5jdGlvbiB6JGQoYSl7cmV0dXJuIEpIZCh0aGlzLGEpfTtfLkdpPWZ1bmN0aW9uIEEkZChhLGIpe0tIZCh0aGlzLGEsYil9O18uSGk9ZnVuY3Rpb24gQiRkKGEpe0xIZCh0aGlzLGEpfTtfLiRpPWZ1bmN0aW9uIEQkZChhKXtyZXR1cm4gTkhkKHRoaXMsYSl9O18uWGk9ZnVuY3Rpb24gTCRkKGEsYil7cmV0dXJuIFVIZCh0aGlzLGEsYil9O18uV2s9ZnVuY3Rpb24gQyRkKGEsYil7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLklpPWZ1bmN0aW9uIEUkZCgpe3JldHVybiBuZXcgeU1kKHRoaXMpfTtfLkppPWZ1bmN0aW9uIEYkZCgpe3JldHVybiBuZXcgQk1kKHRoaXMpfTtfLktpPWZ1bmN0aW9uIEckZChhKXtyZXR1cm4gWkdkKHRoaXMsYSl9O18uWGs9ZnVuY3Rpb24gSCRkKGEsYil7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLkZrPWZ1bmN0aW9uIEkkZChhKXtyZXR1cm4gdGhpc307Xy5Raj1mdW5jdGlvbiBKJGQoKXtyZXR1cm4gdGhpcy5pIT0wfTtfLldiPWZ1bmN0aW9uIEskZChhKXt0aHJvdyBBZGIobmV3IGppYil9O18uR2s9ZnVuY3Rpb24gTSRkKCl7dGhyb3cgQWRiKG5ldyBqaWIpfTt2YXIgeGJiPXNmYihaSmUsJ0Vjb3JlRUxpc3QvVW5tb2RpZmlhYmxlRUxpc3QnLDExNjUpO2ZlYigzMjgsMTE2NSxvS2UsTiRkKTtfLllpPWZ1bmN0aW9uIE8kZCgpe3JldHVybiBmYWxzZX07dmFyIHdiYj1zZmIoWkplLCdFY29yZUVMaXN0L1VubW9kaWZpYWJsZUVMaXN0L0Zhc3RDb21wYXJlJywzMjgpO2ZlYigxMTY4LDMyOCxvS2UsUiRkKTtfLmRkPWZ1bmN0aW9uIFMkZChhKXt2YXIgYixjLGQ7aWYoWkQoYSwxNzkpKXtiPVJEKGEsMTc5KTtjPWIuTGooKTtpZihjIT0tMSl7Zm9yKGQ9dGhpcy5pO2M8ZDsrK2Mpe2lmKGRFKHRoaXMuZ1tjXSk9PT1kRShhKSl7cmV0dXJuIGN9fX19cmV0dXJuIC0xfTt2YXIgTzc9c2ZiKFNIZSwnRUNsYXNzSW1wbC8xRUFsbFN0cnVjdHVyYWxGZWF0dXJlc0xpc3QnLDExNjgpO2ZlYigxMTYyLDUwNixQSWUsVyRkKTtfLmFqPWZ1bmN0aW9uIFgkZChhKXtyZXR1cm4gJEMobzcsc0tlLDg5LGEsMCwxKX07Xy5ZaT1mdW5jdGlvbiBZJGQoKXtyZXR1cm4gZmFsc2V9O3ZhciBQNz1zZmIoU0hlLCdFQ2xhc3NJbXBsLzFFR2VuZXJpY1N1cGVyVHlwZUVMaXN0JywxMTYyKTtmZWIoNjMzLDUwNixQSWUsWiRkKTtfLmFqPWZ1bmN0aW9uICQkZChhKXtyZXR1cm4gJEMoeTcsbEtlLDE3OSxhLDAsMSl9O18uWWk9ZnVuY3Rpb24gXyRkKCl7cmV0dXJuIGZhbHNlfTt2YXIgUTc9c2ZiKFNIZSwnRUNsYXNzSW1wbC8xRVN0cnVjdHVyYWxGZWF0dXJlVW5pcXVlRUxpc3QnLDYzMyk7ZmViKDc1NSw1MDYsUEllLGFfZCk7Xy5haj1mdW5jdGlvbiBiX2QoYSl7cmV0dXJuICRDKHY3LGxLZSwxOSxhLDAsMSl9O18uWWk9ZnVuY3Rpb24gY19kKCl7cmV0dXJuIGZhbHNlfTt2YXIgUjc9c2ZiKFNIZSwnRUNsYXNzSW1wbC8xUmVmZXJlbmNlTGlzdCcsNzU1KTtmZWIoMTE2Myw1MDYsUEllLGVfZCk7Xy5NaT1mdW5jdGlvbiBmX2QoYSxiKXtkX2QodGhpcyxSRChiLDM1KSl9O18uYWo9ZnVuY3Rpb24gZ19kKGEpe3JldHVybiAkQyhnNyxsS2UsMzUsYSwwLDEpfTtfLllpPWZ1bmN0aW9uIGhfZCgpe3JldHVybiBmYWxzZX07dmFyIFQ3PXNmYihTSGUsJ0VDbGFzc0ltcGwvMicsMTE2Myk7ZmViKDExNjQsNTA2LFBJZSxpX2QpO18uYWo9ZnVuY3Rpb24gal9kKGEpe3JldHVybiAkQyhnNyxsS2UsMzUsYSwwLDEpfTtfLllpPWZ1bmN0aW9uIGtfZCgpe3JldHVybiBmYWxzZX07dmFyIFU3PXNmYihTSGUsJ0VDbGFzc0ltcGwvMycsMTE2NCk7ZmViKDExNjYsMzI4LG9LZSxuX2QpO18uRmM9ZnVuY3Rpb24gb19kKGEpe3JldHVybiBsX2QodGhpcyxSRChhLDM1KSl9O18uSGk9ZnVuY3Rpb24gcF9kKGEpe21fZCh0aGlzLFJEKGEsMzUpKX07dmFyIFY3PXNmYihTSGUsJ0VDbGFzc0ltcGwvNCcsMTE2Nik7ZmViKDExNjcsMzI4LG9LZSxzX2QpO18uRmM9ZnVuY3Rpb24gdF9kKGEpe3JldHVybiBxX2QodGhpcyxSRChhLDE5KSl9O18uSGk9ZnVuY3Rpb24gdV9kKGEpe3JfZCh0aGlzLFJEKGEsMTkpKX07dmFyIFc3PXNmYihTSGUsJ0VDbGFzc0ltcGwvNScsMTE2Nyk7ZmViKDExNjksNTA2LFBJZSx2X2QpO18uYWo9ZnVuY3Rpb24gd19kKGEpe3JldHVybiAkQyhzNyxtS2UsNjIsYSwwLDEpfTtfLllpPWZ1bmN0aW9uIHhfZCgpe3JldHVybiBmYWxzZX07dmFyIFg3PXNmYihTSGUsJ0VDbGFzc0ltcGwvNicsMTE2OSk7ZmViKDExNzAsNTA2LFBJZSx5X2QpO18uYWo9ZnVuY3Rpb24gel9kKGEpe3JldHVybiAkQyh2NyxsS2UsMTksYSwwLDEpfTtfLllpPWZ1bmN0aW9uIEFfZCgpe3JldHVybiBmYWxzZX07dmFyIFk3PXNmYihTSGUsJ0VDbGFzc0ltcGwvNycsMTE3MCk7ZmViKDIwOTUsMjA5NCx7MzoxLDQ6MSwyMDoxLDMxOjEsNTY6MSwxNjoxLDE1OjEsNzA6MSw2MToxLDcxOjF9KTtfLkVpPWZ1bmN0aW9uIEJfZChhLGIpe3JldHVybiBRSmQodGhpcyxhLGIpfTtfLkZpPWZ1bmN0aW9uIENfZChhKXtyZXR1cm4gUUpkKHRoaXMsdGhpcy5FaigpLGEpfTtfLkdpPWZ1bmN0aW9uIERfZChhLGIpe1JKZCh0aGlzLGEsYil9O18uSGk9ZnVuY3Rpb24gRV9kKGEpe1NKZCh0aGlzLGEpfTtfLldrPWZ1bmN0aW9uIEZfZChhLGIpe3JldHVybiBUSmQodGhpcyxhLGIpfTtfLlhrPWZ1bmN0aW9uIExfZChhLGIpe3JldHVybiBVSmQodGhpcyxhLGIpfTtfLlhpPWZ1bmN0aW9uIE1fZChhLGIpe3JldHVybiBXSmQodGhpcyxhLGIpfTtfLiRpPWZ1bmN0aW9uIEdfZChhKXtyZXR1cm4gdGhpcy54aihhKX07Xy5JaT1mdW5jdGlvbiBIX2QoKXtyZXR1cm4gbmV3IHlNZCh0aGlzKX07Xy5waj1mdW5jdGlvbiBJX2QoKXtyZXR1cm4gdGhpcy5zaigpfTtfLkppPWZ1bmN0aW9uIEpfZCgpe3JldHVybiBuZXcgQk1kKHRoaXMpfTtfLktpPWZ1bmN0aW9uIEtfZChhKXtyZXR1cm4gWkdkKHRoaXMsYSl9O3ZhciBRYWI9c2ZiKFpKZSwnRGVsZWdhdGluZ05vdGlmeWluZ0ludGVybmFsRUxpc3RJbXBsJywyMDk1KTtmZWIoNzU2LDIwOTUsdEtlKTtfLkxpPWZ1bmN0aW9uIFJfZCgpe3ZhciBhO2E9dllkKFV3ZCh0aGlzLmIpLHRoaXMuTGooKSkuSGsoKTtyZXR1cm4gWkQoYSwxNTYpJiYhWkQoYSw0NjkpJiYoYS5raygpLmkmMSk9PTB9O18uSGM9ZnVuY3Rpb24gU19kKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk7aWYodGhpcy5vbCgpKXtpPXRoaXMuRWooKTtpZihpPjQpe2lmKHRoaXMuZmsoYSkpe2lmKHRoaXMuYWwoKSl7ZD1SRChhLDU0KTtjPWQuRWgoKTtoPWM9PXRoaXMuYiYmKHRoaXMubWwoKT9kLnloKGQuRmgoKSxSRCh2WWQoVXdkKHRoaXMuYiksdGhpcy5MaigpKS5IaygpLDI5KS5raygpKT09WjVkKFJEKHZZZChVd2QodGhpcy5iKSx0aGlzLkxqKCkpLDE5KSkubjotMS1kLkZoKCk9PXRoaXMuTGooKSk7aWYodGhpcy5ubCgpJiYhaCYmIWMmJiEhZC5KaCgpKXtmb3IoZT0wO2U8aTsrK2Upe2I9T19kKHRoaXMsdGhpcy54aihlKSk7aWYoZEUoYik9PT1kRShhKSl7cmV0dXJuIHRydWV9fX1yZXR1cm4gaH1lbHNlIGlmKHRoaXMubWwoKSYmIXRoaXMubGwoKSl7Zj1SRChhLDU4KS5NaChaNWQoUkQodllkKFV3ZCh0aGlzLmIpLHRoaXMuTGooKSksMTkpKSk7aWYoZEUoZik9PT1kRSh0aGlzLmIpKXtyZXR1cm4gdHJ1ZX1lbHNlIGlmKGY9PW51bGx8fCFSRChmLDU4KS5WaCgpKXtyZXR1cm4gZmFsc2V9fX1lbHNle3JldHVybiBmYWxzZX19Zz10aGlzLnVqKGEpO2lmKHRoaXMubmwoKSYmIWcpe2ZvcihlPTA7ZTxpOysrZSl7ZD1PX2QodGhpcyx0aGlzLnhqKGUpKTtpZihkRShkKT09PWRFKGEpKXtyZXR1cm4gdHJ1ZX19fXJldHVybiBnfWVsc2V7cmV0dXJuIHRoaXMudWooYSl9fTtfLklqPWZ1bmN0aW9uIFRfZChhLGIsYyxkLGUpe3JldHVybiBuZXcgUDNkKHRoaXMuYixhLHRoaXMuTGooKSxiLGMsZCxlKX07Xy5Kaj1mdW5jdGlvbiBVX2QoYSl7cXZkKHRoaXMuYixhKX07Xy5Gaz1mdW5jdGlvbiBWX2QoYSl7cmV0dXJuIHRoaXN9O18uS2o9ZnVuY3Rpb24gV19kKCl7cmV0dXJuIHZZZChVd2QodGhpcy5iKSx0aGlzLkxqKCkpfTtfLkxqPWZ1bmN0aW9uIFhfZCgpe3JldHVybiBCWWQoVXdkKHRoaXMuYiksdllkKFV3ZCh0aGlzLmIpLHRoaXMuTGooKSkpfTtfLmpqPWZ1bmN0aW9uIFlfZCgpe3JldHVybiB0aGlzLmJ9O18ua2w9ZnVuY3Rpb24gWl9kKCl7cmV0dXJuICEhdllkKFV3ZCh0aGlzLmIpLHRoaXMuTGooKSkuSGsoKS5raygpfTtfLk1qPWZ1bmN0aW9uICRfZCgpe3ZhciBhLGI7Yj12WWQoVXdkKHRoaXMuYiksdGhpcy5MaigpKTtpZihaRChiLDEwMikpe2E9UkQoYiwxOSk7cmV0dXJuIChhLkJiJlFIZSkhPTB8fCEhWjVkKFJEKGIsMTkpKX1lbHNle3JldHVybiBmYWxzZX19O18ubGw9ZnVuY3Rpb24gX19kKCl7dmFyIGEsYixjLGQ7Yj12WWQoVXdkKHRoaXMuYiksdGhpcy5MaigpKTtpZihaRChiLDEwMikpe2E9UkQoYiwxOSk7Yz1aNWQoYSk7cmV0dXJuICEhYyYmKGQ9Yy50LGQ+MXx8ZD09LTEpfWVsc2V7cmV0dXJuIGZhbHNlfX07Xy5tbD1mdW5jdGlvbiBhMGQoKXt2YXIgYSxiLGM7Yj12WWQoVXdkKHRoaXMuYiksdGhpcy5MaigpKTtpZihaRChiLDEwMikpe2E9UkQoYiwxOSk7Yz1aNWQoYSk7cmV0dXJuICEhY31lbHNle3JldHVybiBmYWxzZX19O18ubmw9ZnVuY3Rpb24gYjBkKCl7dmFyIGEsYjtiPXZZZChVd2QodGhpcy5iKSx0aGlzLkxqKCkpO2lmKFpEKGIsMTAyKSl7YT1SRChiLDE5KTtyZXR1cm4gKGEuQmImdHhlKSE9MH1lbHNle3JldHVybiBmYWxzZX19O18uZGQ9ZnVuY3Rpb24gYzBkKGEpe3ZhciBiLGMsZCxlO2Q9dGhpcy56aihhKTtpZihkPj0wKXJldHVybiBkO2lmKHRoaXMub2woKSl7Zm9yKGM9MCxlPXRoaXMuRWooKTtjPGU7KytjKXtiPU9fZCh0aGlzLHRoaXMueGooYykpO2lmKGRFKGIpPT09ZEUoYSkpe3JldHVybiBjfX19cmV0dXJuIC0xfTtfLk5qPWZ1bmN0aW9uIGQwZChhLGIpe3ZhciBjO3JldHVybiBjPVJEKGEsNTQpLHRoaXMubWwoKT90aGlzLmtsKCk/Yy5SaCh0aGlzLmIsWjVkKFJEKHZZZChVd2QodGhpcy5iKSx0aGlzLkxqKCkpLDE5KSkubixSRCh2WWQoVXdkKHRoaXMuYiksdGhpcy5MaigpKS5IaygpLDI5KS5raygpLGIpOmMuUmgodGhpcy5iLEJZZChjLkRoKCksWjVkKFJEKHZZZChVd2QodGhpcy5iKSx0aGlzLkxqKCkpLDE5KSkpLG51bGwsYik6Yy5SaCh0aGlzLmIsLTEtdGhpcy5MaigpLG51bGwsYil9O18uT2o9ZnVuY3Rpb24gZTBkKGEsYil7dmFyIGM7cmV0dXJuIGM9UkQoYSw1NCksdGhpcy5tbCgpP3RoaXMua2woKT9jLlRoKHRoaXMuYixaNWQoUkQodllkKFV3ZCh0aGlzLmIpLHRoaXMuTGooKSksMTkpKS5uLFJEKHZZZChVd2QodGhpcy5iKSx0aGlzLkxqKCkpLkhrKCksMjkpLmtrKCksYik6Yy5UaCh0aGlzLmIsQllkKGMuRGgoKSxaNWQoUkQodllkKFV3ZCh0aGlzLmIpLHRoaXMuTGooKSksMTkpKSksbnVsbCxiKTpjLlRoKHRoaXMuYiwtMS10aGlzLkxqKCksbnVsbCxiKX07Xy5hbD1mdW5jdGlvbiBmMGQoKXt2YXIgYSxiO2I9dllkKFV3ZCh0aGlzLmIpLHRoaXMuTGooKSk7aWYoWkQoYiwxMDIpKXthPVJEKGIsMTkpO3JldHVybiAoYS5CYiZRSGUpIT0wfWVsc2V7cmV0dXJuIGZhbHNlfX07Xy5vbD1mdW5jdGlvbiBnMGQoKXtyZXR1cm4gWkQodllkKFV3ZCh0aGlzLmIpLHRoaXMuTGooKSkuSGsoKSw5MCl9O18uZms9ZnVuY3Rpb24gaDBkKGEpe3JldHVybiB2WWQoVXdkKHRoaXMuYiksdGhpcy5MaigpKS5IaygpLmZrKGEpfTtfLlBqPWZ1bmN0aW9uIGkwZCgpe3JldHVybiBNdmQodGhpcy5iKX07Xy5Raj1mdW5jdGlvbiBqMGQoKXtyZXR1cm4gIXRoaXMuQWooKX07Xy5TaT1mdW5jdGlvbiBrMGQoKXtyZXR1cm4gdllkKFV3ZCh0aGlzLmIpLHRoaXMuTGooKSkuU2koKX07Xy5XaT1mdW5jdGlvbiBsMGQoYSxiKXtyZXR1cm4gTl9kKHRoaXMsYSxiKX07Xy5XYj1mdW5jdGlvbiBtMGQoYSl7VkpkKHRoaXMpO1lHZCh0aGlzLFJEKGEsMTUpKX07Xy5QYz1mdW5jdGlvbiBuMGQoKXt2YXIgYTtpZih0aGlzLm5sKCkpe2ZvcihhPXRoaXMuRWooKS0xO2E+PTA7LS1hKXtOX2QodGhpcyxhLHRoaXMueGooYSkpfX1yZXR1cm4gdGhpcy5GaigpfTtfLlFjPWZ1bmN0aW9uIG8wZChhKXt2YXIgYjtpZih0aGlzLm5sKCkpe2ZvcihiPXRoaXMuRWooKS0xO2I+PTA7LS1iKXtOX2QodGhpcyxiLHRoaXMueGooYikpfX1yZXR1cm4gdGhpcy5HaihhKX07Xy5Haz1mdW5jdGlvbiBwMGQoKXtWSmQodGhpcyl9O18uWmk9ZnVuY3Rpb24gcTBkKGEsYil7cmV0dXJuIFBfZCh0aGlzLGEsYil9O3ZhciBQYWI9c2ZiKFpKZSwnRGVsZWdhdGluZ0Vjb3JlRUxpc3QnLDc1Nik7ZmViKDExNzEsNzU2LHRLZSx3MGQpO18ucWo9ZnVuY3Rpb24gejBkKGEsYil7cjBkKHRoaXMsYSxSRChiLDI5KSl9O18ucmo9ZnVuY3Rpb24gQTBkKGEpe3MwZCh0aGlzLFJEKGEsMjkpKX07Xy54aj1mdW5jdGlvbiBHMGQoYSl7dmFyIGIsYztyZXR1cm4gYj1SRChRSGQodFlkKHRoaXMuYSksYSksODkpLGM9Yi5jLFpEKGMsOTApP1JEKGMsMjkpOihKVGQoKSx6VGQpfTtfLkNqPWZ1bmN0aW9uIEwwZChhKXt2YXIgYixjO3JldHVybiBiPVJEKHZMZCh0WWQodGhpcy5hKSxhKSw4OSksYz1iLmMsWkQoYyw5MCk/UkQoYywyOSk6KEpUZCgpLHpUZCl9O18uRGo9ZnVuY3Rpb24gTTBkKGEsYil7cmV0dXJuIHUwZCh0aGlzLGEsUkQoYiwyOSkpfTtfLkxpPWZ1bmN0aW9uIHgwZCgpe3JldHVybiBmYWxzZX07Xy5Jaj1mdW5jdGlvbiB5MGQoYSxiLGMsZCxlKXtyZXR1cm4gbnVsbH07Xy5zaj1mdW5jdGlvbiBCMGQoKXtyZXR1cm4gbmV3IGMxZCh0aGlzKX07Xy50aj1mdW5jdGlvbiBDMGQoKXtzTGQodFlkKHRoaXMuYSkpfTtfLnVqPWZ1bmN0aW9uIEQwZChhKXtyZXR1cm4gdDBkKHRoaXMsYSl9O18udmo9ZnVuY3Rpb24gRTBkKGEpe3ZhciBiLGM7Zm9yKGM9YS5LYygpO2MuT2IoKTspe2I9Yy5QYigpO2lmKCF0MGQodGhpcyxiKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX07Xy53aj1mdW5jdGlvbiBGMGQoYSl7dmFyIGIsYyxkO2lmKFpEKGEsMTUpKXtkPVJEKGEsMTUpO2lmKGQuZ2MoKT09dFlkKHRoaXMuYSkuaSl7Zm9yKGI9ZC5LYygpLGM9bmV3IGRNZCh0aGlzKTtiLk9iKCk7KXtpZihkRShiLlBiKCkpIT09ZEUoYk1kKGMpKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfTtfLnlqPWZ1bmN0aW9uIEgwZCgpe3ZhciBhLGIsYyxkLGU7Yz0xO2ZvcihiPW5ldyBkTWQodFlkKHRoaXMuYSkpO2IuZSE9Yi5pLmdjKCk7KXthPVJEKGJNZChiKSw4OSk7ZD0oZT1hLmMsWkQoZSw5MCk/UkQoZSwyOSk6KEpUZCgpLHpUZCkpO2M9MzEqYysoIWQ/MDprRmIoZCkpfXJldHVybiBjfTtfLnpqPWZ1bmN0aW9uIEkwZChhKXt2YXIgYixjLGQsZTtkPTA7Zm9yKGM9bmV3IGRNZCh0WWQodGhpcy5hKSk7Yy5lIT1jLmkuZ2MoKTspe2I9UkQoYk1kKGMpLDg5KTtpZihkRShhKT09PWRFKChlPWIuYyxaRChlLDkwKT9SRChlLDI5KTooSlRkKCkselRkKSkpKXtyZXR1cm4gZH0rK2R9cmV0dXJuIC0xfTtfLkFqPWZ1bmN0aW9uIEowZCgpe3JldHVybiB0WWQodGhpcy5hKS5pPT0wfTtfLkJqPWZ1bmN0aW9uIEswZCgpe3JldHVybiBudWxsfTtfLkVqPWZ1bmN0aW9uIE4wZCgpe3JldHVybiB0WWQodGhpcy5hKS5pfTtfLkZqPWZ1bmN0aW9uIE8wZCgpe3ZhciBhLGIsYyxkLGUsZjtmPXRZZCh0aGlzLmEpLmk7ZT0kQyhqSixydmUsMSxmLDUsMSk7Yz0wO2ZvcihiPW5ldyBkTWQodFlkKHRoaXMuYSkpO2IuZSE9Yi5pLmdjKCk7KXthPVJEKGJNZChiKSw4OSk7ZVtjKytdPShkPWEuYyxaRChkLDkwKT9SRChkLDI5KTooSlRkKCkselRkKSl9cmV0dXJuIGV9O18uR2o9ZnVuY3Rpb24gUDBkKGEpe3ZhciBiLGMsZCxlLGYsZyxoO2g9dFlkKHRoaXMuYSkuaTtpZihhLmxlbmd0aDxoKXtlPUlNZChyYihhKS5jLGgpO2E9ZX1hLmxlbmd0aD5oJiZiRChhLGgsbnVsbCk7ZD0wO2ZvcihjPW5ldyBkTWQodFlkKHRoaXMuYSkpO2MuZSE9Yy5pLmdjKCk7KXtiPVJEKGJNZChjKSw4OSk7Zj0oZz1iLmMsWkQoZyw5MCk/UkQoZywyOSk6KEpUZCgpLHpUZCkpO2JEKGEsZCsrLGYpfXJldHVybiBhfTtfLkhqPWZ1bmN0aW9uIFEwZCgpe3ZhciBhLGIsYyxkLGU7ZT1uZXcgUWhiO2UuYSs9J1snO2E9dFlkKHRoaXMuYSk7Zm9yKGI9MCxkPXRZZCh0aGlzLmEpLmk7YjxkOyl7TmhiKGUsR2hiKChjPVJEKFFIZChhLGIpLDg5KS5jLFpEKGMsOTApP1JEKGMsMjkpOihKVGQoKSx6VGQpKSkpOysrYjxkJiYoZS5hKz1wdmUsZSl9ZS5hKz0nXSc7cmV0dXJuIGUuYX07Xy5Kaj1mdW5jdGlvbiBSMGQoYSl7fTtfLkxqPWZ1bmN0aW9uIFMwZCgpe3JldHVybiAxMH07Xy5rbD1mdW5jdGlvbiBUMGQoKXtyZXR1cm4gdHJ1ZX07Xy5Naj1mdW5jdGlvbiBVMGQoKXtyZXR1cm4gZmFsc2V9O18ubGw9ZnVuY3Rpb24gVjBkKCl7cmV0dXJuIGZhbHNlfTtfLm1sPWZ1bmN0aW9uIFcwZCgpe3JldHVybiBmYWxzZX07Xy5ubD1mdW5jdGlvbiBYMGQoKXtyZXR1cm4gdHJ1ZX07Xy5hbD1mdW5jdGlvbiBZMGQoKXtyZXR1cm4gZmFsc2V9O18ub2w9ZnVuY3Rpb24gWjBkKCl7cmV0dXJuIHRydWV9O18uZms9ZnVuY3Rpb24gJDBkKGEpe3JldHVybiBaRChhLDkwKX07Xy5Raj1mdW5jdGlvbiBfMGQoKXtyZXR1cm4gQ1lkKHRoaXMuYSl9O18uU2k9ZnVuY3Rpb24gYTFkKCl7cmV0dXJuIHRydWV9O18uWWk9ZnVuY3Rpb24gYjFkKCl7cmV0dXJuIHRydWV9O3ZhciAkNz1zZmIoU0hlLCdFQ2xhc3NJbXBsLzgnLDExNzEpO2ZlYigxMTcyLDIwNjIsa3dlLGMxZCk7Xy5mZD1mdW5jdGlvbiBkMWQoYSl7cmV0dXJuIFpHZCh0aGlzLmEsYSl9O18uZ2M9ZnVuY3Rpb24gZTFkKCl7cmV0dXJuIHRZZCh0aGlzLmEuYSkuaX07dmFyIFo3PXNmYihTSGUsJ0VDbGFzc0ltcGwvOC8xJywxMTcyKTtmZWIoMTE3Myw1MDYsUEllLGYxZCk7Xy5haj1mdW5jdGlvbiBnMWQoYSl7cmV0dXJuICRDKGk3LHJ2ZSwxNDIsYSwwLDEpfTtfLllpPWZ1bmN0aW9uIGgxZCgpe3JldHVybiBmYWxzZX07dmFyIF83PXNmYihTSGUsJ0VDbGFzc0ltcGwvOScsMTE3Myk7ZmViKDExNjAsNDksSXhlLGkxZCk7dmFyIGE4PXNmYihTSGUsJ0VDbGFzc0ltcGwvTXlIYXNoU2V0JywxMTYwKTtmZWIoNTc3LDM2NCx7MTEwOjEsOTQ6MSw5MzoxLDE0MjoxLDE1NjoxLDg0NzoxLDE1NToxLDE5NzoxLDU4OjEsMTE0OjEsNTQ6MSw5OToxLDM2NDoxLDE1ODoxLDExOToxLDEyMDoxLDY5MToxfSxrMWQpO18uTGg9ZnVuY3Rpb24gbDFkKGEsYixjKXt2YXIgZDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHRoaXMuQWI7Y2FzZSAxOnJldHVybiB0aGlzLnpiO2Nhc2UgMjpyZXR1cm4gdGhpcy5EIT1udWxsP3RoaXMuRDp0aGlzLkI7Y2FzZSAzOnJldHVybiBEWGQodGhpcyk7Y2FzZSA0OnJldHVybiB0aGlzLmlrKCk7Y2FzZSA1OnJldHVybiB0aGlzLkY7Y2FzZSA2OmlmKGIpcmV0dXJuIEJYZCh0aGlzKTtyZXR1cm4geFhkKHRoaXMpO2Nhc2UgNzpyZXR1cm4gIXRoaXMuQSYmKHRoaXMuQT1uZXcgaWllKHo3LHRoaXMsNykpLHRoaXMuQTtjYXNlIDg6cmV0dXJuIEdlYigpLCh0aGlzLkJiJjI1NikhPTA/dHJ1ZTpmYWxzZTt9cmV0dXJuIHp2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/dGhpcy5paSgpOmQpLGEpLGIsYyl9O18uV2g9ZnVuY3Rpb24gbTFkKGEpe3ZhciBiO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICEhdGhpcy5BYiYmdGhpcy5BYi5pIT0wO2Nhc2UgMTpyZXR1cm4gdGhpcy56YiE9bnVsbDtjYXNlIDI6cmV0dXJuIHRoaXMuRCE9bnVsbCYmdGhpcy5EPT10aGlzLkY7Y2FzZSAzOnJldHVybiAhIURYZCh0aGlzKTtjYXNlIDQ6cmV0dXJuIHRoaXMuaWsoKSE9bnVsbDtjYXNlIDU6cmV0dXJuIHRoaXMuRiE9bnVsbCYmdGhpcy5GIT10aGlzLkQmJnRoaXMuRiE9dGhpcy5CO2Nhc2UgNjpyZXR1cm4gISF4WGQodGhpcyk7Y2FzZSA3OnJldHVybiAhIXRoaXMuQSYmdGhpcy5BLmkhPTA7Y2FzZSA4OnJldHVybiAodGhpcy5CYiYyNTYpPT0wO31yZXR1cm4gQXZkKHRoaXMsYS1BWWQodGhpcy5paSgpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj90aGlzLmlpKCk6YiksYSkpfTtfLmJpPWZ1bmN0aW9uIG4xZChhLGIpe3ZhciBjO3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtzTGQodGhpcy5BYik7IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtZR2QodGhpcy5BYixSRChiLDE2KSk7cmV0dXJuO2Nhc2UgMTpMWGQodGhpcyxXRChiKSk7cmV0dXJuO2Nhc2UgMjpJWGQodGhpcyxXRChiKSk7cmV0dXJuO2Nhc2UgNTpLWGQodGhpcyxXRChiKSk7cmV0dXJuO2Nhc2UgNzohdGhpcy5BJiYodGhpcy5BPW5ldyBpaWUoejcsdGhpcyw3KSk7c0xkKHRoaXMuQSk7IXRoaXMuQSYmKHRoaXMuQT1uZXcgaWllKHo3LHRoaXMsNykpO1lHZCh0aGlzLkEsUkQoYiwxNikpO3JldHVybjtjYXNlIDg6ajFkKHRoaXMsSGViKFREKGIpKSk7cmV0dXJuO31CdmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgoYz1SRChZd2QodGhpcywxNiksMjkpLCFjP3RoaXMuaWkoKTpjKSxhKSxiKX07Xy5paT1mdW5jdGlvbiBvMWQoKXtyZXR1cm4gSlRkKCksclRkfTtfLmtpPWZ1bmN0aW9uIHAxZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOiF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7c0xkKHRoaXMuQWIpO3JldHVybjtjYXNlIDE6WkQodGhpcy5DYiwxODQpJiYoUkQodGhpcy5DYiwxODQpLnRiPW51bGwpO1BBZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDI6eVhkKHRoaXMsbnVsbCk7elhkKHRoaXMsdGhpcy5EKTtyZXR1cm47Y2FzZSA1OktYZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDc6IXRoaXMuQSYmKHRoaXMuQT1uZXcgaWllKHo3LHRoaXMsNykpO3NMZCh0aGlzLkEpO3JldHVybjtjYXNlIDg6ajFkKHRoaXMsdHJ1ZSk7cmV0dXJuO31DdmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP3RoaXMuaWkoKTpiKSxhKSl9O18ucGk9ZnVuY3Rpb24gcTFkKCl7T2VlKChsa2UoKSxqa2UpLHRoaXMpLnhlKCk7dGhpcy5CYnw9MX07Xy5vaz1mdW5jdGlvbiByMWQoKXt2YXIgYSxiLGM7aWYoIXRoaXMuYyl7YT1LamUoQlhkKHRoaXMpKTtpZighYS5kYygpKXtmb3IoYz1hLktjKCk7Yy5PYigpOyl7Yj1XRChjLlBiKCkpOyEhYkFkKHRoaXMsYikmJkpqZSh0aGlzKX19fXJldHVybiB0aGlzLmJ9O18uaWs9ZnVuY3Rpb24gczFkKCl7dmFyIGI7aWYoIXRoaXMuZSl7Yj1udWxsO3RyeXtiPURYZCh0aGlzKX1jYXRjaChhKXthPXpkYihhKTtpZighWkQoYSwxMDMpKXRocm93IEFkYihhKX10aGlzLmQ9bnVsbDshIWImJihiLmkmMSkhPTAmJihiPT14ZGI/KHRoaXMuZD0oR2ViKCksRWViKSk6Yj09a0U/KHRoaXMuZD1zZ2IoMCkpOmI9PWpFPyh0aGlzLmQ9bmV3IFRmYigwKSk6Yj09aUU/KHRoaXMuZD0wKTpiPT1sRT8odGhpcy5kPUhnYigwKSk6Yj09d2RiPyh0aGlzLmQ9YmhiKDApKTpiPT1nRT8odGhpcy5kPSRlYigwKSk6KHRoaXMuZD1oZmIoMCkpKTt0aGlzLmU9dHJ1ZX1yZXR1cm4gdGhpcy5kfTtfLm5rPWZ1bmN0aW9uIHQxZCgpe3JldHVybiAodGhpcy5CYiYyNTYpIT0wfTtfLnJsPWZ1bmN0aW9uIHUxZChhKXthJiYodGhpcy5EPSdvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuQWJzdHJhY3RFbnVtZXJhdG9yJyl9O18uZ2w9ZnVuY3Rpb24gdjFkKGEpe0dYZCh0aGlzLGEpO3RoaXMucmwoYSl9O18uaGw9ZnVuY3Rpb24gdzFkKGEpe3RoaXMuQz1hO3RoaXMuZT1mYWxzZX07Xy5JYj1mdW5jdGlvbiB4MWQoKXt2YXIgYTtpZigodGhpcy5EYiY2NCkhPTApcmV0dXJuIE1YZCh0aGlzKTthPW5ldyBTaGIoTVhkKHRoaXMpKTthLmErPScgKHNlcmlhbGl6YWJsZTogJztPaGIoYSwodGhpcy5CYiYyNTYpIT0wKTthLmErPScpJztyZXR1cm4gYS5hfTtfLmM9ZmFsc2U7Xy5kPW51bGw7Xy5lPWZhbHNlO3ZhciBkOD1zZmIoU0hlLCdFRGF0YVR5cGVJbXBsJyw1NzcpO2ZlYig0NjksNTc3LHsxMTA6MSw5NDoxLDkzOjEsMTQyOjEsMTU2OjEsODQ3OjEsNjg1OjEsMTU1OjEsMTk3OjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsMzY0OjEsNDY5OjEsMTU4OjEsMTE5OjEsMTIwOjEsNjkxOjF9LEExZCk7Xy5MaD1mdW5jdGlvbiBCMWQoYSxiLGMpe3ZhciBkO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksdGhpcy5BYjtjYXNlIDE6cmV0dXJuIHRoaXMuemI7Y2FzZSAyOnJldHVybiB0aGlzLkQhPW51bGw/dGhpcy5EOnRoaXMuQjtjYXNlIDM6cmV0dXJuIERYZCh0aGlzKTtjYXNlIDQ6cmV0dXJuIHkxZCh0aGlzKTtjYXNlIDU6cmV0dXJuIHRoaXMuRjtjYXNlIDY6aWYoYilyZXR1cm4gQlhkKHRoaXMpO3JldHVybiB4WGQodGhpcyk7Y2FzZSA3OnJldHVybiAhdGhpcy5BJiYodGhpcy5BPW5ldyBpaWUoejcsdGhpcyw3KSksdGhpcy5BO2Nhc2UgODpyZXR1cm4gR2ViKCksKHRoaXMuQmImMjU2KSE9MD90cnVlOmZhbHNlO2Nhc2UgOTpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgQzVkKGw3LHRoaXMsOSw1KSksdGhpcy5hO31yZXR1cm4genZkKHRoaXMsYS1BWWQoKEpUZCgpLHNUZCkpLHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkP3NUZDpkKSxhKSxiLGMpfTtfLlNoPWZ1bmN0aW9uIEMxZChhLGIsYyl7dmFyIGQsZSxmO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSkscUxkKHRoaXMuQWIsYSxjKTtjYXNlIDY6ISF0aGlzLkNiJiYoYz0oZT10aGlzLkRiPj4xNixlPj0wP0FYZCh0aGlzLGMpOnRoaXMuQ2IuVGgodGhpcywtMS1lLG51bGwsYykpKTtyZXR1cm4geHZkKHRoaXMsYSw2LGMpO2Nhc2UgOTpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgQzVkKGw3LHRoaXMsOSw1KSkscUxkKHRoaXMuYSxhLGMpO31yZXR1cm4gZj1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD8oSlRkKCksc1RkKTpkKSxiKSw2OSksZi53aygpLnprKHRoaXMsV3dkKHRoaXMpLGItQVlkKChKVGQoKSxzVGQpKSxhLGMpfTtfLlVoPWZ1bmN0aW9uIEQxZChhLGIsYyl7dmFyIGQsZTtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHJMZCh0aGlzLkFiLGEsYyk7Y2FzZSA2OnJldHVybiB4dmQodGhpcyxudWxsLDYsYyk7Y2FzZSA3OnJldHVybiAhdGhpcy5BJiYodGhpcy5BPW5ldyBpaWUoejcsdGhpcyw3KSksckxkKHRoaXMuQSxhLGMpO2Nhc2UgOTpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgQzVkKGw3LHRoaXMsOSw1KSksckxkKHRoaXMuYSxhLGMpO31yZXR1cm4gZT1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD8oSlRkKCksc1RkKTpkKSxiKSw2OSksZS53aygpLkFrKHRoaXMsV3dkKHRoaXMpLGItQVlkKChKVGQoKSxzVGQpKSxhLGMpfTtfLldoPWZ1bmN0aW9uIEUxZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhIXRoaXMuQWImJnRoaXMuQWIuaSE9MDtjYXNlIDE6cmV0dXJuIHRoaXMuemIhPW51bGw7Y2FzZSAyOnJldHVybiB0aGlzLkQhPW51bGwmJnRoaXMuRD09dGhpcy5GO2Nhc2UgMzpyZXR1cm4gISFEWGQodGhpcyk7Y2FzZSA0OnJldHVybiAhIXkxZCh0aGlzKTtjYXNlIDU6cmV0dXJuIHRoaXMuRiE9bnVsbCYmdGhpcy5GIT10aGlzLkQmJnRoaXMuRiE9dGhpcy5CO2Nhc2UgNjpyZXR1cm4gISF4WGQodGhpcyk7Y2FzZSA3OnJldHVybiAhIXRoaXMuQSYmdGhpcy5BLmkhPTA7Y2FzZSA4OnJldHVybiAodGhpcy5CYiYyNTYpPT0wO2Nhc2UgOTpyZXR1cm4gISF0aGlzLmEmJnRoaXMuYS5pIT0wO31yZXR1cm4gQXZkKHRoaXMsYS1BWWQoKEpUZCgpLHNUZCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP3NUZDpiKSxhKSl9O18uYmk9ZnVuY3Rpb24gRjFkKGEsYil7dmFyIGM7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTshdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO1lHZCh0aGlzLkFiLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAxOkxYZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSAyOklYZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSA1OktYZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSA3OiF0aGlzLkEmJih0aGlzLkE9bmV3IGlpZSh6Nyx0aGlzLDcpKTtzTGQodGhpcy5BKTshdGhpcy5BJiYodGhpcy5BPW5ldyBpaWUoejcsdGhpcyw3KSk7WUdkKHRoaXMuQSxSRChiLDE2KSk7cmV0dXJuO2Nhc2UgODpqMWQodGhpcyxIZWIoVEQoYikpKTtyZXR1cm47Y2FzZSA5OiF0aGlzLmEmJih0aGlzLmE9bmV3IEM1ZChsNyx0aGlzLDksNSkpO3NMZCh0aGlzLmEpOyF0aGlzLmEmJih0aGlzLmE9bmV3IEM1ZChsNyx0aGlzLDksNSkpO1lHZCh0aGlzLmEsUkQoYiwxNikpO3JldHVybjt9QnZkKHRoaXMsYS1BWWQoKEpUZCgpLHNUZCkpLHZZZCgoYz1SRChZd2QodGhpcywxNiksMjkpLCFjP3NUZDpjKSxhKSxiKX07Xy5paT1mdW5jdGlvbiBHMWQoKXtyZXR1cm4gSlRkKCksc1RkfTtfLmtpPWZ1bmN0aW9uIEgxZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOiF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7c0xkKHRoaXMuQWIpO3JldHVybjtjYXNlIDE6WkQodGhpcy5DYiwxODQpJiYoUkQodGhpcy5DYiwxODQpLnRiPW51bGwpO1BBZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDI6eVhkKHRoaXMsbnVsbCk7elhkKHRoaXMsdGhpcy5EKTtyZXR1cm47Y2FzZSA1OktYZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDc6IXRoaXMuQSYmKHRoaXMuQT1uZXcgaWllKHo3LHRoaXMsNykpO3NMZCh0aGlzLkEpO3JldHVybjtjYXNlIDg6ajFkKHRoaXMsdHJ1ZSk7cmV0dXJuO2Nhc2UgOTohdGhpcy5hJiYodGhpcy5hPW5ldyBDNWQobDcsdGhpcyw5LDUpKTtzTGQodGhpcy5hKTtyZXR1cm47fUN2ZCh0aGlzLGEtQVlkKChKVGQoKSxzVGQpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj9zVGQ6YiksYSkpfTtfLnBpPWZ1bmN0aW9uIEkxZCgpe3ZhciBhLGI7aWYodGhpcy5hKXtmb3IoYT0wLGI9dGhpcy5hLmk7YTxiOysrYSl7YUFkKFFIZCh0aGlzLmEsYSkpfX1PZWUoKGxrZSgpLGprZSksdGhpcykueGUoKTt0aGlzLkJifD0xfTtfLmlrPWZ1bmN0aW9uIEoxZCgpe3JldHVybiB5MWQodGhpcyl9O18uZms9ZnVuY3Rpb24gSzFkKGEpe2lmKGEhPW51bGwpe3JldHVybiB0cnVlfXJldHVybiBmYWxzZX07Xy5ybD1mdW5jdGlvbiBMMWQoYSl7fTt2YXIgZTg9c2ZiKFNIZSwnRUVudW1JbXBsJyw0NjkpO2ZlYig1ODIsNDQ4LHsxMTA6MSw5NDoxLDkzOjEsMjAzOToxLDY5NDoxLDE1NToxLDE5NzoxLDU4OjEsMTE0OjEsNTQ6MSw5OToxLDU4MjoxLDE1ODoxLDExOToxLDEyMDoxfSxSMWQpO18ueGU9ZnVuY3Rpb24gJDFkKCl7cmV0dXJuIHRoaXMuemJ9O18uQWg9ZnVuY3Rpb24gUzFkKGEpe3JldHVybiBNMWQodGhpcyxhKX07Xy5MaD1mdW5jdGlvbiBUMWQoYSxiLGMpe3ZhciBkLGU7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4gIXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKSx0aGlzLkFiO2Nhc2UgMTpyZXR1cm4gdGhpcy56YjtjYXNlIDI6cmV0dXJuIHNnYih0aGlzLmQpO2Nhc2UgMzpyZXR1cm4gdGhpcy5iP3RoaXMuYjp0aGlzLmE7Y2FzZSA0OnJldHVybiBlPXRoaXMuYyxlPT1udWxsP3RoaXMuemI6ZTtjYXNlIDU6cmV0dXJuIHRoaXMuRGI+PjE2PT01P1JEKHRoaXMuQ2IsNjg1KTpudWxsO31yZXR1cm4genZkKHRoaXMsYS1BWWQoKEpUZCgpLHRUZCkpLHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkP3RUZDpkKSxhKSxiLGMpfTtfLlNoPWZ1bmN0aW9uIFUxZChhLGIsYyl7dmFyIGQsZSxmO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSkscUxkKHRoaXMuQWIsYSxjKTtjYXNlIDU6ISF0aGlzLkNiJiYoYz0oZT10aGlzLkRiPj4xNixlPj0wP00xZCh0aGlzLGMpOnRoaXMuQ2IuVGgodGhpcywtMS1lLG51bGwsYykpKTtyZXR1cm4geHZkKHRoaXMsYSw1LGMpO31yZXR1cm4gZj1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD8oSlRkKCksdFRkKTpkKSxiKSw2OSksZi53aygpLnprKHRoaXMsV3dkKHRoaXMpLGItQVlkKChKVGQoKSx0VGQpKSxhLGMpfTtfLlVoPWZ1bmN0aW9uIFYxZChhLGIsYyl7dmFyIGQsZTtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHJMZCh0aGlzLkFiLGEsYyk7Y2FzZSA1OnJldHVybiB4dmQodGhpcyxudWxsLDUsYyk7fXJldHVybiBlPVJEKHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkPyhKVGQoKSx0VGQpOmQpLGIpLDY5KSxlLndrKCkuQWsodGhpcyxXd2QodGhpcyksYi1BWWQoKEpUZCgpLHRUZCkpLGEsYyl9O18uV2g9ZnVuY3Rpb24gVzFkKGEpe3ZhciBiO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICEhdGhpcy5BYiYmdGhpcy5BYi5pIT0wO2Nhc2UgMTpyZXR1cm4gdGhpcy56YiE9bnVsbDtjYXNlIDI6cmV0dXJuIHRoaXMuZCE9MDtjYXNlIDM6cmV0dXJuICEhdGhpcy5iO2Nhc2UgNDpyZXR1cm4gdGhpcy5jIT1udWxsO2Nhc2UgNTpyZXR1cm4gISEodGhpcy5EYj4+MTY9PTU/UkQodGhpcy5DYiw2ODUpOm51bGwpO31yZXR1cm4gQXZkKHRoaXMsYS1BWWQoKEpUZCgpLHRUZCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP3RUZDpiKSxhKSl9O18uYmk9ZnVuY3Rpb24gWDFkKGEsYil7dmFyIGM7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTshdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO1lHZCh0aGlzLkFiLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAxOlBBZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSAyOlExZCh0aGlzLFJEKGIsMTcpLmEpO3JldHVybjtjYXNlIDM6TzFkKHRoaXMsUkQoYiwyMDM5KSk7cmV0dXJuO2Nhc2UgNDpQMWQodGhpcyxXRChiKSk7cmV0dXJuO31CdmQodGhpcyxhLUFZZCgoSlRkKCksdFRkKSksdllkKChjPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWM/dFRkOmMpLGEpLGIpfTtfLmlpPWZ1bmN0aW9uIFkxZCgpe3JldHVybiBKVGQoKSx0VGR9O18ua2k9ZnVuY3Rpb24gWjFkKGEpe3ZhciBiO3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtzTGQodGhpcy5BYik7cmV0dXJuO2Nhc2UgMTpQQWQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSAyOlExZCh0aGlzLDApO3JldHVybjtjYXNlIDM6TzFkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgNDpQMWQodGhpcyxudWxsKTtyZXR1cm47fUN2ZCh0aGlzLGEtQVlkKChKVGQoKSx0VGQpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj90VGQ6YiksYSkpfTtfLkliPWZ1bmN0aW9uIF8xZCgpe3ZhciBhO3JldHVybiBhPXRoaXMuYyxhPT1udWxsP3RoaXMuemI6YX07Xy5iPW51bGw7Xy5jPW51bGw7Xy5kPTA7dmFyIGY4PXNmYihTSGUsJ0VFbnVtTGl0ZXJhbEltcGwnLDU4Mik7dmFyIGg4PXVmYihTSGUsJ0VGYWN0b3J5SW1wbC9JbnRlcm5hbEVEYXRlVGltZUZvcm1hdCcpO2ZlYig0OTksMSx7MjExNDoxfSxjMmQpO3ZhciBnOD1zZmIoU0hlLCdFRmFjdG9yeUltcGwvMUNsaWVudEludGVybmFsRURhdGVUaW1lRm9ybWF0Jyw0OTkpO2ZlYigyNDgsMTIwLHsxMTA6MSw5NDoxLDkzOjEsODk6MSw1ODoxLDExNDoxLDU0OjEsOTk6MSwyNDg6MSwxMTk6MSwxMjA6MX0sczJkKTtfLkNoPWZ1bmN0aW9uIHQyZChhLGIsYyl7dmFyIGQ7Yz14dmQodGhpcyxhLGIsYyk7aWYoISF0aGlzLmUmJlpEKGEsMTc5KSl7ZD1rMmQodGhpcyx0aGlzLmUpO2QhPXRoaXMuYyYmKGM9bzJkKHRoaXMsZCxjKSl9cmV0dXJuIGN9O18uTGg9ZnVuY3Rpb24gdTJkKGEsYixjKXt2YXIgZDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiB0aGlzLmY7Y2FzZSAxOnJldHVybiAhdGhpcy5kJiYodGhpcy5kPW5ldyBYWmQobzcsdGhpcywxKSksdGhpcy5kO2Nhc2UgMjppZihiKXJldHVybiBpMmQodGhpcyk7cmV0dXJuIHRoaXMuYztjYXNlIDM6cmV0dXJuIHRoaXMuYjtjYXNlIDQ6cmV0dXJuIHRoaXMuZTtjYXNlIDU6aWYoYilyZXR1cm4gaDJkKHRoaXMpO3JldHVybiB0aGlzLmE7fXJldHVybiB6dmQodGhpcyxhLUFZZCgoSlRkKCksdlRkKSksdllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/dlRkOmQpLGEpLGIsYyl9O18uVWg9ZnVuY3Rpb24gdjJkKGEsYixjKXt2YXIgZCxlO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuIGcyZCh0aGlzLG51bGwsYyk7Y2FzZSAxOnJldHVybiAhdGhpcy5kJiYodGhpcy5kPW5ldyBYWmQobzcsdGhpcywxKSksckxkKHRoaXMuZCxhLGMpO2Nhc2UgMzpyZXR1cm4gZTJkKHRoaXMsbnVsbCxjKTt9cmV0dXJuIGU9UkQodllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/KEpUZCgpLHZUZCk6ZCksYiksNjkpLGUud2soKS5Bayh0aGlzLFd3ZCh0aGlzKSxiLUFZZCgoSlRkKCksdlRkKSksYSxjKX07Xy5XaD1mdW5jdGlvbiB3MmQoYSl7dmFyIGI7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4gISF0aGlzLmY7Y2FzZSAxOnJldHVybiAhIXRoaXMuZCYmdGhpcy5kLmkhPTA7Y2FzZSAyOnJldHVybiAhIXRoaXMuYztjYXNlIDM6cmV0dXJuICEhdGhpcy5iO2Nhc2UgNDpyZXR1cm4gISF0aGlzLmU7Y2FzZSA1OnJldHVybiAhIXRoaXMuYTt9cmV0dXJuIEF2ZCh0aGlzLGEtQVlkKChKVGQoKSx2VGQpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj92VGQ6YiksYSkpfTtfLmJpPWZ1bmN0aW9uIHgyZChhLGIpe3ZhciBjO3N3aXRjaChhKXtjYXNlIDA6cTJkKHRoaXMsUkQoYiw4OSkpO3JldHVybjtjYXNlIDE6IXRoaXMuZCYmKHRoaXMuZD1uZXcgWFpkKG83LHRoaXMsMSkpO3NMZCh0aGlzLmQpOyF0aGlzLmQmJih0aGlzLmQ9bmV3IFhaZChvNyx0aGlzLDEpKTtZR2QodGhpcy5kLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAzOm4yZCh0aGlzLFJEKGIsODkpKTtyZXR1cm47Y2FzZSA0OnAyZCh0aGlzLFJEKGIsODUwKSk7cmV0dXJuO2Nhc2UgNTpsMmQodGhpcyxSRChiLDE0MikpO3JldHVybjt9QnZkKHRoaXMsYS1BWWQoKEpUZCgpLHZUZCkpLHZZZCgoYz1SRChZd2QodGhpcywxNiksMjkpLCFjP3ZUZDpjKSxhKSxiKX07Xy5paT1mdW5jdGlvbiB5MmQoKXtyZXR1cm4gSlRkKCksdlRkfTtfLmtpPWZ1bmN0aW9uIHoyZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOnEyZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDE6IXRoaXMuZCYmKHRoaXMuZD1uZXcgWFpkKG83LHRoaXMsMSkpO3NMZCh0aGlzLmQpO3JldHVybjtjYXNlIDM6bjJkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgNDpwMmQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSA1OmwyZCh0aGlzLG51bGwpO3JldHVybjt9Q3ZkKHRoaXMsYS1BWWQoKEpUZCgpLHZUZCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP3ZUZDpiKSxhKSl9O18uSWI9ZnVuY3Rpb24gQTJkKCl7dmFyIGE7YT1uZXcgZGliKGF3ZCh0aGlzKSk7YS5hKz0nIChleHByZXNzaW9uOiAnO3IyZCh0aGlzLGEpO2EuYSs9JyknO3JldHVybiBhLmF9O3ZhciBkMmQ7dmFyIGo4PXNmYihTSGUsJ0VHZW5lcmljVHlwZUltcGwnLDI0OCk7ZmViKDIwNjcsMjA2Mix1S2UpO18uR2k9ZnVuY3Rpb24gQzJkKGEsYil7QjJkKHRoaXMsYSxiKX07Xy5Xaz1mdW5jdGlvbiBEMmQoYSxiKXtCMmQodGhpcyx0aGlzLmdjKCksYSk7cmV0dXJuIGJ9O18uJGk9ZnVuY3Rpb24gRTJkKGEpe3JldHVybiBqdSh0aGlzLnBqKCksYSl9O18uSWk9ZnVuY3Rpb24gRjJkKCl7cmV0dXJuIHRoaXMuSmkoKX07Xy5waj1mdW5jdGlvbiBHMmQoKXtyZXR1cm4gbmV3IG1lZSh0aGlzKX07Xy5KaT1mdW5jdGlvbiBIMmQoKXtyZXR1cm4gdGhpcy5LaSgwKX07Xy5LaT1mdW5jdGlvbiBJMmQoYSl7cmV0dXJuIHRoaXMucGooKS5mZChhKX07Xy5Yaz1mdW5jdGlvbiBKMmQoYSxiKXt6ZSh0aGlzLGEsdHJ1ZSk7cmV0dXJuIGJ9O18uVGk9ZnVuY3Rpb24gSzJkKGEsYil7dmFyIGMsZDtkPWt1KHRoaXMsYik7Yz10aGlzLmZkKGEpO2MuUmIoZCk7cmV0dXJuIGR9O18uVWk9ZnVuY3Rpb24gTDJkKGEsYil7dmFyIGM7emUodGhpcyxiLHRydWUpO2M9dGhpcy5mZChhKTtjLlJiKGIpfTt2YXIgR2FiPXNmYihaSmUsJ0Fic3RyYWN0U2VxdWVudGlhbEludGVybmFsRUxpc3QnLDIwNjcpO2ZlYig0OTYsMjA2Nyx1S2UsUTJkKTtfLiRpPWZ1bmN0aW9uIFIyZChhKXtyZXR1cm4ganUodGhpcy5waigpLGEpfTtfLklpPWZ1bmN0aW9uIFMyZCgpe2lmKHRoaXMuYj09bnVsbCl7cmV0dXJuIGozZCgpLGozZCgpLGkzZH1yZXR1cm4gdGhpcy5zbCgpfTtfLnBqPWZ1bmN0aW9uIFQyZCgpe3JldHVybiBuZXcgV2hlKHRoaXMuYSx0aGlzLmIpfTtfLkppPWZ1bmN0aW9uIFUyZCgpe2lmKHRoaXMuYj09bnVsbCl7cmV0dXJuIGozZCgpLGozZCgpLGkzZH1yZXR1cm4gdGhpcy5zbCgpfTtfLktpPWZ1bmN0aW9uIFYyZChhKXt2YXIgYixjO2lmKHRoaXMuYj09bnVsbCl7aWYoYTwwfHxhPjEpe3Rocm93IEFkYihuZXcgdmViKEhKZSthKycsIHNpemU9MCcpKX1yZXR1cm4gajNkKCksajNkKCksaTNkfWM9dGhpcy5zbCgpO2ZvcihiPTA7YjxhOysrYil7azNkKGMpfXJldHVybiBjfTtfLmRjPWZ1bmN0aW9uIFcyZCgpe3ZhciBhLGIsYyxkLGUsZjtpZih0aGlzLmIhPW51bGwpe2ZvcihjPTA7Yzx0aGlzLmIubGVuZ3RoOysrYyl7YT10aGlzLmJbY107aWYoIXRoaXMudmwoKXx8dGhpcy5hLlhoKGEpKXtmPXRoaXMuYS5OaChhLGZhbHNlKTtua2UoKTtpZihSRChhLDY5KS54aygpKXtiPVJEKGYsMTYwKTtmb3IoZD0wLGU9Yi5nYygpO2Q8ZTsrK2Qpe2lmKE8yZChiLlRsKGQpKSYmYi5VbChkKSE9bnVsbCl7cmV0dXJuIGZhbHNlfX19ZWxzZSBpZihhLkprKCkpe2lmKCFSRChmLDE2KS5kYygpKXtyZXR1cm4gZmFsc2V9fWVsc2UgaWYoZiE9bnVsbCl7cmV0dXJuIGZhbHNlfX19fXJldHVybiB0cnVlfTtfLktjPWZ1bmN0aW9uIFgyZCgpe3JldHVybiBQMmQodGhpcyl9O18uZmQ9ZnVuY3Rpb24gWTJkKGEpe3ZhciBiLGM7aWYodGhpcy5iPT1udWxsKXtpZihhIT0wKXt0aHJvdyBBZGIobmV3IHZlYihISmUrYSsnLCBzaXplPTAnKSl9cmV0dXJuIGozZCgpLGozZCgpLGkzZH1jPXRoaXMudWwoKT90aGlzLnRsKCk6dGhpcy5zbCgpO2ZvcihiPTA7YjxhOysrYil7azNkKGMpfXJldHVybiBjfTtfLlRpPWZ1bmN0aW9uIFoyZChhLGIpe3Rocm93IEFkYihuZXcgamliKX07Xy5VaT1mdW5jdGlvbiAkMmQoYSxiKXt0aHJvdyBBZGIobmV3IGppYil9O18uc2w9ZnVuY3Rpb24gXzJkKCl7cmV0dXJuIG5ldyBwM2QodGhpcy5hLHRoaXMuYil9O18udGw9ZnVuY3Rpb24gYTNkKCl7cmV0dXJuIG5ldyBEM2QodGhpcy5hLHRoaXMuYil9O18udWw9ZnVuY3Rpb24gYjNkKCl7cmV0dXJuIHRydWV9O18uZ2M9ZnVuY3Rpb24gYzNkKCl7dmFyIGEsYixjLGQsZSxmLGc7ZT0wO2lmKHRoaXMuYiE9bnVsbCl7Zm9yKGM9MDtjPHRoaXMuYi5sZW5ndGg7KytjKXthPXRoaXMuYltjXTtpZighdGhpcy52bCgpfHx0aGlzLmEuWGgoYSkpe2c9dGhpcy5hLk5oKGEsZmFsc2UpO25rZSgpO2lmKFJEKGEsNjkpLnhrKCkpe2I9UkQoZywxNjApO2ZvcihkPTAsZj1iLmdjKCk7ZDxmOysrZCl7TzJkKGIuVGwoZCkpJiZiLlVsKGQpIT1udWxsJiYrK2V9fWVsc2UgYS5KaygpPyhlKz1SRChnLDE2KS5nYygpKTpnIT1udWxsJiYrK2V9fX1yZXR1cm4gZX07Xy52bD1mdW5jdGlvbiBkM2QoKXtyZXR1cm4gdHJ1ZX07dmFyIE0yZDt2YXIgV2FiPXNmYihaSmUsJ0VDb250ZW50c0VMaXN0Jyw0OTYpO2ZlYigxMTc3LDQ5Nix1S2UsZTNkKTtfLnNsPWZ1bmN0aW9uIGYzZCgpe3JldHVybiBuZXcgSDNkKHRoaXMuYSx0aGlzLmIpfTtfLnRsPWZ1bmN0aW9uIGczZCgpe3JldHVybiBuZXcgRjNkKHRoaXMuYSx0aGlzLmIpfTtfLnZsPWZ1bmN0aW9uIGgzZCgpe3JldHVybiBmYWxzZX07dmFyIG44PXNmYihTSGUsJ0VOYW1lZEVsZW1lbnRJbXBsLzEnLDExNzcpO2ZlYigyODcsMSx2S2UscDNkKTtfLk5iPWZ1bmN0aW9uIHMzZChhKXtadGIodGhpcyxhKX07Xy5SYj1mdW5jdGlvbiBxM2QoYSl7dGhyb3cgQWRiKG5ldyBqaWIpfTtfLndsPWZ1bmN0aW9uIHIzZChhKXtpZih0aGlzLmchPTB8fCEhdGhpcy5lKXt0aHJvdyBBZGIobmV3IGRnYignSXRlcmF0b3IgYWxyZWFkeSBpbiB1c2Ugb3IgYWxyZWFkeSBmaWx0ZXJlZCcpKX10aGlzLmU9YX07Xy5PYj1mdW5jdGlvbiB0M2QoKXt2YXIgYSxiLGMsZCxlLGY7c3dpdGNoKHRoaXMuZyl7Y2FzZSAzOmNhc2UgMjp7cmV0dXJuIHRydWV9Y2FzZSAxOntyZXR1cm4gZmFsc2V9Y2FzZSAtMzp7IXRoaXMucD8rK3RoaXMubjp0aGlzLnAuUGIoKX1kZWZhdWx0OntpZighdGhpcy5rfHwoIXRoaXMucD8hbDNkKHRoaXMpOiFtM2QodGhpcyx0aGlzLnApKSl7d2hpbGUodGhpcy5kPHRoaXMuYy5sZW5ndGgpe2I9dGhpcy5jW3RoaXMuZCsrXTtpZigoIXRoaXMuZXx8Yi5waygpIT1DNHx8Yi5MaigpIT0wKSYmKCF0aGlzLnZsKCl8fHRoaXMuYi5YaChiKSkpe2Y9dGhpcy5iLk5oKGIsdGhpcy51bCgpKTt0aGlzLmY9KG5rZSgpLFJEKGIsNjkpLnhrKCkpO2lmKHRoaXMuZnx8Yi5KaygpKXtpZih0aGlzLnVsKCkpe2Q9UkQoZiwxNSk7dGhpcy5rPWR9ZWxzZXtkPVJEKGYsNzEpO3RoaXMuaz10aGlzLmo9ZH1pZihaRCh0aGlzLmssNTkpKXt0aGlzLnA9bnVsbDt0aGlzLm89dGhpcy5rLmdjKCk7dGhpcy5uPTB9ZWxzZXt0aGlzLnA9IXRoaXMuaj90aGlzLmsuZWQoKTp0aGlzLmouSmkoKX1pZighdGhpcy5wP2wzZCh0aGlzKTptM2QodGhpcyx0aGlzLnApKXtlPSF0aGlzLnA/IXRoaXMuaj90aGlzLmsuWGIodGhpcy5uKyspOnRoaXMuai4kaSh0aGlzLm4rKyk6dGhpcy5wLlBiKCk7aWYodGhpcy5mKXthPVJEKGUsNzYpO2EuTGsoKTtjPWEubWQoKTt0aGlzLmk9Y31lbHNle2M9ZTt0aGlzLmk9Y310aGlzLmc9MztyZXR1cm4gdHJ1ZX19ZWxzZSBpZihmIT1udWxsKXt0aGlzLms9bnVsbDt0aGlzLnA9bnVsbDtjPWY7dGhpcy5pPWM7dGhpcy5nPTI7cmV0dXJuIHRydWV9fX10aGlzLms9bnVsbDt0aGlzLnA9bnVsbDt0aGlzLmY9ZmFsc2U7dGhpcy5nPTE7cmV0dXJuIGZhbHNlfWVsc2V7ZT0hdGhpcy5wPyF0aGlzLmo/dGhpcy5rLlhiKHRoaXMubisrKTp0aGlzLmouJGkodGhpcy5uKyspOnRoaXMucC5QYigpO2lmKHRoaXMuZil7YT1SRChlLDc2KTthLkxrKCk7Yz1hLm1kKCk7dGhpcy5pPWN9ZWxzZXtjPWU7dGhpcy5pPWN9dGhpcy5nPTM7cmV0dXJuIHRydWV9fX19O18uU2I9ZnVuY3Rpb24gdTNkKCl7dmFyIGEsYixjLGQsZSxmO3N3aXRjaCh0aGlzLmcpe2Nhc2UgLTM6Y2FzZSAtMjp7cmV0dXJuIHRydWV9Y2FzZSAtMTp7cmV0dXJuIGZhbHNlfWNhc2UgMzp7IXRoaXMucD8tLXRoaXMubjp0aGlzLnAuVWIoKX1kZWZhdWx0OntpZighdGhpcy5rfHwoIXRoaXMucD8hbjNkKHRoaXMpOiFvM2QodGhpcyx0aGlzLnApKSl7d2hpbGUodGhpcy5kPjApe2I9dGhpcy5jWy0tdGhpcy5kXTtpZigoIXRoaXMuZXx8Yi5waygpIT1DNHx8Yi5MaigpIT0wKSYmKCF0aGlzLnZsKCl8fHRoaXMuYi5YaChiKSkpe2Y9dGhpcy5iLk5oKGIsdGhpcy51bCgpKTt0aGlzLmY9KG5rZSgpLFJEKGIsNjkpLnhrKCkpO2lmKHRoaXMuZnx8Yi5KaygpKXtpZih0aGlzLnVsKCkpe2Q9UkQoZiwxNSk7dGhpcy5rPWR9ZWxzZXtkPVJEKGYsNzEpO3RoaXMuaz10aGlzLmo9ZH1pZihaRCh0aGlzLmssNTkpKXt0aGlzLm89dGhpcy5rLmdjKCk7dGhpcy5uPXRoaXMub31lbHNle3RoaXMucD0hdGhpcy5qP3RoaXMuay5mZCh0aGlzLmsuZ2MoKSk6dGhpcy5qLktpKHRoaXMuay5nYygpKX1pZighdGhpcy5wP24zZCh0aGlzKTpvM2QodGhpcyx0aGlzLnApKXtlPSF0aGlzLnA/IXRoaXMuaj90aGlzLmsuWGIoLS10aGlzLm4pOnRoaXMuai4kaSgtLXRoaXMubik6dGhpcy5wLlViKCk7aWYodGhpcy5mKXthPVJEKGUsNzYpO2EuTGsoKTtjPWEubWQoKTt0aGlzLmk9Y31lbHNle2M9ZTt0aGlzLmk9Y310aGlzLmc9LTM7cmV0dXJuIHRydWV9fWVsc2UgaWYoZiE9bnVsbCl7dGhpcy5rPW51bGw7dGhpcy5wPW51bGw7Yz1mO3RoaXMuaT1jO3RoaXMuZz0tMjtyZXR1cm4gdHJ1ZX19fXRoaXMuaz1udWxsO3RoaXMucD1udWxsO3RoaXMuZz0tMTtyZXR1cm4gZmFsc2V9ZWxzZXtlPSF0aGlzLnA/IXRoaXMuaj90aGlzLmsuWGIoLS10aGlzLm4pOnRoaXMuai4kaSgtLXRoaXMubik6dGhpcy5wLlViKCk7aWYodGhpcy5mKXthPVJEKGUsNzYpO2EuTGsoKTtjPWEubWQoKTt0aGlzLmk9Y31lbHNle2M9ZTt0aGlzLmk9Y310aGlzLmc9LTM7cmV0dXJuIHRydWV9fX19O18uUGI9ZnVuY3Rpb24gdjNkKCl7cmV0dXJuIGszZCh0aGlzKX07Xy5UYj1mdW5jdGlvbiB3M2QoKXtyZXR1cm4gdGhpcy5hfTtfLlViPWZ1bmN0aW9uIHgzZCgpe3ZhciBhO2lmKHRoaXMuZzwtMXx8dGhpcy5TYigpKXstLXRoaXMuYTt0aGlzLmc9MDthPXRoaXMuaTt0aGlzLlNiKCk7cmV0dXJuIGF9ZWxzZXt0aHJvdyBBZGIobmV3IER2Yil9fTtfLlZiPWZ1bmN0aW9uIHkzZCgpe3JldHVybiB0aGlzLmEtMX07Xy5RYj1mdW5jdGlvbiB6M2QoKXt0aHJvdyBBZGIobmV3IGppYil9O18udWw9ZnVuY3Rpb24gQTNkKCl7cmV0dXJuIGZhbHNlfTtfLldiPWZ1bmN0aW9uIEIzZChhKXt0aHJvdyBBZGIobmV3IGppYil9O18udmw9ZnVuY3Rpb24gQzNkKCl7cmV0dXJuIHRydWV9O18uYT0wO18uZD0wO18uZj1mYWxzZTtfLmc9MDtfLm49MDtfLm89MDt2YXIgaTNkO3ZhciBVYWI9c2ZiKFpKZSwnRUNvbnRlbnRzRUxpc3QvRmVhdHVyZUl0ZXJhdG9ySW1wbCcsMjg3KTtmZWIoNzExLDI4Nyx2S2UsRDNkKTtfLnVsPWZ1bmN0aW9uIEUzZCgpe3JldHVybiB0cnVlfTt2YXIgVmFiPXNmYihaSmUsJ0VDb250ZW50c0VMaXN0L1Jlc29sdmluZ0ZlYXR1cmVJdGVyYXRvckltcGwnLDcxMSk7ZmViKDExNzgsNzExLHZLZSxGM2QpO18udmw9ZnVuY3Rpb24gRzNkKCl7cmV0dXJuIGZhbHNlfTt2YXIgbDg9c2ZiKFNIZSwnRU5hbWVkRWxlbWVudEltcGwvMS8xJywxMTc4KTtmZWIoMTE3OSwyODcsdktlLEgzZCk7Xy52bD1mdW5jdGlvbiBJM2QoKXtyZXR1cm4gZmFsc2V9O3ZhciBtOD1zZmIoU0hlLCdFTmFtZWRFbGVtZW50SW1wbC8xLzInLDExNzkpO2ZlYigzOSwxNTIsR0plLEwzZCxNM2QsTjNkLE8zZCxQM2QsUTNkLFIzZCxTM2QsVDNkLFUzZCxWM2QsVzNkLFgzZCxZM2QsWjNkLCQzZCxfM2QsYTRkLGI0ZCxjNGQsZDRkLGU0ZCxmNGQsZzRkLGg0ZCk7Xy5Laj1mdW5jdGlvbiBpNGQoKXtyZXR1cm4gSzNkKHRoaXMpfTtfLlJqPWZ1bmN0aW9uIGo0ZCgpe3ZhciBhO2E9SzNkKHRoaXMpO2lmKGEpe3JldHVybiBhLmlrKCl9cmV0dXJuIG51bGx9O18uaGo9ZnVuY3Rpb24gazRkKGEpe3RoaXMuYj09LTEmJiEhdGhpcy5hJiYodGhpcy5iPXRoaXMuYy5IaCh0aGlzLmEuTGooKSx0aGlzLmEucGsoKSkpO3JldHVybiB0aGlzLmMueWgodGhpcy5iLGEpfTtfLmpqPWZ1bmN0aW9uIGw0ZCgpe3JldHVybiB0aGlzLmN9O18uU2o9ZnVuY3Rpb24gbTRkKCl7dmFyIGE7YT1LM2QodGhpcyk7aWYoYSl7cmV0dXJuIGEudGsoKX1yZXR1cm4gZmFsc2V9O18uYj0tMTt2YXIgcDg9c2ZiKFNIZSwnRU5vdGlmaWNhdGlvbkltcGwnLDM5KTtmZWIoNDExLDI5Mix7MTEwOjEsOTQ6MSw5MzoxLDE1NToxLDE5NzoxLDU4OjEsNjI6MSwxMTQ6MSw0ODE6MSw1NDoxLDk5OjEsMTU4OjEsNDExOjEsMjkyOjEsMTE5OjEsMTIwOjF9LHE0ZCk7Xy5BaD1mdW5jdGlvbiByNGQoYSl7cmV0dXJuIG40ZCh0aGlzLGEpfTtfLkxoPWZ1bmN0aW9uIHM0ZChhLGIsYyl7dmFyIGQsZSxmO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksdGhpcy5BYjtjYXNlIDE6cmV0dXJuIHRoaXMuemI7Y2FzZSAyOnJldHVybiBHZWIoKSwodGhpcy5CYiYyNTYpIT0wP3RydWU6ZmFsc2U7Y2FzZSAzOnJldHVybiBHZWIoKSwodGhpcy5CYiY1MTIpIT0wP3RydWU6ZmFsc2U7Y2FzZSA0OnJldHVybiBzZ2IodGhpcy5zKTtjYXNlIDU6cmV0dXJuIHNnYih0aGlzLnQpO2Nhc2UgNjpyZXR1cm4gR2ViKCksZj10aGlzLnQsZj4xfHxmPT0tMT90cnVlOmZhbHNlO2Nhc2UgNzpyZXR1cm4gR2ViKCksZT10aGlzLnMsZT49MT90cnVlOmZhbHNlO2Nhc2UgODppZihiKXJldHVybiBXVmQodGhpcyk7cmV0dXJuIHRoaXMucjtjYXNlIDk6cmV0dXJuIHRoaXMucTtjYXNlIDEwOnJldHVybiB0aGlzLkRiPj4xNj09MTA/UkQodGhpcy5DYiwyOSk6bnVsbDtjYXNlIDExOnJldHVybiAhdGhpcy5kJiYodGhpcy5kPW5ldyBpaWUoejcsdGhpcywxMSkpLHRoaXMuZDtjYXNlIDEyOnJldHVybiAhdGhpcy5jJiYodGhpcy5jPW5ldyBDNWQodTcsdGhpcywxMiwxMCkpLHRoaXMuYztjYXNlIDEzOnJldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyBGNGQodGhpcyx0aGlzKSksdGhpcy5hO2Nhc2UgMTQ6cmV0dXJuIG80ZCh0aGlzKTt9cmV0dXJuIHp2ZCh0aGlzLGEtQVlkKChKVGQoKSxBVGQpKSx2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD9BVGQ6ZCksYSksYixjKX07Xy5TaD1mdW5jdGlvbiB0NGQoYSxiLGMpe3ZhciBkLGUsZjtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHFMZCh0aGlzLkFiLGEsYyk7Y2FzZSAxMDohIXRoaXMuQ2ImJihjPShlPXRoaXMuRGI+PjE2LGU+PTA/bjRkKHRoaXMsYyk6dGhpcy5DYi5UaCh0aGlzLC0xLWUsbnVsbCxjKSkpO3JldHVybiB4dmQodGhpcyxhLDEwLGMpO2Nhc2UgMTI6cmV0dXJuICF0aGlzLmMmJih0aGlzLmM9bmV3IEM1ZCh1Nyx0aGlzLDEyLDEwKSkscUxkKHRoaXMuYyxhLGMpO31yZXR1cm4gZj1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD8oSlRkKCksQVRkKTpkKSxiKSw2OSksZi53aygpLnprKHRoaXMsV3dkKHRoaXMpLGItQVlkKChKVGQoKSxBVGQpKSxhLGMpfTtfLlVoPWZ1bmN0aW9uIHU0ZChhLGIsYyl7dmFyIGQsZTtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHJMZCh0aGlzLkFiLGEsYyk7Y2FzZSA5OnJldHVybiBWVmQodGhpcyxjKTtjYXNlIDEwOnJldHVybiB4dmQodGhpcyxudWxsLDEwLGMpO2Nhc2UgMTE6cmV0dXJuICF0aGlzLmQmJih0aGlzLmQ9bmV3IGlpZSh6Nyx0aGlzLDExKSksckxkKHRoaXMuZCxhLGMpO2Nhc2UgMTI6cmV0dXJuICF0aGlzLmMmJih0aGlzLmM9bmV3IEM1ZCh1Nyx0aGlzLDEyLDEwKSksckxkKHRoaXMuYyxhLGMpO2Nhc2UgMTQ6cmV0dXJuIHJMZChvNGQodGhpcyksYSxjKTt9cmV0dXJuIGU9UkQodllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/KEpUZCgpLEFUZCk6ZCksYiksNjkpLGUud2soKS5Bayh0aGlzLFd3ZCh0aGlzKSxiLUFZZCgoSlRkKCksQVRkKSksYSxjKX07Xy5XaD1mdW5jdGlvbiB2NGQoYSl7dmFyIGIsYyxkO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICEhdGhpcy5BYiYmdGhpcy5BYi5pIT0wO2Nhc2UgMTpyZXR1cm4gdGhpcy56YiE9bnVsbDtjYXNlIDI6cmV0dXJuICh0aGlzLkJiJjI1Nik9PTA7Y2FzZSAzOnJldHVybiAodGhpcy5CYiY1MTIpPT0wO2Nhc2UgNDpyZXR1cm4gdGhpcy5zIT0wO2Nhc2UgNTpyZXR1cm4gdGhpcy50IT0xO2Nhc2UgNjpyZXR1cm4gZD10aGlzLnQsZD4xfHxkPT0tMTtjYXNlIDc6cmV0dXJuIGM9dGhpcy5zLGM+PTE7Y2FzZSA4OnJldHVybiAhIXRoaXMuciYmIXRoaXMucS5lJiZqMmQodGhpcy5xKS5pPT0wO2Nhc2UgOTpyZXR1cm4gISF0aGlzLnEmJiEoISF0aGlzLnImJiF0aGlzLnEuZSYmajJkKHRoaXMucSkuaT09MCk7Y2FzZSAxMDpyZXR1cm4gISEodGhpcy5EYj4+MTY9PTEwP1JEKHRoaXMuQ2IsMjkpOm51bGwpO2Nhc2UgMTE6cmV0dXJuICEhdGhpcy5kJiZ0aGlzLmQuaSE9MDtjYXNlIDEyOnJldHVybiAhIXRoaXMuYyYmdGhpcy5jLmkhPTA7Y2FzZSAxMzpyZXR1cm4gISF0aGlzLmEmJm80ZCh0aGlzLmEuYSkuaSE9MCYmISghIXRoaXMuYiYmbzVkKHRoaXMuYikpO2Nhc2UgMTQ6cmV0dXJuICEhdGhpcy5iJiZvNWQodGhpcy5iKTt9cmV0dXJuIEF2ZCh0aGlzLGEtQVlkKChKVGQoKSxBVGQpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj9BVGQ6YiksYSkpfTtfLmJpPWZ1bmN0aW9uIHc0ZChhLGIpe3ZhciBjLGQ7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTshdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO1lHZCh0aGlzLkFiLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAxOlBBZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSAyOl9WZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDM6YVdkKHRoaXMsSGViKFREKGIpKSk7cmV0dXJuO2Nhc2UgNDokVmQodGhpcyxSRChiLDE3KS5hKTtyZXR1cm47Y2FzZSA1OmJXZCh0aGlzLFJEKGIsMTcpLmEpO3JldHVybjtjYXNlIDg6WVZkKHRoaXMsUkQoYiwxNDIpKTtyZXR1cm47Y2FzZSA5OmQ9WFZkKHRoaXMsUkQoYiw4OSksbnVsbCk7ISFkJiZkLm9qKCk7cmV0dXJuO2Nhc2UgMTE6IXRoaXMuZCYmKHRoaXMuZD1uZXcgaWllKHo3LHRoaXMsMTEpKTtzTGQodGhpcy5kKTshdGhpcy5kJiYodGhpcy5kPW5ldyBpaWUoejcsdGhpcywxMSkpO1lHZCh0aGlzLmQsUkQoYiwxNikpO3JldHVybjtjYXNlIDEyOiF0aGlzLmMmJih0aGlzLmM9bmV3IEM1ZCh1Nyx0aGlzLDEyLDEwKSk7c0xkKHRoaXMuYyk7IXRoaXMuYyYmKHRoaXMuYz1uZXcgQzVkKHU3LHRoaXMsMTIsMTApKTtZR2QodGhpcy5jLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAxMzohdGhpcy5hJiYodGhpcy5hPW5ldyBGNGQodGhpcyx0aGlzKSk7VkpkKHRoaXMuYSk7IXRoaXMuYSYmKHRoaXMuYT1uZXcgRjRkKHRoaXMsdGhpcykpO1lHZCh0aGlzLmEsUkQoYiwxNikpO3JldHVybjtjYXNlIDE0OnNMZChvNGQodGhpcykpO1lHZChvNGQodGhpcyksUkQoYiwxNikpO3JldHVybjt9QnZkKHRoaXMsYS1BWWQoKEpUZCgpLEFUZCkpLHZZZCgoYz1SRChZd2QodGhpcywxNiksMjkpLCFjP0FUZDpjKSxhKSxiKX07Xy5paT1mdW5jdGlvbiB4NGQoKXtyZXR1cm4gSlRkKCksQVRkfTtfLmtpPWZ1bmN0aW9uIHk0ZChhKXt2YXIgYixjO3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKTtzTGQodGhpcy5BYik7cmV0dXJuO2Nhc2UgMTpQQWQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSAyOl9WZCh0aGlzLHRydWUpO3JldHVybjtjYXNlIDM6YVdkKHRoaXMsdHJ1ZSk7cmV0dXJuO2Nhc2UgNDokVmQodGhpcywwKTtyZXR1cm47Y2FzZSA1OmJXZCh0aGlzLDEpO3JldHVybjtjYXNlIDg6WVZkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgOTpjPVhWZCh0aGlzLG51bGwsbnVsbCk7ISFjJiZjLm9qKCk7cmV0dXJuO2Nhc2UgMTE6IXRoaXMuZCYmKHRoaXMuZD1uZXcgaWllKHo3LHRoaXMsMTEpKTtzTGQodGhpcy5kKTtyZXR1cm47Y2FzZSAxMjohdGhpcy5jJiYodGhpcy5jPW5ldyBDNWQodTcsdGhpcywxMiwxMCkpO3NMZCh0aGlzLmMpO3JldHVybjtjYXNlIDEzOiEhdGhpcy5hJiZWSmQodGhpcy5hKTtyZXR1cm47Y2FzZSAxNDohIXRoaXMuYiYmc0xkKHRoaXMuYik7cmV0dXJuO31DdmQodGhpcyxhLUFZZCgoSlRkKCksQVRkKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/QVRkOmIpLGEpKX07Xy5waT1mdW5jdGlvbiB6NGQoKXt2YXIgYSxiO2lmKHRoaXMuYyl7Zm9yKGE9MCxiPXRoaXMuYy5pO2E8YjsrK2Epe2FBZChRSGQodGhpcy5jLGEpKX19V1ZkKHRoaXMpO3RoaXMuQmJ8PTF9O3ZhciB1OD1zZmIoU0hlLCdFT3BlcmF0aW9uSW1wbCcsNDExKTtmZWIoNTEzLDc1Nix0S2UsRjRkKTtfLnFqPWZ1bmN0aW9uIEk0ZChhLGIpe0E0ZCh0aGlzLGEsUkQoYiwxNDIpKX07Xy5yaj1mdW5jdGlvbiBKNGQoYSl7QjRkKHRoaXMsUkQoYSwxNDIpKX07Xy54aj1mdW5jdGlvbiBQNGQoYSl7dmFyIGIsYztyZXR1cm4gYj1SRChRSGQobzRkKHRoaXMuYSksYSksODkpLGM9Yi5jLGM/YzooSlRkKCksd1RkKX07Xy5Daj1mdW5jdGlvbiBVNGQoYSl7dmFyIGIsYztyZXR1cm4gYj1SRCh2TGQobzRkKHRoaXMuYSksYSksODkpLGM9Yi5jLGM/YzooSlRkKCksd1RkKX07Xy5Eaj1mdW5jdGlvbiBWNGQoYSxiKXtyZXR1cm4gRDRkKHRoaXMsYSxSRChiLDE0MikpfTtfLkxpPWZ1bmN0aW9uIEc0ZCgpe3JldHVybiBmYWxzZX07Xy5Jaj1mdW5jdGlvbiBINGQoYSxiLGMsZCxlKXtyZXR1cm4gbnVsbH07Xy5zaj1mdW5jdGlvbiBLNGQoKXtyZXR1cm4gbmV3IGw1ZCh0aGlzKX07Xy50aj1mdW5jdGlvbiBMNGQoKXtzTGQobzRkKHRoaXMuYSkpfTtfLnVqPWZ1bmN0aW9uIE00ZChhKXtyZXR1cm4gQzRkKHRoaXMsYSl9O18udmo9ZnVuY3Rpb24gTjRkKGEpe3ZhciBiLGM7Zm9yKGM9YS5LYygpO2MuT2IoKTspe2I9Yy5QYigpO2lmKCFDNGQodGhpcyxiKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX07Xy53aj1mdW5jdGlvbiBPNGQoYSl7dmFyIGIsYyxkO2lmKFpEKGEsMTUpKXtkPVJEKGEsMTUpO2lmKGQuZ2MoKT09bzRkKHRoaXMuYSkuaSl7Zm9yKGI9ZC5LYygpLGM9bmV3IGRNZCh0aGlzKTtiLk9iKCk7KXtpZihkRShiLlBiKCkpIT09ZEUoYk1kKGMpKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfTtfLnlqPWZ1bmN0aW9uIFE0ZCgpe3ZhciBhLGIsYyxkLGU7Yz0xO2ZvcihiPW5ldyBkTWQobzRkKHRoaXMuYSkpO2IuZSE9Yi5pLmdjKCk7KXthPVJEKGJNZChiKSw4OSk7ZD0oZT1hLmMsZT9lOihKVGQoKSx3VGQpKTtjPTMxKmMrKCFkPzA6dGIoZCkpfXJldHVybiBjfTtfLnpqPWZ1bmN0aW9uIFI0ZChhKXt2YXIgYixjLGQsZTtkPTA7Zm9yKGM9bmV3IGRNZChvNGQodGhpcy5hKSk7Yy5lIT1jLmkuZ2MoKTspe2I9UkQoYk1kKGMpLDg5KTtpZihkRShhKT09PWRFKChlPWIuYyxlP2U6KEpUZCgpLHdUZCkpKSl7cmV0dXJuIGR9KytkfXJldHVybiAtMX07Xy5Baj1mdW5jdGlvbiBTNGQoKXtyZXR1cm4gbzRkKHRoaXMuYSkuaT09MH07Xy5Caj1mdW5jdGlvbiBUNGQoKXtyZXR1cm4gbnVsbH07Xy5Faj1mdW5jdGlvbiBXNGQoKXtyZXR1cm4gbzRkKHRoaXMuYSkuaX07Xy5Gaj1mdW5jdGlvbiBYNGQoKXt2YXIgYSxiLGMsZCxlLGY7Zj1vNGQodGhpcy5hKS5pO2U9JEMoakoscnZlLDEsZiw1LDEpO2M9MDtmb3IoYj1uZXcgZE1kKG80ZCh0aGlzLmEpKTtiLmUhPWIuaS5nYygpOyl7YT1SRChiTWQoYiksODkpO2VbYysrXT0oZD1hLmMsZD9kOihKVGQoKSx3VGQpKX1yZXR1cm4gZX07Xy5Haj1mdW5jdGlvbiBZNGQoYSl7dmFyIGIsYyxkLGUsZixnLGg7aD1vNGQodGhpcy5hKS5pO2lmKGEubGVuZ3RoPGgpe2U9SU1kKHJiKGEpLmMsaCk7YT1lfWEubGVuZ3RoPmgmJmJEKGEsaCxudWxsKTtkPTA7Zm9yKGM9bmV3IGRNZChvNGQodGhpcy5hKSk7Yy5lIT1jLmkuZ2MoKTspe2I9UkQoYk1kKGMpLDg5KTtmPShnPWIuYyxnP2c6KEpUZCgpLHdUZCkpO2JEKGEsZCsrLGYpfXJldHVybiBhfTtfLkhqPWZ1bmN0aW9uIFo0ZCgpe3ZhciBhLGIsYyxkLGU7ZT1uZXcgUWhiO2UuYSs9J1snO2E9bzRkKHRoaXMuYSk7Zm9yKGI9MCxkPW80ZCh0aGlzLmEpLmk7YjxkOyl7TmhiKGUsR2hiKChjPVJEKFFIZChhLGIpLDg5KS5jLGM/YzooSlRkKCksd1RkKSkpKTsrK2I8ZCYmKGUuYSs9cHZlLGUpfWUuYSs9J10nO3JldHVybiBlLmF9O18uSmo9ZnVuY3Rpb24gJDRkKGEpe307Xy5Maj1mdW5jdGlvbiBfNGQoKXtyZXR1cm4gMTN9O18ua2w9ZnVuY3Rpb24gYTVkKCl7cmV0dXJuIHRydWV9O18uTWo9ZnVuY3Rpb24gYjVkKCl7cmV0dXJuIGZhbHNlfTtfLmxsPWZ1bmN0aW9uIGM1ZCgpe3JldHVybiBmYWxzZX07Xy5tbD1mdW5jdGlvbiBkNWQoKXtyZXR1cm4gZmFsc2V9O18ubmw9ZnVuY3Rpb24gZTVkKCl7cmV0dXJuIHRydWV9O18uYWw9ZnVuY3Rpb24gZjVkKCl7cmV0dXJuIGZhbHNlfTtfLm9sPWZ1bmN0aW9uIGc1ZCgpe3JldHVybiB0cnVlfTtfLmZrPWZ1bmN0aW9uIGg1ZChhKXtyZXR1cm4gWkQoYSwxNDIpfTtfLlFqPWZ1bmN0aW9uIGk1ZCgpe3JldHVybiBwNGQodGhpcy5hKX07Xy5TaT1mdW5jdGlvbiBqNWQoKXtyZXR1cm4gdHJ1ZX07Xy5ZaT1mdW5jdGlvbiBrNWQoKXtyZXR1cm4gdHJ1ZX07dmFyIHM4PXNmYihTSGUsJ0VPcGVyYXRpb25JbXBsLzEnLDUxMyk7ZmViKDEzNzYsMjA2Mixrd2UsbDVkKTtfLmZkPWZ1bmN0aW9uIG01ZChhKXtyZXR1cm4gWkdkKHRoaXMuYSxhKX07Xy5nYz1mdW5jdGlvbiBuNWQoKXtyZXR1cm4gbzRkKHRoaXMuYS5hKS5pfTt2YXIgcjg9c2ZiKFNIZSwnRU9wZXJhdGlvbkltcGwvMS8xJywxMzc2KTtmZWIoMTM3Nyw1NTUsb0tlLHM1ZCk7Xy5UaT1mdW5jdGlvbiB3NWQoYSxiKXt2YXIgYyxkO3JldHVybiBjPVJEKHVMZCh0aGlzLGEsYiksODkpLE12ZCh0aGlzLmUpJiZlWmQodGhpcyxuZXcgYzRkKHRoaXMuYSw3LChKVGQoKSxCVGQpLHNnYihiKSwoZD1jLmMsZD9kOndUZCksYSkpLGN9O18uVWo9ZnVuY3Rpb24geDVkKGEsYil7cmV0dXJuIHA1ZCh0aGlzLFJEKGEsODkpLGIpfTtfLlZqPWZ1bmN0aW9uIHk1ZChhLGIpe3JldHVybiBxNWQodGhpcyxSRChhLDg5KSxiKX07Xy5Xaj1mdW5jdGlvbiB6NWQoYSxiLGMpe3JldHVybiByNWQodGhpcyxSRChhLDg5KSxSRChiLDg5KSxjKX07Xy5Jaj1mdW5jdGlvbiB0NWQoYSxiLGMsZCxlKXtzd2l0Y2goYSl7Y2FzZSAzOntyZXR1cm4gZFpkKHRoaXMsYSxiLGMsZCx0aGlzLmk+MSl9Y2FzZSA1OntyZXR1cm4gZFpkKHRoaXMsYSxiLGMsZCx0aGlzLmktUkQoYywxNSkuZ2MoKT4wKX1kZWZhdWx0OntyZXR1cm4gbmV3IFAzZCh0aGlzLmUsYSx0aGlzLmMsYixjLGQsdHJ1ZSl9fX07Xy5Uaj1mdW5jdGlvbiB1NWQoKXtyZXR1cm4gdHJ1ZX07Xy5Raj1mdW5jdGlvbiB2NWQoKXtyZXR1cm4gbzVkKHRoaXMpfTtfLkdrPWZ1bmN0aW9uIEE1ZCgpe3NMZCh0aGlzKX07dmFyIHQ4PXNmYihTSGUsJ0VPcGVyYXRpb25JbXBsLzInLDEzNzcpO2ZlYig1MDcsMSx7MjAzNzoxLDUwNzoxfSxCNWQpO3ZhciB2OD1zZmIoU0hlLCdFUGFja2FnZUltcGwvMScsNTA3KTtmZWIoMTQsODMsb0tlLEM1ZCk7Xy5pbD1mdW5jdGlvbiBENWQoKXtyZXR1cm4gdGhpcy5kfTtfLmpsPWZ1bmN0aW9uIEU1ZCgpe3JldHVybiB0aGlzLmJ9O18ubWw9ZnVuY3Rpb24gRjVkKCl7cmV0dXJuIHRydWV9O18uYj0wO3ZhciBnYmI9c2ZiKFpKZSwnRU9iamVjdENvbnRhaW5tZW50V2l0aEludmVyc2VFTGlzdCcsMTQpO2ZlYigzNjUsMTQsb0tlLEc1ZCk7Xy5ubD1mdW5jdGlvbiBINWQoKXtyZXR1cm4gdHJ1ZX07Xy5XaT1mdW5jdGlvbiBJNWQoYSxiKXtyZXR1cm4gZ1pkKHRoaXMsYSxSRChiLDU4KSl9O3ZhciBkYmI9c2ZiKFpKZSwnRU9iamVjdENvbnRhaW5tZW50V2l0aEludmVyc2VFTGlzdC9SZXNvbHZpbmcnLDM2NSk7ZmViKDMwOCwzNjUsb0tlLEo1ZCk7Xy5OaT1mdW5jdGlvbiBLNWQoKXt0aGlzLmEudGI9bnVsbH07dmFyIHc4PXNmYihTSGUsJ0VQYWNrYWdlSW1wbC8yJywzMDgpO2ZlYigxMjc4LDEse30sTDVkKTt2YXIgeDg9c2ZiKFNIZSwnRVBhY2thZ2VJbXBsLzMnLDEyNzgpO2ZlYig3MzMsNDUsSHhlLE81ZCk7Xy5fYj1mdW5jdGlvbiBQNWQoYSl7cmV0dXJuIGJFKGEpP1lqYih0aGlzLGEpOiEhcXRiKHRoaXMuZixhKX07dmFyIHo4PXNmYihTSGUsJ0VQYWNrYWdlUmVnaXN0cnlJbXBsJyw3MzMpO2ZlYig1MTgsMjkyLHsxMTA6MSw5NDoxLDkzOjEsMTU1OjEsMTk3OjEsNTg6MSwyMTE2OjEsMTE0OjEsNDgxOjEsNTQ6MSw5OToxLDE1ODoxLDUxODoxLDI5MjoxLDExOToxLDEyMDoxfSxSNWQpO18uQWg9ZnVuY3Rpb24gUzVkKGEpe3JldHVybiBRNWQodGhpcyxhKX07Xy5MaD1mdW5jdGlvbiBUNWQoYSxiLGMpe3ZhciBkLGUsZjtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHRoaXMuQWI7Y2FzZSAxOnJldHVybiB0aGlzLnpiO2Nhc2UgMjpyZXR1cm4gR2ViKCksKHRoaXMuQmImMjU2KSE9MD90cnVlOmZhbHNlO2Nhc2UgMzpyZXR1cm4gR2ViKCksKHRoaXMuQmImNTEyKSE9MD90cnVlOmZhbHNlO2Nhc2UgNDpyZXR1cm4gc2diKHRoaXMucyk7Y2FzZSA1OnJldHVybiBzZ2IodGhpcy50KTtjYXNlIDY6cmV0dXJuIEdlYigpLGY9dGhpcy50LGY+MXx8Zj09LTE/dHJ1ZTpmYWxzZTtjYXNlIDc6cmV0dXJuIEdlYigpLGU9dGhpcy5zLGU+PTE/dHJ1ZTpmYWxzZTtjYXNlIDg6aWYoYilyZXR1cm4gV1ZkKHRoaXMpO3JldHVybiB0aGlzLnI7Y2FzZSA5OnJldHVybiB0aGlzLnE7Y2FzZSAxMDpyZXR1cm4gdGhpcy5EYj4+MTY9PTEwP1JEKHRoaXMuQ2IsNjIpOm51bGw7fXJldHVybiB6dmQodGhpcyxhLUFZZCgoSlRkKCksRFRkKSksdllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/RFRkOmQpLGEpLGIsYyl9O18uU2g9ZnVuY3Rpb24gVTVkKGEsYixjKXt2YXIgZCxlLGY7c3dpdGNoKGIpe2Nhc2UgMDpyZXR1cm4gIXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKSxxTGQodGhpcy5BYixhLGMpO2Nhc2UgMTA6ISF0aGlzLkNiJiYoYz0oZT10aGlzLkRiPj4xNixlPj0wP1E1ZCh0aGlzLGMpOnRoaXMuQ2IuVGgodGhpcywtMS1lLG51bGwsYykpKTtyZXR1cm4geHZkKHRoaXMsYSwxMCxjKTt9cmV0dXJuIGY9UkQodllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/KEpUZCgpLERUZCk6ZCksYiksNjkpLGYud2soKS56ayh0aGlzLFd3ZCh0aGlzKSxiLUFZZCgoSlRkKCksRFRkKSksYSxjKX07Xy5VaD1mdW5jdGlvbiBWNWQoYSxiLGMpe3ZhciBkLGU7c3dpdGNoKGIpe2Nhc2UgMDpyZXR1cm4gIXRoaXMuQWImJih0aGlzLkFiPW5ldyBDNWQoZjcsdGhpcywwLDMpKSxyTGQodGhpcy5BYixhLGMpO2Nhc2UgOTpyZXR1cm4gVlZkKHRoaXMsYyk7Y2FzZSAxMDpyZXR1cm4geHZkKHRoaXMsbnVsbCwxMCxjKTt9cmV0dXJuIGU9UkQodllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/KEpUZCgpLERUZCk6ZCksYiksNjkpLGUud2soKS5Bayh0aGlzLFd3ZCh0aGlzKSxiLUFZZCgoSlRkKCksRFRkKSksYSxjKX07Xy5XaD1mdW5jdGlvbiBXNWQoYSl7dmFyIGIsYyxkO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICEhdGhpcy5BYiYmdGhpcy5BYi5pIT0wO2Nhc2UgMTpyZXR1cm4gdGhpcy56YiE9bnVsbDtjYXNlIDI6cmV0dXJuICh0aGlzLkJiJjI1Nik9PTA7Y2FzZSAzOnJldHVybiAodGhpcy5CYiY1MTIpPT0wO2Nhc2UgNDpyZXR1cm4gdGhpcy5zIT0wO2Nhc2UgNTpyZXR1cm4gdGhpcy50IT0xO2Nhc2UgNjpyZXR1cm4gZD10aGlzLnQsZD4xfHxkPT0tMTtjYXNlIDc6cmV0dXJuIGM9dGhpcy5zLGM+PTE7Y2FzZSA4OnJldHVybiAhIXRoaXMuciYmIXRoaXMucS5lJiZqMmQodGhpcy5xKS5pPT0wO2Nhc2UgOTpyZXR1cm4gISF0aGlzLnEmJiEoISF0aGlzLnImJiF0aGlzLnEuZSYmajJkKHRoaXMucSkuaT09MCk7Y2FzZSAxMDpyZXR1cm4gISEodGhpcy5EYj4+MTY9PTEwP1JEKHRoaXMuQ2IsNjIpOm51bGwpO31yZXR1cm4gQXZkKHRoaXMsYS1BWWQoKEpUZCgpLERUZCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP0RUZDpiKSxhKSl9O18uaWk9ZnVuY3Rpb24gWDVkKCl7cmV0dXJuIEpUZCgpLERUZH07dmFyIEE4PXNmYihTSGUsJ0VQYXJhbWV0ZXJJbXBsJyw1MTgpO2ZlYigxMDIsNDYyLHsxMTA6MSw5NDoxLDkzOjEsMTU1OjEsMTk3OjEsNTg6MSwxOToxLDE3OToxLDY5OjEsMTE0OjEsNDgxOjEsNTQ6MSw5OToxLDE1ODoxLDEwMjoxLDQ2MjoxLDI5MjoxLDExOToxLDEyMDoxLDY5MjoxfSxkNmQpO18uTGg9ZnVuY3Rpb24gZTZkKGEsYixjKXt2YXIgZCxlLGYsZztzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHRoaXMuQWI7Y2FzZSAxOnJldHVybiB0aGlzLnpiO2Nhc2UgMjpyZXR1cm4gR2ViKCksKHRoaXMuQmImMjU2KSE9MD90cnVlOmZhbHNlO2Nhc2UgMzpyZXR1cm4gR2ViKCksKHRoaXMuQmImNTEyKSE9MD90cnVlOmZhbHNlO2Nhc2UgNDpyZXR1cm4gc2diKHRoaXMucyk7Y2FzZSA1OnJldHVybiBzZ2IodGhpcy50KTtjYXNlIDY6cmV0dXJuIEdlYigpLGc9dGhpcy50LGc+MXx8Zz09LTE/dHJ1ZTpmYWxzZTtjYXNlIDc6cmV0dXJuIEdlYigpLGU9dGhpcy5zLGU+PTE/dHJ1ZTpmYWxzZTtjYXNlIDg6aWYoYilyZXR1cm4gV1ZkKHRoaXMpO3JldHVybiB0aGlzLnI7Y2FzZSA5OnJldHVybiB0aGlzLnE7Y2FzZSAxMDpyZXR1cm4gR2ViKCksKHRoaXMuQmImZ3dlKSE9MD90cnVlOmZhbHNlO2Nhc2UgMTE6cmV0dXJuIEdlYigpLCh0aGlzLkJiJmNLZSkhPTA/dHJ1ZTpmYWxzZTtjYXNlIDEyOnJldHVybiBHZWIoKSwodGhpcy5CYiZxeGUpIT0wP3RydWU6ZmFsc2U7Y2FzZSAxMzpyZXR1cm4gdGhpcy5qO2Nhc2UgMTQ6cmV0dXJuIHRXZCh0aGlzKTtjYXNlIDE1OnJldHVybiBHZWIoKSwodGhpcy5CYiZiS2UpIT0wP3RydWU6ZmFsc2U7Y2FzZSAxNjpyZXR1cm4gR2ViKCksKHRoaXMuQmImT3ZlKSE9MD90cnVlOmZhbHNlO2Nhc2UgMTc6cmV0dXJuIHVXZCh0aGlzKTtjYXNlIDE4OnJldHVybiBHZWIoKSwodGhpcy5CYiZRSGUpIT0wP3RydWU6ZmFsc2U7Y2FzZSAxOTpyZXR1cm4gR2ViKCksZj1aNWQodGhpcyksISFmJiYoZi5CYiZRSGUpIT0wP3RydWU6ZmFsc2U7Y2FzZSAyMDpyZXR1cm4gR2ViKCksKHRoaXMuQmImdHhlKSE9MD90cnVlOmZhbHNlO2Nhc2UgMjE6aWYoYilyZXR1cm4gWjVkKHRoaXMpO3JldHVybiB0aGlzLmI7Y2FzZSAyMjppZihiKXJldHVybiAkNWQodGhpcyk7cmV0dXJuIFk1ZCh0aGlzKTtjYXNlIDIzOnJldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyB6aWUoZzcsdGhpcywyMykpLHRoaXMuYTt9cmV0dXJuIHp2ZCh0aGlzLGEtQVlkKChKVGQoKSxFVGQpKSx2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD9FVGQ6ZCksYSksYixjKX07Xy5XaD1mdW5jdGlvbiBmNmQoYSl7dmFyIGIsYyxkLGU7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4gISF0aGlzLkFiJiZ0aGlzLkFiLmkhPTA7Y2FzZSAxOnJldHVybiB0aGlzLnpiIT1udWxsO2Nhc2UgMjpyZXR1cm4gKHRoaXMuQmImMjU2KT09MDtjYXNlIDM6cmV0dXJuICh0aGlzLkJiJjUxMik9PTA7Y2FzZSA0OnJldHVybiB0aGlzLnMhPTA7Y2FzZSA1OnJldHVybiB0aGlzLnQhPTE7Y2FzZSA2OnJldHVybiBlPXRoaXMudCxlPjF8fGU9PS0xO2Nhc2UgNzpyZXR1cm4gYz10aGlzLnMsYz49MTtjYXNlIDg6cmV0dXJuICEhdGhpcy5yJiYhdGhpcy5xLmUmJmoyZCh0aGlzLnEpLmk9PTA7Y2FzZSA5OnJldHVybiAhIXRoaXMucSYmISghIXRoaXMuciYmIXRoaXMucS5lJiZqMmQodGhpcy5xKS5pPT0wKTtjYXNlIDEwOnJldHVybiAodGhpcy5CYiZnd2UpPT0wO2Nhc2UgMTE6cmV0dXJuICh0aGlzLkJiJmNLZSkhPTA7Y2FzZSAxMjpyZXR1cm4gKHRoaXMuQmImcXhlKSE9MDtjYXNlIDEzOnJldHVybiB0aGlzLmohPW51bGw7Y2FzZSAxNDpyZXR1cm4gdFdkKHRoaXMpIT1udWxsO2Nhc2UgMTU6cmV0dXJuICh0aGlzLkJiJmJLZSkhPTA7Y2FzZSAxNjpyZXR1cm4gKHRoaXMuQmImT3ZlKSE9MDtjYXNlIDE3OnJldHVybiAhIXVXZCh0aGlzKTtjYXNlIDE4OnJldHVybiAodGhpcy5CYiZRSGUpIT0wO2Nhc2UgMTk6cmV0dXJuIGQ9WjVkKHRoaXMpLCEhZCYmKGQuQmImUUhlKSE9MDtjYXNlIDIwOnJldHVybiAodGhpcy5CYiZ0eGUpPT0wO2Nhc2UgMjE6cmV0dXJuICEhdGhpcy5iO2Nhc2UgMjI6cmV0dXJuICEhWTVkKHRoaXMpO2Nhc2UgMjM6cmV0dXJuICEhdGhpcy5hJiZ0aGlzLmEuaSE9MDt9cmV0dXJuIEF2ZCh0aGlzLGEtQVlkKChKVGQoKSxFVGQpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj9FVGQ6YiksYSkpfTtfLmJpPWZ1bmN0aW9uIGc2ZChhLGIpe3ZhciBjLGQ7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTshdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO1lHZCh0aGlzLkFiLFJEKGIsMTYpKTtyZXR1cm47Y2FzZSAxOkNXZCh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSAyOl9WZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDM6YVdkKHRoaXMsSGViKFREKGIpKSk7cmV0dXJuO2Nhc2UgNDokVmQodGhpcyxSRChiLDE3KS5hKTtyZXR1cm47Y2FzZSA1OmJXZCh0aGlzLFJEKGIsMTcpLmEpO3JldHVybjtjYXNlIDg6WVZkKHRoaXMsUkQoYiwxNDIpKTtyZXR1cm47Y2FzZSA5OmQ9WFZkKHRoaXMsUkQoYiw4OSksbnVsbCk7ISFkJiZkLm9qKCk7cmV0dXJuO2Nhc2UgMTA6eFdkKHRoaXMsSGViKFREKGIpKSk7cmV0dXJuO2Nhc2UgMTE6RldkKHRoaXMsSGViKFREKGIpKSk7cmV0dXJuO2Nhc2UgMTI6RFdkKHRoaXMsSGViKFREKGIpKSk7cmV0dXJuO2Nhc2UgMTM6eVdkKHRoaXMsV0QoYikpO3JldHVybjtjYXNlIDE1OkVXZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDE2OkFXZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDE4Ol81ZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDIwOmM2ZCh0aGlzLEhlYihURChiKSkpO3JldHVybjtjYXNlIDIxOmI2ZCh0aGlzLFJEKGIsMTkpKTtyZXR1cm47Y2FzZSAyMzohdGhpcy5hJiYodGhpcy5hPW5ldyB6aWUoZzcsdGhpcywyMykpO3NMZCh0aGlzLmEpOyF0aGlzLmEmJih0aGlzLmE9bmV3IHppZShnNyx0aGlzLDIzKSk7WUdkKHRoaXMuYSxSRChiLDE2KSk7cmV0dXJuO31CdmQodGhpcyxhLUFZZCgoSlRkKCksRVRkKSksdllkKChjPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWM/RVRkOmMpLGEpLGIpfTtfLmlpPWZ1bmN0aW9uIGg2ZCgpe3JldHVybiBKVGQoKSxFVGR9O18ua2k9ZnVuY3Rpb24gaTZkKGEpe3ZhciBiLGM7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTtyZXR1cm47Y2FzZSAxOlpEKHRoaXMuQ2IsOTApJiZ2JGQoeVlkKFJEKHRoaXMuQ2IsOTApKSw0KTtQQWQodGhpcyxudWxsKTtyZXR1cm47Y2FzZSAyOl9WZCh0aGlzLHRydWUpO3JldHVybjtjYXNlIDM6YVdkKHRoaXMsdHJ1ZSk7cmV0dXJuO2Nhc2UgNDokVmQodGhpcywwKTtyZXR1cm47Y2FzZSA1OmJXZCh0aGlzLDEpO3JldHVybjtjYXNlIDg6WVZkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgOTpjPVhWZCh0aGlzLG51bGwsbnVsbCk7ISFjJiZjLm9qKCk7cmV0dXJuO2Nhc2UgMTA6eFdkKHRoaXMsdHJ1ZSk7cmV0dXJuO2Nhc2UgMTE6RldkKHRoaXMsZmFsc2UpO3JldHVybjtjYXNlIDEyOkRXZCh0aGlzLGZhbHNlKTtyZXR1cm47Y2FzZSAxMzp0aGlzLmk9bnVsbDt6V2QodGhpcyxudWxsKTtyZXR1cm47Y2FzZSAxNTpFV2QodGhpcyxmYWxzZSk7cmV0dXJuO2Nhc2UgMTY6QVdkKHRoaXMsZmFsc2UpO3JldHVybjtjYXNlIDE4OmE2ZCh0aGlzLGZhbHNlKTtaRCh0aGlzLkNiLDkwKSYmdiRkKHlZZChSRCh0aGlzLkNiLDkwKSksMik7cmV0dXJuO2Nhc2UgMjA6YzZkKHRoaXMsdHJ1ZSk7cmV0dXJuO2Nhc2UgMjE6YjZkKHRoaXMsbnVsbCk7cmV0dXJuO2Nhc2UgMjM6IXRoaXMuYSYmKHRoaXMuYT1uZXcgemllKGc3LHRoaXMsMjMpKTtzTGQodGhpcy5hKTtyZXR1cm47fUN2ZCh0aGlzLGEtQVlkKChKVGQoKSxFVGQpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj9FVGQ6YiksYSkpfTtfLnBpPWZ1bmN0aW9uIGo2ZCgpeyQ1ZCh0aGlzKTtBZmUoUWVlKChsa2UoKSxqa2UpLHRoaXMpKTtXVmQodGhpcyk7dGhpcy5CYnw9MX07Xy51az1mdW5jdGlvbiBrNmQoKXtyZXR1cm4gWjVkKHRoaXMpfTtfLl9rPWZ1bmN0aW9uIGw2ZCgpe3ZhciBhO3JldHVybiBhPVo1ZCh0aGlzKSwhIWEmJihhLkJiJlFIZSkhPTB9O18uYWw9ZnVuY3Rpb24gbTZkKCl7cmV0dXJuICh0aGlzLkJiJlFIZSkhPTB9O18uYmw9ZnVuY3Rpb24gbjZkKCl7cmV0dXJuICh0aGlzLkJiJnR4ZSkhPTB9O18uWWs9ZnVuY3Rpb24gbzZkKGEsYil7dGhpcy5jPW51bGw7cmV0dXJuIFpWZCh0aGlzLGEsYil9O18uSWI9ZnVuY3Rpb24gcDZkKCl7dmFyIGE7aWYoKHRoaXMuRGImNjQpIT0wKXJldHVybiBHV2QodGhpcyk7YT1uZXcgU2hiKEdXZCh0aGlzKSk7YS5hKz0nIChjb250YWlubWVudDogJztPaGIoYSwodGhpcy5CYiZRSGUpIT0wKTthLmErPScsIHJlc29sdmVQcm94aWVzOiAnO09oYihhLCh0aGlzLkJiJnR4ZSkhPTApO2EuYSs9JyknO3JldHVybiBhLmF9O3ZhciBCOD1zZmIoU0hlLCdFUmVmZXJlbmNlSW1wbCcsMTAyKTtmZWIoNTYxLDEyMCx7MTEwOjEsNDQ6MSw5NDoxLDkzOjEsMTM2OjEsNTg6MSwxMTQ6MSw1NDoxLDk5OjEsNTYxOjEsMTE5OjEsMTIwOjF9LHY2ZCk7Xy5GYj1mdW5jdGlvbiBCNmQoYSl7cmV0dXJuIHRoaXM9PT1hfTtfLmxkPWZ1bmN0aW9uIEQ2ZCgpe3JldHVybiB0aGlzLmJ9O18ubWQ9ZnVuY3Rpb24gRTZkKCl7cmV0dXJuIHRoaXMuY307Xy5IYj1mdW5jdGlvbiBGNmQoKXtyZXR1cm4ga0ZiKHRoaXMpfTtfLkRpPWZ1bmN0aW9uIEg2ZChhKXtxNmQodGhpcyxXRChhKSl9O18ubmQ9ZnVuY3Rpb24gSTZkKGEpe3JldHVybiB1NmQodGhpcyxXRChhKSl9O18uTGg9ZnVuY3Rpb24gdzZkKGEsYixjKXt2YXIgZDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiB0aGlzLmI7Y2FzZSAxOnJldHVybiB0aGlzLmM7fXJldHVybiB6dmQodGhpcyxhLUFZZCgoSlRkKCksRlRkKSksdllkKChkPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWQ/RlRkOmQpLGEpLGIsYyl9O18uV2g9ZnVuY3Rpb24geDZkKGEpe3ZhciBiO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuIHRoaXMuYiE9bnVsbDtjYXNlIDE6cmV0dXJuIHRoaXMuYyE9bnVsbDt9cmV0dXJuIEF2ZCh0aGlzLGEtQVlkKChKVGQoKSxGVGQpKSx2WWQoKGI9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYj9GVGQ6YiksYSkpfTtfLmJpPWZ1bmN0aW9uIHk2ZChhLGIpe3ZhciBjO3N3aXRjaChhKXtjYXNlIDA6cjZkKHRoaXMsV0QoYikpO3JldHVybjtjYXNlIDE6dDZkKHRoaXMsV0QoYikpO3JldHVybjt9QnZkKHRoaXMsYS1BWWQoKEpUZCgpLEZUZCkpLHZZZCgoYz1SRChZd2QodGhpcywxNiksMjkpLCFjP0ZUZDpjKSxhKSxiKX07Xy5paT1mdW5jdGlvbiB6NmQoKXtyZXR1cm4gSlRkKCksRlRkfTtfLmtpPWZ1bmN0aW9uIEE2ZChhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOnM2ZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDE6dDZkKHRoaXMsbnVsbCk7cmV0dXJuO31DdmQodGhpcyxhLUFZZCgoSlRkKCksRlRkKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/RlRkOmIpLGEpKX07Xy5CaT1mdW5jdGlvbiBDNmQoKXt2YXIgYTtpZih0aGlzLmE9PS0xKXthPXRoaXMuYjt0aGlzLmE9YT09bnVsbD8wOm9oYihhKX1yZXR1cm4gdGhpcy5hfTtfLkNpPWZ1bmN0aW9uIEc2ZChhKXt0aGlzLmE9YX07Xy5JYj1mdW5jdGlvbiBKNmQoKXt2YXIgYTtpZigodGhpcy5EYiY2NCkhPTApcmV0dXJuIGF3ZCh0aGlzKTthPW5ldyBTaGIoYXdkKHRoaXMpKTthLmErPScgKGtleTogJztOaGIoYSx0aGlzLmIpO2EuYSs9JywgdmFsdWU6ICc7TmhiKGEsdGhpcy5jKTthLmErPScpJztyZXR1cm4gYS5hfTtfLmE9LTE7Xy5iPW51bGw7Xy5jPW51bGw7dmFyIEM4PXNmYihTSGUsJ0VTdHJpbmdUb1N0cmluZ01hcEVudHJ5SW1wbCcsNTYxKTt2YXIgSWJiPXVmYihaSmUsJ0ZlYXR1cmVNYXAvRW50cnkvSW50ZXJuYWwnKTtmZWIoNTc2LDEsd0tlKTtfLnhsPWZ1bmN0aW9uIE02ZChhKXtyZXR1cm4gdGhpcy55bChSRChhLDU0KSl9O18ueWw9ZnVuY3Rpb24gTjZkKGEpe3JldHVybiB0aGlzLnhsKGEpfTtfLkZiPWZ1bmN0aW9uIE82ZChhKXt2YXIgYixjO2lmKHRoaXM9PT1hKXtyZXR1cm4gdHJ1ZX1lbHNlIGlmKFpEKGEsNzYpKXtiPVJEKGEsNzYpO2lmKGIuTGsoKT09dGhpcy5jKXtjPXRoaXMubWQoKTtyZXR1cm4gYz09bnVsbD9iLm1kKCk9PW51bGw6cGIoYyxiLm1kKCkpfWVsc2V7cmV0dXJuIGZhbHNlfX1lbHNle3JldHVybiBmYWxzZX19O18uTGs9ZnVuY3Rpb24gUDZkKCl7cmV0dXJuIHRoaXMuY307Xy5IYj1mdW5jdGlvbiBRNmQoKXt2YXIgYTthPXRoaXMubWQoKTtyZXR1cm4gdGIodGhpcy5jKV4oYT09bnVsbD8wOnRiKGEpKX07Xy5JYj1mdW5jdGlvbiBSNmQoKXt2YXIgYSxiO2E9dGhpcy5jO2I9QlhkKGEucWsoKSkueWkoKTthLnhlKCk7cmV0dXJuIChiIT1udWxsJiZiLmxlbmd0aCE9MD9iKyc6JythLnhlKCk6YS54ZSgpKSsnPScrdGhpcy5tZCgpfTt2YXIgRDg9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9CYXNpY0ZlYXR1cmVNYXBFbnRyeScsNTc2KTtmZWIoNzkxLDU3Nix3S2UsVTZkKTtfLnlsPWZ1bmN0aW9uIFY2ZChhKXtyZXR1cm4gbmV3IFU2ZCh0aGlzLmMsYSl9O18ubWQ9ZnVuY3Rpb24gVzZkKCl7cmV0dXJuIHRoaXMuYX07Xy56bD1mdW5jdGlvbiBYNmQoYSxiLGMpe3JldHVybiBTNmQodGhpcyxhLHRoaXMuYSxiLGMpfTtfLkFsPWZ1bmN0aW9uIFk2ZChhLGIsYyl7cmV0dXJuIFQ2ZCh0aGlzLGEsdGhpcy5hLGIsYyl9O3ZhciBFOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0NvbnRhaW5tZW50VXBkYXRpbmdGZWF0dXJlTWFwRW50cnknLDc5MSk7ZmViKDEzNTAsMSx7fSxaNmQpO18ueWs9ZnVuY3Rpb24gJDZkKGEsYixjLGQsZSl7dmFyIGY7Zj1SRChFdmQoYSx0aGlzLmIpLDIyMCk7cmV0dXJuIGYuWWwodGhpcy5hKS5GayhkKX07Xy56az1mdW5jdGlvbiBfNmQoYSxiLGMsZCxlKXt2YXIgZjtmPVJEKEV2ZChhLHRoaXMuYiksMjIwKTtyZXR1cm4gZi5QbCh0aGlzLmEsZCxlKX07Xy5Baz1mdW5jdGlvbiBhN2QoYSxiLGMsZCxlKXt2YXIgZjtmPVJEKEV2ZChhLHRoaXMuYiksMjIwKTtyZXR1cm4gZi5RbCh0aGlzLmEsZCxlKX07Xy5Caz1mdW5jdGlvbiBiN2QoYSxiLGMpe3ZhciBkO2Q9UkQoRXZkKGEsdGhpcy5iKSwyMjApO3JldHVybiBkLllsKHRoaXMuYSkuUWooKX07Xy5Daz1mdW5jdGlvbiBjN2QoYSxiLGMsZCl7dmFyIGU7ZT1SRChFdmQoYSx0aGlzLmIpLDIyMCk7ZS5ZbCh0aGlzLmEpLldiKGQpfTtfLkRrPWZ1bmN0aW9uIGQ3ZChhLGIsYyl7cmV0dXJuIFJEKEV2ZChhLHRoaXMuYiksMjIwKS5ZbCh0aGlzLmEpfTtfLkVrPWZ1bmN0aW9uIGU3ZChhLGIsYyl7dmFyIGQ7ZD1SRChFdmQoYSx0aGlzLmIpLDIyMCk7ZC5ZbCh0aGlzLmEpLkdrKCl9O3ZhciBGOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlRmVhdHVyZU1hcERlbGVnYXRvcicsMTM1MCk7ZmViKDkxLDEse30sZzdkLGg3ZCxpN2QsajdkKTtfLnlrPWZ1bmN0aW9uIGs3ZChhLGIsYyxkLGUpe3ZhciBmO2Y9Yi5saShjKTtmPT1udWxsJiZiLm1pKGMsZj1mN2QodGhpcyxhKSk7aWYoIWUpe3N3aXRjaCh0aGlzLmUpe2Nhc2UgNTA6Y2FzZSA0MTpyZXR1cm4gUkQoZiw1OTcpLmJrKCk7Y2FzZSA0MDpyZXR1cm4gUkQoZiwyMjApLlZsKCk7fX1yZXR1cm4gZn07Xy56az1mdW5jdGlvbiBsN2QoYSxiLGMsZCxlKXt2YXIgZixnO2c9Yi5saShjKTtnPT1udWxsJiZiLm1pKGMsZz1mN2QodGhpcyxhKSk7Zj1SRChnLDcxKS5XayhkLGUpO3JldHVybiBmfTtfLkFrPWZ1bmN0aW9uIG03ZChhLGIsYyxkLGUpe3ZhciBmO2Y9Yi5saShjKTtmIT1udWxsJiYoZT1SRChmLDcxKS5YayhkLGUpKTtyZXR1cm4gZX07Xy5Caz1mdW5jdGlvbiBuN2QoYSxiLGMpe3ZhciBkO2Q9Yi5saShjKTtyZXR1cm4gZCE9bnVsbCYmUkQoZCw3OSkuUWooKX07Xy5Daz1mdW5jdGlvbiBvN2QoYSxiLGMsZCl7dmFyIGU7ZT1SRChiLmxpKGMpLDc5KTshZSYmYi5taShjLGU9ZjdkKHRoaXMsYSkpO2UuV2IoZCl9O18uRGs9ZnVuY3Rpb24gcDdkKGEsYixjKXt2YXIgZCxlO2U9Yi5saShjKTtlPT1udWxsJiZiLm1pKGMsZT1mN2QodGhpcyxhKSk7aWYoWkQoZSw3OSkpe3JldHVybiBSRChlLDc5KX1lbHNle2Q9UkQoYi5saShjKSwxNSk7cmV0dXJuIG5ldyBJOWQoZCl9fTtfLkVrPWZ1bmN0aW9uIHE3ZChhLGIsYyl7dmFyIGQ7ZD1SRChiLmxpKGMpLDc5KTshZCYmYi5taShjLGQ9ZjdkKHRoaXMsYSkpO2QuR2soKX07Xy5iPTA7Xy5lPTA7dmFyIEc4PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvSW50ZXJuYWxTZXR0aW5nRGVsZWdhdGVNYW55Jyw5MSk7ZmViKDUxMiwxLHt9KTtfLnprPWZ1bmN0aW9uIHU3ZChhLGIsYyxkLGUpe3Rocm93IEFkYihuZXcgamliKX07Xy5Baz1mdW5jdGlvbiB2N2QoYSxiLGMsZCxlKXt0aHJvdyBBZGIobmV3IGppYil9O18uRGs9ZnVuY3Rpb24gdzdkKGEsYixjKXtyZXR1cm4gbmV3IHg3ZCh0aGlzLGEsYixjKX07dmFyIHI3ZDt2YXIgbjk9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZScsNTEyKTtmZWIoMTM2NywxLCRKZSx4N2QpO18uRms9ZnVuY3Rpb24geTdkKGEpe3JldHVybiB0aGlzLmEueWsodGhpcy5jLHRoaXMuZCx0aGlzLmIsYSx0cnVlKX07Xy5Raj1mdW5jdGlvbiB6N2QoKXtyZXR1cm4gdGhpcy5hLkJrKHRoaXMuYyx0aGlzLmQsdGhpcy5iKX07Xy5XYj1mdW5jdGlvbiBBN2QoYSl7dGhpcy5hLkNrKHRoaXMuYyx0aGlzLmQsdGhpcy5iLGEpfTtfLkdrPWZ1bmN0aW9uIEI3ZCgpe3RoaXMuYS5Fayh0aGlzLmMsdGhpcy5kLHRoaXMuYil9O18uYj0wO3ZhciBIOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlLzEnLDEzNjcpO2ZlYig3ODQsNTEyLHt9LEM3ZCk7Xy55az1mdW5jdGlvbiBEN2QoYSxiLGMsZCxlKXtyZXR1cm4gandkKGEsYS5QaCgpLGEuRmgoKSk9PXRoaXMuYj90aGlzLmJsKCkmJmQ/eXZkKGEpOmEuUGgoKTpudWxsfTtfLnprPWZ1bmN0aW9uIEU3ZChhLGIsYyxkLGUpe3ZhciBmLGc7ISFhLlBoKCkmJihlPShmPWEuRmgoKSxmPj0wP2EuQWgoZSk6YS5QaCgpLlRoKGEsLTEtZixudWxsLGUpKSk7Zz1CWWQoYS5EaCgpLHRoaXMuZSk7cmV0dXJuIGEuQ2goZCxnLGUpfTtfLkFrPWZ1bmN0aW9uIEY3ZChhLGIsYyxkLGUpe3ZhciBmO2Y9QllkKGEuRGgoKSx0aGlzLmUpO3JldHVybiBhLkNoKG51bGwsZixlKX07Xy5Caz1mdW5jdGlvbiBHN2QoYSxiLGMpe3ZhciBkO2Q9QllkKGEuRGgoKSx0aGlzLmUpO3JldHVybiAhIWEuUGgoKSYmYS5GaCgpPT1kfTtfLkNrPWZ1bmN0aW9uIEg3ZChhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2lmKGQhPW51bGwmJiFGWGQodGhpcy5hLGQpKXt0aHJvdyBBZGIobmV3IElmYih4S2UrKFpEKGQsNTgpP0dZZChSRChkLDU4KS5EaCgpKTpvZmIocmIoZCkpKSt5S2UrdGhpcy5hK1wiJ1wiKSl9ZT1hLlBoKCk7Zz1CWWQoYS5EaCgpLHRoaXMuZSk7aWYoZEUoZCkhPT1kRShlKXx8YS5GaCgpIT1nJiZkIT1udWxsKXtpZihPamUoYSxSRChkLDU4KSkpdGhyb3cgQWRiKG5ldyBhZ2IoVUhlK2EuSWIoKSkpO2k9bnVsbDshIWUmJihpPShmPWEuRmgoKSxmPj0wP2EuQWgoaSk6YS5QaCgpLlRoKGEsLTEtZixudWxsLGkpKSk7aD1SRChkLDU0KTshIWgmJihpPWguUmgoYSxCWWQoaC5EaCgpLHRoaXMuYiksbnVsbCxpKSk7aT1hLkNoKGgsZyxpKTshIWkmJmkub2ooKX1lbHNle2EudmgoKSYmYS53aCgpJiZxdmQoYSxuZXcgTjNkKGEsMSxnLGQsZCkpfX07Xy5Faz1mdW5jdGlvbiBJN2QoYSxiLGMpe3ZhciBkLGUsZixnO2Q9YS5QaCgpO2lmKGQpe2c9KGU9YS5GaCgpLGU+PTA/YS5BaChudWxsKTphLlBoKCkuVGgoYSwtMS1lLG51bGwsbnVsbCkpO2Y9QllkKGEuRGgoKSx0aGlzLmUpO2c9YS5DaChudWxsLGYsZyk7ISFnJiZnLm9qKCl9ZWxzZXthLnZoKCkmJmEud2goKSYmcXZkKGEsbmV3IGI0ZChhLDEsdGhpcy5lLG51bGwsbnVsbCkpfX07Xy5ibD1mdW5jdGlvbiBKN2QoKXtyZXR1cm4gZmFsc2V9O3ZhciBKOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlQ29udGFpbmVyJyw3ODQpO2ZlYigxMzUxLDc4NCx7fSxLN2QpO18uYmw9ZnVuY3Rpb24gTDdkKCl7cmV0dXJuIHRydWV9O3ZhciBJOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlQ29udGFpbmVyUmVzb2x2aW5nJywxMzUxKTtmZWIoNTc0LDUxMix7fSk7Xy55az1mdW5jdGlvbiBPN2QoYSxiLGMsZCxlKXt2YXIgZjtyZXR1cm4gZj1iLmxpKGMpLGY9PW51bGw/dGhpcy5iOmRFKGYpPT09ZEUocjdkKT9udWxsOmZ9O18uQms9ZnVuY3Rpb24gUDdkKGEsYixjKXt2YXIgZDtkPWIubGkoYyk7cmV0dXJuIGQhPW51bGwmJihkRShkKT09PWRFKHI3ZCl8fCFwYihkLHRoaXMuYikpfTtfLkNrPWZ1bmN0aW9uIFE3ZChhLGIsYyxkKXt2YXIgZSxmO2lmKGEudmgoKSYmYS53aCgpKXtlPShmPWIubGkoYyksZj09bnVsbD90aGlzLmI6ZEUoZik9PT1kRShyN2QpP251bGw6Zik7aWYoZD09bnVsbCl7aWYodGhpcy5jIT1udWxsKXtiLm1pKGMsbnVsbCk7ZD10aGlzLmJ9ZWxzZSB0aGlzLmIhPW51bGw/Yi5taShjLHI3ZCk6Yi5taShjLG51bGwpfWVsc2V7dGhpcy5CbChkKTtiLm1pKGMsZCl9cXZkKGEsdGhpcy5kLkNsKGEsMSx0aGlzLmUsZSxkKSl9ZWxzZXtpZihkPT1udWxsKXt0aGlzLmMhPW51bGw/Yi5taShjLG51bGwpOnRoaXMuYiE9bnVsbD9iLm1pKGMscjdkKTpiLm1pKGMsbnVsbCl9ZWxzZXt0aGlzLkJsKGQpO2IubWkoYyxkKX19fTtfLkVrPWZ1bmN0aW9uIFI3ZChhLGIsYyl7dmFyIGQsZTtpZihhLnZoKCkmJmEud2goKSl7ZD0oZT1iLmxpKGMpLGU9PW51bGw/dGhpcy5iOmRFKGUpPT09ZEUocjdkKT9udWxsOmUpO2IubmkoYyk7cXZkKGEsdGhpcy5kLkNsKGEsMSx0aGlzLmUsZCx0aGlzLmIpKX1lbHNle2IubmkoYyl9fTtfLkJsPWZ1bmN0aW9uIFM3ZChhKXt0aHJvdyBBZGIobmV3IEhmYil9O3ZhciBZOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRGF0YScsNTc0KTtmZWIoektlLDEse30sYjhkKTtfLkNsPWZ1bmN0aW9uIGM4ZChhLGIsYyxkLGUpe3JldHVybiBuZXcgYjRkKGEsYixjLGQsZSl9O18uRGw9ZnVuY3Rpb24gZDhkKGEsYixjLGQsZSxmKXtyZXR1cm4gbmV3IGQ0ZChhLGIsYyxkLGUsZil9O3ZhciBUN2QsVTdkLFY3ZCxXN2QsWDdkLFk3ZCxaN2QsJDdkLF83ZDt2YXIgUzg9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZURhdGEvTm90aWZpY2F0aW9uQ3JlYXRvcicsektlKTtmZWIoMTM2OCx6S2Use30sZThkKTtfLkNsPWZ1bmN0aW9uIGY4ZChhLGIsYyxkLGUpe3JldHVybiBuZXcgZzRkKGEsYixjLEhlYihURChkKSksSGViKFREKGUpKSl9O18uRGw9ZnVuY3Rpb24gZzhkKGEsYixjLGQsZSxmKXtyZXR1cm4gbmV3IGg0ZChhLGIsYyxIZWIoVEQoZCkpLEhlYihURChlKSksZil9O3ZhciBLOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRGF0YS9Ob3RpZmljYXRpb25DcmVhdG9yLzEnLDEzNjgpO2ZlYigxMzY5LHpLZSx7fSxoOGQpO18uQ2w9ZnVuY3Rpb24gaThkKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBSM2QoYSxiLGMsUkQoZCwyMjIpLmEsUkQoZSwyMjIpLmEpfTtfLkRsPWZ1bmN0aW9uIGo4ZChhLGIsYyxkLGUsZil7cmV0dXJuIG5ldyBTM2QoYSxiLGMsUkQoZCwyMjIpLmEsUkQoZSwyMjIpLmEsZil9O3ZhciBMOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRGF0YS9Ob3RpZmljYXRpb25DcmVhdG9yLzInLDEzNjkpO2ZlYigxMzcwLHpLZSx7fSxrOGQpO18uQ2w9ZnVuY3Rpb24gbDhkKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBUM2QoYSxiLGMsUkQoZCwxODApLmEsUkQoZSwxODApLmEpfTtfLkRsPWZ1bmN0aW9uIG04ZChhLGIsYyxkLGUsZil7cmV0dXJuIG5ldyBVM2QoYSxiLGMsUkQoZCwxODApLmEsUkQoZSwxODApLmEsZil9O3ZhciBNOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRGF0YS9Ob3RpZmljYXRpb25DcmVhdG9yLzMnLDEzNzApO2ZlYigxMzcxLHpLZSx7fSxuOGQpO18uQ2w9ZnVuY3Rpb24gbzhkKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBWM2QoYSxiLGMsS2ZiKFVEKGQpKSxLZmIoVUQoZSkpKX07Xy5EbD1mdW5jdGlvbiBwOGQoYSxiLGMsZCxlLGYpe3JldHVybiBuZXcgVzNkKGEsYixjLEtmYihVRChkKSksS2ZiKFVEKGUpKSxmKX07dmFyIE44PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvSW50ZXJuYWxTZXR0aW5nRGVsZWdhdGVTaW5nbGVEYXRhL05vdGlmaWNhdGlvbkNyZWF0b3IvNCcsMTM3MSk7ZmViKDEzNzIsektlLHt9LHE4ZCk7Xy5DbD1mdW5jdGlvbiByOGQoYSxiLGMsZCxlKXtyZXR1cm4gbmV3IFgzZChhLGIsYyxSRChkLDE2MSkuYSxSRChlLDE2MSkuYSl9O18uRGw9ZnVuY3Rpb24gczhkKGEsYixjLGQsZSxmKXtyZXR1cm4gbmV3IFkzZChhLGIsYyxSRChkLDE2MSkuYSxSRChlLDE2MSkuYSxmKX07dmFyIE84PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvSW50ZXJuYWxTZXR0aW5nRGVsZWdhdGVTaW5nbGVEYXRhL05vdGlmaWNhdGlvbkNyZWF0b3IvNScsMTM3Mik7ZmViKDEzNzMsektlLHt9LHQ4ZCk7Xy5DbD1mdW5jdGlvbiB1OGQoYSxiLGMsZCxlKXtyZXR1cm4gbmV3IFozZChhLGIsYyxSRChkLDE3KS5hLFJEKGUsMTcpLmEpfTtfLkRsPWZ1bmN0aW9uIHY4ZChhLGIsYyxkLGUsZil7cmV0dXJuIG5ldyAkM2QoYSxiLGMsUkQoZCwxNykuYSxSRChlLDE3KS5hLGYpfTt2YXIgUDg9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZURhdGEvTm90aWZpY2F0aW9uQ3JlYXRvci82JywxMzczKTtmZWIoMTM3NCx6S2Use30sdzhkKTtfLkNsPWZ1bmN0aW9uIHg4ZChhLGIsYyxkLGUpe3JldHVybiBuZXcgXzNkKGEsYixjLFJEKGQsMTY4KS5hLFJEKGUsMTY4KS5hKX07Xy5EbD1mdW5jdGlvbiB5OGQoYSxiLGMsZCxlLGYpe3JldHVybiBuZXcgYTRkKGEsYixjLFJEKGQsMTY4KS5hLFJEKGUsMTY4KS5hLGYpfTt2YXIgUTg9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZURhdGEvTm90aWZpY2F0aW9uQ3JlYXRvci83JywxMzc0KTtmZWIoMTM3NSx6S2Use30sejhkKTtfLkNsPWZ1bmN0aW9uIEE4ZChhLGIsYyxkLGUpe3JldHVybiBuZXcgZTRkKGEsYixjLFJEKGQsMTkxKS5hLFJEKGUsMTkxKS5hKX07Xy5EbD1mdW5jdGlvbiBCOGQoYSxiLGMsZCxlLGYpe3JldHVybiBuZXcgZjRkKGEsYixjLFJEKGQsMTkxKS5hLFJEKGUsMTkxKS5hLGYpfTt2YXIgUjg9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZURhdGEvTm90aWZpY2F0aW9uQ3JlYXRvci84JywxMzc1KTtmZWIoMTM1Myw1NzQse30sQzhkKTtfLkJsPWZ1bmN0aW9uIEQ4ZChhKXtpZighdGhpcy5hLmZrKGEpKXt0aHJvdyBBZGIobmV3IElmYih4S2UrcmIoYSkreUtlK3RoaXMuYStcIidcIikpfX07dmFyIFQ4PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvSW50ZXJuYWxTZXR0aW5nRGVsZWdhdGVTaW5nbGVEYXRhRHluYW1pYycsMTM1Myk7ZmViKDEzNTQsNTc0LHt9LEU4ZCk7Xy5CbD1mdW5jdGlvbiBGOGQoYSl7fTt2YXIgVTg9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZURhdGFTdGF0aWMnLDEzNTQpO2ZlYig3ODUsNTc0LHt9KTtfLkJrPWZ1bmN0aW9uIEc4ZChhLGIsYyl7dmFyIGQ7ZD1iLmxpKGMpO3JldHVybiBkIT1udWxsfTtfLkNrPWZ1bmN0aW9uIEg4ZChhLGIsYyxkKXt2YXIgZSxmO2lmKGEudmgoKSYmYS53aCgpKXtlPXRydWU7Zj1iLmxpKGMpO2lmKGY9PW51bGwpe2U9ZmFsc2U7Zj10aGlzLmJ9ZWxzZSBkRShmKT09PWRFKHI3ZCkmJihmPW51bGwpO2lmKGQ9PW51bGwpe2lmKHRoaXMuYyE9bnVsbCl7Yi5taShjLG51bGwpO2Q9dGhpcy5ifWVsc2V7Yi5taShjLHI3ZCl9fWVsc2V7dGhpcy5CbChkKTtiLm1pKGMsZCl9cXZkKGEsdGhpcy5kLkRsKGEsMSx0aGlzLmUsZixkLCFlKSl9ZWxzZXtpZihkPT1udWxsKXt0aGlzLmMhPW51bGw/Yi5taShjLG51bGwpOmIubWkoYyxyN2QpfWVsc2V7dGhpcy5CbChkKTtiLm1pKGMsZCl9fX07Xy5Faz1mdW5jdGlvbiBJOGQoYSxiLGMpe3ZhciBkLGU7aWYoYS52aCgpJiZhLndoKCkpe2Q9dHJ1ZTtlPWIubGkoYyk7aWYoZT09bnVsbCl7ZD1mYWxzZTtlPXRoaXMuYn1lbHNlIGRFKGUpPT09ZEUocjdkKSYmKGU9bnVsbCk7Yi5uaShjKTtxdmQoYSx0aGlzLmQuRGwoYSwyLHRoaXMuZSxlLHRoaXMuYixkKSl9ZWxzZXtiLm5pKGMpfX07dmFyIFg4PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvSW50ZXJuYWxTZXR0aW5nRGVsZWdhdGVTaW5nbGVEYXRhVW5zZXR0YWJsZScsNzg1KTtmZWIoMTM1NSw3ODUse30sSjhkKTtfLkJsPWZ1bmN0aW9uIEs4ZChhKXtpZighdGhpcy5hLmZrKGEpKXt0aHJvdyBBZGIobmV3IElmYih4S2UrcmIoYSkreUtlK3RoaXMuYStcIidcIikpfX07dmFyIFY4PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvSW50ZXJuYWxTZXR0aW5nRGVsZWdhdGVTaW5nbGVEYXRhVW5zZXR0YWJsZUR5bmFtaWMnLDEzNTUpO2ZlYigxMzU2LDc4NSx7fSxMOGQpO18uQmw9ZnVuY3Rpb24gTThkKGEpe307dmFyIFc4PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvSW50ZXJuYWxTZXR0aW5nRGVsZWdhdGVTaW5nbGVEYXRhVW5zZXR0YWJsZVN0YXRpYycsMTM1Nik7ZmViKDQxMCw1MTIse30sTjhkKTtfLnlrPWZ1bmN0aW9uIFA4ZChhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGo7aj1iLmxpKGMpO2lmKHRoaXMudGsoKSYmZEUoaik9PT1kRShyN2QpKXtyZXR1cm4gbnVsbH1lbHNlIGlmKHRoaXMuYmwoKSYmZCYmaiE9bnVsbCl7aD1SRChqLDU0KTtpZihoLlZoKCkpe2k9VnZkKGEsaCk7aWYoaCE9aSl7aWYoIUZYZCh0aGlzLmEsaSkpe3Rocm93IEFkYihuZXcgSWZiKHhLZStyYihpKSt5S2UrdGhpcy5hK1wiJ1wiKSl9Yi5taShjLGo9aSk7aWYodGhpcy5hbCgpKXtmPVJEKGksNTQpO2c9aC5UaChhLCF0aGlzLmI/LTEtQllkKGEuRGgoKSx0aGlzLmUpOkJZZChoLkRoKCksdGhpcy5iKSxudWxsLG51bGwpOyFmLlBoKCkmJihnPWYuUmgoYSwhdGhpcy5iPy0xLUJZZChhLkRoKCksdGhpcy5lKTpCWWQoZi5EaCgpLHRoaXMuYiksbnVsbCxnKSk7ISFnJiZnLm9qKCl9YS52aCgpJiZhLndoKCkmJnF2ZChhLG5ldyBiNGQoYSw5LHRoaXMuZSxoLGkpKX19cmV0dXJuIGp9ZWxzZXtyZXR1cm4gan19O18uems9ZnVuY3Rpb24gUThkKGEsYixjLGQsZSl7dmFyIGYsZztnPWIubGkoYyk7ZEUoZyk9PT1kRShyN2QpJiYoZz1udWxsKTtiLm1pKGMsZCk7aWYodGhpcy5NaigpKXtpZihkRShnKSE9PWRFKGQpJiZnIT1udWxsKXtmPVJEKGcsNTQpO2U9Zi5UaChhLEJZZChmLkRoKCksdGhpcy5iKSxudWxsLGUpfX1lbHNlIHRoaXMuYWwoKSYmZyE9bnVsbCYmKGU9UkQoZyw1NCkuVGgoYSwtMS1CWWQoYS5EaCgpLHRoaXMuZSksbnVsbCxlKSk7aWYoYS52aCgpJiZhLndoKCkpeyFlJiYoZT1uZXcgZ0xkKDQpKTtlLm5qKG5ldyBiNGQoYSwxLHRoaXMuZSxnLGQpKX1yZXR1cm4gZX07Xy5Baz1mdW5jdGlvbiBSOGQoYSxiLGMsZCxlKXt2YXIgZjtmPWIubGkoYyk7ZEUoZik9PT1kRShyN2QpJiYoZj1udWxsKTtiLm5pKGMpO2lmKGEudmgoKSYmYS53aCgpKXshZSYmKGU9bmV3IGdMZCg0KSk7dGhpcy50aygpP2UubmoobmV3IGI0ZChhLDIsdGhpcy5lLGYsbnVsbCkpOmUubmoobmV3IGI0ZChhLDEsdGhpcy5lLGYsbnVsbCkpfXJldHVybiBlfTtfLkJrPWZ1bmN0aW9uIFM4ZChhLGIsYyl7dmFyIGQ7ZD1iLmxpKGMpO3JldHVybiBkIT1udWxsfTtfLkNrPWZ1bmN0aW9uIFQ4ZChhLGIsYyxkKXt2YXIgZSxmLGcsaCxpO2lmKGQhPW51bGwmJiFGWGQodGhpcy5hLGQpKXt0aHJvdyBBZGIobmV3IElmYih4S2UrKFpEKGQsNTgpP0dZZChSRChkLDU4KS5EaCgpKTpvZmIocmIoZCkpKSt5S2UrdGhpcy5hK1wiJ1wiKSl9aT1iLmxpKGMpO2g9aSE9bnVsbDt0aGlzLnRrKCkmJmRFKGkpPT09ZEUocjdkKSYmKGk9bnVsbCk7Zz1udWxsO2lmKHRoaXMuTWooKSl7aWYoZEUoaSkhPT1kRShkKSl7aWYoaSE9bnVsbCl7ZT1SRChpLDU0KTtnPWUuVGgoYSxCWWQoZS5EaCgpLHRoaXMuYiksbnVsbCxnKX1pZihkIT1udWxsKXtlPVJEKGQsNTQpO2c9ZS5SaChhLEJZZChlLkRoKCksdGhpcy5iKSxudWxsLGcpfX19ZWxzZSBpZih0aGlzLmFsKCkpe2lmKGRFKGkpIT09ZEUoZCkpe2khPW51bGwmJihnPVJEKGksNTQpLlRoKGEsLTEtQllkKGEuRGgoKSx0aGlzLmUpLG51bGwsZykpO2QhPW51bGwmJihnPVJEKGQsNTQpLlJoKGEsLTEtQllkKGEuRGgoKSx0aGlzLmUpLG51bGwsZykpfX1kPT1udWxsJiZ0aGlzLnRrKCk/Yi5taShjLHI3ZCk6Yi5taShjLGQpO2lmKGEudmgoKSYmYS53aCgpKXtmPW5ldyBkNGQoYSwxLHRoaXMuZSxpLGQsdGhpcy50aygpJiYhaCk7aWYoIWcpe3F2ZChhLGYpfWVsc2V7Zy5uaihmKTtnLm9qKCl9fWVsc2UgISFnJiZnLm9qKCl9O18uRWs9ZnVuY3Rpb24gVThkKGEsYixjKXt2YXIgZCxlLGYsZyxoO2g9Yi5saShjKTtnPWghPW51bGw7dGhpcy50aygpJiZkRShoKT09PWRFKHI3ZCkmJihoPW51bGwpO2Y9bnVsbDtpZihoIT1udWxsKXtpZih0aGlzLk1qKCkpe2Q9UkQoaCw1NCk7Zj1kLlRoKGEsQllkKGQuRGgoKSx0aGlzLmIpLG51bGwsZil9ZWxzZSB0aGlzLmFsKCkmJihmPVJEKGgsNTQpLlRoKGEsLTEtQllkKGEuRGgoKSx0aGlzLmUpLG51bGwsZikpfWIubmkoYyk7aWYoYS52aCgpJiZhLndoKCkpe2U9bmV3IGQ0ZChhLHRoaXMudGsoKT8yOjEsdGhpcy5lLGgsbnVsbCxnKTtpZighZil7cXZkKGEsZSl9ZWxzZXtmLm5qKGUpO2Yub2ooKX19ZWxzZSAhIWYmJmYub2ooKX07Xy5Naj1mdW5jdGlvbiBWOGQoKXtyZXR1cm4gZmFsc2V9O18uYWw9ZnVuY3Rpb24gVzhkKCl7cmV0dXJuIGZhbHNlfTtfLmJsPWZ1bmN0aW9uIFg4ZCgpe3JldHVybiBmYWxzZX07Xy50az1mdW5jdGlvbiBZOGQoKXtyZXR1cm4gZmFsc2V9O3ZhciBtOT1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRU9iamVjdCcsNDEwKTtmZWIoNTc1LDQxMCx7fSxaOGQpO18uYWw9ZnVuY3Rpb24gJDhkKCl7cmV0dXJuIHRydWV9O3ZhciBlOT1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRU9iamVjdENvbnRhaW5tZW50Jyw1NzUpO2ZlYigxMzU5LDU3NSx7fSxfOGQpO18uYmw9ZnVuY3Rpb24gYTlkKCl7cmV0dXJuIHRydWV9O3ZhciBaOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRU9iamVjdENvbnRhaW5tZW50UmVzb2x2aW5nJywxMzU5KTtmZWIoNzg3LDU3NSx7fSxiOWQpO18udGs9ZnVuY3Rpb24gYzlkKCl7cmV0dXJuIHRydWV9O3ZhciBfOD1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRU9iamVjdENvbnRhaW5tZW50VW5zZXR0YWJsZScsNzg3KTtmZWIoMTM2MSw3ODcse30sZDlkKTtfLmJsPWZ1bmN0aW9uIGU5ZCgpe3JldHVybiB0cnVlfTt2YXIgJDg9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZUVPYmplY3RDb250YWlubWVudFVuc2V0dGFibGVSZXNvbHZpbmcnLDEzNjEpO2ZlYig2NTAsNTc1LHt9LGY5ZCk7Xy5Naj1mdW5jdGlvbiBnOWQoKXtyZXR1cm4gdHJ1ZX07dmFyIGQ5PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvSW50ZXJuYWxTZXR0aW5nRGVsZWdhdGVTaW5nbGVFT2JqZWN0Q29udGFpbm1lbnRXaXRoSW52ZXJzZScsNjUwKTtmZWIoMTM2MCw2NTAse30saDlkKTtfLmJsPWZ1bmN0aW9uIGk5ZCgpe3JldHVybiB0cnVlfTt2YXIgYTk9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZUVPYmplY3RDb250YWlubWVudFdpdGhJbnZlcnNlUmVzb2x2aW5nJywxMzYwKTtmZWIoNzg4LDY1MCx7fSxqOWQpO18udGs9ZnVuY3Rpb24gazlkKCl7cmV0dXJuIHRydWV9O3ZhciBjOT1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRU9iamVjdENvbnRhaW5tZW50V2l0aEludmVyc2VVbnNldHRhYmxlJyw3ODgpO2ZlYigxMzYyLDc4OCx7fSxsOWQpO18uYmw9ZnVuY3Rpb24gbTlkKCl7cmV0dXJuIHRydWV9O3ZhciBiOT1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRU9iamVjdENvbnRhaW5tZW50V2l0aEludmVyc2VVbnNldHRhYmxlUmVzb2x2aW5nJywxMzYyKTtmZWIoNjUxLDQxMCx7fSxuOWQpO18uYmw9ZnVuY3Rpb24gbzlkKCl7cmV0dXJuIHRydWV9O3ZhciBpOT1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRU9iamVjdFJlc29sdmluZycsNjUxKTtmZWIoMTM2Myw2NTEse30scDlkKTtfLnRrPWZ1bmN0aW9uIHE5ZCgpe3JldHVybiB0cnVlfTt2YXIgZjk9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZUVPYmplY3RSZXNvbHZpbmdVbnNldHRhYmxlJywxMzYzKTtmZWIoNzg5LDY1MSx7fSxyOWQpO18uTWo9ZnVuY3Rpb24gczlkKCl7cmV0dXJuIHRydWV9O3ZhciBoOT1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRU9iamVjdFJlc29sdmluZ1dpdGhJbnZlcnNlJyw3ODkpO2ZlYigxMzY0LDc4OSx7fSx0OWQpO18udGs9ZnVuY3Rpb24gdTlkKCl7cmV0dXJuIHRydWV9O3ZhciBnOT1zZmIoU0hlLCdFU3RydWN0dXJhbEZlYXR1cmVJbXBsL0ludGVybmFsU2V0dGluZ0RlbGVnYXRlU2luZ2xlRU9iamVjdFJlc29sdmluZ1dpdGhJbnZlcnNlVW5zZXR0YWJsZScsMTM2NCk7ZmViKDEzNTcsNDEwLHt9LHY5ZCk7Xy50az1mdW5jdGlvbiB3OWQoKXtyZXR1cm4gdHJ1ZX07dmFyIGo5PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvSW50ZXJuYWxTZXR0aW5nRGVsZWdhdGVTaW5nbGVFT2JqZWN0VW5zZXR0YWJsZScsMTM1Nyk7ZmViKDc4Niw0MTAse30seDlkKTtfLk1qPWZ1bmN0aW9uIHk5ZCgpe3JldHVybiB0cnVlfTt2YXIgbDk9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZUVPYmplY3RXaXRoSW52ZXJzZScsNzg2KTtmZWIoMTM1OCw3ODYse30sejlkKTtfLnRrPWZ1bmN0aW9uIEE5ZCgpe3JldHVybiB0cnVlfTt2YXIgazk9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9JbnRlcm5hbFNldHRpbmdEZWxlZ2F0ZVNpbmdsZUVPYmplY3RXaXRoSW52ZXJzZVVuc2V0dGFibGUnLDEzNTgpO2ZlYig3OTAsNTc2LHdLZSxEOWQpO18ueWw9ZnVuY3Rpb24gRTlkKGEpe3JldHVybiBuZXcgRDlkKHRoaXMuYSx0aGlzLmMsYSl9O18ubWQ9ZnVuY3Rpb24gRjlkKCl7cmV0dXJuIHRoaXMuYn07Xy56bD1mdW5jdGlvbiBHOWQoYSxiLGMpe3JldHVybiBCOWQodGhpcyxhLHRoaXMuYixjKX07Xy5BbD1mdW5jdGlvbiBIOWQoYSxiLGMpe3JldHVybiBDOWQodGhpcyxhLHRoaXMuYixjKX07dmFyIG85PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvSW52ZXJzZVVwZGF0aW5nRmVhdHVyZU1hcEVudHJ5Jyw3OTApO2ZlYigxMzY1LDEsJEplLEk5ZCk7Xy5Gaz1mdW5jdGlvbiBKOWQoYSl7cmV0dXJuIHRoaXMuYX07Xy5Raj1mdW5jdGlvbiBLOWQoKXtyZXR1cm4gWkQodGhpcy5hLDk3KT9SRCh0aGlzLmEsOTcpLlFqKCk6IXRoaXMuYS5kYygpfTtfLldiPWZ1bmN0aW9uIEw5ZChhKXt0aGlzLmEuJGIoKTt0aGlzLmEuR2MoUkQoYSwxNSkpfTtfLkdrPWZ1bmN0aW9uIE05ZCgpe1pEKHRoaXMuYSw5Nyk/UkQodGhpcy5hLDk3KS5HaygpOnRoaXMuYS4kYigpfTt2YXIgcDk9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9TZXR0aW5nTWFueScsMTM2NSk7ZmViKDEzNjYsNTc2LHdLZSxOOWQpO18ueGw9ZnVuY3Rpb24gTzlkKGEpe3JldHVybiBuZXcgUzlkKChubWUoKSxtbWUpLHRoaXMuYi5yaSh0aGlzLmEsYSkpfTtfLm1kPWZ1bmN0aW9uIFA5ZCgpe3JldHVybiBudWxsfTtfLnpsPWZ1bmN0aW9uIFE5ZChhLGIsYyl7cmV0dXJuIGN9O18uQWw9ZnVuY3Rpb24gUjlkKGEsYixjKXtyZXR1cm4gY307dmFyIHE5PXNmYihTSGUsJ0VTdHJ1Y3R1cmFsRmVhdHVyZUltcGwvU2ltcGxlQ29udGVudEZlYXR1cmVNYXBFbnRyeScsMTM2Nik7ZmViKDY1Miw1NzYsd0tlLFM5ZCk7Xy54bD1mdW5jdGlvbiBUOWQoYSl7cmV0dXJuIG5ldyBTOWQodGhpcy5jLGEpfTtfLm1kPWZ1bmN0aW9uIFU5ZCgpe3JldHVybiB0aGlzLmF9O18uemw9ZnVuY3Rpb24gVjlkKGEsYixjKXtyZXR1cm4gY307Xy5BbD1mdW5jdGlvbiBXOWQoYSxiLGMpe3JldHVybiBjfTt2YXIgcjk9c2ZiKFNIZSwnRVN0cnVjdHVyYWxGZWF0dXJlSW1wbC9TaW1wbGVGZWF0dXJlTWFwRW50cnknLDY1Mik7ZmViKDQwMyw1MDYsUEllLFg5ZCk7Xy5haj1mdW5jdGlvbiBZOWQoYSl7cmV0dXJuICRDKGg3LHJ2ZSwyOSxhLDAsMSl9O18uWWk9ZnVuY3Rpb24gWjlkKCl7cmV0dXJuIGZhbHNlfTt2YXIgdDk9c2ZiKFNIZSwnRVN1cGVyQWRhcHRlci8xJyw0MDMpO2ZlYig0NTcsNDQ4LHsxMTA6MSw5NDoxLDkzOjEsMTU1OjEsMTk3OjEsNTg6MSwxMTQ6MSw4NTA6MSw1NDoxLDk5OjEsMTU4OjEsNDU3OjEsMTE5OjEsMTIwOjF9LF85ZCk7Xy5MaD1mdW5jdGlvbiBhYWUoYSxiLGMpe3ZhciBkO3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSksdGhpcy5BYjtjYXNlIDE6cmV0dXJuIHRoaXMuemI7Y2FzZSAyOnJldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyBpYWUodGhpcyxvNyx0aGlzKSksdGhpcy5hO31yZXR1cm4genZkKHRoaXMsYS1BWWQoKEpUZCgpLElUZCkpLHZZZCgoZD1SRChZd2QodGhpcywxNiksMjkpLCFkP0lUZDpkKSxhKSxiLGMpfTtfLlVoPWZ1bmN0aW9uIGJhZShhLGIsYyl7dmFyIGQsZTtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiAhdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpLHJMZCh0aGlzLkFiLGEsYyk7Y2FzZSAyOnJldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyBpYWUodGhpcyxvNyx0aGlzKSksckxkKHRoaXMuYSxhLGMpO31yZXR1cm4gZT1SRCh2WWQoKGQ9UkQoWXdkKHRoaXMsMTYpLDI5KSwhZD8oSlRkKCksSVRkKTpkKSxiKSw2OSksZS53aygpLkFrKHRoaXMsV3dkKHRoaXMpLGItQVlkKChKVGQoKSxJVGQpKSxhLGMpfTtfLldoPWZ1bmN0aW9uIGNhZShhKXt2YXIgYjtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhIXRoaXMuQWImJnRoaXMuQWIuaSE9MDtjYXNlIDE6cmV0dXJuIHRoaXMuemIhPW51bGw7Y2FzZSAyOnJldHVybiAhIXRoaXMuYSYmdGhpcy5hLmkhPTA7fXJldHVybiBBdmQodGhpcyxhLUFZZCgoSlRkKCksSVRkKSksdllkKChiPVJEKFl3ZCh0aGlzLDE2KSwyOSksIWI/SVRkOmIpLGEpKX07Xy5iaT1mdW5jdGlvbiBkYWUoYSxiKXt2YXIgYztzd2l0Y2goYSl7Y2FzZSAwOiF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7c0xkKHRoaXMuQWIpOyF0aGlzLkFiJiYodGhpcy5BYj1uZXcgQzVkKGY3LHRoaXMsMCwzKSk7WUdkKHRoaXMuQWIsUkQoYiwxNikpO3JldHVybjtjYXNlIDE6UEFkKHRoaXMsV0QoYikpO3JldHVybjtjYXNlIDI6IXRoaXMuYSYmKHRoaXMuYT1uZXcgaWFlKHRoaXMsbzcsdGhpcykpO3NMZCh0aGlzLmEpOyF0aGlzLmEmJih0aGlzLmE9bmV3IGlhZSh0aGlzLG83LHRoaXMpKTtZR2QodGhpcy5hLFJEKGIsMTYpKTtyZXR1cm47fUJ2ZCh0aGlzLGEtQVlkKChKVGQoKSxJVGQpKSx2WWQoKGM9UkQoWXdkKHRoaXMsMTYpLDI5KSwhYz9JVGQ6YyksYSksYil9O18uaWk9ZnVuY3Rpb24gZWFlKCl7cmV0dXJuIEpUZCgpLElUZH07Xy5raT1mdW5jdGlvbiBmYWUoYSl7dmFyIGI7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5BYiYmKHRoaXMuQWI9bmV3IEM1ZChmNyx0aGlzLDAsMykpO3NMZCh0aGlzLkFiKTtyZXR1cm47Y2FzZSAxOlBBZCh0aGlzLG51bGwpO3JldHVybjtjYXNlIDI6IXRoaXMuYSYmKHRoaXMuYT1uZXcgaWFlKHRoaXMsbzcsdGhpcykpO3NMZCh0aGlzLmEpO3JldHVybjt9Q3ZkKHRoaXMsYS1BWWQoKEpUZCgpLElUZCkpLHZZZCgoYj1SRChZd2QodGhpcywxNiksMjkpLCFiP0lUZDpiKSxhKSl9O3ZhciB6OT1zZmIoU0hlLCdFVHlwZVBhcmFtZXRlckltcGwnLDQ1Nyk7ZmViKDQ1OCw4MyxvS2UsaWFlKTtfLk5qPWZ1bmN0aW9uIGphZShhLGIpe3JldHVybiBnYWUodGhpcyxSRChhLDg5KSxiKX07Xy5Paj1mdW5jdGlvbiBrYWUoYSxiKXtyZXR1cm4gaGFlKHRoaXMsUkQoYSw4OSksYil9O3ZhciB2OT1zZmIoU0hlLCdFVHlwZVBhcmFtZXRlckltcGwvMScsNDU4KTtmZWIoNjQ3LDQ1LEh4ZSxsYWUpO18uZWM9ZnVuY3Rpb24gbWFlKCl7cmV0dXJuIG5ldyBwYWUodGhpcyl9O3ZhciB5OT1zZmIoU0hlLCdFVHlwZVBhcmFtZXRlckltcGwvMicsNjQ3KTtmZWIoNTcwLEV2ZSxGdmUscGFlKTtfLkZjPWZ1bmN0aW9uIHFhZShhKXtyZXR1cm4gbmFlKHRoaXMsUkQoYSw4OSkpfTtfLkdjPWZ1bmN0aW9uIHJhZShhKXt2YXIgYixjLGQ7ZD1mYWxzZTtmb3IoYz1hLktjKCk7Yy5PYigpOyl7Yj1SRChjLlBiKCksODkpO1pqYih0aGlzLmEsYiwnJyk9PW51bGwmJihkPXRydWUpfXJldHVybiBkfTtfLiRiPWZ1bmN0aW9uIHNhZSgpe2FrYih0aGlzLmEpfTtfLkhjPWZ1bmN0aW9uIHRhZShhKXtyZXR1cm4gVWpiKHRoaXMuYSxhKX07Xy5LYz1mdW5jdGlvbiB1YWUoKXt2YXIgYTtyZXR1cm4gYT1uZXcgdmtiKChuZXcgbWtiKHRoaXMuYSkpLmEpLG5ldyB4YWUoYSl9O18uTWM9ZnVuY3Rpb24gdmFlKGEpe3JldHVybiBvYWUodGhpcyxhKX07Xy5nYz1mdW5jdGlvbiB3YWUoKXtyZXR1cm4gYmtiKHRoaXMuYSl9O3ZhciB4OT1zZmIoU0hlLCdFVHlwZVBhcmFtZXRlckltcGwvMi8xJyw1NzApO2ZlYig1NzEsMSxBdmUseGFlKTtfLk5iPWZ1bmN0aW9uIHlhZShhKXtadGIodGhpcyxhKX07Xy5QYj1mdW5jdGlvbiBBYWUoKXtyZXR1cm4gUkQodGtiKHRoaXMuYSkubGQoKSw4OSl9O18uT2I9ZnVuY3Rpb24gemFlKCl7cmV0dXJuIHRoaXMuYS5ifTtfLlFiPWZ1bmN0aW9uIEJhZSgpe3VrYih0aGlzLmEpfTt2YXIgdzk9c2ZiKFNIZSwnRVR5cGVQYXJhbWV0ZXJJbXBsLzIvMS8xJyw1NzEpO2ZlYigxMzI5LDQ1LEh4ZSxDYWUpO18uX2I9ZnVuY3Rpb24gRGFlKGEpe3JldHVybiBiRShhKT9ZamIodGhpcyxhKTohIXF0Yih0aGlzLmYsYSl9O18ueGM9ZnVuY3Rpb24gRWFlKGEpe3ZhciBiLGM7Yj1iRShhKT9YamIodGhpcyxhKTpXZChxdGIodGhpcy5mLGEpKTtpZihaRChiLDg1MSkpe2M9UkQoYiw4NTEpO2I9Yy5LaygpO1pqYih0aGlzLFJEKGEsMjQxKSxiKTtyZXR1cm4gYn1lbHNlIHJldHVybiBiIT1udWxsP2I6YT09bnVsbD8oR2llKCksRmllKTpudWxsfTt2YXIgQjk9c2ZiKFNIZSwnRVZhbGlkYXRvclJlZ2lzdHJ5SW1wbCcsMTMyOSk7ZmViKDEzNDksNzIwLHsxMTA6MSw5NDoxLDkzOjEsNDgwOjEsMTU1OjEsNTg6MSwxMTQ6MSwyMDQwOjEsNTQ6MSw5OToxLDE1ODoxLDExOToxLDEyMDoxfSxNYWUpO18ucmk9ZnVuY3Rpb24gTmFlKGEsYil7c3dpdGNoKGEuaGsoKSl7Y2FzZSAyMTpjYXNlIDIyOmNhc2UgMjM6Y2FzZSAyNDpjYXNlIDI2OmNhc2UgMzE6Y2FzZSAzMjpjYXNlIDM3OmNhc2UgMzg6Y2FzZSAzOTpjYXNlIDQwOmNhc2UgNDM6Y2FzZSA0NDpjYXNlIDQ4OmNhc2UgNDk6Y2FzZSAyMDpyZXR1cm4gYj09bnVsbD9udWxsOmplYihiKTtjYXNlIDI1OnJldHVybiBHYWUoYik7Y2FzZSAyNzpyZXR1cm4gSGFlKGIpO2Nhc2UgMjg6cmV0dXJuIElhZShiKTtjYXNlIDI5OnJldHVybiBiPT1udWxsP251bGw6YTJkKG5BZFswXSxSRChiLDIwNikpO2Nhc2UgNDE6cmV0dXJuIGI9PW51bGw/Jyc6bmZiKFJEKGIsMjk3KSk7Y2FzZSA0MjpyZXR1cm4gamViKGIpO2Nhc2UgNTA6cmV0dXJuIFdEKGIpO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBhZ2IoVkhlK2EueGUoKStXSGUpKTt9fTtfLnNpPWZ1bmN0aW9uIE9hZShhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscTtzd2l0Y2goYS5HPT0tMSYmKGEuRz0obT1CWGQoYSksbT9mWmQobS52aSgpLGEpOi0xKSksYS5HKXtjYXNlIDA6cmV0dXJuIGM9bmV3IG1YZCxjO2Nhc2UgMTpyZXR1cm4gYj1uZXcgcFZkLGI7Y2FzZSAyOnJldHVybiBkPW5ldyBIWWQsZDtjYXNlIDQ6cmV0dXJuIGU9bmV3IGsxZCxlO2Nhc2UgNTpyZXR1cm4gZj1uZXcgQTFkLGY7Y2FzZSA2OnJldHVybiBnPW5ldyBSMWQsZztjYXNlIDc6cmV0dXJuIGg9bmV3IHlBZCxoO2Nhc2UgMTA6cmV0dXJuIGo9bmV3IGtVZCxqO2Nhc2UgMTE6cmV0dXJuIGs9bmV3IHE0ZCxrO2Nhc2UgMTI6cmV0dXJuIGw9bmV3IEVCZCxsO2Nhc2UgMTM6cmV0dXJuIG49bmV3IFI1ZCxuO2Nhc2UgMTQ6cmV0dXJuIG89bmV3IGQ2ZCxvO2Nhc2UgMTc6cmV0dXJuIHA9bmV3IHY2ZCxwO2Nhc2UgMTg6cmV0dXJuIGk9bmV3IHMyZCxpO2Nhc2UgMTk6cmV0dXJuIHE9bmV3IF85ZCxxO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBhZ2IoWkhlK2EuemIrV0hlKSk7fX07Xy50aT1mdW5jdGlvbiBQYWUoYSxiKXtzd2l0Y2goYS5oaygpKXtjYXNlIDIwOnJldHVybiBiPT1udWxsP251bGw6bmV3IEJpYihiKTtjYXNlIDIxOnJldHVybiBiPT1udWxsP251bGw6bmV3IGVqYihiKTtjYXNlIDIzOmNhc2UgMjI6cmV0dXJuIGI9PW51bGw/bnVsbDpGYWUoYik7Y2FzZSAyNjpjYXNlIDI0OnJldHVybiBiPT1udWxsP251bGw6JGViKE9lYihiLC0xMjgsMTI3KTw8MjQ+PjI0KTtjYXNlIDI1OnJldHVybiB2QWQoYik7Y2FzZSAyNzpyZXR1cm4gSmFlKGIpO2Nhc2UgMjg6cmV0dXJuIEthZShiKTtjYXNlIDI5OnJldHVybiBMYWUoYik7Y2FzZSAzMjpjYXNlIDMxOnJldHVybiBiPT1udWxsP251bGw6TmViKGIpO2Nhc2UgMzg6Y2FzZSAzNzpyZXR1cm4gYj09bnVsbD9udWxsOm5ldyBVZmIoYik7Y2FzZSA0MDpjYXNlIDM5OnJldHVybiBiPT1udWxsP251bGw6c2diKE9lYihiLHF3ZSxsdmUpKTtjYXNlIDQxOnJldHVybiBudWxsO2Nhc2UgNDI6cmV0dXJuIGI9PW51bGw/bnVsbDpudWxsO2Nhc2UgNDQ6Y2FzZSA0MzpyZXR1cm4gYj09bnVsbD9udWxsOkhnYihQZWIoYikpO2Nhc2UgNDk6Y2FzZSA0ODpyZXR1cm4gYj09bnVsbD9udWxsOmJoYihPZWIoYixCS2UsMzI3NjcpPDwxNj4+MTYpO2Nhc2UgNTA6cmV0dXJuIGI7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYihWSGUrYS54ZSgpK1dIZSkpO319O3ZhciBDOT1zZmIoU0hlLCdFY29yZUZhY3RvcnlJbXBsJywxMzQ5KTtmZWIoNTYwLDE4NCx7MTEwOjEsOTQ6MSw5MzoxLDE1NToxLDE5NzoxLDU4OjEsMjQxOjEsMTE0OjEsMjAzODoxLDU0OjEsOTk6MSwxNTg6MSwxODQ6MSw1NjA6MSwxMTk6MSwxMjA6MSw2OTA6MX0sJGFlKTtfLmdiPWZhbHNlO18uaGI9ZmFsc2U7dmFyIFJhZSxTYWU9ZmFsc2U7dmFyIHRhYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsJyw1NjApO2ZlYigxMjM0LDEsezg1MToxfSxjYmUpO18uS2s9ZnVuY3Rpb24gZGJlKCl7cmV0dXJuIGZrZSgpLGVrZX07dmFyIE45PXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMScsMTIzNCk7ZmViKDEyNDMsMSxPS2UsZWJlKTtfLmZrPWZ1bmN0aW9uIGZiZShhKXtyZXR1cm4gWkQoYSwxNTUpfTtfLmdrPWZ1bmN0aW9uIGdiZShhKXtyZXR1cm4gJEMocDcscnZlLDE1NSxhLDAsMSl9O3ZhciBEOT1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzEwJywxMjQzKTtmZWIoMTI0NCwxLE9LZSxoYmUpO18uZms9ZnVuY3Rpb24gaWJlKGEpe3JldHVybiBaRChhLDE5Nyl9O18uZ2s9ZnVuY3Rpb24gamJlKGEpe3JldHVybiAkQyhxNyxydmUsMTk3LGEsMCwxKX07dmFyIEU5PXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMTEnLDEyNDQpO2ZlYigxMjQ1LDEsT0tlLGtiZSk7Xy5maz1mdW5jdGlvbiBsYmUoYSl7cmV0dXJuIFpEKGEsNTgpfTtfLmdrPWZ1bmN0aW9uIG1iZShhKXtyZXR1cm4gJEMocjcscnZlLDU4LGEsMCwxKX07dmFyIEY5PXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMTInLDEyNDUpO2ZlYigxMjQ2LDEsT0tlLG5iZSk7Xy5maz1mdW5jdGlvbiBvYmUoYSl7cmV0dXJuIFpEKGEsNDExKX07Xy5naz1mdW5jdGlvbiBwYmUoYSl7cmV0dXJuICRDKHM3LG1LZSw2MixhLDAsMSl9O3ZhciBHOT1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzEzJywxMjQ2KTtmZWIoMTI0NywxLE9LZSxxYmUpO18uZms9ZnVuY3Rpb24gcmJlKGEpe3JldHVybiBaRChhLDI0MSl9O18uZ2s9ZnVuY3Rpb24gc2JlKGEpe3JldHVybiAkQyh0NyxydmUsMjQxLGEsMCwxKX07dmFyIEg5PXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMTQnLDEyNDcpO2ZlYigxMjQ4LDEsT0tlLHRiZSk7Xy5maz1mdW5jdGlvbiB1YmUoYSl7cmV0dXJuIFpEKGEsNTE4KX07Xy5naz1mdW5jdGlvbiB2YmUoYSl7cmV0dXJuICRDKHU3LHJ2ZSwyMTE2LGEsMCwxKX07dmFyIEk5PXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMTUnLDEyNDgpO2ZlYigxMjQ5LDEsT0tlLHdiZSk7Xy5maz1mdW5jdGlvbiB4YmUoYSl7cmV0dXJuIFpEKGEsMTAyKX07Xy5naz1mdW5jdGlvbiB5YmUoYSl7cmV0dXJuICRDKHY3LGxLZSwxOSxhLDAsMSl9O3ZhciBKOT1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzE2JywxMjQ5KTtmZWIoMTI1MCwxLE9LZSx6YmUpO18uZms9ZnVuY3Rpb24gQWJlKGEpe3JldHVybiBaRChhLDE3OSl9O18uZ2s9ZnVuY3Rpb24gQmJlKGEpe3JldHVybiAkQyh5NyxsS2UsMTc5LGEsMCwxKX07dmFyIEs5PXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMTcnLDEyNTApO2ZlYigxMjUxLDEsT0tlLENiZSk7Xy5maz1mdW5jdGlvbiBEYmUoYSl7cmV0dXJuIFpEKGEsNDgxKX07Xy5naz1mdW5jdGlvbiBFYmUoYSl7cmV0dXJuICRDKEE3LHJ2ZSw0ODEsYSwwLDEpfTt2YXIgTDk9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC8xOCcsMTI1MSk7ZmViKDEyNTIsMSxPS2UsRmJlKTtfLmZrPWZ1bmN0aW9uIEdiZShhKXtyZXR1cm4gWkQoYSw1NjEpfTtfLmdrPWZ1bmN0aW9uIEhiZShhKXtyZXR1cm4gJEMoQzgsTEplLDU2MSxhLDAsMSl9O3ZhciBNOT1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzE5JywxMjUyKTtmZWIoMTIzNSwxLE9LZSxJYmUpO18uZms9ZnVuY3Rpb24gSmJlKGEpe3JldHVybiBaRChhLDMzMSl9O18uZ2s9ZnVuY3Rpb24gS2JlKGEpe3JldHVybiAkQyhnNyxsS2UsMzUsYSwwLDEpfTt2YXIgWTk9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC8yJywxMjM1KTtmZWIoMTI1MywxLE9LZSxMYmUpO18uZms9ZnVuY3Rpb24gTWJlKGEpe3JldHVybiBaRChhLDI0OCl9O18uZ2s9ZnVuY3Rpb24gTmJlKGEpe3JldHVybiAkQyhvNyxzS2UsODksYSwwLDEpfTt2YXIgTzk9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC8yMCcsMTI1Myk7ZmViKDEyNTQsMSxPS2UsT2JlKTtfLmZrPWZ1bmN0aW9uIFBiZShhKXtyZXR1cm4gWkQoYSw0NTcpfTtfLmdrPWZ1bmN0aW9uIFFiZShhKXtyZXR1cm4gJEMoejcscnZlLDg1MCxhLDAsMSl9O3ZhciBQOT1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzIxJywxMjU0KTtmZWIoMTI1NSwxLE9LZSxSYmUpO18uZms9ZnVuY3Rpb24gU2JlKGEpe3JldHVybiAkRChhKX07Xy5naz1mdW5jdGlvbiBUYmUoYSl7cmV0dXJuICRDKFFJLE52ZSw0ODUsYSw4LDEpfTt2YXIgUTk9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC8yMicsMTI1NSk7ZmViKDEyNTYsMSxPS2UsVWJlKTtfLmZrPWZ1bmN0aW9uIFZiZShhKXtyZXR1cm4gWkQoYSwxOTUpfTtfLmdrPWZ1bmN0aW9uIFdiZShhKXtyZXR1cm4gJEMoZ0UsTnZlLDE5NSxhLDAsMil9O3ZhciBSOT1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzIzJywxMjU2KTtmZWIoMTI1NywxLE9LZSxYYmUpO18uZms9ZnVuY3Rpb24gWWJlKGEpe3JldHVybiBaRChhLDIyMil9O18uZ2s9ZnVuY3Rpb24gWmJlKGEpe3JldHVybiAkQyhSSSxOdmUsMjIyLGEsMCwxKX07dmFyIFM5PXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMjQnLDEyNTcpO2ZlYigxMjU4LDEsT0tlLCRiZSk7Xy5maz1mdW5jdGlvbiBfYmUoYSl7cmV0dXJuIFpEKGEsMTgwKX07Xy5naz1mdW5jdGlvbiBhY2UoYSl7cmV0dXJuICRDKFNJLE52ZSwxODAsYSwwLDEpfTt2YXIgVDk9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC8yNScsMTI1OCk7ZmViKDEyNTksMSxPS2UsYmNlKTtfLmZrPWZ1bmN0aW9uIGNjZShhKXtyZXR1cm4gWkQoYSwyMDYpfTtfLmdrPWZ1bmN0aW9uIGRjZShhKXtyZXR1cm4gJEMocUssTnZlLDIwNixhLDAsMSl9O3ZhciBVOT1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzI2JywxMjU5KTtmZWIoMTI2MCwxLE9LZSxlY2UpO18uZms9ZnVuY3Rpb24gZmNlKGEpe3JldHVybiBmYWxzZX07Xy5naz1mdW5jdGlvbiBnY2UoYSl7cmV0dXJuICRDKFQ2LHJ2ZSwyMjE1LGEsMCwxKX07dmFyIFY5PXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMjcnLDEyNjApO2ZlYigxMjYxLDEsT0tlLGhjZSk7Xy5maz1mdW5jdGlvbiBpY2UoYSl7cmV0dXJuIF9EKGEpfTtfLmdrPWZ1bmN0aW9uIGpjZShhKXtyZXR1cm4gJEMoVkksTnZlLDM0NSxhLDcsMSl9O3ZhciBXOT1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzI4JywxMjYxKTtmZWIoMTI2MiwxLE9LZSxrY2UpO18uZms9ZnVuY3Rpb24gbGNlKGEpe3JldHVybiBaRChhLDYxKX07Xy5naz1mdW5jdGlvbiBtY2UoYSl7cmV0dXJuICRDKFk2LEl6ZSw2MSxhLDAsMSl9O3ZhciBYOT1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzI5JywxMjYyKTtmZWIoMTIzNiwxLE9LZSxuY2UpO18uZms9ZnVuY3Rpb24gb2NlKGEpe3JldHVybiBaRChhLDUxOSl9O18uZ2s9ZnVuY3Rpb24gcGNlKGEpe3JldHVybiAkQyhmNyx7MzoxLDQ6MSw1OjEsMjAzMzoxfSw1OTgsYSwwLDEpfTt2YXIgaGFiPXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMycsMTIzNik7ZmViKDEyNjMsMSxPS2UscWNlKTtfLmZrPWZ1bmN0aW9uIHJjZShhKXtyZXR1cm4gWkQoYSw1ODIpfTtfLmdrPWZ1bmN0aW9uIHNjZShhKXtyZXR1cm4gJEMoWjYscnZlLDIwMzksYSwwLDEpfTt2YXIgWjk9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC8zMCcsMTI2Myk7ZmViKDEyNjQsMSxPS2UsdGNlKTtfLmZrPWZ1bmN0aW9uIHVjZShhKXtyZXR1cm4gWkQoYSwxNjApfTtfLmdrPWZ1bmN0aW9uIHZjZShhKXtyZXR1cm4gJEMoVGJiLEl6ZSwxNjAsYSwwLDEpfTt2YXIgJDk9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC8zMScsMTI2NCk7ZmViKDEyNjUsMSxPS2Usd2NlKTtfLmZrPWZ1bmN0aW9uIHhjZShhKXtyZXR1cm4gWkQoYSw3Nil9O18uZ2s9ZnVuY3Rpb24geWNlKGEpe3JldHVybiAkQyhKYmIsUEtlLDc2LGEsMCwxKX07dmFyIF85PXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMzInLDEyNjUpO2ZlYigxMjY2LDEsT0tlLHpjZSk7Xy5maz1mdW5jdGlvbiBBY2UoYSl7cmV0dXJuIFpEKGEsMTYxKX07Xy5naz1mdW5jdGlvbiBCY2UoYSl7cmV0dXJuICRDKFpJLE52ZSwxNjEsYSwwLDEpfTt2YXIgYWFiPXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMzMnLDEyNjYpO2ZlYigxMjY3LDEsT0tlLENjZSk7Xy5maz1mdW5jdGlvbiBEY2UoYSl7cmV0dXJuIFpEKGEsMTcpfTtfLmdrPWZ1bmN0aW9uIEVjZShhKXtyZXR1cm4gJEMoYkosTnZlLDE3LGEsMCwxKX07dmFyIGJhYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzM0JywxMjY3KTtmZWIoMTI2OCwxLE9LZSxGY2UpO18uZms9ZnVuY3Rpb24gR2NlKGEpe3JldHVybiBaRChhLDI5Nyl9O18uZ2s9ZnVuY3Rpb24gSGNlKGEpe3JldHVybiAkQyhVSSxydmUsMjk3LGEsMCwxKX07dmFyIGNhYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzM1JywxMjY4KTtmZWIoMTI2OSwxLE9LZSxJY2UpO18uZms9ZnVuY3Rpb24gSmNlKGEpe3JldHVybiBaRChhLDE2OCl9O18uZ2s9ZnVuY3Rpb24gS2NlKGEpe3JldHVybiAkQyhlSixOdmUsMTY4LGEsMCwxKX07dmFyIGRhYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzM2JywxMjY5KTtmZWIoMTI3MCwxLE9LZSxMY2UpO18uZms9ZnVuY3Rpb24gTWNlKGEpe3JldHVybiBaRChhLDg1KX07Xy5naz1mdW5jdGlvbiBOY2UoYSl7cmV0dXJuICRDKFZLLHJ2ZSw4NSxhLDAsMSl9O3ZhciBlYWI9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC8zNycsMTI3MCk7ZmViKDEyNzEsMSxPS2UsT2NlKTtfLmZrPWZ1bmN0aW9uIFBjZShhKXtyZXR1cm4gWkQoYSw1OTkpfTtfLmdrPWZ1bmN0aW9uIFFjZShhKXtyZXR1cm4gJEMoQWFiLHJ2ZSw1OTksYSwwLDEpfTt2YXIgZmFiPXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvMzgnLDEyNzEpO2ZlYigxMjcyLDEsT0tlLFJjZSk7Xy5maz1mdW5jdGlvbiBTY2UoYSl7cmV0dXJuIGZhbHNlfTtfLmdrPWZ1bmN0aW9uIFRjZShhKXtyZXR1cm4gJEMoemFiLHJ2ZSwyMjE2LGEsMCwxKX07dmFyIGdhYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzM5JywxMjcyKTtmZWIoMTIzNywxLE9LZSxVY2UpO18uZms9ZnVuY3Rpb24gVmNlKGEpe3JldHVybiBaRChhLDkwKX07Xy5naz1mdW5jdGlvbiBXY2UoYSl7cmV0dXJuICRDKGg3LHJ2ZSwyOSxhLDAsMSl9O3ZhciBuYWI9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC80JywxMjM3KTtmZWIoMTI3MywxLE9LZSxYY2UpO18uZms9ZnVuY3Rpb24gWWNlKGEpe3JldHVybiBaRChhLDE5MSl9O18uZ2s9ZnVuY3Rpb24gWmNlKGEpe3JldHVybiAkQyhsSixOdmUsMTkxLGEsMCwxKX07dmFyIGlhYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzQwJywxMjczKTtmZWIoMTI3NCwxLE9LZSwkY2UpO18uZms9ZnVuY3Rpb24gX2NlKGEpe3JldHVybiBiRShhKX07Xy5naz1mdW5jdGlvbiBhZGUoYSl7cmV0dXJuICRDKHFKLE52ZSwyLGEsNiwxKX07dmFyIGphYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzQxJywxMjc0KTtmZWIoMTI3NSwxLE9LZSxiZGUpO18uZms9ZnVuY3Rpb24gY2RlKGEpe3JldHVybiBaRChhLDU5Nil9O18uZ2s9ZnVuY3Rpb24gZGRlKGEpe3JldHVybiAkQyhhNyxydmUsNTk2LGEsMCwxKX07dmFyIGthYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzQyJywxMjc1KTtmZWIoMTI3NiwxLE9LZSxlZGUpO18uZms9ZnVuY3Rpb24gZmRlKGEpe3JldHVybiBmYWxzZX07Xy5naz1mdW5jdGlvbiBnZGUoYSl7cmV0dXJuICRDKCQ2LE52ZSwyMjE3LGEsMCwxKX07dmFyIGxhYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzQzJywxMjc2KTtmZWIoMTI3NywxLE9LZSxoZGUpO18uZms9ZnVuY3Rpb24gaWRlKGEpe3JldHVybiBaRChhLDQ0KX07Xy5naz1mdW5jdGlvbiBqZGUoYSl7cmV0dXJuICRDKFVLLFp2ZSw0NCxhLDAsMSl9O3ZhciBtYWI9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC80NCcsMTI3Nyk7ZmViKDEyMzgsMSxPS2Usa2RlKTtfLmZrPWZ1bmN0aW9uIGxkZShhKXtyZXR1cm4gWkQoYSwxNDIpfTtfLmdrPWZ1bmN0aW9uIG1kZShhKXtyZXR1cm4gJEMoaTcscnZlLDE0MixhLDAsMSl9O3ZhciBvYWI9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC81JywxMjM4KTtmZWIoMTIzOSwxLE9LZSxuZGUpO18uZms9ZnVuY3Rpb24gb2RlKGEpe3JldHVybiBaRChhLDE1Nil9O18uZ2s9ZnVuY3Rpb24gcGRlKGEpe3JldHVybiAkQyhrNyxydmUsMTU2LGEsMCwxKX07dmFyIHBhYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzYnLDEyMzkpO2ZlYigxMjQwLDEsT0tlLHFkZSk7Xy5maz1mdW5jdGlvbiByZGUoYSl7cmV0dXJuIFpEKGEsNDY5KX07Xy5naz1mdW5jdGlvbiBzZGUoYSl7cmV0dXJuICRDKG03LHJ2ZSw2ODUsYSwwLDEpfTt2YXIgcWFiPXNmYihTSGUsJ0Vjb3JlUGFja2FnZUltcGwvNycsMTI0MCk7ZmViKDEyNDEsMSxPS2UsdGRlKTtfLmZrPWZ1bmN0aW9uIHVkZShhKXtyZXR1cm4gWkQoYSw1ODIpfTtfLmdrPWZ1bmN0aW9uIHZkZShhKXtyZXR1cm4gJEMobDcscnZlLDY5NCxhLDAsMSl9O3ZhciByYWI9c2ZiKFNIZSwnRWNvcmVQYWNrYWdlSW1wbC84JywxMjQxKTtmZWIoMTI0MiwxLE9LZSx3ZGUpO18uZms9ZnVuY3Rpb24geGRlKGEpe3JldHVybiBaRChhLDQ4MCl9O18uZ2s9ZnVuY3Rpb24geWRlKGEpe3JldHVybiAkQyhuNyxydmUsNDgwLGEsMCwxKX07dmFyIHNhYj1zZmIoU0hlLCdFY29yZVBhY2thZ2VJbXBsLzknLDEyNDIpO2ZlYigxMDM4LDIwODAsSkplLENkZSk7Xy5NaT1mdW5jdGlvbiBEZGUoYSxiKXt6ZGUodGhpcyxSRChiLDQyNCkpfTtfLlFpPWZ1bmN0aW9uIEVkZShhLGIpe0FkZSh0aGlzLGEsUkQoYiw0MjQpKX07dmFyIHZhYj1zZmIoU0hlLCdNaW5pbWFsRU9iamVjdEltcGwvMUFycmF5RGVsZWdhdGluZ0FkYXB0ZXJMaXN0JywxMDM4KTtmZWIoMTAzOSwxNTIsR0plLEZkZSk7Xy5qaj1mdW5jdGlvbiBHZGUoKXtyZXR1cm4gdGhpcy5hLmF9O3ZhciB1YWI9c2ZiKFNIZSwnTWluaW1hbEVPYmplY3RJbXBsLzFBcnJheURlbGVnYXRpbmdBZGFwdGVyTGlzdC8xJywxMDM5KTtmZWIoMTA2NywxMDY2LHt9LElkZSk7dmFyIHlhYj1zZmIoJ29yZy5lY2xpcHNlLmVtZi5lY29yZS5wbHVnaW4nLCdFY29yZVBsdWdpbicsMTA2Nyk7dmFyIEFhYj11ZmIoUUtlLCdSZXNvdXJjZScpO2ZlYig3OTksMTUyNCxSS2UpO18uSGw9ZnVuY3Rpb24gTWRlKGEpe307Xy5JbD1mdW5jdGlvbiBOZGUoYSl7fTtfLkVsPWZ1bmN0aW9uIE9kZSgpe3JldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyBaZGUodGhpcykpLHRoaXMuYX07Xy5GbD1mdW5jdGlvbiBQZGUoYSl7dmFyIGIsYyxkLGUsZjtkPWEubGVuZ3RoO2lmKGQ+MCl7QkZiKDAsYS5sZW5ndGgpO2lmKGEuY2hhckNvZGVBdCgwKT09NDcpe2Y9bmV3IGNuYig0KTtlPTE7Zm9yKGI9MTtiPGQ7KytiKXtCRmIoYixhLmxlbmd0aCk7aWYoYS5jaGFyQ29kZUF0KGIpPT00Nyl7Um1iKGYsZT09Yj8nJzooQUZiKGUsYixhLmxlbmd0aCksYS5zdWJzdHIoZSxiLWUpKSk7ZT1iKzF9fVJtYihmLChCRmIoZSxhLmxlbmd0aCsxKSxhLnN1YnN0cihlKSkpO3JldHVybiBKZGUodGhpcyxmKX1lbHNle0JGYihkLTEsYS5sZW5ndGgpO2lmKGEuY2hhckNvZGVBdChkLTEpPT02Myl7Yz11aGIoYSxGaGIoNjMpLGQtMik7Yz4wJiYoYT0oQUZiKDAsYyxhLmxlbmd0aCksYS5zdWJzdHIoMCxjKSkpfX19cmV0dXJuIEtkZSh0aGlzLGEpfTtfLkdsPWZ1bmN0aW9uIFFkZSgpe3JldHVybiB0aGlzLmN9O18uSWI9ZnVuY3Rpb24gUmRlKCl7dmFyIGE7cmV0dXJuIG5mYih0aGlzLlJtKSsnQCcrKGE9dGIodGhpcyk+Pj4wLGEudG9TdHJpbmcoMTYpKStcIiB1cmk9J1wiK3RoaXMuZCtcIidcIn07Xy5iPWZhbHNlO3ZhciBFYWI9c2ZiKFNLZSwnUmVzb3VyY2VJbXBsJyw3OTkpO2ZlYigxNTI1LDc5OSxSS2UsU2RlKTt2YXIgQmFiPXNmYihTS2UsJ0JpbmFyeVJlc291cmNlSW1wbCcsMTUyNSk7ZmViKDExOTAsNzA4LFFJZSk7Xy5iaj1mdW5jdGlvbiBWZGUoYSl7cmV0dXJuIFpEKGEsNTgpP1RkZSh0aGlzLFJEKGEsNTgpKTpaRChhLDU5OSk/bmV3IGRNZChSRChhLDU5OSkuRWwoKSk6ZEUoYSk9PT1kRSh0aGlzLmYpP1JEKGEsMTYpLktjKCk6KGpRZCgpLGlRZC5hKX07Xy5PYj1mdW5jdGlvbiBXZGUoKXtyZXR1cm4gVWRlKHRoaXMpfTtfLmE9ZmFsc2U7dmFyIEViYj1zZmIoWkplLCdFY29yZVV0aWwvQ29udGVudFRyZWVJdGVyYXRvcicsMTE5MCk7ZmViKDE1MjYsMTE5MCxRSWUsWGRlKTtfLmJqPWZ1bmN0aW9uIFlkZShhKXtyZXR1cm4gZEUoYSk9PT1kRSh0aGlzLmYpP1JEKGEsMTUpLktjKCk6bmV3IF9qZShSRChhLDU4KSl9O3ZhciBDYWI9c2ZiKFNLZSwnUmVzb3VyY2VJbXBsLzUnLDE1MjYpO2ZlYig2NTgsMjA5MixuS2UsWmRlKTtfLkhjPWZ1bmN0aW9uICRkZShhKXtyZXR1cm4gdGhpcy5pPD00P1BIZCh0aGlzLGEpOlpEKGEsNTQpJiZSRChhLDU0KS5KaCgpPT10aGlzLmF9O18uTWk9ZnVuY3Rpb24gX2RlKGEsYil7YT09dGhpcy5pLTEmJih0aGlzLmEuYnx8KHRoaXMuYS5iPXRydWUsbnVsbCkpfTtfLk9pPWZ1bmN0aW9uIGFlZShhLGIpe2E9PTA/dGhpcy5hLmJ8fCh0aGlzLmEuYj10cnVlLG51bGwpOiRHZCh0aGlzLGEsYil9O18uUWk9ZnVuY3Rpb24gYmVlKGEsYil7fTtfLlJpPWZ1bmN0aW9uIGNlZShhLGIsYyl7fTtfLkxqPWZ1bmN0aW9uIGRlZSgpe3JldHVybiAyfTtfLmpqPWZ1bmN0aW9uIGVlZSgpe3JldHVybiB0aGlzLmF9O18uTWo9ZnVuY3Rpb24gZmVlKCl7cmV0dXJuIHRydWV9O18uTmo9ZnVuY3Rpb24gZ2VlKGEsYil7dmFyIGM7Yz1SRChhLDU0KTtiPWMuZmkodGhpcy5hLGIpO3JldHVybiBifTtfLk9qPWZ1bmN0aW9uIGhlZShhLGIpe3ZhciBjO2M9UkQoYSw1NCk7cmV0dXJuIGMuZmkobnVsbCxiKX07Xy5Qaj1mdW5jdGlvbiBpZWUoKXtyZXR1cm4gZmFsc2V9O18uU2k9ZnVuY3Rpb24gamVlKCl7cmV0dXJuIHRydWV9O18uYWo9ZnVuY3Rpb24ga2VlKGEpe3JldHVybiAkQyhyNyxydmUsNTgsYSwwLDEpfTtfLllpPWZ1bmN0aW9uIGxlZSgpe3JldHVybiBmYWxzZX07dmFyIERhYj1zZmIoU0tlLCdSZXNvdXJjZUltcGwvQ29udGVudHNFTGlzdCcsNjU4KTtmZWIoOTcwLDIwNjIsa3dlLG1lZSk7Xy5mZD1mdW5jdGlvbiBuZWUoYSl7cmV0dXJuIHRoaXMuYS5LaShhKX07Xy5nYz1mdW5jdGlvbiBvZWUoKXtyZXR1cm4gdGhpcy5hLmdjKCl9O3ZhciBGYWI9c2ZiKFpKZSwnQWJzdHJhY3RTZXF1ZW50aWFsSW50ZXJuYWxFTGlzdC8xJyw5NzApO3ZhciBoa2UsaWtlLGprZSxra2U7ZmViKDYzNCwxLHt9LFllZSk7dmFyIHBlZSxxZWU7dmFyIExhYj1zZmIoWkplLCdCYXNpY0V4dGVuZGVkTWV0YURhdGEnLDYzNCk7ZmViKDExODEsMSx7fSxhZmUpO18uSmw9ZnVuY3Rpb24gYmZlKCl7cmV0dXJuIG51bGx9O18uS2w9ZnVuY3Rpb24gY2ZlKCl7dGhpcy5hPT0tMiYmJGVlKHRoaXMsdWVlKHRoaXMuZCx0aGlzLmIpKTtyZXR1cm4gdGhpcy5hfTtfLkxsPWZ1bmN0aW9uIGRmZSgpe3JldHVybiBudWxsfTtfLk1sPWZ1bmN0aW9uIGVmZSgpe3JldHVybiB5b2IoKSx5b2IoKSx2b2J9O18ueGU9ZnVuY3Rpb24gZmZlKCl7dGhpcy5jPT1mTGUmJl9lZSh0aGlzLHplZSh0aGlzLmQsdGhpcy5iKSk7cmV0dXJuIHRoaXMuY307Xy5ObD1mdW5jdGlvbiBnZmUoKXtyZXR1cm4gMH07Xy5hPS0yO18uYz1mTGU7dmFyIEhhYj1zZmIoWkplLCdCYXNpY0V4dGVuZGVkTWV0YURhdGEvRUNsYXNzRXh0ZW5kZWRNZXRhRGF0YUltcGwnLDExODEpO2ZlYigxMTgyLDEse30sbWZlKTtfLkpsPWZ1bmN0aW9uIG5mZSgpe3RoaXMuYT09KHJlZSgpLHBlZSkmJmhmZSh0aGlzLHRlZSh0aGlzLmYsdGhpcy5iKSk7cmV0dXJuIHRoaXMuYX07Xy5LbD1mdW5jdGlvbiBvZmUoKXtyZXR1cm4gMH07Xy5MbD1mdW5jdGlvbiBwZmUoKXt0aGlzLmM9PShyZWUoKSxwZWUpJiZpZmUodGhpcyx4ZWUodGhpcy5mLHRoaXMuYikpO3JldHVybiB0aGlzLmN9O18uTWw9ZnVuY3Rpb24gcWZlKCl7IXRoaXMuZCYmamZlKHRoaXMseWVlKHRoaXMuZix0aGlzLmIpKTtyZXR1cm4gdGhpcy5kfTtfLnhlPWZ1bmN0aW9uIHJmZSgpe3RoaXMuZT09ZkxlJiZrZmUodGhpcyx6ZWUodGhpcy5mLHRoaXMuYikpO3JldHVybiB0aGlzLmV9O18uTmw9ZnVuY3Rpb24gc2ZlKCl7dGhpcy5nPT0tMiYmbGZlKHRoaXMsQ2VlKHRoaXMuZix0aGlzLmIpKTtyZXR1cm4gdGhpcy5nfTtfLmU9ZkxlO18uZz0tMjt2YXIgSWFiPXNmYihaSmUsJ0Jhc2ljRXh0ZW5kZWRNZXRhRGF0YS9FRGF0YVR5cGVFeHRlbmRlZE1ldGFEYXRhSW1wbCcsMTE4Mik7ZmViKDExODAsMSx7fSx3ZmUpO18uYj1mYWxzZTtfLmM9ZmFsc2U7dmFyIEphYj1zZmIoWkplLCdCYXNpY0V4dGVuZGVkTWV0YURhdGEvRVBhY2thZ2VFeHRlbmRlZE1ldGFEYXRhSW1wbCcsMTE4MCk7ZmViKDExODMsMSx7fSxKZmUpO18uYz0tMjtfLmU9ZkxlO18uZj1mTGU7dmFyIEthYj1zZmIoWkplLCdCYXNpY0V4dGVuZGVkTWV0YURhdGEvRVN0cnVjdHVyYWxGZWF0dXJlRXh0ZW5kZWRNZXRhRGF0YUltcGwnLDExODMpO2ZlYig1OTMsNjMyLG9LZSxLZmUpO18uTGo9ZnVuY3Rpb24gTGZlKCl7cmV0dXJuIHRoaXMuY307Xy5vbD1mdW5jdGlvbiBNZmUoKXtyZXR1cm4gZmFsc2V9O18uV2k9ZnVuY3Rpb24gTmZlKGEsYil7cmV0dXJuIGJ9O18uYz0wO3ZhciBZYWI9c2ZiKFpKZSwnRURhdGFUeXBlRUxpc3QnLDU5Myk7dmFyIFRiYj11ZmIoWkplLCdGZWF0dXJlTWFwJyk7ZmViKDc4LDU5Myx7MzoxLDQ6MSwyMDoxLDMxOjEsNTY6MSwxNjoxLDE1OjEsNTk6MSw3MDoxLDY2OjEsNjE6MSw3OToxLDE2MDoxLDIyMDoxLDIwMzY6MSw3MToxLDk3OjF9LFVnZSk7Xy5iZD1mdW5jdGlvbiBWZ2UoYSxiKXtPZmUodGhpcyxhLFJEKGIsNzYpKX07Xy5GYz1mdW5jdGlvbiBXZ2UoYSl7cmV0dXJuIFJmZSh0aGlzLFJEKGEsNzYpKX07Xy5IaT1mdW5jdGlvbiBfZ2UoYSl7V2ZlKHRoaXMsUkQoYSw3NikpfTtfLk5qPWZ1bmN0aW9uIGtoZShhLGIpe3JldHVybiBtZ2UodGhpcyxSRChhLDc2KSxiKX07Xy5Paj1mdW5jdGlvbiBsaGUoYSxiKXtyZXR1cm4gb2dlKHRoaXMsUkQoYSw3NiksYil9O18uVGk9ZnVuY3Rpb24gbmhlKGEsYil7cmV0dXJuIHVnZSh0aGlzLGEsYil9O18uV2k9ZnVuY3Rpb24gcGhlKGEsYil7cmV0dXJuIHpnZSh0aGlzLGEsUkQoYiw3NikpfTtfLmhkPWZ1bmN0aW9uIHJoZShhLGIpe3JldHVybiBDZ2UodGhpcyxhLFJEKGIsNzYpKX07Xy5Vaj1mdW5jdGlvbiB2aGUoYSxiKXtyZXR1cm4gSWdlKHRoaXMsUkQoYSw3NiksYil9O18uVmo9ZnVuY3Rpb24gd2hlKGEsYil7cmV0dXJuIEtnZSh0aGlzLFJEKGEsNzYpLGIpfTtfLldqPWZ1bmN0aW9uIHhoZShhLGIsYyl7cmV0dXJuIExnZSh0aGlzLFJEKGEsNzYpLFJEKGIsNzYpLGMpfTtfLlppPWZ1bmN0aW9uIHpoZShhLGIpe3JldHVybiBUZ2UodGhpcyxhLFJEKGIsNzYpKX07Xy5PbD1mdW5jdGlvbiBYZ2UoYSxiKXtyZXR1cm4gUWZlKHRoaXMsYSxiKX07Xy5jZD1mdW5jdGlvbiBZZ2UoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGs7aj1uZXcgWkhkKGIuZ2MoKSk7Zm9yKGU9Yi5LYygpO2UuT2IoKTspe2Q9UkQoZS5QYigpLDc2KTtmPWQuTGsoKTtpZihxa2UodGhpcy5lLGYpKXsoIWYuU2koKXx8IWNnZSh0aGlzLGYsZC5tZCgpKSYmIVBIZChqLGQpKSYmV0dkKGosZCl9ZWxzZXtrPXBrZSh0aGlzLmUuRGgoKSxmKTtjPVJEKHRoaXMuZywxMjQpO2c9dHJ1ZTtmb3IoaD0wO2g8dGhpcy5pOysraCl7aT1jW2hdO2lmKGsuYW0oaS5MaygpKSl7UkQoZUhkKHRoaXMsaCxkKSw3Nik7Zz1mYWxzZTticmVha319ZyYmV0dkKGosZCl9fXJldHVybiBYR2QodGhpcyxhLGopfTtfLkdjPWZ1bmN0aW9uIFpnZShhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGo7aT1uZXcgWkhkKGEuZ2MoKSk7Zm9yKGQ9YS5LYygpO2QuT2IoKTspe2M9UkQoZC5QYigpLDc2KTtlPWMuTGsoKTtpZihxa2UodGhpcy5lLGUpKXsoIWUuU2koKXx8IWNnZSh0aGlzLGUsYy5tZCgpKSYmIVBIZChpLGMpKSYmV0dkKGksYyl9ZWxzZXtqPXBrZSh0aGlzLmUuRGgoKSxlKTtiPVJEKHRoaXMuZywxMjQpO2Y9dHJ1ZTtmb3IoZz0wO2c8dGhpcy5pOysrZyl7aD1iW2ddO2lmKGouYW0oaC5MaygpKSl7UkQoZUhkKHRoaXMsZyxjKSw3Nik7Zj1mYWxzZTticmVha319ZiYmV0dkKGksYyl9fXJldHVybiBZR2QodGhpcyxpKX07Xy5GaT1mdW5jdGlvbiAkZ2UoYSl7dGhpcy5qPS0xO3JldHVybiBuTGQodGhpcyx0aGlzLmksYSl9O18uUGw9ZnVuY3Rpb24gYWhlKGEsYixjKXtyZXR1cm4gWGZlKHRoaXMsYSxiLGMpfTtfLlhrPWZ1bmN0aW9uIGJoZShhLGIpe3JldHVybiBfZmUodGhpcyxhLGIpfTtfLlFsPWZ1bmN0aW9uIGNoZShhLGIsYyl7cmV0dXJuIGFnZSh0aGlzLGEsYixjKX07Xy5SbD1mdW5jdGlvbiBkaGUoKXtyZXR1cm4gdGhpc307Xy5TbD1mdW5jdGlvbiBlaGUoYSxiKXtyZXR1cm4gaWdlKHRoaXMsYSxiKX07Xy5UbD1mdW5jdGlvbiBmaGUoYSl7cmV0dXJuIFJEKFFIZCh0aGlzLGEpLDc2KS5MaygpfTtfLlVsPWZ1bmN0aW9uIGdoZShhKXtyZXR1cm4gUkQoUUhkKHRoaXMsYSksNzYpLm1kKCl9O18uVmw9ZnVuY3Rpb24gaGhlKCl7cmV0dXJuIHRoaXMuYn07Xy5Naj1mdW5jdGlvbiBpaGUoKXtyZXR1cm4gdHJ1ZX07Xy5Uaj1mdW5jdGlvbiBqaGUoKXtyZXR1cm4gdHJ1ZX07Xy5XbD1mdW5jdGlvbiBtaGUoYSl7cmV0dXJuICFwZ2UodGhpcyxhKX07Xy5haj1mdW5jdGlvbiBvaGUoYSl7cmV0dXJuICRDKEliYixQS2UsMzQzLGEsMCwxKX07Xy5wbD1mdW5jdGlvbiBxaGUoYSl7cmV0dXJuIEFnZSh0aGlzLGEpfTtfLldiPWZ1bmN0aW9uIHNoZShhKXtEZ2UodGhpcyxhKX07Xy5YbD1mdW5jdGlvbiB0aGUoYSxiKXtGZ2UodGhpcyxhLGIpfTtfLllsPWZ1bmN0aW9uIHVoZShhKXtyZXR1cm4gR2dlKHRoaXMsYSl9O18uWmw9ZnVuY3Rpb24geWhlKGEpe1NnZSh0aGlzLGEpfTt2YXIgT2FiPXNmYihaSmUsJ0Jhc2ljRmVhdHVyZU1hcCcsNzgpO2ZlYigxOTYwLDEsSnZlKTtfLk5iPWZ1bmN0aW9uIEZoZShhKXtadGIodGhpcyxhKX07Xy5SYj1mdW5jdGlvbiBFaGUoYil7aWYodGhpcy5nPT0tMSl7dGhyb3cgQWRiKG5ldyBjZ2IpfUFoZSh0aGlzKTt0cnl7UGZlKHRoaXMuZSx0aGlzLmIsdGhpcy5hLGIpO3RoaXMuZD10aGlzLmUuajtEaGUodGhpcyl9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSw3Nykpe3Rocm93IEFkYihuZXcgSnJiKX1lbHNlIHRocm93IEFkYihhKX19O18uT2I9ZnVuY3Rpb24gR2hlKCl7cmV0dXJuIEJoZSh0aGlzKX07Xy5TYj1mdW5jdGlvbiBIaGUoKXtyZXR1cm4gQ2hlKHRoaXMpfTtfLlBiPWZ1bmN0aW9uIEloZSgpe3JldHVybiBEaGUodGhpcyl9O18uVGI9ZnVuY3Rpb24gSmhlKCl7cmV0dXJuIHRoaXMuYX07Xy5VYj1mdW5jdGlvbiBLaGUoKXt2YXIgYTtpZihDaGUodGhpcykpe0FoZSh0aGlzKTt0aGlzLmc9LS10aGlzLmE7aWYodGhpcy51bCgpKXthPUJnZSh0aGlzLmUsdGhpcy5iLHRoaXMuYyx0aGlzLmEsdGhpcy5qKTt0aGlzLmo9YX10aGlzLmk9MDtyZXR1cm4gdGhpcy5qfWVsc2V7dGhyb3cgQWRiKG5ldyBEdmIpfX07Xy5WYj1mdW5jdGlvbiBMaGUoKXtyZXR1cm4gdGhpcy5hLTF9O18uUWI9ZnVuY3Rpb24gTWhlKCl7aWYodGhpcy5nPT0tMSl7dGhyb3cgQWRiKG5ldyBjZ2IpfUFoZSh0aGlzKTt0cnl7eGdlKHRoaXMuZSx0aGlzLmIsdGhpcy5nKTt0aGlzLmQ9dGhpcy5lLmo7aWYodGhpcy5nPHRoaXMuYSl7LS10aGlzLmE7LS10aGlzLmN9LS10aGlzLmd9Y2F0Y2goYSl7YT16ZGIoYSk7aWYoWkQoYSw3Nykpe3Rocm93IEFkYihuZXcgSnJiKX1lbHNlIHRocm93IEFkYihhKX19O18udWw9ZnVuY3Rpb24gTmhlKCl7cmV0dXJuIGZhbHNlfTtfLldiPWZ1bmN0aW9uIE9oZShiKXtpZih0aGlzLmc9PS0xKXt0aHJvdyBBZGIobmV3IGNnYil9QWhlKHRoaXMpO3RyeXtFZ2UodGhpcy5lLHRoaXMuYix0aGlzLmcsYik7dGhpcy5kPXRoaXMuZS5qfWNhdGNoKGEpe2E9emRiKGEpO2lmKFpEKGEsNzcpKXt0aHJvdyBBZGIobmV3IEpyYil9ZWxzZSB0aHJvdyBBZGIoYSl9fTtfLmE9MDtfLmM9MDtfLmQ9MDtfLmY9ZmFsc2U7Xy5nPTA7Xy5pPTA7dmFyIExiYj1zZmIoWkplLCdGZWF0dXJlTWFwVXRpbC9CYXNpY0ZlYXR1cmVFSXRlcmF0b3InLDE5NjApO2ZlYig0MjAsMTk2MCxKdmUsUGhlKTtfLiRsPWZ1bmN0aW9uIFFoZSgpe3ZhciBhLGIsYztjPXRoaXMuZS5pO2E9UkQodGhpcy5lLmcsMTI0KTt3aGlsZSh0aGlzLmM8Yyl7Yj1hW3RoaXMuY107aWYodGhpcy5rLmFtKGIuTGsoKSkpe3RoaXMuaj10aGlzLmY/YjpiLm1kKCk7dGhpcy5pPTI7cmV0dXJuIHRydWV9Kyt0aGlzLmN9dGhpcy5pPTE7dGhpcy5nPS0xO3JldHVybiBmYWxzZX07Xy5fbD1mdW5jdGlvbiBSaGUoKXt2YXIgYSxiO2E9UkQodGhpcy5lLmcsMTI0KTt3aGlsZSgtLXRoaXMuYz49MCl7Yj1hW3RoaXMuY107aWYodGhpcy5rLmFtKGIuTGsoKSkpe3RoaXMuaj10aGlzLmY/YjpiLm1kKCk7dGhpcy5pPS0yO3JldHVybiB0cnVlfX10aGlzLmk9LTE7dGhpcy5nPS0xO3JldHVybiBmYWxzZX07dmFyIE1hYj1zZmIoWkplLCdCYXNpY0ZlYXR1cmVNYXAvRmVhdHVyZUVJdGVyYXRvcicsNDIwKTtmZWIoNjc2LDQyMCxKdmUsU2hlKTtfLnVsPWZ1bmN0aW9uIFRoZSgpe3JldHVybiB0cnVlfTt2YXIgTmFiPXNmYihaSmUsJ0Jhc2ljRmVhdHVyZU1hcC9SZXNvbHZpbmdGZWF0dXJlRUl0ZXJhdG9yJyw2NzYpO2ZlYig5NjgsNDk2LHVLZSxVaGUpO18ucGo9ZnVuY3Rpb24gVmhlKCl7cmV0dXJuIHRoaXN9O3ZhciBSYWI9c2ZiKFpKZSwnRUNvbnRlbnRzRUxpc3QvMScsOTY4KTtmZWIoOTY5LDQ5Nix1S2UsV2hlKTtfLnVsPWZ1bmN0aW9uIFhoZSgpe3JldHVybiBmYWxzZX07dmFyIFNhYj1zZmIoWkplLCdFQ29udGVudHNFTGlzdC8yJyw5NjkpO2ZlYig5NjcsMjg3LHZLZSxZaGUpO18ud2w9ZnVuY3Rpb24gWmhlKGEpe307Xy5PYj1mdW5jdGlvbiAkaGUoKXtyZXR1cm4gZmFsc2V9O18uU2I9ZnVuY3Rpb24gX2hlKCl7cmV0dXJuIGZhbHNlfTt2YXIgVGFiPXNmYihaSmUsJ0VDb250ZW50c0VMaXN0L0ZlYXR1cmVJdGVyYXRvckltcGwvMScsOTY3KTtmZWIoODQwLDU5MyxvS2UsYWllKTtfLk5pPWZ1bmN0aW9uIGJpZSgpe3RoaXMuYT10cnVlfTtfLlFqPWZ1bmN0aW9uIGNpZSgpe3JldHVybiB0aGlzLmF9O18uR2s9ZnVuY3Rpb24gZGllKCl7dmFyIGE7c0xkKHRoaXMpO2lmKE12ZCh0aGlzLmUpKXthPXRoaXMuYTt0aGlzLmE9ZmFsc2U7cXZkKHRoaXMuZSxuZXcgUTNkKHRoaXMuZSwyLHRoaXMuYyxhLGZhbHNlKSl9ZWxzZXt0aGlzLmE9ZmFsc2V9fTtfLmE9ZmFsc2U7dmFyIFhhYj1zZmIoWkplLCdFRGF0YVR5cGVFTGlzdC9VbnNldHRhYmxlJyw4NDApO2ZlYigxOTU4LDU5MyxvS2UsZWllKTtfLlNpPWZ1bmN0aW9uIGZpZSgpe3JldHVybiB0cnVlfTt2YXIgJGFiPXNmYihaSmUsJ0VEYXRhVHlwZVVuaXF1ZUVMaXN0JywxOTU4KTtmZWIoMTk1OSw4NDAsb0tlLGdpZSk7Xy5TaT1mdW5jdGlvbiBoaWUoKXtyZXR1cm4gdHJ1ZX07dmFyIFphYj1zZmIoWkplLCdFRGF0YVR5cGVVbmlxdWVFTGlzdC9VbnNldHRhYmxlJywxOTU5KTtmZWIoMTQ3LDgzLG9LZSxpaWUpO18ubmw9ZnVuY3Rpb24gamllKCl7cmV0dXJuIHRydWV9O18uV2k9ZnVuY3Rpb24ga2llKGEsYil7cmV0dXJuIGdaZCh0aGlzLGEsUkQoYiw1OCkpfTt2YXIgX2FiPXNmYihaSmUsJ0VPYmplY3RDb250YWlubWVudEVMaXN0L1Jlc29sdmluZycsMTQ3KTtmZWIoMTE4NCw1NTUsb0tlLGxpZSk7Xy5ubD1mdW5jdGlvbiBtaWUoKXtyZXR1cm4gdHJ1ZX07Xy5XaT1mdW5jdGlvbiBuaWUoYSxiKXtyZXR1cm4gZ1pkKHRoaXMsYSxSRChiLDU4KSl9O3ZhciBhYmI9c2ZiKFpKZSwnRU9iamVjdENvbnRhaW5tZW50RUxpc3QvVW5zZXR0YWJsZS9SZXNvbHZpbmcnLDExODQpO2ZlYig3NjYsMTQsb0tlLG9pZSk7Xy5OaT1mdW5jdGlvbiBwaWUoKXt0aGlzLmE9dHJ1ZX07Xy5Raj1mdW5jdGlvbiBxaWUoKXtyZXR1cm4gdGhpcy5hfTtfLkdrPWZ1bmN0aW9uIHJpZSgpe3ZhciBhO3NMZCh0aGlzKTtpZihNdmQodGhpcy5lKSl7YT10aGlzLmE7dGhpcy5hPWZhbHNlO3F2ZCh0aGlzLmUsbmV3IFEzZCh0aGlzLmUsMix0aGlzLmMsYSxmYWxzZSkpfWVsc2V7dGhpcy5hPWZhbHNlfX07Xy5hPWZhbHNlO3ZhciBmYmI9c2ZiKFpKZSwnRU9iamVjdENvbnRhaW5tZW50V2l0aEludmVyc2VFTGlzdC9VbnNldHRhYmxlJyw3NjYpO2ZlYigxMjIyLDc2NixvS2Usc2llKTtfLm5sPWZ1bmN0aW9uIHRpZSgpe3JldHVybiB0cnVlfTtfLldpPWZ1bmN0aW9uIHVpZShhLGIpe3JldHVybiBnWmQodGhpcyxhLFJEKGIsNTgpKX07dmFyIGViYj1zZmIoWkplLCdFT2JqZWN0Q29udGFpbm1lbnRXaXRoSW52ZXJzZUVMaXN0L1Vuc2V0dGFibGUvUmVzb2x2aW5nJywxMjIyKTtmZWIoNzU3LDUwNSxvS2UsdmllKTtfLk5pPWZ1bmN0aW9uIHdpZSgpe3RoaXMuYT10cnVlfTtfLlFqPWZ1bmN0aW9uIHhpZSgpe3JldHVybiB0aGlzLmF9O18uR2s9ZnVuY3Rpb24geWllKCl7dmFyIGE7c0xkKHRoaXMpO2lmKE12ZCh0aGlzLmUpKXthPXRoaXMuYTt0aGlzLmE9ZmFsc2U7cXZkKHRoaXMuZSxuZXcgUTNkKHRoaXMuZSwyLHRoaXMuYyxhLGZhbHNlKSl9ZWxzZXt0aGlzLmE9ZmFsc2V9fTtfLmE9ZmFsc2U7dmFyIGhiYj1zZmIoWkplLCdFT2JqZWN0RUxpc3QvVW5zZXR0YWJsZScsNzU3KTtmZWIoMzM4LDUwNSxvS2UsemllKTtfLm5sPWZ1bmN0aW9uIEFpZSgpe3JldHVybiB0cnVlfTtfLldpPWZ1bmN0aW9uIEJpZShhLGIpe3JldHVybiBnWmQodGhpcyxhLFJEKGIsNTgpKX07dmFyIGtiYj1zZmIoWkplLCdFT2JqZWN0UmVzb2x2aW5nRUxpc3QnLDMzOCk7ZmViKDE4NDQsNzU3LG9LZSxDaWUpO18ubmw9ZnVuY3Rpb24gRGllKCl7cmV0dXJuIHRydWV9O18uV2k9ZnVuY3Rpb24gRWllKGEsYil7cmV0dXJuIGdaZCh0aGlzLGEsUkQoYiw1OCkpfTt2YXIgamJiPXNmYihaSmUsJ0VPYmplY3RSZXNvbHZpbmdFTGlzdC9VbnNldHRhYmxlJywxODQ0KTtmZWIoMTUyNywxLHt9LEhpZSk7dmFyIEZpZTt2YXIgbGJiPXNmYihaSmUsJ0VPYmplY3RWYWxpZGF0b3InLDE1MjcpO2ZlYig1NTksNTA1LG9LZSxJaWUpO18uaWw9ZnVuY3Rpb24gSmllKCl7cmV0dXJuIHRoaXMuZH07Xy5qbD1mdW5jdGlvbiBLaWUoKXtyZXR1cm4gdGhpcy5ifTtfLk1qPWZ1bmN0aW9uIExpZSgpe3JldHVybiB0cnVlfTtfLm1sPWZ1bmN0aW9uIE1pZSgpe3JldHVybiB0cnVlfTtfLmI9MDt2YXIgcGJiPXNmYihaSmUsJ0VPYmplY3RXaXRoSW52ZXJzZUVMaXN0Jyw1NTkpO2ZlYigxMjI1LDU1OSxvS2UsTmllKTtfLmxsPWZ1bmN0aW9uIE9pZSgpe3JldHVybiB0cnVlfTt2YXIgbWJiPXNmYihaSmUsJ0VPYmplY3RXaXRoSW52ZXJzZUVMaXN0L01hbnlJbnZlcnNlJywxMjI1KTtmZWIoNjM1LDU1OSxvS2UsUGllKTtfLk5pPWZ1bmN0aW9uIFFpZSgpe3RoaXMuYT10cnVlfTtfLlFqPWZ1bmN0aW9uIFJpZSgpe3JldHVybiB0aGlzLmF9O18uR2s9ZnVuY3Rpb24gU2llKCl7dmFyIGE7c0xkKHRoaXMpO2lmKE12ZCh0aGlzLmUpKXthPXRoaXMuYTt0aGlzLmE9ZmFsc2U7cXZkKHRoaXMuZSxuZXcgUTNkKHRoaXMuZSwyLHRoaXMuYyxhLGZhbHNlKSl9ZWxzZXt0aGlzLmE9ZmFsc2V9fTtfLmE9ZmFsc2U7dmFyIG9iYj1zZmIoWkplLCdFT2JqZWN0V2l0aEludmVyc2VFTGlzdC9VbnNldHRhYmxlJyw2MzUpO2ZlYigxMjI0LDYzNSxvS2UsVGllKTtfLmxsPWZ1bmN0aW9uIFVpZSgpe3JldHVybiB0cnVlfTt2YXIgbmJiPXNmYihaSmUsJ0VPYmplY3RXaXRoSW52ZXJzZUVMaXN0L1Vuc2V0dGFibGUvTWFueUludmVyc2UnLDEyMjQpO2ZlYig3NjcsNTU5LG9LZSxWaWUpO18ubmw9ZnVuY3Rpb24gV2llKCl7cmV0dXJuIHRydWV9O18uV2k9ZnVuY3Rpb24gWGllKGEsYil7cmV0dXJuIGdaZCh0aGlzLGEsUkQoYiw1OCkpfTt2YXIgdGJiPXNmYihaSmUsJ0VPYmplY3RXaXRoSW52ZXJzZVJlc29sdmluZ0VMaXN0Jyw3NjcpO2ZlYigzMiw3Njcsb0tlLFlpZSk7Xy5sbD1mdW5jdGlvbiBaaWUoKXtyZXR1cm4gdHJ1ZX07dmFyIHFiYj1zZmIoWkplLCdFT2JqZWN0V2l0aEludmVyc2VSZXNvbHZpbmdFTGlzdC9NYW55SW52ZXJzZScsMzIpO2ZlYig3NjgsNjM1LG9LZSwkaWUpO18ubmw9ZnVuY3Rpb24gX2llKCl7cmV0dXJuIHRydWV9O18uV2k9ZnVuY3Rpb24gYWplKGEsYil7cmV0dXJuIGdaZCh0aGlzLGEsUkQoYiw1OCkpfTt2YXIgc2JiPXNmYihaSmUsJ0VPYmplY3RXaXRoSW52ZXJzZVJlc29sdmluZ0VMaXN0L1Vuc2V0dGFibGUnLDc2OCk7ZmViKDEyMjMsNzY4LG9LZSxiamUpO18ubGw9ZnVuY3Rpb24gY2plKCl7cmV0dXJuIHRydWV9O3ZhciByYmI9c2ZiKFpKZSwnRU9iamVjdFdpdGhJbnZlcnNlUmVzb2x2aW5nRUxpc3QvVW5zZXR0YWJsZS9NYW55SW52ZXJzZScsMTIyMyk7ZmViKDExODUsNjMyLG9LZSk7Xy5MaT1mdW5jdGlvbiBkamUoKXtyZXR1cm4gKHRoaXMuYiYxNzkyKT09MH07Xy5OaT1mdW5jdGlvbiBlamUoKXt0aGlzLmJ8PTF9O18ua2w9ZnVuY3Rpb24gZmplKCl7cmV0dXJuICh0aGlzLmImNCkhPTB9O18uTWo9ZnVuY3Rpb24gZ2plKCl7cmV0dXJuICh0aGlzLmImNDApIT0wfTtfLmxsPWZ1bmN0aW9uIGhqZSgpe3JldHVybiAodGhpcy5iJjE2KSE9MH07Xy5tbD1mdW5jdGlvbiBpamUoKXtyZXR1cm4gKHRoaXMuYiY4KSE9MH07Xy5ubD1mdW5jdGlvbiBqamUoKXtyZXR1cm4gKHRoaXMuYiZjS2UpIT0wfTtfLmFsPWZ1bmN0aW9uIGtqZSgpe3JldHVybiAodGhpcy5iJjMyKSE9MH07Xy5vbD1mdW5jdGlvbiBsamUoKXtyZXR1cm4gKHRoaXMuYiZnd2UpIT0wfTtfLmZrPWZ1bmN0aW9uIG1qZShhKXtyZXR1cm4gIXRoaXMuZD90aGlzLkxrKCkuSGsoKS5mayhhKTpRUmQodGhpcy5kLGEpfTtfLlFqPWZ1bmN0aW9uIG5qZSgpe3JldHVybiAodGhpcy5iJjIpIT0wPyh0aGlzLmImMSkhPTA6dGhpcy5pIT0wfTtfLlNpPWZ1bmN0aW9uIG9qZSgpe3JldHVybiAodGhpcy5iJjEyOCkhPTB9O18uR2s9ZnVuY3Rpb24gcWplKCl7dmFyIGE7c0xkKHRoaXMpO2lmKCh0aGlzLmImMikhPTApe2lmKE12ZCh0aGlzLmUpKXthPSh0aGlzLmImMSkhPTA7dGhpcy5iJj0tMjtlWmQodGhpcyxuZXcgUTNkKHRoaXMuZSwyLEJZZCh0aGlzLmUuRGgoKSx0aGlzLkxrKCkpLGEsZmFsc2UpKX1lbHNle3RoaXMuYiY9LTJ9fX07Xy5ZaT1mdW5jdGlvbiByamUoKXtyZXR1cm4gKHRoaXMuYiYxNTM2KT09MH07Xy5iPTA7dmFyIHZiYj1zZmIoWkplLCdFY29yZUVMaXN0L0dlbmVyaWMnLDExODUpO2ZlYigxMTg2LDExODUsb0tlLHNqZSk7Xy5Maz1mdW5jdGlvbiB0amUoKXtyZXR1cm4gdGhpcy5hfTt2YXIgdWJiPXNmYihaSmUsJ0Vjb3JlRUxpc3QvRHluYW1pYycsMTE4Nik7ZmViKDc2NSw2NixQSWUsdWplKTtfLmFqPWZ1bmN0aW9uIHZqZShhKXtyZXR1cm4gSU1kKHRoaXMuYS5hLGEpfTt2YXIgemJiPXNmYihaSmUsJ0Vjb3JlRU1hcC8xJyw3NjUpO2ZlYig3NjQsODMsb0tlLHdqZSk7Xy5NaT1mdW5jdGlvbiB4amUoYSxiKXtVTmQodGhpcy5iLFJEKGIsMTM2KSl9O18uT2k9ZnVuY3Rpb24geWplKGEsYil7VE5kKHRoaXMuYil9O18uUGk9ZnVuY3Rpb24gemplKGEsYixjKXt2YXIgZDsrKyhkPXRoaXMuYixSRChiLDEzNiksZCkuZX07Xy5RaT1mdW5jdGlvbiBBamUoYSxiKXtWTmQodGhpcy5iLFJEKGIsMTM2KSl9O18uUmk9ZnVuY3Rpb24gQmplKGEsYixjKXtWTmQodGhpcy5iLFJEKGMsMTM2KSk7ZEUoYyk9PT1kRShiKSYmUkQoYywxMzYpLkNpKGFPZChSRChiLDEzNikubGQoKSkpO1VOZCh0aGlzLmIsUkQoYiwxMzYpKX07dmFyIEFiYj1zZmIoWkplLCdFY29yZUVNYXAvRGVsZWdhdGVFT2JqZWN0Q29udGFpbm1lbnRFTGlzdCcsNzY0KTtmZWIoMTIyMCwxNDEsX0plLENqZSk7dmFyIENiYj1zZmIoWkplLCdFY29yZUVNYXAvVW5zZXR0YWJsZScsMTIyMCk7ZmViKDEyMjEsNzY0LG9LZSxEamUpO18uTmk9ZnVuY3Rpb24gRWplKCl7dGhpcy5hPXRydWV9O18uUWo9ZnVuY3Rpb24gRmplKCl7cmV0dXJuIHRoaXMuYX07Xy5Haz1mdW5jdGlvbiBHamUoKXt2YXIgYTtzTGQodGhpcyk7aWYoTXZkKHRoaXMuZSkpe2E9dGhpcy5hO3RoaXMuYT1mYWxzZTtxdmQodGhpcy5lLG5ldyBRM2QodGhpcy5lLDIsdGhpcy5jLGEsZmFsc2UpKX1lbHNle3RoaXMuYT1mYWxzZX19O18uYT1mYWxzZTt2YXIgQmJiPXNmYihaSmUsJ0Vjb3JlRU1hcC9VbnNldHRhYmxlL1Vuc2V0dGFibGVEZWxlZ2F0ZUVPYmplY3RDb250YWlubWVudEVMaXN0JywxMjIxKTtmZWIoMTE4OSwyMTUsSHhlLFpqZSk7Xy5hPWZhbHNlO18uYj1mYWxzZTt2YXIgRmJiPXNmYihaSmUsJ0Vjb3JlVXRpbC9Db3BpZXInLDExODkpO2ZlYig3NTksMSxBdmUsX2plKTtfLk5iPWZ1bmN0aW9uIGFrZShhKXtadGIodGhpcyxhKX07Xy5PYj1mdW5jdGlvbiBia2UoKXtyZXR1cm4gJGplKHRoaXMpfTtfLlBiPWZ1bmN0aW9uIGNrZSgpe3ZhciBhOyRqZSh0aGlzKTthPXRoaXMuYjt0aGlzLmI9bnVsbDtyZXR1cm4gYX07Xy5RYj1mdW5jdGlvbiBka2UoKXt0aGlzLmEuUWIoKX07dmFyIEdiYj1zZmIoWkplLCdFY29yZVV0aWwvUHJvcGVyQ29udGVudEl0ZXJhdG9yJyw3NTkpO2ZlYigxNTI4LDE1Mjcse30sZ2tlKTt2YXIgZWtlO3ZhciBIYmI9c2ZiKFpKZSwnRWNvcmVWYWxpZGF0b3InLDE1MjgpO3ZhciBta2U7dmFyIFNiYj11ZmIoWkplLCdGZWF0dXJlTWFwVXRpbC9WYWxpZGF0b3InKTtmZWIoMTI5NSwxLHsyMDQxOjF9LHJrZSk7Xy5hbT1mdW5jdGlvbiBza2UoYSl7cmV0dXJuIHRydWV9O3ZhciBLYmI9c2ZiKFpKZSwnRmVhdHVyZU1hcFV0aWwvMScsMTI5NSk7ZmViKDc3MywxLHsyMDQxOjF9LHdrZSk7Xy5hbT1mdW5jdGlvbiB4a2UoYSl7dmFyIGI7aWYodGhpcy5jPT1hKXJldHVybiB0cnVlO2I9VEQoV2piKHRoaXMuYSxhKSk7aWYoYj09bnVsbCl7aWYodmtlKHRoaXMsYSkpe3lrZSh0aGlzLmEsYSwoR2ViKCksRmViKSk7cmV0dXJuIHRydWV9ZWxzZXt5a2UodGhpcy5hLGEsKEdlYigpLEVlYikpO3JldHVybiBmYWxzZX19ZWxzZXtyZXR1cm4gYj09KEdlYigpLEZlYil9fTtfLmU9ZmFsc2U7dmFyIHRrZTt2YXIgTmJiPXNmYihaSmUsJ0ZlYXR1cmVNYXBVdGlsL0Jhc2ljVmFsaWRhdG9yJyw3NzMpO2ZlYig3NzQsNDUsSHhlLHprZSk7dmFyIE1iYj1zZmIoWkplLCdGZWF0dXJlTWFwVXRpbC9CYXNpY1ZhbGlkYXRvci9DYWNoZScsNzc0KTtmZWIoNTA5LDU2LHsyMDoxLDMxOjEsNTY6MSwxNjoxLDE1OjEsNjE6MSw3OToxLDcxOjEsOTc6MX0sRWtlKTtfLmJkPWZ1bmN0aW9uIEZrZShhLGIpe1BmZSh0aGlzLmMsdGhpcy5iLGEsYil9O18uRmM9ZnVuY3Rpb24gR2tlKGEpe3JldHVybiBRZmUodGhpcy5jLHRoaXMuYixhKX07Xy5jZD1mdW5jdGlvbiBIa2UoYSxiKXtyZXR1cm4gU2ZlKHRoaXMuYyx0aGlzLmIsYSxiKX07Xy5HYz1mdW5jdGlvbiBJa2UoYSl7cmV0dXJuIEFrZSh0aGlzLGEpfTtfLkdpPWZ1bmN0aW9uIEprZShhLGIpe1VmZSh0aGlzLmMsdGhpcy5iLGEsYil9O18uV2s9ZnVuY3Rpb24gS2tlKGEsYil7cmV0dXJuIFhmZSh0aGlzLmMsdGhpcy5iLGEsYil9O18uJGk9ZnVuY3Rpb24gTGtlKGEpe3JldHVybiBoZ2UodGhpcy5jLHRoaXMuYixhLGZhbHNlKX07Xy5JaT1mdW5jdGlvbiBNa2UoKXtyZXR1cm4gWWZlKHRoaXMuYyx0aGlzLmIpfTtfLkppPWZ1bmN0aW9uIE5rZSgpe3JldHVybiBaZmUodGhpcy5jLHRoaXMuYil9O18uS2k9ZnVuY3Rpb24gT2tlKGEpe3JldHVybiAkZmUodGhpcy5jLHRoaXMuYixhKX07Xy5Yaz1mdW5jdGlvbiBQa2UoYSxiKXtyZXR1cm4gQmtlKHRoaXMsYSxiKX07Xy4kYj1mdW5jdGlvbiBRa2UoKXtDa2UodGhpcyl9O18uSGM9ZnVuY3Rpb24gUmtlKGEpe3JldHVybiBjZ2UodGhpcy5jLHRoaXMuYixhKX07Xy5JYz1mdW5jdGlvbiBTa2UoYSl7cmV0dXJuIGVnZSh0aGlzLmMsdGhpcy5iLGEpfTtfLlhiPWZ1bmN0aW9uIFRrZShhKXtyZXR1cm4gaGdlKHRoaXMuYyx0aGlzLmIsYSx0cnVlKX07Xy5Gaz1mdW5jdGlvbiBVa2UoYSl7cmV0dXJuIHRoaXN9O18uZGQ9ZnVuY3Rpb24gVmtlKGEpe3JldHVybiBqZ2UodGhpcy5jLHRoaXMuYixhKX07Xy5kYz1mdW5jdGlvbiBXa2UoKXtyZXR1cm4gRGtlKHRoaXMpfTtfLlFqPWZ1bmN0aW9uIFhrZSgpe3JldHVybiAhcGdlKHRoaXMuYyx0aGlzLmIpfTtfLktjPWZ1bmN0aW9uIFlrZSgpe3JldHVybiBxZ2UodGhpcy5jLHRoaXMuYil9O18uZWQ9ZnVuY3Rpb24gWmtlKCl7cmV0dXJuIHNnZSh0aGlzLmMsdGhpcy5iKX07Xy5mZD1mdW5jdGlvbiAka2UoYSl7cmV0dXJuIHRnZSh0aGlzLmMsdGhpcy5iLGEpfTtfLlRpPWZ1bmN0aW9uIF9rZShhLGIpe3JldHVybiB2Z2UodGhpcy5jLHRoaXMuYixhLGIpfTtfLlVpPWZ1bmN0aW9uIGFsZShhLGIpe3dnZSh0aGlzLmMsdGhpcy5iLGEsYil9O18uZ2Q9ZnVuY3Rpb24gYmxlKGEpe3JldHVybiB4Z2UodGhpcy5jLHRoaXMuYixhKX07Xy5NYz1mdW5jdGlvbiBjbGUoYSl7cmV0dXJuIHlnZSh0aGlzLmMsdGhpcy5iLGEpfTtfLmhkPWZ1bmN0aW9uIGRsZShhLGIpe3JldHVybiBFZ2UodGhpcy5jLHRoaXMuYixhLGIpfTtfLldiPWZ1bmN0aW9uIGVsZShhKXtiZ2UodGhpcy5jLHRoaXMuYik7QWtlKHRoaXMsUkQoYSwxNSkpfTtfLmdjPWZ1bmN0aW9uIGZsZSgpe3JldHVybiBOZ2UodGhpcy5jLHRoaXMuYil9O18uUGM9ZnVuY3Rpb24gZ2xlKCl7cmV0dXJuIE9nZSh0aGlzLmMsdGhpcy5iKX07Xy5RYz1mdW5jdGlvbiBobGUoYSl7cmV0dXJuIFFnZSh0aGlzLmMsdGhpcy5iLGEpfTtfLkliPWZ1bmN0aW9uIGlsZSgpe3ZhciBhLGI7Yj1uZXcgUWhiO2IuYSs9J1snO2ZvcihhPVlmZSh0aGlzLmMsdGhpcy5iKTtCaGUoYSk7KXtOaGIoYixHaGIoRGhlKGEpKSk7QmhlKGEpJiYoYi5hKz1wdmUsYil9Yi5hKz0nXSc7cmV0dXJuIGIuYX07Xy5Haz1mdW5jdGlvbiBqbGUoKXtiZ2UodGhpcy5jLHRoaXMuYil9O3ZhciBPYmI9c2ZiKFpKZSwnRmVhdHVyZU1hcFV0aWwvRmVhdHVyZUVMaXN0Jyw1MDkpO2ZlYig2NDQsMzksR0plLGxsZSk7Xy5oaj1mdW5jdGlvbiBtbGUoYSl7cmV0dXJuIGtsZSh0aGlzLGEpfTtfLm1qPWZ1bmN0aW9uIG5sZShhKXt2YXIgYixjLGQsZSxmLGcsaDtzd2l0Y2godGhpcy5kKXtjYXNlIDE6Y2FzZSAyOntmPWEuamooKTtpZihkRShmKT09PWRFKHRoaXMuYykmJmtsZSh0aGlzLG51bGwpPT1hLmhqKG51bGwpKXt0aGlzLmc9YS5paigpO2EuZ2ooKT09MSYmKHRoaXMuZD0xKTtyZXR1cm4gdHJ1ZX1icmVha31jYXNlIDM6e2U9YS5naigpO3N3aXRjaChlKXtjYXNlIDM6e2Y9YS5qaigpO2lmKGRFKGYpPT09ZEUodGhpcy5jKSYma2xlKHRoaXMsbnVsbCk9PWEuaGoobnVsbCkpe3RoaXMuZD01O2I9bmV3IFpIZCgyKTtXR2QoYix0aGlzLmcpO1dHZChiLGEuaWooKSk7dGhpcy5nPWI7cmV0dXJuIHRydWV9YnJlYWt9fWJyZWFrfWNhc2UgNTp7ZT1hLmdqKCk7c3dpdGNoKGUpe2Nhc2UgMzp7Zj1hLmpqKCk7aWYoZEUoZik9PT1kRSh0aGlzLmMpJiZrbGUodGhpcyxudWxsKT09YS5oaihudWxsKSl7Yz1SRCh0aGlzLmcsMTYpO2MuRmMoYS5paigpKTtyZXR1cm4gdHJ1ZX1icmVha319YnJlYWt9Y2FzZSA0OntlPWEuZ2ooKTtzd2l0Y2goZSl7Y2FzZSAzOntmPWEuamooKTtpZihkRShmKT09PWRFKHRoaXMuYykmJmtsZSh0aGlzLG51bGwpPT1hLmhqKG51bGwpKXt0aGlzLmQ9MTt0aGlzLmc9YS5paigpO3JldHVybiB0cnVlfWJyZWFrfWNhc2UgNDp7Zj1hLmpqKCk7aWYoZEUoZik9PT1kRSh0aGlzLmMpJiZrbGUodGhpcyxudWxsKT09YS5oaihudWxsKSl7dGhpcy5kPTY7aD1uZXcgWkhkKDIpO1dHZChoLHRoaXMubik7V0dkKGgsYS5raigpKTt0aGlzLm49aDtnPWNEKFdDKGtFLDEpLFB3ZSwyOCwxNSxbdGhpcy5vLGEubGooKV0pO3RoaXMuZz1nO3JldHVybiB0cnVlfWJyZWFrfX1icmVha31jYXNlIDY6e2U9YS5naigpO3N3aXRjaChlKXtjYXNlIDQ6e2Y9YS5qaigpO2lmKGRFKGYpPT09ZEUodGhpcy5jKSYma2xlKHRoaXMsbnVsbCk9PWEuaGoobnVsbCkpe2M9UkQodGhpcy5uLDE2KTtjLkZjKGEua2ooKSk7Zz1SRCh0aGlzLmcsNTMpO2Q9JEMoa0UsUHdlLDI4LGcubGVuZ3RoKzEsMTUsMSk7aGliKGcsMCxkLDAsZy5sZW5ndGgpO2RbZy5sZW5ndGhdPWEubGooKTt0aGlzLmc9ZDtyZXR1cm4gdHJ1ZX1icmVha319YnJlYWt9fXJldHVybiBmYWxzZX07dmFyIFBiYj1zZmIoWkplLCdGZWF0dXJlTWFwVXRpbC9GZWF0dXJlRU5vdGlmaWNhdGlvbkltcGwnLDY0NCk7ZmViKDU2NCw1MDksezIwOjEsMzE6MSw1NjoxLDE2OjEsMTU6MSw2MToxLDc5OjEsMTYwOjEsMjIwOjEsMjAzNjoxLDcxOjEsOTc6MX0sb2xlKTtfLk9sPWZ1bmN0aW9uIHBsZShhLGIpe3JldHVybiBRZmUodGhpcy5jLGEsYil9O18uUGw9ZnVuY3Rpb24gcWxlKGEsYixjKXtyZXR1cm4gWGZlKHRoaXMuYyxhLGIsYyl9O18uUWw9ZnVuY3Rpb24gcmxlKGEsYixjKXtyZXR1cm4gYWdlKHRoaXMuYyxhLGIsYyl9O18uUmw9ZnVuY3Rpb24gc2xlKCl7cmV0dXJuIHRoaXN9O18uU2w9ZnVuY3Rpb24gdGxlKGEsYil7cmV0dXJuIGlnZSh0aGlzLmMsYSxiKX07Xy5UbD1mdW5jdGlvbiB1bGUoYSl7cmV0dXJuIFJEKGhnZSh0aGlzLmMsdGhpcy5iLGEsZmFsc2UpLDc2KS5MaygpfTtfLlVsPWZ1bmN0aW9uIHZsZShhKXtyZXR1cm4gUkQoaGdlKHRoaXMuYyx0aGlzLmIsYSxmYWxzZSksNzYpLm1kKCl9O18uVmw9ZnVuY3Rpb24gd2xlKCl7cmV0dXJuIHRoaXMuYX07Xy5XbD1mdW5jdGlvbiB4bGUoYSl7cmV0dXJuICFwZ2UodGhpcy5jLGEpfTtfLlhsPWZ1bmN0aW9uIHlsZShhLGIpe0ZnZSh0aGlzLmMsYSxiKX07Xy5ZbD1mdW5jdGlvbiB6bGUoYSl7cmV0dXJuIEdnZSh0aGlzLmMsYSl9O18uWmw9ZnVuY3Rpb24gQWxlKGEpe1NnZSh0aGlzLmMsYSl9O3ZhciBRYmI9c2ZiKFpKZSwnRmVhdHVyZU1hcFV0aWwvRmVhdHVyZUZlYXR1cmVNYXAnLDU2NCk7ZmViKDEyOTQsMSwkSmUsQmxlKTtfLkZrPWZ1bmN0aW9uIENsZShhKXtyZXR1cm4gaGdlKHRoaXMuYix0aGlzLmEsLTEsYSl9O18uUWo9ZnVuY3Rpb24gRGxlKCl7cmV0dXJuICFwZ2UodGhpcy5iLHRoaXMuYSl9O18uV2I9ZnVuY3Rpb24gRWxlKGEpe0ZnZSh0aGlzLmIsdGhpcy5hLGEpfTtfLkdrPWZ1bmN0aW9uIEZsZSgpe2JnZSh0aGlzLmIsdGhpcy5hKX07dmFyIFJiYj1zZmIoWkplLCdGZWF0dXJlTWFwVXRpbC9GZWF0dXJlVmFsdWUnLDEyOTQpO3ZhciBHbGUsSGxlLElsZSxKbGUsS2xlO3ZhciBWYmI9dWZiKGhMZSwnQW55VHlwZScpO2ZlYig2ODAsNjMsc3dlLE1sZSk7dmFyIFdiYj1zZmIoaExlLCdJbnZhbGlkRGF0YXR5cGVWYWx1ZUV4Y2VwdGlvbicsNjgwKTt2YXIgWGJiPXVmYihoTGUsaUxlKTt2YXIgWWJiPXVmYihoTGUsakxlKTt2YXIgWmJiPXVmYihoTGUsa0xlKTt2YXIgTmxlO3ZhciBQbGU7dmFyIFJsZSxTbGUsVGxlLFVsZSxWbGUsV2xlLFhsZSxZbGUsWmxlLCRsZSxfbGUsYW1lLGJtZSxjbWUsZG1lLGVtZSxmbWUsZ21lLGhtZSxpbWUsam1lLGttZSxsbWUsbW1lO2ZlYig4NDQsNTE2LHsxMTA6MSw5NDoxLDkzOjEsNTg6MSw1NDoxLDk5OjEsODU3OjF9LG9tZSk7Xy5MaD1mdW5jdGlvbiBwbWUoYSxiLGMpe3N3aXRjaChhKXtjYXNlIDA6aWYoYylyZXR1cm4gIXRoaXMuYyYmKHRoaXMuYz1uZXcgVWdlKHRoaXMsMCkpLHRoaXMuYztyZXR1cm4gIXRoaXMuYyYmKHRoaXMuYz1uZXcgVWdlKHRoaXMsMCkpLHRoaXMuYy5iO2Nhc2UgMTppZihjKXJldHVybiAhdGhpcy5jJiYodGhpcy5jPW5ldyBVZ2UodGhpcywwKSksUkQocmdlKHRoaXMuYywobm1lKCksU2xlKSksMTYwKTtyZXR1cm4gKCF0aGlzLmMmJih0aGlzLmM9bmV3IFVnZSh0aGlzLDApKSxSRChSRChyZ2UodGhpcy5jLChubWUoKSxTbGUpKSwxNjApLDIyMCkpLlZsKCk7Y2FzZSAyOmlmKGMpcmV0dXJuICF0aGlzLmImJih0aGlzLmI9bmV3IFVnZSh0aGlzLDIpKSx0aGlzLmI7cmV0dXJuICF0aGlzLmImJih0aGlzLmI9bmV3IFVnZSh0aGlzLDIpKSx0aGlzLmIuYjt9cmV0dXJuIHp2ZCh0aGlzLGEtQVlkKHRoaXMuaWkoKSksdllkKCh0aGlzLmomMik9PTA/dGhpcy5paSgpOighdGhpcy5rJiYodGhpcy5rPW5ldyBmVWQpLHRoaXMuaykuTmsoKSxhKSxiLGMpfTtfLlVoPWZ1bmN0aW9uIHFtZShhLGIsYyl7dmFyIGQ7c3dpdGNoKGIpe2Nhc2UgMDpyZXR1cm4gIXRoaXMuYyYmKHRoaXMuYz1uZXcgVWdlKHRoaXMsMCkpLF9mZSh0aGlzLmMsYSxjKTtjYXNlIDE6cmV0dXJuICghdGhpcy5jJiYodGhpcy5jPW5ldyBVZ2UodGhpcywwKSksUkQoUkQocmdlKHRoaXMuYywobm1lKCksU2xlKSksMTYwKSw3MSkpLlhrKGEsYyk7Y2FzZSAyOnJldHVybiAhdGhpcy5iJiYodGhpcy5iPW5ldyBVZ2UodGhpcywyKSksX2ZlKHRoaXMuYixhLGMpO31yZXR1cm4gZD1SRCh2WWQoKHRoaXMuaiYyKT09MD90aGlzLmlpKCk6KCF0aGlzLmsmJih0aGlzLms9bmV3IGZVZCksdGhpcy5rKS5OaygpLGIpLDY5KSxkLndrKCkuQWsodGhpcyxZdmQodGhpcyksYi1BWWQodGhpcy5paSgpKSxhLGMpfTtfLldoPWZ1bmN0aW9uIHJtZShhKXtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiAhIXRoaXMuYyYmdGhpcy5jLmkhPTA7Y2FzZSAxOnJldHVybiAhKCF0aGlzLmMmJih0aGlzLmM9bmV3IFVnZSh0aGlzLDApKSxSRChyZ2UodGhpcy5jLChubWUoKSxTbGUpKSwxNjApKS5kYygpO2Nhc2UgMjpyZXR1cm4gISF0aGlzLmImJnRoaXMuYi5pIT0wO31yZXR1cm4gQXZkKHRoaXMsYS1BWWQodGhpcy5paSgpKSx2WWQoKHRoaXMuaiYyKT09MD90aGlzLmlpKCk6KCF0aGlzLmsmJih0aGlzLms9bmV3IGZVZCksdGhpcy5rKS5OaygpLGEpKX07Xy5iaT1mdW5jdGlvbiBzbWUoYSxiKXtzd2l0Y2goYSl7Y2FzZSAwOiF0aGlzLmMmJih0aGlzLmM9bmV3IFVnZSh0aGlzLDApKTtEZ2UodGhpcy5jLGIpO3JldHVybjtjYXNlIDE6KCF0aGlzLmMmJih0aGlzLmM9bmV3IFVnZSh0aGlzLDApKSxSRChSRChyZ2UodGhpcy5jLChubWUoKSxTbGUpKSwxNjApLDIyMCkpLldiKGIpO3JldHVybjtjYXNlIDI6IXRoaXMuYiYmKHRoaXMuYj1uZXcgVWdlKHRoaXMsMikpO0RnZSh0aGlzLmIsYik7cmV0dXJuO31CdmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgodGhpcy5qJjIpPT0wP3RoaXMuaWkoKTooIXRoaXMuayYmKHRoaXMuaz1uZXcgZlVkKSx0aGlzLmspLk5rKCksYSksYil9O18uaWk9ZnVuY3Rpb24gdG1lKCl7cmV0dXJuIG5tZSgpLFJsZX07Xy5raT1mdW5jdGlvbiB1bWUoYSl7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5jJiYodGhpcy5jPW5ldyBVZ2UodGhpcywwKSk7c0xkKHRoaXMuYyk7cmV0dXJuO2Nhc2UgMTooIXRoaXMuYyYmKHRoaXMuYz1uZXcgVWdlKHRoaXMsMCkpLFJEKHJnZSh0aGlzLmMsKG5tZSgpLFNsZSkpLDE2MCkpLiRiKCk7cmV0dXJuO2Nhc2UgMjohdGhpcy5iJiYodGhpcy5iPW5ldyBVZ2UodGhpcywyKSk7c0xkKHRoaXMuYik7cmV0dXJuO31DdmQodGhpcyxhLUFZZCh0aGlzLmlpKCkpLHZZZCgodGhpcy5qJjIpPT0wP3RoaXMuaWkoKTooIXRoaXMuayYmKHRoaXMuaz1uZXcgZlVkKSx0aGlzLmspLk5rKCksYSkpfTtfLkliPWZ1bmN0aW9uIHZtZSgpe3ZhciBhO2lmKCh0aGlzLmomNCkhPTApcmV0dXJuIGF3ZCh0aGlzKTthPW5ldyBTaGIoYXdkKHRoaXMpKTthLmErPScgKG1peGVkOiAnO01oYihhLHRoaXMuYyk7YS5hKz0nLCBhbnlBdHRyaWJ1dGU6ICc7TWhiKGEsdGhpcy5iKTthLmErPScpJztyZXR1cm4gYS5hfTt2YXIgJGJiPXNmYihsTGUsJ0FueVR5cGVJbXBsJyw4NDQpO2ZlYig2ODEsNTE2LHsxMTA6MSw5NDoxLDkzOjEsNTg6MSw1NDoxLDk5OjEsMjExOToxLDY4MToxfSx5bWUpO18uTGg9ZnVuY3Rpb24gem1lKGEsYixjKXtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiB0aGlzLmE7Y2FzZSAxOnJldHVybiB0aGlzLmI7fXJldHVybiB6dmQodGhpcyxhLUFZZCgobm1lKCksY21lKSksdllkKCh0aGlzLmomMik9PTA/Y21lOighdGhpcy5rJiYodGhpcy5rPW5ldyBmVWQpLHRoaXMuaykuTmsoKSxhKSxiLGMpfTtfLldoPWZ1bmN0aW9uIEFtZShhKXtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiB0aGlzLmEhPW51bGw7Y2FzZSAxOnJldHVybiB0aGlzLmIhPW51bGw7fXJldHVybiBBdmQodGhpcyxhLUFZZCgobm1lKCksY21lKSksdllkKCh0aGlzLmomMik9PTA/Y21lOighdGhpcy5rJiYodGhpcy5rPW5ldyBmVWQpLHRoaXMuaykuTmsoKSxhKSl9O18uYmk9ZnVuY3Rpb24gQm1lKGEsYil7c3dpdGNoKGEpe2Nhc2UgMDp3bWUodGhpcyxXRChiKSk7cmV0dXJuO2Nhc2UgMTp4bWUodGhpcyxXRChiKSk7cmV0dXJuO31CdmQodGhpcyxhLUFZZCgobm1lKCksY21lKSksdllkKCh0aGlzLmomMik9PTA/Y21lOighdGhpcy5rJiYodGhpcy5rPW5ldyBmVWQpLHRoaXMuaykuTmsoKSxhKSxiKX07Xy5paT1mdW5jdGlvbiBDbWUoKXtyZXR1cm4gbm1lKCksY21lfTtfLmtpPWZ1bmN0aW9uIERtZShhKXtzd2l0Y2goYSl7Y2FzZSAwOnRoaXMuYT1udWxsO3JldHVybjtjYXNlIDE6dGhpcy5iPW51bGw7cmV0dXJuO31DdmQodGhpcyxhLUFZZCgobm1lKCksY21lKSksdllkKCh0aGlzLmomMik9PTA/Y21lOighdGhpcy5rJiYodGhpcy5rPW5ldyBmVWQpLHRoaXMuaykuTmsoKSxhKSl9O18uSWI9ZnVuY3Rpb24gRW1lKCl7dmFyIGE7aWYoKHRoaXMuaiY0KSE9MClyZXR1cm4gYXdkKHRoaXMpO2E9bmV3IFNoYihhd2QodGhpcykpO2EuYSs9JyAoZGF0YTogJztOaGIoYSx0aGlzLmEpO2EuYSs9JywgdGFyZ2V0OiAnO05oYihhLHRoaXMuYik7YS5hKz0nKSc7cmV0dXJuIGEuYX07Xy5hPW51bGw7Xy5iPW51bGw7dmFyIF9iYj1zZmIobExlLCdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsJyw2ODEpO2ZlYig2ODIsODQ0LHsxMTA6MSw5NDoxLDkzOjEsNTg6MSw1NDoxLDk5OjEsODU3OjEsMjEyMDoxLDY4MjoxfSxIbWUpO18uTGg9ZnVuY3Rpb24gSW1lKGEsYixjKXtzd2l0Y2goYSl7Y2FzZSAwOmlmKGMpcmV0dXJuICF0aGlzLmMmJih0aGlzLmM9bmV3IFVnZSh0aGlzLDApKSx0aGlzLmM7cmV0dXJuICF0aGlzLmMmJih0aGlzLmM9bmV3IFVnZSh0aGlzLDApKSx0aGlzLmMuYjtjYXNlIDE6aWYoYylyZXR1cm4gIXRoaXMuYyYmKHRoaXMuYz1uZXcgVWdlKHRoaXMsMCkpLFJEKHJnZSh0aGlzLmMsKG5tZSgpLFNsZSkpLDE2MCk7cmV0dXJuICghdGhpcy5jJiYodGhpcy5jPW5ldyBVZ2UodGhpcywwKSksUkQoUkQocmdlKHRoaXMuYywobm1lKCksU2xlKSksMTYwKSwyMjApKS5WbCgpO2Nhc2UgMjppZihjKXJldHVybiAhdGhpcy5iJiYodGhpcy5iPW5ldyBVZ2UodGhpcywyKSksdGhpcy5iO3JldHVybiAhdGhpcy5iJiYodGhpcy5iPW5ldyBVZ2UodGhpcywyKSksdGhpcy5iLmI7Y2FzZSAzOnJldHVybiAhdGhpcy5jJiYodGhpcy5jPW5ldyBVZ2UodGhpcywwKSksV0QoaWdlKHRoaXMuYywobm1lKCksZm1lKSx0cnVlKSk7Y2FzZSA0OnJldHVybiBJamUodGhpcy5hLCghdGhpcy5jJiYodGhpcy5jPW5ldyBVZ2UodGhpcywwKSksV0QoaWdlKHRoaXMuYywobm1lKCksZm1lKSx0cnVlKSkpKTtjYXNlIDU6cmV0dXJuIHRoaXMuYTt9cmV0dXJuIHp2ZCh0aGlzLGEtQVlkKChubWUoKSxlbWUpKSx2WWQoKHRoaXMuaiYyKT09MD9lbWU6KCF0aGlzLmsmJih0aGlzLms9bmV3IGZVZCksdGhpcy5rKS5OaygpLGEpLGIsYyl9O18uV2g9ZnVuY3Rpb24gSm1lKGEpe3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuICEhdGhpcy5jJiZ0aGlzLmMuaSE9MDtjYXNlIDE6cmV0dXJuICEoIXRoaXMuYyYmKHRoaXMuYz1uZXcgVWdlKHRoaXMsMCkpLFJEKHJnZSh0aGlzLmMsKG5tZSgpLFNsZSkpLDE2MCkpLmRjKCk7Y2FzZSAyOnJldHVybiAhIXRoaXMuYiYmdGhpcy5iLmkhPTA7Y2FzZSAzOnJldHVybiAhdGhpcy5jJiYodGhpcy5jPW5ldyBVZ2UodGhpcywwKSksV0QoaWdlKHRoaXMuYywobm1lKCksZm1lKSx0cnVlKSkhPW51bGw7Y2FzZSA0OnJldHVybiBJamUodGhpcy5hLCghdGhpcy5jJiYodGhpcy5jPW5ldyBVZ2UodGhpcywwKSksV0QoaWdlKHRoaXMuYywobm1lKCksZm1lKSx0cnVlKSkpKSE9bnVsbDtjYXNlIDU6cmV0dXJuICEhdGhpcy5hO31yZXR1cm4gQXZkKHRoaXMsYS1BWWQoKG5tZSgpLGVtZSkpLHZZZCgodGhpcy5qJjIpPT0wP2VtZTooIXRoaXMuayYmKHRoaXMuaz1uZXcgZlVkKSx0aGlzLmspLk5rKCksYSkpfTtfLmJpPWZ1bmN0aW9uIEttZShhLGIpe3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuYyYmKHRoaXMuYz1uZXcgVWdlKHRoaXMsMCkpO0RnZSh0aGlzLmMsYik7cmV0dXJuO2Nhc2UgMTooIXRoaXMuYyYmKHRoaXMuYz1uZXcgVWdlKHRoaXMsMCkpLFJEKFJEKHJnZSh0aGlzLmMsKG5tZSgpLFNsZSkpLDE2MCksMjIwKSkuV2IoYik7cmV0dXJuO2Nhc2UgMjohdGhpcy5iJiYodGhpcy5iPW5ldyBVZ2UodGhpcywyKSk7RGdlKHRoaXMuYixiKTtyZXR1cm47Y2FzZSAzOkdtZSh0aGlzLFdEKGIpKTtyZXR1cm47Y2FzZSA0OkdtZSh0aGlzLEhqZSh0aGlzLmEsYikpO3JldHVybjtjYXNlIDU6Rm1lKHRoaXMsUkQoYiwxNTYpKTtyZXR1cm47fUJ2ZCh0aGlzLGEtQVlkKChubWUoKSxlbWUpKSx2WWQoKHRoaXMuaiYyKT09MD9lbWU6KCF0aGlzLmsmJih0aGlzLms9bmV3IGZVZCksdGhpcy5rKS5OaygpLGEpLGIpfTtfLmlpPWZ1bmN0aW9uIExtZSgpe3JldHVybiBubWUoKSxlbWV9O18ua2k9ZnVuY3Rpb24gTW1lKGEpe3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuYyYmKHRoaXMuYz1uZXcgVWdlKHRoaXMsMCkpO3NMZCh0aGlzLmMpO3JldHVybjtjYXNlIDE6KCF0aGlzLmMmJih0aGlzLmM9bmV3IFVnZSh0aGlzLDApKSxSRChyZ2UodGhpcy5jLChubWUoKSxTbGUpKSwxNjApKS4kYigpO3JldHVybjtjYXNlIDI6IXRoaXMuYiYmKHRoaXMuYj1uZXcgVWdlKHRoaXMsMikpO3NMZCh0aGlzLmIpO3JldHVybjtjYXNlIDM6IXRoaXMuYyYmKHRoaXMuYz1uZXcgVWdlKHRoaXMsMCkpO0ZnZSh0aGlzLmMsKG5tZSgpLGZtZSksbnVsbCk7cmV0dXJuO2Nhc2UgNDpHbWUodGhpcyxIamUodGhpcy5hLG51bGwpKTtyZXR1cm47Y2FzZSA1OnRoaXMuYT1udWxsO3JldHVybjt9Q3ZkKHRoaXMsYS1BWWQoKG5tZSgpLGVtZSkpLHZZZCgodGhpcy5qJjIpPT0wP2VtZTooIXRoaXMuayYmKHRoaXMuaz1uZXcgZlVkKSx0aGlzLmspLk5rKCksYSkpfTt2YXIgYWNiPXNmYihsTGUsJ1NpbXBsZUFueVR5cGVJbXBsJyw2ODIpO2ZlYig2ODMsNTE2LHsxMTA6MSw5NDoxLDkzOjEsNTg6MSw1NDoxLDk5OjEsMjEyMToxLDY4MzoxfSxObWUpO18uTGg9ZnVuY3Rpb24gT21lKGEsYixjKXtzd2l0Y2goYSl7Y2FzZSAwOmlmKGMpcmV0dXJuICF0aGlzLmEmJih0aGlzLmE9bmV3IFVnZSh0aGlzLDApKSx0aGlzLmE7cmV0dXJuICF0aGlzLmEmJih0aGlzLmE9bmV3IFVnZSh0aGlzLDApKSx0aGlzLmEuYjtjYXNlIDE6cmV0dXJuIGM/KCF0aGlzLmImJih0aGlzLmI9bmV3IERWZCgoSlRkKCksRlRkKSxDOCx0aGlzLDEpKSx0aGlzLmIpOighdGhpcy5iJiYodGhpcy5iPW5ldyBEVmQoKEpUZCgpLEZUZCksQzgsdGhpcywxKSksZE9kKHRoaXMuYikpO2Nhc2UgMjpyZXR1cm4gYz8oIXRoaXMuYyYmKHRoaXMuYz1uZXcgRFZkKChKVGQoKSxGVGQpLEM4LHRoaXMsMikpLHRoaXMuYyk6KCF0aGlzLmMmJih0aGlzLmM9bmV3IERWZCgoSlRkKCksRlRkKSxDOCx0aGlzLDIpKSxkT2QodGhpcy5jKSk7Y2FzZSAzOnJldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyBVZ2UodGhpcywwKSkscmdlKHRoaXMuYSwobm1lKCksaW1lKSk7Y2FzZSA0OnJldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyBVZ2UodGhpcywwKSkscmdlKHRoaXMuYSwobm1lKCksam1lKSk7Y2FzZSA1OnJldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyBVZ2UodGhpcywwKSkscmdlKHRoaXMuYSwobm1lKCksbG1lKSk7Y2FzZSA2OnJldHVybiAhdGhpcy5hJiYodGhpcy5hPW5ldyBVZ2UodGhpcywwKSkscmdlKHRoaXMuYSwobm1lKCksbW1lKSk7fXJldHVybiB6dmQodGhpcyxhLUFZZCgobm1lKCksaG1lKSksdllkKCh0aGlzLmomMik9PTA/aG1lOighdGhpcy5rJiYodGhpcy5rPW5ldyBmVWQpLHRoaXMuaykuTmsoKSxhKSxiLGMpfTtfLlVoPWZ1bmN0aW9uIFBtZShhLGIsYyl7dmFyIGQ7c3dpdGNoKGIpe2Nhc2UgMDpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpLF9mZSh0aGlzLmEsYSxjKTtjYXNlIDE6cmV0dXJuICF0aGlzLmImJih0aGlzLmI9bmV3IERWZCgoSlRkKCksRlRkKSxDOCx0aGlzLDEpKSxCVmQodGhpcy5iLGEsYyk7Y2FzZSAyOnJldHVybiAhdGhpcy5jJiYodGhpcy5jPW5ldyBEVmQoKEpUZCgpLEZUZCksQzgsdGhpcywyKSksQlZkKHRoaXMuYyxhLGMpO2Nhc2UgNTpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpLEJrZShyZ2UodGhpcy5hLChubWUoKSxsbWUpKSxhLGMpO31yZXR1cm4gZD1SRCh2WWQoKHRoaXMuaiYyKT09MD8obm1lKCksaG1lKTooIXRoaXMuayYmKHRoaXMuaz1uZXcgZlVkKSx0aGlzLmspLk5rKCksYiksNjkpLGQud2soKS5Bayh0aGlzLFl2ZCh0aGlzKSxiLUFZZCgobm1lKCksaG1lKSksYSxjKX07Xy5XaD1mdW5jdGlvbiBRbWUoYSl7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4gISF0aGlzLmEmJnRoaXMuYS5pIT0wO2Nhc2UgMTpyZXR1cm4gISF0aGlzLmImJnRoaXMuYi5mIT0wO2Nhc2UgMjpyZXR1cm4gISF0aGlzLmMmJnRoaXMuYy5mIT0wO2Nhc2UgMzpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpLCFEa2UocmdlKHRoaXMuYSwobm1lKCksaW1lKSkpO2Nhc2UgNDpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpLCFEa2UocmdlKHRoaXMuYSwobm1lKCksam1lKSkpO2Nhc2UgNTpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpLCFEa2UocmdlKHRoaXMuYSwobm1lKCksbG1lKSkpO2Nhc2UgNjpyZXR1cm4gIXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpLCFEa2UocmdlKHRoaXMuYSwobm1lKCksbW1lKSkpO31yZXR1cm4gQXZkKHRoaXMsYS1BWWQoKG5tZSgpLGhtZSkpLHZZZCgodGhpcy5qJjIpPT0wP2htZTooIXRoaXMuayYmKHRoaXMuaz1uZXcgZlVkKSx0aGlzLmspLk5rKCksYSkpfTtfLmJpPWZ1bmN0aW9uIFJtZShhLGIpe3N3aXRjaChhKXtjYXNlIDA6IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0RnZSh0aGlzLmEsYik7cmV0dXJuO2Nhc2UgMTohdGhpcy5iJiYodGhpcy5iPW5ldyBEVmQoKEpUZCgpLEZUZCksQzgsdGhpcywxKSk7Q1ZkKHRoaXMuYixiKTtyZXR1cm47Y2FzZSAyOiF0aGlzLmMmJih0aGlzLmM9bmV3IERWZCgoSlRkKCksRlRkKSxDOCx0aGlzLDIpKTtDVmQodGhpcy5jLGIpO3JldHVybjtjYXNlIDM6IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0NrZShyZ2UodGhpcy5hLChubWUoKSxpbWUpKSk7IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0FrZShyZ2UodGhpcy5hLGltZSksUkQoYiwxNikpO3JldHVybjtjYXNlIDQ6IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0NrZShyZ2UodGhpcy5hLChubWUoKSxqbWUpKSk7IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0FrZShyZ2UodGhpcy5hLGptZSksUkQoYiwxNikpO3JldHVybjtjYXNlIDU6IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0NrZShyZ2UodGhpcy5hLChubWUoKSxsbWUpKSk7IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0FrZShyZ2UodGhpcy5hLGxtZSksUkQoYiwxNikpO3JldHVybjtjYXNlIDY6IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0NrZShyZ2UodGhpcy5hLChubWUoKSxtbWUpKSk7IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0FrZShyZ2UodGhpcy5hLG1tZSksUkQoYiwxNikpO3JldHVybjt9QnZkKHRoaXMsYS1BWWQoKG5tZSgpLGhtZSkpLHZZZCgodGhpcy5qJjIpPT0wP2htZTooIXRoaXMuayYmKHRoaXMuaz1uZXcgZlVkKSx0aGlzLmspLk5rKCksYSksYil9O18uaWk9ZnVuY3Rpb24gU21lKCl7cmV0dXJuIG5tZSgpLGhtZX07Xy5raT1mdW5jdGlvbiBUbWUoYSl7c3dpdGNoKGEpe2Nhc2UgMDohdGhpcy5hJiYodGhpcy5hPW5ldyBVZ2UodGhpcywwKSk7c0xkKHRoaXMuYSk7cmV0dXJuO2Nhc2UgMTohdGhpcy5iJiYodGhpcy5iPW5ldyBEVmQoKEpUZCgpLEZUZCksQzgsdGhpcywxKSk7dGhpcy5iLmMuJGIoKTtyZXR1cm47Y2FzZSAyOiF0aGlzLmMmJih0aGlzLmM9bmV3IERWZCgoSlRkKCksRlRkKSxDOCx0aGlzLDIpKTt0aGlzLmMuYy4kYigpO3JldHVybjtjYXNlIDM6IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0NrZShyZ2UodGhpcy5hLChubWUoKSxpbWUpKSk7cmV0dXJuO2Nhc2UgNDohdGhpcy5hJiYodGhpcy5hPW5ldyBVZ2UodGhpcywwKSk7Q2tlKHJnZSh0aGlzLmEsKG5tZSgpLGptZSkpKTtyZXR1cm47Y2FzZSA1OiF0aGlzLmEmJih0aGlzLmE9bmV3IFVnZSh0aGlzLDApKTtDa2UocmdlKHRoaXMuYSwobm1lKCksbG1lKSkpO3JldHVybjtjYXNlIDY6IXRoaXMuYSYmKHRoaXMuYT1uZXcgVWdlKHRoaXMsMCkpO0NrZShyZ2UodGhpcy5hLChubWUoKSxtbWUpKSk7cmV0dXJuO31DdmQodGhpcyxhLUFZZCgobm1lKCksaG1lKSksdllkKCh0aGlzLmomMik9PTA/aG1lOighdGhpcy5rJiYodGhpcy5rPW5ldyBmVWQpLHRoaXMuaykuTmsoKSxhKSl9O18uSWI9ZnVuY3Rpb24gVW1lKCl7dmFyIGE7aWYoKHRoaXMuaiY0KSE9MClyZXR1cm4gYXdkKHRoaXMpO2E9bmV3IFNoYihhd2QodGhpcykpO2EuYSs9JyAobWl4ZWQ6ICc7TWhiKGEsdGhpcy5hKTthLmErPScpJztyZXR1cm4gYS5hfTt2YXIgYmNiPXNmYihsTGUsJ1hNTFR5cGVEb2N1bWVudFJvb3RJbXBsJyw2ODMpO2ZlYigyMDI4LDcyMCx7MTEwOjEsOTQ6MSw5MzoxLDQ4MDoxLDE1NToxLDU4OjEsMTE0OjEsNTQ6MSw5OToxLDE1ODoxLDExOToxLDEyMDoxLDIxMjI6MX0scm5lKTtfLnJpPWZ1bmN0aW9uIHNuZShhLGIpe3N3aXRjaChhLmhrKCkpe2Nhc2UgNzpjYXNlIDg6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxNjpjYXNlIDIyOmNhc2UgMjM6Y2FzZSAyNDpjYXNlIDI1OmNhc2UgMjY6Y2FzZSAzMjpjYXNlIDMzOmNhc2UgMzQ6Y2FzZSAzNjpjYXNlIDM3OmNhc2UgNDQ6Y2FzZSA0NTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA1MzpjYXNlIDU1OmNhc2UgNTY6Y2FzZSA1NzpjYXNlIDU4OmNhc2UgNjA6Y2FzZSA2MTpjYXNlIDQ6cmV0dXJuIGI9PW51bGw/bnVsbDpqZWIoYik7Y2FzZSAxOTpjYXNlIDI4OmNhc2UgMjk6Y2FzZSAzNTpjYXNlIDM4OmNhc2UgMzk6Y2FzZSA0MTpjYXNlIDQ2OmNhc2UgNTI6Y2FzZSA1NDpjYXNlIDU6cmV0dXJuIFdEKGIpO2Nhc2UgNjpyZXR1cm4gX21lKFJEKGIsMTk1KSk7Y2FzZSAxMjpjYXNlIDQ3OmNhc2UgNDk6Y2FzZSAxMTpyZXR1cm4gdEFkKHRoaXMsYSxiKTtjYXNlIDEzOnJldHVybiBiPT1udWxsP251bGw6eWliKFJEKGIsMjQ3KSk7Y2FzZSAxNTpjYXNlIDE0OnJldHVybiBiPT1udWxsP251bGw6YW5lKEtmYihVRChiKSkpO2Nhc2UgMTc6cmV0dXJuIGJuZSgobm1lKCksYikpO2Nhc2UgMTg6cmV0dXJuIGJuZShiKTtjYXNlIDIxOmNhc2UgMjA6cmV0dXJuIGI9PW51bGw/bnVsbDpjbmUoUkQoYiwxNjEpLmEpO2Nhc2UgMjc6cmV0dXJuIGRuZShSRChiLDE5NSkpO2Nhc2UgMzA6cmV0dXJuIGVuZSgobm1lKCksUkQoYiwxNSkpKTtjYXNlIDMxOnJldHVybiBlbmUoUkQoYiwxNSkpO2Nhc2UgNDA6cmV0dXJuIGhuZSgobm1lKCksYikpO2Nhc2UgNDI6cmV0dXJuIGZuZSgobm1lKCksYikpO2Nhc2UgNDM6cmV0dXJuIGZuZShiKTtjYXNlIDU5OmNhc2UgNDg6cmV0dXJuIGduZSgobm1lKCksYikpO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyBhZ2IoVkhlK2EueGUoKStXSGUpKTt9fTtfLnNpPWZ1bmN0aW9uIHRuZShhKXt2YXIgYixjLGQsZSxmO3N3aXRjaChhLkc9PS0xJiYoYS5HPShjPUJYZChhKSxjP2ZaZChjLnZpKCksYSk6LTEpKSxhLkcpe2Nhc2UgMDpyZXR1cm4gYj1uZXcgb21lLGI7Y2FzZSAxOnJldHVybiBkPW5ldyB5bWUsZDtjYXNlIDI6cmV0dXJuIGU9bmV3IEhtZSxlO2Nhc2UgMzpyZXR1cm4gZj1uZXcgTm1lLGY7ZGVmYXVsdDp0aHJvdyBBZGIobmV3IGFnYihaSGUrYS56YitXSGUpKTt9fTtfLnRpPWZ1bmN0aW9uIHVuZShhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyO3N3aXRjaChhLmhrKCkpe2Nhc2UgNTpjYXNlIDUyOmNhc2UgNDpyZXR1cm4gYjtjYXNlIDY6cmV0dXJuIGluZShiKTtjYXNlIDg6Y2FzZSA3OnJldHVybiBiPT1udWxsP251bGw6JG1lKGIpO2Nhc2UgOTpyZXR1cm4gYj09bnVsbD9udWxsOiRlYihPZWIoKGQ9bnVlKGIsdHJ1ZSksZC5sZW5ndGg+MCYmKEJGYigwLGQubGVuZ3RoKSxkLmNoYXJDb2RlQXQoMCk9PTQzKT8oQkZiKDEsZC5sZW5ndGgrMSksZC5zdWJzdHIoMSkpOmQpLC0xMjgsMTI3KTw8MjQ+PjI0KTtjYXNlIDEwOnJldHVybiBiPT1udWxsP251bGw6JGViKE9lYigoZT1udWUoYix0cnVlKSxlLmxlbmd0aD4wJiYoQkZiKDAsZS5sZW5ndGgpLGUuY2hhckNvZGVBdCgwKT09NDMpPyhCRmIoMSxlLmxlbmd0aCsxKSxlLnN1YnN0cigxKSk6ZSksLTEyOCwxMjcpPDwyND4+MjQpO2Nhc2UgMTE6cmV0dXJuIFdEKHVBZCh0aGlzLChubWUoKSxWbGUpLGIpKTtjYXNlIDEyOnJldHVybiBXRCh1QWQodGhpcywobm1lKCksV2xlKSxiKSk7Y2FzZSAxMzpyZXR1cm4gYj09bnVsbD9udWxsOm5ldyBCaWIobnVlKGIsdHJ1ZSkpO2Nhc2UgMTU6Y2FzZSAxNDpyZXR1cm4gam5lKGIpO2Nhc2UgMTY6cmV0dXJuIFdEKHVBZCh0aGlzLChubWUoKSxYbGUpLGIpKTtjYXNlIDE3OnJldHVybiBrbmUoKG5tZSgpLGIpKTtjYXNlIDE4OnJldHVybiBrbmUoYik7Y2FzZSAyODpjYXNlIDI5OmNhc2UgMzU6Y2FzZSAzODpjYXNlIDM5OmNhc2UgNDE6Y2FzZSA1NDpjYXNlIDE5OnJldHVybiBudWUoYix0cnVlKTtjYXNlIDIxOmNhc2UgMjA6cmV0dXJuIGxuZShiKTtjYXNlIDIyOnJldHVybiBXRCh1QWQodGhpcywobm1lKCksWWxlKSxiKSk7Y2FzZSAyMzpyZXR1cm4gV0QodUFkKHRoaXMsKG5tZSgpLFpsZSksYikpO2Nhc2UgMjQ6cmV0dXJuIFdEKHVBZCh0aGlzLChubWUoKSwkbGUpLGIpKTtjYXNlIDI1OnJldHVybiBXRCh1QWQodGhpcywobm1lKCksX2xlKSxiKSk7Y2FzZSAyNjpyZXR1cm4gV0QodUFkKHRoaXMsKG5tZSgpLGFtZSksYikpO2Nhc2UgMjc6cmV0dXJuIG1uZShiKTtjYXNlIDMwOnJldHVybiBubmUoKG5tZSgpLGIpKTtjYXNlIDMxOnJldHVybiBubmUoYik7Y2FzZSAzMjpyZXR1cm4gYj09bnVsbD9udWxsOnNnYihPZWIoKGs9bnVlKGIsdHJ1ZSksay5sZW5ndGg+MCYmKEJGYigwLGsubGVuZ3RoKSxrLmNoYXJDb2RlQXQoMCk9PTQzKT8oQkZiKDEsay5sZW5ndGgrMSksay5zdWJzdHIoMSkpOmspLHF3ZSxsdmUpKTtjYXNlIDMzOnJldHVybiBiPT1udWxsP251bGw6bmV3IGVqYigobD1udWUoYix0cnVlKSxsLmxlbmd0aD4wJiYoQkZiKDAsbC5sZW5ndGgpLGwuY2hhckNvZGVBdCgwKT09NDMpPyhCRmIoMSxsLmxlbmd0aCsxKSxsLnN1YnN0cigxKSk6bCkpO2Nhc2UgMzQ6cmV0dXJuIGI9PW51bGw/bnVsbDpzZ2IoT2ViKChtPW51ZShiLHRydWUpLG0ubGVuZ3RoPjAmJihCRmIoMCxtLmxlbmd0aCksbS5jaGFyQ29kZUF0KDApPT00Myk/KEJGYigxLG0ubGVuZ3RoKzEpLG0uc3Vic3RyKDEpKTptKSxxd2UsbHZlKSk7Y2FzZSAzNjpyZXR1cm4gYj09bnVsbD9udWxsOkhnYihQZWIoKG49bnVlKGIsdHJ1ZSksbi5sZW5ndGg+MCYmKEJGYigwLG4ubGVuZ3RoKSxuLmNoYXJDb2RlQXQoMCk9PTQzKT8oQkZiKDEsbi5sZW5ndGgrMSksbi5zdWJzdHIoMSkpOm4pKSk7Y2FzZSAzNzpyZXR1cm4gYj09bnVsbD9udWxsOkhnYihQZWIoKG89bnVlKGIsdHJ1ZSksby5sZW5ndGg+MCYmKEJGYigwLG8ubGVuZ3RoKSxvLmNoYXJDb2RlQXQoMCk9PTQzKT8oQkZiKDEsby5sZW5ndGgrMSksby5zdWJzdHIoMSkpOm8pKSk7Y2FzZSA0MDpyZXR1cm4gcW5lKChubWUoKSxiKSk7Y2FzZSA0MjpyZXR1cm4gb25lKChubWUoKSxiKSk7Y2FzZSA0MzpyZXR1cm4gb25lKGIpO2Nhc2UgNDQ6cmV0dXJuIGI9PW51bGw/bnVsbDpuZXcgZWpiKChwPW51ZShiLHRydWUpLHAubGVuZ3RoPjAmJihCRmIoMCxwLmxlbmd0aCkscC5jaGFyQ29kZUF0KDApPT00Myk/KEJGYigxLHAubGVuZ3RoKzEpLHAuc3Vic3RyKDEpKTpwKSk7Y2FzZSA0NTpyZXR1cm4gYj09bnVsbD9udWxsOm5ldyBlamIoKHE9bnVlKGIsdHJ1ZSkscS5sZW5ndGg+MCYmKEJGYigwLHEubGVuZ3RoKSxxLmNoYXJDb2RlQXQoMCk9PTQzKT8oQkZiKDEscS5sZW5ndGgrMSkscS5zdWJzdHIoMSkpOnEpKTtjYXNlIDQ2OnJldHVybiBudWUoYixmYWxzZSk7Y2FzZSA0NzpyZXR1cm4gV0QodUFkKHRoaXMsKG5tZSgpLGJtZSksYikpO2Nhc2UgNTk6Y2FzZSA0ODpyZXR1cm4gcG5lKChubWUoKSxiKSk7Y2FzZSA0OTpyZXR1cm4gV0QodUFkKHRoaXMsKG5tZSgpLGRtZSksYikpO2Nhc2UgNTA6cmV0dXJuIGI9PW51bGw/bnVsbDpiaGIoT2ViKChyPW51ZShiLHRydWUpLHIubGVuZ3RoPjAmJihCRmIoMCxyLmxlbmd0aCksci5jaGFyQ29kZUF0KDApPT00Myk/KEJGYigxLHIubGVuZ3RoKzEpLHIuc3Vic3RyKDEpKTpyKSxCS2UsMzI3NjcpPDwxNj4+MTYpO2Nhc2UgNTE6cmV0dXJuIGI9PW51bGw/bnVsbDpiaGIoT2ViKChmPW51ZShiLHRydWUpLGYubGVuZ3RoPjAmJihCRmIoMCxmLmxlbmd0aCksZi5jaGFyQ29kZUF0KDApPT00Myk/KEJGYigxLGYubGVuZ3RoKzEpLGYuc3Vic3RyKDEpKTpmKSxCS2UsMzI3NjcpPDwxNj4+MTYpO2Nhc2UgNTM6cmV0dXJuIFdEKHVBZCh0aGlzLChubWUoKSxnbWUpLGIpKTtjYXNlIDU1OnJldHVybiBiPT1udWxsP251bGw6YmhiKE9lYigoZz1udWUoYix0cnVlKSxnLmxlbmd0aD4wJiYoQkZiKDAsZy5sZW5ndGgpLGcuY2hhckNvZGVBdCgwKT09NDMpPyhCRmIoMSxnLmxlbmd0aCsxKSxnLnN1YnN0cigxKSk6ZyksQktlLDMyNzY3KTw8MTY+PjE2KTtjYXNlIDU2OnJldHVybiBiPT1udWxsP251bGw6YmhiKE9lYigoaD1udWUoYix0cnVlKSxoLmxlbmd0aD4wJiYoQkZiKDAsaC5sZW5ndGgpLGguY2hhckNvZGVBdCgwKT09NDMpPyhCRmIoMSxoLmxlbmd0aCsxKSxoLnN1YnN0cigxKSk6aCksQktlLDMyNzY3KTw8MTY+PjE2KTtjYXNlIDU3OnJldHVybiBiPT1udWxsP251bGw6SGdiKFBlYigoaT1udWUoYix0cnVlKSxpLmxlbmd0aD4wJiYoQkZiKDAsaS5sZW5ndGgpLGkuY2hhckNvZGVBdCgwKT09NDMpPyhCRmIoMSxpLmxlbmd0aCsxKSxpLnN1YnN0cigxKSk6aSkpKTtjYXNlIDU4OnJldHVybiBiPT1udWxsP251bGw6SGdiKFBlYigoaj1udWUoYix0cnVlKSxqLmxlbmd0aD4wJiYoQkZiKDAsai5sZW5ndGgpLGouY2hhckNvZGVBdCgwKT09NDMpPyhCRmIoMSxqLmxlbmd0aCsxKSxqLnN1YnN0cigxKSk6aikpKTtjYXNlIDYwOnJldHVybiBiPT1udWxsP251bGw6c2diKE9lYigoYz1udWUoYix0cnVlKSxjLmxlbmd0aD4wJiYoQkZiKDAsYy5sZW5ndGgpLGMuY2hhckNvZGVBdCgwKT09NDMpPyhCRmIoMSxjLmxlbmd0aCsxKSxjLnN1YnN0cigxKSk6YykscXdlLGx2ZSkpO2Nhc2UgNjE6cmV0dXJuIGI9PW51bGw/bnVsbDpzZ2IoT2ViKG51ZShiLHRydWUpLHF3ZSxsdmUpKTtkZWZhdWx0OnRocm93IEFkYihuZXcgYWdiKFZIZSthLnhlKCkrV0hlKSk7fX07dmFyIFZtZSxXbWUsWG1lLFltZTt2YXIgY2NiPXNmYihsTGUsJ1hNTFR5cGVGYWN0b3J5SW1wbCcsMjAyOCk7ZmViKDU5NCwxODQsezExMDoxLDk0OjEsOTM6MSwxNTU6MSwxOTc6MSw1ODoxLDI0MToxLDExNDoxLDU0OjEsOTk6MSwxNTg6MSwxODQ6MSwxMTk6MSwxMjA6MSw2OTA6MSwyMDQ0OjEsNTk0OjF9LEJuZSk7Xy5OPWZhbHNlO18uTz1mYWxzZTt2YXIgd25lPWZhbHNlO3ZhciBiZGI9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsJyw1OTQpO2ZlYigxOTYxLDEsezg1MToxfSxFbmUpO18uS2s9ZnVuY3Rpb24gRm5lKCl7cmV0dXJuIHJ1ZSgpLHF1ZX07dmFyIG5jYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMScsMTk2MSk7ZmViKDE5NzAsMSxPS2UsR25lKTtfLmZrPWZ1bmN0aW9uIEhuZShhKXtyZXR1cm4gYkUoYSl9O18uZ2s9ZnVuY3Rpb24gSW5lKGEpe3JldHVybiAkQyhxSixOdmUsMixhLDYsMSl9O3ZhciBkY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzEwJywxOTcwKTtmZWIoMTk3MSwxLE9LZSxKbmUpO18uZms9ZnVuY3Rpb24gS25lKGEpe3JldHVybiBiRShhKX07Xy5naz1mdW5jdGlvbiBMbmUoYSl7cmV0dXJuICRDKHFKLE52ZSwyLGEsNiwxKX07dmFyIGVjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMTEnLDE5NzEpO2ZlYigxOTcyLDEsT0tlLE1uZSk7Xy5maz1mdW5jdGlvbiBObmUoYSl7cmV0dXJuIGJFKGEpfTtfLmdrPWZ1bmN0aW9uIE9uZShhKXtyZXR1cm4gJEMocUosTnZlLDIsYSw2LDEpfTt2YXIgZmNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8xMicsMTk3Mik7ZmViKDE5NzMsMSxPS2UsUG5lKTtfLmZrPWZ1bmN0aW9uIFFuZShhKXtyZXR1cm4gX0QoYSl9O18uZ2s9ZnVuY3Rpb24gUm5lKGEpe3JldHVybiAkQyhWSSxOdmUsMzQ1LGEsNywxKX07dmFyIGdjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMTMnLDE5NzMpO2ZlYigxOTc0LDEsT0tlLFNuZSk7Xy5maz1mdW5jdGlvbiBUbmUoYSl7cmV0dXJuIGJFKGEpfTtfLmdrPWZ1bmN0aW9uIFVuZShhKXtyZXR1cm4gJEMocUosTnZlLDIsYSw2LDEpfTt2YXIgaGNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8xNCcsMTk3NCk7ZmViKDE5NzUsMSxPS2UsVm5lKTtfLmZrPWZ1bmN0aW9uIFduZShhKXtyZXR1cm4gWkQoYSwxNSl9O18uZ2s9ZnVuY3Rpb24gWG5lKGEpe3JldHVybiAkQyhRSyxJemUsMTUsYSwwLDEpfTt2YXIgaWNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8xNScsMTk3NSk7ZmViKDE5NzYsMSxPS2UsWW5lKTtfLmZrPWZ1bmN0aW9uIFpuZShhKXtyZXR1cm4gWkQoYSwxNSl9O18uZ2s9ZnVuY3Rpb24gJG5lKGEpe3JldHVybiAkQyhRSyxJemUsMTUsYSwwLDEpfTt2YXIgamNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8xNicsMTk3Nik7ZmViKDE5NzcsMSxPS2UsX25lKTtfLmZrPWZ1bmN0aW9uIGFvZShhKXtyZXR1cm4gYkUoYSl9O18uZ2s9ZnVuY3Rpb24gYm9lKGEpe3JldHVybiAkQyhxSixOdmUsMixhLDYsMSl9O3ZhciBrY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzE3JywxOTc3KTtmZWIoMTk3OCwxLE9LZSxjb2UpO18uZms9ZnVuY3Rpb24gZG9lKGEpe3JldHVybiBaRChhLDE2MSl9O18uZ2s9ZnVuY3Rpb24gZW9lKGEpe3JldHVybiAkQyhaSSxOdmUsMTYxLGEsMCwxKX07dmFyIGxjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMTgnLDE5NzgpO2ZlYigxOTc5LDEsT0tlLGZvZSk7Xy5maz1mdW5jdGlvbiBnb2UoYSl7cmV0dXJuIGJFKGEpfTtfLmdrPWZ1bmN0aW9uIGhvZShhKXtyZXR1cm4gJEMocUosTnZlLDIsYSw2LDEpfTt2YXIgbWNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8xOScsMTk3OSk7ZmViKDE5NjIsMSxPS2UsaW9lKTtfLmZrPWZ1bmN0aW9uIGpvZShhKXtyZXR1cm4gWkQoYSw4NTcpfTtfLmdrPWZ1bmN0aW9uIGtvZShhKXtyZXR1cm4gJEMoVmJiLHJ2ZSw4NTcsYSwwLDEpfTt2YXIgeWNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8yJywxOTYyKTtmZWIoMTk4MCwxLE9LZSxsb2UpO18uZms9ZnVuY3Rpb24gbW9lKGEpe3JldHVybiBiRShhKX07Xy5naz1mdW5jdGlvbiBub2UoYSl7cmV0dXJuICRDKHFKLE52ZSwyLGEsNiwxKX07dmFyIG9jYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMjAnLDE5ODApO2ZlYigxOTgxLDEsT0tlLG9vZSk7Xy5maz1mdW5jdGlvbiBwb2UoYSl7cmV0dXJuIGJFKGEpfTtfLmdrPWZ1bmN0aW9uIHFvZShhKXtyZXR1cm4gJEMocUosTnZlLDIsYSw2LDEpfTt2YXIgcGNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8yMScsMTk4MSk7ZmViKDE5ODIsMSxPS2Uscm9lKTtfLmZrPWZ1bmN0aW9uIHNvZShhKXtyZXR1cm4gYkUoYSl9O18uZ2s9ZnVuY3Rpb24gdG9lKGEpe3JldHVybiAkQyhxSixOdmUsMixhLDYsMSl9O3ZhciBxY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzIyJywxOTgyKTtmZWIoMTk4MywxLE9LZSx1b2UpO18uZms9ZnVuY3Rpb24gdm9lKGEpe3JldHVybiBiRShhKX07Xy5naz1mdW5jdGlvbiB3b2UoYSl7cmV0dXJuICRDKHFKLE52ZSwyLGEsNiwxKX07dmFyIHJjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMjMnLDE5ODMpO2ZlYigxOTg0LDEsT0tlLHhvZSk7Xy5maz1mdW5jdGlvbiB5b2UoYSl7cmV0dXJuIFpEKGEsMTk1KX07Xy5naz1mdW5jdGlvbiB6b2UoYSl7cmV0dXJuICRDKGdFLE52ZSwxOTUsYSwwLDIpfTt2YXIgc2NiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8yNCcsMTk4NCk7ZmViKDE5ODUsMSxPS2UsQW9lKTtfLmZrPWZ1bmN0aW9uIEJvZShhKXtyZXR1cm4gYkUoYSl9O18uZ2s9ZnVuY3Rpb24gQ29lKGEpe3JldHVybiAkQyhxSixOdmUsMixhLDYsMSl9O3ZhciB0Y2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzI1JywxOTg1KTtmZWIoMTk4NiwxLE9LZSxEb2UpO18uZms9ZnVuY3Rpb24gRW9lKGEpe3JldHVybiBiRShhKX07Xy5naz1mdW5jdGlvbiBGb2UoYSl7cmV0dXJuICRDKHFKLE52ZSwyLGEsNiwxKX07dmFyIHVjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMjYnLDE5ODYpO2ZlYigxOTg3LDEsT0tlLEdvZSk7Xy5maz1mdW5jdGlvbiBIb2UoYSl7cmV0dXJuIFpEKGEsMTUpfTtfLmdrPWZ1bmN0aW9uIElvZShhKXtyZXR1cm4gJEMoUUssSXplLDE1LGEsMCwxKX07dmFyIHZjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMjcnLDE5ODcpO2ZlYigxOTg4LDEsT0tlLEpvZSk7Xy5maz1mdW5jdGlvbiBLb2UoYSl7cmV0dXJuIFpEKGEsMTUpfTtfLmdrPWZ1bmN0aW9uIExvZShhKXtyZXR1cm4gJEMoUUssSXplLDE1LGEsMCwxKX07dmFyIHdjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMjgnLDE5ODgpO2ZlYigxOTg5LDEsT0tlLE1vZSk7Xy5maz1mdW5jdGlvbiBOb2UoYSl7cmV0dXJuIGJFKGEpfTtfLmdrPWZ1bmN0aW9uIE9vZShhKXtyZXR1cm4gJEMocUosTnZlLDIsYSw2LDEpfTt2YXIgeGNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8yOScsMTk4OSk7ZmViKDE5NjMsMSxPS2UsUG9lKTtfLmZrPWZ1bmN0aW9uIFFvZShhKXtyZXR1cm4gWkQoYSw2ODEpfTtfLmdrPWZ1bmN0aW9uIFJvZShhKXtyZXR1cm4gJEMoWGJiLHJ2ZSwyMTE5LGEsMCwxKX07dmFyIEpjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMycsMTk2Myk7ZmViKDE5OTAsMSxPS2UsU29lKTtfLmZrPWZ1bmN0aW9uIFRvZShhKXtyZXR1cm4gWkQoYSwxNyl9O18uZ2s9ZnVuY3Rpb24gVW9lKGEpe3JldHVybiAkQyhiSixOdmUsMTcsYSwwLDEpfTt2YXIgemNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8zMCcsMTk5MCk7ZmViKDE5OTEsMSxPS2UsVm9lKTtfLmZrPWZ1bmN0aW9uIFdvZShhKXtyZXR1cm4gYkUoYSl9O18uZ2s9ZnVuY3Rpb24gWG9lKGEpe3JldHVybiAkQyhxSixOdmUsMixhLDYsMSl9O3ZhciBBY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzMxJywxOTkxKTtmZWIoMTk5MiwxLE9LZSxZb2UpO18uZms9ZnVuY3Rpb24gWm9lKGEpe3JldHVybiBaRChhLDE2OCl9O18uZ2s9ZnVuY3Rpb24gJG9lKGEpe3JldHVybiAkQyhlSixOdmUsMTY4LGEsMCwxKX07dmFyIEJjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMzInLDE5OTIpO2ZlYigxOTkzLDEsT0tlLF9vZSk7Xy5maz1mdW5jdGlvbiBhcGUoYSl7cmV0dXJuIGJFKGEpfTtfLmdrPWZ1bmN0aW9uIGJwZShhKXtyZXR1cm4gJEMocUosTnZlLDIsYSw2LDEpfTt2YXIgQ2NiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8zMycsMTk5Myk7ZmViKDE5OTQsMSxPS2UsY3BlKTtfLmZrPWZ1bmN0aW9uIGRwZShhKXtyZXR1cm4gYkUoYSl9O18uZ2s9ZnVuY3Rpb24gZXBlKGEpe3JldHVybiAkQyhxSixOdmUsMixhLDYsMSl9O3ZhciBEY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzM0JywxOTk0KTtmZWIoMTk5NSwxLE9LZSxmcGUpO18uZms9ZnVuY3Rpb24gZ3BlKGEpe3JldHVybiBiRShhKX07Xy5naz1mdW5jdGlvbiBocGUoYSl7cmV0dXJuICRDKHFKLE52ZSwyLGEsNiwxKX07dmFyIEVjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvMzUnLDE5OTUpO2ZlYigxOTk2LDEsT0tlLGlwZSk7Xy5maz1mdW5jdGlvbiBqcGUoYSl7cmV0dXJuIGJFKGEpfTtfLmdrPWZ1bmN0aW9uIGtwZShhKXtyZXR1cm4gJEMocUosTnZlLDIsYSw2LDEpfTt2YXIgRmNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8zNicsMTk5Nik7ZmViKDE5OTcsMSxPS2UsbHBlKTtfLmZrPWZ1bmN0aW9uIG1wZShhKXtyZXR1cm4gWkQoYSwxNSl9O18uZ2s9ZnVuY3Rpb24gbnBlKGEpe3JldHVybiAkQyhRSyxJemUsMTUsYSwwLDEpfTt2YXIgR2NiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8zNycsMTk5Nyk7ZmViKDE5OTgsMSxPS2Usb3BlKTtfLmZrPWZ1bmN0aW9uIHBwZShhKXtyZXR1cm4gWkQoYSwxNSl9O18uZ2s9ZnVuY3Rpb24gcXBlKGEpe3JldHVybiAkQyhRSyxJemUsMTUsYSwwLDEpfTt2YXIgSGNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC8zOCcsMTk5OCk7ZmViKDE5OTksMSxPS2UscnBlKTtfLmZrPWZ1bmN0aW9uIHNwZShhKXtyZXR1cm4gYkUoYSl9O18uZ2s9ZnVuY3Rpb24gdHBlKGEpe3JldHVybiAkQyhxSixOdmUsMixhLDYsMSl9O3ZhciBJY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzM5JywxOTk5KTtmZWIoMTk2NCwxLE9LZSx1cGUpO18uZms9ZnVuY3Rpb24gdnBlKGEpe3JldHVybiBaRChhLDY4Mil9O18uZ2s9ZnVuY3Rpb24gd3BlKGEpe3JldHVybiAkQyhZYmIscnZlLDIxMjAsYSwwLDEpfTt2YXIgVWNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC80JywxOTY0KTtmZWIoMjAwMCwxLE9LZSx4cGUpO18uZms9ZnVuY3Rpb24geXBlKGEpe3JldHVybiBiRShhKX07Xy5naz1mdW5jdGlvbiB6cGUoYSl7cmV0dXJuICRDKHFKLE52ZSwyLGEsNiwxKX07dmFyIEtjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvNDAnLDIwMDApO2ZlYigyMDAxLDEsT0tlLEFwZSk7Xy5maz1mdW5jdGlvbiBCcGUoYSl7cmV0dXJuIGJFKGEpfTtfLmdrPWZ1bmN0aW9uIENwZShhKXtyZXR1cm4gJEMocUosTnZlLDIsYSw2LDEpfTt2YXIgTGNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC80MScsMjAwMSk7ZmViKDIwMDIsMSxPS2UsRHBlKTtfLmZrPWZ1bmN0aW9uIEVwZShhKXtyZXR1cm4gYkUoYSl9O18uZ2s9ZnVuY3Rpb24gRnBlKGEpe3JldHVybiAkQyhxSixOdmUsMixhLDYsMSl9O3ZhciBNY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzQyJywyMDAyKTtmZWIoMjAwMywxLE9LZSxHcGUpO18uZms9ZnVuY3Rpb24gSHBlKGEpe3JldHVybiBiRShhKX07Xy5naz1mdW5jdGlvbiBJcGUoYSl7cmV0dXJuICRDKHFKLE52ZSwyLGEsNiwxKX07dmFyIE5jYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvNDMnLDIwMDMpO2ZlYigyMDA0LDEsT0tlLEpwZSk7Xy5maz1mdW5jdGlvbiBLcGUoYSl7cmV0dXJuIGJFKGEpfTtfLmdrPWZ1bmN0aW9uIExwZShhKXtyZXR1cm4gJEMocUosTnZlLDIsYSw2LDEpfTt2YXIgT2NiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC80NCcsMjAwNCk7ZmViKDIwMDUsMSxPS2UsTXBlKTtfLmZrPWZ1bmN0aW9uIE5wZShhKXtyZXR1cm4gWkQoYSwxOTEpfTtfLmdrPWZ1bmN0aW9uIE9wZShhKXtyZXR1cm4gJEMobEosTnZlLDE5MSxhLDAsMSl9O3ZhciBQY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzQ1JywyMDA1KTtmZWIoMjAwNiwxLE9LZSxQcGUpO18uZms9ZnVuY3Rpb24gUXBlKGEpe3JldHVybiBiRShhKX07Xy5naz1mdW5jdGlvbiBScGUoYSl7cmV0dXJuICRDKHFKLE52ZSwyLGEsNiwxKX07dmFyIFFjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvNDYnLDIwMDYpO2ZlYigyMDA3LDEsT0tlLFNwZSk7Xy5maz1mdW5jdGlvbiBUcGUoYSl7cmV0dXJuIGJFKGEpfTtfLmdrPWZ1bmN0aW9uIFVwZShhKXtyZXR1cm4gJEMocUosTnZlLDIsYSw2LDEpfTt2YXIgUmNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC80NycsMjAwNyk7ZmViKDIwMDgsMSxPS2UsVnBlKTtfLmZrPWZ1bmN0aW9uIFdwZShhKXtyZXR1cm4gYkUoYSl9O18uZ2s9ZnVuY3Rpb24gWHBlKGEpe3JldHVybiAkQyhxSixOdmUsMixhLDYsMSl9O3ZhciBTY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzQ4JywyMDA4KTtmZWIoMjAwOSwxLE9LZSxZcGUpO18uZms9ZnVuY3Rpb24gWnBlKGEpe3JldHVybiBaRChhLDE5MSl9O18uZ2s9ZnVuY3Rpb24gJHBlKGEpe3JldHVybiAkQyhsSixOdmUsMTkxLGEsMCwxKX07dmFyIFRjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvNDknLDIwMDkpO2ZlYigxOTY1LDEsT0tlLF9wZSk7Xy5maz1mdW5jdGlvbiBhcWUoYSl7cmV0dXJuIFpEKGEsNjgzKX07Xy5naz1mdW5jdGlvbiBicWUoYSl7cmV0dXJuICRDKFpiYixydmUsMjEyMSxhLDAsMSl9O3ZhciBZY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzUnLDE5NjUpO2ZlYigyMDEwLDEsT0tlLGNxZSk7Xy5maz1mdW5jdGlvbiBkcWUoYSl7cmV0dXJuIFpEKGEsMTY4KX07Xy5naz1mdW5jdGlvbiBlcWUoYSl7cmV0dXJuICRDKGVKLE52ZSwxNjgsYSwwLDEpfTt2YXIgVmNiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC81MCcsMjAxMCk7ZmViKDIwMTEsMSxPS2UsZnFlKTtfLmZrPWZ1bmN0aW9uIGdxZShhKXtyZXR1cm4gYkUoYSl9O18uZ2s9ZnVuY3Rpb24gaHFlKGEpe3JldHVybiAkQyhxSixOdmUsMixhLDYsMSl9O3ZhciBXY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzUxJywyMDExKTtmZWIoMjAxMiwxLE9LZSxpcWUpO18uZms9ZnVuY3Rpb24ganFlKGEpe3JldHVybiBaRChhLDE3KX07Xy5naz1mdW5jdGlvbiBrcWUoYSl7cmV0dXJuICRDKGJKLE52ZSwxNyxhLDAsMSl9O3ZhciBYY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzUyJywyMDEyKTtmZWIoMTk2NiwxLE9LZSxscWUpO18uZms9ZnVuY3Rpb24gbXFlKGEpe3JldHVybiBiRShhKX07Xy5naz1mdW5jdGlvbiBucWUoYSl7cmV0dXJuICRDKHFKLE52ZSwyLGEsNiwxKX07dmFyIFpjYj1zZmIobExlLCdYTUxUeXBlUGFja2FnZUltcGwvNicsMTk2Nik7ZmViKDE5NjcsMSxPS2Usb3FlKTtfLmZrPWZ1bmN0aW9uIHBxZShhKXtyZXR1cm4gWkQoYSwxOTUpfTtfLmdrPWZ1bmN0aW9uIHFxZShhKXtyZXR1cm4gJEMoZ0UsTnZlLDE5NSxhLDAsMil9O3ZhciAkY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzcnLDE5NjcpO2ZlYigxOTY4LDEsT0tlLHJxZSk7Xy5maz1mdW5jdGlvbiBzcWUoYSl7cmV0dXJuICREKGEpfTtfLmdrPWZ1bmN0aW9uIHRxZShhKXtyZXR1cm4gJEMoUUksTnZlLDQ4NSxhLDgsMSl9O3ZhciBfY2I9c2ZiKGxMZSwnWE1MVHlwZVBhY2thZ2VJbXBsLzgnLDE5NjgpO2ZlYigxOTY5LDEsT0tlLHVxZSk7Xy5maz1mdW5jdGlvbiB2cWUoYSl7cmV0dXJuIFpEKGEsMjIyKX07Xy5naz1mdW5jdGlvbiB3cWUoYSl7cmV0dXJuICRDKFJJLE52ZSwyMjIsYSwwLDEpfTt2YXIgYWRiPXNmYihsTGUsJ1hNTFR5cGVQYWNrYWdlSW1wbC85JywxOTY5KTt2YXIgeHFlLHlxZTt2YXIgRXFlLEZxZTt2YXIgSnFlO2ZlYig1NSw2Myxzd2UsTHFlKTt2YXIgY2RiPXNmYihMTGUsJ1JlZ0V4L1BhcnNlRXhjZXB0aW9uJyw1NSk7ZmViKDgzNiwxLHt9LFRxZSk7Xy5ibT1mdW5jdGlvbiBVcWUoYSl7cmV0dXJuIGE8dGhpcy5qJiZpaGIodGhpcy5pLGEpPT02M307Xy5jbT1mdW5jdGlvbiBWcWUoKXt2YXIgYSxiLGMsZCxlO2lmKHRoaXMuYyE9MTApdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxWSWUpKSkpO2E9dGhpcy5hO3N3aXRjaChhKXtjYXNlIDEwMTphPTI3O2JyZWFrO2Nhc2UgMTAyOmE9MTI7YnJlYWs7Y2FzZSAxMTA6YT0xMDticmVhaztjYXNlIDExNDphPTEzO2JyZWFrO2Nhc2UgMTE2OmE9OTticmVhaztjYXNlIDEyMDpNcWUodGhpcyk7aWYodGhpcy5jIT0wKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksc0plKSkpKTtpZih0aGlzLmE9PTEyMyl7ZT0wO2M9MDtkb3tNcWUodGhpcyk7aWYodGhpcy5jIT0wKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksc0plKSkpKTtpZigoZT1YcWUodGhpcy5hKSk8MClicmVhaztpZihjPmMqMTYpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSx0SmUpKSkpO2M9YyoxNitlfXdoaWxlKHRydWUpO2lmKHRoaXMuYSE9MTI1KXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksdUplKSkpKTtpZihjPk1MZSl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHZKZSkpKSk7YT1jfWVsc2V7ZT0wO2lmKHRoaXMuYyE9MHx8KGU9WHFlKHRoaXMuYSkpPDApdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxzSmUpKSkpO2M9ZTtNcWUodGhpcyk7aWYodGhpcy5jIT0wfHwoZT1YcWUodGhpcy5hKSk8MCl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHNKZSkpKSk7Yz1jKjE2K2U7YT1jfWJyZWFrO2Nhc2UgMTE3OmQ9MDtNcWUodGhpcyk7aWYodGhpcy5jIT0wfHwoZD1YcWUodGhpcy5hKSk8MCl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHNKZSkpKSk7Yj1kO01xZSh0aGlzKTtpZih0aGlzLmMhPTB8fChkPVhxZSh0aGlzLmEpKTwwKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksc0plKSkpKTtiPWIqMTYrZDtNcWUodGhpcyk7aWYodGhpcy5jIT0wfHwoZD1YcWUodGhpcy5hKSk8MCl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHNKZSkpKSk7Yj1iKjE2K2Q7TXFlKHRoaXMpO2lmKHRoaXMuYyE9MHx8KGQ9WHFlKHRoaXMuYSkpPDApdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxzSmUpKSkpO2I9YioxNitkO2E9YjticmVhaztjYXNlIDExODpNcWUodGhpcyk7aWYodGhpcy5jIT0wfHwoZD1YcWUodGhpcy5hKSk8MCl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHNKZSkpKSk7Yj1kO01xZSh0aGlzKTtpZih0aGlzLmMhPTB8fChkPVhxZSh0aGlzLmEpKTwwKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksc0plKSkpKTtiPWIqMTYrZDtNcWUodGhpcyk7aWYodGhpcy5jIT0wfHwoZD1YcWUodGhpcy5hKSk8MCl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHNKZSkpKSk7Yj1iKjE2K2Q7TXFlKHRoaXMpO2lmKHRoaXMuYyE9MHx8KGQ9WHFlKHRoaXMuYSkpPDApdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxzSmUpKSkpO2I9YioxNitkO01xZSh0aGlzKTtpZih0aGlzLmMhPTB8fChkPVhxZSh0aGlzLmEpKTwwKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksc0plKSkpKTtiPWIqMTYrZDtNcWUodGhpcyk7aWYodGhpcy5jIT0wfHwoZD1YcWUodGhpcy5hKSk8MCl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHNKZSkpKSk7Yj1iKjE2K2Q7aWYoYj5NTGUpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSwncGFyc2VyLmRlc2NhcHBlLjQnKSkpKTthPWI7YnJlYWs7Y2FzZSA2NTpjYXNlIDkwOmNhc2UgMTIyOnRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksd0plKSkpKTt9cmV0dXJuIGF9O18uZG09ZnVuY3Rpb24gV3FlKGEpe3ZhciBiLGM7c3dpdGNoKGEpe2Nhc2UgMTAwOmM9KHRoaXMuZSYzMik9PTMyP2h0ZSgnTmQnLHRydWUpOihWc2UoKSxCc2UpO2JyZWFrO2Nhc2UgNjg6Yz0odGhpcy5lJjMyKT09MzI/aHRlKCdOZCcsZmFsc2UpOihWc2UoKSxJc2UpO2JyZWFrO2Nhc2UgMTE5OmM9KHRoaXMuZSYzMik9PTMyP2h0ZSgnSXNXb3JkJyx0cnVlKTooVnNlKCksUnNlKTticmVhaztjYXNlIDg3OmM9KHRoaXMuZSYzMik9PTMyP2h0ZSgnSXNXb3JkJyxmYWxzZSk6KFZzZSgpLEtzZSk7YnJlYWs7Y2FzZSAxMTU6Yz0odGhpcy5lJjMyKT09MzI/aHRlKCdJc1NwYWNlJyx0cnVlKTooVnNlKCksTXNlKTticmVhaztjYXNlIDgzOmM9KHRoaXMuZSYzMik9PTMyP2h0ZSgnSXNTcGFjZScsZmFsc2UpOihWc2UoKSxKc2UpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgQWRiKG5ldyB5eigoYj1hLE5MZStiLnRvU3RyaW5nKDE2KSkpKTt9cmV0dXJuIGN9O18uZW09ZnVuY3Rpb24gWXFlKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbTt0aGlzLmI9MTtNcWUodGhpcyk7Yj1udWxsO2lmKHRoaXMuYz09MCYmdGhpcy5hPT05NCl7TXFlKHRoaXMpO2lmKGEpe2s9KFZzZSgpLFZzZSgpLCsrVXNlLG5ldyB4dGUoNSkpfWVsc2V7Yj0oVnNlKCksVnNlKCksKytVc2UsbmV3IHh0ZSg0KSk7cnRlKGIsMCxNTGUpO2s9KG51bGwsKytVc2UsbmV3IHh0ZSg0KSl9fWVsc2V7az0oVnNlKCksVnNlKCksKytVc2UsbmV3IHh0ZSg0KSl9ZT10cnVlO3doaWxlKChtPXRoaXMuYykhPTEpe2lmKG09PTAmJnRoaXMuYT09OTMmJiFlKWJyZWFrO2U9ZmFsc2U7Yz10aGlzLmE7ZD1mYWxzZTtpZihtPT0xMCl7c3dpdGNoKGMpe2Nhc2UgMTAwOmNhc2UgNjg6Y2FzZSAxMTk6Y2FzZSA4NzpjYXNlIDExNTpjYXNlIDgzOnV0ZShrLHRoaXMuZG0oYykpO2Q9dHJ1ZTticmVhaztjYXNlIDEwNTpjYXNlIDczOmNhc2UgOTk6Y2FzZSA2NzpjPXRoaXMudW0oayxjKTtjPDAmJihkPXRydWUpO2JyZWFrO2Nhc2UgMTEyOmNhc2UgODA6bD1TcWUodGhpcyxjKTtpZighbCl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLGhKZSkpKSk7dXRlKGssbCk7ZD10cnVlO2JyZWFrO2RlZmF1bHQ6Yz10aGlzLmNtKCk7fX1lbHNlIGlmKG09PTIwKXtnPXBoYih0aGlzLmksNTgsdGhpcy5kKTtpZihnPDApdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxpSmUpKSkpO2g9dHJ1ZTtpZihpaGIodGhpcy5pLHRoaXMuZCk9PTk0KXsrK3RoaXMuZDtoPWZhbHNlfWY9emhiKHRoaXMuaSx0aGlzLmQsZyk7aT1pdGUoZixoLCh0aGlzLmUmNTEyKT09NTEyKTtpZighaSl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLGtKZSkpKSk7dXRlKGssaSk7ZD10cnVlO2lmKGcrMT49dGhpcy5qfHxpaGIodGhpcy5pLGcrMSkhPTkzKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksaUplKSkpKTt0aGlzLmQ9ZysyfU1xZSh0aGlzKTtpZighZCl7aWYodGhpcy5jIT0wfHx0aGlzLmEhPTQ1KXtydGUoayxjLGMpfWVsc2V7TXFlKHRoaXMpO2lmKChtPXRoaXMuYyk9PTEpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxqSmUpKSkpO2lmKG09PTAmJnRoaXMuYT09OTMpe3J0ZShrLGMsYyk7cnRlKGssNDUsNDUpfWVsc2V7aj10aGlzLmE7bT09MTAmJihqPXRoaXMuY20oKSk7TXFlKHRoaXMpO3J0ZShrLGMsail9fX0odGhpcy5lJmd3ZSk9PWd3ZSYmdGhpcy5jPT0wJiZ0aGlzLmE9PTQ0JiZNcWUodGhpcyl9aWYodGhpcy5jPT0xKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksakplKSkpKTtpZihiKXt3dGUoYixrKTtrPWJ9dnRlKGspO3N0ZShrKTt0aGlzLmI9MDtNcWUodGhpcyk7cmV0dXJuIGt9O18uZm09ZnVuY3Rpb24gWnFlKCl7dmFyIGEsYixjLGQ7Yz10aGlzLmVtKGZhbHNlKTt3aGlsZSgoZD10aGlzLmMpIT03KXthPXRoaXMuYTtpZihkPT0wJiYoYT09NDV8fGE9PTM4KXx8ZD09NCl7TXFlKHRoaXMpO2lmKHRoaXMuYyE9OSl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHBKZSkpKSk7Yj10aGlzLmVtKGZhbHNlKTtpZihkPT00KXV0ZShjLGIpO2Vsc2UgaWYoYT09NDUpd3RlKGMsYik7ZWxzZSBpZihhPT0zOCl0dGUoYyxiKTtlbHNlIHRocm93IEFkYihuZXcgeXooJ0FTU0VSVCcpKX1lbHNle3Rocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCkscUplKSkpKX19TXFlKHRoaXMpO3JldHVybiBjfTtfLmdtPWZ1bmN0aW9uICRxZSgpe3ZhciBhLGI7YT10aGlzLmEtNDg7Yj0oVnNlKCksVnNlKCksKytVc2UsbmV3IGV1ZSgxMixudWxsLGEpKTshdGhpcy5nJiYodGhpcy5nPW5ldyBneWIpO2R5Yih0aGlzLmcsbmV3IEJ0ZShhKSk7TXFlKHRoaXMpO3JldHVybiBifTtfLmhtPWZ1bmN0aW9uIF9xZSgpe01xZSh0aGlzKTtyZXR1cm4gVnNlKCksTnNlfTtfLmltPWZ1bmN0aW9uIGFyZSgpe01xZSh0aGlzKTtyZXR1cm4gVnNlKCksTHNlfTtfLmptPWZ1bmN0aW9uIGJyZSgpe3Rocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCkseEplKSkpKX07Xy5rbT1mdW5jdGlvbiBjcmUoKXt0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHhKZSkpKSl9O18ubG09ZnVuY3Rpb24gZHJlKCl7TXFlKHRoaXMpO3JldHVybiBmdGUoKX07Xy5tbT1mdW5jdGlvbiBlcmUoKXtNcWUodGhpcyk7cmV0dXJuIFZzZSgpLFBzZX07Xy5ubT1mdW5jdGlvbiBmcmUoKXtNcWUodGhpcyk7cmV0dXJuIFZzZSgpLFNzZX07Xy5vbT1mdW5jdGlvbiBncmUoKXt2YXIgYTtpZih0aGlzLmQ+PXRoaXMuanx8KChhPWloYih0aGlzLmksdGhpcy5kKyspKSY2NTUwNCkhPTY0KXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksZEplKSkpKTtNcWUodGhpcyk7cmV0dXJuIFZzZSgpLFZzZSgpLCsrVXNlLG5ldyBIdGUoMCxhLTY0KX07Xy5wbT1mdW5jdGlvbiBocmUoKXtNcWUodGhpcyk7cmV0dXJuIGd0ZSgpfTtfLnFtPWZ1bmN0aW9uIGlyZSgpe01xZSh0aGlzKTtyZXR1cm4gVnNlKCksVHNlfTtfLnJtPWZ1bmN0aW9uIGpyZSgpe3ZhciBhO2E9KFZzZSgpLFZzZSgpLCsrVXNlLG5ldyBIdGUoMCwxMDUpKTtNcWUodGhpcyk7cmV0dXJuIGF9O18uc209ZnVuY3Rpb24ga3JlKCl7TXFlKHRoaXMpO3JldHVybiBWc2UoKSxRc2V9O18udG09ZnVuY3Rpb24gbHJlKCl7TXFlKHRoaXMpO3JldHVybiBWc2UoKSxPc2V9O18udW09ZnVuY3Rpb24gbXJlKGEsYil7cmV0dXJuIHRoaXMuY20oKX07Xy52bT1mdW5jdGlvbiBucmUoKXtNcWUodGhpcyk7cmV0dXJuIFZzZSgpLEdzZX07Xy53bT1mdW5jdGlvbiBvcmUoKXt2YXIgYSxiLGMsZCxlO2lmKHRoaXMuZCsxPj10aGlzLmopdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxhSmUpKSkpO2Q9LTE7Yj1udWxsO2E9aWhiKHRoaXMuaSx0aGlzLmQpO2lmKDQ5PD1hJiZhPD01Nyl7ZD1hLTQ4OyF0aGlzLmcmJih0aGlzLmc9bmV3IGd5Yik7ZHliKHRoaXMuZyxuZXcgQnRlKGQpKTsrK3RoaXMuZDtpZihpaGIodGhpcy5pLHRoaXMuZCkhPTQxKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksWkllKSkpKTsrK3RoaXMuZH1lbHNle2E9PTYzJiYtLXRoaXMuZDtNcWUodGhpcyk7Yj1QcWUodGhpcyk7c3dpdGNoKGIuZSl7Y2FzZSAyMDpjYXNlIDIxOmNhc2UgMjI6Y2FzZSAyMzpicmVhaztjYXNlIDg6aWYodGhpcy5jIT03KXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksWkllKSkpKTticmVhaztkZWZhdWx0OnRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksYkplKSkpKTt9fU1xZSh0aGlzKTtlPVFxZSh0aGlzKTtjPW51bGw7aWYoZS5lPT0yKXtpZihlLlBtKCkhPTIpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxjSmUpKSkpO2M9ZS5MbSgxKTtlPWUuTG0oMCl9aWYodGhpcy5jIT03KXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksWkllKSkpKTtNcWUodGhpcyk7cmV0dXJuIFZzZSgpLFZzZSgpLCsrVXNlLG5ldyBVdGUoZCxiLGUsYyl9O18ueG09ZnVuY3Rpb24gcHJlKCl7TXFlKHRoaXMpO3JldHVybiBWc2UoKSxIc2V9O18ueW09ZnVuY3Rpb24gcXJlKCl7dmFyIGE7TXFlKHRoaXMpO2E9X3NlKDI0LFFxZSh0aGlzKSk7aWYodGhpcy5jIT03KXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksWkllKSkpKTtNcWUodGhpcyk7cmV0dXJuIGF9O18uem09ZnVuY3Rpb24gcnJlKCl7dmFyIGE7TXFlKHRoaXMpO2E9X3NlKDIwLFFxZSh0aGlzKSk7aWYodGhpcy5jIT03KXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksWkllKSkpKTtNcWUodGhpcyk7cmV0dXJuIGF9O18uQW09ZnVuY3Rpb24gc3JlKCl7dmFyIGE7TXFlKHRoaXMpO2E9X3NlKDIyLFFxZSh0aGlzKSk7aWYodGhpcy5jIT03KXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksWkllKSkpKTtNcWUodGhpcyk7cmV0dXJuIGF9O18uQm09ZnVuY3Rpb24gdHJlKCl7dmFyIGEsYixjLGQsZTthPTA7Yz0wO2I9LTE7d2hpbGUodGhpcy5kPHRoaXMuail7Yj1paGIodGhpcy5pLHRoaXMuZCk7ZT1yc2UoYik7aWYoZT09MClicmVhazthfD1lOysrdGhpcy5kfWlmKHRoaXMuZD49dGhpcy5qKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksJEllKSkpKTtpZihiPT00NSl7Kyt0aGlzLmQ7d2hpbGUodGhpcy5kPHRoaXMuail7Yj1paGIodGhpcy5pLHRoaXMuZCk7ZT1yc2UoYik7aWYoZT09MClicmVhaztjfD1lOysrdGhpcy5kfWlmKHRoaXMuZD49dGhpcy5qKXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksJEllKSkpKX1pZihiPT01OCl7Kyt0aGlzLmQ7TXFlKHRoaXMpO2Q9YXRlKFFxZSh0aGlzKSxhLGMpO2lmKHRoaXMuYyE9Nyl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLFpJZSkpKSk7TXFlKHRoaXMpfWVsc2UgaWYoYj09NDEpeysrdGhpcy5kO01xZSh0aGlzKTtkPWF0ZShRcWUodGhpcyksYSxjKX1lbHNlIHRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksX0llKSkpKTtyZXR1cm4gZH07Xy5DbT1mdW5jdGlvbiB1cmUoKXt2YXIgYTtNcWUodGhpcyk7YT1fc2UoMjEsUXFlKHRoaXMpKTtpZih0aGlzLmMhPTcpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxaSWUpKSkpO01xZSh0aGlzKTtyZXR1cm4gYX07Xy5EbT1mdW5jdGlvbiB2cmUoKXt2YXIgYTtNcWUodGhpcyk7YT1fc2UoMjMsUXFlKHRoaXMpKTtpZih0aGlzLmMhPTcpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxaSWUpKSkpO01xZSh0aGlzKTtyZXR1cm4gYX07Xy5FbT1mdW5jdGlvbiB3cmUoKXt2YXIgYSxiO01xZSh0aGlzKTthPXRoaXMuZisrO2I9YnRlKFFxZSh0aGlzKSxhKTtpZih0aGlzLmMhPTcpdGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSxaSWUpKSkpO01xZSh0aGlzKTtyZXR1cm4gYn07Xy5GbT1mdW5jdGlvbiB4cmUoKXt2YXIgYTtNcWUodGhpcyk7YT1idGUoUXFlKHRoaXMpLDApO2lmKHRoaXMuYyE9Nyl0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLFpJZSkpKSk7TXFlKHRoaXMpO3JldHVybiBhfTtfLkdtPWZ1bmN0aW9uIHlyZShhKXtNcWUodGhpcyk7aWYodGhpcy5jPT01KXtNcWUodGhpcyk7cmV0dXJuICRzZShhLChWc2UoKSxWc2UoKSwrK1VzZSxuZXcgS3RlKDksYSkpKX1lbHNlIHJldHVybiAkc2UoYSwoVnNlKCksVnNlKCksKytVc2UsbmV3IEt0ZSgzLGEpKSl9O18uSG09ZnVuY3Rpb24genJlKGEpe3ZhciBiO01xZSh0aGlzKTtiPShWc2UoKSxWc2UoKSwrK1VzZSxuZXcgaXVlKDIpKTtpZih0aGlzLmM9PTUpe01xZSh0aGlzKTtodWUoYiwobnVsbCxFc2UpKTtodWUoYixhKX1lbHNle2h1ZShiLGEpO2h1ZShiLChudWxsLEVzZSkpfXJldHVybiBifTtfLkltPWZ1bmN0aW9uIEFyZShhKXtNcWUodGhpcyk7aWYodGhpcy5jPT01KXtNcWUodGhpcyk7cmV0dXJuIFZzZSgpLFZzZSgpLCsrVXNlLG5ldyBLdGUoOSxhKX1lbHNlIHJldHVybiBWc2UoKSxWc2UoKSwrK1VzZSxuZXcgS3RlKDMsYSl9O18uYT0wO18uYj0wO18uYz0wO18uZD0wO18uZT0wO18uZj0xO18uZz1udWxsO18uaj0wO3ZhciBnZGI9c2ZiKExMZSwnUmVnRXgvUmVnZXhQYXJzZXInLDgzNik7ZmViKDE5NDcsODM2LHt9LEdyZSk7Xy5ibT1mdW5jdGlvbiBIcmUoYSl7cmV0dXJuIGZhbHNlfTtfLmNtPWZ1bmN0aW9uIElyZSgpe3JldHVybiBEcmUodGhpcyl9O18uZG09ZnVuY3Rpb24gS3JlKGEpe3JldHVybiBFcmUoYSl9O18uZW09ZnVuY3Rpb24gTHJlKGEpe3JldHVybiBGcmUodGhpcyl9O18uZm09ZnVuY3Rpb24gTXJlKCl7dGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSx4SmUpKSkpfTtfLmdtPWZ1bmN0aW9uIE5yZSgpe3Rocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCkseEplKSkpKX07Xy5obT1mdW5jdGlvbiBPcmUoKXt0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHhKZSkpKSl9O18uaW09ZnVuY3Rpb24gUHJlKCl7dGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSx4SmUpKSkpfTtfLmptPWZ1bmN0aW9uIFFyZSgpe01xZSh0aGlzKTtyZXR1cm4gRXJlKDY3KX07Xy5rbT1mdW5jdGlvbiBScmUoKXtNcWUodGhpcyk7cmV0dXJuIEVyZSg3Myl9O18ubG09ZnVuY3Rpb24gU3JlKCl7dGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSx4SmUpKSkpfTtfLm1tPWZ1bmN0aW9uIFRyZSgpe3Rocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCkseEplKSkpKX07Xy5ubT1mdW5jdGlvbiBVcmUoKXt0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHhKZSkpKSl9O18ub209ZnVuY3Rpb24gVnJlKCl7TXFlKHRoaXMpO3JldHVybiBFcmUoOTkpfTtfLnBtPWZ1bmN0aW9uIFdyZSgpe3Rocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCkseEplKSkpKX07Xy5xbT1mdW5jdGlvbiBYcmUoKXt0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHhKZSkpKSl9O18ucm09ZnVuY3Rpb24gWXJlKCl7TXFlKHRoaXMpO3JldHVybiBFcmUoMTA1KX07Xy5zbT1mdW5jdGlvbiBacmUoKXt0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHhKZSkpKSl9O18udG09ZnVuY3Rpb24gJHJlKCl7dGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSx4SmUpKSkpfTtfLnVtPWZ1bmN0aW9uIF9yZShhLGIpe3JldHVybiB1dGUoYSxFcmUoYikpLC0xfTtfLnZtPWZ1bmN0aW9uIGFzZSgpe01xZSh0aGlzKTtyZXR1cm4gVnNlKCksVnNlKCksKytVc2UsbmV3IEh0ZSgwLDk0KX07Xy53bT1mdW5jdGlvbiBic2UoKXt0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHhKZSkpKSl9O18ueG09ZnVuY3Rpb24gY3NlKCl7TXFlKHRoaXMpO3JldHVybiBWc2UoKSxWc2UoKSwrK1VzZSxuZXcgSHRlKDAsMzYpfTtfLnltPWZ1bmN0aW9uIGRzZSgpe3Rocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCkseEplKSkpKX07Xy56bT1mdW5jdGlvbiBlc2UoKXt0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHhKZSkpKSl9O18uQW09ZnVuY3Rpb24gZnNlKCl7dGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSx4SmUpKSkpfTtfLkJtPWZ1bmN0aW9uIGdzZSgpe3Rocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCkseEplKSkpKX07Xy5DbT1mdW5jdGlvbiBoc2UoKXt0aHJvdyBBZGIobmV3IExxZShUSWQoKEhkZSgpLHhKZSkpKSl9O18uRG09ZnVuY3Rpb24gaXNlKCl7dGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSx4SmUpKSkpfTtfLkVtPWZ1bmN0aW9uIGpzZSgpe3ZhciBhO01xZSh0aGlzKTthPWJ0ZShRcWUodGhpcyksMCk7aWYodGhpcy5jIT03KXRocm93IEFkYihuZXcgTHFlKFRJZCgoSGRlKCksWkllKSkpKTtNcWUodGhpcyk7cmV0dXJuIGF9O18uRm09ZnVuY3Rpb24ga3NlKCl7dGhyb3cgQWRiKG5ldyBMcWUoVElkKChIZGUoKSx4SmUpKSkpfTtfLkdtPWZ1bmN0aW9uIGxzZShhKXtNcWUodGhpcyk7cmV0dXJuICRzZShhLChWc2UoKSxWc2UoKSwrK1VzZSxuZXcgS3RlKDMsYSkpKX07Xy5IbT1mdW5jdGlvbiBtc2UoYSl7dmFyIGI7TXFlKHRoaXMpO2I9KFZzZSgpLFZzZSgpLCsrVXNlLG5ldyBpdWUoMikpO2h1ZShiLGEpO2h1ZShiLChudWxsLEVzZSkpO3JldHVybiBifTtfLkltPWZ1bmN0aW9uIG5zZShhKXtNcWUodGhpcyk7cmV0dXJuIFZzZSgpLFZzZSgpLCsrVXNlLG5ldyBLdGUoMyxhKX07dmFyIEJyZT1udWxsLENyZT1udWxsO3ZhciBkZGI9c2ZiKExMZSwnUmVnRXgvUGFyc2VyRm9yWE1MU2NoZW1hJywxOTQ3KTtmZWIoMTIyLDEsWkxlLFdzZSk7Xy5KbT1mdW5jdGlvbiBYc2UoYSl7dGhyb3cgQWRiKG5ldyB5eignTm90IHN1cHBvcnRlZC4nKSl9O18uS209ZnVuY3Rpb24gZHRlKCl7cmV0dXJuIC0xfTtfLkxtPWZ1bmN0aW9uIGV0ZShhKXtyZXR1cm4gbnVsbH07Xy5NbT1mdW5jdGlvbiBqdGUoKXtyZXR1cm4gbnVsbH07Xy5ObT1mdW5jdGlvbiBtdGUoYSl7fTtfLk9tPWZ1bmN0aW9uIG50ZShhKXt9O18uUG09ZnVuY3Rpb24gb3RlKCl7cmV0dXJuIDB9O18uSWI9ZnVuY3Rpb24gcHRlKCl7cmV0dXJuIHRoaXMuUW0oMCl9O18uUW09ZnVuY3Rpb24gcXRlKGEpe3JldHVybiB0aGlzLmU9PTExPycuJzonJ307Xy5lPTA7dmFyIHZzZSx3c2UseHNlLHlzZSx6c2UsQXNlPW51bGwsQnNlLENzZT1udWxsLERzZSxFc2UsRnNlPW51bGwsR3NlLEhzZSxJc2UsSnNlLEtzZSxMc2UsTXNlLE5zZSxPc2UsUHNlLFFzZSxSc2UsU3NlLFRzZSxVc2U9MDt2YXIgcWRiPXNmYihMTGUsJ1JlZ0V4L1Rva2VuJywxMjIpO2ZlYigxMzgsMTIyLHszOjEsMTM4OjEsMTIyOjF9LHh0ZSk7Xy5RbT1mdW5jdGlvbiBBdGUoYSl7dmFyIGIsYyxkO2lmKHRoaXMuZT09NCl7aWYodGhpcz09RHNlKWM9Jy4nO2Vsc2UgaWYodGhpcz09QnNlKWM9J1xcXFxkJztlbHNlIGlmKHRoaXM9PVJzZSljPSdcXFxcdyc7ZWxzZSBpZih0aGlzPT1Nc2UpYz0nXFxcXHMnO2Vsc2V7ZD1uZXcgUWhiO2QuYSs9J1snO2ZvcihiPTA7Yjx0aGlzLmIubGVuZ3RoO2IrPTIpeyhhJmd3ZSkhPTAmJmI+MCYmKGQuYSs9JywnLGQpO2lmKHRoaXMuYltiXT09PXRoaXMuYltiKzFdKXtOaGIoZCx6dGUodGhpcy5iW2JdKSl9ZWxzZXtOaGIoZCx6dGUodGhpcy5iW2JdKSk7ZC5hKz0nLSc7TmhiKGQsenRlKHRoaXMuYltiKzFdKSl9fWQuYSs9J10nO2M9ZC5hfX1lbHNle2lmKHRoaXM9PUlzZSljPSdcXFxcRCc7ZWxzZSBpZih0aGlzPT1Lc2UpYz0nXFxcXFcnO2Vsc2UgaWYodGhpcz09SnNlKWM9J1xcXFxTJztlbHNle2Q9bmV3IFFoYjtkLmErPSdbXic7Zm9yKGI9MDtiPHRoaXMuYi5sZW5ndGg7Yis9Mil7KGEmZ3dlKSE9MCYmYj4wJiYoZC5hKz0nLCcsZCk7aWYodGhpcy5iW2JdPT09dGhpcy5iW2IrMV0pe05oYihkLHp0ZSh0aGlzLmJbYl0pKX1lbHNle05oYihkLHp0ZSh0aGlzLmJbYl0pKTtkLmErPSctJztOaGIoZCx6dGUodGhpcy5iW2IrMV0pKX19ZC5hKz0nXSc7Yz1kLmF9fXJldHVybiBjfTtfLmE9ZmFsc2U7Xy5jPWZhbHNlO3ZhciBlZGI9c2ZiKExMZSwnUmVnRXgvUmFuZ2VUb2tlbicsMTM4KTtmZWIoNTkyLDEsezU5MjoxfSxCdGUpO18uYT0wO3ZhciBmZGI9c2ZiKExMZSwnUmVnRXgvUmVnZXhQYXJzZXIvUmVmZXJlbmNlUG9zaXRpb24nLDU5Mik7ZmViKDU5MSwxLHszOjEsNTkxOjF9LER0ZSk7Xy5GYj1mdW5jdGlvbiBFdGUoYSl7dmFyIGI7aWYoYT09bnVsbClyZXR1cm4gZmFsc2U7aWYoIVpEKGEsNTkxKSlyZXR1cm4gZmFsc2U7Yj1SRChhLDU5MSk7cmV0dXJuIGxoYih0aGlzLmIsYi5iKSYmdGhpcy5hPT1iLmF9O18uSGI9ZnVuY3Rpb24gRnRlKCl7cmV0dXJuIG9oYih0aGlzLmIrJy8nK3BzZSh0aGlzLmEpKX07Xy5JYj1mdW5jdGlvbiBHdGUoKXtyZXR1cm4gdGhpcy5jLlFtKHRoaXMuYSl9O18uYT0wO3ZhciBoZGI9c2ZiKExMZSwnUmVnRXgvUmVndWxhckV4cHJlc3Npb24nLDU5MSk7ZmViKDIyOCwxMjIsWkxlLEh0ZSk7Xy5LbT1mdW5jdGlvbiBJdGUoKXtyZXR1cm4gdGhpcy5hfTtfLlFtPWZ1bmN0aW9uIEp0ZShhKXt2YXIgYixjLGQ7c3dpdGNoKHRoaXMuZSl7Y2FzZSAwOnN3aXRjaCh0aGlzLmEpe2Nhc2UgMTI0OmNhc2UgNDI6Y2FzZSA0MzpjYXNlIDYzOmNhc2UgNDA6Y2FzZSA0MTpjYXNlIDQ2OmNhc2UgOTE6Y2FzZSAxMjM6Y2FzZSA5MjpkPSdcXFxcJytYRCh0aGlzLmEmQndlKTticmVhaztjYXNlIDEyOmQ9J1xcXFxmJzticmVhaztjYXNlIDEwOmQ9J1xcXFxuJzticmVhaztjYXNlIDEzOmQ9J1xcXFxyJzticmVhaztjYXNlIDk6ZD0nXFxcXHQnO2JyZWFrO2Nhc2UgMjc6ZD0nXFxcXGUnO2JyZWFrO2RlZmF1bHQ6aWYodGhpcy5hPj10eGUpe2M9KGI9dGhpcy5hPj4+MCwnMCcrYi50b1N0cmluZygxNikpO2Q9J1xcXFx2Jyt6aGIoYyxjLmxlbmd0aC02LGMubGVuZ3RoKX1lbHNlIGQ9JycrWEQodGhpcy5hJkJ3ZSk7fWJyZWFrO2Nhc2UgODp0aGlzPT1Hc2V8fHRoaXM9PUhzZT8oZD0nJytYRCh0aGlzLmEmQndlKSk6KGQ9J1xcXFwnK1hEKHRoaXMuYSZCd2UpKTticmVhaztkZWZhdWx0OmQ9bnVsbDt9cmV0dXJuIGR9O18uYT0wO3ZhciBpZGI9c2ZiKExMZSwnUmVnRXgvVG9rZW4vQ2hhclRva2VuJywyMjgpO2ZlYigzMTgsMTIyLFpMZSxLdGUpO18uTG09ZnVuY3Rpb24gTHRlKGEpe3JldHVybiB0aGlzLmF9O18uTm09ZnVuY3Rpb24gTXRlKGEpe3RoaXMuYj1hfTtfLk9tPWZ1bmN0aW9uIE50ZShhKXt0aGlzLmM9YX07Xy5QbT1mdW5jdGlvbiBPdGUoKXtyZXR1cm4gMX07Xy5RbT1mdW5jdGlvbiBQdGUoYSl7dmFyIGI7aWYodGhpcy5lPT0zKXtpZih0aGlzLmM8MCYmdGhpcy5iPDApe2I9dGhpcy5hLlFtKGEpKycqJ31lbHNlIGlmKHRoaXMuYz09dGhpcy5iKXtiPXRoaXMuYS5RbShhKSsneycrdGhpcy5jKyd9J31lbHNlIGlmKHRoaXMuYz49MCYmdGhpcy5iPj0wKXtiPXRoaXMuYS5RbShhKSsneycrdGhpcy5jKycsJyt0aGlzLmIrJ30nfWVsc2UgaWYodGhpcy5jPj0wJiZ0aGlzLmI8MCl7Yj10aGlzLmEuUW0oYSkrJ3snK3RoaXMuYysnLH0nfWVsc2UgdGhyb3cgQWRiKG5ldyB5eignVG9rZW4jdG9TdHJpbmcoKTogQ0xPU1VSRSAnK3RoaXMuYytwdmUrdGhpcy5iKSl9ZWxzZXtpZih0aGlzLmM8MCYmdGhpcy5iPDApe2I9dGhpcy5hLlFtKGEpKycqPyd9ZWxzZSBpZih0aGlzLmM9PXRoaXMuYil7Yj10aGlzLmEuUW0oYSkrJ3snK3RoaXMuYysnfT8nfWVsc2UgaWYodGhpcy5jPj0wJiZ0aGlzLmI+PTApe2I9dGhpcy5hLlFtKGEpKyd7Jyt0aGlzLmMrJywnK3RoaXMuYisnfT8nfWVsc2UgaWYodGhpcy5jPj0wJiZ0aGlzLmI8MCl7Yj10aGlzLmEuUW0oYSkrJ3snK3RoaXMuYysnLH0/J31lbHNlIHRocm93IEFkYihuZXcgeXooJ1Rva2VuI3RvU3RyaW5nKCk6IE5PTkdSRUVEWUNMT1NVUkUgJyt0aGlzLmMrcHZlK3RoaXMuYikpfXJldHVybiBifTtfLmI9MDtfLmM9MDt2YXIgamRiPXNmYihMTGUsJ1JlZ0V4L1Rva2VuL0Nsb3N1cmVUb2tlbicsMzE4KTtmZWIoODM3LDEyMixaTGUsUXRlKTtfLkxtPWZ1bmN0aW9uIFJ0ZShhKXtyZXR1cm4gYT09MD90aGlzLmE6dGhpcy5ifTtfLlBtPWZ1bmN0aW9uIFN0ZSgpe3JldHVybiAyfTtfLlFtPWZ1bmN0aW9uIFR0ZShhKXt2YXIgYjt0aGlzLmIuZT09MyYmdGhpcy5iLkxtKDApPT10aGlzLmE/KGI9dGhpcy5hLlFtKGEpKycrJyk6dGhpcy5iLmU9PTkmJnRoaXMuYi5MbSgwKT09dGhpcy5hPyhiPXRoaXMuYS5RbShhKSsnKz8nKTooYj10aGlzLmEuUW0oYSkrKCcnK3RoaXMuYi5RbShhKSkpO3JldHVybiBifTt2YXIga2RiPXNmYihMTGUsJ1JlZ0V4L1Rva2VuL0NvbmNhdFRva2VuJyw4MzcpO2ZlYigxOTQ1LDEyMixaTGUsVXRlKTtfLkxtPWZ1bmN0aW9uIFZ0ZShhKXtpZihhPT0wKXJldHVybiB0aGlzLmQ7aWYoYT09MSlyZXR1cm4gdGhpcy5iO3Rocm93IEFkYihuZXcgeXooJ0ludGVybmFsIEVycm9yOiAnK2EpKX07Xy5QbT1mdW5jdGlvbiBXdGUoKXtyZXR1cm4gIXRoaXMuYj8xOjJ9O18uUW09ZnVuY3Rpb24gWHRlKGEpe3ZhciBiO3RoaXMuYz4wPyhiPScoPygnK3RoaXMuYysnKScpOnRoaXMuYS5lPT04PyhiPScoPygnK3RoaXMuYSsnKScpOihiPScoPycrdGhpcy5hKTshdGhpcy5iPyhiKz10aGlzLmQrJyknKTooYis9dGhpcy5kKyd8Jyt0aGlzLmIrJyknKTtyZXR1cm4gYn07Xy5jPTA7dmFyIGxkYj1zZmIoTExlLCdSZWdFeC9Ub2tlbi9Db25kaXRpb25Ub2tlbicsMTk0NSk7ZmViKDE5NDYsMTIyLFpMZSxZdGUpO18uTG09ZnVuY3Rpb24gWnRlKGEpe3JldHVybiB0aGlzLmJ9O18uUG09ZnVuY3Rpb24gJHRlKCl7cmV0dXJuIDF9O18uUW09ZnVuY3Rpb24gX3RlKGEpe3JldHVybiAnKD8nKyh0aGlzLmE9PTA/Jyc6cHNlKHRoaXMuYSkpKyh0aGlzLmM9PTA/Jyc6cHNlKHRoaXMuYykpKyc6Jyt0aGlzLmIuUW0oYSkrJyknfTtfLmE9MDtfLmM9MDt2YXIgbWRiPXNmYihMTGUsJ1JlZ0V4L1Rva2VuL01vZGlmaWVyVG9rZW4nLDE5NDYpO2ZlYig4MzgsMTIyLFpMZSxhdWUpO18uTG09ZnVuY3Rpb24gYnVlKGEpe3JldHVybiB0aGlzLmF9O18uUG09ZnVuY3Rpb24gY3VlKCl7cmV0dXJuIDF9O18uUW09ZnVuY3Rpb24gZHVlKGEpe3ZhciBiO2I9bnVsbDtzd2l0Y2godGhpcy5lKXtjYXNlIDY6dGhpcy5iPT0wPyhiPScoPzonK3RoaXMuYS5RbShhKSsnKScpOihiPScoJyt0aGlzLmEuUW0oYSkrJyknKTticmVhaztjYXNlIDIwOmI9Jyg/PScrdGhpcy5hLlFtKGEpKycpJzticmVhaztjYXNlIDIxOmI9Jyg/IScrdGhpcy5hLlFtKGEpKycpJzticmVhaztjYXNlIDIyOmI9Jyg/PD0nK3RoaXMuYS5RbShhKSsnKSc7YnJlYWs7Y2FzZSAyMzpiPScoPzwhJyt0aGlzLmEuUW0oYSkrJyknO2JyZWFrO2Nhc2UgMjQ6Yj0nKD8+Jyt0aGlzLmEuUW0oYSkrJyknO31yZXR1cm4gYn07Xy5iPTA7dmFyIG5kYj1zZmIoTExlLCdSZWdFeC9Ub2tlbi9QYXJlblRva2VuJyw4MzgpO2ZlYig1MzAsMTIyLHszOjEsMTIyOjEsNTMwOjF9LGV1ZSk7Xy5NbT1mdW5jdGlvbiBmdWUoKXtyZXR1cm4gdGhpcy5ifTtfLlFtPWZ1bmN0aW9uIGd1ZShhKXtyZXR1cm4gdGhpcy5lPT0xMj8nXFxcXCcrdGhpcy5hOnRzZSh0aGlzLmIpfTtfLmE9MDt2YXIgb2RiPXNmYihMTGUsJ1JlZ0V4L1Rva2VuL1N0cmluZ1Rva2VuJyw1MzApO2ZlYig0NzcsMTIyLFpMZSxpdWUpO18uSm09ZnVuY3Rpb24ganVlKGEpe2h1ZSh0aGlzLGEpfTtfLkxtPWZ1bmN0aW9uIGt1ZShhKXtyZXR1cm4gUkQoZXliKHRoaXMuYSxhKSwxMjIpfTtfLlBtPWZ1bmN0aW9uIGx1ZSgpe3JldHVybiAhdGhpcy5hPzA6dGhpcy5hLmEuYy5sZW5ndGh9O18uUW09ZnVuY3Rpb24gbXVlKGEpe3ZhciBiLGMsZCxlLGY7aWYodGhpcy5lPT0xKXtpZih0aGlzLmEuYS5jLmxlbmd0aD09Mil7Yj1SRChleWIodGhpcy5hLDApLDEyMik7Yz1SRChleWIodGhpcy5hLDEpLDEyMik7Yy5lPT0zJiZjLkxtKDApPT1iPyhlPWIuUW0oYSkrJysnKTpjLmU9PTkmJmMuTG0oMCk9PWI/KGU9Yi5RbShhKSsnKz8nKTooZT1iLlFtKGEpKygnJytjLlFtKGEpKSl9ZWxzZXtmPW5ldyBRaGI7Zm9yKGQ9MDtkPHRoaXMuYS5hLmMubGVuZ3RoO2QrKyl7TmhiKGYsUkQoZXliKHRoaXMuYSxkKSwxMjIpLlFtKGEpKX1lPWYuYX1yZXR1cm4gZX1pZih0aGlzLmEuYS5jLmxlbmd0aD09MiYmUkQoZXliKHRoaXMuYSwxKSwxMjIpLmU9PTcpe2U9UkQoZXliKHRoaXMuYSwwKSwxMjIpLlFtKGEpKyc/J31lbHNlIGlmKHRoaXMuYS5hLmMubGVuZ3RoPT0yJiZSRChleWIodGhpcy5hLDApLDEyMikuZT09Nyl7ZT1SRChleWIodGhpcy5hLDEpLDEyMikuUW0oYSkrJz8/J31lbHNle2Y9bmV3IFFoYjtOaGIoZixSRChleWIodGhpcy5hLDApLDEyMikuUW0oYSkpO2ZvcihkPTE7ZDx0aGlzLmEuYS5jLmxlbmd0aDtkKyspe2YuYSs9J3wnO05oYihmLFJEKGV5Yih0aGlzLmEsZCksMTIyKS5RbShhKSl9ZT1mLmF9cmV0dXJuIGV9O3ZhciBwZGI9c2ZiKExMZSwnUmVnRXgvVG9rZW4vVW5pb25Ub2tlbicsNDc3KTtmZWIoNTI3LDEsezYwMDoxfSxvdWUpO18uSWI9ZnVuY3Rpb24gcHVlKCl7cmV0dXJuIHRoaXMuYS5ifTt2YXIgcmRiPXNmYigkTGUsJ1hNTFR5cGVVdGlsL1BhdHRlcm5NYXRjaGVySW1wbCcsNTI3KTtmZWIoMTcwNywxNTI3LHt9LHN1ZSk7dmFyIHF1ZTt2YXIgc2RiPXNmYigkTGUsJ1hNTFR5cGVWYWxpZGF0b3InLDE3MDcpO2ZlYigyNzAsMSxWdmUsdnVlKTtfLkpjPWZ1bmN0aW9uIHd1ZShhKXt4Z2IodGhpcyxhKX07Xy5LYz1mdW5jdGlvbiB4dWUoKXtyZXR1cm4gKHRoaXMuYi10aGlzLmEpKnRoaXMuYzwwP3R1ZTpuZXcgUnVlKHRoaXMpfTtfLmE9MDtfLmI9MDtfLmM9MDt2YXIgdHVlO3ZhciB2ZGI9c2ZiKGFNZSwnRXhjbHVzaXZlUmFuZ2UnLDI3MCk7ZmViKDEwODQsMSxKdmUsQ3VlKTtfLlJiPWZ1bmN0aW9uIER1ZShhKXtSRChhLDE3KTt5dWUoKX07Xy5OYj1mdW5jdGlvbiBFdWUoYSl7WnRiKHRoaXMsYSl9O18uUGI9ZnVuY3Rpb24gSHVlKCl7cmV0dXJuIHp1ZSgpfTtfLlViPWZ1bmN0aW9uIEp1ZSgpe3JldHVybiBBdWUoKX07Xy5XYj1mdW5jdGlvbiBNdWUoYSl7UkQoYSwxNyk7QnVlKCl9O18uT2I9ZnVuY3Rpb24gRnVlKCl7cmV0dXJuIGZhbHNlfTtfLlNiPWZ1bmN0aW9uIEd1ZSgpe3JldHVybiBmYWxzZX07Xy5UYj1mdW5jdGlvbiBJdWUoKXtyZXR1cm4gLTF9O18uVmI9ZnVuY3Rpb24gS3VlKCl7cmV0dXJuIC0xfTtfLlFiPWZ1bmN0aW9uIEx1ZSgpe3Rocm93IEFkYihuZXcga2liKGRNZSkpfTt2YXIgdGRiPXNmYihhTWUsJ0V4Y2x1c2l2ZVJhbmdlLzEnLDEwODQpO2ZlYigyNTgsMSxKdmUsUnVlKTtfLlJiPWZ1bmN0aW9uIFN1ZShhKXtSRChhLDE3KTtOdWUoKX07Xy5OYj1mdW5jdGlvbiBUdWUoYSl7WnRiKHRoaXMsYSl9O18uUGI9ZnVuY3Rpb24gV3VlKCl7cmV0dXJuIE91ZSh0aGlzKX07Xy5VYj1mdW5jdGlvbiBZdWUoKXtyZXR1cm4gUHVlKHRoaXMpfTtfLldiPWZ1bmN0aW9uIF91ZShhKXtSRChhLDE3KTtRdWUoKX07Xy5PYj1mdW5jdGlvbiBVdWUoKXtyZXR1cm4gdGhpcy5jLmM8MD90aGlzLmE+PXRoaXMuYy5iOnRoaXMuYTw9dGhpcy5jLmJ9O18uU2I9ZnVuY3Rpb24gVnVlKCl7cmV0dXJuIHRoaXMuYj4wfTtfLlRiPWZ1bmN0aW9uIFh1ZSgpe3JldHVybiB0aGlzLmJ9O18uVmI9ZnVuY3Rpb24gWnVlKCl7cmV0dXJuIHRoaXMuYi0xfTtfLlFiPWZ1bmN0aW9uICR1ZSgpe3Rocm93IEFkYihuZXcga2liKGRNZSkpfTtfLmE9MDtfLmI9MDt2YXIgdWRiPXNmYihhTWUsJ0V4Y2x1c2l2ZVJhbmdlL1JhbmdlSXRlcmF0b3InLDI1OCk7dmFyIGhFPXZmYihlS2UsJ0MnKTt2YXIga0U9dmZiKGhLZSwnSScpO3ZhciB4ZGI9dmZiKGh2ZSwnWicpO3ZhciBsRT12ZmIoaUtlLCdKJyk7dmFyIGdFPXZmYihkS2UsJ0InKTt2YXIgaUU9dmZiKGZLZSwnRCcpO3ZhciBqRT12ZmIoZ0tlLCdGJyk7dmFyIHdkYj12ZmIoaktlLCdTJyk7dmFyIGczPXVmYignb3JnLmVjbGlwc2UuZWxrLmNvcmUubGFiZWxzJywnSUxhYmVsTWFuYWdlcicpO3ZhciBUNj11ZmIoc0llLCdEaWFnbm9zdGljQ2hhaW4nKTt2YXIgemFiPXVmYihRS2UsJ1Jlc291cmNlU2V0Jyk7dmFyICQ2PXNmYihzSWUsJ0ludm9jYXRpb25UYXJnZXRFeGNlcHRpb24nLG51bGwpO3ZhciBmdmU9KFF6KCksVHopO3ZhciBnd3RPbkxvYWQ9Z3d0T25Mb2FkPWNlYjthZWIobGViKTtkZWIoJ3Blcm1Qcm9wcycsW1tbJ2xvY2FsZScsJ2RlZmF1bHQnXSxbZU1lLCdnZWNrbzFfOCddXSxbWydsb2NhbGUnLCdkZWZhdWx0J10sW2VNZSwnc2FmYXJpJ11dXSk7XG4vLyAtLS0tLS0tLS0tLS0tLSAgICBSVU4gR1dUIElOSVRJQUxJWkFUSU9OIENPREUgICAgLS0tLS0tLS0tLS0tLS0gXG5nd3RPbkxvYWQobnVsbCwgJ2VsaycsIG51bGwpO1xuXG59KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWwgOiB0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiA/IHNlbGYgOiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93IDoge30pXG59LHt9XSwzOltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXtcbid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IChjKSAyMDIxIEtpZWwgVW5pdmVyc2l0eSBhbmQgb3RoZXJzLlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlXG4gKiB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAgd2hpY2ggaXMgYXZhaWxhYmxlIGF0XG4gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAuXG4gKiBcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbnZhciBFTEsgPSByZXF1aXJlKCcuL2Vsay1hcGkuanMnKS5kZWZhdWx0O1xuXG52YXIgRUxLTm9kZSA9IGZ1bmN0aW9uIChfRUxLKSB7XG4gIF9pbmhlcml0cyhFTEtOb2RlLCBfRUxLKTtcblxuICBmdW5jdGlvbiBFTEtOb2RlKCkge1xuICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFTEtOb2RlKTtcblxuICAgIHZhciBvcHRpb25zQ2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKTtcblxuICAgIHZhciB3b3JrZXJUaHJlYWRzRXhpc3QgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgcmVxdWlyZS5yZXNvbHZlKCd3ZWItd29ya2VyJyk7XG4gICAgICB3b3JrZXJUaHJlYWRzRXhpc3QgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICAvLyB1c2VyIHJlcXVlc3RlZCBhIHdvcmtlclxuICAgIGlmIChvcHRpb25zLndvcmtlclVybCkge1xuICAgICAgaWYgKHdvcmtlclRocmVhZHNFeGlzdCkge1xuICAgICAgICB2YXIgV29ya2VyID0gcmVxdWlyZSgnd2ViLXdvcmtlcicpO1xuICAgICAgICBvcHRpb25zQ2xvbmUud29ya2VyRmFjdG9yeSA9IGZ1bmN0aW9uICh1cmwpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFdvcmtlcih1cmwpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdXZWIgd29ya2VyIHJlcXVlc3RlZCBidXQgXFwnd2ViLXdvcmtlclxcJyBwYWNrYWdlIG5vdCBpbnN0YWxsZWQuIFxcbkNvbnNpZGVyIGluc3RhbGxpbmcgdGhlIHBhY2thZ2Ugb3IgcGFzcyB5b3VyIG93biBcXCd3b3JrZXJGYWN0b3J5XFwnIHRvIEVMS1xcJ3MgY29uc3RydWN0b3IuXFxuLi4uIEZhbGxpbmcgYmFjayB0byBub24td2ViIHdvcmtlciB2ZXJzaW9uLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHVubGVzcyBubyBvdGhlciB3b3JrZXJGYWN0b3J5IGlzIHJlZ2lzdGVyZWQsIHVzZSB0aGUgZmFrZSB3b3JrZXJcbiAgICBpZiAoIW9wdGlvbnNDbG9uZS53b3JrZXJGYWN0b3J5KSB7XG4gICAgICB2YXIgX3JlcXVpcmUgPSByZXF1aXJlKCcuL2Vsay13b3JrZXIubWluLmpzJyksXG4gICAgICAgICAgX1dvcmtlciA9IF9yZXF1aXJlLldvcmtlcjtcblxuICAgICAgb3B0aW9uc0Nsb25lLndvcmtlckZhY3RvcnkgPSBmdW5jdGlvbiAodXJsKSB7XG4gICAgICAgIHJldHVybiBuZXcgX1dvcmtlcih1cmwpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKEVMS05vZGUuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihFTEtOb2RlKSkuY2FsbCh0aGlzLCBvcHRpb25zQ2xvbmUpKTtcbiAgfVxuXG4gIHJldHVybiBFTEtOb2RlO1xufShFTEspO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLmV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbm1vZHVsZS5leHBvcnRzID0gRUxLTm9kZTtcbkVMS05vZGUuZGVmYXVsdCA9IEVMS05vZGU7XG59LHtcIi4vZWxrLWFwaS5qc1wiOjEsXCIuL2Vsay13b3JrZXIubWluLmpzXCI6MixcIndlYi13b3JrZXJcIjo0fV0sNDpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7XG4vKipcbiAqIENvcHlyaWdodCAyMDIwIEdvb2dsZSBMTENcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gV29ya2VyO1xufSx7fV19LHt9LFszXSkoMylcbn0pO1xuIiwKICAgICJpbXBvcnQgeyBkIGFzIGRiLCBwIGFzIHBhcnNlciB9IGZyb20gXCIuL2Zsb3dEYi1jMTgzMzA2My5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0LCBjdXJ2ZUxpbmVhciwgbGluZSB9IGZyb20gXCJkM1wiO1xuaW1wb3J0IHsgYSBhcyBpbnNlcnRNYXJrZXJzLCBlIGFzIGluc2VydE5vZGUsIGwgYXMgbGFiZWxIZWxwZXIsIGYgYXMgaW5zZXJ0RWRnZUxhYmVsLCBrIGFzIGdldExpbmVGdW5jdGlvbnNXaXRoT2Zmc2V0LCBtIGFzIGFkZEVkZ2VNYXJrZXJzIH0gZnJvbSBcIi4vZWRnZXMtMDY2YTU1NjEuanNcIjtcbmltcG9ydCB7IGwgYXMgbG9nLCBGIGFzIGdldENvbmZpZywgbyBhcyBzZXR1cEdyYXBoVmlld2JveCwgayBhcyBnZXRTdHlsZXNGcm9tQXJyYXksIG4gYXMgaW50ZXJwb2xhdGVUb0N1cnZlLCBlIGFzIGNvbW1vbiB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmltcG9ydCBFTEsgZnJvbSBcImVsa2pzL2xpYi9lbGsuYnVuZGxlZC5qc1wiO1xuaW1wb3J0IFwiLi9jcmVhdGVUZXh0LWNhMGM1MjE2LmpzXCI7XG5pbXBvcnQgXCJtZGFzdC11dGlsLWZyb20tbWFya2Rvd25cIjtcbmltcG9ydCBcInRzLWRlZGVudFwiO1xuaW1wb3J0IFwiZGF5anNcIjtcbmltcG9ydCBcIkBicmFpbnRyZWUvc2FuaXRpemUtdXJsXCI7XG5pbXBvcnQgXCJkb21wdXJpZnlcIjtcbmltcG9ydCBcImtocm9tYVwiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lbW9pemUuanNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZXJnZS5qc1wiO1xuaW1wb3J0IFwic3R5bGlzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvaXNFbXB0eS5qc1wiO1xuY29uc3QgZmluZENvbW1vbkFuY2VzdG9yID0gKGlkMSwgaWQyLCB0cmVlRGF0YSkgPT4ge1xuICBjb25zdCB7IHBhcmVudEJ5SWQgfSA9IHRyZWVEYXRhO1xuICBjb25zdCB2aXNpdGVkID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgbGV0IGN1cnJlbnRJZCA9IGlkMTtcbiAgd2hpbGUgKGN1cnJlbnRJZCkge1xuICAgIHZpc2l0ZWQuYWRkKGN1cnJlbnRJZCk7XG4gICAgaWYgKGN1cnJlbnRJZCA9PT0gaWQyKSB7XG4gICAgICByZXR1cm4gY3VycmVudElkO1xuICAgIH1cbiAgICBjdXJyZW50SWQgPSBwYXJlbnRCeUlkW2N1cnJlbnRJZF07XG4gIH1cbiAgY3VycmVudElkID0gaWQyO1xuICB3aGlsZSAoY3VycmVudElkKSB7XG4gICAgaWYgKHZpc2l0ZWQuaGFzKGN1cnJlbnRJZCkpIHtcbiAgICAgIHJldHVybiBjdXJyZW50SWQ7XG4gICAgfVxuICAgIGN1cnJlbnRJZCA9IHBhcmVudEJ5SWRbY3VycmVudElkXTtcbiAgfVxuICByZXR1cm4gXCJyb290XCI7XG59O1xuY29uc3QgZWxrID0gbmV3IEVMSygpO1xubGV0IHBvcnRQb3MgPSB7fTtcbmNvbnN0IGNvbmYgPSB7fTtcbmxldCBub2RlRGIgPSB7fTtcbmNvbnN0IGFkZFZlcnRpY2VzID0gYXN5bmMgZnVuY3Rpb24odmVydCwgc3ZnSWQsIHJvb3QsIGRvYywgZGlhZ09iaiwgcGFyZW50TG9va3VwRGIsIGdyYXBoKSB7XG4gIGNvbnN0IHN2ZyA9IHJvb3Quc2VsZWN0KGBbaWQ9XCIke3N2Z0lkfVwiXWApO1xuICBjb25zdCBub2RlcyA9IHN2Zy5pbnNlcnQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm5vZGVzXCIpO1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmVydCk7XG4gIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGtleXMubWFwKGFzeW5jIGZ1bmN0aW9uKGlkKSB7XG4gICAgICBjb25zdCB2ZXJ0ZXggPSB2ZXJ0W2lkXTtcbiAgICAgIGxldCBjbGFzc1N0ciA9IFwiZGVmYXVsdFwiO1xuICAgICAgaWYgKHZlcnRleC5jbGFzc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY2xhc3NTdHIgPSB2ZXJ0ZXguY2xhc3Nlcy5qb2luKFwiIFwiKTtcbiAgICAgIH1cbiAgICAgIGNsYXNzU3RyID0gY2xhc3NTdHIgKyBcIiBmbG93Y2hhcnQtbGFiZWxcIjtcbiAgICAgIGNvbnN0IHN0eWxlczIgPSBnZXRTdHlsZXNGcm9tQXJyYXkodmVydGV4LnN0eWxlcyk7XG4gICAgICBsZXQgdmVydGV4VGV4dCA9IHZlcnRleC50ZXh0ICE9PSB2b2lkIDAgPyB2ZXJ0ZXgudGV4dCA6IHZlcnRleC5pZDtcbiAgICAgIGNvbnN0IGxhYmVsRGF0YSA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xuICAgICAgY29uc3QgcG9ydHMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogdmVydGV4LmlkICsgXCItd2VzdFwiLFxuICAgICAgICAgIGxheW91dE9wdGlvbnM6IHtcbiAgICAgICAgICAgIFwicG9ydC5zaWRlXCI6IFwiV0VTVFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6IHZlcnRleC5pZCArIFwiLWVhc3RcIixcbiAgICAgICAgICBsYXlvdXRPcHRpb25zOiB7XG4gICAgICAgICAgICBcInBvcnQuc2lkZVwiOiBcIkVBU1RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiB2ZXJ0ZXguaWQgKyBcIi1zb3V0aFwiLFxuICAgICAgICAgIGxheW91dE9wdGlvbnM6IHtcbiAgICAgICAgICAgIFwicG9ydC5zaWRlXCI6IFwiU09VVEhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiB2ZXJ0ZXguaWQgKyBcIi1ub3J0aFwiLFxuICAgICAgICAgIGxheW91dE9wdGlvbnM6IHtcbiAgICAgICAgICAgIFwicG9ydC5zaWRlXCI6IFwiTk9SVEhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXTtcbiAgICAgIGxldCByYWRpdXMgPSAwO1xuICAgICAgbGV0IF9zaGFwZSA9IFwiXCI7XG4gICAgICBsZXQgbGF5b3V0T3B0aW9ucyA9IHt9O1xuICAgICAgc3dpdGNoICh2ZXJ0ZXgudHlwZSkge1xuICAgICAgICBjYXNlIFwicm91bmRcIjpcbiAgICAgICAgICByYWRpdXMgPSA1O1xuICAgICAgICAgIF9zaGFwZSA9IFwicmVjdFwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwic3F1YXJlXCI6XG4gICAgICAgICAgX3NoYXBlID0gXCJyZWN0XCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkaWFtb25kXCI6XG4gICAgICAgICAgX3NoYXBlID0gXCJxdWVzdGlvblwiO1xuICAgICAgICAgIGxheW91dE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBwb3J0Q29uc3RyYWludHM6IFwiRklYRURfU0lERVwiXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImhleGFnb25cIjpcbiAgICAgICAgICBfc2hhcGUgPSBcImhleGFnb25cIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm9kZFwiOlxuICAgICAgICAgIF9zaGFwZSA9IFwicmVjdF9sZWZ0X2ludl9hcnJvd1wiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibGVhbl9yaWdodFwiOlxuICAgICAgICAgIF9zaGFwZSA9IFwibGVhbl9yaWdodFwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibGVhbl9sZWZ0XCI6XG4gICAgICAgICAgX3NoYXBlID0gXCJsZWFuX2xlZnRcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRyYXBlem9pZFwiOlxuICAgICAgICAgIF9zaGFwZSA9IFwidHJhcGV6b2lkXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpbnZfdHJhcGV6b2lkXCI6XG4gICAgICAgICAgX3NoYXBlID0gXCJpbnZfdHJhcGV6b2lkXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJvZGRfcmlnaHRcIjpcbiAgICAgICAgICBfc2hhcGUgPSBcInJlY3RfbGVmdF9pbnZfYXJyb3dcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImNpcmNsZVwiOlxuICAgICAgICAgIF9zaGFwZSA9IFwiY2lyY2xlXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJlbGxpcHNlXCI6XG4gICAgICAgICAgX3NoYXBlID0gXCJlbGxpcHNlXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzdGFkaXVtXCI6XG4gICAgICAgICAgX3NoYXBlID0gXCJzdGFkaXVtXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzdWJyb3V0aW5lXCI6XG4gICAgICAgICAgX3NoYXBlID0gXCJzdWJyb3V0aW5lXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJjeWxpbmRlclwiOlxuICAgICAgICAgIF9zaGFwZSA9IFwiY3lsaW5kZXJcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImdyb3VwXCI6XG4gICAgICAgICAgX3NoYXBlID0gXCJyZWN0XCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkb3VibGVjaXJjbGVcIjpcbiAgICAgICAgICBfc2hhcGUgPSBcImRvdWJsZWNpcmNsZVwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIF9zaGFwZSA9IFwicmVjdFwiO1xuICAgICAgfVxuICAgICAgY29uc3Qgbm9kZSA9IHtcbiAgICAgICAgbGFiZWxTdHlsZTogc3R5bGVzMi5sYWJlbFN0eWxlLFxuICAgICAgICBzaGFwZTogX3NoYXBlLFxuICAgICAgICBsYWJlbFRleHQ6IHZlcnRleFRleHQsXG4gICAgICAgIGxhYmVsVHlwZTogdmVydGV4LmxhYmVsVHlwZSxcbiAgICAgICAgcng6IHJhZGl1cyxcbiAgICAgICAgcnk6IHJhZGl1cyxcbiAgICAgICAgY2xhc3M6IGNsYXNzU3RyLFxuICAgICAgICBzdHlsZTogc3R5bGVzMi5zdHlsZSxcbiAgICAgICAgaWQ6IHZlcnRleC5pZCxcbiAgICAgICAgbGluazogdmVydGV4LmxpbmssXG4gICAgICAgIGxpbmtUYXJnZXQ6IHZlcnRleC5saW5rVGFyZ2V0LFxuICAgICAgICB0b29sdGlwOiBkaWFnT2JqLmRiLmdldFRvb2x0aXAodmVydGV4LmlkKSB8fCBcIlwiLFxuICAgICAgICBkb21JZDogZGlhZ09iai5kYi5sb29rVXBEb21JZCh2ZXJ0ZXguaWQpLFxuICAgICAgICBoYXZlQ2FsbGJhY2s6IHZlcnRleC5oYXZlQ2FsbGJhY2ssXG4gICAgICAgIHdpZHRoOiB2ZXJ0ZXgudHlwZSA9PT0gXCJncm91cFwiID8gNTAwIDogdm9pZCAwLFxuICAgICAgICBkaXI6IHZlcnRleC5kaXIsXG4gICAgICAgIHR5cGU6IHZlcnRleC50eXBlLFxuICAgICAgICBwcm9wczogdmVydGV4LnByb3BzLFxuICAgICAgICBwYWRkaW5nOiBnZXRDb25maWcoKS5mbG93Y2hhcnQucGFkZGluZ1xuICAgICAgfTtcbiAgICAgIGxldCBib3VuZGluZ0JveDtcbiAgICAgIGxldCBub2RlRWw7XG4gICAgICBpZiAobm9kZS50eXBlICE9PSBcImdyb3VwXCIpIHtcbiAgICAgICAgbm9kZUVsID0gYXdhaXQgaW5zZXJ0Tm9kZShub2Rlcywgbm9kZSwgdmVydGV4LmRpcik7XG4gICAgICAgIGJvdW5kaW5nQm94ID0gbm9kZUVsLm5vZGUoKS5nZXRCQm94KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb2MuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJ0ZXh0XCIpO1xuICAgICAgICBjb25zdCB7IHNoYXBlU3ZnLCBiYm94IH0gPSBhd2FpdCBsYWJlbEhlbHBlcihub2Rlcywgbm9kZSwgdm9pZCAwLCB0cnVlKTtcbiAgICAgICAgbGFiZWxEYXRhLndpZHRoID0gYmJveC53aWR0aDtcbiAgICAgICAgbGFiZWxEYXRhLndyYXBwaW5nV2lkdGggPSBnZXRDb25maWcoKS5mbG93Y2hhcnQud3JhcHBpbmdXaWR0aDtcbiAgICAgICAgbGFiZWxEYXRhLmhlaWdodCA9IGJib3guaGVpZ2h0O1xuICAgICAgICBsYWJlbERhdGEubGFiZWxOb2RlID0gc2hhcGVTdmcubm9kZSgpO1xuICAgICAgICBub2RlLmxhYmVsRGF0YSA9IGxhYmVsRGF0YTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgIGlkOiB2ZXJ0ZXguaWQsXG4gICAgICAgIHBvcnRzOiB2ZXJ0ZXgudHlwZSA9PT0gXCJkaWFtb25kXCIgPyBwb3J0cyA6IFtdLFxuICAgICAgICAvLyBsYWJlbFN0eWxlOiBzdHlsZXMubGFiZWxTdHlsZSxcbiAgICAgICAgLy8gc2hhcGU6IF9zaGFwZSxcbiAgICAgICAgbGF5b3V0T3B0aW9ucyxcbiAgICAgICAgbGFiZWxUZXh0OiB2ZXJ0ZXhUZXh0LFxuICAgICAgICBsYWJlbERhdGEsXG4gICAgICAgIC8vIGxhYmVsczogW3sgdGV4dDogdmVydGV4VGV4dCB9XSxcbiAgICAgICAgLy8gcng6IHJhZGl1cyxcbiAgICAgICAgLy8gcnk6IHJhZGl1cyxcbiAgICAgICAgLy8gY2xhc3M6IGNsYXNzU3RyLFxuICAgICAgICAvLyBzdHlsZTogc3R5bGVzLnN0eWxlLFxuICAgICAgICAvLyBsaW5rOiB2ZXJ0ZXgubGluayxcbiAgICAgICAgLy8gbGlua1RhcmdldDogdmVydGV4LmxpbmtUYXJnZXQsXG4gICAgICAgIC8vIHRvb2x0aXA6IGRpYWdPYmouZGIuZ2V0VG9vbHRpcCh2ZXJ0ZXguaWQpIHx8ICcnLFxuICAgICAgICBkb21JZDogZGlhZ09iai5kYi5sb29rVXBEb21JZCh2ZXJ0ZXguaWQpLFxuICAgICAgICAvLyBoYXZlQ2FsbGJhY2s6IHZlcnRleC5oYXZlQ2FsbGJhY2ssXG4gICAgICAgIHdpZHRoOiBib3VuZGluZ0JveCA9PSBudWxsID8gdm9pZCAwIDogYm91bmRpbmdCb3gud2lkdGgsXG4gICAgICAgIGhlaWdodDogYm91bmRpbmdCb3ggPT0gbnVsbCA/IHZvaWQgMCA6IGJvdW5kaW5nQm94LmhlaWdodCxcbiAgICAgICAgLy8gZGlyOiB2ZXJ0ZXguZGlyLFxuICAgICAgICB0eXBlOiB2ZXJ0ZXgudHlwZSxcbiAgICAgICAgLy8gcHJvcHM6IHZlcnRleC5wcm9wcyxcbiAgICAgICAgLy8gcGFkZGluZzogZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0LnBhZGRpbmcsXG4gICAgICAgIC8vIGJvdW5kaW5nQm94LFxuICAgICAgICBlbDogbm9kZUVsLFxuICAgICAgICBwYXJlbnQ6IHBhcmVudExvb2t1cERiLnBhcmVudEJ5SWRbdmVydGV4LmlkXVxuICAgICAgfTtcbiAgICAgIG5vZGVEYltub2RlLmlkXSA9IGRhdGE7XG4gICAgfSlcbiAgKTtcbiAgcmV0dXJuIGdyYXBoO1xufTtcbmNvbnN0IGdldE5leHRQb3NpdGlvbiA9IChwb3NpdGlvbiwgZWRnZURpcmVjdGlvbiwgZ3JhcGhEaXJlY3Rpb24pID0+IHtcbiAgY29uc3QgcG9ydFBvczIgPSB7XG4gICAgVEI6IHtcbiAgICAgIGluOiB7XG4gICAgICAgIG5vcnRoOiBcIm5vcnRoXCJcbiAgICAgIH0sXG4gICAgICBvdXQ6IHtcbiAgICAgICAgc291dGg6IFwid2VzdFwiLFxuICAgICAgICB3ZXN0OiBcImVhc3RcIixcbiAgICAgICAgZWFzdDogXCJzb3V0aFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBMUjoge1xuICAgICAgaW46IHtcbiAgICAgICAgd2VzdDogXCJ3ZXN0XCJcbiAgICAgIH0sXG4gICAgICBvdXQ6IHtcbiAgICAgICAgZWFzdDogXCJzb3V0aFwiLFxuICAgICAgICBzb3V0aDogXCJub3J0aFwiLFxuICAgICAgICBub3J0aDogXCJlYXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFJMOiB7XG4gICAgICBpbjoge1xuICAgICAgICBlYXN0OiBcImVhc3RcIlxuICAgICAgfSxcbiAgICAgIG91dDoge1xuICAgICAgICB3ZXN0OiBcIm5vcnRoXCIsXG4gICAgICAgIG5vcnRoOiBcInNvdXRoXCIsXG4gICAgICAgIHNvdXRoOiBcIndlc3RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgQlQ6IHtcbiAgICAgIGluOiB7XG4gICAgICAgIHNvdXRoOiBcInNvdXRoXCJcbiAgICAgIH0sXG4gICAgICBvdXQ6IHtcbiAgICAgICAgbm9ydGg6IFwiZWFzdFwiLFxuICAgICAgICBlYXN0OiBcIndlc3RcIixcbiAgICAgICAgd2VzdDogXCJub3J0aFwiXG4gICAgICB9XG4gICAgfVxuICB9O1xuICBwb3J0UG9zMi5URCA9IHBvcnRQb3MyLlRCO1xuICByZXR1cm4gcG9ydFBvczJbZ3JhcGhEaXJlY3Rpb25dW2VkZ2VEaXJlY3Rpb25dW3Bvc2l0aW9uXTtcbn07XG5jb25zdCBnZXROZXh0UG9ydCA9IChub2RlLCBlZGdlRGlyZWN0aW9uLCBncmFwaERpcmVjdGlvbikgPT4ge1xuICBsb2cuaW5mbyhcImdldE5leHRQb3J0XCIsIHsgbm9kZSwgZWRnZURpcmVjdGlvbiwgZ3JhcGhEaXJlY3Rpb24gfSk7XG4gIGlmICghcG9ydFBvc1tub2RlXSkge1xuICAgIHN3aXRjaCAoZ3JhcGhEaXJlY3Rpb24pIHtcbiAgICAgIGNhc2UgXCJUQlwiOlxuICAgICAgY2FzZSBcIlREXCI6XG4gICAgICAgIHBvcnRQb3Nbbm9kZV0gPSB7XG4gICAgICAgICAgaW5Qb3NpdGlvbjogXCJub3J0aFwiLFxuICAgICAgICAgIG91dFBvc2l0aW9uOiBcInNvdXRoXCJcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQlRcIjpcbiAgICAgICAgcG9ydFBvc1tub2RlXSA9IHtcbiAgICAgICAgICBpblBvc2l0aW9uOiBcInNvdXRoXCIsXG4gICAgICAgICAgb3V0UG9zaXRpb246IFwibm9ydGhcIlxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJSTFwiOlxuICAgICAgICBwb3J0UG9zW25vZGVdID0ge1xuICAgICAgICAgIGluUG9zaXRpb246IFwiZWFzdFwiLFxuICAgICAgICAgIG91dFBvc2l0aW9uOiBcIndlc3RcIlxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJMUlwiOlxuICAgICAgICBwb3J0UG9zW25vZGVdID0ge1xuICAgICAgICAgIGluUG9zaXRpb246IFwid2VzdFwiLFxuICAgICAgICAgIG91dFBvc2l0aW9uOiBcImVhc3RcIlxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0gZWRnZURpcmVjdGlvbiA9PT0gXCJpblwiID8gcG9ydFBvc1tub2RlXS5pblBvc2l0aW9uIDogcG9ydFBvc1tub2RlXS5vdXRQb3NpdGlvbjtcbiAgaWYgKGVkZ2VEaXJlY3Rpb24gPT09IFwiaW5cIikge1xuICAgIHBvcnRQb3Nbbm9kZV0uaW5Qb3NpdGlvbiA9IGdldE5leHRQb3NpdGlvbihcbiAgICAgIHBvcnRQb3Nbbm9kZV0uaW5Qb3NpdGlvbixcbiAgICAgIGVkZ2VEaXJlY3Rpb24sXG4gICAgICBncmFwaERpcmVjdGlvblxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcG9ydFBvc1tub2RlXS5vdXRQb3NpdGlvbiA9IGdldE5leHRQb3NpdGlvbihcbiAgICAgIHBvcnRQb3Nbbm9kZV0ub3V0UG9zaXRpb24sXG4gICAgICBlZGdlRGlyZWN0aW9uLFxuICAgICAgZ3JhcGhEaXJlY3Rpb25cbiAgICApO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuY29uc3QgZ2V0RWRnZVN0YXJ0RW5kUG9pbnQgPSAoZWRnZSwgZGlyKSA9PiB7XG4gIGxldCBzb3VyY2UgPSBlZGdlLnN0YXJ0O1xuICBsZXQgdGFyZ2V0ID0gZWRnZS5lbmQ7XG4gIGNvbnN0IHNvdXJjZUlkID0gc291cmNlO1xuICBjb25zdCB0YXJnZXRJZCA9IHRhcmdldDtcbiAgY29uc3Qgc3RhcnROb2RlID0gbm9kZURiW3NvdXJjZV07XG4gIGNvbnN0IGVuZE5vZGUgPSBub2RlRGJbdGFyZ2V0XTtcbiAgaWYgKCFzdGFydE5vZGUgfHwgIWVuZE5vZGUpIHtcbiAgICByZXR1cm4geyBzb3VyY2UsIHRhcmdldCB9O1xuICB9XG4gIGlmIChzdGFydE5vZGUudHlwZSA9PT0gXCJkaWFtb25kXCIpIHtcbiAgICBzb3VyY2UgPSBgJHtzb3VyY2V9LSR7Z2V0TmV4dFBvcnQoc291cmNlLCBcIm91dFwiLCBkaXIpfWA7XG4gIH1cbiAgaWYgKGVuZE5vZGUudHlwZSA9PT0gXCJkaWFtb25kXCIpIHtcbiAgICB0YXJnZXQgPSBgJHt0YXJnZXR9LSR7Z2V0TmV4dFBvcnQodGFyZ2V0LCBcImluXCIsIGRpcil9YDtcbiAgfVxuICByZXR1cm4geyBzb3VyY2UsIHRhcmdldCwgc291cmNlSWQsIHRhcmdldElkIH07XG59O1xuY29uc3QgYWRkRWRnZXMgPSBmdW5jdGlvbihlZGdlcywgZGlhZ09iaiwgZ3JhcGgsIHN2Zykge1xuICBsb2cuaW5mbyhcImFiYzc4IGVkZ2VzID0gXCIsIGVkZ2VzKTtcbiAgY29uc3QgbGFiZWxzRWwgPSBzdmcuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJlZGdlTGFiZWxzXCIpO1xuICBsZXQgbGlua0lkQ250ID0ge307XG4gIGxldCBkaXIgPSBkaWFnT2JqLmRiLmdldERpcmVjdGlvbigpO1xuICBsZXQgZGVmYXVsdFN0eWxlO1xuICBsZXQgZGVmYXVsdExhYmVsU3R5bGU7XG4gIGlmIChlZGdlcy5kZWZhdWx0U3R5bGUgIT09IHZvaWQgMCkge1xuICAgIGNvbnN0IGRlZmF1bHRTdHlsZXMgPSBnZXRTdHlsZXNGcm9tQXJyYXkoZWRnZXMuZGVmYXVsdFN0eWxlKTtcbiAgICBkZWZhdWx0U3R5bGUgPSBkZWZhdWx0U3R5bGVzLnN0eWxlO1xuICAgIGRlZmF1bHRMYWJlbFN0eWxlID0gZGVmYXVsdFN0eWxlcy5sYWJlbFN0eWxlO1xuICB9XG4gIGVkZ2VzLmZvckVhY2goZnVuY3Rpb24oZWRnZSkge1xuICAgIGNvbnN0IGxpbmtJZEJhc2UgPSBcIkwtXCIgKyBlZGdlLnN0YXJ0ICsgXCItXCIgKyBlZGdlLmVuZDtcbiAgICBpZiAobGlua0lkQ250W2xpbmtJZEJhc2VdID09PSB2b2lkIDApIHtcbiAgICAgIGxpbmtJZENudFtsaW5rSWRCYXNlXSA9IDA7XG4gICAgICBsb2cuaW5mbyhcImFiYzc4IG5ldyBlbnRyeVwiLCBsaW5rSWRCYXNlLCBsaW5rSWRDbnRbbGlua0lkQmFzZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaW5rSWRDbnRbbGlua0lkQmFzZV0rKztcbiAgICAgIGxvZy5pbmZvKFwiYWJjNzggbmV3IGVudHJ5XCIsIGxpbmtJZEJhc2UsIGxpbmtJZENudFtsaW5rSWRCYXNlXSk7XG4gICAgfVxuICAgIGxldCBsaW5rSWQgPSBsaW5rSWRCYXNlICsgXCItXCIgKyBsaW5rSWRDbnRbbGlua0lkQmFzZV07XG4gICAgbG9nLmluZm8oXCJhYmM3OCBuZXcgbGluayBpZCB0byBiZSB1c2VkIGlzXCIsIGxpbmtJZEJhc2UsIGxpbmtJZCwgbGlua0lkQ250W2xpbmtJZEJhc2VdKTtcbiAgICBjb25zdCBsaW5rTmFtZVN0YXJ0ID0gXCJMUy1cIiArIGVkZ2Uuc3RhcnQ7XG4gICAgY29uc3QgbGlua05hbWVFbmQgPSBcIkxFLVwiICsgZWRnZS5lbmQ7XG4gICAgY29uc3QgZWRnZURhdGEgPSB7IHN0eWxlOiBcIlwiLCBsYWJlbFN0eWxlOiBcIlwiIH07XG4gICAgZWRnZURhdGEubWlubGVuID0gZWRnZS5sZW5ndGggfHwgMTtcbiAgICBpZiAoZWRnZS50eXBlID09PSBcImFycm93X29wZW5cIikge1xuICAgICAgZWRnZURhdGEuYXJyb3doZWFkID0gXCJub25lXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVkZ2VEYXRhLmFycm93aGVhZCA9IFwibm9ybWFsXCI7XG4gICAgfVxuICAgIGVkZ2VEYXRhLmFycm93VHlwZVN0YXJ0ID0gXCJhcnJvd19vcGVuXCI7XG4gICAgZWRnZURhdGEuYXJyb3dUeXBlRW5kID0gXCJhcnJvd19vcGVuXCI7XG4gICAgc3dpdGNoIChlZGdlLnR5cGUpIHtcbiAgICAgIGNhc2UgXCJkb3VibGVfYXJyb3dfY3Jvc3NcIjpcbiAgICAgICAgZWRnZURhdGEuYXJyb3dUeXBlU3RhcnQgPSBcImFycm93X2Nyb3NzXCI7XG4gICAgICBjYXNlIFwiYXJyb3dfY3Jvc3NcIjpcbiAgICAgICAgZWRnZURhdGEuYXJyb3dUeXBlRW5kID0gXCJhcnJvd19jcm9zc1wiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkb3VibGVfYXJyb3dfcG9pbnRcIjpcbiAgICAgICAgZWRnZURhdGEuYXJyb3dUeXBlU3RhcnQgPSBcImFycm93X3BvaW50XCI7XG4gICAgICBjYXNlIFwiYXJyb3dfcG9pbnRcIjpcbiAgICAgICAgZWRnZURhdGEuYXJyb3dUeXBlRW5kID0gXCJhcnJvd19wb2ludFwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkb3VibGVfYXJyb3dfY2lyY2xlXCI6XG4gICAgICAgIGVkZ2VEYXRhLmFycm93VHlwZVN0YXJ0ID0gXCJhcnJvd19jaXJjbGVcIjtcbiAgICAgIGNhc2UgXCJhcnJvd19jaXJjbGVcIjpcbiAgICAgICAgZWRnZURhdGEuYXJyb3dUeXBlRW5kID0gXCJhcnJvd19jaXJjbGVcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGxldCBzdHlsZSA9IFwiXCI7XG4gICAgbGV0IGxhYmVsU3R5bGUgPSBcIlwiO1xuICAgIHN3aXRjaCAoZWRnZS5zdHJva2UpIHtcbiAgICAgIGNhc2UgXCJub3JtYWxcIjpcbiAgICAgICAgc3R5bGUgPSBcImZpbGw6bm9uZTtcIjtcbiAgICAgICAgaWYgKGRlZmF1bHRTdHlsZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgc3R5bGUgPSBkZWZhdWx0U3R5bGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZmF1bHRMYWJlbFN0eWxlICE9PSB2b2lkIDApIHtcbiAgICAgICAgICBsYWJlbFN0eWxlID0gZGVmYXVsdExhYmVsU3R5bGU7XG4gICAgICAgIH1cbiAgICAgICAgZWRnZURhdGEudGhpY2tuZXNzID0gXCJub3JtYWxcIjtcbiAgICAgICAgZWRnZURhdGEucGF0dGVybiA9IFwic29saWRcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiZG90dGVkXCI6XG4gICAgICAgIGVkZ2VEYXRhLnRoaWNrbmVzcyA9IFwibm9ybWFsXCI7XG4gICAgICAgIGVkZ2VEYXRhLnBhdHRlcm4gPSBcImRvdHRlZFwiO1xuICAgICAgICBlZGdlRGF0YS5zdHlsZSA9IFwiZmlsbDpub25lO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWRhc2hhcnJheTozO1wiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJ0aGlja1wiOlxuICAgICAgICBlZGdlRGF0YS50aGlja25lc3MgPSBcInRoaWNrXCI7XG4gICAgICAgIGVkZ2VEYXRhLnBhdHRlcm4gPSBcInNvbGlkXCI7XG4gICAgICAgIGVkZ2VEYXRhLnN0eWxlID0gXCJzdHJva2Utd2lkdGg6IDMuNXB4O2ZpbGw6bm9uZTtcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChlZGdlLnN0eWxlICE9PSB2b2lkIDApIHtcbiAgICAgIGNvbnN0IHN0eWxlczIgPSBnZXRTdHlsZXNGcm9tQXJyYXkoZWRnZS5zdHlsZSk7XG4gICAgICBzdHlsZSA9IHN0eWxlczIuc3R5bGU7XG4gICAgICBsYWJlbFN0eWxlID0gc3R5bGVzMi5sYWJlbFN0eWxlO1xuICAgIH1cbiAgICBlZGdlRGF0YS5zdHlsZSA9IGVkZ2VEYXRhLnN0eWxlICs9IHN0eWxlO1xuICAgIGVkZ2VEYXRhLmxhYmVsU3R5bGUgPSBlZGdlRGF0YS5sYWJlbFN0eWxlICs9IGxhYmVsU3R5bGU7XG4gICAgaWYgKGVkZ2UuaW50ZXJwb2xhdGUgIT09IHZvaWQgMCkge1xuICAgICAgZWRnZURhdGEuY3VydmUgPSBpbnRlcnBvbGF0ZVRvQ3VydmUoZWRnZS5pbnRlcnBvbGF0ZSwgY3VydmVMaW5lYXIpO1xuICAgIH0gZWxzZSBpZiAoZWRnZXMuZGVmYXVsdEludGVycG9sYXRlICE9PSB2b2lkIDApIHtcbiAgICAgIGVkZ2VEYXRhLmN1cnZlID0gaW50ZXJwb2xhdGVUb0N1cnZlKGVkZ2VzLmRlZmF1bHRJbnRlcnBvbGF0ZSwgY3VydmVMaW5lYXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlZGdlRGF0YS5jdXJ2ZSA9IGludGVycG9sYXRlVG9DdXJ2ZShjb25mLmN1cnZlLCBjdXJ2ZUxpbmVhcik7XG4gICAgfVxuICAgIGlmIChlZGdlLnRleHQgPT09IHZvaWQgMCkge1xuICAgICAgaWYgKGVkZ2Uuc3R5bGUgIT09IHZvaWQgMCkge1xuICAgICAgICBlZGdlRGF0YS5hcnJvd2hlYWRTdHlsZSA9IFwiZmlsbDogIzMzM1wiO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBlZGdlRGF0YS5hcnJvd2hlYWRTdHlsZSA9IFwiZmlsbDogIzMzM1wiO1xuICAgICAgZWRnZURhdGEubGFiZWxwb3MgPSBcImNcIjtcbiAgICB9XG4gICAgZWRnZURhdGEubGFiZWxUeXBlID0gZWRnZS5sYWJlbFR5cGU7XG4gICAgZWRnZURhdGEubGFiZWwgPSBlZGdlLnRleHQucmVwbGFjZShjb21tb24ubGluZUJyZWFrUmVnZXgsIFwiXFxuXCIpO1xuICAgIGlmIChlZGdlLnN0eWxlID09PSB2b2lkIDApIHtcbiAgICAgIGVkZ2VEYXRhLnN0eWxlID0gZWRnZURhdGEuc3R5bGUgfHwgXCJzdHJva2U6ICMzMzM7IHN0cm9rZS13aWR0aDogMS41cHg7ZmlsbDpub25lO1wiO1xuICAgIH1cbiAgICBlZGdlRGF0YS5sYWJlbFN0eWxlID0gZWRnZURhdGEubGFiZWxTdHlsZS5yZXBsYWNlKFwiY29sb3I6XCIsIFwiZmlsbDpcIik7XG4gICAgZWRnZURhdGEuaWQgPSBsaW5rSWQ7XG4gICAgZWRnZURhdGEuY2xhc3NlcyA9IFwiZmxvd2NoYXJ0LWxpbmsgXCIgKyBsaW5rTmFtZVN0YXJ0ICsgXCIgXCIgKyBsaW5rTmFtZUVuZDtcbiAgICBjb25zdCBsYWJlbEVsID0gaW5zZXJ0RWRnZUxhYmVsKGxhYmVsc0VsLCBlZGdlRGF0YSk7XG4gICAgY29uc3QgeyBzb3VyY2UsIHRhcmdldCwgc291cmNlSWQsIHRhcmdldElkIH0gPSBnZXRFZGdlU3RhcnRFbmRQb2ludChlZGdlLCBkaXIpO1xuICAgIGxvZy5kZWJ1ZyhcImFiYzc4IHNvdXJjZSBhbmQgdGFyZ2V0XCIsIHNvdXJjZSwgdGFyZ2V0KTtcbiAgICBncmFwaC5lZGdlcy5wdXNoKHtcbiAgICAgIGlkOiBcImVcIiArIGVkZ2Uuc3RhcnQgKyBlZGdlLmVuZCxcbiAgICAgIHNvdXJjZXM6IFtzb3VyY2VdLFxuICAgICAgdGFyZ2V0czogW3RhcmdldF0sXG4gICAgICBzb3VyY2VJZCxcbiAgICAgIHRhcmdldElkLFxuICAgICAgbGFiZWxFbCxcbiAgICAgIGxhYmVsczogW1xuICAgICAgICB7XG4gICAgICAgICAgd2lkdGg6IGVkZ2VEYXRhLndpZHRoLFxuICAgICAgICAgIGhlaWdodDogZWRnZURhdGEuaGVpZ2h0LFxuICAgICAgICAgIG9yZ1dpZHRoOiBlZGdlRGF0YS53aWR0aCxcbiAgICAgICAgICBvcmdIZWlnaHQ6IGVkZ2VEYXRhLmhlaWdodCxcbiAgICAgICAgICB0ZXh0OiBlZGdlRGF0YS5sYWJlbCxcbiAgICAgICAgICBsYXlvdXRPcHRpb25zOiB7XG4gICAgICAgICAgICBcImVkZ2VMYWJlbHMuaW5saW5lXCI6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgXCJlZGdlTGFiZWxzLnBsYWNlbWVudFwiOiBcIkNFTlRFUlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgZWRnZURhdGFcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBncmFwaDtcbn07XG5jb25zdCBhZGRNYXJrZXJzVG9FZGdlID0gZnVuY3Rpb24oc3ZnUGF0aCwgZWRnZURhdGEsIGRpYWdyYW1UeXBlLCBhcnJvd01hcmtlckFic29sdXRlLCBpZCkge1xuICBsZXQgdXJsID0gXCJcIjtcbiAgaWYgKGFycm93TWFya2VyQWJzb2x1dGUpIHtcbiAgICB1cmwgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoL1xcKC9nLCBcIlxcXFwoXCIpO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKC9cXCkvZywgXCJcXFxcKVwiKTtcbiAgfVxuICBhZGRFZGdlTWFya2VycyhzdmdQYXRoLCBlZGdlRGF0YSwgdXJsLCBpZCwgZGlhZ3JhbVR5cGUpO1xufTtcbmNvbnN0IGdldENsYXNzZXMgPSBmdW5jdGlvbih0ZXh0LCBkaWFnT2JqKSB7XG4gIGxvZy5pbmZvKFwiRXh0cmFjdGluZyBjbGFzc2VzXCIpO1xuICByZXR1cm4gZGlhZ09iai5kYi5nZXRDbGFzc2VzKCk7XG59O1xuY29uc3QgYWRkU3ViR3JhcGhzID0gZnVuY3Rpb24oZGIyKSB7XG4gIGNvbnN0IHBhcmVudExvb2t1cERiID0geyBwYXJlbnRCeUlkOiB7fSwgY2hpbGRyZW5CeUlkOiB7fSB9O1xuICBjb25zdCBzdWJncmFwaHMgPSBkYjIuZ2V0U3ViR3JhcGhzKCk7XG4gIGxvZy5pbmZvKFwiU3ViZ3JhcGhzIC0gXCIsIHN1YmdyYXBocyk7XG4gIHN1YmdyYXBocy5mb3JFYWNoKGZ1bmN0aW9uKHN1YmdyYXBoKSB7XG4gICAgc3ViZ3JhcGgubm9kZXMuZm9yRWFjaChmdW5jdGlvbihub2RlKSB7XG4gICAgICBwYXJlbnRMb29rdXBEYi5wYXJlbnRCeUlkW25vZGVdID0gc3ViZ3JhcGguaWQ7XG4gICAgICBpZiAocGFyZW50TG9va3VwRGIuY2hpbGRyZW5CeUlkW3N1YmdyYXBoLmlkXSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHBhcmVudExvb2t1cERiLmNoaWxkcmVuQnlJZFtzdWJncmFwaC5pZF0gPSBbXTtcbiAgICAgIH1cbiAgICAgIHBhcmVudExvb2t1cERiLmNoaWxkcmVuQnlJZFtzdWJncmFwaC5pZF0ucHVzaChub2RlKTtcbiAgICB9KTtcbiAgfSk7XG4gIHN1YmdyYXBocy5mb3JFYWNoKGZ1bmN0aW9uKHN1YmdyYXBoKSB7XG4gICAgKHsgaWQ6IHN1YmdyYXBoLmlkIH0pO1xuICAgIGlmIChwYXJlbnRMb29rdXBEYi5wYXJlbnRCeUlkW3N1YmdyYXBoLmlkXSAhPT0gdm9pZCAwKSB7XG4gICAgICBwYXJlbnRMb29rdXBEYi5wYXJlbnRCeUlkW3N1YmdyYXBoLmlkXTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcGFyZW50TG9va3VwRGI7XG59O1xuY29uc3QgY2FsY09mZnNldCA9IGZ1bmN0aW9uKHNyYywgZGVzdCwgcGFyZW50TG9va3VwRGIpIHtcbiAgY29uc3QgYW5jZXN0b3IgPSBmaW5kQ29tbW9uQW5jZXN0b3Ioc3JjLCBkZXN0LCBwYXJlbnRMb29rdXBEYik7XG4gIGlmIChhbmNlc3RvciA9PT0gdm9pZCAwIHx8IGFuY2VzdG9yID09PSBcInJvb3RcIikge1xuICAgIHJldHVybiB7IHg6IDAsIHk6IDAgfTtcbiAgfVxuICBjb25zdCBhbmNlc3Rvck9mZnNldCA9IG5vZGVEYlthbmNlc3Rvcl0ub2Zmc2V0O1xuICByZXR1cm4geyB4OiBhbmNlc3Rvck9mZnNldC5wb3NYLCB5OiBhbmNlc3Rvck9mZnNldC5wb3NZIH07XG59O1xuY29uc3QgaW5zZXJ0RWRnZSA9IGZ1bmN0aW9uKGVkZ2VzRWwsIGVkZ2UsIGVkZ2VEYXRhLCBkaWFnT2JqLCBwYXJlbnRMb29rdXBEYiwgaWQpIHtcbiAgY29uc3Qgb2Zmc2V0ID0gY2FsY09mZnNldChlZGdlLnNvdXJjZUlkLCBlZGdlLnRhcmdldElkLCBwYXJlbnRMb29rdXBEYik7XG4gIGNvbnN0IHNyYyA9IGVkZ2Uuc2VjdGlvbnNbMF0uc3RhcnRQb2ludDtcbiAgY29uc3QgZGVzdCA9IGVkZ2Uuc2VjdGlvbnNbMF0uZW5kUG9pbnQ7XG4gIGNvbnN0IHNlZ21lbnRzID0gZWRnZS5zZWN0aW9uc1swXS5iZW5kUG9pbnRzID8gZWRnZS5zZWN0aW9uc1swXS5iZW5kUG9pbnRzIDogW107XG4gIGNvbnN0IHNlZ1BvaW50cyA9IHNlZ21lbnRzLm1hcCgoc2VnbWVudCkgPT4gW3NlZ21lbnQueCArIG9mZnNldC54LCBzZWdtZW50LnkgKyBvZmZzZXQueV0pO1xuICBjb25zdCBwb2ludHMgPSBbXG4gICAgW3NyYy54ICsgb2Zmc2V0LngsIHNyYy55ICsgb2Zmc2V0LnldLFxuICAgIC4uLnNlZ1BvaW50cyxcbiAgICBbZGVzdC54ICsgb2Zmc2V0LngsIGRlc3QueSArIG9mZnNldC55XVxuICBdO1xuICBjb25zdCB7IHgsIHkgfSA9IGdldExpbmVGdW5jdGlvbnNXaXRoT2Zmc2V0KGVkZ2UuZWRnZURhdGEpO1xuICBjb25zdCBjdXJ2ZSA9IGxpbmUoKS54KHgpLnkoeSkuY3VydmUoY3VydmVMaW5lYXIpO1xuICBjb25zdCBlZGdlUGF0aCA9IGVkZ2VzRWwuaW5zZXJ0KFwicGF0aFwiKS5hdHRyKFwiZFwiLCBjdXJ2ZShwb2ludHMpKS5hdHRyKFwiY2xhc3NcIiwgXCJwYXRoIFwiICsgZWRnZURhdGEuY2xhc3NlcykuYXR0cihcImZpbGxcIiwgXCJub25lXCIpO1xuICBjb25zdCBlZGdlRyA9IGVkZ2VzRWwuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJlZGdlTGFiZWxcIik7XG4gIGNvbnN0IGVkZ2VXaXRoTGFiZWwgPSBzZWxlY3QoZWRnZUcubm9kZSgpLmFwcGVuZENoaWxkKGVkZ2UubGFiZWxFbCkpO1xuICBjb25zdCBib3ggPSBlZGdlV2l0aExhYmVsLm5vZGUoKS5maXJzdENoaWxkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBlZGdlV2l0aExhYmVsLmF0dHIoXCJ3aWR0aFwiLCBib3gud2lkdGgpO1xuICBlZGdlV2l0aExhYmVsLmF0dHIoXCJoZWlnaHRcIiwgYm94LmhlaWdodCk7XG4gIGVkZ2VHLmF0dHIoXG4gICAgXCJ0cmFuc2Zvcm1cIixcbiAgICBgdHJhbnNsYXRlKCR7ZWRnZS5sYWJlbHNbMF0ueCArIG9mZnNldC54fSwgJHtlZGdlLmxhYmVsc1swXS55ICsgb2Zmc2V0Lnl9KWBcbiAgKTtcbiAgYWRkTWFya2Vyc1RvRWRnZShlZGdlUGF0aCwgZWRnZURhdGEsIGRpYWdPYmoudHlwZSwgZGlhZ09iai5hcnJvd01hcmtlckFic29sdXRlLCBpZCk7XG59O1xuY29uc3QgaW5zZXJ0Q2hpbGRyZW4gPSAobm9kZUFycmF5LCBwYXJlbnRMb29rdXBEYikgPT4ge1xuICBub2RlQXJyYXkuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgIGlmICghbm9kZS5jaGlsZHJlbikge1xuICAgICAgbm9kZS5jaGlsZHJlbiA9IFtdO1xuICAgIH1cbiAgICBjb25zdCBjaGlsZElkcyA9IHBhcmVudExvb2t1cERiLmNoaWxkcmVuQnlJZFtub2RlLmlkXTtcbiAgICBpZiAoY2hpbGRJZHMpIHtcbiAgICAgIGNoaWxkSWRzLmZvckVhY2goKGNoaWxkSWQpID0+IHtcbiAgICAgICAgbm9kZS5jaGlsZHJlbi5wdXNoKG5vZGVEYltjaGlsZElkXSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaW5zZXJ0Q2hpbGRyZW4obm9kZS5jaGlsZHJlbiwgcGFyZW50TG9va3VwRGIpO1xuICB9KTtcbn07XG5jb25zdCBkcmF3ID0gYXN5bmMgZnVuY3Rpb24odGV4dCwgaWQsIF92ZXJzaW9uLCBkaWFnT2JqKSB7XG4gIHZhciBfYTtcbiAgZGlhZ09iai5kYi5jbGVhcigpO1xuICBub2RlRGIgPSB7fTtcbiAgcG9ydFBvcyA9IHt9O1xuICBkaWFnT2JqLmRiLnNldEdlbihcImdlbi0yXCIpO1xuICBkaWFnT2JqLnBhcnNlci5wYXJzZSh0ZXh0KTtcbiAgY29uc3QgcmVuZGVyRWwgPSBzZWxlY3QoXCJib2R5XCIpLmFwcGVuZChcImRpdlwiKS5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6NDAwcHhcIikuYXR0cihcImlkXCIsIFwiY3lcIik7XG4gIGxldCBncmFwaCA9IHtcbiAgICBpZDogXCJyb290XCIsXG4gICAgbGF5b3V0T3B0aW9uczoge1xuICAgICAgXCJlbGsuaGllcmFyY2h5SGFuZGxpbmdcIjogXCJJTkNMVURFX0NISUxEUkVOXCIsXG4gICAgICBcIm9yZy5lY2xpcHNlLmVsay5wYWRkaW5nXCI6IFwiW3RvcD0xMDAsIGxlZnQ9MTAwLCBib3R0b209MTEwLCByaWdodD0xMTBdXCIsXG4gICAgICBcImVsay5sYXllcmVkLnNwYWNpbmcuZWRnZU5vZGVCZXR3ZWVuTGF5ZXJzXCI6IFwiMzBcIixcbiAgICAgIC8vICdlbGsubGF5ZXJlZC5tZXJnZUVkZ2VzJzogJ3RydWUnLFxuICAgICAgXCJlbGsuZGlyZWN0aW9uXCI6IFwiRE9XTlwiXG4gICAgICAvLyAnZWxrLnBvcnRzLnNhbWVMYXllckVkZ2VzJzogdHJ1ZSxcbiAgICAgIC8vICdub2RlUGxhY2VtZW50LnN0cmF0ZWd5JzogJ1NJTVBMRScsXG4gICAgfSxcbiAgICBjaGlsZHJlbjogW10sXG4gICAgZWRnZXM6IFtdXG4gIH07XG4gIGxvZy5pbmZvKFwiRHJhd2luZyBmbG93Y2hhcnQgdXNpbmcgdjMgcmVuZGVyZXJcIiwgZWxrKTtcbiAgbGV0IGRpciA9IGRpYWdPYmouZGIuZ2V0RGlyZWN0aW9uKCk7XG4gIHN3aXRjaCAoZGlyKSB7XG4gICAgY2FzZSBcIkJUXCI6XG4gICAgICBncmFwaC5sYXlvdXRPcHRpb25zW1wiZWxrLmRpcmVjdGlvblwiXSA9IFwiVVBcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJUQlwiOlxuICAgICAgZ3JhcGgubGF5b3V0T3B0aW9uc1tcImVsay5kaXJlY3Rpb25cIl0gPSBcIkRPV05cIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJMUlwiOlxuICAgICAgZ3JhcGgubGF5b3V0T3B0aW9uc1tcImVsay5kaXJlY3Rpb25cIl0gPSBcIlJJR0hUXCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiUkxcIjpcbiAgICAgIGdyYXBoLmxheW91dE9wdGlvbnNbXCJlbGsuZGlyZWN0aW9uXCJdID0gXCJMRUZUXCI7XG4gICAgICBicmVhaztcbiAgfVxuICBjb25zdCB7IHNlY3VyaXR5TGV2ZWwsIGZsb3djaGFydDogY29uZjIgfSA9IGdldENvbmZpZygpO1xuICBsZXQgc2FuZGJveEVsZW1lbnQ7XG4gIGlmIChzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIikge1xuICAgIHNhbmRib3hFbGVtZW50ID0gc2VsZWN0KFwiI2lcIiArIGlkKTtcbiAgfVxuICBjb25zdCByb290ID0gc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIgPyBzZWxlY3Qoc2FuZGJveEVsZW1lbnQubm9kZXMoKVswXS5jb250ZW50RG9jdW1lbnQuYm9keSkgOiBzZWxlY3QoXCJib2R5XCIpO1xuICBjb25zdCBkb2MgPSBzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIiA/IHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50IDogZG9jdW1lbnQ7XG4gIGNvbnN0IHN2ZyA9IHJvb3Quc2VsZWN0KGBbaWQ9XCIke2lkfVwiXWApO1xuICBjb25zdCBtYXJrZXJzID0gW1wicG9pbnRcIiwgXCJjaXJjbGVcIiwgXCJjcm9zc1wiXTtcbiAgaW5zZXJ0TWFya2VycyhzdmcsIG1hcmtlcnMsIGRpYWdPYmoudHlwZSwgaWQpO1xuICBjb25zdCB2ZXJ0ID0gZGlhZ09iai5kYi5nZXRWZXJ0aWNlcygpO1xuICBsZXQgc3ViRztcbiAgY29uc3Qgc3ViR3JhcGhzID0gZGlhZ09iai5kYi5nZXRTdWJHcmFwaHMoKTtcbiAgbG9nLmluZm8oXCJTdWJncmFwaHMgLSBcIiwgc3ViR3JhcGhzKTtcbiAgZm9yIChsZXQgaSA9IHN1YkdyYXBocy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIHN1YkcgPSBzdWJHcmFwaHNbaV07XG4gICAgZGlhZ09iai5kYi5hZGRWZXJ0ZXgoXG4gICAgICBzdWJHLmlkLFxuICAgICAgeyB0ZXh0OiBzdWJHLnRpdGxlLCB0eXBlOiBzdWJHLmxhYmVsVHlwZSB9LFxuICAgICAgXCJncm91cFwiLFxuICAgICAgdm9pZCAwLFxuICAgICAgc3ViRy5jbGFzc2VzLFxuICAgICAgc3ViRy5kaXJcbiAgICApO1xuICB9XG4gIGNvbnN0IHN1YkdyYXBoc0VsID0gc3ZnLmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwic3ViZ3JhcGhzXCIpO1xuICBjb25zdCBwYXJlbnRMb29rdXBEYiA9IGFkZFN1YkdyYXBocyhkaWFnT2JqLmRiKTtcbiAgZ3JhcGggPSBhd2FpdCBhZGRWZXJ0aWNlcyh2ZXJ0LCBpZCwgcm9vdCwgZG9jLCBkaWFnT2JqLCBwYXJlbnRMb29rdXBEYiwgZ3JhcGgpO1xuICBjb25zdCBlZGdlc0VsID0gc3ZnLmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwiZWRnZXMgZWRnZVBhdGhcIik7XG4gIGNvbnN0IGVkZ2VzID0gZGlhZ09iai5kYi5nZXRFZGdlcygpO1xuICBncmFwaCA9IGFkZEVkZ2VzKGVkZ2VzLCBkaWFnT2JqLCBncmFwaCwgc3ZnKTtcbiAgY29uc3Qgbm9kZXMgPSBPYmplY3Qua2V5cyhub2RlRGIpO1xuICBub2Rlcy5mb3JFYWNoKChub2RlSWQpID0+IHtcbiAgICBjb25zdCBub2RlID0gbm9kZURiW25vZGVJZF07XG4gICAgaWYgKCFub2RlLnBhcmVudCkge1xuICAgICAgZ3JhcGguY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICB9XG4gICAgaWYgKHBhcmVudExvb2t1cERiLmNoaWxkcmVuQnlJZFtub2RlSWRdICE9PSB2b2lkIDApIHtcbiAgICAgIG5vZGUubGFiZWxzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogbm9kZS5sYWJlbFRleHQsXG4gICAgICAgICAgbGF5b3V0T3B0aW9uczoge1xuICAgICAgICAgICAgXCJub2RlTGFiZWxzLnBsYWNlbWVudFwiOiBcIltIX0NFTlRFUiwgVl9UT1AsIElOU0lERV1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgd2lkdGg6IG5vZGUubGFiZWxEYXRhLndpZHRoLFxuICAgICAgICAgIGhlaWdodDogbm9kZS5sYWJlbERhdGEuaGVpZ2h0XG4gICAgICAgICAgLy8gd2lkdGg6IDEwMCxcbiAgICAgICAgICAvLyBoZWlnaHQ6IDEwMCxcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICAgIGRlbGV0ZSBub2RlLng7XG4gICAgICBkZWxldGUgbm9kZS55O1xuICAgICAgZGVsZXRlIG5vZGUud2lkdGg7XG4gICAgICBkZWxldGUgbm9kZS5oZWlnaHQ7XG4gICAgfVxuICB9KTtcbiAgaW5zZXJ0Q2hpbGRyZW4oZ3JhcGguY2hpbGRyZW4sIHBhcmVudExvb2t1cERiKTtcbiAgbG9nLmluZm8oXCJhZnRlciBsYXlvdXRcIiwgSlNPTi5zdHJpbmdpZnkoZ3JhcGgsIG51bGwsIDIpKTtcbiAgY29uc3QgZyA9IGF3YWl0IGVsay5sYXlvdXQoZ3JhcGgpO1xuICBkcmF3Tm9kZXMoMCwgMCwgZy5jaGlsZHJlbiwgc3ZnLCBzdWJHcmFwaHNFbCwgZGlhZ09iaiwgMCk7XG4gIGxvZy5pbmZvKFwiYWZ0ZXIgbGF5b3V0XCIsIGcpO1xuICAoX2EgPSBnLmVkZ2VzKSA9PSBudWxsID8gdm9pZCAwIDogX2EubWFwKChlZGdlKSA9PiB7XG4gICAgaW5zZXJ0RWRnZShlZGdlc0VsLCBlZGdlLCBlZGdlLmVkZ2VEYXRhLCBkaWFnT2JqLCBwYXJlbnRMb29rdXBEYiwgaWQpO1xuICB9KTtcbiAgc2V0dXBHcmFwaFZpZXdib3goe30sIHN2ZywgY29uZjIuZGlhZ3JhbVBhZGRpbmcsIGNvbmYyLnVzZU1heFdpZHRoKTtcbiAgcmVuZGVyRWwucmVtb3ZlKCk7XG59O1xuY29uc3QgZHJhd05vZGVzID0gKHJlbFgsIHJlbFksIG5vZGVBcnJheSwgc3ZnLCBzdWJncmFwaHNFbCwgZGlhZ09iaiwgZGVwdGgpID0+IHtcbiAgbm9kZUFycmF5LmZvckVhY2goZnVuY3Rpb24obm9kZSkge1xuICAgIGlmIChub2RlKSB7XG4gICAgICBub2RlRGJbbm9kZS5pZF0ub2Zmc2V0ID0ge1xuICAgICAgICBwb3NYOiBub2RlLnggKyByZWxYLFxuICAgICAgICBwb3NZOiBub2RlLnkgKyByZWxZLFxuICAgICAgICB4OiByZWxYLFxuICAgICAgICB5OiByZWxZLFxuICAgICAgICBkZXB0aCxcbiAgICAgICAgd2lkdGg6IG5vZGUud2lkdGgsXG4gICAgICAgIGhlaWdodDogbm9kZS5oZWlnaHRcbiAgICAgIH07XG4gICAgICBpZiAobm9kZS50eXBlID09PSBcImdyb3VwXCIpIHtcbiAgICAgICAgY29uc3Qgc3ViZ3JhcGhFbCA9IHN1YmdyYXBoc0VsLmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwic3ViZ3JhcGhcIik7XG4gICAgICAgIHN1YmdyYXBoRWwuaW5zZXJ0KFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJzdWJncmFwaCBzdWJncmFwaC1sdmwtXCIgKyBkZXB0aCAlIDUgKyBcIiBub2RlXCIpLmF0dHIoXCJ4XCIsIG5vZGUueCArIHJlbFgpLmF0dHIoXCJ5XCIsIG5vZGUueSArIHJlbFkpLmF0dHIoXCJ3aWR0aFwiLCBub2RlLndpZHRoKS5hdHRyKFwiaGVpZ2h0XCIsIG5vZGUuaGVpZ2h0KTtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBzdWJncmFwaEVsLmluc2VydChcImdcIikuYXR0cihcImNsYXNzXCIsIFwibGFiZWxcIik7XG4gICAgICAgIGNvbnN0IGxhYmVsQ2VudGVyaW5nID0gZ2V0Q29uZmlnKCkuZmxvd2NoYXJ0Lmh0bWxMYWJlbHMgPyBub2RlLmxhYmVsRGF0YS53aWR0aCAvIDIgOiAwO1xuICAgICAgICBsYWJlbC5hdHRyKFxuICAgICAgICAgIFwidHJhbnNmb3JtXCIsXG4gICAgICAgICAgYHRyYW5zbGF0ZSgke25vZGUubGFiZWxzWzBdLnggKyByZWxYICsgbm9kZS54ICsgbGFiZWxDZW50ZXJpbmd9LCAke25vZGUubGFiZWxzWzBdLnkgKyByZWxZICsgbm9kZS55ICsgM30pYFxuICAgICAgICApO1xuICAgICAgICBsYWJlbC5ub2RlKCkuYXBwZW5kQ2hpbGQobm9kZS5sYWJlbERhdGEubGFiZWxOb2RlKTtcbiAgICAgICAgbG9nLmluZm8oXCJJZCAoVUdIKT0gXCIsIG5vZGUudHlwZSwgbm9kZS5sYWJlbHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmluZm8oXCJJZCAoVUdIKT0gXCIsIG5vZGUuaWQpO1xuICAgICAgICBub2RlLmVsLmF0dHIoXG4gICAgICAgICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAgICAgICBgdHJhbnNsYXRlKCR7bm9kZS54ICsgcmVsWCArIG5vZGUud2lkdGggLyAyfSwgJHtub2RlLnkgKyByZWxZICsgbm9kZS5oZWlnaHQgLyAyfSlgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgbm9kZUFycmF5LmZvckVhY2goZnVuY3Rpb24obm9kZSkge1xuICAgIGlmIChub2RlICYmIG5vZGUudHlwZSA9PT0gXCJncm91cFwiKSB7XG4gICAgICBkcmF3Tm9kZXMocmVsWCArIG5vZGUueCwgcmVsWSArIG5vZGUueSwgbm9kZS5jaGlsZHJlbiwgc3ZnLCBzdWJncmFwaHNFbCwgZGlhZ09iaiwgZGVwdGggKyAxKTtcbiAgICB9XG4gIH0pO1xufTtcbmNvbnN0IHJlbmRlcmVyID0ge1xuICBnZXRDbGFzc2VzLFxuICBkcmF3XG59O1xuY29uc3QgZ2VuU2VjdGlvbnMgPSAob3B0aW9ucykgPT4ge1xuICBsZXQgc2VjdGlvbnMgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIHNlY3Rpb25zICs9IGBcbiAgICAgIC5zdWJncmFwaC1sdmwtJHtpfSB7XG4gICAgICAgIGZpbGw6ICR7b3B0aW9uc1tgc3VyZmFjZSR7aX1gXX07XG4gICAgICAgIHN0cm9rZTogJHtvcHRpb25zW2BzdXJmYWNlUGVlciR7aX1gXX07XG4gICAgICB9XG4gICAgYDtcbiAgfVxuICByZXR1cm4gc2VjdGlvbnM7XG59O1xuY29uc3QgZ2V0U3R5bGVzID0gKG9wdGlvbnMpID0+IGAubGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiAke29wdGlvbnMuZm9udEZhbWlseX07XG4gICAgY29sb3I6ICR7b3B0aW9ucy5ub2RlVGV4dENvbG9yIHx8IG9wdGlvbnMudGV4dENvbG9yfTtcbiAgfVxuICAuY2x1c3Rlci1sYWJlbCB0ZXh0IHtcbiAgICBmaWxsOiAke29wdGlvbnMudGl0bGVDb2xvcn07XG4gIH1cbiAgLmNsdXN0ZXItbGFiZWwgc3BhbiB7XG4gICAgY29sb3I6ICR7b3B0aW9ucy50aXRsZUNvbG9yfTtcbiAgfVxuXG4gIC5sYWJlbCB0ZXh0LHNwYW4ge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5ub2RlVGV4dENvbG9yIHx8IG9wdGlvbnMudGV4dENvbG9yfTtcbiAgICBjb2xvcjogJHtvcHRpb25zLm5vZGVUZXh0Q29sb3IgfHwgb3B0aW9ucy50ZXh0Q29sb3J9O1xuICB9XG5cbiAgLm5vZGUgcmVjdCxcbiAgLm5vZGUgY2lyY2xlLFxuICAubm9kZSBlbGxpcHNlLFxuICAubm9kZSBwb2x5Z29uLFxuICAubm9kZSBwYXRoIHtcbiAgICBmaWxsOiAke29wdGlvbnMubWFpbkJrZ307XG4gICAgc3Ryb2tlOiAke29wdGlvbnMubm9kZUJvcmRlcn07XG4gICAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gIH1cblxuICAubm9kZSAubGFiZWwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubm9kZS5jbGlja2FibGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC5hcnJvd2hlYWRQYXRoIHtcbiAgICBmaWxsOiAke29wdGlvbnMuYXJyb3doZWFkQ29sb3J9O1xuICB9XG5cbiAgLmVkZ2VQYXRoIC5wYXRoIHtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5saW5lQ29sb3J9O1xuICAgIHN0cm9rZS13aWR0aDogMi4wcHg7XG4gIH1cblxuICAuZmxvd2NoYXJ0LWxpbmsge1xuICAgIHN0cm9rZTogJHtvcHRpb25zLmxpbmVDb2xvcn07XG4gICAgZmlsbDogbm9uZTtcbiAgfVxuXG4gIC5lZGdlTGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7b3B0aW9ucy5lZGdlTGFiZWxCYWNrZ3JvdW5kfTtcbiAgICByZWN0IHtcbiAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke29wdGlvbnMuZWRnZUxhYmVsQmFja2dyb3VuZH07XG4gICAgICBmaWxsOiAke29wdGlvbnMuZWRnZUxhYmVsQmFja2dyb3VuZH07XG4gICAgfVxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5jbHVzdGVyIHJlY3Qge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5jbHVzdGVyQmtnfTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5jbHVzdGVyQm9yZGVyfTtcbiAgICBzdHJva2Utd2lkdGg6IDFweDtcbiAgfVxuXG4gIC5jbHVzdGVyIHRleHQge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50aXRsZUNvbG9yfTtcbiAgfVxuXG4gIC5jbHVzdGVyIHNwYW4ge1xuICAgIGNvbG9yOiAke29wdGlvbnMudGl0bGVDb2xvcn07XG4gIH1cbiAgLyogLmNsdXN0ZXIgZGl2IHtcbiAgICBjb2xvcjogJHtvcHRpb25zLnRpdGxlQ29sb3J9O1xuICB9ICovXG5cbiAgZGl2Lm1lcm1haWRUb29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIGZvbnQtZmFtaWx5OiAke29wdGlvbnMuZm9udEZhbWlseX07XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICR7b3B0aW9ucy50ZXJ0aWFyeUNvbG9yfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke29wdGlvbnMuYm9yZGVyMn07XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgfVxuXG4gIC5mbG93Y2hhcnRUaXRsZVRleHQge1xuICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZpbGw6ICR7b3B0aW9ucy50ZXh0Q29sb3J9O1xuICB9XG4gIC5zdWJncmFwaCB7XG4gICAgc3Ryb2tlLXdpZHRoOjI7XG4gICAgcng6MztcbiAgfVxuICAvLyAuc3ViZ3JhcGgtbHZsLTEge1xuICAvLyAgIGZpbGw6I2NjYztcbiAgLy8gICAvLyBzdHJva2U6YmxhY2s7XG4gIC8vIH1cblxuICAuZmxvd2NoYXJ0LWxhYmVsIHRleHQge1xuICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7XG4gIH1cblxuICAke2dlblNlY3Rpb25zKG9wdGlvbnMpfVxuYDtcbmNvbnN0IHN0eWxlcyA9IGdldFN0eWxlcztcbmNvbnN0IGRpYWdyYW0gPSB7XG4gIGRiLFxuICByZW5kZXJlcixcbiAgcGFyc2VyLFxuICBzdHlsZXNcbn07XG5leHBvcnQge1xuICBkaWFncmFtXG59O1xuIiwKICAgICJpbXBvcnQgeyBMIGFzIGNvbW1vbkRiLCB2IGFzIGNsZWFyJDEsIGMgYXMgZ2V0Q29uZmlnLCBsIGFzIGxvZywgbyBhcyBzZXR1cEdyYXBoVmlld2JveCB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmltcG9ydCB7IHNlbGVjdCwgYXJjIH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgeyBpc0RhcmssIGxpZ2h0ZW4sIGRhcmtlbiB9IGZyb20gXCJraHJvbWFcIjtcbmltcG9ydCBcInRzLWRlZGVudFwiO1xuaW1wb3J0IFwiZGF5anNcIjtcbmltcG9ydCBcIkBicmFpbnRyZWUvc2FuaXRpemUtdXJsXCI7XG5pbXBvcnQgXCJkb21wdXJpZnlcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZW1vaXplLmpzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVyZ2UuanNcIjtcbmltcG9ydCBcInN0eWxpc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL2lzRW1wdHkuanNcIjtcbnZhciBwYXJzZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIG8gPSBmdW5jdGlvbihrLCB2LCBvMiwgbCkge1xuICAgIGZvciAobzIgPSBvMiB8fCB7fSwgbCA9IGsubGVuZ3RoOyBsLS07IG8yW2tbbF1dID0gdilcbiAgICAgIDtcbiAgICByZXR1cm4gbzI7XG4gIH0sICRWMCA9IFs2LCA4LCAxMCwgMTEsIDEyLCAxNCwgMTYsIDE3LCAyMCwgMjFdLCAkVjEgPSBbMSwgOV0sICRWMiA9IFsxLCAxMF0sICRWMyA9IFsxLCAxMV0sICRWNCA9IFsxLCAxMl0sICRWNSA9IFsxLCAxM10sICRWNiA9IFsxLCAxNl0sICRWNyA9IFsxLCAxN107XG4gIHZhciBwYXJzZXIyID0ge1xuICAgIHRyYWNlOiBmdW5jdGlvbiB0cmFjZSgpIHtcbiAgICB9LFxuICAgIHl5OiB7fSxcbiAgICBzeW1ib2xzXzogeyBcImVycm9yXCI6IDIsIFwic3RhcnRcIjogMywgXCJ0aW1lbGluZVwiOiA0LCBcImRvY3VtZW50XCI6IDUsIFwiRU9GXCI6IDYsIFwibGluZVwiOiA3LCBcIlNQQUNFXCI6IDgsIFwic3RhdGVtZW50XCI6IDksIFwiTkVXTElORVwiOiAxMCwgXCJ0aXRsZVwiOiAxMSwgXCJhY2NfdGl0bGVcIjogMTIsIFwiYWNjX3RpdGxlX3ZhbHVlXCI6IDEzLCBcImFjY19kZXNjclwiOiAxNCwgXCJhY2NfZGVzY3JfdmFsdWVcIjogMTUsIFwiYWNjX2Rlc2NyX211bHRpbGluZV92YWx1ZVwiOiAxNiwgXCJzZWN0aW9uXCI6IDE3LCBcInBlcmlvZF9zdGF0ZW1lbnRcIjogMTgsIFwiZXZlbnRfc3RhdGVtZW50XCI6IDE5LCBcInBlcmlvZFwiOiAyMCwgXCJldmVudFwiOiAyMSwgXCIkYWNjZXB0XCI6IDAsIFwiJGVuZFwiOiAxIH0sXG4gICAgdGVybWluYWxzXzogeyAyOiBcImVycm9yXCIsIDQ6IFwidGltZWxpbmVcIiwgNjogXCJFT0ZcIiwgODogXCJTUEFDRVwiLCAxMDogXCJORVdMSU5FXCIsIDExOiBcInRpdGxlXCIsIDEyOiBcImFjY190aXRsZVwiLCAxMzogXCJhY2NfdGl0bGVfdmFsdWVcIiwgMTQ6IFwiYWNjX2Rlc2NyXCIsIDE1OiBcImFjY19kZXNjcl92YWx1ZVwiLCAxNjogXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCIsIDE3OiBcInNlY3Rpb25cIiwgMjA6IFwicGVyaW9kXCIsIDIxOiBcImV2ZW50XCIgfSxcbiAgICBwcm9kdWN0aW9uc186IFswLCBbMywgM10sIFs1LCAwXSwgWzUsIDJdLCBbNywgMl0sIFs3LCAxXSwgWzcsIDFdLCBbNywgMV0sIFs5LCAxXSwgWzksIDJdLCBbOSwgMl0sIFs5LCAxXSwgWzksIDFdLCBbOSwgMV0sIFs5LCAxXSwgWzE4LCAxXSwgWzE5LCAxXV0sXG4gICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5dGV4dCwgeXlsZW5nLCB5eWxpbmVubywgeXksIHl5c3RhdGUsICQkLCBfJCkge1xuICAgICAgdmFyICQwID0gJCQubGVuZ3RoIC0gMTtcbiAgICAgIHN3aXRjaCAoeXlzdGF0ZSkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmV0dXJuICQkWyQwIC0gMV07XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICB0aGlzLiQgPSBbXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCgkJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwIC0gMV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgdGhpcy4kID0gW107XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICB5eS5nZXRDb21tb25EYigpLnNldERpYWdyYW1UaXRsZSgkJFskMF0uc3Vic3RyKDYpKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0uc3Vic3RyKDYpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5nZXRDb21tb25EYigpLnNldEFjY1RpdGxlKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdLnRyaW0oKTtcbiAgICAgICAgICB5eS5nZXRDb21tb25EYigpLnNldEFjY0Rlc2NyaXB0aW9uKHRoaXMuJCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgeXkuYWRkU2VjdGlvbigkJFskMF0uc3Vic3RyKDgpKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF0uc3Vic3RyKDgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIHl5LmFkZFRhc2soJCRbJDBdLCAwLCBcIlwiKTtcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgeXkuYWRkRXZlbnQoJCRbJDBdLnN1YnN0cigyKSk7XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgdGFibGU6IFt7IDM6IDEsIDQ6IFsxLCAyXSB9LCB7IDE6IFszXSB9LCBvKCRWMCwgWzIsIDJdLCB7IDU6IDMgfSksIHsgNjogWzEsIDRdLCA3OiA1LCA4OiBbMSwgNl0sIDk6IDcsIDEwOiBbMSwgOF0sIDExOiAkVjEsIDEyOiAkVjIsIDE0OiAkVjMsIDE2OiAkVjQsIDE3OiAkVjUsIDE4OiAxNCwgMTk6IDE1LCAyMDogJFY2LCAyMTogJFY3IH0sIG8oJFYwLCBbMiwgN10sIHsgMTogWzIsIDFdIH0pLCBvKCRWMCwgWzIsIDNdKSwgeyA5OiAxOCwgMTE6ICRWMSwgMTI6ICRWMiwgMTQ6ICRWMywgMTY6ICRWNCwgMTc6ICRWNSwgMTg6IDE0LCAxOTogMTUsIDIwOiAkVjYsIDIxOiAkVjcgfSwgbygkVjAsIFsyLCA1XSksIG8oJFYwLCBbMiwgNl0pLCBvKCRWMCwgWzIsIDhdKSwgeyAxMzogWzEsIDE5XSB9LCB7IDE1OiBbMSwgMjBdIH0sIG8oJFYwLCBbMiwgMTFdKSwgbygkVjAsIFsyLCAxMl0pLCBvKCRWMCwgWzIsIDEzXSksIG8oJFYwLCBbMiwgMTRdKSwgbygkVjAsIFsyLCAxNV0pLCBvKCRWMCwgWzIsIDE2XSksIG8oJFYwLCBbMiwgNF0pLCBvKCRWMCwgWzIsIDldKSwgbygkVjAsIFsyLCAxMF0pXSxcbiAgICBkZWZhdWx0QWN0aW9uczoge30sXG4gICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgIGlmIChoYXNoLnJlY292ZXJhYmxlKSB7XG4gICAgICAgIHRoaXMudHJhY2Uoc3RyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICBlcnJvci5oYXNoID0gaGFzaDtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSxcbiAgICBwYXJzZTogZnVuY3Rpb24gcGFyc2UoaW5wdXQpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcywgc3RhY2sgPSBbMF0sIHRzdGFjayA9IFtdLCB2c3RhY2sgPSBbbnVsbF0sIGxzdGFjayA9IFtdLCB0YWJsZSA9IHRoaXMudGFibGUsIHl5dGV4dCA9IFwiXCIsIHl5bGluZW5vID0gMCwgeXlsZW5nID0gMCwgVEVSUk9SID0gMiwgRU9GID0gMTtcbiAgICAgIHZhciBhcmdzID0gbHN0YWNrLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgIHZhciBsZXhlcjIgPSBPYmplY3QuY3JlYXRlKHRoaXMubGV4ZXIpO1xuICAgICAgdmFyIHNoYXJlZFN0YXRlID0geyB5eToge30gfTtcbiAgICAgIGZvciAodmFyIGsgaW4gdGhpcy55eSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMueXksIGspKSB7XG4gICAgICAgICAgc2hhcmVkU3RhdGUueXlba10gPSB0aGlzLnl5W2tdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXhlcjIuc2V0SW5wdXQoaW5wdXQsIHNoYXJlZFN0YXRlLnl5KTtcbiAgICAgIHNoYXJlZFN0YXRlLnl5LmxleGVyID0gbGV4ZXIyO1xuICAgICAgc2hhcmVkU3RhdGUueXkucGFyc2VyID0gdGhpcztcbiAgICAgIGlmICh0eXBlb2YgbGV4ZXIyLnl5bGxvYyA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGxleGVyMi55eWxsb2MgPSB7fTtcbiAgICAgIH1cbiAgICAgIHZhciB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICBsc3RhY2sucHVzaCh5eWxvYyk7XG4gICAgICB2YXIgcmFuZ2VzID0gbGV4ZXIyLm9wdGlvbnMgJiYgbGV4ZXIyLm9wdGlvbnMucmFuZ2VzO1xuICAgICAgaWYgKHR5cGVvZiBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFyc2VFcnJvciA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5wYXJzZUVycm9yO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgdG9rZW47XG4gICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpIHx8IGxleGVyMi5sZXgoKSB8fCBFT0Y7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBpZiAodG9rZW4gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgdHN0YWNrID0gdG9rZW47XG4gICAgICAgICAgICB0b2tlbiA9IHRzdGFjay5wb3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdG9rZW4gPSBzZWxmLnN5bWJvbHNfW3Rva2VuXSB8fCB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICB9XG4gICAgICB2YXIgc3ltYm9sLCBzdGF0ZSwgYWN0aW9uLCByLCB5eXZhbCA9IHt9LCBwLCBsZW4sIG5ld1N0YXRlLCBleHBlY3RlZDtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHN0YXRlID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXSkge1xuICAgICAgICAgIGFjdGlvbiA9IHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChzeW1ib2wgPT09IG51bGwgfHwgdHlwZW9mIHN5bWJvbCA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBzeW1ib2wgPSBsZXgoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWN0aW9uID0gdGFibGVbc3RhdGVdICYmIHRhYmxlW3N0YXRlXVtzeW1ib2xdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSBcInVuZGVmaW5lZFwiIHx8ICFhY3Rpb24ubGVuZ3RoIHx8ICFhY3Rpb25bMF0pIHtcbiAgICAgICAgICB2YXIgZXJyU3RyID0gXCJcIjtcbiAgICAgICAgICBleHBlY3RlZCA9IFtdO1xuICAgICAgICAgIGZvciAocCBpbiB0YWJsZVtzdGF0ZV0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRlcm1pbmFsc19bcF0gJiYgcCA+IFRFUlJPUikge1xuICAgICAgICAgICAgICBleHBlY3RlZC5wdXNoKFwiJ1wiICsgdGhpcy50ZXJtaW5hbHNfW3BdICsgXCInXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGV4ZXIyLnNob3dQb3NpdGlvbikge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjpcXG5cIiArIGxleGVyMi5zaG93UG9zaXRpb24oKSArIFwiXFxuRXhwZWN0aW5nIFwiICsgZXhwZWN0ZWQuam9pbihcIiwgXCIpICsgXCIsIGdvdCAnXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOiBVbmV4cGVjdGVkIFwiICsgKHN5bWJvbCA9PSBFT0YgPyBcImVuZCBvZiBpbnB1dFwiIDogXCInXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wYXJzZUVycm9yKGVyclN0ciwge1xuICAgICAgICAgICAgdGV4dDogbGV4ZXIyLm1hdGNoLFxuICAgICAgICAgICAgdG9rZW46IHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCxcbiAgICAgICAgICAgIGxpbmU6IGxleGVyMi55eWxpbmVubyxcbiAgICAgICAgICAgIGxvYzogeXlsb2MsXG4gICAgICAgICAgICBleHBlY3RlZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25bMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBhY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcnNlIEVycm9yOiBtdWx0aXBsZSBhY3Rpb25zIHBvc3NpYmxlIGF0IHN0YXRlOiBcIiArIHN0YXRlICsgXCIsIHRva2VuOiBcIiArIHN5bWJvbCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChhY3Rpb25bMF0pIHtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBzdGFjay5wdXNoKHN5bWJvbCk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaChsZXhlcjIueXl0ZXh0KTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKGxleGVyMi55eWxsb2MpO1xuICAgICAgICAgICAgc3RhY2sucHVzaChhY3Rpb25bMV0pO1xuICAgICAgICAgICAgc3ltYm9sID0gbnVsbDtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgeXlsZW5nID0gbGV4ZXIyLnl5bGVuZztcbiAgICAgICAgICAgICAgeXl0ZXh0ID0gbGV4ZXIyLnl5dGV4dDtcbiAgICAgICAgICAgICAgeXlsaW5lbm8gPSBsZXhlcjIueXlsaW5lbm87XG4gICAgICAgICAgICAgIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGxlbiA9IHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMV07XG4gICAgICAgICAgICB5eXZhbC4kID0gdnN0YWNrW3ZzdGFjay5sZW5ndGggLSBsZW5dO1xuICAgICAgICAgICAgeXl2YWwuXyQgPSB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmFuZ2VzKSB7XG4gICAgICAgICAgICAgIHl5dmFsLl8kLnJhbmdlID0gW1xuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0ucmFuZ2VbMF0sXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5yYW5nZVsxXVxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgciA9IHRoaXMucGVyZm9ybUFjdGlvbi5hcHBseSh5eXZhbCwgW1xuICAgICAgICAgICAgICB5eXRleHQsXG4gICAgICAgICAgICAgIHl5bGVuZyxcbiAgICAgICAgICAgICAgeXlsaW5lbm8sXG4gICAgICAgICAgICAgIHNoYXJlZFN0YXRlLnl5LFxuICAgICAgICAgICAgICBhY3Rpb25bMV0sXG4gICAgICAgICAgICAgIHZzdGFjayxcbiAgICAgICAgICAgICAgbHN0YWNrXG4gICAgICAgICAgICBdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGVuKSB7XG4gICAgICAgICAgICAgIHN0YWNrID0gc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4gKiAyKTtcbiAgICAgICAgICAgICAgdnN0YWNrID0gdnN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgICAgbHN0YWNrID0gbHN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YWNrLnB1c2godGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVswXSk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaCh5eXZhbC4kKTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKHl5dmFsLl8kKTtcbiAgICAgICAgICAgIG5ld1N0YXRlID0gdGFibGVbc3RhY2tbc3RhY2subGVuZ3RoIC0gMl1dW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2gobmV3U3RhdGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfTtcbiAgdmFyIGxleGVyID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGxleGVyMiA9IHtcbiAgICAgIEVPRjogMSxcbiAgICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICAgIGlmICh0aGlzLnl5LnBhcnNlcikge1xuICAgICAgICAgIHRoaXMueXkucGFyc2VyLnBhcnNlRXJyb3Ioc3RyLCBoYXNoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJlc2V0cyB0aGUgbGV4ZXIsIHNldHMgbmV3IGlucHV0XG4gICAgICBzZXRJbnB1dDogZnVuY3Rpb24oaW5wdXQsIHl5KSB7XG4gICAgICAgIHRoaXMueXkgPSB5eSB8fCB0aGlzLnl5IHx8IHt9O1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLl9tb3JlID0gdGhpcy5fYmFja3RyYWNrID0gdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgIHRoaXMueXlsaW5lbm8gPSB0aGlzLnl5bGVuZyA9IDA7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaCA9IFwiXCI7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sgPSBbXCJJTklUSUFMXCJdO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogMCxcbiAgICAgICAgICBsYXN0X2xpbmU6IDEsXG4gICAgICAgICAgbGFzdF9jb2x1bW46IDBcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFswLCAwXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIGNvbnN1bWVzIGFuZCByZXR1cm5zIG9uZSBjaGFyIGZyb20gdGhlIGlucHV0XG4gICAgICBpbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBjaCA9IHRoaXMuX2lucHV0WzBdO1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBjaDtcbiAgICAgICAgdGhpcy55eWxlbmcrKztcbiAgICAgICAgdGhpcy5vZmZzZXQrKztcbiAgICAgICAgdGhpcy5tYXRjaCArPSBjaDtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IGNoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8rKztcbiAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2xpbmUrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbisrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2VbMV0rKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKDEpO1xuICAgICAgICByZXR1cm4gY2g7XG4gICAgICB9LFxuICAgICAgLy8gdW5zaGlmdHMgb25lIGNoYXIgKG9yIGEgc3RyaW5nKSBpbnRvIHRoZSBpbnB1dFxuICAgICAgdW5wdXQ6IGZ1bmN0aW9uKGNoKSB7XG4gICAgICAgIHZhciBsZW4gPSBjaC5sZW5ndGg7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gY2ggKyB0aGlzLl9pbnB1dDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLnl5dGV4dC5zdWJzdHIoMCwgdGhpcy55eXRleHQubGVuZ3RoIC0gbGVuKTtcbiAgICAgICAgdGhpcy5vZmZzZXQgLT0gbGVuO1xuICAgICAgICB2YXIgb2xkTGluZXMgPSB0aGlzLm1hdGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgIHRoaXMubWF0Y2ggPSB0aGlzLm1hdGNoLnN1YnN0cigwLCB0aGlzLm1hdGNoLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSAxKTtcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vIC09IGxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHIgPSB0aGlzLnl5bGxvYy5yYW5nZTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IChsaW5lcy5sZW5ndGggPT09IG9sZExpbmVzLmxlbmd0aCA/IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiA6IDApICsgb2xkTGluZXNbb2xkTGluZXMubGVuZ3RoIC0gbGluZXMubGVuZ3RoXS5sZW5ndGggLSBsaW5lc1swXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gLSBsZW5cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFtyWzBdLCByWzBdICsgdGhpcy55eWxlbmcgLSBsZW5dO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgY2FjaGVzIG1hdGNoZWQgdGV4dCBhbmQgYXBwZW5kcyBpdCBvbiBuZXh0IGFjdGlvblxuICAgICAgbW9yZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgc2lnbmFscyB0aGUgbGV4ZXIgdGhhdCB0aGlzIHJ1bGUgZmFpbHMgdG8gbWF0Y2ggdGhlIGlucHV0LCBzbyB0aGUgbmV4dCBtYXRjaGluZyBydWxlIChyZWdleCkgc2hvdWxkIGJlIHRlc3RlZCBpbnN0ZWFkLlxuICAgICAgcmVqZWN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIgKyAodGhpcy55eWxpbmVubyArIDEpICsgXCIuIFlvdSBjYW4gb25seSBpbnZva2UgcmVqZWN0KCkgaW4gdGhlIGxleGVyIHdoZW4gdGhlIGxleGVyIGlzIG9mIHRoZSBiYWNrdHJhY2tpbmcgcGVyc3Vhc2lvbiAob3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIgPSB0cnVlKS5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyByZXRhaW4gZmlyc3QgbiBjaGFyYWN0ZXJzIG9mIHRoZSBtYXRjaFxuICAgICAgbGVzczogZnVuY3Rpb24obikge1xuICAgICAgICB0aGlzLnVucHV0KHRoaXMubWF0Y2guc2xpY2UobikpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIGFscmVhZHkgbWF0Y2hlZCBpbnB1dCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHBhc3RJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwYXN0ID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gdGhpcy5tYXRjaC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gKHBhc3QubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikgKyBwYXN0LnN1YnN0cigtMjApLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB1cGNvbWluZyBpbnB1dCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHVwY29taW5nSW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbmV4dCA9IHRoaXMubWF0Y2g7XG4gICAgICAgIGlmIChuZXh0Lmxlbmd0aCA8IDIwKSB7XG4gICAgICAgICAgbmV4dCArPSB0aGlzLl9pbnB1dC5zdWJzdHIoMCwgMjAgLSBuZXh0Lmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChuZXh0LnN1YnN0cigwLCAyMCkgKyAobmV4dC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXIgcG9zaXRpb24gd2hlcmUgdGhlIGxleGluZyBlcnJvciBvY2N1cnJlZCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHNob3dQb3NpdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwcmUgPSB0aGlzLnBhc3RJbnB1dCgpO1xuICAgICAgICB2YXIgYyA9IG5ldyBBcnJheShwcmUubGVuZ3RoICsgMSkuam9pbihcIi1cIik7XG4gICAgICAgIHJldHVybiBwcmUgKyB0aGlzLnVwY29taW5nSW5wdXQoKSArIFwiXFxuXCIgKyBjICsgXCJeXCI7XG4gICAgICB9LFxuICAgICAgLy8gdGVzdCB0aGUgbGV4ZWQgdG9rZW46IHJldHVybiBGQUxTRSB3aGVuIG5vdCBhIG1hdGNoLCBvdGhlcndpc2UgcmV0dXJuIHRva2VuXG4gICAgICB0ZXN0X21hdGNoOiBmdW5jdGlvbihtYXRjaCwgaW5kZXhlZF9ydWxlKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbGluZXMsIGJhY2t1cDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICBiYWNrdXAgPSB7XG4gICAgICAgICAgICB5eWxpbmVubzogdGhpcy55eWxpbmVubyxcbiAgICAgICAgICAgIHl5bGxvYzoge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeXl0ZXh0OiB0aGlzLnl5dGV4dCxcbiAgICAgICAgICAgIG1hdGNoOiB0aGlzLm1hdGNoLFxuICAgICAgICAgICAgbWF0Y2hlczogdGhpcy5tYXRjaGVzLFxuICAgICAgICAgICAgbWF0Y2hlZDogdGhpcy5tYXRjaGVkLFxuICAgICAgICAgICAgeXlsZW5nOiB0aGlzLnl5bGVuZyxcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICBfbW9yZTogdGhpcy5fbW9yZSxcbiAgICAgICAgICAgIF9pbnB1dDogdGhpcy5faW5wdXQsXG4gICAgICAgICAgICB5eTogdGhpcy55eSxcbiAgICAgICAgICAgIGNvbmRpdGlvblN0YWNrOiB0aGlzLmNvbmRpdGlvblN0YWNrLnNsaWNlKDApLFxuICAgICAgICAgICAgZG9uZTogdGhpcy5kb25lXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgICAgYmFja3VwLnl5bGxvYy5yYW5nZSA9IHRoaXMueXlsbG9jLnJhbmdlLnNsaWNlKDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsaW5lcyA9IG1hdGNoWzBdLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyArPSBsaW5lcy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MubGFzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGggLSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5tYXRjaCgvXFxyP1xcbj8vKVswXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbiArIG1hdGNoWzBdLmxlbmd0aFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBtYXRjaFswXTtcbiAgICAgICAgdGhpcy5tYXRjaCArPSBtYXRjaFswXTtcbiAgICAgICAgdGhpcy5tYXRjaGVzID0gbWF0Y2g7XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3RoaXMub2Zmc2V0LCB0aGlzLm9mZnNldCArPSB0aGlzLnl5bGVuZ107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbW9yZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZShtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRva2VuID0gdGhpcy5wZXJmb3JtQWN0aW9uLmNhbGwodGhpcywgdGhpcy55eSwgdGhpcywgaW5kZXhlZF9ydWxlLCB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pO1xuICAgICAgICBpZiAodGhpcy5kb25lICYmIHRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgIGZvciAodmFyIGsgaW4gYmFja3VwKSB7XG4gICAgICAgICAgICB0aGlzW2tdID0gYmFja3VwW2tdO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIGluIGlucHV0XG4gICAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5kb25lID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdG9rZW4sIG1hdGNoLCB0ZW1wTWF0Y2gsIGluZGV4O1xuICAgICAgICBpZiAoIXRoaXMuX21vcmUpIHtcbiAgICAgICAgICB0aGlzLnl5dGV4dCA9IFwiXCI7XG4gICAgICAgICAgdGhpcy5tYXRjaCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJ1bGVzID0gdGhpcy5fY3VycmVudFJ1bGVzKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0ZW1wTWF0Y2ggPSB0aGlzLl9pbnB1dC5tYXRjaCh0aGlzLnJ1bGVzW3J1bGVzW2ldXSk7XG4gICAgICAgICAgaWYgKHRlbXBNYXRjaCAmJiAoIW1hdGNoIHx8IHRlbXBNYXRjaFswXS5sZW5ndGggPiBtYXRjaFswXS5sZW5ndGgpKSB7XG4gICAgICAgICAgICBtYXRjaCA9IHRlbXBNYXRjaDtcbiAgICAgICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKHRlbXBNYXRjaCwgcnVsZXNbaV0pO1xuICAgICAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLm9wdGlvbnMuZmxleCkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2gobWF0Y2gsIHJ1bGVzW2luZGV4XSk7XG4gICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0ID09PSBcIlwiKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIgKyAodGhpcy55eWxpbmVubyArIDEpICsgXCIuIFVucmVjb2duaXplZCB0ZXh0LlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggdGhhdCBoYXMgYSB0b2tlblxuICAgICAgbGV4OiBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciByID0gdGhpcy5uZXh0KCk7XG4gICAgICAgIGlmIChyKSB7XG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubGV4KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhY3RpdmF0ZXMgYSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIChwdXNoZXMgdGhlIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgb250byB0aGUgY29uZGl0aW9uIHN0YWNrKVxuICAgICAgYmVnaW46IGZ1bmN0aW9uIGJlZ2luKGNvbmRpdGlvbikge1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrLnB1c2goY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyBwb3AgdGhlIHByZXZpb3VzbHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvZmYgdGhlIGNvbmRpdGlvbiBzdGFja1xuICAgICAgcG9wU3RhdGU6IGZ1bmN0aW9uIHBvcFN0YXRlKCkge1xuICAgICAgICB2YXIgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKG4gPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2sucG9wKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2tbMF07XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBwcm9kdWNlIHRoZSBsZXhlciBydWxlIHNldCB3aGljaCBpcyBhY3RpdmUgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZVxuICAgICAgX2N1cnJlbnRSdWxlczogZnVuY3Rpb24gX2N1cnJlbnRSdWxlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoICYmIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdXS5ydWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW1wiSU5JVElBTFwiXS5ydWxlcztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGU7IHdoZW4gYW4gaW5kZXggYXJndW1lbnQgaXMgcHJvdmlkZWQgaXQgcHJvZHVjZXMgdGhlIE4tdGggcHJldmlvdXMgY29uZGl0aW9uIHN0YXRlLCBpZiBhdmFpbGFibGVcbiAgICAgIHRvcFN0YXRlOiBmdW5jdGlvbiB0b3BTdGF0ZShuKSB7XG4gICAgICAgIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDEgLSBNYXRoLmFicyhuIHx8IDApO1xuICAgICAgICBpZiAobiA+PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2tbbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFwiSU5JVElBTFwiO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWxpYXMgZm9yIGJlZ2luKGNvbmRpdGlvbilcbiAgICAgIHB1c2hTdGF0ZTogZnVuY3Rpb24gcHVzaFN0YXRlKGNvbmRpdGlvbikge1xuICAgICAgICB0aGlzLmJlZ2luKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdGVzIGN1cnJlbnRseSBvbiB0aGUgc3RhY2tcbiAgICAgIHN0YXRlU3RhY2tTaXplOiBmdW5jdGlvbiBzdGF0ZVN0YWNrU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHsgXCJjYXNlLWluc2Vuc2l0aXZlXCI6IHRydWUgfSxcbiAgICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eSwgeXlfLCAkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zLCBZWV9TVEFSVCkge1xuICAgICAgICBzd2l0Y2ggKCRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gMTA7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgcmV0dXJuIDExO1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfdGl0bGVcIik7XG4gICAgICAgICAgICByZXR1cm4gMTI7XG4gICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX3RpdGxlX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSA5OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcImFjY19kZXNjclwiKTtcbiAgICAgICAgICAgIHJldHVybiAxNDtcbiAgICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX2Rlc2NyX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgICAgIHJldHVybiAxNztcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgcmV0dXJuIDIxO1xuICAgICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgICByZXR1cm4gMjA7XG4gICAgICAgICAgY2FzZSAxNzpcbiAgICAgICAgICAgIHJldHVybiA2O1xuICAgICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgICByZXR1cm4gXCJJTlZBTElEXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczogWy9eKD86JSg/IVxceylbXlxcbl0qKS9pLCAvXig/OlteXFx9XSUlW15cXG5dKikvaSwgL14oPzpbXFxuXSspL2ksIC9eKD86XFxzKykvaSwgL14oPzojW15cXG5dKikvaSwgL14oPzp0aW1lbGluZVxcYikvaSwgL14oPzp0aXRsZVxcc1teI1xcbjtdKykvaSwgL14oPzphY2NUaXRsZVxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccyo6XFxzKikvaSwgL14oPzooPyFcXG58fCkqW15cXG5dKikvaSwgL14oPzphY2NEZXNjclxccypcXHtcXHMqKS9pLCAvXig/OltcXH1dKS9pLCAvXig/OlteXFx9XSopL2ksIC9eKD86c2VjdGlvblxcc1teIzpcXG47XSspL2ksIC9eKD86Olxcc1teIzpcXG47XSspL2ksIC9eKD86W14jOlxcbjtdKykvaSwgL14oPzokKS9pLCAvXig/Oi4pL2ldLFxuICAgICAgY29uZGl0aW9uczogeyBcImFjY19kZXNjcl9tdWx0aWxpbmVcIjogeyBcInJ1bGVzXCI6IFsxMiwgMTNdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY19kZXNjclwiOiB7IFwicnVsZXNcIjogWzEwXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJhY2NfdGl0bGVcIjogeyBcInJ1bGVzXCI6IFs4XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOSwgMTEsIDE0LCAxNSwgMTYsIDE3LCAxOF0sIFwiaW5jbHVzaXZlXCI6IHRydWUgfSB9XG4gICAgfTtcbiAgICByZXR1cm4gbGV4ZXIyO1xuICB9KCk7XG4gIHBhcnNlcjIubGV4ZXIgPSBsZXhlcjtcbiAgZnVuY3Rpb24gUGFyc2VyKCkge1xuICAgIHRoaXMueXkgPSB7fTtcbiAgfVxuICBQYXJzZXIucHJvdG90eXBlID0gcGFyc2VyMjtcbiAgcGFyc2VyMi5QYXJzZXIgPSBQYXJzZXI7XG4gIHJldHVybiBuZXcgUGFyc2VyKCk7XG59KCk7XG5wYXJzZXIucGFyc2VyID0gcGFyc2VyO1xuY29uc3QgcGFyc2VyJDEgPSBwYXJzZXI7XG5sZXQgY3VycmVudFNlY3Rpb24gPSBcIlwiO1xubGV0IGN1cnJlbnRUYXNrSWQgPSAwO1xuY29uc3Qgc2VjdGlvbnMgPSBbXTtcbmNvbnN0IHRhc2tzID0gW107XG5jb25zdCByYXdUYXNrcyA9IFtdO1xuY29uc3QgZ2V0Q29tbW9uRGIgPSAoKSA9PiBjb21tb25EYjtcbmNvbnN0IGNsZWFyID0gZnVuY3Rpb24oKSB7XG4gIHNlY3Rpb25zLmxlbmd0aCA9IDA7XG4gIHRhc2tzLmxlbmd0aCA9IDA7XG4gIGN1cnJlbnRTZWN0aW9uID0gXCJcIjtcbiAgcmF3VGFza3MubGVuZ3RoID0gMDtcbiAgY2xlYXIkMSgpO1xufTtcbmNvbnN0IGFkZFNlY3Rpb24gPSBmdW5jdGlvbih0eHQpIHtcbiAgY3VycmVudFNlY3Rpb24gPSB0eHQ7XG4gIHNlY3Rpb25zLnB1c2godHh0KTtcbn07XG5jb25zdCBnZXRTZWN0aW9ucyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gc2VjdGlvbnM7XG59O1xuY29uc3QgZ2V0VGFza3MgPSBmdW5jdGlvbigpIHtcbiAgbGV0IGFsbEl0ZW1zUHJvY2Vzc2VkID0gY29tcGlsZVRhc2tzKCk7XG4gIGNvbnN0IG1heERlcHRoID0gMTAwO1xuICBsZXQgaXRlcmF0aW9uQ291bnQgPSAwO1xuICB3aGlsZSAoIWFsbEl0ZW1zUHJvY2Vzc2VkICYmIGl0ZXJhdGlvbkNvdW50IDwgbWF4RGVwdGgpIHtcbiAgICBhbGxJdGVtc1Byb2Nlc3NlZCA9IGNvbXBpbGVUYXNrcygpO1xuICAgIGl0ZXJhdGlvbkNvdW50Kys7XG4gIH1cbiAgdGFza3MucHVzaCguLi5yYXdUYXNrcyk7XG4gIHJldHVybiB0YXNrcztcbn07XG5jb25zdCBhZGRUYXNrID0gZnVuY3Rpb24ocGVyaW9kLCBsZW5ndGgsIGV2ZW50KSB7XG4gIGNvbnN0IHJhd1Rhc2sgPSB7XG4gICAgaWQ6IGN1cnJlbnRUYXNrSWQrKyxcbiAgICBzZWN0aW9uOiBjdXJyZW50U2VjdGlvbixcbiAgICB0eXBlOiBjdXJyZW50U2VjdGlvbixcbiAgICB0YXNrOiBwZXJpb2QsXG4gICAgc2NvcmU6IGxlbmd0aCA/IGxlbmd0aCA6IDAsXG4gICAgLy9pZiBldmVudCBpcyBkZWZpbmVkLCB0aGVuIGFkZCBpdCB0aGUgZXZlbnRzIGFycmF5XG4gICAgZXZlbnRzOiBldmVudCA/IFtldmVudF0gOiBbXVxuICB9O1xuICByYXdUYXNrcy5wdXNoKHJhd1Rhc2spO1xufTtcbmNvbnN0IGFkZEV2ZW50ID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAgY29uc3QgY3VycmVudFRhc2sgPSByYXdUYXNrcy5maW5kKCh0YXNrKSA9PiB0YXNrLmlkID09PSBjdXJyZW50VGFza0lkIC0gMSk7XG4gIGN1cnJlbnRUYXNrLmV2ZW50cy5wdXNoKGV2ZW50KTtcbn07XG5jb25zdCBhZGRUYXNrT3JnID0gZnVuY3Rpb24oZGVzY3IpIHtcbiAgY29uc3QgbmV3VGFzayA9IHtcbiAgICBzZWN0aW9uOiBjdXJyZW50U2VjdGlvbixcbiAgICB0eXBlOiBjdXJyZW50U2VjdGlvbixcbiAgICBkZXNjcmlwdGlvbjogZGVzY3IsXG4gICAgdGFzazogZGVzY3IsXG4gICAgY2xhc3NlczogW11cbiAgfTtcbiAgdGFza3MucHVzaChuZXdUYXNrKTtcbn07XG5jb25zdCBjb21waWxlVGFza3MgPSBmdW5jdGlvbigpIHtcbiAgY29uc3QgY29tcGlsZVRhc2sgPSBmdW5jdGlvbihwb3MpIHtcbiAgICByZXR1cm4gcmF3VGFza3NbcG9zXS5wcm9jZXNzZWQ7XG4gIH07XG4gIGxldCBhbGxQcm9jZXNzZWQgPSB0cnVlO1xuICBmb3IgKGNvbnN0IFtpLCByYXdUYXNrXSBvZiByYXdUYXNrcy5lbnRyaWVzKCkpIHtcbiAgICBjb21waWxlVGFzayhpKTtcbiAgICBhbGxQcm9jZXNzZWQgPSBhbGxQcm9jZXNzZWQgJiYgcmF3VGFzay5wcm9jZXNzZWQ7XG4gIH1cbiAgcmV0dXJuIGFsbFByb2Nlc3NlZDtcbn07XG5jb25zdCB0aW1lbGluZURiID0ge1xuICBjbGVhcixcbiAgZ2V0Q29tbW9uRGIsXG4gIGFkZFNlY3Rpb24sXG4gIGdldFNlY3Rpb25zLFxuICBnZXRUYXNrcyxcbiAgYWRkVGFzayxcbiAgYWRkVGFza09yZyxcbiAgYWRkRXZlbnRcbn07XG5jb25zdCBkYiA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuZnJlZXplKC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuZGVmaW5lUHJvcGVydHkoe1xuICBfX3Byb3RvX186IG51bGwsXG4gIGFkZEV2ZW50LFxuICBhZGRTZWN0aW9uLFxuICBhZGRUYXNrLFxuICBhZGRUYXNrT3JnLFxuICBjbGVhcixcbiAgZGVmYXVsdDogdGltZWxpbmVEYixcbiAgZ2V0Q29tbW9uRGIsXG4gIGdldFNlY3Rpb25zLFxuICBnZXRUYXNrc1xufSwgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiBcIk1vZHVsZVwiIH0pKTtcbmNvbnN0IE1BWF9TRUNUSU9OUyA9IDEyO1xuY29uc3QgZHJhd1JlY3QgPSBmdW5jdGlvbihlbGVtLCByZWN0RGF0YSkge1xuICBjb25zdCByZWN0RWxlbSA9IGVsZW0uYXBwZW5kKFwicmVjdFwiKTtcbiAgcmVjdEVsZW0uYXR0cihcInhcIiwgcmVjdERhdGEueCk7XG4gIHJlY3RFbGVtLmF0dHIoXCJ5XCIsIHJlY3REYXRhLnkpO1xuICByZWN0RWxlbS5hdHRyKFwiZmlsbFwiLCByZWN0RGF0YS5maWxsKTtcbiAgcmVjdEVsZW0uYXR0cihcInN0cm9rZVwiLCByZWN0RGF0YS5zdHJva2UpO1xuICByZWN0RWxlbS5hdHRyKFwid2lkdGhcIiwgcmVjdERhdGEud2lkdGgpO1xuICByZWN0RWxlbS5hdHRyKFwiaGVpZ2h0XCIsIHJlY3REYXRhLmhlaWdodCk7XG4gIHJlY3RFbGVtLmF0dHIoXCJyeFwiLCByZWN0RGF0YS5yeCk7XG4gIHJlY3RFbGVtLmF0dHIoXCJyeVwiLCByZWN0RGF0YS5yeSk7XG4gIGlmIChyZWN0RGF0YS5jbGFzcyAhPT0gdm9pZCAwKSB7XG4gICAgcmVjdEVsZW0uYXR0cihcImNsYXNzXCIsIHJlY3REYXRhLmNsYXNzKTtcbiAgfVxuICByZXR1cm4gcmVjdEVsZW07XG59O1xuY29uc3QgZHJhd0ZhY2UgPSBmdW5jdGlvbihlbGVtZW50LCBmYWNlRGF0YSkge1xuICBjb25zdCByYWRpdXMgPSAxNTtcbiAgY29uc3QgY2lyY2xlRWxlbWVudCA9IGVsZW1lbnQuYXBwZW5kKFwiY2lyY2xlXCIpLmF0dHIoXCJjeFwiLCBmYWNlRGF0YS5jeCkuYXR0cihcImN5XCIsIGZhY2VEYXRhLmN5KS5hdHRyKFwiY2xhc3NcIiwgXCJmYWNlXCIpLmF0dHIoXCJyXCIsIHJhZGl1cykuYXR0cihcInN0cm9rZS13aWR0aFwiLCAyKS5hdHRyKFwib3ZlcmZsb3dcIiwgXCJ2aXNpYmxlXCIpO1xuICBjb25zdCBmYWNlID0gZWxlbWVudC5hcHBlbmQoXCJnXCIpO1xuICBmYWNlLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwiY3hcIiwgZmFjZURhdGEuY3ggLSByYWRpdXMgLyAzKS5hdHRyKFwiY3lcIiwgZmFjZURhdGEuY3kgLSByYWRpdXMgLyAzKS5hdHRyKFwiclwiLCAxLjUpLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgMikuYXR0cihcImZpbGxcIiwgXCIjNjY2XCIpLmF0dHIoXCJzdHJva2VcIiwgXCIjNjY2XCIpO1xuICBmYWNlLmFwcGVuZChcImNpcmNsZVwiKS5hdHRyKFwiY3hcIiwgZmFjZURhdGEuY3ggKyByYWRpdXMgLyAzKS5hdHRyKFwiY3lcIiwgZmFjZURhdGEuY3kgLSByYWRpdXMgLyAzKS5hdHRyKFwiclwiLCAxLjUpLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgMikuYXR0cihcImZpbGxcIiwgXCIjNjY2XCIpLmF0dHIoXCJzdHJva2VcIiwgXCIjNjY2XCIpO1xuICBmdW5jdGlvbiBzbWlsZShmYWNlMikge1xuICAgIGNvbnN0IGFyYyQxID0gYXJjKCkuc3RhcnRBbmdsZShNYXRoLlBJIC8gMikuZW5kQW5nbGUoMyAqIChNYXRoLlBJIC8gMikpLmlubmVyUmFkaXVzKHJhZGl1cyAvIDIpLm91dGVyUmFkaXVzKHJhZGl1cyAvIDIuMik7XG4gICAgZmFjZTIuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJtb3V0aFwiKS5hdHRyKFwiZFwiLCBhcmMkMSkuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIGZhY2VEYXRhLmN4ICsgXCIsXCIgKyAoZmFjZURhdGEuY3kgKyAyKSArIFwiKVwiKTtcbiAgfVxuICBmdW5jdGlvbiBzYWQoZmFjZTIpIHtcbiAgICBjb25zdCBhcmMkMSA9IGFyYygpLnN0YXJ0QW5nbGUoMyAqIE1hdGguUEkgLyAyKS5lbmRBbmdsZSg1ICogKE1hdGguUEkgLyAyKSkuaW5uZXJSYWRpdXMocmFkaXVzIC8gMikub3V0ZXJSYWRpdXMocmFkaXVzIC8gMi4yKTtcbiAgICBmYWNlMi5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm1vdXRoXCIpLmF0dHIoXCJkXCIsIGFyYyQxKS5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKFwiICsgZmFjZURhdGEuY3ggKyBcIixcIiArIChmYWNlRGF0YS5jeSArIDcpICsgXCIpXCIpO1xuICB9XG4gIGZ1bmN0aW9uIGFtYml2YWxlbnQoZmFjZTIpIHtcbiAgICBmYWNlMi5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm1vdXRoXCIpLmF0dHIoXCJzdHJva2VcIiwgMikuYXR0cihcIngxXCIsIGZhY2VEYXRhLmN4IC0gNSkuYXR0cihcInkxXCIsIGZhY2VEYXRhLmN5ICsgNykuYXR0cihcIngyXCIsIGZhY2VEYXRhLmN4ICsgNSkuYXR0cihcInkyXCIsIGZhY2VEYXRhLmN5ICsgNykuYXR0cihcImNsYXNzXCIsIFwibW91dGhcIikuYXR0cihcInN0cm9rZS13aWR0aFwiLCBcIjFweFwiKS5hdHRyKFwic3Ryb2tlXCIsIFwiIzY2NlwiKTtcbiAgfVxuICBpZiAoZmFjZURhdGEuc2NvcmUgPiAzKSB7XG4gICAgc21pbGUoZmFjZSk7XG4gIH0gZWxzZSBpZiAoZmFjZURhdGEuc2NvcmUgPCAzKSB7XG4gICAgc2FkKGZhY2UpO1xuICB9IGVsc2Uge1xuICAgIGFtYml2YWxlbnQoZmFjZSk7XG4gIH1cbiAgcmV0dXJuIGNpcmNsZUVsZW1lbnQ7XG59O1xuY29uc3QgZHJhd0NpcmNsZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIGNpcmNsZURhdGEpIHtcbiAgY29uc3QgY2lyY2xlRWxlbWVudCA9IGVsZW1lbnQuYXBwZW5kKFwiY2lyY2xlXCIpO1xuICBjaXJjbGVFbGVtZW50LmF0dHIoXCJjeFwiLCBjaXJjbGVEYXRhLmN4KTtcbiAgY2lyY2xlRWxlbWVudC5hdHRyKFwiY3lcIiwgY2lyY2xlRGF0YS5jeSk7XG4gIGNpcmNsZUVsZW1lbnQuYXR0cihcImNsYXNzXCIsIFwiYWN0b3ItXCIgKyBjaXJjbGVEYXRhLnBvcyk7XG4gIGNpcmNsZUVsZW1lbnQuYXR0cihcImZpbGxcIiwgY2lyY2xlRGF0YS5maWxsKTtcbiAgY2lyY2xlRWxlbWVudC5hdHRyKFwic3Ryb2tlXCIsIGNpcmNsZURhdGEuc3Ryb2tlKTtcbiAgY2lyY2xlRWxlbWVudC5hdHRyKFwiclwiLCBjaXJjbGVEYXRhLnIpO1xuICBpZiAoY2lyY2xlRWxlbWVudC5jbGFzcyAhPT0gdm9pZCAwKSB7XG4gICAgY2lyY2xlRWxlbWVudC5hdHRyKFwiY2xhc3NcIiwgY2lyY2xlRWxlbWVudC5jbGFzcyk7XG4gIH1cbiAgaWYgKGNpcmNsZURhdGEudGl0bGUgIT09IHZvaWQgMCkge1xuICAgIGNpcmNsZUVsZW1lbnQuYXBwZW5kKFwidGl0bGVcIikudGV4dChjaXJjbGVEYXRhLnRpdGxlKTtcbiAgfVxuICByZXR1cm4gY2lyY2xlRWxlbWVudDtcbn07XG5jb25zdCBkcmF3VGV4dCA9IGZ1bmN0aW9uKGVsZW0sIHRleHREYXRhKSB7XG4gIGNvbnN0IG5UZXh0ID0gdGV4dERhdGEudGV4dC5yZXBsYWNlKC88YnJcXHMqXFwvPz4vZ2ksIFwiIFwiKTtcbiAgY29uc3QgdGV4dEVsZW0gPSBlbGVtLmFwcGVuZChcInRleHRcIik7XG4gIHRleHRFbGVtLmF0dHIoXCJ4XCIsIHRleHREYXRhLngpO1xuICB0ZXh0RWxlbS5hdHRyKFwieVwiLCB0ZXh0RGF0YS55KTtcbiAgdGV4dEVsZW0uYXR0cihcImNsYXNzXCIsIFwibGVnZW5kXCIpO1xuICB0ZXh0RWxlbS5zdHlsZShcInRleHQtYW5jaG9yXCIsIHRleHREYXRhLmFuY2hvcik7XG4gIGlmICh0ZXh0RGF0YS5jbGFzcyAhPT0gdm9pZCAwKSB7XG4gICAgdGV4dEVsZW0uYXR0cihcImNsYXNzXCIsIHRleHREYXRhLmNsYXNzKTtcbiAgfVxuICBjb25zdCBzcGFuID0gdGV4dEVsZW0uYXBwZW5kKFwidHNwYW5cIik7XG4gIHNwYW4uYXR0cihcInhcIiwgdGV4dERhdGEueCArIHRleHREYXRhLnRleHRNYXJnaW4gKiAyKTtcbiAgc3Bhbi50ZXh0KG5UZXh0KTtcbiAgcmV0dXJuIHRleHRFbGVtO1xufTtcbmNvbnN0IGRyYXdMYWJlbCA9IGZ1bmN0aW9uKGVsZW0sIHR4dE9iamVjdCkge1xuICBmdW5jdGlvbiBnZW5Qb2ludHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgY3V0KSB7XG4gICAgcmV0dXJuIHggKyBcIixcIiArIHkgKyBcIiBcIiArICh4ICsgd2lkdGgpICsgXCIsXCIgKyB5ICsgXCIgXCIgKyAoeCArIHdpZHRoKSArIFwiLFwiICsgKHkgKyBoZWlnaHQgLSBjdXQpICsgXCIgXCIgKyAoeCArIHdpZHRoIC0gY3V0ICogMS4yKSArIFwiLFwiICsgKHkgKyBoZWlnaHQpICsgXCIgXCIgKyB4ICsgXCIsXCIgKyAoeSArIGhlaWdodCk7XG4gIH1cbiAgY29uc3QgcG9seWdvbiA9IGVsZW0uYXBwZW5kKFwicG9seWdvblwiKTtcbiAgcG9seWdvbi5hdHRyKFwicG9pbnRzXCIsIGdlblBvaW50cyh0eHRPYmplY3QueCwgdHh0T2JqZWN0LnksIDUwLCAyMCwgNykpO1xuICBwb2x5Z29uLmF0dHIoXCJjbGFzc1wiLCBcImxhYmVsQm94XCIpO1xuICB0eHRPYmplY3QueSA9IHR4dE9iamVjdC55ICsgdHh0T2JqZWN0LmxhYmVsTWFyZ2luO1xuICB0eHRPYmplY3QueCA9IHR4dE9iamVjdC54ICsgMC41ICogdHh0T2JqZWN0LmxhYmVsTWFyZ2luO1xuICBkcmF3VGV4dChlbGVtLCB0eHRPYmplY3QpO1xufTtcbmNvbnN0IGRyYXdTZWN0aW9uID0gZnVuY3Rpb24oZWxlbSwgc2VjdGlvbiwgY29uZikge1xuICBjb25zdCBnID0gZWxlbS5hcHBlbmQoXCJnXCIpO1xuICBjb25zdCByZWN0ID0gZ2V0Tm90ZVJlY3QoKTtcbiAgcmVjdC54ID0gc2VjdGlvbi54O1xuICByZWN0LnkgPSBzZWN0aW9uLnk7XG4gIHJlY3QuZmlsbCA9IHNlY3Rpb24uZmlsbDtcbiAgcmVjdC53aWR0aCA9IGNvbmYud2lkdGg7XG4gIHJlY3QuaGVpZ2h0ID0gY29uZi5oZWlnaHQ7XG4gIHJlY3QuY2xhc3MgPSBcImpvdXJuZXktc2VjdGlvbiBzZWN0aW9uLXR5cGUtXCIgKyBzZWN0aW9uLm51bTtcbiAgcmVjdC5yeCA9IDM7XG4gIHJlY3QucnkgPSAzO1xuICBkcmF3UmVjdChnLCByZWN0KTtcbiAgX2RyYXdUZXh0Q2FuZGlkYXRlRnVuYyhjb25mKShcbiAgICBzZWN0aW9uLnRleHQsXG4gICAgZyxcbiAgICByZWN0LngsXG4gICAgcmVjdC55LFxuICAgIHJlY3Qud2lkdGgsXG4gICAgcmVjdC5oZWlnaHQsXG4gICAgeyBjbGFzczogXCJqb3VybmV5LXNlY3Rpb24gc2VjdGlvbi10eXBlLVwiICsgc2VjdGlvbi5udW0gfSxcbiAgICBjb25mLFxuICAgIHNlY3Rpb24uY29sb3VyXG4gICk7XG59O1xubGV0IHRhc2tDb3VudCA9IC0xO1xuY29uc3QgZHJhd1Rhc2sgPSBmdW5jdGlvbihlbGVtLCB0YXNrLCBjb25mKSB7XG4gIGNvbnN0IGNlbnRlciA9IHRhc2sueCArIGNvbmYud2lkdGggLyAyO1xuICBjb25zdCBnID0gZWxlbS5hcHBlbmQoXCJnXCIpO1xuICB0YXNrQ291bnQrKztcbiAgY29uc3QgbWF4SGVpZ2h0ID0gMzAwICsgNSAqIDMwO1xuICBnLmFwcGVuZChcImxpbmVcIikuYXR0cihcImlkXCIsIFwidGFza1wiICsgdGFza0NvdW50KS5hdHRyKFwieDFcIiwgY2VudGVyKS5hdHRyKFwieTFcIiwgdGFzay55KS5hdHRyKFwieDJcIiwgY2VudGVyKS5hdHRyKFwieTJcIiwgbWF4SGVpZ2h0KS5hdHRyKFwiY2xhc3NcIiwgXCJ0YXNrLWxpbmVcIikuYXR0cihcInN0cm9rZS13aWR0aFwiLCBcIjFweFwiKS5hdHRyKFwic3Ryb2tlLWRhc2hhcnJheVwiLCBcIjQgMlwiKS5hdHRyKFwic3Ryb2tlXCIsIFwiIzY2NlwiKTtcbiAgZHJhd0ZhY2UoZywge1xuICAgIGN4OiBjZW50ZXIsXG4gICAgY3k6IDMwMCArICg1IC0gdGFzay5zY29yZSkgKiAzMCxcbiAgICBzY29yZTogdGFzay5zY29yZVxuICB9KTtcbiAgY29uc3QgcmVjdCA9IGdldE5vdGVSZWN0KCk7XG4gIHJlY3QueCA9IHRhc2sueDtcbiAgcmVjdC55ID0gdGFzay55O1xuICByZWN0LmZpbGwgPSB0YXNrLmZpbGw7XG4gIHJlY3Qud2lkdGggPSBjb25mLndpZHRoO1xuICByZWN0LmhlaWdodCA9IGNvbmYuaGVpZ2h0O1xuICByZWN0LmNsYXNzID0gXCJ0YXNrIHRhc2stdHlwZS1cIiArIHRhc2subnVtO1xuICByZWN0LnJ4ID0gMztcbiAgcmVjdC5yeSA9IDM7XG4gIGRyYXdSZWN0KGcsIHJlY3QpO1xuICB0YXNrLnggKyAxNDtcbiAgX2RyYXdUZXh0Q2FuZGlkYXRlRnVuYyhjb25mKShcbiAgICB0YXNrLnRhc2ssXG4gICAgZyxcbiAgICByZWN0LngsXG4gICAgcmVjdC55LFxuICAgIHJlY3Qud2lkdGgsXG4gICAgcmVjdC5oZWlnaHQsXG4gICAgeyBjbGFzczogXCJ0YXNrXCIgfSxcbiAgICBjb25mLFxuICAgIHRhc2suY29sb3VyXG4gICk7XG59O1xuY29uc3QgZHJhd0JhY2tncm91bmRSZWN0ID0gZnVuY3Rpb24oZWxlbSwgYm91bmRzKSB7XG4gIGNvbnN0IHJlY3RFbGVtID0gZHJhd1JlY3QoZWxlbSwge1xuICAgIHg6IGJvdW5kcy5zdGFydHgsXG4gICAgeTogYm91bmRzLnN0YXJ0eSxcbiAgICB3aWR0aDogYm91bmRzLnN0b3B4IC0gYm91bmRzLnN0YXJ0eCxcbiAgICBoZWlnaHQ6IGJvdW5kcy5zdG9weSAtIGJvdW5kcy5zdGFydHksXG4gICAgZmlsbDogYm91bmRzLmZpbGwsXG4gICAgY2xhc3M6IFwicmVjdFwiXG4gIH0pO1xuICByZWN0RWxlbS5sb3dlcigpO1xufTtcbmNvbnN0IGdldFRleHRPYmogPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHtcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgZmlsbDogdm9pZCAwLFxuICAgIFwidGV4dC1hbmNob3JcIjogXCJzdGFydFwiLFxuICAgIHdpZHRoOiAxMDAsXG4gICAgaGVpZ2h0OiAxMDAsXG4gICAgdGV4dE1hcmdpbjogMCxcbiAgICByeDogMCxcbiAgICByeTogMFxuICB9O1xufTtcbmNvbnN0IGdldE5vdGVSZWN0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgeDogMCxcbiAgICB5OiAwLFxuICAgIHdpZHRoOiAxMDAsXG4gICAgYW5jaG9yOiBcInN0YXJ0XCIsXG4gICAgaGVpZ2h0OiAxMDAsXG4gICAgcng6IDAsXG4gICAgcnk6IDBcbiAgfTtcbn07XG5jb25zdCBfZHJhd1RleHRDYW5kaWRhdGVGdW5jID0gZnVuY3Rpb24oKSB7XG4gIGZ1bmN0aW9uIGJ5VGV4dChjb250ZW50LCBnLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB0ZXh0QXR0cnMsIGNvbG91cikge1xuICAgIGNvbnN0IHRleHQgPSBnLmFwcGVuZChcInRleHRcIikuYXR0cihcInhcIiwgeCArIHdpZHRoIC8gMikuYXR0cihcInlcIiwgeSArIGhlaWdodCAvIDIgKyA1KS5zdHlsZShcImZvbnQtY29sb3JcIiwgY29sb3VyKS5zdHlsZShcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpLnRleHQoY29udGVudCk7XG4gICAgX3NldFRleHRBdHRycyh0ZXh0LCB0ZXh0QXR0cnMpO1xuICB9XG4gIGZ1bmN0aW9uIGJ5VHNwYW4oY29udGVudCwgZywgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGV4dEF0dHJzLCBjb25mLCBjb2xvdXIpIHtcbiAgICBjb25zdCB7IHRhc2tGb250U2l6ZSwgdGFza0ZvbnRGYW1pbHkgfSA9IGNvbmY7XG4gICAgY29uc3QgbGluZXMgPSBjb250ZW50LnNwbGl0KC88YnJcXHMqXFwvPz4vZ2kpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGR5ID0gaSAqIHRhc2tGb250U2l6ZSAtIHRhc2tGb250U2l6ZSAqIChsaW5lcy5sZW5ndGggLSAxKSAvIDI7XG4gICAgICBjb25zdCB0ZXh0ID0gZy5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJ4XCIsIHggKyB3aWR0aCAvIDIpLmF0dHIoXCJ5XCIsIHkpLmF0dHIoXCJmaWxsXCIsIGNvbG91cikuc3R5bGUoXCJ0ZXh0LWFuY2hvclwiLCBcIm1pZGRsZVwiKS5zdHlsZShcImZvbnQtc2l6ZVwiLCB0YXNrRm9udFNpemUpLnN0eWxlKFwiZm9udC1mYW1pbHlcIiwgdGFza0ZvbnRGYW1pbHkpO1xuICAgICAgdGV4dC5hcHBlbmQoXCJ0c3BhblwiKS5hdHRyKFwieFwiLCB4ICsgd2lkdGggLyAyKS5hdHRyKFwiZHlcIiwgZHkpLnRleHQobGluZXNbaV0pO1xuICAgICAgdGV4dC5hdHRyKFwieVwiLCB5ICsgaGVpZ2h0IC8gMikuYXR0cihcImRvbWluYW50LWJhc2VsaW5lXCIsIFwiY2VudHJhbFwiKS5hdHRyKFwiYWxpZ25tZW50LWJhc2VsaW5lXCIsIFwiY2VudHJhbFwiKTtcbiAgICAgIF9zZXRUZXh0QXR0cnModGV4dCwgdGV4dEF0dHJzKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gYnlGbyhjb250ZW50LCBnLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB0ZXh0QXR0cnMsIGNvbmYpIHtcbiAgICBjb25zdCBib2R5ID0gZy5hcHBlbmQoXCJzd2l0Y2hcIik7XG4gICAgY29uc3QgZiA9IGJvZHkuYXBwZW5kKFwiZm9yZWlnbk9iamVjdFwiKS5hdHRyKFwieFwiLCB4KS5hdHRyKFwieVwiLCB5KS5hdHRyKFwid2lkdGhcIiwgd2lkdGgpLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KS5hdHRyKFwicG9zaXRpb25cIiwgXCJmaXhlZFwiKTtcbiAgICBjb25zdCB0ZXh0ID0gZi5hcHBlbmQoXCJ4aHRtbDpkaXZcIikuc3R5bGUoXCJkaXNwbGF5XCIsIFwidGFibGVcIikuc3R5bGUoXCJoZWlnaHRcIiwgXCIxMDAlXCIpLnN0eWxlKFwid2lkdGhcIiwgXCIxMDAlXCIpO1xuICAgIHRleHQuYXBwZW5kKFwiZGl2XCIpLmF0dHIoXCJjbGFzc1wiLCBcImxhYmVsXCIpLnN0eWxlKFwiZGlzcGxheVwiLCBcInRhYmxlLWNlbGxcIikuc3R5bGUoXCJ0ZXh0LWFsaWduXCIsIFwiY2VudGVyXCIpLnN0eWxlKFwidmVydGljYWwtYWxpZ25cIiwgXCJtaWRkbGVcIikudGV4dChjb250ZW50KTtcbiAgICBieVRzcGFuKGNvbnRlbnQsIGJvZHksIHgsIHksIHdpZHRoLCBoZWlnaHQsIHRleHRBdHRycywgY29uZik7XG4gICAgX3NldFRleHRBdHRycyh0ZXh0LCB0ZXh0QXR0cnMpO1xuICB9XG4gIGZ1bmN0aW9uIF9zZXRUZXh0QXR0cnModG9UZXh0LCBmcm9tVGV4dEF0dHJzRGljdCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGZyb21UZXh0QXR0cnNEaWN0KSB7XG4gICAgICBpZiAoa2V5IGluIGZyb21UZXh0QXR0cnNEaWN0KSB7XG4gICAgICAgIHRvVGV4dC5hdHRyKGtleSwgZnJvbVRleHRBdHRyc0RpY3Rba2V5XSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBmdW5jdGlvbihjb25mKSB7XG4gICAgcmV0dXJuIGNvbmYudGV4dFBsYWNlbWVudCA9PT0gXCJmb1wiID8gYnlGbyA6IGNvbmYudGV4dFBsYWNlbWVudCA9PT0gXCJvbGRcIiA/IGJ5VGV4dCA6IGJ5VHNwYW47XG4gIH07XG59KCk7XG5jb25zdCBpbml0R3JhcGhpY3MgPSBmdW5jdGlvbihncmFwaGljcykge1xuICBncmFwaGljcy5hcHBlbmQoXCJkZWZzXCIpLmFwcGVuZChcIm1hcmtlclwiKS5hdHRyKFwiaWRcIiwgXCJhcnJvd2hlYWRcIikuYXR0cihcInJlZlhcIiwgNSkuYXR0cihcInJlZllcIiwgMikuYXR0cihcIm1hcmtlcldpZHRoXCIsIDYpLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgNCkuYXR0cihcIm9yaWVudFwiLCBcImF1dG9cIikuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiZFwiLCBcIk0gMCwwIFYgNCBMNiwyIFpcIik7XG59O1xuZnVuY3Rpb24gd3JhcCh0ZXh0LCB3aWR0aCkge1xuICB0ZXh0LmVhY2goZnVuY3Rpb24oKSB7XG4gICAgdmFyIHRleHQyID0gc2VsZWN0KHRoaXMpLCB3b3JkcyA9IHRleHQyLnRleHQoKS5zcGxpdCgvKFxccyt8PGJyPikvKS5yZXZlcnNlKCksIHdvcmQsIGxpbmUgPSBbXSwgbGluZUhlaWdodCA9IDEuMSwgeSA9IHRleHQyLmF0dHIoXCJ5XCIpLCBkeSA9IHBhcnNlRmxvYXQodGV4dDIuYXR0cihcImR5XCIpKSwgdHNwYW4gPSB0ZXh0Mi50ZXh0KG51bGwpLmFwcGVuZChcInRzcGFuXCIpLmF0dHIoXCJ4XCIsIDApLmF0dHIoXCJ5XCIsIHkpLmF0dHIoXCJkeVwiLCBkeSArIFwiZW1cIik7XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCB3b3Jkcy5sZW5ndGg7IGorKykge1xuICAgICAgd29yZCA9IHdvcmRzW3dvcmRzLmxlbmd0aCAtIDEgLSBqXTtcbiAgICAgIGxpbmUucHVzaCh3b3JkKTtcbiAgICAgIHRzcGFuLnRleHQobGluZS5qb2luKFwiIFwiKS50cmltKCkpO1xuICAgICAgaWYgKHRzcGFuLm5vZGUoKS5nZXRDb21wdXRlZFRleHRMZW5ndGgoKSA+IHdpZHRoIHx8IHdvcmQgPT09IFwiPGJyPlwiKSB7XG4gICAgICAgIGxpbmUucG9wKCk7XG4gICAgICAgIHRzcGFuLnRleHQobGluZS5qb2luKFwiIFwiKS50cmltKCkpO1xuICAgICAgICBpZiAod29yZCA9PT0gXCI8YnI+XCIpIHtcbiAgICAgICAgICBsaW5lID0gW1wiXCJdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxpbmUgPSBbd29yZF07XG4gICAgICAgIH1cbiAgICAgICAgdHNwYW4gPSB0ZXh0Mi5hcHBlbmQoXCJ0c3BhblwiKS5hdHRyKFwieFwiLCAwKS5hdHRyKFwieVwiLCB5KS5hdHRyKFwiZHlcIiwgbGluZUhlaWdodCArIFwiZW1cIikudGV4dCh3b3JkKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuY29uc3QgZHJhd05vZGUgPSBmdW5jdGlvbihlbGVtLCBub2RlLCBmdWxsU2VjdGlvbiwgY29uZikge1xuICBjb25zdCBzZWN0aW9uID0gZnVsbFNlY3Rpb24gJSBNQVhfU0VDVElPTlMgLSAxO1xuICBjb25zdCBub2RlRWxlbSA9IGVsZW0uYXBwZW5kKFwiZ1wiKTtcbiAgbm9kZS5zZWN0aW9uID0gc2VjdGlvbjtcbiAgbm9kZUVsZW0uYXR0cihcbiAgICBcImNsYXNzXCIsXG4gICAgKG5vZGUuY2xhc3MgPyBub2RlLmNsYXNzICsgXCIgXCIgOiBcIlwiKSArIFwidGltZWxpbmUtbm9kZSBcIiArIChcInNlY3Rpb24tXCIgKyBzZWN0aW9uKVxuICApO1xuICBjb25zdCBia2dFbGVtID0gbm9kZUVsZW0uYXBwZW5kKFwiZ1wiKTtcbiAgY29uc3QgdGV4dEVsZW0gPSBub2RlRWxlbS5hcHBlbmQoXCJnXCIpO1xuICBjb25zdCB0eHQgPSB0ZXh0RWxlbS5hcHBlbmQoXCJ0ZXh0XCIpLnRleHQobm9kZS5kZXNjcikuYXR0cihcImR5XCIsIFwiMWVtXCIpLmF0dHIoXCJhbGlnbm1lbnQtYmFzZWxpbmVcIiwgXCJtaWRkbGVcIikuYXR0cihcImRvbWluYW50LWJhc2VsaW5lXCIsIFwibWlkZGxlXCIpLmF0dHIoXCJ0ZXh0LWFuY2hvclwiLCBcIm1pZGRsZVwiKS5jYWxsKHdyYXAsIG5vZGUud2lkdGgpO1xuICBjb25zdCBiYm94ID0gdHh0Lm5vZGUoKS5nZXRCQm94KCk7XG4gIGNvbnN0IGZvbnRTaXplID0gY29uZi5mb250U2l6ZSAmJiBjb25mLmZvbnRTaXplLnJlcGxhY2UgPyBjb25mLmZvbnRTaXplLnJlcGxhY2UoXCJweFwiLCBcIlwiKSA6IGNvbmYuZm9udFNpemU7XG4gIG5vZGUuaGVpZ2h0ID0gYmJveC5oZWlnaHQgKyBmb250U2l6ZSAqIDEuMSAqIDAuNSArIG5vZGUucGFkZGluZztcbiAgbm9kZS5oZWlnaHQgPSBNYXRoLm1heChub2RlLmhlaWdodCwgbm9kZS5tYXhIZWlnaHQpO1xuICBub2RlLndpZHRoID0gbm9kZS53aWR0aCArIDIgKiBub2RlLnBhZGRpbmc7XG4gIHRleHRFbGVtLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyBub2RlLndpZHRoIC8gMiArIFwiLCBcIiArIG5vZGUucGFkZGluZyAvIDIgKyBcIilcIik7XG4gIGRlZmF1bHRCa2coYmtnRWxlbSwgbm9kZSwgc2VjdGlvbik7XG4gIHJldHVybiBub2RlO1xufTtcbmNvbnN0IGdldFZpcnR1YWxOb2RlSGVpZ2h0ID0gZnVuY3Rpb24oZWxlbSwgbm9kZSwgY29uZikge1xuICBjb25zdCB0ZXh0RWxlbSA9IGVsZW0uYXBwZW5kKFwiZ1wiKTtcbiAgY29uc3QgdHh0ID0gdGV4dEVsZW0uYXBwZW5kKFwidGV4dFwiKS50ZXh0KG5vZGUuZGVzY3IpLmF0dHIoXCJkeVwiLCBcIjFlbVwiKS5hdHRyKFwiYWxpZ25tZW50LWJhc2VsaW5lXCIsIFwibWlkZGxlXCIpLmF0dHIoXCJkb21pbmFudC1iYXNlbGluZVwiLCBcIm1pZGRsZVwiKS5hdHRyKFwidGV4dC1hbmNob3JcIiwgXCJtaWRkbGVcIikuY2FsbCh3cmFwLCBub2RlLndpZHRoKTtcbiAgY29uc3QgYmJveCA9IHR4dC5ub2RlKCkuZ2V0QkJveCgpO1xuICBjb25zdCBmb250U2l6ZSA9IGNvbmYuZm9udFNpemUgJiYgY29uZi5mb250U2l6ZS5yZXBsYWNlID8gY29uZi5mb250U2l6ZS5yZXBsYWNlKFwicHhcIiwgXCJcIikgOiBjb25mLmZvbnRTaXplO1xuICB0ZXh0RWxlbS5yZW1vdmUoKTtcbiAgcmV0dXJuIGJib3guaGVpZ2h0ICsgZm9udFNpemUgKiAxLjEgKiAwLjUgKyBub2RlLnBhZGRpbmc7XG59O1xuY29uc3QgZGVmYXVsdEJrZyA9IGZ1bmN0aW9uKGVsZW0sIG5vZGUsIHNlY3Rpb24pIHtcbiAgY29uc3QgcmQgPSA1O1xuICBlbGVtLmFwcGVuZChcInBhdGhcIikuYXR0cihcImlkXCIsIFwibm9kZS1cIiArIG5vZGUuaWQpLmF0dHIoXCJjbGFzc1wiLCBcIm5vZGUtYmtnIG5vZGUtXCIgKyBub2RlLnR5cGUpLmF0dHIoXG4gICAgXCJkXCIsXG4gICAgYE0wICR7bm9kZS5oZWlnaHQgLSByZH0gdiR7LW5vZGUuaGVpZ2h0ICsgMiAqIHJkfSBxMCwtNSA1LC01IGgke25vZGUud2lkdGggLSAyICogcmR9IHE1LDAgNSw1IHYke25vZGUuaGVpZ2h0IC0gcmR9IEgwIFpgXG4gICk7XG4gIGVsZW0uYXBwZW5kKFwibGluZVwiKS5hdHRyKFwiY2xhc3NcIiwgXCJub2RlLWxpbmUtXCIgKyBzZWN0aW9uKS5hdHRyKFwieDFcIiwgMCkuYXR0cihcInkxXCIsIG5vZGUuaGVpZ2h0KS5hdHRyKFwieDJcIiwgbm9kZS53aWR0aCkuYXR0cihcInkyXCIsIG5vZGUuaGVpZ2h0KTtcbn07XG5jb25zdCBzdmdEcmF3ID0ge1xuICBkcmF3UmVjdCxcbiAgZHJhd0NpcmNsZSxcbiAgZHJhd1NlY3Rpb24sXG4gIGRyYXdUZXh0LFxuICBkcmF3TGFiZWwsXG4gIGRyYXdUYXNrLFxuICBkcmF3QmFja2dyb3VuZFJlY3QsXG4gIGdldFRleHRPYmosXG4gIGdldE5vdGVSZWN0LFxuICBpbml0R3JhcGhpY3MsXG4gIGRyYXdOb2RlLFxuICBnZXRWaXJ0dWFsTm9kZUhlaWdodFxufTtcbmNvbnN0IGRyYXcgPSBmdW5jdGlvbih0ZXh0LCBpZCwgdmVyc2lvbiwgZGlhZ09iaikge1xuICB2YXIgX2EsIF9iO1xuICBjb25zdCBjb25mID0gZ2V0Q29uZmlnKCk7XG4gIGNvbnN0IExFRlRfTUFSR0lOID0gY29uZi5sZWZ0TWFyZ2luID8/IDUwO1xuICBsb2cuZGVidWcoXCJ0aW1lbGluZVwiLCBkaWFnT2JqLmRiKTtcbiAgY29uc3Qgc2VjdXJpdHlMZXZlbCA9IGNvbmYuc2VjdXJpdHlMZXZlbDtcbiAgbGV0IHNhbmRib3hFbGVtZW50O1xuICBpZiAoc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIpIHtcbiAgICBzYW5kYm94RWxlbWVudCA9IHNlbGVjdChcIiNpXCIgKyBpZCk7XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gc2VsZWN0KHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50LmJvZHkpIDogc2VsZWN0KFwiYm9keVwiKTtcbiAgY29uc3Qgc3ZnID0gcm9vdC5zZWxlY3QoXCIjXCIgKyBpZCk7XG4gIHN2Zy5hcHBlbmQoXCJnXCIpO1xuICBjb25zdCB0YXNrczIgPSBkaWFnT2JqLmRiLmdldFRhc2tzKCk7XG4gIGNvbnN0IHRpdGxlID0gZGlhZ09iai5kYi5nZXRDb21tb25EYigpLmdldERpYWdyYW1UaXRsZSgpO1xuICBsb2cuZGVidWcoXCJ0YXNrXCIsIHRhc2tzMik7XG4gIHN2Z0RyYXcuaW5pdEdyYXBoaWNzKHN2Zyk7XG4gIGNvbnN0IHNlY3Rpb25zMiA9IGRpYWdPYmouZGIuZ2V0U2VjdGlvbnMoKTtcbiAgbG9nLmRlYnVnKFwic2VjdGlvbnNcIiwgc2VjdGlvbnMyKTtcbiAgbGV0IG1heFNlY3Rpb25IZWlnaHQgPSAwO1xuICBsZXQgbWF4VGFza0hlaWdodCA9IDA7XG4gIGxldCBkZXB0aFkgPSAwO1xuICBsZXQgc2VjdGlvbkJlZ2luWSA9IDA7XG4gIGxldCBtYXN0ZXJYID0gNTAgKyBMRUZUX01BUkdJTjtcbiAgbGV0IG1hc3RlclkgPSA1MDtcbiAgc2VjdGlvbkJlZ2luWSA9IDUwO1xuICBsZXQgc2VjdGlvbk51bWJlciA9IDA7XG4gIGxldCBoYXNTZWN0aW9ucyA9IHRydWU7XG4gIHNlY3Rpb25zMi5mb3JFYWNoKGZ1bmN0aW9uKHNlY3Rpb24pIHtcbiAgICBjb25zdCBzZWN0aW9uTm9kZSA9IHtcbiAgICAgIG51bWJlcjogc2VjdGlvbk51bWJlcixcbiAgICAgIGRlc2NyOiBzZWN0aW9uLFxuICAgICAgc2VjdGlvbjogc2VjdGlvbk51bWJlcixcbiAgICAgIHdpZHRoOiAxNTAsXG4gICAgICBwYWRkaW5nOiAyMCxcbiAgICAgIG1heEhlaWdodDogbWF4U2VjdGlvbkhlaWdodFxuICAgIH07XG4gICAgY29uc3Qgc2VjdGlvbkhlaWdodCA9IHN2Z0RyYXcuZ2V0VmlydHVhbE5vZGVIZWlnaHQoc3ZnLCBzZWN0aW9uTm9kZSwgY29uZik7XG4gICAgbG9nLmRlYnVnKFwic2VjdGlvbkhlaWdodCBiZWZvcmUgZHJhd1wiLCBzZWN0aW9uSGVpZ2h0KTtcbiAgICBtYXhTZWN0aW9uSGVpZ2h0ID0gTWF0aC5tYXgobWF4U2VjdGlvbkhlaWdodCwgc2VjdGlvbkhlaWdodCArIDIwKTtcbiAgfSk7XG4gIGxldCBtYXhFdmVudENvdW50ID0gMDtcbiAgbGV0IG1heEV2ZW50TGluZUxlbmd0aCA9IDA7XG4gIGxvZy5kZWJ1ZyhcInRhc2tzLmxlbmd0aFwiLCB0YXNrczIubGVuZ3RoKTtcbiAgZm9yIChjb25zdCBbaSwgdGFza10gb2YgdGFza3MyLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IHRhc2tOb2RlID0ge1xuICAgICAgbnVtYmVyOiBpLFxuICAgICAgZGVzY3I6IHRhc2ssXG4gICAgICBzZWN0aW9uOiB0YXNrLnNlY3Rpb24sXG4gICAgICB3aWR0aDogMTUwLFxuICAgICAgcGFkZGluZzogMjAsXG4gICAgICBtYXhIZWlnaHQ6IG1heFRhc2tIZWlnaHRcbiAgICB9O1xuICAgIGNvbnN0IHRhc2tIZWlnaHQgPSBzdmdEcmF3LmdldFZpcnR1YWxOb2RlSGVpZ2h0KHN2ZywgdGFza05vZGUsIGNvbmYpO1xuICAgIGxvZy5kZWJ1ZyhcInRhc2tIZWlnaHQgYmVmb3JlIGRyYXdcIiwgdGFza0hlaWdodCk7XG4gICAgbWF4VGFza0hlaWdodCA9IE1hdGgubWF4KG1heFRhc2tIZWlnaHQsIHRhc2tIZWlnaHQgKyAyMCk7XG4gICAgbWF4RXZlbnRDb3VudCA9IE1hdGgubWF4KG1heEV2ZW50Q291bnQsIHRhc2suZXZlbnRzLmxlbmd0aCk7XG4gICAgbGV0IG1heEV2ZW50TGluZUxlbmd0aFRlbXAgPSAwO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGFzay5ldmVudHMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGNvbnN0IGV2ZW50ID0gdGFzay5ldmVudHNbal07XG4gICAgICBjb25zdCBldmVudE5vZGUgPSB7XG4gICAgICAgIGRlc2NyOiBldmVudCxcbiAgICAgICAgc2VjdGlvbjogdGFzay5zZWN0aW9uLFxuICAgICAgICBudW1iZXI6IHRhc2suc2VjdGlvbixcbiAgICAgICAgd2lkdGg6IDE1MCxcbiAgICAgICAgcGFkZGluZzogMjAsXG4gICAgICAgIG1heEhlaWdodDogNTBcbiAgICAgIH07XG4gICAgICBtYXhFdmVudExpbmVMZW5ndGhUZW1wICs9IHN2Z0RyYXcuZ2V0VmlydHVhbE5vZGVIZWlnaHQoc3ZnLCBldmVudE5vZGUsIGNvbmYpO1xuICAgIH1cbiAgICBtYXhFdmVudExpbmVMZW5ndGggPSBNYXRoLm1heChtYXhFdmVudExpbmVMZW5ndGgsIG1heEV2ZW50TGluZUxlbmd0aFRlbXApO1xuICB9XG4gIGxvZy5kZWJ1ZyhcIm1heFNlY3Rpb25IZWlnaHQgYmVmb3JlIGRyYXdcIiwgbWF4U2VjdGlvbkhlaWdodCk7XG4gIGxvZy5kZWJ1ZyhcIm1heFRhc2tIZWlnaHQgYmVmb3JlIGRyYXdcIiwgbWF4VGFza0hlaWdodCk7XG4gIGlmIChzZWN0aW9uczIgJiYgc2VjdGlvbnMyLmxlbmd0aCA+IDApIHtcbiAgICBzZWN0aW9uczIuZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgY29uc3QgdGFza3NGb3JTZWN0aW9uID0gdGFza3MyLmZpbHRlcigodGFzaykgPT4gdGFzay5zZWN0aW9uID09PSBzZWN0aW9uKTtcbiAgICAgIGNvbnN0IHNlY3Rpb25Ob2RlID0ge1xuICAgICAgICBudW1iZXI6IHNlY3Rpb25OdW1iZXIsXG4gICAgICAgIGRlc2NyOiBzZWN0aW9uLFxuICAgICAgICBzZWN0aW9uOiBzZWN0aW9uTnVtYmVyLFxuICAgICAgICB3aWR0aDogMjAwICogTWF0aC5tYXgodGFza3NGb3JTZWN0aW9uLmxlbmd0aCwgMSkgLSA1MCxcbiAgICAgICAgcGFkZGluZzogMjAsXG4gICAgICAgIG1heEhlaWdodDogbWF4U2VjdGlvbkhlaWdodFxuICAgICAgfTtcbiAgICAgIGxvZy5kZWJ1ZyhcInNlY3Rpb25Ob2RlXCIsIHNlY3Rpb25Ob2RlKTtcbiAgICAgIGNvbnN0IHNlY3Rpb25Ob2RlV3JhcHBlciA9IHN2Zy5hcHBlbmQoXCJnXCIpO1xuICAgICAgY29uc3Qgbm9kZSA9IHN2Z0RyYXcuZHJhd05vZGUoc2VjdGlvbk5vZGVXcmFwcGVyLCBzZWN0aW9uTm9kZSwgc2VjdGlvbk51bWJlciwgY29uZik7XG4gICAgICBsb2cuZGVidWcoXCJzZWN0aW9uTm9kZSBvdXRwdXRcIiwgbm9kZSk7XG4gICAgICBzZWN0aW9uTm9kZVdyYXBwZXIuYXR0cihcInRyYW5zZm9ybVwiLCBgdHJhbnNsYXRlKCR7bWFzdGVyWH0sICR7c2VjdGlvbkJlZ2luWX0pYCk7XG4gICAgICBtYXN0ZXJZICs9IG1heFNlY3Rpb25IZWlnaHQgKyA1MDtcbiAgICAgIGlmICh0YXNrc0ZvclNlY3Rpb24ubGVuZ3RoID4gMCkge1xuICAgICAgICBkcmF3VGFza3MoXG4gICAgICAgICAgc3ZnLFxuICAgICAgICAgIHRhc2tzRm9yU2VjdGlvbixcbiAgICAgICAgICBzZWN0aW9uTnVtYmVyLFxuICAgICAgICAgIG1hc3RlclgsXG4gICAgICAgICAgbWFzdGVyWSxcbiAgICAgICAgICBtYXhUYXNrSGVpZ2h0LFxuICAgICAgICAgIGNvbmYsXG4gICAgICAgICAgbWF4RXZlbnRDb3VudCxcbiAgICAgICAgICBtYXhFdmVudExpbmVMZW5ndGgsXG4gICAgICAgICAgbWF4U2VjdGlvbkhlaWdodCxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgbWFzdGVyWCArPSAyMDAgKiBNYXRoLm1heCh0YXNrc0ZvclNlY3Rpb24ubGVuZ3RoLCAxKTtcbiAgICAgIG1hc3RlclkgPSBzZWN0aW9uQmVnaW5ZO1xuICAgICAgc2VjdGlvbk51bWJlcisrO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGhhc1NlY3Rpb25zID0gZmFsc2U7XG4gICAgZHJhd1Rhc2tzKFxuICAgICAgc3ZnLFxuICAgICAgdGFza3MyLFxuICAgICAgc2VjdGlvbk51bWJlcixcbiAgICAgIG1hc3RlclgsXG4gICAgICBtYXN0ZXJZLFxuICAgICAgbWF4VGFza0hlaWdodCxcbiAgICAgIGNvbmYsXG4gICAgICBtYXhFdmVudENvdW50LFxuICAgICAgbWF4RXZlbnRMaW5lTGVuZ3RoLFxuICAgICAgbWF4U2VjdGlvbkhlaWdodCxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG4gIGNvbnN0IGJveCA9IHN2Zy5ub2RlKCkuZ2V0QkJveCgpO1xuICBsb2cuZGVidWcoXCJib3VuZHNcIiwgYm94KTtcbiAgaWYgKHRpdGxlKSB7XG4gICAgc3ZnLmFwcGVuZChcInRleHRcIikudGV4dCh0aXRsZSkuYXR0cihcInhcIiwgYm94LndpZHRoIC8gMiAtIExFRlRfTUFSR0lOKS5hdHRyKFwiZm9udC1zaXplXCIsIFwiNGV4XCIpLmF0dHIoXCJmb250LXdlaWdodFwiLCBcImJvbGRcIikuYXR0cihcInlcIiwgMjApO1xuICB9XG4gIGRlcHRoWSA9IGhhc1NlY3Rpb25zID8gbWF4U2VjdGlvbkhlaWdodCArIG1heFRhc2tIZWlnaHQgKyAxNTAgOiBtYXhUYXNrSGVpZ2h0ICsgMTAwO1xuICBjb25zdCBsaW5lV3JhcHBlciA9IHN2Zy5hcHBlbmQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLCBcImxpbmVXcmFwcGVyXCIpO1xuICBsaW5lV3JhcHBlci5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJ4MVwiLCBMRUZUX01BUkdJTikuYXR0cihcInkxXCIsIGRlcHRoWSkuYXR0cihcIngyXCIsIGJveC53aWR0aCArIDMgKiBMRUZUX01BUkdJTikuYXR0cihcInkyXCIsIGRlcHRoWSkuYXR0cihcInN0cm9rZS13aWR0aFwiLCA0KS5hdHRyKFwic3Ryb2tlXCIsIFwiYmxhY2tcIikuYXR0cihcIm1hcmtlci1lbmRcIiwgXCJ1cmwoI2Fycm93aGVhZClcIik7XG4gIHNldHVwR3JhcGhWaWV3Ym94KFxuICAgIHZvaWQgMCxcbiAgICBzdmcsXG4gICAgKChfYSA9IGNvbmYudGltZWxpbmUpID09IG51bGwgPyB2b2lkIDAgOiBfYS5wYWRkaW5nKSA/PyA1MCxcbiAgICAoKF9iID0gY29uZi50aW1lbGluZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnVzZU1heFdpZHRoKSA/PyBmYWxzZVxuICApO1xufTtcbmNvbnN0IGRyYXdUYXNrcyA9IGZ1bmN0aW9uKGRpYWdyYW0yLCB0YXNrczIsIHNlY3Rpb25Db2xvciwgbWFzdGVyWCwgbWFzdGVyWSwgbWF4VGFza0hlaWdodCwgY29uZiwgbWF4RXZlbnRDb3VudCwgbWF4RXZlbnRMaW5lTGVuZ3RoLCBtYXhTZWN0aW9uSGVpZ2h0LCBpc1dpdGhvdXRTZWN0aW9ucykge1xuICB2YXIgX2E7XG4gIGZvciAoY29uc3QgdGFzayBvZiB0YXNrczIpIHtcbiAgICBjb25zdCB0YXNrTm9kZSA9IHtcbiAgICAgIGRlc2NyOiB0YXNrLnRhc2ssXG4gICAgICBzZWN0aW9uOiBzZWN0aW9uQ29sb3IsXG4gICAgICBudW1iZXI6IHNlY3Rpb25Db2xvcixcbiAgICAgIHdpZHRoOiAxNTAsXG4gICAgICBwYWRkaW5nOiAyMCxcbiAgICAgIG1heEhlaWdodDogbWF4VGFza0hlaWdodFxuICAgIH07XG4gICAgbG9nLmRlYnVnKFwidGFza05vZGVcIiwgdGFza05vZGUpO1xuICAgIGNvbnN0IHRhc2tXcmFwcGVyID0gZGlhZ3JhbTIuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJ0YXNrV3JhcHBlclwiKTtcbiAgICBjb25zdCBub2RlID0gc3ZnRHJhdy5kcmF3Tm9kZSh0YXNrV3JhcHBlciwgdGFza05vZGUsIHNlY3Rpb25Db2xvciwgY29uZik7XG4gICAgY29uc3QgdGFza0hlaWdodCA9IG5vZGUuaGVpZ2h0O1xuICAgIGxvZy5kZWJ1ZyhcInRhc2tIZWlnaHQgYWZ0ZXIgZHJhd1wiLCB0YXNrSGVpZ2h0KTtcbiAgICB0YXNrV3JhcHBlci5hdHRyKFwidHJhbnNmb3JtXCIsIGB0cmFuc2xhdGUoJHttYXN0ZXJYfSwgJHttYXN0ZXJZfSlgKTtcbiAgICBtYXhUYXNrSGVpZ2h0ID0gTWF0aC5tYXgobWF4VGFza0hlaWdodCwgdGFza0hlaWdodCk7XG4gICAgaWYgKHRhc2suZXZlbnRzKSB7XG4gICAgICBjb25zdCBsaW5lV3JhcHBlciA9IGRpYWdyYW0yLmFwcGVuZChcImdcIikuYXR0cihcImNsYXNzXCIsIFwibGluZVdyYXBwZXJcIik7XG4gICAgICBsZXQgbGluZUxlbmd0aCA9IG1heFRhc2tIZWlnaHQ7XG4gICAgICBtYXN0ZXJZICs9IDEwMDtcbiAgICAgIGxpbmVMZW5ndGggPSBsaW5lTGVuZ3RoICsgZHJhd0V2ZW50cyhkaWFncmFtMiwgdGFzay5ldmVudHMsIHNlY3Rpb25Db2xvciwgbWFzdGVyWCwgbWFzdGVyWSwgY29uZik7XG4gICAgICBtYXN0ZXJZIC09IDEwMDtcbiAgICAgIGxpbmVXcmFwcGVyLmFwcGVuZChcImxpbmVcIikuYXR0cihcIngxXCIsIG1hc3RlclggKyAxOTAgLyAyKS5hdHRyKFwieTFcIiwgbWFzdGVyWSArIG1heFRhc2tIZWlnaHQpLmF0dHIoXCJ4MlwiLCBtYXN0ZXJYICsgMTkwIC8gMikuYXR0cihcbiAgICAgICAgXCJ5MlwiLFxuICAgICAgICBtYXN0ZXJZICsgbWF4VGFza0hlaWdodCArIChpc1dpdGhvdXRTZWN0aW9ucyA/IG1heFRhc2tIZWlnaHQgOiBtYXhTZWN0aW9uSGVpZ2h0KSArIG1heEV2ZW50TGluZUxlbmd0aCArIDEyMFxuICAgICAgKS5hdHRyKFwic3Ryb2tlLXdpZHRoXCIsIDIpLmF0dHIoXCJzdHJva2VcIiwgXCJibGFja1wiKS5hdHRyKFwibWFya2VyLWVuZFwiLCBcInVybCgjYXJyb3doZWFkKVwiKS5hdHRyKFwic3Ryb2tlLWRhc2hhcnJheVwiLCBcIjUsNVwiKTtcbiAgICB9XG4gICAgbWFzdGVyWCA9IG1hc3RlclggKyAyMDA7XG4gICAgaWYgKGlzV2l0aG91dFNlY3Rpb25zICYmICEoKF9hID0gY29uZi50aW1lbGluZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmRpc2FibGVNdWx0aWNvbG9yKSkge1xuICAgICAgc2VjdGlvbkNvbG9yKys7XG4gICAgfVxuICB9XG4gIG1hc3RlclkgPSBtYXN0ZXJZIC0gMTA7XG59O1xuY29uc3QgZHJhd0V2ZW50cyA9IGZ1bmN0aW9uKGRpYWdyYW0yLCBldmVudHMsIHNlY3Rpb25Db2xvciwgbWFzdGVyWCwgbWFzdGVyWSwgY29uZikge1xuICBsZXQgbWF4RXZlbnRIZWlnaHQgPSAwO1xuICBjb25zdCBldmVudEJlZ2luWSA9IG1hc3Rlclk7XG4gIG1hc3RlclkgPSBtYXN0ZXJZICsgMTAwO1xuICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgIGNvbnN0IGV2ZW50Tm9kZSA9IHtcbiAgICAgIGRlc2NyOiBldmVudCxcbiAgICAgIHNlY3Rpb246IHNlY3Rpb25Db2xvcixcbiAgICAgIG51bWJlcjogc2VjdGlvbkNvbG9yLFxuICAgICAgd2lkdGg6IDE1MCxcbiAgICAgIHBhZGRpbmc6IDIwLFxuICAgICAgbWF4SGVpZ2h0OiA1MFxuICAgIH07XG4gICAgbG9nLmRlYnVnKFwiZXZlbnROb2RlXCIsIGV2ZW50Tm9kZSk7XG4gICAgY29uc3QgZXZlbnRXcmFwcGVyID0gZGlhZ3JhbTIuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJldmVudFdyYXBwZXJcIik7XG4gICAgY29uc3Qgbm9kZSA9IHN2Z0RyYXcuZHJhd05vZGUoZXZlbnRXcmFwcGVyLCBldmVudE5vZGUsIHNlY3Rpb25Db2xvciwgY29uZik7XG4gICAgY29uc3QgZXZlbnRIZWlnaHQgPSBub2RlLmhlaWdodDtcbiAgICBtYXhFdmVudEhlaWdodCA9IG1heEV2ZW50SGVpZ2h0ICsgZXZlbnRIZWlnaHQ7XG4gICAgZXZlbnRXcmFwcGVyLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgYHRyYW5zbGF0ZSgke21hc3Rlclh9LCAke21hc3Rlcll9KWApO1xuICAgIG1hc3RlclkgPSBtYXN0ZXJZICsgMTAgKyBldmVudEhlaWdodDtcbiAgfVxuICBtYXN0ZXJZID0gZXZlbnRCZWdpblk7XG4gIHJldHVybiBtYXhFdmVudEhlaWdodDtcbn07XG5jb25zdCByZW5kZXJlciA9IHtcbiAgc2V0Q29uZjogKCkgPT4ge1xuICB9LFxuICBkcmF3XG59O1xuY29uc3QgZ2VuU2VjdGlvbnMgPSAob3B0aW9ucykgPT4ge1xuICBsZXQgc2VjdGlvbnMyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRpb25zLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICBvcHRpb25zW1wibGluZUNvbG9yXCIgKyBpXSA9IG9wdGlvbnNbXCJsaW5lQ29sb3JcIiArIGldIHx8IG9wdGlvbnNbXCJjU2NhbGVJbnZcIiArIGldO1xuICAgIGlmIChpc0Rhcmsob3B0aW9uc1tcImxpbmVDb2xvclwiICsgaV0pKSB7XG4gICAgICBvcHRpb25zW1wibGluZUNvbG9yXCIgKyBpXSA9IGxpZ2h0ZW4ob3B0aW9uc1tcImxpbmVDb2xvclwiICsgaV0sIDIwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9uc1tcImxpbmVDb2xvclwiICsgaV0gPSBkYXJrZW4ob3B0aW9uc1tcImxpbmVDb2xvclwiICsgaV0sIDIwKTtcbiAgICB9XG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRpb25zLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICBjb25zdCBzdyA9IFwiXCIgKyAoMTcgLSAzICogaSk7XG4gICAgc2VjdGlvbnMyICs9IGBcbiAgICAuc2VjdGlvbi0ke2kgLSAxfSByZWN0LCAuc2VjdGlvbi0ke2kgLSAxfSBwYXRoLCAuc2VjdGlvbi0ke2kgLSAxfSBjaXJjbGUsIC5zZWN0aW9uLSR7aSAtIDF9IHBhdGggIHtcbiAgICAgIGZpbGw6ICR7b3B0aW9uc1tcImNTY2FsZVwiICsgaV19O1xuICAgIH1cbiAgICAuc2VjdGlvbi0ke2kgLSAxfSB0ZXh0IHtcbiAgICAgZmlsbDogJHtvcHRpb25zW1wiY1NjYWxlTGFiZWxcIiArIGldfTtcbiAgICB9XG4gICAgLm5vZGUtaWNvbi0ke2kgLSAxfSB7XG4gICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICBjb2xvcjogJHtvcHRpb25zW1wiY1NjYWxlTGFiZWxcIiArIGldfTtcbiAgICB9XG4gICAgLnNlY3Rpb24tZWRnZS0ke2kgLSAxfXtcbiAgICAgIHN0cm9rZTogJHtvcHRpb25zW1wiY1NjYWxlXCIgKyBpXX07XG4gICAgfVxuICAgIC5lZGdlLWRlcHRoLSR7aSAtIDF9e1xuICAgICAgc3Ryb2tlLXdpZHRoOiAke3N3fTtcbiAgICB9XG4gICAgLnNlY3Rpb24tJHtpIC0gMX0gbGluZSB7XG4gICAgICBzdHJva2U6ICR7b3B0aW9uc1tcImNTY2FsZUludlwiICsgaV19IDtcbiAgICAgIHN0cm9rZS13aWR0aDogMztcbiAgICB9XG5cbiAgICAubGluZVdyYXBwZXIgbGluZXtcbiAgICAgIHN0cm9rZTogJHtvcHRpb25zW1wiY1NjYWxlTGFiZWxcIiArIGldfSA7XG4gICAgfVxuXG4gICAgLmRpc2FibGVkLCAuZGlzYWJsZWQgY2lyY2xlLCAuZGlzYWJsZWQgdGV4dCB7XG4gICAgICBmaWxsOiBsaWdodGdyYXk7XG4gICAgfVxuICAgIC5kaXNhYmxlZCB0ZXh0IHtcbiAgICAgIGZpbGw6ICNlZmVmZWY7XG4gICAgfVxuICAgIGA7XG4gIH1cbiAgcmV0dXJuIHNlY3Rpb25zMjtcbn07XG5jb25zdCBnZXRTdHlsZXMgPSAob3B0aW9ucykgPT4gYFxuICAuZWRnZSB7XG4gICAgc3Ryb2tlLXdpZHRoOiAzO1xuICB9XG4gICR7Z2VuU2VjdGlvbnMob3B0aW9ucyl9XG4gIC5zZWN0aW9uLXJvb3QgcmVjdCwgLnNlY3Rpb24tcm9vdCBwYXRoLCAuc2VjdGlvbi1yb290IGNpcmNsZSAge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5naXQwfTtcbiAgfVxuICAuc2VjdGlvbi1yb290IHRleHQge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5naXRCcmFuY2hMYWJlbDB9O1xuICB9XG4gIC5pY29uLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OjEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC5lZGdlIHtcbiAgICBmaWxsOiBub25lO1xuICB9XG4gIC5ldmVudFdyYXBwZXIgIHtcbiAgIGZpbHRlcjogYnJpZ2h0bmVzcygxMjAlKTtcbiAgfVxuYDtcbmNvbnN0IHN0eWxlcyA9IGdldFN0eWxlcztcbmNvbnN0IGRpYWdyYW0gPSB7XG4gIGRiLFxuICByZW5kZXJlcixcbiAgcGFyc2VyOiBwYXJzZXIkMSxcbiAgc3R5bGVzXG59O1xuZXhwb3J0IHtcbiAgZGlhZ3JhbVxufTtcbiIsCiAgICAiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNCwgVGhlIEN5dG9zY2FwZSBDb25zb3J0aXVtLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2ZcbiAqIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIOKAnFNvZnR3YXJl4oCdKSwgdG8gZGVhbCBpblxuICogdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0b1xuICogdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXNcbiAqIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkb1xuICogc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg4oCcQVMgSVPigJ0sIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICByZXR1cm4gX3R5cGVvZiA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIFwic3ltYm9sXCIgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA/IGZ1bmN0aW9uIChvYmopIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgfSA6IGZ1bmN0aW9uIChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqO1xuICB9LCBfdHlwZW9mKG9iaik7XG59XG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb25zdHJ1Y3RvciwgXCJwcm90b3R5cGVcIiwge1xuICAgIHdyaXRhYmxlOiBmYWxzZVxuICB9KTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5JDEob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5mdW5jdGlvbiBfc2xpY2VkVG9BcnJheShhcnIsIGkpIHtcbiAgcmV0dXJuIF9hcnJheVdpdGhIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIsIGkpIHx8IF9ub25JdGVyYWJsZVJlc3QoKTtcbn1cbmZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjtcbn1cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHtcbiAgdmFyIF9pID0gYXJyID09IG51bGwgPyBudWxsIDogdHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBhcnJbU3ltYm9sLml0ZXJhdG9yXSB8fCBhcnJbXCJAQGl0ZXJhdG9yXCJdO1xuICBpZiAoX2kgPT0gbnVsbCkgcmV0dXJuO1xuICB2YXIgX2FyciA9IFtdO1xuICB2YXIgX24gPSB0cnVlO1xuICB2YXIgX2QgPSBmYWxzZTtcbiAgdmFyIF9zLCBfZTtcbiAgdHJ5IHtcbiAgICBmb3IgKF9pID0gX2kuY2FsbChhcnIpOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7XG4gICAgICBfYXJyLnB1c2goX3MudmFsdWUpO1xuICAgICAgaWYgKGkgJiYgX2Fyci5sZW5ndGggPT09IGkpIGJyZWFrO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgX2QgPSB0cnVlO1xuICAgIF9lID0gZXJyO1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIV9uICYmIF9pW1wicmV0dXJuXCJdICE9IG51bGwpIF9pW1wicmV0dXJuXCJdKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChfZCkgdGhyb3cgX2U7XG4gICAgfVxuICB9XG4gIHJldHVybiBfYXJyO1xufVxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbiAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTtcbiAgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufVxuZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7XG4gIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykgYXJyMltpXSA9IGFycltpXTtcbiAgcmV0dXJuIGFycjI7XG59XG5mdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufVxuZnVuY3Rpb24gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIobywgYWxsb3dBcnJheUxpa2UpIHtcbiAgdmFyIGl0ID0gdHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl0gfHwgb1tcIkBAaXRlcmF0b3JcIl07XG4gIGlmICghaXQpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvKSB8fCAoaXQgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobykpIHx8IGFsbG93QXJyYXlMaWtlICYmIG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSB7XG4gICAgICBpZiAoaXQpIG8gPSBpdDtcbiAgICAgIHZhciBpID0gMDtcbiAgICAgIHZhciBGID0gZnVuY3Rpb24gKCkge307XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzOiBGLFxuICAgICAgICBuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKGkgPj0gby5sZW5ndGgpIHJldHVybiB7XG4gICAgICAgICAgICBkb25lOiB0cnVlXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZG9uZTogZmFsc2UsXG4gICAgICAgICAgICB2YWx1ZTogb1tpKytdXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgZTogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgICBmOiBGXG4gICAgICB9O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG4gIH1cbiAgdmFyIG5vcm1hbENvbXBsZXRpb24gPSB0cnVlLFxuICAgIGRpZEVyciA9IGZhbHNlLFxuICAgIGVycjtcbiAgcmV0dXJuIHtcbiAgICBzOiBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCA9IGl0LmNhbGwobyk7XG4gICAgfSxcbiAgICBuOiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgc3RlcCA9IGl0Lm5leHQoKTtcbiAgICAgIG5vcm1hbENvbXBsZXRpb24gPSBzdGVwLmRvbmU7XG4gICAgICByZXR1cm4gc3RlcDtcbiAgICB9LFxuICAgIGU6IGZ1bmN0aW9uIChlKSB7XG4gICAgICBkaWRFcnIgPSB0cnVlO1xuICAgICAgZXJyID0gZTtcbiAgICB9LFxuICAgIGY6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghbm9ybWFsQ29tcGxldGlvbiAmJiBpdC5yZXR1cm4gIT0gbnVsbCkgaXQucmV0dXJuKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoZGlkRXJyKSB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG52YXIgX3dpbmRvdyA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IHdpbmRvdzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXG52YXIgbmF2aWdhdG9yID0gX3dpbmRvdyA/IF93aW5kb3cubmF2aWdhdG9yIDogbnVsbDtcbl93aW5kb3cgPyBfd2luZG93LmRvY3VtZW50IDogbnVsbDtcbnZhciB0eXBlb2ZzdHIgPSBfdHlwZW9mKCcnKTtcbnZhciB0eXBlb2ZvYmogPSBfdHlwZW9mKHt9KTtcbnZhciB0eXBlb2ZmbiA9IF90eXBlb2YoZnVuY3Rpb24gKCkge30pO1xudmFyIHR5cGVvZmh0bWxlbGUgPSB0eXBlb2YgSFRNTEVsZW1lbnQgPT09IFwidW5kZWZpbmVkXCIgPyBcInVuZGVmaW5lZFwiIDogX3R5cGVvZihIVE1MRWxlbWVudCk7XG52YXIgaW5zdGFuY2VTdHIgPSBmdW5jdGlvbiBpbnN0YW5jZVN0cihvYmopIHtcbiAgcmV0dXJuIG9iaiAmJiBvYmouaW5zdGFuY2VTdHJpbmcgJiYgZm4kNihvYmouaW5zdGFuY2VTdHJpbmcpID8gb2JqLmluc3RhbmNlU3RyaW5nKCkgOiBudWxsO1xufTtcblxudmFyIHN0cmluZyA9IGZ1bmN0aW9uIHN0cmluZyhvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIF90eXBlb2Yob2JqKSA9PSB0eXBlb2ZzdHI7XG59O1xudmFyIGZuJDYgPSBmdW5jdGlvbiBmbihvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIF90eXBlb2Yob2JqKSA9PT0gdHlwZW9mZm47XG59O1xudmFyIGFycmF5ID0gZnVuY3Rpb24gYXJyYXkob2JqKSB7XG4gIHJldHVybiAhZWxlbWVudE9yQ29sbGVjdGlvbihvYmopICYmIChBcnJheS5pc0FycmF5ID8gQXJyYXkuaXNBcnJheShvYmopIDogb2JqICE9IG51bGwgJiYgb2JqIGluc3RhbmNlb2YgQXJyYXkpO1xufTtcbnZhciBwbGFpbk9iamVjdCA9IGZ1bmN0aW9uIHBsYWluT2JqZWN0KG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgX3R5cGVvZihvYmopID09PSB0eXBlb2ZvYmogJiYgIWFycmF5KG9iaikgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBPYmplY3Q7XG59O1xudmFyIG9iamVjdCA9IGZ1bmN0aW9uIG9iamVjdChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIF90eXBlb2Yob2JqKSA9PT0gdHlwZW9mb2JqO1xufTtcbnZhciBudW1iZXIkMSA9IGZ1bmN0aW9uIG51bWJlcihvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIF90eXBlb2Yob2JqKSA9PT0gX3R5cGVvZigxKSAmJiAhaXNOYU4ob2JqKTtcbn07XG52YXIgaW50ZWdlciA9IGZ1bmN0aW9uIGludGVnZXIob2JqKSB7XG4gIHJldHVybiBudW1iZXIkMShvYmopICYmIE1hdGguZmxvb3Iob2JqKSA9PT0gb2JqO1xufTtcbnZhciBodG1sRWxlbWVudCA9IGZ1bmN0aW9uIGh0bWxFbGVtZW50KG9iaikge1xuICBpZiAoJ3VuZGVmaW5lZCcgPT09IHR5cGVvZmh0bWxlbGUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsICE9IG9iaiAmJiBvYmogaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbiAgfVxufTtcbnZhciBlbGVtZW50T3JDb2xsZWN0aW9uID0gZnVuY3Rpb24gZWxlbWVudE9yQ29sbGVjdGlvbihvYmopIHtcbiAgcmV0dXJuIGVsZW1lbnQob2JqKSB8fCBjb2xsZWN0aW9uKG9iaik7XG59O1xudmFyIGVsZW1lbnQgPSBmdW5jdGlvbiBlbGVtZW50KG9iaikge1xuICByZXR1cm4gaW5zdGFuY2VTdHIob2JqKSA9PT0gJ2NvbGxlY3Rpb24nICYmIG9iai5fcHJpdmF0ZS5zaW5nbGU7XG59O1xudmFyIGNvbGxlY3Rpb24gPSBmdW5jdGlvbiBjb2xsZWN0aW9uKG9iaikge1xuICByZXR1cm4gaW5zdGFuY2VTdHIob2JqKSA9PT0gJ2NvbGxlY3Rpb24nICYmICFvYmouX3ByaXZhdGUuc2luZ2xlO1xufTtcbnZhciBjb3JlID0gZnVuY3Rpb24gY29yZShvYmopIHtcbiAgcmV0dXJuIGluc3RhbmNlU3RyKG9iaikgPT09ICdjb3JlJztcbn07XG52YXIgc3R5bGVzaGVldCA9IGZ1bmN0aW9uIHN0eWxlc2hlZXQob2JqKSB7XG4gIHJldHVybiBpbnN0YW5jZVN0cihvYmopID09PSAnc3R5bGVzaGVldCc7XG59O1xudmFyIGV2ZW50ID0gZnVuY3Rpb24gZXZlbnQob2JqKSB7XG4gIHJldHVybiBpbnN0YW5jZVN0cihvYmopID09PSAnZXZlbnQnO1xufTtcbnZhciBlbXB0eVN0cmluZyA9IGZ1bmN0aW9uIGVtcHR5U3RyaW5nKG9iaikge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQgfHwgb2JqID09PSBudWxsKSB7XG4gICAgLy8gbnVsbCBpcyBlbXB0eVxuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKG9iaiA9PT0gJycgfHwgb2JqLm1hdGNoKC9eXFxzKyQvKSkge1xuICAgIHJldHVybiB0cnVlOyAvLyBlbXB0eSBzdHJpbmcgaXMgZW1wdHlcbiAgfVxuXG4gIHJldHVybiBmYWxzZTsgLy8gb3RoZXJ3aXNlLCB3ZSBkb24ndCBrbm93IHdoYXQgd2UndmUgZ290XG59O1xudmFyIGRvbUVsZW1lbnQgPSBmdW5jdGlvbiBkb21FbGVtZW50KG9iaikge1xuICBpZiAodHlwZW9mIEhUTUxFbGVtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmYWxzZTsgLy8gd2UncmUgbm90IGluIGEgYnJvd3NlciBzbyBpdCBkb2Vzbid0IG1hdHRlclxuICB9IGVsc2Uge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbiAgfVxufTtcbnZhciBib3VuZGluZ0JveCA9IGZ1bmN0aW9uIGJvdW5kaW5nQm94KG9iaikge1xuICByZXR1cm4gcGxhaW5PYmplY3Qob2JqKSAmJiBudW1iZXIkMShvYmoueDEpICYmIG51bWJlciQxKG9iai54MikgJiYgbnVtYmVyJDEob2JqLnkxKSAmJiBudW1iZXIkMShvYmoueTIpO1xufTtcbnZhciBwcm9taXNlID0gZnVuY3Rpb24gcHJvbWlzZShvYmopIHtcbiAgcmV0dXJuIG9iamVjdChvYmopICYmIGZuJDYob2JqLnRoZW4pO1xufTtcbnZhciBtcyA9IGZ1bmN0aW9uIG1zKCkge1xuICByZXR1cm4gbmF2aWdhdG9yICYmIG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL21zaWV8dHJpZGVudHxlZGdlL2kpO1xufTsgLy8gcHJvYmFibHkgYSBiZXR0ZXIgd2F5IHRvIGRldGVjdCB0aGlzLi4uXG5cbnZhciBtZW1vaXplJDEgPSBmdW5jdGlvbiBtZW1vaXplKGZuLCBrZXlGbikge1xuICBpZiAoIWtleUZuKSB7XG4gICAga2V5Rm4gPSBmdW5jdGlvbiBrZXlGbigpIHtcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiBhcmd1bWVudHNbMF07XG4gICAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgICAgfVxuICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFyZ3Muam9pbignJCcpO1xuICAgIH07XG4gIH1cbiAgdmFyIG1lbW9pemVkRm4gPSBmdW5jdGlvbiBtZW1vaXplZEZuKCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICB2YXIgcmV0O1xuICAgIHZhciBrID0ga2V5Rm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgdmFyIGNhY2hlID0gbWVtb2l6ZWRGbi5jYWNoZTtcbiAgICBpZiAoIShyZXQgPSBjYWNoZVtrXSkpIHtcbiAgICAgIHJldCA9IGNhY2hlW2tdID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH07XG4gIG1lbW9pemVkRm4uY2FjaGUgPSB7fTtcbiAgcmV0dXJuIG1lbW9pemVkRm47XG59O1xuXG52YXIgY2FtZWwyZGFzaCA9IG1lbW9pemUkMShmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvKFtBLVpdKS9nLCBmdW5jdGlvbiAodikge1xuICAgIHJldHVybiAnLScgKyB2LnRvTG93ZXJDYXNlKCk7XG4gIH0pO1xufSk7XG52YXIgZGFzaDJjYW1lbCA9IG1lbW9pemUkMShmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvKC1cXHcpL2csIGZ1bmN0aW9uICh2KSB7XG4gICAgcmV0dXJuIHZbMV0udG9VcHBlckNhc2UoKTtcbiAgfSk7XG59KTtcbnZhciBwcmVwZW5kQ2FtZWwgPSBtZW1vaXplJDEoZnVuY3Rpb24gKHByZWZpeCwgc3RyKSB7XG4gIHJldHVybiBwcmVmaXggKyBzdHJbMF0udG9VcHBlckNhc2UoKSArIHN0ci5zdWJzdHJpbmcoMSk7XG59LCBmdW5jdGlvbiAocHJlZml4LCBzdHIpIHtcbiAgcmV0dXJuIHByZWZpeCArICckJyArIHN0cjtcbn0pO1xudmFyIGNhcGl0YWxpemUgPSBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cikge1xuICBpZiAoZW1wdHlTdHJpbmcoc3RyKSkge1xuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zdWJzdHJpbmcoMSk7XG59O1xuXG52YXIgbnVtYmVyID0gJyg/OlstK10/KD86KD86XFxcXGQrfFxcXFxkKlxcXFwuXFxcXGQrKSg/OltFZV1bKy1dP1xcXFxkKyk/KSknO1xudmFyIHJnYmEgPSAncmdiW2FdP1xcXFwoKCcgKyBudW1iZXIgKyAnWyVdPylcXFxccyosXFxcXHMqKCcgKyBudW1iZXIgKyAnWyVdPylcXFxccyosXFxcXHMqKCcgKyBudW1iZXIgKyAnWyVdPykoPzpcXFxccyosXFxcXHMqKCcgKyBudW1iZXIgKyAnKSk/XFxcXCknO1xudmFyIHJnYmFOb0JhY2tSZWZzID0gJ3JnYlthXT9cXFxcKCg/OicgKyBudW1iZXIgKyAnWyVdPylcXFxccyosXFxcXHMqKD86JyArIG51bWJlciArICdbJV0/KVxcXFxzKixcXFxccyooPzonICsgbnVtYmVyICsgJ1slXT8pKD86XFxcXHMqLFxcXFxzKig/OicgKyBudW1iZXIgKyAnKSk/XFxcXCknO1xudmFyIGhzbGEgPSAnaHNsW2FdP1xcXFwoKCcgKyBudW1iZXIgKyAnKVxcXFxzKixcXFxccyooJyArIG51bWJlciArICdbJV0pXFxcXHMqLFxcXFxzKignICsgbnVtYmVyICsgJ1slXSkoPzpcXFxccyosXFxcXHMqKCcgKyBudW1iZXIgKyAnKSk/XFxcXCknO1xudmFyIGhzbGFOb0JhY2tSZWZzID0gJ2hzbFthXT9cXFxcKCg/OicgKyBudW1iZXIgKyAnKVxcXFxzKixcXFxccyooPzonICsgbnVtYmVyICsgJ1slXSlcXFxccyosXFxcXHMqKD86JyArIG51bWJlciArICdbJV0pKD86XFxcXHMqLFxcXFxzKig/OicgKyBudW1iZXIgKyAnKSk/XFxcXCknO1xudmFyIGhleDMgPSAnXFxcXCNbMC05YS1mQS1GXXszfSc7XG52YXIgaGV4NiA9ICdcXFxcI1swLTlhLWZBLUZdezZ9JztcblxudmFyIGFzY2VuZGluZyA9IGZ1bmN0aW9uIGFzY2VuZGluZyhhLCBiKSB7XG4gIGlmIChhIDwgYikge1xuICAgIHJldHVybiAtMTtcbiAgfSBlbHNlIGlmIChhID4gYikge1xuICAgIHJldHVybiAxO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAwO1xuICB9XG59O1xudmFyIGRlc2NlbmRpbmcgPSBmdW5jdGlvbiBkZXNjZW5kaW5nKGEsIGIpIHtcbiAgcmV0dXJuIC0xICogYXNjZW5kaW5nKGEsIGIpO1xufTtcblxudmFyIGV4dGVuZCA9IE9iamVjdC5hc3NpZ24gIT0gbnVsbCA/IE9iamVjdC5hc3NpZ24uYmluZChPYmplY3QpIDogZnVuY3Rpb24gKHRndCkge1xuICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG9iaiA9IGFyZ3NbaV07XG4gICAgaWYgKG9iaiA9PSBudWxsKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwga2V5cy5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIGsgPSBrZXlzW2pdO1xuICAgICAgdGd0W2tdID0gb2JqW2tdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGd0O1xufTtcblxuLy8gZ2V0IFtyLCBnLCBiXSBmcm9tICNhYmMgb3IgI2FhYmJjY1xudmFyIGhleDJ0dXBsZSA9IGZ1bmN0aW9uIGhleDJ0dXBsZShoZXgpIHtcbiAgaWYgKCEoaGV4Lmxlbmd0aCA9PT0gNCB8fCBoZXgubGVuZ3RoID09PSA3KSB8fCBoZXhbMF0gIT09ICcjJykge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgc2hvcnRIZXggPSBoZXgubGVuZ3RoID09PSA0O1xuICB2YXIgciwgZywgYjtcbiAgdmFyIGJhc2UgPSAxNjtcbiAgaWYgKHNob3J0SGV4KSB7XG4gICAgciA9IHBhcnNlSW50KGhleFsxXSArIGhleFsxXSwgYmFzZSk7XG4gICAgZyA9IHBhcnNlSW50KGhleFsyXSArIGhleFsyXSwgYmFzZSk7XG4gICAgYiA9IHBhcnNlSW50KGhleFszXSArIGhleFszXSwgYmFzZSk7XG4gIH0gZWxzZSB7XG4gICAgciA9IHBhcnNlSW50KGhleFsxXSArIGhleFsyXSwgYmFzZSk7XG4gICAgZyA9IHBhcnNlSW50KGhleFszXSArIGhleFs0XSwgYmFzZSk7XG4gICAgYiA9IHBhcnNlSW50KGhleFs1XSArIGhleFs2XSwgYmFzZSk7XG4gIH1cbiAgcmV0dXJuIFtyLCBnLCBiXTtcbn07XG5cbi8vIGdldCBbciwgZywgYiwgYV0gZnJvbSBoc2woMCwgMCwgMCkgb3IgaHNsYSgwLCAwLCAwLCAwKVxudmFyIGhzbDJ0dXBsZSA9IGZ1bmN0aW9uIGhzbDJ0dXBsZShoc2wpIHtcbiAgdmFyIHJldDtcbiAgdmFyIGgsIHMsIGwsIGEsIHIsIGcsIGI7XG4gIGZ1bmN0aW9uIGh1ZTJyZ2IocCwgcSwgdCkge1xuICAgIGlmICh0IDwgMCkgdCArPSAxO1xuICAgIGlmICh0ID4gMSkgdCAtPSAxO1xuICAgIGlmICh0IDwgMSAvIDYpIHJldHVybiBwICsgKHEgLSBwKSAqIDYgKiB0O1xuICAgIGlmICh0IDwgMSAvIDIpIHJldHVybiBxO1xuICAgIGlmICh0IDwgMiAvIDMpIHJldHVybiBwICsgKHEgLSBwKSAqICgyIC8gMyAtIHQpICogNjtcbiAgICByZXR1cm4gcDtcbiAgfVxuICB2YXIgbSA9IG5ldyBSZWdFeHAoJ14nICsgaHNsYSArICckJykuZXhlYyhoc2wpO1xuICBpZiAobSkge1xuICAgIC8vIGdldCBodWVcbiAgICBoID0gcGFyc2VJbnQobVsxXSk7XG4gICAgaWYgKGggPCAwKSB7XG4gICAgICBoID0gKDM2MCAtIC0xICogaCAlIDM2MCkgJSAzNjA7XG4gICAgfSBlbHNlIGlmIChoID4gMzYwKSB7XG4gICAgICBoID0gaCAlIDM2MDtcbiAgICB9XG4gICAgaCAvPSAzNjA7IC8vIG5vcm1hbGlzZSBvbiBbMCwgMV1cblxuICAgIHMgPSBwYXJzZUZsb2F0KG1bMl0pO1xuICAgIGlmIChzIDwgMCB8fCBzID4gMTAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBzYXR1cmF0aW9uIGlzIFswLCAxMDBdXG4gICAgcyA9IHMgLyAxMDA7IC8vIG5vcm1hbGlzZSBvbiBbMCwgMV1cblxuICAgIGwgPSBwYXJzZUZsb2F0KG1bM10pO1xuICAgIGlmIChsIDwgMCB8fCBsID4gMTAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBsaWdodG5lc3MgaXMgWzAsIDEwMF1cbiAgICBsID0gbCAvIDEwMDsgLy8gbm9ybWFsaXNlIG9uIFswLCAxXVxuXG4gICAgYSA9IG1bNF07XG4gICAgaWYgKGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYSA9IHBhcnNlRmxvYXQoYSk7XG4gICAgICBpZiAoYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSAvLyBhbHBoYSBpcyBbMCwgMV1cbiAgICB9XG5cbiAgICAvLyBub3csIGNvbnZlcnQgdG8gcmdiXG4gICAgLy8gY29kZSBmcm9tIGh0dHA6Ly9tamlqYWNrc29uLmNvbS8yMDA4LzAyL3JnYi10by1oc2wtYW5kLXJnYi10by1oc3YtY29sb3ItbW9kZWwtY29udmVyc2lvbi1hbGdvcml0aG1zLWluLWphdmFzY3JpcHRcbiAgICBpZiAocyA9PT0gMCkge1xuICAgICAgciA9IGcgPSBiID0gTWF0aC5yb3VuZChsICogMjU1KTsgLy8gYWNocm9tYXRpY1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcSA9IGwgPCAwLjUgPyBsICogKDEgKyBzKSA6IGwgKyBzIC0gbCAqIHM7XG4gICAgICB2YXIgcCA9IDIgKiBsIC0gcTtcbiAgICAgIHIgPSBNYXRoLnJvdW5kKDI1NSAqIGh1ZTJyZ2IocCwgcSwgaCArIDEgLyAzKSk7XG4gICAgICBnID0gTWF0aC5yb3VuZCgyNTUgKiBodWUycmdiKHAsIHEsIGgpKTtcbiAgICAgIGIgPSBNYXRoLnJvdW5kKDI1NSAqIGh1ZTJyZ2IocCwgcSwgaCAtIDEgLyAzKSk7XG4gICAgfVxuICAgIHJldCA9IFtyLCBnLCBiLCBhXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufTtcblxuLy8gZ2V0IFtyLCBnLCBiLCBhXSBmcm9tIHJnYigwLCAwLCAwKSBvciByZ2JhKDAsIDAsIDAsIDApXG52YXIgcmdiMnR1cGxlID0gZnVuY3Rpb24gcmdiMnR1cGxlKHJnYikge1xuICB2YXIgcmV0O1xuICB2YXIgbSA9IG5ldyBSZWdFeHAoJ14nICsgcmdiYSArICckJykuZXhlYyhyZ2IpO1xuICBpZiAobSkge1xuICAgIHJldCA9IFtdO1xuICAgIHZhciBpc1BjdCA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDM7IGkrKykge1xuICAgICAgdmFyIGNoYW5uZWwgPSBtW2ldO1xuICAgICAgaWYgKGNoYW5uZWxbY2hhbm5lbC5sZW5ndGggLSAxXSA9PT0gJyUnKSB7XG4gICAgICAgIGlzUGN0W2ldID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGNoYW5uZWwgPSBwYXJzZUZsb2F0KGNoYW5uZWwpO1xuICAgICAgaWYgKGlzUGN0W2ldKSB7XG4gICAgICAgIGNoYW5uZWwgPSBjaGFubmVsIC8gMTAwICogMjU1OyAvLyBub3JtYWxpc2UgdG8gWzAsIDI1NV1cbiAgICAgIH1cblxuICAgICAgaWYgKGNoYW5uZWwgPCAwIHx8IGNoYW5uZWwgPiAyNTUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSAvLyBpbnZhbGlkIGNoYW5uZWwgdmFsdWVcblxuICAgICAgcmV0LnB1c2goTWF0aC5mbG9vcihjaGFubmVsKSk7XG4gICAgfVxuICAgIHZhciBhdExlYXN0T25lSXNQY3QgPSBpc1BjdFsxXSB8fCBpc1BjdFsyXSB8fCBpc1BjdFszXTtcbiAgICB2YXIgYWxsQXJlUGN0ID0gaXNQY3RbMV0gJiYgaXNQY3RbMl0gJiYgaXNQY3RbM107XG4gICAgaWYgKGF0TGVhc3RPbmVJc1BjdCAmJiAhYWxsQXJlUGN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBtdXN0IGFsbCBiZSBwZXJjZW50IHZhbHVlcyBpZiBvbmUgaXNcblxuICAgIHZhciBhbHBoYSA9IG1bNF07XG4gICAgaWYgKGFscGhhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFscGhhID0gcGFyc2VGbG9hdChhbHBoYSk7XG4gICAgICBpZiAoYWxwaGEgPCAwIHx8IGFscGhhID4gMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IC8vIGludmFsaWQgYWxwaGEgdmFsdWVcblxuICAgICAgcmV0LnB1c2goYWxwaGEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufTtcbnZhciBjb2xvcm5hbWUydHVwbGUgPSBmdW5jdGlvbiBjb2xvcm5hbWUydHVwbGUoY29sb3IpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvci50b0xvd2VyQ2FzZSgpXTtcbn07XG52YXIgY29sb3IydHVwbGUgPSBmdW5jdGlvbiBjb2xvcjJ0dXBsZShjb2xvcikge1xuICByZXR1cm4gKGFycmF5KGNvbG9yKSA/IGNvbG9yIDogbnVsbCkgfHwgY29sb3JuYW1lMnR1cGxlKGNvbG9yKSB8fCBoZXgydHVwbGUoY29sb3IpIHx8IHJnYjJ0dXBsZShjb2xvcikgfHwgaHNsMnR1cGxlKGNvbG9yKTtcbn07XG52YXIgY29sb3JzID0ge1xuICAvLyBzcGVjaWFsIGNvbG91ciBuYW1lc1xuICB0cmFuc3BhcmVudDogWzAsIDAsIDAsIDBdLFxuICAvLyBOQiBhbHBoYSA9PT0gMFxuXG4gIC8vIHJlZ3VsYXIgY29sb3Vyc1xuICBhbGljZWJsdWU6IFsyNDAsIDI0OCwgMjU1XSxcbiAgYW50aXF1ZXdoaXRlOiBbMjUwLCAyMzUsIDIxNV0sXG4gIGFxdWE6IFswLCAyNTUsIDI1NV0sXG4gIGFxdWFtYXJpbmU6IFsxMjcsIDI1NSwgMjEyXSxcbiAgYXp1cmU6IFsyNDAsIDI1NSwgMjU1XSxcbiAgYmVpZ2U6IFsyNDUsIDI0NSwgMjIwXSxcbiAgYmlzcXVlOiBbMjU1LCAyMjgsIDE5Nl0sXG4gIGJsYWNrOiBbMCwgMCwgMF0sXG4gIGJsYW5jaGVkYWxtb25kOiBbMjU1LCAyMzUsIDIwNV0sXG4gIGJsdWU6IFswLCAwLCAyNTVdLFxuICBibHVldmlvbGV0OiBbMTM4LCA0MywgMjI2XSxcbiAgYnJvd246IFsxNjUsIDQyLCA0Ml0sXG4gIGJ1cmx5d29vZDogWzIyMiwgMTg0LCAxMzVdLFxuICBjYWRldGJsdWU6IFs5NSwgMTU4LCAxNjBdLFxuICBjaGFydHJldXNlOiBbMTI3LCAyNTUsIDBdLFxuICBjaG9jb2xhdGU6IFsyMTAsIDEwNSwgMzBdLFxuICBjb3JhbDogWzI1NSwgMTI3LCA4MF0sXG4gIGNvcm5mbG93ZXJibHVlOiBbMTAwLCAxNDksIDIzN10sXG4gIGNvcm5zaWxrOiBbMjU1LCAyNDgsIDIyMF0sXG4gIGNyaW1zb246IFsyMjAsIDIwLCA2MF0sXG4gIGN5YW46IFswLCAyNTUsIDI1NV0sXG4gIGRhcmtibHVlOiBbMCwgMCwgMTM5XSxcbiAgZGFya2N5YW46IFswLCAxMzksIDEzOV0sXG4gIGRhcmtnb2xkZW5yb2Q6IFsxODQsIDEzNCwgMTFdLFxuICBkYXJrZ3JheTogWzE2OSwgMTY5LCAxNjldLFxuICBkYXJrZ3JlZW46IFswLCAxMDAsIDBdLFxuICBkYXJrZ3JleTogWzE2OSwgMTY5LCAxNjldLFxuICBkYXJra2hha2k6IFsxODksIDE4MywgMTA3XSxcbiAgZGFya21hZ2VudGE6IFsxMzksIDAsIDEzOV0sXG4gIGRhcmtvbGl2ZWdyZWVuOiBbODUsIDEwNywgNDddLFxuICBkYXJrb3JhbmdlOiBbMjU1LCAxNDAsIDBdLFxuICBkYXJrb3JjaGlkOiBbMTUzLCA1MCwgMjA0XSxcbiAgZGFya3JlZDogWzEzOSwgMCwgMF0sXG4gIGRhcmtzYWxtb246IFsyMzMsIDE1MCwgMTIyXSxcbiAgZGFya3NlYWdyZWVuOiBbMTQzLCAxODgsIDE0M10sXG4gIGRhcmtzbGF0ZWJsdWU6IFs3MiwgNjEsIDEzOV0sXG4gIGRhcmtzbGF0ZWdyYXk6IFs0NywgNzksIDc5XSxcbiAgZGFya3NsYXRlZ3JleTogWzQ3LCA3OSwgNzldLFxuICBkYXJrdHVycXVvaXNlOiBbMCwgMjA2LCAyMDldLFxuICBkYXJrdmlvbGV0OiBbMTQ4LCAwLCAyMTFdLFxuICBkZWVwcGluazogWzI1NSwgMjAsIDE0N10sXG4gIGRlZXBza3libHVlOiBbMCwgMTkxLCAyNTVdLFxuICBkaW1ncmF5OiBbMTA1LCAxMDUsIDEwNV0sXG4gIGRpbWdyZXk6IFsxMDUsIDEwNSwgMTA1XSxcbiAgZG9kZ2VyYmx1ZTogWzMwLCAxNDQsIDI1NV0sXG4gIGZpcmVicmljazogWzE3OCwgMzQsIDM0XSxcbiAgZmxvcmFsd2hpdGU6IFsyNTUsIDI1MCwgMjQwXSxcbiAgZm9yZXN0Z3JlZW46IFszNCwgMTM5LCAzNF0sXG4gIGZ1Y2hzaWE6IFsyNTUsIDAsIDI1NV0sXG4gIGdhaW5zYm9ybzogWzIyMCwgMjIwLCAyMjBdLFxuICBnaG9zdHdoaXRlOiBbMjQ4LCAyNDgsIDI1NV0sXG4gIGdvbGQ6IFsyNTUsIDIxNSwgMF0sXG4gIGdvbGRlbnJvZDogWzIxOCwgMTY1LCAzMl0sXG4gIGdyYXk6IFsxMjgsIDEyOCwgMTI4XSxcbiAgZ3JleTogWzEyOCwgMTI4LCAxMjhdLFxuICBncmVlbjogWzAsIDEyOCwgMF0sXG4gIGdyZWVueWVsbG93OiBbMTczLCAyNTUsIDQ3XSxcbiAgaG9uZXlkZXc6IFsyNDAsIDI1NSwgMjQwXSxcbiAgaG90cGluazogWzI1NSwgMTA1LCAxODBdLFxuICBpbmRpYW5yZWQ6IFsyMDUsIDkyLCA5Ml0sXG4gIGluZGlnbzogWzc1LCAwLCAxMzBdLFxuICBpdm9yeTogWzI1NSwgMjU1LCAyNDBdLFxuICBraGFraTogWzI0MCwgMjMwLCAxNDBdLFxuICBsYXZlbmRlcjogWzIzMCwgMjMwLCAyNTBdLFxuICBsYXZlbmRlcmJsdXNoOiBbMjU1LCAyNDAsIDI0NV0sXG4gIGxhd25ncmVlbjogWzEyNCwgMjUyLCAwXSxcbiAgbGVtb25jaGlmZm9uOiBbMjU1LCAyNTAsIDIwNV0sXG4gIGxpZ2h0Ymx1ZTogWzE3MywgMjE2LCAyMzBdLFxuICBsaWdodGNvcmFsOiBbMjQwLCAxMjgsIDEyOF0sXG4gIGxpZ2h0Y3lhbjogWzIyNCwgMjU1LCAyNTVdLFxuICBsaWdodGdvbGRlbnJvZHllbGxvdzogWzI1MCwgMjUwLCAyMTBdLFxuICBsaWdodGdyYXk6IFsyMTEsIDIxMSwgMjExXSxcbiAgbGlnaHRncmVlbjogWzE0NCwgMjM4LCAxNDRdLFxuICBsaWdodGdyZXk6IFsyMTEsIDIxMSwgMjExXSxcbiAgbGlnaHRwaW5rOiBbMjU1LCAxODIsIDE5M10sXG4gIGxpZ2h0c2FsbW9uOiBbMjU1LCAxNjAsIDEyMl0sXG4gIGxpZ2h0c2VhZ3JlZW46IFszMiwgMTc4LCAxNzBdLFxuICBsaWdodHNreWJsdWU6IFsxMzUsIDIwNiwgMjUwXSxcbiAgbGlnaHRzbGF0ZWdyYXk6IFsxMTksIDEzNiwgMTUzXSxcbiAgbGlnaHRzbGF0ZWdyZXk6IFsxMTksIDEzNiwgMTUzXSxcbiAgbGlnaHRzdGVlbGJsdWU6IFsxNzYsIDE5NiwgMjIyXSxcbiAgbGlnaHR5ZWxsb3c6IFsyNTUsIDI1NSwgMjI0XSxcbiAgbGltZTogWzAsIDI1NSwgMF0sXG4gIGxpbWVncmVlbjogWzUwLCAyMDUsIDUwXSxcbiAgbGluZW46IFsyNTAsIDI0MCwgMjMwXSxcbiAgbWFnZW50YTogWzI1NSwgMCwgMjU1XSxcbiAgbWFyb29uOiBbMTI4LCAwLCAwXSxcbiAgbWVkaXVtYXF1YW1hcmluZTogWzEwMiwgMjA1LCAxNzBdLFxuICBtZWRpdW1ibHVlOiBbMCwgMCwgMjA1XSxcbiAgbWVkaXVtb3JjaGlkOiBbMTg2LCA4NSwgMjExXSxcbiAgbWVkaXVtcHVycGxlOiBbMTQ3LCAxMTIsIDIxOV0sXG4gIG1lZGl1bXNlYWdyZWVuOiBbNjAsIDE3OSwgMTEzXSxcbiAgbWVkaXVtc2xhdGVibHVlOiBbMTIzLCAxMDQsIDIzOF0sXG4gIG1lZGl1bXNwcmluZ2dyZWVuOiBbMCwgMjUwLCAxNTRdLFxuICBtZWRpdW10dXJxdW9pc2U6IFs3MiwgMjA5LCAyMDRdLFxuICBtZWRpdW12aW9sZXRyZWQ6IFsxOTksIDIxLCAxMzNdLFxuICBtaWRuaWdodGJsdWU6IFsyNSwgMjUsIDExMl0sXG4gIG1pbnRjcmVhbTogWzI0NSwgMjU1LCAyNTBdLFxuICBtaXN0eXJvc2U6IFsyNTUsIDIyOCwgMjI1XSxcbiAgbW9jY2FzaW46IFsyNTUsIDIyOCwgMTgxXSxcbiAgbmF2YWpvd2hpdGU6IFsyNTUsIDIyMiwgMTczXSxcbiAgbmF2eTogWzAsIDAsIDEyOF0sXG4gIG9sZGxhY2U6IFsyNTMsIDI0NSwgMjMwXSxcbiAgb2xpdmU6IFsxMjgsIDEyOCwgMF0sXG4gIG9saXZlZHJhYjogWzEwNywgMTQyLCAzNV0sXG4gIG9yYW5nZTogWzI1NSwgMTY1LCAwXSxcbiAgb3JhbmdlcmVkOiBbMjU1LCA2OSwgMF0sXG4gIG9yY2hpZDogWzIxOCwgMTEyLCAyMTRdLFxuICBwYWxlZ29sZGVucm9kOiBbMjM4LCAyMzIsIDE3MF0sXG4gIHBhbGVncmVlbjogWzE1MiwgMjUxLCAxNTJdLFxuICBwYWxldHVycXVvaXNlOiBbMTc1LCAyMzgsIDIzOF0sXG4gIHBhbGV2aW9sZXRyZWQ6IFsyMTksIDExMiwgMTQ3XSxcbiAgcGFwYXlhd2hpcDogWzI1NSwgMjM5LCAyMTNdLFxuICBwZWFjaHB1ZmY6IFsyNTUsIDIxOCwgMTg1XSxcbiAgcGVydTogWzIwNSwgMTMzLCA2M10sXG4gIHBpbms6IFsyNTUsIDE5MiwgMjAzXSxcbiAgcGx1bTogWzIyMSwgMTYwLCAyMjFdLFxuICBwb3dkZXJibHVlOiBbMTc2LCAyMjQsIDIzMF0sXG4gIHB1cnBsZTogWzEyOCwgMCwgMTI4XSxcbiAgcmVkOiBbMjU1LCAwLCAwXSxcbiAgcm9zeWJyb3duOiBbMTg4LCAxNDMsIDE0M10sXG4gIHJveWFsYmx1ZTogWzY1LCAxMDUsIDIyNV0sXG4gIHNhZGRsZWJyb3duOiBbMTM5LCA2OSwgMTldLFxuICBzYWxtb246IFsyNTAsIDEyOCwgMTE0XSxcbiAgc2FuZHlicm93bjogWzI0NCwgMTY0LCA5Nl0sXG4gIHNlYWdyZWVuOiBbNDYsIDEzOSwgODddLFxuICBzZWFzaGVsbDogWzI1NSwgMjQ1LCAyMzhdLFxuICBzaWVubmE6IFsxNjAsIDgyLCA0NV0sXG4gIHNpbHZlcjogWzE5MiwgMTkyLCAxOTJdLFxuICBza3libHVlOiBbMTM1LCAyMDYsIDIzNV0sXG4gIHNsYXRlYmx1ZTogWzEwNiwgOTAsIDIwNV0sXG4gIHNsYXRlZ3JheTogWzExMiwgMTI4LCAxNDRdLFxuICBzbGF0ZWdyZXk6IFsxMTIsIDEyOCwgMTQ0XSxcbiAgc25vdzogWzI1NSwgMjUwLCAyNTBdLFxuICBzcHJpbmdncmVlbjogWzAsIDI1NSwgMTI3XSxcbiAgc3RlZWxibHVlOiBbNzAsIDEzMCwgMTgwXSxcbiAgdGFuOiBbMjEwLCAxODAsIDE0MF0sXG4gIHRlYWw6IFswLCAxMjgsIDEyOF0sXG4gIHRoaXN0bGU6IFsyMTYsIDE5MSwgMjE2XSxcbiAgdG9tYXRvOiBbMjU1LCA5OSwgNzFdLFxuICB0dXJxdW9pc2U6IFs2NCwgMjI0LCAyMDhdLFxuICB2aW9sZXQ6IFsyMzgsIDEzMCwgMjM4XSxcbiAgd2hlYXQ6IFsyNDUsIDIyMiwgMTc5XSxcbiAgd2hpdGU6IFsyNTUsIDI1NSwgMjU1XSxcbiAgd2hpdGVzbW9rZTogWzI0NSwgMjQ1LCAyNDVdLFxuICB5ZWxsb3c6IFsyNTUsIDI1NSwgMF0sXG4gIHllbGxvd2dyZWVuOiBbMTU0LCAyMDUsIDUwXVxufTtcblxuLy8gc2V0cyB0aGUgdmFsdWUgaW4gYSBtYXAgKG1hcCBtYXkgbm90IGJlIGJ1aWx0KVxudmFyIHNldE1hcCA9IGZ1bmN0aW9uIHNldE1hcChvcHRpb25zKSB7XG4gIHZhciBvYmogPSBvcHRpb25zLm1hcDtcbiAgdmFyIGtleXMgPSBvcHRpb25zLmtleXM7XG4gIHZhciBsID0ga2V5cy5sZW5ndGg7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgaWYgKHBsYWluT2JqZWN0KGtleSkpIHtcbiAgICAgIHRocm93IEVycm9yKCdUcmllZCB0byBzZXQgbWFwIHdpdGggb2JqZWN0IGtleScpO1xuICAgIH1cbiAgICBpZiAoaSA8IGtleXMubGVuZ3RoIC0gMSkge1xuICAgICAgLy8gZXh0ZW5kIHRoZSBtYXAgaWYgbmVjZXNzYXJ5XG4gICAgICBpZiAob2JqW2tleV0gPT0gbnVsbCkge1xuICAgICAgICBvYmpba2V5XSA9IHt9O1xuICAgICAgfVxuICAgICAgb2JqID0gb2JqW2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHNldCB0aGUgdmFsdWVcbiAgICAgIG9ialtrZXldID0gb3B0aW9ucy52YWx1ZTtcbiAgICB9XG4gIH1cbn07XG5cbi8vIGdldHMgdGhlIHZhbHVlIGluIGEgbWFwIGV2ZW4gaWYgaXQncyBub3QgYnVpbHQgaW4gcGxhY2VzXG52YXIgZ2V0TWFwID0gZnVuY3Rpb24gZ2V0TWFwKG9wdGlvbnMpIHtcbiAgdmFyIG9iaiA9IG9wdGlvbnMubWFwO1xuICB2YXIga2V5cyA9IG9wdGlvbnMua2V5cztcbiAgdmFyIGwgPSBrZXlzLmxlbmd0aDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBpZiAocGxhaW5PYmplY3Qoa2V5KSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1RyaWVkIHRvIGdldCBtYXAgd2l0aCBvYmplY3Qga2V5Jyk7XG4gICAgfVxuICAgIG9iaiA9IG9ialtrZXldO1xuICAgIGlmIChvYmogPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgdGhlXG4gKiBbbGFuZ3VhZ2UgdHlwZV0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMpXG4gKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3Qoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KF8ubm9vcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xufVxuXG52YXIgaXNPYmplY3RfMSA9IGlzT2JqZWN0O1xuXG52YXIgY29tbW9uanNHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWxUaGlzIDogdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyA/IHNlbGYgOiB7fTtcblxuZnVuY3Rpb24gY3JlYXRlQ29tbW9uanNNb2R1bGUoZm4sIG1vZHVsZSkge1xuXHRyZXR1cm4gbW9kdWxlID0geyBleHBvcnRzOiB7fSB9LCBmbihtb2R1bGUsIG1vZHVsZS5leHBvcnRzKSwgbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBjb21tb25qc0dsb2JhbCA9PSAnb2JqZWN0JyAmJiBjb21tb25qc0dsb2JhbCAmJiBjb21tb25qc0dsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBjb21tb25qc0dsb2JhbDtcblxudmFyIF9mcmVlR2xvYmFsID0gZnJlZUdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gX2ZyZWVHbG9iYWwgfHwgZnJlZVNlbGYgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblxudmFyIF9yb290ID0gcm9vdDtcblxuLyoqXG4gKiBHZXRzIHRoZSB0aW1lc3RhbXAgb2YgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBoYXZlIGVsYXBzZWQgc2luY2VcbiAqIHRoZSBVbml4IGVwb2NoICgxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMi40LjBcbiAqIEBjYXRlZ29yeSBEYXRlXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSB0aW1lc3RhbXAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uZGVmZXIoZnVuY3Rpb24oc3RhbXApIHtcbiAqICAgY29uc29sZS5sb2coXy5ub3coKSAtIHN0YW1wKTtcbiAqIH0sIF8ubm93KCkpO1xuICogLy8gPT4gTG9ncyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpdCB0b29rIGZvciB0aGUgZGVmZXJyZWQgaW52b2NhdGlvbi5cbiAqL1xudmFyIG5vdyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gX3Jvb3QuRGF0ZS5ub3coKTtcbn07XG5cbnZhciBub3dfMSA9IG5vdztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggYSBzaW5nbGUgd2hpdGVzcGFjZSBjaGFyYWN0ZXIuICovXG52YXIgcmVXaGl0ZXNwYWNlID0gL1xccy87XG5cbi8qKlxuICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbUVuZGAgdG8gZ2V0IHRoZSBpbmRleCBvZiB0aGUgbGFzdCBub24td2hpdGVzcGFjZVxuICogY2hhcmFjdGVyIG9mIGBzdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rlci5cbiAqL1xuZnVuY3Rpb24gdHJpbW1lZEVuZEluZGV4KHN0cmluZykge1xuICB2YXIgaW5kZXggPSBzdHJpbmcubGVuZ3RoO1xuXG4gIHdoaWxlIChpbmRleC0tICYmIHJlV2hpdGVzcGFjZS50ZXN0KHN0cmluZy5jaGFyQXQoaW5kZXgpKSkge31cbiAgcmV0dXJuIGluZGV4O1xufVxuXG52YXIgX3RyaW1tZWRFbmRJbmRleCA9IHRyaW1tZWRFbmRJbmRleDtcblxuLyoqIFVzZWQgdG8gbWF0Y2ggbGVhZGluZyB3aGl0ZXNwYWNlLiAqL1xudmFyIHJlVHJpbVN0YXJ0ID0gL15cXHMrLztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50cmltYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB0cmltbWVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRyaW0oc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmdcbiAgICA/IHN0cmluZy5zbGljZSgwLCBfdHJpbW1lZEVuZEluZGV4KHN0cmluZykgKyAxKS5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJylcbiAgICA6IHN0cmluZztcbn1cblxudmFyIF9iYXNlVHJpbSA9IGJhc2VUcmltO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wkMSA9IF9yb290LlN5bWJvbDtcblxudmFyIF9TeW1ib2wgPSBTeW1ib2wkMTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvJDUgPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSQ0ID0gb2JqZWN0UHJvdG8kNS5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nJDEgPSBvYmplY3RQcm90byQ1LnRvU3RyaW5nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyQxID0gX1N5bWJvbCA/IF9TeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByYXcgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gIHZhciBpc093biA9IGhhc093blByb3BlcnR5JDQuY2FsbCh2YWx1ZSwgc3ltVG9TdHJpbmdUYWckMSksXG4gICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZyQxXTtcblxuICB0cnkge1xuICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnJDFdID0gdW5kZWZpbmVkO1xuICAgIHZhciB1bm1hc2tlZCA9IHRydWU7XG4gIH0gY2F0Y2ggKGUpIHt9XG5cbiAgdmFyIHJlc3VsdCA9IG5hdGl2ZU9iamVjdFRvU3RyaW5nJDEuY2FsbCh2YWx1ZSk7XG4gIGlmICh1bm1hc2tlZCkge1xuICAgIGlmIChpc093bikge1xuICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWckMV0gPSB0YWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZyQxXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxudmFyIF9nZXRSYXdUYWcgPSBnZXRSYXdUYWc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byQ0ID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8kNC50b1N0cmluZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIHVzaW5nIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIG9iamVjdFRvU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbn1cblxudmFyIF9vYmplY3RUb1N0cmluZyA9IG9iamVjdFRvU3RyaW5nO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgbnVsbFRhZyA9ICdbb2JqZWN0IE51bGxdJyxcbiAgICB1bmRlZmluZWRUYWcgPSAnW29iamVjdCBVbmRlZmluZWRdJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBfU3ltYm9sID8gX1N5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYCB3aXRob3V0IGZhbGxiYWNrcyBmb3IgYnVnZ3kgZW52aXJvbm1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gIH1cbiAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgID8gX2dldFJhd1RhZyh2YWx1ZSlcbiAgICA6IF9vYmplY3RUb1N0cmluZyh2YWx1ZSk7XG59XG5cbnZhciBfYmFzZUdldFRhZyA9IGJhc2VHZXRUYWc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG52YXIgaXNPYmplY3RMaWtlXzEgPSBpc09iamVjdExpa2U7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN5bWJvbGAgcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN5bWJvbCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzU3ltYm9sKFN5bWJvbC5pdGVyYXRvcik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1N5bWJvbCgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N5bWJvbCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzeW1ib2wnIHx8XG4gICAgKGlzT2JqZWN0TGlrZV8xKHZhbHVlKSAmJiBfYmFzZUdldFRhZyh2YWx1ZSkgPT0gc3ltYm9sVGFnKTtcbn1cblxudmFyIGlzU3ltYm9sXzEgPSBpc1N5bWJvbDtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTkFOID0gMCAvIDA7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgbnVtYmVyLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvTnVtYmVyKDMuMik7XG4gKiAvLyA9PiAzLjJcbiAqXG4gKiBfLnRvTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gNWUtMzI0XG4gKlxuICogXy50b051bWJlcihJbmZpbml0eSk7XG4gKiAvLyA9PiBJbmZpbml0eVxuICpcbiAqIF8udG9OdW1iZXIoJzMuMicpO1xuICogLy8gPT4gMy4yXG4gKi9cbmZ1bmN0aW9uIHRvTnVtYmVyKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKGlzU3ltYm9sXzEodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3RfMSh2YWx1ZSkpIHtcbiAgICB2YXIgb3RoZXIgPSB0eXBlb2YgdmFsdWUudmFsdWVPZiA9PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7XG4gICAgdmFsdWUgPSBpc09iamVjdF8xKG90aGVyKSA/IChvdGhlciArICcnKSA6IG90aGVyO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6ICt2YWx1ZTtcbiAgfVxuICB2YWx1ZSA9IF9iYXNlVHJpbSh2YWx1ZSk7XG4gIHZhciBpc0JpbmFyeSA9IHJlSXNCaW5hcnkudGVzdCh2YWx1ZSk7XG4gIHJldHVybiAoaXNCaW5hcnkgfHwgcmVJc09jdGFsLnRlc3QodmFsdWUpKVxuICAgID8gZnJlZVBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCBpc0JpbmFyeSA/IDIgOiA4KVxuICAgIDogKHJlSXNCYWRIZXgudGVzdCh2YWx1ZSkgPyBOQU4gOiArdmFsdWUpO1xufVxuXG52YXIgdG9OdW1iZXJfMSA9IHRvTnVtYmVyO1xuXG4vKiogRXJyb3IgbWVzc2FnZSBjb25zdGFudHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUJDEgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heCxcbiAgICBuYXRpdmVNaW4gPSBNYXRoLm1pbjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZGVib3VuY2VkIGZ1bmN0aW9uIHRoYXQgZGVsYXlzIGludm9raW5nIGBmdW5jYCB1bnRpbCBhZnRlciBgd2FpdGBcbiAqIG1pbGxpc2Vjb25kcyBoYXZlIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgdGltZSB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHdhc1xuICogaW52b2tlZC4gVGhlIGRlYm91bmNlZCBmdW5jdGlvbiBjb21lcyB3aXRoIGEgYGNhbmNlbGAgbWV0aG9kIHRvIGNhbmNlbFxuICogZGVsYXllZCBgZnVuY2AgaW52b2NhdGlvbnMgYW5kIGEgYGZsdXNoYCBtZXRob2QgdG8gaW1tZWRpYXRlbHkgaW52b2tlIHRoZW0uXG4gKiBQcm92aWRlIGBvcHRpb25zYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGBmdW5jYCBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGVcbiAqIGxlYWRpbmcgYW5kL29yIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YCB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWRcbiAqIHdpdGggdGhlIGxhc3QgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24uIFN1YnNlcXVlbnRcbiAqIGNhbGxzIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgXG4gKiBpbnZvY2F0aW9uLlxuICpcbiAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXNcbiAqIGludm9rZWQgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uXG4gKiBpcyBpbnZva2VkIG1vcmUgdGhhbiBvbmNlIGR1cmluZyB0aGUgYHdhaXRgIHRpbWVvdXQuXG4gKlxuICogSWYgYHdhaXRgIGlzIGAwYCBhbmQgYGxlYWRpbmdgIGlzIGBmYWxzZWAsIGBmdW5jYCBpbnZvY2F0aW9uIGlzIGRlZmVycmVkXG4gKiB1bnRpbCB0byB0aGUgbmV4dCB0aWNrLCBzaW1pbGFyIHRvIGBzZXRUaW1lb3V0YCB3aXRoIGEgdGltZW91dCBvZiBgMGAuXG4gKlxuICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vZGVib3VuY2luZy10aHJvdHRsaW5nLWV4cGxhaW5lZC1leGFtcGxlcy8pXG4gKiBmb3IgZGV0YWlscyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGBfLmRlYm91bmNlYCBhbmQgYF8udGhyb3R0bGVgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVib3VuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVhZGluZz1mYWxzZV1cbiAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4V2FpdF1cbiAqICBUaGUgbWF4aW11bSB0aW1lIGBmdW5jYCBpcyBhbGxvd2VkIHRvIGJlIGRlbGF5ZWQgYmVmb3JlIGl0J3MgaW52b2tlZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaWxpbmc9dHJ1ZV1cbiAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZGVib3VuY2VkIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiAvLyBBdm9pZCBjb3N0bHkgY2FsY3VsYXRpb25zIHdoaWxlIHRoZSB3aW5kb3cgc2l6ZSBpcyBpbiBmbHV4LlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3Jlc2l6ZScsIF8uZGVib3VuY2UoY2FsY3VsYXRlTGF5b3V0LCAxNTApKTtcbiAqXG4gKiAvLyBJbnZva2UgYHNlbmRNYWlsYCB3aGVuIGNsaWNrZWQsIGRlYm91bmNpbmcgc3Vic2VxdWVudCBjYWxscy5cbiAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCBfLmRlYm91bmNlKHNlbmRNYWlsLCAzMDAsIHtcbiAqICAgJ2xlYWRpbmcnOiB0cnVlLFxuICogICAndHJhaWxpbmcnOiBmYWxzZVxuICogfSkpO1xuICpcbiAqIC8vIEVuc3VyZSBgYmF0Y2hMb2dgIGlzIGludm9rZWQgb25jZSBhZnRlciAxIHNlY29uZCBvZiBkZWJvdW5jZWQgY2FsbHMuXG4gKiB2YXIgZGVib3VuY2VkID0gXy5kZWJvdW5jZShiYXRjaExvZywgMjUwLCB7ICdtYXhXYWl0JzogMTAwMCB9KTtcbiAqIHZhciBzb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2UoJy9zdHJlYW0nKTtcbiAqIGpRdWVyeShzb3VyY2UpLm9uKCdtZXNzYWdlJywgZGVib3VuY2VkKTtcbiAqXG4gKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIGRlYm91bmNlZCBpbnZvY2F0aW9uLlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3BvcHN0YXRlJywgZGVib3VuY2VkLmNhbmNlbCk7XG4gKi9cbmZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgdmFyIGxhc3RBcmdzLFxuICAgICAgbGFzdFRoaXMsXG4gICAgICBtYXhXYWl0LFxuICAgICAgcmVzdWx0LFxuICAgICAgdGltZXJJZCxcbiAgICAgIGxhc3RDYWxsVGltZSxcbiAgICAgIGxhc3RJbnZva2VUaW1lID0gMCxcbiAgICAgIGxlYWRpbmcgPSBmYWxzZSxcbiAgICAgIG1heGluZyA9IGZhbHNlLFxuICAgICAgdHJhaWxpbmcgPSB0cnVlO1xuXG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQkMSk7XG4gIH1cbiAgd2FpdCA9IHRvTnVtYmVyXzEod2FpdCkgfHwgMDtcbiAgaWYgKGlzT2JqZWN0XzEob3B0aW9ucykpIHtcbiAgICBsZWFkaW5nID0gISFvcHRpb25zLmxlYWRpbmc7XG4gICAgbWF4aW5nID0gJ21heFdhaXQnIGluIG9wdGlvbnM7XG4gICAgbWF4V2FpdCA9IG1heGluZyA/IG5hdGl2ZU1heCh0b051bWJlcl8xKG9wdGlvbnMubWF4V2FpdCkgfHwgMCwgd2FpdCkgOiBtYXhXYWl0O1xuICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VGdW5jKHRpbWUpIHtcbiAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgLy8gUmVzZXQgYW55IGBtYXhXYWl0YCB0aW1lci5cbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsXG4gICAgICAgIHRpbWVXYWl0aW5nID0gd2FpdCAtIHRpbWVTaW5jZUxhc3RDYWxsO1xuXG4gICAgcmV0dXJuIG1heGluZ1xuICAgICAgPyBuYXRpdmVNaW4odGltZVdhaXRpbmcsIG1heFdhaXQgLSB0aW1lU2luY2VMYXN0SW52b2tlKVxuICAgICAgOiB0aW1lV2FpdGluZztcbiAgfVxuXG4gIGZ1bmN0aW9uIHNob3VsZEludm9rZSh0aW1lKSB7XG4gICAgdmFyIHRpbWVTaW5jZUxhc3RDYWxsID0gdGltZSAtIGxhc3RDYWxsVGltZSxcbiAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZTtcblxuICAgIC8vIEVpdGhlciB0aGlzIGlzIHRoZSBmaXJzdCBjYWxsLCBhY3Rpdml0eSBoYXMgc3RvcHBlZCBhbmQgd2UncmUgYXQgdGhlXG4gICAgLy8gdHJhaWxpbmcgZWRnZSwgdGhlIHN5c3RlbSB0aW1lIGhhcyBnb25lIGJhY2t3YXJkcyBhbmQgd2UncmUgdHJlYXRpbmdcbiAgICAvLyBpdCBhcyB0aGUgdHJhaWxpbmcgZWRnZSwgb3Igd2UndmUgaGl0IHRoZSBgbWF4V2FpdGAgbGltaXQuXG4gICAgcmV0dXJuIChsYXN0Q2FsbFRpbWUgPT09IHVuZGVmaW5lZCB8fCAodGltZVNpbmNlTGFzdENhbGwgPj0gd2FpdCkgfHxcbiAgICAgICh0aW1lU2luY2VMYXN0Q2FsbCA8IDApIHx8IChtYXhpbmcgJiYgdGltZVNpbmNlTGFzdEludm9rZSA+PSBtYXhXYWl0KSk7XG4gIH1cblxuICBmdW5jdGlvbiB0aW1lckV4cGlyZWQoKSB7XG4gICAgdmFyIHRpbWUgPSBub3dfMSgpO1xuICAgIGlmIChzaG91bGRJbnZva2UodGltZSkpIHtcbiAgICAgIHJldHVybiB0cmFpbGluZ0VkZ2UodGltZSk7XG4gICAgfVxuICAgIC8vIFJlc3RhcnQgdGhlIHRpbWVyLlxuICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgcmVtYWluaW5nV2FpdCh0aW1lKSk7XG4gIH1cblxuICBmdW5jdGlvbiB0cmFpbGluZ0VkZ2UodGltZSkge1xuICAgIHRpbWVySWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBPbmx5IGludm9rZSBpZiB3ZSBoYXZlIGBsYXN0QXJnc2Agd2hpY2ggbWVhbnMgYGZ1bmNgIGhhcyBiZWVuXG4gICAgLy8gZGVib3VuY2VkIGF0IGxlYXN0IG9uY2UuXG4gICAgaWYgKHRyYWlsaW5nICYmIGxhc3RBcmdzKSB7XG4gICAgICByZXR1cm4gaW52b2tlRnVuYyh0aW1lKTtcbiAgICB9XG4gICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gY2FuY2VsKCkge1xuICAgIGlmICh0aW1lcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICB9XG4gICAgbGFzdEludm9rZVRpbWUgPSAwO1xuICAgIGxhc3RBcmdzID0gbGFzdENhbGxUaW1lID0gbGFzdFRoaXMgPSB0aW1lcklkID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgcmV0dXJuIHRpbWVySWQgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IHRyYWlsaW5nRWRnZShub3dfMSgpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vd18xKCksXG4gICAgICAgIGlzSW52b2tpbmcgPSBzaG91bGRJbnZva2UodGltZSk7XG5cbiAgICBsYXN0QXJncyA9IGFyZ3VtZW50cztcbiAgICBsYXN0VGhpcyA9IHRoaXM7XG4gICAgbGFzdENhbGxUaW1lID0gdGltZTtcblxuICAgIGlmIChpc0ludm9raW5nKSB7XG4gICAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBsZWFkaW5nRWRnZShsYXN0Q2FsbFRpbWUpO1xuICAgICAgfVxuICAgICAgaWYgKG1heGluZykge1xuICAgICAgICAvLyBIYW5kbGUgaW52b2NhdGlvbnMgaW4gYSB0aWdodCBsb29wLlxuICAgICAgICBjbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgICAgIHJldHVybiBpbnZva2VGdW5jKGxhc3RDYWxsVGltZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aW1lcklkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgZGVib3VuY2VkLmNhbmNlbCA9IGNhbmNlbDtcbiAgZGVib3VuY2VkLmZsdXNoID0gZmx1c2g7XG4gIHJldHVybiBkZWJvdW5jZWQ7XG59XG5cbnZhciBkZWJvdW5jZV8xID0gZGVib3VuY2U7XG5cbnZhciBwZXJmb3JtYW5jZSA9IF93aW5kb3cgPyBfd2luZG93LnBlcmZvcm1hbmNlIDogbnVsbDtcbnZhciBwbm93ID0gcGVyZm9ybWFuY2UgJiYgcGVyZm9ybWFuY2Uubm93ID8gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gcGVyZm9ybWFuY2Uubm93KCk7XG59IDogZnVuY3Rpb24gKCkge1xuICByZXR1cm4gRGF0ZS5ub3coKTtcbn07XG52YXIgcmFmID0gZnVuY3Rpb24gKCkge1xuICBpZiAoX3dpbmRvdykge1xuICAgIGlmIChfd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChmbikge1xuICAgICAgICBfd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmbik7XG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoX3dpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgX3dpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZm4pO1xuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKF93aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIF93aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZuKTtcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChfd2luZG93Lm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIF93aW5kb3cubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZm4pO1xuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uIChmbikge1xuICAgIGlmIChmbikge1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZuKHBub3coKSk7XG4gICAgICB9LCAxMDAwIC8gNjApO1xuICAgIH1cbiAgfTtcbn0oKTtcbnZhciByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZm4pIHtcbiAgcmV0dXJuIHJhZihmbik7XG59O1xudmFyIHBlcmZvcm1hbmNlTm93ID0gcG5vdztcblxudmFyIERFRkFVTFRfSEFTSF9TRUVEID0gOTI2MTtcbnZhciBLID0gNjU1OTk7IC8vIDM3IGFsc28gd29ya3MgcHJldHR5IHdlbGxcbnZhciBERUZBVUxUX0hBU0hfU0VFRF9BTFQgPSA1MzgxO1xudmFyIGhhc2hJdGVyYWJsZUludHMgPSBmdW5jdGlvbiBoYXNoSXRlcmFibGVJbnRzKGl0ZXJhdG9yKSB7XG4gIHZhciBzZWVkID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBERUZBVUxUX0hBU0hfU0VFRDtcbiAgLy8gc2RibS9zdHJpbmctaGFzaFxuICB2YXIgaGFzaCA9IHNlZWQ7XG4gIHZhciBlbnRyeTtcbiAgZm9yICg7Oykge1xuICAgIGVudHJ5ID0gaXRlcmF0b3IubmV4dCgpO1xuICAgIGlmIChlbnRyeS5kb25lKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaGFzaCA9IGhhc2ggKiBLICsgZW50cnkudmFsdWUgfCAwO1xuICB9XG4gIHJldHVybiBoYXNoO1xufTtcbnZhciBoYXNoSW50ID0gZnVuY3Rpb24gaGFzaEludChudW0pIHtcbiAgdmFyIHNlZWQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IERFRkFVTFRfSEFTSF9TRUVEO1xuICAvLyBzZGJtL3N0cmluZy1oYXNoXG4gIHJldHVybiBzZWVkICogSyArIG51bSB8IDA7XG59O1xudmFyIGhhc2hJbnRBbHQgPSBmdW5jdGlvbiBoYXNoSW50QWx0KG51bSkge1xuICB2YXIgc2VlZCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogREVGQVVMVF9IQVNIX1NFRURfQUxUO1xuICAvLyBkamIyL3N0cmluZy1oYXNoXG4gIHJldHVybiAoc2VlZCA8PCA1KSArIHNlZWQgKyBudW0gfCAwO1xufTtcbnZhciBjb21iaW5lSGFzaGVzID0gZnVuY3Rpb24gY29tYmluZUhhc2hlcyhoYXNoMSwgaGFzaDIpIHtcbiAgcmV0dXJuIGhhc2gxICogMHgyMDAwMDAgKyBoYXNoMjtcbn07XG52YXIgY29tYmluZUhhc2hlc0FycmF5ID0gZnVuY3Rpb24gY29tYmluZUhhc2hlc0FycmF5KGhhc2hlcykge1xuICByZXR1cm4gaGFzaGVzWzBdICogMHgyMDAwMDAgKyBoYXNoZXNbMV07XG59O1xudmFyIGhhc2hBcnJheXMgPSBmdW5jdGlvbiBoYXNoQXJyYXlzKGhhc2hlczEsIGhhc2hlczIpIHtcbiAgcmV0dXJuIFtoYXNoSW50KGhhc2hlczFbMF0sIGhhc2hlczJbMF0pLCBoYXNoSW50QWx0KGhhc2hlczFbMV0sIGhhc2hlczJbMV0pXTtcbn07XG52YXIgaGFzaEludHNBcnJheSA9IGZ1bmN0aW9uIGhhc2hJbnRzQXJyYXkoaW50cywgc2VlZCkge1xuICB2YXIgZW50cnkgPSB7XG4gICAgdmFsdWU6IDAsXG4gICAgZG9uZTogZmFsc2VcbiAgfTtcbiAgdmFyIGkgPSAwO1xuICB2YXIgbGVuZ3RoID0gaW50cy5sZW5ndGg7XG4gIHZhciBpdGVyYXRvciA9IHtcbiAgICBuZXh0OiBmdW5jdGlvbiBuZXh0KCkge1xuICAgICAgaWYgKGkgPCBsZW5ndGgpIHtcbiAgICAgICAgZW50cnkudmFsdWUgPSBpbnRzW2krK107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnRyeS5kb25lID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbnRyeTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBoYXNoSXRlcmFibGVJbnRzKGl0ZXJhdG9yLCBzZWVkKTtcbn07XG52YXIgaGFzaFN0cmluZyA9IGZ1bmN0aW9uIGhhc2hTdHJpbmcoc3RyLCBzZWVkKSB7XG4gIHZhciBlbnRyeSA9IHtcbiAgICB2YWx1ZTogMCxcbiAgICBkb25lOiBmYWxzZVxuICB9O1xuICB2YXIgaSA9IDA7XG4gIHZhciBsZW5ndGggPSBzdHIubGVuZ3RoO1xuICB2YXIgaXRlcmF0b3IgPSB7XG4gICAgbmV4dDogZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgIGlmIChpIDwgbGVuZ3RoKSB7XG4gICAgICAgIGVudHJ5LnZhbHVlID0gc3RyLmNoYXJDb2RlQXQoaSsrKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVudHJ5LmRvbmUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGhhc2hJdGVyYWJsZUludHMoaXRlcmF0b3IsIHNlZWQpO1xufTtcbnZhciBoYXNoU3RyaW5ncyA9IGZ1bmN0aW9uIGhhc2hTdHJpbmdzKCkge1xuICByZXR1cm4gaGFzaFN0cmluZ3NBcnJheShhcmd1bWVudHMpO1xufTtcbnZhciBoYXNoU3RyaW5nc0FycmF5ID0gZnVuY3Rpb24gaGFzaFN0cmluZ3NBcnJheShzdHJzKSB7XG4gIHZhciBoYXNoO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc3RyID0gc3Ryc1tpXTtcbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgaGFzaCA9IGhhc2hTdHJpbmcoc3RyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFzaCA9IGhhc2hTdHJpbmcoc3RyLCBoYXNoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGhhc2g7XG59O1xuXG4vKmdsb2JhbCBjb25zb2xlICovXG52YXIgd2FybmluZ3NFbmFibGVkID0gdHJ1ZTtcbnZhciB3YXJuU3VwcG9ydGVkID0gY29uc29sZS53YXJuICE9IG51bGw7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxudmFyIHRyYWNlU3VwcG9ydGVkID0gY29uc29sZS50cmFjZSAhPSBudWxsOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcblxudmFyIE1BWF9JTlQkMSA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIHx8IDkwMDcxOTkyNTQ3NDA5OTE7XG52YXIgdHJ1ZWlmeSA9IGZ1bmN0aW9uIHRydWVpZnkoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBmYWxzaWZ5ID0gZnVuY3Rpb24gZmFsc2lmeSgpIHtcbiAgcmV0dXJuIGZhbHNlO1xufTtcbnZhciB6ZXJvaWZ5ID0gZnVuY3Rpb24gemVyb2lmeSgpIHtcbiAgcmV0dXJuIDA7XG59O1xudmFyIG5vb3AkMSA9IGZ1bmN0aW9uIG5vb3AoKSB7fTtcbnZhciBlcnJvciA9IGZ1bmN0aW9uIGVycm9yKG1zZykge1xuICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbn07XG52YXIgd2FybmluZ3MgPSBmdW5jdGlvbiB3YXJuaW5ncyhlbmFibGVkKSB7XG4gIGlmIChlbmFibGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICB3YXJuaW5nc0VuYWJsZWQgPSAhIWVuYWJsZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHdhcm5pbmdzRW5hYmxlZDtcbiAgfVxufTtcbnZhciB3YXJuID0gZnVuY3Rpb24gd2Fybihtc2cpIHtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuICBpZiAoIXdhcm5pbmdzKCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHdhcm5TdXBwb3J0ZWQpIHtcbiAgICBjb25zb2xlLndhcm4obXNnKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyhtc2cpO1xuICAgIGlmICh0cmFjZVN1cHBvcnRlZCkge1xuICAgICAgY29uc29sZS50cmFjZSgpO1xuICAgIH1cbiAgfVxufTsgLyogZXNsaW50LWVuYWJsZSAqL1xuXG52YXIgY2xvbmUgPSBmdW5jdGlvbiBjbG9uZShvYmopIHtcbiAgcmV0dXJuIGV4dGVuZCh7fSwgb2JqKTtcbn07XG5cbi8vIGdldHMgYSBzaGFsbG93IGNvcHkgb2YgdGhlIGFyZ3VtZW50XG52YXIgY29weSA9IGZ1bmN0aW9uIGNvcHkob2JqKSB7XG4gIGlmIChvYmogPT0gbnVsbCkge1xuICAgIHJldHVybiBvYmo7XG4gIH1cbiAgaWYgKGFycmF5KG9iaikpIHtcbiAgICByZXR1cm4gb2JqLnNsaWNlKCk7XG4gIH0gZWxzZSBpZiAocGxhaW5PYmplY3Qob2JqKSkge1xuICAgIHJldHVybiBjbG9uZShvYmopO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBvYmo7XG4gIH1cbn07XG52YXIgY29weUFycmF5JDEgPSBmdW5jdGlvbiBjb3B5QXJyYXkoYXJyKSB7XG4gIHJldHVybiBhcnIuc2xpY2UoKTtcbn07XG52YXIgdXVpZCA9IGZ1bmN0aW9uIHV1aWQoYSwgYiAvKiBwbGFjZWhvbGRlcnMgKi8pIHtcbiAgZm9yIChcbiAgLy8gbG9vcCA6KVxuICBiID0gYSA9ICcnO1xuICAvLyBiIC0gcmVzdWx0ICwgYSAtIG51bWVyaWMgbGV0aWFibGVcbiAgYSsrIDwgMzY7XG4gIC8vXG4gIGIgKz0gYSAqIDUxICYgNTIgLy8gaWYgXCJhXCIgaXMgbm90IDkgb3IgMTQgb3IgMTkgb3IgMjRcbiAgP1xuICAvLyAgcmV0dXJuIGEgcmFuZG9tIG51bWJlciBvciA0XG4gIChhIF4gMTUgLy8gaWYgXCJhXCIgaXMgbm90IDE1XG4gID9cbiAgLy8gZ2VuZXJhdGUgYSByYW5kb20gbnVtYmVyIGZyb20gMCB0byAxNVxuICA4IF4gTWF0aC5yYW5kb20oKSAqIChhIF4gMjAgPyAxNiA6IDQpIC8vIHVubGVzcyBcImFcIiBpcyAyMCwgaW4gd2hpY2ggY2FzZSBhIHJhbmRvbSBudW1iZXIgZnJvbSA4IHRvIDExXG4gIDogNCAvLyAgb3RoZXJ3aXNlIDRcbiAgKS50b1N0cmluZygxNikgOiAnLScgLy8gIGluIG90aGVyIGNhc2VzIChpZiBcImFcIiBpcyA5LDE0LDE5LDI0KSBpbnNlcnQgXCItXCJcbiAgKSB7XG4gIH1cbiAgcmV0dXJuIGI7XG59O1xudmFyIF9zdGF0aWNFbXB0eU9iamVjdCA9IHt9O1xudmFyIHN0YXRpY0VtcHR5T2JqZWN0ID0gZnVuY3Rpb24gc3RhdGljRW1wdHlPYmplY3QoKSB7XG4gIHJldHVybiBfc3RhdGljRW1wdHlPYmplY3Q7XG59O1xudmFyIGRlZmF1bHRzJGcgPSBmdW5jdGlvbiBkZWZhdWx0cyhfZGVmYXVsdHMpIHtcbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhfZGVmYXVsdHMpO1xuICByZXR1cm4gZnVuY3Rpb24gKG9wdHMpIHtcbiAgICB2YXIgZmlsbGVkT3B0cyA9IHt9O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICB2YXIgb3B0VmFsID0gb3B0cyA9PSBudWxsID8gdW5kZWZpbmVkIDogb3B0c1trZXldO1xuICAgICAgZmlsbGVkT3B0c1trZXldID0gb3B0VmFsID09PSB1bmRlZmluZWQgPyBfZGVmYXVsdHNba2V5XSA6IG9wdFZhbDtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGxlZE9wdHM7XG4gIH07XG59O1xudmFyIHJlbW92ZUZyb21BcnJheSA9IGZ1bmN0aW9uIHJlbW92ZUZyb21BcnJheShhcnIsIGVsZSwgb25lQ29weSkge1xuICBmb3IgKHZhciBpID0gYXJyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYgKGFycltpXSA9PT0gZWxlKSB7XG4gICAgICBhcnIuc3BsaWNlKGksIDEpO1xuICAgICAgaWYgKG9uZUNvcHkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xudmFyIGNsZWFyQXJyYXkgPSBmdW5jdGlvbiBjbGVhckFycmF5KGFycikge1xuICBhcnIuc3BsaWNlKDAsIGFyci5sZW5ndGgpO1xufTtcbnZhciBwdXNoID0gZnVuY3Rpb24gcHVzaChhcnIsIG90aGVyQXJyKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgb3RoZXJBcnIubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZWwgPSBvdGhlckFycltpXTtcbiAgICBhcnIucHVzaChlbCk7XG4gIH1cbn07XG52YXIgZ2V0UHJlZml4ZWRQcm9wZXJ0eSA9IGZ1bmN0aW9uIGdldFByZWZpeGVkUHJvcGVydHkob2JqLCBwcm9wTmFtZSwgcHJlZml4KSB7XG4gIGlmIChwcmVmaXgpIHtcbiAgICBwcm9wTmFtZSA9IHByZXBlbmRDYW1lbChwcmVmaXgsIHByb3BOYW1lKTsgLy8gZS5nLiAobGFiZWxXaWR0aCwgc291cmNlKSA9PiBzb3VyY2VMYWJlbFdpZHRoXG4gIH1cblxuICByZXR1cm4gb2JqW3Byb3BOYW1lXTtcbn07XG52YXIgc2V0UHJlZml4ZWRQcm9wZXJ0eSA9IGZ1bmN0aW9uIHNldFByZWZpeGVkUHJvcGVydHkob2JqLCBwcm9wTmFtZSwgcHJlZml4LCB2YWx1ZSkge1xuICBpZiAocHJlZml4KSB7XG4gICAgcHJvcE5hbWUgPSBwcmVwZW5kQ2FtZWwocHJlZml4LCBwcm9wTmFtZSk7IC8vIGUuZy4gKGxhYmVsV2lkdGgsIHNvdXJjZSkgPT4gc291cmNlTGFiZWxXaWR0aFxuICB9XG5cbiAgb2JqW3Byb3BOYW1lXSA9IHZhbHVlO1xufTtcblxuLyogZ2xvYmFsIE1hcCAqL1xudmFyIE9iamVjdE1hcCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIE9iamVjdE1hcCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgT2JqZWN0TWFwKTtcbiAgICB0aGlzLl9vYmogPSB7fTtcbiAgfVxuICBfY3JlYXRlQ2xhc3MoT2JqZWN0TWFwLCBbe1xuICAgIGtleTogXCJzZXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0KGtleSwgdmFsKSB7XG4gICAgICB0aGlzLl9vYmpba2V5XSA9IHZhbDtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkZWxldGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gX2RlbGV0ZShrZXkpIHtcbiAgICAgIHRoaXMuX29ialtrZXldID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNsZWFyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgICAgdGhpcy5fb2JqID0ge307XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImhhc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXMoa2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5fb2JqW2tleV0gIT09IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldChrZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vYmpba2V5XTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIE9iamVjdE1hcDtcbn0oKTtcbnZhciBNYXAkMiA9IHR5cGVvZiBNYXAgIT09ICd1bmRlZmluZWQnID8gTWFwIDogT2JqZWN0TWFwO1xuXG4vKiBnbG9iYWwgU2V0ICovXG5cbnZhciB1bmRlZiA9IFwidW5kZWZpbmVkXCIgO1xudmFyIE9iamVjdFNldCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIE9iamVjdFNldChhcnJheU9yT2JqZWN0U2V0KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE9iamVjdFNldCk7XG4gICAgdGhpcy5fb2JqID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLnNpemUgPSAwO1xuICAgIGlmIChhcnJheU9yT2JqZWN0U2V0ICE9IG51bGwpIHtcbiAgICAgIHZhciBhcnI7XG4gICAgICBpZiAoYXJyYXlPck9iamVjdFNldC5pbnN0YW5jZVN0cmluZyAhPSBudWxsICYmIGFycmF5T3JPYmplY3RTZXQuaW5zdGFuY2VTdHJpbmcoKSA9PT0gdGhpcy5pbnN0YW5jZVN0cmluZygpKSB7XG4gICAgICAgIGFyciA9IGFycmF5T3JPYmplY3RTZXQudG9BcnJheSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXJyID0gYXJyYXlPck9iamVjdFNldDtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuYWRkKGFycltpXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIF9jcmVhdGVDbGFzcyhPYmplY3RTZXQsIFt7XG4gICAga2V5OiBcImluc3RhbmNlU3RyaW5nXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGluc3RhbmNlU3RyaW5nKCkge1xuICAgICAgcmV0dXJuICdzZXQnO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJhZGRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkKHZhbCkge1xuICAgICAgdmFyIG8gPSB0aGlzLl9vYmo7XG4gICAgICBpZiAob1t2YWxdICE9PSAxKSB7XG4gICAgICAgIG9bdmFsXSA9IDE7XG4gICAgICAgIHRoaXMuc2l6ZSsrO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkZWxldGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gX2RlbGV0ZSh2YWwpIHtcbiAgICAgIHZhciBvID0gdGhpcy5fb2JqO1xuICAgICAgaWYgKG9bdmFsXSA9PT0gMSkge1xuICAgICAgICBvW3ZhbF0gPSAwO1xuICAgICAgICB0aGlzLnNpemUtLTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY2xlYXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY2xlYXIoKSB7XG4gICAgICB0aGlzLl9vYmogPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFzKHZhbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29ialt2YWxdID09PSAxO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ0b0FycmF5XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHRvQXJyYXkoKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX29iaikuZmlsdGVyKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmhhcyhrZXkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImZvckVhY2hcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZykge1xuICAgICAgcmV0dXJuIHRoaXMudG9BcnJheSgpLmZvckVhY2goY2FsbGJhY2ssIHRoaXNBcmcpO1xuICAgIH1cbiAgfV0pO1xuICByZXR1cm4gT2JqZWN0U2V0O1xufSgpO1xudmFyIFNldCQxID0gKHR5cGVvZiBTZXQgPT09IFwidW5kZWZpbmVkXCIgPyBcInVuZGVmaW5lZFwiIDogX3R5cGVvZihTZXQpKSAhPT0gdW5kZWYgPyBTZXQgOiBPYmplY3RTZXQ7XG5cbi8vIHJlcHJlc2VudHMgYSBub2RlIG9yIGFuIGVkZ2VcbnZhciBFbGVtZW50ID0gZnVuY3Rpb24gRWxlbWVudChjeSwgcGFyYW1zKSB7XG4gIHZhciByZXN0b3JlID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB0cnVlO1xuICBpZiAoY3kgPT09IHVuZGVmaW5lZCB8fCBwYXJhbXMgPT09IHVuZGVmaW5lZCB8fCAhY29yZShjeSkpIHtcbiAgICBlcnJvcignQW4gZWxlbWVudCBtdXN0IGhhdmUgYSBjb3JlIHJlZmVyZW5jZSBhbmQgcGFyYW1ldGVycyBzZXQnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIGdyb3VwID0gcGFyYW1zLmdyb3VwO1xuXG4gIC8vIHRyeSB0byBhdXRvbWF0aWNhbGx5IGluZmVyIHRoZSBncm91cCBpZiB1bnNwZWNpZmllZFxuICBpZiAoZ3JvdXAgPT0gbnVsbCkge1xuICAgIGlmIChwYXJhbXMuZGF0YSAmJiBwYXJhbXMuZGF0YS5zb3VyY2UgIT0gbnVsbCAmJiBwYXJhbXMuZGF0YS50YXJnZXQgIT0gbnVsbCkge1xuICAgICAgZ3JvdXAgPSAnZWRnZXMnO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cCA9ICdub2Rlcyc7XG4gICAgfVxuICB9XG5cbiAgLy8gdmFsaWRhdGUgZ3JvdXBcbiAgaWYgKGdyb3VwICE9PSAnbm9kZXMnICYmIGdyb3VwICE9PSAnZWRnZXMnKSB7XG4gICAgZXJyb3IoJ0FuIGVsZW1lbnQgbXVzdCBiZSBvZiB0eXBlIGBub2Rlc2Agb3IgYGVkZ2VzYDsgeW91IHNwZWNpZmllZCBgJyArIGdyb3VwICsgJ2AnKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBtYWtlIHRoZSBlbGVtZW50IGFycmF5LWxpa2UsIGp1c3QgbGlrZSBhIGNvbGxlY3Rpb25cbiAgdGhpcy5sZW5ndGggPSAxO1xuICB0aGlzWzBdID0gdGhpcztcblxuICAvLyBOT1RFOiB3aGVuIHNvbWV0aGluZyBpcyBhZGRlZCBoZXJlLCBhZGQgYWxzbyB0byBlbGUuanNvbigpXG4gIHZhciBfcCA9IHRoaXMuX3ByaXZhdGUgPSB7XG4gICAgY3k6IGN5LFxuICAgIHNpbmdsZTogdHJ1ZSxcbiAgICAvLyBpbmRpY2F0ZXMgdGhpcyBpcyBhbiBlbGVtZW50XG4gICAgZGF0YTogcGFyYW1zLmRhdGEgfHwge30sXG4gICAgLy8gZGF0YSBvYmplY3RcbiAgICBwb3NpdGlvbjogcGFyYW1zLnBvc2l0aW9uIHx8IHtcbiAgICAgIHg6IDAsXG4gICAgICB5OiAwXG4gICAgfSxcbiAgICAvLyAoeCwgeSkgcG9zaXRpb24gcGFpclxuICAgIGF1dG9XaWR0aDogdW5kZWZpbmVkLFxuICAgIC8vIHdpZHRoIGFuZCBoZWlnaHQgb2Ygbm9kZXMgY2FsY3VsYXRlZCBieSB0aGUgcmVuZGVyZXIgd2hlbiBzZXQgdG8gc3BlY2lhbCAnYXV0bycgdmFsdWVcbiAgICBhdXRvSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgYXV0b1BhZGRpbmc6IHVuZGVmaW5lZCxcbiAgICBjb21wb3VuZEJvdW5kc0NsZWFuOiBmYWxzZSxcbiAgICAvLyB3aGV0aGVyIHRoZSBjb21wb3VuZCBkaW1lbnNpb25zIG5lZWQgdG8gYmUgcmVjYWxjdWxhdGVkIHRoZSBuZXh0IHRpbWUgZGltZW5zaW9ucyBhcmUgcmVhZFxuICAgIGxpc3RlbmVyczogW10sXG4gICAgLy8gYXJyYXkgb2YgYm91bmQgbGlzdGVuZXJzXG4gICAgZ3JvdXA6IGdyb3VwLFxuICAgIC8vIHN0cmluZzsgJ25vZGVzJyBvciAnZWRnZXMnXG4gICAgc3R5bGU6IHt9LFxuICAgIC8vIHByb3BlcnRpZXMgYXMgc2V0IGJ5IHRoZSBzdHlsZVxuICAgIHJzdHlsZToge30sXG4gICAgLy8gcHJvcGVydGllcyBmb3Igc3R5bGUgc2VudCBmcm9tIHRoZSByZW5kZXJlciB0byB0aGUgY29yZVxuICAgIHN0eWxlQ3h0czogW10sXG4gICAgLy8gYXBwbGllZCBzdHlsZSBjb250ZXh0cyBmcm9tIHRoZSBzdHlsZXJcbiAgICBzdHlsZUtleXM6IHt9LFxuICAgIC8vIHBlci1ncm91cCBrZXlzIG9mIHN0eWxlIHByb3BlcnR5IHZhbHVlc1xuICAgIHJlbW92ZWQ6IHRydWUsXG4gICAgLy8gd2hldGhlciBpdCdzIGluc2lkZSB0aGUgdmlzOyB0cnVlIGlmIHJlbW92ZWQgKHNldCB0cnVlIGhlcmUgc2luY2Ugd2UgY2FsbCByZXN0b3JlKVxuICAgIHNlbGVjdGVkOiBwYXJhbXMuc2VsZWN0ZWQgPyB0cnVlIDogZmFsc2UsXG4gICAgLy8gd2hldGhlciBpdCdzIHNlbGVjdGVkXG4gICAgc2VsZWN0YWJsZTogcGFyYW1zLnNlbGVjdGFibGUgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBwYXJhbXMuc2VsZWN0YWJsZSA/IHRydWUgOiBmYWxzZSxcbiAgICAvLyB3aGV0aGVyIGl0J3Mgc2VsZWN0YWJsZVxuICAgIGxvY2tlZDogcGFyYW1zLmxvY2tlZCA/IHRydWUgOiBmYWxzZSxcbiAgICAvLyB3aGV0aGVyIHRoZSBlbGVtZW50IGlzIGxvY2tlZCAoY2Fubm90IGJlIG1vdmVkKVxuICAgIGdyYWJiZWQ6IGZhbHNlLFxuICAgIC8vIHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgZ3JhYmJlZCBieSB0aGUgbW91c2U7IHJlbmRlcmVyIHNldHMgdGhpcyBwcml2YXRlbHlcbiAgICBncmFiYmFibGU6IHBhcmFtcy5ncmFiYmFibGUgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBwYXJhbXMuZ3JhYmJhYmxlID8gdHJ1ZSA6IGZhbHNlLFxuICAgIC8vIHdoZXRoZXIgdGhlIGVsZW1lbnQgY2FuIGJlIGdyYWJiZWRcbiAgICBwYW5uYWJsZTogcGFyYW1zLnBhbm5hYmxlID09PSB1bmRlZmluZWQgPyBncm91cCA9PT0gJ2VkZ2VzJyA/IHRydWUgOiBmYWxzZSA6IHBhcmFtcy5wYW5uYWJsZSA/IHRydWUgOiBmYWxzZSxcbiAgICAvLyB3aGV0aGVyIHRoZSBlbGVtZW50IGhhcyBwYXNzdGhyb3VnaCBwYW5uaW5nIGVuYWJsZWRcbiAgICBhY3RpdmU6IGZhbHNlLFxuICAgIC8vIHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgYWN0aXZlIGZyb20gdXNlciBpbnRlcmFjdGlvblxuICAgIGNsYXNzZXM6IG5ldyBTZXQkMSgpLFxuICAgIC8vIG1hcCAoIGNsYXNzTmFtZSA9PiB0cnVlIClcbiAgICBhbmltYXRpb246IHtcbiAgICAgIC8vIG9iamVjdCBmb3IgY3VycmVudGx5LXJ1bm5pbmcgYW5pbWF0aW9uc1xuICAgICAgY3VycmVudDogW10sXG4gICAgICBxdWV1ZTogW11cbiAgICB9LFxuICAgIHJzY3JhdGNoOiB7fSxcbiAgICAvLyBvYmplY3QgaW4gd2hpY2ggdGhlIHJlbmRlcmVyIGNhbiBzdG9yZSBpbmZvcm1hdGlvblxuICAgIHNjcmF0Y2g6IHBhcmFtcy5zY3JhdGNoIHx8IHt9LFxuICAgIC8vIHNjcmF0Y2ggb2JqZWN0c1xuICAgIGVkZ2VzOiBbXSxcbiAgICAvLyBhcnJheSBvZiBjb25uZWN0ZWQgZWRnZXNcbiAgICBjaGlsZHJlbjogW10sXG4gICAgLy8gYXJyYXkgb2YgY2hpbGRyZW5cbiAgICBwYXJlbnQ6IHBhcmFtcy5wYXJlbnQgJiYgcGFyYW1zLnBhcmVudC5pc05vZGUoKSA/IHBhcmFtcy5wYXJlbnQgOiBudWxsLFxuICAgIC8vIHBhcmVudCByZWZcbiAgICB0cmF2ZXJzYWxDYWNoZToge30sXG4gICAgLy8gY2FjaGUgb2Ygb3V0cHV0IG9mIHRyYXZlcnNhbCBmdW5jdGlvbnNcbiAgICBiYWNrZ3JvdW5kaW5nOiBmYWxzZSxcbiAgICAvLyB3aGV0aGVyIGJhY2tncm91bmQgaW1hZ2VzIGFyZSBsb2FkaW5nXG4gICAgYmJDYWNoZTogbnVsbCxcbiAgICAvLyBjYWNoZSBvZiB0aGUgY3VycmVudCBib3VuZGluZyBib3hcbiAgICBiYkNhY2hlU2hpZnQ6IHtcbiAgICAgIHg6IDAsXG4gICAgICB5OiAwXG4gICAgfSxcbiAgICAvLyBzaGlmdCBhcHBsaWVkIHRvIGNhY2hlZCBiYiB0byBiZSBhcHBsaWVkIG9uIG5leHQgZ2V0XG4gICAgYm9keUJvdW5kczogbnVsbCxcbiAgICAvLyBib3VuZHMgY2FjaGUgb2YgZWxlbWVudCBib2R5LCB3L28gb3ZlcmxheVxuICAgIG92ZXJsYXlCb3VuZHM6IG51bGwsXG4gICAgLy8gYm91bmRzIGNhY2hlIG9mIGVsZW1lbnQgYm9keSwgaW5jbHVkaW5nIG92ZXJsYXlcbiAgICBsYWJlbEJvdW5kczoge1xuICAgICAgLy8gYm91bmRzIGNhY2hlIG9mIGxhYmVsc1xuICAgICAgYWxsOiBudWxsLFxuICAgICAgc291cmNlOiBudWxsLFxuICAgICAgdGFyZ2V0OiBudWxsLFxuICAgICAgbWFpbjogbnVsbFxuICAgIH0sXG4gICAgYXJyb3dCb3VuZHM6IHtcbiAgICAgIC8vIGJvdW5kcyBjYWNoZSBvZiBlZGdlIGFycm93c1xuICAgICAgc291cmNlOiBudWxsLFxuICAgICAgdGFyZ2V0OiBudWxsLFxuICAgICAgJ21pZC1zb3VyY2UnOiBudWxsLFxuICAgICAgJ21pZC10YXJnZXQnOiBudWxsXG4gICAgfVxuICB9O1xuICBpZiAoX3AucG9zaXRpb24ueCA9PSBudWxsKSB7XG4gICAgX3AucG9zaXRpb24ueCA9IDA7XG4gIH1cbiAgaWYgKF9wLnBvc2l0aW9uLnkgPT0gbnVsbCkge1xuICAgIF9wLnBvc2l0aW9uLnkgPSAwO1xuICB9XG5cbiAgLy8gcmVuZGVyZWRQb3NpdGlvbiBvdmVycmlkZXMgaWYgc3BlY2lmaWVkXG4gIGlmIChwYXJhbXMucmVuZGVyZWRQb3NpdGlvbikge1xuICAgIHZhciBycG9zID0gcGFyYW1zLnJlbmRlcmVkUG9zaXRpb247XG4gICAgdmFyIHBhbiA9IGN5LnBhbigpO1xuICAgIHZhciB6b29tID0gY3kuem9vbSgpO1xuICAgIF9wLnBvc2l0aW9uID0ge1xuICAgICAgeDogKHJwb3MueCAtIHBhbi54KSAvIHpvb20sXG4gICAgICB5OiAocnBvcy55IC0gcGFuLnkpIC8gem9vbVxuICAgIH07XG4gIH1cbiAgdmFyIGNsYXNzZXMgPSBbXTtcbiAgaWYgKGFycmF5KHBhcmFtcy5jbGFzc2VzKSkge1xuICAgIGNsYXNzZXMgPSBwYXJhbXMuY2xhc3NlcztcbiAgfSBlbHNlIGlmIChzdHJpbmcocGFyYW1zLmNsYXNzZXMpKSB7XG4gICAgY2xhc3NlcyA9IHBhcmFtcy5jbGFzc2VzLnNwbGl0KC9cXHMrLyk7XG4gIH1cbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBjbGFzc2VzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHZhciBjbHMgPSBjbGFzc2VzW2ldO1xuICAgIGlmICghY2xzIHx8IGNscyA9PT0gJycpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBfcC5jbGFzc2VzLmFkZChjbHMpO1xuICB9XG4gIHRoaXMuY3JlYXRlRW1pdHRlcigpO1xuICB2YXIgYnlwYXNzID0gcGFyYW1zLnN0eWxlIHx8IHBhcmFtcy5jc3M7XG4gIGlmIChieXBhc3MpIHtcbiAgICB3YXJuKCdTZXR0aW5nIGEgYHN0eWxlYCBieXBhc3MgYXQgZWxlbWVudCBjcmVhdGlvbiBzaG91bGQgYmUgZG9uZSBvbmx5IHdoZW4gYWJzb2x1dGVseSBuZWNlc3NhcnkuICBUcnkgdG8gdXNlIHRoZSBzdHlsZXNoZWV0IGluc3RlYWQuJyk7XG4gICAgdGhpcy5zdHlsZShieXBhc3MpO1xuICB9XG4gIGlmIChyZXN0b3JlID09PSB1bmRlZmluZWQgfHwgcmVzdG9yZSkge1xuICAgIHRoaXMucmVzdG9yZSgpO1xuICB9XG59O1xuXG52YXIgZGVmaW5lU2VhcmNoID0gZnVuY3Rpb24gZGVmaW5lU2VhcmNoKHBhcmFtcykge1xuICBwYXJhbXMgPSB7XG4gICAgYmZzOiBwYXJhbXMuYmZzIHx8ICFwYXJhbXMuZGZzLFxuICAgIGRmczogcGFyYW1zLmRmcyB8fCAhcGFyYW1zLmJmc1xuICB9O1xuXG4gIC8vIGZyb20gcHNldWRvY29kZSBvbiB3aWtpcGVkaWFcbiAgcmV0dXJuIGZ1bmN0aW9uIHNlYXJjaEZuKHJvb3RzLCBmbiwgZGlyZWN0ZWQpIHtcbiAgICB2YXIgb3B0aW9ucztcbiAgICBpZiAocGxhaW5PYmplY3Qocm9vdHMpICYmICFlbGVtZW50T3JDb2xsZWN0aW9uKHJvb3RzKSkge1xuICAgICAgb3B0aW9ucyA9IHJvb3RzO1xuICAgICAgcm9vdHMgPSBvcHRpb25zLnJvb3RzIHx8IG9wdGlvbnMucm9vdDtcbiAgICAgIGZuID0gb3B0aW9ucy52aXNpdDtcbiAgICAgIGRpcmVjdGVkID0gb3B0aW9ucy5kaXJlY3RlZDtcbiAgICB9XG4gICAgZGlyZWN0ZWQgPSBhcmd1bWVudHMubGVuZ3RoID09PSAyICYmICFmbiQ2KGZuKSA/IGZuIDogZGlyZWN0ZWQ7XG4gICAgZm4gPSBmbiQ2KGZuKSA/IGZuIDogZnVuY3Rpb24gKCkge307XG4gICAgdmFyIGN5ID0gdGhpcy5fcHJpdmF0ZS5jeTtcbiAgICB2YXIgdiA9IHJvb3RzID0gc3RyaW5nKHJvb3RzKSA/IHRoaXMuZmlsdGVyKHJvb3RzKSA6IHJvb3RzO1xuICAgIHZhciBRID0gW107XG4gICAgdmFyIGNvbm5lY3RlZE5vZGVzID0gW107XG4gICAgdmFyIGNvbm5lY3RlZEJ5ID0ge307XG4gICAgdmFyIGlkMmRlcHRoID0ge307XG4gICAgdmFyIFYgPSB7fTtcbiAgICB2YXIgaiA9IDA7XG4gICAgdmFyIGZvdW5kO1xuICAgIHZhciBfdGhpcyRieUdyb3VwID0gdGhpcy5ieUdyb3VwKCksXG4gICAgICBub2RlcyA9IF90aGlzJGJ5R3JvdXAubm9kZXMsXG4gICAgICBlZGdlcyA9IF90aGlzJGJ5R3JvdXAuZWRnZXM7XG5cbiAgICAvLyBlbnF1ZXVlIHZcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHYubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB2aSA9IHZbaV07XG4gICAgICB2YXIgdmlJZCA9IHZpLmlkKCk7XG4gICAgICBpZiAodmkuaXNOb2RlKCkpIHtcbiAgICAgICAgUS51bnNoaWZ0KHZpKTtcbiAgICAgICAgaWYgKHBhcmFtcy5iZnMpIHtcbiAgICAgICAgICBWW3ZpSWRdID0gdHJ1ZTtcbiAgICAgICAgICBjb25uZWN0ZWROb2Rlcy5wdXNoKHZpKTtcbiAgICAgICAgfVxuICAgICAgICBpZDJkZXB0aFt2aUlkXSA9IDA7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKCkge1xuICAgICAgdmFyIHYgPSBwYXJhbXMuYmZzID8gUS5zaGlmdCgpIDogUS5wb3AoKTtcbiAgICAgIHZhciB2SWQgPSB2LmlkKCk7XG4gICAgICBpZiAocGFyYW1zLmRmcykge1xuICAgICAgICBpZiAoVlt2SWRdKSB7XG4gICAgICAgICAgcmV0dXJuIFwiY29udGludWVcIjtcbiAgICAgICAgfVxuICAgICAgICBWW3ZJZF0gPSB0cnVlO1xuICAgICAgICBjb25uZWN0ZWROb2Rlcy5wdXNoKHYpO1xuICAgICAgfVxuICAgICAgdmFyIGRlcHRoID0gaWQyZGVwdGhbdklkXTtcbiAgICAgIHZhciBwcmV2RWRnZSA9IGNvbm5lY3RlZEJ5W3ZJZF07XG4gICAgICB2YXIgc3JjID0gcHJldkVkZ2UgIT0gbnVsbCA/IHByZXZFZGdlLnNvdXJjZSgpIDogbnVsbDtcbiAgICAgIHZhciB0Z3QgPSBwcmV2RWRnZSAhPSBudWxsID8gcHJldkVkZ2UudGFyZ2V0KCkgOiBudWxsO1xuICAgICAgdmFyIHByZXZOb2RlID0gcHJldkVkZ2UgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IHYuc2FtZShzcmMpID8gdGd0WzBdIDogc3JjWzBdO1xuICAgICAgdmFyIHJldCA9IHZvaWQgMDtcbiAgICAgIHJldCA9IGZuKHYsIHByZXZFZGdlLCBwcmV2Tm9kZSwgaisrLCBkZXB0aCk7XG4gICAgICBpZiAocmV0ID09PSB0cnVlKSB7XG4gICAgICAgIGZvdW5kID0gdjtcbiAgICAgICAgcmV0dXJuIFwiYnJlYWtcIjtcbiAgICAgIH1cbiAgICAgIGlmIChyZXQgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBcImJyZWFrXCI7XG4gICAgICB9XG4gICAgICB2YXIgdndFZGdlcyA9IHYuY29ubmVjdGVkRWRnZXMoKS5maWx0ZXIoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgcmV0dXJuICghZGlyZWN0ZWQgfHwgZS5zb3VyY2UoKS5zYW1lKHYpKSAmJiBlZGdlcy5oYXMoZSk7XG4gICAgICB9KTtcbiAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IHZ3RWRnZXMubGVuZ3RoOyBfaTIrKykge1xuICAgICAgICB2YXIgZSA9IHZ3RWRnZXNbX2kyXTtcbiAgICAgICAgdmFyIHcgPSBlLmNvbm5lY3RlZE5vZGVzKCkuZmlsdGVyKGZ1bmN0aW9uIChuKSB7XG4gICAgICAgICAgcmV0dXJuICFuLnNhbWUodikgJiYgbm9kZXMuaGFzKG4pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHdJZCA9IHcuaWQoKTtcbiAgICAgICAgaWYgKHcubGVuZ3RoICE9PSAwICYmICFWW3dJZF0pIHtcbiAgICAgICAgICB3ID0gd1swXTtcbiAgICAgICAgICBRLnB1c2godyk7XG4gICAgICAgICAgaWYgKHBhcmFtcy5iZnMpIHtcbiAgICAgICAgICAgIFZbd0lkXSA9IHRydWU7XG4gICAgICAgICAgICBjb25uZWN0ZWROb2Rlcy5wdXNoKHcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25uZWN0ZWRCeVt3SWRdID0gZTtcbiAgICAgICAgICBpZDJkZXB0aFt3SWRdID0gaWQyZGVwdGhbdklkXSArIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHdoaWxlIChRLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdmFyIF9yZXQgPSBfbG9vcCgpO1xuICAgICAgaWYgKF9yZXQgPT09IFwiY29udGludWVcIikgY29udGludWU7XG4gICAgICBpZiAoX3JldCA9PT0gXCJicmVha1wiKSBicmVhaztcbiAgICB9XG4gICAgdmFyIGNvbm5lY3RlZEVsZXMgPSBjeS5jb2xsZWN0aW9uKCk7XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGNvbm5lY3RlZE5vZGVzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIG5vZGUgPSBjb25uZWN0ZWROb2Rlc1tfaV07XG4gICAgICB2YXIgZWRnZSA9IGNvbm5lY3RlZEJ5W25vZGUuaWQoKV07XG4gICAgICBpZiAoZWRnZSAhPSBudWxsKSB7XG4gICAgICAgIGNvbm5lY3RlZEVsZXMucHVzaChlZGdlKTtcbiAgICAgIH1cbiAgICAgIGNvbm5lY3RlZEVsZXMucHVzaChub2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGg6IGN5LmNvbGxlY3Rpb24oY29ubmVjdGVkRWxlcyksXG4gICAgICBmb3VuZDogY3kuY29sbGVjdGlvbihmb3VuZClcbiAgICB9O1xuICB9O1xufTtcblxuLy8gc2VhcmNoLCBzcGFubmluZyB0cmVlcywgZXRjXG52YXIgZWxlc2ZuJHYgPSB7XG4gIGJyZWFkdGhGaXJzdFNlYXJjaDogZGVmaW5lU2VhcmNoKHtcbiAgICBiZnM6IHRydWVcbiAgfSksXG4gIGRlcHRoRmlyc3RTZWFyY2g6IGRlZmluZVNlYXJjaCh7XG4gICAgZGZzOiB0cnVlXG4gIH0pXG59O1xuXG4vLyBuaWNlLCBzaG9ydCBtYXRoZW1hdGljYWwgYWxpYXNcbmVsZXNmbiR2LmJmcyA9IGVsZXNmbiR2LmJyZWFkdGhGaXJzdFNlYXJjaDtcbmVsZXNmbiR2LmRmcyA9IGVsZXNmbiR2LmRlcHRoRmlyc3RTZWFyY2g7XG5cbnZhciBoZWFwJDEgPSBjcmVhdGVDb21tb25qc01vZHVsZShmdW5jdGlvbiAobW9kdWxlLCBleHBvcnRzKSB7XG4vLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuOC4wXG4oZnVuY3Rpb24oKSB7XG4gIHZhciBIZWFwLCBkZWZhdWx0Q21wLCBmbG9vciwgaGVhcGlmeSwgaGVhcHBvcCwgaGVhcHB1c2gsIGhlYXBwdXNocG9wLCBoZWFwcmVwbGFjZSwgaW5zb3J0LCBtaW4sIG5sYXJnZXN0LCBuc21hbGxlc3QsIHVwZGF0ZUl0ZW0sIF9zaWZ0ZG93biwgX3NpZnR1cDtcblxuICBmbG9vciA9IE1hdGguZmxvb3IsIG1pbiA9IE1hdGgubWluO1xuXG5cbiAgLypcbiAgRGVmYXVsdCBjb21wYXJpc29uIGZ1bmN0aW9uIHRvIGJlIHVzZWRcbiAgICovXG5cbiAgZGVmYXVsdENtcCA9IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICBpZiAoeCA8IHkpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgaWYgKHggPiB5KSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH07XG5cblxuICAvKlxuICBJbnNlcnQgaXRlbSB4IGluIGxpc3QgYSwgYW5kIGtlZXAgaXQgc29ydGVkIGFzc3VtaW5nIGEgaXMgc29ydGVkLlxuICBcbiAgSWYgeCBpcyBhbHJlYWR5IGluIGEsIGluc2VydCBpdCB0byB0aGUgcmlnaHQgb2YgdGhlIHJpZ2h0bW9zdCB4LlxuICBcbiAgT3B0aW9uYWwgYXJncyBsbyAoZGVmYXVsdCAwKSBhbmQgaGkgKGRlZmF1bHQgYS5sZW5ndGgpIGJvdW5kIHRoZSBzbGljZVxuICBvZiBhIHRvIGJlIHNlYXJjaGVkLlxuICAgKi9cblxuICBpbnNvcnQgPSBmdW5jdGlvbihhLCB4LCBsbywgaGksIGNtcCkge1xuICAgIHZhciBtaWQ7XG4gICAgaWYgKGxvID09IG51bGwpIHtcbiAgICAgIGxvID0gMDtcbiAgICB9XG4gICAgaWYgKGNtcCA9PSBudWxsKSB7XG4gICAgICBjbXAgPSBkZWZhdWx0Q21wO1xuICAgIH1cbiAgICBpZiAobG8gPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xvIG11c3QgYmUgbm9uLW5lZ2F0aXZlJyk7XG4gICAgfVxuICAgIGlmIChoaSA9PSBudWxsKSB7XG4gICAgICBoaSA9IGEubGVuZ3RoO1xuICAgIH1cbiAgICB3aGlsZSAobG8gPCBoaSkge1xuICAgICAgbWlkID0gZmxvb3IoKGxvICsgaGkpIC8gMik7XG4gICAgICBpZiAoY21wKHgsIGFbbWlkXSkgPCAwKSB7XG4gICAgICAgIGhpID0gbWlkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG8gPSBtaWQgKyAxO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKFtdLnNwbGljZS5hcHBseShhLCBbbG8sIGxvIC0gbG9dLmNvbmNhdCh4KSksIHgpO1xuICB9O1xuXG5cbiAgLypcbiAgUHVzaCBpdGVtIG9udG8gaGVhcCwgbWFpbnRhaW5pbmcgdGhlIGhlYXAgaW52YXJpYW50LlxuICAgKi9cblxuICBoZWFwcHVzaCA9IGZ1bmN0aW9uKGFycmF5LCBpdGVtLCBjbXApIHtcbiAgICBpZiAoY21wID09IG51bGwpIHtcbiAgICAgIGNtcCA9IGRlZmF1bHRDbXA7XG4gICAgfVxuICAgIGFycmF5LnB1c2goaXRlbSk7XG4gICAgcmV0dXJuIF9zaWZ0ZG93bihhcnJheSwgMCwgYXJyYXkubGVuZ3RoIC0gMSwgY21wKTtcbiAgfTtcblxuXG4gIC8qXG4gIFBvcCB0aGUgc21hbGxlc3QgaXRlbSBvZmYgdGhlIGhlYXAsIG1haW50YWluaW5nIHRoZSBoZWFwIGludmFyaWFudC5cbiAgICovXG5cbiAgaGVhcHBvcCA9IGZ1bmN0aW9uKGFycmF5LCBjbXApIHtcbiAgICB2YXIgbGFzdGVsdCwgcmV0dXJuaXRlbTtcbiAgICBpZiAoY21wID09IG51bGwpIHtcbiAgICAgIGNtcCA9IGRlZmF1bHRDbXA7XG4gICAgfVxuICAgIGxhc3RlbHQgPSBhcnJheS5wb3AoKTtcbiAgICBpZiAoYXJyYXkubGVuZ3RoKSB7XG4gICAgICByZXR1cm5pdGVtID0gYXJyYXlbMF07XG4gICAgICBhcnJheVswXSA9IGxhc3RlbHQ7XG4gICAgICBfc2lmdHVwKGFycmF5LCAwLCBjbXApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm5pdGVtID0gbGFzdGVsdDtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVybml0ZW07XG4gIH07XG5cblxuICAvKlxuICBQb3AgYW5kIHJldHVybiB0aGUgY3VycmVudCBzbWFsbGVzdCB2YWx1ZSwgYW5kIGFkZCB0aGUgbmV3IGl0ZW0uXG4gIFxuICBUaGlzIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gaGVhcHBvcCgpIGZvbGxvd2VkIGJ5IGhlYXBwdXNoKCksIGFuZCBjYW4gYmVcbiAgbW9yZSBhcHByb3ByaWF0ZSB3aGVuIHVzaW5nIGEgZml4ZWQgc2l6ZSBoZWFwLiBOb3RlIHRoYXQgdGhlIHZhbHVlXG4gIHJldHVybmVkIG1heSBiZSBsYXJnZXIgdGhhbiBpdGVtISBUaGF0IGNvbnN0cmFpbnMgcmVhc29uYWJsZSB1c2Ugb2ZcbiAgdGhpcyByb3V0aW5lIHVubGVzcyB3cml0dGVuIGFzIHBhcnQgb2YgYSBjb25kaXRpb25hbCByZXBsYWNlbWVudDpcbiAgICAgIGlmIGl0ZW0gPiBhcnJheVswXVxuICAgICAgICBpdGVtID0gaGVhcHJlcGxhY2UoYXJyYXksIGl0ZW0pXG4gICAqL1xuXG4gIGhlYXByZXBsYWNlID0gZnVuY3Rpb24oYXJyYXksIGl0ZW0sIGNtcCkge1xuICAgIHZhciByZXR1cm5pdGVtO1xuICAgIGlmIChjbXAgPT0gbnVsbCkge1xuICAgICAgY21wID0gZGVmYXVsdENtcDtcbiAgICB9XG4gICAgcmV0dXJuaXRlbSA9IGFycmF5WzBdO1xuICAgIGFycmF5WzBdID0gaXRlbTtcbiAgICBfc2lmdHVwKGFycmF5LCAwLCBjbXApO1xuICAgIHJldHVybiByZXR1cm5pdGVtO1xuICB9O1xuXG5cbiAgLypcbiAgRmFzdCB2ZXJzaW9uIG9mIGEgaGVhcHB1c2ggZm9sbG93ZWQgYnkgYSBoZWFwcG9wLlxuICAgKi9cblxuICBoZWFwcHVzaHBvcCA9IGZ1bmN0aW9uKGFycmF5LCBpdGVtLCBjbXApIHtcbiAgICB2YXIgX3JlZjtcbiAgICBpZiAoY21wID09IG51bGwpIHtcbiAgICAgIGNtcCA9IGRlZmF1bHRDbXA7XG4gICAgfVxuICAgIGlmIChhcnJheS5sZW5ndGggJiYgY21wKGFycmF5WzBdLCBpdGVtKSA8IDApIHtcbiAgICAgIF9yZWYgPSBbYXJyYXlbMF0sIGl0ZW1dLCBpdGVtID0gX3JlZlswXSwgYXJyYXlbMF0gPSBfcmVmWzFdO1xuICAgICAgX3NpZnR1cChhcnJheSwgMCwgY21wKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW07XG4gIH07XG5cblxuICAvKlxuICBUcmFuc2Zvcm0gbGlzdCBpbnRvIGEgaGVhcCwgaW4tcGxhY2UsIGluIE8oYXJyYXkubGVuZ3RoKSB0aW1lLlxuICAgKi9cblxuICBoZWFwaWZ5ID0gZnVuY3Rpb24oYXJyYXksIGNtcCkge1xuICAgIHZhciBpLCBfaSwgX2xlbiwgX3JlZjEsIF9yZXN1bHRzLCBfcmVzdWx0czE7XG4gICAgaWYgKGNtcCA9PSBudWxsKSB7XG4gICAgICBjbXAgPSBkZWZhdWx0Q21wO1xuICAgIH1cbiAgICBfcmVmMSA9IChmdW5jdGlvbigpIHtcbiAgICAgIF9yZXN1bHRzMSA9IFtdO1xuICAgICAgZm9yICh2YXIgX2ogPSAwLCBfcmVmID0gZmxvb3IoYXJyYXkubGVuZ3RoIC8gMik7IDAgPD0gX3JlZiA/IF9qIDwgX3JlZiA6IF9qID4gX3JlZjsgMCA8PSBfcmVmID8gX2orKyA6IF9qLS0peyBfcmVzdWx0czEucHVzaChfaik7IH1cbiAgICAgIHJldHVybiBfcmVzdWx0czE7XG4gICAgfSkuYXBwbHkodGhpcykucmV2ZXJzZSgpO1xuICAgIF9yZXN1bHRzID0gW107XG4gICAgZm9yIChfaSA9IDAsIF9sZW4gPSBfcmVmMS5sZW5ndGg7IF9pIDwgX2xlbjsgX2krKykge1xuICAgICAgaSA9IF9yZWYxW19pXTtcbiAgICAgIF9yZXN1bHRzLnB1c2goX3NpZnR1cChhcnJheSwgaSwgY21wKSk7XG4gICAgfVxuICAgIHJldHVybiBfcmVzdWx0cztcbiAgfTtcblxuXG4gIC8qXG4gIFVwZGF0ZSB0aGUgcG9zaXRpb24gb2YgdGhlIGdpdmVuIGl0ZW0gaW4gdGhlIGhlYXAuXG4gIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBldmVyeSB0aW1lIHRoZSBpdGVtIGlzIGJlaW5nIG1vZGlmaWVkLlxuICAgKi9cblxuICB1cGRhdGVJdGVtID0gZnVuY3Rpb24oYXJyYXksIGl0ZW0sIGNtcCkge1xuICAgIHZhciBwb3M7XG4gICAgaWYgKGNtcCA9PSBudWxsKSB7XG4gICAgICBjbXAgPSBkZWZhdWx0Q21wO1xuICAgIH1cbiAgICBwb3MgPSBhcnJheS5pbmRleE9mKGl0ZW0pO1xuICAgIGlmIChwb3MgPT09IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIF9zaWZ0ZG93bihhcnJheSwgMCwgcG9zLCBjbXApO1xuICAgIHJldHVybiBfc2lmdHVwKGFycmF5LCBwb3MsIGNtcCk7XG4gIH07XG5cblxuICAvKlxuICBGaW5kIHRoZSBuIGxhcmdlc3QgZWxlbWVudHMgaW4gYSBkYXRhc2V0LlxuICAgKi9cblxuICBubGFyZ2VzdCA9IGZ1bmN0aW9uKGFycmF5LCBuLCBjbXApIHtcbiAgICB2YXIgZWxlbSwgcmVzdWx0LCBfaSwgX2xlbiwgX3JlZjtcbiAgICBpZiAoY21wID09IG51bGwpIHtcbiAgICAgIGNtcCA9IGRlZmF1bHRDbXA7XG4gICAgfVxuICAgIHJlc3VsdCA9IGFycmF5LnNsaWNlKDAsIG4pO1xuICAgIGlmICghcmVzdWx0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaGVhcGlmeShyZXN1bHQsIGNtcCk7XG4gICAgX3JlZiA9IGFycmF5LnNsaWNlKG4pO1xuICAgIGZvciAoX2kgPSAwLCBfbGVuID0gX3JlZi5sZW5ndGg7IF9pIDwgX2xlbjsgX2krKykge1xuICAgICAgZWxlbSA9IF9yZWZbX2ldO1xuICAgICAgaGVhcHB1c2hwb3AocmVzdWx0LCBlbGVtLCBjbXApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LnNvcnQoY21wKS5yZXZlcnNlKCk7XG4gIH07XG5cblxuICAvKlxuICBGaW5kIHRoZSBuIHNtYWxsZXN0IGVsZW1lbnRzIGluIGEgZGF0YXNldC5cbiAgICovXG5cbiAgbnNtYWxsZXN0ID0gZnVuY3Rpb24oYXJyYXksIG4sIGNtcCkge1xuICAgIHZhciBlbGVtLCBsb3MsIHJlc3VsdCwgX2ksIF9qLCBfbGVuLCBfcmVmLCBfcmVmMSwgX3Jlc3VsdHM7XG4gICAgaWYgKGNtcCA9PSBudWxsKSB7XG4gICAgICBjbXAgPSBkZWZhdWx0Q21wO1xuICAgIH1cbiAgICBpZiAobiAqIDEwIDw9IGFycmF5Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0ID0gYXJyYXkuc2xpY2UoMCwgbikuc29ydChjbXApO1xuICAgICAgaWYgKCFyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBsb3MgPSByZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdO1xuICAgICAgX3JlZiA9IGFycmF5LnNsaWNlKG4pO1xuICAgICAgZm9yIChfaSA9IDAsIF9sZW4gPSBfcmVmLmxlbmd0aDsgX2kgPCBfbGVuOyBfaSsrKSB7XG4gICAgICAgIGVsZW0gPSBfcmVmW19pXTtcbiAgICAgICAgaWYgKGNtcChlbGVtLCBsb3MpIDwgMCkge1xuICAgICAgICAgIGluc29ydChyZXN1bHQsIGVsZW0sIDAsIG51bGwsIGNtcCk7XG4gICAgICAgICAgcmVzdWx0LnBvcCgpO1xuICAgICAgICAgIGxvcyA9IHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGhlYXBpZnkoYXJyYXksIGNtcCk7XG4gICAgX3Jlc3VsdHMgPSBbXTtcbiAgICBmb3IgKF9qID0gMCwgX3JlZjEgPSBtaW4obiwgYXJyYXkubGVuZ3RoKTsgMCA8PSBfcmVmMSA/IF9qIDwgX3JlZjEgOiBfaiA+IF9yZWYxOyAwIDw9IF9yZWYxID8gKytfaiA6IC0tX2opIHtcbiAgICAgIF9yZXN1bHRzLnB1c2goaGVhcHBvcChhcnJheSwgY21wKSk7XG4gICAgfVxuICAgIHJldHVybiBfcmVzdWx0cztcbiAgfTtcblxuICBfc2lmdGRvd24gPSBmdW5jdGlvbihhcnJheSwgc3RhcnRwb3MsIHBvcywgY21wKSB7XG4gICAgdmFyIG5ld2l0ZW0sIHBhcmVudCwgcGFyZW50cG9zO1xuICAgIGlmIChjbXAgPT0gbnVsbCkge1xuICAgICAgY21wID0gZGVmYXVsdENtcDtcbiAgICB9XG4gICAgbmV3aXRlbSA9IGFycmF5W3Bvc107XG4gICAgd2hpbGUgKHBvcyA+IHN0YXJ0cG9zKSB7XG4gICAgICBwYXJlbnRwb3MgPSAocG9zIC0gMSkgPj4gMTtcbiAgICAgIHBhcmVudCA9IGFycmF5W3BhcmVudHBvc107XG4gICAgICBpZiAoY21wKG5ld2l0ZW0sIHBhcmVudCkgPCAwKSB7XG4gICAgICAgIGFycmF5W3Bvc10gPSBwYXJlbnQ7XG4gICAgICAgIHBvcyA9IHBhcmVudHBvcztcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5W3Bvc10gPSBuZXdpdGVtO1xuICB9O1xuXG4gIF9zaWZ0dXAgPSBmdW5jdGlvbihhcnJheSwgcG9zLCBjbXApIHtcbiAgICB2YXIgY2hpbGRwb3MsIGVuZHBvcywgbmV3aXRlbSwgcmlnaHRwb3MsIHN0YXJ0cG9zO1xuICAgIGlmIChjbXAgPT0gbnVsbCkge1xuICAgICAgY21wID0gZGVmYXVsdENtcDtcbiAgICB9XG4gICAgZW5kcG9zID0gYXJyYXkubGVuZ3RoO1xuICAgIHN0YXJ0cG9zID0gcG9zO1xuICAgIG5ld2l0ZW0gPSBhcnJheVtwb3NdO1xuICAgIGNoaWxkcG9zID0gMiAqIHBvcyArIDE7XG4gICAgd2hpbGUgKGNoaWxkcG9zIDwgZW5kcG9zKSB7XG4gICAgICByaWdodHBvcyA9IGNoaWxkcG9zICsgMTtcbiAgICAgIGlmIChyaWdodHBvcyA8IGVuZHBvcyAmJiAhKGNtcChhcnJheVtjaGlsZHBvc10sIGFycmF5W3JpZ2h0cG9zXSkgPCAwKSkge1xuICAgICAgICBjaGlsZHBvcyA9IHJpZ2h0cG9zO1xuICAgICAgfVxuICAgICAgYXJyYXlbcG9zXSA9IGFycmF5W2NoaWxkcG9zXTtcbiAgICAgIHBvcyA9IGNoaWxkcG9zO1xuICAgICAgY2hpbGRwb3MgPSAyICogcG9zICsgMTtcbiAgICB9XG4gICAgYXJyYXlbcG9zXSA9IG5ld2l0ZW07XG4gICAgcmV0dXJuIF9zaWZ0ZG93bihhcnJheSwgc3RhcnRwb3MsIHBvcywgY21wKTtcbiAgfTtcblxuICBIZWFwID0gKGZ1bmN0aW9uKCkge1xuICAgIEhlYXAucHVzaCA9IGhlYXBwdXNoO1xuXG4gICAgSGVhcC5wb3AgPSBoZWFwcG9wO1xuXG4gICAgSGVhcC5yZXBsYWNlID0gaGVhcHJlcGxhY2U7XG5cbiAgICBIZWFwLnB1c2hwb3AgPSBoZWFwcHVzaHBvcDtcblxuICAgIEhlYXAuaGVhcGlmeSA9IGhlYXBpZnk7XG5cbiAgICBIZWFwLnVwZGF0ZUl0ZW0gPSB1cGRhdGVJdGVtO1xuXG4gICAgSGVhcC5ubGFyZ2VzdCA9IG5sYXJnZXN0O1xuXG4gICAgSGVhcC5uc21hbGxlc3QgPSBuc21hbGxlc3Q7XG5cbiAgICBmdW5jdGlvbiBIZWFwKGNtcCkge1xuICAgICAgdGhpcy5jbXAgPSBjbXAgIT0gbnVsbCA/IGNtcCA6IGRlZmF1bHRDbXA7XG4gICAgICB0aGlzLm5vZGVzID0gW107XG4gICAgfVxuXG4gICAgSGVhcC5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uKHgpIHtcbiAgICAgIHJldHVybiBoZWFwcHVzaCh0aGlzLm5vZGVzLCB4LCB0aGlzLmNtcCk7XG4gICAgfTtcblxuICAgIEhlYXAucHJvdG90eXBlLnBvcCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGhlYXBwb3AodGhpcy5ub2RlcywgdGhpcy5jbXApO1xuICAgIH07XG5cbiAgICBIZWFwLnByb3RvdHlwZS5wZWVrID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2Rlc1swXTtcbiAgICB9O1xuXG4gICAgSGVhcC5wcm90b3R5cGUuY29udGFpbnMgPSBmdW5jdGlvbih4KSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2Rlcy5pbmRleE9mKHgpICE9PSAtMTtcbiAgICB9O1xuXG4gICAgSGVhcC5wcm90b3R5cGUucmVwbGFjZSA9IGZ1bmN0aW9uKHgpIHtcbiAgICAgIHJldHVybiBoZWFwcmVwbGFjZSh0aGlzLm5vZGVzLCB4LCB0aGlzLmNtcCk7XG4gICAgfTtcblxuICAgIEhlYXAucHJvdG90eXBlLnB1c2hwb3AgPSBmdW5jdGlvbih4KSB7XG4gICAgICByZXR1cm4gaGVhcHB1c2hwb3AodGhpcy5ub2RlcywgeCwgdGhpcy5jbXApO1xuICAgIH07XG5cbiAgICBIZWFwLnByb3RvdHlwZS5oZWFwaWZ5ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gaGVhcGlmeSh0aGlzLm5vZGVzLCB0aGlzLmNtcCk7XG4gICAgfTtcblxuICAgIEhlYXAucHJvdG90eXBlLnVwZGF0ZUl0ZW0gPSBmdW5jdGlvbih4KSB7XG4gICAgICByZXR1cm4gdXBkYXRlSXRlbSh0aGlzLm5vZGVzLCB4LCB0aGlzLmNtcCk7XG4gICAgfTtcblxuICAgIEhlYXAucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2RlcyA9IFtdO1xuICAgIH07XG5cbiAgICBIZWFwLnByb3RvdHlwZS5lbXB0eSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMubm9kZXMubGVuZ3RoID09PSAwO1xuICAgIH07XG5cbiAgICBIZWFwLnByb3RvdHlwZS5zaXplID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2Rlcy5sZW5ndGg7XG4gICAgfTtcblxuICAgIEhlYXAucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgaGVhcDtcbiAgICAgIGhlYXAgPSBuZXcgSGVhcCgpO1xuICAgICAgaGVhcC5ub2RlcyA9IHRoaXMubm9kZXMuc2xpY2UoMCk7XG4gICAgICByZXR1cm4gaGVhcDtcbiAgICB9O1xuXG4gICAgSGVhcC5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMubm9kZXMuc2xpY2UoMCk7XG4gICAgfTtcblxuICAgIEhlYXAucHJvdG90eXBlLmluc2VydCA9IEhlYXAucHJvdG90eXBlLnB1c2g7XG5cbiAgICBIZWFwLnByb3RvdHlwZS50b3AgPSBIZWFwLnByb3RvdHlwZS5wZWVrO1xuXG4gICAgSGVhcC5wcm90b3R5cGUuZnJvbnQgPSBIZWFwLnByb3RvdHlwZS5wZWVrO1xuXG4gICAgSGVhcC5wcm90b3R5cGUuaGFzID0gSGVhcC5wcm90b3R5cGUuY29udGFpbnM7XG5cbiAgICBIZWFwLnByb3RvdHlwZS5jb3B5ID0gSGVhcC5wcm90b3R5cGUuY2xvbmU7XG5cbiAgICByZXR1cm4gSGVhcDtcblxuICB9KSgpO1xuXG4gIChmdW5jdGlvbihyb290LCBmYWN0b3J5KSB7XG4gICAge1xuICAgICAgcmV0dXJuIG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuICAgIH1cbiAgfSkodGhpcywgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIEhlYXA7XG4gIH0pO1xuXG59KS5jYWxsKGNvbW1vbmpzR2xvYmFsKTtcbn0pO1xuXG52YXIgaGVhcCA9IGhlYXAkMTtcblxudmFyIGRpamtzdHJhRGVmYXVsdHMgPSBkZWZhdWx0cyRnKHtcbiAgcm9vdDogbnVsbCxcbiAgd2VpZ2h0OiBmdW5jdGlvbiB3ZWlnaHQoZWRnZSkge1xuICAgIHJldHVybiAxO1xuICB9LFxuICBkaXJlY3RlZDogZmFsc2Vcbn0pO1xudmFyIGVsZXNmbiR1ID0ge1xuICBkaWprc3RyYTogZnVuY3Rpb24gZGlqa3N0cmEob3B0aW9ucykge1xuICAgIGlmICghcGxhaW5PYmplY3Qob3B0aW9ucykpIHtcbiAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgcm9vdDogYXJnc1swXSxcbiAgICAgICAgd2VpZ2h0OiBhcmdzWzFdLFxuICAgICAgICBkaXJlY3RlZDogYXJnc1syXVxuICAgICAgfTtcbiAgICB9XG4gICAgdmFyIF9kaWprc3RyYURlZmF1bHRzID0gZGlqa3N0cmFEZWZhdWx0cyhvcHRpb25zKSxcbiAgICAgIHJvb3QgPSBfZGlqa3N0cmFEZWZhdWx0cy5yb290LFxuICAgICAgd2VpZ2h0ID0gX2RpamtzdHJhRGVmYXVsdHMud2VpZ2h0LFxuICAgICAgZGlyZWN0ZWQgPSBfZGlqa3N0cmFEZWZhdWx0cy5kaXJlY3RlZDtcbiAgICB2YXIgZWxlcyA9IHRoaXM7XG4gICAgdmFyIHdlaWdodEZuID0gd2VpZ2h0O1xuICAgIHZhciBzb3VyY2UgPSBzdHJpbmcocm9vdCkgPyB0aGlzLmZpbHRlcihyb290KVswXSA6IHJvb3RbMF07XG4gICAgdmFyIGRpc3QgPSB7fTtcbiAgICB2YXIgcHJldiA9IHt9O1xuICAgIHZhciBrbm93bkRpc3QgPSB7fTtcbiAgICB2YXIgX3RoaXMkYnlHcm91cCA9IHRoaXMuYnlHcm91cCgpLFxuICAgICAgbm9kZXMgPSBfdGhpcyRieUdyb3VwLm5vZGVzLFxuICAgICAgZWRnZXMgPSBfdGhpcyRieUdyb3VwLmVkZ2VzO1xuICAgIGVkZ2VzLnVubWVyZ2VCeShmdW5jdGlvbiAoZWxlKSB7XG4gICAgICByZXR1cm4gZWxlLmlzTG9vcCgpO1xuICAgIH0pO1xuICAgIHZhciBnZXREaXN0ID0gZnVuY3Rpb24gZ2V0RGlzdChub2RlKSB7XG4gICAgICByZXR1cm4gZGlzdFtub2RlLmlkKCldO1xuICAgIH07XG4gICAgdmFyIHNldERpc3QgPSBmdW5jdGlvbiBzZXREaXN0KG5vZGUsIGQpIHtcbiAgICAgIGRpc3Rbbm9kZS5pZCgpXSA9IGQ7XG4gICAgICBRLnVwZGF0ZUl0ZW0obm9kZSk7XG4gICAgfTtcbiAgICB2YXIgUSA9IG5ldyBoZWFwKGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gZ2V0RGlzdChhKSAtIGdldERpc3QoYik7XG4gICAgfSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgIGRpc3Rbbm9kZS5pZCgpXSA9IG5vZGUuc2FtZShzb3VyY2UpID8gMCA6IEluZmluaXR5O1xuICAgICAgUS5wdXNoKG5vZGUpO1xuICAgIH1cbiAgICB2YXIgZGlzdEJldHdlZW4gPSBmdW5jdGlvbiBkaXN0QmV0d2Vlbih1LCB2KSB7XG4gICAgICB2YXIgdXZzID0gKGRpcmVjdGVkID8gdS5lZGdlc1RvKHYpIDogdS5lZGdlc1dpdGgodikpLmludGVyc2VjdChlZGdlcyk7XG4gICAgICB2YXIgc21hbGxlc3REaXN0YW5jZSA9IEluZmluaXR5O1xuICAgICAgdmFyIHNtYWxsZXN0RWRnZTtcbiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCB1dnMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHZhciBlZGdlID0gdXZzW19pXTtcbiAgICAgICAgdmFyIF93ZWlnaHQgPSB3ZWlnaHRGbihlZGdlKTtcbiAgICAgICAgaWYgKF93ZWlnaHQgPCBzbWFsbGVzdERpc3RhbmNlIHx8ICFzbWFsbGVzdEVkZ2UpIHtcbiAgICAgICAgICBzbWFsbGVzdERpc3RhbmNlID0gX3dlaWdodDtcbiAgICAgICAgICBzbWFsbGVzdEVkZ2UgPSBlZGdlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlZGdlOiBzbWFsbGVzdEVkZ2UsXG4gICAgICAgIGRpc3Q6IHNtYWxsZXN0RGlzdGFuY2VcbiAgICAgIH07XG4gICAgfTtcbiAgICB3aGlsZSAoUS5zaXplKCkgPiAwKSB7XG4gICAgICB2YXIgdSA9IFEucG9wKCk7XG4gICAgICB2YXIgc21hbGxldHNEaXN0ID0gZ2V0RGlzdCh1KTtcbiAgICAgIHZhciB1aWQgPSB1LmlkKCk7XG4gICAgICBrbm93bkRpc3RbdWlkXSA9IHNtYWxsZXRzRGlzdDtcbiAgICAgIGlmIChzbWFsbGV0c0Rpc3QgPT09IEluZmluaXR5KSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdmFyIG5laWdoYm9ycyA9IHUubmVpZ2hib3Job29kKCkuaW50ZXJzZWN0KG5vZGVzKTtcbiAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IG5laWdoYm9ycy5sZW5ndGg7IF9pMisrKSB7XG4gICAgICAgIHZhciB2ID0gbmVpZ2hib3JzW19pMl07XG4gICAgICAgIHZhciB2aWQgPSB2LmlkKCk7XG4gICAgICAgIHZhciB2RGlzdCA9IGRpc3RCZXR3ZWVuKHUsIHYpO1xuICAgICAgICB2YXIgYWx0ID0gc21hbGxldHNEaXN0ICsgdkRpc3QuZGlzdDtcbiAgICAgICAgaWYgKGFsdCA8IGdldERpc3QodikpIHtcbiAgICAgICAgICBzZXREaXN0KHYsIGFsdCk7XG4gICAgICAgICAgcHJldlt2aWRdID0ge1xuICAgICAgICAgICAgbm9kZTogdSxcbiAgICAgICAgICAgIGVkZ2U6IHZEaXN0LmVkZ2VcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IC8vIGZvclxuICAgIH0gLy8gd2hpbGVcblxuICAgIHJldHVybiB7XG4gICAgICBkaXN0YW5jZVRvOiBmdW5jdGlvbiBkaXN0YW5jZVRvKG5vZGUpIHtcbiAgICAgICAgdmFyIHRhcmdldCA9IHN0cmluZyhub2RlKSA/IG5vZGVzLmZpbHRlcihub2RlKVswXSA6IG5vZGVbMF07XG4gICAgICAgIHJldHVybiBrbm93bkRpc3RbdGFyZ2V0LmlkKCldO1xuICAgICAgfSxcbiAgICAgIHBhdGhUbzogZnVuY3Rpb24gcGF0aFRvKG5vZGUpIHtcbiAgICAgICAgdmFyIHRhcmdldCA9IHN0cmluZyhub2RlKSA/IG5vZGVzLmZpbHRlcihub2RlKVswXSA6IG5vZGVbMF07XG4gICAgICAgIHZhciBTID0gW107XG4gICAgICAgIHZhciB1ID0gdGFyZ2V0O1xuICAgICAgICB2YXIgdWlkID0gdS5pZCgpO1xuICAgICAgICBpZiAodGFyZ2V0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBTLnVuc2hpZnQodGFyZ2V0KTtcbiAgICAgICAgICB3aGlsZSAocHJldlt1aWRdKSB7XG4gICAgICAgICAgICB2YXIgcCA9IHByZXZbdWlkXTtcbiAgICAgICAgICAgIFMudW5zaGlmdChwLmVkZ2UpO1xuICAgICAgICAgICAgUy51bnNoaWZ0KHAubm9kZSk7XG4gICAgICAgICAgICB1ID0gcC5ub2RlO1xuICAgICAgICAgICAgdWlkID0gdS5pZCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlcy5zcGF3bihTKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59O1xuXG52YXIgZWxlc2ZuJHQgPSB7XG4gIC8vIGtydXNrYWwncyBhbGdvcml0aG0gKGZpbmRzIG1pbiBzcGFubmluZyB0cmVlLCBhc3N1bWluZyB1bmRpcmVjdGVkIGdyYXBoKVxuICAvLyBpbXBsZW1lbnRlZCBmcm9tIHBzZXVkb2NvZGUgZnJvbSB3aWtpcGVkaWFcbiAga3J1c2thbDogZnVuY3Rpb24ga3J1c2thbCh3ZWlnaHRGbikge1xuICAgIHdlaWdodEZuID0gd2VpZ2h0Rm4gfHwgZnVuY3Rpb24gKGVkZ2UpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH07XG4gICAgdmFyIF90aGlzJGJ5R3JvdXAgPSB0aGlzLmJ5R3JvdXAoKSxcbiAgICAgIG5vZGVzID0gX3RoaXMkYnlHcm91cC5ub2RlcyxcbiAgICAgIGVkZ2VzID0gX3RoaXMkYnlHcm91cC5lZGdlcztcbiAgICB2YXIgbnVtTm9kZXMgPSBub2Rlcy5sZW5ndGg7XG4gICAgdmFyIGZvcmVzdCA9IG5ldyBBcnJheShudW1Ob2Rlcyk7XG4gICAgdmFyIEEgPSBub2RlczsgLy8gYXNzdW1lcyBieUdyb3VwKCkgY3JlYXRlcyBuZXcgY29sbGVjdGlvbnMgdGhhdCBjYW4gYmUgc2FmZWx5IG11dGF0ZWRcblxuICAgIHZhciBmaW5kU2V0SW5kZXggPSBmdW5jdGlvbiBmaW5kU2V0SW5kZXgoZWxlKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZvcmVzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZWxlcyA9IGZvcmVzdFtpXTtcbiAgICAgICAgaWYgKGVsZXMuaGFzKGVsZSkpIHtcbiAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBzdGFydCB3aXRoIG9uZSBmb3Jlc3QgcGVyIG5vZGVcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bU5vZGVzOyBpKyspIHtcbiAgICAgIGZvcmVzdFtpXSA9IHRoaXMuc3Bhd24obm9kZXNbaV0pO1xuICAgIH1cbiAgICB2YXIgUyA9IGVkZ2VzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiB3ZWlnaHRGbihhKSAtIHdlaWdodEZuKGIpO1xuICAgIH0pO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBTLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIGVkZ2UgPSBTW19pXTtcbiAgICAgIHZhciB1ID0gZWRnZS5zb3VyY2UoKVswXTtcbiAgICAgIHZhciB2ID0gZWRnZS50YXJnZXQoKVswXTtcbiAgICAgIHZhciBzZXRVSW5kZXggPSBmaW5kU2V0SW5kZXgodSk7XG4gICAgICB2YXIgc2V0VkluZGV4ID0gZmluZFNldEluZGV4KHYpO1xuICAgICAgdmFyIHNldFUgPSBmb3Jlc3Rbc2V0VUluZGV4XTtcbiAgICAgIHZhciBzZXRWID0gZm9yZXN0W3NldFZJbmRleF07XG4gICAgICBpZiAoc2V0VUluZGV4ICE9PSBzZXRWSW5kZXgpIHtcbiAgICAgICAgQS5tZXJnZShlZGdlKTtcblxuICAgICAgICAvLyBjb21iaW5lIGZvcmVzdHMgZm9yIHUgYW5kIHZcbiAgICAgICAgc2V0VS5tZXJnZShzZXRWKTtcbiAgICAgICAgZm9yZXN0LnNwbGljZShzZXRWSW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gQTtcbiAgfVxufTtcblxudmFyIGFTdGFyRGVmYXVsdHMgPSBkZWZhdWx0cyRnKHtcbiAgcm9vdDogbnVsbCxcbiAgZ29hbDogbnVsbCxcbiAgd2VpZ2h0OiBmdW5jdGlvbiB3ZWlnaHQoZWRnZSkge1xuICAgIHJldHVybiAxO1xuICB9LFxuICBoZXVyaXN0aWM6IGZ1bmN0aW9uIGhldXJpc3RpYyhlZGdlKSB7XG4gICAgcmV0dXJuIDA7XG4gIH0sXG4gIGRpcmVjdGVkOiBmYWxzZVxufSk7XG52YXIgZWxlc2ZuJHMgPSB7XG4gIC8vIEltcGxlbWVudGVkIGZyb20gcHNldWRvY29kZSBmcm9tIHdpa2lwZWRpYVxuICBhU3RhcjogZnVuY3Rpb24gYVN0YXIob3B0aW9ucykge1xuICAgIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgICB2YXIgX2FTdGFyRGVmYXVsdHMgPSBhU3RhckRlZmF1bHRzKG9wdGlvbnMpLFxuICAgICAgcm9vdCA9IF9hU3RhckRlZmF1bHRzLnJvb3QsXG4gICAgICBnb2FsID0gX2FTdGFyRGVmYXVsdHMuZ29hbCxcbiAgICAgIGhldXJpc3RpYyA9IF9hU3RhckRlZmF1bHRzLmhldXJpc3RpYyxcbiAgICAgIGRpcmVjdGVkID0gX2FTdGFyRGVmYXVsdHMuZGlyZWN0ZWQsXG4gICAgICB3ZWlnaHQgPSBfYVN0YXJEZWZhdWx0cy53ZWlnaHQ7XG4gICAgcm9vdCA9IGN5LmNvbGxlY3Rpb24ocm9vdClbMF07XG4gICAgZ29hbCA9IGN5LmNvbGxlY3Rpb24oZ29hbClbMF07XG4gICAgdmFyIHNpZCA9IHJvb3QuaWQoKTtcbiAgICB2YXIgdGlkID0gZ29hbC5pZCgpO1xuICAgIHZhciBnU2NvcmUgPSB7fTtcbiAgICB2YXIgZlNjb3JlID0ge307XG4gICAgdmFyIGNsb3NlZFNldElkcyA9IHt9O1xuICAgIHZhciBvcGVuU2V0ID0gbmV3IGhlYXAoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmU2NvcmVbYS5pZCgpXSAtIGZTY29yZVtiLmlkKCldO1xuICAgIH0pO1xuICAgIHZhciBvcGVuU2V0SWRzID0gbmV3IFNldCQxKCk7XG4gICAgdmFyIGNhbWVGcm9tID0ge307XG4gICAgdmFyIGNhbWVGcm9tRWRnZSA9IHt9O1xuICAgIHZhciBhZGRUb09wZW5TZXQgPSBmdW5jdGlvbiBhZGRUb09wZW5TZXQoZWxlLCBpZCkge1xuICAgICAgb3BlblNldC5wdXNoKGVsZSk7XG4gICAgICBvcGVuU2V0SWRzLmFkZChpZCk7XG4gICAgfTtcbiAgICB2YXIgY01pbiwgY01pbklkO1xuICAgIHZhciBwb3BGcm9tT3BlblNldCA9IGZ1bmN0aW9uIHBvcEZyb21PcGVuU2V0KCkge1xuICAgICAgY01pbiA9IG9wZW5TZXQucG9wKCk7XG4gICAgICBjTWluSWQgPSBjTWluLmlkKCk7XG4gICAgICBvcGVuU2V0SWRzW1wiZGVsZXRlXCJdKGNNaW5JZCk7XG4gICAgfTtcbiAgICB2YXIgaXNJbk9wZW5TZXQgPSBmdW5jdGlvbiBpc0luT3BlblNldChpZCkge1xuICAgICAgcmV0dXJuIG9wZW5TZXRJZHMuaGFzKGlkKTtcbiAgICB9O1xuICAgIGFkZFRvT3BlblNldChyb290LCBzaWQpO1xuICAgIGdTY29yZVtzaWRdID0gMDtcbiAgICBmU2NvcmVbc2lkXSA9IGhldXJpc3RpYyhyb290KTtcblxuICAgIC8vIENvdW50ZXJcbiAgICB2YXIgc3RlcHMgPSAwO1xuXG4gICAgLy8gTWFpbiBsb29wXG4gICAgd2hpbGUgKG9wZW5TZXQuc2l6ZSgpID4gMCkge1xuICAgICAgcG9wRnJvbU9wZW5TZXQoKTtcbiAgICAgIHN0ZXBzKys7XG5cbiAgICAgIC8vIElmIHdlJ3ZlIGZvdW5kIG91ciBnb2FsLCB0aGVuIHdlIGFyZSBkb25lXG4gICAgICBpZiAoY01pbklkID09PSB0aWQpIHtcbiAgICAgICAgdmFyIHBhdGggPSBbXTtcbiAgICAgICAgdmFyIHBhdGhOb2RlID0gZ29hbDtcbiAgICAgICAgdmFyIHBhdGhOb2RlSWQgPSB0aWQ7XG4gICAgICAgIHZhciBwYXRoRWRnZSA9IGNhbWVGcm9tRWRnZVtwYXRoTm9kZUlkXTtcbiAgICAgICAgZm9yICg7Oykge1xuICAgICAgICAgIHBhdGgudW5zaGlmdChwYXRoTm9kZSk7XG4gICAgICAgICAgaWYgKHBhdGhFZGdlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHBhdGgudW5zaGlmdChwYXRoRWRnZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHBhdGhOb2RlID0gY2FtZUZyb21bcGF0aE5vZGVJZF07XG4gICAgICAgICAgaWYgKHBhdGhOb2RlID09IG51bGwpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwYXRoTm9kZUlkID0gcGF0aE5vZGUuaWQoKTtcbiAgICAgICAgICBwYXRoRWRnZSA9IGNhbWVGcm9tRWRnZVtwYXRoTm9kZUlkXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGZvdW5kOiB0cnVlLFxuICAgICAgICAgIGRpc3RhbmNlOiBnU2NvcmVbY01pbklkXSxcbiAgICAgICAgICBwYXRoOiB0aGlzLnNwYXduKHBhdGgpLFxuICAgICAgICAgIHN0ZXBzOiBzdGVwc1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyBBZGQgY01pbiB0byBwcm9jZXNzZWQgbm9kZXNcbiAgICAgIGNsb3NlZFNldElkc1tjTWluSWRdID0gdHJ1ZTtcblxuICAgICAgLy8gVXBkYXRlIHNjb3JlcyBmb3IgbmVpZ2hib3JzIG9mIGNNaW5cbiAgICAgIC8vIFRha2UgaW50byBhY2NvdW50IGlmIGdyYXBoIGlzIGRpcmVjdGVkIG9yIG5vdFxuICAgICAgdmFyIHZ3RWRnZXMgPSBjTWluLl9wcml2YXRlLmVkZ2VzO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2d0VkZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlID0gdndFZGdlc1tpXTtcblxuICAgICAgICAvLyBlZGdlIG11c3QgYmUgaW4gc2V0IG9mIGNhbGxpbmcgZWxlc1xuICAgICAgICBpZiAoIXRoaXMuaGFzRWxlbWVudFdpdGhJZChlLmlkKCkpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjTWluIG11c3QgYmUgdGhlIHNvdXJjZSBvZiBlZGdlIGlmIGRpcmVjdGVkXG4gICAgICAgIGlmIChkaXJlY3RlZCAmJiBlLmRhdGEoJ3NvdXJjZScpICE9PSBjTWluSWQpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgd1NyYyA9IGUuc291cmNlKCk7XG4gICAgICAgIHZhciB3VGd0ID0gZS50YXJnZXQoKTtcbiAgICAgICAgdmFyIHcgPSB3U3JjLmlkKCkgIT09IGNNaW5JZCA/IHdTcmMgOiB3VGd0O1xuICAgICAgICB2YXIgd2lkID0gdy5pZCgpO1xuXG4gICAgICAgIC8vIG5vZGUgbXVzdCBiZSBpbiBzZXQgb2YgY2FsbGluZyBlbGVzXG4gICAgICAgIGlmICghdGhpcy5oYXNFbGVtZW50V2l0aElkKHdpZCkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIG5vZGUgaXMgaW4gY2xvc2VkU2V0LCBpZ25vcmUgaXRcbiAgICAgICAgaWYgKGNsb3NlZFNldElkc1t3aWRdKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBOZXcgdGVudGF0aXZlIHNjb3JlIGZvciBub2RlIHdcbiAgICAgICAgdmFyIHRlbXBTY29yZSA9IGdTY29yZVtjTWluSWRdICsgd2VpZ2h0KGUpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBnU2NvcmUgZm9yIG5vZGUgdyBpZjpcbiAgICAgICAgLy8gICB3IG5vdCBwcmVzZW50IGluIG9wZW5TZXRcbiAgICAgICAgLy8gT1JcbiAgICAgICAgLy8gICB0ZW50YXRpdmUgZ1Njb3JlIGlzIGxlc3MgdGhhbiBwcmV2aW91cyB2YWx1ZVxuXG4gICAgICAgIC8vIHcgbm90IGluIG9wZW5TZXRcbiAgICAgICAgaWYgKCFpc0luT3BlblNldCh3aWQpKSB7XG4gICAgICAgICAgZ1Njb3JlW3dpZF0gPSB0ZW1wU2NvcmU7XG4gICAgICAgICAgZlNjb3JlW3dpZF0gPSB0ZW1wU2NvcmUgKyBoZXVyaXN0aWModyk7XG4gICAgICAgICAgYWRkVG9PcGVuU2V0KHcsIHdpZCk7XG4gICAgICAgICAgY2FtZUZyb21bd2lkXSA9IGNNaW47XG4gICAgICAgICAgY2FtZUZyb21FZGdlW3dpZF0gPSBlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdyBhbHJlYWR5IGluIG9wZW5TZXQsIGJ1dCB3aXRoIGdyZWF0ZXIgZ1Njb3JlXG4gICAgICAgIGlmICh0ZW1wU2NvcmUgPCBnU2NvcmVbd2lkXSkge1xuICAgICAgICAgIGdTY29yZVt3aWRdID0gdGVtcFNjb3JlO1xuICAgICAgICAgIGZTY29yZVt3aWRdID0gdGVtcFNjb3JlICsgaGV1cmlzdGljKHcpO1xuICAgICAgICAgIGNhbWVGcm9tW3dpZF0gPSBjTWluO1xuICAgICAgICAgIGNhbWVGcm9tRWRnZVt3aWRdID0gZTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBFbmQgb2YgbmVpZ2hib3JzIHVwZGF0ZVxuICAgIH0gLy8gRW5kIG9mIG1haW4gbG9vcFxuXG4gICAgLy8gSWYgd2UndmUgcmVhY2hlZCBoZXJlLCB0aGVuIHdlJ3ZlIG5vdCByZWFjaGVkIG91ciBnb2FsXG4gICAgcmV0dXJuIHtcbiAgICAgIGZvdW5kOiBmYWxzZSxcbiAgICAgIGRpc3RhbmNlOiB1bmRlZmluZWQsXG4gICAgICBwYXRoOiB1bmRlZmluZWQsXG4gICAgICBzdGVwczogc3RlcHNcbiAgICB9O1xuICB9XG59OyAvLyBlbGVzZm5cblxudmFyIGZsb3lkV2Fyc2hhbGxEZWZhdWx0cyA9IGRlZmF1bHRzJGcoe1xuICB3ZWlnaHQ6IGZ1bmN0aW9uIHdlaWdodChlZGdlKSB7XG4gICAgcmV0dXJuIDE7XG4gIH0sXG4gIGRpcmVjdGVkOiBmYWxzZVxufSk7XG52YXIgZWxlc2ZuJHIgPSB7XG4gIC8vIEltcGxlbWVudGVkIGZyb20gcHNldWRvY29kZSBmcm9tIHdpa2lwZWRpYVxuICBmbG95ZFdhcnNoYWxsOiBmdW5jdGlvbiBmbG95ZFdhcnNoYWxsKG9wdGlvbnMpIHtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgdmFyIF9mbG95ZFdhcnNoYWxsRGVmYXVsdCA9IGZsb3lkV2Fyc2hhbGxEZWZhdWx0cyhvcHRpb25zKSxcbiAgICAgIHdlaWdodCA9IF9mbG95ZFdhcnNoYWxsRGVmYXVsdC53ZWlnaHQsXG4gICAgICBkaXJlY3RlZCA9IF9mbG95ZFdhcnNoYWxsRGVmYXVsdC5kaXJlY3RlZDtcbiAgICB2YXIgd2VpZ2h0Rm4gPSB3ZWlnaHQ7XG4gICAgdmFyIF90aGlzJGJ5R3JvdXAgPSB0aGlzLmJ5R3JvdXAoKSxcbiAgICAgIG5vZGVzID0gX3RoaXMkYnlHcm91cC5ub2RlcyxcbiAgICAgIGVkZ2VzID0gX3RoaXMkYnlHcm91cC5lZGdlcztcbiAgICB2YXIgTiA9IG5vZGVzLmxlbmd0aDtcbiAgICB2YXIgTnNxID0gTiAqIE47XG4gICAgdmFyIGluZGV4T2YgPSBmdW5jdGlvbiBpbmRleE9mKG5vZGUpIHtcbiAgICAgIHJldHVybiBub2Rlcy5pbmRleE9mKG5vZGUpO1xuICAgIH07XG4gICAgdmFyIGF0SW5kZXggPSBmdW5jdGlvbiBhdEluZGV4KGkpIHtcbiAgICAgIHJldHVybiBub2Rlc1tpXTtcbiAgICB9O1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBkaXN0YW5jZSBtYXRyaXhcbiAgICB2YXIgZGlzdCA9IG5ldyBBcnJheShOc3EpO1xuICAgIGZvciAodmFyIG4gPSAwOyBuIDwgTnNxOyBuKyspIHtcbiAgICAgIHZhciBqID0gbiAlIE47XG4gICAgICB2YXIgaSA9IChuIC0gaikgLyBOO1xuICAgICAgaWYgKGkgPT09IGopIHtcbiAgICAgICAgZGlzdFtuXSA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaXN0W25dID0gSW5maW5pdHk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBtYXRyaXggdXNlZCBmb3IgcGF0aCByZWNvbnN0cnVjdGlvblxuICAgIC8vIEluaXRpYWxpemUgZGlzdGFuY2UgbWF0cml4XG4gICAgdmFyIG5leHQgPSBuZXcgQXJyYXkoTnNxKTtcbiAgICB2YXIgZWRnZU5leHQgPSBuZXcgQXJyYXkoTnNxKTtcblxuICAgIC8vIFByb2Nlc3MgZWRnZXNcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgZWRnZXMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgZWRnZSA9IGVkZ2VzW19pXTtcbiAgICAgIHZhciBzcmMgPSBlZGdlLnNvdXJjZSgpWzBdO1xuICAgICAgdmFyIHRndCA9IGVkZ2UudGFyZ2V0KClbMF07XG4gICAgICBpZiAoc3JjID09PSB0Z3QpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IC8vIGV4Y2x1ZGUgbG9vcHNcblxuICAgICAgdmFyIHMgPSBpbmRleE9mKHNyYyk7XG4gICAgICB2YXIgdCA9IGluZGV4T2YodGd0KTtcbiAgICAgIHZhciBzdCA9IHMgKiBOICsgdDsgLy8gc291cmNlIHRvIHRhcmdldCBpbmRleFxuICAgICAgdmFyIF93ZWlnaHQgPSB3ZWlnaHRGbihlZGdlKTtcblxuICAgICAgLy8gQ2hlY2sgaWYgYWxyZWFkeSBwcm9jZXNzIGFub3RoZXIgZWRnZSBiZXR3ZWVuIHNhbWUgMiBub2Rlc1xuICAgICAgaWYgKGRpc3Rbc3RdID4gX3dlaWdodCkge1xuICAgICAgICBkaXN0W3N0XSA9IF93ZWlnaHQ7XG4gICAgICAgIG5leHRbc3RdID0gdDtcbiAgICAgICAgZWRnZU5leHRbc3RdID0gZWRnZTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdW5kaXJlY3RlZCBncmFwaCwgcHJvY2VzcyAncmV2ZXJzZWQnIGVkZ2VcbiAgICAgIGlmICghZGlyZWN0ZWQpIHtcbiAgICAgICAgdmFyIHRzID0gdCAqIE4gKyBzOyAvLyB0YXJnZXQgdG8gc291cmNlIGluZGV4XG5cbiAgICAgICAgaWYgKCFkaXJlY3RlZCAmJiBkaXN0W3RzXSA+IF93ZWlnaHQpIHtcbiAgICAgICAgICBkaXN0W3RzXSA9IF93ZWlnaHQ7XG4gICAgICAgICAgbmV4dFt0c10gPSBzO1xuICAgICAgICAgIGVkZ2VOZXh0W3RzXSA9IGVkZ2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNYWluIGxvb3BcbiAgICBmb3IgKHZhciBrID0gMDsgayA8IE47IGsrKykge1xuICAgICAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgTjsgX2kyKyspIHtcbiAgICAgICAgdmFyIGlrID0gX2kyICogTiArIGs7XG4gICAgICAgIGZvciAodmFyIF9qID0gMDsgX2ogPCBOOyBfaisrKSB7XG4gICAgICAgICAgdmFyIGlqID0gX2kyICogTiArIF9qO1xuICAgICAgICAgIHZhciBraiA9IGsgKiBOICsgX2o7XG4gICAgICAgICAgaWYgKGRpc3RbaWtdICsgZGlzdFtral0gPCBkaXN0W2lqXSkge1xuICAgICAgICAgICAgZGlzdFtpal0gPSBkaXN0W2lrXSArIGRpc3Rba2pdO1xuICAgICAgICAgICAgbmV4dFtpal0gPSBuZXh0W2lrXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGdldEFyZ0VsZSA9IGZ1bmN0aW9uIGdldEFyZ0VsZShlbGUpIHtcbiAgICAgIHJldHVybiAoc3RyaW5nKGVsZSkgPyBjeS5maWx0ZXIoZWxlKSA6IGVsZSlbMF07XG4gICAgfTtcbiAgICB2YXIgaW5kZXhPZkFyZ0VsZSA9IGZ1bmN0aW9uIGluZGV4T2ZBcmdFbGUoZWxlKSB7XG4gICAgICByZXR1cm4gaW5kZXhPZihnZXRBcmdFbGUoZWxlKSk7XG4gICAgfTtcbiAgICB2YXIgcmVzID0ge1xuICAgICAgZGlzdGFuY2U6IGZ1bmN0aW9uIGRpc3RhbmNlKGZyb20sIHRvKSB7XG4gICAgICAgIHZhciBpID0gaW5kZXhPZkFyZ0VsZShmcm9tKTtcbiAgICAgICAgdmFyIGogPSBpbmRleE9mQXJnRWxlKHRvKTtcbiAgICAgICAgcmV0dXJuIGRpc3RbaSAqIE4gKyBqXTtcbiAgICAgIH0sXG4gICAgICBwYXRoOiBmdW5jdGlvbiBwYXRoKGZyb20sIHRvKSB7XG4gICAgICAgIHZhciBpID0gaW5kZXhPZkFyZ0VsZShmcm9tKTtcbiAgICAgICAgdmFyIGogPSBpbmRleE9mQXJnRWxlKHRvKTtcbiAgICAgICAgdmFyIGZyb21Ob2RlID0gYXRJbmRleChpKTtcbiAgICAgICAgaWYgKGkgPT09IGopIHtcbiAgICAgICAgICByZXR1cm4gZnJvbU5vZGUuY29sbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXh0W2kgKiBOICsgal0gPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBjeS5jb2xsZWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBhdGggPSBjeS5jb2xsZWN0aW9uKCk7XG4gICAgICAgIHZhciBwcmV2ID0gaTtcbiAgICAgICAgdmFyIGVkZ2U7XG4gICAgICAgIHBhdGgubWVyZ2UoZnJvbU5vZGUpO1xuICAgICAgICB3aGlsZSAoaSAhPT0gaikge1xuICAgICAgICAgIHByZXYgPSBpO1xuICAgICAgICAgIGkgPSBuZXh0W2kgKiBOICsgal07XG4gICAgICAgICAgZWRnZSA9IGVkZ2VOZXh0W3ByZXYgKiBOICsgaV07XG4gICAgICAgICAgcGF0aC5tZXJnZShlZGdlKTtcbiAgICAgICAgICBwYXRoLm1lcmdlKGF0SW5kZXgoaSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHJlcztcbiAgfSAvLyBmbG95ZFdhcnNoYWxsXG59OyAvLyBlbGVzZm5cblxudmFyIGJlbGxtYW5Gb3JkRGVmYXVsdHMgPSBkZWZhdWx0cyRnKHtcbiAgd2VpZ2h0OiBmdW5jdGlvbiB3ZWlnaHQoZWRnZSkge1xuICAgIHJldHVybiAxO1xuICB9LFxuICBkaXJlY3RlZDogZmFsc2UsXG4gIHJvb3Q6IG51bGxcbn0pO1xudmFyIGVsZXNmbiRxID0ge1xuICAvLyBJbXBsZW1lbnRlZCBmcm9tIHBzZXVkb2NvZGUgZnJvbSB3aWtpcGVkaWFcbiAgYmVsbG1hbkZvcmQ6IGZ1bmN0aW9uIGJlbGxtYW5Gb3JkKG9wdGlvbnMpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgIHZhciBfYmVsbG1hbkZvcmREZWZhdWx0cyA9IGJlbGxtYW5Gb3JkRGVmYXVsdHMob3B0aW9ucyksXG4gICAgICB3ZWlnaHQgPSBfYmVsbG1hbkZvcmREZWZhdWx0cy53ZWlnaHQsXG4gICAgICBkaXJlY3RlZCA9IF9iZWxsbWFuRm9yZERlZmF1bHRzLmRpcmVjdGVkLFxuICAgICAgcm9vdCA9IF9iZWxsbWFuRm9yZERlZmF1bHRzLnJvb3Q7XG4gICAgdmFyIHdlaWdodEZuID0gd2VpZ2h0O1xuICAgIHZhciBlbGVzID0gdGhpcztcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgdmFyIF90aGlzJGJ5R3JvdXAgPSB0aGlzLmJ5R3JvdXAoKSxcbiAgICAgIGVkZ2VzID0gX3RoaXMkYnlHcm91cC5lZGdlcyxcbiAgICAgIG5vZGVzID0gX3RoaXMkYnlHcm91cC5ub2RlcztcbiAgICB2YXIgbnVtTm9kZXMgPSBub2Rlcy5sZW5ndGg7XG4gICAgdmFyIGluZm9NYXAgPSBuZXcgTWFwJDIoKTtcbiAgICB2YXIgaGFzTmVnYXRpdmVXZWlnaHRDeWNsZSA9IGZhbHNlO1xuICAgIHZhciBuZWdhdGl2ZVdlaWdodEN5Y2xlcyA9IFtdO1xuICAgIHJvb3QgPSBjeS5jb2xsZWN0aW9uKHJvb3QpWzBdOyAvLyBpbiBjYXNlIHNlbGVjdG9yIHBhc3NlZFxuXG4gICAgZWRnZXMudW5tZXJnZUJ5KGZ1bmN0aW9uIChlZGdlKSB7XG4gICAgICByZXR1cm4gZWRnZS5pc0xvb3AoKTtcbiAgICB9KTtcbiAgICB2YXIgbnVtRWRnZXMgPSBlZGdlcy5sZW5ndGg7XG4gICAgdmFyIGdldEluZm8gPSBmdW5jdGlvbiBnZXRJbmZvKG5vZGUpIHtcbiAgICAgIHZhciBvYmogPSBpbmZvTWFwLmdldChub2RlLmlkKCkpO1xuICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgb2JqID0ge307XG4gICAgICAgIGluZm9NYXAuc2V0KG5vZGUuaWQoKSwgb2JqKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcbiAgICB2YXIgZ2V0Tm9kZUZyb21UbyA9IGZ1bmN0aW9uIGdldE5vZGVGcm9tVG8odG8pIHtcbiAgICAgIHJldHVybiAoc3RyaW5nKHRvKSA/IGN5LiQodG8pIDogdG8pWzBdO1xuICAgIH07XG4gICAgdmFyIGRpc3RhbmNlVG8gPSBmdW5jdGlvbiBkaXN0YW5jZVRvKHRvKSB7XG4gICAgICByZXR1cm4gZ2V0SW5mbyhnZXROb2RlRnJvbVRvKHRvKSkuZGlzdDtcbiAgICB9O1xuICAgIHZhciBwYXRoVG8gPSBmdW5jdGlvbiBwYXRoVG8odG8pIHtcbiAgICAgIHZhciB0aGlzU3RhcnQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHJvb3Q7XG4gICAgICB2YXIgZW5kID0gZ2V0Tm9kZUZyb21Ubyh0byk7XG4gICAgICB2YXIgcGF0aCA9IFtdO1xuICAgICAgdmFyIG5vZGUgPSBlbmQ7XG4gICAgICBmb3IgKDs7KSB7XG4gICAgICAgIGlmIChub2RlID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuc3Bhd24oKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX2dldEluZm8gPSBnZXRJbmZvKG5vZGUpLFxuICAgICAgICAgIGVkZ2UgPSBfZ2V0SW5mby5lZGdlLFxuICAgICAgICAgIHByZWQgPSBfZ2V0SW5mby5wcmVkO1xuICAgICAgICBwYXRoLnVuc2hpZnQobm9kZVswXSk7XG4gICAgICAgIGlmIChub2RlLnNhbWUodGhpc1N0YXJ0KSAmJiBwYXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWRnZSAhPSBudWxsKSB7XG4gICAgICAgICAgcGF0aC51bnNoaWZ0KGVkZ2UpO1xuICAgICAgICB9XG4gICAgICAgIG5vZGUgPSBwcmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVsZXMuc3Bhd24ocGF0aCk7XG4gICAgfTtcblxuICAgIC8vIEluaXRpYWxpemF0aW9ucyB7IGRpc3QsIHByZWQsIGVkZ2UgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtTm9kZXM7IGkrKykge1xuICAgICAgdmFyIG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgIHZhciBpbmZvID0gZ2V0SW5mbyhub2RlKTtcbiAgICAgIGlmIChub2RlLnNhbWUocm9vdCkpIHtcbiAgICAgICAgaW5mby5kaXN0ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZm8uZGlzdCA9IEluZmluaXR5O1xuICAgICAgfVxuICAgICAgaW5mby5wcmVkID0gbnVsbDtcbiAgICAgIGluZm8uZWRnZSA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gRWRnZXMgcmVsYXhhdGlvblxuICAgIHZhciByZXBsYWNlZEVkZ2UgPSBmYWxzZTtcbiAgICB2YXIgY2hlY2tGb3JFZGdlUmVwbGFjZW1lbnQgPSBmdW5jdGlvbiBjaGVja0ZvckVkZ2VSZXBsYWNlbWVudChub2RlMSwgbm9kZTIsIGVkZ2UsIGluZm8xLCBpbmZvMiwgd2VpZ2h0KSB7XG4gICAgICB2YXIgZGlzdCA9IGluZm8xLmRpc3QgKyB3ZWlnaHQ7XG4gICAgICBpZiAoZGlzdCA8IGluZm8yLmRpc3QgJiYgIWVkZ2Uuc2FtZShpbmZvMS5lZGdlKSkge1xuICAgICAgICBpbmZvMi5kaXN0ID0gZGlzdDtcbiAgICAgICAgaW5mbzIucHJlZCA9IG5vZGUxO1xuICAgICAgICBpbmZvMi5lZGdlID0gZWRnZTtcbiAgICAgICAgcmVwbGFjZWRFZGdlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBudW1Ob2RlczsgX2krKykge1xuICAgICAgcmVwbGFjZWRFZGdlID0gZmFsc2U7XG4gICAgICBmb3IgKHZhciBlID0gMDsgZSA8IG51bUVkZ2VzOyBlKyspIHtcbiAgICAgICAgdmFyIGVkZ2UgPSBlZGdlc1tlXTtcbiAgICAgICAgdmFyIHNyYyA9IGVkZ2Uuc291cmNlKCk7XG4gICAgICAgIHZhciB0Z3QgPSBlZGdlLnRhcmdldCgpO1xuICAgICAgICB2YXIgX3dlaWdodCA9IHdlaWdodEZuKGVkZ2UpO1xuICAgICAgICB2YXIgc3JjSW5mbyA9IGdldEluZm8oc3JjKTtcbiAgICAgICAgdmFyIHRndEluZm8gPSBnZXRJbmZvKHRndCk7XG4gICAgICAgIGNoZWNrRm9yRWRnZVJlcGxhY2VtZW50KHNyYywgdGd0LCBlZGdlLCBzcmNJbmZvLCB0Z3RJbmZvLCBfd2VpZ2h0KTtcblxuICAgICAgICAvLyBJZiB1bmRpcmVjdGVkIGdyYXBoLCB3ZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSAncmV2ZXJzZScgZWRnZVxuICAgICAgICBpZiAoIWRpcmVjdGVkKSB7XG4gICAgICAgICAgY2hlY2tGb3JFZGdlUmVwbGFjZW1lbnQodGd0LCBzcmMsIGVkZ2UsIHRndEluZm8sIHNyY0luZm8sIF93ZWlnaHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXJlcGxhY2VkRWRnZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHJlcGxhY2VkRWRnZSkge1xuICAgICAgLy8gQ2hlY2sgZm9yIG5lZ2F0aXZlIHdlaWdodCBjeWNsZXNcbiAgICAgIHZhciBuZWdhdGl2ZVdlaWdodEN5Y2xlSWRzID0gW107XG4gICAgICBmb3IgKHZhciBfZSA9IDA7IF9lIDwgbnVtRWRnZXM7IF9lKyspIHtcbiAgICAgICAgdmFyIF9lZGdlID0gZWRnZXNbX2VdO1xuICAgICAgICB2YXIgX3NyYyA9IF9lZGdlLnNvdXJjZSgpO1xuICAgICAgICB2YXIgX3RndCA9IF9lZGdlLnRhcmdldCgpO1xuICAgICAgICB2YXIgX3dlaWdodDIgPSB3ZWlnaHRGbihfZWRnZSk7XG4gICAgICAgIHZhciBzcmNEaXN0ID0gZ2V0SW5mbyhfc3JjKS5kaXN0O1xuICAgICAgICB2YXIgdGd0RGlzdCA9IGdldEluZm8oX3RndCkuZGlzdDtcbiAgICAgICAgaWYgKHNyY0Rpc3QgKyBfd2VpZ2h0MiA8IHRndERpc3QgfHwgIWRpcmVjdGVkICYmIHRndERpc3QgKyBfd2VpZ2h0MiA8IHNyY0Rpc3QpIHtcbiAgICAgICAgICBpZiAoIWhhc05lZ2F0aXZlV2VpZ2h0Q3ljbGUpIHtcbiAgICAgICAgICAgIHdhcm4oJ0dyYXBoIGNvbnRhaW5zIGEgbmVnYXRpdmUgd2VpZ2h0IGN5Y2xlIGZvciBCZWxsbWFuLUZvcmQnKTtcbiAgICAgICAgICAgIGhhc05lZ2F0aXZlV2VpZ2h0Q3ljbGUgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3B0aW9ucy5maW5kTmVnYXRpdmVXZWlnaHRDeWNsZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICB2YXIgbmVnYXRpdmVOb2RlcyA9IFtdO1xuICAgICAgICAgICAgaWYgKHNyY0Rpc3QgKyBfd2VpZ2h0MiA8IHRndERpc3QpIHtcbiAgICAgICAgICAgICAgbmVnYXRpdmVOb2Rlcy5wdXNoKF9zcmMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFkaXJlY3RlZCAmJiB0Z3REaXN0ICsgX3dlaWdodDIgPCBzcmNEaXN0KSB7XG4gICAgICAgICAgICAgIG5lZ2F0aXZlTm9kZXMucHVzaChfdGd0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBudW1OZWdhdGl2ZU5vZGVzID0gbmVnYXRpdmVOb2Rlcy5sZW5ndGg7XG4gICAgICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IG51bU5lZ2F0aXZlTm9kZXM7IG4rKykge1xuICAgICAgICAgICAgICB2YXIgc3RhcnQgPSBuZWdhdGl2ZU5vZGVzW25dO1xuICAgICAgICAgICAgICB2YXIgY3ljbGUgPSBbc3RhcnRdO1xuICAgICAgICAgICAgICBjeWNsZS5wdXNoKGdldEluZm8oc3RhcnQpLmVkZ2UpO1xuICAgICAgICAgICAgICB2YXIgX25vZGUgPSBnZXRJbmZvKHN0YXJ0KS5wcmVkO1xuICAgICAgICAgICAgICB3aGlsZSAoY3ljbGUuaW5kZXhPZihfbm9kZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY3ljbGUucHVzaChfbm9kZSk7XG4gICAgICAgICAgICAgICAgY3ljbGUucHVzaChnZXRJbmZvKF9ub2RlKS5lZGdlKTtcbiAgICAgICAgICAgICAgICBfbm9kZSA9IGdldEluZm8oX25vZGUpLnByZWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY3ljbGUgPSBjeWNsZS5zbGljZShjeWNsZS5pbmRleE9mKF9ub2RlKSk7XG4gICAgICAgICAgICAgIHZhciBzbWFsbGVzdElkID0gY3ljbGVbMF0uaWQoKTtcbiAgICAgICAgICAgICAgdmFyIHNtYWxsZXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgICBmb3IgKHZhciBjID0gMjsgYyA8IGN5Y2xlLmxlbmd0aDsgYyArPSAyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGN5Y2xlW2NdLmlkKCkgPCBzbWFsbGVzdElkKSB7XG4gICAgICAgICAgICAgICAgICBzbWFsbGVzdElkID0gY3ljbGVbY10uaWQoKTtcbiAgICAgICAgICAgICAgICAgIHNtYWxsZXN0SW5kZXggPSBjO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjeWNsZSA9IGN5Y2xlLnNsaWNlKHNtYWxsZXN0SW5kZXgpLmNvbmNhdChjeWNsZS5zbGljZSgwLCBzbWFsbGVzdEluZGV4KSk7XG4gICAgICAgICAgICAgIGN5Y2xlLnB1c2goY3ljbGVbMF0pO1xuICAgICAgICAgICAgICB2YXIgY3ljbGVJZCA9IGN5Y2xlLm1hcChmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWwuaWQoKTtcbiAgICAgICAgICAgICAgfSkuam9pbihcIixcIik7XG4gICAgICAgICAgICAgIGlmIChuZWdhdGl2ZVdlaWdodEN5Y2xlSWRzLmluZGV4T2YoY3ljbGVJZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgbmVnYXRpdmVXZWlnaHRDeWNsZXMucHVzaChlbGVzLnNwYXduKGN5Y2xlKSk7XG4gICAgICAgICAgICAgICAgbmVnYXRpdmVXZWlnaHRDeWNsZUlkcy5wdXNoKGN5Y2xlSWQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZGlzdGFuY2VUbzogZGlzdGFuY2VUbyxcbiAgICAgIHBhdGhUbzogcGF0aFRvLFxuICAgICAgaGFzTmVnYXRpdmVXZWlnaHRDeWNsZTogaGFzTmVnYXRpdmVXZWlnaHRDeWNsZSxcbiAgICAgIG5lZ2F0aXZlV2VpZ2h0Q3ljbGVzOiBuZWdhdGl2ZVdlaWdodEN5Y2xlc1xuICAgIH07XG4gIH0gLy8gYmVsbG1hbkZvcmRcbn07IC8vIGVsZXNmblxuXG52YXIgc3FydDIgPSBNYXRoLnNxcnQoMik7XG5cbi8vIEZ1bmN0aW9uIHdoaWNoIGNvbGFwc2VzIDIgKG1ldGEpIG5vZGVzIGludG8gb25lXG4vLyBVcGRhdGVzIHRoZSByZW1haW5pbmcgZWRnZSBsaXN0c1xuLy8gUmVjZWl2ZXMgYXMgYSBwYXJhbWF0ZXIgdGhlIGVkZ2Ugd2hpY2ggY2F1c2VzIHRoZSBjb2xsYXBzZVxudmFyIGNvbGxhcHNlID0gZnVuY3Rpb24gY29sbGFwc2UoZWRnZUluZGV4LCBub2RlTWFwLCByZW1haW5pbmdFZGdlcykge1xuICBpZiAocmVtYWluaW5nRWRnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgZXJyb3IoXCJLYXJnZXItU3RlaW4gbXVzdCBiZSBydW4gb24gYSBjb25uZWN0ZWQgKHN1YilncmFwaFwiKTtcbiAgfVxuICB2YXIgZWRnZUluZm8gPSByZW1haW5pbmdFZGdlc1tlZGdlSW5kZXhdO1xuICB2YXIgc291cmNlSW4gPSBlZGdlSW5mb1sxXTtcbiAgdmFyIHRhcmdldEluID0gZWRnZUluZm9bMl07XG4gIHZhciBwYXJ0aXRpb24xID0gbm9kZU1hcFtzb3VyY2VJbl07XG4gIHZhciBwYXJ0aXRpb24yID0gbm9kZU1hcFt0YXJnZXRJbl07XG4gIHZhciBuZXdFZGdlcyA9IHJlbWFpbmluZ0VkZ2VzOyAvLyByZS11c2UgYXJyYXlcblxuICAvLyBEZWxldGUgYWxsIGVkZ2VzIGJldHdlZW4gcGFydGl0aW9uMSBhbmQgcGFydGl0aW9uMlxuICBmb3IgKHZhciBpID0gbmV3RWRnZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIgZWRnZSA9IG5ld0VkZ2VzW2ldO1xuICAgIHZhciBzcmMgPSBlZGdlWzFdO1xuICAgIHZhciB0Z3QgPSBlZGdlWzJdO1xuICAgIGlmIChub2RlTWFwW3NyY10gPT09IHBhcnRpdGlvbjEgJiYgbm9kZU1hcFt0Z3RdID09PSBwYXJ0aXRpb24yIHx8IG5vZGVNYXBbc3JjXSA9PT0gcGFydGl0aW9uMiAmJiBub2RlTWFwW3RndF0gPT09IHBhcnRpdGlvbjEpIHtcbiAgICAgIG5ld0VkZ2VzLnNwbGljZShpLCAxKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbGwgZWRnZXMgcG9pbnRpbmcgdG8gcGFydGl0aW9uMiBzaG91bGQgbm93IHBvaW50IHRvIHBhcnRpdGlvbjFcbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IG5ld0VkZ2VzLmxlbmd0aDsgX2krKykge1xuICAgIHZhciBfZWRnZSA9IG5ld0VkZ2VzW19pXTtcbiAgICBpZiAoX2VkZ2VbMV0gPT09IHBhcnRpdGlvbjIpIHtcbiAgICAgIC8vIENoZWNrIHNvdXJjZVxuICAgICAgbmV3RWRnZXNbX2ldID0gX2VkZ2Uuc2xpY2UoKTsgLy8gY29weVxuICAgICAgbmV3RWRnZXNbX2ldWzFdID0gcGFydGl0aW9uMTtcbiAgICB9IGVsc2UgaWYgKF9lZGdlWzJdID09PSBwYXJ0aXRpb24yKSB7XG4gICAgICAvLyBDaGVjayB0YXJnZXRcbiAgICAgIG5ld0VkZ2VzW19pXSA9IF9lZGdlLnNsaWNlKCk7IC8vIGNvcHlcbiAgICAgIG5ld0VkZ2VzW19pXVsyXSA9IHBhcnRpdGlvbjE7XG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSBhbGwgbm9kZXMgZnJvbSBwYXJ0aXRpb24yIHRvIHBhcnRpdGlvbjFcbiAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgbm9kZU1hcC5sZW5ndGg7IF9pMisrKSB7XG4gICAgaWYgKG5vZGVNYXBbX2kyXSA9PT0gcGFydGl0aW9uMikge1xuICAgICAgbm9kZU1hcFtfaTJdID0gcGFydGl0aW9uMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld0VkZ2VzO1xufTtcblxuLy8gQ29udHJhY3RzIGEgZ3JhcGggdW50aWwgd2UgcmVhY2ggYSBjZXJ0YWluIG51bWJlciBvZiBtZXRhIG5vZGVzXG52YXIgY29udHJhY3RVbnRpbCA9IGZ1bmN0aW9uIGNvbnRyYWN0VW50aWwobWV0YU5vZGVNYXAsIHJlbWFpbmluZ0VkZ2VzLCBzaXplLCBzaXplTGltaXQpIHtcbiAgd2hpbGUgKHNpemUgPiBzaXplTGltaXQpIHtcbiAgICAvLyBDaG9vc2UgYW4gZWRnZSByYW5kb21seVxuICAgIHZhciBlZGdlSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiByZW1haW5pbmdFZGdlcy5sZW5ndGgpO1xuXG4gICAgLy8gQ29sbGFwc2UgZ3JhcGggYmFzZWQgb24gZWRnZVxuICAgIHJlbWFpbmluZ0VkZ2VzID0gY29sbGFwc2UoZWRnZUluZGV4LCBtZXRhTm9kZU1hcCwgcmVtYWluaW5nRWRnZXMpO1xuICAgIHNpemUtLTtcbiAgfVxuICByZXR1cm4gcmVtYWluaW5nRWRnZXM7XG59O1xudmFyIGVsZXNmbiRwID0ge1xuICAvLyBDb21wdXRlcyB0aGUgbWluaW11bSBjdXQgb2YgYW4gdW5kaXJlY3RlZCBncmFwaFxuICAvLyBSZXR1cm5zIHRoZSBjb3JyZWN0IGFuc3dlciB3aXRoIGhpZ2ggcHJvYmFiaWxpdHlcbiAga2FyZ2VyU3RlaW46IGZ1bmN0aW9uIGthcmdlclN0ZWluKCkge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgdmFyIF90aGlzJGJ5R3JvdXAgPSB0aGlzLmJ5R3JvdXAoKSxcbiAgICAgIG5vZGVzID0gX3RoaXMkYnlHcm91cC5ub2RlcyxcbiAgICAgIGVkZ2VzID0gX3RoaXMkYnlHcm91cC5lZGdlcztcbiAgICBlZGdlcy51bm1lcmdlQnkoZnVuY3Rpb24gKGVkZ2UpIHtcbiAgICAgIHJldHVybiBlZGdlLmlzTG9vcCgpO1xuICAgIH0pO1xuICAgIHZhciBudW1Ob2RlcyA9IG5vZGVzLmxlbmd0aDtcbiAgICB2YXIgbnVtRWRnZXMgPSBlZGdlcy5sZW5ndGg7XG4gICAgdmFyIG51bUl0ZXIgPSBNYXRoLmNlaWwoTWF0aC5wb3coTWF0aC5sb2cobnVtTm9kZXMpIC8gTWF0aC5MTjIsIDIpKTtcbiAgICB2YXIgc3RvcFNpemUgPSBNYXRoLmZsb29yKG51bU5vZGVzIC8gc3FydDIpO1xuICAgIGlmIChudW1Ob2RlcyA8IDIpIHtcbiAgICAgIGVycm9yKCdBdCBsZWFzdCAyIG5vZGVzIGFyZSByZXF1aXJlZCBmb3IgS2FyZ2VyLVN0ZWluIGFsZ29yaXRobScpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBOb3cgc3RvcmUgZWRnZSBkZXN0aW5hdGlvbiBhcyBpbmRleGVzXG4gICAgLy8gRm9ybWF0IGZvciBlYWNoIGVkZ2UgKGVkZ2UgaW5kZXgsIHNvdXJjZSBub2RlIGluZGV4LCB0YXJnZXQgbm9kZSBpbmRleClcbiAgICB2YXIgZWRnZUluZGV4ZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUVkZ2VzOyBpKyspIHtcbiAgICAgIHZhciBlID0gZWRnZXNbaV07XG4gICAgICBlZGdlSW5kZXhlcy5wdXNoKFtpLCBub2Rlcy5pbmRleE9mKGUuc291cmNlKCkpLCBub2Rlcy5pbmRleE9mKGUudGFyZ2V0KCkpXSk7XG4gICAgfVxuXG4gICAgLy8gV2Ugd2lsbCBzdG9yZSB0aGUgYmVzdCBjdXQgZm91bmQgaGVyZVxuICAgIHZhciBtaW5DdXRTaXplID0gSW5maW5pdHk7XG4gICAgdmFyIG1pbkN1dEVkZ2VJbmRleGVzID0gW107XG4gICAgdmFyIG1pbkN1dE5vZGVNYXAgPSBuZXcgQXJyYXkobnVtTm9kZXMpO1xuXG4gICAgLy8gSW5pdGlhbCBtZXRhIG5vZGUgcGFydGl0aW9uXG4gICAgdmFyIG1ldGFOb2RlTWFwID0gbmV3IEFycmF5KG51bU5vZGVzKTtcbiAgICB2YXIgbWV0YU5vZGVNYXAyID0gbmV3IEFycmF5KG51bU5vZGVzKTtcbiAgICB2YXIgY29weU5vZGVzTWFwID0gZnVuY3Rpb24gY29weU5vZGVzTWFwKGZyb20sIHRvKSB7XG4gICAgICBmb3IgKHZhciBfaTMgPSAwOyBfaTMgPCBudW1Ob2RlczsgX2kzKyspIHtcbiAgICAgICAgdG9bX2kzXSA9IGZyb21bX2kzXTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gTWFpbiBsb29wXG4gICAgZm9yICh2YXIgaXRlciA9IDA7IGl0ZXIgPD0gbnVtSXRlcjsgaXRlcisrKSB7XG4gICAgICAvLyBSZXNldCBtZXRhIG5vZGUgcGFydGl0aW9uXG4gICAgICBmb3IgKHZhciBfaTQgPSAwOyBfaTQgPCBudW1Ob2RlczsgX2k0KyspIHtcbiAgICAgICAgbWV0YU5vZGVNYXBbX2k0XSA9IF9pNDtcbiAgICAgIH1cblxuICAgICAgLy8gQ29udHJhY3QgdW50aWwgc3RvcCBwb2ludCAoc3RvcFNpemUgbm9kZXMpXG4gICAgICB2YXIgZWRnZXNTdGF0ZSA9IGNvbnRyYWN0VW50aWwobWV0YU5vZGVNYXAsIGVkZ2VJbmRleGVzLnNsaWNlKCksIG51bU5vZGVzLCBzdG9wU2l6ZSk7XG4gICAgICB2YXIgZWRnZXNTdGF0ZTIgPSBlZGdlc1N0YXRlLnNsaWNlKCk7IC8vIGNvcHlcblxuICAgICAgLy8gQ3JlYXRlIGEgY29weSBvZiB0aGUgY29sYXBzZWQgbm9kZXMgc3RhdGVcbiAgICAgIGNvcHlOb2Rlc01hcChtZXRhTm9kZU1hcCwgbWV0YU5vZGVNYXAyKTtcblxuICAgICAgLy8gUnVuIDIgaXRlcmF0aW9ucyBzdGFydGluZyBpbiB0aGUgc3RvcCBzdGF0ZVxuICAgICAgdmFyIHJlczEgPSBjb250cmFjdFVudGlsKG1ldGFOb2RlTWFwLCBlZGdlc1N0YXRlLCBzdG9wU2l6ZSwgMik7XG4gICAgICB2YXIgcmVzMiA9IGNvbnRyYWN0VW50aWwobWV0YU5vZGVNYXAyLCBlZGdlc1N0YXRlMiwgc3RvcFNpemUsIDIpO1xuXG4gICAgICAvLyBJcyBhbnkgb2YgdGhlIDIgcmVzdWx0cyB0aGUgYmVzdCBjdXQgc28gZmFyP1xuICAgICAgaWYgKHJlczEubGVuZ3RoIDw9IHJlczIubGVuZ3RoICYmIHJlczEubGVuZ3RoIDwgbWluQ3V0U2l6ZSkge1xuICAgICAgICBtaW5DdXRTaXplID0gcmVzMS5sZW5ndGg7XG4gICAgICAgIG1pbkN1dEVkZ2VJbmRleGVzID0gcmVzMTtcbiAgICAgICAgY29weU5vZGVzTWFwKG1ldGFOb2RlTWFwLCBtaW5DdXROb2RlTWFwKTtcbiAgICAgIH0gZWxzZSBpZiAocmVzMi5sZW5ndGggPD0gcmVzMS5sZW5ndGggJiYgcmVzMi5sZW5ndGggPCBtaW5DdXRTaXplKSB7XG4gICAgICAgIG1pbkN1dFNpemUgPSByZXMyLmxlbmd0aDtcbiAgICAgICAgbWluQ3V0RWRnZUluZGV4ZXMgPSByZXMyO1xuICAgICAgICBjb3B5Tm9kZXNNYXAobWV0YU5vZGVNYXAyLCBtaW5DdXROb2RlTWFwKTtcbiAgICAgIH1cbiAgICB9IC8vIGVuZCBvZiBtYWluIGxvb3BcblxuICAgIC8vIENvbnN0cnVjdCByZXN1bHRcbiAgICB2YXIgY3V0ID0gdGhpcy5zcGF3bihtaW5DdXRFZGdlSW5kZXhlcy5tYXAoZnVuY3Rpb24gKGUpIHtcbiAgICAgIHJldHVybiBlZGdlc1tlWzBdXTtcbiAgICB9KSk7XG4gICAgdmFyIHBhcnRpdGlvbjEgPSB0aGlzLnNwYXduKCk7XG4gICAgdmFyIHBhcnRpdGlvbjIgPSB0aGlzLnNwYXduKCk7XG5cbiAgICAvLyB0cmF2ZXJzZSBtZXRhTm9kZU1hcCBmb3IgYmVzdCBjdXRcbiAgICB2YXIgd2l0bmVzc05vZGVQYXJ0aXRpb24gPSBtaW5DdXROb2RlTWFwWzBdO1xuICAgIGZvciAodmFyIF9pNSA9IDA7IF9pNSA8IG1pbkN1dE5vZGVNYXAubGVuZ3RoOyBfaTUrKykge1xuICAgICAgdmFyIHBhcnRpdGlvbklkID0gbWluQ3V0Tm9kZU1hcFtfaTVdO1xuICAgICAgdmFyIG5vZGUgPSBub2Rlc1tfaTVdO1xuICAgICAgaWYgKHBhcnRpdGlvbklkID09PSB3aXRuZXNzTm9kZVBhcnRpdGlvbikge1xuICAgICAgICBwYXJ0aXRpb24xLm1lcmdlKG5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFydGl0aW9uMi5tZXJnZShub2RlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjb25zdHJ1Y3QgY29tcG9uZW50cyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggZGlzam9pbnQgc3Vic2V0IG9mIG5vZGVzXG4gICAgdmFyIGNvbnN0cnVjdENvbXBvbmVudCA9IGZ1bmN0aW9uIGNvbnN0cnVjdENvbXBvbmVudChzdWJzZXQpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSBfdGhpcy5zcGF3bigpO1xuICAgICAgc3Vic2V0LmZvckVhY2goZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgY29tcG9uZW50Lm1lcmdlKG5vZGUpO1xuICAgICAgICBub2RlLmNvbm5lY3RlZEVkZ2VzKCkuZm9yRWFjaChmdW5jdGlvbiAoZWRnZSkge1xuICAgICAgICAgIC8vIGVuc3VyZSBlZGdlIGlzIHdpdGhpbiBjYWxsaW5nIGNvbGxlY3Rpb24gYW5kIGVkZ2UgaXMgbm90IGluIGN1dFxuICAgICAgICAgIGlmIChfdGhpcy5jb250YWlucyhlZGdlKSAmJiAhY3V0LmNvbnRhaW5zKGVkZ2UpKSB7XG4gICAgICAgICAgICBjb21wb25lbnQubWVyZ2UoZWRnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgICB9O1xuICAgIHZhciBjb21wb25lbnRzID0gW2NvbnN0cnVjdENvbXBvbmVudChwYXJ0aXRpb24xKSwgY29uc3RydWN0Q29tcG9uZW50KHBhcnRpdGlvbjIpXTtcbiAgICB2YXIgcmV0ID0ge1xuICAgICAgY3V0OiBjdXQsXG4gICAgICBjb21wb25lbnRzOiBjb21wb25lbnRzLFxuICAgICAgLy8gbi5iLiBwYXJ0aXRpb25zIGFyZSBpbmNsdWRlZCB0byBiZSBjb21wYXRpYmxlIHdpdGggdGhlIG9sZCBhcGkgc3BlY1xuICAgICAgLy8gKGNvdWxkIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgdmVyc2lvbilcbiAgICAgIHBhcnRpdGlvbjE6IHBhcnRpdGlvbjEsXG4gICAgICBwYXJ0aXRpb24yOiBwYXJ0aXRpb24yXG4gICAgfTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG59OyAvLyBlbGVzZm5cblxudmFyIGNvcHlQb3NpdGlvbiA9IGZ1bmN0aW9uIGNvcHlQb3NpdGlvbihwKSB7XG4gIHJldHVybiB7XG4gICAgeDogcC54LFxuICAgIHk6IHAueVxuICB9O1xufTtcbnZhciBtb2RlbFRvUmVuZGVyZWRQb3NpdGlvbiA9IGZ1bmN0aW9uIG1vZGVsVG9SZW5kZXJlZFBvc2l0aW9uKHAsIHpvb20sIHBhbikge1xuICByZXR1cm4ge1xuICAgIHg6IHAueCAqIHpvb20gKyBwYW4ueCxcbiAgICB5OiBwLnkgKiB6b29tICsgcGFuLnlcbiAgfTtcbn07XG52YXIgcmVuZGVyZWRUb01vZGVsUG9zaXRpb24gPSBmdW5jdGlvbiByZW5kZXJlZFRvTW9kZWxQb3NpdGlvbihwLCB6b29tLCBwYW4pIHtcbiAgcmV0dXJuIHtcbiAgICB4OiAocC54IC0gcGFuLngpIC8gem9vbSxcbiAgICB5OiAocC55IC0gcGFuLnkpIC8gem9vbVxuICB9O1xufTtcbnZhciBhcnJheTJwb2ludCA9IGZ1bmN0aW9uIGFycmF5MnBvaW50KGFycikge1xuICByZXR1cm4ge1xuICAgIHg6IGFyclswXSxcbiAgICB5OiBhcnJbMV1cbiAgfTtcbn07XG52YXIgbWluID0gZnVuY3Rpb24gbWluKGFycikge1xuICB2YXIgYmVnaW4gPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDA7XG4gIHZhciBlbmQgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IGFyci5sZW5ndGg7XG4gIHZhciBtaW4gPSBJbmZpbml0eTtcbiAgZm9yICh2YXIgaSA9IGJlZ2luOyBpIDwgZW5kOyBpKyspIHtcbiAgICB2YXIgdmFsID0gYXJyW2ldO1xuICAgIGlmIChpc0Zpbml0ZSh2YWwpKSB7XG4gICAgICBtaW4gPSBNYXRoLm1pbih2YWwsIG1pbik7XG4gICAgfVxuICB9XG4gIHJldHVybiBtaW47XG59O1xudmFyIG1heCA9IGZ1bmN0aW9uIG1heChhcnIpIHtcbiAgdmFyIGJlZ2luID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAwO1xuICB2YXIgZW5kID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiBhcnIubGVuZ3RoO1xuICB2YXIgbWF4ID0gLUluZmluaXR5O1xuICBmb3IgKHZhciBpID0gYmVnaW47IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciB2YWwgPSBhcnJbaV07XG4gICAgaWYgKGlzRmluaXRlKHZhbCkpIHtcbiAgICAgIG1heCA9IE1hdGgubWF4KHZhbCwgbWF4KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1heDtcbn07XG52YXIgbWVhbiA9IGZ1bmN0aW9uIG1lYW4oYXJyKSB7XG4gIHZhciBiZWdpbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogMDtcbiAgdmFyIGVuZCA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogYXJyLmxlbmd0aDtcbiAgdmFyIHRvdGFsID0gMDtcbiAgdmFyIG4gPSAwO1xuICBmb3IgKHZhciBpID0gYmVnaW47IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciB2YWwgPSBhcnJbaV07XG4gICAgaWYgKGlzRmluaXRlKHZhbCkpIHtcbiAgICAgIHRvdGFsICs9IHZhbDtcbiAgICAgIG4rKztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRvdGFsIC8gbjtcbn07XG52YXIgbWVkaWFuID0gZnVuY3Rpb24gbWVkaWFuKGFycikge1xuICB2YXIgYmVnaW4gPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDA7XG4gIHZhciBlbmQgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IGFyci5sZW5ndGg7XG4gIHZhciBjb3B5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiB0cnVlO1xuICB2YXIgc29ydCA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogdHJ1ZTtcbiAgdmFyIGluY2x1ZGVIb2xlcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDogdHJ1ZTtcbiAgaWYgKGNvcHkpIHtcbiAgICBhcnIgPSBhcnIuc2xpY2UoYmVnaW4sIGVuZCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGVuZCA8IGFyci5sZW5ndGgpIHtcbiAgICAgIGFyci5zcGxpY2UoZW5kLCBhcnIubGVuZ3RoIC0gZW5kKTtcbiAgICB9XG4gICAgaWYgKGJlZ2luID4gMCkge1xuICAgICAgYXJyLnNwbGljZSgwLCBiZWdpbik7XG4gICAgfVxuICB9XG5cbiAgLy8gYWxsIG5vbiBmaW5pdGUgKGUuZy4gSW5maW5pdHksIE5hTikgZWxlbWVudHMgbXVzdCBiZSAtSW5maW5pdHkgc28gdGhleSBnbyB0byB0aGUgc3RhcnRcbiAgdmFyIG9mZiA9IDA7IC8vIG9mZnNldCBmcm9tIG5vbi1maW5pdGUgdmFsdWVzXG4gIGZvciAodmFyIGkgPSBhcnIubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIgdiA9IGFycltpXTtcbiAgICBpZiAoaW5jbHVkZUhvbGVzKSB7XG4gICAgICBpZiAoIWlzRmluaXRlKHYpKSB7XG4gICAgICAgIGFycltpXSA9IC1JbmZpbml0eTtcbiAgICAgICAgb2ZmKys7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGp1c3QgcmVtb3ZlIGl0IGlmIHdlIGRvbid0IHdhbnQgdG8gY29uc2lkZXIgaG9sZXNcbiAgICAgIGFyci5zcGxpY2UoaSwgMSk7XG4gICAgfVxuICB9XG4gIGlmIChzb3J0KSB7XG4gICAgYXJyLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBhIC0gYjtcbiAgICB9KTsgLy8gcmVxdWlyZXMgY29weSA9IHRydWUgaWYgeW91IGRvbid0IHdhbnQgdG8gY2hhbmdlIHRoZSBvcmlnXG4gIH1cblxuICB2YXIgbGVuID0gYXJyLmxlbmd0aDtcbiAgdmFyIG1pZCA9IE1hdGguZmxvb3IobGVuIC8gMik7XG4gIGlmIChsZW4gJSAyICE9PSAwKSB7XG4gICAgcmV0dXJuIGFyclttaWQgKyAxICsgb2ZmXTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKGFyclttaWQgLSAxICsgb2ZmXSArIGFyclttaWQgKyBvZmZdKSAvIDI7XG4gIH1cbn07XG52YXIgZGVnMnJhZCA9IGZ1bmN0aW9uIGRlZzJyYWQoZGVnKSB7XG4gIHJldHVybiBNYXRoLlBJICogZGVnIC8gMTgwO1xufTtcbnZhciBnZXRBbmdsZUZyb21EaXNwID0gZnVuY3Rpb24gZ2V0QW5nbGVGcm9tRGlzcChkaXNwWCwgZGlzcFkpIHtcbiAgcmV0dXJuIE1hdGguYXRhbjIoZGlzcFksIGRpc3BYKSAtIE1hdGguUEkgLyAyO1xufTtcbnZhciBsb2cyID0gTWF0aC5sb2cyIHx8IGZ1bmN0aW9uIChuKSB7XG4gIHJldHVybiBNYXRoLmxvZyhuKSAvIE1hdGgubG9nKDIpO1xufTtcbnZhciBzaWdudW0gPSBmdW5jdGlvbiBzaWdudW0oeCkge1xuICBpZiAoeCA+IDApIHtcbiAgICByZXR1cm4gMTtcbiAgfSBlbHNlIGlmICh4IDwgMCkge1xuICAgIHJldHVybiAtMTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gMDtcbiAgfVxufTtcbnZhciBkaXN0ID0gZnVuY3Rpb24gZGlzdChwMSwgcDIpIHtcbiAgcmV0dXJuIE1hdGguc3FydChzcWRpc3QocDEsIHAyKSk7XG59O1xudmFyIHNxZGlzdCA9IGZ1bmN0aW9uIHNxZGlzdChwMSwgcDIpIHtcbiAgdmFyIGR4ID0gcDIueCAtIHAxLng7XG4gIHZhciBkeSA9IHAyLnkgLSBwMS55O1xuICByZXR1cm4gZHggKiBkeCArIGR5ICogZHk7XG59O1xudmFyIGluUGxhY2VTdW1Ob3JtYWxpemUgPSBmdW5jdGlvbiBpblBsYWNlU3VtTm9ybWFsaXplKHYpIHtcbiAgdmFyIGxlbmd0aCA9IHYubGVuZ3RoO1xuXG4gIC8vIEZpcnN0LCBnZXQgc3VtIG9mIGFsbCBlbGVtZW50c1xuICB2YXIgdG90YWwgPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgdG90YWwgKz0gdltpXTtcbiAgfVxuXG4gIC8vIE5vdywgZGl2aWRlIGVhY2ggYnkgdGhlIHN1bSBvZiBhbGwgZWxlbWVudHNcbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxlbmd0aDsgX2krKykge1xuICAgIHZbX2ldID0gdltfaV0gLyB0b3RhbDtcbiAgfVxuICByZXR1cm4gdjtcbn07XG5cbi8vIGZyb20gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Cw6l6aWVyX2N1cnZlI1F1YWRyYXRpY19jdXJ2ZXNcbnZhciBxYmV6aWVyQXQgPSBmdW5jdGlvbiBxYmV6aWVyQXQocDAsIHAxLCBwMiwgdCkge1xuICByZXR1cm4gKDEgLSB0KSAqICgxIC0gdCkgKiBwMCArIDIgKiAoMSAtIHQpICogdCAqIHAxICsgdCAqIHQgKiBwMjtcbn07XG52YXIgcWJlemllclB0QXQgPSBmdW5jdGlvbiBxYmV6aWVyUHRBdChwMCwgcDEsIHAyLCB0KSB7XG4gIHJldHVybiB7XG4gICAgeDogcWJlemllckF0KHAwLngsIHAxLngsIHAyLngsIHQpLFxuICAgIHk6IHFiZXppZXJBdChwMC55LCBwMS55LCBwMi55LCB0KVxuICB9O1xufTtcbnZhciBsaW5lQXQgPSBmdW5jdGlvbiBsaW5lQXQocDAsIHAxLCB0LCBkKSB7XG4gIHZhciB2ZWMgPSB7XG4gICAgeDogcDEueCAtIHAwLngsXG4gICAgeTogcDEueSAtIHAwLnlcbiAgfTtcbiAgdmFyIHZlY0Rpc3QgPSBkaXN0KHAwLCBwMSk7XG4gIHZhciBub3JtVmVjID0ge1xuICAgIHg6IHZlYy54IC8gdmVjRGlzdCxcbiAgICB5OiB2ZWMueSAvIHZlY0Rpc3RcbiAgfTtcbiAgdCA9IHQgPT0gbnVsbCA/IDAgOiB0O1xuICBkID0gZCAhPSBudWxsID8gZCA6IHQgKiB2ZWNEaXN0O1xuICByZXR1cm4ge1xuICAgIHg6IHAwLnggKyBub3JtVmVjLnggKiBkLFxuICAgIHk6IHAwLnkgKyBub3JtVmVjLnkgKiBkXG4gIH07XG59O1xudmFyIGJvdW5kID0gZnVuY3Rpb24gYm91bmQobWluLCB2YWwsIG1heCkge1xuICByZXR1cm4gTWF0aC5tYXgobWluLCBNYXRoLm1pbihtYXgsIHZhbCkpO1xufTtcblxuLy8gbWFrZXMgYSBmdWxsIGJiICh4MSwgeTEsIHgyLCB5MiwgdywgaCkgZnJvbSBpbXBsaWNpdCBwYXJhbXNcbnZhciBtYWtlQm91bmRpbmdCb3ggPSBmdW5jdGlvbiBtYWtlQm91bmRpbmdCb3goYmIpIHtcbiAgaWYgKGJiID09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgeDE6IEluZmluaXR5LFxuICAgICAgeTE6IEluZmluaXR5LFxuICAgICAgeDI6IC1JbmZpbml0eSxcbiAgICAgIHkyOiAtSW5maW5pdHksXG4gICAgICB3OiAwLFxuICAgICAgaDogMFxuICAgIH07XG4gIH0gZWxzZSBpZiAoYmIueDEgIT0gbnVsbCAmJiBiYi55MSAhPSBudWxsKSB7XG4gICAgaWYgKGJiLngyICE9IG51bGwgJiYgYmIueTIgIT0gbnVsbCAmJiBiYi54MiA+PSBiYi54MSAmJiBiYi55MiA+PSBiYi55MSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDE6IGJiLngxLFxuICAgICAgICB5MTogYmIueTEsXG4gICAgICAgIHgyOiBiYi54MixcbiAgICAgICAgeTI6IGJiLnkyLFxuICAgICAgICB3OiBiYi54MiAtIGJiLngxLFxuICAgICAgICBoOiBiYi55MiAtIGJiLnkxXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoYmIudyAhPSBudWxsICYmIGJiLmggIT0gbnVsbCAmJiBiYi53ID49IDAgJiYgYmIuaCA+PSAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB4MTogYmIueDEsXG4gICAgICAgIHkxOiBiYi55MSxcbiAgICAgICAgeDI6IGJiLngxICsgYmIudyxcbiAgICAgICAgeTI6IGJiLnkxICsgYmIuaCxcbiAgICAgICAgdzogYmIudyxcbiAgICAgICAgaDogYmIuaFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn07XG52YXIgY29weUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gY29weUJvdW5kaW5nQm94KGJiKSB7XG4gIHJldHVybiB7XG4gICAgeDE6IGJiLngxLFxuICAgIHgyOiBiYi54MixcbiAgICB3OiBiYi53LFxuICAgIHkxOiBiYi55MSxcbiAgICB5MjogYmIueTIsXG4gICAgaDogYmIuaFxuICB9O1xufTtcbnZhciBjbGVhckJvdW5kaW5nQm94ID0gZnVuY3Rpb24gY2xlYXJCb3VuZGluZ0JveChiYikge1xuICBiYi54MSA9IEluZmluaXR5O1xuICBiYi55MSA9IEluZmluaXR5O1xuICBiYi54MiA9IC1JbmZpbml0eTtcbiAgYmIueTIgPSAtSW5maW5pdHk7XG4gIGJiLncgPSAwO1xuICBiYi5oID0gMDtcbn07XG52YXIgc2hpZnRCb3VuZGluZ0JveCA9IGZ1bmN0aW9uIHNoaWZ0Qm91bmRpbmdCb3goYmIsIGR4LCBkeSkge1xuICByZXR1cm4ge1xuICAgIHgxOiBiYi54MSArIGR4LFxuICAgIHgyOiBiYi54MiArIGR4LFxuICAgIHkxOiBiYi55MSArIGR5LFxuICAgIHkyOiBiYi55MiArIGR5LFxuICAgIHc6IGJiLncsXG4gICAgaDogYmIuaFxuICB9O1xufTtcbnZhciB1cGRhdGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uIHVwZGF0ZUJvdW5kaW5nQm94KGJiMSwgYmIyKSB7XG4gIC8vIHVwZGF0ZSBiYjEgd2l0aCBiYjIgYm91bmRzXG5cbiAgYmIxLngxID0gTWF0aC5taW4oYmIxLngxLCBiYjIueDEpO1xuICBiYjEueDIgPSBNYXRoLm1heChiYjEueDIsIGJiMi54Mik7XG4gIGJiMS53ID0gYmIxLngyIC0gYmIxLngxO1xuICBiYjEueTEgPSBNYXRoLm1pbihiYjEueTEsIGJiMi55MSk7XG4gIGJiMS55MiA9IE1hdGgubWF4KGJiMS55MiwgYmIyLnkyKTtcbiAgYmIxLmggPSBiYjEueTIgLSBiYjEueTE7XG59O1xudmFyIGV4cGFuZEJvdW5kaW5nQm94QnlQb2ludCA9IGZ1bmN0aW9uIGV4cGFuZEJvdW5kaW5nQm94QnlQb2ludChiYiwgeCwgeSkge1xuICBiYi54MSA9IE1hdGgubWluKGJiLngxLCB4KTtcbiAgYmIueDIgPSBNYXRoLm1heChiYi54MiwgeCk7XG4gIGJiLncgPSBiYi54MiAtIGJiLngxO1xuICBiYi55MSA9IE1hdGgubWluKGJiLnkxLCB5KTtcbiAgYmIueTIgPSBNYXRoLm1heChiYi55MiwgeSk7XG4gIGJiLmggPSBiYi55MiAtIGJiLnkxO1xufTtcbnZhciBleHBhbmRCb3VuZGluZ0JveCA9IGZ1bmN0aW9uIGV4cGFuZEJvdW5kaW5nQm94KGJiKSB7XG4gIHZhciBwYWRkaW5nID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAwO1xuICBiYi54MSAtPSBwYWRkaW5nO1xuICBiYi54MiArPSBwYWRkaW5nO1xuICBiYi55MSAtPSBwYWRkaW5nO1xuICBiYi55MiArPSBwYWRkaW5nO1xuICBiYi53ID0gYmIueDIgLSBiYi54MTtcbiAgYmIuaCA9IGJiLnkyIC0gYmIueTE7XG4gIHJldHVybiBiYjtcbn07XG52YXIgZXhwYW5kQm91bmRpbmdCb3hTaWRlcyA9IGZ1bmN0aW9uIGV4cGFuZEJvdW5kaW5nQm94U2lkZXMoYmIpIHtcbiAgdmFyIHBhZGRpbmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IFswXTtcbiAgdmFyIHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdDtcbiAgaWYgKHBhZGRpbmcubGVuZ3RoID09PSAxKSB7XG4gICAgdG9wID0gcmlnaHQgPSBib3R0b20gPSBsZWZ0ID0gcGFkZGluZ1swXTtcbiAgfSBlbHNlIGlmIChwYWRkaW5nLmxlbmd0aCA9PT0gMikge1xuICAgIHRvcCA9IGJvdHRvbSA9IHBhZGRpbmdbMF07XG4gICAgbGVmdCA9IHJpZ2h0ID0gcGFkZGluZ1sxXTtcbiAgfSBlbHNlIGlmIChwYWRkaW5nLmxlbmd0aCA9PT0gNCkge1xuICAgIHZhciBfcGFkZGluZyA9IF9zbGljZWRUb0FycmF5KHBhZGRpbmcsIDQpO1xuICAgIHRvcCA9IF9wYWRkaW5nWzBdO1xuICAgIHJpZ2h0ID0gX3BhZGRpbmdbMV07XG4gICAgYm90dG9tID0gX3BhZGRpbmdbMl07XG4gICAgbGVmdCA9IF9wYWRkaW5nWzNdO1xuICB9XG4gIGJiLngxIC09IGxlZnQ7XG4gIGJiLngyICs9IHJpZ2h0O1xuICBiYi55MSAtPSB0b3A7XG4gIGJiLnkyICs9IGJvdHRvbTtcbiAgYmIudyA9IGJiLngyIC0gYmIueDE7XG4gIGJiLmggPSBiYi55MiAtIGJiLnkxO1xuICByZXR1cm4gYmI7XG59O1xuXG4vLyBhc3NpZ24gdGhlIHZhbHVlcyBvZiBiYjIgaW50byBiYjFcbnZhciBhc3NpZ25Cb3VuZGluZ0JveCA9IGZ1bmN0aW9uIGFzc2lnbkJvdW5kaW5nQm94KGJiMSwgYmIyKSB7XG4gIGJiMS54MSA9IGJiMi54MTtcbiAgYmIxLnkxID0gYmIyLnkxO1xuICBiYjEueDIgPSBiYjIueDI7XG4gIGJiMS55MiA9IGJiMi55MjtcbiAgYmIxLncgPSBiYjEueDIgLSBiYjEueDE7XG4gIGJiMS5oID0gYmIxLnkyIC0gYmIxLnkxO1xufTtcbnZhciBib3VuZGluZ0JveGVzSW50ZXJzZWN0ID0gZnVuY3Rpb24gYm91bmRpbmdCb3hlc0ludGVyc2VjdChiYjEsIGJiMikge1xuICAvLyBjYXNlOiBvbmUgYmIgdG8gcmlnaHQgb2Ygb3RoZXJcbiAgaWYgKGJiMS54MSA+IGJiMi54Mikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYmIyLngxID4gYmIxLngyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gY2FzZTogb25lIGJiIHRvIGxlZnQgb2Ygb3RoZXJcbiAgaWYgKGJiMS54MiA8IGJiMi54MSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYmIyLngyIDwgYmIxLngxKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gY2FzZTogb25lIGJiIGFib3ZlIG90aGVyXG4gIGlmIChiYjEueTIgPCBiYjIueTEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGJiMi55MiA8IGJiMS55MSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIGNhc2U6IG9uZSBiYiBiZWxvdyBvdGhlclxuICBpZiAoYmIxLnkxID4gYmIyLnkyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChiYjIueTEgPiBiYjEueTIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBvdGhlcndpc2UsIG11c3QgaGF2ZSBzb21lIG92ZXJsYXBcbiAgcmV0dXJuIHRydWU7XG59O1xudmFyIGluQm91bmRpbmdCb3ggPSBmdW5jdGlvbiBpbkJvdW5kaW5nQm94KGJiLCB4LCB5KSB7XG4gIHJldHVybiBiYi54MSA8PSB4ICYmIHggPD0gYmIueDIgJiYgYmIueTEgPD0geSAmJiB5IDw9IGJiLnkyO1xufTtcbnZhciBwb2ludEluQm91bmRpbmdCb3ggPSBmdW5jdGlvbiBwb2ludEluQm91bmRpbmdCb3goYmIsIHB0KSB7XG4gIHJldHVybiBpbkJvdW5kaW5nQm94KGJiLCBwdC54LCBwdC55KTtcbn07XG52YXIgYm91bmRpbmdCb3hJbkJvdW5kaW5nQm94ID0gZnVuY3Rpb24gYm91bmRpbmdCb3hJbkJvdW5kaW5nQm94KGJiMSwgYmIyKSB7XG4gIHJldHVybiBpbkJvdW5kaW5nQm94KGJiMSwgYmIyLngxLCBiYjIueTEpICYmIGluQm91bmRpbmdCb3goYmIxLCBiYjIueDIsIGJiMi55Mik7XG59O1xudmFyIHJvdW5kUmVjdGFuZ2xlSW50ZXJzZWN0TGluZSA9IGZ1bmN0aW9uIHJvdW5kUmVjdGFuZ2xlSW50ZXJzZWN0TGluZSh4LCB5LCBub2RlWCwgbm9kZVksIHdpZHRoLCBoZWlnaHQsIHBhZGRpbmcpIHtcbiAgdmFyIHJhZGl1cyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogJ2F1dG8nO1xuICB2YXIgY29ybmVyUmFkaXVzID0gcmFkaXVzID09PSAnYXV0bycgPyBnZXRSb3VuZFJlY3RhbmdsZVJhZGl1cyh3aWR0aCwgaGVpZ2h0KSA6IHJhZGl1cztcbiAgdmFyIGhhbGZXaWR0aCA9IHdpZHRoIC8gMjtcbiAgdmFyIGhhbGZIZWlnaHQgPSBoZWlnaHQgLyAyO1xuICBjb3JuZXJSYWRpdXMgPSBNYXRoLm1pbihjb3JuZXJSYWRpdXMsIGhhbGZXaWR0aCwgaGFsZkhlaWdodCk7XG4gIHZhciBkb1dpZHRoID0gY29ybmVyUmFkaXVzICE9PSBoYWxmV2lkdGgsXG4gICAgZG9IZWlnaHQgPSBjb3JuZXJSYWRpdXMgIT09IGhhbGZIZWlnaHQ7XG5cbiAgLy8gQ2hlY2sgaW50ZXJzZWN0aW9ucyB3aXRoIHN0cmFpZ2h0IGxpbmUgc2VnbWVudHNcbiAgdmFyIHN0cmFpZ2h0TGluZUludGVyc2VjdGlvbnM7XG5cbiAgLy8gVG9wIHNlZ21lbnQsIGxlZnQgdG8gcmlnaHRcbiAgaWYgKGRvV2lkdGgpIHtcbiAgICB2YXIgdG9wU3RhcnRYID0gbm9kZVggLSBoYWxmV2lkdGggKyBjb3JuZXJSYWRpdXMgLSBwYWRkaW5nO1xuICAgIHZhciB0b3BTdGFydFkgPSBub2RlWSAtIGhhbGZIZWlnaHQgLSBwYWRkaW5nO1xuICAgIHZhciB0b3BFbmRYID0gbm9kZVggKyBoYWxmV2lkdGggLSBjb3JuZXJSYWRpdXMgKyBwYWRkaW5nO1xuICAgIHZhciB0b3BFbmRZID0gdG9wU3RhcnRZO1xuICAgIHN0cmFpZ2h0TGluZUludGVyc2VjdGlvbnMgPSBmaW5pdGVMaW5lc0ludGVyc2VjdCh4LCB5LCBub2RlWCwgbm9kZVksIHRvcFN0YXJ0WCwgdG9wU3RhcnRZLCB0b3BFbmRYLCB0b3BFbmRZLCBmYWxzZSk7XG4gICAgaWYgKHN0cmFpZ2h0TGluZUludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHN0cmFpZ2h0TGluZUludGVyc2VjdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgLy8gUmlnaHQgc2VnbWVudCwgdG9wIHRvIGJvdHRvbVxuICBpZiAoZG9IZWlnaHQpIHtcbiAgICB2YXIgcmlnaHRTdGFydFggPSBub2RlWCArIGhhbGZXaWR0aCArIHBhZGRpbmc7XG4gICAgdmFyIHJpZ2h0U3RhcnRZID0gbm9kZVkgLSBoYWxmSGVpZ2h0ICsgY29ybmVyUmFkaXVzIC0gcGFkZGluZztcbiAgICB2YXIgcmlnaHRFbmRYID0gcmlnaHRTdGFydFg7XG4gICAgdmFyIHJpZ2h0RW5kWSA9IG5vZGVZICsgaGFsZkhlaWdodCAtIGNvcm5lclJhZGl1cyArIHBhZGRpbmc7XG4gICAgc3RyYWlnaHRMaW5lSW50ZXJzZWN0aW9ucyA9IGZpbml0ZUxpbmVzSW50ZXJzZWN0KHgsIHksIG5vZGVYLCBub2RlWSwgcmlnaHRTdGFydFgsIHJpZ2h0U3RhcnRZLCByaWdodEVuZFgsIHJpZ2h0RW5kWSwgZmFsc2UpO1xuICAgIGlmIChzdHJhaWdodExpbmVJbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBzdHJhaWdodExpbmVJbnRlcnNlY3Rpb25zO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJvdHRvbSBzZWdtZW50LCBsZWZ0IHRvIHJpZ2h0XG4gIGlmIChkb1dpZHRoKSB7XG4gICAgdmFyIGJvdHRvbVN0YXJ0WCA9IG5vZGVYIC0gaGFsZldpZHRoICsgY29ybmVyUmFkaXVzIC0gcGFkZGluZztcbiAgICB2YXIgYm90dG9tU3RhcnRZID0gbm9kZVkgKyBoYWxmSGVpZ2h0ICsgcGFkZGluZztcbiAgICB2YXIgYm90dG9tRW5kWCA9IG5vZGVYICsgaGFsZldpZHRoIC0gY29ybmVyUmFkaXVzICsgcGFkZGluZztcbiAgICB2YXIgYm90dG9tRW5kWSA9IGJvdHRvbVN0YXJ0WTtcbiAgICBzdHJhaWdodExpbmVJbnRlcnNlY3Rpb25zID0gZmluaXRlTGluZXNJbnRlcnNlY3QoeCwgeSwgbm9kZVgsIG5vZGVZLCBib3R0b21TdGFydFgsIGJvdHRvbVN0YXJ0WSwgYm90dG9tRW5kWCwgYm90dG9tRW5kWSwgZmFsc2UpO1xuICAgIGlmIChzdHJhaWdodExpbmVJbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBzdHJhaWdodExpbmVJbnRlcnNlY3Rpb25zO1xuICAgIH1cbiAgfVxuXG4gIC8vIExlZnQgc2VnbWVudCwgdG9wIHRvIGJvdHRvbVxuICBpZiAoZG9IZWlnaHQpIHtcbiAgICB2YXIgbGVmdFN0YXJ0WCA9IG5vZGVYIC0gaGFsZldpZHRoIC0gcGFkZGluZztcbiAgICB2YXIgbGVmdFN0YXJ0WSA9IG5vZGVZIC0gaGFsZkhlaWdodCArIGNvcm5lclJhZGl1cyAtIHBhZGRpbmc7XG4gICAgdmFyIGxlZnRFbmRYID0gbGVmdFN0YXJ0WDtcbiAgICB2YXIgbGVmdEVuZFkgPSBub2RlWSArIGhhbGZIZWlnaHQgLSBjb3JuZXJSYWRpdXMgKyBwYWRkaW5nO1xuICAgIHN0cmFpZ2h0TGluZUludGVyc2VjdGlvbnMgPSBmaW5pdGVMaW5lc0ludGVyc2VjdCh4LCB5LCBub2RlWCwgbm9kZVksIGxlZnRTdGFydFgsIGxlZnRTdGFydFksIGxlZnRFbmRYLCBsZWZ0RW5kWSwgZmFsc2UpO1xuICAgIGlmIChzdHJhaWdodExpbmVJbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBzdHJhaWdodExpbmVJbnRlcnNlY3Rpb25zO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGludGVyc2VjdGlvbnMgd2l0aCBhcmMgc2VnbWVudHNcbiAgdmFyIGFyY0ludGVyc2VjdGlvbnM7XG5cbiAgLy8gVG9wIExlZnRcbiAge1xuICAgIHZhciB0b3BMZWZ0Q2VudGVyWCA9IG5vZGVYIC0gaGFsZldpZHRoICsgY29ybmVyUmFkaXVzO1xuICAgIHZhciB0b3BMZWZ0Q2VudGVyWSA9IG5vZGVZIC0gaGFsZkhlaWdodCArIGNvcm5lclJhZGl1cztcbiAgICBhcmNJbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0TGluZUNpcmNsZSh4LCB5LCBub2RlWCwgbm9kZVksIHRvcExlZnRDZW50ZXJYLCB0b3BMZWZ0Q2VudGVyWSwgY29ybmVyUmFkaXVzICsgcGFkZGluZyk7XG5cbiAgICAvLyBFbnN1cmUgdGhlIGludGVyc2VjdGlvbiBpcyBvbiB0aGUgZGVzaXJlZCBxdWFydGVyIG9mIHRoZSBjaXJjbGVcbiAgICBpZiAoYXJjSW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICYmIGFyY0ludGVyc2VjdGlvbnNbMF0gPD0gdG9wTGVmdENlbnRlclggJiYgYXJjSW50ZXJzZWN0aW9uc1sxXSA8PSB0b3BMZWZ0Q2VudGVyWSkge1xuICAgICAgcmV0dXJuIFthcmNJbnRlcnNlY3Rpb25zWzBdLCBhcmNJbnRlcnNlY3Rpb25zWzFdXTtcbiAgICB9XG4gIH1cblxuICAvLyBUb3AgUmlnaHRcbiAge1xuICAgIHZhciB0b3BSaWdodENlbnRlclggPSBub2RlWCArIGhhbGZXaWR0aCAtIGNvcm5lclJhZGl1cztcbiAgICB2YXIgdG9wUmlnaHRDZW50ZXJZID0gbm9kZVkgLSBoYWxmSGVpZ2h0ICsgY29ybmVyUmFkaXVzO1xuICAgIGFyY0ludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3RMaW5lQ2lyY2xlKHgsIHksIG5vZGVYLCBub2RlWSwgdG9wUmlnaHRDZW50ZXJYLCB0b3BSaWdodENlbnRlclksIGNvcm5lclJhZGl1cyArIHBhZGRpbmcpO1xuXG4gICAgLy8gRW5zdXJlIHRoZSBpbnRlcnNlY3Rpb24gaXMgb24gdGhlIGRlc2lyZWQgcXVhcnRlciBvZiB0aGUgY2lyY2xlXG4gICAgaWYgKGFyY0ludGVyc2VjdGlvbnMubGVuZ3RoID4gMCAmJiBhcmNJbnRlcnNlY3Rpb25zWzBdID49IHRvcFJpZ2h0Q2VudGVyWCAmJiBhcmNJbnRlcnNlY3Rpb25zWzFdIDw9IHRvcFJpZ2h0Q2VudGVyWSkge1xuICAgICAgcmV0dXJuIFthcmNJbnRlcnNlY3Rpb25zWzBdLCBhcmNJbnRlcnNlY3Rpb25zWzFdXTtcbiAgICB9XG4gIH1cblxuICAvLyBCb3R0b20gUmlnaHRcbiAge1xuICAgIHZhciBib3R0b21SaWdodENlbnRlclggPSBub2RlWCArIGhhbGZXaWR0aCAtIGNvcm5lclJhZGl1cztcbiAgICB2YXIgYm90dG9tUmlnaHRDZW50ZXJZID0gbm9kZVkgKyBoYWxmSGVpZ2h0IC0gY29ybmVyUmFkaXVzO1xuICAgIGFyY0ludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3RMaW5lQ2lyY2xlKHgsIHksIG5vZGVYLCBub2RlWSwgYm90dG9tUmlnaHRDZW50ZXJYLCBib3R0b21SaWdodENlbnRlclksIGNvcm5lclJhZGl1cyArIHBhZGRpbmcpO1xuXG4gICAgLy8gRW5zdXJlIHRoZSBpbnRlcnNlY3Rpb24gaXMgb24gdGhlIGRlc2lyZWQgcXVhcnRlciBvZiB0aGUgY2lyY2xlXG4gICAgaWYgKGFyY0ludGVyc2VjdGlvbnMubGVuZ3RoID4gMCAmJiBhcmNJbnRlcnNlY3Rpb25zWzBdID49IGJvdHRvbVJpZ2h0Q2VudGVyWCAmJiBhcmNJbnRlcnNlY3Rpb25zWzFdID49IGJvdHRvbVJpZ2h0Q2VudGVyWSkge1xuICAgICAgcmV0dXJuIFthcmNJbnRlcnNlY3Rpb25zWzBdLCBhcmNJbnRlcnNlY3Rpb25zWzFdXTtcbiAgICB9XG4gIH1cblxuICAvLyBCb3R0b20gTGVmdFxuICB7XG4gICAgdmFyIGJvdHRvbUxlZnRDZW50ZXJYID0gbm9kZVggLSBoYWxmV2lkdGggKyBjb3JuZXJSYWRpdXM7XG4gICAgdmFyIGJvdHRvbUxlZnRDZW50ZXJZID0gbm9kZVkgKyBoYWxmSGVpZ2h0IC0gY29ybmVyUmFkaXVzO1xuICAgIGFyY0ludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3RMaW5lQ2lyY2xlKHgsIHksIG5vZGVYLCBub2RlWSwgYm90dG9tTGVmdENlbnRlclgsIGJvdHRvbUxlZnRDZW50ZXJZLCBjb3JuZXJSYWRpdXMgKyBwYWRkaW5nKTtcblxuICAgIC8vIEVuc3VyZSB0aGUgaW50ZXJzZWN0aW9uIGlzIG9uIHRoZSBkZXNpcmVkIHF1YXJ0ZXIgb2YgdGhlIGNpcmNsZVxuICAgIGlmIChhcmNJbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgJiYgYXJjSW50ZXJzZWN0aW9uc1swXSA8PSBib3R0b21MZWZ0Q2VudGVyWCAmJiBhcmNJbnRlcnNlY3Rpb25zWzFdID49IGJvdHRvbUxlZnRDZW50ZXJZKSB7XG4gICAgICByZXR1cm4gW2FyY0ludGVyc2VjdGlvbnNbMF0sIGFyY0ludGVyc2VjdGlvbnNbMV1dO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW107IC8vIGlmIG5vdGhpbmdcbn07XG5cbnZhciBpbkxpbmVWaWNpbml0eSA9IGZ1bmN0aW9uIGluTGluZVZpY2luaXR5KHgsIHksIGx4MSwgbHkxLCBseDIsIGx5MiwgdG9sZXJhbmNlKSB7XG4gIHZhciB0ID0gdG9sZXJhbmNlO1xuICB2YXIgeDEgPSBNYXRoLm1pbihseDEsIGx4Mik7XG4gIHZhciB4MiA9IE1hdGgubWF4KGx4MSwgbHgyKTtcbiAgdmFyIHkxID0gTWF0aC5taW4obHkxLCBseTIpO1xuICB2YXIgeTIgPSBNYXRoLm1heChseTEsIGx5Mik7XG4gIHJldHVybiB4MSAtIHQgPD0geCAmJiB4IDw9IHgyICsgdCAmJiB5MSAtIHQgPD0geSAmJiB5IDw9IHkyICsgdDtcbn07XG52YXIgaW5CZXppZXJWaWNpbml0eSA9IGZ1bmN0aW9uIGluQmV6aWVyVmljaW5pdHkoeCwgeSwgeDEsIHkxLCB4MiwgeTIsIHgzLCB5MywgdG9sZXJhbmNlKSB7XG4gIHZhciBiYiA9IHtcbiAgICB4MTogTWF0aC5taW4oeDEsIHgzLCB4MikgLSB0b2xlcmFuY2UsXG4gICAgeDI6IE1hdGgubWF4KHgxLCB4MywgeDIpICsgdG9sZXJhbmNlLFxuICAgIHkxOiBNYXRoLm1pbih5MSwgeTMsIHkyKSAtIHRvbGVyYW5jZSxcbiAgICB5MjogTWF0aC5tYXgoeTEsIHkzLCB5MikgKyB0b2xlcmFuY2VcbiAgfTtcblxuICAvLyBpZiBvdXRzaWRlIHRoZSByb3VnaCBib3VuZGluZyBib3ggZm9yIHRoZSBiZXppZXIsIHRoZW4gaXQgY2FuJ3QgYmUgYSBoaXRcbiAgaWYgKHggPCBiYi54MSB8fCB4ID4gYmIueDIgfHwgeSA8IGJiLnkxIHx8IHkgPiBiYi55Mikge1xuICAgIC8vIGNvbnNvbGUubG9nKCdiZXppZXIgb3V0IG9mIHJvdWdoIGJiJylcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgLy8gY29uc29sZS5sb2coJ2RvIG1vcmUgZXhwZW5zaXZlIGNoZWNrJyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG52YXIgc29sdmVRdWFkcmF0aWMgPSBmdW5jdGlvbiBzb2x2ZVF1YWRyYXRpYyhhLCBiLCBjLCB2YWwpIHtcbiAgYyAtPSB2YWw7XG4gIHZhciByID0gYiAqIGIgLSA0ICogYSAqIGM7XG4gIGlmIChyIDwgMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICB2YXIgc3FydFIgPSBNYXRoLnNxcnQocik7XG4gIHZhciBkZW5vbSA9IDIgKiBhO1xuICB2YXIgcm9vdDEgPSAoLWIgKyBzcXJ0UikgLyBkZW5vbTtcbiAgdmFyIHJvb3QyID0gKC1iIC0gc3FydFIpIC8gZGVub207XG4gIHJldHVybiBbcm9vdDEsIHJvb3QyXTtcbn07XG52YXIgc29sdmVDdWJpYyA9IGZ1bmN0aW9uIHNvbHZlQ3ViaWMoYSwgYiwgYywgZCwgcmVzdWx0KSB7XG4gIC8vIFNvbHZlcyBhIGN1YmljIGZ1bmN0aW9uLCByZXR1cm5zIHJvb3QgaW4gZm9ybSBbcjEsIGkxLCByMiwgaTIsIHIzLCBpM10sIHdoZXJlXG4gIC8vIHIgaXMgdGhlIHJlYWwgY29tcG9uZW50LCBpIGlzIHRoZSBpbWFnaW5hcnkgY29tcG9uZW50XG5cbiAgLy8gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIENhcmRhbm8gbWV0aG9kIGZyb20gdGhlIHllYXIgMTU0NVxuICAvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0N1YmljX2Z1bmN0aW9uI1RoZV9uYXR1cmVfb2ZfdGhlX3Jvb3RzXG5cbiAgdmFyIGVwc2lsb24gPSAwLjAwMDAxO1xuXG4gIC8vIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm8gd2hpbGUga2VlcGluZyB0aGUgb3ZlcmFsbCBleHByZXNzaW9uIGNsb3NlIGluIHZhbHVlXG4gIGlmIChhID09PSAwKSB7XG4gICAgYSA9IGVwc2lsb247XG4gIH1cbiAgYiAvPSBhO1xuICBjIC89IGE7XG4gIGQgLz0gYTtcbiAgdmFyIGRpc2NyaW1pbmFudCwgcSwgciwgZHVtMSwgcywgdCwgdGVybTEsIHIxMztcbiAgcSA9ICgzLjAgKiBjIC0gYiAqIGIpIC8gOS4wO1xuICByID0gLSgyNy4wICogZCkgKyBiICogKDkuMCAqIGMgLSAyLjAgKiAoYiAqIGIpKTtcbiAgciAvPSA1NC4wO1xuICBkaXNjcmltaW5hbnQgPSBxICogcSAqIHEgKyByICogcjtcbiAgcmVzdWx0WzFdID0gMDtcbiAgdGVybTEgPSBiIC8gMy4wO1xuICBpZiAoZGlzY3JpbWluYW50ID4gMCkge1xuICAgIHMgPSByICsgTWF0aC5zcXJ0KGRpc2NyaW1pbmFudCk7XG4gICAgcyA9IHMgPCAwID8gLU1hdGgucG93KC1zLCAxLjAgLyAzLjApIDogTWF0aC5wb3cocywgMS4wIC8gMy4wKTtcbiAgICB0ID0gciAtIE1hdGguc3FydChkaXNjcmltaW5hbnQpO1xuICAgIHQgPSB0IDwgMCA/IC1NYXRoLnBvdygtdCwgMS4wIC8gMy4wKSA6IE1hdGgucG93KHQsIDEuMCAvIDMuMCk7XG4gICAgcmVzdWx0WzBdID0gLXRlcm0xICsgcyArIHQ7XG4gICAgdGVybTEgKz0gKHMgKyB0KSAvIDIuMDtcbiAgICByZXN1bHRbNF0gPSByZXN1bHRbMl0gPSAtdGVybTE7XG4gICAgdGVybTEgPSBNYXRoLnNxcnQoMy4wKSAqICgtdCArIHMpIC8gMjtcbiAgICByZXN1bHRbM10gPSB0ZXJtMTtcbiAgICByZXN1bHRbNV0gPSAtdGVybTE7XG4gICAgcmV0dXJuO1xuICB9XG4gIHJlc3VsdFs1XSA9IHJlc3VsdFszXSA9IDA7XG4gIGlmIChkaXNjcmltaW5hbnQgPT09IDApIHtcbiAgICByMTMgPSByIDwgMCA/IC1NYXRoLnBvdygtciwgMS4wIC8gMy4wKSA6IE1hdGgucG93KHIsIDEuMCAvIDMuMCk7XG4gICAgcmVzdWx0WzBdID0gLXRlcm0xICsgMi4wICogcjEzO1xuICAgIHJlc3VsdFs0XSA9IHJlc3VsdFsyXSA9IC0ocjEzICsgdGVybTEpO1xuICAgIHJldHVybjtcbiAgfVxuICBxID0gLXE7XG4gIGR1bTEgPSBxICogcSAqIHE7XG4gIGR1bTEgPSBNYXRoLmFjb3MociAvIE1hdGguc3FydChkdW0xKSk7XG4gIHIxMyA9IDIuMCAqIE1hdGguc3FydChxKTtcbiAgcmVzdWx0WzBdID0gLXRlcm0xICsgcjEzICogTWF0aC5jb3MoZHVtMSAvIDMuMCk7XG4gIHJlc3VsdFsyXSA9IC10ZXJtMSArIHIxMyAqIE1hdGguY29zKChkdW0xICsgMi4wICogTWF0aC5QSSkgLyAzLjApO1xuICByZXN1bHRbNF0gPSAtdGVybTEgKyByMTMgKiBNYXRoLmNvcygoZHVtMSArIDQuMCAqIE1hdGguUEkpIC8gMy4wKTtcbiAgcmV0dXJuO1xufTtcbnZhciBzcWRpc3RUb1F1YWRyYXRpY0JlemllciA9IGZ1bmN0aW9uIHNxZGlzdFRvUXVhZHJhdGljQmV6aWVyKHgsIHksIHgxLCB5MSwgeDIsIHkyLCB4MywgeTMpIHtcbiAgLy8gRmluZCBtaW5pbXVtIGRpc3RhbmNlIGJ5IHVzaW5nIHRoZSBtaW5pbXVtIG9mIHRoZSBkaXN0YW5jZVxuICAvLyBmdW5jdGlvbiBiZXR3ZWVuIHRoZSBnaXZlbiBwb2ludCBhbmQgdGhlIGN1cnZlXG5cbiAgLy8gVGhpcyBnaXZlcyB0aGUgY29lZmZpY2llbnRzIG9mIHRoZSByZXN1bHRpbmcgY3ViaWMgZXF1YXRpb25cbiAgLy8gd2hvc2Ugcm9vdHMgdGVsbCB1cyB3aGVyZSBhIHBvc3NpYmxlIG1pbmltdW0gaXNcbiAgLy8gKENvZWZmaWNpZW50cyBhcmUgZGl2aWRlZCBieSA0KVxuXG4gIHZhciBhID0gMS4wICogeDEgKiB4MSAtIDQgKiB4MSAqIHgyICsgMiAqIHgxICogeDMgKyA0ICogeDIgKiB4MiAtIDQgKiB4MiAqIHgzICsgeDMgKiB4MyArIHkxICogeTEgLSA0ICogeTEgKiB5MiArIDIgKiB5MSAqIHkzICsgNCAqIHkyICogeTIgLSA0ICogeTIgKiB5MyArIHkzICogeTM7XG4gIHZhciBiID0gMS4wICogOSAqIHgxICogeDIgLSAzICogeDEgKiB4MSAtIDMgKiB4MSAqIHgzIC0gNiAqIHgyICogeDIgKyAzICogeDIgKiB4MyArIDkgKiB5MSAqIHkyIC0gMyAqIHkxICogeTEgLSAzICogeTEgKiB5MyAtIDYgKiB5MiAqIHkyICsgMyAqIHkyICogeTM7XG4gIHZhciBjID0gMS4wICogMyAqIHgxICogeDEgLSA2ICogeDEgKiB4MiArIHgxICogeDMgLSB4MSAqIHggKyAyICogeDIgKiB4MiArIDIgKiB4MiAqIHggLSB4MyAqIHggKyAzICogeTEgKiB5MSAtIDYgKiB5MSAqIHkyICsgeTEgKiB5MyAtIHkxICogeSArIDIgKiB5MiAqIHkyICsgMiAqIHkyICogeSAtIHkzICogeTtcbiAgdmFyIGQgPSAxLjAgKiB4MSAqIHgyIC0geDEgKiB4MSArIHgxICogeCAtIHgyICogeCArIHkxICogeTIgLSB5MSAqIHkxICsgeTEgKiB5IC0geTIgKiB5O1xuXG4gIC8vIGRlYnVnKFwiY29lZmZpY2llbnRzOiBcIiArIGEgLyBhICsgXCIsIFwiICsgYiAvIGEgKyBcIiwgXCIgKyBjIC8gYSArIFwiLCBcIiArIGQgLyBhKTtcblxuICB2YXIgcm9vdHMgPSBbXTtcblxuICAvLyBVc2UgdGhlIGN1YmljIHNvbHZpbmcgYWxnb3JpdGhtXG4gIHNvbHZlQ3ViaWMoYSwgYiwgYywgZCwgcm9vdHMpO1xuICB2YXIgemVyb1RocmVzaG9sZCA9IDAuMDAwMDAwMTtcbiAgdmFyIHBhcmFtcyA9IFtdO1xuICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgNjsgaW5kZXggKz0gMikge1xuICAgIGlmIChNYXRoLmFicyhyb290c1tpbmRleCArIDFdKSA8IHplcm9UaHJlc2hvbGQgJiYgcm9vdHNbaW5kZXhdID49IDAgJiYgcm9vdHNbaW5kZXhdIDw9IDEuMCkge1xuICAgICAgcGFyYW1zLnB1c2gocm9vdHNbaW5kZXhdKTtcbiAgICB9XG4gIH1cbiAgcGFyYW1zLnB1c2goMS4wKTtcbiAgcGFyYW1zLnB1c2goMC4wKTtcbiAgdmFyIG1pbkRpc3RhbmNlU3F1YXJlZCA9IC0xO1xuICB2YXIgY3VyWCwgY3VyWSwgZGlzdFNxdWFyZWQ7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgY3VyWCA9IE1hdGgucG93KDEuMCAtIHBhcmFtc1tpXSwgMi4wKSAqIHgxICsgMi4wICogKDEgLSBwYXJhbXNbaV0pICogcGFyYW1zW2ldICogeDIgKyBwYXJhbXNbaV0gKiBwYXJhbXNbaV0gKiB4MztcbiAgICBjdXJZID0gTWF0aC5wb3coMSAtIHBhcmFtc1tpXSwgMi4wKSAqIHkxICsgMiAqICgxLjAgLSBwYXJhbXNbaV0pICogcGFyYW1zW2ldICogeTIgKyBwYXJhbXNbaV0gKiBwYXJhbXNbaV0gKiB5MztcbiAgICBkaXN0U3F1YXJlZCA9IE1hdGgucG93KGN1clggLSB4LCAyKSArIE1hdGgucG93KGN1clkgLSB5LCAyKTtcbiAgICAvLyBkZWJ1ZygnZGlzdGFuY2UgZm9yIHBhcmFtICcgKyBwYXJhbXNbaV0gKyBcIjogXCIgKyBNYXRoLnNxcnQoZGlzdFNxdWFyZWQpKTtcbiAgICBpZiAobWluRGlzdGFuY2VTcXVhcmVkID49IDApIHtcbiAgICAgIGlmIChkaXN0U3F1YXJlZCA8IG1pbkRpc3RhbmNlU3F1YXJlZCkge1xuICAgICAgICBtaW5EaXN0YW5jZVNxdWFyZWQgPSBkaXN0U3F1YXJlZDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWluRGlzdGFuY2VTcXVhcmVkID0gZGlzdFNxdWFyZWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBtaW5EaXN0YW5jZVNxdWFyZWQ7XG59O1xudmFyIHNxZGlzdFRvRmluaXRlTGluZSA9IGZ1bmN0aW9uIHNxZGlzdFRvRmluaXRlTGluZSh4LCB5LCB4MSwgeTEsIHgyLCB5Mikge1xuICB2YXIgb2Zmc2V0ID0gW3ggLSB4MSwgeSAtIHkxXTtcbiAgdmFyIGxpbmUgPSBbeDIgLSB4MSwgeTIgLSB5MV07XG4gIHZhciBsaW5lU3EgPSBsaW5lWzBdICogbGluZVswXSArIGxpbmVbMV0gKiBsaW5lWzFdO1xuICB2YXIgaHlwU3EgPSBvZmZzZXRbMF0gKiBvZmZzZXRbMF0gKyBvZmZzZXRbMV0gKiBvZmZzZXRbMV07XG4gIHZhciBkb3RQcm9kdWN0ID0gb2Zmc2V0WzBdICogbGluZVswXSArIG9mZnNldFsxXSAqIGxpbmVbMV07XG4gIHZhciBhZGpTcSA9IGRvdFByb2R1Y3QgKiBkb3RQcm9kdWN0IC8gbGluZVNxO1xuICBpZiAoZG90UHJvZHVjdCA8IDApIHtcbiAgICByZXR1cm4gaHlwU3E7XG4gIH1cbiAgaWYgKGFkalNxID4gbGluZVNxKSB7XG4gICAgcmV0dXJuICh4IC0geDIpICogKHggLSB4MikgKyAoeSAtIHkyKSAqICh5IC0geTIpO1xuICB9XG4gIHJldHVybiBoeXBTcSAtIGFkalNxO1xufTtcbnZhciBwb2ludEluc2lkZVBvbHlnb25Qb2ludHMgPSBmdW5jdGlvbiBwb2ludEluc2lkZVBvbHlnb25Qb2ludHMoeCwgeSwgcG9pbnRzKSB7XG4gIHZhciB4MSwgeTEsIHgyLCB5MjtcbiAgdmFyIHkzO1xuXG4gIC8vIEludGVyc2VjdCB3aXRoIHZlcnRpY2FsIGxpbmUgdGhyb3VnaCAoeCwgeSlcbiAgdmFyIHVwID0gMDtcbiAgLy8gbGV0IGRvd24gPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGggLyAyOyBpKyspIHtcbiAgICB4MSA9IHBvaW50c1tpICogMl07XG4gICAgeTEgPSBwb2ludHNbaSAqIDIgKyAxXTtcbiAgICBpZiAoaSArIDEgPCBwb2ludHMubGVuZ3RoIC8gMikge1xuICAgICAgeDIgPSBwb2ludHNbKGkgKyAxKSAqIDJdO1xuICAgICAgeTIgPSBwb2ludHNbKGkgKyAxKSAqIDIgKyAxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgeDIgPSBwb2ludHNbKGkgKyAxIC0gcG9pbnRzLmxlbmd0aCAvIDIpICogMl07XG4gICAgICB5MiA9IHBvaW50c1soaSArIDEgLSBwb2ludHMubGVuZ3RoIC8gMikgKiAyICsgMV07XG4gICAgfVxuICAgIGlmICh4MSA9PSB4ICYmIHgyID09IHgpIDsgZWxzZSBpZiAoeDEgPj0geCAmJiB4ID49IHgyIHx8IHgxIDw9IHggJiYgeCA8PSB4Mikge1xuICAgICAgeTMgPSAoeCAtIHgxKSAvICh4MiAtIHgxKSAqICh5MiAtIHkxKSArIHkxO1xuICAgICAgaWYgKHkzID4geSkge1xuICAgICAgICB1cCsrO1xuICAgICAgfVxuXG4gICAgICAvLyBpZiggeTMgPCB5ICl7XG4gICAgICAvLyBkb3duKys7XG4gICAgICAvLyB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgfVxuICBpZiAodXAgJSAyID09PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xudmFyIHBvaW50SW5zaWRlUG9seWdvbiA9IGZ1bmN0aW9uIHBvaW50SW5zaWRlUG9seWdvbih4LCB5LCBiYXNlUG9pbnRzLCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCBkaXJlY3Rpb24sIHBhZGRpbmcpIHtcbiAgdmFyIHRyYW5zZm9ybWVkUG9pbnRzID0gbmV3IEFycmF5KGJhc2VQb2ludHMubGVuZ3RoKTtcblxuICAvLyBHaXZlcyBuZWdhdGl2ZSBhbmdsZVxuICB2YXIgYW5nbGU7XG4gIGlmIChkaXJlY3Rpb25bMF0gIT0gbnVsbCkge1xuICAgIGFuZ2xlID0gTWF0aC5hdGFuKGRpcmVjdGlvblsxXSAvIGRpcmVjdGlvblswXSk7XG4gICAgaWYgKGRpcmVjdGlvblswXSA8IDApIHtcbiAgICAgIGFuZ2xlID0gYW5nbGUgKyBNYXRoLlBJIC8gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgYW5nbGUgPSAtYW5nbGUgLSBNYXRoLlBJIC8gMjtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYW5nbGUgPSBkaXJlY3Rpb247XG4gIH1cbiAgdmFyIGNvcyA9IE1hdGguY29zKC1hbmdsZSk7XG4gIHZhciBzaW4gPSBNYXRoLnNpbigtYW5nbGUpO1xuXG4gIC8vICAgIGNvbnNvbGUubG9nKFwiYmFzZTogXCIgKyBiYXNlUG9pbnRzKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmFuc2Zvcm1lZFBvaW50cy5sZW5ndGggLyAyOyBpKyspIHtcbiAgICB0cmFuc2Zvcm1lZFBvaW50c1tpICogMl0gPSB3aWR0aCAvIDIgKiAoYmFzZVBvaW50c1tpICogMl0gKiBjb3MgLSBiYXNlUG9pbnRzW2kgKiAyICsgMV0gKiBzaW4pO1xuICAgIHRyYW5zZm9ybWVkUG9pbnRzW2kgKiAyICsgMV0gPSBoZWlnaHQgLyAyICogKGJhc2VQb2ludHNbaSAqIDIgKyAxXSAqIGNvcyArIGJhc2VQb2ludHNbaSAqIDJdICogc2luKTtcbiAgICB0cmFuc2Zvcm1lZFBvaW50c1tpICogMl0gKz0gY2VudGVyWDtcbiAgICB0cmFuc2Zvcm1lZFBvaW50c1tpICogMiArIDFdICs9IGNlbnRlclk7XG4gIH1cbiAgdmFyIHBvaW50cztcbiAgaWYgKHBhZGRpbmcgPiAwKSB7XG4gICAgdmFyIGV4cGFuZGVkTGluZVNldCA9IGV4cGFuZFBvbHlnb24odHJhbnNmb3JtZWRQb2ludHMsIC1wYWRkaW5nKTtcbiAgICBwb2ludHMgPSBqb2luTGluZXMoZXhwYW5kZWRMaW5lU2V0KTtcbiAgfSBlbHNlIHtcbiAgICBwb2ludHMgPSB0cmFuc2Zvcm1lZFBvaW50cztcbiAgfVxuICByZXR1cm4gcG9pbnRJbnNpZGVQb2x5Z29uUG9pbnRzKHgsIHksIHBvaW50cyk7XG59O1xudmFyIHBvaW50SW5zaWRlUm91bmRQb2x5Z29uID0gZnVuY3Rpb24gcG9pbnRJbnNpZGVSb3VuZFBvbHlnb24oeCwgeSwgYmFzZVBvaW50cywgY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgY29ybmVycykge1xuICB2YXIgY3V0UG9seWdvblBvaW50cyA9IG5ldyBBcnJheShiYXNlUG9pbnRzLmxlbmd0aCAqIDIpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvcm5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgY29ybmVyID0gY29ybmVyc1tpXTtcbiAgICBjdXRQb2x5Z29uUG9pbnRzW2kgKiA0ICsgMF0gPSBjb3JuZXIuc3RhcnRYO1xuICAgIGN1dFBvbHlnb25Qb2ludHNbaSAqIDQgKyAxXSA9IGNvcm5lci5zdGFydFk7XG4gICAgY3V0UG9seWdvblBvaW50c1tpICogNCArIDJdID0gY29ybmVyLnN0b3BYO1xuICAgIGN1dFBvbHlnb25Qb2ludHNbaSAqIDQgKyAzXSA9IGNvcm5lci5zdG9wWTtcbiAgICB2YXIgc3F1YXJlZERpc3RhbmNlID0gTWF0aC5wb3coY29ybmVyLmN4IC0geCwgMikgKyBNYXRoLnBvdyhjb3JuZXIuY3kgLSB5LCAyKTtcbiAgICBpZiAoc3F1YXJlZERpc3RhbmNlIDw9IE1hdGgucG93KGNvcm5lci5yYWRpdXMsIDIpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBvaW50SW5zaWRlUG9seWdvblBvaW50cyh4LCB5LCBjdXRQb2x5Z29uUG9pbnRzKTtcbn07XG52YXIgam9pbkxpbmVzID0gZnVuY3Rpb24gam9pbkxpbmVzKGxpbmVTZXQpIHtcbiAgdmFyIHZlcnRpY2VzID0gbmV3IEFycmF5KGxpbmVTZXQubGVuZ3RoIC8gMik7XG4gIHZhciBjdXJyZW50TGluZVN0YXJ0WCwgY3VycmVudExpbmVTdGFydFksIGN1cnJlbnRMaW5lRW5kWCwgY3VycmVudExpbmVFbmRZO1xuICB2YXIgbmV4dExpbmVTdGFydFgsIG5leHRMaW5lU3RhcnRZLCBuZXh0TGluZUVuZFgsIG5leHRMaW5lRW5kWTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lU2V0Lmxlbmd0aCAvIDQ7IGkrKykge1xuICAgIGN1cnJlbnRMaW5lU3RhcnRYID0gbGluZVNldFtpICogNF07XG4gICAgY3VycmVudExpbmVTdGFydFkgPSBsaW5lU2V0W2kgKiA0ICsgMV07XG4gICAgY3VycmVudExpbmVFbmRYID0gbGluZVNldFtpICogNCArIDJdO1xuICAgIGN1cnJlbnRMaW5lRW5kWSA9IGxpbmVTZXRbaSAqIDQgKyAzXTtcbiAgICBpZiAoaSA8IGxpbmVTZXQubGVuZ3RoIC8gNCAtIDEpIHtcbiAgICAgIG5leHRMaW5lU3RhcnRYID0gbGluZVNldFsoaSArIDEpICogNF07XG4gICAgICBuZXh0TGluZVN0YXJ0WSA9IGxpbmVTZXRbKGkgKyAxKSAqIDQgKyAxXTtcbiAgICAgIG5leHRMaW5lRW5kWCA9IGxpbmVTZXRbKGkgKyAxKSAqIDQgKyAyXTtcbiAgICAgIG5leHRMaW5lRW5kWSA9IGxpbmVTZXRbKGkgKyAxKSAqIDQgKyAzXTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dExpbmVTdGFydFggPSBsaW5lU2V0WzBdO1xuICAgICAgbmV4dExpbmVTdGFydFkgPSBsaW5lU2V0WzFdO1xuICAgICAgbmV4dExpbmVFbmRYID0gbGluZVNldFsyXTtcbiAgICAgIG5leHRMaW5lRW5kWSA9IGxpbmVTZXRbM107XG4gICAgfVxuICAgIHZhciBpbnRlcnNlY3Rpb24gPSBmaW5pdGVMaW5lc0ludGVyc2VjdChjdXJyZW50TGluZVN0YXJ0WCwgY3VycmVudExpbmVTdGFydFksIGN1cnJlbnRMaW5lRW5kWCwgY3VycmVudExpbmVFbmRZLCBuZXh0TGluZVN0YXJ0WCwgbmV4dExpbmVTdGFydFksIG5leHRMaW5lRW5kWCwgbmV4dExpbmVFbmRZLCB0cnVlKTtcbiAgICB2ZXJ0aWNlc1tpICogMl0gPSBpbnRlcnNlY3Rpb25bMF07XG4gICAgdmVydGljZXNbaSAqIDIgKyAxXSA9IGludGVyc2VjdGlvblsxXTtcbiAgfVxuICByZXR1cm4gdmVydGljZXM7XG59O1xudmFyIGV4cGFuZFBvbHlnb24gPSBmdW5jdGlvbiBleHBhbmRQb2x5Z29uKHBvaW50cywgcGFkKSB7XG4gIHZhciBleHBhbmRlZExpbmVTZXQgPSBuZXcgQXJyYXkocG9pbnRzLmxlbmd0aCAqIDIpO1xuICB2YXIgY3VycmVudFBvaW50WCwgY3VycmVudFBvaW50WSwgbmV4dFBvaW50WCwgbmV4dFBvaW50WTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoIC8gMjsgaSsrKSB7XG4gICAgY3VycmVudFBvaW50WCA9IHBvaW50c1tpICogMl07XG4gICAgY3VycmVudFBvaW50WSA9IHBvaW50c1tpICogMiArIDFdO1xuICAgIGlmIChpIDwgcG9pbnRzLmxlbmd0aCAvIDIgLSAxKSB7XG4gICAgICBuZXh0UG9pbnRYID0gcG9pbnRzWyhpICsgMSkgKiAyXTtcbiAgICAgIG5leHRQb2ludFkgPSBwb2ludHNbKGkgKyAxKSAqIDIgKyAxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dFBvaW50WCA9IHBvaW50c1swXTtcbiAgICAgIG5leHRQb2ludFkgPSBwb2ludHNbMV07XG4gICAgfVxuXG4gICAgLy8gQ3VycmVudCBsaW5lOiBbY3VycmVudFBvaW50WCwgY3VycmVudFBvaW50WV0gdG8gW25leHRQb2ludFgsIG5leHRQb2ludFldXG5cbiAgICAvLyBBc3N1bWUgQ0NXIHBvbHlnb24gd2luZGluZ1xuXG4gICAgdmFyIG9mZnNldFggPSBuZXh0UG9pbnRZIC0gY3VycmVudFBvaW50WTtcbiAgICB2YXIgb2Zmc2V0WSA9IC0obmV4dFBvaW50WCAtIGN1cnJlbnRQb2ludFgpO1xuXG4gICAgLy8gTm9ybWFsaXplXG4gICAgdmFyIG9mZnNldExlbmd0aCA9IE1hdGguc3FydChvZmZzZXRYICogb2Zmc2V0WCArIG9mZnNldFkgKiBvZmZzZXRZKTtcbiAgICB2YXIgbm9ybWFsaXplZE9mZnNldFggPSBvZmZzZXRYIC8gb2Zmc2V0TGVuZ3RoO1xuICAgIHZhciBub3JtYWxpemVkT2Zmc2V0WSA9IG9mZnNldFkgLyBvZmZzZXRMZW5ndGg7XG4gICAgZXhwYW5kZWRMaW5lU2V0W2kgKiA0XSA9IGN1cnJlbnRQb2ludFggKyBub3JtYWxpemVkT2Zmc2V0WCAqIHBhZDtcbiAgICBleHBhbmRlZExpbmVTZXRbaSAqIDQgKyAxXSA9IGN1cnJlbnRQb2ludFkgKyBub3JtYWxpemVkT2Zmc2V0WSAqIHBhZDtcbiAgICBleHBhbmRlZExpbmVTZXRbaSAqIDQgKyAyXSA9IG5leHRQb2ludFggKyBub3JtYWxpemVkT2Zmc2V0WCAqIHBhZDtcbiAgICBleHBhbmRlZExpbmVTZXRbaSAqIDQgKyAzXSA9IG5leHRQb2ludFkgKyBub3JtYWxpemVkT2Zmc2V0WSAqIHBhZDtcbiAgfVxuICByZXR1cm4gZXhwYW5kZWRMaW5lU2V0O1xufTtcbnZhciBpbnRlcnNlY3RMaW5lRWxsaXBzZSA9IGZ1bmN0aW9uIGludGVyc2VjdExpbmVFbGxpcHNlKHgsIHksIGNlbnRlclgsIGNlbnRlclksIGVsbGlwc2VXcmFkaXVzLCBlbGxpcHNlSHJhZGl1cykge1xuICB2YXIgZGlzcFggPSBjZW50ZXJYIC0geDtcbiAgdmFyIGRpc3BZID0gY2VudGVyWSAtIHk7XG4gIGRpc3BYIC89IGVsbGlwc2VXcmFkaXVzO1xuICBkaXNwWSAvPSBlbGxpcHNlSHJhZGl1cztcbiAgdmFyIGxlbiA9IE1hdGguc3FydChkaXNwWCAqIGRpc3BYICsgZGlzcFkgKiBkaXNwWSk7XG4gIHZhciBuZXdMZW5ndGggPSBsZW4gLSAxO1xuICBpZiAobmV3TGVuZ3RoIDwgMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICB2YXIgbGVuUHJvcG9ydGlvbiA9IG5ld0xlbmd0aCAvIGxlbjtcbiAgcmV0dXJuIFsoY2VudGVyWCAtIHgpICogbGVuUHJvcG9ydGlvbiArIHgsIChjZW50ZXJZIC0geSkgKiBsZW5Qcm9wb3J0aW9uICsgeV07XG59O1xudmFyIGNoZWNrSW5FbGxpcHNlID0gZnVuY3Rpb24gY2hlY2tJbkVsbGlwc2UoeCwgeSwgd2lkdGgsIGhlaWdodCwgY2VudGVyWCwgY2VudGVyWSwgcGFkZGluZykge1xuICB4IC09IGNlbnRlclg7XG4gIHkgLT0gY2VudGVyWTtcbiAgeCAvPSB3aWR0aCAvIDIgKyBwYWRkaW5nO1xuICB5IC89IGhlaWdodCAvIDIgKyBwYWRkaW5nO1xuICByZXR1cm4geCAqIHggKyB5ICogeSA8PSAxO1xufTtcblxuLy8gUmV0dXJucyBpbnRlcnNlY3Rpb25zIG9mIGluY3JlYXNpbmcgZGlzdGFuY2UgZnJvbSBsaW5lJ3Mgc3RhcnQgcG9pbnRcbnZhciBpbnRlcnNlY3RMaW5lQ2lyY2xlID0gZnVuY3Rpb24gaW50ZXJzZWN0TGluZUNpcmNsZSh4MSwgeTEsIHgyLCB5MiwgY2VudGVyWCwgY2VudGVyWSwgcmFkaXVzKSB7XG4gIC8vIENhbGN1bGF0ZSBkLCBkaXJlY3Rpb24gdmVjdG9yIG9mIGxpbmVcbiAgdmFyIGQgPSBbeDIgLSB4MSwgeTIgLSB5MV07IC8vIERpcmVjdGlvbiB2ZWN0b3Igb2YgbGluZVxuICB2YXIgZiA9IFt4MSAtIGNlbnRlclgsIHkxIC0gY2VudGVyWV07XG4gIHZhciBhID0gZFswXSAqIGRbMF0gKyBkWzFdICogZFsxXTtcbiAgdmFyIGIgPSAyICogKGZbMF0gKiBkWzBdICsgZlsxXSAqIGRbMV0pO1xuICB2YXIgYyA9IGZbMF0gKiBmWzBdICsgZlsxXSAqIGZbMV0gLSByYWRpdXMgKiByYWRpdXM7XG4gIHZhciBkaXNjcmltaW5hbnQgPSBiICogYiAtIDQgKiBhICogYztcbiAgaWYgKGRpc2NyaW1pbmFudCA8IDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgdmFyIHQxID0gKC1iICsgTWF0aC5zcXJ0KGRpc2NyaW1pbmFudCkpIC8gKDIgKiBhKTtcbiAgdmFyIHQyID0gKC1iIC0gTWF0aC5zcXJ0KGRpc2NyaW1pbmFudCkpIC8gKDIgKiBhKTtcbiAgdmFyIHRNaW4gPSBNYXRoLm1pbih0MSwgdDIpO1xuICB2YXIgdE1heCA9IE1hdGgubWF4KHQxLCB0Mik7XG4gIHZhciBpblJhbmdlUGFyYW1zID0gW107XG4gIGlmICh0TWluID49IDAgJiYgdE1pbiA8PSAxKSB7XG4gICAgaW5SYW5nZVBhcmFtcy5wdXNoKHRNaW4pO1xuICB9XG4gIGlmICh0TWF4ID49IDAgJiYgdE1heCA8PSAxKSB7XG4gICAgaW5SYW5nZVBhcmFtcy5wdXNoKHRNYXgpO1xuICB9XG4gIGlmIChpblJhbmdlUGFyYW1zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICB2YXIgbmVhckludGVyc2VjdGlvblggPSBpblJhbmdlUGFyYW1zWzBdICogZFswXSArIHgxO1xuICB2YXIgbmVhckludGVyc2VjdGlvblkgPSBpblJhbmdlUGFyYW1zWzBdICogZFsxXSArIHkxO1xuICBpZiAoaW5SYW5nZVBhcmFtcy5sZW5ndGggPiAxKSB7XG4gICAgaWYgKGluUmFuZ2VQYXJhbXNbMF0gPT0gaW5SYW5nZVBhcmFtc1sxXSkge1xuICAgICAgcmV0dXJuIFtuZWFySW50ZXJzZWN0aW9uWCwgbmVhckludGVyc2VjdGlvblldO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZmFySW50ZXJzZWN0aW9uWCA9IGluUmFuZ2VQYXJhbXNbMV0gKiBkWzBdICsgeDE7XG4gICAgICB2YXIgZmFySW50ZXJzZWN0aW9uWSA9IGluUmFuZ2VQYXJhbXNbMV0gKiBkWzFdICsgeTE7XG4gICAgICByZXR1cm4gW25lYXJJbnRlcnNlY3Rpb25YLCBuZWFySW50ZXJzZWN0aW9uWSwgZmFySW50ZXJzZWN0aW9uWCwgZmFySW50ZXJzZWN0aW9uWV07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBbbmVhckludGVyc2VjdGlvblgsIG5lYXJJbnRlcnNlY3Rpb25ZXTtcbiAgfVxufTtcbnZhciBtaWRPZlRocmVlID0gZnVuY3Rpb24gbWlkT2ZUaHJlZShhLCBiLCBjKSB7XG4gIGlmIChiIDw9IGEgJiYgYSA8PSBjIHx8IGMgPD0gYSAmJiBhIDw9IGIpIHtcbiAgICByZXR1cm4gYTtcbiAgfSBlbHNlIGlmIChhIDw9IGIgJiYgYiA8PSBjIHx8IGMgPD0gYiAmJiBiIDw9IGEpIHtcbiAgICByZXR1cm4gYjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYztcbiAgfVxufTtcblxuLy8gKHgxLHkxKT0+KHgyLHkyKSBpbnRlcnNlY3Qgd2l0aCAoeDMseTMpPT4oeDQseTQpXG52YXIgZmluaXRlTGluZXNJbnRlcnNlY3QgPSBmdW5jdGlvbiBmaW5pdGVMaW5lc0ludGVyc2VjdCh4MSwgeTEsIHgyLCB5MiwgeDMsIHkzLCB4NCwgeTQsIGluZmluaXRlTGluZXMpIHtcbiAgdmFyIGR4MTMgPSB4MSAtIHgzO1xuICB2YXIgZHgyMSA9IHgyIC0geDE7XG4gIHZhciBkeDQzID0geDQgLSB4MztcbiAgdmFyIGR5MTMgPSB5MSAtIHkzO1xuICB2YXIgZHkyMSA9IHkyIC0geTE7XG4gIHZhciBkeTQzID0geTQgLSB5MztcbiAgdmFyIHVhX3QgPSBkeDQzICogZHkxMyAtIGR5NDMgKiBkeDEzO1xuICB2YXIgdWJfdCA9IGR4MjEgKiBkeTEzIC0gZHkyMSAqIGR4MTM7XG4gIHZhciB1X2IgPSBkeTQzICogZHgyMSAtIGR4NDMgKiBkeTIxO1xuICBpZiAodV9iICE9PSAwKSB7XG4gICAgdmFyIHVhID0gdWFfdCAvIHVfYjtcbiAgICB2YXIgdWIgPSB1Yl90IC8gdV9iO1xuICAgIHZhciBmbHB0VGhyZXNob2xkID0gMC4wMDE7XG4gICAgdmFyIF9taW4gPSAwIC0gZmxwdFRocmVzaG9sZDtcbiAgICB2YXIgX21heCA9IDEgKyBmbHB0VGhyZXNob2xkO1xuICAgIGlmIChfbWluIDw9IHVhICYmIHVhIDw9IF9tYXggJiYgX21pbiA8PSB1YiAmJiB1YiA8PSBfbWF4KSB7XG4gICAgICByZXR1cm4gW3gxICsgdWEgKiBkeDIxLCB5MSArIHVhICogZHkyMV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghaW5maW5pdGVMaW5lcykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gW3gxICsgdWEgKiBkeDIxLCB5MSArIHVhICogZHkyMV07XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICh1YV90ID09PSAwIHx8IHViX3QgPT09IDApIHtcbiAgICAgIC8vIFBhcmFsbGVsLCBjb2luY2lkZW50IGxpbmVzLiBDaGVjayBpZiBvdmVybGFwXG5cbiAgICAgIC8vIENoZWNrIGVuZHBvaW50IG9mIHNlY29uZCBsaW5lXG4gICAgICBpZiAobWlkT2ZUaHJlZSh4MSwgeDIsIHg0KSA9PT0geDQpIHtcbiAgICAgICAgcmV0dXJuIFt4NCwgeTRdO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBzdGFydCBwb2ludCBvZiBzZWNvbmQgbGluZVxuICAgICAgaWYgKG1pZE9mVGhyZWUoeDEsIHgyLCB4MykgPT09IHgzKSB7XG4gICAgICAgIHJldHVybiBbeDMsIHkzXTtcbiAgICAgIH1cblxuICAgICAgLy8gRW5kcG9pbnQgb2YgZmlyc3QgbGluZVxuICAgICAgaWYgKG1pZE9mVGhyZWUoeDMsIHg0LCB4MikgPT09IHgyKSB7XG4gICAgICAgIHJldHVybiBbeDIsIHkyXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUGFyYWxsZWwsIG5vbi1jb2luY2lkZW50XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG59O1xuXG4vLyBtYXRoLnBvbHlnb25JbnRlcnNlY3RMaW5lKCB4LCB5LCBiYXNlUG9pbnRzLCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCBwYWRkaW5nIClcbi8vIGludGVyc2VjdCBhIG5vZGUgcG9seWdvbiAocHRzIHRyYW5zZm9ybWVkKVxuLy9cbi8vIG1hdGgucG9seWdvbkludGVyc2VjdExpbmUoIHgsIHksIGJhc2VQb2ludHMsIGNlbnRlclgsIGNlbnRlclkgKVxuLy8gaW50ZXJzZWN0IHRoZSBwb2ludHMgKG5vIHRyYW5zZm9ybSlcbnZhciBwb2x5Z29uSW50ZXJzZWN0TGluZSA9IGZ1bmN0aW9uIHBvbHlnb25JbnRlcnNlY3RMaW5lKHgsIHksIGJhc2VQb2ludHMsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoLCBoZWlnaHQsIHBhZGRpbmcpIHtcbiAgdmFyIGludGVyc2VjdGlvbnMgPSBbXTtcbiAgdmFyIGludGVyc2VjdGlvbjtcbiAgdmFyIHRyYW5zZm9ybWVkUG9pbnRzID0gbmV3IEFycmF5KGJhc2VQb2ludHMubGVuZ3RoKTtcbiAgdmFyIGRvVHJhbnNmb3JtID0gdHJ1ZTtcbiAgaWYgKHdpZHRoID09IG51bGwpIHtcbiAgICBkb1RyYW5zZm9ybSA9IGZhbHNlO1xuICB9XG4gIHZhciBwb2ludHM7XG4gIGlmIChkb1RyYW5zZm9ybSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHJhbnNmb3JtZWRQb2ludHMubGVuZ3RoIC8gMjsgaSsrKSB7XG4gICAgICB0cmFuc2Zvcm1lZFBvaW50c1tpICogMl0gPSBiYXNlUG9pbnRzW2kgKiAyXSAqIHdpZHRoICsgY2VudGVyWDtcbiAgICAgIHRyYW5zZm9ybWVkUG9pbnRzW2kgKiAyICsgMV0gPSBiYXNlUG9pbnRzW2kgKiAyICsgMV0gKiBoZWlnaHQgKyBjZW50ZXJZO1xuICAgIH1cbiAgICBpZiAocGFkZGluZyA+IDApIHtcbiAgICAgIHZhciBleHBhbmRlZExpbmVTZXQgPSBleHBhbmRQb2x5Z29uKHRyYW5zZm9ybWVkUG9pbnRzLCAtcGFkZGluZyk7XG4gICAgICBwb2ludHMgPSBqb2luTGluZXMoZXhwYW5kZWRMaW5lU2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9pbnRzID0gdHJhbnNmb3JtZWRQb2ludHM7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHBvaW50cyA9IGJhc2VQb2ludHM7XG4gIH1cbiAgdmFyIGN1cnJlbnRYLCBjdXJyZW50WSwgbmV4dFgsIG5leHRZO1xuICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgPCBwb2ludHMubGVuZ3RoIC8gMjsgX2kyKyspIHtcbiAgICBjdXJyZW50WCA9IHBvaW50c1tfaTIgKiAyXTtcbiAgICBjdXJyZW50WSA9IHBvaW50c1tfaTIgKiAyICsgMV07XG4gICAgaWYgKF9pMiA8IHBvaW50cy5sZW5ndGggLyAyIC0gMSkge1xuICAgICAgbmV4dFggPSBwb2ludHNbKF9pMiArIDEpICogMl07XG4gICAgICBuZXh0WSA9IHBvaW50c1soX2kyICsgMSkgKiAyICsgMV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRYID0gcG9pbnRzWzBdO1xuICAgICAgbmV4dFkgPSBwb2ludHNbMV07XG4gICAgfVxuICAgIGludGVyc2VjdGlvbiA9IGZpbml0ZUxpbmVzSW50ZXJzZWN0KHgsIHksIGNlbnRlclgsIGNlbnRlclksIGN1cnJlbnRYLCBjdXJyZW50WSwgbmV4dFgsIG5leHRZKTtcbiAgICBpZiAoaW50ZXJzZWN0aW9uLmxlbmd0aCAhPT0gMCkge1xuICAgICAgaW50ZXJzZWN0aW9ucy5wdXNoKGludGVyc2VjdGlvblswXSwgaW50ZXJzZWN0aW9uWzFdKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGludGVyc2VjdGlvbnM7XG59O1xudmFyIHJvdW5kUG9seWdvbkludGVyc2VjdExpbmUgPSBmdW5jdGlvbiByb3VuZFBvbHlnb25JbnRlcnNlY3RMaW5lKHgsIHksIGJhc2VQb2ludHMsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoLCBoZWlnaHQsIHBhZGRpbmcsIGNvcm5lcnMpIHtcbiAgdmFyIGludGVyc2VjdGlvbnMgPSBbXTtcbiAgdmFyIGludGVyc2VjdGlvbjtcbiAgdmFyIGxpbmVzID0gbmV3IEFycmF5KGJhc2VQb2ludHMubGVuZ3RoICogMik7XG4gIGNvcm5lcnMuZm9yRWFjaChmdW5jdGlvbiAoY29ybmVyLCBpKSB7XG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDJdID0gY29ybmVyLnN0YXJ0WDtcbiAgICAgIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdID0gY29ybmVyLnN0YXJ0WTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGluZXNbaSAqIDQgLSAyXSA9IGNvcm5lci5zdGFydFg7XG4gICAgICBsaW5lc1tpICogNCAtIDFdID0gY29ybmVyLnN0YXJ0WTtcbiAgICB9XG4gICAgbGluZXNbaSAqIDRdID0gY29ybmVyLnN0b3BYO1xuICAgIGxpbmVzW2kgKiA0ICsgMV0gPSBjb3JuZXIuc3RvcFk7XG4gICAgaW50ZXJzZWN0aW9uID0gaW50ZXJzZWN0TGluZUNpcmNsZSh4LCB5LCBjZW50ZXJYLCBjZW50ZXJZLCBjb3JuZXIuY3gsIGNvcm5lci5jeSwgY29ybmVyLnJhZGl1cyk7XG4gICAgaWYgKGludGVyc2VjdGlvbi5sZW5ndGggIT09IDApIHtcbiAgICAgIGludGVyc2VjdGlvbnMucHVzaChpbnRlcnNlY3Rpb25bMF0sIGludGVyc2VjdGlvblsxXSk7XG4gICAgfVxuICB9KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGggLyA0OyBpKyspIHtcbiAgICBpbnRlcnNlY3Rpb24gPSBmaW5pdGVMaW5lc0ludGVyc2VjdCh4LCB5LCBjZW50ZXJYLCBjZW50ZXJZLCBsaW5lc1tpICogNF0sIGxpbmVzW2kgKiA0ICsgMV0sIGxpbmVzW2kgKiA0ICsgMl0sIGxpbmVzW2kgKiA0ICsgM10sIGZhbHNlKTtcbiAgICBpZiAoaW50ZXJzZWN0aW9uLmxlbmd0aCAhPT0gMCkge1xuICAgICAgaW50ZXJzZWN0aW9ucy5wdXNoKGludGVyc2VjdGlvblswXSwgaW50ZXJzZWN0aW9uWzFdKTtcbiAgICB9XG4gIH1cbiAgaWYgKGludGVyc2VjdGlvbnMubGVuZ3RoID4gMikge1xuICAgIHZhciBsb3dlc3RJbnRlcnNlY3Rpb24gPSBbaW50ZXJzZWN0aW9uc1swXSwgaW50ZXJzZWN0aW9uc1sxXV07XG4gICAgdmFyIGxvd2VzdFNxdWFyZWREaXN0YW5jZSA9IE1hdGgucG93KGxvd2VzdEludGVyc2VjdGlvblswXSAtIHgsIDIpICsgTWF0aC5wb3cobG93ZXN0SW50ZXJzZWN0aW9uWzFdIC0geSwgMik7XG4gICAgZm9yICh2YXIgX2kzID0gMTsgX2kzIDwgaW50ZXJzZWN0aW9ucy5sZW5ndGggLyAyOyBfaTMrKykge1xuICAgICAgdmFyIHNxdWFyZWREaXN0YW5jZSA9IE1hdGgucG93KGludGVyc2VjdGlvbnNbX2kzICogMl0gLSB4LCAyKSArIE1hdGgucG93KGludGVyc2VjdGlvbnNbX2kzICogMiArIDFdIC0geSwgMik7XG4gICAgICBpZiAoc3F1YXJlZERpc3RhbmNlIDw9IGxvd2VzdFNxdWFyZWREaXN0YW5jZSkge1xuICAgICAgICBsb3dlc3RJbnRlcnNlY3Rpb25bMF0gPSBpbnRlcnNlY3Rpb25zW19pMyAqIDJdO1xuICAgICAgICBsb3dlc3RJbnRlcnNlY3Rpb25bMV0gPSBpbnRlcnNlY3Rpb25zW19pMyAqIDIgKyAxXTtcbiAgICAgICAgbG93ZXN0U3F1YXJlZERpc3RhbmNlID0gc3F1YXJlZERpc3RhbmNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbG93ZXN0SW50ZXJzZWN0aW9uO1xuICB9XG4gIHJldHVybiBpbnRlcnNlY3Rpb25zO1xufTtcbnZhciBzaG9ydGVuSW50ZXJzZWN0aW9uID0gZnVuY3Rpb24gc2hvcnRlbkludGVyc2VjdGlvbihpbnRlcnNlY3Rpb24sIG9mZnNldCwgYW1vdW50KSB7XG4gIHZhciBkaXNwID0gW2ludGVyc2VjdGlvblswXSAtIG9mZnNldFswXSwgaW50ZXJzZWN0aW9uWzFdIC0gb2Zmc2V0WzFdXTtcbiAgdmFyIGxlbmd0aCA9IE1hdGguc3FydChkaXNwWzBdICogZGlzcFswXSArIGRpc3BbMV0gKiBkaXNwWzFdKTtcbiAgdmFyIGxlblJhdGlvID0gKGxlbmd0aCAtIGFtb3VudCkgLyBsZW5ndGg7XG4gIGlmIChsZW5SYXRpbyA8IDApIHtcbiAgICBsZW5SYXRpbyA9IDAuMDAwMDE7XG4gIH1cbiAgcmV0dXJuIFtvZmZzZXRbMF0gKyBsZW5SYXRpbyAqIGRpc3BbMF0sIG9mZnNldFsxXSArIGxlblJhdGlvICogZGlzcFsxXV07XG59O1xudmFyIGdlbmVyYXRlVW5pdE5nb25Qb2ludHNGaXRUb1NxdWFyZSA9IGZ1bmN0aW9uIGdlbmVyYXRlVW5pdE5nb25Qb2ludHNGaXRUb1NxdWFyZShzaWRlcywgcm90YXRpb25SYWRpYW5zKSB7XG4gIHZhciBwb2ludHMgPSBnZW5lcmF0ZVVuaXROZ29uUG9pbnRzKHNpZGVzLCByb3RhdGlvblJhZGlhbnMpO1xuICBwb2ludHMgPSBmaXRQb2x5Z29uVG9TcXVhcmUocG9pbnRzKTtcbiAgcmV0dXJuIHBvaW50cztcbn07XG52YXIgZml0UG9seWdvblRvU3F1YXJlID0gZnVuY3Rpb24gZml0UG9seWdvblRvU3F1YXJlKHBvaW50cykge1xuICB2YXIgeCwgeTtcbiAgdmFyIHNpZGVzID0gcG9pbnRzLmxlbmd0aCAvIDI7XG4gIHZhciBtaW5YID0gSW5maW5pdHksXG4gICAgbWluWSA9IEluZmluaXR5LFxuICAgIG1heFggPSAtSW5maW5pdHksXG4gICAgbWF4WSA9IC1JbmZpbml0eTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaWRlczsgaSsrKSB7XG4gICAgeCA9IHBvaW50c1syICogaV07XG4gICAgeSA9IHBvaW50c1syICogaSArIDFdO1xuICAgIG1pblggPSBNYXRoLm1pbihtaW5YLCB4KTtcbiAgICBtYXhYID0gTWF0aC5tYXgobWF4WCwgeCk7XG4gICAgbWluWSA9IE1hdGgubWluKG1pblksIHkpO1xuICAgIG1heFkgPSBNYXRoLm1heChtYXhZLCB5KTtcbiAgfVxuXG4gIC8vIHN0cmV0Y2ggZmFjdG9yc1xuICB2YXIgc3ggPSAyIC8gKG1heFggLSBtaW5YKTtcbiAgdmFyIHN5ID0gMiAvIChtYXhZIC0gbWluWSk7XG4gIGZvciAodmFyIF9pNCA9IDA7IF9pNCA8IHNpZGVzOyBfaTQrKykge1xuICAgIHggPSBwb2ludHNbMiAqIF9pNF0gPSBwb2ludHNbMiAqIF9pNF0gKiBzeDtcbiAgICB5ID0gcG9pbnRzWzIgKiBfaTQgKyAxXSA9IHBvaW50c1syICogX2k0ICsgMV0gKiBzeTtcbiAgICBtaW5YID0gTWF0aC5taW4obWluWCwgeCk7XG4gICAgbWF4WCA9IE1hdGgubWF4KG1heFgsIHgpO1xuICAgIG1pblkgPSBNYXRoLm1pbihtaW5ZLCB5KTtcbiAgICBtYXhZID0gTWF0aC5tYXgobWF4WSwgeSk7XG4gIH1cbiAgaWYgKG1pblkgPCAtMSkge1xuICAgIGZvciAodmFyIF9pNSA9IDA7IF9pNSA8IHNpZGVzOyBfaTUrKykge1xuICAgICAgeSA9IHBvaW50c1syICogX2k1ICsgMV0gPSBwb2ludHNbMiAqIF9pNSArIDFdICsgKC0xIC0gbWluWSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBwb2ludHM7XG59O1xudmFyIGdlbmVyYXRlVW5pdE5nb25Qb2ludHMgPSBmdW5jdGlvbiBnZW5lcmF0ZVVuaXROZ29uUG9pbnRzKHNpZGVzLCByb3RhdGlvblJhZGlhbnMpIHtcbiAgdmFyIGluY3JlbWVudCA9IDEuMCAvIHNpZGVzICogMiAqIE1hdGguUEk7XG4gIHZhciBzdGFydEFuZ2xlID0gc2lkZXMgJSAyID09PSAwID8gTWF0aC5QSSAvIDIuMCArIGluY3JlbWVudCAvIDIuMCA6IE1hdGguUEkgLyAyLjA7XG4gIHN0YXJ0QW5nbGUgKz0gcm90YXRpb25SYWRpYW5zO1xuICB2YXIgcG9pbnRzID0gbmV3IEFycmF5KHNpZGVzICogMik7XG4gIHZhciBjdXJyZW50QW5nbGU7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2lkZXM7IGkrKykge1xuICAgIGN1cnJlbnRBbmdsZSA9IGkgKiBpbmNyZW1lbnQgKyBzdGFydEFuZ2xlO1xuICAgIHBvaW50c1syICogaV0gPSBNYXRoLmNvcyhjdXJyZW50QW5nbGUpOyAvLyB4XG4gICAgcG9pbnRzWzIgKiBpICsgMV0gPSBNYXRoLnNpbigtY3VycmVudEFuZ2xlKTsgLy8geVxuICB9XG5cbiAgcmV0dXJuIHBvaW50cztcbn07XG5cbi8vIFNldCB0aGUgZGVmYXVsdCByYWRpdXMsIHVubGVzcyBoYWxmIG9mIHdpZHRoIG9yIGhlaWdodCBpcyBzbWFsbGVyIHRoYW4gZGVmYXVsdFxudmFyIGdldFJvdW5kUmVjdGFuZ2xlUmFkaXVzID0gZnVuY3Rpb24gZ2V0Um91bmRSZWN0YW5nbGVSYWRpdXMod2lkdGgsIGhlaWdodCkge1xuICByZXR1cm4gTWF0aC5taW4od2lkdGggLyA0LCBoZWlnaHQgLyA0LCA4KTtcbn07XG5cbi8vIFNldCB0aGUgZGVmYXVsdCByYWRpdXNcbnZhciBnZXRSb3VuZFBvbHlnb25SYWRpdXMgPSBmdW5jdGlvbiBnZXRSb3VuZFBvbHlnb25SYWRpdXMod2lkdGgsIGhlaWdodCkge1xuICByZXR1cm4gTWF0aC5taW4od2lkdGggLyAxMCwgaGVpZ2h0IC8gMTAsIDgpO1xufTtcbnZhciBnZXRDdXRSZWN0YW5nbGVDb3JuZXJMZW5ndGggPSBmdW5jdGlvbiBnZXRDdXRSZWN0YW5nbGVDb3JuZXJMZW5ndGgoKSB7XG4gIHJldHVybiA4O1xufTtcbnZhciBiZXppZXJQdHNUb1F1YWRDb2VmZiA9IGZ1bmN0aW9uIGJlemllclB0c1RvUXVhZENvZWZmKHAwLCBwMSwgcDIpIHtcbiAgcmV0dXJuIFtwMCAtIDIgKiBwMSArIHAyLCAyICogKHAxIC0gcDApLCBwMF07XG59O1xuXG4vLyBnZXQgY3VydmUgd2lkdGgsIGhlaWdodCwgYW5kIGNvbnRyb2wgcG9pbnQgcG9zaXRpb24gb2Zmc2V0cyBhcyBhIHBlcmNlbnRhZ2Ugb2Ygbm9kZSBoZWlnaHQgLyB3aWR0aFxudmFyIGdldEJhcnJlbEN1cnZlQ29uc3RhbnRzID0gZnVuY3Rpb24gZ2V0QmFycmVsQ3VydmVDb25zdGFudHMod2lkdGgsIGhlaWdodCkge1xuICByZXR1cm4ge1xuICAgIGhlaWdodE9mZnNldDogTWF0aC5taW4oMTUsIDAuMDUgKiBoZWlnaHQpLFxuICAgIHdpZHRoT2Zmc2V0OiBNYXRoLm1pbigxMDAsIDAuMjUgKiB3aWR0aCksXG4gICAgY3RybFB0T2Zmc2V0UGN0OiAwLjA1XG4gIH07XG59O1xuXG52YXIgcGFnZVJhbmtEZWZhdWx0cyA9IGRlZmF1bHRzJGcoe1xuICBkYW1waW5nRmFjdG9yOiAwLjgsXG4gIHByZWNpc2lvbjogMC4wMDAwMDEsXG4gIGl0ZXJhdGlvbnM6IDIwMCxcbiAgd2VpZ2h0OiBmdW5jdGlvbiB3ZWlnaHQoZWRnZSkge1xuICAgIHJldHVybiAxO1xuICB9XG59KTtcbnZhciBlbGVzZm4kbyA9IHtcbiAgcGFnZVJhbms6IGZ1bmN0aW9uIHBhZ2VSYW5rKG9wdGlvbnMpIHtcbiAgICB2YXIgX3BhZ2VSYW5rRGVmYXVsdHMgPSBwYWdlUmFua0RlZmF1bHRzKG9wdGlvbnMpLFxuICAgICAgZGFtcGluZ0ZhY3RvciA9IF9wYWdlUmFua0RlZmF1bHRzLmRhbXBpbmdGYWN0b3IsXG4gICAgICBwcmVjaXNpb24gPSBfcGFnZVJhbmtEZWZhdWx0cy5wcmVjaXNpb24sXG4gICAgICBpdGVyYXRpb25zID0gX3BhZ2VSYW5rRGVmYXVsdHMuaXRlcmF0aW9ucyxcbiAgICAgIHdlaWdodCA9IF9wYWdlUmFua0RlZmF1bHRzLndlaWdodDtcbiAgICB2YXIgY3kgPSB0aGlzLl9wcml2YXRlLmN5O1xuICAgIHZhciBfdGhpcyRieUdyb3VwID0gdGhpcy5ieUdyb3VwKCksXG4gICAgICBub2RlcyA9IF90aGlzJGJ5R3JvdXAubm9kZXMsXG4gICAgICBlZGdlcyA9IF90aGlzJGJ5R3JvdXAuZWRnZXM7XG4gICAgdmFyIG51bU5vZGVzID0gbm9kZXMubGVuZ3RoO1xuICAgIHZhciBudW1Ob2Rlc1NxZCA9IG51bU5vZGVzICogbnVtTm9kZXM7XG4gICAgdmFyIG51bUVkZ2VzID0gZWRnZXMubGVuZ3RoO1xuXG4gICAgLy8gQ29uc3RydWN0IHRyYW5zcG9zZWQgYWRqYWNlbmN5IG1hdHJpeFxuICAgIC8vIEZpcnN0IGxldHMgaGF2ZSBhIHplcm9lZCBtYXRyaXggb2YgdGhlIHJpZ2h0IHNpemVcbiAgICAvLyBXZSdsbCBhbHNvIGtlZXAgdHJhY2sgb2YgdGhlIHN1bSBvZiBlYWNoIGNvbHVtblxuICAgIHZhciBtYXRyaXggPSBuZXcgQXJyYXkobnVtTm9kZXNTcWQpO1xuICAgIHZhciBjb2x1bW5TdW0gPSBuZXcgQXJyYXkobnVtTm9kZXMpO1xuICAgIHZhciBhZGRpdGlvbmFsUHJvYiA9ICgxIC0gZGFtcGluZ0ZhY3RvcikgLyBudW1Ob2RlcztcblxuICAgIC8vIENyZWF0ZSBudWxsIG1hdHJpeFxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtTm9kZXM7IGkrKykge1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBudW1Ob2RlczsgaisrKSB7XG4gICAgICAgIHZhciBuID0gaSAqIG51bU5vZGVzICsgajtcbiAgICAgICAgbWF0cml4W25dID0gMDtcbiAgICAgIH1cbiAgICAgIGNvbHVtblN1bVtpXSA9IDA7XG4gICAgfVxuXG4gICAgLy8gTm93LCBwcm9jZXNzIGVkZ2VzXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IG51bUVkZ2VzOyBfaSsrKSB7XG4gICAgICB2YXIgZWRnZSA9IGVkZ2VzW19pXTtcbiAgICAgIHZhciBzcmNJZCA9IGVkZ2UuZGF0YSgnc291cmNlJyk7XG4gICAgICB2YXIgdGd0SWQgPSBlZGdlLmRhdGEoJ3RhcmdldCcpO1xuXG4gICAgICAvLyBEb24ndCBpbmNsdWRlIGxvb3BzIGluIHRoZSBtYXRyaXhcbiAgICAgIGlmIChzcmNJZCA9PT0gdGd0SWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB2YXIgcyA9IG5vZGVzLmluZGV4T2ZJZChzcmNJZCk7XG4gICAgICB2YXIgdCA9IG5vZGVzLmluZGV4T2ZJZCh0Z3RJZCk7XG4gICAgICB2YXIgdyA9IHdlaWdodChlZGdlKTtcbiAgICAgIHZhciBfbiA9IHQgKiBudW1Ob2RlcyArIHM7XG5cbiAgICAgIC8vIFVwZGF0ZSBtYXRyaXhcbiAgICAgIG1hdHJpeFtfbl0gKz0gdztcblxuICAgICAgLy8gVXBkYXRlIGNvbHVtbiBzdW1cbiAgICAgIGNvbHVtblN1bVtzXSArPSB3O1xuICAgIH1cblxuICAgIC8vIEFkZCBhZGRpdGlvbmFsIHByb2JhYmlsaXR5IGJhc2VkIG9uIGRhbXBpbmcgZmFjdG9yXG4gICAgLy8gQWxzbywgdGFrZSBpbnRvIGFjY291bnQgY29sdW1ucyB0aGF0IGhhdmUgc3VtID0gMFxuICAgIHZhciBwID0gMS4wIC8gbnVtTm9kZXMgKyBhZGRpdGlvbmFsUHJvYjsgLy8gU2hvcnRoYW5kXG5cbiAgICAvLyBUcmF2ZXJzZSBtYXRyaXgsIGNvbHVtbiBieSBjb2x1bW5cbiAgICBmb3IgKHZhciBfaiA9IDA7IF9qIDwgbnVtTm9kZXM7IF9qKyspIHtcbiAgICAgIGlmIChjb2x1bW5TdW1bX2pdID09PSAwKSB7XG4gICAgICAgIC8vIE5vICdsaW5rcycgb3V0IGZyb20gbm9kZSBqdGgsIGFzc3VtZSBlcXVhbCBwcm9iYWJpbGl0eSBmb3IgZWFjaCBwb3NzaWJsZSBub2RlXG4gICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IG51bU5vZGVzOyBfaTIrKykge1xuICAgICAgICAgIHZhciBfbjIgPSBfaTIgKiBudW1Ob2RlcyArIF9qO1xuICAgICAgICAgIG1hdHJpeFtfbjJdID0gcDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTm9kZSBqdGggaGFzIG91dGdvaW5nIGxpbmssIGNvbXB1dGUgbm9ybWFsaXplZCBwcm9iYWJpbGl0aWVzXG4gICAgICAgIGZvciAodmFyIF9pMyA9IDA7IF9pMyA8IG51bU5vZGVzOyBfaTMrKykge1xuICAgICAgICAgIHZhciBfbjMgPSBfaTMgKiBudW1Ob2RlcyArIF9qO1xuICAgICAgICAgIG1hdHJpeFtfbjNdID0gbWF0cml4W19uM10gLyBjb2x1bW5TdW1bX2pdICsgYWRkaXRpb25hbFByb2I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb21wdXRlIGRvbWluYW50IGVpZ2VudmVjdG9yIHVzaW5nIHBvd2VyIG1ldGhvZFxuICAgIHZhciBlaWdlbnZlY3RvciA9IG5ldyBBcnJheShudW1Ob2Rlcyk7XG4gICAgdmFyIHRlbXAgPSBuZXcgQXJyYXkobnVtTm9kZXMpO1xuICAgIHZhciBwcmV2aW91cztcblxuICAgIC8vIFN0YXJ0IHdpdGggYSB2ZWN0b3Igb2YgYWxsIDEnc1xuICAgIC8vIEFsc28sIGluaXRpYWxpemUgYSBudWxsIHZlY3RvciB3aGljaCB3aWxsIGJlIHVzZWQgYXMgc2hvcnRoYW5kXG4gICAgZm9yICh2YXIgX2k0ID0gMDsgX2k0IDwgbnVtTm9kZXM7IF9pNCsrKSB7XG4gICAgICBlaWdlbnZlY3RvcltfaTRdID0gMTtcbiAgICB9XG4gICAgZm9yICh2YXIgaXRlciA9IDA7IGl0ZXIgPCBpdGVyYXRpb25zOyBpdGVyKyspIHtcbiAgICAgIC8vIFRlbXAgYXJyYXkgd2l0aCBhbGwgMCdzXG4gICAgICBmb3IgKHZhciBfaTUgPSAwOyBfaTUgPCBudW1Ob2RlczsgX2k1KyspIHtcbiAgICAgICAgdGVtcFtfaTVdID0gMDtcbiAgICAgIH1cblxuICAgICAgLy8gTXVsdGlwbHkgbWF0cml4IHdpdGggcHJldmlvdXMgcmVzdWx0XG4gICAgICBmb3IgKHZhciBfaTYgPSAwOyBfaTYgPCBudW1Ob2RlczsgX2k2KyspIHtcbiAgICAgICAgZm9yICh2YXIgX2oyID0gMDsgX2oyIDwgbnVtTm9kZXM7IF9qMisrKSB7XG4gICAgICAgICAgdmFyIF9uNCA9IF9pNiAqIG51bU5vZGVzICsgX2oyO1xuICAgICAgICAgIHRlbXBbX2k2XSArPSBtYXRyaXhbX240XSAqIGVpZ2VudmVjdG9yW19qMl07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGluUGxhY2VTdW1Ob3JtYWxpemUodGVtcCk7XG4gICAgICBwcmV2aW91cyA9IGVpZ2VudmVjdG9yO1xuICAgICAgZWlnZW52ZWN0b3IgPSB0ZW1wO1xuICAgICAgdGVtcCA9IHByZXZpb3VzO1xuICAgICAgdmFyIGRpZmYgPSAwO1xuICAgICAgLy8gQ29tcHV0ZSBkaWZmZXJlbmNlIChzcXVhcmVkIG1vZHVsZSkgb2YgYm90aCB2ZWN0b3JzXG4gICAgICBmb3IgKHZhciBfaTcgPSAwOyBfaTcgPCBudW1Ob2RlczsgX2k3KyspIHtcbiAgICAgICAgdmFyIGRlbHRhID0gcHJldmlvdXNbX2k3XSAtIGVpZ2VudmVjdG9yW19pN107XG4gICAgICAgIGRpZmYgKz0gZGVsdGEgKiBkZWx0YTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgZGlmZmVyZW5jZSBpcyBsZXNzIHRoYW4gdGhlIGRlc2lyZWQgdGhyZXNob2xkLCBzdG9wIGl0ZXJhdGluZ1xuICAgICAgaWYgKGRpZmYgPCBwcmVjaXNpb24pIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ29uc3RydWN0IHJlc3VsdFxuICAgIHZhciByZXMgPSB7XG4gICAgICByYW5rOiBmdW5jdGlvbiByYW5rKG5vZGUpIHtcbiAgICAgICAgbm9kZSA9IGN5LmNvbGxlY3Rpb24obm9kZSlbMF07XG4gICAgICAgIHJldHVybiBlaWdlbnZlY3Rvcltub2Rlcy5pbmRleE9mKG5vZGUpXTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiByZXM7XG4gIH0gLy8gcGFnZVJhbmtcbn07IC8vIGVsZXNmblxuXG52YXIgZGVmYXVsdHMkZiA9IGRlZmF1bHRzJGcoe1xuICByb290OiBudWxsLFxuICB3ZWlnaHQ6IGZ1bmN0aW9uIHdlaWdodChlZGdlKSB7XG4gICAgcmV0dXJuIDE7XG4gIH0sXG4gIGRpcmVjdGVkOiBmYWxzZSxcbiAgYWxwaGE6IDBcbn0pO1xudmFyIGVsZXNmbiRuID0ge1xuICBkZWdyZWVDZW50cmFsaXR5Tm9ybWFsaXplZDogZnVuY3Rpb24gZGVncmVlQ2VudHJhbGl0eU5vcm1hbGl6ZWQob3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBkZWZhdWx0cyRmKG9wdGlvbnMpO1xuICAgIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgICB2YXIgbm9kZXMgPSB0aGlzLm5vZGVzKCk7XG4gICAgdmFyIG51bU5vZGVzID0gbm9kZXMubGVuZ3RoO1xuICAgIGlmICghb3B0aW9ucy5kaXJlY3RlZCkge1xuICAgICAgdmFyIGRlZ3JlZXMgPSB7fTtcbiAgICAgIHZhciBtYXhEZWdyZWUgPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1Ob2RlczsgaSsrKSB7XG4gICAgICAgIHZhciBub2RlID0gbm9kZXNbaV07XG5cbiAgICAgICAgLy8gYWRkIGN1cnJlbnQgbm9kZSB0byB0aGUgY3VycmVudCBvcHRpb25zIG9iamVjdCBhbmQgY2FsbCBkZWdyZWVDZW50cmFsaXR5XG4gICAgICAgIG9wdGlvbnMucm9vdCA9IG5vZGU7XG4gICAgICAgIHZhciBjdXJyRGVncmVlID0gdGhpcy5kZWdyZWVDZW50cmFsaXR5KG9wdGlvbnMpO1xuICAgICAgICBpZiAobWF4RGVncmVlIDwgY3VyckRlZ3JlZS5kZWdyZWUpIHtcbiAgICAgICAgICBtYXhEZWdyZWUgPSBjdXJyRGVncmVlLmRlZ3JlZTtcbiAgICAgICAgfVxuICAgICAgICBkZWdyZWVzW25vZGUuaWQoKV0gPSBjdXJyRGVncmVlLmRlZ3JlZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlZ3JlZTogZnVuY3Rpb24gZGVncmVlKG5vZGUpIHtcbiAgICAgICAgICBpZiAobWF4RGVncmVlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0cmluZyhub2RlKSkge1xuICAgICAgICAgICAgLy8gZnJvbSBpcyBhIHNlbGVjdG9yIHN0cmluZ1xuICAgICAgICAgICAgbm9kZSA9IGN5LmZpbHRlcihub2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGRlZ3JlZXNbbm9kZS5pZCgpXSAvIG1heERlZ3JlZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGluZGVncmVlcyA9IHt9O1xuICAgICAgdmFyIG91dGRlZ3JlZXMgPSB7fTtcbiAgICAgIHZhciBtYXhJbmRlZ3JlZSA9IDA7XG4gICAgICB2YXIgbWF4T3V0ZGVncmVlID0gMDtcbiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBudW1Ob2RlczsgX2krKykge1xuICAgICAgICB2YXIgX25vZGUgPSBub2Rlc1tfaV07XG4gICAgICAgIHZhciBpZCA9IF9ub2RlLmlkKCk7XG5cbiAgICAgICAgLy8gYWRkIGN1cnJlbnQgbm9kZSB0byB0aGUgY3VycmVudCBvcHRpb25zIG9iamVjdCBhbmQgY2FsbCBkZWdyZWVDZW50cmFsaXR5XG4gICAgICAgIG9wdGlvbnMucm9vdCA9IF9ub2RlO1xuICAgICAgICB2YXIgX2N1cnJEZWdyZWUgPSB0aGlzLmRlZ3JlZUNlbnRyYWxpdHkob3B0aW9ucyk7XG4gICAgICAgIGlmIChtYXhJbmRlZ3JlZSA8IF9jdXJyRGVncmVlLmluZGVncmVlKSBtYXhJbmRlZ3JlZSA9IF9jdXJyRGVncmVlLmluZGVncmVlO1xuICAgICAgICBpZiAobWF4T3V0ZGVncmVlIDwgX2N1cnJEZWdyZWUub3V0ZGVncmVlKSBtYXhPdXRkZWdyZWUgPSBfY3VyckRlZ3JlZS5vdXRkZWdyZWU7XG4gICAgICAgIGluZGVncmVlc1tpZF0gPSBfY3VyckRlZ3JlZS5pbmRlZ3JlZTtcbiAgICAgICAgb3V0ZGVncmVlc1tpZF0gPSBfY3VyckRlZ3JlZS5vdXRkZWdyZWU7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbmRlZ3JlZTogZnVuY3Rpb24gaW5kZWdyZWUobm9kZSkge1xuICAgICAgICAgIGlmIChtYXhJbmRlZ3JlZSA9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0cmluZyhub2RlKSkge1xuICAgICAgICAgICAgLy8gZnJvbSBpcyBhIHNlbGVjdG9yIHN0cmluZ1xuICAgICAgICAgICAgbm9kZSA9IGN5LmZpbHRlcihub2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGluZGVncmVlc1tub2RlLmlkKCldIC8gbWF4SW5kZWdyZWU7XG4gICAgICAgIH0sXG4gICAgICAgIG91dGRlZ3JlZTogZnVuY3Rpb24gb3V0ZGVncmVlKG5vZGUpIHtcbiAgICAgICAgICBpZiAobWF4T3V0ZGVncmVlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0cmluZyhub2RlKSkge1xuICAgICAgICAgICAgLy8gZnJvbSBpcyBhIHNlbGVjdG9yIHN0cmluZ1xuICAgICAgICAgICAgbm9kZSA9IGN5LmZpbHRlcihub2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG91dGRlZ3JlZXNbbm9kZS5pZCgpXSAvIG1heE91dGRlZ3JlZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH0sXG4gIC8vIGRlZ3JlZUNlbnRyYWxpdHlOb3JtYWxpemVkXG5cbiAgLy8gSW1wbGVtZW50ZWQgZnJvbSB0aGUgYWxnb3JpdGhtIGluIE9wc2FobCdzIHBhcGVyXG4gIC8vIFwiTm9kZSBjZW50cmFsaXR5IGluIHdlaWdodGVkIG5ldHdvcmtzOiBHZW5lcmFsaXppbmcgZGVncmVlIGFuZCBzaG9ydGVzdCBwYXRoc1wiXG4gIC8vIGNoZWNrIHRoZSBoZWFkaW5nIDIgXCJEZWdyZWVcIlxuICBkZWdyZWVDZW50cmFsaXR5OiBmdW5jdGlvbiBkZWdyZWVDZW50cmFsaXR5KG9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gZGVmYXVsdHMkZihvcHRpb25zKTtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgdmFyIGNhbGxpbmdFbGVzID0gdGhpcztcbiAgICB2YXIgX29wdGlvbnMgPSBvcHRpb25zLFxuICAgICAgcm9vdCA9IF9vcHRpb25zLnJvb3QsXG4gICAgICB3ZWlnaHQgPSBfb3B0aW9ucy53ZWlnaHQsXG4gICAgICBkaXJlY3RlZCA9IF9vcHRpb25zLmRpcmVjdGVkLFxuICAgICAgYWxwaGEgPSBfb3B0aW9ucy5hbHBoYTtcbiAgICByb290ID0gY3kuY29sbGVjdGlvbihyb290KVswXTtcbiAgICBpZiAoIWRpcmVjdGVkKSB7XG4gICAgICB2YXIgY29ubkVkZ2VzID0gcm9vdC5jb25uZWN0ZWRFZGdlcygpLmludGVyc2VjdGlvbihjYWxsaW5nRWxlcyk7XG4gICAgICB2YXIgayA9IGNvbm5FZGdlcy5sZW5ndGg7XG4gICAgICB2YXIgcyA9IDA7XG5cbiAgICAgIC8vIE5vdywgc3VtIGVkZ2Ugd2VpZ2h0c1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25uRWRnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcyArPSB3ZWlnaHQoY29ubkVkZ2VzW2ldKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlZ3JlZTogTWF0aC5wb3coaywgMSAtIGFscGhhKSAqIE1hdGgucG93KHMsIGFscGhhKVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGVkZ2VzID0gcm9vdC5jb25uZWN0ZWRFZGdlcygpO1xuICAgICAgdmFyIGluY29taW5nID0gZWRnZXMuZmlsdGVyKGZ1bmN0aW9uIChlZGdlKSB7XG4gICAgICAgIHJldHVybiBlZGdlLnRhcmdldCgpLnNhbWUocm9vdCkgJiYgY2FsbGluZ0VsZXMuaGFzKGVkZ2UpO1xuICAgICAgfSk7XG4gICAgICB2YXIgb3V0Z29pbmcgPSBlZGdlcy5maWx0ZXIoZnVuY3Rpb24gKGVkZ2UpIHtcbiAgICAgICAgcmV0dXJuIGVkZ2Uuc291cmNlKCkuc2FtZShyb290KSAmJiBjYWxsaW5nRWxlcy5oYXMoZWRnZSk7XG4gICAgICB9KTtcbiAgICAgIHZhciBrX2luID0gaW5jb21pbmcubGVuZ3RoO1xuICAgICAgdmFyIGtfb3V0ID0gb3V0Z29pbmcubGVuZ3RoO1xuICAgICAgdmFyIHNfaW4gPSAwO1xuICAgICAgdmFyIHNfb3V0ID0gMDtcblxuICAgICAgLy8gTm93LCBzdW0gaW5jb21pbmcgZWRnZSB3ZWlnaHRzXG4gICAgICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgPCBpbmNvbWluZy5sZW5ndGg7IF9pMisrKSB7XG4gICAgICAgIHNfaW4gKz0gd2VpZ2h0KGluY29taW5nW19pMl0pO1xuICAgICAgfVxuXG4gICAgICAvLyBOb3csIHN1bSBvdXRnb2luZyBlZGdlIHdlaWdodHNcbiAgICAgIGZvciAodmFyIF9pMyA9IDA7IF9pMyA8IG91dGdvaW5nLmxlbmd0aDsgX2kzKyspIHtcbiAgICAgICAgc19vdXQgKz0gd2VpZ2h0KG91dGdvaW5nW19pM10pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW5kZWdyZWU6IE1hdGgucG93KGtfaW4sIDEgLSBhbHBoYSkgKiBNYXRoLnBvdyhzX2luLCBhbHBoYSksXG4gICAgICAgIG91dGRlZ3JlZTogTWF0aC5wb3coa19vdXQsIDEgLSBhbHBoYSkgKiBNYXRoLnBvdyhzX291dCwgYWxwaGEpXG4gICAgICB9O1xuICAgIH1cbiAgfSAvLyBkZWdyZWVDZW50cmFsaXR5XG59OyAvLyBlbGVzZm5cblxuLy8gbmljZSwgc2hvcnQgbWF0aGVtYXRpY2FsIGFsaWFzXG5lbGVzZm4kbi5kYyA9IGVsZXNmbiRuLmRlZ3JlZUNlbnRyYWxpdHk7XG5lbGVzZm4kbi5kY24gPSBlbGVzZm4kbi5kZWdyZWVDZW50cmFsaXR5Tm9ybWFsaXNlZCA9IGVsZXNmbiRuLmRlZ3JlZUNlbnRyYWxpdHlOb3JtYWxpemVkO1xuXG52YXIgZGVmYXVsdHMkZSA9IGRlZmF1bHRzJGcoe1xuICBoYXJtb25pYzogdHJ1ZSxcbiAgd2VpZ2h0OiBmdW5jdGlvbiB3ZWlnaHQoKSB7XG4gICAgcmV0dXJuIDE7XG4gIH0sXG4gIGRpcmVjdGVkOiBmYWxzZSxcbiAgcm9vdDogbnVsbFxufSk7XG52YXIgZWxlc2ZuJG0gPSB7XG4gIGNsb3NlbmVzc0NlbnRyYWxpdHlOb3JtYWxpemVkOiBmdW5jdGlvbiBjbG9zZW5lc3NDZW50cmFsaXR5Tm9ybWFsaXplZChvcHRpb25zKSB7XG4gICAgdmFyIF9kZWZhdWx0cyA9IGRlZmF1bHRzJGUob3B0aW9ucyksXG4gICAgICBoYXJtb25pYyA9IF9kZWZhdWx0cy5oYXJtb25pYyxcbiAgICAgIHdlaWdodCA9IF9kZWZhdWx0cy53ZWlnaHQsXG4gICAgICBkaXJlY3RlZCA9IF9kZWZhdWx0cy5kaXJlY3RlZDtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgdmFyIGNsb3NlbmVzc2VzID0ge307XG4gICAgdmFyIG1heENsb3NlbmVzcyA9IDA7XG4gICAgdmFyIG5vZGVzID0gdGhpcy5ub2RlcygpO1xuICAgIHZhciBmdyA9IHRoaXMuZmxveWRXYXJzaGFsbCh7XG4gICAgICB3ZWlnaHQ6IHdlaWdodCxcbiAgICAgIGRpcmVjdGVkOiBkaXJlY3RlZFxuICAgIH0pO1xuXG4gICAgLy8gQ29tcHV0ZSBjbG9zZW5lc3MgZm9yIGV2ZXJ5IG5vZGUgYW5kIGZpbmQgdGhlIG1heGltdW0gY2xvc2VuZXNzXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGN1cnJDbG9zZW5lc3MgPSAwO1xuICAgICAgdmFyIG5vZGVfaSA9IG5vZGVzW2ldO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBub2Rlcy5sZW5ndGg7IGorKykge1xuICAgICAgICBpZiAoaSAhPT0gaikge1xuICAgICAgICAgIHZhciBkID0gZncuZGlzdGFuY2Uobm9kZV9pLCBub2Rlc1tqXSk7XG4gICAgICAgICAgaWYgKGhhcm1vbmljKSB7XG4gICAgICAgICAgICBjdXJyQ2xvc2VuZXNzICs9IDEgLyBkO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyQ2xvc2VuZXNzICs9IGQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWhhcm1vbmljKSB7XG4gICAgICAgIGN1cnJDbG9zZW5lc3MgPSAxIC8gY3VyckNsb3NlbmVzcztcbiAgICAgIH1cbiAgICAgIGlmIChtYXhDbG9zZW5lc3MgPCBjdXJyQ2xvc2VuZXNzKSB7XG4gICAgICAgIG1heENsb3NlbmVzcyA9IGN1cnJDbG9zZW5lc3M7XG4gICAgICB9XG4gICAgICBjbG9zZW5lc3Nlc1tub2RlX2kuaWQoKV0gPSBjdXJyQ2xvc2VuZXNzO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgY2xvc2VuZXNzOiBmdW5jdGlvbiBjbG9zZW5lc3Mobm9kZSkge1xuICAgICAgICBpZiAobWF4Q2xvc2VuZXNzID09IDApIHtcbiAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyaW5nKG5vZGUpKSB7XG4gICAgICAgICAgLy8gZnJvbSBpcyBhIHNlbGVjdG9yIHN0cmluZ1xuICAgICAgICAgIG5vZGUgPSBjeS5maWx0ZXIobm9kZSlbMF0uaWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBmcm9tIGlzIGEgbm9kZVxuICAgICAgICAgIG5vZGUgPSBub2RlLmlkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsb3NlbmVzc2VzW25vZGVdIC8gbWF4Q2xvc2VuZXNzO1xuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIC8vIEltcGxlbWVudGVkIGZyb20gcHNldWRvY29kZSBmcm9tIHdpa2lwZWRpYVxuICBjbG9zZW5lc3NDZW50cmFsaXR5OiBmdW5jdGlvbiBjbG9zZW5lc3NDZW50cmFsaXR5KG9wdGlvbnMpIHtcbiAgICB2YXIgX2RlZmF1bHRzMiA9IGRlZmF1bHRzJGUob3B0aW9ucyksXG4gICAgICByb290ID0gX2RlZmF1bHRzMi5yb290LFxuICAgICAgd2VpZ2h0ID0gX2RlZmF1bHRzMi53ZWlnaHQsXG4gICAgICBkaXJlY3RlZCA9IF9kZWZhdWx0czIuZGlyZWN0ZWQsXG4gICAgICBoYXJtb25pYyA9IF9kZWZhdWx0czIuaGFybW9uaWM7XG4gICAgcm9vdCA9IHRoaXMuZmlsdGVyKHJvb3QpWzBdO1xuXG4gICAgLy8gd2UgbmVlZCBkaXN0YW5jZSBmcm9tIHRoaXMgbm9kZSB0byBldmVyeSBvdGhlciBub2RlXG4gICAgdmFyIGRpamtzdHJhID0gdGhpcy5kaWprc3RyYSh7XG4gICAgICByb290OiByb290LFxuICAgICAgd2VpZ2h0OiB3ZWlnaHQsXG4gICAgICBkaXJlY3RlZDogZGlyZWN0ZWRcbiAgICB9KTtcbiAgICB2YXIgdG90YWxEaXN0YW5jZSA9IDA7XG4gICAgdmFyIG5vZGVzID0gdGhpcy5ub2RlcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBuID0gbm9kZXNbaV07XG4gICAgICBpZiAoIW4uc2FtZShyb290KSkge1xuICAgICAgICB2YXIgZCA9IGRpamtzdHJhLmRpc3RhbmNlVG8obik7XG4gICAgICAgIGlmIChoYXJtb25pYykge1xuICAgICAgICAgIHRvdGFsRGlzdGFuY2UgKz0gMSAvIGQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdG90YWxEaXN0YW5jZSArPSBkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoYXJtb25pYyA/IHRvdGFsRGlzdGFuY2UgOiAxIC8gdG90YWxEaXN0YW5jZTtcbiAgfSAvLyBjbG9zZW5lc3NDZW50cmFsaXR5XG59OyAvLyBlbGVzZm5cblxuLy8gbmljZSwgc2hvcnQgbWF0aGVtYXRpY2FsIGFsaWFzXG5lbGVzZm4kbS5jYyA9IGVsZXNmbiRtLmNsb3NlbmVzc0NlbnRyYWxpdHk7XG5lbGVzZm4kbS5jY24gPSBlbGVzZm4kbS5jbG9zZW5lc3NDZW50cmFsaXR5Tm9ybWFsaXNlZCA9IGVsZXNmbiRtLmNsb3NlbmVzc0NlbnRyYWxpdHlOb3JtYWxpemVkO1xuXG52YXIgZGVmYXVsdHMkZCA9IGRlZmF1bHRzJGcoe1xuICB3ZWlnaHQ6IG51bGwsXG4gIGRpcmVjdGVkOiBmYWxzZVxufSk7XG52YXIgZWxlc2ZuJGwgPSB7XG4gIC8vIEltcGxlbWVudGVkIGZyb20gdGhlIGFsZ29yaXRobSBpbiB0aGUgcGFwZXIgXCJPbiBWYXJpYW50cyBvZiBTaG9ydGVzdC1QYXRoIEJldHdlZW5uZXNzIENlbnRyYWxpdHkgYW5kIHRoZWlyIEdlbmVyaWMgQ29tcHV0YXRpb25cIiBieSBVbHJpayBCcmFuZGVzXG4gIGJldHdlZW5uZXNzQ2VudHJhbGl0eTogZnVuY3Rpb24gYmV0d2Vlbm5lc3NDZW50cmFsaXR5KG9wdGlvbnMpIHtcbiAgICB2YXIgX2RlZmF1bHRzID0gZGVmYXVsdHMkZChvcHRpb25zKSxcbiAgICAgIGRpcmVjdGVkID0gX2RlZmF1bHRzLmRpcmVjdGVkLFxuICAgICAgd2VpZ2h0ID0gX2RlZmF1bHRzLndlaWdodDtcbiAgICB2YXIgd2VpZ2h0ZWQgPSB3ZWlnaHQgIT0gbnVsbDtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG5cbiAgICAvLyBzdGFydGluZ1xuICAgIHZhciBWID0gdGhpcy5ub2RlcygpO1xuICAgIHZhciBBID0ge307XG4gICAgdmFyIF9DID0ge307XG4gICAgdmFyIG1heCA9IDA7XG4gICAgdmFyIEMgPSB7XG4gICAgICBzZXQ6IGZ1bmN0aW9uIHNldChrZXksIHZhbCkge1xuICAgICAgICBfQ1trZXldID0gdmFsO1xuICAgICAgICBpZiAodmFsID4gbWF4KSB7XG4gICAgICAgICAgbWF4ID0gdmFsO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoa2V5KSB7XG4gICAgICAgIHJldHVybiBfQ1trZXldO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBBIGNvbnRhaW5zIHRoZSBuZWlnaGJvcmhvb2RzIG9mIGV2ZXJ5IG5vZGVcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IFYubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB2ID0gVltpXTtcbiAgICAgIHZhciB2aWQgPSB2LmlkKCk7XG4gICAgICBpZiAoZGlyZWN0ZWQpIHtcbiAgICAgICAgQVt2aWRdID0gdi5vdXRnb2VycygpLm5vZGVzKCk7IC8vIGdldCBvdXRnb2VycyBvZiBldmVyeSBub2RlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBBW3ZpZF0gPSB2Lm9wZW5OZWlnaGJvcmhvb2QoKS5ub2RlcygpOyAvLyBnZXQgbmVpZ2hib3JzIG9mIGV2ZXJ5IG5vZGVcbiAgICAgIH1cblxuICAgICAgQy5zZXQodmlkLCAwKTtcbiAgICB9XG4gICAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3Aocykge1xuICAgICAgdmFyIHNpZCA9IFZbc10uaWQoKTtcbiAgICAgIHZhciBTID0gW107IC8vIHN0YWNrXG4gICAgICB2YXIgUCA9IHt9O1xuICAgICAgdmFyIGcgPSB7fTtcbiAgICAgIHZhciBkID0ge307XG4gICAgICB2YXIgUSA9IG5ldyBoZWFwKGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgIHJldHVybiBkW2FdIC0gZFtiXTtcbiAgICAgIH0pOyAvLyBxdWV1ZVxuXG4gICAgICAvLyBpbml0IGRpY3Rpb25hcmllc1xuICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IFYubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHZhciBfdmlkID0gVltfaV0uaWQoKTtcbiAgICAgICAgUFtfdmlkXSA9IFtdO1xuICAgICAgICBnW192aWRdID0gMDtcbiAgICAgICAgZFtfdmlkXSA9IEluZmluaXR5O1xuICAgICAgfVxuICAgICAgZ1tzaWRdID0gMTsgLy8gc2lnbWFcbiAgICAgIGRbc2lkXSA9IDA7IC8vIGRpc3RhbmNlIHRvIHNcblxuICAgICAgUS5wdXNoKHNpZCk7XG4gICAgICB3aGlsZSAoIVEuZW1wdHkoKSkge1xuICAgICAgICB2YXIgX3YgPSBRLnBvcCgpO1xuICAgICAgICBTLnB1c2goX3YpO1xuICAgICAgICBpZiAod2VpZ2h0ZWQpIHtcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IEFbX3ZdLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICB2YXIgdyA9IEFbX3ZdW2pdO1xuICAgICAgICAgICAgdmFyIHZFbGUgPSBjeS5nZXRFbGVtZW50QnlJZChfdik7XG4gICAgICAgICAgICB2YXIgZWRnZSA9IHZvaWQgMDtcbiAgICAgICAgICAgIGlmICh2RWxlLmVkZ2VzVG8odykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBlZGdlID0gdkVsZS5lZGdlc1RvKHcpWzBdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZWRnZSA9IHcuZWRnZXNUbyh2RWxlKVswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBlZGdlV2VpZ2h0ID0gd2VpZ2h0KGVkZ2UpO1xuICAgICAgICAgICAgdyA9IHcuaWQoKTtcbiAgICAgICAgICAgIGlmIChkW3ddID4gZFtfdl0gKyBlZGdlV2VpZ2h0KSB7XG4gICAgICAgICAgICAgIGRbd10gPSBkW192XSArIGVkZ2VXZWlnaHQ7XG4gICAgICAgICAgICAgIGlmIChRLm5vZGVzLmluZGV4T2YodykgPCAwKSB7XG4gICAgICAgICAgICAgICAgLy9pZiB3IGlzIG5vdCBpbiBRXG4gICAgICAgICAgICAgICAgUS5wdXNoKHcpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBwb3NpdGlvbiBpZiB3IGlzIGluIFFcbiAgICAgICAgICAgICAgICBRLnVwZGF0ZUl0ZW0odyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZ1t3XSA9IDA7XG4gICAgICAgICAgICAgIFBbd10gPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkW3ddID09IGRbX3ZdICsgZWRnZVdlaWdodCkge1xuICAgICAgICAgICAgICBnW3ddID0gZ1t3XSArIGdbX3ZdO1xuICAgICAgICAgICAgICBQW3ddLnB1c2goX3YpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3IgKHZhciBfaiA9IDA7IF9qIDwgQVtfdl0ubGVuZ3RoOyBfaisrKSB7XG4gICAgICAgICAgICB2YXIgX3cgPSBBW192XVtfal0uaWQoKTtcbiAgICAgICAgICAgIGlmIChkW193XSA9PSBJbmZpbml0eSkge1xuICAgICAgICAgICAgICBRLnB1c2goX3cpO1xuICAgICAgICAgICAgICBkW193XSA9IGRbX3ZdICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkW193XSA9PSBkW192XSArIDEpIHtcbiAgICAgICAgICAgICAgZ1tfd10gPSBnW193XSArIGdbX3ZdO1xuICAgICAgICAgICAgICBQW193XS5wdXNoKF92KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciBlID0ge307XG4gICAgICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgPCBWLmxlbmd0aDsgX2kyKyspIHtcbiAgICAgICAgZVtWW19pMl0uaWQoKV0gPSAwO1xuICAgICAgfVxuICAgICAgd2hpbGUgKFMubGVuZ3RoID4gMCkge1xuICAgICAgICB2YXIgX3cyID0gUy5wb3AoKTtcbiAgICAgICAgZm9yICh2YXIgX2oyID0gMDsgX2oyIDwgUFtfdzJdLmxlbmd0aDsgX2oyKyspIHtcbiAgICAgICAgICB2YXIgX3YyID0gUFtfdzJdW19qMl07XG4gICAgICAgICAgZVtfdjJdID0gZVtfdjJdICsgZ1tfdjJdIC8gZ1tfdzJdICogKDEgKyBlW193Ml0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfdzIgIT0gVltzXS5pZCgpKSB7XG4gICAgICAgICAgQy5zZXQoX3cyLCBDLmdldChfdzIpICsgZVtfdzJdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgZm9yICh2YXIgcyA9IDA7IHMgPCBWLmxlbmd0aDsgcysrKSB7XG4gICAgICBfbG9vcChzKTtcbiAgICB9XG4gICAgdmFyIHJldCA9IHtcbiAgICAgIGJldHdlZW5uZXNzOiBmdW5jdGlvbiBiZXR3ZWVubmVzcyhub2RlKSB7XG4gICAgICAgIHZhciBpZCA9IGN5LmNvbGxlY3Rpb24obm9kZSkuaWQoKTtcbiAgICAgICAgcmV0dXJuIEMuZ2V0KGlkKTtcbiAgICAgIH0sXG4gICAgICBiZXR3ZWVubmVzc05vcm1hbGl6ZWQ6IGZ1bmN0aW9uIGJldHdlZW5uZXNzTm9ybWFsaXplZChub2RlKSB7XG4gICAgICAgIGlmIChtYXggPT0gMCkge1xuICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpZCA9IGN5LmNvbGxlY3Rpb24obm9kZSkuaWQoKTtcbiAgICAgICAgcmV0dXJuIEMuZ2V0KGlkKSAvIG1heDtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gYWxpYXNcbiAgICByZXQuYmV0d2Vlbm5lc3NOb3JtYWxpc2VkID0gcmV0LmJldHdlZW5uZXNzTm9ybWFsaXplZDtcbiAgICByZXR1cm4gcmV0O1xuICB9IC8vIGJldHdlZW5uZXNzQ2VudHJhbGl0eVxufTsgLy8gZWxlc2ZuXG5cbi8vIG5pY2UsIHNob3J0IG1hdGhlbWF0aWNhbCBhbGlhc1xuZWxlc2ZuJGwuYmMgPSBlbGVzZm4kbC5iZXR3ZWVubmVzc0NlbnRyYWxpdHk7XG5cbi8vIEltcGxlbWVudGVkIGJ5IFpvZSBYaSBAem9leGkgZm9yIEdTT0MgMjAxNlxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGRlZmF1bHRzJGMgPSBkZWZhdWx0cyRnKHtcbiAgZXhwYW5kRmFjdG9yOiAyLFxuICAvLyBhZmZlY3RzIHRpbWUgb2YgY29tcHV0YXRpb24gYW5kIGNsdXN0ZXIgZ3JhbnVsYXJpdHkgdG8gc29tZSBleHRlbnQ6IE0gKiBNXG4gIGluZmxhdGVGYWN0b3I6IDIsXG4gIC8vIGFmZmVjdHMgY2x1c3RlciBncmFudWxhcml0eSAodGhlIGdyZWF0ZXIgdGhlIHZhbHVlLCB0aGUgbW9yZSBjbHVzdGVycyk6IE0oaSxqKSAvIEUoailcbiAgbXVsdEZhY3RvcjogMSxcbiAgLy8gb3B0aW9uYWwgc2VsZiBsb29wcyBmb3IgZWFjaCBub2RlLiBVc2UgYSBuZXV0cmFsIHZhbHVlIHRvIGltcHJvdmUgY2x1c3RlciBjb21wdXRhdGlvbnMuXG4gIG1heEl0ZXJhdGlvbnM6IDIwLFxuICAvLyBtYXhpbXVtIG51bWJlciBvZiBpdGVyYXRpb25zIG9mIHRoZSBNQ0wgYWxnb3JpdGhtIGluIGEgc2luZ2xlIHJ1blxuICBhdHRyaWJ1dGVzOiBbXG4gIC8vIGF0dHJpYnV0ZXMvZmVhdHVyZXMgdXNlZCB0byBncm91cCBub2RlcywgaWUuIHNpbWlsYXJpdHkgdmFsdWVzIGJldHdlZW4gbm9kZXNcbiAgZnVuY3Rpb24gKGVkZ2UpIHtcbiAgICByZXR1cm4gMTtcbiAgfV1cbn0pO1xuLyogZXNsaW50LWVuYWJsZSAqL1xuXG52YXIgc2V0T3B0aW9ucyQzID0gZnVuY3Rpb24gc2V0T3B0aW9ucyhvcHRpb25zKSB7XG4gIHJldHVybiBkZWZhdWx0cyRjKG9wdGlvbnMpO1xufTtcbi8qIGVzbGludC1lbmFibGUgKi9cblxudmFyIGdldFNpbWlsYXJpdHkkMSA9IGZ1bmN0aW9uIGdldFNpbWlsYXJpdHkoZWRnZSwgYXR0cmlidXRlcykge1xuICB2YXIgdG90YWwgPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICB0b3RhbCArPSBhdHRyaWJ1dGVzW2ldKGVkZ2UpO1xuICB9XG4gIHJldHVybiB0b3RhbDtcbn07XG52YXIgYWRkTG9vcHMgPSBmdW5jdGlvbiBhZGRMb29wcyhNLCBuLCB2YWwpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICBNW2kgKiBuICsgaV0gPSB2YWw7XG4gIH1cbn07XG52YXIgbm9ybWFsaXplID0gZnVuY3Rpb24gbm9ybWFsaXplKE0sIG4pIHtcbiAgdmFyIHN1bTtcbiAgZm9yICh2YXIgY29sID0gMDsgY29sIDwgbjsgY29sKyspIHtcbiAgICBzdW0gPSAwO1xuICAgIGZvciAodmFyIHJvdyA9IDA7IHJvdyA8IG47IHJvdysrKSB7XG4gICAgICBzdW0gKz0gTVtyb3cgKiBuICsgY29sXTtcbiAgICB9XG4gICAgZm9yICh2YXIgX3JvdyA9IDA7IF9yb3cgPCBuOyBfcm93KyspIHtcbiAgICAgIE1bX3JvdyAqIG4gKyBjb2xdID0gTVtfcm93ICogbiArIGNvbF0gLyBzdW07XG4gICAgfVxuICB9XG59O1xuXG4vLyBUT0RPOiBibG9ja2VkIG1hdHJpeCBtdWx0aXBsaWNhdGlvbj9cbnZhciBtbXVsdCA9IGZ1bmN0aW9uIG1tdWx0KEEsIEIsIG4pIHtcbiAgdmFyIEMgPSBuZXcgQXJyYXkobiAqIG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgbjsgaisrKSB7XG4gICAgICBDW2kgKiBuICsgal0gPSAwO1xuICAgIH1cbiAgICBmb3IgKHZhciBrID0gMDsgayA8IG47IGsrKykge1xuICAgICAgZm9yICh2YXIgX2ogPSAwOyBfaiA8IG47IF9qKyspIHtcbiAgICAgICAgQ1tpICogbiArIF9qXSArPSBBW2kgKiBuICsga10gKiBCW2sgKiBuICsgX2pdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gQztcbn07XG52YXIgZXhwYW5kID0gZnVuY3Rpb24gZXhwYW5kKE0sIG4sIGV4cGFuZEZhY3RvciAvKiogcG93ZXIgKiovKSB7XG4gIHZhciBfTSA9IE0uc2xpY2UoMCk7XG4gIGZvciAodmFyIHAgPSAxOyBwIDwgZXhwYW5kRmFjdG9yOyBwKyspIHtcbiAgICBNID0gbW11bHQoTSwgX00sIG4pO1xuICB9XG4gIHJldHVybiBNO1xufTtcbnZhciBpbmZsYXRlID0gZnVuY3Rpb24gaW5mbGF0ZShNLCBuLCBpbmZsYXRlRmFjdG9yIC8qKiByICoqLykge1xuICB2YXIgX00gPSBuZXcgQXJyYXkobiAqIG4pO1xuXG4gIC8vIE0oaSxqKSBeIGluZmxhdGVQb3dlclxuICBmb3IgKHZhciBpID0gMDsgaSA8IG4gKiBuOyBpKyspIHtcbiAgICBfTVtpXSA9IE1hdGgucG93KE1baV0sIGluZmxhdGVGYWN0b3IpO1xuICB9XG4gIG5vcm1hbGl6ZShfTSwgbik7XG4gIHJldHVybiBfTTtcbn07XG52YXIgaGFzQ29udmVyZ2VkID0gZnVuY3Rpb24gaGFzQ29udmVyZ2VkKE0sIF9NLCBuMiwgcm91bmRGYWN0b3IpIHtcbiAgLy8gQ2hlY2sgdGhhdCBib3RoIG1hdHJpY2VzIGhhdmUgdGhlIHNhbWUgZWxlbWVudHMgKGksailcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuMjsgaSsrKSB7XG4gICAgdmFyIHYxID0gTWF0aC5yb3VuZChNW2ldICogTWF0aC5wb3coMTAsIHJvdW5kRmFjdG9yKSkgLyBNYXRoLnBvdygxMCwgcm91bmRGYWN0b3IpOyAvLyB0cnVuY2F0ZSB0byAncm91bmRGYWN0b3InIGRlY2ltYWwgcGxhY2VzXG4gICAgdmFyIHYyID0gTWF0aC5yb3VuZChfTVtpXSAqIE1hdGgucG93KDEwLCByb3VuZEZhY3RvcikpIC8gTWF0aC5wb3coMTAsIHJvdW5kRmFjdG9yKTtcbiAgICBpZiAodjEgIT09IHYyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBhc3NpZ24kMiA9IGZ1bmN0aW9uIGFzc2lnbihNLCBuLCBub2RlcywgY3kpIHtcbiAgdmFyIGNsdXN0ZXJzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgdmFyIGNsdXN0ZXIgPSBbXTtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IG47IGorKykge1xuICAgICAgLy8gUm93LXdpc2UgYXR0cmFjdG9ycyBhbmQgZWxlbWVudHMgdGhhdCB0aGV5IGF0dHJhY3QgYmVsb25nIGluIHNhbWUgY2x1c3RlclxuICAgICAgaWYgKE1hdGgucm91bmQoTVtpICogbiArIGpdICogMTAwMCkgLyAxMDAwID4gMCkge1xuICAgICAgICBjbHVzdGVyLnB1c2gobm9kZXNbal0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2x1c3Rlci5sZW5ndGggIT09IDApIHtcbiAgICAgIGNsdXN0ZXJzLnB1c2goY3kuY29sbGVjdGlvbihjbHVzdGVyKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjbHVzdGVycztcbn07XG52YXIgaXNEdXBsaWNhdGUgPSBmdW5jdGlvbiBpc0R1cGxpY2F0ZShjMSwgYzIpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjMS5sZW5ndGg7IGkrKykge1xuICAgIGlmICghYzJbaV0gfHwgYzFbaV0uaWQoKSAhPT0gYzJbaV0uaWQoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG52YXIgcmVtb3ZlRHVwbGljYXRlcyA9IGZ1bmN0aW9uIHJlbW92ZUR1cGxpY2F0ZXMoY2x1c3RlcnMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKykge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgY2x1c3RlcnMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGlmIChpICE9IGogJiYgaXNEdXBsaWNhdGUoY2x1c3RlcnNbaV0sIGNsdXN0ZXJzW2pdKSkge1xuICAgICAgICBjbHVzdGVycy5zcGxpY2UoaiwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjbHVzdGVycztcbn07XG52YXIgbWFya292Q2x1c3RlcmluZyA9IGZ1bmN0aW9uIG1hcmtvdkNsdXN0ZXJpbmcob3B0aW9ucykge1xuICB2YXIgbm9kZXMgPSB0aGlzLm5vZGVzKCk7XG4gIHZhciBlZGdlcyA9IHRoaXMuZWRnZXMoKTtcbiAgdmFyIGN5ID0gdGhpcy5jeSgpO1xuXG4gIC8vIFNldCBwYXJhbWV0ZXJzIG9mIGFsZ29yaXRobTpcbiAgdmFyIG9wdHMgPSBzZXRPcHRpb25zJDMob3B0aW9ucyk7XG5cbiAgLy8gTWFwIGVhY2ggbm9kZSB0byBpdHMgcG9zaXRpb24gaW4gbm9kZSBhcnJheVxuICB2YXIgaWQycG9zaXRpb24gPSB7fTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgIGlkMnBvc2l0aW9uW25vZGVzW2ldLmlkKCldID0gaTtcbiAgfVxuXG4gIC8vIEdlbmVyYXRlIHN0b2NoYXN0aWMgbWF0cml4IE0gZnJvbSBpbnB1dCBncmFwaCBHIChzaG91bGQgYmUgc3ltbWV0cmljL3VuZGlyZWN0ZWQpXG4gIHZhciBuID0gbm9kZXMubGVuZ3RoLFxuICAgIG4yID0gbiAqIG47XG4gIHZhciBNID0gbmV3IEFycmF5KG4yKSxcbiAgICBfTTtcbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IG4yOyBfaSsrKSB7XG4gICAgTVtfaV0gPSAwO1xuICB9XG4gIGZvciAodmFyIGUgPSAwOyBlIDwgZWRnZXMubGVuZ3RoOyBlKyspIHtcbiAgICB2YXIgZWRnZSA9IGVkZ2VzW2VdO1xuICAgIHZhciBfaTIgPSBpZDJwb3NpdGlvbltlZGdlLnNvdXJjZSgpLmlkKCldO1xuICAgIHZhciBqID0gaWQycG9zaXRpb25bZWRnZS50YXJnZXQoKS5pZCgpXTtcbiAgICB2YXIgc2ltID0gZ2V0U2ltaWxhcml0eSQxKGVkZ2UsIG9wdHMuYXR0cmlidXRlcyk7XG4gICAgTVtfaTIgKiBuICsgal0gKz0gc2ltOyAvLyBHIHNob3VsZCBiZSBzeW1tZXRyaWMgYW5kIHVuZGlyZWN0ZWRcbiAgICBNW2ogKiBuICsgX2kyXSArPSBzaW07XG4gIH1cblxuICAvLyBCZWdpbiBNYXJrb3YgY2x1c3RlciBhbGdvcml0aG1cblxuICAvLyBTdGVwIDE6IEFkZCBzZWxmIGxvb3BzIHRvIGVhY2ggbm9kZSwgaWUuIGFkZCBtdWx0RmFjdG9yIHRvIG1hdHJpeCBkaWFnb25hbFxuICBhZGRMb29wcyhNLCBuLCBvcHRzLm11bHRGYWN0b3IpO1xuXG4gIC8vIFN0ZXAgMjogTSA9IG5vcm1hbGl6ZSggTSApO1xuICBub3JtYWxpemUoTSwgbik7XG4gIHZhciBpc1N0aWxsTW92aW5nID0gdHJ1ZTtcbiAgdmFyIGl0ZXJhdGlvbnMgPSAwO1xuICB3aGlsZSAoaXNTdGlsbE1vdmluZyAmJiBpdGVyYXRpb25zIDwgb3B0cy5tYXhJdGVyYXRpb25zKSB7XG4gICAgaXNTdGlsbE1vdmluZyA9IGZhbHNlO1xuXG4gICAgLy8gU3RlcCAzOlxuICAgIF9NID0gZXhwYW5kKE0sIG4sIG9wdHMuZXhwYW5kRmFjdG9yKTtcblxuICAgIC8vIFN0ZXAgNDpcbiAgICBNID0gaW5mbGF0ZShfTSwgbiwgb3B0cy5pbmZsYXRlRmFjdG9yKTtcblxuICAgIC8vIFN0ZXAgNTogY2hlY2sgdG8gc2VlIGlmIH5zdGVhZHkgc3RhdGUgaGFzIGJlZW4gcmVhY2hlZFxuICAgIGlmICghaGFzQ29udmVyZ2VkKE0sIF9NLCBuMiwgNCkpIHtcbiAgICAgIGlzU3RpbGxNb3ZpbmcgPSB0cnVlO1xuICAgIH1cbiAgICBpdGVyYXRpb25zKys7XG4gIH1cblxuICAvLyBCdWlsZCBjbHVzdGVycyBmcm9tIG1hdHJpeFxuICB2YXIgY2x1c3RlcnMgPSBhc3NpZ24kMihNLCBuLCBub2RlcywgY3kpO1xuXG4gIC8vIFJlbW92ZSBkdXBsaWNhdGUgY2x1c3RlcnMgZHVlIHRvIHN5bW1ldHJ5IG9mIGdyYXBoIGFuZCBNIG1hdHJpeFxuICBjbHVzdGVycyA9IHJlbW92ZUR1cGxpY2F0ZXMoY2x1c3RlcnMpO1xuICByZXR1cm4gY2x1c3RlcnM7XG59O1xudmFyIG1hcmtvdkNsdXN0ZXJpbmckMSA9IHtcbiAgbWFya292Q2x1c3RlcmluZzogbWFya292Q2x1c3RlcmluZyxcbiAgbWNsOiBtYXJrb3ZDbHVzdGVyaW5nXG59O1xuXG4vLyBDb21tb24gZGlzdGFuY2UgbWV0cmljcyBmb3IgY2x1c3RlcmluZyBhbGdvcml0aG1zXG52YXIgaWRlbnRpdHkgPSBmdW5jdGlvbiBpZGVudGl0eSh4KSB7XG4gIHJldHVybiB4O1xufTtcbnZhciBhYnNEaWZmID0gZnVuY3Rpb24gYWJzRGlmZihwLCBxKSB7XG4gIHJldHVybiBNYXRoLmFicyhxIC0gcCk7XG59O1xudmFyIGFkZEFic0RpZmYgPSBmdW5jdGlvbiBhZGRBYnNEaWZmKHRvdGFsLCBwLCBxKSB7XG4gIHJldHVybiB0b3RhbCArIGFic0RpZmYocCwgcSk7XG59O1xudmFyIGFkZFNxdWFyZWREaWZmID0gZnVuY3Rpb24gYWRkU3F1YXJlZERpZmYodG90YWwsIHAsIHEpIHtcbiAgcmV0dXJuIHRvdGFsICsgTWF0aC5wb3cocSAtIHAsIDIpO1xufTtcbnZhciBzcXJ0ID0gZnVuY3Rpb24gc3FydCh4KSB7XG4gIHJldHVybiBNYXRoLnNxcnQoeCk7XG59O1xudmFyIG1heEFic0RpZmYgPSBmdW5jdGlvbiBtYXhBYnNEaWZmKGN1cnJlbnRNYXgsIHAsIHEpIHtcbiAgcmV0dXJuIE1hdGgubWF4KGN1cnJlbnRNYXgsIGFic0RpZmYocCwgcSkpO1xufTtcbnZhciBnZXREaXN0YW5jZSA9IGZ1bmN0aW9uIGdldERpc3RhbmNlKGxlbmd0aCwgZ2V0UCwgZ2V0USwgaW5pdCwgdmlzaXQpIHtcbiAgdmFyIHBvc3QgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IGlkZW50aXR5O1xuICB2YXIgcmV0ID0gaW5pdDtcbiAgdmFyIHAsIHE7XG4gIGZvciAodmFyIGRpbSA9IDA7IGRpbSA8IGxlbmd0aDsgZGltKyspIHtcbiAgICBwID0gZ2V0UChkaW0pO1xuICAgIHEgPSBnZXRRKGRpbSk7XG4gICAgcmV0ID0gdmlzaXQocmV0LCBwLCBxKTtcbiAgfVxuICByZXR1cm4gcG9zdChyZXQpO1xufTtcbnZhciBkaXN0YW5jZXMgPSB7XG4gIGV1Y2xpZGVhbjogZnVuY3Rpb24gZXVjbGlkZWFuKGxlbmd0aCwgZ2V0UCwgZ2V0USkge1xuICAgIGlmIChsZW5ndGggPj0gMikge1xuICAgICAgcmV0dXJuIGdldERpc3RhbmNlKGxlbmd0aCwgZ2V0UCwgZ2V0USwgMCwgYWRkU3F1YXJlZERpZmYsIHNxcnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBmb3Igc2luZ2xlIGF0dHIgY2FzZSwgbW9yZSBlZmZpY2llbnQgdG8gYXZvaWQgc3FydFxuICAgICAgcmV0dXJuIGdldERpc3RhbmNlKGxlbmd0aCwgZ2V0UCwgZ2V0USwgMCwgYWRkQWJzRGlmZik7XG4gICAgfVxuICB9LFxuICBzcXVhcmVkRXVjbGlkZWFuOiBmdW5jdGlvbiBzcXVhcmVkRXVjbGlkZWFuKGxlbmd0aCwgZ2V0UCwgZ2V0USkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZShsZW5ndGgsIGdldFAsIGdldFEsIDAsIGFkZFNxdWFyZWREaWZmKTtcbiAgfSxcbiAgbWFuaGF0dGFuOiBmdW5jdGlvbiBtYW5oYXR0YW4obGVuZ3RoLCBnZXRQLCBnZXRRKSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlKGxlbmd0aCwgZ2V0UCwgZ2V0USwgMCwgYWRkQWJzRGlmZik7XG4gIH0sXG4gIG1heDogZnVuY3Rpb24gbWF4KGxlbmd0aCwgZ2V0UCwgZ2V0USkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZShsZW5ndGgsIGdldFAsIGdldFEsIC1JbmZpbml0eSwgbWF4QWJzRGlmZik7XG4gIH1cbn07XG5cbi8vIGluIGNhc2UgdGhlIHVzZXIgYWNjaWRlbnRhbGx5IGRvZXNuJ3QgdXNlIGNhbWVsIGNhc2VcbmRpc3RhbmNlc1snc3F1YXJlZC1ldWNsaWRlYW4nXSA9IGRpc3RhbmNlc1snc3F1YXJlZEV1Y2xpZGVhbiddO1xuZGlzdGFuY2VzWydzcXVhcmVkZXVjbGlkZWFuJ10gPSBkaXN0YW5jZXNbJ3NxdWFyZWRFdWNsaWRlYW4nXTtcbmZ1bmN0aW9uIGNsdXN0ZXJpbmdEaXN0YW5jZSAobWV0aG9kLCBsZW5ndGgsIGdldFAsIGdldFEsIG5vZGVQLCBub2RlUSkge1xuICB2YXIgaW1wbDtcbiAgaWYgKGZuJDYobWV0aG9kKSkge1xuICAgIGltcGwgPSBtZXRob2Q7XG4gIH0gZWxzZSB7XG4gICAgaW1wbCA9IGRpc3RhbmNlc1ttZXRob2RdIHx8IGRpc3RhbmNlcy5ldWNsaWRlYW47XG4gIH1cbiAgaWYgKGxlbmd0aCA9PT0gMCAmJiBmbiQ2KG1ldGhvZCkpIHtcbiAgICByZXR1cm4gaW1wbChub2RlUCwgbm9kZVEpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBpbXBsKGxlbmd0aCwgZ2V0UCwgZ2V0USwgbm9kZVAsIG5vZGVRKTtcbiAgfVxufVxuXG52YXIgZGVmYXVsdHMkYiA9IGRlZmF1bHRzJGcoe1xuICBrOiAyLFxuICBtOiAyLFxuICBzZW5zaXRpdml0eVRocmVzaG9sZDogMC4wMDAxLFxuICBkaXN0YW5jZTogJ2V1Y2xpZGVhbicsXG4gIG1heEl0ZXJhdGlvbnM6IDEwLFxuICBhdHRyaWJ1dGVzOiBbXSxcbiAgdGVzdE1vZGU6IGZhbHNlLFxuICB0ZXN0Q2VudHJvaWRzOiBudWxsXG59KTtcbnZhciBzZXRPcHRpb25zJDIgPSBmdW5jdGlvbiBzZXRPcHRpb25zKG9wdGlvbnMpIHtcbiAgcmV0dXJuIGRlZmF1bHRzJGIob3B0aW9ucyk7XG59O1xuXG52YXIgZ2V0RGlzdCA9IGZ1bmN0aW9uIGdldERpc3QodHlwZSwgbm9kZSwgY2VudHJvaWQsIGF0dHJpYnV0ZXMsIG1vZGUpIHtcbiAgdmFyIG5vTm9kZVAgPSBtb2RlICE9PSAna01lZG9pZHMnO1xuICB2YXIgZ2V0UCA9IG5vTm9kZVAgPyBmdW5jdGlvbiAoaSkge1xuICAgIHJldHVybiBjZW50cm9pZFtpXTtcbiAgfSA6IGZ1bmN0aW9uIChpKSB7XG4gICAgcmV0dXJuIGF0dHJpYnV0ZXNbaV0oY2VudHJvaWQpO1xuICB9O1xuICB2YXIgZ2V0USA9IGZ1bmN0aW9uIGdldFEoaSkge1xuICAgIHJldHVybiBhdHRyaWJ1dGVzW2ldKG5vZGUpO1xuICB9O1xuICB2YXIgbm9kZVAgPSBjZW50cm9pZDtcbiAgdmFyIG5vZGVRID0gbm9kZTtcbiAgcmV0dXJuIGNsdXN0ZXJpbmdEaXN0YW5jZSh0eXBlLCBhdHRyaWJ1dGVzLmxlbmd0aCwgZ2V0UCwgZ2V0USwgbm9kZVAsIG5vZGVRKTtcbn07XG52YXIgcmFuZG9tQ2VudHJvaWRzID0gZnVuY3Rpb24gcmFuZG9tQ2VudHJvaWRzKG5vZGVzLCBrLCBhdHRyaWJ1dGVzKSB7XG4gIHZhciBuZGltID0gYXR0cmlidXRlcy5sZW5ndGg7XG4gIHZhciBtaW4gPSBuZXcgQXJyYXkobmRpbSk7XG4gIHZhciBtYXggPSBuZXcgQXJyYXkobmRpbSk7XG4gIHZhciBjZW50cm9pZHMgPSBuZXcgQXJyYXkoayk7XG4gIHZhciBjZW50cm9pZCA9IG51bGw7XG5cbiAgLy8gRmluZCBtaW4sIG1heCB2YWx1ZXMgZm9yIGVhY2ggYXR0cmlidXRlIGRpbWVuc2lvblxuICBmb3IgKHZhciBpID0gMDsgaSA8IG5kaW07IGkrKykge1xuICAgIG1pbltpXSA9IG5vZGVzLm1pbihhdHRyaWJ1dGVzW2ldKS52YWx1ZTtcbiAgICBtYXhbaV0gPSBub2Rlcy5tYXgoYXR0cmlidXRlc1tpXSkudmFsdWU7XG4gIH1cblxuICAvLyBCdWlsZCBrIGNlbnRyb2lkcywgZWFjaCByZXByZXNlbnRlZCBhcyBhbiBuLWRpbSBmZWF0dXJlIHZlY3RvclxuICBmb3IgKHZhciBjID0gMDsgYyA8IGs7IGMrKykge1xuICAgIGNlbnRyb2lkID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IG5kaW07IF9pKyspIHtcbiAgICAgIGNlbnRyb2lkW19pXSA9IE1hdGgucmFuZG9tKCkgKiAobWF4W19pXSAtIG1pbltfaV0pICsgbWluW19pXTsgLy8gcmFuZG9tIGluaXRpYWwgdmFsdWVcbiAgICB9XG5cbiAgICBjZW50cm9pZHNbY10gPSBjZW50cm9pZDtcbiAgfVxuICByZXR1cm4gY2VudHJvaWRzO1xufTtcbnZhciBjbGFzc2lmeSA9IGZ1bmN0aW9uIGNsYXNzaWZ5KG5vZGUsIGNlbnRyb2lkcywgZGlzdGFuY2UsIGF0dHJpYnV0ZXMsIHR5cGUpIHtcbiAgdmFyIG1pbiA9IEluZmluaXR5O1xuICB2YXIgaW5kZXggPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNlbnRyb2lkcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkaXN0ID0gZ2V0RGlzdChkaXN0YW5jZSwgbm9kZSwgY2VudHJvaWRzW2ldLCBhdHRyaWJ1dGVzLCB0eXBlKTtcbiAgICBpZiAoZGlzdCA8IG1pbikge1xuICAgICAgbWluID0gZGlzdDtcbiAgICAgIGluZGV4ID0gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluZGV4O1xufTtcbnZhciBidWlsZENsdXN0ZXIgPSBmdW5jdGlvbiBidWlsZENsdXN0ZXIoY2VudHJvaWQsIG5vZGVzLCBhc3NpZ25tZW50KSB7XG4gIHZhciBjbHVzdGVyID0gW107XG4gIHZhciBub2RlID0gbnVsbDtcbiAgZm9yICh2YXIgbiA9IDA7IG4gPCBub2Rlcy5sZW5ndGg7IG4rKykge1xuICAgIG5vZGUgPSBub2Rlc1tuXTtcbiAgICBpZiAoYXNzaWdubWVudFtub2RlLmlkKCldID09PSBjZW50cm9pZCkge1xuICAgICAgLy9jb25zb2xlLmxvZyhcIk5vZGUgXCIgKyBub2RlLmlkKCkgKyBcIiBpcyBhc3NvY2lhdGVkIHdpdGggbWVkb2lkICM6IFwiICsgbSk7XG4gICAgICBjbHVzdGVyLnB1c2gobm9kZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjbHVzdGVyO1xufTtcbnZhciBoYXZlVmFsdWVzQ29udmVyZ2VkID0gZnVuY3Rpb24gaGF2ZVZhbHVlc0NvbnZlcmdlZCh2MSwgdjIsIHNlbnNpdGl2aXR5VGhyZXNob2xkKSB7XG4gIHJldHVybiBNYXRoLmFicyh2MiAtIHYxKSA8PSBzZW5zaXRpdml0eVRocmVzaG9sZDtcbn07XG52YXIgaGF2ZU1hdHJpY2VzQ29udmVyZ2VkID0gZnVuY3Rpb24gaGF2ZU1hdHJpY2VzQ29udmVyZ2VkKHYxLCB2Miwgc2Vuc2l0aXZpdHlUaHJlc2hvbGQpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2MS5sZW5ndGg7IGkrKykge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgdjFbaV0ubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBkaWZmID0gTWF0aC5hYnModjFbaV1bal0gLSB2MltpXVtqXSk7XG4gICAgICBpZiAoZGlmZiA+IHNlbnNpdGl2aXR5VGhyZXNob2xkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59O1xudmFyIHNlZW5CZWZvcmUgPSBmdW5jdGlvbiBzZWVuQmVmb3JlKG5vZGUsIG1lZG9pZHMsIG4pIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICBpZiAobm9kZSA9PT0gbWVkb2lkc1tpXSkgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcbnZhciByYW5kb21NZWRvaWRzID0gZnVuY3Rpb24gcmFuZG9tTWVkb2lkcyhub2Rlcywgaykge1xuICB2YXIgbWVkb2lkcyA9IG5ldyBBcnJheShrKTtcblxuICAvLyBGb3Igc21hbGwgZGF0YSBzZXRzLCB0aGUgcHJvYmFiaWxpdHkgb2YgbWVkb2lkIGNvbmZsaWN0IGlzIGdyZWF0ZXIsXG4gIC8vIHNvIHdlIG5lZWQgdG8gY2hlY2sgdG8gc2VlIGlmIHdlJ3ZlIGFscmVhZHkgc2VlbiBvciBjaG9zZSB0aGlzIG5vZGUgYmVmb3JlLlxuICBpZiAobm9kZXMubGVuZ3RoIDwgNTApIHtcbiAgICAvLyBSYW5kb21seSBzZWxlY3QgayBtZWRvaWRzIGZyb20gdGhlIG4gbm9kZXNcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGs7IGkrKykge1xuICAgICAgdmFyIG5vZGUgPSBub2Rlc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBub2Rlcy5sZW5ndGgpXTtcblxuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBjaG9zZW4gdGhpcyBub2RlIHRvIGJlIGEgbWVkb2lkLCBkb24ndCBjaG9vc2UgaXQgYWdhaW4gKGZvciBzbWFsbCBkYXRhIHNldHMpLlxuICAgICAgLy8gSW5zdGVhZCBjaG9vc2UgYSBkaWZmZXJlbnQgcmFuZG9tIG5vZGUuXG4gICAgICB3aGlsZSAoc2VlbkJlZm9yZShub2RlLCBtZWRvaWRzLCBpKSkge1xuICAgICAgICBub2RlID0gbm9kZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbm9kZXMubGVuZ3RoKV07XG4gICAgICB9XG4gICAgICBtZWRvaWRzW2ldID0gbm9kZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gUmVsYXRpdmVseSBsYXJnZSBkYXRhIHNldCwgc28gcHJldHR5IHNhZmUgdG8gbm90IGNoZWNrIGFuZCBqdXN0IHNlbGVjdCByYW5kb20gbm9kZXNcbiAgICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgPCBrOyBfaTIrKykge1xuICAgICAgbWVkb2lkc1tfaTJdID0gbm9kZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbm9kZXMubGVuZ3RoKV07XG4gICAgfVxuICB9XG4gIHJldHVybiBtZWRvaWRzO1xufTtcbnZhciBmaW5kQ29zdCA9IGZ1bmN0aW9uIGZpbmRDb3N0KHBvdGVudGlhbE5ld01lZG9pZCwgY2x1c3RlciwgYXR0cmlidXRlcykge1xuICB2YXIgY29zdCA9IDA7XG4gIGZvciAodmFyIG4gPSAwOyBuIDwgY2x1c3Rlci5sZW5ndGg7IG4rKykge1xuICAgIGNvc3QgKz0gZ2V0RGlzdCgnbWFuaGF0dGFuJywgY2x1c3RlcltuXSwgcG90ZW50aWFsTmV3TWVkb2lkLCBhdHRyaWJ1dGVzLCAna01lZG9pZHMnKTtcbiAgfVxuICByZXR1cm4gY29zdDtcbn07XG52YXIga01lYW5zID0gZnVuY3Rpb24ga01lYW5zKG9wdGlvbnMpIHtcbiAgdmFyIGN5ID0gdGhpcy5jeSgpO1xuICB2YXIgbm9kZXMgPSB0aGlzLm5vZGVzKCk7XG4gIHZhciBub2RlID0gbnVsbDtcblxuICAvLyBTZXQgcGFyYW1ldGVycyBvZiBhbGdvcml0aG06ICMgb2YgY2x1c3RlcnMsIGRpc3RhbmNlIG1ldHJpYywgZXRjLlxuICB2YXIgb3B0cyA9IHNldE9wdGlvbnMkMihvcHRpb25zKTtcblxuICAvLyBCZWdpbiBrLW1lYW5zIGFsZ29yaXRobVxuICB2YXIgY2x1c3RlcnMgPSBuZXcgQXJyYXkob3B0cy5rKTtcbiAgdmFyIGFzc2lnbm1lbnQgPSB7fTtcbiAgdmFyIGNlbnRyb2lkcztcblxuICAvLyBTdGVwIDE6IEluaXRpYWxpemUgY2VudHJvaWQgcG9zaXRpb25zXG4gIGlmIChvcHRzLnRlc3RNb2RlKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRzLnRlc3RDZW50cm9pZHMgPT09ICdudW1iZXInKSB7XG4gICAgICAvLyBUT0RPOiBpbXBsZW1lbnQgYSBzZWVkZWQgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuXG4gICAgICBvcHRzLnRlc3RDZW50cm9pZHM7XG4gICAgICBjZW50cm9pZHMgPSByYW5kb21DZW50cm9pZHMobm9kZXMsIG9wdHMuaywgb3B0cy5hdHRyaWJ1dGVzKTtcbiAgICB9IGVsc2UgaWYgKF90eXBlb2Yob3B0cy50ZXN0Q2VudHJvaWRzKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNlbnRyb2lkcyA9IG9wdHMudGVzdENlbnRyb2lkcztcbiAgICB9IGVsc2Uge1xuICAgICAgY2VudHJvaWRzID0gcmFuZG9tQ2VudHJvaWRzKG5vZGVzLCBvcHRzLmssIG9wdHMuYXR0cmlidXRlcyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNlbnRyb2lkcyA9IHJhbmRvbUNlbnRyb2lkcyhub2Rlcywgb3B0cy5rLCBvcHRzLmF0dHJpYnV0ZXMpO1xuICB9XG4gIHZhciBpc1N0aWxsTW92aW5nID0gdHJ1ZTtcbiAgdmFyIGl0ZXJhdGlvbnMgPSAwO1xuICB3aGlsZSAoaXNTdGlsbE1vdmluZyAmJiBpdGVyYXRpb25zIDwgb3B0cy5tYXhJdGVyYXRpb25zKSB7XG4gICAgLy8gU3RlcCAyOiBBc3NpZ24gbm9kZXMgdG8gdGhlIG5lYXJlc3QgY2VudHJvaWRcbiAgICBmb3IgKHZhciBuID0gMDsgbiA8IG5vZGVzLmxlbmd0aDsgbisrKSB7XG4gICAgICBub2RlID0gbm9kZXNbbl07XG4gICAgICAvLyBEZXRlcm1pbmUgd2hpY2ggY2x1c3RlciB0aGlzIG5vZGUgYmVsb25ncyB0bzogbm9kZSBpZCA9PiBjbHVzdGVyICNcbiAgICAgIGFzc2lnbm1lbnRbbm9kZS5pZCgpXSA9IGNsYXNzaWZ5KG5vZGUsIGNlbnRyb2lkcywgb3B0cy5kaXN0YW5jZSwgb3B0cy5hdHRyaWJ1dGVzLCAna01lYW5zJyk7XG4gICAgfVxuXG4gICAgLy8gU3RlcCAzOiBGb3IgZWFjaCBvZiB0aGUgayBjbHVzdGVycywgdXBkYXRlIGl0cyBjZW50cm9pZFxuICAgIGlzU3RpbGxNb3ZpbmcgPSBmYWxzZTtcbiAgICBmb3IgKHZhciBjID0gMDsgYyA8IG9wdHMuazsgYysrKSB7XG4gICAgICAvLyBHZXQgYWxsIG5vZGVzIHRoYXQgYmVsb25nIHRvIHRoaXMgY2x1c3RlclxuICAgICAgdmFyIGNsdXN0ZXIgPSBidWlsZENsdXN0ZXIoYywgbm9kZXMsIGFzc2lnbm1lbnQpO1xuICAgICAgaWYgKGNsdXN0ZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIElmIGNsdXN0ZXIgaXMgZW1wdHksIGJyZWFrIG91dCBlYXJseSAmIG1vdmUgdG8gbmV4dCBjbHVzdGVyXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBVcGRhdGUgY2VudHJvaWRzIGJ5IGNhbGN1bGF0aW5nIGF2ZyBvZiBhbGwgbm9kZXMgd2l0aGluIHRoZSBjbHVzdGVyLlxuICAgICAgdmFyIG5kaW0gPSBvcHRzLmF0dHJpYnV0ZXMubGVuZ3RoO1xuICAgICAgdmFyIGNlbnRyb2lkID0gY2VudHJvaWRzW2NdOyAvLyBbIGRpbV8xLCBkaW1fMiwgZGltXzMsIC4uLiAsIGRpbV9uIF1cbiAgICAgIHZhciBuZXdDZW50cm9pZCA9IG5ldyBBcnJheShuZGltKTtcbiAgICAgIHZhciBzdW0gPSBuZXcgQXJyYXkobmRpbSk7XG4gICAgICBmb3IgKHZhciBkID0gMDsgZCA8IG5kaW07IGQrKykge1xuICAgICAgICBzdW1bZF0gPSAwLjA7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2x1c3Rlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIG5vZGUgPSBjbHVzdGVyW2ldO1xuICAgICAgICAgIHN1bVtkXSArPSBvcHRzLmF0dHJpYnV0ZXNbZF0obm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgbmV3Q2VudHJvaWRbZF0gPSBzdW1bZF0gLyBjbHVzdGVyLmxlbmd0aDtcblxuICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgYWxnb3JpdGhtIGhhcyBjb252ZXJnZWQsIGkuZS4gd2hlbiBjZW50cm9pZHMgbm8gbG9uZ2VyIGNoYW5nZVxuICAgICAgICBpZiAoIWhhdmVWYWx1ZXNDb252ZXJnZWQobmV3Q2VudHJvaWRbZF0sIGNlbnRyb2lkW2RdLCBvcHRzLnNlbnNpdGl2aXR5VGhyZXNob2xkKSkge1xuICAgICAgICAgIGlzU3RpbGxNb3ZpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjZW50cm9pZHNbY10gPSBuZXdDZW50cm9pZDtcbiAgICAgIGNsdXN0ZXJzW2NdID0gY3kuY29sbGVjdGlvbihjbHVzdGVyKTtcbiAgICB9XG4gICAgaXRlcmF0aW9ucysrO1xuICB9XG4gIHJldHVybiBjbHVzdGVycztcbn07XG52YXIga01lZG9pZHMgPSBmdW5jdGlvbiBrTWVkb2lkcyhvcHRpb25zKSB7XG4gIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgdmFyIG5vZGVzID0gdGhpcy5ub2RlcygpO1xuICB2YXIgbm9kZSA9IG51bGw7XG4gIHZhciBvcHRzID0gc2V0T3B0aW9ucyQyKG9wdGlvbnMpO1xuXG4gIC8vIEJlZ2luIGstbWVkb2lkcyBhbGdvcml0aG1cbiAgdmFyIGNsdXN0ZXJzID0gbmV3IEFycmF5KG9wdHMuayk7XG4gIHZhciBtZWRvaWRzO1xuICB2YXIgYXNzaWdubWVudCA9IHt9O1xuICB2YXIgY3VyQ29zdDtcbiAgdmFyIG1pbkNvc3RzID0gbmV3IEFycmF5KG9wdHMuayk7IC8vIG1pbmltdW0gY29zdCBjb25maWd1cmF0aW9uIGZvciBlYWNoIGNsdXN0ZXJcblxuICAvLyBTdGVwIDE6IEluaXRpYWxpemUgayBtZWRvaWRzXG4gIGlmIChvcHRzLnRlc3RNb2RlKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRzLnRlc3RDZW50cm9pZHMgPT09ICdudW1iZXInKSA7IGVsc2UgaWYgKF90eXBlb2Yob3B0cy50ZXN0Q2VudHJvaWRzKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIG1lZG9pZHMgPSBvcHRzLnRlc3RDZW50cm9pZHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lZG9pZHMgPSByYW5kb21NZWRvaWRzKG5vZGVzLCBvcHRzLmspO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBtZWRvaWRzID0gcmFuZG9tTWVkb2lkcyhub2Rlcywgb3B0cy5rKTtcbiAgfVxuICB2YXIgaXNTdGlsbE1vdmluZyA9IHRydWU7XG4gIHZhciBpdGVyYXRpb25zID0gMDtcbiAgd2hpbGUgKGlzU3RpbGxNb3ZpbmcgJiYgaXRlcmF0aW9ucyA8IG9wdHMubWF4SXRlcmF0aW9ucykge1xuICAgIC8vIFN0ZXAgMjogQXNzaWduIG5vZGVzIHRvIHRoZSBuZWFyZXN0IG1lZG9pZFxuICAgIGZvciAodmFyIG4gPSAwOyBuIDwgbm9kZXMubGVuZ3RoOyBuKyspIHtcbiAgICAgIG5vZGUgPSBub2Rlc1tuXTtcbiAgICAgIC8vIERldGVybWluZSB3aGljaCBjbHVzdGVyIHRoaXMgbm9kZSBiZWxvbmdzIHRvOiBub2RlIGlkID0+IGNsdXN0ZXIgI1xuICAgICAgYXNzaWdubWVudFtub2RlLmlkKCldID0gY2xhc3NpZnkobm9kZSwgbWVkb2lkcywgb3B0cy5kaXN0YW5jZSwgb3B0cy5hdHRyaWJ1dGVzLCAna01lZG9pZHMnKTtcbiAgICB9XG4gICAgaXNTdGlsbE1vdmluZyA9IGZhbHNlO1xuICAgIC8vIFN0ZXAgMzogRm9yIGVhY2ggbWVkb2lkIG0sIGFuZCBmb3IgZWFjaCBub2RlIGFzc29jaWF0ZWQgd2l0aCBtZWRpb2QgbSxcbiAgICAvLyBzZWxlY3QgdGhlIG5vZGUgd2l0aCB0aGUgbG93ZXN0IGNvbmZpZ3VyYXRpb24gY29zdCBhcyBuZXcgbWVkb2lkLlxuICAgIGZvciAodmFyIG0gPSAwOyBtIDwgbWVkb2lkcy5sZW5ndGg7IG0rKykge1xuICAgICAgLy8gR2V0IGFsbCBub2RlcyB0aGF0IGJlbG9uZyB0byB0aGlzIG1lZG9pZFxuICAgICAgdmFyIGNsdXN0ZXIgPSBidWlsZENsdXN0ZXIobSwgbm9kZXMsIGFzc2lnbm1lbnQpO1xuICAgICAgaWYgKGNsdXN0ZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIElmIGNsdXN0ZXIgaXMgZW1wdHksIGJyZWFrIG91dCBlYXJseSAmIG1vdmUgdG8gbmV4dCBjbHVzdGVyXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgbWluQ29zdHNbbV0gPSBmaW5kQ29zdChtZWRvaWRzW21dLCBjbHVzdGVyLCBvcHRzLmF0dHJpYnV0ZXMpOyAvLyBvcmlnaW5hbCBjb3N0XG5cbiAgICAgIC8vIFNlbGVjdCBkaWZmZXJlbnQgbWVkb2lkIGlmIGl0cyBjb25maWd1cmF0aW9uIGhhcyB0aGUgbG93ZXN0IGNvc3RcbiAgICAgIGZvciAodmFyIF9uID0gMDsgX24gPCBjbHVzdGVyLmxlbmd0aDsgX24rKykge1xuICAgICAgICBjdXJDb3N0ID0gZmluZENvc3QoY2x1c3Rlcltfbl0sIGNsdXN0ZXIsIG9wdHMuYXR0cmlidXRlcyk7XG4gICAgICAgIGlmIChjdXJDb3N0IDwgbWluQ29zdHNbbV0pIHtcbiAgICAgICAgICBtaW5Db3N0c1ttXSA9IGN1ckNvc3Q7XG4gICAgICAgICAgbWVkb2lkc1ttXSA9IGNsdXN0ZXJbX25dO1xuICAgICAgICAgIGlzU3RpbGxNb3ZpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjbHVzdGVyc1ttXSA9IGN5LmNvbGxlY3Rpb24oY2x1c3Rlcik7XG4gICAgfVxuICAgIGl0ZXJhdGlvbnMrKztcbiAgfVxuICByZXR1cm4gY2x1c3RlcnM7XG59O1xudmFyIHVwZGF0ZUNlbnRyb2lkcyA9IGZ1bmN0aW9uIHVwZGF0ZUNlbnRyb2lkcyhjZW50cm9pZHMsIG5vZGVzLCBVLCB3ZWlnaHQsIG9wdHMpIHtcbiAgdmFyIG51bWVyYXRvciwgZGVub21pbmF0b3I7XG4gIGZvciAodmFyIG4gPSAwOyBuIDwgbm9kZXMubGVuZ3RoOyBuKyspIHtcbiAgICBmb3IgKHZhciBjID0gMDsgYyA8IGNlbnRyb2lkcy5sZW5ndGg7IGMrKykge1xuICAgICAgd2VpZ2h0W25dW2NdID0gTWF0aC5wb3coVVtuXVtjXSwgb3B0cy5tKTtcbiAgICB9XG4gIH1cbiAgZm9yICh2YXIgX2MgPSAwOyBfYyA8IGNlbnRyb2lkcy5sZW5ndGg7IF9jKyspIHtcbiAgICBmb3IgKHZhciBkaW0gPSAwOyBkaW0gPCBvcHRzLmF0dHJpYnV0ZXMubGVuZ3RoOyBkaW0rKykge1xuICAgICAgbnVtZXJhdG9yID0gMDtcbiAgICAgIGRlbm9taW5hdG9yID0gMDtcbiAgICAgIGZvciAodmFyIF9uMiA9IDA7IF9uMiA8IG5vZGVzLmxlbmd0aDsgX24yKyspIHtcbiAgICAgICAgbnVtZXJhdG9yICs9IHdlaWdodFtfbjJdW19jXSAqIG9wdHMuYXR0cmlidXRlc1tkaW1dKG5vZGVzW19uMl0pO1xuICAgICAgICBkZW5vbWluYXRvciArPSB3ZWlnaHRbX24yXVtfY107XG4gICAgICB9XG4gICAgICBjZW50cm9pZHNbX2NdW2RpbV0gPSBudW1lcmF0b3IgLyBkZW5vbWluYXRvcjtcbiAgICB9XG4gIH1cbn07XG52YXIgdXBkYXRlTWVtYmVyc2hpcCA9IGZ1bmN0aW9uIHVwZGF0ZU1lbWJlcnNoaXAoVSwgX1UsIGNlbnRyb2lkcywgbm9kZXMsIG9wdHMpIHtcbiAgLy8gU2F2ZSBwcmV2aW91cyBzdGVwXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgVS5sZW5ndGg7IGkrKykge1xuICAgIF9VW2ldID0gVVtpXS5zbGljZSgpO1xuICB9XG4gIHZhciBzdW0sIG51bWVyYXRvciwgZGVub21pbmF0b3I7XG4gIHZhciBwb3cgPSAyIC8gKG9wdHMubSAtIDEpO1xuICBmb3IgKHZhciBjID0gMDsgYyA8IGNlbnRyb2lkcy5sZW5ndGg7IGMrKykge1xuICAgIGZvciAodmFyIG4gPSAwOyBuIDwgbm9kZXMubGVuZ3RoOyBuKyspIHtcbiAgICAgIHN1bSA9IDA7XG4gICAgICBmb3IgKHZhciBrID0gMDsgayA8IGNlbnRyb2lkcy5sZW5ndGg7IGsrKykge1xuICAgICAgICAvLyBhZ2FpbnN0IGFsbCBvdGhlciBjZW50cm9pZHNcbiAgICAgICAgbnVtZXJhdG9yID0gZ2V0RGlzdChvcHRzLmRpc3RhbmNlLCBub2Rlc1tuXSwgY2VudHJvaWRzW2NdLCBvcHRzLmF0dHJpYnV0ZXMsICdjbWVhbnMnKTtcbiAgICAgICAgZGVub21pbmF0b3IgPSBnZXREaXN0KG9wdHMuZGlzdGFuY2UsIG5vZGVzW25dLCBjZW50cm9pZHNba10sIG9wdHMuYXR0cmlidXRlcywgJ2NtZWFucycpO1xuICAgICAgICBzdW0gKz0gTWF0aC5wb3cobnVtZXJhdG9yIC8gZGVub21pbmF0b3IsIHBvdyk7XG4gICAgICB9XG4gICAgICBVW25dW2NdID0gMSAvIHN1bTtcbiAgICB9XG4gIH1cbn07XG52YXIgYXNzaWduJDEgPSBmdW5jdGlvbiBhc3NpZ24obm9kZXMsIFUsIG9wdHMsIGN5KSB7XG4gIHZhciBjbHVzdGVycyA9IG5ldyBBcnJheShvcHRzLmspO1xuICBmb3IgKHZhciBjID0gMDsgYyA8IGNsdXN0ZXJzLmxlbmd0aDsgYysrKSB7XG4gICAgY2x1c3RlcnNbY10gPSBbXTtcbiAgfVxuICB2YXIgbWF4O1xuICB2YXIgaW5kZXg7XG4gIGZvciAodmFyIG4gPSAwOyBuIDwgVS5sZW5ndGg7IG4rKykge1xuICAgIC8vIGZvciBlYWNoIG5vZGUgKFUgaXMgTiB4IEMgbWF0cml4KVxuICAgIG1heCA9IC1JbmZpbml0eTtcbiAgICBpbmRleCA9IC0xO1xuICAgIC8vIERldGVybWluZSB3aGljaCBjbHVzdGVyIHRoZSBub2RlIGlzIG1vc3QgbGlrZWx5IHRvIGJlbG9uZyBpblxuICAgIGZvciAodmFyIF9jMiA9IDA7IF9jMiA8IFVbMF0ubGVuZ3RoOyBfYzIrKykge1xuICAgICAgaWYgKFVbbl1bX2MyXSA+IG1heCkge1xuICAgICAgICBtYXggPSBVW25dW19jMl07XG4gICAgICAgIGluZGV4ID0gX2MyO1xuICAgICAgfVxuICAgIH1cbiAgICBjbHVzdGVyc1tpbmRleF0ucHVzaChub2Rlc1tuXSk7XG4gIH1cblxuICAvLyBUdXJuIGV2ZXJ5IGFycmF5IGludG8gYSBjb2xsZWN0aW9uIG9mIG5vZGVzXG4gIGZvciAodmFyIF9jMyA9IDA7IF9jMyA8IGNsdXN0ZXJzLmxlbmd0aDsgX2MzKyspIHtcbiAgICBjbHVzdGVyc1tfYzNdID0gY3kuY29sbGVjdGlvbihjbHVzdGVyc1tfYzNdKTtcbiAgfVxuICByZXR1cm4gY2x1c3RlcnM7XG59O1xudmFyIGZ1enp5Q01lYW5zID0gZnVuY3Rpb24gZnV6enlDTWVhbnMob3B0aW9ucykge1xuICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gIHZhciBub2RlcyA9IHRoaXMubm9kZXMoKTtcbiAgdmFyIG9wdHMgPSBzZXRPcHRpb25zJDIob3B0aW9ucyk7XG5cbiAgLy8gQmVnaW4gZnV6enkgYy1tZWFucyBhbGdvcml0aG1cbiAgdmFyIGNsdXN0ZXJzO1xuICB2YXIgY2VudHJvaWRzO1xuICB2YXIgVTtcbiAgdmFyIF9VO1xuICB2YXIgd2VpZ2h0O1xuXG4gIC8vIFN0ZXAgMTogSW5pdGlhbGl6ZSBsZXRpYWJsZXMuXG4gIF9VID0gbmV3IEFycmF5KG5vZGVzLmxlbmd0aCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAvLyBOIHggQyBtYXRyaXhcbiAgICBfVVtpXSA9IG5ldyBBcnJheShvcHRzLmspO1xuICB9XG4gIFUgPSBuZXcgQXJyYXkobm9kZXMubGVuZ3RoKTtcbiAgZm9yICh2YXIgX2kzID0gMDsgX2kzIDwgbm9kZXMubGVuZ3RoOyBfaTMrKykge1xuICAgIC8vIE4geCBDIG1hdHJpeFxuICAgIFVbX2kzXSA9IG5ldyBBcnJheShvcHRzLmspO1xuICB9XG4gIGZvciAodmFyIF9pNCA9IDA7IF9pNCA8IG5vZGVzLmxlbmd0aDsgX2k0KyspIHtcbiAgICB2YXIgdG90YWwgPSAwO1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgb3B0cy5rOyBqKyspIHtcbiAgICAgIFVbX2k0XVtqXSA9IE1hdGgucmFuZG9tKCk7XG4gICAgICB0b3RhbCArPSBVW19pNF1bal07XG4gICAgfVxuICAgIGZvciAodmFyIF9qID0gMDsgX2ogPCBvcHRzLms7IF9qKyspIHtcbiAgICAgIFVbX2k0XVtfal0gPSBVW19pNF1bX2pdIC8gdG90YWw7XG4gICAgfVxuICB9XG4gIGNlbnRyb2lkcyA9IG5ldyBBcnJheShvcHRzLmspO1xuICBmb3IgKHZhciBfaTUgPSAwOyBfaTUgPCBvcHRzLms7IF9pNSsrKSB7XG4gICAgY2VudHJvaWRzW19pNV0gPSBuZXcgQXJyYXkob3B0cy5hdHRyaWJ1dGVzLmxlbmd0aCk7XG4gIH1cbiAgd2VpZ2h0ID0gbmV3IEFycmF5KG5vZGVzLmxlbmd0aCk7XG4gIGZvciAodmFyIF9pNiA9IDA7IF9pNiA8IG5vZGVzLmxlbmd0aDsgX2k2KyspIHtcbiAgICAvLyBOIHggQyBtYXRyaXhcbiAgICB3ZWlnaHRbX2k2XSA9IG5ldyBBcnJheShvcHRzLmspO1xuICB9XG4gIC8vIGVuZCBpbml0IEZDTVxuXG4gIHZhciBpc1N0aWxsTW92aW5nID0gdHJ1ZTtcbiAgdmFyIGl0ZXJhdGlvbnMgPSAwO1xuICB3aGlsZSAoaXNTdGlsbE1vdmluZyAmJiBpdGVyYXRpb25zIDwgb3B0cy5tYXhJdGVyYXRpb25zKSB7XG4gICAgaXNTdGlsbE1vdmluZyA9IGZhbHNlO1xuXG4gICAgLy8gU3RlcCAyOiBDYWxjdWxhdGUgdGhlIGNlbnRyb2lkcyBmb3IgZWFjaCBzdGVwLlxuICAgIHVwZGF0ZUNlbnRyb2lkcyhjZW50cm9pZHMsIG5vZGVzLCBVLCB3ZWlnaHQsIG9wdHMpO1xuXG4gICAgLy8gU3RlcCAzOiBVcGRhdGUgdGhlIHBhcnRpdGlvbiBtYXRyaXggVS5cbiAgICB1cGRhdGVNZW1iZXJzaGlwKFUsIF9VLCBjZW50cm9pZHMsIG5vZGVzLCBvcHRzKTtcblxuICAgIC8vIFN0ZXAgNDogQ2hlY2sgZm9yIGNvbnZlcmdlbmNlLlxuICAgIGlmICghaGF2ZU1hdHJpY2VzQ29udmVyZ2VkKFUsIF9VLCBvcHRzLnNlbnNpdGl2aXR5VGhyZXNob2xkKSkge1xuICAgICAgaXNTdGlsbE1vdmluZyA9IHRydWU7XG4gICAgfVxuICAgIGl0ZXJhdGlvbnMrKztcbiAgfVxuXG4gIC8vIEFzc2lnbiBub2RlcyB0byBjbHVzdGVycyB3aXRoIGhpZ2hlc3QgcHJvYmFiaWxpdHkuXG4gIGNsdXN0ZXJzID0gYXNzaWduJDEobm9kZXMsIFUsIG9wdHMsIGN5KTtcbiAgcmV0dXJuIHtcbiAgICBjbHVzdGVyczogY2x1c3RlcnMsXG4gICAgZGVncmVlT2ZNZW1iZXJzaGlwOiBVXG4gIH07XG59O1xudmFyIGtDbHVzdGVyaW5nID0ge1xuICBrTWVhbnM6IGtNZWFucyxcbiAga01lZG9pZHM6IGtNZWRvaWRzLFxuICBmdXp6eUNNZWFuczogZnV6enlDTWVhbnMsXG4gIGZjbTogZnV6enlDTWVhbnNcbn07XG5cbi8vIEltcGxlbWVudGVkIGJ5IFpvZSBYaSBAem9leGkgZm9yIEdTT0MgMjAxNlxudmFyIGRlZmF1bHRzJGEgPSBkZWZhdWx0cyRnKHtcbiAgZGlzdGFuY2U6ICdldWNsaWRlYW4nLFxuICAvLyBkaXN0YW5jZSBtZXRyaWMgdG8gY29tcGFyZSBub2Rlc1xuICBsaW5rYWdlOiAnbWluJyxcbiAgLy8gbGlua2FnZSBjcml0ZXJpb24gOiBob3cgdG8gZGV0ZXJtaW5lIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIGNsdXN0ZXJzIG9mIG5vZGVzXG4gIG1vZGU6ICd0aHJlc2hvbGQnLFxuICAvLyBtb2RlOid0aHJlc2hvbGQnID0+IGNsdXN0ZXJzIG11c3QgYmUgdGhyZXNob2xkIGRpc3RhbmNlIGFwYXJ0XG4gIHRocmVzaG9sZDogSW5maW5pdHksXG4gIC8vIHRoZSBkaXN0YW5jZSB0aHJlc2hvbGRcbiAgLy8gbW9kZTonZGVuZHJvZ3JhbScgPT4gdGhlIG5vZGVzIGFyZSBvcmdhbmlzZWQgYXMgbGVhdmVzIGluIGEgdHJlZSAoc2libGluZ3MgYXJlIGNsb3NlKSwgbWVyZ2luZyBtYWtlcyBjbHVzdGVyc1xuICBhZGREZW5kcm9ncmFtOiBmYWxzZSxcbiAgLy8gd2hldGhlciB0byBhZGQgdGhlIGRlbmRyb2dyYW0gdG8gdGhlIGdyYXBoIGZvciB2aXpcbiAgZGVuZHJvZ3JhbURlcHRoOiAwLFxuICAvLyBkZXB0aCBhdCB3aGljaCBkZW5kcm9ncmFtIGJyYW5jaGVzIGFyZSBtZXJnZWQgaW50byB0aGUgcmV0dXJuZWQgY2x1c3RlcnNcbiAgYXR0cmlidXRlczogW10gLy8gYXJyYXkgb2YgYXR0ciBmdW5jdGlvbnNcbn0pO1xuXG52YXIgbGlua2FnZUFsaWFzZXMgPSB7XG4gICdzaW5nbGUnOiAnbWluJyxcbiAgJ2NvbXBsZXRlJzogJ21heCdcbn07XG52YXIgc2V0T3B0aW9ucyQxID0gZnVuY3Rpb24gc2V0T3B0aW9ucyhvcHRpb25zKSB7XG4gIHZhciBvcHRzID0gZGVmYXVsdHMkYShvcHRpb25zKTtcbiAgdmFyIHByZWZlcnJlZEFsaWFzID0gbGlua2FnZUFsaWFzZXNbb3B0cy5saW5rYWdlXTtcbiAgaWYgKHByZWZlcnJlZEFsaWFzICE9IG51bGwpIHtcbiAgICBvcHRzLmxpbmthZ2UgPSBwcmVmZXJyZWRBbGlhcztcbiAgfVxuICByZXR1cm4gb3B0cztcbn07XG52YXIgbWVyZ2VDbG9zZXN0ID0gZnVuY3Rpb24gbWVyZ2VDbG9zZXN0KGNsdXN0ZXJzLCBpbmRleCwgZGlzdHMsIG1pbnMsIG9wdHMpIHtcbiAgLy8gRmluZCB0d28gY2xvc2VzdCBjbHVzdGVycyBmcm9tIGNhY2hlZCBtaW5zXG4gIHZhciBtaW5LZXkgPSAwO1xuICB2YXIgbWluID0gSW5maW5pdHk7XG4gIHZhciBkaXN0O1xuICB2YXIgYXR0cnMgPSBvcHRzLmF0dHJpYnV0ZXM7XG4gIHZhciBnZXREaXN0ID0gZnVuY3Rpb24gZ2V0RGlzdChuMSwgbjIpIHtcbiAgICByZXR1cm4gY2x1c3RlcmluZ0Rpc3RhbmNlKG9wdHMuZGlzdGFuY2UsIGF0dHJzLmxlbmd0aCwgZnVuY3Rpb24gKGkpIHtcbiAgICAgIHJldHVybiBhdHRyc1tpXShuMSk7XG4gICAgfSwgZnVuY3Rpb24gKGkpIHtcbiAgICAgIHJldHVybiBhdHRyc1tpXShuMik7XG4gICAgfSwgbjEsIG4yKTtcbiAgfTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXkgPSBjbHVzdGVyc1tpXS5rZXk7XG4gICAgdmFyIF9kaXN0ID0gZGlzdHNba2V5XVttaW5zW2tleV1dO1xuICAgIGlmIChfZGlzdCA8IG1pbikge1xuICAgICAgbWluS2V5ID0ga2V5O1xuICAgICAgbWluID0gX2Rpc3Q7XG4gICAgfVxuICB9XG4gIGlmIChvcHRzLm1vZGUgPT09ICd0aHJlc2hvbGQnICYmIG1pbiA+PSBvcHRzLnRocmVzaG9sZCB8fCBvcHRzLm1vZGUgPT09ICdkZW5kcm9ncmFtJyAmJiBjbHVzdGVycy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGMxID0gaW5kZXhbbWluS2V5XTtcbiAgdmFyIGMyID0gaW5kZXhbbWluc1ttaW5LZXldXTtcbiAgdmFyIG1lcmdlZDtcblxuICAvLyBNZXJnZSB0d28gY2xvc2VzdCBjbHVzdGVyc1xuICBpZiAob3B0cy5tb2RlID09PSAnZGVuZHJvZ3JhbScpIHtcbiAgICBtZXJnZWQgPSB7XG4gICAgICBsZWZ0OiBjMSxcbiAgICAgIHJpZ2h0OiBjMixcbiAgICAgIGtleTogYzEua2V5XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBtZXJnZWQgPSB7XG4gICAgICB2YWx1ZTogYzEudmFsdWUuY29uY2F0KGMyLnZhbHVlKSxcbiAgICAgIGtleTogYzEua2V5XG4gICAgfTtcbiAgfVxuICBjbHVzdGVyc1tjMS5pbmRleF0gPSBtZXJnZWQ7XG4gIGNsdXN0ZXJzLnNwbGljZShjMi5pbmRleCwgMSk7XG4gIGluZGV4W2MxLmtleV0gPSBtZXJnZWQ7XG5cbiAgLy8gVXBkYXRlIGRpc3RhbmNlcyB3aXRoIG5ldyBtZXJnZWQgY2x1c3RlclxuICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgY2x1c3RlcnMubGVuZ3RoOyBfaSsrKSB7XG4gICAgdmFyIGN1ciA9IGNsdXN0ZXJzW19pXTtcbiAgICBpZiAoYzEua2V5ID09PSBjdXIua2V5KSB7XG4gICAgICBkaXN0ID0gSW5maW5pdHk7XG4gICAgfSBlbHNlIGlmIChvcHRzLmxpbmthZ2UgPT09ICdtaW4nKSB7XG4gICAgICBkaXN0ID0gZGlzdHNbYzEua2V5XVtjdXIua2V5XTtcbiAgICAgIGlmIChkaXN0c1tjMS5rZXldW2N1ci5rZXldID4gZGlzdHNbYzIua2V5XVtjdXIua2V5XSkge1xuICAgICAgICBkaXN0ID0gZGlzdHNbYzIua2V5XVtjdXIua2V5XTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG9wdHMubGlua2FnZSA9PT0gJ21heCcpIHtcbiAgICAgIGRpc3QgPSBkaXN0c1tjMS5rZXldW2N1ci5rZXldO1xuICAgICAgaWYgKGRpc3RzW2MxLmtleV1bY3VyLmtleV0gPCBkaXN0c1tjMi5rZXldW2N1ci5rZXldKSB7XG4gICAgICAgIGRpc3QgPSBkaXN0c1tjMi5rZXldW2N1ci5rZXldO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAob3B0cy5saW5rYWdlID09PSAnbWVhbicpIHtcbiAgICAgIGRpc3QgPSAoZGlzdHNbYzEua2V5XVtjdXIua2V5XSAqIGMxLnNpemUgKyBkaXN0c1tjMi5rZXldW2N1ci5rZXldICogYzIuc2l6ZSkgLyAoYzEuc2l6ZSArIGMyLnNpemUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0cy5tb2RlID09PSAnZGVuZHJvZ3JhbScpIGRpc3QgPSBnZXREaXN0KGN1ci52YWx1ZSwgYzEudmFsdWUpO2Vsc2UgZGlzdCA9IGdldERpc3QoY3VyLnZhbHVlWzBdLCBjMS52YWx1ZVswXSk7XG4gICAgfVxuICAgIGRpc3RzW2MxLmtleV1bY3VyLmtleV0gPSBkaXN0c1tjdXIua2V5XVtjMS5rZXldID0gZGlzdDsgLy8gZGlzdGFuY2UgbWF0cml4IGlzIHN5bW1ldHJpY1xuICB9XG5cbiAgLy8gVXBkYXRlIGNhY2hlZCBtaW5zXG4gIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IGNsdXN0ZXJzLmxlbmd0aDsgX2kyKyspIHtcbiAgICB2YXIga2V5MSA9IGNsdXN0ZXJzW19pMl0ua2V5O1xuICAgIGlmIChtaW5zW2tleTFdID09PSBjMS5rZXkgfHwgbWluc1trZXkxXSA9PT0gYzIua2V5KSB7XG4gICAgICB2YXIgX21pbiA9IGtleTE7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNsdXN0ZXJzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBrZXkyID0gY2x1c3RlcnNbal0ua2V5O1xuICAgICAgICBpZiAoZGlzdHNba2V5MV1ba2V5Ml0gPCBkaXN0c1trZXkxXVtfbWluXSkge1xuICAgICAgICAgIF9taW4gPSBrZXkyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBtaW5zW2tleTFdID0gX21pbjtcbiAgICB9XG4gICAgY2x1c3RlcnNbX2kyXS5pbmRleCA9IF9pMjtcbiAgfVxuXG4gIC8vIENsZWFuIHVwIG1ldGEgZGF0YSB1c2VkIGZvciBjbHVzdGVyaW5nXG4gIGMxLmtleSA9IGMyLmtleSA9IGMxLmluZGV4ID0gYzIuaW5kZXggPSBudWxsO1xuICByZXR1cm4gdHJ1ZTtcbn07XG52YXIgZ2V0QWxsQ2hpbGRyZW4gPSBmdW5jdGlvbiBnZXRBbGxDaGlsZHJlbihyb290LCBhcnIsIGN5KSB7XG4gIGlmICghcm9vdCkgcmV0dXJuO1xuICBpZiAocm9vdC52YWx1ZSkge1xuICAgIGFyci5wdXNoKHJvb3QudmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIGlmIChyb290LmxlZnQpIGdldEFsbENoaWxkcmVuKHJvb3QubGVmdCwgYXJyKTtcbiAgICBpZiAocm9vdC5yaWdodCkgZ2V0QWxsQ2hpbGRyZW4ocm9vdC5yaWdodCwgYXJyKTtcbiAgfVxufTtcbnZhciBidWlsZERlbmRyb2dyYW0gPSBmdW5jdGlvbiBidWlsZERlbmRyb2dyYW0ocm9vdCwgY3kpIHtcbiAgaWYgKCFyb290KSByZXR1cm4gJyc7XG4gIGlmIChyb290LmxlZnQgJiYgcm9vdC5yaWdodCkge1xuICAgIHZhciBsZWZ0U3RyID0gYnVpbGREZW5kcm9ncmFtKHJvb3QubGVmdCwgY3kpO1xuICAgIHZhciByaWdodFN0ciA9IGJ1aWxkRGVuZHJvZ3JhbShyb290LnJpZ2h0LCBjeSk7XG4gICAgdmFyIG5vZGUgPSBjeS5hZGQoe1xuICAgICAgZ3JvdXA6ICdub2RlcycsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGlkOiBsZWZ0U3RyICsgJywnICsgcmlnaHRTdHJcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjeS5hZGQoe1xuICAgICAgZ3JvdXA6ICdlZGdlcycsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHNvdXJjZTogbGVmdFN0cixcbiAgICAgICAgdGFyZ2V0OiBub2RlLmlkKClcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjeS5hZGQoe1xuICAgICAgZ3JvdXA6ICdlZGdlcycsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHNvdXJjZTogcmlnaHRTdHIsXG4gICAgICAgIHRhcmdldDogbm9kZS5pZCgpXG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGUuaWQoKTtcbiAgfSBlbHNlIGlmIChyb290LnZhbHVlKSB7XG4gICAgcmV0dXJuIHJvb3QudmFsdWUuaWQoKTtcbiAgfVxufTtcbnZhciBidWlsZENsdXN0ZXJzRnJvbVRyZWUgPSBmdW5jdGlvbiBidWlsZENsdXN0ZXJzRnJvbVRyZWUocm9vdCwgaywgY3kpIHtcbiAgaWYgKCFyb290KSByZXR1cm4gW107XG4gIHZhciBsZWZ0ID0gW10sXG4gICAgcmlnaHQgPSBbXSxcbiAgICBsZWF2ZXMgPSBbXTtcbiAgaWYgKGsgPT09IDApIHtcbiAgICAvLyBkb24ndCBjdXQgdHJlZSwgc2ltcGx5IHJldHVybiBhbGwgbm9kZXMgYXMgMSBzaW5nbGUgY2x1c3RlclxuICAgIGlmIChyb290LmxlZnQpIGdldEFsbENoaWxkcmVuKHJvb3QubGVmdCwgbGVmdCk7XG4gICAgaWYgKHJvb3QucmlnaHQpIGdldEFsbENoaWxkcmVuKHJvb3QucmlnaHQsIHJpZ2h0KTtcbiAgICBsZWF2ZXMgPSBsZWZ0LmNvbmNhdChyaWdodCk7XG4gICAgcmV0dXJuIFtjeS5jb2xsZWN0aW9uKGxlYXZlcyldO1xuICB9IGVsc2UgaWYgKGsgPT09IDEpIHtcbiAgICAvLyBjdXQgYXQgcm9vdFxuXG4gICAgaWYgKHJvb3QudmFsdWUpIHtcbiAgICAgIC8vIGxlYWYgbm9kZVxuICAgICAgcmV0dXJuIFtjeS5jb2xsZWN0aW9uKHJvb3QudmFsdWUpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJvb3QubGVmdCkgZ2V0QWxsQ2hpbGRyZW4ocm9vdC5sZWZ0LCBsZWZ0KTtcbiAgICAgIGlmIChyb290LnJpZ2h0KSBnZXRBbGxDaGlsZHJlbihyb290LnJpZ2h0LCByaWdodCk7XG4gICAgICByZXR1cm4gW2N5LmNvbGxlY3Rpb24obGVmdCksIGN5LmNvbGxlY3Rpb24ocmlnaHQpXTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHJvb3QudmFsdWUpIHtcbiAgICAgIHJldHVybiBbY3kuY29sbGVjdGlvbihyb290LnZhbHVlKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChyb290LmxlZnQpIGxlZnQgPSBidWlsZENsdXN0ZXJzRnJvbVRyZWUocm9vdC5sZWZ0LCBrIC0gMSwgY3kpO1xuICAgICAgaWYgKHJvb3QucmlnaHQpIHJpZ2h0ID0gYnVpbGRDbHVzdGVyc0Zyb21UcmVlKHJvb3QucmlnaHQsIGsgLSAxLCBjeSk7XG4gICAgICByZXR1cm4gbGVmdC5jb25jYXQocmlnaHQpO1xuICAgIH1cbiAgfVxufTtcblxudmFyIGhpZXJhcmNoaWNhbENsdXN0ZXJpbmcgPSBmdW5jdGlvbiBoaWVyYXJjaGljYWxDbHVzdGVyaW5nKG9wdGlvbnMpIHtcbiAgdmFyIGN5ID0gdGhpcy5jeSgpO1xuICB2YXIgbm9kZXMgPSB0aGlzLm5vZGVzKCk7XG5cbiAgLy8gU2V0IHBhcmFtZXRlcnMgb2YgYWxnb3JpdGhtOiBsaW5rYWdlIHR5cGUsIGRpc3RhbmNlIG1ldHJpYywgZXRjLlxuICB2YXIgb3B0cyA9IHNldE9wdGlvbnMkMShvcHRpb25zKTtcbiAgdmFyIGF0dHJzID0gb3B0cy5hdHRyaWJ1dGVzO1xuICB2YXIgZ2V0RGlzdCA9IGZ1bmN0aW9uIGdldERpc3QobjEsIG4yKSB7XG4gICAgcmV0dXJuIGNsdXN0ZXJpbmdEaXN0YW5jZShvcHRzLmRpc3RhbmNlLCBhdHRycy5sZW5ndGgsIGZ1bmN0aW9uIChpKSB7XG4gICAgICByZXR1cm4gYXR0cnNbaV0objEpO1xuICAgIH0sIGZ1bmN0aW9uIChpKSB7XG4gICAgICByZXR1cm4gYXR0cnNbaV0objIpO1xuICAgIH0sIG4xLCBuMik7XG4gIH07XG5cbiAgLy8gQmVnaW4gaGllcmFyY2hpY2FsIGFsZ29yaXRobVxuICB2YXIgY2x1c3RlcnMgPSBbXTtcbiAgdmFyIGRpc3RzID0gW107IC8vIGRpc3RhbmNlcyBiZXR3ZWVuIGVhY2ggcGFpciBvZiBjbHVzdGVyc1xuICB2YXIgbWlucyA9IFtdOyAvLyBjbG9zZXN0IGNsdXN0ZXIgZm9yIGVhY2ggY2x1c3RlclxuICB2YXIgaW5kZXggPSBbXTsgLy8gaGFzaCBvZiBhbGwgY2x1c3RlcnMgYnkga2V5XG5cbiAgLy8gSW4gYWdnbG9tZXJhdGl2ZSAoYm90dG9tLXVwKSBjbHVzdGVyaW5nLCBlYWNoIG5vZGUgc3RhcnRzIGFzIGl0cyBvd24gY2x1c3RlclxuICBmb3IgKHZhciBuID0gMDsgbiA8IG5vZGVzLmxlbmd0aDsgbisrKSB7XG4gICAgdmFyIGNsdXN0ZXIgPSB7XG4gICAgICB2YWx1ZTogb3B0cy5tb2RlID09PSAnZGVuZHJvZ3JhbScgPyBub2Rlc1tuXSA6IFtub2Rlc1tuXV0sXG4gICAgICBrZXk6IG4sXG4gICAgICBpbmRleDogblxuICAgIH07XG4gICAgY2x1c3RlcnNbbl0gPSBjbHVzdGVyO1xuICAgIGluZGV4W25dID0gY2x1c3RlcjtcbiAgICBkaXN0c1tuXSA9IFtdO1xuICAgIG1pbnNbbl0gPSAwO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIGVhY2ggcGFpciBvZiBjbHVzdGVyc1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPD0gaTsgaisrKSB7XG4gICAgICB2YXIgZGlzdCA9IHZvaWQgMDtcbiAgICAgIGlmIChvcHRzLm1vZGUgPT09ICdkZW5kcm9ncmFtJykge1xuICAgICAgICAvLyBtb2RlcyBzdG9yZSBjbHVzdGVyIHZhbHVlcyBkaWZmZXJlbnRseVxuICAgICAgICBkaXN0ID0gaSA9PT0gaiA/IEluZmluaXR5IDogZ2V0RGlzdChjbHVzdGVyc1tpXS52YWx1ZSwgY2x1c3RlcnNbal0udmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlzdCA9IGkgPT09IGogPyBJbmZpbml0eSA6IGdldERpc3QoY2x1c3RlcnNbaV0udmFsdWVbMF0sIGNsdXN0ZXJzW2pdLnZhbHVlWzBdKTtcbiAgICAgIH1cbiAgICAgIGRpc3RzW2ldW2pdID0gZGlzdDtcbiAgICAgIGRpc3RzW2pdW2ldID0gZGlzdDtcbiAgICAgIGlmIChkaXN0IDwgZGlzdHNbaV1bbWluc1tpXV0pIHtcbiAgICAgICAgbWluc1tpXSA9IGo7IC8vIENhY2hlIG1pbnM6IGNsb3Nlc3QgY2x1c3RlciB0byBjbHVzdGVyIGkgaXMgY2x1c3RlciBqXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRmluZCB0aGUgY2xvc2VzdCBwYWlyIG9mIGNsdXN0ZXJzIGFuZCBtZXJnZSB0aGVtIGludG8gYSBzaW5nbGUgY2x1c3Rlci5cbiAgLy8gVXBkYXRlIGRpc3RhbmNlcyBiZXR3ZWVuIG5ldyBjbHVzdGVyIGFuZCBlYWNoIG9mIHRoZSBvbGQgY2x1c3RlcnMsIGFuZCBsb29wIHVudGlsIHRocmVzaG9sZCByZWFjaGVkLlxuICB2YXIgbWVyZ2VkID0gbWVyZ2VDbG9zZXN0KGNsdXN0ZXJzLCBpbmRleCwgZGlzdHMsIG1pbnMsIG9wdHMpO1xuICB3aGlsZSAobWVyZ2VkKSB7XG4gICAgbWVyZ2VkID0gbWVyZ2VDbG9zZXN0KGNsdXN0ZXJzLCBpbmRleCwgZGlzdHMsIG1pbnMsIG9wdHMpO1xuICB9XG4gIHZhciByZXRDbHVzdGVycztcblxuICAvLyBEZW5kcm9ncmFtIG1vZGUgYnVpbGRzIHRoZSBoaWVyYXJjaHkgYW5kIGFkZHMgaW50ZXJtZWRpYXJ5IG5vZGVzICsgZWRnZXNcbiAgLy8gaW4gYWRkaXRpb24gdG8gcmV0dXJuaW5nIHRoZSBjbHVzdGVycy5cbiAgaWYgKG9wdHMubW9kZSA9PT0gJ2RlbmRyb2dyYW0nKSB7XG4gICAgcmV0Q2x1c3RlcnMgPSBidWlsZENsdXN0ZXJzRnJvbVRyZWUoY2x1c3RlcnNbMF0sIG9wdHMuZGVuZHJvZ3JhbURlcHRoLCBjeSk7XG4gICAgaWYgKG9wdHMuYWRkRGVuZHJvZ3JhbSkgYnVpbGREZW5kcm9ncmFtKGNsdXN0ZXJzWzBdLCBjeSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gUmVndWxhciBtb2RlIHNpbXBseSByZXR1cm5zIHRoZSBjbHVzdGVyc1xuXG4gICAgcmV0Q2x1c3RlcnMgPSBuZXcgQXJyYXkoY2x1c3RlcnMubGVuZ3RoKTtcbiAgICBjbHVzdGVycy5mb3JFYWNoKGZ1bmN0aW9uIChjbHVzdGVyLCBpKSB7XG4gICAgICAvLyBDbGVhbiB1cCBtZXRhIGRhdGEgdXNlZCBmb3IgY2x1c3RlcmluZ1xuICAgICAgY2x1c3Rlci5rZXkgPSBjbHVzdGVyLmluZGV4ID0gbnVsbDtcbiAgICAgIHJldENsdXN0ZXJzW2ldID0gY3kuY29sbGVjdGlvbihjbHVzdGVyLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gcmV0Q2x1c3RlcnM7XG59O1xudmFyIGhpZXJhcmNoaWNhbENsdXN0ZXJpbmckMSA9IHtcbiAgaGllcmFyY2hpY2FsQ2x1c3RlcmluZzogaGllcmFyY2hpY2FsQ2x1c3RlcmluZyxcbiAgaGNhOiBoaWVyYXJjaGljYWxDbHVzdGVyaW5nXG59O1xuXG4vLyBJbXBsZW1lbnRlZCBieSBab2UgWGkgQHpvZXhpIGZvciBHU09DIDIwMTZcbnZhciBkZWZhdWx0cyQ5ID0gZGVmYXVsdHMkZyh7XG4gIGRpc3RhbmNlOiAnZXVjbGlkZWFuJyxcbiAgLy8gZGlzdGFuY2UgbWV0cmljIHRvIGNvbXBhcmUgYXR0cmlidXRlcyBiZXR3ZWVuIHR3byBub2Rlc1xuICBwcmVmZXJlbmNlOiAnbWVkaWFuJyxcbiAgLy8gc3VpdGFiaWxpdHkgb2YgYSBkYXRhIHBvaW50IHRvIHNlcnZlIGFzIGFuIGV4ZW1wbGFyXG4gIGRhbXBpbmc6IDAuOCxcbiAgLy8gZGFtcGluZyBmYWN0b3IgYmV0d2VlbiBbMC41LCAxKVxuICBtYXhJdGVyYXRpb25zOiAxMDAwLFxuICAvLyBtYXggbnVtYmVyIG9mIGl0ZXJhdGlvbnMgdG8gcnVuXG4gIG1pbkl0ZXJhdGlvbnM6IDEwMCxcbiAgLy8gbWluIG51bWJlciBvZiBpdGVyYXRpb25zIHRvIHJ1biBpbiBvcmRlciBmb3IgY2x1c3RlcmluZyB0byBzdG9wXG4gIGF0dHJpYnV0ZXM6IFsvLyBmdW5jdGlvbnMgdG8gcXVhbnRpZnkgdGhlIHNpbWlsYXJpdHkgYmV0d2VlbiBhbnkgdHdvIHBvaW50c1xuICAgIC8vIGUuZy4gbm9kZSA9PiBub2RlLmRhdGEoJ3dlaWdodCcpXG4gIF1cbn0pO1xudmFyIHNldE9wdGlvbnMgPSBmdW5jdGlvbiBzZXRPcHRpb25zKG9wdGlvbnMpIHtcbiAgdmFyIGRtcCA9IG9wdGlvbnMuZGFtcGluZztcbiAgdmFyIHByZWYgPSBvcHRpb25zLnByZWZlcmVuY2U7XG4gIGlmICghKDAuNSA8PSBkbXAgJiYgZG1wIDwgMSkpIHtcbiAgICBlcnJvcihcIkRhbXBpbmcgbXVzdCByYW5nZSBvbiBbMC41LCAxKS4gIEdvdDogXCIuY29uY2F0KGRtcCkpO1xuICB9XG4gIHZhciB2YWxpZFByZWZzID0gWydtZWRpYW4nLCAnbWVhbicsICdtaW4nLCAnbWF4J107XG4gIGlmICghKHZhbGlkUHJlZnMuc29tZShmdW5jdGlvbiAodikge1xuICAgIHJldHVybiB2ID09PSBwcmVmO1xuICB9KSB8fCBudW1iZXIkMShwcmVmKSkpIHtcbiAgICBlcnJvcihcIlByZWZlcmVuY2UgbXVzdCBiZSBvbmUgb2YgW1wiLmNvbmNhdCh2YWxpZFByZWZzLm1hcChmdW5jdGlvbiAocCkge1xuICAgICAgcmV0dXJuIFwiJ1wiLmNvbmNhdChwLCBcIidcIik7XG4gICAgfSkuam9pbignLCAnKSwgXCJdIG9yIGEgbnVtYmVyLiAgR290OiBcIikuY29uY2F0KHByZWYpKTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdHMkOShvcHRpb25zKTtcbn07XG5cbnZhciBnZXRTaW1pbGFyaXR5ID0gZnVuY3Rpb24gZ2V0U2ltaWxhcml0eSh0eXBlLCBuMSwgbjIsIGF0dHJpYnV0ZXMpIHtcbiAgdmFyIGF0dHIgPSBmdW5jdGlvbiBhdHRyKG4sIGkpIHtcbiAgICByZXR1cm4gYXR0cmlidXRlc1tpXShuKTtcbiAgfTtcblxuICAvLyBuYiBuZWdhdGl2ZSBiZWNhdXNlIHNpbWlsYXJpdHkgc2hvdWxkIGhhdmUgYW4gaW52ZXJzZSByZWxhdGlvbnNoaXAgdG8gZGlzdGFuY2VcbiAgcmV0dXJuIC1jbHVzdGVyaW5nRGlzdGFuY2UodHlwZSwgYXR0cmlidXRlcy5sZW5ndGgsIGZ1bmN0aW9uIChpKSB7XG4gICAgcmV0dXJuIGF0dHIobjEsIGkpO1xuICB9LCBmdW5jdGlvbiAoaSkge1xuICAgIHJldHVybiBhdHRyKG4yLCBpKTtcbiAgfSwgbjEsIG4yKTtcbn07XG52YXIgZ2V0UHJlZmVyZW5jZSA9IGZ1bmN0aW9uIGdldFByZWZlcmVuY2UoUywgcHJlZmVyZW5jZSkge1xuICAvLyBsYXJnZXIgcHJlZmVyZW5jZSA9IGdyZWF0ZXIgIyBvZiBjbHVzdGVyc1xuICB2YXIgcCA9IG51bGw7XG4gIGlmIChwcmVmZXJlbmNlID09PSAnbWVkaWFuJykge1xuICAgIHAgPSBtZWRpYW4oUyk7XG4gIH0gZWxzZSBpZiAocHJlZmVyZW5jZSA9PT0gJ21lYW4nKSB7XG4gICAgcCA9IG1lYW4oUyk7XG4gIH0gZWxzZSBpZiAocHJlZmVyZW5jZSA9PT0gJ21pbicpIHtcbiAgICBwID0gbWluKFMpO1xuICB9IGVsc2UgaWYgKHByZWZlcmVuY2UgPT09ICdtYXgnKSB7XG4gICAgcCA9IG1heChTKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBDdXN0b20gcHJlZmVyZW5jZSBudW1iZXIsIGFzIHNldCBieSB1c2VyXG4gICAgcCA9IHByZWZlcmVuY2U7XG4gIH1cbiAgcmV0dXJuIHA7XG59O1xudmFyIGZpbmRFeGVtcGxhcnMgPSBmdW5jdGlvbiBmaW5kRXhlbXBsYXJzKG4sIFIsIEEpIHtcbiAgdmFyIGluZGljZXMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICBpZiAoUltpICogbiArIGldICsgQVtpICogbiArIGldID4gMCkge1xuICAgICAgaW5kaWNlcy5wdXNoKGkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaW5kaWNlcztcbn07XG52YXIgYXNzaWduQ2x1c3RlcnMgPSBmdW5jdGlvbiBhc3NpZ25DbHVzdGVycyhuLCBTLCBleGVtcGxhcnMpIHtcbiAgdmFyIGNsdXN0ZXJzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgdmFyIGluZGV4ID0gLTE7XG4gICAgdmFyIG1heCA9IC1JbmZpbml0eTtcbiAgICBmb3IgKHZhciBlaSA9IDA7IGVpIDwgZXhlbXBsYXJzLmxlbmd0aDsgZWkrKykge1xuICAgICAgdmFyIGUgPSBleGVtcGxhcnNbZWldO1xuICAgICAgaWYgKFNbaSAqIG4gKyBlXSA+IG1heCkge1xuICAgICAgICBpbmRleCA9IGU7XG4gICAgICAgIG1heCA9IFNbaSAqIG4gKyBlXTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgY2x1c3RlcnMucHVzaChpbmRleCk7XG4gICAgfVxuICB9XG4gIGZvciAodmFyIF9laSA9IDA7IF9laSA8IGV4ZW1wbGFycy5sZW5ndGg7IF9laSsrKSB7XG4gICAgY2x1c3RlcnNbZXhlbXBsYXJzW19laV1dID0gZXhlbXBsYXJzW19laV07XG4gIH1cbiAgcmV0dXJuIGNsdXN0ZXJzO1xufTtcbnZhciBhc3NpZ24gPSBmdW5jdGlvbiBhc3NpZ24obiwgUywgZXhlbXBsYXJzKSB7XG4gIHZhciBjbHVzdGVycyA9IGFzc2lnbkNsdXN0ZXJzKG4sIFMsIGV4ZW1wbGFycyk7XG4gIGZvciAodmFyIGVpID0gMDsgZWkgPCBleGVtcGxhcnMubGVuZ3RoOyBlaSsrKSB7XG4gICAgdmFyIGlpID0gW107XG4gICAgZm9yICh2YXIgYyA9IDA7IGMgPCBjbHVzdGVycy5sZW5ndGg7IGMrKykge1xuICAgICAgaWYgKGNsdXN0ZXJzW2NdID09PSBleGVtcGxhcnNbZWldKSB7XG4gICAgICAgIGlpLnB1c2goYyk7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBtYXhJID0gLTE7XG4gICAgdmFyIG1heFN1bSA9IC1JbmZpbml0eTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlpLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc3VtID0gMDtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgaWkubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgc3VtICs9IFNbaWlbal0gKiBuICsgaWlbaV1dO1xuICAgICAgfVxuICAgICAgaWYgKHN1bSA+IG1heFN1bSkge1xuICAgICAgICBtYXhJID0gaTtcbiAgICAgICAgbWF4U3VtID0gc3VtO1xuICAgICAgfVxuICAgIH1cbiAgICBleGVtcGxhcnNbZWldID0gaWlbbWF4SV07XG4gIH1cbiAgY2x1c3RlcnMgPSBhc3NpZ25DbHVzdGVycyhuLCBTLCBleGVtcGxhcnMpO1xuICByZXR1cm4gY2x1c3RlcnM7XG59O1xudmFyIGFmZmluaXR5UHJvcGFnYXRpb24gPSBmdW5jdGlvbiBhZmZpbml0eVByb3BhZ2F0aW9uKG9wdGlvbnMpIHtcbiAgdmFyIGN5ID0gdGhpcy5jeSgpO1xuICB2YXIgbm9kZXMgPSB0aGlzLm5vZGVzKCk7XG4gIHZhciBvcHRzID0gc2V0T3B0aW9ucyhvcHRpb25zKTtcblxuICAvLyBNYXAgZWFjaCBub2RlIHRvIGl0cyBwb3NpdGlvbiBpbiBub2RlIGFycmF5XG4gIHZhciBpZDJwb3NpdGlvbiA9IHt9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWQycG9zaXRpb25bbm9kZXNbaV0uaWQoKV0gPSBpO1xuICB9XG5cbiAgLy8gQmVnaW4gYWZmaW5pdHkgcHJvcGFnYXRpb24gYWxnb3JpdGhtXG5cbiAgdmFyIG47IC8vIG51bWJlciBvZiBkYXRhIHBvaW50c1xuICB2YXIgbjI7IC8vIHNpemUgb2YgbWF0cmljZXNcbiAgdmFyIFM7IC8vIHNpbWlsYXJpdHkgbWF0cml4ICgxRCBhcnJheSlcbiAgdmFyIHA7IC8vIHByZWZlcmVuY2Uvc3VpdGFiaWxpdHkgb2YgYSBkYXRhIHBvaW50IHRvIHNlcnZlIGFzIGFuIGV4ZW1wbGFyXG4gIHZhciBSOyAvLyByZXNwb25zaWJpbGl0eSBtYXRyaXggKDFEIGFycmF5KVxuICB2YXIgQTsgLy8gYXZhaWxhYmlsaXR5IG1hdHJpeCAoMUQgYXJyYXkpXG5cbiAgbiA9IG5vZGVzLmxlbmd0aDtcbiAgbjIgPSBuICogbjtcblxuICAvLyBJbml0aWFsaXplIGFuZCBidWlsZCBTIHNpbWlsYXJpdHkgbWF0cml4XG4gIFMgPSBuZXcgQXJyYXkobjIpO1xuICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbjI7IF9pKyspIHtcbiAgICBTW19pXSA9IC1JbmZpbml0eTsgLy8gZm9yIGNhc2VzIHdoZXJlIHR3byBkYXRhIHBvaW50cyBzaG91bGRuJ3QgYmUgbGlua2VkIHRvZ2V0aGVyXG4gIH1cblxuICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgPCBuOyBfaTIrKykge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgbjsgaisrKSB7XG4gICAgICBpZiAoX2kyICE9PSBqKSB7XG4gICAgICAgIFNbX2kyICogbiArIGpdID0gZ2V0U2ltaWxhcml0eShvcHRzLmRpc3RhbmNlLCBub2Rlc1tfaTJdLCBub2Rlc1tqXSwgb3B0cy5hdHRyaWJ1dGVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQbGFjZSBwcmVmZXJlbmNlcyBvbiB0aGUgZGlhZ29uYWwgb2YgU1xuICBwID0gZ2V0UHJlZmVyZW5jZShTLCBvcHRzLnByZWZlcmVuY2UpO1xuICBmb3IgKHZhciBfaTMgPSAwOyBfaTMgPCBuOyBfaTMrKykge1xuICAgIFNbX2kzICogbiArIF9pM10gPSBwO1xuICB9XG5cbiAgLy8gSW5pdGlhbGl6ZSBSIHJlc3BvbnNpYmlsaXR5IG1hdHJpeFxuICBSID0gbmV3IEFycmF5KG4yKTtcbiAgZm9yICh2YXIgX2k0ID0gMDsgX2k0IDwgbjI7IF9pNCsrKSB7XG4gICAgUltfaTRdID0gMC4wO1xuICB9XG5cbiAgLy8gSW5pdGlhbGl6ZSBBIGF2YWlsYWJpbGl0eSBtYXRyaXhcbiAgQSA9IG5ldyBBcnJheShuMik7XG4gIGZvciAodmFyIF9pNSA9IDA7IF9pNSA8IG4yOyBfaTUrKykge1xuICAgIEFbX2k1XSA9IDAuMDtcbiAgfVxuICB2YXIgb2xkID0gbmV3IEFycmF5KG4pO1xuICB2YXIgUnAgPSBuZXcgQXJyYXkobik7XG4gIHZhciBzZSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgX2k2ID0gMDsgX2k2IDwgbjsgX2k2KyspIHtcbiAgICBvbGRbX2k2XSA9IDAuMDtcbiAgICBScFtfaTZdID0gMC4wO1xuICAgIHNlW19pNl0gPSAwO1xuICB9XG4gIHZhciBlID0gbmV3IEFycmF5KG4gKiBvcHRzLm1pbkl0ZXJhdGlvbnMpO1xuICBmb3IgKHZhciBfaTcgPSAwOyBfaTcgPCBlLmxlbmd0aDsgX2k3KyspIHtcbiAgICBlW19pN10gPSAwO1xuICB9XG4gIHZhciBpdGVyO1xuICBmb3IgKGl0ZXIgPSAwOyBpdGVyIDwgb3B0cy5tYXhJdGVyYXRpb25zOyBpdGVyKyspIHtcbiAgICAvLyBtYWluIGFsZ29yaXRobWljIGxvb3BcblxuICAgIC8vIFVwZGF0ZSBSIHJlc3BvbnNpYmlsaXR5IG1hdHJpeFxuICAgIGZvciAodmFyIF9pOCA9IDA7IF9pOCA8IG47IF9pOCsrKSB7XG4gICAgICB2YXIgbWF4ID0gLUluZmluaXR5LFxuICAgICAgICBtYXgyID0gLUluZmluaXR5LFxuICAgICAgICBtYXhJID0gLTEsXG4gICAgICAgIEFTID0gMC4wO1xuICAgICAgZm9yICh2YXIgX2ogPSAwOyBfaiA8IG47IF9qKyspIHtcbiAgICAgICAgb2xkW19qXSA9IFJbX2k4ICogbiArIF9qXTtcbiAgICAgICAgQVMgPSBBW19pOCAqIG4gKyBfal0gKyBTW19pOCAqIG4gKyBfal07XG4gICAgICAgIGlmIChBUyA+PSBtYXgpIHtcbiAgICAgICAgICBtYXgyID0gbWF4O1xuICAgICAgICAgIG1heCA9IEFTO1xuICAgICAgICAgIG1heEkgPSBfajtcbiAgICAgICAgfSBlbHNlIGlmIChBUyA+IG1heDIpIHtcbiAgICAgICAgICBtYXgyID0gQVM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAodmFyIF9qMiA9IDA7IF9qMiA8IG47IF9qMisrKSB7XG4gICAgICAgIFJbX2k4ICogbiArIF9qMl0gPSAoMSAtIG9wdHMuZGFtcGluZykgKiAoU1tfaTggKiBuICsgX2oyXSAtIG1heCkgKyBvcHRzLmRhbXBpbmcgKiBvbGRbX2oyXTtcbiAgICAgIH1cbiAgICAgIFJbX2k4ICogbiArIG1heEldID0gKDEgLSBvcHRzLmRhbXBpbmcpICogKFNbX2k4ICogbiArIG1heEldIC0gbWF4MikgKyBvcHRzLmRhbXBpbmcgKiBvbGRbbWF4SV07XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIEEgYXZhaWxhYmlsaXR5IG1hdHJpeFxuICAgIGZvciAodmFyIF9pOSA9IDA7IF9pOSA8IG47IF9pOSsrKSB7XG4gICAgICB2YXIgc3VtID0gMDtcbiAgICAgIGZvciAodmFyIF9qMyA9IDA7IF9qMyA8IG47IF9qMysrKSB7XG4gICAgICAgIG9sZFtfajNdID0gQVtfajMgKiBuICsgX2k5XTtcbiAgICAgICAgUnBbX2ozXSA9IE1hdGgubWF4KDAsIFJbX2ozICogbiArIF9pOV0pO1xuICAgICAgICBzdW0gKz0gUnBbX2ozXTtcbiAgICAgIH1cbiAgICAgIHN1bSAtPSBScFtfaTldO1xuICAgICAgUnBbX2k5XSA9IFJbX2k5ICogbiArIF9pOV07XG4gICAgICBzdW0gKz0gUnBbX2k5XTtcbiAgICAgIGZvciAodmFyIF9qNCA9IDA7IF9qNCA8IG47IF9qNCsrKSB7XG4gICAgICAgIEFbX2o0ICogbiArIF9pOV0gPSAoMSAtIG9wdHMuZGFtcGluZykgKiBNYXRoLm1pbigwLCBzdW0gLSBScFtfajRdKSArIG9wdHMuZGFtcGluZyAqIG9sZFtfajRdO1xuICAgICAgfVxuICAgICAgQVtfaTkgKiBuICsgX2k5XSA9ICgxIC0gb3B0cy5kYW1waW5nKSAqIChzdW0gLSBScFtfaTldKSArIG9wdHMuZGFtcGluZyAqIG9sZFtfaTldO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBjb252ZXJnZW5jZVxuICAgIHZhciBLID0gMDtcbiAgICBmb3IgKHZhciBfaTEwID0gMDsgX2kxMCA8IG47IF9pMTArKykge1xuICAgICAgdmFyIEUgPSBBW19pMTAgKiBuICsgX2kxMF0gKyBSW19pMTAgKiBuICsgX2kxMF0gPiAwID8gMSA6IDA7XG4gICAgICBlW2l0ZXIgJSBvcHRzLm1pbkl0ZXJhdGlvbnMgKiBuICsgX2kxMF0gPSBFO1xuICAgICAgSyArPSBFO1xuICAgIH1cbiAgICBpZiAoSyA+IDAgJiYgKGl0ZXIgPj0gb3B0cy5taW5JdGVyYXRpb25zIC0gMSB8fCBpdGVyID09IG9wdHMubWF4SXRlcmF0aW9ucyAtIDEpKSB7XG4gICAgICB2YXIgX3N1bSA9IDA7XG4gICAgICBmb3IgKHZhciBfaTExID0gMDsgX2kxMSA8IG47IF9pMTErKykge1xuICAgICAgICBzZVtfaTExXSA9IDA7XG4gICAgICAgIGZvciAodmFyIF9qNSA9IDA7IF9qNSA8IG9wdHMubWluSXRlcmF0aW9uczsgX2o1KyspIHtcbiAgICAgICAgICBzZVtfaTExXSArPSBlW19qNSAqIG4gKyBfaTExXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VbX2kxMV0gPT09IDAgfHwgc2VbX2kxMV0gPT09IG9wdHMubWluSXRlcmF0aW9ucykge1xuICAgICAgICAgIF9zdW0rKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKF9zdW0gPT09IG4pIHtcbiAgICAgICAgLy8gdGhlbiB3ZSBoYXZlIGNvbnZlcmdlbmNlXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElkZW50aWZ5IGV4ZW1wbGFycyAoY2x1c3RlciBjZW50ZXJzKVxuICB2YXIgZXhlbXBsYXJzSW5kaWNlcyA9IGZpbmRFeGVtcGxhcnMobiwgUiwgQSk7XG5cbiAgLy8gQXNzaWduIG5vZGVzIHRvIGNsdXN0ZXJzXG4gIHZhciBjbHVzdGVySW5kaWNlcyA9IGFzc2lnbihuLCBTLCBleGVtcGxhcnNJbmRpY2VzKTtcbiAgdmFyIGNsdXN0ZXJzID0ge307XG4gIGZvciAodmFyIGMgPSAwOyBjIDwgZXhlbXBsYXJzSW5kaWNlcy5sZW5ndGg7IGMrKykge1xuICAgIGNsdXN0ZXJzW2V4ZW1wbGFyc0luZGljZXNbY11dID0gW107XG4gIH1cbiAgZm9yICh2YXIgX2kxMiA9IDA7IF9pMTIgPCBub2Rlcy5sZW5ndGg7IF9pMTIrKykge1xuICAgIHZhciBwb3MgPSBpZDJwb3NpdGlvbltub2Rlc1tfaTEyXS5pZCgpXTtcbiAgICB2YXIgY2x1c3RlckluZGV4ID0gY2x1c3RlckluZGljZXNbcG9zXTtcbiAgICBpZiAoY2x1c3RlckluZGV4ICE9IG51bGwpIHtcbiAgICAgIC8vIHRoZSBub2RlIG1heSBoYXZlIG5vdCBiZWVuIGFzc2lnbmVkIGEgY2x1c3RlciBpZiBubyB2YWxpZCBhdHRyaWJ1dGVzIHdlcmUgc3BlY2lmaWVkXG4gICAgICBjbHVzdGVyc1tjbHVzdGVySW5kZXhdLnB1c2gobm9kZXNbX2kxMl0pO1xuICAgIH1cbiAgfVxuICB2YXIgcmV0Q2x1c3RlcnMgPSBuZXcgQXJyYXkoZXhlbXBsYXJzSW5kaWNlcy5sZW5ndGgpO1xuICBmb3IgKHZhciBfYyA9IDA7IF9jIDwgZXhlbXBsYXJzSW5kaWNlcy5sZW5ndGg7IF9jKyspIHtcbiAgICByZXRDbHVzdGVyc1tfY10gPSBjeS5jb2xsZWN0aW9uKGNsdXN0ZXJzW2V4ZW1wbGFyc0luZGljZXNbX2NdXSk7XG4gIH1cbiAgcmV0dXJuIHJldENsdXN0ZXJzO1xufTtcbnZhciBhZmZpbml0eVByb3BhZ2F0aW9uJDEgPSB7XG4gIGFmZmluaXR5UHJvcGFnYXRpb246IGFmZmluaXR5UHJvcGFnYXRpb24sXG4gIGFwOiBhZmZpbml0eVByb3BhZ2F0aW9uXG59O1xuXG52YXIgaGllcmhvbHplckRlZmF1bHRzID0gZGVmYXVsdHMkZyh7XG4gIHJvb3Q6IHVuZGVmaW5lZCxcbiAgZGlyZWN0ZWQ6IGZhbHNlXG59KTtcbnZhciBlbGVzZm4kayA9IHtcbiAgaGllcmhvbHplcjogZnVuY3Rpb24gaGllcmhvbHplcihvcHRpb25zKSB7XG4gICAgaWYgKCFwbGFpbk9iamVjdChvcHRpb25zKSkge1xuICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICBvcHRpb25zID0ge1xuICAgICAgICByb290OiBhcmdzWzBdLFxuICAgICAgICBkaXJlY3RlZDogYXJnc1sxXVxuICAgICAgfTtcbiAgICB9XG4gICAgdmFyIF9oaWVyaG9semVyRGVmYXVsdHMgPSBoaWVyaG9semVyRGVmYXVsdHMob3B0aW9ucyksXG4gICAgICByb290ID0gX2hpZXJob2x6ZXJEZWZhdWx0cy5yb290LFxuICAgICAgZGlyZWN0ZWQgPSBfaGllcmhvbHplckRlZmF1bHRzLmRpcmVjdGVkO1xuICAgIHZhciBlbGVzID0gdGhpcztcbiAgICB2YXIgZGZsYWcgPSBmYWxzZTtcbiAgICB2YXIgb2RkSW47XG4gICAgdmFyIG9kZE91dDtcbiAgICB2YXIgc3RhcnRWZXJ0ZXg7XG4gICAgaWYgKHJvb3QpIHN0YXJ0VmVydGV4ID0gc3RyaW5nKHJvb3QpID8gdGhpcy5maWx0ZXIocm9vdClbMF0uaWQoKSA6IHJvb3RbMF0uaWQoKTtcbiAgICB2YXIgbm9kZXMgPSB7fTtcbiAgICB2YXIgZWRnZXMgPSB7fTtcbiAgICBpZiAoZGlyZWN0ZWQpIHtcbiAgICAgIGVsZXMuZm9yRWFjaChmdW5jdGlvbiAoZWxlKSB7XG4gICAgICAgIHZhciBpZCA9IGVsZS5pZCgpO1xuICAgICAgICBpZiAoZWxlLmlzTm9kZSgpKSB7XG4gICAgICAgICAgdmFyIGluZCA9IGVsZS5pbmRlZ3JlZSh0cnVlKTtcbiAgICAgICAgICB2YXIgb3V0ZCA9IGVsZS5vdXRkZWdyZWUodHJ1ZSk7XG4gICAgICAgICAgdmFyIGQxID0gaW5kIC0gb3V0ZDtcbiAgICAgICAgICB2YXIgZDIgPSBvdXRkIC0gaW5kO1xuICAgICAgICAgIGlmIChkMSA9PSAxKSB7XG4gICAgICAgICAgICBpZiAob2RkSW4pIGRmbGFnID0gdHJ1ZTtlbHNlIG9kZEluID0gaWQ7XG4gICAgICAgICAgfSBlbHNlIGlmIChkMiA9PSAxKSB7XG4gICAgICAgICAgICBpZiAob2RkT3V0KSBkZmxhZyA9IHRydWU7ZWxzZSBvZGRPdXQgPSBpZDtcbiAgICAgICAgICB9IGVsc2UgaWYgKGQyID4gMSB8fCBkMSA+IDEpIHtcbiAgICAgICAgICAgIGRmbGFnID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbm9kZXNbaWRdID0gW107XG4gICAgICAgICAgZWxlLm91dGdvZXJzKCkuZm9yRWFjaChmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgaWYgKGUuaXNFZGdlKCkpIG5vZGVzW2lkXS5wdXNoKGUuaWQoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZWRnZXNbaWRdID0gW3VuZGVmaW5lZCwgZWxlLnRhcmdldCgpLmlkKCldO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgICAgdmFyIGlkID0gZWxlLmlkKCk7XG4gICAgICAgIGlmIChlbGUuaXNOb2RlKCkpIHtcbiAgICAgICAgICB2YXIgZCA9IGVsZS5kZWdyZWUodHJ1ZSk7XG4gICAgICAgICAgaWYgKGQgJSAyKSB7XG4gICAgICAgICAgICBpZiAoIW9kZEluKSBvZGRJbiA9IGlkO2Vsc2UgaWYgKCFvZGRPdXQpIG9kZE91dCA9IGlkO2Vsc2UgZGZsYWcgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBub2Rlc1tpZF0gPSBbXTtcbiAgICAgICAgICBlbGUuY29ubmVjdGVkRWRnZXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZXNbaWRdLnB1c2goZS5pZCgpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlZGdlc1tpZF0gPSBbZWxlLnNvdXJjZSgpLmlkKCksIGVsZS50YXJnZXQoKS5pZCgpXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSB7XG4gICAgICBmb3VuZDogZmFsc2UsXG4gICAgICB0cmFpbDogdW5kZWZpbmVkXG4gICAgfTtcbiAgICBpZiAoZGZsYWcpIHJldHVybiByZXN1bHQ7ZWxzZSBpZiAob2RkT3V0ICYmIG9kZEluKSB7XG4gICAgICBpZiAoZGlyZWN0ZWQpIHtcbiAgICAgICAgaWYgKHN0YXJ0VmVydGV4ICYmIG9kZE91dCAhPSBzdGFydFZlcnRleCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgc3RhcnRWZXJ0ZXggPSBvZGRPdXQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhcnRWZXJ0ZXggJiYgb2RkT3V0ICE9IHN0YXJ0VmVydGV4ICYmIG9kZEluICE9IHN0YXJ0VmVydGV4KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIGlmICghc3RhcnRWZXJ0ZXgpIHtcbiAgICAgICAgICBzdGFydFZlcnRleCA9IG9kZE91dDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXN0YXJ0VmVydGV4KSBzdGFydFZlcnRleCA9IGVsZXNbMF0uaWQoKTtcbiAgICB9XG4gICAgdmFyIHdhbGsgPSBmdW5jdGlvbiB3YWxrKHYpIHtcbiAgICAgIHZhciBjdXJyZW50Tm9kZSA9IHY7XG4gICAgICB2YXIgc3VidG91ciA9IFt2XTtcbiAgICAgIHZhciBhZGosIGFkalRhaWwsIGFkakhlYWQ7XG4gICAgICB3aGlsZSAobm9kZXNbY3VycmVudE5vZGVdLmxlbmd0aCkge1xuICAgICAgICBhZGogPSBub2Rlc1tjdXJyZW50Tm9kZV0uc2hpZnQoKTtcbiAgICAgICAgYWRqVGFpbCA9IGVkZ2VzW2Fkal1bMF07XG4gICAgICAgIGFkakhlYWQgPSBlZGdlc1thZGpdWzFdO1xuICAgICAgICBpZiAoY3VycmVudE5vZGUgIT0gYWRqSGVhZCkge1xuICAgICAgICAgIG5vZGVzW2FkakhlYWRdID0gbm9kZXNbYWRqSGVhZF0uZmlsdGVyKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gZSAhPSBhZGo7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY3VycmVudE5vZGUgPSBhZGpIZWFkO1xuICAgICAgICB9IGVsc2UgaWYgKCFkaXJlY3RlZCAmJiBjdXJyZW50Tm9kZSAhPSBhZGpUYWlsKSB7XG4gICAgICAgICAgbm9kZXNbYWRqVGFpbF0gPSBub2Rlc1thZGpUYWlsXS5maWx0ZXIoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBlICE9IGFkajtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjdXJyZW50Tm9kZSA9IGFkalRhaWw7XG4gICAgICAgIH1cbiAgICAgICAgc3VidG91ci51bnNoaWZ0KGFkaik7XG4gICAgICAgIHN1YnRvdXIudW5zaGlmdChjdXJyZW50Tm9kZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3VidG91cjtcbiAgICB9O1xuICAgIHZhciB0cmFpbCA9IFtdO1xuICAgIHZhciBzdWJ0b3VyID0gW107XG4gICAgc3VidG91ciA9IHdhbGsoc3RhcnRWZXJ0ZXgpO1xuICAgIHdoaWxlIChzdWJ0b3VyLmxlbmd0aCAhPSAxKSB7XG4gICAgICBpZiAobm9kZXNbc3VidG91clswXV0ubGVuZ3RoID09IDApIHtcbiAgICAgICAgdHJhaWwudW5zaGlmdChlbGVzLmdldEVsZW1lbnRCeUlkKHN1YnRvdXIuc2hpZnQoKSkpO1xuICAgICAgICB0cmFpbC51bnNoaWZ0KGVsZXMuZ2V0RWxlbWVudEJ5SWQoc3VidG91ci5zaGlmdCgpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdWJ0b3VyID0gd2FsayhzdWJ0b3VyLnNoaWZ0KCkpLmNvbmNhdChzdWJ0b3VyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdHJhaWwudW5zaGlmdChlbGVzLmdldEVsZW1lbnRCeUlkKHN1YnRvdXIuc2hpZnQoKSkpOyAvLyBmaW5hbCBub2RlXG5cbiAgICBmb3IgKHZhciBkIGluIG5vZGVzKSB7XG4gICAgICBpZiAobm9kZXNbZF0ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc3VsdC5mb3VuZCA9IHRydWU7XG4gICAgcmVzdWx0LnRyYWlsID0gdGhpcy5zcGF3bih0cmFpbCwgdHJ1ZSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufTtcblxudmFyIGhvcGNyb2Z0VGFyamFuQmljb25uZWN0ZWQgPSBmdW5jdGlvbiBob3Bjcm9mdFRhcmphbkJpY29ubmVjdGVkKCkge1xuICB2YXIgZWxlcyA9IHRoaXM7XG4gIHZhciBub2RlcyA9IHt9O1xuICB2YXIgaWQgPSAwO1xuICB2YXIgZWRnZUNvdW50ID0gMDtcbiAgdmFyIGNvbXBvbmVudHMgPSBbXTtcbiAgdmFyIHN0YWNrID0gW107XG4gIHZhciB2aXNpdGVkRWRnZXMgPSB7fTtcbiAgdmFyIGJ1aWxkQ29tcG9uZW50ID0gZnVuY3Rpb24gYnVpbGRDb21wb25lbnQoeCwgeSkge1xuICAgIHZhciBpID0gc3RhY2subGVuZ3RoIC0gMTtcbiAgICB2YXIgY3V0c2V0ID0gW107XG4gICAgdmFyIGNvbXBvbmVudCA9IGVsZXMuc3Bhd24oKTtcbiAgICB3aGlsZSAoc3RhY2tbaV0ueCAhPSB4IHx8IHN0YWNrW2ldLnkgIT0geSkge1xuICAgICAgY3V0c2V0LnB1c2goc3RhY2sucG9wKCkuZWRnZSk7XG4gICAgICBpLS07XG4gICAgfVxuICAgIGN1dHNldC5wdXNoKHN0YWNrLnBvcCgpLmVkZ2UpO1xuICAgIGN1dHNldC5mb3JFYWNoKGZ1bmN0aW9uIChlZGdlKSB7XG4gICAgICB2YXIgY29ubmVjdGVkTm9kZXMgPSBlZGdlLmNvbm5lY3RlZE5vZGVzKCkuaW50ZXJzZWN0aW9uKGVsZXMpO1xuICAgICAgY29tcG9uZW50Lm1lcmdlKGVkZ2UpO1xuICAgICAgY29ubmVjdGVkTm9kZXMuZm9yRWFjaChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICB2YXIgbm9kZUlkID0gbm9kZS5pZCgpO1xuICAgICAgICB2YXIgY29ubmVjdGVkRWRnZXMgPSBub2RlLmNvbm5lY3RlZEVkZ2VzKCkuaW50ZXJzZWN0aW9uKGVsZXMpO1xuICAgICAgICBjb21wb25lbnQubWVyZ2Uobm9kZSk7XG4gICAgICAgIGlmICghbm9kZXNbbm9kZUlkXS5jdXRWZXJ0ZXgpIHtcbiAgICAgICAgICBjb21wb25lbnQubWVyZ2UoY29ubmVjdGVkRWRnZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbXBvbmVudC5tZXJnZShjb25uZWN0ZWRFZGdlcy5maWx0ZXIoZnVuY3Rpb24gKGVkZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiBlZGdlLmlzTG9vcCgpO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29tcG9uZW50cy5wdXNoKGNvbXBvbmVudCk7XG4gIH07XG4gIHZhciBiaWNvbm5lY3RlZFNlYXJjaCA9IGZ1bmN0aW9uIGJpY29ubmVjdGVkU2VhcmNoKHJvb3QsIGN1cnJlbnROb2RlLCBwYXJlbnQpIHtcbiAgICBpZiAocm9vdCA9PT0gcGFyZW50KSBlZGdlQ291bnQgKz0gMTtcbiAgICBub2Rlc1tjdXJyZW50Tm9kZV0gPSB7XG4gICAgICBpZDogaWQsXG4gICAgICBsb3c6IGlkKyssXG4gICAgICBjdXRWZXJ0ZXg6IGZhbHNlXG4gICAgfTtcbiAgICB2YXIgZWRnZXMgPSBlbGVzLmdldEVsZW1lbnRCeUlkKGN1cnJlbnROb2RlKS5jb25uZWN0ZWRFZGdlcygpLmludGVyc2VjdGlvbihlbGVzKTtcbiAgICBpZiAoZWRnZXMuc2l6ZSgpID09PSAwKSB7XG4gICAgICBjb21wb25lbnRzLnB1c2goZWxlcy5zcGF3bihlbGVzLmdldEVsZW1lbnRCeUlkKGN1cnJlbnROb2RlKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgc291cmNlSWQsIHRhcmdldElkLCBvdGhlck5vZGVJZCwgZWRnZUlkO1xuICAgICAgZWRnZXMuZm9yRWFjaChmdW5jdGlvbiAoZWRnZSkge1xuICAgICAgICBzb3VyY2VJZCA9IGVkZ2Uuc291cmNlKCkuaWQoKTtcbiAgICAgICAgdGFyZ2V0SWQgPSBlZGdlLnRhcmdldCgpLmlkKCk7XG4gICAgICAgIG90aGVyTm9kZUlkID0gc291cmNlSWQgPT09IGN1cnJlbnROb2RlID8gdGFyZ2V0SWQgOiBzb3VyY2VJZDtcbiAgICAgICAgaWYgKG90aGVyTm9kZUlkICE9PSBwYXJlbnQpIHtcbiAgICAgICAgICBlZGdlSWQgPSBlZGdlLmlkKCk7XG4gICAgICAgICAgaWYgKCF2aXNpdGVkRWRnZXNbZWRnZUlkXSkge1xuICAgICAgICAgICAgdmlzaXRlZEVkZ2VzW2VkZ2VJZF0gPSB0cnVlO1xuICAgICAgICAgICAgc3RhY2sucHVzaCh7XG4gICAgICAgICAgICAgIHg6IGN1cnJlbnROb2RlLFxuICAgICAgICAgICAgICB5OiBvdGhlck5vZGVJZCxcbiAgICAgICAgICAgICAgZWRnZTogZWRnZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghKG90aGVyTm9kZUlkIGluIG5vZGVzKSkge1xuICAgICAgICAgICAgYmljb25uZWN0ZWRTZWFyY2gocm9vdCwgb3RoZXJOb2RlSWQsIGN1cnJlbnROb2RlKTtcbiAgICAgICAgICAgIG5vZGVzW2N1cnJlbnROb2RlXS5sb3cgPSBNYXRoLm1pbihub2Rlc1tjdXJyZW50Tm9kZV0ubG93LCBub2Rlc1tvdGhlck5vZGVJZF0ubG93KTtcbiAgICAgICAgICAgIGlmIChub2Rlc1tjdXJyZW50Tm9kZV0uaWQgPD0gbm9kZXNbb3RoZXJOb2RlSWRdLmxvdykge1xuICAgICAgICAgICAgICBub2Rlc1tjdXJyZW50Tm9kZV0uY3V0VmVydGV4ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnVpbGRDb21wb25lbnQoY3VycmVudE5vZGUsIG90aGVyTm9kZUlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZXNbY3VycmVudE5vZGVdLmxvdyA9IE1hdGgubWluKG5vZGVzW2N1cnJlbnROb2RlXS5sb3csIG5vZGVzW290aGVyTm9kZUlkXS5pZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG4gIGVsZXMuZm9yRWFjaChmdW5jdGlvbiAoZWxlKSB7XG4gICAgaWYgKGVsZS5pc05vZGUoKSkge1xuICAgICAgdmFyIG5vZGVJZCA9IGVsZS5pZCgpO1xuICAgICAgaWYgKCEobm9kZUlkIGluIG5vZGVzKSkge1xuICAgICAgICBlZGdlQ291bnQgPSAwO1xuICAgICAgICBiaWNvbm5lY3RlZFNlYXJjaChub2RlSWQsIG5vZGVJZCk7XG4gICAgICAgIG5vZGVzW25vZGVJZF0uY3V0VmVydGV4ID0gZWRnZUNvdW50ID4gMTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICB2YXIgY3V0VmVydGljZXMgPSBPYmplY3Qua2V5cyhub2RlcykuZmlsdGVyKGZ1bmN0aW9uIChpZCkge1xuICAgIHJldHVybiBub2Rlc1tpZF0uY3V0VmVydGV4O1xuICB9KS5tYXAoZnVuY3Rpb24gKGlkKSB7XG4gICAgcmV0dXJuIGVsZXMuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBjdXQ6IGVsZXMuc3Bhd24oY3V0VmVydGljZXMpLFxuICAgIGNvbXBvbmVudHM6IGNvbXBvbmVudHNcbiAgfTtcbn07XG52YXIgaG9wY3JvZnRUYXJqYW5CaWNvbm5lY3RlZCQxID0ge1xuICBob3Bjcm9mdFRhcmphbkJpY29ubmVjdGVkOiBob3Bjcm9mdFRhcmphbkJpY29ubmVjdGVkLFxuICBodGJjOiBob3Bjcm9mdFRhcmphbkJpY29ubmVjdGVkLFxuICBodGI6IGhvcGNyb2Z0VGFyamFuQmljb25uZWN0ZWQsXG4gIGhvcGNyb2Z0VGFyamFuQmljb25uZWN0ZWRDb21wb25lbnRzOiBob3Bjcm9mdFRhcmphbkJpY29ubmVjdGVkXG59O1xuXG52YXIgdGFyamFuU3Ryb25nbHlDb25uZWN0ZWQgPSBmdW5jdGlvbiB0YXJqYW5TdHJvbmdseUNvbm5lY3RlZCgpIHtcbiAgdmFyIGVsZXMgPSB0aGlzO1xuICB2YXIgbm9kZXMgPSB7fTtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGNvbXBvbmVudHMgPSBbXTtcbiAgdmFyIHN0YWNrID0gW107XG4gIHZhciBjdXQgPSBlbGVzLnNwYXduKGVsZXMpO1xuICB2YXIgc3Ryb25nbHlDb25uZWN0ZWRTZWFyY2ggPSBmdW5jdGlvbiBzdHJvbmdseUNvbm5lY3RlZFNlYXJjaChzb3VyY2VOb2RlSWQpIHtcbiAgICBzdGFjay5wdXNoKHNvdXJjZU5vZGVJZCk7XG4gICAgbm9kZXNbc291cmNlTm9kZUlkXSA9IHtcbiAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgIGxvdzogaW5kZXgrKyxcbiAgICAgIGV4cGxvcmVkOiBmYWxzZVxuICAgIH07XG4gICAgdmFyIGNvbm5lY3RlZEVkZ2VzID0gZWxlcy5nZXRFbGVtZW50QnlJZChzb3VyY2VOb2RlSWQpLmNvbm5lY3RlZEVkZ2VzKCkuaW50ZXJzZWN0aW9uKGVsZXMpO1xuICAgIGNvbm5lY3RlZEVkZ2VzLmZvckVhY2goZnVuY3Rpb24gKGVkZ2UpIHtcbiAgICAgIHZhciB0YXJnZXROb2RlSWQgPSBlZGdlLnRhcmdldCgpLmlkKCk7XG4gICAgICBpZiAodGFyZ2V0Tm9kZUlkICE9PSBzb3VyY2VOb2RlSWQpIHtcbiAgICAgICAgaWYgKCEodGFyZ2V0Tm9kZUlkIGluIG5vZGVzKSkge1xuICAgICAgICAgIHN0cm9uZ2x5Q29ubmVjdGVkU2VhcmNoKHRhcmdldE5vZGVJZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFub2Rlc1t0YXJnZXROb2RlSWRdLmV4cGxvcmVkKSB7XG4gICAgICAgICAgbm9kZXNbc291cmNlTm9kZUlkXS5sb3cgPSBNYXRoLm1pbihub2Rlc1tzb3VyY2VOb2RlSWRdLmxvdywgbm9kZXNbdGFyZ2V0Tm9kZUlkXS5sb3cpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKG5vZGVzW3NvdXJjZU5vZGVJZF0uaW5kZXggPT09IG5vZGVzW3NvdXJjZU5vZGVJZF0ubG93KSB7XG4gICAgICB2YXIgY29tcG9uZW50Tm9kZXMgPSBlbGVzLnNwYXduKCk7XG4gICAgICBmb3IgKDs7KSB7XG4gICAgICAgIHZhciBub2RlSWQgPSBzdGFjay5wb3AoKTtcbiAgICAgICAgY29tcG9uZW50Tm9kZXMubWVyZ2UoZWxlcy5nZXRFbGVtZW50QnlJZChub2RlSWQpKTtcbiAgICAgICAgbm9kZXNbbm9kZUlkXS5sb3cgPSBub2Rlc1tzb3VyY2VOb2RlSWRdLmluZGV4O1xuICAgICAgICBub2Rlc1tub2RlSWRdLmV4cGxvcmVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKG5vZGVJZCA9PT0gc291cmNlTm9kZUlkKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciBjb21wb25lbnRFZGdlcyA9IGNvbXBvbmVudE5vZGVzLmVkZ2VzV2l0aChjb21wb25lbnROb2Rlcyk7XG4gICAgICB2YXIgY29tcG9uZW50ID0gY29tcG9uZW50Tm9kZXMubWVyZ2UoY29tcG9uZW50RWRnZXMpO1xuICAgICAgY29tcG9uZW50cy5wdXNoKGNvbXBvbmVudCk7XG4gICAgICBjdXQgPSBjdXQuZGlmZmVyZW5jZShjb21wb25lbnQpO1xuICAgIH1cbiAgfTtcbiAgZWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHtcbiAgICBpZiAoZWxlLmlzTm9kZSgpKSB7XG4gICAgICB2YXIgbm9kZUlkID0gZWxlLmlkKCk7XG4gICAgICBpZiAoIShub2RlSWQgaW4gbm9kZXMpKSB7XG4gICAgICAgIHN0cm9uZ2x5Q29ubmVjdGVkU2VhcmNoKG5vZGVJZCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBjdXQ6IGN1dCxcbiAgICBjb21wb25lbnRzOiBjb21wb25lbnRzXG4gIH07XG59O1xudmFyIHRhcmphblN0cm9uZ2x5Q29ubmVjdGVkJDEgPSB7XG4gIHRhcmphblN0cm9uZ2x5Q29ubmVjdGVkOiB0YXJqYW5TdHJvbmdseUNvbm5lY3RlZCxcbiAgdHNjOiB0YXJqYW5TdHJvbmdseUNvbm5lY3RlZCxcbiAgdHNjYzogdGFyamFuU3Ryb25nbHlDb25uZWN0ZWQsXG4gIHRhcmphblN0cm9uZ2x5Q29ubmVjdGVkQ29tcG9uZW50czogdGFyamFuU3Ryb25nbHlDb25uZWN0ZWRcbn07XG5cbnZhciBlbGVzZm4kaiA9IHt9O1xuW2VsZXNmbiR2LCBlbGVzZm4kdSwgZWxlc2ZuJHQsIGVsZXNmbiRzLCBlbGVzZm4kciwgZWxlc2ZuJHEsIGVsZXNmbiRwLCBlbGVzZm4kbywgZWxlc2ZuJG4sIGVsZXNmbiRtLCBlbGVzZm4kbCwgbWFya292Q2x1c3RlcmluZyQxLCBrQ2x1c3RlcmluZywgaGllcmFyY2hpY2FsQ2x1c3RlcmluZyQxLCBhZmZpbml0eVByb3BhZ2F0aW9uJDEsIGVsZXNmbiRrLCBob3Bjcm9mdFRhcmphbkJpY29ubmVjdGVkJDEsIHRhcmphblN0cm9uZ2x5Q29ubmVjdGVkJDFdLmZvckVhY2goZnVuY3Rpb24gKHByb3BzKSB7XG4gIGV4dGVuZChlbGVzZm4kaiwgcHJvcHMpO1xufSk7XG5cbi8qIVxuRW1iZWRkYWJsZSBNaW5pbXVtIFN0cmljdGx5LUNvbXBsaWFudCBQcm9taXNlcy9BKyAxLjEuMSBUaGVuYWJsZVxuQ29weXJpZ2h0IChjKSAyMDEzLTIwMTQgUmFsZiBTLiBFbmdlbHNjaGFsbCAoaHR0cDovL2VuZ2Vsc2NoYWxsLmNvbSlcbkxpY2Vuc2VkIHVuZGVyIFRoZSBNSVQgTGljZW5zZSAoaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVClcbiovXG5cbi8qICBwcm9taXNlIHN0YXRlcyBbUHJvbWlzZXMvQSsgMi4xXSAgKi9cbnZhciBTVEFURV9QRU5ESU5HID0gMDsgLyogIFtQcm9taXNlcy9BKyAyLjEuMV0gICovXG52YXIgU1RBVEVfRlVMRklMTEVEID0gMTsgLyogIFtQcm9taXNlcy9BKyAyLjEuMl0gICovXG52YXIgU1RBVEVfUkVKRUNURUQgPSAyOyAvKiAgW1Byb21pc2VzL0ErIDIuMS4zXSAgKi9cblxuLyogIHByb21pc2Ugb2JqZWN0IGNvbnN0cnVjdG9yICAqL1xudmFyIGFwaSA9IGZ1bmN0aW9uIGFwaShleGVjdXRvcikge1xuICAvKiAgb3B0aW9uYWxseSBzdXBwb3J0IG5vbi1jb25zdHJ1Y3Rvci9wbGFpbi1mdW5jdGlvbiBjYWxsICAqL1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgYXBpKSkgcmV0dXJuIG5ldyBhcGkoZXhlY3V0b3IpO1xuXG4gIC8qICBpbml0aWFsaXplIG9iamVjdCAgKi9cbiAgdGhpcy5pZCA9ICdUaGVuYWJsZS8xLjAuNyc7XG4gIHRoaXMuc3RhdGUgPSBTVEFURV9QRU5ESU5HOyAvKiAgaW5pdGlhbCBzdGF0ZSAgKi9cbiAgdGhpcy5mdWxmaWxsVmFsdWUgPSB1bmRlZmluZWQ7IC8qICBpbml0aWFsIHZhbHVlICAqLyAvKiAgW1Byb21pc2VzL0ErIDEuMywgMi4xLjIuMl0gICovXG4gIHRoaXMucmVqZWN0UmVhc29uID0gdW5kZWZpbmVkOyAvKiAgaW5pdGlhbCByZWFzb24gKi8gLyogIFtQcm9taXNlcy9BKyAxLjUsIDIuMS4zLjJdICAqL1xuICB0aGlzLm9uRnVsZmlsbGVkID0gW107IC8qICBpbml0aWFsIGhhbmRsZXJzICAqL1xuICB0aGlzLm9uUmVqZWN0ZWQgPSBbXTsgLyogIGluaXRpYWwgaGFuZGxlcnMgICovXG5cbiAgLyogIHByb3ZpZGUgb3B0aW9uYWwgaW5mb3JtYXRpb24taGlkaW5nIHByb3h5ICAqL1xuICB0aGlzLnByb3h5ID0ge1xuICAgIHRoZW46IHRoaXMudGhlbi5iaW5kKHRoaXMpXG4gIH07XG5cbiAgLyogIHN1cHBvcnQgb3B0aW9uYWwgZXhlY3V0b3IgZnVuY3Rpb24gICovXG4gIGlmICh0eXBlb2YgZXhlY3V0b3IgPT09ICdmdW5jdGlvbicpIGV4ZWN1dG9yLmNhbGwodGhpcywgdGhpcy5mdWxmaWxsLmJpbmQodGhpcyksIHRoaXMucmVqZWN0LmJpbmQodGhpcykpO1xufTtcblxuLyogIHByb21pc2UgQVBJIG1ldGhvZHMgICovXG5hcGkucHJvdG90eXBlID0ge1xuICAvKiAgcHJvbWlzZSByZXNvbHZpbmcgbWV0aG9kcyAgKi9cbiAgZnVsZmlsbDogZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkge1xuICAgIHJldHVybiBkZWxpdmVyKHRoaXMsIFNUQVRFX0ZVTEZJTExFRCwgJ2Z1bGZpbGxWYWx1ZScsIHZhbHVlKTtcbiAgfSxcbiAgcmVqZWN0OiBmdW5jdGlvbiByZWplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gZGVsaXZlcih0aGlzLCBTVEFURV9SRUpFQ1RFRCwgJ3JlamVjdFJlYXNvbicsIHZhbHVlKTtcbiAgfSxcbiAgLyogIFwiVGhlIHRoZW4gTWV0aG9kXCIgW1Byb21pc2VzL0ErIDEuMSwgMS4yLCAyLjJdICAqL1xuICB0aGVuOiBmdW5jdGlvbiB0aGVuKG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKSB7XG4gICAgdmFyIGN1cnIgPSB0aGlzO1xuICAgIHZhciBuZXh0ID0gbmV3IGFwaSgpOyAvKiAgW1Byb21pc2VzL0ErIDIuMi43XSAgKi9cbiAgICBjdXJyLm9uRnVsZmlsbGVkLnB1c2gocmVzb2x2ZXIob25GdWxmaWxsZWQsIG5leHQsICdmdWxmaWxsJykpOyAvKiAgW1Byb21pc2VzL0ErIDIuMi4yLzIuMi42XSAgKi9cbiAgICBjdXJyLm9uUmVqZWN0ZWQucHVzaChyZXNvbHZlcihvblJlamVjdGVkLCBuZXh0LCAncmVqZWN0JykpOyAvKiAgW1Byb21pc2VzL0ErIDIuMi4zLzIuMi42XSAgKi9cbiAgICBleGVjdXRlKGN1cnIpO1xuICAgIHJldHVybiBuZXh0LnByb3h5OyAvKiAgW1Byb21pc2VzL0ErIDIuMi43LCAzLjNdICAqL1xuICB9XG59O1xuXG4vKiAgZGVsaXZlciBhbiBhY3Rpb24gICovXG52YXIgZGVsaXZlciA9IGZ1bmN0aW9uIGRlbGl2ZXIoY3Vyciwgc3RhdGUsIG5hbWUsIHZhbHVlKSB7XG4gIGlmIChjdXJyLnN0YXRlID09PSBTVEFURV9QRU5ESU5HKSB7XG4gICAgY3Vyci5zdGF0ZSA9IHN0YXRlOyAvKiAgW1Byb21pc2VzL0ErIDIuMS4yLjEsIDIuMS4zLjFdICAqL1xuICAgIGN1cnJbbmFtZV0gPSB2YWx1ZTsgLyogIFtQcm9taXNlcy9BKyAyLjEuMi4yLCAyLjEuMy4yXSAgKi9cbiAgICBleGVjdXRlKGN1cnIpO1xuICB9XG4gIHJldHVybiBjdXJyO1xufTtcblxuLyogIGV4ZWN1dGUgYWxsIGhhbmRsZXJzICAqL1xudmFyIGV4ZWN1dGUgPSBmdW5jdGlvbiBleGVjdXRlKGN1cnIpIHtcbiAgaWYgKGN1cnIuc3RhdGUgPT09IFNUQVRFX0ZVTEZJTExFRCkgZXhlY3V0ZV9oYW5kbGVycyhjdXJyLCAnb25GdWxmaWxsZWQnLCBjdXJyLmZ1bGZpbGxWYWx1ZSk7ZWxzZSBpZiAoY3Vyci5zdGF0ZSA9PT0gU1RBVEVfUkVKRUNURUQpIGV4ZWN1dGVfaGFuZGxlcnMoY3VyciwgJ29uUmVqZWN0ZWQnLCBjdXJyLnJlamVjdFJlYXNvbik7XG59O1xuXG4vKiAgZXhlY3V0ZSBwYXJ0aWN1bGFyIHNldCBvZiBoYW5kbGVycyAgKi9cbnZhciBleGVjdXRlX2hhbmRsZXJzID0gZnVuY3Rpb24gZXhlY3V0ZV9oYW5kbGVycyhjdXJyLCBuYW1lLCB2YWx1ZSkge1xuICAvKiBnbG9iYWwgc2V0SW1tZWRpYXRlOiB0cnVlICovXG4gIC8qIGdsb2JhbCBzZXRUaW1lb3V0OiB0cnVlICovXG5cbiAgLyogIHNob3J0LWNpcmN1aXQgcHJvY2Vzc2luZyAgKi9cbiAgaWYgKGN1cnJbbmFtZV0ubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgLyogIGl0ZXJhdGUgb3ZlciBhbGwgaGFuZGxlcnMsIGV4YWN0bHkgb25jZSAgKi9cbiAgdmFyIGhhbmRsZXJzID0gY3VycltuYW1lXTtcbiAgY3VycltuYW1lXSA9IFtdOyAvKiAgW1Byb21pc2VzL0ErIDIuMi4yLjMsIDIuMi4zLjNdICAqL1xuICB2YXIgZnVuYyA9IGZ1bmN0aW9uIGZ1bmMoKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoYW5kbGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgaGFuZGxlcnNbaV0odmFsdWUpO1xuICAgIH0gLyogIFtQcm9taXNlcy9BKyAyLjIuNV0gICovXG4gIH07XG5cbiAgLyogIGV4ZWN1dGUgcHJvY2VkdXJlIGFzeW5jaHJvbm91c2x5ICAqLyAvKiAgW1Byb21pc2VzL0ErIDIuMi40LCAzLjFdICAqL1xuICBpZiAodHlwZW9mIHNldEltbWVkaWF0ZSA9PT0gJ2Z1bmN0aW9uJykgc2V0SW1tZWRpYXRlKGZ1bmMpO2Vsc2Ugc2V0VGltZW91dChmdW5jLCAwKTtcbn07XG5cbi8qICBnZW5lcmF0ZSBhIHJlc29sdmVyIGZ1bmN0aW9uICAqL1xudmFyIHJlc29sdmVyID0gZnVuY3Rpb24gcmVzb2x2ZXIoY2IsIG5leHQsIG1ldGhvZCkge1xuICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBjYiAhPT0gJ2Z1bmN0aW9uJykgLyogIFtQcm9taXNlcy9BKyAyLjIuMSwgMi4yLjcuMywgMi4yLjcuNF0gICovXG4gICAgICBuZXh0W21ldGhvZF0uY2FsbChuZXh0LCB2YWx1ZSk7IC8qICBbUHJvbWlzZXMvQSsgMi4yLjcuMywgMi4yLjcuNF0gICovZWxzZSB7XG4gICAgICB2YXIgcmVzdWx0O1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmVzdWx0ID0gY2IodmFsdWUpO1xuICAgICAgfSAvKiAgW1Byb21pc2VzL0ErIDIuMi4yLjEsIDIuMi4zLjEsIDIuMi41LCAzLjJdICAqLyBjYXRjaCAoZSkge1xuICAgICAgICBuZXh0LnJlamVjdChlKTsgLyogIFtQcm9taXNlcy9BKyAyLjIuNy4yXSAgKi9cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShuZXh0LCByZXN1bHQpOyAvKiAgW1Byb21pc2VzL0ErIDIuMi43LjFdICAqL1xuICAgIH1cbiAgfTtcbn07XG5cbi8qICBcIlByb21pc2UgUmVzb2x1dGlvbiBQcm9jZWR1cmVcIiAgKi8gLyogIFtQcm9taXNlcy9BKyAyLjNdICAqL1xudmFyIHJlc29sdmUgPSBmdW5jdGlvbiByZXNvbHZlKHByb21pc2UsIHgpIHtcbiAgLyogIHNhbml0eSBjaGVjayBhcmd1bWVudHMgICovIC8qICBbUHJvbWlzZXMvQSsgMi4zLjFdICAqL1xuICBpZiAocHJvbWlzZSA9PT0geCB8fCBwcm9taXNlLnByb3h5ID09PSB4KSB7XG4gICAgcHJvbWlzZS5yZWplY3QobmV3IFR5cGVFcnJvcignY2Fubm90IHJlc29sdmUgcHJvbWlzZSB3aXRoIGl0c2VsZicpKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKiAgc3VyZ2ljYWxseSBjaGVjayBmb3IgYSBcInRoZW5cIiBtZXRob2RcbiAgICAobWFpbmx5IHRvIGp1c3QgY2FsbCB0aGUgXCJnZXR0ZXJcIiBvZiBcInRoZW5cIiBvbmx5IG9uY2UpICAqL1xuICB2YXIgdGhlbjtcbiAgaWYgKF90eXBlb2YoeCkgPT09ICdvYmplY3QnICYmIHggIT09IG51bGwgfHwgdHlwZW9mIHggPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgdGhlbiA9IHgudGhlbjtcbiAgICB9IC8qICBbUHJvbWlzZXMvQSsgMi4zLjMuMSwgMy41XSAgKi8gY2F0Y2ggKGUpIHtcbiAgICAgIHByb21pc2UucmVqZWN0KGUpOyAvKiAgW1Byb21pc2VzL0ErIDIuMy4zLjJdICAqL1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIC8qICBoYW5kbGUgb3duIFRoZW5hYmxlcyAgICBbUHJvbWlzZXMvQSsgMi4zLjJdXG4gICAgYW5kIHNpbWlsYXIgXCJ0aGVuYWJsZXNcIiBbUHJvbWlzZXMvQSsgMi4zLjNdICAqL1xuICBpZiAodHlwZW9mIHRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgcmVzb2x2ZWQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgLyogIGNhbGwgcmV0cmlldmVkIFwidGhlblwiIG1ldGhvZCAqLyAvKiAgW1Byb21pc2VzL0ErIDIuMy4zLjNdICAqL1xuICAgICAgdGhlbi5jYWxsKHgsIC8qICByZXNvbHZlUHJvbWlzZSAgKi8gLyogIFtQcm9taXNlcy9BKyAyLjMuMy4zLjFdICAqL1xuICAgICAgZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgaWYgKHJlc29sdmVkKSByZXR1cm47XG4gICAgICAgIHJlc29sdmVkID0gdHJ1ZTsgLyogIFtQcm9taXNlcy9BKyAyLjMuMy4zLjNdICAqL1xuICAgICAgICBpZiAoeSA9PT0geCkgLyogIFtQcm9taXNlcy9BKyAzLjZdICAqL1xuICAgICAgICAgIHByb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IoJ2NpcmN1bGFyIHRoZW5hYmxlIGNoYWluJykpO2Vsc2UgcmVzb2x2ZShwcm9taXNlLCB5KTtcbiAgICAgIH0sIC8qICByZWplY3RQcm9taXNlICAqLyAvKiAgW1Byb21pc2VzL0ErIDIuMy4zLjMuMl0gICovXG4gICAgICBmdW5jdGlvbiAocikge1xuICAgICAgICBpZiAocmVzb2x2ZWQpIHJldHVybjtcbiAgICAgICAgcmVzb2x2ZWQgPSB0cnVlOyAvKiAgW1Byb21pc2VzL0ErIDIuMy4zLjMuM10gICovXG4gICAgICAgIHByb21pc2UucmVqZWN0KHIpO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCFyZXNvbHZlZCkgLyogIFtQcm9taXNlcy9BKyAyLjMuMy4zLjNdICAqL1xuICAgICAgICBwcm9taXNlLnJlamVjdChlKTsgLyogIFtQcm9taXNlcy9BKyAyLjMuMy4zLjRdICAqL1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qICBoYW5kbGUgb3RoZXIgdmFsdWVzICAqL1xuICBwcm9taXNlLmZ1bGZpbGwoeCk7IC8qICBbUHJvbWlzZXMvQSsgMi4zLjQsIDIuMy4zLjRdICAqL1xufTtcblxuLy8gc28gd2UgYWx3YXlzIGhhdmUgUHJvbWlzZS5hbGwoKVxuYXBpLmFsbCA9IGZ1bmN0aW9uIChwcykge1xuICByZXR1cm4gbmV3IGFwaShmdW5jdGlvbiAocmVzb2x2ZUFsbCwgcmVqZWN0QWxsKSB7XG4gICAgdmFyIHZhbHMgPSBuZXcgQXJyYXkocHMubGVuZ3RoKTtcbiAgICB2YXIgZG9uZUNvdW50ID0gMDtcbiAgICB2YXIgZnVsZmlsbCA9IGZ1bmN0aW9uIGZ1bGZpbGwoaSwgdmFsKSB7XG4gICAgICB2YWxzW2ldID0gdmFsO1xuICAgICAgZG9uZUNvdW50Kys7XG4gICAgICBpZiAoZG9uZUNvdW50ID09PSBwcy5sZW5ndGgpIHtcbiAgICAgICAgcmVzb2x2ZUFsbCh2YWxzKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIChmdW5jdGlvbiAoaSkge1xuICAgICAgICB2YXIgcCA9IHBzW2ldO1xuICAgICAgICB2YXIgaXNQcm9taXNlID0gcCAhPSBudWxsICYmIHAudGhlbiAhPSBudWxsO1xuICAgICAgICBpZiAoaXNQcm9taXNlKSB7XG4gICAgICAgICAgcC50aGVuKGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgICAgICAgIGZ1bGZpbGwoaSwgdmFsKTtcbiAgICAgICAgICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3RBbGwoZXJyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgdmFsID0gcDtcbiAgICAgICAgICBmdWxmaWxsKGksIHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH0pKGkpO1xuICAgIH1cbiAgfSk7XG59O1xuYXBpLnJlc29sdmUgPSBmdW5jdGlvbiAodmFsKSB7XG4gIHJldHVybiBuZXcgYXBpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICByZXNvbHZlKHZhbCk7XG4gIH0pO1xufTtcbmFwaS5yZWplY3QgPSBmdW5jdGlvbiAodmFsKSB7XG4gIHJldHVybiBuZXcgYXBpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICByZWplY3QodmFsKTtcbiAgfSk7XG59O1xudmFyIFByb21pc2UkMSA9IHR5cGVvZiBQcm9taXNlICE9PSAndW5kZWZpbmVkJyA/IFByb21pc2UgOiBhcGk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblxudmFyIEFuaW1hdGlvbiA9IGZ1bmN0aW9uIEFuaW1hdGlvbih0YXJnZXQsIG9wdHMsIG9wdHMyKSB7XG4gIHZhciBpc0NvcmUgPSBjb3JlKHRhcmdldCk7XG4gIHZhciBpc0VsZSA9ICFpc0NvcmU7XG4gIHZhciBfcCA9IHRoaXMuX3ByaXZhdGUgPSBleHRlbmQoe1xuICAgIGR1cmF0aW9uOiAxMDAwXG4gIH0sIG9wdHMsIG9wdHMyKTtcbiAgX3AudGFyZ2V0ID0gdGFyZ2V0O1xuICBfcC5zdHlsZSA9IF9wLnN0eWxlIHx8IF9wLmNzcztcbiAgX3Auc3RhcnRlZCA9IGZhbHNlO1xuICBfcC5wbGF5aW5nID0gZmFsc2U7XG4gIF9wLmhvb2tlZCA9IGZhbHNlO1xuICBfcC5hcHBseWluZyA9IGZhbHNlO1xuICBfcC5wcm9ncmVzcyA9IDA7XG4gIF9wLmNvbXBsZXRlcyA9IFtdO1xuICBfcC5mcmFtZXMgPSBbXTtcbiAgaWYgKF9wLmNvbXBsZXRlICYmIGZuJDYoX3AuY29tcGxldGUpKSB7XG4gICAgX3AuY29tcGxldGVzLnB1c2goX3AuY29tcGxldGUpO1xuICB9XG4gIGlmIChpc0VsZSkge1xuICAgIHZhciBwb3MgPSB0YXJnZXQucG9zaXRpb24oKTtcbiAgICBfcC5zdGFydFBvc2l0aW9uID0gX3Auc3RhcnRQb3NpdGlvbiB8fCB7XG4gICAgICB4OiBwb3MueCxcbiAgICAgIHk6IHBvcy55XG4gICAgfTtcbiAgICBfcC5zdGFydFN0eWxlID0gX3Auc3RhcnRTdHlsZSB8fCB0YXJnZXQuY3koKS5zdHlsZSgpLmdldEFuaW1hdGlvblN0YXJ0U3R5bGUodGFyZ2V0LCBfcC5zdHlsZSk7XG4gIH1cbiAgaWYgKGlzQ29yZSkge1xuICAgIHZhciBwYW4gPSB0YXJnZXQucGFuKCk7XG4gICAgX3Auc3RhcnRQYW4gPSB7XG4gICAgICB4OiBwYW4ueCxcbiAgICAgIHk6IHBhbi55XG4gICAgfTtcbiAgICBfcC5zdGFydFpvb20gPSB0YXJnZXQuem9vbSgpO1xuICB9XG5cbiAgLy8gZm9yIGZ1dHVyZSB0aW1lbGluZS9hbmltYXRpb25zIGltcGxcbiAgdGhpcy5sZW5ndGggPSAxO1xuICB0aGlzWzBdID0gdGhpcztcbn07XG52YXIgYW5pZm4gPSBBbmltYXRpb24ucHJvdG90eXBlO1xuZXh0ZW5kKGFuaWZuLCB7XG4gIGluc3RhbmNlU3RyaW5nOiBmdW5jdGlvbiBpbnN0YW5jZVN0cmluZygpIHtcbiAgICByZXR1cm4gJ2FuaW1hdGlvbic7XG4gIH0sXG4gIGhvb2s6IGZ1bmN0aW9uIGhvb2soKSB7XG4gICAgdmFyIF9wID0gdGhpcy5fcHJpdmF0ZTtcbiAgICBpZiAoIV9wLmhvb2tlZCkge1xuICAgICAgLy8gYWRkIHRvIHRhcmdldCdzIGFuaW1hdGlvbiBxdWV1ZVxuICAgICAgdmFyIHE7XG4gICAgICB2YXIgdEFuaSA9IF9wLnRhcmdldC5fcHJpdmF0ZS5hbmltYXRpb247XG4gICAgICBpZiAoX3AucXVldWUpIHtcbiAgICAgICAgcSA9IHRBbmkucXVldWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxID0gdEFuaS5jdXJyZW50O1xuICAgICAgfVxuICAgICAgcS5wdXNoKHRoaXMpO1xuXG4gICAgICAvLyBhZGQgdG8gdGhlIGFuaW1hdGlvbiBsb29wIHBvb2xcbiAgICAgIGlmIChlbGVtZW50T3JDb2xsZWN0aW9uKF9wLnRhcmdldCkpIHtcbiAgICAgICAgX3AudGFyZ2V0LmN5KCkuYWRkVG9BbmltYXRpb25Qb29sKF9wLnRhcmdldCk7XG4gICAgICB9XG4gICAgICBfcC5ob29rZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgcGxheTogZnVuY3Rpb24gcGxheSgpIHtcbiAgICB2YXIgX3AgPSB0aGlzLl9wcml2YXRlO1xuXG4gICAgLy8gYXV0b3Jld2luZFxuICAgIGlmIChfcC5wcm9ncmVzcyA9PT0gMSkge1xuICAgICAgX3AucHJvZ3Jlc3MgPSAwO1xuICAgIH1cbiAgICBfcC5wbGF5aW5nID0gdHJ1ZTtcbiAgICBfcC5zdGFydGVkID0gZmFsc2U7IC8vIG5lZWRzIHRvIGJlIHN0YXJ0ZWQgYnkgYW5pbWF0aW9uIGxvb3BcbiAgICBfcC5zdG9wcGVkID0gZmFsc2U7XG4gICAgdGhpcy5ob29rKCk7XG5cbiAgICAvLyB0aGUgYW5pbWF0aW9uIGxvb3Agd2lsbCBzdGFydCB0aGUgYW5pbWF0aW9uLi4uXG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgcGxheWluZzogZnVuY3Rpb24gcGxheWluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5wbGF5aW5nO1xuICB9LFxuICBhcHBseTogZnVuY3Rpb24gYXBwbHkoKSB7XG4gICAgdmFyIF9wID0gdGhpcy5fcHJpdmF0ZTtcbiAgICBfcC5hcHBseWluZyA9IHRydWU7XG4gICAgX3Auc3RhcnRlZCA9IGZhbHNlOyAvLyBuZWVkcyB0byBiZSBzdGFydGVkIGJ5IGFuaW1hdGlvbiBsb29wXG4gICAgX3Auc3RvcHBlZCA9IGZhbHNlO1xuICAgIHRoaXMuaG9vaygpO1xuXG4gICAgLy8gdGhlIGFuaW1hdGlvbiBsb29wIHdpbGwgYXBwbHkgdGhlIGFuaW1hdGlvbiBhdCB0aGlzIHByb2dyZXNzXG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgYXBwbHlpbmc6IGZ1bmN0aW9uIGFwcGx5aW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlLmFwcGx5aW5nO1xuICB9LFxuICBwYXVzZTogZnVuY3Rpb24gcGF1c2UoKSB7XG4gICAgdmFyIF9wID0gdGhpcy5fcHJpdmF0ZTtcbiAgICBfcC5wbGF5aW5nID0gZmFsc2U7XG4gICAgX3Auc3RhcnRlZCA9IGZhbHNlO1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICBzdG9wOiBmdW5jdGlvbiBzdG9wKCkge1xuICAgIHZhciBfcCA9IHRoaXMuX3ByaXZhdGU7XG4gICAgX3AucGxheWluZyA9IGZhbHNlO1xuICAgIF9wLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICBfcC5zdG9wcGVkID0gdHJ1ZTsgLy8gdG8gYmUgcmVtb3ZlZCBmcm9tIGFuaW1hdGlvbiBxdWV1ZXNcblxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICByZXdpbmQ6IGZ1bmN0aW9uIHJld2luZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9ncmVzcygwKTtcbiAgfSxcbiAgZmFzdGZvcndhcmQ6IGZ1bmN0aW9uIGZhc3Rmb3J3YXJkKCkge1xuICAgIHJldHVybiB0aGlzLnByb2dyZXNzKDEpO1xuICB9LFxuICB0aW1lOiBmdW5jdGlvbiB0aW1lKHQpIHtcbiAgICB2YXIgX3AgPSB0aGlzLl9wcml2YXRlO1xuICAgIGlmICh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBfcC5wcm9ncmVzcyAqIF9wLmR1cmF0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9ncmVzcyh0IC8gX3AuZHVyYXRpb24pO1xuICAgIH1cbiAgfSxcbiAgcHJvZ3Jlc3M6IGZ1bmN0aW9uIHByb2dyZXNzKHApIHtcbiAgICB2YXIgX3AgPSB0aGlzLl9wcml2YXRlO1xuICAgIHZhciB3YXNQbGF5aW5nID0gX3AucGxheWluZztcbiAgICBpZiAocCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gX3AucHJvZ3Jlc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh3YXNQbGF5aW5nKSB7XG4gICAgICAgIHRoaXMucGF1c2UoKTtcbiAgICAgIH1cbiAgICAgIF9wLnByb2dyZXNzID0gcDtcbiAgICAgIF9wLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgIGlmICh3YXNQbGF5aW5nKSB7XG4gICAgICAgIHRoaXMucGxheSgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgY29tcGxldGVkOiBmdW5jdGlvbiBjb21wbGV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUucHJvZ3Jlc3MgPT09IDE7XG4gIH0sXG4gIHJldmVyc2U6IGZ1bmN0aW9uIHJldmVyc2UoKSB7XG4gICAgdmFyIF9wID0gdGhpcy5fcHJpdmF0ZTtcbiAgICB2YXIgd2FzUGxheWluZyA9IF9wLnBsYXlpbmc7XG4gICAgaWYgKHdhc1BsYXlpbmcpIHtcbiAgICAgIHRoaXMucGF1c2UoKTtcbiAgICB9XG4gICAgX3AucHJvZ3Jlc3MgPSAxIC0gX3AucHJvZ3Jlc3M7XG4gICAgX3Auc3RhcnRlZCA9IGZhbHNlO1xuICAgIHZhciBzd2FwID0gZnVuY3Rpb24gc3dhcChhLCBiKSB7XG4gICAgICB2YXIgX3BhID0gX3BbYV07XG4gICAgICBpZiAoX3BhID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgX3BbYV0gPSBfcFtiXTtcbiAgICAgIF9wW2JdID0gX3BhO1xuICAgIH07XG4gICAgc3dhcCgnem9vbScsICdzdGFydFpvb20nKTtcbiAgICBzd2FwKCdwYW4nLCAnc3RhcnRQYW4nKTtcbiAgICBzd2FwKCdwb3NpdGlvbicsICdzdGFydFBvc2l0aW9uJyk7XG5cbiAgICAvLyBzd2FwIHN0eWxlc1xuICAgIGlmIChfcC5zdHlsZSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBfcC5zdHlsZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgcHJvcCA9IF9wLnN0eWxlW2ldO1xuICAgICAgICB2YXIgbmFtZSA9IHByb3AubmFtZTtcbiAgICAgICAgdmFyIHN0YXJ0U3R5bGVQcm9wID0gX3Auc3RhcnRTdHlsZVtuYW1lXTtcbiAgICAgICAgX3Auc3RhcnRTdHlsZVtuYW1lXSA9IHByb3A7XG4gICAgICAgIF9wLnN0eWxlW2ldID0gc3RhcnRTdHlsZVByb3A7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh3YXNQbGF5aW5nKSB7XG4gICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIHByb21pc2U6IGZ1bmN0aW9uIHByb21pc2UodHlwZSkge1xuICAgIHZhciBfcCA9IHRoaXMuX3ByaXZhdGU7XG4gICAgdmFyIGFycjtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2ZyYW1lJzpcbiAgICAgICAgYXJyID0gX3AuZnJhbWVzO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlICdjb21wbGV0ZSc6XG4gICAgICBjYXNlICdjb21wbGV0ZWQnOlxuICAgICAgICBhcnIgPSBfcC5jb21wbGV0ZXM7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIGFyci5wdXNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn0pO1xuYW5pZm4uY29tcGxldGUgPSBhbmlmbi5jb21wbGV0ZWQ7XG5hbmlmbi5ydW4gPSBhbmlmbi5wbGF5O1xuYW5pZm4ucnVubmluZyA9IGFuaWZuLnBsYXlpbmc7XG5cbnZhciBkZWZpbmUkMyA9IHtcbiAgYW5pbWF0ZWQ6IGZ1bmN0aW9uIGFuaW1hdGVkKCkge1xuICAgIHJldHVybiBmdW5jdGlvbiBhbmltYXRlZEltcGwoKSB7XG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICB2YXIgc2VsZklzQXJyYXlMaWtlID0gc2VsZi5sZW5ndGggIT09IHVuZGVmaW5lZDtcbiAgICAgIHZhciBhbGwgPSBzZWxmSXNBcnJheUxpa2UgPyBzZWxmIDogW3NlbGZdOyAvLyBwdXQgaW4gYXJyYXkgaWYgbm90IGFycmF5LWxpa2VcbiAgICAgIHZhciBjeSA9IHRoaXMuX3ByaXZhdGUuY3kgfHwgdGhpcztcbiAgICAgIGlmICghY3kuc3R5bGVFbmFibGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIGVsZSA9IGFsbFswXTtcbiAgICAgIGlmIChlbGUpIHtcbiAgICAgICAgcmV0dXJuIGVsZS5fcHJpdmF0ZS5hbmltYXRpb24uY3VycmVudC5sZW5ndGggPiAwO1xuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIC8vIGFuaW1hdGVkXG5cbiAgY2xlYXJRdWV1ZTogZnVuY3Rpb24gY2xlYXJRdWV1ZSgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYXJRdWV1ZUltcGwoKSB7XG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICB2YXIgc2VsZklzQXJyYXlMaWtlID0gc2VsZi5sZW5ndGggIT09IHVuZGVmaW5lZDtcbiAgICAgIHZhciBhbGwgPSBzZWxmSXNBcnJheUxpa2UgPyBzZWxmIDogW3NlbGZdOyAvLyBwdXQgaW4gYXJyYXkgaWYgbm90IGFycmF5LWxpa2VcbiAgICAgIHZhciBjeSA9IHRoaXMuX3ByaXZhdGUuY3kgfHwgdGhpcztcbiAgICAgIGlmICghY3kuc3R5bGVFbmFibGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZWxlID0gYWxsW2ldO1xuICAgICAgICBlbGUuX3ByaXZhdGUuYW5pbWF0aW9uLnF1ZXVlID0gW107XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICB9LFxuICAvLyBjbGVhclF1ZXVlXG5cbiAgZGVsYXk6IGZ1bmN0aW9uIGRlbGF5KCkge1xuICAgIHJldHVybiBmdW5jdGlvbiBkZWxheUltcGwodGltZSwgY29tcGxldGUpIHtcbiAgICAgIHZhciBjeSA9IHRoaXMuX3ByaXZhdGUuY3kgfHwgdGhpcztcbiAgICAgIGlmICghY3kuc3R5bGVFbmFibGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5hbmltYXRlKHtcbiAgICAgICAgZGVsYXk6IHRpbWUsXG4gICAgICAgIGR1cmF0aW9uOiB0aW1lLFxuICAgICAgICBjb21wbGV0ZTogY29tcGxldGVcbiAgICAgIH0pO1xuICAgIH07XG4gIH0sXG4gIC8vIGRlbGF5XG5cbiAgZGVsYXlBbmltYXRpb246IGZ1bmN0aW9uIGRlbGF5QW5pbWF0aW9uKCkge1xuICAgIHJldHVybiBmdW5jdGlvbiBkZWxheUFuaW1hdGlvbkltcGwodGltZSwgY29tcGxldGUpIHtcbiAgICAgIHZhciBjeSA9IHRoaXMuX3ByaXZhdGUuY3kgfHwgdGhpcztcbiAgICAgIGlmICghY3kuc3R5bGVFbmFibGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24oe1xuICAgICAgICBkZWxheTogdGltZSxcbiAgICAgICAgZHVyYXRpb246IHRpbWUsXG4gICAgICAgIGNvbXBsZXRlOiBjb21wbGV0ZVxuICAgICAgfSk7XG4gICAgfTtcbiAgfSxcbiAgLy8gZGVsYXlcblxuICBhbmltYXRpb246IGZ1bmN0aW9uIGFuaW1hdGlvbigpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gYW5pbWF0aW9uSW1wbChwcm9wZXJ0aWVzLCBwYXJhbXMpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIHZhciBzZWxmSXNBcnJheUxpa2UgPSBzZWxmLmxlbmd0aCAhPT0gdW5kZWZpbmVkO1xuICAgICAgdmFyIGFsbCA9IHNlbGZJc0FycmF5TGlrZSA/IHNlbGYgOiBbc2VsZl07IC8vIHB1dCBpbiBhcnJheSBpZiBub3QgYXJyYXktbGlrZVxuICAgICAgdmFyIGN5ID0gdGhpcy5fcHJpdmF0ZS5jeSB8fCB0aGlzO1xuICAgICAgdmFyIGlzQ29yZSA9ICFzZWxmSXNBcnJheUxpa2U7XG4gICAgICB2YXIgaXNFbGVzID0gIWlzQ29yZTtcbiAgICAgIGlmICghY3kuc3R5bGVFbmFibGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgICB2YXIgc3R5bGUgPSBjeS5zdHlsZSgpO1xuICAgICAgcHJvcGVydGllcyA9IGV4dGVuZCh7fSwgcHJvcGVydGllcywgcGFyYW1zKTtcbiAgICAgIHZhciBwcm9wZXJ0aWVzRW1wdHkgPSBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5sZW5ndGggPT09IDA7XG4gICAgICBpZiAocHJvcGVydGllc0VtcHR5KSB7XG4gICAgICAgIHJldHVybiBuZXcgQW5pbWF0aW9uKGFsbFswXSwgcHJvcGVydGllcyk7IC8vIG5vdGhpbmcgdG8gYW5pbWF0ZVxuICAgICAgfVxuXG4gICAgICBpZiAocHJvcGVydGllcy5kdXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByb3BlcnRpZXMuZHVyYXRpb24gPSA0MDA7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHByb3BlcnRpZXMuZHVyYXRpb24pIHtcbiAgICAgICAgY2FzZSAnc2xvdyc6XG4gICAgICAgICAgcHJvcGVydGllcy5kdXJhdGlvbiA9IDYwMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZmFzdCc6XG4gICAgICAgICAgcHJvcGVydGllcy5kdXJhdGlvbiA9IDIwMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmIChpc0VsZXMpIHtcbiAgICAgICAgcHJvcGVydGllcy5zdHlsZSA9IHN0eWxlLmdldFByb3BzTGlzdChwcm9wZXJ0aWVzLnN0eWxlIHx8IHByb3BlcnRpZXMuY3NzKTtcbiAgICAgICAgcHJvcGVydGllcy5jc3MgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAoaXNFbGVzICYmIHByb3BlcnRpZXMucmVuZGVyZWRQb3NpdGlvbiAhPSBudWxsKSB7XG4gICAgICAgIHZhciBycG9zID0gcHJvcGVydGllcy5yZW5kZXJlZFBvc2l0aW9uO1xuICAgICAgICB2YXIgcGFuID0gY3kucGFuKCk7XG4gICAgICAgIHZhciB6b29tID0gY3kuem9vbSgpO1xuICAgICAgICBwcm9wZXJ0aWVzLnBvc2l0aW9uID0gcmVuZGVyZWRUb01vZGVsUG9zaXRpb24ocnBvcywgem9vbSwgcGFuKTtcbiAgICAgIH1cblxuICAgICAgLy8gb3ZlcnJpZGUgcGFuIHcvIHBhbkJ5IGlmIHNldFxuICAgICAgaWYgKGlzQ29yZSAmJiBwcm9wZXJ0aWVzLnBhbkJ5ICE9IG51bGwpIHtcbiAgICAgICAgdmFyIHBhbkJ5ID0gcHJvcGVydGllcy5wYW5CeTtcbiAgICAgICAgdmFyIGN5UGFuID0gY3kucGFuKCk7XG4gICAgICAgIHByb3BlcnRpZXMucGFuID0ge1xuICAgICAgICAgIHg6IGN5UGFuLnggKyBwYW5CeS54LFxuICAgICAgICAgIHk6IGN5UGFuLnkgKyBwYW5CeS55XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIG92ZXJyaWRlIHBhbiB3LyBjZW50ZXIgaWYgc2V0XG4gICAgICB2YXIgY2VudGVyID0gcHJvcGVydGllcy5jZW50ZXIgfHwgcHJvcGVydGllcy5jZW50cmU7XG4gICAgICBpZiAoaXNDb3JlICYmIGNlbnRlciAhPSBudWxsKSB7XG4gICAgICAgIHZhciBjZW50ZXJQYW4gPSBjeS5nZXRDZW50ZXJQYW4oY2VudGVyLmVsZXMsIHByb3BlcnRpZXMuem9vbSk7XG4gICAgICAgIGlmIChjZW50ZXJQYW4gIT0gbnVsbCkge1xuICAgICAgICAgIHByb3BlcnRpZXMucGFuID0gY2VudGVyUGFuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIG92ZXJyaWRlIHBhbiAmIHpvb20gdy8gZml0IGlmIHNldFxuICAgICAgaWYgKGlzQ29yZSAmJiBwcm9wZXJ0aWVzLmZpdCAhPSBudWxsKSB7XG4gICAgICAgIHZhciBmaXQgPSBwcm9wZXJ0aWVzLmZpdDtcbiAgICAgICAgdmFyIGZpdFZwID0gY3kuZ2V0Rml0Vmlld3BvcnQoZml0LmVsZXMgfHwgZml0LmJvdW5kaW5nQm94LCBmaXQucGFkZGluZyk7XG4gICAgICAgIGlmIChmaXRWcCAhPSBudWxsKSB7XG4gICAgICAgICAgcHJvcGVydGllcy5wYW4gPSBmaXRWcC5wYW47XG4gICAgICAgICAgcHJvcGVydGllcy56b29tID0gZml0VnAuem9vbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBvdmVycmlkZSB6b29tICgmIHBvdGVudGlhbGx5IHBhbikgdy8gem9vbSBvYmogaWYgc2V0XG4gICAgICBpZiAoaXNDb3JlICYmIHBsYWluT2JqZWN0KHByb3BlcnRpZXMuem9vbSkpIHtcbiAgICAgICAgdmFyIHZwID0gY3kuZ2V0Wm9vbWVkVmlld3BvcnQocHJvcGVydGllcy56b29tKTtcbiAgICAgICAgaWYgKHZwICE9IG51bGwpIHtcbiAgICAgICAgICBpZiAodnAuem9vbWVkKSB7XG4gICAgICAgICAgICBwcm9wZXJ0aWVzLnpvb20gPSB2cC56b29tO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodnAucGFubmVkKSB7XG4gICAgICAgICAgICBwcm9wZXJ0aWVzLnBhbiA9IHZwLnBhbjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvcGVydGllcy56b29tID0gbnVsbDsgLy8gYW4gaW5hdmFsaWQgem9vbSAoZS5nLiBubyBkZWx0YSkgZ2V0cyBhdXRvbWF0aWNhbGx5IGRlc3Ryb3llZFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXcgQW5pbWF0aW9uKGFsbFswXSwgcHJvcGVydGllcyk7XG4gICAgfTtcbiAgfSxcbiAgLy8gYW5pbWF0ZVxuXG4gIGFuaW1hdGU6IGZ1bmN0aW9uIGFuaW1hdGUoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGFuaW1hdGVJbXBsKHByb3BlcnRpZXMsIHBhcmFtcykge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgdmFyIHNlbGZJc0FycmF5TGlrZSA9IHNlbGYubGVuZ3RoICE9PSB1bmRlZmluZWQ7XG4gICAgICB2YXIgYWxsID0gc2VsZklzQXJyYXlMaWtlID8gc2VsZiA6IFtzZWxmXTsgLy8gcHV0IGluIGFycmF5IGlmIG5vdCBhcnJheS1saWtlXG4gICAgICB2YXIgY3kgPSB0aGlzLl9wcml2YXRlLmN5IHx8IHRoaXM7XG4gICAgICBpZiAoIWN5LnN0eWxlRW5hYmxlZCgpKSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgICAgaWYgKHBhcmFtcykge1xuICAgICAgICBwcm9wZXJ0aWVzID0gZXh0ZW5kKHt9LCBwcm9wZXJ0aWVzLCBwYXJhbXMpO1xuICAgICAgfVxuXG4gICAgICAvLyBtYW51YWxseSBob29rIGFuZCBydW4gdGhlIGFuaW1hdGlvblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGwubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGVsZSA9IGFsbFtpXTtcbiAgICAgICAgdmFyIHF1ZXVlID0gZWxlLmFuaW1hdGVkKCkgJiYgKHByb3BlcnRpZXMucXVldWUgPT09IHVuZGVmaW5lZCB8fCBwcm9wZXJ0aWVzLnF1ZXVlKTtcbiAgICAgICAgdmFyIGFuaSA9IGVsZS5hbmltYXRpb24ocHJvcGVydGllcywgcXVldWUgPyB7XG4gICAgICAgICAgcXVldWU6IHRydWVcbiAgICAgICAgfSA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGFuaS5wbGF5KCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgICB9O1xuICB9LFxuXG4gIC8vIGFuaW1hdGVcblxuICBzdG9wOiBmdW5jdGlvbiBzdG9wKCkge1xuICAgIHJldHVybiBmdW5jdGlvbiBzdG9wSW1wbChjbGVhclF1ZXVlLCBqdW1wVG9FbmQpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIHZhciBzZWxmSXNBcnJheUxpa2UgPSBzZWxmLmxlbmd0aCAhPT0gdW5kZWZpbmVkO1xuICAgICAgdmFyIGFsbCA9IHNlbGZJc0FycmF5TGlrZSA/IHNlbGYgOiBbc2VsZl07IC8vIHB1dCBpbiBhcnJheSBpZiBub3QgYXJyYXktbGlrZVxuICAgICAgdmFyIGN5ID0gdGhpcy5fcHJpdmF0ZS5jeSB8fCB0aGlzO1xuICAgICAgaWYgKCFjeS5zdHlsZUVuYWJsZWQoKSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlbGUgPSBhbGxbaV07XG4gICAgICAgIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgICAgICAgdmFyIGFuaXMgPSBfcC5hbmltYXRpb24uY3VycmVudDtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhbmlzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgdmFyIGFuaSA9IGFuaXNbal07XG4gICAgICAgICAgdmFyIGFuaV9wID0gYW5pLl9wcml2YXRlO1xuICAgICAgICAgIGlmIChqdW1wVG9FbmQpIHtcbiAgICAgICAgICAgIC8vIG5leHQgaXRlcmF0aW9uIG9mIHRoZSBhbmltYXRpb24gbG9vcCwgdGhlIGFuaW1hdGlvblxuICAgICAgICAgICAgLy8gd2lsbCBnbyBzdHJhaWdodCB0byB0aGUgZW5kIGFuZCBiZSByZW1vdmVkXG4gICAgICAgICAgICBhbmlfcC5kdXJhdGlvbiA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2xlYXIgdGhlIHF1ZXVlIG9mIGZ1dHVyZSBhbmltYXRpb25zXG4gICAgICAgIGlmIChjbGVhclF1ZXVlKSB7XG4gICAgICAgICAgX3AuYW5pbWF0aW9uLnF1ZXVlID0gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFqdW1wVG9FbmQpIHtcbiAgICAgICAgICBfcC5hbmltYXRpb24uY3VycmVudCA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIHdlIGhhdmUgdG8gbm90aWZ5ICh0aGUgYW5pbWF0aW9uIGxvb3AgZG9lc24ndCBkbyBpdCBmb3IgdXMgb24gYHN0b3BgKVxuICAgICAgY3kubm90aWZ5KCdkcmF3Jyk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICB9IC8vIHN0b3Bcbn07IC8vIGRlZmluZVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5YCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxudmFyIGlzQXJyYXlfMSA9IGlzQXJyYXk7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUlzRGVlcFByb3AgPSAvXFwufFxcWyg/OlteW1xcXV0qfChbXCInXSkoPzooPyFcXDEpW15cXFxcXXxcXFxcLikqP1xcMSlcXF0vLFxuICAgIHJlSXNQbGFpblByb3AgPSAvXlxcdyokLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUgYW5kIG5vdCBhIHByb3BlcnR5IHBhdGguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkga2V5cyBvbi5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0tleSh2YWx1ZSwgb2JqZWN0KSB7XG4gIGlmIChpc0FycmF5XzEodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBpZiAodHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nIHx8XG4gICAgICB2YWx1ZSA9PSBudWxsIHx8IGlzU3ltYm9sXzEodmFsdWUpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIHJlSXNQbGFpblByb3AudGVzdCh2YWx1ZSkgfHwgIXJlSXNEZWVwUHJvcC50ZXN0KHZhbHVlKSB8fFxuICAgIChvYmplY3QgIT0gbnVsbCAmJiB2YWx1ZSBpbiBPYmplY3Qob2JqZWN0KSk7XG59XG5cbnZhciBfaXNLZXkgPSBpc0tleTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFzeW5jVGFnID0gJ1tvYmplY3QgQXN5bmNGdW5jdGlvbl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgcHJveHlUYWcgPSAnW29iamVjdCBQcm94eV0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNGdW5jdGlvbihfKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oL2FiYy8pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0XzEodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAvLyBpbiBTYWZhcmkgOSB3aGljaCByZXR1cm5zICdvYmplY3QnIGZvciB0eXBlZCBhcnJheXMgYW5kIG90aGVyIGNvbnN0cnVjdG9ycy5cbiAgdmFyIHRhZyA9IF9iYXNlR2V0VGFnKHZhbHVlKTtcbiAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFnID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbn1cblxudmFyIGlzRnVuY3Rpb25fMSA9IGlzRnVuY3Rpb247XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBvdmVycmVhY2hpbmcgY29yZS1qcyBzaGltcy4gKi9cbnZhciBjb3JlSnNEYXRhID0gX3Jvb3RbJ19fY29yZS1qc19zaGFyZWRfXyddO1xuXG52YXIgX2NvcmVKc0RhdGEgPSBjb3JlSnNEYXRhO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgbWV0aG9kcyBtYXNxdWVyYWRpbmcgYXMgbmF0aXZlLiAqL1xudmFyIG1hc2tTcmNLZXkgPSAoZnVuY3Rpb24oKSB7XG4gIHZhciB1aWQgPSAvW14uXSskLy5leGVjKF9jb3JlSnNEYXRhICYmIF9jb3JlSnNEYXRhLmtleXMgJiYgX2NvcmVKc0RhdGEua2V5cy5JRV9QUk9UTyB8fCAnJyk7XG4gIHJldHVybiB1aWQgPyAoJ1N5bWJvbChzcmMpXzEuJyArIHVpZCkgOiAnJztcbn0oKSk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGBmdW5jYCBoYXMgaXRzIHNvdXJjZSBtYXNrZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBmdW5jYCBpcyBtYXNrZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNNYXNrZWQoZnVuYykge1xuICByZXR1cm4gISFtYXNrU3JjS2V5ICYmIChtYXNrU3JjS2V5IGluIGZ1bmMpO1xufVxuXG52YXIgX2lzTWFza2VkID0gaXNNYXNrZWQ7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8kMSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgZGVjb21waWxlZCBzb3VyY2Ugb2YgZnVuY3Rpb25zLiAqL1xudmFyIGZ1bmNUb1N0cmluZyQxID0gZnVuY1Byb3RvJDEudG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYGZ1bmNgIHRvIGl0cyBzb3VyY2UgY29kZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICovXG5mdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XG4gIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZyQxLmNhbGwoZnVuYyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChmdW5jICsgJycpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG52YXIgX3RvU291cmNlID0gdG9Tb3VyY2U7XG5cbi8qKlxuICogVXNlZCB0byBtYXRjaCBgUmVnRXhwYFxuICogW3N5bnRheCBjaGFyYWN0ZXJzXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1wYXR0ZXJucykuXG4gKi9cbnZhciByZVJlZ0V4cENoYXIgPSAvW1xcXFxeJC4qKz8oKVtcXF17fXxdL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBob3N0IGNvbnN0cnVjdG9ycyAoU2FmYXJpKS4gKi9cbnZhciByZUlzSG9zdEN0b3IgPSAvXlxcW29iamVjdCAuKz9Db25zdHJ1Y3RvclxcXSQvO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZnVuY1Byb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlLFxuICAgIG9iamVjdFByb3RvJDMgPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSQzID0gb2JqZWN0UHJvdG8kMy5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGlmIGEgbWV0aG9kIGlzIG5hdGl2ZS4gKi9cbnZhciByZUlzTmF0aXZlID0gUmVnRXhwKCdeJyArXG4gIGZ1bmNUb1N0cmluZy5jYWxsKGhhc093blByb3BlcnR5JDMpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0XzEodmFsdWUpIHx8IF9pc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uXzEodmFsdWUpID8gcmVJc05hdGl2ZSA6IHJlSXNIb3N0Q3RvcjtcbiAgcmV0dXJuIHBhdHRlcm4udGVzdChfdG9Tb3VyY2UodmFsdWUpKTtcbn1cblxudmFyIF9iYXNlSXNOYXRpdmUgPSBiYXNlSXNOYXRpdmU7XG5cbi8qKlxuICogR2V0cyB0aGUgdmFsdWUgYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlJDEob2JqZWN0LCBrZXkpIHtcbiAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG59XG5cbnZhciBfZ2V0VmFsdWUgPSBnZXRWYWx1ZSQxO1xuXG4vKipcbiAqIEdldHMgdGhlIG5hdGl2ZSBmdW5jdGlvbiBhdCBga2V5YCBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBtZXRob2QgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZ1bmN0aW9uIGlmIGl0J3MgbmF0aXZlLCBlbHNlIGB1bmRlZmluZWRgLlxuICovXG5mdW5jdGlvbiBnZXROYXRpdmUob2JqZWN0LCBrZXkpIHtcbiAgdmFyIHZhbHVlID0gX2dldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIF9iYXNlSXNOYXRpdmUodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbnZhciBfZ2V0TmF0aXZlID0gZ2V0TmF0aXZlO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgbmF0aXZlQ3JlYXRlID0gX2dldE5hdGl2ZShPYmplY3QsICdjcmVhdGUnKTtcblxudmFyIF9uYXRpdmVDcmVhdGUgPSBuYXRpdmVDcmVhdGU7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgaGFzaC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKi9cbmZ1bmN0aW9uIGhhc2hDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IF9uYXRpdmVDcmVhdGUgPyBfbmF0aXZlQ3JlYXRlKG51bGwpIDoge307XG4gIHRoaXMuc2l6ZSA9IDA7XG59XG5cbnZhciBfaGFzaENsZWFyID0gaGFzaENsZWFyO1xuXG4vKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBoYXNoLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge09iamVjdH0gaGFzaCBUaGUgaGFzaCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaGFzaERlbGV0ZShrZXkpIHtcbiAgdmFyIHJlc3VsdCA9IHRoaXMuaGFzKGtleSkgJiYgZGVsZXRlIHRoaXMuX19kYXRhX19ba2V5XTtcbiAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG52YXIgX2hhc2hEZWxldGUgPSBoYXNoRGVsZXRlO1xuXG4vKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG52YXIgSEFTSF9VTkRFRklORUQkMSA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvJDIgPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSQyID0gb2JqZWN0UHJvdG8kMi5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBHZXRzIHRoZSBoYXNoIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGhhc2hHZXQoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgaWYgKF9uYXRpdmVDcmVhdGUpIHtcbiAgICB2YXIgcmVzdWx0ID0gZGF0YVtrZXldO1xuICAgIHJldHVybiByZXN1bHQgPT09IEhBU0hfVU5ERUZJTkVEJDEgPyB1bmRlZmluZWQgOiByZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIGhhc093blByb3BlcnR5JDIuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkO1xufVxuXG52YXIgX2hhc2hHZXQgPSBoYXNoR2V0O1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8kMSA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5JDEgPSBvYmplY3RQcm90byQxLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGhhc2ggdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGhhc2hIYXMoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgcmV0dXJuIF9uYXRpdmVDcmVhdGUgPyAoZGF0YVtrZXldICE9PSB1bmRlZmluZWQpIDogaGFzT3duUHJvcGVydHkkMS5jYWxsKGRhdGEsIGtleSk7XG59XG5cbnZhciBfaGFzaEhhcyA9IGhhc2hIYXM7XG5cbi8qKiBVc2VkIHRvIHN0YW5kLWluIGZvciBgdW5kZWZpbmVkYCBoYXNoIHZhbHVlcy4gKi9cbnZhciBIQVNIX1VOREVGSU5FRCA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuLyoqXG4gKiBTZXRzIHRoZSBoYXNoIGBrZXlgIHRvIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIHNldFxuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaGFzaCBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gaGFzaFNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgdGhpcy5zaXplICs9IHRoaXMuaGFzKGtleSkgPyAwIDogMTtcbiAgZGF0YVtrZXldID0gKF9uYXRpdmVDcmVhdGUgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkgPyBIQVNIX1VOREVGSU5FRCA6IHZhbHVlO1xuICByZXR1cm4gdGhpcztcbn1cblxudmFyIF9oYXNoU2V0ID0gaGFzaFNldDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgaGFzaCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIEhhc2goZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICB0aGlzLmNsZWFyKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgfVxufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgSGFzaGAuXG5IYXNoLnByb3RvdHlwZS5jbGVhciA9IF9oYXNoQ2xlYXI7XG5IYXNoLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBfaGFzaERlbGV0ZTtcbkhhc2gucHJvdG90eXBlLmdldCA9IF9oYXNoR2V0O1xuSGFzaC5wcm90b3R5cGUuaGFzID0gX2hhc2hIYXM7XG5IYXNoLnByb3RvdHlwZS5zZXQgPSBfaGFzaFNldDtcblxudmFyIF9IYXNoID0gSGFzaDtcblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IFtdO1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG52YXIgX2xpc3RDYWNoZUNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG5cbi8qKlxuICogUGVyZm9ybXMgYVxuICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBlcXVpdmFsZW50LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xuICogdmFyIG90aGVyID0geyAnYSc6IDEgfTtcbiAqXG4gKiBfLmVxKG9iamVjdCwgb2JqZWN0KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmVxKG9iamVjdCwgb3RoZXIpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmVxKCdhJywgJ2EnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmVxKCdhJywgT2JqZWN0KCdhJykpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmVxKE5hTiwgTmFOKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gZXEodmFsdWUsIG90aGVyKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gb3RoZXIgfHwgKHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXIpO1xufVxuXG52YXIgZXFfMSA9IGVxO1xuXG4vKipcbiAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBga2V5YCBpcyBmb3VuZCBpbiBgYXJyYXlgIG9mIGtleS12YWx1ZSBwYWlycy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0geyp9IGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBhc3NvY0luZGV4T2YoYXJyYXksIGtleSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICBpZiAoZXFfMShhcnJheVtsZW5ndGhdWzBdLCBrZXkpKSB7XG4gICAgICByZXR1cm4gbGVuZ3RoO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbnZhciBfYXNzb2NJbmRleE9mID0gYXNzb2NJbmRleE9mO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2U7XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZURlbGV0ZShrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBfYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgbGFzdEluZGV4ID0gZGF0YS5sZW5ndGggLSAxO1xuICBpZiAoaW5kZXggPT0gbGFzdEluZGV4KSB7XG4gICAgZGF0YS5wb3AoKTtcbiAgfSBlbHNlIHtcbiAgICBzcGxpY2UuY2FsbChkYXRhLCBpbmRleCwgMSk7XG4gIH1cbiAgLS10aGlzLnNpemU7XG4gIHJldHVybiB0cnVlO1xufVxuXG52YXIgX2xpc3RDYWNoZURlbGV0ZSA9IGxpc3RDYWNoZURlbGV0ZTtcblxuLyoqXG4gKiBHZXRzIHRoZSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlR2V0KGtleSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICBpbmRleCA9IF9hc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICByZXR1cm4gaW5kZXggPCAwID8gdW5kZWZpbmVkIDogZGF0YVtpbmRleF1bMV07XG59XG5cbnZhciBfbGlzdENhY2hlR2V0ID0gbGlzdENhY2hlR2V0O1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlSGFzKGtleSkge1xuICByZXR1cm4gX2Fzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBrZXkpID4gLTE7XG59XG5cbnZhciBfbGlzdENhY2hlSGFzID0gbGlzdENhY2hlSGFzO1xuXG4vKipcbiAqIFNldHMgdGhlIGxpc3QgY2FjaGUgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGxpc3QgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gX2Fzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gIGlmIChpbmRleCA8IDApIHtcbiAgICArK3RoaXMuc2l6ZTtcbiAgICBkYXRhLnB1c2goW2tleSwgdmFsdWVdKTtcbiAgfSBlbHNlIHtcbiAgICBkYXRhW2luZGV4XVsxXSA9IHZhbHVlO1xuICB9XG4gIHJldHVybiB0aGlzO1xufVxuXG52YXIgX2xpc3RDYWNoZVNldCA9IGxpc3RDYWNoZVNldDtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGxpc3QgY2FjaGUgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBMaXN0Q2FjaGUoZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICB0aGlzLmNsZWFyKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgfVxufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgTGlzdENhY2hlYC5cbkxpc3RDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBfbGlzdENhY2hlQ2xlYXI7XG5MaXN0Q2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IF9saXN0Q2FjaGVEZWxldGU7XG5MaXN0Q2FjaGUucHJvdG90eXBlLmdldCA9IF9saXN0Q2FjaGVHZXQ7XG5MaXN0Q2FjaGUucHJvdG90eXBlLmhhcyA9IF9saXN0Q2FjaGVIYXM7XG5MaXN0Q2FjaGUucHJvdG90eXBlLnNldCA9IF9saXN0Q2FjaGVTZXQ7XG5cbnZhciBfTGlzdENhY2hlID0gTGlzdENhY2hlO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgTWFwJDEgPSBfZ2V0TmF0aXZlKF9yb290LCAnTWFwJyk7XG5cbnZhciBfTWFwID0gTWFwJDE7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbWFwLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlQ2xlYXIoKSB7XG4gIHRoaXMuc2l6ZSA9IDA7XG4gIHRoaXMuX19kYXRhX18gPSB7XG4gICAgJ2hhc2gnOiBuZXcgX0hhc2gsXG4gICAgJ21hcCc6IG5ldyAoX01hcCB8fCBfTGlzdENhY2hlKSxcbiAgICAnc3RyaW5nJzogbmV3IF9IYXNoXG4gIH07XG59XG5cbnZhciBfbWFwQ2FjaGVDbGVhciA9IG1hcENhY2hlQ2xlYXI7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHVzZSBhcyB1bmlxdWUgb2JqZWN0IGtleS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0tleWFibGUodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAodHlwZSA9PSAnc3RyaW5nJyB8fCB0eXBlID09ICdudW1iZXInIHx8IHR5cGUgPT0gJ3N5bWJvbCcgfHwgdHlwZSA9PSAnYm9vbGVhbicpXG4gICAgPyAodmFsdWUgIT09ICdfX3Byb3RvX18nKVxuICAgIDogKHZhbHVlID09PSBudWxsKTtcbn1cblxudmFyIF9pc0tleWFibGUgPSBpc0tleWFibGU7XG5cbi8qKlxuICogR2V0cyB0aGUgZGF0YSBmb3IgYG1hcGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXAgVGhlIG1hcCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIHJlZmVyZW5jZSBrZXkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWFwIGRhdGEuXG4gKi9cbmZ1bmN0aW9uIGdldE1hcERhdGEobWFwLCBrZXkpIHtcbiAgdmFyIGRhdGEgPSBtYXAuX19kYXRhX187XG4gIHJldHVybiBfaXNLZXlhYmxlKGtleSlcbiAgICA/IGRhdGFbdHlwZW9mIGtleSA9PSAnc3RyaW5nJyA/ICdzdHJpbmcnIDogJ2hhc2gnXVxuICAgIDogZGF0YS5tYXA7XG59XG5cbnZhciBfZ2V0TWFwRGF0YSA9IGdldE1hcERhdGE7XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShrZXkpIHtcbiAgdmFyIHJlc3VsdCA9IF9nZXRNYXBEYXRhKHRoaXMsIGtleSlbJ2RlbGV0ZSddKGtleSk7XG4gIHRoaXMuc2l6ZSAtPSByZXN1bHQgPyAxIDogMDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxudmFyIF9tYXBDYWNoZURlbGV0ZSA9IG1hcENhY2hlRGVsZXRlO1xuXG4vKipcbiAqIEdldHMgdGhlIG1hcCB2YWx1ZSBmb3IgYGtleWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGdldFxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVHZXQoa2V5KSB7XG4gIHJldHVybiBfZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xufVxuXG52YXIgX21hcENhY2hlR2V0ID0gbWFwQ2FjaGVHZXQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbWFwIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVIYXMoa2V5KSB7XG4gIHJldHVybiBfZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmhhcyhrZXkpO1xufVxuXG52YXIgX21hcENhY2hlSGFzID0gbWFwQ2FjaGVIYXM7XG5cbi8qKlxuICogU2V0cyB0aGUgbWFwIGBrZXlgIHRvIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIHNldFxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG1hcCBjYWNoZSBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVTZXQoa2V5LCB2YWx1ZSkge1xuICB2YXIgZGF0YSA9IF9nZXRNYXBEYXRhKHRoaXMsIGtleSksXG4gICAgICBzaXplID0gZGF0YS5zaXplO1xuXG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgKz0gZGF0YS5zaXplID09IHNpemUgPyAwIDogMTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbnZhciBfbWFwQ2FjaGVTZXQgPSBtYXBDYWNoZVNldDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbWFwIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIE1hcENhY2hlKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYE1hcENhY2hlYC5cbk1hcENhY2hlLnByb3RvdHlwZS5jbGVhciA9IF9tYXBDYWNoZUNsZWFyO1xuTWFwQ2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IF9tYXBDYWNoZURlbGV0ZTtcbk1hcENhY2hlLnByb3RvdHlwZS5nZXQgPSBfbWFwQ2FjaGVHZXQ7XG5NYXBDYWNoZS5wcm90b3R5cGUuaGFzID0gX21hcENhY2hlSGFzO1xuTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IF9tYXBDYWNoZVNldDtcblxudmFyIF9NYXBDYWNoZSA9IE1hcENhY2hlO1xuXG4vKiogRXJyb3IgbWVzc2FnZSBjb25zdGFudHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG1lbW9pemVzIHRoZSByZXN1bHQgb2YgYGZ1bmNgLiBJZiBgcmVzb2x2ZXJgIGlzXG4gKiBwcm92aWRlZCwgaXQgZGV0ZXJtaW5lcyB0aGUgY2FjaGUga2V5IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlXG4gKiBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uLiBCeSBkZWZhdWx0LCB0aGUgZmlyc3QgYXJndW1lbnRcbiAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSBtYXAgY2FjaGUga2V5LiBUaGUgYGZ1bmNgXG4gKiBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogVGhlIGNhY2hlIGlzIGV4cG9zZWQgYXMgdGhlIGBjYWNoZWAgcHJvcGVydHkgb24gdGhlIG1lbW9pemVkXG4gKiBmdW5jdGlvbi4gSXRzIGNyZWF0aW9uIG1heSBiZSBjdXN0b21pemVkIGJ5IHJlcGxhY2luZyB0aGUgYF8ubWVtb2l6ZS5DYWNoZWBcbiAqIGNvbnN0cnVjdG9yIHdpdGggb25lIHdob3NlIGluc3RhbmNlcyBpbXBsZW1lbnQgdGhlXG4gKiBbYE1hcGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxuICogbWV0aG9kIGludGVyZmFjZSBvZiBgY2xlYXJgLCBgZGVsZXRlYCwgYGdldGAsIGBoYXNgLCBhbmQgYHNldGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcmVzb2x2ZXJdIFRoZSBmdW5jdGlvbiB0byByZXNvbHZlIHRoZSBjYWNoZSBrZXkuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2MnOiAzLCAnZCc6IDQgfTtcbiAqXG4gKiB2YXIgdmFsdWVzID0gXy5tZW1vaXplKF8udmFsdWVzKTtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogdmFsdWVzKG90aGVyKTtcbiAqIC8vID0+IFszLCA0XVxuICpcbiAqIG9iamVjdC5hID0gMjtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogLy8gTW9kaWZ5IHRoZSByZXN1bHQgY2FjaGUuXG4gKiB2YWx1ZXMuY2FjaGUuc2V0KG9iamVjdCwgWydhJywgJ2InXSk7XG4gKiB2YWx1ZXMob2JqZWN0KTtcbiAqIC8vID0+IFsnYScsICdiJ11cbiAqXG4gKiAvLyBSZXBsYWNlIGBfLm1lbW9pemUuQ2FjaGVgLlxuICogXy5tZW1vaXplLkNhY2hlID0gV2Vha01hcDtcbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZShmdW5jLCByZXNvbHZlcikge1xuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJyB8fCAocmVzb2x2ZXIgIT0gbnVsbCAmJiB0eXBlb2YgcmVzb2x2ZXIgIT0gJ2Z1bmN0aW9uJykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgdmFyIG1lbW9pemVkID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgIGtleSA9IHJlc29sdmVyID8gcmVzb2x2ZXIuYXBwbHkodGhpcywgYXJncykgOiBhcmdzWzBdLFxuICAgICAgICBjYWNoZSA9IG1lbW9pemVkLmNhY2hlO1xuXG4gICAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0KSB8fCBjYWNoZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICBtZW1vaXplZC5jYWNoZSA9IG5ldyAobWVtb2l6ZS5DYWNoZSB8fCBfTWFwQ2FjaGUpO1xuICByZXR1cm4gbWVtb2l6ZWQ7XG59XG5cbi8vIEV4cG9zZSBgTWFwQ2FjaGVgLlxubWVtb2l6ZS5DYWNoZSA9IF9NYXBDYWNoZTtcblxudmFyIG1lbW9pemVfMSA9IG1lbW9pemU7XG5cbi8qKiBVc2VkIGFzIHRoZSBtYXhpbXVtIG1lbW9pemUgY2FjaGUgc2l6ZS4gKi9cbnZhciBNQVhfTUVNT0laRV9TSVpFID0gNTAwO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tZW1vaXplYCB3aGljaCBjbGVhcnMgdGhlIG1lbW9pemVkIGZ1bmN0aW9uJ3NcbiAqIGNhY2hlIHdoZW4gaXQgZXhjZWVkcyBgTUFYX01FTU9JWkVfU0laRWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGhhdmUgaXRzIG91dHB1dCBtZW1vaXplZC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBtZW1vaXplQ2FwcGVkKGZ1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IG1lbW9pemVfMShmdW5jLCBmdW5jdGlvbihrZXkpIHtcbiAgICBpZiAoY2FjaGUuc2l6ZSA9PT0gTUFYX01FTU9JWkVfU0laRSkge1xuICAgICAgY2FjaGUuY2xlYXIoKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbiAgfSk7XG5cbiAgdmFyIGNhY2hlID0gcmVzdWx0LmNhY2hlO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG52YXIgX21lbW9pemVDYXBwZWQgPSBtZW1vaXplQ2FwcGVkO1xuXG4vKiogVXNlZCB0byBtYXRjaCBwcm9wZXJ0eSBuYW1lcyB3aXRoaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgcmVQcm9wTmFtZSA9IC9bXi5bXFxdXSt8XFxbKD86KC0/XFxkKyg/OlxcLlxcZCspPyl8KFtcIiddKSgoPzooPyFcXDIpW15cXFxcXXxcXFxcLikqPylcXDIpXFxdfCg/PSg/OlxcLnxcXFtcXF0pKD86XFwufFxcW1xcXXwkKSkvZztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggYmFja3NsYXNoZXMgaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgcmVFc2NhcGVDaGFyID0gL1xcXFwoXFxcXCk/L2c7XG5cbi8qKlxuICogQ29udmVydHMgYHN0cmluZ2AgdG8gYSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAqL1xudmFyIHN0cmluZ1RvUGF0aCA9IF9tZW1vaXplQ2FwcGVkKGZ1bmN0aW9uKHN0cmluZykge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIGlmIChzdHJpbmcuY2hhckNvZGVBdCgwKSA9PT0gNDYgLyogLiAqLykge1xuICAgIHJlc3VsdC5wdXNoKCcnKTtcbiAgfVxuICBzdHJpbmcucmVwbGFjZShyZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVyLCBxdW90ZSwgc3ViU3RyaW5nKSB7XG4gICAgcmVzdWx0LnB1c2gocXVvdGUgPyBzdWJTdHJpbmcucmVwbGFjZShyZUVzY2FwZUNoYXIsICckMScpIDogKG51bWJlciB8fCBtYXRjaCkpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn0pO1xuXG52YXIgX3N0cmluZ1RvUGF0aCA9IHN0cmluZ1RvUGF0aDtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWFwYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAqIHNob3J0aGFuZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGFycmF5TWFwKGFycmF5LCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxudmFyIF9hcnJheU1hcCA9IGFycmF5TWFwO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSQxID0gMSAvIDA7XG5cbi8qKiBVc2VkIHRvIGNvbnZlcnQgc3ltYm9scyB0byBwcmltaXRpdmVzIGFuZCBzdHJpbmdzLiAqL1xudmFyIHN5bWJvbFByb3RvID0gX1N5bWJvbCA/IF9TeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgIHN5bWJvbFRvU3RyaW5nID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by50b1N0cmluZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b1N0cmluZ2Agd2hpY2ggZG9lc24ndCBjb252ZXJ0IG51bGxpc2hcbiAqIHZhbHVlcyB0byBlbXB0eSBzdHJpbmdzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBiYXNlVG9TdHJpbmcodmFsdWUpIHtcbiAgLy8gRXhpdCBlYXJseSBmb3Igc3RyaW5ncyB0byBhdm9pZCBhIHBlcmZvcm1hbmNlIGhpdCBpbiBzb21lIGVudmlyb25tZW50cy5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNBcnJheV8xKHZhbHVlKSkge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgdmFsdWVzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgcmV0dXJuIF9hcnJheU1hcCh2YWx1ZSwgYmFzZVRvU3RyaW5nKSArICcnO1xuICB9XG4gIGlmIChpc1N5bWJvbF8xKHZhbHVlKSkge1xuICAgIHJldHVybiBzeW1ib2xUb1N0cmluZyA/IHN5bWJvbFRvU3RyaW5nLmNhbGwodmFsdWUpIDogJyc7XG4gIH1cbiAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgcmV0dXJuIChyZXN1bHQgPT0gJzAnICYmICgxIC8gdmFsdWUpID09IC1JTkZJTklUWSQxKSA/ICctMCcgOiByZXN1bHQ7XG59XG5cbnZhciBfYmFzZVRvU3RyaW5nID0gYmFzZVRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBmb3IgYG51bGxgXG4gKiBhbmQgYHVuZGVmaW5lZGAgdmFsdWVzLiBUaGUgc2lnbiBvZiBgLTBgIGlzIHByZXNlcnZlZC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9TdHJpbmcobnVsbCk7XG4gKiAvLyA9PiAnJ1xuICpcbiAqIF8udG9TdHJpbmcoLTApO1xuICogLy8gPT4gJy0wJ1xuICpcbiAqIF8udG9TdHJpbmcoWzEsIDIsIDNdKTtcbiAqIC8vID0+ICcxLDIsMydcbiAqL1xuZnVuY3Rpb24gdG9TdHJpbmckMSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogX2Jhc2VUb1N0cmluZyh2YWx1ZSk7XG59XG5cbnZhciB0b1N0cmluZ18xID0gdG9TdHJpbmckMTtcblxuLyoqXG4gKiBDYXN0cyBgdmFsdWVgIHRvIGEgcGF0aCBhcnJheSBpZiBpdCdzIG5vdCBvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjYXN0IHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGNhc3RQYXRoKHZhbHVlLCBvYmplY3QpIHtcbiAgaWYgKGlzQXJyYXlfMSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIF9pc0tleSh2YWx1ZSwgb2JqZWN0KSA/IFt2YWx1ZV0gOiBfc3RyaW5nVG9QYXRoKHRvU3RyaW5nXzEodmFsdWUpKTtcbn1cblxudmFyIF9jYXN0UGF0aCA9IGNhc3RQYXRoO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcga2V5IGlmIGl0J3Mgbm90IGEgc3RyaW5nIG9yIHN5bWJvbC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd8c3ltYm9sfSBSZXR1cm5zIHRoZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIHRvS2V5KHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgaXNTeW1ib2xfMSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgcmV0dXJuIChyZXN1bHQgPT0gJzAnICYmICgxIC8gdmFsdWUpID09IC1JTkZJTklUWSkgPyAnLTAnIDogcmVzdWx0O1xufVxuXG52YXIgX3RvS2V5ID0gdG9LZXk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZ2V0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZmF1bHQgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBiYXNlR2V0KG9iamVjdCwgcGF0aCkge1xuICBwYXRoID0gX2Nhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgdmFyIGluZGV4ID0gMCxcbiAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoO1xuXG4gIHdoaWxlIChvYmplY3QgIT0gbnVsbCAmJiBpbmRleCA8IGxlbmd0aCkge1xuICAgIG9iamVjdCA9IG9iamVjdFtfdG9LZXkocGF0aFtpbmRleCsrXSldO1xuICB9XG4gIHJldHVybiAoaW5kZXggJiYgaW5kZXggPT0gbGVuZ3RoKSA/IG9iamVjdCA6IHVuZGVmaW5lZDtcbn1cblxudmFyIF9iYXNlR2V0ID0gYmFzZUdldDtcblxuLyoqXG4gKiBHZXRzIHRoZSB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuIElmIHRoZSByZXNvbHZlZCB2YWx1ZSBpc1xuICogYHVuZGVmaW5lZGAsIHRoZSBgZGVmYXVsdFZhbHVlYCBpcyByZXR1cm5lZCBpbiBpdHMgcGxhY2UuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjcuMFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEBwYXJhbSB7Kn0gW2RlZmF1bHRWYWx1ZV0gVGhlIHZhbHVlIHJldHVybmVkIGZvciBgdW5kZWZpbmVkYCByZXNvbHZlZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH1dIH07XG4gKlxuICogXy5nZXQob2JqZWN0LCAnYVswXS5iLmMnKTtcbiAqIC8vID0+IDNcbiAqXG4gKiBfLmdldChvYmplY3QsIFsnYScsICcwJywgJ2InLCAnYyddKTtcbiAqIC8vID0+IDNcbiAqXG4gKiBfLmdldChvYmplY3QsICdhLmIuYycsICdkZWZhdWx0Jyk7XG4gKiAvLyA9PiAnZGVmYXVsdCdcbiAqL1xuZnVuY3Rpb24gZ2V0KG9iamVjdCwgcGF0aCwgZGVmYXVsdFZhbHVlKSB7XG4gIHZhciByZXN1bHQgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IF9iYXNlR2V0KG9iamVjdCwgcGF0aCk7XG4gIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRWYWx1ZSA6IHJlc3VsdDtcbn1cblxudmFyIGdldF8xID0gZ2V0O1xuXG52YXIgZGVmaW5lUHJvcGVydHkgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgdmFyIGZ1bmMgPSBfZ2V0TmF0aXZlKE9iamVjdCwgJ2RlZmluZVByb3BlcnR5Jyk7XG4gICAgZnVuYyh7fSwgJycsIHt9KTtcbiAgICByZXR1cm4gZnVuYztcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkgPSBkZWZpbmVQcm9wZXJ0eTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgYXNzaWduVmFsdWVgIGFuZCBgYXNzaWduTWVyZ2VWYWx1ZWAgd2l0aG91dFxuICogdmFsdWUgY2hlY2tzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgaWYgKGtleSA9PSAnX19wcm90b19fJyAmJiBfZGVmaW5lUHJvcGVydHkpIHtcbiAgICBfZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG52YXIgX2Jhc2VBc3NpZ25WYWx1ZSA9IGJhc2VBc3NpZ25WYWx1ZTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXFfMShvYmpWYWx1ZSwgdmFsdWUpKSB8fFxuICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkpIHtcbiAgICBfYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxudmFyIF9hc3NpZ25WYWx1ZSA9IGFzc2lnblZhbHVlO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xudmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcblxuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgKHR5cGUgIT0gJ3N5bWJvbCcgJiYgcmVJc1VpbnQudGVzdCh2YWx1ZSkpKSAmJlxuICAgICAgICAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG59XG5cbnZhciBfaXNJbmRleCA9IGlzSW5kZXg7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc2V0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBwYXRoIGNyZWF0aW9uLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlLCBjdXN0b21pemVyKSB7XG4gIGlmICghaXNPYmplY3RfMShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuICBwYXRoID0gX2Nhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aCxcbiAgICAgIGxhc3RJbmRleCA9IGxlbmd0aCAtIDEsXG4gICAgICBuZXN0ZWQgPSBvYmplY3Q7XG5cbiAgd2hpbGUgKG5lc3RlZCAhPSBudWxsICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gX3RvS2V5KHBhdGhbaW5kZXhdKSxcbiAgICAgICAgbmV3VmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmIChrZXkgPT09ICdfX3Byb3RvX18nIHx8IGtleSA9PT0gJ2NvbnN0cnVjdG9yJyB8fCBrZXkgPT09ICdwcm90b3R5cGUnKSB7XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIGlmIChpbmRleCAhPSBsYXN0SW5kZXgpIHtcbiAgICAgIHZhciBvYmpWYWx1ZSA9IG5lc3RlZFtrZXldO1xuICAgICAgbmV3VmFsdWUgPSBjdXN0b21pemVyID8gY3VzdG9taXplcihvYmpWYWx1ZSwga2V5LCBuZXN0ZWQpIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbmV3VmFsdWUgPSBpc09iamVjdF8xKG9ialZhbHVlKVxuICAgICAgICAgID8gb2JqVmFsdWVcbiAgICAgICAgICA6IChfaXNJbmRleChwYXRoW2luZGV4ICsgMV0pID8gW10gOiB7fSk7XG4gICAgICB9XG4gICAgfVxuICAgIF9hc3NpZ25WYWx1ZShuZXN0ZWQsIGtleSwgbmV3VmFsdWUpO1xuICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbnZhciBfYmFzZVNldCA9IGJhc2VTZXQ7XG5cbi8qKlxuICogU2V0cyB0aGUgdmFsdWUgYXQgYHBhdGhgIG9mIGBvYmplY3RgLiBJZiBhIHBvcnRpb24gb2YgYHBhdGhgIGRvZXNuJ3QgZXhpc3QsXG4gKiBpdCdzIGNyZWF0ZWQuIEFycmF5cyBhcmUgY3JlYXRlZCBmb3IgbWlzc2luZyBpbmRleCBwcm9wZXJ0aWVzIHdoaWxlIG9iamVjdHNcbiAqIGFyZSBjcmVhdGVkIGZvciBhbGwgb3RoZXIgbWlzc2luZyBwcm9wZXJ0aWVzLiBVc2UgYF8uc2V0V2l0aGAgdG8gY3VzdG9taXplXG4gKiBgcGF0aGAgY3JlYXRpb24uXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjcuMFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9XSB9O1xuICpcbiAqIF8uc2V0KG9iamVjdCwgJ2FbMF0uYi5jJywgNCk7XG4gKiBjb25zb2xlLmxvZyhvYmplY3QuYVswXS5iLmMpO1xuICogLy8gPT4gNFxuICpcbiAqIF8uc2V0KG9iamVjdCwgWyd4JywgJzAnLCAneScsICd6J10sIDUpO1xuICogY29uc29sZS5sb2cob2JqZWN0LnhbMF0ueS56KTtcbiAqIC8vID0+IDVcbiAqL1xuZnVuY3Rpb24gc2V0KG9iamVjdCwgcGF0aCwgdmFsdWUpIHtcbiAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogX2Jhc2VTZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSk7XG59XG5cbnZhciBzZXRfMSA9IHNldDtcblxuLyoqXG4gKiBDb3BpZXMgdGhlIHZhbHVlcyBvZiBgc291cmNlYCB0byBgYXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXk9W11dIFRoZSBhcnJheSB0byBjb3B5IHZhbHVlcyB0by5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBjb3B5QXJyYXkoc291cmNlLCBhcnJheSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG5cbiAgYXJyYXkgfHwgKGFycmF5ID0gQXJyYXkobGVuZ3RoKSk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYXJyYXlbaW5kZXhdID0gc291cmNlW2luZGV4XTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbnZhciBfY29weUFycmF5ID0gY29weUFycmF5O1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b1BhdGgoJ2EuYi5jJyk7XG4gKiAvLyA9PiBbJ2EnLCAnYicsICdjJ11cbiAqXG4gKiBfLnRvUGF0aCgnYVswXS5iLmMnKTtcbiAqIC8vID0+IFsnYScsICcwJywgJ2InLCAnYyddXG4gKi9cbmZ1bmN0aW9uIHRvUGF0aCh2YWx1ZSkge1xuICBpZiAoaXNBcnJheV8xKHZhbHVlKSkge1xuICAgIHJldHVybiBfYXJyYXlNYXAodmFsdWUsIF90b0tleSk7XG4gIH1cbiAgcmV0dXJuIGlzU3ltYm9sXzEodmFsdWUpID8gW3ZhbHVlXSA6IF9jb3B5QXJyYXkoX3N0cmluZ1RvUGF0aCh0b1N0cmluZ18xKHZhbHVlKSkpO1xufVxuXG52YXIgdG9QYXRoXzEgPSB0b1BhdGg7XG5cbnZhciBkZWZpbmUkMiA9IHtcbiAgLy8gYWNjZXNzIGRhdGEgZmllbGRcbiAgZGF0YTogZnVuY3Rpb24gZGF0YShwYXJhbXMpIHtcbiAgICB2YXIgZGVmYXVsdHMgPSB7XG4gICAgICBmaWVsZDogJ2RhdGEnLFxuICAgICAgYmluZGluZ0V2ZW50OiAnZGF0YScsXG4gICAgICBhbGxvd0JpbmRpbmc6IGZhbHNlLFxuICAgICAgYWxsb3dTZXR0aW5nOiBmYWxzZSxcbiAgICAgIGFsbG93R2V0dGluZzogZmFsc2UsXG4gICAgICBzZXR0aW5nRXZlbnQ6ICdkYXRhJyxcbiAgICAgIHNldHRpbmdUcmlnZ2Vyc0V2ZW50OiBmYWxzZSxcbiAgICAgIHRyaWdnZXJGbk5hbWU6ICd0cmlnZ2VyJyxcbiAgICAgIGltbXV0YWJsZUtleXM6IHt9LFxuICAgICAgLy8ga2V5ID0+IHRydWUgaWYgaW1tdXRhYmxlXG4gICAgICB1cGRhdGVTdHlsZTogZmFsc2UsXG4gICAgICBiZWZvcmVHZXQ6IGZ1bmN0aW9uIGJlZm9yZUdldChzZWxmKSB7fSxcbiAgICAgIGJlZm9yZVNldDogZnVuY3Rpb24gYmVmb3JlU2V0KHNlbGYsIG9iaikge30sXG4gICAgICBvblNldDogZnVuY3Rpb24gb25TZXQoc2VsZikge30sXG4gICAgICBjYW5TZXQ6IGZ1bmN0aW9uIGNhblNldChzZWxmKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH07XG4gICAgcGFyYW1zID0gZXh0ZW5kKHt9LCBkZWZhdWx0cywgcGFyYW1zKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gZGF0YUltcGwobmFtZSwgdmFsdWUpIHtcbiAgICAgIHZhciBwID0gcGFyYW1zO1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgdmFyIHNlbGZJc0FycmF5TGlrZSA9IHNlbGYubGVuZ3RoICE9PSB1bmRlZmluZWQ7XG4gICAgICB2YXIgYWxsID0gc2VsZklzQXJyYXlMaWtlID8gc2VsZiA6IFtzZWxmXTsgLy8gcHV0IGluIGFycmF5IGlmIG5vdCBhcnJheS1saWtlXG4gICAgICB2YXIgc2luZ2xlID0gc2VsZklzQXJyYXlMaWtlID8gc2VsZlswXSA6IHNlbGY7XG5cbiAgICAgIC8vIC5kYXRhKCdmb28nLCAuLi4pXG4gICAgICBpZiAoc3RyaW5nKG5hbWUpKSB7XG4gICAgICAgIC8vIHNldCBvciBnZXQgcHJvcGVydHlcbiAgICAgICAgdmFyIGlzUGF0aExpa2UgPSBuYW1lLmluZGV4T2YoJy4nKSAhPT0gLTE7IC8vIHRoZXJlIG1pZ2h0IGJlIGEgbm9ybWFsIGZpZWxkIHdpdGggYSBkb3QgXG4gICAgICAgIHZhciBwYXRoID0gaXNQYXRoTGlrZSAmJiB0b1BhdGhfMShuYW1lKTtcblxuICAgICAgICAvLyAuZGF0YSgnZm9vJylcbiAgICAgICAgaWYgKHAuYWxsb3dHZXR0aW5nICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBnZXRcblxuICAgICAgICAgIHZhciByZXQ7XG4gICAgICAgICAgaWYgKHNpbmdsZSkge1xuICAgICAgICAgICAgcC5iZWZvcmVHZXQoc2luZ2xlKTtcblxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgaXQncyBwYXRoIGFuZCBhIGZpZWxkIHdpdGggdGhlIHNhbWUgbmFtZSBkb2Vzbid0IGV4aXN0XG4gICAgICAgICAgICBpZiAocGF0aCAmJiBzaW5nbGUuX3ByaXZhdGVbcC5maWVsZF1bbmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICByZXQgPSBnZXRfMShzaW5nbGUuX3ByaXZhdGVbcC5maWVsZF0sIHBhdGgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0ID0gc2luZ2xlLl9wcml2YXRlW3AuZmllbGRdW25hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmV0O1xuXG4gICAgICAgICAgLy8gLmRhdGEoJ2ZvbycsICdiYXInKVxuICAgICAgICB9IGVsc2UgaWYgKHAuYWxsb3dTZXR0aW5nICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBzZXRcbiAgICAgICAgICB2YXIgdmFsaWQgPSAhcC5pbW11dGFibGVLZXlzW25hbWVdO1xuICAgICAgICAgIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgdmFyIGNoYW5nZSA9IF9kZWZpbmVQcm9wZXJ0eSQxKHt9LCBuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICBwLmJlZm9yZVNldChzZWxmLCBjaGFuZ2UpO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBhbGwubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgIHZhciBlbGUgPSBhbGxbaV07XG4gICAgICAgICAgICAgIGlmIChwLmNhblNldChlbGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhdGggJiYgc2luZ2xlLl9wcml2YXRlW3AuZmllbGRdW25hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgIHNldF8xKGVsZS5fcHJpdmF0ZVtwLmZpZWxkXSwgcGF0aCwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBlbGUuX3ByaXZhdGVbcC5maWVsZF1bbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gdXBkYXRlIG1hcHBlcnMgaWYgYXNrZWRcbiAgICAgICAgICAgIGlmIChwLnVwZGF0ZVN0eWxlKSB7XG4gICAgICAgICAgICAgIHNlbGYudXBkYXRlU3R5bGUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY2FsbCBvblNldCBjYWxsYmFja1xuICAgICAgICAgICAgcC5vblNldChzZWxmKTtcbiAgICAgICAgICAgIGlmIChwLnNldHRpbmdUcmlnZ2Vyc0V2ZW50KSB7XG4gICAgICAgICAgICAgIHNlbGZbcC50cmlnZ2VyRm5OYW1lXShwLnNldHRpbmdFdmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gLmRhdGEoeyAnZm9vJzogJ2JhcicgfSlcbiAgICAgIH0gZWxzZSBpZiAocC5hbGxvd1NldHRpbmcgJiYgcGxhaW5PYmplY3QobmFtZSkpIHtcbiAgICAgICAgLy8gZXh0ZW5kXG4gICAgICAgIHZhciBvYmogPSBuYW1lO1xuICAgICAgICB2YXIgaywgdjtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgICAgICBwLmJlZm9yZVNldChzZWxmLCBvYmopO1xuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwga2V5cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICBrID0ga2V5c1tfaV07XG4gICAgICAgICAgdiA9IG9ialtrXTtcbiAgICAgICAgICB2YXIgX3ZhbGlkID0gIXAuaW1tdXRhYmxlS2V5c1trXTtcbiAgICAgICAgICBpZiAoX3ZhbGlkKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFsbC5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICB2YXIgX2VsZSA9IGFsbFtqXTtcbiAgICAgICAgICAgICAgaWYgKHAuY2FuU2V0KF9lbGUpKSB7XG4gICAgICAgICAgICAgICAgX2VsZS5fcHJpdmF0ZVtwLmZpZWxkXVtrXSA9IHY7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyB1cGRhdGUgbWFwcGVycyBpZiBhc2tlZFxuICAgICAgICBpZiAocC51cGRhdGVTdHlsZSkge1xuICAgICAgICAgIHNlbGYudXBkYXRlU3R5bGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNhbGwgb25TZXQgY2FsbGJhY2tcbiAgICAgICAgcC5vblNldChzZWxmKTtcbiAgICAgICAgaWYgKHAuc2V0dGluZ1RyaWdnZXJzRXZlbnQpIHtcbiAgICAgICAgICBzZWxmW3AudHJpZ2dlckZuTmFtZV0ocC5zZXR0aW5nRXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gLmRhdGEoZnVuY3Rpb24oKXsgLi4uIH0pXG4gICAgICB9IGVsc2UgaWYgKHAuYWxsb3dCaW5kaW5nICYmIGZuJDYobmFtZSkpIHtcbiAgICAgICAgLy8gYmluZCB0byBldmVudFxuICAgICAgICB2YXIgZm4gPSBuYW1lO1xuICAgICAgICBzZWxmLm9uKHAuYmluZGluZ0V2ZW50LCBmbik7XG5cbiAgICAgICAgLy8gLmRhdGEoKVxuICAgICAgfSBlbHNlIGlmIChwLmFsbG93R2V0dGluZyAmJiBuYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gZ2V0IHdob2xlIG9iamVjdFxuICAgICAgICB2YXIgX3JldDtcbiAgICAgICAgaWYgKHNpbmdsZSkge1xuICAgICAgICAgIHAuYmVmb3JlR2V0KHNpbmdsZSk7XG4gICAgICAgICAgX3JldCA9IHNpbmdsZS5fcHJpdmF0ZVtwLmZpZWxkXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3JldDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZWxmOyAvLyBtYWludGFpbiBjaGFpbmFiaWxpdHlcbiAgICB9OyAvLyBmdW5jdGlvblxuICB9LFxuXG4gIC8vIGRhdGFcblxuICAvLyByZW1vdmUgZGF0YSBmaWVsZFxuICByZW1vdmVEYXRhOiBmdW5jdGlvbiByZW1vdmVEYXRhKHBhcmFtcykge1xuICAgIHZhciBkZWZhdWx0cyA9IHtcbiAgICAgIGZpZWxkOiAnZGF0YScsXG4gICAgICBldmVudDogJ2RhdGEnLFxuICAgICAgdHJpZ2dlckZuTmFtZTogJ3RyaWdnZXInLFxuICAgICAgdHJpZ2dlckV2ZW50OiBmYWxzZSxcbiAgICAgIGltbXV0YWJsZUtleXM6IHt9IC8vIGtleSA9PiB0cnVlIGlmIGltbXV0YWJsZVxuICAgIH07XG5cbiAgICBwYXJhbXMgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBwYXJhbXMpO1xuICAgIHJldHVybiBmdW5jdGlvbiByZW1vdmVEYXRhSW1wbChuYW1lcykge1xuICAgICAgdmFyIHAgPSBwYXJhbXM7XG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICB2YXIgc2VsZklzQXJyYXlMaWtlID0gc2VsZi5sZW5ndGggIT09IHVuZGVmaW5lZDtcbiAgICAgIHZhciBhbGwgPSBzZWxmSXNBcnJheUxpa2UgPyBzZWxmIDogW3NlbGZdOyAvLyBwdXQgaW4gYXJyYXkgaWYgbm90IGFycmF5LWxpa2VcblxuICAgICAgLy8gLnJlbW92ZURhdGEoJ2ZvbyBiYXInKVxuICAgICAgaWYgKHN0cmluZyhuYW1lcykpIHtcbiAgICAgICAgLy8gdGhlbiBnZXQgdGhlIGxpc3Qgb2Yga2V5cywgYW5kIGRlbGV0ZSB0aGVtXG4gICAgICAgIHZhciBrZXlzID0gbmFtZXMuc3BsaXQoL1xccysvKTtcbiAgICAgICAgdmFyIGwgPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAvLyBkZWxldGUgZWFjaCBub24tZW1wdHkga2V5XG4gICAgICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICAgICAgaWYgKGVtcHR5U3RyaW5nKGtleSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgdmFsaWQgPSAhcC5pbW11dGFibGVLZXlzW2tleV07IC8vIG5vdCB2YWxpZCBpZiBpbW11dGFibGVcbiAgICAgICAgICBpZiAodmFsaWQpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGlfYSA9IDAsIGxfYSA9IGFsbC5sZW5ndGg7IGlfYSA8IGxfYTsgaV9hKyspIHtcbiAgICAgICAgICAgICAgYWxsW2lfYV0uX3ByaXZhdGVbcC5maWVsZF1ba2V5XSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAudHJpZ2dlckV2ZW50KSB7XG4gICAgICAgICAgc2VsZltwLnRyaWdnZXJGbk5hbWVdKHAuZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gLnJlbW92ZURhdGEoKVxuICAgICAgfSBlbHNlIGlmIChuYW1lcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIHRoZW4gZGVsZXRlIGFsbCBrZXlzXG5cbiAgICAgICAgZm9yICh2YXIgX2lfYSA9IDAsIF9sX2EgPSBhbGwubGVuZ3RoOyBfaV9hIDwgX2xfYTsgX2lfYSsrKSB7XG4gICAgICAgICAgdmFyIF9wcml2YXRlRmllbGRzID0gYWxsW19pX2FdLl9wcml2YXRlW3AuZmllbGRdO1xuICAgICAgICAgIHZhciBfa2V5cyA9IE9iamVjdC5rZXlzKF9wcml2YXRlRmllbGRzKTtcbiAgICAgICAgICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgPCBfa2V5cy5sZW5ndGg7IF9pMisrKSB7XG4gICAgICAgICAgICB2YXIgX2tleSA9IF9rZXlzW19pMl07XG4gICAgICAgICAgICB2YXIgdmFsaWRLZXlUb0RlbGV0ZSA9ICFwLmltbXV0YWJsZUtleXNbX2tleV07XG4gICAgICAgICAgICBpZiAodmFsaWRLZXlUb0RlbGV0ZSkge1xuICAgICAgICAgICAgICBfcHJpdmF0ZUZpZWxkc1tfa2V5XSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAudHJpZ2dlckV2ZW50KSB7XG4gICAgICAgICAgc2VsZltwLnRyaWdnZXJGbk5hbWVdKHAuZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc2VsZjsgLy8gbWFpbnRhaW4gY2hhaW5pbmdcbiAgICB9OyAvLyBmdW5jdGlvblxuICB9IC8vIHJlbW92ZURhdGFcbn07IC8vIGRlZmluZVxuXG52YXIgZGVmaW5lJDEgPSB7XG4gIGV2ZW50QWxpYXNlc09uOiBmdW5jdGlvbiBldmVudEFsaWFzZXNPbihwcm90bykge1xuICAgIHZhciBwID0gcHJvdG87XG4gICAgcC5hZGRMaXN0ZW5lciA9IHAubGlzdGVuID0gcC5iaW5kID0gcC5vbjtcbiAgICBwLnVubGlzdGVuID0gcC51bmJpbmQgPSBwLm9mZiA9IHAucmVtb3ZlTGlzdGVuZXI7XG4gICAgcC50cmlnZ2VyID0gcC5lbWl0O1xuXG4gICAgLy8gdGhpcyBpcyBqdXN0IGEgd3JhcHBlciBhbGlhcyBvZiAub24oKVxuICAgIHAucG9uID0gcC5wcm9taXNlT24gPSBmdW5jdGlvbiAoZXZlbnRzLCBzZWxlY3Rvcikge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICB2YXIgY2FsbGJhY2sgPSBmdW5jdGlvbiBjYWxsYmFjayhlKSB7XG4gICAgICAgICAgc2VsZi5vZmYuYXBwbHkoc2VsZiwgb2ZmQXJncyk7XG4gICAgICAgICAgcmVzb2x2ZShlKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9uQXJncyA9IGFyZ3MuY29uY2F0KFtjYWxsYmFja10pO1xuICAgICAgICB2YXIgb2ZmQXJncyA9IG9uQXJncy5jb25jYXQoW10pO1xuICAgICAgICBzZWxmLm9uLmFwcGx5KHNlbGYsIG9uQXJncyk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG59OyAvLyBkZWZpbmVcblxuLy8gdXNlIHRoaXMgbW9kdWxlIHRvIGNoZXJyeSBwaWNrIGZ1bmN0aW9ucyBpbnRvIHlvdXIgcHJvdG90eXBlXG52YXIgZGVmaW5lID0ge307XG5bZGVmaW5lJDMsIGRlZmluZSQyLCBkZWZpbmUkMV0uZm9yRWFjaChmdW5jdGlvbiAobSkge1xuICBleHRlbmQoZGVmaW5lLCBtKTtcbn0pO1xuXG52YXIgZWxlc2ZuJGkgPSB7XG4gIGFuaW1hdGU6IGRlZmluZS5hbmltYXRlKCksXG4gIGFuaW1hdGlvbjogZGVmaW5lLmFuaW1hdGlvbigpLFxuICBhbmltYXRlZDogZGVmaW5lLmFuaW1hdGVkKCksXG4gIGNsZWFyUXVldWU6IGRlZmluZS5jbGVhclF1ZXVlKCksXG4gIGRlbGF5OiBkZWZpbmUuZGVsYXkoKSxcbiAgZGVsYXlBbmltYXRpb246IGRlZmluZS5kZWxheUFuaW1hdGlvbigpLFxuICBzdG9wOiBkZWZpbmUuc3RvcCgpXG59O1xuXG52YXIgZWxlc2ZuJGggPSB7XG4gIGNsYXNzZXM6IGZ1bmN0aW9uIGNsYXNzZXMoX2NsYXNzZXMpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgaWYgKF9jbGFzc2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciByZXQgPSBbXTtcbiAgICAgIHNlbGZbMF0uX3ByaXZhdGUuY2xhc3Nlcy5mb3JFYWNoKGZ1bmN0aW9uIChjbHMpIHtcbiAgICAgICAgcmV0dXJuIHJldC5wdXNoKGNscyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSBlbHNlIGlmICghYXJyYXkoX2NsYXNzZXMpKSB7XG4gICAgICAvLyBleHRyYWN0IGNsYXNzZXMgZnJvbSBzdHJpbmdcbiAgICAgIF9jbGFzc2VzID0gKF9jbGFzc2VzIHx8ICcnKS5tYXRjaCgvXFxTKy9nKSB8fCBbXTtcbiAgICB9XG4gICAgdmFyIGNoYW5nZWQgPSBbXTtcbiAgICB2YXIgY2xhc3Nlc1NldCA9IG5ldyBTZXQkMShfY2xhc3Nlcyk7XG5cbiAgICAvLyBjaGVjayBhbmQgdXBkYXRlIGVhY2ggZWxlXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBzZWxmLmxlbmd0aDsgaisrKSB7XG4gICAgICB2YXIgZWxlID0gc2VsZltqXTtcbiAgICAgIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgICAgIHZhciBlbGVDbGFzc2VzID0gX3AuY2xhc3NlcztcbiAgICAgIHZhciBjaGFuZ2VkRWxlID0gZmFsc2U7XG5cbiAgICAgIC8vIGNoZWNrIGlmIGVsZSBoYXMgYWxsIG9mIHRoZSBwYXNzZWQgY2xhc3Nlc1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBfY2xhc3Nlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2xzID0gX2NsYXNzZXNbaV07XG4gICAgICAgIHZhciBlbGVIYXNDbGFzcyA9IGVsZUNsYXNzZXMuaGFzKGNscyk7XG4gICAgICAgIGlmICghZWxlSGFzQ2xhc3MpIHtcbiAgICAgICAgICBjaGFuZ2VkRWxlID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBjaGVjayBpZiBlbGUgaGFzIGNsYXNzZXMgb3V0c2lkZSBvZiB0aG9zZSBwYXNzZWRcbiAgICAgIGlmICghY2hhbmdlZEVsZSkge1xuICAgICAgICBjaGFuZ2VkRWxlID0gZWxlQ2xhc3Nlcy5zaXplICE9PSBfY2xhc3Nlcy5sZW5ndGg7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlZEVsZSkge1xuICAgICAgICBfcC5jbGFzc2VzID0gY2xhc3Nlc1NldDtcbiAgICAgICAgY2hhbmdlZC5wdXNoKGVsZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdHJpZ2dlciB1cGRhdGUgc3R5bGUgb24gdGhvc2UgZWxlcyB0aGF0IGhhZCBjbGFzcyBjaGFuZ2VzXG4gICAgaWYgKGNoYW5nZWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zcGF3bihjaGFuZ2VkKS51cGRhdGVTdHlsZSgpLmVtaXQoJ2NsYXNzJyk7XG4gICAgfVxuICAgIHJldHVybiBzZWxmO1xuICB9LFxuICBhZGRDbGFzczogZnVuY3Rpb24gYWRkQ2xhc3MoY2xhc3Nlcykge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZUNsYXNzKGNsYXNzZXMsIHRydWUpO1xuICB9LFxuICBoYXNDbGFzczogZnVuY3Rpb24gaGFzQ2xhc3MoY2xhc3NOYW1lKSB7XG4gICAgdmFyIGVsZSA9IHRoaXNbMF07XG4gICAgcmV0dXJuIGVsZSAhPSBudWxsICYmIGVsZS5fcHJpdmF0ZS5jbGFzc2VzLmhhcyhjbGFzc05hbWUpO1xuICB9LFxuICB0b2dnbGVDbGFzczogZnVuY3Rpb24gdG9nZ2xlQ2xhc3MoY2xhc3NlcywgdG9nZ2xlKSB7XG4gICAgaWYgKCFhcnJheShjbGFzc2VzKSkge1xuICAgICAgLy8gZXh0cmFjdCBjbGFzc2VzIGZyb20gc3RyaW5nXG4gICAgICBjbGFzc2VzID0gY2xhc3Nlcy5tYXRjaCgvXFxTKy9nKSB8fCBbXTtcbiAgICB9XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciB0b2dnbGVVbmRlZmQgPSB0b2dnbGUgPT09IHVuZGVmaW5lZDtcbiAgICB2YXIgY2hhbmdlZCA9IFtdOyAvLyBlbGVzIHdobyBoYWQgY2xhc3NlcyBjaGFuZ2VkXG5cbiAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBzZWxmLmxlbmd0aDsgaSA8IGlsOyBpKyspIHtcbiAgICAgIHZhciBlbGUgPSBzZWxmW2ldO1xuICAgICAgdmFyIGVsZUNsYXNzZXMgPSBlbGUuX3ByaXZhdGUuY2xhc3NlcztcbiAgICAgIHZhciBjaGFuZ2VkRWxlID0gZmFsc2U7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNsYXNzZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgdmFyIGNscyA9IGNsYXNzZXNbal07XG4gICAgICAgIHZhciBoYXNDbGFzcyA9IGVsZUNsYXNzZXMuaGFzKGNscyk7XG4gICAgICAgIHZhciBjaGFuZ2VkTm93ID0gZmFsc2U7XG4gICAgICAgIGlmICh0b2dnbGUgfHwgdG9nZ2xlVW5kZWZkICYmICFoYXNDbGFzcykge1xuICAgICAgICAgIGVsZUNsYXNzZXMuYWRkKGNscyk7XG4gICAgICAgICAgY2hhbmdlZE5vdyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRvZ2dsZSB8fCB0b2dnbGVVbmRlZmQgJiYgaGFzQ2xhc3MpIHtcbiAgICAgICAgICBlbGVDbGFzc2VzW1wiZGVsZXRlXCJdKGNscyk7XG4gICAgICAgICAgY2hhbmdlZE5vdyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjaGFuZ2VkRWxlICYmIGNoYW5nZWROb3cpIHtcbiAgICAgICAgICBjaGFuZ2VkLnB1c2goZWxlKTtcbiAgICAgICAgICBjaGFuZ2VkRWxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBmb3IgaiBjbGFzc2VzXG4gICAgfSAvLyBmb3IgaSBlbGVzXG5cbiAgICAvLyB0cmlnZ2VyIHVwZGF0ZSBzdHlsZSBvbiB0aG9zZSBlbGVzIHRoYXQgaGFkIGNsYXNzIGNoYW5nZXNcbiAgICBpZiAoY2hhbmdlZC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNwYXduKGNoYW5nZWQpLnVwZGF0ZVN0eWxlKCkuZW1pdCgnY2xhc3MnKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlbGY7XG4gIH0sXG4gIHJlbW92ZUNsYXNzOiBmdW5jdGlvbiByZW1vdmVDbGFzcyhjbGFzc2VzKSB7XG4gICAgcmV0dXJuIHRoaXMudG9nZ2xlQ2xhc3MoY2xhc3NlcywgZmFsc2UpO1xuICB9LFxuICBmbGFzaENsYXNzOiBmdW5jdGlvbiBmbGFzaENsYXNzKGNsYXNzZXMsIGR1cmF0aW9uKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmIChkdXJhdGlvbiA9PSBudWxsKSB7XG4gICAgICBkdXJhdGlvbiA9IDI1MDtcbiAgICB9IGVsc2UgaWYgKGR1cmF0aW9uID09PSAwKSB7XG4gICAgICByZXR1cm4gc2VsZjsgLy8gbm90aGluZyB0byBkbyByZWFsbHlcbiAgICB9XG5cbiAgICBzZWxmLmFkZENsYXNzKGNsYXNzZXMpO1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgc2VsZi5yZW1vdmVDbGFzcyhjbGFzc2VzKTtcbiAgICB9LCBkdXJhdGlvbik7XG4gICAgcmV0dXJuIHNlbGY7XG4gIH1cbn07XG5lbGVzZm4kaC5jbGFzc05hbWUgPSBlbGVzZm4kaC5jbGFzc05hbWVzID0gZWxlc2ZuJGguY2xhc3NlcztcblxuLy8gdG9rZW5zIGluIHRoZSBxdWVyeSBsYW5ndWFnZVxudmFyIHRva2VucyA9IHtcbiAgbWV0YUNoYXI6ICdbXFxcXCFcXFxcXCJcXFxcI1xcXFwkXFxcXCVcXFxcJlxcXFxcXCdcXFxcKFxcXFwpXFxcXCpcXFxcK1xcXFwsXFxcXC5cXFxcL1xcXFw6XFxcXDtcXFxcPFxcXFw9XFxcXD5cXFxcP1xcXFxAXFxcXFtcXFxcXVxcXFxeXFxcXGBcXFxce1xcXFx8XFxcXH1cXFxcfl0nLFxuICAvLyBjaGFycyB3ZSBuZWVkIHRvIGVzY2FwZSBpbiBsZXQgbmFtZXMsIGV0Y1xuICBjb21wYXJhdG9yT3A6ICc9fFxcXFwhPXw+fD49fDx8PD18XFxcXCQ9fFxcXFxePXxcXFxcKj0nLFxuICAvLyBiaW5hcnkgY29tcGFyaXNvbiBvcCAodXNlZCBpbiBkYXRhIHNlbGVjdG9ycylcbiAgYm9vbE9wOiAnXFxcXD98XFxcXCF8XFxcXF4nLFxuICAvLyBib29sZWFuICh1bmFyeSkgb3BlcmF0b3JzICh1c2VkIGluIGRhdGEgc2VsZWN0b3JzKVxuICBzdHJpbmc6ICdcIig/OlxcXFxcXFxcXCJ8W15cIl0pKlwiJyArICd8JyArIFwiJyg/OlxcXFxcXFxcJ3xbXiddKSonXCIsXG4gIC8vIHN0cmluZyBsaXRlcmFscyAodXNlZCBpbiBkYXRhIHNlbGVjdG9ycykgLS0gZG91YmxlcXVvdGVzIHwgc2luZ2xlcXVvdGVzXG4gIG51bWJlcjogbnVtYmVyLFxuICAvLyBudW1iZXIgbGl0ZXJhbCAodXNlZCBpbiBkYXRhIHNlbGVjdG9ycykgLS0tIGUuZy4gMC4xMjM0LCAxMjM0LCAxMmUxMjNcbiAgbWV0YTogJ2RlZ3JlZXxpbmRlZ3JlZXxvdXRkZWdyZWUnLFxuICAvLyBhbGxvd2VkIG1ldGFkYXRhIGZpZWxkcyAoaS5lLiBhbGxvd2VkIGZ1bmN0aW9ucyB0byB1c2UgZnJvbSBDb2xsZWN0aW9uKVxuICBzZXBhcmF0b3I6ICdcXFxccyosXFxcXHMqJyxcbiAgLy8gcXVlcmllcyBhcmUgc2VwYXJhdGVkIGJ5IGNvbW1hcywgZS5nLiBlZGdlW2ZvbyA9ICdiYXInXSwgbm9kZS5zb21lQ2xhc3NcbiAgZGVzY2VuZGFudDogJ1xcXFxzKycsXG4gIGNoaWxkOiAnXFxcXHMrPlxcXFxzKycsXG4gIHN1YmplY3Q6ICdcXFxcJCcsXG4gIGdyb3VwOiAnbm9kZXxlZGdlfFxcXFwqJyxcbiAgZGlyZWN0ZWRFZGdlOiAnXFxcXHMrLT5cXFxccysnLFxuICB1bmRpcmVjdGVkRWRnZTogJ1xcXFxzKzwtPlxcXFxzKydcbn07XG50b2tlbnMudmFyaWFibGUgPSAnKD86W1xcXFx3LS5dfCg/OlxcXFxcXFxcJyArIHRva2Vucy5tZXRhQ2hhciArICcpKSsnOyAvLyBhIHZhcmlhYmxlIG5hbWUgY2FuIGhhdmUgbGV0dGVycywgbnVtYmVycywgZGFzaGVzLCBhbmQgcGVyaW9kc1xudG9rZW5zLmNsYXNzTmFtZSA9ICcoPzpbXFxcXHctXXwoPzpcXFxcXFxcXCcgKyB0b2tlbnMubWV0YUNoYXIgKyAnKSkrJzsgLy8gYSBjbGFzcyBuYW1lIGhhcyB0aGUgc2FtZSBydWxlcyBhcyBhIHZhcmlhYmxlIGV4Y2VwdCBpdCBjYW4ndCBoYXZlIGEgJy4nIGluIHRoZSBuYW1lXG50b2tlbnMudmFsdWUgPSB0b2tlbnMuc3RyaW5nICsgJ3wnICsgdG9rZW5zLm51bWJlcjsgLy8gYSB2YWx1ZSBsaXRlcmFsLCBlaXRoZXIgYSBzdHJpbmcgb3IgbnVtYmVyXG50b2tlbnMuaWQgPSB0b2tlbnMudmFyaWFibGU7IC8vIGFuIGVsZW1lbnQgaWQgKGZvbGxvd3MgdmFyaWFibGUgY29udmVudGlvbnMpXG5cbihmdW5jdGlvbiAoKSB7XG4gIHZhciBvcHMsIG9wLCBpO1xuXG4gIC8vIGFkZCBAIHZhcmlhbnRzIHRvIGNvbXBhcmF0b3JPcFxuICBvcHMgPSB0b2tlbnMuY29tcGFyYXRvck9wLnNwbGl0KCd8Jyk7XG4gIGZvciAoaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHtcbiAgICBvcCA9IG9wc1tpXTtcbiAgICB0b2tlbnMuY29tcGFyYXRvck9wICs9ICd8QCcgKyBvcDtcbiAgfVxuXG4gIC8vIGFkZCAhIHZhcmlhbnRzIHRvIGNvbXBhcmF0b3JPcFxuICBvcHMgPSB0b2tlbnMuY29tcGFyYXRvck9wLnNwbGl0KCd8Jyk7XG4gIGZvciAoaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHtcbiAgICBvcCA9IG9wc1tpXTtcbiAgICBpZiAob3AuaW5kZXhPZignIScpID49IDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH0gLy8gc2tpcCBvcHMgdGhhdCBleHBsaWNpdGx5IGNvbnRhaW4gIVxuICAgIGlmIChvcCA9PT0gJz0nKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9IC8vIHNraXAgPSBiL2MgIT0gaXMgZXhwbGljaXRseSBkZWZpbmVkXG5cbiAgICB0b2tlbnMuY29tcGFyYXRvck9wICs9ICd8XFxcXCEnICsgb3A7XG4gIH1cbn0pKCk7XG5cbi8qKlxuICogTWFrZSBhIG5ldyBxdWVyeSBvYmplY3RcbiAqXG4gKiBAcHJvcCB0eXBlIHtUeXBlfSBUaGUgdHlwZSBlbnVtIChpbnQpIG9mIHRoZSBxdWVyeVxuICogQHByb3AgY2hlY2tzIExpc3Qgb2YgY2hlY2tzIHRvIG1ha2UgYWdhaW5zdCBhbiBlbGUgdG8gdGVzdCBmb3IgYSBtYXRjaFxuICovXG52YXIgbmV3UXVlcnkgPSBmdW5jdGlvbiBuZXdRdWVyeSgpIHtcbiAgcmV0dXJuIHtcbiAgICBjaGVja3M6IFtdXG4gIH07XG59O1xuXG4vKipcbiAqIEEgY2hlY2sgdHlwZSBlbnVtLWxpa2Ugb2JqZWN0LiAgVXNlcyBpbnRlZ2VyIHZhbHVlcyBmb3IgZmFzdCBtYXRjaCgpIGxvb2t1cC5cbiAqIFRoZSBvcmRlcmluZyBkb2VzIG5vdCBtYXR0ZXIgYXMgbG9uZyBhcyB0aGUgaW50cyBhcmUgdW5pcXVlLlxuICovXG52YXIgVHlwZSA9IHtcbiAgLyoqIEUuZy4gbm9kZSAqL1xuICBHUk9VUDogMCxcbiAgLyoqIEEgY29sbGVjdGlvbiBvZiBlbGVtZW50cyAqL1xuICBDT0xMRUNUSU9OOiAxLFxuICAvKiogQSBmaWx0ZXIoZWxlKSBmdW5jdGlvbiAqL1xuICBGSUxURVI6IDIsXG4gIC8qKiBFLmcuIFtmb28gPiAxXSAqL1xuICBEQVRBX0NPTVBBUkU6IDMsXG4gIC8qKiBFLmcuIFtmb29dICovXG4gIERBVEFfRVhJU1Q6IDQsXG4gIC8qKiBFLmcuIFs/Zm9vXSAqL1xuICBEQVRBX0JPT0w6IDUsXG4gIC8qKiBFLmcuIFtbZGVncmVlID4gMl1dICovXG4gIE1FVEFfQ09NUEFSRTogNixcbiAgLyoqIEUuZy4gOnNlbGVjdGVkICovXG4gIFNUQVRFOiA3LFxuICAvKiogRS5nLiAjZm9vICovXG4gIElEOiA4LFxuICAvKiogRS5nLiAuZm9vICovXG4gIENMQVNTOiA5LFxuICAvKiogRS5nLiAjZm9vIDwtPiAjYmFyICovXG4gIFVORElSRUNURURfRURHRTogMTAsXG4gIC8qKiBFLmcuICNmb28gLT4gI2JhciAqL1xuICBESVJFQ1RFRF9FREdFOiAxMSxcbiAgLyoqIEUuZy4gJCNmb28gLT4gI2JhciAqL1xuICBOT0RFX1NPVVJDRTogMTIsXG4gIC8qKiBFLmcuICNmb28gLT4gJCNiYXIgKi9cbiAgTk9ERV9UQVJHRVQ6IDEzLFxuICAvKiogRS5nLiAkI2ZvbyA8LT4gI2JhciAqL1xuICBOT0RFX05FSUdIQk9SOiAxNCxcbiAgLyoqIEUuZy4gI2ZvbyA+ICNiYXIgKi9cbiAgQ0hJTEQ6IDE1LFxuICAvKiogRS5nLiAjZm9vICNiYXIgKi9cbiAgREVTQ0VOREFOVDogMTYsXG4gIC8qKiBFLmcuICQjZm9vID4gI2JhciAqL1xuICBQQVJFTlQ6IDE3LFxuICAvKiogRS5nLiAkI2ZvbyAjYmFyICovXG4gIEFOQ0VTVE9SOiAxOCxcbiAgLyoqIEUuZy4gI2ZvbyA+ICRiYXIgPiAjYmF6ICovXG4gIENPTVBPVU5EX1NQTElUOiAxOSxcbiAgLyoqIEFsd2F5cyBtYXRjaGVzLCB1c2VmdWwgcGxhY2Vob2xkZXIgZm9yIHN1YmplY3QgaW4gYENPTVBPVU5EX1NQTElUYCAqL1xuICBUUlVFOiAyMFxufTtcblxudmFyIHN0YXRlU2VsZWN0b3JzID0gW3tcbiAgc2VsZWN0b3I6ICc6c2VsZWN0ZWQnLFxuICBtYXRjaGVzOiBmdW5jdGlvbiBtYXRjaGVzKGVsZSkge1xuICAgIHJldHVybiBlbGUuc2VsZWN0ZWQoKTtcbiAgfVxufSwge1xuICBzZWxlY3RvcjogJzp1bnNlbGVjdGVkJyxcbiAgbWF0Y2hlczogZnVuY3Rpb24gbWF0Y2hlcyhlbGUpIHtcbiAgICByZXR1cm4gIWVsZS5zZWxlY3RlZCgpO1xuICB9XG59LCB7XG4gIHNlbGVjdG9yOiAnOnNlbGVjdGFibGUnLFxuICBtYXRjaGVzOiBmdW5jdGlvbiBtYXRjaGVzKGVsZSkge1xuICAgIHJldHVybiBlbGUuc2VsZWN0YWJsZSgpO1xuICB9XG59LCB7XG4gIHNlbGVjdG9yOiAnOnVuc2VsZWN0YWJsZScsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuICFlbGUuc2VsZWN0YWJsZSgpO1xuICB9XG59LCB7XG4gIHNlbGVjdG9yOiAnOmxvY2tlZCcsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5sb2NrZWQoKTtcbiAgfVxufSwge1xuICBzZWxlY3RvcjogJzp1bmxvY2tlZCcsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuICFlbGUubG9ja2VkKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6dmlzaWJsZScsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS52aXNpYmxlKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6aGlkZGVuJyxcbiAgbWF0Y2hlczogZnVuY3Rpb24gbWF0Y2hlcyhlbGUpIHtcbiAgICByZXR1cm4gIWVsZS52aXNpYmxlKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6dHJhbnNwYXJlbnQnLFxuICBtYXRjaGVzOiBmdW5jdGlvbiBtYXRjaGVzKGVsZSkge1xuICAgIHJldHVybiBlbGUudHJhbnNwYXJlbnQoKTtcbiAgfVxufSwge1xuICBzZWxlY3RvcjogJzpncmFiYmVkJyxcbiAgbWF0Y2hlczogZnVuY3Rpb24gbWF0Y2hlcyhlbGUpIHtcbiAgICByZXR1cm4gZWxlLmdyYWJiZWQoKTtcbiAgfVxufSwge1xuICBzZWxlY3RvcjogJzpmcmVlJyxcbiAgbWF0Y2hlczogZnVuY3Rpb24gbWF0Y2hlcyhlbGUpIHtcbiAgICByZXR1cm4gIWVsZS5ncmFiYmVkKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6cmVtb3ZlZCcsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5yZW1vdmVkKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6aW5zaWRlJyxcbiAgbWF0Y2hlczogZnVuY3Rpb24gbWF0Y2hlcyhlbGUpIHtcbiAgICByZXR1cm4gIWVsZS5yZW1vdmVkKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6Z3JhYmJhYmxlJyxcbiAgbWF0Y2hlczogZnVuY3Rpb24gbWF0Y2hlcyhlbGUpIHtcbiAgICByZXR1cm4gZWxlLmdyYWJiYWJsZSgpO1xuICB9XG59LCB7XG4gIHNlbGVjdG9yOiAnOnVuZ3JhYmJhYmxlJyxcbiAgbWF0Y2hlczogZnVuY3Rpb24gbWF0Y2hlcyhlbGUpIHtcbiAgICByZXR1cm4gIWVsZS5ncmFiYmFibGUoKTtcbiAgfVxufSwge1xuICBzZWxlY3RvcjogJzphbmltYXRlZCcsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5hbmltYXRlZCgpO1xuICB9XG59LCB7XG4gIHNlbGVjdG9yOiAnOnVuYW5pbWF0ZWQnLFxuICBtYXRjaGVzOiBmdW5jdGlvbiBtYXRjaGVzKGVsZSkge1xuICAgIHJldHVybiAhZWxlLmFuaW1hdGVkKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6cGFyZW50JyxcbiAgbWF0Y2hlczogZnVuY3Rpb24gbWF0Y2hlcyhlbGUpIHtcbiAgICByZXR1cm4gZWxlLmlzUGFyZW50KCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6Y2hpbGRsZXNzJyxcbiAgbWF0Y2hlczogZnVuY3Rpb24gbWF0Y2hlcyhlbGUpIHtcbiAgICByZXR1cm4gZWxlLmlzQ2hpbGRsZXNzKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6Y2hpbGQnLFxuICBtYXRjaGVzOiBmdW5jdGlvbiBtYXRjaGVzKGVsZSkge1xuICAgIHJldHVybiBlbGUuaXNDaGlsZCgpO1xuICB9XG59LCB7XG4gIHNlbGVjdG9yOiAnOm9ycGhhbicsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5pc09ycGhhbigpO1xuICB9XG59LCB7XG4gIHNlbGVjdG9yOiAnOm5vbm9ycGhhbicsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5pc0NoaWxkKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6Y29tcG91bmQnLFxuICBtYXRjaGVzOiBmdW5jdGlvbiBtYXRjaGVzKGVsZSkge1xuICAgIGlmIChlbGUuaXNOb2RlKCkpIHtcbiAgICAgIHJldHVybiBlbGUuaXNQYXJlbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVsZS5zb3VyY2UoKS5pc1BhcmVudCgpIHx8IGVsZS50YXJnZXQoKS5pc1BhcmVudCgpO1xuICAgIH1cbiAgfVxufSwge1xuICBzZWxlY3RvcjogJzpsb29wJyxcbiAgbWF0Y2hlczogZnVuY3Rpb24gbWF0Y2hlcyhlbGUpIHtcbiAgICByZXR1cm4gZWxlLmlzTG9vcCgpO1xuICB9XG59LCB7XG4gIHNlbGVjdG9yOiAnOnNpbXBsZScsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5pc1NpbXBsZSgpO1xuICB9XG59LCB7XG4gIHNlbGVjdG9yOiAnOmFjdGl2ZScsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5hY3RpdmUoKTtcbiAgfVxufSwge1xuICBzZWxlY3RvcjogJzppbmFjdGl2ZScsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuICFlbGUuYWN0aXZlKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6YmFja2dyb3VuZGluZycsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5iYWNrZ3JvdW5kaW5nKCk7XG4gIH1cbn0sIHtcbiAgc2VsZWN0b3I6ICc6bm9uYmFja2dyb3VuZGluZycsXG4gIG1hdGNoZXM6IGZ1bmN0aW9uIG1hdGNoZXMoZWxlKSB7XG4gICAgcmV0dXJuICFlbGUuYmFja2dyb3VuZGluZygpO1xuICB9XG59XS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gIC8vIG4uYi4gc2VsZWN0b3JzIHRoYXQgYXJlIHN0YXJ0aW5nIHN1YnN0cmluZ3Mgb2Ygb3RoZXJzIG11c3QgaGF2ZSB0aGUgbG9uZ2VyIG9uZXMgZmlyc3RcbiAgcmV0dXJuIGRlc2NlbmRpbmcoYS5zZWxlY3RvciwgYi5zZWxlY3Rvcik7XG59KTtcbnZhciBsb29rdXAgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzZWxUb0ZuID0ge307XG4gIHZhciBzO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YXRlU2VsZWN0b3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgcyA9IHN0YXRlU2VsZWN0b3JzW2ldO1xuICAgIHNlbFRvRm5bcy5zZWxlY3Rvcl0gPSBzLm1hdGNoZXM7XG4gIH1cbiAgcmV0dXJuIHNlbFRvRm47XG59KCk7XG52YXIgc3RhdGVTZWxlY3Rvck1hdGNoZXMgPSBmdW5jdGlvbiBzdGF0ZVNlbGVjdG9yTWF0Y2hlcyhzZWwsIGVsZSkge1xuICByZXR1cm4gbG9va3VwW3NlbF0oZWxlKTtcbn07XG52YXIgc3RhdGVTZWxlY3RvclJlZ2V4ID0gJygnICsgc3RhdGVTZWxlY3RvcnMubWFwKGZ1bmN0aW9uIChzKSB7XG4gIHJldHVybiBzLnNlbGVjdG9yO1xufSkuam9pbignfCcpICsgJyknO1xuXG4vLyB3aGVuIGEgdG9rZW4gbGlrZSBhIHZhcmlhYmxlIGhhcyBlc2NhcGVkIG1ldGEgY2hhcmFjdGVycywgd2UgbmVlZCB0byBjbGVhbiB0aGUgYmFja3NsYXNoZXMgb3V0XG4vLyBzbyB0aGF0IHZhbHVlcyBnZXQgY29tcGFyZWQgcHJvcGVybHkgaW4gU2VsZWN0b3IuZmlsdGVyKClcbnZhciBjbGVhbk1ldGFDaGFycyA9IGZ1bmN0aW9uIGNsZWFuTWV0YUNoYXJzKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXFxcXFwoJyArIHRva2Vucy5tZXRhQ2hhciArICcpJywgJ2cnKSwgZnVuY3Rpb24gKG1hdGNoLCAkMSkge1xuICAgIHJldHVybiAkMTtcbiAgfSk7XG59O1xudmFyIHJlcGxhY2VMYXN0UXVlcnkgPSBmdW5jdGlvbiByZXBsYWNlTGFzdFF1ZXJ5KHNlbGVjdG9yLCBleGFtaW5pbmdRdWVyeSwgcmVwbGFjZW1lbnRRdWVyeSkge1xuICBzZWxlY3RvcltzZWxlY3Rvci5sZW5ndGggLSAxXSA9IHJlcGxhY2VtZW50UXVlcnk7XG59O1xuXG4vLyBOT1RFOiBhZGQgbmV3IGV4cHJlc3Npb24gc3ludGF4IGhlcmUgdG8gaGF2ZSBpdCByZWNvZ25pc2VkIGJ5IHRoZSBwYXJzZXI7XG4vLyAtIGEgcXVlcnkgY29udGFpbnMgYWxsIGFkamFjZW50IChpLmUuIG5vIHNlcGFyYXRvciBpbiBiZXR3ZWVuKSBleHByZXNzaW9ucztcbi8vIC0gdGhlIGN1cnJlbnQgcXVlcnkgaXMgc3RvcmVkIGluIHNlbGVjdG9yW2ldXG4vLyAtIHlvdSBuZWVkIHRvIGNoZWNrIHRoZSBxdWVyeSBvYmplY3RzIGluIG1hdGNoKCkgZm9yIGl0IGFjdHVhbGx5IGZpbHRlciBwcm9wZXJseSwgYnV0IHRoYXQncyBwcmV0dHkgc3RyYWlnaHQgZm9yd2FyZFxudmFyIGV4cHJzID0gW3tcbiAgbmFtZTogJ2dyb3VwJyxcbiAgLy8ganVzdCB1c2VkIGZvciBpZGVudGlmeWluZyB3aGVuIGRlYnVnZ2luZ1xuICBxdWVyeTogdHJ1ZSxcbiAgcmVnZXg6ICcoJyArIHRva2Vucy5ncm91cCArICcpJyxcbiAgcG9wdWxhdGU6IGZ1bmN0aW9uIHBvcHVsYXRlKHNlbGVjdG9yLCBxdWVyeSwgX3JlZikge1xuICAgIHZhciBfcmVmMiA9IF9zbGljZWRUb0FycmF5KF9yZWYsIDEpLFxuICAgICAgZ3JvdXAgPSBfcmVmMlswXTtcbiAgICBxdWVyeS5jaGVja3MucHVzaCh7XG4gICAgICB0eXBlOiBUeXBlLkdST1VQLFxuICAgICAgdmFsdWU6IGdyb3VwID09PSAnKicgPyBncm91cCA6IGdyb3VwICsgJ3MnXG4gICAgfSk7XG4gIH1cbn0sIHtcbiAgbmFtZTogJ3N0YXRlJyxcbiAgcXVlcnk6IHRydWUsXG4gIHJlZ2V4OiBzdGF0ZVNlbGVjdG9yUmVnZXgsXG4gIHBvcHVsYXRlOiBmdW5jdGlvbiBwb3B1bGF0ZShzZWxlY3RvciwgcXVlcnksIF9yZWYzKSB7XG4gICAgdmFyIF9yZWY0ID0gX3NsaWNlZFRvQXJyYXkoX3JlZjMsIDEpLFxuICAgICAgc3RhdGUgPSBfcmVmNFswXTtcbiAgICBxdWVyeS5jaGVja3MucHVzaCh7XG4gICAgICB0eXBlOiBUeXBlLlNUQVRFLFxuICAgICAgdmFsdWU6IHN0YXRlXG4gICAgfSk7XG4gIH1cbn0sIHtcbiAgbmFtZTogJ2lkJyxcbiAgcXVlcnk6IHRydWUsXG4gIHJlZ2V4OiAnXFxcXCMoJyArIHRva2Vucy5pZCArICcpJyxcbiAgcG9wdWxhdGU6IGZ1bmN0aW9uIHBvcHVsYXRlKHNlbGVjdG9yLCBxdWVyeSwgX3JlZjUpIHtcbiAgICB2YXIgX3JlZjYgPSBfc2xpY2VkVG9BcnJheShfcmVmNSwgMSksXG4gICAgICBpZCA9IF9yZWY2WzBdO1xuICAgIHF1ZXJ5LmNoZWNrcy5wdXNoKHtcbiAgICAgIHR5cGU6IFR5cGUuSUQsXG4gICAgICB2YWx1ZTogY2xlYW5NZXRhQ2hhcnMoaWQpXG4gICAgfSk7XG4gIH1cbn0sIHtcbiAgbmFtZTogJ2NsYXNzTmFtZScsXG4gIHF1ZXJ5OiB0cnVlLFxuICByZWdleDogJ1xcXFwuKCcgKyB0b2tlbnMuY2xhc3NOYW1lICsgJyknLFxuICBwb3B1bGF0ZTogZnVuY3Rpb24gcG9wdWxhdGUoc2VsZWN0b3IsIHF1ZXJ5LCBfcmVmNykge1xuICAgIHZhciBfcmVmOCA9IF9zbGljZWRUb0FycmF5KF9yZWY3LCAxKSxcbiAgICAgIGNsYXNzTmFtZSA9IF9yZWY4WzBdO1xuICAgIHF1ZXJ5LmNoZWNrcy5wdXNoKHtcbiAgICAgIHR5cGU6IFR5cGUuQ0xBU1MsXG4gICAgICB2YWx1ZTogY2xlYW5NZXRhQ2hhcnMoY2xhc3NOYW1lKVxuICAgIH0pO1xuICB9XG59LCB7XG4gIG5hbWU6ICdkYXRhRXhpc3RzJyxcbiAgcXVlcnk6IHRydWUsXG4gIHJlZ2V4OiAnXFxcXFtcXFxccyooJyArIHRva2Vucy52YXJpYWJsZSArICcpXFxcXHMqXFxcXF0nLFxuICBwb3B1bGF0ZTogZnVuY3Rpb24gcG9wdWxhdGUoc2VsZWN0b3IsIHF1ZXJ5LCBfcmVmOSkge1xuICAgIHZhciBfcmVmMTAgPSBfc2xpY2VkVG9BcnJheShfcmVmOSwgMSksXG4gICAgICB2YXJpYWJsZSA9IF9yZWYxMFswXTtcbiAgICBxdWVyeS5jaGVja3MucHVzaCh7XG4gICAgICB0eXBlOiBUeXBlLkRBVEFfRVhJU1QsXG4gICAgICBmaWVsZDogY2xlYW5NZXRhQ2hhcnModmFyaWFibGUpXG4gICAgfSk7XG4gIH1cbn0sIHtcbiAgbmFtZTogJ2RhdGFDb21wYXJlJyxcbiAgcXVlcnk6IHRydWUsXG4gIHJlZ2V4OiAnXFxcXFtcXFxccyooJyArIHRva2Vucy52YXJpYWJsZSArICcpXFxcXHMqKCcgKyB0b2tlbnMuY29tcGFyYXRvck9wICsgJylcXFxccyooJyArIHRva2Vucy52YWx1ZSArICcpXFxcXHMqXFxcXF0nLFxuICBwb3B1bGF0ZTogZnVuY3Rpb24gcG9wdWxhdGUoc2VsZWN0b3IsIHF1ZXJ5LCBfcmVmMTEpIHtcbiAgICB2YXIgX3JlZjEyID0gX3NsaWNlZFRvQXJyYXkoX3JlZjExLCAzKSxcbiAgICAgIHZhcmlhYmxlID0gX3JlZjEyWzBdLFxuICAgICAgY29tcGFyYXRvck9wID0gX3JlZjEyWzFdLFxuICAgICAgdmFsdWUgPSBfcmVmMTJbMl07XG4gICAgdmFyIHZhbHVlSXNTdHJpbmcgPSBuZXcgUmVnRXhwKCdeJyArIHRva2Vucy5zdHJpbmcgKyAnJCcpLmV4ZWModmFsdWUpICE9IG51bGw7XG4gICAgaWYgKHZhbHVlSXNTdHJpbmcpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDEsIHZhbHVlLmxlbmd0aCAtIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIH1cbiAgICBxdWVyeS5jaGVja3MucHVzaCh7XG4gICAgICB0eXBlOiBUeXBlLkRBVEFfQ09NUEFSRSxcbiAgICAgIGZpZWxkOiBjbGVhbk1ldGFDaGFycyh2YXJpYWJsZSksXG4gICAgICBvcGVyYXRvcjogY29tcGFyYXRvck9wLFxuICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfSk7XG4gIH1cbn0sIHtcbiAgbmFtZTogJ2RhdGFCb29sJyxcbiAgcXVlcnk6IHRydWUsXG4gIHJlZ2V4OiAnXFxcXFtcXFxccyooJyArIHRva2Vucy5ib29sT3AgKyAnKVxcXFxzKignICsgdG9rZW5zLnZhcmlhYmxlICsgJylcXFxccypcXFxcXScsXG4gIHBvcHVsYXRlOiBmdW5jdGlvbiBwb3B1bGF0ZShzZWxlY3RvciwgcXVlcnksIF9yZWYxMykge1xuICAgIHZhciBfcmVmMTQgPSBfc2xpY2VkVG9BcnJheShfcmVmMTMsIDIpLFxuICAgICAgYm9vbE9wID0gX3JlZjE0WzBdLFxuICAgICAgdmFyaWFibGUgPSBfcmVmMTRbMV07XG4gICAgcXVlcnkuY2hlY2tzLnB1c2goe1xuICAgICAgdHlwZTogVHlwZS5EQVRBX0JPT0wsXG4gICAgICBmaWVsZDogY2xlYW5NZXRhQ2hhcnModmFyaWFibGUpLFxuICAgICAgb3BlcmF0b3I6IGJvb2xPcFxuICAgIH0pO1xuICB9XG59LCB7XG4gIG5hbWU6ICdtZXRhQ29tcGFyZScsXG4gIHF1ZXJ5OiB0cnVlLFxuICByZWdleDogJ1xcXFxbXFxcXFtcXFxccyooJyArIHRva2Vucy5tZXRhICsgJylcXFxccyooJyArIHRva2Vucy5jb21wYXJhdG9yT3AgKyAnKVxcXFxzKignICsgdG9rZW5zLm51bWJlciArICcpXFxcXHMqXFxcXF1cXFxcXScsXG4gIHBvcHVsYXRlOiBmdW5jdGlvbiBwb3B1bGF0ZShzZWxlY3RvciwgcXVlcnksIF9yZWYxNSkge1xuICAgIHZhciBfcmVmMTYgPSBfc2xpY2VkVG9BcnJheShfcmVmMTUsIDMpLFxuICAgICAgbWV0YSA9IF9yZWYxNlswXSxcbiAgICAgIGNvbXBhcmF0b3JPcCA9IF9yZWYxNlsxXSxcbiAgICAgIG51bWJlciA9IF9yZWYxNlsyXTtcbiAgICBxdWVyeS5jaGVja3MucHVzaCh7XG4gICAgICB0eXBlOiBUeXBlLk1FVEFfQ09NUEFSRSxcbiAgICAgIGZpZWxkOiBjbGVhbk1ldGFDaGFycyhtZXRhKSxcbiAgICAgIG9wZXJhdG9yOiBjb21wYXJhdG9yT3AsXG4gICAgICB2YWx1ZTogcGFyc2VGbG9hdChudW1iZXIpXG4gICAgfSk7XG4gIH1cbn0sIHtcbiAgbmFtZTogJ25leHRRdWVyeScsXG4gIHNlcGFyYXRvcjogdHJ1ZSxcbiAgcmVnZXg6IHRva2Vucy5zZXBhcmF0b3IsXG4gIHBvcHVsYXRlOiBmdW5jdGlvbiBwb3B1bGF0ZShzZWxlY3RvciwgcXVlcnkpIHtcbiAgICB2YXIgY3VycmVudFN1YmplY3QgPSBzZWxlY3Rvci5jdXJyZW50U3ViamVjdDtcbiAgICB2YXIgZWRnZUNvdW50ID0gc2VsZWN0b3IuZWRnZUNvdW50O1xuICAgIHZhciBjb21wb3VuZENvdW50ID0gc2VsZWN0b3IuY29tcG91bmRDb3VudDtcbiAgICB2YXIgbGFzdFEgPSBzZWxlY3RvcltzZWxlY3Rvci5sZW5ndGggLSAxXTtcbiAgICBpZiAoY3VycmVudFN1YmplY3QgIT0gbnVsbCkge1xuICAgICAgbGFzdFEuc3ViamVjdCA9IGN1cnJlbnRTdWJqZWN0O1xuICAgICAgc2VsZWN0b3IuY3VycmVudFN1YmplY3QgPSBudWxsO1xuICAgIH1cbiAgICBsYXN0US5lZGdlQ291bnQgPSBlZGdlQ291bnQ7XG4gICAgbGFzdFEuY29tcG91bmRDb3VudCA9IGNvbXBvdW5kQ291bnQ7XG4gICAgc2VsZWN0b3IuZWRnZUNvdW50ID0gMDtcbiAgICBzZWxlY3Rvci5jb21wb3VuZENvdW50ID0gMDtcblxuICAgIC8vIGdvIG9uIHRvIG5leHQgcXVlcnlcbiAgICB2YXIgbmV4dFF1ZXJ5ID0gc2VsZWN0b3Jbc2VsZWN0b3IubGVuZ3RoKytdID0gbmV3UXVlcnkoKTtcbiAgICByZXR1cm4gbmV4dFF1ZXJ5OyAvLyB0aGlzIGlzIHRoZSBuZXcgcXVlcnkgdG8gYmUgZmlsbGVkIGJ5IHRoZSBmb2xsb3dpbmcgZXhwcnNcbiAgfVxufSwge1xuICBuYW1lOiAnZGlyZWN0ZWRFZGdlJyxcbiAgc2VwYXJhdG9yOiB0cnVlLFxuICByZWdleDogdG9rZW5zLmRpcmVjdGVkRWRnZSxcbiAgcG9wdWxhdGU6IGZ1bmN0aW9uIHBvcHVsYXRlKHNlbGVjdG9yLCBxdWVyeSkge1xuICAgIGlmIChzZWxlY3Rvci5jdXJyZW50U3ViamVjdCA9PSBudWxsKSB7XG4gICAgICAvLyB1bmRpcmVjdGVkIGVkZ2VcbiAgICAgIHZhciBlZGdlUXVlcnkgPSBuZXdRdWVyeSgpO1xuICAgICAgdmFyIHNvdXJjZSA9IHF1ZXJ5O1xuICAgICAgdmFyIHRhcmdldCA9IG5ld1F1ZXJ5KCk7XG4gICAgICBlZGdlUXVlcnkuY2hlY2tzLnB1c2goe1xuICAgICAgICB0eXBlOiBUeXBlLkRJUkVDVEVEX0VER0UsXG4gICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICB0YXJnZXQ6IHRhcmdldFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRoZSBxdWVyeSBpbiB0aGUgc2VsZWN0b3Igc2hvdWxkIGJlIHRoZSBlZGdlIHJhdGhlciB0aGFuIHRoZSBzb3VyY2VcbiAgICAgIHJlcGxhY2VMYXN0UXVlcnkoc2VsZWN0b3IsIHF1ZXJ5LCBlZGdlUXVlcnkpO1xuICAgICAgc2VsZWN0b3IuZWRnZUNvdW50Kys7XG5cbiAgICAgIC8vIHdlJ3JlIG5vdyBwb3B1bGF0aW5nIHRoZSB0YXJnZXQgcXVlcnkgd2l0aCBleHByZXNzaW9ucyB0aGF0IGZvbGxvd1xuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc291cmNlL3RhcmdldFxuICAgICAgdmFyIHNyY1RndFEgPSBuZXdRdWVyeSgpO1xuICAgICAgdmFyIF9zb3VyY2UgPSBxdWVyeTtcbiAgICAgIHZhciBfdGFyZ2V0ID0gbmV3UXVlcnkoKTtcbiAgICAgIHNyY1RndFEuY2hlY2tzLnB1c2goe1xuICAgICAgICB0eXBlOiBUeXBlLk5PREVfU09VUkNFLFxuICAgICAgICBzb3VyY2U6IF9zb3VyY2UsXG4gICAgICAgIHRhcmdldDogX3RhcmdldFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRoZSBxdWVyeSBpbiB0aGUgc2VsZWN0b3Igc2hvdWxkIGJlIHRoZSBuZWlnaGJvdXJob29kIHJhdGhlciB0aGFuIHRoZSBub2RlXG4gICAgICByZXBsYWNlTGFzdFF1ZXJ5KHNlbGVjdG9yLCBxdWVyeSwgc3JjVGd0USk7XG4gICAgICBzZWxlY3Rvci5lZGdlQ291bnQrKztcbiAgICAgIHJldHVybiBfdGFyZ2V0OyAvLyBub3cgcG9wdWxhdGluZyB0aGUgdGFyZ2V0IHdpdGggdGhlIGZvbGxvd2luZyBleHByZXNzaW9uc1xuICAgIH1cbiAgfVxufSwge1xuICBuYW1lOiAndW5kaXJlY3RlZEVkZ2UnLFxuICBzZXBhcmF0b3I6IHRydWUsXG4gIHJlZ2V4OiB0b2tlbnMudW5kaXJlY3RlZEVkZ2UsXG4gIHBvcHVsYXRlOiBmdW5jdGlvbiBwb3B1bGF0ZShzZWxlY3RvciwgcXVlcnkpIHtcbiAgICBpZiAoc2VsZWN0b3IuY3VycmVudFN1YmplY3QgPT0gbnVsbCkge1xuICAgICAgLy8gdW5kaXJlY3RlZCBlZGdlXG4gICAgICB2YXIgZWRnZVF1ZXJ5ID0gbmV3UXVlcnkoKTtcbiAgICAgIHZhciBzb3VyY2UgPSBxdWVyeTtcbiAgICAgIHZhciB0YXJnZXQgPSBuZXdRdWVyeSgpO1xuICAgICAgZWRnZVF1ZXJ5LmNoZWNrcy5wdXNoKHtcbiAgICAgICAgdHlwZTogVHlwZS5VTkRJUkVDVEVEX0VER0UsXG4gICAgICAgIG5vZGVzOiBbc291cmNlLCB0YXJnZXRdXG4gICAgICB9KTtcblxuICAgICAgLy8gdGhlIHF1ZXJ5IGluIHRoZSBzZWxlY3RvciBzaG91bGQgYmUgdGhlIGVkZ2UgcmF0aGVyIHRoYW4gdGhlIHNvdXJjZVxuICAgICAgcmVwbGFjZUxhc3RRdWVyeShzZWxlY3RvciwgcXVlcnksIGVkZ2VRdWVyeSk7XG4gICAgICBzZWxlY3Rvci5lZGdlQ291bnQrKztcblxuICAgICAgLy8gd2UncmUgbm93IHBvcHVsYXRpbmcgdGhlIHRhcmdldCBxdWVyeSB3aXRoIGV4cHJlc3Npb25zIHRoYXQgZm9sbG93XG4gICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBuZWlnaGJvdXJob29kXG4gICAgICB2YXIgbmhvb2RRID0gbmV3UXVlcnkoKTtcbiAgICAgIHZhciBub2RlID0gcXVlcnk7XG4gICAgICB2YXIgbmVpZ2hib3IgPSBuZXdRdWVyeSgpO1xuICAgICAgbmhvb2RRLmNoZWNrcy5wdXNoKHtcbiAgICAgICAgdHlwZTogVHlwZS5OT0RFX05FSUdIQk9SLFxuICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICBuZWlnaGJvcjogbmVpZ2hib3JcbiAgICAgIH0pO1xuXG4gICAgICAvLyB0aGUgcXVlcnkgaW4gdGhlIHNlbGVjdG9yIHNob3VsZCBiZSB0aGUgbmVpZ2hib3VyaG9vZCByYXRoZXIgdGhhbiB0aGUgbm9kZVxuICAgICAgcmVwbGFjZUxhc3RRdWVyeShzZWxlY3RvciwgcXVlcnksIG5ob29kUSk7XG4gICAgICByZXR1cm4gbmVpZ2hib3I7IC8vIG5vdyBwb3B1bGF0aW5nIHRoZSBuZWlnaGJvciB3aXRoIGZvbGxvd2luZyBleHByZXNzaW9uc1xuICAgIH1cbiAgfVxufSwge1xuICBuYW1lOiAnY2hpbGQnLFxuICBzZXBhcmF0b3I6IHRydWUsXG4gIHJlZ2V4OiB0b2tlbnMuY2hpbGQsXG4gIHBvcHVsYXRlOiBmdW5jdGlvbiBwb3B1bGF0ZShzZWxlY3RvciwgcXVlcnkpIHtcbiAgICBpZiAoc2VsZWN0b3IuY3VycmVudFN1YmplY3QgPT0gbnVsbCkge1xuICAgICAgLy8gZGVmYXVsdDogY2hpbGQgcXVlcnlcbiAgICAgIHZhciBwYXJlbnRDaGlsZFF1ZXJ5ID0gbmV3UXVlcnkoKTtcbiAgICAgIHZhciBjaGlsZCA9IG5ld1F1ZXJ5KCk7XG4gICAgICB2YXIgcGFyZW50ID0gc2VsZWN0b3Jbc2VsZWN0b3IubGVuZ3RoIC0gMV07XG4gICAgICBwYXJlbnRDaGlsZFF1ZXJ5LmNoZWNrcy5wdXNoKHtcbiAgICAgICAgdHlwZTogVHlwZS5DSElMRCxcbiAgICAgICAgcGFyZW50OiBwYXJlbnQsXG4gICAgICAgIGNoaWxkOiBjaGlsZFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRoZSBxdWVyeSBpbiB0aGUgc2VsZWN0b3Igc2hvdWxkIGJlIHRoZSAnPicgaXRzZWxmXG4gICAgICByZXBsYWNlTGFzdFF1ZXJ5KHNlbGVjdG9yLCBxdWVyeSwgcGFyZW50Q2hpbGRRdWVyeSk7XG4gICAgICBzZWxlY3Rvci5jb21wb3VuZENvdW50Kys7XG5cbiAgICAgIC8vIHdlJ3JlIG5vdyBwb3B1bGF0aW5nIHRoZSBjaGlsZCBxdWVyeSB3aXRoIGV4cHJlc3Npb25zIHRoYXQgZm9sbG93XG4gICAgICByZXR1cm4gY2hpbGQ7XG4gICAgfSBlbHNlIGlmIChzZWxlY3Rvci5jdXJyZW50U3ViamVjdCA9PT0gcXVlcnkpIHtcbiAgICAgIC8vIGNvbXBvdW5kIHNwbGl0IHF1ZXJ5XG4gICAgICB2YXIgY29tcG91bmQgPSBuZXdRdWVyeSgpO1xuICAgICAgdmFyIGxlZnQgPSBzZWxlY3RvcltzZWxlY3Rvci5sZW5ndGggLSAxXTtcbiAgICAgIHZhciByaWdodCA9IG5ld1F1ZXJ5KCk7XG4gICAgICB2YXIgc3ViamVjdCA9IG5ld1F1ZXJ5KCk7XG4gICAgICB2YXIgX2NoaWxkID0gbmV3UXVlcnkoKTtcbiAgICAgIHZhciBfcGFyZW50ID0gbmV3UXVlcnkoKTtcblxuICAgICAgLy8gc2V0IHVwIHRoZSByb290IGNvbXBvdW5kIHFcbiAgICAgIGNvbXBvdW5kLmNoZWNrcy5wdXNoKHtcbiAgICAgICAgdHlwZTogVHlwZS5DT01QT1VORF9TUExJVCxcbiAgICAgICAgbGVmdDogbGVmdCxcbiAgICAgICAgcmlnaHQ6IHJpZ2h0LFxuICAgICAgICBzdWJqZWN0OiBzdWJqZWN0XG4gICAgICB9KTtcblxuICAgICAgLy8gcG9wdWxhdGUgdGhlIHN1YmplY3QgYW5kIHJlcGxhY2UgdGhlIHEgYXQgdGhlIG9sZCBzcG90ICh3aXRoaW4gbGVmdCkgd2l0aCBUUlVFXG4gICAgICBzdWJqZWN0LmNoZWNrcyA9IHF1ZXJ5LmNoZWNrczsgLy8gdGFrZSB0aGUgY2hlY2tzIGZyb20gdGhlIGxlZnRcbiAgICAgIHF1ZXJ5LmNoZWNrcyA9IFt7XG4gICAgICAgIHR5cGU6IFR5cGUuVFJVRVxuICAgICAgfV07IC8vIGNoZWNrcyB1bmRlciBsZWZ0IHJlZnMgdGhlIHN1YmplY3QgaW1wbGljaXRseVxuXG4gICAgICAvLyBzZXQgdXAgdGhlIHJpZ2h0IHFcbiAgICAgIF9wYXJlbnQuY2hlY2tzLnB1c2goe1xuICAgICAgICB0eXBlOiBUeXBlLlRSVUVcbiAgICAgIH0pOyAvLyBwYXJlbnQgaW1wbGljaXRseSByZWZzIHRoZSBzdWJqZWN0XG4gICAgICByaWdodC5jaGVja3MucHVzaCh7XG4gICAgICAgIHR5cGU6IFR5cGUuUEFSRU5ULFxuICAgICAgICAvLyB0eXBlIGlzIHN3YXBwZWQgb24gcmlnaHQgc2lkZSBxdWVyaWVzXG4gICAgICAgIHBhcmVudDogX3BhcmVudCxcbiAgICAgICAgY2hpbGQ6IF9jaGlsZCAvLyBlbXB0eSBmb3Igbm93XG4gICAgICB9KTtcblxuICAgICAgcmVwbGFjZUxhc3RRdWVyeShzZWxlY3RvciwgbGVmdCwgY29tcG91bmQpO1xuXG4gICAgICAvLyB1cGRhdGUgdGhlIHJlZiBzaW5jZSB3ZSBtb3ZlZCB0aGluZ3MgYXJvdW5kIGZvciBgcXVlcnlgXG4gICAgICBzZWxlY3Rvci5jdXJyZW50U3ViamVjdCA9IHN1YmplY3Q7XG4gICAgICBzZWxlY3Rvci5jb21wb3VuZENvdW50Kys7XG4gICAgICByZXR1cm4gX2NoaWxkOyAvLyBub3cgcG9wdWxhdGluZyB0aGUgcmlnaHQgc2lkZSdzIGNoaWxkXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHBhcmVudCBxdWVyeVxuICAgICAgLy8gaW5mbyBmb3IgcGFyZW50IHF1ZXJ5XG4gICAgICB2YXIgX3BhcmVudDIgPSBuZXdRdWVyeSgpO1xuICAgICAgdmFyIF9jaGlsZDIgPSBuZXdRdWVyeSgpO1xuICAgICAgdmFyIHBjUUNoZWNrcyA9IFt7XG4gICAgICAgIHR5cGU6IFR5cGUuUEFSRU5ULFxuICAgICAgICBwYXJlbnQ6IF9wYXJlbnQyLFxuICAgICAgICBjaGlsZDogX2NoaWxkMlxuICAgICAgfV07XG5cbiAgICAgIC8vIHRoZSBwYXJlbnQtY2hpbGQgcXVlcnkgdGFrZXMgdGhlIHBsYWNlIG9mIHRoZSBxdWVyeSBwcmV2aW91c2x5IGJlaW5nIHBvcHVsYXRlZFxuICAgICAgX3BhcmVudDIuY2hlY2tzID0gcXVlcnkuY2hlY2tzOyAvLyB0aGUgcHJldmlvdXMgcXVlcnkgY29udGFpbnMgdGhlIGNoZWNrcyBmb3IgdGhlIHBhcmVudFxuICAgICAgcXVlcnkuY2hlY2tzID0gcGNRQ2hlY2tzOyAvLyBwYyBxdWVyeSB0YWtlcyBvdmVyXG5cbiAgICAgIHNlbGVjdG9yLmNvbXBvdW5kQ291bnQrKztcbiAgICAgIHJldHVybiBfY2hpbGQyOyAvLyB3ZSdyZSBub3cgcG9wdWxhdGluZyB0aGUgY2hpbGRcbiAgICB9XG4gIH1cbn0sIHtcbiAgbmFtZTogJ2Rlc2NlbmRhbnQnLFxuICBzZXBhcmF0b3I6IHRydWUsXG4gIHJlZ2V4OiB0b2tlbnMuZGVzY2VuZGFudCxcbiAgcG9wdWxhdGU6IGZ1bmN0aW9uIHBvcHVsYXRlKHNlbGVjdG9yLCBxdWVyeSkge1xuICAgIGlmIChzZWxlY3Rvci5jdXJyZW50U3ViamVjdCA9PSBudWxsKSB7XG4gICAgICAvLyBkZWZhdWx0OiBkZXNjZW5kYW50IHF1ZXJ5XG4gICAgICB2YXIgYW5jQ2hRdWVyeSA9IG5ld1F1ZXJ5KCk7XG4gICAgICB2YXIgZGVzY2VuZGFudCA9IG5ld1F1ZXJ5KCk7XG4gICAgICB2YXIgYW5jZXN0b3IgPSBzZWxlY3RvcltzZWxlY3Rvci5sZW5ndGggLSAxXTtcbiAgICAgIGFuY0NoUXVlcnkuY2hlY2tzLnB1c2goe1xuICAgICAgICB0eXBlOiBUeXBlLkRFU0NFTkRBTlQsXG4gICAgICAgIGFuY2VzdG9yOiBhbmNlc3RvcixcbiAgICAgICAgZGVzY2VuZGFudDogZGVzY2VuZGFudFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRoZSBxdWVyeSBpbiB0aGUgc2VsZWN0b3Igc2hvdWxkIGJlIHRoZSAnPicgaXRzZWxmXG4gICAgICByZXBsYWNlTGFzdFF1ZXJ5KHNlbGVjdG9yLCBxdWVyeSwgYW5jQ2hRdWVyeSk7XG4gICAgICBzZWxlY3Rvci5jb21wb3VuZENvdW50Kys7XG5cbiAgICAgIC8vIHdlJ3JlIG5vdyBwb3B1bGF0aW5nIHRoZSBkZXNjZW5kYW50IHF1ZXJ5IHdpdGggZXhwcmVzc2lvbnMgdGhhdCBmb2xsb3dcbiAgICAgIHJldHVybiBkZXNjZW5kYW50O1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0b3IuY3VycmVudFN1YmplY3QgPT09IHF1ZXJ5KSB7XG4gICAgICAvLyBjb21wb3VuZCBzcGxpdCBxdWVyeVxuICAgICAgdmFyIGNvbXBvdW5kID0gbmV3UXVlcnkoKTtcbiAgICAgIHZhciBsZWZ0ID0gc2VsZWN0b3Jbc2VsZWN0b3IubGVuZ3RoIC0gMV07XG4gICAgICB2YXIgcmlnaHQgPSBuZXdRdWVyeSgpO1xuICAgICAgdmFyIHN1YmplY3QgPSBuZXdRdWVyeSgpO1xuICAgICAgdmFyIF9kZXNjZW5kYW50ID0gbmV3UXVlcnkoKTtcbiAgICAgIHZhciBfYW5jZXN0b3IgPSBuZXdRdWVyeSgpO1xuXG4gICAgICAvLyBzZXQgdXAgdGhlIHJvb3QgY29tcG91bmQgcVxuICAgICAgY29tcG91bmQuY2hlY2tzLnB1c2goe1xuICAgICAgICB0eXBlOiBUeXBlLkNPTVBPVU5EX1NQTElULFxuICAgICAgICBsZWZ0OiBsZWZ0LFxuICAgICAgICByaWdodDogcmlnaHQsXG4gICAgICAgIHN1YmplY3Q6IHN1YmplY3RcbiAgICAgIH0pO1xuXG4gICAgICAvLyBwb3B1bGF0ZSB0aGUgc3ViamVjdCBhbmQgcmVwbGFjZSB0aGUgcSBhdCB0aGUgb2xkIHNwb3QgKHdpdGhpbiBsZWZ0KSB3aXRoIFRSVUVcbiAgICAgIHN1YmplY3QuY2hlY2tzID0gcXVlcnkuY2hlY2tzOyAvLyB0YWtlIHRoZSBjaGVja3MgZnJvbSB0aGUgbGVmdFxuICAgICAgcXVlcnkuY2hlY2tzID0gW3tcbiAgICAgICAgdHlwZTogVHlwZS5UUlVFXG4gICAgICB9XTsgLy8gY2hlY2tzIHVuZGVyIGxlZnQgcmVmcyB0aGUgc3ViamVjdCBpbXBsaWNpdGx5XG5cbiAgICAgIC8vIHNldCB1cCB0aGUgcmlnaHQgcVxuICAgICAgX2FuY2VzdG9yLmNoZWNrcy5wdXNoKHtcbiAgICAgICAgdHlwZTogVHlwZS5UUlVFXG4gICAgICB9KTsgLy8gYW5jZXN0b3IgaW1wbGljaXRseSByZWZzIHRoZSBzdWJqZWN0XG4gICAgICByaWdodC5jaGVja3MucHVzaCh7XG4gICAgICAgIHR5cGU6IFR5cGUuQU5DRVNUT1IsXG4gICAgICAgIC8vIHR5cGUgaXMgc3dhcHBlZCBvbiByaWdodCBzaWRlIHF1ZXJpZXNcbiAgICAgICAgYW5jZXN0b3I6IF9hbmNlc3RvcixcbiAgICAgICAgZGVzY2VuZGFudDogX2Rlc2NlbmRhbnQgLy8gZW1wdHkgZm9yIG5vd1xuICAgICAgfSk7XG5cbiAgICAgIHJlcGxhY2VMYXN0UXVlcnkoc2VsZWN0b3IsIGxlZnQsIGNvbXBvdW5kKTtcblxuICAgICAgLy8gdXBkYXRlIHRoZSByZWYgc2luY2Ugd2UgbW92ZWQgdGhpbmdzIGFyb3VuZCBmb3IgYHF1ZXJ5YFxuICAgICAgc2VsZWN0b3IuY3VycmVudFN1YmplY3QgPSBzdWJqZWN0O1xuICAgICAgc2VsZWN0b3IuY29tcG91bmRDb3VudCsrO1xuICAgICAgcmV0dXJuIF9kZXNjZW5kYW50OyAvLyBub3cgcG9wdWxhdGluZyB0aGUgcmlnaHQgc2lkZSdzIGRlc2NlbmRhbnRcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gYW5jZXN0b3IgcXVlcnlcbiAgICAgIC8vIGluZm8gZm9yIHBhcmVudCBxdWVyeVxuICAgICAgdmFyIF9hbmNlc3RvcjIgPSBuZXdRdWVyeSgpO1xuICAgICAgdmFyIF9kZXNjZW5kYW50MiA9IG5ld1F1ZXJ5KCk7XG4gICAgICB2YXIgYWRRQ2hlY2tzID0gW3tcbiAgICAgICAgdHlwZTogVHlwZS5BTkNFU1RPUixcbiAgICAgICAgYW5jZXN0b3I6IF9hbmNlc3RvcjIsXG4gICAgICAgIGRlc2NlbmRhbnQ6IF9kZXNjZW5kYW50MlxuICAgICAgfV07XG5cbiAgICAgIC8vIHRoZSBwYXJlbnQtY2hpbGQgcXVlcnkgdGFrZXMgdGhlIHBsYWNlIG9mIHRoZSBxdWVyeSBwcmV2aW91c2x5IGJlaW5nIHBvcHVsYXRlZFxuICAgICAgX2FuY2VzdG9yMi5jaGVja3MgPSBxdWVyeS5jaGVja3M7IC8vIHRoZSBwcmV2aW91cyBxdWVyeSBjb250YWlucyB0aGUgY2hlY2tzIGZvciB0aGUgcGFyZW50XG4gICAgICBxdWVyeS5jaGVja3MgPSBhZFFDaGVja3M7IC8vIHBjIHF1ZXJ5IHRha2VzIG92ZXJcblxuICAgICAgc2VsZWN0b3IuY29tcG91bmRDb3VudCsrO1xuICAgICAgcmV0dXJuIF9kZXNjZW5kYW50MjsgLy8gd2UncmUgbm93IHBvcHVsYXRpbmcgdGhlIGNoaWxkXG4gICAgfVxuICB9XG59LCB7XG4gIG5hbWU6ICdzdWJqZWN0JyxcbiAgbW9kaWZpZXI6IHRydWUsXG4gIHJlZ2V4OiB0b2tlbnMuc3ViamVjdCxcbiAgcG9wdWxhdGU6IGZ1bmN0aW9uIHBvcHVsYXRlKHNlbGVjdG9yLCBxdWVyeSkge1xuICAgIGlmIChzZWxlY3Rvci5jdXJyZW50U3ViamVjdCAhPSBudWxsICYmIHNlbGVjdG9yLmN1cnJlbnRTdWJqZWN0ICE9PSBxdWVyeSkge1xuICAgICAgd2FybignUmVkZWZpbml0aW9uIG9mIHN1YmplY3QgaW4gc2VsZWN0b3IgYCcgKyBzZWxlY3Rvci50b1N0cmluZygpICsgJ2AnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc2VsZWN0b3IuY3VycmVudFN1YmplY3QgPSBxdWVyeTtcbiAgICB2YXIgdG9wUSA9IHNlbGVjdG9yW3NlbGVjdG9yLmxlbmd0aCAtIDFdO1xuICAgIHZhciB0b3BDaGsgPSB0b3BRLmNoZWNrc1swXTtcbiAgICB2YXIgdG9wVHlwZSA9IHRvcENoayA9PSBudWxsID8gbnVsbCA6IHRvcENoay50eXBlO1xuICAgIGlmICh0b3BUeXBlID09PSBUeXBlLkRJUkVDVEVEX0VER0UpIHtcbiAgICAgIC8vIGRpcmVjdGVkIGVkZ2Ugd2l0aCBzdWJqZWN0IG9uIHRoZSB0YXJnZXRcblxuICAgICAgLy8gY2hhbmdlIHRvIHRhcmdldCBub2RlIGNoZWNrXG4gICAgICB0b3BDaGsudHlwZSA9IFR5cGUuTk9ERV9UQVJHRVQ7XG4gICAgfSBlbHNlIGlmICh0b3BUeXBlID09PSBUeXBlLlVORElSRUNURURfRURHRSkge1xuICAgICAgLy8gdW5kaXJlY3RlZCBlZGdlIHdpdGggc3ViamVjdCBvbiB0aGUgc2Vjb25kIG5vZGVcblxuICAgICAgLy8gY2hhbmdlIHRvIG5laWdoYm9yIGNoZWNrXG4gICAgICB0b3BDaGsudHlwZSA9IFR5cGUuTk9ERV9ORUlHSEJPUjtcbiAgICAgIHRvcENoay5ub2RlID0gdG9wQ2hrLm5vZGVzWzFdOyAvLyBzZWNvbmQgbm9kZSBpcyBzdWJqZWN0XG4gICAgICB0b3BDaGsubmVpZ2hib3IgPSB0b3BDaGsubm9kZXNbMF07XG5cbiAgICAgIC8vIGNsZWFuIHVwIHVudXNlZCBmaWVsZHMgZm9yIG5ldyB0eXBlXG4gICAgICB0b3BDaGsubm9kZXMgPSBudWxsO1xuICAgIH1cbiAgfVxufV07XG5leHBycy5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7XG4gIHJldHVybiBlLnJlZ2V4T2JqID0gbmV3IFJlZ0V4cCgnXicgKyBlLnJlZ2V4KTtcbn0pO1xuXG4vKipcbiAqIE9mIGFsbCB0aGUgZXhwcmVzc2lvbnMsIGZpbmQgdGhlIGZpcnN0IG1hdGNoIGluIHRoZSByZW1haW5pbmcgdGV4dC5cbiAqIEBwYXJhbSB7c3RyaW5nfSByZW1haW5pbmcgVGhlIHJlbWFpbmluZyB0ZXh0IHRvIHBhcnNlXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hlZCBleHByZXNzaW9uIGFuZCB0aGUgbmV3bHkgcmVtYWluaW5nIHRleHQgYHsgZXhwciwgbWF0Y2gsIG5hbWUsIHJlbWFpbmluZyB9YFxuICovXG52YXIgY29uc3VtZUV4cHIgPSBmdW5jdGlvbiBjb25zdW1lRXhwcihyZW1haW5pbmcpIHtcbiAgdmFyIGV4cHI7XG4gIHZhciBtYXRjaDtcbiAgdmFyIG5hbWU7XG4gIGZvciAodmFyIGogPSAwOyBqIDwgZXhwcnMubGVuZ3RoOyBqKyspIHtcbiAgICB2YXIgZSA9IGV4cHJzW2pdO1xuICAgIHZhciBuID0gZS5uYW1lO1xuICAgIHZhciBtID0gcmVtYWluaW5nLm1hdGNoKGUucmVnZXhPYmopO1xuICAgIGlmIChtICE9IG51bGwpIHtcbiAgICAgIG1hdGNoID0gbTtcbiAgICAgIGV4cHIgPSBlO1xuICAgICAgbmFtZSA9IG47XG4gICAgICB2YXIgY29uc3VtZWQgPSBtWzBdO1xuICAgICAgcmVtYWluaW5nID0gcmVtYWluaW5nLnN1YnN0cmluZyhjb25zdW1lZC5sZW5ndGgpO1xuICAgICAgYnJlYWs7IC8vIHdlJ3ZlIGNvbnN1bWVkIG9uZSBleHByLCBzbyB3ZSBjYW4gcmV0dXJuIG5vd1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZXhwcjogZXhwcixcbiAgICBtYXRjaDogbWF0Y2gsXG4gICAgbmFtZTogbmFtZSxcbiAgICByZW1haW5pbmc6IHJlbWFpbmluZ1xuICB9O1xufTtcblxuLyoqXG4gKiBDb25zdW1lIGFsbCB0aGUgbGVhZGluZyB3aGl0ZXNwYWNlXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVtYWluaW5nIFRoZSB0ZXh0IHRvIGNvbnN1bWVcbiAqIEByZXR1cm5zIFRoZSB0ZXh0IHdpdGggdGhlIGxlYWRpbmcgd2hpdGVzcGFjZSByZW1vdmVkXG4gKi9cbnZhciBjb25zdW1lV2hpdGVzcGFjZSA9IGZ1bmN0aW9uIGNvbnN1bWVXaGl0ZXNwYWNlKHJlbWFpbmluZykge1xuICB2YXIgbWF0Y2ggPSByZW1haW5pbmcubWF0Y2goL15cXHMrLyk7XG4gIGlmIChtYXRjaCkge1xuICAgIHZhciBjb25zdW1lZCA9IG1hdGNoWzBdO1xuICAgIHJlbWFpbmluZyA9IHJlbWFpbmluZy5zdWJzdHJpbmcoY29uc3VtZWQubGVuZ3RoKTtcbiAgfVxuICByZXR1cm4gcmVtYWluaW5nO1xufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgc3RyaW5nIGFuZCBzdG9yZSB0aGUgcGFyc2VkIHJlcHJlc2VudGF0aW9uIGluIHRoZSBTZWxlY3Rvci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvciBUaGUgc2VsZWN0b3Igc3RyaW5nXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHNlbGVjdG9yIHdhcyBzdWNjZXNzZnVsbHkgcGFyc2VkLCBgZmFsc2VgIG90aGVyd2lzZVxuICovXG52YXIgcGFyc2UgPSBmdW5jdGlvbiBwYXJzZShzZWxlY3Rvcikge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciByZW1haW5pbmcgPSBzZWxmLmlucHV0VGV4dCA9IHNlbGVjdG9yO1xuICB2YXIgY3VycmVudFF1ZXJ5ID0gc2VsZlswXSA9IG5ld1F1ZXJ5KCk7XG4gIHNlbGYubGVuZ3RoID0gMTtcbiAgcmVtYWluaW5nID0gY29uc3VtZVdoaXRlc3BhY2UocmVtYWluaW5nKTsgLy8gZ2V0IHJpZCBvZiBsZWFkaW5nIHdoaXRlc3BhY2VcblxuICBmb3IgKDs7KSB7XG4gICAgdmFyIGV4cHJJbmZvID0gY29uc3VtZUV4cHIocmVtYWluaW5nKTtcbiAgICBpZiAoZXhwckluZm8uZXhwciA9PSBudWxsKSB7XG4gICAgICB3YXJuKCdUaGUgc2VsZWN0b3IgYCcgKyBzZWxlY3RvciArICdgaXMgaW52YWxpZCcpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYXJncyA9IGV4cHJJbmZvLm1hdGNoLnNsaWNlKDEpO1xuXG4gICAgICAvLyBsZXQgdGhlIHRva2VuIHBvcHVsYXRlIHRoZSBzZWxlY3RvciBvYmplY3QgaW4gY3VycmVudFF1ZXJ5XG4gICAgICB2YXIgcmV0ID0gZXhwckluZm8uZXhwci5wb3B1bGF0ZShzZWxmLCBjdXJyZW50UXVlcnksIGFyZ3MpO1xuICAgICAgaWYgKHJldCA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBleGl0IGlmIHBvcHVsYXRpb24gZmFpbGVkXG4gICAgICB9IGVsc2UgaWYgKHJldCAhPSBudWxsKSB7XG4gICAgICAgIGN1cnJlbnRRdWVyeSA9IHJldDsgLy8gY2hhbmdlIHRoZSBjdXJyZW50IHF1ZXJ5IHRvIGJlIGZpbGxlZCBpZiB0aGUgZXhwciBzcGVjaWZpZXNcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZW1haW5pbmcgPSBleHBySW5mby5yZW1haW5pbmc7XG5cbiAgICAvLyB3ZSdyZSBkb25lIHdoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gcGFyc2VcbiAgICBpZiAocmVtYWluaW5nLm1hdGNoKC9eXFxzKiQvKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHZhciBsYXN0USA9IHNlbGZbc2VsZi5sZW5ndGggLSAxXTtcbiAgaWYgKHNlbGYuY3VycmVudFN1YmplY3QgIT0gbnVsbCkge1xuICAgIGxhc3RRLnN1YmplY3QgPSBzZWxmLmN1cnJlbnRTdWJqZWN0O1xuICB9XG4gIGxhc3RRLmVkZ2VDb3VudCA9IHNlbGYuZWRnZUNvdW50O1xuICBsYXN0US5jb21wb3VuZENvdW50ID0gc2VsZi5jb21wb3VuZENvdW50O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGYubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcSA9IHNlbGZbaV07XG5cbiAgICAvLyBpbiBmdXR1cmUsIHRoaXMgY291bGQgcG90ZW50aWFsbHkgYmUgYWxsb3dlZCBpZiB0aGVyZSB3ZXJlIG9wZXJhdG9yIHByZWNlZGVuY2UgYW5kIGRldGVjdGlvbiBvZiBpbnZhbGlkIGNvbWJpbmF0aW9uc1xuICAgIGlmIChxLmNvbXBvdW5kQ291bnQgPiAwICYmIHEuZWRnZUNvdW50ID4gMCkge1xuICAgICAgd2FybignVGhlIHNlbGVjdG9yIGAnICsgc2VsZWN0b3IgKyAnYCBpcyBpbnZhbGlkIGJlY2F1c2UgaXQgdXNlcyBib3RoIGEgY29tcG91bmQgc2VsZWN0b3IgYW5kIGFuIGVkZ2Ugc2VsZWN0b3InKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHEuZWRnZUNvdW50ID4gMSkge1xuICAgICAgd2FybignVGhlIHNlbGVjdG9yIGAnICsgc2VsZWN0b3IgKyAnYCBpcyBpbnZhbGlkIGJlY2F1c2UgaXQgdXNlcyBtdWx0aXBsZSBlZGdlIHNlbGVjdG9ycycpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAocS5lZGdlQ291bnQgPT09IDEpIHtcbiAgICAgIHdhcm4oJ1RoZSBzZWxlY3RvciBgJyArIHNlbGVjdG9yICsgJ2AgaXMgZGVwcmVjYXRlZC4gIEVkZ2Ugc2VsZWN0b3JzIGRvIG5vdCB0YWtlIGVmZmVjdCBvbiBjaGFuZ2VzIHRvIHNvdXJjZSBhbmQgdGFyZ2V0IG5vZGVzIGFmdGVyIGFuIGVkZ2UgaXMgYWRkZWQsIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLiAgVXNlIGEgY2xhc3Mgb3IgZGF0YSBzZWxlY3RvciBvbiBlZGdlcyBpbnN0ZWFkLCB1cGRhdGluZyB0aGUgY2xhc3Mgb3IgZGF0YSBvZiBhbiBlZGdlIHdoZW4geW91ciBhcHAgZGV0ZWN0cyBhIGNoYW5nZSBpbiBzb3VyY2Ugb3IgdGFyZ2V0IG5vZGVzLicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTsgLy8gc3VjY2Vzc1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIHNlbGVjdG9yIHJlcHJlc2VudGVkIGFzIGEgc3RyaW5nLiAgVGhpcyB2YWx1ZSB1c2VzIGRlZmF1bHQgZm9ybWF0dGluZyxcbiAqIHNvIHRoaW5ncyBsaWtlIHNwYWNpbmcgbWF5IGRpZmZlciBmcm9tIHRoZSBpbnB1dCB0ZXh0IHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgc2VsZWN0b3Igc3RyaW5nXG4gKi9cbnZhciB0b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICBpZiAodGhpcy50b1N0cmluZ0NhY2hlICE9IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZ0NhY2hlO1xuICB9XG4gIHZhciBjbGVhbiA9IGZ1bmN0aW9uIGNsZWFuKG9iaikge1xuICAgIGlmIChvYmogPT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgfTtcbiAgdmFyIGNsZWFuVmFsID0gZnVuY3Rpb24gY2xlYW5WYWwodmFsKSB7XG4gICAgaWYgKHN0cmluZyh2YWwpKSB7XG4gICAgICByZXR1cm4gJ1wiJyArIHZhbCArICdcIic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjbGVhbih2YWwpO1xuICAgIH1cbiAgfTtcbiAgdmFyIHNwYWNlID0gZnVuY3Rpb24gc3BhY2UodmFsKSB7XG4gICAgcmV0dXJuICcgJyArIHZhbCArICcgJztcbiAgfTtcbiAgdmFyIGNoZWNrVG9TdHJpbmcgPSBmdW5jdGlvbiBjaGVja1RvU3RyaW5nKGNoZWNrLCBzdWJqZWN0KSB7XG4gICAgdmFyIHR5cGUgPSBjaGVjay50eXBlLFxuICAgICAgdmFsdWUgPSBjaGVjay52YWx1ZTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgVHlwZS5HUk9VUDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBncm91cCA9IGNsZWFuKHZhbHVlKTtcbiAgICAgICAgICByZXR1cm4gZ3JvdXAuc3Vic3RyaW5nKDAsIGdyb3VwLmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICBjYXNlIFR5cGUuREFUQV9DT01QQVJFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGZpZWxkID0gY2hlY2suZmllbGQsXG4gICAgICAgICAgICBvcGVyYXRvciA9IGNoZWNrLm9wZXJhdG9yO1xuICAgICAgICAgIHJldHVybiAnWycgKyBmaWVsZCArIHNwYWNlKGNsZWFuKG9wZXJhdG9yKSkgKyBjbGVhblZhbCh2YWx1ZSkgKyAnXSc7XG4gICAgICAgIH1cbiAgICAgIGNhc2UgVHlwZS5EQVRBX0JPT0w6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgX29wZXJhdG9yID0gY2hlY2sub3BlcmF0b3IsXG4gICAgICAgICAgICBfZmllbGQgPSBjaGVjay5maWVsZDtcbiAgICAgICAgICByZXR1cm4gJ1snICsgY2xlYW4oX29wZXJhdG9yKSArIF9maWVsZCArICddJztcbiAgICAgICAgfVxuICAgICAgY2FzZSBUeXBlLkRBVEFfRVhJU1Q6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgX2ZpZWxkMiA9IGNoZWNrLmZpZWxkO1xuICAgICAgICAgIHJldHVybiAnWycgKyBfZmllbGQyICsgJ10nO1xuICAgICAgICB9XG4gICAgICBjYXNlIFR5cGUuTUVUQV9DT01QQVJFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIF9vcGVyYXRvcjIgPSBjaGVjay5vcGVyYXRvcixcbiAgICAgICAgICAgIF9maWVsZDMgPSBjaGVjay5maWVsZDtcbiAgICAgICAgICByZXR1cm4gJ1tbJyArIF9maWVsZDMgKyBzcGFjZShjbGVhbihfb3BlcmF0b3IyKSkgKyBjbGVhblZhbCh2YWx1ZSkgKyAnXV0nO1xuICAgICAgICB9XG4gICAgICBjYXNlIFR5cGUuU1RBVEU6XG4gICAgICAgIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIGNhc2UgVHlwZS5JRDpcbiAgICAgICAge1xuICAgICAgICAgIHJldHVybiAnIycgKyB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgY2FzZSBUeXBlLkNMQVNTOlxuICAgICAgICB7XG4gICAgICAgICAgcmV0dXJuICcuJyArIHZhbHVlO1xuICAgICAgICB9XG4gICAgICBjYXNlIFR5cGUuUEFSRU5UOlxuICAgICAgY2FzZSBUeXBlLkNISUxEOlxuICAgICAgICB7XG4gICAgICAgICAgcmV0dXJuIHF1ZXJ5VG9TdHJpbmcoY2hlY2sucGFyZW50LCBzdWJqZWN0KSArIHNwYWNlKCc+JykgKyBxdWVyeVRvU3RyaW5nKGNoZWNrLmNoaWxkLCBzdWJqZWN0KTtcbiAgICAgICAgfVxuICAgICAgY2FzZSBUeXBlLkFOQ0VTVE9SOlxuICAgICAgY2FzZSBUeXBlLkRFU0NFTkRBTlQ6XG4gICAgICAgIHtcbiAgICAgICAgICByZXR1cm4gcXVlcnlUb1N0cmluZyhjaGVjay5hbmNlc3Rvciwgc3ViamVjdCkgKyAnICcgKyBxdWVyeVRvU3RyaW5nKGNoZWNrLmRlc2NlbmRhbnQsIHN1YmplY3QpO1xuICAgICAgICB9XG4gICAgICBjYXNlIFR5cGUuQ09NUE9VTkRfU1BMSVQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGhzID0gcXVlcnlUb1N0cmluZyhjaGVjay5sZWZ0LCBzdWJqZWN0KTtcbiAgICAgICAgICB2YXIgc3ViID0gcXVlcnlUb1N0cmluZyhjaGVjay5zdWJqZWN0LCBzdWJqZWN0KTtcbiAgICAgICAgICB2YXIgcmhzID0gcXVlcnlUb1N0cmluZyhjaGVjay5yaWdodCwgc3ViamVjdCk7XG4gICAgICAgICAgcmV0dXJuIGxocyArIChsaHMubGVuZ3RoID4gMCA/ICcgJyA6ICcnKSArIHN1YiArIHJocztcbiAgICAgICAgfVxuICAgICAgY2FzZSBUeXBlLlRSVUU6XG4gICAgICAgIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG4gIH07XG4gIHZhciBxdWVyeVRvU3RyaW5nID0gZnVuY3Rpb24gcXVlcnlUb1N0cmluZyhxdWVyeSwgc3ViamVjdCkge1xuICAgIHJldHVybiBxdWVyeS5jaGVja3MucmVkdWNlKGZ1bmN0aW9uIChzdHIsIGNoaywgaSkge1xuICAgICAgcmV0dXJuIHN0ciArIChzdWJqZWN0ID09PSBxdWVyeSAmJiBpID09PSAwID8gJyQnIDogJycpICsgY2hlY2tUb1N0cmluZyhjaGssIHN1YmplY3QpO1xuICAgIH0sICcnKTtcbiAgfTtcbiAgdmFyIHN0ciA9ICcnO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcXVlcnkgPSB0aGlzW2ldO1xuICAgIHN0ciArPSBxdWVyeVRvU3RyaW5nKHF1ZXJ5LCBxdWVyeS5zdWJqZWN0KTtcbiAgICBpZiAodGhpcy5sZW5ndGggPiAxICYmIGkgPCB0aGlzLmxlbmd0aCAtIDEpIHtcbiAgICAgIHN0ciArPSAnLCAnO1xuICAgIH1cbiAgfVxuICB0aGlzLnRvU3RyaW5nQ2FjaGUgPSBzdHI7XG4gIHJldHVybiBzdHI7XG59O1xudmFyIHBhcnNlJDEgPSB7XG4gIHBhcnNlOiBwYXJzZSxcbiAgdG9TdHJpbmc6IHRvU3RyaW5nXG59O1xuXG52YXIgdmFsQ21wID0gZnVuY3Rpb24gdmFsQ21wKGZpZWxkVmFsLCBvcGVyYXRvciwgdmFsdWUpIHtcbiAgdmFyIG1hdGNoZXM7XG4gIHZhciBpc0ZpZWxkU3RyID0gc3RyaW5nKGZpZWxkVmFsKTtcbiAgdmFyIGlzRmllbGROdW0gPSBudW1iZXIkMShmaWVsZFZhbCk7XG4gIHZhciBpc1ZhbFN0ciA9IHN0cmluZyh2YWx1ZSk7XG4gIHZhciBmaWVsZFN0ciwgdmFsU3RyO1xuICB2YXIgY2FzZUluc2Vuc2l0aXZlID0gZmFsc2U7XG4gIHZhciBub3RFeHByID0gZmFsc2U7XG4gIHZhciBpc0luZXFDbXAgPSBmYWxzZTtcbiAgaWYgKG9wZXJhdG9yLmluZGV4T2YoJyEnKSA+PSAwKSB7XG4gICAgb3BlcmF0b3IgPSBvcGVyYXRvci5yZXBsYWNlKCchJywgJycpO1xuICAgIG5vdEV4cHIgPSB0cnVlO1xuICB9XG4gIGlmIChvcGVyYXRvci5pbmRleE9mKCdAJykgPj0gMCkge1xuICAgIG9wZXJhdG9yID0gb3BlcmF0b3IucmVwbGFjZSgnQCcsICcnKTtcbiAgICBjYXNlSW5zZW5zaXRpdmUgPSB0cnVlO1xuICB9XG4gIGlmIChpc0ZpZWxkU3RyIHx8IGlzVmFsU3RyIHx8IGNhc2VJbnNlbnNpdGl2ZSkge1xuICAgIGZpZWxkU3RyID0gIWlzRmllbGRTdHIgJiYgIWlzRmllbGROdW0gPyAnJyA6ICcnICsgZmllbGRWYWw7XG4gICAgdmFsU3RyID0gJycgKyB2YWx1ZTtcbiAgfVxuXG4gIC8vIGlmIHdlJ3JlIGRvaW5nIGEgY2FzZSBpbnNlbnNpdGl2ZSBjb21wYXJpc29uLCB0aGVuIHdlJ3JlIHVzaW5nIGEgU1RSSU5HIGNvbXBhcmlzb25cbiAgLy8gZXZlbiBpZiB3ZSdyZSBjb21wYXJpbmcgbnVtYmVyc1xuICBpZiAoY2FzZUluc2Vuc2l0aXZlKSB7XG4gICAgZmllbGRWYWwgPSBmaWVsZFN0ciA9IGZpZWxkU3RyLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFsdWUgPSB2YWxTdHIgPSB2YWxTdHIudG9Mb3dlckNhc2UoKTtcbiAgfVxuICBzd2l0Y2ggKG9wZXJhdG9yKSB7XG4gICAgY2FzZSAnKj0nOlxuICAgICAgbWF0Y2hlcyA9IGZpZWxkU3RyLmluZGV4T2YodmFsU3RyKSA+PSAwO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnJD0nOlxuICAgICAgbWF0Y2hlcyA9IGZpZWxkU3RyLmluZGV4T2YodmFsU3RyLCBmaWVsZFN0ci5sZW5ndGggLSB2YWxTdHIubGVuZ3RoKSA+PSAwO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnXj0nOlxuICAgICAgbWF0Y2hlcyA9IGZpZWxkU3RyLmluZGV4T2YodmFsU3RyKSA9PT0gMDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJz0nOlxuICAgICAgbWF0Y2hlcyA9IGZpZWxkVmFsID09PSB2YWx1ZTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJz4nOlxuICAgICAgaXNJbmVxQ21wID0gdHJ1ZTtcbiAgICAgIG1hdGNoZXMgPSBmaWVsZFZhbCA+IHZhbHVlO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnPj0nOlxuICAgICAgaXNJbmVxQ21wID0gdHJ1ZTtcbiAgICAgIG1hdGNoZXMgPSBmaWVsZFZhbCA+PSB2YWx1ZTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJzwnOlxuICAgICAgaXNJbmVxQ21wID0gdHJ1ZTtcbiAgICAgIG1hdGNoZXMgPSBmaWVsZFZhbCA8IHZhbHVlO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnPD0nOlxuICAgICAgaXNJbmVxQ21wID0gdHJ1ZTtcbiAgICAgIG1hdGNoZXMgPSBmaWVsZFZhbCA8PSB2YWx1ZTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBtYXRjaGVzID0gZmFsc2U7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIC8vIGFwcGx5IHRoZSBub3Qgb3AsIGJ1dCBudWxsIHZhbHMgZm9yIGluZXF1YWxpdGllcyBzaG91bGQgYWx3YXlzIHN0YXkgbm9uLW1hdGNoaW5nXG4gIGlmIChub3RFeHByICYmIChmaWVsZFZhbCAhPSBudWxsIHx8ICFpc0luZXFDbXApKSB7XG4gICAgbWF0Y2hlcyA9ICFtYXRjaGVzO1xuICB9XG4gIHJldHVybiBtYXRjaGVzO1xufTtcbnZhciBib29sQ21wID0gZnVuY3Rpb24gYm9vbENtcChmaWVsZFZhbCwgb3BlcmF0b3IpIHtcbiAgc3dpdGNoIChvcGVyYXRvcikge1xuICAgIGNhc2UgJz8nOlxuICAgICAgcmV0dXJuIGZpZWxkVmFsID8gdHJ1ZSA6IGZhbHNlO1xuICAgIGNhc2UgJyEnOlxuICAgICAgcmV0dXJuIGZpZWxkVmFsID8gZmFsc2UgOiB0cnVlO1xuICAgIGNhc2UgJ14nOlxuICAgICAgcmV0dXJuIGZpZWxkVmFsID09PSB1bmRlZmluZWQ7XG4gIH1cbn07XG52YXIgZXhpc3RDbXAgPSBmdW5jdGlvbiBleGlzdENtcChmaWVsZFZhbCkge1xuICByZXR1cm4gZmllbGRWYWwgIT09IHVuZGVmaW5lZDtcbn07XG52YXIgZGF0YSQxID0gZnVuY3Rpb24gZGF0YShlbGUsIGZpZWxkKSB7XG4gIHJldHVybiBlbGUuZGF0YShmaWVsZCk7XG59O1xudmFyIG1ldGEgPSBmdW5jdGlvbiBtZXRhKGVsZSwgZmllbGQpIHtcbiAgcmV0dXJuIGVsZVtmaWVsZF0oKTtcbn07XG5cbi8qKiBBIGxvb2t1cCBvZiBgbWF0Y2goY2hlY2ssIGVsZSlgIGZ1bmN0aW9ucyBieSBgVHlwZWAgaW50ICovXG52YXIgbWF0Y2ggPSBbXTtcblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHF1ZXJ5IG1hdGNoZXMgZm9yIHRoZSBlbGVtZW50XG4gKiBAcGFyYW0gcXVlcnkgVGhlIGB7IHR5cGUsIHZhbHVlLCAuLi4gfWAgcXVlcnkgb2JqZWN0XG4gKiBAcGFyYW0gZWxlIFRoZSBlbGVtZW50IHRvIGNvbXBhcmUgYWdhaW5zdFxuKi9cbnZhciBtYXRjaGVzJDEgPSBmdW5jdGlvbiBtYXRjaGVzKHF1ZXJ5LCBlbGUpIHtcbiAgcmV0dXJuIHF1ZXJ5LmNoZWNrcy5ldmVyeShmdW5jdGlvbiAoY2hrKSB7XG4gICAgcmV0dXJuIG1hdGNoW2Noay50eXBlXShjaGssIGVsZSk7XG4gIH0pO1xufTtcbm1hdGNoW1R5cGUuR1JPVVBdID0gZnVuY3Rpb24gKGNoZWNrLCBlbGUpIHtcbiAgdmFyIGdyb3VwID0gY2hlY2sudmFsdWU7XG4gIHJldHVybiBncm91cCA9PT0gJyonIHx8IGdyb3VwID09PSBlbGUuZ3JvdXAoKTtcbn07XG5tYXRjaFtUeXBlLlNUQVRFXSA9IGZ1bmN0aW9uIChjaGVjaywgZWxlKSB7XG4gIHZhciBzdGF0ZVNlbGVjdG9yID0gY2hlY2sudmFsdWU7XG4gIHJldHVybiBzdGF0ZVNlbGVjdG9yTWF0Y2hlcyhzdGF0ZVNlbGVjdG9yLCBlbGUpO1xufTtcbm1hdGNoW1R5cGUuSURdID0gZnVuY3Rpb24gKGNoZWNrLCBlbGUpIHtcbiAgdmFyIGlkID0gY2hlY2sudmFsdWU7XG4gIHJldHVybiBlbGUuaWQoKSA9PT0gaWQ7XG59O1xubWF0Y2hbVHlwZS5DTEFTU10gPSBmdW5jdGlvbiAoY2hlY2ssIGVsZSkge1xuICB2YXIgY2xzID0gY2hlY2sudmFsdWU7XG4gIHJldHVybiBlbGUuaGFzQ2xhc3MoY2xzKTtcbn07XG5tYXRjaFtUeXBlLk1FVEFfQ09NUEFSRV0gPSBmdW5jdGlvbiAoY2hlY2ssIGVsZSkge1xuICB2YXIgZmllbGQgPSBjaGVjay5maWVsZCxcbiAgICBvcGVyYXRvciA9IGNoZWNrLm9wZXJhdG9yLFxuICAgIHZhbHVlID0gY2hlY2sudmFsdWU7XG4gIHJldHVybiB2YWxDbXAobWV0YShlbGUsIGZpZWxkKSwgb3BlcmF0b3IsIHZhbHVlKTtcbn07XG5tYXRjaFtUeXBlLkRBVEFfQ09NUEFSRV0gPSBmdW5jdGlvbiAoY2hlY2ssIGVsZSkge1xuICB2YXIgZmllbGQgPSBjaGVjay5maWVsZCxcbiAgICBvcGVyYXRvciA9IGNoZWNrLm9wZXJhdG9yLFxuICAgIHZhbHVlID0gY2hlY2sudmFsdWU7XG4gIHJldHVybiB2YWxDbXAoZGF0YSQxKGVsZSwgZmllbGQpLCBvcGVyYXRvciwgdmFsdWUpO1xufTtcbm1hdGNoW1R5cGUuREFUQV9CT09MXSA9IGZ1bmN0aW9uIChjaGVjaywgZWxlKSB7XG4gIHZhciBmaWVsZCA9IGNoZWNrLmZpZWxkLFxuICAgIG9wZXJhdG9yID0gY2hlY2sub3BlcmF0b3I7XG4gIHJldHVybiBib29sQ21wKGRhdGEkMShlbGUsIGZpZWxkKSwgb3BlcmF0b3IpO1xufTtcbm1hdGNoW1R5cGUuREFUQV9FWElTVF0gPSBmdW5jdGlvbiAoY2hlY2ssIGVsZSkge1xuICB2YXIgZmllbGQgPSBjaGVjay5maWVsZDtcbiAgICBjaGVjay5vcGVyYXRvcjtcbiAgcmV0dXJuIGV4aXN0Q21wKGRhdGEkMShlbGUsIGZpZWxkKSk7XG59O1xubWF0Y2hbVHlwZS5VTkRJUkVDVEVEX0VER0VdID0gZnVuY3Rpb24gKGNoZWNrLCBlbGUpIHtcbiAgdmFyIHFBID0gY2hlY2subm9kZXNbMF07XG4gIHZhciBxQiA9IGNoZWNrLm5vZGVzWzFdO1xuICB2YXIgc3JjID0gZWxlLnNvdXJjZSgpO1xuICB2YXIgdGd0ID0gZWxlLnRhcmdldCgpO1xuICByZXR1cm4gbWF0Y2hlcyQxKHFBLCBzcmMpICYmIG1hdGNoZXMkMShxQiwgdGd0KSB8fCBtYXRjaGVzJDEocUIsIHNyYykgJiYgbWF0Y2hlcyQxKHFBLCB0Z3QpO1xufTtcbm1hdGNoW1R5cGUuTk9ERV9ORUlHSEJPUl0gPSBmdW5jdGlvbiAoY2hlY2ssIGVsZSkge1xuICByZXR1cm4gbWF0Y2hlcyQxKGNoZWNrLm5vZGUsIGVsZSkgJiYgZWxlLm5laWdoYm9yaG9vZCgpLnNvbWUoZnVuY3Rpb24gKG4pIHtcbiAgICByZXR1cm4gbi5pc05vZGUoKSAmJiBtYXRjaGVzJDEoY2hlY2submVpZ2hib3IsIG4pO1xuICB9KTtcbn07XG5tYXRjaFtUeXBlLkRJUkVDVEVEX0VER0VdID0gZnVuY3Rpb24gKGNoZWNrLCBlbGUpIHtcbiAgcmV0dXJuIG1hdGNoZXMkMShjaGVjay5zb3VyY2UsIGVsZS5zb3VyY2UoKSkgJiYgbWF0Y2hlcyQxKGNoZWNrLnRhcmdldCwgZWxlLnRhcmdldCgpKTtcbn07XG5tYXRjaFtUeXBlLk5PREVfU09VUkNFXSA9IGZ1bmN0aW9uIChjaGVjaywgZWxlKSB7XG4gIHJldHVybiBtYXRjaGVzJDEoY2hlY2suc291cmNlLCBlbGUpICYmIGVsZS5vdXRnb2VycygpLnNvbWUoZnVuY3Rpb24gKG4pIHtcbiAgICByZXR1cm4gbi5pc05vZGUoKSAmJiBtYXRjaGVzJDEoY2hlY2sudGFyZ2V0LCBuKTtcbiAgfSk7XG59O1xubWF0Y2hbVHlwZS5OT0RFX1RBUkdFVF0gPSBmdW5jdGlvbiAoY2hlY2ssIGVsZSkge1xuICByZXR1cm4gbWF0Y2hlcyQxKGNoZWNrLnRhcmdldCwgZWxlKSAmJiBlbGUuaW5jb21lcnMoKS5zb21lKGZ1bmN0aW9uIChuKSB7XG4gICAgcmV0dXJuIG4uaXNOb2RlKCkgJiYgbWF0Y2hlcyQxKGNoZWNrLnNvdXJjZSwgbik7XG4gIH0pO1xufTtcbm1hdGNoW1R5cGUuQ0hJTERdID0gZnVuY3Rpb24gKGNoZWNrLCBlbGUpIHtcbiAgcmV0dXJuIG1hdGNoZXMkMShjaGVjay5jaGlsZCwgZWxlKSAmJiBtYXRjaGVzJDEoY2hlY2sucGFyZW50LCBlbGUucGFyZW50KCkpO1xufTtcbm1hdGNoW1R5cGUuUEFSRU5UXSA9IGZ1bmN0aW9uIChjaGVjaywgZWxlKSB7XG4gIHJldHVybiBtYXRjaGVzJDEoY2hlY2sucGFyZW50LCBlbGUpICYmIGVsZS5jaGlsZHJlbigpLnNvbWUoZnVuY3Rpb24gKGMpIHtcbiAgICByZXR1cm4gbWF0Y2hlcyQxKGNoZWNrLmNoaWxkLCBjKTtcbiAgfSk7XG59O1xubWF0Y2hbVHlwZS5ERVNDRU5EQU5UXSA9IGZ1bmN0aW9uIChjaGVjaywgZWxlKSB7XG4gIHJldHVybiBtYXRjaGVzJDEoY2hlY2suZGVzY2VuZGFudCwgZWxlKSAmJiBlbGUuYW5jZXN0b3JzKCkuc29tZShmdW5jdGlvbiAoYSkge1xuICAgIHJldHVybiBtYXRjaGVzJDEoY2hlY2suYW5jZXN0b3IsIGEpO1xuICB9KTtcbn07XG5tYXRjaFtUeXBlLkFOQ0VTVE9SXSA9IGZ1bmN0aW9uIChjaGVjaywgZWxlKSB7XG4gIHJldHVybiBtYXRjaGVzJDEoY2hlY2suYW5jZXN0b3IsIGVsZSkgJiYgZWxlLmRlc2NlbmRhbnRzKCkuc29tZShmdW5jdGlvbiAoZCkge1xuICAgIHJldHVybiBtYXRjaGVzJDEoY2hlY2suZGVzY2VuZGFudCwgZCk7XG4gIH0pO1xufTtcbm1hdGNoW1R5cGUuQ09NUE9VTkRfU1BMSVRdID0gZnVuY3Rpb24gKGNoZWNrLCBlbGUpIHtcbiAgcmV0dXJuIG1hdGNoZXMkMShjaGVjay5zdWJqZWN0LCBlbGUpICYmIG1hdGNoZXMkMShjaGVjay5sZWZ0LCBlbGUpICYmIG1hdGNoZXMkMShjaGVjay5yaWdodCwgZWxlKTtcbn07XG5tYXRjaFtUeXBlLlRSVUVdID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdHJ1ZTtcbn07XG5tYXRjaFtUeXBlLkNPTExFQ1RJT05dID0gZnVuY3Rpb24gKGNoZWNrLCBlbGUpIHtcbiAgdmFyIGNvbGxlY3Rpb24gPSBjaGVjay52YWx1ZTtcbiAgcmV0dXJuIGNvbGxlY3Rpb24uaGFzKGVsZSk7XG59O1xubWF0Y2hbVHlwZS5GSUxURVJdID0gZnVuY3Rpb24gKGNoZWNrLCBlbGUpIHtcbiAgdmFyIGZpbHRlciA9IGNoZWNrLnZhbHVlO1xuICByZXR1cm4gZmlsdGVyKGVsZSk7XG59O1xuXG4vLyBmaWx0ZXIgYW4gZXhpc3RpbmcgY29sbGVjdGlvblxudmFyIGZpbHRlciA9IGZ1bmN0aW9uIGZpbHRlcihjb2xsZWN0aW9uKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICAvLyBmb3IgMSBpZCAjZm9vIHF1ZXJpZXMsIGp1c3QgZ2V0IHRoZSBlbGVtZW50XG4gIGlmIChzZWxmLmxlbmd0aCA9PT0gMSAmJiBzZWxmWzBdLmNoZWNrcy5sZW5ndGggPT09IDEgJiYgc2VsZlswXS5jaGVja3NbMF0udHlwZSA9PT0gVHlwZS5JRCkge1xuICAgIHJldHVybiBjb2xsZWN0aW9uLmdldEVsZW1lbnRCeUlkKHNlbGZbMF0uY2hlY2tzWzBdLnZhbHVlKS5jb2xsZWN0aW9uKCk7XG4gIH1cbiAgdmFyIHNlbGVjdG9yRnVuY3Rpb24gPSBmdW5jdGlvbiBzZWxlY3RvckZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHNlbGYubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBxdWVyeSA9IHNlbGZbal07XG4gICAgICBpZiAobWF0Y2hlcyQxKHF1ZXJ5LCBlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuICBpZiAoc2VsZi50ZXh0KCkgPT0gbnVsbCkge1xuICAgIHNlbGVjdG9yRnVuY3Rpb24gPSBmdW5jdGlvbiBzZWxlY3RvckZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gY29sbGVjdGlvbi5maWx0ZXIoc2VsZWN0b3JGdW5jdGlvbik7XG59OyAvLyBmaWx0ZXJcblxuLy8gZG9lcyBzZWxlY3RvciBtYXRjaCBhIHNpbmdsZSBlbGVtZW50P1xudmFyIG1hdGNoZXMgPSBmdW5jdGlvbiBtYXRjaGVzKGVsZSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIGZvciAodmFyIGogPSAwOyBqIDwgc2VsZi5sZW5ndGg7IGorKykge1xuICAgIHZhciBxdWVyeSA9IHNlbGZbal07XG4gICAgaWYgKG1hdGNoZXMkMShxdWVyeSwgZWxlKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn07IC8vIG1hdGNoZXNcblxudmFyIG1hdGNoaW5nID0ge1xuICBtYXRjaGVzOiBtYXRjaGVzLFxuICBmaWx0ZXI6IGZpbHRlclxufTtcblxudmFyIFNlbGVjdG9yID0gZnVuY3Rpb24gU2VsZWN0b3Ioc2VsZWN0b3IpIHtcbiAgdGhpcy5pbnB1dFRleHQgPSBzZWxlY3RvcjtcbiAgdGhpcy5jdXJyZW50U3ViamVjdCA9IG51bGw7XG4gIHRoaXMuY29tcG91bmRDb3VudCA9IDA7XG4gIHRoaXMuZWRnZUNvdW50ID0gMDtcbiAgdGhpcy5sZW5ndGggPSAwO1xuICBpZiAoc2VsZWN0b3IgPT0gbnVsbCB8fCBzdHJpbmcoc2VsZWN0b3IpICYmIHNlbGVjdG9yLm1hdGNoKC9eXFxzKiQvKSkgOyBlbHNlIGlmIChlbGVtZW50T3JDb2xsZWN0aW9uKHNlbGVjdG9yKSkge1xuICAgIHRoaXMuYWRkUXVlcnkoe1xuICAgICAgY2hlY2tzOiBbe1xuICAgICAgICB0eXBlOiBUeXBlLkNPTExFQ1RJT04sXG4gICAgICAgIHZhbHVlOiBzZWxlY3Rvci5jb2xsZWN0aW9uKClcbiAgICAgIH1dXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoZm4kNihzZWxlY3RvcikpIHtcbiAgICB0aGlzLmFkZFF1ZXJ5KHtcbiAgICAgIGNoZWNrczogW3tcbiAgICAgICAgdHlwZTogVHlwZS5GSUxURVIsXG4gICAgICAgIHZhbHVlOiBzZWxlY3RvclxuICAgICAgfV1cbiAgICB9KTtcbiAgfSBlbHNlIGlmIChzdHJpbmcoc2VsZWN0b3IpKSB7XG4gICAgaWYgKCF0aGlzLnBhcnNlKHNlbGVjdG9yKSkge1xuICAgICAgdGhpcy5pbnZhbGlkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZXJyb3IoJ0Egc2VsZWN0b3IgbXVzdCBiZSBjcmVhdGVkIGZyb20gYSBzdHJpbmc7IGZvdW5kICcpO1xuICB9XG59O1xudmFyIHNlbGZuID0gU2VsZWN0b3IucHJvdG90eXBlO1xuW3BhcnNlJDEsIG1hdGNoaW5nXS5mb3JFYWNoKGZ1bmN0aW9uIChwKSB7XG4gIHJldHVybiBleHRlbmQoc2VsZm4sIHApO1xufSk7XG5zZWxmbi50ZXh0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5pbnB1dFRleHQ7XG59O1xuc2VsZm4uc2l6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMubGVuZ3RoO1xufTtcbnNlbGZuLmVxID0gZnVuY3Rpb24gKGkpIHtcbiAgcmV0dXJuIHRoaXNbaV07XG59O1xuc2VsZm4uc2FtZVRleHQgPSBmdW5jdGlvbiAob3RoZXJTZWwpIHtcbiAgcmV0dXJuICF0aGlzLmludmFsaWQgJiYgIW90aGVyU2VsLmludmFsaWQgJiYgdGhpcy50ZXh0KCkgPT09IG90aGVyU2VsLnRleHQoKTtcbn07XG5zZWxmbi5hZGRRdWVyeSA9IGZ1bmN0aW9uIChxKSB7XG4gIHRoaXNbdGhpcy5sZW5ndGgrK10gPSBxO1xufTtcbnNlbGZuLnNlbGVjdG9yID0gc2VsZm4udG9TdHJpbmc7XG5cbnZhciBlbGVzZm4kZyA9IHtcbiAgYWxsQXJlOiBmdW5jdGlvbiBhbGxBcmUoc2VsZWN0b3IpIHtcbiAgICB2YXIgc2VsT2JqID0gbmV3IFNlbGVjdG9yKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gdGhpcy5ldmVyeShmdW5jdGlvbiAoZWxlKSB7XG4gICAgICByZXR1cm4gc2VsT2JqLm1hdGNoZXMoZWxlKTtcbiAgICB9KTtcbiAgfSxcbiAgaXM6IGZ1bmN0aW9uIGlzKHNlbGVjdG9yKSB7XG4gICAgdmFyIHNlbE9iaiA9IG5ldyBTZWxlY3RvcihzZWxlY3Rvcik7XG4gICAgcmV0dXJuIHRoaXMuc29tZShmdW5jdGlvbiAoZWxlKSB7XG4gICAgICByZXR1cm4gc2VsT2JqLm1hdGNoZXMoZWxlKTtcbiAgICB9KTtcbiAgfSxcbiAgc29tZTogZnVuY3Rpb24gc29tZShmbiwgdGhpc0FyZykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHJldCA9ICF0aGlzQXJnID8gZm4odGhpc1tpXSwgaSwgdGhpcykgOiBmbi5hcHBseSh0aGlzQXJnLCBbdGhpc1tpXSwgaSwgdGhpc10pO1xuICAgICAgaWYgKHJldCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuICBldmVyeTogZnVuY3Rpb24gZXZlcnkoZm4sIHRoaXNBcmcpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciByZXQgPSAhdGhpc0FyZyA/IGZuKHRoaXNbaV0sIGksIHRoaXMpIDogZm4uYXBwbHkodGhpc0FyZywgW3RoaXNbaV0sIGksIHRoaXNdKTtcbiAgICAgIGlmICghcmV0KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIHNhbWU6IGZ1bmN0aW9uIHNhbWUoY29sbGVjdGlvbikge1xuICAgIC8vIGNoZWFwIGNvbGxlY3Rpb24gcmVmIGNoZWNrXG4gICAgaWYgKHRoaXMgPT09IGNvbGxlY3Rpb24pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb2xsZWN0aW9uID0gdGhpcy5jeSgpLmNvbGxlY3Rpb24oY29sbGVjdGlvbik7XG4gICAgdmFyIHRoaXNMZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgICB2YXIgY29sbGVjdGlvbkxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoO1xuXG4gICAgLy8gY2hlYXAgbGVuZ3RoIGNoZWNrXG4gICAgaWYgKHRoaXNMZW5ndGggIT09IGNvbGxlY3Rpb25MZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBjaGVhcCBlbGVtZW50IHJlZiBjaGVja1xuICAgIGlmICh0aGlzTGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gdGhpc1swXSA9PT0gY29sbGVjdGlvblswXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZXZlcnkoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgcmV0dXJuIGNvbGxlY3Rpb24uaGFzRWxlbWVudFdpdGhJZChlbGUuaWQoKSk7XG4gICAgfSk7XG4gIH0sXG4gIGFueVNhbWU6IGZ1bmN0aW9uIGFueVNhbWUoY29sbGVjdGlvbikge1xuICAgIGNvbGxlY3Rpb24gPSB0aGlzLmN5KCkuY29sbGVjdGlvbihjb2xsZWN0aW9uKTtcbiAgICByZXR1cm4gdGhpcy5zb21lKGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgIHJldHVybiBjb2xsZWN0aW9uLmhhc0VsZW1lbnRXaXRoSWQoZWxlLmlkKCkpO1xuICAgIH0pO1xuICB9LFxuICBhbGxBcmVOZWlnaGJvcnM6IGZ1bmN0aW9uIGFsbEFyZU5laWdoYm9ycyhjb2xsZWN0aW9uKSB7XG4gICAgY29sbGVjdGlvbiA9IHRoaXMuY3koKS5jb2xsZWN0aW9uKGNvbGxlY3Rpb24pO1xuICAgIHZhciBuaG9vZCA9IHRoaXMubmVpZ2hib3Job29kKCk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uZXZlcnkoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgcmV0dXJuIG5ob29kLmhhc0VsZW1lbnRXaXRoSWQoZWxlLmlkKCkpO1xuICAgIH0pO1xuICB9LFxuICBjb250YWluczogZnVuY3Rpb24gY29udGFpbnMoY29sbGVjdGlvbikge1xuICAgIGNvbGxlY3Rpb24gPSB0aGlzLmN5KCkuY29sbGVjdGlvbihjb2xsZWN0aW9uKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uZXZlcnkoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgcmV0dXJuIHNlbGYuaGFzRWxlbWVudFdpdGhJZChlbGUuaWQoKSk7XG4gICAgfSk7XG4gIH1cbn07XG5lbGVzZm4kZy5hbGxBcmVOZWlnaGJvdXJzID0gZWxlc2ZuJGcuYWxsQXJlTmVpZ2hib3JzO1xuZWxlc2ZuJGcuaGFzID0gZWxlc2ZuJGcuY29udGFpbnM7XG5lbGVzZm4kZy5lcXVhbCA9IGVsZXNmbiRnLmVxdWFscyA9IGVsZXNmbiRnLnNhbWU7XG5cbnZhciBjYWNoZSA9IGZ1bmN0aW9uIGNhY2hlKGZuLCBuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbiB0cmF2ZXJzYWxDYWNoZShhcmcxLCBhcmcyLCBhcmczLCBhcmc0KSB7XG4gICAgdmFyIHNlbGVjdG9yT3JFbGVzID0gYXJnMTtcbiAgICB2YXIgZWxlcyA9IHRoaXM7XG4gICAgdmFyIGtleTtcbiAgICBpZiAoc2VsZWN0b3JPckVsZXMgPT0gbnVsbCkge1xuICAgICAga2V5ID0gJyc7XG4gICAgfSBlbHNlIGlmIChlbGVtZW50T3JDb2xsZWN0aW9uKHNlbGVjdG9yT3JFbGVzKSAmJiBzZWxlY3Rvck9yRWxlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGtleSA9IHNlbGVjdG9yT3JFbGVzLmlkKCk7XG4gICAgfVxuICAgIGlmIChlbGVzLmxlbmd0aCA9PT0gMSAmJiBrZXkpIHtcbiAgICAgIHZhciBfcCA9IGVsZXNbMF0uX3ByaXZhdGU7XG4gICAgICB2YXIgdGNoID0gX3AudHJhdmVyc2FsQ2FjaGUgPSBfcC50cmF2ZXJzYWxDYWNoZSB8fCB7fTtcbiAgICAgIHZhciBjaCA9IHRjaFtuYW1lXSA9IHRjaFtuYW1lXSB8fCBbXTtcbiAgICAgIHZhciBoYXNoID0gaGFzaFN0cmluZyhrZXkpO1xuICAgICAgdmFyIGNhY2hlSGl0ID0gY2hbaGFzaF07XG4gICAgICBpZiAoY2FjaGVIaXQpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlSGl0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNoW2hhc2hdID0gZm4uY2FsbChlbGVzLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZuLmNhbGwoZWxlcywgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCk7XG4gICAgfVxuICB9O1xufTtcblxudmFyIGVsZXNmbiRmID0ge1xuICBwYXJlbnQ6IGZ1bmN0aW9uIHBhcmVudChzZWxlY3Rvcikge1xuICAgIHZhciBwYXJlbnRzID0gW107XG5cbiAgICAvLyBvcHRpbWlzYXRpb24gZm9yIHNpbmdsZSBlbGUgY2FsbFxuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdmFyIHBhcmVudCA9IHRoaXNbMF0uX3ByaXZhdGUucGFyZW50O1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbGUgPSB0aGlzW2ldO1xuICAgICAgdmFyIF9wYXJlbnQgPSBlbGUuX3ByaXZhdGUucGFyZW50O1xuICAgICAgaWYgKF9wYXJlbnQpIHtcbiAgICAgICAgcGFyZW50cy5wdXNoKF9wYXJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zcGF3bihwYXJlbnRzLCB0cnVlKS5maWx0ZXIoc2VsZWN0b3IpO1xuICB9LFxuICBwYXJlbnRzOiBmdW5jdGlvbiBwYXJlbnRzKHNlbGVjdG9yKSB7XG4gICAgdmFyIHBhcmVudHMgPSBbXTtcbiAgICB2YXIgZWxlcyA9IHRoaXMucGFyZW50KCk7XG4gICAgd2hpbGUgKGVsZXMubm9uZW1wdHkoKSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlbGUgPSBlbGVzW2ldO1xuICAgICAgICBwYXJlbnRzLnB1c2goZWxlKTtcbiAgICAgIH1cbiAgICAgIGVsZXMgPSBlbGVzLnBhcmVudCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zcGF3bihwYXJlbnRzLCB0cnVlKS5maWx0ZXIoc2VsZWN0b3IpO1xuICB9LFxuICBjb21tb25BbmNlc3RvcnM6IGZ1bmN0aW9uIGNvbW1vbkFuY2VzdG9ycyhzZWxlY3Rvcikge1xuICAgIHZhciBhbmNlc3RvcnM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlID0gdGhpc1tpXTtcbiAgICAgIHZhciBwYXJlbnRzID0gZWxlLnBhcmVudHMoKTtcbiAgICAgIGFuY2VzdG9ycyA9IGFuY2VzdG9ycyB8fCBwYXJlbnRzO1xuICAgICAgYW5jZXN0b3JzID0gYW5jZXN0b3JzLmludGVyc2VjdChwYXJlbnRzKTsgLy8gY3VycmVudCBsaXN0IG11c3QgYmUgY29tbW9uIHdpdGggY3VycmVudCBlbGUgcGFyZW50cyBzZXRcbiAgICB9XG5cbiAgICByZXR1cm4gYW5jZXN0b3JzLmZpbHRlcihzZWxlY3Rvcik7XG4gIH0sXG4gIG9ycGhhbnM6IGZ1bmN0aW9uIG9ycGhhbnMoc2VsZWN0b3IpIHtcbiAgICByZXR1cm4gdGhpcy5zdGRGaWx0ZXIoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgcmV0dXJuIGVsZS5pc09ycGhhbigpO1xuICAgIH0pLmZpbHRlcihzZWxlY3Rvcik7XG4gIH0sXG4gIG5vbm9ycGhhbnM6IGZ1bmN0aW9uIG5vbm9ycGhhbnMoc2VsZWN0b3IpIHtcbiAgICByZXR1cm4gdGhpcy5zdGRGaWx0ZXIoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgcmV0dXJuIGVsZS5pc0NoaWxkKCk7XG4gICAgfSkuZmlsdGVyKHNlbGVjdG9yKTtcbiAgfSxcbiAgY2hpbGRyZW46IGNhY2hlKGZ1bmN0aW9uIChzZWxlY3Rvcikge1xuICAgIHZhciBjaGlsZHJlbiA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVsZSA9IHRoaXNbaV07XG4gICAgICB2YXIgZWxlQ2hpbGRyZW4gPSBlbGUuX3ByaXZhdGUuY2hpbGRyZW47XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGVsZUNoaWxkcmVuLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2goZWxlQ2hpbGRyZW5bal0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zcGF3bihjaGlsZHJlbiwgdHJ1ZSkuZmlsdGVyKHNlbGVjdG9yKTtcbiAgfSwgJ2NoaWxkcmVuJyksXG4gIHNpYmxpbmdzOiBmdW5jdGlvbiBzaWJsaW5ncyhzZWxlY3Rvcikge1xuICAgIHJldHVybiB0aGlzLnBhcmVudCgpLmNoaWxkcmVuKCkubm90KHRoaXMpLmZpbHRlcihzZWxlY3Rvcik7XG4gIH0sXG4gIGlzUGFyZW50OiBmdW5jdGlvbiBpc1BhcmVudCgpIHtcbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICBpZiAoZWxlKSB7XG4gICAgICByZXR1cm4gZWxlLmlzTm9kZSgpICYmIGVsZS5fcHJpdmF0ZS5jaGlsZHJlbi5sZW5ndGggIT09IDA7XG4gICAgfVxuICB9LFxuICBpc0NoaWxkbGVzczogZnVuY3Rpb24gaXNDaGlsZGxlc3MoKSB7XG4gICAgdmFyIGVsZSA9IHRoaXNbMF07XG4gICAgaWYgKGVsZSkge1xuICAgICAgcmV0dXJuIGVsZS5pc05vZGUoKSAmJiBlbGUuX3ByaXZhdGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwO1xuICAgIH1cbiAgfSxcbiAgaXNDaGlsZDogZnVuY3Rpb24gaXNDaGlsZCgpIHtcbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICBpZiAoZWxlKSB7XG4gICAgICByZXR1cm4gZWxlLmlzTm9kZSgpICYmIGVsZS5fcHJpdmF0ZS5wYXJlbnQgIT0gbnVsbDtcbiAgICB9XG4gIH0sXG4gIGlzT3JwaGFuOiBmdW5jdGlvbiBpc09ycGhhbigpIHtcbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICBpZiAoZWxlKSB7XG4gICAgICByZXR1cm4gZWxlLmlzTm9kZSgpICYmIGVsZS5fcHJpdmF0ZS5wYXJlbnQgPT0gbnVsbDtcbiAgICB9XG4gIH0sXG4gIGRlc2NlbmRhbnRzOiBmdW5jdGlvbiBkZXNjZW5kYW50cyhzZWxlY3Rvcikge1xuICAgIHZhciBlbGVtZW50cyA9IFtdO1xuICAgIGZ1bmN0aW9uIGFkZChlbGVzKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGVsZSA9IGVsZXNbaV07XG4gICAgICAgIGVsZW1lbnRzLnB1c2goZWxlKTtcbiAgICAgICAgaWYgKGVsZS5jaGlsZHJlbigpLm5vbmVtcHR5KCkpIHtcbiAgICAgICAgICBhZGQoZWxlLmNoaWxkcmVuKCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGFkZCh0aGlzLmNoaWxkcmVuKCkpO1xuICAgIHJldHVybiB0aGlzLnNwYXduKGVsZW1lbnRzLCB0cnVlKS5maWx0ZXIoc2VsZWN0b3IpO1xuICB9XG59O1xuZnVuY3Rpb24gZm9yRWFjaENvbXBvdW5kKGVsZXMsIGZuLCBpbmNsdWRlU2VsZiwgcmVjdXJzaXZlU3RlcCkge1xuICB2YXIgcSA9IFtdO1xuICB2YXIgZGlkID0gbmV3IFNldCQxKCk7XG4gIHZhciBjeSA9IGVsZXMuY3koKTtcbiAgdmFyIGhhc0NvbXBvdW5kcyA9IGN5Lmhhc0NvbXBvdW5kTm9kZXMoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVsZSA9IGVsZXNbaV07XG4gICAgaWYgKGluY2x1ZGVTZWxmKSB7XG4gICAgICBxLnB1c2goZWxlKTtcbiAgICB9IGVsc2UgaWYgKGhhc0NvbXBvdW5kcykge1xuICAgICAgcmVjdXJzaXZlU3RlcChxLCBkaWQsIGVsZSk7XG4gICAgfVxuICB9XG4gIHdoaWxlIChxLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgX2VsZSA9IHEuc2hpZnQoKTtcbiAgICBmbihfZWxlKTtcbiAgICBkaWQuYWRkKF9lbGUuaWQoKSk7XG4gICAgaWYgKGhhc0NvbXBvdW5kcykge1xuICAgICAgcmVjdXJzaXZlU3RlcChxLCBkaWQsIF9lbGUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZWxlcztcbn1cbmZ1bmN0aW9uIGFkZENoaWxkcmVuKHEsIGRpZCwgZWxlKSB7XG4gIGlmIChlbGUuaXNQYXJlbnQoKSkge1xuICAgIHZhciBjaGlsZHJlbiA9IGVsZS5fcHJpdmF0ZS5jaGlsZHJlbjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICAgIGlmICghZGlkLmhhcyhjaGlsZC5pZCgpKSkge1xuICAgICAgICBxLnB1c2goY2hpbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyB2ZXJ5IGVmZmljaWVudCB2ZXJzaW9uIG9mIGVsZXMuYWRkKCBlbGVzLmRlc2NlbmRhbnRzKCkgKS5mb3JFYWNoKClcbi8vIGZvciBpbnRlcm5hbCB1c2VcbmVsZXNmbiRmLmZvckVhY2hEb3duID0gZnVuY3Rpb24gKGZuKSB7XG4gIHZhciBpbmNsdWRlU2VsZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogdHJ1ZTtcbiAgcmV0dXJuIGZvckVhY2hDb21wb3VuZCh0aGlzLCBmbiwgaW5jbHVkZVNlbGYsIGFkZENoaWxkcmVuKTtcbn07XG5mdW5jdGlvbiBhZGRQYXJlbnQocSwgZGlkLCBlbGUpIHtcbiAgaWYgKGVsZS5pc0NoaWxkKCkpIHtcbiAgICB2YXIgcGFyZW50ID0gZWxlLl9wcml2YXRlLnBhcmVudDtcbiAgICBpZiAoIWRpZC5oYXMocGFyZW50LmlkKCkpKSB7XG4gICAgICBxLnB1c2gocGFyZW50KTtcbiAgICB9XG4gIH1cbn1cbmVsZXNmbiRmLmZvckVhY2hVcCA9IGZ1bmN0aW9uIChmbikge1xuICB2YXIgaW5jbHVkZVNlbGYgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHRydWU7XG4gIHJldHVybiBmb3JFYWNoQ29tcG91bmQodGhpcywgZm4sIGluY2x1ZGVTZWxmLCBhZGRQYXJlbnQpO1xufTtcbmZ1bmN0aW9uIGFkZFBhcmVudEFuZENoaWxkcmVuKHEsIGRpZCwgZWxlKSB7XG4gIGFkZFBhcmVudChxLCBkaWQsIGVsZSk7XG4gIGFkZENoaWxkcmVuKHEsIGRpZCwgZWxlKTtcbn1cbmVsZXNmbiRmLmZvckVhY2hVcEFuZERvd24gPSBmdW5jdGlvbiAoZm4pIHtcbiAgdmFyIGluY2x1ZGVTZWxmID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB0cnVlO1xuICByZXR1cm4gZm9yRWFjaENvbXBvdW5kKHRoaXMsIGZuLCBpbmNsdWRlU2VsZiwgYWRkUGFyZW50QW5kQ2hpbGRyZW4pO1xufTtcblxuLy8gYWxpYXNlc1xuZWxlc2ZuJGYuYW5jZXN0b3JzID0gZWxlc2ZuJGYucGFyZW50cztcblxudmFyIGZuJDUsIGVsZXNmbiRlO1xuZm4kNSA9IGVsZXNmbiRlID0ge1xuICBkYXRhOiBkZWZpbmUuZGF0YSh7XG4gICAgZmllbGQ6ICdkYXRhJyxcbiAgICBiaW5kaW5nRXZlbnQ6ICdkYXRhJyxcbiAgICBhbGxvd0JpbmRpbmc6IHRydWUsXG4gICAgYWxsb3dTZXR0aW5nOiB0cnVlLFxuICAgIHNldHRpbmdFdmVudDogJ2RhdGEnLFxuICAgIHNldHRpbmdUcmlnZ2Vyc0V2ZW50OiB0cnVlLFxuICAgIHRyaWdnZXJGbk5hbWU6ICd0cmlnZ2VyJyxcbiAgICBhbGxvd0dldHRpbmc6IHRydWUsXG4gICAgaW1tdXRhYmxlS2V5czoge1xuICAgICAgJ2lkJzogdHJ1ZSxcbiAgICAgICdzb3VyY2UnOiB0cnVlLFxuICAgICAgJ3RhcmdldCc6IHRydWUsXG4gICAgICAncGFyZW50JzogdHJ1ZVxuICAgIH0sXG4gICAgdXBkYXRlU3R5bGU6IHRydWVcbiAgfSksXG4gIHJlbW92ZURhdGE6IGRlZmluZS5yZW1vdmVEYXRhKHtcbiAgICBmaWVsZDogJ2RhdGEnLFxuICAgIGV2ZW50OiAnZGF0YScsXG4gICAgdHJpZ2dlckZuTmFtZTogJ3RyaWdnZXInLFxuICAgIHRyaWdnZXJFdmVudDogdHJ1ZSxcbiAgICBpbW11dGFibGVLZXlzOiB7XG4gICAgICAnaWQnOiB0cnVlLFxuICAgICAgJ3NvdXJjZSc6IHRydWUsXG4gICAgICAndGFyZ2V0JzogdHJ1ZSxcbiAgICAgICdwYXJlbnQnOiB0cnVlXG4gICAgfSxcbiAgICB1cGRhdGVTdHlsZTogdHJ1ZVxuICB9KSxcbiAgc2NyYXRjaDogZGVmaW5lLmRhdGEoe1xuICAgIGZpZWxkOiAnc2NyYXRjaCcsXG4gICAgYmluZGluZ0V2ZW50OiAnc2NyYXRjaCcsXG4gICAgYWxsb3dCaW5kaW5nOiB0cnVlLFxuICAgIGFsbG93U2V0dGluZzogdHJ1ZSxcbiAgICBzZXR0aW5nRXZlbnQ6ICdzY3JhdGNoJyxcbiAgICBzZXR0aW5nVHJpZ2dlcnNFdmVudDogdHJ1ZSxcbiAgICB0cmlnZ2VyRm5OYW1lOiAndHJpZ2dlcicsXG4gICAgYWxsb3dHZXR0aW5nOiB0cnVlLFxuICAgIHVwZGF0ZVN0eWxlOiB0cnVlXG4gIH0pLFxuICByZW1vdmVTY3JhdGNoOiBkZWZpbmUucmVtb3ZlRGF0YSh7XG4gICAgZmllbGQ6ICdzY3JhdGNoJyxcbiAgICBldmVudDogJ3NjcmF0Y2gnLFxuICAgIHRyaWdnZXJGbk5hbWU6ICd0cmlnZ2VyJyxcbiAgICB0cmlnZ2VyRXZlbnQ6IHRydWUsXG4gICAgdXBkYXRlU3R5bGU6IHRydWVcbiAgfSksXG4gIHJzY3JhdGNoOiBkZWZpbmUuZGF0YSh7XG4gICAgZmllbGQ6ICdyc2NyYXRjaCcsXG4gICAgYWxsb3dCaW5kaW5nOiBmYWxzZSxcbiAgICBhbGxvd1NldHRpbmc6IHRydWUsXG4gICAgc2V0dGluZ1RyaWdnZXJzRXZlbnQ6IGZhbHNlLFxuICAgIGFsbG93R2V0dGluZzogdHJ1ZVxuICB9KSxcbiAgcmVtb3ZlUnNjcmF0Y2g6IGRlZmluZS5yZW1vdmVEYXRhKHtcbiAgICBmaWVsZDogJ3JzY3JhdGNoJyxcbiAgICB0cmlnZ2VyRXZlbnQ6IGZhbHNlXG4gIH0pLFxuICBpZDogZnVuY3Rpb24gaWQoKSB7XG4gICAgdmFyIGVsZSA9IHRoaXNbMF07XG4gICAgaWYgKGVsZSkge1xuICAgICAgcmV0dXJuIGVsZS5fcHJpdmF0ZS5kYXRhLmlkO1xuICAgIH1cbiAgfVxufTtcblxuLy8gYWxpYXNlc1xuZm4kNS5hdHRyID0gZm4kNS5kYXRhO1xuZm4kNS5yZW1vdmVBdHRyID0gZm4kNS5yZW1vdmVEYXRhO1xudmFyIGRhdGEgPSBlbGVzZm4kZTtcblxudmFyIGVsZXNmbiRkID0ge307XG5mdW5jdGlvbiBkZWZpbmVEZWdyZWVGdW5jdGlvbihjYWxsYmFjaykge1xuICByZXR1cm4gZnVuY3Rpb24gKGluY2x1ZGVMb29wcykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBpZiAoaW5jbHVkZUxvb3BzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGluY2x1ZGVMb29wcyA9IHRydWU7XG4gICAgfVxuICAgIGlmIChzZWxmLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc2VsZi5pc05vZGUoKSAmJiAhc2VsZi5yZW1vdmVkKCkpIHtcbiAgICAgIHZhciBkZWdyZWUgPSAwO1xuICAgICAgdmFyIG5vZGUgPSBzZWxmWzBdO1xuICAgICAgdmFyIGNvbm5lY3RlZEVkZ2VzID0gbm9kZS5fcHJpdmF0ZS5lZGdlcztcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29ubmVjdGVkRWRnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGVkZ2UgPSBjb25uZWN0ZWRFZGdlc1tpXTtcbiAgICAgICAgaWYgKCFpbmNsdWRlTG9vcHMgJiYgZWRnZS5pc0xvb3AoKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGRlZ3JlZSArPSBjYWxsYmFjayhub2RlLCBlZGdlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkZWdyZWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH07XG59XG5leHRlbmQoZWxlc2ZuJGQsIHtcbiAgZGVncmVlOiBkZWZpbmVEZWdyZWVGdW5jdGlvbihmdW5jdGlvbiAobm9kZSwgZWRnZSkge1xuICAgIGlmIChlZGdlLnNvdXJjZSgpLnNhbWUoZWRnZS50YXJnZXQoKSkpIHtcbiAgICAgIHJldHVybiAyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gIH0pLFxuICBpbmRlZ3JlZTogZGVmaW5lRGVncmVlRnVuY3Rpb24oZnVuY3Rpb24gKG5vZGUsIGVkZ2UpIHtcbiAgICBpZiAoZWRnZS50YXJnZXQoKS5zYW1lKG5vZGUpKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9KSxcbiAgb3V0ZGVncmVlOiBkZWZpbmVEZWdyZWVGdW5jdGlvbihmdW5jdGlvbiAobm9kZSwgZWRnZSkge1xuICAgIGlmIChlZGdlLnNvdXJjZSgpLnNhbWUobm9kZSkpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH0pXG59KTtcbmZ1bmN0aW9uIGRlZmluZURlZ3JlZUJvdW5kc0Z1bmN0aW9uKGRlZ3JlZUZuLCBjYWxsYmFjaykge1xuICByZXR1cm4gZnVuY3Rpb24gKGluY2x1ZGVMb29wcykge1xuICAgIHZhciByZXQ7XG4gICAgdmFyIG5vZGVzID0gdGhpcy5ub2RlcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbGUgPSBub2Rlc1tpXTtcbiAgICAgIHZhciBkZWdyZWUgPSBlbGVbZGVncmVlRm5dKGluY2x1ZGVMb29wcyk7XG4gICAgICBpZiAoZGVncmVlICE9PSB1bmRlZmluZWQgJiYgKHJldCA9PT0gdW5kZWZpbmVkIHx8IGNhbGxiYWNrKGRlZ3JlZSwgcmV0KSkpIHtcbiAgICAgICAgcmV0ID0gZGVncmVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9O1xufVxuZXh0ZW5kKGVsZXNmbiRkLCB7XG4gIG1pbkRlZ3JlZTogZGVmaW5lRGVncmVlQm91bmRzRnVuY3Rpb24oJ2RlZ3JlZScsIGZ1bmN0aW9uIChkZWdyZWUsIG1pbikge1xuICAgIHJldHVybiBkZWdyZWUgPCBtaW47XG4gIH0pLFxuICBtYXhEZWdyZWU6IGRlZmluZURlZ3JlZUJvdW5kc0Z1bmN0aW9uKCdkZWdyZWUnLCBmdW5jdGlvbiAoZGVncmVlLCBtYXgpIHtcbiAgICByZXR1cm4gZGVncmVlID4gbWF4O1xuICB9KSxcbiAgbWluSW5kZWdyZWU6IGRlZmluZURlZ3JlZUJvdW5kc0Z1bmN0aW9uKCdpbmRlZ3JlZScsIGZ1bmN0aW9uIChkZWdyZWUsIG1pbikge1xuICAgIHJldHVybiBkZWdyZWUgPCBtaW47XG4gIH0pLFxuICBtYXhJbmRlZ3JlZTogZGVmaW5lRGVncmVlQm91bmRzRnVuY3Rpb24oJ2luZGVncmVlJywgZnVuY3Rpb24gKGRlZ3JlZSwgbWF4KSB7XG4gICAgcmV0dXJuIGRlZ3JlZSA+IG1heDtcbiAgfSksXG4gIG1pbk91dGRlZ3JlZTogZGVmaW5lRGVncmVlQm91bmRzRnVuY3Rpb24oJ291dGRlZ3JlZScsIGZ1bmN0aW9uIChkZWdyZWUsIG1pbikge1xuICAgIHJldHVybiBkZWdyZWUgPCBtaW47XG4gIH0pLFxuICBtYXhPdXRkZWdyZWU6IGRlZmluZURlZ3JlZUJvdW5kc0Z1bmN0aW9uKCdvdXRkZWdyZWUnLCBmdW5jdGlvbiAoZGVncmVlLCBtYXgpIHtcbiAgICByZXR1cm4gZGVncmVlID4gbWF4O1xuICB9KVxufSk7XG5leHRlbmQoZWxlc2ZuJGQsIHtcbiAgdG90YWxEZWdyZWU6IGZ1bmN0aW9uIHRvdGFsRGVncmVlKGluY2x1ZGVMb29wcykge1xuICAgIHZhciB0b3RhbCA9IDA7XG4gICAgdmFyIG5vZGVzID0gdGhpcy5ub2RlcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRvdGFsICs9IG5vZGVzW2ldLmRlZ3JlZShpbmNsdWRlTG9vcHMpO1xuICAgIH1cbiAgICByZXR1cm4gdG90YWw7XG4gIH1cbn0pO1xuXG52YXIgZm4kNCwgZWxlc2ZuJGM7XG52YXIgYmVmb3JlUG9zaXRpb25TZXQgPSBmdW5jdGlvbiBiZWZvcmVQb3NpdGlvblNldChlbGVzLCBuZXdQb3MsIHNpbGVudCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZWxlID0gZWxlc1tpXTtcbiAgICBpZiAoIWVsZS5sb2NrZWQoKSkge1xuICAgICAgdmFyIG9sZFBvcyA9IGVsZS5fcHJpdmF0ZS5wb3NpdGlvbjtcbiAgICAgIHZhciBkZWx0YSA9IHtcbiAgICAgICAgeDogbmV3UG9zLnggIT0gbnVsbCA/IG5ld1Bvcy54IC0gb2xkUG9zLnggOiAwLFxuICAgICAgICB5OiBuZXdQb3MueSAhPSBudWxsID8gbmV3UG9zLnkgLSBvbGRQb3MueSA6IDBcbiAgICAgIH07XG4gICAgICBpZiAoZWxlLmlzUGFyZW50KCkgJiYgIShkZWx0YS54ID09PSAwICYmIGRlbHRhLnkgPT09IDApKSB7XG4gICAgICAgIGVsZS5jaGlsZHJlbigpLnNoaWZ0KGRlbHRhLCBzaWxlbnQpO1xuICAgICAgfVxuICAgICAgZWxlLmRpcnR5Qm91bmRpbmdCb3hDYWNoZSgpO1xuICAgIH1cbiAgfVxufTtcbnZhciBwb3NpdGlvbkRlZiA9IHtcbiAgZmllbGQ6ICdwb3NpdGlvbicsXG4gIGJpbmRpbmdFdmVudDogJ3Bvc2l0aW9uJyxcbiAgYWxsb3dCaW5kaW5nOiB0cnVlLFxuICBhbGxvd1NldHRpbmc6IHRydWUsXG4gIHNldHRpbmdFdmVudDogJ3Bvc2l0aW9uJyxcbiAgc2V0dGluZ1RyaWdnZXJzRXZlbnQ6IHRydWUsXG4gIHRyaWdnZXJGbk5hbWU6ICdlbWl0QW5kTm90aWZ5JyxcbiAgYWxsb3dHZXR0aW5nOiB0cnVlLFxuICB2YWxpZEtleXM6IFsneCcsICd5J10sXG4gIGJlZm9yZUdldDogZnVuY3Rpb24gYmVmb3JlR2V0KGVsZSkge1xuICAgIGVsZS51cGRhdGVDb21wb3VuZEJvdW5kcygpO1xuICB9LFxuICBiZWZvcmVTZXQ6IGZ1bmN0aW9uIGJlZm9yZVNldChlbGVzLCBuZXdQb3MpIHtcbiAgICBiZWZvcmVQb3NpdGlvblNldChlbGVzLCBuZXdQb3MsIGZhbHNlKTtcbiAgfSxcbiAgb25TZXQ6IGZ1bmN0aW9uIG9uU2V0KGVsZXMpIHtcbiAgICBlbGVzLmRpcnR5Q29tcG91bmRCb3VuZHNDYWNoZSgpO1xuICB9LFxuICBjYW5TZXQ6IGZ1bmN0aW9uIGNhblNldChlbGUpIHtcbiAgICByZXR1cm4gIWVsZS5sb2NrZWQoKTtcbiAgfVxufTtcbmZuJDQgPSBlbGVzZm4kYyA9IHtcbiAgcG9zaXRpb246IGRlZmluZS5kYXRhKHBvc2l0aW9uRGVmKSxcbiAgLy8gcG9zaXRpb24gYnV0IG5vIG5vdGlmaWNhdGlvbiB0byByZW5kZXJlclxuICBzaWxlbnRQb3NpdGlvbjogZGVmaW5lLmRhdGEoZXh0ZW5kKHt9LCBwb3NpdGlvbkRlZiwge1xuICAgIGFsbG93QmluZGluZzogZmFsc2UsXG4gICAgYWxsb3dTZXR0aW5nOiB0cnVlLFxuICAgIHNldHRpbmdUcmlnZ2Vyc0V2ZW50OiBmYWxzZSxcbiAgICBhbGxvd0dldHRpbmc6IGZhbHNlLFxuICAgIGJlZm9yZVNldDogZnVuY3Rpb24gYmVmb3JlU2V0KGVsZXMsIG5ld1Bvcykge1xuICAgICAgYmVmb3JlUG9zaXRpb25TZXQoZWxlcywgbmV3UG9zLCB0cnVlKTtcbiAgICB9LFxuICAgIG9uU2V0OiBmdW5jdGlvbiBvblNldChlbGVzKSB7XG4gICAgICBlbGVzLmRpcnR5Q29tcG91bmRCb3VuZHNDYWNoZSgpO1xuICAgIH1cbiAgfSkpLFxuICBwb3NpdGlvbnM6IGZ1bmN0aW9uIHBvc2l0aW9ucyhwb3MsIHNpbGVudCkge1xuICAgIGlmIChwbGFpbk9iamVjdChwb3MpKSB7XG4gICAgICBpZiAoc2lsZW50KSB7XG4gICAgICAgIHRoaXMuc2lsZW50UG9zaXRpb24ocG9zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucG9zaXRpb24ocG9zKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGZuJDYocG9zKSkge1xuICAgICAgdmFyIF9mbiA9IHBvcztcbiAgICAgIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgICAgIGN5LnN0YXJ0QmF0Y2goKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZWxlID0gdGhpc1tpXTtcbiAgICAgICAgdmFyIF9wb3MgPSB2b2lkIDA7XG4gICAgICAgIGlmIChfcG9zID0gX2ZuKGVsZSwgaSkpIHtcbiAgICAgICAgICBpZiAoc2lsZW50KSB7XG4gICAgICAgICAgICBlbGUuc2lsZW50UG9zaXRpb24oX3Bvcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZS5wb3NpdGlvbihfcG9zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGN5LmVuZEJhdGNoKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9LFxuXG4gIHNpbGVudFBvc2l0aW9uczogZnVuY3Rpb24gc2lsZW50UG9zaXRpb25zKHBvcykge1xuICAgIHJldHVybiB0aGlzLnBvc2l0aW9ucyhwb3MsIHRydWUpO1xuICB9LFxuICBzaGlmdDogZnVuY3Rpb24gc2hpZnQoZGltLCB2YWwsIHNpbGVudCkge1xuICAgIHZhciBkZWx0YTtcbiAgICBpZiAocGxhaW5PYmplY3QoZGltKSkge1xuICAgICAgZGVsdGEgPSB7XG4gICAgICAgIHg6IG51bWJlciQxKGRpbS54KSA/IGRpbS54IDogMCxcbiAgICAgICAgeTogbnVtYmVyJDEoZGltLnkpID8gZGltLnkgOiAwXG4gICAgICB9O1xuICAgICAgc2lsZW50ID0gdmFsO1xuICAgIH0gZWxzZSBpZiAoc3RyaW5nKGRpbSkgJiYgbnVtYmVyJDEodmFsKSkge1xuICAgICAgZGVsdGEgPSB7XG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IDBcbiAgICAgIH07XG4gICAgICBkZWx0YVtkaW1dID0gdmFsO1xuICAgIH1cbiAgICBpZiAoZGVsdGEgIT0gbnVsbCkge1xuICAgICAgdmFyIGN5ID0gdGhpcy5jeSgpO1xuICAgICAgY3kuc3RhcnRCYXRjaCgpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlbGUgPSB0aGlzW2ldO1xuXG4gICAgICAgIC8vIGV4Y2x1ZGUgYW55IG5vZGUgdGhhdCBpcyBhIGRlc2NlbmRhbnQgb2YgdGhlIGNhbGxpbmcgY29sbGVjdGlvblxuICAgICAgICBpZiAoY3kuaGFzQ29tcG91bmROb2RlcygpICYmIGVsZS5pc0NoaWxkKCkgJiYgZWxlLmFuY2VzdG9ycygpLmFueVNhbWUodGhpcykpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcG9zID0gZWxlLnBvc2l0aW9uKCk7XG4gICAgICAgIHZhciBuZXdQb3MgPSB7XG4gICAgICAgICAgeDogcG9zLnggKyBkZWx0YS54LFxuICAgICAgICAgIHk6IHBvcy55ICsgZGVsdGEueVxuICAgICAgICB9O1xuICAgICAgICBpZiAoc2lsZW50KSB7XG4gICAgICAgICAgZWxlLnNpbGVudFBvc2l0aW9uKG5ld1Bvcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZWxlLnBvc2l0aW9uKG5ld1Bvcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGN5LmVuZEJhdGNoKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICBzaWxlbnRTaGlmdDogZnVuY3Rpb24gc2lsZW50U2hpZnQoZGltLCB2YWwpIHtcbiAgICBpZiAocGxhaW5PYmplY3QoZGltKSkge1xuICAgICAgdGhpcy5zaGlmdChkaW0sIHRydWUpO1xuICAgIH0gZWxzZSBpZiAoc3RyaW5nKGRpbSkgJiYgbnVtYmVyJDEodmFsKSkge1xuICAgICAgdGhpcy5zaGlmdChkaW0sIHZhbCwgdHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICAvLyBnZXQvc2V0IHRoZSByZW5kZXJlZCAoaS5lLiBvbiBzY3JlZW4pIHBvc2l0b24gb2YgdGhlIGVsZW1lbnRcbiAgcmVuZGVyZWRQb3NpdGlvbjogZnVuY3Rpb24gcmVuZGVyZWRQb3NpdGlvbihkaW0sIHZhbCkge1xuICAgIHZhciBlbGUgPSB0aGlzWzBdO1xuICAgIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgICB2YXIgem9vbSA9IGN5Lnpvb20oKTtcbiAgICB2YXIgcGFuID0gY3kucGFuKCk7XG4gICAgdmFyIHJwb3MgPSBwbGFpbk9iamVjdChkaW0pID8gZGltIDogdW5kZWZpbmVkO1xuICAgIHZhciBzZXR0aW5nID0gcnBvcyAhPT0gdW5kZWZpbmVkIHx8IHZhbCAhPT0gdW5kZWZpbmVkICYmIHN0cmluZyhkaW0pO1xuICAgIGlmIChlbGUgJiYgZWxlLmlzTm9kZSgpKSB7XG4gICAgICAvLyBtdXN0IGhhdmUgYW4gZWxlbWVudCBhbmQgbXVzdCBiZSBhIG5vZGUgdG8gcmV0dXJuIHBvc2l0aW9uXG4gICAgICBpZiAoc2V0dGluZykge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgX2VsZSA9IHRoaXNbaV07XG4gICAgICAgICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBzZXQgb25lIGRpbWVuc2lvblxuICAgICAgICAgICAgX2VsZS5wb3NpdGlvbihkaW0sICh2YWwgLSBwYW5bZGltXSkgLyB6b29tKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJwb3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gc2V0IHdob2xlIHBvc2l0aW9uXG4gICAgICAgICAgICBfZWxlLnBvc2l0aW9uKHJlbmRlcmVkVG9Nb2RlbFBvc2l0aW9uKHJwb3MsIHpvb20sIHBhbikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZ2V0dGluZ1xuICAgICAgICB2YXIgcG9zID0gZWxlLnBvc2l0aW9uKCk7XG4gICAgICAgIHJwb3MgPSBtb2RlbFRvUmVuZGVyZWRQb3NpdGlvbihwb3MsIHpvb20sIHBhbik7XG4gICAgICAgIGlmIChkaW0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIHRoZW4gcmV0dXJuIHRoZSB3aG9sZSByZW5kZXJlZCBwb3NpdGlvblxuICAgICAgICAgIHJldHVybiBycG9zO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHRoZW4gcmV0dXJuIHRoZSBzcGVjaWZpZWQgZGltZW5zaW9uXG4gICAgICAgICAgcmV0dXJuIHJwb3NbZGltXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXNldHRpbmcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7IC8vIGZvciBlbXB0eSBjb2xsZWN0aW9uIGNhc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgfSxcblxuICAvLyBnZXQvc2V0IHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgcGFyZW50XG4gIHJlbGF0aXZlUG9zaXRpb246IGZ1bmN0aW9uIHJlbGF0aXZlUG9zaXRpb24oZGltLCB2YWwpIHtcbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgdmFyIHBwb3MgPSBwbGFpbk9iamVjdChkaW0pID8gZGltIDogdW5kZWZpbmVkO1xuICAgIHZhciBzZXR0aW5nID0gcHBvcyAhPT0gdW5kZWZpbmVkIHx8IHZhbCAhPT0gdW5kZWZpbmVkICYmIHN0cmluZyhkaW0pO1xuICAgIHZhciBoYXNDb21wb3VuZE5vZGVzID0gY3kuaGFzQ29tcG91bmROb2RlcygpO1xuICAgIGlmIChlbGUgJiYgZWxlLmlzTm9kZSgpKSB7XG4gICAgICAvLyBtdXN0IGhhdmUgYW4gZWxlbWVudCBhbmQgbXVzdCBiZSBhIG5vZGUgdG8gcmV0dXJuIHBvc2l0aW9uXG4gICAgICBpZiAoc2V0dGluZykge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgX2VsZTIgPSB0aGlzW2ldO1xuICAgICAgICAgIHZhciBwYXJlbnQgPSBoYXNDb21wb3VuZE5vZGVzID8gX2VsZTIucGFyZW50KCkgOiBudWxsO1xuICAgICAgICAgIHZhciBoYXNQYXJlbnQgPSBwYXJlbnQgJiYgcGFyZW50Lmxlbmd0aCA+IDA7XG4gICAgICAgICAgdmFyIHJlbGF0aXZlVG9QYXJlbnQgPSBoYXNQYXJlbnQ7XG4gICAgICAgICAgaWYgKGhhc1BhcmVudCkge1xuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50WzBdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgb3JpZ2luID0gcmVsYXRpdmVUb1BhcmVudCA/IHBhcmVudC5wb3NpdGlvbigpIDoge1xuICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgIHk6IDBcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gc2V0IG9uZSBkaW1lbnNpb25cbiAgICAgICAgICAgIF9lbGUyLnBvc2l0aW9uKGRpbSwgdmFsICsgb3JpZ2luW2RpbV0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAocHBvcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBzZXQgd2hvbGUgcG9zaXRpb25cbiAgICAgICAgICAgIF9lbGUyLnBvc2l0aW9uKHtcbiAgICAgICAgICAgICAgeDogcHBvcy54ICsgb3JpZ2luLngsXG4gICAgICAgICAgICAgIHk6IHBwb3MueSArIG9yaWdpbi55XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGdldHRpbmdcbiAgICAgICAgdmFyIHBvcyA9IGVsZS5wb3NpdGlvbigpO1xuICAgICAgICB2YXIgX3BhcmVudCA9IGhhc0NvbXBvdW5kTm9kZXMgPyBlbGUucGFyZW50KCkgOiBudWxsO1xuICAgICAgICB2YXIgX2hhc1BhcmVudCA9IF9wYXJlbnQgJiYgX3BhcmVudC5sZW5ndGggPiAwO1xuICAgICAgICB2YXIgX3JlbGF0aXZlVG9QYXJlbnQgPSBfaGFzUGFyZW50O1xuICAgICAgICBpZiAoX2hhc1BhcmVudCkge1xuICAgICAgICAgIF9wYXJlbnQgPSBfcGFyZW50WzBdO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfb3JpZ2luID0gX3JlbGF0aXZlVG9QYXJlbnQgPyBfcGFyZW50LnBvc2l0aW9uKCkgOiB7XG4gICAgICAgICAgeDogMCxcbiAgICAgICAgICB5OiAwXG4gICAgICAgIH07XG4gICAgICAgIHBwb3MgPSB7XG4gICAgICAgICAgeDogcG9zLnggLSBfb3JpZ2luLngsXG4gICAgICAgICAgeTogcG9zLnkgLSBfb3JpZ2luLnlcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGRpbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gdGhlbiByZXR1cm4gdGhlIHdob2xlIHJlbmRlcmVkIHBvc2l0aW9uXG4gICAgICAgICAgcmV0dXJuIHBwb3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gdGhlbiByZXR1cm4gdGhlIHNwZWNpZmllZCBkaW1lbnNpb25cbiAgICAgICAgICByZXR1cm4gcHBvc1tkaW1dO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghc2V0dGluZykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZm9yIGVtcHR5IGNvbGxlY3Rpb24gY2FzZVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9XG59O1xuXG4vLyBhbGlhc2VzXG5mbiQ0Lm1vZGVsUG9zaXRpb24gPSBmbiQ0LnBvaW50ID0gZm4kNC5wb3NpdGlvbjtcbmZuJDQubW9kZWxQb3NpdGlvbnMgPSBmbiQ0LnBvaW50cyA9IGZuJDQucG9zaXRpb25zO1xuZm4kNC5yZW5kZXJlZFBvaW50ID0gZm4kNC5yZW5kZXJlZFBvc2l0aW9uO1xuZm4kNC5yZWxhdGl2ZVBvaW50ID0gZm4kNC5yZWxhdGl2ZVBvc2l0aW9uO1xudmFyIHBvc2l0aW9uID0gZWxlc2ZuJGM7XG5cbnZhciBmbiQzLCBlbGVzZm4kYjtcbmZuJDMgPSBlbGVzZm4kYiA9IHt9O1xuZWxlc2ZuJGIucmVuZGVyZWRCb3VuZGluZ0JveCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIHZhciBiYiA9IHRoaXMuYm91bmRpbmdCb3gob3B0aW9ucyk7XG4gIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgdmFyIHpvb20gPSBjeS56b29tKCk7XG4gIHZhciBwYW4gPSBjeS5wYW4oKTtcbiAgdmFyIHgxID0gYmIueDEgKiB6b29tICsgcGFuLng7XG4gIHZhciB4MiA9IGJiLngyICogem9vbSArIHBhbi54O1xuICB2YXIgeTEgPSBiYi55MSAqIHpvb20gKyBwYW4ueTtcbiAgdmFyIHkyID0gYmIueTIgKiB6b29tICsgcGFuLnk7XG4gIHJldHVybiB7XG4gICAgeDE6IHgxLFxuICAgIHgyOiB4MixcbiAgICB5MTogeTEsXG4gICAgeTI6IHkyLFxuICAgIHc6IHgyIC0geDEsXG4gICAgaDogeTIgLSB5MVxuICB9O1xufTtcbmVsZXNmbiRiLmRpcnR5Q29tcG91bmRCb3VuZHNDYWNoZSA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHNpbGVudCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogZmFsc2U7XG4gIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgaWYgKCFjeS5zdHlsZUVuYWJsZWQoKSB8fCAhY3kuaGFzQ29tcG91bmROb2RlcygpKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdGhpcy5mb3JFYWNoVXAoZnVuY3Rpb24gKGVsZSkge1xuICAgIGlmIChlbGUuaXNQYXJlbnQoKSkge1xuICAgICAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICAgICAgX3AuY29tcG91bmRCb3VuZHNDbGVhbiA9IGZhbHNlO1xuICAgICAgX3AuYmJDYWNoZSA9IG51bGw7XG4gICAgICBpZiAoIXNpbGVudCkge1xuICAgICAgICBlbGUuZW1pdEFuZE5vdGlmeSgnYm91bmRzJyk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuZWxlc2ZuJGIudXBkYXRlQ29tcG91bmRCb3VuZHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBmb3JjZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogZmFsc2U7XG4gIHZhciBjeSA9IHRoaXMuY3koKTtcblxuICAvLyBub3QgcG9zc2libGUgdG8gZG8gb24gbm9uLWNvbXBvdW5kIGdyYXBocyBvciB3aXRoIHRoZSBzdHlsZSBkaXNhYmxlZFxuICBpZiAoIWN5LnN0eWxlRW5hYmxlZCgpIHx8ICFjeS5oYXNDb21wb3VuZE5vZGVzKCkpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHNhdmUgY3ljbGVzIHdoZW4gYmF0Y2hpbmcgLS0gYnV0IGJvdW5kcyB3aWxsIGJlIHN0YWxlIChvciBub3QgZXhpc3QgeWV0KVxuICBpZiAoIWZvcmNlICYmIGN5LmJhdGNoaW5nKCkpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBmdW5jdGlvbiB1cGRhdGUocGFyZW50KSB7XG4gICAgaWYgKCFwYXJlbnQuaXNQYXJlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgX3AgPSBwYXJlbnQuX3ByaXZhdGU7XG4gICAgdmFyIGNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuKCk7XG4gICAgdmFyIGluY2x1ZGVMYWJlbHMgPSBwYXJlbnQucHN0eWxlKCdjb21wb3VuZC1zaXppbmctd3J0LWxhYmVscycpLnZhbHVlID09PSAnaW5jbHVkZSc7XG4gICAgdmFyIG1pbiA9IHtcbiAgICAgIHdpZHRoOiB7XG4gICAgICAgIHZhbDogcGFyZW50LnBzdHlsZSgnbWluLXdpZHRoJykucGZWYWx1ZSxcbiAgICAgICAgbGVmdDogcGFyZW50LnBzdHlsZSgnbWluLXdpZHRoLWJpYXMtbGVmdCcpLFxuICAgICAgICByaWdodDogcGFyZW50LnBzdHlsZSgnbWluLXdpZHRoLWJpYXMtcmlnaHQnKVxuICAgICAgfSxcbiAgICAgIGhlaWdodDoge1xuICAgICAgICB2YWw6IHBhcmVudC5wc3R5bGUoJ21pbi1oZWlnaHQnKS5wZlZhbHVlLFxuICAgICAgICB0b3A6IHBhcmVudC5wc3R5bGUoJ21pbi1oZWlnaHQtYmlhcy10b3AnKSxcbiAgICAgICAgYm90dG9tOiBwYXJlbnQucHN0eWxlKCdtaW4taGVpZ2h0LWJpYXMtYm90dG9tJylcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBiYiA9IGNoaWxkcmVuLmJvdW5kaW5nQm94KHtcbiAgICAgIGluY2x1ZGVMYWJlbHM6IGluY2x1ZGVMYWJlbHMsXG4gICAgICBpbmNsdWRlT3ZlcmxheXM6IGZhbHNlLFxuICAgICAgLy8gdXBkYXRpbmcgdGhlIGNvbXBvdW5kIGJvdW5kcyBoYXBwZW5zIG91dHNpZGUgb2YgdGhlIHJlZ3VsYXJcbiAgICAgIC8vIGNhY2hlIGN5Y2xlIChpLmUuIGJlZm9yZSBmaXJlZCBldmVudHMpXG4gICAgICB1c2VDYWNoZTogZmFsc2VcbiAgICB9KTtcbiAgICB2YXIgcG9zID0gX3AucG9zaXRpb247XG5cbiAgICAvLyBpZiBjaGlsZHJlbiB0YWtlIHVwIHplcm8gYXJlYSB0aGVuIGtlZXAgcG9zaXRpb24gYW5kIGZhbGwgYmFjayBvbiBzdHlsZXNoZWV0IHcvaFxuICAgIGlmIChiYi53ID09PSAwIHx8IGJiLmggPT09IDApIHtcbiAgICAgIGJiID0ge1xuICAgICAgICB3OiBwYXJlbnQucHN0eWxlKCd3aWR0aCcpLnBmVmFsdWUsXG4gICAgICAgIGg6IHBhcmVudC5wc3R5bGUoJ2hlaWdodCcpLnBmVmFsdWVcbiAgICAgIH07XG4gICAgICBiYi54MSA9IHBvcy54IC0gYmIudyAvIDI7XG4gICAgICBiYi54MiA9IHBvcy54ICsgYmIudyAvIDI7XG4gICAgICBiYi55MSA9IHBvcy55IC0gYmIuaCAvIDI7XG4gICAgICBiYi55MiA9IHBvcy55ICsgYmIuaCAvIDI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbXB1dGVCaWFzVmFsdWVzKHByb3BEaWZmLCBwcm9wQmlhcywgcHJvcEJpYXNDb21wbGVtZW50KSB7XG4gICAgICB2YXIgYmlhc0RpZmYgPSAwO1xuICAgICAgdmFyIGJpYXNDb21wbGVtZW50RGlmZiA9IDA7XG4gICAgICB2YXIgYmlhc1RvdGFsID0gcHJvcEJpYXMgKyBwcm9wQmlhc0NvbXBsZW1lbnQ7XG4gICAgICBpZiAocHJvcERpZmYgPiAwICYmIGJpYXNUb3RhbCA+IDApIHtcbiAgICAgICAgYmlhc0RpZmYgPSBwcm9wQmlhcyAvIGJpYXNUb3RhbCAqIHByb3BEaWZmO1xuICAgICAgICBiaWFzQ29tcGxlbWVudERpZmYgPSBwcm9wQmlhc0NvbXBsZW1lbnQgLyBiaWFzVG90YWwgKiBwcm9wRGlmZjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJpYXNEaWZmOiBiaWFzRGlmZixcbiAgICAgICAgYmlhc0NvbXBsZW1lbnREaWZmOiBiaWFzQ29tcGxlbWVudERpZmZcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbXB1dGVQYWRkaW5nVmFsdWVzKHdpZHRoLCBoZWlnaHQsIHBhZGRpbmdPYmplY3QsIHJlbGF0aXZlVG8pIHtcbiAgICAgIC8vIEFzc3VtaW5nIHBlcmNlbnRhZ2UgaXMgbnVtYmVyIGZyb20gMCB0byAxXG4gICAgICBpZiAocGFkZGluZ09iamVjdC51bml0cyA9PT0gJyUnKSB7XG4gICAgICAgIHN3aXRjaCAocmVsYXRpdmVUbykge1xuICAgICAgICAgIGNhc2UgJ3dpZHRoJzpcbiAgICAgICAgICAgIHJldHVybiB3aWR0aCA+IDAgPyBwYWRkaW5nT2JqZWN0LnBmVmFsdWUgKiB3aWR0aCA6IDA7XG4gICAgICAgICAgY2FzZSAnaGVpZ2h0JzpcbiAgICAgICAgICAgIHJldHVybiBoZWlnaHQgPiAwID8gcGFkZGluZ09iamVjdC5wZlZhbHVlICogaGVpZ2h0IDogMDtcbiAgICAgICAgICBjYXNlICdhdmVyYWdlJzpcbiAgICAgICAgICAgIHJldHVybiB3aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCA/IHBhZGRpbmdPYmplY3QucGZWYWx1ZSAqICh3aWR0aCArIGhlaWdodCkgLyAyIDogMDtcbiAgICAgICAgICBjYXNlICdtaW4nOlxuICAgICAgICAgICAgcmV0dXJuIHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwID8gd2lkdGggPiBoZWlnaHQgPyBwYWRkaW5nT2JqZWN0LnBmVmFsdWUgKiBoZWlnaHQgOiBwYWRkaW5nT2JqZWN0LnBmVmFsdWUgKiB3aWR0aCA6IDA7XG4gICAgICAgICAgY2FzZSAnbWF4JzpcbiAgICAgICAgICAgIHJldHVybiB3aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCA/IHdpZHRoID4gaGVpZ2h0ID8gcGFkZGluZ09iamVjdC5wZlZhbHVlICogd2lkdGggOiBwYWRkaW5nT2JqZWN0LnBmVmFsdWUgKiBoZWlnaHQgOiAwO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwYWRkaW5nT2JqZWN0LnVuaXRzID09PSAncHgnKSB7XG4gICAgICAgIHJldHVybiBwYWRkaW5nT2JqZWN0LnBmVmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGxlZnRWYWwgPSBtaW4ud2lkdGgubGVmdC52YWx1ZTtcbiAgICBpZiAobWluLndpZHRoLmxlZnQudW5pdHMgPT09ICdweCcgJiYgbWluLndpZHRoLnZhbCA+IDApIHtcbiAgICAgIGxlZnRWYWwgPSBsZWZ0VmFsICogMTAwIC8gbWluLndpZHRoLnZhbDtcbiAgICB9XG4gICAgdmFyIHJpZ2h0VmFsID0gbWluLndpZHRoLnJpZ2h0LnZhbHVlO1xuICAgIGlmIChtaW4ud2lkdGgucmlnaHQudW5pdHMgPT09ICdweCcgJiYgbWluLndpZHRoLnZhbCA+IDApIHtcbiAgICAgIHJpZ2h0VmFsID0gcmlnaHRWYWwgKiAxMDAgLyBtaW4ud2lkdGgudmFsO1xuICAgIH1cbiAgICB2YXIgdG9wVmFsID0gbWluLmhlaWdodC50b3AudmFsdWU7XG4gICAgaWYgKG1pbi5oZWlnaHQudG9wLnVuaXRzID09PSAncHgnICYmIG1pbi5oZWlnaHQudmFsID4gMCkge1xuICAgICAgdG9wVmFsID0gdG9wVmFsICogMTAwIC8gbWluLmhlaWdodC52YWw7XG4gICAgfVxuICAgIHZhciBib3R0b21WYWwgPSBtaW4uaGVpZ2h0LmJvdHRvbS52YWx1ZTtcbiAgICBpZiAobWluLmhlaWdodC5ib3R0b20udW5pdHMgPT09ICdweCcgJiYgbWluLmhlaWdodC52YWwgPiAwKSB7XG4gICAgICBib3R0b21WYWwgPSBib3R0b21WYWwgKiAxMDAgLyBtaW4uaGVpZ2h0LnZhbDtcbiAgICB9XG4gICAgdmFyIHdpZHRoQmlhc0RpZmZzID0gY29tcHV0ZUJpYXNWYWx1ZXMobWluLndpZHRoLnZhbCAtIGJiLncsIGxlZnRWYWwsIHJpZ2h0VmFsKTtcbiAgICB2YXIgZGlmZkxlZnQgPSB3aWR0aEJpYXNEaWZmcy5iaWFzRGlmZjtcbiAgICB2YXIgZGlmZlJpZ2h0ID0gd2lkdGhCaWFzRGlmZnMuYmlhc0NvbXBsZW1lbnREaWZmO1xuICAgIHZhciBoZWlnaHRCaWFzRGlmZnMgPSBjb21wdXRlQmlhc1ZhbHVlcyhtaW4uaGVpZ2h0LnZhbCAtIGJiLmgsIHRvcFZhbCwgYm90dG9tVmFsKTtcbiAgICB2YXIgZGlmZlRvcCA9IGhlaWdodEJpYXNEaWZmcy5iaWFzRGlmZjtcbiAgICB2YXIgZGlmZkJvdHRvbSA9IGhlaWdodEJpYXNEaWZmcy5iaWFzQ29tcGxlbWVudERpZmY7XG4gICAgX3AuYXV0b1BhZGRpbmcgPSBjb21wdXRlUGFkZGluZ1ZhbHVlcyhiYi53LCBiYi5oLCBwYXJlbnQucHN0eWxlKCdwYWRkaW5nJyksIHBhcmVudC5wc3R5bGUoJ3BhZGRpbmctcmVsYXRpdmUtdG8nKS52YWx1ZSk7XG4gICAgX3AuYXV0b1dpZHRoID0gTWF0aC5tYXgoYmIudywgbWluLndpZHRoLnZhbCk7XG4gICAgcG9zLnggPSAoLWRpZmZMZWZ0ICsgYmIueDEgKyBiYi54MiArIGRpZmZSaWdodCkgLyAyO1xuICAgIF9wLmF1dG9IZWlnaHQgPSBNYXRoLm1heChiYi5oLCBtaW4uaGVpZ2h0LnZhbCk7XG4gICAgcG9zLnkgPSAoLWRpZmZUb3AgKyBiYi55MSArIGJiLnkyICsgZGlmZkJvdHRvbSkgLyAyO1xuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBlbGUgPSB0aGlzW2ldO1xuICAgIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgICBpZiAoIV9wLmNvbXBvdW5kQm91bmRzQ2xlYW4gfHwgZm9yY2UpIHtcbiAgICAgIHVwZGF0ZShlbGUpO1xuICAgICAgaWYgKCFjeS5iYXRjaGluZygpKSB7XG4gICAgICAgIF9wLmNvbXBvdW5kQm91bmRzQ2xlYW4gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG52YXIgbm9uaW5mID0gZnVuY3Rpb24gbm9uaW5mKHgpIHtcbiAgaWYgKHggPT09IEluZmluaXR5IHx8IHggPT09IC1JbmZpbml0eSkge1xuICAgIHJldHVybiAwO1xuICB9XG4gIHJldHVybiB4O1xufTtcbnZhciB1cGRhdGVCb3VuZHMgPSBmdW5jdGlvbiB1cGRhdGVCb3VuZHMoYiwgeDEsIHkxLCB4MiwgeTIpIHtcbiAgLy8gZG9uJ3QgdXBkYXRlIHdpdGggemVybyBhcmVhIGJveGVzXG4gIGlmICh4MiAtIHgxID09PSAwIHx8IHkyIC0geTEgPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBkb24ndCB1cGRhdGUgd2l0aCBudWxsIGRpbVxuICBpZiAoeDEgPT0gbnVsbCB8fCB5MSA9PSBudWxsIHx8IHgyID09IG51bGwgfHwgeTIgPT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuICBiLngxID0geDEgPCBiLngxID8geDEgOiBiLngxO1xuICBiLngyID0geDIgPiBiLngyID8geDIgOiBiLngyO1xuICBiLnkxID0geTEgPCBiLnkxID8geTEgOiBiLnkxO1xuICBiLnkyID0geTIgPiBiLnkyID8geTIgOiBiLnkyO1xuICBiLncgPSBiLngyIC0gYi54MTtcbiAgYi5oID0gYi55MiAtIGIueTE7XG59O1xudmFyIHVwZGF0ZUJvdW5kc0Zyb21Cb3ggPSBmdW5jdGlvbiB1cGRhdGVCb3VuZHNGcm9tQm94KGIsIGIyKSB7XG4gIGlmIChiMiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGI7XG4gIH1cbiAgcmV0dXJuIHVwZGF0ZUJvdW5kcyhiLCBiMi54MSwgYjIueTEsIGIyLngyLCBiMi55Mik7XG59O1xudmFyIHByZWZpeGVkUHJvcGVydHkgPSBmdW5jdGlvbiBwcmVmaXhlZFByb3BlcnR5KG9iaiwgZmllbGQsIHByZWZpeCkge1xuICByZXR1cm4gZ2V0UHJlZml4ZWRQcm9wZXJ0eShvYmosIGZpZWxkLCBwcmVmaXgpO1xufTtcbnZhciB1cGRhdGVCb3VuZHNGcm9tQXJyb3cgPSBmdW5jdGlvbiB1cGRhdGVCb3VuZHNGcm9tQXJyb3coYm91bmRzLCBlbGUsIHByZWZpeCkge1xuICBpZiAoZWxlLmN5KCkuaGVhZGxlc3MoKSkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgX3AgPSBlbGUuX3ByaXZhdGU7XG4gIHZhciByc3R5bGUgPSBfcC5yc3R5bGU7XG4gIHZhciBoYWxmQXJXID0gcnN0eWxlLmFycm93V2lkdGggLyAyO1xuICB2YXIgYXJyb3dUeXBlID0gZWxlLnBzdHlsZShwcmVmaXggKyAnLWFycm93LXNoYXBlJykudmFsdWU7XG4gIHZhciB4O1xuICB2YXIgeTtcbiAgaWYgKGFycm93VHlwZSAhPT0gJ25vbmUnKSB7XG4gICAgaWYgKHByZWZpeCA9PT0gJ3NvdXJjZScpIHtcbiAgICAgIHggPSByc3R5bGUuc3JjWDtcbiAgICAgIHkgPSByc3R5bGUuc3JjWTtcbiAgICB9IGVsc2UgaWYgKHByZWZpeCA9PT0gJ3RhcmdldCcpIHtcbiAgICAgIHggPSByc3R5bGUudGd0WDtcbiAgICAgIHkgPSByc3R5bGUudGd0WTtcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9IHJzdHlsZS5taWRYO1xuICAgICAgeSA9IHJzdHlsZS5taWRZO1xuICAgIH1cblxuICAgIC8vIGFsd2F5cyBzdG9yZSB0aGUgaW5kaXZpZHVhbCBhcnJvdyBib3VuZHNcbiAgICB2YXIgYmJzID0gX3AuYXJyb3dCb3VuZHMgPSBfcC5hcnJvd0JvdW5kcyB8fCB7fTtcbiAgICB2YXIgYmIgPSBiYnNbcHJlZml4XSA9IGJic1twcmVmaXhdIHx8IHt9O1xuICAgIGJiLngxID0geCAtIGhhbGZBclc7XG4gICAgYmIueTEgPSB5IC0gaGFsZkFyVztcbiAgICBiYi54MiA9IHggKyBoYWxmQXJXO1xuICAgIGJiLnkyID0geSArIGhhbGZBclc7XG4gICAgYmIudyA9IGJiLngyIC0gYmIueDE7XG4gICAgYmIuaCA9IGJiLnkyIC0gYmIueTE7XG4gICAgZXhwYW5kQm91bmRpbmdCb3goYmIsIDEpO1xuICAgIHVwZGF0ZUJvdW5kcyhib3VuZHMsIGJiLngxLCBiYi55MSwgYmIueDIsIGJiLnkyKTtcbiAgfVxufTtcbnZhciB1cGRhdGVCb3VuZHNGcm9tTGFiZWwgPSBmdW5jdGlvbiB1cGRhdGVCb3VuZHNGcm9tTGFiZWwoYm91bmRzLCBlbGUsIHByZWZpeCkge1xuICBpZiAoZWxlLmN5KCkuaGVhZGxlc3MoKSkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgcHJlZml4RGFzaDtcbiAgaWYgKHByZWZpeCkge1xuICAgIHByZWZpeERhc2ggPSBwcmVmaXggKyAnLSc7XG4gIH0gZWxzZSB7XG4gICAgcHJlZml4RGFzaCA9ICcnO1xuICB9XG4gIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgdmFyIHJzdHlsZSA9IF9wLnJzdHlsZTtcbiAgdmFyIGxhYmVsID0gZWxlLnBzdHlsZShwcmVmaXhEYXNoICsgJ2xhYmVsJykuc3RyVmFsdWU7XG4gIGlmIChsYWJlbCkge1xuICAgIHZhciBoYWxpZ24gPSBlbGUucHN0eWxlKCd0ZXh0LWhhbGlnbicpO1xuICAgIHZhciB2YWxpZ24gPSBlbGUucHN0eWxlKCd0ZXh0LXZhbGlnbicpO1xuICAgIHZhciBsYWJlbFdpZHRoID0gcHJlZml4ZWRQcm9wZXJ0eShyc3R5bGUsICdsYWJlbFdpZHRoJywgcHJlZml4KTtcbiAgICB2YXIgbGFiZWxIZWlnaHQgPSBwcmVmaXhlZFByb3BlcnR5KHJzdHlsZSwgJ2xhYmVsSGVpZ2h0JywgcHJlZml4KTtcbiAgICB2YXIgbGFiZWxYID0gcHJlZml4ZWRQcm9wZXJ0eShyc3R5bGUsICdsYWJlbFgnLCBwcmVmaXgpO1xuICAgIHZhciBsYWJlbFkgPSBwcmVmaXhlZFByb3BlcnR5KHJzdHlsZSwgJ2xhYmVsWScsIHByZWZpeCk7XG4gICAgdmFyIG1hcmdpblggPSBlbGUucHN0eWxlKHByZWZpeERhc2ggKyAndGV4dC1tYXJnaW4teCcpLnBmVmFsdWU7XG4gICAgdmFyIG1hcmdpblkgPSBlbGUucHN0eWxlKHByZWZpeERhc2ggKyAndGV4dC1tYXJnaW4teScpLnBmVmFsdWU7XG4gICAgdmFyIGlzRWRnZSA9IGVsZS5pc0VkZ2UoKTtcbiAgICB2YXIgcm90YXRpb24gPSBlbGUucHN0eWxlKHByZWZpeERhc2ggKyAndGV4dC1yb3RhdGlvbicpO1xuICAgIHZhciBvdXRsaW5lV2lkdGggPSBlbGUucHN0eWxlKCd0ZXh0LW91dGxpbmUtd2lkdGgnKS5wZlZhbHVlO1xuICAgIHZhciBib3JkZXJXaWR0aCA9IGVsZS5wc3R5bGUoJ3RleHQtYm9yZGVyLXdpZHRoJykucGZWYWx1ZTtcbiAgICB2YXIgaGFsZkJvcmRlcldpZHRoID0gYm9yZGVyV2lkdGggLyAyO1xuICAgIHZhciBwYWRkaW5nID0gZWxlLnBzdHlsZSgndGV4dC1iYWNrZ3JvdW5kLXBhZGRpbmcnKS5wZlZhbHVlO1xuICAgIHZhciBtYXJnaW5PZkVycm9yID0gMjsgLy8gZXhwYW5kIHRvIHdvcmsgYXJvdW5kIGJyb3dzZXIgZGltZW5zaW9uIGluYWNjdXJhY2llc1xuXG4gICAgdmFyIGxoID0gbGFiZWxIZWlnaHQ7XG4gICAgdmFyIGx3ID0gbGFiZWxXaWR0aDtcbiAgICB2YXIgbHdfMiA9IGx3IC8gMjtcbiAgICB2YXIgbGhfMiA9IGxoIC8gMjtcbiAgICB2YXIgbHgxLCBseDIsIGx5MSwgbHkyO1xuICAgIGlmIChpc0VkZ2UpIHtcbiAgICAgIGx4MSA9IGxhYmVsWCAtIGx3XzI7XG4gICAgICBseDIgPSBsYWJlbFggKyBsd18yO1xuICAgICAgbHkxID0gbGFiZWxZIC0gbGhfMjtcbiAgICAgIGx5MiA9IGxhYmVsWSArIGxoXzI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAoaGFsaWduLnZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGx4MSA9IGxhYmVsWCAtIGx3O1xuICAgICAgICAgIGx4MiA9IGxhYmVsWDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICBseDEgPSBsYWJlbFggLSBsd18yO1xuICAgICAgICAgIGx4MiA9IGxhYmVsWCArIGx3XzI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICBseDEgPSBsYWJlbFg7XG4gICAgICAgICAgbHgyID0gbGFiZWxYICsgbHc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHZhbGlnbi52YWx1ZSkge1xuICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgIGx5MSA9IGxhYmVsWSAtIGxoO1xuICAgICAgICAgIGx5MiA9IGxhYmVsWTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICBseTEgPSBsYWJlbFkgLSBsaF8yO1xuICAgICAgICAgIGx5MiA9IGxhYmVsWSArIGxoXzI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgbHkxID0gbGFiZWxZO1xuICAgICAgICAgIGx5MiA9IGxhYmVsWSArIGxoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNoaWZ0IGJ5IG1hcmdpbiBhbmQgZXhwYW5kIGJ5IG91dGxpbmUgYW5kIGJvcmRlclxuICAgIGx4MSArPSBtYXJnaW5YIC0gTWF0aC5tYXgob3V0bGluZVdpZHRoLCBoYWxmQm9yZGVyV2lkdGgpIC0gcGFkZGluZyAtIG1hcmdpbk9mRXJyb3I7XG4gICAgbHgyICs9IG1hcmdpblggKyBNYXRoLm1heChvdXRsaW5lV2lkdGgsIGhhbGZCb3JkZXJXaWR0aCkgKyBwYWRkaW5nICsgbWFyZ2luT2ZFcnJvcjtcbiAgICBseTEgKz0gbWFyZ2luWSAtIE1hdGgubWF4KG91dGxpbmVXaWR0aCwgaGFsZkJvcmRlcldpZHRoKSAtIHBhZGRpbmcgLSBtYXJnaW5PZkVycm9yO1xuICAgIGx5MiArPSBtYXJnaW5ZICsgTWF0aC5tYXgob3V0bGluZVdpZHRoLCBoYWxmQm9yZGVyV2lkdGgpICsgcGFkZGluZyArIG1hcmdpbk9mRXJyb3I7XG5cbiAgICAvLyBhbHdheXMgc3RvcmUgdGhlIHVucm90YXRlZCBsYWJlbCBib3VuZHMgc2VwYXJhdGVseVxuICAgIHZhciBiYlByZWZpeCA9IHByZWZpeCB8fCAnbWFpbic7XG4gICAgdmFyIGJicyA9IF9wLmxhYmVsQm91bmRzO1xuICAgIHZhciBiYiA9IGJic1tiYlByZWZpeF0gPSBiYnNbYmJQcmVmaXhdIHx8IHt9O1xuICAgIGJiLngxID0gbHgxO1xuICAgIGJiLnkxID0gbHkxO1xuICAgIGJiLngyID0gbHgyO1xuICAgIGJiLnkyID0gbHkyO1xuICAgIGJiLncgPSBseDIgLSBseDE7XG4gICAgYmIuaCA9IGx5MiAtIGx5MTtcbiAgICB2YXIgaXNBdXRvcm90YXRlID0gaXNFZGdlICYmIHJvdGF0aW9uLnN0clZhbHVlID09PSAnYXV0b3JvdGF0ZSc7XG4gICAgdmFyIGlzUGZWYWx1ZSA9IHJvdGF0aW9uLnBmVmFsdWUgIT0gbnVsbCAmJiByb3RhdGlvbi5wZlZhbHVlICE9PSAwO1xuICAgIGlmIChpc0F1dG9yb3RhdGUgfHwgaXNQZlZhbHVlKSB7XG4gICAgICB2YXIgdGhldGEgPSBpc0F1dG9yb3RhdGUgPyBwcmVmaXhlZFByb3BlcnR5KF9wLnJzdHlsZSwgJ2xhYmVsQW5nbGUnLCBwcmVmaXgpIDogcm90YXRpb24ucGZWYWx1ZTtcbiAgICAgIHZhciBjb3MgPSBNYXRoLmNvcyh0aGV0YSk7XG4gICAgICB2YXIgc2luID0gTWF0aC5zaW4odGhldGEpO1xuXG4gICAgICAvLyByb3RhdGlvbiBwb2ludCAoZGVmYXVsdCB2YWx1ZSBmb3IgY2VudGVyLWNlbnRlcilcbiAgICAgIHZhciB4byA9IChseDEgKyBseDIpIC8gMjtcbiAgICAgIHZhciB5byA9IChseTEgKyBseTIpIC8gMjtcbiAgICAgIGlmICghaXNFZGdlKSB7XG4gICAgICAgIHN3aXRjaCAoaGFsaWduLnZhbHVlKSB7XG4gICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICB4byA9IGx4MjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgIHhvID0gbHgxO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh2YWxpZ24udmFsdWUpIHtcbiAgICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgICAgeW8gPSBseTI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgeW8gPSBseTE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIHJvdGF0ZSA9IGZ1bmN0aW9uIHJvdGF0ZSh4LCB5KSB7XG4gICAgICAgIHggPSB4IC0geG87XG4gICAgICAgIHkgPSB5IC0geW87XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgeDogeCAqIGNvcyAtIHkgKiBzaW4gKyB4byxcbiAgICAgICAgICB5OiB4ICogc2luICsgeSAqIGNvcyArIHlvXG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgdmFyIHB4MXkxID0gcm90YXRlKGx4MSwgbHkxKTtcbiAgICAgIHZhciBweDF5MiA9IHJvdGF0ZShseDEsIGx5Mik7XG4gICAgICB2YXIgcHgyeTEgPSByb3RhdGUobHgyLCBseTEpO1xuICAgICAgdmFyIHB4MnkyID0gcm90YXRlKGx4MiwgbHkyKTtcbiAgICAgIGx4MSA9IE1hdGgubWluKHB4MXkxLngsIHB4MXkyLngsIHB4MnkxLngsIHB4MnkyLngpO1xuICAgICAgbHgyID0gTWF0aC5tYXgocHgxeTEueCwgcHgxeTIueCwgcHgyeTEueCwgcHgyeTIueCk7XG4gICAgICBseTEgPSBNYXRoLm1pbihweDF5MS55LCBweDF5Mi55LCBweDJ5MS55LCBweDJ5Mi55KTtcbiAgICAgIGx5MiA9IE1hdGgubWF4KHB4MXkxLnksIHB4MXkyLnksIHB4MnkxLnksIHB4MnkyLnkpO1xuICAgIH1cbiAgICB2YXIgYmJQcmVmaXhSb3QgPSBiYlByZWZpeCArICdSb3QnO1xuICAgIHZhciBiYlJvdCA9IGJic1tiYlByZWZpeFJvdF0gPSBiYnNbYmJQcmVmaXhSb3RdIHx8IHt9O1xuICAgIGJiUm90LngxID0gbHgxO1xuICAgIGJiUm90LnkxID0gbHkxO1xuICAgIGJiUm90LngyID0gbHgyO1xuICAgIGJiUm90LnkyID0gbHkyO1xuICAgIGJiUm90LncgPSBseDIgLSBseDE7XG4gICAgYmJSb3QuaCA9IGx5MiAtIGx5MTtcbiAgICB1cGRhdGVCb3VuZHMoYm91bmRzLCBseDEsIGx5MSwgbHgyLCBseTIpO1xuICAgIHVwZGF0ZUJvdW5kcyhfcC5sYWJlbEJvdW5kcy5hbGwsIGx4MSwgbHkxLCBseDIsIGx5Mik7XG4gIH1cbiAgcmV0dXJuIGJvdW5kcztcbn07XG52YXIgdXBkYXRlQm91bmRzRnJvbU91dGxpbmUgPSBmdW5jdGlvbiB1cGRhdGVCb3VuZHNGcm9tT3V0bGluZShib3VuZHMsIGVsZSkge1xuICBpZiAoZWxlLmN5KCkuaGVhZGxlc3MoKSkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgb3V0bGluZU9wYWNpdHkgPSBlbGUucHN0eWxlKCdvdXRsaW5lLW9wYWNpdHknKS52YWx1ZTtcbiAgdmFyIG91dGxpbmVXaWR0aCA9IGVsZS5wc3R5bGUoJ291dGxpbmUtd2lkdGgnKS52YWx1ZTtcbiAgaWYgKG91dGxpbmVPcGFjaXR5ID4gMCAmJiBvdXRsaW5lV2lkdGggPiAwKSB7XG4gICAgdmFyIG91dGxpbmVPZmZzZXQgPSBlbGUucHN0eWxlKCdvdXRsaW5lLW9mZnNldCcpLnZhbHVlO1xuICAgIHZhciBub2RlU2hhcGUgPSBlbGUucHN0eWxlKCdzaGFwZScpLnZhbHVlO1xuICAgIHZhciBvdXRsaW5lU2l6ZSA9IG91dGxpbmVXaWR0aCArIG91dGxpbmVPZmZzZXQ7XG4gICAgdmFyIHNjYWxlWCA9IChib3VuZHMudyArIG91dGxpbmVTaXplICogMikgLyBib3VuZHMudztcbiAgICB2YXIgc2NhbGVZID0gKGJvdW5kcy5oICsgb3V0bGluZVNpemUgKiAyKSAvIGJvdW5kcy5oO1xuICAgIHZhciB4T2Zmc2V0ID0gMDtcbiAgICB2YXIgeU9mZnNldCA9IDA7XG4gICAgaWYgKFtcImRpYW1vbmRcIiwgXCJwZW50YWdvblwiLCBcInJvdW5kLXRyaWFuZ2xlXCJdLmluY2x1ZGVzKG5vZGVTaGFwZSkpIHtcbiAgICAgIHNjYWxlWCA9IChib3VuZHMudyArIG91dGxpbmVTaXplICogMi40KSAvIGJvdW5kcy53O1xuICAgICAgeU9mZnNldCA9IC1vdXRsaW5lU2l6ZSAvIDMuNjtcbiAgICB9IGVsc2UgaWYgKFtcImNvbmNhdmUtaGV4YWdvblwiLCBcInJob21ib2lkXCIsIFwicmlnaHQtcmhvbWJvaWRcIl0uaW5jbHVkZXMobm9kZVNoYXBlKSkge1xuICAgICAgc2NhbGVYID0gKGJvdW5kcy53ICsgb3V0bGluZVNpemUgKiAyLjQpIC8gYm91bmRzLnc7XG4gICAgfSBlbHNlIGlmIChub2RlU2hhcGUgPT09IFwic3RhclwiKSB7XG4gICAgICBzY2FsZVggPSAoYm91bmRzLncgKyBvdXRsaW5lU2l6ZSAqIDIuOCkgLyBib3VuZHMudztcbiAgICAgIHNjYWxlWSA9IChib3VuZHMuaCArIG91dGxpbmVTaXplICogMi42KSAvIGJvdW5kcy5oO1xuICAgICAgeU9mZnNldCA9IC1vdXRsaW5lU2l6ZSAvIDMuODtcbiAgICB9IGVsc2UgaWYgKG5vZGVTaGFwZSA9PT0gXCJ0cmlhbmdsZVwiKSB7XG4gICAgICBzY2FsZVggPSAoYm91bmRzLncgKyBvdXRsaW5lU2l6ZSAqIDIuOCkgLyBib3VuZHMudztcbiAgICAgIHNjYWxlWSA9IChib3VuZHMuaCArIG91dGxpbmVTaXplICogMi40KSAvIGJvdW5kcy5oO1xuICAgICAgeU9mZnNldCA9IC1vdXRsaW5lU2l6ZSAvIDEuNDtcbiAgICB9IGVsc2UgaWYgKG5vZGVTaGFwZSA9PT0gXCJ2ZWVcIikge1xuICAgICAgc2NhbGVYID0gKGJvdW5kcy53ICsgb3V0bGluZVNpemUgKiA0LjQpIC8gYm91bmRzLnc7XG4gICAgICBzY2FsZVkgPSAoYm91bmRzLmggKyBvdXRsaW5lU2l6ZSAqIDMuOCkgLyBib3VuZHMuaDtcbiAgICAgIHlPZmZzZXQgPSAtb3V0bGluZVNpemUgKiAuNTtcbiAgICB9XG4gICAgdmFyIGhEZWx0YSA9IGJvdW5kcy5oICogc2NhbGVZIC0gYm91bmRzLmg7XG4gICAgdmFyIHdEZWx0YSA9IGJvdW5kcy53ICogc2NhbGVYIC0gYm91bmRzLnc7XG4gICAgZXhwYW5kQm91bmRpbmdCb3hTaWRlcyhib3VuZHMsIFtNYXRoLmNlaWwoaERlbHRhIC8gMiksIE1hdGguY2VpbCh3RGVsdGEgLyAyKV0pO1xuICAgIGlmICh4T2Zmc2V0ICE9IDAgfHwgeU9mZnNldCAhPT0gMCkge1xuICAgICAgdmFyIG9Cb3VuZHMgPSBzaGlmdEJvdW5kaW5nQm94KGJvdW5kcywgeE9mZnNldCwgeU9mZnNldCk7XG4gICAgICB1cGRhdGVCb3VuZGluZ0JveChib3VuZHMsIG9Cb3VuZHMpO1xuICAgIH1cbiAgfVxufTtcblxuLy8gZ2V0IHRoZSBib3VuZGluZyBib3ggb2YgdGhlIGVsZW1lbnRzIChpbiByYXcgbW9kZWwgcG9zaXRpb24pXG52YXIgYm91bmRpbmdCb3hJbXBsID0gZnVuY3Rpb24gYm91bmRpbmdCb3hJbXBsKGVsZSwgb3B0aW9ucykge1xuICB2YXIgY3kgPSBlbGUuX3ByaXZhdGUuY3k7XG4gIHZhciBzdHlsZUVuYWJsZWQgPSBjeS5zdHlsZUVuYWJsZWQoKTtcbiAgdmFyIGhlYWRsZXNzID0gY3kuaGVhZGxlc3MoKTtcbiAgdmFyIGJvdW5kcyA9IG1ha2VCb3VuZGluZ0JveCgpO1xuICB2YXIgX3AgPSBlbGUuX3ByaXZhdGU7XG4gIHZhciBpc05vZGUgPSBlbGUuaXNOb2RlKCk7XG4gIHZhciBpc0VkZ2UgPSBlbGUuaXNFZGdlKCk7XG4gIHZhciBleDEsIGV4MiwgZXkxLCBleTI7IC8vIGV4dHJlbWEgb2YgYm9keSAvIGxpbmVzXG4gIHZhciB4LCB5OyAvLyBub2RlIHBvc1xuICB2YXIgcnN0eWxlID0gX3AucnN0eWxlO1xuICB2YXIgbWFudWFsRXhwYW5zaW9uID0gaXNOb2RlICYmIHN0eWxlRW5hYmxlZCA/IGVsZS5wc3R5bGUoJ2JvdW5kcy1leHBhbnNpb24nKS5wZlZhbHVlIDogWzBdO1xuXG4gIC8vIG11c3QgdXNlIGBkaXNwbGF5YCBwcm9wIG9ubHksIGFzIHJlYWRpbmcgYGNvbXBvdW5kLndpZHRoKClgIGNhdXNlcyByZWN1cnNpb25cbiAgLy8gKG90aGVyIGZhY3RvcnMgbGlrZSB3aWR0aCB2YWx1ZXMgd2lsbCBiZSBjb25zaWRlcmVkIGxhdGVyIGluIHRoaXMgZnVuY3Rpb24gYW55d2F5KVxuICB2YXIgaXNEaXNwbGF5ZWQgPSBmdW5jdGlvbiBpc0Rpc3BsYXllZChlbGUpIHtcbiAgICByZXR1cm4gZWxlLnBzdHlsZSgnZGlzcGxheScpLnZhbHVlICE9PSAnbm9uZSc7XG4gIH07XG4gIHZhciBkaXNwbGF5ZWQgPSAhc3R5bGVFbmFibGVkIHx8IGlzRGlzcGxheWVkKGVsZSlcblxuICAvLyBtdXN0IHRha2UgaW50byBhY2NvdW50IGNvbm5lY3RlZCBub2RlcyBiL2Mgb2YgaW1wbGljaXQgZWRnZSBoaWRpbmcgb24gZGlzcGxheTpub25lIG5vZGVcbiAgJiYgKCFpc0VkZ2UgfHwgaXNEaXNwbGF5ZWQoZWxlLnNvdXJjZSgpKSAmJiBpc0Rpc3BsYXllZChlbGUudGFyZ2V0KCkpKTtcbiAgaWYgKGRpc3BsYXllZCkge1xuICAgIC8vIGRpc3BsYXllZCBzdWZmaWNlcywgc2luY2Ugd2Ugd2lsbCBmaW5kIHplcm8gYXJlYSBlbGVzIGFueXdheVxuICAgIHZhciBvdmVybGF5T3BhY2l0eSA9IDA7XG4gICAgdmFyIG92ZXJsYXlQYWRkaW5nID0gMDtcbiAgICBpZiAoc3R5bGVFbmFibGVkICYmIG9wdGlvbnMuaW5jbHVkZU92ZXJsYXlzKSB7XG4gICAgICBvdmVybGF5T3BhY2l0eSA9IGVsZS5wc3R5bGUoJ292ZXJsYXktb3BhY2l0eScpLnZhbHVlO1xuICAgICAgaWYgKG92ZXJsYXlPcGFjaXR5ICE9PSAwKSB7XG4gICAgICAgIG92ZXJsYXlQYWRkaW5nID0gZWxlLnBzdHlsZSgnb3ZlcmxheS1wYWRkaW5nJykudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciB1bmRlcmxheU9wYWNpdHkgPSAwO1xuICAgIHZhciB1bmRlcmxheVBhZGRpbmcgPSAwO1xuICAgIGlmIChzdHlsZUVuYWJsZWQgJiYgb3B0aW9ucy5pbmNsdWRlVW5kZXJsYXlzKSB7XG4gICAgICB1bmRlcmxheU9wYWNpdHkgPSBlbGUucHN0eWxlKCd1bmRlcmxheS1vcGFjaXR5JykudmFsdWU7XG4gICAgICBpZiAodW5kZXJsYXlPcGFjaXR5ICE9PSAwKSB7XG4gICAgICAgIHVuZGVybGF5UGFkZGluZyA9IGVsZS5wc3R5bGUoJ3VuZGVybGF5LXBhZGRpbmcnKS52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIHBhZGRpbmcgPSBNYXRoLm1heChvdmVybGF5UGFkZGluZywgdW5kZXJsYXlQYWRkaW5nKTtcbiAgICB2YXIgdyA9IDA7XG4gICAgdmFyIHdIYWxmID0gMDtcbiAgICBpZiAoc3R5bGVFbmFibGVkKSB7XG4gICAgICB3ID0gZWxlLnBzdHlsZSgnd2lkdGgnKS5wZlZhbHVlO1xuICAgICAgd0hhbGYgPSB3IC8gMjtcbiAgICB9XG4gICAgaWYgKGlzTm9kZSAmJiBvcHRpb25zLmluY2x1ZGVOb2Rlcykge1xuICAgICAgdmFyIHBvcyA9IGVsZS5wb3NpdGlvbigpO1xuICAgICAgeCA9IHBvcy54O1xuICAgICAgeSA9IHBvcy55O1xuICAgICAgdmFyIF93ID0gZWxlLm91dGVyV2lkdGgoKTtcbiAgICAgIHZhciBoYWxmVyA9IF93IC8gMjtcbiAgICAgIHZhciBoID0gZWxlLm91dGVySGVpZ2h0KCk7XG4gICAgICB2YXIgaGFsZkggPSBoIC8gMjtcblxuICAgICAgLy8gaGFuZGxlIG5vZGUgZGltZW5zaW9uc1xuICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICBleDEgPSB4IC0gaGFsZlc7XG4gICAgICBleDIgPSB4ICsgaGFsZlc7XG4gICAgICBleTEgPSB5IC0gaGFsZkg7XG4gICAgICBleTIgPSB5ICsgaGFsZkg7XG4gICAgICB1cGRhdGVCb3VuZHMoYm91bmRzLCBleDEsIGV5MSwgZXgyLCBleTIpO1xuICAgICAgaWYgKHN0eWxlRW5hYmxlZCAmJiBvcHRpb25zLmluY2x1ZGVPdXRsaW5lcykge1xuICAgICAgICB1cGRhdGVCb3VuZHNGcm9tT3V0bGluZShib3VuZHMsIGVsZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc0VkZ2UgJiYgb3B0aW9ucy5pbmNsdWRlRWRnZXMpIHtcbiAgICAgIGlmIChzdHlsZUVuYWJsZWQgJiYgIWhlYWRsZXNzKSB7XG4gICAgICAgIHZhciBjdXJ2ZVN0eWxlID0gZWxlLnBzdHlsZSgnY3VydmUtc3R5bGUnKS5zdHJWYWx1ZTtcblxuICAgICAgICAvLyBoYW5kbGUgZWRnZSBkaW1lbnNpb25zIChyb3VnaCBib3ggZXN0aW1hdGUpXG4gICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBleDEgPSBNYXRoLm1pbihyc3R5bGUuc3JjWCwgcnN0eWxlLm1pZFgsIHJzdHlsZS50Z3RYKTtcbiAgICAgICAgZXgyID0gTWF0aC5tYXgocnN0eWxlLnNyY1gsIHJzdHlsZS5taWRYLCByc3R5bGUudGd0WCk7XG4gICAgICAgIGV5MSA9IE1hdGgubWluKHJzdHlsZS5zcmNZLCByc3R5bGUubWlkWSwgcnN0eWxlLnRndFkpO1xuICAgICAgICBleTIgPSBNYXRoLm1heChyc3R5bGUuc3JjWSwgcnN0eWxlLm1pZFksIHJzdHlsZS50Z3RZKTtcblxuICAgICAgICAvLyB0YWtlIGludG8gYWNjb3VudCBlZGdlIHdpZHRoXG4gICAgICAgIGV4MSAtPSB3SGFsZjtcbiAgICAgICAgZXgyICs9IHdIYWxmO1xuICAgICAgICBleTEgLT0gd0hhbGY7XG4gICAgICAgIGV5MiArPSB3SGFsZjtcbiAgICAgICAgdXBkYXRlQm91bmRzKGJvdW5kcywgZXgxLCBleTEsIGV4MiwgZXkyKTtcblxuICAgICAgICAvLyBwcmVjaXNlIGVkZ2VzXG4gICAgICAgIC8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBpZiAoY3VydmVTdHlsZSA9PT0gJ2hheXN0YWNrJykge1xuICAgICAgICAgIHZhciBocHRzID0gcnN0eWxlLmhheXN0YWNrUHRzO1xuICAgICAgICAgIGlmIChocHRzICYmIGhwdHMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICBleDEgPSBocHRzWzBdLng7XG4gICAgICAgICAgICBleTEgPSBocHRzWzBdLnk7XG4gICAgICAgICAgICBleDIgPSBocHRzWzFdLng7XG4gICAgICAgICAgICBleTIgPSBocHRzWzFdLnk7XG4gICAgICAgICAgICBpZiAoZXgxID4gZXgyKSB7XG4gICAgICAgICAgICAgIHZhciB0ZW1wID0gZXgxO1xuICAgICAgICAgICAgICBleDEgPSBleDI7XG4gICAgICAgICAgICAgIGV4MiA9IHRlbXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXkxID4gZXkyKSB7XG4gICAgICAgICAgICAgIHZhciBfdGVtcCA9IGV5MTtcbiAgICAgICAgICAgICAgZXkxID0gZXkyO1xuICAgICAgICAgICAgICBleTIgPSBfdGVtcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVwZGF0ZUJvdW5kcyhib3VuZHMsIGV4MSAtIHdIYWxmLCBleTEgLSB3SGFsZiwgZXgyICsgd0hhbGYsIGV5MiArIHdIYWxmKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoY3VydmVTdHlsZSA9PT0gJ2JlemllcicgfHwgY3VydmVTdHlsZSA9PT0gJ3VuYnVuZGxlZC1iZXppZXInIHx8IGN1cnZlU3R5bGUuZW5kc1dpdGgoJ3NlZ21lbnRzJykgfHwgY3VydmVTdHlsZS5lbmRzV2l0aCgndGF4aScpKSB7XG4gICAgICAgICAgdmFyIHB0cztcbiAgICAgICAgICBzd2l0Y2ggKGN1cnZlU3R5bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jlemllcic6XG4gICAgICAgICAgICBjYXNlICd1bmJ1bmRsZWQtYmV6aWVyJzpcbiAgICAgICAgICAgICAgcHRzID0gcnN0eWxlLmJlemllclB0cztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWdtZW50cyc6XG4gICAgICAgICAgICBjYXNlICd0YXhpJzpcbiAgICAgICAgICAgIGNhc2UgJ3JvdW5kLXNlZ21lbnRzJzpcbiAgICAgICAgICAgIGNhc2UgJ3JvdW5kLXRheGknOlxuICAgICAgICAgICAgICBwdHMgPSByc3R5bGUubGluZVB0cztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwdHMgIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBwdHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgdmFyIHB0ID0gcHRzW2pdO1xuICAgICAgICAgICAgICBleDEgPSBwdC54IC0gd0hhbGY7XG4gICAgICAgICAgICAgIGV4MiA9IHB0LnggKyB3SGFsZjtcbiAgICAgICAgICAgICAgZXkxID0gcHQueSAtIHdIYWxmO1xuICAgICAgICAgICAgICBleTIgPSBwdC55ICsgd0hhbGY7XG4gICAgICAgICAgICAgIHVwZGF0ZUJvdW5kcyhib3VuZHMsIGV4MSwgZXkxLCBleDIsIGV5Mik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IC8vIGJlemllci1saWtlIG9yIHNlZ21lbnQtbGlrZSBlZGdlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBoZWFkbGVzcyBvciBzdHlsZSBkaXNhYmxlZFxuXG4gICAgICAgIC8vIGZhbGxiYWNrIG9uIHNvdXJjZSBhbmQgdGFyZ2V0IHBvc2l0aW9uc1xuICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICB2YXIgbjEgPSBlbGUuc291cmNlKCk7XG4gICAgICAgIHZhciBuMXBvcyA9IG4xLnBvc2l0aW9uKCk7XG4gICAgICAgIHZhciBuMiA9IGVsZS50YXJnZXQoKTtcbiAgICAgICAgdmFyIG4ycG9zID0gbjIucG9zaXRpb24oKTtcbiAgICAgICAgZXgxID0gbjFwb3MueDtcbiAgICAgICAgZXgyID0gbjJwb3MueDtcbiAgICAgICAgZXkxID0gbjFwb3MueTtcbiAgICAgICAgZXkyID0gbjJwb3MueTtcbiAgICAgICAgaWYgKGV4MSA+IGV4Mikge1xuICAgICAgICAgIHZhciBfdGVtcDIgPSBleDE7XG4gICAgICAgICAgZXgxID0gZXgyO1xuICAgICAgICAgIGV4MiA9IF90ZW1wMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXkxID4gZXkyKSB7XG4gICAgICAgICAgdmFyIF90ZW1wMyA9IGV5MTtcbiAgICAgICAgICBleTEgPSBleTI7XG4gICAgICAgICAgZXkyID0gX3RlbXAzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdGFrZSBpbnRvIGFjY291bnQgZWRnZSB3aWR0aFxuICAgICAgICBleDEgLT0gd0hhbGY7XG4gICAgICAgIGV4MiArPSB3SGFsZjtcbiAgICAgICAgZXkxIC09IHdIYWxmO1xuICAgICAgICBleTIgKz0gd0hhbGY7XG4gICAgICAgIHVwZGF0ZUJvdW5kcyhib3VuZHMsIGV4MSwgZXkxLCBleDIsIGV5Mik7XG4gICAgICB9IC8vIGhlYWRsZXNzIG9yIHN0eWxlIGRpc2FibGVkXG4gICAgfSAvLyBlZGdlc1xuXG4gICAgLy8gaGFuZGxlIGVkZ2UgYXJyb3cgc2l6ZVxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmIChzdHlsZUVuYWJsZWQgJiYgb3B0aW9ucy5pbmNsdWRlRWRnZXMgJiYgaXNFZGdlKSB7XG4gICAgICB1cGRhdGVCb3VuZHNGcm9tQXJyb3coYm91bmRzLCBlbGUsICdtaWQtc291cmNlJyk7XG4gICAgICB1cGRhdGVCb3VuZHNGcm9tQXJyb3coYm91bmRzLCBlbGUsICdtaWQtdGFyZ2V0Jyk7XG4gICAgICB1cGRhdGVCb3VuZHNGcm9tQXJyb3coYm91bmRzLCBlbGUsICdzb3VyY2UnKTtcbiAgICAgIHVwZGF0ZUJvdW5kc0Zyb21BcnJvdyhib3VuZHMsIGVsZSwgJ3RhcmdldCcpO1xuICAgIH1cblxuICAgIC8vIGdob3N0XG4gICAgLy8vLy8vLy9cblxuICAgIGlmIChzdHlsZUVuYWJsZWQpIHtcbiAgICAgIHZhciBnaG9zdCA9IGVsZS5wc3R5bGUoJ2dob3N0JykudmFsdWUgPT09ICd5ZXMnO1xuICAgICAgaWYgKGdob3N0KSB7XG4gICAgICAgIHZhciBneCA9IGVsZS5wc3R5bGUoJ2dob3N0LW9mZnNldC14JykucGZWYWx1ZTtcbiAgICAgICAgdmFyIGd5ID0gZWxlLnBzdHlsZSgnZ2hvc3Qtb2Zmc2V0LXknKS5wZlZhbHVlO1xuICAgICAgICB1cGRhdGVCb3VuZHMoYm91bmRzLCBib3VuZHMueDEgKyBneCwgYm91bmRzLnkxICsgZ3ksIGJvdW5kcy54MiArIGd4LCBib3VuZHMueTIgKyBneSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYWx3YXlzIHN0b3JlIHRoZSBib2R5IGJvdW5kcyBzZXBhcmF0ZWx5IGZyb20gdGhlIGxhYmVsc1xuICAgIHZhciBiYkJvZHkgPSBfcC5ib2R5Qm91bmRzID0gX3AuYm9keUJvdW5kcyB8fCB7fTtcbiAgICBhc3NpZ25Cb3VuZGluZ0JveChiYkJvZHksIGJvdW5kcyk7XG4gICAgZXhwYW5kQm91bmRpbmdCb3hTaWRlcyhiYkJvZHksIG1hbnVhbEV4cGFuc2lvbik7XG4gICAgZXhwYW5kQm91bmRpbmdCb3goYmJCb2R5LCAxKTsgLy8gZXhwYW5kIHRvIHdvcmsgYXJvdW5kIGJyb3dzZXIgZGltZW5zaW9uIGluYWNjdXJhY2llc1xuXG4gICAgLy8gb3ZlcmxheVxuICAgIC8vLy8vLy8vLy9cblxuICAgIGlmIChzdHlsZUVuYWJsZWQpIHtcbiAgICAgIGV4MSA9IGJvdW5kcy54MTtcbiAgICAgIGV4MiA9IGJvdW5kcy54MjtcbiAgICAgIGV5MSA9IGJvdW5kcy55MTtcbiAgICAgIGV5MiA9IGJvdW5kcy55MjtcbiAgICAgIHVwZGF0ZUJvdW5kcyhib3VuZHMsIGV4MSAtIHBhZGRpbmcsIGV5MSAtIHBhZGRpbmcsIGV4MiArIHBhZGRpbmcsIGV5MiArIHBhZGRpbmcpO1xuICAgIH1cblxuICAgIC8vIGFsd2F5cyBzdG9yZSB0aGUgYm9keSBib3VuZHMgc2VwYXJhdGVseSBmcm9tIHRoZSBsYWJlbHNcbiAgICB2YXIgYmJPdmVybGF5ID0gX3Aub3ZlcmxheUJvdW5kcyA9IF9wLm92ZXJsYXlCb3VuZHMgfHwge307XG4gICAgYXNzaWduQm91bmRpbmdCb3goYmJPdmVybGF5LCBib3VuZHMpO1xuICAgIGV4cGFuZEJvdW5kaW5nQm94U2lkZXMoYmJPdmVybGF5LCBtYW51YWxFeHBhbnNpb24pO1xuICAgIGV4cGFuZEJvdW5kaW5nQm94KGJiT3ZlcmxheSwgMSk7IC8vIGV4cGFuZCB0byB3b3JrIGFyb3VuZCBicm93c2VyIGRpbWVuc2lvbiBpbmFjY3VyYWNpZXNcblxuICAgIC8vIGhhbmRsZSBsYWJlbCBkaW1lbnNpb25zXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHZhciBiYkxhYmVscyA9IF9wLmxhYmVsQm91bmRzID0gX3AubGFiZWxCb3VuZHMgfHwge307XG4gICAgaWYgKGJiTGFiZWxzLmFsbCAhPSBudWxsKSB7XG4gICAgICBjbGVhckJvdW5kaW5nQm94KGJiTGFiZWxzLmFsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJiTGFiZWxzLmFsbCA9IG1ha2VCb3VuZGluZ0JveCgpO1xuICAgIH1cbiAgICBpZiAoc3R5bGVFbmFibGVkICYmIG9wdGlvbnMuaW5jbHVkZUxhYmVscykge1xuICAgICAgaWYgKG9wdGlvbnMuaW5jbHVkZU1haW5MYWJlbHMpIHtcbiAgICAgICAgdXBkYXRlQm91bmRzRnJvbUxhYmVsKGJvdW5kcywgZWxlLCBudWxsKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0VkZ2UpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuaW5jbHVkZVNvdXJjZUxhYmVscykge1xuICAgICAgICAgIHVwZGF0ZUJvdW5kc0Zyb21MYWJlbChib3VuZHMsIGVsZSwgJ3NvdXJjZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmluY2x1ZGVUYXJnZXRMYWJlbHMpIHtcbiAgICAgICAgICB1cGRhdGVCb3VuZHNGcm9tTGFiZWwoYm91bmRzLCBlbGUsICd0YXJnZXQnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gLy8gc3R5bGUgZW5hYmxlZCBmb3IgbGFiZWxzXG4gIH0gLy8gaWYgZGlzcGxheWVkXG5cbiAgYm91bmRzLngxID0gbm9uaW5mKGJvdW5kcy54MSk7XG4gIGJvdW5kcy55MSA9IG5vbmluZihib3VuZHMueTEpO1xuICBib3VuZHMueDIgPSBub25pbmYoYm91bmRzLngyKTtcbiAgYm91bmRzLnkyID0gbm9uaW5mKGJvdW5kcy55Mik7XG4gIGJvdW5kcy53ID0gbm9uaW5mKGJvdW5kcy54MiAtIGJvdW5kcy54MSk7XG4gIGJvdW5kcy5oID0gbm9uaW5mKGJvdW5kcy55MiAtIGJvdW5kcy55MSk7XG4gIGlmIChib3VuZHMudyA+IDAgJiYgYm91bmRzLmggPiAwICYmIGRpc3BsYXllZCkge1xuICAgIGV4cGFuZEJvdW5kaW5nQm94U2lkZXMoYm91bmRzLCBtYW51YWxFeHBhbnNpb24pO1xuXG4gICAgLy8gZXhwYW5kIGJvdW5kcyBieSAxIGJlY2F1c2UgYW50aWFsaWFzaW5nIGNhbiBpbmNyZWFzZSB0aGUgdmlzdWFsL2VmZmVjdGl2ZSBzaXplIGJ5IDEgb24gYWxsIHNpZGVzXG4gICAgZXhwYW5kQm91bmRpbmdCb3goYm91bmRzLCAxKTtcbiAgfVxuICByZXR1cm4gYm91bmRzO1xufTtcbnZhciBnZXRLZXkgPSBmdW5jdGlvbiBnZXRLZXkob3B0cykge1xuICB2YXIgaSA9IDA7XG4gIHZhciB0ZiA9IGZ1bmN0aW9uIHRmKHZhbCkge1xuICAgIHJldHVybiAodmFsID8gMSA6IDApIDw8IGkrKztcbiAgfTtcbiAgdmFyIGtleSA9IDA7XG4gIGtleSArPSB0ZihvcHRzLmluY3VkZU5vZGVzKTtcbiAga2V5ICs9IHRmKG9wdHMuaW5jbHVkZUVkZ2VzKTtcbiAga2V5ICs9IHRmKG9wdHMuaW5jbHVkZUxhYmVscyk7XG4gIGtleSArPSB0ZihvcHRzLmluY2x1ZGVNYWluTGFiZWxzKTtcbiAga2V5ICs9IHRmKG9wdHMuaW5jbHVkZVNvdXJjZUxhYmVscyk7XG4gIGtleSArPSB0ZihvcHRzLmluY2x1ZGVUYXJnZXRMYWJlbHMpO1xuICBrZXkgKz0gdGYob3B0cy5pbmNsdWRlT3ZlcmxheXMpO1xuICBrZXkgKz0gdGYob3B0cy5pbmNsdWRlT3V0bGluZXMpO1xuICByZXR1cm4ga2V5O1xufTtcbnZhciBnZXRCb3VuZGluZ0JveFBvc0tleSA9IGZ1bmN0aW9uIGdldEJvdW5kaW5nQm94UG9zS2V5KGVsZSkge1xuICBpZiAoZWxlLmlzRWRnZSgpKSB7XG4gICAgdmFyIHAxID0gZWxlLnNvdXJjZSgpLnBvc2l0aW9uKCk7XG4gICAgdmFyIHAyID0gZWxlLnRhcmdldCgpLnBvc2l0aW9uKCk7XG4gICAgdmFyIHIgPSBmdW5jdGlvbiByKHgpIHtcbiAgICAgIHJldHVybiBNYXRoLnJvdW5kKHgpO1xuICAgIH07XG4gICAgcmV0dXJuIGhhc2hJbnRzQXJyYXkoW3IocDEueCksIHIocDEueSksIHIocDIueCksIHIocDIueSldKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gMDtcbiAgfVxufTtcbnZhciBjYWNoZWRCb3VuZGluZ0JveEltcGwgPSBmdW5jdGlvbiBjYWNoZWRCb3VuZGluZ0JveEltcGwoZWxlLCBvcHRzKSB7XG4gIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgdmFyIGJiO1xuICB2YXIgaXNFZGdlID0gZWxlLmlzRWRnZSgpO1xuICB2YXIga2V5ID0gb3B0cyA9PSBudWxsID8gZGVmQmJPcHRzS2V5IDogZ2V0S2V5KG9wdHMpO1xuICB2YXIgdXNpbmdEZWZPcHRzID0ga2V5ID09PSBkZWZCYk9wdHNLZXk7XG4gIHZhciBjdXJyUG9zS2V5ID0gZ2V0Qm91bmRpbmdCb3hQb3NLZXkoZWxlKTtcbiAgdmFyIGlzUG9zS2V5U2FtZSA9IF9wLmJiQ2FjaGVQb3NLZXkgPT09IGN1cnJQb3NLZXk7XG4gIHZhciB1c2VDYWNoZSA9IG9wdHMudXNlQ2FjaGUgJiYgaXNQb3NLZXlTYW1lO1xuICB2YXIgaXNEaXJ0eSA9IGZ1bmN0aW9uIGlzRGlydHkoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5fcHJpdmF0ZS5iYkNhY2hlID09IG51bGwgfHwgZWxlLl9wcml2YXRlLnN0eWxlRGlydHk7XG4gIH07XG4gIHZhciBuZWVkUmVjYWxjID0gIXVzZUNhY2hlIHx8IGlzRGlydHkoZWxlKSB8fCBpc0VkZ2UgJiYgaXNEaXJ0eShlbGUuc291cmNlKCkpIHx8IGlzRGlydHkoZWxlLnRhcmdldCgpKTtcbiAgaWYgKG5lZWRSZWNhbGMpIHtcbiAgICBpZiAoIWlzUG9zS2V5U2FtZSkge1xuICAgICAgZWxlLnJlY2FsY3VsYXRlUmVuZGVyZWRTdHlsZSh1c2VDYWNoZSk7XG4gICAgfVxuICAgIGJiID0gYm91bmRpbmdCb3hJbXBsKGVsZSwgZGVmQmJPcHRzKTtcbiAgICBfcC5iYkNhY2hlID0gYmI7XG4gICAgX3AuYmJDYWNoZVBvc0tleSA9IGN1cnJQb3NLZXk7XG4gIH0gZWxzZSB7XG4gICAgYmIgPSBfcC5iYkNhY2hlO1xuICB9XG5cbiAgLy8gbm90IHVzaW5nIGRlZiBvcHRzID0+IG5lZWQgdG8gYnVpbGQgdXAgYmIgZnJvbSBjb21iaW5hdGlvbiBvZiBzdWIgYmJzXG4gIGlmICghdXNpbmdEZWZPcHRzKSB7XG4gICAgdmFyIGlzTm9kZSA9IGVsZS5pc05vZGUoKTtcbiAgICBiYiA9IG1ha2VCb3VuZGluZ0JveCgpO1xuICAgIGlmIChvcHRzLmluY2x1ZGVOb2RlcyAmJiBpc05vZGUgfHwgb3B0cy5pbmNsdWRlRWRnZXMgJiYgIWlzTm9kZSkge1xuICAgICAgaWYgKG9wdHMuaW5jbHVkZU92ZXJsYXlzKSB7XG4gICAgICAgIHVwZGF0ZUJvdW5kc0Zyb21Cb3goYmIsIF9wLm92ZXJsYXlCb3VuZHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlQm91bmRzRnJvbUJveChiYiwgX3AuYm9keUJvdW5kcyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvcHRzLmluY2x1ZGVMYWJlbHMpIHtcbiAgICAgIGlmIChvcHRzLmluY2x1ZGVNYWluTGFiZWxzICYmICghaXNFZGdlIHx8IG9wdHMuaW5jbHVkZVNvdXJjZUxhYmVscyAmJiBvcHRzLmluY2x1ZGVUYXJnZXRMYWJlbHMpKSB7XG4gICAgICAgIHVwZGF0ZUJvdW5kc0Zyb21Cb3goYmIsIF9wLmxhYmVsQm91bmRzLmFsbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAob3B0cy5pbmNsdWRlTWFpbkxhYmVscykge1xuICAgICAgICAgIHVwZGF0ZUJvdW5kc0Zyb21Cb3goYmIsIF9wLmxhYmVsQm91bmRzLm1haW5Sb3QpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLmluY2x1ZGVTb3VyY2VMYWJlbHMpIHtcbiAgICAgICAgICB1cGRhdGVCb3VuZHNGcm9tQm94KGJiLCBfcC5sYWJlbEJvdW5kcy5zb3VyY2VSb3QpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLmluY2x1ZGVUYXJnZXRMYWJlbHMpIHtcbiAgICAgICAgICB1cGRhdGVCb3VuZHNGcm9tQm94KGJiLCBfcC5sYWJlbEJvdW5kcy50YXJnZXRSb3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGJiLncgPSBiYi54MiAtIGJiLngxO1xuICAgIGJiLmggPSBiYi55MiAtIGJiLnkxO1xuICB9XG4gIHJldHVybiBiYjtcbn07XG52YXIgZGVmQmJPcHRzID0ge1xuICBpbmNsdWRlTm9kZXM6IHRydWUsXG4gIGluY2x1ZGVFZGdlczogdHJ1ZSxcbiAgaW5jbHVkZUxhYmVsczogdHJ1ZSxcbiAgaW5jbHVkZU1haW5MYWJlbHM6IHRydWUsXG4gIGluY2x1ZGVTb3VyY2VMYWJlbHM6IHRydWUsXG4gIGluY2x1ZGVUYXJnZXRMYWJlbHM6IHRydWUsXG4gIGluY2x1ZGVPdmVybGF5czogdHJ1ZSxcbiAgaW5jbHVkZVVuZGVybGF5czogdHJ1ZSxcbiAgaW5jbHVkZU91dGxpbmVzOiB0cnVlLFxuICB1c2VDYWNoZTogdHJ1ZVxufTtcbnZhciBkZWZCYk9wdHNLZXkgPSBnZXRLZXkoZGVmQmJPcHRzKTtcbnZhciBmaWxsZWRCYk9wdHMgPSBkZWZhdWx0cyRnKGRlZkJiT3B0cyk7XG5lbGVzZm4kYi5ib3VuZGluZ0JveCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIHZhciBib3VuZHM7XG5cbiAgLy8gdGhlIG1haW4gdXNlY2FzZSBpcyBlbGUuYm91bmRpbmdCb3goKSBmb3IgYSBzaW5nbGUgZWxlbWVudCB3aXRoIG5vL2RlZiBvcHRpb25zXG4gIC8vIHNwZWNpZmllZCBzLnQuIHRoZSBjYWNoZSBpcyB1c2VkLCBzbyBjaGVjayBmb3IgdGhpcyBjYXNlIHRvIG1ha2UgaXQgZmFzdGVyIGJ5XG4gIC8vIGF2b2lkaW5nIHRoZSBvdmVyaGVhZCBvZiB0aGUgcmVzdCBvZiB0aGUgZnVuY3Rpb25cbiAgaWYgKHRoaXMubGVuZ3RoID09PSAxICYmIHRoaXNbMF0uX3ByaXZhdGUuYmJDYWNoZSAhPSBudWxsICYmICF0aGlzWzBdLl9wcml2YXRlLnN0eWxlRGlydHkgJiYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fCBvcHRpb25zLnVzZUNhY2hlID09PSB1bmRlZmluZWQgfHwgb3B0aW9ucy51c2VDYWNoZSA9PT0gdHJ1ZSkpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBvcHRpb25zID0gZGVmQmJPcHRzO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0gZmlsbGVkQmJPcHRzKG9wdGlvbnMpO1xuICAgIH1cbiAgICBib3VuZHMgPSBjYWNoZWRCb3VuZGluZ0JveEltcGwodGhpc1swXSwgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgYm91bmRzID0gbWFrZUJvdW5kaW5nQm94KCk7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwgZGVmQmJPcHRzO1xuICAgIHZhciBvcHRzID0gZmlsbGVkQmJPcHRzKG9wdGlvbnMpO1xuICAgIHZhciBlbGVzID0gdGhpcztcbiAgICB2YXIgY3kgPSBlbGVzLmN5KCk7XG4gICAgdmFyIHN0eWxlRW5hYmxlZCA9IGN5LnN0eWxlRW5hYmxlZCgpO1xuICAgIGlmIChzdHlsZUVuYWJsZWQpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZWxlID0gZWxlc1tpXTtcbiAgICAgICAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICAgICAgICB2YXIgY3VyclBvc0tleSA9IGdldEJvdW5kaW5nQm94UG9zS2V5KGVsZSk7XG4gICAgICAgIHZhciBpc1Bvc0tleVNhbWUgPSBfcC5iYkNhY2hlUG9zS2V5ID09PSBjdXJyUG9zS2V5O1xuICAgICAgICB2YXIgdXNlQ2FjaGUgPSBvcHRzLnVzZUNhY2hlICYmIGlzUG9zS2V5U2FtZSAmJiAhX3Auc3R5bGVEaXJ0eTtcbiAgICAgICAgZWxlLnJlY2FsY3VsYXRlUmVuZGVyZWRTdHlsZSh1c2VDYWNoZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ29tcG91bmRCb3VuZHMoIW9wdGlvbnMudXNlQ2FjaGUpO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBlbGVzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9lbGUgPSBlbGVzW19pXTtcbiAgICAgIHVwZGF0ZUJvdW5kc0Zyb21Cb3goYm91bmRzLCBjYWNoZWRCb3VuZGluZ0JveEltcGwoX2VsZSwgb3B0cykpO1xuICAgIH1cbiAgfVxuICBib3VuZHMueDEgPSBub25pbmYoYm91bmRzLngxKTtcbiAgYm91bmRzLnkxID0gbm9uaW5mKGJvdW5kcy55MSk7XG4gIGJvdW5kcy54MiA9IG5vbmluZihib3VuZHMueDIpO1xuICBib3VuZHMueTIgPSBub25pbmYoYm91bmRzLnkyKTtcbiAgYm91bmRzLncgPSBub25pbmYoYm91bmRzLngyIC0gYm91bmRzLngxKTtcbiAgYm91bmRzLmggPSBub25pbmYoYm91bmRzLnkyIC0gYm91bmRzLnkxKTtcbiAgcmV0dXJuIGJvdW5kcztcbn07XG5lbGVzZm4kYi5kaXJ0eUJvdW5kaW5nQm94Q2FjaGUgPSBmdW5jdGlvbiAoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBfcCA9IHRoaXNbaV0uX3ByaXZhdGU7XG4gICAgX3AuYmJDYWNoZSA9IG51bGw7XG4gICAgX3AuYmJDYWNoZVBvc0tleSA9IG51bGw7XG4gICAgX3AuYm9keUJvdW5kcyA9IG51bGw7XG4gICAgX3Aub3ZlcmxheUJvdW5kcyA9IG51bGw7XG4gICAgX3AubGFiZWxCb3VuZHMuYWxsID0gbnVsbDtcbiAgICBfcC5sYWJlbEJvdW5kcy5zb3VyY2UgPSBudWxsO1xuICAgIF9wLmxhYmVsQm91bmRzLnRhcmdldCA9IG51bGw7XG4gICAgX3AubGFiZWxCb3VuZHMubWFpbiA9IG51bGw7XG4gICAgX3AubGFiZWxCb3VuZHMuc291cmNlUm90ID0gbnVsbDtcbiAgICBfcC5sYWJlbEJvdW5kcy50YXJnZXRSb3QgPSBudWxsO1xuICAgIF9wLmxhYmVsQm91bmRzLm1haW5Sb3QgPSBudWxsO1xuICAgIF9wLmFycm93Qm91bmRzLnNvdXJjZSA9IG51bGw7XG4gICAgX3AuYXJyb3dCb3VuZHMudGFyZ2V0ID0gbnVsbDtcbiAgICBfcC5hcnJvd0JvdW5kc1snbWlkLXNvdXJjZSddID0gbnVsbDtcbiAgICBfcC5hcnJvd0JvdW5kc1snbWlkLXRhcmdldCddID0gbnVsbDtcbiAgfVxuICB0aGlzLmVtaXRBbmROb3RpZnkoJ2JvdW5kcycpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8vIHByaXZhdGUgaGVscGVyIHRvIGdldCBib3VuZGluZyBib3ggZm9yIGN1c3RvbSBub2RlIHBvc2l0aW9uc1xuLy8gLSBnb29kIGZvciBwZXJmIGluIGNlcnRhaW4gY2FzZXMgYnV0IGN1cnJlbnRseSByZXF1aXJlcyBkaXJ0eWluZyB0aGUgcmVuZGVyZWQgc3R5bGVcbi8vIC0gd291bGQgYmUgYmV0dGVyIHRvIG5vdCBtb2RpZnkgdGhlIG5vZGVzIGJ1dCB0aGUgbm9kZXMgYXJlIHJlYWQgZGlyZWN0bHkgZXZlcnl3aGVyZSBpbiB0aGUgcmVuZGVyZXIuLi5cbi8vIC0gdHJ5IHRvIHVzZSBmb3Igb25seSB0aGluZ3MgbGlrZSBkaXNjcmV0ZSBsYXlvdXRzIHdoZXJlIHRoZSBub2RlIHBvc2l0aW9uIHdvdWxkIGNoYW5nZSBhbnl3YXlcbmVsZXNmbiRiLmJvdW5kaW5nQm94QXQgPSBmdW5jdGlvbiAoZm4pIHtcbiAgdmFyIG5vZGVzID0gdGhpcy5ub2RlcygpO1xuICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gIHZhciBoYXNDb21wb3VuZE5vZGVzID0gY3kuaGFzQ29tcG91bmROb2RlcygpO1xuICB2YXIgcGFyZW50cyA9IGN5LmNvbGxlY3Rpb24oKTtcbiAgaWYgKGhhc0NvbXBvdW5kTm9kZXMpIHtcbiAgICBwYXJlbnRzID0gbm9kZXMuZmlsdGVyKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICByZXR1cm4gbm9kZS5pc1BhcmVudCgpO1xuICAgIH0pO1xuICAgIG5vZGVzID0gbm9kZXMubm90KHBhcmVudHMpO1xuICB9XG4gIGlmIChwbGFpbk9iamVjdChmbikpIHtcbiAgICB2YXIgb2JqID0gZm47XG4gICAgZm4gPSBmdW5jdGlvbiBmbigpIHtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcbiAgfVxuICB2YXIgc3RvcmVPbGRQb3MgPSBmdW5jdGlvbiBzdG9yZU9sZFBvcyhub2RlLCBpKSB7XG4gICAgcmV0dXJuIG5vZGUuX3ByaXZhdGUuYmJBdE9sZFBvcyA9IGZuKG5vZGUsIGkpO1xuICB9O1xuICB2YXIgZ2V0T2xkUG9zID0gZnVuY3Rpb24gZ2V0T2xkUG9zKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5fcHJpdmF0ZS5iYkF0T2xkUG9zO1xuICB9O1xuICBjeS5zdGFydEJhdGNoKCk7XG4gIG5vZGVzLmZvckVhY2goc3RvcmVPbGRQb3MpLnNpbGVudFBvc2l0aW9ucyhmbik7XG4gIGlmIChoYXNDb21wb3VuZE5vZGVzKSB7XG4gICAgcGFyZW50cy5kaXJ0eUNvbXBvdW5kQm91bmRzQ2FjaGUoKTtcbiAgICBwYXJlbnRzLmRpcnR5Qm91bmRpbmdCb3hDYWNoZSgpO1xuICAgIHBhcmVudHMudXBkYXRlQ29tcG91bmRCb3VuZHModHJ1ZSk7IC8vIGZvcmNlIHVwZGF0ZSBiL2Mgd2UncmUgaW5zaWRlIGEgYmF0Y2ggY3ljbGVcbiAgfVxuXG4gIHZhciBiYiA9IGNvcHlCb3VuZGluZ0JveCh0aGlzLmJvdW5kaW5nQm94KHtcbiAgICB1c2VDYWNoZTogZmFsc2VcbiAgfSkpO1xuICBub2Rlcy5zaWxlbnRQb3NpdGlvbnMoZ2V0T2xkUG9zKTtcbiAgaWYgKGhhc0NvbXBvdW5kTm9kZXMpIHtcbiAgICBwYXJlbnRzLmRpcnR5Q29tcG91bmRCb3VuZHNDYWNoZSgpO1xuICAgIHBhcmVudHMuZGlydHlCb3VuZGluZ0JveENhY2hlKCk7XG4gICAgcGFyZW50cy51cGRhdGVDb21wb3VuZEJvdW5kcyh0cnVlKTsgLy8gZm9yY2UgdXBkYXRlIGIvYyB3ZSdyZSBpbnNpZGUgYSBiYXRjaCBjeWNsZVxuICB9XG5cbiAgY3kuZW5kQmF0Y2goKTtcbiAgcmV0dXJuIGJiO1xufTtcbmZuJDMuYm91bmRpbmdib3ggPSBmbiQzLmJiID0gZm4kMy5ib3VuZGluZ0JveDtcbmZuJDMucmVuZGVyZWRCb3VuZGluZ2JveCA9IGZuJDMucmVuZGVyZWRCb3VuZGluZ0JveDtcbnZhciBib3VuZHMgPSBlbGVzZm4kYjtcblxudmFyIGZuJDIsIGVsZXNmbiRhO1xuZm4kMiA9IGVsZXNmbiRhID0ge307XG52YXIgZGVmaW5lRGltRm5zID0gZnVuY3Rpb24gZGVmaW5lRGltRm5zKG9wdHMpIHtcbiAgb3B0cy51cHBlcmNhc2VOYW1lID0gY2FwaXRhbGl6ZShvcHRzLm5hbWUpO1xuICBvcHRzLmF1dG9OYW1lID0gJ2F1dG8nICsgb3B0cy51cHBlcmNhc2VOYW1lO1xuICBvcHRzLmxhYmVsTmFtZSA9ICdsYWJlbCcgKyBvcHRzLnVwcGVyY2FzZU5hbWU7XG4gIG9wdHMub3V0ZXJOYW1lID0gJ291dGVyJyArIG9wdHMudXBwZXJjYXNlTmFtZTtcbiAgb3B0cy51cHBlcmNhc2VPdXRlck5hbWUgPSBjYXBpdGFsaXplKG9wdHMub3V0ZXJOYW1lKTtcbiAgZm4kMltvcHRzLm5hbWVdID0gZnVuY3Rpb24gZGltSW1wbCgpIHtcbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICB2YXIgX3AgPSBlbGUuX3ByaXZhdGU7XG4gICAgdmFyIGN5ID0gX3AuY3k7XG4gICAgdmFyIHN0eWxlRW5hYmxlZCA9IGN5Ll9wcml2YXRlLnN0eWxlRW5hYmxlZDtcbiAgICBpZiAoZWxlKSB7XG4gICAgICBpZiAoc3R5bGVFbmFibGVkKSB7XG4gICAgICAgIGlmIChlbGUuaXNQYXJlbnQoKSkge1xuICAgICAgICAgIGVsZS51cGRhdGVDb21wb3VuZEJvdW5kcygpO1xuICAgICAgICAgIHJldHVybiBfcFtvcHRzLmF1dG9OYW1lXSB8fCAwO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkID0gZWxlLnBzdHlsZShvcHRzLm5hbWUpO1xuICAgICAgICBzd2l0Y2ggKGQuc3RyVmFsdWUpIHtcbiAgICAgICAgICBjYXNlICdsYWJlbCc6XG4gICAgICAgICAgICBlbGUucmVjYWxjdWxhdGVSZW5kZXJlZFN0eWxlKCk7XG4gICAgICAgICAgICByZXR1cm4gX3AucnN0eWxlW29wdHMubGFiZWxOYW1lXSB8fCAwO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZC5wZlZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGZuJDJbJ291dGVyJyArIG9wdHMudXBwZXJjYXNlTmFtZV0gPSBmdW5jdGlvbiBvdXRlckRpbUltcGwoKSB7XG4gICAgdmFyIGVsZSA9IHRoaXNbMF07XG4gICAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICAgIHZhciBjeSA9IF9wLmN5O1xuICAgIHZhciBzdHlsZUVuYWJsZWQgPSBjeS5fcHJpdmF0ZS5zdHlsZUVuYWJsZWQ7XG4gICAgaWYgKGVsZSkge1xuICAgICAgaWYgKHN0eWxlRW5hYmxlZCkge1xuICAgICAgICB2YXIgZGltID0gZWxlW29wdHMubmFtZV0oKTtcbiAgICAgICAgdmFyIGJvcmRlciA9IGVsZS5wc3R5bGUoJ2JvcmRlci13aWR0aCcpLnBmVmFsdWU7IC8vIG4uYi4gMS8yIGVhY2ggc2lkZVxuICAgICAgICB2YXIgcGFkZGluZyA9IDIgKiBlbGUucGFkZGluZygpO1xuICAgICAgICByZXR1cm4gZGltICsgYm9yZGVyICsgcGFkZGluZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgZm4kMlsncmVuZGVyZWQnICsgb3B0cy51cHBlcmNhc2VOYW1lXSA9IGZ1bmN0aW9uIHJlbmRlcmVkRGltSW1wbCgpIHtcbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICBpZiAoZWxlKSB7XG4gICAgICB2YXIgZCA9IGVsZVtvcHRzLm5hbWVdKCk7XG4gICAgICByZXR1cm4gZCAqIHRoaXMuY3koKS56b29tKCk7XG4gICAgfVxuICB9O1xuICBmbiQyWydyZW5kZXJlZCcgKyBvcHRzLnVwcGVyY2FzZU91dGVyTmFtZV0gPSBmdW5jdGlvbiByZW5kZXJlZE91dGVyRGltSW1wbCgpIHtcbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICBpZiAoZWxlKSB7XG4gICAgICB2YXIgb2QgPSBlbGVbb3B0cy5vdXRlck5hbWVdKCk7XG4gICAgICByZXR1cm4gb2QgKiB0aGlzLmN5KCkuem9vbSgpO1xuICAgIH1cbiAgfTtcbn07XG5kZWZpbmVEaW1GbnMoe1xuICBuYW1lOiAnd2lkdGgnXG59KTtcbmRlZmluZURpbUZucyh7XG4gIG5hbWU6ICdoZWlnaHQnXG59KTtcbmVsZXNmbiRhLnBhZGRpbmcgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBlbGUgPSB0aGlzWzBdO1xuICB2YXIgX3AgPSBlbGUuX3ByaXZhdGU7XG4gIGlmIChlbGUuaXNQYXJlbnQoKSkge1xuICAgIGVsZS51cGRhdGVDb21wb3VuZEJvdW5kcygpO1xuICAgIGlmIChfcC5hdXRvUGFkZGluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gX3AuYXV0b1BhZGRpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlbGUucHN0eWxlKCdwYWRkaW5nJykucGZWYWx1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGVsZS5wc3R5bGUoJ3BhZGRpbmcnKS5wZlZhbHVlO1xuICB9XG59O1xuZWxlc2ZuJGEucGFkZGVkSGVpZ2h0ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZWxlID0gdGhpc1swXTtcbiAgcmV0dXJuIGVsZS5oZWlnaHQoKSArIDIgKiBlbGUucGFkZGluZygpO1xufTtcbmVsZXNmbiRhLnBhZGRlZFdpZHRoID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZWxlID0gdGhpc1swXTtcbiAgcmV0dXJuIGVsZS53aWR0aCgpICsgMiAqIGVsZS5wYWRkaW5nKCk7XG59O1xudmFyIHdpZHRoSGVpZ2h0ID0gZWxlc2ZuJGE7XG5cbnZhciBpZkVkZ2UgPSBmdW5jdGlvbiBpZkVkZ2UoZWxlLCBnZXRWYWx1ZSkge1xuICBpZiAoZWxlLmlzRWRnZSgpKSB7XG4gICAgcmV0dXJuIGdldFZhbHVlKGVsZSk7XG4gIH1cbn07XG52YXIgaWZFZGdlUmVuZGVyZWRQb3NpdGlvbiA9IGZ1bmN0aW9uIGlmRWRnZVJlbmRlcmVkUG9zaXRpb24oZWxlLCBnZXRQb2ludCkge1xuICBpZiAoZWxlLmlzRWRnZSgpKSB7XG4gICAgdmFyIGN5ID0gZWxlLmN5KCk7XG4gICAgcmV0dXJuIG1vZGVsVG9SZW5kZXJlZFBvc2l0aW9uKGdldFBvaW50KGVsZSksIGN5Lnpvb20oKSwgY3kucGFuKCkpO1xuICB9XG59O1xudmFyIGlmRWRnZVJlbmRlcmVkUG9zaXRpb25zID0gZnVuY3Rpb24gaWZFZGdlUmVuZGVyZWRQb3NpdGlvbnMoZWxlLCBnZXRQb2ludHMpIHtcbiAgaWYgKGVsZS5pc0VkZ2UoKSkge1xuICAgIHZhciBjeSA9IGVsZS5jeSgpO1xuICAgIHZhciBwYW4gPSBjeS5wYW4oKTtcbiAgICB2YXIgem9vbSA9IGN5Lnpvb20oKTtcbiAgICByZXR1cm4gZ2V0UG9pbnRzKGVsZSkubWFwKGZ1bmN0aW9uIChwKSB7XG4gICAgICByZXR1cm4gbW9kZWxUb1JlbmRlcmVkUG9zaXRpb24ocCwgem9vbSwgcGFuKTtcbiAgICB9KTtcbiAgfVxufTtcbnZhciBjb250cm9sUG9pbnRzID0gZnVuY3Rpb24gY29udHJvbFBvaW50cyhlbGUpIHtcbiAgcmV0dXJuIGVsZS5yZW5kZXJlcigpLmdldENvbnRyb2xQb2ludHMoZWxlKTtcbn07XG52YXIgc2VnbWVudFBvaW50cyA9IGZ1bmN0aW9uIHNlZ21lbnRQb2ludHMoZWxlKSB7XG4gIHJldHVybiBlbGUucmVuZGVyZXIoKS5nZXRTZWdtZW50UG9pbnRzKGVsZSk7XG59O1xudmFyIHNvdXJjZUVuZHBvaW50ID0gZnVuY3Rpb24gc291cmNlRW5kcG9pbnQoZWxlKSB7XG4gIHJldHVybiBlbGUucmVuZGVyZXIoKS5nZXRTb3VyY2VFbmRwb2ludChlbGUpO1xufTtcbnZhciB0YXJnZXRFbmRwb2ludCA9IGZ1bmN0aW9uIHRhcmdldEVuZHBvaW50KGVsZSkge1xuICByZXR1cm4gZWxlLnJlbmRlcmVyKCkuZ2V0VGFyZ2V0RW5kcG9pbnQoZWxlKTtcbn07XG52YXIgbWlkcG9pbnQgPSBmdW5jdGlvbiBtaWRwb2ludChlbGUpIHtcbiAgcmV0dXJuIGVsZS5yZW5kZXJlcigpLmdldEVkZ2VNaWRwb2ludChlbGUpO1xufTtcbnZhciBwdHMgPSB7XG4gIGNvbnRyb2xQb2ludHM6IHtcbiAgICBnZXQ6IGNvbnRyb2xQb2ludHMsXG4gICAgbXVsdDogdHJ1ZVxuICB9LFxuICBzZWdtZW50UG9pbnRzOiB7XG4gICAgZ2V0OiBzZWdtZW50UG9pbnRzLFxuICAgIG11bHQ6IHRydWVcbiAgfSxcbiAgc291cmNlRW5kcG9pbnQ6IHtcbiAgICBnZXQ6IHNvdXJjZUVuZHBvaW50XG4gIH0sXG4gIHRhcmdldEVuZHBvaW50OiB7XG4gICAgZ2V0OiB0YXJnZXRFbmRwb2ludFxuICB9LFxuICBtaWRwb2ludDoge1xuICAgIGdldDogbWlkcG9pbnRcbiAgfVxufTtcbnZhciByZW5kZXJlZE5hbWUgPSBmdW5jdGlvbiByZW5kZXJlZE5hbWUobmFtZSkge1xuICByZXR1cm4gJ3JlbmRlcmVkJyArIG5hbWVbMF0udG9VcHBlckNhc2UoKSArIG5hbWUuc3Vic3RyKDEpO1xufTtcbnZhciBlZGdlUG9pbnRzID0gT2JqZWN0LmtleXMocHRzKS5yZWR1Y2UoZnVuY3Rpb24gKG9iaiwgbmFtZSkge1xuICB2YXIgc3BlYyA9IHB0c1tuYW1lXTtcbiAgdmFyIHJOYW1lID0gcmVuZGVyZWROYW1lKG5hbWUpO1xuICBvYmpbbmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGlmRWRnZSh0aGlzLCBzcGVjLmdldCk7XG4gIH07XG4gIGlmIChzcGVjLm11bHQpIHtcbiAgICBvYmpbck5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGlmRWRnZVJlbmRlcmVkUG9zaXRpb25zKHRoaXMsIHNwZWMuZ2V0KTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIG9ialtyTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gaWZFZGdlUmVuZGVyZWRQb3NpdGlvbih0aGlzLCBzcGVjLmdldCk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gb2JqO1xufSwge30pO1xuXG52YXIgZGltZW5zaW9ucyA9IGV4dGVuZCh7fSwgcG9zaXRpb24sIGJvdW5kcywgd2lkdGhIZWlnaHQsIGVkZ2VQb2ludHMpO1xuXG4vKiFcbkV2ZW50IG9iamVjdCBiYXNlZCBvbiBqUXVlcnkgZXZlbnRzLCBNSVQgbGljZW5zZVxuXG5odHRwczovL2pxdWVyeS5vcmcvbGljZW5zZS9cbmh0dHBzOi8vdGxkcmxlZ2FsLmNvbS9saWNlbnNlL21pdC1saWNlbnNlXG5odHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9ibG9iL21hc3Rlci9zcmMvZXZlbnQuanNcbiovXG5cbnZhciBFdmVudCA9IGZ1bmN0aW9uIEV2ZW50KHNyYywgcHJvcHMpIHtcbiAgdGhpcy5yZWN5Y2xlKHNyYywgcHJvcHMpO1xufTtcbmZ1bmN0aW9uIHJldHVybkZhbHNlKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiByZXR1cm5UcnVlKCkge1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9XRC1ET00tTGV2ZWwtMy1FdmVudHMtMjAwMzAzMzEvZWNtYS1zY3JpcHQtYmluZGluZy5odG1sXG5FdmVudC5wcm90b3R5cGUgPSB7XG4gIGluc3RhbmNlU3RyaW5nOiBmdW5jdGlvbiBpbnN0YW5jZVN0cmluZygpIHtcbiAgICByZXR1cm4gJ2V2ZW50JztcbiAgfSxcbiAgcmVjeWNsZTogZnVuY3Rpb24gcmVjeWNsZShzcmMsIHByb3BzKSB7XG4gICAgdGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCA9IHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQgPSB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IHJldHVybkZhbHNlO1xuICAgIGlmIChzcmMgIT0gbnVsbCAmJiBzcmMucHJldmVudERlZmF1bHQpIHtcbiAgICAgIC8vIEJyb3dzZXIgRXZlbnQgb2JqZWN0XG4gICAgICB0aGlzLnR5cGUgPSBzcmMudHlwZTtcblxuICAgICAgLy8gRXZlbnRzIGJ1YmJsaW5nIHVwIHRoZSBkb2N1bWVudCBtYXkgaGF2ZSBiZWVuIG1hcmtlZCBhcyBwcmV2ZW50ZWRcbiAgICAgIC8vIGJ5IGEgaGFuZGxlciBsb3dlciBkb3duIHRoZSB0cmVlOyByZWZsZWN0IHRoZSBjb3JyZWN0IHZhbHVlLlxuICAgICAgdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBzcmMuZGVmYXVsdFByZXZlbnRlZCA/IHJldHVyblRydWUgOiByZXR1cm5GYWxzZTtcbiAgICB9IGVsc2UgaWYgKHNyYyAhPSBudWxsICYmIHNyYy50eXBlKSB7XG4gICAgICAvLyBQbGFpbiBvYmplY3QgY29udGFpbmluZyBhbGwgZXZlbnQgZGV0YWlsc1xuICAgICAgcHJvcHMgPSBzcmM7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEV2ZW50IHN0cmluZ1xuICAgICAgdGhpcy50eXBlID0gc3JjO1xuICAgIH1cblxuICAgIC8vIFB1dCBleHBsaWNpdGx5IHByb3ZpZGVkIHByb3BlcnRpZXMgb250byB0aGUgZXZlbnQgb2JqZWN0XG4gICAgaWYgKHByb3BzICE9IG51bGwpIHtcbiAgICAgIC8vIG1vcmUgZWZmaWNpZW50IHRvIG1hbnVhbGx5IGNvcHkgZmllbGRzIHdlIHVzZVxuICAgICAgdGhpcy5vcmlnaW5hbEV2ZW50ID0gcHJvcHMub3JpZ2luYWxFdmVudDtcbiAgICAgIHRoaXMudHlwZSA9IHByb3BzLnR5cGUgIT0gbnVsbCA/IHByb3BzLnR5cGUgOiB0aGlzLnR5cGU7XG4gICAgICB0aGlzLmN5ID0gcHJvcHMuY3k7XG4gICAgICB0aGlzLnRhcmdldCA9IHByb3BzLnRhcmdldDtcbiAgICAgIHRoaXMucG9zaXRpb24gPSBwcm9wcy5wb3NpdGlvbjtcbiAgICAgIHRoaXMucmVuZGVyZWRQb3NpdGlvbiA9IHByb3BzLnJlbmRlcmVkUG9zaXRpb247XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IHByb3BzLm5hbWVzcGFjZTtcbiAgICAgIHRoaXMubGF5b3V0ID0gcHJvcHMubGF5b3V0O1xuICAgIH1cbiAgICBpZiAodGhpcy5jeSAhPSBudWxsICYmIHRoaXMucG9zaXRpb24gIT0gbnVsbCAmJiB0aGlzLnJlbmRlcmVkUG9zaXRpb24gPT0gbnVsbCkge1xuICAgICAgLy8gY3JlYXRlIGEgcmVuZGVyZWQgcG9zaXRpb24gYmFzZWQgb24gdGhlIHBhc3NlZCBwb3NpdGlvblxuICAgICAgdmFyIHBvcyA9IHRoaXMucG9zaXRpb247XG4gICAgICB2YXIgem9vbSA9IHRoaXMuY3kuem9vbSgpO1xuICAgICAgdmFyIHBhbiA9IHRoaXMuY3kucGFuKCk7XG4gICAgICB0aGlzLnJlbmRlcmVkUG9zaXRpb24gPSB7XG4gICAgICAgIHg6IHBvcy54ICogem9vbSArIHBhbi54LFxuICAgICAgICB5OiBwb3MueSAqIHpvb20gKyBwYW4ueVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSB0aW1lc3RhbXAgaWYgaW5jb21pbmcgZXZlbnQgZG9lc24ndCBoYXZlIG9uZVxuICAgIHRoaXMudGltZVN0YW1wID0gc3JjICYmIHNyYy50aW1lU3RhbXAgfHwgRGF0ZS5ub3coKTtcbiAgfSxcbiAgcHJldmVudERlZmF1bHQ6IGZ1bmN0aW9uIHByZXZlbnREZWZhdWx0KCkge1xuICAgIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gcmV0dXJuVHJ1ZTtcbiAgICB2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDtcbiAgICBpZiAoIWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpZiBwcmV2ZW50RGVmYXVsdCBleGlzdHMgcnVuIGl0IG9uIHRoZSBvcmlnaW5hbCBldmVudFxuICAgIGlmIChlLnByZXZlbnREZWZhdWx0KSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9LFxuICBzdG9wUHJvcGFnYXRpb246IGZ1bmN0aW9uIHN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTtcbiAgICB2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDtcbiAgICBpZiAoIWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpZiBzdG9wUHJvcGFnYXRpb24gZXhpc3RzIHJ1biBpdCBvbiB0aGUgb3JpZ2luYWwgZXZlbnRcbiAgICBpZiAoZS5zdG9wUHJvcGFnYXRpb24pIHtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9LFxuICBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246IGZ1bmN0aW9uIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpIHtcbiAgICB0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTtcbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbigpO1xuICB9LFxuICBpc0RlZmF1bHRQcmV2ZW50ZWQ6IHJldHVybkZhbHNlLFxuICBpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsXG4gIGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOiByZXR1cm5GYWxzZVxufTtcblxudmFyIGV2ZW50UmVnZXggPSAvXihbXi5dKykoXFwuKD86W14uXSspKT8kLzsgLy8gcmVnZXggZm9yIG1hdGNoaW5nIGV2ZW50IHN0cmluZ3MgKGUuZy4gXCJjbGljay5uYW1lc3BhY2VcIilcbnZhciB1bml2ZXJzYWxOYW1lc3BhY2UgPSAnLionOyAvLyBtYXRjaGVzIGFzIGlmIG5vIG5hbWVzcGFjZSBzcGVjaWZpZWQgYW5kIHByZXZlbnRzIHVzZXJzIGZyb20gdW5iaW5kaW5nIGFjY2lkZW50YWxseVxuXG52YXIgZGVmYXVsdHMkOCA9IHtcbiAgcXVhbGlmaWVyQ29tcGFyZTogZnVuY3Rpb24gcXVhbGlmaWVyQ29tcGFyZShxMSwgcTIpIHtcbiAgICByZXR1cm4gcTEgPT09IHEyO1xuICB9LFxuICBldmVudE1hdGNoZXM6IGZ1bmN0aW9uIGV2ZW50TWF0Y2hlcyggLypjb250ZXh0LCBsaXN0ZW5lciwgZXZlbnRPYmoqL1xuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcbiAgYWRkRXZlbnRGaWVsZHM6IGZ1bmN0aW9uIGFkZEV2ZW50RmllbGRzKCAvKmNvbnRleHQsIGV2dCovXG4gICkge30sXG4gIGNhbGxiYWNrQ29udGV4dDogZnVuY3Rpb24gY2FsbGJhY2tDb250ZXh0KGNvbnRleHQgLyosIGxpc3RlbmVyLCBldmVudE9iaiovKSB7XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH0sXG4gIGJlZm9yZUVtaXQ6IGZ1bmN0aW9uIGJlZm9yZUVtaXQoIC8qIGNvbnRleHQsIGxpc3RlbmVyLCBldmVudE9iaiAqL1xuICApIHt9LFxuICBhZnRlckVtaXQ6IGZ1bmN0aW9uIGFmdGVyRW1pdCggLyogY29udGV4dCwgbGlzdGVuZXIsIGV2ZW50T2JqICovXG4gICkge30sXG4gIGJ1YmJsZTogZnVuY3Rpb24gYnViYmxlKCAvKmNvbnRleHQqL1xuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sXG4gIHBhcmVudDogZnVuY3Rpb24gcGFyZW50KCAvKmNvbnRleHQqL1xuICApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSxcbiAgY29udGV4dDogbnVsbFxufTtcbnZhciBkZWZhdWx0c0tleXMgPSBPYmplY3Qua2V5cyhkZWZhdWx0cyQ4KTtcbnZhciBlbXB0eU9wdHMgPSB7fTtcbmZ1bmN0aW9uIEVtaXR0ZXIoKSB7XG4gIHZhciBvcHRzID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBlbXB0eU9wdHM7XG4gIHZhciBjb250ZXh0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gIC8vIG1pY3JvLW9wdGltaXNhdGlvbiB2cyBPYmplY3QuYXNzaWduKCkgLS0gcmVkdWNlcyBFbGVtZW50IGluc3RhbnRpYXRpb24gdGltZVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGRlZmF1bHRzS2V5cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXkgPSBkZWZhdWx0c0tleXNbaV07XG4gICAgdGhpc1trZXldID0gb3B0c1trZXldIHx8IGRlZmF1bHRzJDhba2V5XTtcbiAgfVxuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0IHx8IHRoaXMuY29udGV4dDtcbiAgdGhpcy5saXN0ZW5lcnMgPSBbXTtcbiAgdGhpcy5lbWl0dGluZyA9IDA7XG59XG52YXIgcCA9IEVtaXR0ZXIucHJvdG90eXBlO1xudmFyIGZvckVhY2hFdmVudCA9IGZ1bmN0aW9uIGZvckVhY2hFdmVudChzZWxmLCBoYW5kbGVyLCBldmVudHMsIHF1YWxpZmllciwgY2FsbGJhY2ssIGNvbmYsIGNvbmZPdmVycmlkZXMpIHtcbiAgaWYgKGZuJDYocXVhbGlmaWVyKSkge1xuICAgIGNhbGxiYWNrID0gcXVhbGlmaWVyO1xuICAgIHF1YWxpZmllciA9IG51bGw7XG4gIH1cbiAgaWYgKGNvbmZPdmVycmlkZXMpIHtcbiAgICBpZiAoY29uZiA9PSBudWxsKSB7XG4gICAgICBjb25mID0gY29uZk92ZXJyaWRlcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZiA9IGV4dGVuZCh7fSwgY29uZiwgY29uZk92ZXJyaWRlcyk7XG4gICAgfVxuICB9XG4gIHZhciBldmVudExpc3QgPSBhcnJheShldmVudHMpID8gZXZlbnRzIDogZXZlbnRzLnNwbGl0KC9cXHMrLyk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGV2dCA9IGV2ZW50TGlzdFtpXTtcbiAgICBpZiAoZW1wdHlTdHJpbmcoZXZ0KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHZhciBtYXRjaCA9IGV2dC5tYXRjaChldmVudFJlZ2V4KTsgLy8gdHlwZVsubmFtZXNwYWNlXVxuXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICB2YXIgdHlwZSA9IG1hdGNoWzFdO1xuICAgICAgdmFyIG5hbWVzcGFjZSA9IG1hdGNoWzJdID8gbWF0Y2hbMl0gOiBudWxsO1xuICAgICAgdmFyIHJldCA9IGhhbmRsZXIoc2VsZiwgZXZ0LCB0eXBlLCBuYW1lc3BhY2UsIHF1YWxpZmllciwgY2FsbGJhY2ssIGNvbmYpO1xuICAgICAgaWYgKHJldCA9PT0gZmFsc2UpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IC8vIGFsbG93IGV4aXRpbmcgZWFybHlcbiAgICB9XG4gIH1cbn07XG5cbnZhciBtYWtlRXZlbnRPYmogPSBmdW5jdGlvbiBtYWtlRXZlbnRPYmooc2VsZiwgb2JqKSB7XG4gIHNlbGYuYWRkRXZlbnRGaWVsZHMoc2VsZi5jb250ZXh0LCBvYmopO1xuICByZXR1cm4gbmV3IEV2ZW50KG9iai50eXBlLCBvYmopO1xufTtcbnZhciBmb3JFYWNoRXZlbnRPYmogPSBmdW5jdGlvbiBmb3JFYWNoRXZlbnRPYmooc2VsZiwgaGFuZGxlciwgZXZlbnRzKSB7XG4gIGlmIChldmVudChldmVudHMpKSB7XG4gICAgaGFuZGxlcihzZWxmLCBldmVudHMpO1xuICAgIHJldHVybjtcbiAgfSBlbHNlIGlmIChwbGFpbk9iamVjdChldmVudHMpKSB7XG4gICAgaGFuZGxlcihzZWxmLCBtYWtlRXZlbnRPYmooc2VsZiwgZXZlbnRzKSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBldmVudExpc3QgPSBhcnJheShldmVudHMpID8gZXZlbnRzIDogZXZlbnRzLnNwbGl0KC9cXHMrLyk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGV2dCA9IGV2ZW50TGlzdFtpXTtcbiAgICBpZiAoZW1wdHlTdHJpbmcoZXZ0KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHZhciBtYXRjaCA9IGV2dC5tYXRjaChldmVudFJlZ2V4KTsgLy8gdHlwZVsubmFtZXNwYWNlXVxuXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICB2YXIgdHlwZSA9IG1hdGNoWzFdO1xuICAgICAgdmFyIG5hbWVzcGFjZSA9IG1hdGNoWzJdID8gbWF0Y2hbMl0gOiBudWxsO1xuICAgICAgdmFyIGV2ZW50T2JqID0gbWFrZUV2ZW50T2JqKHNlbGYsIHtcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICAgIHRhcmdldDogc2VsZi5jb250ZXh0XG4gICAgICB9KTtcbiAgICAgIGhhbmRsZXIoc2VsZiwgZXZlbnRPYmopO1xuICAgIH1cbiAgfVxufTtcbnAub24gPSBwLmFkZExpc3RlbmVyID0gZnVuY3Rpb24gKGV2ZW50cywgcXVhbGlmaWVyLCBjYWxsYmFjaywgY29uZiwgY29uZk92ZXJyaWRlcykge1xuICBmb3JFYWNoRXZlbnQodGhpcywgZnVuY3Rpb24gKHNlbGYsIGV2ZW50LCB0eXBlLCBuYW1lc3BhY2UsIHF1YWxpZmllciwgY2FsbGJhY2ssIGNvbmYpIHtcbiAgICBpZiAoZm4kNihjYWxsYmFjaykpIHtcbiAgICAgIHNlbGYubGlzdGVuZXJzLnB1c2goe1xuICAgICAgICBldmVudDogZXZlbnQsXG4gICAgICAgIC8vIGZ1bGwgZXZlbnQgc3RyaW5nXG4gICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjayxcbiAgICAgICAgLy8gY2FsbGJhY2sgdG8gcnVuXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIC8vIHRoZSBldmVudCB0eXBlIChlLmcuICdjbGljaycpXG4gICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICAvLyB0aGUgZXZlbnQgbmFtZXNwYWNlIChlLmcuIFwiLmZvb1wiKVxuICAgICAgICBxdWFsaWZpZXI6IHF1YWxpZmllcixcbiAgICAgICAgLy8gYSByZXN0cmljdGlvbiBvbiB3aGV0aGVyIHRvIG1hdGNoIHRoaXMgZW1pdHRlclxuICAgICAgICBjb25mOiBjb25mIC8vIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvblxuICAgICAgfSk7XG4gICAgfVxuICB9LCBldmVudHMsIHF1YWxpZmllciwgY2FsbGJhY2ssIGNvbmYsIGNvbmZPdmVycmlkZXMpO1xuICByZXR1cm4gdGhpcztcbn07XG5wLm9uZSA9IGZ1bmN0aW9uIChldmVudHMsIHF1YWxpZmllciwgY2FsbGJhY2ssIGNvbmYpIHtcbiAgcmV0dXJuIHRoaXMub24oZXZlbnRzLCBxdWFsaWZpZXIsIGNhbGxiYWNrLCBjb25mLCB7XG4gICAgb25lOiB0cnVlXG4gIH0pO1xufTtcbnAucmVtb3ZlTGlzdGVuZXIgPSBwLm9mZiA9IGZ1bmN0aW9uIChldmVudHMsIHF1YWxpZmllciwgY2FsbGJhY2ssIGNvbmYpIHtcbiAgdmFyIF90aGlzID0gdGhpcztcbiAgaWYgKHRoaXMuZW1pdHRpbmcgIT09IDApIHtcbiAgICB0aGlzLmxpc3RlbmVycyA9IGNvcHlBcnJheSQxKHRoaXMubGlzdGVuZXJzKTtcbiAgfVxuICB2YXIgbGlzdGVuZXJzID0gdGhpcy5saXN0ZW5lcnM7XG4gIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKGkpIHtcbiAgICB2YXIgbGlzdGVuZXIgPSBsaXN0ZW5lcnNbaV07XG4gICAgZm9yRWFjaEV2ZW50KF90aGlzLCBmdW5jdGlvbiAoc2VsZiwgZXZlbnQsIHR5cGUsIG5hbWVzcGFjZSwgcXVhbGlmaWVyLCBjYWxsYmFjayAvKiwgY29uZiovKSB7XG4gICAgICBpZiAoKGxpc3RlbmVyLnR5cGUgPT09IHR5cGUgfHwgZXZlbnRzID09PSAnKicpICYmICghbmFtZXNwYWNlICYmIGxpc3RlbmVyLm5hbWVzcGFjZSAhPT0gJy4qJyB8fCBsaXN0ZW5lci5uYW1lc3BhY2UgPT09IG5hbWVzcGFjZSkgJiYgKCFxdWFsaWZpZXIgfHwgc2VsZi5xdWFsaWZpZXJDb21wYXJlKGxpc3RlbmVyLnF1YWxpZmllciwgcXVhbGlmaWVyKSkgJiYgKCFjYWxsYmFjayB8fCBsaXN0ZW5lci5jYWxsYmFjayA9PT0gY2FsbGJhY2spKSB7XG4gICAgICAgIGxpc3RlbmVycy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9LCBldmVudHMsIHF1YWxpZmllciwgY2FsbGJhY2ssIGNvbmYpO1xuICB9O1xuICBmb3IgKHZhciBpID0gbGlzdGVuZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgX2xvb3AoaSk7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xucC5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnJlbW92ZUxpc3RlbmVyKCcqJyk7XG59O1xucC5lbWl0ID0gcC50cmlnZ2VyID0gZnVuY3Rpb24gKGV2ZW50cywgZXh0cmFQYXJhbXMsIG1hbnVhbENhbGxiYWNrKSB7XG4gIHZhciBsaXN0ZW5lcnMgPSB0aGlzLmxpc3RlbmVycztcbiAgdmFyIG51bUxpc3RlbmVyc0JlZm9yZUVtaXQgPSBsaXN0ZW5lcnMubGVuZ3RoO1xuICB0aGlzLmVtaXR0aW5nKys7XG4gIGlmICghYXJyYXkoZXh0cmFQYXJhbXMpKSB7XG4gICAgZXh0cmFQYXJhbXMgPSBbZXh0cmFQYXJhbXNdO1xuICB9XG4gIGZvckVhY2hFdmVudE9iaih0aGlzLCBmdW5jdGlvbiAoc2VsZiwgZXZlbnRPYmopIHtcbiAgICBpZiAobWFudWFsQ2FsbGJhY2sgIT0gbnVsbCkge1xuICAgICAgbGlzdGVuZXJzID0gW3tcbiAgICAgICAgZXZlbnQ6IGV2ZW50T2JqLmV2ZW50LFxuICAgICAgICB0eXBlOiBldmVudE9iai50eXBlLFxuICAgICAgICBuYW1lc3BhY2U6IGV2ZW50T2JqLm5hbWVzcGFjZSxcbiAgICAgICAgY2FsbGJhY2s6IG1hbnVhbENhbGxiYWNrXG4gICAgICB9XTtcbiAgICAgIG51bUxpc3RlbmVyc0JlZm9yZUVtaXQgPSBsaXN0ZW5lcnMubGVuZ3RoO1xuICAgIH1cbiAgICB2YXIgX2xvb3AyID0gZnVuY3Rpb24gX2xvb3AyKGkpIHtcbiAgICAgIHZhciBsaXN0ZW5lciA9IGxpc3RlbmVyc1tpXTtcbiAgICAgIGlmIChsaXN0ZW5lci50eXBlID09PSBldmVudE9iai50eXBlICYmICghbGlzdGVuZXIubmFtZXNwYWNlIHx8IGxpc3RlbmVyLm5hbWVzcGFjZSA9PT0gZXZlbnRPYmoubmFtZXNwYWNlIHx8IGxpc3RlbmVyLm5hbWVzcGFjZSA9PT0gdW5pdmVyc2FsTmFtZXNwYWNlKSAmJiBzZWxmLmV2ZW50TWF0Y2hlcyhzZWxmLmNvbnRleHQsIGxpc3RlbmVyLCBldmVudE9iaikpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbZXZlbnRPYmpdO1xuICAgICAgICBpZiAoZXh0cmFQYXJhbXMgIT0gbnVsbCkge1xuICAgICAgICAgIHB1c2goYXJncywgZXh0cmFQYXJhbXMpO1xuICAgICAgICB9XG4gICAgICAgIHNlbGYuYmVmb3JlRW1pdChzZWxmLmNvbnRleHQsIGxpc3RlbmVyLCBldmVudE9iaik7XG4gICAgICAgIGlmIChsaXN0ZW5lci5jb25mICYmIGxpc3RlbmVyLmNvbmYub25lKSB7XG4gICAgICAgICAgc2VsZi5saXN0ZW5lcnMgPSBzZWxmLmxpc3RlbmVycy5maWx0ZXIoZnVuY3Rpb24gKGwpIHtcbiAgICAgICAgICAgIHJldHVybiBsICE9PSBsaXN0ZW5lcjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY29udGV4dCA9IHNlbGYuY2FsbGJhY2tDb250ZXh0KHNlbGYuY29udGV4dCwgbGlzdGVuZXIsIGV2ZW50T2JqKTtcbiAgICAgICAgdmFyIHJldCA9IGxpc3RlbmVyLmNhbGxiYWNrLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgICBzZWxmLmFmdGVyRW1pdChzZWxmLmNvbnRleHQsIGxpc3RlbmVyLCBldmVudE9iaik7XG4gICAgICAgIGlmIChyZXQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgZXZlbnRPYmouc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnRPYmoucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBpZiBsaXN0ZW5lciBtYXRjaGVzXG4gICAgfTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUxpc3RlbmVyc0JlZm9yZUVtaXQ7IGkrKykge1xuICAgICAgX2xvb3AyKGkpO1xuICAgIH0gLy8gZm9yIGxpc3RlbmVyXG5cbiAgICBpZiAoc2VsZi5idWJibGUoc2VsZi5jb250ZXh0KSAmJiAhZXZlbnRPYmouaXNQcm9wYWdhdGlvblN0b3BwZWQoKSkge1xuICAgICAgc2VsZi5wYXJlbnQoc2VsZi5jb250ZXh0KS5lbWl0KGV2ZW50T2JqLCBleHRyYVBhcmFtcyk7XG4gICAgfVxuICB9LCBldmVudHMpO1xuICB0aGlzLmVtaXR0aW5nLS07XG4gIHJldHVybiB0aGlzO1xufTtcblxudmFyIGVtaXR0ZXJPcHRpb25zJDEgPSB7XG4gIHF1YWxpZmllckNvbXBhcmU6IGZ1bmN0aW9uIHF1YWxpZmllckNvbXBhcmUoc2VsZWN0b3IxLCBzZWxlY3RvcjIpIHtcbiAgICBpZiAoc2VsZWN0b3IxID09IG51bGwgfHwgc2VsZWN0b3IyID09IG51bGwpIHtcbiAgICAgIHJldHVybiBzZWxlY3RvcjEgPT0gbnVsbCAmJiBzZWxlY3RvcjIgPT0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHNlbGVjdG9yMS5zYW1lVGV4dChzZWxlY3RvcjIpO1xuICAgIH1cbiAgfSxcbiAgZXZlbnRNYXRjaGVzOiBmdW5jdGlvbiBldmVudE1hdGNoZXMoZWxlLCBsaXN0ZW5lciwgZXZlbnRPYmopIHtcbiAgICB2YXIgc2VsZWN0b3IgPSBsaXN0ZW5lci5xdWFsaWZpZXI7XG4gICAgaWYgKHNlbGVjdG9yICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBlbGUgIT09IGV2ZW50T2JqLnRhcmdldCAmJiBlbGVtZW50KGV2ZW50T2JqLnRhcmdldCkgJiYgc2VsZWN0b3IubWF0Y2hlcyhldmVudE9iai50YXJnZXQpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcbiAgYWRkRXZlbnRGaWVsZHM6IGZ1bmN0aW9uIGFkZEV2ZW50RmllbGRzKGVsZSwgZXZ0KSB7XG4gICAgZXZ0LmN5ID0gZWxlLmN5KCk7XG4gICAgZXZ0LnRhcmdldCA9IGVsZTtcbiAgfSxcbiAgY2FsbGJhY2tDb250ZXh0OiBmdW5jdGlvbiBjYWxsYmFja0NvbnRleHQoZWxlLCBsaXN0ZW5lciwgZXZlbnRPYmopIHtcbiAgICByZXR1cm4gbGlzdGVuZXIucXVhbGlmaWVyICE9IG51bGwgPyBldmVudE9iai50YXJnZXQgOiBlbGU7XG4gIH0sXG4gIGJlZm9yZUVtaXQ6IGZ1bmN0aW9uIGJlZm9yZUVtaXQoY29udGV4dCwgbGlzdGVuZXIgLyosIGV2ZW50T2JqKi8pIHtcbiAgICBpZiAobGlzdGVuZXIuY29uZiAmJiBsaXN0ZW5lci5jb25mLm9uY2UpIHtcbiAgICAgIGxpc3RlbmVyLmNvbmYub25jZUNvbGxlY3Rpb24ucmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIuZXZlbnQsIGxpc3RlbmVyLnF1YWxpZmllciwgbGlzdGVuZXIuY2FsbGJhY2spO1xuICAgIH1cbiAgfSxcbiAgYnViYmxlOiBmdW5jdGlvbiBidWJibGUoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIHBhcmVudDogZnVuY3Rpb24gcGFyZW50KGVsZSkge1xuICAgIHJldHVybiBlbGUuaXNDaGlsZCgpID8gZWxlLnBhcmVudCgpIDogZWxlLmN5KCk7XG4gIH1cbn07XG52YXIgYXJnU2VsZWN0b3IkMSA9IGZ1bmN0aW9uIGFyZ1NlbGVjdG9yKGFyZykge1xuICBpZiAoc3RyaW5nKGFyZykpIHtcbiAgICByZXR1cm4gbmV3IFNlbGVjdG9yKGFyZyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGFyZztcbiAgfVxufTtcbnZhciBlbGVzZm4kOSA9IHtcbiAgY3JlYXRlRW1pdHRlcjogZnVuY3Rpb24gY3JlYXRlRW1pdHRlcigpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbGUgPSB0aGlzW2ldO1xuICAgICAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICAgICAgaWYgKCFfcC5lbWl0dGVyKSB7XG4gICAgICAgIF9wLmVtaXR0ZXIgPSBuZXcgRW1pdHRlcihlbWl0dGVyT3B0aW9ucyQxLCBlbGUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgZW1pdHRlcjogZnVuY3Rpb24gZW1pdHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5lbWl0dGVyO1xuICB9LFxuICBvbjogZnVuY3Rpb24gb24oZXZlbnRzLCBzZWxlY3RvciwgY2FsbGJhY2spIHtcbiAgICB2YXIgYXJnU2VsID0gYXJnU2VsZWN0b3IkMShzZWxlY3Rvcik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlID0gdGhpc1tpXTtcbiAgICAgIGVsZS5lbWl0dGVyKCkub24oZXZlbnRzLCBhcmdTZWwsIGNhbGxiYWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIHJlbW92ZUxpc3RlbmVyOiBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihldmVudHMsIHNlbGVjdG9yLCBjYWxsYmFjaykge1xuICAgIHZhciBhcmdTZWwgPSBhcmdTZWxlY3RvciQxKHNlbGVjdG9yKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbGUgPSB0aGlzW2ldO1xuICAgICAgZWxlLmVtaXR0ZXIoKS5yZW1vdmVMaXN0ZW5lcihldmVudHMsIGFyZ1NlbCwgY2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgcmVtb3ZlQWxsTGlzdGVuZXJzOiBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnMoKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlID0gdGhpc1tpXTtcbiAgICAgIGVsZS5lbWl0dGVyKCkucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICBvbmU6IGZ1bmN0aW9uIG9uZShldmVudHMsIHNlbGVjdG9yLCBjYWxsYmFjaykge1xuICAgIHZhciBhcmdTZWwgPSBhcmdTZWxlY3RvciQxKHNlbGVjdG9yKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbGUgPSB0aGlzW2ldO1xuICAgICAgZWxlLmVtaXR0ZXIoKS5vbmUoZXZlbnRzLCBhcmdTZWwsIGNhbGxiYWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIG9uY2U6IGZ1bmN0aW9uIG9uY2UoZXZlbnRzLCBzZWxlY3RvciwgY2FsbGJhY2spIHtcbiAgICB2YXIgYXJnU2VsID0gYXJnU2VsZWN0b3IkMShzZWxlY3Rvcik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlID0gdGhpc1tpXTtcbiAgICAgIGVsZS5lbWl0dGVyKCkub24oZXZlbnRzLCBhcmdTZWwsIGNhbGxiYWNrLCB7XG4gICAgICAgIG9uY2U6IHRydWUsXG4gICAgICAgIG9uY2VDb2xsZWN0aW9uOiB0aGlzXG4gICAgICB9KTtcbiAgICB9XG4gIH0sXG4gIGVtaXQ6IGZ1bmN0aW9uIGVtaXQoZXZlbnRzLCBleHRyYVBhcmFtcykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVsZSA9IHRoaXNbaV07XG4gICAgICBlbGUuZW1pdHRlcigpLmVtaXQoZXZlbnRzLCBleHRyYVBhcmFtcyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICBlbWl0QW5kTm90aWZ5OiBmdW5jdGlvbiBlbWl0QW5kTm90aWZ5KGV2ZW50LCBleHRyYVBhcmFtcykge1xuICAgIC8vIGZvciBpbnRlcm5hbCB1c2Ugb25seVxuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gZW1wdHkgY29sbGVjdGlvbnMgZG9uJ3QgbmVlZCB0byBub3RpZnkgYW55dGhpbmdcblxuICAgIC8vIG5vdGlmeSByZW5kZXJlclxuICAgIHRoaXMuY3koKS5ub3RpZnkoZXZlbnQsIHRoaXMpO1xuICAgIHRoaXMuZW1pdChldmVudCwgZXh0cmFQYXJhbXMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59O1xuZGVmaW5lLmV2ZW50QWxpYXNlc09uKGVsZXNmbiQ5KTtcblxudmFyIGVsZXNmbiQ4ID0ge1xuICBub2RlczogZnVuY3Rpb24gbm9kZXMoc2VsZWN0b3IpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgcmV0dXJuIGVsZS5pc05vZGUoKTtcbiAgICB9KS5maWx0ZXIoc2VsZWN0b3IpO1xuICB9LFxuICBlZGdlczogZnVuY3Rpb24gZWRnZXMoc2VsZWN0b3IpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgcmV0dXJuIGVsZS5pc0VkZ2UoKTtcbiAgICB9KS5maWx0ZXIoc2VsZWN0b3IpO1xuICB9LFxuICAvLyBpbnRlcm5hbCBoZWxwZXIgdG8gZ2V0IG5vZGVzIGFuZCBlZGdlcyBhcyBzZXBhcmF0ZSBjb2xsZWN0aW9ucyB3aXRoIHNpbmdsZSBpdGVyYXRpb24gb3ZlciBlbGVtZW50c1xuICBieUdyb3VwOiBmdW5jdGlvbiBieUdyb3VwKCkge1xuICAgIHZhciBub2RlcyA9IHRoaXMuc3Bhd24oKTtcbiAgICB2YXIgZWRnZXMgPSB0aGlzLnNwYXduKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlID0gdGhpc1tpXTtcbiAgICAgIGlmIChlbGUuaXNOb2RlKCkpIHtcbiAgICAgICAgbm9kZXMucHVzaChlbGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWRnZXMucHVzaChlbGUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbm9kZXM6IG5vZGVzLFxuICAgICAgZWRnZXM6IGVkZ2VzXG4gICAgfTtcbiAgfSxcbiAgZmlsdGVyOiBmdW5jdGlvbiBmaWx0ZXIoX2ZpbHRlciwgdGhpc0FyZykge1xuICAgIGlmIChfZmlsdGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIGNoZWNrIHRoaXMgZmlyc3QgYi9jIGl0J3MgdGhlIG1vc3QgY29tbW9uL3BlcmZvcm1hbnQgY2FzZVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIGlmIChzdHJpbmcoX2ZpbHRlcikgfHwgZWxlbWVudE9yQ29sbGVjdGlvbihfZmlsdGVyKSkge1xuICAgICAgcmV0dXJuIG5ldyBTZWxlY3RvcihfZmlsdGVyKS5maWx0ZXIodGhpcyk7XG4gICAgfSBlbHNlIGlmIChmbiQ2KF9maWx0ZXIpKSB7XG4gICAgICB2YXIgZmlsdGVyRWxlcyA9IHRoaXMuc3Bhd24oKTtcbiAgICAgIHZhciBlbGVzID0gdGhpcztcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZWxlID0gZWxlc1tpXTtcbiAgICAgICAgdmFyIGluY2x1ZGUgPSB0aGlzQXJnID8gX2ZpbHRlci5hcHBseSh0aGlzQXJnLCBbZWxlLCBpLCBlbGVzXSkgOiBfZmlsdGVyKGVsZSwgaSwgZWxlcyk7XG4gICAgICAgIGlmIChpbmNsdWRlKSB7XG4gICAgICAgICAgZmlsdGVyRWxlcy5wdXNoKGVsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXJFbGVzO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zcGF3bigpOyAvLyBpZiBub3QgaGFuZGxlZCBieSBhYm92ZSwgZ2l2ZSAnZW0gYW4gZW1wdHkgY29sbGVjdGlvblxuICB9LFxuXG4gIG5vdDogZnVuY3Rpb24gbm90KHRvUmVtb3ZlKSB7XG4gICAgaWYgKCF0b1JlbW92ZSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzdHJpbmcodG9SZW1vdmUpKSB7XG4gICAgICAgIHRvUmVtb3ZlID0gdGhpcy5maWx0ZXIodG9SZW1vdmUpO1xuICAgICAgfVxuICAgICAgdmFyIGVsZW1lbnRzID0gdGhpcy5zcGF3bigpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlbGVtZW50ID0gdGhpc1tpXTtcbiAgICAgICAgdmFyIHJlbW92ZSA9IHRvUmVtb3ZlLmhhcyhlbGVtZW50KTtcbiAgICAgICAgaWYgKCFyZW1vdmUpIHtcbiAgICAgICAgICBlbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZWxlbWVudHM7XG4gICAgfVxuICB9LFxuICBhYnNvbHV0ZUNvbXBsZW1lbnQ6IGZ1bmN0aW9uIGFic29sdXRlQ29tcGxlbWVudCgpIHtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgcmV0dXJuIGN5Lm11dGFibGVFbGVtZW50cygpLm5vdCh0aGlzKTtcbiAgfSxcbiAgaW50ZXJzZWN0OiBmdW5jdGlvbiBpbnRlcnNlY3Qob3RoZXIpIHtcbiAgICAvLyBpZiBhIHNlbGVjdG9yIGlzIHNwZWNpZmllZCwgdGhlbiBmaWx0ZXIgYnkgaXQgaW5zdGVhZFxuICAgIGlmIChzdHJpbmcob3RoZXIpKSB7XG4gICAgICB2YXIgc2VsZWN0b3IgPSBvdGhlcjtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcihzZWxlY3Rvcik7XG4gICAgfVxuICAgIHZhciBlbGVtZW50cyA9IHRoaXMuc3Bhd24oKTtcbiAgICB2YXIgY29sMSA9IHRoaXM7XG4gICAgdmFyIGNvbDIgPSBvdGhlcjtcbiAgICB2YXIgY29sMVNtYWxsZXIgPSB0aGlzLmxlbmd0aCA8IG90aGVyLmxlbmd0aDtcbiAgICB2YXIgY29sUyA9IGNvbDFTbWFsbGVyID8gY29sMSA6IGNvbDI7XG4gICAgdmFyIGNvbEwgPSBjb2wxU21hbGxlciA/IGNvbDIgOiBjb2wxO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sUy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVsZSA9IGNvbFNbaV07XG4gICAgICBpZiAoY29sTC5oYXMoZWxlKSkge1xuICAgICAgICBlbGVtZW50cy5wdXNoKGVsZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50cztcbiAgfSxcbiAgeG9yOiBmdW5jdGlvbiB4b3Iob3RoZXIpIHtcbiAgICB2YXIgY3kgPSB0aGlzLl9wcml2YXRlLmN5O1xuICAgIGlmIChzdHJpbmcob3RoZXIpKSB7XG4gICAgICBvdGhlciA9IGN5LiQob3RoZXIpO1xuICAgIH1cbiAgICB2YXIgZWxlbWVudHMgPSB0aGlzLnNwYXduKCk7XG4gICAgdmFyIGNvbDEgPSB0aGlzO1xuICAgIHZhciBjb2wyID0gb3RoZXI7XG4gICAgdmFyIGFkZCA9IGZ1bmN0aW9uIGFkZChjb2wsIG90aGVyKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZWxlID0gY29sW2ldO1xuICAgICAgICB2YXIgaWQgPSBlbGUuX3ByaXZhdGUuZGF0YS5pZDtcbiAgICAgICAgdmFyIGluT3RoZXIgPSBvdGhlci5oYXNFbGVtZW50V2l0aElkKGlkKTtcbiAgICAgICAgaWYgKCFpbk90aGVyKSB7XG4gICAgICAgICAgZWxlbWVudHMucHVzaChlbGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBhZGQoY29sMSwgY29sMik7XG4gICAgYWRkKGNvbDIsIGNvbDEpO1xuICAgIHJldHVybiBlbGVtZW50cztcbiAgfSxcbiAgZGlmZjogZnVuY3Rpb24gZGlmZihvdGhlcikge1xuICAgIHZhciBjeSA9IHRoaXMuX3ByaXZhdGUuY3k7XG4gICAgaWYgKHN0cmluZyhvdGhlcikpIHtcbiAgICAgIG90aGVyID0gY3kuJChvdGhlcik7XG4gICAgfVxuICAgIHZhciBsZWZ0ID0gdGhpcy5zcGF3bigpO1xuICAgIHZhciByaWdodCA9IHRoaXMuc3Bhd24oKTtcbiAgICB2YXIgYm90aCA9IHRoaXMuc3Bhd24oKTtcbiAgICB2YXIgY29sMSA9IHRoaXM7XG4gICAgdmFyIGNvbDIgPSBvdGhlcjtcbiAgICB2YXIgYWRkID0gZnVuY3Rpb24gYWRkKGNvbCwgb3RoZXIsIHJldEVsZXMpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlbGUgPSBjb2xbaV07XG4gICAgICAgIHZhciBpZCA9IGVsZS5fcHJpdmF0ZS5kYXRhLmlkO1xuICAgICAgICB2YXIgaW5PdGhlciA9IG90aGVyLmhhc0VsZW1lbnRXaXRoSWQoaWQpO1xuICAgICAgICBpZiAoaW5PdGhlcikge1xuICAgICAgICAgIGJvdGgubWVyZ2UoZWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXRFbGVzLnB1c2goZWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgYWRkKGNvbDEsIGNvbDIsIGxlZnQpO1xuICAgIGFkZChjb2wyLCBjb2wxLCByaWdodCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxlZnQ6IGxlZnQsXG4gICAgICByaWdodDogcmlnaHQsXG4gICAgICBib3RoOiBib3RoXG4gICAgfTtcbiAgfSxcbiAgYWRkOiBmdW5jdGlvbiBhZGQodG9BZGQpIHtcbiAgICB2YXIgY3kgPSB0aGlzLl9wcml2YXRlLmN5O1xuICAgIGlmICghdG9BZGQpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBpZiAoc3RyaW5nKHRvQWRkKSkge1xuICAgICAgdmFyIHNlbGVjdG9yID0gdG9BZGQ7XG4gICAgICB0b0FkZCA9IGN5Lm11dGFibGVFbGVtZW50cygpLmZpbHRlcihzZWxlY3Rvcik7XG4gICAgfVxuICAgIHZhciBlbGVtZW50cyA9IHRoaXMuc3Bhd25TZWxmKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b0FkZC5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVsZSA9IHRvQWRkW2ldO1xuICAgICAgdmFyIGFkZCA9ICF0aGlzLmhhcyhlbGUpO1xuICAgICAgaWYgKGFkZCkge1xuICAgICAgICBlbGVtZW50cy5wdXNoKGVsZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50cztcbiAgfSxcbiAgLy8gaW4gcGxhY2UgbWVyZ2Ugb24gY2FsbGluZyBjb2xsZWN0aW9uXG4gIG1lcmdlOiBmdW5jdGlvbiBtZXJnZSh0b0FkZCkge1xuICAgIHZhciBfcCA9IHRoaXMuX3ByaXZhdGU7XG4gICAgdmFyIGN5ID0gX3AuY3k7XG4gICAgaWYgKCF0b0FkZCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGlmICh0b0FkZCAmJiBzdHJpbmcodG9BZGQpKSB7XG4gICAgICB2YXIgc2VsZWN0b3IgPSB0b0FkZDtcbiAgICAgIHRvQWRkID0gY3kubXV0YWJsZUVsZW1lbnRzKCkuZmlsdGVyKHNlbGVjdG9yKTtcbiAgICB9XG4gICAgdmFyIG1hcCA9IF9wLm1hcDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvQWRkLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdG9BZGRFbGUgPSB0b0FkZFtpXTtcbiAgICAgIHZhciBpZCA9IHRvQWRkRWxlLl9wcml2YXRlLmRhdGEuaWQ7XG4gICAgICB2YXIgYWRkID0gIW1hcC5oYXMoaWQpO1xuICAgICAgaWYgKGFkZCkge1xuICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmxlbmd0aCsrO1xuICAgICAgICB0aGlzW2luZGV4XSA9IHRvQWRkRWxlO1xuICAgICAgICBtYXAuc2V0KGlkLCB7XG4gICAgICAgICAgZWxlOiB0b0FkZEVsZSxcbiAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9LFxuXG4gIHVubWVyZ2VBdDogZnVuY3Rpb24gdW5tZXJnZUF0KGkpIHtcbiAgICB2YXIgZWxlID0gdGhpc1tpXTtcbiAgICB2YXIgaWQgPSBlbGUuaWQoKTtcbiAgICB2YXIgX3AgPSB0aGlzLl9wcml2YXRlO1xuICAgIHZhciBtYXAgPSBfcC5tYXA7XG5cbiAgICAvLyByZW1vdmUgZWxlXG4gICAgdGhpc1tpXSA9IHVuZGVmaW5lZDtcbiAgICBtYXBbXCJkZWxldGVcIl0oaWQpO1xuICAgIHZhciB1bm1lcmdlZExhc3RFbGUgPSBpID09PSB0aGlzLmxlbmd0aCAtIDE7XG5cbiAgICAvLyByZXBsYWNlIGVtcHR5IHNwb3Qgd2l0aCBsYXN0IGVsZSBpbiBjb2xsZWN0aW9uXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gMSAmJiAhdW5tZXJnZWRMYXN0RWxlKSB7XG4gICAgICB2YXIgbGFzdEVsZUkgPSB0aGlzLmxlbmd0aCAtIDE7XG4gICAgICB2YXIgbGFzdEVsZSA9IHRoaXNbbGFzdEVsZUldO1xuICAgICAgdmFyIGxhc3RFbGVJZCA9IGxhc3RFbGUuX3ByaXZhdGUuZGF0YS5pZDtcbiAgICAgIHRoaXNbbGFzdEVsZUldID0gdW5kZWZpbmVkO1xuICAgICAgdGhpc1tpXSA9IGxhc3RFbGU7XG4gICAgICBtYXAuc2V0KGxhc3RFbGVJZCwge1xuICAgICAgICBlbGU6IGxhc3RFbGUsXG4gICAgICAgIGluZGV4OiBpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyB0aGUgY29sbGVjdGlvbiBpcyBub3cgMSBlbGUgc21hbGxlclxuICAgIHRoaXMubGVuZ3RoLS07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIC8vIHJlbW92ZSBzaW5nbGUgZWxlIGluIHBsYWNlIGluIGNhbGxpbmcgY29sbGVjdGlvblxuICB1bm1lcmdlT25lOiBmdW5jdGlvbiB1bm1lcmdlT25lKGVsZSkge1xuICAgIGVsZSA9IGVsZVswXTtcbiAgICB2YXIgX3AgPSB0aGlzLl9wcml2YXRlO1xuICAgIHZhciBpZCA9IGVsZS5fcHJpdmF0ZS5kYXRhLmlkO1xuICAgIHZhciBtYXAgPSBfcC5tYXA7XG4gICAgdmFyIGVudHJ5ID0gbWFwLmdldChpZCk7XG4gICAgaWYgKCFlbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXM7IC8vIG5vIG5lZWQgdG8gcmVtb3ZlXG4gICAgfVxuXG4gICAgdmFyIGkgPSBlbnRyeS5pbmRleDtcbiAgICB0aGlzLnVubWVyZ2VBdChpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgLy8gcmVtb3ZlIGVsZXMgaW4gcGxhY2Ugb24gY2FsbGluZyBjb2xsZWN0aW9uXG4gIHVubWVyZ2U6IGZ1bmN0aW9uIHVubWVyZ2UodG9SZW1vdmUpIHtcbiAgICB2YXIgY3kgPSB0aGlzLl9wcml2YXRlLmN5O1xuICAgIGlmICghdG9SZW1vdmUpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBpZiAodG9SZW1vdmUgJiYgc3RyaW5nKHRvUmVtb3ZlKSkge1xuICAgICAgdmFyIHNlbGVjdG9yID0gdG9SZW1vdmU7XG4gICAgICB0b1JlbW92ZSA9IGN5Lm11dGFibGVFbGVtZW50cygpLmZpbHRlcihzZWxlY3Rvcik7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9SZW1vdmUubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMudW5tZXJnZU9uZSh0b1JlbW92ZVtpXSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9LFxuXG4gIHVubWVyZ2VCeTogZnVuY3Rpb24gdW5tZXJnZUJ5KHRvUm1Gbikge1xuICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgZWxlID0gdGhpc1tpXTtcbiAgICAgIGlmICh0b1JtRm4oZWxlKSkge1xuICAgICAgICB0aGlzLnVubWVyZ2VBdChpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIG1hcDogZnVuY3Rpb24gbWFwKG1hcEZuLCB0aGlzQXJnKSB7XG4gICAgdmFyIGFyciA9IFtdO1xuICAgIHZhciBlbGVzID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbGUgPSBlbGVzW2ldO1xuICAgICAgdmFyIHJldCA9IHRoaXNBcmcgPyBtYXBGbi5hcHBseSh0aGlzQXJnLCBbZWxlLCBpLCBlbGVzXSkgOiBtYXBGbihlbGUsIGksIGVsZXMpO1xuICAgICAgYXJyLnB1c2gocmV0KTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfSxcbiAgcmVkdWNlOiBmdW5jdGlvbiByZWR1Y2UoZm4sIGluaXRpYWxWYWx1ZSkge1xuICAgIHZhciB2YWwgPSBpbml0aWFsVmFsdWU7XG4gICAgdmFyIGVsZXMgPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFsID0gZm4odmFsLCBlbGVzW2ldLCBpLCBlbGVzKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbiAgfSxcbiAgbWF4OiBmdW5jdGlvbiBtYXgodmFsRm4sIHRoaXNBcmcpIHtcbiAgICB2YXIgbWF4ID0gLUluZmluaXR5O1xuICAgIHZhciBtYXhFbGU7XG4gICAgdmFyIGVsZXMgPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVsZSA9IGVsZXNbaV07XG4gICAgICB2YXIgdmFsID0gdGhpc0FyZyA/IHZhbEZuLmFwcGx5KHRoaXNBcmcsIFtlbGUsIGksIGVsZXNdKSA6IHZhbEZuKGVsZSwgaSwgZWxlcyk7XG4gICAgICBpZiAodmFsID4gbWF4KSB7XG4gICAgICAgIG1heCA9IHZhbDtcbiAgICAgICAgbWF4RWxlID0gZWxlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IG1heCxcbiAgICAgIGVsZTogbWF4RWxlXG4gICAgfTtcbiAgfSxcbiAgbWluOiBmdW5jdGlvbiBtaW4odmFsRm4sIHRoaXNBcmcpIHtcbiAgICB2YXIgbWluID0gSW5maW5pdHk7XG4gICAgdmFyIG1pbkVsZTtcbiAgICB2YXIgZWxlcyA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlID0gZWxlc1tpXTtcbiAgICAgIHZhciB2YWwgPSB0aGlzQXJnID8gdmFsRm4uYXBwbHkodGhpc0FyZywgW2VsZSwgaSwgZWxlc10pIDogdmFsRm4oZWxlLCBpLCBlbGVzKTtcbiAgICAgIGlmICh2YWwgPCBtaW4pIHtcbiAgICAgICAgbWluID0gdmFsO1xuICAgICAgICBtaW5FbGUgPSBlbGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogbWluLFxuICAgICAgZWxlOiBtaW5FbGVcbiAgICB9O1xuICB9XG59O1xuXG4vLyBhbGlhc2VzXG52YXIgZm4kMSA9IGVsZXNmbiQ4O1xuZm4kMVsndSddID0gZm4kMVsnfCddID0gZm4kMVsnKyddID0gZm4kMS51bmlvbiA9IGZuJDEub3IgPSBmbiQxLmFkZDtcbmZuJDFbJ1xcXFwnXSA9IGZuJDFbJyEnXSA9IGZuJDFbJy0nXSA9IGZuJDEuZGlmZmVyZW5jZSA9IGZuJDEucmVsYXRpdmVDb21wbGVtZW50ID0gZm4kMS5zdWJ0cmFjdCA9IGZuJDEubm90O1xuZm4kMVsnbiddID0gZm4kMVsnJiddID0gZm4kMVsnLiddID0gZm4kMS5hbmQgPSBmbiQxLmludGVyc2VjdGlvbiA9IGZuJDEuaW50ZXJzZWN0O1xuZm4kMVsnXiddID0gZm4kMVsnKCspJ10gPSBmbiQxWycoLSknXSA9IGZuJDEuc3ltbWV0cmljRGlmZmVyZW5jZSA9IGZuJDEuc3ltZGlmZiA9IGZuJDEueG9yO1xuZm4kMS5mbkZpbHRlciA9IGZuJDEuZmlsdGVyRm4gPSBmbiQxLnN0ZEZpbHRlciA9IGZuJDEuZmlsdGVyO1xuZm4kMS5jb21wbGVtZW50ID0gZm4kMS5hYnNjb21wID0gZm4kMS5hYnNvbHV0ZUNvbXBsZW1lbnQ7XG5cbnZhciBlbGVzZm4kNyA9IHtcbiAgaXNOb2RlOiBmdW5jdGlvbiBpc05vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAoKSA9PT0gJ25vZGVzJztcbiAgfSxcbiAgaXNFZGdlOiBmdW5jdGlvbiBpc0VkZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAoKSA9PT0gJ2VkZ2VzJztcbiAgfSxcbiAgaXNMb29wOiBmdW5jdGlvbiBpc0xvb3AoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNFZGdlKCkgJiYgdGhpcy5zb3VyY2UoKVswXSA9PT0gdGhpcy50YXJnZXQoKVswXTtcbiAgfSxcbiAgaXNTaW1wbGU6IGZ1bmN0aW9uIGlzU2ltcGxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzRWRnZSgpICYmIHRoaXMuc291cmNlKClbMF0gIT09IHRoaXMudGFyZ2V0KClbMF07XG4gIH0sXG4gIGdyb3VwOiBmdW5jdGlvbiBncm91cCgpIHtcbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICBpZiAoZWxlKSB7XG4gICAgICByZXR1cm4gZWxlLl9wcml2YXRlLmdyb3VwO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiAgRWxlbWVudHMgYXJlIGRyYXduIGluIGEgc3BlY2lmaWMgb3JkZXIgYmFzZWQgb24gY29tcG91bmQgZGVwdGggKGxvdyB0byBoaWdoKSwgdGhlIGVsZW1lbnQgdHlwZSAobm9kZXMgYWJvdmUgZWRnZXMpLFxuICogIGFuZCB6LWluZGV4IChsb3cgdG8gaGlnaCkuICBUaGVzZSBzdHlsZXMgYWZmZWN0IGhvdyB0aGlzIGFwcGxpZXM6XG4gKlxuICogIHotY29tcG91bmQtZGVwdGg6IE1heSBiZSBgYm90dG9tIHwgb3JwaGFuIHwgYXV0byB8IHRvcGAuICBUaGUgZmlyc3QgZHJhd24gaXMgYGJvdHRvbWAsIHRoZW4gYG9ycGhhbmAgd2hpY2ggaXMgdGhlXG4gKiAgICAgIHNhbWUgZGVwdGggYXMgdGhlIHJvb3Qgb2YgdGhlIGNvbXBvdW5kIGdyYXBoLCBmb2xsb3dlZCBieSB0aGUgZGVmYXVsdCB2YWx1ZSBgYXV0b2Agd2hpY2ggZHJhd3MgaW4gb3JkZXIgZnJvbVxuICogICAgICByb290IHRvIGxlYXZlcyBvZiB0aGUgY29tcG91bmQgZ3JhcGguICBUaGUgbGFzdCBkcmF3biBpcyBgdG9wYC5cbiAqICB6LWluZGV4LWNvbXBhcmU6IE1heSBiZSBgYXV0byB8IG1hbnVhbGAuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgYXV0b2Agd2hpY2ggYWx3YXlzIGRyYXdzIGVkZ2VzIHVuZGVyIG5vZGVzLlxuICogICAgICBgbWFudWFsYCBpZ25vcmVzIHRoaXMgY29udmVudGlvbiBhbmQgZHJhd3MgYmFzZWQgb24gdGhlIGB6LWluZGV4YCB2YWx1ZSBzZXR0aW5nLlxuICogIHotaW5kZXg6IEFuIGludGVnZXIgdmFsdWUgdGhhdCBhZmZlY3RzIHRoZSByZWxhdGl2ZSBkcmF3IG9yZGVyIG9mIGVsZW1lbnRzLiAgSW4gZ2VuZXJhbCwgYW4gZWxlbWVudCB3aXRoIGEgaGlnaGVyXG4gKiAgICAgIGB6LWluZGV4YCB3aWxsIGJlIGRyYXduIG9uIHRvcCBvZiBhbiBlbGVtZW50IHdpdGggYSBsb3dlciBgei1pbmRleGAuXG4gKi9cbnZhciB6SW5kZXhTb3J0ID0gZnVuY3Rpb24gekluZGV4U29ydChhLCBiKSB7XG4gIHZhciBjeSA9IGEuY3koKTtcbiAgdmFyIGhhc0NvbXBvdW5kTm9kZXMgPSBjeS5oYXNDb21wb3VuZE5vZGVzKCk7XG4gIGZ1bmN0aW9uIGdldERlcHRoKGVsZSkge1xuICAgIHZhciBzdHlsZSA9IGVsZS5wc3R5bGUoJ3otY29tcG91bmQtZGVwdGgnKTtcbiAgICBpZiAoc3R5bGUudmFsdWUgPT09ICdhdXRvJykge1xuICAgICAgcmV0dXJuIGhhc0NvbXBvdW5kTm9kZXMgPyBlbGUuekRlcHRoKCkgOiAwO1xuICAgIH0gZWxzZSBpZiAoc3R5bGUudmFsdWUgPT09ICdib3R0b20nKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfSBlbHNlIGlmIChzdHlsZS52YWx1ZSA9PT0gJ3RvcCcpIHtcbiAgICAgIHJldHVybiBNQVhfSU5UJDE7XG4gICAgfVxuICAgIC8vICdvcnBoYW4nXG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgdmFyIGRlcHRoRGlmZiA9IGdldERlcHRoKGEpIC0gZ2V0RGVwdGgoYik7XG4gIGlmIChkZXB0aERpZmYgIT09IDApIHtcbiAgICByZXR1cm4gZGVwdGhEaWZmO1xuICB9XG4gIGZ1bmN0aW9uIGdldEVsZURlcHRoKGVsZSkge1xuICAgIHZhciBzdHlsZSA9IGVsZS5wc3R5bGUoJ3otaW5kZXgtY29tcGFyZScpO1xuICAgIGlmIChzdHlsZS52YWx1ZSA9PT0gJ2F1dG8nKSB7XG4gICAgICByZXR1cm4gZWxlLmlzTm9kZSgpID8gMSA6IDA7XG4gICAgfVxuICAgIC8vICdtYW51YWwnXG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgdmFyIGVsZURpZmYgPSBnZXRFbGVEZXB0aChhKSAtIGdldEVsZURlcHRoKGIpO1xuICBpZiAoZWxlRGlmZiAhPT0gMCkge1xuICAgIHJldHVybiBlbGVEaWZmO1xuICB9XG4gIHZhciB6RGlmZiA9IGEucHN0eWxlKCd6LWluZGV4JykudmFsdWUgLSBiLnBzdHlsZSgnei1pbmRleCcpLnZhbHVlO1xuICBpZiAoekRpZmYgIT09IDApIHtcbiAgICByZXR1cm4gekRpZmY7XG4gIH1cbiAgLy8gY29tcGFyZSBpbmRpY2VzIGluIHRoZSBjb3JlIChvcmRlciBhZGRlZCB0byBncmFwaCB3LyBsYXN0IG9uIHRvcClcbiAgcmV0dXJuIGEucG9vbEluZGV4KCkgLSBiLnBvb2xJbmRleCgpO1xufTtcblxudmFyIGVsZXNmbiQ2ID0ge1xuICBmb3JFYWNoOiBmdW5jdGlvbiBmb3JFYWNoKGZuLCB0aGlzQXJnKSB7XG4gICAgaWYgKGZuJDYoZm4pKSB7XG4gICAgICB2YXIgTiA9IHRoaXMubGVuZ3RoO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBOOyBpKyspIHtcbiAgICAgICAgdmFyIGVsZSA9IHRoaXNbaV07XG4gICAgICAgIHZhciByZXQgPSB0aGlzQXJnID8gZm4uYXBwbHkodGhpc0FyZywgW2VsZSwgaSwgdGhpc10pIDogZm4oZWxlLCBpLCB0aGlzKTtcbiAgICAgICAgaWYgKHJldCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSAvLyBleGl0IGVhY2ggZWFybHkgb24gcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIHRvQXJyYXk6IGZ1bmN0aW9uIHRvQXJyYXkoKSB7XG4gICAgdmFyIGFycmF5ID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhcnJheS5wdXNoKHRoaXNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gYXJyYXk7XG4gIH0sXG4gIHNsaWNlOiBmdW5jdGlvbiBzbGljZShzdGFydCwgZW5kKSB7XG4gICAgdmFyIGFycmF5ID0gW107XG4gICAgdmFyIHRoaXNTaXplID0gdGhpcy5sZW5ndGg7XG4gICAgaWYgKGVuZCA9PSBudWxsKSB7XG4gICAgICBlbmQgPSB0aGlzU2l6ZTtcbiAgICB9XG4gICAgaWYgKHN0YXJ0ID09IG51bGwpIHtcbiAgICAgIHN0YXJ0ID0gMDtcbiAgICB9XG4gICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgc3RhcnQgPSB0aGlzU2l6ZSArIHN0YXJ0O1xuICAgIH1cbiAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgZW5kID0gdGhpc1NpemUgKyBlbmQ7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSBzdGFydDsgaSA+PSAwICYmIGkgPCBlbmQgJiYgaSA8IHRoaXNTaXplOyBpKyspIHtcbiAgICAgIGFycmF5LnB1c2godGhpc1tpXSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNwYXduKGFycmF5KTtcbiAgfSxcbiAgc2l6ZTogZnVuY3Rpb24gc2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGg7XG4gIH0sXG4gIGVxOiBmdW5jdGlvbiBlcShpKSB7XG4gICAgcmV0dXJuIHRoaXNbaV0gfHwgdGhpcy5zcGF3bigpO1xuICB9LFxuICBmaXJzdDogZnVuY3Rpb24gZmlyc3QoKSB7XG4gICAgcmV0dXJuIHRoaXNbMF0gfHwgdGhpcy5zcGF3bigpO1xuICB9LFxuICBsYXN0OiBmdW5jdGlvbiBsYXN0KCkge1xuICAgIHJldHVybiB0aGlzW3RoaXMubGVuZ3RoIC0gMV0gfHwgdGhpcy5zcGF3bigpO1xuICB9LFxuICBlbXB0eTogZnVuY3Rpb24gZW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMubGVuZ3RoID09PSAwO1xuICB9LFxuICBub25lbXB0eTogZnVuY3Rpb24gbm9uZW1wdHkoKSB7XG4gICAgcmV0dXJuICF0aGlzLmVtcHR5KCk7XG4gIH0sXG4gIHNvcnQ6IGZ1bmN0aW9uIHNvcnQoc29ydEZuKSB7XG4gICAgaWYgKCFmbiQ2KHNvcnRGbikpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB2YXIgc29ydGVkID0gdGhpcy50b0FycmF5KCkuc29ydChzb3J0Rm4pO1xuICAgIHJldHVybiB0aGlzLnNwYXduKHNvcnRlZCk7XG4gIH0sXG4gIHNvcnRCeVpJbmRleDogZnVuY3Rpb24gc29ydEJ5WkluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLnNvcnQoekluZGV4U29ydCk7XG4gIH0sXG4gIHpEZXB0aDogZnVuY3Rpb24gekRlcHRoKCkge1xuICAgIHZhciBlbGUgPSB0aGlzWzBdO1xuICAgIGlmICghZWxlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIGxldCBjeSA9IGVsZS5jeSgpO1xuICAgIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgICB2YXIgZ3JvdXAgPSBfcC5ncm91cDtcbiAgICBpZiAoZ3JvdXAgPT09ICdub2RlcycpIHtcbiAgICAgIHZhciBkZXB0aCA9IF9wLmRhdGEucGFyZW50ID8gZWxlLnBhcmVudHMoKS5zaXplKCkgOiAwO1xuICAgICAgaWYgKCFlbGUuaXNQYXJlbnQoKSkge1xuICAgICAgICByZXR1cm4gTUFYX0lOVCQxIC0gMTsgLy8gY2hpbGRsZXNzIG5vZGVzIGFsd2F5cyBvbiB0b3BcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlcHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgc3JjID0gX3Auc291cmNlO1xuICAgICAgdmFyIHRndCA9IF9wLnRhcmdldDtcbiAgICAgIHZhciBzcmNEZXB0aCA9IHNyYy56RGVwdGgoKTtcbiAgICAgIHZhciB0Z3REZXB0aCA9IHRndC56RGVwdGgoKTtcbiAgICAgIHJldHVybiBNYXRoLm1heChzcmNEZXB0aCwgdGd0RGVwdGgsIDApOyAvLyBkZXB0aCBvZiBkZWVwZXN0IHBhcmVudFxuICAgIH1cbiAgfVxufTtcblxuZWxlc2ZuJDYuZWFjaCA9IGVsZXNmbiQ2LmZvckVhY2g7XG52YXIgZGVmaW5lU3ltYm9sSXRlcmF0b3IgPSBmdW5jdGlvbiBkZWZpbmVTeW1ib2xJdGVyYXRvcigpIHtcbiAgdmFyIHR5cGVvZlVuZGVmID0gXCJ1bmRlZmluZWRcIiA7XG4gIHZhciBpc0l0ZXJhdG9yU3VwcG9ydGVkID0gKHR5cGVvZiBTeW1ib2wgPT09IFwidW5kZWZpbmVkXCIgPyBcInVuZGVmaW5lZFwiIDogX3R5cGVvZihTeW1ib2wpKSAhPSB0eXBlb2ZVbmRlZiAmJiBfdHlwZW9mKFN5bWJvbC5pdGVyYXRvcikgIT0gdHlwZW9mVW5kZWY7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblxuICBpZiAoaXNJdGVyYXRvclN1cHBvcnRlZCkge1xuICAgIGVsZXNmbiQ2W1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuICAgICAgdmFyIGVudHJ5ID0ge1xuICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICBkb25lOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHZhciBpID0gMDtcbiAgICAgIHZhciBsZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgICAgIHJldHVybiBfZGVmaW5lUHJvcGVydHkkMSh7XG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICAgICAgaWYgKGkgPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGVudHJ5LnZhbHVlID0gX3RoaXNbaSsrXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnkudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBlbnRyeS5kb25lID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGVudHJ5O1xuICAgICAgICB9XG4gICAgICB9LCBTeW1ib2wuaXRlcmF0b3IsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cbn07XG5kZWZpbmVTeW1ib2xJdGVyYXRvcigpO1xuXG52YXIgZ2V0TGF5b3V0RGltZW5zaW9uT3B0aW9ucyA9IGRlZmF1bHRzJGcoe1xuICBub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHM6IGZhbHNlXG59KTtcbnZhciBlbGVzZm4kNSA9IHtcbiAgLy8gQ2FsY3VsYXRlcyBhbmQgcmV0dXJucyBub2RlIGRpbWVuc2lvbnMgeyB4LCB5IH0gYmFzZWQgb24gb3B0aW9ucyBnaXZlblxuICBsYXlvdXREaW1lbnNpb25zOiBmdW5jdGlvbiBsYXlvdXREaW1lbnNpb25zKG9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gZ2V0TGF5b3V0RGltZW5zaW9uT3B0aW9ucyhvcHRpb25zKTtcbiAgICB2YXIgZGltcztcbiAgICBpZiAoIXRoaXMudGFrZXNVcFNwYWNlKCkpIHtcbiAgICAgIGRpbXMgPSB7XG4gICAgICAgIHc6IDAsXG4gICAgICAgIGg6IDBcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLm5vZGVEaW1lbnNpb25zSW5jbHVkZUxhYmVscykge1xuICAgICAgdmFyIGJiRGltID0gdGhpcy5ib3VuZGluZ0JveCgpO1xuICAgICAgZGltcyA9IHtcbiAgICAgICAgdzogYmJEaW0udyxcbiAgICAgICAgaDogYmJEaW0uaFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGltcyA9IHtcbiAgICAgICAgdzogdGhpcy5vdXRlcldpZHRoKCksXG4gICAgICAgIGg6IHRoaXMub3V0ZXJIZWlnaHQoKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBzYW5pdGlzZSB0aGUgZGltZW5zaW9ucyBmb3IgZXh0ZXJuYWwgbGF5b3V0cyAoYXZvaWQgZGl2aXNpb24gYnkgemVybylcbiAgICBpZiAoZGltcy53ID09PSAwIHx8IGRpbXMuaCA9PT0gMCkge1xuICAgICAgZGltcy53ID0gZGltcy5oID0gMTtcbiAgICB9XG4gICAgcmV0dXJuIGRpbXM7XG4gIH0sXG4gIC8vIHVzaW5nIHN0YW5kYXJkIGxheW91dCBvcHRpb25zLCBhcHBseSBwb3NpdGlvbiBmdW5jdGlvbiAody8gb3Igdy9vIGFuaW1hdGlvbilcbiAgbGF5b3V0UG9zaXRpb25zOiBmdW5jdGlvbiBsYXlvdXRQb3NpdGlvbnMobGF5b3V0LCBvcHRpb25zLCBmbikge1xuICAgIHZhciBub2RlcyA9IHRoaXMubm9kZXMoKS5maWx0ZXIoZnVuY3Rpb24gKG4pIHtcbiAgICAgIHJldHVybiAhbi5pc1BhcmVudCgpO1xuICAgIH0pO1xuICAgIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgICB2YXIgbGF5b3V0RWxlcyA9IG9wdGlvbnMuZWxlczsgLy8gbm9kZXMgJiBlZGdlc1xuICAgIHZhciBnZXRNZW1vaXplS2V5ID0gZnVuY3Rpb24gZ2V0TWVtb2l6ZUtleShub2RlKSB7XG4gICAgICByZXR1cm4gbm9kZS5pZCgpO1xuICAgIH07XG4gICAgdmFyIGZuTWVtID0gbWVtb2l6ZSQxKGZuLCBnZXRNZW1vaXplS2V5KTsgLy8gbWVtb2l6ZWQgdmVyc2lvbiBvZiBwb3NpdGlvbiBmdW5jdGlvblxuXG4gICAgbGF5b3V0LmVtaXQoe1xuICAgICAgdHlwZTogJ2xheW91dHN0YXJ0JyxcbiAgICAgIGxheW91dDogbGF5b3V0XG4gICAgfSk7XG4gICAgbGF5b3V0LmFuaW1hdGlvbnMgPSBbXTtcbiAgICB2YXIgY2FsY3VsYXRlU3BhY2luZyA9IGZ1bmN0aW9uIGNhbGN1bGF0ZVNwYWNpbmcoc3BhY2luZywgbm9kZXNCYiwgcG9zKSB7XG4gICAgICB2YXIgY2VudGVyID0ge1xuICAgICAgICB4OiBub2Rlc0JiLngxICsgbm9kZXNCYi53IC8gMixcbiAgICAgICAgeTogbm9kZXNCYi55MSArIG5vZGVzQmIuaCAvIDJcbiAgICAgIH07XG4gICAgICB2YXIgc3BhY2luZ1ZlY3RvciA9IHtcbiAgICAgICAgLy8gc2NhbGUgZnJvbSBjZW50ZXIgb2YgYm91bmRpbmcgYm94IChub3QgbmVjZXNzYXJpbHkgMCwwKVxuICAgICAgICB4OiAocG9zLnggLSBjZW50ZXIueCkgKiBzcGFjaW5nLFxuICAgICAgICB5OiAocG9zLnkgLSBjZW50ZXIueSkgKiBzcGFjaW5nXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDogY2VudGVyLnggKyBzcGFjaW5nVmVjdG9yLngsXG4gICAgICAgIHk6IGNlbnRlci55ICsgc3BhY2luZ1ZlY3Rvci55XG4gICAgICB9O1xuICAgIH07XG4gICAgdmFyIHVzZVNwYWNpbmdGYWN0b3IgPSBvcHRpb25zLnNwYWNpbmdGYWN0b3IgJiYgb3B0aW9ucy5zcGFjaW5nRmFjdG9yICE9PSAxO1xuICAgIHZhciBzcGFjaW5nQmIgPSBmdW5jdGlvbiBzcGFjaW5nQmIoKSB7XG4gICAgICBpZiAoIXVzZVNwYWNpbmdGYWN0b3IpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgYmIgPSBtYWtlQm91bmRpbmdCb3goKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgICAgdmFyIHBvcyA9IGZuTWVtKG5vZGUsIGkpO1xuICAgICAgICBleHBhbmRCb3VuZGluZ0JveEJ5UG9pbnQoYmIsIHBvcy54LCBwb3MueSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmI7XG4gICAgfTtcbiAgICB2YXIgYmIgPSBzcGFjaW5nQmIoKTtcbiAgICB2YXIgZ2V0RmluYWxQb3MgPSBtZW1vaXplJDEoZnVuY3Rpb24gKG5vZGUsIGkpIHtcbiAgICAgIHZhciBuZXdQb3MgPSBmbk1lbShub2RlLCBpKTtcbiAgICAgIGlmICh1c2VTcGFjaW5nRmFjdG9yKSB7XG4gICAgICAgIHZhciBzcGFjaW5nID0gTWF0aC5hYnMob3B0aW9ucy5zcGFjaW5nRmFjdG9yKTtcbiAgICAgICAgbmV3UG9zID0gY2FsY3VsYXRlU3BhY2luZyhzcGFjaW5nLCBiYiwgbmV3UG9zKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnRyYW5zZm9ybSAhPSBudWxsKSB7XG4gICAgICAgIG5ld1BvcyA9IG9wdGlvbnMudHJhbnNmb3JtKG5vZGUsIG5ld1Bvcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3UG9zO1xuICAgIH0sIGdldE1lbW9pemVLZXkpO1xuICAgIGlmIChvcHRpb25zLmFuaW1hdGUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgICAgdmFyIG5ld1BvcyA9IGdldEZpbmFsUG9zKG5vZGUsIGkpO1xuICAgICAgICB2YXIgYW5pbWF0ZU5vZGUgPSBvcHRpb25zLmFuaW1hdGVGaWx0ZXIgPT0gbnVsbCB8fCBvcHRpb25zLmFuaW1hdGVGaWx0ZXIobm9kZSwgaSk7XG4gICAgICAgIGlmIChhbmltYXRlTm9kZSkge1xuICAgICAgICAgIHZhciBhbmkgPSBub2RlLmFuaW1hdGlvbih7XG4gICAgICAgICAgICBwb3NpdGlvbjogbmV3UG9zLFxuICAgICAgICAgICAgZHVyYXRpb246IG9wdGlvbnMuYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgICAgICBlYXNpbmc6IG9wdGlvbnMuYW5pbWF0aW9uRWFzaW5nXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbGF5b3V0LmFuaW1hdGlvbnMucHVzaChhbmkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGUucG9zaXRpb24obmV3UG9zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMuZml0KSB7XG4gICAgICAgIHZhciBmaXRBbmkgPSBjeS5hbmltYXRpb24oe1xuICAgICAgICAgIGZpdDoge1xuICAgICAgICAgICAgYm91bmRpbmdCb3g6IGxheW91dEVsZXMuYm91bmRpbmdCb3hBdChnZXRGaW5hbFBvcyksXG4gICAgICAgICAgICBwYWRkaW5nOiBvcHRpb25zLnBhZGRpbmdcbiAgICAgICAgICB9LFxuICAgICAgICAgIGR1cmF0aW9uOiBvcHRpb25zLmFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICAgIGVhc2luZzogb3B0aW9ucy5hbmltYXRpb25FYXNpbmdcbiAgICAgICAgfSk7XG4gICAgICAgIGxheW91dC5hbmltYXRpb25zLnB1c2goZml0QW5pKTtcbiAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy56b29tICE9PSB1bmRlZmluZWQgJiYgb3B0aW9ucy5wYW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB2YXIgem9vbVBhbkFuaSA9IGN5LmFuaW1hdGlvbih7XG4gICAgICAgICAgem9vbTogb3B0aW9ucy56b29tLFxuICAgICAgICAgIHBhbjogb3B0aW9ucy5wYW4sXG4gICAgICAgICAgZHVyYXRpb246IG9wdGlvbnMuYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgICAgZWFzaW5nOiBvcHRpb25zLmFuaW1hdGlvbkVhc2luZ1xuICAgICAgICB9KTtcbiAgICAgICAgbGF5b3V0LmFuaW1hdGlvbnMucHVzaCh6b29tUGFuQW5pKTtcbiAgICAgIH1cbiAgICAgIGxheW91dC5hbmltYXRpb25zLmZvckVhY2goZnVuY3Rpb24gKGFuaSkge1xuICAgICAgICByZXR1cm4gYW5pLnBsYXkoKTtcbiAgICAgIH0pO1xuICAgICAgbGF5b3V0Lm9uZSgnbGF5b3V0cmVhZHknLCBvcHRpb25zLnJlYWR5KTtcbiAgICAgIGxheW91dC5lbWl0KHtcbiAgICAgICAgdHlwZTogJ2xheW91dHJlYWR5JyxcbiAgICAgICAgbGF5b3V0OiBsYXlvdXRcbiAgICAgIH0pO1xuICAgICAgUHJvbWlzZSQxLmFsbChsYXlvdXQuYW5pbWF0aW9ucy5tYXAoZnVuY3Rpb24gKGFuaSkge1xuICAgICAgICByZXR1cm4gYW5pLnByb21pc2UoKTtcbiAgICAgIH0pKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGF5b3V0Lm9uZSgnbGF5b3V0c3RvcCcsIG9wdGlvbnMuc3RvcCk7XG4gICAgICAgIGxheW91dC5lbWl0KHtcbiAgICAgICAgICB0eXBlOiAnbGF5b3V0c3RvcCcsXG4gICAgICAgICAgbGF5b3V0OiBsYXlvdXRcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZXMucG9zaXRpb25zKGdldEZpbmFsUG9zKTtcbiAgICAgIGlmIChvcHRpb25zLmZpdCkge1xuICAgICAgICBjeS5maXQob3B0aW9ucy5lbGVzLCBvcHRpb25zLnBhZGRpbmcpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMuem9vbSAhPSBudWxsKSB7XG4gICAgICAgIGN5Lnpvb20ob3B0aW9ucy56b29tKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnBhbikge1xuICAgICAgICBjeS5wYW4ob3B0aW9ucy5wYW4pO1xuICAgICAgfVxuICAgICAgbGF5b3V0Lm9uZSgnbGF5b3V0cmVhZHknLCBvcHRpb25zLnJlYWR5KTtcbiAgICAgIGxheW91dC5lbWl0KHtcbiAgICAgICAgdHlwZTogJ2xheW91dHJlYWR5JyxcbiAgICAgICAgbGF5b3V0OiBsYXlvdXRcbiAgICAgIH0pO1xuICAgICAgbGF5b3V0Lm9uZSgnbGF5b3V0c3RvcCcsIG9wdGlvbnMuc3RvcCk7XG4gICAgICBsYXlvdXQuZW1pdCh7XG4gICAgICAgIHR5cGU6ICdsYXlvdXRzdG9wJyxcbiAgICAgICAgbGF5b3V0OiBsYXlvdXRcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgfSxcblxuICBsYXlvdXQ6IGZ1bmN0aW9uIGxheW91dChvcHRpb25zKSB7XG4gICAgdmFyIGN5ID0gdGhpcy5jeSgpO1xuICAgIHJldHVybiBjeS5tYWtlTGF5b3V0KGV4dGVuZCh7fSwgb3B0aW9ucywge1xuICAgICAgZWxlczogdGhpc1xuICAgIH0pKTtcbiAgfVxufTtcblxuLy8gYWxpYXNlczpcbmVsZXNmbiQ1LmNyZWF0ZUxheW91dCA9IGVsZXNmbiQ1Lm1ha2VMYXlvdXQgPSBlbGVzZm4kNS5sYXlvdXQ7XG5cbmZ1bmN0aW9uIHN0eWxlQ2FjaGUoa2V5LCBmbiwgZWxlKSB7XG4gIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgdmFyIGNhY2hlID0gX3Auc3R5bGVDYWNoZSA9IF9wLnN0eWxlQ2FjaGUgfHwgW107XG4gIHZhciB2YWw7XG4gIGlmICgodmFsID0gY2FjaGVba2V5XSkgIT0gbnVsbCkge1xuICAgIHJldHVybiB2YWw7XG4gIH0gZWxzZSB7XG4gICAgdmFsID0gY2FjaGVba2V5XSA9IGZuKGVsZSk7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxufVxuZnVuY3Rpb24gY2FjaGVTdHlsZUZ1bmN0aW9uKGtleSwgZm4pIHtcbiAga2V5ID0gaGFzaFN0cmluZyhrZXkpO1xuICByZXR1cm4gZnVuY3Rpb24gY2FjaGVkU3R5bGVGdW5jdGlvbihlbGUpIHtcbiAgICByZXR1cm4gc3R5bGVDYWNoZShrZXksIGZuLCBlbGUpO1xuICB9O1xufVxuZnVuY3Rpb24gY2FjaGVQcm90b3R5cGVTdHlsZUZ1bmN0aW9uKGtleSwgZm4pIHtcbiAga2V5ID0gaGFzaFN0cmluZyhrZXkpO1xuICB2YXIgc2VsZkZuID0gZnVuY3Rpb24gc2VsZkZuKGVsZSkge1xuICAgIHJldHVybiBmbi5jYWxsKGVsZSk7XG4gIH07XG4gIHJldHVybiBmdW5jdGlvbiBjYWNoZWRQcm90b3R5cGVTdHlsZUZ1bmN0aW9uKCkge1xuICAgIHZhciBlbGUgPSB0aGlzWzBdO1xuICAgIGlmIChlbGUpIHtcbiAgICAgIHJldHVybiBzdHlsZUNhY2hlKGtleSwgc2VsZkZuLCBlbGUpO1xuICAgIH1cbiAgfTtcbn1cbnZhciBlbGVzZm4kNCA9IHtcbiAgcmVjYWxjdWxhdGVSZW5kZXJlZFN0eWxlOiBmdW5jdGlvbiByZWNhbGN1bGF0ZVJlbmRlcmVkU3R5bGUodXNlQ2FjaGUpIHtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgdmFyIHJlbmRlcmVyID0gY3kucmVuZGVyZXIoKTtcbiAgICB2YXIgc3R5bGVFbmFibGVkID0gY3kuc3R5bGVFbmFibGVkKCk7XG4gICAgaWYgKHJlbmRlcmVyICYmIHN0eWxlRW5hYmxlZCkge1xuICAgICAgcmVuZGVyZXIucmVjYWxjdWxhdGVSZW5kZXJlZFN0eWxlKHRoaXMsIHVzZUNhY2hlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIGRpcnR5U3R5bGVDYWNoZTogZnVuY3Rpb24gZGlydHlTdHlsZUNhY2hlKCkge1xuICAgIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgICB2YXIgZGlydHkgPSBmdW5jdGlvbiBkaXJ0eShlbGUpIHtcbiAgICAgIHJldHVybiBlbGUuX3ByaXZhdGUuc3R5bGVDYWNoZSA9IG51bGw7XG4gICAgfTtcbiAgICBpZiAoY3kuaGFzQ29tcG91bmROb2RlcygpKSB7XG4gICAgICB2YXIgZWxlcztcbiAgICAgIGVsZXMgPSB0aGlzLnNwYXduU2VsZigpLm1lcmdlKHRoaXMuZGVzY2VuZGFudHMoKSkubWVyZ2UodGhpcy5wYXJlbnRzKCkpO1xuICAgICAgZWxlcy5tZXJnZShlbGVzLmNvbm5lY3RlZEVkZ2VzKCkpO1xuICAgICAgZWxlcy5mb3JFYWNoKGRpcnR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgICAgZGlydHkoZWxlKTtcbiAgICAgICAgZWxlLmNvbm5lY3RlZEVkZ2VzKCkuZm9yRWFjaChkaXJ0eSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIC8vIGZ1bGx5IHVwZGF0ZXMgKHJlY2FsY3VsYXRlcykgdGhlIHN0eWxlIGZvciB0aGUgZWxlbWVudHNcbiAgdXBkYXRlU3R5bGU6IGZ1bmN0aW9uIHVwZGF0ZVN0eWxlKG5vdGlmeVJlbmRlcmVyKSB7XG4gICAgdmFyIGN5ID0gdGhpcy5fcHJpdmF0ZS5jeTtcbiAgICBpZiAoIWN5LnN0eWxlRW5hYmxlZCgpKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgaWYgKGN5LmJhdGNoaW5nKCkpIHtcbiAgICAgIHZhciBiRWxlcyA9IGN5Ll9wcml2YXRlLmJhdGNoU3R5bGVFbGVzO1xuICAgICAgYkVsZXMubWVyZ2UodGhpcyk7XG4gICAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmcgYW5kIGV4aXQgZWFybHkgd2hlbiBiYXRjaGluZ1xuICAgIH1cblxuICAgIHZhciBoYXNDb21wb3VuZHMgPSBjeS5oYXNDb21wb3VuZE5vZGVzKCk7XG4gICAgdmFyIHVwZGF0ZWRFbGVzID0gdGhpcztcbiAgICBub3RpZnlSZW5kZXJlciA9IG5vdGlmeVJlbmRlcmVyIHx8IG5vdGlmeVJlbmRlcmVyID09PSB1bmRlZmluZWQgPyB0cnVlIDogZmFsc2U7XG4gICAgaWYgKGhhc0NvbXBvdW5kcykge1xuICAgICAgLy8gdGhlbiBhZGQgZXZlcnl0aGluZyB1cCBhbmQgZG93biBmb3IgY29tcG91bmQgc2VsZWN0b3IgY2hlY2tzXG4gICAgICB1cGRhdGVkRWxlcyA9IHRoaXMuc3Bhd25TZWxmKCkubWVyZ2UodGhpcy5kZXNjZW5kYW50cygpKS5tZXJnZSh0aGlzLnBhcmVudHMoKSk7XG4gICAgfVxuXG4gICAgLy8gbGV0IGNoYW5nZWRFbGVzID0gc3R5bGUuYXBwbHkoIHVwZGF0ZWRFbGVzICk7XG4gICAgdmFyIGNoYW5nZWRFbGVzID0gdXBkYXRlZEVsZXM7XG4gICAgaWYgKG5vdGlmeVJlbmRlcmVyKSB7XG4gICAgICBjaGFuZ2VkRWxlcy5lbWl0QW5kTm90aWZ5KCdzdHlsZScpOyAvLyBsZXQgcmVuZGVyZXIga25vdyB3ZSBjaGFuZ2VkIHN0eWxlXG4gICAgfSBlbHNlIHtcbiAgICAgIGNoYW5nZWRFbGVzLmVtaXQoJ3N0eWxlJyk7IC8vIGp1c3QgZmlyZSB0aGUgZXZlbnRcbiAgICB9XG5cbiAgICB1cGRhdGVkRWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgIHJldHVybiBlbGUuX3ByaXZhdGUuc3R5bGVEaXJ0eSA9IHRydWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG4gIH0sXG5cbiAgLy8gcHJpdmF0ZTogY2xlYXJzIGRpcnR5IGZsYWcgYW5kIHJlY2FsY3VsYXRlcyBzdHlsZVxuICBjbGVhblN0eWxlOiBmdW5jdGlvbiBjbGVhblN0eWxlKCkge1xuICAgIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgICBpZiAoIWN5LnN0eWxlRW5hYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVsZSA9IHRoaXNbaV07XG4gICAgICBpZiAoZWxlLl9wcml2YXRlLnN0eWxlRGlydHkpIHtcbiAgICAgICAgLy8gbi5iLiB0aGlzIGZsYWcgc2hvdWxkIGJlIHNldCBiZWZvcmUgYXBwbHkoKSB0byBhdm9pZCBwb3RlbnRpYWwgaW5maW5pdGUgcmVjdXJzaW9uXG4gICAgICAgIGVsZS5fcHJpdmF0ZS5zdHlsZURpcnR5ID0gZmFsc2U7XG4gICAgICAgIGN5LnN0eWxlKCkuYXBwbHkoZWxlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIC8vIGdldCB0aGUgaW50ZXJuYWwgcGFyc2VkIHN0eWxlIG9iamVjdCBmb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eVxuICBwYXJzZWRTdHlsZTogZnVuY3Rpb24gcGFyc2VkU3R5bGUocHJvcGVydHkpIHtcbiAgICB2YXIgaW5jbHVkZU5vbkRlZmF1bHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHRydWU7XG4gICAgdmFyIGVsZSA9IHRoaXNbMF07XG4gICAgdmFyIGN5ID0gZWxlLmN5KCk7XG4gICAgaWYgKCFjeS5zdHlsZUVuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZWxlKSB7XG4gICAgICB0aGlzLmNsZWFuU3R5bGUoKTtcbiAgICAgIHZhciBvdmVycmlkZGVuU3R5bGUgPSBlbGUuX3ByaXZhdGUuc3R5bGVbcHJvcGVydHldO1xuICAgICAgaWYgKG92ZXJyaWRkZW5TdHlsZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZGVuU3R5bGU7XG4gICAgICB9IGVsc2UgaWYgKGluY2x1ZGVOb25EZWZhdWx0KSB7XG4gICAgICAgIHJldHVybiBjeS5zdHlsZSgpLmdldERlZmF1bHRQcm9wZXJ0eShwcm9wZXJ0eSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIG51bWVyaWNTdHlsZTogZnVuY3Rpb24gbnVtZXJpY1N0eWxlKHByb3BlcnR5KSB7XG4gICAgdmFyIGVsZSA9IHRoaXNbMF07XG4gICAgaWYgKCFlbGUuY3koKS5zdHlsZUVuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZWxlKSB7XG4gICAgICB2YXIgcHN0eWxlID0gZWxlLnBzdHlsZShwcm9wZXJ0eSk7XG4gICAgICByZXR1cm4gcHN0eWxlLnBmVmFsdWUgIT09IHVuZGVmaW5lZCA/IHBzdHlsZS5wZlZhbHVlIDogcHN0eWxlLnZhbHVlO1xuICAgIH1cbiAgfSxcbiAgbnVtZXJpY1N0eWxlVW5pdHM6IGZ1bmN0aW9uIG51bWVyaWNTdHlsZVVuaXRzKHByb3BlcnR5KSB7XG4gICAgdmFyIGVsZSA9IHRoaXNbMF07XG4gICAgaWYgKCFlbGUuY3koKS5zdHlsZUVuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZWxlKSB7XG4gICAgICByZXR1cm4gZWxlLnBzdHlsZShwcm9wZXJ0eSkudW5pdHM7XG4gICAgfVxuICB9LFxuICAvLyBnZXQgdGhlIHNwZWNpZmllZCBjc3MgcHJvcGVydHkgYXMgYSByZW5kZXJlZCB2YWx1ZSAoaS5lLiBvbi1zY3JlZW4gdmFsdWUpXG4gIC8vIG9yIGdldCB0aGUgd2hvbGUgcmVuZGVyZWQgc3R5bGUgaWYgbm8gcHJvcGVydHkgc3BlY2lmaWVkIChOQiBkb2Vzbid0IGFsbG93IHNldHRpbmcpXG4gIHJlbmRlcmVkU3R5bGU6IGZ1bmN0aW9uIHJlbmRlcmVkU3R5bGUocHJvcGVydHkpIHtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgaWYgKCFjeS5zdHlsZUVuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHZhciBlbGUgPSB0aGlzWzBdO1xuICAgIGlmIChlbGUpIHtcbiAgICAgIHJldHVybiBjeS5zdHlsZSgpLmdldFJlbmRlcmVkU3R5bGUoZWxlLCBwcm9wZXJ0eSk7XG4gICAgfVxuICB9LFxuICAvLyByZWFkIHRoZSBjYWxjdWxhdGVkIGNzcyBzdHlsZSBvZiB0aGUgZWxlbWVudCBvciBvdmVycmlkZSB0aGUgc3R5bGUgKHZpYSBhIGJ5cGFzcylcbiAgc3R5bGU6IGZ1bmN0aW9uIHN0eWxlKG5hbWUsIHZhbHVlKSB7XG4gICAgdmFyIGN5ID0gdGhpcy5jeSgpO1xuICAgIGlmICghY3kuc3R5bGVFbmFibGVkKCkpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB2YXIgdXBkYXRlVHJhbnNpdGlvbnMgPSBmYWxzZTtcbiAgICB2YXIgc3R5bGUgPSBjeS5zdHlsZSgpO1xuICAgIGlmIChwbGFpbk9iamVjdChuYW1lKSkge1xuICAgICAgLy8gdGhlbiBleHRlbmQgdGhlIGJ5cGFzc1xuICAgICAgdmFyIHByb3BzID0gbmFtZTtcbiAgICAgIHN0eWxlLmFwcGx5QnlwYXNzKHRoaXMsIHByb3BzLCB1cGRhdGVUcmFuc2l0aW9ucyk7XG4gICAgICB0aGlzLmVtaXRBbmROb3RpZnkoJ3N0eWxlJyk7IC8vIGxldCB0aGUgcmVuZGVyZXIga25vdyB3ZSd2ZSB1cGRhdGVkIHN0eWxlXG4gICAgfSBlbHNlIGlmIChzdHJpbmcobmFtZSkpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIHRoZW4gZ2V0IHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBzdHlsZVxuICAgICAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICAgICAgaWYgKGVsZSkge1xuICAgICAgICAgIHJldHVybiBzdHlsZS5nZXRTdHlsZVByb3BlcnR5VmFsdWUoZWxlLCBuYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBlbXB0eSBjb2xsZWN0aW9uID0+IGNhbid0IGdldCBhbnkgdmFsdWVcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHRoZW4gc2V0IHRoZSBieXBhc3Mgd2l0aCB0aGUgcHJvcGVydHkgdmFsdWVcbiAgICAgICAgc3R5bGUuYXBwbHlCeXBhc3ModGhpcywgbmFtZSwgdmFsdWUsIHVwZGF0ZVRyYW5zaXRpb25zKTtcbiAgICAgICAgdGhpcy5lbWl0QW5kTm90aWZ5KCdzdHlsZScpOyAvLyBsZXQgdGhlIHJlbmRlcmVyIGtub3cgd2UndmUgdXBkYXRlZCBzdHlsZVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgX2VsZSA9IHRoaXNbMF07XG4gICAgICBpZiAoX2VsZSkge1xuICAgICAgICByZXR1cm4gc3R5bGUuZ2V0UmF3U3R5bGUoX2VsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlbXB0eSBjb2xsZWN0aW9uID0+IGNhbid0IGdldCBhbnkgdmFsdWVcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgfSxcblxuICByZW1vdmVTdHlsZTogZnVuY3Rpb24gcmVtb3ZlU3R5bGUobmFtZXMpIHtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgaWYgKCFjeS5zdHlsZUVuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHZhciB1cGRhdGVUcmFuc2l0aW9ucyA9IGZhbHNlO1xuICAgIHZhciBzdHlsZSA9IGN5LnN0eWxlKCk7XG4gICAgdmFyIGVsZXMgPSB0aGlzO1xuICAgIGlmIChuYW1lcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGVsZSA9IGVsZXNbaV07XG4gICAgICAgIHN0eWxlLnJlbW92ZUFsbEJ5cGFzc2VzKGVsZSwgdXBkYXRlVHJhbnNpdGlvbnMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuYW1lcyA9IG5hbWVzLnNwbGl0KC9cXHMrLyk7XG4gICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgZWxlcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgdmFyIF9lbGUyID0gZWxlc1tfaV07XG4gICAgICAgIHN0eWxlLnJlbW92ZUJ5cGFzc2VzKF9lbGUyLCBuYW1lcywgdXBkYXRlVHJhbnNpdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmVtaXRBbmROb3RpZnkoJ3N0eWxlJyk7IC8vIGxldCB0aGUgcmVuZGVyZXIga25vdyB3ZSd2ZSB1cGRhdGVkIHN0eWxlXG5cbiAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgfSxcblxuICBzaG93OiBmdW5jdGlvbiBzaG93KCkge1xuICAgIHRoaXMuY3NzKCdkaXNwbGF5JywgJ2VsZW1lbnQnKTtcbiAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgfSxcblxuICBoaWRlOiBmdW5jdGlvbiBoaWRlKCkge1xuICAgIHRoaXMuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgfSxcblxuICBlZmZlY3RpdmVPcGFjaXR5OiBmdW5jdGlvbiBlZmZlY3RpdmVPcGFjaXR5KCkge1xuICAgIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgICBpZiAoIWN5LnN0eWxlRW5hYmxlZCgpKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgdmFyIGhhc0NvbXBvdW5kTm9kZXMgPSBjeS5oYXNDb21wb3VuZE5vZGVzKCk7XG4gICAgdmFyIGVsZSA9IHRoaXNbMF07XG4gICAgaWYgKGVsZSkge1xuICAgICAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICAgICAgdmFyIHBhcmVudE9wYWNpdHkgPSBlbGUucHN0eWxlKCdvcGFjaXR5JykudmFsdWU7XG4gICAgICBpZiAoIWhhc0NvbXBvdW5kTm9kZXMpIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudE9wYWNpdHk7XG4gICAgICB9XG4gICAgICB2YXIgcGFyZW50cyA9ICFfcC5kYXRhLnBhcmVudCA/IG51bGwgOiBlbGUucGFyZW50cygpO1xuICAgICAgaWYgKHBhcmVudHMpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJlbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdmFyIHBhcmVudCA9IHBhcmVudHNbaV07XG4gICAgICAgICAgdmFyIG9wYWNpdHkgPSBwYXJlbnQucHN0eWxlKCdvcGFjaXR5JykudmFsdWU7XG4gICAgICAgICAgcGFyZW50T3BhY2l0eSA9IG9wYWNpdHkgKiBwYXJlbnRPcGFjaXR5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFyZW50T3BhY2l0eTtcbiAgICB9XG4gIH0sXG4gIHRyYW5zcGFyZW50OiBmdW5jdGlvbiB0cmFuc3BhcmVudCgpIHtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgaWYgKCFjeS5zdHlsZUVuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICB2YXIgaGFzQ29tcG91bmROb2RlcyA9IGVsZS5jeSgpLmhhc0NvbXBvdW5kTm9kZXMoKTtcbiAgICBpZiAoZWxlKSB7XG4gICAgICBpZiAoIWhhc0NvbXBvdW5kTm9kZXMpIHtcbiAgICAgICAgcmV0dXJuIGVsZS5wc3R5bGUoJ29wYWNpdHknKS52YWx1ZSA9PT0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlbGUuZWZmZWN0aXZlT3BhY2l0eSgpID09PSAwO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgYmFja2dyb3VuZGluZzogZnVuY3Rpb24gYmFja2dyb3VuZGluZygpIHtcbiAgICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gICAgaWYgKCFjeS5zdHlsZUVuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICByZXR1cm4gZWxlLl9wcml2YXRlLmJhY2tncm91bmRpbmcgPyB0cnVlIDogZmFsc2U7XG4gIH1cbn07XG5mdW5jdGlvbiBjaGVja0NvbXBvdW5kKGVsZSwgcGFyZW50T2spIHtcbiAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICB2YXIgcGFyZW50cyA9IF9wLmRhdGEucGFyZW50ID8gZWxlLnBhcmVudHMoKSA6IG51bGw7XG4gIGlmIChwYXJlbnRzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJlbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcGFyZW50ID0gcGFyZW50c1tpXTtcbiAgICAgIGlmICghcGFyZW50T2socGFyZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gZGVmaW5lRGVyaXZlZFN0YXRlRnVuY3Rpb24oc3BlY3MpIHtcbiAgdmFyIG9rID0gc3BlY3Mub2s7XG4gIHZhciBlZGdlT2tWaWFOb2RlID0gc3BlY3MuZWRnZU9rVmlhTm9kZSB8fCBzcGVjcy5vaztcbiAgdmFyIHBhcmVudE9rID0gc3BlY3MucGFyZW50T2sgfHwgc3BlY3Mub2s7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGN5ID0gdGhpcy5jeSgpO1xuICAgIGlmICghY3kuc3R5bGVFbmFibGVkKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICB2YXIgaGFzQ29tcG91bmROb2RlcyA9IGN5Lmhhc0NvbXBvdW5kTm9kZXMoKTtcbiAgICBpZiAoZWxlKSB7XG4gICAgICB2YXIgX3AgPSBlbGUuX3ByaXZhdGU7XG4gICAgICBpZiAoIW9rKGVsZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGVsZS5pc05vZGUoKSkge1xuICAgICAgICByZXR1cm4gIWhhc0NvbXBvdW5kTm9kZXMgfHwgY2hlY2tDb21wb3VuZChlbGUsIHBhcmVudE9rKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBzcmMgPSBfcC5zb3VyY2U7XG4gICAgICAgIHZhciB0Z3QgPSBfcC50YXJnZXQ7XG4gICAgICAgIHJldHVybiBlZGdlT2tWaWFOb2RlKHNyYykgJiYgKCFoYXNDb21wb3VuZE5vZGVzIHx8IGNoZWNrQ29tcG91bmQoc3JjLCBlZGdlT2tWaWFOb2RlKSkgJiYgKHNyYyA9PT0gdGd0IHx8IGVkZ2VPa1ZpYU5vZGUodGd0KSAmJiAoIWhhc0NvbXBvdW5kTm9kZXMgfHwgY2hlY2tDb21wb3VuZCh0Z3QsIGVkZ2VPa1ZpYU5vZGUpKSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxudmFyIGVsZVRha2VzVXBTcGFjZSA9IGNhY2hlU3R5bGVGdW5jdGlvbignZWxlVGFrZXNVcFNwYWNlJywgZnVuY3Rpb24gKGVsZSkge1xuICByZXR1cm4gZWxlLnBzdHlsZSgnZGlzcGxheScpLnZhbHVlID09PSAnZWxlbWVudCcgJiYgZWxlLndpZHRoKCkgIT09IDAgJiYgKGVsZS5pc05vZGUoKSA/IGVsZS5oZWlnaHQoKSAhPT0gMCA6IHRydWUpO1xufSk7XG5lbGVzZm4kNC50YWtlc1VwU3BhY2UgPSBjYWNoZVByb3RvdHlwZVN0eWxlRnVuY3Rpb24oJ3Rha2VzVXBTcGFjZScsIGRlZmluZURlcml2ZWRTdGF0ZUZ1bmN0aW9uKHtcbiAgb2s6IGVsZVRha2VzVXBTcGFjZVxufSkpO1xudmFyIGVsZUludGVyYWN0aXZlID0gY2FjaGVTdHlsZUZ1bmN0aW9uKCdlbGVJbnRlcmFjdGl2ZScsIGZ1bmN0aW9uIChlbGUpIHtcbiAgcmV0dXJuIGVsZS5wc3R5bGUoJ2V2ZW50cycpLnZhbHVlID09PSAneWVzJyAmJiBlbGUucHN0eWxlKCd2aXNpYmlsaXR5JykudmFsdWUgPT09ICd2aXNpYmxlJyAmJiBlbGVUYWtlc1VwU3BhY2UoZWxlKTtcbn0pO1xudmFyIHBhcmVudEludGVyYWN0aXZlID0gY2FjaGVTdHlsZUZ1bmN0aW9uKCdwYXJlbnRJbnRlcmFjdGl2ZScsIGZ1bmN0aW9uIChwYXJlbnQpIHtcbiAgcmV0dXJuIHBhcmVudC5wc3R5bGUoJ3Zpc2liaWxpdHknKS52YWx1ZSA9PT0gJ3Zpc2libGUnICYmIGVsZVRha2VzVXBTcGFjZShwYXJlbnQpO1xufSk7XG5lbGVzZm4kNC5pbnRlcmFjdGl2ZSA9IGNhY2hlUHJvdG90eXBlU3R5bGVGdW5jdGlvbignaW50ZXJhY3RpdmUnLCBkZWZpbmVEZXJpdmVkU3RhdGVGdW5jdGlvbih7XG4gIG9rOiBlbGVJbnRlcmFjdGl2ZSxcbiAgcGFyZW50T2s6IHBhcmVudEludGVyYWN0aXZlLFxuICBlZGdlT2tWaWFOb2RlOiBlbGVUYWtlc1VwU3BhY2Vcbn0pKTtcbmVsZXNmbiQ0Lm5vbmludGVyYWN0aXZlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZWxlID0gdGhpc1swXTtcbiAgaWYgKGVsZSkge1xuICAgIHJldHVybiAhZWxlLmludGVyYWN0aXZlKCk7XG4gIH1cbn07XG52YXIgZWxlVmlzaWJsZSA9IGNhY2hlU3R5bGVGdW5jdGlvbignZWxlVmlzaWJsZScsIGZ1bmN0aW9uIChlbGUpIHtcbiAgcmV0dXJuIGVsZS5wc3R5bGUoJ3Zpc2liaWxpdHknKS52YWx1ZSA9PT0gJ3Zpc2libGUnICYmIGVsZS5wc3R5bGUoJ29wYWNpdHknKS5wZlZhbHVlICE9PSAwICYmIGVsZVRha2VzVXBTcGFjZShlbGUpO1xufSk7XG52YXIgZWRnZVZpc2libGVWaWFOb2RlID0gZWxlVGFrZXNVcFNwYWNlO1xuZWxlc2ZuJDQudmlzaWJsZSA9IGNhY2hlUHJvdG90eXBlU3R5bGVGdW5jdGlvbigndmlzaWJsZScsIGRlZmluZURlcml2ZWRTdGF0ZUZ1bmN0aW9uKHtcbiAgb2s6IGVsZVZpc2libGUsXG4gIGVkZ2VPa1ZpYU5vZGU6IGVkZ2VWaXNpYmxlVmlhTm9kZVxufSkpO1xuZWxlc2ZuJDQuaGlkZGVuID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZWxlID0gdGhpc1swXTtcbiAgaWYgKGVsZSkge1xuICAgIHJldHVybiAhZWxlLnZpc2libGUoKTtcbiAgfVxufTtcbmVsZXNmbiQ0LmlzQnVuZGxlZEJlemllciA9IGNhY2hlUHJvdG90eXBlU3R5bGVGdW5jdGlvbignaXNCdW5kbGVkQmV6aWVyJywgZnVuY3Rpb24gKCkge1xuICBpZiAoIXRoaXMuY3koKS5zdHlsZUVuYWJsZWQoKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gIXRoaXMucmVtb3ZlZCgpICYmIHRoaXMucHN0eWxlKCdjdXJ2ZS1zdHlsZScpLnZhbHVlID09PSAnYmV6aWVyJyAmJiB0aGlzLnRha2VzVXBTcGFjZSgpO1xufSk7XG5lbGVzZm4kNC5ieXBhc3MgPSBlbGVzZm4kNC5jc3MgPSBlbGVzZm4kNC5zdHlsZTtcbmVsZXNmbiQ0LnJlbmRlcmVkQ3NzID0gZWxlc2ZuJDQucmVuZGVyZWRTdHlsZTtcbmVsZXNmbiQ0LnJlbW92ZUJ5cGFzcyA9IGVsZXNmbiQ0LnJlbW92ZUNzcyA9IGVsZXNmbiQ0LnJlbW92ZVN0eWxlO1xuZWxlc2ZuJDQucHN0eWxlID0gZWxlc2ZuJDQucGFyc2VkU3R5bGU7XG5cbnZhciBlbGVzZm4kMyA9IHt9O1xuZnVuY3Rpb24gZGVmaW5lU3dpdGNoRnVuY3Rpb24ocGFyYW1zKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgdmFyIGNoYW5nZWRFbGVzID0gW107XG5cbiAgICAvLyBlLmcuIGN5Lm5vZGVzKCkuc2VsZWN0KCBkYXRhLCBoYW5kbGVyIClcbiAgICBpZiAoYXJncy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHZhciBkYXRhID0gYXJnc1swXTtcbiAgICAgIHZhciBoYW5kbGVyID0gYXJnc1sxXTtcbiAgICAgIHRoaXMub24ocGFyYW1zLmV2ZW50LCBkYXRhLCBoYW5kbGVyKTtcbiAgICB9XG5cbiAgICAvLyBlLmcuIGN5Lm5vZGVzKCkuc2VsZWN0KCBoYW5kbGVyIClcbiAgICBlbHNlIGlmIChhcmdzLmxlbmd0aCA9PT0gMSAmJiBmbiQ2KGFyZ3NbMF0pKSB7XG4gICAgICB2YXIgX2hhbmRsZXIgPSBhcmdzWzBdO1xuICAgICAgdGhpcy5vbihwYXJhbXMuZXZlbnQsIF9oYW5kbGVyKTtcbiAgICB9XG5cbiAgICAvLyBlLmcuIGN5Lm5vZGVzKCkuc2VsZWN0KClcbiAgICAvLyBlLmcuIChwcml2YXRlKSBjeS5ub2RlcygpLnNlbGVjdChbJ3RhcHNlbGVjdCddKVxuICAgIGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09PSAwIHx8IGFyZ3MubGVuZ3RoID09PSAxICYmIGFycmF5KGFyZ3NbMF0pKSB7XG4gICAgICB2YXIgYWRkbEV2ZW50cyA9IGFyZ3MubGVuZ3RoID09PSAxID8gYXJnc1swXSA6IG51bGw7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGVsZSA9IHRoaXNbaV07XG4gICAgICAgIHZhciBhYmxlID0gIXBhcmFtcy5hYmxlRmllbGQgfHwgZWxlLl9wcml2YXRlW3BhcmFtcy5hYmxlRmllbGRdO1xuICAgICAgICB2YXIgY2hhbmdlZCA9IGVsZS5fcHJpdmF0ZVtwYXJhbXMuZmllbGRdICE9IHBhcmFtcy52YWx1ZTtcbiAgICAgICAgaWYgKHBhcmFtcy5vdmVycmlkZUFibGUpIHtcbiAgICAgICAgICB2YXIgb3ZlcnJpZGVBYmxlID0gcGFyYW1zLm92ZXJyaWRlQWJsZShlbGUpO1xuICAgICAgICAgIGlmIChvdmVycmlkZUFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYWJsZSA9IG92ZXJyaWRlQWJsZTtcbiAgICAgICAgICAgIGlmICghb3ZlcnJpZGVBYmxlKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSAvLyB0byBzYXZlIGN5Y2xlcyBhc3N1bWUgbm90IGFibGUgZm9yIGFsbCBvbiBvdmVycmlkZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhYmxlKSB7XG4gICAgICAgICAgZWxlLl9wcml2YXRlW3BhcmFtcy5maWVsZF0gPSBwYXJhbXMudmFsdWU7XG4gICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgIGNoYW5nZWRFbGVzLnB1c2goZWxlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciBjaGFuZ2VkQ29sbCA9IHRoaXMuc3Bhd24oY2hhbmdlZEVsZXMpO1xuICAgICAgY2hhbmdlZENvbGwudXBkYXRlU3R5bGUoKTsgLy8gY2hhbmdlIG9mIHN0YXRlID0+IHBvc3NpYmxlIGNoYW5nZSBvZiBzdHlsZVxuICAgICAgY2hhbmdlZENvbGwuZW1pdChwYXJhbXMuZXZlbnQpO1xuICAgICAgaWYgKGFkZGxFdmVudHMpIHtcbiAgICAgICAgY2hhbmdlZENvbGwuZW1pdChhZGRsRXZlbnRzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5mdW5jdGlvbiBkZWZpbmVTd2l0Y2hTZXQocGFyYW1zKSB7XG4gIGVsZXNmbiQzW3BhcmFtcy5maWVsZF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGVsZSA9IHRoaXNbMF07XG4gICAgaWYgKGVsZSkge1xuICAgICAgaWYgKHBhcmFtcy5vdmVycmlkZUZpZWxkKSB7XG4gICAgICAgIHZhciB2YWwgPSBwYXJhbXMub3ZlcnJpZGVGaWVsZChlbGUpO1xuICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZWxlLl9wcml2YXRlW3BhcmFtcy5maWVsZF07XG4gICAgfVxuICB9O1xuICBlbGVzZm4kM1twYXJhbXMub25dID0gZGVmaW5lU3dpdGNoRnVuY3Rpb24oe1xuICAgIGV2ZW50OiBwYXJhbXMub24sXG4gICAgZmllbGQ6IHBhcmFtcy5maWVsZCxcbiAgICBhYmxlRmllbGQ6IHBhcmFtcy5hYmxlRmllbGQsXG4gICAgb3ZlcnJpZGVBYmxlOiBwYXJhbXMub3ZlcnJpZGVBYmxlLFxuICAgIHZhbHVlOiB0cnVlXG4gIH0pO1xuICBlbGVzZm4kM1twYXJhbXMub2ZmXSA9IGRlZmluZVN3aXRjaEZ1bmN0aW9uKHtcbiAgICBldmVudDogcGFyYW1zLm9mZixcbiAgICBmaWVsZDogcGFyYW1zLmZpZWxkLFxuICAgIGFibGVGaWVsZDogcGFyYW1zLmFibGVGaWVsZCxcbiAgICBvdmVycmlkZUFibGU6IHBhcmFtcy5vdmVycmlkZUFibGUsXG4gICAgdmFsdWU6IGZhbHNlXG4gIH0pO1xufVxuZGVmaW5lU3dpdGNoU2V0KHtcbiAgZmllbGQ6ICdsb2NrZWQnLFxuICBvdmVycmlkZUZpZWxkOiBmdW5jdGlvbiBvdmVycmlkZUZpZWxkKGVsZSkge1xuICAgIHJldHVybiBlbGUuY3koKS5hdXRvbG9jaygpID8gdHJ1ZSA6IHVuZGVmaW5lZDtcbiAgfSxcbiAgb246ICdsb2NrJyxcbiAgb2ZmOiAndW5sb2NrJ1xufSk7XG5kZWZpbmVTd2l0Y2hTZXQoe1xuICBmaWVsZDogJ2dyYWJiYWJsZScsXG4gIG92ZXJyaWRlRmllbGQ6IGZ1bmN0aW9uIG92ZXJyaWRlRmllbGQoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5jeSgpLmF1dG91bmdyYWJpZnkoKSB8fCBlbGUucGFubmFibGUoKSA/IGZhbHNlIDogdW5kZWZpbmVkO1xuICB9LFxuICBvbjogJ2dyYWJpZnknLFxuICBvZmY6ICd1bmdyYWJpZnknXG59KTtcbmRlZmluZVN3aXRjaFNldCh7XG4gIGZpZWxkOiAnc2VsZWN0ZWQnLFxuICBhYmxlRmllbGQ6ICdzZWxlY3RhYmxlJyxcbiAgb3ZlcnJpZGVBYmxlOiBmdW5jdGlvbiBvdmVycmlkZUFibGUoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5jeSgpLmF1dG91bnNlbGVjdGlmeSgpID8gZmFsc2UgOiB1bmRlZmluZWQ7XG4gIH0sXG4gIG9uOiAnc2VsZWN0JyxcbiAgb2ZmOiAndW5zZWxlY3QnXG59KTtcbmRlZmluZVN3aXRjaFNldCh7XG4gIGZpZWxkOiAnc2VsZWN0YWJsZScsXG4gIG92ZXJyaWRlRmllbGQ6IGZ1bmN0aW9uIG92ZXJyaWRlRmllbGQoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5jeSgpLmF1dG91bnNlbGVjdGlmeSgpID8gZmFsc2UgOiB1bmRlZmluZWQ7XG4gIH0sXG4gIG9uOiAnc2VsZWN0aWZ5JyxcbiAgb2ZmOiAndW5zZWxlY3RpZnknXG59KTtcbmVsZXNmbiQzLmRlc2VsZWN0ID0gZWxlc2ZuJDMudW5zZWxlY3Q7XG5lbGVzZm4kMy5ncmFiYmVkID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZWxlID0gdGhpc1swXTtcbiAgaWYgKGVsZSkge1xuICAgIHJldHVybiBlbGUuX3ByaXZhdGUuZ3JhYmJlZDtcbiAgfVxufTtcbmRlZmluZVN3aXRjaFNldCh7XG4gIGZpZWxkOiAnYWN0aXZlJyxcbiAgb246ICdhY3RpdmF0ZScsXG4gIG9mZjogJ3VuYWN0aXZhdGUnXG59KTtcbmRlZmluZVN3aXRjaFNldCh7XG4gIGZpZWxkOiAncGFubmFibGUnLFxuICBvbjogJ3BhbmlmeScsXG4gIG9mZjogJ3VucGFuaWZ5J1xufSk7XG5lbGVzZm4kMy5pbmFjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGVsZSA9IHRoaXNbMF07XG4gIGlmIChlbGUpIHtcbiAgICByZXR1cm4gIWVsZS5fcHJpdmF0ZS5hY3RpdmU7XG4gIH1cbn07XG5cbnZhciBlbGVzZm4kMiA9IHt9O1xuXG4vLyBEQUcgZnVuY3Rpb25zXG4vLy8vLy8vLy8vLy8vLy8vXG5cbnZhciBkZWZpbmVEYWdFeHRyZW1pdHkgPSBmdW5jdGlvbiBkZWZpbmVEYWdFeHRyZW1pdHkocGFyYW1zKSB7XG4gIHJldHVybiBmdW5jdGlvbiBkYWdFeHRyZW1pdHlJbXBsKHNlbGVjdG9yKSB7XG4gICAgdmFyIGVsZXMgPSB0aGlzO1xuICAgIHZhciByZXQgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlbGUgPSBlbGVzW2ldO1xuICAgICAgaWYgKCFlbGUuaXNOb2RlKCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB2YXIgZGlzcXVhbGlmaWVkID0gZmFsc2U7XG4gICAgICB2YXIgZWRnZXMgPSBlbGUuY29ubmVjdGVkRWRnZXMoKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZWRnZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgdmFyIGVkZ2UgPSBlZGdlc1tqXTtcbiAgICAgICAgdmFyIHNyYyA9IGVkZ2Uuc291cmNlKCk7XG4gICAgICAgIHZhciB0Z3QgPSBlZGdlLnRhcmdldCgpO1xuICAgICAgICBpZiAocGFyYW1zLm5vSW5jb21pbmdFZGdlcyAmJiB0Z3QgPT09IGVsZSAmJiBzcmMgIT09IGVsZSB8fCBwYXJhbXMubm9PdXRnb2luZ0VkZ2VzICYmIHNyYyA9PT0gZWxlICYmIHRndCAhPT0gZWxlKSB7XG4gICAgICAgICAgZGlzcXVhbGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFkaXNxdWFsaWZpZWQpIHtcbiAgICAgICAgcmV0LnB1c2goZWxlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3Bhd24ocmV0LCB0cnVlKS5maWx0ZXIoc2VsZWN0b3IpO1xuICB9O1xufTtcbnZhciBkZWZpbmVEYWdPbmVIb3AgPSBmdW5jdGlvbiBkZWZpbmVEYWdPbmVIb3AocGFyYW1zKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc2VsZWN0b3IpIHtcbiAgICB2YXIgZWxlcyA9IHRoaXM7XG4gICAgdmFyIG9FbGVzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlID0gZWxlc1tpXTtcbiAgICAgIGlmICghZWxlLmlzTm9kZSgpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdmFyIGVkZ2VzID0gZWxlLmNvbm5lY3RlZEVkZ2VzKCk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGVkZ2VzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBlZGdlID0gZWRnZXNbal07XG4gICAgICAgIHZhciBzcmMgPSBlZGdlLnNvdXJjZSgpO1xuICAgICAgICB2YXIgdGd0ID0gZWRnZS50YXJnZXQoKTtcbiAgICAgICAgaWYgKHBhcmFtcy5vdXRnb2luZyAmJiBzcmMgPT09IGVsZSkge1xuICAgICAgICAgIG9FbGVzLnB1c2goZWRnZSk7XG4gICAgICAgICAgb0VsZXMucHVzaCh0Z3QpO1xuICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcy5pbmNvbWluZyAmJiB0Z3QgPT09IGVsZSkge1xuICAgICAgICAgIG9FbGVzLnB1c2goZWRnZSk7XG4gICAgICAgICAgb0VsZXMucHVzaChzcmMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNwYXduKG9FbGVzLCB0cnVlKS5maWx0ZXIoc2VsZWN0b3IpO1xuICB9O1xufTtcbnZhciBkZWZpbmVEYWdBbGxIb3BzID0gZnVuY3Rpb24gZGVmaW5lRGFnQWxsSG9wcyhwYXJhbXMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChzZWxlY3Rvcikge1xuICAgIHZhciBlbGVzID0gdGhpcztcbiAgICB2YXIgc0VsZXMgPSBbXTtcbiAgICB2YXIgc0VsZXNJZHMgPSB7fTtcbiAgICBmb3IgKDs7KSB7XG4gICAgICB2YXIgbmV4dCA9IHBhcmFtcy5vdXRnb2luZyA/IGVsZXMub3V0Z29lcnMoKSA6IGVsZXMuaW5jb21lcnMoKTtcbiAgICAgIGlmIChuZXh0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH0gLy8gZG9uZSBpZiBub25lIGxlZnRcblxuICAgICAgdmFyIG5ld05leHQgPSBmYWxzZTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgbiA9IG5leHRbaV07XG4gICAgICAgIHZhciBuaWQgPSBuLmlkKCk7XG4gICAgICAgIGlmICghc0VsZXNJZHNbbmlkXSkge1xuICAgICAgICAgIHNFbGVzSWRzW25pZF0gPSB0cnVlO1xuICAgICAgICAgIHNFbGVzLnB1c2gobik7XG4gICAgICAgICAgbmV3TmV4dCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghbmV3TmV4dCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH0gLy8gZG9uZSBpZiB0b3VjaGVkIGFsbCBvdXRnb2VycyBhbHJlYWR5XG5cbiAgICAgIGVsZXMgPSBuZXh0O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zcGF3bihzRWxlcywgdHJ1ZSkuZmlsdGVyKHNlbGVjdG9yKTtcbiAgfTtcbn07XG5lbGVzZm4kMi5jbGVhclRyYXZlcnNhbENhY2hlID0gZnVuY3Rpb24gKCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICB0aGlzW2ldLl9wcml2YXRlLnRyYXZlcnNhbENhY2hlID0gbnVsbDtcbiAgfVxufTtcbmV4dGVuZChlbGVzZm4kMiwge1xuICAvLyBnZXQgdGhlIHJvb3Qgbm9kZXMgaW4gdGhlIERBR1xuICByb290czogZGVmaW5lRGFnRXh0cmVtaXR5KHtcbiAgICBub0luY29taW5nRWRnZXM6IHRydWVcbiAgfSksXG4gIC8vIGdldCB0aGUgbGVhZiBub2RlcyBpbiB0aGUgREFHXG4gIGxlYXZlczogZGVmaW5lRGFnRXh0cmVtaXR5KHtcbiAgICBub091dGdvaW5nRWRnZXM6IHRydWVcbiAgfSksXG4gIC8vIG5vcm1hbGx5IGNhbGxlZCBjaGlsZHJlbiBpbiBncmFwaCB0aGVvcnlcbiAgLy8gdGhlc2Ugbm9kZXMgPWVkZ2VzPT4gb3V0Z29pbmcgbm9kZXNcbiAgb3V0Z29lcnM6IGNhY2hlKGRlZmluZURhZ09uZUhvcCh7XG4gICAgb3V0Z29pbmc6IHRydWVcbiAgfSksICdvdXRnb2VycycpLFxuICAvLyBha2EgREFHIGRlc2NlbmRhbnRzXG4gIHN1Y2Nlc3NvcnM6IGRlZmluZURhZ0FsbEhvcHMoe1xuICAgIG91dGdvaW5nOiB0cnVlXG4gIH0pLFxuICAvLyBub3JtYWxseSBjYWxsZWQgcGFyZW50cyBpbiBncmFwaCB0aGVvcnlcbiAgLy8gdGhlc2Ugbm9kZXMgPD1lZGdlcz0gaW5jb21pbmcgbm9kZXNcbiAgaW5jb21lcnM6IGNhY2hlKGRlZmluZURhZ09uZUhvcCh7XG4gICAgaW5jb21pbmc6IHRydWVcbiAgfSksICdpbmNvbWVycycpLFxuICAvLyBha2EgREFHIGFuY2VzdG9yc1xuICBwcmVkZWNlc3NvcnM6IGRlZmluZURhZ0FsbEhvcHMoe1xuICAgIGluY29taW5nOiB0cnVlXG4gIH0pXG59KTtcblxuLy8gTmVpZ2hib3VyaG9vZCBmdW5jdGlvbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4dGVuZChlbGVzZm4kMiwge1xuICBuZWlnaGJvcmhvb2Q6IGNhY2hlKGZ1bmN0aW9uIChzZWxlY3Rvcikge1xuICAgIHZhciBlbGVtZW50cyA9IFtdO1xuICAgIHZhciBub2RlcyA9IHRoaXMubm9kZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBmb3IgYWxsIG5vZGVzXG4gICAgICB2YXIgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgdmFyIGNvbm5lY3RlZEVkZ2VzID0gbm9kZS5jb25uZWN0ZWRFZGdlcygpO1xuXG4gICAgICAvLyBmb3IgZWFjaCBjb25uZWN0ZWQgZWRnZSwgYWRkIHRoZSBlZGdlIGFuZCB0aGUgb3RoZXIgbm9kZVxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb25uZWN0ZWRFZGdlcy5sZW5ndGg7IGorKykge1xuICAgICAgICB2YXIgZWRnZSA9IGNvbm5lY3RlZEVkZ2VzW2pdO1xuICAgICAgICB2YXIgc3JjID0gZWRnZS5zb3VyY2UoKTtcbiAgICAgICAgdmFyIHRndCA9IGVkZ2UudGFyZ2V0KCk7XG4gICAgICAgIHZhciBvdGhlck5vZGUgPSBub2RlID09PSBzcmMgPyB0Z3QgOiBzcmM7XG5cbiAgICAgICAgLy8gbmVlZCBjaGVjayBpbiBjYXNlIG9mIGxvb3BcbiAgICAgICAgaWYgKG90aGVyTm9kZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZWxlbWVudHMucHVzaChvdGhlck5vZGVbMF0pOyAvLyBhZGQgbm9kZSAxIGhvcCBhd2F5XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhZGQgY29ubmVjdGVkIGVkZ2VcbiAgICAgICAgZWxlbWVudHMucHVzaChlZGdlWzBdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3Bhd24oZWxlbWVudHMsIHRydWUpLmZpbHRlcihzZWxlY3Rvcik7XG4gIH0sICduZWlnaGJvcmhvb2QnKSxcbiAgY2xvc2VkTmVpZ2hib3Job29kOiBmdW5jdGlvbiBjbG9zZWROZWlnaGJvcmhvb2Qoc2VsZWN0b3IpIHtcbiAgICByZXR1cm4gdGhpcy5uZWlnaGJvcmhvb2QoKS5hZGQodGhpcykuZmlsdGVyKHNlbGVjdG9yKTtcbiAgfSxcbiAgb3Blbk5laWdoYm9yaG9vZDogZnVuY3Rpb24gb3Blbk5laWdoYm9yaG9vZChzZWxlY3Rvcikge1xuICAgIHJldHVybiB0aGlzLm5laWdoYm9yaG9vZChzZWxlY3Rvcik7XG4gIH1cbn0pO1xuXG4vLyBhbGlhc2VzXG5lbGVzZm4kMi5uZWlnaGJvdXJob29kID0gZWxlc2ZuJDIubmVpZ2hib3Job29kO1xuZWxlc2ZuJDIuY2xvc2VkTmVpZ2hib3VyaG9vZCA9IGVsZXNmbiQyLmNsb3NlZE5laWdoYm9yaG9vZDtcbmVsZXNmbiQyLm9wZW5OZWlnaGJvdXJob29kID0gZWxlc2ZuJDIub3Blbk5laWdoYm9yaG9vZDtcblxuLy8gRWRnZSBmdW5jdGlvbnNcbi8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4dGVuZChlbGVzZm4kMiwge1xuICBzb3VyY2U6IGNhY2hlKGZ1bmN0aW9uIHNvdXJjZUltcGwoc2VsZWN0b3IpIHtcbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICB2YXIgc3JjO1xuICAgIGlmIChlbGUpIHtcbiAgICAgIHNyYyA9IGVsZS5fcHJpdmF0ZS5zb3VyY2UgfHwgZWxlLmN5KCkuY29sbGVjdGlvbigpO1xuICAgIH1cbiAgICByZXR1cm4gc3JjICYmIHNlbGVjdG9yID8gc3JjLmZpbHRlcihzZWxlY3RvcikgOiBzcmM7XG4gIH0sICdzb3VyY2UnKSxcbiAgdGFyZ2V0OiBjYWNoZShmdW5jdGlvbiB0YXJnZXRJbXBsKHNlbGVjdG9yKSB7XG4gICAgdmFyIGVsZSA9IHRoaXNbMF07XG4gICAgdmFyIHRndDtcbiAgICBpZiAoZWxlKSB7XG4gICAgICB0Z3QgPSBlbGUuX3ByaXZhdGUudGFyZ2V0IHx8IGVsZS5jeSgpLmNvbGxlY3Rpb24oKTtcbiAgICB9XG4gICAgcmV0dXJuIHRndCAmJiBzZWxlY3RvciA/IHRndC5maWx0ZXIoc2VsZWN0b3IpIDogdGd0O1xuICB9LCAndGFyZ2V0JyksXG4gIHNvdXJjZXM6IGRlZmluZVNvdXJjZUZ1bmN0aW9uKHtcbiAgICBhdHRyOiAnc291cmNlJ1xuICB9KSxcbiAgdGFyZ2V0czogZGVmaW5lU291cmNlRnVuY3Rpb24oe1xuICAgIGF0dHI6ICd0YXJnZXQnXG4gIH0pXG59KTtcbmZ1bmN0aW9uIGRlZmluZVNvdXJjZUZ1bmN0aW9uKHBhcmFtcykge1xuICByZXR1cm4gZnVuY3Rpb24gc291cmNlSW1wbChzZWxlY3Rvcikge1xuICAgIHZhciBzb3VyY2VzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlID0gdGhpc1tpXTtcbiAgICAgIHZhciBzcmMgPSBlbGUuX3ByaXZhdGVbcGFyYW1zLmF0dHJdO1xuICAgICAgaWYgKHNyYykge1xuICAgICAgICBzb3VyY2VzLnB1c2goc3JjKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3Bhd24oc291cmNlcywgdHJ1ZSkuZmlsdGVyKHNlbGVjdG9yKTtcbiAgfTtcbn1cbmV4dGVuZChlbGVzZm4kMiwge1xuICBlZGdlc1dpdGg6IGNhY2hlKGRlZmluZUVkZ2VzV2l0aEZ1bmN0aW9uKCksICdlZGdlc1dpdGgnKSxcbiAgZWRnZXNUbzogY2FjaGUoZGVmaW5lRWRnZXNXaXRoRnVuY3Rpb24oe1xuICAgIHRoaXNJc1NyYzogdHJ1ZVxuICB9KSwgJ2VkZ2VzVG8nKVxufSk7XG5mdW5jdGlvbiBkZWZpbmVFZGdlc1dpdGhGdW5jdGlvbihwYXJhbXMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGVkZ2VzV2l0aEltcGwob3RoZXJOb2Rlcykge1xuICAgIHZhciBlbGVtZW50cyA9IFtdO1xuICAgIHZhciBjeSA9IHRoaXMuX3ByaXZhdGUuY3k7XG4gICAgdmFyIHAgPSBwYXJhbXMgfHwge307XG5cbiAgICAvLyBnZXQgZWxlbWVudHMgaWYgYSBzZWxlY3RvciBpcyBzcGVjaWZpZWRcbiAgICBpZiAoc3RyaW5nKG90aGVyTm9kZXMpKSB7XG4gICAgICBvdGhlck5vZGVzID0gY3kuJChvdGhlck5vZGVzKTtcbiAgICB9XG4gICAgZm9yICh2YXIgaCA9IDA7IGggPCBvdGhlck5vZGVzLmxlbmd0aDsgaCsrKSB7XG4gICAgICB2YXIgZWRnZXMgPSBvdGhlck5vZGVzW2hdLl9wcml2YXRlLmVkZ2VzO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlZGdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZWRnZSA9IGVkZ2VzW2ldO1xuICAgICAgICB2YXIgZWRnZURhdGEgPSBlZGdlLl9wcml2YXRlLmRhdGE7XG4gICAgICAgIHZhciB0aGlzVG9PdGhlciA9IHRoaXMuaGFzRWxlbWVudFdpdGhJZChlZGdlRGF0YS5zb3VyY2UpICYmIG90aGVyTm9kZXMuaGFzRWxlbWVudFdpdGhJZChlZGdlRGF0YS50YXJnZXQpO1xuICAgICAgICB2YXIgb3RoZXJUb1RoaXMgPSBvdGhlck5vZGVzLmhhc0VsZW1lbnRXaXRoSWQoZWRnZURhdGEuc291cmNlKSAmJiB0aGlzLmhhc0VsZW1lbnRXaXRoSWQoZWRnZURhdGEudGFyZ2V0KTtcbiAgICAgICAgdmFyIGVkZ2VDb25uZWN0c1RoaXNBbmRPdGhlciA9IHRoaXNUb090aGVyIHx8IG90aGVyVG9UaGlzO1xuICAgICAgICBpZiAoIWVkZ2VDb25uZWN0c1RoaXNBbmRPdGhlcikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwLnRoaXNJc1NyYyB8fCBwLnRoaXNJc1RndCkge1xuICAgICAgICAgIGlmIChwLnRoaXNJc1NyYyAmJiAhdGhpc1RvT3RoZXIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocC50aGlzSXNUZ3QgJiYgIW90aGVyVG9UaGlzKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudHMucHVzaChlZGdlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3Bhd24oZWxlbWVudHMsIHRydWUpO1xuICB9O1xufVxuZXh0ZW5kKGVsZXNmbiQyLCB7XG4gIGNvbm5lY3RlZEVkZ2VzOiBjYWNoZShmdW5jdGlvbiAoc2VsZWN0b3IpIHtcbiAgICB2YXIgcmV0RWxlcyA9IFtdO1xuICAgIHZhciBlbGVzID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBub2RlID0gZWxlc1tpXTtcbiAgICAgIGlmICghbm9kZS5pc05vZGUoKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciBlZGdlcyA9IG5vZGUuX3ByaXZhdGUuZWRnZXM7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGVkZ2VzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBlZGdlID0gZWRnZXNbal07XG4gICAgICAgIHJldEVsZXMucHVzaChlZGdlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3Bhd24ocmV0RWxlcywgdHJ1ZSkuZmlsdGVyKHNlbGVjdG9yKTtcbiAgfSwgJ2Nvbm5lY3RlZEVkZ2VzJyksXG4gIGNvbm5lY3RlZE5vZGVzOiBjYWNoZShmdW5jdGlvbiAoc2VsZWN0b3IpIHtcbiAgICB2YXIgcmV0RWxlcyA9IFtdO1xuICAgIHZhciBlbGVzID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlZGdlID0gZWxlc1tpXTtcbiAgICAgIGlmICghZWRnZS5pc0VkZ2UoKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJldEVsZXMucHVzaChlZGdlLnNvdXJjZSgpWzBdKTtcbiAgICAgIHJldEVsZXMucHVzaChlZGdlLnRhcmdldCgpWzBdKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3Bhd24ocmV0RWxlcywgdHJ1ZSkuZmlsdGVyKHNlbGVjdG9yKTtcbiAgfSwgJ2Nvbm5lY3RlZE5vZGVzJyksXG4gIHBhcmFsbGVsRWRnZXM6IGNhY2hlKGRlZmluZVBhcmFsbGVsRWRnZXNGdW5jdGlvbigpLCAncGFyYWxsZWxFZGdlcycpLFxuICBjb2RpcmVjdGVkRWRnZXM6IGNhY2hlKGRlZmluZVBhcmFsbGVsRWRnZXNGdW5jdGlvbih7XG4gICAgY29kaXJlY3RlZDogdHJ1ZVxuICB9KSwgJ2NvZGlyZWN0ZWRFZGdlcycpXG59KTtcbmZ1bmN0aW9uIGRlZmluZVBhcmFsbGVsRWRnZXNGdW5jdGlvbihwYXJhbXMpIHtcbiAgdmFyIGRlZmF1bHRzID0ge1xuICAgIGNvZGlyZWN0ZWQ6IGZhbHNlXG4gIH07XG4gIHBhcmFtcyA9IGV4dGVuZCh7fSwgZGVmYXVsdHMsIHBhcmFtcyk7XG4gIHJldHVybiBmdW5jdGlvbiBwYXJhbGxlbEVkZ2VzSW1wbChzZWxlY3Rvcikge1xuICAgIC8vIG1pY3JvLW9wdGltaXNlZCBmb3IgcmVuZGVyZXJcbiAgICB2YXIgZWxlbWVudHMgPSBbXTtcbiAgICB2YXIgZWRnZXMgPSB0aGlzLmVkZ2VzKCk7XG4gICAgdmFyIHAgPSBwYXJhbXM7XG5cbiAgICAvLyBsb29rIGF0IGFsbCB0aGUgZWRnZXMgaW4gdGhlIGNvbGxlY3Rpb25cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVkZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWRnZTEgPSBlZGdlc1tpXTtcbiAgICAgIHZhciBlZGdlMV9wID0gZWRnZTEuX3ByaXZhdGU7XG4gICAgICB2YXIgc3JjMSA9IGVkZ2UxX3Auc291cmNlO1xuICAgICAgdmFyIHNyY2lkMSA9IHNyYzEuX3ByaXZhdGUuZGF0YS5pZDtcbiAgICAgIHZhciB0Z3RpZDEgPSBlZGdlMV9wLmRhdGEudGFyZ2V0O1xuICAgICAgdmFyIHNyY0VkZ2VzMSA9IHNyYzEuX3ByaXZhdGUuZWRnZXM7XG5cbiAgICAgIC8vIGxvb2sgYXQgZWRnZXMgY29ubmVjdGVkIHRvIHRoZSBzcmMgbm9kZSBvZiB0aGlzIGVkZ2VcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3JjRWRnZXMxLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBlZGdlMiA9IHNyY0VkZ2VzMVtqXTtcbiAgICAgICAgdmFyIGVkZ2UyZGF0YSA9IGVkZ2UyLl9wcml2YXRlLmRhdGE7XG4gICAgICAgIHZhciB0Z3RpZDIgPSBlZGdlMmRhdGEudGFyZ2V0O1xuICAgICAgICB2YXIgc3JjaWQyID0gZWRnZTJkYXRhLnNvdXJjZTtcbiAgICAgICAgdmFyIGNvZGlyZWN0ZWQgPSB0Z3RpZDIgPT09IHRndGlkMSAmJiBzcmNpZDIgPT09IHNyY2lkMTtcbiAgICAgICAgdmFyIG9wcGRpcmVjdGVkID0gc3JjaWQxID09PSB0Z3RpZDIgJiYgdGd0aWQxID09PSBzcmNpZDI7XG4gICAgICAgIGlmIChwLmNvZGlyZWN0ZWQgJiYgY29kaXJlY3RlZCB8fCAhcC5jb2RpcmVjdGVkICYmIChjb2RpcmVjdGVkIHx8IG9wcGRpcmVjdGVkKSkge1xuICAgICAgICAgIGVsZW1lbnRzLnB1c2goZWRnZTIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNwYXduKGVsZW1lbnRzLCB0cnVlKS5maWx0ZXIoc2VsZWN0b3IpO1xuICB9O1xufVxuXG4vLyBNaXNjIGZ1bmN0aW9uc1xuLy8vLy8vLy8vLy8vLy8vLy9cblxuZXh0ZW5kKGVsZXNmbiQyLCB7XG4gIGNvbXBvbmVudHM6IGZ1bmN0aW9uIGNvbXBvbmVudHMocm9vdCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgY3kgPSBzZWxmLmN5KCk7XG4gICAgdmFyIHZpc2l0ZWQgPSBjeS5jb2xsZWN0aW9uKCk7XG4gICAgdmFyIHVudmlzaXRlZCA9IHJvb3QgPT0gbnVsbCA/IHNlbGYubm9kZXMoKSA6IHJvb3Qubm9kZXMoKTtcbiAgICB2YXIgY29tcG9uZW50cyA9IFtdO1xuICAgIGlmIChyb290ICE9IG51bGwgJiYgdW52aXNpdGVkLmVtcHR5KCkpIHtcbiAgICAgIC8vIHJvb3QgbWF5IGNvbnRhaW4gb25seSBlZGdlc1xuICAgICAgdW52aXNpdGVkID0gcm9vdC5zb3VyY2VzKCk7IC8vIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIG5vZGUgdG8gdXNlICh1bmRpcmVjdGVkKSwgc28ganVzdCB1c2UgdGhlIHNvdXJjZSBzaWRlc1xuICAgIH1cblxuICAgIHZhciB2aXNpdEluQ29tcG9uZW50ID0gZnVuY3Rpb24gdmlzaXRJbkNvbXBvbmVudChub2RlLCBjb21wb25lbnQpIHtcbiAgICAgIHZpc2l0ZWQubWVyZ2Uobm9kZSk7XG4gICAgICB1bnZpc2l0ZWQudW5tZXJnZShub2RlKTtcbiAgICAgIGNvbXBvbmVudC5tZXJnZShub2RlKTtcbiAgICB9O1xuICAgIGlmICh1bnZpc2l0ZWQuZW1wdHkoKSkge1xuICAgICAgcmV0dXJuIHNlbGYuc3Bhd24oKTtcbiAgICB9XG4gICAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3AoKSB7XG4gICAgICAvLyBlYWNoIGl0ZXJhdGlvbiB5aWVsZHMgYSBjb21wb25lbnRcbiAgICAgIHZhciBjbXB0ID0gY3kuY29sbGVjdGlvbigpO1xuICAgICAgY29tcG9uZW50cy5wdXNoKGNtcHQpO1xuICAgICAgdmFyIHJvb3QgPSB1bnZpc2l0ZWRbMF07XG4gICAgICB2aXNpdEluQ29tcG9uZW50KHJvb3QsIGNtcHQpO1xuICAgICAgc2VsZi5iZnMoe1xuICAgICAgICBkaXJlY3RlZDogZmFsc2UsXG4gICAgICAgIHJvb3RzOiByb290LFxuICAgICAgICB2aXNpdDogZnVuY3Rpb24gdmlzaXQodikge1xuICAgICAgICAgIHJldHVybiB2aXNpdEluQ29tcG9uZW50KHYsIGNtcHQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNtcHQuZm9yRWFjaChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBub2RlLmNvbm5lY3RlZEVkZ2VzKCkuZm9yRWFjaChmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIC8vIGNvbm5lY3RlZEVkZ2VzKCkgdXN1YWxseSBjYWNoZWRcbiAgICAgICAgICBpZiAoc2VsZi5oYXMoZSkgJiYgY21wdC5oYXMoZS5zb3VyY2UoKSkgJiYgY21wdC5oYXMoZS50YXJnZXQoKSkpIHtcbiAgICAgICAgICAgIC8vIGhhcygpIGlzIGNoZWFwXG4gICAgICAgICAgICBjbXB0Lm1lcmdlKGUpOyAvLyBmb3JFYWNoKCkgb25seSBjb25zaWRlcnMgbm9kZXMgLS0gc2V0cyBOIGF0IGNhbGwgdGltZVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGRvIHtcbiAgICAgIF9sb29wKCk7XG4gICAgfSB3aGlsZSAodW52aXNpdGVkLmxlbmd0aCA+IDApO1xuICAgIHJldHVybiBjb21wb25lbnRzO1xuICB9LFxuICBjb21wb25lbnQ6IGZ1bmN0aW9uIGNvbXBvbmVudCgpIHtcbiAgICB2YXIgZWxlID0gdGhpc1swXTtcbiAgICByZXR1cm4gZWxlLmN5KCkubXV0YWJsZUVsZW1lbnRzKCkuY29tcG9uZW50cyhlbGUpWzBdO1xuICB9XG59KTtcbmVsZXNmbiQyLmNvbXBvbmVudHNPZiA9IGVsZXNmbiQyLmNvbXBvbmVudHM7XG5cbi8vIHJlcHJlc2VudHMgYSBzZXQgb2Ygbm9kZXMsIGVkZ2VzLCBvciBib3RoIHRvZ2V0aGVyXG52YXIgQ29sbGVjdGlvbiA9IGZ1bmN0aW9uIENvbGxlY3Rpb24oY3ksIGVsZW1lbnRzKSB7XG4gIHZhciB1bmlxdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IGZhbHNlO1xuICB2YXIgcmVtb3ZlZCA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDogZmFsc2U7XG4gIGlmIChjeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXJyb3IoJ0EgY29sbGVjdGlvbiBtdXN0IGhhdmUgYSByZWZlcmVuY2UgdG8gdGhlIGNvcmUnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIG1hcCA9IG5ldyBNYXAkMigpO1xuICB2YXIgY3JlYXRlZEVsZW1lbnRzID0gZmFsc2U7XG4gIGlmICghZWxlbWVudHMpIHtcbiAgICBlbGVtZW50cyA9IFtdO1xuICB9IGVsc2UgaWYgKGVsZW1lbnRzLmxlbmd0aCA+IDAgJiYgcGxhaW5PYmplY3QoZWxlbWVudHNbMF0pICYmICFlbGVtZW50KGVsZW1lbnRzWzBdKSkge1xuICAgIGNyZWF0ZWRFbGVtZW50cyA9IHRydWU7XG5cbiAgICAvLyBtYWtlIGVsZW1lbnRzIGZyb20ganNvbiBhbmQgcmVzdG9yZSBhbGwgYXQgb25jZSBsYXRlclxuICAgIHZhciBlbGVzID0gW107XG4gICAgdmFyIGVsZXNJZHMgPSBuZXcgU2V0JDEoKTtcbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IGVsZW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgdmFyIGpzb24gPSBlbGVtZW50c1tpXTtcbiAgICAgIGlmIChqc29uLmRhdGEgPT0gbnVsbCkge1xuICAgICAgICBqc29uLmRhdGEgPSB7fTtcbiAgICAgIH1cbiAgICAgIHZhciBfZGF0YSA9IGpzb24uZGF0YTtcblxuICAgICAgLy8gbWFrZSBzdXJlIG5ld2x5IGNyZWF0ZWQgZWxlbWVudHMgaGF2ZSB2YWxpZCBpZHNcbiAgICAgIGlmIChfZGF0YS5pZCA9PSBudWxsKSB7XG4gICAgICAgIF9kYXRhLmlkID0gdXVpZCgpO1xuICAgICAgfSBlbHNlIGlmIChjeS5oYXNFbGVtZW50V2l0aElkKF9kYXRhLmlkKSB8fCBlbGVzSWRzLmhhcyhfZGF0YS5pZCkpIHtcbiAgICAgICAgY29udGludWU7IC8vIGNhbid0IGNyZWF0ZSBlbGVtZW50IGlmIHByaW9yIGlkIGFscmVhZHkgZXhpc3RzXG4gICAgICB9XG5cbiAgICAgIHZhciBlbGUgPSBuZXcgRWxlbWVudChjeSwganNvbiwgZmFsc2UpO1xuICAgICAgZWxlcy5wdXNoKGVsZSk7XG4gICAgICBlbGVzSWRzLmFkZChfZGF0YS5pZCk7XG4gICAgfVxuICAgIGVsZW1lbnRzID0gZWxlcztcbiAgfVxuICB0aGlzLmxlbmd0aCA9IDA7XG4gIGZvciAodmFyIF9pID0gMCwgX2wgPSBlbGVtZW50cy5sZW5ndGg7IF9pIDwgX2w7IF9pKyspIHtcbiAgICB2YXIgZWxlbWVudCQxID0gZWxlbWVudHNbX2ldWzBdOyAvLyBbMF0gaW4gY2FzZSBlbGVtZW50cyBpcyBhbiBhcnJheSBvZiBjb2xsZWN0aW9ucywgcmF0aGVyIHRoYW4gYXJyYXkgb2YgZWxlbWVudHNcbiAgICBpZiAoZWxlbWVudCQxID09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICB2YXIgaWQgPSBlbGVtZW50JDEuX3ByaXZhdGUuZGF0YS5pZDtcbiAgICBpZiAoIXVuaXF1ZSB8fCAhbWFwLmhhcyhpZCkpIHtcbiAgICAgIGlmICh1bmlxdWUpIHtcbiAgICAgICAgbWFwLnNldChpZCwge1xuICAgICAgICAgIGluZGV4OiB0aGlzLmxlbmd0aCxcbiAgICAgICAgICBlbGU6IGVsZW1lbnQkMVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXNbdGhpcy5sZW5ndGhdID0gZWxlbWVudCQxO1xuICAgICAgdGhpcy5sZW5ndGgrKztcbiAgICB9XG4gIH1cbiAgdGhpcy5fcHJpdmF0ZSA9IHtcbiAgICBlbGVzOiB0aGlzLFxuICAgIGN5OiBjeSxcbiAgICBnZXQgbWFwKCkge1xuICAgICAgaWYgKHRoaXMubGF6eU1hcCA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVidWlsZE1hcCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMubGF6eU1hcDtcbiAgICB9LFxuICAgIHNldCBtYXAobSkge1xuICAgICAgdGhpcy5sYXp5TWFwID0gbTtcbiAgICB9LFxuICAgIHJlYnVpbGRNYXA6IGZ1bmN0aW9uIHJlYnVpbGRNYXAoKSB7XG4gICAgICB2YXIgbSA9IHRoaXMubGF6eU1hcCA9IG5ldyBNYXAkMigpO1xuICAgICAgdmFyIGVsZXMgPSB0aGlzLmVsZXM7XG4gICAgICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgPCBlbGVzLmxlbmd0aDsgX2kyKyspIHtcbiAgICAgICAgdmFyIF9lbGUgPSBlbGVzW19pMl07XG4gICAgICAgIG0uc2V0KF9lbGUuaWQoKSwge1xuICAgICAgICAgIGluZGV4OiBfaTIsXG4gICAgICAgICAgZWxlOiBfZWxlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgaWYgKHVuaXF1ZSkge1xuICAgIHRoaXMuX3ByaXZhdGUubWFwID0gbWFwO1xuICB9XG5cbiAgLy8gcmVzdG9yZSB0aGUgZWxlbWVudHMgaWYgd2UgY3JlYXRlZCB0aGVtIGZyb20ganNvblxuICBpZiAoY3JlYXRlZEVsZW1lbnRzICYmICFyZW1vdmVkKSB7XG4gICAgdGhpcy5yZXN0b3JlKCk7XG4gIH1cbn07XG5cbi8vIEZ1bmN0aW9uc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLyBrZWVwIHRoZSBwcm90b3R5cGVzIGluIHN5bmMgKGFuIGVsZW1lbnQgaGFzIHRoZSBzYW1lIGZ1bmN0aW9ucyBhcyBhIGNvbGxlY3Rpb24pXG4vLyBhbmQgdXNlIGVsZWZuIGFuZCBlbGVzZm4gYXMgc2hvcnRoYW5kcyB0byB0aGUgcHJvdG90eXBlc1xudmFyIGVsZXNmbiQxID0gRWxlbWVudC5wcm90b3R5cGUgPSBDb2xsZWN0aW9uLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQXJyYXkucHJvdG90eXBlKTtcbmVsZXNmbiQxLmluc3RhbmNlU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gJ2NvbGxlY3Rpb24nO1xufTtcbmVsZXNmbiQxLnNwYXduID0gZnVuY3Rpb24gKGVsZXMsIHVuaXF1ZSkge1xuICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhpcy5jeSgpLCBlbGVzLCB1bmlxdWUpO1xufTtcbmVsZXNmbiQxLnNwYXduU2VsZiA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuc3Bhd24odGhpcyk7XG59O1xuZWxlc2ZuJDEuY3kgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLl9wcml2YXRlLmN5O1xufTtcbmVsZXNmbiQxLnJlbmRlcmVyID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5jeS5yZW5kZXJlcigpO1xufTtcbmVsZXNmbiQxLmVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzWzBdO1xufTtcbmVsZXNmbiQxLmNvbGxlY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChjb2xsZWN0aW9uKHRoaXMpKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0gZWxzZSB7XG4gICAgLy8gYW4gZWxlbWVudFxuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbih0aGlzLl9wcml2YXRlLmN5LCBbdGhpc10pO1xuICB9XG59O1xuZWxlc2ZuJDEudW5pcXVlID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhpcy5fcHJpdmF0ZS5jeSwgdGhpcywgdHJ1ZSk7XG59O1xuZWxlc2ZuJDEuaGFzRWxlbWVudFdpdGhJZCA9IGZ1bmN0aW9uIChpZCkge1xuICBpZCA9ICcnICsgaWQ7IC8vIGlkIG11c3QgYmUgc3RyaW5nXG5cbiAgcmV0dXJuIHRoaXMuX3ByaXZhdGUubWFwLmhhcyhpZCk7XG59O1xuZWxlc2ZuJDEuZ2V0RWxlbWVudEJ5SWQgPSBmdW5jdGlvbiAoaWQpIHtcbiAgaWQgPSAnJyArIGlkOyAvLyBpZCBtdXN0IGJlIHN0cmluZ1xuXG4gIHZhciBjeSA9IHRoaXMuX3ByaXZhdGUuY3k7XG4gIHZhciBlbnRyeSA9IHRoaXMuX3ByaXZhdGUubWFwLmdldChpZCk7XG4gIHJldHVybiBlbnRyeSA/IGVudHJ5LmVsZSA6IG5ldyBDb2xsZWN0aW9uKGN5KTsgLy8gZ2V0IGVsZSBvciBlbXB0eSBjb2xsZWN0aW9uXG59O1xuXG5lbGVzZm4kMS4kaWQgPSBlbGVzZm4kMS5nZXRFbGVtZW50QnlJZDtcbmVsZXNmbiQxLnBvb2xJbmRleCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGN5ID0gdGhpcy5fcHJpdmF0ZS5jeTtcbiAgdmFyIGVsZXMgPSBjeS5fcHJpdmF0ZS5lbGVtZW50cztcbiAgdmFyIGlkID0gdGhpc1swXS5fcHJpdmF0ZS5kYXRhLmlkO1xuICByZXR1cm4gZWxlcy5fcHJpdmF0ZS5tYXAuZ2V0KGlkKS5pbmRleDtcbn07XG5lbGVzZm4kMS5pbmRleE9mID0gZnVuY3Rpb24gKGVsZSkge1xuICB2YXIgaWQgPSBlbGVbMF0uX3ByaXZhdGUuZGF0YS5pZDtcbiAgcmV0dXJuIHRoaXMuX3ByaXZhdGUubWFwLmdldChpZCkuaW5kZXg7XG59O1xuZWxlc2ZuJDEuaW5kZXhPZklkID0gZnVuY3Rpb24gKGlkKSB7XG4gIGlkID0gJycgKyBpZDsgLy8gaWQgbXVzdCBiZSBzdHJpbmdcblxuICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5tYXAuZ2V0KGlkKS5pbmRleDtcbn07XG5lbGVzZm4kMS5qc29uID0gZnVuY3Rpb24gKG9iaikge1xuICB2YXIgZWxlID0gdGhpcy5lbGVtZW50KCk7XG4gIHZhciBjeSA9IHRoaXMuY3koKTtcbiAgaWYgKGVsZSA9PSBudWxsICYmIG9iaikge1xuICAgIHJldHVybiB0aGlzO1xuICB9IC8vIGNhbid0IHNldCB0byBubyBlbGVzXG5cbiAgaWYgKGVsZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSAvLyBjYW4ndCBnZXQgZnJvbSBubyBlbGVzXG5cbiAgdmFyIHAgPSBlbGUuX3ByaXZhdGU7XG4gIGlmIChwbGFpbk9iamVjdChvYmopKSB7XG4gICAgLy8gc2V0XG5cbiAgICBjeS5zdGFydEJhdGNoKCk7XG4gICAgaWYgKG9iai5kYXRhKSB7XG4gICAgICBlbGUuZGF0YShvYmouZGF0YSk7XG4gICAgICB2YXIgX2RhdGEyID0gcC5kYXRhO1xuICAgICAgaWYgKGVsZS5pc0VkZ2UoKSkge1xuICAgICAgICAvLyBzb3VyY2UgYW5kIHRhcmdldCBhcmUgaW1tdXRhYmxlIHZpYSBkYXRhKClcbiAgICAgICAgdmFyIG1vdmUgPSBmYWxzZTtcbiAgICAgICAgdmFyIHNwZWMgPSB7fTtcbiAgICAgICAgdmFyIHNyYyA9IG9iai5kYXRhLnNvdXJjZTtcbiAgICAgICAgdmFyIHRndCA9IG9iai5kYXRhLnRhcmdldDtcbiAgICAgICAgaWYgKHNyYyAhPSBudWxsICYmIHNyYyAhPSBfZGF0YTIuc291cmNlKSB7XG4gICAgICAgICAgc3BlYy5zb3VyY2UgPSAnJyArIHNyYzsgLy8gaWQgbXVzdCBiZSBzdHJpbmdcbiAgICAgICAgICBtb3ZlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGd0ICE9IG51bGwgJiYgdGd0ICE9IF9kYXRhMi50YXJnZXQpIHtcbiAgICAgICAgICBzcGVjLnRhcmdldCA9ICcnICsgdGd0OyAvLyBpZCBtdXN0IGJlIHN0cmluZ1xuICAgICAgICAgIG1vdmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb3ZlKSB7XG4gICAgICAgICAgZWxlID0gZWxlLm1vdmUoc3BlYyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHBhcmVudCBpcyBpbW11dGFibGUgdmlhIGRhdGEoKVxuICAgICAgICB2YXIgbmV3UGFyZW50VmFsU3BlY2QgPSAoJ3BhcmVudCcgaW4gb2JqLmRhdGEpO1xuICAgICAgICB2YXIgcGFyZW50ID0gb2JqLmRhdGEucGFyZW50O1xuICAgICAgICBpZiAobmV3UGFyZW50VmFsU3BlY2QgJiYgKHBhcmVudCAhPSBudWxsIHx8IF9kYXRhMi5wYXJlbnQgIT0gbnVsbCkgJiYgcGFyZW50ICE9IF9kYXRhMi5wYXJlbnQpIHtcbiAgICAgICAgICBpZiAocGFyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIGNhbid0IHNldCB1bmRlZmluZWQgaW1wZXJhdGl2ZWx5LCBzbyB1c2UgbnVsbFxuICAgICAgICAgICAgcGFyZW50ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHBhcmVudCAhPSBudWxsKSB7XG4gICAgICAgICAgICBwYXJlbnQgPSAnJyArIHBhcmVudDsgLy8gaWQgbXVzdCBiZSBzdHJpbmdcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbGUgPSBlbGUubW92ZSh7XG4gICAgICAgICAgICBwYXJlbnQ6IHBhcmVudFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvYmoucG9zaXRpb24pIHtcbiAgICAgIGVsZS5wb3NpdGlvbihvYmoucG9zaXRpb24pO1xuICAgIH1cblxuICAgIC8vIGlnbm9yZSBncm91cCAtLSBpbW11dGFibGVcblxuICAgIHZhciBjaGVja1N3aXRjaCA9IGZ1bmN0aW9uIGNoZWNrU3dpdGNoKGssIHRydWVGbk5hbWUsIGZhbHNlRm5OYW1lKSB7XG4gICAgICB2YXIgb2JqX2sgPSBvYmpba107XG4gICAgICBpZiAob2JqX2sgIT0gbnVsbCAmJiBvYmpfayAhPT0gcFtrXSkge1xuICAgICAgICBpZiAob2JqX2spIHtcbiAgICAgICAgICBlbGVbdHJ1ZUZuTmFtZV0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbGVbZmFsc2VGbk5hbWVdKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGNoZWNrU3dpdGNoKCdyZW1vdmVkJywgJ3JlbW92ZScsICdyZXN0b3JlJyk7XG4gICAgY2hlY2tTd2l0Y2goJ3NlbGVjdGVkJywgJ3NlbGVjdCcsICd1bnNlbGVjdCcpO1xuICAgIGNoZWNrU3dpdGNoKCdzZWxlY3RhYmxlJywgJ3NlbGVjdGlmeScsICd1bnNlbGVjdGlmeScpO1xuICAgIGNoZWNrU3dpdGNoKCdsb2NrZWQnLCAnbG9jaycsICd1bmxvY2snKTtcbiAgICBjaGVja1N3aXRjaCgnZ3JhYmJhYmxlJywgJ2dyYWJpZnknLCAndW5ncmFiaWZ5Jyk7XG4gICAgY2hlY2tTd2l0Y2goJ3Bhbm5hYmxlJywgJ3BhbmlmeScsICd1bnBhbmlmeScpO1xuICAgIGlmIChvYmouY2xhc3NlcyAhPSBudWxsKSB7XG4gICAgICBlbGUuY2xhc3NlcyhvYmouY2xhc3Nlcyk7XG4gICAgfVxuICAgIGN5LmVuZEJhdGNoKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0gZWxzZSBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBnZXRcblxuICAgIHZhciBqc29uID0ge1xuICAgICAgZGF0YTogY29weShwLmRhdGEpLFxuICAgICAgcG9zaXRpb246IGNvcHkocC5wb3NpdGlvbiksXG4gICAgICBncm91cDogcC5ncm91cCxcbiAgICAgIHJlbW92ZWQ6IHAucmVtb3ZlZCxcbiAgICAgIHNlbGVjdGVkOiBwLnNlbGVjdGVkLFxuICAgICAgc2VsZWN0YWJsZTogcC5zZWxlY3RhYmxlLFxuICAgICAgbG9ja2VkOiBwLmxvY2tlZCxcbiAgICAgIGdyYWJiYWJsZTogcC5ncmFiYmFibGUsXG4gICAgICBwYW5uYWJsZTogcC5wYW5uYWJsZSxcbiAgICAgIGNsYXNzZXM6IG51bGxcbiAgICB9O1xuICAgIGpzb24uY2xhc3NlcyA9ICcnO1xuICAgIHZhciBpID0gMDtcbiAgICBwLmNsYXNzZXMuZm9yRWFjaChmdW5jdGlvbiAoY2xzKSB7XG4gICAgICByZXR1cm4ganNvbi5jbGFzc2VzICs9IGkrKyA9PT0gMCA/IGNscyA6ICcgJyArIGNscztcbiAgICB9KTtcbiAgICByZXR1cm4ganNvbjtcbiAgfVxufTtcbmVsZXNmbiQxLmpzb25zID0gZnVuY3Rpb24gKCkge1xuICB2YXIganNvbnMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVsZSA9IHRoaXNbaV07XG4gICAgdmFyIGpzb24gPSBlbGUuanNvbigpO1xuICAgIGpzb25zLnB1c2goanNvbik7XG4gIH1cbiAgcmV0dXJuIGpzb25zO1xufTtcbmVsZXNmbiQxLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICB2YXIgY3kgPSB0aGlzLmN5KCk7XG4gIHZhciBlbGVzQXJyID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBlbGUgPSB0aGlzW2ldO1xuICAgIHZhciBqc29uID0gZWxlLmpzb24oKTtcbiAgICB2YXIgY2xvbmUgPSBuZXcgRWxlbWVudChjeSwganNvbiwgZmFsc2UpOyAvLyBOQiBubyByZXN0b3JlXG5cbiAgICBlbGVzQXJyLnB1c2goY2xvbmUpO1xuICB9XG4gIHJldHVybiBuZXcgQ29sbGVjdGlvbihjeSwgZWxlc0Fycik7XG59O1xuZWxlc2ZuJDEuY29weSA9IGVsZXNmbiQxLmNsb25lO1xuZWxlc2ZuJDEucmVzdG9yZSA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIG5vdGlmeVJlbmRlcmVyID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB0cnVlO1xuICB2YXIgYWRkVG9Qb29sID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB0cnVlO1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBjeSA9IHNlbGYuY3koKTtcbiAgdmFyIGN5X3AgPSBjeS5fcHJpdmF0ZTtcblxuICAvLyBjcmVhdGUgYXJyYXlzIG9mIG5vZGVzIGFuZCBlZGdlcywgc2luY2Ugd2UgbmVlZCB0b1xuICAvLyByZXN0b3JlIHRoZSBub2RlcyBmaXJzdFxuICB2YXIgbm9kZXMgPSBbXTtcbiAgdmFyIGVkZ2VzID0gW107XG4gIHZhciBlbGVtZW50cztcbiAgZm9yICh2YXIgX2kzID0gMCwgbCA9IHNlbGYubGVuZ3RoOyBfaTMgPCBsOyBfaTMrKykge1xuICAgIHZhciBlbGUgPSBzZWxmW19pM107XG4gICAgaWYgKGFkZFRvUG9vbCAmJiAhZWxlLnJlbW92ZWQoKSkge1xuICAgICAgLy8gZG9uJ3QgbmVlZCB0byBoYW5kbGUgdGhpcyBlbGVcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIGtlZXAgbm9kZXMgZmlyc3QgaW4gdGhlIGFycmF5IGFuZCBlZGdlcyBhZnRlclxuICAgIGlmIChlbGUuaXNOb2RlKCkpIHtcbiAgICAgIC8vIHB1dCB0byBmcm9udCBvZiBhcnJheSBpZiBub2RlXG4gICAgICBub2Rlcy5wdXNoKGVsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHB1dCB0byBlbmQgb2YgYXJyYXkgaWYgZWRnZVxuICAgICAgZWRnZXMucHVzaChlbGUpO1xuICAgIH1cbiAgfVxuICBlbGVtZW50cyA9IG5vZGVzLmNvbmNhdChlZGdlcyk7XG4gIHZhciBpO1xuICB2YXIgcmVtb3ZlRnJvbUVsZW1lbnRzID0gZnVuY3Rpb24gcmVtb3ZlRnJvbUVsZW1lbnRzKCkge1xuICAgIGVsZW1lbnRzLnNwbGljZShpLCAxKTtcbiAgICBpLS07XG4gIH07XG5cbiAgLy8gbm93LCByZXN0b3JlIGVhY2ggZWxlbWVudFxuICBmb3IgKGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgX2VsZTIgPSBlbGVtZW50c1tpXTtcbiAgICB2YXIgX3ByaXZhdGUgPSBfZWxlMi5fcHJpdmF0ZTtcbiAgICB2YXIgX2RhdGEzID0gX3ByaXZhdGUuZGF0YTtcblxuICAgIC8vIHRoZSB0cmF2ZXJzYWwgY2FjaGUgc2hvdWxkIHN0YXJ0IGZyZXNoIHdoZW4gZWxlIGlzIGFkZGVkXG4gICAgX2VsZTIuY2xlYXJUcmF2ZXJzYWxDYWNoZSgpO1xuXG4gICAgLy8gc2V0IGlkIGFuZCB2YWxpZGF0ZVxuICAgIGlmICghYWRkVG9Qb29sICYmICFfcHJpdmF0ZS5yZW1vdmVkKSA7IGVsc2UgaWYgKF9kYXRhMy5pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBfZGF0YTMuaWQgPSB1dWlkKCk7XG4gICAgfSBlbHNlIGlmIChudW1iZXIkMShfZGF0YTMuaWQpKSB7XG4gICAgICBfZGF0YTMuaWQgPSAnJyArIF9kYXRhMy5pZDsgLy8gbm93IGl0J3MgYSBzdHJpbmdcbiAgICB9IGVsc2UgaWYgKGVtcHR5U3RyaW5nKF9kYXRhMy5pZCkgfHwgIXN0cmluZyhfZGF0YTMuaWQpKSB7XG4gICAgICBlcnJvcignQ2FuIG5vdCBjcmVhdGUgZWxlbWVudCB3aXRoIGludmFsaWQgc3RyaW5nIElEIGAnICsgX2RhdGEzLmlkICsgJ2AnKTtcblxuICAgICAgLy8gY2FuJ3QgY3JlYXRlIGVsZW1lbnQgaWYgaXQgaGFzIGVtcHR5IHN0cmluZyBhcyBpZCBvciBub24tc3RyaW5nIGlkXG4gICAgICByZW1vdmVGcm9tRWxlbWVudHMoKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH0gZWxzZSBpZiAoY3kuaGFzRWxlbWVudFdpdGhJZChfZGF0YTMuaWQpKSB7XG4gICAgICBlcnJvcignQ2FuIG5vdCBjcmVhdGUgc2Vjb25kIGVsZW1lbnQgd2l0aCBJRCBgJyArIF9kYXRhMy5pZCArICdgJyk7XG5cbiAgICAgIC8vIGNhbid0IGNyZWF0ZSBlbGVtZW50IGlmIG9uZSBhbHJlYWR5IGhhcyB0aGF0IGlkXG4gICAgICByZW1vdmVGcm9tRWxlbWVudHMoKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICB2YXIgaWQgPSBfZGF0YTMuaWQ7IC8vIGlkIGlzIGZpbmFsaXNlZCwgbm93IGxldCdzIGtlZXAgYSByZWZcblxuICAgIGlmIChfZWxlMi5pc05vZGUoKSkge1xuICAgICAgLy8gZXh0cmEgY2hlY2tzIGZvciBub2Rlc1xuICAgICAgdmFyIHBvcyA9IF9wcml2YXRlLnBvc2l0aW9uO1xuXG4gICAgICAvLyBtYWtlIHN1cmUgdGhlIG5vZGVzIGhhdmUgYSBkZWZpbmVkIHBvc2l0aW9uXG5cbiAgICAgIGlmIChwb3MueCA9PSBudWxsKSB7XG4gICAgICAgIHBvcy54ID0gMDtcbiAgICAgIH1cbiAgICAgIGlmIChwb3MueSA9PSBudWxsKSB7XG4gICAgICAgIHBvcy55ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKF9lbGUyLmlzRWRnZSgpKSB7XG4gICAgICAvLyBleHRyYSBjaGVja3MgZm9yIGVkZ2VzXG5cbiAgICAgIHZhciBlZGdlID0gX2VsZTI7XG4gICAgICB2YXIgZmllbGRzID0gWydzb3VyY2UnLCAndGFyZ2V0J107XG4gICAgICB2YXIgZmllbGRzTGVuZ3RoID0gZmllbGRzLmxlbmd0aDtcbiAgICAgIHZhciBiYWRTb3VyY2VPclRhcmdldCA9IGZhbHNlO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBmaWVsZHNMZW5ndGg7IGorKykge1xuICAgICAgICB2YXIgZmllbGQgPSBmaWVsZHNbal07XG4gICAgICAgIHZhciB2YWwgPSBfZGF0YTNbZmllbGRdO1xuICAgICAgICBpZiAobnVtYmVyJDEodmFsKSkge1xuICAgICAgICAgIHZhbCA9IF9kYXRhM1tmaWVsZF0gPSAnJyArIF9kYXRhM1tmaWVsZF07IC8vIG5vdyBzdHJpbmdcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWwgPT0gbnVsbCB8fCB2YWwgPT09ICcnKSB7XG4gICAgICAgICAgLy8gY2FuJ3QgY3JlYXRlIGlmIHNvdXJjZSBvciB0YXJnZXQgaXMgbm90IGRlZmluZWQgcHJvcGVybHlcbiAgICAgICAgICBlcnJvcignQ2FuIG5vdCBjcmVhdGUgZWRnZSBgJyArIGlkICsgJ2Agd2l0aCB1bnNwZWNpZmllZCAnICsgZmllbGQpO1xuICAgICAgICAgIGJhZFNvdXJjZU9yVGFyZ2V0ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICghY3kuaGFzRWxlbWVudFdpdGhJZCh2YWwpKSB7XG4gICAgICAgICAgLy8gY2FuJ3QgY3JlYXRlIGVkZ2UgaWYgb25lIG9mIGl0cyBub2RlcyBkb2Vzbid0IGV4aXN0XG4gICAgICAgICAgZXJyb3IoJ0NhbiBub3QgY3JlYXRlIGVkZ2UgYCcgKyBpZCArICdgIHdpdGggbm9uZXhpc3RhbnQgJyArIGZpZWxkICsgJyBgJyArIHZhbCArICdgJyk7XG4gICAgICAgICAgYmFkU291cmNlT3JUYXJnZXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoYmFkU291cmNlT3JUYXJnZXQpIHtcbiAgICAgICAgcmVtb3ZlRnJvbUVsZW1lbnRzKCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfSAvLyBjYW4ndCBjcmVhdGUgdGhpc1xuXG4gICAgICB2YXIgc3JjID0gY3kuZ2V0RWxlbWVudEJ5SWQoX2RhdGEzLnNvdXJjZSk7XG4gICAgICB2YXIgdGd0ID0gY3kuZ2V0RWxlbWVudEJ5SWQoX2RhdGEzLnRhcmdldCk7XG5cbiAgICAgIC8vIG9ubHkgb25lIGVkZ2UgaW4gbm9kZSBpZiBsb29wXG4gICAgICBpZiAoc3JjLnNhbWUodGd0KSkge1xuICAgICAgICBzcmMuX3ByaXZhdGUuZWRnZXMucHVzaChlZGdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNyYy5fcHJpdmF0ZS5lZGdlcy5wdXNoKGVkZ2UpO1xuICAgICAgICB0Z3QuX3ByaXZhdGUuZWRnZXMucHVzaChlZGdlKTtcbiAgICAgIH1cbiAgICAgIGVkZ2UuX3ByaXZhdGUuc291cmNlID0gc3JjO1xuICAgICAgZWRnZS5fcHJpdmF0ZS50YXJnZXQgPSB0Z3Q7XG4gICAgfSAvLyBpZiBpcyBlZGdlXG5cbiAgICAvLyBjcmVhdGUgbW9jayBpZHMgLyBpbmRleGVzIG1hcHMgZm9yIGVsZW1lbnQgc28gaXQgY2FuIGJlIHVzZWQgbGlrZSBjb2xsZWN0aW9uc1xuICAgIF9wcml2YXRlLm1hcCA9IG5ldyBNYXAkMigpO1xuICAgIF9wcml2YXRlLm1hcC5zZXQoaWQsIHtcbiAgICAgIGVsZTogX2VsZTIsXG4gICAgICBpbmRleDogMFxuICAgIH0pO1xuICAgIF9wcml2YXRlLnJlbW92ZWQgPSBmYWxzZTtcbiAgICBpZiAoYWRkVG9Qb29sKSB7XG4gICAgICBjeS5hZGRUb1Bvb2woX2VsZTIpO1xuICAgIH1cbiAgfSAvLyBmb3IgZWFjaCBlbGVtZW50XG5cbiAgLy8gZG8gY29tcG91bmQgbm9kZSBzYW5pdHkgY2hlY2tzXG4gIGZvciAodmFyIF9pNCA9IDA7IF9pNCA8IG5vZGVzLmxlbmd0aDsgX2k0KyspIHtcbiAgICAvLyBlYWNoIG5vZGVcbiAgICB2YXIgbm9kZSA9IG5vZGVzW19pNF07XG4gICAgdmFyIF9kYXRhNCA9IG5vZGUuX3ByaXZhdGUuZGF0YTtcbiAgICBpZiAobnVtYmVyJDEoX2RhdGE0LnBhcmVudCkpIHtcbiAgICAgIC8vIHRoZW4gYXV0b21ha2Ugc3RyaW5nXG4gICAgICBfZGF0YTQucGFyZW50ID0gJycgKyBfZGF0YTQucGFyZW50O1xuICAgIH1cbiAgICB2YXIgcGFyZW50SWQgPSBfZGF0YTQucGFyZW50O1xuICAgIHZhciBzcGVjaWZpZWRQYXJlbnQgPSBwYXJlbnRJZCAhPSBudWxsO1xuICAgIGlmIChzcGVjaWZpZWRQYXJlbnQgfHwgbm9kZS5fcHJpdmF0ZS5wYXJlbnQpIHtcbiAgICAgIHZhciBwYXJlbnQgPSBub2RlLl9wcml2YXRlLnBhcmVudCA/IGN5LmNvbGxlY3Rpb24oKS5tZXJnZShub2RlLl9wcml2YXRlLnBhcmVudCkgOiBjeS5nZXRFbGVtZW50QnlJZChwYXJlbnRJZCk7XG4gICAgICBpZiAocGFyZW50LmVtcHR5KCkpIHtcbiAgICAgICAgLy8gbm9uLWV4aXN0YW50IHBhcmVudDsganVzdCByZW1vdmUgaXRcbiAgICAgICAgX2RhdGE0LnBhcmVudCA9IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSBpZiAocGFyZW50WzBdLnJlbW92ZWQoKSkge1xuICAgICAgICB3YXJuKCdOb2RlIGFkZGVkIHdpdGggbWlzc2luZyBwYXJlbnQsIHJlZmVyZW5jZSB0byBwYXJlbnQgcmVtb3ZlZCcpO1xuICAgICAgICBfZGF0YTQucGFyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICBub2RlLl9wcml2YXRlLnBhcmVudCA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgc2VsZkFzUGFyZW50ID0gZmFsc2U7XG4gICAgICAgIHZhciBhbmNlc3RvciA9IHBhcmVudDtcbiAgICAgICAgd2hpbGUgKCFhbmNlc3Rvci5lbXB0eSgpKSB7XG4gICAgICAgICAgaWYgKG5vZGUuc2FtZShhbmNlc3RvcikpIHtcbiAgICAgICAgICAgIC8vIG1hcmsgc2VsZiBhcyBwYXJlbnQgYW5kIHJlbW92ZSBmcm9tIGRhdGFcbiAgICAgICAgICAgIHNlbGZBc1BhcmVudCA9IHRydWU7XG4gICAgICAgICAgICBfZGF0YTQucGFyZW50ID0gdW5kZWZpbmVkOyAvLyByZW1vdmUgcGFyZW50IHJlZmVyZW5jZVxuXG4gICAgICAgICAgICAvLyBleGl0IG9yIHdlIGxvb3AgZm9yZXZlclxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFuY2VzdG9yID0gYW5jZXN0b3IucGFyZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzZWxmQXNQYXJlbnQpIHtcbiAgICAgICAgICAvLyBjb25uZWN0IHdpdGggY2hpbGRyZW5cbiAgICAgICAgICBwYXJlbnRbMF0uX3ByaXZhdGUuY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICAgICAgICBub2RlLl9wcml2YXRlLnBhcmVudCA9IHBhcmVudFswXTtcblxuICAgICAgICAgIC8vIGxldCB0aGUgY29yZSBrbm93IHdlIGhhdmUgYSBjb21wb3VuZCBncmFwaFxuICAgICAgICAgIGN5X3AuaGFzQ29tcG91bmROb2RlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gLy8gZWxzZVxuICAgIH0gLy8gaWYgc3BlY2lmaWVkIHBhcmVudFxuICB9IC8vIGZvciBlYWNoIG5vZGVcblxuICBpZiAoZWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgIHZhciByZXN0b3JlZCA9IGVsZW1lbnRzLmxlbmd0aCA9PT0gc2VsZi5sZW5ndGggPyBzZWxmIDogbmV3IENvbGxlY3Rpb24oY3ksIGVsZW1lbnRzKTtcbiAgICBmb3IgKHZhciBfaTUgPSAwOyBfaTUgPCByZXN0b3JlZC5sZW5ndGg7IF9pNSsrKSB7XG4gICAgICB2YXIgX2VsZTMgPSByZXN0b3JlZFtfaTVdO1xuICAgICAgaWYgKF9lbGUzLmlzTm9kZSgpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBhZGRpbmcgYW4gZWRnZSBpbnZhbGlkYXRlcyB0aGUgdHJhdmVyc2FsIGNhY2hlcyBmb3IgdGhlIHBhcmFsbGVsIGVkZ2VzXG4gICAgICBfZWxlMy5wYXJhbGxlbEVkZ2VzKCkuY2xlYXJUcmF2ZXJzYWxDYWNoZSgpO1xuXG4gICAgICAvLyBhZGRpbmcgYW4gZWRnZSBpbnZhbGlkYXRlcyB0aGUgdHJhdmVyc2FsIGNhY2hlIGZvciB0aGUgY29ubmVjdGVkIG5vZGVzXG4gICAgICBfZWxlMy5zb3VyY2UoKS5jbGVhclRyYXZlcnNhbENhY2hlKCk7XG4gICAgICBfZWxlMy50YXJnZXQoKS5jbGVhclRyYXZlcnNhbENhY2hlKCk7XG4gICAgfVxuICAgIHZhciB0b1VwZGF0ZVN0eWxlO1xuICAgIGlmIChjeV9wLmhhc0NvbXBvdW5kTm9kZXMpIHtcbiAgICAgIHRvVXBkYXRlU3R5bGUgPSBjeS5jb2xsZWN0aW9uKCkubWVyZ2UocmVzdG9yZWQpLm1lcmdlKHJlc3RvcmVkLmNvbm5lY3RlZE5vZGVzKCkpLm1lcmdlKHJlc3RvcmVkLnBhcmVudCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdG9VcGRhdGVTdHlsZSA9IHJlc3RvcmVkO1xuICAgIH1cbiAgICB0b1VwZGF0ZVN0eWxlLmRpcnR5Q29tcG91bmRCb3VuZHNDYWNoZSgpLmRpcnR5Qm91bmRpbmdCb3hDYWNoZSgpLnVwZGF0ZVN0eWxlKG5vdGlmeVJlbmRlcmVyKTtcbiAgICBpZiAobm90aWZ5UmVuZGVyZXIpIHtcbiAgICAgIHJlc3RvcmVkLmVtaXRBbmROb3RpZnkoJ2FkZCcpO1xuICAgIH0gZWxzZSBpZiAoYWRkVG9Qb29sKSB7XG4gICAgICByZXN0b3JlZC5lbWl0KCdhZGQnKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNlbGY7IC8vIGNoYWluYWJpbGl0eVxufTtcblxuZWxlc2ZuJDEucmVtb3ZlZCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGVsZSA9IHRoaXNbMF07XG4gIHJldHVybiBlbGUgJiYgZWxlLl9wcml2YXRlLnJlbW92ZWQ7XG59O1xuZWxlc2ZuJDEuaW5zaWRlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZWxlID0gdGhpc1swXTtcbiAgcmV0dXJuIGVsZSAmJiAhZWxlLl9wcml2YXRlLnJlbW92ZWQ7XG59O1xuZWxlc2ZuJDEucmVtb3ZlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgbm90aWZ5UmVuZGVyZXIgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHRydWU7XG4gIHZhciByZW1vdmVGcm9tUG9vbCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogdHJ1ZTtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgZWxlc1RvUmVtb3ZlID0gW107XG4gIHZhciBlbGVzVG9SZW1vdmVJZHMgPSB7fTtcbiAgdmFyIGN5ID0gc2VsZi5fcHJpdmF0ZS5jeTtcblxuICAvLyBhZGQgY29ubmVjdGVkIGVkZ2VzXG4gIGZ1bmN0aW9uIGFkZENvbm5lY3RlZEVkZ2VzKG5vZGUpIHtcbiAgICB2YXIgZWRnZXMgPSBub2RlLl9wcml2YXRlLmVkZ2VzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWRnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGFkZChlZGdlc1tpXSk7XG4gICAgfVxuICB9XG5cbiAgLy8gYWRkIGRlc2NlbmRhbnQgbm9kZXNcbiAgZnVuY3Rpb24gYWRkQ2hpbGRyZW4obm9kZSkge1xuICAgIHZhciBjaGlsZHJlbiA9IG5vZGUuX3ByaXZhdGUuY2hpbGRyZW47XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgYWRkKGNoaWxkcmVuW2ldKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gYWRkKGVsZSkge1xuICAgIHZhciBhbHJlYWR5QWRkZWQgPSBlbGVzVG9SZW1vdmVJZHNbZWxlLmlkKCldO1xuICAgIGlmIChyZW1vdmVGcm9tUG9vbCAmJiBlbGUucmVtb3ZlZCgpIHx8IGFscmVhZHlBZGRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVzVG9SZW1vdmVJZHNbZWxlLmlkKCldID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGVsZS5pc05vZGUoKSkge1xuICAgICAgZWxlc1RvUmVtb3ZlLnB1c2goZWxlKTsgLy8gbm9kZXMgYXJlIHJlbW92ZWQgbGFzdFxuXG4gICAgICBhZGRDb25uZWN0ZWRFZGdlcyhlbGUpO1xuICAgICAgYWRkQ2hpbGRyZW4oZWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlc1RvUmVtb3ZlLnVuc2hpZnQoZWxlKTsgLy8gZWRnZXMgYXJlIHJlbW92ZWQgZmlyc3RcbiAgICB9XG4gIH1cblxuICAvLyBtYWtlIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHRvIHJlbW92ZVxuICAvLyAobWF5IGJlIHJlbW92aW5nIG1vcmUgdGhhbiBzcGVjaWZpZWQgZHVlIHRvIGNvbm5lY3RlZCBlZGdlcyBldGMpXG5cbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBzZWxmLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHZhciBlbGUgPSBzZWxmW2ldO1xuICAgIGFkZChlbGUpO1xuICB9XG4gIGZ1bmN0aW9uIHJlbW92ZUVkZ2VSZWYobm9kZSwgZWRnZSkge1xuICAgIHZhciBjb25uZWN0ZWRFZGdlcyA9IG5vZGUuX3ByaXZhdGUuZWRnZXM7XG4gICAgcmVtb3ZlRnJvbUFycmF5KGNvbm5lY3RlZEVkZ2VzLCBlZGdlKTtcblxuICAgIC8vIHJlbW92aW5nIGFuIGVkZ2VzIGludmFsaWRhdGVzIHRoZSB0cmF2ZXJzYWwgY2FjaGUgZm9yIGl0cyBub2Rlc1xuICAgIG5vZGUuY2xlYXJUcmF2ZXJzYWxDYWNoZSgpO1xuICB9XG4gIGZ1bmN0aW9uIHJlbW92ZVBhcmFsbGVsUmVmKHBsbEVkZ2UpIHtcbiAgICAvLyByZW1vdmluZyBhbiBlZGdlIGludmFsaWRhdGVzIHRoZSB0cmF2ZXJzYWwgY2FjaGVzIGZvciB0aGUgcGFyYWxsZWwgZWRnZXNcbiAgICBwbGxFZGdlLmNsZWFyVHJhdmVyc2FsQ2FjaGUoKTtcbiAgfVxuICB2YXIgYWx0ZXJlZFBhcmVudHMgPSBbXTtcbiAgYWx0ZXJlZFBhcmVudHMuaWRzID0ge307XG4gIGZ1bmN0aW9uIHJlbW92ZUNoaWxkUmVmKHBhcmVudCwgZWxlKSB7XG4gICAgZWxlID0gZWxlWzBdO1xuICAgIHBhcmVudCA9IHBhcmVudFswXTtcbiAgICB2YXIgY2hpbGRyZW4gPSBwYXJlbnQuX3ByaXZhdGUuY2hpbGRyZW47XG4gICAgdmFyIHBpZCA9IHBhcmVudC5pZCgpO1xuICAgIHJlbW92ZUZyb21BcnJheShjaGlsZHJlbiwgZWxlKTsgLy8gcmVtb3ZlIHBhcmVudCA9PiBjaGlsZCByZWZcblxuICAgIGVsZS5fcHJpdmF0ZS5wYXJlbnQgPSBudWxsOyAvLyByZW1vdmUgY2hpbGQgPT4gcGFyZW50IHJlZlxuXG4gICAgaWYgKCFhbHRlcmVkUGFyZW50cy5pZHNbcGlkXSkge1xuICAgICAgYWx0ZXJlZFBhcmVudHMuaWRzW3BpZF0gPSB0cnVlO1xuICAgICAgYWx0ZXJlZFBhcmVudHMucHVzaChwYXJlbnQpO1xuICAgIH1cbiAgfVxuICBzZWxmLmRpcnR5Q29tcG91bmRCb3VuZHNDYWNoZSgpO1xuICBpZiAocmVtb3ZlRnJvbVBvb2wpIHtcbiAgICBjeS5yZW1vdmVGcm9tUG9vbChlbGVzVG9SZW1vdmUpOyAvLyByZW1vdmUgZnJvbSBjb3JlIHBvb2xcbiAgfVxuXG4gIGZvciAodmFyIF9pNiA9IDA7IF9pNiA8IGVsZXNUb1JlbW92ZS5sZW5ndGg7IF9pNisrKSB7XG4gICAgdmFyIF9lbGU0ID0gZWxlc1RvUmVtb3ZlW19pNl07XG4gICAgaWYgKF9lbGU0LmlzRWRnZSgpKSB7XG4gICAgICAvLyByZW1vdmUgcmVmZXJlbmNlcyB0byB0aGlzIGVkZ2UgaW4gaXRzIGNvbm5lY3RlZCBub2Rlc1xuICAgICAgdmFyIHNyYyA9IF9lbGU0LnNvdXJjZSgpWzBdO1xuICAgICAgdmFyIHRndCA9IF9lbGU0LnRhcmdldCgpWzBdO1xuICAgICAgcmVtb3ZlRWRnZVJlZihzcmMsIF9lbGU0KTtcbiAgICAgIHJlbW92ZUVkZ2VSZWYodGd0LCBfZWxlNCk7XG4gICAgICB2YXIgcGxsRWRnZXMgPSBfZWxlNC5wYXJhbGxlbEVkZ2VzKCk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBsbEVkZ2VzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBwbGxFZGdlID0gcGxsRWRnZXNbal07XG4gICAgICAgIHJlbW92ZVBhcmFsbGVsUmVmKHBsbEVkZ2UpO1xuICAgICAgICBpZiAocGxsRWRnZS5pc0J1bmRsZWRCZXppZXIoKSkge1xuICAgICAgICAgIHBsbEVkZ2UuZGlydHlCb3VuZGluZ0JveENhY2hlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gcmVtb3ZlIHJlZmVyZW5jZSB0byBwYXJlbnRcbiAgICAgIHZhciBwYXJlbnQgPSBfZWxlNC5wYXJlbnQoKTtcbiAgICAgIGlmIChwYXJlbnQubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHJlbW92ZUNoaWxkUmVmKHBhcmVudCwgX2VsZTQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocmVtb3ZlRnJvbVBvb2wpIHtcbiAgICAgIC8vIG1hcmsgYXMgcmVtb3ZlZFxuICAgICAgX2VsZTQuX3ByaXZhdGUucmVtb3ZlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgYSBjb21wb3VuZCBncmFwaCBvciBub3RcbiAgdmFyIGVsZXNTdGlsbEluc2lkZSA9IGN5Ll9wcml2YXRlLmVsZW1lbnRzO1xuICBjeS5fcHJpdmF0ZS5oYXNDb21wb3VuZE5vZGVzID0gZmFsc2U7XG4gIGZvciAodmFyIF9pNyA9IDA7IF9pNyA8IGVsZXNTdGlsbEluc2lkZS5sZW5ndGg7IF9pNysrKSB7XG4gICAgdmFyIF9lbGU1ID0gZWxlc1N0aWxsSW5zaWRlW19pN107XG4gICAgaWYgKF9lbGU1LmlzUGFyZW50KCkpIHtcbiAgICAgIGN5Ll9wcml2YXRlLmhhc0NvbXBvdW5kTm9kZXMgPSB0cnVlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHZhciByZW1vdmVkRWxlbWVudHMgPSBuZXcgQ29sbGVjdGlvbih0aGlzLmN5KCksIGVsZXNUb1JlbW92ZSk7XG4gIGlmIChyZW1vdmVkRWxlbWVudHMuc2l6ZSgpID4gMCkge1xuICAgIC8vIG11c3QgbWFudWFsbHkgbm90aWZ5IHNpbmNlIHRyaWdnZXIgd29uJ3QgZG8gdGhpcyBhdXRvbWF0aWNhbGx5IG9uY2UgcmVtb3ZlZFxuXG4gICAgaWYgKG5vdGlmeVJlbmRlcmVyKSB7XG4gICAgICByZW1vdmVkRWxlbWVudHMuZW1pdEFuZE5vdGlmeSgncmVtb3ZlJyk7XG4gICAgfSBlbHNlIGlmIChyZW1vdmVGcm9tUG9vbCkge1xuICAgICAgcmVtb3ZlZEVsZW1lbnRzLmVtaXQoJ3JlbW92ZScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRoZSBwYXJlbnRzIHdobyB3ZXJlIG1vZGlmaWVkIGJ5IHRoZSByZW1vdmFsIG5lZWQgdGhlaXIgc3R5bGUgdXBkYXRlZFxuICBmb3IgKHZhciBfaTggPSAwOyBfaTggPCBhbHRlcmVkUGFyZW50cy5sZW5ndGg7IF9pOCsrKSB7XG4gICAgdmFyIF9lbGU2ID0gYWx0ZXJlZFBhcmVudHNbX2k4XTtcbiAgICBpZiAoIXJlbW92ZUZyb21Qb29sIHx8ICFfZWxlNi5yZW1vdmVkKCkpIHtcbiAgICAgIF9lbGU2LnVwZGF0ZVN0eWxlKCk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZW1vdmVkRWxlbWVudHM7XG59O1xuZWxlc2ZuJDEubW92ZSA9IGZ1bmN0aW9uIChzdHJ1Y3QpIHtcbiAgdmFyIGN5ID0gdGhpcy5fcHJpdmF0ZS5jeTtcbiAgdmFyIGVsZXMgPSB0aGlzO1xuXG4gIC8vIGp1c3QgY2xlYW4gdXAgcmVmcywgY2FjaGVzLCBldGMuIGluIHRoZSBzYW1lIHdheSBhcyB3aGVuIHJlbW92aW5nIGFuZCB0aGVuIHJlc3RvcmluZ1xuICAvLyAob3VyIGNhbGxzIHRvIHJlbW92ZS9yZXN0b3JlIGRvIG5vdCByZW1vdmUgZnJvbSB0aGUgZ3JhcGggb3IgbWFrZSBldmVudHMpXG4gIHZhciBub3RpZnlSZW5kZXJlciA9IGZhbHNlO1xuICB2YXIgbW9kaWZ5UG9vbCA9IGZhbHNlO1xuICB2YXIgdG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhpZCkge1xuICAgIHJldHVybiBpZCA9PSBudWxsID8gaWQgOiAnJyArIGlkO1xuICB9OyAvLyBpZCBtdXN0IGJlIHN0cmluZ1xuXG4gIGlmIChzdHJ1Y3Quc291cmNlICE9PSB1bmRlZmluZWQgfHwgc3RydWN0LnRhcmdldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIHNyY0lkID0gdG9TdHJpbmcoc3RydWN0LnNvdXJjZSk7XG4gICAgdmFyIHRndElkID0gdG9TdHJpbmcoc3RydWN0LnRhcmdldCk7XG4gICAgdmFyIHNyY0V4aXN0cyA9IHNyY0lkICE9IG51bGwgJiYgY3kuaGFzRWxlbWVudFdpdGhJZChzcmNJZCk7XG4gICAgdmFyIHRndEV4aXN0cyA9IHRndElkICE9IG51bGwgJiYgY3kuaGFzRWxlbWVudFdpdGhJZCh0Z3RJZCk7XG4gICAgaWYgKHNyY0V4aXN0cyB8fCB0Z3RFeGlzdHMpIHtcbiAgICAgIGN5LmJhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gYXZvaWQgZHVwbGljYXRlIHN0eWxlIHVwZGF0ZXNcbiAgICAgICAgZWxlcy5yZW1vdmUobm90aWZ5UmVuZGVyZXIsIG1vZGlmeVBvb2wpOyAvLyBjbGVhbiB1cCByZWZzIGV0Yy5cbiAgICAgICAgZWxlcy5lbWl0QW5kTm90aWZ5KCdtb3Zlb3V0Jyk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBlbGUgPSBlbGVzW2ldO1xuICAgICAgICAgIHZhciBfZGF0YTUgPSBlbGUuX3ByaXZhdGUuZGF0YTtcbiAgICAgICAgICBpZiAoZWxlLmlzRWRnZSgpKSB7XG4gICAgICAgICAgICBpZiAoc3JjRXhpc3RzKSB7XG4gICAgICAgICAgICAgIF9kYXRhNS5zb3VyY2UgPSBzcmNJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0Z3RFeGlzdHMpIHtcbiAgICAgICAgICAgICAgX2RhdGE1LnRhcmdldCA9IHRndElkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbGVzLnJlc3RvcmUobm90aWZ5UmVuZGVyZXIsIG1vZGlmeVBvb2wpOyAvLyBtYWtlIG5ldyByZWZzLCBzdHlsZSwgZXRjLlxuICAgICAgfSk7XG5cbiAgICAgIGVsZXMuZW1pdEFuZE5vdGlmeSgnbW92ZScpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChzdHJ1Y3QucGFyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyBtb3ZlIG5vZGUgdG8gbmV3IHBhcmVudFxuICAgIHZhciBwYXJlbnRJZCA9IHRvU3RyaW5nKHN0cnVjdC5wYXJlbnQpO1xuICAgIHZhciBwYXJlbnRFeGlzdHMgPSBwYXJlbnRJZCA9PT0gbnVsbCB8fCBjeS5oYXNFbGVtZW50V2l0aElkKHBhcmVudElkKTtcbiAgICBpZiAocGFyZW50RXhpc3RzKSB7XG4gICAgICB2YXIgcGlkVG9Bc3NpZ24gPSBwYXJlbnRJZCA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHBhcmVudElkO1xuICAgICAgY3kuYmF0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBhdm9pZCBkdXBsaWNhdGUgc3R5bGUgdXBkYXRlc1xuICAgICAgICB2YXIgdXBkYXRlZCA9IGVsZXMucmVtb3ZlKG5vdGlmeVJlbmRlcmVyLCBtb2RpZnlQb29sKTsgLy8gY2xlYW4gdXAgcmVmcyBldGMuXG4gICAgICAgIHVwZGF0ZWQuZW1pdEFuZE5vdGlmeSgnbW92ZW91dCcpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgZWxlID0gZWxlc1tpXTtcbiAgICAgICAgICB2YXIgX2RhdGE2ID0gZWxlLl9wcml2YXRlLmRhdGE7XG4gICAgICAgICAgaWYgKGVsZS5pc05vZGUoKSkge1xuICAgICAgICAgICAgX2RhdGE2LnBhcmVudCA9IHBpZFRvQXNzaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVkLnJlc3RvcmUobm90aWZ5UmVuZGVyZXIsIG1vZGlmeVBvb2wpOyAvLyBtYWtlIG5ldyByZWZzLCBzdHlsZSwgZXRjLlxuICAgICAgfSk7XG5cbiAgICAgIGVsZXMuZW1pdEFuZE5vdGlmeSgnbW92ZScpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5bZWxlc2ZuJGosIGVsZXNmbiRpLCBlbGVzZm4kaCwgZWxlc2ZuJGcsIGVsZXNmbiRmLCBkYXRhLCBlbGVzZm4kZCwgZGltZW5zaW9ucywgZWxlc2ZuJDksIGVsZXNmbiQ4LCBlbGVzZm4kNywgZWxlc2ZuJDYsIGVsZXNmbiQ1LCBlbGVzZm4kNCwgZWxlc2ZuJDMsIGVsZXNmbiQyXS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wcykge1xuICBleHRlbmQoZWxlc2ZuJDEsIHByb3BzKTtcbn0pO1xuXG52YXIgY29yZWZuJDkgPSB7XG4gIGFkZDogZnVuY3Rpb24gYWRkKG9wdHMpIHtcbiAgICB2YXIgZWxlbWVudHM7XG4gICAgdmFyIGN5ID0gdGhpcztcblxuICAgIC8vIGFkZCB0aGUgZWxlbWVudHNcbiAgICBpZiAoZWxlbWVudE9yQ29sbGVjdGlvbihvcHRzKSkge1xuICAgICAgdmFyIGVsZXMgPSBvcHRzO1xuICAgICAgaWYgKGVsZXMuX3ByaXZhdGUuY3kgPT09IGN5KSB7XG4gICAgICAgIC8vIHNhbWUgaW5zdGFuY2UgPT4ganVzdCByZXN0b3JlXG4gICAgICAgIGVsZW1lbnRzID0gZWxlcy5yZXN0b3JlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBvdGhlcndpc2UsIGNvcHkgZnJvbSBqc29uXG4gICAgICAgIHZhciBqc29ucyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgZWxlID0gZWxlc1tpXTtcbiAgICAgICAgICBqc29ucy5wdXNoKGVsZS5qc29uKCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsZW1lbnRzID0gbmV3IENvbGxlY3Rpb24oY3ksIGpzb25zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzcGVjaWZ5IGFuIGFycmF5IG9mIG9wdGlvbnNcbiAgICBlbHNlIGlmIChhcnJheShvcHRzKSkge1xuICAgICAgdmFyIF9qc29ucyA9IG9wdHM7XG4gICAgICBlbGVtZW50cyA9IG5ldyBDb2xsZWN0aW9uKGN5LCBfanNvbnMpO1xuICAgIH1cblxuICAgIC8vIHNwZWNpZnkgdmlhIG9wdHMubm9kZXMgYW5kIG9wdHMuZWRnZXNcbiAgICBlbHNlIGlmIChwbGFpbk9iamVjdChvcHRzKSAmJiAoYXJyYXkob3B0cy5ub2RlcykgfHwgYXJyYXkob3B0cy5lZGdlcykpKSB7XG4gICAgICB2YXIgZWxlc0J5R3JvdXAgPSBvcHRzO1xuICAgICAgdmFyIF9qc29uczIgPSBbXTtcbiAgICAgIHZhciBncnMgPSBbJ25vZGVzJywgJ2VkZ2VzJ107XG4gICAgICBmb3IgKHZhciBfaSA9IDAsIGlsID0gZ3JzLmxlbmd0aDsgX2kgPCBpbDsgX2krKykge1xuICAgICAgICB2YXIgZ3JvdXAgPSBncnNbX2ldO1xuICAgICAgICB2YXIgZWxlc0FycmF5ID0gZWxlc0J5R3JvdXBbZ3JvdXBdO1xuICAgICAgICBpZiAoYXJyYXkoZWxlc0FycmF5KSkge1xuICAgICAgICAgIGZvciAodmFyIGogPSAwLCBqbCA9IGVsZXNBcnJheS5sZW5ndGg7IGogPCBqbDsgaisrKSB7XG4gICAgICAgICAgICB2YXIganNvbiA9IGV4dGVuZCh7XG4gICAgICAgICAgICAgIGdyb3VwOiBncm91cFxuICAgICAgICAgICAgfSwgZWxlc0FycmF5W2pdKTtcbiAgICAgICAgICAgIF9qc29uczIucHVzaChqc29uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsZW1lbnRzID0gbmV3IENvbGxlY3Rpb24oY3ksIF9qc29uczIpO1xuICAgIH1cblxuICAgIC8vIHNwZWNpZnkgb3B0aW9ucyBmb3Igb25lIGVsZW1lbnRcbiAgICBlbHNlIHtcbiAgICAgIHZhciBfanNvbiA9IG9wdHM7XG4gICAgICBlbGVtZW50cyA9IG5ldyBFbGVtZW50KGN5LCBfanNvbikuY29sbGVjdGlvbigpO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudHM7XG4gIH0sXG4gIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKGNvbGxlY3Rpb24pIHtcbiAgICBpZiAoZWxlbWVudE9yQ29sbGVjdGlvbihjb2xsZWN0aW9uKSkgOyBlbHNlIGlmIChzdHJpbmcoY29sbGVjdGlvbikpIHtcbiAgICAgIHZhciBzZWxlY3RvciA9IGNvbGxlY3Rpb247XG4gICAgICBjb2xsZWN0aW9uID0gdGhpcy4kKHNlbGVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24ucmVtb3ZlKCk7XG4gIH1cbn07XG5cbi8qIGdsb2JhbCBGbG9hdDMyQXJyYXkgKi9cblxuLyohIEJlemllciBjdXJ2ZSBmdW5jdGlvbiBnZW5lcmF0b3IuIENvcHlyaWdodCBHYWV0YW4gUmVuYXVkZWF1LiBNSVQgTGljZW5zZTogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZSAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVDdWJpY0JlemllcihtWDEsIG1ZMSwgbVgyLCBtWTIpIHtcbiAgdmFyIE5FV1RPTl9JVEVSQVRJT05TID0gNCxcbiAgICBORVdUT05fTUlOX1NMT1BFID0gMC4wMDEsXG4gICAgU1VCRElWSVNJT05fUFJFQ0lTSU9OID0gMC4wMDAwMDAxLFxuICAgIFNVQkRJVklTSU9OX01BWF9JVEVSQVRJT05TID0gMTAsXG4gICAga1NwbGluZVRhYmxlU2l6ZSA9IDExLFxuICAgIGtTYW1wbGVTdGVwU2l6ZSA9IDEuMCAvIChrU3BsaW5lVGFibGVTaXplIC0gMS4wKSxcbiAgICBmbG9hdDMyQXJyYXlTdXBwb3J0ZWQgPSB0eXBlb2YgRmxvYXQzMkFycmF5ICE9PSAndW5kZWZpbmVkJztcblxuICAvKiBNdXN0IGNvbnRhaW4gZm91ciBhcmd1bWVudHMuICovXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoICE9PSA0KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyogQXJndW1lbnRzIG11c3QgYmUgbnVtYmVycy4gKi9cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyArK2kpIHtcbiAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1tpXSAhPT0gXCJudW1iZXJcIiB8fCBpc05hTihhcmd1bWVudHNbaV0pIHx8ICFpc0Zpbml0ZShhcmd1bWVudHNbaV0pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyogWCB2YWx1ZXMgbXVzdCBiZSBpbiB0aGUgWzAsIDFdIHJhbmdlLiAqL1xuICBtWDEgPSBNYXRoLm1pbihtWDEsIDEpO1xuICBtWDIgPSBNYXRoLm1pbihtWDIsIDEpO1xuICBtWDEgPSBNYXRoLm1heChtWDEsIDApO1xuICBtWDIgPSBNYXRoLm1heChtWDIsIDApO1xuICB2YXIgbVNhbXBsZVZhbHVlcyA9IGZsb2F0MzJBcnJheVN1cHBvcnRlZCA/IG5ldyBGbG9hdDMyQXJyYXkoa1NwbGluZVRhYmxlU2l6ZSkgOiBuZXcgQXJyYXkoa1NwbGluZVRhYmxlU2l6ZSk7XG4gIGZ1bmN0aW9uIEEoYUExLCBhQTIpIHtcbiAgICByZXR1cm4gMS4wIC0gMy4wICogYUEyICsgMy4wICogYUExO1xuICB9XG4gIGZ1bmN0aW9uIEIoYUExLCBhQTIpIHtcbiAgICByZXR1cm4gMy4wICogYUEyIC0gNi4wICogYUExO1xuICB9XG4gIGZ1bmN0aW9uIEMoYUExKSB7XG4gICAgcmV0dXJuIDMuMCAqIGFBMTtcbiAgfVxuICBmdW5jdGlvbiBjYWxjQmV6aWVyKGFULCBhQTEsIGFBMikge1xuICAgIHJldHVybiAoKEEoYUExLCBhQTIpICogYVQgKyBCKGFBMSwgYUEyKSkgKiBhVCArIEMoYUExKSkgKiBhVDtcbiAgfVxuICBmdW5jdGlvbiBnZXRTbG9wZShhVCwgYUExLCBhQTIpIHtcbiAgICByZXR1cm4gMy4wICogQShhQTEsIGFBMikgKiBhVCAqIGFUICsgMi4wICogQihhQTEsIGFBMikgKiBhVCArIEMoYUExKTtcbiAgfVxuICBmdW5jdGlvbiBuZXd0b25SYXBoc29uSXRlcmF0ZShhWCwgYUd1ZXNzVCkge1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBORVdUT05fSVRFUkFUSU9OUzsgKytfaSkge1xuICAgICAgdmFyIGN1cnJlbnRTbG9wZSA9IGdldFNsb3BlKGFHdWVzc1QsIG1YMSwgbVgyKTtcbiAgICAgIGlmIChjdXJyZW50U2xvcGUgPT09IDAuMCkge1xuICAgICAgICByZXR1cm4gYUd1ZXNzVDtcbiAgICAgIH1cbiAgICAgIHZhciBjdXJyZW50WCA9IGNhbGNCZXppZXIoYUd1ZXNzVCwgbVgxLCBtWDIpIC0gYVg7XG4gICAgICBhR3Vlc3NUIC09IGN1cnJlbnRYIC8gY3VycmVudFNsb3BlO1xuICAgIH1cbiAgICByZXR1cm4gYUd1ZXNzVDtcbiAgfVxuICBmdW5jdGlvbiBjYWxjU2FtcGxlVmFsdWVzKCkge1xuICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IGtTcGxpbmVUYWJsZVNpemU7ICsrX2kyKSB7XG4gICAgICBtU2FtcGxlVmFsdWVzW19pMl0gPSBjYWxjQmV6aWVyKF9pMiAqIGtTYW1wbGVTdGVwU2l6ZSwgbVgxLCBtWDIpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBiaW5hcnlTdWJkaXZpZGUoYVgsIGFBLCBhQikge1xuICAgIHZhciBjdXJyZW50WCxcbiAgICAgIGN1cnJlbnRULFxuICAgICAgaSA9IDA7XG4gICAgZG8ge1xuICAgICAgY3VycmVudFQgPSBhQSArIChhQiAtIGFBKSAvIDIuMDtcbiAgICAgIGN1cnJlbnRYID0gY2FsY0JlemllcihjdXJyZW50VCwgbVgxLCBtWDIpIC0gYVg7XG4gICAgICBpZiAoY3VycmVudFggPiAwLjApIHtcbiAgICAgICAgYUIgPSBjdXJyZW50VDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFBID0gY3VycmVudFQ7XG4gICAgICB9XG4gICAgfSB3aGlsZSAoTWF0aC5hYnMoY3VycmVudFgpID4gU1VCRElWSVNJT05fUFJFQ0lTSU9OICYmICsraSA8IFNVQkRJVklTSU9OX01BWF9JVEVSQVRJT05TKTtcbiAgICByZXR1cm4gY3VycmVudFQ7XG4gIH1cbiAgZnVuY3Rpb24gZ2V0VEZvclgoYVgpIHtcbiAgICB2YXIgaW50ZXJ2YWxTdGFydCA9IDAuMCxcbiAgICAgIGN1cnJlbnRTYW1wbGUgPSAxLFxuICAgICAgbGFzdFNhbXBsZSA9IGtTcGxpbmVUYWJsZVNpemUgLSAxO1xuICAgIGZvciAoOyBjdXJyZW50U2FtcGxlICE9PSBsYXN0U2FtcGxlICYmIG1TYW1wbGVWYWx1ZXNbY3VycmVudFNhbXBsZV0gPD0gYVg7ICsrY3VycmVudFNhbXBsZSkge1xuICAgICAgaW50ZXJ2YWxTdGFydCArPSBrU2FtcGxlU3RlcFNpemU7XG4gICAgfVxuICAgIC0tY3VycmVudFNhbXBsZTtcbiAgICB2YXIgZGlzdCA9IChhWCAtIG1TYW1wbGVWYWx1ZXNbY3VycmVudFNhbXBsZV0pIC8gKG1TYW1wbGVWYWx1ZXNbY3VycmVudFNhbXBsZSArIDFdIC0gbVNhbXBsZVZhbHVlc1tjdXJyZW50U2FtcGxlXSksXG4gICAgICBndWVzc0ZvclQgPSBpbnRlcnZhbFN0YXJ0ICsgZGlzdCAqIGtTYW1wbGVTdGVwU2l6ZSxcbiAgICAgIGluaXRpYWxTbG9wZSA9IGdldFNsb3BlKGd1ZXNzRm9yVCwgbVgxLCBtWDIpO1xuICAgIGlmIChpbml0aWFsU2xvcGUgPj0gTkVXVE9OX01JTl9TTE9QRSkge1xuICAgICAgcmV0dXJuIG5ld3RvblJhcGhzb25JdGVyYXRlKGFYLCBndWVzc0ZvclQpO1xuICAgIH0gZWxzZSBpZiAoaW5pdGlhbFNsb3BlID09PSAwLjApIHtcbiAgICAgIHJldHVybiBndWVzc0ZvclQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBiaW5hcnlTdWJkaXZpZGUoYVgsIGludGVydmFsU3RhcnQsIGludGVydmFsU3RhcnQgKyBrU2FtcGxlU3RlcFNpemUpO1xuICAgIH1cbiAgfVxuICB2YXIgX3ByZWNvbXB1dGVkID0gZmFsc2U7XG4gIGZ1bmN0aW9uIHByZWNvbXB1dGUoKSB7XG4gICAgX3ByZWNvbXB1dGVkID0gdHJ1ZTtcbiAgICBpZiAobVgxICE9PSBtWTEgfHwgbVgyICE9PSBtWTIpIHtcbiAgICAgIGNhbGNTYW1wbGVWYWx1ZXMoKTtcbiAgICB9XG4gIH1cbiAgdmFyIGYgPSBmdW5jdGlvbiBmKGFYKSB7XG4gICAgaWYgKCFfcHJlY29tcHV0ZWQpIHtcbiAgICAgIHByZWNvbXB1dGUoKTtcbiAgICB9XG4gICAgaWYgKG1YMSA9PT0gbVkxICYmIG1YMiA9PT0gbVkyKSB7XG4gICAgICByZXR1cm4gYVg7XG4gICAgfVxuICAgIGlmIChhWCA9PT0gMCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGlmIChhWCA9PT0gMSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIHJldHVybiBjYWxjQmV6aWVyKGdldFRGb3JYKGFYKSwgbVkxLCBtWTIpO1xuICB9O1xuICBmLmdldENvbnRyb2xQb2ludHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIFt7XG4gICAgICB4OiBtWDEsXG4gICAgICB5OiBtWTFcbiAgICB9LCB7XG4gICAgICB4OiBtWDIsXG4gICAgICB5OiBtWTJcbiAgICB9XTtcbiAgfTtcbiAgdmFyIHN0ciA9IFwiZ2VuZXJhdGVCZXppZXIoXCIgKyBbbVgxLCBtWTEsIG1YMiwgbVkyXSArIFwiKVwiO1xuICBmLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBzdHI7XG4gIH07XG4gIHJldHVybiBmO1xufVxuXG4vKiEgUnVuZ2UtS3V0dGEgc3ByaW5nIHBoeXNpY3MgZnVuY3Rpb24gZ2VuZXJhdG9yLiBBZGFwdGVkIGZyb20gRnJhbWVyLmpzLCBjb3B5cmlnaHQgS29lbiBCb2suIE1JVCBMaWNlbnNlOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlICovXG4vKiBHaXZlbiBhIHRlbnNpb24sIGZyaWN0aW9uLCBhbmQgZHVyYXRpb24sIGEgc2ltdWxhdGlvbiBhdCA2MEZQUyB3aWxsIGZpcnN0IHJ1biB3aXRob3V0IGEgZGVmaW5lZCBkdXJhdGlvbiBpbiBvcmRlciB0byBjYWxjdWxhdGUgdGhlIGZ1bGwgcGF0aC4gQSBzZWNvbmQgcGFzc1xuICAgdGhlbiBhZGp1c3RzIHRoZSB0aW1lIGRlbHRhIC0tIHVzaW5nIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGFjdHVhbCB0aW1lIGFuZCBkdXJhdGlvbiAtLSB0byBjYWxjdWxhdGUgdGhlIHBhdGggZm9yIHRoZSBkdXJhdGlvbi1jb25zdHJhaW5lZCBhbmltYXRpb24uICovXG52YXIgZ2VuZXJhdGVTcHJpbmdSSzQgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIHNwcmluZ0FjY2VsZXJhdGlvbkZvclN0YXRlKHN0YXRlKSB7XG4gICAgcmV0dXJuIC1zdGF0ZS50ZW5zaW9uICogc3RhdGUueCAtIHN0YXRlLmZyaWN0aW9uICogc3RhdGUudjtcbiAgfVxuICBmdW5jdGlvbiBzcHJpbmdFdmFsdWF0ZVN0YXRlV2l0aERlcml2YXRpdmUoaW5pdGlhbFN0YXRlLCBkdCwgZGVyaXZhdGl2ZSkge1xuICAgIHZhciBzdGF0ZSA9IHtcbiAgICAgIHg6IGluaXRpYWxTdGF0ZS54ICsgZGVyaXZhdGl2ZS5keCAqIGR0LFxuICAgICAgdjogaW5pdGlhbFN0YXRlLnYgKyBkZXJpdmF0aXZlLmR2ICogZHQsXG4gICAgICB0ZW5zaW9uOiBpbml0aWFsU3RhdGUudGVuc2lvbixcbiAgICAgIGZyaWN0aW9uOiBpbml0aWFsU3RhdGUuZnJpY3Rpb25cbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICBkeDogc3RhdGUudixcbiAgICAgIGR2OiBzcHJpbmdBY2NlbGVyYXRpb25Gb3JTdGF0ZShzdGF0ZSlcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIHNwcmluZ0ludGVncmF0ZVN0YXRlKHN0YXRlLCBkdCkge1xuICAgIHZhciBhID0ge1xuICAgICAgICBkeDogc3RhdGUudixcbiAgICAgICAgZHY6IHNwcmluZ0FjY2VsZXJhdGlvbkZvclN0YXRlKHN0YXRlKVxuICAgICAgfSxcbiAgICAgIGIgPSBzcHJpbmdFdmFsdWF0ZVN0YXRlV2l0aERlcml2YXRpdmUoc3RhdGUsIGR0ICogMC41LCBhKSxcbiAgICAgIGMgPSBzcHJpbmdFdmFsdWF0ZVN0YXRlV2l0aERlcml2YXRpdmUoc3RhdGUsIGR0ICogMC41LCBiKSxcbiAgICAgIGQgPSBzcHJpbmdFdmFsdWF0ZVN0YXRlV2l0aERlcml2YXRpdmUoc3RhdGUsIGR0LCBjKSxcbiAgICAgIGR4ZHQgPSAxLjAgLyA2LjAgKiAoYS5keCArIDIuMCAqIChiLmR4ICsgYy5keCkgKyBkLmR4KSxcbiAgICAgIGR2ZHQgPSAxLjAgLyA2LjAgKiAoYS5kdiArIDIuMCAqIChiLmR2ICsgYy5kdikgKyBkLmR2KTtcbiAgICBzdGF0ZS54ID0gc3RhdGUueCArIGR4ZHQgKiBkdDtcbiAgICBzdGF0ZS52ID0gc3RhdGUudiArIGR2ZHQgKiBkdDtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uIHNwcmluZ1JLNEZhY3RvcnkodGVuc2lvbiwgZnJpY3Rpb24sIGR1cmF0aW9uKSB7XG4gICAgdmFyIGluaXRTdGF0ZSA9IHtcbiAgICAgICAgeDogLTEsXG4gICAgICAgIHY6IDAsXG4gICAgICAgIHRlbnNpb246IG51bGwsXG4gICAgICAgIGZyaWN0aW9uOiBudWxsXG4gICAgICB9LFxuICAgICAgcGF0aCA9IFswXSxcbiAgICAgIHRpbWVfbGFwc2VkID0gMCxcbiAgICAgIHRvbGVyYW5jZSA9IDEgLyAxMDAwMCxcbiAgICAgIERUID0gMTYgLyAxMDAwLFxuICAgICAgaGF2ZV9kdXJhdGlvbixcbiAgICAgIGR0LFxuICAgICAgbGFzdF9zdGF0ZTtcbiAgICB0ZW5zaW9uID0gcGFyc2VGbG9hdCh0ZW5zaW9uKSB8fCA1MDA7XG4gICAgZnJpY3Rpb24gPSBwYXJzZUZsb2F0KGZyaWN0aW9uKSB8fCAyMDtcbiAgICBkdXJhdGlvbiA9IGR1cmF0aW9uIHx8IG51bGw7XG4gICAgaW5pdFN0YXRlLnRlbnNpb24gPSB0ZW5zaW9uO1xuICAgIGluaXRTdGF0ZS5mcmljdGlvbiA9IGZyaWN0aW9uO1xuICAgIGhhdmVfZHVyYXRpb24gPSBkdXJhdGlvbiAhPT0gbnVsbDtcblxuICAgIC8qIENhbGN1bGF0ZSB0aGUgYWN0dWFsIHRpbWUgaXQgdGFrZXMgZm9yIHRoaXMgYW5pbWF0aW9uIHRvIGNvbXBsZXRlIHdpdGggdGhlIHByb3ZpZGVkIGNvbmRpdGlvbnMuICovXG4gICAgaWYgKGhhdmVfZHVyYXRpb24pIHtcbiAgICAgIC8qIFJ1biB0aGUgc2ltdWxhdGlvbiB3aXRob3V0IGEgZHVyYXRpb24uICovXG4gICAgICB0aW1lX2xhcHNlZCA9IHNwcmluZ1JLNEZhY3RvcnkodGVuc2lvbiwgZnJpY3Rpb24pO1xuICAgICAgLyogQ29tcHV0ZSB0aGUgYWRqdXN0ZWQgdGltZSBkZWx0YS4gKi9cbiAgICAgIGR0ID0gdGltZV9sYXBzZWQgLyBkdXJhdGlvbiAqIERUO1xuICAgIH0gZWxzZSB7XG4gICAgICBkdCA9IERUO1xuICAgIH1cbiAgICBmb3IgKDs7KSB7XG4gICAgICAvKiBOZXh0L3N0ZXAgZnVuY3Rpb24gLiovXG4gICAgICBsYXN0X3N0YXRlID0gc3ByaW5nSW50ZWdyYXRlU3RhdGUobGFzdF9zdGF0ZSB8fCBpbml0U3RhdGUsIGR0KTtcbiAgICAgIC8qIFN0b3JlIHRoZSBwb3NpdGlvbi4gKi9cbiAgICAgIHBhdGgucHVzaCgxICsgbGFzdF9zdGF0ZS54KTtcbiAgICAgIHRpbWVfbGFwc2VkICs9IDE2O1xuICAgICAgLyogSWYgdGhlIGNoYW5nZSB0aHJlc2hvbGQgaXMgcmVhY2hlZCwgYnJlYWsuICovXG4gICAgICBpZiAoIShNYXRoLmFicyhsYXN0X3N0YXRlLngpID4gdG9sZXJhbmNlICYmIE1hdGguYWJzKGxhc3Rfc3RhdGUudikgPiB0b2xlcmFuY2UpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIElmIGR1cmF0aW9uIGlzIG5vdCBkZWZpbmVkLCByZXR1cm4gdGhlIGFjdHVhbCB0aW1lIHJlcXVpcmVkIGZvciBjb21wbGV0aW5nIHRoaXMgYW5pbWF0aW9uLiBPdGhlcndpc2UsIHJldHVybiBhIGNsb3N1cmUgdGhhdCBob2xkcyB0aGVcbiAgICAgICBjb21wdXRlZCBwYXRoIGFuZCByZXR1cm5zIGEgc25hcHNob3Qgb2YgdGhlIHBvc2l0aW9uIGFjY29yZGluZyB0byBhIGdpdmVuIHBlcmNlbnRDb21wbGV0ZS4gKi9cbiAgICByZXR1cm4gIWhhdmVfZHVyYXRpb24gPyB0aW1lX2xhcHNlZCA6IGZ1bmN0aW9uIChwZXJjZW50Q29tcGxldGUpIHtcbiAgICAgIHJldHVybiBwYXRoW3BlcmNlbnRDb21wbGV0ZSAqIChwYXRoLmxlbmd0aCAtIDEpIHwgMF07XG4gICAgfTtcbiAgfTtcbn0oKTtcblxudmFyIGN1YmljQmV6aWVyID0gZnVuY3Rpb24gY3ViaWNCZXppZXIodDEsIHAxLCB0MiwgcDIpIHtcbiAgdmFyIGJlemllciA9IGdlbmVyYXRlQ3ViaWNCZXppZXIodDEsIHAxLCB0MiwgcDIpO1xuICByZXR1cm4gZnVuY3Rpb24gKHN0YXJ0LCBlbmQsIHBlcmNlbnQpIHtcbiAgICByZXR1cm4gc3RhcnQgKyAoZW5kIC0gc3RhcnQpICogYmV6aWVyKHBlcmNlbnQpO1xuICB9O1xufTtcbnZhciBlYXNpbmdzID0ge1xuICAnbGluZWFyJzogZnVuY3Rpb24gbGluZWFyKHN0YXJ0LCBlbmQsIHBlcmNlbnQpIHtcbiAgICByZXR1cm4gc3RhcnQgKyAoZW5kIC0gc3RhcnQpICogcGVyY2VudDtcbiAgfSxcbiAgLy8gZGVmYXVsdCBlYXNpbmdzXG4gICdlYXNlJzogY3ViaWNCZXppZXIoMC4yNSwgMC4xLCAwLjI1LCAxKSxcbiAgJ2Vhc2UtaW4nOiBjdWJpY0JlemllcigwLjQyLCAwLCAxLCAxKSxcbiAgJ2Vhc2Utb3V0JzogY3ViaWNCZXppZXIoMCwgMCwgMC41OCwgMSksXG4gICdlYXNlLWluLW91dCc6IGN1YmljQmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpLFxuICAvLyBzaW5lXG4gICdlYXNlLWluLXNpbmUnOiBjdWJpY0JlemllcigwLjQ3LCAwLCAwLjc0NSwgMC43MTUpLFxuICAnZWFzZS1vdXQtc2luZSc6IGN1YmljQmV6aWVyKDAuMzksIDAuNTc1LCAwLjU2NSwgMSksXG4gICdlYXNlLWluLW91dC1zaW5lJzogY3ViaWNCZXppZXIoMC40NDUsIDAuMDUsIDAuNTUsIDAuOTUpLFxuICAvLyBxdWFkXG4gICdlYXNlLWluLXF1YWQnOiBjdWJpY0JlemllcigwLjU1LCAwLjA4NSwgMC42OCwgMC41MyksXG4gICdlYXNlLW91dC1xdWFkJzogY3ViaWNCZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCksXG4gICdlYXNlLWluLW91dC1xdWFkJzogY3ViaWNCZXppZXIoMC40NTUsIDAuMDMsIDAuNTE1LCAwLjk1NSksXG4gIC8vIGN1YmljXG4gICdlYXNlLWluLWN1YmljJzogY3ViaWNCZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KSxcbiAgJ2Vhc2Utb3V0LWN1YmljJzogY3ViaWNCZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSxcbiAgJ2Vhc2UtaW4tb3V0LWN1YmljJzogY3ViaWNCZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSksXG4gIC8vIHF1YXJ0XG4gICdlYXNlLWluLXF1YXJ0JzogY3ViaWNCZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKSxcbiAgJ2Vhc2Utb3V0LXF1YXJ0JzogY3ViaWNCZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpLFxuICAnZWFzZS1pbi1vdXQtcXVhcnQnOiBjdWJpY0JlemllcigwLjc3LCAwLCAwLjE3NSwgMSksXG4gIC8vIHF1aW50XG4gICdlYXNlLWluLXF1aW50JzogY3ViaWNCZXppZXIoMC43NTUsIDAuMDUsIDAuODU1LCAwLjA2KSxcbiAgJ2Vhc2Utb3V0LXF1aW50JzogY3ViaWNCZXppZXIoMC4yMywgMSwgMC4zMiwgMSksXG4gICdlYXNlLWluLW91dC1xdWludCc6IGN1YmljQmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpLFxuICAvLyBleHBvXG4gICdlYXNlLWluLWV4cG8nOiBjdWJpY0JlemllcigwLjk1LCAwLjA1LCAwLjc5NSwgMC4wMzUpLFxuICAnZWFzZS1vdXQtZXhwbyc6IGN1YmljQmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpLFxuICAnZWFzZS1pbi1vdXQtZXhwbyc6IGN1YmljQmV6aWVyKDEsIDAsIDAsIDEpLFxuICAvLyBjaXJjXG4gICdlYXNlLWluLWNpcmMnOiBjdWJpY0JlemllcigwLjYsIDAuMDQsIDAuOTgsIDAuMzM1KSxcbiAgJ2Vhc2Utb3V0LWNpcmMnOiBjdWJpY0JlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpLFxuICAnZWFzZS1pbi1vdXQtY2lyYyc6IGN1YmljQmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksXG4gIC8vIHVzZXIgcGFyYW0gZWFzaW5ncy4uLlxuXG4gICdzcHJpbmcnOiBmdW5jdGlvbiBzcHJpbmcodGVuc2lvbiwgZnJpY3Rpb24sIGR1cmF0aW9uKSB7XG4gICAgaWYgKGR1cmF0aW9uID09PSAwKSB7XG4gICAgICAvLyBjYW4ndCBnZXQgYSBzcHJpbmcgdy8gZHVyYXRpb24gMFxuICAgICAgcmV0dXJuIGVhc2luZ3MubGluZWFyOyAvLyBkdXJhdGlvbiAwID0+IGp1bXAgdG8gZW5kIHNvIGltcGwgZG9lc24ndCBtYXR0ZXJcbiAgICB9XG5cbiAgICB2YXIgc3ByaW5nID0gZ2VuZXJhdGVTcHJpbmdSSzQodGVuc2lvbiwgZnJpY3Rpb24sIGR1cmF0aW9uKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHN0YXJ0LCBlbmQsIHBlcmNlbnQpIHtcbiAgICAgIHJldHVybiBzdGFydCArIChlbmQgLSBzdGFydCkgKiBzcHJpbmcocGVyY2VudCk7XG4gICAgfTtcbiAgfSxcbiAgJ2N1YmljLWJlemllcic6IGN1YmljQmV6aWVyXG59O1xuXG5mdW5jdGlvbiBnZXRFYXNlZFZhbHVlKHR5cGUsIHN0YXJ0LCBlbmQsIHBlcmNlbnQsIGVhc2luZ0ZuKSB7XG4gIGlmIChwZXJjZW50ID09PSAxKSB7XG4gICAgcmV0dXJuIGVuZDtcbiAgfVxuICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgIHJldHVybiBlbmQ7XG4gIH1cbiAgdmFyIHZhbCA9IGVhc2luZ0ZuKHN0YXJ0LCBlbmQsIHBlcmNlbnQpO1xuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuICBpZiAodHlwZS5yb3VuZFZhbHVlIHx8IHR5cGUuY29sb3IpIHtcbiAgICB2YWwgPSBNYXRoLnJvdW5kKHZhbCk7XG4gIH1cbiAgaWYgKHR5cGUubWluICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YWwgPSBNYXRoLm1heCh2YWwsIHR5cGUubWluKTtcbiAgfVxuICBpZiAodHlwZS5tYXggIT09IHVuZGVmaW5lZCkge1xuICAgIHZhbCA9IE1hdGgubWluKHZhbCwgdHlwZS5tYXgpO1xuICB9XG4gIHJldHVybiB2YWw7XG59XG5mdW5jdGlvbiBnZXRWYWx1ZShwcm9wLCBzcGVjKSB7XG4gIGlmIChwcm9wLnBmVmFsdWUgIT0gbnVsbCB8fCBwcm9wLnZhbHVlICE9IG51bGwpIHtcbiAgICBpZiAocHJvcC5wZlZhbHVlICE9IG51bGwgJiYgKHNwZWMgPT0gbnVsbCB8fCBzcGVjLnR5cGUudW5pdHMgIT09ICclJykpIHtcbiAgICAgIHJldHVybiBwcm9wLnBmVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwcm9wLnZhbHVlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcHJvcDtcbiAgfVxufVxuZnVuY3Rpb24gZWFzZShzdGFydFByb3AsIGVuZFByb3AsIHBlcmNlbnQsIGVhc2luZ0ZuLCBwcm9wU3BlYykge1xuICB2YXIgdHlwZSA9IHByb3BTcGVjICE9IG51bGwgPyBwcm9wU3BlYy50eXBlIDogbnVsbDtcbiAgaWYgKHBlcmNlbnQgPCAwKSB7XG4gICAgcGVyY2VudCA9IDA7XG4gIH0gZWxzZSBpZiAocGVyY2VudCA+IDEpIHtcbiAgICBwZXJjZW50ID0gMTtcbiAgfVxuICB2YXIgc3RhcnQgPSBnZXRWYWx1ZShzdGFydFByb3AsIHByb3BTcGVjKTtcbiAgdmFyIGVuZCA9IGdldFZhbHVlKGVuZFByb3AsIHByb3BTcGVjKTtcbiAgaWYgKG51bWJlciQxKHN0YXJ0KSAmJiBudW1iZXIkMShlbmQpKSB7XG4gICAgcmV0dXJuIGdldEVhc2VkVmFsdWUodHlwZSwgc3RhcnQsIGVuZCwgcGVyY2VudCwgZWFzaW5nRm4pO1xuICB9IGVsc2UgaWYgKGFycmF5KHN0YXJ0KSAmJiBhcnJheShlbmQpKSB7XG4gICAgdmFyIGVhc2VkQXJyID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbmQubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzaSA9IHN0YXJ0W2ldO1xuICAgICAgdmFyIGVpID0gZW5kW2ldO1xuICAgICAgaWYgKHNpICE9IG51bGwgJiYgZWkgIT0gbnVsbCkge1xuICAgICAgICB2YXIgdmFsID0gZ2V0RWFzZWRWYWx1ZSh0eXBlLCBzaSwgZWksIHBlcmNlbnQsIGVhc2luZ0ZuKTtcbiAgICAgICAgZWFzZWRBcnIucHVzaCh2YWwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWFzZWRBcnIucHVzaChlaSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlYXNlZEFycjtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBzdGVwJDEoc2VsZiwgYW5pLCBub3csIGlzQ29yZSkge1xuICB2YXIgaXNFbGVzID0gIWlzQ29yZTtcbiAgdmFyIF9wID0gc2VsZi5fcHJpdmF0ZTtcbiAgdmFyIGFuaV9wID0gYW5pLl9wcml2YXRlO1xuICB2YXIgcEVhc2luZyA9IGFuaV9wLmVhc2luZztcbiAgdmFyIHN0YXJ0VGltZSA9IGFuaV9wLnN0YXJ0VGltZTtcbiAgdmFyIGN5ID0gaXNDb3JlID8gc2VsZiA6IHNlbGYuY3koKTtcbiAgdmFyIHN0eWxlID0gY3kuc3R5bGUoKTtcbiAgaWYgKCFhbmlfcC5lYXNpbmdJbXBsKSB7XG4gICAgaWYgKHBFYXNpbmcgPT0gbnVsbCkge1xuICAgICAgLy8gdXNlIGRlZmF1bHRcbiAgICAgIGFuaV9wLmVhc2luZ0ltcGwgPSBlYXNpbmdzWydsaW5lYXInXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhlbiBkZWZpbmUgdy8gbmFtZVxuICAgICAgdmFyIGVhc2luZ1ZhbHM7XG4gICAgICBpZiAoc3RyaW5nKHBFYXNpbmcpKSB7XG4gICAgICAgIHZhciBlYXNpbmdQcm9wID0gc3R5bGUucGFyc2UoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJywgcEVhc2luZyk7XG4gICAgICAgIGVhc2luZ1ZhbHMgPSBlYXNpbmdQcm9wLnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhlbiBhc3N1bWUgcHJlcGFyc2VkIGFycmF5XG4gICAgICAgIGVhc2luZ1ZhbHMgPSBwRWFzaW5nO1xuICAgICAgfVxuICAgICAgdmFyIG5hbWUsIGFyZ3M7XG4gICAgICBpZiAoc3RyaW5nKGVhc2luZ1ZhbHMpKSB7XG4gICAgICAgIG5hbWUgPSBlYXNpbmdWYWxzO1xuICAgICAgICBhcmdzID0gW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuYW1lID0gZWFzaW5nVmFsc1sxXTtcbiAgICAgICAgYXJncyA9IGVhc2luZ1ZhbHMuc2xpY2UoMikubWFwKGZ1bmN0aW9uIChuKSB7XG4gICAgICAgICAgcmV0dXJuICtuO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gY3JlYXRlIHdpdGggYXJnc1xuICAgICAgICBpZiAobmFtZSA9PT0gJ3NwcmluZycpIHtcbiAgICAgICAgICBhcmdzLnB1c2goYW5pX3AuZHVyYXRpb24pOyAvLyBuZWVkIGR1cmF0aW9uIHRvIGdlbmVyYXRlIHNwcmluZ1xuICAgICAgICB9XG5cbiAgICAgICAgYW5pX3AuZWFzaW5nSW1wbCA9IGVhc2luZ3NbbmFtZV0uYXBwbHkobnVsbCwgYXJncyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzdGF0aWMgaW1wbCBieSBuYW1lXG4gICAgICAgIGFuaV9wLmVhc2luZ0ltcGwgPSBlYXNpbmdzW25hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB2YXIgZWFzaW5nID0gYW5pX3AuZWFzaW5nSW1wbDtcbiAgdmFyIHBlcmNlbnQ7XG4gIGlmIChhbmlfcC5kdXJhdGlvbiA9PT0gMCkge1xuICAgIHBlcmNlbnQgPSAxO1xuICB9IGVsc2Uge1xuICAgIHBlcmNlbnQgPSAobm93IC0gc3RhcnRUaW1lKSAvIGFuaV9wLmR1cmF0aW9uO1xuICB9XG4gIGlmIChhbmlfcC5hcHBseWluZykge1xuICAgIHBlcmNlbnQgPSBhbmlfcC5wcm9ncmVzcztcbiAgfVxuICBpZiAocGVyY2VudCA8IDApIHtcbiAgICBwZXJjZW50ID0gMDtcbiAgfSBlbHNlIGlmIChwZXJjZW50ID4gMSkge1xuICAgIHBlcmNlbnQgPSAxO1xuICB9XG4gIGlmIChhbmlfcC5kZWxheSA9PSBudWxsKSB7XG4gICAgLy8gdGhlbiB1cGRhdGVcblxuICAgIHZhciBzdGFydFBvcyA9IGFuaV9wLnN0YXJ0UG9zaXRpb247XG4gICAgdmFyIGVuZFBvcyA9IGFuaV9wLnBvc2l0aW9uO1xuICAgIGlmIChlbmRQb3MgJiYgaXNFbGVzICYmICFzZWxmLmxvY2tlZCgpKSB7XG4gICAgICB2YXIgbmV3UG9zID0ge307XG4gICAgICBpZiAodmFsaWQoc3RhcnRQb3MueCwgZW5kUG9zLngpKSB7XG4gICAgICAgIG5ld1Bvcy54ID0gZWFzZShzdGFydFBvcy54LCBlbmRQb3MueCwgcGVyY2VudCwgZWFzaW5nKTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWxpZChzdGFydFBvcy55LCBlbmRQb3MueSkpIHtcbiAgICAgICAgbmV3UG9zLnkgPSBlYXNlKHN0YXJ0UG9zLnksIGVuZFBvcy55LCBwZXJjZW50LCBlYXNpbmcpO1xuICAgICAgfVxuICAgICAgc2VsZi5wb3NpdGlvbihuZXdQb3MpO1xuICAgIH1cbiAgICB2YXIgc3RhcnRQYW4gPSBhbmlfcC5zdGFydFBhbjtcbiAgICB2YXIgZW5kUGFuID0gYW5pX3AucGFuO1xuICAgIHZhciBwYW4gPSBfcC5wYW47XG4gICAgdmFyIGFuaW1hdGluZ1BhbiA9IGVuZFBhbiAhPSBudWxsICYmIGlzQ29yZTtcbiAgICBpZiAoYW5pbWF0aW5nUGFuKSB7XG4gICAgICBpZiAodmFsaWQoc3RhcnRQYW4ueCwgZW5kUGFuLngpKSB7XG4gICAgICAgIHBhbi54ID0gZWFzZShzdGFydFBhbi54LCBlbmRQYW4ueCwgcGVyY2VudCwgZWFzaW5nKTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWxpZChzdGFydFBhbi55LCBlbmRQYW4ueSkpIHtcbiAgICAgICAgcGFuLnkgPSBlYXNlKHN0YXJ0UGFuLnksIGVuZFBhbi55LCBwZXJjZW50LCBlYXNpbmcpO1xuICAgICAgfVxuICAgICAgc2VsZi5lbWl0KCdwYW4nKTtcbiAgICB9XG4gICAgdmFyIHN0YXJ0Wm9vbSA9IGFuaV9wLnN0YXJ0Wm9vbTtcbiAgICB2YXIgZW5kWm9vbSA9IGFuaV9wLnpvb207XG4gICAgdmFyIGFuaW1hdGluZ1pvb20gPSBlbmRab29tICE9IG51bGwgJiYgaXNDb3JlO1xuICAgIGlmIChhbmltYXRpbmdab29tKSB7XG4gICAgICBpZiAodmFsaWQoc3RhcnRab29tLCBlbmRab29tKSkge1xuICAgICAgICBfcC56b29tID0gYm91bmQoX3AubWluWm9vbSwgZWFzZShzdGFydFpvb20sIGVuZFpvb20sIHBlcmNlbnQsIGVhc2luZyksIF9wLm1heFpvb20pO1xuICAgICAgfVxuICAgICAgc2VsZi5lbWl0KCd6b29tJyk7XG4gICAgfVxuICAgIGlmIChhbmltYXRpbmdQYW4gfHwgYW5pbWF0aW5nWm9vbSkge1xuICAgICAgc2VsZi5lbWl0KCd2aWV3cG9ydCcpO1xuICAgIH1cbiAgICB2YXIgcHJvcHMgPSBhbmlfcC5zdHlsZTtcbiAgICBpZiAocHJvcHMgJiYgcHJvcHMubGVuZ3RoID4gMCAmJiBpc0VsZXMpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHByb3AgPSBwcm9wc1tpXTtcbiAgICAgICAgdmFyIF9uYW1lID0gcHJvcC5uYW1lO1xuICAgICAgICB2YXIgZW5kID0gcHJvcDtcbiAgICAgICAgdmFyIHN0YXJ0ID0gYW5pX3Auc3RhcnRTdHlsZVtfbmFtZV07XG4gICAgICAgIHZhciBwcm9wU3BlYyA9IHN0eWxlLnByb3BlcnRpZXNbc3RhcnQubmFtZV07XG4gICAgICAgIHZhciBlYXNlZFZhbCA9IGVhc2Uoc3RhcnQsIGVuZCwgcGVyY2VudCwgZWFzaW5nLCBwcm9wU3BlYyk7XG4gICAgICAgIHN0eWxlLm92ZXJyaWRlQnlwYXNzKHNlbGYsIF9uYW1lLCBlYXNlZFZhbCk7XG4gICAgICB9IC8vIGZvciBwcm9wc1xuXG4gICAgICBzZWxmLmVtaXQoJ3N0eWxlJyk7XG4gICAgfSAvLyBpZlxuICB9XG5cbiAgYW5pX3AucHJvZ3Jlc3MgPSBwZXJjZW50O1xuICByZXR1cm4gcGVyY2VudDtcbn1cbmZ1bmN0aW9uIHZhbGlkKHN0YXJ0LCBlbmQpIHtcbiAgaWYgKHN0YXJ0ID09IG51bGwgfHwgZW5kID09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKG51bWJlciQxKHN0YXJ0KSAmJiBudW1iZXIkMShlbmQpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSBpZiAoc3RhcnQgJiYgZW5kKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBzdGFydEFuaW1hdGlvbihzZWxmLCBhbmksIG5vdywgaXNDb3JlKSB7XG4gIHZhciBhbmlfcCA9IGFuaS5fcHJpdmF0ZTtcbiAgYW5pX3Auc3RhcnRlZCA9IHRydWU7XG4gIGFuaV9wLnN0YXJ0VGltZSA9IG5vdyAtIGFuaV9wLnByb2dyZXNzICogYW5pX3AuZHVyYXRpb247XG59XG5cbmZ1bmN0aW9uIHN0ZXBBbGwobm93LCBjeSkge1xuICB2YXIgZWxlcyA9IGN5Ll9wcml2YXRlLmFuaUVsZXM7XG4gIHZhciBkb25lRWxlcyA9IFtdO1xuICBmdW5jdGlvbiBzdGVwT25lKGVsZSwgaXNDb3JlKSB7XG4gICAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICAgIHZhciBjdXJyZW50ID0gX3AuYW5pbWF0aW9uLmN1cnJlbnQ7XG4gICAgdmFyIHF1ZXVlID0gX3AuYW5pbWF0aW9uLnF1ZXVlO1xuICAgIHZhciByYW5BbmlzID0gZmFsc2U7XG5cbiAgICAvLyBpZiBub3RoaW5nIGN1cnJlbnRseSBhbmltYXRpbmcsIGdldCBzb21ldGhpbmcgZnJvbSB0aGUgcXVldWVcbiAgICBpZiAoY3VycmVudC5sZW5ndGggPT09IDApIHtcbiAgICAgIHZhciBuZXh0ID0gcXVldWUuc2hpZnQoKTtcbiAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgIGN1cnJlbnQucHVzaChuZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGNhbGxiYWNrcyA9IGZ1bmN0aW9uIGNhbGxiYWNrcyhfY2FsbGJhY2tzKSB7XG4gICAgICBmb3IgKHZhciBqID0gX2NhbGxiYWNrcy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkge1xuICAgICAgICB2YXIgY2IgPSBfY2FsbGJhY2tzW2pdO1xuICAgICAgICBjYigpO1xuICAgICAgfVxuICAgICAgX2NhbGxiYWNrcy5zcGxpY2UoMCwgX2NhbGxiYWNrcy5sZW5ndGgpO1xuICAgIH07XG5cbiAgICAvLyBzdGVwIGFuZCByZW1vdmUgaWYgZG9uZVxuICAgIGZvciAodmFyIGkgPSBjdXJyZW50Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgYW5pID0gY3VycmVudFtpXTtcbiAgICAgIHZhciBhbmlfcCA9IGFuaS5fcHJpdmF0ZTtcbiAgICAgIGlmIChhbmlfcC5zdG9wcGVkKSB7XG4gICAgICAgIGN1cnJlbnQuc3BsaWNlKGksIDEpO1xuICAgICAgICBhbmlfcC5ob29rZWQgPSBmYWxzZTtcbiAgICAgICAgYW5pX3AucGxheWluZyA9IGZhbHNlO1xuICAgICAgICBhbmlfcC5zdGFydGVkID0gZmFsc2U7XG4gICAgICAgIGNhbGxiYWNrcyhhbmlfcC5mcmFtZXMpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICghYW5pX3AucGxheWluZyAmJiAhYW5pX3AuYXBwbHlpbmcpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIGFuIGFwcGx5KCkgd2hpbGUgcGxheWluZyBzaG91bGRuJ3QgZG8gYW55dGhpbmdcbiAgICAgIGlmIChhbmlfcC5wbGF5aW5nICYmIGFuaV9wLmFwcGx5aW5nKSB7XG4gICAgICAgIGFuaV9wLmFwcGx5aW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoIWFuaV9wLnN0YXJ0ZWQpIHtcbiAgICAgICAgc3RhcnRBbmltYXRpb24oZWxlLCBhbmksIG5vdyk7XG4gICAgICB9XG4gICAgICBzdGVwJDEoZWxlLCBhbmksIG5vdywgaXNDb3JlKTtcbiAgICAgIGlmIChhbmlfcC5hcHBseWluZykge1xuICAgICAgICBhbmlfcC5hcHBseWluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgY2FsbGJhY2tzKGFuaV9wLmZyYW1lcyk7XG4gICAgICBpZiAoYW5pX3Auc3RlcCAhPSBudWxsKSB7XG4gICAgICAgIGFuaV9wLnN0ZXAobm93KTtcbiAgICAgIH1cbiAgICAgIGlmIChhbmkuY29tcGxldGVkKCkpIHtcbiAgICAgICAgY3VycmVudC5zcGxpY2UoaSwgMSk7XG4gICAgICAgIGFuaV9wLmhvb2tlZCA9IGZhbHNlO1xuICAgICAgICBhbmlfcC5wbGF5aW5nID0gZmFsc2U7XG4gICAgICAgIGFuaV9wLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgY2FsbGJhY2tzKGFuaV9wLmNvbXBsZXRlcyk7XG4gICAgICB9XG4gICAgICByYW5BbmlzID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCFpc0NvcmUgJiYgY3VycmVudC5sZW5ndGggPT09IDAgJiYgcXVldWUubGVuZ3RoID09PSAwKSB7XG4gICAgICBkb25lRWxlcy5wdXNoKGVsZSk7XG4gICAgfVxuICAgIHJldHVybiByYW5BbmlzO1xuICB9IC8vIHN0ZXBFbGVtZW50XG5cbiAgLy8gaGFuZGxlIGFsbCBlbGVzXG4gIHZhciByYW5FbGVBbmkgPSBmYWxzZTtcbiAgZm9yICh2YXIgZSA9IDA7IGUgPCBlbGVzLmxlbmd0aDsgZSsrKSB7XG4gICAgdmFyIGVsZSA9IGVsZXNbZV07XG4gICAgdmFyIGhhbmRsZWRUaGlzRWxlID0gc3RlcE9uZShlbGUpO1xuICAgIHJhbkVsZUFuaSA9IHJhbkVsZUFuaSB8fCBoYW5kbGVkVGhpc0VsZTtcbiAgfSAvLyBlYWNoIGVsZW1lbnRcblxuICB2YXIgcmFuQ29yZUFuaSA9IHN0ZXBPbmUoY3ksIHRydWUpO1xuXG4gIC8vIG5vdGlmeSByZW5kZXJlclxuICBpZiAocmFuRWxlQW5pIHx8IHJhbkNvcmVBbmkpIHtcbiAgICBpZiAoZWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjeS5ub3RpZnkoJ2RyYXcnLCBlbGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3kubm90aWZ5KCdkcmF3Jyk7XG4gICAgfVxuICB9XG5cbiAgLy8gcmVtb3ZlIGVsZW1lbnRzIGZyb20gbGlzdCBvZiBjdXJyZW50bHkgYW5pbWF0aW5nIGlmIGl0cyBxdWV1ZXMgYXJlIGVtcHR5XG4gIGVsZXMudW5tZXJnZShkb25lRWxlcyk7XG4gIGN5LmVtaXQoJ3N0ZXAnKTtcbn0gLy8gc3RlcEFsbFxuXG52YXIgY29yZWZuJDggPSB7XG4gIC8vIHB1bGwgaW4gYW5pbWF0aW9uIGZ1bmN0aW9uc1xuICBhbmltYXRlOiBkZWZpbmUuYW5pbWF0ZSgpLFxuICBhbmltYXRpb246IGRlZmluZS5hbmltYXRpb24oKSxcbiAgYW5pbWF0ZWQ6IGRlZmluZS5hbmltYXRlZCgpLFxuICBjbGVhclF1ZXVlOiBkZWZpbmUuY2xlYXJRdWV1ZSgpLFxuICBkZWxheTogZGVmaW5lLmRlbGF5KCksXG4gIGRlbGF5QW5pbWF0aW9uOiBkZWZpbmUuZGVsYXlBbmltYXRpb24oKSxcbiAgc3RvcDogZGVmaW5lLnN0b3AoKSxcbiAgYWRkVG9BbmltYXRpb25Qb29sOiBmdW5jdGlvbiBhZGRUb0FuaW1hdGlvblBvb2woZWxlcykge1xuICAgIHZhciBjeSA9IHRoaXM7XG4gICAgaWYgKCFjeS5zdHlsZUVuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gc2F2ZSBjeWNsZXMgd2hlbiBubyBzdHlsZSB1c2VkXG5cbiAgICBjeS5fcHJpdmF0ZS5hbmlFbGVzLm1lcmdlKGVsZXMpO1xuICB9LFxuICBzdG9wQW5pbWF0aW9uTG9vcDogZnVuY3Rpb24gc3RvcEFuaW1hdGlvbkxvb3AoKSB7XG4gICAgdGhpcy5fcHJpdmF0ZS5hbmltYXRpb25zUnVubmluZyA9IGZhbHNlO1xuICB9LFxuICBzdGFydEFuaW1hdGlvbkxvb3A6IGZ1bmN0aW9uIHN0YXJ0QW5pbWF0aW9uTG9vcCgpIHtcbiAgICB2YXIgY3kgPSB0aGlzO1xuICAgIGN5Ll9wcml2YXRlLmFuaW1hdGlvbnNSdW5uaW5nID0gdHJ1ZTtcbiAgICBpZiAoIWN5LnN0eWxlRW5hYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBzYXZlIGN5Y2xlcyB3aGVuIG5vIHN0eWxlIHVzZWRcblxuICAgIC8vIE5CIHRoZSBhbmltYXRpb24gbG9vcCB3aWxsIGV4ZWMgaW4gaGVhZGxlc3MgZW52aXJvbm1lbnRzIGlmIHN0eWxlIGVuYWJsZWRcbiAgICAvLyBhbmQgZXhwbGljaXQgY3kuZGVzdHJveSgpIGlzIG5lY2Vzc2FyeSB0byBzdG9wIHRoZSBsb29wXG5cbiAgICBmdW5jdGlvbiBoZWFkbGVzc1N0ZXAoKSB7XG4gICAgICBpZiAoIWN5Ll9wcml2YXRlLmFuaW1hdGlvbnNSdW5uaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiBhbmltYXRpb25TdGVwKG5vdykge1xuICAgICAgICBzdGVwQWxsKG5vdywgY3kpO1xuICAgICAgICBoZWFkbGVzc1N0ZXAoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB2YXIgcmVuZGVyZXIgPSBjeS5yZW5kZXJlcigpO1xuICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci5iZWZvcmVSZW5kZXIpIHtcbiAgICAgIC8vIGxldCB0aGUgcmVuZGVyZXIgc2NoZWR1bGUgYW5pbWF0aW9uc1xuICAgICAgcmVuZGVyZXIuYmVmb3JlUmVuZGVyKGZ1bmN0aW9uIHJlbmRlcmVyQW5pbWF0aW9uU3RlcCh3aWxsRHJhdywgbm93KSB7XG4gICAgICAgIHN0ZXBBbGwobm93LCBjeSk7XG4gICAgICB9LCByZW5kZXJlci5iZWZvcmVSZW5kZXJQcmlvcml0aWVzLmFuaW1hdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBtYW5hZ2UgdGhlIGFuaW1hdGlvbiBsb29wIG91cnNlbHZlc1xuICAgICAgaGVhZGxlc3NTdGVwKCk7IC8vIGZpcnN0IGNhbGxcbiAgICB9XG4gIH1cbn07XG5cbnZhciBlbWl0dGVyT3B0aW9ucyA9IHtcbiAgcXVhbGlmaWVyQ29tcGFyZTogZnVuY3Rpb24gcXVhbGlmaWVyQ29tcGFyZShzZWxlY3RvcjEsIHNlbGVjdG9yMikge1xuICAgIGlmIChzZWxlY3RvcjEgPT0gbnVsbCB8fCBzZWxlY3RvcjIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHNlbGVjdG9yMSA9PSBudWxsICYmIHNlbGVjdG9yMiA9PSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc2VsZWN0b3IxLnNhbWVUZXh0KHNlbGVjdG9yMik7XG4gICAgfVxuICB9LFxuICBldmVudE1hdGNoZXM6IGZ1bmN0aW9uIGV2ZW50TWF0Y2hlcyhjeSwgbGlzdGVuZXIsIGV2ZW50T2JqKSB7XG4gICAgdmFyIHNlbGVjdG9yID0gbGlzdGVuZXIucXVhbGlmaWVyO1xuICAgIGlmIChzZWxlY3RvciAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gY3kgIT09IGV2ZW50T2JqLnRhcmdldCAmJiBlbGVtZW50KGV2ZW50T2JqLnRhcmdldCkgJiYgc2VsZWN0b3IubWF0Y2hlcyhldmVudE9iai50YXJnZXQpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcbiAgYWRkRXZlbnRGaWVsZHM6IGZ1bmN0aW9uIGFkZEV2ZW50RmllbGRzKGN5LCBldnQpIHtcbiAgICBldnQuY3kgPSBjeTtcbiAgICBldnQudGFyZ2V0ID0gY3k7XG4gIH0sXG4gIGNhbGxiYWNrQ29udGV4dDogZnVuY3Rpb24gY2FsbGJhY2tDb250ZXh0KGN5LCBsaXN0ZW5lciwgZXZlbnRPYmopIHtcbiAgICByZXR1cm4gbGlzdGVuZXIucXVhbGlmaWVyICE9IG51bGwgPyBldmVudE9iai50YXJnZXQgOiBjeTtcbiAgfVxufTtcbnZhciBhcmdTZWxlY3RvciA9IGZ1bmN0aW9uIGFyZ1NlbGVjdG9yKGFyZykge1xuICBpZiAoc3RyaW5nKGFyZykpIHtcbiAgICByZXR1cm4gbmV3IFNlbGVjdG9yKGFyZyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGFyZztcbiAgfVxufTtcbnZhciBlbGVzZm4gPSB7XG4gIGNyZWF0ZUVtaXR0ZXI6IGZ1bmN0aW9uIGNyZWF0ZUVtaXR0ZXIoKSB7XG4gICAgdmFyIF9wID0gdGhpcy5fcHJpdmF0ZTtcbiAgICBpZiAoIV9wLmVtaXR0ZXIpIHtcbiAgICAgIF9wLmVtaXR0ZXIgPSBuZXcgRW1pdHRlcihlbWl0dGVyT3B0aW9ucywgdGhpcyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICBlbWl0dGVyOiBmdW5jdGlvbiBlbWl0dGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlLmVtaXR0ZXI7XG4gIH0sXG4gIG9uOiBmdW5jdGlvbiBvbihldmVudHMsIHNlbGVjdG9yLCBjYWxsYmFjaykge1xuICAgIHRoaXMuZW1pdHRlcigpLm9uKGV2ZW50cywgYXJnU2VsZWN0b3Ioc2VsZWN0b3IpLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIHJlbW92ZUxpc3RlbmVyOiBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihldmVudHMsIHNlbGVjdG9yLCBjYWxsYmFjaykge1xuICAgIHRoaXMuZW1pdHRlcigpLnJlbW92ZUxpc3RlbmVyKGV2ZW50cywgYXJnU2VsZWN0b3Ioc2VsZWN0b3IpLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIHJlbW92ZUFsbExpc3RlbmVyczogZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKCkge1xuICAgIHRoaXMuZW1pdHRlcigpLnJlbW92ZUFsbExpc3RlbmVycygpO1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICBvbmU6IGZ1bmN0aW9uIG9uZShldmVudHMsIHNlbGVjdG9yLCBjYWxsYmFjaykge1xuICAgIHRoaXMuZW1pdHRlcigpLm9uZShldmVudHMsIGFyZ1NlbGVjdG9yKHNlbGVjdG9yKSwgY2FsbGJhY2spO1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICBvbmNlOiBmdW5jdGlvbiBvbmNlKGV2ZW50cywgc2VsZWN0b3IsIGNhbGxiYWNrKSB7XG4gICAgdGhpcy5lbWl0dGVyKCkub25lKGV2ZW50cywgYXJnU2VsZWN0b3Ioc2VsZWN0b3IpLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIGVtaXQ6IGZ1bmN0aW9uIGVtaXQoZXZlbnRzLCBleHRyYVBhcmFtcykge1xuICAgIHRoaXMuZW1pdHRlcigpLmVtaXQoZXZlbnRzLCBleHRyYVBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIGVtaXRBbmROb3RpZnk6IGZ1bmN0aW9uIGVtaXRBbmROb3RpZnkoZXZlbnQsIGVsZXMpIHtcbiAgICB0aGlzLmVtaXQoZXZlbnQpO1xuICAgIHRoaXMubm90aWZ5KGV2ZW50LCBlbGVzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufTtcbmRlZmluZS5ldmVudEFsaWFzZXNPbihlbGVzZm4pO1xuXG52YXIgY29yZWZuJDcgPSB7XG4gIHBuZzogZnVuY3Rpb24gcG5nKG9wdGlvbnMpIHtcbiAgICB2YXIgcmVuZGVyZXIgPSB0aGlzLl9wcml2YXRlLnJlbmRlcmVyO1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHJldHVybiByZW5kZXJlci5wbmcob3B0aW9ucyk7XG4gIH0sXG4gIGpwZzogZnVuY3Rpb24ganBnKG9wdGlvbnMpIHtcbiAgICB2YXIgcmVuZGVyZXIgPSB0aGlzLl9wcml2YXRlLnJlbmRlcmVyO1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIG9wdGlvbnMuYmcgPSBvcHRpb25zLmJnIHx8ICcjZmZmJztcbiAgICByZXR1cm4gcmVuZGVyZXIuanBnKG9wdGlvbnMpO1xuICB9XG59O1xuY29yZWZuJDcuanBlZyA9IGNvcmVmbiQ3LmpwZztcblxudmFyIGNvcmVmbiQ2ID0ge1xuICBsYXlvdXQ6IGZ1bmN0aW9uIGxheW91dChvcHRpb25zKSB7XG4gICAgdmFyIGN5ID0gdGhpcztcbiAgICBpZiAob3B0aW9ucyA9PSBudWxsKSB7XG4gICAgICBlcnJvcignTGF5b3V0IG9wdGlvbnMgbXVzdCBiZSBzcGVjaWZpZWQgdG8gbWFrZSBhIGxheW91dCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5uYW1lID09IG51bGwpIHtcbiAgICAgIGVycm9yKCdBIGBuYW1lYCBtdXN0IGJlIHNwZWNpZmllZCB0byBtYWtlIGEgbGF5b3V0Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBuYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgIHZhciBMYXlvdXQgPSBjeS5leHRlbnNpb24oJ2xheW91dCcsIG5hbWUpO1xuICAgIGlmIChMYXlvdXQgPT0gbnVsbCkge1xuICAgICAgZXJyb3IoJ05vIHN1Y2ggbGF5b3V0IGAnICsgbmFtZSArICdgIGZvdW5kLiAgRGlkIHlvdSBmb3JnZXQgdG8gaW1wb3J0IGl0IGFuZCBgY3l0b3NjYXBlLnVzZSgpYCBpdD8nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGVsZXM7XG4gICAgaWYgKHN0cmluZyhvcHRpb25zLmVsZXMpKSB7XG4gICAgICBlbGVzID0gY3kuJChvcHRpb25zLmVsZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVzID0gb3B0aW9ucy5lbGVzICE9IG51bGwgPyBvcHRpb25zLmVsZXMgOiBjeS4kKCk7XG4gICAgfVxuICAgIHZhciBsYXlvdXQgPSBuZXcgTGF5b3V0KGV4dGVuZCh7fSwgb3B0aW9ucywge1xuICAgICAgY3k6IGN5LFxuICAgICAgZWxlczogZWxlc1xuICAgIH0pKTtcbiAgICByZXR1cm4gbGF5b3V0O1xuICB9XG59O1xuY29yZWZuJDYuY3JlYXRlTGF5b3V0ID0gY29yZWZuJDYubWFrZUxheW91dCA9IGNvcmVmbiQ2LmxheW91dDtcblxudmFyIGNvcmVmbiQ1ID0ge1xuICBub3RpZnk6IGZ1bmN0aW9uIG5vdGlmeShldmVudE5hbWUsIGV2ZW50RWxlcykge1xuICAgIHZhciBfcCA9IHRoaXMuX3ByaXZhdGU7XG4gICAgaWYgKHRoaXMuYmF0Y2hpbmcoKSkge1xuICAgICAgX3AuYmF0Y2hOb3RpZmljYXRpb25zID0gX3AuYmF0Y2hOb3RpZmljYXRpb25zIHx8IHt9O1xuICAgICAgdmFyIGVsZXMgPSBfcC5iYXRjaE5vdGlmaWNhdGlvbnNbZXZlbnROYW1lXSA9IF9wLmJhdGNoTm90aWZpY2F0aW9uc1tldmVudE5hbWVdIHx8IHRoaXMuY29sbGVjdGlvbigpO1xuICAgICAgaWYgKGV2ZW50RWxlcyAhPSBudWxsKSB7XG4gICAgICAgIGVsZXMubWVyZ2UoZXZlbnRFbGVzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjsgLy8gbm90aWZpY2F0aW9ucyBhcmUgZGlzYWJsZWQgZHVyaW5nIGJhdGNoaW5nXG4gICAgfVxuXG4gICAgaWYgKCFfcC5ub3RpZmljYXRpb25zRW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gZXhpdCBvbiBkaXNhYmxlZFxuXG4gICAgdmFyIHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlcigpO1xuXG4gICAgLy8gZXhpdCBpZiBkZXN0cm95KCkgY2FsbGVkIG9uIGNvcmUgb3IgcmVuZGVyZXIgaW4gYmV0d2VlbiBmcmFtZXMgIzE0OTkgIzE1MjhcbiAgICBpZiAodGhpcy5kZXN0cm95ZWQoKSB8fCAhcmVuZGVyZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmVuZGVyZXIubm90aWZ5KGV2ZW50TmFtZSwgZXZlbnRFbGVzKTtcbiAgfSxcbiAgbm90aWZpY2F0aW9uczogZnVuY3Rpb24gbm90aWZpY2F0aW9ucyhib29sKSB7XG4gICAgdmFyIHAgPSB0aGlzLl9wcml2YXRlO1xuICAgIGlmIChib29sID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBwLm5vdGlmaWNhdGlvbnNFbmFibGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICBwLm5vdGlmaWNhdGlvbnNFbmFibGVkID0gYm9vbCA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIG5vTm90aWZpY2F0aW9uczogZnVuY3Rpb24gbm9Ob3RpZmljYXRpb25zKGNhbGxiYWNrKSB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zKGZhbHNlKTtcbiAgICBjYWxsYmFjaygpO1xuICAgIHRoaXMubm90aWZpY2F0aW9ucyh0cnVlKTtcbiAgfSxcbiAgYmF0Y2hpbmc6IGZ1bmN0aW9uIGJhdGNoaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlLmJhdGNoQ291bnQgPiAwO1xuICB9LFxuICBzdGFydEJhdGNoOiBmdW5jdGlvbiBzdGFydEJhdGNoKCkge1xuICAgIHZhciBfcCA9IHRoaXMuX3ByaXZhdGU7XG4gICAgaWYgKF9wLmJhdGNoQ291bnQgPT0gbnVsbCkge1xuICAgICAgX3AuYmF0Y2hDb3VudCA9IDA7XG4gICAgfVxuICAgIGlmIChfcC5iYXRjaENvdW50ID09PSAwKSB7XG4gICAgICBfcC5iYXRjaFN0eWxlRWxlcyA9IHRoaXMuY29sbGVjdGlvbigpO1xuICAgICAgX3AuYmF0Y2hOb3RpZmljYXRpb25zID0ge307XG4gICAgfVxuICAgIF9wLmJhdGNoQ291bnQrKztcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgZW5kQmF0Y2g6IGZ1bmN0aW9uIGVuZEJhdGNoKCkge1xuICAgIHZhciBfcCA9IHRoaXMuX3ByaXZhdGU7XG4gICAgaWYgKF9wLmJhdGNoQ291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBfcC5iYXRjaENvdW50LS07XG4gICAgaWYgKF9wLmJhdGNoQ291bnQgPT09IDApIHtcbiAgICAgIC8vIHVwZGF0ZSBzdHlsZSBmb3IgZGlydHkgZWxlc1xuICAgICAgX3AuYmF0Y2hTdHlsZUVsZXMudXBkYXRlU3R5bGUoKTtcbiAgICAgIHZhciByZW5kZXJlciA9IHRoaXMucmVuZGVyZXIoKTtcblxuICAgICAgLy8gbm90aWZ5IHRoZSByZW5kZXJlciBvZiBxdWV1ZWQgZWxlcyBhbmQgZXZlbnQgdHlwZXNcbiAgICAgIE9iamVjdC5rZXlzKF9wLmJhdGNoTm90aWZpY2F0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICAgIHZhciBlbGVzID0gX3AuYmF0Y2hOb3RpZmljYXRpb25zW2V2ZW50TmFtZV07XG4gICAgICAgIGlmIChlbGVzLmVtcHR5KCkpIHtcbiAgICAgICAgICByZW5kZXJlci5ub3RpZnkoZXZlbnROYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZW5kZXJlci5ub3RpZnkoZXZlbnROYW1lLCBlbGVzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICBiYXRjaDogZnVuY3Rpb24gYmF0Y2goY2FsbGJhY2spIHtcbiAgICB0aGlzLnN0YXJ0QmF0Y2goKTtcbiAgICBjYWxsYmFjaygpO1xuICAgIHRoaXMuZW5kQmF0Y2goKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgLy8gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gIGJhdGNoRGF0YTogZnVuY3Rpb24gYmF0Y2hEYXRhKG1hcCkge1xuICAgIHZhciBjeSA9IHRoaXM7XG4gICAgcmV0dXJuIHRoaXMuYmF0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGlkcyA9IE9iamVjdC5rZXlzKG1hcCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlkcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgaWQgPSBpZHNbaV07XG4gICAgICAgIHZhciBkYXRhID0gbWFwW2lkXTtcbiAgICAgICAgdmFyIGVsZSA9IGN5LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICAgICAgZWxlLmRhdGEoZGF0YSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn07XG5cbnZhciByZW5kZXJlckRlZmF1bHRzID0gZGVmYXVsdHMkZyh7XG4gIGhpZGVFZGdlc09uVmlld3BvcnQ6IGZhbHNlLFxuICB0ZXh0dXJlT25WaWV3cG9ydDogZmFsc2UsXG4gIG1vdGlvbkJsdXI6IGZhbHNlLFxuICBtb3Rpb25CbHVyT3BhY2l0eTogMC4wNSxcbiAgcGl4ZWxSYXRpbzogdW5kZWZpbmVkLFxuICBkZXNrdG9wVGFwVGhyZXNob2xkOiA0LFxuICB0b3VjaFRhcFRocmVzaG9sZDogOCxcbiAgd2hlZWxTZW5zaXRpdml0eTogMSxcbiAgZGVidWc6IGZhbHNlLFxuICBzaG93RnBzOiBmYWxzZVxufSk7XG52YXIgY29yZWZuJDQgPSB7XG4gIHJlbmRlclRvOiBmdW5jdGlvbiByZW5kZXJUbyhjb250ZXh0LCB6b29tLCBwYW4sIHB4UmF0aW8pIHtcbiAgICB2YXIgciA9IHRoaXMuX3ByaXZhdGUucmVuZGVyZXI7XG4gICAgci5yZW5kZXJUbyhjb250ZXh0LCB6b29tLCBwYW4sIHB4UmF0aW8pO1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICByZW5kZXJlcjogZnVuY3Rpb24gcmVuZGVyZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUucmVuZGVyZXI7XG4gIH0sXG4gIGZvcmNlUmVuZGVyOiBmdW5jdGlvbiBmb3JjZVJlbmRlcigpIHtcbiAgICB0aGlzLm5vdGlmeSgnZHJhdycpO1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICByZXNpemU6IGZ1bmN0aW9uIHJlc2l6ZSgpIHtcbiAgICB0aGlzLmludmFsaWRhdGVTaXplKCk7XG4gICAgdGhpcy5lbWl0QW5kTm90aWZ5KCdyZXNpemUnKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgaW5pdFJlbmRlcmVyOiBmdW5jdGlvbiBpbml0UmVuZGVyZXIob3B0aW9ucykge1xuICAgIHZhciBjeSA9IHRoaXM7XG4gICAgdmFyIFJlbmRlcmVyUHJvdG8gPSBjeS5leHRlbnNpb24oJ3JlbmRlcmVyJywgb3B0aW9ucy5uYW1lKTtcbiAgICBpZiAoUmVuZGVyZXJQcm90byA9PSBudWxsKSB7XG4gICAgICBlcnJvcihcIkNhbiBub3QgaW5pdGlhbGlzZTogTm8gc3VjaCByZW5kZXJlciBgXCIuY29uY2F0KG9wdGlvbnMubmFtZSwgXCJgIGZvdW5kLiBEaWQgeW91IGZvcmdldCB0byBpbXBvcnQgaXQgYW5kIGBjeXRvc2NhcGUudXNlKClgIGl0P1wiKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChvcHRpb25zLndoZWVsU2Vuc2l0aXZpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd2FybihcIllvdSBoYXZlIHNldCBhIGN1c3RvbSB3aGVlbCBzZW5zaXRpdml0eS4gIFRoaXMgd2lsbCBtYWtlIHlvdXIgYXBwIHpvb20gdW5uYXR1cmFsbHkgd2hlbiB1c2luZyBtYWluc3RyZWFtIG1pY2UuICBZb3Ugc2hvdWxkIGNoYW5nZSB0aGlzIHZhbHVlIGZyb20gdGhlIGRlZmF1bHQgb25seSBpZiB5b3UgY2FuIGd1YXJhbnRlZSB0aGF0IGFsbCB5b3VyIHVzZXJzIHdpbGwgdXNlIHRoZSBzYW1lIGhhcmR3YXJlIGFuZCBPUyBjb25maWd1cmF0aW9uIGFzIHlvdXIgY3VycmVudCBtYWNoaW5lLlwiKTtcbiAgICB9XG4gICAgdmFyIHJPcHRzID0gcmVuZGVyZXJEZWZhdWx0cyhvcHRpb25zKTtcbiAgICByT3B0cy5jeSA9IGN5O1xuICAgIGN5Ll9wcml2YXRlLnJlbmRlcmVyID0gbmV3IFJlbmRlcmVyUHJvdG8ock9wdHMpO1xuICAgIHRoaXMubm90aWZ5KCdpbml0Jyk7XG4gIH0sXG4gIGRlc3Ryb3lSZW5kZXJlcjogZnVuY3Rpb24gZGVzdHJveVJlbmRlcmVyKCkge1xuICAgIHZhciBjeSA9IHRoaXM7XG4gICAgY3kubm90aWZ5KCdkZXN0cm95Jyk7IC8vIGRlc3Ryb3kgdGhlIHJlbmRlcmVyXG5cbiAgICB2YXIgZG9tRWxlID0gY3kuY29udGFpbmVyKCk7XG4gICAgaWYgKGRvbUVsZSkge1xuICAgICAgZG9tRWxlLl9jeXJlZyA9IG51bGw7XG4gICAgICB3aGlsZSAoZG9tRWxlLmNoaWxkTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBkb21FbGUucmVtb3ZlQ2hpbGQoZG9tRWxlLmNoaWxkTm9kZXNbMF0pO1xuICAgICAgfVxuICAgIH1cbiAgICBjeS5fcHJpdmF0ZS5yZW5kZXJlciA9IG51bGw7IC8vIHRvIGJlIGV4dHJhIHNhZmUsIHJlbW92ZSB0aGUgcmVmXG4gICAgY3kubXV0YWJsZUVsZW1lbnRzKCkuZm9yRWFjaChmdW5jdGlvbiAoZWxlKSB7XG4gICAgICB2YXIgX3AgPSBlbGUuX3ByaXZhdGU7XG4gICAgICBfcC5yc2NyYXRjaCA9IHt9O1xuICAgICAgX3AucnN0eWxlID0ge307XG4gICAgICBfcC5hbmltYXRpb24uY3VycmVudCA9IFtdO1xuICAgICAgX3AuYW5pbWF0aW9uLnF1ZXVlID0gW107XG4gICAgfSk7XG4gIH0sXG4gIG9uUmVuZGVyOiBmdW5jdGlvbiBvblJlbmRlcihmbikge1xuICAgIHJldHVybiB0aGlzLm9uKCdyZW5kZXInLCBmbik7XG4gIH0sXG4gIG9mZlJlbmRlcjogZnVuY3Rpb24gb2ZmUmVuZGVyKGZuKSB7XG4gICAgcmV0dXJuIHRoaXMub2ZmKCdyZW5kZXInLCBmbik7XG4gIH1cbn07XG5jb3JlZm4kNC5pbnZhbGlkYXRlRGltZW5zaW9ucyA9IGNvcmVmbiQ0LnJlc2l6ZTtcblxudmFyIGNvcmVmbiQzID0ge1xuICAvLyBnZXQgYSBjb2xsZWN0aW9uXG4gIC8vIC0gZW1wdHkgY29sbGVjdGlvbiBvbiBubyBhcmdzXG4gIC8vIC0gY29sbGVjdGlvbiBvZiBlbGVtZW50cyBpbiB0aGUgZ3JhcGggb24gc2VsZWN0b3IgYXJnXG4gIC8vIC0gZ3VhcmFudGVlIGEgcmV0dXJuZWQgY29sbGVjdGlvbiB3aGVuIGVsZW1lbnRzIG9yIGNvbGxlY3Rpb24gc3BlY2lmaWVkXG4gIGNvbGxlY3Rpb246IGZ1bmN0aW9uIGNvbGxlY3Rpb24oZWxlcywgb3B0cykge1xuICAgIGlmIChzdHJpbmcoZWxlcykpIHtcbiAgICAgIHJldHVybiB0aGlzLiQoZWxlcyk7XG4gICAgfSBlbHNlIGlmIChlbGVtZW50T3JDb2xsZWN0aW9uKGVsZXMpKSB7XG4gICAgICByZXR1cm4gZWxlcy5jb2xsZWN0aW9uKCk7XG4gICAgfSBlbHNlIGlmIChhcnJheShlbGVzKSkge1xuICAgICAgaWYgKCFvcHRzKSB7XG4gICAgICAgIG9wdHMgPSB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbih0aGlzLCBlbGVzLCBvcHRzLnVuaXF1ZSwgb3B0cy5yZW1vdmVkKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uKHRoaXMpO1xuICB9LFxuICBub2RlczogZnVuY3Rpb24gbm9kZXMoc2VsZWN0b3IpIHtcbiAgICB2YXIgbm9kZXMgPSB0aGlzLiQoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgcmV0dXJuIGVsZS5pc05vZGUoKTtcbiAgICB9KTtcbiAgICBpZiAoc2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiBub2Rlcy5maWx0ZXIoc2VsZWN0b3IpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZXM7XG4gIH0sXG4gIGVkZ2VzOiBmdW5jdGlvbiBlZGdlcyhzZWxlY3Rvcikge1xuICAgIHZhciBlZGdlcyA9IHRoaXMuJChmdW5jdGlvbiAoZWxlKSB7XG4gICAgICByZXR1cm4gZWxlLmlzRWRnZSgpO1xuICAgIH0pO1xuICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIGVkZ2VzLmZpbHRlcihzZWxlY3Rvcik7XG4gICAgfVxuICAgIHJldHVybiBlZGdlcztcbiAgfSxcbiAgLy8gc2VhcmNoIHRoZSBncmFwaCBsaWtlIGpRdWVyeVxuICAkOiBmdW5jdGlvbiAkKHNlbGVjdG9yKSB7XG4gICAgdmFyIGVsZXMgPSB0aGlzLl9wcml2YXRlLmVsZW1lbnRzO1xuICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIGVsZXMuZmlsdGVyKHNlbGVjdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVsZXMuc3Bhd25TZWxmKCk7XG4gICAgfVxuICB9LFxuICBtdXRhYmxlRWxlbWVudHM6IGZ1bmN0aW9uIG11dGFibGVFbGVtZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5lbGVtZW50cztcbiAgfVxufTtcblxuLy8gYWxpYXNlc1xuY29yZWZuJDMuZWxlbWVudHMgPSBjb3JlZm4kMy5maWx0ZXIgPSBjb3JlZm4kMy4kO1xuXG52YXIgc3R5Zm4kOCA9IHt9O1xuXG4vLyBrZXlzIGZvciBzdHlsZSBibG9ja3MsIGUuZy4gdHRmZnR0XG52YXIgVFJVRSA9ICd0JztcbnZhciBGQUxTRSA9ICdmJztcblxuLy8gKHBvdGVudGlhbGx5IGV4cGVuc2l2ZSBjYWxjdWxhdGlvbilcbi8vIGFwcGx5IHRoZSBzdHlsZSB0byB0aGUgZWxlbWVudCBiYXNlZCBvblxuLy8gLSBpdHMgYnlwYXNzXG4vLyAtIHdoYXQgc2VsZWN0b3JzIG1hdGNoIGl0XG5zdHlmbiQ4LmFwcGx5ID0gZnVuY3Rpb24gKGVsZXMpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgX3AgPSBzZWxmLl9wcml2YXRlO1xuICB2YXIgY3kgPSBfcC5jeTtcbiAgdmFyIHVwZGF0ZWRFbGVzID0gY3kuY29sbGVjdGlvbigpO1xuICBmb3IgKHZhciBpZSA9IDA7IGllIDwgZWxlcy5sZW5ndGg7IGllKyspIHtcbiAgICB2YXIgZWxlID0gZWxlc1tpZV07XG4gICAgdmFyIGN4dE1ldGEgPSBzZWxmLmdldENvbnRleHRNZXRhKGVsZSk7XG4gICAgaWYgKGN4dE1ldGEuZW1wdHkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICB2YXIgY3h0U3R5bGUgPSBzZWxmLmdldENvbnRleHRTdHlsZShjeHRNZXRhKTtcbiAgICB2YXIgYXBwID0gc2VsZi5hcHBseUNvbnRleHRTdHlsZShjeHRNZXRhLCBjeHRTdHlsZSwgZWxlKTtcbiAgICBpZiAoZWxlLl9wcml2YXRlLmFwcGxpZWRJbml0U3R5bGUpIHtcbiAgICAgIHNlbGYudXBkYXRlVHJhbnNpdGlvbnMoZWxlLCBhcHAuZGlmZlByb3BzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlLl9wcml2YXRlLmFwcGxpZWRJbml0U3R5bGUgPSB0cnVlO1xuICAgIH1cbiAgICB2YXIgaGludHNEaWZmID0gc2VsZi51cGRhdGVTdHlsZUhpbnRzKGVsZSk7XG4gICAgaWYgKGhpbnRzRGlmZikge1xuICAgICAgdXBkYXRlZEVsZXMucHVzaChlbGUpO1xuICAgIH1cbiAgfSAvLyBmb3IgZWxlbWVudHNcblxuICByZXR1cm4gdXBkYXRlZEVsZXM7XG59O1xuc3R5Zm4kOC5nZXRQcm9wZXJ0aWVzRGlmZiA9IGZ1bmN0aW9uIChvbGRDeHRLZXksIG5ld0N4dEtleSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBjYWNoZSA9IHNlbGYuX3ByaXZhdGUucHJvcERpZmZzID0gc2VsZi5fcHJpdmF0ZS5wcm9wRGlmZnMgfHwge307XG4gIHZhciBkdWFsQ3h0S2V5ID0gb2xkQ3h0S2V5ICsgJy0nICsgbmV3Q3h0S2V5O1xuICB2YXIgY2FjaGVkVmFsID0gY2FjaGVbZHVhbEN4dEtleV07XG4gIGlmIChjYWNoZWRWYWwpIHtcbiAgICByZXR1cm4gY2FjaGVkVmFsO1xuICB9XG4gIHZhciBkaWZmUHJvcHMgPSBbXTtcbiAgdmFyIGFkZGVkUHJvcCA9IHt9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGYubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgY3h0ID0gc2VsZltpXTtcbiAgICB2YXIgb2xkSGFzQ3h0ID0gb2xkQ3h0S2V5W2ldID09PSBUUlVFO1xuICAgIHZhciBuZXdIYXNDeHQgPSBuZXdDeHRLZXlbaV0gPT09IFRSVUU7XG4gICAgdmFyIGN4dEhhc0RpZmZlZCA9IG9sZEhhc0N4dCAhPT0gbmV3SGFzQ3h0O1xuICAgIHZhciBjeHRIYXNNYXBwZWRQcm9wcyA9IGN4dC5tYXBwZWRQcm9wZXJ0aWVzLmxlbmd0aCA+IDA7XG4gICAgaWYgKGN4dEhhc0RpZmZlZCB8fCBuZXdIYXNDeHQgJiYgY3h0SGFzTWFwcGVkUHJvcHMpIHtcbiAgICAgIHZhciBwcm9wcyA9IHZvaWQgMDtcbiAgICAgIGlmIChjeHRIYXNEaWZmZWQgJiYgY3h0SGFzTWFwcGVkUHJvcHMpIHtcbiAgICAgICAgcHJvcHMgPSBjeHQucHJvcGVydGllczsgLy8gc3VmZmljZXMgYi9jIG1hcHBlZFByb3BlcnRpZXMgaXMgYSBzdWJzZXQgb2YgcHJvcGVydGllc1xuICAgICAgfSBlbHNlIGlmIChjeHRIYXNEaWZmZWQpIHtcbiAgICAgICAgcHJvcHMgPSBjeHQucHJvcGVydGllczsgLy8gbmVlZCB0byBjaGVjayB0aGVtIGFsbFxuICAgICAgfSBlbHNlIGlmIChjeHRIYXNNYXBwZWRQcm9wcykge1xuICAgICAgICBwcm9wcyA9IGN4dC5tYXBwZWRQcm9wZXJ0aWVzOyAvLyBvbmx5IG5lZWQgdG8gY2hlY2sgbWFwcGVkXG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcHJvcHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgdmFyIHByb3AgPSBwcm9wc1tqXTtcbiAgICAgICAgdmFyIG5hbWUgPSBwcm9wLm5hbWU7XG5cbiAgICAgICAgLy8gaWYgYSBsYXRlciBjb250ZXh0IG92ZXJyaWRlcyB0aGlzIHByb3BlcnR5LCB0aGVuIHRoZSBmYWN0IHRoYXQgdGhpcyBjb250ZXh0IGhhcyBzd2l0Y2hlZC9kaWZmZWQgZG9lc24ndCBtYXR0ZXJcbiAgICAgICAgLy8gKHNlbWkgZXhwZW5zaXZlIGNoZWNrIHNpbmNlIGl0IG1ha2VzIHRoaXMgZnVuY3Rpb24gTyhuXjIpIG9uIGNvbnRleHQgbGVuZ3RoLCBidXQgd29ydGggaXQgc2luY2Ugb3ZlcmFsbCByZXN1bHRcbiAgICAgICAgLy8gaXMgY2FjaGVkKVxuICAgICAgICB2YXIgbGF0ZXJDeHRPdmVycmlkZXMgPSBmYWxzZTtcbiAgICAgICAgZm9yICh2YXIgayA9IGkgKyAxOyBrIDwgc2VsZi5sZW5ndGg7IGsrKykge1xuICAgICAgICAgIHZhciBsYXRlckN4dCA9IHNlbGZba107XG4gICAgICAgICAgdmFyIGhhc0xhdGVyQ3h0ID0gbmV3Q3h0S2V5W2tdID09PSBUUlVFO1xuICAgICAgICAgIGlmICghaGFzTGF0ZXJDeHQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH0gLy8gY2FuJ3Qgb3ZlcnJpZGUgdW5sZXNzIHRoZSBjb250ZXh0IGlzIGFjdGl2ZVxuXG4gICAgICAgICAgbGF0ZXJDeHRPdmVycmlkZXMgPSBsYXRlckN4dC5wcm9wZXJ0aWVzW3Byb3AubmFtZV0gIT0gbnVsbDtcbiAgICAgICAgICBpZiAobGF0ZXJDeHRPdmVycmlkZXMpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gLy8gZXhpdCBlYXJseSBhcyBsb25nIGFzIG9uZSBsYXRlciBjb250ZXh0IG92ZXJyaWRlc1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFhZGRlZFByb3BbbmFtZV0gJiYgIWxhdGVyQ3h0T3ZlcnJpZGVzKSB7XG4gICAgICAgICAgYWRkZWRQcm9wW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgICBkaWZmUHJvcHMucHVzaChuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBmb3IgcHJvcHNcbiAgICB9IC8vIGlmXG4gIH0gLy8gZm9yIGNvbnRleHRzXG5cbiAgY2FjaGVbZHVhbEN4dEtleV0gPSBkaWZmUHJvcHM7XG4gIHJldHVybiBkaWZmUHJvcHM7XG59O1xuc3R5Zm4kOC5nZXRDb250ZXh0TWV0YSA9IGZ1bmN0aW9uIChlbGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgY3h0S2V5ID0gJyc7XG4gIHZhciBkaWZmUHJvcHM7XG4gIHZhciBwcmV2S2V5ID0gZWxlLl9wcml2YXRlLnN0eWxlQ3h0S2V5IHx8ICcnO1xuXG4gIC8vIGdldCB0aGUgY3h0IGtleVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGYubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgY29udGV4dCA9IHNlbGZbaV07XG4gICAgdmFyIGNvbnRleHRTZWxlY3Rvck1hdGNoZXMgPSBjb250ZXh0LnNlbGVjdG9yICYmIGNvbnRleHQuc2VsZWN0b3IubWF0Y2hlcyhlbGUpOyAvLyBOQjogY29udGV4dC5zZWxlY3RvciBtYXkgYmUgbnVsbCBmb3IgJ2NvcmUnXG5cbiAgICBpZiAoY29udGV4dFNlbGVjdG9yTWF0Y2hlcykge1xuICAgICAgY3h0S2V5ICs9IFRSVUU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN4dEtleSArPSBGQUxTRTtcbiAgICB9XG4gIH0gLy8gZm9yIGNvbnRleHRcblxuICBkaWZmUHJvcHMgPSBzZWxmLmdldFByb3BlcnRpZXNEaWZmKHByZXZLZXksIGN4dEtleSk7XG4gIGVsZS5fcHJpdmF0ZS5zdHlsZUN4dEtleSA9IGN4dEtleTtcbiAgcmV0dXJuIHtcbiAgICBrZXk6IGN4dEtleSxcbiAgICBkaWZmUHJvcE5hbWVzOiBkaWZmUHJvcHMsXG4gICAgZW1wdHk6IGRpZmZQcm9wcy5sZW5ndGggPT09IDBcbiAgfTtcbn07XG5cbi8vIGdldHMgYSBjb21wdXRlZCBlbGUgc3R5bGUgb2JqZWN0IGJhc2VkIG9uIG1hdGNoZWQgY29udGV4dHNcbnN0eWZuJDguZ2V0Q29udGV4dFN0eWxlID0gZnVuY3Rpb24gKGN4dE1ldGEpIHtcbiAgdmFyIGN4dEtleSA9IGN4dE1ldGEua2V5O1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBjeHRTdHlsZXMgPSB0aGlzLl9wcml2YXRlLmNvbnRleHRTdHlsZXMgPSB0aGlzLl9wcml2YXRlLmNvbnRleHRTdHlsZXMgfHwge307XG5cbiAgLy8gaWYgYWxyZWFkeSBjb21wdXRlZCBzdHlsZSwgcmV0dXJuZWQgY2FjaGVkIGNvcHlcbiAgaWYgKGN4dFN0eWxlc1tjeHRLZXldKSB7XG4gICAgcmV0dXJuIGN4dFN0eWxlc1tjeHRLZXldO1xuICB9XG4gIHZhciBzdHlsZSA9IHtcbiAgICBfcHJpdmF0ZToge1xuICAgICAga2V5OiBjeHRLZXlcbiAgICB9XG4gIH07XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZi5sZW5ndGg7IGkrKykge1xuICAgIHZhciBjeHQgPSBzZWxmW2ldO1xuICAgIHZhciBoYXNDeHQgPSBjeHRLZXlbaV0gPT09IFRSVUU7XG4gICAgaWYgKCFoYXNDeHQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGN4dC5wcm9wZXJ0aWVzLmxlbmd0aDsgaisrKSB7XG4gICAgICB2YXIgcHJvcCA9IGN4dC5wcm9wZXJ0aWVzW2pdO1xuICAgICAgc3R5bGVbcHJvcC5uYW1lXSA9IHByb3A7XG4gICAgfVxuICB9XG4gIGN4dFN0eWxlc1tjeHRLZXldID0gc3R5bGU7XG4gIHJldHVybiBzdHlsZTtcbn07XG5zdHlmbiQ4LmFwcGx5Q29udGV4dFN0eWxlID0gZnVuY3Rpb24gKGN4dE1ldGEsIGN4dFN0eWxlLCBlbGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgZGlmZlByb3BzID0gY3h0TWV0YS5kaWZmUHJvcE5hbWVzO1xuICB2YXIgcmV0RGlmZlByb3BzID0ge307XG4gIHZhciB0eXBlcyA9IHNlbGYudHlwZXM7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZGlmZlByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRpZmZQcm9wTmFtZSA9IGRpZmZQcm9wc1tpXTtcbiAgICB2YXIgY3h0UHJvcCA9IGN4dFN0eWxlW2RpZmZQcm9wTmFtZV07XG4gICAgdmFyIGVsZVByb3AgPSBlbGUucHN0eWxlKGRpZmZQcm9wTmFtZSk7XG4gICAgaWYgKCFjeHRQcm9wKSB7XG4gICAgICAvLyBubyBjb250ZXh0IHByb3AgbWVhbnMgZGVsZXRlXG4gICAgICBpZiAoIWVsZVByb3ApIHtcbiAgICAgICAgY29udGludWU7IC8vIG5vIGV4aXN0aW5nIHByb3AgbWVhbnMgbm90aGluZyBuZWVkcyB0byBiZSByZW1vdmVkXG4gICAgICAgIC8vIG5iIGFmZmVjdHMgaW5pdGlhbCBhcHBsaWNhdGlvbiBvbiBtYXBwZWQgdmFsdWVzIGxpa2UgY29udHJvbC1wb2ludC1kaXN0YW5jZXNcbiAgICAgIH0gZWxzZSBpZiAoZWxlUHJvcC5ieXBhc3MpIHtcbiAgICAgICAgY3h0UHJvcCA9IHtcbiAgICAgICAgICBuYW1lOiBkaWZmUHJvcE5hbWUsXG4gICAgICAgICAgZGVsZXRlQnlwYXNzZWQ6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN4dFByb3AgPSB7XG4gICAgICAgICAgbmFtZTogZGlmZlByb3BOYW1lLFxuICAgICAgICAgIFwiZGVsZXRlXCI6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzYXZlIGN5Y2xlcyB3aGVuIHRoZSBjb250ZXh0IHByb3AgZG9lc24ndCBuZWVkIHRvIGJlIGFwcGxpZWRcbiAgICBpZiAoZWxlUHJvcCA9PT0gY3h0UHJvcCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gc2F2ZSBjeWNsZXMgd2hlbiBhIG1hcHBlZCBjb250ZXh0IHByb3AgZG9lc24ndCBuZWVkIHRvIGJlIGFwcGxpZWRcbiAgICBpZiAoY3h0UHJvcC5tYXBwZWQgPT09IHR5cGVzLmZuIC8vIGNvbnRleHQgcHJvcCBpcyBmdW5jdGlvbiBtYXBwZXJcbiAgICAmJiBlbGVQcm9wICE9IG51bGwgLy8gc29tZSBwcm9wcyBjYW4gYmUgbnVsbCBldmVuIGJ5IGRlZmF1bHQgKGUuZy4gYSBwcm9wIHRoYXQgb3ZlcnJpZGVzIGFub3RoZXIgb25lKVxuICAgICYmIGVsZVByb3AubWFwcGluZyAhPSBudWxsIC8vIGVsZSBwcm9wIGlzIGEgY29uY3JldGUgdmFsdWUgZnJvbSBmcm9tIGEgbWFwcGVyXG4gICAgJiYgZWxlUHJvcC5tYXBwaW5nLnZhbHVlID09PSBjeHRQcm9wLnZhbHVlIC8vIHRoZSBjdXJyZW50IHByb3Agb24gdGhlIGVsZSBpcyBhIGZsYXQgcHJvcCB2YWx1ZSBmb3IgdGhlIGZ1bmN0aW9uIG1hcHBlclxuICAgICkge1xuICAgICAgLy8gTkIgZG9uJ3Qgd3JpdGUgdG8gY3h0UHJvcCwgYXMgaXQncyBzaGFyZWQgYW1vbmcgZWxlcyAoc3RvcmVkIGluIHN0eWxlc2hlZXQpXG4gICAgICB2YXIgbWFwcGluZyA9IGVsZVByb3AubWFwcGluZzsgLy8gY2FuIHdyaXRlIHRvIG1hcHBpbmcsIGFzIGl0J3MgYSBwZXItZWxlIGNvcHlcbiAgICAgIHZhciBmblZhbHVlID0gbWFwcGluZy5mblZhbHVlID0gY3h0UHJvcC52YWx1ZShlbGUpOyAvLyB0ZW1wb3JhcmlseSBjYWNoZSB0aGUgdmFsdWUgaW4gY2FzZSBvZiBhIG1pc3NcblxuICAgICAgaWYgKGZuVmFsdWUgPT09IG1hcHBpbmcucHJldkZuVmFsdWUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciByZXREaWZmUHJvcCA9IHJldERpZmZQcm9wc1tkaWZmUHJvcE5hbWVdID0ge1xuICAgICAgcHJldjogZWxlUHJvcFxuICAgIH07XG4gICAgc2VsZi5hcHBseVBhcnNlZFByb3BlcnR5KGVsZSwgY3h0UHJvcCk7XG4gICAgcmV0RGlmZlByb3AubmV4dCA9IGVsZS5wc3R5bGUoZGlmZlByb3BOYW1lKTtcbiAgICBpZiAocmV0RGlmZlByb3AubmV4dCAmJiByZXREaWZmUHJvcC5uZXh0LmJ5cGFzcykge1xuICAgICAgcmV0RGlmZlByb3AubmV4dCA9IHJldERpZmZQcm9wLm5leHQuYnlwYXNzZWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgZGlmZlByb3BzOiByZXREaWZmUHJvcHNcbiAgfTtcbn07XG5zdHlmbiQ4LnVwZGF0ZVN0eWxlSGludHMgPSBmdW5jdGlvbiAoZWxlKSB7XG4gIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgcHJvcE5hbWVzID0gc2VsZi5wcm9wZXJ0eUdyb3VwTmFtZXM7XG4gIHZhciBwcm9wR3JLZXlzID0gc2VsZi5wcm9wZXJ0eUdyb3VwS2V5cztcbiAgdmFyIHByb3BIYXNoID0gZnVuY3Rpb24gcHJvcEhhc2goZWxlLCBwcm9wTmFtZXMsIHNlZWRLZXkpIHtcbiAgICByZXR1cm4gc2VsZi5nZXRQcm9wZXJ0aWVzSGFzaChlbGUsIHByb3BOYW1lcywgc2VlZEtleSk7XG4gIH07XG4gIHZhciBvbGRTdHlsZUtleSA9IF9wLnN0eWxlS2V5O1xuICBpZiAoZWxlLnJlbW92ZWQoKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgaXNOb2RlID0gX3AuZ3JvdXAgPT09ICdub2Rlcyc7XG5cbiAgLy8gZ2V0IHRoZSBzdHlsZSBrZXkgaGFzaGVzIHBlciBwcm9wIGdyb3VwXG4gIC8vIGJ1dCBsYXppbHkgLS0gb25seSB1c2Ugbm9uLWRlZmF1bHQgcHJvcCB2YWx1ZXMgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgaGFzaGVzXG4gIC8vXG5cbiAgdmFyIG92ZXJyaWRkZW5TdHlsZXMgPSBlbGUuX3ByaXZhdGUuc3R5bGU7XG4gIHByb3BOYW1lcyA9IE9iamVjdC5rZXlzKG92ZXJyaWRkZW5TdHlsZXMpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BHcktleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZ3JLZXkgPSBwcm9wR3JLZXlzW2ldO1xuICAgIF9wLnN0eWxlS2V5c1tncktleV0gPSBbREVGQVVMVF9IQVNIX1NFRUQsIERFRkFVTFRfSEFTSF9TRUVEX0FMVF07XG4gIH1cbiAgdmFyIHVwZGF0ZUdyS2V5MSA9IGZ1bmN0aW9uIHVwZGF0ZUdyS2V5MSh2YWwsIGdyS2V5KSB7XG4gICAgcmV0dXJuIF9wLnN0eWxlS2V5c1tncktleV1bMF0gPSBoYXNoSW50KHZhbCwgX3Auc3R5bGVLZXlzW2dyS2V5XVswXSk7XG4gIH07XG4gIHZhciB1cGRhdGVHcktleTIgPSBmdW5jdGlvbiB1cGRhdGVHcktleTIodmFsLCBncktleSkge1xuICAgIHJldHVybiBfcC5zdHlsZUtleXNbZ3JLZXldWzFdID0gaGFzaEludEFsdCh2YWwsIF9wLnN0eWxlS2V5c1tncktleV1bMV0pO1xuICB9O1xuICB2YXIgdXBkYXRlR3JLZXkgPSBmdW5jdGlvbiB1cGRhdGVHcktleSh2YWwsIGdyS2V5KSB7XG4gICAgdXBkYXRlR3JLZXkxKHZhbCwgZ3JLZXkpO1xuICAgIHVwZGF0ZUdyS2V5Mih2YWwsIGdyS2V5KTtcbiAgfTtcbiAgdmFyIHVwZGF0ZUdyS2V5V1N0ciA9IGZ1bmN0aW9uIHVwZGF0ZUdyS2V5V1N0cihzdHJWYWwsIGdyS2V5KSB7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJWYWwubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBjaCA9IHN0clZhbC5jaGFyQ29kZUF0KGopO1xuICAgICAgdXBkYXRlR3JLZXkxKGNoLCBncktleSk7XG4gICAgICB1cGRhdGVHcktleTIoY2gsIGdyS2V5KTtcbiAgICB9XG4gIH07XG5cbiAgLy8gLSBoYXNoaW5nIHdvcmtzIG9uIDMyIGJpdCBpbnRzIGIvYyB3ZSB1c2UgYml0d2lzZSBvcHNcbiAgLy8gLSBzbWFsbCBudW1iZXJzIGdldCBjdXQgb2ZmIChlLmcuIDAuMTIzIGlzIHNlZW4gYXMgMCBieSB0aGUgaGFzaGluZyBmdW5jdGlvbilcbiAgLy8gLSByYWlzZSB1cCBzbWFsbCBudW1iZXJzIHNvIG1vcmUgc2lnbmlmaWNhbnQgZGlnaXRzIGFyZSBzZWVuIGJ5IGhhc2hpbmdcbiAgLy8gLSBtYWtlIHNtYWxsIG51bWJlcnMgbGFyZ2VyIHRoYW4gYSBub3JtYWwgdmFsdWUgdG8gYXZvaWQgY29sbGlzaW9uc1xuICAvLyAtIHdvcmtzIGluIHByYWN0aWNlIGFuZCBpdCdzIHJlbGF0aXZlbHkgY2hlYXBcbiAgdmFyIE4gPSAyMDAwMDAwMDAwO1xuICB2YXIgY2xlYW5OdW0gPSBmdW5jdGlvbiBjbGVhbk51bSh2YWwpIHtcbiAgICByZXR1cm4gLTEyOCA8IHZhbCAmJiB2YWwgPCAxMjggJiYgTWF0aC5mbG9vcih2YWwpICE9PSB2YWwgPyBOIC0gKHZhbCAqIDEwMjQgfCAwKSA6IHZhbDtcbiAgfTtcbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHByb3BOYW1lcy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgbmFtZSA9IHByb3BOYW1lc1tfaV07XG4gICAgdmFyIHBhcnNlZFByb3AgPSBvdmVycmlkZGVuU3R5bGVzW25hbWVdO1xuICAgIGlmIChwYXJzZWRQcm9wID09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICB2YXIgcHJvcEluZm8gPSB0aGlzLnByb3BlcnRpZXNbbmFtZV07XG4gICAgdmFyIHR5cGUgPSBwcm9wSW5mby50eXBlO1xuICAgIHZhciBfZ3JLZXkgPSBwcm9wSW5mby5ncm91cEtleTtcbiAgICB2YXIgbm9ybWFsaXplZE51bWJlclZhbCA9IHZvaWQgMDtcbiAgICBpZiAocHJvcEluZm8uaGFzaE92ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIG5vcm1hbGl6ZWROdW1iZXJWYWwgPSBwcm9wSW5mby5oYXNoT3ZlcnJpZGUoZWxlLCBwYXJzZWRQcm9wKTtcbiAgICB9IGVsc2UgaWYgKHBhcnNlZFByb3AucGZWYWx1ZSAhPSBudWxsKSB7XG4gICAgICBub3JtYWxpemVkTnVtYmVyVmFsID0gcGFyc2VkUHJvcC5wZlZhbHVlO1xuICAgIH1cblxuICAgIC8vIG1pZ2h0IG5vdCBiZSBhIG51bWJlciBpZiBpdCBhbGxvd3MgZW51bXNcbiAgICB2YXIgbnVtYmVyVmFsID0gcHJvcEluZm8uZW51bXMgPT0gbnVsbCA/IHBhcnNlZFByb3AudmFsdWUgOiBudWxsO1xuICAgIHZhciBoYXZlTm9ybU51bSA9IG5vcm1hbGl6ZWROdW1iZXJWYWwgIT0gbnVsbDtcbiAgICB2YXIgaGF2ZVVuaXRlZE51bSA9IG51bWJlclZhbCAhPSBudWxsO1xuICAgIHZhciBoYXZlTnVtID0gaGF2ZU5vcm1OdW0gfHwgaGF2ZVVuaXRlZE51bTtcbiAgICB2YXIgdW5pdHMgPSBwYXJzZWRQcm9wLnVuaXRzO1xuXG4gICAgLy8gbnVtYmVycyBhcmUgY2hlYXBlciB0byBoYXNoIHRoYW4gc3RyaW5nc1xuICAgIC8vIDEgaGFzaCBvcCB2cyBuIGhhc2ggb3BzIChmb3IgbGVuZ3RoIG4gc3RyaW5nKVxuICAgIGlmICh0eXBlLm51bWJlciAmJiBoYXZlTnVtICYmICF0eXBlLm11bHRpcGxlKSB7XG4gICAgICB2YXIgdiA9IGhhdmVOb3JtTnVtID8gbm9ybWFsaXplZE51bWJlclZhbCA6IG51bWJlclZhbDtcbiAgICAgIHVwZGF0ZUdyS2V5KGNsZWFuTnVtKHYpLCBfZ3JLZXkpO1xuICAgICAgaWYgKCFoYXZlTm9ybU51bSAmJiB1bml0cyAhPSBudWxsKSB7XG4gICAgICAgIHVwZGF0ZUdyS2V5V1N0cih1bml0cywgX2dyS2V5KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdXBkYXRlR3JLZXlXU3RyKHBhcnNlZFByb3Auc3RyVmFsdWUsIF9ncktleSk7XG4gICAgfVxuICB9XG5cbiAgLy8gb3ZlcmFsbCBzdHlsZSBrZXlcbiAgLy9cblxuICB2YXIgaGFzaCA9IFtERUZBVUxUX0hBU0hfU0VFRCwgREVGQVVMVF9IQVNIX1NFRURfQUxUXTtcbiAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgcHJvcEdyS2V5cy5sZW5ndGg7IF9pMisrKSB7XG4gICAgdmFyIF9ncktleTIgPSBwcm9wR3JLZXlzW19pMl07XG4gICAgdmFyIGdySGFzaCA9IF9wLnN0eWxlS2V5c1tfZ3JLZXkyXTtcbiAgICBoYXNoWzBdID0gaGFzaEludChnckhhc2hbMF0sIGhhc2hbMF0pO1xuICAgIGhhc2hbMV0gPSBoYXNoSW50QWx0KGdySGFzaFsxXSwgaGFzaFsxXSk7XG4gIH1cbiAgX3Auc3R5bGVLZXkgPSBjb21iaW5lSGFzaGVzKGhhc2hbMF0sIGhhc2hbMV0pO1xuXG4gIC8vIGxhYmVsIGRpbXNcbiAgLy9cblxuICB2YXIgc2sgPSBfcC5zdHlsZUtleXM7XG4gIF9wLmxhYmVsRGltc0tleSA9IGNvbWJpbmVIYXNoZXNBcnJheShzay5sYWJlbERpbWVuc2lvbnMpO1xuICB2YXIgbGFiZWxLZXlzID0gcHJvcEhhc2goZWxlLCBbJ2xhYmVsJ10sIHNrLmxhYmVsRGltZW5zaW9ucyk7XG4gIF9wLmxhYmVsS2V5ID0gY29tYmluZUhhc2hlc0FycmF5KGxhYmVsS2V5cyk7XG4gIF9wLmxhYmVsU3R5bGVLZXkgPSBjb21iaW5lSGFzaGVzQXJyYXkoaGFzaEFycmF5cyhzay5jb21tb25MYWJlbCwgbGFiZWxLZXlzKSk7XG4gIGlmICghaXNOb2RlKSB7XG4gICAgdmFyIHNvdXJjZUxhYmVsS2V5cyA9IHByb3BIYXNoKGVsZSwgWydzb3VyY2UtbGFiZWwnXSwgc2subGFiZWxEaW1lbnNpb25zKTtcbiAgICBfcC5zb3VyY2VMYWJlbEtleSA9IGNvbWJpbmVIYXNoZXNBcnJheShzb3VyY2VMYWJlbEtleXMpO1xuICAgIF9wLnNvdXJjZUxhYmVsU3R5bGVLZXkgPSBjb21iaW5lSGFzaGVzQXJyYXkoaGFzaEFycmF5cyhzay5jb21tb25MYWJlbCwgc291cmNlTGFiZWxLZXlzKSk7XG4gICAgdmFyIHRhcmdldExhYmVsS2V5cyA9IHByb3BIYXNoKGVsZSwgWyd0YXJnZXQtbGFiZWwnXSwgc2subGFiZWxEaW1lbnNpb25zKTtcbiAgICBfcC50YXJnZXRMYWJlbEtleSA9IGNvbWJpbmVIYXNoZXNBcnJheSh0YXJnZXRMYWJlbEtleXMpO1xuICAgIF9wLnRhcmdldExhYmVsU3R5bGVLZXkgPSBjb21iaW5lSGFzaGVzQXJyYXkoaGFzaEFycmF5cyhzay5jb21tb25MYWJlbCwgdGFyZ2V0TGFiZWxLZXlzKSk7XG4gIH1cblxuICAvLyBub2RlXG4gIC8vXG5cbiAgaWYgKGlzTm9kZSkge1xuICAgIHZhciBfcCRzdHlsZUtleXMgPSBfcC5zdHlsZUtleXMsXG4gICAgICBub2RlQm9keSA9IF9wJHN0eWxlS2V5cy5ub2RlQm9keSxcbiAgICAgIG5vZGVCb3JkZXIgPSBfcCRzdHlsZUtleXMubm9kZUJvcmRlcixcbiAgICAgIG5vZGVPdXRsaW5lID0gX3Akc3R5bGVLZXlzLm5vZGVPdXRsaW5lLFxuICAgICAgYmFja2dyb3VuZEltYWdlID0gX3Akc3R5bGVLZXlzLmJhY2tncm91bmRJbWFnZSxcbiAgICAgIGNvbXBvdW5kID0gX3Akc3R5bGVLZXlzLmNvbXBvdW5kLFxuICAgICAgcGllID0gX3Akc3R5bGVLZXlzLnBpZTtcbiAgICB2YXIgbm9kZUtleXMgPSBbbm9kZUJvZHksIG5vZGVCb3JkZXIsIG5vZGVPdXRsaW5lLCBiYWNrZ3JvdW5kSW1hZ2UsIGNvbXBvdW5kLCBwaWVdLmZpbHRlcihmdW5jdGlvbiAoaykge1xuICAgICAgcmV0dXJuIGsgIT0gbnVsbDtcbiAgICB9KS5yZWR1Y2UoaGFzaEFycmF5cywgW0RFRkFVTFRfSEFTSF9TRUVELCBERUZBVUxUX0hBU0hfU0VFRF9BTFRdKTtcbiAgICBfcC5ub2RlS2V5ID0gY29tYmluZUhhc2hlc0FycmF5KG5vZGVLZXlzKTtcbiAgICBfcC5oYXNQaWUgPSBwaWUgIT0gbnVsbCAmJiBwaWVbMF0gIT09IERFRkFVTFRfSEFTSF9TRUVEICYmIHBpZVsxXSAhPT0gREVGQVVMVF9IQVNIX1NFRURfQUxUO1xuICB9XG4gIHJldHVybiBvbGRTdHlsZUtleSAhPT0gX3Auc3R5bGVLZXk7XG59O1xuc3R5Zm4kOC5jbGVhclN0eWxlSGludHMgPSBmdW5jdGlvbiAoZWxlKSB7XG4gIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgX3Auc3R5bGVDeHRLZXkgPSAnJztcbiAgX3Auc3R5bGVLZXlzID0ge307XG4gIF9wLnN0eWxlS2V5ID0gbnVsbDtcbiAgX3AubGFiZWxLZXkgPSBudWxsO1xuICBfcC5sYWJlbFN0eWxlS2V5ID0gbnVsbDtcbiAgX3Auc291cmNlTGFiZWxLZXkgPSBudWxsO1xuICBfcC5zb3VyY2VMYWJlbFN0eWxlS2V5ID0gbnVsbDtcbiAgX3AudGFyZ2V0TGFiZWxLZXkgPSBudWxsO1xuICBfcC50YXJnZXRMYWJlbFN0eWxlS2V5ID0gbnVsbDtcbiAgX3Aubm9kZUtleSA9IG51bGw7XG4gIF9wLmhhc1BpZSA9IG51bGw7XG59O1xuXG4vLyBhcHBseSBhIHByb3BlcnR5IHRvIHRoZSBzdHlsZSAoZm9yIGludGVybmFsIHVzZSlcbi8vIHJldHVybnMgd2hldGhlciBhcHBsaWNhdGlvbiB3YXMgc3VjY2Vzc2Z1bFxuLy9cbi8vIG5vdywgdGhpcyBmdW5jdGlvbiBmbGF0dGVucyB0aGUgcHJvcGVydHksIGFuZCBoZXJlJ3MgaG93OlxuLy9cbi8vIGZvciBwYXJzZWRQcm9wOnsgYnlwYXNzOiB0cnVlLCBkZWxldGVCeXBhc3M6IHRydWUgfVxuLy8gbm8gcHJvcGVydHkgaXMgZ2VuZXJhdGVkLCBpbnN0ZWFkIHRoZSBieXBhc3MgcHJvcGVydHkgaW4gdGhlXG4vLyBlbGVtZW50J3Mgc3R5bGUgaXMgcmVwbGFjZWQgYnkgd2hhdCdzIHBvaW50ZWQgdG8gYnkgdGhlIGBieXBhc3NlZGBcbi8vIGZpZWxkIGluIHRoZSBieXBhc3MgcHJvcGVydHkgKGkuZS4gcmVzdG9yaW5nIHRoZSBwcm9wZXJ0eSB0aGVcbi8vIGJ5cGFzcyB3YXMgb3ZlcnJpZGluZylcbi8vXG4vLyBmb3IgcGFyc2VkUHJvcDp7IG1hcHBlZDogdHJ1dGh5IH1cbi8vIHRoZSBnZW5lcmF0ZWQgZmxhdHRlbmVkUHJvcDp7IG1hcHBpbmc6IHByb3AgfVxuLy9cbi8vIGZvciBwYXJzZWRQcm9wOnsgYnlwYXNzOiB0cnVlIH1cbi8vIHRoZSBnZW5lcmF0ZWQgZmxhdHRlbmVkUHJvcDp7IGJ5cGFzc2VkOiBwYXJzZWRQcm9wIH1cbnN0eWZuJDguYXBwbHlQYXJzZWRQcm9wZXJ0eSA9IGZ1bmN0aW9uIChlbGUsIHBhcnNlZFByb3ApIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgcHJvcCA9IHBhcnNlZFByb3A7XG4gIHZhciBzdHlsZSA9IGVsZS5fcHJpdmF0ZS5zdHlsZTtcbiAgdmFyIGZsYXRQcm9wO1xuICB2YXIgdHlwZXMgPSBzZWxmLnR5cGVzO1xuICB2YXIgdHlwZSA9IHNlbGYucHJvcGVydGllc1twcm9wLm5hbWVdLnR5cGU7XG4gIHZhciBwcm9wSXNCeXBhc3MgPSBwcm9wLmJ5cGFzcztcbiAgdmFyIG9yaWdQcm9wID0gc3R5bGVbcHJvcC5uYW1lXTtcbiAgdmFyIG9yaWdQcm9wSXNCeXBhc3MgPSBvcmlnUHJvcCAmJiBvcmlnUHJvcC5ieXBhc3M7XG4gIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgdmFyIGZsYXRQcm9wTWFwcGluZyA9ICdtYXBwaW5nJztcbiAgdmFyIGdldFZhbCA9IGZ1bmN0aW9uIGdldFZhbChwKSB7XG4gICAgaWYgKHAgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChwLnBmVmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHAucGZWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHAudmFsdWU7XG4gICAgfVxuICB9O1xuICB2YXIgY2hlY2tUcmlnZ2VycyA9IGZ1bmN0aW9uIGNoZWNrVHJpZ2dlcnMoKSB7XG4gICAgdmFyIGZyb21WYWwgPSBnZXRWYWwob3JpZ1Byb3ApO1xuICAgIHZhciB0b1ZhbCA9IGdldFZhbChwcm9wKTtcbiAgICBzZWxmLmNoZWNrVHJpZ2dlcnMoZWxlLCBwcm9wLm5hbWUsIGZyb21WYWwsIHRvVmFsKTtcbiAgfTtcblxuICAvLyBlZGdlIHNhbml0eSBjaGVja3MgdG8gcHJldmVudCB0aGUgY2xpZW50IGZyb20gbWFraW5nIHNlcmlvdXMgbWlzdGFrZXNcbiAgaWYgKHBhcnNlZFByb3AubmFtZSA9PT0gJ2N1cnZlLXN0eWxlJyAmJiBlbGUuaXNFZGdlKCkgJiYgKFxuICAvLyBsb29wcyBtdXN0IGJlIGJ1bmRsZWQgYmV6aWVyc1xuICBwYXJzZWRQcm9wLnZhbHVlICE9PSAnYmV6aWVyJyAmJiBlbGUuaXNMb29wKCkgfHxcbiAgLy8gZWRnZXMgY29ubmVjdGVkIHRvIGNvbXBvdW5kIG5vZGVzIGNhbiBub3QgYmUgaGF5c3RhY2tzXG4gIHBhcnNlZFByb3AudmFsdWUgPT09ICdoYXlzdGFjaycgJiYgKGVsZS5zb3VyY2UoKS5pc1BhcmVudCgpIHx8IGVsZS50YXJnZXQoKS5pc1BhcmVudCgpKSkpIHtcbiAgICBwcm9wID0gcGFyc2VkUHJvcCA9IHRoaXMucGFyc2UocGFyc2VkUHJvcC5uYW1lLCAnYmV6aWVyJywgcHJvcElzQnlwYXNzKTtcbiAgfVxuICBpZiAocHJvcFtcImRlbGV0ZVwiXSkge1xuICAgIC8vIGRlbGV0ZSB0aGUgcHJvcGVydHkgYW5kIHVzZSB0aGUgZGVmYXVsdCB2YWx1ZSBvbiBmYWxzZXkgdmFsdWVcbiAgICBzdHlsZVtwcm9wLm5hbWVdID0gdW5kZWZpbmVkO1xuICAgIGNoZWNrVHJpZ2dlcnMoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAocHJvcC5kZWxldGVCeXBhc3NlZCkge1xuICAgIC8vIGRlbGV0ZSB0aGUgcHJvcGVydHkgdGhhdCB0aGVcbiAgICBpZiAoIW9yaWdQcm9wKSB7XG4gICAgICBjaGVja1RyaWdnZXJzKCk7XG4gICAgICByZXR1cm4gdHJ1ZTsgLy8gY2FuJ3QgZGVsZXRlIGlmIG5vIHByb3BcbiAgICB9IGVsc2UgaWYgKG9yaWdQcm9wLmJ5cGFzcykge1xuICAgICAgLy8gZGVsZXRlIGJ5cGFzc2VkXG4gICAgICBvcmlnUHJvcC5ieXBhc3NlZCA9IHVuZGVmaW5lZDtcbiAgICAgIGNoZWNrVHJpZ2dlcnMoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7IC8vIHdlJ3JlIHVuc3VjY2Vzc2Z1bCBkZWxldGluZyB0aGUgYnlwYXNzZWRcbiAgICB9XG4gIH1cblxuICAvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIGRlbGV0ZSB0aGUgY3VycmVudCBieXBhc3NcbiAgaWYgKHByb3AuZGVsZXRlQnlwYXNzKSB7XG4gICAgLy8gdGhlbiB0aGlzIHByb3BlcnR5IGlzIGp1c3QgaGVyZSB0byBpbmRpY2F0ZSB3ZSBuZWVkIHRvIGRlbGV0ZVxuICAgIGlmICghb3JpZ1Byb3ApIHtcbiAgICAgIGNoZWNrVHJpZ2dlcnMoKTtcbiAgICAgIHJldHVybiB0cnVlOyAvLyBwcm9wZXJ0eSBpcyBhbHJlYWR5IG5vdCBkZWZpbmVkXG4gICAgfSBlbHNlIGlmIChvcmlnUHJvcC5ieXBhc3MpIHtcbiAgICAgIC8vIHRoZW4gcmVwbGFjZSB0aGUgYnlwYXNzIHByb3BlcnR5IHdpdGggdGhlIG9yaWdpbmFsXG4gICAgICAvLyBiZWNhdXNlIHRoZSBieXBhc3NlZCBwcm9wZXJ0eSB3YXMgYWxyZWFkeSBhcHBsaWVkIChhbmQgdGhlcmVmb3JlIHBhcnNlZCksIHdlIGNhbiBqdXN0IHJlcGxhY2UgaXQgKG5vIHJlYXBwbHlpbmcgbmVjZXNzYXJ5KVxuICAgICAgc3R5bGVbcHJvcC5uYW1lXSA9IG9yaWdQcm9wLmJ5cGFzc2VkO1xuICAgICAgY2hlY2tUcmlnZ2VycygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTsgLy8gd2UncmUgdW5zdWNjZXNzZnVsIGRlbGV0aW5nIHRoZSBieXBhc3NcbiAgICB9XG4gIH1cblxuICB2YXIgcHJpbnRNYXBwaW5nRXJyID0gZnVuY3Rpb24gcHJpbnRNYXBwaW5nRXJyKCkge1xuICAgIHdhcm4oJ0RvIG5vdCBhc3NpZ24gbWFwcGluZ3MgdG8gZWxlbWVudHMgd2l0aG91dCBjb3JyZXNwb25kaW5nIGRhdGEgKGkuZS4gZWxlIGAnICsgZWxlLmlkKCkgKyAnYCBoYXMgbm8gbWFwcGluZyBmb3IgcHJvcGVydHkgYCcgKyBwcm9wLm5hbWUgKyAnYCB3aXRoIGRhdGEgZmllbGQgYCcgKyBwcm9wLmZpZWxkICsgJ2ApOyB0cnkgYSBgWycgKyBwcm9wLmZpZWxkICsgJ11gIHNlbGVjdG9yIHRvIGxpbWl0IHNjb3BlIHRvIGVsZW1lbnRzIHdpdGggYCcgKyBwcm9wLmZpZWxkICsgJ2AgZGVmaW5lZCcpO1xuICB9O1xuXG4gIC8vIHB1dCB0aGUgcHJvcGVydHkgaW4gdGhlIHN0eWxlIG9iamVjdHNcbiAgc3dpdGNoIChwcm9wLm1hcHBlZCkge1xuICAgIC8vIGZsYXR0ZW4gdGhlIHByb3BlcnR5IGlmIG1hcHBlZFxuICAgIGNhc2UgdHlwZXMubWFwRGF0YTpcbiAgICAgIHtcbiAgICAgICAgLy8gZmxhdHRlbiB0aGUgZmllbGQgKGUuZy4gZGF0YS5mb28uYmFyKVxuICAgICAgICB2YXIgZmllbGRzID0gcHJvcC5maWVsZC5zcGxpdCgnLicpO1xuICAgICAgICB2YXIgZmllbGRWYWwgPSBfcC5kYXRhO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpZWxkcy5sZW5ndGggJiYgZmllbGRWYWw7IGkrKykge1xuICAgICAgICAgIHZhciBmaWVsZCA9IGZpZWxkc1tpXTtcbiAgICAgICAgICBmaWVsZFZhbCA9IGZpZWxkVmFsW2ZpZWxkXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmllbGRWYWwgPT0gbnVsbCkge1xuICAgICAgICAgIHByaW50TWFwcGluZ0VycigpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGVyY2VudDtcbiAgICAgICAgaWYgKCFudW1iZXIkMShmaWVsZFZhbCkpIHtcbiAgICAgICAgICAvLyB0aGVuIGRvbid0IGFwcGx5IGFuZCBmYWxsIGJhY2sgb24gdGhlIGV4aXN0aW5nIHN0eWxlXG4gICAgICAgICAgd2FybignRG8gbm90IHVzZSBjb250aW51b3VzIG1hcHBlcnMgd2l0aG91dCBzcGVjaWZ5aW5nIG51bWVyaWMgZGF0YSAoaS5lLiBgJyArIHByb3AuZmllbGQgKyAnOiAnICsgZmllbGRWYWwgKyAnYCBmb3IgYCcgKyBlbGUuaWQoKSArICdgIGlzIG5vbi1udW1lcmljKScpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgZmllbGRXaWR0aCA9IHByb3AuZmllbGRNYXggLSBwcm9wLmZpZWxkTWluO1xuICAgICAgICAgIGlmIChmaWVsZFdpZHRoID09PSAwKSB7XG4gICAgICAgICAgICAvLyBzYWZldHkgY2hlY2sgLS0gbm90IHN0cmljdGx5IG5lY2Vzc2FyeSBhcyBubyBwcm9wcyBvZiB6ZXJvIHJhbmdlIHNob3VsZCBiZSBwYXNzZWQgaGVyZVxuICAgICAgICAgICAgcGVyY2VudCA9IDA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlcmNlbnQgPSAoZmllbGRWYWwgLSBwcm9wLmZpZWxkTWluKSAvIGZpZWxkV2lkdGg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gbWFrZSBzdXJlIHRvIGJvdW5kIHBlcmNlbnQgdmFsdWVcbiAgICAgICAgaWYgKHBlcmNlbnQgPCAwKSB7XG4gICAgICAgICAgcGVyY2VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAocGVyY2VudCA+IDEpIHtcbiAgICAgICAgICBwZXJjZW50ID0gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZS5jb2xvcikge1xuICAgICAgICAgIHZhciByMSA9IHByb3AudmFsdWVNaW5bMF07XG4gICAgICAgICAgdmFyIHIyID0gcHJvcC52YWx1ZU1heFswXTtcbiAgICAgICAgICB2YXIgZzEgPSBwcm9wLnZhbHVlTWluWzFdO1xuICAgICAgICAgIHZhciBnMiA9IHByb3AudmFsdWVNYXhbMV07XG4gICAgICAgICAgdmFyIGIxID0gcHJvcC52YWx1ZU1pblsyXTtcbiAgICAgICAgICB2YXIgYjIgPSBwcm9wLnZhbHVlTWF4WzJdO1xuICAgICAgICAgIHZhciBhMSA9IHByb3AudmFsdWVNaW5bM10gPT0gbnVsbCA/IDEgOiBwcm9wLnZhbHVlTWluWzNdO1xuICAgICAgICAgIHZhciBhMiA9IHByb3AudmFsdWVNYXhbM10gPT0gbnVsbCA/IDEgOiBwcm9wLnZhbHVlTWF4WzNdO1xuICAgICAgICAgIHZhciBjbHIgPSBbTWF0aC5yb3VuZChyMSArIChyMiAtIHIxKSAqIHBlcmNlbnQpLCBNYXRoLnJvdW5kKGcxICsgKGcyIC0gZzEpICogcGVyY2VudCksIE1hdGgucm91bmQoYjEgKyAoYjIgLSBiMSkgKiBwZXJjZW50KSwgTWF0aC5yb3VuZChhMSArIChhMiAtIGExKSAqIHBlcmNlbnQpXTtcbiAgICAgICAgICBmbGF0UHJvcCA9IHtcbiAgICAgICAgICAgIC8vIGNvbG91cnMgYXJlIHNpbXBsZSwgc28ganVzdCBjcmVhdGUgdGhlIGZsYXQgcHJvcGVydHkgaW5zdGVhZCBvZiBleHBlbnNpdmUgc3RyaW5nIHBhcnNpbmdcbiAgICAgICAgICAgIGJ5cGFzczogcHJvcC5ieXBhc3MsXG4gICAgICAgICAgICAvLyB3ZSdyZSBhIGJ5cGFzcyBpZiB0aGUgbWFwcGluZyBwcm9wZXJ0eSBpcyBhIGJ5cGFzc1xuICAgICAgICAgICAgbmFtZTogcHJvcC5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IGNscixcbiAgICAgICAgICAgIHN0clZhbHVlOiAncmdiKCcgKyBjbHJbMF0gKyAnLCAnICsgY2xyWzFdICsgJywgJyArIGNsclsyXSArICcpJ1xuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZS5udW1iZXIpIHtcbiAgICAgICAgICB2YXIgY2FsY1ZhbHVlID0gcHJvcC52YWx1ZU1pbiArIChwcm9wLnZhbHVlTWF4IC0gcHJvcC52YWx1ZU1pbikgKiBwZXJjZW50O1xuICAgICAgICAgIGZsYXRQcm9wID0gdGhpcy5wYXJzZShwcm9wLm5hbWUsIGNhbGNWYWx1ZSwgcHJvcC5ieXBhc3MsIGZsYXRQcm9wTWFwcGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBjYW4gb25seSBtYXAgdG8gY29sb3VycyBhbmQgbnVtYmVyc1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFmbGF0UHJvcCkge1xuICAgICAgICAgIC8vIGlmIHdlIGNhbid0IGZsYXR0ZW4gdGhlIHByb3BlcnR5LCB0aGVuIGRvbid0IGFwcGx5IHRoZSBwcm9wZXJ0eSBhbmQgZmFsbCBiYWNrIG9uIHRoZSBleGlzdGluZyBzdHlsZVxuICAgICAgICAgIHByaW50TWFwcGluZ0VycigpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmbGF0UHJvcC5tYXBwaW5nID0gcHJvcDsgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgbWFwcGluZ1xuICAgICAgICBwcm9wID0gZmxhdFByb3A7IC8vIHRoZSBmbGF0dGVuZWQgKG1hcHBlZCkgcHJvcGVydHkgaXMgdGhlIG9uZSB3ZSB3YW50XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAvLyBkaXJlY3QgbWFwcGluZ1xuICAgIGNhc2UgdHlwZXMuZGF0YTpcbiAgICAgIHtcbiAgICAgICAgLy8gZmxhdHRlbiB0aGUgZmllbGQgKGUuZy4gZGF0YS5mb28uYmFyKVxuICAgICAgICB2YXIgX2ZpZWxkcyA9IHByb3AuZmllbGQuc3BsaXQoJy4nKTtcbiAgICAgICAgdmFyIF9maWVsZFZhbCA9IF9wLmRhdGE7XG4gICAgICAgIGZvciAodmFyIF9pMyA9IDA7IF9pMyA8IF9maWVsZHMubGVuZ3RoICYmIF9maWVsZFZhbDsgX2kzKyspIHtcbiAgICAgICAgICB2YXIgX2ZpZWxkID0gX2ZpZWxkc1tfaTNdO1xuICAgICAgICAgIF9maWVsZFZhbCA9IF9maWVsZFZhbFtfZmllbGRdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfZmllbGRWYWwgIT0gbnVsbCkge1xuICAgICAgICAgIGZsYXRQcm9wID0gdGhpcy5wYXJzZShwcm9wLm5hbWUsIF9maWVsZFZhbCwgcHJvcC5ieXBhc3MsIGZsYXRQcm9wTWFwcGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmbGF0UHJvcCkge1xuICAgICAgICAgIC8vIGlmIHdlIGNhbid0IGZsYXR0ZW4gdGhlIHByb3BlcnR5LCB0aGVuIGRvbid0IGFwcGx5IGFuZCBmYWxsIGJhY2sgb24gdGhlIGV4aXN0aW5nIHN0eWxlXG4gICAgICAgICAgcHJpbnRNYXBwaW5nRXJyKCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZsYXRQcm9wLm1hcHBpbmcgPSBwcm9wOyAvLyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBtYXBwaW5nXG4gICAgICAgIHByb3AgPSBmbGF0UHJvcDsgLy8gdGhlIGZsYXR0ZW5lZCAobWFwcGVkKSBwcm9wZXJ0eSBpcyB0aGUgb25lIHdlIHdhbnRcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICBjYXNlIHR5cGVzLmZuOlxuICAgICAge1xuICAgICAgICB2YXIgZm4gPSBwcm9wLnZhbHVlO1xuICAgICAgICB2YXIgZm5SZXRWYWwgPSBwcm9wLmZuVmFsdWUgIT0gbnVsbCA/IHByb3AuZm5WYWx1ZSA6IGZuKGVsZSk7IC8vIGNoZWNrIGZvciBjYWNoZWQgdmFsdWUgYmVmb3JlIGNhbGxpbmcgZnVuY3Rpb25cblxuICAgICAgICBwcm9wLnByZXZGblZhbHVlID0gZm5SZXRWYWw7XG4gICAgICAgIGlmIChmblJldFZhbCA9PSBudWxsKSB7XG4gICAgICAgICAgd2FybignQ3VzdG9tIGZ1bmN0aW9uIG1hcHBlcnMgbWF5IG5vdCByZXR1cm4gbnVsbCAoaS5lLiBgJyArIHByb3AubmFtZSArICdgIGZvciBlbGUgYCcgKyBlbGUuaWQoKSArICdgIGlzIG51bGwpJyk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZsYXRQcm9wID0gdGhpcy5wYXJzZShwcm9wLm5hbWUsIGZuUmV0VmFsLCBwcm9wLmJ5cGFzcywgZmxhdFByb3BNYXBwaW5nKTtcbiAgICAgICAgaWYgKCFmbGF0UHJvcCkge1xuICAgICAgICAgIHdhcm4oJ0N1c3RvbSBmdW5jdGlvbiBtYXBwZXJzIG1heSBub3QgcmV0dXJuIGludmFsaWQgdmFsdWVzIGZvciB0aGUgcHJvcGVydHkgdHlwZSAoaS5lLiBgJyArIHByb3AubmFtZSArICdgIGZvciBlbGUgYCcgKyBlbGUuaWQoKSArICdgIGlzIGludmFsaWQpJyk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZsYXRQcm9wLm1hcHBpbmcgPSBjb3B5KHByb3ApOyAvLyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBtYXBwaW5nXG4gICAgICAgIHByb3AgPSBmbGF0UHJvcDsgLy8gdGhlIGZsYXR0ZW5lZCAobWFwcGVkKSBwcm9wZXJ0eSBpcyB0aGUgb25lIHdlIHdhbnRcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgIGJyZWFrO1xuICAgIC8vIGp1c3Qgc2V0IHRoZSBwcm9wZXJ0eVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyBub3QgYSB2YWxpZCBtYXBwaW5nXG4gIH1cblxuICAvLyBpZiB0aGUgcHJvcGVydHkgaXMgYSBieXBhc3MgcHJvcGVydHksIHRoZW4gbGluayB0aGUgcmVzdWx0YW50IHByb3BlcnR5IHRvIHRoZSBvcmlnaW5hbCBvbmVcbiAgaWYgKHByb3BJc0J5cGFzcykge1xuICAgIGlmIChvcmlnUHJvcElzQnlwYXNzKSB7XG4gICAgICAvLyB0aGVuIHRoaXMgYnlwYXNzIG92ZXJyaWRlcyB0aGUgZXhpc3Rpbmcgb25lXG4gICAgICBwcm9wLmJ5cGFzc2VkID0gb3JpZ1Byb3AuYnlwYXNzZWQ7IC8vIHN0ZWFsIGJ5cGFzc2VkIHByb3AgZnJvbSBvbGQgYnlwYXNzXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoZW4gbGluayB0aGUgb3JpZyBwcm9wIHRvIHRoZSBuZXcgYnlwYXNzXG4gICAgICBwcm9wLmJ5cGFzc2VkID0gb3JpZ1Byb3A7XG4gICAgfVxuICAgIHN0eWxlW3Byb3AubmFtZV0gPSBwcm9wOyAvLyBhbmQgc2V0XG4gIH0gZWxzZSB7XG4gICAgLy8gcHJvcCBpcyBub3QgYnlwYXNzXG4gICAgaWYgKG9yaWdQcm9wSXNCeXBhc3MpIHtcbiAgICAgIC8vIHRoZW4ga2VlcCB0aGUgb3JpZyBwcm9wIChzaW5jZSBpdCdzIGEgYnlwYXNzKSBhbmQgbGluayB0byB0aGUgbmV3IHByb3BcbiAgICAgIG9yaWdQcm9wLmJ5cGFzc2VkID0gcHJvcDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhlbiBqdXN0IHJlcGxhY2UgdGhlIG9sZCBwcm9wIHdpdGggdGhlIG5ldyBvbmVcbiAgICAgIHN0eWxlW3Byb3AubmFtZV0gPSBwcm9wO1xuICAgIH1cbiAgfVxuICBjaGVja1RyaWdnZXJzKCk7XG4gIHJldHVybiB0cnVlO1xufTtcbnN0eWZuJDguY2xlYW5FbGVtZW50cyA9IGZ1bmN0aW9uIChlbGVzLCBrZWVwQnlwYXNzZXMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVsZSA9IGVsZXNbaV07XG4gICAgdGhpcy5jbGVhclN0eWxlSGludHMoZWxlKTtcbiAgICBlbGUuZGlydHlDb21wb3VuZEJvdW5kc0NhY2hlKCk7XG4gICAgZWxlLmRpcnR5Qm91bmRpbmdCb3hDYWNoZSgpO1xuICAgIGlmICgha2VlcEJ5cGFzc2VzKSB7XG4gICAgICBlbGUuX3ByaXZhdGUuc3R5bGUgPSB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHN0eWxlID0gZWxlLl9wcml2YXRlLnN0eWxlO1xuICAgICAgdmFyIHByb3BOYW1lcyA9IE9iamVjdC5rZXlzKHN0eWxlKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcHJvcE5hbWVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBwcm9wTmFtZSA9IHByb3BOYW1lc1tqXTtcbiAgICAgICAgdmFyIGVsZVByb3AgPSBzdHlsZVtwcm9wTmFtZV07XG4gICAgICAgIGlmIChlbGVQcm9wICE9IG51bGwpIHtcbiAgICAgICAgICBpZiAoZWxlUHJvcC5ieXBhc3MpIHtcbiAgICAgICAgICAgIGVsZVByb3AuYnlwYXNzZWQgPSBudWxsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdHlsZVtwcm9wTmFtZV0gPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLy8gdXBkYXRlcyB0aGUgdmlzdWFsIHN0eWxlIGZvciBhbGwgZWxlbWVudHMgKHVzZWZ1bCBmb3IgbWFudWFsIHN0eWxlIG1vZGlmaWNhdGlvbiBhZnRlciBpbml0KVxuc3R5Zm4kOC51cGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBjeSA9IHRoaXMuX3ByaXZhdGUuY3k7XG4gIHZhciBlbGVzID0gY3kubXV0YWJsZUVsZW1lbnRzKCk7XG4gIGVsZXMudXBkYXRlU3R5bGUoKTtcbn07XG5cbi8vIGRpZmZQcm9wcyA6IHsgbmFtZSA9PiB7IHByZXYsIG5leHQgfSB9XG5zdHlmbiQ4LnVwZGF0ZVRyYW5zaXRpb25zID0gZnVuY3Rpb24gKGVsZSwgZGlmZlByb3BzKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICB2YXIgcHJvcHMgPSBlbGUucHN0eWxlKCd0cmFuc2l0aW9uLXByb3BlcnR5JykudmFsdWU7XG4gIHZhciBkdXJhdGlvbiA9IGVsZS5wc3R5bGUoJ3RyYW5zaXRpb24tZHVyYXRpb24nKS5wZlZhbHVlO1xuICB2YXIgZGVsYXkgPSBlbGUucHN0eWxlKCd0cmFuc2l0aW9uLWRlbGF5JykucGZWYWx1ZTtcbiAgaWYgKHByb3BzLmxlbmd0aCA+IDAgJiYgZHVyYXRpb24gPiAwKSB7XG4gICAgdmFyIHN0eWxlID0ge307XG5cbiAgICAvLyBidWlsZCB1cCB0aGUgc3R5bGUgdG8gYW5pbWF0ZSB0b3dhcmRzXG4gICAgdmFyIGFueVByZXYgPSBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcCA9IHByb3BzW2ldO1xuICAgICAgdmFyIHN0eVByb3AgPSBlbGUucHN0eWxlKHByb3ApO1xuICAgICAgdmFyIGRpZmZQcm9wID0gZGlmZlByb3BzW3Byb3BdO1xuICAgICAgaWYgKCFkaWZmUHJvcCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciBwcmV2UHJvcCA9IGRpZmZQcm9wLnByZXY7XG4gICAgICB2YXIgZnJvbVByb3AgPSBwcmV2UHJvcDtcbiAgICAgIHZhciB0b1Byb3AgPSBkaWZmUHJvcC5uZXh0ICE9IG51bGwgPyBkaWZmUHJvcC5uZXh0IDogc3R5UHJvcDtcbiAgICAgIHZhciBkaWZmID0gZmFsc2U7XG4gICAgICB2YXIgaW5pdFZhbCA9IHZvaWQgMDtcbiAgICAgIHZhciBpbml0RHQgPSAwLjAwMDAwMTsgLy8gZGVsdGEgdGltZSAlIHZhbHVlIGZvciBpbml0VmFsIChhbGxvd3MgYW5pbWF0aW5nIG91dCBvZiBpbml0IHplcm8gb3BhY2l0eSlcblxuICAgICAgaWYgKCFmcm9tUHJvcCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gY29uc2lkZXIgcHggdmFsdWVzXG4gICAgICBpZiAobnVtYmVyJDEoZnJvbVByb3AucGZWYWx1ZSkgJiYgbnVtYmVyJDEodG9Qcm9wLnBmVmFsdWUpKSB7XG4gICAgICAgIGRpZmYgPSB0b1Byb3AucGZWYWx1ZSAtIGZyb21Qcm9wLnBmVmFsdWU7IC8vIG5vbnplcm8gaXMgdHJ1dGh5XG4gICAgICAgIGluaXRWYWwgPSBmcm9tUHJvcC5wZlZhbHVlICsgaW5pdER0ICogZGlmZjtcblxuICAgICAgICAvLyBjb25zaWRlciBudW1lcmljYWwgdmFsdWVzXG4gICAgICB9IGVsc2UgaWYgKG51bWJlciQxKGZyb21Qcm9wLnZhbHVlKSAmJiBudW1iZXIkMSh0b1Byb3AudmFsdWUpKSB7XG4gICAgICAgIGRpZmYgPSB0b1Byb3AudmFsdWUgLSBmcm9tUHJvcC52YWx1ZTsgLy8gbm9uemVybyBpcyB0cnV0aHlcbiAgICAgICAgaW5pdFZhbCA9IGZyb21Qcm9wLnZhbHVlICsgaW5pdER0ICogZGlmZjtcblxuICAgICAgICAvLyBjb25zaWRlciBjb2xvdXIgdmFsdWVzXG4gICAgICB9IGVsc2UgaWYgKGFycmF5KGZyb21Qcm9wLnZhbHVlKSAmJiBhcnJheSh0b1Byb3AudmFsdWUpKSB7XG4gICAgICAgIGRpZmYgPSBmcm9tUHJvcC52YWx1ZVswXSAhPT0gdG9Qcm9wLnZhbHVlWzBdIHx8IGZyb21Qcm9wLnZhbHVlWzFdICE9PSB0b1Byb3AudmFsdWVbMV0gfHwgZnJvbVByb3AudmFsdWVbMl0gIT09IHRvUHJvcC52YWx1ZVsyXTtcbiAgICAgICAgaW5pdFZhbCA9IGZyb21Qcm9wLnN0clZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyB0aGUgcHJldmlvdXMgdmFsdWUgaXMgZ29vZCBmb3IgYW4gYW5pbWF0aW9uIG9ubHkgaWYgaXQncyBkaWZmZXJlbnRcbiAgICAgIGlmIChkaWZmKSB7XG4gICAgICAgIHN0eWxlW3Byb3BdID0gdG9Qcm9wLnN0clZhbHVlOyAvLyB0byB2YWxcbiAgICAgICAgdGhpcy5hcHBseUJ5cGFzcyhlbGUsIHByb3AsIGluaXRWYWwpOyAvLyBmcm9tIHZhbFxuICAgICAgICBhbnlQcmV2ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IC8vIGVuZCBpZiBwcm9wcyBhbGxvdyBhbmlcblxuICAgIC8vIGNhbid0IHRyYW5zaXRpb24gaWYgdGhlcmUncyBub3RoaW5nIHByZXZpb3VzIHRvIHRyYW5zaXRpb24gZnJvbVxuICAgIGlmICghYW55UHJldikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBfcC50cmFuc2l0aW9uaW5nID0gdHJ1ZTtcbiAgICBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICBpZiAoZGVsYXkgPiAwKSB7XG4gICAgICAgIGVsZS5kZWxheUFuaW1hdGlvbihkZWxheSkucGxheSgpLnByb21pc2UoKS50aGVuKHJlc29sdmUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfVxuICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGVsZS5hbmltYXRpb24oe1xuICAgICAgICBzdHlsZTogc3R5bGUsXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcbiAgICAgICAgZWFzaW5nOiBlbGUucHN0eWxlKCd0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbicpLnZhbHVlLFxuICAgICAgICBxdWV1ZTogZmFsc2VcbiAgICAgIH0pLnBsYXkoKS5wcm9taXNlKCk7XG4gICAgfSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBpZiggIWlzQnlwYXNzICl7XG4gICAgICBzZWxmLnJlbW92ZUJ5cGFzc2VzKGVsZSwgcHJvcHMpO1xuICAgICAgZWxlLmVtaXRBbmROb3RpZnkoJ3N0eWxlJyk7XG4gICAgICAvLyB9XG5cbiAgICAgIF9wLnRyYW5zaXRpb25pbmcgPSBmYWxzZTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChfcC50cmFuc2l0aW9uaW5nKSB7XG4gICAgdGhpcy5yZW1vdmVCeXBhc3NlcyhlbGUsIHByb3BzKTtcbiAgICBlbGUuZW1pdEFuZE5vdGlmeSgnc3R5bGUnKTtcbiAgICBfcC50cmFuc2l0aW9uaW5nID0gZmFsc2U7XG4gIH1cbn07XG5zdHlmbiQ4LmNoZWNrVHJpZ2dlciA9IGZ1bmN0aW9uIChlbGUsIG5hbWUsIGZyb21WYWx1ZSwgdG9WYWx1ZSwgZ2V0VHJpZ2dlciwgb25UcmlnZ2VyKSB7XG4gIHZhciBwcm9wID0gdGhpcy5wcm9wZXJ0aWVzW25hbWVdO1xuICB2YXIgdHJpZ2dlckNoZWNrID0gZ2V0VHJpZ2dlcihwcm9wKTtcbiAgaWYgKHRyaWdnZXJDaGVjayAhPSBudWxsICYmIHRyaWdnZXJDaGVjayhmcm9tVmFsdWUsIHRvVmFsdWUpKSB7XG4gICAgb25UcmlnZ2VyKHByb3ApO1xuICB9XG59O1xuc3R5Zm4kOC5jaGVja1pPcmRlclRyaWdnZXIgPSBmdW5jdGlvbiAoZWxlLCBuYW1lLCBmcm9tVmFsdWUsIHRvVmFsdWUpIHtcbiAgdmFyIF90aGlzID0gdGhpcztcbiAgdGhpcy5jaGVja1RyaWdnZXIoZWxlLCBuYW1lLCBmcm9tVmFsdWUsIHRvVmFsdWUsIGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgcmV0dXJuIHByb3AudHJpZ2dlcnNaT3JkZXI7XG4gIH0sIGZ1bmN0aW9uICgpIHtcbiAgICBfdGhpcy5fcHJpdmF0ZS5jeS5ub3RpZnkoJ3pvcmRlcicsIGVsZSk7XG4gIH0pO1xufTtcbnN0eWZuJDguY2hlY2tCb3VuZHNUcmlnZ2VyID0gZnVuY3Rpb24gKGVsZSwgbmFtZSwgZnJvbVZhbHVlLCB0b1ZhbHVlKSB7XG4gIHRoaXMuY2hlY2tUcmlnZ2VyKGVsZSwgbmFtZSwgZnJvbVZhbHVlLCB0b1ZhbHVlLCBmdW5jdGlvbiAocHJvcCkge1xuICAgIHJldHVybiBwcm9wLnRyaWdnZXJzQm91bmRzO1xuICB9LCBmdW5jdGlvbiAocHJvcCkge1xuICAgIGVsZS5kaXJ0eUNvbXBvdW5kQm91bmRzQ2FjaGUoKTtcbiAgICBlbGUuZGlydHlCb3VuZGluZ0JveENhY2hlKCk7XG5cbiAgICAvLyBpZiB0aGUgcHJvcCBjaGFuZ2UgbWFrZXMgdGhlIGJiIG9mIHBsbCBiZXppZXIgZWRnZXMgaW52YWxpZCxcbiAgICAvLyB0aGVuIGRpcnR5IHRoZSBwbGwgZWRnZSBiYiBjYWNoZSBhcyB3ZWxsXG4gICAgaWYgKFxuICAgIC8vIG9ubHkgZm9yIGJlemllcnMgLS0gc28gcGVyZm9ybWFuY2Ugb2Ygb3RoZXIgZWRnZXMgaXNuJ3QgYWZmZWN0ZWRcbiAgICBwcm9wLnRyaWdnZXJzQm91bmRzT2ZQYXJhbGxlbEJlemllcnMgJiYgbmFtZSA9PT0gJ2N1cnZlLXN0eWxlJyAmJiAoZnJvbVZhbHVlID09PSAnYmV6aWVyJyB8fCB0b1ZhbHVlID09PSAnYmV6aWVyJykpIHtcbiAgICAgIGVsZS5wYXJhbGxlbEVkZ2VzKCkuZm9yRWFjaChmdW5jdGlvbiAocGxsRWRnZSkge1xuICAgICAgICBpZiAocGxsRWRnZS5pc0J1bmRsZWRCZXppZXIoKSkge1xuICAgICAgICAgIHBsbEVkZ2UuZGlydHlCb3VuZGluZ0JveENhY2hlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocHJvcC50cmlnZ2Vyc0JvdW5kc09mQ29ubmVjdGVkRWRnZXMgJiYgbmFtZSA9PT0gJ2Rpc3BsYXknICYmIChmcm9tVmFsdWUgPT09ICdub25lJyB8fCB0b1ZhbHVlID09PSAnbm9uZScpKSB7XG4gICAgICBlbGUuY29ubmVjdGVkRWRnZXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChlZGdlKSB7XG4gICAgICAgIGVkZ2UuZGlydHlCb3VuZGluZ0JveENhY2hlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufTtcbnN0eWZuJDguY2hlY2tUcmlnZ2VycyA9IGZ1bmN0aW9uIChlbGUsIG5hbWUsIGZyb21WYWx1ZSwgdG9WYWx1ZSkge1xuICBlbGUuZGlydHlTdHlsZUNhY2hlKCk7XG4gIHRoaXMuY2hlY2taT3JkZXJUcmlnZ2VyKGVsZSwgbmFtZSwgZnJvbVZhbHVlLCB0b1ZhbHVlKTtcbiAgdGhpcy5jaGVja0JvdW5kc1RyaWdnZXIoZWxlLCBuYW1lLCBmcm9tVmFsdWUsIHRvVmFsdWUpO1xufTtcblxudmFyIHN0eWZuJDcgPSB7fTtcblxuLy8gYnlwYXNzZXMgYXJlIGFwcGxpZWQgdG8gYW4gZXhpc3Rpbmcgc3R5bGUgb24gYW4gZWxlbWVudCwgYW5kIGp1c3QgdGFja2VkIG9uIHRlbXBvcmFyaWx5XG4vLyByZXR1cm5zIHRydWUgaWZmIGFwcGxpY2F0aW9uIHdhcyBzdWNjZXNzZnVsIGZvciBhdCBsZWFzdCAxIHNwZWNpZmllZCBwcm9wZXJ0eVxuc3R5Zm4kNy5hcHBseUJ5cGFzcyA9IGZ1bmN0aW9uIChlbGVzLCBuYW1lLCB2YWx1ZSwgdXBkYXRlVHJhbnNpdGlvbnMpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgcHJvcHMgPSBbXTtcbiAgdmFyIGlzQnlwYXNzID0gdHJ1ZTtcblxuICAvLyBwdXQgYWxsIHRoZSBwcm9wZXJ0aWVzIChjYW4gc3BlY2lmeSBvbmUgb3IgbWFueSkgaW4gYW4gYXJyYXkgYWZ0ZXIgcGFyc2luZyB0aGVtXG4gIGlmIChuYW1lID09PSAnKicgfHwgbmFtZSA9PT0gJyoqJykge1xuICAgIC8vIGFwcGx5IHRvIGFsbCBwcm9wZXJ0eSBuYW1lc1xuXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZi5wcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBwcm9wID0gc2VsZi5wcm9wZXJ0aWVzW2ldO1xuICAgICAgICB2YXIgX25hbWUgPSBwcm9wLm5hbWU7XG4gICAgICAgIHZhciBwYXJzZWRQcm9wID0gdGhpcy5wYXJzZShfbmFtZSwgdmFsdWUsIHRydWUpO1xuICAgICAgICBpZiAocGFyc2VkUHJvcCkge1xuICAgICAgICAgIHByb3BzLnB1c2gocGFyc2VkUHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoc3RyaW5nKG5hbWUpKSB7XG4gICAgLy8gdGhlbiBwYXJzZSB0aGUgc2luZ2xlIHByb3BlcnR5XG4gICAgdmFyIF9wYXJzZWRQcm9wID0gdGhpcy5wYXJzZShuYW1lLCB2YWx1ZSwgdHJ1ZSk7XG4gICAgaWYgKF9wYXJzZWRQcm9wKSB7XG4gICAgICBwcm9wcy5wdXNoKF9wYXJzZWRQcm9wKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAocGxhaW5PYmplY3QobmFtZSkpIHtcbiAgICAvLyB0aGVuIHBhcnNlIGVhY2ggcHJvcGVydHlcbiAgICB2YXIgc3BlY2lmaWVkUHJvcHMgPSBuYW1lO1xuICAgIHVwZGF0ZVRyYW5zaXRpb25zID0gdmFsdWU7XG4gICAgdmFyIG5hbWVzID0gT2JqZWN0LmtleXMoc3BlY2lmaWVkUHJvcHMpO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBuYW1lcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfbmFtZTIgPSBuYW1lc1tfaV07XG4gICAgICB2YXIgX3ZhbHVlID0gc3BlY2lmaWVkUHJvcHNbX25hbWUyXTtcbiAgICAgIGlmIChfdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyB0cnkgY2FtZWwgY2FzZSBuYW1lIHRvb1xuICAgICAgICBfdmFsdWUgPSBzcGVjaWZpZWRQcm9wc1tkYXNoMmNhbWVsKF9uYW1lMildO1xuICAgICAgfVxuICAgICAgaWYgKF92YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHZhciBfcGFyc2VkUHJvcDIgPSB0aGlzLnBhcnNlKF9uYW1lMiwgX3ZhbHVlLCB0cnVlKTtcbiAgICAgICAgaWYgKF9wYXJzZWRQcm9wMikge1xuICAgICAgICAgIHByb3BzLnB1c2goX3BhcnNlZFByb3AyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBjYW4ndCBkbyBhbnl0aGluZyB3aXRob3V0IHdlbGwgZGVmaW5lZCBwcm9wZXJ0aWVzXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gd2UndmUgZmFpbGVkIGlmIHRoZXJlIGFyZSBubyB2YWxpZCBwcm9wZXJ0aWVzXG4gIGlmIChwcm9wcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBub3csIGFwcGx5IHRoZSBieXBhc3MgcHJvcGVydGllcyBvbiB0aGUgZWxlbWVudHNcbiAgdmFyIHJldCA9IGZhbHNlOyAvLyByZXR1cm4gdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgc3VjY2VzZnVsIGJ5cGFzcyBhcHBsaWVkXG4gIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IGVsZXMubGVuZ3RoOyBfaTIrKykge1xuICAgIC8vIGZvciBlYWNoIGVsZVxuICAgIHZhciBlbGUgPSBlbGVzW19pMl07XG4gICAgdmFyIGRpZmZQcm9wcyA9IHt9O1xuICAgIHZhciBkaWZmUHJvcCA9IHZvaWQgMDtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHByb3BzLmxlbmd0aDsgaisrKSB7XG4gICAgICAvLyBmb3IgZWFjaCBwcm9wXG4gICAgICB2YXIgX3Byb3AgPSBwcm9wc1tqXTtcbiAgICAgIGlmICh1cGRhdGVUcmFuc2l0aW9ucykge1xuICAgICAgICB2YXIgcHJldlByb3AgPSBlbGUucHN0eWxlKF9wcm9wLm5hbWUpO1xuICAgICAgICBkaWZmUHJvcCA9IGRpZmZQcm9wc1tfcHJvcC5uYW1lXSA9IHtcbiAgICAgICAgICBwcmV2OiBwcmV2UHJvcFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0ID0gdGhpcy5hcHBseVBhcnNlZFByb3BlcnR5KGVsZSwgY29weShfcHJvcCkpIHx8IHJldDtcbiAgICAgIGlmICh1cGRhdGVUcmFuc2l0aW9ucykge1xuICAgICAgICBkaWZmUHJvcC5uZXh0ID0gZWxlLnBzdHlsZShfcHJvcC5uYW1lKTtcbiAgICAgIH1cbiAgICB9IC8vIGZvciBwcm9wc1xuXG4gICAgaWYgKHJldCkge1xuICAgICAgdGhpcy51cGRhdGVTdHlsZUhpbnRzKGVsZSk7XG4gICAgfVxuICAgIGlmICh1cGRhdGVUcmFuc2l0aW9ucykge1xuICAgICAgdGhpcy51cGRhdGVUcmFuc2l0aW9ucyhlbGUsIGRpZmZQcm9wcywgaXNCeXBhc3MpO1xuICAgIH1cbiAgfSAvLyBmb3IgZWxlc1xuXG4gIHJldHVybiByZXQ7XG59O1xuXG4vLyBvbmx5IHVzZWZ1bCBpbiBzcGVjaWZpYyBjYXNlcyBsaWtlIGFuaW1hdGlvblxuc3R5Zm4kNy5vdmVycmlkZUJ5cGFzcyA9IGZ1bmN0aW9uIChlbGVzLCBuYW1lLCB2YWx1ZSkge1xuICBuYW1lID0gY2FtZWwyZGFzaChuYW1lKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVsZSA9IGVsZXNbaV07XG4gICAgdmFyIHByb3AgPSBlbGUuX3ByaXZhdGUuc3R5bGVbbmFtZV07XG4gICAgdmFyIHR5cGUgPSB0aGlzLnByb3BlcnRpZXNbbmFtZV0udHlwZTtcbiAgICB2YXIgaXNDb2xvciA9IHR5cGUuY29sb3I7XG4gICAgdmFyIGlzTXVsdGkgPSB0eXBlLm11dGlwbGU7XG4gICAgdmFyIG9sZFZhbHVlID0gIXByb3AgPyBudWxsIDogcHJvcC5wZlZhbHVlICE9IG51bGwgPyBwcm9wLnBmVmFsdWUgOiBwcm9wLnZhbHVlO1xuICAgIGlmICghcHJvcCB8fCAhcHJvcC5ieXBhc3MpIHtcbiAgICAgIC8vIG5lZWQgYSBieXBhc3MgaWYgb25lIGRvZXNuJ3QgZXhpc3RcbiAgICAgIHRoaXMuYXBwbHlCeXBhc3MoZWxlLCBuYW1lLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb3AudmFsdWUgPSB2YWx1ZTtcbiAgICAgIGlmIChwcm9wLnBmVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICBwcm9wLnBmVmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0NvbG9yKSB7XG4gICAgICAgIHByb3Auc3RyVmFsdWUgPSAncmdiKCcgKyB2YWx1ZS5qb2luKCcsJykgKyAnKSc7XG4gICAgICB9IGVsc2UgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgcHJvcC5zdHJWYWx1ZSA9IHZhbHVlLmpvaW4oJyAnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3Auc3RyVmFsdWUgPSAnJyArIHZhbHVlO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVTdHlsZUhpbnRzKGVsZSk7XG4gICAgfVxuICAgIHRoaXMuY2hlY2tUcmlnZ2VycyhlbGUsIG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSk7XG4gIH1cbn07XG5zdHlmbiQ3LnJlbW92ZUFsbEJ5cGFzc2VzID0gZnVuY3Rpb24gKGVsZXMsIHVwZGF0ZVRyYW5zaXRpb25zKSB7XG4gIHJldHVybiB0aGlzLnJlbW92ZUJ5cGFzc2VzKGVsZXMsIHRoaXMucHJvcGVydHlOYW1lcywgdXBkYXRlVHJhbnNpdGlvbnMpO1xufTtcbnN0eWZuJDcucmVtb3ZlQnlwYXNzZXMgPSBmdW5jdGlvbiAoZWxlcywgcHJvcHMsIHVwZGF0ZVRyYW5zaXRpb25zKSB7XG4gIHZhciBpc0J5cGFzcyA9IHRydWU7XG4gIGZvciAodmFyIGogPSAwOyBqIDwgZWxlcy5sZW5ndGg7IGorKykge1xuICAgIHZhciBlbGUgPSBlbGVzW2pdO1xuICAgIHZhciBkaWZmUHJvcHMgPSB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbmFtZSA9IHByb3BzW2ldO1xuICAgICAgdmFyIHByb3AgPSB0aGlzLnByb3BlcnRpZXNbbmFtZV07XG4gICAgICB2YXIgcHJldlByb3AgPSBlbGUucHN0eWxlKHByb3AubmFtZSk7XG4gICAgICBpZiAoIXByZXZQcm9wIHx8ICFwcmV2UHJvcC5ieXBhc3MpIHtcbiAgICAgICAgLy8gaWYgYSBieXBhc3MgZG9lc24ndCBleGlzdCBmb3IgdGhlIHByb3AsIG5vdGhpbmcgbmVlZHMgdG8gYmUgcmVtb3ZlZFxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciB2YWx1ZSA9ICcnOyAvLyBlbXB0eSA9PiByZW1vdmUgYnlwYXNzXG4gICAgICB2YXIgcGFyc2VkUHJvcCA9IHRoaXMucGFyc2UobmFtZSwgdmFsdWUsIHRydWUpO1xuICAgICAgdmFyIGRpZmZQcm9wID0gZGlmZlByb3BzW3Byb3AubmFtZV0gPSB7XG4gICAgICAgIHByZXY6IHByZXZQcm9wXG4gICAgICB9O1xuICAgICAgdGhpcy5hcHBseVBhcnNlZFByb3BlcnR5KGVsZSwgcGFyc2VkUHJvcCk7XG4gICAgICBkaWZmUHJvcC5uZXh0ID0gZWxlLnBzdHlsZShwcm9wLm5hbWUpO1xuICAgIH0gLy8gZm9yIHByb3BzXG5cbiAgICB0aGlzLnVwZGF0ZVN0eWxlSGludHMoZWxlKTtcbiAgICBpZiAodXBkYXRlVHJhbnNpdGlvbnMpIHtcbiAgICAgIHRoaXMudXBkYXRlVHJhbnNpdGlvbnMoZWxlLCBkaWZmUHJvcHMsIGlzQnlwYXNzKTtcbiAgICB9XG4gIH0gLy8gZm9yIGVsZXNcbn07XG5cbnZhciBzdHlmbiQ2ID0ge307XG5cbi8vIGdldHMgd2hhdCBhbiBlbSBzaXplIGNvcnJlc3BvbmRzIHRvIGluIHBpeGVscyByZWxhdGl2ZSB0byBhIGRvbSBlbGVtZW50XG5zdHlmbiQ2LmdldEVtU2l6ZUluUGl4ZWxzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgcHggPSB0aGlzLmNvbnRhaW5lckNzcygnZm9udC1zaXplJyk7XG4gIGlmIChweCAhPSBudWxsKSB7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQocHgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAxOyAvLyBmb3IgaGVhZGxlc3NcbiAgfVxufTtcblxuLy8gZ2V0cyBjc3MgcHJvcGVydHkgZnJvbSB0aGUgY29yZSBjb250YWluZXJcbnN0eWZuJDYuY29udGFpbmVyQ3NzID0gZnVuY3Rpb24gKHByb3BOYW1lKSB7XG4gIHZhciBjeSA9IHRoaXMuX3ByaXZhdGUuY3k7XG4gIHZhciBkb21FbGVtZW50ID0gY3kuY29udGFpbmVyKCk7XG4gIHZhciBjb250YWluZXJXaW5kb3cgPSBjeS53aW5kb3coKTtcbiAgaWYgKGNvbnRhaW5lcldpbmRvdyAmJiBkb21FbGVtZW50ICYmIGNvbnRhaW5lcldpbmRvdy5nZXRDb21wdXRlZFN0eWxlKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lcldpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvbUVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUocHJvcE5hbWUpO1xuICB9XG59O1xuXG52YXIgc3R5Zm4kNSA9IHt9O1xuXG4vLyBnZXRzIHRoZSByZW5kZXJlZCBzdHlsZSBmb3IgYW4gZWxlbWVudFxuc3R5Zm4kNS5nZXRSZW5kZXJlZFN0eWxlID0gZnVuY3Rpb24gKGVsZSwgcHJvcCkge1xuICBpZiAocHJvcCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0eWxlUHJvcGVydHlWYWx1ZShlbGUsIHByb3AsIHRydWUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0aGlzLmdldFJhd1N0eWxlKGVsZSwgdHJ1ZSk7XG4gIH1cbn07XG5cbi8vIGdldHMgdGhlIHJhdyBzdHlsZSBmb3IgYW4gZWxlbWVudFxuc3R5Zm4kNS5nZXRSYXdTdHlsZSA9IGZ1bmN0aW9uIChlbGUsIGlzUmVuZGVyZWRWYWwpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBlbGUgPSBlbGVbMF07IC8vIGluc3VyZSBpdCdzIGFuIGVsZW1lbnRcblxuICBpZiAoZWxlKSB7XG4gICAgdmFyIHJzdHlsZSA9IHt9O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZi5wcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcCA9IHNlbGYucHJvcGVydGllc1tpXTtcbiAgICAgIHZhciB2YWwgPSBzZWxmLmdldFN0eWxlUHJvcGVydHlWYWx1ZShlbGUsIHByb3AubmFtZSwgaXNSZW5kZXJlZFZhbCk7XG4gICAgICBpZiAodmFsICE9IG51bGwpIHtcbiAgICAgICAgcnN0eWxlW3Byb3AubmFtZV0gPSB2YWw7XG4gICAgICAgIHJzdHlsZVtkYXNoMmNhbWVsKHByb3AubmFtZSldID0gdmFsO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcnN0eWxlO1xuICB9XG59O1xuc3R5Zm4kNS5nZXRJbmRleGVkU3R5bGUgPSBmdW5jdGlvbiAoZWxlLCBwcm9wZXJ0eSwgc3VicHJvcGVydHksIGluZGV4KSB7XG4gIHZhciBwc3R5bGUgPSBlbGUucHN0eWxlKHByb3BlcnR5KVtzdWJwcm9wZXJ0eV1baW5kZXhdO1xuICByZXR1cm4gcHN0eWxlICE9IG51bGwgPyBwc3R5bGUgOiBlbGUuY3koKS5zdHlsZSgpLmdldERlZmF1bHRQcm9wZXJ0eShwcm9wZXJ0eSlbc3VicHJvcGVydHldWzBdO1xufTtcbnN0eWZuJDUuZ2V0U3R5bGVQcm9wZXJ0eVZhbHVlID0gZnVuY3Rpb24gKGVsZSwgcHJvcE5hbWUsIGlzUmVuZGVyZWRWYWwpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBlbGUgPSBlbGVbMF07IC8vIGluc3VyZSBpdCdzIGFuIGVsZW1lbnRcblxuICBpZiAoZWxlKSB7XG4gICAgdmFyIHByb3AgPSBzZWxmLnByb3BlcnRpZXNbcHJvcE5hbWVdO1xuICAgIGlmIChwcm9wLmFsaWFzKSB7XG4gICAgICBwcm9wID0gcHJvcC5wb2ludHNUbztcbiAgICB9XG4gICAgdmFyIHR5cGUgPSBwcm9wLnR5cGU7XG4gICAgdmFyIHN0eWxlUHJvcCA9IGVsZS5wc3R5bGUocHJvcC5uYW1lKTtcbiAgICBpZiAoc3R5bGVQcm9wKSB7XG4gICAgICB2YXIgdmFsdWUgPSBzdHlsZVByb3AudmFsdWUsXG4gICAgICAgIHVuaXRzID0gc3R5bGVQcm9wLnVuaXRzLFxuICAgICAgICBzdHJWYWx1ZSA9IHN0eWxlUHJvcC5zdHJWYWx1ZTtcbiAgICAgIGlmIChpc1JlbmRlcmVkVmFsICYmIHR5cGUubnVtYmVyICYmIHZhbHVlICE9IG51bGwgJiYgbnVtYmVyJDEodmFsdWUpKSB7XG4gICAgICAgIHZhciB6b29tID0gZWxlLmN5KCkuem9vbSgpO1xuICAgICAgICB2YXIgZ2V0UmVuZGVyZWRWYWx1ZSA9IGZ1bmN0aW9uIGdldFJlbmRlcmVkVmFsdWUodmFsKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbCAqIHpvb207XG4gICAgICAgIH07XG4gICAgICAgIHZhciBnZXRWYWx1ZVN0cmluZ1dpdGhVbml0cyA9IGZ1bmN0aW9uIGdldFZhbHVlU3RyaW5nV2l0aFVuaXRzKHZhbCwgdW5pdHMpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0UmVuZGVyZWRWYWx1ZSh2YWwpICsgdW5pdHM7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBpc0FycmF5VmFsdWUgPSBhcnJheSh2YWx1ZSk7XG4gICAgICAgIHZhciBoYXZlVW5pdHMgPSBpc0FycmF5VmFsdWUgPyB1bml0cy5ldmVyeShmdW5jdGlvbiAodSkge1xuICAgICAgICAgIHJldHVybiB1ICE9IG51bGw7XG4gICAgICAgIH0pIDogdW5pdHMgIT0gbnVsbDtcbiAgICAgICAgaWYgKGhhdmVVbml0cykge1xuICAgICAgICAgIGlmIChpc0FycmF5VmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoZnVuY3Rpb24gKHYsIGkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldFZhbHVlU3RyaW5nV2l0aFVuaXRzKHYsIHVuaXRzW2ldKTtcbiAgICAgICAgICAgIH0pLmpvaW4oJyAnKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGdldFZhbHVlU3RyaW5nV2l0aFVuaXRzKHZhbHVlLCB1bml0cyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpc0FycmF5VmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZyh2KSA/IHYgOiAnJyArIGdldFJlbmRlcmVkVmFsdWUodik7XG4gICAgICAgICAgICB9KS5qb2luKCcgJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJyArIGdldFJlbmRlcmVkVmFsdWUodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChzdHJWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBzdHJWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5zdHlmbiQ1LmdldEFuaW1hdGlvblN0YXJ0U3R5bGUgPSBmdW5jdGlvbiAoZWxlLCBhbmlQcm9wcykge1xuICB2YXIgcnN0eWxlID0ge307XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYW5pUHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYW5pUHJvcCA9IGFuaVByb3BzW2ldO1xuICAgIHZhciBuYW1lID0gYW5pUHJvcC5uYW1lO1xuICAgIHZhciBzdHlsZVByb3AgPSBlbGUucHN0eWxlKG5hbWUpO1xuICAgIGlmIChzdHlsZVByb3AgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gdGhlbiBtYWtlIGEgcHJvcCBvZiBpdFxuICAgICAgaWYgKHBsYWluT2JqZWN0KHN0eWxlUHJvcCkpIHtcbiAgICAgICAgc3R5bGVQcm9wID0gdGhpcy5wYXJzZShuYW1lLCBzdHlsZVByb3Auc3RyVmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3R5bGVQcm9wID0gdGhpcy5wYXJzZShuYW1lLCBzdHlsZVByb3ApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3R5bGVQcm9wKSB7XG4gICAgICByc3R5bGVbbmFtZV0gPSBzdHlsZVByb3A7XG4gICAgfVxuICB9XG4gIHJldHVybiByc3R5bGU7XG59O1xuc3R5Zm4kNS5nZXRQcm9wc0xpc3QgPSBmdW5jdGlvbiAocHJvcHNPYmopIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgcnN0eWxlID0gW107XG4gIHZhciBzdHlsZSA9IHByb3BzT2JqO1xuICB2YXIgcHJvcHMgPSBzZWxmLnByb3BlcnRpZXM7XG4gIGlmIChzdHlsZSkge1xuICAgIHZhciBuYW1lcyA9IE9iamVjdC5rZXlzKHN0eWxlKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbmFtZSA9IG5hbWVzW2ldO1xuICAgICAgdmFyIHZhbCA9IHN0eWxlW25hbWVdO1xuICAgICAgdmFyIHByb3AgPSBwcm9wc1tuYW1lXSB8fCBwcm9wc1tjYW1lbDJkYXNoKG5hbWUpXTtcbiAgICAgIHZhciBzdHlsZVByb3AgPSB0aGlzLnBhcnNlKHByb3AubmFtZSwgdmFsKTtcbiAgICAgIGlmIChzdHlsZVByb3ApIHtcbiAgICAgICAgcnN0eWxlLnB1c2goc3R5bGVQcm9wKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJzdHlsZTtcbn07XG5zdHlmbiQ1LmdldE5vbkRlZmF1bHRQcm9wZXJ0aWVzSGFzaCA9IGZ1bmN0aW9uIChlbGUsIHByb3BOYW1lcywgc2VlZCkge1xuICB2YXIgaGFzaCA9IHNlZWQuc2xpY2UoKTtcbiAgdmFyIG5hbWUsIHZhbCwgc3RyVmFsLCBjaFZhbDtcbiAgdmFyIGksIGo7XG4gIGZvciAoaSA9IDA7IGkgPCBwcm9wTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICBuYW1lID0gcHJvcE5hbWVzW2ldO1xuICAgIHZhbCA9IGVsZS5wc3R5bGUobmFtZSwgZmFsc2UpO1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgY29udGludWU7XG4gICAgfSBlbHNlIGlmICh2YWwucGZWYWx1ZSAhPSBudWxsKSB7XG4gICAgICBoYXNoWzBdID0gaGFzaEludChjaFZhbCwgaGFzaFswXSk7XG4gICAgICBoYXNoWzFdID0gaGFzaEludEFsdChjaFZhbCwgaGFzaFsxXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0clZhbCA9IHZhbC5zdHJWYWx1ZTtcbiAgICAgIGZvciAoaiA9IDA7IGogPCBzdHJWYWwubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgY2hWYWwgPSBzdHJWYWwuY2hhckNvZGVBdChqKTtcbiAgICAgICAgaGFzaFswXSA9IGhhc2hJbnQoY2hWYWwsIGhhc2hbMF0pO1xuICAgICAgICBoYXNoWzFdID0gaGFzaEludEFsdChjaFZhbCwgaGFzaFsxXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBoYXNoO1xufTtcbnN0eWZuJDUuZ2V0UHJvcGVydGllc0hhc2ggPSBzdHlmbiQ1LmdldE5vbkRlZmF1bHRQcm9wZXJ0aWVzSGFzaDtcblxudmFyIHN0eWZuJDQgPSB7fTtcbnN0eWZuJDQuYXBwZW5kRnJvbUpzb24gPSBmdW5jdGlvbiAoanNvbikge1xuICB2YXIgc3R5bGUgPSB0aGlzO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGpzb24ubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgY29udGV4dCA9IGpzb25baV07XG4gICAgdmFyIHNlbGVjdG9yID0gY29udGV4dC5zZWxlY3RvcjtcbiAgICB2YXIgcHJvcHMgPSBjb250ZXh0LnN0eWxlIHx8IGNvbnRleHQuY3NzO1xuICAgIHZhciBuYW1lcyA9IE9iamVjdC5rZXlzKHByb3BzKTtcbiAgICBzdHlsZS5zZWxlY3RvcihzZWxlY3Rvcik7IC8vIGFwcGx5IHNlbGVjdG9yXG5cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IG5hbWVzLmxlbmd0aDsgaisrKSB7XG4gICAgICB2YXIgbmFtZSA9IG5hbWVzW2pdO1xuICAgICAgdmFyIHZhbHVlID0gcHJvcHNbbmFtZV07XG4gICAgICBzdHlsZS5jc3MobmFtZSwgdmFsdWUpOyAvLyBhcHBseSBwcm9wZXJ0eVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdHlsZTtcbn07XG5cbi8vIGFjY2Vzc2libGUgY3kuc3R5bGUoKSBmdW5jdGlvblxuc3R5Zm4kNC5mcm9tSnNvbiA9IGZ1bmN0aW9uIChqc29uKSB7XG4gIHZhciBzdHlsZSA9IHRoaXM7XG4gIHN0eWxlLnJlc2V0VG9EZWZhdWx0KCk7XG4gIHN0eWxlLmFwcGVuZEZyb21Kc29uKGpzb24pO1xuICByZXR1cm4gc3R5bGU7XG59O1xuXG4vLyBnZXQganNvbiBmcm9tIGN5LnN0eWxlKCkgYXBpXG5zdHlmbiQ0Lmpzb24gPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBqc29uID0gW107XG4gIGZvciAodmFyIGkgPSB0aGlzLmRlZmF1bHRMZW5ndGg7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGN4dCA9IHRoaXNbaV07XG4gICAgdmFyIHNlbGVjdG9yID0gY3h0LnNlbGVjdG9yO1xuICAgIHZhciBwcm9wcyA9IGN4dC5wcm9wZXJ0aWVzO1xuICAgIHZhciBjc3MgPSB7fTtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHByb3BzLmxlbmd0aDsgaisrKSB7XG4gICAgICB2YXIgcHJvcCA9IHByb3BzW2pdO1xuICAgICAgY3NzW3Byb3AubmFtZV0gPSBwcm9wLnN0clZhbHVlO1xuICAgIH1cbiAgICBqc29uLnB1c2goe1xuICAgICAgc2VsZWN0b3I6ICFzZWxlY3RvciA/ICdjb3JlJyA6IHNlbGVjdG9yLnRvU3RyaW5nKCksXG4gICAgICBzdHlsZTogY3NzXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGpzb247XG59O1xuXG52YXIgc3R5Zm4kMyA9IHt9O1xuc3R5Zm4kMy5hcHBlbmRGcm9tU3RyaW5nID0gZnVuY3Rpb24gKHN0cmluZykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBzdHlsZSA9IHRoaXM7XG4gIHZhciByZW1haW5pbmcgPSAnJyArIHN0cmluZztcbiAgdmFyIHNlbEFuZEJsb2NrU3RyO1xuICB2YXIgYmxvY2tSZW07XG4gIHZhciBwcm9wQW5kVmFsU3RyO1xuXG4gIC8vIHJlbW92ZSBjb21tZW50cyBmcm9tIHRoZSBzdHlsZSBzdHJpbmdcbiAgcmVtYWluaW5nID0gcmVtYWluaW5nLnJlcGxhY2UoL1svXVsqXShcXHN8LikrP1sqXVsvXS9nLCAnJyk7XG4gIGZ1bmN0aW9uIHJlbW92ZVNlbEFuZEJsb2NrRnJvbVJlbWFpbmluZygpIHtcbiAgICAvLyByZW1vdmUgdGhlIHBhcnNlZCBzZWxlY3RvciBhbmQgYmxvY2sgZnJvbSB0aGUgcmVtYWluaW5nIHRleHQgdG8gcGFyc2VcbiAgICBpZiAocmVtYWluaW5nLmxlbmd0aCA+IHNlbEFuZEJsb2NrU3RyLmxlbmd0aCkge1xuICAgICAgcmVtYWluaW5nID0gcmVtYWluaW5nLnN1YnN0cihzZWxBbmRCbG9ja1N0ci5sZW5ndGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZW1haW5pbmcgPSAnJztcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gcmVtb3ZlUHJvcEFuZFZhbEZyb21SZW0oKSB7XG4gICAgLy8gcmVtb3ZlIHRoZSBwYXJzZWQgcHJvcGVydHkgYW5kIHZhbHVlIGZyb20gdGhlIHJlbWFpbmluZyBibG9jayB0ZXh0IHRvIHBhcnNlXG4gICAgaWYgKGJsb2NrUmVtLmxlbmd0aCA+IHByb3BBbmRWYWxTdHIubGVuZ3RoKSB7XG4gICAgICBibG9ja1JlbSA9IGJsb2NrUmVtLnN1YnN0cihwcm9wQW5kVmFsU3RyLmxlbmd0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJsb2NrUmVtID0gJyc7XG4gICAgfVxuICB9XG4gIGZvciAoOzspIHtcbiAgICB2YXIgbm90aGluZ0xlZnRUb1BhcnNlID0gcmVtYWluaW5nLm1hdGNoKC9eXFxzKiQvKTtcbiAgICBpZiAobm90aGluZ0xlZnRUb1BhcnNlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgdmFyIHNlbEFuZEJsb2NrID0gcmVtYWluaW5nLm1hdGNoKC9eXFxzKigoPzoufFxccykrPylcXHMqXFx7KCg/Oi58XFxzKSs/KVxcfS8pO1xuICAgIGlmICghc2VsQW5kQmxvY2spIHtcbiAgICAgIHdhcm4oJ0hhbHRpbmcgc3R5bGVzaGVldCBwYXJzaW5nOiBTdHJpbmcgc3R5bGVzaGVldCBjb250YWlucyBtb3JlIHRvIHBhcnNlIGJ1dCBubyBzZWxlY3RvciBhbmQgYmxvY2sgZm91bmQgaW46ICcgKyByZW1haW5pbmcpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHNlbEFuZEJsb2NrU3RyID0gc2VsQW5kQmxvY2tbMF07XG5cbiAgICAvLyBwYXJzZSB0aGUgc2VsZWN0b3JcbiAgICB2YXIgc2VsZWN0b3JTdHIgPSBzZWxBbmRCbG9ja1sxXTtcbiAgICBpZiAoc2VsZWN0b3JTdHIgIT09ICdjb3JlJykge1xuICAgICAgdmFyIHNlbGVjdG9yID0gbmV3IFNlbGVjdG9yKHNlbGVjdG9yU3RyKTtcbiAgICAgIGlmIChzZWxlY3Rvci5pbnZhbGlkKSB7XG4gICAgICAgIHdhcm4oJ1NraXBwaW5nIHBhcnNpbmcgb2YgYmxvY2s6IEludmFsaWQgc2VsZWN0b3IgZm91bmQgaW4gc3RyaW5nIHN0eWxlc2hlZXQ6ICcgKyBzZWxlY3RvclN0cik7XG5cbiAgICAgICAgLy8gc2tpcCB0aGlzIHNlbGVjdG9yIGFuZCBibG9ja1xuICAgICAgICByZW1vdmVTZWxBbmRCbG9ja0Zyb21SZW1haW5pbmcoKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gcGFyc2UgdGhlIGJsb2NrIG9mIHByb3BlcnRpZXMgYW5kIHZhbHVlc1xuICAgIHZhciBibG9ja1N0ciA9IHNlbEFuZEJsb2NrWzJdO1xuICAgIHZhciBpbnZhbGlkQmxvY2sgPSBmYWxzZTtcbiAgICBibG9ja1JlbSA9IGJsb2NrU3RyO1xuICAgIHZhciBwcm9wcyA9IFtdO1xuICAgIGZvciAoOzspIHtcbiAgICAgIHZhciBfbm90aGluZ0xlZnRUb1BhcnNlID0gYmxvY2tSZW0ubWF0Y2goL15cXHMqJC8pO1xuICAgICAgaWYgKF9ub3RoaW5nTGVmdFRvUGFyc2UpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcEFuZFZhbCA9IGJsb2NrUmVtLm1hdGNoKC9eXFxzKiguKz8pXFxzKjpcXHMqKC4rPykoPzpcXHMqO3xcXHMqJCkvKTtcbiAgICAgIGlmICghcHJvcEFuZFZhbCkge1xuICAgICAgICB3YXJuKCdTa2lwcGluZyBwYXJzaW5nIG9mIGJsb2NrOiBJbnZhbGlkIGZvcm1hdHRpbmcgb2Ygc3R5bGUgcHJvcGVydHkgYW5kIHZhbHVlIGRlZmluaXRpb25zIGZvdW5kIGluOicgKyBibG9ja1N0cik7XG4gICAgICAgIGludmFsaWRCbG9jayA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcHJvcEFuZFZhbFN0ciA9IHByb3BBbmRWYWxbMF07XG4gICAgICB2YXIgcHJvcFN0ciA9IHByb3BBbmRWYWxbMV07XG4gICAgICB2YXIgdmFsU3RyID0gcHJvcEFuZFZhbFsyXTtcbiAgICAgIHZhciBwcm9wID0gc2VsZi5wcm9wZXJ0aWVzW3Byb3BTdHJdO1xuICAgICAgaWYgKCFwcm9wKSB7XG4gICAgICAgIHdhcm4oJ1NraXBwaW5nIHByb3BlcnR5OiBJbnZhbGlkIHByb3BlcnR5IG5hbWUgaW46ICcgKyBwcm9wQW5kVmFsU3RyKTtcblxuICAgICAgICAvLyBza2lwIHRoaXMgcHJvcGVydHkgaW4gdGhlIGJsb2NrXG4gICAgICAgIHJlbW92ZVByb3BBbmRWYWxGcm9tUmVtKCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdmFyIHBhcnNlZFByb3AgPSBzdHlsZS5wYXJzZShwcm9wU3RyLCB2YWxTdHIpO1xuICAgICAgaWYgKCFwYXJzZWRQcm9wKSB7XG4gICAgICAgIHdhcm4oJ1NraXBwaW5nIHByb3BlcnR5OiBJbnZhbGlkIHByb3BlcnR5IGRlZmluaXRpb24gaW46ICcgKyBwcm9wQW5kVmFsU3RyKTtcblxuICAgICAgICAvLyBza2lwIHRoaXMgcHJvcGVydHkgaW4gdGhlIGJsb2NrXG4gICAgICAgIHJlbW92ZVByb3BBbmRWYWxGcm9tUmVtKCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgcHJvcHMucHVzaCh7XG4gICAgICAgIG5hbWU6IHByb3BTdHIsXG4gICAgICAgIHZhbDogdmFsU3RyXG4gICAgICB9KTtcbiAgICAgIHJlbW92ZVByb3BBbmRWYWxGcm9tUmVtKCk7XG4gICAgfVxuICAgIGlmIChpbnZhbGlkQmxvY2spIHtcbiAgICAgIHJlbW92ZVNlbEFuZEJsb2NrRnJvbVJlbWFpbmluZygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gcHV0IHRoZSBwYXJzZWQgYmxvY2sgaW4gdGhlIHN0eWxlXG4gICAgc3R5bGUuc2VsZWN0b3Ioc2VsZWN0b3JTdHIpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBfcHJvcCA9IHByb3BzW2ldO1xuICAgICAgc3R5bGUuY3NzKF9wcm9wLm5hbWUsIF9wcm9wLnZhbCk7XG4gICAgfVxuICAgIHJlbW92ZVNlbEFuZEJsb2NrRnJvbVJlbWFpbmluZygpO1xuICB9XG4gIHJldHVybiBzdHlsZTtcbn07XG5zdHlmbiQzLmZyb21TdHJpbmcgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHZhciBzdHlsZSA9IHRoaXM7XG4gIHN0eWxlLnJlc2V0VG9EZWZhdWx0KCk7XG4gIHN0eWxlLmFwcGVuZEZyb21TdHJpbmcoc3RyaW5nKTtcbiAgcmV0dXJuIHN0eWxlO1xufTtcblxudmFyIHN0eWZuJDIgPSB7fTtcbihmdW5jdGlvbiAoKSB7XG4gIHZhciBudW1iZXIkMSA9IG51bWJlcjtcbiAgdmFyIHJnYmEgPSByZ2JhTm9CYWNrUmVmcztcbiAgdmFyIGhzbGEgPSBoc2xhTm9CYWNrUmVmcztcbiAgdmFyIGhleDMkMSA9IGhleDM7XG4gIHZhciBoZXg2JDEgPSBoZXg2O1xuICB2YXIgZGF0YSA9IGZ1bmN0aW9uIGRhdGEocHJlZml4KSB7XG4gICAgcmV0dXJuICdeJyArIHByZWZpeCArICdcXFxccypcXFxcKFxcXFxzKihbXFxcXHdcXFxcLl0rKVxcXFxzKlxcXFwpJCc7XG4gIH07XG4gIHZhciBtYXBEYXRhID0gZnVuY3Rpb24gbWFwRGF0YShwcmVmaXgpIHtcbiAgICB2YXIgbWFwQXJnID0gbnVtYmVyJDEgKyAnfFxcXFx3K3wnICsgcmdiYSArICd8JyArIGhzbGEgKyAnfCcgKyBoZXgzJDEgKyAnfCcgKyBoZXg2JDE7XG4gICAgcmV0dXJuICdeJyArIHByZWZpeCArICdcXFxccypcXFxcKChbXFxcXHdcXFxcLl0rKVxcXFxzKlxcXFwsXFxcXHMqKCcgKyBudW1iZXIkMSArICcpXFxcXHMqXFxcXCxcXFxccyooJyArIG51bWJlciQxICsgJylcXFxccyosXFxcXHMqKCcgKyBtYXBBcmcgKyAnKVxcXFxzKlxcXFwsXFxcXHMqKCcgKyBtYXBBcmcgKyAnKVxcXFwpJCc7XG4gIH07XG4gIHZhciB1cmxSZWdleGVzID0gWydedXJsXFxcXHMqXFxcXChcXFxccypbXFwnXCJdPyguKz8pW1xcJ1wiXT9cXFxccypcXFxcKSQnLCAnXihub25lKSQnLCAnXiguKykkJ107XG5cbiAgLy8gZWFjaCB2aXN1YWwgc3R5bGUgcHJvcGVydHkgaGFzIGEgdHlwZSBhbmQgbmVlZHMgdG8gYmUgdmFsaWRhdGVkIGFjY29yZGluZyB0byBpdFxuICBzdHlmbiQyLnR5cGVzID0ge1xuICAgIHRpbWU6IHtcbiAgICAgIG51bWJlcjogdHJ1ZSxcbiAgICAgIG1pbjogMCxcbiAgICAgIHVuaXRzOiAnc3xtcycsXG4gICAgICBpbXBsaWNpdFVuaXRzOiAnbXMnXG4gICAgfSxcbiAgICBwZXJjZW50OiB7XG4gICAgICBudW1iZXI6IHRydWUsXG4gICAgICBtaW46IDAsXG4gICAgICBtYXg6IDEwMCxcbiAgICAgIHVuaXRzOiAnJScsXG4gICAgICBpbXBsaWNpdFVuaXRzOiAnJSdcbiAgICB9LFxuICAgIHBlcmNlbnRhZ2VzOiB7XG4gICAgICBudW1iZXI6IHRydWUsXG4gICAgICBtaW46IDAsXG4gICAgICBtYXg6IDEwMCxcbiAgICAgIHVuaXRzOiAnJScsXG4gICAgICBpbXBsaWNpdFVuaXRzOiAnJScsXG4gICAgICBtdWx0aXBsZTogdHJ1ZVxuICAgIH0sXG4gICAgemVyb09uZU51bWJlcjoge1xuICAgICAgbnVtYmVyOiB0cnVlLFxuICAgICAgbWluOiAwLFxuICAgICAgbWF4OiAxLFxuICAgICAgdW5pdGxlc3M6IHRydWVcbiAgICB9LFxuICAgIHplcm9PbmVOdW1iZXJzOiB7XG4gICAgICBudW1iZXI6IHRydWUsXG4gICAgICBtaW46IDAsXG4gICAgICBtYXg6IDEsXG4gICAgICB1bml0bGVzczogdHJ1ZSxcbiAgICAgIG11bHRpcGxlOiB0cnVlXG4gICAgfSxcbiAgICBuT25lT25lTnVtYmVyOiB7XG4gICAgICBudW1iZXI6IHRydWUsXG4gICAgICBtaW46IC0xLFxuICAgICAgbWF4OiAxLFxuICAgICAgdW5pdGxlc3M6IHRydWVcbiAgICB9LFxuICAgIG5vbk5lZ2F0aXZlSW50OiB7XG4gICAgICBudW1iZXI6IHRydWUsXG4gICAgICBtaW46IDAsXG4gICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgdW5pdGxlc3M6IHRydWVcbiAgICB9LFxuICAgIG5vbk5lZ2F0aXZlTnVtYmVyOiB7XG4gICAgICBudW1iZXI6IHRydWUsXG4gICAgICBtaW46IDAsXG4gICAgICB1bml0bGVzczogdHJ1ZVxuICAgIH0sXG4gICAgcG9zaXRpb246IHtcbiAgICAgIGVudW1zOiBbJ3BhcmVudCcsICdvcmlnaW4nXVxuICAgIH0sXG4gICAgbm9kZVNpemU6IHtcbiAgICAgIG51bWJlcjogdHJ1ZSxcbiAgICAgIG1pbjogMCxcbiAgICAgIGVudW1zOiBbJ2xhYmVsJ11cbiAgICB9LFxuICAgIG51bWJlcjoge1xuICAgICAgbnVtYmVyOiB0cnVlLFxuICAgICAgdW5pdGxlc3M6IHRydWVcbiAgICB9LFxuICAgIG51bWJlcnM6IHtcbiAgICAgIG51bWJlcjogdHJ1ZSxcbiAgICAgIHVuaXRsZXNzOiB0cnVlLFxuICAgICAgbXVsdGlwbGU6IHRydWVcbiAgICB9LFxuICAgIHBvc2l0aXZlTnVtYmVyOiB7XG4gICAgICBudW1iZXI6IHRydWUsXG4gICAgICB1bml0bGVzczogdHJ1ZSxcbiAgICAgIG1pbjogMCxcbiAgICAgIHN0cmljdE1pbjogdHJ1ZVxuICAgIH0sXG4gICAgc2l6ZToge1xuICAgICAgbnVtYmVyOiB0cnVlLFxuICAgICAgbWluOiAwXG4gICAgfSxcbiAgICBiaWRpcmVjdGlvbmFsU2l6ZToge1xuICAgICAgbnVtYmVyOiB0cnVlXG4gICAgfSxcbiAgICAvLyBhbGxvd3MgbmVnYXRpdmVcbiAgICBiaWRpcmVjdGlvbmFsU2l6ZU1heWJlUGVyY2VudDoge1xuICAgICAgbnVtYmVyOiB0cnVlLFxuICAgICAgYWxsb3dQZXJjZW50OiB0cnVlXG4gICAgfSxcbiAgICAvLyBhbGxvd3MgbmVnYXRpdmVcbiAgICBiaWRpcmVjdGlvbmFsU2l6ZXM6IHtcbiAgICAgIG51bWJlcjogdHJ1ZSxcbiAgICAgIG11bHRpcGxlOiB0cnVlXG4gICAgfSxcbiAgICAvLyBhbGxvd3MgbmVnYXRpdmVcbiAgICBzaXplTWF5YmVQZXJjZW50OiB7XG4gICAgICBudW1iZXI6IHRydWUsXG4gICAgICBtaW46IDAsXG4gICAgICBhbGxvd1BlcmNlbnQ6IHRydWVcbiAgICB9LFxuICAgIGF4aXNEaXJlY3Rpb246IHtcbiAgICAgIGVudW1zOiBbJ2hvcml6b250YWwnLCAnbGVmdHdhcmQnLCAncmlnaHR3YXJkJywgJ3ZlcnRpY2FsJywgJ3Vwd2FyZCcsICdkb3dud2FyZCcsICdhdXRvJ11cbiAgICB9LFxuICAgIHBhZGRpbmdSZWxhdGl2ZVRvOiB7XG4gICAgICBlbnVtczogWyd3aWR0aCcsICdoZWlnaHQnLCAnYXZlcmFnZScsICdtaW4nLCAnbWF4J11cbiAgICB9LFxuICAgIGJnV0g6IHtcbiAgICAgIG51bWJlcjogdHJ1ZSxcbiAgICAgIG1pbjogMCxcbiAgICAgIGFsbG93UGVyY2VudDogdHJ1ZSxcbiAgICAgIGVudW1zOiBbJ2F1dG8nXSxcbiAgICAgIG11bHRpcGxlOiB0cnVlXG4gICAgfSxcbiAgICBiZ1Bvczoge1xuICAgICAgbnVtYmVyOiB0cnVlLFxuICAgICAgYWxsb3dQZXJjZW50OiB0cnVlLFxuICAgICAgbXVsdGlwbGU6IHRydWVcbiAgICB9LFxuICAgIGJnUmVsYXRpdmVUbzoge1xuICAgICAgZW51bXM6IFsnaW5uZXInLCAnaW5jbHVkZS1wYWRkaW5nJ10sXG4gICAgICBtdWx0aXBsZTogdHJ1ZVxuICAgIH0sXG4gICAgYmdSZXBlYXQ6IHtcbiAgICAgIGVudW1zOiBbJ3JlcGVhdCcsICdyZXBlYXQteCcsICdyZXBlYXQteScsICduby1yZXBlYXQnXSxcbiAgICAgIG11bHRpcGxlOiB0cnVlXG4gICAgfSxcbiAgICBiZ0ZpdDoge1xuICAgICAgZW51bXM6IFsnbm9uZScsICdjb250YWluJywgJ2NvdmVyJ10sXG4gICAgICBtdWx0aXBsZTogdHJ1ZVxuICAgIH0sXG4gICAgYmdDcm9zc09yaWdpbjoge1xuICAgICAgZW51bXM6IFsnYW5vbnltb3VzJywgJ3VzZS1jcmVkZW50aWFscycsICdudWxsJ10sXG4gICAgICBtdWx0aXBsZTogdHJ1ZVxuICAgIH0sXG4gICAgYmdDbGlwOiB7XG4gICAgICBlbnVtczogWydub25lJywgJ25vZGUnXSxcbiAgICAgIG11bHRpcGxlOiB0cnVlXG4gICAgfSxcbiAgICBiZ0NvbnRhaW5tZW50OiB7XG4gICAgICBlbnVtczogWydpbnNpZGUnLCAnb3ZlciddLFxuICAgICAgbXVsdGlwbGU6IHRydWVcbiAgICB9LFxuICAgIGNvbG9yOiB7XG4gICAgICBjb2xvcjogdHJ1ZVxuICAgIH0sXG4gICAgY29sb3JzOiB7XG4gICAgICBjb2xvcjogdHJ1ZSxcbiAgICAgIG11bHRpcGxlOiB0cnVlXG4gICAgfSxcbiAgICBmaWxsOiB7XG4gICAgICBlbnVtczogWydzb2xpZCcsICdsaW5lYXItZ3JhZGllbnQnLCAncmFkaWFsLWdyYWRpZW50J11cbiAgICB9LFxuICAgIGJvb2w6IHtcbiAgICAgIGVudW1zOiBbJ3llcycsICdubyddXG4gICAgfSxcbiAgICBib29sczoge1xuICAgICAgZW51bXM6IFsneWVzJywgJ25vJ10sXG4gICAgICBtdWx0aXBsZTogdHJ1ZVxuICAgIH0sXG4gICAgbGluZVN0eWxlOiB7XG4gICAgICBlbnVtczogWydzb2xpZCcsICdkb3R0ZWQnLCAnZGFzaGVkJ11cbiAgICB9LFxuICAgIGxpbmVDYXA6IHtcbiAgICAgIGVudW1zOiBbJ2J1dHQnLCAncm91bmQnLCAnc3F1YXJlJ11cbiAgICB9LFxuICAgIGxpbmVQb3NpdGlvbjoge1xuICAgICAgZW51bXM6IFsnY2VudGVyJywgJ2luc2lkZScsICdvdXRzaWRlJ11cbiAgICB9LFxuICAgIGxpbmVKb2luOiB7XG4gICAgICBlbnVtczogWydyb3VuZCcsICdiZXZlbCcsICdtaXRlciddXG4gICAgfSxcbiAgICBib3JkZXJTdHlsZToge1xuICAgICAgZW51bXM6IFsnc29saWQnLCAnZG90dGVkJywgJ2Rhc2hlZCcsICdkb3VibGUnXVxuICAgIH0sXG4gICAgY3VydmVTdHlsZToge1xuICAgICAgZW51bXM6IFsnYmV6aWVyJywgJ3VuYnVuZGxlZC1iZXppZXInLCAnaGF5c3RhY2snLCAnc2VnbWVudHMnLCAnc3RyYWlnaHQnLCAnc3RyYWlnaHQtdHJpYW5nbGUnLCAndGF4aScsICdyb3VuZC1zZWdtZW50cycsICdyb3VuZC10YXhpJ11cbiAgICB9LFxuICAgIHJhZGl1c1R5cGU6IHtcbiAgICAgIGVudW1zOiBbJ2FyYy1yYWRpdXMnLCAnaW5mbHVlbmNlLXJhZGl1cyddLFxuICAgICAgbXVsdGlwbGU6IHRydWVcbiAgICB9LFxuICAgIGZvbnRGYW1pbHk6IHtcbiAgICAgIHJlZ2V4OiAnXihbXFxcXHctIFxcXFxcIl0rKD86XFxcXHMqLFxcXFxzKltcXFxcdy0gXFxcXFwiXSspKikkJ1xuICAgIH0sXG4gICAgZm9udFN0eWxlOiB7XG4gICAgICBlbnVtczogWydpdGFsaWMnLCAnbm9ybWFsJywgJ29ibGlxdWUnXVxuICAgIH0sXG4gICAgZm9udFdlaWdodDoge1xuICAgICAgZW51bXM6IFsnbm9ybWFsJywgJ2JvbGQnLCAnYm9sZGVyJywgJ2xpZ2h0ZXInLCAnMTAwJywgJzIwMCcsICczMDAnLCAnNDAwJywgJzUwMCcsICc2MDAnLCAnODAwJywgJzkwMCcsIDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCA2MDAsIDcwMCwgODAwLCA5MDBdXG4gICAgfSxcbiAgICB0ZXh0RGVjb3JhdGlvbjoge1xuICAgICAgZW51bXM6IFsnbm9uZScsICd1bmRlcmxpbmUnLCAnb3ZlcmxpbmUnLCAnbGluZS10aHJvdWdoJ11cbiAgICB9LFxuICAgIHRleHRUcmFuc2Zvcm06IHtcbiAgICAgIGVudW1zOiBbJ25vbmUnLCAndXBwZXJjYXNlJywgJ2xvd2VyY2FzZSddXG4gICAgfSxcbiAgICB0ZXh0V3JhcDoge1xuICAgICAgZW51bXM6IFsnbm9uZScsICd3cmFwJywgJ2VsbGlwc2lzJ11cbiAgICB9LFxuICAgIHRleHRPdmVyZmxvd1dyYXA6IHtcbiAgICAgIGVudW1zOiBbJ3doaXRlc3BhY2UnLCAnYW55d2hlcmUnXVxuICAgIH0sXG4gICAgdGV4dEJhY2tncm91bmRTaGFwZToge1xuICAgICAgZW51bXM6IFsncmVjdGFuZ2xlJywgJ3JvdW5kcmVjdGFuZ2xlJywgJ3JvdW5kLXJlY3RhbmdsZSddXG4gICAgfSxcbiAgICBub2RlU2hhcGU6IHtcbiAgICAgIGVudW1zOiBbJ3JlY3RhbmdsZScsICdyb3VuZHJlY3RhbmdsZScsICdyb3VuZC1yZWN0YW5nbGUnLCAnY3V0cmVjdGFuZ2xlJywgJ2N1dC1yZWN0YW5nbGUnLCAnYm90dG9tcm91bmRyZWN0YW5nbGUnLCAnYm90dG9tLXJvdW5kLXJlY3RhbmdsZScsICdiYXJyZWwnLCAnZWxsaXBzZScsICd0cmlhbmdsZScsICdyb3VuZC10cmlhbmdsZScsICdzcXVhcmUnLCAncGVudGFnb24nLCAncm91bmQtcGVudGFnb24nLCAnaGV4YWdvbicsICdyb3VuZC1oZXhhZ29uJywgJ2NvbmNhdmVoZXhhZ29uJywgJ2NvbmNhdmUtaGV4YWdvbicsICdoZXB0YWdvbicsICdyb3VuZC1oZXB0YWdvbicsICdvY3RhZ29uJywgJ3JvdW5kLW9jdGFnb24nLCAndGFnJywgJ3JvdW5kLXRhZycsICdzdGFyJywgJ2RpYW1vbmQnLCAncm91bmQtZGlhbW9uZCcsICd2ZWUnLCAncmhvbWJvaWQnLCAncmlnaHQtcmhvbWJvaWQnLCAncG9seWdvbiddXG4gICAgfSxcbiAgICBvdmVybGF5U2hhcGU6IHtcbiAgICAgIGVudW1zOiBbJ3JvdW5kcmVjdGFuZ2xlJywgJ3JvdW5kLXJlY3RhbmdsZScsICdlbGxpcHNlJ11cbiAgICB9LFxuICAgIGNvcm5lclJhZGl1czoge1xuICAgICAgbnVtYmVyOiB0cnVlLFxuICAgICAgbWluOiAwLFxuICAgICAgdW5pdHM6ICdweHxlbScsXG4gICAgICBpbXBsaWNpdFVuaXRzOiAncHgnLFxuICAgICAgZW51bXM6IFsnYXV0byddXG4gICAgfSxcbiAgICBjb21wb3VuZEluY2x1ZGVMYWJlbHM6IHtcbiAgICAgIGVudW1zOiBbJ2luY2x1ZGUnLCAnZXhjbHVkZSddXG4gICAgfSxcbiAgICBhcnJvd1NoYXBlOiB7XG4gICAgICBlbnVtczogWyd0ZWUnLCAndHJpYW5nbGUnLCAndHJpYW5nbGUtdGVlJywgJ2NpcmNsZS10cmlhbmdsZScsICd0cmlhbmdsZS1jcm9zcycsICd0cmlhbmdsZS1iYWNrY3VydmUnLCAndmVlJywgJ3NxdWFyZScsICdjaXJjbGUnLCAnZGlhbW9uZCcsICdjaGV2cm9uJywgJ25vbmUnXVxuICAgIH0sXG4gICAgYXJyb3dGaWxsOiB7XG4gICAgICBlbnVtczogWydmaWxsZWQnLCAnaG9sbG93J11cbiAgICB9LFxuICAgIGFycm93V2lkdGg6IHtcbiAgICAgIG51bWJlcjogdHJ1ZSxcbiAgICAgIHVuaXRzOiAnJXxweHxlbScsXG4gICAgICBpbXBsaWNpdFVuaXRzOiAncHgnLFxuICAgICAgZW51bXM6IFsnbWF0Y2gtbGluZSddXG4gICAgfSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICBlbnVtczogWydlbGVtZW50JywgJ25vbmUnXVxuICAgIH0sXG4gICAgdmlzaWJpbGl0eToge1xuICAgICAgZW51bXM6IFsnaGlkZGVuJywgJ3Zpc2libGUnXVxuICAgIH0sXG4gICAgekNvbXBvdW5kRGVwdGg6IHtcbiAgICAgIGVudW1zOiBbJ2JvdHRvbScsICdvcnBoYW4nLCAnYXV0bycsICd0b3AnXVxuICAgIH0sXG4gICAgekluZGV4Q29tcGFyZToge1xuICAgICAgZW51bXM6IFsnYXV0bycsICdtYW51YWwnXVxuICAgIH0sXG4gICAgdmFsaWduOiB7XG4gICAgICBlbnVtczogWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbSddXG4gICAgfSxcbiAgICBoYWxpZ246IHtcbiAgICAgIGVudW1zOiBbJ2xlZnQnLCAnY2VudGVyJywgJ3JpZ2h0J11cbiAgICB9LFxuICAgIGp1c3RpZmljYXRpb246IHtcbiAgICAgIGVudW1zOiBbJ2xlZnQnLCAnY2VudGVyJywgJ3JpZ2h0JywgJ2F1dG8nXVxuICAgIH0sXG4gICAgdGV4dDoge1xuICAgICAgc3RyaW5nOiB0cnVlXG4gICAgfSxcbiAgICBkYXRhOiB7XG4gICAgICBtYXBwaW5nOiB0cnVlLFxuICAgICAgcmVnZXg6IGRhdGEoJ2RhdGEnKVxuICAgIH0sXG4gICAgbGF5b3V0RGF0YToge1xuICAgICAgbWFwcGluZzogdHJ1ZSxcbiAgICAgIHJlZ2V4OiBkYXRhKCdsYXlvdXREYXRhJylcbiAgICB9LFxuICAgIHNjcmF0Y2g6IHtcbiAgICAgIG1hcHBpbmc6IHRydWUsXG4gICAgICByZWdleDogZGF0YSgnc2NyYXRjaCcpXG4gICAgfSxcbiAgICBtYXBEYXRhOiB7XG4gICAgICBtYXBwaW5nOiB0cnVlLFxuICAgICAgcmVnZXg6IG1hcERhdGEoJ21hcERhdGEnKVxuICAgIH0sXG4gICAgbWFwTGF5b3V0RGF0YToge1xuICAgICAgbWFwcGluZzogdHJ1ZSxcbiAgICAgIHJlZ2V4OiBtYXBEYXRhKCdtYXBMYXlvdXREYXRhJylcbiAgICB9LFxuICAgIG1hcFNjcmF0Y2g6IHtcbiAgICAgIG1hcHBpbmc6IHRydWUsXG4gICAgICByZWdleDogbWFwRGF0YSgnbWFwU2NyYXRjaCcpXG4gICAgfSxcbiAgICBmbjoge1xuICAgICAgbWFwcGluZzogdHJ1ZSxcbiAgICAgIGZuOiB0cnVlXG4gICAgfSxcbiAgICB1cmw6IHtcbiAgICAgIHJlZ2V4ZXM6IHVybFJlZ2V4ZXMsXG4gICAgICBzaW5nbGVSZWdleE1hdGNoVmFsdWU6IHRydWVcbiAgICB9LFxuICAgIHVybHM6IHtcbiAgICAgIHJlZ2V4ZXM6IHVybFJlZ2V4ZXMsXG4gICAgICBzaW5nbGVSZWdleE1hdGNoVmFsdWU6IHRydWUsXG4gICAgICBtdWx0aXBsZTogdHJ1ZVxuICAgIH0sXG4gICAgcHJvcExpc3Q6IHtcbiAgICAgIHByb3BMaXN0OiB0cnVlXG4gICAgfSxcbiAgICBhbmdsZToge1xuICAgICAgbnVtYmVyOiB0cnVlLFxuICAgICAgdW5pdHM6ICdkZWd8cmFkJyxcbiAgICAgIGltcGxpY2l0VW5pdHM6ICdyYWQnXG4gICAgfSxcbiAgICB0ZXh0Um90YXRpb246IHtcbiAgICAgIG51bWJlcjogdHJ1ZSxcbiAgICAgIHVuaXRzOiAnZGVnfHJhZCcsXG4gICAgICBpbXBsaWNpdFVuaXRzOiAncmFkJyxcbiAgICAgIGVudW1zOiBbJ25vbmUnLCAnYXV0b3JvdGF0ZSddXG4gICAgfSxcbiAgICBwb2x5Z29uUG9pbnRMaXN0OiB7XG4gICAgICBudW1iZXI6IHRydWUsXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgIGV2ZW5NdWx0aXBsZTogdHJ1ZSxcbiAgICAgIG1pbjogLTEsXG4gICAgICBtYXg6IDEsXG4gICAgICB1bml0bGVzczogdHJ1ZVxuICAgIH0sXG4gICAgZWRnZURpc3RhbmNlczoge1xuICAgICAgZW51bXM6IFsnaW50ZXJzZWN0aW9uJywgJ25vZGUtcG9zaXRpb24nLCAnZW5kcG9pbnRzJ11cbiAgICB9LFxuICAgIGVkZ2VFbmRwb2ludDoge1xuICAgICAgbnVtYmVyOiB0cnVlLFxuICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgICB1bml0czogJyV8cHh8ZW18ZGVnfHJhZCcsXG4gICAgICBpbXBsaWNpdFVuaXRzOiAncHgnLFxuICAgICAgZW51bXM6IFsnaW5zaWRlLXRvLW5vZGUnLCAnb3V0c2lkZS10by1ub2RlJywgJ291dHNpZGUtdG8tbm9kZS1vci1sYWJlbCcsICdvdXRzaWRlLXRvLWxpbmUnLCAnb3V0c2lkZS10by1saW5lLW9yLWxhYmVsJ10sXG4gICAgICBzaW5nbGVFbnVtOiB0cnVlLFxuICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKHZhbEFyciwgdW5pdHNBcnIpIHtcbiAgICAgICAgc3dpdGNoICh2YWxBcnIubGVuZ3RoKSB7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgLy8gY2FuIGJlICUgb3IgcHggb25seVxuICAgICAgICAgICAgcmV0dXJuIHVuaXRzQXJyWzBdICE9PSAnZGVnJyAmJiB1bml0c0FyclswXSAhPT0gJ3JhZCcgJiYgdW5pdHNBcnJbMV0gIT09ICdkZWcnICYmIHVuaXRzQXJyWzFdICE9PSAncmFkJztcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAvLyBjYW4gYmUgZW51bSwgZGVnLCBvciByYWQgb25seVxuICAgICAgICAgICAgcmV0dXJuIHN0cmluZyh2YWxBcnJbMF0pIHx8IHVuaXRzQXJyWzBdID09PSAnZGVnJyB8fCB1bml0c0FyclswXSA9PT0gJ3JhZCc7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgZWFzaW5nOiB7XG4gICAgICByZWdleGVzOiBbJ14oc3ByaW5nKVxcXFxzKlxcXFwoXFxcXHMqKCcgKyBudW1iZXIkMSArICcpXFxcXHMqLFxcXFxzKignICsgbnVtYmVyJDEgKyAnKVxcXFxzKlxcXFwpJCcsICdeKGN1YmljLWJlemllcilcXFxccypcXFxcKFxcXFxzKignICsgbnVtYmVyJDEgKyAnKVxcXFxzKixcXFxccyooJyArIG51bWJlciQxICsgJylcXFxccyosXFxcXHMqKCcgKyBudW1iZXIkMSArICcpXFxcXHMqLFxcXFxzKignICsgbnVtYmVyJDEgKyAnKVxcXFxzKlxcXFwpJCddLFxuICAgICAgZW51bXM6IFsnbGluZWFyJywgJ2Vhc2UnLCAnZWFzZS1pbicsICdlYXNlLW91dCcsICdlYXNlLWluLW91dCcsICdlYXNlLWluLXNpbmUnLCAnZWFzZS1vdXQtc2luZScsICdlYXNlLWluLW91dC1zaW5lJywgJ2Vhc2UtaW4tcXVhZCcsICdlYXNlLW91dC1xdWFkJywgJ2Vhc2UtaW4tb3V0LXF1YWQnLCAnZWFzZS1pbi1jdWJpYycsICdlYXNlLW91dC1jdWJpYycsICdlYXNlLWluLW91dC1jdWJpYycsICdlYXNlLWluLXF1YXJ0JywgJ2Vhc2Utb3V0LXF1YXJ0JywgJ2Vhc2UtaW4tb3V0LXF1YXJ0JywgJ2Vhc2UtaW4tcXVpbnQnLCAnZWFzZS1vdXQtcXVpbnQnLCAnZWFzZS1pbi1vdXQtcXVpbnQnLCAnZWFzZS1pbi1leHBvJywgJ2Vhc2Utb3V0LWV4cG8nLCAnZWFzZS1pbi1vdXQtZXhwbycsICdlYXNlLWluLWNpcmMnLCAnZWFzZS1vdXQtY2lyYycsICdlYXNlLWluLW91dC1jaXJjJ11cbiAgICB9LFxuICAgIGdyYWRpZW50RGlyZWN0aW9uOiB7XG4gICAgICBlbnVtczogWyd0by1ib3R0b20nLCAndG8tdG9wJywgJ3RvLWxlZnQnLCAndG8tcmlnaHQnLCAndG8tYm90dG9tLXJpZ2h0JywgJ3RvLWJvdHRvbS1sZWZ0JywgJ3RvLXRvcC1yaWdodCcsICd0by10b3AtbGVmdCcsICd0by1yaWdodC1ib3R0b20nLCAndG8tbGVmdC1ib3R0b20nLCAndG8tcmlnaHQtdG9wJywgJ3RvLWxlZnQtdG9wJyAvLyBkaWZmZXJlbnQgb3JkZXJcbiAgICAgIF1cbiAgICB9LFxuXG4gICAgYm91bmRzRXhwYW5zaW9uOiB7XG4gICAgICBudW1iZXI6IHRydWUsXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgIG1pbjogMCxcbiAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZSh2YWxBcnIpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IHZhbEFyci5sZW5ndGg7XG4gICAgICAgIHJldHVybiBsZW5ndGggPT09IDEgfHwgbGVuZ3RoID09PSAyIHx8IGxlbmd0aCA9PT0gNDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHZhciBkaWZmID0ge1xuICAgIHplcm9Ob25aZXJvOiBmdW5jdGlvbiB6ZXJvTm9uWmVybyh2YWwxLCB2YWwyKSB7XG4gICAgICBpZiAoKHZhbDEgPT0gbnVsbCB8fCB2YWwyID09IG51bGwpICYmIHZhbDEgIT09IHZhbDIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7IC8vIG51bGwgY2FzZXMgY291bGQgcmVwcmVzZW50IGFueSB2YWx1ZVxuICAgICAgfVxuICAgICAgaWYgKHZhbDEgPT0gMCAmJiB2YWwyICE9IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKHZhbDEgIT0gMCAmJiB2YWwyID09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBhbnk6IGZ1bmN0aW9uIGFueSh2YWwxLCB2YWwyKSB7XG4gICAgICByZXR1cm4gdmFsMSAhPSB2YWwyO1xuICAgIH0sXG4gICAgZW1wdHlOb25FbXB0eTogZnVuY3Rpb24gZW1wdHlOb25FbXB0eShzdHIxLCBzdHIyKSB7XG4gICAgICB2YXIgZW1wdHkxID0gZW1wdHlTdHJpbmcoc3RyMSk7XG4gICAgICB2YXIgZW1wdHkyID0gZW1wdHlTdHJpbmcoc3RyMik7XG4gICAgICByZXR1cm4gZW1wdHkxICYmICFlbXB0eTIgfHwgIWVtcHR5MSAmJiBlbXB0eTI7XG4gICAgfVxuICB9O1xuXG4gIC8vIGRlZmluZSB2aXN1YWwgc3R5bGUgcHJvcGVydGllc1xuICAvL1xuICAvLyAtIG4uYi4gYWRkaW5nIGEgbmV3IGdyb3VwIG9mIHByb3BzIG1heSByZXF1aXJlIHVwZGF0ZXMgdG8gdXBkYXRlU3R5bGVIaW50cygpXG4gIC8vIC0gYWRkaW5nIG5ldyBwcm9wcyB0byBhbiBleGlzdGluZyBncm91cCBnZXRzIGhhbmRsZWQgYXV0b21hdGljYWxseVxuXG4gIHZhciB0ID0gc3R5Zm4kMi50eXBlcztcbiAgdmFyIG1haW5MYWJlbCA9IFt7XG4gICAgbmFtZTogJ2xhYmVsJyxcbiAgICB0eXBlOiB0LnRleHQsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55LFxuICAgIHRyaWdnZXJzWk9yZGVyOiBkaWZmLmVtcHR5Tm9uRW1wdHlcbiAgfSwge1xuICAgIG5hbWU6ICd0ZXh0LXJvdGF0aW9uJyxcbiAgICB0eXBlOiB0LnRleHRSb3RhdGlvbixcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICd0ZXh0LW1hcmdpbi14JyxcbiAgICB0eXBlOiB0LmJpZGlyZWN0aW9uYWxTaXplLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ3RleHQtbWFyZ2luLXknLFxuICAgIHR5cGU6IHQuYmlkaXJlY3Rpb25hbFNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH1dO1xuICB2YXIgc291cmNlTGFiZWwgPSBbe1xuICAgIG5hbWU6ICdzb3VyY2UtbGFiZWwnLFxuICAgIHR5cGU6IHQudGV4dCxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdzb3VyY2UtdGV4dC1yb3RhdGlvbicsXG4gICAgdHlwZTogdC50ZXh0Um90YXRpb24sXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnc291cmNlLXRleHQtbWFyZ2luLXgnLFxuICAgIHR5cGU6IHQuYmlkaXJlY3Rpb25hbFNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnc291cmNlLXRleHQtbWFyZ2luLXknLFxuICAgIHR5cGU6IHQuYmlkaXJlY3Rpb25hbFNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnc291cmNlLXRleHQtb2Zmc2V0JyxcbiAgICB0eXBlOiB0LnNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH1dO1xuICB2YXIgdGFyZ2V0TGFiZWwgPSBbe1xuICAgIG5hbWU6ICd0YXJnZXQtbGFiZWwnLFxuICAgIHR5cGU6IHQudGV4dCxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICd0YXJnZXQtdGV4dC1yb3RhdGlvbicsXG4gICAgdHlwZTogdC50ZXh0Um90YXRpb24sXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAndGFyZ2V0LXRleHQtbWFyZ2luLXgnLFxuICAgIHR5cGU6IHQuYmlkaXJlY3Rpb25hbFNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAndGFyZ2V0LXRleHQtbWFyZ2luLXknLFxuICAgIHR5cGU6IHQuYmlkaXJlY3Rpb25hbFNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAndGFyZ2V0LXRleHQtb2Zmc2V0JyxcbiAgICB0eXBlOiB0LnNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH1dO1xuICB2YXIgbGFiZWxEaW1lbnNpb25zID0gW3tcbiAgICBuYW1lOiAnZm9udC1mYW1pbHknLFxuICAgIHR5cGU6IHQuZm9udEZhbWlseSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdmb250LXN0eWxlJyxcbiAgICB0eXBlOiB0LmZvbnRTdHlsZSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdmb250LXdlaWdodCcsXG4gICAgdHlwZTogdC5mb250V2VpZ2h0LFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ2ZvbnQtc2l6ZScsXG4gICAgdHlwZTogdC5zaXplLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ3RleHQtdHJhbnNmb3JtJyxcbiAgICB0eXBlOiB0LnRleHRUcmFuc2Zvcm0sXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAndGV4dC13cmFwJyxcbiAgICB0eXBlOiB0LnRleHRXcmFwLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ3RleHQtb3ZlcmZsb3ctd3JhcCcsXG4gICAgdHlwZTogdC50ZXh0T3ZlcmZsb3dXcmFwLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ3RleHQtbWF4LXdpZHRoJyxcbiAgICB0eXBlOiB0LnNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAndGV4dC1vdXRsaW5lLXdpZHRoJyxcbiAgICB0eXBlOiB0LnNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnbGluZS1oZWlnaHQnLFxuICAgIHR5cGU6IHQucG9zaXRpdmVOdW1iZXIsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH1dO1xuICB2YXIgY29tbW9uTGFiZWwgPSBbe1xuICAgIG5hbWU6ICd0ZXh0LXZhbGlnbicsXG4gICAgdHlwZTogdC52YWxpZ24sXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAndGV4dC1oYWxpZ24nLFxuICAgIHR5cGU6IHQuaGFsaWduLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ2NvbG9yJyxcbiAgICB0eXBlOiB0LmNvbG9yXG4gIH0sIHtcbiAgICBuYW1lOiAndGV4dC1vdXRsaW5lLWNvbG9yJyxcbiAgICB0eXBlOiB0LmNvbG9yXG4gIH0sIHtcbiAgICBuYW1lOiAndGV4dC1vdXRsaW5lLW9wYWNpdHknLFxuICAgIHR5cGU6IHQuemVyb09uZU51bWJlclxuICB9LCB7XG4gICAgbmFtZTogJ3RleHQtYmFja2dyb3VuZC1jb2xvcicsXG4gICAgdHlwZTogdC5jb2xvclxuICB9LCB7XG4gICAgbmFtZTogJ3RleHQtYmFja2dyb3VuZC1vcGFjaXR5JyxcbiAgICB0eXBlOiB0Lnplcm9PbmVOdW1iZXJcbiAgfSwge1xuICAgIG5hbWU6ICd0ZXh0LWJhY2tncm91bmQtcGFkZGluZycsXG4gICAgdHlwZTogdC5zaXplLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ3RleHQtYm9yZGVyLW9wYWNpdHknLFxuICAgIHR5cGU6IHQuemVyb09uZU51bWJlclxuICB9LCB7XG4gICAgbmFtZTogJ3RleHQtYm9yZGVyLWNvbG9yJyxcbiAgICB0eXBlOiB0LmNvbG9yXG4gIH0sIHtcbiAgICBuYW1lOiAndGV4dC1ib3JkZXItd2lkdGgnLFxuICAgIHR5cGU6IHQuc2l6ZSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICd0ZXh0LWJvcmRlci1zdHlsZScsXG4gICAgdHlwZTogdC5ib3JkZXJTdHlsZSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICd0ZXh0LWJhY2tncm91bmQtc2hhcGUnLFxuICAgIHR5cGU6IHQudGV4dEJhY2tncm91bmRTaGFwZSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICd0ZXh0LWp1c3RpZmljYXRpb24nLFxuICAgIHR5cGU6IHQuanVzdGlmaWNhdGlvblxuICB9XTtcbiAgdmFyIGJlaGF2aW9yID0gW3tcbiAgICBuYW1lOiAnZXZlbnRzJyxcbiAgICB0eXBlOiB0LmJvb2wsXG4gICAgdHJpZ2dlcnNaT3JkZXI6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAndGV4dC1ldmVudHMnLFxuICAgIHR5cGU6IHQuYm9vbCxcbiAgICB0cmlnZ2Vyc1pPcmRlcjogZGlmZi5hbnlcbiAgfV07XG4gIHZhciB2aXNpYmlsaXR5ID0gW3tcbiAgICBuYW1lOiAnZGlzcGxheScsXG4gICAgdHlwZTogdC5kaXNwbGF5LFxuICAgIHRyaWdnZXJzWk9yZGVyOiBkaWZmLmFueSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnksXG4gICAgdHJpZ2dlcnNCb3VuZHNPZkNvbm5lY3RlZEVkZ2VzOiB0cnVlXG4gIH0sIHtcbiAgICBuYW1lOiAndmlzaWJpbGl0eScsXG4gICAgdHlwZTogdC52aXNpYmlsaXR5LFxuICAgIHRyaWdnZXJzWk9yZGVyOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ29wYWNpdHknLFxuICAgIHR5cGU6IHQuemVyb09uZU51bWJlcixcbiAgICB0cmlnZ2Vyc1pPcmRlcjogZGlmZi56ZXJvTm9uWmVyb1xuICB9LCB7XG4gICAgbmFtZTogJ3RleHQtb3BhY2l0eScsXG4gICAgdHlwZTogdC56ZXJvT25lTnVtYmVyXG4gIH0sIHtcbiAgICBuYW1lOiAnbWluLXpvb21lZC1mb250LXNpemUnLFxuICAgIHR5cGU6IHQuc2l6ZVxuICB9LCB7XG4gICAgbmFtZTogJ3otY29tcG91bmQtZGVwdGgnLFxuICAgIHR5cGU6IHQuekNvbXBvdW5kRGVwdGgsXG4gICAgdHJpZ2dlcnNaT3JkZXI6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnei1pbmRleC1jb21wYXJlJyxcbiAgICB0eXBlOiB0LnpJbmRleENvbXBhcmUsXG4gICAgdHJpZ2dlcnNaT3JkZXI6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnei1pbmRleCcsXG4gICAgdHlwZTogdC5udW1iZXIsXG4gICAgdHJpZ2dlcnNaT3JkZXI6IGRpZmYuYW55XG4gIH1dO1xuICB2YXIgb3ZlcmxheSA9IFt7XG4gICAgbmFtZTogJ292ZXJsYXktcGFkZGluZycsXG4gICAgdHlwZTogdC5zaXplLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ292ZXJsYXktY29sb3InLFxuICAgIHR5cGU6IHQuY29sb3JcbiAgfSwge1xuICAgIG5hbWU6ICdvdmVybGF5LW9wYWNpdHknLFxuICAgIHR5cGU6IHQuemVyb09uZU51bWJlcixcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi56ZXJvTm9uWmVyb1xuICB9LCB7XG4gICAgbmFtZTogJ292ZXJsYXktc2hhcGUnLFxuICAgIHR5cGU6IHQub3ZlcmxheVNoYXBlLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ292ZXJsYXktY29ybmVyLXJhZGl1cycsXG4gICAgdHlwZTogdC5jb3JuZXJSYWRpdXNcbiAgfV07XG4gIHZhciB1bmRlcmxheSA9IFt7XG4gICAgbmFtZTogJ3VuZGVybGF5LXBhZGRpbmcnLFxuICAgIHR5cGU6IHQuc2l6ZSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICd1bmRlcmxheS1jb2xvcicsXG4gICAgdHlwZTogdC5jb2xvclxuICB9LCB7XG4gICAgbmFtZTogJ3VuZGVybGF5LW9wYWNpdHknLFxuICAgIHR5cGU6IHQuemVyb09uZU51bWJlcixcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi56ZXJvTm9uWmVyb1xuICB9LCB7XG4gICAgbmFtZTogJ3VuZGVybGF5LXNoYXBlJyxcbiAgICB0eXBlOiB0Lm92ZXJsYXlTaGFwZSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICd1bmRlcmxheS1jb3JuZXItcmFkaXVzJyxcbiAgICB0eXBlOiB0LmNvcm5lclJhZGl1c1xuICB9XTtcbiAgdmFyIHRyYW5zaXRpb24gPSBbe1xuICAgIG5hbWU6ICd0cmFuc2l0aW9uLXByb3BlcnR5JyxcbiAgICB0eXBlOiB0LnByb3BMaXN0XG4gIH0sIHtcbiAgICBuYW1lOiAndHJhbnNpdGlvbi1kdXJhdGlvbicsXG4gICAgdHlwZTogdC50aW1lXG4gIH0sIHtcbiAgICBuYW1lOiAndHJhbnNpdGlvbi1kZWxheScsXG4gICAgdHlwZTogdC50aW1lXG4gIH0sIHtcbiAgICBuYW1lOiAndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nLFxuICAgIHR5cGU6IHQuZWFzaW5nXG4gIH1dO1xuICB2YXIgbm9kZVNpemVIYXNoT3ZlcnJpZGUgPSBmdW5jdGlvbiBub2RlU2l6ZUhhc2hPdmVycmlkZShlbGUsIHBhcnNlZFByb3ApIHtcbiAgICBpZiAocGFyc2VkUHJvcC52YWx1ZSA9PT0gJ2xhYmVsJykge1xuICAgICAgcmV0dXJuIC1lbGUucG9vbEluZGV4KCk7IC8vIG5vIGhhc2gga2V5IGhpdHMgaXMgdXNpbmcgbGFiZWwgc2l6ZSAoaGl0cmF0ZSBmb3IgcGVyZiBwcm9iYWJseSBsb3cgYW55d2F5KVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcGFyc2VkUHJvcC5wZlZhbHVlO1xuICAgIH1cbiAgfTtcbiAgdmFyIG5vZGVCb2R5ID0gW3tcbiAgICBuYW1lOiAnaGVpZ2h0JyxcbiAgICB0eXBlOiB0Lm5vZGVTaXplLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueSxcbiAgICBoYXNoT3ZlcnJpZGU6IG5vZGVTaXplSGFzaE92ZXJyaWRlXG4gIH0sIHtcbiAgICBuYW1lOiAnd2lkdGgnLFxuICAgIHR5cGU6IHQubm9kZVNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55LFxuICAgIGhhc2hPdmVycmlkZTogbm9kZVNpemVIYXNoT3ZlcnJpZGVcbiAgfSwge1xuICAgIG5hbWU6ICdzaGFwZScsXG4gICAgdHlwZTogdC5ub2RlU2hhcGUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnc2hhcGUtcG9seWdvbi1wb2ludHMnLFxuICAgIHR5cGU6IHQucG9seWdvblBvaW50TGlzdCxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdjb3JuZXItcmFkaXVzJyxcbiAgICB0eXBlOiB0LmNvcm5lclJhZGl1c1xuICB9LCB7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtY29sb3InLFxuICAgIHR5cGU6IHQuY29sb3JcbiAgfSwge1xuICAgIG5hbWU6ICdiYWNrZ3JvdW5kLWZpbGwnLFxuICAgIHR5cGU6IHQuZmlsbFxuICB9LCB7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtb3BhY2l0eScsXG4gICAgdHlwZTogdC56ZXJvT25lTnVtYmVyXG4gIH0sIHtcbiAgICBuYW1lOiAnYmFja2dyb3VuZC1ibGFja2VuJyxcbiAgICB0eXBlOiB0Lm5PbmVPbmVOdW1iZXJcbiAgfSwge1xuICAgIG5hbWU6ICdiYWNrZ3JvdW5kLWdyYWRpZW50LXN0b3AtY29sb3JzJyxcbiAgICB0eXBlOiB0LmNvbG9yc1xuICB9LCB7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtZ3JhZGllbnQtc3RvcC1wb3NpdGlvbnMnLFxuICAgIHR5cGU6IHQucGVyY2VudGFnZXNcbiAgfSwge1xuICAgIG5hbWU6ICdiYWNrZ3JvdW5kLWdyYWRpZW50LWRpcmVjdGlvbicsXG4gICAgdHlwZTogdC5ncmFkaWVudERpcmVjdGlvblxuICB9LCB7XG4gICAgbmFtZTogJ3BhZGRpbmcnLFxuICAgIHR5cGU6IHQuc2l6ZU1heWJlUGVyY2VudCxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdwYWRkaW5nLXJlbGF0aXZlLXRvJyxcbiAgICB0eXBlOiB0LnBhZGRpbmdSZWxhdGl2ZVRvLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ2JvdW5kcy1leHBhbnNpb24nLFxuICAgIHR5cGU6IHQuYm91bmRzRXhwYW5zaW9uLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9XTtcbiAgdmFyIG5vZGVCb3JkZXIgPSBbe1xuICAgIG5hbWU6ICdib3JkZXItY29sb3InLFxuICAgIHR5cGU6IHQuY29sb3JcbiAgfSwge1xuICAgIG5hbWU6ICdib3JkZXItb3BhY2l0eScsXG4gICAgdHlwZTogdC56ZXJvT25lTnVtYmVyXG4gIH0sIHtcbiAgICBuYW1lOiAnYm9yZGVyLXdpZHRoJyxcbiAgICB0eXBlOiB0LnNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnYm9yZGVyLXN0eWxlJyxcbiAgICB0eXBlOiB0LmJvcmRlclN0eWxlXG4gIH0sIHtcbiAgICBuYW1lOiAnYm9yZGVyLWNhcCcsXG4gICAgdHlwZTogdC5saW5lQ2FwXG4gIH0sIHtcbiAgICBuYW1lOiAnYm9yZGVyLWpvaW4nLFxuICAgIHR5cGU6IHQubGluZUpvaW5cbiAgfSwge1xuICAgIG5hbWU6ICdib3JkZXItZGFzaC1wYXR0ZXJuJyxcbiAgICB0eXBlOiB0Lm51bWJlcnNcbiAgfSwge1xuICAgIG5hbWU6ICdib3JkZXItZGFzaC1vZmZzZXQnLFxuICAgIHR5cGU6IHQubnVtYmVyXG4gIH0sIHtcbiAgICBuYW1lOiAnYm9yZGVyLXBvc2l0aW9uJyxcbiAgICB0eXBlOiB0LmxpbmVQb3NpdGlvblxuICB9XTtcbiAgdmFyIG5vZGVPdXRsaW5lID0gW3tcbiAgICBuYW1lOiAnb3V0bGluZS1jb2xvcicsXG4gICAgdHlwZTogdC5jb2xvclxuICB9LCB7XG4gICAgbmFtZTogJ291dGxpbmUtb3BhY2l0eScsXG4gICAgdHlwZTogdC56ZXJvT25lTnVtYmVyXG4gIH0sIHtcbiAgICBuYW1lOiAnb3V0bGluZS13aWR0aCcsXG4gICAgdHlwZTogdC5zaXplLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ291dGxpbmUtc3R5bGUnLFxuICAgIHR5cGU6IHQuYm9yZGVyU3R5bGVcbiAgfSwge1xuICAgIG5hbWU6ICdvdXRsaW5lLW9mZnNldCcsXG4gICAgdHlwZTogdC5zaXplLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9XTtcbiAgdmFyIGJhY2tncm91bmRJbWFnZSA9IFt7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtaW1hZ2UnLFxuICAgIHR5cGU6IHQudXJsc1xuICB9LCB7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtaW1hZ2UtY3Jvc3NvcmlnaW4nLFxuICAgIHR5cGU6IHQuYmdDcm9zc09yaWdpblxuICB9LCB7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtaW1hZ2Utb3BhY2l0eScsXG4gICAgdHlwZTogdC56ZXJvT25lTnVtYmVyc1xuICB9LCB7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtaW1hZ2UtY29udGFpbm1lbnQnLFxuICAgIHR5cGU6IHQuYmdDb250YWlubWVudFxuICB9LCB7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtaW1hZ2Utc21vb3RoaW5nJyxcbiAgICB0eXBlOiB0LmJvb2xzXG4gIH0sIHtcbiAgICBuYW1lOiAnYmFja2dyb3VuZC1wb3NpdGlvbi14JyxcbiAgICB0eXBlOiB0LmJnUG9zXG4gIH0sIHtcbiAgICBuYW1lOiAnYmFja2dyb3VuZC1wb3NpdGlvbi15JyxcbiAgICB0eXBlOiB0LmJnUG9zXG4gIH0sIHtcbiAgICBuYW1lOiAnYmFja2dyb3VuZC13aWR0aC1yZWxhdGl2ZS10bycsXG4gICAgdHlwZTogdC5iZ1JlbGF0aXZlVG9cbiAgfSwge1xuICAgIG5hbWU6ICdiYWNrZ3JvdW5kLWhlaWdodC1yZWxhdGl2ZS10bycsXG4gICAgdHlwZTogdC5iZ1JlbGF0aXZlVG9cbiAgfSwge1xuICAgIG5hbWU6ICdiYWNrZ3JvdW5kLXJlcGVhdCcsXG4gICAgdHlwZTogdC5iZ1JlcGVhdFxuICB9LCB7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtZml0JyxcbiAgICB0eXBlOiB0LmJnRml0XG4gIH0sIHtcbiAgICBuYW1lOiAnYmFja2dyb3VuZC1jbGlwJyxcbiAgICB0eXBlOiB0LmJnQ2xpcFxuICB9LCB7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtd2lkdGgnLFxuICAgIHR5cGU6IHQuYmdXSFxuICB9LCB7XG4gICAgbmFtZTogJ2JhY2tncm91bmQtaGVpZ2h0JyxcbiAgICB0eXBlOiB0LmJnV0hcbiAgfSwge1xuICAgIG5hbWU6ICdiYWNrZ3JvdW5kLW9mZnNldC14JyxcbiAgICB0eXBlOiB0LmJnUG9zXG4gIH0sIHtcbiAgICBuYW1lOiAnYmFja2dyb3VuZC1vZmZzZXQteScsXG4gICAgdHlwZTogdC5iZ1Bvc1xuICB9XTtcbiAgdmFyIGNvbXBvdW5kID0gW3tcbiAgICBuYW1lOiAncG9zaXRpb24nLFxuICAgIHR5cGU6IHQucG9zaXRpb24sXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnY29tcG91bmQtc2l6aW5nLXdydC1sYWJlbHMnLFxuICAgIHR5cGU6IHQuY29tcG91bmRJbmNsdWRlTGFiZWxzLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ21pbi13aWR0aCcsXG4gICAgdHlwZTogdC5zaXplLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ21pbi13aWR0aC1iaWFzLWxlZnQnLFxuICAgIHR5cGU6IHQuc2l6ZU1heWJlUGVyY2VudCxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdtaW4td2lkdGgtYmlhcy1yaWdodCcsXG4gICAgdHlwZTogdC5zaXplTWF5YmVQZXJjZW50LFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ21pbi1oZWlnaHQnLFxuICAgIHR5cGU6IHQuc2l6ZSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdtaW4taGVpZ2h0LWJpYXMtdG9wJyxcbiAgICB0eXBlOiB0LnNpemVNYXliZVBlcmNlbnQsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnbWluLWhlaWdodC1iaWFzLWJvdHRvbScsXG4gICAgdHlwZTogdC5zaXplTWF5YmVQZXJjZW50LFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9XTtcbiAgdmFyIGVkZ2VMaW5lID0gW3tcbiAgICBuYW1lOiAnbGluZS1zdHlsZScsXG4gICAgdHlwZTogdC5saW5lU3R5bGVcbiAgfSwge1xuICAgIG5hbWU6ICdsaW5lLWNvbG9yJyxcbiAgICB0eXBlOiB0LmNvbG9yXG4gIH0sIHtcbiAgICBuYW1lOiAnbGluZS1maWxsJyxcbiAgICB0eXBlOiB0LmZpbGxcbiAgfSwge1xuICAgIG5hbWU6ICdsaW5lLWNhcCcsXG4gICAgdHlwZTogdC5saW5lQ2FwXG4gIH0sIHtcbiAgICBuYW1lOiAnbGluZS1vcGFjaXR5JyxcbiAgICB0eXBlOiB0Lnplcm9PbmVOdW1iZXJcbiAgfSwge1xuICAgIG5hbWU6ICdsaW5lLWRhc2gtcGF0dGVybicsXG4gICAgdHlwZTogdC5udW1iZXJzXG4gIH0sIHtcbiAgICBuYW1lOiAnbGluZS1kYXNoLW9mZnNldCcsXG4gICAgdHlwZTogdC5udW1iZXJcbiAgfSwge1xuICAgIG5hbWU6ICdsaW5lLW91dGxpbmUtd2lkdGgnLFxuICAgIHR5cGU6IHQuc2l6ZVxuICB9LCB7XG4gICAgbmFtZTogJ2xpbmUtb3V0bGluZS1jb2xvcicsXG4gICAgdHlwZTogdC5jb2xvclxuICB9LCB7XG4gICAgbmFtZTogJ2xpbmUtZ3JhZGllbnQtc3RvcC1jb2xvcnMnLFxuICAgIHR5cGU6IHQuY29sb3JzXG4gIH0sIHtcbiAgICBuYW1lOiAnbGluZS1ncmFkaWVudC1zdG9wLXBvc2l0aW9ucycsXG4gICAgdHlwZTogdC5wZXJjZW50YWdlc1xuICB9LCB7XG4gICAgbmFtZTogJ2N1cnZlLXN0eWxlJyxcbiAgICB0eXBlOiB0LmN1cnZlU3R5bGUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55LFxuICAgIHRyaWdnZXJzQm91bmRzT2ZQYXJhbGxlbEJlemllcnM6IHRydWVcbiAgfSwge1xuICAgIG5hbWU6ICdoYXlzdGFjay1yYWRpdXMnLFxuICAgIHR5cGU6IHQuemVyb09uZU51bWJlcixcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdzb3VyY2UtZW5kcG9pbnQnLFxuICAgIHR5cGU6IHQuZWRnZUVuZHBvaW50LFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ3RhcmdldC1lbmRwb2ludCcsXG4gICAgdHlwZTogdC5lZGdlRW5kcG9pbnQsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnY29udHJvbC1wb2ludC1zdGVwLXNpemUnLFxuICAgIHR5cGU6IHQuc2l6ZSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdjb250cm9sLXBvaW50LWRpc3RhbmNlcycsXG4gICAgdHlwZTogdC5iaWRpcmVjdGlvbmFsU2l6ZXMsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnY29udHJvbC1wb2ludC13ZWlnaHRzJyxcbiAgICB0eXBlOiB0Lm51bWJlcnMsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnc2VnbWVudC1kaXN0YW5jZXMnLFxuICAgIHR5cGU6IHQuYmlkaXJlY3Rpb25hbFNpemVzLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ3NlZ21lbnQtd2VpZ2h0cycsXG4gICAgdHlwZTogdC5udW1iZXJzLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ3NlZ21lbnQtcmFkaWknLFxuICAgIHR5cGU6IHQubnVtYmVycyxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdyYWRpdXMtdHlwZScsXG4gICAgdHlwZTogdC5yYWRpdXNUeXBlLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ3RheGktdHVybicsXG4gICAgdHlwZTogdC5iaWRpcmVjdGlvbmFsU2l6ZU1heWJlUGVyY2VudCxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICd0YXhpLXR1cm4tbWluLWRpc3RhbmNlJyxcbiAgICB0eXBlOiB0LnNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAndGF4aS1kaXJlY3Rpb24nLFxuICAgIHR5cGU6IHQuYXhpc0RpcmVjdGlvbixcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICd0YXhpLXJhZGl1cycsXG4gICAgdHlwZTogdC5udW1iZXIsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnZWRnZS1kaXN0YW5jZXMnLFxuICAgIHR5cGU6IHQuZWRnZURpc3RhbmNlcyxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdhcnJvdy1zY2FsZScsXG4gICAgdHlwZTogdC5wb3NpdGl2ZU51bWJlcixcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdsb29wLWRpcmVjdGlvbicsXG4gICAgdHlwZTogdC5hbmdsZSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICdsb29wLXN3ZWVwJyxcbiAgICB0eXBlOiB0LmFuZ2xlLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ3NvdXJjZS1kaXN0YW5jZS1mcm9tLW5vZGUnLFxuICAgIHR5cGU6IHQuc2l6ZSxcbiAgICB0cmlnZ2Vyc0JvdW5kczogZGlmZi5hbnlcbiAgfSwge1xuICAgIG5hbWU6ICd0YXJnZXQtZGlzdGFuY2UtZnJvbS1ub2RlJyxcbiAgICB0eXBlOiB0LnNpemUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH1dO1xuICB2YXIgZ2hvc3QgPSBbe1xuICAgIG5hbWU6ICdnaG9zdCcsXG4gICAgdHlwZTogdC5ib29sLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ2dob3N0LW9mZnNldC14JyxcbiAgICB0eXBlOiB0LmJpZGlyZWN0aW9uYWxTaXplLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ2dob3N0LW9mZnNldC15JyxcbiAgICB0eXBlOiB0LmJpZGlyZWN0aW9uYWxTaXplLFxuICAgIHRyaWdnZXJzQm91bmRzOiBkaWZmLmFueVxuICB9LCB7XG4gICAgbmFtZTogJ2dob3N0LW9wYWNpdHknLFxuICAgIHR5cGU6IHQuemVyb09uZU51bWJlclxuICB9XTtcbiAgdmFyIGNvcmUgPSBbe1xuICAgIG5hbWU6ICdzZWxlY3Rpb24tYm94LWNvbG9yJyxcbiAgICB0eXBlOiB0LmNvbG9yXG4gIH0sIHtcbiAgICBuYW1lOiAnc2VsZWN0aW9uLWJveC1vcGFjaXR5JyxcbiAgICB0eXBlOiB0Lnplcm9PbmVOdW1iZXJcbiAgfSwge1xuICAgIG5hbWU6ICdzZWxlY3Rpb24tYm94LWJvcmRlci1jb2xvcicsXG4gICAgdHlwZTogdC5jb2xvclxuICB9LCB7XG4gICAgbmFtZTogJ3NlbGVjdGlvbi1ib3gtYm9yZGVyLXdpZHRoJyxcbiAgICB0eXBlOiB0LnNpemVcbiAgfSwge1xuICAgIG5hbWU6ICdhY3RpdmUtYmctY29sb3InLFxuICAgIHR5cGU6IHQuY29sb3JcbiAgfSwge1xuICAgIG5hbWU6ICdhY3RpdmUtYmctb3BhY2l0eScsXG4gICAgdHlwZTogdC56ZXJvT25lTnVtYmVyXG4gIH0sIHtcbiAgICBuYW1lOiAnYWN0aXZlLWJnLXNpemUnLFxuICAgIHR5cGU6IHQuc2l6ZVxuICB9LCB7XG4gICAgbmFtZTogJ291dHNpZGUtdGV4dHVyZS1iZy1jb2xvcicsXG4gICAgdHlwZTogdC5jb2xvclxuICB9LCB7XG4gICAgbmFtZTogJ291dHNpZGUtdGV4dHVyZS1iZy1vcGFjaXR5JyxcbiAgICB0eXBlOiB0Lnplcm9PbmVOdW1iZXJcbiAgfV07XG5cbiAgLy8gcGllIGJhY2tncm91bmRzIGZvciBub2Rlc1xuICB2YXIgcGllID0gW107XG4gIHN0eWZuJDIucGllQmFja2dyb3VuZE4gPSAxNjsgLy8gYmVjYXVzZSB0aGUgcGllIHByb3BlcnRpZXMgYXJlIG51bWJlcmVkLCBnaXZlIGFjY2VzcyB0byBhIGNvbnN0YW50IE4gKGZvciByZW5kZXJlciB1c2UpXG4gIHBpZS5wdXNoKHtcbiAgICBuYW1lOiAncGllLXNpemUnLFxuICAgIHR5cGU6IHQuc2l6ZU1heWJlUGVyY2VudFxuICB9KTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPD0gc3R5Zm4kMi5waWVCYWNrZ3JvdW5kTjsgaSsrKSB7XG4gICAgcGllLnB1c2goe1xuICAgICAgbmFtZTogJ3BpZS0nICsgaSArICctYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICB0eXBlOiB0LmNvbG9yXG4gICAgfSk7XG4gICAgcGllLnB1c2goe1xuICAgICAgbmFtZTogJ3BpZS0nICsgaSArICctYmFja2dyb3VuZC1zaXplJyxcbiAgICAgIHR5cGU6IHQucGVyY2VudFxuICAgIH0pO1xuICAgIHBpZS5wdXNoKHtcbiAgICAgIG5hbWU6ICdwaWUtJyArIGkgKyAnLWJhY2tncm91bmQtb3BhY2l0eScsXG4gICAgICB0eXBlOiB0Lnplcm9PbmVOdW1iZXJcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGVkZ2UgYXJyb3dzXG4gIHZhciBlZGdlQXJyb3cgPSBbXTtcbiAgdmFyIGFycm93UHJlZml4ZXMgPSBzdHlmbiQyLmFycm93UHJlZml4ZXMgPSBbJ3NvdXJjZScsICdtaWQtc291cmNlJywgJ3RhcmdldCcsICdtaWQtdGFyZ2V0J107XG4gIFt7XG4gICAgbmFtZTogJ2Fycm93LXNoYXBlJyxcbiAgICB0eXBlOiB0LmFycm93U2hhcGUsXG4gICAgdHJpZ2dlcnNCb3VuZHM6IGRpZmYuYW55XG4gIH0sIHtcbiAgICBuYW1lOiAnYXJyb3ctY29sb3InLFxuICAgIHR5cGU6IHQuY29sb3JcbiAgfSwge1xuICAgIG5hbWU6ICdhcnJvdy1maWxsJyxcbiAgICB0eXBlOiB0LmFycm93RmlsbFxuICB9LCB7XG4gICAgbmFtZTogJ2Fycm93LXdpZHRoJyxcbiAgICB0eXBlOiB0LmFycm93V2lkdGhcbiAgfV0uZm9yRWFjaChmdW5jdGlvbiAocHJvcCkge1xuICAgIGFycm93UHJlZml4ZXMuZm9yRWFjaChmdW5jdGlvbiAocHJlZml4KSB7XG4gICAgICB2YXIgbmFtZSA9IHByZWZpeCArICctJyArIHByb3AubmFtZTtcbiAgICAgIHZhciB0eXBlID0gcHJvcC50eXBlLFxuICAgICAgICB0cmlnZ2Vyc0JvdW5kcyA9IHByb3AudHJpZ2dlcnNCb3VuZHM7XG4gICAgICBlZGdlQXJyb3cucHVzaCh7XG4gICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIHRyaWdnZXJzQm91bmRzOiB0cmlnZ2Vyc0JvdW5kc1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sIHt9KTtcbiAgdmFyIHByb3BzID0gc3R5Zm4kMi5wcm9wZXJ0aWVzID0gW10uY29uY2F0KGJlaGF2aW9yLCB0cmFuc2l0aW9uLCB2aXNpYmlsaXR5LCBvdmVybGF5LCB1bmRlcmxheSwgZ2hvc3QsIGNvbW1vbkxhYmVsLCBsYWJlbERpbWVuc2lvbnMsIG1haW5MYWJlbCwgc291cmNlTGFiZWwsIHRhcmdldExhYmVsLCBub2RlQm9keSwgbm9kZUJvcmRlciwgbm9kZU91dGxpbmUsIGJhY2tncm91bmRJbWFnZSwgcGllLCBjb21wb3VuZCwgZWRnZUxpbmUsIGVkZ2VBcnJvdywgY29yZSk7XG4gIHZhciBwcm9wR3JvdXBzID0gc3R5Zm4kMi5wcm9wZXJ0eUdyb3VwcyA9IHtcbiAgICAvLyBjb21tb24gdG8gYWxsIGVsZXNcbiAgICBiZWhhdmlvcjogYmVoYXZpb3IsXG4gICAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbixcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmlsaXR5LFxuICAgIG92ZXJsYXk6IG92ZXJsYXksXG4gICAgdW5kZXJsYXk6IHVuZGVybGF5LFxuICAgIGdob3N0OiBnaG9zdCxcbiAgICAvLyBsYWJlbHNcbiAgICBjb21tb25MYWJlbDogY29tbW9uTGFiZWwsXG4gICAgbGFiZWxEaW1lbnNpb25zOiBsYWJlbERpbWVuc2lvbnMsXG4gICAgbWFpbkxhYmVsOiBtYWluTGFiZWwsXG4gICAgc291cmNlTGFiZWw6IHNvdXJjZUxhYmVsLFxuICAgIHRhcmdldExhYmVsOiB0YXJnZXRMYWJlbCxcbiAgICAvLyBub2RlIHByb3BzXG4gICAgbm9kZUJvZHk6IG5vZGVCb2R5LFxuICAgIG5vZGVCb3JkZXI6IG5vZGVCb3JkZXIsXG4gICAgbm9kZU91dGxpbmU6IG5vZGVPdXRsaW5lLFxuICAgIGJhY2tncm91bmRJbWFnZTogYmFja2dyb3VuZEltYWdlLFxuICAgIHBpZTogcGllLFxuICAgIGNvbXBvdW5kOiBjb21wb3VuZCxcbiAgICAvLyBlZGdlIHByb3BzXG4gICAgZWRnZUxpbmU6IGVkZ2VMaW5lLFxuICAgIGVkZ2VBcnJvdzogZWRnZUFycm93LFxuICAgIGNvcmU6IGNvcmVcbiAgfTtcbiAgdmFyIHByb3BHcm91cE5hbWVzID0gc3R5Zm4kMi5wcm9wZXJ0eUdyb3VwTmFtZXMgPSB7fTtcbiAgdmFyIHByb3BHcm91cEtleXMgPSBzdHlmbiQyLnByb3BlcnR5R3JvdXBLZXlzID0gT2JqZWN0LmtleXMocHJvcEdyb3Vwcyk7XG4gIHByb3BHcm91cEtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgcHJvcEdyb3VwTmFtZXNba2V5XSA9IHByb3BHcm91cHNba2V5XS5tYXAoZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgIHJldHVybiBwcm9wLm5hbWU7XG4gICAgfSk7XG4gICAgcHJvcEdyb3Vwc1trZXldLmZvckVhY2goZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgIHJldHVybiBwcm9wLmdyb3VwS2V5ID0ga2V5O1xuICAgIH0pO1xuICB9KTtcblxuICAvLyBkZWZpbmUgYWxpYXNlc1xuICB2YXIgYWxpYXNlcyA9IHN0eWZuJDIuYWxpYXNlcyA9IFt7XG4gICAgbmFtZTogJ2NvbnRlbnQnLFxuICAgIHBvaW50c1RvOiAnbGFiZWwnXG4gIH0sIHtcbiAgICBuYW1lOiAnY29udHJvbC1wb2ludC1kaXN0YW5jZScsXG4gICAgcG9pbnRzVG86ICdjb250cm9sLXBvaW50LWRpc3RhbmNlcydcbiAgfSwge1xuICAgIG5hbWU6ICdjb250cm9sLXBvaW50LXdlaWdodCcsXG4gICAgcG9pbnRzVG86ICdjb250cm9sLXBvaW50LXdlaWdodHMnXG4gIH0sIHtcbiAgICBuYW1lOiAnc2VnbWVudC1kaXN0YW5jZScsXG4gICAgcG9pbnRzVG86ICdzZWdtZW50LWRpc3RhbmNlcydcbiAgfSwge1xuICAgIG5hbWU6ICdzZWdtZW50LXdlaWdodCcsXG4gICAgcG9pbnRzVG86ICdzZWdtZW50LXdlaWdodHMnXG4gIH0sIHtcbiAgICBuYW1lOiAnc2VnbWVudC1yYWRpdXMnLFxuICAgIHBvaW50c1RvOiAnc2VnbWVudC1yYWRpaSdcbiAgfSwge1xuICAgIG5hbWU6ICdlZGdlLXRleHQtcm90YXRpb24nLFxuICAgIHBvaW50c1RvOiAndGV4dC1yb3RhdGlvbidcbiAgfSwge1xuICAgIG5hbWU6ICdwYWRkaW5nLWxlZnQnLFxuICAgIHBvaW50c1RvOiAncGFkZGluZydcbiAgfSwge1xuICAgIG5hbWU6ICdwYWRkaW5nLXJpZ2h0JyxcbiAgICBwb2ludHNUbzogJ3BhZGRpbmcnXG4gIH0sIHtcbiAgICBuYW1lOiAncGFkZGluZy10b3AnLFxuICAgIHBvaW50c1RvOiAncGFkZGluZydcbiAgfSwge1xuICAgIG5hbWU6ICdwYWRkaW5nLWJvdHRvbScsXG4gICAgcG9pbnRzVG86ICdwYWRkaW5nJ1xuICB9XTtcblxuICAvLyBsaXN0IG9mIHByb3BlcnR5IG5hbWVzXG4gIHN0eWZuJDIucHJvcGVydHlOYW1lcyA9IHByb3BzLm1hcChmdW5jdGlvbiAocCkge1xuICAgIHJldHVybiBwLm5hbWU7XG4gIH0pO1xuXG4gIC8vIGFsbG93IGFjY2VzcyBvZiBwcm9wZXJ0aWVzIGJ5IG5hbWUgKCBlLmcuIHN0eWxlLnByb3BlcnRpZXMuaGVpZ2h0IClcbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHByb3BzLmxlbmd0aDsgX2krKykge1xuICAgIHZhciBwcm9wID0gcHJvcHNbX2ldO1xuICAgIHByb3BzW3Byb3AubmFtZV0gPSBwcm9wOyAvLyBhbGxvdyBsb29rdXAgYnkgbmFtZVxuICB9XG5cbiAgLy8gbWFwIGFsaWFzZXNcbiAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgYWxpYXNlcy5sZW5ndGg7IF9pMisrKSB7XG4gICAgdmFyIGFsaWFzID0gYWxpYXNlc1tfaTJdO1xuICAgIHZhciBwb2ludHNUb1Byb3AgPSBwcm9wc1thbGlhcy5wb2ludHNUb107XG4gICAgdmFyIGFsaWFzUHJvcCA9IHtcbiAgICAgIG5hbWU6IGFsaWFzLm5hbWUsXG4gICAgICBhbGlhczogdHJ1ZSxcbiAgICAgIHBvaW50c1RvOiBwb2ludHNUb1Byb3BcbiAgICB9O1xuXG4gICAgLy8gYWRkIGFsaWFzIHByb3AgZm9yIHBhcnNpbmdcbiAgICBwcm9wcy5wdXNoKGFsaWFzUHJvcCk7XG4gICAgcHJvcHNbYWxpYXMubmFtZV0gPSBhbGlhc1Byb3A7IC8vIGFsbG93IGxvb2t1cCBieSBuYW1lXG4gIH1cbn0pKCk7XG5cbnN0eWZuJDIuZ2V0RGVmYXVsdFByb3BlcnR5ID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFByb3BlcnRpZXMoKVtuYW1lXTtcbn07XG5zdHlmbiQyLmdldERlZmF1bHRQcm9wZXJ0aWVzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3AgPSB0aGlzLl9wcml2YXRlO1xuICBpZiAoX3AuZGVmYXVsdFByb3BlcnRpZXMgIT0gbnVsbCkge1xuICAgIHJldHVybiBfcC5kZWZhdWx0UHJvcGVydGllcztcbiAgfVxuICB2YXIgcmF3UHJvcHMgPSBleHRlbmQoe1xuICAgIC8vIGNvcmUgcHJvcHNcbiAgICAnc2VsZWN0aW9uLWJveC1jb2xvcic6ICcjZGRkJyxcbiAgICAnc2VsZWN0aW9uLWJveC1vcGFjaXR5JzogMC42NSxcbiAgICAnc2VsZWN0aW9uLWJveC1ib3JkZXItY29sb3InOiAnI2FhYScsXG4gICAgJ3NlbGVjdGlvbi1ib3gtYm9yZGVyLXdpZHRoJzogMSxcbiAgICAnYWN0aXZlLWJnLWNvbG9yJzogJ2JsYWNrJyxcbiAgICAnYWN0aXZlLWJnLW9wYWNpdHknOiAwLjE1LFxuICAgICdhY3RpdmUtYmctc2l6ZSc6IDMwLFxuICAgICdvdXRzaWRlLXRleHR1cmUtYmctY29sb3InOiAnIzAwMCcsXG4gICAgJ291dHNpZGUtdGV4dHVyZS1iZy1vcGFjaXR5JzogMC4xMjUsXG4gICAgLy8gY29tbW9uIG5vZGUvZWRnZSBwcm9wc1xuICAgICdldmVudHMnOiAneWVzJyxcbiAgICAndGV4dC1ldmVudHMnOiAnbm8nLFxuICAgICd0ZXh0LXZhbGlnbic6ICd0b3AnLFxuICAgICd0ZXh0LWhhbGlnbic6ICdjZW50ZXInLFxuICAgICd0ZXh0LWp1c3RpZmljYXRpb24nOiAnYXV0bycsXG4gICAgJ2xpbmUtaGVpZ2h0JzogMSxcbiAgICAnY29sb3InOiAnIzAwMCcsXG4gICAgJ3RleHQtb3V0bGluZS1jb2xvcic6ICcjMDAwJyxcbiAgICAndGV4dC1vdXRsaW5lLXdpZHRoJzogMCxcbiAgICAndGV4dC1vdXRsaW5lLW9wYWNpdHknOiAxLFxuICAgICd0ZXh0LW9wYWNpdHknOiAxLFxuICAgICd0ZXh0LWRlY29yYXRpb24nOiAnbm9uZScsXG4gICAgJ3RleHQtdHJhbnNmb3JtJzogJ25vbmUnLFxuICAgICd0ZXh0LXdyYXAnOiAnbm9uZScsXG4gICAgJ3RleHQtb3ZlcmZsb3ctd3JhcCc6ICd3aGl0ZXNwYWNlJyxcbiAgICAndGV4dC1tYXgtd2lkdGgnOiA5OTk5LFxuICAgICd0ZXh0LWJhY2tncm91bmQtY29sb3InOiAnIzAwMCcsXG4gICAgJ3RleHQtYmFja2dyb3VuZC1vcGFjaXR5JzogMCxcbiAgICAndGV4dC1iYWNrZ3JvdW5kLXNoYXBlJzogJ3JlY3RhbmdsZScsXG4gICAgJ3RleHQtYmFja2dyb3VuZC1wYWRkaW5nJzogMCxcbiAgICAndGV4dC1ib3JkZXItb3BhY2l0eSc6IDAsXG4gICAgJ3RleHQtYm9yZGVyLXdpZHRoJzogMCxcbiAgICAndGV4dC1ib3JkZXItc3R5bGUnOiAnc29saWQnLFxuICAgICd0ZXh0LWJvcmRlci1jb2xvcic6ICcjMDAwJyxcbiAgICAnZm9udC1mYW1pbHknOiAnSGVsdmV0aWNhIE5ldWUsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsXG4gICAgJ2ZvbnQtc3R5bGUnOiAnbm9ybWFsJyxcbiAgICAnZm9udC13ZWlnaHQnOiAnbm9ybWFsJyxcbiAgICAnZm9udC1zaXplJzogMTYsXG4gICAgJ21pbi16b29tZWQtZm9udC1zaXplJzogMCxcbiAgICAndGV4dC1yb3RhdGlvbic6ICdub25lJyxcbiAgICAnc291cmNlLXRleHQtcm90YXRpb24nOiAnbm9uZScsXG4gICAgJ3RhcmdldC10ZXh0LXJvdGF0aW9uJzogJ25vbmUnLFxuICAgICd2aXNpYmlsaXR5JzogJ3Zpc2libGUnLFxuICAgICdkaXNwbGF5JzogJ2VsZW1lbnQnLFxuICAgICdvcGFjaXR5JzogMSxcbiAgICAnei1jb21wb3VuZC1kZXB0aCc6ICdhdXRvJyxcbiAgICAnei1pbmRleC1jb21wYXJlJzogJ2F1dG8nLFxuICAgICd6LWluZGV4JzogMCxcbiAgICAnbGFiZWwnOiAnJyxcbiAgICAndGV4dC1tYXJnaW4teCc6IDAsXG4gICAgJ3RleHQtbWFyZ2luLXknOiAwLFxuICAgICdzb3VyY2UtbGFiZWwnOiAnJyxcbiAgICAnc291cmNlLXRleHQtb2Zmc2V0JzogMCxcbiAgICAnc291cmNlLXRleHQtbWFyZ2luLXgnOiAwLFxuICAgICdzb3VyY2UtdGV4dC1tYXJnaW4teSc6IDAsXG4gICAgJ3RhcmdldC1sYWJlbCc6ICcnLFxuICAgICd0YXJnZXQtdGV4dC1vZmZzZXQnOiAwLFxuICAgICd0YXJnZXQtdGV4dC1tYXJnaW4teCc6IDAsXG4gICAgJ3RhcmdldC10ZXh0LW1hcmdpbi15JzogMCxcbiAgICAnb3ZlcmxheS1vcGFjaXR5JzogMCxcbiAgICAnb3ZlcmxheS1jb2xvcic6ICcjMDAwJyxcbiAgICAnb3ZlcmxheS1wYWRkaW5nJzogMTAsXG4gICAgJ292ZXJsYXktc2hhcGUnOiAncm91bmQtcmVjdGFuZ2xlJyxcbiAgICAnb3ZlcmxheS1jb3JuZXItcmFkaXVzJzogJ2F1dG8nLFxuICAgICd1bmRlcmxheS1vcGFjaXR5JzogMCxcbiAgICAndW5kZXJsYXktY29sb3InOiAnIzAwMCcsXG4gICAgJ3VuZGVybGF5LXBhZGRpbmcnOiAxMCxcbiAgICAndW5kZXJsYXktc2hhcGUnOiAncm91bmQtcmVjdGFuZ2xlJyxcbiAgICAndW5kZXJsYXktY29ybmVyLXJhZGl1cyc6ICdhdXRvJyxcbiAgICAndHJhbnNpdGlvbi1wcm9wZXJ0eSc6ICdub25lJyxcbiAgICAndHJhbnNpdGlvbi1kdXJhdGlvbic6IDAsXG4gICAgJ3RyYW5zaXRpb24tZGVsYXknOiAwLFxuICAgICd0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbic6ICdsaW5lYXInLFxuICAgIC8vIG5vZGUgcHJvcHNcbiAgICAnYmFja2dyb3VuZC1ibGFja2VuJzogMCxcbiAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjOTk5JyxcbiAgICAnYmFja2dyb3VuZC1maWxsJzogJ3NvbGlkJyxcbiAgICAnYmFja2dyb3VuZC1vcGFjaXR5JzogMSxcbiAgICAnYmFja2dyb3VuZC1pbWFnZSc6ICdub25lJyxcbiAgICAnYmFja2dyb3VuZC1pbWFnZS1jcm9zc29yaWdpbic6ICdhbm9ueW1vdXMnLFxuICAgICdiYWNrZ3JvdW5kLWltYWdlLW9wYWNpdHknOiAxLFxuICAgICdiYWNrZ3JvdW5kLWltYWdlLWNvbnRhaW5tZW50JzogJ2luc2lkZScsXG4gICAgJ2JhY2tncm91bmQtaW1hZ2Utc21vb3RoaW5nJzogJ3llcycsXG4gICAgJ2JhY2tncm91bmQtcG9zaXRpb24teCc6ICc1MCUnLFxuICAgICdiYWNrZ3JvdW5kLXBvc2l0aW9uLXknOiAnNTAlJyxcbiAgICAnYmFja2dyb3VuZC1vZmZzZXQteCc6IDAsXG4gICAgJ2JhY2tncm91bmQtb2Zmc2V0LXknOiAwLFxuICAgICdiYWNrZ3JvdW5kLXdpZHRoLXJlbGF0aXZlLXRvJzogJ2luY2x1ZGUtcGFkZGluZycsXG4gICAgJ2JhY2tncm91bmQtaGVpZ2h0LXJlbGF0aXZlLXRvJzogJ2luY2x1ZGUtcGFkZGluZycsXG4gICAgJ2JhY2tncm91bmQtcmVwZWF0JzogJ25vLXJlcGVhdCcsXG4gICAgJ2JhY2tncm91bmQtZml0JzogJ25vbmUnLFxuICAgICdiYWNrZ3JvdW5kLWNsaXAnOiAnbm9kZScsXG4gICAgJ2JhY2tncm91bmQtd2lkdGgnOiAnYXV0bycsXG4gICAgJ2JhY2tncm91bmQtaGVpZ2h0JzogJ2F1dG8nLFxuICAgICdib3JkZXItY29sb3InOiAnIzAwMCcsXG4gICAgJ2JvcmRlci1vcGFjaXR5JzogMSxcbiAgICAnYm9yZGVyLXdpZHRoJzogMCxcbiAgICAnYm9yZGVyLXN0eWxlJzogJ3NvbGlkJyxcbiAgICAnYm9yZGVyLWRhc2gtcGF0dGVybic6IFs0LCAyXSxcbiAgICAnYm9yZGVyLWRhc2gtb2Zmc2V0JzogMCxcbiAgICAnYm9yZGVyLWNhcCc6ICdidXR0JyxcbiAgICAnYm9yZGVyLWpvaW4nOiAnbWl0ZXInLFxuICAgICdib3JkZXItcG9zaXRpb24nOiAnY2VudGVyJyxcbiAgICAnb3V0bGluZS1jb2xvcic6ICcjOTk5JyxcbiAgICAnb3V0bGluZS1vcGFjaXR5JzogMSxcbiAgICAnb3V0bGluZS13aWR0aCc6IDAsXG4gICAgJ291dGxpbmUtb2Zmc2V0JzogMCxcbiAgICAnb3V0bGluZS1zdHlsZSc6ICdzb2xpZCcsXG4gICAgJ2hlaWdodCc6IDMwLFxuICAgICd3aWR0aCc6IDMwLFxuICAgICdzaGFwZSc6ICdlbGxpcHNlJyxcbiAgICAnc2hhcGUtcG9seWdvbi1wb2ludHMnOiAnLTEsIC0xLCAgIDEsIC0xLCAgIDEsIDEsICAgLTEsIDEnLFxuICAgICdjb3JuZXItcmFkaXVzJzogJ2F1dG8nLFxuICAgICdib3VuZHMtZXhwYW5zaW9uJzogMCxcbiAgICAvLyBub2RlIGdyYWRpZW50XG4gICAgJ2JhY2tncm91bmQtZ3JhZGllbnQtZGlyZWN0aW9uJzogJ3RvLWJvdHRvbScsXG4gICAgJ2JhY2tncm91bmQtZ3JhZGllbnQtc3RvcC1jb2xvcnMnOiAnIzk5OScsXG4gICAgJ2JhY2tncm91bmQtZ3JhZGllbnQtc3RvcC1wb3NpdGlvbnMnOiAnMCUnLFxuICAgIC8vIGdob3N0IHByb3BzXG4gICAgJ2dob3N0JzogJ25vJyxcbiAgICAnZ2hvc3Qtb2Zmc2V0LXknOiAwLFxuICAgICdnaG9zdC1vZmZzZXQteCc6IDAsXG4gICAgJ2dob3N0LW9wYWNpdHknOiAwLFxuICAgIC8vIGNvbXBvdW5kIHByb3BzXG4gICAgJ3BhZGRpbmcnOiAwLFxuICAgICdwYWRkaW5nLXJlbGF0aXZlLXRvJzogJ3dpZHRoJyxcbiAgICAncG9zaXRpb24nOiAnb3JpZ2luJyxcbiAgICAnY29tcG91bmQtc2l6aW5nLXdydC1sYWJlbHMnOiAnaW5jbHVkZScsXG4gICAgJ21pbi13aWR0aCc6IDAsXG4gICAgJ21pbi13aWR0aC1iaWFzLWxlZnQnOiAwLFxuICAgICdtaW4td2lkdGgtYmlhcy1yaWdodCc6IDAsXG4gICAgJ21pbi1oZWlnaHQnOiAwLFxuICAgICdtaW4taGVpZ2h0LWJpYXMtdG9wJzogMCxcbiAgICAnbWluLWhlaWdodC1iaWFzLWJvdHRvbSc6IDBcbiAgfSwge1xuICAgIC8vIG5vZGUgcGllIGJnXG4gICAgJ3BpZS1zaXplJzogJzEwMCUnXG4gIH0sIFt7XG4gICAgbmFtZTogJ3BpZS17e2l9fS1iYWNrZ3JvdW5kLWNvbG9yJyxcbiAgICB2YWx1ZTogJ2JsYWNrJ1xuICB9LCB7XG4gICAgbmFtZTogJ3BpZS17e2l9fS1iYWNrZ3JvdW5kLXNpemUnLFxuICAgIHZhbHVlOiAnMCUnXG4gIH0sIHtcbiAgICBuYW1lOiAncGllLXt7aX19LWJhY2tncm91bmQtb3BhY2l0eScsXG4gICAgdmFsdWU6IDFcbiAgfV0ucmVkdWNlKGZ1bmN0aW9uIChjc3MsIHByb3ApIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBzdHlmbiQyLnBpZUJhY2tncm91bmROOyBpKyspIHtcbiAgICAgIHZhciBuYW1lID0gcHJvcC5uYW1lLnJlcGxhY2UoJ3t7aX19JywgaSk7XG4gICAgICB2YXIgdmFsID0gcHJvcC52YWx1ZTtcbiAgICAgIGNzc1tuYW1lXSA9IHZhbDtcbiAgICB9XG4gICAgcmV0dXJuIGNzcztcbiAgfSwge30pLCB7XG4gICAgLy8gZWRnZSBwcm9wc1xuICAgICdsaW5lLXN0eWxlJzogJ3NvbGlkJyxcbiAgICAnbGluZS1jb2xvcic6ICcjOTk5JyxcbiAgICAnbGluZS1maWxsJzogJ3NvbGlkJyxcbiAgICAnbGluZS1jYXAnOiAnYnV0dCcsXG4gICAgJ2xpbmUtb3BhY2l0eSc6IDEsXG4gICAgJ2xpbmUtb3V0bGluZS13aWR0aCc6IDAsXG4gICAgJ2xpbmUtb3V0bGluZS1jb2xvcic6ICcjMDAwJyxcbiAgICAnbGluZS1ncmFkaWVudC1zdG9wLWNvbG9ycyc6ICcjOTk5JyxcbiAgICAnbGluZS1ncmFkaWVudC1zdG9wLXBvc2l0aW9ucyc6ICcwJScsXG4gICAgJ2NvbnRyb2wtcG9pbnQtc3RlcC1zaXplJzogNDAsXG4gICAgJ2NvbnRyb2wtcG9pbnQtd2VpZ2h0cyc6IDAuNSxcbiAgICAnc2VnbWVudC13ZWlnaHRzJzogMC41LFxuICAgICdzZWdtZW50LWRpc3RhbmNlcyc6IDIwLFxuICAgICdzZWdtZW50LXJhZGlpJzogMTUsXG4gICAgJ3JhZGl1cy10eXBlJzogJ2FyYy1yYWRpdXMnLFxuICAgICd0YXhpLXR1cm4nOiAnNTAlJyxcbiAgICAndGF4aS1yYWRpdXMnOiAxNSxcbiAgICAndGF4aS10dXJuLW1pbi1kaXN0YW5jZSc6IDEwLFxuICAgICd0YXhpLWRpcmVjdGlvbic6ICdhdXRvJyxcbiAgICAnZWRnZS1kaXN0YW5jZXMnOiAnaW50ZXJzZWN0aW9uJyxcbiAgICAnY3VydmUtc3R5bGUnOiAnaGF5c3RhY2snLFxuICAgICdoYXlzdGFjay1yYWRpdXMnOiAwLFxuICAgICdhcnJvdy1zY2FsZSc6IDEsXG4gICAgJ2xvb3AtZGlyZWN0aW9uJzogJy00NWRlZycsXG4gICAgJ2xvb3Atc3dlZXAnOiAnLTkwZGVnJyxcbiAgICAnc291cmNlLWRpc3RhbmNlLWZyb20tbm9kZSc6IDAsXG4gICAgJ3RhcmdldC1kaXN0YW5jZS1mcm9tLW5vZGUnOiAwLFxuICAgICdzb3VyY2UtZW5kcG9pbnQnOiAnb3V0c2lkZS10by1ub2RlJyxcbiAgICAndGFyZ2V0LWVuZHBvaW50JzogJ291dHNpZGUtdG8tbm9kZScsXG4gICAgJ2xpbmUtZGFzaC1wYXR0ZXJuJzogWzYsIDNdLFxuICAgICdsaW5lLWRhc2gtb2Zmc2V0JzogMFxuICB9LCBbe1xuICAgIG5hbWU6ICdhcnJvdy1zaGFwZScsXG4gICAgdmFsdWU6ICdub25lJ1xuICB9LCB7XG4gICAgbmFtZTogJ2Fycm93LWNvbG9yJyxcbiAgICB2YWx1ZTogJyM5OTknXG4gIH0sIHtcbiAgICBuYW1lOiAnYXJyb3ctZmlsbCcsXG4gICAgdmFsdWU6ICdmaWxsZWQnXG4gIH0sIHtcbiAgICBuYW1lOiAnYXJyb3ctd2lkdGgnLFxuICAgIHZhbHVlOiAxXG4gIH1dLnJlZHVjZShmdW5jdGlvbiAoY3NzLCBwcm9wKSB7XG4gICAgc3R5Zm4kMi5hcnJvd1ByZWZpeGVzLmZvckVhY2goZnVuY3Rpb24gKHByZWZpeCkge1xuICAgICAgdmFyIG5hbWUgPSBwcmVmaXggKyAnLScgKyBwcm9wLm5hbWU7XG4gICAgICB2YXIgdmFsID0gcHJvcC52YWx1ZTtcbiAgICAgIGNzc1tuYW1lXSA9IHZhbDtcbiAgICB9KTtcbiAgICByZXR1cm4gY3NzO1xuICB9LCB7fSkpO1xuICB2YXIgcGFyc2VkUHJvcHMgPSB7fTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcHJvcCA9IHRoaXMucHJvcGVydGllc1tpXTtcbiAgICBpZiAocHJvcC5wb2ludHNUbykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHZhciBuYW1lID0gcHJvcC5uYW1lO1xuICAgIHZhciB2YWwgPSByYXdQcm9wc1tuYW1lXTtcbiAgICB2YXIgcGFyc2VkUHJvcCA9IHRoaXMucGFyc2UobmFtZSwgdmFsKTtcbiAgICBwYXJzZWRQcm9wc1tuYW1lXSA9IHBhcnNlZFByb3A7XG4gIH1cbiAgX3AuZGVmYXVsdFByb3BlcnRpZXMgPSBwYXJzZWRQcm9wcztcbiAgcmV0dXJuIF9wLmRlZmF1bHRQcm9wZXJ0aWVzO1xufTtcbnN0eWZuJDIuYWRkRGVmYXVsdFN0eWxlc2hlZXQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VsZWN0b3IoJzpwYXJlbnQnKS5jc3Moe1xuICAgICdzaGFwZSc6ICdyZWN0YW5nbGUnLFxuICAgICdwYWRkaW5nJzogMTAsXG4gICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2VlZScsXG4gICAgJ2JvcmRlci1jb2xvcic6ICcjY2NjJyxcbiAgICAnYm9yZGVyLXdpZHRoJzogMVxuICB9KS5zZWxlY3RvcignZWRnZScpLmNzcyh7XG4gICAgJ3dpZHRoJzogM1xuICB9KS5zZWxlY3RvcignOmxvb3AnKS5jc3Moe1xuICAgICdjdXJ2ZS1zdHlsZSc6ICdiZXppZXInXG4gIH0pLnNlbGVjdG9yKCdlZGdlOmNvbXBvdW5kJykuY3NzKHtcbiAgICAnY3VydmUtc3R5bGUnOiAnYmV6aWVyJyxcbiAgICAnc291cmNlLWVuZHBvaW50JzogJ291dHNpZGUtdG8tbGluZScsXG4gICAgJ3RhcmdldC1lbmRwb2ludCc6ICdvdXRzaWRlLXRvLWxpbmUnXG4gIH0pLnNlbGVjdG9yKCc6c2VsZWN0ZWQnKS5jc3Moe1xuICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyMwMTY5RDknLFxuICAgICdsaW5lLWNvbG9yJzogJyMwMTY5RDknLFxuICAgICdzb3VyY2UtYXJyb3ctY29sb3InOiAnIzAxNjlEOScsXG4gICAgJ3RhcmdldC1hcnJvdy1jb2xvcic6ICcjMDE2OUQ5JyxcbiAgICAnbWlkLXNvdXJjZS1hcnJvdy1jb2xvcic6ICcjMDE2OUQ5JyxcbiAgICAnbWlkLXRhcmdldC1hcnJvdy1jb2xvcic6ICcjMDE2OUQ5J1xuICB9KS5zZWxlY3RvcignOnBhcmVudDpzZWxlY3RlZCcpLmNzcyh7XG4gICAgJ2JhY2tncm91bmQtY29sb3InOiAnI0NDRTFGOScsXG4gICAgJ2JvcmRlci1jb2xvcic6ICcjYWVjOGU1J1xuICB9KS5zZWxlY3RvcignOmFjdGl2ZScpLmNzcyh7XG4gICAgJ292ZXJsYXktY29sb3InOiAnYmxhY2snLFxuICAgICdvdmVybGF5LXBhZGRpbmcnOiAxMCxcbiAgICAnb3ZlcmxheS1vcGFjaXR5JzogMC4yNVxuICB9KTtcbiAgdGhpcy5kZWZhdWx0TGVuZ3RoID0gdGhpcy5sZW5ndGg7XG59O1xuXG52YXIgc3R5Zm4kMSA9IHt9O1xuXG4vLyBhIGNhY2hpbmcgbGF5ZXIgZm9yIHByb3BlcnR5IHBhcnNpbmdcbnN0eWZuJDEucGFyc2UgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUsIHByb3BJc0J5cGFzcywgcHJvcElzRmxhdCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgLy8gZnVuY3Rpb24gdmFsdWVzIGNhbid0IGJlIGNhY2hlZCBpbiBhbGwgY2FzZXMsIGFuZCB0aGVyZSBpc24ndCBtdWNoIGJlbmVmaXQgb2YgY2FjaGluZyB0aGVtIGFueXdheVxuICBpZiAoZm4kNih2YWx1ZSkpIHtcbiAgICByZXR1cm4gc2VsZi5wYXJzZUltcGxXYXJuKG5hbWUsIHZhbHVlLCBwcm9wSXNCeXBhc3MsIHByb3BJc0ZsYXQpO1xuICB9XG4gIHZhciBmbGF0S2V5ID0gcHJvcElzRmxhdCA9PT0gJ21hcHBpbmcnIHx8IHByb3BJc0ZsYXQgPT09IHRydWUgfHwgcHJvcElzRmxhdCA9PT0gZmFsc2UgfHwgcHJvcElzRmxhdCA9PSBudWxsID8gJ2RvbnRjYXJlJyA6IHByb3BJc0ZsYXQ7XG4gIHZhciBieXBhc3NLZXkgPSBwcm9wSXNCeXBhc3MgPyAndCcgOiAnZic7XG4gIHZhciB2YWx1ZUtleSA9ICcnICsgdmFsdWU7XG4gIHZhciBhcmdIYXNoID0gaGFzaFN0cmluZ3MobmFtZSwgdmFsdWVLZXksIGJ5cGFzc0tleSwgZmxhdEtleSk7XG4gIHZhciBwcm9wQ2FjaGUgPSBzZWxmLnByb3BDYWNoZSA9IHNlbGYucHJvcENhY2hlIHx8IFtdO1xuICB2YXIgcmV0O1xuICBpZiAoIShyZXQgPSBwcm9wQ2FjaGVbYXJnSGFzaF0pKSB7XG4gICAgcmV0ID0gcHJvcENhY2hlW2FyZ0hhc2hdID0gc2VsZi5wYXJzZUltcGxXYXJuKG5hbWUsIHZhbHVlLCBwcm9wSXNCeXBhc3MsIHByb3BJc0ZsYXQpO1xuICB9XG5cbiAgLy8gLSBieXBhc3NlcyBjYW4ndCBiZSBzaGFyZWQgYi9jIHRoZSB2YWx1ZSBjYW4gYmUgY2hhbmdlZCBieSBhbmltYXRpb25zIG9yIG90aGVyd2lzZSBvdmVycmlkZGVuXG4gIC8vIC0gbWFwcGluZ3MgY2FuJ3QgYmUgc2hhcmVkIGIvYyBtYXBwaW5ncyBhcmUgcGVyLWVsZW1lbnRcbiAgaWYgKHByb3BJc0J5cGFzcyB8fCBwcm9wSXNGbGF0ID09PSAnbWFwcGluZycpIHtcbiAgICAvLyBuZWVkIGEgY29weSBzaW5jZSBwcm9wcyBhcmUgbXV0YXRlZCBsYXRlciBpbiB0aGVpciBsaWZlY3ljbGVzXG4gICAgcmV0ID0gY29weShyZXQpO1xuICAgIGlmIChyZXQpIHtcbiAgICAgIHJldC52YWx1ZSA9IGNvcHkocmV0LnZhbHVlKTsgLy8gYmVjYXVzZSBpdCBjb3VsZCBiZSBhbiBhcnJheSwgZS5nLiBjb2xvdXJcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufTtcbnN0eWZuJDEucGFyc2VJbXBsV2FybiA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSwgcHJvcElzQnlwYXNzLCBwcm9wSXNGbGF0KSB7XG4gIHZhciBwcm9wID0gdGhpcy5wYXJzZUltcGwobmFtZSwgdmFsdWUsIHByb3BJc0J5cGFzcywgcHJvcElzRmxhdCk7XG4gIGlmICghcHJvcCAmJiB2YWx1ZSAhPSBudWxsKSB7XG4gICAgd2FybihcIlRoZSBzdHlsZSBwcm9wZXJ0eSBgXCIuY29uY2F0KG5hbWUsIFwiOiBcIikuY29uY2F0KHZhbHVlLCBcImAgaXMgaW52YWxpZFwiKSk7XG4gIH1cbiAgaWYgKHByb3AgJiYgKHByb3AubmFtZSA9PT0gJ3dpZHRoJyB8fCBwcm9wLm5hbWUgPT09ICdoZWlnaHQnKSAmJiB2YWx1ZSA9PT0gJ2xhYmVsJykge1xuICAgIHdhcm4oJ1RoZSBzdHlsZSB2YWx1ZSBvZiBgbGFiZWxgIGlzIGRlcHJlY2F0ZWQgZm9yIGAnICsgcHJvcC5uYW1lICsgJ2AnKTtcbiAgfVxuICByZXR1cm4gcHJvcDtcbn07XG5cbi8vIHBhcnNlIGEgcHJvcGVydHk7IHJldHVybiBudWxsIG9uIGludmFsaWQ7IHJldHVybiBwYXJzZWQgcHJvcGVydHkgb3RoZXJ3aXNlXG4vLyBmaWVsZHMgOlxuLy8gLSBuYW1lIDogdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5XG4vLyAtIHZhbHVlIDogdGhlIHBhcnNlZCwgbmF0aXZlLXR5cGVkIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eVxuLy8gLSBzdHJWYWx1ZSA6IGEgc3RyaW5nIHZhbHVlIHRoYXQgcmVwcmVzZW50cyB0aGUgcHJvcGVydHkgdmFsdWUgaW4gdmFsaWQgY3NzXG4vLyAtIGJ5cGFzcyA6IHRydWUgaWZmIHRoZSBwcm9wZXJ0eSBpcyBhIGJ5cGFzcyBwcm9wZXJ0eVxuc3R5Zm4kMS5wYXJzZUltcGwgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUsIHByb3BJc0J5cGFzcywgcHJvcElzRmxhdCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIG5hbWUgPSBjYW1lbDJkYXNoKG5hbWUpOyAvLyBtYWtlIHN1cmUgdGhlIHByb3BlcnR5IG5hbWUgaXMgaW4gZGFzaCBmb3JtIChlLmcuICdwcm9wZXJ0eS1uYW1lJyBub3QgJ3Byb3BlcnR5TmFtZScpXG5cbiAgdmFyIHByb3BlcnR5ID0gc2VsZi5wcm9wZXJ0aWVzW25hbWVdO1xuICB2YXIgcGFzc2VkVmFsdWUgPSB2YWx1ZTtcbiAgdmFyIHR5cGVzID0gc2VsZi50eXBlcztcbiAgaWYgKCFwcm9wZXJ0eSkge1xuICAgIHJldHVybiBudWxsO1xuICB9IC8vIHJldHVybiBudWxsIG9uIHByb3BlcnR5IG9mIHVua25vd24gbmFtZVxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9IC8vIGNhbid0IGFzc2lnbiB1bmRlZmluZWRcblxuICAvLyB0aGUgcHJvcGVydHkgbWF5IGJlIGFuIGFsaWFzXG4gIGlmIChwcm9wZXJ0eS5hbGlhcykge1xuICAgIHByb3BlcnR5ID0gcHJvcGVydHkucG9pbnRzVG87XG4gICAgbmFtZSA9IHByb3BlcnR5Lm5hbWU7XG4gIH1cbiAgdmFyIHZhbHVlSXNTdHJpbmcgPSBzdHJpbmcodmFsdWUpO1xuICBpZiAodmFsdWVJc1N0cmluZykge1xuICAgIC8vIHRyaW0gdGhlIHZhbHVlIHRvIG1ha2UgcGFyc2luZyBlYXNpZXJcbiAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcbiAgfVxuICB2YXIgdHlwZSA9IHByb3BlcnR5LnR5cGU7XG4gIGlmICghdHlwZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9IC8vIG5vIHR5cGUsIG5vIGx1Y2tcblxuICAvLyBjaGVjayBpZiBieXBhc3MgaXMgbnVsbCBvciBlbXB0eSBzdHJpbmcgKGkuZS4gaW5kaWNhdGlvbiB0byBkZWxldGUgYnlwYXNzIHByb3BlcnR5KVxuICBpZiAocHJvcElzQnlwYXNzICYmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBieXBhc3M6IHRydWUsXG4gICAgICBkZWxldGVCeXBhc3M6IHRydWVcbiAgICB9O1xuICB9XG5cbiAgLy8gY2hlY2sgaWYgdmFsdWUgaXMgYSBmdW5jdGlvbiB1c2VkIGFzIGEgbWFwcGVyXG4gIGlmIChmbiQ2KHZhbHVlKSkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgc3RyVmFsdWU6ICdmbicsXG4gICAgICBtYXBwZWQ6IHR5cGVzLmZuLFxuICAgICAgYnlwYXNzOiBwcm9wSXNCeXBhc3NcbiAgICB9O1xuICB9XG5cbiAgLy8gY2hlY2sgaWYgdmFsdWUgaXMgbWFwcGVkXG4gIHZhciBkYXRhLCBtYXBEYXRhO1xuICBpZiAoIXZhbHVlSXNTdHJpbmcgfHwgcHJvcElzRmxhdCB8fCB2YWx1ZS5sZW5ndGggPCA3IHx8IHZhbHVlWzFdICE9PSAnYScpIDsgZWxzZSBpZiAodmFsdWUubGVuZ3RoID49IDcgJiYgdmFsdWVbMF0gPT09ICdkJyAmJiAoZGF0YSA9IG5ldyBSZWdFeHAodHlwZXMuZGF0YS5yZWdleCkuZXhlYyh2YWx1ZSkpKSB7XG4gICAgaWYgKHByb3BJc0J5cGFzcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gbWFwcGVycyBub3QgYWxsb3dlZCBpbiBieXBhc3NcblxuICAgIHZhciBtYXBwZWQgPSB0eXBlcy5kYXRhO1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IGRhdGEsXG4gICAgICBzdHJWYWx1ZTogJycgKyB2YWx1ZSxcbiAgICAgIG1hcHBlZDogbWFwcGVkLFxuICAgICAgZmllbGQ6IGRhdGFbMV0sXG4gICAgICBieXBhc3M6IHByb3BJc0J5cGFzc1xuICAgIH07XG4gIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoID49IDEwICYmIHZhbHVlWzBdID09PSAnbScgJiYgKG1hcERhdGEgPSBuZXcgUmVnRXhwKHR5cGVzLm1hcERhdGEucmVnZXgpLmV4ZWModmFsdWUpKSkge1xuICAgIGlmIChwcm9wSXNCeXBhc3MpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IC8vIG1hcHBlcnMgbm90IGFsbG93ZWQgaW4gYnlwYXNzXG4gICAgaWYgKHR5cGUubXVsdGlwbGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IC8vIGltcG9zc2libGUgdG8gbWFwIHRvIG51bVxuXG4gICAgdmFyIF9tYXBwZWQgPSB0eXBlcy5tYXBEYXRhO1xuXG4gICAgLy8gd2UgY2FuIG1hcCBvbmx5IGlmIHRoZSB0eXBlIGlzIGEgY29sb3VyIG9yIGEgbnVtYmVyXG4gICAgaWYgKCEodHlwZS5jb2xvciB8fCB0eXBlLm51bWJlcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIHZhbHVlTWluID0gdGhpcy5wYXJzZShuYW1lLCBtYXBEYXRhWzRdKTsgLy8gcGFyc2UgdG8gdmFsaWRhdGVcbiAgICBpZiAoIXZhbHVlTWluIHx8IHZhbHVlTWluLm1hcHBlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gY2FuJ3QgYmUgaW52YWxpZCBvciBtYXBwZWRcblxuICAgIHZhciB2YWx1ZU1heCA9IHRoaXMucGFyc2UobmFtZSwgbWFwRGF0YVs1XSk7IC8vIHBhcnNlIHRvIHZhbGlkYXRlXG4gICAgaWYgKCF2YWx1ZU1heCB8fCB2YWx1ZU1heC5tYXBwZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IC8vIGNhbid0IGJlIGludmFsaWQgb3IgbWFwcGVkXG5cbiAgICAvLyBjaGVjayBpZiB2YWx1ZU1pbiBhbmQgdmFsdWVNYXggYXJlIHRoZSBzYW1lXG4gICAgaWYgKHZhbHVlTWluLnBmVmFsdWUgPT09IHZhbHVlTWF4LnBmVmFsdWUgfHwgdmFsdWVNaW4uc3RyVmFsdWUgPT09IHZhbHVlTWF4LnN0clZhbHVlKSB7XG4gICAgICB3YXJuKCdgJyArIG5hbWUgKyAnOiAnICsgdmFsdWUgKyAnYCBpcyBub3QgYSB2YWxpZCBtYXBwZXIgYmVjYXVzZSB0aGUgb3V0cHV0IHJhbmdlIGlzIHplcm87IGNvbnZlcnRpbmcgdG8gYCcgKyBuYW1lICsgJzogJyArIHZhbHVlTWluLnN0clZhbHVlICsgJ2AnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlKG5hbWUsIHZhbHVlTWluLnN0clZhbHVlKTsgLy8gY2FuJ3QgbWFrZSBtdWNoIG9mIGEgbWFwcGVyIHdpdGhvdXQgYSByYW5nZVxuICAgIH0gZWxzZSBpZiAodHlwZS5jb2xvcikge1xuICAgICAgdmFyIGMxID0gdmFsdWVNaW4udmFsdWU7XG4gICAgICB2YXIgYzIgPSB2YWx1ZU1heC52YWx1ZTtcbiAgICAgIHZhciBzYW1lID0gYzFbMF0gPT09IGMyWzBdIC8vIHJlZFxuICAgICAgJiYgYzFbMV0gPT09IGMyWzFdIC8vIGdyZWVuXG4gICAgICAmJiBjMVsyXSA9PT0gYzJbMl0gLy8gYmx1ZVxuICAgICAgJiYgKFxuICAgICAgLy8gb3B0aW9uYWwgYWxwaGFcbiAgICAgIGMxWzNdID09PSBjMlszXSAvLyBzYW1lIGFscGhhIG91dHJpZ2h0XG4gICAgICB8fCAoYzFbM10gPT0gbnVsbCB8fCBjMVszXSA9PT0gMSAvLyBmdWxsIG9wYWNpdHkgZm9yIGNvbG91ciAxP1xuICAgICAgKSAmJiAoYzJbM10gPT0gbnVsbCB8fCBjMlszXSA9PT0gMSkgLy8gZnVsbCBvcGFjaXR5IGZvciBjb2xvdXIgMj9cbiAgICAgICk7XG5cbiAgICAgIGlmIChzYW1lKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gLy8gY2FuJ3QgbWFrZSBhIG1hcHBlciB3aXRob3V0IGEgcmFuZ2VcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiBtYXBEYXRhLFxuICAgICAgc3RyVmFsdWU6ICcnICsgdmFsdWUsXG4gICAgICBtYXBwZWQ6IF9tYXBwZWQsXG4gICAgICBmaWVsZDogbWFwRGF0YVsxXSxcbiAgICAgIGZpZWxkTWluOiBwYXJzZUZsb2F0KG1hcERhdGFbMl0pLFxuICAgICAgLy8gbWluICYgbWF4IGFyZSBudW1lcmljXG4gICAgICBmaWVsZE1heDogcGFyc2VGbG9hdChtYXBEYXRhWzNdKSxcbiAgICAgIHZhbHVlTWluOiB2YWx1ZU1pbi52YWx1ZSxcbiAgICAgIHZhbHVlTWF4OiB2YWx1ZU1heC52YWx1ZSxcbiAgICAgIGJ5cGFzczogcHJvcElzQnlwYXNzXG4gICAgfTtcbiAgfVxuICBpZiAodHlwZS5tdWx0aXBsZSAmJiBwcm9wSXNGbGF0ICE9PSAnbXVsdGlwbGUnKSB7XG4gICAgdmFyIHZhbHM7XG4gICAgaWYgKHZhbHVlSXNTdHJpbmcpIHtcbiAgICAgIHZhbHMgPSB2YWx1ZS5zcGxpdCgvXFxzKy8pO1xuICAgIH0gZWxzZSBpZiAoYXJyYXkodmFsdWUpKSB7XG4gICAgICB2YWxzID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHMgPSBbdmFsdWVdO1xuICAgIH1cbiAgICBpZiAodHlwZS5ldmVuTXVsdGlwbGUgJiYgdmFscy5sZW5ndGggJSAyICE9PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIHZhbEFyciA9IFtdO1xuICAgIHZhciB1bml0c0FyciA9IFtdO1xuICAgIHZhciBwZlZhbEFyciA9IFtdO1xuICAgIHZhciBzdHJWYWwgPSAnJztcbiAgICB2YXIgaGFzRW51bSA9IGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFscy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHAgPSBzZWxmLnBhcnNlKG5hbWUsIHZhbHNbaV0sIHByb3BJc0J5cGFzcywgJ211bHRpcGxlJyk7XG4gICAgICBoYXNFbnVtID0gaGFzRW51bSB8fCBzdHJpbmcocC52YWx1ZSk7XG4gICAgICB2YWxBcnIucHVzaChwLnZhbHVlKTtcbiAgICAgIHBmVmFsQXJyLnB1c2gocC5wZlZhbHVlICE9IG51bGwgPyBwLnBmVmFsdWUgOiBwLnZhbHVlKTtcbiAgICAgIHVuaXRzQXJyLnB1c2gocC51bml0cyk7XG4gICAgICBzdHJWYWwgKz0gKGkgPiAwID8gJyAnIDogJycpICsgcC5zdHJWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGUudmFsaWRhdGUgJiYgIXR5cGUudmFsaWRhdGUodmFsQXJyLCB1bml0c0FycikpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodHlwZS5zaW5nbGVFbnVtICYmIGhhc0VudW0pIHtcbiAgICAgIGlmICh2YWxBcnIubGVuZ3RoID09PSAxICYmIHN0cmluZyh2YWxBcnJbMF0pKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICB2YWx1ZTogdmFsQXJyWzBdLFxuICAgICAgICAgIHN0clZhbHVlOiB2YWxBcnJbMF0sXG4gICAgICAgICAgYnlwYXNzOiBwcm9wSXNCeXBhc3NcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWxBcnIsXG4gICAgICBwZlZhbHVlOiBwZlZhbEFycixcbiAgICAgIHN0clZhbHVlOiBzdHJWYWwsXG4gICAgICBieXBhc3M6IHByb3BJc0J5cGFzcyxcbiAgICAgIHVuaXRzOiB1bml0c0FyclxuICAgIH07XG4gIH1cblxuICAvLyBzZXZlcmFsIHR5cGVzIGFsc28gYWxsb3cgZW51bXNcbiAgdmFyIGNoZWNrRW51bXMgPSBmdW5jdGlvbiBjaGVja0VudW1zKCkge1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCB0eXBlLmVudW1zLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIGVuID0gdHlwZS5lbnVtc1tfaV07XG4gICAgICBpZiAoZW4gPT09IHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgc3RyVmFsdWU6ICcnICsgdmFsdWUsXG4gICAgICAgICAgYnlwYXNzOiBwcm9wSXNCeXBhc3NcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgLy8gY2hlY2sgdGhlIHR5cGUgYW5kIHJldHVybiB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0XG4gIGlmICh0eXBlLm51bWJlcikge1xuICAgIHZhciB1bml0cztcbiAgICB2YXIgaW1wbGljaXRVbml0cyA9ICdweCc7IC8vIG5vdCBzZXQgPT4gcHhcblxuICAgIGlmICh0eXBlLnVuaXRzKSB7XG4gICAgICAvLyB1c2Ugc3BlY2lmaWVkIHVuaXRzIGlmIHNldFxuICAgICAgdW5pdHMgPSB0eXBlLnVuaXRzO1xuICAgIH1cbiAgICBpZiAodHlwZS5pbXBsaWNpdFVuaXRzKSB7XG4gICAgICBpbXBsaWNpdFVuaXRzID0gdHlwZS5pbXBsaWNpdFVuaXRzO1xuICAgIH1cbiAgICBpZiAoIXR5cGUudW5pdGxlc3MpIHtcbiAgICAgIGlmICh2YWx1ZUlzU3RyaW5nKSB7XG4gICAgICAgIHZhciB1bml0c1JlZ2V4ID0gJ3B4fGVtJyArICh0eXBlLmFsbG93UGVyY2VudCA/ICd8XFxcXCUnIDogJycpO1xuICAgICAgICBpZiAodW5pdHMpIHtcbiAgICAgICAgICB1bml0c1JlZ2V4ID0gdW5pdHM7XG4gICAgICAgIH0gLy8gb25seSBhbGxvdyBleHBsaWNpdCB1bml0cyBpZiBzbyBzZXRcbiAgICAgICAgdmFyIG1hdGNoID0gdmFsdWUubWF0Y2goJ14oJyArIG51bWJlciArICcpKCcgKyB1bml0c1JlZ2V4ICsgJyk/JyArICckJyk7XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIHZhbHVlID0gbWF0Y2hbMV07XG4gICAgICAgICAgdW5pdHMgPSBtYXRjaFsyXSB8fCBpbXBsaWNpdFVuaXRzO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCF1bml0cyB8fCB0eXBlLmltcGxpY2l0VW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBpbXBsaWNpdFVuaXRzOyAvLyBpbXBsaWNpdGx5IHB4IGlmIHVuc3BlY2lmaWVkXG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcblxuICAgIC8vIGlmIG5vdCBhIG51bWJlciBhbmQgZW51bXMgbm90IGFsbG93ZWQsIHRoZW4gdGhlIHZhbHVlIGlzIGludmFsaWRcbiAgICBpZiAoaXNOYU4odmFsdWUpICYmIHR5cGUuZW51bXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgdGhpcyBudW1iZXIgdHlwZSBhbHNvIGFjY2VwdHMgc3BlY2lhbCBrZXl3b3JkcyBpbiBwbGFjZSBvZiBudW1iZXJzXG4gICAgLy8gKGkuZS4gYGxlZnRgLCBgYXV0b2AsIGV0YylcbiAgICBpZiAoaXNOYU4odmFsdWUpICYmIHR5cGUuZW51bXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsdWUgPSBwYXNzZWRWYWx1ZTtcbiAgICAgIHJldHVybiBjaGVja0VudW1zKCk7XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgdmFsdWUgbXVzdCBiZSBhbiBpbnRlZ2VyXG4gICAgaWYgKHR5cGUuaW50ZWdlciAmJiAhaW50ZWdlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIHZhbHVlIGlzIHdpdGhpbiByYW5nZVxuICAgIGlmICh0eXBlLm1pbiAhPT0gdW5kZWZpbmVkICYmICh2YWx1ZSA8IHR5cGUubWluIHx8IHR5cGUuc3RyaWN0TWluICYmIHZhbHVlID09PSB0eXBlLm1pbikgfHwgdHlwZS5tYXggIT09IHVuZGVmaW5lZCAmJiAodmFsdWUgPiB0eXBlLm1heCB8fCB0eXBlLnN0cmljdE1heCAmJiB2YWx1ZSA9PT0gdHlwZS5tYXgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIHJldCA9IHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBzdHJWYWx1ZTogJycgKyB2YWx1ZSArICh1bml0cyA/IHVuaXRzIDogJycpLFxuICAgICAgdW5pdHM6IHVuaXRzLFxuICAgICAgYnlwYXNzOiBwcm9wSXNCeXBhc3NcbiAgICB9O1xuXG4gICAgLy8gbm9ybWFsaXNlIHZhbHVlIGluIHBpeGVsc1xuICAgIGlmICh0eXBlLnVuaXRsZXNzIHx8IHVuaXRzICE9PSAncHgnICYmIHVuaXRzICE9PSAnZW0nKSB7XG4gICAgICByZXQucGZWYWx1ZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXQucGZWYWx1ZSA9IHVuaXRzID09PSAncHgnIHx8ICF1bml0cyA/IHZhbHVlIDogdGhpcy5nZXRFbVNpemVJblBpeGVscygpICogdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gbm9ybWFsaXNlIHZhbHVlIGluIG1zXG4gICAgaWYgKHVuaXRzID09PSAnbXMnIHx8IHVuaXRzID09PSAncycpIHtcbiAgICAgIHJldC5wZlZhbHVlID0gdW5pdHMgPT09ICdtcycgPyB2YWx1ZSA6IDEwMDAgKiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBub3JtYWxpc2UgdmFsdWUgaW4gcmFkXG4gICAgaWYgKHVuaXRzID09PSAnZGVnJyB8fCB1bml0cyA9PT0gJ3JhZCcpIHtcbiAgICAgIHJldC5wZlZhbHVlID0gdW5pdHMgPT09ICdyYWQnID8gdmFsdWUgOiBkZWcycmFkKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBub3JtYWxpemUgdmFsdWUgaW4gJVxuICAgIGlmICh1bml0cyA9PT0gJyUnKSB7XG4gICAgICByZXQucGZWYWx1ZSA9IHZhbHVlIC8gMTAwO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9IGVsc2UgaWYgKHR5cGUucHJvcExpc3QpIHtcbiAgICB2YXIgcHJvcHMgPSBbXTtcbiAgICB2YXIgcHJvcHNTdHIgPSAnJyArIHZhbHVlO1xuICAgIGlmIChwcm9wc1N0ciA9PT0gJ25vbmUnKSA7IGVsc2Uge1xuICAgICAgLy8gZ28gb3ZlciBlYWNoIHByb3BcblxuICAgICAgdmFyIHByb3BzU3BsaXQgPSBwcm9wc1N0ci5zcGxpdCgvXFxzKixcXHMqfFxccysvKTtcbiAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IHByb3BzU3BsaXQubGVuZ3RoOyBfaTIrKykge1xuICAgICAgICB2YXIgcHJvcE5hbWUgPSBwcm9wc1NwbGl0W19pMl0udHJpbSgpO1xuICAgICAgICBpZiAoc2VsZi5wcm9wZXJ0aWVzW3Byb3BOYW1lXSkge1xuICAgICAgICAgIHByb3BzLnB1c2gocHJvcE5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdhcm4oJ2AnICsgcHJvcE5hbWUgKyAnYCBpcyBub3QgYSB2YWxpZCBwcm9wZXJ0eSBuYW1lJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHByb3BzLFxuICAgICAgc3RyVmFsdWU6IHByb3BzLmxlbmd0aCA9PT0gMCA/ICdub25lJyA6IHByb3BzLmpvaW4oJyAnKSxcbiAgICAgIGJ5cGFzczogcHJvcElzQnlwYXNzXG4gICAgfTtcbiAgfSBlbHNlIGlmICh0eXBlLmNvbG9yKSB7XG4gICAgdmFyIHR1cGxlID0gY29sb3IydHVwbGUodmFsdWUpO1xuICAgIGlmICghdHVwbGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB0dXBsZSxcbiAgICAgIHBmVmFsdWU6IHR1cGxlLFxuICAgICAgc3RyVmFsdWU6ICdyZ2IoJyArIHR1cGxlWzBdICsgJywnICsgdHVwbGVbMV0gKyAnLCcgKyB0dXBsZVsyXSArICcpJyxcbiAgICAgIC8vIG4uYi4gbm8gc3BhY2VzIGIvYyBvZiBtdWx0aXBsZSBzdXBwb3J0XG4gICAgICBieXBhc3M6IHByb3BJc0J5cGFzc1xuICAgIH07XG4gIH0gZWxzZSBpZiAodHlwZS5yZWdleCB8fCB0eXBlLnJlZ2V4ZXMpIHtcbiAgICAvLyBmaXJzdCBjaGVjayBlbnVtc1xuICAgIGlmICh0eXBlLmVudW1zKSB7XG4gICAgICB2YXIgZW51bVByb3AgPSBjaGVja0VudW1zKCk7XG4gICAgICBpZiAoZW51bVByb3ApIHtcbiAgICAgICAgcmV0dXJuIGVudW1Qcm9wO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgcmVnZXhlcyA9IHR5cGUucmVnZXhlcyA/IHR5cGUucmVnZXhlcyA6IFt0eXBlLnJlZ2V4XTtcbiAgICBmb3IgKHZhciBfaTMgPSAwOyBfaTMgPCByZWdleGVzLmxlbmd0aDsgX2kzKyspIHtcbiAgICAgIHZhciByZWdleCA9IG5ldyBSZWdFeHAocmVnZXhlc1tfaTNdKTsgLy8gbWFrZSBhIHJlZ2V4IGZyb20gdGhlIHR5cGUgc3RyaW5nXG4gICAgICB2YXIgbSA9IHJlZ2V4LmV4ZWModmFsdWUpO1xuICAgICAgaWYgKG0pIHtcbiAgICAgICAgLy8gcmVnZXggbWF0Y2hlc1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgdmFsdWU6IHR5cGUuc2luZ2xlUmVnZXhNYXRjaFZhbHVlID8gbVsxXSA6IG0sXG4gICAgICAgICAgc3RyVmFsdWU6ICcnICsgdmFsdWUsXG4gICAgICAgICAgYnlwYXNzOiBwcm9wSXNCeXBhc3NcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7IC8vIGRpZG4ndCBtYXRjaCBhbnlcbiAgfSBlbHNlIGlmICh0eXBlLnN0cmluZykge1xuICAgIC8vIGp1c3QgcmV0dXJuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB2YWx1ZTogJycgKyB2YWx1ZSxcbiAgICAgIHN0clZhbHVlOiAnJyArIHZhbHVlLFxuICAgICAgYnlwYXNzOiBwcm9wSXNCeXBhc3NcbiAgICB9O1xuICB9IGVsc2UgaWYgKHR5cGUuZW51bXMpIHtcbiAgICAvLyBjaGVjayBlbnVtcyBsYXN0IGJlY2F1c2UgaXQncyBhIGNvbWJvIHR5cGUgaW4gb3RoZXJzXG4gICAgcmV0dXJuIGNoZWNrRW51bXMoKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDsgLy8gbm90IGEgdHlwZSB3ZSBjYW4gaGFuZGxlXG4gIH1cbn07XG5cbnZhciBTdHlsZSA9IGZ1bmN0aW9uIFN0eWxlKGN5KSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBTdHlsZSkpIHtcbiAgICByZXR1cm4gbmV3IFN0eWxlKGN5KTtcbiAgfVxuICBpZiAoIWNvcmUoY3kpKSB7XG4gICAgZXJyb3IoJ0Egc3R5bGUgbXVzdCBoYXZlIGEgY29yZSByZWZlcmVuY2UnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdGhpcy5fcHJpdmF0ZSA9IHtcbiAgICBjeTogY3ksXG4gICAgY29yZVN0eWxlOiB7fVxuICB9O1xuICB0aGlzLmxlbmd0aCA9IDA7XG4gIHRoaXMucmVzZXRUb0RlZmF1bHQoKTtcbn07XG52YXIgc3R5Zm4gPSBTdHlsZS5wcm90b3R5cGU7XG5zdHlmbi5pbnN0YW5jZVN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICdzdHlsZSc7XG59O1xuXG4vLyByZW1vdmUgYWxsIGNvbnRleHRzXG5zdHlmbi5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF9wID0gdGhpcy5fcHJpdmF0ZTtcbiAgdmFyIGN5ID0gX3AuY3k7XG4gIHZhciBlbGVzID0gY3kuZWxlbWVudHMoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdGhpc1tpXSA9IHVuZGVmaW5lZDtcbiAgfVxuICB0aGlzLmxlbmd0aCA9IDA7XG4gIF9wLmNvbnRleHRTdHlsZXMgPSB7fTtcbiAgX3AucHJvcERpZmZzID0ge307XG4gIHRoaXMuY2xlYW5FbGVtZW50cyhlbGVzLCB0cnVlKTtcbiAgZWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHtcbiAgICB2YXIgZWxlX3AgPSBlbGVbMF0uX3ByaXZhdGU7XG4gICAgZWxlX3Auc3R5bGVEaXJ0eSA9IHRydWU7XG4gICAgZWxlX3AuYXBwbGllZEluaXRTdHlsZSA9IGZhbHNlO1xuICB9KTtcbiAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG59O1xuXG5zdHlmbi5yZXNldFRvRGVmYXVsdCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5jbGVhcigpO1xuICB0aGlzLmFkZERlZmF1bHRTdHlsZXNoZWV0KCk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLy8gYnVpbGRzIGEgc3R5bGUgb2JqZWN0IGZvciB0aGUgJ2NvcmUnIHNlbGVjdG9yXG5zdHlmbi5jb3JlID0gZnVuY3Rpb24gKHByb3BOYW1lKSB7XG4gIHJldHVybiB0aGlzLl9wcml2YXRlLmNvcmVTdHlsZVtwcm9wTmFtZV0gfHwgdGhpcy5nZXREZWZhdWx0UHJvcGVydHkocHJvcE5hbWUpO1xufTtcblxuLy8gY3JlYXRlIGEgbmV3IGNvbnRleHQgZnJvbSB0aGUgc3BlY2lmaWVkIHNlbGVjdG9yIHN0cmluZyBhbmQgc3dpdGNoIHRvIHRoYXQgY29udGV4dFxuc3R5Zm4uc2VsZWN0b3IgPSBmdW5jdGlvbiAoc2VsZWN0b3JTdHIpIHtcbiAgLy8gJ2NvcmUnIGlzIGEgc3BlY2lhbCBjYXNlIGFuZCBkb2VzIG5vdCBuZWVkIGEgc2VsZWN0b3JcbiAgdmFyIHNlbGVjdG9yID0gc2VsZWN0b3JTdHIgPT09ICdjb3JlJyA/IG51bGwgOiBuZXcgU2VsZWN0b3Ioc2VsZWN0b3JTdHIpO1xuICB2YXIgaSA9IHRoaXMubGVuZ3RoKys7IC8vIG5ldyBjb250ZXh0IG1lYW5zIG5ldyBpbmRleFxuICB0aGlzW2ldID0ge1xuICAgIHNlbGVjdG9yOiBzZWxlY3RvcixcbiAgICBwcm9wZXJ0aWVzOiBbXSxcbiAgICBtYXBwZWRQcm9wZXJ0aWVzOiBbXSxcbiAgICBpbmRleDogaVxuICB9O1xuICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbn07XG5cbi8vIGFkZCBvbmUgb3IgbWFueSBjc3MgcnVsZXMgdG8gdGhlIGN1cnJlbnQgY29udGV4dFxuc3R5Zm4uY3NzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICB2YXIgbWFwID0gYXJnc1swXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGYucHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHByb3AgPSBzZWxmLnByb3BlcnRpZXNbaV07XG4gICAgICB2YXIgbWFwVmFsID0gbWFwW3Byb3AubmFtZV07XG4gICAgICBpZiAobWFwVmFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbWFwVmFsID0gbWFwW2Rhc2gyY2FtZWwocHJvcC5uYW1lKV07XG4gICAgICB9XG4gICAgICBpZiAobWFwVmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5jc3NSdWxlKHByb3AubmFtZSwgbWFwVmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoYXJncy5sZW5ndGggPT09IDIpIHtcbiAgICB0aGlzLmNzc1J1bGUoYXJnc1swXSwgYXJnc1sxXSk7XG4gIH1cblxuICAvLyBkbyBub3RoaW5nIGlmIGFyZ3MgYXJlIGludmFsaWRcblxuICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbn07XG5cbnN0eWZuLnN0eWxlID0gc3R5Zm4uY3NzO1xuXG4vLyBhZGQgYSBzaW5nbGUgY3NzIHJ1bGUgdG8gdGhlIGN1cnJlbnQgY29udGV4dFxuc3R5Zm4uY3NzUnVsZSA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAvLyBuYW1lLXZhbHVlIHBhaXJcbiAgdmFyIHByb3BlcnR5ID0gdGhpcy5wYXJzZShuYW1lLCB2YWx1ZSk7XG5cbiAgLy8gYWRkIHByb3BlcnR5IHRvIGN1cnJlbnQgY29udGV4dCBpZiB2YWxpZFxuICBpZiAocHJvcGVydHkpIHtcbiAgICB2YXIgaSA9IHRoaXMubGVuZ3RoIC0gMTtcbiAgICB0aGlzW2ldLnByb3BlcnRpZXMucHVzaChwcm9wZXJ0eSk7XG4gICAgdGhpc1tpXS5wcm9wZXJ0aWVzW3Byb3BlcnR5Lm5hbWVdID0gcHJvcGVydHk7IC8vIGFsbG93IGFjY2VzcyBieSBuYW1lIGFzIHdlbGxcblxuICAgIGlmIChwcm9wZXJ0eS5uYW1lLm1hdGNoKC9waWUtKFxcZCspLWJhY2tncm91bmQtc2l6ZS8pICYmIHByb3BlcnR5LnZhbHVlKSB7XG4gICAgICB0aGlzLl9wcml2YXRlLmhhc1BpZSA9IHRydWU7XG4gICAgfVxuICAgIGlmIChwcm9wZXJ0eS5tYXBwZWQpIHtcbiAgICAgIHRoaXNbaV0ubWFwcGVkUHJvcGVydGllcy5wdXNoKHByb3BlcnR5KTtcbiAgICB9XG5cbiAgICAvLyBhZGQgdG8gY29yZSBzdHlsZSBpZiBuZWNlc3NhcnlcbiAgICB2YXIgY3VycmVudFNlbGVjdG9ySXNDb3JlID0gIXRoaXNbaV0uc2VsZWN0b3I7XG4gICAgaWYgKGN1cnJlbnRTZWxlY3RvcklzQ29yZSkge1xuICAgICAgdGhpcy5fcHJpdmF0ZS5jb3JlU3R5bGVbcHJvcGVydHkubmFtZV0gPSBwcm9wZXJ0eTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG59O1xuXG5zdHlmbi5hcHBlbmQgPSBmdW5jdGlvbiAoc3R5bGUpIHtcbiAgaWYgKHN0eWxlc2hlZXQoc3R5bGUpKSB7XG4gICAgc3R5bGUuYXBwZW5kVG9TdHlsZSh0aGlzKTtcbiAgfSBlbHNlIGlmIChhcnJheShzdHlsZSkpIHtcbiAgICB0aGlzLmFwcGVuZEZyb21Kc29uKHN0eWxlKTtcbiAgfSBlbHNlIGlmIChzdHJpbmcoc3R5bGUpKSB7XG4gICAgdGhpcy5hcHBlbmRGcm9tU3RyaW5nKHN0eWxlKTtcbiAgfSAvLyB5b3UgcHJvYmFibHkgd291bGRuJ3Qgd2FudCB0byBhcHBlbmQgYSBTdHlsZSwgc2luY2UgeW91J2QgZHVwbGljYXRlIHRoZSBkZWZhdWx0IHBhcnRzXG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vLyBzdGF0aWMgZnVuY3Rpb25cblN0eWxlLmZyb21Kc29uID0gZnVuY3Rpb24gKGN5LCBqc29uKSB7XG4gIHZhciBzdHlsZSA9IG5ldyBTdHlsZShjeSk7XG4gIHN0eWxlLmZyb21Kc29uKGpzb24pO1xuICByZXR1cm4gc3R5bGU7XG59O1xuU3R5bGUuZnJvbVN0cmluZyA9IGZ1bmN0aW9uIChjeSwgc3RyaW5nKSB7XG4gIHJldHVybiBuZXcgU3R5bGUoY3kpLmZyb21TdHJpbmcoc3RyaW5nKTtcbn07XG5bc3R5Zm4kOCwgc3R5Zm4kNywgc3R5Zm4kNiwgc3R5Zm4kNSwgc3R5Zm4kNCwgc3R5Zm4kMywgc3R5Zm4kMiwgc3R5Zm4kMV0uZm9yRWFjaChmdW5jdGlvbiAocHJvcHMpIHtcbiAgZXh0ZW5kKHN0eWZuLCBwcm9wcyk7XG59KTtcblN0eWxlLnR5cGVzID0gc3R5Zm4udHlwZXM7XG5TdHlsZS5wcm9wZXJ0aWVzID0gc3R5Zm4ucHJvcGVydGllcztcblN0eWxlLnByb3BlcnR5R3JvdXBzID0gc3R5Zm4ucHJvcGVydHlHcm91cHM7XG5TdHlsZS5wcm9wZXJ0eUdyb3VwTmFtZXMgPSBzdHlmbi5wcm9wZXJ0eUdyb3VwTmFtZXM7XG5TdHlsZS5wcm9wZXJ0eUdyb3VwS2V5cyA9IHN0eWZuLnByb3BlcnR5R3JvdXBLZXlzO1xuXG52YXIgY29yZWZuJDIgPSB7XG4gIHN0eWxlOiBmdW5jdGlvbiBzdHlsZShuZXdTdHlsZSkge1xuICAgIGlmIChuZXdTdHlsZSkge1xuICAgICAgdmFyIHMgPSB0aGlzLnNldFN0eWxlKG5ld1N0eWxlKTtcbiAgICAgIHMudXBkYXRlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9wcml2YXRlLnN0eWxlO1xuICB9LFxuICBzZXRTdHlsZTogZnVuY3Rpb24gc2V0U3R5bGUoc3R5bGUpIHtcbiAgICB2YXIgX3AgPSB0aGlzLl9wcml2YXRlO1xuICAgIGlmIChzdHlsZXNoZWV0KHN0eWxlKSkge1xuICAgICAgX3Auc3R5bGUgPSBzdHlsZS5nZW5lcmF0ZVN0eWxlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoYXJyYXkoc3R5bGUpKSB7XG4gICAgICBfcC5zdHlsZSA9IFN0eWxlLmZyb21Kc29uKHRoaXMsIHN0eWxlKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyhzdHlsZSkpIHtcbiAgICAgIF9wLnN0eWxlID0gU3R5bGUuZnJvbVN0cmluZyh0aGlzLCBzdHlsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9wLnN0eWxlID0gU3R5bGUodGhpcyk7XG4gICAgfVxuICAgIHJldHVybiBfcC5zdHlsZTtcbiAgfSxcbiAgLy8gZS5nLiBjeS5kYXRhKCkgY2hhbmdlZCA9PiByZWNhbGMgZWxlIG1hcHBlcnNcbiAgdXBkYXRlU3R5bGU6IGZ1bmN0aW9uIHVwZGF0ZVN0eWxlKCkge1xuICAgIHRoaXMubXV0YWJsZUVsZW1lbnRzKCkudXBkYXRlU3R5bGUoKTsgLy8ganVzdCBzZW5kIHRvIGFsbCBlbGVzXG4gIH1cbn07XG5cbnZhciBkZWZhdWx0U2VsZWN0aW9uVHlwZSA9ICdzaW5nbGUnO1xudmFyIGNvcmVmbiQxID0ge1xuICBhdXRvbG9jazogZnVuY3Rpb24gYXV0b2xvY2soYm9vbCkge1xuICAgIGlmIChib29sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3ByaXZhdGUuYXV0b2xvY2sgPSBib29sID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5hdXRvbG9jaztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG4gIH0sXG5cbiAgYXV0b3VuZ3JhYmlmeTogZnVuY3Rpb24gYXV0b3VuZ3JhYmlmeShib29sKSB7XG4gICAgaWYgKGJvb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fcHJpdmF0ZS5hdXRvdW5ncmFiaWZ5ID0gYm9vbCA/IHRydWUgOiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUuYXV0b3VuZ3JhYmlmeTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG4gIH0sXG5cbiAgYXV0b3Vuc2VsZWN0aWZ5OiBmdW5jdGlvbiBhdXRvdW5zZWxlY3RpZnkoYm9vbCkge1xuICAgIGlmIChib29sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3ByaXZhdGUuYXV0b3Vuc2VsZWN0aWZ5ID0gYm9vbCA/IHRydWUgOiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUuYXV0b3Vuc2VsZWN0aWZ5O1xuICAgIH1cbiAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgfSxcblxuICBzZWxlY3Rpb25UeXBlOiBmdW5jdGlvbiBzZWxlY3Rpb25UeXBlKHNlbFR5cGUpIHtcbiAgICB2YXIgX3AgPSB0aGlzLl9wcml2YXRlO1xuICAgIGlmIChfcC5zZWxlY3Rpb25UeXBlID09IG51bGwpIHtcbiAgICAgIF9wLnNlbGVjdGlvblR5cGUgPSBkZWZhdWx0U2VsZWN0aW9uVHlwZTtcbiAgICB9XG4gICAgaWYgKHNlbFR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHNlbFR5cGUgPT09ICdhZGRpdGl2ZScgfHwgc2VsVHlwZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgX3Auc2VsZWN0aW9uVHlwZSA9IHNlbFR5cGU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBfcC5zZWxlY3Rpb25UeXBlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgcGFubmluZ0VuYWJsZWQ6IGZ1bmN0aW9uIHBhbm5pbmdFbmFibGVkKGJvb2wpIHtcbiAgICBpZiAoYm9vbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9wcml2YXRlLnBhbm5pbmdFbmFibGVkID0gYm9vbCA/IHRydWUgOiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUucGFubmluZ0VuYWJsZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9LFxuXG4gIHVzZXJQYW5uaW5nRW5hYmxlZDogZnVuY3Rpb24gdXNlclBhbm5pbmdFbmFibGVkKGJvb2wpIHtcbiAgICBpZiAoYm9vbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9wcml2YXRlLnVzZXJQYW5uaW5nRW5hYmxlZCA9IGJvb2wgPyB0cnVlIDogZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9wcml2YXRlLnVzZXJQYW5uaW5nRW5hYmxlZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG4gIH0sXG5cbiAgem9vbWluZ0VuYWJsZWQ6IGZ1bmN0aW9uIHpvb21pbmdFbmFibGVkKGJvb2wpIHtcbiAgICBpZiAoYm9vbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9wcml2YXRlLnpvb21pbmdFbmFibGVkID0gYm9vbCA/IHRydWUgOiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUuem9vbWluZ0VuYWJsZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9LFxuXG4gIHVzZXJab29taW5nRW5hYmxlZDogZnVuY3Rpb24gdXNlclpvb21pbmdFbmFibGVkKGJvb2wpIHtcbiAgICBpZiAoYm9vbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9wcml2YXRlLnVzZXJab29taW5nRW5hYmxlZCA9IGJvb2wgPyB0cnVlIDogZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9wcml2YXRlLnVzZXJab29taW5nRW5hYmxlZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG4gIH0sXG5cbiAgYm94U2VsZWN0aW9uRW5hYmxlZDogZnVuY3Rpb24gYm94U2VsZWN0aW9uRW5hYmxlZChib29sKSB7XG4gICAgaWYgKGJvb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fcHJpdmF0ZS5ib3hTZWxlY3Rpb25FbmFibGVkID0gYm9vbCA/IHRydWUgOiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUuYm94U2VsZWN0aW9uRW5hYmxlZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG4gIH0sXG5cbiAgcGFuOiBmdW5jdGlvbiBwYW4oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgdmFyIHBhbiA9IHRoaXMuX3ByaXZhdGUucGFuO1xuICAgIHZhciBkaW0sIHZhbCwgZGltcywgeCwgeTtcbiAgICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIC8vIC5wYW4oKVxuICAgICAgICByZXR1cm4gcGFuO1xuICAgICAgY2FzZSAxOlxuICAgICAgICBpZiAoc3RyaW5nKGFyZ3NbMF0pKSB7XG4gICAgICAgICAgLy8gLnBhbigneCcpXG4gICAgICAgICAgZGltID0gYXJnc1swXTtcbiAgICAgICAgICByZXR1cm4gcGFuW2RpbV07XG4gICAgICAgIH0gZWxzZSBpZiAocGxhaW5PYmplY3QoYXJnc1swXSkpIHtcbiAgICAgICAgICAvLyAucGFuKHsgeDogMCwgeTogMTAwIH0pXG4gICAgICAgICAgaWYgKCF0aGlzLl9wcml2YXRlLnBhbm5pbmdFbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICB9XG4gICAgICAgICAgZGltcyA9IGFyZ3NbMF07XG4gICAgICAgICAgeCA9IGRpbXMueDtcbiAgICAgICAgICB5ID0gZGltcy55O1xuICAgICAgICAgIGlmIChudW1iZXIkMSh4KSkge1xuICAgICAgICAgICAgcGFuLnggPSB4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobnVtYmVyJDEoeSkpIHtcbiAgICAgICAgICAgIHBhbi55ID0geTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5lbWl0KCdwYW4gdmlld3BvcnQnKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgLy8gLnBhbigneCcsIDEwMClcbiAgICAgICAgaWYgKCF0aGlzLl9wcml2YXRlLnBhbm5pbmdFbmFibGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgZGltID0gYXJnc1swXTtcbiAgICAgICAgdmFsID0gYXJnc1sxXTtcbiAgICAgICAgaWYgKChkaW0gPT09ICd4JyB8fCBkaW0gPT09ICd5JykgJiYgbnVtYmVyJDEodmFsKSkge1xuICAgICAgICAgIHBhbltkaW1dID0gdmFsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdCgncGFuIHZpZXdwb3J0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gaW52YWxpZFxuICAgIH1cblxuICAgIHRoaXMubm90aWZ5KCd2aWV3cG9ydCcpO1xuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9LFxuXG4gIHBhbkJ5OiBmdW5jdGlvbiBwYW5CeShhcmcwLCBhcmcxKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgdmFyIHBhbiA9IHRoaXMuX3ByaXZhdGUucGFuO1xuICAgIHZhciBkaW0sIHZhbCwgZGltcywgeCwgeTtcbiAgICBpZiAoIXRoaXMuX3ByaXZhdGUucGFubmluZ0VuYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIGlmIChwbGFpbk9iamVjdChhcmcwKSkge1xuICAgICAgICAgIC8vIC5wYW5CeSh7IHg6IDAsIHk6IDEwMCB9KVxuICAgICAgICAgIGRpbXMgPSBhcmdzWzBdO1xuICAgICAgICAgIHggPSBkaW1zLng7XG4gICAgICAgICAgeSA9IGRpbXMueTtcbiAgICAgICAgICBpZiAobnVtYmVyJDEoeCkpIHtcbiAgICAgICAgICAgIHBhbi54ICs9IHg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChudW1iZXIkMSh5KSkge1xuICAgICAgICAgICAgcGFuLnkgKz0geTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5lbWl0KCdwYW4gdmlld3BvcnQnKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgLy8gLnBhbkJ5KCd4JywgMTAwKVxuICAgICAgICBkaW0gPSBhcmcwO1xuICAgICAgICB2YWwgPSBhcmcxO1xuICAgICAgICBpZiAoKGRpbSA9PT0gJ3gnIHx8IGRpbSA9PT0gJ3knKSAmJiBudW1iZXIkMSh2YWwpKSB7XG4gICAgICAgICAgcGFuW2RpbV0gKz0gdmFsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdCgncGFuIHZpZXdwb3J0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gaW52YWxpZFxuICAgIH1cblxuICAgIHRoaXMubm90aWZ5KCd2aWV3cG9ydCcpO1xuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9LFxuXG4gIGZpdDogZnVuY3Rpb24gZml0KGVsZW1lbnRzLCBwYWRkaW5nKSB7XG4gICAgdmFyIHZpZXdwb3J0U3RhdGUgPSB0aGlzLmdldEZpdFZpZXdwb3J0KGVsZW1lbnRzLCBwYWRkaW5nKTtcbiAgICBpZiAodmlld3BvcnRTdGF0ZSkge1xuICAgICAgdmFyIF9wID0gdGhpcy5fcHJpdmF0ZTtcbiAgICAgIF9wLnpvb20gPSB2aWV3cG9ydFN0YXRlLnpvb207XG4gICAgICBfcC5wYW4gPSB2aWV3cG9ydFN0YXRlLnBhbjtcbiAgICAgIHRoaXMuZW1pdCgncGFuIHpvb20gdmlld3BvcnQnKTtcbiAgICAgIHRoaXMubm90aWZ5KCd2aWV3cG9ydCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgfSxcblxuICBnZXRGaXRWaWV3cG9ydDogZnVuY3Rpb24gZ2V0Rml0Vmlld3BvcnQoZWxlbWVudHMsIHBhZGRpbmcpIHtcbiAgICBpZiAobnVtYmVyJDEoZWxlbWVudHMpICYmIHBhZGRpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gZWxlbWVudHMgaXMgb3B0aW9uYWxcbiAgICAgIHBhZGRpbmcgPSBlbGVtZW50cztcbiAgICAgIGVsZW1lbnRzID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3ByaXZhdGUucGFubmluZ0VuYWJsZWQgfHwgIXRoaXMuX3ByaXZhdGUuem9vbWluZ0VuYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGJiO1xuICAgIGlmIChzdHJpbmcoZWxlbWVudHMpKSB7XG4gICAgICB2YXIgc2VsID0gZWxlbWVudHM7XG4gICAgICBlbGVtZW50cyA9IHRoaXMuJChzZWwpO1xuICAgIH0gZWxzZSBpZiAoYm91bmRpbmdCb3goZWxlbWVudHMpKSB7XG4gICAgICAvLyBhc3N1bWUgYmJcbiAgICAgIHZhciBiYmUgPSBlbGVtZW50cztcbiAgICAgIGJiID0ge1xuICAgICAgICB4MTogYmJlLngxLFxuICAgICAgICB5MTogYmJlLnkxLFxuICAgICAgICB4MjogYmJlLngyLFxuICAgICAgICB5MjogYmJlLnkyXG4gICAgICB9O1xuICAgICAgYmIudyA9IGJiLngyIC0gYmIueDE7XG4gICAgICBiYi5oID0gYmIueTIgLSBiYi55MTtcbiAgICB9IGVsc2UgaWYgKCFlbGVtZW50T3JDb2xsZWN0aW9uKGVsZW1lbnRzKSkge1xuICAgICAgZWxlbWVudHMgPSB0aGlzLm11dGFibGVFbGVtZW50cygpO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudE9yQ29sbGVjdGlvbihlbGVtZW50cykgJiYgZWxlbWVudHMuZW1wdHkoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gY2FuJ3QgZml0IHRvIG5vdGhpbmdcblxuICAgIGJiID0gYmIgfHwgZWxlbWVudHMuYm91bmRpbmdCb3goKTtcbiAgICB2YXIgdyA9IHRoaXMud2lkdGgoKTtcbiAgICB2YXIgaCA9IHRoaXMuaGVpZ2h0KCk7XG4gICAgdmFyIHpvb207XG4gICAgcGFkZGluZyA9IG51bWJlciQxKHBhZGRpbmcpID8gcGFkZGluZyA6IDA7XG4gICAgaWYgKCFpc05hTih3KSAmJiAhaXNOYU4oaCkgJiYgdyA+IDAgJiYgaCA+IDAgJiYgIWlzTmFOKGJiLncpICYmICFpc05hTihiYi5oKSAmJiBiYi53ID4gMCAmJiBiYi5oID4gMCkge1xuICAgICAgem9vbSA9IE1hdGgubWluKCh3IC0gMiAqIHBhZGRpbmcpIC8gYmIudywgKGggLSAyICogcGFkZGluZykgLyBiYi5oKTtcblxuICAgICAgLy8gY3JvcCB6b29tXG4gICAgICB6b29tID0gem9vbSA+IHRoaXMuX3ByaXZhdGUubWF4Wm9vbSA/IHRoaXMuX3ByaXZhdGUubWF4Wm9vbSA6IHpvb207XG4gICAgICB6b29tID0gem9vbSA8IHRoaXMuX3ByaXZhdGUubWluWm9vbSA/IHRoaXMuX3ByaXZhdGUubWluWm9vbSA6IHpvb207XG4gICAgICB2YXIgcGFuID0ge1xuICAgICAgICAvLyBub3cgcGFuIHRvIG1pZGRsZVxuICAgICAgICB4OiAodyAtIHpvb20gKiAoYmIueDEgKyBiYi54MikpIC8gMixcbiAgICAgICAgeTogKGggLSB6b29tICogKGJiLnkxICsgYmIueTIpKSAvIDJcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICB6b29tOiB6b29tLFxuICAgICAgICBwYW46IHBhblxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9LFxuICB6b29tUmFuZ2U6IGZ1bmN0aW9uIHpvb21SYW5nZShtaW4sIG1heCkge1xuICAgIHZhciBfcCA9IHRoaXMuX3ByaXZhdGU7XG4gICAgaWYgKG1heCA9PSBudWxsKSB7XG4gICAgICB2YXIgb3B0cyA9IG1pbjtcbiAgICAgIG1pbiA9IG9wdHMubWluO1xuICAgICAgbWF4ID0gb3B0cy5tYXg7XG4gICAgfVxuICAgIGlmIChudW1iZXIkMShtaW4pICYmIG51bWJlciQxKG1heCkgJiYgbWluIDw9IG1heCkge1xuICAgICAgX3AubWluWm9vbSA9IG1pbjtcbiAgICAgIF9wLm1heFpvb20gPSBtYXg7XG4gICAgfSBlbHNlIGlmIChudW1iZXIkMShtaW4pICYmIG1heCA9PT0gdW5kZWZpbmVkICYmIG1pbiA8PSBfcC5tYXhab29tKSB7XG4gICAgICBfcC5taW5ab29tID0gbWluO1xuICAgIH0gZWxzZSBpZiAobnVtYmVyJDEobWF4KSAmJiBtaW4gPT09IHVuZGVmaW5lZCAmJiBtYXggPj0gX3AubWluWm9vbSkge1xuICAgICAgX3AubWF4Wm9vbSA9IG1heDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIG1pblpvb206IGZ1bmN0aW9uIG1pblpvb20oem9vbSkge1xuICAgIGlmICh6b29tID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9wcml2YXRlLm1pblpvb207XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnpvb21SYW5nZSh7XG4gICAgICAgIG1pbjogem9vbVxuICAgICAgfSk7XG4gICAgfVxuICB9LFxuICBtYXhab29tOiBmdW5jdGlvbiBtYXhab29tKHpvb20pIHtcbiAgICBpZiAoem9vbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5tYXhab29tO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy56b29tUmFuZ2Uoe1xuICAgICAgICBtYXg6IHpvb21cbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgZ2V0Wm9vbWVkVmlld3BvcnQ6IGZ1bmN0aW9uIGdldFpvb21lZFZpZXdwb3J0KHBhcmFtcykge1xuICAgIHZhciBfcCA9IHRoaXMuX3ByaXZhdGU7XG4gICAgdmFyIGN1cnJlbnRQYW4gPSBfcC5wYW47XG4gICAgdmFyIGN1cnJlbnRab29tID0gX3Auem9vbTtcbiAgICB2YXIgcG9zOyAvLyBpbiByZW5kZXJlZCBweFxuICAgIHZhciB6b29tO1xuICAgIHZhciBiYWlsID0gZmFsc2U7XG4gICAgaWYgKCFfcC56b29taW5nRW5hYmxlZCkge1xuICAgICAgLy8gem9vbWluZyBkaXNhYmxlZFxuICAgICAgYmFpbCA9IHRydWU7XG4gICAgfVxuICAgIGlmIChudW1iZXIkMShwYXJhbXMpKSB7XG4gICAgICAvLyB0aGVuIHNldCB0aGUgem9vbVxuICAgICAgem9vbSA9IHBhcmFtcztcbiAgICB9IGVsc2UgaWYgKHBsYWluT2JqZWN0KHBhcmFtcykpIHtcbiAgICAgIC8vIHRoZW4gem9vbSBhYm91dCBhIHBvaW50XG4gICAgICB6b29tID0gcGFyYW1zLmxldmVsO1xuICAgICAgaWYgKHBhcmFtcy5wb3NpdGlvbiAhPSBudWxsKSB7XG4gICAgICAgIHBvcyA9IG1vZGVsVG9SZW5kZXJlZFBvc2l0aW9uKHBhcmFtcy5wb3NpdGlvbiwgY3VycmVudFpvb20sIGN1cnJlbnRQYW4pO1xuICAgICAgfSBlbHNlIGlmIChwYXJhbXMucmVuZGVyZWRQb3NpdGlvbiAhPSBudWxsKSB7XG4gICAgICAgIHBvcyA9IHBhcmFtcy5yZW5kZXJlZFBvc2l0aW9uO1xuICAgICAgfVxuICAgICAgaWYgKHBvcyAhPSBudWxsICYmICFfcC5wYW5uaW5nRW5hYmxlZCkge1xuICAgICAgICAvLyBwYW5uaW5nIGRpc2FibGVkXG4gICAgICAgIGJhaWwgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNyb3Agem9vbVxuICAgIHpvb20gPSB6b29tID4gX3AubWF4Wm9vbSA/IF9wLm1heFpvb20gOiB6b29tO1xuICAgIHpvb20gPSB6b29tIDwgX3AubWluWm9vbSA/IF9wLm1pblpvb20gOiB6b29tO1xuXG4gICAgLy8gY2FuJ3Qgem9vbSB3aXRoIGludmFsaWQgcGFyYW1zXG4gICAgaWYgKGJhaWwgfHwgIW51bWJlciQxKHpvb20pIHx8IHpvb20gPT09IGN1cnJlbnRab29tIHx8IHBvcyAhPSBudWxsICYmICghbnVtYmVyJDEocG9zLngpIHx8ICFudW1iZXIkMShwb3MueSkpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHBvcyAhPSBudWxsKSB7XG4gICAgICAvLyBzZXQgem9vbSBhYm91dCBwb3NpdGlvblxuICAgICAgdmFyIHBhbjEgPSBjdXJyZW50UGFuO1xuICAgICAgdmFyIHpvb20xID0gY3VycmVudFpvb207XG4gICAgICB2YXIgem9vbTIgPSB6b29tO1xuICAgICAgdmFyIHBhbjIgPSB7XG4gICAgICAgIHg6IC16b29tMiAvIHpvb20xICogKHBvcy54IC0gcGFuMS54KSArIHBvcy54LFxuICAgICAgICB5OiAtem9vbTIgLyB6b29tMSAqIChwb3MueSAtIHBhbjEueSkgKyBwb3MueVxuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHpvb21lZDogdHJ1ZSxcbiAgICAgICAgcGFubmVkOiB0cnVlLFxuICAgICAgICB6b29tOiB6b29tMixcbiAgICAgICAgcGFuOiBwYW4yXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBqdXN0IHNldCB0aGUgem9vbVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgem9vbWVkOiB0cnVlLFxuICAgICAgICBwYW5uZWQ6IGZhbHNlLFxuICAgICAgICB6b29tOiB6b29tLFxuICAgICAgICBwYW46IGN1cnJlbnRQYW5cbiAgICAgIH07XG4gICAgfVxuICB9LFxuICB6b29tOiBmdW5jdGlvbiB6b29tKHBhcmFtcykge1xuICAgIGlmIChwYXJhbXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gZ2V0XG4gICAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZS56b29tO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBzZXRcbiAgICAgIHZhciB2cCA9IHRoaXMuZ2V0Wm9vbWVkVmlld3BvcnQocGFyYW1zKTtcbiAgICAgIHZhciBfcCA9IHRoaXMuX3ByaXZhdGU7XG4gICAgICBpZiAodnAgPT0gbnVsbCB8fCAhdnAuem9vbWVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgICAgX3Auem9vbSA9IHZwLnpvb207XG4gICAgICBpZiAodnAucGFubmVkKSB7XG4gICAgICAgIF9wLnBhbi54ID0gdnAucGFuLng7XG4gICAgICAgIF9wLnBhbi55ID0gdnAucGFuLnk7XG4gICAgICB9XG4gICAgICB0aGlzLmVtaXQoJ3pvb20nICsgKHZwLnBhbm5lZCA/ICcgcGFuJyA6ICcnKSArICcgdmlld3BvcnQnKTtcbiAgICAgIHRoaXMubm90aWZ5KCd2aWV3cG9ydCcpO1xuICAgICAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG4gICAgfVxuICB9LFxuXG4gIHZpZXdwb3J0OiBmdW5jdGlvbiB2aWV3cG9ydChvcHRzKSB7XG4gICAgdmFyIF9wID0gdGhpcy5fcHJpdmF0ZTtcbiAgICB2YXIgem9vbURlZmQgPSB0cnVlO1xuICAgIHZhciBwYW5EZWZkID0gdHJ1ZTtcbiAgICB2YXIgZXZlbnRzID0gW107IC8vIHRvIHRyaWdnZXJcbiAgICB2YXIgem9vbUZhaWxlZCA9IGZhbHNlO1xuICAgIHZhciBwYW5GYWlsZWQgPSBmYWxzZTtcbiAgICBpZiAoIW9wdHMpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBpZiAoIW51bWJlciQxKG9wdHMuem9vbSkpIHtcbiAgICAgIHpvb21EZWZkID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICghcGxhaW5PYmplY3Qob3B0cy5wYW4pKSB7XG4gICAgICBwYW5EZWZkID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICghem9vbURlZmQgJiYgIXBhbkRlZmQpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBpZiAoem9vbURlZmQpIHtcbiAgICAgIHZhciB6ID0gb3B0cy56b29tO1xuICAgICAgaWYgKHogPCBfcC5taW5ab29tIHx8IHogPiBfcC5tYXhab29tIHx8ICFfcC56b29taW5nRW5hYmxlZCkge1xuICAgICAgICB6b29tRmFpbGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF9wLnpvb20gPSB6O1xuICAgICAgICBldmVudHMucHVzaCgnem9vbScpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocGFuRGVmZCAmJiAoIXpvb21GYWlsZWQgfHwgIW9wdHMuY2FuY2VsT25GYWlsZWRab29tKSAmJiBfcC5wYW5uaW5nRW5hYmxlZCkge1xuICAgICAgdmFyIHAgPSBvcHRzLnBhbjtcbiAgICAgIGlmIChudW1iZXIkMShwLngpKSB7XG4gICAgICAgIF9wLnBhbi54ID0gcC54O1xuICAgICAgICBwYW5GYWlsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChudW1iZXIkMShwLnkpKSB7XG4gICAgICAgIF9wLnBhbi55ID0gcC55O1xuICAgICAgICBwYW5GYWlsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICghcGFuRmFpbGVkKSB7XG4gICAgICAgIGV2ZW50cy5wdXNoKCdwYW4nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBldmVudHMucHVzaCgndmlld3BvcnQnKTtcbiAgICAgIHRoaXMuZW1pdChldmVudHMuam9pbignICcpKTtcbiAgICAgIHRoaXMubm90aWZ5KCd2aWV3cG9ydCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgfSxcblxuICBjZW50ZXI6IGZ1bmN0aW9uIGNlbnRlcihlbGVtZW50cykge1xuICAgIHZhciBwYW4gPSB0aGlzLmdldENlbnRlclBhbihlbGVtZW50cyk7XG4gICAgaWYgKHBhbikge1xuICAgICAgdGhpcy5fcHJpdmF0ZS5wYW4gPSBwYW47XG4gICAgICB0aGlzLmVtaXQoJ3BhbiB2aWV3cG9ydCcpO1xuICAgICAgdGhpcy5ub3RpZnkoJ3ZpZXdwb3J0Jyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9LFxuXG4gIGdldENlbnRlclBhbjogZnVuY3Rpb24gZ2V0Q2VudGVyUGFuKGVsZW1lbnRzLCB6b29tKSB7XG4gICAgaWYgKCF0aGlzLl9wcml2YXRlLnBhbm5pbmdFbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChzdHJpbmcoZWxlbWVudHMpKSB7XG4gICAgICB2YXIgc2VsZWN0b3IgPSBlbGVtZW50cztcbiAgICAgIGVsZW1lbnRzID0gdGhpcy5tdXRhYmxlRWxlbWVudHMoKS5maWx0ZXIoc2VsZWN0b3IpO1xuICAgIH0gZWxzZSBpZiAoIWVsZW1lbnRPckNvbGxlY3Rpb24oZWxlbWVudHMpKSB7XG4gICAgICBlbGVtZW50cyA9IHRoaXMubXV0YWJsZUVsZW1lbnRzKCk7XG4gICAgfVxuICAgIGlmIChlbGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIGNhbid0IGNlbnRyZSBwYW4gdG8gbm90aGluZ1xuXG4gICAgdmFyIGJiID0gZWxlbWVudHMuYm91bmRpbmdCb3goKTtcbiAgICB2YXIgdyA9IHRoaXMud2lkdGgoKTtcbiAgICB2YXIgaCA9IHRoaXMuaGVpZ2h0KCk7XG4gICAgem9vbSA9IHpvb20gPT09IHVuZGVmaW5lZCA/IHRoaXMuX3ByaXZhdGUuem9vbSA6IHpvb207XG4gICAgdmFyIHBhbiA9IHtcbiAgICAgIC8vIG1pZGRsZVxuICAgICAgeDogKHcgLSB6b29tICogKGJiLngxICsgYmIueDIpKSAvIDIsXG4gICAgICB5OiAoaCAtIHpvb20gKiAoYmIueTEgKyBiYi55MikpIC8gMlxuICAgIH07XG4gICAgcmV0dXJuIHBhbjtcbiAgfSxcbiAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KCkge1xuICAgIGlmICghdGhpcy5fcHJpdmF0ZS5wYW5uaW5nRW5hYmxlZCB8fCAhdGhpcy5fcHJpdmF0ZS56b29taW5nRW5hYmxlZCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHRoaXMudmlld3BvcnQoe1xuICAgICAgcGFuOiB7XG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IDBcbiAgICAgIH0sXG4gICAgICB6b29tOiAxXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG4gIH0sXG5cbiAgaW52YWxpZGF0ZVNpemU6IGZ1bmN0aW9uIGludmFsaWRhdGVTaXplKCkge1xuICAgIHRoaXMuX3ByaXZhdGUuc2l6ZUNhY2hlID0gbnVsbDtcbiAgfSxcbiAgc2l6ZTogZnVuY3Rpb24gc2l6ZSgpIHtcbiAgICB2YXIgX3AgPSB0aGlzLl9wcml2YXRlO1xuICAgIHZhciBjb250YWluZXIgPSBfcC5jb250YWluZXI7XG4gICAgdmFyIGN5ID0gdGhpcztcbiAgICByZXR1cm4gX3Auc2l6ZUNhY2hlID0gX3Auc2l6ZUNhY2hlIHx8IChjb250YWluZXIgPyBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgc3R5bGUgPSBjeS53aW5kb3coKS5nZXRDb21wdXRlZFN0eWxlKGNvbnRhaW5lcik7XG4gICAgICB2YXIgdmFsID0gZnVuY3Rpb24gdmFsKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKSk7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGg6IGNvbnRhaW5lci5jbGllbnRXaWR0aCAtIHZhbCgncGFkZGluZy1sZWZ0JykgLSB2YWwoJ3BhZGRpbmctcmlnaHQnKSxcbiAgICAgICAgaGVpZ2h0OiBjb250YWluZXIuY2xpZW50SGVpZ2h0IC0gdmFsKCdwYWRkaW5nLXRvcCcpIC0gdmFsKCdwYWRkaW5nLWJvdHRvbScpXG4gICAgICB9O1xuICAgIH0oKSA6IHtcbiAgICAgIC8vIGZhbGxiYWNrIGlmIG5vIGNvbnRhaW5lciAobm90IDAgYi9jIGNhbiBiZSB1c2VkIGZvciBkaXZpZGluZyBldGMpXG4gICAgICB3aWR0aDogMSxcbiAgICAgIGhlaWdodDogMVxuICAgIH0pO1xuICB9LFxuICB3aWR0aDogZnVuY3Rpb24gd2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSgpLndpZHRoO1xuICB9LFxuICBoZWlnaHQ6IGZ1bmN0aW9uIGhlaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy5zaXplKCkuaGVpZ2h0O1xuICB9LFxuICBleHRlbnQ6IGZ1bmN0aW9uIGV4dGVudCgpIHtcbiAgICB2YXIgcGFuID0gdGhpcy5fcHJpdmF0ZS5wYW47XG4gICAgdmFyIHpvb20gPSB0aGlzLl9wcml2YXRlLnpvb207XG4gICAgdmFyIHJiID0gdGhpcy5yZW5kZXJlZEV4dGVudCgpO1xuICAgIHZhciBiID0ge1xuICAgICAgeDE6IChyYi54MSAtIHBhbi54KSAvIHpvb20sXG4gICAgICB4MjogKHJiLngyIC0gcGFuLngpIC8gem9vbSxcbiAgICAgIHkxOiAocmIueTEgLSBwYW4ueSkgLyB6b29tLFxuICAgICAgeTI6IChyYi55MiAtIHBhbi55KSAvIHpvb21cbiAgICB9O1xuICAgIGIudyA9IGIueDIgLSBiLngxO1xuICAgIGIuaCA9IGIueTIgLSBiLnkxO1xuICAgIHJldHVybiBiO1xuICB9LFxuICByZW5kZXJlZEV4dGVudDogZnVuY3Rpb24gcmVuZGVyZWRFeHRlbnQoKSB7XG4gICAgdmFyIHdpZHRoID0gdGhpcy53aWR0aCgpO1xuICAgIHZhciBoZWlnaHQgPSB0aGlzLmhlaWdodCgpO1xuICAgIHJldHVybiB7XG4gICAgICB4MTogMCxcbiAgICAgIHkxOiAwLFxuICAgICAgeDI6IHdpZHRoLFxuICAgICAgeTI6IGhlaWdodCxcbiAgICAgIHc6IHdpZHRoLFxuICAgICAgaDogaGVpZ2h0XG4gICAgfTtcbiAgfSxcbiAgbXVsdGlDbGlja0RlYm91bmNlVGltZTogZnVuY3Rpb24gbXVsdGlDbGlja0RlYm91bmNlVGltZShfaW50KSB7XG4gICAgaWYgKF9pbnQpIHRoaXMuX3ByaXZhdGUubXVsdGlDbGlja0RlYm91bmNlVGltZSA9IF9pbnQ7ZWxzZSByZXR1cm4gdGhpcy5fcHJpdmF0ZS5tdWx0aUNsaWNrRGVib3VuY2VUaW1lO1xuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9XG59O1xuXG4vLyBhbGlhc2VzXG5jb3JlZm4kMS5jZW50cmUgPSBjb3JlZm4kMS5jZW50ZXI7XG5cbi8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5jb3JlZm4kMS5hdXRvbG9ja05vZGVzID0gY29yZWZuJDEuYXV0b2xvY2s7XG5jb3JlZm4kMS5hdXRvdW5ncmFiaWZ5Tm9kZXMgPSBjb3JlZm4kMS5hdXRvdW5ncmFiaWZ5O1xuXG52YXIgZm4gPSB7XG4gIGRhdGE6IGRlZmluZS5kYXRhKHtcbiAgICBmaWVsZDogJ2RhdGEnLFxuICAgIGJpbmRpbmdFdmVudDogJ2RhdGEnLFxuICAgIGFsbG93QmluZGluZzogdHJ1ZSxcbiAgICBhbGxvd1NldHRpbmc6IHRydWUsXG4gICAgc2V0dGluZ0V2ZW50OiAnZGF0YScsXG4gICAgc2V0dGluZ1RyaWdnZXJzRXZlbnQ6IHRydWUsXG4gICAgdHJpZ2dlckZuTmFtZTogJ3RyaWdnZXInLFxuICAgIGFsbG93R2V0dGluZzogdHJ1ZSxcbiAgICB1cGRhdGVTdHlsZTogdHJ1ZVxuICB9KSxcbiAgcmVtb3ZlRGF0YTogZGVmaW5lLnJlbW92ZURhdGEoe1xuICAgIGZpZWxkOiAnZGF0YScsXG4gICAgZXZlbnQ6ICdkYXRhJyxcbiAgICB0cmlnZ2VyRm5OYW1lOiAndHJpZ2dlcicsXG4gICAgdHJpZ2dlckV2ZW50OiB0cnVlLFxuICAgIHVwZGF0ZVN0eWxlOiB0cnVlXG4gIH0pLFxuICBzY3JhdGNoOiBkZWZpbmUuZGF0YSh7XG4gICAgZmllbGQ6ICdzY3JhdGNoJyxcbiAgICBiaW5kaW5nRXZlbnQ6ICdzY3JhdGNoJyxcbiAgICBhbGxvd0JpbmRpbmc6IHRydWUsXG4gICAgYWxsb3dTZXR0aW5nOiB0cnVlLFxuICAgIHNldHRpbmdFdmVudDogJ3NjcmF0Y2gnLFxuICAgIHNldHRpbmdUcmlnZ2Vyc0V2ZW50OiB0cnVlLFxuICAgIHRyaWdnZXJGbk5hbWU6ICd0cmlnZ2VyJyxcbiAgICBhbGxvd0dldHRpbmc6IHRydWUsXG4gICAgdXBkYXRlU3R5bGU6IHRydWVcbiAgfSksXG4gIHJlbW92ZVNjcmF0Y2g6IGRlZmluZS5yZW1vdmVEYXRhKHtcbiAgICBmaWVsZDogJ3NjcmF0Y2gnLFxuICAgIGV2ZW50OiAnc2NyYXRjaCcsXG4gICAgdHJpZ2dlckZuTmFtZTogJ3RyaWdnZXInLFxuICAgIHRyaWdnZXJFdmVudDogdHJ1ZSxcbiAgICB1cGRhdGVTdHlsZTogdHJ1ZVxuICB9KVxufTtcblxuLy8gYWxpYXNlc1xuZm4uYXR0ciA9IGZuLmRhdGE7XG5mbi5yZW1vdmVBdHRyID0gZm4ucmVtb3ZlRGF0YTtcblxudmFyIENvcmUgPSBmdW5jdGlvbiBDb3JlKG9wdHMpIHtcbiAgdmFyIGN5ID0gdGhpcztcbiAgb3B0cyA9IGV4dGVuZCh7fSwgb3B0cyk7XG4gIHZhciBjb250YWluZXIgPSBvcHRzLmNvbnRhaW5lcjtcblxuICAvLyBhbGxvdyBmb3IgcGFzc2luZyBhIHdyYXBwZWQganF1ZXJ5IG9iamVjdFxuICAvLyBlLmcuIGN5dG9zY2FwZSh7IGNvbnRhaW5lcjogJCgnI2N5JykgfSlcbiAgaWYgKGNvbnRhaW5lciAmJiAhaHRtbEVsZW1lbnQoY29udGFpbmVyKSAmJiBodG1sRWxlbWVudChjb250YWluZXJbMF0pKSB7XG4gICAgY29udGFpbmVyID0gY29udGFpbmVyWzBdO1xuICB9XG4gIHZhciByZWcgPSBjb250YWluZXIgPyBjb250YWluZXIuX2N5cmVnIDogbnVsbDsgLy8gZS5nLiBhbHJlYWR5IHJlZ2lzdGVyZWQgc29tZSBpbmZvIChlLmcuIHJlYWRpZXMpIHZpYSBqcXVlcnlcbiAgcmVnID0gcmVnIHx8IHt9O1xuICBpZiAocmVnICYmIHJlZy5jeSkge1xuICAgIHJlZy5jeS5kZXN0cm95KCk7XG4gICAgcmVnID0ge307IC8vIG9sZCBpbnN0YW5jZSA9PiByZXBsYWNlIHJlZyBjb21wbGV0ZWx5XG4gIH1cblxuICB2YXIgcmVhZGllcyA9IHJlZy5yZWFkaWVzID0gcmVnLnJlYWRpZXMgfHwgW107XG4gIGlmIChjb250YWluZXIpIHtcbiAgICBjb250YWluZXIuX2N5cmVnID0gcmVnO1xuICB9IC8vIG1ha2Ugc3VyZSBjb250YWluZXIgYXNzb2MnZCByZWcgcG9pbnRzIHRvIHRoaXMgY3lcbiAgcmVnLmN5ID0gY3k7XG4gIHZhciBoZWFkID0gX3dpbmRvdyAhPT0gdW5kZWZpbmVkICYmIGNvbnRhaW5lciAhPT0gdW5kZWZpbmVkICYmICFvcHRzLmhlYWRsZXNzO1xuICB2YXIgb3B0aW9ucyA9IG9wdHM7XG4gIG9wdGlvbnMubGF5b3V0ID0gZXh0ZW5kKHtcbiAgICBuYW1lOiBoZWFkID8gJ2dyaWQnIDogJ251bGwnXG4gIH0sIG9wdGlvbnMubGF5b3V0KTtcbiAgb3B0aW9ucy5yZW5kZXJlciA9IGV4dGVuZCh7XG4gICAgbmFtZTogaGVhZCA/ICdjYW52YXMnIDogJ251bGwnXG4gIH0sIG9wdGlvbnMucmVuZGVyZXIpO1xuICB2YXIgZGVmVmFsID0gZnVuY3Rpb24gZGVmVmFsKGRlZiwgdmFsLCBhbHRWYWwpIHtcbiAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB2YWw7XG4gICAgfSBlbHNlIGlmIChhbHRWYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGFsdFZhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRlZjtcbiAgICB9XG4gIH07XG4gIHZhciBfcCA9IHRoaXMuX3ByaXZhdGUgPSB7XG4gICAgY29udGFpbmVyOiBjb250YWluZXIsXG4gICAgLy8gaHRtbCBkb20gZWxlIGNvbnRhaW5lclxuICAgIHJlYWR5OiBmYWxzZSxcbiAgICAvLyB3aGV0aGVyIHJlYWR5IGhhcyBiZWVuIHRyaWdnZXJlZFxuICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgLy8gY2FjaGVkIG9wdGlvbnNcbiAgICBlbGVtZW50czogbmV3IENvbGxlY3Rpb24odGhpcyksXG4gICAgLy8gZWxlbWVudHMgaW4gdGhlIGdyYXBoXG4gICAgbGlzdGVuZXJzOiBbXSxcbiAgICAvLyBsaXN0IG9mIGxpc3RlbmVyc1xuICAgIGFuaUVsZXM6IG5ldyBDb2xsZWN0aW9uKHRoaXMpLFxuICAgIC8vIGVsZW1lbnRzIGJlaW5nIGFuaW1hdGVkXG4gICAgZGF0YTogb3B0aW9ucy5kYXRhIHx8IHt9LFxuICAgIC8vIGRhdGEgZm9yIHRoZSBjb3JlXG4gICAgc2NyYXRjaDoge30sXG4gICAgLy8gc2NyYXRjaCBvYmplY3QgZm9yIGNvcmVcbiAgICBsYXlvdXQ6IG51bGwsXG4gICAgcmVuZGVyZXI6IG51bGwsXG4gICAgZGVzdHJveWVkOiBmYWxzZSxcbiAgICAvLyB3aGV0aGVyIGRlc3Ryb3kgd2FzIGNhbGxlZFxuICAgIG5vdGlmaWNhdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgIC8vIHdoZXRoZXIgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB0byB0aGUgcmVuZGVyZXJcbiAgICBtaW5ab29tOiAxZS01MCxcbiAgICBtYXhab29tOiAxZTUwLFxuICAgIHpvb21pbmdFbmFibGVkOiBkZWZWYWwodHJ1ZSwgb3B0aW9ucy56b29taW5nRW5hYmxlZCksXG4gICAgdXNlclpvb21pbmdFbmFibGVkOiBkZWZWYWwodHJ1ZSwgb3B0aW9ucy51c2VyWm9vbWluZ0VuYWJsZWQpLFxuICAgIHBhbm5pbmdFbmFibGVkOiBkZWZWYWwodHJ1ZSwgb3B0aW9ucy5wYW5uaW5nRW5hYmxlZCksXG4gICAgdXNlclBhbm5pbmdFbmFibGVkOiBkZWZWYWwodHJ1ZSwgb3B0aW9ucy51c2VyUGFubmluZ0VuYWJsZWQpLFxuICAgIGJveFNlbGVjdGlvbkVuYWJsZWQ6IGRlZlZhbCh0cnVlLCBvcHRpb25zLmJveFNlbGVjdGlvbkVuYWJsZWQpLFxuICAgIGF1dG9sb2NrOiBkZWZWYWwoZmFsc2UsIG9wdGlvbnMuYXV0b2xvY2ssIG9wdGlvbnMuYXV0b2xvY2tOb2RlcyksXG4gICAgYXV0b3VuZ3JhYmlmeTogZGVmVmFsKGZhbHNlLCBvcHRpb25zLmF1dG91bmdyYWJpZnksIG9wdGlvbnMuYXV0b3VuZ3JhYmlmeU5vZGVzKSxcbiAgICBhdXRvdW5zZWxlY3RpZnk6IGRlZlZhbChmYWxzZSwgb3B0aW9ucy5hdXRvdW5zZWxlY3RpZnkpLFxuICAgIHN0eWxlRW5hYmxlZDogb3B0aW9ucy5zdHlsZUVuYWJsZWQgPT09IHVuZGVmaW5lZCA/IGhlYWQgOiBvcHRpb25zLnN0eWxlRW5hYmxlZCxcbiAgICB6b29tOiBudW1iZXIkMShvcHRpb25zLnpvb20pID8gb3B0aW9ucy56b29tIDogMSxcbiAgICBwYW46IHtcbiAgICAgIHg6IHBsYWluT2JqZWN0KG9wdGlvbnMucGFuKSAmJiBudW1iZXIkMShvcHRpb25zLnBhbi54KSA/IG9wdGlvbnMucGFuLnggOiAwLFxuICAgICAgeTogcGxhaW5PYmplY3Qob3B0aW9ucy5wYW4pICYmIG51bWJlciQxKG9wdGlvbnMucGFuLnkpID8gb3B0aW9ucy5wYW4ueSA6IDBcbiAgICB9LFxuICAgIGFuaW1hdGlvbjoge1xuICAgICAgLy8gb2JqZWN0IGZvciBjdXJyZW50bHktcnVubmluZyBhbmltYXRpb25zXG4gICAgICBjdXJyZW50OiBbXSxcbiAgICAgIHF1ZXVlOiBbXVxuICAgIH0sXG4gICAgaGFzQ29tcG91bmROb2RlczogZmFsc2UsXG4gICAgbXVsdGlDbGlja0RlYm91bmNlVGltZTogZGVmVmFsKDI1MCwgb3B0aW9ucy5tdWx0aUNsaWNrRGVib3VuY2VUaW1lKVxuICB9O1xuICB0aGlzLmNyZWF0ZUVtaXR0ZXIoKTtcblxuICAvLyBzZXQgc2VsZWN0aW9uIHR5cGVcbiAgdGhpcy5zZWxlY3Rpb25UeXBlKG9wdGlvbnMuc2VsZWN0aW9uVHlwZSk7XG5cbiAgLy8gaW5pdCB6b29tIGJvdW5kc1xuICB0aGlzLnpvb21SYW5nZSh7XG4gICAgbWluOiBvcHRpb25zLm1pblpvb20sXG4gICAgbWF4OiBvcHRpb25zLm1heFpvb21cbiAgfSk7XG4gIHZhciBsb2FkRXh0RGF0YSA9IGZ1bmN0aW9uIGxvYWRFeHREYXRhKGV4dERhdGEsIG5leHQpIHtcbiAgICB2YXIgYW55SXNQcm9taXNlID0gZXh0RGF0YS5zb21lKHByb21pc2UpO1xuICAgIGlmIChhbnlJc1Byb21pc2UpIHtcbiAgICAgIHJldHVybiBQcm9taXNlJDEuYWxsKGV4dERhdGEpLnRoZW4obmV4dCk7IC8vIGxvYWQgYWxsIGRhdGEgYXN5bmNocm9ub3VzbHksIHRoZW4gZXhlYyByZXN0IG9mIGluaXRcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dChleHREYXRhKTsgLy8gZXhlYyBzeW5jaHJvbm91c2x5IGZvciBjb252ZW5pZW5jZVxuICAgIH1cbiAgfTtcblxuICAvLyBzdGFydCB3aXRoIHRoZSBkZWZhdWx0IHN0eWxlc2hlZXQgc28gd2UgaGF2ZSBzb21ldGhpbmcgYmVmb3JlIGxvYWRpbmcgYW4gZXh0ZXJuYWwgc3R5bGVzaGVldFxuICBpZiAoX3Auc3R5bGVFbmFibGVkKSB7XG4gICAgY3kuc2V0U3R5bGUoW10pO1xuICB9XG5cbiAgLy8gY3JlYXRlIHRoZSByZW5kZXJlclxuICB2YXIgcmVuZGVyZXJPcHRpb25zID0gZXh0ZW5kKHt9LCBvcHRpb25zLCBvcHRpb25zLnJlbmRlcmVyKTsgLy8gYWxsb3cgcmVuZGVyaW5nIGhpbnRzIGluIHRvcCBsZXZlbCBvcHRpb25zXG4gIGN5LmluaXRSZW5kZXJlcihyZW5kZXJlck9wdGlvbnMpO1xuICB2YXIgc2V0RWxlc0FuZExheW91dCA9IGZ1bmN0aW9uIHNldEVsZXNBbmRMYXlvdXQoZWxlbWVudHMsIG9ubG9hZCwgb25kb25lKSB7XG4gICAgY3kubm90aWZpY2F0aW9ucyhmYWxzZSk7XG5cbiAgICAvLyByZW1vdmUgb2xkIGVsZW1lbnRzXG4gICAgdmFyIG9sZEVsZXMgPSBjeS5tdXRhYmxlRWxlbWVudHMoKTtcbiAgICBpZiAob2xkRWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBvbGRFbGVzLnJlbW92ZSgpO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudHMgIT0gbnVsbCkge1xuICAgICAgaWYgKHBsYWluT2JqZWN0KGVsZW1lbnRzKSB8fCBhcnJheShlbGVtZW50cykpIHtcbiAgICAgICAgY3kuYWRkKGVsZW1lbnRzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY3kub25lKCdsYXlvdXRyZWFkeScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBjeS5ub3RpZmljYXRpb25zKHRydWUpO1xuICAgICAgY3kuZW1pdChlKTsgLy8gd2UgbWlzc2VkIHRoaXMgZXZlbnQgYnkgdHVybmluZyBub3RpZmljYXRpb25zIG9mZiwgc28gcGFzcyBpdCBvblxuXG4gICAgICBjeS5vbmUoJ2xvYWQnLCBvbmxvYWQpO1xuICAgICAgY3kuZW1pdEFuZE5vdGlmeSgnbG9hZCcpO1xuICAgIH0pLm9uZSgnbGF5b3V0c3RvcCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGN5Lm9uZSgnZG9uZScsIG9uZG9uZSk7XG4gICAgICBjeS5lbWl0KCdkb25lJyk7XG4gICAgfSk7XG4gICAgdmFyIGxheW91dE9wdHMgPSBleHRlbmQoe30sIGN5Ll9wcml2YXRlLm9wdGlvbnMubGF5b3V0KTtcbiAgICBsYXlvdXRPcHRzLmVsZXMgPSBjeS5lbGVtZW50cygpO1xuICAgIGN5LmxheW91dChsYXlvdXRPcHRzKS5ydW4oKTtcbiAgfTtcbiAgbG9hZEV4dERhdGEoW29wdGlvbnMuc3R5bGUsIG9wdGlvbnMuZWxlbWVudHNdLCBmdW5jdGlvbiAodGhlbnMpIHtcbiAgICB2YXIgaW5pdFN0eWxlID0gdGhlbnNbMF07XG4gICAgdmFyIGluaXRFbGVzID0gdGhlbnNbMV07XG5cbiAgICAvLyBpbml0IHN0eWxlXG4gICAgaWYgKF9wLnN0eWxlRW5hYmxlZCkge1xuICAgICAgY3kuc3R5bGUoKS5hcHBlbmQoaW5pdFN0eWxlKTtcbiAgICB9XG5cbiAgICAvLyBpbml0aWFsIGxvYWRcbiAgICBzZXRFbGVzQW5kTGF5b3V0KGluaXRFbGVzLCBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBvbnJlYWR5XG4gICAgICBjeS5zdGFydEFuaW1hdGlvbkxvb3AoKTtcbiAgICAgIF9wLnJlYWR5ID0gdHJ1ZTtcblxuICAgICAgLy8gaWYgYSByZWFkeSBjYWxsYmFjayBpcyBzcGVjaWZpZWQgYXMgYW4gb3B0aW9uLCB0aGUgYmluZCBpdFxuICAgICAgaWYgKGZuJDYob3B0aW9ucy5yZWFkeSkpIHtcbiAgICAgICAgY3kub24oJ3JlYWR5Jywgb3B0aW9ucy5yZWFkeSk7XG4gICAgICB9XG5cbiAgICAgIC8vIGJpbmQgYWxsIHRoZSByZWFkeSBoYW5kbGVycyByZWdpc3RlcmVkIGJlZm9yZSBjcmVhdGluZyB0aGlzIGluc3RhbmNlXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlYWRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGZuID0gcmVhZGllc1tpXTtcbiAgICAgICAgY3kub24oJ3JlYWR5JywgZm4pO1xuICAgICAgfVxuICAgICAgaWYgKHJlZykge1xuICAgICAgICByZWcucmVhZGllcyA9IFtdO1xuICAgICAgfSAvLyBjbGVhciBiL2Mgd2UndmUgYm91bmQgdGhlbSBhbGwgYW5kIGRvbid0IHdhbnQgdG8ga2VlcCBpdCBhcm91bmQgaW4gY2FzZSBhIG5ldyBjb3JlIHVzZXMgdGhlIHNhbWUgZGl2IGV0Y1xuXG4gICAgICBjeS5lbWl0KCdyZWFkeScpO1xuICAgIH0sIG9wdGlvbnMuZG9uZSk7XG4gIH0pO1xufTtcbnZhciBjb3JlZm4gPSBDb3JlLnByb3RvdHlwZTsgLy8gc2hvcnQgYWxpYXNcblxuZXh0ZW5kKGNvcmVmbiwge1xuICBpbnN0YW5jZVN0cmluZzogZnVuY3Rpb24gaW5zdGFuY2VTdHJpbmcoKSB7XG4gICAgcmV0dXJuICdjb3JlJztcbiAgfSxcbiAgaXNSZWFkeTogZnVuY3Rpb24gaXNSZWFkeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5yZWFkeTtcbiAgfSxcbiAgZGVzdHJveWVkOiBmdW5jdGlvbiBkZXN0cm95ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUuZGVzdHJveWVkO1xuICB9LFxuICByZWFkeTogZnVuY3Rpb24gcmVhZHkoZm4pIHtcbiAgICBpZiAodGhpcy5pc1JlYWR5KCkpIHtcbiAgICAgIHRoaXMuZW1pdHRlcigpLmVtaXQoJ3JlYWR5JywgW10sIGZuKTsgLy8ganVzdCBjYWxscyBmbiBhcyB0aG91Z2ggdHJpZ2dlcmVkIHZpYSByZWFkeSBldmVudFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uKCdyZWFkeScsIGZuKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgdmFyIGN5ID0gdGhpcztcbiAgICBpZiAoY3kuZGVzdHJveWVkKCkpIHJldHVybjtcbiAgICBjeS5zdG9wQW5pbWF0aW9uTG9vcCgpO1xuICAgIGN5LmRlc3Ryb3lSZW5kZXJlcigpO1xuICAgIHRoaXMuZW1pdCgnZGVzdHJveScpO1xuICAgIGN5Ll9wcml2YXRlLmRlc3Ryb3llZCA9IHRydWU7XG4gICAgcmV0dXJuIGN5O1xuICB9LFxuICBoYXNFbGVtZW50V2l0aElkOiBmdW5jdGlvbiBoYXNFbGVtZW50V2l0aElkKGlkKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUuZWxlbWVudHMuaGFzRWxlbWVudFdpdGhJZChpZCk7XG4gIH0sXG4gIGdldEVsZW1lbnRCeUlkOiBmdW5jdGlvbiBnZXRFbGVtZW50QnlJZChpZCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlLmVsZW1lbnRzLmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgfSxcbiAgaGFzQ29tcG91bmROb2RlczogZnVuY3Rpb24gaGFzQ29tcG91bmROb2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5oYXNDb21wb3VuZE5vZGVzO1xuICB9LFxuICBoZWFkbGVzczogZnVuY3Rpb24gaGVhZGxlc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUucmVuZGVyZXIuaXNIZWFkbGVzcygpO1xuICB9LFxuICBzdHlsZUVuYWJsZWQ6IGZ1bmN0aW9uIHN0eWxlRW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5zdHlsZUVuYWJsZWQ7XG4gIH0sXG4gIGFkZFRvUG9vbDogZnVuY3Rpb24gYWRkVG9Qb29sKGVsZXMpIHtcbiAgICB0aGlzLl9wcml2YXRlLmVsZW1lbnRzLm1lcmdlKGVsZXMpO1xuICAgIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xuICB9LFxuXG4gIHJlbW92ZUZyb21Qb29sOiBmdW5jdGlvbiByZW1vdmVGcm9tUG9vbChlbGVzKSB7XG4gICAgdGhpcy5fcHJpdmF0ZS5lbGVtZW50cy51bm1lcmdlKGVsZXMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuICBjb250YWluZXI6IGZ1bmN0aW9uIGNvbnRhaW5lcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZS5jb250YWluZXIgfHwgbnVsbDtcbiAgfSxcbiAgd2luZG93OiBmdW5jdGlvbiB3aW5kb3coKSB7XG4gICAgdmFyIGNvbnRhaW5lciA9IHRoaXMuX3ByaXZhdGUuY29udGFpbmVyO1xuICAgIGlmIChjb250YWluZXIgPT0gbnVsbCkgcmV0dXJuIF93aW5kb3c7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSB0aGlzLl9wcml2YXRlLmNvbnRhaW5lci5vd25lckRvY3VtZW50O1xuICAgIGlmIChvd25lckRvY3VtZW50ID09PSB1bmRlZmluZWQgfHwgb3duZXJEb2N1bWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gX3dpbmRvdztcbiAgICB9XG4gICAgcmV0dXJuIG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgX3dpbmRvdztcbiAgfSxcbiAgbW91bnQ6IGZ1bmN0aW9uIG1vdW50KGNvbnRhaW5lcikge1xuICAgIGlmIChjb250YWluZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgY3kgPSB0aGlzO1xuICAgIHZhciBfcCA9IGN5Ll9wcml2YXRlO1xuICAgIHZhciBvcHRpb25zID0gX3Aub3B0aW9ucztcbiAgICBpZiAoIWh0bWxFbGVtZW50KGNvbnRhaW5lcikgJiYgaHRtbEVsZW1lbnQoY29udGFpbmVyWzBdKSkge1xuICAgICAgY29udGFpbmVyID0gY29udGFpbmVyWzBdO1xuICAgIH1cbiAgICBjeS5zdG9wQW5pbWF0aW9uTG9vcCgpO1xuICAgIGN5LmRlc3Ryb3lSZW5kZXJlcigpO1xuICAgIF9wLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICBfcC5zdHlsZUVuYWJsZWQgPSB0cnVlO1xuICAgIGN5LmludmFsaWRhdGVTaXplKCk7XG4gICAgY3kuaW5pdFJlbmRlcmVyKGV4dGVuZCh7fSwgb3B0aW9ucywgb3B0aW9ucy5yZW5kZXJlciwge1xuICAgICAgLy8gYWxsb3cgY3VzdG9tIHJlbmRlcmVyIG5hbWUgdG8gYmUgcmUtdXNlZCwgb3RoZXJ3aXNlIHVzZSBjYW52YXNcbiAgICAgIG5hbWU6IG9wdGlvbnMucmVuZGVyZXIubmFtZSA9PT0gJ251bGwnID8gJ2NhbnZhcycgOiBvcHRpb25zLnJlbmRlcmVyLm5hbWVcbiAgICB9KSk7XG4gICAgY3kuc3RhcnRBbmltYXRpb25Mb29wKCk7XG4gICAgY3kuc3R5bGUob3B0aW9ucy5zdHlsZSk7XG4gICAgY3kuZW1pdCgnbW91bnQnKTtcbiAgICByZXR1cm4gY3k7XG4gIH0sXG4gIHVubW91bnQ6IGZ1bmN0aW9uIHVubW91bnQoKSB7XG4gICAgdmFyIGN5ID0gdGhpcztcbiAgICBjeS5zdG9wQW5pbWF0aW9uTG9vcCgpO1xuICAgIGN5LmRlc3Ryb3lSZW5kZXJlcigpO1xuICAgIGN5LmluaXRSZW5kZXJlcih7XG4gICAgICBuYW1lOiAnbnVsbCdcbiAgICB9KTtcbiAgICBjeS5lbWl0KCd1bm1vdW50Jyk7XG4gICAgcmV0dXJuIGN5O1xuICB9LFxuICBvcHRpb25zOiBmdW5jdGlvbiBvcHRpb25zKCkge1xuICAgIHJldHVybiBjb3B5KHRoaXMuX3ByaXZhdGUub3B0aW9ucyk7XG4gIH0sXG4gIGpzb246IGZ1bmN0aW9uIGpzb24ob2JqKSB7XG4gICAgdmFyIGN5ID0gdGhpcztcbiAgICB2YXIgX3AgPSBjeS5fcHJpdmF0ZTtcbiAgICB2YXIgZWxlcyA9IGN5Lm11dGFibGVFbGVtZW50cygpO1xuICAgIHZhciBnZXRGcmVzaFJlZiA9IGZ1bmN0aW9uIGdldEZyZXNoUmVmKGVsZSkge1xuICAgICAgcmV0dXJuIGN5LmdldEVsZW1lbnRCeUlkKGVsZS5pZCgpKTtcbiAgICB9O1xuICAgIGlmIChwbGFpbk9iamVjdChvYmopKSB7XG4gICAgICAvLyBzZXRcblxuICAgICAgY3kuc3RhcnRCYXRjaCgpO1xuICAgICAgaWYgKG9iai5lbGVtZW50cykge1xuICAgICAgICB2YXIgaWRJbkpzb24gPSB7fTtcbiAgICAgICAgdmFyIHVwZGF0ZUVsZXMgPSBmdW5jdGlvbiB1cGRhdGVFbGVzKGpzb25zLCBncikge1xuICAgICAgICAgIHZhciB0b0FkZCA9IFtdO1xuICAgICAgICAgIHZhciB0b01vZCA9IFtdO1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwganNvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBqc29uID0ganNvbnNbaV07XG4gICAgICAgICAgICBpZiAoIWpzb24uZGF0YS5pZCkge1xuICAgICAgICAgICAgICB3YXJuKCdjeS5qc29uKCkgY2Fubm90IGhhbmRsZSBlbGVtZW50cyB3aXRob3V0IGFuIElEIGF0dHJpYnV0ZScpO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBpZCA9ICcnICsganNvbi5kYXRhLmlkOyAvLyBpZCBtdXN0IGJlIHN0cmluZ1xuICAgICAgICAgICAgdmFyIGVsZSA9IGN5LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICAgICAgICAgIGlkSW5Kc29uW2lkXSA9IHRydWU7XG4gICAgICAgICAgICBpZiAoZWxlLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAvLyBleGlzdGluZyBlbGVtZW50IHNob3VsZCBiZSB1cGRhdGVkXG4gICAgICAgICAgICAgIHRvTW9kLnB1c2goe1xuICAgICAgICAgICAgICAgIGVsZTogZWxlLFxuICAgICAgICAgICAgICAgIGpzb246IGpzb25cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBvdGhlcndpc2Ugc2hvdWxkIGJlIGFkZGVkXG4gICAgICAgICAgICAgIGlmIChncikge1xuICAgICAgICAgICAgICAgIGpzb24uZ3JvdXAgPSBncjtcbiAgICAgICAgICAgICAgICB0b0FkZC5wdXNoKGpzb24pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRvQWRkLnB1c2goanNvbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY3kuYWRkKHRvQWRkKTtcbiAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgdG9Nb2QubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICB2YXIgX3RvTW9kJF9pID0gdG9Nb2RbX2ldLFxuICAgICAgICAgICAgICBfZWxlID0gX3RvTW9kJF9pLmVsZSxcbiAgICAgICAgICAgICAgX2pzb24gPSBfdG9Nb2QkX2kuanNvbjtcbiAgICAgICAgICAgIF9lbGUuanNvbihfanNvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoYXJyYXkob2JqLmVsZW1lbnRzKSkge1xuICAgICAgICAgIC8vIGVsZW1lbnRzOiBbXVxuICAgICAgICAgIHVwZGF0ZUVsZXMob2JqLmVsZW1lbnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBlbGVtZW50czogeyBub2RlczogW10sIGVkZ2VzOiBbXSB9XG4gICAgICAgICAgdmFyIGdycyA9IFsnbm9kZXMnLCAnZWRnZXMnXTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGdyID0gZ3JzW2ldO1xuICAgICAgICAgICAgdmFyIGVsZW1lbnRzID0gb2JqLmVsZW1lbnRzW2dyXTtcbiAgICAgICAgICAgIGlmIChhcnJheShlbGVtZW50cykpIHtcbiAgICAgICAgICAgICAgdXBkYXRlRWxlcyhlbGVtZW50cywgZ3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFyZW50c1RvUmVtb3ZlID0gY3kuY29sbGVjdGlvbigpO1xuICAgICAgICBlbGVzLmZpbHRlcihmdW5jdGlvbiAoZWxlKSB7XG4gICAgICAgICAgcmV0dXJuICFpZEluSnNvbltlbGUuaWQoKV07XG4gICAgICAgIH0pLmZvckVhY2goZnVuY3Rpb24gKGVsZSkge1xuICAgICAgICAgIGlmIChlbGUuaXNQYXJlbnQoKSkge1xuICAgICAgICAgICAgcGFyZW50c1RvUmVtb3ZlLm1lcmdlKGVsZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZS5yZW1vdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHNvIHRoYXQgY2hpbGRyZW4gYXJlIG5vdCByZW1vdmVkIHcvcGFyZW50XG4gICAgICAgIHBhcmVudHNUb1JlbW92ZS5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgICAgICByZXR1cm4gZWxlLmNoaWxkcmVuKCkubW92ZSh7XG4gICAgICAgICAgICBwYXJlbnQ6IG51bGxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gaW50ZXJtZWRpYXRlIHBhcmVudHMgbWF5IGJlIG1vdmVkIGJ5IHByaW9yIGxpbmUsIHNvIG1ha2Ugc3VyZSB3ZSByZW1vdmUgYnkgZnJlc2ggcmVmc1xuICAgICAgICBwYXJlbnRzVG9SZW1vdmUuZm9yRWFjaChmdW5jdGlvbiAoZWxlKSB7XG4gICAgICAgICAgcmV0dXJuIGdldEZyZXNoUmVmKGVsZSkucmVtb3ZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKG9iai5zdHlsZSkge1xuICAgICAgICBjeS5zdHlsZShvYmouc3R5bGUpO1xuICAgICAgfVxuICAgICAgaWYgKG9iai56b29tICE9IG51bGwgJiYgb2JqLnpvb20gIT09IF9wLnpvb20pIHtcbiAgICAgICAgY3kuem9vbShvYmouem9vbSk7XG4gICAgICB9XG4gICAgICBpZiAob2JqLnBhbikge1xuICAgICAgICBpZiAob2JqLnBhbi54ICE9PSBfcC5wYW4ueCB8fCBvYmoucGFuLnkgIT09IF9wLnBhbi55KSB7XG4gICAgICAgICAgY3kucGFuKG9iai5wYW4pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAob2JqLmRhdGEpIHtcbiAgICAgICAgY3kuZGF0YShvYmouZGF0YSk7XG4gICAgICB9XG4gICAgICB2YXIgZmllbGRzID0gWydtaW5ab29tJywgJ21heFpvb20nLCAnem9vbWluZ0VuYWJsZWQnLCAndXNlclpvb21pbmdFbmFibGVkJywgJ3Bhbm5pbmdFbmFibGVkJywgJ3VzZXJQYW5uaW5nRW5hYmxlZCcsICdib3hTZWxlY3Rpb25FbmFibGVkJywgJ2F1dG9sb2NrJywgJ2F1dG91bmdyYWJpZnknLCAnYXV0b3Vuc2VsZWN0aWZ5JywgJ211bHRpQ2xpY2tEZWJvdW5jZVRpbWUnXTtcbiAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IGZpZWxkcy5sZW5ndGg7IF9pMisrKSB7XG4gICAgICAgIHZhciBmID0gZmllbGRzW19pMl07XG4gICAgICAgIGlmIChvYmpbZl0gIT0gbnVsbCkge1xuICAgICAgICAgIGN5W2ZdKG9ialtmXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGN5LmVuZEJhdGNoKCk7XG4gICAgICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZ2V0XG4gICAgICB2YXIgZmxhdCA9ICEhb2JqO1xuICAgICAgdmFyIGpzb24gPSB7fTtcbiAgICAgIGlmIChmbGF0KSB7XG4gICAgICAgIGpzb24uZWxlbWVudHMgPSB0aGlzLmVsZW1lbnRzKCkubWFwKGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgICAgICByZXR1cm4gZWxlLmpzb24oKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBqc29uLmVsZW1lbnRzID0ge307XG4gICAgICAgIGVsZXMuZm9yRWFjaChmdW5jdGlvbiAoZWxlKSB7XG4gICAgICAgICAgdmFyIGdyb3VwID0gZWxlLmdyb3VwKCk7XG4gICAgICAgICAgaWYgKCFqc29uLmVsZW1lbnRzW2dyb3VwXSkge1xuICAgICAgICAgICAganNvbi5lbGVtZW50c1tncm91cF0gPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAganNvbi5lbGVtZW50c1tncm91cF0ucHVzaChlbGUuanNvbigpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fcHJpdmF0ZS5zdHlsZUVuYWJsZWQpIHtcbiAgICAgICAganNvbi5zdHlsZSA9IGN5LnN0eWxlKCkuanNvbigpO1xuICAgICAgfVxuICAgICAganNvbi5kYXRhID0gY29weShjeS5kYXRhKCkpO1xuICAgICAgdmFyIG9wdGlvbnMgPSBfcC5vcHRpb25zO1xuICAgICAganNvbi56b29taW5nRW5hYmxlZCA9IF9wLnpvb21pbmdFbmFibGVkO1xuICAgICAganNvbi51c2VyWm9vbWluZ0VuYWJsZWQgPSBfcC51c2VyWm9vbWluZ0VuYWJsZWQ7XG4gICAgICBqc29uLnpvb20gPSBfcC56b29tO1xuICAgICAganNvbi5taW5ab29tID0gX3AubWluWm9vbTtcbiAgICAgIGpzb24ubWF4Wm9vbSA9IF9wLm1heFpvb207XG4gICAgICBqc29uLnBhbm5pbmdFbmFibGVkID0gX3AucGFubmluZ0VuYWJsZWQ7XG4gICAgICBqc29uLnVzZXJQYW5uaW5nRW5hYmxlZCA9IF9wLnVzZXJQYW5uaW5nRW5hYmxlZDtcbiAgICAgIGpzb24ucGFuID0gY29weShfcC5wYW4pO1xuICAgICAganNvbi5ib3hTZWxlY3Rpb25FbmFibGVkID0gX3AuYm94U2VsZWN0aW9uRW5hYmxlZDtcbiAgICAgIGpzb24ucmVuZGVyZXIgPSBjb3B5KG9wdGlvbnMucmVuZGVyZXIpO1xuICAgICAganNvbi5oaWRlRWRnZXNPblZpZXdwb3J0ID0gb3B0aW9ucy5oaWRlRWRnZXNPblZpZXdwb3J0O1xuICAgICAganNvbi50ZXh0dXJlT25WaWV3cG9ydCA9IG9wdGlvbnMudGV4dHVyZU9uVmlld3BvcnQ7XG4gICAgICBqc29uLndoZWVsU2Vuc2l0aXZpdHkgPSBvcHRpb25zLndoZWVsU2Vuc2l0aXZpdHk7XG4gICAgICBqc29uLm1vdGlvbkJsdXIgPSBvcHRpb25zLm1vdGlvbkJsdXI7XG4gICAgICBqc29uLm11bHRpQ2xpY2tEZWJvdW5jZVRpbWUgPSBvcHRpb25zLm11bHRpQ2xpY2tEZWJvdW5jZVRpbWU7XG4gICAgICByZXR1cm4ganNvbjtcbiAgICB9XG4gIH1cbn0pO1xuY29yZWZuLiRpZCA9IGNvcmVmbi5nZXRFbGVtZW50QnlJZDtcbltjb3JlZm4kOSwgY29yZWZuJDgsIGVsZXNmbiwgY29yZWZuJDcsIGNvcmVmbiQ2LCBjb3JlZm4kNSwgY29yZWZuJDQsIGNvcmVmbiQzLCBjb3JlZm4kMiwgY29yZWZuJDEsIGZuXS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wcykge1xuICBleHRlbmQoY29yZWZuLCBwcm9wcyk7XG59KTtcblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBkZWZhdWx0cyQ3ID0ge1xuICBmaXQ6IHRydWUsXG4gIC8vIHdoZXRoZXIgdG8gZml0IHRoZSB2aWV3cG9ydCB0byB0aGUgZ3JhcGhcbiAgZGlyZWN0ZWQ6IGZhbHNlLFxuICAvLyB3aGV0aGVyIHRoZSB0cmVlIGlzIGRpcmVjdGVkIGRvd253YXJkcyAob3IgZWRnZXMgY2FuIHBvaW50IGluIGFueSBkaXJlY3Rpb24gaWYgZmFsc2UpXG4gIHBhZGRpbmc6IDMwLFxuICAvLyBwYWRkaW5nIG9uIGZpdFxuICBjaXJjbGU6IGZhbHNlLFxuICAvLyBwdXQgZGVwdGhzIGluIGNvbmNlbnRyaWMgY2lyY2xlcyBpZiB0cnVlLCBwdXQgZGVwdGhzIHRvcCBkb3duIGlmIGZhbHNlXG4gIGdyaWQ6IGZhbHNlLFxuICAvLyB3aGV0aGVyIHRvIGNyZWF0ZSBhbiBldmVuIGdyaWQgaW50byB3aGljaCB0aGUgREFHIGlzIHBsYWNlZCAoY2lyY2xlOmZhbHNlIG9ubHkpXG4gIHNwYWNpbmdGYWN0b3I6IDEuNzUsXG4gIC8vIHBvc2l0aXZlIHNwYWNpbmcgZmFjdG9yLCBsYXJnZXIgPT4gbW9yZSBzcGFjZSBiZXR3ZWVuIG5vZGVzIChOLkIuIG4vYSBpZiBjYXVzZXMgb3ZlcmxhcClcbiAgYm91bmRpbmdCb3g6IHVuZGVmaW5lZCxcbiAgLy8gY29uc3RyYWluIGxheW91dCBib3VuZHM7IHsgeDEsIHkxLCB4MiwgeTIgfSBvciB7IHgxLCB5MSwgdywgaCB9XG4gIGF2b2lkT3ZlcmxhcDogdHJ1ZSxcbiAgLy8gcHJldmVudHMgbm9kZSBvdmVybGFwLCBtYXkgb3ZlcmZsb3cgYm91bmRpbmdCb3ggaWYgbm90IGVub3VnaCBzcGFjZVxuICBub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHM6IGZhbHNlLFxuICAvLyBFeGNsdWRlcyB0aGUgbGFiZWwgd2hlbiBjYWxjdWxhdGluZyBub2RlIGJvdW5kaW5nIGJveGVzIGZvciB0aGUgbGF5b3V0IGFsZ29yaXRobVxuICByb290czogdW5kZWZpbmVkLFxuICAvLyB0aGUgcm9vdHMgb2YgdGhlIHRyZWVzXG4gIGRlcHRoU29ydDogdW5kZWZpbmVkLFxuICAvLyBhIHNvcnRpbmcgZnVuY3Rpb24gdG8gb3JkZXIgbm9kZXMgYXQgZXF1YWwgZGVwdGguIGUuZy4gZnVuY3Rpb24oYSwgYil7IHJldHVybiBhLmRhdGEoJ3dlaWdodCcpIC0gYi5kYXRhKCd3ZWlnaHQnKSB9XG4gIGFuaW1hdGU6IGZhbHNlLFxuICAvLyB3aGV0aGVyIHRvIHRyYW5zaXRpb24gdGhlIG5vZGUgcG9zaXRpb25zXG4gIGFuaW1hdGlvbkR1cmF0aW9uOiA1MDAsXG4gIC8vIGR1cmF0aW9uIG9mIGFuaW1hdGlvbiBpbiBtcyBpZiBlbmFibGVkXG4gIGFuaW1hdGlvbkVhc2luZzogdW5kZWZpbmVkLFxuICAvLyBlYXNpbmcgb2YgYW5pbWF0aW9uIGlmIGVuYWJsZWQsXG4gIGFuaW1hdGVGaWx0ZXI6IGZ1bmN0aW9uIGFuaW1hdGVGaWx0ZXIobm9kZSwgaSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9LFxuICAvLyBhIGZ1bmN0aW9uIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBub2RlIHNob3VsZCBiZSBhbmltYXRlZC4gIEFsbCBub2RlcyBhbmltYXRlZCBieSBkZWZhdWx0IG9uIGFuaW1hdGUgZW5hYmxlZC4gIE5vbi1hbmltYXRlZCBub2RlcyBhcmUgcG9zaXRpb25lZCBpbW1lZGlhdGVseSB3aGVuIHRoZSBsYXlvdXQgc3RhcnRzXG4gIHJlYWR5OiB1bmRlZmluZWQsXG4gIC8vIGNhbGxiYWNrIG9uIGxheW91dHJlYWR5XG4gIHN0b3A6IHVuZGVmaW5lZCxcbiAgLy8gY2FsbGJhY2sgb24gbGF5b3V0c3RvcFxuICB0cmFuc2Zvcm06IGZ1bmN0aW9uIHRyYW5zZm9ybShub2RlLCBwb3NpdGlvbikge1xuICAgIHJldHVybiBwb3NpdGlvbjtcbiAgfSAvLyB0cmFuc2Zvcm0gYSBnaXZlbiBub2RlIHBvc2l0aW9uLiBVc2VmdWwgZm9yIGNoYW5naW5nIGZsb3cgZGlyZWN0aW9uIGluIGRpc2NyZXRlIGxheW91dHNcbn07XG5cbnZhciBkZXByZWNhdGVkT3B0aW9uRGVmYXVsdHMgPSB7XG4gIG1heGltYWw6IGZhbHNlLFxuICAvLyB3aGV0aGVyIHRvIHNoaWZ0IG5vZGVzIGRvd24gdGhlaXIgbmF0dXJhbCBCRlMgZGVwdGhzIGluIG9yZGVyIHRvIGF2b2lkIHVwd2FyZHMgZWRnZXMgKERBR1Mgb25seSk7IHNldHRpbmcgYWN5Y2xpYyB0byB0cnVlIHNldHMgbWF4aW1hbCB0byB0cnVlIGFsc29cbiAgYWN5Y2xpYzogZmFsc2UgLy8gd2hldGhlciB0aGUgdHJlZSBpcyBhY3ljbGljIGFuZCB0aHVzIGEgbm9kZSBjb3VsZCBiZSBzaGlmdGVkIChkdWUgdG8gdGhlIG1heGltYWwgb3B0aW9uKSBtdWx0aXBsZSB0aW1lcyB3aXRob3V0IGNhdXNpbmcgYW4gaW5maW5pdGUgbG9vcDsgc2V0dGluZyB0byB0cnVlIHNldHMgbWF4aW1hbCB0byB0cnVlIGFsc287IGlmIHlvdSBhcmUgdW5jZXJ0YWluIHdoZXRoZXIgYSB0cmVlIGlzIGFjeWNsaWMsIHNldCB0byBmYWxzZSB0byBhdm9pZCBwb3RlbnRpYWwgaW5maW5pdGUgbG9vcHNcbn07XG5cbi8qIGVzbGludC1lbmFibGUgKi9cblxudmFyIGdldEluZm8gPSBmdW5jdGlvbiBnZXRJbmZvKGVsZSkge1xuICByZXR1cm4gZWxlLnNjcmF0Y2goJ2JyZWFkdGhmaXJzdCcpO1xufTtcbnZhciBzZXRJbmZvID0gZnVuY3Rpb24gc2V0SW5mbyhlbGUsIG9iaikge1xuICByZXR1cm4gZWxlLnNjcmF0Y2goJ2JyZWFkdGhmaXJzdCcsIG9iaik7XG59O1xuZnVuY3Rpb24gQnJlYWR0aEZpcnN0TGF5b3V0KG9wdGlvbnMpIHtcbiAgdGhpcy5vcHRpb25zID0gZXh0ZW5kKHt9LCBkZWZhdWx0cyQ3LCBkZXByZWNhdGVkT3B0aW9uRGVmYXVsdHMsIG9wdGlvbnMpO1xufVxuQnJlYWR0aEZpcnN0TGF5b3V0LnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBwYXJhbXMgPSB0aGlzLm9wdGlvbnM7XG4gIHZhciBvcHRpb25zID0gcGFyYW1zO1xuICB2YXIgY3kgPSBwYXJhbXMuY3k7XG4gIHZhciBlbGVzID0gb3B0aW9ucy5lbGVzO1xuICB2YXIgbm9kZXMgPSBlbGVzLm5vZGVzKCkuZmlsdGVyKGZ1bmN0aW9uIChuKSB7XG4gICAgcmV0dXJuICFuLmlzUGFyZW50KCk7XG4gIH0pO1xuICB2YXIgZ3JhcGggPSBlbGVzO1xuICB2YXIgZGlyZWN0ZWQgPSBvcHRpb25zLmRpcmVjdGVkO1xuICB2YXIgbWF4aW1hbCA9IG9wdGlvbnMuYWN5Y2xpYyB8fCBvcHRpb25zLm1heGltYWwgfHwgb3B0aW9ucy5tYXhpbWFsQWRqdXN0bWVudHMgPiAwOyAvLyBtYXhpbWFsQWRqdXN0bWVudHMgZm9yIGNvbXBhdC4gdy8gb2xkIGNvZGU7IGFsc28sIHNldHRpbmcgYWN5Y2xpYyB0byB0cnVlIHNldHMgbWF4aW1hbCB0byB0cnVlXG5cbiAgdmFyIGJiID0gbWFrZUJvdW5kaW5nQm94KG9wdGlvbnMuYm91bmRpbmdCb3ggPyBvcHRpb25zLmJvdW5kaW5nQm94IDoge1xuICAgIHgxOiAwLFxuICAgIHkxOiAwLFxuICAgIHc6IGN5LndpZHRoKCksXG4gICAgaDogY3kuaGVpZ2h0KClcbiAgfSk7XG4gIHZhciByb290cztcbiAgaWYgKGVsZW1lbnRPckNvbGxlY3Rpb24ob3B0aW9ucy5yb290cykpIHtcbiAgICByb290cyA9IG9wdGlvbnMucm9vdHM7XG4gIH0gZWxzZSBpZiAoYXJyYXkob3B0aW9ucy5yb290cykpIHtcbiAgICB2YXIgcm9vdHNBcnJheSA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3B0aW9ucy5yb290cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGlkID0gb3B0aW9ucy5yb290c1tpXTtcbiAgICAgIHZhciBlbGUgPSBjeS5nZXRFbGVtZW50QnlJZChpZCk7XG4gICAgICByb290c0FycmF5LnB1c2goZWxlKTtcbiAgICB9XG4gICAgcm9vdHMgPSBjeS5jb2xsZWN0aW9uKHJvb3RzQXJyYXkpO1xuICB9IGVsc2UgaWYgKHN0cmluZyhvcHRpb25zLnJvb3RzKSkge1xuICAgIHJvb3RzID0gY3kuJChvcHRpb25zLnJvb3RzKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoZGlyZWN0ZWQpIHtcbiAgICAgIHJvb3RzID0gbm9kZXMucm9vdHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGNvbXBvbmVudHMgPSBlbGVzLmNvbXBvbmVudHMoKTtcbiAgICAgIHJvb3RzID0gY3kuY29sbGVjdGlvbigpO1xuICAgICAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3AoX2kpIHtcbiAgICAgICAgdmFyIGNvbXAgPSBjb21wb25lbnRzW19pXTtcbiAgICAgICAgdmFyIG1heERlZ3JlZSA9IGNvbXAubWF4RGVncmVlKGZhbHNlKTtcbiAgICAgICAgdmFyIGNvbXBSb290cyA9IGNvbXAuZmlsdGVyKGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgICAgICByZXR1cm4gZWxlLmRlZ3JlZShmYWxzZSkgPT09IG1heERlZ3JlZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJvb3RzID0gcm9vdHMuYWRkKGNvbXBSb290cyk7XG4gICAgICB9O1xuICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGNvbXBvbmVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIF9sb29wKF9pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdmFyIGRlcHRocyA9IFtdO1xuICB2YXIgZm91bmRCeUJmcyA9IHt9O1xuICB2YXIgYWRkVG9EZXB0aCA9IGZ1bmN0aW9uIGFkZFRvRGVwdGgoZWxlLCBkKSB7XG4gICAgaWYgKGRlcHRoc1tkXSA9PSBudWxsKSB7XG4gICAgICBkZXB0aHNbZF0gPSBbXTtcbiAgICB9XG4gICAgdmFyIGkgPSBkZXB0aHNbZF0ubGVuZ3RoO1xuICAgIGRlcHRoc1tkXS5wdXNoKGVsZSk7XG4gICAgc2V0SW5mbyhlbGUsIHtcbiAgICAgIGluZGV4OiBpLFxuICAgICAgZGVwdGg6IGRcbiAgICB9KTtcbiAgfTtcbiAgdmFyIGNoYW5nZURlcHRoID0gZnVuY3Rpb24gY2hhbmdlRGVwdGgoZWxlLCBuZXdEZXB0aCkge1xuICAgIHZhciBfZ2V0SW5mbyA9IGdldEluZm8oZWxlKSxcbiAgICAgIGRlcHRoID0gX2dldEluZm8uZGVwdGgsXG4gICAgICBpbmRleCA9IF9nZXRJbmZvLmluZGV4O1xuICAgIGRlcHRoc1tkZXB0aF1baW5kZXhdID0gbnVsbDtcbiAgICBhZGRUb0RlcHRoKGVsZSwgbmV3RGVwdGgpO1xuICB9O1xuXG4gIC8vIGZpbmQgdGhlIGRlcHRocyBvZiB0aGUgbm9kZXNcbiAgZ3JhcGguYmZzKHtcbiAgICByb290czogcm9vdHMsXG4gICAgZGlyZWN0ZWQ6IG9wdGlvbnMuZGlyZWN0ZWQsXG4gICAgdmlzaXQ6IGZ1bmN0aW9uIHZpc2l0KG5vZGUsIGVkZ2UsIHBOb2RlLCBpLCBkZXB0aCkge1xuICAgICAgdmFyIGVsZSA9IG5vZGVbMF07XG4gICAgICB2YXIgaWQgPSBlbGUuaWQoKTtcbiAgICAgIGFkZFRvRGVwdGgoZWxlLCBkZXB0aCk7XG4gICAgICBmb3VuZEJ5QmZzW2lkXSA9IHRydWU7XG4gICAgfVxuICB9KTtcblxuICAvLyBjaGVjayBmb3Igbm9kZXMgbm90IGZvdW5kIGJ5IGJmc1xuICB2YXIgb3JwaGFuTm9kZXMgPSBbXTtcbiAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgbm9kZXMubGVuZ3RoOyBfaTIrKykge1xuICAgIHZhciBfZWxlID0gbm9kZXNbX2kyXTtcbiAgICBpZiAoZm91bmRCeUJmc1tfZWxlLmlkKCldKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3JwaGFuTm9kZXMucHVzaChfZWxlKTtcbiAgICB9XG4gIH1cblxuICAvLyBhc3NpZ24gdGhlIG5vZGVzIGEgZGVwdGggYW5kIGluZGV4XG5cbiAgdmFyIGFzc2lnbkRlcHRoc0F0ID0gZnVuY3Rpb24gYXNzaWduRGVwdGhzQXQoaSkge1xuICAgIHZhciBlbGVzID0gZGVwdGhzW2ldO1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgZWxlcy5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIF9lbGUyID0gZWxlc1tqXTtcbiAgICAgIGlmIChfZWxlMiA9PSBudWxsKSB7XG4gICAgICAgIGVsZXMuc3BsaWNlKGosIDEpO1xuICAgICAgICBqLS07XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgc2V0SW5mbyhfZWxlMiwge1xuICAgICAgICBkZXB0aDogaSxcbiAgICAgICAgaW5kZXg6IGpcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgdmFyIGFzc2lnbkRlcHRocyA9IGZ1bmN0aW9uIGFzc2lnbkRlcHRocygpIHtcbiAgICBmb3IgKHZhciBfaTMgPSAwOyBfaTMgPCBkZXB0aHMubGVuZ3RoOyBfaTMrKykge1xuICAgICAgYXNzaWduRGVwdGhzQXQoX2kzKTtcbiAgICB9XG4gIH07XG4gIHZhciBhZGp1c3RNYXhpbWFsbHkgPSBmdW5jdGlvbiBhZGp1c3RNYXhpbWFsbHkoZWxlLCBzaGlmdGVkKSB7XG4gICAgdmFyIGVJbmZvID0gZ2V0SW5mbyhlbGUpO1xuICAgIHZhciBpbmNvbWVycyA9IGVsZS5pbmNvbWVycygpLmZpbHRlcihmdW5jdGlvbiAoZWwpIHtcbiAgICAgIHJldHVybiBlbC5pc05vZGUoKSAmJiBlbGVzLmhhcyhlbCk7XG4gICAgfSk7XG4gICAgdmFyIG1heERlcHRoID0gLTE7XG4gICAgdmFyIGlkID0gZWxlLmlkKCk7XG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBpbmNvbWVycy5sZW5ndGg7IGsrKykge1xuICAgICAgdmFyIGluY21yID0gaW5jb21lcnNba107XG4gICAgICB2YXIgaUluZm8gPSBnZXRJbmZvKGluY21yKTtcbiAgICAgIG1heERlcHRoID0gTWF0aC5tYXgobWF4RGVwdGgsIGlJbmZvLmRlcHRoKTtcbiAgICB9XG4gICAgaWYgKGVJbmZvLmRlcHRoIDw9IG1heERlcHRoKSB7XG4gICAgICBpZiAoIW9wdGlvbnMuYWN5Y2xpYyAmJiBzaGlmdGVkW2lkXSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHZhciBuZXdEZXB0aCA9IG1heERlcHRoICsgMTtcbiAgICAgIGNoYW5nZURlcHRoKGVsZSwgbmV3RGVwdGgpO1xuICAgICAgc2hpZnRlZFtpZF0gPSBuZXdEZXB0aDtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLy8gZm9yIHRoZSBkaXJlY3RlZCBjYXNlLCB0cnkgdG8gbWFrZSB0aGUgZWRnZXMgYWxsIGdvIGRvd24gKGkuZS4gZGVwdGggaSA9PiBkZXB0aCBpICsgMSlcbiAgaWYgKGRpcmVjdGVkICYmIG1heGltYWwpIHtcbiAgICB2YXIgUSA9IFtdO1xuICAgIHZhciBzaGlmdGVkID0ge307XG4gICAgdmFyIGVucXVldWUgPSBmdW5jdGlvbiBlbnF1ZXVlKG4pIHtcbiAgICAgIHJldHVybiBRLnB1c2gobik7XG4gICAgfTtcbiAgICB2YXIgZGVxdWV1ZSA9IGZ1bmN0aW9uIGRlcXVldWUoKSB7XG4gICAgICByZXR1cm4gUS5zaGlmdCgpO1xuICAgIH07XG4gICAgbm9kZXMuZm9yRWFjaChmdW5jdGlvbiAobikge1xuICAgICAgcmV0dXJuIFEucHVzaChuKTtcbiAgICB9KTtcbiAgICB3aGlsZSAoUS5sZW5ndGggPiAwKSB7XG4gICAgICB2YXIgX2VsZTMgPSBkZXF1ZXVlKCk7XG4gICAgICB2YXIgZGlkU2hpZnQgPSBhZGp1c3RNYXhpbWFsbHkoX2VsZTMsIHNoaWZ0ZWQpO1xuICAgICAgaWYgKGRpZFNoaWZ0KSB7XG4gICAgICAgIF9lbGUzLm91dGdvZXJzKCkuZmlsdGVyKGZ1bmN0aW9uIChlbCkge1xuICAgICAgICAgIHJldHVybiBlbC5pc05vZGUoKSAmJiBlbGVzLmhhcyhlbCk7XG4gICAgICAgIH0pLmZvckVhY2goZW5xdWV1ZSk7XG4gICAgICB9IGVsc2UgaWYgKGRpZFNoaWZ0ID09PSBudWxsKSB7XG4gICAgICAgIHdhcm4oJ0RldGVjdGVkIGRvdWJsZSBtYXhpbWFsIHNoaWZ0IGZvciBub2RlIGAnICsgX2VsZTMuaWQoKSArICdgLiAgQmFpbGluZyBtYXhpbWFsIGFkanVzdG1lbnQgZHVlIHRvIGN5Y2xlLiAgVXNlIGBvcHRpb25zLm1heGltYWw6IHRydWVgIG9ubHkgb24gREFHcy4nKTtcbiAgICAgICAgYnJlYWs7IC8vIGV4aXQgb24gZmFpbHVyZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzc2lnbkRlcHRocygpOyAvLyBjbGVhciBob2xlc1xuXG4gIC8vIGZpbmQgbWluIGRpc3RhbmNlIHdlIG5lZWQgdG8gbGVhdmUgYmV0d2VlbiBub2Rlc1xuICB2YXIgbWluRGlzdGFuY2UgPSAwO1xuICBpZiAob3B0aW9ucy5hdm9pZE92ZXJsYXApIHtcbiAgICBmb3IgKHZhciBfaTQgPSAwOyBfaTQgPCBub2Rlcy5sZW5ndGg7IF9pNCsrKSB7XG4gICAgICB2YXIgbiA9IG5vZGVzW19pNF07XG4gICAgICB2YXIgbmJiID0gbi5sYXlvdXREaW1lbnNpb25zKG9wdGlvbnMpO1xuICAgICAgdmFyIHcgPSBuYmIudztcbiAgICAgIHZhciBoID0gbmJiLmg7XG4gICAgICBtaW5EaXN0YW5jZSA9IE1hdGgubWF4KG1pbkRpc3RhbmNlLCB3LCBoKTtcbiAgICB9XG4gIH1cblxuICAvLyBnZXQgdGhlIHdlaWdodGVkIHBlcmNlbnQgZm9yIGFuIGVsZW1lbnQgYmFzZWQgb24gaXRzIGNvbm5lY3Rpdml0eSB0byBvdGhlciBsZXZlbHNcbiAgdmFyIGNhY2hlZFdlaWdodGVkUGVyY2VudCA9IHt9O1xuICB2YXIgZ2V0V2VpZ2h0ZWRQZXJjZW50ID0gZnVuY3Rpb24gZ2V0V2VpZ2h0ZWRQZXJjZW50KGVsZSkge1xuICAgIGlmIChjYWNoZWRXZWlnaHRlZFBlcmNlbnRbZWxlLmlkKCldKSB7XG4gICAgICByZXR1cm4gY2FjaGVkV2VpZ2h0ZWRQZXJjZW50W2VsZS5pZCgpXTtcbiAgICB9XG4gICAgdmFyIGVsZURlcHRoID0gZ2V0SW5mbyhlbGUpLmRlcHRoO1xuICAgIHZhciBuZWlnaGJvcnMgPSBlbGUubmVpZ2hib3Job29kKCk7XG4gICAgdmFyIHBlcmNlbnQgPSAwO1xuICAgIHZhciBzYW1wbGVzID0gMDtcbiAgICBmb3IgKHZhciBfaTUgPSAwOyBfaTUgPCBuZWlnaGJvcnMubGVuZ3RoOyBfaTUrKykge1xuICAgICAgdmFyIG5laWdoYm9yID0gbmVpZ2hib3JzW19pNV07XG4gICAgICBpZiAobmVpZ2hib3IuaXNFZGdlKCkgfHwgbmVpZ2hib3IuaXNQYXJlbnQoKSB8fCAhbm9kZXMuaGFzKG5laWdoYm9yKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciBiZiA9IGdldEluZm8obmVpZ2hib3IpO1xuICAgICAgaWYgKGJmID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBiZi5pbmRleDtcbiAgICAgIHZhciBkZXB0aCA9IGJmLmRlcHRoO1xuXG4gICAgICAvLyB1bmFzc2lnbmVkIG5laWdoYm91cnMgc2hvdWxkbid0IGFmZmVjdCB0aGUgb3JkZXJpbmdcbiAgICAgIGlmIChpbmRleCA9PSBudWxsIHx8IGRlcHRoID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB2YXIgbkRlcHRoID0gZGVwdGhzW2RlcHRoXS5sZW5ndGg7XG4gICAgICBpZiAoZGVwdGggPCBlbGVEZXB0aCkge1xuICAgICAgICAvLyBvbmx5IGdldCBpbmZsdWVuY2VkIGJ5IGVsZW1lbnRzIGFib3ZlXG4gICAgICAgIHBlcmNlbnQgKz0gaW5kZXggLyBuRGVwdGg7XG4gICAgICAgIHNhbXBsZXMrKztcbiAgICAgIH1cbiAgICB9XG4gICAgc2FtcGxlcyA9IE1hdGgubWF4KDEsIHNhbXBsZXMpO1xuICAgIHBlcmNlbnQgPSBwZXJjZW50IC8gc2FtcGxlcztcbiAgICBpZiAoc2FtcGxlcyA9PT0gMCkge1xuICAgICAgLy8gcHV0IGxvbmUgbm9kZXMgYXQgdGhlIHN0YXJ0XG4gICAgICBwZXJjZW50ID0gMDtcbiAgICB9XG4gICAgY2FjaGVkV2VpZ2h0ZWRQZXJjZW50W2VsZS5pZCgpXSA9IHBlcmNlbnQ7XG4gICAgcmV0dXJuIHBlcmNlbnQ7XG4gIH07XG5cbiAgLy8gcmVhcnJhbmdlIHRoZSBpbmRpY2VzIGluIGVhY2ggZGVwdGggbGV2ZWwgYmFzZWQgb24gY29ubmVjdGl2aXR5XG5cbiAgdmFyIHNvcnRGbiA9IGZ1bmN0aW9uIHNvcnRGbihhLCBiKSB7XG4gICAgdmFyIGFwY3QgPSBnZXRXZWlnaHRlZFBlcmNlbnQoYSk7XG4gICAgdmFyIGJwY3QgPSBnZXRXZWlnaHRlZFBlcmNlbnQoYik7XG4gICAgdmFyIGRpZmYgPSBhcGN0IC0gYnBjdDtcbiAgICBpZiAoZGlmZiA9PT0gMCkge1xuICAgICAgcmV0dXJuIGFzY2VuZGluZyhhLmlkKCksIGIuaWQoKSk7IC8vIG1ha2Ugc3VyZSBzb3J0IGRvZXNuJ3QgaGF2ZSBkb24ndC1jYXJlIGNvbXBhcmlzb25zXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkaWZmO1xuICAgIH1cbiAgfTtcbiAgaWYgKG9wdGlvbnMuZGVwdGhTb3J0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBzb3J0Rm4gPSBvcHRpb25zLmRlcHRoU29ydDtcbiAgfVxuXG4gIC8vIHNvcnQgZWFjaCBsZXZlbCB0byBtYWtlIGNvbm5lY3RlZCBub2RlcyBjbG9zZXJcbiAgZm9yICh2YXIgX2k2ID0gMDsgX2k2IDwgZGVwdGhzLmxlbmd0aDsgX2k2KyspIHtcbiAgICBkZXB0aHNbX2k2XS5zb3J0KHNvcnRGbik7XG4gICAgYXNzaWduRGVwdGhzQXQoX2k2KTtcbiAgfVxuXG4gIC8vIGFzc2lnbiBvcnBoYW4gbm9kZXMgdG8gYSBuZXcgdG9wLWxldmVsIGRlcHRoXG4gIHZhciBvcnBoYW5EZXB0aCA9IFtdO1xuICBmb3IgKHZhciBfaTcgPSAwOyBfaTcgPCBvcnBoYW5Ob2Rlcy5sZW5ndGg7IF9pNysrKSB7XG4gICAgb3JwaGFuRGVwdGgucHVzaChvcnBoYW5Ob2Rlc1tfaTddKTtcbiAgfVxuICBkZXB0aHMudW5zaGlmdChvcnBoYW5EZXB0aCk7XG4gIGFzc2lnbkRlcHRocygpO1xuICB2YXIgYmlnZ2VzdERlcHRoU2l6ZSA9IDA7XG4gIGZvciAodmFyIF9pOCA9IDA7IF9pOCA8IGRlcHRocy5sZW5ndGg7IF9pOCsrKSB7XG4gICAgYmlnZ2VzdERlcHRoU2l6ZSA9IE1hdGgubWF4KGRlcHRoc1tfaThdLmxlbmd0aCwgYmlnZ2VzdERlcHRoU2l6ZSk7XG4gIH1cbiAgdmFyIGNlbnRlciA9IHtcbiAgICB4OiBiYi54MSArIGJiLncgLyAyLFxuICAgIHk6IGJiLngxICsgYmIuaCAvIDJcbiAgfTtcbiAgdmFyIG1heERlcHRoU2l6ZSA9IGRlcHRocy5yZWR1Y2UoZnVuY3Rpb24gKG1heCwgZWxlcykge1xuICAgIHJldHVybiBNYXRoLm1heChtYXgsIGVsZXMubGVuZ3RoKTtcbiAgfSwgMCk7XG4gIHZhciBnZXRQb3NpdGlvbiA9IGZ1bmN0aW9uIGdldFBvc2l0aW9uKGVsZSkge1xuICAgIHZhciBfZ2V0SW5mbzIgPSBnZXRJbmZvKGVsZSksXG4gICAgICBkZXB0aCA9IF9nZXRJbmZvMi5kZXB0aCxcbiAgICAgIGluZGV4ID0gX2dldEluZm8yLmluZGV4O1xuICAgIHZhciBkZXB0aFNpemUgPSBkZXB0aHNbZGVwdGhdLmxlbmd0aDtcbiAgICB2YXIgZGlzdGFuY2VYID0gTWF0aC5tYXgoYmIudyAvICgob3B0aW9ucy5ncmlkID8gbWF4RGVwdGhTaXplIDogZGVwdGhTaXplKSArIDEpLCBtaW5EaXN0YW5jZSk7XG4gICAgdmFyIGRpc3RhbmNlWSA9IE1hdGgubWF4KGJiLmggLyAoZGVwdGhzLmxlbmd0aCArIDEpLCBtaW5EaXN0YW5jZSk7XG4gICAgdmFyIHJhZGl1c1N0ZXBTaXplID0gTWF0aC5taW4oYmIudyAvIDIgLyBkZXB0aHMubGVuZ3RoLCBiYi5oIC8gMiAvIGRlcHRocy5sZW5ndGgpO1xuICAgIHJhZGl1c1N0ZXBTaXplID0gTWF0aC5tYXgocmFkaXVzU3RlcFNpemUsIG1pbkRpc3RhbmNlKTtcbiAgICBpZiAoIW9wdGlvbnMuY2lyY2xlKSB7XG4gICAgICB2YXIgZXBvcyA9IHtcbiAgICAgICAgeDogY2VudGVyLnggKyAoaW5kZXggKyAxIC0gKGRlcHRoU2l6ZSArIDEpIC8gMikgKiBkaXN0YW5jZVgsXG4gICAgICAgIHk6IChkZXB0aCArIDEpICogZGlzdGFuY2VZXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGVwb3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByYWRpdXMgPSByYWRpdXNTdGVwU2l6ZSAqIGRlcHRoICsgcmFkaXVzU3RlcFNpemUgLSAoZGVwdGhzLmxlbmd0aCA+IDAgJiYgZGVwdGhzWzBdLmxlbmd0aCA8PSAzID8gcmFkaXVzU3RlcFNpemUgLyAyIDogMCk7XG4gICAgICB2YXIgdGhldGEgPSAyICogTWF0aC5QSSAvIGRlcHRoc1tkZXB0aF0ubGVuZ3RoICogaW5kZXg7XG4gICAgICBpZiAoZGVwdGggPT09IDAgJiYgZGVwdGhzWzBdLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByYWRpdXMgPSAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDogY2VudGVyLnggKyByYWRpdXMgKiBNYXRoLmNvcyh0aGV0YSksXG4gICAgICAgIHk6IGNlbnRlci55ICsgcmFkaXVzICogTWF0aC5zaW4odGhldGEpXG4gICAgICB9O1xuICAgIH1cbiAgfTtcbiAgZWxlcy5ub2RlcygpLmxheW91dFBvc2l0aW9ucyh0aGlzLCBvcHRpb25zLCBnZXRQb3NpdGlvbik7XG4gIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xufTtcblxudmFyIGRlZmF1bHRzJDYgPSB7XG4gIGZpdDogdHJ1ZSxcbiAgLy8gd2hldGhlciB0byBmaXQgdGhlIHZpZXdwb3J0IHRvIHRoZSBncmFwaFxuICBwYWRkaW5nOiAzMCxcbiAgLy8gdGhlIHBhZGRpbmcgb24gZml0XG4gIGJvdW5kaW5nQm94OiB1bmRlZmluZWQsXG4gIC8vIGNvbnN0cmFpbiBsYXlvdXQgYm91bmRzOyB7IHgxLCB5MSwgeDIsIHkyIH0gb3IgeyB4MSwgeTEsIHcsIGggfVxuICBhdm9pZE92ZXJsYXA6IHRydWUsXG4gIC8vIHByZXZlbnRzIG5vZGUgb3ZlcmxhcCwgbWF5IG92ZXJmbG93IGJvdW5kaW5nQm94IGFuZCByYWRpdXMgaWYgbm90IGVub3VnaCBzcGFjZVxuICBub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHM6IGZhbHNlLFxuICAvLyBFeGNsdWRlcyB0aGUgbGFiZWwgd2hlbiBjYWxjdWxhdGluZyBub2RlIGJvdW5kaW5nIGJveGVzIGZvciB0aGUgbGF5b3V0IGFsZ29yaXRobVxuICBzcGFjaW5nRmFjdG9yOiB1bmRlZmluZWQsXG4gIC8vIEFwcGxpZXMgYSBtdWx0aXBsaWNhdGl2ZSBmYWN0b3IgKD4wKSB0byBleHBhbmQgb3IgY29tcHJlc3MgdGhlIG92ZXJhbGwgYXJlYSB0aGF0IHRoZSBub2RlcyB0YWtlIHVwXG4gIHJhZGl1czogdW5kZWZpbmVkLFxuICAvLyB0aGUgcmFkaXVzIG9mIHRoZSBjaXJjbGVcbiAgc3RhcnRBbmdsZTogMyAvIDIgKiBNYXRoLlBJLFxuICAvLyB3aGVyZSBub2RlcyBzdGFydCBpbiByYWRpYW5zXG4gIHN3ZWVwOiB1bmRlZmluZWQsXG4gIC8vIGhvdyBtYW55IHJhZGlhbnMgc2hvdWxkIGJlIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBsYXN0IG5vZGUgKGRlZmF1bHRzIHRvIGZ1bGwgY2lyY2xlKVxuICBjbG9ja3dpc2U6IHRydWUsXG4gIC8vIHdoZXRoZXIgdGhlIGxheW91dCBzaG91bGQgZ28gY2xvY2t3aXNlICh0cnVlKSBvciBjb3VudGVyY2xvY2t3aXNlL2FudGljbG9ja3dpc2UgKGZhbHNlKVxuICBzb3J0OiB1bmRlZmluZWQsXG4gIC8vIGEgc29ydGluZyBmdW5jdGlvbiB0byBvcmRlciB0aGUgbm9kZXM7IGUuZy4gZnVuY3Rpb24oYSwgYil7IHJldHVybiBhLmRhdGEoJ3dlaWdodCcpIC0gYi5kYXRhKCd3ZWlnaHQnKSB9XG4gIGFuaW1hdGU6IGZhbHNlLFxuICAvLyB3aGV0aGVyIHRvIHRyYW5zaXRpb24gdGhlIG5vZGUgcG9zaXRpb25zXG4gIGFuaW1hdGlvbkR1cmF0aW9uOiA1MDAsXG4gIC8vIGR1cmF0aW9uIG9mIGFuaW1hdGlvbiBpbiBtcyBpZiBlbmFibGVkXG4gIGFuaW1hdGlvbkVhc2luZzogdW5kZWZpbmVkLFxuICAvLyBlYXNpbmcgb2YgYW5pbWF0aW9uIGlmIGVuYWJsZWRcbiAgYW5pbWF0ZUZpbHRlcjogZnVuY3Rpb24gYW5pbWF0ZUZpbHRlcihub2RlLCBpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIC8vIGEgZnVuY3Rpb24gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG5vZGUgc2hvdWxkIGJlIGFuaW1hdGVkLiAgQWxsIG5vZGVzIGFuaW1hdGVkIGJ5IGRlZmF1bHQgb24gYW5pbWF0ZSBlbmFibGVkLiAgTm9uLWFuaW1hdGVkIG5vZGVzIGFyZSBwb3NpdGlvbmVkIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGxheW91dCBzdGFydHNcbiAgcmVhZHk6IHVuZGVmaW5lZCxcbiAgLy8gY2FsbGJhY2sgb24gbGF5b3V0cmVhZHlcbiAgc3RvcDogdW5kZWZpbmVkLFxuICAvLyBjYWxsYmFjayBvbiBsYXlvdXRzdG9wXG4gIHRyYW5zZm9ybTogZnVuY3Rpb24gdHJhbnNmb3JtKG5vZGUsIHBvc2l0aW9uKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uO1xuICB9IC8vIHRyYW5zZm9ybSBhIGdpdmVuIG5vZGUgcG9zaXRpb24uIFVzZWZ1bCBmb3IgY2hhbmdpbmcgZmxvdyBkaXJlY3Rpb24gaW4gZGlzY3JldGUgbGF5b3V0cyBcbn07XG5cbmZ1bmN0aW9uIENpcmNsZUxheW91dChvcHRpb25zKSB7XG4gIHRoaXMub3B0aW9ucyA9IGV4dGVuZCh7fSwgZGVmYXVsdHMkNiwgb3B0aW9ucyk7XG59XG5DaXJjbGVMYXlvdXQucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHBhcmFtcyA9IHRoaXMub3B0aW9ucztcbiAgdmFyIG9wdGlvbnMgPSBwYXJhbXM7XG4gIHZhciBjeSA9IHBhcmFtcy5jeTtcbiAgdmFyIGVsZXMgPSBvcHRpb25zLmVsZXM7XG4gIHZhciBjbG9ja3dpc2UgPSBvcHRpb25zLmNvdW50ZXJjbG9ja3dpc2UgIT09IHVuZGVmaW5lZCA/ICFvcHRpb25zLmNvdW50ZXJjbG9ja3dpc2UgOiBvcHRpb25zLmNsb2Nrd2lzZTtcbiAgdmFyIG5vZGVzID0gZWxlcy5ub2RlcygpLm5vdCgnOnBhcmVudCcpO1xuICBpZiAob3B0aW9ucy5zb3J0KSB7XG4gICAgbm9kZXMgPSBub2Rlcy5zb3J0KG9wdGlvbnMuc29ydCk7XG4gIH1cbiAgdmFyIGJiID0gbWFrZUJvdW5kaW5nQm94KG9wdGlvbnMuYm91bmRpbmdCb3ggPyBvcHRpb25zLmJvdW5kaW5nQm94IDoge1xuICAgIHgxOiAwLFxuICAgIHkxOiAwLFxuICAgIHc6IGN5LndpZHRoKCksXG4gICAgaDogY3kuaGVpZ2h0KClcbiAgfSk7XG4gIHZhciBjZW50ZXIgPSB7XG4gICAgeDogYmIueDEgKyBiYi53IC8gMixcbiAgICB5OiBiYi55MSArIGJiLmggLyAyXG4gIH07XG4gIHZhciBzd2VlcCA9IG9wdGlvbnMuc3dlZXAgPT09IHVuZGVmaW5lZCA/IDIgKiBNYXRoLlBJIC0gMiAqIE1hdGguUEkgLyBub2Rlcy5sZW5ndGggOiBvcHRpb25zLnN3ZWVwO1xuICB2YXIgZFRoZXRhID0gc3dlZXAgLyBNYXRoLm1heCgxLCBub2Rlcy5sZW5ndGggLSAxKTtcbiAgdmFyIHI7XG4gIHZhciBtaW5EaXN0YW5jZSA9IDA7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbiA9IG5vZGVzW2ldO1xuICAgIHZhciBuYmIgPSBuLmxheW91dERpbWVuc2lvbnMob3B0aW9ucyk7XG4gICAgdmFyIHcgPSBuYmIudztcbiAgICB2YXIgaCA9IG5iYi5oO1xuICAgIG1pbkRpc3RhbmNlID0gTWF0aC5tYXgobWluRGlzdGFuY2UsIHcsIGgpO1xuICB9XG4gIGlmIChudW1iZXIkMShvcHRpb25zLnJhZGl1cykpIHtcbiAgICByID0gb3B0aW9ucy5yYWRpdXM7XG4gIH0gZWxzZSBpZiAobm9kZXMubGVuZ3RoIDw9IDEpIHtcbiAgICByID0gMDtcbiAgfSBlbHNlIHtcbiAgICByID0gTWF0aC5taW4oYmIuaCwgYmIudykgLyAyIC0gbWluRGlzdGFuY2U7XG4gIH1cblxuICAvLyBjYWxjdWxhdGUgdGhlIHJhZGl1c1xuICBpZiAobm9kZXMubGVuZ3RoID4gMSAmJiBvcHRpb25zLmF2b2lkT3ZlcmxhcCkge1xuICAgIC8vIGJ1dCBvbmx5IGlmIG1vcmUgdGhhbiBvbmUgbm9kZSAoY2FuJ3Qgb3ZlcmxhcClcbiAgICBtaW5EaXN0YW5jZSAqPSAxLjc1OyAvLyBqdXN0IHRvIGhhdmUgc29tZSBuaWNlIHNwYWNpbmdcblxuICAgIHZhciBkY29zID0gTWF0aC5jb3MoZFRoZXRhKSAtIE1hdGguY29zKDApO1xuICAgIHZhciBkc2luID0gTWF0aC5zaW4oZFRoZXRhKSAtIE1hdGguc2luKDApO1xuICAgIHZhciByTWluID0gTWF0aC5zcXJ0KG1pbkRpc3RhbmNlICogbWluRGlzdGFuY2UgLyAoZGNvcyAqIGRjb3MgKyBkc2luICogZHNpbikpOyAvLyBzLnQuIG5vIG5vZGVzIG92ZXJsYXBwaW5nXG4gICAgciA9IE1hdGgubWF4KHJNaW4sIHIpO1xuICB9XG4gIHZhciBnZXRQb3MgPSBmdW5jdGlvbiBnZXRQb3MoZWxlLCBpKSB7XG4gICAgdmFyIHRoZXRhID0gb3B0aW9ucy5zdGFydEFuZ2xlICsgaSAqIGRUaGV0YSAqIChjbG9ja3dpc2UgPyAxIDogLTEpO1xuICAgIHZhciByeCA9IHIgKiBNYXRoLmNvcyh0aGV0YSk7XG4gICAgdmFyIHJ5ID0gciAqIE1hdGguc2luKHRoZXRhKTtcbiAgICB2YXIgcG9zID0ge1xuICAgICAgeDogY2VudGVyLnggKyByeCxcbiAgICAgIHk6IGNlbnRlci55ICsgcnlcbiAgICB9O1xuICAgIHJldHVybiBwb3M7XG4gIH07XG4gIGVsZXMubm9kZXMoKS5sYXlvdXRQb3NpdGlvbnModGhpcywgb3B0aW9ucywgZ2V0UG9zKTtcbiAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG59O1xuXG52YXIgZGVmYXVsdHMkNSA9IHtcbiAgZml0OiB0cnVlLFxuICAvLyB3aGV0aGVyIHRvIGZpdCB0aGUgdmlld3BvcnQgdG8gdGhlIGdyYXBoXG4gIHBhZGRpbmc6IDMwLFxuICAvLyB0aGUgcGFkZGluZyBvbiBmaXRcbiAgc3RhcnRBbmdsZTogMyAvIDIgKiBNYXRoLlBJLFxuICAvLyB3aGVyZSBub2RlcyBzdGFydCBpbiByYWRpYW5zXG4gIHN3ZWVwOiB1bmRlZmluZWQsXG4gIC8vIGhvdyBtYW55IHJhZGlhbnMgc2hvdWxkIGJlIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBsYXN0IG5vZGUgKGRlZmF1bHRzIHRvIGZ1bGwgY2lyY2xlKVxuICBjbG9ja3dpc2U6IHRydWUsXG4gIC8vIHdoZXRoZXIgdGhlIGxheW91dCBzaG91bGQgZ28gY2xvY2t3aXNlICh0cnVlKSBvciBjb3VudGVyY2xvY2t3aXNlL2FudGljbG9ja3dpc2UgKGZhbHNlKVxuICBlcXVpZGlzdGFudDogZmFsc2UsXG4gIC8vIHdoZXRoZXIgbGV2ZWxzIGhhdmUgYW4gZXF1YWwgcmFkaWFsIGRpc3RhbmNlIGJldHdlbiB0aGVtLCBtYXkgY2F1c2UgYm91bmRpbmcgYm94IG92ZXJmbG93XG4gIG1pbk5vZGVTcGFjaW5nOiAxMCxcbiAgLy8gbWluIHNwYWNpbmcgYmV0d2VlbiBvdXRzaWRlIG9mIG5vZGVzICh1c2VkIGZvciByYWRpdXMgYWRqdXN0bWVudClcbiAgYm91bmRpbmdCb3g6IHVuZGVmaW5lZCxcbiAgLy8gY29uc3RyYWluIGxheW91dCBib3VuZHM7IHsgeDEsIHkxLCB4MiwgeTIgfSBvciB7IHgxLCB5MSwgdywgaCB9XG4gIGF2b2lkT3ZlcmxhcDogdHJ1ZSxcbiAgLy8gcHJldmVudHMgbm9kZSBvdmVybGFwLCBtYXkgb3ZlcmZsb3cgYm91bmRpbmdCb3ggaWYgbm90IGVub3VnaCBzcGFjZVxuICBub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHM6IGZhbHNlLFxuICAvLyBFeGNsdWRlcyB0aGUgbGFiZWwgd2hlbiBjYWxjdWxhdGluZyBub2RlIGJvdW5kaW5nIGJveGVzIGZvciB0aGUgbGF5b3V0IGFsZ29yaXRobVxuICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgLy8gaGVpZ2h0IG9mIGxheW91dCBhcmVhIChvdmVycmlkZXMgY29udGFpbmVyIGhlaWdodClcbiAgd2lkdGg6IHVuZGVmaW5lZCxcbiAgLy8gd2lkdGggb2YgbGF5b3V0IGFyZWEgKG92ZXJyaWRlcyBjb250YWluZXIgd2lkdGgpXG4gIHNwYWNpbmdGYWN0b3I6IHVuZGVmaW5lZCxcbiAgLy8gQXBwbGllcyBhIG11bHRpcGxpY2F0aXZlIGZhY3RvciAoPjApIHRvIGV4cGFuZCBvciBjb21wcmVzcyB0aGUgb3ZlcmFsbCBhcmVhIHRoYXQgdGhlIG5vZGVzIHRha2UgdXBcbiAgY29uY2VudHJpYzogZnVuY3Rpb24gY29uY2VudHJpYyhub2RlKSB7XG4gICAgLy8gcmV0dXJucyBudW1lcmljIHZhbHVlIGZvciBlYWNoIG5vZGUsIHBsYWNpbmcgaGlnaGVyIG5vZGVzIGluIGxldmVscyB0b3dhcmRzIHRoZSBjZW50cmVcbiAgICByZXR1cm4gbm9kZS5kZWdyZWUoKTtcbiAgfSxcbiAgbGV2ZWxXaWR0aDogZnVuY3Rpb24gbGV2ZWxXaWR0aChub2Rlcykge1xuICAgIC8vIHRoZSB2YXJpYXRpb24gb2YgY29uY2VudHJpYyB2YWx1ZXMgaW4gZWFjaCBsZXZlbFxuICAgIHJldHVybiBub2Rlcy5tYXhEZWdyZWUoKSAvIDQ7XG4gIH0sXG4gIGFuaW1hdGU6IGZhbHNlLFxuICAvLyB3aGV0aGVyIHRvIHRyYW5zaXRpb24gdGhlIG5vZGUgcG9zaXRpb25zXG4gIGFuaW1hdGlvbkR1cmF0aW9uOiA1MDAsXG4gIC8vIGR1cmF0aW9uIG9mIGFuaW1hdGlvbiBpbiBtcyBpZiBlbmFibGVkXG4gIGFuaW1hdGlvbkVhc2luZzogdW5kZWZpbmVkLFxuICAvLyBlYXNpbmcgb2YgYW5pbWF0aW9uIGlmIGVuYWJsZWRcbiAgYW5pbWF0ZUZpbHRlcjogZnVuY3Rpb24gYW5pbWF0ZUZpbHRlcihub2RlLCBpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIC8vIGEgZnVuY3Rpb24gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG5vZGUgc2hvdWxkIGJlIGFuaW1hdGVkLiAgQWxsIG5vZGVzIGFuaW1hdGVkIGJ5IGRlZmF1bHQgb24gYW5pbWF0ZSBlbmFibGVkLiAgTm9uLWFuaW1hdGVkIG5vZGVzIGFyZSBwb3NpdGlvbmVkIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGxheW91dCBzdGFydHNcbiAgcmVhZHk6IHVuZGVmaW5lZCxcbiAgLy8gY2FsbGJhY2sgb24gbGF5b3V0cmVhZHlcbiAgc3RvcDogdW5kZWZpbmVkLFxuICAvLyBjYWxsYmFjayBvbiBsYXlvdXRzdG9wXG4gIHRyYW5zZm9ybTogZnVuY3Rpb24gdHJhbnNmb3JtKG5vZGUsIHBvc2l0aW9uKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uO1xuICB9IC8vIHRyYW5zZm9ybSBhIGdpdmVuIG5vZGUgcG9zaXRpb24uIFVzZWZ1bCBmb3IgY2hhbmdpbmcgZmxvdyBkaXJlY3Rpb24gaW4gZGlzY3JldGUgbGF5b3V0c1xufTtcblxuZnVuY3Rpb24gQ29uY2VudHJpY0xheW91dChvcHRpb25zKSB7XG4gIHRoaXMub3B0aW9ucyA9IGV4dGVuZCh7fSwgZGVmYXVsdHMkNSwgb3B0aW9ucyk7XG59XG5Db25jZW50cmljTGF5b3V0LnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBwYXJhbXMgPSB0aGlzLm9wdGlvbnM7XG4gIHZhciBvcHRpb25zID0gcGFyYW1zO1xuICB2YXIgY2xvY2t3aXNlID0gb3B0aW9ucy5jb3VudGVyY2xvY2t3aXNlICE9PSB1bmRlZmluZWQgPyAhb3B0aW9ucy5jb3VudGVyY2xvY2t3aXNlIDogb3B0aW9ucy5jbG9ja3dpc2U7XG4gIHZhciBjeSA9IHBhcmFtcy5jeTtcbiAgdmFyIGVsZXMgPSBvcHRpb25zLmVsZXM7XG4gIHZhciBub2RlcyA9IGVsZXMubm9kZXMoKS5ub3QoJzpwYXJlbnQnKTtcbiAgdmFyIGJiID0gbWFrZUJvdW5kaW5nQm94KG9wdGlvbnMuYm91bmRpbmdCb3ggPyBvcHRpb25zLmJvdW5kaW5nQm94IDoge1xuICAgIHgxOiAwLFxuICAgIHkxOiAwLFxuICAgIHc6IGN5LndpZHRoKCksXG4gICAgaDogY3kuaGVpZ2h0KClcbiAgfSk7XG4gIHZhciBjZW50ZXIgPSB7XG4gICAgeDogYmIueDEgKyBiYi53IC8gMixcbiAgICB5OiBiYi55MSArIGJiLmggLyAyXG4gIH07XG4gIHZhciBub2RlVmFsdWVzID0gW107IC8vIHsgbm9kZSwgdmFsdWUgfVxuICB2YXIgbWF4Tm9kZVNpemUgPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG5vZGUgPSBub2Rlc1tpXTtcbiAgICB2YXIgdmFsdWUgPSB2b2lkIDA7XG5cbiAgICAvLyBjYWxjdWxhdGUgdGhlIG5vZGUgdmFsdWVcbiAgICB2YWx1ZSA9IG9wdGlvbnMuY29uY2VudHJpYyhub2RlKTtcbiAgICBub2RlVmFsdWVzLnB1c2goe1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbm9kZTogbm9kZVxuICAgIH0pO1xuXG4gICAgLy8gZm9yIHN0eWxlIG1hcHBpbmdcbiAgICBub2RlLl9wcml2YXRlLnNjcmF0Y2guY29uY2VudHJpYyA9IHZhbHVlO1xuICB9XG5cbiAgLy8gaW4gY2FzZSB3ZSB1c2VkIHRoZSBgY29uY2VudHJpY2AgaW4gc3R5bGVcbiAgbm9kZXMudXBkYXRlU3R5bGUoKTtcblxuICAvLyBjYWxjdWxhdGUgbWF4IHNpemUgbm93IGJhc2VkIG9uIHBvdGVudGlhbGx5IHVwZGF0ZWQgbWFwcGVyc1xuICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbm9kZXMubGVuZ3RoOyBfaSsrKSB7XG4gICAgdmFyIF9ub2RlID0gbm9kZXNbX2ldO1xuICAgIHZhciBuYmIgPSBfbm9kZS5sYXlvdXREaW1lbnNpb25zKG9wdGlvbnMpO1xuICAgIG1heE5vZGVTaXplID0gTWF0aC5tYXgobWF4Tm9kZVNpemUsIG5iYi53LCBuYmIuaCk7XG4gIH1cblxuICAvLyBzb3J0IG5vZGUgdmFsdWVzIGluIGRlc2NyZWFzaW5nIG9yZGVyXG4gIG5vZGVWYWx1ZXMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgIHJldHVybiBiLnZhbHVlIC0gYS52YWx1ZTtcbiAgfSk7XG4gIHZhciBsZXZlbFdpZHRoID0gb3B0aW9ucy5sZXZlbFdpZHRoKG5vZGVzKTtcblxuICAvLyBwdXQgdGhlIHZhbHVlcyBpbnRvIGxldmVsc1xuICB2YXIgbGV2ZWxzID0gW1tdXTtcbiAgdmFyIGN1cnJlbnRMZXZlbCA9IGxldmVsc1swXTtcbiAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgbm9kZVZhbHVlcy5sZW5ndGg7IF9pMisrKSB7XG4gICAgdmFyIHZhbCA9IG5vZGVWYWx1ZXNbX2kyXTtcbiAgICBpZiAoY3VycmVudExldmVsLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciBkaWZmID0gTWF0aC5hYnMoY3VycmVudExldmVsWzBdLnZhbHVlIC0gdmFsLnZhbHVlKTtcbiAgICAgIGlmIChkaWZmID49IGxldmVsV2lkdGgpIHtcbiAgICAgICAgY3VycmVudExldmVsID0gW107XG4gICAgICAgIGxldmVscy5wdXNoKGN1cnJlbnRMZXZlbCk7XG4gICAgICB9XG4gICAgfVxuICAgIGN1cnJlbnRMZXZlbC5wdXNoKHZhbCk7XG4gIH1cblxuICAvLyBjcmVhdGUgcG9zaXRpb25zIGZyb20gbGV2ZWxzXG5cbiAgdmFyIG1pbkRpc3QgPSBtYXhOb2RlU2l6ZSArIG9wdGlvbnMubWluTm9kZVNwYWNpbmc7IC8vIG1pbiBkaXN0IGJldHdlZW4gbm9kZXNcblxuICBpZiAoIW9wdGlvbnMuYXZvaWRPdmVybGFwKSB7XG4gICAgLy8gdGhlbiBzdHJpY3RseSBjb25zdHJhaW4gdG8gYmJcbiAgICB2YXIgZmlyc3RMdmxIYXNNdWx0aSA9IGxldmVscy5sZW5ndGggPiAwICYmIGxldmVsc1swXS5sZW5ndGggPiAxO1xuICAgIHZhciBtYXhSID0gTWF0aC5taW4oYmIudywgYmIuaCkgLyAyIC0gbWluRGlzdDtcbiAgICB2YXIgclN0ZXAgPSBtYXhSIC8gKGxldmVscy5sZW5ndGggKyBmaXJzdEx2bEhhc011bHRpID8gMSA6IDApO1xuICAgIG1pbkRpc3QgPSBNYXRoLm1pbihtaW5EaXN0LCByU3RlcCk7XG4gIH1cblxuICAvLyBmaW5kIHRoZSBtZXRyaWNzIGZvciBlYWNoIGxldmVsXG4gIHZhciByID0gMDtcbiAgZm9yICh2YXIgX2kzID0gMDsgX2kzIDwgbGV2ZWxzLmxlbmd0aDsgX2kzKyspIHtcbiAgICB2YXIgbGV2ZWwgPSBsZXZlbHNbX2kzXTtcbiAgICB2YXIgc3dlZXAgPSBvcHRpb25zLnN3ZWVwID09PSB1bmRlZmluZWQgPyAyICogTWF0aC5QSSAtIDIgKiBNYXRoLlBJIC8gbGV2ZWwubGVuZ3RoIDogb3B0aW9ucy5zd2VlcDtcbiAgICB2YXIgZFRoZXRhID0gbGV2ZWwuZFRoZXRhID0gc3dlZXAgLyBNYXRoLm1heCgxLCBsZXZlbC5sZW5ndGggLSAxKTtcblxuICAgIC8vIGNhbGN1bGF0ZSB0aGUgcmFkaXVzXG4gICAgaWYgKGxldmVsLmxlbmd0aCA+IDEgJiYgb3B0aW9ucy5hdm9pZE92ZXJsYXApIHtcbiAgICAgIC8vIGJ1dCBvbmx5IGlmIG1vcmUgdGhhbiBvbmUgbm9kZSAoY2FuJ3Qgb3ZlcmxhcClcbiAgICAgIHZhciBkY29zID0gTWF0aC5jb3MoZFRoZXRhKSAtIE1hdGguY29zKDApO1xuICAgICAgdmFyIGRzaW4gPSBNYXRoLnNpbihkVGhldGEpIC0gTWF0aC5zaW4oMCk7XG4gICAgICB2YXIgck1pbiA9IE1hdGguc3FydChtaW5EaXN0ICogbWluRGlzdCAvIChkY29zICogZGNvcyArIGRzaW4gKiBkc2luKSk7IC8vIHMudC4gbm8gbm9kZXMgb3ZlcmxhcHBpbmdcblxuICAgICAgciA9IE1hdGgubWF4KHJNaW4sIHIpO1xuICAgIH1cbiAgICBsZXZlbC5yID0gcjtcbiAgICByICs9IG1pbkRpc3Q7XG4gIH1cbiAgaWYgKG9wdGlvbnMuZXF1aWRpc3RhbnQpIHtcbiAgICB2YXIgckRlbHRhTWF4ID0gMDtcbiAgICB2YXIgX3IgPSAwO1xuICAgIGZvciAodmFyIF9pNCA9IDA7IF9pNCA8IGxldmVscy5sZW5ndGg7IF9pNCsrKSB7XG4gICAgICB2YXIgX2xldmVsID0gbGV2ZWxzW19pNF07XG4gICAgICB2YXIgckRlbHRhID0gX2xldmVsLnIgLSBfcjtcbiAgICAgIHJEZWx0YU1heCA9IE1hdGgubWF4KHJEZWx0YU1heCwgckRlbHRhKTtcbiAgICB9XG4gICAgX3IgPSAwO1xuICAgIGZvciAodmFyIF9pNSA9IDA7IF9pNSA8IGxldmVscy5sZW5ndGg7IF9pNSsrKSB7XG4gICAgICB2YXIgX2xldmVsMiA9IGxldmVsc1tfaTVdO1xuICAgICAgaWYgKF9pNSA9PT0gMCkge1xuICAgICAgICBfciA9IF9sZXZlbDIucjtcbiAgICAgIH1cbiAgICAgIF9sZXZlbDIuciA9IF9yO1xuICAgICAgX3IgKz0gckRlbHRhTWF4O1xuICAgIH1cbiAgfVxuXG4gIC8vIGNhbGN1bGF0ZSB0aGUgbm9kZSBwb3NpdGlvbnNcbiAgdmFyIHBvcyA9IHt9OyAvLyBpZCA9PiBwb3NpdGlvblxuICBmb3IgKHZhciBfaTYgPSAwOyBfaTYgPCBsZXZlbHMubGVuZ3RoOyBfaTYrKykge1xuICAgIHZhciBfbGV2ZWwzID0gbGV2ZWxzW19pNl07XG4gICAgdmFyIF9kVGhldGEgPSBfbGV2ZWwzLmRUaGV0YTtcbiAgICB2YXIgX3IyID0gX2xldmVsMy5yO1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgX2xldmVsMy5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIF92YWwgPSBfbGV2ZWwzW2pdO1xuICAgICAgdmFyIHRoZXRhID0gb3B0aW9ucy5zdGFydEFuZ2xlICsgKGNsb2Nrd2lzZSA/IDEgOiAtMSkgKiBfZFRoZXRhICogajtcbiAgICAgIHZhciBwID0ge1xuICAgICAgICB4OiBjZW50ZXIueCArIF9yMiAqIE1hdGguY29zKHRoZXRhKSxcbiAgICAgICAgeTogY2VudGVyLnkgKyBfcjIgKiBNYXRoLnNpbih0aGV0YSlcbiAgICAgIH07XG4gICAgICBwb3NbX3ZhbC5ub2RlLmlkKCldID0gcDtcbiAgICB9XG4gIH1cblxuICAvLyBwb3NpdGlvbiB0aGUgbm9kZXNcbiAgZWxlcy5ub2RlcygpLmxheW91dFBvc2l0aW9ucyh0aGlzLCBvcHRpb25zLCBmdW5jdGlvbiAoZWxlKSB7XG4gICAgdmFyIGlkID0gZWxlLmlkKCk7XG4gICAgcmV0dXJuIHBvc1tpZF07XG4gIH0pO1xuICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbn07XG5cbi8qXG5UaGUgQ29TRSBsYXlvdXQgd2FzIHdyaXR0ZW4gYnkgR2VyYXJkbyBIdWNrLlxuaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL2dlcmFyZG9odWNrL1xuXG5CYXNlZCBvbiB0aGUgZm9sbG93aW5nIGFydGljbGU6XG5odHRwOi8vZGwuYWNtLm9yZy9jaXRhdGlvbi5jZm0/aWQ9MTQ5ODA0N1xuXG5Nb2RpZmljYXRpb25zIHRyYWNrZWQgb24gR2l0aHViLlxuKi9cbnZhciBERUJVRztcblxuLyoqXG4gKiBAYnJpZWYgOiAgZGVmYXVsdCBsYXlvdXQgb3B0aW9uc1xuICovXG52YXIgZGVmYXVsdHMkNCA9IHtcbiAgLy8gQ2FsbGVkIG9uIGBsYXlvdXRyZWFkeWBcbiAgcmVhZHk6IGZ1bmN0aW9uIHJlYWR5KCkge30sXG4gIC8vIENhbGxlZCBvbiBgbGF5b3V0c3RvcGBcbiAgc3RvcDogZnVuY3Rpb24gc3RvcCgpIHt9LFxuICAvLyBXaGV0aGVyIHRvIGFuaW1hdGUgd2hpbGUgcnVubmluZyB0aGUgbGF5b3V0XG4gIC8vIHRydWUgOiBBbmltYXRlIGNvbnRpbnVvdXNseSBhcyB0aGUgbGF5b3V0IGlzIHJ1bm5pbmdcbiAgLy8gZmFsc2UgOiBKdXN0IHNob3cgdGhlIGVuZCByZXN1bHRcbiAgLy8gJ2VuZCcgOiBBbmltYXRlIHdpdGggdGhlIGVuZCByZXN1bHQsIGZyb20gdGhlIGluaXRpYWwgcG9zaXRpb25zIHRvIHRoZSBlbmQgcG9zaXRpb25zXG4gIGFuaW1hdGU6IHRydWUsXG4gIC8vIEVhc2luZyBvZiB0aGUgYW5pbWF0aW9uIGZvciBhbmltYXRlOidlbmQnXG4gIGFuaW1hdGlvbkVhc2luZzogdW5kZWZpbmVkLFxuICAvLyBUaGUgZHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvbiBmb3IgYW5pbWF0ZTonZW5kJ1xuICBhbmltYXRpb25EdXJhdGlvbjogdW5kZWZpbmVkLFxuICAvLyBBIGZ1bmN0aW9uIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBub2RlIHNob3VsZCBiZSBhbmltYXRlZFxuICAvLyBBbGwgbm9kZXMgYW5pbWF0ZWQgYnkgZGVmYXVsdCBvbiBhbmltYXRlIGVuYWJsZWRcbiAgLy8gTm9uLWFuaW1hdGVkIG5vZGVzIGFyZSBwb3NpdGlvbmVkIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGxheW91dCBzdGFydHNcbiAgYW5pbWF0ZUZpbHRlcjogZnVuY3Rpb24gYW5pbWF0ZUZpbHRlcihub2RlLCBpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIC8vIFRoZSBsYXlvdXQgYW5pbWF0ZXMgb25seSBhZnRlciB0aGlzIG1hbnkgbWlsbGlzZWNvbmRzIGZvciBhbmltYXRlOnRydWVcbiAgLy8gKHByZXZlbnRzIGZsYXNoaW5nIG9uIGZhc3QgcnVucylcbiAgYW5pbWF0aW9uVGhyZXNob2xkOiAyNTAsXG4gIC8vIE51bWJlciBvZiBpdGVyYXRpb25zIGJldHdlZW4gY29uc2VjdXRpdmUgc2NyZWVuIHBvc2l0aW9ucyB1cGRhdGVcbiAgcmVmcmVzaDogMjAsXG4gIC8vIFdoZXRoZXIgdG8gZml0IHRoZSBuZXR3b3JrIHZpZXcgYWZ0ZXIgd2hlbiBkb25lXG4gIGZpdDogdHJ1ZSxcbiAgLy8gUGFkZGluZyBvbiBmaXRcbiAgcGFkZGluZzogMzAsXG4gIC8vIENvbnN0cmFpbiBsYXlvdXQgYm91bmRzOyB7IHgxLCB5MSwgeDIsIHkyIH0gb3IgeyB4MSwgeTEsIHcsIGggfVxuICBib3VuZGluZ0JveDogdW5kZWZpbmVkLFxuICAvLyBFeGNsdWRlcyB0aGUgbGFiZWwgd2hlbiBjYWxjdWxhdGluZyBub2RlIGJvdW5kaW5nIGJveGVzIGZvciB0aGUgbGF5b3V0IGFsZ29yaXRobVxuICBub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHM6IGZhbHNlLFxuICAvLyBSYW5kb21pemUgdGhlIGluaXRpYWwgcG9zaXRpb25zIG9mIHRoZSBub2RlcyAodHJ1ZSkgb3IgdXNlIGV4aXN0aW5nIHBvc2l0aW9ucyAoZmFsc2UpXG4gIHJhbmRvbWl6ZTogZmFsc2UsXG4gIC8vIEV4dHJhIHNwYWNpbmcgYmV0d2VlbiBjb21wb25lbnRzIGluIG5vbi1jb21wb3VuZCBncmFwaHNcbiAgY29tcG9uZW50U3BhY2luZzogNDAsXG4gIC8vIE5vZGUgcmVwdWxzaW9uIChub24gb3ZlcmxhcHBpbmcpIG11bHRpcGxpZXJcbiAgbm9kZVJlcHVsc2lvbjogZnVuY3Rpb24gbm9kZVJlcHVsc2lvbihub2RlKSB7XG4gICAgcmV0dXJuIDIwNDg7XG4gIH0sXG4gIC8vIE5vZGUgcmVwdWxzaW9uIChvdmVybGFwcGluZykgbXVsdGlwbGllclxuICBub2RlT3ZlcmxhcDogNCxcbiAgLy8gSWRlYWwgZWRnZSAobm9uIG5lc3RlZCkgbGVuZ3RoXG4gIGlkZWFsRWRnZUxlbmd0aDogZnVuY3Rpb24gaWRlYWxFZGdlTGVuZ3RoKGVkZ2UpIHtcbiAgICByZXR1cm4gMzI7XG4gIH0sXG4gIC8vIERpdmlzb3IgdG8gY29tcHV0ZSBlZGdlIGZvcmNlc1xuICBlZGdlRWxhc3RpY2l0eTogZnVuY3Rpb24gZWRnZUVsYXN0aWNpdHkoZWRnZSkge1xuICAgIHJldHVybiAzMjtcbiAgfSxcbiAgLy8gTmVzdGluZyBmYWN0b3IgKG11bHRpcGxpZXIpIHRvIGNvbXB1dGUgaWRlYWwgZWRnZSBsZW5ndGggZm9yIG5lc3RlZCBlZGdlc1xuICBuZXN0aW5nRmFjdG9yOiAxLjIsXG4gIC8vIEdyYXZpdHkgZm9yY2UgKGNvbnN0YW50KVxuICBncmF2aXR5OiAxLFxuICAvLyBNYXhpbXVtIG51bWJlciBvZiBpdGVyYXRpb25zIHRvIHBlcmZvcm1cbiAgbnVtSXRlcjogMTAwMCxcbiAgLy8gSW5pdGlhbCB0ZW1wZXJhdHVyZSAobWF4aW11bSBub2RlIGRpc3BsYWNlbWVudClcbiAgaW5pdGlhbFRlbXA6IDEwMDAsXG4gIC8vIENvb2xpbmcgZmFjdG9yIChob3cgdGhlIHRlbXBlcmF0dXJlIGlzIHJlZHVjZWQgYmV0d2VlbiBjb25zZWN1dGl2ZSBpdGVyYXRpb25zXG4gIGNvb2xpbmdGYWN0b3I6IDAuOTksXG4gIC8vIExvd2VyIHRlbXBlcmF0dXJlIHRocmVzaG9sZCAoYmVsb3cgdGhpcyBwb2ludCB0aGUgbGF5b3V0IHdpbGwgZW5kKVxuICBtaW5UZW1wOiAxLjBcbn07XG5cbi8qKlxuICogQGJyaWVmICAgICAgIDogY29uc3RydWN0b3JcbiAqIEBhcmcgb3B0aW9ucyA6IG9iamVjdCBjb250YWluaW5nIGxheW91dCBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIENvc2VMYXlvdXQob3B0aW9ucykge1xuICB0aGlzLm9wdGlvbnMgPSBleHRlbmQoe30sIGRlZmF1bHRzJDQsIG9wdGlvbnMpO1xuICB0aGlzLm9wdGlvbnMubGF5b3V0ID0gdGhpcztcblxuICAvLyBFeGNsdWRlIGFueSBlZGdlIHRoYXQgaGFzIGEgc291cmNlIG9yIHRhcmdldCBub2RlIHRoYXQgaXMgbm90IGluIHRoZSBzZXQgb2YgcGFzc2VkLWluIG5vZGVzXG4gIHZhciBub2RlcyA9IHRoaXMub3B0aW9ucy5lbGVzLm5vZGVzKCk7XG4gIHZhciBlZGdlcyA9IHRoaXMub3B0aW9ucy5lbGVzLmVkZ2VzKCk7XG4gIHZhciBub3RFZGdlcyA9IGVkZ2VzLmZpbHRlcihmdW5jdGlvbiAoZSkge1xuICAgIHZhciBzb3VyY2VJZCA9IGUuc291cmNlKCkuZGF0YSgnaWQnKTtcbiAgICB2YXIgdGFyZ2V0SWQgPSBlLnRhcmdldCgpLmRhdGEoJ2lkJyk7XG4gICAgdmFyIGhhc1NvdXJjZSA9IG5vZGVzLnNvbWUoZnVuY3Rpb24gKG4pIHtcbiAgICAgIHJldHVybiBuLmRhdGEoJ2lkJykgPT09IHNvdXJjZUlkO1xuICAgIH0pO1xuICAgIHZhciBoYXNUYXJnZXQgPSBub2Rlcy5zb21lKGZ1bmN0aW9uIChuKSB7XG4gICAgICByZXR1cm4gbi5kYXRhKCdpZCcpID09PSB0YXJnZXRJZDtcbiAgICB9KTtcbiAgICByZXR1cm4gIWhhc1NvdXJjZSB8fCAhaGFzVGFyZ2V0O1xuICB9KTtcbiAgdGhpcy5vcHRpb25zLmVsZXMgPSB0aGlzLm9wdGlvbnMuZWxlcy5ub3Qobm90RWRnZXMpO1xufVxuXG4vKipcbiAqIEBicmllZiA6IHJ1bnMgdGhlIGxheW91dFxuICovXG5Db3NlTGF5b3V0LnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICB2YXIgY3kgPSBvcHRpb25zLmN5O1xuICB2YXIgbGF5b3V0ID0gdGhpcztcbiAgbGF5b3V0LnN0b3BwZWQgPSBmYWxzZTtcbiAgaWYgKG9wdGlvbnMuYW5pbWF0ZSA9PT0gdHJ1ZSB8fCBvcHRpb25zLmFuaW1hdGUgPT09IGZhbHNlKSB7XG4gICAgbGF5b3V0LmVtaXQoe1xuICAgICAgdHlwZTogJ2xheW91dHN0YXJ0JyxcbiAgICAgIGxheW91dDogbGF5b3V0XG4gICAgfSk7XG4gIH1cblxuICAvLyBTZXQgREVCVUcgLSBHbG9iYWwgdmFyaWFibGVcbiAgaWYgKHRydWUgPT09IG9wdGlvbnMuZGVidWcpIHtcbiAgICBERUJVRyA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgREVCVUcgPSBmYWxzZTtcbiAgfVxuXG4gIC8vIEluaXRpYWxpemUgbGF5b3V0IGluZm9cbiAgdmFyIGxheW91dEluZm8gPSBjcmVhdGVMYXlvdXRJbmZvKGN5LCBsYXlvdXQsIG9wdGlvbnMpO1xuXG4gIC8vIFNob3cgTGF5b3V0SW5mbyBjb250ZW50cyBpZiBkZWJ1Z2dpbmdcbiAgaWYgKERFQlVHKSB7XG4gICAgcHJpbnRMYXlvdXRJbmZvKGxheW91dEluZm8pO1xuICB9XG5cbiAgLy8gSWYgcmVxdWlyZWQsIHJhbmRvbWl6ZSBub2RlIHBvc2l0aW9uc1xuICBpZiAob3B0aW9ucy5yYW5kb21pemUpIHtcbiAgICByYW5kb21pemVQb3NpdGlvbnMobGF5b3V0SW5mbyk7XG4gIH1cbiAgdmFyIHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlTm93KCk7XG4gIHZhciByZWZyZXNoID0gZnVuY3Rpb24gcmVmcmVzaCgpIHtcbiAgICByZWZyZXNoUG9zaXRpb25zKGxheW91dEluZm8sIGN5LCBvcHRpb25zKTtcblxuICAgIC8vIEZpdCB0aGUgZ3JhcGggaWYgbmVjZXNzYXJ5XG4gICAgaWYgKHRydWUgPT09IG9wdGlvbnMuZml0KSB7XG4gICAgICBjeS5maXQob3B0aW9ucy5wYWRkaW5nKTtcbiAgICB9XG4gIH07XG4gIHZhciBtYWluTG9vcCA9IGZ1bmN0aW9uIG1haW5Mb29wKGkpIHtcbiAgICBpZiAobGF5b3V0LnN0b3BwZWQgfHwgaSA+PSBvcHRpb25zLm51bUl0ZXIpIHtcbiAgICAgIC8vIGxvZ0RlYnVnKFwiTGF5b3V0IG1hbnVhbGx5IHN0b3BwZWQuIFN0b3BwaW5nIGNvbXB1dGF0aW9uIGluIHN0ZXAgXCIgKyBpKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBEbyBvbmUgc3RlcCBpbiB0aGUgcGhpc2ljYWwgc2ltdWxhdGlvblxuICAgIHN0ZXAobGF5b3V0SW5mbywgb3B0aW9ucyk7XG5cbiAgICAvLyBVcGRhdGUgdGVtcGVyYXR1cmVcbiAgICBsYXlvdXRJbmZvLnRlbXBlcmF0dXJlID0gbGF5b3V0SW5mby50ZW1wZXJhdHVyZSAqIG9wdGlvbnMuY29vbGluZ0ZhY3RvcjtcbiAgICAvLyBsb2dEZWJ1ZyhcIk5ldyB0ZW1wZXJhdHVyZTogXCIgKyBsYXlvdXRJbmZvLnRlbXBlcmF0dXJlKTtcblxuICAgIGlmIChsYXlvdXRJbmZvLnRlbXBlcmF0dXJlIDwgb3B0aW9ucy5taW5UZW1wKSB7XG4gICAgICAvLyBsb2dEZWJ1ZyhcIlRlbXBlcmF0dXJlIGRyb3AgYmVsb3cgbWluaW11bSB0aHJlc2hvbGQuIFN0b3BwaW5nIGNvbXB1dGF0aW9uIGluIHN0ZXAgXCIgKyBpKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG4gIHZhciBkb25lID0gZnVuY3Rpb24gZG9uZSgpIHtcbiAgICBpZiAob3B0aW9ucy5hbmltYXRlID09PSB0cnVlIHx8IG9wdGlvbnMuYW5pbWF0ZSA9PT0gZmFsc2UpIHtcbiAgICAgIHJlZnJlc2goKTtcblxuICAgICAgLy8gTGF5b3V0IGhhcyBmaW5pc2hlZFxuICAgICAgbGF5b3V0Lm9uZSgnbGF5b3V0c3RvcCcsIG9wdGlvbnMuc3RvcCk7XG4gICAgICBsYXlvdXQuZW1pdCh7XG4gICAgICAgIHR5cGU6ICdsYXlvdXRzdG9wJyxcbiAgICAgICAgbGF5b3V0OiBsYXlvdXRcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbm9kZXMgPSBvcHRpb25zLmVsZXMubm9kZXMoKTtcbiAgICAgIHZhciBnZXRTY2FsZWRQb3MgPSBnZXRTY2FsZUluQm91bmRzRm4obGF5b3V0SW5mbywgb3B0aW9ucywgbm9kZXMpO1xuICAgICAgbm9kZXMubGF5b3V0UG9zaXRpb25zKGxheW91dCwgb3B0aW9ucywgZ2V0U2NhbGVkUG9zKTtcbiAgICB9XG4gIH07XG4gIHZhciBpID0gMDtcbiAgdmFyIGxvb3BSZXQgPSB0cnVlO1xuICBpZiAob3B0aW9ucy5hbmltYXRlID09PSB0cnVlKSB7XG4gICAgdmFyIGZyYW1lID0gZnVuY3Rpb24gZnJhbWUoKSB7XG4gICAgICB2YXIgZiA9IDA7XG4gICAgICB3aGlsZSAobG9vcFJldCAmJiBmIDwgb3B0aW9ucy5yZWZyZXNoKSB7XG4gICAgICAgIGxvb3BSZXQgPSBtYWluTG9vcChpKTtcbiAgICAgICAgaSsrO1xuICAgICAgICBmKys7XG4gICAgICB9XG4gICAgICBpZiAoIWxvb3BSZXQpIHtcbiAgICAgICAgLy8gaXQncyBkb25lXG4gICAgICAgIHNlcGFyYXRlQ29tcG9uZW50cyhsYXlvdXRJbmZvLCBvcHRpb25zKTtcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5vdyA9IHBlcmZvcm1hbmNlTm93KCk7XG4gICAgICAgIGlmIChub3cgLSBzdGFydFRpbWUgPj0gb3B0aW9ucy5hbmltYXRpb25UaHJlc2hvbGQpIHtcbiAgICAgICAgICByZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGZyYW1lKCk7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKGxvb3BSZXQpIHtcbiAgICAgIGxvb3BSZXQgPSBtYWluTG9vcChpKTtcbiAgICAgIGkrKztcbiAgICB9XG4gICAgc2VwYXJhdGVDb21wb25lbnRzKGxheW91dEluZm8sIG9wdGlvbnMpO1xuICAgIGRvbmUoKTtcbiAgfVxuICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbn07XG5cbi8qKlxuICogQGJyaWVmIDogY2FsbGVkIG9uIGNvbnRpbnVvdXMgbGF5b3V0cyB0byBzdG9wIHRoZW0gYmVmb3JlIHRoZXkgZmluaXNoXG4gKi9cbkNvc2VMYXlvdXQucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc3RvcHBlZCA9IHRydWU7XG4gIGlmICh0aGlzLnRocmVhZCkge1xuICAgIHRoaXMudGhyZWFkLnN0b3AoKTtcbiAgfVxuICB0aGlzLmVtaXQoJ2xheW91dHN0b3AnKTtcbiAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG59O1xuXG5Db3NlTGF5b3V0LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy50aHJlYWQpIHtcbiAgICB0aGlzLnRocmVhZC5zdG9wKCk7XG4gIH1cbiAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG59O1xuXG4vKipcbiAqIEBicmllZiAgICAgOiBDcmVhdGVzIGFuIG9iamVjdCB3aGljaCBpcyBjb250YWlucyBhbGwgdGhlIGRhdGFcbiAqICAgICAgICAgICAgICB1c2VkIGluIHRoZSBsYXlvdXQgcHJvY2Vzc1xuICogQGFyZyBjeSAgICA6IGN5dG9zY2FwZS5qcyBvYmplY3RcbiAqIEByZXR1cm4gICAgOiBsYXlvdXRJbmZvIG9iamVjdCBpbml0aWFsaXplZFxuICovXG52YXIgY3JlYXRlTGF5b3V0SW5mbyA9IGZ1bmN0aW9uIGNyZWF0ZUxheW91dEluZm8oY3ksIGxheW91dCwgb3B0aW9ucykge1xuICAvLyBTaG9ydGN1dFxuICB2YXIgZWRnZXMgPSBvcHRpb25zLmVsZXMuZWRnZXMoKTtcbiAgdmFyIG5vZGVzID0gb3B0aW9ucy5lbGVzLm5vZGVzKCk7XG4gIHZhciBiYiA9IG1ha2VCb3VuZGluZ0JveChvcHRpb25zLmJvdW5kaW5nQm94ID8gb3B0aW9ucy5ib3VuZGluZ0JveCA6IHtcbiAgICB4MTogMCxcbiAgICB5MTogMCxcbiAgICB3OiBjeS53aWR0aCgpLFxuICAgIGg6IGN5LmhlaWdodCgpXG4gIH0pO1xuICB2YXIgbGF5b3V0SW5mbyA9IHtcbiAgICBpc0NvbXBvdW5kOiBjeS5oYXNDb21wb3VuZE5vZGVzKCksXG4gICAgbGF5b3V0Tm9kZXM6IFtdLFxuICAgIGlkVG9JbmRleDoge30sXG4gICAgbm9kZVNpemU6IG5vZGVzLnNpemUoKSxcbiAgICBncmFwaFNldDogW10sXG4gICAgaW5kZXhUb0dyYXBoOiBbXSxcbiAgICBsYXlvdXRFZGdlczogW10sXG4gICAgZWRnZVNpemU6IGVkZ2VzLnNpemUoKSxcbiAgICB0ZW1wZXJhdHVyZTogb3B0aW9ucy5pbml0aWFsVGVtcCxcbiAgICBjbGllbnRXaWR0aDogYmIudyxcbiAgICBjbGllbnRIZWlnaHQ6IGJiLmgsXG4gICAgYm91bmRpbmdCb3g6IGJiXG4gIH07XG4gIHZhciBjb21wb25lbnRzID0gb3B0aW9ucy5lbGVzLmNvbXBvbmVudHMoKTtcbiAgdmFyIGlkMmNtcHRJZCA9IHt9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbXBvbmVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgY29tcG9uZW50ID0gY29tcG9uZW50c1tpXTtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBvbmVudC5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIG5vZGUgPSBjb21wb25lbnRbal07XG4gICAgICBpZDJjbXB0SWRbbm9kZS5pZCgpXSA9IGk7XG4gICAgfVxuICB9XG5cbiAgLy8gSXRlcmF0ZSBvdmVyIGFsbCBub2RlcywgY3JlYXRpbmcgbGF5b3V0IG5vZGVzXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGF5b3V0SW5mby5ub2RlU2l6ZTsgaSsrKSB7XG4gICAgdmFyIG4gPSBub2Rlc1tpXTtcbiAgICB2YXIgbmJiID0gbi5sYXlvdXREaW1lbnNpb25zKG9wdGlvbnMpO1xuICAgIHZhciB0ZW1wTm9kZSA9IHt9O1xuICAgIHRlbXBOb2RlLmlzTG9ja2VkID0gbi5sb2NrZWQoKTtcbiAgICB0ZW1wTm9kZS5pZCA9IG4uZGF0YSgnaWQnKTtcbiAgICB0ZW1wTm9kZS5wYXJlbnRJZCA9IG4uZGF0YSgncGFyZW50Jyk7XG4gICAgdGVtcE5vZGUuY21wdElkID0gaWQyY21wdElkW24uaWQoKV07XG4gICAgdGVtcE5vZGUuY2hpbGRyZW4gPSBbXTtcbiAgICB0ZW1wTm9kZS5wb3NpdGlvblggPSBuLnBvc2l0aW9uKCd4Jyk7XG4gICAgdGVtcE5vZGUucG9zaXRpb25ZID0gbi5wb3NpdGlvbigneScpO1xuICAgIHRlbXBOb2RlLm9mZnNldFggPSAwO1xuICAgIHRlbXBOb2RlLm9mZnNldFkgPSAwO1xuICAgIHRlbXBOb2RlLmhlaWdodCA9IG5iYi53O1xuICAgIHRlbXBOb2RlLndpZHRoID0gbmJiLmg7XG4gICAgdGVtcE5vZGUubWF4WCA9IHRlbXBOb2RlLnBvc2l0aW9uWCArIHRlbXBOb2RlLndpZHRoIC8gMjtcbiAgICB0ZW1wTm9kZS5taW5YID0gdGVtcE5vZGUucG9zaXRpb25YIC0gdGVtcE5vZGUud2lkdGggLyAyO1xuICAgIHRlbXBOb2RlLm1heFkgPSB0ZW1wTm9kZS5wb3NpdGlvblkgKyB0ZW1wTm9kZS5oZWlnaHQgLyAyO1xuICAgIHRlbXBOb2RlLm1pblkgPSB0ZW1wTm9kZS5wb3NpdGlvblkgLSB0ZW1wTm9kZS5oZWlnaHQgLyAyO1xuICAgIHRlbXBOb2RlLnBhZExlZnQgPSBwYXJzZUZsb2F0KG4uc3R5bGUoJ3BhZGRpbmcnKSk7XG4gICAgdGVtcE5vZGUucGFkUmlnaHQgPSBwYXJzZUZsb2F0KG4uc3R5bGUoJ3BhZGRpbmcnKSk7XG4gICAgdGVtcE5vZGUucGFkVG9wID0gcGFyc2VGbG9hdChuLnN0eWxlKCdwYWRkaW5nJykpO1xuICAgIHRlbXBOb2RlLnBhZEJvdHRvbSA9IHBhcnNlRmxvYXQobi5zdHlsZSgncGFkZGluZycpKTtcblxuICAgIC8vIGZvcmNlc1xuICAgIHRlbXBOb2RlLm5vZGVSZXB1bHNpb24gPSBmbiQ2KG9wdGlvbnMubm9kZVJlcHVsc2lvbikgPyBvcHRpb25zLm5vZGVSZXB1bHNpb24obikgOiBvcHRpb25zLm5vZGVSZXB1bHNpb247XG5cbiAgICAvLyBBZGQgbmV3IG5vZGVcbiAgICBsYXlvdXRJbmZvLmxheW91dE5vZGVzLnB1c2godGVtcE5vZGUpO1xuICAgIC8vIEFkZCBlbnRyeSB0byBpZC1pbmRleCBtYXBcbiAgICBsYXlvdXRJbmZvLmlkVG9JbmRleFt0ZW1wTm9kZS5pZF0gPSBpO1xuICB9XG5cbiAgLy8gSW5saW5lIGltcGxlbWVudGF0aW9uIG9mIGEgcXVldWUsIHVzZWQgZm9yIHRyYXZlcnNpbmcgdGhlIGdyYXBoIGluIEJGUyBvcmRlclxuICB2YXIgcXVldWUgPSBbXTtcbiAgdmFyIHN0YXJ0ID0gMDsgLy8gUG9pbnRzIHRvIHRoZSBzdGFydCB0aGUgcXVldWVcbiAgdmFyIGVuZCA9IC0xOyAvLyBQb2ludHMgdG8gdGhlIGVuZCBvZiB0aGUgcXVldWVcblxuICB2YXIgdGVtcEdyYXBoID0gW107XG5cbiAgLy8gU2Vjb25kIHBhc3MgdG8gYWRkIGNoaWxkIGluZm9ybWF0aW9uIGFuZFxuICAvLyBpbml0aWFsaXplIHF1ZXVlIGZvciBoaWVyYXJjaGljYWwgdHJhdmVyc2FsXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGF5b3V0SW5mby5ub2RlU2l6ZTsgaSsrKSB7XG4gICAgdmFyIG4gPSBsYXlvdXRJbmZvLmxheW91dE5vZGVzW2ldO1xuICAgIHZhciBwX2lkID0gbi5wYXJlbnRJZDtcbiAgICAvLyBDaGVjayBpZiBub2RlIG4gaGFzIGEgcGFyZW50IG5vZGVcbiAgICBpZiAobnVsbCAhPSBwX2lkKSB7XG4gICAgICAvLyBBZGQgbm9kZSBJZCB0byBwYXJlbnQncyBsaXN0IG9mIGNoaWxkcmVuXG4gICAgICBsYXlvdXRJbmZvLmxheW91dE5vZGVzW2xheW91dEluZm8uaWRUb0luZGV4W3BfaWRdXS5jaGlsZHJlbi5wdXNoKG4uaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBhIG5vZGUgZG9lc24ndCBoYXZlIGEgcGFyZW50LCB0aGVuIGl0J3MgaW4gdGhlIHJvb3QgZ3JhcGhcbiAgICAgIHF1ZXVlWysrZW5kXSA9IG4uaWQ7XG4gICAgICB0ZW1wR3JhcGgucHVzaChuLmlkKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgcm9vdCBncmFwaCB0byBncmFwaFNldFxuICBsYXlvdXRJbmZvLmdyYXBoU2V0LnB1c2godGVtcEdyYXBoKTtcblxuICAvLyBUcmF2ZXJzZSB0aGUgZ3JhcGgsIGxldmVsIGJ5IGxldmVsLFxuICB3aGlsZSAoc3RhcnQgPD0gZW5kKSB7XG4gICAgLy8gR2V0IHRoZSBub2RlIHRvIHZpc2l0IGFuZCByZW1vdmUgaXQgZnJvbSBxdWV1ZVxuICAgIHZhciBub2RlX2lkID0gcXVldWVbc3RhcnQrK107XG4gICAgdmFyIG5vZGVfaXggPSBsYXlvdXRJbmZvLmlkVG9JbmRleFtub2RlX2lkXTtcbiAgICB2YXIgbm9kZSA9IGxheW91dEluZm8ubGF5b3V0Tm9kZXNbbm9kZV9peF07XG4gICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjtcbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgLy8gQWRkIGNoaWxkcmVuIG5vZGVzIGFzIGEgbmV3IGdyYXBoIHRvIGdyYXBoIHNldFxuICAgICAgbGF5b3V0SW5mby5ncmFwaFNldC5wdXNoKGNoaWxkcmVuKTtcbiAgICAgIC8vIEFkZCBjaGlsZHJlbiB0byBxdWUgcXVldWUgdG8gYmUgdmlzaXRlZFxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBxdWV1ZVsrK2VuZF0gPSBjaGlsZHJlbltpXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDcmVhdGUgaW5kZXhUb0dyYXBoIG1hcFxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxheW91dEluZm8uZ3JhcGhTZXQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZ3JhcGggPSBsYXlvdXRJbmZvLmdyYXBoU2V0W2ldO1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgZ3JhcGgubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBpbmRleCA9IGxheW91dEluZm8uaWRUb0luZGV4W2dyYXBoW2pdXTtcbiAgICAgIGxheW91dEluZm8uaW5kZXhUb0dyYXBoW2luZGV4XSA9IGk7XG4gICAgfVxuICB9XG5cbiAgLy8gSXRlcmF0ZSBvdmVyIGFsbCBlZGdlcywgY3JlYXRpbmcgTGF5b3V0IEVkZ2VzXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGF5b3V0SW5mby5lZGdlU2l6ZTsgaSsrKSB7XG4gICAgdmFyIGUgPSBlZGdlc1tpXTtcbiAgICB2YXIgdGVtcEVkZ2UgPSB7fTtcbiAgICB0ZW1wRWRnZS5pZCA9IGUuZGF0YSgnaWQnKTtcbiAgICB0ZW1wRWRnZS5zb3VyY2VJZCA9IGUuZGF0YSgnc291cmNlJyk7XG4gICAgdGVtcEVkZ2UudGFyZ2V0SWQgPSBlLmRhdGEoJ3RhcmdldCcpO1xuXG4gICAgLy8gQ29tcHV0ZSBpZGVhbCBsZW5ndGhcbiAgICB2YXIgaWRlYWxMZW5ndGggPSBmbiQ2KG9wdGlvbnMuaWRlYWxFZGdlTGVuZ3RoKSA/IG9wdGlvbnMuaWRlYWxFZGdlTGVuZ3RoKGUpIDogb3B0aW9ucy5pZGVhbEVkZ2VMZW5ndGg7XG4gICAgdmFyIGVsYXN0aWNpdHkgPSBmbiQ2KG9wdGlvbnMuZWRnZUVsYXN0aWNpdHkpID8gb3B0aW9ucy5lZGdlRWxhc3RpY2l0eShlKSA6IG9wdGlvbnMuZWRnZUVsYXN0aWNpdHk7XG5cbiAgICAvLyBDaGVjayBpZiBpdCdzIGFuIGludGVyIGdyYXBoIGVkZ2VcbiAgICB2YXIgc291cmNlSXggPSBsYXlvdXRJbmZvLmlkVG9JbmRleFt0ZW1wRWRnZS5zb3VyY2VJZF07XG4gICAgdmFyIHRhcmdldEl4ID0gbGF5b3V0SW5mby5pZFRvSW5kZXhbdGVtcEVkZ2UudGFyZ2V0SWRdO1xuICAgIHZhciBzb3VyY2VHcmFwaCA9IGxheW91dEluZm8uaW5kZXhUb0dyYXBoW3NvdXJjZUl4XTtcbiAgICB2YXIgdGFyZ2V0R3JhcGggPSBsYXlvdXRJbmZvLmluZGV4VG9HcmFwaFt0YXJnZXRJeF07XG4gICAgaWYgKHNvdXJjZUdyYXBoICE9IHRhcmdldEdyYXBoKSB7XG4gICAgICAvLyBGaW5kIGxvd2VzdCBjb21tb24gZ3JhcGggYW5jZXN0b3JcbiAgICAgIHZhciBsY2EgPSBmaW5kTENBKHRlbXBFZGdlLnNvdXJjZUlkLCB0ZW1wRWRnZS50YXJnZXRJZCwgbGF5b3V0SW5mbyk7XG5cbiAgICAgIC8vIENvbXB1dGUgc3VtIG9mIG5vZGUgZGVwdGhzLCByZWxhdGl2ZSB0byBsY2EgZ3JhcGhcbiAgICAgIHZhciBsY2FHcmFwaCA9IGxheW91dEluZm8uZ3JhcGhTZXRbbGNhXTtcbiAgICAgIHZhciBkZXB0aCA9IDA7XG5cbiAgICAgIC8vIFNvdXJjZSBkZXB0aFxuICAgICAgdmFyIHRlbXBOb2RlID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1tzb3VyY2VJeF07XG4gICAgICB3aGlsZSAoLTEgPT09IGxjYUdyYXBoLmluZGV4T2YodGVtcE5vZGUuaWQpKSB7XG4gICAgICAgIHRlbXBOb2RlID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1tsYXlvdXRJbmZvLmlkVG9JbmRleFt0ZW1wTm9kZS5wYXJlbnRJZF1dO1xuICAgICAgICBkZXB0aCsrO1xuICAgICAgfVxuXG4gICAgICAvLyBUYXJnZXQgZGVwdGhcbiAgICAgIHRlbXBOb2RlID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1t0YXJnZXRJeF07XG4gICAgICB3aGlsZSAoLTEgPT09IGxjYUdyYXBoLmluZGV4T2YodGVtcE5vZGUuaWQpKSB7XG4gICAgICAgIHRlbXBOb2RlID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1tsYXlvdXRJbmZvLmlkVG9JbmRleFt0ZW1wTm9kZS5wYXJlbnRJZF1dO1xuICAgICAgICBkZXB0aCsrO1xuICAgICAgfVxuXG4gICAgICAvLyBsb2dEZWJ1ZygnTENBIG9mIG5vZGVzICcgKyB0ZW1wRWRnZS5zb3VyY2VJZCArICcgYW5kICcgKyB0ZW1wRWRnZS50YXJnZXRJZCArXG4gICAgICAvLyAgXCIuIEluZGV4OiBcIiArIGxjYSArIFwiIENvbnRlbnRzOiBcIiArIGxjYUdyYXBoLnRvU3RyaW5nKCkgK1xuICAgICAgLy8gIFwiLiBEZXB0aDogXCIgKyBkZXB0aCk7XG5cbiAgICAgIC8vIFVwZGF0ZSBpZGVhbExlbmd0aFxuICAgICAgaWRlYWxMZW5ndGggKj0gZGVwdGggKiBvcHRpb25zLm5lc3RpbmdGYWN0b3I7XG4gICAgfVxuICAgIHRlbXBFZGdlLmlkZWFsTGVuZ3RoID0gaWRlYWxMZW5ndGg7XG4gICAgdGVtcEVkZ2UuZWxhc3RpY2l0eSA9IGVsYXN0aWNpdHk7XG4gICAgbGF5b3V0SW5mby5sYXlvdXRFZGdlcy5wdXNoKHRlbXBFZGdlKTtcbiAgfVxuXG4gIC8vIEZpbmFsbHksIHJldHVybiBsYXlvdXRJbmZvIG9iamVjdFxuICByZXR1cm4gbGF5b3V0SW5mbztcbn07XG5cbi8qKlxuICogQGJyaWVmIDogVGhpcyBmdW5jdGlvbiBmaW5kcyB0aGUgaW5kZXggb2YgdGhlIGxvd2VzdCBjb21tb25cbiAqICAgICAgICAgIGdyYXBoIGFuY2VzdG9yIGJldHdlZW4gMiBub2RlcyBpbiB0aGUgc3VidHJlZVxuICogICAgICAgICAgKGZyb20gdGhlIGdyYXBoIGhpZXJhcmNoeSBpbmR1Y2VkIHRyZWUpIHdob3NlXG4gKiAgICAgICAgICByb290IGlzIGdyYXBoSXhcbiAqXG4gKiBAYXJnIG5vZGUxOiBub2RlMSdzIElEXG4gKiBAYXJnIG5vZGUyOiBub2RlMidzIElEXG4gKiBAYXJnIGxheW91dEluZm86IGxheW91dEluZm8gb2JqZWN0XG4gKlxuICovXG52YXIgZmluZExDQSA9IGZ1bmN0aW9uIGZpbmRMQ0Eobm9kZTEsIG5vZGUyLCBsYXlvdXRJbmZvKSB7XG4gIC8vIEZpbmQgdGhlaXIgY29tbW9uIGFuY2VzdGVyLCBzdGFydGluZyBmcm9tIHRoZSByb290IGdyYXBoXG4gIHZhciByZXMgPSBmaW5kTENBX2F1eChub2RlMSwgbm9kZTIsIDAsIGxheW91dEluZm8pO1xuICBpZiAoMiA+IHJlcy5jb3VudCkge1xuICAgIC8vIElmIGF1eCBmdW5jdGlvbiBjb3VsZG4ndCBmaW5kIHRoZSBjb21tb24gYW5jZXN0ZXIsXG4gICAgLy8gdGhlbiBpdCBpcyB0aGUgcm9vdCBncmFwaFxuICAgIHJldHVybiAwO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiByZXMuZ3JhcGg7XG4gIH1cbn07XG5cbi8qKlxuICogQGJyaWVmICAgICAgICAgIDogQXV4aWxpYXJ5IGZ1bmN0aW9uIHVzZWQgZm9yIExDQSBjb21wdXRhdGlvblxuICpcbiAqIEBhcmcgbm9kZTEgICAgICA6IG5vZGUxJ3MgSURcbiAqIEBhcmcgbm9kZTIgICAgICA6IG5vZGUyJ3MgSURcbiAqIEBhcmcgZ3JhcGhJeCAgICA6IHN1YmdyYXBoIGluZGV4XG4gKiBAYXJnIGxheW91dEluZm8gOiBsYXlvdXRJbmZvIG9iamVjdFxuICpcbiAqIEByZXR1cm4gICAgICAgICA6IG9iamVjdCBvZiB0aGUgZm9ybSB7Y291bnQ6IFgsIGdyYXBoOiBZfSwgd2hlcmU6XG4gKiAgICAgICAgICAgICAgICAgICBYIGlzIHRoZSBudW1iZXIgb2YgYW5jZXN0b3JzIChtYXg6IDIpIGZvdW5kIGluXG4gKiAgICAgICAgICAgICAgICAgICBncmFwaEl4IChhbmQgaXQncyBzdWJncmFwaHMpLFxuICogICAgICAgICAgICAgICAgICAgWSBpcyB0aGUgZ3JhcGggaW5kZXggb2YgdGhlIGxvd2VzdCBncmFwaCBjb250YWluaW5nXG4gKiAgICAgICAgICAgICAgICAgICBhbGwgWCBub2Rlc1xuICovXG52YXIgZmluZExDQV9hdXggPSBmdW5jdGlvbiBmaW5kTENBX2F1eChub2RlMSwgbm9kZTIsIGdyYXBoSXgsIGxheW91dEluZm8pIHtcbiAgdmFyIGdyYXBoID0gbGF5b3V0SW5mby5ncmFwaFNldFtncmFwaEl4XTtcbiAgLy8gSWYgYm90aCBub2RlcyBiZWxvbmdzIHRvIGdyYXBoSXhcbiAgaWYgKC0xIDwgZ3JhcGguaW5kZXhPZihub2RlMSkgJiYgLTEgPCBncmFwaC5pbmRleE9mKG5vZGUyKSkge1xuICAgIHJldHVybiB7XG4gICAgICBjb3VudDogMixcbiAgICAgIGdyYXBoOiBncmFwaEl4XG4gICAgfTtcbiAgfVxuXG4gIC8vIE1ha2UgcmVjdXJzaXZlIGNhbGxzIGZvciBhbGwgc3ViZ3JhcGhzXG4gIHZhciBjID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBncmFwaC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBub2RlSWQgPSBncmFwaFtpXTtcbiAgICB2YXIgbm9kZUl4ID0gbGF5b3V0SW5mby5pZFRvSW5kZXhbbm9kZUlkXTtcbiAgICB2YXIgY2hpbGRyZW4gPSBsYXlvdXRJbmZvLmxheW91dE5vZGVzW25vZGVJeF0uY2hpbGRyZW47XG5cbiAgICAvLyBJZiB0aGUgbm9kZSBoYXMgbm8gY2hpbGQsIHNraXAgaXRcbiAgICBpZiAoMCA9PT0gY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgdmFyIGNoaWxkR3JhcGhJeCA9IGxheW91dEluZm8uaW5kZXhUb0dyYXBoW2xheW91dEluZm8uaWRUb0luZGV4W2NoaWxkcmVuWzBdXV07XG4gICAgdmFyIHJlc3VsdCA9IGZpbmRMQ0FfYXV4KG5vZGUxLCBub2RlMiwgY2hpbGRHcmFwaEl4LCBsYXlvdXRJbmZvKTtcbiAgICBpZiAoMCA9PT0gcmVzdWx0LmNvdW50KSB7XG4gICAgICAvLyBOZWl0aGVyIG5vZGUxIG5vciBub2RlMiBhcmUgcHJlc2VudCBpbiB0aGlzIHN1YmdyYXBoXG4gICAgICBjb250aW51ZTtcbiAgICB9IGVsc2UgaWYgKDEgPT09IHJlc3VsdC5jb3VudCkge1xuICAgICAgLy8gT25lIG9mIChub2RlMSwgbm9kZTIpIGlzIHByZXNlbnQgaW4gdGhpcyBzdWJncmFwaFxuICAgICAgYysrO1xuICAgICAgaWYgKDIgPT09IGMpIHtcbiAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBmb3VuZCBib3RoIG5vZGVzLCBubyBuZWVkIHRvIGtlZXAgc2VhcmNoaW5nXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBCb3RoIG5vZGVzIGFyZSBwcmVzZW50IGluIHRoaXMgc3ViZ3JhcGhcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgY291bnQ6IGMsXG4gICAgZ3JhcGg6IGdyYXBoSXhcbiAgfTtcbn07XG5cbi8qKlxuICogQGJyaWVmOiBwcmludHNMYXlvdXRJbmZvIGludG8ganMgY29uc29sZVxuICogICAgICAgICBPbmx5IHVzZWQgZm9yIGRlYmJ1Z2luZ1xuICovXG52YXIgcHJpbnRMYXlvdXRJbmZvOyBcblxuLyoqXG4gKiBAYnJpZWYgOiBSYW5kb21pemVzIHRoZSBwb3NpdGlvbiBvZiBhbGwgbm9kZXNcbiAqL1xudmFyIHJhbmRvbWl6ZVBvc2l0aW9ucyA9IGZ1bmN0aW9uIHJhbmRvbWl6ZVBvc2l0aW9ucyhsYXlvdXRJbmZvLCBjeSkge1xuICB2YXIgd2lkdGggPSBsYXlvdXRJbmZvLmNsaWVudFdpZHRoO1xuICB2YXIgaGVpZ2h0ID0gbGF5b3V0SW5mby5jbGllbnRIZWlnaHQ7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGF5b3V0SW5mby5ub2RlU2l6ZTsgaSsrKSB7XG4gICAgdmFyIG4gPSBsYXlvdXRJbmZvLmxheW91dE5vZGVzW2ldO1xuXG4gICAgLy8gTm8gbmVlZCB0byByYW5kb21pemUgY29tcG91bmQgbm9kZXMgb3IgbG9ja2VkIG5vZGVzXG4gICAgaWYgKDAgPT09IG4uY2hpbGRyZW4ubGVuZ3RoICYmICFuLmlzTG9ja2VkKSB7XG4gICAgICBuLnBvc2l0aW9uWCA9IE1hdGgucmFuZG9tKCkgKiB3aWR0aDtcbiAgICAgIG4ucG9zaXRpb25ZID0gTWF0aC5yYW5kb20oKSAqIGhlaWdodDtcbiAgICB9XG4gIH1cbn07XG52YXIgZ2V0U2NhbGVJbkJvdW5kc0ZuID0gZnVuY3Rpb24gZ2V0U2NhbGVJbkJvdW5kc0ZuKGxheW91dEluZm8sIG9wdGlvbnMsIG5vZGVzKSB7XG4gIHZhciBiYiA9IGxheW91dEluZm8uYm91bmRpbmdCb3g7XG4gIHZhciBjb3NlQkIgPSB7XG4gICAgeDE6IEluZmluaXR5LFxuICAgIHgyOiAtSW5maW5pdHksXG4gICAgeTE6IEluZmluaXR5LFxuICAgIHkyOiAtSW5maW5pdHlcbiAgfTtcbiAgaWYgKG9wdGlvbnMuYm91bmRpbmdCb3gpIHtcbiAgICBub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICB2YXIgbG5vZGUgPSBsYXlvdXRJbmZvLmxheW91dE5vZGVzW2xheW91dEluZm8uaWRUb0luZGV4W25vZGUuZGF0YSgnaWQnKV1dO1xuICAgICAgY29zZUJCLngxID0gTWF0aC5taW4oY29zZUJCLngxLCBsbm9kZS5wb3NpdGlvblgpO1xuICAgICAgY29zZUJCLngyID0gTWF0aC5tYXgoY29zZUJCLngyLCBsbm9kZS5wb3NpdGlvblgpO1xuICAgICAgY29zZUJCLnkxID0gTWF0aC5taW4oY29zZUJCLnkxLCBsbm9kZS5wb3NpdGlvblkpO1xuICAgICAgY29zZUJCLnkyID0gTWF0aC5tYXgoY29zZUJCLnkyLCBsbm9kZS5wb3NpdGlvblkpO1xuICAgIH0pO1xuICAgIGNvc2VCQi53ID0gY29zZUJCLngyIC0gY29zZUJCLngxO1xuICAgIGNvc2VCQi5oID0gY29zZUJCLnkyIC0gY29zZUJCLnkxO1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoZWxlLCBpKSB7XG4gICAgdmFyIGxub2RlID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1tsYXlvdXRJbmZvLmlkVG9JbmRleFtlbGUuZGF0YSgnaWQnKV1dO1xuICAgIGlmIChvcHRpb25zLmJvdW5kaW5nQm94KSB7XG4gICAgICAvLyB0aGVuIGFkZCBleHRyYSBib3VuZGluZyBib3ggY29uc3RyYWludFxuICAgICAgdmFyIHBjdFggPSAobG5vZGUucG9zaXRpb25YIC0gY29zZUJCLngxKSAvIGNvc2VCQi53O1xuICAgICAgdmFyIHBjdFkgPSAobG5vZGUucG9zaXRpb25ZIC0gY29zZUJCLnkxKSAvIGNvc2VCQi5oO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDogYmIueDEgKyBwY3RYICogYmIudyxcbiAgICAgICAgeTogYmIueTEgKyBwY3RZICogYmIuaFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDogbG5vZGUucG9zaXRpb25YLFxuICAgICAgICB5OiBsbm9kZS5wb3NpdGlvbllcbiAgICAgIH07XG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBAYnJpZWYgICAgICAgICAgOiBVcGRhdGVzIHRoZSBwb3NpdGlvbnMgb2Ygbm9kZXMgaW4gdGhlIG5ldHdvcmtcbiAqIEBhcmcgbGF5b3V0SW5mbyA6IExheW91dEluZm8gb2JqZWN0XG4gKiBAYXJnIGN5ICAgICAgICAgOiBDeXRvc2NhcGUgb2JqZWN0XG4gKiBAYXJnIG9wdGlvbnMgICAgOiBMYXlvdXQgb3B0aW9uc1xuICovXG52YXIgcmVmcmVzaFBvc2l0aW9ucyA9IGZ1bmN0aW9uIHJlZnJlc2hQb3NpdGlvbnMobGF5b3V0SW5mbywgY3ksIG9wdGlvbnMpIHtcbiAgLy8gdmFyIHMgPSAnUmVmcmVzaGluZyBwb3NpdGlvbnMnO1xuICAvLyBsb2dEZWJ1ZyhzKTtcblxuICB2YXIgbGF5b3V0ID0gb3B0aW9ucy5sYXlvdXQ7XG4gIHZhciBub2RlcyA9IG9wdGlvbnMuZWxlcy5ub2RlcygpO1xuICB2YXIgZ2V0U2NhbGVkUG9zID0gZ2V0U2NhbGVJbkJvdW5kc0ZuKGxheW91dEluZm8sIG9wdGlvbnMsIG5vZGVzKTtcbiAgbm9kZXMucG9zaXRpb25zKGdldFNjYWxlZFBvcyk7XG5cbiAgLy8gVHJpZ2dlciBsYXlvdXRSZWFkeSBvbmx5IG9uIGZpcnN0IGNhbGxcbiAgaWYgKHRydWUgIT09IGxheW91dEluZm8ucmVhZHkpIHtcbiAgICAvLyBzID0gJ1RyaWdnZXJpbmcgbGF5b3V0cmVhZHknO1xuICAgIC8vIGxvZ0RlYnVnKHMpO1xuICAgIGxheW91dEluZm8ucmVhZHkgPSB0cnVlO1xuICAgIGxheW91dC5vbmUoJ2xheW91dHJlYWR5Jywgb3B0aW9ucy5yZWFkeSk7XG4gICAgbGF5b3V0LmVtaXQoe1xuICAgICAgdHlwZTogJ2xheW91dHJlYWR5JyxcbiAgICAgIGxheW91dDogdGhpc1xuICAgIH0pO1xuICB9XG59O1xuXG4vKipcbiAqIEBicmllZiA6IExvZ3MgYSBkZWJ1ZyBtZXNzYWdlIGluIEpTIGNvbnNvbGUsIGlmIERFQlVHIGlzIE9OXG4gKi9cbi8vIHZhciBsb2dEZWJ1ZyA9IGZ1bmN0aW9uKHRleHQpIHtcbi8vICAgaWYgKERFQlVHKSB7XG4vLyAgICAgY29uc29sZS5kZWJ1Zyh0ZXh0KTtcbi8vICAgfVxuLy8gfTtcblxuLyoqXG4gKiBAYnJpZWYgICAgICAgICAgOiBQZXJmb3JtcyBvbmUgaXRlcmF0aW9uIG9mIHRoZSBwaHlzaWNhbCBzaW11bGF0aW9uXG4gKiBAYXJnIGxheW91dEluZm8gOiBMYXlvdXRJbmZvIG9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkXG4gKiBAYXJnIGN5ICAgICAgICAgOiBDeXRvc2NhcGUgb2JqZWN0XG4gKiBAYXJnIG9wdGlvbnMgICAgOiBMYXlvdXQgb3B0aW9uc1xuICovXG52YXIgc3RlcCA9IGZ1bmN0aW9uIHN0ZXAobGF5b3V0SW5mbywgb3B0aW9ucywgX3N0ZXApIHtcbiAgLy8gdmFyIHMgPSBcIlxcblxcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcIjtcbiAgLy8gcyArPSBcIlxcblNURVA6IFwiICsgc3RlcDtcbiAgLy8gcyArPSBcIlxcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcXG5cIjtcbiAgLy8gbG9nRGVidWcocyk7XG5cbiAgLy8gQ2FsY3VsYXRlIG5vZGUgcmVwdWxzaW9uc1xuICBjYWxjdWxhdGVOb2RlRm9yY2VzKGxheW91dEluZm8sIG9wdGlvbnMpO1xuICAvLyBDYWxjdWxhdGUgZWRnZSBmb3JjZXNcbiAgY2FsY3VsYXRlRWRnZUZvcmNlcyhsYXlvdXRJbmZvKTtcbiAgLy8gQ2FsY3VsYXRlIGdyYXZpdHkgZm9yY2VzXG4gIGNhbGN1bGF0ZUdyYXZpdHlGb3JjZXMobGF5b3V0SW5mbywgb3B0aW9ucyk7XG4gIC8vIFByb3BhZ2F0ZSBmb3JjZXMgZnJvbSBwYXJlbnQgdG8gY2hpbGRcbiAgcHJvcGFnYXRlRm9yY2VzKGxheW91dEluZm8pO1xuICAvLyBVcGRhdGUgcG9zaXRpb25zIGJhc2VkIG9uIGNhbGN1bGF0ZWQgZm9yY2VzXG4gIHVwZGF0ZVBvc2l0aW9ucyhsYXlvdXRJbmZvKTtcbn07XG5cbi8qKlxuICogQGJyaWVmIDogQ29tcHV0ZXMgdGhlIG5vZGUgcmVwdWxzaW9uIGZvcmNlc1xuICovXG52YXIgY2FsY3VsYXRlTm9kZUZvcmNlcyA9IGZ1bmN0aW9uIGNhbGN1bGF0ZU5vZGVGb3JjZXMobGF5b3V0SW5mbywgb3B0aW9ucykge1xuICAvLyBHbyB0aHJvdWdoIGVhY2ggb2YgdGhlIGdyYXBocyBpbiBncmFwaFNldFxuICAvLyBOb2RlcyBvbmx5IHJlcGVsIGVhY2ggb3RoZXIgaWYgdGhleSBiZWxvbmcgdG8gdGhlIHNhbWUgZ3JhcGhcbiAgLy8gdmFyIHMgPSAnY2FsY3VsYXRlTm9kZUZvcmNlcyc7XG4gIC8vIGxvZ0RlYnVnKHMpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxheW91dEluZm8uZ3JhcGhTZXQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZ3JhcGggPSBsYXlvdXRJbmZvLmdyYXBoU2V0W2ldO1xuICAgIHZhciBudW1Ob2RlcyA9IGdyYXBoLmxlbmd0aDtcblxuICAgIC8vIHMgPSBcIlNldDogXCIgKyBncmFwaC50b1N0cmluZygpO1xuICAgIC8vIGxvZ0RlYnVnKHMpO1xuXG4gICAgLy8gTm93IGdldCBhbGwgdGhlIHBhaXJzIG9mIG5vZGVzXG4gICAgLy8gT25seSBnZXQgZWFjaCBwYWlyIG9uY2UsIChBLCBCKSA9IChCLCBBKVxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgbnVtTm9kZXM7IGorKykge1xuICAgICAgdmFyIG5vZGUxID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1tsYXlvdXRJbmZvLmlkVG9JbmRleFtncmFwaFtqXV1dO1xuICAgICAgZm9yICh2YXIgayA9IGogKyAxOyBrIDwgbnVtTm9kZXM7IGsrKykge1xuICAgICAgICB2YXIgbm9kZTIgPSBsYXlvdXRJbmZvLmxheW91dE5vZGVzW2xheW91dEluZm8uaWRUb0luZGV4W2dyYXBoW2tdXV07XG4gICAgICAgIG5vZGVSZXB1bHNpb24obm9kZTEsIG5vZGUyLCBsYXlvdXRJbmZvLCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG52YXIgcmFuZG9tRGlzdGFuY2UgPSBmdW5jdGlvbiByYW5kb21EaXN0YW5jZShtYXgpIHtcbiAgcmV0dXJuIC1tYXggKyAyICogbWF4ICogTWF0aC5yYW5kb20oKTtcbn07XG5cbi8qKlxuICogQGJyaWVmIDogQ29tcHV0ZSB0aGUgbm9kZSByZXB1bHNpb24gZm9yY2VzIGJldHdlZW4gYSBwYWlyIG9mIG5vZGVzXG4gKi9cbnZhciBub2RlUmVwdWxzaW9uID0gZnVuY3Rpb24gbm9kZVJlcHVsc2lvbihub2RlMSwgbm9kZTIsIGxheW91dEluZm8sIG9wdGlvbnMpIHtcbiAgLy8gdmFyIHMgPSBcIk5vZGUgcmVwdWxzaW9uLiBOb2RlMTogXCIgKyBub2RlMS5pZCArIFwiIE5vZGUyOiBcIiArIG5vZGUyLmlkO1xuXG4gIHZhciBjbXB0SWQxID0gbm9kZTEuY21wdElkO1xuICB2YXIgY21wdElkMiA9IG5vZGUyLmNtcHRJZDtcbiAgaWYgKGNtcHRJZDEgIT09IGNtcHRJZDIgJiYgIWxheW91dEluZm8uaXNDb21wb3VuZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIEdldCBkaXJlY3Rpb24gb2YgbGluZSBjb25uZWN0aW5nIGJvdGggbm9kZSBjZW50ZXJzXG4gIHZhciBkaXJlY3Rpb25YID0gbm9kZTIucG9zaXRpb25YIC0gbm9kZTEucG9zaXRpb25YO1xuICB2YXIgZGlyZWN0aW9uWSA9IG5vZGUyLnBvc2l0aW9uWSAtIG5vZGUxLnBvc2l0aW9uWTtcbiAgdmFyIG1heFJhbmREaXN0ID0gMTtcbiAgLy8gcyArPSBcIlxcbmRpcmVjdGlvblg6IFwiICsgZGlyZWN0aW9uWCArIFwiLCBkaXJlY3Rpb25ZOiBcIiArIGRpcmVjdGlvblk7XG5cbiAgLy8gSWYgYm90aCBjZW50ZXJzIGFyZSB0aGUgc2FtZSwgYXBwbHkgYSByYW5kb20gZm9yY2VcbiAgaWYgKDAgPT09IGRpcmVjdGlvblggJiYgMCA9PT0gZGlyZWN0aW9uWSkge1xuICAgIGRpcmVjdGlvblggPSByYW5kb21EaXN0YW5jZShtYXhSYW5kRGlzdCk7XG4gICAgZGlyZWN0aW9uWSA9IHJhbmRvbURpc3RhbmNlKG1heFJhbmREaXN0KTtcbiAgfVxuICB2YXIgb3ZlcmxhcCA9IG5vZGVzT3ZlcmxhcChub2RlMSwgbm9kZTIsIGRpcmVjdGlvblgsIGRpcmVjdGlvblkpO1xuICBpZiAob3ZlcmxhcCA+IDApIHtcbiAgICAvLyBzICs9IFwiXFxuTm9kZXMgRE8gb3ZlcmxhcC5cIjtcbiAgICAvLyBzICs9IFwiXFxuT3ZlcmxhcDogXCIgKyBvdmVybGFwO1xuICAgIC8vIElmIG5vZGVzIG92ZXJsYXAsIHJlcHVsc2lvbiBmb3JjZSBpcyBwcm9wb3J0aW9uYWxcbiAgICAvLyB0byB0aGUgb3ZlcmxhcFxuICAgIHZhciBmb3JjZSA9IG9wdGlvbnMubm9kZU92ZXJsYXAgKiBvdmVybGFwO1xuXG4gICAgLy8gQ29tcHV0ZSB0aGUgbW9kdWxlIGFuZCBjb21wb25lbnRzIG9mIHRoZSBmb3JjZSB2ZWN0b3JcbiAgICB2YXIgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZGlyZWN0aW9uWCAqIGRpcmVjdGlvblggKyBkaXJlY3Rpb25ZICogZGlyZWN0aW9uWSk7XG4gICAgLy8gcyArPSBcIlxcbkRpc3RhbmNlOiBcIiArIGRpc3RhbmNlO1xuICAgIHZhciBmb3JjZVggPSBmb3JjZSAqIGRpcmVjdGlvblggLyBkaXN0YW5jZTtcbiAgICB2YXIgZm9yY2VZID0gZm9yY2UgKiBkaXJlY3Rpb25ZIC8gZGlzdGFuY2U7XG4gIH0gZWxzZSB7XG4gICAgLy8gcyArPSBcIlxcbk5vZGVzIGRvIE5PVCBvdmVybGFwLlwiO1xuICAgIC8vIElmIHRoZXJlJ3Mgbm8gb3ZlcmxhcCwgZm9yY2UgaXMgaW52ZXJzZWx5IHByb3BvcnRpb25hbFxuICAgIC8vIHRvIHNxdWFyZWQgZGlzdGFuY2VcblxuICAgIC8vIEdldCBjbGlwcGluZyBwb2ludHMgZm9yIGJvdGggbm9kZXNcbiAgICB2YXIgcG9pbnQxID0gZmluZENsaXBwaW5nUG9pbnQobm9kZTEsIGRpcmVjdGlvblgsIGRpcmVjdGlvblkpO1xuICAgIHZhciBwb2ludDIgPSBmaW5kQ2xpcHBpbmdQb2ludChub2RlMiwgLTEgKiBkaXJlY3Rpb25YLCAtMSAqIGRpcmVjdGlvblkpO1xuXG4gICAgLy8gVXNlIGNsaXBwaW5nIHBvaW50cyB0byBjb21wdXRlIGRpc3RhbmNlXG4gICAgdmFyIGRpc3RhbmNlWCA9IHBvaW50Mi54IC0gcG9pbnQxLng7XG4gICAgdmFyIGRpc3RhbmNlWSA9IHBvaW50Mi55IC0gcG9pbnQxLnk7XG4gICAgdmFyIGRpc3RhbmNlU3FyID0gZGlzdGFuY2VYICogZGlzdGFuY2VYICsgZGlzdGFuY2VZICogZGlzdGFuY2VZO1xuICAgIHZhciBkaXN0YW5jZSA9IE1hdGguc3FydChkaXN0YW5jZVNxcik7XG4gICAgLy8gcyArPSBcIlxcbkRpc3RhbmNlOiBcIiArIGRpc3RhbmNlO1xuXG4gICAgLy8gQ29tcHV0ZSB0aGUgbW9kdWxlIGFuZCBjb21wb25lbnRzIG9mIHRoZSBmb3JjZSB2ZWN0b3JcbiAgICB2YXIgZm9yY2UgPSAobm9kZTEubm9kZVJlcHVsc2lvbiArIG5vZGUyLm5vZGVSZXB1bHNpb24pIC8gZGlzdGFuY2VTcXI7XG4gICAgdmFyIGZvcmNlWCA9IGZvcmNlICogZGlzdGFuY2VYIC8gZGlzdGFuY2U7XG4gICAgdmFyIGZvcmNlWSA9IGZvcmNlICogZGlzdGFuY2VZIC8gZGlzdGFuY2U7XG4gIH1cblxuICAvLyBBcHBseSBmb3JjZVxuICBpZiAoIW5vZGUxLmlzTG9ja2VkKSB7XG4gICAgbm9kZTEub2Zmc2V0WCAtPSBmb3JjZVg7XG4gICAgbm9kZTEub2Zmc2V0WSAtPSBmb3JjZVk7XG4gIH1cbiAgaWYgKCFub2RlMi5pc0xvY2tlZCkge1xuICAgIG5vZGUyLm9mZnNldFggKz0gZm9yY2VYO1xuICAgIG5vZGUyLm9mZnNldFkgKz0gZm9yY2VZO1xuICB9XG5cbiAgLy8gcyArPSBcIlxcbkZvcmNlWDogXCIgKyBmb3JjZVggKyBcIiBGb3JjZVk6IFwiICsgZm9yY2VZO1xuICAvLyBsb2dEZWJ1ZyhzKTtcblxuICByZXR1cm47XG59O1xuXG4vKipcbiAqIEBicmllZiAgOiBEZXRlcm1pbmVzIHdoZXRoZXIgdHdvIG5vZGVzIG92ZXJsYXAgb3Igbm90XG4gKiBAcmV0dXJuIDogQW1vdW50IG9mIG92ZXJsYXBwaW5nICgwID0+IG5vIG92ZXJsYXApXG4gKi9cbnZhciBub2Rlc092ZXJsYXAgPSBmdW5jdGlvbiBub2Rlc092ZXJsYXAobm9kZTEsIG5vZGUyLCBkWCwgZFkpIHtcbiAgaWYgKGRYID4gMCkge1xuICAgIHZhciBvdmVybGFwWCA9IG5vZGUxLm1heFggLSBub2RlMi5taW5YO1xuICB9IGVsc2Uge1xuICAgIHZhciBvdmVybGFwWCA9IG5vZGUyLm1heFggLSBub2RlMS5taW5YO1xuICB9XG4gIGlmIChkWSA+IDApIHtcbiAgICB2YXIgb3ZlcmxhcFkgPSBub2RlMS5tYXhZIC0gbm9kZTIubWluWTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgb3ZlcmxhcFkgPSBub2RlMi5tYXhZIC0gbm9kZTEubWluWTtcbiAgfVxuICBpZiAob3ZlcmxhcFggPj0gMCAmJiBvdmVybGFwWSA+PSAwKSB7XG4gICAgcmV0dXJuIE1hdGguc3FydChvdmVybGFwWCAqIG92ZXJsYXBYICsgb3ZlcmxhcFkgKiBvdmVybGFwWSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbn07XG5cbi8qKlxuICogQGJyaWVmIDogRmluZHMgdGhlIHBvaW50IGluIHdoaWNoIGFuIGVkZ2UgKGRpcmVjdGlvbiBkWCwgZFkpIGludGVyc2VjdHNcbiAqICAgICAgICAgIHRoZSByZWN0YW5ndWxhciBib3VuZGluZyBib3ggb2YgaXQncyBzb3VyY2UvdGFyZ2V0IG5vZGVcbiAqL1xudmFyIGZpbmRDbGlwcGluZ1BvaW50ID0gZnVuY3Rpb24gZmluZENsaXBwaW5nUG9pbnQobm9kZSwgZFgsIGRZKSB7XG4gIC8vIFNob3JjdXRzXG4gIHZhciBYID0gbm9kZS5wb3NpdGlvblg7XG4gIHZhciBZID0gbm9kZS5wb3NpdGlvblk7XG4gIHZhciBIID0gbm9kZS5oZWlnaHQgfHwgMTtcbiAgdmFyIFcgPSBub2RlLndpZHRoIHx8IDE7XG4gIHZhciBkaXJTbG9wZSA9IGRZIC8gZFg7XG4gIHZhciBub2RlU2xvcGUgPSBIIC8gVztcblxuICAvLyB2YXIgcyA9ICdDb21wdXRpbmcgY2xpcHBpbmcgcG9pbnQgb2Ygbm9kZSAnICsgbm9kZS5pZCArXG4gIC8vICAgXCIgLiBIZWlnaHQ6ICBcIiArIEggKyBcIiwgV2lkdGg6IFwiICsgVyArXG4gIC8vICAgXCJcXG5EaXJlY3Rpb24gXCIgKyBkWCArIFwiLCBcIiArIGRZO1xuICAvL1xuICAvLyBDb21wdXRlIGludGVyc2VjdGlvblxuICB2YXIgcmVzID0ge307XG5cbiAgLy8gQ2FzZTogVmVydGljYWwgZGlyZWN0aW9uICh1cClcbiAgaWYgKDAgPT09IGRYICYmIDAgPCBkWSkge1xuICAgIHJlcy54ID0gWDtcbiAgICAvLyBzICs9IFwiXFxuVXAgZGlyZWN0aW9uXCI7XG4gICAgcmVzLnkgPSBZICsgSCAvIDI7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8vIENhc2U6IFZlcnRpY2FsIGRpcmVjdGlvbiAoZG93bilcbiAgaWYgKDAgPT09IGRYICYmIDAgPiBkWSkge1xuICAgIHJlcy54ID0gWDtcbiAgICByZXMueSA9IFkgKyBIIC8gMjtcbiAgICAvLyBzICs9IFwiXFxuRG93biBkaXJlY3Rpb25cIjtcblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvLyBDYXNlOiBJbnRlcnNlY3RzIHRoZSByaWdodCBib3JkZXJcbiAgaWYgKDAgPCBkWCAmJiAtMSAqIG5vZGVTbG9wZSA8PSBkaXJTbG9wZSAmJiBkaXJTbG9wZSA8PSBub2RlU2xvcGUpIHtcbiAgICByZXMueCA9IFggKyBXIC8gMjtcbiAgICByZXMueSA9IFkgKyBXICogZFkgLyAyIC8gZFg7XG4gICAgLy8gcyArPSBcIlxcblJpZ2h0Ym9yZGVyXCI7XG5cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLy8gQ2FzZTogSW50ZXJzZWN0cyB0aGUgbGVmdCBib3JkZXJcbiAgaWYgKDAgPiBkWCAmJiAtMSAqIG5vZGVTbG9wZSA8PSBkaXJTbG9wZSAmJiBkaXJTbG9wZSA8PSBub2RlU2xvcGUpIHtcbiAgICByZXMueCA9IFggLSBXIC8gMjtcbiAgICByZXMueSA9IFkgLSBXICogZFkgLyAyIC8gZFg7XG4gICAgLy8gcyArPSBcIlxcbkxlZnRib3JkZXJcIjtcblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvLyBDYXNlOiBJbnRlcnNlY3RzIHRoZSB0b3AgYm9yZGVyXG4gIGlmICgwIDwgZFkgJiYgKGRpclNsb3BlIDw9IC0xICogbm9kZVNsb3BlIHx8IGRpclNsb3BlID49IG5vZGVTbG9wZSkpIHtcbiAgICByZXMueCA9IFggKyBIICogZFggLyAyIC8gZFk7XG4gICAgcmVzLnkgPSBZICsgSCAvIDI7XG4gICAgLy8gcyArPSBcIlxcblRvcCBib3JkZXJcIjtcblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvLyBDYXNlOiBJbnRlcnNlY3RzIHRoZSBib3R0b20gYm9yZGVyXG4gIGlmICgwID4gZFkgJiYgKGRpclNsb3BlIDw9IC0xICogbm9kZVNsb3BlIHx8IGRpclNsb3BlID49IG5vZGVTbG9wZSkpIHtcbiAgICByZXMueCA9IFggLSBIICogZFggLyAyIC8gZFk7XG4gICAgcmVzLnkgPSBZIC0gSCAvIDI7XG4gICAgLy8gcyArPSBcIlxcbkJvdHRvbSBib3JkZXJcIjtcblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvLyBzICs9IFwiXFxuQ2xpcHBpbmcgcG9pbnQgZm91bmQgYXQgXCIgKyByZXMueCArIFwiLCBcIiArIHJlcy55O1xuICAvLyBsb2dEZWJ1ZyhzKTtcbiAgcmV0dXJuIHJlcztcbn07XG5cbi8qKlxuICogQGJyaWVmIDogQ2FsY3VsYXRlcyBhbGwgZWRnZSBmb3JjZXNcbiAqL1xudmFyIGNhbGN1bGF0ZUVkZ2VGb3JjZXMgPSBmdW5jdGlvbiBjYWxjdWxhdGVFZGdlRm9yY2VzKGxheW91dEluZm8sIG9wdGlvbnMpIHtcbiAgLy8gSXRlcmF0ZSBvdmVyIGFsbCBlZGdlc1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxheW91dEluZm8uZWRnZVNpemU7IGkrKykge1xuICAgIC8vIEdldCBlZGdlLCBzb3VyY2UgJiB0YXJnZXQgbm9kZXNcbiAgICB2YXIgZWRnZSA9IGxheW91dEluZm8ubGF5b3V0RWRnZXNbaV07XG4gICAgdmFyIHNvdXJjZUl4ID0gbGF5b3V0SW5mby5pZFRvSW5kZXhbZWRnZS5zb3VyY2VJZF07XG4gICAgdmFyIHNvdXJjZSA9IGxheW91dEluZm8ubGF5b3V0Tm9kZXNbc291cmNlSXhdO1xuICAgIHZhciB0YXJnZXRJeCA9IGxheW91dEluZm8uaWRUb0luZGV4W2VkZ2UudGFyZ2V0SWRdO1xuICAgIHZhciB0YXJnZXQgPSBsYXlvdXRJbmZvLmxheW91dE5vZGVzW3RhcmdldEl4XTtcblxuICAgIC8vIEdldCBkaXJlY3Rpb24gb2YgbGluZSBjb25uZWN0aW5nIGJvdGggbm9kZSBjZW50ZXJzXG4gICAgdmFyIGRpcmVjdGlvblggPSB0YXJnZXQucG9zaXRpb25YIC0gc291cmNlLnBvc2l0aW9uWDtcbiAgICB2YXIgZGlyZWN0aW9uWSA9IHRhcmdldC5wb3NpdGlvblkgLSBzb3VyY2UucG9zaXRpb25ZO1xuXG4gICAgLy8gSWYgYm90aCBjZW50ZXJzIGFyZSB0aGUgc2FtZSwgZG8gbm90aGluZy5cbiAgICAvLyBBIHJhbmRvbSBmb3JjZSBoYXMgYWxyZWFkeSBiZWVuIGFwcGxpZWQgYXMgbm9kZSByZXB1bHNpb25cbiAgICBpZiAoMCA9PT0gZGlyZWN0aW9uWCAmJiAwID09PSBkaXJlY3Rpb25ZKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBHZXQgY2xpcHBpbmcgcG9pbnRzIGZvciBib3RoIG5vZGVzXG4gICAgdmFyIHBvaW50MSA9IGZpbmRDbGlwcGluZ1BvaW50KHNvdXJjZSwgZGlyZWN0aW9uWCwgZGlyZWN0aW9uWSk7XG4gICAgdmFyIHBvaW50MiA9IGZpbmRDbGlwcGluZ1BvaW50KHRhcmdldCwgLTEgKiBkaXJlY3Rpb25YLCAtMSAqIGRpcmVjdGlvblkpO1xuICAgIHZhciBseCA9IHBvaW50Mi54IC0gcG9pbnQxLng7XG4gICAgdmFyIGx5ID0gcG9pbnQyLnkgLSBwb2ludDEueTtcbiAgICB2YXIgbCA9IE1hdGguc3FydChseCAqIGx4ICsgbHkgKiBseSk7XG4gICAgdmFyIGZvcmNlID0gTWF0aC5wb3coZWRnZS5pZGVhbExlbmd0aCAtIGwsIDIpIC8gZWRnZS5lbGFzdGljaXR5O1xuICAgIGlmICgwICE9PSBsKSB7XG4gICAgICB2YXIgZm9yY2VYID0gZm9yY2UgKiBseCAvIGw7XG4gICAgICB2YXIgZm9yY2VZID0gZm9yY2UgKiBseSAvIGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBmb3JjZVggPSAwO1xuICAgICAgdmFyIGZvcmNlWSA9IDA7XG4gICAgfVxuXG4gICAgLy8gQWRkIHRoaXMgZm9yY2UgdG8gdGFyZ2V0IGFuZCBzb3VyY2Ugbm9kZXNcbiAgICBpZiAoIXNvdXJjZS5pc0xvY2tlZCkge1xuICAgICAgc291cmNlLm9mZnNldFggKz0gZm9yY2VYO1xuICAgICAgc291cmNlLm9mZnNldFkgKz0gZm9yY2VZO1xuICAgIH1cbiAgICBpZiAoIXRhcmdldC5pc0xvY2tlZCkge1xuICAgICAgdGFyZ2V0Lm9mZnNldFggLT0gZm9yY2VYO1xuICAgICAgdGFyZ2V0Lm9mZnNldFkgLT0gZm9yY2VZO1xuICAgIH1cblxuICAgIC8vIHZhciBzID0gJ0VkZ2UgZm9yY2UgYmV0d2VlbiBub2RlcyAnICsgc291cmNlLmlkICsgJyBhbmQgJyArIHRhcmdldC5pZDtcbiAgICAvLyBzICs9IFwiXFxuRGlzdGFuY2U6IFwiICsgbCArIFwiIEZvcmNlOiAoXCIgKyBmb3JjZVggKyBcIiwgXCIgKyBmb3JjZVkgKyBcIilcIjtcbiAgICAvLyBsb2dEZWJ1ZyhzKTtcbiAgfVxufTtcblxuLyoqXG4gKiBAYnJpZWYgOiBDb21wdXRlcyBncmF2aXR5IGZvcmNlcyBmb3IgYWxsIG5vZGVzXG4gKi9cbnZhciBjYWxjdWxhdGVHcmF2aXR5Rm9yY2VzID0gZnVuY3Rpb24gY2FsY3VsYXRlR3Jhdml0eUZvcmNlcyhsYXlvdXRJbmZvLCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zLmdyYXZpdHkgPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIGRpc3RUaHJlc2hvbGQgPSAxO1xuXG4gIC8vIHZhciBzID0gJ2NhbGN1bGF0ZUdyYXZpdHlGb3JjZXMnO1xuICAvLyBsb2dEZWJ1ZyhzKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYXlvdXRJbmZvLmdyYXBoU2V0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGdyYXBoID0gbGF5b3V0SW5mby5ncmFwaFNldFtpXTtcbiAgICB2YXIgbnVtTm9kZXMgPSBncmFwaC5sZW5ndGg7XG5cbiAgICAvLyBzID0gXCJTZXQ6IFwiICsgZ3JhcGgudG9TdHJpbmcoKTtcbiAgICAvLyBsb2dEZWJ1ZyhzKTtcblxuICAgIC8vIENvbXB1dGUgZ3JhcGggY2VudGVyXG4gICAgaWYgKDAgPT09IGkpIHtcbiAgICAgIHZhciBjZW50ZXJYID0gbGF5b3V0SW5mby5jbGllbnRIZWlnaHQgLyAyO1xuICAgICAgdmFyIGNlbnRlclkgPSBsYXlvdXRJbmZvLmNsaWVudFdpZHRoIC8gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gR2V0IFBhcmVudCBub2RlIGZvciB0aGlzIGdyYXBoLCBhbmQgdXNlIGl0cyBwb3NpdGlvbiBhcyBjZW50ZXJcbiAgICAgIHZhciB0ZW1wID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1tsYXlvdXRJbmZvLmlkVG9JbmRleFtncmFwaFswXV1dO1xuICAgICAgdmFyIHBhcmVudCA9IGxheW91dEluZm8ubGF5b3V0Tm9kZXNbbGF5b3V0SW5mby5pZFRvSW5kZXhbdGVtcC5wYXJlbnRJZF1dO1xuICAgICAgdmFyIGNlbnRlclggPSBwYXJlbnQucG9zaXRpb25YO1xuICAgICAgdmFyIGNlbnRlclkgPSBwYXJlbnQucG9zaXRpb25ZO1xuICAgIH1cbiAgICAvLyBzID0gXCJDZW50ZXIgZm91bmQgYXQ6IFwiICsgY2VudGVyWCArIFwiLCBcIiArIGNlbnRlclk7XG4gICAgLy8gbG9nRGVidWcocyk7XG5cbiAgICAvLyBBcHBseSBmb3JjZSB0byBhbGwgbm9kZXMgaW4gZ3JhcGhcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IG51bU5vZGVzOyBqKyspIHtcbiAgICAgIHZhciBub2RlID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1tsYXlvdXRJbmZvLmlkVG9JbmRleFtncmFwaFtqXV1dO1xuICAgICAgLy8gcyA9IFwiTm9kZTogXCIgKyBub2RlLmlkO1xuXG4gICAgICBpZiAobm9kZS5pc0xvY2tlZCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciBkeCA9IGNlbnRlclggLSBub2RlLnBvc2l0aW9uWDtcbiAgICAgIHZhciBkeSA9IGNlbnRlclkgLSBub2RlLnBvc2l0aW9uWTtcbiAgICAgIHZhciBkID0gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KTtcbiAgICAgIGlmIChkID4gZGlzdFRocmVzaG9sZCkge1xuICAgICAgICB2YXIgZnggPSBvcHRpb25zLmdyYXZpdHkgKiBkeCAvIGQ7XG4gICAgICAgIHZhciBmeSA9IG9wdGlvbnMuZ3Jhdml0eSAqIGR5IC8gZDtcbiAgICAgICAgbm9kZS5vZmZzZXRYICs9IGZ4O1xuICAgICAgICBub2RlLm9mZnNldFkgKz0gZnk7XG4gICAgICAgIC8vIHMgKz0gXCI6IEFwcGxpZWQgZm9yY2U6IFwiICsgZnggKyBcIiwgXCIgKyBmeTtcbiAgICAgIH1cbiAgICAgIC8vIGxvZ0RlYnVnKHMpO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBAYnJpZWYgICAgICAgICAgOiBUaGlzIGZ1bmN0aW9uIHByb3BhZ2F0ZXMgdGhlIGV4aXN0aW5nIG9mZnNldHMgZnJvbVxuICogICAgICAgICAgICAgICAgICAgcGFyZW50IG5vZGVzIHRvIGl0cyBkZXNjZW5kZW50cy5cbiAqIEBhcmcgbGF5b3V0SW5mbyA6IGxheW91dEluZm8gT2JqZWN0XG4gKiBAYXJnIGN5ICAgICAgICAgOiBjeXRvc2NhcGUgT2JqZWN0XG4gKiBAYXJnIG9wdGlvbnMgICAgOiBMYXlvdXQgb3B0aW9uc1xuICovXG52YXIgcHJvcGFnYXRlRm9yY2VzID0gZnVuY3Rpb24gcHJvcGFnYXRlRm9yY2VzKGxheW91dEluZm8sIG9wdGlvbnMpIHtcbiAgLy8gSW5saW5lIGltcGxlbWVudGF0aW9uIG9mIGEgcXVldWUsIHVzZWQgZm9yIHRyYXZlcnNpbmcgdGhlIGdyYXBoIGluIEJGUyBvcmRlclxuICB2YXIgcXVldWUgPSBbXTtcbiAgdmFyIHN0YXJ0ID0gMDsgLy8gUG9pbnRzIHRvIHRoZSBzdGFydCB0aGUgcXVldWVcbiAgdmFyIGVuZCA9IC0xOyAvLyBQb2ludHMgdG8gdGhlIGVuZCBvZiB0aGUgcXVldWVcblxuICAvLyBsb2dEZWJ1ZygncHJvcGFnYXRlRm9yY2VzJyk7XG5cbiAgLy8gU3RhcnQgYnkgdmlzaXRpbmcgdGhlIG5vZGVzIGluIHRoZSByb290IGdyYXBoXG4gIHF1ZXVlLnB1c2guYXBwbHkocXVldWUsIGxheW91dEluZm8uZ3JhcGhTZXRbMF0pO1xuICBlbmQgKz0gbGF5b3V0SW5mby5ncmFwaFNldFswXS5sZW5ndGg7XG5cbiAgLy8gVHJhdmVyc2UgdGhlIGdyYXBoLCBsZXZlbCBieSBsZXZlbCxcbiAgd2hpbGUgKHN0YXJ0IDw9IGVuZCkge1xuICAgIC8vIEdldCB0aGUgbm9kZSB0byB2aXNpdCBhbmQgcmVtb3ZlIGl0IGZyb20gcXVldWVcbiAgICB2YXIgbm9kZUlkID0gcXVldWVbc3RhcnQrK107XG4gICAgdmFyIG5vZGVJbmRleCA9IGxheW91dEluZm8uaWRUb0luZGV4W25vZGVJZF07XG4gICAgdmFyIG5vZGUgPSBsYXlvdXRJbmZvLmxheW91dE5vZGVzW25vZGVJbmRleF07XG4gICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjtcblxuICAgIC8vIFdlIG9ubHkgbmVlZCB0byBwcm9jZXNzIHRoZSBub2RlIGlmIGl0J3MgY29tcG91bmRcbiAgICBpZiAoMCA8IGNoaWxkcmVuLmxlbmd0aCAmJiAhbm9kZS5pc0xvY2tlZCkge1xuICAgICAgdmFyIG9mZlggPSBub2RlLm9mZnNldFg7XG4gICAgICB2YXIgb2ZmWSA9IG5vZGUub2Zmc2V0WTtcblxuICAgICAgLy8gdmFyIHMgPSBcIlByb3BhZ2F0aW5nIG9mZnNldCBmcm9tIHBhcmVudCBub2RlIDogXCIgKyBub2RlLmlkICtcbiAgICAgIC8vICAgXCIuIE9mZnNldFg6IFwiICsgb2ZmWCArIFwiLiBPZmZzZXRZOiBcIiArIG9mZlk7XG4gICAgICAvLyBzICs9IFwiXFxuIENoaWxkcmVuOiBcIiArIGNoaWxkcmVuLnRvU3RyaW5nKCk7XG4gICAgICAvLyBsb2dEZWJ1ZyhzKTtcblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hpbGROb2RlID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1tsYXlvdXRJbmZvLmlkVG9JbmRleFtjaGlsZHJlbltpXV1dO1xuICAgICAgICAvLyBQcm9wYWdhdGUgb2Zmc2V0XG4gICAgICAgIGNoaWxkTm9kZS5vZmZzZXRYICs9IG9mZlg7XG4gICAgICAgIGNoaWxkTm9kZS5vZmZzZXRZICs9IG9mZlk7XG4gICAgICAgIC8vIEFkZCBjaGlsZHJlbiB0byBxdWV1ZSB0byBiZSB2aXNpdGVkXG4gICAgICAgIHF1ZXVlWysrZW5kXSA9IGNoaWxkcmVuW2ldO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXNldCBwYXJlbnQgb2Zmc2V0c1xuICAgICAgbm9kZS5vZmZzZXRYID0gMDtcbiAgICAgIG5vZGUub2Zmc2V0WSA9IDA7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIEBicmllZiA6IFVwZGF0ZXMgdGhlIGxheW91dCBtb2RlbCBwb3NpdGlvbnMsIGJhc2VkIG9uXG4gKiAgICAgICAgICB0aGUgYWNjdW11bGF0ZWQgZm9yY2VzXG4gKi9cbnZhciB1cGRhdGVQb3NpdGlvbnMgPSBmdW5jdGlvbiB1cGRhdGVQb3NpdGlvbnMobGF5b3V0SW5mbywgb3B0aW9ucykge1xuICAvLyB2YXIgcyA9ICdVcGRhdGluZyBwb3NpdGlvbnMnO1xuICAvLyBsb2dEZWJ1ZyhzKTtcblxuICAvLyBSZXNldCBib3VuZGFyaWVzIGZvciBjb21wb3VuZCBub2Rlc1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxheW91dEluZm8ubm9kZVNpemU7IGkrKykge1xuICAgIHZhciBuID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1tpXTtcbiAgICBpZiAoMCA8IG4uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAvLyBsb2dEZWJ1ZyhcIlJlc2V0dGluZyBib3VuZGFyaWVzIG9mIGNvbXBvdW5kIG5vZGU6IFwiICsgbi5pZCk7XG4gICAgICBuLm1heFggPSB1bmRlZmluZWQ7XG4gICAgICBuLm1pblggPSB1bmRlZmluZWQ7XG4gICAgICBuLm1heFkgPSB1bmRlZmluZWQ7XG4gICAgICBuLm1pblkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGF5b3V0SW5mby5ub2RlU2l6ZTsgaSsrKSB7XG4gICAgdmFyIG4gPSBsYXlvdXRJbmZvLmxheW91dE5vZGVzW2ldO1xuICAgIGlmICgwIDwgbi5jaGlsZHJlbi5sZW5ndGggfHwgbi5pc0xvY2tlZCkge1xuICAgICAgLy8gTm8gbmVlZCB0byBzZXQgY29tcG91bmQgb3IgbG9ja2VkIG5vZGUgcG9zaXRpb25cbiAgICAgIC8vIGxvZ0RlYnVnKFwiU2tpcHBpbmcgcG9zaXRpb24gdXBkYXRlIG9mIG5vZGU6IFwiICsgbi5pZCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgLy8gcyA9IFwiTm9kZTogXCIgKyBuLmlkICsgXCIgUHJldmlvdXMgcG9zaXRpb246IChcIiArXG4gICAgLy8gbi5wb3NpdGlvblggKyBcIiwgXCIgKyBuLnBvc2l0aW9uWSArIFwiKS5cIjtcblxuICAgIC8vIExpbWl0IGRpc3BsYWNlbWVudCBpbiBvcmRlciB0byBpbXByb3ZlIHN0YWJpbGl0eVxuICAgIHZhciB0ZW1wRm9yY2UgPSBsaW1pdEZvcmNlKG4ub2Zmc2V0WCwgbi5vZmZzZXRZLCBsYXlvdXRJbmZvLnRlbXBlcmF0dXJlKTtcbiAgICBuLnBvc2l0aW9uWCArPSB0ZW1wRm9yY2UueDtcbiAgICBuLnBvc2l0aW9uWSArPSB0ZW1wRm9yY2UueTtcbiAgICBuLm9mZnNldFggPSAwO1xuICAgIG4ub2Zmc2V0WSA9IDA7XG4gICAgbi5taW5YID0gbi5wb3NpdGlvblggLSBuLndpZHRoO1xuICAgIG4ubWF4WCA9IG4ucG9zaXRpb25YICsgbi53aWR0aDtcbiAgICBuLm1pblkgPSBuLnBvc2l0aW9uWSAtIG4uaGVpZ2h0O1xuICAgIG4ubWF4WSA9IG4ucG9zaXRpb25ZICsgbi5oZWlnaHQ7XG4gICAgLy8gcyArPSBcIiBOZXcgUG9zaXRpb246IChcIiArIG4ucG9zaXRpb25YICsgXCIsIFwiICsgbi5wb3NpdGlvblkgKyBcIikuXCI7XG4gICAgLy8gbG9nRGVidWcocyk7XG5cbiAgICAvLyBVcGRhdGUgYW5jZXN0cnkgYm91ZGFyaWVzXG4gICAgdXBkYXRlQW5jZXN0cnlCb3VuZGFyaWVzKG4sIGxheW91dEluZm8pO1xuICB9XG5cbiAgLy8gVXBkYXRlIHNpemUsIHBvc2l0aW9uIG9mIGNvbXB1bmQgbm9kZXNcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYXlvdXRJbmZvLm5vZGVTaXplOyBpKyspIHtcbiAgICB2YXIgbiA9IGxheW91dEluZm8ubGF5b3V0Tm9kZXNbaV07XG4gICAgaWYgKDAgPCBuLmNoaWxkcmVuLmxlbmd0aCAmJiAhbi5pc0xvY2tlZCkge1xuICAgICAgbi5wb3NpdGlvblggPSAobi5tYXhYICsgbi5taW5YKSAvIDI7XG4gICAgICBuLnBvc2l0aW9uWSA9IChuLm1heFkgKyBuLm1pblkpIC8gMjtcbiAgICAgIG4ud2lkdGggPSBuLm1heFggLSBuLm1pblg7XG4gICAgICBuLmhlaWdodCA9IG4ubWF4WSAtIG4ubWluWTtcbiAgICAgIC8vIHMgPSBcIlVwZGF0aW5nIHBvc2l0aW9uLCBzaXplIG9mIGNvbXBvdW5kIG5vZGUgXCIgKyBuLmlkO1xuICAgICAgLy8gcyArPSBcIlxcblBvc2l0aW9uWDogXCIgKyBuLnBvc2l0aW9uWCArIFwiLCBQb3NpdGlvblk6IFwiICsgbi5wb3NpdGlvblk7XG4gICAgICAvLyBzICs9IFwiXFxuV2lkdGg6IFwiICsgbi53aWR0aCArIFwiLCBIZWlnaHQ6IFwiICsgbi5oZWlnaHQ7XG4gICAgICAvLyBsb2dEZWJ1ZyhzKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogQGJyaWVmIDogTGltaXRzIGEgZm9yY2UgKGZvcmNlWCwgZm9yY2VZKSB0byBiZSBub3RcbiAqICAgICAgICAgIGdyZWF0ZXIgKGluIG1vZHVsbykgdGhhbiBtYXguXG4gOCAgICAgICAgICBQcmVzZXJ2ZXMgZm9yY2UgZGlyZWN0aW9uLlxuICAqL1xudmFyIGxpbWl0Rm9yY2UgPSBmdW5jdGlvbiBsaW1pdEZvcmNlKGZvcmNlWCwgZm9yY2VZLCBtYXgpIHtcbiAgLy8gdmFyIHMgPSBcIkxpbWl0aW5nIGZvcmNlOiAoXCIgKyBmb3JjZVggKyBcIiwgXCIgKyBmb3JjZVkgKyBcIikuIE1heDogXCIgKyBtYXg7XG4gIHZhciBmb3JjZSA9IE1hdGguc3FydChmb3JjZVggKiBmb3JjZVggKyBmb3JjZVkgKiBmb3JjZVkpO1xuICBpZiAoZm9yY2UgPiBtYXgpIHtcbiAgICB2YXIgcmVzID0ge1xuICAgICAgeDogbWF4ICogZm9yY2VYIC8gZm9yY2UsXG4gICAgICB5OiBtYXggKiBmb3JjZVkgLyBmb3JjZVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdmFyIHJlcyA9IHtcbiAgICAgIHg6IGZvcmNlWCxcbiAgICAgIHk6IGZvcmNlWVxuICAgIH07XG4gIH1cblxuICAvLyBzICs9IFwiLlxcblJlc3VsdDogKFwiICsgcmVzLnggKyBcIiwgXCIgKyByZXMueSArIFwiKVwiO1xuICAvLyBsb2dEZWJ1ZyhzKTtcblxuICByZXR1cm4gcmVzO1xufTtcblxuLyoqXG4gKiBAYnJpZWYgOiBGdW5jdGlvbiB1c2VkIGZvciBrZWVwaW5nIHRyYWNrIG9mIGNvbXBvdW5kIG5vZGVcbiAqICAgICAgICAgIHNpemVzLCBzaW5jZSB0aGV5IHNob3VsZCBib3VuZCBhbGwgdGhlaXIgc3Vibm9kZXMuXG4gKi9cbnZhciB1cGRhdGVBbmNlc3RyeUJvdW5kYXJpZXMgPSBmdW5jdGlvbiB1cGRhdGVBbmNlc3RyeUJvdW5kYXJpZXMobm9kZSwgbGF5b3V0SW5mbykge1xuICAvLyB2YXIgcyA9IFwiUHJvcGFnYXRpbmcgbmV3IHBvc2l0aW9uL3NpemUgb2Ygbm9kZSBcIiArIG5vZGUuaWQ7XG4gIHZhciBwYXJlbnRJZCA9IG5vZGUucGFyZW50SWQ7XG4gIGlmIChudWxsID09IHBhcmVudElkKSB7XG4gICAgLy8gSWYgdGhlcmUncyBubyBwYXJlbnQsIHdlIGFyZSBkb25lXG4gICAgLy8gcyArPSBcIi4gTm8gcGFyZW50IG5vZGUuXCI7XG4gICAgLy8gbG9nRGVidWcocyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gR2V0IFBhcmVudCBOb2RlXG4gIHZhciBwID0gbGF5b3V0SW5mby5sYXlvdXROb2Rlc1tsYXlvdXRJbmZvLmlkVG9JbmRleFtwYXJlbnRJZF1dO1xuICB2YXIgZmxhZyA9IGZhbHNlO1xuXG4gIC8vIE1heFhcbiAgaWYgKG51bGwgPT0gcC5tYXhYIHx8IG5vZGUubWF4WCArIHAucGFkUmlnaHQgPiBwLm1heFgpIHtcbiAgICBwLm1heFggPSBub2RlLm1heFggKyBwLnBhZFJpZ2h0O1xuICAgIGZsYWcgPSB0cnVlO1xuICAgIC8vIHMgKz0gXCJcXG5OZXcgbWF4WCBmb3IgcGFyZW50IG5vZGUgXCIgKyBwLmlkICsgXCI6IFwiICsgcC5tYXhYO1xuICB9XG5cbiAgLy8gTWluWFxuICBpZiAobnVsbCA9PSBwLm1pblggfHwgbm9kZS5taW5YIC0gcC5wYWRMZWZ0IDwgcC5taW5YKSB7XG4gICAgcC5taW5YID0gbm9kZS5taW5YIC0gcC5wYWRMZWZ0O1xuICAgIGZsYWcgPSB0cnVlO1xuICAgIC8vIHMgKz0gXCJcXG5OZXcgbWluWCBmb3IgcGFyZW50IG5vZGUgXCIgKyBwLmlkICsgXCI6IFwiICsgcC5taW5YO1xuICB9XG5cbiAgLy8gTWF4WVxuICBpZiAobnVsbCA9PSBwLm1heFkgfHwgbm9kZS5tYXhZICsgcC5wYWRCb3R0b20gPiBwLm1heFkpIHtcbiAgICBwLm1heFkgPSBub2RlLm1heFkgKyBwLnBhZEJvdHRvbTtcbiAgICBmbGFnID0gdHJ1ZTtcbiAgICAvLyBzICs9IFwiXFxuTmV3IG1heFkgZm9yIHBhcmVudCBub2RlIFwiICsgcC5pZCArIFwiOiBcIiArIHAubWF4WTtcbiAgfVxuXG4gIC8vIE1pbllcbiAgaWYgKG51bGwgPT0gcC5taW5ZIHx8IG5vZGUubWluWSAtIHAucGFkVG9wIDwgcC5taW5ZKSB7XG4gICAgcC5taW5ZID0gbm9kZS5taW5ZIC0gcC5wYWRUb3A7XG4gICAgZmxhZyA9IHRydWU7XG4gICAgLy8gcyArPSBcIlxcbk5ldyBtaW5ZIGZvciBwYXJlbnQgbm9kZSBcIiArIHAuaWQgKyBcIjogXCIgKyBwLm1pblk7XG4gIH1cblxuICAvLyBJZiB1cGRhdGVkIGJvdW5kYXJpZXMsIHByb3BhZ2F0ZSBjaGFuZ2VzIHVwd2FyZFxuICBpZiAoZmxhZykge1xuICAgIC8vIGxvZ0RlYnVnKHMpO1xuICAgIHJldHVybiB1cGRhdGVBbmNlc3RyeUJvdW5kYXJpZXMocCwgbGF5b3V0SW5mbyk7XG4gIH1cblxuICAvLyBzICs9IFwiLiBObyBjaGFuZ2VzIGluIGJvdW5kYXJpZXMvcG9zaXRpb24gb2YgcGFyZW50IG5vZGUgXCIgKyBwLmlkO1xuICAvLyBsb2dEZWJ1ZyhzKTtcbiAgcmV0dXJuO1xufTtcbnZhciBzZXBhcmF0ZUNvbXBvbmVudHMgPSBmdW5jdGlvbiBzZXBhcmF0ZUNvbXBvbmVudHMobGF5b3V0SW5mbywgb3B0aW9ucykge1xuICB2YXIgbm9kZXMgPSBsYXlvdXRJbmZvLmxheW91dE5vZGVzO1xuICB2YXIgY29tcG9uZW50cyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG5vZGUgPSBub2Rlc1tpXTtcbiAgICB2YXIgY2lkID0gbm9kZS5jbXB0SWQ7XG4gICAgdmFyIGNvbXBvbmVudCA9IGNvbXBvbmVudHNbY2lkXSA9IGNvbXBvbmVudHNbY2lkXSB8fCBbXTtcbiAgICBjb21wb25lbnQucHVzaChub2RlKTtcbiAgfVxuICB2YXIgdG90YWxBID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wb25lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGMgPSBjb21wb25lbnRzW2ldO1xuICAgIGlmICghYykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGMueDEgPSBJbmZpbml0eTtcbiAgICBjLngyID0gLUluZmluaXR5O1xuICAgIGMueTEgPSBJbmZpbml0eTtcbiAgICBjLnkyID0gLUluZmluaXR5O1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgYy5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIG4gPSBjW2pdO1xuICAgICAgYy54MSA9IE1hdGgubWluKGMueDEsIG4ucG9zaXRpb25YIC0gbi53aWR0aCAvIDIpO1xuICAgICAgYy54MiA9IE1hdGgubWF4KGMueDIsIG4ucG9zaXRpb25YICsgbi53aWR0aCAvIDIpO1xuICAgICAgYy55MSA9IE1hdGgubWluKGMueTEsIG4ucG9zaXRpb25ZIC0gbi5oZWlnaHQgLyAyKTtcbiAgICAgIGMueTIgPSBNYXRoLm1heChjLnkyLCBuLnBvc2l0aW9uWSArIG4uaGVpZ2h0IC8gMik7XG4gICAgfVxuICAgIGMudyA9IGMueDIgLSBjLngxO1xuICAgIGMuaCA9IGMueTIgLSBjLnkxO1xuICAgIHRvdGFsQSArPSBjLncgKiBjLmg7XG4gIH1cbiAgY29tcG9uZW50cy5zb3J0KGZ1bmN0aW9uIChjMSwgYzIpIHtcbiAgICByZXR1cm4gYzIudyAqIGMyLmggLSBjMS53ICogYzEuaDtcbiAgfSk7XG4gIHZhciB4ID0gMDtcbiAgdmFyIHkgPSAwO1xuICB2YXIgdXNlZFcgPSAwO1xuICB2YXIgcm93SCA9IDA7XG4gIHZhciBtYXhSb3dXID0gTWF0aC5zcXJ0KHRvdGFsQSkgKiBsYXlvdXRJbmZvLmNsaWVudFdpZHRoIC8gbGF5b3V0SW5mby5jbGllbnRIZWlnaHQ7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcG9uZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBjID0gY29tcG9uZW50c1tpXTtcbiAgICBpZiAoIWMpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGMubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBuID0gY1tqXTtcbiAgICAgIGlmICghbi5pc0xvY2tlZCkge1xuICAgICAgICBuLnBvc2l0aW9uWCArPSB4IC0gYy54MTtcbiAgICAgICAgbi5wb3NpdGlvblkgKz0geSAtIGMueTE7XG4gICAgICB9XG4gICAgfVxuICAgIHggKz0gYy53ICsgb3B0aW9ucy5jb21wb25lbnRTcGFjaW5nO1xuICAgIHVzZWRXICs9IGMudyArIG9wdGlvbnMuY29tcG9uZW50U3BhY2luZztcbiAgICByb3dIID0gTWF0aC5tYXgocm93SCwgYy5oKTtcbiAgICBpZiAodXNlZFcgPiBtYXhSb3dXKSB7XG4gICAgICB5ICs9IHJvd0ggKyBvcHRpb25zLmNvbXBvbmVudFNwYWNpbmc7XG4gICAgICB4ID0gMDtcbiAgICAgIHVzZWRXID0gMDtcbiAgICAgIHJvd0ggPSAwO1xuICAgIH1cbiAgfVxufTtcblxudmFyIGRlZmF1bHRzJDMgPSB7XG4gIGZpdDogdHJ1ZSxcbiAgLy8gd2hldGhlciB0byBmaXQgdGhlIHZpZXdwb3J0IHRvIHRoZSBncmFwaFxuICBwYWRkaW5nOiAzMCxcbiAgLy8gcGFkZGluZyB1c2VkIG9uIGZpdFxuICBib3VuZGluZ0JveDogdW5kZWZpbmVkLFxuICAvLyBjb25zdHJhaW4gbGF5b3V0IGJvdW5kczsgeyB4MSwgeTEsIHgyLCB5MiB9IG9yIHsgeDEsIHkxLCB3LCBoIH1cbiAgYXZvaWRPdmVybGFwOiB0cnVlLFxuICAvLyBwcmV2ZW50cyBub2RlIG92ZXJsYXAsIG1heSBvdmVyZmxvdyBib3VuZGluZ0JveCBpZiBub3QgZW5vdWdoIHNwYWNlXG4gIGF2b2lkT3ZlcmxhcFBhZGRpbmc6IDEwLFxuICAvLyBleHRyYSBzcGFjaW5nIGFyb3VuZCBub2RlcyB3aGVuIGF2b2lkT3ZlcmxhcDogdHJ1ZVxuICBub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHM6IGZhbHNlLFxuICAvLyBFeGNsdWRlcyB0aGUgbGFiZWwgd2hlbiBjYWxjdWxhdGluZyBub2RlIGJvdW5kaW5nIGJveGVzIGZvciB0aGUgbGF5b3V0IGFsZ29yaXRobVxuICBzcGFjaW5nRmFjdG9yOiB1bmRlZmluZWQsXG4gIC8vIEFwcGxpZXMgYSBtdWx0aXBsaWNhdGl2ZSBmYWN0b3IgKD4wKSB0byBleHBhbmQgb3IgY29tcHJlc3MgdGhlIG92ZXJhbGwgYXJlYSB0aGF0IHRoZSBub2RlcyB0YWtlIHVwXG4gIGNvbmRlbnNlOiBmYWxzZSxcbiAgLy8gdXNlcyBhbGwgYXZhaWxhYmxlIHNwYWNlIG9uIGZhbHNlLCB1c2VzIG1pbmltYWwgc3BhY2Ugb24gdHJ1ZVxuICByb3dzOiB1bmRlZmluZWQsXG4gIC8vIGZvcmNlIG51bSBvZiByb3dzIGluIHRoZSBncmlkXG4gIGNvbHM6IHVuZGVmaW5lZCxcbiAgLy8gZm9yY2UgbnVtIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWRcbiAgcG9zaXRpb246IGZ1bmN0aW9uIHBvc2l0aW9uKG5vZGUpIHt9LFxuICAvLyByZXR1cm5zIHsgcm93LCBjb2wgfSBmb3IgZWxlbWVudFxuICBzb3J0OiB1bmRlZmluZWQsXG4gIC8vIGEgc29ydGluZyBmdW5jdGlvbiB0byBvcmRlciB0aGUgbm9kZXM7IGUuZy4gZnVuY3Rpb24oYSwgYil7IHJldHVybiBhLmRhdGEoJ3dlaWdodCcpIC0gYi5kYXRhKCd3ZWlnaHQnKSB9XG4gIGFuaW1hdGU6IGZhbHNlLFxuICAvLyB3aGV0aGVyIHRvIHRyYW5zaXRpb24gdGhlIG5vZGUgcG9zaXRpb25zXG4gIGFuaW1hdGlvbkR1cmF0aW9uOiA1MDAsXG4gIC8vIGR1cmF0aW9uIG9mIGFuaW1hdGlvbiBpbiBtcyBpZiBlbmFibGVkXG4gIGFuaW1hdGlvbkVhc2luZzogdW5kZWZpbmVkLFxuICAvLyBlYXNpbmcgb2YgYW5pbWF0aW9uIGlmIGVuYWJsZWRcbiAgYW5pbWF0ZUZpbHRlcjogZnVuY3Rpb24gYW5pbWF0ZUZpbHRlcihub2RlLCBpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIC8vIGEgZnVuY3Rpb24gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG5vZGUgc2hvdWxkIGJlIGFuaW1hdGVkLiAgQWxsIG5vZGVzIGFuaW1hdGVkIGJ5IGRlZmF1bHQgb24gYW5pbWF0ZSBlbmFibGVkLiAgTm9uLWFuaW1hdGVkIG5vZGVzIGFyZSBwb3NpdGlvbmVkIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGxheW91dCBzdGFydHNcbiAgcmVhZHk6IHVuZGVmaW5lZCxcbiAgLy8gY2FsbGJhY2sgb24gbGF5b3V0cmVhZHlcbiAgc3RvcDogdW5kZWZpbmVkLFxuICAvLyBjYWxsYmFjayBvbiBsYXlvdXRzdG9wXG4gIHRyYW5zZm9ybTogZnVuY3Rpb24gdHJhbnNmb3JtKG5vZGUsIHBvc2l0aW9uKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uO1xuICB9IC8vIHRyYW5zZm9ybSBhIGdpdmVuIG5vZGUgcG9zaXRpb24uIFVzZWZ1bCBmb3IgY2hhbmdpbmcgZmxvdyBkaXJlY3Rpb24gaW4gZGlzY3JldGUgbGF5b3V0cyBcbn07XG5cbmZ1bmN0aW9uIEdyaWRMYXlvdXQob3B0aW9ucykge1xuICB0aGlzLm9wdGlvbnMgPSBleHRlbmQoe30sIGRlZmF1bHRzJDMsIG9wdGlvbnMpO1xufVxuR3JpZExheW91dC5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkge1xuICB2YXIgcGFyYW1zID0gdGhpcy5vcHRpb25zO1xuICB2YXIgb3B0aW9ucyA9IHBhcmFtcztcbiAgdmFyIGN5ID0gcGFyYW1zLmN5O1xuICB2YXIgZWxlcyA9IG9wdGlvbnMuZWxlcztcbiAgdmFyIG5vZGVzID0gZWxlcy5ub2RlcygpLm5vdCgnOnBhcmVudCcpO1xuICBpZiAob3B0aW9ucy5zb3J0KSB7XG4gICAgbm9kZXMgPSBub2Rlcy5zb3J0KG9wdGlvbnMuc29ydCk7XG4gIH1cbiAgdmFyIGJiID0gbWFrZUJvdW5kaW5nQm94KG9wdGlvbnMuYm91bmRpbmdCb3ggPyBvcHRpb25zLmJvdW5kaW5nQm94IDoge1xuICAgIHgxOiAwLFxuICAgIHkxOiAwLFxuICAgIHc6IGN5LndpZHRoKCksXG4gICAgaDogY3kuaGVpZ2h0KClcbiAgfSk7XG4gIGlmIChiYi5oID09PSAwIHx8IGJiLncgPT09IDApIHtcbiAgICBlbGVzLm5vZGVzKCkubGF5b3V0UG9zaXRpb25zKHRoaXMsIG9wdGlvbnMsIGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IGJiLngxLFxuICAgICAgICB5OiBiYi55MVxuICAgICAgfTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICAvLyB3aWR0aC9oZWlnaHQgKiBzcGxpdHNeMiA9IGNlbGxzIHdoZXJlIHNwbGl0cyBpcyBudW1iZXIgb2YgdGltZXMgdG8gc3BsaXQgd2lkdGhcbiAgICB2YXIgY2VsbHMgPSBub2Rlcy5zaXplKCk7XG4gICAgdmFyIHNwbGl0cyA9IE1hdGguc3FydChjZWxscyAqIGJiLmggLyBiYi53KTtcbiAgICB2YXIgcm93cyA9IE1hdGgucm91bmQoc3BsaXRzKTtcbiAgICB2YXIgY29scyA9IE1hdGgucm91bmQoYmIudyAvIGJiLmggKiBzcGxpdHMpO1xuICAgIHZhciBzbWFsbCA9IGZ1bmN0aW9uIHNtYWxsKHZhbCkge1xuICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbihyb3dzLCBjb2xzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBtaW4gPSBNYXRoLm1pbihyb3dzLCBjb2xzKTtcbiAgICAgICAgaWYgKG1pbiA9PSByb3dzKSB7XG4gICAgICAgICAgcm93cyA9IHZhbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb2xzID0gdmFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgbGFyZ2UgPSBmdW5jdGlvbiBsYXJnZSh2YWwpIHtcbiAgICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gTWF0aC5tYXgocm93cywgY29scyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgbWF4ID0gTWF0aC5tYXgocm93cywgY29scyk7XG4gICAgICAgIGlmIChtYXggPT0gcm93cykge1xuICAgICAgICAgIHJvd3MgPSB2YWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29scyA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgdmFyIG9Sb3dzID0gb3B0aW9ucy5yb3dzO1xuICAgIHZhciBvQ29scyA9IG9wdGlvbnMuY29scyAhPSBudWxsID8gb3B0aW9ucy5jb2xzIDogb3B0aW9ucy5jb2x1bW5zO1xuXG4gICAgLy8gaWYgcm93cyBvciBjb2x1bW5zIHdlcmUgc2V0IGluIG9wdGlvbnMsIHVzZSB0aG9zZSB2YWx1ZXNcbiAgICBpZiAob1Jvd3MgIT0gbnVsbCAmJiBvQ29scyAhPSBudWxsKSB7XG4gICAgICByb3dzID0gb1Jvd3M7XG4gICAgICBjb2xzID0gb0NvbHM7XG4gICAgfSBlbHNlIGlmIChvUm93cyAhPSBudWxsICYmIG9Db2xzID09IG51bGwpIHtcbiAgICAgIHJvd3MgPSBvUm93cztcbiAgICAgIGNvbHMgPSBNYXRoLmNlaWwoY2VsbHMgLyByb3dzKTtcbiAgICB9IGVsc2UgaWYgKG9Sb3dzID09IG51bGwgJiYgb0NvbHMgIT0gbnVsbCkge1xuICAgICAgY29scyA9IG9Db2xzO1xuICAgICAgcm93cyA9IE1hdGguY2VpbChjZWxscyAvIGNvbHMpO1xuICAgIH1cblxuICAgIC8vIG90aGVyd2lzZSB1c2UgdGhlIGF1dG9tYXRpYyB2YWx1ZXMgYW5kIGFkanVzdCBhY2NvcmRpbmdseVxuXG4gICAgLy8gaWYgcm91bmRpbmcgd2FzIHVwLCBzZWUgaWYgd2UgY2FuIHJlZHVjZSByb3dzIG9yIGNvbHVtbnNcbiAgICBlbHNlIGlmIChjb2xzICogcm93cyA+IGNlbGxzKSB7XG4gICAgICB2YXIgc20gPSBzbWFsbCgpO1xuICAgICAgdmFyIGxnID0gbGFyZ2UoKTtcblxuICAgICAgLy8gcmVkdWNpbmcgdGhlIHNtYWxsIHNpZGUgdGFrZXMgYXdheSB0aGUgbW9zdCBjZWxscywgc28gdHJ5IGl0IGZpcnN0XG4gICAgICBpZiAoKHNtIC0gMSkgKiBsZyA+PSBjZWxscykge1xuICAgICAgICBzbWFsbChzbSAtIDEpO1xuICAgICAgfSBlbHNlIGlmICgobGcgLSAxKSAqIHNtID49IGNlbGxzKSB7XG4gICAgICAgIGxhcmdlKGxnIC0gMSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlmIHJvdW5kaW5nIHdhcyB0b28gbG93LCBhZGQgcm93cyBvciBjb2x1bW5zXG4gICAgICB3aGlsZSAoY29scyAqIHJvd3MgPCBjZWxscykge1xuICAgICAgICB2YXIgX3NtID0gc21hbGwoKTtcbiAgICAgICAgdmFyIF9sZyA9IGxhcmdlKCk7XG5cbiAgICAgICAgLy8gdHJ5IHRvIGFkZCB0byBsYXJnZXIgc2lkZSBmaXJzdCAoYWRkcyBsZXNzIGluIG11bHRpcGxpY2F0aW9uKVxuICAgICAgICBpZiAoKF9sZyArIDEpICogX3NtID49IGNlbGxzKSB7XG4gICAgICAgICAgbGFyZ2UoX2xnICsgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc21hbGwoX3NtICsgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGNlbGxXaWR0aCA9IGJiLncgLyBjb2xzO1xuICAgIHZhciBjZWxsSGVpZ2h0ID0gYmIuaCAvIHJvd3M7XG4gICAgaWYgKG9wdGlvbnMuY29uZGVuc2UpIHtcbiAgICAgIGNlbGxXaWR0aCA9IDA7XG4gICAgICBjZWxsSGVpZ2h0ID0gMDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuYXZvaWRPdmVybGFwKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBub2RlID0gbm9kZXNbaV07XG4gICAgICAgIHZhciBwb3MgPSBub2RlLl9wcml2YXRlLnBvc2l0aW9uO1xuICAgICAgICBpZiAocG9zLnggPT0gbnVsbCB8fCBwb3MueSA9PSBudWxsKSB7XG4gICAgICAgICAgLy8gZm9yIGJiXG4gICAgICAgICAgcG9zLnggPSAwO1xuICAgICAgICAgIHBvcy55ID0gMDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbmJiID0gbm9kZS5sYXlvdXREaW1lbnNpb25zKG9wdGlvbnMpO1xuICAgICAgICB2YXIgcCA9IG9wdGlvbnMuYXZvaWRPdmVybGFwUGFkZGluZztcbiAgICAgICAgdmFyIHcgPSBuYmIudyArIHA7XG4gICAgICAgIHZhciBoID0gbmJiLmggKyBwO1xuICAgICAgICBjZWxsV2lkdGggPSBNYXRoLm1heChjZWxsV2lkdGgsIHcpO1xuICAgICAgICBjZWxsSGVpZ2h0ID0gTWF0aC5tYXgoY2VsbEhlaWdodCwgaCk7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBjZWxsVXNlZCA9IHt9OyAvLyBlLmcuICdjLTAtMicgPT4gdHJ1ZVxuXG4gICAgdmFyIHVzZWQgPSBmdW5jdGlvbiB1c2VkKHJvdywgY29sKSB7XG4gICAgICByZXR1cm4gY2VsbFVzZWRbJ2MtJyArIHJvdyArICctJyArIGNvbF0gPyB0cnVlIDogZmFsc2U7XG4gICAgfTtcbiAgICB2YXIgdXNlID0gZnVuY3Rpb24gdXNlKHJvdywgY29sKSB7XG4gICAgICBjZWxsVXNlZFsnYy0nICsgcm93ICsgJy0nICsgY29sXSA9IHRydWU7XG4gICAgfTtcblxuICAgIC8vIHRvIGtlZXAgdHJhY2sgb2YgY3VycmVudCBjZWxsIHBvc2l0aW9uXG4gICAgdmFyIHJvdyA9IDA7XG4gICAgdmFyIGNvbCA9IDA7XG4gICAgdmFyIG1vdmVUb05leHRDZWxsID0gZnVuY3Rpb24gbW92ZVRvTmV4dENlbGwoKSB7XG4gICAgICBjb2wrKztcbiAgICAgIGlmIChjb2wgPj0gY29scykge1xuICAgICAgICBjb2wgPSAwO1xuICAgICAgICByb3crKztcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gZ2V0IGEgY2FjaGUgb2YgYWxsIHRoZSBtYW51YWwgcG9zaXRpb25zXG4gICAgdmFyIGlkMm1hblBvcyA9IHt9O1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBub2Rlcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfbm9kZSA9IG5vZGVzW19pXTtcbiAgICAgIHZhciByY1BvcyA9IG9wdGlvbnMucG9zaXRpb24oX25vZGUpO1xuICAgICAgaWYgKHJjUG9zICYmIChyY1Bvcy5yb3cgIT09IHVuZGVmaW5lZCB8fCByY1Bvcy5jb2wgIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgLy8gbXVzdCBoYXZlIGF0IGxlYXN0IHJvdyBvciBjb2wgZGVmJ2RcbiAgICAgICAgdmFyIF9wb3MgPSB7XG4gICAgICAgICAgcm93OiByY1Bvcy5yb3csXG4gICAgICAgICAgY29sOiByY1Bvcy5jb2xcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKF9wb3MuY29sID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBmaW5kIHVudXNlZCBjb2xcbiAgICAgICAgICBfcG9zLmNvbCA9IDA7XG4gICAgICAgICAgd2hpbGUgKHVzZWQoX3Bvcy5yb3csIF9wb3MuY29sKSkge1xuICAgICAgICAgICAgX3Bvcy5jb2wrKztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoX3Bvcy5yb3cgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIGZpbmQgdW51c2VkIHJvd1xuICAgICAgICAgIF9wb3Mucm93ID0gMDtcbiAgICAgICAgICB3aGlsZSAodXNlZChfcG9zLnJvdywgX3Bvcy5jb2wpKSB7XG4gICAgICAgICAgICBfcG9zLnJvdysrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZDJtYW5Qb3NbX25vZGUuaWQoKV0gPSBfcG9zO1xuICAgICAgICB1c2UoX3Bvcy5yb3csIF9wb3MuY29sKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGdldFBvcyA9IGZ1bmN0aW9uIGdldFBvcyhlbGVtZW50LCBpKSB7XG4gICAgICB2YXIgeCwgeTtcbiAgICAgIGlmIChlbGVtZW50LmxvY2tlZCgpIHx8IGVsZW1lbnQuaXNQYXJlbnQoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIHNlZSBpZiB3ZSBoYXZlIGEgbWFudWFsIHBvc2l0aW9uIHNldFxuICAgICAgdmFyIHJjUG9zID0gaWQybWFuUG9zW2VsZW1lbnQuaWQoKV07XG4gICAgICBpZiAocmNQb3MpIHtcbiAgICAgICAgeCA9IHJjUG9zLmNvbCAqIGNlbGxXaWR0aCArIGNlbGxXaWR0aCAvIDIgKyBiYi54MTtcbiAgICAgICAgeSA9IHJjUG9zLnJvdyAqIGNlbGxIZWlnaHQgKyBjZWxsSGVpZ2h0IC8gMiArIGJiLnkxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gb3RoZXJ3aXNlIHNldCBhdXRvbWF0aWNhbGx5XG5cbiAgICAgICAgd2hpbGUgKHVzZWQocm93LCBjb2wpKSB7XG4gICAgICAgICAgbW92ZVRvTmV4dENlbGwoKTtcbiAgICAgICAgfVxuICAgICAgICB4ID0gY29sICogY2VsbFdpZHRoICsgY2VsbFdpZHRoIC8gMiArIGJiLngxO1xuICAgICAgICB5ID0gcm93ICogY2VsbEhlaWdodCArIGNlbGxIZWlnaHQgLyAyICsgYmIueTE7XG4gICAgICAgIHVzZShyb3csIGNvbCk7XG4gICAgICAgIG1vdmVUb05leHRDZWxsKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB4OiB4LFxuICAgICAgICB5OiB5XG4gICAgICB9O1xuICAgIH07XG4gICAgbm9kZXMubGF5b3V0UG9zaXRpb25zKHRoaXMsIG9wdGlvbnMsIGdldFBvcyk7XG4gIH1cbiAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG59O1xuXG4vLyBkZWZhdWx0IGxheW91dCBvcHRpb25zXG52YXIgZGVmYXVsdHMkMiA9IHtcbiAgcmVhZHk6IGZ1bmN0aW9uIHJlYWR5KCkge30sXG4gIC8vIG9uIGxheW91dHJlYWR5XG4gIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7fSAvLyBvbiBsYXlvdXRzdG9wXG59O1xuXG4vLyBjb25zdHJ1Y3RvclxuLy8gb3B0aW9ucyA6IG9iamVjdCBjb250YWluaW5nIGxheW91dCBvcHRpb25zXG5mdW5jdGlvbiBOdWxsTGF5b3V0KG9wdGlvbnMpIHtcbiAgdGhpcy5vcHRpb25zID0gZXh0ZW5kKHt9LCBkZWZhdWx0cyQyLCBvcHRpb25zKTtcbn1cblxuLy8gcnVucyB0aGUgbGF5b3V0XG5OdWxsTGF5b3V0LnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICB2YXIgZWxlcyA9IG9wdGlvbnMuZWxlczsgLy8gZWxlbWVudHMgdG8gY29uc2lkZXIgaW4gdGhlIGxheW91dFxuICB2YXIgbGF5b3V0ID0gdGhpcztcblxuICAvLyBjeSBpcyBhdXRvbWF0aWNhbGx5IHBvcHVsYXRlZCBmb3IgdXMgaW4gdGhlIGNvbnN0cnVjdG9yXG4gIC8vIChkaXNhYmxlIGVzbGludCBmb3IgbmV4dCBsaW5lIGFzIHRoaXMgc2VydmVzIGFzIGV4YW1wbGUgbGF5b3V0IGNvZGUgdG8gZXh0ZXJuYWwgZGV2ZWxvcGVycylcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIG9wdGlvbnMuY3k7XG4gIGxheW91dC5lbWl0KCdsYXlvdXRzdGFydCcpO1xuXG4gIC8vIHB1dHMgYWxsIG5vZGVzIGF0ICgwLCAwKVxuICAvLyBuLmIuIG1vc3QgbGF5b3V0cyB3b3VsZCB1c2UgbGF5b3V0UG9zaXRpb25zKCksIGluc3RlYWQgb2YgcG9zaXRpb25zKCkgYW5kIG1hbnVhbCBldmVudHNcbiAgZWxlcy5ub2RlcygpLnBvc2l0aW9ucyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IDAsXG4gICAgICB5OiAwXG4gICAgfTtcbiAgfSk7XG5cbiAgLy8gdHJpZ2dlciBsYXlvdXRyZWFkeSB3aGVuIGVhY2ggbm9kZSBoYXMgaGFkIGl0cyBwb3NpdGlvbiBzZXQgYXQgbGVhc3Qgb25jZVxuICBsYXlvdXQub25lKCdsYXlvdXRyZWFkeScsIG9wdGlvbnMucmVhZHkpO1xuICBsYXlvdXQuZW1pdCgnbGF5b3V0cmVhZHknKTtcblxuICAvLyB0cmlnZ2VyIGxheW91dHN0b3Agd2hlbiB0aGUgbGF5b3V0IHN0b3BzIChlLmcuIGZpbmlzaGVzKVxuICBsYXlvdXQub25lKCdsYXlvdXRzdG9wJywgb3B0aW9ucy5zdG9wKTtcbiAgbGF5b3V0LmVtaXQoJ2xheW91dHN0b3AnKTtcbiAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG59O1xuXG4vLyBjYWxsZWQgb24gY29udGludW91cyBsYXlvdXRzIHRvIHN0b3AgdGhlbSBiZWZvcmUgdGhleSBmaW5pc2hcbk51bGxMYXlvdXQucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzOyAvLyBjaGFpbmluZ1xufTtcblxudmFyIGRlZmF1bHRzJDEgPSB7XG4gIHBvc2l0aW9uczogdW5kZWZpbmVkLFxuICAvLyBtYXAgb2YgKG5vZGUgaWQpID0+IChwb3NpdGlvbiBvYmopOyBvciBmdW5jdGlvbihub2RlKXsgcmV0dXJuIHNvbVBvczsgfVxuICB6b29tOiB1bmRlZmluZWQsXG4gIC8vIHRoZSB6b29tIGxldmVsIHRvIHNldCAocHJvYiB3YW50IGZpdCA9IGZhbHNlIGlmIHNldClcbiAgcGFuOiB1bmRlZmluZWQsXG4gIC8vIHRoZSBwYW4gbGV2ZWwgdG8gc2V0IChwcm9iIHdhbnQgZml0ID0gZmFsc2UgaWYgc2V0KVxuICBmaXQ6IHRydWUsXG4gIC8vIHdoZXRoZXIgdG8gZml0IHRvIHZpZXdwb3J0XG4gIHBhZGRpbmc6IDMwLFxuICAvLyBwYWRkaW5nIG9uIGZpdFxuICBzcGFjaW5nRmFjdG9yOiB1bmRlZmluZWQsXG4gIC8vIEFwcGxpZXMgYSBtdWx0aXBsaWNhdGl2ZSBmYWN0b3IgKD4wKSB0byBleHBhbmQgb3IgY29tcHJlc3MgdGhlIG92ZXJhbGwgYXJlYSB0aGF0IHRoZSBub2RlcyB0YWtlIHVwXG4gIGFuaW1hdGU6IGZhbHNlLFxuICAvLyB3aGV0aGVyIHRvIHRyYW5zaXRpb24gdGhlIG5vZGUgcG9zaXRpb25zXG4gIGFuaW1hdGlvbkR1cmF0aW9uOiA1MDAsXG4gIC8vIGR1cmF0aW9uIG9mIGFuaW1hdGlvbiBpbiBtcyBpZiBlbmFibGVkXG4gIGFuaW1hdGlvbkVhc2luZzogdW5kZWZpbmVkLFxuICAvLyBlYXNpbmcgb2YgYW5pbWF0aW9uIGlmIGVuYWJsZWRcbiAgYW5pbWF0ZUZpbHRlcjogZnVuY3Rpb24gYW5pbWF0ZUZpbHRlcihub2RlLCBpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIC8vIGEgZnVuY3Rpb24gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG5vZGUgc2hvdWxkIGJlIGFuaW1hdGVkLiAgQWxsIG5vZGVzIGFuaW1hdGVkIGJ5IGRlZmF1bHQgb24gYW5pbWF0ZSBlbmFibGVkLiAgTm9uLWFuaW1hdGVkIG5vZGVzIGFyZSBwb3NpdGlvbmVkIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGxheW91dCBzdGFydHNcbiAgcmVhZHk6IHVuZGVmaW5lZCxcbiAgLy8gY2FsbGJhY2sgb24gbGF5b3V0cmVhZHlcbiAgc3RvcDogdW5kZWZpbmVkLFxuICAvLyBjYWxsYmFjayBvbiBsYXlvdXRzdG9wXG4gIHRyYW5zZm9ybTogZnVuY3Rpb24gdHJhbnNmb3JtKG5vZGUsIHBvc2l0aW9uKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uO1xuICB9IC8vIHRyYW5zZm9ybSBhIGdpdmVuIG5vZGUgcG9zaXRpb24uIFVzZWZ1bCBmb3IgY2hhbmdpbmcgZmxvdyBkaXJlY3Rpb24gaW4gZGlzY3JldGUgbGF5b3V0c1xufTtcblxuZnVuY3Rpb24gUHJlc2V0TGF5b3V0KG9wdGlvbnMpIHtcbiAgdGhpcy5vcHRpb25zID0gZXh0ZW5kKHt9LCBkZWZhdWx0cyQxLCBvcHRpb25zKTtcbn1cblByZXNldExheW91dC5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkge1xuICB2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgdmFyIGVsZXMgPSBvcHRpb25zLmVsZXM7XG4gIHZhciBub2RlcyA9IGVsZXMubm9kZXMoKTtcbiAgdmFyIHBvc0lzRm4gPSBmbiQ2KG9wdGlvbnMucG9zaXRpb25zKTtcbiAgZnVuY3Rpb24gZ2V0UG9zaXRpb24obm9kZSkge1xuICAgIGlmIChvcHRpb25zLnBvc2l0aW9ucyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gY29weVBvc2l0aW9uKG5vZGUucG9zaXRpb24oKSk7XG4gICAgfVxuICAgIGlmIChwb3NJc0ZuKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5wb3NpdGlvbnMobm9kZSk7XG4gICAgfVxuICAgIHZhciBwb3MgPSBvcHRpb25zLnBvc2l0aW9uc1tub2RlLl9wcml2YXRlLmRhdGEuaWRdO1xuICAgIGlmIChwb3MgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBwb3M7XG4gIH1cbiAgbm9kZXMubGF5b3V0UG9zaXRpb25zKHRoaXMsIG9wdGlvbnMsIGZ1bmN0aW9uIChub2RlLCBpKSB7XG4gICAgdmFyIHBvc2l0aW9uID0gZ2V0UG9zaXRpb24obm9kZSk7XG4gICAgaWYgKG5vZGUubG9ja2VkKCkgfHwgcG9zaXRpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gcG9zaXRpb247XG4gIH0pO1xuICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbn07XG5cbnZhciBkZWZhdWx0cyA9IHtcbiAgZml0OiB0cnVlLFxuICAvLyB3aGV0aGVyIHRvIGZpdCB0byB2aWV3cG9ydFxuICBwYWRkaW5nOiAzMCxcbiAgLy8gZml0IHBhZGRpbmdcbiAgYm91bmRpbmdCb3g6IHVuZGVmaW5lZCxcbiAgLy8gY29uc3RyYWluIGxheW91dCBib3VuZHM7IHsgeDEsIHkxLCB4MiwgeTIgfSBvciB7IHgxLCB5MSwgdywgaCB9XG4gIGFuaW1hdGU6IGZhbHNlLFxuICAvLyB3aGV0aGVyIHRvIHRyYW5zaXRpb24gdGhlIG5vZGUgcG9zaXRpb25zXG4gIGFuaW1hdGlvbkR1cmF0aW9uOiA1MDAsXG4gIC8vIGR1cmF0aW9uIG9mIGFuaW1hdGlvbiBpbiBtcyBpZiBlbmFibGVkXG4gIGFuaW1hdGlvbkVhc2luZzogdW5kZWZpbmVkLFxuICAvLyBlYXNpbmcgb2YgYW5pbWF0aW9uIGlmIGVuYWJsZWRcbiAgYW5pbWF0ZUZpbHRlcjogZnVuY3Rpb24gYW5pbWF0ZUZpbHRlcihub2RlLCBpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIC8vIGEgZnVuY3Rpb24gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG5vZGUgc2hvdWxkIGJlIGFuaW1hdGVkLiAgQWxsIG5vZGVzIGFuaW1hdGVkIGJ5IGRlZmF1bHQgb24gYW5pbWF0ZSBlbmFibGVkLiAgTm9uLWFuaW1hdGVkIG5vZGVzIGFyZSBwb3NpdGlvbmVkIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGxheW91dCBzdGFydHNcbiAgcmVhZHk6IHVuZGVmaW5lZCxcbiAgLy8gY2FsbGJhY2sgb24gbGF5b3V0cmVhZHlcbiAgc3RvcDogdW5kZWZpbmVkLFxuICAvLyBjYWxsYmFjayBvbiBsYXlvdXRzdG9wXG4gIHRyYW5zZm9ybTogZnVuY3Rpb24gdHJhbnNmb3JtKG5vZGUsIHBvc2l0aW9uKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uO1xuICB9IC8vIHRyYW5zZm9ybSBhIGdpdmVuIG5vZGUgcG9zaXRpb24uIFVzZWZ1bCBmb3IgY2hhbmdpbmcgZmxvdyBkaXJlY3Rpb24gaW4gZGlzY3JldGUgbGF5b3V0cyBcbn07XG5cbmZ1bmN0aW9uIFJhbmRvbUxheW91dChvcHRpb25zKSB7XG4gIHRoaXMub3B0aW9ucyA9IGV4dGVuZCh7fSwgZGVmYXVsdHMsIG9wdGlvbnMpO1xufVxuUmFuZG9tTGF5b3V0LnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICB2YXIgY3kgPSBvcHRpb25zLmN5O1xuICB2YXIgZWxlcyA9IG9wdGlvbnMuZWxlcztcbiAgdmFyIGJiID0gbWFrZUJvdW5kaW5nQm94KG9wdGlvbnMuYm91bmRpbmdCb3ggPyBvcHRpb25zLmJvdW5kaW5nQm94IDoge1xuICAgIHgxOiAwLFxuICAgIHkxOiAwLFxuICAgIHc6IGN5LndpZHRoKCksXG4gICAgaDogY3kuaGVpZ2h0KClcbiAgfSk7XG4gIHZhciBnZXRQb3MgPSBmdW5jdGlvbiBnZXRQb3Mobm9kZSwgaSkge1xuICAgIHJldHVybiB7XG4gICAgICB4OiBiYi54MSArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIGJiLncpLFxuICAgICAgeTogYmIueTEgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiBiYi5oKVxuICAgIH07XG4gIH07XG4gIGVsZXMubm9kZXMoKS5sYXlvdXRQb3NpdGlvbnModGhpcywgb3B0aW9ucywgZ2V0UG9zKTtcbiAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG59O1xuXG52YXIgbGF5b3V0ID0gW3tcbiAgbmFtZTogJ2JyZWFkdGhmaXJzdCcsXG4gIGltcGw6IEJyZWFkdGhGaXJzdExheW91dFxufSwge1xuICBuYW1lOiAnY2lyY2xlJyxcbiAgaW1wbDogQ2lyY2xlTGF5b3V0XG59LCB7XG4gIG5hbWU6ICdjb25jZW50cmljJyxcbiAgaW1wbDogQ29uY2VudHJpY0xheW91dFxufSwge1xuICBuYW1lOiAnY29zZScsXG4gIGltcGw6IENvc2VMYXlvdXRcbn0sIHtcbiAgbmFtZTogJ2dyaWQnLFxuICBpbXBsOiBHcmlkTGF5b3V0XG59LCB7XG4gIG5hbWU6ICdudWxsJyxcbiAgaW1wbDogTnVsbExheW91dFxufSwge1xuICBuYW1lOiAncHJlc2V0JyxcbiAgaW1wbDogUHJlc2V0TGF5b3V0XG59LCB7XG4gIG5hbWU6ICdyYW5kb20nLFxuICBpbXBsOiBSYW5kb21MYXlvdXRcbn1dO1xuXG5mdW5jdGlvbiBOdWxsUmVuZGVyZXIob3B0aW9ucykge1xuICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB0aGlzLm5vdGlmaWNhdGlvbnMgPSAwOyAvLyBmb3IgdGVzdGluZ1xufVxuXG52YXIgbm9vcCA9IGZ1bmN0aW9uIG5vb3AoKSB7fTtcbnZhciB0aHJvd0ltZ0VyciA9IGZ1bmN0aW9uIHRocm93SW1nRXJyKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ0EgaGVhZGxlc3MgaW5zdGFuY2UgY2FuIG5vdCByZW5kZXIgaW1hZ2VzJyk7XG59O1xuTnVsbFJlbmRlcmVyLnByb3RvdHlwZSA9IHtcbiAgcmVjYWxjdWxhdGVSZW5kZXJlZFN0eWxlOiBub29wLFxuICBub3RpZnk6IGZ1bmN0aW9uIG5vdGlmeSgpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnMrKztcbiAgfSxcbiAgaW5pdDogbm9vcCxcbiAgaXNIZWFkbGVzczogZnVuY3Rpb24gaXNIZWFkbGVzcygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcbiAgcG5nOiB0aHJvd0ltZ0VycixcbiAganBnOiB0aHJvd0ltZ0VyclxufTtcblxudmFyIEJScCRmID0ge307XG5CUnAkZi5hcnJvd1NoYXBlV2lkdGggPSAwLjM7XG5CUnAkZi5yZWdpc3RlckFycm93U2hhcGVzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgYXJyb3dTaGFwZXMgPSB0aGlzLmFycm93U2hhcGVzID0ge307XG4gIHZhciByZW5kZXJlciA9IHRoaXM7XG5cbiAgLy8gQ29udHJhY3QgZm9yIGFycm93IHNoYXBlczpcbiAgLy8gMCwgMCBpcyBhcnJvdyB0aXBcbiAgLy8gKDAsIDEpIGlzIGRpcmVjdGlvbiB0b3dhcmRzIG5vZGVcbiAgLy8gKDEsIDApIGlzIHJpZ2h0XG4gIC8vXG4gIC8vIGZ1bmN0aW9uYWwgYXBpOlxuICAvLyBjb2xsaWRlOiBjaGVjayB4LCB5IGluIHNoYXBlXG4gIC8vIHJvdWdoQ29sbGlkZTogY2FsbGVkIGJlZm9yZSBjb2xsaWRlLCBubyBmYWxzZSBuZWdhdGl2ZXNcbiAgLy8gZHJhdzogZHJhd1xuICAvLyBzcGFjaW5nOiBkaXN0KGFycm93VGlwLCBub2RlQm91bmRhcnkpXG4gIC8vIGdhcDogZGlzdChlZGdlVGlwLCBub2RlQm91bmRhcnkpLCBlZGdlVGlwIG1heSAhPSBhcnJvd1RpcFxuXG4gIHZhciBiYkNvbGxpZGUgPSBmdW5jdGlvbiBiYkNvbGxpZGUoeCwgeSwgc2l6ZSwgYW5nbGUsIHRyYW5zbGF0aW9uLCBlZGdlV2lkdGgsIHBhZGRpbmcpIHtcbiAgICB2YXIgeDEgPSB0cmFuc2xhdGlvbi54IC0gc2l6ZSAvIDIgLSBwYWRkaW5nO1xuICAgIHZhciB4MiA9IHRyYW5zbGF0aW9uLnggKyBzaXplIC8gMiArIHBhZGRpbmc7XG4gICAgdmFyIHkxID0gdHJhbnNsYXRpb24ueSAtIHNpemUgLyAyIC0gcGFkZGluZztcbiAgICB2YXIgeTIgPSB0cmFuc2xhdGlvbi55ICsgc2l6ZSAvIDIgKyBwYWRkaW5nO1xuICAgIHZhciBpbnNpZGUgPSB4MSA8PSB4ICYmIHggPD0geDIgJiYgeTEgPD0geSAmJiB5IDw9IHkyO1xuICAgIHJldHVybiBpbnNpZGU7XG4gIH07XG4gIHZhciB0cmFuc2Zvcm0gPSBmdW5jdGlvbiB0cmFuc2Zvcm0oeCwgeSwgc2l6ZSwgYW5nbGUsIHRyYW5zbGF0aW9uKSB7XG4gICAgdmFyIHhSb3RhdGVkID0geCAqIE1hdGguY29zKGFuZ2xlKSAtIHkgKiBNYXRoLnNpbihhbmdsZSk7XG4gICAgdmFyIHlSb3RhdGVkID0geCAqIE1hdGguc2luKGFuZ2xlKSArIHkgKiBNYXRoLmNvcyhhbmdsZSk7XG4gICAgdmFyIHhTY2FsZWQgPSB4Um90YXRlZCAqIHNpemU7XG4gICAgdmFyIHlTY2FsZWQgPSB5Um90YXRlZCAqIHNpemU7XG4gICAgdmFyIHhUcmFuc2xhdGVkID0geFNjYWxlZCArIHRyYW5zbGF0aW9uLng7XG4gICAgdmFyIHlUcmFuc2xhdGVkID0geVNjYWxlZCArIHRyYW5zbGF0aW9uLnk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHhUcmFuc2xhdGVkLFxuICAgICAgeTogeVRyYW5zbGF0ZWRcbiAgICB9O1xuICB9O1xuICB2YXIgdHJhbnNmb3JtUG9pbnRzID0gZnVuY3Rpb24gdHJhbnNmb3JtUG9pbnRzKHB0cywgc2l6ZSwgYW5nbGUsIHRyYW5zbGF0aW9uKSB7XG4gICAgdmFyIHJldFB0cyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHRzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICB2YXIgeCA9IHB0c1tpXTtcbiAgICAgIHZhciB5ID0gcHRzW2kgKyAxXTtcbiAgICAgIHJldFB0cy5wdXNoKHRyYW5zZm9ybSh4LCB5LCBzaXplLCBhbmdsZSwgdHJhbnNsYXRpb24pKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldFB0cztcbiAgfTtcbiAgdmFyIHBvaW50c1RvQXJyID0gZnVuY3Rpb24gcG9pbnRzVG9BcnIocHRzKSB7XG4gICAgdmFyIHJldCA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcCA9IHB0c1tpXTtcbiAgICAgIHJldC5wdXNoKHAueCwgcC55KTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfTtcbiAgdmFyIHN0YW5kYXJkR2FwID0gZnVuY3Rpb24gc3RhbmRhcmRHYXAoZWRnZSkge1xuICAgIHJldHVybiBlZGdlLnBzdHlsZSgnd2lkdGgnKS5wZlZhbHVlICogZWRnZS5wc3R5bGUoJ2Fycm93LXNjYWxlJykucGZWYWx1ZSAqIDI7XG4gIH07XG4gIHZhciBkZWZpbmVBcnJvd1NoYXBlID0gZnVuY3Rpb24gZGVmaW5lQXJyb3dTaGFwZShuYW1lLCBkZWZuKSB7XG4gICAgaWYgKHN0cmluZyhkZWZuKSkge1xuICAgICAgZGVmbiA9IGFycm93U2hhcGVzW2RlZm5dO1xuICAgIH1cbiAgICBhcnJvd1NoYXBlc1tuYW1lXSA9IGV4dGVuZCh7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgcG9pbnRzOiBbLTAuMTUsIC0wLjMsIDAuMTUsIC0wLjMsIDAuMTUsIDAuMywgLTAuMTUsIDAuM10sXG4gICAgICBjb2xsaWRlOiBmdW5jdGlvbiBjb2xsaWRlKHgsIHksIHNpemUsIGFuZ2xlLCB0cmFuc2xhdGlvbiwgcGFkZGluZykge1xuICAgICAgICB2YXIgcG9pbnRzID0gcG9pbnRzVG9BcnIodHJhbnNmb3JtUG9pbnRzKHRoaXMucG9pbnRzLCBzaXplICsgMiAqIHBhZGRpbmcsIGFuZ2xlLCB0cmFuc2xhdGlvbikpO1xuICAgICAgICB2YXIgaW5zaWRlID0gcG9pbnRJbnNpZGVQb2x5Z29uUG9pbnRzKHgsIHksIHBvaW50cyk7XG4gICAgICAgIHJldHVybiBpbnNpZGU7XG4gICAgICB9LFxuICAgICAgcm91Z2hDb2xsaWRlOiBiYkNvbGxpZGUsXG4gICAgICBkcmF3OiBmdW5jdGlvbiBkcmF3KGNvbnRleHQsIHNpemUsIGFuZ2xlLCB0cmFuc2xhdGlvbikge1xuICAgICAgICB2YXIgcG9pbnRzID0gdHJhbnNmb3JtUG9pbnRzKHRoaXMucG9pbnRzLCBzaXplLCBhbmdsZSwgdHJhbnNsYXRpb24pO1xuICAgICAgICByZW5kZXJlci5hcnJvd1NoYXBlSW1wbCgncG9seWdvbicpKGNvbnRleHQsIHBvaW50cyk7XG4gICAgICB9LFxuICAgICAgc3BhY2luZzogZnVuY3Rpb24gc3BhY2luZyhlZGdlKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSxcbiAgICAgIGdhcDogc3RhbmRhcmRHYXBcbiAgICB9LCBkZWZuKTtcbiAgfTtcbiAgZGVmaW5lQXJyb3dTaGFwZSgnbm9uZScsIHtcbiAgICBjb2xsaWRlOiBmYWxzaWZ5LFxuICAgIHJvdWdoQ29sbGlkZTogZmFsc2lmeSxcbiAgICBkcmF3OiBub29wJDEsXG4gICAgc3BhY2luZzogemVyb2lmeSxcbiAgICBnYXA6IHplcm9pZnlcbiAgfSk7XG4gIGRlZmluZUFycm93U2hhcGUoJ3RyaWFuZ2xlJywge1xuICAgIHBvaW50czogWy0wLjE1LCAtMC4zLCAwLCAwLCAwLjE1LCAtMC4zXVxuICB9KTtcbiAgZGVmaW5lQXJyb3dTaGFwZSgnYXJyb3cnLCAndHJpYW5nbGUnKTtcbiAgZGVmaW5lQXJyb3dTaGFwZSgndHJpYW5nbGUtYmFja2N1cnZlJywge1xuICAgIHBvaW50czogYXJyb3dTaGFwZXNbJ3RyaWFuZ2xlJ10ucG9pbnRzLFxuICAgIGNvbnRyb2xQb2ludDogWzAsIC0wLjE1XSxcbiAgICByb3VnaENvbGxpZGU6IGJiQ29sbGlkZSxcbiAgICBkcmF3OiBmdW5jdGlvbiBkcmF3KGNvbnRleHQsIHNpemUsIGFuZ2xlLCB0cmFuc2xhdGlvbiwgZWRnZVdpZHRoKSB7XG4gICAgICB2YXIgcHRzVHJhbnMgPSB0cmFuc2Zvcm1Qb2ludHModGhpcy5wb2ludHMsIHNpemUsIGFuZ2xlLCB0cmFuc2xhdGlvbik7XG4gICAgICB2YXIgY3RybFB0ID0gdGhpcy5jb250cm9sUG9pbnQ7XG4gICAgICB2YXIgY3RybFB0VHJhbnMgPSB0cmFuc2Zvcm0oY3RybFB0WzBdLCBjdHJsUHRbMV0sIHNpemUsIGFuZ2xlLCB0cmFuc2xhdGlvbik7XG4gICAgICByZW5kZXJlci5hcnJvd1NoYXBlSW1wbCh0aGlzLm5hbWUpKGNvbnRleHQsIHB0c1RyYW5zLCBjdHJsUHRUcmFucyk7XG4gICAgfSxcbiAgICBnYXA6IGZ1bmN0aW9uIGdhcChlZGdlKSB7XG4gICAgICByZXR1cm4gc3RhbmRhcmRHYXAoZWRnZSkgKiAwLjg7XG4gICAgfVxuICB9KTtcbiAgZGVmaW5lQXJyb3dTaGFwZSgndHJpYW5nbGUtdGVlJywge1xuICAgIHBvaW50czogWzAsIDAsIDAuMTUsIC0wLjMsIC0wLjE1LCAtMC4zLCAwLCAwXSxcbiAgICBwb2ludHNUZWU6IFstMC4xNSwgLTAuNCwgLTAuMTUsIC0wLjUsIDAuMTUsIC0wLjUsIDAuMTUsIC0wLjRdLFxuICAgIGNvbGxpZGU6IGZ1bmN0aW9uIGNvbGxpZGUoeCwgeSwgc2l6ZSwgYW5nbGUsIHRyYW5zbGF0aW9uLCBlZGdlV2lkdGgsIHBhZGRpbmcpIHtcbiAgICAgIHZhciB0cmlQdHMgPSBwb2ludHNUb0Fycih0cmFuc2Zvcm1Qb2ludHModGhpcy5wb2ludHMsIHNpemUgKyAyICogcGFkZGluZywgYW5nbGUsIHRyYW5zbGF0aW9uKSk7XG4gICAgICB2YXIgdGVlUHRzID0gcG9pbnRzVG9BcnIodHJhbnNmb3JtUG9pbnRzKHRoaXMucG9pbnRzVGVlLCBzaXplICsgMiAqIHBhZGRpbmcsIGFuZ2xlLCB0cmFuc2xhdGlvbikpO1xuICAgICAgdmFyIGluc2lkZSA9IHBvaW50SW5zaWRlUG9seWdvblBvaW50cyh4LCB5LCB0cmlQdHMpIHx8IHBvaW50SW5zaWRlUG9seWdvblBvaW50cyh4LCB5LCB0ZWVQdHMpO1xuICAgICAgcmV0dXJuIGluc2lkZTtcbiAgICB9LFxuICAgIGRyYXc6IGZ1bmN0aW9uIGRyYXcoY29udGV4dCwgc2l6ZSwgYW5nbGUsIHRyYW5zbGF0aW9uLCBlZGdlV2lkdGgpIHtcbiAgICAgIHZhciB0cmlQdHMgPSB0cmFuc2Zvcm1Qb2ludHModGhpcy5wb2ludHMsIHNpemUsIGFuZ2xlLCB0cmFuc2xhdGlvbik7XG4gICAgICB2YXIgdGVlUHRzID0gdHJhbnNmb3JtUG9pbnRzKHRoaXMucG9pbnRzVGVlLCBzaXplLCBhbmdsZSwgdHJhbnNsYXRpb24pO1xuICAgICAgcmVuZGVyZXIuYXJyb3dTaGFwZUltcGwodGhpcy5uYW1lKShjb250ZXh0LCB0cmlQdHMsIHRlZVB0cyk7XG4gICAgfVxuICB9KTtcbiAgZGVmaW5lQXJyb3dTaGFwZSgnY2lyY2xlLXRyaWFuZ2xlJywge1xuICAgIHJhZGl1czogMC4xNSxcbiAgICBwb2ludHNUcjogWzAsIC0wLjE1LCAwLjE1LCAtMC40NSwgLTAuMTUsIC0wLjQ1LCAwLCAtMC4xNV0sXG4gICAgY29sbGlkZTogZnVuY3Rpb24gY29sbGlkZSh4LCB5LCBzaXplLCBhbmdsZSwgdHJhbnNsYXRpb24sIGVkZ2VXaWR0aCwgcGFkZGluZykge1xuICAgICAgdmFyIHQgPSB0cmFuc2xhdGlvbjtcbiAgICAgIHZhciBjaXJjbGVJbnNpZGUgPSBNYXRoLnBvdyh0LnggLSB4LCAyKSArIE1hdGgucG93KHQueSAtIHksIDIpIDw9IE1hdGgucG93KChzaXplICsgMiAqIHBhZGRpbmcpICogdGhpcy5yYWRpdXMsIDIpO1xuICAgICAgdmFyIHRyaVB0cyA9IHBvaW50c1RvQXJyKHRyYW5zZm9ybVBvaW50cyh0aGlzLnBvaW50cywgc2l6ZSArIDIgKiBwYWRkaW5nLCBhbmdsZSwgdHJhbnNsYXRpb24pKTtcbiAgICAgIHJldHVybiBwb2ludEluc2lkZVBvbHlnb25Qb2ludHMoeCwgeSwgdHJpUHRzKSB8fCBjaXJjbGVJbnNpZGU7XG4gICAgfSxcbiAgICBkcmF3OiBmdW5jdGlvbiBkcmF3KGNvbnRleHQsIHNpemUsIGFuZ2xlLCB0cmFuc2xhdGlvbiwgZWRnZVdpZHRoKSB7XG4gICAgICB2YXIgdHJpUHRzID0gdHJhbnNmb3JtUG9pbnRzKHRoaXMucG9pbnRzVHIsIHNpemUsIGFuZ2xlLCB0cmFuc2xhdGlvbik7XG4gICAgICByZW5kZXJlci5hcnJvd1NoYXBlSW1wbCh0aGlzLm5hbWUpKGNvbnRleHQsIHRyaVB0cywgdHJhbnNsYXRpb24ueCwgdHJhbnNsYXRpb24ueSwgdGhpcy5yYWRpdXMgKiBzaXplKTtcbiAgICB9LFxuICAgIHNwYWNpbmc6IGZ1bmN0aW9uIHNwYWNpbmcoZWRnZSkge1xuICAgICAgcmV0dXJuIHJlbmRlcmVyLmdldEFycm93V2lkdGgoZWRnZS5wc3R5bGUoJ3dpZHRoJykucGZWYWx1ZSwgZWRnZS5wc3R5bGUoJ2Fycm93LXNjYWxlJykudmFsdWUpICogdGhpcy5yYWRpdXM7XG4gICAgfVxuICB9KTtcbiAgZGVmaW5lQXJyb3dTaGFwZSgndHJpYW5nbGUtY3Jvc3MnLCB7XG4gICAgcG9pbnRzOiBbMCwgMCwgMC4xNSwgLTAuMywgLTAuMTUsIC0wLjMsIDAsIDBdLFxuICAgIGJhc2VDcm9zc0xpbmVQdHM6IFstMC4xNSwgLTAuNCxcbiAgICAvLyBmaXJzdCBoYWxmIG9mIHRoZSByZWN0YW5nbGVcbiAgICAtMC4xNSwgLTAuNCwgMC4xNSwgLTAuNCxcbiAgICAvLyBzZWNvbmQgaGFsZiBvZiB0aGUgcmVjdGFuZ2xlXG4gICAgMC4xNSwgLTAuNF0sXG4gICAgY3Jvc3NMaW5lUHRzOiBmdW5jdGlvbiBjcm9zc0xpbmVQdHMoc2l6ZSwgZWRnZVdpZHRoKSB7XG4gICAgICAvLyBzaGlmdCBwb2ludHMgc28gdGhhdCB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgY3Jvc3MgcG9pbnRzIG1hdGNoZXMgZWRnZSB3aWR0aFxuICAgICAgdmFyIHAgPSB0aGlzLmJhc2VDcm9zc0xpbmVQdHMuc2xpY2UoKTtcbiAgICAgIHZhciBzaGlmdEZhY3RvciA9IGVkZ2VXaWR0aCAvIHNpemU7XG4gICAgICB2YXIgeTAgPSAzO1xuICAgICAgdmFyIHkxID0gNTtcbiAgICAgIHBbeTBdID0gcFt5MF0gLSBzaGlmdEZhY3RvcjtcbiAgICAgIHBbeTFdID0gcFt5MV0gLSBzaGlmdEZhY3RvcjtcbiAgICAgIHJldHVybiBwO1xuICAgIH0sXG4gICAgY29sbGlkZTogZnVuY3Rpb24gY29sbGlkZSh4LCB5LCBzaXplLCBhbmdsZSwgdHJhbnNsYXRpb24sIGVkZ2VXaWR0aCwgcGFkZGluZykge1xuICAgICAgdmFyIHRyaVB0cyA9IHBvaW50c1RvQXJyKHRyYW5zZm9ybVBvaW50cyh0aGlzLnBvaW50cywgc2l6ZSArIDIgKiBwYWRkaW5nLCBhbmdsZSwgdHJhbnNsYXRpb24pKTtcbiAgICAgIHZhciB0ZWVQdHMgPSBwb2ludHNUb0Fycih0cmFuc2Zvcm1Qb2ludHModGhpcy5jcm9zc0xpbmVQdHMoc2l6ZSwgZWRnZVdpZHRoKSwgc2l6ZSArIDIgKiBwYWRkaW5nLCBhbmdsZSwgdHJhbnNsYXRpb24pKTtcbiAgICAgIHZhciBpbnNpZGUgPSBwb2ludEluc2lkZVBvbHlnb25Qb2ludHMoeCwgeSwgdHJpUHRzKSB8fCBwb2ludEluc2lkZVBvbHlnb25Qb2ludHMoeCwgeSwgdGVlUHRzKTtcbiAgICAgIHJldHVybiBpbnNpZGU7XG4gICAgfSxcbiAgICBkcmF3OiBmdW5jdGlvbiBkcmF3KGNvbnRleHQsIHNpemUsIGFuZ2xlLCB0cmFuc2xhdGlvbiwgZWRnZVdpZHRoKSB7XG4gICAgICB2YXIgdHJpUHRzID0gdHJhbnNmb3JtUG9pbnRzKHRoaXMucG9pbnRzLCBzaXplLCBhbmdsZSwgdHJhbnNsYXRpb24pO1xuICAgICAgdmFyIGNyb3NzTGluZVB0cyA9IHRyYW5zZm9ybVBvaW50cyh0aGlzLmNyb3NzTGluZVB0cyhzaXplLCBlZGdlV2lkdGgpLCBzaXplLCBhbmdsZSwgdHJhbnNsYXRpb24pO1xuICAgICAgcmVuZGVyZXIuYXJyb3dTaGFwZUltcGwodGhpcy5uYW1lKShjb250ZXh0LCB0cmlQdHMsIGNyb3NzTGluZVB0cyk7XG4gICAgfVxuICB9KTtcbiAgZGVmaW5lQXJyb3dTaGFwZSgndmVlJywge1xuICAgIHBvaW50czogWy0wLjE1LCAtMC4zLCAwLCAwLCAwLjE1LCAtMC4zLCAwLCAtMC4xNV0sXG4gICAgZ2FwOiBmdW5jdGlvbiBnYXAoZWRnZSkge1xuICAgICAgcmV0dXJuIHN0YW5kYXJkR2FwKGVkZ2UpICogMC41MjU7XG4gICAgfVxuICB9KTtcbiAgZGVmaW5lQXJyb3dTaGFwZSgnY2lyY2xlJywge1xuICAgIHJhZGl1czogMC4xNSxcbiAgICBjb2xsaWRlOiBmdW5jdGlvbiBjb2xsaWRlKHgsIHksIHNpemUsIGFuZ2xlLCB0cmFuc2xhdGlvbiwgZWRnZVdpZHRoLCBwYWRkaW5nKSB7XG4gICAgICB2YXIgdCA9IHRyYW5zbGF0aW9uO1xuICAgICAgdmFyIGluc2lkZSA9IE1hdGgucG93KHQueCAtIHgsIDIpICsgTWF0aC5wb3codC55IC0geSwgMikgPD0gTWF0aC5wb3coKHNpemUgKyAyICogcGFkZGluZykgKiB0aGlzLnJhZGl1cywgMik7XG4gICAgICByZXR1cm4gaW5zaWRlO1xuICAgIH0sXG4gICAgZHJhdzogZnVuY3Rpb24gZHJhdyhjb250ZXh0LCBzaXplLCBhbmdsZSwgdHJhbnNsYXRpb24sIGVkZ2VXaWR0aCkge1xuICAgICAgcmVuZGVyZXIuYXJyb3dTaGFwZUltcGwodGhpcy5uYW1lKShjb250ZXh0LCB0cmFuc2xhdGlvbi54LCB0cmFuc2xhdGlvbi55LCB0aGlzLnJhZGl1cyAqIHNpemUpO1xuICAgIH0sXG4gICAgc3BhY2luZzogZnVuY3Rpb24gc3BhY2luZyhlZGdlKSB7XG4gICAgICByZXR1cm4gcmVuZGVyZXIuZ2V0QXJyb3dXaWR0aChlZGdlLnBzdHlsZSgnd2lkdGgnKS5wZlZhbHVlLCBlZGdlLnBzdHlsZSgnYXJyb3ctc2NhbGUnKS52YWx1ZSkgKiB0aGlzLnJhZGl1cztcbiAgICB9XG4gIH0pO1xuICBkZWZpbmVBcnJvd1NoYXBlKCd0ZWUnLCB7XG4gICAgcG9pbnRzOiBbLTAuMTUsIDAsIC0wLjE1LCAtMC4xLCAwLjE1LCAtMC4xLCAwLjE1LCAwXSxcbiAgICBzcGFjaW5nOiBmdW5jdGlvbiBzcGFjaW5nKGVkZ2UpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG4gICAgZ2FwOiBmdW5jdGlvbiBnYXAoZWRnZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICB9KTtcbiAgZGVmaW5lQXJyb3dTaGFwZSgnc3F1YXJlJywge1xuICAgIHBvaW50czogWy0wLjE1LCAwLjAwLCAwLjE1LCAwLjAwLCAwLjE1LCAtMC4zLCAtMC4xNSwgLTAuM11cbiAgfSk7XG4gIGRlZmluZUFycm93U2hhcGUoJ2RpYW1vbmQnLCB7XG4gICAgcG9pbnRzOiBbLTAuMTUsIC0wLjE1LCAwLCAtMC4zLCAwLjE1LCAtMC4xNSwgMCwgMF0sXG4gICAgZ2FwOiBmdW5jdGlvbiBnYXAoZWRnZSkge1xuICAgICAgcmV0dXJuIGVkZ2UucHN0eWxlKCd3aWR0aCcpLnBmVmFsdWUgKiBlZGdlLnBzdHlsZSgnYXJyb3ctc2NhbGUnKS52YWx1ZTtcbiAgICB9XG4gIH0pO1xuICBkZWZpbmVBcnJvd1NoYXBlKCdjaGV2cm9uJywge1xuICAgIHBvaW50czogWzAsIDAsIC0wLjE1LCAtMC4xNSwgLTAuMSwgLTAuMiwgMCwgLTAuMSwgMC4xLCAtMC4yLCAwLjE1LCAtMC4xNV0sXG4gICAgZ2FwOiBmdW5jdGlvbiBnYXAoZWRnZSkge1xuICAgICAgcmV0dXJuIDAuOTUgKiBlZGdlLnBzdHlsZSgnd2lkdGgnKS5wZlZhbHVlICogZWRnZS5wc3R5bGUoJ2Fycm93LXNjYWxlJykudmFsdWU7XG4gICAgfVxuICB9KTtcbn07XG5cbnZhciBCUnAkZSA9IHt9O1xuXG4vLyBQcm9qZWN0IG1vdXNlXG5CUnAkZS5wcm9qZWN0SW50b1ZpZXdwb3J0ID0gZnVuY3Rpb24gKGNsaWVudFgsIGNsaWVudFkpIHtcbiAgdmFyIGN5ID0gdGhpcy5jeTtcbiAgdmFyIG9mZnNldHMgPSB0aGlzLmZpbmRDb250YWluZXJDbGllbnRDb29yZHMoKTtcbiAgdmFyIG9mZnNldExlZnQgPSBvZmZzZXRzWzBdO1xuICB2YXIgb2Zmc2V0VG9wID0gb2Zmc2V0c1sxXTtcbiAgdmFyIHNjYWxlID0gb2Zmc2V0c1s0XTtcbiAgdmFyIHBhbiA9IGN5LnBhbigpO1xuICB2YXIgem9vbSA9IGN5Lnpvb20oKTtcbiAgdmFyIHggPSAoKGNsaWVudFggLSBvZmZzZXRMZWZ0KSAvIHNjYWxlIC0gcGFuLngpIC8gem9vbTtcbiAgdmFyIHkgPSAoKGNsaWVudFkgLSBvZmZzZXRUb3ApIC8gc2NhbGUgLSBwYW4ueSkgLyB6b29tO1xuICByZXR1cm4gW3gsIHldO1xufTtcbkJScCRlLmZpbmRDb250YWluZXJDbGllbnRDb29yZHMgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmNvbnRhaW5lckJCKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyQkI7XG4gIH1cbiAgdmFyIGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICB2YXIgcmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgdmFyIHN0eWxlID0gdGhpcy5jeS53aW5kb3coKS5nZXRDb21wdXRlZFN0eWxlKGNvbnRhaW5lcik7XG4gIHZhciBzdHlsZVZhbHVlID0gZnVuY3Rpb24gc3R5bGVWYWx1ZShuYW1lKSB7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKSk7XG4gIH07XG4gIHZhciBwYWRkaW5nID0ge1xuICAgIGxlZnQ6IHN0eWxlVmFsdWUoJ3BhZGRpbmctbGVmdCcpLFxuICAgIHJpZ2h0OiBzdHlsZVZhbHVlKCdwYWRkaW5nLXJpZ2h0JyksXG4gICAgdG9wOiBzdHlsZVZhbHVlKCdwYWRkaW5nLXRvcCcpLFxuICAgIGJvdHRvbTogc3R5bGVWYWx1ZSgncGFkZGluZy1ib3R0b20nKVxuICB9O1xuICB2YXIgYm9yZGVyID0ge1xuICAgIGxlZnQ6IHN0eWxlVmFsdWUoJ2JvcmRlci1sZWZ0LXdpZHRoJyksXG4gICAgcmlnaHQ6IHN0eWxlVmFsdWUoJ2JvcmRlci1yaWdodC13aWR0aCcpLFxuICAgIHRvcDogc3R5bGVWYWx1ZSgnYm9yZGVyLXRvcC13aWR0aCcpLFxuICAgIGJvdHRvbTogc3R5bGVWYWx1ZSgnYm9yZGVyLWJvdHRvbS13aWR0aCcpXG4gIH07XG4gIHZhciBjbGllbnRXaWR0aCA9IGNvbnRhaW5lci5jbGllbnRXaWR0aDtcbiAgdmFyIGNsaWVudEhlaWdodCA9IGNvbnRhaW5lci5jbGllbnRIZWlnaHQ7XG4gIHZhciBwYWRkaW5nSG9yID0gcGFkZGluZy5sZWZ0ICsgcGFkZGluZy5yaWdodDtcbiAgdmFyIHBhZGRpbmdWZXIgPSBwYWRkaW5nLnRvcCArIHBhZGRpbmcuYm90dG9tO1xuICB2YXIgYm9yZGVySG9yID0gYm9yZGVyLmxlZnQgKyBib3JkZXIucmlnaHQ7XG4gIHZhciBzY2FsZSA9IHJlY3Qud2lkdGggLyAoY2xpZW50V2lkdGggKyBib3JkZXJIb3IpO1xuICB2YXIgdW5zY2FsZWRXID0gY2xpZW50V2lkdGggLSBwYWRkaW5nSG9yO1xuICB2YXIgdW5zY2FsZWRIID0gY2xpZW50SGVpZ2h0IC0gcGFkZGluZ1ZlcjtcbiAgdmFyIGxlZnQgPSByZWN0LmxlZnQgKyBwYWRkaW5nLmxlZnQgKyBib3JkZXIubGVmdDtcbiAgdmFyIHRvcCA9IHJlY3QudG9wICsgcGFkZGluZy50b3AgKyBib3JkZXIudG9wO1xuICByZXR1cm4gdGhpcy5jb250YWluZXJCQiA9IFtsZWZ0LCB0b3AsIHVuc2NhbGVkVywgdW5zY2FsZWRILCBzY2FsZV07XG59O1xuQlJwJGUuaW52YWxpZGF0ZUNvbnRhaW5lckNsaWVudENvb3Jkc0NhY2hlID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmNvbnRhaW5lckJCID0gbnVsbDtcbn07XG5CUnAkZS5maW5kTmVhcmVzdEVsZW1lbnQgPSBmdW5jdGlvbiAoeCwgeSwgaW50ZXJhY3RpdmVFbGVtZW50c09ubHksIGlzVG91Y2gpIHtcbiAgcmV0dXJuIHRoaXMuZmluZE5lYXJlc3RFbGVtZW50cyh4LCB5LCBpbnRlcmFjdGl2ZUVsZW1lbnRzT25seSwgaXNUb3VjaClbMF07XG59O1xuQlJwJGUuZmluZE5lYXJlc3RFbGVtZW50cyA9IGZ1bmN0aW9uICh4LCB5LCBpbnRlcmFjdGl2ZUVsZW1lbnRzT25seSwgaXNUb3VjaCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciByID0gdGhpcztcbiAgdmFyIGVsZXMgPSByLmdldENhY2hlZFpTb3J0ZWRFbGVzKCk7XG4gIHZhciBuZWFyID0gW107IC8vIDEgbm9kZSBtYXgsIDEgZWRnZSBtYXhcbiAgdmFyIHpvb20gPSByLmN5Lnpvb20oKTtcbiAgdmFyIGhhc0NvbXBvdW5kcyA9IHIuY3kuaGFzQ29tcG91bmROb2RlcygpO1xuICB2YXIgZWRnZVRocmVzaG9sZCA9IChpc1RvdWNoID8gMjQgOiA4KSAvIHpvb207XG4gIHZhciBub2RlVGhyZXNob2xkID0gKGlzVG91Y2ggPyA4IDogMikgLyB6b29tO1xuICB2YXIgbGFiZWxUaHJlc2hvbGQgPSAoaXNUb3VjaCA/IDggOiAyKSAvIHpvb207XG4gIHZhciBtaW5TcURpc3QgPSBJbmZpbml0eTtcbiAgdmFyIG5lYXJFZGdlO1xuICB2YXIgbmVhck5vZGU7XG4gIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnRzT25seSkge1xuICAgIGVsZXMgPSBlbGVzLmludGVyYWN0aXZlO1xuICB9XG4gIGZ1bmN0aW9uIGFkZEVsZShlbGUsIHNxRGlzdCkge1xuICAgIGlmIChlbGUuaXNOb2RlKCkpIHtcbiAgICAgIGlmIChuZWFyTm9kZSkge1xuICAgICAgICByZXR1cm47IC8vIGNhbid0IHJlcGxhY2Ugbm9kZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmVhck5vZGUgPSBlbGU7XG4gICAgICAgIG5lYXIucHVzaChlbGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZWxlLmlzRWRnZSgpICYmIChzcURpc3QgPT0gbnVsbCB8fCBzcURpc3QgPCBtaW5TcURpc3QpKSB7XG4gICAgICBpZiAobmVhckVkZ2UpIHtcbiAgICAgICAgLy8gdGhlbiByZXBsYWNlIGV4aXN0aW5nIGVkZ2VcbiAgICAgICAgLy8gY2FuIHJlcGxhY2Ugb25seSBpZiBzYW1lIHotaW5kZXhcbiAgICAgICAgaWYgKG5lYXJFZGdlLnBzdHlsZSgnei1jb21wb3VuZC1kZXB0aCcpLnZhbHVlID09PSBlbGUucHN0eWxlKCd6LWNvbXBvdW5kLWRlcHRoJykudmFsdWUgJiYgbmVhckVkZ2UucHN0eWxlKCd6LWNvbXBvdW5kLWRlcHRoJykudmFsdWUgPT09IGVsZS5wc3R5bGUoJ3otY29tcG91bmQtZGVwdGgnKS52YWx1ZSkge1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmVhci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKG5lYXJbaV0uaXNFZGdlKCkpIHtcbiAgICAgICAgICAgICAgbmVhcltpXSA9IGVsZTtcbiAgICAgICAgICAgICAgbmVhckVkZ2UgPSBlbGU7XG4gICAgICAgICAgICAgIG1pblNxRGlzdCA9IHNxRGlzdCAhPSBudWxsID8gc3FEaXN0IDogbWluU3FEaXN0O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5lYXIucHVzaChlbGUpO1xuICAgICAgICBuZWFyRWRnZSA9IGVsZTtcbiAgICAgICAgbWluU3FEaXN0ID0gc3FEaXN0ICE9IG51bGwgPyBzcURpc3QgOiBtaW5TcURpc3Q7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIGNoZWNrTm9kZShub2RlKSB7XG4gICAgdmFyIHdpZHRoID0gbm9kZS5vdXRlcldpZHRoKCkgKyAyICogbm9kZVRocmVzaG9sZDtcbiAgICB2YXIgaGVpZ2h0ID0gbm9kZS5vdXRlckhlaWdodCgpICsgMiAqIG5vZGVUaHJlc2hvbGQ7XG4gICAgdmFyIGh3ID0gd2lkdGggLyAyO1xuICAgIHZhciBoaCA9IGhlaWdodCAvIDI7XG4gICAgdmFyIHBvcyA9IG5vZGUucG9zaXRpb24oKTtcbiAgICB2YXIgY29ybmVyUmFkaXVzID0gbm9kZS5wc3R5bGUoJ2Nvcm5lci1yYWRpdXMnKS52YWx1ZSA9PT0gJ2F1dG8nID8gJ2F1dG8nIDogbm9kZS5wc3R5bGUoJ2Nvcm5lci1yYWRpdXMnKS5wZlZhbHVlO1xuICAgIHZhciBycyA9IG5vZGUuX3ByaXZhdGUucnNjcmF0Y2g7XG4gICAgaWYgKHBvcy54IC0gaHcgPD0geCAmJiB4IDw9IHBvcy54ICsgaHcgLy8gYmIgY2hlY2sgeFxuICAgICYmIHBvcy55IC0gaGggPD0geSAmJiB5IDw9IHBvcy55ICsgaGggLy8gYmIgY2hlY2sgeVxuICAgICkge1xuICAgICAgdmFyIHNoYXBlID0gci5ub2RlU2hhcGVzW3NlbGYuZ2V0Tm9kZVNoYXBlKG5vZGUpXTtcbiAgICAgIGlmIChzaGFwZS5jaGVja1BvaW50KHgsIHksIDAsIHdpZHRoLCBoZWlnaHQsIHBvcy54LCBwb3MueSwgY29ybmVyUmFkaXVzLCBycykpIHtcbiAgICAgICAgYWRkRWxlKG5vZGUsIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gY2hlY2tFZGdlKGVkZ2UpIHtcbiAgICB2YXIgX3AgPSBlZGdlLl9wcml2YXRlO1xuICAgIHZhciBycyA9IF9wLnJzY3JhdGNoO1xuICAgIHZhciBzdHlsZVdpZHRoID0gZWRnZS5wc3R5bGUoJ3dpZHRoJykucGZWYWx1ZTtcbiAgICB2YXIgc2NhbGUgPSBlZGdlLnBzdHlsZSgnYXJyb3ctc2NhbGUnKS52YWx1ZTtcbiAgICB2YXIgd2lkdGggPSBzdHlsZVdpZHRoIC8gMiArIGVkZ2VUaHJlc2hvbGQ7IC8vIG1vcmUgbGlrZSBhIGRpc3RhbmNlIHJhZGl1cyBmcm9tIGNlbnRyZVxuICAgIHZhciB3aWR0aFNxID0gd2lkdGggKiB3aWR0aDtcbiAgICB2YXIgd2lkdGgyID0gd2lkdGggKiAyO1xuICAgIHZhciBzcmMgPSBfcC5zb3VyY2U7XG4gICAgdmFyIHRndCA9IF9wLnRhcmdldDtcbiAgICB2YXIgc3FEaXN0O1xuICAgIGlmIChycy5lZGdlVHlwZSA9PT0gJ3NlZ21lbnRzJyB8fCBycy5lZGdlVHlwZSA9PT0gJ3N0cmFpZ2h0JyB8fCBycy5lZGdlVHlwZSA9PT0gJ2hheXN0YWNrJykge1xuICAgICAgdmFyIHB0cyA9IHJzLmFsbHB0cztcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpICsgMyA8IHB0cy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgICBpZiAoaW5MaW5lVmljaW5pdHkoeCwgeSwgcHRzW2ldLCBwdHNbaSArIDFdLCBwdHNbaSArIDJdLCBwdHNbaSArIDNdLCB3aWR0aDIpICYmIHdpZHRoU3EgPiAoc3FEaXN0ID0gc3FkaXN0VG9GaW5pdGVMaW5lKHgsIHksIHB0c1tpXSwgcHRzW2kgKyAxXSwgcHRzW2kgKyAyXSwgcHRzW2kgKyAzXSkpKSB7XG4gICAgICAgICAgYWRkRWxlKGVkZ2UsIHNxRGlzdCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHJzLmVkZ2VUeXBlID09PSAnYmV6aWVyJyB8fCBycy5lZGdlVHlwZSA9PT0gJ211bHRpYmV6aWVyJyB8fCBycy5lZGdlVHlwZSA9PT0gJ3NlbGYnIHx8IHJzLmVkZ2VUeXBlID09PSAnY29tcG91bmQnKSB7XG4gICAgICB2YXIgcHRzID0gcnMuYWxscHRzO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgKyA1IDwgcnMuYWxscHRzLmxlbmd0aDsgaSArPSA0KSB7XG4gICAgICAgIGlmIChpbkJlemllclZpY2luaXR5KHgsIHksIHB0c1tpXSwgcHRzW2kgKyAxXSwgcHRzW2kgKyAyXSwgcHRzW2kgKyAzXSwgcHRzW2kgKyA0XSwgcHRzW2kgKyA1XSwgd2lkdGgyKSAmJiB3aWR0aFNxID4gKHNxRGlzdCA9IHNxZGlzdFRvUXVhZHJhdGljQmV6aWVyKHgsIHksIHB0c1tpXSwgcHRzW2kgKyAxXSwgcHRzW2kgKyAyXSwgcHRzW2kgKyAzXSwgcHRzW2kgKyA0XSwgcHRzW2kgKyA1XSkpKSB7XG4gICAgICAgICAgYWRkRWxlKGVkZ2UsIHNxRGlzdCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpZiB3ZSdyZSBjbG9zZSB0byB0aGUgZWRnZSBidXQgZGlkbid0IGhpdCBpdCwgbWF5YmUgd2UgaGl0IGl0cyBhcnJvd3NcblxuICAgIHZhciBzcmMgPSBzcmMgfHwgX3Auc291cmNlO1xuICAgIHZhciB0Z3QgPSB0Z3QgfHwgX3AudGFyZ2V0O1xuICAgIHZhciBhclNpemUgPSBzZWxmLmdldEFycm93V2lkdGgoc3R5bGVXaWR0aCwgc2NhbGUpO1xuICAgIHZhciBhcnJvd3MgPSBbe1xuICAgICAgbmFtZTogJ3NvdXJjZScsXG4gICAgICB4OiBycy5hcnJvd1N0YXJ0WCxcbiAgICAgIHk6IHJzLmFycm93U3RhcnRZLFxuICAgICAgYW5nbGU6IHJzLnNyY0Fycm93QW5nbGVcbiAgICB9LCB7XG4gICAgICBuYW1lOiAndGFyZ2V0JyxcbiAgICAgIHg6IHJzLmFycm93RW5kWCxcbiAgICAgIHk6IHJzLmFycm93RW5kWSxcbiAgICAgIGFuZ2xlOiBycy50Z3RBcnJvd0FuZ2xlXG4gICAgfSwge1xuICAgICAgbmFtZTogJ21pZC1zb3VyY2UnLFxuICAgICAgeDogcnMubWlkWCxcbiAgICAgIHk6IHJzLm1pZFksXG4gICAgICBhbmdsZTogcnMubWlkc3JjQXJyb3dBbmdsZVxuICAgIH0sIHtcbiAgICAgIG5hbWU6ICdtaWQtdGFyZ2V0JyxcbiAgICAgIHg6IHJzLm1pZFgsXG4gICAgICB5OiBycy5taWRZLFxuICAgICAgYW5nbGU6IHJzLm1pZHRndEFycm93QW5nbGVcbiAgICB9XTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGFyID0gYXJyb3dzW2ldO1xuICAgICAgdmFyIHNoYXBlID0gci5hcnJvd1NoYXBlc1tlZGdlLnBzdHlsZShhci5uYW1lICsgJy1hcnJvdy1zaGFwZScpLnZhbHVlXTtcbiAgICAgIHZhciBlZGdlV2lkdGggPSBlZGdlLnBzdHlsZSgnd2lkdGgnKS5wZlZhbHVlO1xuICAgICAgaWYgKHNoYXBlLnJvdWdoQ29sbGlkZSh4LCB5LCBhclNpemUsIGFyLmFuZ2xlLCB7XG4gICAgICAgIHg6IGFyLngsXG4gICAgICAgIHk6IGFyLnlcbiAgICAgIH0sIGVkZ2VXaWR0aCwgZWRnZVRocmVzaG9sZCkgJiYgc2hhcGUuY29sbGlkZSh4LCB5LCBhclNpemUsIGFyLmFuZ2xlLCB7XG4gICAgICAgIHg6IGFyLngsXG4gICAgICAgIHk6IGFyLnlcbiAgICAgIH0sIGVkZ2VXaWR0aCwgZWRnZVRocmVzaG9sZCkpIHtcbiAgICAgICAgYWRkRWxlKGVkZ2UpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBmb3IgY29tcG91bmQgZ3JhcGhzLCBoaXR0aW5nIGVkZ2UgbWF5IGFjdHVhbGx5IHdhbnQgYSBjb25uZWN0ZWQgbm9kZSBpbnN0ZWFkIChiL2MgZWRnZSBtYXkgaGF2ZSBncmVhdGVyIHotaW5kZXggcHJlY2VkZW5jZSlcbiAgICBpZiAoaGFzQ29tcG91bmRzICYmIG5lYXIubGVuZ3RoID4gMCkge1xuICAgICAgY2hlY2tOb2RlKHNyYyk7XG4gICAgICBjaGVja05vZGUodGd0KTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gcHJlcHJvcChvYmosIG5hbWUsIHByZSkge1xuICAgIHJldHVybiBnZXRQcmVmaXhlZFByb3BlcnR5KG9iaiwgbmFtZSwgcHJlKTtcbiAgfVxuICBmdW5jdGlvbiBjaGVja0xhYmVsKGVsZSwgcHJlZml4KSB7XG4gICAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICAgIHZhciB0aCA9IGxhYmVsVGhyZXNob2xkO1xuICAgIHZhciBwcmVmaXhEYXNoO1xuICAgIGlmIChwcmVmaXgpIHtcbiAgICAgIHByZWZpeERhc2ggPSBwcmVmaXggKyAnLSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZWZpeERhc2ggPSAnJztcbiAgICB9XG4gICAgZWxlLmJvdW5kaW5nQm94KCk7XG4gICAgdmFyIGJiID0gX3AubGFiZWxCb3VuZHNbcHJlZml4IHx8ICdtYWluJ107XG4gICAgdmFyIHRleHQgPSBlbGUucHN0eWxlKHByZWZpeERhc2ggKyAnbGFiZWwnKS52YWx1ZTtcbiAgICB2YXIgZXZlbnRzRW5hYmxlZCA9IGVsZS5wc3R5bGUoJ3RleHQtZXZlbnRzJykuc3RyVmFsdWUgPT09ICd5ZXMnO1xuICAgIGlmICghZXZlbnRzRW5hYmxlZCB8fCAhdGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgbHggPSBwcmVwcm9wKF9wLnJzY3JhdGNoLCAnbGFiZWxYJywgcHJlZml4KTtcbiAgICB2YXIgbHkgPSBwcmVwcm9wKF9wLnJzY3JhdGNoLCAnbGFiZWxZJywgcHJlZml4KTtcbiAgICB2YXIgdGhldGEgPSBwcmVwcm9wKF9wLnJzY3JhdGNoLCAnbGFiZWxBbmdsZScsIHByZWZpeCk7XG4gICAgdmFyIG94ID0gZWxlLnBzdHlsZShwcmVmaXhEYXNoICsgJ3RleHQtbWFyZ2luLXgnKS5wZlZhbHVlO1xuICAgIHZhciBveSA9IGVsZS5wc3R5bGUocHJlZml4RGFzaCArICd0ZXh0LW1hcmdpbi15JykucGZWYWx1ZTtcbiAgICB2YXIgbHgxID0gYmIueDEgLSB0aCAtIG94OyAvLyAoLW94LCAtb3kpIGFzIGJiIGFscmVhZHkgaW5jbHVkZXMgbWFyZ2luXG4gICAgdmFyIGx4MiA9IGJiLngyICsgdGggLSBveDsgLy8gYW5kIHJvdGF0aW9uIGlzIGFib3V0IChseCwgbHkpXG4gICAgdmFyIGx5MSA9IGJiLnkxIC0gdGggLSBveTtcbiAgICB2YXIgbHkyID0gYmIueTIgKyB0aCAtIG95O1xuICAgIGlmICh0aGV0YSkge1xuICAgICAgdmFyIGNvcyA9IE1hdGguY29zKHRoZXRhKTtcbiAgICAgIHZhciBzaW4gPSBNYXRoLnNpbih0aGV0YSk7XG4gICAgICB2YXIgcm90YXRlID0gZnVuY3Rpb24gcm90YXRlKHgsIHkpIHtcbiAgICAgICAgeCA9IHggLSBseDtcbiAgICAgICAgeSA9IHkgLSBseTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OiB4ICogY29zIC0geSAqIHNpbiArIGx4LFxuICAgICAgICAgIHk6IHggKiBzaW4gKyB5ICogY29zICsgbHlcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICB2YXIgcHgxeTEgPSByb3RhdGUobHgxLCBseTEpO1xuICAgICAgdmFyIHB4MXkyID0gcm90YXRlKGx4MSwgbHkyKTtcbiAgICAgIHZhciBweDJ5MSA9IHJvdGF0ZShseDIsIGx5MSk7XG4gICAgICB2YXIgcHgyeTIgPSByb3RhdGUobHgyLCBseTIpO1xuICAgICAgdmFyIHBvaW50cyA9IFtcbiAgICAgIC8vIHdpdGggdGhlIG1hcmdpbiBhZGRlZCBhZnRlciB0aGUgcm90YXRpb24gaXMgYXBwbGllZFxuICAgICAgcHgxeTEueCArIG94LCBweDF5MS55ICsgb3ksIHB4MnkxLnggKyBveCwgcHgyeTEueSArIG95LCBweDJ5Mi54ICsgb3gsIHB4MnkyLnkgKyBveSwgcHgxeTIueCArIG94LCBweDF5Mi55ICsgb3ldO1xuICAgICAgaWYgKHBvaW50SW5zaWRlUG9seWdvblBvaW50cyh4LCB5LCBwb2ludHMpKSB7XG4gICAgICAgIGFkZEVsZShlbGUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZG8gYSBjaGVhcGVyIGJiIGNoZWNrXG4gICAgICBpZiAoaW5Cb3VuZGluZ0JveChiYiwgeCwgeSkpIHtcbiAgICAgICAgYWRkRWxlKGVsZSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBmb3IgKHZhciBpID0gZWxlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIC8vIHJldmVyc2Ugb3JkZXIgZm9yIHByZWNlZGVuY2VcbiAgICB2YXIgZWxlID0gZWxlc1tpXTtcbiAgICBpZiAoZWxlLmlzTm9kZSgpKSB7XG4gICAgICBjaGVja05vZGUoZWxlKSB8fCBjaGVja0xhYmVsKGVsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoZW4gZWRnZVxuICAgICAgY2hlY2tFZGdlKGVsZSkgfHwgY2hlY2tMYWJlbChlbGUpIHx8IGNoZWNrTGFiZWwoZWxlLCAnc291cmNlJykgfHwgY2hlY2tMYWJlbChlbGUsICd0YXJnZXQnKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5lYXI7XG59O1xuXG4vLyAnR2l2ZSBtZSBldmVyeXRoaW5nIGZyb20gdGhpcyBib3gnXG5CUnAkZS5nZXRBbGxJbkJveCA9IGZ1bmN0aW9uICh4MSwgeTEsIHgyLCB5Mikge1xuICB2YXIgZWxlcyA9IHRoaXMuZ2V0Q2FjaGVkWlNvcnRlZEVsZXMoKS5pbnRlcmFjdGl2ZTtcbiAgdmFyIGJveCA9IFtdO1xuICB2YXIgeDFjID0gTWF0aC5taW4oeDEsIHgyKTtcbiAgdmFyIHgyYyA9IE1hdGgubWF4KHgxLCB4Mik7XG4gIHZhciB5MWMgPSBNYXRoLm1pbih5MSwgeTIpO1xuICB2YXIgeTJjID0gTWF0aC5tYXgoeTEsIHkyKTtcbiAgeDEgPSB4MWM7XG4gIHgyID0geDJjO1xuICB5MSA9IHkxYztcbiAgeTIgPSB5MmM7XG4gIHZhciBib3hCYiA9IG1ha2VCb3VuZGluZ0JveCh7XG4gICAgeDE6IHgxLFxuICAgIHkxOiB5MSxcbiAgICB4MjogeDIsXG4gICAgeTI6IHkyXG4gIH0pO1xuICBmb3IgKHZhciBlID0gMDsgZSA8IGVsZXMubGVuZ3RoOyBlKyspIHtcbiAgICB2YXIgZWxlID0gZWxlc1tlXTtcbiAgICBpZiAoZWxlLmlzTm9kZSgpKSB7XG4gICAgICB2YXIgbm9kZSA9IGVsZTtcbiAgICAgIHZhciBub2RlQmIgPSBub2RlLmJvdW5kaW5nQm94KHtcbiAgICAgICAgaW5jbHVkZU5vZGVzOiB0cnVlLFxuICAgICAgICBpbmNsdWRlRWRnZXM6IGZhbHNlLFxuICAgICAgICBpbmNsdWRlTGFiZWxzOiBmYWxzZVxuICAgICAgfSk7XG4gICAgICBpZiAoYm91bmRpbmdCb3hlc0ludGVyc2VjdChib3hCYiwgbm9kZUJiKSAmJiAhYm91bmRpbmdCb3hJbkJvdW5kaW5nQm94KG5vZGVCYiwgYm94QmIpKSB7XG4gICAgICAgIGJveC5wdXNoKG5vZGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZWRnZSA9IGVsZTtcbiAgICAgIHZhciBfcCA9IGVkZ2UuX3ByaXZhdGU7XG4gICAgICB2YXIgcnMgPSBfcC5yc2NyYXRjaDtcbiAgICAgIGlmIChycy5zdGFydFggIT0gbnVsbCAmJiBycy5zdGFydFkgIT0gbnVsbCAmJiAhaW5Cb3VuZGluZ0JveChib3hCYiwgcnMuc3RhcnRYLCBycy5zdGFydFkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHJzLmVuZFggIT0gbnVsbCAmJiBycy5lbmRZICE9IG51bGwgJiYgIWluQm91bmRpbmdCb3goYm94QmIsIHJzLmVuZFgsIHJzLmVuZFkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHJzLmVkZ2VUeXBlID09PSAnYmV6aWVyJyB8fCBycy5lZGdlVHlwZSA9PT0gJ211bHRpYmV6aWVyJyB8fCBycy5lZGdlVHlwZSA9PT0gJ3NlbGYnIHx8IHJzLmVkZ2VUeXBlID09PSAnY29tcG91bmQnIHx8IHJzLmVkZ2VUeXBlID09PSAnc2VnbWVudHMnIHx8IHJzLmVkZ2VUeXBlID09PSAnaGF5c3RhY2snKSB7XG4gICAgICAgIHZhciBwdHMgPSBfcC5yc3R5bGUuYmV6aWVyUHRzIHx8IF9wLnJzdHlsZS5saW5lUHRzIHx8IF9wLnJzdHlsZS5oYXlzdGFja1B0cztcbiAgICAgICAgdmFyIGFsbEluc2lkZSA9IHRydWU7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKCFwb2ludEluQm91bmRpbmdCb3goYm94QmIsIHB0c1tpXSkpIHtcbiAgICAgICAgICAgIGFsbEluc2lkZSA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxJbnNpZGUpIHtcbiAgICAgICAgICBib3gucHVzaChlZGdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChycy5lZGdlVHlwZSA9PT0gJ2hheXN0YWNrJyB8fCBycy5lZGdlVHlwZSA9PT0gJ3N0cmFpZ2h0Jykge1xuICAgICAgICBib3gucHVzaChlZGdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJveDtcbn07XG5cbnZhciBCUnAkZCA9IHt9O1xuQlJwJGQuY2FsY3VsYXRlQXJyb3dBbmdsZXMgPSBmdW5jdGlvbiAoZWRnZSkge1xuICB2YXIgcnMgPSBlZGdlLl9wcml2YXRlLnJzY3JhdGNoO1xuICB2YXIgaXNIYXlzdGFjayA9IHJzLmVkZ2VUeXBlID09PSAnaGF5c3RhY2snO1xuICB2YXIgaXNCZXppZXIgPSBycy5lZGdlVHlwZSA9PT0gJ2Jlemllcic7XG4gIHZhciBpc011bHRpYmV6aWVyID0gcnMuZWRnZVR5cGUgPT09ICdtdWx0aWJlemllcic7XG4gIHZhciBpc1NlZ21lbnRzID0gcnMuZWRnZVR5cGUgPT09ICdzZWdtZW50cyc7XG4gIHZhciBpc0NvbXBvdW5kID0gcnMuZWRnZVR5cGUgPT09ICdjb21wb3VuZCc7XG4gIHZhciBpc1NlbGYgPSBycy5lZGdlVHlwZSA9PT0gJ3NlbGYnO1xuXG4gIC8vIERpc3BsYWNlbWVudCBnaXZlcyBkaXJlY3Rpb24gZm9yIGFycm93aGVhZCBvcmllbnRhdGlvblxuICB2YXIgZGlzcFgsIGRpc3BZO1xuICB2YXIgc3RhcnRYLCBzdGFydFksIGVuZFgsIGVuZFksIG1pZFgsIG1pZFk7XG4gIGlmIChpc0hheXN0YWNrKSB7XG4gICAgc3RhcnRYID0gcnMuaGF5c3RhY2tQdHNbMF07XG4gICAgc3RhcnRZID0gcnMuaGF5c3RhY2tQdHNbMV07XG4gICAgZW5kWCA9IHJzLmhheXN0YWNrUHRzWzJdO1xuICAgIGVuZFkgPSBycy5oYXlzdGFja1B0c1szXTtcbiAgfSBlbHNlIHtcbiAgICBzdGFydFggPSBycy5hcnJvd1N0YXJ0WDtcbiAgICBzdGFydFkgPSBycy5hcnJvd1N0YXJ0WTtcbiAgICBlbmRYID0gcnMuYXJyb3dFbmRYO1xuICAgIGVuZFkgPSBycy5hcnJvd0VuZFk7XG4gIH1cbiAgbWlkWCA9IHJzLm1pZFg7XG4gIG1pZFkgPSBycy5taWRZO1xuXG4gIC8vIHNvdXJjZVxuICAvL1xuXG4gIGlmIChpc1NlZ21lbnRzKSB7XG4gICAgZGlzcFggPSBzdGFydFggLSBycy5zZWdwdHNbMF07XG4gICAgZGlzcFkgPSBzdGFydFkgLSBycy5zZWdwdHNbMV07XG4gIH0gZWxzZSBpZiAoaXNNdWx0aWJlemllciB8fCBpc0NvbXBvdW5kIHx8IGlzU2VsZiB8fCBpc0Jlemllcikge1xuICAgIHZhciBwdHMgPSBycy5hbGxwdHM7XG4gICAgdmFyIGJYID0gcWJlemllckF0KHB0c1swXSwgcHRzWzJdLCBwdHNbNF0sIDAuMSk7XG4gICAgdmFyIGJZID0gcWJlemllckF0KHB0c1sxXSwgcHRzWzNdLCBwdHNbNV0sIDAuMSk7XG4gICAgZGlzcFggPSBzdGFydFggLSBiWDtcbiAgICBkaXNwWSA9IHN0YXJ0WSAtIGJZO1xuICB9IGVsc2Uge1xuICAgIGRpc3BYID0gc3RhcnRYIC0gbWlkWDtcbiAgICBkaXNwWSA9IHN0YXJ0WSAtIG1pZFk7XG4gIH1cbiAgcnMuc3JjQXJyb3dBbmdsZSA9IGdldEFuZ2xlRnJvbURpc3AoZGlzcFgsIGRpc3BZKTtcblxuICAvLyBtaWQgdGFyZ2V0XG4gIC8vXG5cbiAgdmFyIG1pZFggPSBycy5taWRYO1xuICB2YXIgbWlkWSA9IHJzLm1pZFk7XG4gIGlmIChpc0hheXN0YWNrKSB7XG4gICAgbWlkWCA9IChzdGFydFggKyBlbmRYKSAvIDI7XG4gICAgbWlkWSA9IChzdGFydFkgKyBlbmRZKSAvIDI7XG4gIH1cbiAgZGlzcFggPSBlbmRYIC0gc3RhcnRYO1xuICBkaXNwWSA9IGVuZFkgLSBzdGFydFk7XG4gIGlmIChpc1NlZ21lbnRzKSB7XG4gICAgdmFyIHB0cyA9IHJzLmFsbHB0cztcbiAgICBpZiAocHRzLmxlbmd0aCAvIDIgJSAyID09PSAwKSB7XG4gICAgICB2YXIgaTIgPSBwdHMubGVuZ3RoIC8gMjtcbiAgICAgIHZhciBpMSA9IGkyIC0gMjtcbiAgICAgIGRpc3BYID0gcHRzW2kyXSAtIHB0c1tpMV07XG4gICAgICBkaXNwWSA9IHB0c1tpMiArIDFdIC0gcHRzW2kxICsgMV07XG4gICAgfSBlbHNlIGlmIChycy5pc1JvdW5kKSB7XG4gICAgICBkaXNwWCA9IHJzLm1pZFZlY3RvclsxXTtcbiAgICAgIGRpc3BZID0gLXJzLm1pZFZlY3RvclswXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGkyID0gcHRzLmxlbmd0aCAvIDIgLSAxO1xuICAgICAgdmFyIGkxID0gaTIgLSAyO1xuICAgICAgZGlzcFggPSBwdHNbaTJdIC0gcHRzW2kxXTtcbiAgICAgIGRpc3BZID0gcHRzW2kyICsgMV0gLSBwdHNbaTEgKyAxXTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNNdWx0aWJlemllciB8fCBpc0NvbXBvdW5kIHx8IGlzU2VsZikge1xuICAgIHZhciBwdHMgPSBycy5hbGxwdHM7XG4gICAgdmFyIGNwdHMgPSBycy5jdHJscHRzO1xuICAgIHZhciBicDB4LCBicDB5O1xuICAgIHZhciBicDF4LCBicDF5O1xuICAgIGlmIChjcHRzLmxlbmd0aCAvIDIgJSAyID09PSAwKSB7XG4gICAgICB2YXIgcDAgPSBwdHMubGVuZ3RoIC8gMiAtIDE7IC8vIHN0YXJ0cHRcbiAgICAgIHZhciBpYyA9IHAwICsgMjtcbiAgICAgIHZhciBwMSA9IGljICsgMjtcbiAgICAgIGJwMHggPSBxYmV6aWVyQXQocHRzW3AwXSwgcHRzW2ljXSwgcHRzW3AxXSwgMC4wKTtcbiAgICAgIGJwMHkgPSBxYmV6aWVyQXQocHRzW3AwICsgMV0sIHB0c1tpYyArIDFdLCBwdHNbcDEgKyAxXSwgMC4wKTtcbiAgICAgIGJwMXggPSBxYmV6aWVyQXQocHRzW3AwXSwgcHRzW2ljXSwgcHRzW3AxXSwgMC4wMDAxKTtcbiAgICAgIGJwMXkgPSBxYmV6aWVyQXQocHRzW3AwICsgMV0sIHB0c1tpYyArIDFdLCBwdHNbcDEgKyAxXSwgMC4wMDAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGljID0gcHRzLmxlbmd0aCAvIDIgLSAxOyAvLyBjdHJwdFxuICAgICAgdmFyIHAwID0gaWMgLSAyOyAvLyBzdGFydHB0XG4gICAgICB2YXIgcDEgPSBpYyArIDI7IC8vIGVuZHB0XG5cbiAgICAgIGJwMHggPSBxYmV6aWVyQXQocHRzW3AwXSwgcHRzW2ljXSwgcHRzW3AxXSwgMC40OTk5KTtcbiAgICAgIGJwMHkgPSBxYmV6aWVyQXQocHRzW3AwICsgMV0sIHB0c1tpYyArIDFdLCBwdHNbcDEgKyAxXSwgMC40OTk5KTtcbiAgICAgIGJwMXggPSBxYmV6aWVyQXQocHRzW3AwXSwgcHRzW2ljXSwgcHRzW3AxXSwgMC41KTtcbiAgICAgIGJwMXkgPSBxYmV6aWVyQXQocHRzW3AwICsgMV0sIHB0c1tpYyArIDFdLCBwdHNbcDEgKyAxXSwgMC41KTtcbiAgICB9XG4gICAgZGlzcFggPSBicDF4IC0gYnAweDtcbiAgICBkaXNwWSA9IGJwMXkgLSBicDB5O1xuICB9XG4gIHJzLm1pZHRndEFycm93QW5nbGUgPSBnZXRBbmdsZUZyb21EaXNwKGRpc3BYLCBkaXNwWSk7XG4gIHJzLm1pZERpc3BYID0gZGlzcFg7XG4gIHJzLm1pZERpc3BZID0gZGlzcFk7XG5cbiAgLy8gbWlkIHNvdXJjZVxuICAvL1xuXG4gIGRpc3BYICo9IC0xO1xuICBkaXNwWSAqPSAtMTtcbiAgaWYgKGlzU2VnbWVudHMpIHtcbiAgICB2YXIgcHRzID0gcnMuYWxscHRzO1xuICAgIGlmIChwdHMubGVuZ3RoIC8gMiAlIDIgPT09IDApIDsgZWxzZSBpZiAoIXJzLmlzUm91bmQpIHtcbiAgICAgIHZhciBpMiA9IHB0cy5sZW5ndGggLyAyIC0gMTtcbiAgICAgIHZhciBpMyA9IGkyICsgMjtcbiAgICAgIGRpc3BYID0gLShwdHNbaTNdIC0gcHRzW2kyXSk7XG4gICAgICBkaXNwWSA9IC0ocHRzW2kzICsgMV0gLSBwdHNbaTIgKyAxXSk7XG4gICAgfVxuICB9XG4gIHJzLm1pZHNyY0Fycm93QW5nbGUgPSBnZXRBbmdsZUZyb21EaXNwKGRpc3BYLCBkaXNwWSk7XG5cbiAgLy8gdGFyZ2V0XG4gIC8vXG5cbiAgaWYgKGlzU2VnbWVudHMpIHtcbiAgICBkaXNwWCA9IGVuZFggLSBycy5zZWdwdHNbcnMuc2VncHRzLmxlbmd0aCAtIDJdO1xuICAgIGRpc3BZID0gZW5kWSAtIHJzLnNlZ3B0c1tycy5zZWdwdHMubGVuZ3RoIC0gMV07XG4gIH0gZWxzZSBpZiAoaXNNdWx0aWJlemllciB8fCBpc0NvbXBvdW5kIHx8IGlzU2VsZiB8fCBpc0Jlemllcikge1xuICAgIHZhciBwdHMgPSBycy5hbGxwdHM7XG4gICAgdmFyIGwgPSBwdHMubGVuZ3RoO1xuICAgIHZhciBiWCA9IHFiZXppZXJBdChwdHNbbCAtIDZdLCBwdHNbbCAtIDRdLCBwdHNbbCAtIDJdLCAwLjkpO1xuICAgIHZhciBiWSA9IHFiZXppZXJBdChwdHNbbCAtIDVdLCBwdHNbbCAtIDNdLCBwdHNbbCAtIDFdLCAwLjkpO1xuICAgIGRpc3BYID0gZW5kWCAtIGJYO1xuICAgIGRpc3BZID0gZW5kWSAtIGJZO1xuICB9IGVsc2Uge1xuICAgIGRpc3BYID0gZW5kWCAtIG1pZFg7XG4gICAgZGlzcFkgPSBlbmRZIC0gbWlkWTtcbiAgfVxuICBycy50Z3RBcnJvd0FuZ2xlID0gZ2V0QW5nbGVGcm9tRGlzcChkaXNwWCwgZGlzcFkpO1xufTtcbkJScCRkLmdldEFycm93V2lkdGggPSBCUnAkZC5nZXRBcnJvd0hlaWdodCA9IGZ1bmN0aW9uIChlZGdlV2lkdGgsIHNjYWxlKSB7XG4gIHZhciBjYWNoZSA9IHRoaXMuYXJyb3dXaWR0aENhY2hlID0gdGhpcy5hcnJvd1dpZHRoQ2FjaGUgfHwge307XG4gIHZhciBjYWNoZWRWYWwgPSBjYWNoZVtlZGdlV2lkdGggKyAnLCAnICsgc2NhbGVdO1xuICBpZiAoY2FjaGVkVmFsKSB7XG4gICAgcmV0dXJuIGNhY2hlZFZhbDtcbiAgfVxuICBjYWNoZWRWYWwgPSBNYXRoLm1heChNYXRoLnBvdyhlZGdlV2lkdGggKiAxMy4zNywgMC45KSwgMjkpICogc2NhbGU7XG4gIGNhY2hlW2VkZ2VXaWR0aCArICcsICcgKyBzY2FsZV0gPSBjYWNoZWRWYWw7XG4gIHJldHVybiBjYWNoZWRWYWw7XG59O1xuXG4vKipcbiAqIEV4cGxhaW5lZCBieSBCbGluZG1hbjY3IGF0IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80NDg1NjkyNS8xMTAyODgyOFxuICovXG5cbi8vIERlY2xhcmUgcmV1c2VkIHZhcmlhYmxlIHRvIGF2b2lkIHJlYWxsb2NhdGluZyB2YXJpYWJsZXMgZXZlcnkgdGltZSB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkXG52YXIgeCxcbiAgeSxcbiAgdjEgPSB7fSxcbiAgdjIgPSB7fSxcbiAgc2luQSxcbiAgc2luQTkwLFxuICByYWREaXJlY3Rpb24sXG4gIGRyYXdEaXJlY3Rpb24sXG4gIGFuZ2xlLFxuICBoYWxmQW5nbGUsXG4gIGNSYWRpdXMsXG4gIGxlbk91dCxcbiAgcmFkaXVzLFxuICBsaW1pdDtcbnZhciBzdGFydFgsIHN0YXJ0WSwgc3RvcFgsIHN0b3BZO1xudmFyIGxhc3RQb2ludDtcblxuLy8gY29udmVydCAyIHBvaW50cyBpbnRvIHZlY3RvciBmb3JtLCBwb2xhciBmb3JtLCBhbmQgbm9ybWFsaXNlZFxudmFyIGFzVmVjID0gZnVuY3Rpb24gYXNWZWMocCwgcHAsIHYpIHtcbiAgdi54ID0gcHAueCAtIHAueDtcbiAgdi55ID0gcHAueSAtIHAueTtcbiAgdi5sZW4gPSBNYXRoLnNxcnQodi54ICogdi54ICsgdi55ICogdi55KTtcbiAgdi5ueCA9IHYueCAvIHYubGVuO1xuICB2Lm55ID0gdi55IC8gdi5sZW47XG4gIHYuYW5nID0gTWF0aC5hdGFuMih2Lm55LCB2Lm54KTtcbn07XG52YXIgaW52ZXJ0VmVjID0gZnVuY3Rpb24gaW52ZXJ0VmVjKG9yaWdpbmFsViwgaW52ZXJ0ZWRWKSB7XG4gIGludmVydGVkVi54ID0gb3JpZ2luYWxWLnggKiAtMTtcbiAgaW52ZXJ0ZWRWLnkgPSBvcmlnaW5hbFYueSAqIC0xO1xuICBpbnZlcnRlZFYubnggPSBvcmlnaW5hbFYubnggKiAtMTtcbiAgaW52ZXJ0ZWRWLm55ID0gb3JpZ2luYWxWLm55ICogLTE7XG4gIGludmVydGVkVi5hbmcgPSBvcmlnaW5hbFYuYW5nID4gMCA/IC0oTWF0aC5QSSAtIG9yaWdpbmFsVi5hbmcpIDogTWF0aC5QSSArIG9yaWdpbmFsVi5hbmc7XG59O1xudmFyIGNhbGNDb3JuZXJBcmMgPSBmdW5jdGlvbiBjYWxjQ29ybmVyQXJjKHByZXZpb3VzUG9pbnQsIGN1cnJlbnRQb2ludCwgbmV4dFBvaW50LCByYWRpdXNNYXgsIGlzQXJjUmFkaXVzKSB7XG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gUGFydCAxXG4gIHByZXZpb3VzUG9pbnQgIT09IGxhc3RQb2ludCA/IGFzVmVjKGN1cnJlbnRQb2ludCwgcHJldmlvdXNQb2ludCwgdjEpIDogaW52ZXJ0VmVjKHYyLCB2MSk7IC8vIEF2b2lkIHJlY2FsY3VsYXRpbmcgdmVjIGlmIGl0IGlzIHRoZSBpbnZlcnQgb2YgdGhlIGxhc3Qgb25lIGNhbGN1bGF0ZWRcbiAgYXNWZWMoY3VycmVudFBvaW50LCBuZXh0UG9pbnQsIHYyKTtcbiAgc2luQSA9IHYxLm54ICogdjIubnkgLSB2MS5ueSAqIHYyLm54O1xuICBzaW5BOTAgPSB2MS5ueCAqIHYyLm54IC0gdjEubnkgKiAtdjIubnk7XG4gIGFuZ2xlID0gTWF0aC5hc2luKE1hdGgubWF4KC0xLCBNYXRoLm1pbigxLCBzaW5BKSkpO1xuICBpZiAoTWF0aC5hYnMoYW5nbGUpIDwgMWUtNikge1xuICAgIHggPSBjdXJyZW50UG9pbnQueDtcbiAgICB5ID0gY3VycmVudFBvaW50Lnk7XG4gICAgY1JhZGl1cyA9IHJhZGl1cyA9IDA7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcmFkRGlyZWN0aW9uID0gMTtcbiAgZHJhd0RpcmVjdGlvbiA9IGZhbHNlO1xuICBpZiAoc2luQTkwIDwgMCkge1xuICAgIGlmIChhbmdsZSA8IDApIHtcbiAgICAgIGFuZ2xlID0gTWF0aC5QSSArIGFuZ2xlO1xuICAgIH0gZWxzZSB7XG4gICAgICBhbmdsZSA9IE1hdGguUEkgLSBhbmdsZTtcbiAgICAgIHJhZERpcmVjdGlvbiA9IC0xO1xuICAgICAgZHJhd0RpcmVjdGlvbiA9IHRydWU7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChhbmdsZSA+IDApIHtcbiAgICAgIHJhZERpcmVjdGlvbiA9IC0xO1xuICAgICAgZHJhd0RpcmVjdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG4gIGlmIChjdXJyZW50UG9pbnQucmFkaXVzICE9PSB1bmRlZmluZWQpIHtcbiAgICByYWRpdXMgPSBjdXJyZW50UG9pbnQucmFkaXVzO1xuICB9IGVsc2Uge1xuICAgIHJhZGl1cyA9IHJhZGl1c01heDtcbiAgfVxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFBhcnQgMlxuICBoYWxmQW5nbGUgPSBhbmdsZSAvIDI7XG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBsaW1pdCA9IE1hdGgubWluKHYxLmxlbiAvIDIsIHYyLmxlbiAvIDIpO1xuICBpZiAoaXNBcmNSYWRpdXMpIHtcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gUGFydCAzXG4gICAgbGVuT3V0ID0gTWF0aC5hYnMoTWF0aC5jb3MoaGFsZkFuZ2xlKSAqIHJhZGl1cyAvIE1hdGguc2luKGhhbGZBbmdsZSkpO1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFNwZWNpYWwgcGFydCBBXG4gICAgaWYgKGxlbk91dCA+IGxpbWl0KSB7XG4gICAgICBsZW5PdXQgPSBsaW1pdDtcbiAgICAgIGNSYWRpdXMgPSBNYXRoLmFicyhsZW5PdXQgKiBNYXRoLnNpbihoYWxmQW5nbGUpIC8gTWF0aC5jb3MoaGFsZkFuZ2xlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNSYWRpdXMgPSByYWRpdXM7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxlbk91dCA9IE1hdGgubWluKGxpbWl0LCByYWRpdXMpO1xuICAgIGNSYWRpdXMgPSBNYXRoLmFicyhsZW5PdXQgKiBNYXRoLnNpbihoYWxmQW5nbGUpIC8gTWF0aC5jb3MoaGFsZkFuZ2xlKSk7XG4gIH1cbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gUGFydCA0XG4gIHN0b3BYID0gY3VycmVudFBvaW50LnggKyB2Mi5ueCAqIGxlbk91dDtcbiAgc3RvcFkgPSBjdXJyZW50UG9pbnQueSArIHYyLm55ICogbGVuT3V0O1xuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFBhcnQgNVxuICB4ID0gc3RvcFggLSB2Mi5ueSAqIGNSYWRpdXMgKiByYWREaXJlY3Rpb247XG4gIHkgPSBzdG9wWSArIHYyLm54ICogY1JhZGl1cyAqIHJhZERpcmVjdGlvbjtcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBBZGRpdGlvbmFsIFBhcnQgOiBjYWxjdWxhdGUgc3RhcnQgcG9pbnQgRVxuICBzdGFydFggPSBjdXJyZW50UG9pbnQueCArIHYxLm54ICogbGVuT3V0O1xuICBzdGFydFkgPSBjdXJyZW50UG9pbnQueSArIHYxLm55ICogbGVuT3V0O1xuXG4gIC8vIFNhdmUgbGFzdCBwb2ludCB0byBhdm9pZCByZWNhbGN1bGF0aW5nIHZlY3RvciB3aGVuIG5vdCBuZWVkZWRcbiAgbGFzdFBvaW50ID0gY3VycmVudFBvaW50O1xufTtcblxuLyoqXG4gKiBEcmF3IGNvcm5lciBwcm92aWRlZCBieSB7QGxpbmsgZ2V0Um91bmRDb3JuZXJ9XG4gKlxuICogQHBhcmFtIGN0eCA6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEXG4gKiBAcGFyYW0gcm91bmRDb3JuZXIge3tjeDpudW1iZXIsIGN5Om51bWJlciwgcmFkaXVzOm51bWJlciwgZW5kQW5nbGU6IG51bWJlciwgc3RhcnRBbmdsZTogbnVtYmVyLCBjb3VudGVyQ2xvY2t3aXNlOiBib29sZWFufX1cbiAqL1xuZnVuY3Rpb24gZHJhd1ByZXBhcmVkUm91bmRDb3JuZXIoY3R4LCByb3VuZENvcm5lcikge1xuICBpZiAocm91bmRDb3JuZXIucmFkaXVzID09PSAwKSBjdHgubGluZVRvKHJvdW5kQ29ybmVyLmN4LCByb3VuZENvcm5lci5jeSk7ZWxzZSBjdHguYXJjKHJvdW5kQ29ybmVyLmN4LCByb3VuZENvcm5lci5jeSwgcm91bmRDb3JuZXIucmFkaXVzLCByb3VuZENvcm5lci5zdGFydEFuZ2xlLCByb3VuZENvcm5lci5lbmRBbmdsZSwgcm91bmRDb3JuZXIuY291bnRlckNsb2Nrd2lzZSk7XG59XG5cbi8qKlxuICogR2V0IHJvdW5kIGNvcm5lciBmcm9tIGEgcG9pbnQgYW5kIGl0cyBwcmV2aW91cyBhbmQgbmV4dCBuZWlnaGJvdXJzIGluIGEgcGF0aFxuICpcbiAqIEBwYXJhbSBwcmV2aW91c1BvaW50IHt7eDogbnVtYmVyLCB5Om51bWJlciwgcmFkaXVzOiBudW1iZXI/fX1cbiAqIEBwYXJhbSBjdXJyZW50UG9pbnQge3t4OiBudW1iZXIsIHk6bnVtYmVyLCByYWRpdXM6IG51bWJlcj99fVxuICogQHBhcmFtIG5leHRQb2ludCB7e3g6IG51bWJlciwgeTpudW1iZXIsIHJhZGl1czogbnVtYmVyP319XG4gKiBAcGFyYW0gcmFkaXVzTWF4IDpudW1iZXJcbiAqIEBwYXJhbSBpc0FyY1JhZGl1cyA6Ym9vbGVhblxuICogQHJldHVybiB7e1xuICogY3g6bnVtYmVyLCBjeTpudW1iZXIsIHJhZGl1czpudW1iZXIsXG4gKiBzdGFydFg6bnVtYmVyLCBzdGFydFk6bnVtYmVyLFxuICogc3RvcFg6bnVtYmVyLCBzdG9wWTogbnVtYmVyLFxuICogZW5kQW5nbGU6IG51bWJlciwgc3RhcnRBbmdsZTogbnVtYmVyLCBjb3VudGVyQ2xvY2t3aXNlOiBib29sZWFuXG4gKiB9fVxuICovXG5mdW5jdGlvbiBnZXRSb3VuZENvcm5lcihwcmV2aW91c1BvaW50LCBjdXJyZW50UG9pbnQsIG5leHRQb2ludCwgcmFkaXVzTWF4KSB7XG4gIHZhciBpc0FyY1JhZGl1cyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogdHJ1ZTtcbiAgaWYgKHJhZGl1c01heCA9PT0gMCB8fCBjdXJyZW50UG9pbnQucmFkaXVzID09PSAwKSByZXR1cm4ge1xuICAgIGN4OiBjdXJyZW50UG9pbnQueCxcbiAgICBjeTogY3VycmVudFBvaW50LnksXG4gICAgcmFkaXVzOiAwLFxuICAgIHN0YXJ0WDogY3VycmVudFBvaW50LngsXG4gICAgc3RhcnRZOiBjdXJyZW50UG9pbnQueSxcbiAgICBzdG9wWDogY3VycmVudFBvaW50LngsXG4gICAgc3RvcFk6IGN1cnJlbnRQb2ludC55LFxuICAgIHN0YXJ0QW5nbGU6IHVuZGVmaW5lZCxcbiAgICBlbmRBbmdsZTogdW5kZWZpbmVkLFxuICAgIGNvdW50ZXJDbG9ja3dpc2U6IHVuZGVmaW5lZFxuICB9O1xuICBjYWxjQ29ybmVyQXJjKHByZXZpb3VzUG9pbnQsIGN1cnJlbnRQb2ludCwgbmV4dFBvaW50LCByYWRpdXNNYXgsIGlzQXJjUmFkaXVzKTtcbiAgcmV0dXJuIHtcbiAgICBjeDogeCxcbiAgICBjeTogeSxcbiAgICByYWRpdXM6IGNSYWRpdXMsXG4gICAgc3RhcnRYOiBzdGFydFgsXG4gICAgc3RhcnRZOiBzdGFydFksXG4gICAgc3RvcFg6IHN0b3BYLFxuICAgIHN0b3BZOiBzdG9wWSxcbiAgICBzdGFydEFuZ2xlOiB2MS5hbmcgKyBNYXRoLlBJIC8gMiAqIHJhZERpcmVjdGlvbixcbiAgICBlbmRBbmdsZTogdjIuYW5nIC0gTWF0aC5QSSAvIDIgKiByYWREaXJlY3Rpb24sXG4gICAgY291bnRlckNsb2Nrd2lzZTogZHJhd0RpcmVjdGlvblxuICB9O1xufVxuXG52YXIgQlJwJGMgPSB7fTtcbkJScCRjLmZpbmRNaWRwdFB0c0V0YyA9IGZ1bmN0aW9uIChlZGdlLCBwYWlySW5mbykge1xuICB2YXIgcG9zUHRzID0gcGFpckluZm8ucG9zUHRzLFxuICAgIGludGVyc2VjdGlvblB0cyA9IHBhaXJJbmZvLmludGVyc2VjdGlvblB0cyxcbiAgICB2ZWN0b3JOb3JtSW52ZXJzZSA9IHBhaXJJbmZvLnZlY3Rvck5vcm1JbnZlcnNlO1xuICB2YXIgbWlkcHRQdHM7XG5cbiAgLy8gbi5iLiBhc3N1bWVzIGFsbCBlZGdlcyBpbiBiZXppZXIgYnVuZGxlIGhhdmUgc2FtZSBlbmRwb2ludHMgc3BlY2lmaWVkXG4gIHZhciBzcmNNYW5FbmRwdCA9IGVkZ2UucHN0eWxlKCdzb3VyY2UtZW5kcG9pbnQnKTtcbiAgdmFyIHRndE1hbkVuZHB0ID0gZWRnZS5wc3R5bGUoJ3RhcmdldC1lbmRwb2ludCcpO1xuICB2YXIgaGF2ZU1hbnVhbEVuZFB0cyA9IHNyY01hbkVuZHB0LnVuaXRzICE9IG51bGwgJiYgdGd0TWFuRW5kcHQudW5pdHMgIT0gbnVsbDtcbiAgdmFyIHJlY2FsY1ZlY3Rvck5vcm1JbnZlcnNlID0gZnVuY3Rpb24gcmVjYWxjVmVjdG9yTm9ybUludmVyc2UoeDEsIHkxLCB4MiwgeTIpIHtcbiAgICB2YXIgZHkgPSB5MiAtIHkxO1xuICAgIHZhciBkeCA9IHgyIC0geDE7XG4gICAgdmFyIGwgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpO1xuICAgIHJldHVybiB7XG4gICAgICB4OiAtZHkgLyBsLFxuICAgICAgeTogZHggLyBsXG4gICAgfTtcbiAgfTtcbiAgdmFyIGVkZ2VEaXN0YW5jZXMgPSBlZGdlLnBzdHlsZSgnZWRnZS1kaXN0YW5jZXMnKS52YWx1ZTtcbiAgc3dpdGNoIChlZGdlRGlzdGFuY2VzKSB7XG4gICAgY2FzZSAnbm9kZS1wb3NpdGlvbic6XG4gICAgICBtaWRwdFB0cyA9IHBvc1B0cztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2ludGVyc2VjdGlvbic6XG4gICAgICBtaWRwdFB0cyA9IGludGVyc2VjdGlvblB0cztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2VuZHBvaW50cyc6XG4gICAgICB7XG4gICAgICAgIGlmIChoYXZlTWFudWFsRW5kUHRzKSB7XG4gICAgICAgICAgdmFyIF90aGlzJG1hbnVhbEVuZHB0VG9QeCA9IHRoaXMubWFudWFsRW5kcHRUb1B4KGVkZ2Uuc291cmNlKClbMF0sIHNyY01hbkVuZHB0KSxcbiAgICAgICAgICAgIF90aGlzJG1hbnVhbEVuZHB0VG9QeDIgPSBfc2xpY2VkVG9BcnJheShfdGhpcyRtYW51YWxFbmRwdFRvUHgsIDIpLFxuICAgICAgICAgICAgeDEgPSBfdGhpcyRtYW51YWxFbmRwdFRvUHgyWzBdLFxuICAgICAgICAgICAgeTEgPSBfdGhpcyRtYW51YWxFbmRwdFRvUHgyWzFdO1xuICAgICAgICAgIHZhciBfdGhpcyRtYW51YWxFbmRwdFRvUHgzID0gdGhpcy5tYW51YWxFbmRwdFRvUHgoZWRnZS50YXJnZXQoKVswXSwgdGd0TWFuRW5kcHQpLFxuICAgICAgICAgICAgX3RoaXMkbWFudWFsRW5kcHRUb1B4NCA9IF9zbGljZWRUb0FycmF5KF90aGlzJG1hbnVhbEVuZHB0VG9QeDMsIDIpLFxuICAgICAgICAgICAgeDIgPSBfdGhpcyRtYW51YWxFbmRwdFRvUHg0WzBdLFxuICAgICAgICAgICAgeTIgPSBfdGhpcyRtYW51YWxFbmRwdFRvUHg0WzFdO1xuICAgICAgICAgIHZhciBlbmRQdHMgPSB7XG4gICAgICAgICAgICB4MTogeDEsXG4gICAgICAgICAgICB5MTogeTEsXG4gICAgICAgICAgICB4MjogeDIsXG4gICAgICAgICAgICB5MjogeTJcbiAgICAgICAgICB9O1xuICAgICAgICAgIHZlY3Rvck5vcm1JbnZlcnNlID0gcmVjYWxjVmVjdG9yTm9ybUludmVyc2UoeDEsIHkxLCB4MiwgeTIpO1xuICAgICAgICAgIG1pZHB0UHRzID0gZW5kUHRzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdhcm4oXCJFZGdlIFwiLmNvbmNhdChlZGdlLmlkKCksIFwiIGhhcyBlZGdlLWRpc3RhbmNlczplbmRwb2ludHMgc3BlY2lmaWVkIHdpdGhvdXQgbWFudWFsIGVuZHBvaW50cyBzcGVjaWZpZWQgdmlhIHNvdXJjZS1lbmRwb2ludCBhbmQgdGFyZ2V0LWVuZHBvaW50LiAgRmFsbGluZyBiYWNrIG9uIGVkZ2UtZGlzdGFuY2VzOmludGVyc2VjdGlvbiAoZGVmYXVsdCkuXCIpKTtcbiAgICAgICAgICBtaWRwdFB0cyA9IGludGVyc2VjdGlvblB0czsgLy8gYmFjayB0byBkZWZhdWx0XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIG1pZHB0UHRzOiBtaWRwdFB0cyxcbiAgICB2ZWN0b3JOb3JtSW52ZXJzZTogdmVjdG9yTm9ybUludmVyc2VcbiAgfTtcbn07XG5CUnAkYy5maW5kSGF5c3RhY2tQb2ludHMgPSBmdW5jdGlvbiAoZWRnZXMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlZGdlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBlZGdlID0gZWRnZXNbaV07XG4gICAgdmFyIF9wID0gZWRnZS5fcHJpdmF0ZTtcbiAgICB2YXIgcnMgPSBfcC5yc2NyYXRjaDtcbiAgICBpZiAoIXJzLmhheXN0YWNrKSB7XG4gICAgICB2YXIgYW5nbGUgPSBNYXRoLnJhbmRvbSgpICogMiAqIE1hdGguUEk7XG4gICAgICBycy5zb3VyY2UgPSB7XG4gICAgICAgIHg6IE1hdGguY29zKGFuZ2xlKSxcbiAgICAgICAgeTogTWF0aC5zaW4oYW5nbGUpXG4gICAgICB9O1xuICAgICAgYW5nbGUgPSBNYXRoLnJhbmRvbSgpICogMiAqIE1hdGguUEk7XG4gICAgICBycy50YXJnZXQgPSB7XG4gICAgICAgIHg6IE1hdGguY29zKGFuZ2xlKSxcbiAgICAgICAgeTogTWF0aC5zaW4oYW5nbGUpXG4gICAgICB9O1xuICAgIH1cbiAgICB2YXIgc3JjID0gX3Auc291cmNlO1xuICAgIHZhciB0Z3QgPSBfcC50YXJnZXQ7XG4gICAgdmFyIHNyY1BvcyA9IHNyYy5wb3NpdGlvbigpO1xuICAgIHZhciB0Z3RQb3MgPSB0Z3QucG9zaXRpb24oKTtcbiAgICB2YXIgc3JjVyA9IHNyYy53aWR0aCgpO1xuICAgIHZhciB0Z3RXID0gdGd0LndpZHRoKCk7XG4gICAgdmFyIHNyY0ggPSBzcmMuaGVpZ2h0KCk7XG4gICAgdmFyIHRndEggPSB0Z3QuaGVpZ2h0KCk7XG4gICAgdmFyIHJhZGl1cyA9IGVkZ2UucHN0eWxlKCdoYXlzdGFjay1yYWRpdXMnKS52YWx1ZTtcbiAgICB2YXIgaGFsZlJhZGl1cyA9IHJhZGl1cyAvIDI7IC8vIGIvYyBoYXZlIHRvIGhhbGYgd2lkdGgvaGVpZ2h0XG5cbiAgICBycy5oYXlzdGFja1B0cyA9IHJzLmFsbHB0cyA9IFtycy5zb3VyY2UueCAqIHNyY1cgKiBoYWxmUmFkaXVzICsgc3JjUG9zLngsIHJzLnNvdXJjZS55ICogc3JjSCAqIGhhbGZSYWRpdXMgKyBzcmNQb3MueSwgcnMudGFyZ2V0LnggKiB0Z3RXICogaGFsZlJhZGl1cyArIHRndFBvcy54LCBycy50YXJnZXQueSAqIHRndEggKiBoYWxmUmFkaXVzICsgdGd0UG9zLnldO1xuICAgIHJzLm1pZFggPSAocnMuYWxscHRzWzBdICsgcnMuYWxscHRzWzJdKSAvIDI7XG4gICAgcnMubWlkWSA9IChycy5hbGxwdHNbMV0gKyBycy5hbGxwdHNbM10pIC8gMjtcblxuICAgIC8vIGFsd2F5cyBvdmVycmlkZSBhcyBoYXlzdGFjayBpbiBjYXNlIHNldCB0byBkaWZmZXJlbnQgdHlwZSBwcmV2aW91c2x5XG4gICAgcnMuZWRnZVR5cGUgPSAnaGF5c3RhY2snO1xuICAgIHJzLmhheXN0YWNrID0gdHJ1ZTtcbiAgICB0aGlzLnN0b3JlRWRnZVByb2plY3Rpb25zKGVkZ2UpO1xuICAgIHRoaXMuY2FsY3VsYXRlQXJyb3dBbmdsZXMoZWRnZSk7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUVkZ2VMYWJlbFByb2plY3Rpb25zKGVkZ2UpO1xuICAgIHRoaXMuY2FsY3VsYXRlTGFiZWxBbmdsZXMoZWRnZSk7XG4gIH1cbn07XG5CUnAkYy5maW5kU2VnbWVudHNQb2ludHMgPSBmdW5jdGlvbiAoZWRnZSwgcGFpckluZm8pIHtcbiAgLy8gU2VnbWVudHMgKG11bHRpcGxlIHN0cmFpZ2h0IGxpbmVzKVxuXG4gIHZhciBycyA9IGVkZ2UuX3ByaXZhdGUucnNjcmF0Y2g7XG4gIHZhciBzZWdtZW50V3MgPSBlZGdlLnBzdHlsZSgnc2VnbWVudC13ZWlnaHRzJyk7XG4gIHZhciBzZWdtZW50RHMgPSBlZGdlLnBzdHlsZSgnc2VnbWVudC1kaXN0YW5jZXMnKTtcbiAgdmFyIHNlZ21lbnRScyA9IGVkZ2UucHN0eWxlKCdzZWdtZW50LXJhZGlpJyk7XG4gIHZhciBzZWdtZW50VHMgPSBlZGdlLnBzdHlsZSgncmFkaXVzLXR5cGUnKTtcbiAgdmFyIHNlZ21lbnRzTiA9IE1hdGgubWluKHNlZ21lbnRXcy5wZlZhbHVlLmxlbmd0aCwgc2VnbWVudERzLnBmVmFsdWUubGVuZ3RoKTtcbiAgdmFyIGxhc3RSYWRpdXMgPSBzZWdtZW50UnMucGZWYWx1ZVtzZWdtZW50UnMucGZWYWx1ZS5sZW5ndGggLSAxXTtcbiAgdmFyIGxhc3RSYWRpdXNUeXBlID0gc2VnbWVudFRzLnBmVmFsdWVbc2VnbWVudFRzLnBmVmFsdWUubGVuZ3RoIC0gMV07XG4gIHJzLmVkZ2VUeXBlID0gJ3NlZ21lbnRzJztcbiAgcnMuc2VncHRzID0gW107XG4gIHJzLnJhZGlpID0gW107XG4gIHJzLmlzQXJjUmFkaXVzID0gW107XG4gIGZvciAodmFyIHMgPSAwOyBzIDwgc2VnbWVudHNOOyBzKyspIHtcbiAgICB2YXIgdyA9IHNlZ21lbnRXcy5wZlZhbHVlW3NdO1xuICAgIHZhciBkID0gc2VnbWVudERzLnBmVmFsdWVbc107XG4gICAgdmFyIHcxID0gMSAtIHc7XG4gICAgdmFyIHcyID0gdztcbiAgICB2YXIgX3RoaXMkZmluZE1pZHB0UHRzRXRjID0gdGhpcy5maW5kTWlkcHRQdHNFdGMoZWRnZSwgcGFpckluZm8pLFxuICAgICAgbWlkcHRQdHMgPSBfdGhpcyRmaW5kTWlkcHRQdHNFdGMubWlkcHRQdHMsXG4gICAgICB2ZWN0b3JOb3JtSW52ZXJzZSA9IF90aGlzJGZpbmRNaWRwdFB0c0V0Yy52ZWN0b3JOb3JtSW52ZXJzZTtcbiAgICB2YXIgYWRqdXN0ZWRNaWRwdCA9IHtcbiAgICAgIHg6IG1pZHB0UHRzLngxICogdzEgKyBtaWRwdFB0cy54MiAqIHcyLFxuICAgICAgeTogbWlkcHRQdHMueTEgKiB3MSArIG1pZHB0UHRzLnkyICogdzJcbiAgICB9O1xuICAgIHJzLnNlZ3B0cy5wdXNoKGFkanVzdGVkTWlkcHQueCArIHZlY3Rvck5vcm1JbnZlcnNlLnggKiBkLCBhZGp1c3RlZE1pZHB0LnkgKyB2ZWN0b3JOb3JtSW52ZXJzZS55ICogZCk7XG4gICAgcnMucmFkaWkucHVzaChzZWdtZW50UnMucGZWYWx1ZVtzXSAhPT0gdW5kZWZpbmVkID8gc2VnbWVudFJzLnBmVmFsdWVbc10gOiBsYXN0UmFkaXVzKTtcbiAgICBycy5pc0FyY1JhZGl1cy5wdXNoKChzZWdtZW50VHMucGZWYWx1ZVtzXSAhPT0gdW5kZWZpbmVkID8gc2VnbWVudFRzLnBmVmFsdWVbc10gOiBsYXN0UmFkaXVzVHlwZSkgPT09ICdhcmMtcmFkaXVzJyk7XG4gIH1cbn07XG5CUnAkYy5maW5kTG9vcFBvaW50cyA9IGZ1bmN0aW9uIChlZGdlLCBwYWlySW5mbywgaSwgZWRnZUlzVW5idW5kbGVkKSB7XG4gIC8vIFNlbGYtZWRnZVxuXG4gIHZhciBycyA9IGVkZ2UuX3ByaXZhdGUucnNjcmF0Y2g7XG4gIHZhciBkaXJDb3VudHMgPSBwYWlySW5mby5kaXJDb3VudHMsXG4gICAgc3JjUG9zID0gcGFpckluZm8uc3JjUG9zO1xuICB2YXIgY3RybHB0RGlzdHMgPSBlZGdlLnBzdHlsZSgnY29udHJvbC1wb2ludC1kaXN0YW5jZXMnKTtcbiAgdmFyIGN0cmxwdERpc3QgPSBjdHJscHREaXN0cyA/IGN0cmxwdERpc3RzLnBmVmFsdWVbMF0gOiB1bmRlZmluZWQ7XG4gIHZhciBsb29wRGlyID0gZWRnZS5wc3R5bGUoJ2xvb3AtZGlyZWN0aW9uJykucGZWYWx1ZTtcbiAgdmFyIGxvb3BTd3AgPSBlZGdlLnBzdHlsZSgnbG9vcC1zd2VlcCcpLnBmVmFsdWU7XG4gIHZhciBzdGVwU2l6ZSA9IGVkZ2UucHN0eWxlKCdjb250cm9sLXBvaW50LXN0ZXAtc2l6ZScpLnBmVmFsdWU7XG4gIHJzLmVkZ2VUeXBlID0gJ3NlbGYnO1xuICB2YXIgaiA9IGk7XG4gIHZhciBsb29wRGlzdCA9IHN0ZXBTaXplO1xuICBpZiAoZWRnZUlzVW5idW5kbGVkKSB7XG4gICAgaiA9IDA7XG4gICAgbG9vcERpc3QgPSBjdHJscHREaXN0O1xuICB9XG4gIHZhciBsb29wQW5nbGUgPSBsb29wRGlyIC0gTWF0aC5QSSAvIDI7XG4gIHZhciBvdXRBbmdsZSA9IGxvb3BBbmdsZSAtIGxvb3BTd3AgLyAyO1xuICB2YXIgaW5BbmdsZSA9IGxvb3BBbmdsZSArIGxvb3BTd3AgLyAyO1xuXG4gIC8vIGluY3JlYXNlIGJ5IHN0ZXAgc2l6ZSBmb3Igb3ZlcmxhcHBpbmcgbG9vcHMsIGtleWVkIG9uIGRpcmVjdGlvbiBhbmQgc3dlZXAgdmFsdWVzXG4gIHZhciBkYyA9IFN0cmluZyhsb29wRGlyICsgJ18nICsgbG9vcFN3cCk7XG4gIGogPSBkaXJDb3VudHNbZGNdID09PSB1bmRlZmluZWQgPyBkaXJDb3VudHNbZGNdID0gMCA6ICsrZGlyQ291bnRzW2RjXTtcbiAgcnMuY3RybHB0cyA9IFtzcmNQb3MueCArIE1hdGguY29zKG91dEFuZ2xlKSAqIDEuNCAqIGxvb3BEaXN0ICogKGogLyAzICsgMSksIHNyY1Bvcy55ICsgTWF0aC5zaW4ob3V0QW5nbGUpICogMS40ICogbG9vcERpc3QgKiAoaiAvIDMgKyAxKSwgc3JjUG9zLnggKyBNYXRoLmNvcyhpbkFuZ2xlKSAqIDEuNCAqIGxvb3BEaXN0ICogKGogLyAzICsgMSksIHNyY1Bvcy55ICsgTWF0aC5zaW4oaW5BbmdsZSkgKiAxLjQgKiBsb29wRGlzdCAqIChqIC8gMyArIDEpXTtcbn07XG5CUnAkYy5maW5kQ29tcG91bmRMb29wUG9pbnRzID0gZnVuY3Rpb24gKGVkZ2UsIHBhaXJJbmZvLCBpLCBlZGdlSXNVbmJ1bmRsZWQpIHtcbiAgLy8gQ29tcG91bmQgZWRnZVxuXG4gIHZhciBycyA9IGVkZ2UuX3ByaXZhdGUucnNjcmF0Y2g7XG4gIHJzLmVkZ2VUeXBlID0gJ2NvbXBvdW5kJztcbiAgdmFyIHNyY1BvcyA9IHBhaXJJbmZvLnNyY1BvcyxcbiAgICB0Z3RQb3MgPSBwYWlySW5mby50Z3RQb3MsXG4gICAgc3JjVyA9IHBhaXJJbmZvLnNyY1csXG4gICAgc3JjSCA9IHBhaXJJbmZvLnNyY0gsXG4gICAgdGd0VyA9IHBhaXJJbmZvLnRndFcsXG4gICAgdGd0SCA9IHBhaXJJbmZvLnRndEg7XG4gIHZhciBzdGVwU2l6ZSA9IGVkZ2UucHN0eWxlKCdjb250cm9sLXBvaW50LXN0ZXAtc2l6ZScpLnBmVmFsdWU7XG4gIHZhciBjdHJscHREaXN0cyA9IGVkZ2UucHN0eWxlKCdjb250cm9sLXBvaW50LWRpc3RhbmNlcycpO1xuICB2YXIgY3RybHB0RGlzdCA9IGN0cmxwdERpc3RzID8gY3RybHB0RGlzdHMucGZWYWx1ZVswXSA6IHVuZGVmaW5lZDtcbiAgdmFyIGogPSBpO1xuICB2YXIgbG9vcERpc3QgPSBzdGVwU2l6ZTtcbiAgaWYgKGVkZ2VJc1VuYnVuZGxlZCkge1xuICAgIGogPSAwO1xuICAgIGxvb3BEaXN0ID0gY3RybHB0RGlzdDtcbiAgfVxuICB2YXIgbG9vcFcgPSA1MDtcbiAgdmFyIGxvb3BhUG9zID0ge1xuICAgIHg6IHNyY1Bvcy54IC0gc3JjVyAvIDIsXG4gICAgeTogc3JjUG9zLnkgLSBzcmNIIC8gMlxuICB9O1xuICB2YXIgbG9vcGJQb3MgPSB7XG4gICAgeDogdGd0UG9zLnggLSB0Z3RXIC8gMixcbiAgICB5OiB0Z3RQb3MueSAtIHRndEggLyAyXG4gIH07XG4gIHZhciBsb29wUG9zID0ge1xuICAgIHg6IE1hdGgubWluKGxvb3BhUG9zLngsIGxvb3BiUG9zLngpLFxuICAgIHk6IE1hdGgubWluKGxvb3BhUG9zLnksIGxvb3BiUG9zLnkpXG4gIH07XG5cbiAgLy8gYXZvaWRzIGNhc2VzIHdpdGggaW1wb3NzaWJsZSBiZXppZXJzXG4gIHZhciBtaW5Db21wb3VuZFN0cmV0Y2ggPSAwLjU7XG4gIHZhciBjb21wb3VuZFN0cmV0Y2hBID0gTWF0aC5tYXgobWluQ29tcG91bmRTdHJldGNoLCBNYXRoLmxvZyhzcmNXICogMC4wMSkpO1xuICB2YXIgY29tcG91bmRTdHJldGNoQiA9IE1hdGgubWF4KG1pbkNvbXBvdW5kU3RyZXRjaCwgTWF0aC5sb2codGd0VyAqIDAuMDEpKTtcbiAgcnMuY3RybHB0cyA9IFtsb29wUG9zLngsIGxvb3BQb3MueSAtICgxICsgTWF0aC5wb3cobG9vcFcsIDEuMTIpIC8gMTAwKSAqIGxvb3BEaXN0ICogKGogLyAzICsgMSkgKiBjb21wb3VuZFN0cmV0Y2hBLCBsb29wUG9zLnggLSAoMSArIE1hdGgucG93KGxvb3BXLCAxLjEyKSAvIDEwMCkgKiBsb29wRGlzdCAqIChqIC8gMyArIDEpICogY29tcG91bmRTdHJldGNoQiwgbG9vcFBvcy55XTtcbn07XG5CUnAkYy5maW5kU3RyYWlnaHRFZGdlUG9pbnRzID0gZnVuY3Rpb24gKGVkZ2UpIHtcbiAgLy8gU3RyYWlnaHQgZWRnZSB3aXRoaW4gYnVuZGxlXG5cbiAgZWRnZS5fcHJpdmF0ZS5yc2NyYXRjaC5lZGdlVHlwZSA9ICdzdHJhaWdodCc7XG59O1xuQlJwJGMuZmluZEJlemllclBvaW50cyA9IGZ1bmN0aW9uIChlZGdlLCBwYWlySW5mbywgaSwgZWRnZUlzVW5idW5kbGVkLCBlZGdlSXNTd2FwcGVkKSB7XG4gIHZhciBycyA9IGVkZ2UuX3ByaXZhdGUucnNjcmF0Y2g7XG4gIHZhciBzdGVwU2l6ZSA9IGVkZ2UucHN0eWxlKCdjb250cm9sLXBvaW50LXN0ZXAtc2l6ZScpLnBmVmFsdWU7XG4gIHZhciBjdHJscHREaXN0cyA9IGVkZ2UucHN0eWxlKCdjb250cm9sLXBvaW50LWRpc3RhbmNlcycpO1xuICB2YXIgY3RybHB0V3MgPSBlZGdlLnBzdHlsZSgnY29udHJvbC1wb2ludC13ZWlnaHRzJyk7XG4gIHZhciBiZXppZXJOID0gY3RybHB0RGlzdHMgJiYgY3RybHB0V3MgPyBNYXRoLm1pbihjdHJscHREaXN0cy52YWx1ZS5sZW5ndGgsIGN0cmxwdFdzLnZhbHVlLmxlbmd0aCkgOiAxO1xuICB2YXIgY3RybHB0RGlzdCA9IGN0cmxwdERpc3RzID8gY3RybHB0RGlzdHMucGZWYWx1ZVswXSA6IHVuZGVmaW5lZDtcbiAgdmFyIGN0cmxwdFdlaWdodCA9IGN0cmxwdFdzLnZhbHVlWzBdO1xuXG4gIC8vIChNdWx0aSliZXppZXJcblxuICB2YXIgbXVsdGkgPSBlZGdlSXNVbmJ1bmRsZWQ7XG4gIHJzLmVkZ2VUeXBlID0gbXVsdGkgPyAnbXVsdGliZXppZXInIDogJ2Jlemllcic7XG4gIHJzLmN0cmxwdHMgPSBbXTtcbiAgZm9yICh2YXIgYiA9IDA7IGIgPCBiZXppZXJOOyBiKyspIHtcbiAgICB2YXIgbm9ybWN0cmxwdERpc3QgPSAoMC41IC0gcGFpckluZm8uZWxlcy5sZW5ndGggLyAyICsgaSkgKiBzdGVwU2l6ZSAqIChlZGdlSXNTd2FwcGVkID8gLTEgOiAxKTtcbiAgICB2YXIgbWFuY3RybHB0RGlzdCA9IHZvaWQgMDtcbiAgICB2YXIgc2lnbiA9IHNpZ251bShub3JtY3RybHB0RGlzdCk7XG4gICAgaWYgKG11bHRpKSB7XG4gICAgICBjdHJscHREaXN0ID0gY3RybHB0RGlzdHMgPyBjdHJscHREaXN0cy5wZlZhbHVlW2JdIDogc3RlcFNpemU7IC8vIGZhbGwgYmFjayBvbiBzdGVwIHNpemVcbiAgICAgIGN0cmxwdFdlaWdodCA9IGN0cmxwdFdzLnZhbHVlW2JdO1xuICAgIH1cbiAgICBpZiAoZWRnZUlzVW5idW5kbGVkKSB7XG4gICAgICAvLyBtdWx0aSBvciBzaW5nbGUgdW5idW5kbGVkXG4gICAgICBtYW5jdHJscHREaXN0ID0gY3RybHB0RGlzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgbWFuY3RybHB0RGlzdCA9IGN0cmxwdERpc3QgIT09IHVuZGVmaW5lZCA/IHNpZ24gKiBjdHJscHREaXN0IDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICB2YXIgZGlzdGFuY2VGcm9tTWlkcG9pbnQgPSBtYW5jdHJscHREaXN0ICE9PSB1bmRlZmluZWQgPyBtYW5jdHJscHREaXN0IDogbm9ybWN0cmxwdERpc3Q7XG4gICAgdmFyIHcxID0gMSAtIGN0cmxwdFdlaWdodDtcbiAgICB2YXIgdzIgPSBjdHJscHRXZWlnaHQ7XG4gICAgdmFyIF90aGlzJGZpbmRNaWRwdFB0c0V0YzIgPSB0aGlzLmZpbmRNaWRwdFB0c0V0YyhlZGdlLCBwYWlySW5mbyksXG4gICAgICBtaWRwdFB0cyA9IF90aGlzJGZpbmRNaWRwdFB0c0V0YzIubWlkcHRQdHMsXG4gICAgICB2ZWN0b3JOb3JtSW52ZXJzZSA9IF90aGlzJGZpbmRNaWRwdFB0c0V0YzIudmVjdG9yTm9ybUludmVyc2U7XG4gICAgdmFyIGFkanVzdGVkTWlkcHQgPSB7XG4gICAgICB4OiBtaWRwdFB0cy54MSAqIHcxICsgbWlkcHRQdHMueDIgKiB3MixcbiAgICAgIHk6IG1pZHB0UHRzLnkxICogdzEgKyBtaWRwdFB0cy55MiAqIHcyXG4gICAgfTtcbiAgICBycy5jdHJscHRzLnB1c2goYWRqdXN0ZWRNaWRwdC54ICsgdmVjdG9yTm9ybUludmVyc2UueCAqIGRpc3RhbmNlRnJvbU1pZHBvaW50LCBhZGp1c3RlZE1pZHB0LnkgKyB2ZWN0b3JOb3JtSW52ZXJzZS55ICogZGlzdGFuY2VGcm9tTWlkcG9pbnQpO1xuICB9XG59O1xuQlJwJGMuZmluZFRheGlQb2ludHMgPSBmdW5jdGlvbiAoZWRnZSwgcGFpckluZm8pIHtcbiAgLy8gVGF4aWNhYiBnZW9tZXRyeSB3aXRoIHR3byB0dXJucyBtYXhpbXVtXG5cbiAgdmFyIHJzID0gZWRnZS5fcHJpdmF0ZS5yc2NyYXRjaDtcbiAgcnMuZWRnZVR5cGUgPSAnc2VnbWVudHMnO1xuICB2YXIgVkVSVElDQUwgPSAndmVydGljYWwnO1xuICB2YXIgSE9SSVpPTlRBTCA9ICdob3Jpem9udGFsJztcbiAgdmFyIExFRlRXQVJEID0gJ2xlZnR3YXJkJztcbiAgdmFyIFJJR0hUV0FSRCA9ICdyaWdodHdhcmQnO1xuICB2YXIgRE9XTldBUkQgPSAnZG93bndhcmQnO1xuICB2YXIgVVBXQVJEID0gJ3Vwd2FyZCc7XG4gIHZhciBBVVRPID0gJ2F1dG8nO1xuICB2YXIgcG9zUHRzID0gcGFpckluZm8ucG9zUHRzLFxuICAgIHNyY1cgPSBwYWlySW5mby5zcmNXLFxuICAgIHNyY0ggPSBwYWlySW5mby5zcmNILFxuICAgIHRndFcgPSBwYWlySW5mby50Z3RXLFxuICAgIHRndEggPSBwYWlySW5mby50Z3RIO1xuICB2YXIgZWRnZURpc3RhbmNlcyA9IGVkZ2UucHN0eWxlKCdlZGdlLWRpc3RhbmNlcycpLnZhbHVlO1xuICB2YXIgZEluY2x1ZGVzTm9kZUJvZHkgPSBlZGdlRGlzdGFuY2VzICE9PSAnbm9kZS1wb3NpdGlvbic7XG4gIHZhciB0YXhpRGlyID0gZWRnZS5wc3R5bGUoJ3RheGktZGlyZWN0aW9uJykudmFsdWU7XG4gIHZhciByYXdUYXhpRGlyID0gdGF4aURpcjsgLy8gdW5wcm9jZXNzZWQgdmFsdWVcbiAgdmFyIHRheGlUdXJuID0gZWRnZS5wc3R5bGUoJ3RheGktdHVybicpO1xuICB2YXIgdHVybklzUGVyY2VudCA9IHRheGlUdXJuLnVuaXRzID09PSAnJSc7XG4gIHZhciB0YXhpVHVyblBmVmFsID0gdGF4aVR1cm4ucGZWYWx1ZTtcbiAgdmFyIHR1cm5Jc05lZ2F0aXZlID0gdGF4aVR1cm5QZlZhbCA8IDA7IC8vIGkuZS4gZnJvbSB0YXJnZXQgc2lkZVxuICB2YXIgbWluRCA9IGVkZ2UucHN0eWxlKCd0YXhpLXR1cm4tbWluLWRpc3RhbmNlJykucGZWYWx1ZTtcbiAgdmFyIGR3ID0gZEluY2x1ZGVzTm9kZUJvZHkgPyAoc3JjVyArIHRndFcpIC8gMiA6IDA7XG4gIHZhciBkaCA9IGRJbmNsdWRlc05vZGVCb2R5ID8gKHNyY0ggKyB0Z3RIKSAvIDIgOiAwO1xuICB2YXIgcGR4ID0gcG9zUHRzLngyIC0gcG9zUHRzLngxO1xuICB2YXIgcGR5ID0gcG9zUHRzLnkyIC0gcG9zUHRzLnkxO1xuXG4gIC8vIHRha2UgYXdheSB0aGUgZWZmZWN0aXZlIHcvaCBmcm9tIHRoZSBtYWduaXR1ZGUgb2YgdGhlIGRlbHRhIHZhbHVlXG4gIHZhciBzdWJEV0ggPSBmdW5jdGlvbiBzdWJEV0goZHh5LCBkd2gpIHtcbiAgICBpZiAoZHh5ID4gMCkge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KGR4eSAtIGR3aCwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBNYXRoLm1pbihkeHkgKyBkd2gsIDApO1xuICAgIH1cbiAgfTtcbiAgdmFyIGR4ID0gc3ViRFdIKHBkeCwgZHcpO1xuICB2YXIgZHkgPSBzdWJEV0gocGR5LCBkaCk7XG4gIHZhciBpc0V4cGxpY2l0RGlyID0gZmFsc2U7XG4gIGlmIChyYXdUYXhpRGlyID09PSBBVVRPKSB7XG4gICAgdGF4aURpciA9IE1hdGguYWJzKGR4KSA+IE1hdGguYWJzKGR5KSA/IEhPUklaT05UQUwgOiBWRVJUSUNBTDtcbiAgfSBlbHNlIGlmIChyYXdUYXhpRGlyID09PSBVUFdBUkQgfHwgcmF3VGF4aURpciA9PT0gRE9XTldBUkQpIHtcbiAgICB0YXhpRGlyID0gVkVSVElDQUw7XG4gICAgaXNFeHBsaWNpdERpciA9IHRydWU7XG4gIH0gZWxzZSBpZiAocmF3VGF4aURpciA9PT0gTEVGVFdBUkQgfHwgcmF3VGF4aURpciA9PT0gUklHSFRXQVJEKSB7XG4gICAgdGF4aURpciA9IEhPUklaT05UQUw7XG4gICAgaXNFeHBsaWNpdERpciA9IHRydWU7XG4gIH1cbiAgdmFyIGlzVmVydCA9IHRheGlEaXIgPT09IFZFUlRJQ0FMO1xuICB2YXIgbCA9IGlzVmVydCA/IGR5IDogZHg7XG4gIHZhciBwbCA9IGlzVmVydCA/IHBkeSA6IHBkeDtcbiAgdmFyIHNnbkwgPSBzaWdudW0ocGwpO1xuICB2YXIgZm9yY2VkRGlyID0gZmFsc2U7XG4gIGlmICghKGlzRXhwbGljaXREaXIgJiYgKHR1cm5Jc1BlcmNlbnQgfHwgdHVybklzTmVnYXRpdmUpKSAvLyBmb3JjaW5nIGluIHRoaXMgY2FzZSB3b3VsZCBjYXVzZSB3ZWlyZCBncm93aW5nIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb25cbiAgJiYgKHJhd1RheGlEaXIgPT09IERPV05XQVJEICYmIHBsIDwgMCB8fCByYXdUYXhpRGlyID09PSBVUFdBUkQgJiYgcGwgPiAwIHx8IHJhd1RheGlEaXIgPT09IExFRlRXQVJEICYmIHBsID4gMCB8fCByYXdUYXhpRGlyID09PSBSSUdIVFdBUkQgJiYgcGwgPCAwKSkge1xuICAgIHNnbkwgKj0gLTE7XG4gICAgbCA9IHNnbkwgKiBNYXRoLmFicyhsKTtcbiAgICBmb3JjZWREaXIgPSB0cnVlO1xuICB9XG4gIHZhciBkO1xuICBpZiAodHVybklzUGVyY2VudCkge1xuICAgIHZhciBwID0gdGF4aVR1cm5QZlZhbCA8IDAgPyAxICsgdGF4aVR1cm5QZlZhbCA6IHRheGlUdXJuUGZWYWw7XG4gICAgZCA9IHAgKiBsO1xuICB9IGVsc2Uge1xuICAgIHZhciBrID0gdGF4aVR1cm5QZlZhbCA8IDAgPyBsIDogMDtcbiAgICBkID0gayArIHRheGlUdXJuUGZWYWwgKiBzZ25MO1xuICB9XG4gIHZhciBnZXRJc1Rvb0Nsb3NlID0gZnVuY3Rpb24gZ2V0SXNUb29DbG9zZShkKSB7XG4gICAgcmV0dXJuIE1hdGguYWJzKGQpIDwgbWluRCB8fCBNYXRoLmFicyhkKSA+PSBNYXRoLmFicyhsKTtcbiAgfTtcbiAgdmFyIGlzVG9vQ2xvc2VTcmMgPSBnZXRJc1Rvb0Nsb3NlKGQpO1xuICB2YXIgaXNUb29DbG9zZVRndCA9IGdldElzVG9vQ2xvc2UoTWF0aC5hYnMobCkgLSBNYXRoLmFicyhkKSk7XG4gIHZhciBpc1Rvb0Nsb3NlID0gaXNUb29DbG9zZVNyYyB8fCBpc1Rvb0Nsb3NlVGd0O1xuICBpZiAoaXNUb29DbG9zZSAmJiAhZm9yY2VkRGlyKSB7XG4gICAgLy8gbm9uLWlkZWFsIHJvdXRpbmdcbiAgICBpZiAoaXNWZXJ0KSB7XG4gICAgICAvLyB2ZXJ0aWNhbCBmYWxsYmFja3NcbiAgICAgIHZhciBsU2hhcGVJbnNpZGVTcmMgPSBNYXRoLmFicyhwbCkgPD0gc3JjSCAvIDI7XG4gICAgICB2YXIgbFNoYXBlSW5zaWRlVGd0ID0gTWF0aC5hYnMocGR4KSA8PSB0Z3RXIC8gMjtcbiAgICAgIGlmIChsU2hhcGVJbnNpZGVTcmMpIHtcbiAgICAgICAgLy8gaG9yaXpvbnRhbCBaLXNoYXBlIChkaXJlY3Rpb24gbm90IHJlc3BlY3RlZClcbiAgICAgICAgdmFyIHggPSAocG9zUHRzLngxICsgcG9zUHRzLngyKSAvIDI7XG4gICAgICAgIHZhciB5MSA9IHBvc1B0cy55MSxcbiAgICAgICAgICB5MiA9IHBvc1B0cy55MjtcbiAgICAgICAgcnMuc2VncHRzID0gW3gsIHkxLCB4LCB5Ml07XG4gICAgICB9IGVsc2UgaWYgKGxTaGFwZUluc2lkZVRndCkge1xuICAgICAgICAvLyB2ZXJ0aWNhbCBaLXNoYXBlIChkaXN0YW5jZSBub3QgcmVzcGVjdGVkKVxuICAgICAgICB2YXIgeSA9IChwb3NQdHMueTEgKyBwb3NQdHMueTIpIC8gMjtcbiAgICAgICAgdmFyIHgxID0gcG9zUHRzLngxLFxuICAgICAgICAgIHgyID0gcG9zUHRzLngyO1xuICAgICAgICBycy5zZWdwdHMgPSBbeDEsIHksIHgyLCB5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEwtc2hhcGUgZmFsbGJhY2sgKHR1cm4gZGlzdGFuY2Ugbm90IHJlc3BlY3RlZCwgYnV0IHdvcmtzIHdlbGwgd2l0aCB0cmVlIHNpYmxpbmdzKVxuICAgICAgICBycy5zZWdwdHMgPSBbcG9zUHRzLngxLCBwb3NQdHMueTJdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBob3Jpem9udGFsIGZhbGxiYWNrc1xuICAgICAgdmFyIF9sU2hhcGVJbnNpZGVTcmMgPSBNYXRoLmFicyhwbCkgPD0gc3JjVyAvIDI7XG4gICAgICB2YXIgX2xTaGFwZUluc2lkZVRndCA9IE1hdGguYWJzKHBkeSkgPD0gdGd0SCAvIDI7XG4gICAgICBpZiAoX2xTaGFwZUluc2lkZVNyYykge1xuICAgICAgICAvLyB2ZXJ0aWNhbCBaLXNoYXBlIChkaXJlY3Rpb24gbm90IHJlc3BlY3RlZClcbiAgICAgICAgdmFyIF95ID0gKHBvc1B0cy55MSArIHBvc1B0cy55MikgLyAyO1xuICAgICAgICB2YXIgX3ggPSBwb3NQdHMueDEsXG4gICAgICAgICAgX3gyID0gcG9zUHRzLngyO1xuICAgICAgICBycy5zZWdwdHMgPSBbX3gsIF95LCBfeDIsIF95XTtcbiAgICAgIH0gZWxzZSBpZiAoX2xTaGFwZUluc2lkZVRndCkge1xuICAgICAgICAvLyBob3Jpem9udGFsIFotc2hhcGUgKHR1cm4gZGlzdGFuY2Ugbm90IHJlc3BlY3RlZClcbiAgICAgICAgdmFyIF94MyA9IChwb3NQdHMueDEgKyBwb3NQdHMueDIpIC8gMjtcbiAgICAgICAgdmFyIF95MiA9IHBvc1B0cy55MSxcbiAgICAgICAgICBfeTMgPSBwb3NQdHMueTI7XG4gICAgICAgIHJzLnNlZ3B0cyA9IFtfeDMsIF95MiwgX3gzLCBfeTNdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTC1zaGFwZSAodHVybiBkaXN0YW5jZSBub3QgcmVzcGVjdGVkLCBidXQgd29ya3Mgd2VsbCBmb3IgdHJlZSBzaWJsaW5ncylcbiAgICAgICAgcnMuc2VncHRzID0gW3Bvc1B0cy54MiwgcG9zUHRzLnkxXTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gaWRlYWwgcm91dGluZ1xuICAgIGlmIChpc1ZlcnQpIHtcbiAgICAgIHZhciBfeTQgPSBwb3NQdHMueTEgKyBkICsgKGRJbmNsdWRlc05vZGVCb2R5ID8gc3JjSCAvIDIgKiBzZ25MIDogMCk7XG4gICAgICB2YXIgX3g0ID0gcG9zUHRzLngxLFxuICAgICAgICBfeDUgPSBwb3NQdHMueDI7XG4gICAgICBycy5zZWdwdHMgPSBbX3g0LCBfeTQsIF94NSwgX3k0XTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaG9yaXpvbnRhbFxuICAgICAgdmFyIF94NiA9IHBvc1B0cy54MSArIGQgKyAoZEluY2x1ZGVzTm9kZUJvZHkgPyBzcmNXIC8gMiAqIHNnbkwgOiAwKTtcbiAgICAgIHZhciBfeTUgPSBwb3NQdHMueTEsXG4gICAgICAgIF95NiA9IHBvc1B0cy55MjtcbiAgICAgIHJzLnNlZ3B0cyA9IFtfeDYsIF95NSwgX3g2LCBfeTZdO1xuICAgIH1cbiAgfVxuICBpZiAocnMuaXNSb3VuZCkge1xuICAgIHZhciByYWRpdXMgPSBlZGdlLnBzdHlsZSgndGF4aS1yYWRpdXMnKS52YWx1ZTtcbiAgICB2YXIgaXNBcmNSYWRpdXMgPSBlZGdlLnBzdHlsZSgncmFkaXVzLXR5cGUnKS52YWx1ZVswXSA9PT0gJ2FyYy1yYWRpdXMnO1xuICAgIHJzLnJhZGlpID0gbmV3IEFycmF5KHJzLnNlZ3B0cy5sZW5ndGggLyAyKS5maWxsKHJhZGl1cyk7XG4gICAgcnMuaXNBcmNSYWRpdXMgPSBuZXcgQXJyYXkocnMuc2VncHRzLmxlbmd0aCAvIDIpLmZpbGwoaXNBcmNSYWRpdXMpO1xuICB9XG59O1xuQlJwJGMudHJ5VG9Db3JyZWN0SW52YWxpZFBvaW50cyA9IGZ1bmN0aW9uIChlZGdlLCBwYWlySW5mbykge1xuICB2YXIgcnMgPSBlZGdlLl9wcml2YXRlLnJzY3JhdGNoO1xuXG4gIC8vIGNhbiBvbmx5IGNvcnJlY3QgYmV6aWVycyBmb3Igbm93Li4uXG4gIGlmIChycy5lZGdlVHlwZSA9PT0gJ2JlemllcicpIHtcbiAgICB2YXIgc3JjUG9zID0gcGFpckluZm8uc3JjUG9zLFxuICAgICAgdGd0UG9zID0gcGFpckluZm8udGd0UG9zLFxuICAgICAgc3JjVyA9IHBhaXJJbmZvLnNyY1csXG4gICAgICBzcmNIID0gcGFpckluZm8uc3JjSCxcbiAgICAgIHRndFcgPSBwYWlySW5mby50Z3RXLFxuICAgICAgdGd0SCA9IHBhaXJJbmZvLnRndEgsXG4gICAgICBzcmNTaGFwZSA9IHBhaXJJbmZvLnNyY1NoYXBlLFxuICAgICAgdGd0U2hhcGUgPSBwYWlySW5mby50Z3RTaGFwZSxcbiAgICAgIHNyY0Nvcm5lclJhZGl1cyA9IHBhaXJJbmZvLnNyY0Nvcm5lclJhZGl1cyxcbiAgICAgIHRndENvcm5lclJhZGl1cyA9IHBhaXJJbmZvLnRndENvcm5lclJhZGl1cyxcbiAgICAgIHNyY1JzID0gcGFpckluZm8uc3JjUnMsXG4gICAgICB0Z3RScyA9IHBhaXJJbmZvLnRndFJzO1xuICAgIHZhciBiYWRTdGFydCA9ICFudW1iZXIkMShycy5zdGFydFgpIHx8ICFudW1iZXIkMShycy5zdGFydFkpO1xuICAgIHZhciBiYWRBU3RhcnQgPSAhbnVtYmVyJDEocnMuYXJyb3dTdGFydFgpIHx8ICFudW1iZXIkMShycy5hcnJvd1N0YXJ0WSk7XG4gICAgdmFyIGJhZEVuZCA9ICFudW1iZXIkMShycy5lbmRYKSB8fCAhbnVtYmVyJDEocnMuZW5kWSk7XG4gICAgdmFyIGJhZEFFbmQgPSAhbnVtYmVyJDEocnMuYXJyb3dFbmRYKSB8fCAhbnVtYmVyJDEocnMuYXJyb3dFbmRZKTtcbiAgICB2YXIgbWluQ3BBRGlzdEZhY3RvciA9IDM7XG4gICAgdmFyIGFycm93VyA9IHRoaXMuZ2V0QXJyb3dXaWR0aChlZGdlLnBzdHlsZSgnd2lkdGgnKS5wZlZhbHVlLCBlZGdlLnBzdHlsZSgnYXJyb3ctc2NhbGUnKS52YWx1ZSkgKiB0aGlzLmFycm93U2hhcGVXaWR0aDtcbiAgICB2YXIgbWluQ3BBRGlzdCA9IG1pbkNwQURpc3RGYWN0b3IgKiBhcnJvd1c7XG4gICAgdmFyIHN0YXJ0QUNwRGlzdCA9IGRpc3Qoe1xuICAgICAgeDogcnMuY3RybHB0c1swXSxcbiAgICAgIHk6IHJzLmN0cmxwdHNbMV1cbiAgICB9LCB7XG4gICAgICB4OiBycy5zdGFydFgsXG4gICAgICB5OiBycy5zdGFydFlcbiAgICB9KTtcbiAgICB2YXIgY2xvc2VTdGFydEFDcCA9IHN0YXJ0QUNwRGlzdCA8IG1pbkNwQURpc3Q7XG4gICAgdmFyIGVuZEFDcERpc3QgPSBkaXN0KHtcbiAgICAgIHg6IHJzLmN0cmxwdHNbMF0sXG4gICAgICB5OiBycy5jdHJscHRzWzFdXG4gICAgfSwge1xuICAgICAgeDogcnMuZW5kWCxcbiAgICAgIHk6IHJzLmVuZFlcbiAgICB9KTtcbiAgICB2YXIgY2xvc2VFbmRBQ3AgPSBlbmRBQ3BEaXN0IDwgbWluQ3BBRGlzdDtcbiAgICB2YXIgb3ZlcmxhcHBpbmcgPSBmYWxzZTtcbiAgICBpZiAoYmFkU3RhcnQgfHwgYmFkQVN0YXJ0IHx8IGNsb3NlU3RhcnRBQ3ApIHtcbiAgICAgIG92ZXJsYXBwaW5nID0gdHJ1ZTtcblxuICAgICAgLy8gcHJvamVjdCBjb250cm9sIHBvaW50IGFsb25nIGxpbmUgZnJvbSBzcmMgY2VudHJlIHRvIG91dHNpZGUgdGhlIHNyYyBzaGFwZVxuICAgICAgLy8gKG90aGVyd2lzZSBpbnRlcnNlY3Rpb24gd2lsbCB5aWVsZCBub3RoaW5nKVxuICAgICAgdmFyIGNwRCA9IHtcbiAgICAgICAgLy8gZGVsdGFcbiAgICAgICAgeDogcnMuY3RybHB0c1swXSAtIHNyY1Bvcy54LFxuICAgICAgICB5OiBycy5jdHJscHRzWzFdIC0gc3JjUG9zLnlcbiAgICAgIH07XG4gICAgICB2YXIgY3BMID0gTWF0aC5zcXJ0KGNwRC54ICogY3BELnggKyBjcEQueSAqIGNwRC55KTsgLy8gbGVuZ3RoIG9mIGxpbmVcbiAgICAgIHZhciBjcE0gPSB7XG4gICAgICAgIC8vIG5vcm1hbGlzZWQgZGVsdGFcbiAgICAgICAgeDogY3BELnggLyBjcEwsXG4gICAgICAgIHk6IGNwRC55IC8gY3BMXG4gICAgICB9O1xuICAgICAgdmFyIHJhZGl1cyA9IE1hdGgubWF4KHNyY1csIHNyY0gpO1xuICAgICAgdmFyIGNwUHJvaiA9IHtcbiAgICAgICAgLy8gKjIgcmFkaXVzIGd1YXJhbnRlZXMgb3V0c2lkZSBzaGFwZVxuICAgICAgICB4OiBycy5jdHJscHRzWzBdICsgY3BNLnggKiAyICogcmFkaXVzLFxuICAgICAgICB5OiBycy5jdHJscHRzWzFdICsgY3BNLnkgKiAyICogcmFkaXVzXG4gICAgICB9O1xuICAgICAgdmFyIHNyY0N0cmxQdEludG4gPSBzcmNTaGFwZS5pbnRlcnNlY3RMaW5lKHNyY1Bvcy54LCBzcmNQb3MueSwgc3JjVywgc3JjSCwgY3BQcm9qLngsIGNwUHJvai55LCAwLCBzcmNDb3JuZXJSYWRpdXMsIHNyY1JzKTtcbiAgICAgIGlmIChjbG9zZVN0YXJ0QUNwKSB7XG4gICAgICAgIHJzLmN0cmxwdHNbMF0gPSBycy5jdHJscHRzWzBdICsgY3BNLnggKiAobWluQ3BBRGlzdCAtIHN0YXJ0QUNwRGlzdCk7XG4gICAgICAgIHJzLmN0cmxwdHNbMV0gPSBycy5jdHJscHRzWzFdICsgY3BNLnkgKiAobWluQ3BBRGlzdCAtIHN0YXJ0QUNwRGlzdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBycy5jdHJscHRzWzBdID0gc3JjQ3RybFB0SW50blswXSArIGNwTS54ICogbWluQ3BBRGlzdDtcbiAgICAgICAgcnMuY3RybHB0c1sxXSA9IHNyY0N0cmxQdEludG5bMV0gKyBjcE0ueSAqIG1pbkNwQURpc3Q7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChiYWRFbmQgfHwgYmFkQUVuZCB8fCBjbG9zZUVuZEFDcCkge1xuICAgICAgb3ZlcmxhcHBpbmcgPSB0cnVlO1xuXG4gICAgICAvLyBwcm9qZWN0IGNvbnRyb2wgcG9pbnQgYWxvbmcgbGluZSBmcm9tIHRndCBjZW50cmUgdG8gb3V0c2lkZSB0aGUgdGd0IHNoYXBlXG4gICAgICAvLyAob3RoZXJ3aXNlIGludGVyc2VjdGlvbiB3aWxsIHlpZWxkIG5vdGhpbmcpXG4gICAgICB2YXIgX2NwRCA9IHtcbiAgICAgICAgLy8gZGVsdGFcbiAgICAgICAgeDogcnMuY3RybHB0c1swXSAtIHRndFBvcy54LFxuICAgICAgICB5OiBycy5jdHJscHRzWzFdIC0gdGd0UG9zLnlcbiAgICAgIH07XG4gICAgICB2YXIgX2NwTCA9IE1hdGguc3FydChfY3BELnggKiBfY3BELnggKyBfY3BELnkgKiBfY3BELnkpOyAvLyBsZW5ndGggb2YgbGluZVxuICAgICAgdmFyIF9jcE0gPSB7XG4gICAgICAgIC8vIG5vcm1hbGlzZWQgZGVsdGFcbiAgICAgICAgeDogX2NwRC54IC8gX2NwTCxcbiAgICAgICAgeTogX2NwRC55IC8gX2NwTFxuICAgICAgfTtcbiAgICAgIHZhciBfcmFkaXVzID0gTWF0aC5tYXgoc3JjVywgc3JjSCk7XG4gICAgICB2YXIgX2NwUHJvaiA9IHtcbiAgICAgICAgLy8gKjIgcmFkaXVzIGd1YXJhbnRlZXMgb3V0c2lkZSBzaGFwZVxuICAgICAgICB4OiBycy5jdHJscHRzWzBdICsgX2NwTS54ICogMiAqIF9yYWRpdXMsXG4gICAgICAgIHk6IHJzLmN0cmxwdHNbMV0gKyBfY3BNLnkgKiAyICogX3JhZGl1c1xuICAgICAgfTtcbiAgICAgIHZhciB0Z3RDdHJsUHRJbnRuID0gdGd0U2hhcGUuaW50ZXJzZWN0TGluZSh0Z3RQb3MueCwgdGd0UG9zLnksIHRndFcsIHRndEgsIF9jcFByb2oueCwgX2NwUHJvai55LCAwLCB0Z3RDb3JuZXJSYWRpdXMsIHRndFJzKTtcbiAgICAgIGlmIChjbG9zZUVuZEFDcCkge1xuICAgICAgICBycy5jdHJscHRzWzBdID0gcnMuY3RybHB0c1swXSArIF9jcE0ueCAqIChtaW5DcEFEaXN0IC0gZW5kQUNwRGlzdCk7XG4gICAgICAgIHJzLmN0cmxwdHNbMV0gPSBycy5jdHJscHRzWzFdICsgX2NwTS55ICogKG1pbkNwQURpc3QgLSBlbmRBQ3BEaXN0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJzLmN0cmxwdHNbMF0gPSB0Z3RDdHJsUHRJbnRuWzBdICsgX2NwTS54ICogbWluQ3BBRGlzdDtcbiAgICAgICAgcnMuY3RybHB0c1sxXSA9IHRndEN0cmxQdEludG5bMV0gKyBfY3BNLnkgKiBtaW5DcEFEaXN0O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAob3ZlcmxhcHBpbmcpIHtcbiAgICAgIC8vIHJlY2FsYyBlbmRwdHNcbiAgICAgIHRoaXMuZmluZEVuZHBvaW50cyhlZGdlKTtcbiAgICB9XG4gIH1cbn07XG5CUnAkYy5zdG9yZUFsbHB0cyA9IGZ1bmN0aW9uIChlZGdlKSB7XG4gIHZhciBycyA9IGVkZ2UuX3ByaXZhdGUucnNjcmF0Y2g7XG4gIGlmIChycy5lZGdlVHlwZSA9PT0gJ211bHRpYmV6aWVyJyB8fCBycy5lZGdlVHlwZSA9PT0gJ2JlemllcicgfHwgcnMuZWRnZVR5cGUgPT09ICdzZWxmJyB8fCBycy5lZGdlVHlwZSA9PT0gJ2NvbXBvdW5kJykge1xuICAgIHJzLmFsbHB0cyA9IFtdO1xuICAgIHJzLmFsbHB0cy5wdXNoKHJzLnN0YXJ0WCwgcnMuc3RhcnRZKTtcbiAgICBmb3IgKHZhciBiID0gMDsgYiArIDEgPCBycy5jdHJscHRzLmxlbmd0aDsgYiArPSAyKSB7XG4gICAgICAvLyBjdHJsIHB0IGl0c2VsZlxuICAgICAgcnMuYWxscHRzLnB1c2gocnMuY3RybHB0c1tiXSwgcnMuY3RybHB0c1tiICsgMV0pO1xuXG4gICAgICAvLyB0aGUgbWlkcHQgYmV0d2VlbiBjdHJscHRzIGFzIGludGVybWVkaWF0ZSBkZXN0aW5hdGlvbiBwdHNcbiAgICAgIGlmIChiICsgMyA8IHJzLmN0cmxwdHMubGVuZ3RoKSB7XG4gICAgICAgIHJzLmFsbHB0cy5wdXNoKChycy5jdHJscHRzW2JdICsgcnMuY3RybHB0c1tiICsgMl0pIC8gMiwgKHJzLmN0cmxwdHNbYiArIDFdICsgcnMuY3RybHB0c1tiICsgM10pIC8gMik7XG4gICAgICB9XG4gICAgfVxuICAgIHJzLmFsbHB0cy5wdXNoKHJzLmVuZFgsIHJzLmVuZFkpO1xuICAgIHZhciBtLCBtdDtcbiAgICBpZiAocnMuY3RybHB0cy5sZW5ndGggLyAyICUgMiA9PT0gMCkge1xuICAgICAgbSA9IHJzLmFsbHB0cy5sZW5ndGggLyAyIC0gMTtcbiAgICAgIHJzLm1pZFggPSBycy5hbGxwdHNbbV07XG4gICAgICBycy5taWRZID0gcnMuYWxscHRzW20gKyAxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgbSA9IHJzLmFsbHB0cy5sZW5ndGggLyAyIC0gMztcbiAgICAgIG10ID0gMC41O1xuICAgICAgcnMubWlkWCA9IHFiZXppZXJBdChycy5hbGxwdHNbbV0sIHJzLmFsbHB0c1ttICsgMl0sIHJzLmFsbHB0c1ttICsgNF0sIG10KTtcbiAgICAgIHJzLm1pZFkgPSBxYmV6aWVyQXQocnMuYWxscHRzW20gKyAxXSwgcnMuYWxscHRzW20gKyAzXSwgcnMuYWxscHRzW20gKyA1XSwgbXQpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChycy5lZGdlVHlwZSA9PT0gJ3N0cmFpZ2h0Jykge1xuICAgIC8vIG5lZWQgdG8gY2FsYyB0aGVzZSBhZnRlciBlbmRwdHNcbiAgICBycy5hbGxwdHMgPSBbcnMuc3RhcnRYLCBycy5zdGFydFksIHJzLmVuZFgsIHJzLmVuZFldO1xuXG4gICAgLy8gZGVmYXVsdCBtaWRwdCBmb3IgbGFiZWxzIGV0Y1xuICAgIHJzLm1pZFggPSAocnMuc3RhcnRYICsgcnMuZW5kWCArIHJzLmFycm93U3RhcnRYICsgcnMuYXJyb3dFbmRYKSAvIDQ7XG4gICAgcnMubWlkWSA9IChycy5zdGFydFkgKyBycy5lbmRZICsgcnMuYXJyb3dTdGFydFkgKyBycy5hcnJvd0VuZFkpIC8gNDtcbiAgfSBlbHNlIGlmIChycy5lZGdlVHlwZSA9PT0gJ3NlZ21lbnRzJykge1xuICAgIHJzLmFsbHB0cyA9IFtdO1xuICAgIHJzLmFsbHB0cy5wdXNoKHJzLnN0YXJ0WCwgcnMuc3RhcnRZKTtcbiAgICBycy5hbGxwdHMucHVzaC5hcHBseShycy5hbGxwdHMsIHJzLnNlZ3B0cyk7XG4gICAgcnMuYWxscHRzLnB1c2gocnMuZW5kWCwgcnMuZW5kWSk7XG4gICAgaWYgKHJzLmlzUm91bmQpIHtcbiAgICAgIHJzLnJvdW5kQ29ybmVycyA9IFtdO1xuICAgICAgZm9yICh2YXIgaSA9IDI7IGkgKyAzIDwgcnMuYWxscHRzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgIHZhciByYWRpdXMgPSBycy5yYWRpaVtpIC8gMiAtIDFdO1xuICAgICAgICB2YXIgaXNBcmNSYWRpdXMgPSBycy5pc0FyY1JhZGl1c1tpIC8gMiAtIDFdO1xuICAgICAgICBycy5yb3VuZENvcm5lcnMucHVzaChnZXRSb3VuZENvcm5lcih7XG4gICAgICAgICAgeDogcnMuYWxscHRzW2kgLSAyXSxcbiAgICAgICAgICB5OiBycy5hbGxwdHNbaSAtIDFdXG4gICAgICAgIH0sIHtcbiAgICAgICAgICB4OiBycy5hbGxwdHNbaV0sXG4gICAgICAgICAgeTogcnMuYWxscHRzW2kgKyAxXSxcbiAgICAgICAgICByYWRpdXM6IHJhZGl1c1xuICAgICAgICB9LCB7XG4gICAgICAgICAgeDogcnMuYWxscHRzW2kgKyAyXSxcbiAgICAgICAgICB5OiBycy5hbGxwdHNbaSArIDNdXG4gICAgICAgIH0sIHJhZGl1cywgaXNBcmNSYWRpdXMpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHJzLnNlZ3B0cy5sZW5ndGggJSA0ID09PSAwKSB7XG4gICAgICB2YXIgaTIgPSBycy5zZWdwdHMubGVuZ3RoIC8gMjtcbiAgICAgIHZhciBpMSA9IGkyIC0gMjtcbiAgICAgIHJzLm1pZFggPSAocnMuc2VncHRzW2kxXSArIHJzLnNlZ3B0c1tpMl0pIC8gMjtcbiAgICAgIHJzLm1pZFkgPSAocnMuc2VncHRzW2kxICsgMV0gKyBycy5zZWdwdHNbaTIgKyAxXSkgLyAyO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX2kgPSBycy5zZWdwdHMubGVuZ3RoIC8gMiAtIDE7XG4gICAgICBpZiAoIXJzLmlzUm91bmQpIHtcbiAgICAgICAgcnMubWlkWCA9IHJzLnNlZ3B0c1tfaV07XG4gICAgICAgIHJzLm1pZFkgPSBycy5zZWdwdHNbX2kgKyAxXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBwb2ludCA9IHtcbiAgICAgICAgICB4OiBycy5zZWdwdHNbX2ldLFxuICAgICAgICAgIHk6IHJzLnNlZ3B0c1tfaSArIDFdXG4gICAgICAgIH07XG4gICAgICAgIHZhciBjb3JuZXIgPSBycy5yb3VuZENvcm5lcnNbX2kgLyAyXTtcbiAgICAgICAgdmFyIHYgPSBbcG9pbnQueCAtIGNvcm5lci5jeCwgcG9pbnQueSAtIGNvcm5lci5jeV07XG4gICAgICAgIHZhciBmYWN0b3IgPSBjb3JuZXIucmFkaXVzIC8gTWF0aC5zcXJ0KE1hdGgucG93KHZbMF0sIDIpICsgTWF0aC5wb3codlsxXSwgMikpO1xuICAgICAgICB2ID0gdi5tYXAoZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICByZXR1cm4gYyAqIGZhY3RvcjtcbiAgICAgICAgfSk7XG4gICAgICAgIHJzLm1pZFggPSBjb3JuZXIuY3ggKyB2WzBdO1xuICAgICAgICBycy5taWRZID0gY29ybmVyLmN5ICsgdlsxXTtcbiAgICAgICAgcnMubWlkVmVjdG9yID0gdjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5CUnAkYy5jaGVja0ZvckludmFsaWRFZGdlV2FybmluZyA9IGZ1bmN0aW9uIChlZGdlKSB7XG4gIHZhciBycyA9IGVkZ2VbMF0uX3ByaXZhdGUucnNjcmF0Y2g7XG4gIGlmIChycy5ub2Rlc092ZXJsYXAgfHwgbnVtYmVyJDEocnMuc3RhcnRYKSAmJiBudW1iZXIkMShycy5zdGFydFkpICYmIG51bWJlciQxKHJzLmVuZFgpICYmIG51bWJlciQxKHJzLmVuZFkpKSB7XG4gICAgcnMubG9nZ2VkRXJyID0gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgaWYgKCFycy5sb2dnZWRFcnIpIHtcbiAgICAgIHJzLmxvZ2dlZEVyciA9IHRydWU7XG4gICAgICB3YXJuKCdFZGdlIGAnICsgZWRnZS5pZCgpICsgJ2AgaGFzIGludmFsaWQgZW5kcG9pbnRzIGFuZCBzbyBpdCBpcyBpbXBvc3NpYmxlIHRvIGRyYXcuICBBZGp1c3QgeW91ciBlZGdlIHN0eWxlIChlLmcuIGNvbnRyb2wgcG9pbnRzKSBhY2NvcmRpbmdseSBvciB1c2UgYW4gYWx0ZXJuYXRpdmUgZWRnZSB0eXBlLiAgVGhpcyBpcyBleHBlY3RlZCBiZWhhdmlvdXIgd2hlbiB0aGUgc291cmNlIG5vZGUgYW5kIHRoZSB0YXJnZXQgbm9kZSBvdmVybGFwLicpO1xuICAgIH1cbiAgfVxufTtcbkJScCRjLmZpbmRFZGdlQ29udHJvbFBvaW50cyA9IGZ1bmN0aW9uIChlZGdlcykge1xuICB2YXIgX3RoaXMgPSB0aGlzO1xuICBpZiAoIWVkZ2VzIHx8IGVkZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgciA9IHRoaXM7XG4gIHZhciBjeSA9IHIuY3k7XG4gIHZhciBoYXNDb21wb3VuZHMgPSBjeS5oYXNDb21wb3VuZE5vZGVzKCk7XG4gIHZhciBoYXNoVGFibGUgPSB7XG4gICAgbWFwOiBuZXcgTWFwJDIoKSxcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldChwYWlySWQpIHtcbiAgICAgIHZhciBtYXAyID0gdGhpcy5tYXAuZ2V0KHBhaXJJZFswXSk7XG4gICAgICBpZiAobWFwMiAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBtYXAyLmdldChwYWlySWRbMV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSxcbiAgICBzZXQ6IGZ1bmN0aW9uIHNldChwYWlySWQsIHZhbCkge1xuICAgICAgdmFyIG1hcDIgPSB0aGlzLm1hcC5nZXQocGFpcklkWzBdKTtcbiAgICAgIGlmIChtYXAyID09IG51bGwpIHtcbiAgICAgICAgbWFwMiA9IG5ldyBNYXAkMigpO1xuICAgICAgICB0aGlzLm1hcC5zZXQocGFpcklkWzBdLCBtYXAyKTtcbiAgICAgIH1cbiAgICAgIG1hcDIuc2V0KHBhaXJJZFsxXSwgdmFsKTtcbiAgICB9XG4gIH07XG4gIHZhciBwYWlySWRzID0gW107XG4gIHZhciBoYXlzdGFja0VkZ2VzID0gW107XG5cbiAgLy8gY3JlYXRlIGEgdGFibGUgb2YgZWRnZSAoc3JjLCB0Z3QpID0+IGxpc3Qgb2YgZWRnZXMgYmV0d2VlbiB0aGVtXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZWRnZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZWRnZSA9IGVkZ2VzW2ldO1xuICAgIHZhciBfcCA9IGVkZ2UuX3ByaXZhdGU7XG4gICAgdmFyIGN1cnZlU3R5bGUgPSBlZGdlLnBzdHlsZSgnY3VydmUtc3R5bGUnKS52YWx1ZTtcblxuICAgIC8vIGlnbm9yZSBlZGdlcyB3aG8gYXJlIG5vdCB0byBiZSBkaXNwbGF5ZWRcbiAgICAvLyB0aGV5IHNob3VsZG4ndCB0YWtlIHVwIHNwYWNlXG4gICAgaWYgKGVkZ2UucmVtb3ZlZCgpIHx8ICFlZGdlLnRha2VzVXBTcGFjZSgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGN1cnZlU3R5bGUgPT09ICdoYXlzdGFjaycpIHtcbiAgICAgIGhheXN0YWNrRWRnZXMucHVzaChlZGdlKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICB2YXIgZWRnZUlzVW5idW5kbGVkID0gY3VydmVTdHlsZSA9PT0gJ3VuYnVuZGxlZC1iZXppZXInIHx8IGN1cnZlU3R5bGUuZW5kc1dpdGgoJ3NlZ21lbnRzJykgfHwgY3VydmVTdHlsZSA9PT0gJ3N0cmFpZ2h0JyB8fCBjdXJ2ZVN0eWxlID09PSAnc3RyYWlnaHQtdHJpYW5nbGUnIHx8IGN1cnZlU3R5bGUuZW5kc1dpdGgoJ3RheGknKTtcbiAgICB2YXIgZWRnZUlzQmV6aWVyID0gY3VydmVTdHlsZSA9PT0gJ3VuYnVuZGxlZC1iZXppZXInIHx8IGN1cnZlU3R5bGUgPT09ICdiZXppZXInO1xuICAgIHZhciBzcmMgPSBfcC5zb3VyY2U7XG4gICAgdmFyIHRndCA9IF9wLnRhcmdldDtcbiAgICB2YXIgc3JjSW5kZXggPSBzcmMucG9vbEluZGV4KCk7XG4gICAgdmFyIHRndEluZGV4ID0gdGd0LnBvb2xJbmRleCgpO1xuICAgIHZhciBwYWlySWQgPSBbc3JjSW5kZXgsIHRndEluZGV4XS5zb3J0KCk7XG4gICAgdmFyIHRhYmxlRW50cnkgPSBoYXNoVGFibGUuZ2V0KHBhaXJJZCk7XG4gICAgaWYgKHRhYmxlRW50cnkgPT0gbnVsbCkge1xuICAgICAgdGFibGVFbnRyeSA9IHtcbiAgICAgICAgZWxlczogW11cbiAgICAgIH07XG4gICAgICBoYXNoVGFibGUuc2V0KHBhaXJJZCwgdGFibGVFbnRyeSk7XG4gICAgICBwYWlySWRzLnB1c2gocGFpcklkKTtcbiAgICB9XG4gICAgdGFibGVFbnRyeS5lbGVzLnB1c2goZWRnZSk7XG4gICAgaWYgKGVkZ2VJc1VuYnVuZGxlZCkge1xuICAgICAgdGFibGVFbnRyeS5oYXNVbmJ1bmRsZWQgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoZWRnZUlzQmV6aWVyKSB7XG4gICAgICB0YWJsZUVudHJ5Lmhhc0JlemllciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gZm9yIGVhY2ggcGFpciAoc3JjLCB0Z3QpLCBjcmVhdGUgdGhlIGN0cmwgcHRzXG4gIC8vIE5lc3RlZCBmb3IgbG9vcCBpcyBPSzsgdG90YWwgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgZm9yIGJvdGggbG9vcHMgPSBlZGdlQ291bnRcbiAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3AocCkge1xuICAgIHZhciBwYWlySWQgPSBwYWlySWRzW3BdO1xuICAgIHZhciBwYWlySW5mbyA9IGhhc2hUYWJsZS5nZXQocGFpcklkKTtcbiAgICB2YXIgc3dhcHBlZHBhaXJJbmZvID0gdm9pZCAwO1xuICAgIGlmICghcGFpckluZm8uaGFzVW5idW5kbGVkKSB7XG4gICAgICB2YXIgcGxsRWRnZXMgPSBwYWlySW5mby5lbGVzWzBdLnBhcmFsbGVsRWRnZXMoKS5maWx0ZXIoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgcmV0dXJuIGUuaXNCdW5kbGVkQmV6aWVyKCk7XG4gICAgICB9KTtcbiAgICAgIGNsZWFyQXJyYXkocGFpckluZm8uZWxlcyk7XG4gICAgICBwbGxFZGdlcy5mb3JFYWNoKGZ1bmN0aW9uIChlZGdlKSB7XG4gICAgICAgIHJldHVybiBwYWlySW5mby5lbGVzLnB1c2goZWRnZSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gZm9yIGVhY2ggcGFpciBpZCwgdGhlIGVkZ2VzIHNob3VsZCBiZSBzb3J0ZWQgYnkgaW5kZXhcbiAgICAgIHBhaXJJbmZvLmVsZXMuc29ydChmdW5jdGlvbiAoZWRnZTEsIGVkZ2UyKSB7XG4gICAgICAgIHJldHVybiBlZGdlMS5wb29sSW5kZXgoKSAtIGVkZ2UyLnBvb2xJbmRleCgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHZhciBmaXJzdEVkZ2UgPSBwYWlySW5mby5lbGVzWzBdO1xuICAgIHZhciBzcmMgPSBmaXJzdEVkZ2Uuc291cmNlKCk7XG4gICAgdmFyIHRndCA9IGZpcnN0RWRnZS50YXJnZXQoKTtcblxuICAgIC8vIG1ha2Ugc3VyZSBzcmMvdGd0IGRpc3RpbmN0aW9uIGlzIGNvbnNpc3RlbnQgdy5yLnQuIHBhaXJJZFxuICAgIGlmIChzcmMucG9vbEluZGV4KCkgPiB0Z3QucG9vbEluZGV4KCkpIHtcbiAgICAgIHZhciB0ZW1wID0gc3JjO1xuICAgICAgc3JjID0gdGd0O1xuICAgICAgdGd0ID0gdGVtcDtcbiAgICB9XG4gICAgdmFyIHNyY1BvcyA9IHBhaXJJbmZvLnNyY1BvcyA9IHNyYy5wb3NpdGlvbigpO1xuICAgIHZhciB0Z3RQb3MgPSBwYWlySW5mby50Z3RQb3MgPSB0Z3QucG9zaXRpb24oKTtcbiAgICB2YXIgc3JjVyA9IHBhaXJJbmZvLnNyY1cgPSBzcmMub3V0ZXJXaWR0aCgpO1xuICAgIHZhciBzcmNIID0gcGFpckluZm8uc3JjSCA9IHNyYy5vdXRlckhlaWdodCgpO1xuICAgIHZhciB0Z3RXID0gcGFpckluZm8udGd0VyA9IHRndC5vdXRlcldpZHRoKCk7XG4gICAgdmFyIHRndEggPSBwYWlySW5mby50Z3RIID0gdGd0Lm91dGVySGVpZ2h0KCk7XG4gICAgdmFyIHNyY1NoYXBlID0gcGFpckluZm8uc3JjU2hhcGUgPSByLm5vZGVTaGFwZXNbX3RoaXMuZ2V0Tm9kZVNoYXBlKHNyYyldO1xuICAgIHZhciB0Z3RTaGFwZSA9IHBhaXJJbmZvLnRndFNoYXBlID0gci5ub2RlU2hhcGVzW190aGlzLmdldE5vZGVTaGFwZSh0Z3QpXTtcbiAgICB2YXIgc3JjQ29ybmVyUmFkaXVzID0gcGFpckluZm8uc3JjQ29ybmVyUmFkaXVzID0gc3JjLnBzdHlsZSgnY29ybmVyLXJhZGl1cycpLnZhbHVlID09PSAnYXV0bycgPyAnYXV0bycgOiBzcmMucHN0eWxlKCdjb3JuZXItcmFkaXVzJykucGZWYWx1ZTtcbiAgICB2YXIgdGd0Q29ybmVyUmFkaXVzID0gcGFpckluZm8udGd0Q29ybmVyUmFkaXVzID0gdGd0LnBzdHlsZSgnY29ybmVyLXJhZGl1cycpLnZhbHVlID09PSAnYXV0bycgPyAnYXV0bycgOiB0Z3QucHN0eWxlKCdjb3JuZXItcmFkaXVzJykucGZWYWx1ZTtcbiAgICB2YXIgdGd0UnMgPSBwYWlySW5mby50Z3RScyA9IHRndC5fcHJpdmF0ZS5yc2NyYXRjaDtcbiAgICB2YXIgc3JjUnMgPSBwYWlySW5mby5zcmNScyA9IHNyYy5fcHJpdmF0ZS5yc2NyYXRjaDtcbiAgICBwYWlySW5mby5kaXJDb3VudHMgPSB7XG4gICAgICAnbm9ydGgnOiAwLFxuICAgICAgJ3dlc3QnOiAwLFxuICAgICAgJ3NvdXRoJzogMCxcbiAgICAgICdlYXN0JzogMCxcbiAgICAgICdub3J0aHdlc3QnOiAwLFxuICAgICAgJ3NvdXRod2VzdCc6IDAsXG4gICAgICAnbm9ydGhlYXN0JzogMCxcbiAgICAgICdzb3V0aGVhc3QnOiAwXG4gICAgfTtcbiAgICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgPCBwYWlySW5mby5lbGVzLmxlbmd0aDsgX2kyKyspIHtcbiAgICAgIHZhciBfZWRnZSA9IHBhaXJJbmZvLmVsZXNbX2kyXTtcbiAgICAgIHZhciBycyA9IF9lZGdlWzBdLl9wcml2YXRlLnJzY3JhdGNoO1xuICAgICAgdmFyIF9jdXJ2ZVN0eWxlID0gX2VkZ2UucHN0eWxlKCdjdXJ2ZS1zdHlsZScpLnZhbHVlO1xuICAgICAgdmFyIF9lZGdlSXNVbmJ1bmRsZWQgPSBfY3VydmVTdHlsZSA9PT0gJ3VuYnVuZGxlZC1iZXppZXInIHx8IF9jdXJ2ZVN0eWxlLmVuZHNXaXRoKCdzZWdtZW50cycpIHx8IF9jdXJ2ZVN0eWxlLmVuZHNXaXRoKCd0YXhpJyk7XG5cbiAgICAgIC8vIHdoZXRoZXIgdGhlIG5vcm1hbGlzZWQgcGFpciBvcmRlciBpcyB0aGUgcmV2ZXJzZSBvZiB0aGUgZWRnZSdzIHNyYy10Z3Qgb3JkZXJcbiAgICAgIHZhciBlZGdlSXNTd2FwcGVkID0gIXNyYy5zYW1lKF9lZGdlLnNvdXJjZSgpKTtcbiAgICAgIGlmICghcGFpckluZm8uY2FsY3VsYXRlZEludGVyc2VjdGlvbiAmJiBzcmMgIT09IHRndCAmJiAocGFpckluZm8uaGFzQmV6aWVyIHx8IHBhaXJJbmZvLmhhc1VuYnVuZGxlZCkpIHtcbiAgICAgICAgcGFpckluZm8uY2FsY3VsYXRlZEludGVyc2VjdGlvbiA9IHRydWU7XG5cbiAgICAgICAgLy8gcHQgb3V0c2lkZSBzcmMgc2hhcGUgdG8gY2FsYyBkaXN0YW5jZS9kaXNwbGFjZW1lbnQgZnJvbSBzcmMgdG8gdGd0XG4gICAgICAgIHZhciBzcmNPdXRzaWRlID0gc3JjU2hhcGUuaW50ZXJzZWN0TGluZShzcmNQb3MueCwgc3JjUG9zLnksIHNyY1csIHNyY0gsIHRndFBvcy54LCB0Z3RQb3MueSwgMCwgc3JjQ29ybmVyUmFkaXVzLCBzcmNScyk7XG4gICAgICAgIHZhciBzcmNJbnRuID0gcGFpckluZm8uc3JjSW50biA9IHNyY091dHNpZGU7XG5cbiAgICAgICAgLy8gcHQgb3V0c2lkZSB0Z3Qgc2hhcGUgdG8gY2FsYyBkaXN0YW5jZS9kaXNwbGFjZW1lbnQgZnJvbSBzcmMgdG8gdGd0XG4gICAgICAgIHZhciB0Z3RPdXRzaWRlID0gdGd0U2hhcGUuaW50ZXJzZWN0TGluZSh0Z3RQb3MueCwgdGd0UG9zLnksIHRndFcsIHRndEgsIHNyY1Bvcy54LCBzcmNQb3MueSwgMCwgdGd0Q29ybmVyUmFkaXVzLCB0Z3RScyk7XG4gICAgICAgIHZhciB0Z3RJbnRuID0gcGFpckluZm8udGd0SW50biA9IHRndE91dHNpZGU7XG4gICAgICAgIHZhciBpbnRlcnNlY3Rpb25QdHMgPSBwYWlySW5mby5pbnRlcnNlY3Rpb25QdHMgPSB7XG4gICAgICAgICAgeDE6IHNyY091dHNpZGVbMF0sXG4gICAgICAgICAgeDI6IHRndE91dHNpZGVbMF0sXG4gICAgICAgICAgeTE6IHNyY091dHNpZGVbMV0sXG4gICAgICAgICAgeTI6IHRndE91dHNpZGVbMV1cbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHBvc1B0cyA9IHBhaXJJbmZvLnBvc1B0cyA9IHtcbiAgICAgICAgICB4MTogc3JjUG9zLngsXG4gICAgICAgICAgeDI6IHRndFBvcy54LFxuICAgICAgICAgIHkxOiBzcmNQb3MueSxcbiAgICAgICAgICB5MjogdGd0UG9zLnlcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGR5ID0gdGd0T3V0c2lkZVsxXSAtIHNyY091dHNpZGVbMV07XG4gICAgICAgIHZhciBkeCA9IHRndE91dHNpZGVbMF0gLSBzcmNPdXRzaWRlWzBdO1xuICAgICAgICB2YXIgbCA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG4gICAgICAgIHZhciB2ZWN0b3IgPSBwYWlySW5mby52ZWN0b3IgPSB7XG4gICAgICAgICAgeDogZHgsXG4gICAgICAgICAgeTogZHlcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHZlY3Rvck5vcm0gPSBwYWlySW5mby52ZWN0b3JOb3JtID0ge1xuICAgICAgICAgIHg6IHZlY3Rvci54IC8gbCxcbiAgICAgICAgICB5OiB2ZWN0b3IueSAvIGxcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHZlY3Rvck5vcm1JbnZlcnNlID0ge1xuICAgICAgICAgIHg6IC12ZWN0b3JOb3JtLnksXG4gICAgICAgICAgeTogdmVjdG9yTm9ybS54XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gaWYgbm9kZSBzaGFwZXMgb3ZlcmxhcCwgdGhlbiBubyBjdHJsIHB0cyB0byBkcmF3XG4gICAgICAgIHBhaXJJbmZvLm5vZGVzT3ZlcmxhcCA9ICFudW1iZXIkMShsKSB8fCB0Z3RTaGFwZS5jaGVja1BvaW50KHNyY091dHNpZGVbMF0sIHNyY091dHNpZGVbMV0sIDAsIHRndFcsIHRndEgsIHRndFBvcy54LCB0Z3RQb3MueSwgdGd0Q29ybmVyUmFkaXVzLCB0Z3RScykgfHwgc3JjU2hhcGUuY2hlY2tQb2ludCh0Z3RPdXRzaWRlWzBdLCB0Z3RPdXRzaWRlWzFdLCAwLCBzcmNXLCBzcmNILCBzcmNQb3MueCwgc3JjUG9zLnksIHNyY0Nvcm5lclJhZGl1cywgc3JjUnMpO1xuICAgICAgICBwYWlySW5mby52ZWN0b3JOb3JtSW52ZXJzZSA9IHZlY3Rvck5vcm1JbnZlcnNlO1xuICAgICAgICBzd2FwcGVkcGFpckluZm8gPSB7XG4gICAgICAgICAgbm9kZXNPdmVybGFwOiBwYWlySW5mby5ub2Rlc092ZXJsYXAsXG4gICAgICAgICAgZGlyQ291bnRzOiBwYWlySW5mby5kaXJDb3VudHMsXG4gICAgICAgICAgY2FsY3VsYXRlZEludGVyc2VjdGlvbjogdHJ1ZSxcbiAgICAgICAgICBoYXNCZXppZXI6IHBhaXJJbmZvLmhhc0JlemllcixcbiAgICAgICAgICBoYXNVbmJ1bmRsZWQ6IHBhaXJJbmZvLmhhc1VuYnVuZGxlZCxcbiAgICAgICAgICBlbGVzOiBwYWlySW5mby5lbGVzLFxuICAgICAgICAgIHNyY1BvczogdGd0UG9zLFxuICAgICAgICAgIHRndFBvczogc3JjUG9zLFxuICAgICAgICAgIHNyY1c6IHRndFcsXG4gICAgICAgICAgc3JjSDogdGd0SCxcbiAgICAgICAgICB0Z3RXOiBzcmNXLFxuICAgICAgICAgIHRndEg6IHNyY0gsXG4gICAgICAgICAgc3JjSW50bjogdGd0SW50bixcbiAgICAgICAgICB0Z3RJbnRuOiBzcmNJbnRuLFxuICAgICAgICAgIHNyY1NoYXBlOiB0Z3RTaGFwZSxcbiAgICAgICAgICB0Z3RTaGFwZTogc3JjU2hhcGUsXG4gICAgICAgICAgcG9zUHRzOiB7XG4gICAgICAgICAgICB4MTogcG9zUHRzLngyLFxuICAgICAgICAgICAgeTE6IHBvc1B0cy55MixcbiAgICAgICAgICAgIHgyOiBwb3NQdHMueDEsXG4gICAgICAgICAgICB5MjogcG9zUHRzLnkxXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbnRlcnNlY3Rpb25QdHM6IHtcbiAgICAgICAgICAgIHgxOiBpbnRlcnNlY3Rpb25QdHMueDIsXG4gICAgICAgICAgICB5MTogaW50ZXJzZWN0aW9uUHRzLnkyLFxuICAgICAgICAgICAgeDI6IGludGVyc2VjdGlvblB0cy54MSxcbiAgICAgICAgICAgIHkyOiBpbnRlcnNlY3Rpb25QdHMueTFcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZlY3Rvcjoge1xuICAgICAgICAgICAgeDogLXZlY3Rvci54LFxuICAgICAgICAgICAgeTogLXZlY3Rvci55XG4gICAgICAgICAgfSxcbiAgICAgICAgICB2ZWN0b3JOb3JtOiB7XG4gICAgICAgICAgICB4OiAtdmVjdG9yTm9ybS54LFxuICAgICAgICAgICAgeTogLXZlY3Rvck5vcm0ueVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmVjdG9yTm9ybUludmVyc2U6IHtcbiAgICAgICAgICAgIHg6IC12ZWN0b3JOb3JtSW52ZXJzZS54LFxuICAgICAgICAgICAgeTogLXZlY3Rvck5vcm1JbnZlcnNlLnlcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICB2YXIgcGFzc2VkUGFpckluZm8gPSBlZGdlSXNTd2FwcGVkID8gc3dhcHBlZHBhaXJJbmZvIDogcGFpckluZm87XG4gICAgICBycy5ub2Rlc092ZXJsYXAgPSBwYXNzZWRQYWlySW5mby5ub2Rlc092ZXJsYXA7XG4gICAgICBycy5zcmNJbnRuID0gcGFzc2VkUGFpckluZm8uc3JjSW50bjtcbiAgICAgIHJzLnRndEludG4gPSBwYXNzZWRQYWlySW5mby50Z3RJbnRuO1xuICAgICAgcnMuaXNSb3VuZCA9IF9jdXJ2ZVN0eWxlLnN0YXJ0c1dpdGgoJ3JvdW5kJyk7XG4gICAgICBpZiAoaGFzQ29tcG91bmRzICYmIChzcmMuaXNQYXJlbnQoKSB8fCBzcmMuaXNDaGlsZCgpIHx8IHRndC5pc1BhcmVudCgpIHx8IHRndC5pc0NoaWxkKCkpICYmIChzcmMucGFyZW50cygpLmFueVNhbWUodGd0KSB8fCB0Z3QucGFyZW50cygpLmFueVNhbWUoc3JjKSB8fCBzcmMuc2FtZSh0Z3QpICYmIHNyYy5pc1BhcmVudCgpKSkge1xuICAgICAgICBfdGhpcy5maW5kQ29tcG91bmRMb29wUG9pbnRzKF9lZGdlLCBwYXNzZWRQYWlySW5mbywgX2kyLCBfZWRnZUlzVW5idW5kbGVkKTtcbiAgICAgIH0gZWxzZSBpZiAoc3JjID09PSB0Z3QpIHtcbiAgICAgICAgX3RoaXMuZmluZExvb3BQb2ludHMoX2VkZ2UsIHBhc3NlZFBhaXJJbmZvLCBfaTIsIF9lZGdlSXNVbmJ1bmRsZWQpO1xuICAgICAgfSBlbHNlIGlmIChfY3VydmVTdHlsZS5lbmRzV2l0aCgnc2VnbWVudHMnKSkge1xuICAgICAgICBfdGhpcy5maW5kU2VnbWVudHNQb2ludHMoX2VkZ2UsIHBhc3NlZFBhaXJJbmZvKTtcbiAgICAgIH0gZWxzZSBpZiAoX2N1cnZlU3R5bGUuZW5kc1dpdGgoJ3RheGknKSkge1xuICAgICAgICBfdGhpcy5maW5kVGF4aVBvaW50cyhfZWRnZSwgcGFzc2VkUGFpckluZm8pO1xuICAgICAgfSBlbHNlIGlmIChfY3VydmVTdHlsZSA9PT0gJ3N0cmFpZ2h0JyB8fCAhX2VkZ2VJc1VuYnVuZGxlZCAmJiBwYWlySW5mby5lbGVzLmxlbmd0aCAlIDIgPT09IDEgJiYgX2kyID09PSBNYXRoLmZsb29yKHBhaXJJbmZvLmVsZXMubGVuZ3RoIC8gMikpIHtcbiAgICAgICAgX3RoaXMuZmluZFN0cmFpZ2h0RWRnZVBvaW50cyhfZWRnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfdGhpcy5maW5kQmV6aWVyUG9pbnRzKF9lZGdlLCBwYXNzZWRQYWlySW5mbywgX2kyLCBfZWRnZUlzVW5idW5kbGVkLCBlZGdlSXNTd2FwcGVkKTtcbiAgICAgIH1cbiAgICAgIF90aGlzLmZpbmRFbmRwb2ludHMoX2VkZ2UpO1xuICAgICAgX3RoaXMudHJ5VG9Db3JyZWN0SW52YWxpZFBvaW50cyhfZWRnZSwgcGFzc2VkUGFpckluZm8pO1xuICAgICAgX3RoaXMuY2hlY2tGb3JJbnZhbGlkRWRnZVdhcm5pbmcoX2VkZ2UpO1xuICAgICAgX3RoaXMuc3RvcmVBbGxwdHMoX2VkZ2UpO1xuICAgICAgX3RoaXMuc3RvcmVFZGdlUHJvamVjdGlvbnMoX2VkZ2UpO1xuICAgICAgX3RoaXMuY2FsY3VsYXRlQXJyb3dBbmdsZXMoX2VkZ2UpO1xuICAgICAgX3RoaXMucmVjYWxjdWxhdGVFZGdlTGFiZWxQcm9qZWN0aW9ucyhfZWRnZSk7XG4gICAgICBfdGhpcy5jYWxjdWxhdGVMYWJlbEFuZ2xlcyhfZWRnZSk7XG4gICAgfSAvLyBmb3IgcGFpciBlZGdlc1xuICB9O1xuICBmb3IgKHZhciBwID0gMDsgcCA8IHBhaXJJZHMubGVuZ3RoOyBwKyspIHtcbiAgICBfbG9vcChwKTtcbiAgfSAvLyBmb3IgcGFpciBpZHNcblxuICAvLyBoYXlzdGFja3MgYXZvaWQgdGhlIGV4cGVuc2Ugb2YgcGFpckluZm8gc3R1ZmYgKGludGVyc2VjdGlvbnMgZXRjLilcbiAgdGhpcy5maW5kSGF5c3RhY2tQb2ludHMoaGF5c3RhY2tFZGdlcyk7XG59O1xuZnVuY3Rpb24gZ2V0UHRzKHB0cykge1xuICB2YXIgcmV0UHRzID0gW107XG4gIGlmIChwdHMgPT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHB0cy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHZhciB4ID0gcHRzW2ldO1xuICAgIHZhciB5ID0gcHRzW2kgKyAxXTtcbiAgICByZXRQdHMucHVzaCh7XG4gICAgICB4OiB4LFxuICAgICAgeTogeVxuICAgIH0pO1xuICB9XG4gIHJldHVybiByZXRQdHM7XG59XG5CUnAkYy5nZXRTZWdtZW50UG9pbnRzID0gZnVuY3Rpb24gKGVkZ2UpIHtcbiAgdmFyIHJzID0gZWRnZVswXS5fcHJpdmF0ZS5yc2NyYXRjaDtcbiAgdmFyIHR5cGUgPSBycy5lZGdlVHlwZTtcbiAgaWYgKHR5cGUgPT09ICdzZWdtZW50cycpIHtcbiAgICB0aGlzLnJlY2FsY3VsYXRlUmVuZGVyZWRTdHlsZShlZGdlKTtcbiAgICByZXR1cm4gZ2V0UHRzKHJzLnNlZ3B0cyk7XG4gIH1cbn07XG5CUnAkYy5nZXRDb250cm9sUG9pbnRzID0gZnVuY3Rpb24gKGVkZ2UpIHtcbiAgdmFyIHJzID0gZWRnZVswXS5fcHJpdmF0ZS5yc2NyYXRjaDtcbiAgdmFyIHR5cGUgPSBycy5lZGdlVHlwZTtcbiAgaWYgKHR5cGUgPT09ICdiZXppZXInIHx8IHR5cGUgPT09ICdtdWx0aWJlemllcicgfHwgdHlwZSA9PT0gJ3NlbGYnIHx8IHR5cGUgPT09ICdjb21wb3VuZCcpIHtcbiAgICB0aGlzLnJlY2FsY3VsYXRlUmVuZGVyZWRTdHlsZShlZGdlKTtcbiAgICByZXR1cm4gZ2V0UHRzKHJzLmN0cmxwdHMpO1xuICB9XG59O1xuQlJwJGMuZ2V0RWRnZU1pZHBvaW50ID0gZnVuY3Rpb24gKGVkZ2UpIHtcbiAgdmFyIHJzID0gZWRnZVswXS5fcHJpdmF0ZS5yc2NyYXRjaDtcbiAgdGhpcy5yZWNhbGN1bGF0ZVJlbmRlcmVkU3R5bGUoZWRnZSk7XG4gIHJldHVybiB7XG4gICAgeDogcnMubWlkWCxcbiAgICB5OiBycy5taWRZXG4gIH07XG59O1xuXG52YXIgQlJwJGIgPSB7fTtcbkJScCRiLm1hbnVhbEVuZHB0VG9QeCA9IGZ1bmN0aW9uIChub2RlLCBwcm9wKSB7XG4gIHZhciByID0gdGhpcztcbiAgdmFyIG5wb3MgPSBub2RlLnBvc2l0aW9uKCk7XG4gIHZhciB3ID0gbm9kZS5vdXRlcldpZHRoKCk7XG4gIHZhciBoID0gbm9kZS5vdXRlckhlaWdodCgpO1xuICB2YXIgcnMgPSBub2RlLl9wcml2YXRlLnJzY3JhdGNoO1xuICBpZiAocHJvcC52YWx1ZS5sZW5ndGggPT09IDIpIHtcbiAgICB2YXIgcCA9IFtwcm9wLnBmVmFsdWVbMF0sIHByb3AucGZWYWx1ZVsxXV07XG4gICAgaWYgKHByb3AudW5pdHNbMF0gPT09ICclJykge1xuICAgICAgcFswXSA9IHBbMF0gKiB3O1xuICAgIH1cbiAgICBpZiAocHJvcC51bml0c1sxXSA9PT0gJyUnKSB7XG4gICAgICBwWzFdID0gcFsxXSAqIGg7XG4gICAgfVxuICAgIHBbMF0gKz0gbnBvcy54O1xuICAgIHBbMV0gKz0gbnBvcy55O1xuICAgIHJldHVybiBwO1xuICB9IGVsc2Uge1xuICAgIHZhciBhbmdsZSA9IHByb3AucGZWYWx1ZVswXTtcbiAgICBhbmdsZSA9IC1NYXRoLlBJIC8gMiArIGFuZ2xlOyAvLyBzdGFydCBhdCAxMiBvJ2Nsb2NrXG5cbiAgICB2YXIgbCA9IDIgKiBNYXRoLm1heCh3LCBoKTtcbiAgICB2YXIgX3AgPSBbbnBvcy54ICsgTWF0aC5jb3MoYW5nbGUpICogbCwgbnBvcy55ICsgTWF0aC5zaW4oYW5nbGUpICogbF07XG4gICAgcmV0dXJuIHIubm9kZVNoYXBlc1t0aGlzLmdldE5vZGVTaGFwZShub2RlKV0uaW50ZXJzZWN0TGluZShucG9zLngsIG5wb3MueSwgdywgaCwgX3BbMF0sIF9wWzFdLCAwLCBub2RlLnBzdHlsZSgnY29ybmVyLXJhZGl1cycpLnZhbHVlID09PSAnYXV0bycgPyAnYXV0bycgOiBub2RlLnBzdHlsZSgnY29ybmVyLXJhZGl1cycpLnBmVmFsdWUsIHJzKTtcbiAgfVxufTtcbkJScCRiLmZpbmRFbmRwb2ludHMgPSBmdW5jdGlvbiAoZWRnZSkge1xuICB2YXIgciA9IHRoaXM7XG4gIHZhciBpbnRlcnNlY3Q7XG4gIHZhciBzb3VyY2UgPSBlZGdlLnNvdXJjZSgpWzBdO1xuICB2YXIgdGFyZ2V0ID0gZWRnZS50YXJnZXQoKVswXTtcbiAgdmFyIHNyY1BvcyA9IHNvdXJjZS5wb3NpdGlvbigpO1xuICB2YXIgdGd0UG9zID0gdGFyZ2V0LnBvc2l0aW9uKCk7XG4gIHZhciB0Z3RBclNoYXBlID0gZWRnZS5wc3R5bGUoJ3RhcmdldC1hcnJvdy1zaGFwZScpLnZhbHVlO1xuICB2YXIgc3JjQXJTaGFwZSA9IGVkZ2UucHN0eWxlKCdzb3VyY2UtYXJyb3ctc2hhcGUnKS52YWx1ZTtcbiAgdmFyIHRndERpc3QgPSBlZGdlLnBzdHlsZSgndGFyZ2V0LWRpc3RhbmNlLWZyb20tbm9kZScpLnBmVmFsdWU7XG4gIHZhciBzcmNEaXN0ID0gZWRnZS5wc3R5bGUoJ3NvdXJjZS1kaXN0YW5jZS1mcm9tLW5vZGUnKS5wZlZhbHVlO1xuICB2YXIgc3JjUnMgPSBzb3VyY2UuX3ByaXZhdGUucnNjcmF0Y2g7XG4gIHZhciB0Z3RScyA9IHRhcmdldC5fcHJpdmF0ZS5yc2NyYXRjaDtcbiAgdmFyIGN1cnZlU3R5bGUgPSBlZGdlLnBzdHlsZSgnY3VydmUtc3R5bGUnKS52YWx1ZTtcbiAgdmFyIHJzID0gZWRnZS5fcHJpdmF0ZS5yc2NyYXRjaDtcbiAgdmFyIGV0ID0gcnMuZWRnZVR5cGU7XG4gIHZhciB0YXhpID0gY3VydmVTdHlsZSA9PT0gJ3RheGknO1xuICB2YXIgc2VsZiA9IGV0ID09PSAnc2VsZicgfHwgZXQgPT09ICdjb21wb3VuZCc7XG4gIHZhciBiZXppZXIgPSBldCA9PT0gJ2JlemllcicgfHwgZXQgPT09ICdtdWx0aWJlemllcicgfHwgc2VsZjtcbiAgdmFyIG11bHRpID0gZXQgIT09ICdiZXppZXInO1xuICB2YXIgbGluZXMgPSBldCA9PT0gJ3N0cmFpZ2h0JyB8fCBldCA9PT0gJ3NlZ21lbnRzJztcbiAgdmFyIHNlZ21lbnRzID0gZXQgPT09ICdzZWdtZW50cyc7XG4gIHZhciBoYXNFbmRwdHMgPSBiZXppZXIgfHwgbXVsdGkgfHwgbGluZXM7XG4gIHZhciBvdmVycmlkZUVuZHB0cyA9IHNlbGYgfHwgdGF4aTtcbiAgdmFyIHNyY01hbkVuZHB0ID0gZWRnZS5wc3R5bGUoJ3NvdXJjZS1lbmRwb2ludCcpO1xuICB2YXIgc3JjTWFuRW5kcHRWYWwgPSBvdmVycmlkZUVuZHB0cyA/ICdvdXRzaWRlLXRvLW5vZGUnIDogc3JjTWFuRW5kcHQudmFsdWU7XG4gIHZhciBzcmNDb3JuZXJSYWRpdXMgPSBzb3VyY2UucHN0eWxlKCdjb3JuZXItcmFkaXVzJykudmFsdWUgPT09ICdhdXRvJyA/ICdhdXRvJyA6IHNvdXJjZS5wc3R5bGUoJ2Nvcm5lci1yYWRpdXMnKS5wZlZhbHVlO1xuICB2YXIgdGd0TWFuRW5kcHQgPSBlZGdlLnBzdHlsZSgndGFyZ2V0LWVuZHBvaW50Jyk7XG4gIHZhciB0Z3RNYW5FbmRwdFZhbCA9IG92ZXJyaWRlRW5kcHRzID8gJ291dHNpZGUtdG8tbm9kZScgOiB0Z3RNYW5FbmRwdC52YWx1ZTtcbiAgdmFyIHRndENvcm5lclJhZGl1cyA9IHRhcmdldC5wc3R5bGUoJ2Nvcm5lci1yYWRpdXMnKS52YWx1ZSA9PT0gJ2F1dG8nID8gJ2F1dG8nIDogdGFyZ2V0LnBzdHlsZSgnY29ybmVyLXJhZGl1cycpLnBmVmFsdWU7XG4gIHJzLnNyY01hbkVuZHB0ID0gc3JjTWFuRW5kcHQ7XG4gIHJzLnRndE1hbkVuZHB0ID0gdGd0TWFuRW5kcHQ7XG4gIHZhciBwMTsgLy8gbGFzdCBrbm93biBwb2ludCBvZiBlZGdlIG9uIHRhcmdldCBzaWRlXG4gIHZhciBwMjsgLy8gbGFzdCBrbm93biBwb2ludCBvZiBlZGdlIG9uIHNvdXJjZSBzaWRlXG5cbiAgdmFyIHAxX2k7IC8vIHBvaW50IHRvIGludGVyc2VjdCB3aXRoIHRhcmdldCBzaGFwZVxuICB2YXIgcDJfaTsgLy8gcG9pbnQgdG8gaW50ZXJzZWN0IHdpdGggc291cmNlIHNoYXBlXG5cbiAgaWYgKGJlemllcikge1xuICAgIHZhciBjcFN0YXJ0ID0gW3JzLmN0cmxwdHNbMF0sIHJzLmN0cmxwdHNbMV1dO1xuICAgIHZhciBjcEVuZCA9IG11bHRpID8gW3JzLmN0cmxwdHNbcnMuY3RybHB0cy5sZW5ndGggLSAyXSwgcnMuY3RybHB0c1tycy5jdHJscHRzLmxlbmd0aCAtIDFdXSA6IGNwU3RhcnQ7XG4gICAgcDEgPSBjcEVuZDtcbiAgICBwMiA9IGNwU3RhcnQ7XG4gIH0gZWxzZSBpZiAobGluZXMpIHtcbiAgICB2YXIgc3JjQXJyb3dGcm9tUHQgPSAhc2VnbWVudHMgPyBbdGd0UG9zLngsIHRndFBvcy55XSA6IHJzLnNlZ3B0cy5zbGljZSgwLCAyKTtcbiAgICB2YXIgdGd0QXJyb3dGcm9tUHQgPSAhc2VnbWVudHMgPyBbc3JjUG9zLngsIHNyY1Bvcy55XSA6IHJzLnNlZ3B0cy5zbGljZShycy5zZWdwdHMubGVuZ3RoIC0gMik7XG4gICAgcDEgPSB0Z3RBcnJvd0Zyb21QdDtcbiAgICBwMiA9IHNyY0Fycm93RnJvbVB0O1xuICB9XG4gIGlmICh0Z3RNYW5FbmRwdFZhbCA9PT0gJ2luc2lkZS10by1ub2RlJykge1xuICAgIGludGVyc2VjdCA9IFt0Z3RQb3MueCwgdGd0UG9zLnldO1xuICB9IGVsc2UgaWYgKHRndE1hbkVuZHB0LnVuaXRzKSB7XG4gICAgaW50ZXJzZWN0ID0gdGhpcy5tYW51YWxFbmRwdFRvUHgodGFyZ2V0LCB0Z3RNYW5FbmRwdCk7XG4gIH0gZWxzZSBpZiAodGd0TWFuRW5kcHRWYWwgPT09ICdvdXRzaWRlLXRvLWxpbmUnKSB7XG4gICAgaW50ZXJzZWN0ID0gcnMudGd0SW50bjsgLy8gdXNlIGNhY2hlZCB2YWx1ZSBmcm9tIGN0cmxwdCBjYWxjXG4gIH0gZWxzZSB7XG4gICAgaWYgKHRndE1hbkVuZHB0VmFsID09PSAnb3V0c2lkZS10by1ub2RlJyB8fCB0Z3RNYW5FbmRwdFZhbCA9PT0gJ291dHNpZGUtdG8tbm9kZS1vci1sYWJlbCcpIHtcbiAgICAgIHAxX2kgPSBwMTtcbiAgICB9IGVsc2UgaWYgKHRndE1hbkVuZHB0VmFsID09PSAnb3V0c2lkZS10by1saW5lJyB8fCB0Z3RNYW5FbmRwdFZhbCA9PT0gJ291dHNpZGUtdG8tbGluZS1vci1sYWJlbCcpIHtcbiAgICAgIHAxX2kgPSBbc3JjUG9zLngsIHNyY1Bvcy55XTtcbiAgICB9XG4gICAgaW50ZXJzZWN0ID0gci5ub2RlU2hhcGVzW3RoaXMuZ2V0Tm9kZVNoYXBlKHRhcmdldCldLmludGVyc2VjdExpbmUodGd0UG9zLngsIHRndFBvcy55LCB0YXJnZXQub3V0ZXJXaWR0aCgpLCB0YXJnZXQub3V0ZXJIZWlnaHQoKSwgcDFfaVswXSwgcDFfaVsxXSwgMCwgdGd0Q29ybmVyUmFkaXVzLCB0Z3RScyk7XG4gICAgaWYgKHRndE1hbkVuZHB0VmFsID09PSAnb3V0c2lkZS10by1ub2RlLW9yLWxhYmVsJyB8fCB0Z3RNYW5FbmRwdFZhbCA9PT0gJ291dHNpZGUtdG8tbGluZS1vci1sYWJlbCcpIHtcbiAgICAgIHZhciB0cnMgPSB0YXJnZXQuX3ByaXZhdGUucnNjcmF0Y2g7XG4gICAgICB2YXIgbHcgPSB0cnMubGFiZWxXaWR0aDtcbiAgICAgIHZhciBsaCA9IHRycy5sYWJlbEhlaWdodDtcbiAgICAgIHZhciBseCA9IHRycy5sYWJlbFg7XG4gICAgICB2YXIgbHkgPSB0cnMubGFiZWxZO1xuICAgICAgdmFyIGx3MiA9IGx3IC8gMjtcbiAgICAgIHZhciBsaDIgPSBsaCAvIDI7XG4gICAgICB2YXIgdmEgPSB0YXJnZXQucHN0eWxlKCd0ZXh0LXZhbGlnbicpLnZhbHVlO1xuICAgICAgaWYgKHZhID09PSAndG9wJykge1xuICAgICAgICBseSAtPSBsaDI7XG4gICAgICB9IGVsc2UgaWYgKHZhID09PSAnYm90dG9tJykge1xuICAgICAgICBseSArPSBsaDI7XG4gICAgICB9XG4gICAgICB2YXIgaGEgPSB0YXJnZXQucHN0eWxlKCd0ZXh0LWhhbGlnbicpLnZhbHVlO1xuICAgICAgaWYgKGhhID09PSAnbGVmdCcpIHtcbiAgICAgICAgbHggLT0gbHcyO1xuICAgICAgfSBlbHNlIGlmIChoYSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICBseCArPSBsdzI7XG4gICAgICB9XG4gICAgICB2YXIgbGFiZWxJbnRlcnNlY3QgPSBwb2x5Z29uSW50ZXJzZWN0TGluZShwMV9pWzBdLCBwMV9pWzFdLCBbbHggLSBsdzIsIGx5IC0gbGgyLCBseCArIGx3MiwgbHkgLSBsaDIsIGx4ICsgbHcyLCBseSArIGxoMiwgbHggLSBsdzIsIGx5ICsgbGgyXSwgdGd0UG9zLngsIHRndFBvcy55KTtcbiAgICAgIGlmIChsYWJlbEludGVyc2VjdC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHZhciByZWZQdCA9IHNyY1BvcztcbiAgICAgICAgdmFyIGludFNxZGlzdCA9IHNxZGlzdChyZWZQdCwgYXJyYXkycG9pbnQoaW50ZXJzZWN0KSk7XG4gICAgICAgIHZhciBsYWJJbnRTcWRpc3QgPSBzcWRpc3QocmVmUHQsIGFycmF5MnBvaW50KGxhYmVsSW50ZXJzZWN0KSk7XG4gICAgICAgIHZhciBtaW5TcURpc3QgPSBpbnRTcWRpc3Q7XG4gICAgICAgIGlmIChsYWJJbnRTcWRpc3QgPCBpbnRTcWRpc3QpIHtcbiAgICAgICAgICBpbnRlcnNlY3QgPSBsYWJlbEludGVyc2VjdDtcbiAgICAgICAgICBtaW5TcURpc3QgPSBsYWJJbnRTcWRpc3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxhYmVsSW50ZXJzZWN0Lmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICB2YXIgbGFiSW50MlNxRGlzdCA9IHNxZGlzdChyZWZQdCwge1xuICAgICAgICAgICAgeDogbGFiZWxJbnRlcnNlY3RbMl0sXG4gICAgICAgICAgICB5OiBsYWJlbEludGVyc2VjdFszXVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChsYWJJbnQyU3FEaXN0IDwgbWluU3FEaXN0KSB7XG4gICAgICAgICAgICBpbnRlcnNlY3QgPSBbbGFiZWxJbnRlcnNlY3RbMl0sIGxhYmVsSW50ZXJzZWN0WzNdXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdmFyIGFycm93RW5kID0gc2hvcnRlbkludGVyc2VjdGlvbihpbnRlcnNlY3QsIHAxLCByLmFycm93U2hhcGVzW3RndEFyU2hhcGVdLnNwYWNpbmcoZWRnZSkgKyB0Z3REaXN0KTtcbiAgdmFyIGVkZ2VFbmQgPSBzaG9ydGVuSW50ZXJzZWN0aW9uKGludGVyc2VjdCwgcDEsIHIuYXJyb3dTaGFwZXNbdGd0QXJTaGFwZV0uZ2FwKGVkZ2UpICsgdGd0RGlzdCk7XG4gIHJzLmVuZFggPSBlZGdlRW5kWzBdO1xuICBycy5lbmRZID0gZWRnZUVuZFsxXTtcbiAgcnMuYXJyb3dFbmRYID0gYXJyb3dFbmRbMF07XG4gIHJzLmFycm93RW5kWSA9IGFycm93RW5kWzFdO1xuICBpZiAoc3JjTWFuRW5kcHRWYWwgPT09ICdpbnNpZGUtdG8tbm9kZScpIHtcbiAgICBpbnRlcnNlY3QgPSBbc3JjUG9zLngsIHNyY1Bvcy55XTtcbiAgfSBlbHNlIGlmIChzcmNNYW5FbmRwdC51bml0cykge1xuICAgIGludGVyc2VjdCA9IHRoaXMubWFudWFsRW5kcHRUb1B4KHNvdXJjZSwgc3JjTWFuRW5kcHQpO1xuICB9IGVsc2UgaWYgKHNyY01hbkVuZHB0VmFsID09PSAnb3V0c2lkZS10by1saW5lJykge1xuICAgIGludGVyc2VjdCA9IHJzLnNyY0ludG47IC8vIHVzZSBjYWNoZWQgdmFsdWUgZnJvbSBjdHJscHQgY2FsY1xuICB9IGVsc2Uge1xuICAgIGlmIChzcmNNYW5FbmRwdFZhbCA9PT0gJ291dHNpZGUtdG8tbm9kZScgfHwgc3JjTWFuRW5kcHRWYWwgPT09ICdvdXRzaWRlLXRvLW5vZGUtb3ItbGFiZWwnKSB7XG4gICAgICBwMl9pID0gcDI7XG4gICAgfSBlbHNlIGlmIChzcmNNYW5FbmRwdFZhbCA9PT0gJ291dHNpZGUtdG8tbGluZScgfHwgc3JjTWFuRW5kcHRWYWwgPT09ICdvdXRzaWRlLXRvLWxpbmUtb3ItbGFiZWwnKSB7XG4gICAgICBwMl9pID0gW3RndFBvcy54LCB0Z3RQb3MueV07XG4gICAgfVxuICAgIGludGVyc2VjdCA9IHIubm9kZVNoYXBlc1t0aGlzLmdldE5vZGVTaGFwZShzb3VyY2UpXS5pbnRlcnNlY3RMaW5lKHNyY1Bvcy54LCBzcmNQb3MueSwgc291cmNlLm91dGVyV2lkdGgoKSwgc291cmNlLm91dGVySGVpZ2h0KCksIHAyX2lbMF0sIHAyX2lbMV0sIDAsIHNyY0Nvcm5lclJhZGl1cywgc3JjUnMpO1xuICAgIGlmIChzcmNNYW5FbmRwdFZhbCA9PT0gJ291dHNpZGUtdG8tbm9kZS1vci1sYWJlbCcgfHwgc3JjTWFuRW5kcHRWYWwgPT09ICdvdXRzaWRlLXRvLWxpbmUtb3ItbGFiZWwnKSB7XG4gICAgICB2YXIgc3JzID0gc291cmNlLl9wcml2YXRlLnJzY3JhdGNoO1xuICAgICAgdmFyIF9sdyA9IHNycy5sYWJlbFdpZHRoO1xuICAgICAgdmFyIF9saCA9IHNycy5sYWJlbEhlaWdodDtcbiAgICAgIHZhciBfbHggPSBzcnMubGFiZWxYO1xuICAgICAgdmFyIF9seSA9IHNycy5sYWJlbFk7XG4gICAgICB2YXIgX2x3MiA9IF9sdyAvIDI7XG4gICAgICB2YXIgX2xoMiA9IF9saCAvIDI7XG4gICAgICB2YXIgX3ZhID0gc291cmNlLnBzdHlsZSgndGV4dC12YWxpZ24nKS52YWx1ZTtcbiAgICAgIGlmIChfdmEgPT09ICd0b3AnKSB7XG4gICAgICAgIF9seSAtPSBfbGgyO1xuICAgICAgfSBlbHNlIGlmIChfdmEgPT09ICdib3R0b20nKSB7XG4gICAgICAgIF9seSArPSBfbGgyO1xuICAgICAgfVxuICAgICAgdmFyIF9oYSA9IHNvdXJjZS5wc3R5bGUoJ3RleHQtaGFsaWduJykudmFsdWU7XG4gICAgICBpZiAoX2hhID09PSAnbGVmdCcpIHtcbiAgICAgICAgX2x4IC09IF9sdzI7XG4gICAgICB9IGVsc2UgaWYgKF9oYSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICBfbHggKz0gX2x3MjtcbiAgICAgIH1cbiAgICAgIHZhciBfbGFiZWxJbnRlcnNlY3QgPSBwb2x5Z29uSW50ZXJzZWN0TGluZShwMl9pWzBdLCBwMl9pWzFdLCBbX2x4IC0gX2x3MiwgX2x5IC0gX2xoMiwgX2x4ICsgX2x3MiwgX2x5IC0gX2xoMiwgX2x4ICsgX2x3MiwgX2x5ICsgX2xoMiwgX2x4IC0gX2x3MiwgX2x5ICsgX2xoMl0sIHNyY1Bvcy54LCBzcmNQb3MueSk7XG4gICAgICBpZiAoX2xhYmVsSW50ZXJzZWN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdmFyIF9yZWZQdCA9IHRndFBvcztcbiAgICAgICAgdmFyIF9pbnRTcWRpc3QgPSBzcWRpc3QoX3JlZlB0LCBhcnJheTJwb2ludChpbnRlcnNlY3QpKTtcbiAgICAgICAgdmFyIF9sYWJJbnRTcWRpc3QgPSBzcWRpc3QoX3JlZlB0LCBhcnJheTJwb2ludChfbGFiZWxJbnRlcnNlY3QpKTtcbiAgICAgICAgdmFyIF9taW5TcURpc3QgPSBfaW50U3FkaXN0O1xuICAgICAgICBpZiAoX2xhYkludFNxZGlzdCA8IF9pbnRTcWRpc3QpIHtcbiAgICAgICAgICBpbnRlcnNlY3QgPSBbX2xhYmVsSW50ZXJzZWN0WzBdLCBfbGFiZWxJbnRlcnNlY3RbMV1dO1xuICAgICAgICAgIF9taW5TcURpc3QgPSBfbGFiSW50U3FkaXN0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChfbGFiZWxJbnRlcnNlY3QubGVuZ3RoID4gMikge1xuICAgICAgICAgIHZhciBfbGFiSW50MlNxRGlzdCA9IHNxZGlzdChfcmVmUHQsIHtcbiAgICAgICAgICAgIHg6IF9sYWJlbEludGVyc2VjdFsyXSxcbiAgICAgICAgICAgIHk6IF9sYWJlbEludGVyc2VjdFszXVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChfbGFiSW50MlNxRGlzdCA8IF9taW5TcURpc3QpIHtcbiAgICAgICAgICAgIGludGVyc2VjdCA9IFtfbGFiZWxJbnRlcnNlY3RbMl0sIF9sYWJlbEludGVyc2VjdFszXV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHZhciBhcnJvd1N0YXJ0ID0gc2hvcnRlbkludGVyc2VjdGlvbihpbnRlcnNlY3QsIHAyLCByLmFycm93U2hhcGVzW3NyY0FyU2hhcGVdLnNwYWNpbmcoZWRnZSkgKyBzcmNEaXN0KTtcbiAgdmFyIGVkZ2VTdGFydCA9IHNob3J0ZW5JbnRlcnNlY3Rpb24oaW50ZXJzZWN0LCBwMiwgci5hcnJvd1NoYXBlc1tzcmNBclNoYXBlXS5nYXAoZWRnZSkgKyBzcmNEaXN0KTtcbiAgcnMuc3RhcnRYID0gZWRnZVN0YXJ0WzBdO1xuICBycy5zdGFydFkgPSBlZGdlU3RhcnRbMV07XG4gIHJzLmFycm93U3RhcnRYID0gYXJyb3dTdGFydFswXTtcbiAgcnMuYXJyb3dTdGFydFkgPSBhcnJvd1N0YXJ0WzFdO1xuICBpZiAoaGFzRW5kcHRzKSB7XG4gICAgaWYgKCFudW1iZXIkMShycy5zdGFydFgpIHx8ICFudW1iZXIkMShycy5zdGFydFkpIHx8ICFudW1iZXIkMShycy5lbmRYKSB8fCAhbnVtYmVyJDEocnMuZW5kWSkpIHtcbiAgICAgIHJzLmJhZExpbmUgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBycy5iYWRMaW5lID0gZmFsc2U7XG4gICAgfVxuICB9XG59O1xuQlJwJGIuZ2V0U291cmNlRW5kcG9pbnQgPSBmdW5jdGlvbiAoZWRnZSkge1xuICB2YXIgcnMgPSBlZGdlWzBdLl9wcml2YXRlLnJzY3JhdGNoO1xuICB0aGlzLnJlY2FsY3VsYXRlUmVuZGVyZWRTdHlsZShlZGdlKTtcbiAgc3dpdGNoIChycy5lZGdlVHlwZSkge1xuICAgIGNhc2UgJ2hheXN0YWNrJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IHJzLmhheXN0YWNrUHRzWzBdLFxuICAgICAgICB5OiBycy5oYXlzdGFja1B0c1sxXVxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDogcnMuYXJyb3dTdGFydFgsXG4gICAgICAgIHk6IHJzLmFycm93U3RhcnRZXG4gICAgICB9O1xuICB9XG59O1xuQlJwJGIuZ2V0VGFyZ2V0RW5kcG9pbnQgPSBmdW5jdGlvbiAoZWRnZSkge1xuICB2YXIgcnMgPSBlZGdlWzBdLl9wcml2YXRlLnJzY3JhdGNoO1xuICB0aGlzLnJlY2FsY3VsYXRlUmVuZGVyZWRTdHlsZShlZGdlKTtcbiAgc3dpdGNoIChycy5lZGdlVHlwZSkge1xuICAgIGNhc2UgJ2hheXN0YWNrJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IHJzLmhheXN0YWNrUHRzWzJdLFxuICAgICAgICB5OiBycy5oYXlzdGFja1B0c1szXVxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDogcnMuYXJyb3dFbmRYLFxuICAgICAgICB5OiBycy5hcnJvd0VuZFlcbiAgICAgIH07XG4gIH1cbn07XG5cbnZhciBCUnAkYSA9IHt9O1xuZnVuY3Rpb24gcHVzaEJlemllclB0cyhyLCBlZGdlLCBwdHMpIHtcbiAgdmFyIHFiZXppZXJBdCQxID0gZnVuY3Rpb24gcWJlemllckF0JDEocDEsIHAyLCBwMywgdCkge1xuICAgIHJldHVybiBxYmV6aWVyQXQocDEsIHAyLCBwMywgdCk7XG4gIH07XG4gIHZhciBfcCA9IGVkZ2UuX3ByaXZhdGU7XG4gIHZhciBicHRzID0gX3AucnN0eWxlLmJlemllclB0cztcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByLmJlemllclByb2pQY3RzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHAgPSByLmJlemllclByb2pQY3RzW2ldO1xuICAgIGJwdHMucHVzaCh7XG4gICAgICB4OiBxYmV6aWVyQXQkMShwdHNbMF0sIHB0c1syXSwgcHRzWzRdLCBwKSxcbiAgICAgIHk6IHFiZXppZXJBdCQxKHB0c1sxXSwgcHRzWzNdLCBwdHNbNV0sIHApXG4gICAgfSk7XG4gIH1cbn1cbkJScCRhLnN0b3JlRWRnZVByb2plY3Rpb25zID0gZnVuY3Rpb24gKGVkZ2UpIHtcbiAgdmFyIF9wID0gZWRnZS5fcHJpdmF0ZTtcbiAgdmFyIHJzID0gX3AucnNjcmF0Y2g7XG4gIHZhciBldCA9IHJzLmVkZ2VUeXBlO1xuXG4gIC8vIGNsZWFyIHRoZSBjYWNoZWQgcG9pbnRzIHN0YXRlXG4gIF9wLnJzdHlsZS5iZXppZXJQdHMgPSBudWxsO1xuICBfcC5yc3R5bGUubGluZVB0cyA9IG51bGw7XG4gIF9wLnJzdHlsZS5oYXlzdGFja1B0cyA9IG51bGw7XG4gIGlmIChldCA9PT0gJ211bHRpYmV6aWVyJyB8fCBldCA9PT0gJ2JlemllcicgfHwgZXQgPT09ICdzZWxmJyB8fCBldCA9PT0gJ2NvbXBvdW5kJykge1xuICAgIF9wLnJzdHlsZS5iZXppZXJQdHMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSArIDUgPCBycy5hbGxwdHMubGVuZ3RoOyBpICs9IDQpIHtcbiAgICAgIHB1c2hCZXppZXJQdHModGhpcywgZWRnZSwgcnMuYWxscHRzLnNsaWNlKGksIGkgKyA2KSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGV0ID09PSAnc2VnbWVudHMnKSB7XG4gICAgdmFyIGxwdHMgPSBfcC5yc3R5bGUubGluZVB0cyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpICsgMSA8IHJzLmFsbHB0cy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgbHB0cy5wdXNoKHtcbiAgICAgICAgeDogcnMuYWxscHRzW2ldLFxuICAgICAgICB5OiBycy5hbGxwdHNbaSArIDFdXG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZXQgPT09ICdoYXlzdGFjaycpIHtcbiAgICB2YXIgaHB0cyA9IHJzLmhheXN0YWNrUHRzO1xuICAgIF9wLnJzdHlsZS5oYXlzdGFja1B0cyA9IFt7XG4gICAgICB4OiBocHRzWzBdLFxuICAgICAgeTogaHB0c1sxXVxuICAgIH0sIHtcbiAgICAgIHg6IGhwdHNbMl0sXG4gICAgICB5OiBocHRzWzNdXG4gICAgfV07XG4gIH1cbiAgX3AucnN0eWxlLmFycm93V2lkdGggPSB0aGlzLmdldEFycm93V2lkdGgoZWRnZS5wc3R5bGUoJ3dpZHRoJykucGZWYWx1ZSwgZWRnZS5wc3R5bGUoJ2Fycm93LXNjYWxlJykudmFsdWUpICogdGhpcy5hcnJvd1NoYXBlV2lkdGg7XG59O1xuQlJwJGEucmVjYWxjdWxhdGVFZGdlUHJvamVjdGlvbnMgPSBmdW5jdGlvbiAoZWRnZXMpIHtcbiAgdGhpcy5maW5kRWRnZUNvbnRyb2xQb2ludHMoZWRnZXMpO1xufTtcblxudmFyIEJScCQ5ID0ge307XG5CUnAkOS5yZWNhbGN1bGF0ZU5vZGVMYWJlbFByb2plY3Rpb24gPSBmdW5jdGlvbiAobm9kZSkge1xuICB2YXIgY29udGVudCA9IG5vZGUucHN0eWxlKCdsYWJlbCcpLnN0clZhbHVlO1xuICBpZiAoZW1wdHlTdHJpbmcoY29udGVudCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIHRleHRYLCB0ZXh0WTtcbiAgdmFyIF9wID0gbm9kZS5fcHJpdmF0ZTtcbiAgdmFyIG5vZGVXaWR0aCA9IG5vZGUud2lkdGgoKTtcbiAgdmFyIG5vZGVIZWlnaHQgPSBub2RlLmhlaWdodCgpO1xuICB2YXIgcGFkZGluZyA9IG5vZGUucGFkZGluZygpO1xuICB2YXIgbm9kZVBvcyA9IG5vZGUucG9zaXRpb24oKTtcbiAgdmFyIHRleHRIYWxpZ24gPSBub2RlLnBzdHlsZSgndGV4dC1oYWxpZ24nKS5zdHJWYWx1ZTtcbiAgdmFyIHRleHRWYWxpZ24gPSBub2RlLnBzdHlsZSgndGV4dC12YWxpZ24nKS5zdHJWYWx1ZTtcbiAgdmFyIHJzID0gX3AucnNjcmF0Y2g7XG4gIHZhciByc3R5bGUgPSBfcC5yc3R5bGU7XG4gIHN3aXRjaCAodGV4dEhhbGlnbikge1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgdGV4dFggPSBub2RlUG9zLnggLSBub2RlV2lkdGggLyAyIC0gcGFkZGluZztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHRleHRYID0gbm9kZVBvcy54ICsgbm9kZVdpZHRoIC8gMiArIHBhZGRpbmc7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgLy8gZS5nLiBjZW50ZXJcbiAgICAgIHRleHRYID0gbm9kZVBvcy54O1xuICB9XG4gIHN3aXRjaCAodGV4dFZhbGlnbikge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICB0ZXh0WSA9IG5vZGVQb3MueSAtIG5vZGVIZWlnaHQgLyAyIC0gcGFkZGluZztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICB0ZXh0WSA9IG5vZGVQb3MueSArIG5vZGVIZWlnaHQgLyAyICsgcGFkZGluZztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBlLmcuIG1pZGRsZVxuICAgICAgdGV4dFkgPSBub2RlUG9zLnk7XG4gIH1cbiAgcnMubGFiZWxYID0gdGV4dFg7XG4gIHJzLmxhYmVsWSA9IHRleHRZO1xuICByc3R5bGUubGFiZWxYID0gdGV4dFg7XG4gIHJzdHlsZS5sYWJlbFkgPSB0ZXh0WTtcbiAgdGhpcy5jYWxjdWxhdGVMYWJlbEFuZ2xlcyhub2RlKTtcbiAgdGhpcy5hcHBseUxhYmVsRGltZW5zaW9ucyhub2RlKTtcbn07XG52YXIgbGluZUFuZ2xlRnJvbURlbHRhID0gZnVuY3Rpb24gbGluZUFuZ2xlRnJvbURlbHRhKGR4LCBkeSkge1xuICB2YXIgYW5nbGUgPSBNYXRoLmF0YW4oZHkgLyBkeCk7XG4gIGlmIChkeCA9PT0gMCAmJiBhbmdsZSA8IDApIHtcbiAgICBhbmdsZSA9IGFuZ2xlICogLTE7XG4gIH1cbiAgcmV0dXJuIGFuZ2xlO1xufTtcbnZhciBsaW5lQW5nbGUgPSBmdW5jdGlvbiBsaW5lQW5nbGUocDAsIHAxKSB7XG4gIHZhciBkeCA9IHAxLnggLSBwMC54O1xuICB2YXIgZHkgPSBwMS55IC0gcDAueTtcbiAgcmV0dXJuIGxpbmVBbmdsZUZyb21EZWx0YShkeCwgZHkpO1xufTtcbnZhciBiZXppZXJBbmdsZSA9IGZ1bmN0aW9uIGJlemllckFuZ2xlKHAwLCBwMSwgcDIsIHQpIHtcbiAgdmFyIHQwID0gYm91bmQoMCwgdCAtIDAuMDAxLCAxKTtcbiAgdmFyIHQxID0gYm91bmQoMCwgdCArIDAuMDAxLCAxKTtcbiAgdmFyIGxwMCA9IHFiZXppZXJQdEF0KHAwLCBwMSwgcDIsIHQwKTtcbiAgdmFyIGxwMSA9IHFiZXppZXJQdEF0KHAwLCBwMSwgcDIsIHQxKTtcbiAgcmV0dXJuIGxpbmVBbmdsZShscDAsIGxwMSk7XG59O1xuQlJwJDkucmVjYWxjdWxhdGVFZGdlTGFiZWxQcm9qZWN0aW9ucyA9IGZ1bmN0aW9uIChlZGdlKSB7XG4gIHZhciBwO1xuICB2YXIgX3AgPSBlZGdlLl9wcml2YXRlO1xuICB2YXIgcnMgPSBfcC5yc2NyYXRjaDtcbiAgdmFyIHIgPSB0aGlzO1xuICB2YXIgY29udGVudCA9IHtcbiAgICBtaWQ6IGVkZ2UucHN0eWxlKCdsYWJlbCcpLnN0clZhbHVlLFxuICAgIHNvdXJjZTogZWRnZS5wc3R5bGUoJ3NvdXJjZS1sYWJlbCcpLnN0clZhbHVlLFxuICAgIHRhcmdldDogZWRnZS5wc3R5bGUoJ3RhcmdldC1sYWJlbCcpLnN0clZhbHVlXG4gIH07XG4gIGlmIChjb250ZW50Lm1pZCB8fCBjb250ZW50LnNvdXJjZSB8fCBjb250ZW50LnRhcmdldCkgOyBlbHNlIHtcbiAgICByZXR1cm47IC8vIG5vIGxhYmVscyA9PiBubyBjYWxjc1xuICB9XG5cbiAgLy8gYWRkIGNlbnRlciBwb2ludCB0byBzdHlsZSBzbyBib3VuZGluZyBib3ggY2FsY3VsYXRpb25zIGNhbiB1c2UgaXRcbiAgLy9cbiAgcCA9IHtcbiAgICB4OiBycy5taWRYLFxuICAgIHk6IHJzLm1pZFlcbiAgfTtcbiAgdmFyIHNldFJzID0gZnVuY3Rpb24gc2V0UnMocHJvcE5hbWUsIHByZWZpeCwgdmFsdWUpIHtcbiAgICBzZXRQcmVmaXhlZFByb3BlcnR5KF9wLnJzY3JhdGNoLCBwcm9wTmFtZSwgcHJlZml4LCB2YWx1ZSk7XG4gICAgc2V0UHJlZml4ZWRQcm9wZXJ0eShfcC5yc3R5bGUsIHByb3BOYW1lLCBwcmVmaXgsIHZhbHVlKTtcbiAgfTtcbiAgc2V0UnMoJ2xhYmVsWCcsIG51bGwsIHAueCk7XG4gIHNldFJzKCdsYWJlbFknLCBudWxsLCBwLnkpO1xuICB2YXIgbWlkQW5nbGUgPSBsaW5lQW5nbGVGcm9tRGVsdGEocnMubWlkRGlzcFgsIHJzLm1pZERpc3BZKTtcbiAgc2V0UnMoJ2xhYmVsQXV0b0FuZ2xlJywgbnVsbCwgbWlkQW5nbGUpO1xuICB2YXIgY3JlYXRlQ29udHJvbFBvaW50SW5mbyA9IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xQb2ludEluZm8oKSB7XG4gICAgaWYgKGNyZWF0ZUNvbnRyb2xQb2ludEluZm8uY2FjaGUpIHtcbiAgICAgIHJldHVybiBjcmVhdGVDb250cm9sUG9pbnRJbmZvLmNhY2hlO1xuICAgIH0gLy8gdXNlIGNhY2hlIHNvIG9ubHkgMXggcGVyIGVkZ2VcblxuICAgIHZhciBjdHJscHRzID0gW107XG5cbiAgICAvLyBzdG9yZSBlYWNoIGN0cmxwdCBpbmZvIGluaXRcbiAgICBmb3IgKHZhciBpID0gMDsgaSArIDUgPCBycy5hbGxwdHMubGVuZ3RoOyBpICs9IDQpIHtcbiAgICAgIHZhciBwMCA9IHtcbiAgICAgICAgeDogcnMuYWxscHRzW2ldLFxuICAgICAgICB5OiBycy5hbGxwdHNbaSArIDFdXG4gICAgICB9O1xuICAgICAgdmFyIHAxID0ge1xuICAgICAgICB4OiBycy5hbGxwdHNbaSArIDJdLFxuICAgICAgICB5OiBycy5hbGxwdHNbaSArIDNdXG4gICAgICB9OyAvLyBjdHJscHRcbiAgICAgIHZhciBwMiA9IHtcbiAgICAgICAgeDogcnMuYWxscHRzW2kgKyA0XSxcbiAgICAgICAgeTogcnMuYWxscHRzW2kgKyA1XVxuICAgICAgfTtcbiAgICAgIGN0cmxwdHMucHVzaCh7XG4gICAgICAgIHAwOiBwMCxcbiAgICAgICAgcDE6IHAxLFxuICAgICAgICBwMjogcDIsXG4gICAgICAgIHN0YXJ0RGlzdDogMCxcbiAgICAgICAgbGVuZ3RoOiAwLFxuICAgICAgICBzZWdtZW50czogW11cbiAgICAgIH0pO1xuICAgIH1cbiAgICB2YXIgYnB0cyA9IF9wLnJzdHlsZS5iZXppZXJQdHM7XG4gICAgdmFyIG5Qcm9qcyA9IHIuYmV6aWVyUHJvalBjdHMubGVuZ3RoO1xuICAgIGZ1bmN0aW9uIGFkZFNlZ21lbnQoY3AsIHAwLCBwMSwgdDAsIHQxKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gZGlzdChwMCwgcDEpO1xuICAgICAgdmFyIHByZXZTZWdtZW50ID0gY3Auc2VnbWVudHNbY3Auc2VnbWVudHMubGVuZ3RoIC0gMV07XG4gICAgICB2YXIgc2VnbWVudCA9IHtcbiAgICAgICAgcDA6IHAwLFxuICAgICAgICBwMTogcDEsXG4gICAgICAgIHQwOiB0MCxcbiAgICAgICAgdDE6IHQxLFxuICAgICAgICBzdGFydERpc3Q6IHByZXZTZWdtZW50ID8gcHJldlNlZ21lbnQuc3RhcnREaXN0ICsgcHJldlNlZ21lbnQubGVuZ3RoIDogMCxcbiAgICAgICAgbGVuZ3RoOiBsZW5ndGhcbiAgICAgIH07XG4gICAgICBjcC5zZWdtZW50cy5wdXNoKHNlZ21lbnQpO1xuICAgICAgY3AubGVuZ3RoICs9IGxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgZWFjaCBjdHJscHQgd2l0aCBzZWdtZW50IGluZm9cbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgY3RybHB0cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBjcCA9IGN0cmxwdHNbX2ldO1xuICAgICAgdmFyIHByZXZDcCA9IGN0cmxwdHNbX2kgLSAxXTtcbiAgICAgIGlmIChwcmV2Q3ApIHtcbiAgICAgICAgY3Auc3RhcnREaXN0ID0gcHJldkNwLnN0YXJ0RGlzdCArIHByZXZDcC5sZW5ndGg7XG4gICAgICB9XG4gICAgICBhZGRTZWdtZW50KGNwLCBjcC5wMCwgYnB0c1tfaSAqIG5Qcm9qc10sIDAsIHIuYmV6aWVyUHJvalBjdHNbMF0pOyAvLyBmaXJzdFxuXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG5Qcm9qcyAtIDE7IGorKykge1xuICAgICAgICBhZGRTZWdtZW50KGNwLCBicHRzW19pICogblByb2pzICsgal0sIGJwdHNbX2kgKiBuUHJvanMgKyBqICsgMV0sIHIuYmV6aWVyUHJvalBjdHNbal0sIHIuYmV6aWVyUHJvalBjdHNbaiArIDFdKTtcbiAgICAgIH1cbiAgICAgIGFkZFNlZ21lbnQoY3AsIGJwdHNbX2kgKiBuUHJvanMgKyBuUHJvanMgLSAxXSwgY3AucDIsIHIuYmV6aWVyUHJvalBjdHNbblByb2pzIC0gMV0sIDEpOyAvLyBsYXN0XG4gICAgfVxuXG4gICAgcmV0dXJuIGNyZWF0ZUNvbnRyb2xQb2ludEluZm8uY2FjaGUgPSBjdHJscHRzO1xuICB9O1xuICB2YXIgY2FsY3VsYXRlRW5kUHJvamVjdGlvbiA9IGZ1bmN0aW9uIGNhbGN1bGF0ZUVuZFByb2plY3Rpb24ocHJlZml4KSB7XG4gICAgdmFyIGFuZ2xlO1xuICAgIHZhciBpc1NyYyA9IHByZWZpeCA9PT0gJ3NvdXJjZSc7XG4gICAgaWYgKCFjb250ZW50W3ByZWZpeF0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIG9mZnNldCA9IGVkZ2UucHN0eWxlKHByZWZpeCArICctdGV4dC1vZmZzZXQnKS5wZlZhbHVlO1xuICAgIHN3aXRjaCAocnMuZWRnZVR5cGUpIHtcbiAgICAgIGNhc2UgJ3NlbGYnOlxuICAgICAgY2FzZSAnY29tcG91bmQnOlxuICAgICAgY2FzZSAnYmV6aWVyJzpcbiAgICAgIGNhc2UgJ211bHRpYmV6aWVyJzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBjcHMgPSBjcmVhdGVDb250cm9sUG9pbnRJbmZvKCk7XG4gICAgICAgICAgdmFyIHNlbGVjdGVkO1xuICAgICAgICAgIHZhciBzdGFydERpc3QgPSAwO1xuICAgICAgICAgIHZhciB0b3RhbERpc3QgPSAwO1xuXG4gICAgICAgICAgLy8gZmluZCB0aGUgc2VnbWVudCB3ZSdyZSBvblxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgX2NwID0gY3BzW2lzU3JjID8gaSA6IGNwcy5sZW5ndGggLSAxIC0gaV07XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IF9jcC5zZWdtZW50cy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICB2YXIgX3NlZyA9IF9jcC5zZWdtZW50c1tpc1NyYyA/IGogOiBfY3Auc2VnbWVudHMubGVuZ3RoIC0gMSAtIGpdO1xuICAgICAgICAgICAgICB2YXIgbGFzdFNlZyA9IGkgPT09IGNwcy5sZW5ndGggLSAxICYmIGogPT09IF9jcC5zZWdtZW50cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICBzdGFydERpc3QgPSB0b3RhbERpc3Q7XG4gICAgICAgICAgICAgIHRvdGFsRGlzdCArPSBfc2VnLmxlbmd0aDtcbiAgICAgICAgICAgICAgaWYgKHRvdGFsRGlzdCA+PSBvZmZzZXQgfHwgbGFzdFNlZykge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkID0ge1xuICAgICAgICAgICAgICAgICAgY3A6IF9jcCxcbiAgICAgICAgICAgICAgICAgIHNlZ21lbnQ6IF9zZWdcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBjcCA9IHNlbGVjdGVkLmNwO1xuICAgICAgICAgIHZhciBzZWcgPSBzZWxlY3RlZC5zZWdtZW50O1xuICAgICAgICAgIHZhciB0U2VnbWVudCA9IChvZmZzZXQgLSBzdGFydERpc3QpIC8gc2VnLmxlbmd0aDtcbiAgICAgICAgICB2YXIgc2VnRHQgPSBzZWcudDEgLSBzZWcudDA7XG4gICAgICAgICAgdmFyIHQgPSBpc1NyYyA/IHNlZy50MCArIHNlZ0R0ICogdFNlZ21lbnQgOiBzZWcudDEgLSBzZWdEdCAqIHRTZWdtZW50O1xuICAgICAgICAgIHQgPSBib3VuZCgwLCB0LCAxKTtcbiAgICAgICAgICBwID0gcWJlemllclB0QXQoY3AucDAsIGNwLnAxLCBjcC5wMiwgdCk7XG4gICAgICAgICAgYW5nbGUgPSBiZXppZXJBbmdsZShjcC5wMCwgY3AucDEsIGNwLnAyLCB0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgY2FzZSAnc3RyYWlnaHQnOlxuICAgICAgY2FzZSAnc2VnbWVudHMnOlxuICAgICAgY2FzZSAnaGF5c3RhY2snOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGQgPSAwLFxuICAgICAgICAgICAgZGksXG4gICAgICAgICAgICBkMDtcbiAgICAgICAgICB2YXIgcDAsIHAxO1xuICAgICAgICAgIHZhciBsID0gcnMuYWxscHRzLmxlbmd0aDtcbiAgICAgICAgICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgKyAzIDwgbDsgX2kyICs9IDIpIHtcbiAgICAgICAgICAgIGlmIChpc1NyYykge1xuICAgICAgICAgICAgICBwMCA9IHtcbiAgICAgICAgICAgICAgICB4OiBycy5hbGxwdHNbX2kyXSxcbiAgICAgICAgICAgICAgICB5OiBycy5hbGxwdHNbX2kyICsgMV1cbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgcDEgPSB7XG4gICAgICAgICAgICAgICAgeDogcnMuYWxscHRzW19pMiArIDJdLFxuICAgICAgICAgICAgICAgIHk6IHJzLmFsbHB0c1tfaTIgKyAzXVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcDAgPSB7XG4gICAgICAgICAgICAgICAgeDogcnMuYWxscHRzW2wgLSAyIC0gX2kyXSxcbiAgICAgICAgICAgICAgICB5OiBycy5hbGxwdHNbbCAtIDEgLSBfaTJdXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHAxID0ge1xuICAgICAgICAgICAgICAgIHg6IHJzLmFsbHB0c1tsIC0gNCAtIF9pMl0sXG4gICAgICAgICAgICAgICAgeTogcnMuYWxscHRzW2wgLSAzIC0gX2kyXVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGkgPSBkaXN0KHAwLCBwMSk7XG4gICAgICAgICAgICBkMCA9IGQ7XG4gICAgICAgICAgICBkICs9IGRpO1xuICAgICAgICAgICAgaWYgKGQgPj0gb2Zmc2V0KSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgcEQgPSBvZmZzZXQgLSBkMDtcbiAgICAgICAgICB2YXIgX3QgPSBwRCAvIGRpO1xuICAgICAgICAgIF90ID0gYm91bmQoMCwgX3QsIDEpO1xuICAgICAgICAgIHAgPSBsaW5lQXQocDAsIHAxLCBfdCk7XG4gICAgICAgICAgYW5nbGUgPSBsaW5lQW5nbGUocDAsIHAxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXRScygnbGFiZWxYJywgcHJlZml4LCBwLngpO1xuICAgIHNldFJzKCdsYWJlbFknLCBwcmVmaXgsIHAueSk7XG4gICAgc2V0UnMoJ2xhYmVsQXV0b0FuZ2xlJywgcHJlZml4LCBhbmdsZSk7XG4gIH07XG4gIGNhbGN1bGF0ZUVuZFByb2plY3Rpb24oJ3NvdXJjZScpO1xuICBjYWxjdWxhdGVFbmRQcm9qZWN0aW9uKCd0YXJnZXQnKTtcbiAgdGhpcy5hcHBseUxhYmVsRGltZW5zaW9ucyhlZGdlKTtcbn07XG5CUnAkOS5hcHBseUxhYmVsRGltZW5zaW9ucyA9IGZ1bmN0aW9uIChlbGUpIHtcbiAgdGhpcy5hcHBseVByZWZpeGVkTGFiZWxEaW1lbnNpb25zKGVsZSk7XG4gIGlmIChlbGUuaXNFZGdlKCkpIHtcbiAgICB0aGlzLmFwcGx5UHJlZml4ZWRMYWJlbERpbWVuc2lvbnMoZWxlLCAnc291cmNlJyk7XG4gICAgdGhpcy5hcHBseVByZWZpeGVkTGFiZWxEaW1lbnNpb25zKGVsZSwgJ3RhcmdldCcpO1xuICB9XG59O1xuQlJwJDkuYXBwbHlQcmVmaXhlZExhYmVsRGltZW5zaW9ucyA9IGZ1bmN0aW9uIChlbGUsIHByZWZpeCkge1xuICB2YXIgX3AgPSBlbGUuX3ByaXZhdGU7XG4gIHZhciB0ZXh0ID0gdGhpcy5nZXRMYWJlbFRleHQoZWxlLCBwcmVmaXgpO1xuICB2YXIgbGFiZWxEaW1zID0gdGhpcy5jYWxjdWxhdGVMYWJlbERpbWVuc2lvbnMoZWxlLCB0ZXh0KTtcbiAgdmFyIGxpbmVIZWlnaHQgPSBlbGUucHN0eWxlKCdsaW5lLWhlaWdodCcpLnBmVmFsdWU7XG4gIHZhciB0ZXh0V3JhcCA9IGVsZS5wc3R5bGUoJ3RleHQtd3JhcCcpLnN0clZhbHVlO1xuICB2YXIgbGluZXMgPSBnZXRQcmVmaXhlZFByb3BlcnR5KF9wLnJzY3JhdGNoLCAnbGFiZWxXcmFwQ2FjaGVkTGluZXMnLCBwcmVmaXgpIHx8IFtdO1xuICB2YXIgbnVtTGluZXMgPSB0ZXh0V3JhcCAhPT0gJ3dyYXAnID8gMSA6IE1hdGgubWF4KGxpbmVzLmxlbmd0aCwgMSk7XG4gIHZhciBub3JtUGVyTGluZUhlaWdodCA9IGxhYmVsRGltcy5oZWlnaHQgLyBudW1MaW5lcztcbiAgdmFyIGxhYmVsTGluZUhlaWdodCA9IG5vcm1QZXJMaW5lSGVpZ2h0ICogbGluZUhlaWdodDtcbiAgdmFyIHdpZHRoID0gbGFiZWxEaW1zLndpZHRoO1xuICB2YXIgaGVpZ2h0ID0gbGFiZWxEaW1zLmhlaWdodCArIChudW1MaW5lcyAtIDEpICogKGxpbmVIZWlnaHQgLSAxKSAqIG5vcm1QZXJMaW5lSGVpZ2h0O1xuICBzZXRQcmVmaXhlZFByb3BlcnR5KF9wLnJzdHlsZSwgJ2xhYmVsV2lkdGgnLCBwcmVmaXgsIHdpZHRoKTtcbiAgc2V0UHJlZml4ZWRQcm9wZXJ0eShfcC5yc2NyYXRjaCwgJ2xhYmVsV2lkdGgnLCBwcmVmaXgsIHdpZHRoKTtcbiAgc2V0UHJlZml4ZWRQcm9wZXJ0eShfcC5yc3R5bGUsICdsYWJlbEhlaWdodCcsIHByZWZpeCwgaGVpZ2h0KTtcbiAgc2V0UHJlZml4ZWRQcm9wZXJ0eShfcC5yc2NyYXRjaCwgJ2xhYmVsSGVpZ2h0JywgcHJlZml4LCBoZWlnaHQpO1xuICBzZXRQcmVmaXhlZFByb3BlcnR5KF9wLnJzY3JhdGNoLCAnbGFiZWxMaW5lSGVpZ2h0JywgcHJlZml4LCBsYWJlbExpbmVIZWlnaHQpO1xufTtcbkJScCQ5LmdldExhYmVsVGV4dCA9IGZ1bmN0aW9uIChlbGUsIHByZWZpeCkge1xuICB2YXIgX3AgPSBlbGUuX3ByaXZhdGU7XG4gIHZhciBwZmQgPSBwcmVmaXggPyBwcmVmaXggKyAnLScgOiAnJztcbiAgdmFyIHRleHQgPSBlbGUucHN0eWxlKHBmZCArICdsYWJlbCcpLnN0clZhbHVlO1xuICB2YXIgdGV4dFRyYW5zZm9ybSA9IGVsZS5wc3R5bGUoJ3RleHQtdHJhbnNmb3JtJykudmFsdWU7XG4gIHZhciByc2NyYXRjaCA9IGZ1bmN0aW9uIHJzY3JhdGNoKHByb3BOYW1lLCB2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgc2V0UHJlZml4ZWRQcm9wZXJ0eShfcC5yc2NyYXRjaCwgcHJvcE5hbWUsIHByZWZpeCwgdmFsdWUpO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZ2V0UHJlZml4ZWRQcm9wZXJ0eShfcC5yc2NyYXRjaCwgcHJvcE5hbWUsIHByZWZpeCk7XG4gICAgfVxuICB9O1xuXG4gIC8vIGZvciBlbXB0eSB0ZXh0LCBza2lwIGFsbCBwcm9jZXNzaW5nXG4gIGlmICghdGV4dCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBpZiAodGV4dFRyYW5zZm9ybSA9PSAnbm9uZScpIDsgZWxzZSBpZiAodGV4dFRyYW5zZm9ybSA9PSAndXBwZXJjYXNlJykge1xuICAgIHRleHQgPSB0ZXh0LnRvVXBwZXJDYXNlKCk7XG4gIH0gZWxzZSBpZiAodGV4dFRyYW5zZm9ybSA9PSAnbG93ZXJjYXNlJykge1xuICAgIHRleHQgPSB0ZXh0LnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgdmFyIHdyYXBTdHlsZSA9IGVsZS5wc3R5bGUoJ3RleHQtd3JhcCcpLnZhbHVlO1xuICBpZiAod3JhcFN0eWxlID09PSAnd3JhcCcpIHtcbiAgICB2YXIgbGFiZWxLZXkgPSByc2NyYXRjaCgnbGFiZWxLZXknKTtcblxuICAgIC8vIHNhdmUgcmVjYWxjIGlmIHRoZSBsYWJlbCBpcyB0aGUgc2FtZSBhcyBiZWZvcmVcbiAgICBpZiAobGFiZWxLZXkgIT0gbnVsbCAmJiByc2NyYXRjaCgnbGFiZWxXcmFwS2V5JykgPT09IGxhYmVsS2V5KSB7XG4gICAgICByZXR1cm4gcnNjcmF0Y2goJ2xhYmVsV3JhcENhY2hlZFRleHQnKTtcbiAgICB9XG4gICAgdmFyIHp3c3AgPSBcIlxcdTIwMEJcIjtcbiAgICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCdcXG4nKTtcbiAgICB2YXIgbWF4VyA9IGVsZS5wc3R5bGUoJ3RleHQtbWF4LXdpZHRoJykucGZWYWx1ZTtcbiAgICB2YXIgb3ZlcmZsb3cgPSBlbGUucHN0eWxlKCd0ZXh0LW92ZXJmbG93LXdyYXAnKS52YWx1ZTtcbiAgICB2YXIgb3ZlcmZsb3dBbnkgPSBvdmVyZmxvdyA9PT0gJ2FueXdoZXJlJztcbiAgICB2YXIgd3JhcHBlZExpbmVzID0gW107XG4gICAgdmFyIHNlcGFyYXRvclJlZ2V4ID0gL1tcXHNcXHUyMDBiXSt8JC9nOyAvLyBJbmNsdWRlIGVuZCBvZiBzdHJpbmcgdG8gYWRkIGxhc3Qgd29yZFxuXG4gICAgZm9yICh2YXIgbCA9IDA7IGwgPCBsaW5lcy5sZW5ndGg7IGwrKykge1xuICAgICAgdmFyIGxpbmUgPSBsaW5lc1tsXTtcbiAgICAgIHZhciBsaW5lRGltcyA9IHRoaXMuY2FsY3VsYXRlTGFiZWxEaW1lbnNpb25zKGVsZSwgbGluZSk7XG4gICAgICB2YXIgbGluZVcgPSBsaW5lRGltcy53aWR0aDtcbiAgICAgIGlmIChvdmVyZmxvd0FueSkge1xuICAgICAgICB2YXIgcHJvY2Vzc2VkTGluZSA9IGxpbmUuc3BsaXQoJycpLmpvaW4oendzcCk7XG4gICAgICAgIGxpbmUgPSBwcm9jZXNzZWRMaW5lO1xuICAgICAgfVxuICAgICAgaWYgKGxpbmVXID4gbWF4Vykge1xuICAgICAgICAvLyBsaW5lIGlzIHRvbyBsb25nXG4gICAgICAgIHZhciBzZXBhcmF0b3JNYXRjaGVzID0gbGluZS5tYXRjaEFsbChzZXBhcmF0b3JSZWdleCk7XG4gICAgICAgIHZhciBzdWJsaW5lID0gJyc7XG4gICAgICAgIHZhciBwcmV2aW91c0luZGV4ID0gMDtcbiAgICAgICAgLy8gQWRkIGZha2UgbWF0Y2hcbiAgICAgICAgdmFyIF9pdGVyYXRvciA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKHNlcGFyYXRvck1hdGNoZXMpLFxuICAgICAgICAgIF9zdGVwO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGZvciAoX2l0ZXJhdG9yLnMoKTsgIShfc3RlcCA9IF9pdGVyYXRvci5uKCkpLmRvbmU7KSB7XG4gICAgICAgICAgICB2YXIgc2VwYXJhdG9yTWF0Y2ggPSBfc3RlcC52YWx1ZTtcbiAgICAgICAgICAgIHZhciB3b3JkU2VwYXJhdG9yID0gc2VwYXJhdG9yTWF0Y2hbMF07XG4gICAgICAgICAgICB2YXIgd29yZCA9IGxpbmUuc3Vic3RyaW5nKHByZXZpb3VzSW5kZXgsIHNlcGFyYXRvck1hdGNoLmluZGV4KTtcbiAgICAgICAgICAgIHByZXZpb3VzSW5kZXggPSBzZXBhcmF0b3JNYXRjaC5pbmRleCArIHdvcmRTZXBhcmF0b3IubGVuZ3RoO1xuICAgICAgICAgICAgdmFyIHRlc3RMaW5lID0gc3VibGluZS5sZW5ndGggPT09IDAgPyB3b3JkIDogc3VibGluZSArIHdvcmQgKyB3b3JkU2VwYXJhdG9yO1xuICAgICAgICAgICAgdmFyIHRlc3REaW1zID0gdGhpcy5jYWxjdWxhdGVMYWJlbERpbWVuc2lvbnMoZWxlLCB0ZXN0TGluZSk7XG4gICAgICAgICAgICB2YXIgdGVzdFcgPSB0ZXN0RGltcy53aWR0aDtcbiAgICAgICAgICAgIGlmICh0ZXN0VyA8PSBtYXhXKSB7XG4gICAgICAgICAgICAgIC8vIHdvcmQgZml0cyBvbiBjdXJyZW50IGxpbmVcbiAgICAgICAgICAgICAgc3VibGluZSArPSB3b3JkICsgd29yZFNlcGFyYXRvcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIHdvcmQgc3RhcnRzIG5ldyBsaW5lXG4gICAgICAgICAgICAgIGlmIChzdWJsaW5lKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlZExpbmVzLnB1c2goc3VibGluZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc3VibGluZSA9IHdvcmQgKyB3b3JkU2VwYXJhdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGlmIHRoZXJlJ3MgcmVtYWluaW5nIHRleHQsIHB1dCBpdCBpbiBhIHdyYXBwZWQgbGluZVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBfaXRlcmF0b3IuZShlcnIpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIF9pdGVyYXRvci5mKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzdWJsaW5lLm1hdGNoKC9eW1xcc1xcdTIwMGJdKyQvKSkge1xuICAgICAgICAgIHdyYXBwZWRMaW5lcy5wdXNoKHN1YmxpbmUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBsaW5lIGlzIGFscmVhZHkgc2hvcnQgZW5vdWdoXG4gICAgICAgIHdyYXBwZWRMaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgfVxuICAgIH0gLy8gZm9yXG5cbiAgICByc2NyYXRjaCgnbGFiZWxXcmFwQ2FjaGVkTGluZXMnLCB3cmFwcGVkTGluZXMpO1xuICAgIHRleHQgPSByc2NyYXRjaCgnbGFiZWxXcmFwQ2FjaGVkVGV4dCcsIHdyYXBwZWRMaW5lcy5qb2luKCdcXG4nKSk7XG4gICAgcnNjcmF0Y2goJ2xhYmVsV3JhcEtleScsIGxhYmVsS2V5KTtcbiAgfSBlbHNlIGlmICh3cmFwU3R5bGUgPT09ICdlbGxpcHNpcycpIHtcbiAgICB2YXIgX21heFcgPSBlbGUucHN0eWxlKCd0ZXh0LW1heC13aWR0aCcpLnBmVmFsdWU7XG4gICAgdmFyIGVsbGlwc2l6ZWQgPSAnJztcbiAgICB2YXIgZWxsaXBzaXMgPSBcIlxcdTIwMjZcIjtcbiAgICB2YXIgaW5jTGFzdENoID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuY2FsY3VsYXRlTGFiZWxEaW1lbnNpb25zKGVsZSwgdGV4dCkud2lkdGggPCBfbWF4Vykge1xuICAgICAgLy8gdGhlIGxhYmVsIGFscmVhZHkgZml0c1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHdpZHRoV2l0aE5leHRDaCA9IHRoaXMuY2FsY3VsYXRlTGFiZWxEaW1lbnNpb25zKGVsZSwgZWxsaXBzaXplZCArIHRleHRbaV0gKyBlbGxpcHNpcykud2lkdGg7XG4gICAgICBpZiAod2lkdGhXaXRoTmV4dENoID4gX21heFcpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBlbGxpcHNpemVkICs9IHRleHRbaV07XG4gICAgICBpZiAoaSA9PT0gdGV4dC5sZW5ndGggLSAxKSB7XG4gICAgICAgIGluY0xhc3RDaCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghaW5jTGFzdENoKSB7XG4gICAgICBlbGxpcHNpemVkICs9IGVsbGlwc2lzO1xuICAgIH1cbiAgICByZXR1cm4gZWxsaXBzaXplZDtcbiAgfSAvLyBpZiBlbGxpcHNpemVcblxuICByZXR1cm4gdGV4dDtcbn07XG5CUnAkOS5nZXRMYWJlbEp1c3RpZmljYXRpb24gPSBmdW5jdGlvbiAoZWxlKSB7XG4gIHZhciBqdXN0aWZpY2F0aW9uID0gZWxlLnBzdHlsZSgndGV4dC1qdXN0aWZpY2F0aW9uJykuc3RyVmFsdWU7XG4gIHZhciB0ZXh0SGFsaWduID0gZWxlLnBzdHlsZSgndGV4dC1oYWxpZ24nKS5zdHJWYWx1ZTtcbiAgaWYgKGp1c3RpZmljYXRpb24gPT09ICdhdXRvJykge1xuICAgIGlmIChlbGUuaXNOb2RlKCkpIHtcbiAgICAgIHN3aXRjaCAodGV4dEhhbGlnbikge1xuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICByZXR1cm4gJ3JpZ2h0JztcbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIHJldHVybiAnbGVmdCc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICdjZW50ZXInO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2NlbnRlcic7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBqdXN0aWZpY2F0aW9uO1xuICB9XG59O1xuQlJwJDkuY2FsY3VsYXRlTGFiZWxEaW1lbnNpb25zID0gZnVuY3Rpb24gKGVsZSwgdGV4dCkge1xuICB2YXIgciA9IHRoaXM7XG4gIHZhciBjb250YWluZXJXaW5kb3cgPSByLmN5LndpbmRvdygpO1xuICB2YXIgZG9jdW1lbnQgPSBjb250YWluZXJXaW5kb3cuZG9jdW1lbnQ7XG4gIHZhciBjYWNoZUtleSA9IGhhc2hTdHJpbmcodGV4dCwgZWxlLl9wcml2YXRlLmxhYmVsRGltc0tleSk7XG4gIHZhciBjYWNoZSA9IHIubGFiZWxEaW1DYWNoZSB8fCAoci5sYWJlbERpbUNhY2hlID0gW10pO1xuICB2YXIgZXhpc3RpbmdWYWwgPSBjYWNoZVtjYWNoZUtleV07XG4gIGlmIChleGlzdGluZ1ZhbCAhPSBudWxsKSB7XG4gICAgcmV0dXJuIGV4aXN0aW5nVmFsO1xuICB9XG4gIHZhciBwYWRkaW5nID0gMDsgLy8gYWRkIHBhZGRpbmcgYXJvdW5kIHRleHQgZGltcywgYXMgdGhlIG1lYXN1cmVtZW50IGlzbid0IHRoYXQgYWNjdXJhdGVcbiAgdmFyIGZTdHlsZSA9IGVsZS5wc3R5bGUoJ2ZvbnQtc3R5bGUnKS5zdHJWYWx1ZTtcbiAgdmFyIHNpemUgPSBlbGUucHN0eWxlKCdmb250LXNpemUnKS5wZlZhbHVlO1xuICB2YXIgZmFtaWx5ID0gZWxlLnBzdHlsZSgnZm9udC1mYW1pbHknKS5zdHJWYWx1ZTtcbiAgdmFyIHdlaWdodCA9IGVsZS5wc3R5bGUoJ2ZvbnQtd2VpZ2h0Jykuc3RyVmFsdWU7XG4gIHZhciBjYW52YXMgPSB0aGlzLmxhYmVsQ2FsY0NhbnZhcztcbiAgdmFyIGMyZCA9IHRoaXMubGFiZWxDYWxjQ2FudmFzQ29udGV4dDtcbiAgaWYgKCFjYW52YXMpIHtcbiAgICBjYW52YXMgPSB0aGlzLmxhYmVsQ2FsY0NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGMyZCA9IHRoaXMubGFiZWxDYWxjQ2FudmFzQ29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIHZhciBkcyA9IGNhbnZhcy5zdHlsZTtcbiAgICBkcy5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgZHMubGVmdCA9ICctOTk5OXB4JztcbiAgICBkcy50b3AgPSAnLTk5OTlweCc7XG4gICAgZHMuekluZGV4ID0gJy0xJztcbiAgICBkcy52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgZHMucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgfVxuICBjMmQuZm9udCA9IFwiXCIuY29uY2F0KGZTdHlsZSwgXCIgXCIpLmNvbmNhdCh3ZWlnaHQsIFwiIFwiKS5jb25jYXQoc2l6ZSwgXCJweCBcIikuY29uY2F0KGZhbWlseSk7XG4gIHZhciB3aWR0aCA9IDA7XG4gIHZhciBoZWlnaHQgPSAwO1xuICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCdcXG4nKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lID0gbGluZXNbaV07XG4gICAgdmFyIG1ldHJpY3MgPSBjMmQubWVhc3VyZVRleHQobGluZSk7XG4gICAgdmFyIHcgPSBNYXRoLmNlaWwobWV0cmljcy53aWR0aCk7XG4gICAgdmFyIGggPSBzaXplO1xuICAgIHdpZHRoID0gTWF0aC5tYXgodywgd2lkdGgpO1xuICAgIGhlaWdodCArPSBoO1xuICB9XG4gIHdpZHRoICs9IHBhZGRpbmc7XG4gIGhlaWdodCArPSBwYWRkaW5nO1xuICByZXR1cm4gY2FjaGVbY2FjaGVLZXldID0ge1xuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodFxuICB9O1xufTtcbkJScCQ5LmNhbGN1bGF0ZUxhYmVsQW5nbGUgPSBmdW5jdGlvbiAoZWxlLCBwcmVmaXgpIHtcbiAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICB2YXIgcnMgPSBfcC5yc2NyYXRjaDtcbiAgdmFyIGlzRWRnZSA9IGVsZS5pc0VkZ2UoKTtcbiAgdmFyIHByZWZpeERhc2ggPSBwcmVmaXggPyBwcmVmaXggKyAnLScgOiAnJztcbiAgdmFyIHJvdCA9IGVsZS5wc3R5bGUocHJlZml4RGFzaCArICd0ZXh0LXJvdGF0aW9uJyk7XG4gIHZhciByb3RTdHIgPSByb3Quc3RyVmFsdWU7XG4gIGlmIChyb3RTdHIgPT09ICdub25lJykge1xuICAgIHJldHVybiAwO1xuICB9IGVsc2UgaWYgKGlzRWRnZSAmJiByb3RTdHIgPT09ICdhdXRvcm90YXRlJykge1xuICAgIHJldHVybiBycy5sYWJlbEF1dG9BbmdsZTtcbiAgfSBlbHNlIGlmIChyb3RTdHIgPT09ICdhdXRvcm90YXRlJykge1xuICAgIHJldHVybiAwO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiByb3QucGZWYWx1ZTtcbiAgfVxufTtcbkJScCQ5LmNhbGN1bGF0ZUxhYmVsQW5nbGVzID0gZnVuY3Rpb24gKGVsZSkge1xuICB2YXIgciA9IHRoaXM7XG4gIHZhciBpc0VkZ2UgPSBlbGUuaXNFZGdlKCk7XG4gIHZhciBfcCA9IGVsZS5fcHJpdmF0ZTtcbiAgdmFyIHJzID0gX3AucnNjcmF0Y2g7XG4gIHJzLmxhYmVsQW5nbGUgPSByLmNhbGN1bGF0ZUxhYmVsQW5nbGUoZWxlKTtcbiAgaWYgKGlzRWRnZSkge1xuICAgIHJzLnNvdXJjZUxhYmVsQW5nbGUgPSByLmNhbGN1bGF0ZUxhYmVsQW5nbGUoZWxlLCAnc291cmNlJyk7XG4gICAgcnMudGFyZ2V0TGFiZWxBbmdsZSA9IHIuY2FsY3VsYXRlTGFiZWxBbmdsZShlbGUsICd0YXJnZXQnKTtcbiAgfVxufTtcblxudmFyIEJScCQ4ID0ge307XG52YXIgVE9PX1NNQUxMX0NVVF9SRUNUID0gMjg7XG52YXIgd2FybmVkQ3V0UmVjdCA9IGZhbHNlO1xuQlJwJDguZ2V0Tm9kZVNoYXBlID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgdmFyIHIgPSB0aGlzO1xuICB2YXIgc2hhcGUgPSBub2RlLnBzdHlsZSgnc2hhcGUnKS52YWx1ZTtcbiAgaWYgKHNoYXBlID09PSAnY3V0cmVjdGFuZ2xlJyAmJiAobm9kZS53aWR0aCgpIDwgVE9PX1NNQUxMX0NVVF9SRUNUIHx8IG5vZGUuaGVpZ2h0KCkgPCBUT09fU01BTExfQ1VUX1JFQ1QpKSB7XG4gICAgaWYgKCF3YXJuZWRDdXRSZWN0KSB7XG4gICAgICB3YXJuKCdUaGUgYGN1dHJlY3RhbmdsZWAgbm9kZSBzaGFwZSBjYW4gbm90IGJlIHVzZWQgYXQgc21hbGwgc2l6ZXMgc28gYHJlY3RhbmdsZWAgaXMgdXNlZCBpbnN0ZWFkJyk7XG4gICAgICB3YXJuZWRDdXRSZWN0ID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuICdyZWN0YW5nbGUnO1xuICB9XG4gIGlmIChub2RlLmlzUGFyZW50KCkpIHtcbiAgICBpZiAoc2hhcGUgPT09ICdyZWN0YW5nbGUnIHx8IHNoYXBlID09PSAncm91bmRyZWN0YW5nbGUnIHx8IHNoYXBlID09PSAncm91bmQtcmVjdGFuZ2xlJyB8fCBzaGFwZSA9PT0gJ2N1dHJlY3RhbmdsZScgfHwgc2hhcGUgPT09ICdjdXQtcmVjdGFuZ2xlJyB8fCBzaGFwZSA9PT0gJ2JhcnJlbCcpIHtcbiAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdyZWN0YW5nbGUnO1xuICAgIH1cbiAgfVxuICBpZiAoc2hhcGUgPT09ICdwb2x5Z29uJykge1xuICAgIHZhciBwb2ludHMgPSBub2RlLnBzdHlsZSgnc2hhcGUtcG9seWdvbi1wb2ludHMnKS52YWx1ZTtcbiAgICByZXR1cm4gci5ub2RlU2hhcGVzLm1ha2VQb2x5Z29uKHBvaW50cykubmFtZTtcbiAgfVxuICByZXR1cm4gc2hhcGU7XG59O1xuXG52YXIgQlJwJDcgPSB7fTtcbkJScCQ3LnJlZ2lzdGVyQ2FsY3VsYXRpb25MaXN0ZW5lcnMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBjeSA9IHRoaXMuY3k7XG4gIHZhciBlbGVzVG9VcGRhdGUgPSBjeS5jb2xsZWN0aW9uKCk7XG4gIHZhciByID0gdGhpcztcbiAgdmFyIGVucXVldWUgPSBmdW5jdGlvbiBlbnF1ZXVlKGVsZXMpIHtcbiAgICB2YXIgZGlydHlTdHlsZUNhY2hlcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogdHJ1ZTtcbiAgICBlbGVzVG9VcGRhdGUubWVyZ2UoZWxlcyk7XG4gICAgaWYgKGRpcnR5U3R5bGVDYWNoZXMpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZWxlID0gZWxlc1tpXTtcbiAgICAgICAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICAgICAgICB2YXIgcnN0eWxlID0gX3AucnN0eWxlO1xuICAgICAgICByc3R5bGUuY2xlYW4gPSBmYWxzZTtcbiAgICAgICAgcnN0eWxlLmNsZWFuQ29ubmVjdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICByLmJpbmRlcihjeSkub24oJ2JvdW5kcy4qIGRpcnR5LionLCBmdW5jdGlvbiBvbkRpcnR5Qm91bmRzKGUpIHtcbiAgICB2YXIgZWxlID0gZS50YXJnZXQ7XG4gICAgZW5xdWV1ZShlbGUpO1xuICB9KS5vbignc3R5bGUuKiBiYWNrZ3JvdW5kLionLCBmdW5jdGlvbiBvbkRpcnR5U3R5bGUoZSkge1xuICAgIHZhciBlbGUgPSBlLnRhcmdldDtcbiAgICBlbnF1ZXVlKGVsZSwgZmFsc2UpO1xuICB9KTtcbiAgdmFyIHVwZGF0ZUVsZUNhbGNzID0gZnVuY3Rpb24gdXBkYXRlRWxlQ2FsY3Mod2lsbERyYXcpIHtcbiAgICBpZiAod2lsbERyYXcpIHtcbiAgICAgIHZhciBmbnMgPSByLm9uVXBkYXRlRWxlQ2FsY3NGbnM7XG5cbiAgICAgIC8vIGJlY2F1c2Ugd2UgbmVlZCB0byBoYXZlIHVwLXRvLWRhdGUgc3R5bGUgKGUuZy4gc3R5bGVzaGVldCBtYXBwZXJzKVxuICAgICAgLy8gYmVmb3JlIGNhbGN1bGF0aW5nIHJlbmRlcmVkIHN0eWxlIChhbmQgcHN0eWxlIG1pZ2h0IG5vdCBiZSBjYWxsZWQgeWV0KVxuICAgICAgZWxlc1RvVXBkYXRlLmNsZWFuU3R5bGUoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlc1RvVXBkYXRlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlbGUgPSBlbGVzVG9VcGRhdGVbaV07XG4gICAgICAgIHZhciByc3R5bGUgPSBlbGUuX3ByaXZhdGUucnN0eWxlO1xuICAgICAgICBpZiAoZWxlLmlzTm9kZSgpICYmICFyc3R5bGUuY2xlYW5Db25uZWN0ZWQpIHtcbiAgICAgICAgICBlbnF1ZXVlKGVsZS5jb25uZWN0ZWRFZGdlcygpKTtcbiAgICAgICAgICByc3R5bGUuY2xlYW5Db25uZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZm5zKSB7XG4gICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBmbnMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgdmFyIGZuID0gZm5zW19pXTtcbiAgICAgICAgICBmbih3aWxsRHJhdywgZWxlc1RvVXBkYXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgci5yZWNhbGN1bGF0ZVJlbmRlcmVkU3R5bGUoZWxlc1RvVXBkYXRlKTtcbiAgICAgIGVsZXNUb1VwZGF0ZSA9IGN5LmNvbGxlY3Rpb24oKTtcbiAgICB9XG4gIH07XG4gIHIuZmx1c2hSZW5kZXJlZFN0eWxlUXVldWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdXBkYXRlRWxlQ2FsY3ModHJ1ZSk7XG4gIH07XG4gIHIuYmVmb3JlUmVuZGVyKHVwZGF0ZUVsZUNhbGNzLCByLmJlZm9yZVJlbmRlclByaW9yaXRpZXMuZWxlQ2FsY3MpO1xufTtcbkJScCQ3Lm9uVXBkYXRlRWxlQ2FsY3MgPSBmdW5jdGlvbiAoZm4pIHtcbiAgdmFyIGZucyA9IHRoaXMub25VcGRhdGVFbGVDYWxjc0ZucyA9IHRoaXMub25VcGRhdGVFbGVDYWxjc0ZucyB8fCBbXTtcbiAgZm5zLnB1c2goZm4pO1xufTtcbkJScCQ3LnJlY2FsY3VsYXRlUmVuZGVyZWRTdHlsZSA9IGZ1bmN0aW9uIChlbGVzLCB1c2VDYWNoZSkge1xuICB2YXIgaXNDbGVhbkNvbm5lY3RlZCA9IGZ1bmN0aW9uIGlzQ2xlYW5Db25uZWN0ZWQoZWxlKSB7XG4gICAgcmV0dXJuIGVsZS5fcHJpdmF0ZS5yc3R5bGUuY2xlYW5Db25uZWN0ZWQ7XG4gIH07XG4gIHZhciBlZGdlcyA9IFtdO1xuICB2YXIgbm9kZXMgPSBbXTtcblxuICAvLyB0aGUgcmVuZGVyZXIgY2FuJ3QgYmUgdXNlZCBmb3IgY2FsY3Mgd2hlbiBkZXN0cm95ZWQsIGUuZy4gZWxlLmJvdW5kaW5nQm94KClcbiAgaWYgKHRoaXMuZGVzdHJveWVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gdXNlIGNhY2hlIGJ5IGRlZmF1bHQgZm9yIHBlcmZcbiAgaWYgKHVzZUNhY2hlID09PSB1bmRlZmluZWQpIHtcbiAgICB1c2VDYWNoZSA9IHRydWU7XG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVsZSA9IGVsZXNbaV07XG4gICAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICAgIHZhciByc3R5bGUgPSBfcC5yc3R5bGU7XG5cbiAgICAvLyBhbiBlZGdlIG1heSBiZSBpbXBsaWNpdGx5IGRpcnR5IGIvYyBvZiBvbmUgb2YgaXRzIGNvbm5lY3RlZCBub2Rlc1xuICAgIC8vIChhbmQgYSByZXF1ZXN0IGZvciByZWNhbGMgbWF5IGNvbWUgaW4gYmV0d2VlbiBmcmFtZXMpXG4gICAgaWYgKGVsZS5pc0VkZ2UoKSAmJiAoIWlzQ2xlYW5Db25uZWN0ZWQoZWxlLnNvdXJjZSgpKSB8fCAhaXNDbGVhbkNvbm5lY3RlZChlbGUudGFyZ2V0KCkpKSkge1xuICAgICAgcnN0eWxlLmNsZWFuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gb25seSB1cGRhdGUgaWYgZGlydHkgYW5kIGluIGdyYXBoXG4gICAgaWYgKHVzZUNhY2hlICYmIHJzdHlsZS5jbGVhbiB8fCBlbGUucmVtb3ZlZCgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBvbmx5IHVwZGF0ZSBpZiBub3QgZGlzcGxheTogbm9uZVxuICAgIGlmIChlbGUucHN0eWxlKCdkaXNwbGF5JykudmFsdWUgPT09ICdub25lJykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChfcC5ncm91cCA9PT0gJ25vZGVzJykge1xuICAgICAgbm9kZXMucHVzaChlbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlZGdlc1xuICAgICAgZWRnZXMucHVzaChlbGUpO1xuICAgIH1cbiAgICByc3R5bGUuY2xlYW4gPSB0cnVlO1xuICB9XG5cbiAgLy8gdXBkYXRlIG5vZGUgZGF0YSBmcm9tIHByb2plY3Rpb25zXG4gIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IG5vZGVzLmxlbmd0aDsgX2kyKyspIHtcbiAgICB2YXIgX2VsZSA9IG5vZGVzW19pMl07XG4gICAgdmFyIF9wMiA9IF9lbGUuX3ByaXZhdGU7XG4gICAgdmFyIF9yc3R5bGUgPSBfcDIucnN0eWxlO1xuICAgIHZhciBwb3MgPSBfZWxlLnBvc2l0aW9uKCk7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZU5vZGVMYWJlbFByb2plY3Rpb24oX2VsZSk7XG4gICAgX3JzdHlsZS5ub2RlWCA9IHBvcy54O1xuICAgIF9yc3R5bGUubm9kZVkgPSBwb3MueTtcbiAgICBfcnN0eWxlLm5vZGVXID0gX2VsZS5wc3R5bGUoJ3dpZHRoJykucGZWYWx1ZTtcbiAgICBfcnN0eWxlLm5vZGVIID0gX2VsZS5wc3R5bGUoJ2hlaWdodCcpLnBmVmFsdWU7XG4gIH1cbiAgdGhpcy5yZWNhbGN1bGF0ZUVkZ2VQcm9qZWN0aW9ucyhlZGdlcyk7XG5cbiAgLy8gdXBkYXRlIGVkZ2UgZGF0YSBmcm9tIHByb2plY3Rpb25zXG4gIGZvciAodmFyIF9pMyA9IDA7IF9pMyA8IGVkZ2VzLmxlbmd0aDsgX2kzKyspIHtcbiAgICB2YXIgX2VsZTIgPSBlZGdlc1tfaTNdO1xuICAgIHZhciBfcDMgPSBfZWxlMi5fcHJpdmF0ZTtcbiAgICB2YXIgX3JzdHlsZTIgPSBfcDMucnN0eWxlO1xuICAgIHZhciBycyA9IF9wMy5yc2NyYXRjaDtcblxuICAgIC8vIHVwZGF0ZSByc3R5bGUgcG9zaXRpb25zXG4gICAgX3JzdHlsZTIuc3JjWCA9IHJzLmFycm93U3RhcnRYO1xuICAgIF9yc3R5bGUyLnNyY1kgPSBycy5hcnJvd1N0YXJ0WTtcbiAgICBfcnN0eWxlMi50Z3RYID0gcnMuYXJyb3dFbmRYO1xuICAgIF9yc3R5bGUyLnRndFkgPSBycy5hcnJvd0VuZFk7XG4gICAgX3JzdHlsZTIubWlkWCA9IHJzLm1pZFg7XG4gICAgX3JzdHlsZTIubWlkWSA9IHJzLm1pZFk7XG4gICAgX3JzdHlsZTIubGFiZWxBbmdsZSA9IHJzLmxhYmVsQW5nbGU7XG4gICAgX3JzdHlsZTIuc291cmNlTGFiZWxBbmdsZSA9IHJzLnNvdXJjZUxhYmVsQW5nbGU7XG4gICAgX3JzdHlsZTIudGFyZ2V0TGFiZWxBbmdsZSA9IHJzLnRhcmdldExhYmVsQW5nbGU7XG4gIH1cbn07XG5cbnZhciBCUnAkNiA9IHt9O1xuQlJwJDYudXBkYXRlQ2FjaGVkR3JhYmJlZEVsZXMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBlbGVzID0gdGhpcy5jYWNoZWRaU29ydGVkRWxlcztcbiAgaWYgKCFlbGVzKSB7XG4gICAgLy8ganVzdCBsZXQgdGhpcyBiZSByZWNhbGN1bGF0ZWQgb24gdGhlIG5leHQgeiBzb3J0IHRpY2tcbiAgICByZXR1cm47XG4gIH1cbiAgZWxlcy5kcmFnID0gW107XG4gIGVsZXMubm9uZHJhZyA9IFtdO1xuICB2YXIgZ3JhYlRhcmdldHMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVsZSA9IGVsZXNbaV07XG4gICAgdmFyIHJzID0gZWxlLl9wcml2YXRlLnJzY3JhdGNoO1xuICAgIGlmIChlbGUuZ3JhYmJlZCgpICYmICFlbGUuaXNQYXJlbnQoKSkge1xuICAgICAgZ3JhYlRhcmdldHMucHVzaChlbGUpO1xuICAgIH0gZWxzZSBpZiAocnMuaW5EcmFnTGF5ZXIpIHtcbiAgICAgIGVsZXMuZHJhZy5wdXNoKGVsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZXMubm9uZHJhZy5wdXNoKGVsZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gcHV0IHRoZSBncmFiIHRhcmdldCBub2RlcyBsYXN0IHNvIGl0J3Mgb24gdG9wIG9mIGl0cyBuZWlnaGJvdXJob29kXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZ3JhYlRhcmdldHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZWxlID0gZ3JhYlRhcmdldHNbaV07XG4gICAgZWxlcy5kcmFnLnB1c2goZWxlKTtcbiAgfVxufTtcbkJScCQ2LmludmFsaWRhdGVDYWNoZWRaU29ydGVkRWxlcyA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5jYWNoZWRaU29ydGVkRWxlcyA9IG51bGw7XG59O1xuQlJwJDYuZ2V0Q2FjaGVkWlNvcnRlZEVsZXMgPSBmdW5jdGlvbiAoZm9yY2VSZWNhbGMpIHtcbiAgaWYgKGZvcmNlUmVjYWxjIHx8ICF0aGlzLmNhY2hlZFpTb3J0ZWRFbGVzKSB7XG4gICAgdmFyIGVsZXMgPSB0aGlzLmN5Lm11dGFibGVFbGVtZW50cygpLnRvQXJyYXkoKTtcbiAgICBlbGVzLnNvcnQoekluZGV4U29ydCk7XG4gICAgZWxlcy5pbnRlcmFjdGl2ZSA9IGVsZXMuZmlsdGVyKGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgIHJldHVybiBlbGUuaW50ZXJhY3RpdmUoKTtcbiAgICB9KTtcbiAgICB0aGlzLmNhY2hlZFpTb3J0ZWRFbGVzID0gZWxlcztcbiAgICB0aGlzLnVwZGF0ZUNhY2hlZEdyYWJiZWRFbGVzKCk7XG4gIH0gZWxzZSB7XG4gICAgZWxlcyA9IHRoaXMuY2FjaGVkWlNvcnRlZEVsZXM7XG4gIH1cbiAgcmV0dXJuIGVsZXM7XG59O1xuXG52YXIgQlJwJDUgPSB7fTtcbltCUnAkZSwgQlJwJGQsIEJScCRjLCBCUnAkYiwgQlJwJGEsIEJScCQ5LCBCUnAkOCwgQlJwJDcsIEJScCQ2XS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wcykge1xuICBleHRlbmQoQlJwJDUsIHByb3BzKTtcbn0pO1xuXG52YXIgQlJwJDQgPSB7fTtcbkJScCQ0LmdldENhY2hlZEltYWdlID0gZnVuY3Rpb24gKHVybCwgY3Jvc3NPcmlnaW4sIG9uTG9hZCkge1xuICB2YXIgciA9IHRoaXM7XG4gIHZhciBpbWFnZUNhY2hlID0gci5pbWFnZUNhY2hlID0gci5pbWFnZUNhY2hlIHx8IHt9O1xuICB2YXIgY2FjaGUgPSBpbWFnZUNhY2hlW3VybF07XG4gIGlmIChjYWNoZSkge1xuICAgIGlmICghY2FjaGUuaW1hZ2UuY29tcGxldGUpIHtcbiAgICAgIGNhY2hlLmltYWdlLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkxvYWQpO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGUuaW1hZ2U7XG4gIH0gZWxzZSB7XG4gICAgY2FjaGUgPSBpbWFnZUNhY2hlW3VybF0gPSBpbWFnZUNhY2hlW3VybF0gfHwge307XG4gICAgdmFyIGltYWdlID0gY2FjaGUuaW1hZ2UgPSBuZXcgSW1hZ2UoKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXG4gICAgaW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIG9uTG9hZCk7XG4gICAgaW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpbWFnZS5lcnJvciA9IHRydWU7XG4gICAgfSk7XG5cbiAgICAvLyAjMTU4MiBzYWZhcmkgZG9lc24ndCBsb2FkIGRhdGEgdXJpcyB3aXRoIGNyb3NzT3JpZ2luIHByb3Blcmx5XG4gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzk3OFxuICAgIHZhciBkYXRhVXJpUHJlZml4ID0gJ2RhdGE6JztcbiAgICB2YXIgaXNEYXRhVXJpID0gdXJsLnN1YnN0cmluZygwLCBkYXRhVXJpUHJlZml4Lmxlbmd0aCkudG9Mb3dlckNhc2UoKSA9PT0gZGF0YVVyaVByZWZpeDtcbiAgICBpZiAoIWlzRGF0YVVyaSkge1xuICAgICAgLy8gaWYgY3Jvc3NvcmlnaW4gaXMgJ251bGwnKHN0cmluZ2lmaWVkKSwgdGhlbiBtYW51YWxseSBzZXQgaXQgdG8gbnVsbCBcbiAgICAgIGNyb3NzT3JpZ2luID0gY3Jvc3NPcmlnaW4gPT09ICdudWxsJyA/IG51bGwgOiBjcm9zc09yaWdpbjtcbiAgICAgIGltYWdlLmNyb3NzT3JpZ2luID0gY3Jvc3NPcmlnaW47IC8vIHByZXZlbnQgdGFpbnRlZCBjYW52YXNcbiAgICB9XG5cbiAgICBpbWFnZS5zcmMgPSB1cmw7XG4gICAgcmV0dXJuIGltYWdlO1xuICB9XG59O1xuXG52YXIgQlJwJDMgPSB7fTtcblxuLyogZ2xvYmFsIGRvY3VtZW50LCBSZXNpemVPYnNlcnZlciwgTXV0YXRpb25PYnNlcnZlciAqL1xuXG5CUnAkMy5yZWdpc3RlckJpbmRpbmcgPSBmdW5jdGlvbiAodGFyZ2V0LCBldmVudCwgaGFuZGxlciwgdXNlQ2FwdHVyZSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KGFyZ3VtZW50cywgWzFdKTsgLy8gY29weVxuICB2YXIgYiA9IHRoaXMuYmluZGVyKHRhcmdldCk7XG4gIHJldHVybiBiLm9uLmFwcGx5KGIsIGFyZ3MpO1xufTtcbkJScCQzLmJpbmRlciA9IGZ1bmN0aW9uICh0Z3QpIHtcbiAgdmFyIHIgPSB0aGlzO1xuICB2YXIgY29udGFpbmVyV2luZG93ID0gci5jeS53aW5kb3coKTtcbiAgdmFyIHRndElzRG9tID0gdGd0ID09PSBjb250YWluZXJXaW5kb3cgfHwgdGd0ID09PSBjb250YWluZXJXaW5kb3cuZG9jdW1lbnQgfHwgdGd0ID09PSBjb250YWluZXJXaW5kb3cuZG9jdW1lbnQuYm9keSB8fCBkb21FbGVtZW50KHRndCk7XG4gIGlmIChyLnN1cHBvcnRzUGFzc2l2ZUV2ZW50cyA9PSBudWxsKSB7XG4gICAgLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9FdmVudExpc3RlbmVyT3B0aW9ucy9ibG9iL2doLXBhZ2VzL2V4cGxhaW5lci5tZCNmZWF0dXJlLWRldGVjdGlvblxuICAgIHZhciBzdXBwb3J0c1Bhc3NpdmUgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgdmFyIG9wdHMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgICAgICBzdXBwb3J0c1Bhc3NpdmUgPSB0cnVlO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNvbnRhaW5lcldpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgbnVsbCwgb3B0cyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBub3Qgc3VwcG9ydGVkXG4gICAgfVxuICAgIHIuc3VwcG9ydHNQYXNzaXZlRXZlbnRzID0gc3VwcG9ydHNQYXNzaXZlO1xuICB9XG4gIHZhciBvbiA9IGZ1bmN0aW9uIG9uKGV2ZW50LCBoYW5kbGVyLCB1c2VDYXB0dXJlKSB7XG4gICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgIGlmICh0Z3RJc0RvbSAmJiByLnN1cHBvcnRzUGFzc2l2ZUV2ZW50cykge1xuICAgICAgLy8gcmVwbGFjZSB1c2VDYXB0dXJlIHcvIG9wdHMgb2JqXG4gICAgICBhcmdzWzJdID0ge1xuICAgICAgICBjYXB0dXJlOiB1c2VDYXB0dXJlICE9IG51bGwgPyB1c2VDYXB0dXJlIDogZmFsc2UsXG4gICAgICAgIHBhc3NpdmU6IGZhbHNlLFxuICAgICAgICBvbmNlOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG4gICAgci5iaW5kaW5ncy5wdXNoKHtcbiAgICAgIHRhcmdldDogdGd0LFxuICAgICAgYXJnczogYXJnc1xuICAgIH0pO1xuICAgICh0Z3QuYWRkRXZlbnRMaXN0ZW5lciB8fCB0Z3Qub24pLmFwcGx5KHRndCwgYXJncyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG4gIHJldHVybiB7XG4gICAgb246IG9uLFxuICAgIGFkZEV2ZW50TGlzdGVuZXI6IG9uLFxuICAgIGFkZExpc3RlbmVyOiBvbixcbiAgICBiaW5kOiBvblxuICB9O1xufTtcbkJScCQzLm5vZGVJc0RyYWdnYWJsZSA9IGZ1bmN0aW9uIChub2RlKSB7XG4gIHJldHVybiBub2RlICYmIG5vZGUuaXNOb2RlKCkgJiYgIW5vZGUubG9ja2VkKCkgJiYgbm9kZS5ncmFiYmFibGUoKTtcbn07XG5CUnAkMy5ub2RlSXNHcmFiYmFibGUgPSBmdW5jdGlvbiAobm9kZSkge1xuICByZXR1cm4gdGhpcy5ub2RlSXNEcmFnZ2FibGUobm9kZSkgJiYgbm9kZS5pbnRlcmFjdGl2ZSgpO1xufTtcbkJScCQzLmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciByID0gdGhpcztcbiAgdmFyIGNvbnRhaW5lcldpbmRvdyA9IHIuY3kud2luZG93KCk7XG4gIHZhciBpc1NlbGVjdGVkID0gZnVuY3Rpb24gaXNTZWxlY3RlZChlbGUpIHtcbiAgICByZXR1cm4gZWxlLnNlbGVjdGVkKCk7XG4gIH07XG4gIHZhciB0cmlnZ2VyRXZlbnRzID0gZnVuY3Rpb24gdHJpZ2dlckV2ZW50cyh0YXJnZXQsIG5hbWVzLCBlLCBwb3NpdGlvbikge1xuICAgIGlmICh0YXJnZXQgPT0gbnVsbCkge1xuICAgICAgdGFyZ2V0ID0gci5jeTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG5hbWUgPSBuYW1lc1tpXTtcbiAgICAgIHRhcmdldC5lbWl0KHtcbiAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgdHlwZTogbmFtZSxcbiAgICAgICAgcG9zaXRpb246IHBvc2l0aW9uXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG4gIHZhciBpc011bHRTZWxLZXlEb3duID0gZnVuY3Rpb24gaXNNdWx0U2VsS2V5RG93bihlKSB7XG4gICAgcmV0dXJuIGUuc2hpZnRLZXkgfHwgZS5tZXRhS2V5IHx8IGUuY3RybEtleTsgLy8gbWF5YmUgZS5hbHRLZXlcbiAgfTtcblxuICB2YXIgYWxsb3dQYW5uaW5nUGFzc3Rocm91Z2ggPSBmdW5jdGlvbiBhbGxvd1Bhbm5pbmdQYXNzdGhyb3VnaChkb3duLCBkb3ducykge1xuICAgIHZhciBhbGxvd1Bhc3N0aHJvdWdoID0gdHJ1ZTtcbiAgICBpZiAoci5jeS5oYXNDb21wb3VuZE5vZGVzKCkgJiYgZG93biAmJiBkb3duLnBhbm5hYmxlKCkpIHtcbiAgICAgIC8vIGEgZ3JhYmJhYmxlIGNvbXBvdW5kIG5vZGUgYmVsb3cgdGhlIGVsZSA9PiBubyBwYXNzdGhyb3VnaCBwYW5uaW5nXG4gICAgICBmb3IgKHZhciBpID0gMDsgZG93bnMgJiYgaSA8IGRvd25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBkb3duID0gZG93bnNbaV07XG5cbiAgICAgICAgLy9pZiBhbnkgcGFyZW50IG5vZGUgaW4gZXZlbnQgaGllcmFyY2h5IGlzbid0IHBhbm5hYmxlLCByZWplY3QgcGFzc3Rocm91Z2hcbiAgICAgICAgaWYgKGRvd24uaXNOb2RlKCkgJiYgZG93bi5pc1BhcmVudCgpICYmICFkb3duLnBhbm5hYmxlKCkpIHtcbiAgICAgICAgICBhbGxvd1Bhc3N0aHJvdWdoID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYWxsb3dQYXNzdGhyb3VnaCA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBhbGxvd1Bhc3N0aHJvdWdoO1xuICB9O1xuICB2YXIgc2V0R3JhYmJlZCA9IGZ1bmN0aW9uIHNldEdyYWJiZWQoZWxlKSB7XG4gICAgZWxlWzBdLl9wcml2YXRlLmdyYWJiZWQgPSB0cnVlO1xuICB9O1xuICB2YXIgc2V0RnJlZWQgPSBmdW5jdGlvbiBzZXRGcmVlZChlbGUpIHtcbiAgICBlbGVbMF0uX3ByaXZhdGUuZ3JhYmJlZCA9IGZhbHNlO1xuICB9O1xuICB2YXIgc2V0SW5EcmFnTGF5ZXIgPSBmdW5jdGlvbiBzZXRJbkRyYWdMYXllcihlbGUpIHtcbiAgICBlbGVbMF0uX3ByaXZhdGUucnNjcmF0Y2guaW5EcmFnTGF5ZXIgPSB0cnVlO1xuICB9O1xuICB2YXIgc2V0T3V0RHJhZ0xheWVyID0gZnVuY3Rpb24gc2V0T3V0RHJhZ0xheWVyKGVsZSkge1xuICAgIGVsZVswXS5fcHJpdmF0ZS5yc2NyYXRjaC5pbkRyYWdMYXllciA9IGZhbHNlO1xuICB9O1xuICB2YXIgc2V0R3JhYlRhcmdldCA9IGZ1bmN0aW9uIHNldEdyYWJUYXJnZXQoZWxlKSB7XG4gICAgZWxlWzBdLl9wcml2YXRlLnJzY3JhdGNoLmlzR3JhYlRhcmdldCA9IHRydWU7XG4gIH07XG4gIHZhciByZW1vdmVHcmFiVGFyZ2V0ID0gZnVuY3Rpb24gcmVtb3ZlR3JhYlRhcmdldChlbGUpIHtcbiAgICBlbGVbMF0uX3ByaXZhdGUucnNjcmF0Y2guaXNHcmFiVGFyZ2V0ID0gZmFsc2U7XG4gIH07XG4gIHZhciBhZGRUb0RyYWdMaXN0ID0gZnVuY3Rpb24gYWRkVG9EcmFnTGlzdChlbGUsIG9wdHMpIHtcbiAgICB2YXIgbGlzdCA9IG9wdHMuYWRkVG9MaXN0O1xuICAgIHZhciBsaXN0SGFzRWxlID0gbGlzdC5oYXMoZWxlKTtcbiAgICBpZiAoIWxpc3RIYXNFbGUgJiYgZWxlLmdyYWJiYWJsZSgpICYmICFlbGUubG9ja2VkKCkpIHtcbiAgICAgIGxpc3QubWVyZ2UoZWxlKTtcbiAgICAgIHNldEdyYWJiZWQoZWxlKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gaGVscGVyIGZ1bmN0aW9uIHRvIGRldGVybWluZSB3aGljaCBjaGlsZCBub2RlcyBhbmQgaW5uZXIgZWRnZXNcbiAgLy8gb2YgYSBjb21wb3VuZCBub2RlIHRvIGJlIGRyYWdnZWQgYXMgd2VsbCBhcyB0aGUgZ3JhYmJlZCBhbmQgc2VsZWN0ZWQgbm9kZXNcbiAgdmFyIGFkZERlc2NlbmRhbnRzVG9EcmFnID0gZnVuY3Rpb24gYWRkRGVzY2VuZGFudHNUb0RyYWcobm9kZSwgb3B0cykge1xuICAgIGlmICghbm9kZS5jeSgpLmhhc0NvbXBvdW5kTm9kZXMoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAob3B0cy5pbkRyYWdMYXllciA9PSBudWxsICYmIG9wdHMuYWRkVG9MaXN0ID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIG5vdGhpbmcgdG8gZG9cblxuICAgIHZhciBpbm5lck5vZGVzID0gbm9kZS5kZXNjZW5kYW50cygpO1xuICAgIGlmIChvcHRzLmluRHJhZ0xheWVyKSB7XG4gICAgICBpbm5lck5vZGVzLmZvckVhY2goc2V0SW5EcmFnTGF5ZXIpO1xuICAgICAgaW5uZXJOb2Rlcy5jb25uZWN0ZWRFZGdlcygpLmZvckVhY2goc2V0SW5EcmFnTGF5ZXIpO1xuICAgIH1cbiAgICBpZiAob3B0cy5hZGRUb0xpc3QpIHtcbiAgICAgIGFkZFRvRHJhZ0xpc3QoaW5uZXJOb2Rlcywgb3B0cyk7XG4gICAgfVxuICB9O1xuXG4gIC8vIGFkZHMgdGhlIGdpdmVuIG5vZGVzIGFuZCBpdHMgbmVpZ2hib3VyaG9vZCB0byB0aGUgZHJhZyBsYXllclxuICB2YXIgYWRkTm9kZXNUb0RyYWcgPSBmdW5jdGlvbiBhZGROb2Rlc1RvRHJhZyhub2Rlcywgb3B0cykge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIHZhciBoYXNDb21wb3VuZE5vZGVzID0gbm9kZXMuY3koKS5oYXNDb21wb3VuZE5vZGVzKCk7XG4gICAgaWYgKG9wdHMuaW5EcmFnTGF5ZXIpIHtcbiAgICAgIG5vZGVzLmZvckVhY2goc2V0SW5EcmFnTGF5ZXIpO1xuICAgICAgbm9kZXMubmVpZ2hib3Job29kKCkuc3RkRmlsdGVyKGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgICAgcmV0dXJuICFoYXNDb21wb3VuZE5vZGVzIHx8IGVsZS5pc0VkZ2UoKTtcbiAgICAgIH0pLmZvckVhY2goc2V0SW5EcmFnTGF5ZXIpO1xuICAgIH1cbiAgICBpZiAob3B0cy5hZGRUb0xpc3QpIHtcbiAgICAgIG5vZGVzLmZvckVhY2goZnVuY3Rpb24gKGVsZSkge1xuICAgICAgICBhZGRUb0RyYWdMaXN0KGVsZSwgb3B0cyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgYWRkRGVzY2VuZGFudHNUb0RyYWcobm9kZXMsIG9wdHMpOyAvLyBhbHdheXMgYWRkIHRvIGRyYWdcblxuICAgIC8vIGFsc28gYWRkIG5vZGVzIGFuZCBlZGdlcyByZWxhdGVkIHRvIHRoZSB0b3Btb3N0IGFuY2VzdG9yXG4gICAgdXBkYXRlQW5jZXN0b3JzSW5EcmFnTGF5ZXIobm9kZXMsIHtcbiAgICAgIGluRHJhZ0xheWVyOiBvcHRzLmluRHJhZ0xheWVyXG4gICAgfSk7XG4gICAgci51cGRhdGVDYWNoZWRHcmFiYmVkRWxlcygpO1xuICB9O1xuICB2YXIgYWRkTm9kZVRvRHJhZyA9IGFkZE5vZGVzVG9EcmFnO1xuICB2YXIgZnJlZURyYWdnZWRFbGVtZW50cyA9IGZ1bmN0aW9uIGZyZWVEcmFnZ2VkRWxlbWVudHMoZ3JhYmJlZEVsZXMpIHtcbiAgICBpZiAoIWdyYWJiZWRFbGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8ganVzdCBnbyBvdmVyIGFsbCBlbGVtZW50cyByYXRoZXIgdGhhbiBkb2luZyBhIGJ1bmNoIG9mIChwb3NzaWJseSBleHBlbnNpdmUpIHRyYXZlcnNhbHNcbiAgICByLmdldENhY2hlZFpTb3J0ZWRFbGVzKCkuZm9yRWFjaChmdW5jdGlvbiAoZWxlKSB7XG4gICAgICBzZXRGcmVlZChlbGUpO1xuICAgICAgc2V0T3V0RHJhZ0xheWVyKGVsZSk7XG4gICAgICByZW1vdmVHcmFiVGFyZ2V0KGVsZSk7XG4gICAgfSk7XG4gICAgci51cGRhdGVDYWNoZWRHcmFiYmVkRWxlcygpO1xuICB9O1xuXG4gIC8vIGhlbHBlciBmdW5jdGlvbiB0byBkZXRlcm1pbmUgd2hpY2ggYW5jZXN0b3Igbm9kZXMgYW5kIGVkZ2VzIHNob3VsZCBnb1xuICAvLyB0byB0aGUgZHJhZyBsYXllciAob3Igc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBkcmFnIGxheWVyKS5cbiAgdmFyIHVwZGF0ZUFuY2VzdG9yc0luRHJhZ0xheWVyID0gZnVuY3Rpb24gdXBkYXRlQW5jZXN0b3JzSW5EcmFnTGF5ZXIobm9kZSwgb3B0cykge1xuICAgIGlmIChvcHRzLmluRHJhZ0xheWVyID09IG51bGwgJiYgb3B0cy5hZGRUb0xpc3QgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gbm90aGluZyB0byBkb1xuXG4gICAgaWYgKCFub2RlLmN5KCkuaGFzQ29tcG91bmROb2RlcygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZmluZCB0b3AtbGV2ZWwgcGFyZW50XG4gICAgdmFyIHBhcmVudCA9IG5vZGUuYW5jZXN0b3JzKCkub3JwaGFucygpO1xuXG4gICAgLy8gbm8gcGFyZW50IG5vZGU6IG5vIG5vZGVzIHRvIGFkZCB0byB0aGUgZHJhZyBsYXllclxuICAgIGlmIChwYXJlbnQuc2FtZShub2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgbm9kZXMgPSBwYXJlbnQuZGVzY2VuZGFudHMoKS5zcGF3blNlbGYoKS5tZXJnZShwYXJlbnQpLnVubWVyZ2Uobm9kZSkudW5tZXJnZShub2RlLmRlc2NlbmRhbnRzKCkpO1xuICAgIHZhciBlZGdlcyA9IG5vZGVzLmNvbm5lY3RlZEVkZ2VzKCk7XG4gICAgaWYgKG9wdHMuaW5EcmFnTGF5ZXIpIHtcbiAgICAgIGVkZ2VzLmZvckVhY2goc2V0SW5EcmFnTGF5ZXIpO1xuICAgICAgbm9kZXMuZm9yRWFjaChzZXRJbkRyYWdMYXllcik7XG4gICAgfVxuICAgIGlmIChvcHRzLmFkZFRvTGlzdCkge1xuICAgICAgbm9kZXMuZm9yRWFjaChmdW5jdGlvbiAoZWxlKSB7XG4gICAgICAgIGFkZFRvRHJhZ0xpc3QoZWxlLCBvcHRzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgdmFyIGJsdXJBY3RpdmVEb21FbGVtZW50ID0gZnVuY3Rpb24gYmx1ckFjdGl2ZURvbUVsZW1lbnQoKSB7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT0gbnVsbCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIgIT0gbnVsbCkge1xuICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgfVxuICB9O1xuICB2YXIgaGF2ZU11dGF0aW9uc0FwaSA9IHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyICE9PSAndW5kZWZpbmVkJztcbiAgdmFyIGhhdmVSZXNpemVPYnNlcnZlckFwaSA9IHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCc7XG5cbiAgLy8gd2F0Y2ggZm9yIHdoZW4gdGhlIGN5IGNvbnRhaW5lciBpcyByZW1vdmVkIGZyb20gdGhlIGRvbVxuICBpZiAoaGF2ZU11dGF0aW9uc0FwaSkge1xuICAgIHIucmVtb3ZlT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAobXV0bnMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXV0bnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIG11dG4gPSBtdXRuc1tpXTtcbiAgICAgICAgdmFyIHJOb2RlcyA9IG11dG4ucmVtb3ZlZE5vZGVzO1xuICAgICAgICBpZiAock5vZGVzKSB7XG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCByTm9kZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIHZhciByTm9kZSA9IHJOb2Rlc1tqXTtcbiAgICAgICAgICAgIGlmIChyTm9kZSA9PT0gci5jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgci5kZXN0cm95KCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChyLmNvbnRhaW5lci5wYXJlbnROb2RlKSB7XG4gICAgICByLnJlbW92ZU9ic2VydmVyLm9ic2VydmUoci5jb250YWluZXIucGFyZW50Tm9kZSwge1xuICAgICAgICBjaGlsZExpc3Q6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByLnJlZ2lzdGVyQmluZGluZyhyLmNvbnRhaW5lciwgJ0RPTU5vZGVSZW1vdmVkJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgIHIuZGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG4gIHZhciBvblJlc2l6ZSA9IGRlYm91bmNlXzEoZnVuY3Rpb24gKCkge1xuICAgIHIuY3kucmVzaXplKCk7XG4gIH0sIDEwMCk7XG4gIGlmIChoYXZlTXV0YXRpb25zQXBpKSB7XG4gICAgci5zdHlsZU9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIob25SZXNpemUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cbiAgICByLnN0eWxlT2JzZXJ2ZXIub2JzZXJ2ZShyLmNvbnRhaW5lciwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgLy8gYXV0byByZXNpemVcbiAgci5yZWdpc3RlckJpbmRpbmcoY29udGFpbmVyV2luZG93LCAncmVzaXplJywgb25SZXNpemUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cbiAgaWYgKGhhdmVSZXNpemVPYnNlcnZlckFwaSkge1xuICAgIHIucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIob25SZXNpemUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cbiAgICByLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoci5jb250YWluZXIpO1xuICB9XG4gIHZhciBmb3JFYWNoVXAgPSBmdW5jdGlvbiBmb3JFYWNoVXAoZG9tRWxlLCBmbikge1xuICAgIHdoaWxlIChkb21FbGUgIT0gbnVsbCkge1xuICAgICAgZm4oZG9tRWxlKTtcbiAgICAgIGRvbUVsZSA9IGRvbUVsZS5wYXJlbnROb2RlO1xuICAgIH1cbiAgfTtcbiAgdmFyIGludmFsaWRhdGVDb29yZHMgPSBmdW5jdGlvbiBpbnZhbGlkYXRlQ29vcmRzKCkge1xuICAgIHIuaW52YWxpZGF0ZUNvbnRhaW5lckNsaWVudENvb3Jkc0NhY2hlKCk7XG4gIH07XG4gIGZvckVhY2hVcChyLmNvbnRhaW5lciwgZnVuY3Rpb24gKGRvbUVsZSkge1xuICAgIHIucmVnaXN0ZXJCaW5kaW5nKGRvbUVsZSwgJ3RyYW5zaXRpb25lbmQnLCBpbnZhbGlkYXRlQ29vcmRzKTtcbiAgICByLnJlZ2lzdGVyQmluZGluZyhkb21FbGUsICdhbmltYXRpb25lbmQnLCBpbnZhbGlkYXRlQ29vcmRzKTtcbiAgICByLnJlZ2lzdGVyQmluZGluZyhkb21FbGUsICdzY3JvbGwnLCBpbnZhbGlkYXRlQ29vcmRzKTtcbiAgfSk7XG5cbiAgLy8gc3RvcCByaWdodCBjbGljayBtZW51IGZyb20gYXBwZWFyaW5nIG9uIGN5XG4gIHIucmVnaXN0ZXJCaW5kaW5nKHIuY29udGFpbmVyLCAnY29udGV4dG1lbnUnLCBmdW5jdGlvbiAoZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfSk7XG4gIHZhciBpbkJveFNlbGVjdGlvbiA9IGZ1bmN0aW9uIGluQm94U2VsZWN0aW9uKCkge1xuICAgIHJldHVybiByLnNlbGVjdGlvbls0XSAhPT0gMDtcbiAgfTtcbiAgdmFyIGV2ZW50SW5Db250YWluZXIgPSBmdW5jdGlvbiBldmVudEluQ29udGFpbmVyKGUpIHtcbiAgICAvLyBzYXZlIGN5Y2xlcyBpZiBtb3VzZSBldmVudHMgYXJlbid0IHRvIGJlIGNhcHR1cmVkXG4gICAgdmFyIGNvbnRhaW5lclBhZ2VDb29yZHMgPSByLmZpbmRDb250YWluZXJDbGllbnRDb29yZHMoKTtcbiAgICB2YXIgeCA9IGNvbnRhaW5lclBhZ2VDb29yZHNbMF07XG4gICAgdmFyIHkgPSBjb250YWluZXJQYWdlQ29vcmRzWzFdO1xuICAgIHZhciB3aWR0aCA9IGNvbnRhaW5lclBhZ2VDb29yZHNbMl07XG4gICAgdmFyIGhlaWdodCA9IGNvbnRhaW5lclBhZ2VDb29yZHNbM107XG4gICAgdmFyIHBvc2l0aW9ucyA9IGUudG91Y2hlcyA/IGUudG91Y2hlcyA6IFtlXTtcbiAgICB2YXIgYXRMZWFzdE9uZVBvc0luc2lkZSA9IGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcG9zaXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcCA9IHBvc2l0aW9uc1tpXTtcbiAgICAgIGlmICh4IDw9IHAuY2xpZW50WCAmJiBwLmNsaWVudFggPD0geCArIHdpZHRoICYmIHkgPD0gcC5jbGllbnRZICYmIHAuY2xpZW50WSA8PSB5ICsgaGVpZ2h0KSB7XG4gICAgICAgIGF0TGVhc3RPbmVQb3NJbnNpZGUgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFhdExlYXN0T25lUG9zSW5zaWRlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBjb250YWluZXIgPSByLmNvbnRhaW5lcjtcbiAgICB2YXIgdGFyZ2V0ID0gZS50YXJnZXQ7XG4gICAgdmFyIHRQYXJlbnQgPSB0YXJnZXQucGFyZW50Tm9kZTtcbiAgICB2YXIgY29udGFpbmVySXNUYXJnZXQgPSBmYWxzZTtcbiAgICB3aGlsZSAodFBhcmVudCkge1xuICAgICAgaWYgKHRQYXJlbnQgPT09IGNvbnRhaW5lcikge1xuICAgICAgICBjb250YWluZXJJc1RhcmdldCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdFBhcmVudCA9IHRQYXJlbnQucGFyZW50Tm9kZTtcbiAgICB9XG4gICAgaWYgKCFjb250YWluZXJJc1RhcmdldCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gaWYgdGFyZ2V0IGlzIG91dGlzZGUgY3kgY29udGFpbmVyLCB0aGVuIHRoaXMgZXZlbnQgaXMgbm90IGZvciB1c1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLy8gUHJpbWFyeSBrZXlcbiAgci5yZWdpc3RlckJpbmRpbmcoci5jb250YWluZXIsICdtb3VzZWRvd24nLCBmdW5jdGlvbiBtb3VzZWRvd25IYW5kbGVyKGUpIHtcbiAgICBpZiAoIWV2ZW50SW5Db250YWluZXIoZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBkdXJpbmcgbGVmdCBtb3VzZSBidXR0b24gZ2VzdHVyZXMsIGlnbm9yZSBvdGhlciBidXR0b25zXG4gICAgaWYgKHIuaG92ZXJEYXRhLndoaWNoID09PSAxICYmIGUud2hpY2ggIT09IDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGJsdXJBY3RpdmVEb21FbGVtZW50KCk7XG4gICAgci5ob3ZlckRhdGEuY2FwdHVyZSA9IHRydWU7XG4gICAgci5ob3ZlckRhdGEud2hpY2ggPSBlLndoaWNoO1xuICAgIHZhciBjeSA9IHIuY3k7XG4gICAgdmFyIGdwb3MgPSBbZS5jbGllbnRYLCBlLmNsaWVudFldO1xuICAgIHZhciBwb3MgPSByLnByb2plY3RJbnRvVmlld3BvcnQoZ3Bvc1swXSwgZ3Bvc1sxXSk7XG4gICAgdmFyIHNlbGVjdCA9IHIuc2VsZWN0aW9uO1xuICAgIHZhciBuZWFycyA9IHIuZmluZE5lYXJlc3RFbGVtZW50cyhwb3NbMF0sIHBvc1sxXSwgdHJ1ZSwgZmFsc2UpO1xuICAgIHZhciBuZWFyID0gbmVhcnNbMF07XG4gICAgdmFyIGRyYWdnZWRFbGVtZW50cyA9IHIuZHJhZ0RhdGEucG9zc2libGVEcmFnRWxlbWVudHM7XG4gICAgci5ob3ZlckRhdGEubWRvd25Qb3MgPSBwb3M7XG4gICAgci5ob3ZlckRhdGEubWRvd25HUG9zID0gZ3BvcztcbiAgICB2YXIgY2hlY2tGb3JUYXBob2xkID0gZnVuY3Rpb24gY2hlY2tGb3JUYXBob2xkKCkge1xuICAgICAgci5ob3ZlckRhdGEudGFwaG9sZENhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgY2xlYXJUaW1lb3V0KHIuaG92ZXJEYXRhLnRhcGhvbGRUaW1lb3V0KTtcbiAgICAgIHIuaG92ZXJEYXRhLnRhcGhvbGRUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChyLmhvdmVyRGF0YS50YXBob2xkQ2FuY2VsbGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBlbGUgPSByLmhvdmVyRGF0YS5kb3duO1xuICAgICAgICAgIGlmIChlbGUpIHtcbiAgICAgICAgICAgIGVsZS5lbWl0KHtcbiAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgICAgICAgdHlwZTogJ3RhcGhvbGQnLFxuICAgICAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgICAgIHg6IHBvc1swXSxcbiAgICAgICAgICAgICAgICB5OiBwb3NbMV1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN5LmVtaXQoe1xuICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBlLFxuICAgICAgICAgICAgICB0eXBlOiAndGFwaG9sZCcsXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgeDogcG9zWzBdLFxuICAgICAgICAgICAgICAgIHk6IHBvc1sxXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIHIudGFwaG9sZER1cmF0aW9uKTtcbiAgICB9O1xuXG4gICAgLy8gUmlnaHQgY2xpY2sgYnV0dG9uXG4gICAgaWYgKGUud2hpY2ggPT0gMykge1xuICAgICAgci5ob3ZlckRhdGEuY3h0U3RhcnRlZCA9IHRydWU7XG4gICAgICB2YXIgY3h0RXZ0ID0ge1xuICAgICAgICBvcmlnaW5hbEV2ZW50OiBlLFxuICAgICAgICB0eXBlOiAnY3h0dGFwc3RhcnQnLFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHg6IHBvc1swXSxcbiAgICAgICAgICB5OiBwb3NbMV1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlmIChuZWFyKSB7XG4gICAgICAgIG5lYXIuYWN0aXZhdGUoKTtcbiAgICAgICAgbmVhci5lbWl0KGN4dEV2dCk7XG4gICAgICAgIHIuaG92ZXJEYXRhLmRvd24gPSBuZWFyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3kuZW1pdChjeHRFdnQpO1xuICAgICAgfVxuICAgICAgci5ob3ZlckRhdGEuZG93blRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgIHIuaG92ZXJEYXRhLmN4dERyYWdnZWQgPSBmYWxzZTtcblxuICAgICAgLy8gUHJpbWFyeSBidXR0b25cbiAgICB9IGVsc2UgaWYgKGUud2hpY2ggPT0gMSkge1xuICAgICAgaWYgKG5lYXIpIHtcbiAgICAgICAgbmVhci5hY3RpdmF0ZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBFbGVtZW50IGRyYWdnaW5nXG4gICAgICB7XG4gICAgICAgIC8vIElmIHNvbWV0aGluZyBpcyB1bmRlciB0aGUgY3Vyc29yIGFuZCBpdCBpcyBkcmFnZ2FibGUsIHByZXBhcmUgdG8gZ3JhYiBpdFxuICAgICAgICBpZiAobmVhciAhPSBudWxsKSB7XG4gICAgICAgICAgaWYgKHIubm9kZUlzR3JhYmJhYmxlKG5lYXIpKSB7XG4gICAgICAgICAgICB2YXIgbWFrZUV2ZW50ID0gZnVuY3Rpb24gbWFrZUV2ZW50KHR5cGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBlLFxuICAgICAgICAgICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgICAgICAgIHg6IHBvc1swXSxcbiAgICAgICAgICAgICAgICAgIHk6IHBvc1sxXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgdHJpZ2dlckdyYWIgPSBmdW5jdGlvbiB0cmlnZ2VyR3JhYihlbGUpIHtcbiAgICAgICAgICAgICAgZWxlLmVtaXQobWFrZUV2ZW50KCdncmFiJykpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHNldEdyYWJUYXJnZXQobmVhcik7XG4gICAgICAgICAgICBpZiAoIW5lYXIuc2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgICBkcmFnZ2VkRWxlbWVudHMgPSByLmRyYWdEYXRhLnBvc3NpYmxlRHJhZ0VsZW1lbnRzID0gY3kuY29sbGVjdGlvbigpO1xuICAgICAgICAgICAgICBhZGROb2RlVG9EcmFnKG5lYXIsIHtcbiAgICAgICAgICAgICAgICBhZGRUb0xpc3Q6IGRyYWdnZWRFbGVtZW50c1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgbmVhci5lbWl0KG1ha2VFdmVudCgnZ3JhYm9uJykpLmVtaXQobWFrZUV2ZW50KCdncmFiJykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZHJhZ2dlZEVsZW1lbnRzID0gci5kcmFnRGF0YS5wb3NzaWJsZURyYWdFbGVtZW50cyA9IGN5LmNvbGxlY3Rpb24oKTtcbiAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkTm9kZXMgPSBjeS4kKGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlLmlzTm9kZSgpICYmIGVsZS5zZWxlY3RlZCgpICYmIHIubm9kZUlzR3JhYmJhYmxlKGVsZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBhZGROb2Rlc1RvRHJhZyhzZWxlY3RlZE5vZGVzLCB7XG4gICAgICAgICAgICAgICAgYWRkVG9MaXN0OiBkcmFnZ2VkRWxlbWVudHNcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIG5lYXIuZW1pdChtYWtlRXZlbnQoJ2dyYWJvbicpKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWROb2Rlcy5mb3JFYWNoKHRyaWdnZXJHcmFiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHIucmVkcmF3SGludCgnZWxlcycsIHRydWUpO1xuICAgICAgICAgICAgci5yZWRyYXdIaW50KCdkcmFnJywgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHIuaG92ZXJEYXRhLmRvd24gPSBuZWFyO1xuICAgICAgICByLmhvdmVyRGF0YS5kb3ducyA9IG5lYXJzO1xuICAgICAgICByLmhvdmVyRGF0YS5kb3duVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgfVxuICAgICAgdHJpZ2dlckV2ZW50cyhuZWFyLCBbJ21vdXNlZG93bicsICd0YXBzdGFydCcsICd2bW91c2Vkb3duJ10sIGUsIHtcbiAgICAgICAgeDogcG9zWzBdLFxuICAgICAgICB5OiBwb3NbMV1cbiAgICAgIH0pO1xuICAgICAgaWYgKG5lYXIgPT0gbnVsbCkge1xuICAgICAgICBzZWxlY3RbNF0gPSAxO1xuICAgICAgICByLmRhdGEuYmdBY3RpdmVQb3Npc3Rpb24gPSB7XG4gICAgICAgICAgeDogcG9zWzBdLFxuICAgICAgICAgIHk6IHBvc1sxXVxuICAgICAgICB9O1xuICAgICAgICByLnJlZHJhd0hpbnQoJ3NlbGVjdCcsIHRydWUpO1xuICAgICAgICByLnJlZHJhdygpO1xuICAgICAgfSBlbHNlIGlmIChuZWFyLnBhbm5hYmxlKCkpIHtcbiAgICAgICAgc2VsZWN0WzRdID0gMTsgLy8gZm9yIGZ1dHVyZSBwYW5cbiAgICAgIH1cblxuICAgICAgY2hlY2tGb3JUYXBob2xkKCk7XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBzZWxlY3Rpb24gYm94IGNvb3JkaW5hdGVzXG4gICAgc2VsZWN0WzBdID0gc2VsZWN0WzJdID0gcG9zWzBdO1xuICAgIHNlbGVjdFsxXSA9IHNlbGVjdFszXSA9IHBvc1sxXTtcbiAgfSwgZmFsc2UpO1xuICByLnJlZ2lzdGVyQmluZGluZyhjb250YWluZXJXaW5kb3csICdtb3VzZW1vdmUnLCBmdW5jdGlvbiBtb3VzZW1vdmVIYW5kbGVyKGUpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4gICAgdmFyIGNhcHR1cmUgPSByLmhvdmVyRGF0YS5jYXB0dXJlO1xuICAgIGlmICghY2FwdHVyZSAmJiAhZXZlbnRJbkNvbnRhaW5lcihlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgcHJldmVudERlZmF1bHQgPSBmYWxzZTtcbiAgICB2YXIgY3kgPSByLmN5O1xuICAgIHZhciB6b29tID0gY3kuem9vbSgpO1xuICAgIHZhciBncG9zID0gW2UuY2xpZW50WCwgZS5jbGllbnRZXTtcbiAgICB2YXIgcG9zID0gci5wcm9qZWN0SW50b1ZpZXdwb3J0KGdwb3NbMF0sIGdwb3NbMV0pO1xuICAgIHZhciBtZG93blBvcyA9IHIuaG92ZXJEYXRhLm1kb3duUG9zO1xuICAgIHZhciBtZG93bkdQb3MgPSByLmhvdmVyRGF0YS5tZG93bkdQb3M7XG4gICAgdmFyIHNlbGVjdCA9IHIuc2VsZWN0aW9uO1xuICAgIHZhciBuZWFyID0gbnVsbDtcbiAgICBpZiAoIXIuaG92ZXJEYXRhLmRyYWdnaW5nRWxlcyAmJiAhci5ob3ZlckRhdGEuZHJhZ2dpbmcgJiYgIXIuaG92ZXJEYXRhLnNlbGVjdGluZykge1xuICAgICAgbmVhciA9IHIuZmluZE5lYXJlc3RFbGVtZW50KHBvc1swXSwgcG9zWzFdLCB0cnVlLCBmYWxzZSk7XG4gICAgfVxuICAgIHZhciBsYXN0ID0gci5ob3ZlckRhdGEubGFzdDtcbiAgICB2YXIgZG93biA9IHIuaG92ZXJEYXRhLmRvd247XG4gICAgdmFyIGRpc3AgPSBbcG9zWzBdIC0gc2VsZWN0WzJdLCBwb3NbMV0gLSBzZWxlY3RbM11dO1xuICAgIHZhciBkcmFnZ2VkRWxlbWVudHMgPSByLmRyYWdEYXRhLnBvc3NpYmxlRHJhZ0VsZW1lbnRzO1xuICAgIHZhciBpc092ZXJUaHJlc2hvbGREcmFnO1xuICAgIGlmIChtZG93bkdQb3MpIHtcbiAgICAgIHZhciBkeCA9IGdwb3NbMF0gLSBtZG93bkdQb3NbMF07XG4gICAgICB2YXIgZHgyID0gZHggKiBkeDtcbiAgICAgIHZhciBkeSA9IGdwb3NbMV0gLSBtZG93bkdQb3NbMV07XG4gICAgICB2YXIgZHkyID0gZHkgKiBkeTtcbiAgICAgIHZhciBkaXN0MiA9IGR4MiArIGR5MjtcbiAgICAgIHIuaG92ZXJEYXRhLmlzT3ZlclRocmVzaG9sZERyYWcgPSBpc092ZXJUaHJlc2hvbGREcmFnID0gZGlzdDIgPj0gci5kZXNrdG9wVGFwVGhyZXNob2xkMjtcbiAgICB9XG4gICAgdmFyIG11bHRTZWxLZXlEb3duID0gaXNNdWx0U2VsS2V5RG93bihlKTtcbiAgICBpZiAoaXNPdmVyVGhyZXNob2xkRHJhZykge1xuICAgICAgci5ob3ZlckRhdGEudGFwaG9sZENhbmNlbGxlZCA9IHRydWU7XG4gICAgfVxuICAgIHZhciB1cGRhdGVEcmFnRGVsdGEgPSBmdW5jdGlvbiB1cGRhdGVEcmFnRGVsdGEoKSB7XG4gICAgICB2YXIgZHJhZ0RlbHRhID0gci5ob3ZlckRhdGEuZHJhZ0RlbHRhID0gci5ob3ZlckRhdGEuZHJhZ0RlbHRhIHx8IFtdO1xuICAgICAgaWYgKGRyYWdEZWx0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZHJhZ0RlbHRhLnB1c2goZGlzcFswXSk7XG4gICAgICAgIGRyYWdEZWx0YS5wdXNoKGRpc3BbMV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHJhZ0RlbHRhWzBdICs9IGRpc3BbMF07XG4gICAgICAgIGRyYWdEZWx0YVsxXSArPSBkaXNwWzFdO1xuICAgICAgfVxuICAgIH07XG4gICAgcHJldmVudERlZmF1bHQgPSB0cnVlO1xuICAgIHRyaWdnZXJFdmVudHMobmVhciwgWydtb3VzZW1vdmUnLCAndm1vdXNlbW92ZScsICd0YXBkcmFnJ10sIGUsIHtcbiAgICAgIHg6IHBvc1swXSxcbiAgICAgIHk6IHBvc1sxXVxuICAgIH0pO1xuICAgIHZhciBnb0ludG9Cb3hNb2RlID0gZnVuY3Rpb24gZ29JbnRvQm94TW9kZSgpIHtcbiAgICAgIHIuZGF0YS5iZ0FjdGl2ZVBvc2lzdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIGlmICghci5ob3ZlckRhdGEuc2VsZWN0aW5nKSB7XG4gICAgICAgIGN5LmVtaXQoe1xuICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGUsXG4gICAgICAgICAgdHlwZTogJ2JveHN0YXJ0JyxcbiAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgeDogcG9zWzBdLFxuICAgICAgICAgICAgeTogcG9zWzFdXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHNlbGVjdFs0XSA9IDE7XG4gICAgICByLmhvdmVyRGF0YS5zZWxlY3RpbmcgPSB0cnVlO1xuICAgICAgci5yZWRyYXdIaW50KCdzZWxlY3QnLCB0cnVlKTtcbiAgICAgIHIucmVkcmF3KCk7XG4gICAgfTtcblxuICAgIC8vIHRyaWdnZXIgY29udGV4dCBkcmFnIGlmIHJtb3VzZSBkb3duXG4gICAgaWYgKHIuaG92ZXJEYXRhLndoaWNoID09PSAzKSB7XG4gICAgICAvLyBidXQgb25seSBpZiBvdmVyIHRocmVzaG9sZFxuICAgICAgaWYgKGlzT3ZlclRocmVzaG9sZERyYWcpIHtcbiAgICAgICAgdmFyIGN4dEV2dCA9IHtcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBlLFxuICAgICAgICAgIHR5cGU6ICdjeHRkcmFnJyxcbiAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgeDogcG9zWzBdLFxuICAgICAgICAgICAgeTogcG9zWzFdXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZG93bikge1xuICAgICAgICAgIGRvd24uZW1pdChjeHRFdnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN5LmVtaXQoY3h0RXZ0KTtcbiAgICAgICAgfVxuICAgICAgICByLmhvdmVyRGF0YS5jeHREcmFnZ2VkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCFyLmhvdmVyRGF0YS5jeHRPdmVyIHx8IG5lYXIgIT09IHIuaG92ZXJEYXRhLmN4dE92ZXIpIHtcbiAgICAgICAgICBpZiAoci5ob3ZlckRhdGEuY3h0T3Zlcikge1xuICAgICAgICAgICAgci5ob3ZlckRhdGEuY3h0T3Zlci5lbWl0KHtcbiAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgICAgICAgdHlwZTogJ2N4dGRyYWdvdXQnLFxuICAgICAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgICAgIHg6IHBvc1swXSxcbiAgICAgICAgICAgICAgICB5OiBwb3NbMV1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHIuaG92ZXJEYXRhLmN4dE92ZXIgPSBuZWFyO1xuICAgICAgICAgIGlmIChuZWFyKSB7XG4gICAgICAgICAgICBuZWFyLmVtaXQoe1xuICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBlLFxuICAgICAgICAgICAgICB0eXBlOiAnY3h0ZHJhZ292ZXInLFxuICAgICAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgICAgIHg6IHBvc1swXSxcbiAgICAgICAgICAgICAgICB5OiBwb3NbMV1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHdlIGFyZSBkcmFnIHBhbm5pbmcgdGhlIGVudGlyZSBncmFwaFxuICAgIH0gZWxzZSBpZiAoci5ob3ZlckRhdGEuZHJhZ2dpbmcpIHtcbiAgICAgIHByZXZlbnREZWZhdWx0ID0gdHJ1ZTtcbiAgICAgIGlmIChjeS5wYW5uaW5nRW5hYmxlZCgpICYmIGN5LnVzZXJQYW5uaW5nRW5hYmxlZCgpKSB7XG4gICAgICAgIHZhciBkZWx0YVA7XG4gICAgICAgIGlmIChyLmhvdmVyRGF0YS5qdXN0U3RhcnRlZFBhbikge1xuICAgICAgICAgIHZhciBtZFBvcyA9IHIuaG92ZXJEYXRhLm1kb3duUG9zO1xuICAgICAgICAgIGRlbHRhUCA9IHtcbiAgICAgICAgICAgIHg6IChwb3NbMF0gLSBtZFBvc1swXSkgKiB6b29tLFxuICAgICAgICAgICAgeTogKHBvc1sxXSAtIG1kUG9zWzFdKSAqIHpvb21cbiAgICAgICAgICB9O1xuICAgICAgICAgIHIuaG92ZXJEYXRhLmp1c3RTdGFydGVkUGFuID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVsdGFQID0ge1xuICAgICAgICAgICAgeDogZGlzcFswXSAqIHpvb20sXG4gICAgICAgICAgICB5OiBkaXNwWzFdICogem9vbVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY3kucGFuQnkoZGVsdGFQKTtcbiAgICAgICAgY3kuZW1pdCgnZHJhZ3BhbicpO1xuICAgICAgICByLmhvdmVyRGF0YS5kcmFnZ2VkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gTmVlZHMgcmVwcm9qZWN0IGR1ZSB0byBwYW4gY2hhbmdpbmcgdmlld3BvcnRcbiAgICAgIHBvcyA9IHIucHJvamVjdEludG9WaWV3cG9ydChlLmNsaWVudFgsIGUuY2xpZW50WSk7XG5cbiAgICAgIC8vIENoZWNrcyBwcmltYXJ5IGJ1dHRvbiBkb3duICYgb3V0IG9mIHRpbWUgJiBtb3VzZSBub3QgbW92ZWQgbXVjaFxuICAgIH0gZWxzZSBpZiAoc2VsZWN0WzRdID09IDEgJiYgKGRvd24gPT0gbnVsbCB8fCBkb3duLnBhbm5hYmxlKCkpKSB7XG4gICAgICBpZiAoaXNPdmVyVGhyZXNob2xkRHJhZykge1xuICAgICAgICBpZiAoIXIuaG92ZXJEYXRhLmRyYWdnaW5nICYmIGN5LmJveFNlbGVjdGlvbkVuYWJsZWQoKSAmJiAobXVsdFNlbEtleURvd24gfHwgIWN5LnBhbm5pbmdFbmFibGVkKCkgfHwgIWN5LnVzZXJQYW5uaW5nRW5hYmxlZCgpKSkge1xuICAgICAgICAgIGdvSW50b0JveE1vZGUoKTtcbiAgICAgICAgfSBlbHNlIGlmICghci5ob3ZlckRhdGEuc2VsZWN0aW5nICYmIGN5LnBhbm5pbmdFbmFibGVkKCkgJiYgY3kudXNlclBhbm5pbmdFbmFibGVkKCkpIHtcbiAgICAgICAgICB2YXIgYWxsb3dQYXNzdGhyb3VnaCA9IGFsbG93UGFubmluZ1Bhc3N0aHJvdWdoKGRvd24sIHIuaG92ZXJEYXRhLmRvd25zKTtcbiAgICAgICAgICBpZiAoYWxsb3dQYXNzdGhyb3VnaCkge1xuICAgICAgICAgICAgci5ob3ZlckRhdGEuZHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICAgICAgci5ob3ZlckRhdGEuanVzdFN0YXJ0ZWRQYW4gPSB0cnVlO1xuICAgICAgICAgICAgc2VsZWN0WzRdID0gMDtcbiAgICAgICAgICAgIHIuZGF0YS5iZ0FjdGl2ZVBvc2lzdGlvbiA9IGFycmF5MnBvaW50KG1kb3duUG9zKTtcbiAgICAgICAgICAgIHIucmVkcmF3SGludCgnc2VsZWN0JywgdHJ1ZSk7XG4gICAgICAgICAgICByLnJlZHJhdygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZG93biAmJiBkb3duLnBhbm5hYmxlKCkgJiYgZG93bi5hY3RpdmUoKSkge1xuICAgICAgICAgIGRvd24udW5hY3RpdmF0ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChkb3duICYmIGRvd24ucGFubmFibGUoKSAmJiBkb3duLmFjdGl2ZSgpKSB7XG4gICAgICAgIGRvd24udW5hY3RpdmF0ZSgpO1xuICAgICAgfVxuICAgICAgaWYgKCghZG93biB8fCAhZG93bi5ncmFiYmVkKCkpICYmIG5lYXIgIT0gbGFzdCkge1xuICAgICAgICBpZiAobGFzdCkge1xuICAgICAgICAgIHRyaWdnZXJFdmVudHMobGFzdCwgWydtb3VzZW91dCcsICd0YXBkcmFnb3V0J10sIGUsIHtcbiAgICAgICAgICAgIHg6IHBvc1swXSxcbiAgICAgICAgICAgIHk6IHBvc1sxXVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZWFyKSB7XG4gICAgICAgICAgdHJpZ2dlckV2ZW50cyhuZWFyLCBbJ21vdXNlb3ZlcicsICd0YXBkcmFnb3ZlciddLCBlLCB7XG4gICAgICAgICAgICB4OiBwb3NbMF0sXG4gICAgICAgICAgICB5OiBwb3NbMV1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByLmhvdmVyRGF0YS5sYXN0ID0gbmVhcjtcbiAgICAgIH1cbiAgICAgIGlmIChkb3duKSB7XG4gICAgICAgIGlmIChpc092ZXJUaHJlc2hvbGREcmFnKSB7XG4gICAgICAgICAgLy8gdGhlbiB3ZSBjYW4gdGFrZSBhY3Rpb25cblxuICAgICAgICAgIGlmIChjeS5ib3hTZWxlY3Rpb25FbmFibGVkKCkgJiYgbXVsdFNlbEtleURvd24pIHtcbiAgICAgICAgICAgIC8vIHRoZW4gc2VsZWN0aW9uIG92ZXJyaWRlc1xuICAgICAgICAgICAgaWYgKGRvd24gJiYgZG93bi5ncmFiYmVkKCkpIHtcbiAgICAgICAgICAgICAgZnJlZURyYWdnZWRFbGVtZW50cyhkcmFnZ2VkRWxlbWVudHMpO1xuICAgICAgICAgICAgICBkb3duLmVtaXQoJ2ZyZWVvbicpO1xuICAgICAgICAgICAgICBkcmFnZ2VkRWxlbWVudHMuZW1pdCgnZnJlZScpO1xuICAgICAgICAgICAgICBpZiAoci5kcmFnRGF0YS5kaWREcmFnKSB7XG4gICAgICAgICAgICAgICAgZG93bi5lbWl0KCdkcmFnZnJlZW9uJyk7XG4gICAgICAgICAgICAgICAgZHJhZ2dlZEVsZW1lbnRzLmVtaXQoJ2RyYWdmcmVlJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdvSW50b0JveE1vZGUoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGRvd24gJiYgZG93bi5ncmFiYmVkKCkgJiYgci5ub2RlSXNEcmFnZ2FibGUoZG93bikpIHtcbiAgICAgICAgICAgIC8vIGRyYWcgbm9kZVxuICAgICAgICAgICAgdmFyIGp1c3RTdGFydGVkRHJhZyA9ICFyLmRyYWdEYXRhLmRpZERyYWc7XG4gICAgICAgICAgICBpZiAoanVzdFN0YXJ0ZWREcmFnKSB7XG4gICAgICAgICAgICAgIHIucmVkcmF3SGludCgnZWxlcycsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgci5kcmFnRGF0YS5kaWREcmFnID0gdHJ1ZTsgLy8gaW5kaWNhdGUgdGhhdCB3ZSBhY3R1YWxseSBkaWQgZHJhZyB0aGUgbm9kZVxuXG4gICAgICAgICAgICAvLyBub3csIGFkZCB0aGUgZWxlbWVudHMgdG8gdGhlIGRyYWcgbGF5ZXIgaWYgbm90IGRvbmUgYWxyZWFkeVxuICAgICAgICAgICAgaWYgKCFyLmhvdmVyRGF0YS5kcmFnZ2luZ0VsZXMpIHtcbiAgICAgICAgICAgICAgYWRkTm9kZXNUb0RyYWcoZHJhZ2dlZEVsZW1lbnRzLCB7XG4gICAgICAgICAgICAgICAgaW5EcmFnTGF5ZXI6IHRydWVcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdG90YWxTaGlmdCA9IHtcbiAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgeTogMFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChudW1iZXIkMShkaXNwWzBdKSAmJiBudW1iZXIkMShkaXNwWzFdKSkge1xuICAgICAgICAgICAgICB0b3RhbFNoaWZ0LnggKz0gZGlzcFswXTtcbiAgICAgICAgICAgICAgdG90YWxTaGlmdC55ICs9IGRpc3BbMV07XG4gICAgICAgICAgICAgIGlmIChqdXN0U3RhcnRlZERyYWcpIHtcbiAgICAgICAgICAgICAgICB2YXIgZHJhZ0RlbHRhID0gci5ob3ZlckRhdGEuZHJhZ0RlbHRhO1xuICAgICAgICAgICAgICAgIGlmIChkcmFnRGVsdGEgJiYgbnVtYmVyJDEoZHJhZ0RlbHRhWzBdKSAmJiBudW1iZXIkMShkcmFnRGVsdGFbMV0pKSB7XG4gICAgICAgICAgICAgICAgICB0b3RhbFNoaWZ0LnggKz0gZHJhZ0RlbHRhWzBdO1xuICAgICAgICAgICAgICAgICAgdG90YWxTaGlmdC55ICs9IGRyYWdEZWx0YVsxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHIuaG92ZXJEYXRhLmRyYWdnaW5nRWxlcyA9IHRydWU7XG4gICAgICAgICAgICBkcmFnZ2VkRWxlbWVudHMuc2lsZW50U2hpZnQodG90YWxTaGlmdCkuZW1pdCgncG9zaXRpb24gZHJhZycpO1xuICAgICAgICAgICAgci5yZWRyYXdIaW50KCdkcmFnJywgdHJ1ZSk7XG4gICAgICAgICAgICByLnJlZHJhdygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBvdGhlcndpc2Ugc2F2ZSBkcmFnIGRlbHRhIGZvciB3aGVuIHdlIGFjdHVhbGx5IHN0YXJ0IGRyYWdnaW5nIHNvIHRoZSByZWxhdGl2ZSBncmFiIHBvcyBpcyBjb25zdGFudFxuICAgICAgICAgIHVwZGF0ZURyYWdEZWx0YSgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIHByZXZlbnQgdGhlIGRyYWdnaW5nIGZyb20gdHJpZ2dlcmluZyB0ZXh0IHNlbGVjdGlvbiBvbiB0aGUgcGFnZVxuICAgICAgcHJldmVudERlZmF1bHQgPSB0cnVlO1xuICAgIH1cbiAgICBzZWxlY3RbMl0gPSBwb3NbMF07XG4gICAgc2VsZWN0WzNdID0gcG9zWzFdO1xuICAgIGlmIChwcmV2ZW50RGVmYXVsdCkge1xuICAgICAgaWYgKGUuc3RvcFByb3BhZ2F0aW9uKSBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgaWYgKGUucHJldmVudERlZmF1bHQpIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0sIGZhbHNlKTtcbiAgdmFyIGNsaWNrVGltZW91dCwgZGlkRG91YmxlQ2xpY2ssIHByZXZDbGlja1RpbWVTdGFtcDtcbiAgci5yZWdpc3RlckJpbmRpbmcoY29udGFpbmVyV2luZG93LCAnbW91c2V1cCcsIGZ1bmN0aW9uIG1vdXNldXBIYW5kbGVyKGUpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4gICAgLy8gZHVyaW5nIGxlZnQgbW91c2UgYnV0dG9uIGdlc3R1cmVzLCBpZ25vcmUgb3RoZXIgYnV0dG9uc1xuICAgIGlmIChyLmhvdmVyRGF0YS53aGljaCA9PT0gMSAmJiBlLndoaWNoICE9PSAxICYmIHIuaG92ZXJEYXRhLmNhcHR1cmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGNhcHR1cmUgPSByLmhvdmVyRGF0YS5jYXB0dXJlO1xuICAgIGlmICghY2FwdHVyZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByLmhvdmVyRGF0YS5jYXB0dXJlID0gZmFsc2U7XG4gICAgdmFyIGN5ID0gci5jeTtcbiAgICB2YXIgcG9zID0gci5wcm9qZWN0SW50b1ZpZXdwb3J0KGUuY2xpZW50WCwgZS5jbGllbnRZKTtcbiAgICB2YXIgc2VsZWN0ID0gci5zZWxlY3Rpb247XG4gICAgdmFyIG5lYXIgPSByLmZpbmROZWFyZXN0RWxlbWVudChwb3NbMF0sIHBvc1sxXSwgdHJ1ZSwgZmFsc2UpO1xuICAgIHZhciBkcmFnZ2VkRWxlbWVudHMgPSByLmRyYWdEYXRhLnBvc3NpYmxlRHJhZ0VsZW1lbnRzO1xuICAgIHZhciBkb3duID0gci5ob3ZlckRhdGEuZG93bjtcbiAgICB2YXIgbXVsdFNlbEtleURvd24gPSBpc011bHRTZWxLZXlEb3duKGUpO1xuICAgIGlmIChyLmRhdGEuYmdBY3RpdmVQb3Npc3Rpb24pIHtcbiAgICAgIHIucmVkcmF3SGludCgnc2VsZWN0JywgdHJ1ZSk7XG4gICAgICByLnJlZHJhdygpO1xuICAgIH1cbiAgICByLmhvdmVyRGF0YS50YXBob2xkQ2FuY2VsbGVkID0gdHJ1ZTtcbiAgICByLmRhdGEuYmdBY3RpdmVQb3Npc3Rpb24gPSB1bmRlZmluZWQ7IC8vIG5vdCBhY3RpdmUgYmcgbm93XG5cbiAgICBpZiAoZG93bikge1xuICAgICAgZG93bi51bmFjdGl2YXRlKCk7XG4gICAgfVxuICAgIGlmIChyLmhvdmVyRGF0YS53aGljaCA9PT0gMykge1xuICAgICAgdmFyIGN4dEV2dCA9IHtcbiAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgdHlwZTogJ2N4dHRhcGVuZCcsXG4gICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgeDogcG9zWzBdLFxuICAgICAgICAgIHk6IHBvc1sxXVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaWYgKGRvd24pIHtcbiAgICAgICAgZG93bi5lbWl0KGN4dEV2dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjeS5lbWl0KGN4dEV2dCk7XG4gICAgICB9XG4gICAgICBpZiAoIXIuaG92ZXJEYXRhLmN4dERyYWdnZWQpIHtcbiAgICAgICAgdmFyIGN4dFRhcCA9IHtcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBlLFxuICAgICAgICAgIHR5cGU6ICdjeHR0YXAnLFxuICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICB4OiBwb3NbMF0sXG4gICAgICAgICAgICB5OiBwb3NbMV1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGlmIChkb3duKSB7XG4gICAgICAgICAgZG93bi5lbWl0KGN4dFRhcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3kuZW1pdChjeHRUYXApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByLmhvdmVyRGF0YS5jeHREcmFnZ2VkID0gZmFsc2U7XG4gICAgICByLmhvdmVyRGF0YS53aGljaCA9IG51bGw7XG4gICAgfSBlbHNlIGlmIChyLmhvdmVyRGF0YS53aGljaCA9PT0gMSkge1xuICAgICAgdHJpZ2dlckV2ZW50cyhuZWFyLCBbJ21vdXNldXAnLCAndGFwZW5kJywgJ3Ztb3VzZXVwJ10sIGUsIHtcbiAgICAgICAgeDogcG9zWzBdLFxuICAgICAgICB5OiBwb3NbMV1cbiAgICAgIH0pO1xuICAgICAgaWYgKCFyLmRyYWdEYXRhLmRpZERyYWcgJiZcbiAgICAgIC8vIGRpZG4ndCBtb3ZlIGEgbm9kZSBhcm91bmRcbiAgICAgICFyLmhvdmVyRGF0YS5kcmFnZ2VkICYmXG4gICAgICAvLyBkaWRuJ3QgcGFuXG4gICAgICAhci5ob3ZlckRhdGEuc2VsZWN0aW5nICYmXG4gICAgICAvLyBub3QgYm94IHNlbGVjdGlvblxuICAgICAgIXIuaG92ZXJEYXRhLmlzT3ZlclRocmVzaG9sZERyYWcgLy8gZGlkbid0IG1vdmUgdG9vIG11Y2hcbiAgICAgICkge1xuICAgICAgICB0cmlnZ2VyRXZlbnRzKGRvd24sIFtcImNsaWNrXCIsIFwidGFwXCIsIFwidmNsaWNrXCJdLCBlLCB7XG4gICAgICAgICAgeDogcG9zWzBdLFxuICAgICAgICAgIHk6IHBvc1sxXVxuICAgICAgICB9KTtcbiAgICAgICAgZGlkRG91YmxlQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgaWYgKGUudGltZVN0YW1wIC0gcHJldkNsaWNrVGltZVN0YW1wIDw9IGN5Lm11bHRpQ2xpY2tEZWJvdW5jZVRpbWUoKSkge1xuICAgICAgICAgIGNsaWNrVGltZW91dCAmJiBjbGVhclRpbWVvdXQoY2xpY2tUaW1lb3V0KTtcbiAgICAgICAgICBkaWREb3VibGVDbGljayA9IHRydWU7XG4gICAgICAgICAgcHJldkNsaWNrVGltZVN0YW1wID0gbnVsbDtcbiAgICAgICAgICB0cmlnZ2VyRXZlbnRzKGRvd24sIFtcImRibGNsaWNrXCIsIFwiZGJsdGFwXCIsIFwidmRibGNsaWNrXCJdLCBlLCB7XG4gICAgICAgICAgICB4OiBwb3NbMF0sXG4gICAgICAgICAgICB5OiBwb3NbMV1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjbGlja1RpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChkaWREb3VibGVDbGljaykgcmV0dXJuO1xuICAgICAgICAgICAgdHJpZ2dlckV2ZW50cyhkb3duLCBbXCJvbmVjbGlja1wiLCBcIm9uZXRhcFwiLCBcInZvbmVjbGlja1wiXSwgZSwge1xuICAgICAgICAgICAgICB4OiBwb3NbMF0sXG4gICAgICAgICAgICAgIHk6IHBvc1sxXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSwgY3kubXVsdGlDbGlja0RlYm91bmNlVGltZSgpKTtcbiAgICAgICAgICBwcmV2Q2xpY2tUaW1lU3RhbXAgPSBlLnRpbWVTdGFtcDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBEZXNlbGVjdCBhbGwgZWxlbWVudHMgaWYgbm90aGluZyBpcyBjdXJyZW50bHkgdW5kZXIgdGhlIG1vdXNlIGN1cnNvciBhbmQgd2UgYXJlbid0IGRyYWdnaW5nIHNvbWV0aGluZ1xuICAgICAgaWYgKGRvd24gPT0gbnVsbCAvLyBub3QgbW91c2Vkb3duIG9uIG5vZGVcbiAgICAgICYmICFyLmRyYWdEYXRhLmRpZERyYWcgLy8gZGlkbid0IG1vdmUgdGhlIG5vZGUgYXJvdW5kXG4gICAgICAmJiAhci5ob3ZlckRhdGEuc2VsZWN0aW5nIC8vIG5vdCBib3ggc2VsZWN0aW9uXG4gICAgICAmJiAhci5ob3ZlckRhdGEuZHJhZ2dlZCAvLyBkaWRuJ3QgcGFuXG4gICAgICAmJiAhaXNNdWx0U2VsS2V5RG93bihlKSkge1xuICAgICAgICBjeS4kKGlzU2VsZWN0ZWQpLnVuc2VsZWN0KFsndGFwdW5zZWxlY3QnXSk7XG4gICAgICAgIGlmIChkcmFnZ2VkRWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHIucmVkcmF3SGludCgnZWxlcycsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHIuZHJhZ0RhdGEucG9zc2libGVEcmFnRWxlbWVudHMgPSBkcmFnZ2VkRWxlbWVudHMgPSBjeS5jb2xsZWN0aW9uKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNpbmdsZSBzZWxlY3Rpb25cbiAgICAgIGlmIChuZWFyID09IGRvd24gJiYgIXIuZHJhZ0RhdGEuZGlkRHJhZyAmJiAhci5ob3ZlckRhdGEuc2VsZWN0aW5nKSB7XG4gICAgICAgIGlmIChuZWFyICE9IG51bGwgJiYgbmVhci5fcHJpdmF0ZS5zZWxlY3RhYmxlKSB7XG4gICAgICAgICAgaWYgKHIuaG92ZXJEYXRhLmRyYWdnaW5nKSA7IGVsc2UgaWYgKGN5LnNlbGVjdGlvblR5cGUoKSA9PT0gJ2FkZGl0aXZlJyB8fCBtdWx0U2VsS2V5RG93bikge1xuICAgICAgICAgICAgaWYgKG5lYXIuc2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgICBuZWFyLnVuc2VsZWN0KFsndGFwdW5zZWxlY3QnXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBuZWFyLnNlbGVjdChbJ3RhcHNlbGVjdCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFtdWx0U2VsS2V5RG93bikge1xuICAgICAgICAgICAgICBjeS4kKGlzU2VsZWN0ZWQpLnVubWVyZ2UobmVhcikudW5zZWxlY3QoWyd0YXB1bnNlbGVjdCddKTtcbiAgICAgICAgICAgICAgbmVhci5zZWxlY3QoWyd0YXBzZWxlY3QnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHIucmVkcmF3SGludCgnZWxlcycsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoci5ob3ZlckRhdGEuc2VsZWN0aW5nKSB7XG4gICAgICAgIHZhciBib3ggPSBjeS5jb2xsZWN0aW9uKHIuZ2V0QWxsSW5Cb3goc2VsZWN0WzBdLCBzZWxlY3RbMV0sIHNlbGVjdFsyXSwgc2VsZWN0WzNdKSk7XG4gICAgICAgIHIucmVkcmF3SGludCgnc2VsZWN0JywgdHJ1ZSk7XG4gICAgICAgIGlmIChib3gubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHIucmVkcmF3SGludCgnZWxlcycsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGN5LmVtaXQoe1xuICAgICAgICAgIHR5cGU6ICdib3hlbmQnLFxuICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGUsXG4gICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgIHg6IHBvc1swXSxcbiAgICAgICAgICAgIHk6IHBvc1sxXVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBlbGVXb3VsZEJlU2VsZWN0ZWQgPSBmdW5jdGlvbiBlbGVXb3VsZEJlU2VsZWN0ZWQoZWxlKSB7XG4gICAgICAgICAgcmV0dXJuIGVsZS5zZWxlY3RhYmxlKCkgJiYgIWVsZS5zZWxlY3RlZCgpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoY3kuc2VsZWN0aW9uVHlwZSgpID09PSAnYWRkaXRpdmUnKSB7XG4gICAgICAgICAgYm94LmVtaXQoJ2JveCcpLnN0ZEZpbHRlcihlbGVXb3VsZEJlU2VsZWN0ZWQpLnNlbGVjdCgpLmVtaXQoJ2JveHNlbGVjdCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghbXVsdFNlbEtleURvd24pIHtcbiAgICAgICAgICAgIGN5LiQoaXNTZWxlY3RlZCkudW5tZXJnZShib3gpLnVuc2VsZWN0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJveC5lbWl0KCdib3gnKS5zdGRGaWx0ZXIoZWxlV291bGRCZVNlbGVjdGVkKS5zZWxlY3QoKS5lbWl0KCdib3hzZWxlY3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFsd2F5cyBuZWVkIHJlZHJhdyBpbiBjYXNlIGVsZXMgdW5zZWxlY3RhYmxlXG4gICAgICAgIHIucmVkcmF3KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIENhbmNlbCBkcmFnIHBhblxuICAgICAgaWYgKHIuaG92ZXJEYXRhLmRyYWdnaW5nKSB7XG4gICAgICAgIHIuaG92ZXJEYXRhLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgICAgIHIucmVkcmF3SGludCgnc2VsZWN0JywgdHJ1ZSk7XG4gICAgICAgIHIucmVkcmF3SGludCgnZWxlcycsIHRydWUpO1xuICAgICAgICByLnJlZHJhdygpO1xuICAgICAgfVxuICAgICAgaWYgKCFzZWxlY3RbNF0pIHtcbiAgICAgICAgci5yZWRyYXdIaW50KCdkcmFnJywgdHJ1ZSk7XG4gICAgICAgIHIucmVkcmF3SGludCgnZWxlcycsIHRydWUpO1xuICAgICAgICB2YXIgZG93bldhc0dyYWJiZWQgPSBkb3duICYmIGRvd24uZ3JhYmJlZCgpO1xuICAgICAgICBmcmVlRHJhZ2dlZEVsZW1lbnRzKGRyYWdnZWRFbGVtZW50cyk7XG4gICAgICAgIGlmIChkb3duV2FzR3JhYmJlZCkge1xuICAgICAgICAgIGRvd24uZW1pdCgnZnJlZW9uJyk7XG4gICAgICAgICAgZHJhZ2dlZEVsZW1lbnRzLmVtaXQoJ2ZyZWUnKTtcbiAgICAgICAgICBpZiAoci5kcmFnRGF0YS5kaWREcmFnKSB7XG4gICAgICAgICAgICBkb3duLmVtaXQoJ2RyYWdmcmVlb24nKTtcbiAgICAgICAgICAgIGRyYWdnZWRFbGVtZW50cy5lbWl0KCdkcmFnZnJlZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gLy8gZWxzZSBub3QgcmlnaHQgbW91c2VcblxuICAgIHNlbGVjdFs0XSA9IDA7XG4gICAgci5ob3ZlckRhdGEuZG93biA9IG51bGw7XG4gICAgci5ob3ZlckRhdGEuY3h0U3RhcnRlZCA9IGZhbHNlO1xuICAgIHIuaG92ZXJEYXRhLmRyYWdnaW5nRWxlcyA9IGZhbHNlO1xuICAgIHIuaG92ZXJEYXRhLnNlbGVjdGluZyA9IGZhbHNlO1xuICAgIHIuaG92ZXJEYXRhLmlzT3ZlclRocmVzaG9sZERyYWcgPSBmYWxzZTtcbiAgICByLmRyYWdEYXRhLmRpZERyYWcgPSBmYWxzZTtcbiAgICByLmhvdmVyRGF0YS5kcmFnZ2VkID0gZmFsc2U7XG4gICAgci5ob3ZlckRhdGEuZHJhZ0RlbHRhID0gW107XG4gICAgci5ob3ZlckRhdGEubWRvd25Qb3MgPSBudWxsO1xuICAgIHIuaG92ZXJEYXRhLm1kb3duR1BvcyA9IG51bGw7XG4gICAgci5ob3ZlckRhdGEud2hpY2ggPSBudWxsO1xuICB9LCBmYWxzZSk7XG4gIHZhciB3aGVlbEhhbmRsZXIgPSBmdW5jdGlvbiB3aGVlbEhhbmRsZXIoZSkge1xuICAgIGlmIChyLnNjcm9sbGluZ1BhZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIHdoaWxlIHNjcm9sbGluZywgaWdub3JlIHdoZWVsLXRvLXpvb21cblxuICAgIHZhciBjeSA9IHIuY3k7XG4gICAgdmFyIHpvb20gPSBjeS56b29tKCk7XG4gICAgdmFyIHBhbiA9IGN5LnBhbigpO1xuICAgIHZhciBwb3MgPSByLnByb2plY3RJbnRvVmlld3BvcnQoZS5jbGllbnRYLCBlLmNsaWVudFkpO1xuICAgIHZhciBycG9zID0gW3Bvc1swXSAqIHpvb20gKyBwYW4ueCwgcG9zWzFdICogem9vbSArIHBhbi55XTtcbiAgICBpZiAoci5ob3ZlckRhdGEuZHJhZ2dpbmdFbGVzIHx8IHIuaG92ZXJEYXRhLmRyYWdnaW5nIHx8IHIuaG92ZXJEYXRhLmN4dFN0YXJ0ZWQgfHwgaW5Cb3hTZWxlY3Rpb24oKSkge1xuICAgICAgLy8gaWYgcGFuIGRyYWdnaW5nIG9yIGN4dCBkcmFnZ2luZywgd2hlZWwgbW92ZW1lbnRzIG1ha2Ugbm8gem9vbVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3kucGFubmluZ0VuYWJsZWQoKSAmJiBjeS51c2VyUGFubmluZ0VuYWJsZWQoKSAmJiBjeS56b29taW5nRW5hYmxlZCgpICYmIGN5LnVzZXJab29taW5nRW5hYmxlZCgpKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICByLmRhdGEud2hlZWxab29taW5nID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChyLmRhdGEud2hlZWxUaW1lb3V0KTtcbiAgICAgIHIuZGF0YS53aGVlbFRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgci5kYXRhLndoZWVsWm9vbWluZyA9IGZhbHNlO1xuICAgICAgICByLnJlZHJhd0hpbnQoJ2VsZXMnLCB0cnVlKTtcbiAgICAgICAgci5yZWRyYXcoKTtcbiAgICAgIH0sIDE1MCk7XG4gICAgICB2YXIgZGlmZjtcbiAgICAgIGlmIChlLmRlbHRhWSAhPSBudWxsKSB7XG4gICAgICAgIGRpZmYgPSBlLmRlbHRhWSAvIC0yNTA7XG4gICAgICB9IGVsc2UgaWYgKGUud2hlZWxEZWx0YVkgIT0gbnVsbCkge1xuICAgICAgICBkaWZmID0gZS53aGVlbERlbHRhWSAvIDEwMDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaWZmID0gZS53aGVlbERlbHRhIC8gMTAwMDtcbiAgICAgIH1cbiAgICAgIGRpZmYgPSBkaWZmICogci53aGVlbFNlbnNpdGl2aXR5O1xuICAgICAgdmFyIG5lZWRzV2hlZWxGaXggPSBlLmRlbHRhTW9kZSA9PT0gMTtcbiAgICAgIGlmIChuZWVkc1doZWVsRml4KSB7XG4gICAgICAgIC8vIGZpeGVzIHNsb3cgd2hlZWwgZXZlbnRzIG9uIGZmL2xpbnV4IGFuZCBmZi93aW5kb3dzXG4gICAgICAgIGRpZmYgKj0gMzM7XG4gICAgICB9XG4gICAgICB2YXIgbmV3Wm9vbSA9IGN5Lnpvb20oKSAqIE1hdGgucG93KDEwLCBkaWZmKTtcbiAgICAgIGlmIChlLnR5cGUgPT09ICdnZXN0dXJlY2hhbmdlJykge1xuICAgICAgICBuZXdab29tID0gci5nZXN0dXJlU3RhcnRab29tICogZS5zY2FsZTtcbiAgICAgIH1cbiAgICAgIGN5Lnpvb20oe1xuICAgICAgICBsZXZlbDogbmV3Wm9vbSxcbiAgICAgICAgcmVuZGVyZWRQb3NpdGlvbjoge1xuICAgICAgICAgIHg6IHJwb3NbMF0sXG4gICAgICAgICAgeTogcnBvc1sxXVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGN5LmVtaXQoZS50eXBlID09PSAnZ2VzdHVyZWNoYW5nZScgPyAncGluY2h6b29tJyA6ICdzY3JvbGx6b29tJyk7XG4gICAgfVxuICB9O1xuXG4gIC8vIEZ1bmN0aW9ucyB0byBoZWxwIHdpdGggd2hldGhlciBtb3VzZSB3aGVlbCBzaG91bGQgdHJpZ2dlciB6b29taW5nXG4gIC8vIC0tXG4gIHIucmVnaXN0ZXJCaW5kaW5nKHIuY29udGFpbmVyLCAnd2hlZWwnLCB3aGVlbEhhbmRsZXIsIHRydWUpO1xuXG4gIC8vIGRpc2FibGUgbm9uc3RhbmRhcmQgd2hlZWwgZXZlbnRzXG4gIC8vIHIucmVnaXN0ZXJCaW5kaW5nKHIuY29udGFpbmVyLCAnbW91c2V3aGVlbCcsIHdoZWVsSGFuZGxlciwgdHJ1ZSk7XG4gIC8vIHIucmVnaXN0ZXJCaW5kaW5nKHIuY29udGFpbmVyLCAnRE9NTW91c2VTY3JvbGwnLCB3aGVlbEhhbmRsZXIsIHRydWUpO1xuICAvLyByLnJlZ2lzdGVyQmluZGluZyhyLmNvbnRhaW5lciwgJ01vek1vdXNlUGl4ZWxTY3JvbGwnLCB3aGVlbEhhbmRsZXIsIHRydWUpOyAvLyBvbGRlciBmaXJlZm94XG5cbiAgci5yZWdpc3RlckJpbmRpbmcoY29udGFpbmVyV2luZG93LCAnc2Nyb2xsJywgZnVuY3Rpb24gc2Nyb2xsSGFuZGxlcihlKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHIuc2Nyb2xsaW5nUGFnZSA9IHRydWU7XG4gICAgY2xlYXJUaW1lb3V0KHIuc2Nyb2xsaW5nUGFnZVRpbWVvdXQpO1xuICAgIHIuc2Nyb2xsaW5nUGFnZVRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHIuc2Nyb2xsaW5nUGFnZSA9IGZhbHNlO1xuICAgIH0sIDI1MCk7XG4gIH0sIHRydWUpO1xuXG4gIC8vIGRlc2t0b3Agc2FmYXJpIHBpbmNoIHRvIHpvb20gc3RhcnRcbiAgci5yZWdpc3RlckJpbmRpbmcoci5jb250YWluZXIsICdnZXN0dXJlc3RhcnQnLCBmdW5jdGlvbiBnZXN0dXJlU3RhcnRIYW5kbGVyKGUpIHtcbiAgICByLmdlc3R1cmVTdGFydFpvb20gPSByLmN5Lnpvb20oKTtcbiAgICBpZiAoIXIuaGFzVG91Y2hTdGFydGVkKSB7XG4gICAgICAvLyBkb24ndCBhZmZlY3QgdG91Y2ggZGV2aWNlcyBsaWtlIGlwaG9uZVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfSwgdHJ1ZSk7XG4gIHIucmVnaXN0ZXJCaW5kaW5nKHIuY29udGFpbmVyLCAnZ2VzdHVyZWNoYW5nZScsIGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKCFyLmhhc1RvdWNoU3RhcnRlZCkge1xuICAgICAgLy8gZG9uJ3QgYWZmZWN0IHRvdWNoIGRldmljZXMgbGlrZSBpcGhvbmVcbiAgICAgIHdoZWVsSGFuZGxlcihlKTtcbiAgICB9XG4gIH0sIHRydWUpO1xuXG4gIC8vIEZ1bmN0aW9ucyB0byBoZWxwIHdpdGggaGFuZGxpbmcgbW91c2VvdXQvbW91c2VvdmVyIG9uIHRoZSBDeXRvc2NhcGUgY29udGFpbmVyXG4gIC8vIEhhbmRsZSBtb3VzZW91dCBvbiBDeXRvc2NhcGUgY29udGFpbmVyXG4gIHIucmVnaXN0ZXJCaW5kaW5nKHIuY29udGFpbmVyLCAnbW91c2VvdXQnLCBmdW5jdGlvbiBtb3VzZU91dEhhbmRsZXIoZSkge1xuICAgIHZhciBwb3MgPSByLnByb2plY3RJbnRvVmlld3BvcnQoZS5jbGllbnRYLCBlLmNsaWVudFkpO1xuICAgIHIuY3kuZW1pdCh7XG4gICAgICBvcmlnaW5hbEV2ZW50OiBlLFxuICAgICAgdHlwZTogJ21vdXNlb3V0JyxcbiAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgIHg6IHBvc1swXSxcbiAgICAgICAgeTogcG9zWzFdXG4gICAgICB9XG4gICAgfSk7XG4gIH0sIGZhbHNlKTtcbiAgci5yZWdpc3RlckJpbmRpbmcoci5jb250YWluZXIsICdtb3VzZW92ZXInLCBmdW5jdGlvbiBtb3VzZU92ZXJIYW5kbGVyKGUpIHtcbiAgICB2YXIgcG9zID0gci5wcm9qZWN0SW50b1ZpZXdwb3J0KGUuY2xpZW50WCwgZS5jbGllbnRZKTtcbiAgICByLmN5LmVtaXQoe1xuICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgIHR5cGU6ICdtb3VzZW92ZXInLFxuICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgeDogcG9zWzBdLFxuICAgICAgICB5OiBwb3NbMV1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgZmFsc2UpO1xuICB2YXIgZjF4MSwgZjF5MSwgZjJ4MSwgZjJ5MTsgLy8gc3RhcnRpbmcgcG9pbnRzIGZvciBwaW5jaC10by16b29tXG4gIHZhciBkaXN0YW5jZTEsIGRpc3RhbmNlMVNxOyAvLyBpbml0aWFsIGRpc3RhbmNlIGJldHdlZW4gZmluZ2VyIDEgYW5kIGZpbmdlciAyIGZvciBwaW5jaC10by16b29tXG4gIHZhciBjZW50ZXIxLCBtb2RlbENlbnRlcjE7IC8vIGNlbnRlciBwb2ludCBvbiBzdGFydCBwaW5jaCB0byB6b29tXG4gIHZhciBvZmZzZXRMZWZ0LCBvZmZzZXRUb3A7XG4gIHZhciBjb250YWluZXJXaWR0aCwgY29udGFpbmVySGVpZ2h0O1xuICB2YXIgdHdvRmluZ2Vyc1N0YXJ0SW5zaWRlO1xuICB2YXIgZGlzdGFuY2UgPSBmdW5jdGlvbiBkaXN0YW5jZSh4MSwgeTEsIHgyLCB5Mikge1xuICAgIHJldHVybiBNYXRoLnNxcnQoKHgyIC0geDEpICogKHgyIC0geDEpICsgKHkyIC0geTEpICogKHkyIC0geTEpKTtcbiAgfTtcbiAgdmFyIGRpc3RhbmNlU3EgPSBmdW5jdGlvbiBkaXN0YW5jZVNxKHgxLCB5MSwgeDIsIHkyKSB7XG4gICAgcmV0dXJuICh4MiAtIHgxKSAqICh4MiAtIHgxKSArICh5MiAtIHkxKSAqICh5MiAtIHkxKTtcbiAgfTtcbiAgdmFyIHRvdWNoc3RhcnRIYW5kbGVyO1xuICByLnJlZ2lzdGVyQmluZGluZyhyLmNvbnRhaW5lciwgJ3RvdWNoc3RhcnQnLCB0b3VjaHN0YXJ0SGFuZGxlciA9IGZ1bmN0aW9uIHRvdWNoc3RhcnRIYW5kbGVyKGUpIHtcbiAgICByLmhhc1RvdWNoU3RhcnRlZCA9IHRydWU7XG4gICAgaWYgKCFldmVudEluQ29udGFpbmVyKGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGJsdXJBY3RpdmVEb21FbGVtZW50KCk7XG4gICAgci50b3VjaERhdGEuY2FwdHVyZSA9IHRydWU7XG4gICAgci5kYXRhLmJnQWN0aXZlUG9zaXN0aW9uID0gdW5kZWZpbmVkO1xuICAgIHZhciBjeSA9IHIuY3k7XG4gICAgdmFyIG5vdyA9IHIudG91Y2hEYXRhLm5vdztcbiAgICB2YXIgZWFybGllciA9IHIudG91Y2hEYXRhLmVhcmxpZXI7XG4gICAgaWYgKGUudG91Y2hlc1swXSkge1xuICAgICAgdmFyIHBvcyA9IHIucHJvamVjdEludG9WaWV3cG9ydChlLnRvdWNoZXNbMF0uY2xpZW50WCwgZS50b3VjaGVzWzBdLmNsaWVudFkpO1xuICAgICAgbm93WzBdID0gcG9zWzBdO1xuICAgICAgbm93WzFdID0gcG9zWzFdO1xuICAgIH1cbiAgICBpZiAoZS50b3VjaGVzWzFdKSB7XG4gICAgICB2YXIgcG9zID0gci5wcm9qZWN0SW50b1ZpZXdwb3J0KGUudG91Y2hlc1sxXS5jbGllbnRYLCBlLnRvdWNoZXNbMV0uY2xpZW50WSk7XG4gICAgICBub3dbMl0gPSBwb3NbMF07XG4gICAgICBub3dbM10gPSBwb3NbMV07XG4gICAgfVxuICAgIGlmIChlLnRvdWNoZXNbMl0pIHtcbiAgICAgIHZhciBwb3MgPSByLnByb2plY3RJbnRvVmlld3BvcnQoZS50b3VjaGVzWzJdLmNsaWVudFgsIGUudG91Y2hlc1syXS5jbGllbnRZKTtcbiAgICAgIG5vd1s0XSA9IHBvc1swXTtcbiAgICAgIG5vd1s1XSA9IHBvc1sxXTtcbiAgICB9XG5cbiAgICAvLyByZWNvcmQgc3RhcnRpbmcgcG9pbnRzIGZvciBwaW5jaC10by16b29tXG4gICAgaWYgKGUudG91Y2hlc1sxXSkge1xuICAgICAgci50b3VjaERhdGEuc2luZ2xlVG91Y2hNb3ZlZCA9IHRydWU7XG4gICAgICBmcmVlRHJhZ2dlZEVsZW1lbnRzKHIuZHJhZ0RhdGEudG91Y2hEcmFnRWxlcyk7XG4gICAgICB2YXIgb2Zmc2V0cyA9IHIuZmluZENvbnRhaW5lckNsaWVudENvb3JkcygpO1xuICAgICAgb2Zmc2V0TGVmdCA9IG9mZnNldHNbMF07XG4gICAgICBvZmZzZXRUb3AgPSBvZmZzZXRzWzFdO1xuICAgICAgY29udGFpbmVyV2lkdGggPSBvZmZzZXRzWzJdO1xuICAgICAgY29udGFpbmVySGVpZ2h0ID0gb2Zmc2V0c1szXTtcbiAgICAgIGYxeDEgPSBlLnRvdWNoZXNbMF0uY2xpZW50WCAtIG9mZnNldExlZnQ7XG4gICAgICBmMXkxID0gZS50b3VjaGVzWzBdLmNsaWVudFkgLSBvZmZzZXRUb3A7XG4gICAgICBmMngxID0gZS50b3VjaGVzWzFdLmNsaWVudFggLSBvZmZzZXRMZWZ0O1xuICAgICAgZjJ5MSA9IGUudG91Y2hlc1sxXS5jbGllbnRZIC0gb2Zmc2V0VG9wO1xuICAgICAgdHdvRmluZ2Vyc1N0YXJ0SW5zaWRlID0gMCA8PSBmMXgxICYmIGYxeDEgPD0gY29udGFpbmVyV2lkdGggJiYgMCA8PSBmMngxICYmIGYyeDEgPD0gY29udGFpbmVyV2lkdGggJiYgMCA8PSBmMXkxICYmIGYxeTEgPD0gY29udGFpbmVySGVpZ2h0ICYmIDAgPD0gZjJ5MSAmJiBmMnkxIDw9IGNvbnRhaW5lckhlaWdodDtcbiAgICAgIHZhciBwYW4gPSBjeS5wYW4oKTtcbiAgICAgIHZhciB6b29tID0gY3kuem9vbSgpO1xuICAgICAgZGlzdGFuY2UxID0gZGlzdGFuY2UoZjF4MSwgZjF5MSwgZjJ4MSwgZjJ5MSk7XG4gICAgICBkaXN0YW5jZTFTcSA9IGRpc3RhbmNlU3EoZjF4MSwgZjF5MSwgZjJ4MSwgZjJ5MSk7XG4gICAgICBjZW50ZXIxID0gWyhmMXgxICsgZjJ4MSkgLyAyLCAoZjF5MSArIGYyeTEpIC8gMl07XG4gICAgICBtb2RlbENlbnRlcjEgPSBbKGNlbnRlcjFbMF0gLSBwYW4ueCkgLyB6b29tLCAoY2VudGVyMVsxXSAtIHBhbi55KSAvIHpvb21dO1xuXG4gICAgICAvLyBjb25zaWRlciBjb250ZXh0IHRhcFxuICAgICAgdmFyIGN4dERpc3RUaHJlc2hvbGQgPSAyMDA7XG4gICAgICB2YXIgY3h0RGlzdFRocmVzaG9sZFNxID0gY3h0RGlzdFRocmVzaG9sZCAqIGN4dERpc3RUaHJlc2hvbGQ7XG4gICAgICBpZiAoZGlzdGFuY2UxU3EgPCBjeHREaXN0VGhyZXNob2xkU3EgJiYgIWUudG91Y2hlc1syXSkge1xuICAgICAgICB2YXIgbmVhcjEgPSByLmZpbmROZWFyZXN0RWxlbWVudChub3dbMF0sIG5vd1sxXSwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIHZhciBuZWFyMiA9IHIuZmluZE5lYXJlc3RFbGVtZW50KG5vd1syXSwgbm93WzNdLCB0cnVlLCB0cnVlKTtcbiAgICAgICAgaWYgKG5lYXIxICYmIG5lYXIxLmlzTm9kZSgpKSB7XG4gICAgICAgICAgbmVhcjEuYWN0aXZhdGUoKS5lbWl0KHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGUsXG4gICAgICAgICAgICB0eXBlOiAnY3h0dGFwc3RhcnQnLFxuICAgICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgICAgeDogbm93WzBdLFxuICAgICAgICAgICAgICB5OiBub3dbMV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByLnRvdWNoRGF0YS5zdGFydCA9IG5lYXIxO1xuICAgICAgICB9IGVsc2UgaWYgKG5lYXIyICYmIG5lYXIyLmlzTm9kZSgpKSB7XG4gICAgICAgICAgbmVhcjIuYWN0aXZhdGUoKS5lbWl0KHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGUsXG4gICAgICAgICAgICB0eXBlOiAnY3h0dGFwc3RhcnQnLFxuICAgICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgICAgeDogbm93WzBdLFxuICAgICAgICAgICAgICB5OiBub3dbMV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByLnRvdWNoRGF0YS5zdGFydCA9IG5lYXIyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN5LmVtaXQoe1xuICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgICAgIHR5cGU6ICdjeHR0YXBzdGFydCcsXG4gICAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgICB4OiBub3dbMF0sXG4gICAgICAgICAgICAgIHk6IG5vd1sxXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyLnRvdWNoRGF0YS5zdGFydCkge1xuICAgICAgICAgIHIudG91Y2hEYXRhLnN0YXJ0Ll9wcml2YXRlLmdyYWJiZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByLnRvdWNoRGF0YS5jeHQgPSB0cnVlO1xuICAgICAgICByLnRvdWNoRGF0YS5jeHREcmFnZ2VkID0gZmFsc2U7XG4gICAgICAgIHIuZGF0YS5iZ0FjdGl2ZVBvc2lzdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgci5yZWRyYXcoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZS50b3VjaGVzWzJdKSB7XG4gICAgICAvLyBpZ25vcmVcblxuICAgICAgLy8gc2FmYXJpIG9uIGlvcyBwYW5zIHRoZSBwYWdlIG90aGVyd2lzZSAobm9ybWFsbHkgeW91IHNob3VsZCBiZSBhYmxlIHRvIHByZXZlbnRkZWZhdWx0IG9uIHRvdWNobW92ZS4uLilcbiAgICAgIGlmIChjeS5ib3hTZWxlY3Rpb25FbmFibGVkKCkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZS50b3VjaGVzWzFdKSA7IGVsc2UgaWYgKGUudG91Y2hlc1swXSkge1xuICAgICAgdmFyIG5lYXJzID0gci5maW5kTmVhcmVzdEVsZW1lbnRzKG5vd1swXSwgbm93WzFdLCB0cnVlLCB0cnVlKTtcbiAgICAgIHZhciBuZWFyID0gbmVhcnNbMF07XG4gICAgICBpZiAobmVhciAhPSBudWxsKSB7XG4gICAgICAgIG5lYXIuYWN0aXZhdGUoKTtcbiAgICAgICAgci50b3VjaERhdGEuc3RhcnQgPSBuZWFyO1xuICAgICAgICByLnRvdWNoRGF0YS5zdGFydHMgPSBuZWFycztcbiAgICAgICAgaWYgKHIubm9kZUlzR3JhYmJhYmxlKG5lYXIpKSB7XG4gICAgICAgICAgdmFyIGRyYWdnZWRFbGVzID0gci5kcmFnRGF0YS50b3VjaERyYWdFbGVzID0gY3kuY29sbGVjdGlvbigpO1xuICAgICAgICAgIHZhciBzZWxlY3RlZE5vZGVzID0gbnVsbDtcbiAgICAgICAgICByLnJlZHJhd0hpbnQoJ2VsZXMnLCB0cnVlKTtcbiAgICAgICAgICByLnJlZHJhd0hpbnQoJ2RyYWcnLCB0cnVlKTtcbiAgICAgICAgICBpZiAobmVhci5zZWxlY3RlZCgpKSB7XG4gICAgICAgICAgICAvLyByZXNldCBkcmFnIGVsZW1lbnRzLCBzaW5jZSBuZWFyIHdpbGwgYmUgYWRkZWQgYWdhaW5cblxuICAgICAgICAgICAgc2VsZWN0ZWROb2RlcyA9IGN5LiQoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgICAgICAgICByZXR1cm4gZWxlLnNlbGVjdGVkKCkgJiYgci5ub2RlSXNHcmFiYmFibGUoZWxlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYWRkTm9kZXNUb0RyYWcoc2VsZWN0ZWROb2Rlcywge1xuICAgICAgICAgICAgICBhZGRUb0xpc3Q6IGRyYWdnZWRFbGVzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWRkTm9kZVRvRHJhZyhuZWFyLCB7XG4gICAgICAgICAgICAgIGFkZFRvTGlzdDogZHJhZ2dlZEVsZXNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXRHcmFiVGFyZ2V0KG5lYXIpO1xuICAgICAgICAgIHZhciBtYWtlRXZlbnQgPSBmdW5jdGlvbiBtYWtlRXZlbnQodHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgICAgICB4OiBub3dbMF0sXG4gICAgICAgICAgICAgICAgeTogbm93WzFdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfTtcbiAgICAgICAgICBuZWFyLmVtaXQobWFrZUV2ZW50KCdncmFib24nKSk7XG4gICAgICAgICAgaWYgKHNlbGVjdGVkTm9kZXMpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkTm9kZXMuZm9yRWFjaChmdW5jdGlvbiAobikge1xuICAgICAgICAgICAgICBuLmVtaXQobWFrZUV2ZW50KCdncmFiJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5lYXIuZW1pdChtYWtlRXZlbnQoJ2dyYWInKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0cmlnZ2VyRXZlbnRzKG5lYXIsIFsndG91Y2hzdGFydCcsICd0YXBzdGFydCcsICd2bW91c2Vkb3duJ10sIGUsIHtcbiAgICAgICAgeDogbm93WzBdLFxuICAgICAgICB5OiBub3dbMV1cbiAgICAgIH0pO1xuICAgICAgaWYgKG5lYXIgPT0gbnVsbCkge1xuICAgICAgICByLmRhdGEuYmdBY3RpdmVQb3Npc3Rpb24gPSB7XG4gICAgICAgICAgeDogcG9zWzBdLFxuICAgICAgICAgIHk6IHBvc1sxXVxuICAgICAgICB9O1xuICAgICAgICByLnJlZHJhd0hpbnQoJ3NlbGVjdCcsIHRydWUpO1xuICAgICAgICByLnJlZHJhdygpO1xuICAgICAgfVxuXG4gICAgICAvLyBUYXAsIHRhcGhvbGRcbiAgICAgIC8vIC0tLS0tXG5cbiAgICAgIHIudG91Y2hEYXRhLnNpbmdsZVRvdWNoTW92ZWQgPSBmYWxzZTtcbiAgICAgIHIudG91Y2hEYXRhLnNpbmdsZVRvdWNoU3RhcnRUaW1lID0gK25ldyBEYXRlKCk7XG4gICAgICBjbGVhclRpbWVvdXQoci50b3VjaERhdGEudGFwaG9sZFRpbWVvdXQpO1xuICAgICAgci50b3VjaERhdGEudGFwaG9sZFRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHIudG91Y2hEYXRhLnNpbmdsZVRvdWNoTW92ZWQgPT09IGZhbHNlICYmICFyLnBpbmNoaW5nIC8vIGlmIHBpbmNoaW5nLCB0aGVuIHRhcGhvbGQgdW5zZWxlY3Qgc2hvdWxkbid0IHRha2UgZWZmZWN0XG4gICAgICAgICYmICFyLnRvdWNoRGF0YS5zZWxlY3RpbmcgLy8gYm94IHNlbGVjdGlvbiBzaG91bGRuJ3QgYWxsb3cgdGFwaG9sZCB0aHJvdWdoXG4gICAgICAgICkge1xuICAgICAgICAgIHRyaWdnZXJFdmVudHMoci50b3VjaERhdGEuc3RhcnQsIFsndGFwaG9sZCddLCBlLCB7XG4gICAgICAgICAgICB4OiBub3dbMF0sXG4gICAgICAgICAgICB5OiBub3dbMV1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSwgci50YXBob2xkRHVyYXRpb24pO1xuICAgIH1cbiAgICBpZiAoZS50b3VjaGVzLmxlbmd0aCA+PSAxKSB7XG4gICAgICB2YXIgc1BvcyA9IHIudG91Y2hEYXRhLnN0YXJ0UG9zaXRpb24gPSBbbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF07XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vdy5sZW5ndGg7IGkrKykge1xuICAgICAgICBzUG9zW2ldID0gZWFybGllcltpXSA9IG5vd1tpXTtcbiAgICAgIH1cbiAgICAgIHZhciB0b3VjaDAgPSBlLnRvdWNoZXNbMF07XG4gICAgICByLnRvdWNoRGF0YS5zdGFydEdQb3NpdGlvbiA9IFt0b3VjaDAuY2xpZW50WCwgdG91Y2gwLmNsaWVudFldO1xuICAgIH1cbiAgfSwgZmFsc2UpO1xuICB2YXIgdG91Y2htb3ZlSGFuZGxlcjtcbiAgci5yZWdpc3RlckJpbmRpbmcoY29udGFpbmVyV2luZG93LCAndG91Y2htb3ZlJywgdG91Y2htb3ZlSGFuZGxlciA9IGZ1bmN0aW9uIHRvdWNobW92ZUhhbmRsZXIoZSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiAgICB2YXIgY2FwdHVyZSA9IHIudG91Y2hEYXRhLmNhcHR1cmU7XG4gICAgaWYgKCFjYXB0dXJlICYmICFldmVudEluQ29udGFpbmVyKGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBzZWxlY3QgPSByLnNlbGVjdGlvbjtcbiAgICB2YXIgY3kgPSByLmN5O1xuICAgIHZhciBub3cgPSByLnRvdWNoRGF0YS5ub3c7XG4gICAgdmFyIGVhcmxpZXIgPSByLnRvdWNoRGF0YS5lYXJsaWVyO1xuICAgIHZhciB6b29tID0gY3kuem9vbSgpO1xuICAgIGlmIChlLnRvdWNoZXNbMF0pIHtcbiAgICAgIHZhciBwb3MgPSByLnByb2plY3RJbnRvVmlld3BvcnQoZS50b3VjaGVzWzBdLmNsaWVudFgsIGUudG91Y2hlc1swXS5jbGllbnRZKTtcbiAgICAgIG5vd1swXSA9IHBvc1swXTtcbiAgICAgIG5vd1sxXSA9IHBvc1sxXTtcbiAgICB9XG4gICAgaWYgKGUudG91Y2hlc1sxXSkge1xuICAgICAgdmFyIHBvcyA9IHIucHJvamVjdEludG9WaWV3cG9ydChlLnRvdWNoZXNbMV0uY2xpZW50WCwgZS50b3VjaGVzWzFdLmNsaWVudFkpO1xuICAgICAgbm93WzJdID0gcG9zWzBdO1xuICAgICAgbm93WzNdID0gcG9zWzFdO1xuICAgIH1cbiAgICBpZiAoZS50b3VjaGVzWzJdKSB7XG4gICAgICB2YXIgcG9zID0gci5wcm9qZWN0SW50b1ZpZXdwb3J0KGUudG91Y2hlc1syXS5jbGllbnRYLCBlLnRvdWNoZXNbMl0uY2xpZW50WSk7XG4gICAgICBub3dbNF0gPSBwb3NbMF07XG4gICAgICBub3dbNV0gPSBwb3NbMV07XG4gICAgfVxuICAgIHZhciBzdGFydEdQb3MgPSByLnRvdWNoRGF0YS5zdGFydEdQb3NpdGlvbjtcbiAgICB2YXIgaXNPdmVyVGhyZXNob2xkRHJhZztcbiAgICBpZiAoY2FwdHVyZSAmJiBlLnRvdWNoZXNbMF0gJiYgc3RhcnRHUG9zKSB7XG4gICAgICB2YXIgZGlzcCA9IFtdO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBub3cubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgZGlzcFtqXSA9IG5vd1tqXSAtIGVhcmxpZXJbal07XG4gICAgICB9XG4gICAgICB2YXIgZHggPSBlLnRvdWNoZXNbMF0uY2xpZW50WCAtIHN0YXJ0R1Bvc1swXTtcbiAgICAgIHZhciBkeDIgPSBkeCAqIGR4O1xuICAgICAgdmFyIGR5ID0gZS50b3VjaGVzWzBdLmNsaWVudFkgLSBzdGFydEdQb3NbMV07XG4gICAgICB2YXIgZHkyID0gZHkgKiBkeTtcbiAgICAgIHZhciBkaXN0MiA9IGR4MiArIGR5MjtcbiAgICAgIGlzT3ZlclRocmVzaG9sZERyYWcgPSBkaXN0MiA+PSByLnRvdWNoVGFwVGhyZXNob2xkMjtcbiAgICB9XG5cbiAgICAvLyBjb250ZXh0IHN3aXBlIGNhbmNlbGxpbmdcbiAgICBpZiAoY2FwdHVyZSAmJiByLnRvdWNoRGF0YS5jeHQpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHZhciBmMXgyID0gZS50b3VjaGVzWzBdLmNsaWVudFggLSBvZmZzZXRMZWZ0LFxuICAgICAgICBmMXkyID0gZS50b3VjaGVzWzBdLmNsaWVudFkgLSBvZmZzZXRUb3A7XG4gICAgICB2YXIgZjJ4MiA9IGUudG91Y2hlc1sxXS5jbGllbnRYIC0gb2Zmc2V0TGVmdCxcbiAgICAgICAgZjJ5MiA9IGUudG91Y2hlc1sxXS5jbGllbnRZIC0gb2Zmc2V0VG9wO1xuICAgICAgLy8gdmFyIGRpc3RhbmNlMiA9IGRpc3RhbmNlKCBmMXgyLCBmMXkyLCBmMngyLCBmMnkyICk7XG4gICAgICB2YXIgZGlzdGFuY2UyU3EgPSBkaXN0YW5jZVNxKGYxeDIsIGYxeTIsIGYyeDIsIGYyeTIpO1xuICAgICAgdmFyIGZhY3RvclNxID0gZGlzdGFuY2UyU3EgLyBkaXN0YW5jZTFTcTtcbiAgICAgIHZhciBkaXN0VGhyZXNob2xkID0gMTUwO1xuICAgICAgdmFyIGRpc3RUaHJlc2hvbGRTcSA9IGRpc3RUaHJlc2hvbGQgKiBkaXN0VGhyZXNob2xkO1xuICAgICAgdmFyIGZhY3RvclRocmVzaG9sZCA9IDEuNTtcbiAgICAgIHZhciBmYWN0b3JUaHJlc2hvbGRTcSA9IGZhY3RvclRocmVzaG9sZCAqIGZhY3RvclRocmVzaG9sZDtcblxuICAgICAgLy8gY2FuY2VsIGN0eCBnZXN0dXJlcyBpZiB0aGUgZGlzdGFuY2UgYi90IHRoZSBmaW5nZXJzIGluY3JlYXNlc1xuICAgICAgaWYgKGZhY3RvclNxID49IGZhY3RvclRocmVzaG9sZFNxIHx8IGRpc3RhbmNlMlNxID49IGRpc3RUaHJlc2hvbGRTcSkge1xuICAgICAgICByLnRvdWNoRGF0YS5jeHQgPSBmYWxzZTtcbiAgICAgICAgci5kYXRhLmJnQWN0aXZlUG9zaXN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICByLnJlZHJhd0hpbnQoJ3NlbGVjdCcsIHRydWUpO1xuICAgICAgICB2YXIgY3h0RXZ0ID0ge1xuICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGUsXG4gICAgICAgICAgdHlwZTogJ2N4dHRhcGVuZCcsXG4gICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgIHg6IG5vd1swXSxcbiAgICAgICAgICAgIHk6IG5vd1sxXVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHIudG91Y2hEYXRhLnN0YXJ0KSB7XG4gICAgICAgICAgci50b3VjaERhdGEuc3RhcnQudW5hY3RpdmF0ZSgpLmVtaXQoY3h0RXZ0KTtcbiAgICAgICAgICByLnRvdWNoRGF0YS5zdGFydCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3kuZW1pdChjeHRFdnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gY29udGV4dCBzd2lwZVxuICAgIGlmIChjYXB0dXJlICYmIHIudG91Y2hEYXRhLmN4dCkge1xuICAgICAgdmFyIGN4dEV2dCA9IHtcbiAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgdHlwZTogJ2N4dGRyYWcnLFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHg6IG5vd1swXSxcbiAgICAgICAgICB5OiBub3dbMV1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHIuZGF0YS5iZ0FjdGl2ZVBvc2lzdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHIucmVkcmF3SGludCgnc2VsZWN0JywgdHJ1ZSk7XG4gICAgICBpZiAoci50b3VjaERhdGEuc3RhcnQpIHtcbiAgICAgICAgci50b3VjaERhdGEuc3RhcnQuZW1pdChjeHRFdnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3kuZW1pdChjeHRFdnQpO1xuICAgICAgfVxuICAgICAgaWYgKHIudG91Y2hEYXRhLnN0YXJ0KSB7XG4gICAgICAgIHIudG91Y2hEYXRhLnN0YXJ0Ll9wcml2YXRlLmdyYWJiZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHIudG91Y2hEYXRhLmN4dERyYWdnZWQgPSB0cnVlO1xuICAgICAgdmFyIG5lYXIgPSByLmZpbmROZWFyZXN0RWxlbWVudChub3dbMF0sIG5vd1sxXSwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICBpZiAoIXIudG91Y2hEYXRhLmN4dE92ZXIgfHwgbmVhciAhPT0gci50b3VjaERhdGEuY3h0T3Zlcikge1xuICAgICAgICBpZiAoci50b3VjaERhdGEuY3h0T3Zlcikge1xuICAgICAgICAgIHIudG91Y2hEYXRhLmN4dE92ZXIuZW1pdCh7XG4gICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBlLFxuICAgICAgICAgICAgdHlwZTogJ2N4dGRyYWdvdXQnLFxuICAgICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgICAgeDogbm93WzBdLFxuICAgICAgICAgICAgICB5OiBub3dbMV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByLnRvdWNoRGF0YS5jeHRPdmVyID0gbmVhcjtcbiAgICAgICAgaWYgKG5lYXIpIHtcbiAgICAgICAgICBuZWFyLmVtaXQoe1xuICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgICAgIHR5cGU6ICdjeHRkcmFnb3ZlcicsXG4gICAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgICB4OiBub3dbMF0sXG4gICAgICAgICAgICAgIHk6IG5vd1sxXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGJveCBzZWxlY3Rpb25cbiAgICB9IGVsc2UgaWYgKGNhcHR1cmUgJiYgZS50b3VjaGVzWzJdICYmIGN5LmJveFNlbGVjdGlvbkVuYWJsZWQoKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgci5kYXRhLmJnQWN0aXZlUG9zaXN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5sYXN0VGhyZWVUb3VjaCA9ICtuZXcgRGF0ZSgpO1xuICAgICAgaWYgKCFyLnRvdWNoRGF0YS5zZWxlY3RpbmcpIHtcbiAgICAgICAgY3kuZW1pdCh7XG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgICB0eXBlOiAnYm94c3RhcnQnLFxuICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICB4OiBub3dbMF0sXG4gICAgICAgICAgICB5OiBub3dbMV1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgci50b3VjaERhdGEuc2VsZWN0aW5nID0gdHJ1ZTtcbiAgICAgIHIudG91Y2hEYXRhLmRpZFNlbGVjdCA9IHRydWU7XG4gICAgICBzZWxlY3RbNF0gPSAxO1xuICAgICAgaWYgKCFzZWxlY3QgfHwgc2VsZWN0Lmxlbmd0aCA9PT0gMCB8fCBzZWxlY3RbMF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzZWxlY3RbMF0gPSAobm93WzBdICsgbm93WzJdICsgbm93WzRdKSAvIDM7XG4gICAgICAgIHNlbGVjdFsxXSA9IChub3dbMV0gKyBub3dbM10gKyBub3dbNV0pIC8gMztcbiAgICAgICAgc2VsZWN0WzJdID0gKG5vd1swXSArIG5vd1syXSArIG5vd1s0XSkgLyAzICsgMTtcbiAgICAgICAgc2VsZWN0WzNdID0gKG5vd1sxXSArIG5vd1szXSArIG5vd1s1XSkgLyAzICsgMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGVjdFsyXSA9IChub3dbMF0gKyBub3dbMl0gKyBub3dbNF0pIC8gMztcbiAgICAgICAgc2VsZWN0WzNdID0gKG5vd1sxXSArIG5vd1szXSArIG5vd1s1XSkgLyAzO1xuICAgICAgfVxuICAgICAgci5yZWRyYXdIaW50KCdzZWxlY3QnLCB0cnVlKTtcbiAgICAgIHIucmVkcmF3KCk7XG5cbiAgICAgIC8vIHBpbmNoIHRvIHpvb21cbiAgICB9IGVsc2UgaWYgKGNhcHR1cmUgJiYgZS50b3VjaGVzWzFdICYmICFyLnRvdWNoRGF0YS5kaWRTZWxlY3QgLy8gZG9uJ3QgYWxsb3cgYm94IHNlbGVjdGlvbiB0byBkZWdyYWRlIHRvIHBpbmNoLXRvLXpvb21cbiAgICAmJiBjeS56b29taW5nRW5hYmxlZCgpICYmIGN5LnBhbm5pbmdFbmFibGVkKCkgJiYgY3kudXNlclpvb21pbmdFbmFibGVkKCkgJiYgY3kudXNlclBhbm5pbmdFbmFibGVkKCkpIHtcbiAgICAgIC8vIHR3byBmaW5nZXJzID0+IHBpbmNoIHRvIHpvb21cbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHIuZGF0YS5iZ0FjdGl2ZVBvc2lzdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHIucmVkcmF3SGludCgnc2VsZWN0JywgdHJ1ZSk7XG4gICAgICB2YXIgZHJhZ2dlZEVsZXMgPSByLmRyYWdEYXRhLnRvdWNoRHJhZ0VsZXM7XG4gICAgICBpZiAoZHJhZ2dlZEVsZXMpIHtcbiAgICAgICAgci5yZWRyYXdIaW50KCdkcmFnJywgdHJ1ZSk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZHJhZ2dlZEVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgZGVfcCA9IGRyYWdnZWRFbGVzW2ldLl9wcml2YXRlO1xuICAgICAgICAgIGRlX3AuZ3JhYmJlZCA9IGZhbHNlO1xuICAgICAgICAgIGRlX3AucnNjcmF0Y2guaW5EcmFnTGF5ZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIF9zdGFydCA9IHIudG91Y2hEYXRhLnN0YXJ0O1xuXG4gICAgICAvLyAoeDIsIHkyKSBmb3IgZmluZ2VycyAxIGFuZCAyXG4gICAgICB2YXIgZjF4MiA9IGUudG91Y2hlc1swXS5jbGllbnRYIC0gb2Zmc2V0TGVmdCxcbiAgICAgICAgZjF5MiA9IGUudG91Y2hlc1swXS5jbGllbnRZIC0gb2Zmc2V0VG9wO1xuICAgICAgdmFyIGYyeDIgPSBlLnRvdWNoZXNbMV0uY2xpZW50WCAtIG9mZnNldExlZnQsXG4gICAgICAgIGYyeTIgPSBlLnRvdWNoZXNbMV0uY2xpZW50WSAtIG9mZnNldFRvcDtcbiAgICAgIHZhciBkaXN0YW5jZTIgPSBkaXN0YW5jZShmMXgyLCBmMXkyLCBmMngyLCBmMnkyKTtcbiAgICAgIC8vIHZhciBkaXN0YW5jZTJTcSA9IGRpc3RhbmNlU3EoIGYxeDIsIGYxeTIsIGYyeDIsIGYyeTIgKTtcbiAgICAgIC8vIHZhciBmYWN0b3IgPSBNYXRoLnNxcnQoIGRpc3RhbmNlMlNxICkgLyBNYXRoLnNxcnQoIGRpc3RhbmNlMVNxICk7XG4gICAgICB2YXIgZmFjdG9yID0gZGlzdGFuY2UyIC8gZGlzdGFuY2UxO1xuICAgICAgaWYgKHR3b0ZpbmdlcnNTdGFydEluc2lkZSkge1xuICAgICAgICAvLyBkZWx0YSBmaW5nZXIxXG4gICAgICAgIHZhciBkZjF4ID0gZjF4MiAtIGYxeDE7XG4gICAgICAgIHZhciBkZjF5ID0gZjF5MiAtIGYxeTE7XG5cbiAgICAgICAgLy8gZGVsdGEgZmluZ2VyIDJcbiAgICAgICAgdmFyIGRmMnggPSBmMngyIC0gZjJ4MTtcbiAgICAgICAgdmFyIGRmMnkgPSBmMnkyIC0gZjJ5MTtcblxuICAgICAgICAvLyB0cmFuc2xhdGlvbiBpcyB0aGUgbm9ybWFsaXNlZCB2ZWN0b3Igb2YgdGhlIHR3byBmaW5nZXJzIG1vdmVtZW50XG4gICAgICAgIC8vIGkuZS4gc28gcGluY2hpbmcgY2FuY2VscyBvdXQgYW5kIG1vdmluZyB0b2dldGhlciBwYW5zXG4gICAgICAgIHZhciB0eCA9IChkZjF4ICsgZGYyeCkgLyAyO1xuICAgICAgICB2YXIgdHkgPSAoZGYxeSArIGRmMnkpIC8gMjtcblxuICAgICAgICAvLyBub3cgY2FsY3VsYXRlIHRoZSB6b29tXG4gICAgICAgIHZhciB6b29tMSA9IGN5Lnpvb20oKTtcbiAgICAgICAgdmFyIHpvb20yID0gem9vbTEgKiBmYWN0b3I7XG4gICAgICAgIHZhciBwYW4xID0gY3kucGFuKCk7XG5cbiAgICAgICAgLy8gdGhlIG1vZGVsIGNlbnRlciBwb2ludCBjb252ZXJ0ZWQgdG8gdGhlIGN1cnJlbnQgcmVuZGVyZWQgcG9zXG4gICAgICAgIHZhciBjdHJ4ID0gbW9kZWxDZW50ZXIxWzBdICogem9vbTEgKyBwYW4xLng7XG4gICAgICAgIHZhciBjdHJ5ID0gbW9kZWxDZW50ZXIxWzFdICogem9vbTEgKyBwYW4xLnk7XG4gICAgICAgIHZhciBwYW4yID0ge1xuICAgICAgICAgIHg6IC16b29tMiAvIHpvb20xICogKGN0cnggLSBwYW4xLnggLSB0eCkgKyBjdHJ4LFxuICAgICAgICAgIHk6IC16b29tMiAvIHpvb20xICogKGN0cnkgLSBwYW4xLnkgLSB0eSkgKyBjdHJ5XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gcmVtb3ZlIGRyYWdnZWQgZWxlc1xuICAgICAgICBpZiAoX3N0YXJ0ICYmIF9zdGFydC5hY3RpdmUoKSkge1xuICAgICAgICAgIHZhciBkcmFnZ2VkRWxlcyA9IHIuZHJhZ0RhdGEudG91Y2hEcmFnRWxlcztcbiAgICAgICAgICBmcmVlRHJhZ2dlZEVsZW1lbnRzKGRyYWdnZWRFbGVzKTtcbiAgICAgICAgICByLnJlZHJhd0hpbnQoJ2RyYWcnLCB0cnVlKTtcbiAgICAgICAgICByLnJlZHJhd0hpbnQoJ2VsZXMnLCB0cnVlKTtcbiAgICAgICAgICBfc3RhcnQudW5hY3RpdmF0ZSgpLmVtaXQoJ2ZyZWVvbicpO1xuICAgICAgICAgIGRyYWdnZWRFbGVzLmVtaXQoJ2ZyZWUnKTtcbiAgICAgICAgICBpZiAoci5kcmFnRGF0YS5kaWREcmFnKSB7XG4gICAgICAgICAgICBfc3RhcnQuZW1pdCgnZHJhZ2ZyZWVvbicpO1xuICAgICAgICAgICAgZHJhZ2dlZEVsZXMuZW1pdCgnZHJhZ2ZyZWUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY3kudmlld3BvcnQoe1xuICAgICAgICAgIHpvb206IHpvb20yLFxuICAgICAgICAgIHBhbjogcGFuMixcbiAgICAgICAgICBjYW5jZWxPbkZhaWxlZFpvb206IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGN5LmVtaXQoJ3BpbmNoem9vbScpO1xuICAgICAgICBkaXN0YW5jZTEgPSBkaXN0YW5jZTI7XG4gICAgICAgIGYxeDEgPSBmMXgyO1xuICAgICAgICBmMXkxID0gZjF5MjtcbiAgICAgICAgZjJ4MSA9IGYyeDI7XG4gICAgICAgIGYyeTEgPSBmMnkyO1xuICAgICAgICByLnBpbmNoaW5nID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gUmUtcHJvamVjdFxuICAgICAgaWYgKGUudG91Y2hlc1swXSkge1xuICAgICAgICB2YXIgcG9zID0gci5wcm9qZWN0SW50b1ZpZXdwb3J0KGUudG91Y2hlc1swXS5jbGllbnRYLCBlLnRvdWNoZXNbMF0uY2xpZW50WSk7XG4gICAgICAgIG5vd1swXSA9IHBvc1swXTtcbiAgICAgICAgbm93WzFdID0gcG9zWzFdO1xuICAgICAgfVxuICAgICAgaWYgKGUudG91Y2hlc1sxXSkge1xuICAgICAgICB2YXIgcG9zID0gci5wcm9qZWN0SW50b1ZpZXdwb3J0KGUudG91Y2hlc1sxXS5jbGllbnRYLCBlLnRvdWNoZXNbMV0uY2xpZW50WSk7XG4gICAgICAgIG5vd1syXSA9IHBvc1swXTtcbiAgICAgICAgbm93WzNdID0gcG9zWzFdO1xuICAgICAgfVxuICAgICAgaWYgKGUudG91Y2hlc1syXSkge1xuICAgICAgICB2YXIgcG9zID0gci5wcm9qZWN0SW50b1ZpZXdwb3J0KGUudG91Y2hlc1syXS5jbGllbnRYLCBlLnRvdWNoZXNbMl0uY2xpZW50WSk7XG4gICAgICAgIG5vd1s0XSA9IHBvc1swXTtcbiAgICAgICAgbm93WzVdID0gcG9zWzFdO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZS50b3VjaGVzWzBdICYmICFyLnRvdWNoRGF0YS5kaWRTZWxlY3QgLy8gZG9uJ3QgYWxsb3cgYm94IHNlbGVjdGlvbiB0byBkZWdyYWRlIHRvIHNpbmdsZSBmaW5nZXIgZXZlbnRzIGxpa2UgcGFubmluZ1xuICAgICkge1xuICAgICAgdmFyIHN0YXJ0ID0gci50b3VjaERhdGEuc3RhcnQ7XG4gICAgICB2YXIgbGFzdCA9IHIudG91Y2hEYXRhLmxhc3Q7XG4gICAgICB2YXIgbmVhcjtcbiAgICAgIGlmICghci5ob3ZlckRhdGEuZHJhZ2dpbmdFbGVzICYmICFyLnN3aXBlUGFubmluZykge1xuICAgICAgICBuZWFyID0gci5maW5kTmVhcmVzdEVsZW1lbnQobm93WzBdLCBub3dbMV0sIHRydWUsIHRydWUpO1xuICAgICAgfVxuICAgICAgaWYgKGNhcHR1cmUgJiYgc3RhcnQgIT0gbnVsbCkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIGRyYWdnaW5nIG5vZGVzXG4gICAgICBpZiAoY2FwdHVyZSAmJiBzdGFydCAhPSBudWxsICYmIHIubm9kZUlzRHJhZ2dhYmxlKHN0YXJ0KSkge1xuICAgICAgICBpZiAoaXNPdmVyVGhyZXNob2xkRHJhZykge1xuICAgICAgICAgIC8vIHRoZW4gZHJhZ2dpbmcgY2FuIGhhcHBlblxuICAgICAgICAgIHZhciBkcmFnZ2VkRWxlcyA9IHIuZHJhZ0RhdGEudG91Y2hEcmFnRWxlcztcbiAgICAgICAgICB2YXIganVzdFN0YXJ0ZWREcmFnID0gIXIuZHJhZ0RhdGEuZGlkRHJhZztcbiAgICAgICAgICBpZiAoanVzdFN0YXJ0ZWREcmFnKSB7XG4gICAgICAgICAgICBhZGROb2Rlc1RvRHJhZyhkcmFnZ2VkRWxlcywge1xuICAgICAgICAgICAgICBpbkRyYWdMYXllcjogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHIuZHJhZ0RhdGEuZGlkRHJhZyA9IHRydWU7XG4gICAgICAgICAgdmFyIHRvdGFsU2hpZnQgPSB7XG4gICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgeTogMFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKG51bWJlciQxKGRpc3BbMF0pICYmIG51bWJlciQxKGRpc3BbMV0pKSB7XG4gICAgICAgICAgICB0b3RhbFNoaWZ0LnggKz0gZGlzcFswXTtcbiAgICAgICAgICAgIHRvdGFsU2hpZnQueSArPSBkaXNwWzFdO1xuICAgICAgICAgICAgaWYgKGp1c3RTdGFydGVkRHJhZykge1xuICAgICAgICAgICAgICByLnJlZHJhd0hpbnQoJ2VsZXMnLCB0cnVlKTtcbiAgICAgICAgICAgICAgdmFyIGRyYWdEZWx0YSA9IHIudG91Y2hEYXRhLmRyYWdEZWx0YTtcbiAgICAgICAgICAgICAgaWYgKGRyYWdEZWx0YSAmJiBudW1iZXIkMShkcmFnRGVsdGFbMF0pICYmIG51bWJlciQxKGRyYWdEZWx0YVsxXSkpIHtcbiAgICAgICAgICAgICAgICB0b3RhbFNoaWZ0LnggKz0gZHJhZ0RlbHRhWzBdO1xuICAgICAgICAgICAgICAgIHRvdGFsU2hpZnQueSArPSBkcmFnRGVsdGFbMV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgci5ob3ZlckRhdGEuZHJhZ2dpbmdFbGVzID0gdHJ1ZTtcbiAgICAgICAgICBkcmFnZ2VkRWxlcy5zaWxlbnRTaGlmdCh0b3RhbFNoaWZ0KS5lbWl0KCdwb3NpdGlvbiBkcmFnJyk7XG4gICAgICAgICAgci5yZWRyYXdIaW50KCdkcmFnJywgdHJ1ZSk7XG4gICAgICAgICAgaWYgKHIudG91Y2hEYXRhLnN0YXJ0UG9zaXRpb25bMF0gPT0gZWFybGllclswXSAmJiByLnRvdWNoRGF0YS5zdGFydFBvc2l0aW9uWzFdID09IGVhcmxpZXJbMV0pIHtcbiAgICAgICAgICAgIHIucmVkcmF3SGludCgnZWxlcycsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByLnJlZHJhdygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIG90aGVyd2lzZSBrZWVwIHRyYWNrIG9mIGRyYWcgZGVsdGEgZm9yIGxhdGVyXG4gICAgICAgICAgdmFyIGRyYWdEZWx0YSA9IHIudG91Y2hEYXRhLmRyYWdEZWx0YSA9IHIudG91Y2hEYXRhLmRyYWdEZWx0YSB8fCBbXTtcbiAgICAgICAgICBpZiAoZHJhZ0RlbHRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZHJhZ0RlbHRhLnB1c2goZGlzcFswXSk7XG4gICAgICAgICAgICBkcmFnRGVsdGEucHVzaChkaXNwWzFdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZHJhZ0RlbHRhWzBdICs9IGRpc3BbMF07XG4gICAgICAgICAgICBkcmFnRGVsdGFbMV0gKz0gZGlzcFsxXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gdG91Y2htb3ZlXG4gICAgICB7XG4gICAgICAgIHRyaWdnZXJFdmVudHMoc3RhcnQgfHwgbmVhciwgWyd0b3VjaG1vdmUnLCAndGFwZHJhZycsICd2bW91c2Vtb3ZlJ10sIGUsIHtcbiAgICAgICAgICB4OiBub3dbMF0sXG4gICAgICAgICAgeTogbm93WzFdXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoKCFzdGFydCB8fCAhc3RhcnQuZ3JhYmJlZCgpKSAmJiBuZWFyICE9IGxhc3QpIHtcbiAgICAgICAgICBpZiAobGFzdCkge1xuICAgICAgICAgICAgbGFzdC5lbWl0KHtcbiAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgICAgICAgdHlwZTogJ3RhcGRyYWdvdXQnLFxuICAgICAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgICAgIHg6IG5vd1swXSxcbiAgICAgICAgICAgICAgICB5OiBub3dbMV1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChuZWFyKSB7XG4gICAgICAgICAgICBuZWFyLmVtaXQoe1xuICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBlLFxuICAgICAgICAgICAgICB0eXBlOiAndGFwZHJhZ292ZXInLFxuICAgICAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgICAgIHg6IG5vd1swXSxcbiAgICAgICAgICAgICAgICB5OiBub3dbMV1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHIudG91Y2hEYXRhLmxhc3QgPSBuZWFyO1xuICAgICAgfVxuXG4gICAgICAvLyBjaGVjayB0byBjYW5jZWwgdGFwaG9sZFxuICAgICAgaWYgKGNhcHR1cmUpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAobm93W2ldICYmIHIudG91Y2hEYXRhLnN0YXJ0UG9zaXRpb25baV0gJiYgaXNPdmVyVGhyZXNob2xkRHJhZykge1xuICAgICAgICAgICAgci50b3VjaERhdGEuc2luZ2xlVG91Y2hNb3ZlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIHBhbm5pbmdcbiAgICAgIGlmIChjYXB0dXJlICYmIChzdGFydCA9PSBudWxsIHx8IHN0YXJ0LnBhbm5hYmxlKCkpICYmIGN5LnBhbm5pbmdFbmFibGVkKCkgJiYgY3kudXNlclBhbm5pbmdFbmFibGVkKCkpIHtcbiAgICAgICAgdmFyIGFsbG93UGFzc3Rocm91Z2ggPSBhbGxvd1Bhbm5pbmdQYXNzdGhyb3VnaChzdGFydCwgci50b3VjaERhdGEuc3RhcnRzKTtcbiAgICAgICAgaWYgKGFsbG93UGFzc3Rocm91Z2gpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgaWYgKCFyLmRhdGEuYmdBY3RpdmVQb3Npc3Rpb24pIHtcbiAgICAgICAgICAgIHIuZGF0YS5iZ0FjdGl2ZVBvc2lzdGlvbiA9IGFycmF5MnBvaW50KHIudG91Y2hEYXRhLnN0YXJ0UG9zaXRpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoci5zd2lwZVBhbm5pbmcpIHtcbiAgICAgICAgICAgIGN5LnBhbkJ5KHtcbiAgICAgICAgICAgICAgeDogZGlzcFswXSAqIHpvb20sXG4gICAgICAgICAgICAgIHk6IGRpc3BbMV0gKiB6b29tXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGN5LmVtaXQoJ2RyYWdwYW4nKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzT3ZlclRocmVzaG9sZERyYWcpIHtcbiAgICAgICAgICAgIHIuc3dpcGVQYW5uaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGN5LnBhbkJ5KHtcbiAgICAgICAgICAgICAgeDogZHggKiB6b29tLFxuICAgICAgICAgICAgICB5OiBkeSAqIHpvb21cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY3kuZW1pdCgnZHJhZ3BhbicpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0KSB7XG4gICAgICAgICAgICAgIHN0YXJ0LnVuYWN0aXZhdGUoKTtcbiAgICAgICAgICAgICAgci5yZWRyYXdIaW50KCdzZWxlY3QnLCB0cnVlKTtcbiAgICAgICAgICAgICAgci50b3VjaERhdGEuc3RhcnQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlLXByb2plY3RcbiAgICAgICAgdmFyIHBvcyA9IHIucHJvamVjdEludG9WaWV3cG9ydChlLnRvdWNoZXNbMF0uY2xpZW50WCwgZS50b3VjaGVzWzBdLmNsaWVudFkpO1xuICAgICAgICBub3dbMF0gPSBwb3NbMF07XG4gICAgICAgIG5vd1sxXSA9IHBvc1sxXTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBub3cubGVuZ3RoOyBqKyspIHtcbiAgICAgIGVhcmxpZXJbal0gPSBub3dbal07XG4gICAgfVxuXG4gICAgLy8gdGhlIGFjdGl2ZSBiZyBpbmRpY2F0b3Igc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBtYWtpbmcgYSBzd2lwZSB0aGF0IGlzIG5laXRoZXIgZm9yIGRyYWdnaW5nIG5vZGVzIG9yIHBhbm5pbmdcbiAgICBpZiAoY2FwdHVyZSAmJiBlLnRvdWNoZXMubGVuZ3RoID4gMCAmJiAhci5ob3ZlckRhdGEuZHJhZ2dpbmdFbGVzICYmICFyLnN3aXBlUGFubmluZyAmJiByLmRhdGEuYmdBY3RpdmVQb3Npc3Rpb24gIT0gbnVsbCkge1xuICAgICAgci5kYXRhLmJnQWN0aXZlUG9zaXN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgci5yZWRyYXdIaW50KCdzZWxlY3QnLCB0cnVlKTtcbiAgICAgIHIucmVkcmF3KCk7XG4gICAgfVxuICB9LCBmYWxzZSk7XG4gIHZhciB0b3VjaGNhbmNlbEhhbmRsZXI7XG4gIHIucmVnaXN0ZXJCaW5kaW5nKGNvbnRhaW5lcldpbmRvdywgJ3RvdWNoY2FuY2VsJywgdG91Y2hjYW5jZWxIYW5kbGVyID0gZnVuY3Rpb24gdG91Y2hjYW5jZWxIYW5kbGVyKGUpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgdmFyIHN0YXJ0ID0gci50b3VjaERhdGEuc3RhcnQ7XG4gICAgci50b3VjaERhdGEuY2FwdHVyZSA9IGZhbHNlO1xuICAgIGlmIChzdGFydCkge1xuICAgICAgc3RhcnQudW5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfSk7XG4gIHZhciB0b3VjaGVuZEhhbmRsZXIsIGRpZERvdWJsZVRvdWNoLCB0b3VjaFRpbWVvdXQsIHByZXZUb3VjaFRpbWVTdGFtcDtcbiAgci5yZWdpc3RlckJpbmRpbmcoY29udGFpbmVyV2luZG93LCAndG91Y2hlbmQnLCB0b3VjaGVuZEhhbmRsZXIgPSBmdW5jdGlvbiB0b3VjaGVuZEhhbmRsZXIoZSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICB2YXIgc3RhcnQgPSByLnRvdWNoRGF0YS5zdGFydDtcbiAgICB2YXIgY2FwdHVyZSA9IHIudG91Y2hEYXRhLmNhcHR1cmU7XG4gICAgaWYgKGNhcHR1cmUpIHtcbiAgICAgIGlmIChlLnRvdWNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHIudG91Y2hEYXRhLmNhcHR1cmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgc2VsZWN0ID0gci5zZWxlY3Rpb247XG4gICAgci5zd2lwZVBhbm5pbmcgPSBmYWxzZTtcbiAgICByLmhvdmVyRGF0YS5kcmFnZ2luZ0VsZXMgPSBmYWxzZTtcbiAgICB2YXIgY3kgPSByLmN5O1xuICAgIHZhciB6b29tID0gY3kuem9vbSgpO1xuICAgIHZhciBub3cgPSByLnRvdWNoRGF0YS5ub3c7XG4gICAgdmFyIGVhcmxpZXIgPSByLnRvdWNoRGF0YS5lYXJsaWVyO1xuICAgIGlmIChlLnRvdWNoZXNbMF0pIHtcbiAgICAgIHZhciBwb3MgPSByLnByb2plY3RJbnRvVmlld3BvcnQoZS50b3VjaGVzWzBdLmNsaWVudFgsIGUudG91Y2hlc1swXS5jbGllbnRZKTtcbiAgICAgIG5vd1swXSA9IHBvc1swXTtcbiAgICAgIG5vd1sxXSA9IHBvc1sxXTtcbiAgICB9XG4gICAgaWYgKGUudG91Y2hlc1sxXSkge1xuICAgICAgdmFyIHBvcyA9IHIucHJvamVjdEludG9WaWV3cG9ydChlLnRvdWNoZXNbMV0uY2xpZW50WCwgZS50b3VjaGVzWzFdLmNsaWVudFkpO1xuICAgICAgbm93WzJdID0gcG9zWzBdO1xuICAgICAgbm93WzNdID0gcG9zWzFdO1xuICAgIH1cbiAgICBpZiAoZS50b3VjaGVzWzJdKSB7XG4gICAgICB2YXIgcG9zID0gci5wcm9qZWN0SW50b1ZpZXdwb3J0KGUudG91Y2hlc1syXS5jbGllbnRYLCBlLnRvdWNoZXNbMl0uY2xpZW50WSk7XG4gICAgICBub3dbNF0gPSBwb3NbMF07XG4gICAgICBub3dbNV0gPSBwb3NbMV07XG4gICAgfVxuICAgIGlmIChzdGFydCkge1xuICAgICAgc3RhcnQudW5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgICB2YXIgY3R4VGFwZW5kO1xuICAgIGlmIChyLnRvdWNoRGF0YS5jeHQpIHtcbiAgICAgIGN0eFRhcGVuZCA9IHtcbiAgICAgICAgb3JpZ2luYWxFdmVudDogZSxcbiAgICAgICAgdHlwZTogJ2N4dHRhcGVuZCcsXG4gICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgeDogbm93WzBdLFxuICAgICAgICAgIHk6IG5vd1sxXVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaWYgKHN0YXJ0KSB7XG4gICAgICAgIHN0YXJ0LmVtaXQoY3R4VGFwZW5kKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN5LmVtaXQoY3R4VGFwZW5kKTtcbiAgICAgIH1cbiAgICAgIGlmICghci50b3VjaERhdGEuY3h0RHJhZ2dlZCkge1xuICAgICAgICB2YXIgY3R4VGFwID0ge1xuICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGUsXG4gICAgICAgICAgdHlwZTogJ2N4dHRhcCcsXG4gICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgIHg6IG5vd1swXSxcbiAgICAgICAgICAgIHk6IG5vd1sxXVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHN0YXJ0KSB7XG4gICAgICAgICAgc3RhcnQuZW1pdChjdHhUYXApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN5LmVtaXQoY3R4VGFwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHIudG91Y2hEYXRhLnN0YXJ0KSB7XG4gICAgICAgIHIudG91Y2hEYXRhLnN0YXJ0Ll9wcml2YXRlLmdyYWJiZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHIudG91Y2hEYXRhLmN4dCA9IGZhbHNlO1xuICAgICAgci50b3VjaERhdGEuc3RhcnQgPSBudWxsO1xuICAgICAgci5yZWRyYXcoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBubyBtb3JlIGJveCBzZWxlY3Rpb24gaWYgd2UgZG9uJ3QgaGF2ZSB0aHJlZSBmaW5nZXJzXG4gICAgaWYgKCFlLnRvdWNoZXNbMl0gJiYgY3kuYm94U2VsZWN0aW9uRW5hYmxlZCgpICYmIHIudG91Y2hEYXRhLnNlbGVjdGluZykge1xuICAgICAgci50b3VjaERhdGEuc2VsZWN0aW5nID0gZmFsc2U7XG4gICAgICB2YXIgYm94ID0gY3kuY29sbGVjdGlvbihyLmdldEFsbEluQm94KHNlbGVjdFswXSwgc2VsZWN0WzFdLCBzZWxlY3RbMl0sIHNlbGVjdFszXSkpO1xuICAgICAgc2VsZWN0WzBdID0gdW5kZWZpbmVkO1xuICAgICAgc2VsZWN0WzFdID0gdW5kZWZpbmVkO1xuICAgICAgc2VsZWN0WzJdID0gdW5kZWZpbmVkO1xuICAgICAgc2VsZWN0WzNdID0gdW5kZWZpbmVkO1xuICAgICAgc2VsZWN0WzRdID0gMDtcbiAgICAgIHIucmVkcmF3SGludCgnc2VsZWN0JywgdHJ1ZSk7XG4gICAgICBjeS5lbWl0KHtcbiAgICAgICAgdHlwZTogJ2JveGVuZCcsXG4gICAgICAgIG9yaWdpbmFsRXZlbnQ6IGUsXG4gICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgeDogbm93WzBdLFxuICAgICAgICAgIHk6IG5vd1sxXVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBlbGVXb3VsZEJlU2VsZWN0ZWQgPSBmdW5jdGlvbiBlbGVXb3VsZEJlU2VsZWN0ZWQoZWxlKSB7XG4gICAgICAgIHJldHVybiBlbGUuc2VsZWN0YWJsZSgpICYmICFlbGUuc2VsZWN0ZWQoKTtcbiAgICAgIH07XG4gICAgICBib3guZW1pdCgnYm94Jykuc3RkRmlsdGVyKGVsZVdvdWxkQmVTZWxlY3RlZCkuc2VsZWN0KCkuZW1pdCgnYm94c2VsZWN0Jyk7XG4gICAgICBpZiAoYm94Lm5vbmVtcHR5KCkpIHtcbiAgICAgICAgci5yZWRyYXdIaW50KCdlbGVzJywgdHJ1ZSk7XG4gICAgICB9XG4gICAgICByLnJlZHJhdygpO1xuICAgIH1cbiAgICBpZiAoc3RhcnQgIT0gbnVsbCkge1xuICAgICAgc3RhcnQudW5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgICBpZiAoZS50b3VjaGVzWzJdKSB7XG4gICAgICByLmRhdGEuYmdBY3RpdmVQb3Npc3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICByLnJlZHJhd0hpbnQoJ3NlbGVjdCcsIHRydWUpO1xuICAgIH0gZWxzZSBpZiAoZS50b3VjaGVzWzFdKSA7IGVsc2UgaWYgKGUudG91Y2hlc1swXSkgOyBlbHNlIGlmICghZS50b3VjaGVzWzBdKSB7XG4gICAgICByLmRhdGEuYmdBY3RpdmVQb3Npc3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICByLnJlZHJhd0hpbnQoJ3NlbGVjdCcsIHRydWUpO1xuICAgICAgdmFyIGRyYWdnZWRFbGVzID0gci5kcmFnRGF0YS50b3VjaERyYWdFbGVzO1xuICAgICAgaWYgKHN0YXJ0ICE9IG51bGwpIHtcbiAgICAgICAgdmFyIHN0YXJ0V2FzR3JhYmJlZCA9IHN0YXJ0Ll9wcml2YXRlLmdyYWJiZWQ7XG4gICAgICAgIGZyZWVEcmFnZ2VkRWxlbWVudHMoZHJhZ2dlZEVsZXMpO1xuICAgICAgICByLnJlZHJhd0hpbnQoJ2RyYWcnLCB0cnVlKTtcbiAgICAgICAgci5yZWRyYXdIaW50KCdlbGVzJywgdHJ1ZSk7XG4gICAgICAgIGlmIChzdGFydFdhc0dyYWJiZWQpIHtcbiAgICAgICAgICBzdGFydC5lbWl0KCdmcmVlb24nKTtcbiAgICAgICAgICBkcmFnZ2VkRWxlcy5lbWl0KCdmcmVlJyk7XG4gICAgICAgICAgaWYgKHIuZHJhZ0RhdGEuZGlkRHJhZykge1xuICAgICAgICAgICAgc3RhcnQuZW1pdCgnZHJhZ2ZyZWVvbicpO1xuICAgICAgICAgICAgZHJhZ2dlZEVsZXMuZW1pdCgnZHJhZ2ZyZWUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdHJpZ2dlckV2ZW50cyhzdGFydCwgWyd0b3VjaGVuZCcsICd0YXBlbmQnLCAndm1vdXNldXAnLCAndGFwZHJhZ291dCddLCBlLCB7XG4gICAgICAgICAgeDogbm93WzBdLFxuICAgICAgICAgIHk6IG5vd1sxXVxuICAgICAgICB9KTtcbiAgICAgICAgc3RhcnQudW5hY3RpdmF0ZSgpO1xuICAgICAgICByLnRvdWNoRGF0YS5zdGFydCA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgbmVhciA9IHIuZmluZE5lYXJlc3RFbGVtZW50KG5vd1swXSwgbm93WzFdLCB0cnVlLCB0cnVlKTtcbiAgICAgICAgdHJpZ2dlckV2ZW50cyhuZWFyLCBbJ3RvdWNoZW5kJywgJ3RhcGVuZCcsICd2bW91c2V1cCcsICd0YXBkcmFnb3V0J10sIGUsIHtcbiAgICAgICAgICB4OiBub3dbMF0sXG4gICAgICAgICAgeTogbm93WzFdXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdmFyIGR4ID0gci50b3VjaERhdGEuc3RhcnRQb3NpdGlvblswXSAtIG5vd1swXTtcbiAgICAgIHZhciBkeDIgPSBkeCAqIGR4O1xuICAgICAgdmFyIGR5ID0gci50b3VjaERhdGEuc3RhcnRQb3NpdGlvblsxXSAtIG5vd1sxXTtcbiAgICAgIHZhciBkeTIgPSBkeSAqIGR5O1xuICAgICAgdmFyIGRpc3QyID0gZHgyICsgZHkyO1xuICAgICAgdmFyIHJkaXN0MiA9IGRpc3QyICogem9vbSAqIHpvb207XG5cbiAgICAgIC8vIFRhcCBldmVudCwgcm91Z2hseSBzYW1lIGFzIG1vdXNlIGNsaWNrIGV2ZW50IGZvciB0b3VjaFxuICAgICAgaWYgKCFyLnRvdWNoRGF0YS5zaW5nbGVUb3VjaE1vdmVkKSB7XG4gICAgICAgIGlmICghc3RhcnQpIHtcbiAgICAgICAgICBjeS4kKCc6c2VsZWN0ZWQnKS51bnNlbGVjdChbJ3RhcHVuc2VsZWN0J10pO1xuICAgICAgICB9XG4gICAgICAgIHRyaWdnZXJFdmVudHMoc3RhcnQsIFsndGFwJywgJ3ZjbGljayddLCBlLCB7XG4gICAgICAgICAgeDogbm93WzBdLFxuICAgICAgICAgIHk6IG5vd1sxXVxuICAgICAgICB9KTtcbiAgICAgICAgZGlkRG91YmxlVG91Y2ggPSBmYWxzZTtcbiAgICAgICAgaWYgKGUudGltZVN0YW1wIC0gcHJldlRvdWNoVGltZVN0YW1wIDw9IGN5Lm11bHRpQ2xpY2tEZWJvdW5jZVRpbWUoKSkge1xuICAgICAgICAgIHRvdWNoVGltZW91dCAmJiBjbGVhclRpbWVvdXQodG91Y2hUaW1lb3V0KTtcbiAgICAgICAgICBkaWREb3VibGVUb3VjaCA9IHRydWU7XG4gICAgICAgICAgcHJldlRvdWNoVGltZVN0YW1wID0gbnVsbDtcbiAgICAgICAgICB0cmlnZ2VyRXZlbnRzKHN0YXJ0LCBbJ2RibHRhcCcsICd2ZGJsY2xpY2snXSwgZSwge1xuICAgICAgICAgICAgeDogbm93WzBdLFxuICAgICAgICAgICAgeTogbm93WzFdXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdG91Y2hUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoZGlkRG91YmxlVG91Y2gpIHJldHVybjtcbiAgICAgICAgICAgIHRyaWdnZXJFdmVudHMoc3RhcnQsIFsnb25ldGFwJywgJ3ZvbmVjbGljayddLCBlLCB7XG4gICAgICAgICAgICAgIHg6IG5vd1swXSxcbiAgICAgICAgICAgICAgeTogbm93WzFdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LCBjeS5tdWx0aUNsaWNrRGVib3VuY2VUaW1lKCkpO1xuICAgICAgICAgIHByZXZUb3VjaFRpbWVTdGFtcCA9IGUudGltZVN0YW1wO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFByZXBhcmUgdG8gc2VsZWN0IHRoZSBjdXJyZW50bHkgdG91Y2hlZCBub2RlLCBvbmx5IGlmIGl0IGhhc24ndCBiZWVuIGRyYWdnZWQgcGFzdCBhIGNlcnRhaW4gZGlzdGFuY2VcbiAgICAgIGlmIChzdGFydCAhPSBudWxsICYmICFyLmRyYWdEYXRhLmRpZERyYWcgLy8gZGlkbid0IGRyYWcgbm9kZXMgYXJvdW5kXG4gICAgICAmJiBzdGFydC5fcHJpdmF0ZS5zZWxlY3RhYmxlICYmIHJkaXN0MiA8IHIudG91Y2hUYXBUaHJlc2hvbGQyICYmICFyLnBpbmNoaW5nIC8vIHBpbmNoIHRvIHpvb20gc2hvdWxkIG5vdCBhZmZlY3Qgc2VsZWN0aW9uXG4gICAgICApIHtcbiAgICAgICAgaWYgKGN5LnNlbGVjdGlvblR5cGUoKSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICBjeS4kKGlzU2VsZWN0ZWQpLnVubWVyZ2Uoc3RhcnQpLnVuc2VsZWN0KFsndGFwdW5zZWxlY3QnXSk7XG4gICAgICAgICAgc3RhcnQuc2VsZWN0KFsndGFwc2VsZWN0J10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChzdGFydC5zZWxlY3RlZCgpKSB7XG4gICAgICAgICAgICBzdGFydC51bnNlbGVjdChbJ3RhcHVuc2VsZWN0J10pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydC5zZWxlY3QoWyd0YXBzZWxlY3QnXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHIucmVkcmF3SGludCgnZWxlcycsIHRydWUpO1xuICAgICAgfVxuICAgICAgci50b3VjaERhdGEuc2luZ2xlVG91Y2hNb3ZlZCA9IHRydWU7XG4gICAgfVxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgbm93Lmxlbmd0aDsgaisrKSB7XG4gICAgICBlYXJsaWVyW2pdID0gbm93W2pdO1xuICAgIH1cbiAgICByLmRyYWdEYXRhLmRpZERyYWcgPSBmYWxzZTsgLy8gcmVzZXQgZm9yIG5leHQgdG91Y2hzdGFydFxuXG4gICAgaWYgKGUudG91Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHIudG91Y2hEYXRhLmRyYWdEZWx0YSA9IFtdO1xuICAgICAgci50b3VjaERhdGEuc3RhcnRQb3NpdGlvbiA9IFtudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsXTtcbiAgICAgIHIudG91Y2hEYXRhLnN0YXJ0R1Bvc2l0aW9uID0gbnVsbDtcbiAgICAgIHIudG91Y2hEYXRhLmRpZFNlbGVjdCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoZS50b3VjaGVzLmxlbmd0aCA8IDIpIHtcbiAgICAgIGlmIChlLnRvdWNoZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIC8vIHRoZSBvbGQgc3RhcnQgZ2xvYmFsIHBvcyduIG1heSBub3QgYmUgdGhlIHNhbWUgZmluZ2VyIHRoYXQgcmVtYWluc1xuICAgICAgICByLnRvdWNoRGF0YS5zdGFydEdQb3NpdGlvbiA9IFtlLnRvdWNoZXNbMF0uY2xpZW50WCwgZS50b3VjaGVzWzBdLmNsaWVudFldO1xuICAgICAgfVxuICAgICAgci5waW5jaGluZyA9IGZhbHNlO1xuICAgICAgci5yZWRyYXdIaW50KCdlbGVzJywgdHJ1ZSk7XG4gICAgICByLnJlZHJhdygpO1xuICAgIH1cblxuICAgIC8vci5yZWRyYXcoKTtcbiAgfSwgZmFsc2UpO1xuXG4gIC8vIGZhbGxiYWNrIGNvbXBhdGliaWxpdHkgbGF5ZXIgZm9yIG1zIHBvaW50ZXIgZXZlbnRzXG4gIGlmICh0eXBlb2YgVG91Y2hFdmVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB2YXIgcG9pbnRlcnMgPSBbXTtcbiAgICB2YXIgbWFrZVRvdWNoID0gZnVuY3Rpb24gbWFrZVRvdWNoKGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNsaWVudFg6IGUuY2xpZW50WCxcbiAgICAgICAgY2xpZW50WTogZS5jbGllbnRZLFxuICAgICAgICBmb3JjZTogMSxcbiAgICAgICAgaWRlbnRpZmllcjogZS5wb2ludGVySWQsXG4gICAgICAgIHBhZ2VYOiBlLnBhZ2VYLFxuICAgICAgICBwYWdlWTogZS5wYWdlWSxcbiAgICAgICAgcmFkaXVzWDogZS53aWR0aCAvIDIsXG4gICAgICAgIHJhZGl1c1k6IGUuaGVpZ2h0IC8gMixcbiAgICAgICAgc2NyZWVuWDogZS5zY3JlZW5YLFxuICAgICAgICBzY3JlZW5ZOiBlLnNjcmVlblksXG4gICAgICAgIHRhcmdldDogZS50YXJnZXRcbiAgICAgIH07XG4gICAgfTtcbiAgICB2YXIgbWFrZVBvaW50ZXIgPSBmdW5jdGlvbiBtYWtlUG9pbnRlcihlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBldmVudDogZSxcbiAgICAgICAgdG91Y2g6IG1ha2VUb3VjaChlKVxuICAgICAgfTtcbiAgICB9O1xuICAgIHZhciBhZGRQb2ludGVyID0gZnVuY3Rpb24gYWRkUG9pbnRlcihlKSB7XG4gICAgICBwb2ludGVycy5wdXNoKG1ha2VQb2ludGVyKGUpKTtcbiAgICB9O1xuICAgIHZhciByZW1vdmVQb2ludGVyID0gZnVuY3Rpb24gcmVtb3ZlUG9pbnRlcihlKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBvaW50ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBwID0gcG9pbnRlcnNbaV07XG4gICAgICAgIGlmIChwLmV2ZW50LnBvaW50ZXJJZCA9PT0gZS5wb2ludGVySWQpIHtcbiAgICAgICAgICBwb2ludGVycy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgdXBkYXRlUG9pbnRlciA9IGZ1bmN0aW9uIHVwZGF0ZVBvaW50ZXIoZSkge1xuICAgICAgdmFyIHAgPSBwb2ludGVycy5maWx0ZXIoZnVuY3Rpb24gKHApIHtcbiAgICAgICAgcmV0dXJuIHAuZXZlbnQucG9pbnRlcklkID09PSBlLnBvaW50ZXJJZDtcbiAgICAgIH0pWzBdO1xuICAgICAgcC5ldmVudCA9IGU7XG4gICAgICBwLnRvdWNoID0gbWFrZVRvdWNoKGUpO1xuICAgIH07XG4gICAgdmFyIGFkZFRvdWNoZXNUb0V2ZW50ID0gZnVuY3Rpb24gYWRkVG91Y2hlc1RvRXZlbnQoZSkge1xuICAgICAgZS50b3VjaGVzID0gcG9pbnRlcnMubWFwKGZ1bmN0aW9uIChwKSB7XG4gICAgICAgIHJldHVybiBwLnRvdWNoO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICB2YXIgcG9pbnRlcklzTW91c2UgPSBmdW5jdGlvbiBwb2ludGVySXNNb3VzZShlKSB7XG4gICAgICByZXR1cm4gZS5wb2ludGVyVHlwZSA9PT0gJ21vdXNlJyB8fCBlLnBvaW50ZXJUeXBlID09PSA0O1xuICAgIH07XG4gICAgci5yZWdpc3RlckJpbmRpbmcoci5jb250YWluZXIsICdwb2ludGVyZG93bicsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBpZiAocG9pbnRlcklzTW91c2UoZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSAvLyBtb3VzZSBhbHJlYWR5IGhhbmRsZWRcblxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgYWRkUG9pbnRlcihlKTtcbiAgICAgIGFkZFRvdWNoZXNUb0V2ZW50KGUpO1xuICAgICAgdG91Y2hzdGFydEhhbmRsZXIoZSk7XG4gICAgfSk7XG4gICAgci5yZWdpc3RlckJpbmRpbmcoci5jb250YWluZXIsICdwb2ludGVydXAnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKHBvaW50ZXJJc01vdXNlKGUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gLy8gbW91c2UgYWxyZWFkeSBoYW5kbGVkXG5cbiAgICAgIHJlbW92ZVBvaW50ZXIoZSk7XG4gICAgICBhZGRUb3VjaGVzVG9FdmVudChlKTtcbiAgICAgIHRvdWNoZW5kSGFuZGxlcihlKTtcbiAgICB9KTtcbiAgICByLnJlZ2lzdGVyQmluZGluZyhyLmNvbnRhaW5lciwgJ3BvaW50ZXJjYW5jZWwnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKHBvaW50ZXJJc01vdXNlKGUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gLy8gbW91c2UgYWxyZWFkeSBoYW5kbGVkXG5cbiAgICAgIHJlbW92ZVBvaW50ZXIoZSk7XG4gICAgICBhZGRUb3VjaGVzVG9FdmVudChlKTtcbiAgICAgIHRvdWNoY2FuY2VsSGFuZGxlcihlKTtcbiAgICB9KTtcbiAgICByLnJlZ2lzdGVyQmluZGluZyhyLmNvbnRhaW5lciwgJ3BvaW50ZXJtb3ZlJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmIChwb2ludGVySXNNb3VzZShlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IC8vIG1vdXNlIGFscmVhZHkgaGFuZGxlZFxuXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB1cGRhdGVQb2ludGVyKGUpO1xuICAgICAgYWRkVG91Y2hlc1RvRXZlbnQoZSk7XG4gICAgICB0b3VjaG1vdmVIYW5kbGVyKGUpO1xuICAgIH0pO1xuICB9XG59O1xuXG52YXIgQlJwJDIgPSB7fTtcbkJScCQyLmdlbmVyYXRlUG9seWdvbiA9IGZ1bmN0aW9uIChuYW1lLCBwb2ludHMpIHtcbiAgcmV0dXJuIHRoaXMubm9kZVNoYXBlc1tuYW1lXSA9IHtcbiAgICByZW5kZXJlcjogdGhpcyxcbiAgICBuYW1lOiBuYW1lLFxuICAgIHBvaW50czogcG9pbnRzLFxuICAgIGRyYXc6IGZ1bmN0aW9uIGRyYXcoY29udGV4dCwgY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgY29ybmVyUmFkaXVzKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLm5vZGVTaGFwZUltcGwoJ3BvbHlnb24nLCBjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCB0aGlzLnBvaW50cyk7XG4gICAgfSxcbiAgICBpbnRlcnNlY3RMaW5lOiBmdW5jdGlvbiBpbnRlcnNlY3RMaW5lKG5vZGVYLCBub2RlWSwgd2lkdGgsIGhlaWdodCwgeCwgeSwgcGFkZGluZywgY29ybmVyUmFkaXVzKSB7XG4gICAgICByZXR1cm4gcG9seWdvbkludGVyc2VjdExpbmUoeCwgeSwgdGhpcy5wb2ludHMsIG5vZGVYLCBub2RlWSwgd2lkdGggLyAyLCBoZWlnaHQgLyAyLCBwYWRkaW5nKTtcbiAgICB9LFxuICAgIGNoZWNrUG9pbnQ6IGZ1bmN0aW9uIGNoZWNrUG9pbnQoeCwgeSwgcGFkZGluZywgd2lkdGgsIGhlaWdodCwgY2VudGVyWCwgY2VudGVyWSwgY29ybmVyUmFkaXVzKSB7XG4gICAgICByZXR1cm4gcG9pbnRJbnNpZGVQb2x5Z29uKHgsIHksIHRoaXMucG9pbnRzLCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCBbMCwgLTFdLCBwYWRkaW5nKTtcbiAgICB9XG4gIH07XG59O1xuQlJwJDIuZ2VuZXJhdGVFbGxpcHNlID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5ub2RlU2hhcGVzWydlbGxpcHNlJ10gPSB7XG4gICAgcmVuZGVyZXI6IHRoaXMsXG4gICAgbmFtZTogJ2VsbGlwc2UnLFxuICAgIGRyYXc6IGZ1bmN0aW9uIGRyYXcoY29udGV4dCwgY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgY29ybmVyUmFkaXVzKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLm5vZGVTaGFwZUltcGwodGhpcy5uYW1lLCBjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICB9LFxuICAgIGludGVyc2VjdExpbmU6IGZ1bmN0aW9uIGludGVyc2VjdExpbmUobm9kZVgsIG5vZGVZLCB3aWR0aCwgaGVpZ2h0LCB4LCB5LCBwYWRkaW5nLCBjb3JuZXJSYWRpdXMpIHtcbiAgICAgIHJldHVybiBpbnRlcnNlY3RMaW5lRWxsaXBzZSh4LCB5LCBub2RlWCwgbm9kZVksIHdpZHRoIC8gMiArIHBhZGRpbmcsIGhlaWdodCAvIDIgKyBwYWRkaW5nKTtcbiAgICB9LFxuICAgIGNoZWNrUG9pbnQ6IGZ1bmN0aW9uIGNoZWNrUG9pbnQoeCwgeSwgcGFkZGluZywgd2lkdGgsIGhlaWdodCwgY2VudGVyWCwgY2VudGVyWSwgY29ybmVyUmFkaXVzKSB7XG4gICAgICByZXR1cm4gY2hlY2tJbkVsbGlwc2UoeCwgeSwgd2lkdGgsIGhlaWdodCwgY2VudGVyWCwgY2VudGVyWSwgcGFkZGluZyk7XG4gICAgfVxuICB9O1xufTtcbkJScCQyLmdlbmVyYXRlUm91bmRQb2x5Z29uID0gZnVuY3Rpb24gKG5hbWUsIHBvaW50cykge1xuICByZXR1cm4gdGhpcy5ub2RlU2hhcGVzW25hbWVdID0ge1xuICAgIHJlbmRlcmVyOiB0aGlzLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgcG9pbnRzOiBwb2ludHMsXG4gICAgZ2V0T3JDcmVhdGVDb3JuZXJzOiBmdW5jdGlvbiBnZXRPckNyZWF0ZUNvcm5lcnMoY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgY29ybmVyUmFkaXVzLCBycywgZmllbGQpIHtcbiAgICAgIGlmIChyc1tmaWVsZF0gIT09IHVuZGVmaW5lZCAmJiByc1tmaWVsZCArICctY3gnXSA9PT0gY2VudGVyWCAmJiByc1tmaWVsZCArICctY3knXSA9PT0gY2VudGVyWSkge1xuICAgICAgICByZXR1cm4gcnNbZmllbGRdO1xuICAgICAgfVxuICAgICAgcnNbZmllbGRdID0gbmV3IEFycmF5KHBvaW50cy5sZW5ndGggLyAyKTtcbiAgICAgIHJzW2ZpZWxkICsgJy1jeCddID0gY2VudGVyWDtcbiAgICAgIHJzW2ZpZWxkICsgJy1jeSddID0gY2VudGVyWTtcbiAgICAgIHZhciBoYWxmVyA9IHdpZHRoIC8gMjtcbiAgICAgIHZhciBoYWxmSCA9IGhlaWdodCAvIDI7XG4gICAgICBjb3JuZXJSYWRpdXMgPSBjb3JuZXJSYWRpdXMgPT09ICdhdXRvJyA/IGdldFJvdW5kUG9seWdvblJhZGl1cyh3aWR0aCwgaGVpZ2h0KSA6IGNvcm5lclJhZGl1cztcbiAgICAgIHZhciBwID0gbmV3IEFycmF5KHBvaW50cy5sZW5ndGggLyAyKTtcbiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBwb2ludHMubGVuZ3RoIC8gMjsgX2krKykge1xuICAgICAgICBwW19pXSA9IHtcbiAgICAgICAgICB4OiBjZW50ZXJYICsgaGFsZlcgKiBwb2ludHNbX2kgKiAyXSxcbiAgICAgICAgICB5OiBjZW50ZXJZICsgaGFsZkggKiBwb2ludHNbX2kgKiAyICsgMV1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHZhciBpLFxuICAgICAgICBwMSxcbiAgICAgICAgcDIsXG4gICAgICAgIHAzLFxuICAgICAgICBsZW4gPSBwLmxlbmd0aDtcbiAgICAgIHAxID0gcFtsZW4gLSAxXTtcbiAgICAgIC8vIGZvciBlYWNoIHBvaW50XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgcDIgPSBwW2kgJSBsZW5dO1xuICAgICAgICBwMyA9IHBbKGkgKyAxKSAlIGxlbl07XG4gICAgICAgIHJzW2ZpZWxkXVtpXSA9IGdldFJvdW5kQ29ybmVyKHAxLCBwMiwgcDMsIGNvcm5lclJhZGl1cyk7XG4gICAgICAgIHAxID0gcDI7XG4gICAgICAgIHAyID0gcDM7XG4gICAgICB9XG4gICAgICByZXR1cm4gcnNbZmllbGRdO1xuICAgIH0sXG4gICAgZHJhdzogZnVuY3Rpb24gZHJhdyhjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCBjb3JuZXJSYWRpdXMsIHJzKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLm5vZGVTaGFwZUltcGwoJ3JvdW5kLXBvbHlnb24nLCBjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCB0aGlzLnBvaW50cywgdGhpcy5nZXRPckNyZWF0ZUNvcm5lcnMoY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgY29ybmVyUmFkaXVzLCBycywgJ2RyYXdDb3JuZXJzJykpO1xuICAgIH0sXG4gICAgaW50ZXJzZWN0TGluZTogZnVuY3Rpb24gaW50ZXJzZWN0TGluZShub2RlWCwgbm9kZVksIHdpZHRoLCBoZWlnaHQsIHgsIHksIHBhZGRpbmcsIGNvcm5lclJhZGl1cywgcnMpIHtcbiAgICAgIHJldHVybiByb3VuZFBvbHlnb25JbnRlcnNlY3RMaW5lKHgsIHksIHRoaXMucG9pbnRzLCBub2RlWCwgbm9kZVksIHdpZHRoLCBoZWlnaHQsIHBhZGRpbmcsIHRoaXMuZ2V0T3JDcmVhdGVDb3JuZXJzKG5vZGVYLCBub2RlWSwgd2lkdGgsIGhlaWdodCwgY29ybmVyUmFkaXVzLCBycywgJ2Nvcm5lcnMnKSk7XG4gICAgfSxcbiAgICBjaGVja1BvaW50OiBmdW5jdGlvbiBjaGVja1BvaW50KHgsIHksIHBhZGRpbmcsIHdpZHRoLCBoZWlnaHQsIGNlbnRlclgsIGNlbnRlclksIGNvcm5lclJhZGl1cywgcnMpIHtcbiAgICAgIHJldHVybiBwb2ludEluc2lkZVJvdW5kUG9seWdvbih4LCB5LCB0aGlzLnBvaW50cywgY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgdGhpcy5nZXRPckNyZWF0ZUNvcm5lcnMoY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgY29ybmVyUmFkaXVzLCBycywgJ2Nvcm5lcnMnKSk7XG4gICAgfVxuICB9O1xufTtcbkJScCQyLmdlbmVyYXRlUm91bmRSZWN0YW5nbGUgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLm5vZGVTaGFwZXNbJ3JvdW5kLXJlY3RhbmdsZSddID0gdGhpcy5ub2RlU2hhcGVzWydyb3VuZHJlY3RhbmdsZSddID0ge1xuICAgIHJlbmRlcmVyOiB0aGlzLFxuICAgIG5hbWU6ICdyb3VuZC1yZWN0YW5nbGUnLFxuICAgIHBvaW50czogZ2VuZXJhdGVVbml0TmdvblBvaW50c0ZpdFRvU3F1YXJlKDQsIDApLFxuICAgIGRyYXc6IGZ1bmN0aW9uIGRyYXcoY29udGV4dCwgY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgY29ybmVyUmFkaXVzKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLm5vZGVTaGFwZUltcGwodGhpcy5uYW1lLCBjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCB0aGlzLnBvaW50cywgY29ybmVyUmFkaXVzKTtcbiAgICB9LFxuICAgIGludGVyc2VjdExpbmU6IGZ1bmN0aW9uIGludGVyc2VjdExpbmUobm9kZVgsIG5vZGVZLCB3aWR0aCwgaGVpZ2h0LCB4LCB5LCBwYWRkaW5nLCBjb3JuZXJSYWRpdXMpIHtcbiAgICAgIHJldHVybiByb3VuZFJlY3RhbmdsZUludGVyc2VjdExpbmUoeCwgeSwgbm9kZVgsIG5vZGVZLCB3aWR0aCwgaGVpZ2h0LCBwYWRkaW5nLCBjb3JuZXJSYWRpdXMpO1xuICAgIH0sXG4gICAgY2hlY2tQb2ludDogZnVuY3Rpb24gY2hlY2tQb2ludCh4LCB5LCBwYWRkaW5nLCB3aWR0aCwgaGVpZ2h0LCBjZW50ZXJYLCBjZW50ZXJZLCBjb3JuZXJSYWRpdXMpIHtcbiAgICAgIHZhciBoYWxmV2lkdGggPSB3aWR0aCAvIDI7XG4gICAgICB2YXIgaGFsZkhlaWdodCA9IGhlaWdodCAvIDI7XG4gICAgICBjb3JuZXJSYWRpdXMgPSBjb3JuZXJSYWRpdXMgPT09ICdhdXRvJyA/IGdldFJvdW5kUmVjdGFuZ2xlUmFkaXVzKHdpZHRoLCBoZWlnaHQpIDogY29ybmVyUmFkaXVzO1xuICAgICAgY29ybmVyUmFkaXVzID0gTWF0aC5taW4oaGFsZldpZHRoLCBoYWxmSGVpZ2h0LCBjb3JuZXJSYWRpdXMpO1xuICAgICAgdmFyIGRpYW0gPSBjb3JuZXJSYWRpdXMgKiAyO1xuXG4gICAgICAvLyBDaGVjayBoQm94XG4gICAgICBpZiAocG9pbnRJbnNpZGVQb2x5Z29uKHgsIHksIHRoaXMucG9pbnRzLCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0IC0gZGlhbSwgWzAsIC0xXSwgcGFkZGluZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIHZCb3hcbiAgICAgIGlmIChwb2ludEluc2lkZVBvbHlnb24oeCwgeSwgdGhpcy5wb2ludHMsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoIC0gZGlhbSwgaGVpZ2h0LCBbMCwgLTFdLCBwYWRkaW5nKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgdG9wIGxlZnQgcXVhcnRlciBjaXJjbGVcbiAgICAgIGlmIChjaGVja0luRWxsaXBzZSh4LCB5LCBkaWFtLCBkaWFtLCBjZW50ZXJYIC0gaGFsZldpZHRoICsgY29ybmVyUmFkaXVzLCBjZW50ZXJZIC0gaGFsZkhlaWdodCArIGNvcm5lclJhZGl1cywgcGFkZGluZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIHRvcCByaWdodCBxdWFydGVyIGNpcmNsZVxuICAgICAgaWYgKGNoZWNrSW5FbGxpcHNlKHgsIHksIGRpYW0sIGRpYW0sIGNlbnRlclggKyBoYWxmV2lkdGggLSBjb3JuZXJSYWRpdXMsIGNlbnRlclkgLSBoYWxmSGVpZ2h0ICsgY29ybmVyUmFkaXVzLCBwYWRkaW5nKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgYm90dG9tIHJpZ2h0IHF1YXJ0ZXIgY2lyY2xlXG4gICAgICBpZiAoY2hlY2tJbkVsbGlwc2UoeCwgeSwgZGlhbSwgZGlhbSwgY2VudGVyWCArIGhhbGZXaWR0aCAtIGNvcm5lclJhZGl1cywgY2VudGVyWSArIGhhbGZIZWlnaHQgLSBjb3JuZXJSYWRpdXMsIHBhZGRpbmcpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBib3R0b20gbGVmdCBxdWFydGVyIGNpcmNsZVxuICAgICAgaWYgKGNoZWNrSW5FbGxpcHNlKHgsIHksIGRpYW0sIGRpYW0sIGNlbnRlclggLSBoYWxmV2lkdGggKyBjb3JuZXJSYWRpdXMsIGNlbnRlclkgKyBoYWxmSGVpZ2h0IC0gY29ybmVyUmFkaXVzLCBwYWRkaW5nKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH07XG59O1xuQlJwJDIuZ2VuZXJhdGVDdXRSZWN0YW5nbGUgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLm5vZGVTaGFwZXNbJ2N1dC1yZWN0YW5nbGUnXSA9IHRoaXMubm9kZVNoYXBlc1snY3V0cmVjdGFuZ2xlJ10gPSB7XG4gICAgcmVuZGVyZXI6IHRoaXMsXG4gICAgbmFtZTogJ2N1dC1yZWN0YW5nbGUnLFxuICAgIGNvcm5lckxlbmd0aDogZ2V0Q3V0UmVjdGFuZ2xlQ29ybmVyTGVuZ3RoKCksXG4gICAgcG9pbnRzOiBnZW5lcmF0ZVVuaXROZ29uUG9pbnRzRml0VG9TcXVhcmUoNCwgMCksXG4gICAgZHJhdzogZnVuY3Rpb24gZHJhdyhjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCBjb3JuZXJSYWRpdXMpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIubm9kZVNoYXBlSW1wbCh0aGlzLm5hbWUsIGNvbnRleHQsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoLCBoZWlnaHQsIG51bGwsIGNvcm5lclJhZGl1cyk7XG4gICAgfSxcbiAgICBnZW5lcmF0ZUN1dFRyaWFuZ2xlUHRzOiBmdW5jdGlvbiBnZW5lcmF0ZUN1dFRyaWFuZ2xlUHRzKHdpZHRoLCBoZWlnaHQsIGNlbnRlclgsIGNlbnRlclksIGNvcm5lclJhZGl1cykge1xuICAgICAgdmFyIGNsID0gY29ybmVyUmFkaXVzID09PSAnYXV0bycgPyB0aGlzLmNvcm5lckxlbmd0aCA6IGNvcm5lclJhZGl1cztcbiAgICAgIHZhciBoaCA9IGhlaWdodCAvIDI7XG4gICAgICB2YXIgaHcgPSB3aWR0aCAvIDI7XG4gICAgICB2YXIgeEJlZ2luID0gY2VudGVyWCAtIGh3O1xuICAgICAgdmFyIHhFbmQgPSBjZW50ZXJYICsgaHc7XG4gICAgICB2YXIgeUJlZ2luID0gY2VudGVyWSAtIGhoO1xuICAgICAgdmFyIHlFbmQgPSBjZW50ZXJZICsgaGg7XG5cbiAgICAgIC8vIHBvaW50cyBhcmUgaW4gY2xvY2t3aXNlIG9yZGVyLCBpbm5lciAoaW1hZ2luYXJ5KSB0cmlhbmdsZSBwdCBvbiBbNCwgNV1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvcExlZnQ6IFt4QmVnaW4sIHlCZWdpbiArIGNsLCB4QmVnaW4gKyBjbCwgeUJlZ2luLCB4QmVnaW4gKyBjbCwgeUJlZ2luICsgY2xdLFxuICAgICAgICB0b3BSaWdodDogW3hFbmQgLSBjbCwgeUJlZ2luLCB4RW5kLCB5QmVnaW4gKyBjbCwgeEVuZCAtIGNsLCB5QmVnaW4gKyBjbF0sXG4gICAgICAgIGJvdHRvbVJpZ2h0OiBbeEVuZCwgeUVuZCAtIGNsLCB4RW5kIC0gY2wsIHlFbmQsIHhFbmQgLSBjbCwgeUVuZCAtIGNsXSxcbiAgICAgICAgYm90dG9tTGVmdDogW3hCZWdpbiArIGNsLCB5RW5kLCB4QmVnaW4sIHlFbmQgLSBjbCwgeEJlZ2luICsgY2wsIHlFbmQgLSBjbF1cbiAgICAgIH07XG4gICAgfSxcbiAgICBpbnRlcnNlY3RMaW5lOiBmdW5jdGlvbiBpbnRlcnNlY3RMaW5lKG5vZGVYLCBub2RlWSwgd2lkdGgsIGhlaWdodCwgeCwgeSwgcGFkZGluZywgY29ybmVyUmFkaXVzKSB7XG4gICAgICB2YXIgY1B0cyA9IHRoaXMuZ2VuZXJhdGVDdXRUcmlhbmdsZVB0cyh3aWR0aCArIDIgKiBwYWRkaW5nLCBoZWlnaHQgKyAyICogcGFkZGluZywgbm9kZVgsIG5vZGVZLCBjb3JuZXJSYWRpdXMpO1xuICAgICAgdmFyIHB0cyA9IFtdLmNvbmNhdC5hcHBseShbXSwgW2NQdHMudG9wTGVmdC5zcGxpY2UoMCwgNCksIGNQdHMudG9wUmlnaHQuc3BsaWNlKDAsIDQpLCBjUHRzLmJvdHRvbVJpZ2h0LnNwbGljZSgwLCA0KSwgY1B0cy5ib3R0b21MZWZ0LnNwbGljZSgwLCA0KV0pO1xuICAgICAgcmV0dXJuIHBvbHlnb25JbnRlcnNlY3RMaW5lKHgsIHksIHB0cywgbm9kZVgsIG5vZGVZKTtcbiAgICB9LFxuICAgIGNoZWNrUG9pbnQ6IGZ1bmN0aW9uIGNoZWNrUG9pbnQoeCwgeSwgcGFkZGluZywgd2lkdGgsIGhlaWdodCwgY2VudGVyWCwgY2VudGVyWSwgY29ybmVyUmFkaXVzKSB7XG4gICAgICB2YXIgY2wgPSBjb3JuZXJSYWRpdXMgPT09ICdhdXRvJyA/IHRoaXMuY29ybmVyTGVuZ3RoIDogY29ybmVyUmFkaXVzO1xuICAgICAgLy8gQ2hlY2sgaEJveFxuICAgICAgaWYgKHBvaW50SW5zaWRlUG9seWdvbih4LCB5LCB0aGlzLnBvaW50cywgY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCAtIDIgKiBjbCwgWzAsIC0xXSwgcGFkZGluZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIHZCb3hcbiAgICAgIGlmIChwb2ludEluc2lkZVBvbHlnb24oeCwgeSwgdGhpcy5wb2ludHMsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoIC0gMiAqIGNsLCBoZWlnaHQsIFswLCAtMV0sIHBhZGRpbmcpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgdmFyIGN1dFRyaWFuZ2xlUHRzID0gdGhpcy5nZW5lcmF0ZUN1dFRyaWFuZ2xlUHRzKHdpZHRoLCBoZWlnaHQsIGNlbnRlclgsIGNlbnRlclkpO1xuICAgICAgcmV0dXJuIHBvaW50SW5zaWRlUG9seWdvblBvaW50cyh4LCB5LCBjdXRUcmlhbmdsZVB0cy50b3BMZWZ0KSB8fCBwb2ludEluc2lkZVBvbHlnb25Qb2ludHMoeCwgeSwgY3V0VHJpYW5nbGVQdHMudG9wUmlnaHQpIHx8IHBvaW50SW5zaWRlUG9seWdvblBvaW50cyh4LCB5LCBjdXRUcmlhbmdsZVB0cy5ib3R0b21SaWdodCkgfHwgcG9pbnRJbnNpZGVQb2x5Z29uUG9pbnRzKHgsIHksIGN1dFRyaWFuZ2xlUHRzLmJvdHRvbUxlZnQpO1xuICAgIH1cbiAgfTtcbn07XG5CUnAkMi5nZW5lcmF0ZUJhcnJlbCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMubm9kZVNoYXBlc1snYmFycmVsJ10gPSB7XG4gICAgcmVuZGVyZXI6IHRoaXMsXG4gICAgbmFtZTogJ2JhcnJlbCcsXG4gICAgcG9pbnRzOiBnZW5lcmF0ZVVuaXROZ29uUG9pbnRzRml0VG9TcXVhcmUoNCwgMCksXG4gICAgZHJhdzogZnVuY3Rpb24gZHJhdyhjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCBjb3JuZXJSYWRpdXMpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIubm9kZVNoYXBlSW1wbCh0aGlzLm5hbWUsIGNvbnRleHQsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoLCBoZWlnaHQpO1xuICAgIH0sXG4gICAgaW50ZXJzZWN0TGluZTogZnVuY3Rpb24gaW50ZXJzZWN0TGluZShub2RlWCwgbm9kZVksIHdpZHRoLCBoZWlnaHQsIHgsIHksIHBhZGRpbmcsIGNvcm5lclJhZGl1cykge1xuICAgICAgLy8gdXNlIHR3byBmaXhlZCB0IHZhbHVlcyBmb3IgdGhlIGJlemllciBjdXJ2ZSBhcHByb3hpbWF0aW9uXG5cbiAgICAgIHZhciB0MCA9IDAuMTU7XG4gICAgICB2YXIgdDEgPSAwLjU7XG4gICAgICB2YXIgdDIgPSAwLjg1O1xuICAgICAgdmFyIGJQdHMgPSB0aGlzLmdlbmVyYXRlQmFycmVsQmV6aWVyUHRzKHdpZHRoICsgMiAqIHBhZGRpbmcsIGhlaWdodCArIDIgKiBwYWRkaW5nLCBub2RlWCwgbm9kZVkpO1xuICAgICAgdmFyIGFwcHJveGltYXRlQmFycmVsQ3VydmVQdHMgPSBmdW5jdGlvbiBhcHByb3hpbWF0ZUJhcnJlbEN1cnZlUHRzKHB0cykge1xuICAgICAgICAvLyBhcHByb3hpbWF0ZSBjdXJ2ZSBwdHMgYmFzZWQgb24gdGhlIHR3byB0IHZhbHVlc1xuICAgICAgICB2YXIgbTAgPSBxYmV6aWVyUHRBdCh7XG4gICAgICAgICAgeDogcHRzWzBdLFxuICAgICAgICAgIHk6IHB0c1sxXVxuICAgICAgICB9LCB7XG4gICAgICAgICAgeDogcHRzWzJdLFxuICAgICAgICAgIHk6IHB0c1szXVxuICAgICAgICB9LCB7XG4gICAgICAgICAgeDogcHRzWzRdLFxuICAgICAgICAgIHk6IHB0c1s1XVxuICAgICAgICB9LCB0MCk7XG4gICAgICAgIHZhciBtMSA9IHFiZXppZXJQdEF0KHtcbiAgICAgICAgICB4OiBwdHNbMF0sXG4gICAgICAgICAgeTogcHRzWzFdXG4gICAgICAgIH0sIHtcbiAgICAgICAgICB4OiBwdHNbMl0sXG4gICAgICAgICAgeTogcHRzWzNdXG4gICAgICAgIH0sIHtcbiAgICAgICAgICB4OiBwdHNbNF0sXG4gICAgICAgICAgeTogcHRzWzVdXG4gICAgICAgIH0sIHQxKTtcbiAgICAgICAgdmFyIG0yID0gcWJlemllclB0QXQoe1xuICAgICAgICAgIHg6IHB0c1swXSxcbiAgICAgICAgICB5OiBwdHNbMV1cbiAgICAgICAgfSwge1xuICAgICAgICAgIHg6IHB0c1syXSxcbiAgICAgICAgICB5OiBwdHNbM11cbiAgICAgICAgfSwge1xuICAgICAgICAgIHg6IHB0c1s0XSxcbiAgICAgICAgICB5OiBwdHNbNV1cbiAgICAgICAgfSwgdDIpO1xuICAgICAgICByZXR1cm4gW3B0c1swXSwgcHRzWzFdLCBtMC54LCBtMC55LCBtMS54LCBtMS55LCBtMi54LCBtMi55LCBwdHNbNF0sIHB0c1s1XV07XG4gICAgICB9O1xuICAgICAgdmFyIHB0cyA9IFtdLmNvbmNhdChhcHByb3hpbWF0ZUJhcnJlbEN1cnZlUHRzKGJQdHMudG9wTGVmdCksIGFwcHJveGltYXRlQmFycmVsQ3VydmVQdHMoYlB0cy50b3BSaWdodCksIGFwcHJveGltYXRlQmFycmVsQ3VydmVQdHMoYlB0cy5ib3R0b21SaWdodCksIGFwcHJveGltYXRlQmFycmVsQ3VydmVQdHMoYlB0cy5ib3R0b21MZWZ0KSk7XG4gICAgICByZXR1cm4gcG9seWdvbkludGVyc2VjdExpbmUoeCwgeSwgcHRzLCBub2RlWCwgbm9kZVkpO1xuICAgIH0sXG4gICAgZ2VuZXJhdGVCYXJyZWxCZXppZXJQdHM6IGZ1bmN0aW9uIGdlbmVyYXRlQmFycmVsQmV6aWVyUHRzKHdpZHRoLCBoZWlnaHQsIGNlbnRlclgsIGNlbnRlclkpIHtcbiAgICAgIHZhciBoaCA9IGhlaWdodCAvIDI7XG4gICAgICB2YXIgaHcgPSB3aWR0aCAvIDI7XG4gICAgICB2YXIgeEJlZ2luID0gY2VudGVyWCAtIGh3O1xuICAgICAgdmFyIHhFbmQgPSBjZW50ZXJYICsgaHc7XG4gICAgICB2YXIgeUJlZ2luID0gY2VudGVyWSAtIGhoO1xuICAgICAgdmFyIHlFbmQgPSBjZW50ZXJZICsgaGg7XG4gICAgICB2YXIgY3VydmVDb25zdGFudHMgPSBnZXRCYXJyZWxDdXJ2ZUNvbnN0YW50cyh3aWR0aCwgaGVpZ2h0KTtcbiAgICAgIHZhciBoT2Zmc2V0ID0gY3VydmVDb25zdGFudHMuaGVpZ2h0T2Zmc2V0O1xuICAgICAgdmFyIHdPZmZzZXQgPSBjdXJ2ZUNvbnN0YW50cy53aWR0aE9mZnNldDtcbiAgICAgIHZhciBjdHJsUHRYT2Zmc2V0ID0gY3VydmVDb25zdGFudHMuY3RybFB0T2Zmc2V0UGN0ICogd2lkdGg7XG5cbiAgICAgIC8vIHBvaW50cyBhcmUgaW4gY2xvY2t3aXNlIG9yZGVyLCBpbm5lciAoaW1hZ2luYXJ5KSBjb250cm9sIHB0IG9uIFs0LCA1XVxuICAgICAgdmFyIHB0cyA9IHtcbiAgICAgICAgdG9wTGVmdDogW3hCZWdpbiwgeUJlZ2luICsgaE9mZnNldCwgeEJlZ2luICsgY3RybFB0WE9mZnNldCwgeUJlZ2luLCB4QmVnaW4gKyB3T2Zmc2V0LCB5QmVnaW5dLFxuICAgICAgICB0b3BSaWdodDogW3hFbmQgLSB3T2Zmc2V0LCB5QmVnaW4sIHhFbmQgLSBjdHJsUHRYT2Zmc2V0LCB5QmVnaW4sIHhFbmQsIHlCZWdpbiArIGhPZmZzZXRdLFxuICAgICAgICBib3R0b21SaWdodDogW3hFbmQsIHlFbmQgLSBoT2Zmc2V0LCB4RW5kIC0gY3RybFB0WE9mZnNldCwgeUVuZCwgeEVuZCAtIHdPZmZzZXQsIHlFbmRdLFxuICAgICAgICBib3R0b21MZWZ0OiBbeEJlZ2luICsgd09mZnNldCwgeUVuZCwgeEJlZ2luICsgY3RybFB0WE9mZnNldCwgeUVuZCwgeEJlZ2luLCB5RW5kIC0gaE9mZnNldF1cbiAgICAgIH07XG4gICAgICBwdHMudG9wTGVmdC5pc1RvcCA9IHRydWU7XG4gICAgICBwdHMudG9wUmlnaHQuaXNUb3AgPSB0cnVlO1xuICAgICAgcHRzLmJvdHRvbUxlZnQuaXNCb3R0b20gPSB0cnVlO1xuICAgICAgcHRzLmJvdHRvbVJpZ2h0LmlzQm90dG9tID0gdHJ1ZTtcbiAgICAgIHJldHVybiBwdHM7XG4gICAgfSxcbiAgICBjaGVja1BvaW50OiBmdW5jdGlvbiBjaGVja1BvaW50KHgsIHksIHBhZGRpbmcsIHdpZHRoLCBoZWlnaHQsIGNlbnRlclgsIGNlbnRlclksIGNvcm5lclJhZGl1cykge1xuICAgICAgdmFyIGN1cnZlQ29uc3RhbnRzID0gZ2V0QmFycmVsQ3VydmVDb25zdGFudHMod2lkdGgsIGhlaWdodCk7XG4gICAgICB2YXIgaE9mZnNldCA9IGN1cnZlQ29uc3RhbnRzLmhlaWdodE9mZnNldDtcbiAgICAgIHZhciB3T2Zmc2V0ID0gY3VydmVDb25zdGFudHMud2lkdGhPZmZzZXQ7XG5cbiAgICAgIC8vIENoZWNrIGhCb3hcbiAgICAgIGlmIChwb2ludEluc2lkZVBvbHlnb24oeCwgeSwgdGhpcy5wb2ludHMsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoLCBoZWlnaHQgLSAyICogaE9mZnNldCwgWzAsIC0xXSwgcGFkZGluZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIHZCb3hcbiAgICAgIGlmIChwb2ludEluc2lkZVBvbHlnb24oeCwgeSwgdGhpcy5wb2ludHMsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoIC0gMiAqIHdPZmZzZXQsIGhlaWdodCwgWzAsIC0xXSwgcGFkZGluZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgYmFycmVsQ3VydmVQdHMgPSB0aGlzLmdlbmVyYXRlQmFycmVsQmV6aWVyUHRzKHdpZHRoLCBoZWlnaHQsIGNlbnRlclgsIGNlbnRlclkpO1xuICAgICAgdmFyIGdldEN1cnZlVCA9IGZ1bmN0aW9uIGdldEN1cnZlVCh4LCB5LCBjdXJ2ZVB0cykge1xuICAgICAgICB2YXIgeDAgPSBjdXJ2ZVB0c1s0XTtcbiAgICAgICAgdmFyIHgxID0gY3VydmVQdHNbMl07XG4gICAgICAgIHZhciB4MiA9IGN1cnZlUHRzWzBdO1xuICAgICAgICB2YXIgeTAgPSBjdXJ2ZVB0c1s1XTtcbiAgICAgICAgLy8gdmFyIHkxID0gY3VydmVQdHNbIDMgXTtcbiAgICAgICAgdmFyIHkyID0gY3VydmVQdHNbMV07XG4gICAgICAgIHZhciB4TWluID0gTWF0aC5taW4oeDAsIHgyKTtcbiAgICAgICAgdmFyIHhNYXggPSBNYXRoLm1heCh4MCwgeDIpO1xuICAgICAgICB2YXIgeU1pbiA9IE1hdGgubWluKHkwLCB5Mik7XG4gICAgICAgIHZhciB5TWF4ID0gTWF0aC5tYXgoeTAsIHkyKTtcbiAgICAgICAgaWYgKHhNaW4gPD0geCAmJiB4IDw9IHhNYXggJiYgeU1pbiA8PSB5ICYmIHkgPD0geU1heCkge1xuICAgICAgICAgIHZhciBjb2VmZiA9IGJlemllclB0c1RvUXVhZENvZWZmKHgwLCB4MSwgeDIpO1xuICAgICAgICAgIHZhciByb290cyA9IHNvbHZlUXVhZHJhdGljKGNvZWZmWzBdLCBjb2VmZlsxXSwgY29lZmZbMl0sIHgpO1xuICAgICAgICAgIHZhciB2YWxpZFJvb3RzID0gcm9vdHMuZmlsdGVyKGZ1bmN0aW9uIChyKSB7XG4gICAgICAgICAgICByZXR1cm4gMCA8PSByICYmIHIgPD0gMTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAodmFsaWRSb290cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsaWRSb290c1swXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9O1xuICAgICAgdmFyIGN1cnZlUmVnaW9ucyA9IE9iamVjdC5rZXlzKGJhcnJlbEN1cnZlUHRzKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY3VydmVSZWdpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjb3JuZXIgPSBjdXJ2ZVJlZ2lvbnNbaV07XG4gICAgICAgIHZhciBjb3JuZXJQdHMgPSBiYXJyZWxDdXJ2ZVB0c1tjb3JuZXJdO1xuICAgICAgICB2YXIgdCA9IGdldEN1cnZlVCh4LCB5LCBjb3JuZXJQdHMpO1xuICAgICAgICBpZiAodCA9PSBudWxsKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHkwID0gY29ybmVyUHRzWzVdO1xuICAgICAgICB2YXIgeTEgPSBjb3JuZXJQdHNbM107XG4gICAgICAgIHZhciB5MiA9IGNvcm5lclB0c1sxXTtcbiAgICAgICAgdmFyIGJlelkgPSBxYmV6aWVyQXQoeTAsIHkxLCB5MiwgdCk7XG4gICAgICAgIGlmIChjb3JuZXJQdHMuaXNUb3AgJiYgYmV6WSA8PSB5KSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvcm5lclB0cy5pc0JvdHRvbSAmJiB5IDw9IGJlelkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcbn07XG5CUnAkMi5nZW5lcmF0ZUJvdHRvbVJvdW5kcmVjdGFuZ2xlID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5ub2RlU2hhcGVzWydib3R0b20tcm91bmQtcmVjdGFuZ2xlJ10gPSB0aGlzLm5vZGVTaGFwZXNbJ2JvdHRvbXJvdW5kcmVjdGFuZ2xlJ10gPSB7XG4gICAgcmVuZGVyZXI6IHRoaXMsXG4gICAgbmFtZTogJ2JvdHRvbS1yb3VuZC1yZWN0YW5nbGUnLFxuICAgIHBvaW50czogZ2VuZXJhdGVVbml0TmdvblBvaW50c0ZpdFRvU3F1YXJlKDQsIDApLFxuICAgIGRyYXc6IGZ1bmN0aW9uIGRyYXcoY29udGV4dCwgY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgY29ybmVyUmFkaXVzKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLm5vZGVTaGFwZUltcGwodGhpcy5uYW1lLCBjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCB0aGlzLnBvaW50cywgY29ybmVyUmFkaXVzKTtcbiAgICB9LFxuICAgIGludGVyc2VjdExpbmU6IGZ1bmN0aW9uIGludGVyc2VjdExpbmUobm9kZVgsIG5vZGVZLCB3aWR0aCwgaGVpZ2h0LCB4LCB5LCBwYWRkaW5nLCBjb3JuZXJSYWRpdXMpIHtcbiAgICAgIHZhciB0b3BTdGFydFggPSBub2RlWCAtICh3aWR0aCAvIDIgKyBwYWRkaW5nKTtcbiAgICAgIHZhciB0b3BTdGFydFkgPSBub2RlWSAtIChoZWlnaHQgLyAyICsgcGFkZGluZyk7XG4gICAgICB2YXIgdG9wRW5kWSA9IHRvcFN0YXJ0WTtcbiAgICAgIHZhciB0b3BFbmRYID0gbm9kZVggKyAod2lkdGggLyAyICsgcGFkZGluZyk7XG4gICAgICB2YXIgdG9wSW50ZXJzZWN0aW9ucyA9IGZpbml0ZUxpbmVzSW50ZXJzZWN0KHgsIHksIG5vZGVYLCBub2RlWSwgdG9wU3RhcnRYLCB0b3BTdGFydFksIHRvcEVuZFgsIHRvcEVuZFksIGZhbHNlKTtcbiAgICAgIGlmICh0b3BJbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHRvcEludGVyc2VjdGlvbnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gcm91bmRSZWN0YW5nbGVJbnRlcnNlY3RMaW5lKHgsIHksIG5vZGVYLCBub2RlWSwgd2lkdGgsIGhlaWdodCwgcGFkZGluZywgY29ybmVyUmFkaXVzKTtcbiAgICB9LFxuICAgIGNoZWNrUG9pbnQ6IGZ1bmN0aW9uIGNoZWNrUG9pbnQoeCwgeSwgcGFkZGluZywgd2lkdGgsIGhlaWdodCwgY2VudGVyWCwgY2VudGVyWSwgY29ybmVyUmFkaXVzKSB7XG4gICAgICBjb3JuZXJSYWRpdXMgPSBjb3JuZXJSYWRpdXMgPT09ICdhdXRvJyA/IGdldFJvdW5kUmVjdGFuZ2xlUmFkaXVzKHdpZHRoLCBoZWlnaHQpIDogY29ybmVyUmFkaXVzO1xuICAgICAgdmFyIGRpYW0gPSAyICogY29ybmVyUmFkaXVzO1xuXG4gICAgICAvLyBDaGVjayBoQm94XG4gICAgICBpZiAocG9pbnRJbnNpZGVQb2x5Z29uKHgsIHksIHRoaXMucG9pbnRzLCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0IC0gZGlhbSwgWzAsIC0xXSwgcGFkZGluZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIHZCb3hcbiAgICAgIGlmIChwb2ludEluc2lkZVBvbHlnb24oeCwgeSwgdGhpcy5wb2ludHMsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoIC0gZGlhbSwgaGVpZ2h0LCBbMCwgLTFdLCBwYWRkaW5nKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2sgbm9uLXJvdW5kZWQgdG9wIHNpZGVcbiAgICAgIHZhciBvdXRlcldpZHRoID0gd2lkdGggLyAyICsgMiAqIHBhZGRpbmc7XG4gICAgICB2YXIgb3V0ZXJIZWlnaHQgPSBoZWlnaHQgLyAyICsgMiAqIHBhZGRpbmc7XG4gICAgICB2YXIgcG9pbnRzID0gW2NlbnRlclggLSBvdXRlcldpZHRoLCBjZW50ZXJZIC0gb3V0ZXJIZWlnaHQsIGNlbnRlclggLSBvdXRlcldpZHRoLCBjZW50ZXJZLCBjZW50ZXJYICsgb3V0ZXJXaWR0aCwgY2VudGVyWSwgY2VudGVyWCArIG91dGVyV2lkdGgsIGNlbnRlclkgLSBvdXRlckhlaWdodF07XG4gICAgICBpZiAocG9pbnRJbnNpZGVQb2x5Z29uUG9pbnRzKHgsIHksIHBvaW50cykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGJvdHRvbSByaWdodCBxdWFydGVyIGNpcmNsZVxuICAgICAgaWYgKGNoZWNrSW5FbGxpcHNlKHgsIHksIGRpYW0sIGRpYW0sIGNlbnRlclggKyB3aWR0aCAvIDIgLSBjb3JuZXJSYWRpdXMsIGNlbnRlclkgKyBoZWlnaHQgLyAyIC0gY29ybmVyUmFkaXVzLCBwYWRkaW5nKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgYm90dG9tIGxlZnQgcXVhcnRlciBjaXJjbGVcbiAgICAgIGlmIChjaGVja0luRWxsaXBzZSh4LCB5LCBkaWFtLCBkaWFtLCBjZW50ZXJYIC0gd2lkdGggLyAyICsgY29ybmVyUmFkaXVzLCBjZW50ZXJZICsgaGVpZ2h0IC8gMiAtIGNvcm5lclJhZGl1cywgcGFkZGluZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9O1xufTtcbkJScCQyLnJlZ2lzdGVyTm9kZVNoYXBlcyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIG5vZGVTaGFwZXMgPSB0aGlzLm5vZGVTaGFwZXMgPSB7fTtcbiAgdmFyIHJlbmRlcmVyID0gdGhpcztcbiAgdGhpcy5nZW5lcmF0ZUVsbGlwc2UoKTtcbiAgdGhpcy5nZW5lcmF0ZVBvbHlnb24oJ3RyaWFuZ2xlJywgZ2VuZXJhdGVVbml0TmdvblBvaW50c0ZpdFRvU3F1YXJlKDMsIDApKTtcbiAgdGhpcy5nZW5lcmF0ZVJvdW5kUG9seWdvbigncm91bmQtdHJpYW5nbGUnLCBnZW5lcmF0ZVVuaXROZ29uUG9pbnRzRml0VG9TcXVhcmUoMywgMCkpO1xuICB0aGlzLmdlbmVyYXRlUG9seWdvbigncmVjdGFuZ2xlJywgZ2VuZXJhdGVVbml0TmdvblBvaW50c0ZpdFRvU3F1YXJlKDQsIDApKTtcbiAgbm9kZVNoYXBlc1snc3F1YXJlJ10gPSBub2RlU2hhcGVzWydyZWN0YW5nbGUnXTtcbiAgdGhpcy5nZW5lcmF0ZVJvdW5kUmVjdGFuZ2xlKCk7XG4gIHRoaXMuZ2VuZXJhdGVDdXRSZWN0YW5nbGUoKTtcbiAgdGhpcy5nZW5lcmF0ZUJhcnJlbCgpO1xuICB0aGlzLmdlbmVyYXRlQm90dG9tUm91bmRyZWN0YW5nbGUoKTtcbiAge1xuICAgIHZhciBkaWFtb25kUG9pbnRzID0gWzAsIDEsIDEsIDAsIDAsIC0xLCAtMSwgMF07XG4gICAgdGhpcy5nZW5lcmF0ZVBvbHlnb24oJ2RpYW1vbmQnLCBkaWFtb25kUG9pbnRzKTtcbiAgICB0aGlzLmdlbmVyYXRlUm91bmRQb2x5Z29uKCdyb3VuZC1kaWFtb25kJywgZGlhbW9uZFBvaW50cyk7XG4gIH1cbiAgdGhpcy5nZW5lcmF0ZVBvbHlnb24oJ3BlbnRhZ29uJywgZ2VuZXJhdGVVbml0TmdvblBvaW50c0ZpdFRvU3F1YXJlKDUsIDApKTtcbiAgdGhpcy5nZW5lcmF0ZVJvdW5kUG9seWdvbigncm91bmQtcGVudGFnb24nLCBnZW5lcmF0ZVVuaXROZ29uUG9pbnRzRml0VG9TcXVhcmUoNSwgMCkpO1xuICB0aGlzLmdlbmVyYXRlUG9seWdvbignaGV4YWdvbicsIGdlbmVyYXRlVW5pdE5nb25Qb2ludHNGaXRUb1NxdWFyZSg2LCAwKSk7XG4gIHRoaXMuZ2VuZXJhdGVSb3VuZFBvbHlnb24oJ3JvdW5kLWhleGFnb24nLCBnZW5lcmF0ZVVuaXROZ29uUG9pbnRzRml0VG9TcXVhcmUoNiwgMCkpO1xuICB0aGlzLmdlbmVyYXRlUG9seWdvbignaGVwdGFnb24nLCBnZW5lcmF0ZVVuaXROZ29uUG9pbnRzRml0VG9TcXVhcmUoNywgMCkpO1xuICB0aGlzLmdlbmVyYXRlUm91bmRQb2x5Z29uKCdyb3VuZC1oZXB0YWdvbicsIGdlbmVyYXRlVW5pdE5nb25Qb2ludHNGaXRUb1NxdWFyZSg3LCAwKSk7XG4gIHRoaXMuZ2VuZXJhdGVQb2x5Z29uKCdvY3RhZ29uJywgZ2VuZXJhdGVVbml0TmdvblBvaW50c0ZpdFRvU3F1YXJlKDgsIDApKTtcbiAgdGhpcy5nZW5lcmF0ZVJvdW5kUG9seWdvbigncm91bmQtb2N0YWdvbicsIGdlbmVyYXRlVW5pdE5nb25Qb2ludHNGaXRUb1NxdWFyZSg4LCAwKSk7XG4gIHZhciBzdGFyNVBvaW50cyA9IG5ldyBBcnJheSgyMCk7XG4gIHtcbiAgICB2YXIgb3V0ZXJQb2ludHMgPSBnZW5lcmF0ZVVuaXROZ29uUG9pbnRzKDUsIDApO1xuICAgIHZhciBpbm5lclBvaW50cyA9IGdlbmVyYXRlVW5pdE5nb25Qb2ludHMoNSwgTWF0aC5QSSAvIDUpO1xuXG4gICAgLy8gT3V0ZXIgcmFkaXVzIGlzIDE7IGlubmVyIHJhZGl1cyBvZiBzdGFyIGlzIHNtYWxsZXJcbiAgICB2YXIgaW5uZXJSYWRpdXMgPSAwLjUgKiAoMyAtIE1hdGguc3FydCg1KSk7XG4gICAgaW5uZXJSYWRpdXMgKj0gMS41NztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlubmVyUG9pbnRzLmxlbmd0aCAvIDI7IGkrKykge1xuICAgICAgaW5uZXJQb2ludHNbaSAqIDJdICo9IGlubmVyUmFkaXVzO1xuICAgICAgaW5uZXJQb2ludHNbaSAqIDIgKyAxXSAqPSBpbm5lclJhZGl1cztcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMCAvIDQ7IGkrKykge1xuICAgICAgc3RhcjVQb2ludHNbaSAqIDRdID0gb3V0ZXJQb2ludHNbaSAqIDJdO1xuICAgICAgc3RhcjVQb2ludHNbaSAqIDQgKyAxXSA9IG91dGVyUG9pbnRzW2kgKiAyICsgMV07XG4gICAgICBzdGFyNVBvaW50c1tpICogNCArIDJdID0gaW5uZXJQb2ludHNbaSAqIDJdO1xuICAgICAgc3RhcjVQb2ludHNbaSAqIDQgKyAzXSA9IGlubmVyUG9pbnRzW2kgKiAyICsgMV07XG4gICAgfVxuICB9XG4gIHN0YXI1UG9pbnRzID0gZml0UG9seWdvblRvU3F1YXJlKHN0YXI1UG9pbnRzKTtcbiAgdGhpcy5nZW5lcmF0ZVBvbHlnb24oJ3N0YXInLCBzdGFyNVBvaW50cyk7XG4gIHRoaXMuZ2VuZXJhdGVQb2x5Z29uKCd2ZWUnLCBbLTEsIC0xLCAwLCAtMC4zMzMsIDEsIC0xLCAwLCAxXSk7XG4gIHRoaXMuZ2VuZXJhdGVQb2x5Z29uKCdyaG9tYm9pZCcsIFstMSwgLTEsIDAuMzMzLCAtMSwgMSwgMSwgLTAuMzMzLCAxXSk7XG4gIHRoaXMuZ2VuZXJhdGVQb2x5Z29uKCdyaWdodC1yaG9tYm9pZCcsIFstMC4zMzMsIC0xLCAxLCAtMSwgMC4zMzMsIDEsIC0xLCAxXSk7XG4gIHRoaXMubm9kZVNoYXBlc1snY29uY2F2ZWhleGFnb24nXSA9IHRoaXMuZ2VuZXJhdGVQb2x5Z29uKCdjb25jYXZlLWhleGFnb24nLCBbLTEsIC0wLjk1LCAtMC43NSwgMCwgLTEsIDAuOTUsIDEsIDAuOTUsIDAuNzUsIDAsIDEsIC0wLjk1XSk7XG4gIHtcbiAgICB2YXIgdGFnUG9pbnRzID0gWy0xLCAtMSwgMC4yNSwgLTEsIDEsIDAsIDAuMjUsIDEsIC0xLCAxXTtcbiAgICB0aGlzLmdlbmVyYXRlUG9seWdvbigndGFnJywgdGFnUG9pbnRzKTtcbiAgICB0aGlzLmdlbmVyYXRlUm91bmRQb2x5Z29uKCdyb3VuZC10YWcnLCB0YWdQb2ludHMpO1xuICB9XG4gIG5vZGVTaGFwZXMubWFrZVBvbHlnb24gPSBmdW5jdGlvbiAocG9pbnRzKSB7XG4gICAgLy8gdXNlIGNhY2hpbmcgb24gdXNlci1zcGVjaWZpZWQgcG9seWdvbnMgc28gdGhleSBhcmUgYXMgZmFzdCBhcyBuYXRpdmUgc2hhcGVzXG5cbiAgICB2YXIga2V5ID0gcG9pbnRzLmpvaW4oJyQnKTtcbiAgICB2YXIgbmFtZSA9ICdwb2x5Z29uLScgKyBrZXk7XG4gICAgdmFyIHNoYXBlO1xuICAgIGlmIChzaGFwZSA9IHRoaXNbbmFtZV0pIHtcbiAgICAgIC8vIGdvdCBjYWNoZWQgc2hhcGVcbiAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9XG5cbiAgICAvLyBjcmVhdGUgYW5kIGNhY2hlIG5ldyBzaGFwZVxuICAgIHJldHVybiByZW5kZXJlci5nZW5lcmF0ZVBvbHlnb24obmFtZSwgcG9pbnRzKTtcbiAgfTtcbn07XG5cbnZhciBCUnAkMSA9IHt9O1xuQlJwJDEudGltZVRvUmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5yZWRyYXdUb3RhbFRpbWUgLyB0aGlzLnJlZHJhd0NvdW50O1xufTtcbkJScCQxLnJlZHJhdyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHN0YXRpY0VtcHR5T2JqZWN0KCk7XG4gIHZhciByID0gdGhpcztcbiAgaWYgKHIuYXZlcmFnZVJlZHJhd1RpbWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHIuYXZlcmFnZVJlZHJhd1RpbWUgPSAwO1xuICB9XG4gIGlmIChyLmxhc3RSZWRyYXdUaW1lID09PSB1bmRlZmluZWQpIHtcbiAgICByLmxhc3RSZWRyYXdUaW1lID0gMDtcbiAgfVxuICBpZiAoci5sYXN0RHJhd1RpbWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHIubGFzdERyYXdUaW1lID0gMDtcbiAgfVxuICByLnJlcXVlc3RlZEZyYW1lID0gdHJ1ZTtcbiAgci5yZW5kZXJPcHRpb25zID0gb3B0aW9ucztcbn07XG5CUnAkMS5iZWZvcmVSZW5kZXIgPSBmdW5jdGlvbiAoZm4sIHByaW9yaXR5KSB7XG4gIC8vIHRoZSByZW5kZXJlciBjYW4ndCBhZGQgdGljayBjYWxsYmFja3Mgd2hlbiBkZXN0cm95ZWRcbiAgaWYgKHRoaXMuZGVzdHJveWVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcmlvcml0eSA9PSBudWxsKSB7XG4gICAgZXJyb3IoJ1ByaW9yaXR5IGlzIG5vdCBvcHRpb25hbCBmb3IgYmVmb3JlUmVuZGVyJyk7XG4gIH1cbiAgdmFyIGNicyA9IHRoaXMuYmVmb3JlUmVuZGVyQ2FsbGJhY2tzO1xuICBjYnMucHVzaCh7XG4gICAgZm46IGZuLFxuICAgIHByaW9yaXR5OiBwcmlvcml0eVxuICB9KTtcblxuICAvLyBoaWdoZXIgcHJpb3JpdHkgY2FsbGJhY2tzIGV4ZWN1dGVkIGZpcnN0XG4gIGNicy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIGIucHJpb3JpdHkgLSBhLnByaW9yaXR5O1xuICB9KTtcbn07XG52YXIgYmVmb3JlUmVuZGVyQ2FsbGJhY2tzID0gZnVuY3Rpb24gYmVmb3JlUmVuZGVyQ2FsbGJhY2tzKHIsIHdpbGxEcmF3LCBzdGFydFRpbWUpIHtcbiAgdmFyIGNicyA9IHIuYmVmb3JlUmVuZGVyQ2FsbGJhY2tzO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNicy5sZW5ndGg7IGkrKykge1xuICAgIGNic1tpXS5mbih3aWxsRHJhdywgc3RhcnRUaW1lKTtcbiAgfVxufTtcbkJScCQxLnN0YXJ0UmVuZGVyTG9vcCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHIgPSB0aGlzO1xuICB2YXIgY3kgPSByLmN5O1xuICBpZiAoci5yZW5kZXJMb29wU3RhcnRlZCkge1xuICAgIHJldHVybjtcbiAgfSBlbHNlIHtcbiAgICByLnJlbmRlckxvb3BTdGFydGVkID0gdHJ1ZTtcbiAgfVxuICB2YXIgcmVuZGVyRm4gPSBmdW5jdGlvbiByZW5kZXJGbihyZXF1ZXN0VGltZSkge1xuICAgIGlmIChyLmRlc3Ryb3llZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3kuYmF0Y2hpbmcoKSkgOyBlbHNlIGlmIChyLnJlcXVlc3RlZEZyYW1lICYmICFyLnNraXBGcmFtZSkge1xuICAgICAgYmVmb3JlUmVuZGVyQ2FsbGJhY2tzKHIsIHRydWUsIHJlcXVlc3RUaW1lKTtcbiAgICAgIHZhciBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZU5vdygpO1xuICAgICAgci5yZW5kZXIoci5yZW5kZXJPcHRpb25zKTtcbiAgICAgIHZhciBlbmRUaW1lID0gci5sYXN0RHJhd1RpbWUgPSBwZXJmb3JtYW5jZU5vdygpO1xuICAgICAgaWYgKHIuYXZlcmFnZVJlZHJhd1RpbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByLmF2ZXJhZ2VSZWRyYXdUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTtcbiAgICAgIH1cbiAgICAgIGlmIChyLnJlZHJhd0NvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgci5yZWRyYXdDb3VudCA9IDA7XG4gICAgICB9XG4gICAgICByLnJlZHJhd0NvdW50Kys7XG4gICAgICBpZiAoci5yZWRyYXdUb3RhbFRpbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByLnJlZHJhd1RvdGFsVGltZSA9IDA7XG4gICAgICB9XG4gICAgICB2YXIgZHVyYXRpb24gPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xuICAgICAgci5yZWRyYXdUb3RhbFRpbWUgKz0gZHVyYXRpb247XG4gICAgICByLmxhc3RSZWRyYXdUaW1lID0gZHVyYXRpb247XG5cbiAgICAgIC8vIHVzZSBhIHdlaWdodGVkIGF2ZXJhZ2Ugd2l0aCBhIGJpYXMgZnJvbSB0aGUgcHJldmlvdXMgYXZlcmFnZSBzbyB3ZSBkb24ndCBzcGlrZSBzbyBlYXNpbHlcbiAgICAgIHIuYXZlcmFnZVJlZHJhd1RpbWUgPSByLmF2ZXJhZ2VSZWRyYXdUaW1lIC8gMiArIGR1cmF0aW9uIC8gMjtcbiAgICAgIHIucmVxdWVzdGVkRnJhbWUgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmVmb3JlUmVuZGVyQ2FsbGJhY2tzKHIsIGZhbHNlLCByZXF1ZXN0VGltZSk7XG4gICAgfVxuICAgIHIuc2tpcEZyYW1lID0gZmFsc2U7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlbmRlckZuKTtcbiAgfTtcbiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlbmRlckZuKTtcbn07XG5cbnZhciBCYXNlUmVuZGVyZXIgPSBmdW5jdGlvbiBCYXNlUmVuZGVyZXIob3B0aW9ucykge1xuICB0aGlzLmluaXQob3B0aW9ucyk7XG59O1xudmFyIEJSID0gQmFzZVJlbmRlcmVyO1xudmFyIEJScCA9IEJSLnByb3RvdHlwZTtcbkJScC5jbGllbnRGdW5jdGlvbnMgPSBbJ3JlZHJhd0hpbnQnLCAncmVuZGVyJywgJ3JlbmRlclRvJywgJ21hdGNoQ2FudmFzU2l6ZScsICdub2RlU2hhcGVJbXBsJywgJ2Fycm93U2hhcGVJbXBsJ107XG5CUnAuaW5pdCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIHZhciByID0gdGhpcztcbiAgci5vcHRpb25zID0gb3B0aW9ucztcbiAgci5jeSA9IG9wdGlvbnMuY3k7XG4gIHZhciBjdHIgPSByLmNvbnRhaW5lciA9IG9wdGlvbnMuY3kuY29udGFpbmVyKCk7XG4gIHZhciBjb250YWluZXJXaW5kb3cgPSByLmN5LndpbmRvdygpO1xuXG4gIC8vIHByZXBlbmQgYSBzdHlsZXNoZWV0IGluIHRoZSBoZWFkIHN1Y2ggdGhhdFxuICBpZiAoY29udGFpbmVyV2luZG93KSB7XG4gICAgdmFyIGRvY3VtZW50ID0gY29udGFpbmVyV2luZG93LmRvY3VtZW50O1xuICAgIHZhciBoZWFkID0gZG9jdW1lbnQuaGVhZDtcbiAgICB2YXIgc3R5bGVzaGVldElkID0gJ19fX19fX19fX19jeXRvc2NhcGVfc3R5bGVzaGVldCc7XG4gICAgdmFyIGNsYXNzTmFtZSA9ICdfX19fX19fX19fY3l0b3NjYXBlX2NvbnRhaW5lcic7XG4gICAgdmFyIHN0eWxlc2hlZXRBbHJlYWR5RXhpc3RzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3R5bGVzaGVldElkKSAhPSBudWxsO1xuICAgIGlmIChjdHIuY2xhc3NOYW1lLmluZGV4T2YoY2xhc3NOYW1lKSA8IDApIHtcbiAgICAgIGN0ci5jbGFzc05hbWUgPSAoY3RyLmNsYXNzTmFtZSB8fCAnJykgKyAnICcgKyBjbGFzc05hbWU7XG4gICAgfVxuICAgIGlmICghc3R5bGVzaGVldEFscmVhZHlFeGlzdHMpIHtcbiAgICAgIHZhciBzdHlsZXNoZWV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHN0eWxlc2hlZXQuaWQgPSBzdHlsZXNoZWV0SWQ7XG4gICAgICBzdHlsZXNoZWV0LnRleHRDb250ZW50ID0gJy4nICsgY2xhc3NOYW1lICsgJyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfSc7XG4gICAgICBoZWFkLmluc2VydEJlZm9yZShzdHlsZXNoZWV0LCBoZWFkLmNoaWxkcmVuWzBdKTsgLy8gZmlyc3Qgc28gbG93ZXN0IHByaW9yaXR5XG4gICAgfVxuXG4gICAgdmFyIGNvbXB1dGVkU3R5bGUgPSBjb250YWluZXJXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjdHIpO1xuICAgIHZhciBwb3NpdGlvbiA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncG9zaXRpb24nKTtcbiAgICBpZiAocG9zaXRpb24gPT09ICdzdGF0aWMnKSB7XG4gICAgICB3YXJuKCdBIEN5dG9zY2FwZSBjb250YWluZXIgaGFzIHN0eWxlIHBvc2l0aW9uOnN0YXRpYyBhbmQgc28gY2FuIG5vdCB1c2UgVUkgZXh0ZW5zaW9ucyBwcm9wZXJseScpO1xuICAgIH1cbiAgfVxuICByLnNlbGVjdGlvbiA9IFt1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDBdOyAvLyBDb29yZGluYXRlcyBmb3Igc2VsZWN0aW9uIGJveCwgcGx1cyBlbmFibGVkIGZsYWdcblxuICByLmJlemllclByb2pQY3RzID0gWzAuMDUsIDAuMjI1LCAwLjQsIDAuNSwgMC42LCAwLjc3NSwgMC45NV07XG5cbiAgLy8tLVBvaW50ZXItcmVsYXRlZCBkYXRhXG4gIHIuaG92ZXJEYXRhID0ge1xuICAgIGRvd246IG51bGwsXG4gICAgbGFzdDogbnVsbCxcbiAgICBkb3duVGltZTogbnVsbCxcbiAgICB0cmlnZ2VyTW9kZTogbnVsbCxcbiAgICBkcmFnZ2luZzogZmFsc2UsXG4gICAgaW5pdGlhbFBhbjogW251bGwsIG51bGxdLFxuICAgIGNhcHR1cmU6IGZhbHNlXG4gIH07XG4gIHIuZHJhZ0RhdGEgPSB7XG4gICAgcG9zc2libGVEcmFnRWxlbWVudHM6IFtdXG4gIH07XG4gIHIudG91Y2hEYXRhID0ge1xuICAgIHN0YXJ0OiBudWxsLFxuICAgIGNhcHR1cmU6IGZhbHNlLFxuICAgIC8vIFRoZXNlIDMgZmllbGRzIHJlbGF0ZWQgdG8gdGFwLCB0YXBob2xkIGV2ZW50c1xuICAgIHN0YXJ0UG9zaXRpb246IFtudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsXSxcbiAgICBzaW5nbGVUb3VjaFN0YXJ0VGltZTogbnVsbCxcbiAgICBzaW5nbGVUb3VjaE1vdmVkOiB0cnVlLFxuICAgIG5vdzogW251bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGxdLFxuICAgIGVhcmxpZXI6IFtudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsXVxuICB9O1xuICByLnJlZHJhd3MgPSAwO1xuICByLnNob3dGcHMgPSBvcHRpb25zLnNob3dGcHM7XG4gIHIuZGVidWcgPSBvcHRpb25zLmRlYnVnO1xuICByLmhpZGVFZGdlc09uVmlld3BvcnQgPSBvcHRpb25zLmhpZGVFZGdlc09uVmlld3BvcnQ7XG4gIHIudGV4dHVyZU9uVmlld3BvcnQgPSBvcHRpb25zLnRleHR1cmVPblZpZXdwb3J0O1xuICByLndoZWVsU2Vuc2l0aXZpdHkgPSBvcHRpb25zLndoZWVsU2Vuc2l0aXZpdHk7XG4gIHIubW90aW9uQmx1ckVuYWJsZWQgPSBvcHRpb25zLm1vdGlvbkJsdXI7IC8vIG9uIGJ5IGRlZmF1bHRcbiAgci5mb3JjZWRQaXhlbFJhdGlvID0gbnVtYmVyJDEob3B0aW9ucy5waXhlbFJhdGlvKSA/IG9wdGlvbnMucGl4ZWxSYXRpbyA6IG51bGw7XG4gIHIubW90aW9uQmx1ciA9IG9wdGlvbnMubW90aW9uQmx1cjsgLy8gZm9yIGluaXRpYWwga2ljayBvZmZcbiAgci5tb3Rpb25CbHVyT3BhY2l0eSA9IG9wdGlvbnMubW90aW9uQmx1ck9wYWNpdHk7XG4gIHIubW90aW9uQmx1clRyYW5zcGFyZW5jeSA9IDEgLSByLm1vdGlvbkJsdXJPcGFjaXR5O1xuICByLm1vdGlvbkJsdXJQeFJhdGlvID0gMTtcbiAgci5tYlB4UkJsdXJyeSA9IDE7IC8vMC44O1xuICByLm1pbk1iTG93UXVhbEZyYW1lcyA9IDQ7XG4gIHIuZnVsbFF1YWxpdHlNYiA9IGZhbHNlO1xuICByLmNsZWFyZWRGb3JNb3Rpb25CbHVyID0gW107XG4gIHIuZGVza3RvcFRhcFRocmVzaG9sZCA9IG9wdGlvbnMuZGVza3RvcFRhcFRocmVzaG9sZDtcbiAgci5kZXNrdG9wVGFwVGhyZXNob2xkMiA9IG9wdGlvbnMuZGVza3RvcFRhcFRocmVzaG9sZCAqIG9wdGlvbnMuZGVza3RvcFRhcFRocmVzaG9sZDtcbiAgci50b3VjaFRhcFRocmVzaG9sZCA9IG9wdGlvbnMudG91Y2hUYXBUaHJlc2hvbGQ7XG4gIHIudG91Y2hUYXBUaHJlc2hvbGQyID0gb3B0aW9ucy50b3VjaFRhcFRocmVzaG9sZCAqIG9wdGlvbnMudG91Y2hUYXBUaHJlc2hvbGQ7XG4gIHIudGFwaG9sZER1cmF0aW9uID0gNTAwO1xuICByLmJpbmRpbmdzID0gW107XG4gIHIuYmVmb3JlUmVuZGVyQ2FsbGJhY2tzID0gW107XG4gIHIuYmVmb3JlUmVuZGVyUHJpb3JpdGllcyA9IHtcbiAgICAvLyBoaWdoZXIgcHJpb3JpdHkgZXhlY3MgYmVmb3JlIGxvd2VyIG9uZVxuICAgIGFuaW1hdGlvbnM6IDQwMCxcbiAgICBlbGVDYWxjczogMzAwLFxuICAgIGVsZVR4ckRlcTogMjAwLFxuICAgIGx5clR4ckRlcTogMTUwLFxuICAgIGx5clR4clNraXA6IDEwMFxuICB9O1xuICByLnJlZ2lzdGVyTm9kZVNoYXBlcygpO1xuICByLnJlZ2lzdGVyQXJyb3dTaGFwZXMoKTtcbiAgci5yZWdpc3RlckNhbGN1bGF0aW9uTGlzdGVuZXJzKCk7XG59O1xuQlJwLm5vdGlmeSA9IGZ1bmN0aW9uIChldmVudE5hbWUsIGVsZXMpIHtcbiAgdmFyIHIgPSB0aGlzO1xuICB2YXIgY3kgPSByLmN5O1xuXG4gIC8vIHRoZSByZW5kZXJlciBjYW4ndCBiZSBub3RpZmllZCBhZnRlciBpdCdzIGRlc3Ryb3llZFxuICBpZiAodGhpcy5kZXN0cm95ZWQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGV2ZW50TmFtZSA9PT0gJ2luaXQnKSB7XG4gICAgci5sb2FkKCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChldmVudE5hbWUgPT09ICdkZXN0cm95Jykge1xuICAgIHIuZGVzdHJveSgpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoZXZlbnROYW1lID09PSAnYWRkJyB8fCBldmVudE5hbWUgPT09ICdyZW1vdmUnIHx8IGV2ZW50TmFtZSA9PT0gJ21vdmUnICYmIGN5Lmhhc0NvbXBvdW5kTm9kZXMoKSB8fCBldmVudE5hbWUgPT09ICdsb2FkJyB8fCBldmVudE5hbWUgPT09ICd6b3JkZXInIHx8IGV2ZW50TmFtZSA9PT0gJ21vdW50Jykge1xuICAgIHIuaW52YWxpZGF0ZUNhY2hlZFpTb3J0ZWRFbGVzKCk7XG4gIH1cbiAgaWYgKGV2ZW50TmFtZSA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgIHIucmVkcmF3SGludCgnc2VsZWN0JywgdHJ1ZSk7XG4gIH1cbiAgaWYgKGV2ZW50TmFtZSA9PT0gJ2xvYWQnIHx8IGV2ZW50TmFtZSA9PT0gJ3Jlc2l6ZScgfHwgZXZlbnROYW1lID09PSAnbW91bnQnKSB7XG4gICAgci5pbnZhbGlkYXRlQ29udGFpbmVyQ2xpZW50Q29vcmRzQ2FjaGUoKTtcbiAgICByLm1hdGNoQ2FudmFzU2l6ZShyLmNvbnRhaW5lcik7XG4gIH1cbiAgci5yZWRyYXdIaW50KCdlbGVzJywgdHJ1ZSk7XG4gIHIucmVkcmF3SGludCgnZHJhZycsIHRydWUpO1xuICB0aGlzLnN0YXJ0UmVuZGVyTG9vcCgpO1xuICB0aGlzLnJlZHJhdygpO1xufTtcbkJScC5kZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgciA9IHRoaXM7XG4gIHIuZGVzdHJveWVkID0gdHJ1ZTtcbiAgci5jeS5zdG9wQW5pbWF0aW9uTG9vcCgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHIuYmluZGluZ3MubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYmluZGluZyA9IHIuYmluZGluZ3NbaV07XG4gICAgdmFyIGIgPSBiaW5kaW5nO1xuICAgIHZhciB0Z3QgPSBiLnRhcmdldDtcbiAgICAodGd0Lm9mZiB8fCB0Z3QucmVtb3ZlRXZlbnRMaXN0ZW5lcikuYXBwbHkodGd0LCBiLmFyZ3MpO1xuICB9XG4gIHIuYmluZGluZ3MgPSBbXTtcbiAgci5iZWZvcmVSZW5kZXJDYWxsYmFja3MgPSBbXTtcbiAgci5vblVwZGF0ZUVsZUNhbGNzRm5zID0gW107XG4gIGlmIChyLnJlbW92ZU9ic2VydmVyKSB7XG4gICAgci5yZW1vdmVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cbiAgaWYgKHIuc3R5bGVPYnNlcnZlcikge1xuICAgIHIuc3R5bGVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cbiAgaWYgKHIucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICByLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfVxuICBpZiAoci5sYWJlbENhbGNEaXYpIHtcbiAgICB0cnkge1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChyLmxhYmVsQ2FsY0Rpdik7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBpZTEwIGlzc3VlICMxMDE0XG4gICAgfVxuICB9XG59O1xuQlJwLmlzSGVhZGxlc3MgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmYWxzZTtcbn07XG5bQlJwJGYsIEJScCQ1LCBCUnAkNCwgQlJwJDMsIEJScCQyLCBCUnAkMV0uZm9yRWFjaChmdW5jdGlvbiAocHJvcHMpIHtcbiAgZXh0ZW5kKEJScCwgcHJvcHMpO1xufSk7XG5cbnZhciBmdWxsRnBzVGltZSA9IDEwMDAgLyA2MDsgLy8gYXNzdW1lIDYwIGZyYW1lcyBwZXIgc2Vjb25kXG5cbnZhciBkZWZzID0ge1xuICBzZXR1cERlcXVldWVpbmc6IGZ1bmN0aW9uIHNldHVwRGVxdWV1ZWluZyhvcHRzKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHNldHVwRGVxdWV1ZWluZ0ltcGwoKSB7XG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICB2YXIgciA9IHRoaXMucmVuZGVyZXI7XG4gICAgICBpZiAoc2VsZi5kZXF1ZXVlaW5nU2V0dXApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZi5kZXF1ZXVlaW5nU2V0dXAgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdmFyIHF1ZXVlUmVkcmF3ID0gZGVib3VuY2VfMShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHIucmVkcmF3SGludCgnZWxlcycsIHRydWUpO1xuICAgICAgICByLnJlZHJhd0hpbnQoJ2RyYWcnLCB0cnVlKTtcbiAgICAgICAgci5yZWRyYXcoKTtcbiAgICAgIH0sIG9wdHMuZGVxUmVkcmF3VGhyZXNob2xkKTtcbiAgICAgIHZhciBkZXF1ZXVlID0gZnVuY3Rpb24gZGVxdWV1ZSh3aWxsRHJhdywgZnJhbWVTdGFydFRpbWUpIHtcbiAgICAgICAgdmFyIHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlTm93KCk7XG4gICAgICAgIHZhciBhdmdSZW5kZXJUaW1lID0gci5hdmVyYWdlUmVkcmF3VGltZTtcbiAgICAgICAgdmFyIHJlbmRlclRpbWUgPSByLmxhc3RSZWRyYXdUaW1lO1xuICAgICAgICB2YXIgZGVxZCA9IFtdO1xuICAgICAgICB2YXIgZXh0ZW50ID0gci5jeS5leHRlbnQoKTtcbiAgICAgICAgdmFyIHBpeGVsUmF0aW8gPSByLmdldFBpeGVsUmF0aW8oKTtcblxuICAgICAgICAvLyBpZiB3ZSBhcmVuJ3QgaW4gYSB0aWNrIHRoYXQgY2F1c2VzIGEgZHJhdywgdGhlbiB0aGUgcmVuZGVyZWQgc3R5bGVcbiAgICAgICAgLy8gcXVldWUgd29uJ3QgYXV0b21hdGljYWxseSBiZSBmbHVzaGVkIGJlZm9yZSBkZXF1ZXVlaW5nIHN0YXJ0c1xuICAgICAgICBpZiAoIXdpbGxEcmF3KSB7XG4gICAgICAgICAgci5mbHVzaFJlbmRlcmVkU3R5bGVRdWV1ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICAgICAgICB2YXIgbm93ID0gcGVyZm9ybWFuY2VOb3coKTtcbiAgICAgICAgICB2YXIgZHVyYXRpb24gPSBub3cgLSBzdGFydFRpbWU7XG4gICAgICAgICAgdmFyIGZyYW1lRHVyYXRpb24gPSBub3cgLSBmcmFtZVN0YXJ0VGltZTtcbiAgICAgICAgICBpZiAocmVuZGVyVGltZSA8IGZ1bGxGcHNUaW1lKSB7XG4gICAgICAgICAgICAvLyBpZiB3ZSdyZSByZW5kZXJpbmcgZmFzdGVyIHRoYW4gdGhlIGlkZWFsIGZwcywgdGhlbiBkbyBkZXF1ZXVlaW5nXG4gICAgICAgICAgICAvLyBkdXJpbmcgYWxsIG9mIHRoZSByZW1haW5pbmcgZnJhbWUgdGltZVxuXG4gICAgICAgICAgICB2YXIgdGltZUF2YWlsYWJsZSA9IGZ1bGxGcHNUaW1lIC0gKHdpbGxEcmF3ID8gYXZnUmVuZGVyVGltZSA6IDApO1xuICAgICAgICAgICAgaWYgKGZyYW1lRHVyYXRpb24gPj0gb3B0cy5kZXFGYXN0Q29zdCAqIHRpbWVBdmFpbGFibGUpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh3aWxsRHJhdykge1xuICAgICAgICAgICAgICBpZiAoZHVyYXRpb24gPj0gb3B0cy5kZXFDb3N0ICogcmVuZGVyVGltZSB8fCBkdXJhdGlvbiA+PSBvcHRzLmRlcUF2Z0Nvc3QgKiBhdmdSZW5kZXJUaW1lKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZnJhbWVEdXJhdGlvbiA+PSBvcHRzLmRlcU5vRHJhd0Nvc3QgKiBmdWxsRnBzVGltZSkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHRoaXNEZXFkID0gb3B0cy5kZXEoc2VsZiwgcGl4ZWxSYXRpbywgZXh0ZW50KTtcbiAgICAgICAgICBpZiAodGhpc0RlcWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzRGVxZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICBkZXFkLnB1c2godGhpc0RlcWRbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjYWxsYmFja3Mgb24gZGVxdWV1ZVxuICAgICAgICBpZiAoZGVxZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgb3B0cy5vbkRlcWQoc2VsZiwgZGVxZCk7XG4gICAgICAgICAgaWYgKCF3aWxsRHJhdyAmJiBvcHRzLnNob3VsZFJlZHJhdyhzZWxmLCBkZXFkLCBwaXhlbFJhdGlvLCBleHRlbnQpKSB7XG4gICAgICAgICAgICBxdWV1ZVJlZHJhdygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHZhciBwcmlvcml0eSA9IG9wdHMucHJpb3JpdHkgfHwgbm9vcCQxO1xuICAgICAgci5iZWZvcmVSZW5kZXIoZGVxdWV1ZSwgcHJpb3JpdHkoc2VsZikpO1xuICAgIH07XG4gIH1cbn07XG5cbi8vIEFsbG93cyBsb29rdXBzIGZvciAoZWxlLCBsdmwpID0+IGNhY2hlLlxuLy8gVXNlcyBrZXlzIHNvIGVsZW1lbnRzIG1heSBzaGFyZSB0aGUgc2FtZSBjYWNoZS5cbnZhciBFbGVtZW50VGV4dHVyZUNhY2hlTG9va3VwID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gRWxlbWVudFRleHR1cmVDYWNoZUxvb2t1cChnZXRLZXkpIHtcbiAgICB2YXIgZG9lc0VsZUludmFsaWRhdGVLZXkgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IGZhbHNpZnk7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVsZW1lbnRUZXh0dXJlQ2FjaGVMb29rdXApO1xuICAgIHRoaXMuaWRzQnlLZXkgPSBuZXcgTWFwJDIoKTtcbiAgICB0aGlzLmtleUZvcklkID0gbmV3IE1hcCQyKCk7XG4gICAgdGhpcy5jYWNoZXNCeUx2bCA9IG5ldyBNYXAkMigpO1xuICAgIHRoaXMubHZscyA9IFtdO1xuICAgIHRoaXMuZ2V0S2V5ID0gZ2V0S2V5O1xuICAgIHRoaXMuZG9lc0VsZUludmFsaWRhdGVLZXkgPSBkb2VzRWxlSW52YWxpZGF0ZUtleTtcbiAgfVxuICBfY3JlYXRlQ2xhc3MoRWxlbWVudFRleHR1cmVDYWNoZUxvb2t1cCwgW3tcbiAgICBrZXk6IFwiZ2V0SWRzRm9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldElkc0ZvcihrZXkpIHtcbiAgICAgIGlmIChrZXkgPT0gbnVsbCkge1xuICAgICAgICBlcnJvcihcIkNhbiBub3QgZ2V0IGlkIGxpc3QgZm9yIG51bGwga2V5XCIpO1xuICAgICAgfVxuICAgICAgdmFyIGlkc0J5S2V5ID0gdGhpcy5pZHNCeUtleTtcbiAgICAgIHZhciBpZHMgPSB0aGlzLmlkc0J5S2V5LmdldChrZXkpO1xuICAgICAgaWYgKCFpZHMpIHtcbiAgICAgICAgaWRzID0gbmV3IFNldCQxKCk7XG4gICAgICAgIGlkc0J5S2V5LnNldChrZXksIGlkcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWRzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJhZGRJZEZvcktleVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGRJZEZvcktleShrZXksIGlkKSB7XG4gICAgICBpZiAoa2V5ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5nZXRJZHNGb3Ioa2V5KS5hZGQoaWQpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkZWxldGVJZEZvcktleVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBkZWxldGVJZEZvcktleShrZXksIGlkKSB7XG4gICAgICBpZiAoa2V5ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5nZXRJZHNGb3Ioa2V5KVtcImRlbGV0ZVwiXShpZCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldE51bWJlck9mSWRzRm9yS2V5XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldE51bWJlck9mSWRzRm9yS2V5KGtleSkge1xuICAgICAgaWYgKGtleSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SWRzRm9yKGtleSkuc2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwidXBkYXRlS2V5TWFwcGluZ0ZvclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB1cGRhdGVLZXlNYXBwaW5nRm9yKGVsZSkge1xuICAgICAgdmFyIGlkID0gZWxlLmlkKCk7XG4gICAgICB2YXIgcHJldktleSA9IHRoaXMua2V5Rm9ySWQuZ2V0KGlkKTtcbiAgICAgIHZhciBjdXJyS2V5ID0gdGhpcy5nZXRLZXkoZWxlKTtcbiAgICAgIHRoaXMuZGVsZXRlSWRGb3JLZXkocHJldktleSwgaWQpO1xuICAgICAgdGhpcy5hZGRJZEZvcktleShjdXJyS2V5LCBpZCk7XG4gICAgICB0aGlzLmtleUZvcklkLnNldChpZCwgY3VycktleSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImRlbGV0ZUtleU1hcHBpbmdGb3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGVsZXRlS2V5TWFwcGluZ0ZvcihlbGUpIHtcbiAgICAgIHZhciBpZCA9IGVsZS5pZCgpO1xuICAgICAgdmFyIHByZXZLZXkgPSB0aGlzLmtleUZvcklkLmdldChpZCk7XG4gICAgICB0aGlzLmRlbGV0ZUlkRm9yS2V5KHByZXZLZXksIGlkKTtcbiAgICAgIHRoaXMua2V5Rm9ySWRbXCJkZWxldGVcIl0oaWQpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJrZXlIYXNDaGFuZ2VkRm9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGtleUhhc0NoYW5nZWRGb3IoZWxlKSB7XG4gICAgICB2YXIgaWQgPSBlbGUuaWQoKTtcbiAgICAgIHZhciBwcmV2S2V5ID0gdGhpcy5rZXlGb3JJZC5nZXQoaWQpO1xuICAgICAgdmFyIG5ld0tleSA9IHRoaXMuZ2V0S2V5KGVsZSk7XG4gICAgICByZXR1cm4gcHJldktleSAhPT0gbmV3S2V5O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc0ludmFsaWRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaXNJbnZhbGlkKGVsZSkge1xuICAgICAgcmV0dXJuIHRoaXMua2V5SGFzQ2hhbmdlZEZvcihlbGUpIHx8IHRoaXMuZG9lc0VsZUludmFsaWRhdGVLZXkoZWxlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0Q2FjaGVzQXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Q2FjaGVzQXQobHZsKSB7XG4gICAgICB2YXIgY2FjaGVzQnlMdmwgPSB0aGlzLmNhY2hlc0J5THZsLFxuICAgICAgICBsdmxzID0gdGhpcy5sdmxzO1xuICAgICAgdmFyIGNhY2hlcyA9IGNhY2hlc0J5THZsLmdldChsdmwpO1xuICAgICAgaWYgKCFjYWNoZXMpIHtcbiAgICAgICAgY2FjaGVzID0gbmV3IE1hcCQyKCk7XG4gICAgICAgIGNhY2hlc0J5THZsLnNldChsdmwsIGNhY2hlcyk7XG4gICAgICAgIGx2bHMucHVzaChsdmwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNhY2hlcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0Q2FjaGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Q2FjaGUoa2V5LCBsdmwpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENhY2hlc0F0KGx2bCkuZ2V0KGtleSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXQoZWxlLCBsdmwpIHtcbiAgICAgIHZhciBrZXkgPSB0aGlzLmdldEtleShlbGUpO1xuICAgICAgdmFyIGNhY2hlID0gdGhpcy5nZXRDYWNoZShrZXksIGx2bCk7XG5cbiAgICAgIC8vIGdldHRpbmcgZm9yIGFuIGVsZW1lbnQgbWF5IG5lZWQgdG8gYWRkIHRvIHRoZSBpZCBsaXN0IGIvYyBlbGVzIGNhbiBzaGFyZSBrZXlzXG4gICAgICBpZiAoY2FjaGUgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUtleU1hcHBpbmdGb3IoZWxlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjYWNoZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0Rm9yQ2FjaGVkS2V5XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldEZvckNhY2hlZEtleShlbGUsIGx2bCkge1xuICAgICAgdmFyIGtleSA9IHRoaXMua2V5Rm9ySWQuZ2V0KGVsZS5pZCgpKTsgLy8gbi5iLiB1c2UgY2FjaGVkIGtleSwgbm90IG5ld2x5IGNvbXB1dGVkIGtleVxuICAgICAgdmFyIGNhY2hlID0gdGhpcy5nZXRDYWNoZShrZXksIGx2bCk7XG4gICAgICByZXR1cm4gY2FjaGU7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImhhc0NhY2hlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGhhc0NhY2hlKGtleSwgbHZsKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDYWNoZXNBdChsdmwpLmhhcyhrZXkpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFzKGVsZSwgbHZsKSB7XG4gICAgICB2YXIga2V5ID0gdGhpcy5nZXRLZXkoZWxlKTtcbiAgICAgIHJldHVybiB0aGlzLmhhc0NhY2hlKGtleSwgbHZsKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2V0Q2FjaGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0Q2FjaGUoa2V5LCBsdmwsIGNhY2hlKSB7XG4gICAgICBjYWNoZS5rZXkgPSBrZXk7XG4gICAgICB0aGlzLmdldENhY2hlc0F0KGx2bCkuc2V0KGtleSwgY2FjaGUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzZXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0KGVsZSwgbHZsLCBjYWNoZSkge1xuICAgICAgdmFyIGtleSA9IHRoaXMuZ2V0S2V5KGVsZSk7XG4gICAgICB0aGlzLnNldENhY2hlKGtleSwgbHZsLCBjYWNoZSk7XG4gICAgICB0aGlzLnVwZGF0ZUtleU1hcHBpbmdGb3IoZWxlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZGVsZXRlQ2FjaGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGVsZXRlQ2FjaGUoa2V5LCBsdmwpIHtcbiAgICAgIHRoaXMuZ2V0Q2FjaGVzQXQobHZsKVtcImRlbGV0ZVwiXShrZXkpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkZWxldGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gX2RlbGV0ZShlbGUsIGx2bCkge1xuICAgICAgdmFyIGtleSA9IHRoaXMuZ2V0S2V5KGVsZSk7XG4gICAgICB0aGlzLmRlbGV0ZUNhY2hlKGtleSwgbHZsKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaW52YWxpZGF0ZUtleVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbnZhbGlkYXRlS2V5KGtleSkge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgIHRoaXMubHZscy5mb3JFYWNoKGZ1bmN0aW9uIChsdmwpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmRlbGV0ZUNhY2hlKGtleSwgbHZsKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIHJldHVybnMgdHJ1ZSBpZiBubyBvdGhlciBlbGVzIHJlZmVyZW5jZSB0aGUgaW52YWxpZGF0ZWQgY2FjaGUgKG4uYi4gb3RoZXIgZWxlcyBtYXkgbmVlZCB0aGUgY2FjaGUgd2l0aCB0aGUgc2FtZSBrZXkpXG4gIH0sIHtcbiAgICBrZXk6IFwiaW52YWxpZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbnZhbGlkYXRlKGVsZSkge1xuICAgICAgdmFyIGlkID0gZWxlLmlkKCk7XG4gICAgICB2YXIga2V5ID0gdGhpcy5rZXlGb3JJZC5nZXQoaWQpOyAvLyBuLmIuIHVzZSBzdG9yZWQga2V5IHJhdGhlciB0aGFuIGN1cnJlbnQgKHBvdGVudGlhbCBrZXkpXG5cbiAgICAgIHRoaXMuZGVsZXRlS2V5TWFwcGluZ0ZvcihlbGUpO1xuICAgICAgdmFyIGVudGlyZUtleUludmFsaWRhdGVkID0gdGhpcy5kb2VzRWxlSW52YWxpZGF0ZUtleShlbGUpO1xuICAgICAgaWYgKGVudGlyZUtleUludmFsaWRhdGVkKSB7XG4gICAgICAgIC8vIGNsZWFyIG1hcHBpbmcgZm9yIGN1cnJlbnQga2V5XG4gICAgICAgIHRoaXMuaW52YWxpZGF0ZUtleShrZXkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVudGlyZUtleUludmFsaWRhdGVkIHx8IHRoaXMuZ2V0TnVtYmVyT2ZJZHNGb3JLZXkoa2V5KSA9PT0gMDtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIEVsZW1lbnRUZXh0dXJlQ2FjaGVMb29rdXA7XG59KCk7XG5cbnZhciBtaW5UeHJIID0gMjU7IC8vIHRoZSBzaXplIG9mIHRoZSB0ZXh0dXJlIGNhY2hlIGZvciBzbWFsbCBoZWlnaHQgZWxlcyAoc3BlY2lhbCBjYXNlKVxudmFyIHR4clN0ZXBIID0gNTA7IC8vIHRoZSBtaW4gc2l6ZSBvZiB0aGUgcmVndWxhciBjYWNoZSwgYW5kIHRoZSBzaXplIGl0IGluY3JlYXNlcyB3aXRoIGVhY2ggc3RlcCB1cFxudmFyIG1pbkx2bCQxID0gLTQ7IC8vIHdoZW4gc2NhbGluZyBzbWFsbGVyIHRoYW4gdGhhdCB3ZSBkb24ndCBuZWVkIHRvIHJlLXJlbmRlclxudmFyIG1heEx2bCQxID0gMzsgLy8gd2hlbiBsYXJnZXIgdGhhbiB0aGlzIHNjYWxlIGp1c3QgcmVuZGVyIGRpcmVjdGx5IChjYWNoaW5nIGlzIG5vdCBoZWxwZnVsKVxudmFyIG1heFpvb20kMSA9IDcuOTk7IC8vIGJleW9uZCB0aGlzIHpvb20gbGV2ZWwsIGxheWVyZWQgdGV4dHVyZXMgYXJlIG5vdCB1c2VkXG52YXIgZWxlVHhyU3BhY2luZyA9IDg7IC8vIHNwYWNpbmcgYmV0d2VlbiBlbGVtZW50cyBvbiB0ZXh0dXJlcyB0byBhdm9pZCBibGl0dGluZyBvdmVybGFwc1xudmFyIGRlZlR4cldpZHRoID0gMTAyNDsgLy8gZGVmYXVsdC9taW5pbXVtIHRleHR1cmUgd2lkdGhcbnZhciBtYXhUeHJXID0gMTAyNDsgLy8gdGhlIG1heGltdW0gd2lkdGggb2YgYSB0ZXh0dXJlXG52YXIgbWF4VHhySCA9IDEwMjQ7IC8vIHRoZSBtYXhpbXVtIGhlaWdodCBvZiBhIHRleHR1cmVcbnZhciBtaW5VdGlsaXR5ID0gMC4yOyAvLyBpZiB1c2FnZSBvZiB0ZXh0dXJlIGlzIGxlc3MgdGhhbiB0aGlzLCBpdCBpcyByZXRpcmVkXG52YXIgbWF4RnVsbG5lc3MgPSAwLjg7IC8vIGZ1bGxuZXNzIG9mIHRleHR1cmUgYWZ0ZXIgd2hpY2ggcXVldWUgcmVtb3ZhbCBpcyBjaGVja2VkXG52YXIgbWF4RnVsbG5lc3NDaGVja3MgPSAxMDsgLy8gZGVxdWV1ZWQgYWZ0ZXIgdGhpcyBtYW55IGNoZWNrc1xudmFyIGRlcUNvc3QkMSA9IDAuMTU7IC8vICUgb2YgYWRkJ2wgcmVuZGVyaW5nIGNvc3QgYWxsb3dlZCBmb3IgZGVxdWV1aW5nIGVsZSBjYWNoZXMgZWFjaCBmcmFtZVxudmFyIGRlcUF2Z0Nvc3QkMSA9IDAuMTsgLy8gJSBvZiBhZGQnbCByZW5kZXJpbmcgY29zdCBjb21wYXJlZCB0byBhdmVyYWdlIG92ZXJhbGwgcmVkcmF3IHRpbWVcbnZhciBkZXFOb0RyYXdDb3N0JDEgPSAwLjk7IC8vICUgb2YgYXZnIGZyYW1lIHRpbWUgdGhhdCBjYW4gYmUgdXNlZCBmb3IgZGVxdWV1ZWluZyB3aGVuIG5vdCBkcmF3aW5nXG52YXIgZGVxRmFzdENvc3QkMSA9IDAuOTsgLy8gJSBvZiBmcmFtZSB0aW1lIHRvIGJlIHVzZWQgd2hlbiA+NjBmcHNcbnZhciBkZXFSZWRyYXdUaHJlc2hvbGQkMSA9IDEwMDsgLy8gdGltZSB0byBiYXRjaCByZWRyYXdzIHRvZ2V0aGVyIGZyb20gZGVxdWV1ZWluZyB0byBhbGxvdyBtb3JlIGRlcXVldWVpbmcgY2FsY3MgdG8gaGFwcGVuIGluIHRoZSBtZWFud2hpbGVcbnZhciBtYXhEZXFTaXplJDEgPSAxOyAvLyBudW1iZXIgb2YgZWxlcyB0byBkZXF1ZXVlIGFuZCByZW5kZXIgYXQgaGlnaGVyIHRleHR1cmUgaW4gZWFjaCBiYXRjaFxuXG52YXIgZ2V0VHhyUmVhc29ucyA9IHtcbiAgZGVxdWV1ZTogJ2RlcXVldWUnLFxuICBkb3duc2NhbGU6ICdkb3duc2NhbGUnLFxuICBoaWdoUXVhbGl0eTogJ2hpZ2hRdWFsaXR5J1xufTtcbnZhciBpbml0RGVmYXVsdHMgPSBkZWZhdWx0cyRnKHtcbiAgZ2V0S2V5OiBudWxsLFxuICBkb2VzRWxlSW52YWxpZGF0ZUtleTogZmFsc2lmeSxcbiAgZHJhd0VsZW1lbnQ6IG51bGwsXG4gIGdldEJvdW5kaW5nQm94OiBudWxsLFxuICBnZXRSb3RhdGlvblBvaW50OiBudWxsLFxuICBnZXRSb3RhdGlvbk9mZnNldDogbnVsbCxcbiAgaXNWaXNpYmxlOiB0cnVlaWZ5LFxuICBhbGxvd0VkZ2VUeHJDYWNoaW5nOiB0cnVlLFxuICBhbGxvd1BhcmVudFR4ckNhY2hpbmc6IHRydWVcbn0pO1xudmFyIEVsZW1lbnRUZXh0dXJlQ2FjaGUgPSBmdW5jdGlvbiBFbGVtZW50VGV4dHVyZUNhY2hlKHJlbmRlcmVyLCBpbml0T3B0aW9ucykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHNlbGYucmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgc2VsZi5vbkRlcXVldWVzID0gW107XG4gIHZhciBvcHRzID0gaW5pdERlZmF1bHRzKGluaXRPcHRpb25zKTtcbiAgZXh0ZW5kKHNlbGYsIG9wdHMpO1xuICBzZWxmLmxvb2t1cCA9IG5ldyBFbGVtZW50VGV4dHVyZUNhY2hlTG9va3VwKG9wdHMuZ2V0S2V5LCBvcHRzLmRvZXNFbGVJbnZhbGlkYXRlS2V5KTtcbiAgc2VsZi5zZXR1cERlcXVldWVpbmcoKTtcbn07XG52YXIgRVRDcCA9IEVsZW1lbnRUZXh0dXJlQ2FjaGUucHJvdG90eXBlO1xuRVRDcC5yZWFzb25zID0gZ2V0VHhyUmVhc29ucztcblxuLy8gdGhlIGxpc3Qgb2YgdGV4dHVyZXMgaW4gd2hpY2ggbmV3IHN1YnRleHR1cmVzIGZvciBlbGVtZW50cyBjYW4gYmUgcGxhY2VkXG5FVENwLmdldFRleHR1cmVRdWV1ZSA9IGZ1bmN0aW9uICh0eHJIKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgc2VsZi5lbGVJbWdDYWNoZXMgPSBzZWxmLmVsZUltZ0NhY2hlcyB8fCB7fTtcbiAgcmV0dXJuIHNlbGYuZWxlSW1nQ2FjaGVzW3R4ckhdID0gc2VsZi5lbGVJbWdDYWNoZXNbdHhySF0gfHwgW107XG59O1xuXG4vLyB0aGUgbGlzdCBvZiB1c3VzZWQgdGV4dHVyZXMgd2hpY2ggY2FuIGJlIHJlY3ljbGVkIChpbiB1c2UgaW4gdGV4dHVyZSBxdWV1ZSlcbkVUQ3AuZ2V0UmV0aXJlZFRleHR1cmVRdWV1ZSA9IGZ1bmN0aW9uICh0eHJIKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHJ0eHRyUXMgPSBzZWxmLmVsZUltZ0NhY2hlcy5yZXRpcmVkID0gc2VsZi5lbGVJbWdDYWNoZXMucmV0aXJlZCB8fCB7fTtcbiAgdmFyIHJ0eHRyUSA9IHJ0eHRyUXNbdHhySF0gPSBydHh0clFzW3R4ckhdIHx8IFtdO1xuICByZXR1cm4gcnR4dHJRO1xufTtcblxuLy8gcXVldWUgb2YgZWxlbWVudCBkcmF3IHJlcXVlc3RzIGF0IGRpZmZlcmVudCBzY2FsZSBsZXZlbHNcbkVUQ3AuZ2V0RWxlbWVudFF1ZXVlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBxID0gc2VsZi5lbGVDYWNoZVF1ZXVlID0gc2VsZi5lbGVDYWNoZVF1ZXVlIHx8IG5ldyBoZWFwKGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIGIucmVxcyAtIGEucmVxcztcbiAgfSk7XG4gIHJldHVybiBxO1xufTtcblxuLy8gcXVldWUgb2YgZWxlbWVudCBkcmF3IHJlcXVlc3RzIGF0IGRpZmZlcmVudCBzY2FsZSBsZXZlbHMgKGVsZW1lbnQgaWQgbG9va3VwKVxuRVRDcC5nZXRFbGVtZW50S2V5VG9RdWV1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgazJxID0gc2VsZi5lbGVLZXlUb0NhY2hlUXVldWUgPSBzZWxmLmVsZUtleVRvQ2FjaGVRdWV1ZSB8fCB7fTtcbiAgcmV0dXJuIGsycTtcbn07XG5FVENwLmdldEVsZW1lbnQgPSBmdW5jdGlvbiAoZWxlLCBiYiwgcHhSYXRpbywgbHZsLCByZWFzb24pIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgciA9IHRoaXMucmVuZGVyZXI7XG4gIHZhciB6b29tID0gci5jeS56b29tKCk7XG4gIHZhciBsb29rdXAgPSB0aGlzLmxvb2t1cDtcbiAgaWYgKCFiYiB8fCBiYi53ID09PSAwIHx8IGJiLmggPT09IDAgfHwgaXNOYU4oYmIudykgfHwgaXNOYU4oYmIuaCkgfHwgIWVsZS52aXNpYmxlKCkgfHwgZWxlLnJlbW92ZWQoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmICghc2VsZi5hbGxvd0VkZ2VUeHJDYWNoaW5nICYmIGVsZS5pc0VkZ2UoKSB8fCAhc2VsZi5hbGxvd1BhcmVudFR4ckNhY2hpbmcgJiYgZWxlLmlzUGFyZW50KCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBpZiAobHZsID09IG51bGwpIHtcbiAgICBsdmwgPSBNYXRoLmNlaWwobG9nMih6b29tICogcHhSYXRpbykpO1xuICB9XG4gIGlmIChsdmwgPCBtaW5MdmwkMSkge1xuICAgIGx2bCA9IG1pbkx2bCQxO1xuICB9IGVsc2UgaWYgKHpvb20gPj0gbWF4Wm9vbSQxIHx8IGx2bCA+IG1heEx2bCQxKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdmFyIHNjYWxlID0gTWF0aC5wb3coMiwgbHZsKTtcbiAgdmFyIGVsZVNjYWxlZEggPSBiYi5oICogc2NhbGU7XG4gIHZhciBlbGVTY2FsZWRXID0gYmIudyAqIHNjYWxlO1xuICB2YXIgc2NhbGVkTGFiZWxTaG93biA9IHIuZWxlVGV4dEJpZ2dlclRoYW5NaW4oZWxlLCBzY2FsZSk7XG4gIGlmICghdGhpcy5pc1Zpc2libGUoZWxlLCBzY2FsZWRMYWJlbFNob3duKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHZhciBlbGVDYWNoZSA9IGxvb2t1cC5nZXQoZWxlLCBsdmwpO1xuXG4gIC8vIGlmIHRoaXMgZ2V0IHdhcyBvbiBhbiB1bnVzZWQvaW52YWxpZGF0ZWQgY2FjaGUsIHRoZW4gcmVzdG9yZSB0aGUgdGV4dHVyZSB1c2FnZSBtZXRyaWNcbiAgaWYgKGVsZUNhY2hlICYmIGVsZUNhY2hlLmludmFsaWRhdGVkKSB7XG4gICAgZWxlQ2FjaGUuaW52YWxpZGF0ZWQgPSBmYWxzZTtcbiAgICBlbGVDYWNoZS50ZXh0dXJlLmludmFsaWRhdGVkV2lkdGggLT0gZWxlQ2FjaGUud2lkdGg7XG4gIH1cbiAgaWYgKGVsZUNhY2hlKSB7XG4gICAgcmV0dXJuIGVsZUNhY2hlO1xuICB9XG4gIHZhciB0eHJIOyAvLyB3aGljaCB0ZXh0dXJlIGhlaWdodCB0aGlzIGVsZSBiZWxvbmdzIHRvXG5cbiAgaWYgKGVsZVNjYWxlZEggPD0gbWluVHhySCkge1xuICAgIHR4ckggPSBtaW5UeHJIO1xuICB9IGVsc2UgaWYgKGVsZVNjYWxlZEggPD0gdHhyU3RlcEgpIHtcbiAgICB0eHJIID0gdHhyU3RlcEg7XG4gIH0gZWxzZSB7XG4gICAgdHhySCA9IE1hdGguY2VpbChlbGVTY2FsZWRIIC8gdHhyU3RlcEgpICogdHhyU3RlcEg7XG4gIH1cbiAgaWYgKGVsZVNjYWxlZEggPiBtYXhUeHJIIHx8IGVsZVNjYWxlZFcgPiBtYXhUeHJXKSB7XG4gICAgcmV0dXJuIG51bGw7IC8vIGNhY2hpbmcgbGFyZ2UgZWxlbWVudHMgaXMgbm90IGVmZmljaWVudFxuICB9XG5cbiAgdmFyIHR4clEgPSBzZWxmLmdldFRleHR1cmVRdWV1ZSh0eHJIKTtcblxuICAvLyBmaXJzdCB0cnkgdGhlIHNlY29uZCBsYXN0IG9uZSBpbiBjYXNlIGl0IGhhcyBzcGFjZSBhdCB0aGUgZW5kXG4gIHZhciB0eHIgPSB0eHJRW3R4clEubGVuZ3RoIC0gMl07XG4gIHZhciBhZGROZXdUeHIgPSBmdW5jdGlvbiBhZGROZXdUeHIoKSB7XG4gICAgcmV0dXJuIHNlbGYucmVjeWNsZVRleHR1cmUodHhySCwgZWxlU2NhbGVkVykgfHwgc2VsZi5hZGRUZXh0dXJlKHR4ckgsIGVsZVNjYWxlZFcpO1xuICB9O1xuXG4gIC8vIHRyeSB0aGUgbGFzdCBvbmUgaWYgdGhlcmUgaXMgbm8gc2Vjb25kIGxhc3Qgb25lXG4gIGlmICghdHhyKSB7XG4gICAgdHhyID0gdHhyUVt0eHJRLmxlbmd0aCAtIDFdO1xuICB9XG5cbiAgLy8gaWYgdGhlIGxhc3Qgb25lIGRvZXNuJ3QgZXhpc3QsIHdlIG5lZWQgYSBmaXJzdCBvbmVcbiAgaWYgKCF0eHIpIHtcbiAgICB0eHIgPSBhZGROZXdUeHIoKTtcbiAgfVxuXG4gIC8vIGlmIHRoZXJlJ3Mgbm8gcm9vbSBpbiB0aGUgY3VycmVudCB0ZXh0dXJlLCB3ZSBuZWVkIGEgbmV3IG9uZVxuICBpZiAodHhyLndpZHRoIC0gdHhyLnVzZWRXaWR0aCA8IGVsZVNjYWxlZFcpIHtcbiAgICB0eHIgPSBhZGROZXdUeHIoKTtcbiAgfVxuICB2YXIgc2NhbGFibGVGcm9tID0gZnVuY3Rpb24gc2NhbGFibGVGcm9tKG90aGVyQ2FjaGUpIHtcbiAgICByZXR1cm4gb3RoZXJDYWNoZSAmJiBvdGhlckNhY2hlLnNjYWxlZExhYmVsU2hvd24gPT09IHNjYWxlZExhYmVsU2hvd247XG4gIH07XG4gIHZhciBkZXFpbmcgPSByZWFzb24gJiYgcmVhc29uID09PSBnZXRUeHJSZWFzb25zLmRlcXVldWU7XG4gIHZhciBoaWdoUXVhbGl0eVJlcSA9IHJlYXNvbiAmJiByZWFzb24gPT09IGdldFR4clJlYXNvbnMuaGlnaFF1YWxpdHk7XG4gIHZhciBkb3duc2NhbGVSZXEgPSByZWFzb24gJiYgcmVhc29uID09PSBnZXRUeHJSZWFzb25zLmRvd25zY2FsZTtcbiAgdmFyIGhpZ2hlckNhY2hlOyAvLyB0aGUgbmVhcmVzdCBjYWNoZSB3aXRoIGEgaGlnaGVyIGxldmVsXG4gIGZvciAodmFyIGwgPSBsdmwgKyAxOyBsIDw9IG1heEx2bCQxOyBsKyspIHtcbiAgICB2YXIgYyA9IGxvb2t1cC5nZXQoZWxlLCBsKTtcbiAgICBpZiAoYykge1xuICAgICAgaGlnaGVyQ2FjaGUgPSBjO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHZhciBvbmVVcENhY2hlID0gaGlnaGVyQ2FjaGUgJiYgaGlnaGVyQ2FjaGUubGV2ZWwgPT09IGx2bCArIDEgPyBoaWdoZXJDYWNoZSA6IG51bGw7XG4gIHZhciBkb3duc2NhbGUgPSBmdW5jdGlvbiBkb3duc2NhbGUoKSB7XG4gICAgdHhyLmNvbnRleHQuZHJhd0ltYWdlKG9uZVVwQ2FjaGUudGV4dHVyZS5jYW52YXMsIG9uZVVwQ2FjaGUueCwgMCwgb25lVXBDYWNoZS53aWR0aCwgb25lVXBDYWNoZS5oZWlnaHQsIHR4ci51c2VkV2lkdGgsIDAsIGVsZVNjYWxlZFcsIGVsZVNjYWxlZEgpO1xuICB9O1xuXG4gIC8vIHJlc2V0IGVsZSBhcmVhIGluIHRleHR1cmVcbiAgdHhyLmNvbnRleHQuc2V0VHJhbnNmb3JtKDEsIDAsIDAsIDEsIDAsIDApO1xuICB0eHIuY29udGV4dC5jbGVhclJlY3QodHhyLnVzZWRXaWR0aCwgMCwgZWxlU2NhbGVkVywgdHhySCk7XG4gIGlmIChzY2FsYWJsZUZyb20ob25lVXBDYWNoZSkpIHtcbiAgICAvLyB0aGVuIHdlIGNhbiByZWxhdGl2ZWx5IGNoZWFwbHkgcmVzY2FsZSB0aGUgZXhpc3RpbmcgaW1hZ2Ugdy9vIHJlcmVuZGVyaW5nXG4gICAgZG93bnNjYWxlKCk7XG4gIH0gZWxzZSBpZiAoc2NhbGFibGVGcm9tKGhpZ2hlckNhY2hlKSkge1xuICAgIC8vIHRoZW4gdXNlIHRoZSBoaWdoZXIgY2FjaGUgZm9yIG5vdyBhbmQgcXVldWUgdGhlIG5leHQgbGV2ZWwgZG93blxuICAgIC8vIHRvIGNoZWFwbHkgc2NhbGUgdG93YXJkcyB0aGUgc21hbGxlciBsZXZlbFxuXG4gICAgaWYgKGhpZ2hRdWFsaXR5UmVxKSB7XG4gICAgICBmb3IgKHZhciBfbCA9IGhpZ2hlckNhY2hlLmxldmVsOyBfbCA+IGx2bDsgX2wtLSkge1xuICAgICAgICBvbmVVcENhY2hlID0gc2VsZi5nZXRFbGVtZW50KGVsZSwgYmIsIHB4UmF0aW8sIF9sLCBnZXRUeHJSZWFzb25zLmRvd25zY2FsZSk7XG4gICAgICB9XG4gICAgICBkb3duc2NhbGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZi5xdWV1ZUVsZW1lbnQoZWxlLCBoaWdoZXJDYWNoZS5sZXZlbCAtIDEpO1xuICAgICAgcmV0dXJuIGhpZ2hlckNhY2hlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgbG93ZXJDYWNoZTsgLy8gdGhlIG5lYXJlc3QgY2FjaGUgd2l0aCBhIGxvd2VyIGxldmVsXG4gICAgaWYgKCFkZXFpbmcgJiYgIWhpZ2hRdWFsaXR5UmVxICYmICFkb3duc2NhbGVSZXEpIHtcbiAgICAgIGZvciAodmFyIF9sMiA9IGx2bCAtIDE7IF9sMiA+PSBtaW5MdmwkMTsgX2wyLS0pIHtcbiAgICAgICAgdmFyIF9jID0gbG9va3VwLmdldChlbGUsIF9sMik7XG4gICAgICAgIGlmIChfYykge1xuICAgICAgICAgIGxvd2VyQ2FjaGUgPSBfYztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc2NhbGFibGVGcm9tKGxvd2VyQ2FjaGUpKSB7XG4gICAgICAvLyB0aGVuIHVzZSB0aGUgbG93ZXIgcXVhbGl0eSBjYWNoZSBmb3Igbm93IGFuZCBxdWV1ZSB0aGUgYmV0dGVyIG9uZSBmb3IgbGF0ZXJcblxuICAgICAgc2VsZi5xdWV1ZUVsZW1lbnQoZWxlLCBsdmwpO1xuICAgICAgcmV0dXJuIGxvd2VyQ2FjaGU7XG4gICAgfVxuICAgIHR4ci5jb250ZXh0LnRyYW5zbGF0ZSh0eHIudXNlZFdpZHRoLCAwKTtcbiAgICB0eHIuY29udGV4dC5zY2FsZShzY2FsZSwgc2NhbGUpO1xuICAgIHRoaXMuZHJhd0VsZW1lbnQodHhyLmNvbnRleHQsIGVsZSwgYmIsIHNjYWxlZExhYmVsU2hvd24sIGZhbHNlKTtcbiAgICB0eHIuY29udGV4dC5zY2FsZSgxIC8gc2NhbGUsIDEgLyBzY2FsZSk7XG4gICAgdHhyLmNvbnRleHQudHJhbnNsYXRlKC10eHIudXNlZFdpZHRoLCAwKTtcbiAgfVxuICBlbGVDYWNoZSA9IHtcbiAgICB4OiB0eHIudXNlZFdpZHRoLFxuICAgIHRleHR1cmU6IHR4cixcbiAgICBsZXZlbDogbHZsLFxuICAgIHNjYWxlOiBzY2FsZSxcbiAgICB3aWR0aDogZWxlU2NhbGVkVyxcbiAgICBoZWlnaHQ6IGVsZVNjYWxlZEgsXG4gICAgc2NhbGVkTGFiZWxTaG93bjogc2NhbGVkTGFiZWxTaG93blxuICB9O1xuICB0eHIudXNlZFdpZHRoICs9IE1hdGguY2VpbChlbGVTY2FsZWRXICsgZWxlVHhyU3BhY2luZyk7XG4gIHR4ci5lbGVDYWNoZXMucHVzaChlbGVDYWNoZSk7XG4gIGxvb2t1cC5zZXQoZWxlLCBsdmwsIGVsZUNhY2hlKTtcbiAgc2VsZi5jaGVja1RleHR1cmVGdWxsbmVzcyh0eHIpO1xuICByZXR1cm4gZWxlQ2FjaGU7XG59O1xuRVRDcC5pbnZhbGlkYXRlRWxlbWVudHMgPSBmdW5jdGlvbiAoZWxlcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICB0aGlzLmludmFsaWRhdGVFbGVtZW50KGVsZXNbaV0pO1xuICB9XG59O1xuRVRDcC5pbnZhbGlkYXRlRWxlbWVudCA9IGZ1bmN0aW9uIChlbGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgbG9va3VwID0gc2VsZi5sb29rdXA7XG4gIHZhciBjYWNoZXMgPSBbXTtcbiAgdmFyIGludmFsaWQgPSBsb29rdXAuaXNJbnZhbGlkKGVsZSk7XG4gIGlmICghaW52YWxpZCkge1xuICAgIHJldHVybjsgLy8gb3ZlcnJpZGUgdGhlIGludmFsaWRhdGlvbiByZXF1ZXN0IGlmIHRoZSBlbGVtZW50IGtleSBoYXMgbm90IGNoYW5nZWRcbiAgfVxuXG4gIGZvciAodmFyIGx2bCA9IG1pbkx2bCQxOyBsdmwgPD0gbWF4THZsJDE7IGx2bCsrKSB7XG4gICAgdmFyIGNhY2hlID0gbG9va3VwLmdldEZvckNhY2hlZEtleShlbGUsIGx2bCk7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICBjYWNoZXMucHVzaChjYWNoZSk7XG4gICAgfVxuICB9XG4gIHZhciBub090aGVyRWxlc1VzZUNhY2hlID0gbG9va3VwLmludmFsaWRhdGUoZWxlKTtcbiAgaWYgKG5vT3RoZXJFbGVzVXNlQ2FjaGUpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhY2hlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIF9jYWNoZSA9IGNhY2hlc1tpXTtcbiAgICAgIHZhciB0eHIgPSBfY2FjaGUudGV4dHVyZTtcblxuICAgICAgLy8gcmVtb3ZlIHNwYWNlIGZyb20gdGhlIHRleHR1cmUgaXQgYmVsb25ncyB0b1xuICAgICAgdHhyLmludmFsaWRhdGVkV2lkdGggKz0gX2NhY2hlLndpZHRoO1xuXG4gICAgICAvLyBtYXJrIHRoZSBjYWNoZSBhcyBpbnZhbGlkYXRlZFxuICAgICAgX2NhY2hlLmludmFsaWRhdGVkID0gdHJ1ZTtcblxuICAgICAgLy8gcmV0aXJlIHRoZSB0ZXh0dXJlIGlmIGl0cyB1dGlsaXR5IGlzIGxvd1xuICAgICAgc2VsZi5jaGVja1RleHR1cmVVdGlsaXR5KHR4cik7XG4gICAgfVxuICB9XG5cbiAgLy8gcmVtb3ZlIGZyb20gcXVldWUgc2luY2UgdGhlIG9sZCByZXEgd2FzIGZvciB0aGUgb2xkIHN0YXRlXG4gIHNlbGYucmVtb3ZlRnJvbVF1ZXVlKGVsZSk7XG59O1xuRVRDcC5jaGVja1RleHR1cmVVdGlsaXR5ID0gZnVuY3Rpb24gKHR4cikge1xuICAvLyBpbnZhbGlkYXRlIGFsbCBlbnRyaWVzIGluIHRoZSBjYWNoZSBpZiB0aGUgY2FjaGUgc2l6ZSBpcyBzbWFsbFxuICBpZiAodHhyLmludmFsaWRhdGVkV2lkdGggPj0gbWluVXRpbGl0eSAqIHR4ci53aWR0aCkge1xuICAgIHRoaXMucmV0aXJlVGV4dHVyZSh0eHIpO1xuICB9XG59O1xuRVRDcC5jaGVja1RleHR1cmVGdWxsbmVzcyA9IGZ1bmN0aW9uICh0eHIpIHtcbiAgLy8gaWYgdGV4dHVyZSBoYXMgYmVlbiBtb3N0bHkgZmlsbGVkIGFuZCBwYXNzZWQgb3ZlciBzZXZlcmFsIHRpbWVzLCByZW1vdmVcbiAgLy8gaXQgZnJvbSB0aGUgcXVldWUgc28gd2UgZG9uJ3QgbmVlZCB0byB3YXN0ZSB0aW1lIGxvb2tpbmcgYXQgaXQgdG8gcHV0IG5ldyB0aGluZ3NcblxuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciB0eHJRID0gc2VsZi5nZXRUZXh0dXJlUXVldWUodHhyLmhlaWdodCk7XG4gIGlmICh0eHIudXNlZFdpZHRoIC8gdHhyLndpZHRoID4gbWF4RnVsbG5lc3MgJiYgdHhyLmZ1bGxuZXNzQ2hlY2tzID49IG1heEZ1bGxuZXNzQ2hlY2tzKSB7XG4gICAgcmVtb3ZlRnJvbUFycmF5KHR4clEsIHR4cik7XG4gIH0gZWxzZSB7XG4gICAgdHhyLmZ1bGxuZXNzQ2hlY2tzKys7XG4gIH1cbn07XG5FVENwLnJldGlyZVRleHR1cmUgPSBmdW5jdGlvbiAodHhyKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHR4ckggPSB0eHIuaGVpZ2h0O1xuICB2YXIgdHhyUSA9IHNlbGYuZ2V0VGV4dHVyZVF1ZXVlKHR4ckgpO1xuICB2YXIgbG9va3VwID0gdGhpcy5sb29rdXA7XG5cbiAgLy8gcmV0aXJlIHRoZSB0ZXh0dXJlIGZyb20gdGhlIGFjdGl2ZSAvIHNlYXJjaGFibGUgcXVldWU6XG5cbiAgcmVtb3ZlRnJvbUFycmF5KHR4clEsIHR4cik7XG4gIHR4ci5yZXRpcmVkID0gdHJ1ZTtcblxuICAvLyByZW1vdmUgdGhlIHJlZnMgZnJvbSB0aGUgZWxlcyB0byB0aGUgY2FjaGVzOlxuXG4gIHZhciBlbGVDYWNoZXMgPSB0eHIuZWxlQ2FjaGVzO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZUNhY2hlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBlbGVDYWNoZSA9IGVsZUNhY2hlc1tpXTtcbiAgICBsb29rdXAuZGVsZXRlQ2FjaGUoZWxlQ2FjaGUua2V5LCBlbGVDYWNoZS5sZXZlbCk7XG4gIH1cbiAgY2xlYXJBcnJheShlbGVDYWNoZXMpO1xuXG4gIC8vIGFkZCB0aGUgdGV4dHVyZSB0byBhIHJldGlyZWQgcXVldWUgc28gaXQgY2FuIGJlIHJlY3ljbGVkIGluIGZ1dHVyZTpcblxuICB2YXIgcnR4dHJRID0gc2VsZi5nZXRSZXRpcmVkVGV4dHVyZVF1ZXVlKHR4ckgpO1xuICBydHh0clEucHVzaCh0eHIpO1xufTtcbkVUQ3AuYWRkVGV4dHVyZSA9IGZ1bmN0aW9uICh0eHJILCBtaW5XKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHR4clEgPSBzZWxmLmdldFRleHR1cmVRdWV1ZSh0eHJIKTtcbiAgdmFyIHR4ciA9IHt9O1xuICB0eHJRLnB1c2godHhyKTtcbiAgdHhyLmVsZUNhY2hlcyA9IFtdO1xuICB0eHIuaGVpZ2h0ID0gdHhySDtcbiAgdHhyLndpZHRoID0gTWF0aC5tYXgoZGVmVHhyV2lkdGgsIG1pblcpO1xuICB0eHIudXNlZFdpZHRoID0gMDtcbiAgdHhyLmludmFsaWRhdGVkV2lkdGggPSAwO1xuICB0eHIuZnVsbG5lc3NDaGVja3MgPSAwO1xuICB0eHIuY2FudmFzID0gc2VsZi5yZW5kZXJlci5tYWtlT2Zmc2NyZWVuQ2FudmFzKHR4ci53aWR0aCwgdHhyLmhlaWdodCk7XG4gIHR4ci5jb250ZXh0ID0gdHhyLmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICByZXR1cm4gdHhyO1xufTtcbkVUQ3AucmVjeWNsZVRleHR1cmUgPSBmdW5jdGlvbiAodHhySCwgbWluVykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciB0eHJRID0gc2VsZi5nZXRUZXh0dXJlUXVldWUodHhySCk7XG4gIHZhciBydHh0clEgPSBzZWxmLmdldFJldGlyZWRUZXh0dXJlUXVldWUodHhySCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcnR4dHJRLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHR4ciA9IHJ0eHRyUVtpXTtcbiAgICBpZiAodHhyLndpZHRoID49IG1pblcpIHtcbiAgICAgIHR4ci5yZXRpcmVkID0gZmFsc2U7XG4gICAgICB0eHIudXNlZFdpZHRoID0gMDtcbiAgICAgIHR4ci5pbnZhbGlkYXRlZFdpZHRoID0gMDtcbiAgICAgIHR4ci5mdWxsbmVzc0NoZWNrcyA9IDA7XG4gICAgICBjbGVhckFycmF5KHR4ci5lbGVDYWNoZXMpO1xuICAgICAgdHhyLmNvbnRleHQuc2V0VHJhbnNmb3JtKDEsIDAsIDAsIDEsIDAsIDApO1xuICAgICAgdHhyLmNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIHR4ci53aWR0aCwgdHhyLmhlaWdodCk7XG4gICAgICByZW1vdmVGcm9tQXJyYXkocnR4dHJRLCB0eHIpO1xuICAgICAgdHhyUS5wdXNoKHR4cik7XG4gICAgICByZXR1cm4gdHhyO1xuICAgIH1cbiAgfVxufTtcbkVUQ3AucXVldWVFbGVtZW50ID0gZnVuY3Rpb24gKGVsZSwgbHZsKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHEgPSBzZWxmLmdldEVsZW1lbnRRdWV1ZSgpO1xuICB2YXIgazJxID0gc2VsZi5nZXRFbGVtZW50S2V5VG9RdWV1ZSgpO1xuICB2YXIga2V5ID0gdGhpcy5nZXRLZXkoZWxlKTtcbiAgdmFyIGV4aXN0aW5nUmVxID0gazJxW2tleV07XG4gIGlmIChleGlzdGluZ1JlcSkge1xuICAgIC8vIHVzZSB0aGUgbWF4IGx2bCBiL2MgaW4gYmV0d2VlbiBsdmxzIGFyZSBjaGVhcCB0byBtYWtlXG4gICAgZXhpc3RpbmdSZXEubGV2ZWwgPSBNYXRoLm1heChleGlzdGluZ1JlcS5sZXZlbCwgbHZsKTtcbiAgICBleGlzdGluZ1JlcS5lbGVzLm1lcmdlKGVsZSk7XG4gICAgZXhpc3RpbmdSZXEucmVxcysrO1xuICAgIHEudXBkYXRlSXRlbShleGlzdGluZ1JlcSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHJlcSA9IHtcbiAgICAgIGVsZXM6IGVsZS5zcGF3bigpLm1lcmdlKGVsZSksXG4gICAgICBsZXZlbDogbHZsLFxuICAgICAgcmVxczogMSxcbiAgICAgIGtleToga2V5XG4gICAgfTtcbiAgICBxLnB1c2gocmVxKTtcbiAgICBrMnFba2V5XSA9IHJlcTtcbiAgfVxufTtcbkVUQ3AuZGVxdWV1ZSA9IGZ1bmN0aW9uIChweFJhdGlvIC8qLCBleHRlbnQqLykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBxID0gc2VsZi5nZXRFbGVtZW50UXVldWUoKTtcbiAgdmFyIGsycSA9IHNlbGYuZ2V0RWxlbWVudEtleVRvUXVldWUoKTtcbiAgdmFyIGRlcXVldWVkID0gW107XG4gIHZhciBsb29rdXAgPSBzZWxmLmxvb2t1cDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXhEZXFTaXplJDE7IGkrKykge1xuICAgIGlmIChxLnNpemUoKSA+IDApIHtcbiAgICAgIHZhciByZXEgPSBxLnBvcCgpO1xuICAgICAgdmFyIGtleSA9IHJlcS5rZXk7XG4gICAgICB2YXIgZWxlID0gcmVxLmVsZXNbMF07IC8vIGFsbCBlbGVzIGhhdmUgdGhlIHNhbWUga2V5XG4gICAgICB2YXIgY2FjaGVFeGlzdHMgPSBsb29rdXAuaGFzQ2FjaGUoZWxlLCByZXEubGV2ZWwpO1xuXG4gICAgICAvLyBjbGVhciBvdXQgdGhlIGtleSB0byByZXEgbG9va3VwXG4gICAgICBrMnFba2V5XSA9IG51bGw7XG5cbiAgICAgIC8vIGRlcXVldWVpbmcgaXNuJ3QgbmVjZXNzYXJ5IHdpdGggYW4gZXhpc3RpbmcgY2FjaGVcbiAgICAgIGlmIChjYWNoZUV4aXN0cykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGRlcXVldWVkLnB1c2gocmVxKTtcbiAgICAgIHZhciBiYiA9IHNlbGYuZ2V0Qm91bmRpbmdCb3goZWxlKTtcbiAgICAgIHNlbGYuZ2V0RWxlbWVudChlbGUsIGJiLCBweFJhdGlvLCByZXEubGV2ZWwsIGdldFR4clJlYXNvbnMuZGVxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGVxdWV1ZWQ7XG59O1xuRVRDcC5yZW1vdmVGcm9tUXVldWUgPSBmdW5jdGlvbiAoZWxlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHEgPSBzZWxmLmdldEVsZW1lbnRRdWV1ZSgpO1xuICB2YXIgazJxID0gc2VsZi5nZXRFbGVtZW50S2V5VG9RdWV1ZSgpO1xuICB2YXIga2V5ID0gdGhpcy5nZXRLZXkoZWxlKTtcbiAgdmFyIHJlcSA9IGsycVtrZXldO1xuICBpZiAocmVxICE9IG51bGwpIHtcbiAgICBpZiAocmVxLmVsZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAvLyByZW1vdmUgaWYgbGFzdCBlbGUgaW4gdGhlIHJlcVxuICAgICAgLy8gYnJpbmcgdG8gZnJvbnQgb2YgcXVldWVcbiAgICAgIHJlcS5yZXFzID0gTUFYX0lOVCQxO1xuICAgICAgcS51cGRhdGVJdGVtKHJlcSk7XG4gICAgICBxLnBvcCgpOyAvLyByZW1vdmUgZnJvbSBxdWV1ZVxuXG4gICAgICBrMnFba2V5XSA9IG51bGw7IC8vIHJlbW92ZSBmcm9tIGxvb2t1cCBtYXBcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gb3RoZXJ3aXNlIGp1c3QgcmVtb3ZlIGVsZSBmcm9tIHJlcVxuICAgICAgcmVxLmVsZXMudW5tZXJnZShlbGUpO1xuICAgIH1cbiAgfVxufTtcbkVUQ3Aub25EZXF1ZXVlID0gZnVuY3Rpb24gKGZuKSB7XG4gIHRoaXMub25EZXF1ZXVlcy5wdXNoKGZuKTtcbn07XG5FVENwLm9mZkRlcXVldWUgPSBmdW5jdGlvbiAoZm4pIHtcbiAgcmVtb3ZlRnJvbUFycmF5KHRoaXMub25EZXF1ZXVlcywgZm4pO1xufTtcbkVUQ3Auc2V0dXBEZXF1ZXVlaW5nID0gZGVmcy5zZXR1cERlcXVldWVpbmcoe1xuICBkZXFSZWRyYXdUaHJlc2hvbGQ6IGRlcVJlZHJhd1RocmVzaG9sZCQxLFxuICBkZXFDb3N0OiBkZXFDb3N0JDEsXG4gIGRlcUF2Z0Nvc3Q6IGRlcUF2Z0Nvc3QkMSxcbiAgZGVxTm9EcmF3Q29zdDogZGVxTm9EcmF3Q29zdCQxLFxuICBkZXFGYXN0Q29zdDogZGVxRmFzdENvc3QkMSxcbiAgZGVxOiBmdW5jdGlvbiBkZXEoc2VsZiwgcHhSYXRpbywgZXh0ZW50KSB7XG4gICAgcmV0dXJuIHNlbGYuZGVxdWV1ZShweFJhdGlvLCBleHRlbnQpO1xuICB9LFxuICBvbkRlcWQ6IGZ1bmN0aW9uIG9uRGVxZChzZWxmLCBkZXFkKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxmLm9uRGVxdWV1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBmbiA9IHNlbGYub25EZXF1ZXVlc1tpXTtcbiAgICAgIGZuKGRlcWQpO1xuICAgIH1cbiAgfSxcbiAgc2hvdWxkUmVkcmF3OiBmdW5jdGlvbiBzaG91bGRSZWRyYXcoc2VsZiwgZGVxZCwgcHhSYXRpbywgZXh0ZW50KSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZXFkLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlcyA9IGRlcWRbaV0uZWxlcztcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZWxlcy5sZW5ndGg7IGorKykge1xuICAgICAgICB2YXIgYmIgPSBlbGVzW2pdLmJvdW5kaW5nQm94KCk7XG4gICAgICAgIGlmIChib3VuZGluZ0JveGVzSW50ZXJzZWN0KGJiLCBleHRlbnQpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuICBwcmlvcml0eTogZnVuY3Rpb24gcHJpb3JpdHkoc2VsZikge1xuICAgIHJldHVybiBzZWxmLnJlbmRlcmVyLmJlZm9yZVJlbmRlclByaW9yaXRpZXMuZWxlVHhyRGVxO1xuICB9XG59KTtcblxudmFyIGRlZk51bUxheWVycyA9IDE7IC8vIGRlZmF1bHQgbnVtYmVyIG9mIGxheWVycyB0byB1c2VcbnZhciBtaW5MdmwgPSAtNDsgLy8gd2hlbiBzY2FsaW5nIHNtYWxsZXIgdGhhbiB0aGF0IHdlIGRvbid0IG5lZWQgdG8gcmUtcmVuZGVyXG52YXIgbWF4THZsID0gMjsgLy8gd2hlbiBsYXJnZXIgdGhhbiB0aGlzIHNjYWxlIGp1c3QgcmVuZGVyIGRpcmVjdGx5IChjYWNoaW5nIGlzIG5vdCBoZWxwZnVsKVxudmFyIG1heFpvb20gPSAzLjk5OyAvLyBiZXlvbmQgdGhpcyB6b29tIGxldmVsLCBsYXllcmVkIHRleHR1cmVzIGFyZSBub3QgdXNlZFxudmFyIGRlcVJlZHJhd1RocmVzaG9sZCA9IDUwOyAvLyB0aW1lIHRvIGJhdGNoIHJlZHJhd3MgdG9nZXRoZXIgZnJvbSBkZXF1ZXVlaW5nIHRvIGFsbG93IG1vcmUgZGVxdWV1ZWluZyBjYWxjcyB0byBoYXBwZW4gaW4gdGhlIG1lYW53aGlsZVxudmFyIHJlZmluZUVsZURlYm91bmNlVGltZSA9IDUwOyAvLyB0aW1lIHRvIGRlYm91bmNlIHNoYXJwZXIgZWxlIHRleHR1cmUgdXBkYXRlc1xudmFyIGRlcUNvc3QgPSAwLjE1OyAvLyAlIG9mIGFkZCdsIHJlbmRlcmluZyBjb3N0IGFsbG93ZWQgZm9yIGRlcXVldWluZyBlbGUgY2FjaGVzIGVhY2ggZnJhbWVcbnZhciBkZXFBdmdDb3N0ID0gMC4xOyAvLyAlIG9mIGFkZCdsIHJlbmRlcmluZyBjb3N0IGNvbXBhcmVkIHRvIGF2ZXJhZ2Ugb3ZlcmFsbCByZWRyYXcgdGltZVxudmFyIGRlcU5vRHJhd0Nvc3QgPSAwLjk7IC8vICUgb2YgYXZnIGZyYW1lIHRpbWUgdGhhdCBjYW4gYmUgdXNlZCBmb3IgZGVxdWV1ZWluZyB3aGVuIG5vdCBkcmF3aW5nXG52YXIgZGVxRmFzdENvc3QgPSAwLjk7IC8vICUgb2YgZnJhbWUgdGltZSB0byBiZSB1c2VkIHdoZW4gPjYwZnBzXG52YXIgbWF4RGVxU2l6ZSA9IDE7IC8vIG51bWJlciBvZiBlbGVzIHRvIGRlcXVldWUgYW5kIHJlbmRlciBhdCBoaWdoZXIgdGV4dHVyZSBpbiBlYWNoIGJhdGNoXG52YXIgaW52YWxpZFRocmVzaG9sZCA9IDI1MDsgLy8gdGltZSB0aHJlc2hvbGQgZm9yIGRpc2FibGluZyBiL2Mgb2YgaW52YWxpZGF0aW9uc1xudmFyIG1heExheWVyQXJlYSA9IDQwMDAgKiA0MDAwOyAvLyBsYXllcnMgY2FuJ3QgYmUgYmlnZ2VyIHRoYW4gdGhpc1xudmFyIHVzZUhpZ2hRdWFsaXR5RWxlVHhyUmVxcyA9IHRydWU7IC8vIHdoZXRoZXIgdG8gdXNlIGhpZ2ggcXVhbGl0eSBlbGUgdHhyIHJlcXVlc3RzIChnZW5lcmFsbHkgZmFzdGVyIGFuZCBjaGVhcGVyIGluIHRoZSBsb25ndGVybSlcblxuLy8gdmFyIGxvZyA9IGZ1bmN0aW9uKCl7IGNvbnNvbGUubG9nLmFwcGx5KCBjb25zb2xlLCBhcmd1bWVudHMgKTsgfTtcblxudmFyIExheWVyZWRUZXh0dXJlQ2FjaGUgPSBmdW5jdGlvbiBMYXllcmVkVGV4dHVyZUNhY2hlKHJlbmRlcmVyKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHIgPSBzZWxmLnJlbmRlcmVyID0gcmVuZGVyZXI7XG4gIHZhciBjeSA9IHIuY3k7XG4gIHNlbGYubGF5ZXJzQnlMZXZlbCA9IHt9OyAvLyBlLmcuIDIgPT4gWyBsYXllcjEsIGxheWVyMiwgLi4uLCBsYXllck4gXVxuXG4gIHNlbGYuZmlyc3RHZXQgPSB0cnVlO1xuICBzZWxmLmxhc3RJbnZhbGlkYXRpb25UaW1lID0gcGVyZm9ybWFuY2VOb3coKSAtIDIgKiBpbnZhbGlkVGhyZXNob2xkO1xuICBzZWxmLnNraXBwaW5nID0gZmFsc2U7XG4gIHNlbGYuZWxlVHhyRGVxcyA9IGN5LmNvbGxlY3Rpb24oKTtcbiAgc2VsZi5zY2hlZHVsZUVsZW1lbnRSZWZpbmVtZW50ID0gZGVib3VuY2VfMShmdW5jdGlvbiAoKSB7XG4gICAgc2VsZi5yZWZpbmVFbGVtZW50VGV4dHVyZXMoc2VsZi5lbGVUeHJEZXFzKTtcbiAgICBzZWxmLmVsZVR4ckRlcXMudW5tZXJnZShzZWxmLmVsZVR4ckRlcXMpO1xuICB9LCByZWZpbmVFbGVEZWJvdW5jZVRpbWUpO1xuICByLmJlZm9yZVJlbmRlcihmdW5jdGlvbiAod2lsbERyYXcsIG5vdykge1xuICAgIGlmIChub3cgLSBzZWxmLmxhc3RJbnZhbGlkYXRpb25UaW1lIDw9IGludmFsaWRUaHJlc2hvbGQpIHtcbiAgICAgIHNlbGYuc2tpcHBpbmcgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxmLnNraXBwaW5nID0gZmFsc2U7XG4gICAgfVxuICB9LCByLmJlZm9yZVJlbmRlclByaW9yaXRpZXMubHlyVHhyU2tpcCk7XG4gIHZhciBxU29ydCA9IGZ1bmN0aW9uIHFTb3J0KGEsIGIpIHtcbiAgICByZXR1cm4gYi5yZXFzIC0gYS5yZXFzO1xuICB9O1xuICBzZWxmLmxheWVyc1F1ZXVlID0gbmV3IGhlYXAocVNvcnQpO1xuICBzZWxmLnNldHVwRGVxdWV1ZWluZygpO1xufTtcbnZhciBMVENwID0gTGF5ZXJlZFRleHR1cmVDYWNoZS5wcm90b3R5cGU7XG52YXIgbGF5ZXJJZFBvb2wgPSAwO1xudmFyIE1BWF9JTlQgPSBNYXRoLnBvdygyLCA1MykgLSAxO1xuTFRDcC5tYWtlTGF5ZXIgPSBmdW5jdGlvbiAoYmIsIGx2bCkge1xuICB2YXIgc2NhbGUgPSBNYXRoLnBvdygyLCBsdmwpO1xuICB2YXIgdyA9IE1hdGguY2VpbChiYi53ICogc2NhbGUpO1xuICB2YXIgaCA9IE1hdGguY2VpbChiYi5oICogc2NhbGUpO1xuICB2YXIgY2FudmFzID0gdGhpcy5yZW5kZXJlci5tYWtlT2Zmc2NyZWVuQ2FudmFzKHcsIGgpO1xuICB2YXIgbGF5ZXIgPSB7XG4gICAgaWQ6IGxheWVySWRQb29sID0gKytsYXllcklkUG9vbCAlIE1BWF9JTlQsXG4gICAgYmI6IGJiLFxuICAgIGxldmVsOiBsdmwsXG4gICAgd2lkdGg6IHcsXG4gICAgaGVpZ2h0OiBoLFxuICAgIGNhbnZhczogY2FudmFzLFxuICAgIGNvbnRleHQ6IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLFxuICAgIGVsZXM6IFtdLFxuICAgIGVsZXNRdWV1ZTogW10sXG4gICAgcmVxczogMFxuICB9O1xuXG4gIC8vIGxvZygnbWFrZSBsYXllciAlcyB3aXRoIHcgJXMgYW5kIGggJXMgYW5kIGx2bCAlcycsIGxheWVyLmlkLCBsYXllci53aWR0aCwgbGF5ZXIuaGVpZ2h0LCBsYXllci5sZXZlbCk7XG5cbiAgdmFyIGN4dCA9IGxheWVyLmNvbnRleHQ7XG4gIHZhciBkeCA9IC1sYXllci5iYi54MTtcbiAgdmFyIGR5ID0gLWxheWVyLmJiLnkxO1xuXG4gIC8vIGRvIHRoZSB0cmFuc2Zvcm0gb24gY3JlYXRpb24gdG8gc2F2ZSBjeWNsZXMgKGl0J3MgdGhlIHNhbWUgZm9yIGFsbCBlbGVzKVxuICBjeHQuc2NhbGUoc2NhbGUsIHNjYWxlKTtcbiAgY3h0LnRyYW5zbGF0ZShkeCwgZHkpO1xuICByZXR1cm4gbGF5ZXI7XG59O1xuTFRDcC5nZXRMYXllcnMgPSBmdW5jdGlvbiAoZWxlcywgcHhSYXRpbywgbHZsKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHIgPSBzZWxmLnJlbmRlcmVyO1xuICB2YXIgY3kgPSByLmN5O1xuICB2YXIgem9vbSA9IGN5Lnpvb20oKTtcbiAgdmFyIGZpcnN0R2V0ID0gc2VsZi5maXJzdEdldDtcbiAgc2VsZi5maXJzdEdldCA9IGZhbHNlO1xuXG4gIC8vIGxvZygnLS1cXG5nZXQgbGF5ZXJzIHdpdGggJXMgZWxlcycsIGVsZXMubGVuZ3RoKTtcbiAgLy9sb2cgZWxlcy5tYXAoZnVuY3Rpb24oZWxlKXsgcmV0dXJuIGVsZS5pZCgpIH0pICk7XG5cbiAgaWYgKGx2bCA9PSBudWxsKSB7XG4gICAgbHZsID0gTWF0aC5jZWlsKGxvZzIoem9vbSAqIHB4UmF0aW8pKTtcbiAgICBpZiAobHZsIDwgbWluTHZsKSB7XG4gICAgICBsdmwgPSBtaW5Mdmw7XG4gICAgfSBlbHNlIGlmICh6b29tID49IG1heFpvb20gfHwgbHZsID4gbWF4THZsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgc2VsZi52YWxpZGF0ZUxheWVyc0VsZXNPcmRlcmluZyhsdmwsIGVsZXMpO1xuICB2YXIgbGF5ZXJzQnlMdmwgPSBzZWxmLmxheWVyc0J5TGV2ZWw7XG4gIHZhciBzY2FsZSA9IE1hdGgucG93KDIsIGx2bCk7XG4gIHZhciBsYXllcnMgPSBsYXllcnNCeUx2bFtsdmxdID0gbGF5ZXJzQnlMdmxbbHZsXSB8fCBbXTtcbiAgdmFyIGJiO1xuICB2YXIgbHZsQ29tcGxldGUgPSBzZWxmLmxldmVsSXNDb21wbGV0ZShsdmwsIGVsZXMpO1xuICB2YXIgdG1wTGF5ZXJzO1xuICB2YXIgY2hlY2tUZW1wTGV2ZWxzID0gZnVuY3Rpb24gY2hlY2tUZW1wTGV2ZWxzKCkge1xuICAgIHZhciBjYW5Vc2VBc1RtcEx2bCA9IGZ1bmN0aW9uIGNhblVzZUFzVG1wTHZsKGwpIHtcbiAgICAgIHNlbGYudmFsaWRhdGVMYXllcnNFbGVzT3JkZXJpbmcobCwgZWxlcyk7XG4gICAgICBpZiAoc2VsZi5sZXZlbElzQ29tcGxldGUobCwgZWxlcykpIHtcbiAgICAgICAgdG1wTGF5ZXJzID0gbGF5ZXJzQnlMdmxbbF07XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIGNoZWNrTHZscyA9IGZ1bmN0aW9uIGNoZWNrTHZscyhkaXIpIHtcbiAgICAgIGlmICh0bXBMYXllcnMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgbCA9IGx2bCArIGRpcjsgbWluTHZsIDw9IGwgJiYgbCA8PSBtYXhMdmw7IGwgKz0gZGlyKSB7XG4gICAgICAgIGlmIChjYW5Vc2VBc1RtcEx2bChsKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBjaGVja0x2bHMoKzEpO1xuICAgIGNoZWNrTHZscygtMSk7XG5cbiAgICAvLyByZW1vdmUgdGhlIGludmFsaWQgbGF5ZXJzOyB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYXMgbmVlZGVkIGxhdGVyIGluIHRoaXMgZnVuY3Rpb25cbiAgICBmb3IgKHZhciBpID0gbGF5ZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgbGF5ZXIgPSBsYXllcnNbaV07XG4gICAgICBpZiAobGF5ZXIuaW52YWxpZCkge1xuICAgICAgICByZW1vdmVGcm9tQXJyYXkobGF5ZXJzLCBsYXllcik7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBpZiAoIWx2bENvbXBsZXRlKSB7XG4gICAgLy8gaWYgdGhlIGN1cnJlbnQgbGV2ZWwgaXMgaW5jb21wbGV0ZSwgdGhlbiB1c2UgdGhlIGNsb3Nlc3QsIGJlc3QgcXVhbGl0eSBsYXllcnNldCB0ZW1wb3JhcmlseVxuICAgIC8vIGFuZCBsYXRlciBxdWV1ZSB0aGUgY3VycmVudCBsYXllcnNldCBzbyB3ZSBjYW4gZ2V0IHRoZSBwcm9wZXIgcXVhbGl0eSBsZXZlbCBzb29uXG5cbiAgICBjaGVja1RlbXBMZXZlbHMoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBsb2coJ2xldmVsIGNvbXBsZXRlLCB1c2luZyBleGlzdGluZyBsYXllcnNcXG4tLScpO1xuICAgIHJldHVybiBsYXllcnM7XG4gIH1cbiAgdmFyIGdldEJiID0gZnVuY3Rpb24gZ2V0QmIoKSB7XG4gICAgaWYgKCFiYikge1xuICAgICAgYmIgPSBtYWtlQm91bmRpbmdCb3goKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB1cGRhdGVCb3VuZGluZ0JveChiYiwgZWxlc1tpXS5ib3VuZGluZ0JveCgpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJiO1xuICB9O1xuICB2YXIgbWFrZUxheWVyID0gZnVuY3Rpb24gbWFrZUxheWVyKG9wdHMpIHtcbiAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICB2YXIgYWZ0ZXIgPSBvcHRzLmFmdGVyO1xuICAgIGdldEJiKCk7XG4gICAgdmFyIGFyZWEgPSBiYi53ICogc2NhbGUgKiAoYmIuaCAqIHNjYWxlKTtcbiAgICBpZiAoYXJlYSA+IG1heExheWVyQXJlYSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHZhciBsYXllciA9IHNlbGYubWFrZUxheWVyKGJiLCBsdmwpO1xuICAgIGlmIChhZnRlciAhPSBudWxsKSB7XG4gICAgICB2YXIgaW5kZXggPSBsYXllcnMuaW5kZXhPZihhZnRlcikgKyAxO1xuICAgICAgbGF5ZXJzLnNwbGljZShpbmRleCwgMCwgbGF5ZXIpO1xuICAgIH0gZWxzZSBpZiAob3B0cy5pbnNlcnQgPT09IHVuZGVmaW5lZCB8fCBvcHRzLmluc2VydCkge1xuICAgICAgLy8gbm8gYWZ0ZXIgc3BlY2lmaWVkID0+IGZpcnN0IGxheWVyIG1hZGUgc28gcHV0IGF0IHN0YXJ0XG4gICAgICBsYXllcnMudW5zaGlmdChsYXllcik7XG4gICAgfVxuXG4gICAgLy8gaWYoIHRtcExheWVycyApe1xuICAgIC8vc2VsZi5xdWV1ZUxheWVyKCBsYXllciApO1xuICAgIC8vIH1cblxuICAgIHJldHVybiBsYXllcjtcbiAgfTtcbiAgaWYgKHNlbGYuc2tpcHBpbmcgJiYgIWZpcnN0R2V0KSB7XG4gICAgLy8gbG9nKCdza2lwIGxheWVycycpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gbG9nKCdkbyBsYXllcnMnKTtcblxuICB2YXIgbGF5ZXIgPSBudWxsO1xuICB2YXIgbWF4RWxlc1BlckxheWVyID0gZWxlcy5sZW5ndGggLyBkZWZOdW1MYXllcnM7XG4gIHZhciBhbGxvd0xhenlRdWV1ZWluZyA9ICFmaXJzdEdldDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVsZSA9IGVsZXNbaV07XG4gICAgdmFyIHJzID0gZWxlLl9wcml2YXRlLnJzY3JhdGNoO1xuICAgIHZhciBjYWNoZXMgPSBycy5pbWdMYXllckNhY2hlcyA9IHJzLmltZ0xheWVyQ2FjaGVzIHx8IHt9O1xuXG4gICAgLy8gbG9nKCdsb29rIGF0IGVsZScsIGVsZS5pZCgpKTtcblxuICAgIHZhciBleGlzdGluZ0xheWVyID0gY2FjaGVzW2x2bF07XG4gICAgaWYgKGV4aXN0aW5nTGF5ZXIpIHtcbiAgICAgIC8vIHJldXNlIGxheWVyIGZvciBsYXRlciBlbGVzXG4gICAgICAvLyBsb2coJ3JldXNlIGxheWVyIGZvcicsIGVsZS5pZCgpKTtcbiAgICAgIGxheWVyID0gZXhpc3RpbmdMYXllcjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoIWxheWVyIHx8IGxheWVyLmVsZXMubGVuZ3RoID49IG1heEVsZXNQZXJMYXllciB8fCAhYm91bmRpbmdCb3hJbkJvdW5kaW5nQm94KGxheWVyLmJiLCBlbGUuYm91bmRpbmdCb3goKSkpIHtcbiAgICAgIC8vIGxvZygnbWFrZSBuZXcgbGF5ZXIgZm9yIGVsZSAlcycsIGVsZS5pZCgpKTtcblxuICAgICAgbGF5ZXIgPSBtYWtlTGF5ZXIoe1xuICAgICAgICBpbnNlcnQ6IHRydWUsXG4gICAgICAgIGFmdGVyOiBsYXllclxuICAgICAgfSk7XG5cbiAgICAgIC8vIGlmIG5vdyBsYXllciBjYW4gYmUgYnVpbHQgdGhlbiB3ZSBjYW4ndCB1c2UgbGF5ZXJzIGF0IHRoaXMgbGV2ZWxcbiAgICAgIGlmICghbGF5ZXIpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vIGxvZygnbmV3IGxheWVyIHdpdGggaWQgJXMnLCBsYXllci5pZCk7XG4gICAgfVxuXG4gICAgaWYgKHRtcExheWVycyB8fCBhbGxvd0xhenlRdWV1ZWluZykge1xuICAgICAgLy8gbG9nKCdxdWV1ZSBlbGUgJXMgaW4gbGF5ZXIgJXMnLCBlbGUuaWQoKSwgbGF5ZXIuaWQpO1xuICAgICAgc2VsZi5xdWV1ZUxheWVyKGxheWVyLCBlbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBsb2coJ2RyYXcgZWxlICVzIGluIGxheWVyICVzJywgZWxlLmlkKCksIGxheWVyLmlkKTtcbiAgICAgIHNlbGYuZHJhd0VsZUluTGF5ZXIobGF5ZXIsIGVsZSwgbHZsLCBweFJhdGlvKTtcbiAgICB9XG4gICAgbGF5ZXIuZWxlcy5wdXNoKGVsZSk7XG4gICAgY2FjaGVzW2x2bF0gPSBsYXllcjtcbiAgfVxuXG4gIC8vIGxvZygnLS0nKTtcblxuICBpZiAodG1wTGF5ZXJzKSB7XG4gICAgLy8gdGhlbiB3ZSBvbmx5IHF1ZXVlZCB0aGUgY3VycmVudCBsYXllcnNldCBhbmQgY2FuJ3QgZHJhdyBpdCB5ZXRcbiAgICByZXR1cm4gdG1wTGF5ZXJzO1xuICB9XG4gIGlmIChhbGxvd0xhenlRdWV1ZWluZykge1xuICAgIC8vIGxvZygnbGF6eSBxdWV1ZSBsZXZlbCcsIGx2bCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIGxheWVycztcbn07XG5cbi8vIGEgbGF5ZXIgbWF5IHdhbnQgdG8gdXNlIGFuIGVsZSBjYWNoZSBvZiBhIGhpZ2hlciBsZXZlbCB0byBhdm9pZCBibHVycmluZXNzXG4vLyBzbyB0aGUgbGF5ZXIgbGV2ZWwgbWlnaHQgbm90IGVxdWFsIHRoZSBlbGUgbGV2ZWxcbkxUQ3AuZ2V0RWxlTGV2ZWxGb3JMYXllckxldmVsID0gZnVuY3Rpb24gKGx2bCwgcHhSYXRpbykge1xuICByZXR1cm4gbHZsO1xufTtcbkxUQ3AuZHJhd0VsZUluTGF5ZXIgPSBmdW5jdGlvbiAobGF5ZXIsIGVsZSwgbHZsLCBweFJhdGlvKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHIgPSB0aGlzLnJlbmRlcmVyO1xuICB2YXIgY29udGV4dCA9IGxheWVyLmNvbnRleHQ7XG4gIHZhciBiYiA9IGVsZS5ib3VuZGluZ0JveCgpO1xuICBpZiAoYmIudyA9PT0gMCB8fCBiYi5oID09PSAwIHx8ICFlbGUudmlzaWJsZSgpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGx2bCA9IHNlbGYuZ2V0RWxlTGV2ZWxGb3JMYXllckxldmVsKGx2bCwgcHhSYXRpbyk7XG4gIHtcbiAgICByLnNldEltZ1Ntb290aGluZyhjb250ZXh0LCBmYWxzZSk7XG4gIH1cbiAge1xuICAgIHIuZHJhd0NhY2hlZEVsZW1lbnQoY29udGV4dCwgZWxlLCBudWxsLCBudWxsLCBsdmwsIHVzZUhpZ2hRdWFsaXR5RWxlVHhyUmVxcyk7XG4gIH1cbiAge1xuICAgIHIuc2V0SW1nU21vb3RoaW5nKGNvbnRleHQsIHRydWUpO1xuICB9XG59O1xuTFRDcC5sZXZlbElzQ29tcGxldGUgPSBmdW5jdGlvbiAobHZsLCBlbGVzKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGxheWVycyA9IHNlbGYubGF5ZXJzQnlMZXZlbFtsdmxdO1xuICBpZiAoIWxheWVycyB8fCBsYXllcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBudW1FbGVzSW5MYXllcnMgPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxheWVycy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsYXllciA9IGxheWVyc1tpXTtcblxuICAgIC8vIGlmIHRoZXJlIGFyZSBhbnkgZWxlcyBuZWVkZWQgdG8gYmUgZHJhd24geWV0LCB0aGUgbGV2ZWwgaXMgbm90IGNvbXBsZXRlXG4gICAgaWYgKGxheWVyLnJlcXMgPiAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIGxheWVyIGlzIGludmFsaWQsIHRoZSBsZXZlbCBpcyBub3QgY29tcGxldGVcbiAgICBpZiAobGF5ZXIuaW52YWxpZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBudW1FbGVzSW5MYXllcnMgKz0gbGF5ZXIuZWxlcy5sZW5ndGg7XG4gIH1cblxuICAvLyB3ZSBzaG91bGQgaGF2ZSBleGFjdGx5IHRoZSBudW1iZXIgb2YgZWxlcyBwYXNzZWQgaW4gdG8gYmUgY29tcGxldGVcbiAgaWYgKG51bUVsZXNJbkxheWVycyAhPT0gZWxlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59O1xuTFRDcC52YWxpZGF0ZUxheWVyc0VsZXNPcmRlcmluZyA9IGZ1bmN0aW9uIChsdmwsIGVsZXMpIHtcbiAgdmFyIGxheWVycyA9IHRoaXMubGF5ZXJzQnlMZXZlbFtsdmxdO1xuICBpZiAoIWxheWVycykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIGlmIGluIGEgbGF5ZXIgdGhlIGVsZXMgYXJlIG5vdCBpbiB0aGUgc2FtZSBvcmRlciwgdGhlbiB0aGUgbGF5ZXIgaXMgaW52YWxpZFxuICAvLyAoaS5lLiB0aGVyZSBpcyBhbiBlbGUgaW4gYmV0d2VlbiB0aGUgZWxlcyBpbiB0aGUgbGF5ZXIpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYXllcnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGF5ZXIgPSBsYXllcnNbaV07XG4gICAgdmFyIG9mZnNldCA9IC0xO1xuXG4gICAgLy8gZmluZCB0aGUgb2Zmc2V0XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBlbGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICBpZiAobGF5ZXIuZWxlc1swXSA9PT0gZWxlc1tqXSkge1xuICAgICAgICBvZmZzZXQgPSBqO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG9mZnNldCA8IDApIHtcbiAgICAgIC8vIHRoZW4gdGhlIGxheWVyIGhhcyBub25leGlzdGVudCBlbGVtZW50cyBhbmQgaXMgaW52YWxpZFxuICAgICAgdGhpcy5pbnZhbGlkYXRlTGF5ZXIobGF5ZXIpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gdGhlIGVsZXMgaW4gdGhlIGxheWVyIG11c3QgYmUgaW4gdGhlIHNhbWUgY29udGludW91cyBvcmRlciwgZWxzZSB0aGUgbGF5ZXIgaXMgaW52YWxpZFxuXG4gICAgdmFyIG8gPSBvZmZzZXQ7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBsYXllci5lbGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICBpZiAobGF5ZXIuZWxlc1tqXSAhPT0gZWxlc1tvICsgal0pIHtcbiAgICAgICAgLy8gbG9nKCdpbnZhbGlkYXRlIGJhc2VkIG9uIG9yZGVyaW5nJywgbGF5ZXIuaWQpO1xuXG4gICAgICAgIHRoaXMuaW52YWxpZGF0ZUxheWVyKGxheWVyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuTFRDcC51cGRhdGVFbGVtZW50c0luTGF5ZXJzID0gZnVuY3Rpb24gKGVsZXMsIHVwZGF0ZSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBpc0VsZXMgPSBlbGVtZW50KGVsZXNbMF0pO1xuXG4gIC8vIGNvbGxlY3QgdWRwYXRlZCBlbGVtZW50cyAoY2FzY2FkZWQgZnJvbSB0aGUgbGF5ZXJzKSBhbmQgdXBkYXRlIGVhY2hcbiAgLy8gbGF5ZXIgaXRzZWxmIGFsb25nIHRoZSB3YXlcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHJlcSA9IGlzRWxlcyA/IG51bGwgOiBlbGVzW2ldO1xuICAgIHZhciBlbGUgPSBpc0VsZXMgPyBlbGVzW2ldIDogZWxlc1tpXS5lbGU7XG4gICAgdmFyIHJzID0gZWxlLl9wcml2YXRlLnJzY3JhdGNoO1xuICAgIHZhciBjYWNoZXMgPSBycy5pbWdMYXllckNhY2hlcyA9IHJzLmltZ0xheWVyQ2FjaGVzIHx8IHt9O1xuICAgIGZvciAodmFyIGwgPSBtaW5Mdmw7IGwgPD0gbWF4THZsOyBsKyspIHtcbiAgICAgIHZhciBsYXllciA9IGNhY2hlc1tsXTtcbiAgICAgIGlmICghbGF5ZXIpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIGlmIHVwZGF0ZSBpcyBhIHJlcXVlc3QgZnJvbSB0aGUgZWxlIGNhY2hlLCB0aGVuIGl0IGFmZmVjdHMgb25seVxuICAgICAgLy8gdGhlIG1hdGNoaW5nIGxldmVsXG4gICAgICBpZiAocmVxICYmIHNlbGYuZ2V0RWxlTGV2ZWxGb3JMYXllckxldmVsKGxheWVyLmxldmVsKSAhPT0gcmVxLmxldmVsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdXBkYXRlKGxheWVyLCBlbGUsIHJlcSk7XG4gICAgfVxuICB9XG59O1xuTFRDcC5oYXZlTGF5ZXJzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBoYXZlTGF5ZXJzID0gZmFsc2U7XG4gIGZvciAodmFyIGwgPSBtaW5Mdmw7IGwgPD0gbWF4THZsOyBsKyspIHtcbiAgICB2YXIgbGF5ZXJzID0gc2VsZi5sYXllcnNCeUxldmVsW2xdO1xuICAgIGlmIChsYXllcnMgJiYgbGF5ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIGhhdmVMYXllcnMgPSB0cnVlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBoYXZlTGF5ZXJzO1xufTtcbkxUQ3AuaW52YWxpZGF0ZUVsZW1lbnRzID0gZnVuY3Rpb24gKGVsZXMpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBpZiAoZWxlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgc2VsZi5sYXN0SW52YWxpZGF0aW9uVGltZSA9IHBlcmZvcm1hbmNlTm93KCk7XG5cbiAgLy8gbG9nKCd1cGRhdGUgaW52YWxpZGF0ZSBsYXllciB0aW1lIGZyb20gZWxlcycpO1xuXG4gIGlmIChlbGVzLmxlbmd0aCA9PT0gMCB8fCAhc2VsZi5oYXZlTGF5ZXJzKCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgc2VsZi51cGRhdGVFbGVtZW50c0luTGF5ZXJzKGVsZXMsIGZ1bmN0aW9uIGludmFsQXNzb2NMYXllcnMobGF5ZXIsIGVsZSwgcmVxKSB7XG4gICAgc2VsZi5pbnZhbGlkYXRlTGF5ZXIobGF5ZXIpO1xuICB9KTtcbn07XG5MVENwLmludmFsaWRhdGVMYXllciA9IGZ1bmN0aW9uIChsYXllcikge1xuICAvLyBsb2coJ3VwZGF0ZSBpbnZhbGlkYXRlIGxheWVyIHRpbWUnKTtcblxuICB0aGlzLmxhc3RJbnZhbGlkYXRpb25UaW1lID0gcGVyZm9ybWFuY2VOb3coKTtcbiAgaWYgKGxheWVyLmludmFsaWQpIHtcbiAgICByZXR1cm47XG4gIH0gLy8gc2F2ZSBjeWNsZXNcblxuICB2YXIgbHZsID0gbGF5ZXIubGV2ZWw7XG4gIHZhciBlbGVzID0gbGF5ZXIuZWxlcztcbiAgdmFyIGxheWVycyA9IHRoaXMubGF5ZXJzQnlMZXZlbFtsdmxdO1xuXG4gIC8vIGxvZygnaW52YWxpZGF0ZSBsYXllcicsIGxheWVyLmlkICk7XG5cbiAgcmVtb3ZlRnJvbUFycmF5KGxheWVycywgbGF5ZXIpO1xuICAvLyBsYXllci5lbGVzID0gW107XG5cbiAgbGF5ZXIuZWxlc1F1ZXVlID0gW107XG4gIGxheWVyLmludmFsaWQgPSB0cnVlO1xuICBpZiAobGF5ZXIucmVwbGFjZW1lbnQpIHtcbiAgICBsYXllci5yZXBsYWNlbWVudC5pbnZhbGlkID0gdHJ1ZTtcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgY2FjaGVzID0gZWxlc1tpXS5fcHJpdmF0ZS5yc2NyYXRjaC5pbWdMYXllckNhY2hlcztcbiAgICBpZiAoY2FjaGVzKSB7XG4gICAgICBjYWNoZXNbbHZsXSA9IG51bGw7XG4gICAgfVxuICB9XG59O1xuTFRDcC5yZWZpbmVFbGVtZW50VGV4dHVyZXMgPSBmdW5jdGlvbiAoZWxlcykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgLy8gbG9nKCdyZWZpbmUnLCBlbGVzLmxlbmd0aCk7XG5cbiAgc2VsZi51cGRhdGVFbGVtZW50c0luTGF5ZXJzKGVsZXMsIGZ1bmN0aW9uIHJlZmluZUVhY2hFbGUobGF5ZXIsIGVsZSwgcmVxKSB7XG4gICAgdmFyIHJMeXIgPSBsYXllci5yZXBsYWNlbWVudDtcbiAgICBpZiAoIXJMeXIpIHtcbiAgICAgIHJMeXIgPSBsYXllci5yZXBsYWNlbWVudCA9IHNlbGYubWFrZUxheWVyKGxheWVyLmJiLCBsYXllci5sZXZlbCk7XG4gICAgICByTHlyLnJlcGxhY2VzID0gbGF5ZXI7XG4gICAgICByTHlyLmVsZXMgPSBsYXllci5lbGVzO1xuXG4gICAgICAvLyBsb2coJ21ha2UgcmVwbGFjZW1lbnQgbGF5ZXIgJXMgZm9yICVzIHdpdGggbGV2ZWwgJXMnLCByTHlyLmlkLCBsYXllci5pZCwgckx5ci5sZXZlbCk7XG4gICAgfVxuXG4gICAgaWYgKCFyTHlyLnJlcXMpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgckx5ci5lbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHNlbGYucXVldWVMYXllcihyTHlyLCByTHlyLmVsZXNbaV0pO1xuICAgICAgfVxuXG4gICAgICAvLyBsb2coJ3F1ZXVlIHJlcGxhY2VtZW50IGxheWVyIHJlZmluZW1lbnQnLCByTHlyLmlkKTtcbiAgICB9XG4gIH0pO1xufTtcblxuTFRDcC5lbnF1ZXVlRWxlbWVudFJlZmluZW1lbnQgPSBmdW5jdGlvbiAoZWxlKSB7XG4gIHRoaXMuZWxlVHhyRGVxcy5tZXJnZShlbGUpO1xuICB0aGlzLnNjaGVkdWxlRWxlbWVudFJlZmluZW1lbnQoKTtcbn07XG5MVENwLnF1ZXVlTGF5ZXIgPSBmdW5jdGlvbiAobGF5ZXIsIGVsZSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBxID0gc2VsZi5sYXllcnNRdWV1ZTtcbiAgdmFyIGVsZXNRID0gbGF5ZXIuZWxlc1F1ZXVlO1xuICB2YXIgaGFzSWQgPSBlbGVzUS5oYXNJZCA9IGVsZXNRLmhhc0lkIHx8IHt9O1xuXG4gIC8vIGlmIGEgbGF5ZXIgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQsIHF1ZXVpbmcgaXMgYSB3YXN0ZSBvZiB0aW1lXG4gIGlmIChsYXllci5yZXBsYWNlbWVudCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoZWxlKSB7XG4gICAgaWYgKGhhc0lkW2VsZS5pZCgpXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbGVzUS5wdXNoKGVsZSk7XG4gICAgaGFzSWRbZWxlLmlkKCldID0gdHJ1ZTtcbiAgfVxuICBpZiAobGF5ZXIucmVxcykge1xuICAgIGxheWVyLnJlcXMrKztcbiAgICBxLnVwZGF0ZUl0ZW0obGF5ZXIpO1xuICB9IGVsc2Uge1xuICAgIGxheWVyLnJlcXMgPSAxO1xuICAgIHEucHVzaChsYXllcik7XG4gIH1cbn07XG5MVENwLmRlcXVldWUgPSBmdW5jdGlvbiAocHhSYXRpbykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBxID0gc2VsZi5sYXllcnNRdWV1ZTtcbiAgdmFyIGRlcWQgPSBbXTtcbiAgdmFyIGVsZURlcXMgPSAwO1xuICB3aGlsZSAoZWxlRGVxcyA8IG1heERlcVNpemUpIHtcbiAgICBpZiAocS5zaXplKCkgPT09IDApIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgbGF5ZXIgPSBxLnBlZWsoKTtcblxuICAgIC8vIGlmIGEgbGF5ZXIgaGFzIGJlZW4gb3Igd2lsbCBiZSByZXBsYWNlZCwgdGhlbiBkb24ndCB3YXN0ZSB0aW1lIHdpdGggaXRcbiAgICBpZiAobGF5ZXIucmVwbGFjZW1lbnQpIHtcbiAgICAgIC8vIGxvZygnbGF5ZXIgJXMgaW4gcXVldWUgc2tpcHBlZCBiL2MgaXQgYWxyZWFkeSBoYXMgYSByZXBsYWNlbWVudCcsIGxheWVyLmlkKTtcbiAgICAgIHEucG9wKCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGlzIGlzIGEgcmVwbGFjZW1lbnQgbGF5ZXIgdGhhdCBoYXMgYmVlbiBzdXBlcmNlZGVkLCB0aGVuIGZvcmdldCBpdFxuICAgIGlmIChsYXllci5yZXBsYWNlcyAmJiBsYXllciAhPT0gbGF5ZXIucmVwbGFjZXMucmVwbGFjZW1lbnQpIHtcbiAgICAgIC8vIGxvZygnbGF5ZXIgaXMgbm8gbG9uZ2VyIHRoZSBtb3N0IHVwdG9kYXRlIHJlcGxhY2VtZW50OyBkZXF1ZXVlZCcsIGxheWVyLmlkKVxuICAgICAgcS5wb3AoKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAobGF5ZXIuaW52YWxpZCkge1xuICAgICAgLy8gbG9nKCdyZXBsYWNlbWVudCBsYXllciAlcyBpcyBpbnZhbGlkOyBkZXF1ZXVlZCcsIGxheWVyLmlkKTtcbiAgICAgIHEucG9wKCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgdmFyIGVsZSA9IGxheWVyLmVsZXNRdWV1ZS5zaGlmdCgpO1xuICAgIGlmIChlbGUpIHtcbiAgICAgIC8vIGxvZygnZGVxdWV1ZSBsYXllciAlcycsIGxheWVyLmlkKTtcblxuICAgICAgc2VsZi5kcmF3RWxlSW5MYXllcihsYXllciwgZWxlLCBsYXllci5sZXZlbCwgcHhSYXRpbyk7XG4gICAgICBlbGVEZXFzKys7XG4gICAgfVxuICAgIGlmIChkZXFkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gd2UgbmVlZCBvbmx5IG9uZSBlbnRyeSBpbiBkZXFkIHRvIHF1ZXVlIHJlZHJhd2luZyBldGNcbiAgICAgIGRlcWQucHVzaCh0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGUgbGF5ZXIgaGFzIGFsbCBpdHMgZWxlcyBkb25lLCB0aGVuIHJlbW92ZSBmcm9tIHRoZSBxdWV1ZVxuICAgIGlmIChsYXllci5lbGVzUXVldWUubGVuZ3RoID09PSAwKSB7XG4gICAgICBxLnBvcCgpO1xuICAgICAgbGF5ZXIucmVxcyA9IDA7XG5cbiAgICAgIC8vIGxvZygnZGVxdWV1ZSBvZiBsYXllciAlcyBjb21wbGV0ZScsIGxheWVyLmlkKTtcblxuICAgICAgLy8gd2hlbiBhIHJlcGxhY2VtZW50IGxheWVyIGlzIGRlcXVldWVkLCBpdCByZXBsYWNlcyB0aGUgb2xkIGxheWVyIGluIHRoZSBsZXZlbFxuICAgICAgaWYgKGxheWVyLnJlcGxhY2VzKSB7XG4gICAgICAgIHNlbGYuYXBwbHlMYXllclJlcGxhY2VtZW50KGxheWVyKTtcbiAgICAgIH1cbiAgICAgIHNlbGYucmVxdWVzdFJlZHJhdygpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGVxZDtcbn07XG5MVENwLmFwcGx5TGF5ZXJSZXBsYWNlbWVudCA9IGZ1bmN0aW9uIChsYXllcikge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBsYXllcnNJbkxldmVsID0gc2VsZi5sYXllcnNCeUxldmVsW2xheWVyLmxldmVsXTtcbiAgdmFyIHJlcGxhY2VkID0gbGF5ZXIucmVwbGFjZXM7XG4gIHZhciBpbmRleCA9IGxheWVyc0luTGV2ZWwuaW5kZXhPZihyZXBsYWNlZCk7XG5cbiAgLy8gaWYgdGhlIHJlcGxhY2VkIGxheWVyIGlzIG5vdCBpbiB0aGUgYWN0aXZlIGxpc3QgZm9yIHRoZSBsZXZlbCwgdGhlbiByZXBsYWNpbmdcbiAgLy8gcmVmcyB3b3VsZCBiZSBhIG1pc3Rha2UgKGkuZS4gb3ZlcndyaXRpbmcgdGhlIHRydWUgYWN0aXZlIGxheWVyKVxuICBpZiAoaW5kZXggPCAwIHx8IHJlcGxhY2VkLmludmFsaWQpIHtcbiAgICAvLyBsb2coJ3JlcGxhY2VtZW50IGxheWVyIHdvdWxkIGhhdmUgbm8gZWZmZWN0JywgbGF5ZXIuaWQpO1xuICAgIHJldHVybjtcbiAgfVxuICBsYXllcnNJbkxldmVsW2luZGV4XSA9IGxheWVyOyAvLyByZXBsYWNlIGxldmVsIHJlZlxuXG4gIC8vIHJlcGxhY2UgcmVmcyBpbiBlbGVzXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGF5ZXIuZWxlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBfcCA9IGxheWVyLmVsZXNbaV0uX3ByaXZhdGU7XG4gICAgdmFyIGNhY2hlID0gX3AuaW1nTGF5ZXJDYWNoZXMgPSBfcC5pbWdMYXllckNhY2hlcyB8fCB7fTtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgIGNhY2hlW2xheWVyLmxldmVsXSA9IGxheWVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIGxvZygnYXBwbHkgcmVwbGFjZW1lbnQgbGF5ZXIgJXMgb3ZlciAlcycsIGxheWVyLmlkLCByZXBsYWNlZC5pZCk7XG5cbiAgc2VsZi5yZXF1ZXN0UmVkcmF3KCk7XG59O1xuTFRDcC5yZXF1ZXN0UmVkcmF3ID0gZGVib3VuY2VfMShmdW5jdGlvbiAoKSB7XG4gIHZhciByID0gdGhpcy5yZW5kZXJlcjtcbiAgci5yZWRyYXdIaW50KCdlbGVzJywgdHJ1ZSk7XG4gIHIucmVkcmF3SGludCgnZHJhZycsIHRydWUpO1xuICByLnJlZHJhdygpO1xufSwgMTAwKTtcbkxUQ3Auc2V0dXBEZXF1ZXVlaW5nID0gZGVmcy5zZXR1cERlcXVldWVpbmcoe1xuICBkZXFSZWRyYXdUaHJlc2hvbGQ6IGRlcVJlZHJhd1RocmVzaG9sZCxcbiAgZGVxQ29zdDogZGVxQ29zdCxcbiAgZGVxQXZnQ29zdDogZGVxQXZnQ29zdCxcbiAgZGVxTm9EcmF3Q29zdDogZGVxTm9EcmF3Q29zdCxcbiAgZGVxRmFzdENvc3Q6IGRlcUZhc3RDb3N0LFxuICBkZXE6IGZ1bmN0aW9uIGRlcShzZWxmLCBweFJhdGlvKSB7XG4gICAgcmV0dXJuIHNlbGYuZGVxdWV1ZShweFJhdGlvKTtcbiAgfSxcbiAgb25EZXFkOiBub29wJDEsXG4gIHNob3VsZFJlZHJhdzogdHJ1ZWlmeSxcbiAgcHJpb3JpdHk6IGZ1bmN0aW9uIHByaW9yaXR5KHNlbGYpIHtcbiAgICByZXR1cm4gc2VsZi5yZW5kZXJlci5iZWZvcmVSZW5kZXJQcmlvcml0aWVzLmx5clR4ckRlcTtcbiAgfVxufSk7XG5cbnZhciBDUnAkYSA9IHt9O1xudmFyIGltcGw7XG5mdW5jdGlvbiBwb2x5Z29uKGNvbnRleHQsIHBvaW50cykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwdCA9IHBvaW50c1tpXTtcbiAgICBjb250ZXh0LmxpbmVUbyhwdC54LCBwdC55KTtcbiAgfVxufVxuZnVuY3Rpb24gdHJpYW5nbGVCYWNrY3VydmUoY29udGV4dCwgcG9pbnRzLCBjb250cm9sUG9pbnQpIHtcbiAgdmFyIGZpcnN0UHQ7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHB0ID0gcG9pbnRzW2ldO1xuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBmaXJzdFB0ID0gcHQ7XG4gICAgfVxuICAgIGNvbnRleHQubGluZVRvKHB0LngsIHB0LnkpO1xuICB9XG4gIGNvbnRleHQucXVhZHJhdGljQ3VydmVUbyhjb250cm9sUG9pbnQueCwgY29udHJvbFBvaW50LnksIGZpcnN0UHQueCwgZmlyc3RQdC55KTtcbn1cbmZ1bmN0aW9uIHRyaWFuZ2xlVGVlKGNvbnRleHQsIHRyaWFuZ2xlUG9pbnRzLCB0ZWVQb2ludHMpIHtcbiAgaWYgKGNvbnRleHQuYmVnaW5QYXRoKSB7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgfVxuICB2YXIgdHJpUHRzID0gdHJpYW5nbGVQb2ludHM7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdHJpUHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHB0ID0gdHJpUHRzW2ldO1xuICAgIGNvbnRleHQubGluZVRvKHB0LngsIHB0LnkpO1xuICB9XG4gIHZhciB0ZWVQdHMgPSB0ZWVQb2ludHM7XG4gIHZhciBmaXJzdFRlZVB0ID0gdGVlUG9pbnRzWzBdO1xuICBjb250ZXh0Lm1vdmVUbyhmaXJzdFRlZVB0LngsIGZpcnN0VGVlUHQueSk7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgdGVlUHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHB0ID0gdGVlUHRzW2ldO1xuICAgIGNvbnRleHQubGluZVRvKHB0LngsIHB0LnkpO1xuICB9XG4gIGlmIChjb250ZXh0LmNsb3NlUGF0aCkge1xuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGNpcmNsZVRyaWFuZ2xlKGNvbnRleHQsIHRyaWFuZ2xlUG9pbnRzLCByeCwgcnksIHIpIHtcbiAgaWYgKGNvbnRleHQuYmVnaW5QYXRoKSB7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgfVxuICBjb250ZXh0LmFyYyhyeCwgcnksIHIsIDAsIE1hdGguUEkgKiAyLCBmYWxzZSk7XG4gIHZhciB0cmlQdHMgPSB0cmlhbmdsZVBvaW50cztcbiAgdmFyIGZpcnN0VHJQdCA9IHRyaVB0c1swXTtcbiAgY29udGV4dC5tb3ZlVG8oZmlyc3RUclB0LngsIGZpcnN0VHJQdC55KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmlQdHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcHQgPSB0cmlQdHNbaV07XG4gICAgY29udGV4dC5saW5lVG8ocHQueCwgcHQueSk7XG4gIH1cbiAgaWYgKGNvbnRleHQuY2xvc2VQYXRoKSB7XG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcbiAgfVxufVxuZnVuY3Rpb24gY2lyY2xlKGNvbnRleHQsIHJ4LCByeSwgcikge1xuICBjb250ZXh0LmFyYyhyeCwgcnksIHIsIDAsIE1hdGguUEkgKiAyLCBmYWxzZSk7XG59XG5DUnAkYS5hcnJvd1NoYXBlSW1wbCA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiAoaW1wbCB8fCAoaW1wbCA9IHtcbiAgICAncG9seWdvbic6IHBvbHlnb24sXG4gICAgJ3RyaWFuZ2xlLWJhY2tjdXJ2ZSc6IHRyaWFuZ2xlQmFja2N1cnZlLFxuICAgICd0cmlhbmdsZS10ZWUnOiB0cmlhbmdsZVRlZSxcbiAgICAnY2lyY2xlLXRyaWFuZ2xlJzogY2lyY2xlVHJpYW5nbGUsXG4gICAgJ3RyaWFuZ2xlLWNyb3NzJzogdHJpYW5nbGVUZWUsXG4gICAgJ2NpcmNsZSc6IGNpcmNsZVxuICB9KSlbbmFtZV07XG59O1xuXG52YXIgQ1JwJDkgPSB7fTtcbkNScCQ5LmRyYXdFbGVtZW50ID0gZnVuY3Rpb24gKGNvbnRleHQsIGVsZSwgc2hpZnRUb09yaWdpbldpdGhCYiwgc2hvd0xhYmVsLCBzaG93T3ZlcmxheSwgc2hvd09wYWNpdHkpIHtcbiAgdmFyIHIgPSB0aGlzO1xuICBpZiAoZWxlLmlzTm9kZSgpKSB7XG4gICAgci5kcmF3Tm9kZShjb250ZXh0LCBlbGUsIHNoaWZ0VG9PcmlnaW5XaXRoQmIsIHNob3dMYWJlbCwgc2hvd092ZXJsYXksIHNob3dPcGFjaXR5KTtcbiAgfSBlbHNlIHtcbiAgICByLmRyYXdFZGdlKGNvbnRleHQsIGVsZSwgc2hpZnRUb09yaWdpbldpdGhCYiwgc2hvd0xhYmVsLCBzaG93T3ZlcmxheSwgc2hvd09wYWNpdHkpO1xuICB9XG59O1xuQ1JwJDkuZHJhd0VsZW1lbnRPdmVybGF5ID0gZnVuY3Rpb24gKGNvbnRleHQsIGVsZSkge1xuICB2YXIgciA9IHRoaXM7XG4gIGlmIChlbGUuaXNOb2RlKCkpIHtcbiAgICByLmRyYXdOb2RlT3ZlcmxheShjb250ZXh0LCBlbGUpO1xuICB9IGVsc2Uge1xuICAgIHIuZHJhd0VkZ2VPdmVybGF5KGNvbnRleHQsIGVsZSk7XG4gIH1cbn07XG5DUnAkOS5kcmF3RWxlbWVudFVuZGVybGF5ID0gZnVuY3Rpb24gKGNvbnRleHQsIGVsZSkge1xuICB2YXIgciA9IHRoaXM7XG4gIGlmIChlbGUuaXNOb2RlKCkpIHtcbiAgICByLmRyYXdOb2RlVW5kZXJsYXkoY29udGV4dCwgZWxlKTtcbiAgfSBlbHNlIHtcbiAgICByLmRyYXdFZGdlVW5kZXJsYXkoY29udGV4dCwgZWxlKTtcbiAgfVxufTtcbkNScCQ5LmRyYXdDYWNoZWRFbGVtZW50UG9ydGlvbiA9IGZ1bmN0aW9uIChjb250ZXh0LCBlbGUsIGVsZVR4ckNhY2hlLCBweFJhdGlvLCBsdmwsIHJlYXNvbiwgZ2V0Um90YXRpb24sIGdldE9wYWNpdHkpIHtcbiAgdmFyIHIgPSB0aGlzO1xuICB2YXIgYmIgPSBlbGVUeHJDYWNoZS5nZXRCb3VuZGluZ0JveChlbGUpO1xuICBpZiAoYmIudyA9PT0gMCB8fCBiYi5oID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIGlnbm9yZSB6ZXJvIHNpemUgY2FzZVxuXG4gIHZhciBlbGVDYWNoZSA9IGVsZVR4ckNhY2hlLmdldEVsZW1lbnQoZWxlLCBiYiwgcHhSYXRpbywgbHZsLCByZWFzb24pO1xuICBpZiAoZWxlQ2FjaGUgIT0gbnVsbCkge1xuICAgIHZhciBvcGFjaXR5ID0gZ2V0T3BhY2l0eShyLCBlbGUpO1xuICAgIGlmIChvcGFjaXR5ID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB0aGV0YSA9IGdldFJvdGF0aW9uKHIsIGVsZSk7XG4gICAgdmFyIHgxID0gYmIueDEsXG4gICAgICB5MSA9IGJiLnkxLFxuICAgICAgdyA9IGJiLncsXG4gICAgICBoID0gYmIuaDtcbiAgICB2YXIgeCwgeSwgc3gsIHN5LCBzbW9vdGg7XG4gICAgaWYgKHRoZXRhICE9PSAwKSB7XG4gICAgICB2YXIgcm90UHQgPSBlbGVUeHJDYWNoZS5nZXRSb3RhdGlvblBvaW50KGVsZSk7XG4gICAgICBzeCA9IHJvdFB0Lng7XG4gICAgICBzeSA9IHJvdFB0Lnk7XG4gICAgICBjb250ZXh0LnRyYW5zbGF0ZShzeCwgc3kpO1xuICAgICAgY29udGV4dC5yb3RhdGUodGhldGEpO1xuICAgICAgc21vb3RoID0gci5nZXRJbWdTbW9vdGhpbmcoY29udGV4dCk7XG4gICAgICBpZiAoIXNtb290aCkge1xuICAgICAgICByLnNldEltZ1Ntb290aGluZyhjb250ZXh0LCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIHZhciBvZmYgPSBlbGVUeHJDYWNoZS5nZXRSb3RhdGlvbk9mZnNldChlbGUpO1xuICAgICAgeCA9IG9mZi54O1xuICAgICAgeSA9IG9mZi55O1xuICAgIH0gZWxzZSB7XG4gICAgICB4ID0geDE7XG4gICAgICB5ID0geTE7XG4gICAgfVxuICAgIHZhciBvbGRHbG9iYWxBbHBoYTtcbiAgICBpZiAob3BhY2l0eSAhPT0gMSkge1xuICAgICAgb2xkR2xvYmFsQWxwaGEgPSBjb250ZXh0Lmdsb2JhbEFscGhhO1xuICAgICAgY29udGV4dC5nbG9iYWxBbHBoYSA9IG9sZEdsb2JhbEFscGhhICogb3BhY2l0eTtcbiAgICB9XG4gICAgY29udGV4dC5kcmF3SW1hZ2UoZWxlQ2FjaGUudGV4dHVyZS5jYW52YXMsIGVsZUNhY2hlLngsIDAsIGVsZUNhY2hlLndpZHRoLCBlbGVDYWNoZS5oZWlnaHQsIHgsIHksIHcsIGgpO1xuICAgIGlmIChvcGFjaXR5ICE9PSAxKSB7XG4gICAgICBjb250ZXh0Lmdsb2JhbEFscGhhID0gb2xkR2xvYmFsQWxwaGE7XG4gICAgfVxuICAgIGlmICh0aGV0YSAhPT0gMCkge1xuICAgICAgY29udGV4dC5yb3RhdGUoLXRoZXRhKTtcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKC1zeCwgLXN5KTtcbiAgICAgIGlmICghc21vb3RoKSB7XG4gICAgICAgIHIuc2V0SW1nU21vb3RoaW5nKGNvbnRleHQsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZWxlVHhyQ2FjaGUuZHJhd0VsZW1lbnQoY29udGV4dCwgZWxlKTsgLy8gZGlyZWN0IGRyYXcgZmFsbGJhY2tcbiAgfVxufTtcblxudmFyIGdldFplcm9Sb3RhdGlvbiA9IGZ1bmN0aW9uIGdldFplcm9Sb3RhdGlvbigpIHtcbiAgcmV0dXJuIDA7XG59O1xudmFyIGdldExhYmVsUm90YXRpb24gPSBmdW5jdGlvbiBnZXRMYWJlbFJvdGF0aW9uKHIsIGVsZSkge1xuICByZXR1cm4gci5nZXRUZXh0QW5nbGUoZWxlLCBudWxsKTtcbn07XG52YXIgZ2V0U291cmNlTGFiZWxSb3RhdGlvbiA9IGZ1bmN0aW9uIGdldFNvdXJjZUxhYmVsUm90YXRpb24ociwgZWxlKSB7XG4gIHJldHVybiByLmdldFRleHRBbmdsZShlbGUsICdzb3VyY2UnKTtcbn07XG52YXIgZ2V0VGFyZ2V0TGFiZWxSb3RhdGlvbiA9IGZ1bmN0aW9uIGdldFRhcmdldExhYmVsUm90YXRpb24ociwgZWxlKSB7XG4gIHJldHVybiByLmdldFRleHRBbmdsZShlbGUsICd0YXJnZXQnKTtcbn07XG52YXIgZ2V0T3BhY2l0eSA9IGZ1bmN0aW9uIGdldE9wYWNpdHkociwgZWxlKSB7XG4gIHJldHVybiBlbGUuZWZmZWN0aXZlT3BhY2l0eSgpO1xufTtcbnZhciBnZXRUZXh0T3BhY2l0eSA9IGZ1bmN0aW9uIGdldFRleHRPcGFjaXR5KGUsIGVsZSkge1xuICByZXR1cm4gZWxlLnBzdHlsZSgndGV4dC1vcGFjaXR5JykucGZWYWx1ZSAqIGVsZS5lZmZlY3RpdmVPcGFjaXR5KCk7XG59O1xuQ1JwJDkuZHJhd0NhY2hlZEVsZW1lbnQgPSBmdW5jdGlvbiAoY29udGV4dCwgZWxlLCBweFJhdGlvLCBleHRlbnQsIGx2bCwgcmVxdWVzdEhpZ2hRdWFsaXR5KSB7XG4gIHZhciByID0gdGhpcztcbiAgdmFyIF9yJGRhdGEgPSByLmRhdGEsXG4gICAgZWxlVHhyQ2FjaGUgPSBfciRkYXRhLmVsZVR4ckNhY2hlLFxuICAgIGxibFR4ckNhY2hlID0gX3IkZGF0YS5sYmxUeHJDYWNoZSxcbiAgICBzbGJUeHJDYWNoZSA9IF9yJGRhdGEuc2xiVHhyQ2FjaGUsXG4gICAgdGxiVHhyQ2FjaGUgPSBfciRkYXRhLnRsYlR4ckNhY2hlO1xuICB2YXIgYmIgPSBlbGUuYm91bmRpbmdCb3goKTtcbiAgdmFyIHJlYXNvbiA9IHJlcXVlc3RIaWdoUXVhbGl0eSA9PT0gdHJ1ZSA/IGVsZVR4ckNhY2hlLnJlYXNvbnMuaGlnaFF1YWxpdHkgOiBudWxsO1xuICBpZiAoYmIudyA9PT0gMCB8fCBiYi5oID09PSAwIHx8ICFlbGUudmlzaWJsZSgpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICghZXh0ZW50IHx8IGJvdW5kaW5nQm94ZXNJbnRlcnNlY3QoYmIsIGV4dGVudCkpIHtcbiAgICB2YXIgaXNFZGdlID0gZWxlLmlzRWRnZSgpO1xuICAgIHZhciBiYWRMaW5lID0gZWxlLmVsZW1lbnQoKS5fcHJpdmF0ZS5yc2NyYXRjaC5iYWRMaW5lO1xuICAgIHIuZHJhd0VsZW1lbnRVbmRlcmxheShjb250ZXh0LCBlbGUpO1xuICAgIHIuZHJhd0NhY2hlZEVsZW1lbnRQb3J0aW9uKGNvbnRleHQsIGVsZSwgZWxlVHhyQ2FjaGUsIHB4UmF0aW8sIGx2bCwgcmVhc29uLCBnZXRaZXJvUm90YXRpb24sIGdldE9wYWNpdHkpO1xuICAgIGlmICghaXNFZGdlIHx8ICFiYWRMaW5lKSB7XG4gICAgICByLmRyYXdDYWNoZWRFbGVtZW50UG9ydGlvbihjb250ZXh0LCBlbGUsIGxibFR4ckNhY2hlLCBweFJhdGlvLCBsdmwsIHJlYXNvbiwgZ2V0TGFiZWxSb3RhdGlvbiwgZ2V0VGV4dE9wYWNpdHkpO1xuICAgIH1cbiAgICBpZiAoaXNFZGdlICYmICFiYWRMaW5lKSB7XG4gICAgICByLmRyYXdDYWNoZWRFbGVtZW50UG9ydGlvbihjb250ZXh0LCBlbGUsIHNsYlR4ckNhY2hlLCBweFJhdGlvLCBsdmwsIHJlYXNvbiwgZ2V0U291cmNlTGFiZWxSb3RhdGlvbiwgZ2V0VGV4dE9wYWNpdHkpO1xuICAgICAgci5kcmF3Q2FjaGVkRWxlbWVudFBvcnRpb24oY29udGV4dCwgZWxlLCB0bGJUeHJDYWNoZSwgcHhSYXRpbywgbHZsLCByZWFzb24sIGdldFRhcmdldExhYmVsUm90YXRpb24sIGdldFRleHRPcGFjaXR5KTtcbiAgICB9XG4gICAgci5kcmF3RWxlbWVudE92ZXJsYXkoY29udGV4dCwgZWxlKTtcbiAgfVxufTtcbkNScCQ5LmRyYXdFbGVtZW50cyA9IGZ1bmN0aW9uIChjb250ZXh0LCBlbGVzKSB7XG4gIHZhciByID0gdGhpcztcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVsZSA9IGVsZXNbaV07XG4gICAgci5kcmF3RWxlbWVudChjb250ZXh0LCBlbGUpO1xuICB9XG59O1xuQ1JwJDkuZHJhd0NhY2hlZEVsZW1lbnRzID0gZnVuY3Rpb24gKGNvbnRleHQsIGVsZXMsIHB4UmF0aW8sIGV4dGVudCkge1xuICB2YXIgciA9IHRoaXM7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBlbGUgPSBlbGVzW2ldO1xuICAgIHIuZHJhd0NhY2hlZEVsZW1lbnQoY29udGV4dCwgZWxlLCBweFJhdGlvLCBleHRlbnQpO1xuICB9XG59O1xuQ1JwJDkuZHJhd0NhY2hlZE5vZGVzID0gZnVuY3Rpb24gKGNvbnRleHQsIGVsZXMsIHB4UmF0aW8sIGV4dGVudCkge1xuICB2YXIgciA9IHRoaXM7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBlbGUgPSBlbGVzW2ldO1xuICAgIGlmICghZWxlLmlzTm9kZSgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgci5kcmF3Q2FjaGVkRWxlbWVudChjb250ZXh0LCBlbGUsIHB4UmF0aW8sIGV4dGVudCk7XG4gIH1cbn07XG5DUnAkOS5kcmF3TGF5ZXJlZEVsZW1lbnRzID0gZnVuY3Rpb24gKGNvbnRleHQsIGVsZXMsIHB4UmF0aW8sIGV4dGVudCkge1xuICB2YXIgciA9IHRoaXM7XG4gIHZhciBsYXllcnMgPSByLmRhdGEubHlyVHhyQ2FjaGUuZ2V0TGF5ZXJzKGVsZXMsIHB4UmF0aW8pO1xuICBpZiAobGF5ZXJzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYXllcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBsYXllciA9IGxheWVyc1tpXTtcbiAgICAgIHZhciBiYiA9IGxheWVyLmJiO1xuICAgICAgaWYgKGJiLncgPT09IDAgfHwgYmIuaCA9PT0gMCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGxheWVyLmNhbnZhcywgYmIueDEsIGJiLnkxLCBiYi53LCBiYi5oKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gZmFsbCBiYWNrIG9uIHBsYWluIGNhY2hpbmcgaWYgbm8gbGF5ZXJzXG4gICAgci5kcmF3Q2FjaGVkRWxlbWVudHMoY29udGV4dCwgZWxlcywgcHhSYXRpbywgZXh0ZW50KTtcbiAgfVxufTtcblxudmFyIENScCQ4ID0ge307XG5DUnAkOC5kcmF3RWRnZSA9IGZ1bmN0aW9uIChjb250ZXh0LCBlZGdlLCBzaGlmdFRvT3JpZ2luV2l0aEJiKSB7XG4gIHZhciBkcmF3TGFiZWwgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHRydWU7XG4gIHZhciBzaG91bGREcmF3T3ZlcmxheSA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogdHJ1ZTtcbiAgdmFyIHNob3VsZERyYXdPcGFjaXR5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiB0cnVlO1xuICB2YXIgciA9IHRoaXM7XG4gIHZhciBycyA9IGVkZ2UuX3ByaXZhdGUucnNjcmF0Y2g7XG4gIGlmIChzaG91bGREcmF3T3BhY2l0eSAmJiAhZWRnZS52aXNpYmxlKCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBpZiBiZXppZXIgY3RybCBwdHMgY2FuIG5vdCBiZSBjYWxjdWxhdGVkLCB0aGVuIGRpZVxuICBpZiAocnMuYmFkTGluZSB8fCBycy5hbGxwdHMgPT0gbnVsbCB8fCBpc05hTihycy5hbGxwdHNbMF0pKSB7XG4gICAgLy8gaXNOYU4gaW4gY2FzZSBlZGdlIGlzIGltcG9zc2libGUgYW5kIGJyb3dzZXIgYnVncyAoZS5nLiBzYWZhcmkpXG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBiYjtcbiAgaWYgKHNoaWZ0VG9PcmlnaW5XaXRoQmIpIHtcbiAgICBiYiA9IHNoaWZ0VG9PcmlnaW5XaXRoQmI7XG4gICAgY29udGV4dC50cmFuc2xhdGUoLWJiLngxLCAtYmIueTEpO1xuICB9XG4gIHZhciBvcGFjaXR5ID0gc2hvdWxkRHJhd09wYWNpdHkgPyBlZGdlLnBzdHlsZSgnb3BhY2l0eScpLnZhbHVlIDogMTtcbiAgdmFyIGxpbmVPcGFjaXR5ID0gc2hvdWxkRHJhd09wYWNpdHkgPyBlZGdlLnBzdHlsZSgnbGluZS1vcGFjaXR5JykudmFsdWUgOiAxO1xuICB2YXIgY3VydmVTdHlsZSA9IGVkZ2UucHN0eWxlKCdjdXJ2ZS1zdHlsZScpLnZhbHVlO1xuICB2YXIgbGluZVN0eWxlID0gZWRnZS5wc3R5bGUoJ2xpbmUtc3R5bGUnKS52YWx1ZTtcbiAgdmFyIGVkZ2VXaWR0aCA9IGVkZ2UucHN0eWxlKCd3aWR0aCcpLnBmVmFsdWU7XG4gIHZhciBsaW5lQ2FwID0gZWRnZS5wc3R5bGUoJ2xpbmUtY2FwJykudmFsdWU7XG4gIHZhciBsaW5lT3V0bGluZVdpZHRoID0gZWRnZS5wc3R5bGUoJ2xpbmUtb3V0bGluZS13aWR0aCcpLnZhbHVlO1xuICB2YXIgbGluZU91dGxpbmVDb2xvciA9IGVkZ2UucHN0eWxlKCdsaW5lLW91dGxpbmUtY29sb3InKS52YWx1ZTtcbiAgdmFyIGVmZmVjdGl2ZUxpbmVPcGFjaXR5ID0gb3BhY2l0eSAqIGxpbmVPcGFjaXR5O1xuICAvLyBzZXBhcmF0ZSBhcnJvdyBvcGFjaXR5IHdvdWxkIHJlcXVpcmUgYXJyb3ctb3BhY2l0eSBwcm9wZXJ0eVxuICB2YXIgZWZmZWN0aXZlQXJyb3dPcGFjaXR5ID0gb3BhY2l0eSAqIGxpbmVPcGFjaXR5O1xuICB2YXIgZHJhd0xpbmUgPSBmdW5jdGlvbiBkcmF3TGluZSgpIHtcbiAgICB2YXIgc3Ryb2tlT3BhY2l0eSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogZWZmZWN0aXZlTGluZU9wYWNpdHk7XG4gICAgaWYgKGN1cnZlU3R5bGUgPT09ICdzdHJhaWdodC10cmlhbmdsZScpIHtcbiAgICAgIHIuZWxlU3Ryb2tlU3R5bGUoY29udGV4dCwgZWRnZSwgc3Ryb2tlT3BhY2l0eSk7XG4gICAgICByLmRyYXdFZGdlVHJpYW5nbGVQYXRoKGVkZ2UsIGNvbnRleHQsIHJzLmFsbHB0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQubGluZVdpZHRoID0gZWRnZVdpZHRoO1xuICAgICAgY29udGV4dC5saW5lQ2FwID0gbGluZUNhcDtcbiAgICAgIHIuZWxlU3Ryb2tlU3R5bGUoY29udGV4dCwgZWRnZSwgc3Ryb2tlT3BhY2l0eSk7XG4gICAgICByLmRyYXdFZGdlUGF0aChlZGdlLCBjb250ZXh0LCBycy5hbGxwdHMsIGxpbmVTdHlsZSk7XG4gICAgICBjb250ZXh0LmxpbmVDYXAgPSAnYnV0dCc7IC8vIHJlc2V0IGZvciBvdGhlciBkcmF3aW5nIGZ1bmN0aW9uc1xuICAgIH1cbiAgfTtcblxuICB2YXIgZHJhd0xpbmVPdXRsaW5lID0gZnVuY3Rpb24gZHJhd0xpbmVPdXRsaW5lKCkge1xuICAgIHZhciBzdHJva2VPcGFjaXR5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBlZmZlY3RpdmVMaW5lT3BhY2l0eTtcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IGVkZ2VXaWR0aCArIGxpbmVPdXRsaW5lV2lkdGg7XG4gICAgY29udGV4dC5saW5lQ2FwID0gbGluZUNhcDtcbiAgICBpZiAobGluZU91dGxpbmVXaWR0aCA+IDApIHtcbiAgICAgIHIuY29sb3JTdHJva2VTdHlsZShjb250ZXh0LCBsaW5lT3V0bGluZUNvbG9yWzBdLCBsaW5lT3V0bGluZUNvbG9yWzFdLCBsaW5lT3V0bGluZUNvbG9yWzJdLCBzdHJva2VPcGFjaXR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZG8gbm90IGRyYXcgYW55IGxpbmVPdXRsaW5lXG4gICAgICBjb250ZXh0LmxpbmVDYXAgPSAnYnV0dCc7IC8vIHJlc2V0IGZvciBvdGhlciBkcmF3aW5nIGZ1bmN0aW9uc1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VydmVTdHlsZSA9PT0gJ3N0cmFpZ2h0LXRyaWFuZ2xlJykge1xuICAgICAgci5kcmF3RWRnZVRyaWFuZ2xlUGF0aChlZGdlLCBjb250ZXh0LCBycy5hbGxwdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByLmRyYXdFZGdlUGF0aChlZGdlLCBjb250ZXh0LCBycy5hbGxwdHMsIGxpbmVTdHlsZSk7XG4gICAgICBjb250ZXh0LmxpbmVDYXAgPSAnYnV0dCc7IC8vIHJlc2V0IGZvciBvdGhlciBkcmF3aW5nIGZ1bmN0aW9uc1xuICAgIH1cbiAgfTtcblxuICB2YXIgZHJhd092ZXJsYXkgPSBmdW5jdGlvbiBkcmF3T3ZlcmxheSgpIHtcbiAgICBpZiAoIXNob3VsZERyYXdPdmVybGF5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHIuZHJhd0VkZ2VPdmVybGF5KGNvbnRleHQsIGVkZ2UpO1xuICB9O1xuICB2YXIgZHJhd1VuZGVybGF5ID0gZnVuY3Rpb24gZHJhd1VuZGVybGF5KCkge1xuICAgIGlmICghc2hvdWxkRHJhd092ZXJsYXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgci5kcmF3RWRnZVVuZGVybGF5KGNvbnRleHQsIGVkZ2UpO1xuICB9O1xuICB2YXIgZHJhd0Fycm93cyA9IGZ1bmN0aW9uIGRyYXdBcnJvd3MoKSB7XG4gICAgdmFyIGFycm93T3BhY2l0eSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogZWZmZWN0aXZlQXJyb3dPcGFjaXR5O1xuICAgIHIuZHJhd0Fycm93aGVhZHMoY29udGV4dCwgZWRnZSwgYXJyb3dPcGFjaXR5KTtcbiAgfTtcbiAgdmFyIGRyYXdUZXh0ID0gZnVuY3Rpb24gZHJhd1RleHQoKSB7XG4gICAgci5kcmF3RWxlbWVudFRleHQoY29udGV4dCwgZWRnZSwgbnVsbCwgZHJhd0xhYmVsKTtcbiAgfTtcbiAgY29udGV4dC5saW5lSm9pbiA9ICdyb3VuZCc7XG4gIHZhciBnaG9zdCA9IGVkZ2UucHN0eWxlKCdnaG9zdCcpLnZhbHVlID09PSAneWVzJztcbiAgaWYgKGdob3N0KSB7XG4gICAgdmFyIGd4ID0gZWRnZS5wc3R5bGUoJ2dob3N0LW9mZnNldC14JykucGZWYWx1ZTtcbiAgICB2YXIgZ3kgPSBlZGdlLnBzdHlsZSgnZ2hvc3Qtb2Zmc2V0LXknKS5wZlZhbHVlO1xuICAgIHZhciBnaG9zdE9wYWNpdHkgPSBlZGdlLnBzdHlsZSgnZ2hvc3Qtb3BhY2l0eScpLnZhbHVlO1xuICAgIHZhciBlZmZlY3RpdmVHaG9zdE9wYWNpdHkgPSBlZmZlY3RpdmVMaW5lT3BhY2l0eSAqIGdob3N0T3BhY2l0eTtcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShneCwgZ3kpO1xuICAgIGRyYXdMaW5lKGVmZmVjdGl2ZUdob3N0T3BhY2l0eSk7XG4gICAgZHJhd0Fycm93cyhlZmZlY3RpdmVHaG9zdE9wYWNpdHkpO1xuICAgIGNvbnRleHQudHJhbnNsYXRlKC1neCwgLWd5KTtcbiAgfSBlbHNlIHtcbiAgICBkcmF3TGluZU91dGxpbmUoKTtcbiAgfVxuICBkcmF3VW5kZXJsYXkoKTtcbiAgZHJhd0xpbmUoKTtcbiAgZHJhd0Fycm93cygpO1xuICBkcmF3T3ZlcmxheSgpO1xuICBkcmF3VGV4dCgpO1xuICBpZiAoc2hpZnRUb09yaWdpbldpdGhCYikge1xuICAgIGNvbnRleHQudHJhbnNsYXRlKGJiLngxLCBiYi55MSk7XG4gIH1cbn07XG52YXIgZHJhd0VkZ2VPdmVybGF5VW5kZXJsYXkgPSBmdW5jdGlvbiBkcmF3RWRnZU92ZXJsYXlVbmRlcmxheShvdmVybGF5T3JVbmRlcmxheSkge1xuICBpZiAoIVsnb3ZlcmxheScsICd1bmRlcmxheSddLmluY2x1ZGVzKG92ZXJsYXlPclVuZGVybGF5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzdGF0ZScpO1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoY29udGV4dCwgZWRnZSkge1xuICAgIGlmICghZWRnZS52aXNpYmxlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIG9wYWNpdHkgPSBlZGdlLnBzdHlsZShcIlwiLmNvbmNhdChvdmVybGF5T3JVbmRlcmxheSwgXCItb3BhY2l0eVwiKSkudmFsdWU7XG4gICAgaWYgKG9wYWNpdHkgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHIgPSB0aGlzO1xuICAgIHZhciB1c2VQYXRocyA9IHIudXNlUGF0aHMoKTtcbiAgICB2YXIgcnMgPSBlZGdlLl9wcml2YXRlLnJzY3JhdGNoO1xuICAgIHZhciBwYWRkaW5nID0gZWRnZS5wc3R5bGUoXCJcIi5jb25jYXQob3ZlcmxheU9yVW5kZXJsYXksIFwiLXBhZGRpbmdcIikpLnBmVmFsdWU7XG4gICAgdmFyIHdpZHRoID0gMiAqIHBhZGRpbmc7XG4gICAgdmFyIGNvbG9yID0gZWRnZS5wc3R5bGUoXCJcIi5jb25jYXQob3ZlcmxheU9yVW5kZXJsYXksIFwiLWNvbG9yXCIpKS52YWx1ZTtcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IHdpZHRoO1xuICAgIGlmIChycy5lZGdlVHlwZSA9PT0gJ3NlbGYnICYmICF1c2VQYXRocykge1xuICAgICAgY29udGV4dC5saW5lQ2FwID0gJ2J1dHQnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmxpbmVDYXAgPSAncm91bmQnO1xuICAgIH1cbiAgICByLmNvbG9yU3Ryb2tlU3R5bGUoY29udGV4dCwgY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsyXSwgb3BhY2l0eSk7XG4gICAgci5kcmF3RWRnZVBhdGgoZWRnZSwgY29udGV4dCwgcnMuYWxscHRzLCAnc29saWQnKTtcbiAgfTtcbn07XG5DUnAkOC5kcmF3RWRnZU92ZXJsYXkgPSBkcmF3RWRnZU92ZXJsYXlVbmRlcmxheSgnb3ZlcmxheScpO1xuQ1JwJDguZHJhd0VkZ2VVbmRlcmxheSA9IGRyYXdFZGdlT3ZlcmxheVVuZGVybGF5KCd1bmRlcmxheScpO1xuQ1JwJDguZHJhd0VkZ2VQYXRoID0gZnVuY3Rpb24gKGVkZ2UsIGNvbnRleHQsIHB0cywgdHlwZSkge1xuICB2YXIgcnMgPSBlZGdlLl9wcml2YXRlLnJzY3JhdGNoO1xuICB2YXIgY2FudmFzQ3h0ID0gY29udGV4dDtcbiAgdmFyIHBhdGg7XG4gIHZhciBwYXRoQ2FjaGVIaXQgPSBmYWxzZTtcbiAgdmFyIHVzZVBhdGhzID0gdGhpcy51c2VQYXRocygpO1xuICB2YXIgbGluZURhc2hQYXR0ZXJuID0gZWRnZS5wc3R5bGUoJ2xpbmUtZGFzaC1wYXR0ZXJuJykucGZWYWx1ZTtcbiAgdmFyIGxpbmVEYXNoT2Zmc2V0ID0gZWRnZS5wc3R5bGUoJ2xpbmUtZGFzaC1vZmZzZXQnKS5wZlZhbHVlO1xuICBpZiAodXNlUGF0aHMpIHtcbiAgICB2YXIgcGF0aENhY2hlS2V5ID0gcHRzLmpvaW4oJyQnKTtcbiAgICB2YXIga2V5TWF0Y2hlcyA9IHJzLnBhdGhDYWNoZUtleSAmJiBycy5wYXRoQ2FjaGVLZXkgPT09IHBhdGhDYWNoZUtleTtcbiAgICBpZiAoa2V5TWF0Y2hlcykge1xuICAgICAgcGF0aCA9IGNvbnRleHQgPSBycy5wYXRoQ2FjaGU7XG4gICAgICBwYXRoQ2FjaGVIaXQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXRoID0gY29udGV4dCA9IG5ldyBQYXRoMkQoKTtcbiAgICAgIHJzLnBhdGhDYWNoZUtleSA9IHBhdGhDYWNoZUtleTtcbiAgICAgIHJzLnBhdGhDYWNoZSA9IHBhdGg7XG4gICAgfVxuICB9XG4gIGlmIChjYW52YXNDeHQuc2V0TGluZURhc2gpIHtcbiAgICAvLyBmb3IgdmVyeSBvdXRvZmRhdGUgYnJvd3NlcnNcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2RvdHRlZCc6XG4gICAgICAgIGNhbnZhc0N4dC5zZXRMaW5lRGFzaChbMSwgMV0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rhc2hlZCc6XG4gICAgICAgIGNhbnZhc0N4dC5zZXRMaW5lRGFzaChsaW5lRGFzaFBhdHRlcm4pO1xuICAgICAgICBjYW52YXNDeHQubGluZURhc2hPZmZzZXQgPSBsaW5lRGFzaE9mZnNldDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzb2xpZCc6XG4gICAgICAgIGNhbnZhc0N4dC5zZXRMaW5lRGFzaChbXSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoIXBhdGhDYWNoZUhpdCAmJiAhcnMuYmFkTGluZSkge1xuICAgIGlmIChjb250ZXh0LmJlZ2luUGF0aCkge1xuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICB9XG4gICAgY29udGV4dC5tb3ZlVG8ocHRzWzBdLCBwdHNbMV0pO1xuICAgIHN3aXRjaCAocnMuZWRnZVR5cGUpIHtcbiAgICAgIGNhc2UgJ2Jlemllcic6XG4gICAgICBjYXNlICdzZWxmJzpcbiAgICAgIGNhc2UgJ2NvbXBvdW5kJzpcbiAgICAgIGNhc2UgJ211bHRpYmV6aWVyJzpcbiAgICAgICAgZm9yICh2YXIgaSA9IDI7IGkgKyAzIDwgcHRzLmxlbmd0aDsgaSArPSA0KSB7XG4gICAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKHB0c1tpXSwgcHRzW2kgKyAxXSwgcHRzW2kgKyAyXSwgcHRzW2kgKyAzXSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdHJhaWdodCc6XG4gICAgICBjYXNlICdoYXlzdGFjayc6XG4gICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgKyAxIDwgcHRzLmxlbmd0aDsgX2kgKz0gMikge1xuICAgICAgICAgIGNvbnRleHQubGluZVRvKHB0c1tfaV0sIHB0c1tfaSArIDFdKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlZ21lbnRzJzpcbiAgICAgICAgaWYgKHJzLmlzUm91bmQpIHtcbiAgICAgICAgICB2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIocnMucm91bmRDb3JuZXJzKSxcbiAgICAgICAgICAgIF9zdGVwO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmb3IgKF9pdGVyYXRvci5zKCk7ICEoX3N0ZXAgPSBfaXRlcmF0b3IubigpKS5kb25lOykge1xuICAgICAgICAgICAgICB2YXIgY29ybmVyID0gX3N0ZXAudmFsdWU7XG4gICAgICAgICAgICAgIGRyYXdQcmVwYXJlZFJvdW5kQ29ybmVyKGNvbnRleHQsIGNvcm5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBfaXRlcmF0b3IuZShlcnIpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBfaXRlcmF0b3IuZigpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhwdHNbcHRzLmxlbmd0aCAtIDJdLCBwdHNbcHRzLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3IgKHZhciBfaTIgPSAyOyBfaTIgKyAxIDwgcHRzLmxlbmd0aDsgX2kyICs9IDIpIHtcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHB0c1tfaTJdLCBwdHNbX2kyICsgMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgY29udGV4dCA9IGNhbnZhc0N4dDtcbiAgaWYgKHVzZVBhdGhzKSB7XG4gICAgY29udGV4dC5zdHJva2UocGF0aCk7XG4gIH0gZWxzZSB7XG4gICAgY29udGV4dC5zdHJva2UoKTtcbiAgfVxuXG4gIC8vIHJlc2V0IGFueSBsaW5lIGRhc2hlc1xuICBpZiAoY29udGV4dC5zZXRMaW5lRGFzaCkge1xuICAgIC8vIGZvciB2ZXJ5IG91dG9mZGF0ZSBicm93c2Vyc1xuICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xuICB9XG59O1xuQ1JwJDguZHJhd0VkZ2VUcmlhbmdsZVBhdGggPSBmdW5jdGlvbiAoZWRnZSwgY29udGV4dCwgcHRzKSB7XG4gIC8vIHVzZSBsaW5lIHN0cm9rZSBzdHlsZSBmb3IgdHJpYW5nbGUgZmlsbCBzdHlsZVxuICBjb250ZXh0LmZpbGxTdHlsZSA9IGNvbnRleHQuc3Ryb2tlU3R5bGU7XG4gIHZhciBlZGdlV2lkdGggPSBlZGdlLnBzdHlsZSgnd2lkdGgnKS5wZlZhbHVlO1xuICBmb3IgKHZhciBpID0gMDsgaSArIDEgPCBwdHMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICB2YXIgdmVjdG9yID0gW3B0c1tpICsgMl0gLSBwdHNbaV0sIHB0c1tpICsgM10gLSBwdHNbaSArIDFdXTtcbiAgICB2YXIgbGVuZ3RoID0gTWF0aC5zcXJ0KHZlY3RvclswXSAqIHZlY3RvclswXSArIHZlY3RvclsxXSAqIHZlY3RvclsxXSk7XG4gICAgdmFyIG5vcm1hbCA9IFt2ZWN0b3JbMV0gLyBsZW5ndGgsIC12ZWN0b3JbMF0gLyBsZW5ndGhdO1xuICAgIHZhciB0cmlhbmdsZUhlYWQgPSBbbm9ybWFsWzBdICogZWRnZVdpZHRoIC8gMiwgbm9ybWFsWzFdICogZWRnZVdpZHRoIC8gMl07XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0Lm1vdmVUbyhwdHNbaV0gLSB0cmlhbmdsZUhlYWRbMF0sIHB0c1tpICsgMV0gLSB0cmlhbmdsZUhlYWRbMV0pO1xuICAgIGNvbnRleHQubGluZVRvKHB0c1tpXSArIHRyaWFuZ2xlSGVhZFswXSwgcHRzW2kgKyAxXSArIHRyaWFuZ2xlSGVhZFsxXSk7XG4gICAgY29udGV4dC5saW5lVG8ocHRzW2kgKyAyXSwgcHRzW2kgKyAzXSk7XG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcbiAgICBjb250ZXh0LmZpbGwoKTtcbiAgfVxufTtcbkNScCQ4LmRyYXdBcnJvd2hlYWRzID0gZnVuY3Rpb24gKGNvbnRleHQsIGVkZ2UsIG9wYWNpdHkpIHtcbiAgdmFyIHJzID0gZWRnZS5fcHJpdmF0ZS5yc2NyYXRjaDtcbiAgdmFyIGlzSGF5c3RhY2sgPSBycy5lZGdlVHlwZSA9PT0gJ2hheXN0YWNrJztcbiAgaWYgKCFpc0hheXN0YWNrKSB7XG4gICAgdGhpcy5kcmF3QXJyb3doZWFkKGNvbnRleHQsIGVkZ2UsICdzb3VyY2UnLCBycy5hcnJvd1N0YXJ0WCwgcnMuYXJyb3dTdGFydFksIHJzLnNyY0Fycm93QW5nbGUsIG9wYWNpdHkpO1xuICB9XG4gIHRoaXMuZHJhd0Fycm93aGVhZChjb250ZXh0LCBlZGdlLCAnbWlkLXRhcmdldCcsIHJzLm1pZFgsIHJzLm1pZFksIHJzLm1pZHRndEFycm93QW5nbGUsIG9wYWNpdHkpO1xuICB0aGlzLmRyYXdBcnJvd2hlYWQoY29udGV4dCwgZWRnZSwgJ21pZC1zb3VyY2UnLCBycy5taWRYLCBycy5taWRZLCBycy5taWRzcmNBcnJvd0FuZ2xlLCBvcGFjaXR5KTtcbiAgaWYgKCFpc0hheXN0YWNrKSB7XG4gICAgdGhpcy5kcmF3QXJyb3doZWFkKGNvbnRleHQsIGVkZ2UsICd0YXJnZXQnLCBycy5hcnJvd0VuZFgsIHJzLmFycm93RW5kWSwgcnMudGd0QXJyb3dBbmdsZSwgb3BhY2l0eSk7XG4gIH1cbn07XG5DUnAkOC5kcmF3QXJyb3doZWFkID0gZnVuY3Rpb24gKGNvbnRleHQsIGVkZ2UsIHByZWZpeCwgeCwgeSwgYW5nbGUsIG9wYWNpdHkpIHtcbiAgaWYgKGlzTmFOKHgpIHx8IHggPT0gbnVsbCB8fCBpc05hTih5KSB8fCB5ID09IG51bGwgfHwgaXNOYU4oYW5nbGUpIHx8IGFuZ2xlID09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgYXJyb3dTaGFwZSA9IGVkZ2UucHN0eWxlKHByZWZpeCArICctYXJyb3ctc2hhcGUnKS52YWx1ZTtcbiAgaWYgKGFycm93U2hhcGUgPT09ICdub25lJykge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgYXJyb3dDbGVhckZpbGwgPSBlZGdlLnBzdHlsZShwcmVmaXggKyAnLWFycm93LWZpbGwnKS52YWx1ZSA9PT0gJ2hvbGxvdycgPyAnYm90aCcgOiAnZmlsbGVkJztcbiAgdmFyIGFycm93RmlsbCA9IGVkZ2UucHN0eWxlKHByZWZpeCArICctYXJyb3ctZmlsbCcpLnZhbHVlO1xuICB2YXIgZWRnZVdpZHRoID0gZWRnZS5wc3R5bGUoJ3dpZHRoJykucGZWYWx1ZTtcbiAgdmFyIHBBcnJvd1dpZHRoID0gZWRnZS5wc3R5bGUocHJlZml4ICsgJy1hcnJvdy13aWR0aCcpO1xuICB2YXIgYXJyb3dXaWR0aCA9IHBBcnJvd1dpZHRoLnZhbHVlID09PSAnbWF0Y2gtbGluZScgPyBlZGdlV2lkdGggOiBwQXJyb3dXaWR0aC5wZlZhbHVlO1xuICBpZiAocEFycm93V2lkdGgudW5pdHMgPT09ICclJykgYXJyb3dXaWR0aCAqPSBlZGdlV2lkdGg7XG4gIHZhciBlZGdlT3BhY2l0eSA9IGVkZ2UucHN0eWxlKCdvcGFjaXR5JykudmFsdWU7XG4gIGlmIChvcGFjaXR5ID09PSB1bmRlZmluZWQpIHtcbiAgICBvcGFjaXR5ID0gZWRnZU9wYWNpdHk7XG4gIH1cbiAgdmFyIGdjbyA9IGNvbnRleHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uO1xuICBpZiAob3BhY2l0eSAhPT0gMSB8fCBhcnJvd0ZpbGwgPT09ICdob2xsb3cnKSB7XG4gICAgLy8gdGhlbiBleHRyYSBjbGVhciBpcyBuZWVkZWRcbiAgICBjb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdkZXN0aW5hdGlvbi1vdXQnO1xuICAgIHNlbGYuY29sb3JGaWxsU3R5bGUoY29udGV4dCwgMjU1LCAyNTUsIDI1NSwgMSk7XG4gICAgc2VsZi5jb2xvclN0cm9rZVN0eWxlKGNvbnRleHQsIDI1NSwgMjU1LCAyNTUsIDEpO1xuICAgIHNlbGYuZHJhd0Fycm93U2hhcGUoZWRnZSwgY29udGV4dCwgYXJyb3dDbGVhckZpbGwsIGVkZ2VXaWR0aCwgYXJyb3dTaGFwZSwgYXJyb3dXaWR0aCwgeCwgeSwgYW5nbGUpO1xuICAgIGNvbnRleHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gZ2NvO1xuICB9IC8vIG90aGVyd2lzZSwgdGhlIG9wYXF1ZSBhcnJvdyBjbGVhcnMgaXQgZm9yIGZyZWUgOilcblxuICB2YXIgY29sb3IgPSBlZGdlLnBzdHlsZShwcmVmaXggKyAnLWFycm93LWNvbG9yJykudmFsdWU7XG4gIHNlbGYuY29sb3JGaWxsU3R5bGUoY29udGV4dCwgY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsyXSwgb3BhY2l0eSk7XG4gIHNlbGYuY29sb3JTdHJva2VTdHlsZShjb250ZXh0LCBjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJdLCBvcGFjaXR5KTtcbiAgc2VsZi5kcmF3QXJyb3dTaGFwZShlZGdlLCBjb250ZXh0LCBhcnJvd0ZpbGwsIGVkZ2VXaWR0aCwgYXJyb3dTaGFwZSwgYXJyb3dXaWR0aCwgeCwgeSwgYW5nbGUpO1xufTtcbkNScCQ4LmRyYXdBcnJvd1NoYXBlID0gZnVuY3Rpb24gKGVkZ2UsIGNvbnRleHQsIGZpbGwsIGVkZ2VXaWR0aCwgc2hhcGUsIHNoYXBlV2lkdGgsIHgsIHksIGFuZ2xlKSB7XG4gIHZhciByID0gdGhpcztcbiAgdmFyIHVzZVBhdGhzID0gdGhpcy51c2VQYXRocygpICYmIHNoYXBlICE9PSAndHJpYW5nbGUtY3Jvc3MnO1xuICB2YXIgcGF0aENhY2hlSGl0ID0gZmFsc2U7XG4gIHZhciBwYXRoO1xuICB2YXIgY2FudmFzQ29udGV4dCA9IGNvbnRleHQ7XG4gIHZhciB0cmFuc2xhdGlvbiA9IHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcbiAgdmFyIHNjYWxlID0gZWRnZS5wc3R5bGUoJ2Fycm93LXNjYWxlJykudmFsdWU7XG4gIHZhciBzaXplID0gdGhpcy5nZXRBcnJvd1dpZHRoKGVkZ2VXaWR0aCwgc2NhbGUpO1xuICB2YXIgc2hhcGVJbXBsID0gci5hcnJvd1NoYXBlc1tzaGFwZV07XG4gIGlmICh1c2VQYXRocykge1xuICAgIHZhciBjYWNoZSA9IHIuYXJyb3dQYXRoQ2FjaGUgPSByLmFycm93UGF0aENhY2hlIHx8IFtdO1xuICAgIHZhciBrZXkgPSBoYXNoU3RyaW5nKHNoYXBlKTtcbiAgICB2YXIgY2FjaGVkUGF0aCA9IGNhY2hlW2tleV07XG4gICAgaWYgKGNhY2hlZFBhdGggIT0gbnVsbCkge1xuICAgICAgcGF0aCA9IGNvbnRleHQgPSBjYWNoZWRQYXRoO1xuICAgICAgcGF0aENhY2hlSGl0ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aCA9IGNvbnRleHQgPSBuZXcgUGF0aDJEKCk7XG4gICAgICBjYWNoZVtrZXldID0gcGF0aDtcbiAgICB9XG4gIH1cbiAgaWYgKCFwYXRoQ2FjaGVIaXQpIHtcbiAgICBpZiAoY29udGV4dC5iZWdpblBhdGgpIHtcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gICAgfVxuICAgIGlmICh1c2VQYXRocykge1xuICAgICAgLy8gc3RvcmUgaW4gdGhlIHBhdGggY2FjaGUgd2l0aCB2YWx1ZXMgZWFzaWx5IG1hbmlwdWxhdGVkIGxhdGVyXG4gICAgICBzaGFwZUltcGwuZHJhdyhjb250ZXh0LCAxLCAwLCB7XG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IDBcbiAgICAgIH0sIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzaGFwZUltcGwuZHJhdyhjb250ZXh0LCBzaXplLCBhbmdsZSwgdHJhbnNsYXRpb24sIGVkZ2VXaWR0aCk7XG4gICAgfVxuICAgIGlmIChjb250ZXh0LmNsb3NlUGF0aCkge1xuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcbiAgICB9XG4gIH1cbiAgY29udGV4dCA9IGNhbnZhc0NvbnRleHQ7XG4gIGlmICh1c2VQYXRocykge1xuICAgIC8vIHNldCB0cmFuc2Zvcm0gdG8gYXJyb3cgcG9zaXRpb24vb3JpZW50YXRpb25cbiAgICBjb250ZXh0LnRyYW5zbGF0ZSh4LCB5KTtcbiAgICBjb250ZXh0LnJvdGF0ZShhbmdsZSk7XG4gICAgY29udGV4dC5zY2FsZShzaXplLCBzaXplKTtcbiAgfVxuICBpZiAoZmlsbCA9PT0gJ2ZpbGxlZCcgfHwgZmlsbCA9PT0gJ2JvdGgnKSB7XG4gICAgaWYgKHVzZVBhdGhzKSB7XG4gICAgICBjb250ZXh0LmZpbGwocGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xuICAgIH1cbiAgfVxuICBpZiAoZmlsbCA9PT0gJ2hvbGxvdycgfHwgZmlsbCA9PT0gJ2JvdGgnKSB7XG4gICAgY29udGV4dC5saW5lV2lkdGggPSBzaGFwZVdpZHRoIC8gKHVzZVBhdGhzID8gc2l6ZSA6IDEpO1xuICAgIGNvbnRleHQubGluZUpvaW4gPSAnbWl0ZXInO1xuICAgIGlmICh1c2VQYXRocykge1xuICAgICAgY29udGV4dC5zdHJva2UocGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XG4gICAgfVxuICB9XG4gIGlmICh1c2VQYXRocykge1xuICAgIC8vIHJlc2V0IHRyYW5zZm9ybSBieSBhcHBseWluZyBpbnZlcnNlXG4gICAgY29udGV4dC5zY2FsZSgxIC8gc2l6ZSwgMSAvIHNpemUpO1xuICAgIGNvbnRleHQucm90YXRlKC1hbmdsZSk7XG4gICAgY29udGV4dC50cmFuc2xhdGUoLXgsIC15KTtcbiAgfVxufTtcblxudmFyIENScCQ3ID0ge307XG5DUnAkNy5zYWZlRHJhd0ltYWdlID0gZnVuY3Rpb24gKGNvbnRleHQsIGltZywgaXgsIGl5LCBpdywgaWgsIHgsIHksIHcsIGgpIHtcbiAgLy8gZGV0ZWN0IHByb2JsZW1hdGljIGNhc2VzIGZvciBvbGQgYnJvd3NlcnMgd2l0aCBiYWQgaW1hZ2VzIChjaGVhcGVyIHRoYW4gdHJ5LWNhdGNoKVxuICBpZiAoaXcgPD0gMCB8fCBpaCA8PSAwIHx8IHcgPD0gMCB8fCBoIDw9IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdHJ5IHtcbiAgICBjb250ZXh0LmRyYXdJbWFnZShpbWcsIGl4LCBpeSwgaXcsIGloLCB4LCB5LCB3LCBoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHdhcm4oZSk7XG4gIH1cbn07XG5DUnAkNy5kcmF3SW5zY3JpYmVkSW1hZ2UgPSBmdW5jdGlvbiAoY29udGV4dCwgaW1nLCBub2RlLCBpbmRleCwgbm9kZU9wYWNpdHkpIHtcbiAgdmFyIHIgPSB0aGlzO1xuICB2YXIgcG9zID0gbm9kZS5wb3NpdGlvbigpO1xuICB2YXIgbm9kZVggPSBwb3MueDtcbiAgdmFyIG5vZGVZID0gcG9zLnk7XG4gIHZhciBzdHlsZU9iaiA9IG5vZGUuY3koKS5zdHlsZSgpO1xuICB2YXIgZ2V0SW5kZXhlZFN0eWxlID0gc3R5bGVPYmouZ2V0SW5kZXhlZFN0eWxlLmJpbmQoc3R5bGVPYmopO1xuICB2YXIgZml0ID0gZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLWZpdCcsICd2YWx1ZScsIGluZGV4KTtcbiAgdmFyIHJlcGVhdCA9IGdldEluZGV4ZWRTdHlsZShub2RlLCAnYmFja2dyb3VuZC1yZXBlYXQnLCAndmFsdWUnLCBpbmRleCk7XG4gIHZhciBub2RlVyA9IG5vZGUud2lkdGgoKTtcbiAgdmFyIG5vZGVIID0gbm9kZS5oZWlnaHQoKTtcbiAgdmFyIHBhZGRpbmdYMiA9IG5vZGUucGFkZGluZygpICogMjtcbiAgdmFyIG5vZGVUVyA9IG5vZGVXICsgKGdldEluZGV4ZWRTdHlsZShub2RlLCAnYmFja2dyb3VuZC13aWR0aC1yZWxhdGl2ZS10bycsICd2YWx1ZScsIGluZGV4KSA9PT0gJ2lubmVyJyA/IDAgOiBwYWRkaW5nWDIpO1xuICB2YXIgbm9kZVRIID0gbm9kZUggKyAoZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLWhlaWdodC1yZWxhdGl2ZS10bycsICd2YWx1ZScsIGluZGV4KSA9PT0gJ2lubmVyJyA/IDAgOiBwYWRkaW5nWDIpO1xuICB2YXIgcnMgPSBub2RlLl9wcml2YXRlLnJzY3JhdGNoO1xuICB2YXIgY2xpcCA9IGdldEluZGV4ZWRTdHlsZShub2RlLCAnYmFja2dyb3VuZC1jbGlwJywgJ3ZhbHVlJywgaW5kZXgpO1xuICB2YXIgc2hvdWxkQ2xpcCA9IGNsaXAgPT09ICdub2RlJztcbiAgdmFyIGltZ09wYWNpdHkgPSBnZXRJbmRleGVkU3R5bGUobm9kZSwgJ2JhY2tncm91bmQtaW1hZ2Utb3BhY2l0eScsICd2YWx1ZScsIGluZGV4KSAqIG5vZGVPcGFjaXR5O1xuICB2YXIgc21vb3RoID0gZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLWltYWdlLXNtb290aGluZycsICd2YWx1ZScsIGluZGV4KTtcbiAgdmFyIGNvcm5lclJhZGl1cyA9IG5vZGUucHN0eWxlKCdjb3JuZXItcmFkaXVzJykudmFsdWU7XG4gIGlmIChjb3JuZXJSYWRpdXMgIT09ICdhdXRvJykgY29ybmVyUmFkaXVzID0gbm9kZS5wc3R5bGUoJ2Nvcm5lci1yYWRpdXMnKS5wZlZhbHVlO1xuICB2YXIgaW1nVyA9IGltZy53aWR0aCB8fCBpbWcuY2FjaGVkVztcbiAgdmFyIGltZ0ggPSBpbWcuaGVpZ2h0IHx8IGltZy5jYWNoZWRIO1xuXG4gIC8vIHdvcmthcm91bmQgZm9yIGJyb2tlbiBicm93c2VycyBsaWtlIGllXG4gIGlmIChudWxsID09IGltZ1cgfHwgbnVsbCA9PSBpbWdIKSB7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cbiAgICBpbWdXID0gaW1nLmNhY2hlZFcgPSBpbWcud2lkdGggfHwgaW1nLm9mZnNldFdpZHRoO1xuICAgIGltZ0ggPSBpbWcuY2FjaGVkSCA9IGltZy5oZWlnaHQgfHwgaW1nLm9mZnNldEhlaWdodDtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGltZyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiAgfVxuXG4gIHZhciB3ID0gaW1nVztcbiAgdmFyIGggPSBpbWdIO1xuICBpZiAoZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLXdpZHRoJywgJ3ZhbHVlJywgaW5kZXgpICE9PSAnYXV0bycpIHtcbiAgICBpZiAoZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLXdpZHRoJywgJ3VuaXRzJywgaW5kZXgpID09PSAnJScpIHtcbiAgICAgIHcgPSBnZXRJbmRleGVkU3R5bGUobm9kZSwgJ2JhY2tncm91bmQtd2lkdGgnLCAncGZWYWx1ZScsIGluZGV4KSAqIG5vZGVUVztcbiAgICB9IGVsc2Uge1xuICAgICAgdyA9IGdldEluZGV4ZWRTdHlsZShub2RlLCAnYmFja2dyb3VuZC13aWR0aCcsICdwZlZhbHVlJywgaW5kZXgpO1xuICAgIH1cbiAgfVxuICBpZiAoZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLWhlaWdodCcsICd2YWx1ZScsIGluZGV4KSAhPT0gJ2F1dG8nKSB7XG4gICAgaWYgKGdldEluZGV4ZWRTdHlsZShub2RlLCAnYmFja2dyb3VuZC1oZWlnaHQnLCAndW5pdHMnLCBpbmRleCkgPT09ICclJykge1xuICAgICAgaCA9IGdldEluZGV4ZWRTdHlsZShub2RlLCAnYmFja2dyb3VuZC1oZWlnaHQnLCAncGZWYWx1ZScsIGluZGV4KSAqIG5vZGVUSDtcbiAgICB9IGVsc2Uge1xuICAgICAgaCA9IGdldEluZGV4ZWRTdHlsZShub2RlLCAnYmFja2dyb3VuZC1oZWlnaHQnLCAncGZWYWx1ZScsIGluZGV4KTtcbiAgICB9XG4gIH1cbiAgaWYgKHcgPT09IDAgfHwgaCA9PT0gMCkge1xuICAgIHJldHVybjsgLy8gbm8gcG9pbnQgaW4gZHJhd2luZyBlbXB0eSBpbWFnZSAoYW5kIGNocm9tZSBpcyBicm9rZW4gaW4gdGhpcyBjYXNlKVxuICB9XG5cbiAgaWYgKGZpdCA9PT0gJ2NvbnRhaW4nKSB7XG4gICAgdmFyIHNjYWxlID0gTWF0aC5taW4obm9kZVRXIC8gdywgbm9kZVRIIC8gaCk7XG4gICAgdyAqPSBzY2FsZTtcbiAgICBoICo9IHNjYWxlO1xuICB9IGVsc2UgaWYgKGZpdCA9PT0gJ2NvdmVyJykge1xuICAgIHZhciBzY2FsZSA9IE1hdGgubWF4KG5vZGVUVyAvIHcsIG5vZGVUSCAvIGgpO1xuICAgIHcgKj0gc2NhbGU7XG4gICAgaCAqPSBzY2FsZTtcbiAgfVxuICB2YXIgeCA9IG5vZGVYIC0gbm9kZVRXIC8gMjsgLy8gbGVmdFxuICB2YXIgcG9zWFVuaXRzID0gZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLXBvc2l0aW9uLXgnLCAndW5pdHMnLCBpbmRleCk7XG4gIHZhciBwb3NYUGZWYWwgPSBnZXRJbmRleGVkU3R5bGUobm9kZSwgJ2JhY2tncm91bmQtcG9zaXRpb24teCcsICdwZlZhbHVlJywgaW5kZXgpO1xuICBpZiAocG9zWFVuaXRzID09PSAnJScpIHtcbiAgICB4ICs9IChub2RlVFcgLSB3KSAqIHBvc1hQZlZhbDtcbiAgfSBlbHNlIHtcbiAgICB4ICs9IHBvc1hQZlZhbDtcbiAgfVxuICB2YXIgb2ZmWFVuaXRzID0gZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLW9mZnNldC14JywgJ3VuaXRzJywgaW5kZXgpO1xuICB2YXIgb2ZmWFBmVmFsID0gZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLW9mZnNldC14JywgJ3BmVmFsdWUnLCBpbmRleCk7XG4gIGlmIChvZmZYVW5pdHMgPT09ICclJykge1xuICAgIHggKz0gKG5vZGVUVyAtIHcpICogb2ZmWFBmVmFsO1xuICB9IGVsc2Uge1xuICAgIHggKz0gb2ZmWFBmVmFsO1xuICB9XG4gIHZhciB5ID0gbm9kZVkgLSBub2RlVEggLyAyOyAvLyB0b3BcbiAgdmFyIHBvc1lVbml0cyA9IGdldEluZGV4ZWRTdHlsZShub2RlLCAnYmFja2dyb3VuZC1wb3NpdGlvbi15JywgJ3VuaXRzJywgaW5kZXgpO1xuICB2YXIgcG9zWVBmVmFsID0gZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLXBvc2l0aW9uLXknLCAncGZWYWx1ZScsIGluZGV4KTtcbiAgaWYgKHBvc1lVbml0cyA9PT0gJyUnKSB7XG4gICAgeSArPSAobm9kZVRIIC0gaCkgKiBwb3NZUGZWYWw7XG4gIH0gZWxzZSB7XG4gICAgeSArPSBwb3NZUGZWYWw7XG4gIH1cbiAgdmFyIG9mZllVbml0cyA9IGdldEluZGV4ZWRTdHlsZShub2RlLCAnYmFja2dyb3VuZC1vZmZzZXQteScsICd1bml0cycsIGluZGV4KTtcbiAgdmFyIG9mZllQZlZhbCA9IGdldEluZGV4ZWRTdHlsZShub2RlLCAnYmFja2dyb3VuZC1vZmZzZXQteScsICdwZlZhbHVlJywgaW5kZXgpO1xuICBpZiAob2ZmWVVuaXRzID09PSAnJScpIHtcbiAgICB5ICs9IChub2RlVEggLSBoKSAqIG9mZllQZlZhbDtcbiAgfSBlbHNlIHtcbiAgICB5ICs9IG9mZllQZlZhbDtcbiAgfVxuICBpZiAocnMucGF0aENhY2hlKSB7XG4gICAgeCAtPSBub2RlWDtcbiAgICB5IC09IG5vZGVZO1xuICAgIG5vZGVYID0gMDtcbiAgICBub2RlWSA9IDA7XG4gIH1cbiAgdmFyIGdBbHBoYSA9IGNvbnRleHQuZ2xvYmFsQWxwaGE7XG4gIGNvbnRleHQuZ2xvYmFsQWxwaGEgPSBpbWdPcGFjaXR5O1xuICB2YXIgc21vb3RoaW5nRW5hYmxlZCA9IHIuZ2V0SW1nU21vb3RoaW5nKGNvbnRleHQpO1xuICB2YXIgaXNTbW9vdGhpbmdTd2l0Y2hlZCA9IGZhbHNlO1xuICBpZiAoc21vb3RoID09PSAnbm8nICYmIHNtb290aGluZ0VuYWJsZWQpIHtcbiAgICByLnNldEltZ1Ntb290aGluZyhjb250ZXh0LCBmYWxzZSk7XG4gICAgaXNTbW9vdGhpbmdTd2l0Y2hlZCA9IHRydWU7XG4gIH0gZWxzZSBpZiAoc21vb3RoID09PSAneWVzJyAmJiAhc21vb3RoaW5nRW5hYmxlZCkge1xuICAgIHIuc2V0SW1nU21vb3RoaW5nKGNvbnRleHQsIHRydWUpO1xuICAgIGlzU21vb3RoaW5nU3dpdGNoZWQgPSB0cnVlO1xuICB9XG4gIGlmIChyZXBlYXQgPT09ICduby1yZXBlYXQnKSB7XG4gICAgaWYgKHNob3VsZENsaXApIHtcbiAgICAgIGNvbnRleHQuc2F2ZSgpO1xuICAgICAgaWYgKHJzLnBhdGhDYWNoZSkge1xuICAgICAgICBjb250ZXh0LmNsaXAocnMucGF0aENhY2hlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHIubm9kZVNoYXBlc1tyLmdldE5vZGVTaGFwZShub2RlKV0uZHJhdyhjb250ZXh0LCBub2RlWCwgbm9kZVksIG5vZGVUVywgbm9kZVRILCBjb3JuZXJSYWRpdXMsIHJzKTtcbiAgICAgICAgY29udGV4dC5jbGlwKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHIuc2FmZURyYXdJbWFnZShjb250ZXh0LCBpbWcsIDAsIDAsIGltZ1csIGltZ0gsIHgsIHksIHcsIGgpO1xuICAgIGlmIChzaG91bGRDbGlwKSB7XG4gICAgICBjb250ZXh0LnJlc3RvcmUoKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIHBhdHRlcm4gPSBjb250ZXh0LmNyZWF0ZVBhdHRlcm4oaW1nLCByZXBlYXQpO1xuICAgIGNvbnRleHQuZmlsbFN0eWxlID0gcGF0dGVybjtcbiAgICByLm5vZGVTaGFwZXNbci5nZXROb2RlU2hhcGUobm9kZSldLmRyYXcoY29udGV4dCwgbm9kZVgsIG5vZGVZLCBub2RlVFcsIG5vZGVUSCwgY29ybmVyUmFkaXVzLCBycyk7XG4gICAgY29udGV4dC50cmFuc2xhdGUoeCwgeSk7XG4gICAgY29udGV4dC5maWxsKCk7XG4gICAgY29udGV4dC50cmFuc2xhdGUoLXgsIC15KTtcbiAgfVxuICBjb250ZXh0Lmdsb2JhbEFscGhhID0gZ0FscGhhO1xuICBpZiAoaXNTbW9vdGhpbmdTd2l0Y2hlZCkge1xuICAgIHIuc2V0SW1nU21vb3RoaW5nKGNvbnRleHQsIHNtb290aGluZ0VuYWJsZWQpO1xuICB9XG59O1xuXG52YXIgQ1JwJDYgPSB7fTtcbkNScCQ2LmVsZVRleHRCaWdnZXJUaGFuTWluID0gZnVuY3Rpb24gKGVsZSwgc2NhbGUpIHtcbiAgaWYgKCFzY2FsZSkge1xuICAgIHZhciB6b29tID0gZWxlLmN5KCkuem9vbSgpO1xuICAgIHZhciBweFJhdGlvID0gdGhpcy5nZXRQaXhlbFJhdGlvKCk7XG4gICAgdmFyIGx2bCA9IE1hdGguY2VpbChsb2cyKHpvb20gKiBweFJhdGlvKSk7IC8vIHRoZSBlZmZlY3RpdmUgdGV4dHVyZSBsZXZlbFxuXG4gICAgc2NhbGUgPSBNYXRoLnBvdygyLCBsdmwpO1xuICB9XG4gIHZhciBjb21wdXRlZFNpemUgPSBlbGUucHN0eWxlKCdmb250LXNpemUnKS5wZlZhbHVlICogc2NhbGU7XG4gIHZhciBtaW5TaXplID0gZWxlLnBzdHlsZSgnbWluLXpvb21lZC1mb250LXNpemUnKS5wZlZhbHVlO1xuICBpZiAoY29tcHV0ZWRTaXplIDwgbWluU2l6ZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG5DUnAkNi5kcmF3RWxlbWVudFRleHQgPSBmdW5jdGlvbiAoY29udGV4dCwgZWxlLCBzaGlmdFRvT3JpZ2luV2l0aEJiLCBmb3JjZSwgcHJlZml4KSB7XG4gIHZhciB1c2VFbGVPcGFjaXR5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiB0cnVlO1xuICB2YXIgciA9IHRoaXM7XG4gIGlmIChmb3JjZSA9PSBudWxsKSB7XG4gICAgaWYgKHVzZUVsZU9wYWNpdHkgJiYgIXIuZWxlVGV4dEJpZ2dlclRoYW5NaW4oZWxlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfSBlbHNlIGlmIChmb3JjZSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGVsZS5pc05vZGUoKSkge1xuICAgIHZhciBsYWJlbCA9IGVsZS5wc3R5bGUoJ2xhYmVsJyk7XG4gICAgaWYgKCFsYWJlbCB8fCAhbGFiZWwudmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGp1c3RpZmljYXRpb24gPSByLmdldExhYmVsSnVzdGlmaWNhdGlvbihlbGUpO1xuICAgIGNvbnRleHQudGV4dEFsaWduID0ganVzdGlmaWNhdGlvbjtcbiAgICBjb250ZXh0LnRleHRCYXNlbGluZSA9ICdib3R0b20nO1xuICB9IGVsc2Uge1xuICAgIHZhciBiYWRMaW5lID0gZWxlLmVsZW1lbnQoKS5fcHJpdmF0ZS5yc2NyYXRjaC5iYWRMaW5lO1xuICAgIHZhciBfbGFiZWwgPSBlbGUucHN0eWxlKCdsYWJlbCcpO1xuICAgIHZhciBzcmNMYWJlbCA9IGVsZS5wc3R5bGUoJ3NvdXJjZS1sYWJlbCcpO1xuICAgIHZhciB0Z3RMYWJlbCA9IGVsZS5wc3R5bGUoJ3RhcmdldC1sYWJlbCcpO1xuICAgIGlmIChiYWRMaW5lIHx8ICghX2xhYmVsIHx8ICFfbGFiZWwudmFsdWUpICYmICghc3JjTGFiZWwgfHwgIXNyY0xhYmVsLnZhbHVlKSAmJiAoIXRndExhYmVsIHx8ICF0Z3RMYWJlbC52YWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29udGV4dC50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICBjb250ZXh0LnRleHRCYXNlbGluZSA9ICdib3R0b20nO1xuICB9XG4gIHZhciBhcHBseVJvdGF0aW9uID0gIXNoaWZ0VG9PcmlnaW5XaXRoQmI7XG4gIHZhciBiYjtcbiAgaWYgKHNoaWZ0VG9PcmlnaW5XaXRoQmIpIHtcbiAgICBiYiA9IHNoaWZ0VG9PcmlnaW5XaXRoQmI7XG4gICAgY29udGV4dC50cmFuc2xhdGUoLWJiLngxLCAtYmIueTEpO1xuICB9XG4gIGlmIChwcmVmaXggPT0gbnVsbCkge1xuICAgIHIuZHJhd1RleHQoY29udGV4dCwgZWxlLCBudWxsLCBhcHBseVJvdGF0aW9uLCB1c2VFbGVPcGFjaXR5KTtcbiAgICBpZiAoZWxlLmlzRWRnZSgpKSB7XG4gICAgICByLmRyYXdUZXh0KGNvbnRleHQsIGVsZSwgJ3NvdXJjZScsIGFwcGx5Um90YXRpb24sIHVzZUVsZU9wYWNpdHkpO1xuICAgICAgci5kcmF3VGV4dChjb250ZXh0LCBlbGUsICd0YXJnZXQnLCBhcHBseVJvdGF0aW9uLCB1c2VFbGVPcGFjaXR5KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgci5kcmF3VGV4dChjb250ZXh0LCBlbGUsIHByZWZpeCwgYXBwbHlSb3RhdGlvbiwgdXNlRWxlT3BhY2l0eSk7XG4gIH1cbiAgaWYgKHNoaWZ0VG9PcmlnaW5XaXRoQmIpIHtcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShiYi54MSwgYmIueTEpO1xuICB9XG59O1xuQ1JwJDYuZ2V0Rm9udENhY2hlID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgdmFyIGNhY2hlO1xuICB0aGlzLmZvbnRDYWNoZXMgPSB0aGlzLmZvbnRDYWNoZXMgfHwgW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5mb250Q2FjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgY2FjaGUgPSB0aGlzLmZvbnRDYWNoZXNbaV07XG4gICAgaWYgKGNhY2hlLmNvbnRleHQgPT09IGNvbnRleHQpIHtcbiAgICAgIHJldHVybiBjYWNoZTtcbiAgICB9XG4gIH1cbiAgY2FjaGUgPSB7XG4gICAgY29udGV4dDogY29udGV4dFxuICB9O1xuICB0aGlzLmZvbnRDYWNoZXMucHVzaChjYWNoZSk7XG4gIHJldHVybiBjYWNoZTtcbn07XG5cbi8vIHNldCB1cCBjYW52YXMgY29udGV4dCB3aXRoIGZvbnRcbi8vIHJldHVybnMgdHJhbnNmb3JtZWQgdGV4dCBzdHJpbmdcbkNScCQ2LnNldHVwVGV4dFN0eWxlID0gZnVuY3Rpb24gKGNvbnRleHQsIGVsZSkge1xuICB2YXIgdXNlRWxlT3BhY2l0eSA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogdHJ1ZTtcbiAgLy8gRm9udCBzdHlsZVxuICB2YXIgbGFiZWxTdHlsZSA9IGVsZS5wc3R5bGUoJ2ZvbnQtc3R5bGUnKS5zdHJWYWx1ZTtcbiAgdmFyIGxhYmVsU2l6ZSA9IGVsZS5wc3R5bGUoJ2ZvbnQtc2l6ZScpLnBmVmFsdWUgKyAncHgnO1xuICB2YXIgbGFiZWxGYW1pbHkgPSBlbGUucHN0eWxlKCdmb250LWZhbWlseScpLnN0clZhbHVlO1xuICB2YXIgbGFiZWxXZWlnaHQgPSBlbGUucHN0eWxlKCdmb250LXdlaWdodCcpLnN0clZhbHVlO1xuICB2YXIgb3BhY2l0eSA9IHVzZUVsZU9wYWNpdHkgPyBlbGUuZWZmZWN0aXZlT3BhY2l0eSgpICogZWxlLnBzdHlsZSgndGV4dC1vcGFjaXR5JykudmFsdWUgOiAxO1xuICB2YXIgb3V0bGluZU9wYWNpdHkgPSBlbGUucHN0eWxlKCd0ZXh0LW91dGxpbmUtb3BhY2l0eScpLnZhbHVlICogb3BhY2l0eTtcbiAgdmFyIGNvbG9yID0gZWxlLnBzdHlsZSgnY29sb3InKS52YWx1ZTtcbiAgdmFyIG91dGxpbmVDb2xvciA9IGVsZS5wc3R5bGUoJ3RleHQtb3V0bGluZS1jb2xvcicpLnZhbHVlO1xuICBjb250ZXh0LmZvbnQgPSBsYWJlbFN0eWxlICsgJyAnICsgbGFiZWxXZWlnaHQgKyAnICcgKyBsYWJlbFNpemUgKyAnICcgKyBsYWJlbEZhbWlseTtcbiAgY29udGV4dC5saW5lSm9pbiA9ICdyb3VuZCc7IC8vIHNvIHRleHQgb3V0bGluZXMgYXJlbid0IGphZ2dlZFxuXG4gIHRoaXMuY29sb3JGaWxsU3R5bGUoY29udGV4dCwgY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsyXSwgb3BhY2l0eSk7XG4gIHRoaXMuY29sb3JTdHJva2VTdHlsZShjb250ZXh0LCBvdXRsaW5lQ29sb3JbMF0sIG91dGxpbmVDb2xvclsxXSwgb3V0bGluZUNvbG9yWzJdLCBvdXRsaW5lT3BhY2l0eSk7XG59O1xuXG4vLyBUT0RPIGVuc3VyZSByZS11c2VkXG5mdW5jdGlvbiByb3VuZFJlY3QoY3R4LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XG4gIHZhciByYWRpdXMgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IDU7XG4gIHZhciBzdHJva2UgPSBhcmd1bWVudHMubGVuZ3RoID4gNiA/IGFyZ3VtZW50c1s2XSA6IHVuZGVmaW5lZDtcbiAgY3R4LmJlZ2luUGF0aCgpO1xuICBjdHgubW92ZVRvKHggKyByYWRpdXMsIHkpO1xuICBjdHgubGluZVRvKHggKyB3aWR0aCAtIHJhZGl1cywgeSk7XG4gIGN0eC5xdWFkcmF0aWNDdXJ2ZVRvKHggKyB3aWR0aCwgeSwgeCArIHdpZHRoLCB5ICsgcmFkaXVzKTtcbiAgY3R4LmxpbmVUbyh4ICsgd2lkdGgsIHkgKyBoZWlnaHQgLSByYWRpdXMpO1xuICBjdHgucXVhZHJhdGljQ3VydmVUbyh4ICsgd2lkdGgsIHkgKyBoZWlnaHQsIHggKyB3aWR0aCAtIHJhZGl1cywgeSArIGhlaWdodCk7XG4gIGN0eC5saW5lVG8oeCArIHJhZGl1cywgeSArIGhlaWdodCk7XG4gIGN0eC5xdWFkcmF0aWNDdXJ2ZVRvKHgsIHkgKyBoZWlnaHQsIHgsIHkgKyBoZWlnaHQgLSByYWRpdXMpO1xuICBjdHgubGluZVRvKHgsIHkgKyByYWRpdXMpO1xuICBjdHgucXVhZHJhdGljQ3VydmVUbyh4LCB5LCB4ICsgcmFkaXVzLCB5KTtcbiAgY3R4LmNsb3NlUGF0aCgpO1xuICBpZiAoc3Ryb2tlKSBjdHguc3Ryb2tlKCk7ZWxzZSBjdHguZmlsbCgpO1xufVxuQ1JwJDYuZ2V0VGV4dEFuZ2xlID0gZnVuY3Rpb24gKGVsZSwgcHJlZml4KSB7XG4gIHZhciB0aGV0YTtcbiAgdmFyIF9wID0gZWxlLl9wcml2YXRlO1xuICB2YXIgcnNjcmF0Y2ggPSBfcC5yc2NyYXRjaDtcbiAgdmFyIHBkYXNoID0gcHJlZml4ID8gcHJlZml4ICsgJy0nIDogJyc7XG4gIHZhciByb3RhdGlvbiA9IGVsZS5wc3R5bGUocGRhc2ggKyAndGV4dC1yb3RhdGlvbicpO1xuICB2YXIgdGV4dEFuZ2xlID0gZ2V0UHJlZml4ZWRQcm9wZXJ0eShyc2NyYXRjaCwgJ2xhYmVsQW5nbGUnLCBwcmVmaXgpO1xuICBpZiAocm90YXRpb24uc3RyVmFsdWUgPT09ICdhdXRvcm90YXRlJykge1xuICAgIHRoZXRhID0gZWxlLmlzRWRnZSgpID8gdGV4dEFuZ2xlIDogMDtcbiAgfSBlbHNlIGlmIChyb3RhdGlvbi5zdHJWYWx1ZSA9PT0gJ25vbmUnKSB7XG4gICAgdGhldGEgPSAwO1xuICB9IGVsc2Uge1xuICAgIHRoZXRhID0gcm90YXRpb24ucGZWYWx1ZTtcbiAgfVxuICByZXR1cm4gdGhldGE7XG59O1xuQ1JwJDYuZHJhd1RleHQgPSBmdW5jdGlvbiAoY29udGV4dCwgZWxlLCBwcmVmaXgpIHtcbiAgdmFyIGFwcGx5Um90YXRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHRydWU7XG4gIHZhciB1c2VFbGVPcGFjaXR5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiB0cnVlO1xuICB2YXIgX3AgPSBlbGUuX3ByaXZhdGU7XG4gIHZhciByc2NyYXRjaCA9IF9wLnJzY3JhdGNoO1xuICB2YXIgcGFyZW50T3BhY2l0eSA9IHVzZUVsZU9wYWNpdHkgPyBlbGUuZWZmZWN0aXZlT3BhY2l0eSgpIDogMTtcbiAgaWYgKHVzZUVsZU9wYWNpdHkgJiYgKHBhcmVudE9wYWNpdHkgPT09IDAgfHwgZWxlLnBzdHlsZSgndGV4dC1vcGFjaXR5JykudmFsdWUgPT09IDApKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gdXNlICdtYWluJyBhcyBhbiBhbGlhcyBmb3IgdGhlIG1haW4gbGFiZWwgKGkuZS4gbnVsbCBwcmVmaXgpXG4gIGlmIChwcmVmaXggPT09ICdtYWluJykge1xuICAgIHByZWZpeCA9IG51bGw7XG4gIH1cbiAgdmFyIHRleHRYID0gZ2V0UHJlZml4ZWRQcm9wZXJ0eShyc2NyYXRjaCwgJ2xhYmVsWCcsIHByZWZpeCk7XG4gIHZhciB0ZXh0WSA9IGdldFByZWZpeGVkUHJvcGVydHkocnNjcmF0Y2gsICdsYWJlbFknLCBwcmVmaXgpO1xuICB2YXIgb3JnVGV4dFgsIG9yZ1RleHRZOyAvLyB1c2VkIGZvciByb3RhdGlvblxuICB2YXIgdGV4dCA9IHRoaXMuZ2V0TGFiZWxUZXh0KGVsZSwgcHJlZml4KTtcbiAgaWYgKHRleHQgIT0gbnVsbCAmJiB0ZXh0ICE9PSAnJyAmJiAhaXNOYU4odGV4dFgpICYmICFpc05hTih0ZXh0WSkpIHtcbiAgICB0aGlzLnNldHVwVGV4dFN0eWxlKGNvbnRleHQsIGVsZSwgdXNlRWxlT3BhY2l0eSk7XG4gICAgdmFyIHBkYXNoID0gcHJlZml4ID8gcHJlZml4ICsgJy0nIDogJyc7XG4gICAgdmFyIHRleHRXID0gZ2V0UHJlZml4ZWRQcm9wZXJ0eShyc2NyYXRjaCwgJ2xhYmVsV2lkdGgnLCBwcmVmaXgpO1xuICAgIHZhciB0ZXh0SCA9IGdldFByZWZpeGVkUHJvcGVydHkocnNjcmF0Y2gsICdsYWJlbEhlaWdodCcsIHByZWZpeCk7XG4gICAgdmFyIG1hcmdpblggPSBlbGUucHN0eWxlKHBkYXNoICsgJ3RleHQtbWFyZ2luLXgnKS5wZlZhbHVlO1xuICAgIHZhciBtYXJnaW5ZID0gZWxlLnBzdHlsZShwZGFzaCArICd0ZXh0LW1hcmdpbi15JykucGZWYWx1ZTtcbiAgICB2YXIgaXNFZGdlID0gZWxlLmlzRWRnZSgpO1xuICAgIHZhciBoYWxpZ24gPSBlbGUucHN0eWxlKCd0ZXh0LWhhbGlnbicpLnZhbHVlO1xuICAgIHZhciB2YWxpZ24gPSBlbGUucHN0eWxlKCd0ZXh0LXZhbGlnbicpLnZhbHVlO1xuICAgIGlmIChpc0VkZ2UpIHtcbiAgICAgIGhhbGlnbiA9ICdjZW50ZXInO1xuICAgICAgdmFsaWduID0gJ2NlbnRlcic7XG4gICAgfVxuICAgIHRleHRYICs9IG1hcmdpblg7XG4gICAgdGV4dFkgKz0gbWFyZ2luWTtcbiAgICB2YXIgdGhldGE7XG4gICAgaWYgKCFhcHBseVJvdGF0aW9uKSB7XG4gICAgICB0aGV0YSA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoZXRhID0gdGhpcy5nZXRUZXh0QW5nbGUoZWxlLCBwcmVmaXgpO1xuICAgIH1cbiAgICBpZiAodGhldGEgIT09IDApIHtcbiAgICAgIG9yZ1RleHRYID0gdGV4dFg7XG4gICAgICBvcmdUZXh0WSA9IHRleHRZO1xuICAgICAgY29udGV4dC50cmFuc2xhdGUob3JnVGV4dFgsIG9yZ1RleHRZKTtcbiAgICAgIGNvbnRleHQucm90YXRlKHRoZXRhKTtcbiAgICAgIHRleHRYID0gMDtcbiAgICAgIHRleHRZID0gMDtcbiAgICB9XG4gICAgc3dpdGNoICh2YWxpZ24pIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgdGV4dFkgKz0gdGV4dEggLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIHRleHRZICs9IHRleHRIO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdmFyIGJhY2tncm91bmRPcGFjaXR5ID0gZWxlLnBzdHlsZSgndGV4dC1iYWNrZ3JvdW5kLW9wYWNpdHknKS52YWx1ZTtcbiAgICB2YXIgYm9yZGVyT3BhY2l0eSA9IGVsZS5wc3R5bGUoJ3RleHQtYm9yZGVyLW9wYWNpdHknKS52YWx1ZTtcbiAgICB2YXIgdGV4dEJvcmRlcldpZHRoID0gZWxlLnBzdHlsZSgndGV4dC1ib3JkZXItd2lkdGgnKS5wZlZhbHVlO1xuICAgIHZhciBiYWNrZ3JvdW5kUGFkZGluZyA9IGVsZS5wc3R5bGUoJ3RleHQtYmFja2dyb3VuZC1wYWRkaW5nJykucGZWYWx1ZTtcbiAgICB2YXIgc3R5bGVTaGFwZSA9IGVsZS5wc3R5bGUoJ3RleHQtYmFja2dyb3VuZC1zaGFwZScpLnN0clZhbHVlO1xuICAgIHZhciByb3VuZGVkID0gc3R5bGVTaGFwZS5pbmRleE9mKCdyb3VuZCcpID09PSAwO1xuICAgIHZhciByb3VuZFJhZGl1cyA9IDI7XG4gICAgaWYgKGJhY2tncm91bmRPcGFjaXR5ID4gMCB8fCB0ZXh0Qm9yZGVyV2lkdGggPiAwICYmIGJvcmRlck9wYWNpdHkgPiAwKSB7XG4gICAgICB2YXIgYmdYID0gdGV4dFggLSBiYWNrZ3JvdW5kUGFkZGluZztcbiAgICAgIHN3aXRjaCAoaGFsaWduKSB7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGJnWCAtPSB0ZXh0VztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICBiZ1ggLT0gdGV4dFcgLyAyO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdmFyIGJnWSA9IHRleHRZIC0gdGV4dEggLSBiYWNrZ3JvdW5kUGFkZGluZztcbiAgICAgIHZhciBiZ1cgPSB0ZXh0VyArIDIgKiBiYWNrZ3JvdW5kUGFkZGluZztcbiAgICAgIHZhciBiZ0ggPSB0ZXh0SCArIDIgKiBiYWNrZ3JvdW5kUGFkZGluZztcbiAgICAgIGlmIChiYWNrZ3JvdW5kT3BhY2l0eSA+IDApIHtcbiAgICAgICAgdmFyIHRleHRGaWxsID0gY29udGV4dC5maWxsU3R5bGU7XG4gICAgICAgIHZhciB0ZXh0QmFja2dyb3VuZENvbG9yID0gZWxlLnBzdHlsZSgndGV4dC1iYWNrZ3JvdW5kLWNvbG9yJykudmFsdWU7XG4gICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoJyArIHRleHRCYWNrZ3JvdW5kQ29sb3JbMF0gKyAnLCcgKyB0ZXh0QmFja2dyb3VuZENvbG9yWzFdICsgJywnICsgdGV4dEJhY2tncm91bmRDb2xvclsyXSArICcsJyArIGJhY2tncm91bmRPcGFjaXR5ICogcGFyZW50T3BhY2l0eSArICcpJztcbiAgICAgICAgaWYgKHJvdW5kZWQpIHtcbiAgICAgICAgICByb3VuZFJlY3QoY29udGV4dCwgYmdYLCBiZ1ksIGJnVywgYmdILCByb3VuZFJhZGl1cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGV4dC5maWxsUmVjdChiZ1gsIGJnWSwgYmdXLCBiZ0gpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gdGV4dEZpbGw7XG4gICAgICB9XG4gICAgICBpZiAodGV4dEJvcmRlcldpZHRoID4gMCAmJiBib3JkZXJPcGFjaXR5ID4gMCkge1xuICAgICAgICB2YXIgdGV4dFN0cm9rZSA9IGNvbnRleHQuc3Ryb2tlU3R5bGU7XG4gICAgICAgIHZhciB0ZXh0TGluZVdpZHRoID0gY29udGV4dC5saW5lV2lkdGg7XG4gICAgICAgIHZhciB0ZXh0Qm9yZGVyQ29sb3IgPSBlbGUucHN0eWxlKCd0ZXh0LWJvcmRlci1jb2xvcicpLnZhbHVlO1xuICAgICAgICB2YXIgdGV4dEJvcmRlclN0eWxlID0gZWxlLnBzdHlsZSgndGV4dC1ib3JkZXItc3R5bGUnKS52YWx1ZTtcbiAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9ICdyZ2JhKCcgKyB0ZXh0Qm9yZGVyQ29sb3JbMF0gKyAnLCcgKyB0ZXh0Qm9yZGVyQ29sb3JbMV0gKyAnLCcgKyB0ZXh0Qm9yZGVyQ29sb3JbMl0gKyAnLCcgKyBib3JkZXJPcGFjaXR5ICogcGFyZW50T3BhY2l0eSArICcpJztcbiAgICAgICAgY29udGV4dC5saW5lV2lkdGggPSB0ZXh0Qm9yZGVyV2lkdGg7XG4gICAgICAgIGlmIChjb250ZXh0LnNldExpbmVEYXNoKSB7XG4gICAgICAgICAgLy8gZm9yIHZlcnkgb3V0b2ZkYXRlIGJyb3dzZXJzXG4gICAgICAgICAgc3dpdGNoICh0ZXh0Qm9yZGVyU3R5bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RvdHRlZCc6XG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goWzEsIDFdKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXNoZWQnOlxuICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVEYXNoKFs0LCAyXSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZG91YmxlJzpcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lV2lkdGggPSB0ZXh0Qm9yZGVyV2lkdGggLyA0OyAvLyA1MCUgcmVzZXJ2ZWQgZm9yIHdoaXRlIGJldHdlZW4gdGhlIHR3byBib3JkZXJzXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NvbGlkJzpcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocm91bmRlZCkge1xuICAgICAgICAgIHJvdW5kUmVjdChjb250ZXh0LCBiZ1gsIGJnWSwgYmdXLCBiZ0gsIHJvdW5kUmFkaXVzLCAnc3Ryb2tlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGV4dC5zdHJva2VSZWN0KGJnWCwgYmdZLCBiZ1csIGJnSCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRleHRCb3JkZXJTdHlsZSA9PT0gJ2RvdWJsZScpIHtcbiAgICAgICAgICB2YXIgd2hpdGVXaWR0aCA9IHRleHRCb3JkZXJXaWR0aCAvIDI7XG4gICAgICAgICAgaWYgKHJvdW5kZWQpIHtcbiAgICAgICAgICAgIHJvdW5kUmVjdChjb250ZXh0LCBiZ1ggKyB3aGl0ZVdpZHRoLCBiZ1kgKyB3aGl0ZVdpZHRoLCBiZ1cgLSB3aGl0ZVdpZHRoICogMiwgYmdIIC0gd2hpdGVXaWR0aCAqIDIsIHJvdW5kUmFkaXVzLCAnc3Ryb2tlJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlUmVjdChiZ1ggKyB3aGl0ZVdpZHRoLCBiZ1kgKyB3aGl0ZVdpZHRoLCBiZ1cgLSB3aGl0ZVdpZHRoICogMiwgYmdIIC0gd2hpdGVXaWR0aCAqIDIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY29udGV4dC5zZXRMaW5lRGFzaCkge1xuICAgICAgICAgIC8vIGZvciB2ZXJ5IG91dG9mZGF0ZSBicm93c2Vyc1xuICAgICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQubGluZVdpZHRoID0gdGV4dExpbmVXaWR0aDtcbiAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IHRleHRTdHJva2U7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBsaW5lV2lkdGggPSAyICogZWxlLnBzdHlsZSgndGV4dC1vdXRsaW5lLXdpZHRoJykucGZWYWx1ZTsgLy8gKjIgYi9jIHRoZSBzdHJva2UgaXMgZHJhd24gY2VudHJlZCBvbiB0aGUgbWlkZGxlXG5cbiAgICBpZiAobGluZVdpZHRoID4gMCkge1xuICAgICAgY29udGV4dC5saW5lV2lkdGggPSBsaW5lV2lkdGg7XG4gICAgfVxuICAgIGlmIChlbGUucHN0eWxlKCd0ZXh0LXdyYXAnKS52YWx1ZSA9PT0gJ3dyYXAnKSB7XG4gICAgICB2YXIgbGluZXMgPSBnZXRQcmVmaXhlZFByb3BlcnR5KHJzY3JhdGNoLCAnbGFiZWxXcmFwQ2FjaGVkTGluZXMnLCBwcmVmaXgpO1xuICAgICAgdmFyIGxpbmVIZWlnaHQgPSBnZXRQcmVmaXhlZFByb3BlcnR5KHJzY3JhdGNoLCAnbGFiZWxMaW5lSGVpZ2h0JywgcHJlZml4KTtcbiAgICAgIHZhciBoYWxmVGV4dFcgPSB0ZXh0VyAvIDI7XG4gICAgICB2YXIganVzdGlmaWNhdGlvbiA9IHRoaXMuZ2V0TGFiZWxKdXN0aWZpY2F0aW9uKGVsZSk7XG4gICAgICBpZiAoanVzdGlmaWNhdGlvbiA9PT0gJ2F1dG8nKSA7IGVsc2UgaWYgKGhhbGlnbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIC8vIGF1dG8ganVzdGlmaWNhdGlvbiA6IHJpZ2h0XG4gICAgICAgIGlmIChqdXN0aWZpY2F0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgICB0ZXh0WCArPSAtdGV4dFc7XG4gICAgICAgIH0gZWxzZSBpZiAoanVzdGlmaWNhdGlvbiA9PT0gJ2NlbnRlcicpIHtcbiAgICAgICAgICB0ZXh0WCArPSAtaGFsZlRleHRXO1xuICAgICAgICB9IC8vIGVsc2Ugc2FtZSBhcyBhdXRvXG4gICAgICB9IGVsc2UgaWYgKGhhbGlnbiA9PT0gJ2NlbnRlcicpIHtcbiAgICAgICAgLy8gYXV0byBqdXN0ZmljYXRpb24gOiBjZW50ZXJcbiAgICAgICAgaWYgKGp1c3RpZmljYXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICAgIHRleHRYICs9IC1oYWxmVGV4dFc7XG4gICAgICAgIH0gZWxzZSBpZiAoanVzdGlmaWNhdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgIHRleHRYICs9IGhhbGZUZXh0VztcbiAgICAgICAgfSAvLyBlbHNlIHNhbWUgYXMgYXV0b1xuICAgICAgfSBlbHNlIGlmIChoYWxpZ24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgLy8gYXV0byBqdXN0aWZpY2F0aW9uIDogbGVmdFxuICAgICAgICBpZiAoanVzdGlmaWNhdGlvbiA9PT0gJ2NlbnRlcicpIHtcbiAgICAgICAgICB0ZXh0WCArPSBoYWxmVGV4dFc7XG4gICAgICAgIH0gZWxzZSBpZiAoanVzdGlmaWNhdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgIHRleHRYICs9IHRleHRXO1xuICAgICAgICB9IC8vIGVsc2Ugc2FtZSBhcyBhdXRvXG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAodmFsaWduKSB7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgdGV4dFkgLT0gKGxpbmVzLmxlbmd0aCAtIDEpICogbGluZUhlaWdodDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICB0ZXh0WSAtPSAobGluZXMubGVuZ3RoIC0gMSkgKiBsaW5lSGVpZ2h0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgbCA9IDA7IGwgPCBsaW5lcy5sZW5ndGg7IGwrKykge1xuICAgICAgICBpZiAobGluZVdpZHRoID4gMCkge1xuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlVGV4dChsaW5lc1tsXSwgdGV4dFgsIHRleHRZKTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGxpbmVzW2xdLCB0ZXh0WCwgdGV4dFkpO1xuICAgICAgICB0ZXh0WSArPSBsaW5lSGVpZ2h0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobGluZVdpZHRoID4gMCkge1xuICAgICAgICBjb250ZXh0LnN0cm9rZVRleHQodGV4dCwgdGV4dFgsIHRleHRZKTtcbiAgICAgIH1cbiAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgdGV4dFgsIHRleHRZKTtcbiAgICB9XG4gICAgaWYgKHRoZXRhICE9PSAwKSB7XG4gICAgICBjb250ZXh0LnJvdGF0ZSgtdGhldGEpO1xuICAgICAgY29udGV4dC50cmFuc2xhdGUoLW9yZ1RleHRYLCAtb3JnVGV4dFkpO1xuICAgIH1cbiAgfVxufTtcblxuLyogZ2xvYmFsIFBhdGgyRCAqL1xudmFyIENScCQ1ID0ge307XG5DUnAkNS5kcmF3Tm9kZSA9IGZ1bmN0aW9uIChjb250ZXh0LCBub2RlLCBzaGlmdFRvT3JpZ2luV2l0aEJiKSB7XG4gIHZhciBkcmF3TGFiZWwgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHRydWU7XG4gIHZhciBzaG91bGREcmF3T3ZlcmxheSA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogdHJ1ZTtcbiAgdmFyIHNob3VsZERyYXdPcGFjaXR5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiB0cnVlO1xuICB2YXIgciA9IHRoaXM7XG4gIHZhciBub2RlV2lkdGgsIG5vZGVIZWlnaHQ7XG4gIHZhciBfcCA9IG5vZGUuX3ByaXZhdGU7XG4gIHZhciBycyA9IF9wLnJzY3JhdGNoO1xuICB2YXIgcG9zID0gbm9kZS5wb3NpdGlvbigpO1xuICBpZiAoIW51bWJlciQxKHBvcy54KSB8fCAhbnVtYmVyJDEocG9zLnkpKSB7XG4gICAgcmV0dXJuOyAvLyBjYW4ndCBkcmF3IG5vZGUgd2l0aCB1bmRlZmluZWQgcG9zaXRpb25cbiAgfVxuXG4gIGlmIChzaG91bGREcmF3T3BhY2l0eSAmJiAhbm9kZS52aXNpYmxlKCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIGVsZU9wYWNpdHkgPSBzaG91bGREcmF3T3BhY2l0eSA/IG5vZGUuZWZmZWN0aXZlT3BhY2l0eSgpIDogMTtcbiAgdmFyIHVzZVBhdGhzID0gci51c2VQYXRocygpO1xuICB2YXIgcGF0aDtcbiAgdmFyIHBhdGhDYWNoZUhpdCA9IGZhbHNlO1xuICB2YXIgcGFkZGluZyA9IG5vZGUucGFkZGluZygpO1xuICBub2RlV2lkdGggPSBub2RlLndpZHRoKCkgKyAyICogcGFkZGluZztcbiAgbm9kZUhlaWdodCA9IG5vZGUuaGVpZ2h0KCkgKyAyICogcGFkZGluZztcblxuICAvL1xuICAvLyBzZXR1cCBzaGlmdFxuXG4gIHZhciBiYjtcbiAgaWYgKHNoaWZ0VG9PcmlnaW5XaXRoQmIpIHtcbiAgICBiYiA9IHNoaWZ0VG9PcmlnaW5XaXRoQmI7XG4gICAgY29udGV4dC50cmFuc2xhdGUoLWJiLngxLCAtYmIueTEpO1xuICB9XG5cbiAgLy9cbiAgLy8gbG9hZCBiZyBpbWFnZVxuXG4gIHZhciBiZ0ltZ1Byb3AgPSBub2RlLnBzdHlsZSgnYmFja2dyb3VuZC1pbWFnZScpO1xuICB2YXIgdXJscyA9IGJnSW1nUHJvcC52YWx1ZTtcbiAgdmFyIHVybERlZmluZWQgPSBuZXcgQXJyYXkodXJscy5sZW5ndGgpO1xuICB2YXIgaW1hZ2UgPSBuZXcgQXJyYXkodXJscy5sZW5ndGgpO1xuICB2YXIgbnVtSW1hZ2VzID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB1cmxzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHVybCA9IHVybHNbaV07XG4gICAgdmFyIGRlZmQgPSB1cmxEZWZpbmVkW2ldID0gdXJsICE9IG51bGwgJiYgdXJsICE9PSAnbm9uZSc7XG4gICAgaWYgKGRlZmQpIHtcbiAgICAgIHZhciBiZ0ltZ0Nyb3NzT3JpZ2luID0gbm9kZS5jeSgpLnN0eWxlKCkuZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLWltYWdlLWNyb3Nzb3JpZ2luJywgJ3ZhbHVlJywgaSk7XG4gICAgICBudW1JbWFnZXMrKztcblxuICAgICAgLy8gZ2V0IGltYWdlLCBhbmQgaWYgbm90IGxvYWRlZCB0aGVuIGFzayB0byByZWRyYXcgd2hlbiBsYXRlciBsb2FkZWRcbiAgICAgIGltYWdlW2ldID0gci5nZXRDYWNoZWRJbWFnZSh1cmwsIGJnSW1nQ3Jvc3NPcmlnaW4sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3AuYmFja2dyb3VuZFRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgICAgIG5vZGUuZW1pdEFuZE5vdGlmeSgnYmFja2dyb3VuZCcpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gc2V0dXAgc3R5bGVzXG5cbiAgdmFyIGRhcmtuZXNzID0gbm9kZS5wc3R5bGUoJ2JhY2tncm91bmQtYmxhY2tlbicpLnZhbHVlO1xuICB2YXIgYm9yZGVyV2lkdGggPSBub2RlLnBzdHlsZSgnYm9yZGVyLXdpZHRoJykucGZWYWx1ZTtcbiAgdmFyIGJnT3BhY2l0eSA9IG5vZGUucHN0eWxlKCdiYWNrZ3JvdW5kLW9wYWNpdHknKS52YWx1ZSAqIGVsZU9wYWNpdHk7XG4gIHZhciBib3JkZXJDb2xvciA9IG5vZGUucHN0eWxlKCdib3JkZXItY29sb3InKS52YWx1ZTtcbiAgdmFyIGJvcmRlclN0eWxlID0gbm9kZS5wc3R5bGUoJ2JvcmRlci1zdHlsZScpLnZhbHVlO1xuICB2YXIgYm9yZGVySm9pbiA9IG5vZGUucHN0eWxlKCdib3JkZXItam9pbicpLnZhbHVlO1xuICB2YXIgYm9yZGVyQ2FwID0gbm9kZS5wc3R5bGUoJ2JvcmRlci1jYXAnKS52YWx1ZTtcbiAgdmFyIGJvcmRlclBvc2l0aW9uID0gbm9kZS5wc3R5bGUoJ2JvcmRlci1wb3NpdGlvbicpLnZhbHVlO1xuICB2YXIgYm9yZGVyUGF0dGVybiA9IG5vZGUucHN0eWxlKCdib3JkZXItZGFzaC1wYXR0ZXJuJykucGZWYWx1ZTtcbiAgdmFyIGJvcmRlck9mZnNldCA9IG5vZGUucHN0eWxlKCdib3JkZXItZGFzaC1vZmZzZXQnKS5wZlZhbHVlO1xuICB2YXIgYm9yZGVyT3BhY2l0eSA9IG5vZGUucHN0eWxlKCdib3JkZXItb3BhY2l0eScpLnZhbHVlICogZWxlT3BhY2l0eTtcbiAgdmFyIG91dGxpbmVXaWR0aCA9IG5vZGUucHN0eWxlKCdvdXRsaW5lLXdpZHRoJykucGZWYWx1ZTtcbiAgdmFyIG91dGxpbmVDb2xvciA9IG5vZGUucHN0eWxlKCdvdXRsaW5lLWNvbG9yJykudmFsdWU7XG4gIHZhciBvdXRsaW5lU3R5bGUgPSBub2RlLnBzdHlsZSgnb3V0bGluZS1zdHlsZScpLnZhbHVlO1xuICB2YXIgb3V0bGluZU9wYWNpdHkgPSBub2RlLnBzdHlsZSgnb3V0bGluZS1vcGFjaXR5JykudmFsdWUgKiBlbGVPcGFjaXR5O1xuICB2YXIgb3V0bGluZU9mZnNldCA9IG5vZGUucHN0eWxlKCdvdXRsaW5lLW9mZnNldCcpLnZhbHVlO1xuICB2YXIgY29ybmVyUmFkaXVzID0gbm9kZS5wc3R5bGUoJ2Nvcm5lci1yYWRpdXMnKS52YWx1ZTtcbiAgaWYgKGNvcm5lclJhZGl1cyAhPT0gJ2F1dG8nKSBjb3JuZXJSYWRpdXMgPSBub2RlLnBzdHlsZSgnY29ybmVyLXJhZGl1cycpLnBmVmFsdWU7XG4gIHZhciBzZXR1cFNoYXBlQ29sb3IgPSBmdW5jdGlvbiBzZXR1cFNoYXBlQ29sb3IoKSB7XG4gICAgdmFyIGJnT3B5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBiZ09wYWNpdHk7XG4gICAgci5lbGVGaWxsU3R5bGUoY29udGV4dCwgbm9kZSwgYmdPcHkpO1xuICB9O1xuICB2YXIgc2V0dXBCb3JkZXJDb2xvciA9IGZ1bmN0aW9uIHNldHVwQm9yZGVyQ29sb3IoKSB7XG4gICAgdmFyIGJkck9weSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogYm9yZGVyT3BhY2l0eTtcbiAgICByLmNvbG9yU3Ryb2tlU3R5bGUoY29udGV4dCwgYm9yZGVyQ29sb3JbMF0sIGJvcmRlckNvbG9yWzFdLCBib3JkZXJDb2xvclsyXSwgYmRyT3B5KTtcbiAgfTtcbiAgdmFyIHNldHVwT3V0bGluZUNvbG9yID0gZnVuY3Rpb24gc2V0dXBPdXRsaW5lQ29sb3IoKSB7XG4gICAgdmFyIG90bG5PcHkgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IG91dGxpbmVPcGFjaXR5O1xuICAgIHIuY29sb3JTdHJva2VTdHlsZShjb250ZXh0LCBvdXRsaW5lQ29sb3JbMF0sIG91dGxpbmVDb2xvclsxXSwgb3V0bGluZUNvbG9yWzJdLCBvdGxuT3B5KTtcbiAgfTtcblxuICAvL1xuICAvLyBzZXR1cCBzaGFwZVxuXG4gIHZhciBnZXRQYXRoID0gZnVuY3Rpb24gZ2V0UGF0aCh3aWR0aCwgaGVpZ2h0LCBzaGFwZSwgcG9pbnRzKSB7XG4gICAgdmFyIHBhdGhDYWNoZSA9IHIubm9kZVBhdGhDYWNoZSA9IHIubm9kZVBhdGhDYWNoZSB8fCBbXTtcbiAgICB2YXIga2V5ID0gaGFzaFN0cmluZ3Moc2hhcGUgPT09ICdwb2x5Z29uJyA/IHNoYXBlICsgJywnICsgcG9pbnRzLmpvaW4oJywnKSA6IHNoYXBlLCAnJyArIGhlaWdodCwgJycgKyB3aWR0aCwgJycgKyBjb3JuZXJSYWRpdXMpO1xuICAgIHZhciBjYWNoZWRQYXRoID0gcGF0aENhY2hlW2tleV07XG4gICAgdmFyIHBhdGg7XG4gICAgdmFyIGNhY2hlSGl0ID0gZmFsc2U7XG4gICAgaWYgKGNhY2hlZFBhdGggIT0gbnVsbCkge1xuICAgICAgcGF0aCA9IGNhY2hlZFBhdGg7XG4gICAgICBjYWNoZUhpdCA9IHRydWU7XG4gICAgICBycy5wYXRoQ2FjaGUgPSBwYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXRoID0gbmV3IFBhdGgyRCgpO1xuICAgICAgcGF0aENhY2hlW2tleV0gPSBycy5wYXRoQ2FjaGUgPSBwYXRoO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogcGF0aCxcbiAgICAgIGNhY2hlSGl0OiBjYWNoZUhpdFxuICAgIH07XG4gIH07XG4gIHZhciBzdHlsZVNoYXBlID0gbm9kZS5wc3R5bGUoJ3NoYXBlJykuc3RyVmFsdWU7XG4gIHZhciBzaGFwZVB0cyA9IG5vZGUucHN0eWxlKCdzaGFwZS1wb2x5Z29uLXBvaW50cycpLnBmVmFsdWU7XG4gIGlmICh1c2VQYXRocykge1xuICAgIGNvbnRleHQudHJhbnNsYXRlKHBvcy54LCBwb3MueSk7XG4gICAgdmFyIHNoYXBlUGF0aCA9IGdldFBhdGgobm9kZVdpZHRoLCBub2RlSGVpZ2h0LCBzdHlsZVNoYXBlLCBzaGFwZVB0cyk7XG4gICAgcGF0aCA9IHNoYXBlUGF0aC5wYXRoO1xuICAgIHBhdGhDYWNoZUhpdCA9IHNoYXBlUGF0aC5jYWNoZUhpdDtcbiAgfVxuICB2YXIgZHJhd1NoYXBlID0gZnVuY3Rpb24gZHJhd1NoYXBlKCkge1xuICAgIGlmICghcGF0aENhY2hlSGl0KSB7XG4gICAgICB2YXIgbnBvcyA9IHBvcztcbiAgICAgIGlmICh1c2VQYXRocykge1xuICAgICAgICBucG9zID0ge1xuICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgeTogMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgci5ub2RlU2hhcGVzW3IuZ2V0Tm9kZVNoYXBlKG5vZGUpXS5kcmF3KHBhdGggfHwgY29udGV4dCwgbnBvcy54LCBucG9zLnksIG5vZGVXaWR0aCwgbm9kZUhlaWdodCwgY29ybmVyUmFkaXVzLCBycyk7XG4gICAgfVxuICAgIGlmICh1c2VQYXRocykge1xuICAgICAgY29udGV4dC5maWxsKHBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmZpbGwoKTtcbiAgICB9XG4gIH07XG4gIHZhciBkcmF3SW1hZ2VzID0gZnVuY3Rpb24gZHJhd0ltYWdlcygpIHtcbiAgICB2YXIgbm9kZU9wYWNpdHkgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IGVsZU9wYWNpdHk7XG4gICAgdmFyIGluc2lkZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogdHJ1ZTtcbiAgICB2YXIgcHJldkJnaW5nID0gX3AuYmFja2dyb3VuZGluZztcbiAgICB2YXIgdG90YWxDb21wbGV0ZWQgPSAwO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBpbWFnZS5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBiZ0NvbnRhaW5tZW50ID0gbm9kZS5jeSgpLnN0eWxlKCkuZ2V0SW5kZXhlZFN0eWxlKG5vZGUsICdiYWNrZ3JvdW5kLWltYWdlLWNvbnRhaW5tZW50JywgJ3ZhbHVlJywgX2kpO1xuICAgICAgaWYgKGluc2lkZSAmJiBiZ0NvbnRhaW5tZW50ID09PSAnb3ZlcicgfHwgIWluc2lkZSAmJiBiZ0NvbnRhaW5tZW50ID09PSAnaW5zaWRlJykge1xuICAgICAgICB0b3RhbENvbXBsZXRlZCsrO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh1cmxEZWZpbmVkW19pXSAmJiBpbWFnZVtfaV0uY29tcGxldGUgJiYgIWltYWdlW19pXS5lcnJvcikge1xuICAgICAgICB0b3RhbENvbXBsZXRlZCsrO1xuICAgICAgICByLmRyYXdJbnNjcmliZWRJbWFnZShjb250ZXh0LCBpbWFnZVtfaV0sIG5vZGUsIF9pLCBub2RlT3BhY2l0eSk7XG4gICAgICB9XG4gICAgfVxuICAgIF9wLmJhY2tncm91bmRpbmcgPSAhKHRvdGFsQ29tcGxldGVkID09PSBudW1JbWFnZXMpO1xuICAgIGlmIChwcmV2QmdpbmcgIT09IF9wLmJhY2tncm91bmRpbmcpIHtcbiAgICAgIC8vIHVwZGF0ZSBzdHlsZSBiL2MgOmJhY2tncm91bmRpbmcgc3RhdGUgY2hhbmdlZFxuICAgICAgbm9kZS51cGRhdGVTdHlsZShmYWxzZSk7XG4gICAgfVxuICB9O1xuICB2YXIgZHJhd1BpZSA9IGZ1bmN0aW9uIGRyYXdQaWUoKSB7XG4gICAgdmFyIHJlZHJhd1NoYXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBmYWxzZTtcbiAgICB2YXIgcGllT3BhY2l0eSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogZWxlT3BhY2l0eTtcbiAgICBpZiAoci5oYXNQaWUobm9kZSkpIHtcbiAgICAgIHIuZHJhd1BpZShjb250ZXh0LCBub2RlLCBwaWVPcGFjaXR5KTtcblxuICAgICAgLy8gcmVkcmF3L3Jlc3RvcmUgcGF0aCBpZiBzdGVwcyBhZnRlciBwaWUgbmVlZCBpdFxuICAgICAgaWYgKHJlZHJhd1NoYXBlKSB7XG4gICAgICAgIGlmICghdXNlUGF0aHMpIHtcbiAgICAgICAgICByLm5vZGVTaGFwZXNbci5nZXROb2RlU2hhcGUobm9kZSldLmRyYXcoY29udGV4dCwgcG9zLngsIHBvcy55LCBub2RlV2lkdGgsIG5vZGVIZWlnaHQsIGNvcm5lclJhZGl1cywgcnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuICB2YXIgZGFya2VuID0gZnVuY3Rpb24gZGFya2VuKCkge1xuICAgIHZhciBkYXJrZW5PcGFjaXR5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBlbGVPcGFjaXR5O1xuICAgIHZhciBvcGFjaXR5ID0gKGRhcmtuZXNzID4gMCA/IGRhcmtuZXNzIDogLWRhcmtuZXNzKSAqIGRhcmtlbk9wYWNpdHk7XG4gICAgdmFyIGMgPSBkYXJrbmVzcyA+IDAgPyAwIDogMjU1O1xuICAgIGlmIChkYXJrbmVzcyAhPT0gMCkge1xuICAgICAgci5jb2xvckZpbGxTdHlsZShjb250ZXh0LCBjLCBjLCBjLCBvcGFjaXR5KTtcbiAgICAgIGlmICh1c2VQYXRocykge1xuICAgICAgICBjb250ZXh0LmZpbGwocGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZXh0LmZpbGwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHZhciBkcmF3Qm9yZGVyID0gZnVuY3Rpb24gZHJhd0JvcmRlcigpIHtcbiAgICBpZiAoYm9yZGVyV2lkdGggPiAwKSB7XG4gICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IGJvcmRlcldpZHRoO1xuICAgICAgY29udGV4dC5saW5lQ2FwID0gYm9yZGVyQ2FwO1xuICAgICAgY29udGV4dC5saW5lSm9pbiA9IGJvcmRlckpvaW47XG4gICAgICBpZiAoY29udGV4dC5zZXRMaW5lRGFzaCkge1xuICAgICAgICAvLyBmb3IgdmVyeSBvdXRvZmRhdGUgYnJvd3NlcnNcbiAgICAgICAgc3dpdGNoIChib3JkZXJTdHlsZSkge1xuICAgICAgICAgIGNhc2UgJ2RvdHRlZCc6XG4gICAgICAgICAgICBjb250ZXh0LnNldExpbmVEYXNoKFsxLCAxXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdkYXNoZWQnOlxuICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChib3JkZXJQYXR0ZXJuKTtcbiAgICAgICAgICAgIGNvbnRleHQubGluZURhc2hPZmZzZXQgPSBib3JkZXJPZmZzZXQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdzb2xpZCc6XG4gICAgICAgICAgY2FzZSAnZG91YmxlJzpcbiAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChib3JkZXJQb3NpdGlvbiAhPT0gJ2NlbnRlcicpIHtcbiAgICAgICAgY29udGV4dC5zYXZlKCk7XG4gICAgICAgIGNvbnRleHQubGluZVdpZHRoICo9IDI7XG4gICAgICAgIGlmIChib3JkZXJQb3NpdGlvbiA9PT0gJ2luc2lkZScpIHtcbiAgICAgICAgICB1c2VQYXRocyA/IGNvbnRleHQuY2xpcChwYXRoKSA6IGNvbnRleHQuY2xpcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciByZWdpb24gPSBuZXcgUGF0aDJEKCk7XG4gICAgICAgICAgcmVnaW9uLnJlY3QoLW5vZGVXaWR0aCAvIDIgLSBib3JkZXJXaWR0aCwgLW5vZGVIZWlnaHQgLyAyIC0gYm9yZGVyV2lkdGgsIG5vZGVXaWR0aCArIDIgKiBib3JkZXJXaWR0aCwgbm9kZUhlaWdodCArIDIgKiBib3JkZXJXaWR0aCk7XG4gICAgICAgICAgcmVnaW9uLmFkZFBhdGgocGF0aCk7XG4gICAgICAgICAgY29udGV4dC5jbGlwKHJlZ2lvbiwgJ2V2ZW5vZGQnKTtcbiAgICAgICAgfVxuICAgICAgICB1c2VQYXRocyA/IGNvbnRleHQuc3Ryb2tlKHBhdGgpIDogY29udGV4dC5zdHJva2UoKTtcbiAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1c2VQYXRocyA/IGNvbnRleHQuc3Ryb2tlKHBhdGgpIDogY29udGV4dC5zdHJva2UoKTtcbiAgICAgIH1cbiAgICAgIGlmIChib3JkZXJTdHlsZSA9PT0gJ2RvdWJsZScpIHtcbiAgICAgICAgY29udGV4dC5saW5lV2lkdGggPSBib3JkZXJXaWR0aCAvIDM7XG4gICAgICAgIHZhciBnY28gPSBjb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbjtcbiAgICAgICAgY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSAnZGVzdGluYXRpb24tb3V0JztcbiAgICAgICAgaWYgKHVzZVBhdGhzKSB7XG4gICAgICAgICAgY29udGV4dC5zdHJva2UocGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9IGdjbztcbiAgICAgIH1cblxuICAgICAgLy8gcmVzZXQgaW4gY2FzZSB3ZSBjaGFuZ2VkIHRoZSBib3JkZXIgc3R5bGVcbiAgICAgIGlmIChjb250ZXh0LnNldExpbmVEYXNoKSB7XG4gICAgICAgIC8vIGZvciB2ZXJ5IG91dG9mZGF0ZSBicm93c2Vyc1xuICAgICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHZhciBkcmF3T3V0bGluZSA9IGZ1bmN0aW9uIGRyYXdPdXRsaW5lKCkge1xuICAgIGlmIChvdXRsaW5lV2lkdGggPiAwKSB7XG4gICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IG91dGxpbmVXaWR0aDtcbiAgICAgIGNvbnRleHQubGluZUNhcCA9ICdidXR0JztcbiAgICAgIGlmIChjb250ZXh0LnNldExpbmVEYXNoKSB7XG4gICAgICAgIC8vIGZvciB2ZXJ5IG91dG9mZGF0ZSBicm93c2Vyc1xuICAgICAgICBzd2l0Y2ggKG91dGxpbmVTdHlsZSkge1xuICAgICAgICAgIGNhc2UgJ2RvdHRlZCc6XG4gICAgICAgICAgICBjb250ZXh0LnNldExpbmVEYXNoKFsxLCAxXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdkYXNoZWQnOlxuICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbNCwgMl0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnc29saWQnOlxuICAgICAgICAgIGNhc2UgJ2RvdWJsZSc6XG4gICAgICAgICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgbnBvcyA9IHBvcztcbiAgICAgIGlmICh1c2VQYXRocykge1xuICAgICAgICBucG9zID0ge1xuICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgeTogMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdmFyIHNoYXBlID0gci5nZXROb2RlU2hhcGUobm9kZSk7XG4gICAgICB2YXIgYldpZHRoID0gYm9yZGVyV2lkdGg7XG4gICAgICBpZiAoYm9yZGVyUG9zaXRpb24gPT09ICdpbnNpZGUnKSBiV2lkdGggPSAwO1xuICAgICAgaWYgKGJvcmRlclBvc2l0aW9uID09PSAnb3V0c2lkZScpIGJXaWR0aCAqPSAyO1xuICAgICAgdmFyIHNjYWxlWCA9IChub2RlV2lkdGggKyBiV2lkdGggKyAob3V0bGluZVdpZHRoICsgb3V0bGluZU9mZnNldCkpIC8gbm9kZVdpZHRoO1xuICAgICAgdmFyIHNjYWxlWSA9IChub2RlSGVpZ2h0ICsgYldpZHRoICsgKG91dGxpbmVXaWR0aCArIG91dGxpbmVPZmZzZXQpKSAvIG5vZGVIZWlnaHQ7XG4gICAgICB2YXIgc1dpZHRoID0gbm9kZVdpZHRoICogc2NhbGVYO1xuICAgICAgdmFyIHNIZWlnaHQgPSBub2RlSGVpZ2h0ICogc2NhbGVZO1xuICAgICAgdmFyIHBvaW50cyA9IHIubm9kZVNoYXBlc1tzaGFwZV0ucG9pbnRzO1xuICAgICAgdmFyIF9wYXRoO1xuICAgICAgaWYgKHVzZVBhdGhzKSB7XG4gICAgICAgIHZhciBvdXRsaW5lUGF0aCA9IGdldFBhdGgoc1dpZHRoLCBzSGVpZ2h0LCBzaGFwZSwgcG9pbnRzKTtcbiAgICAgICAgX3BhdGggPSBvdXRsaW5lUGF0aC5wYXRoO1xuICAgICAgfVxuXG4gICAgICAvLyBkcmF3IHRoZSBvdXRsaW5lIHBhdGgsIGVpdGhlciBieSB1c2luZyBleHBhbmRlZCBwb2ludHMgb3IgYnkgc2NhbGluZyBcbiAgICAgIC8vIHRoZSBkaW1lbnNpb25zLCBkZXBlbmRpbmcgb24gc2hhcGVcbiAgICAgIGlmIChzaGFwZSA9PT0gXCJlbGxpcHNlXCIpIHtcbiAgICAgICAgci5kcmF3RWxsaXBzZVBhdGgoX3BhdGggfHwgY29udGV4dCwgbnBvcy54LCBucG9zLnksIHNXaWR0aCwgc0hlaWdodCk7XG4gICAgICB9IGVsc2UgaWYgKFsncm91bmQtZGlhbW9uZCcsICdyb3VuZC1oZXB0YWdvbicsICdyb3VuZC1oZXhhZ29uJywgJ3JvdW5kLW9jdGFnb24nLCAncm91bmQtcGVudGFnb24nLCAncm91bmQtcG9seWdvbicsICdyb3VuZC10cmlhbmdsZScsICdyb3VuZC10YWcnXS5pbmNsdWRlcyhzaGFwZSkpIHtcbiAgICAgICAgdmFyIHNNdWx0ID0gMDtcbiAgICAgICAgdmFyIG9mZnNldFggPSAwO1xuICAgICAgICB2YXIgb2Zmc2V0WSA9IDA7XG4gICAgICAgIGlmIChzaGFwZSA9PT0gJ3JvdW5kLWRpYW1vbmQnKSB7XG4gICAgICAgICAgc011bHQgPSAoYldpZHRoICsgb3V0bGluZU9mZnNldCArIG91dGxpbmVXaWR0aCkgKiAxLjQ7XG4gICAgICAgIH0gZWxzZSBpZiAoc2hhcGUgPT09ICdyb3VuZC1oZXB0YWdvbicpIHtcbiAgICAgICAgICBzTXVsdCA9IChiV2lkdGggKyBvdXRsaW5lT2Zmc2V0ICsgb3V0bGluZVdpZHRoKSAqIDEuMDc1O1xuICAgICAgICAgIG9mZnNldFkgPSAtKGJXaWR0aCAvIDIgKyBvdXRsaW5lT2Zmc2V0ICsgb3V0bGluZVdpZHRoKSAvIDM1O1xuICAgICAgICB9IGVsc2UgaWYgKHNoYXBlID09PSAncm91bmQtaGV4YWdvbicpIHtcbiAgICAgICAgICBzTXVsdCA9IChiV2lkdGggKyBvdXRsaW5lT2Zmc2V0ICsgb3V0bGluZVdpZHRoKSAqIDEuMTI7XG4gICAgICAgIH0gZWxzZSBpZiAoc2hhcGUgPT09ICdyb3VuZC1wZW50YWdvbicpIHtcbiAgICAgICAgICBzTXVsdCA9IChiV2lkdGggKyBvdXRsaW5lT2Zmc2V0ICsgb3V0bGluZVdpZHRoKSAqIDEuMTM7XG4gICAgICAgICAgb2Zmc2V0WSA9IC0oYldpZHRoIC8gMiArIG91dGxpbmVPZmZzZXQgKyBvdXRsaW5lV2lkdGgpIC8gMTU7XG4gICAgICAgIH0gZWxzZSBpZiAoc2hhcGUgPT09ICdyb3VuZC10YWcnKSB7XG4gICAgICAgICAgc011bHQgPSAoYldpZHRoICsgb3V0bGluZU9mZnNldCArIG91dGxpbmVXaWR0aCkgKiAxLjEyO1xuICAgICAgICAgIG9mZnNldFggPSAoYldpZHRoIC8gMiArIG91dGxpbmVXaWR0aCArIG91dGxpbmVPZmZzZXQpICogLjA3O1xuICAgICAgICB9IGVsc2UgaWYgKHNoYXBlID09PSAncm91bmQtdHJpYW5nbGUnKSB7XG4gICAgICAgICAgc011bHQgPSAoYldpZHRoICsgb3V0bGluZU9mZnNldCArIG91dGxpbmVXaWR0aCkgKiAoTWF0aC5QSSAvIDIpO1xuICAgICAgICAgIG9mZnNldFkgPSAtKGJXaWR0aCArIG91dGxpbmVPZmZzZXQgLyAyICsgb3V0bGluZVdpZHRoKSAvIE1hdGguUEk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNNdWx0ICE9PSAwKSB7XG4gICAgICAgICAgc2NhbGVYID0gKG5vZGVXaWR0aCArIHNNdWx0KSAvIG5vZGVXaWR0aDtcbiAgICAgICAgICBzV2lkdGggPSBub2RlV2lkdGggKiBzY2FsZVg7XG4gICAgICAgICAgaWYgKCFbJ3JvdW5kLWhleGFnb24nLCAncm91bmQtdGFnJ10uaW5jbHVkZXMoc2hhcGUpKSB7XG4gICAgICAgICAgICBzY2FsZVkgPSAobm9kZUhlaWdodCArIHNNdWx0KSAvIG5vZGVIZWlnaHQ7XG4gICAgICAgICAgICBzSGVpZ2h0ID0gbm9kZUhlaWdodCAqIHNjYWxlWTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29ybmVyUmFkaXVzID0gY29ybmVyUmFkaXVzID09PSAnYXV0bycgPyBnZXRSb3VuZFBvbHlnb25SYWRpdXMoc1dpZHRoLCBzSGVpZ2h0KSA6IGNvcm5lclJhZGl1cztcbiAgICAgICAgdmFyIGhhbGZXID0gc1dpZHRoIC8gMjtcbiAgICAgICAgdmFyIGhhbGZIID0gc0hlaWdodCAvIDI7XG4gICAgICAgIHZhciByYWRpdXMgPSBjb3JuZXJSYWRpdXMgKyAoYldpZHRoICsgb3V0bGluZVdpZHRoICsgb3V0bGluZU9mZnNldCkgLyAyO1xuICAgICAgICB2YXIgcCA9IG5ldyBBcnJheShwb2ludHMubGVuZ3RoIC8gMik7XG4gICAgICAgIHZhciBjb3JuZXJzID0gbmV3IEFycmF5KHBvaW50cy5sZW5ndGggLyAyKTtcbiAgICAgICAgZm9yICh2YXIgX2kzID0gMDsgX2kzIDwgcG9pbnRzLmxlbmd0aCAvIDI7IF9pMysrKSB7XG4gICAgICAgICAgcFtfaTNdID0ge1xuICAgICAgICAgICAgeDogbnBvcy54ICsgb2Zmc2V0WCArIGhhbGZXICogcG9pbnRzW19pMyAqIDJdLFxuICAgICAgICAgICAgeTogbnBvcy55ICsgb2Zmc2V0WSArIGhhbGZIICogcG9pbnRzW19pMyAqIDIgKyAxXVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9pMixcbiAgICAgICAgICBwMSxcbiAgICAgICAgICBwMixcbiAgICAgICAgICBwMyxcbiAgICAgICAgICBsZW4gPSBwLmxlbmd0aDtcbiAgICAgICAgcDEgPSBwW2xlbiAtIDFdO1xuICAgICAgICAvLyBmb3IgZWFjaCBwb2ludFxuICAgICAgICBmb3IgKF9pMiA9IDA7IF9pMiA8IGxlbjsgX2kyKyspIHtcbiAgICAgICAgICBwMiA9IHBbX2kyICUgbGVuXTtcbiAgICAgICAgICBwMyA9IHBbKF9pMiArIDEpICUgbGVuXTtcbiAgICAgICAgICBjb3JuZXJzW19pMl0gPSBnZXRSb3VuZENvcm5lcihwMSwgcDIsIHAzLCByYWRpdXMpO1xuICAgICAgICAgIHAxID0gcDI7XG4gICAgICAgICAgcDIgPSBwMztcbiAgICAgICAgfVxuICAgICAgICByLmRyYXdSb3VuZFBvbHlnb25QYXRoKF9wYXRoIHx8IGNvbnRleHQsIG5wb3MueCArIG9mZnNldFgsIG5wb3MueSArIG9mZnNldFksIG5vZGVXaWR0aCAqIHNjYWxlWCwgbm9kZUhlaWdodCAqIHNjYWxlWSwgcG9pbnRzLCBjb3JuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAoWydyb3VuZHJlY3RhbmdsZScsICdyb3VuZC1yZWN0YW5nbGUnXS5pbmNsdWRlcyhzaGFwZSkpIHtcbiAgICAgICAgY29ybmVyUmFkaXVzID0gY29ybmVyUmFkaXVzID09PSAnYXV0bycgPyBnZXRSb3VuZFJlY3RhbmdsZVJhZGl1cyhzV2lkdGgsIHNIZWlnaHQpIDogY29ybmVyUmFkaXVzO1xuICAgICAgICByLmRyYXdSb3VuZFJlY3RhbmdsZVBhdGgoX3BhdGggfHwgY29udGV4dCwgbnBvcy54LCBucG9zLnksIHNXaWR0aCwgc0hlaWdodCwgY29ybmVyUmFkaXVzICsgKGJXaWR0aCArIG91dGxpbmVXaWR0aCArIG91dGxpbmVPZmZzZXQpIC8gMik7XG4gICAgICB9IGVsc2UgaWYgKFsnY3V0cmVjdGFuZ2xlJywgJ2N1dC1yZWN0YW5nbGUnXS5pbmNsdWRlcyhzaGFwZSkpIHtcbiAgICAgICAgY29ybmVyUmFkaXVzID0gY29ybmVyUmFkaXVzID09PSAnYXV0bycgPyBnZXRDdXRSZWN0YW5nbGVDb3JuZXJMZW5ndGgoKSA6IGNvcm5lclJhZGl1cztcbiAgICAgICAgci5kcmF3Q3V0UmVjdGFuZ2xlUGF0aChfcGF0aCB8fCBjb250ZXh0LCBucG9zLngsIG5wb3MueSwgc1dpZHRoLCBzSGVpZ2h0LCBudWxsLCBjb3JuZXJSYWRpdXMgKyAoYldpZHRoICsgb3V0bGluZVdpZHRoICsgb3V0bGluZU9mZnNldCkgLyA0KTtcbiAgICAgIH0gZWxzZSBpZiAoWydib3R0b21yb3VuZHJlY3RhbmdsZScsICdib3R0b20tcm91bmQtcmVjdGFuZ2xlJ10uaW5jbHVkZXMoc2hhcGUpKSB7XG4gICAgICAgIGNvcm5lclJhZGl1cyA9IGNvcm5lclJhZGl1cyA9PT0gJ2F1dG8nID8gZ2V0Um91bmRSZWN0YW5nbGVSYWRpdXMoc1dpZHRoLCBzSGVpZ2h0KSA6IGNvcm5lclJhZGl1cztcbiAgICAgICAgci5kcmF3Qm90dG9tUm91bmRSZWN0YW5nbGVQYXRoKF9wYXRoIHx8IGNvbnRleHQsIG5wb3MueCwgbnBvcy55LCBzV2lkdGgsIHNIZWlnaHQsIGNvcm5lclJhZGl1cyArIChiV2lkdGggKyBvdXRsaW5lV2lkdGggKyBvdXRsaW5lT2Zmc2V0KSAvIDIpO1xuICAgICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gXCJiYXJyZWxcIikge1xuICAgICAgICByLmRyYXdCYXJyZWxQYXRoKF9wYXRoIHx8IGNvbnRleHQsIG5wb3MueCwgbnBvcy55LCBzV2lkdGgsIHNIZWlnaHQpO1xuICAgICAgfSBlbHNlIGlmIChzaGFwZS5zdGFydHNXaXRoKFwicG9seWdvblwiKSB8fCBbJ3Job21ib2lkJywgJ3JpZ2h0LXJob21ib2lkJywgJ3JvdW5kLXRhZycsICd0YWcnLCAndmVlJ10uaW5jbHVkZXMoc2hhcGUpKSB7XG4gICAgICAgIHZhciBwYWQgPSAoYldpZHRoICsgb3V0bGluZVdpZHRoICsgb3V0bGluZU9mZnNldCkgLyBub2RlV2lkdGg7XG4gICAgICAgIHBvaW50cyA9IGpvaW5MaW5lcyhleHBhbmRQb2x5Z29uKHBvaW50cywgcGFkKSk7XG4gICAgICAgIHIuZHJhd1BvbHlnb25QYXRoKF9wYXRoIHx8IGNvbnRleHQsIG5wb3MueCwgbnBvcy55LCBub2RlV2lkdGgsIG5vZGVIZWlnaHQsIHBvaW50cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgX3BhZCA9IChiV2lkdGggKyBvdXRsaW5lV2lkdGggKyBvdXRsaW5lT2Zmc2V0KSAvIG5vZGVXaWR0aDtcbiAgICAgICAgcG9pbnRzID0gam9pbkxpbmVzKGV4cGFuZFBvbHlnb24ocG9pbnRzLCAtX3BhZCkpO1xuICAgICAgICByLmRyYXdQb2x5Z29uUGF0aChfcGF0aCB8fCBjb250ZXh0LCBucG9zLngsIG5wb3MueSwgbm9kZVdpZHRoLCBub2RlSGVpZ2h0LCBwb2ludHMpO1xuICAgICAgfVxuICAgICAgaWYgKHVzZVBhdGhzKSB7XG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKF9wYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XG4gICAgICB9XG4gICAgICBpZiAob3V0bGluZVN0eWxlID09PSAnZG91YmxlJykge1xuICAgICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IGJXaWR0aCAvIDM7XG4gICAgICAgIHZhciBnY28gPSBjb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbjtcbiAgICAgICAgY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSAnZGVzdGluYXRpb24tb3V0JztcbiAgICAgICAgaWYgKHVzZVBhdGhzKSB7XG4gICAgICAgICAgY29udGV4dC5zdHJva2UoX3BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSBnY287XG4gICAgICB9XG5cbiAgICAgIC8vIHJlc2V0IGluIGNhc2Ugd2UgY2hhbmdlZCB0aGUgYm9yZGVyIHN0eWxlXG4gICAgICBpZiAoY29udGV4dC5zZXRMaW5lRGFzaCkge1xuICAgICAgICAvLyBmb3IgdmVyeSBvdXRvZmRhdGUgYnJvd3NlcnNcbiAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICB2YXIgZHJhd092ZXJsYXkgPSBmdW5jdGlvbiBkcmF3T3ZlcmxheSgpIHtcbiAgICBpZiAoc2hvdWxkRHJhd092ZXJsYXkpIHtcbiAgICAgIHIuZHJhd05vZGVPdmVybGF5KGNvbnRleHQsIG5vZGUsIHBvcywgbm9kZVdpZHRoLCBub2RlSGVpZ2h0KTtcbiAgICB9XG4gIH07XG4gIHZhciBkcmF3VW5kZXJsYXkgPSBmdW5jdGlvbiBkcmF3VW5kZXJsYXkoKSB7XG4gICAgaWYgKHNob3VsZERyYXdPdmVybGF5KSB7XG4gICAgICByLmRyYXdOb2RlVW5kZXJsYXkoY29udGV4dCwgbm9kZSwgcG9zLCBub2RlV2lkdGgsIG5vZGVIZWlnaHQpO1xuICAgIH1cbiAgfTtcbiAgdmFyIGRyYXdUZXh0ID0gZnVuY3Rpb24gZHJhd1RleHQoKSB7XG4gICAgci5kcmF3RWxlbWVudFRleHQoY29udGV4dCwgbm9kZSwgbnVsbCwgZHJhd0xhYmVsKTtcbiAgfTtcbiAgdmFyIGdob3N0ID0gbm9kZS5wc3R5bGUoJ2dob3N0JykudmFsdWUgPT09ICd5ZXMnO1xuICBpZiAoZ2hvc3QpIHtcbiAgICB2YXIgZ3ggPSBub2RlLnBzdHlsZSgnZ2hvc3Qtb2Zmc2V0LXgnKS5wZlZhbHVlO1xuICAgIHZhciBneSA9IG5vZGUucHN0eWxlKCdnaG9zdC1vZmZzZXQteScpLnBmVmFsdWU7XG4gICAgdmFyIGdob3N0T3BhY2l0eSA9IG5vZGUucHN0eWxlKCdnaG9zdC1vcGFjaXR5JykudmFsdWU7XG4gICAgdmFyIGVmZkdob3N0T3BhY2l0eSA9IGdob3N0T3BhY2l0eSAqIGVsZU9wYWNpdHk7XG4gICAgY29udGV4dC50cmFuc2xhdGUoZ3gsIGd5KTtcbiAgICBzZXR1cE91dGxpbmVDb2xvcigpO1xuICAgIGRyYXdPdXRsaW5lKCk7XG4gICAgc2V0dXBTaGFwZUNvbG9yKGdob3N0T3BhY2l0eSAqIGJnT3BhY2l0eSk7XG4gICAgZHJhd1NoYXBlKCk7XG4gICAgZHJhd0ltYWdlcyhlZmZHaG9zdE9wYWNpdHksIHRydWUpO1xuICAgIHNldHVwQm9yZGVyQ29sb3IoZ2hvc3RPcGFjaXR5ICogYm9yZGVyT3BhY2l0eSk7XG4gICAgZHJhd0JvcmRlcigpO1xuICAgIGRyYXdQaWUoZGFya25lc3MgIT09IDAgfHwgYm9yZGVyV2lkdGggIT09IDApO1xuICAgIGRyYXdJbWFnZXMoZWZmR2hvc3RPcGFjaXR5LCBmYWxzZSk7XG4gICAgZGFya2VuKGVmZkdob3N0T3BhY2l0eSk7XG4gICAgY29udGV4dC50cmFuc2xhdGUoLWd4LCAtZ3kpO1xuICB9XG4gIGlmICh1c2VQYXRocykge1xuICAgIGNvbnRleHQudHJhbnNsYXRlKC1wb3MueCwgLXBvcy55KTtcbiAgfVxuICBkcmF3VW5kZXJsYXkoKTtcbiAgaWYgKHVzZVBhdGhzKSB7XG4gICAgY29udGV4dC50cmFuc2xhdGUocG9zLngsIHBvcy55KTtcbiAgfVxuICBzZXR1cE91dGxpbmVDb2xvcigpO1xuICBkcmF3T3V0bGluZSgpO1xuICBzZXR1cFNoYXBlQ29sb3IoKTtcbiAgZHJhd1NoYXBlKCk7XG4gIGRyYXdJbWFnZXMoZWxlT3BhY2l0eSwgdHJ1ZSk7XG4gIHNldHVwQm9yZGVyQ29sb3IoKTtcbiAgZHJhd0JvcmRlcigpO1xuICBkcmF3UGllKGRhcmtuZXNzICE9PSAwIHx8IGJvcmRlcldpZHRoICE9PSAwKTtcbiAgZHJhd0ltYWdlcyhlbGVPcGFjaXR5LCBmYWxzZSk7XG4gIGRhcmtlbigpO1xuICBpZiAodXNlUGF0aHMpIHtcbiAgICBjb250ZXh0LnRyYW5zbGF0ZSgtcG9zLngsIC1wb3MueSk7XG4gIH1cbiAgZHJhd1RleHQoKTtcbiAgZHJhd092ZXJsYXkoKTtcblxuICAvL1xuICAvLyBjbGVhbiB1cCBzaGlmdFxuXG4gIGlmIChzaGlmdFRvT3JpZ2luV2l0aEJiKSB7XG4gICAgY29udGV4dC50cmFuc2xhdGUoYmIueDEsIGJiLnkxKTtcbiAgfVxufTtcbnZhciBkcmF3Tm9kZU92ZXJsYXlVbmRlcmxheSA9IGZ1bmN0aW9uIGRyYXdOb2RlT3ZlcmxheVVuZGVybGF5KG92ZXJsYXlPclVuZGVybGF5KSB7XG4gIGlmICghWydvdmVybGF5JywgJ3VuZGVybGF5J10uaW5jbHVkZXMob3ZlcmxheU9yVW5kZXJsYXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHN0YXRlJyk7XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uIChjb250ZXh0LCBub2RlLCBwb3MsIG5vZGVXaWR0aCwgbm9kZUhlaWdodCkge1xuICAgIHZhciByID0gdGhpcztcbiAgICBpZiAoIW5vZGUudmlzaWJsZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBwYWRkaW5nID0gbm9kZS5wc3R5bGUoXCJcIi5jb25jYXQob3ZlcmxheU9yVW5kZXJsYXksIFwiLXBhZGRpbmdcIikpLnBmVmFsdWU7XG4gICAgdmFyIG9wYWNpdHkgPSBub2RlLnBzdHlsZShcIlwiLmNvbmNhdChvdmVybGF5T3JVbmRlcmxheSwgXCItb3BhY2l0eVwiKSkudmFsdWU7XG4gICAgdmFyIGNvbG9yID0gbm9kZS5wc3R5bGUoXCJcIi5jb25jYXQob3ZlcmxheU9yVW5kZXJsYXksIFwiLWNvbG9yXCIpKS52YWx1ZTtcbiAgICB2YXIgc2hhcGUgPSBub2RlLnBzdHlsZShcIlwiLmNvbmNhdChvdmVybGF5T3JVbmRlcmxheSwgXCItc2hhcGVcIikpLnZhbHVlO1xuICAgIHZhciByYWRpdXMgPSBub2RlLnBzdHlsZShcIlwiLmNvbmNhdChvdmVybGF5T3JVbmRlcmxheSwgXCItY29ybmVyLXJhZGl1c1wiKSkudmFsdWU7XG4gICAgaWYgKG9wYWNpdHkgPiAwKSB7XG4gICAgICBwb3MgPSBwb3MgfHwgbm9kZS5wb3NpdGlvbigpO1xuICAgICAgaWYgKG5vZGVXaWR0aCA9PSBudWxsIHx8IG5vZGVIZWlnaHQgPT0gbnVsbCkge1xuICAgICAgICB2YXIgX3BhZGRpbmcgPSBub2RlLnBhZGRpbmcoKTtcbiAgICAgICAgbm9kZVdpZHRoID0gbm9kZS53aWR0aCgpICsgMiAqIF9wYWRkaW5nO1xuICAgICAgICBub2RlSGVpZ2h0ID0gbm9kZS5oZWlnaHQoKSArIDIgKiBfcGFkZGluZztcbiAgICAgIH1cbiAgICAgIHIuY29sb3JGaWxsU3R5bGUoY29udGV4dCwgY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsyXSwgb3BhY2l0eSk7XG4gICAgICByLm5vZGVTaGFwZXNbc2hhcGVdLmRyYXcoY29udGV4dCwgcG9zLngsIHBvcy55LCBub2RlV2lkdGggKyBwYWRkaW5nICogMiwgbm9kZUhlaWdodCArIHBhZGRpbmcgKiAyLCByYWRpdXMpO1xuICAgICAgY29udGV4dC5maWxsKCk7XG4gICAgfVxuICB9O1xufTtcbkNScCQ1LmRyYXdOb2RlT3ZlcmxheSA9IGRyYXdOb2RlT3ZlcmxheVVuZGVybGF5KCdvdmVybGF5Jyk7XG5DUnAkNS5kcmF3Tm9kZVVuZGVybGF5ID0gZHJhd05vZGVPdmVybGF5VW5kZXJsYXkoJ3VuZGVybGF5Jyk7XG5cbi8vIGRvZXMgdGhlIG5vZGUgaGF2ZSBhdCBsZWFzdCBvbmUgcGllIHBpZWNlP1xuQ1JwJDUuaGFzUGllID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgbm9kZSA9IG5vZGVbMF07IC8vIGVuc3VyZSBlbGUgcmVmXG5cbiAgcmV0dXJuIG5vZGUuX3ByaXZhdGUuaGFzUGllO1xufTtcbkNScCQ1LmRyYXdQaWUgPSBmdW5jdGlvbiAoY29udGV4dCwgbm9kZSwgbm9kZU9wYWNpdHksIHBvcykge1xuICBub2RlID0gbm9kZVswXTsgLy8gZW5zdXJlIGVsZSByZWZcbiAgcG9zID0gcG9zIHx8IG5vZGUucG9zaXRpb24oKTtcbiAgdmFyIGN5U3R5bGUgPSBub2RlLmN5KCkuc3R5bGUoKTtcbiAgdmFyIHBpZVNpemUgPSBub2RlLnBzdHlsZSgncGllLXNpemUnKTtcbiAgdmFyIHggPSBwb3MueDtcbiAgdmFyIHkgPSBwb3MueTtcbiAgdmFyIG5vZGVXID0gbm9kZS53aWR0aCgpO1xuICB2YXIgbm9kZUggPSBub2RlLmhlaWdodCgpO1xuICB2YXIgcmFkaXVzID0gTWF0aC5taW4obm9kZVcsIG5vZGVIKSAvIDI7IC8vIG11c3QgZml0IGluIG5vZGVcbiAgdmFyIGxhc3RQZXJjZW50ID0gMDsgLy8gd2hhdCAlIHRvIGNvbnRpbnVlIGRyYXdpbmcgcGllIHNsaWNlcyBmcm9tIG9uIFswLCAxXVxuICB2YXIgdXNlUGF0aHMgPSB0aGlzLnVzZVBhdGhzKCk7XG4gIGlmICh1c2VQYXRocykge1xuICAgIHggPSAwO1xuICAgIHkgPSAwO1xuICB9XG4gIGlmIChwaWVTaXplLnVuaXRzID09PSAnJScpIHtcbiAgICByYWRpdXMgPSByYWRpdXMgKiBwaWVTaXplLnBmVmFsdWU7XG4gIH0gZWxzZSBpZiAocGllU2l6ZS5wZlZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByYWRpdXMgPSBwaWVTaXplLnBmVmFsdWUgLyAyO1xuICB9XG4gIGZvciAodmFyIGkgPSAxOyBpIDw9IGN5U3R5bGUucGllQmFja2dyb3VuZE47IGkrKykge1xuICAgIC8vIDEuLk5cbiAgICB2YXIgc2l6ZSA9IG5vZGUucHN0eWxlKCdwaWUtJyArIGkgKyAnLWJhY2tncm91bmQtc2l6ZScpLnZhbHVlO1xuICAgIHZhciBjb2xvciA9IG5vZGUucHN0eWxlKCdwaWUtJyArIGkgKyAnLWJhY2tncm91bmQtY29sb3InKS52YWx1ZTtcbiAgICB2YXIgb3BhY2l0eSA9IG5vZGUucHN0eWxlKCdwaWUtJyArIGkgKyAnLWJhY2tncm91bmQtb3BhY2l0eScpLnZhbHVlICogbm9kZU9wYWNpdHk7XG4gICAgdmFyIHBlcmNlbnQgPSBzaXplIC8gMTAwOyAvLyBtYXAgaW50ZWdlciByYW5nZSBbMCwgMTAwXSB0byBbMCwgMV1cblxuICAgIC8vIHBlcmNlbnQgY2FuJ3QgcHVzaCBiZXlvbmQgMVxuICAgIGlmIChwZXJjZW50ICsgbGFzdFBlcmNlbnQgPiAxKSB7XG4gICAgICBwZXJjZW50ID0gMSAtIGxhc3RQZXJjZW50O1xuICAgIH1cbiAgICB2YXIgYW5nbGVTdGFydCA9IDEuNSAqIE1hdGguUEkgKyAyICogTWF0aC5QSSAqIGxhc3RQZXJjZW50OyAvLyBzdGFydCBhdCAxMiBvJ2Nsb2NrIGFuZCBnbyBjbG9ja3dpc2VcbiAgICB2YXIgYW5nbGVEZWx0YSA9IDIgKiBNYXRoLlBJICogcGVyY2VudDtcbiAgICB2YXIgYW5nbGVFbmQgPSBhbmdsZVN0YXJ0ICsgYW5nbGVEZWx0YTtcblxuICAgIC8vIGlnbm9yZSBpZlxuICAgIC8vIC0gemVybyBzaXplXG4gICAgLy8gLSB3ZSdyZSBhbHJlYWR5IGJleW9uZCB0aGUgZnVsbCBjaXJjbGVcbiAgICAvLyAtIGFkZGluZyB0aGUgY3VycmVudCBzbGljZSB3b3VsZCBnbyBiZXlvbmQgdGhlIGZ1bGwgY2lyY2xlXG4gICAgaWYgKHNpemUgPT09IDAgfHwgbGFzdFBlcmNlbnQgPj0gMSB8fCBsYXN0UGVyY2VudCArIHBlcmNlbnQgPiAxKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0Lm1vdmVUbyh4LCB5KTtcbiAgICBjb250ZXh0LmFyYyh4LCB5LCByYWRpdXMsIGFuZ2xlU3RhcnQsIGFuZ2xlRW5kKTtcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIHRoaXMuY29sb3JGaWxsU3R5bGUoY29udGV4dCwgY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsyXSwgb3BhY2l0eSk7XG4gICAgY29udGV4dC5maWxsKCk7XG4gICAgbGFzdFBlcmNlbnQgKz0gcGVyY2VudDtcbiAgfVxufTtcblxudmFyIENScCQ0ID0ge307XG52YXIgbW90aW9uQmx1ckRlbGF5ID0gMTAwO1xuXG4vLyB2YXIgaXNGaXJlZm94ID0gdHlwZW9mIEluc3RhbGxUcmlnZ2VyICE9PSAndW5kZWZpbmVkJztcblxuQ1JwJDQuZ2V0UGl4ZWxSYXRpbyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGNvbnRleHQgPSB0aGlzLmRhdGEuY29udGV4dHNbMF07XG4gIGlmICh0aGlzLmZvcmNlZFBpeGVsUmF0aW8gIT0gbnVsbCkge1xuICAgIHJldHVybiB0aGlzLmZvcmNlZFBpeGVsUmF0aW87XG4gIH1cbiAgdmFyIGNvbnRhaW5lcldpbmRvdyA9IHRoaXMuY3kud2luZG93KCk7XG4gIHZhciBiYWNraW5nU3RvcmUgPSBjb250ZXh0LmJhY2tpbmdTdG9yZVBpeGVsUmF0aW8gfHwgY29udGV4dC53ZWJraXRCYWNraW5nU3RvcmVQaXhlbFJhdGlvIHx8IGNvbnRleHQubW96QmFja2luZ1N0b3JlUGl4ZWxSYXRpbyB8fCBjb250ZXh0Lm1zQmFja2luZ1N0b3JlUGl4ZWxSYXRpbyB8fCBjb250ZXh0Lm9CYWNraW5nU3RvcmVQaXhlbFJhdGlvIHx8IGNvbnRleHQuYmFja2luZ1N0b3JlUGl4ZWxSYXRpbyB8fCAxO1xuICByZXR1cm4gKGNvbnRhaW5lcldpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDEpIC8gYmFja2luZ1N0b3JlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG59O1xuXG5DUnAkNC5wYWludENhY2hlID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgdmFyIGNhY2hlcyA9IHRoaXMucGFpbnRDYWNoZXMgPSB0aGlzLnBhaW50Q2FjaGVzIHx8IFtdO1xuICB2YXIgbmVlZFRvQ3JlYXRlQ2FjaGUgPSB0cnVlO1xuICB2YXIgY2FjaGU7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY2FjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgY2FjaGUgPSBjYWNoZXNbaV07XG4gICAgaWYgKGNhY2hlLmNvbnRleHQgPT09IGNvbnRleHQpIHtcbiAgICAgIG5lZWRUb0NyZWF0ZUNhY2hlID0gZmFsc2U7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKG5lZWRUb0NyZWF0ZUNhY2hlKSB7XG4gICAgY2FjaGUgPSB7XG4gICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgfTtcbiAgICBjYWNoZXMucHVzaChjYWNoZSk7XG4gIH1cbiAgcmV0dXJuIGNhY2hlO1xufTtcbkNScCQ0LmNyZWF0ZUdyYWRpZW50U3R5bGVGb3IgPSBmdW5jdGlvbiAoY29udGV4dCwgc2hhcGVTdHlsZU5hbWUsIGVsZSwgZmlsbCwgb3BhY2l0eSkge1xuICB2YXIgZ3JhZGllbnRTdHlsZTtcbiAgdmFyIHVzZVBhdGhzID0gdGhpcy51c2VQYXRocygpO1xuICB2YXIgY29sb3JzID0gZWxlLnBzdHlsZShzaGFwZVN0eWxlTmFtZSArICctZ3JhZGllbnQtc3RvcC1jb2xvcnMnKS52YWx1ZSxcbiAgICBwb3NpdGlvbnMgPSBlbGUucHN0eWxlKHNoYXBlU3R5bGVOYW1lICsgJy1ncmFkaWVudC1zdG9wLXBvc2l0aW9ucycpLnBmVmFsdWU7XG4gIGlmIChmaWxsID09PSAncmFkaWFsLWdyYWRpZW50Jykge1xuICAgIGlmIChlbGUuaXNFZGdlKCkpIHtcbiAgICAgIHZhciBzdGFydCA9IGVsZS5zb3VyY2VFbmRwb2ludCgpLFxuICAgICAgICBlbmQgPSBlbGUudGFyZ2V0RW5kcG9pbnQoKSxcbiAgICAgICAgbWlkID0gZWxlLm1pZHBvaW50KCk7XG4gICAgICB2YXIgZDEgPSBkaXN0KHN0YXJ0LCBtaWQpO1xuICAgICAgdmFyIGQyID0gZGlzdChlbmQsIG1pZCk7XG4gICAgICBncmFkaWVudFN0eWxlID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChtaWQueCwgbWlkLnksIDAsIG1pZC54LCBtaWQueSwgTWF0aC5tYXgoZDEsIGQyKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBwb3MgPSB1c2VQYXRocyA/IHtcbiAgICAgICAgICB4OiAwLFxuICAgICAgICAgIHk6IDBcbiAgICAgICAgfSA6IGVsZS5wb3NpdGlvbigpLFxuICAgICAgICB3aWR0aCA9IGVsZS5wYWRkZWRXaWR0aCgpLFxuICAgICAgICBoZWlnaHQgPSBlbGUucGFkZGVkSGVpZ2h0KCk7XG4gICAgICBncmFkaWVudFN0eWxlID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChwb3MueCwgcG9zLnksIDAsIHBvcy54LCBwb3MueSwgTWF0aC5tYXgod2lkdGgsIGhlaWdodCkpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoZWxlLmlzRWRnZSgpKSB7XG4gICAgICB2YXIgX3N0YXJ0ID0gZWxlLnNvdXJjZUVuZHBvaW50KCksXG4gICAgICAgIF9lbmQgPSBlbGUudGFyZ2V0RW5kcG9pbnQoKTtcbiAgICAgIGdyYWRpZW50U3R5bGUgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KF9zdGFydC54LCBfc3RhcnQueSwgX2VuZC54LCBfZW5kLnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX3BvcyA9IHVzZVBhdGhzID8ge1xuICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgeTogMFxuICAgICAgICB9IDogZWxlLnBvc2l0aW9uKCksXG4gICAgICAgIF93aWR0aCA9IGVsZS5wYWRkZWRXaWR0aCgpLFxuICAgICAgICBfaGVpZ2h0ID0gZWxlLnBhZGRlZEhlaWdodCgpLFxuICAgICAgICBoYWxmV2lkdGggPSBfd2lkdGggLyAyLFxuICAgICAgICBoYWxmSGVpZ2h0ID0gX2hlaWdodCAvIDI7XG4gICAgICB2YXIgZGlyZWN0aW9uID0gZWxlLnBzdHlsZSgnYmFja2dyb3VuZC1ncmFkaWVudC1kaXJlY3Rpb24nKS52YWx1ZTtcbiAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ3RvLWJvdHRvbSc6XG4gICAgICAgICAgZ3JhZGllbnRTdHlsZSA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoX3Bvcy54LCBfcG9zLnkgLSBoYWxmSGVpZ2h0LCBfcG9zLngsIF9wb3MueSArIGhhbGZIZWlnaHQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0by10b3AnOlxuICAgICAgICAgIGdyYWRpZW50U3R5bGUgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KF9wb3MueCwgX3Bvcy55ICsgaGFsZkhlaWdodCwgX3Bvcy54LCBfcG9zLnkgLSBoYWxmSGVpZ2h0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG8tbGVmdCc6XG4gICAgICAgICAgZ3JhZGllbnRTdHlsZSA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoX3Bvcy54ICsgaGFsZldpZHRoLCBfcG9zLnksIF9wb3MueCAtIGhhbGZXaWR0aCwgX3Bvcy55KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG8tcmlnaHQnOlxuICAgICAgICAgIGdyYWRpZW50U3R5bGUgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KF9wb3MueCAtIGhhbGZXaWR0aCwgX3Bvcy55LCBfcG9zLnggKyBoYWxmV2lkdGgsIF9wb3MueSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvLWJvdHRvbS1yaWdodCc6XG4gICAgICAgIGNhc2UgJ3RvLXJpZ2h0LWJvdHRvbSc6XG4gICAgICAgICAgZ3JhZGllbnRTdHlsZSA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoX3Bvcy54IC0gaGFsZldpZHRoLCBfcG9zLnkgLSBoYWxmSGVpZ2h0LCBfcG9zLnggKyBoYWxmV2lkdGgsIF9wb3MueSArIGhhbGZIZWlnaHQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0by10b3AtcmlnaHQnOlxuICAgICAgICBjYXNlICd0by1yaWdodC10b3AnOlxuICAgICAgICAgIGdyYWRpZW50U3R5bGUgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KF9wb3MueCAtIGhhbGZXaWR0aCwgX3Bvcy55ICsgaGFsZkhlaWdodCwgX3Bvcy54ICsgaGFsZldpZHRoLCBfcG9zLnkgLSBoYWxmSGVpZ2h0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG8tYm90dG9tLWxlZnQnOlxuICAgICAgICBjYXNlICd0by1sZWZ0LWJvdHRvbSc6XG4gICAgICAgICAgZ3JhZGllbnRTdHlsZSA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoX3Bvcy54ICsgaGFsZldpZHRoLCBfcG9zLnkgLSBoYWxmSGVpZ2h0LCBfcG9zLnggLSBoYWxmV2lkdGgsIF9wb3MueSArIGhhbGZIZWlnaHQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0by10b3AtbGVmdCc6XG4gICAgICAgIGNhc2UgJ3RvLWxlZnQtdG9wJzpcbiAgICAgICAgICBncmFkaWVudFN0eWxlID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChfcG9zLnggKyBoYWxmV2lkdGgsIF9wb3MueSArIGhhbGZIZWlnaHQsIF9wb3MueCAtIGhhbGZXaWR0aCwgX3Bvcy55IC0gaGFsZkhlaWdodCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICghZ3JhZGllbnRTdHlsZSkgcmV0dXJuIG51bGw7IC8vIGludmFsaWQgZ3JhZGllbnQgc3R5bGVcblxuICB2YXIgaGFzUG9zaXRpb25zID0gcG9zaXRpb25zLmxlbmd0aCA9PT0gY29sb3JzLmxlbmd0aDtcbiAgdmFyIGxlbmd0aCA9IGNvbG9ycy5sZW5ndGg7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBncmFkaWVudFN0eWxlLmFkZENvbG9yU3RvcChoYXNQb3NpdGlvbnMgPyBwb3NpdGlvbnNbaV0gOiBpIC8gKGxlbmd0aCAtIDEpLCAncmdiYSgnICsgY29sb3JzW2ldWzBdICsgJywnICsgY29sb3JzW2ldWzFdICsgJywnICsgY29sb3JzW2ldWzJdICsgJywnICsgb3BhY2l0eSArICcpJyk7XG4gIH1cbiAgcmV0dXJuIGdyYWRpZW50U3R5bGU7XG59O1xuQ1JwJDQuZ3JhZGllbnRGaWxsU3R5bGUgPSBmdW5jdGlvbiAoY29udGV4dCwgZWxlLCBmaWxsLCBvcGFjaXR5KSB7XG4gIHZhciBncmFkaWVudFN0eWxlID0gdGhpcy5jcmVhdGVHcmFkaWVudFN0eWxlRm9yKGNvbnRleHQsICdiYWNrZ3JvdW5kJywgZWxlLCBmaWxsLCBvcGFjaXR5KTtcbiAgaWYgKCFncmFkaWVudFN0eWxlKSByZXR1cm4gbnVsbDsgLy8gZXJyb3JcbiAgY29udGV4dC5maWxsU3R5bGUgPSBncmFkaWVudFN0eWxlO1xufTtcbkNScCQ0LmNvbG9yRmlsbFN0eWxlID0gZnVuY3Rpb24gKGNvbnRleHQsIHIsIGcsIGIsIGEpIHtcbiAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgnICsgciArICcsJyArIGcgKyAnLCcgKyBiICsgJywnICsgYSArICcpJztcbiAgLy8gdHVybiBvZmYgZm9yIG5vdywgc2VlbXMgY29udGV4dCBkb2VzIGl0cyBvd24gY2FjaGluZ1xuXG4gIC8vIHZhciBjYWNoZSA9IHRoaXMucGFpbnRDYWNoZShjb250ZXh0KTtcblxuICAvLyB2YXIgZmlsbFN0eWxlID0gJ3JnYmEoJyArIHIgKyAnLCcgKyBnICsgJywnICsgYiArICcsJyArIGEgKyAnKSc7XG5cbiAgLy8gaWYoIGNhY2hlLmZpbGxTdHlsZSAhPT0gZmlsbFN0eWxlICl7XG4gIC8vICAgY29udGV4dC5maWxsU3R5bGUgPSBjYWNoZS5maWxsU3R5bGUgPSBmaWxsU3R5bGU7XG4gIC8vIH1cbn07XG5cbkNScCQ0LmVsZUZpbGxTdHlsZSA9IGZ1bmN0aW9uIChjb250ZXh0LCBlbGUsIG9wYWNpdHkpIHtcbiAgdmFyIGJhY2tncm91bmRGaWxsID0gZWxlLnBzdHlsZSgnYmFja2dyb3VuZC1maWxsJykudmFsdWU7XG4gIGlmIChiYWNrZ3JvdW5kRmlsbCA9PT0gJ2xpbmVhci1ncmFkaWVudCcgfHwgYmFja2dyb3VuZEZpbGwgPT09ICdyYWRpYWwtZ3JhZGllbnQnKSB7XG4gICAgdGhpcy5ncmFkaWVudEZpbGxTdHlsZShjb250ZXh0LCBlbGUsIGJhY2tncm91bmRGaWxsLCBvcGFjaXR5KTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgYmFja2dyb3VuZENvbG9yID0gZWxlLnBzdHlsZSgnYmFja2dyb3VuZC1jb2xvcicpLnZhbHVlO1xuICAgIHRoaXMuY29sb3JGaWxsU3R5bGUoY29udGV4dCwgYmFja2dyb3VuZENvbG9yWzBdLCBiYWNrZ3JvdW5kQ29sb3JbMV0sIGJhY2tncm91bmRDb2xvclsyXSwgb3BhY2l0eSk7XG4gIH1cbn07XG5DUnAkNC5ncmFkaWVudFN0cm9rZVN0eWxlID0gZnVuY3Rpb24gKGNvbnRleHQsIGVsZSwgZmlsbCwgb3BhY2l0eSkge1xuICB2YXIgZ3JhZGllbnRTdHlsZSA9IHRoaXMuY3JlYXRlR3JhZGllbnRTdHlsZUZvcihjb250ZXh0LCAnbGluZScsIGVsZSwgZmlsbCwgb3BhY2l0eSk7XG4gIGlmICghZ3JhZGllbnRTdHlsZSkgcmV0dXJuIG51bGw7IC8vIGVycm9yXG4gIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBncmFkaWVudFN0eWxlO1xufTtcbkNScCQ0LmNvbG9yU3Ryb2tlU3R5bGUgPSBmdW5jdGlvbiAoY29udGV4dCwgciwgZywgYiwgYSkge1xuICBjb250ZXh0LnN0cm9rZVN0eWxlID0gJ3JnYmEoJyArIHIgKyAnLCcgKyBnICsgJywnICsgYiArICcsJyArIGEgKyAnKSc7XG4gIC8vIHR1cm4gb2ZmIGZvciBub3csIHNlZW1zIGNvbnRleHQgZG9lcyBpdHMgb3duIGNhY2hpbmdcblxuICAvLyB2YXIgY2FjaGUgPSB0aGlzLnBhaW50Q2FjaGUoY29udGV4dCk7XG5cbiAgLy8gdmFyIHN0cm9rZVN0eWxlID0gJ3JnYmEoJyArIHIgKyAnLCcgKyBnICsgJywnICsgYiArICcsJyArIGEgKyAnKSc7XG5cbiAgLy8gaWYoIGNhY2hlLnN0cm9rZVN0eWxlICE9PSBzdHJva2VTdHlsZSApe1xuICAvLyAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBjYWNoZS5zdHJva2VTdHlsZSA9IHN0cm9rZVN0eWxlO1xuICAvLyB9XG59O1xuXG5DUnAkNC5lbGVTdHJva2VTdHlsZSA9IGZ1bmN0aW9uIChjb250ZXh0LCBlbGUsIG9wYWNpdHkpIHtcbiAgdmFyIGxpbmVGaWxsID0gZWxlLnBzdHlsZSgnbGluZS1maWxsJykudmFsdWU7XG4gIGlmIChsaW5lRmlsbCA9PT0gJ2xpbmVhci1ncmFkaWVudCcgfHwgbGluZUZpbGwgPT09ICdyYWRpYWwtZ3JhZGllbnQnKSB7XG4gICAgdGhpcy5ncmFkaWVudFN0cm9rZVN0eWxlKGNvbnRleHQsIGVsZSwgbGluZUZpbGwsIG9wYWNpdHkpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsaW5lQ29sb3IgPSBlbGUucHN0eWxlKCdsaW5lLWNvbG9yJykudmFsdWU7XG4gICAgdGhpcy5jb2xvclN0cm9rZVN0eWxlKGNvbnRleHQsIGxpbmVDb2xvclswXSwgbGluZUNvbG9yWzFdLCBsaW5lQ29sb3JbMl0sIG9wYWNpdHkpO1xuICB9XG59O1xuXG4vLyBSZXNpemUgY2FudmFzXG5DUnAkNC5tYXRjaENhbnZhc1NpemUgPSBmdW5jdGlvbiAoY29udGFpbmVyKSB7XG4gIHZhciByID0gdGhpcztcbiAgdmFyIGRhdGEgPSByLmRhdGE7XG4gIHZhciBiYiA9IHIuZmluZENvbnRhaW5lckNsaWVudENvb3JkcygpO1xuICB2YXIgd2lkdGggPSBiYlsyXTtcbiAgdmFyIGhlaWdodCA9IGJiWzNdO1xuICB2YXIgcGl4ZWxSYXRpbyA9IHIuZ2V0UGl4ZWxSYXRpbygpO1xuICB2YXIgbWJQeFJhdGlvID0gci5tb3Rpb25CbHVyUHhSYXRpbztcbiAgaWYgKGNvbnRhaW5lciA9PT0gci5kYXRhLmJ1ZmZlckNhbnZhc2VzW3IuTU9USU9OQkxVUl9CVUZGRVJfTk9ERV0gfHwgY29udGFpbmVyID09PSByLmRhdGEuYnVmZmVyQ2FudmFzZXNbci5NT1RJT05CTFVSX0JVRkZFUl9EUkFHXSkge1xuICAgIHBpeGVsUmF0aW8gPSBtYlB4UmF0aW87XG4gIH1cbiAgdmFyIGNhbnZhc1dpZHRoID0gd2lkdGggKiBwaXhlbFJhdGlvO1xuICB2YXIgY2FudmFzSGVpZ2h0ID0gaGVpZ2h0ICogcGl4ZWxSYXRpbztcbiAgdmFyIGNhbnZhcztcbiAgaWYgKGNhbnZhc1dpZHRoID09PSByLmNhbnZhc1dpZHRoICYmIGNhbnZhc0hlaWdodCA9PT0gci5jYW52YXNIZWlnaHQpIHtcbiAgICByZXR1cm47IC8vIHNhdmUgY3ljbGVzIGlmIHNhbWVcbiAgfVxuXG4gIHIuZm9udENhY2hlcyA9IG51bGw7IC8vIHJlc2l6aW5nIHJlc2V0cyB0aGUgc3R5bGVcblxuICB2YXIgY2FudmFzQ29udGFpbmVyID0gZGF0YS5jYW52YXNDb250YWluZXI7XG4gIGNhbnZhc0NvbnRhaW5lci5zdHlsZS53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgY2FudmFzQ29udGFpbmVyLnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgci5DQU5WQVNfTEFZRVJTOyBpKyspIHtcbiAgICBjYW52YXMgPSBkYXRhLmNhbnZhc2VzW2ldO1xuICAgIGNhbnZhcy53aWR0aCA9IGNhbnZhc1dpZHRoO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBjYW52YXNIZWlnaHQ7XG4gICAgY2FudmFzLnN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICAgIGNhbnZhcy5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgnO1xuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgci5CVUZGRVJfQ09VTlQ7IGkrKykge1xuICAgIGNhbnZhcyA9IGRhdGEuYnVmZmVyQ2FudmFzZXNbaV07XG4gICAgY2FudmFzLndpZHRoID0gY2FudmFzV2lkdGg7XG4gICAgY2FudmFzLmhlaWdodCA9IGNhbnZhc0hlaWdodDtcbiAgICBjYW52YXMuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7XG4gICAgY2FudmFzLnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7XG4gIH1cbiAgci50ZXh0dXJlTXVsdCA9IDE7XG4gIGlmIChwaXhlbFJhdGlvIDw9IDEpIHtcbiAgICBjYW52YXMgPSBkYXRhLmJ1ZmZlckNhbnZhc2VzW3IuVEVYVFVSRV9CVUZGRVJdO1xuICAgIHIudGV4dHVyZU11bHQgPSAyO1xuICAgIGNhbnZhcy53aWR0aCA9IGNhbnZhc1dpZHRoICogci50ZXh0dXJlTXVsdDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gY2FudmFzSGVpZ2h0ICogci50ZXh0dXJlTXVsdDtcbiAgfVxuICByLmNhbnZhc1dpZHRoID0gY2FudmFzV2lkdGg7XG4gIHIuY2FudmFzSGVpZ2h0ID0gY2FudmFzSGVpZ2h0O1xufTtcbkNScCQ0LnJlbmRlclRvID0gZnVuY3Rpb24gKGN4dCwgem9vbSwgcGFuLCBweFJhdGlvKSB7XG4gIHRoaXMucmVuZGVyKHtcbiAgICBmb3JjZWRDb250ZXh0OiBjeHQsXG4gICAgZm9yY2VkWm9vbTogem9vbSxcbiAgICBmb3JjZWRQYW46IHBhbixcbiAgICBkcmF3QWxsTGF5ZXJzOiB0cnVlLFxuICAgIGZvcmNlZFB4UmF0aW86IHB4UmF0aW9cbiAgfSk7XG59O1xuQ1JwJDQucmVuZGVyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwgc3RhdGljRW1wdHlPYmplY3QoKTtcbiAgdmFyIGZvcmNlZENvbnRleHQgPSBvcHRpb25zLmZvcmNlZENvbnRleHQ7XG4gIHZhciBkcmF3QWxsTGF5ZXJzID0gb3B0aW9ucy5kcmF3QWxsTGF5ZXJzO1xuICB2YXIgZHJhd09ubHlOb2RlTGF5ZXIgPSBvcHRpb25zLmRyYXdPbmx5Tm9kZUxheWVyO1xuICB2YXIgZm9yY2VkWm9vbSA9IG9wdGlvbnMuZm9yY2VkWm9vbTtcbiAgdmFyIGZvcmNlZFBhbiA9IG9wdGlvbnMuZm9yY2VkUGFuO1xuICB2YXIgciA9IHRoaXM7XG4gIHZhciBwaXhlbFJhdGlvID0gb3B0aW9ucy5mb3JjZWRQeFJhdGlvID09PSB1bmRlZmluZWQgPyB0aGlzLmdldFBpeGVsUmF0aW8oKSA6IG9wdGlvbnMuZm9yY2VkUHhSYXRpbztcbiAgdmFyIGN5ID0gci5jeTtcbiAgdmFyIGRhdGEgPSByLmRhdGE7XG4gIHZhciBuZWVkRHJhdyA9IGRhdGEuY2FudmFzTmVlZHNSZWRyYXc7XG4gIHZhciB0ZXh0dXJlRHJhdyA9IHIudGV4dHVyZU9uVmlld3BvcnQgJiYgIWZvcmNlZENvbnRleHQgJiYgKHIucGluY2hpbmcgfHwgci5ob3ZlckRhdGEuZHJhZ2dpbmcgfHwgci5zd2lwZVBhbm5pbmcgfHwgci5kYXRhLndoZWVsWm9vbWluZyk7XG4gIHZhciBtb3Rpb25CbHVyID0gb3B0aW9ucy5tb3Rpb25CbHVyICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLm1vdGlvbkJsdXIgOiByLm1vdGlvbkJsdXI7XG4gIHZhciBtYlB4UmF0aW8gPSByLm1vdGlvbkJsdXJQeFJhdGlvO1xuICB2YXIgaGFzQ29tcG91bmROb2RlcyA9IGN5Lmhhc0NvbXBvdW5kTm9kZXMoKTtcbiAgdmFyIGluTm9kZURyYWdHZXN0dXJlID0gci5ob3ZlckRhdGEuZHJhZ2dpbmdFbGVzO1xuICB2YXIgaW5Cb3hTZWxlY3Rpb24gPSByLmhvdmVyRGF0YS5zZWxlY3RpbmcgfHwgci50b3VjaERhdGEuc2VsZWN0aW5nID8gdHJ1ZSA6IGZhbHNlO1xuICBtb3Rpb25CbHVyID0gbW90aW9uQmx1ciAmJiAhZm9yY2VkQ29udGV4dCAmJiByLm1vdGlvbkJsdXJFbmFibGVkICYmICFpbkJveFNlbGVjdGlvbjtcbiAgdmFyIG1vdGlvbkJsdXJGYWRlRWZmZWN0ID0gbW90aW9uQmx1cjtcbiAgaWYgKCFmb3JjZWRDb250ZXh0KSB7XG4gICAgaWYgKHIucHJldlB4UmF0aW8gIT09IHBpeGVsUmF0aW8pIHtcbiAgICAgIHIuaW52YWxpZGF0ZUNvbnRhaW5lckNsaWVudENvb3Jkc0NhY2hlKCk7XG4gICAgICByLm1hdGNoQ2FudmFzU2l6ZShyLmNvbnRhaW5lcik7XG4gICAgICByLnJlZHJhd0hpbnQoJ2VsZXMnLCB0cnVlKTtcbiAgICAgIHIucmVkcmF3SGludCgnZHJhZycsIHRydWUpO1xuICAgIH1cbiAgICByLnByZXZQeFJhdGlvID0gcGl4ZWxSYXRpbztcbiAgfVxuICBpZiAoIWZvcmNlZENvbnRleHQgJiYgci5tb3Rpb25CbHVyVGltZW91dCkge1xuICAgIGNsZWFyVGltZW91dChyLm1vdGlvbkJsdXJUaW1lb3V0KTtcbiAgfVxuICBpZiAobW90aW9uQmx1cikge1xuICAgIGlmIChyLm1iRnJhbWVzID09IG51bGwpIHtcbiAgICAgIHIubWJGcmFtZXMgPSAwO1xuICAgIH1cbiAgICByLm1iRnJhbWVzKys7XG4gICAgaWYgKHIubWJGcmFtZXMgPCAzKSB7XG4gICAgICAvLyBuZWVkIHNldmVyYWwgZnJhbWVzIGJlZm9yZSBldmVuIGhpZ2ggcXVhbGl0eSBtb3Rpb25ibHVyXG4gICAgICBtb3Rpb25CbHVyRmFkZUVmZmVjdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGdvIHRvIGxvd2VyIHF1YWxpdHkgYmx1cnJ5IGZyYW1lcyB3aGVuIHNldmVyYWwgbS9iIGZyYW1lcyBoYXZlIGJlZW4gcmVuZGVyZWQgKGF2b2lkcyBmbGFzaGluZylcbiAgICBpZiAoci5tYkZyYW1lcyA+IHIubWluTWJMb3dRdWFsRnJhbWVzKSB7XG4gICAgICAvL3IuZnVsbFF1YWxpdHlNYiA9IGZhbHNlO1xuICAgICAgci5tb3Rpb25CbHVyUHhSYXRpbyA9IHIubWJQeFJCbHVycnk7XG4gICAgfVxuICB9XG4gIGlmIChyLmNsZWFyaW5nTW90aW9uQmx1cikge1xuICAgIHIubW90aW9uQmx1clB4UmF0aW8gPSAxO1xuICB9XG5cbiAgLy8gYi9jIGRyYXdUb0NvbnRleHQoKSBtYXkgYmUgYXN5bmMgdy5yLnQuIHJlZHJhdygpLCBrZWVwIHRyYWNrIG9mIGxhc3QgdGV4dHVyZSBmcmFtZVxuICAvLyBiZWNhdXNlIGEgcm9ndWUgYXN5bmMgdGV4dHVyZSBmcmFtZSB3b3VsZCBjbGVhciBuZWVkRHJhd1xuICBpZiAoci50ZXh0dXJlRHJhd0xhc3RGcmFtZSAmJiAhdGV4dHVyZURyYXcpIHtcbiAgICBuZWVkRHJhd1tyLk5PREVdID0gdHJ1ZTtcbiAgICBuZWVkRHJhd1tyLlNFTEVDVF9CT1hdID0gdHJ1ZTtcbiAgfVxuICB2YXIgc3R5bGUgPSBjeS5zdHlsZSgpO1xuICB2YXIgem9vbSA9IGN5Lnpvb20oKTtcbiAgdmFyIGVmZmVjdGl2ZVpvb20gPSBmb3JjZWRab29tICE9PSB1bmRlZmluZWQgPyBmb3JjZWRab29tIDogem9vbTtcbiAgdmFyIHBhbiA9IGN5LnBhbigpO1xuICB2YXIgZWZmZWN0aXZlUGFuID0ge1xuICAgIHg6IHBhbi54LFxuICAgIHk6IHBhbi55XG4gIH07XG4gIHZhciB2cCA9IHtcbiAgICB6b29tOiB6b29tLFxuICAgIHBhbjoge1xuICAgICAgeDogcGFuLngsXG4gICAgICB5OiBwYW4ueVxuICAgIH1cbiAgfTtcbiAgdmFyIHByZXZWcCA9IHIucHJldlZpZXdwb3J0O1xuICB2YXIgdmlld3BvcnRJc0RpZmYgPSBwcmV2VnAgPT09IHVuZGVmaW5lZCB8fCB2cC56b29tICE9PSBwcmV2VnAuem9vbSB8fCB2cC5wYW4ueCAhPT0gcHJldlZwLnBhbi54IHx8IHZwLnBhbi55ICE9PSBwcmV2VnAucGFuLnk7XG5cbiAgLy8gd2Ugd2FudCB0aGUgbG93IHF1YWxpdHkgbW90aW9uYmx1ciBvbmx5IHdoZW4gdGhlIHZpZXdwb3J0IGlzIGJlaW5nIG1hbmlwdWxhdGVkIGV0YyAod2hlcmUgaXQncyBub3Qgbm90aWNlZClcbiAgaWYgKCF2aWV3cG9ydElzRGlmZiAmJiAhKGluTm9kZURyYWdHZXN0dXJlICYmICFoYXNDb21wb3VuZE5vZGVzKSkge1xuICAgIHIubW90aW9uQmx1clB4UmF0aW8gPSAxO1xuICB9XG4gIGlmIChmb3JjZWRQYW4pIHtcbiAgICBlZmZlY3RpdmVQYW4gPSBmb3JjZWRQYW47XG4gIH1cblxuICAvLyBhcHBseSBwaXhlbCByYXRpb1xuXG4gIGVmZmVjdGl2ZVpvb20gKj0gcGl4ZWxSYXRpbztcbiAgZWZmZWN0aXZlUGFuLnggKj0gcGl4ZWxSYXRpbztcbiAgZWZmZWN0aXZlUGFuLnkgKj0gcGl4ZWxSYXRpbztcbiAgdmFyIGVsZXMgPSByLmdldENhY2hlZFpTb3J0ZWRFbGVzKCk7XG4gIGZ1bmN0aW9uIG1iY2xlYXIoY29udGV4dCwgeCwgeSwgdywgaCkge1xuICAgIHZhciBnY28gPSBjb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbjtcbiAgICBjb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdkZXN0aW5hdGlvbi1vdXQnO1xuICAgIHIuY29sb3JGaWxsU3R5bGUoY29udGV4dCwgMjU1LCAyNTUsIDI1NSwgci5tb3Rpb25CbHVyVHJhbnNwYXJlbmN5KTtcbiAgICBjb250ZXh0LmZpbGxSZWN0KHgsIHksIHcsIGgpO1xuICAgIGNvbnRleHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gZ2NvO1xuICB9XG4gIGZ1bmN0aW9uIHNldENvbnRleHRUcmFuc2Zvcm0oY29udGV4dCwgY2xlYXIpIHtcbiAgICB2YXIgZVBhbiwgZVpvb20sIHcsIGg7XG4gICAgaWYgKCFyLmNsZWFyaW5nTW90aW9uQmx1ciAmJiAoY29udGV4dCA9PT0gZGF0YS5idWZmZXJDb250ZXh0c1tyLk1PVElPTkJMVVJfQlVGRkVSX05PREVdIHx8IGNvbnRleHQgPT09IGRhdGEuYnVmZmVyQ29udGV4dHNbci5NT1RJT05CTFVSX0JVRkZFUl9EUkFHXSkpIHtcbiAgICAgIGVQYW4gPSB7XG4gICAgICAgIHg6IHBhbi54ICogbWJQeFJhdGlvLFxuICAgICAgICB5OiBwYW4ueSAqIG1iUHhSYXRpb1xuICAgICAgfTtcbiAgICAgIGVab29tID0gem9vbSAqIG1iUHhSYXRpbztcbiAgICAgIHcgPSByLmNhbnZhc1dpZHRoICogbWJQeFJhdGlvO1xuICAgICAgaCA9IHIuY2FudmFzSGVpZ2h0ICogbWJQeFJhdGlvO1xuICAgIH0gZWxzZSB7XG4gICAgICBlUGFuID0gZWZmZWN0aXZlUGFuO1xuICAgICAgZVpvb20gPSBlZmZlY3RpdmVab29tO1xuICAgICAgdyA9IHIuY2FudmFzV2lkdGg7XG4gICAgICBoID0gci5jYW52YXNIZWlnaHQ7XG4gICAgfVxuICAgIGNvbnRleHQuc2V0VHJhbnNmb3JtKDEsIDAsIDAsIDEsIDAsIDApO1xuICAgIGlmIChjbGVhciA9PT0gJ21vdGlvbkJsdXInKSB7XG4gICAgICBtYmNsZWFyKGNvbnRleHQsIDAsIDAsIHcsIGgpO1xuICAgIH0gZWxzZSBpZiAoIWZvcmNlZENvbnRleHQgJiYgKGNsZWFyID09PSB1bmRlZmluZWQgfHwgY2xlYXIpKSB7XG4gICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCB3LCBoKTtcbiAgICB9XG4gICAgaWYgKCFkcmF3QWxsTGF5ZXJzKSB7XG4gICAgICBjb250ZXh0LnRyYW5zbGF0ZShlUGFuLngsIGVQYW4ueSk7XG4gICAgICBjb250ZXh0LnNjYWxlKGVab29tLCBlWm9vbSk7XG4gICAgfVxuICAgIGlmIChmb3JjZWRQYW4pIHtcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKGZvcmNlZFBhbi54LCBmb3JjZWRQYW4ueSk7XG4gICAgfVxuICAgIGlmIChmb3JjZWRab29tKSB7XG4gICAgICBjb250ZXh0LnNjYWxlKGZvcmNlZFpvb20sIGZvcmNlZFpvb20pO1xuICAgIH1cbiAgfVxuICBpZiAoIXRleHR1cmVEcmF3KSB7XG4gICAgci50ZXh0dXJlRHJhd0xhc3RGcmFtZSA9IGZhbHNlO1xuICB9XG4gIGlmICh0ZXh0dXJlRHJhdykge1xuICAgIHIudGV4dHVyZURyYXdMYXN0RnJhbWUgPSB0cnVlO1xuICAgIGlmICghci50ZXh0dXJlQ2FjaGUpIHtcbiAgICAgIHIudGV4dHVyZUNhY2hlID0ge307XG4gICAgICByLnRleHR1cmVDYWNoZS5iYiA9IGN5Lm11dGFibGVFbGVtZW50cygpLmJvdW5kaW5nQm94KCk7XG4gICAgICByLnRleHR1cmVDYWNoZS50ZXh0dXJlID0gci5kYXRhLmJ1ZmZlckNhbnZhc2VzW3IuVEVYVFVSRV9CVUZGRVJdO1xuICAgICAgdmFyIGN4dCA9IHIuZGF0YS5idWZmZXJDb250ZXh0c1tyLlRFWFRVUkVfQlVGRkVSXTtcbiAgICAgIGN4dC5zZXRUcmFuc2Zvcm0oMSwgMCwgMCwgMSwgMCwgMCk7XG4gICAgICBjeHQuY2xlYXJSZWN0KDAsIDAsIHIuY2FudmFzV2lkdGggKiByLnRleHR1cmVNdWx0LCByLmNhbnZhc0hlaWdodCAqIHIudGV4dHVyZU11bHQpO1xuICAgICAgci5yZW5kZXIoe1xuICAgICAgICBmb3JjZWRDb250ZXh0OiBjeHQsXG4gICAgICAgIGRyYXdPbmx5Tm9kZUxheWVyOiB0cnVlLFxuICAgICAgICBmb3JjZWRQeFJhdGlvOiBwaXhlbFJhdGlvICogci50ZXh0dXJlTXVsdFxuICAgICAgfSk7XG4gICAgICB2YXIgdnAgPSByLnRleHR1cmVDYWNoZS52aWV3cG9ydCA9IHtcbiAgICAgICAgem9vbTogY3kuem9vbSgpLFxuICAgICAgICBwYW46IGN5LnBhbigpLFxuICAgICAgICB3aWR0aDogci5jYW52YXNXaWR0aCxcbiAgICAgICAgaGVpZ2h0OiByLmNhbnZhc0hlaWdodFxuICAgICAgfTtcbiAgICAgIHZwLm1wYW4gPSB7XG4gICAgICAgIHg6ICgwIC0gdnAucGFuLngpIC8gdnAuem9vbSxcbiAgICAgICAgeTogKDAgLSB2cC5wYW4ueSkgLyB2cC56b29tXG4gICAgICB9O1xuICAgIH1cbiAgICBuZWVkRHJhd1tyLkRSQUddID0gZmFsc2U7XG4gICAgbmVlZERyYXdbci5OT0RFXSA9IGZhbHNlO1xuICAgIHZhciBjb250ZXh0ID0gZGF0YS5jb250ZXh0c1tyLk5PREVdO1xuICAgIHZhciB0ZXh0dXJlID0gci50ZXh0dXJlQ2FjaGUudGV4dHVyZTtcbiAgICB2YXIgdnAgPSByLnRleHR1cmVDYWNoZS52aWV3cG9ydDtcbiAgICBjb250ZXh0LnNldFRyYW5zZm9ybSgxLCAwLCAwLCAxLCAwLCAwKTtcbiAgICBpZiAobW90aW9uQmx1cikge1xuICAgICAgbWJjbGVhcihjb250ZXh0LCAwLCAwLCB2cC53aWR0aCwgdnAuaGVpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgdnAud2lkdGgsIHZwLmhlaWdodCk7XG4gICAgfVxuICAgIHZhciBvdXRzaWRlQmdDb2xvciA9IHN0eWxlLmNvcmUoJ291dHNpZGUtdGV4dHVyZS1iZy1jb2xvcicpLnZhbHVlO1xuICAgIHZhciBvdXRzaWRlQmdPcGFjaXR5ID0gc3R5bGUuY29yZSgnb3V0c2lkZS10ZXh0dXJlLWJnLW9wYWNpdHknKS52YWx1ZTtcbiAgICByLmNvbG9yRmlsbFN0eWxlKGNvbnRleHQsIG91dHNpZGVCZ0NvbG9yWzBdLCBvdXRzaWRlQmdDb2xvclsxXSwgb3V0c2lkZUJnQ29sb3JbMl0sIG91dHNpZGVCZ09wYWNpdHkpO1xuICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgdnAud2lkdGgsIHZwLmhlaWdodCk7XG4gICAgdmFyIHpvb20gPSBjeS56b29tKCk7XG4gICAgc2V0Q29udGV4dFRyYW5zZm9ybShjb250ZXh0LCBmYWxzZSk7XG4gICAgY29udGV4dC5jbGVhclJlY3QodnAubXBhbi54LCB2cC5tcGFuLnksIHZwLndpZHRoIC8gdnAuem9vbSAvIHBpeGVsUmF0aW8sIHZwLmhlaWdodCAvIHZwLnpvb20gLyBwaXhlbFJhdGlvKTtcbiAgICBjb250ZXh0LmRyYXdJbWFnZSh0ZXh0dXJlLCB2cC5tcGFuLngsIHZwLm1wYW4ueSwgdnAud2lkdGggLyB2cC56b29tIC8gcGl4ZWxSYXRpbywgdnAuaGVpZ2h0IC8gdnAuem9vbSAvIHBpeGVsUmF0aW8pO1xuICB9IGVsc2UgaWYgKHIudGV4dHVyZU9uVmlld3BvcnQgJiYgIWZvcmNlZENvbnRleHQpIHtcbiAgICAvLyBjbGVhciB0aGUgY2FjaGUgc2luY2Ugd2UgZG9uJ3QgbmVlZCBpdFxuICAgIHIudGV4dHVyZUNhY2hlID0gbnVsbDtcbiAgfVxuICB2YXIgZXh0ZW50ID0gY3kuZXh0ZW50KCk7XG4gIHZhciB2cE1hbmlwID0gci5waW5jaGluZyB8fCByLmhvdmVyRGF0YS5kcmFnZ2luZyB8fCByLnN3aXBlUGFubmluZyB8fCByLmRhdGEud2hlZWxab29taW5nIHx8IHIuaG92ZXJEYXRhLmRyYWdnaW5nRWxlcyB8fCByLmN5LmFuaW1hdGVkKCk7XG4gIHZhciBoaWRlRWRnZXMgPSByLmhpZGVFZGdlc09uVmlld3BvcnQgJiYgdnBNYW5pcDtcbiAgdmFyIG5lZWRNYkNsZWFyID0gW107XG4gIG5lZWRNYkNsZWFyW3IuTk9ERV0gPSAhbmVlZERyYXdbci5OT0RFXSAmJiBtb3Rpb25CbHVyICYmICFyLmNsZWFyZWRGb3JNb3Rpb25CbHVyW3IuTk9ERV0gfHwgci5jbGVhcmluZ01vdGlvbkJsdXI7XG4gIGlmIChuZWVkTWJDbGVhcltyLk5PREVdKSB7XG4gICAgci5jbGVhcmVkRm9yTW90aW9uQmx1cltyLk5PREVdID0gdHJ1ZTtcbiAgfVxuICBuZWVkTWJDbGVhcltyLkRSQUddID0gIW5lZWREcmF3W3IuRFJBR10gJiYgbW90aW9uQmx1ciAmJiAhci5jbGVhcmVkRm9yTW90aW9uQmx1cltyLkRSQUddIHx8IHIuY2xlYXJpbmdNb3Rpb25CbHVyO1xuICBpZiAobmVlZE1iQ2xlYXJbci5EUkFHXSkge1xuICAgIHIuY2xlYXJlZEZvck1vdGlvbkJsdXJbci5EUkFHXSA9IHRydWU7XG4gIH1cbiAgaWYgKG5lZWREcmF3W3IuTk9ERV0gfHwgZHJhd0FsbExheWVycyB8fCBkcmF3T25seU5vZGVMYXllciB8fCBuZWVkTWJDbGVhcltyLk5PREVdKSB7XG4gICAgdmFyIHVzZUJ1ZmZlciA9IG1vdGlvbkJsdXIgJiYgIW5lZWRNYkNsZWFyW3IuTk9ERV0gJiYgbWJQeFJhdGlvICE9PSAxO1xuICAgIHZhciBjb250ZXh0ID0gZm9yY2VkQ29udGV4dCB8fCAodXNlQnVmZmVyID8gci5kYXRhLmJ1ZmZlckNvbnRleHRzW3IuTU9USU9OQkxVUl9CVUZGRVJfTk9ERV0gOiBkYXRhLmNvbnRleHRzW3IuTk9ERV0pO1xuICAgIHZhciBjbGVhciA9IG1vdGlvbkJsdXIgJiYgIXVzZUJ1ZmZlciA/ICdtb3Rpb25CbHVyJyA6IHVuZGVmaW5lZDtcbiAgICBzZXRDb250ZXh0VHJhbnNmb3JtKGNvbnRleHQsIGNsZWFyKTtcbiAgICBpZiAoaGlkZUVkZ2VzKSB7XG4gICAgICByLmRyYXdDYWNoZWROb2Rlcyhjb250ZXh0LCBlbGVzLm5vbmRyYWcsIHBpeGVsUmF0aW8sIGV4dGVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHIuZHJhd0xheWVyZWRFbGVtZW50cyhjb250ZXh0LCBlbGVzLm5vbmRyYWcsIHBpeGVsUmF0aW8sIGV4dGVudCk7XG4gICAgfVxuICAgIGlmIChyLmRlYnVnKSB7XG4gICAgICByLmRyYXdEZWJ1Z1BvaW50cyhjb250ZXh0LCBlbGVzLm5vbmRyYWcpO1xuICAgIH1cbiAgICBpZiAoIWRyYXdBbGxMYXllcnMgJiYgIW1vdGlvbkJsdXIpIHtcbiAgICAgIG5lZWREcmF3W3IuTk9ERV0gPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgaWYgKCFkcmF3T25seU5vZGVMYXllciAmJiAobmVlZERyYXdbci5EUkFHXSB8fCBkcmF3QWxsTGF5ZXJzIHx8IG5lZWRNYkNsZWFyW3IuRFJBR10pKSB7XG4gICAgdmFyIHVzZUJ1ZmZlciA9IG1vdGlvbkJsdXIgJiYgIW5lZWRNYkNsZWFyW3IuRFJBR10gJiYgbWJQeFJhdGlvICE9PSAxO1xuICAgIHZhciBjb250ZXh0ID0gZm9yY2VkQ29udGV4dCB8fCAodXNlQnVmZmVyID8gci5kYXRhLmJ1ZmZlckNvbnRleHRzW3IuTU9USU9OQkxVUl9CVUZGRVJfRFJBR10gOiBkYXRhLmNvbnRleHRzW3IuRFJBR10pO1xuICAgIHNldENvbnRleHRUcmFuc2Zvcm0oY29udGV4dCwgbW90aW9uQmx1ciAmJiAhdXNlQnVmZmVyID8gJ21vdGlvbkJsdXInIDogdW5kZWZpbmVkKTtcbiAgICBpZiAoaGlkZUVkZ2VzKSB7XG4gICAgICByLmRyYXdDYWNoZWROb2Rlcyhjb250ZXh0LCBlbGVzLmRyYWcsIHBpeGVsUmF0aW8sIGV4dGVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHIuZHJhd0NhY2hlZEVsZW1lbnRzKGNvbnRleHQsIGVsZXMuZHJhZywgcGl4ZWxSYXRpbywgZXh0ZW50KTtcbiAgICB9XG4gICAgaWYgKHIuZGVidWcpIHtcbiAgICAgIHIuZHJhd0RlYnVnUG9pbnRzKGNvbnRleHQsIGVsZXMuZHJhZyk7XG4gICAgfVxuICAgIGlmICghZHJhd0FsbExheWVycyAmJiAhbW90aW9uQmx1cikge1xuICAgICAgbmVlZERyYXdbci5EUkFHXSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICBpZiAoci5zaG93RnBzIHx8ICFkcmF3T25seU5vZGVMYXllciAmJiBuZWVkRHJhd1tyLlNFTEVDVF9CT1hdICYmICFkcmF3QWxsTGF5ZXJzKSB7XG4gICAgdmFyIGNvbnRleHQgPSBmb3JjZWRDb250ZXh0IHx8IGRhdGEuY29udGV4dHNbci5TRUxFQ1RfQk9YXTtcbiAgICBzZXRDb250ZXh0VHJhbnNmb3JtKGNvbnRleHQpO1xuICAgIGlmIChyLnNlbGVjdGlvbls0XSA9PSAxICYmIChyLmhvdmVyRGF0YS5zZWxlY3RpbmcgfHwgci50b3VjaERhdGEuc2VsZWN0aW5nKSkge1xuICAgICAgdmFyIHpvb20gPSByLmN5Lnpvb20oKTtcbiAgICAgIHZhciBib3JkZXJXaWR0aCA9IHN0eWxlLmNvcmUoJ3NlbGVjdGlvbi1ib3gtYm9yZGVyLXdpZHRoJykudmFsdWUgLyB6b29tO1xuICAgICAgY29udGV4dC5saW5lV2lkdGggPSBib3JkZXJXaWR0aDtcbiAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoJyArIHN0eWxlLmNvcmUoJ3NlbGVjdGlvbi1ib3gtY29sb3InKS52YWx1ZVswXSArICcsJyArIHN0eWxlLmNvcmUoJ3NlbGVjdGlvbi1ib3gtY29sb3InKS52YWx1ZVsxXSArICcsJyArIHN0eWxlLmNvcmUoJ3NlbGVjdGlvbi1ib3gtY29sb3InKS52YWx1ZVsyXSArICcsJyArIHN0eWxlLmNvcmUoJ3NlbGVjdGlvbi1ib3gtb3BhY2l0eScpLnZhbHVlICsgJyknO1xuICAgICAgY29udGV4dC5maWxsUmVjdChyLnNlbGVjdGlvblswXSwgci5zZWxlY3Rpb25bMV0sIHIuc2VsZWN0aW9uWzJdIC0gci5zZWxlY3Rpb25bMF0sIHIuc2VsZWN0aW9uWzNdIC0gci5zZWxlY3Rpb25bMV0pO1xuICAgICAgaWYgKGJvcmRlcldpZHRoID4gMCkge1xuICAgICAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gJ3JnYmEoJyArIHN0eWxlLmNvcmUoJ3NlbGVjdGlvbi1ib3gtYm9yZGVyLWNvbG9yJykudmFsdWVbMF0gKyAnLCcgKyBzdHlsZS5jb3JlKCdzZWxlY3Rpb24tYm94LWJvcmRlci1jb2xvcicpLnZhbHVlWzFdICsgJywnICsgc3R5bGUuY29yZSgnc2VsZWN0aW9uLWJveC1ib3JkZXItY29sb3InKS52YWx1ZVsyXSArICcsJyArIHN0eWxlLmNvcmUoJ3NlbGVjdGlvbi1ib3gtb3BhY2l0eScpLnZhbHVlICsgJyknO1xuICAgICAgICBjb250ZXh0LnN0cm9rZVJlY3Qoci5zZWxlY3Rpb25bMF0sIHIuc2VsZWN0aW9uWzFdLCByLnNlbGVjdGlvblsyXSAtIHIuc2VsZWN0aW9uWzBdLCByLnNlbGVjdGlvblszXSAtIHIuc2VsZWN0aW9uWzFdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuYmdBY3RpdmVQb3Npc3Rpb24gJiYgIXIuaG92ZXJEYXRhLnNlbGVjdGluZykge1xuICAgICAgdmFyIHpvb20gPSByLmN5Lnpvb20oKTtcbiAgICAgIHZhciBwb3MgPSBkYXRhLmJnQWN0aXZlUG9zaXN0aW9uO1xuICAgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgnICsgc3R5bGUuY29yZSgnYWN0aXZlLWJnLWNvbG9yJykudmFsdWVbMF0gKyAnLCcgKyBzdHlsZS5jb3JlKCdhY3RpdmUtYmctY29sb3InKS52YWx1ZVsxXSArICcsJyArIHN0eWxlLmNvcmUoJ2FjdGl2ZS1iZy1jb2xvcicpLnZhbHVlWzJdICsgJywnICsgc3R5bGUuY29yZSgnYWN0aXZlLWJnLW9wYWNpdHknKS52YWx1ZSArICcpJztcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gICAgICBjb250ZXh0LmFyYyhwb3MueCwgcG9zLnksIHN0eWxlLmNvcmUoJ2FjdGl2ZS1iZy1zaXplJykucGZWYWx1ZSAvIHpvb20sIDAsIDIgKiBNYXRoLlBJKTtcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xuICAgIH1cbiAgICB2YXIgdGltZVRvUmVuZGVyID0gci5sYXN0UmVkcmF3VGltZTtcbiAgICBpZiAoci5zaG93RnBzICYmIHRpbWVUb1JlbmRlcikge1xuICAgICAgdGltZVRvUmVuZGVyID0gTWF0aC5yb3VuZCh0aW1lVG9SZW5kZXIpO1xuICAgICAgdmFyIGZwcyA9IE1hdGgucm91bmQoMTAwMCAvIHRpbWVUb1JlbmRlcik7XG4gICAgICBjb250ZXh0LnNldFRyYW5zZm9ybSgxLCAwLCAwLCAxLCAwLCAwKTtcbiAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMjU1LCAwLCAwLCAwLjc1KSc7XG4gICAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gJ3JnYmEoMjU1LCAwLCAwLCAwLjc1KSc7XG4gICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDE7XG4gICAgICBjb250ZXh0LmZpbGxUZXh0KCcxIGZyYW1lID0gJyArIHRpbWVUb1JlbmRlciArICcgbXMgPSAnICsgZnBzICsgJyBmcHMnLCAwLCAyMCk7XG4gICAgICB2YXIgbWF4RnBzID0gNjA7XG4gICAgICBjb250ZXh0LnN0cm9rZVJlY3QoMCwgMzAsIDI1MCwgMjApO1xuICAgICAgY29udGV4dC5maWxsUmVjdCgwLCAzMCwgMjUwICogTWF0aC5taW4oZnBzIC8gbWF4RnBzLCAxKSwgMjApO1xuICAgIH1cbiAgICBpZiAoIWRyYXdBbGxMYXllcnMpIHtcbiAgICAgIG5lZWREcmF3W3IuU0VMRUNUX0JPWF0gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvLyBtb3Rpb25ibHVyOiBibGl0IHJlbmRlcmVkIGJsdXJyeSBmcmFtZXNcbiAgaWYgKG1vdGlvbkJsdXIgJiYgbWJQeFJhdGlvICE9PSAxKSB7XG4gICAgdmFyIGN4dE5vZGUgPSBkYXRhLmNvbnRleHRzW3IuTk9ERV07XG4gICAgdmFyIHR4dE5vZGUgPSByLmRhdGEuYnVmZmVyQ2FudmFzZXNbci5NT1RJT05CTFVSX0JVRkZFUl9OT0RFXTtcbiAgICB2YXIgY3h0RHJhZyA9IGRhdGEuY29udGV4dHNbci5EUkFHXTtcbiAgICB2YXIgdHh0RHJhZyA9IHIuZGF0YS5idWZmZXJDYW52YXNlc1tyLk1PVElPTkJMVVJfQlVGRkVSX0RSQUddO1xuICAgIHZhciBkcmF3TW90aW9uQmx1ciA9IGZ1bmN0aW9uIGRyYXdNb3Rpb25CbHVyKGN4dCwgdHh0LCBuZWVkQ2xlYXIpIHtcbiAgICAgIGN4dC5zZXRUcmFuc2Zvcm0oMSwgMCwgMCwgMSwgMCwgMCk7XG4gICAgICBpZiAobmVlZENsZWFyIHx8ICFtb3Rpb25CbHVyRmFkZUVmZmVjdCkge1xuICAgICAgICBjeHQuY2xlYXJSZWN0KDAsIDAsIHIuY2FudmFzV2lkdGgsIHIuY2FudmFzSGVpZ2h0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1iY2xlYXIoY3h0LCAwLCAwLCByLmNhbnZhc1dpZHRoLCByLmNhbnZhc0hlaWdodCk7XG4gICAgICB9XG4gICAgICB2YXIgcHhyID0gbWJQeFJhdGlvO1xuICAgICAgY3h0LmRyYXdJbWFnZSh0eHQsXG4gICAgICAvLyBpbWdcbiAgICAgIDAsIDAsXG4gICAgICAvLyBzeCwgc3lcbiAgICAgIHIuY2FudmFzV2lkdGggKiBweHIsIHIuY2FudmFzSGVpZ2h0ICogcHhyLFxuICAgICAgLy8gc3csIHNoXG4gICAgICAwLCAwLFxuICAgICAgLy8geCwgeVxuICAgICAgci5jYW52YXNXaWR0aCwgci5jYW52YXNIZWlnaHQgLy8gdywgaFxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKG5lZWREcmF3W3IuTk9ERV0gfHwgbmVlZE1iQ2xlYXJbci5OT0RFXSkge1xuICAgICAgZHJhd01vdGlvbkJsdXIoY3h0Tm9kZSwgdHh0Tm9kZSwgbmVlZE1iQ2xlYXJbci5OT0RFXSk7XG4gICAgICBuZWVkRHJhd1tyLk5PREVdID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChuZWVkRHJhd1tyLkRSQUddIHx8IG5lZWRNYkNsZWFyW3IuRFJBR10pIHtcbiAgICAgIGRyYXdNb3Rpb25CbHVyKGN4dERyYWcsIHR4dERyYWcsIG5lZWRNYkNsZWFyW3IuRFJBR10pO1xuICAgICAgbmVlZERyYXdbci5EUkFHXSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICByLnByZXZWaWV3cG9ydCA9IHZwO1xuICBpZiAoci5jbGVhcmluZ01vdGlvbkJsdXIpIHtcbiAgICByLmNsZWFyaW5nTW90aW9uQmx1ciA9IGZhbHNlO1xuICAgIHIubW90aW9uQmx1ckNsZWFyZWQgPSB0cnVlO1xuICAgIHIubW90aW9uQmx1ciA9IHRydWU7XG4gIH1cbiAgaWYgKG1vdGlvbkJsdXIpIHtcbiAgICByLm1vdGlvbkJsdXJUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICByLm1vdGlvbkJsdXJUaW1lb3V0ID0gbnVsbDtcbiAgICAgIHIuY2xlYXJlZEZvck1vdGlvbkJsdXJbci5OT0RFXSA9IGZhbHNlO1xuICAgICAgci5jbGVhcmVkRm9yTW90aW9uQmx1cltyLkRSQUddID0gZmFsc2U7XG4gICAgICByLm1vdGlvbkJsdXIgPSBmYWxzZTtcbiAgICAgIHIuY2xlYXJpbmdNb3Rpb25CbHVyID0gIXRleHR1cmVEcmF3O1xuICAgICAgci5tYkZyYW1lcyA9IDA7XG4gICAgICBuZWVkRHJhd1tyLk5PREVdID0gdHJ1ZTtcbiAgICAgIG5lZWREcmF3W3IuRFJBR10gPSB0cnVlO1xuICAgICAgci5yZWRyYXcoKTtcbiAgICB9LCBtb3Rpb25CbHVyRGVsYXkpO1xuICB9XG4gIGlmICghZm9yY2VkQ29udGV4dCkge1xuICAgIGN5LmVtaXQoJ3JlbmRlcicpO1xuICB9XG59O1xuXG52YXIgQ1JwJDMgPSB7fTtcblxuLy8gQE8gUG9seWdvbiBkcmF3aW5nXG5DUnAkMy5kcmF3UG9seWdvblBhdGggPSBmdW5jdGlvbiAoY29udGV4dCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgcG9pbnRzKSB7XG4gIHZhciBoYWxmVyA9IHdpZHRoIC8gMjtcbiAgdmFyIGhhbGZIID0gaGVpZ2h0IC8gMjtcbiAgaWYgKGNvbnRleHQuYmVnaW5QYXRoKSB7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgfVxuICBjb250ZXh0Lm1vdmVUbyh4ICsgaGFsZlcgKiBwb2ludHNbMF0sIHkgKyBoYWxmSCAqIHBvaW50c1sxXSk7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgcG9pbnRzLmxlbmd0aCAvIDI7IGkrKykge1xuICAgIGNvbnRleHQubGluZVRvKHggKyBoYWxmVyAqIHBvaW50c1tpICogMl0sIHkgKyBoYWxmSCAqIHBvaW50c1tpICogMiArIDFdKTtcbiAgfVxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xufTtcbkNScCQzLmRyYXdSb3VuZFBvbHlnb25QYXRoID0gZnVuY3Rpb24gKGNvbnRleHQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHBvaW50cywgY29ybmVycykge1xuICBjb3JuZXJzLmZvckVhY2goZnVuY3Rpb24gKGNvcm5lcikge1xuICAgIHJldHVybiBkcmF3UHJlcGFyZWRSb3VuZENvcm5lcihjb250ZXh0LCBjb3JuZXIpO1xuICB9KTtcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcbn07XG5cbi8vIFJvdW5kIHJlY3RhbmdsZSBkcmF3aW5nXG5DUnAkMy5kcmF3Um91bmRSZWN0YW5nbGVQYXRoID0gZnVuY3Rpb24gKGNvbnRleHQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHJhZGl1cykge1xuICB2YXIgaGFsZldpZHRoID0gd2lkdGggLyAyO1xuICB2YXIgaGFsZkhlaWdodCA9IGhlaWdodCAvIDI7XG4gIHZhciBjb3JuZXJSYWRpdXMgPSByYWRpdXMgPT09ICdhdXRvJyA/IGdldFJvdW5kUmVjdGFuZ2xlUmFkaXVzKHdpZHRoLCBoZWlnaHQpIDogTWF0aC5taW4ocmFkaXVzLCBoYWxmSGVpZ2h0LCBoYWxmV2lkdGgpO1xuICBpZiAoY29udGV4dC5iZWdpblBhdGgpIHtcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xuICB9XG5cbiAgLy8gU3RhcnQgYXQgdG9wIG1pZGRsZVxuICBjb250ZXh0Lm1vdmVUbyh4LCB5IC0gaGFsZkhlaWdodCk7XG4gIC8vIEFyYyBmcm9tIG1pZGRsZSB0b3AgdG8gcmlnaHQgc2lkZVxuICBjb250ZXh0LmFyY1RvKHggKyBoYWxmV2lkdGgsIHkgLSBoYWxmSGVpZ2h0LCB4ICsgaGFsZldpZHRoLCB5LCBjb3JuZXJSYWRpdXMpO1xuICAvLyBBcmMgZnJvbSByaWdodCBzaWRlIHRvIGJvdHRvbVxuICBjb250ZXh0LmFyY1RvKHggKyBoYWxmV2lkdGgsIHkgKyBoYWxmSGVpZ2h0LCB4LCB5ICsgaGFsZkhlaWdodCwgY29ybmVyUmFkaXVzKTtcbiAgLy8gQXJjIGZyb20gYm90dG9tIHRvIGxlZnQgc2lkZVxuICBjb250ZXh0LmFyY1RvKHggLSBoYWxmV2lkdGgsIHkgKyBoYWxmSGVpZ2h0LCB4IC0gaGFsZldpZHRoLCB5LCBjb3JuZXJSYWRpdXMpO1xuICAvLyBBcmMgZnJvbSBsZWZ0IHNpZGUgdG8gdG9wQm9yZGVyXG4gIGNvbnRleHQuYXJjVG8oeCAtIGhhbGZXaWR0aCwgeSAtIGhhbGZIZWlnaHQsIHgsIHkgLSBoYWxmSGVpZ2h0LCBjb3JuZXJSYWRpdXMpO1xuICAvLyBKb2luIGxpbmVcbiAgY29udGV4dC5saW5lVG8oeCwgeSAtIGhhbGZIZWlnaHQpO1xuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xufTtcbkNScCQzLmRyYXdCb3R0b21Sb3VuZFJlY3RhbmdsZVBhdGggPSBmdW5jdGlvbiAoY29udGV4dCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgcmFkaXVzKSB7XG4gIHZhciBoYWxmV2lkdGggPSB3aWR0aCAvIDI7XG4gIHZhciBoYWxmSGVpZ2h0ID0gaGVpZ2h0IC8gMjtcbiAgdmFyIGNvcm5lclJhZGl1cyA9IHJhZGl1cyA9PT0gJ2F1dG8nID8gZ2V0Um91bmRSZWN0YW5nbGVSYWRpdXMod2lkdGgsIGhlaWdodCkgOiByYWRpdXM7XG4gIGlmIChjb250ZXh0LmJlZ2luUGF0aCkge1xuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIH1cblxuICAvLyBTdGFydCBhdCB0b3AgbWlkZGxlXG4gIGNvbnRleHQubW92ZVRvKHgsIHkgLSBoYWxmSGVpZ2h0KTtcbiAgY29udGV4dC5saW5lVG8oeCArIGhhbGZXaWR0aCwgeSAtIGhhbGZIZWlnaHQpO1xuICBjb250ZXh0LmxpbmVUbyh4ICsgaGFsZldpZHRoLCB5KTtcbiAgY29udGV4dC5hcmNUbyh4ICsgaGFsZldpZHRoLCB5ICsgaGFsZkhlaWdodCwgeCwgeSArIGhhbGZIZWlnaHQsIGNvcm5lclJhZGl1cyk7XG4gIGNvbnRleHQuYXJjVG8oeCAtIGhhbGZXaWR0aCwgeSArIGhhbGZIZWlnaHQsIHggLSBoYWxmV2lkdGgsIHksIGNvcm5lclJhZGl1cyk7XG4gIGNvbnRleHQubGluZVRvKHggLSBoYWxmV2lkdGgsIHkgLSBoYWxmSGVpZ2h0KTtcbiAgY29udGV4dC5saW5lVG8oeCwgeSAtIGhhbGZIZWlnaHQpO1xuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xufTtcbkNScCQzLmRyYXdDdXRSZWN0YW5nbGVQYXRoID0gZnVuY3Rpb24gKGNvbnRleHQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHBvaW50cywgY29ybmVycykge1xuICB2YXIgaGFsZldpZHRoID0gd2lkdGggLyAyO1xuICB2YXIgaGFsZkhlaWdodCA9IGhlaWdodCAvIDI7XG4gIHZhciBjb3JuZXJMZW5ndGggPSBjb3JuZXJzID09PSAnYXV0bycgPyBnZXRDdXRSZWN0YW5nbGVDb3JuZXJMZW5ndGgoKSA6IGNvcm5lcnM7XG4gIGlmIChjb250ZXh0LmJlZ2luUGF0aCkge1xuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIH1cbiAgY29udGV4dC5tb3ZlVG8oeCAtIGhhbGZXaWR0aCArIGNvcm5lckxlbmd0aCwgeSAtIGhhbGZIZWlnaHQpO1xuICBjb250ZXh0LmxpbmVUbyh4ICsgaGFsZldpZHRoIC0gY29ybmVyTGVuZ3RoLCB5IC0gaGFsZkhlaWdodCk7XG4gIGNvbnRleHQubGluZVRvKHggKyBoYWxmV2lkdGgsIHkgLSBoYWxmSGVpZ2h0ICsgY29ybmVyTGVuZ3RoKTtcbiAgY29udGV4dC5saW5lVG8oeCArIGhhbGZXaWR0aCwgeSArIGhhbGZIZWlnaHQgLSBjb3JuZXJMZW5ndGgpO1xuICBjb250ZXh0LmxpbmVUbyh4ICsgaGFsZldpZHRoIC0gY29ybmVyTGVuZ3RoLCB5ICsgaGFsZkhlaWdodCk7XG4gIGNvbnRleHQubGluZVRvKHggLSBoYWxmV2lkdGggKyBjb3JuZXJMZW5ndGgsIHkgKyBoYWxmSGVpZ2h0KTtcbiAgY29udGV4dC5saW5lVG8oeCAtIGhhbGZXaWR0aCwgeSArIGhhbGZIZWlnaHQgLSBjb3JuZXJMZW5ndGgpO1xuICBjb250ZXh0LmxpbmVUbyh4IC0gaGFsZldpZHRoLCB5IC0gaGFsZkhlaWdodCArIGNvcm5lckxlbmd0aCk7XG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XG59O1xuQ1JwJDMuZHJhd0JhcnJlbFBhdGggPSBmdW5jdGlvbiAoY29udGV4dCwgeCwgeSwgd2lkdGgsIGhlaWdodCkge1xuICB2YXIgaGFsZldpZHRoID0gd2lkdGggLyAyO1xuICB2YXIgaGFsZkhlaWdodCA9IGhlaWdodCAvIDI7XG4gIHZhciB4QmVnaW4gPSB4IC0gaGFsZldpZHRoO1xuICB2YXIgeEVuZCA9IHggKyBoYWxmV2lkdGg7XG4gIHZhciB5QmVnaW4gPSB5IC0gaGFsZkhlaWdodDtcbiAgdmFyIHlFbmQgPSB5ICsgaGFsZkhlaWdodDtcbiAgdmFyIGJhcnJlbEN1cnZlQ29uc3RhbnRzID0gZ2V0QmFycmVsQ3VydmVDb25zdGFudHMod2lkdGgsIGhlaWdodCk7XG4gIHZhciB3T2Zmc2V0ID0gYmFycmVsQ3VydmVDb25zdGFudHMud2lkdGhPZmZzZXQ7XG4gIHZhciBoT2Zmc2V0ID0gYmFycmVsQ3VydmVDb25zdGFudHMuaGVpZ2h0T2Zmc2V0O1xuICB2YXIgY3RybFB0WE9mZnNldCA9IGJhcnJlbEN1cnZlQ29uc3RhbnRzLmN0cmxQdE9mZnNldFBjdCAqIHdPZmZzZXQ7XG4gIGlmIChjb250ZXh0LmJlZ2luUGF0aCkge1xuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIH1cbiAgY29udGV4dC5tb3ZlVG8oeEJlZ2luLCB5QmVnaW4gKyBoT2Zmc2V0KTtcbiAgY29udGV4dC5saW5lVG8oeEJlZ2luLCB5RW5kIC0gaE9mZnNldCk7XG4gIGNvbnRleHQucXVhZHJhdGljQ3VydmVUbyh4QmVnaW4gKyBjdHJsUHRYT2Zmc2V0LCB5RW5kLCB4QmVnaW4gKyB3T2Zmc2V0LCB5RW5kKTtcbiAgY29udGV4dC5saW5lVG8oeEVuZCAtIHdPZmZzZXQsIHlFbmQpO1xuICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oeEVuZCAtIGN0cmxQdFhPZmZzZXQsIHlFbmQsIHhFbmQsIHlFbmQgLSBoT2Zmc2V0KTtcbiAgY29udGV4dC5saW5lVG8oeEVuZCwgeUJlZ2luICsgaE9mZnNldCk7XG4gIGNvbnRleHQucXVhZHJhdGljQ3VydmVUbyh4RW5kIC0gY3RybFB0WE9mZnNldCwgeUJlZ2luLCB4RW5kIC0gd09mZnNldCwgeUJlZ2luKTtcbiAgY29udGV4dC5saW5lVG8oeEJlZ2luICsgd09mZnNldCwgeUJlZ2luKTtcbiAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKHhCZWdpbiArIGN0cmxQdFhPZmZzZXQsIHlCZWdpbiwgeEJlZ2luLCB5QmVnaW4gKyBoT2Zmc2V0KTtcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcbn07XG52YXIgc2luMCA9IE1hdGguc2luKDApO1xudmFyIGNvczAgPSBNYXRoLmNvcygwKTtcbnZhciBzaW4gPSB7fTtcbnZhciBjb3MgPSB7fTtcbnZhciBlbGxpcHNlU3RlcFNpemUgPSBNYXRoLlBJIC8gNDA7XG5mb3IgKHZhciBpID0gMCAqIE1hdGguUEk7IGkgPCAyICogTWF0aC5QSTsgaSArPSBlbGxpcHNlU3RlcFNpemUpIHtcbiAgc2luW2ldID0gTWF0aC5zaW4oaSk7XG4gIGNvc1tpXSA9IE1hdGguY29zKGkpO1xufVxuQ1JwJDMuZHJhd0VsbGlwc2VQYXRoID0gZnVuY3Rpb24gKGNvbnRleHQsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoLCBoZWlnaHQpIHtcbiAgaWYgKGNvbnRleHQuYmVnaW5QYXRoKSB7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgfVxuICBpZiAoY29udGV4dC5lbGxpcHNlKSB7XG4gICAgY29udGV4dC5lbGxpcHNlKGNlbnRlclgsIGNlbnRlclksIHdpZHRoIC8gMiwgaGVpZ2h0IC8gMiwgMCwgMCwgMiAqIE1hdGguUEkpO1xuICB9IGVsc2Uge1xuICAgIHZhciB4UG9zLCB5UG9zO1xuICAgIHZhciBydyA9IHdpZHRoIC8gMjtcbiAgICB2YXIgcmggPSBoZWlnaHQgLyAyO1xuICAgIGZvciAodmFyIGkgPSAwICogTWF0aC5QSTsgaSA8IDIgKiBNYXRoLlBJOyBpICs9IGVsbGlwc2VTdGVwU2l6ZSkge1xuICAgICAgeFBvcyA9IGNlbnRlclggLSBydyAqIHNpbltpXSAqIHNpbjAgKyBydyAqIGNvc1tpXSAqIGNvczA7XG4gICAgICB5UG9zID0gY2VudGVyWSArIHJoICogY29zW2ldICogc2luMCArIHJoICogc2luW2ldICogY29zMDtcbiAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgIGNvbnRleHQubW92ZVRvKHhQb3MsIHlQb3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGV4dC5saW5lVG8oeFBvcywgeVBvcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XG59O1xuXG4vKiBnbG9iYWwgYXRvYiwgQXJyYXlCdWZmZXIsIFVpbnQ4QXJyYXksIEJsb2IgKi9cbnZhciBDUnAkMiA9IHt9O1xuQ1JwJDIuY3JlYXRlQnVmZmVyID0gZnVuY3Rpb24gKHcsIGgpIHtcbiAgdmFyIGJ1ZmZlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4gIGJ1ZmZlci53aWR0aCA9IHc7XG4gIGJ1ZmZlci5oZWlnaHQgPSBoO1xuICByZXR1cm4gW2J1ZmZlciwgYnVmZmVyLmdldENvbnRleHQoJzJkJyldO1xufTtcbkNScCQyLmJ1ZmZlckNhbnZhc0ltYWdlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgdmFyIGN5ID0gdGhpcy5jeTtcbiAgdmFyIGVsZXMgPSBjeS5tdXRhYmxlRWxlbWVudHMoKTtcbiAgdmFyIGJiID0gZWxlcy5ib3VuZGluZ0JveCgpO1xuICB2YXIgY3RyUmVjdCA9IHRoaXMuZmluZENvbnRhaW5lckNsaWVudENvb3JkcygpO1xuICB2YXIgd2lkdGggPSBvcHRpb25zLmZ1bGwgPyBNYXRoLmNlaWwoYmIudykgOiBjdHJSZWN0WzJdO1xuICB2YXIgaGVpZ2h0ID0gb3B0aW9ucy5mdWxsID8gTWF0aC5jZWlsKGJiLmgpIDogY3RyUmVjdFszXTtcbiAgdmFyIHNwZWNkTWF4RGltcyA9IG51bWJlciQxKG9wdGlvbnMubWF4V2lkdGgpIHx8IG51bWJlciQxKG9wdGlvbnMubWF4SGVpZ2h0KTtcbiAgdmFyIHB4UmF0aW8gPSB0aGlzLmdldFBpeGVsUmF0aW8oKTtcbiAgdmFyIHNjYWxlID0gMTtcbiAgaWYgKG9wdGlvbnMuc2NhbGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHdpZHRoICo9IG9wdGlvbnMuc2NhbGU7XG4gICAgaGVpZ2h0ICo9IG9wdGlvbnMuc2NhbGU7XG4gICAgc2NhbGUgPSBvcHRpb25zLnNjYWxlO1xuICB9IGVsc2UgaWYgKHNwZWNkTWF4RGltcykge1xuICAgIHZhciBtYXhTY2FsZVcgPSBJbmZpbml0eTtcbiAgICB2YXIgbWF4U2NhbGVIID0gSW5maW5pdHk7XG4gICAgaWYgKG51bWJlciQxKG9wdGlvbnMubWF4V2lkdGgpKSB7XG4gICAgICBtYXhTY2FsZVcgPSBzY2FsZSAqIG9wdGlvbnMubWF4V2lkdGggLyB3aWR0aDtcbiAgICB9XG4gICAgaWYgKG51bWJlciQxKG9wdGlvbnMubWF4SGVpZ2h0KSkge1xuICAgICAgbWF4U2NhbGVIID0gc2NhbGUgKiBvcHRpb25zLm1heEhlaWdodCAvIGhlaWdodDtcbiAgICB9XG4gICAgc2NhbGUgPSBNYXRoLm1pbihtYXhTY2FsZVcsIG1heFNjYWxlSCk7XG4gICAgd2lkdGggKj0gc2NhbGU7XG4gICAgaGVpZ2h0ICo9IHNjYWxlO1xuICB9XG4gIGlmICghc3BlY2RNYXhEaW1zKSB7XG4gICAgd2lkdGggKj0gcHhSYXRpbztcbiAgICBoZWlnaHQgKj0gcHhSYXRpbztcbiAgICBzY2FsZSAqPSBweFJhdGlvO1xuICB9XG4gIHZhciBidWZmQ2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblxuICBidWZmQ2FudmFzLndpZHRoID0gd2lkdGg7XG4gIGJ1ZmZDYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuICBidWZmQ2FudmFzLnN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICBidWZmQ2FudmFzLnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7XG4gIHZhciBidWZmQ3h0ID0gYnVmZkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuXG4gIC8vIFJhc3Rlcml6ZSB0aGUgbGF5ZXJzLCBidXQgb25seSBpZiBjb250YWluZXIgaGFzIG5vbnplcm8gc2l6ZVxuICBpZiAod2lkdGggPiAwICYmIGhlaWdodCA+IDApIHtcbiAgICBidWZmQ3h0LmNsZWFyUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICBidWZmQ3h0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdzb3VyY2Utb3Zlcic7XG4gICAgdmFyIHpzb3J0ZWRFbGVzID0gdGhpcy5nZXRDYWNoZWRaU29ydGVkRWxlcygpO1xuICAgIGlmIChvcHRpb25zLmZ1bGwpIHtcbiAgICAgIC8vIGRyYXcgdGhlIGZ1bGwgYm91bmRzIG9mIHRoZSBncmFwaFxuICAgICAgYnVmZkN4dC50cmFuc2xhdGUoLWJiLngxICogc2NhbGUsIC1iYi55MSAqIHNjYWxlKTtcbiAgICAgIGJ1ZmZDeHQuc2NhbGUoc2NhbGUsIHNjYWxlKTtcbiAgICAgIHRoaXMuZHJhd0VsZW1lbnRzKGJ1ZmZDeHQsIHpzb3J0ZWRFbGVzKTtcbiAgICAgIGJ1ZmZDeHQuc2NhbGUoMSAvIHNjYWxlLCAxIC8gc2NhbGUpO1xuICAgICAgYnVmZkN4dC50cmFuc2xhdGUoYmIueDEgKiBzY2FsZSwgYmIueTEgKiBzY2FsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGRyYXcgdGhlIGN1cnJlbnQgdmlld1xuICAgICAgdmFyIHBhbiA9IGN5LnBhbigpO1xuICAgICAgdmFyIHRyYW5zbGF0aW9uID0ge1xuICAgICAgICB4OiBwYW4ueCAqIHNjYWxlLFxuICAgICAgICB5OiBwYW4ueSAqIHNjYWxlXG4gICAgICB9O1xuICAgICAgc2NhbGUgKj0gY3kuem9vbSgpO1xuICAgICAgYnVmZkN4dC50cmFuc2xhdGUodHJhbnNsYXRpb24ueCwgdHJhbnNsYXRpb24ueSk7XG4gICAgICBidWZmQ3h0LnNjYWxlKHNjYWxlLCBzY2FsZSk7XG4gICAgICB0aGlzLmRyYXdFbGVtZW50cyhidWZmQ3h0LCB6c29ydGVkRWxlcyk7XG4gICAgICBidWZmQ3h0LnNjYWxlKDEgLyBzY2FsZSwgMSAvIHNjYWxlKTtcbiAgICAgIGJ1ZmZDeHQudHJhbnNsYXRlKC10cmFuc2xhdGlvbi54LCAtdHJhbnNsYXRpb24ueSk7XG4gICAgfVxuXG4gICAgLy8gbmVlZCB0byBmaWxsIGJnIGF0IGVuZCBsaWtlIHRoaXMgaW4gb3JkZXIgdG8gZmlsbCBjbGVhcmVkIHRyYW5zcGFyZW50IHBpeGVscyBpbiBqcGdzXG4gICAgaWYgKG9wdGlvbnMuYmcpIHtcbiAgICAgIGJ1ZmZDeHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ2Rlc3RpbmF0aW9uLW92ZXInO1xuICAgICAgYnVmZkN4dC5maWxsU3R5bGUgPSBvcHRpb25zLmJnO1xuICAgICAgYnVmZkN4dC5yZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgYnVmZkN4dC5maWxsKCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBidWZmQ2FudmFzO1xufTtcbmZ1bmN0aW9uIGI2NFRvQmxvYihiNjQsIG1pbWVUeXBlKSB7XG4gIHZhciBieXRlcyA9IGF0b2IoYjY0KTtcbiAgdmFyIGJ1ZmYgPSBuZXcgQXJyYXlCdWZmZXIoYnl0ZXMubGVuZ3RoKTtcbiAgdmFyIGJ1ZmZVaW50OCA9IG5ldyBVaW50OEFycmF5KGJ1ZmYpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgYnVmZlVpbnQ4W2ldID0gYnl0ZXMuY2hhckNvZGVBdChpKTtcbiAgfVxuICByZXR1cm4gbmV3IEJsb2IoW2J1ZmZdLCB7XG4gICAgdHlwZTogbWltZVR5cGVcbiAgfSk7XG59XG5mdW5jdGlvbiBiNjRVcmlUb0I2NChiNjR1cmkpIHtcbiAgdmFyIGkgPSBiNjR1cmkuaW5kZXhPZignLCcpO1xuICByZXR1cm4gYjY0dXJpLnN1YnN0cihpICsgMSk7XG59XG5mdW5jdGlvbiBvdXRwdXQob3B0aW9ucywgY2FudmFzLCBtaW1lVHlwZSkge1xuICB2YXIgZ2V0QjY0VXJpID0gZnVuY3Rpb24gZ2V0QjY0VXJpKCkge1xuICAgIHJldHVybiBjYW52YXMudG9EYXRhVVJMKG1pbWVUeXBlLCBvcHRpb25zLnF1YWxpdHkpO1xuICB9O1xuICBzd2l0Y2ggKG9wdGlvbnMub3V0cHV0KSB7XG4gICAgY2FzZSAnYmxvYi1wcm9taXNlJzpcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjYW52YXMudG9CbG9iKGZ1bmN0aW9uIChibG9iKSB7XG4gICAgICAgICAgICBpZiAoYmxvYiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgIHJlc29sdmUoYmxvYik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdgY2FudmFzLnRvQmxvYigpYCBzZW50IGEgbnVsbCB2YWx1ZSBpbiBpdHMgY2FsbGJhY2snKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgbWltZVR5cGUsIG9wdGlvbnMucXVhbGl0eSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBjYXNlICdibG9iJzpcbiAgICAgIHJldHVybiBiNjRUb0Jsb2IoYjY0VXJpVG9CNjQoZ2V0QjY0VXJpKCkpLCBtaW1lVHlwZSk7XG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgIHJldHVybiBiNjRVcmlUb0I2NChnZXRCNjRVcmkoKSk7XG4gICAgY2FzZSAnYmFzZTY0dXJpJzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGdldEI2NFVyaSgpO1xuICB9XG59XG5DUnAkMi5wbmcgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICByZXR1cm4gb3V0cHV0KG9wdGlvbnMsIHRoaXMuYnVmZmVyQ2FudmFzSW1hZ2Uob3B0aW9ucyksICdpbWFnZS9wbmcnKTtcbn07XG5DUnAkMi5qcGcgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICByZXR1cm4gb3V0cHV0KG9wdGlvbnMsIHRoaXMuYnVmZmVyQ2FudmFzSW1hZ2Uob3B0aW9ucyksICdpbWFnZS9qcGVnJyk7XG59O1xuXG52YXIgQ1JwJDEgPSB7fTtcbkNScCQxLm5vZGVTaGFwZUltcGwgPSBmdW5jdGlvbiAobmFtZSwgY29udGV4dCwgY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgcG9pbnRzLCBjb3JuZXJzKSB7XG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgJ2VsbGlwc2UnOlxuICAgICAgcmV0dXJuIHRoaXMuZHJhd0VsbGlwc2VQYXRoKGNvbnRleHQsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoLCBoZWlnaHQpO1xuICAgIGNhc2UgJ3BvbHlnb24nOlxuICAgICAgcmV0dXJuIHRoaXMuZHJhd1BvbHlnb25QYXRoKGNvbnRleHQsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoLCBoZWlnaHQsIHBvaW50cyk7XG4gICAgY2FzZSAncm91bmQtcG9seWdvbic6XG4gICAgICByZXR1cm4gdGhpcy5kcmF3Um91bmRQb2x5Z29uUGF0aChjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCBwb2ludHMsIGNvcm5lcnMpO1xuICAgIGNhc2UgJ3JvdW5kcmVjdGFuZ2xlJzpcbiAgICBjYXNlICdyb3VuZC1yZWN0YW5nbGUnOlxuICAgICAgcmV0dXJuIHRoaXMuZHJhd1JvdW5kUmVjdGFuZ2xlUGF0aChjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0LCBjb3JuZXJzKTtcbiAgICBjYXNlICdjdXRyZWN0YW5nbGUnOlxuICAgIGNhc2UgJ2N1dC1yZWN0YW5nbGUnOlxuICAgICAgcmV0dXJuIHRoaXMuZHJhd0N1dFJlY3RhbmdsZVBhdGgoY29udGV4dCwgY2VudGVyWCwgY2VudGVyWSwgd2lkdGgsIGhlaWdodCwgcG9pbnRzLCBjb3JuZXJzKTtcbiAgICBjYXNlICdib3R0b21yb3VuZHJlY3RhbmdsZSc6XG4gICAgY2FzZSAnYm90dG9tLXJvdW5kLXJlY3RhbmdsZSc6XG4gICAgICByZXR1cm4gdGhpcy5kcmF3Qm90dG9tUm91bmRSZWN0YW5nbGVQYXRoKGNvbnRleHQsIGNlbnRlclgsIGNlbnRlclksIHdpZHRoLCBoZWlnaHQsIGNvcm5lcnMpO1xuICAgIGNhc2UgJ2JhcnJlbCc6XG4gICAgICByZXR1cm4gdGhpcy5kcmF3QmFycmVsUGF0aChjb250ZXh0LCBjZW50ZXJYLCBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0KTtcbiAgfVxufTtcblxudmFyIENSID0gQ2FudmFzUmVuZGVyZXI7XG52YXIgQ1JwID0gQ2FudmFzUmVuZGVyZXIucHJvdG90eXBlO1xuQ1JwLkNBTlZBU19MQVlFUlMgPSAzO1xuLy9cbkNScC5TRUxFQ1RfQk9YID0gMDtcbkNScC5EUkFHID0gMTtcbkNScC5OT0RFID0gMjtcbkNScC5CVUZGRVJfQ09VTlQgPSAzO1xuLy9cbkNScC5URVhUVVJFX0JVRkZFUiA9IDA7XG5DUnAuTU9USU9OQkxVUl9CVUZGRVJfTk9ERSA9IDE7XG5DUnAuTU9USU9OQkxVUl9CVUZGRVJfRFJBRyA9IDI7XG5mdW5jdGlvbiBDYW52YXNSZW5kZXJlcihvcHRpb25zKSB7XG4gIHZhciByID0gdGhpcztcbiAgdmFyIGNvbnRhaW5lcldpbmRvdyA9IHIuY3kud2luZG93KCk7XG4gIHZhciBkb2N1bWVudCA9IGNvbnRhaW5lcldpbmRvdy5kb2N1bWVudDtcbiAgci5kYXRhID0ge1xuICAgIGNhbnZhc2VzOiBuZXcgQXJyYXkoQ1JwLkNBTlZBU19MQVlFUlMpLFxuICAgIGNvbnRleHRzOiBuZXcgQXJyYXkoQ1JwLkNBTlZBU19MQVlFUlMpLFxuICAgIGNhbnZhc05lZWRzUmVkcmF3OiBuZXcgQXJyYXkoQ1JwLkNBTlZBU19MQVlFUlMpLFxuICAgIGJ1ZmZlckNhbnZhc2VzOiBuZXcgQXJyYXkoQ1JwLkJVRkZFUl9DT1VOVCksXG4gICAgYnVmZmVyQ29udGV4dHM6IG5ldyBBcnJheShDUnAuQ0FOVkFTX0xBWUVSUylcbiAgfTtcbiAgdmFyIHRhcEhsT2ZmQXR0ciA9ICctd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3InO1xuICB2YXIgdGFwSGxPZmZTdHlsZSA9ICdyZ2JhKDAsMCwwLDApJztcbiAgci5kYXRhLmNhbnZhc0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4gIHZhciBjb250YWluZXJTdHlsZSA9IHIuZGF0YS5jYW52YXNDb250YWluZXIuc3R5bGU7XG4gIHIuZGF0YS5jYW52YXNDb250YWluZXIuc3R5bGVbdGFwSGxPZmZBdHRyXSA9IHRhcEhsT2ZmU3R5bGU7XG4gIGNvbnRhaW5lclN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgY29udGFpbmVyU3R5bGUuekluZGV4ID0gJzAnO1xuICBjb250YWluZXJTdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICB2YXIgY29udGFpbmVyID0gb3B0aW9ucy5jeS5jb250YWluZXIoKTtcbiAgY29udGFpbmVyLmFwcGVuZENoaWxkKHIuZGF0YS5jYW52YXNDb250YWluZXIpO1xuICBjb250YWluZXIuc3R5bGVbdGFwSGxPZmZBdHRyXSA9IHRhcEhsT2ZmU3R5bGU7XG4gIHZhciBzdHlsZU1hcCA9IHtcbiAgICAnLXdlYmtpdC11c2VyLXNlbGVjdCc6ICdub25lJyxcbiAgICAnLW1vei11c2VyLXNlbGVjdCc6ICctbW96LW5vbmUnLFxuICAgICd1c2VyLXNlbGVjdCc6ICdub25lJyxcbiAgICAnLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yJzogJ3JnYmEoMCwwLDAsMCknLFxuICAgICdvdXRsaW5lLXN0eWxlJzogJ25vbmUnXG4gIH07XG4gIGlmIChtcygpKSB7XG4gICAgc3R5bGVNYXBbJy1tcy10b3VjaC1hY3Rpb24nXSA9ICdub25lJztcbiAgICBzdHlsZU1hcFsndG91Y2gtYWN0aW9uJ10gPSAnbm9uZSc7XG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBDUnAuQ0FOVkFTX0xBWUVSUzsgaSsrKSB7XG4gICAgdmFyIGNhbnZhcyA9IHIuZGF0YS5jYW52YXNlc1tpXSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4gICAgci5kYXRhLmNvbnRleHRzW2ldID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgT2JqZWN0LmtleXMoc3R5bGVNYXApLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICAgIGNhbnZhcy5zdHlsZVtrXSA9IHN0eWxlTWFwW2tdO1xuICAgIH0pO1xuICAgIGNhbnZhcy5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgY2FudmFzLnNldEF0dHJpYnV0ZSgnZGF0YS1pZCcsICdsYXllcicgKyBpKTtcbiAgICBjYW52YXMuc3R5bGUuekluZGV4ID0gU3RyaW5nKENScC5DQU5WQVNfTEFZRVJTIC0gaSk7XG4gICAgci5kYXRhLmNhbnZhc0NvbnRhaW5lci5hcHBlbmRDaGlsZChjYW52YXMpO1xuICAgIHIuZGF0YS5jYW52YXNOZWVkc1JlZHJhd1tpXSA9IGZhbHNlO1xuICB9XG4gIHIuZGF0YS50b3BDYW52YXMgPSByLmRhdGEuY2FudmFzZXNbMF07XG4gIHIuZGF0YS5jYW52YXNlc1tDUnAuTk9ERV0uc2V0QXR0cmlidXRlKCdkYXRhLWlkJywgJ2xheWVyJyArIENScC5OT0RFICsgJy1ub2RlJyk7XG4gIHIuZGF0YS5jYW52YXNlc1tDUnAuU0VMRUNUX0JPWF0uc2V0QXR0cmlidXRlKCdkYXRhLWlkJywgJ2xheWVyJyArIENScC5TRUxFQ1RfQk9YICsgJy1zZWxlY3Rib3gnKTtcbiAgci5kYXRhLmNhbnZhc2VzW0NScC5EUkFHXS5zZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnLCAnbGF5ZXInICsgQ1JwLkRSQUcgKyAnLWRyYWcnKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBDUnAuQlVGRkVSX0NPVU5UOyBpKyspIHtcbiAgICByLmRhdGEuYnVmZmVyQ2FudmFzZXNbaV0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuICAgIHIuZGF0YS5idWZmZXJDb250ZXh0c1tpXSA9IHIuZGF0YS5idWZmZXJDYW52YXNlc1tpXS5nZXRDb250ZXh0KCcyZCcpO1xuICAgIHIuZGF0YS5idWZmZXJDYW52YXNlc1tpXS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgci5kYXRhLmJ1ZmZlckNhbnZhc2VzW2ldLnNldEF0dHJpYnV0ZSgnZGF0YS1pZCcsICdidWZmZXInICsgaSk7XG4gICAgci5kYXRhLmJ1ZmZlckNhbnZhc2VzW2ldLnN0eWxlLnpJbmRleCA9IFN0cmluZygtaSAtIDEpO1xuICAgIHIuZGF0YS5idWZmZXJDYW52YXNlc1tpXS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgLy9yLmRhdGEuY2FudmFzQ29udGFpbmVyLmFwcGVuZENoaWxkKHIuZGF0YS5idWZmZXJDYW52YXNlc1tpXSk7XG4gIH1cblxuICByLnBhdGhzRW5hYmxlZCA9IHRydWU7XG4gIHZhciBlbXB0eUJiID0gbWFrZUJvdW5kaW5nQm94KCk7XG4gIHZhciBnZXRCb3hDZW50ZXIgPSBmdW5jdGlvbiBnZXRCb3hDZW50ZXIoYmIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgeDogKGJiLngxICsgYmIueDIpIC8gMixcbiAgICAgIHk6IChiYi55MSArIGJiLnkyKSAvIDJcbiAgICB9O1xuICB9O1xuICB2YXIgZ2V0Q2VudGVyT2Zmc2V0ID0gZnVuY3Rpb24gZ2V0Q2VudGVyT2Zmc2V0KGJiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IC1iYi53IC8gMixcbiAgICAgIHk6IC1iYi5oIC8gMlxuICAgIH07XG4gIH07XG4gIHZhciBiYWNrZ3JvdW5kVGltZXN0YW1wSGFzQ2hhbmdlZCA9IGZ1bmN0aW9uIGJhY2tncm91bmRUaW1lc3RhbXBIYXNDaGFuZ2VkKGVsZSkge1xuICAgIHZhciBfcCA9IGVsZVswXS5fcHJpdmF0ZTtcbiAgICB2YXIgc2FtZSA9IF9wLm9sZEJhY2tncm91bmRUaW1lc3RhbXAgPT09IF9wLmJhY2tncm91bmRUaW1lc3RhbXA7XG4gICAgcmV0dXJuICFzYW1lO1xuICB9O1xuICB2YXIgZ2V0U3R5bGVLZXkgPSBmdW5jdGlvbiBnZXRTdHlsZUtleShlbGUpIHtcbiAgICByZXR1cm4gZWxlWzBdLl9wcml2YXRlLm5vZGVLZXk7XG4gIH07XG4gIHZhciBnZXRMYWJlbEtleSA9IGZ1bmN0aW9uIGdldExhYmVsS2V5KGVsZSkge1xuICAgIHJldHVybiBlbGVbMF0uX3ByaXZhdGUubGFiZWxTdHlsZUtleTtcbiAgfTtcbiAgdmFyIGdldFNvdXJjZUxhYmVsS2V5ID0gZnVuY3Rpb24gZ2V0U291cmNlTGFiZWxLZXkoZWxlKSB7XG4gICAgcmV0dXJuIGVsZVswXS5fcHJpdmF0ZS5zb3VyY2VMYWJlbFN0eWxlS2V5O1xuICB9O1xuICB2YXIgZ2V0VGFyZ2V0TGFiZWxLZXkgPSBmdW5jdGlvbiBnZXRUYXJnZXRMYWJlbEtleShlbGUpIHtcbiAgICByZXR1cm4gZWxlWzBdLl9wcml2YXRlLnRhcmdldExhYmVsU3R5bGVLZXk7XG4gIH07XG4gIHZhciBkcmF3RWxlbWVudCA9IGZ1bmN0aW9uIGRyYXdFbGVtZW50KGNvbnRleHQsIGVsZSwgYmIsIHNjYWxlZExhYmVsU2hvd24sIHVzZUVsZU9wYWNpdHkpIHtcbiAgICByZXR1cm4gci5kcmF3RWxlbWVudChjb250ZXh0LCBlbGUsIGJiLCBmYWxzZSwgZmFsc2UsIHVzZUVsZU9wYWNpdHkpO1xuICB9O1xuICB2YXIgZHJhd0xhYmVsID0gZnVuY3Rpb24gZHJhd0xhYmVsKGNvbnRleHQsIGVsZSwgYmIsIHNjYWxlZExhYmVsU2hvd24sIHVzZUVsZU9wYWNpdHkpIHtcbiAgICByZXR1cm4gci5kcmF3RWxlbWVudFRleHQoY29udGV4dCwgZWxlLCBiYiwgc2NhbGVkTGFiZWxTaG93biwgJ21haW4nLCB1c2VFbGVPcGFjaXR5KTtcbiAgfTtcbiAgdmFyIGRyYXdTb3VyY2VMYWJlbCA9IGZ1bmN0aW9uIGRyYXdTb3VyY2VMYWJlbChjb250ZXh0LCBlbGUsIGJiLCBzY2FsZWRMYWJlbFNob3duLCB1c2VFbGVPcGFjaXR5KSB7XG4gICAgcmV0dXJuIHIuZHJhd0VsZW1lbnRUZXh0KGNvbnRleHQsIGVsZSwgYmIsIHNjYWxlZExhYmVsU2hvd24sICdzb3VyY2UnLCB1c2VFbGVPcGFjaXR5KTtcbiAgfTtcbiAgdmFyIGRyYXdUYXJnZXRMYWJlbCA9IGZ1bmN0aW9uIGRyYXdUYXJnZXRMYWJlbChjb250ZXh0LCBlbGUsIGJiLCBzY2FsZWRMYWJlbFNob3duLCB1c2VFbGVPcGFjaXR5KSB7XG4gICAgcmV0dXJuIHIuZHJhd0VsZW1lbnRUZXh0KGNvbnRleHQsIGVsZSwgYmIsIHNjYWxlZExhYmVsU2hvd24sICd0YXJnZXQnLCB1c2VFbGVPcGFjaXR5KTtcbiAgfTtcbiAgdmFyIGdldEVsZW1lbnRCb3ggPSBmdW5jdGlvbiBnZXRFbGVtZW50Qm94KGVsZSkge1xuICAgIGVsZS5ib3VuZGluZ0JveCgpO1xuICAgIHJldHVybiBlbGVbMF0uX3ByaXZhdGUuYm9keUJvdW5kcztcbiAgfTtcbiAgdmFyIGdldExhYmVsQm94ID0gZnVuY3Rpb24gZ2V0TGFiZWxCb3goZWxlKSB7XG4gICAgZWxlLmJvdW5kaW5nQm94KCk7XG4gICAgcmV0dXJuIGVsZVswXS5fcHJpdmF0ZS5sYWJlbEJvdW5kcy5tYWluIHx8IGVtcHR5QmI7XG4gIH07XG4gIHZhciBnZXRTb3VyY2VMYWJlbEJveCA9IGZ1bmN0aW9uIGdldFNvdXJjZUxhYmVsQm94KGVsZSkge1xuICAgIGVsZS5ib3VuZGluZ0JveCgpO1xuICAgIHJldHVybiBlbGVbMF0uX3ByaXZhdGUubGFiZWxCb3VuZHMuc291cmNlIHx8IGVtcHR5QmI7XG4gIH07XG4gIHZhciBnZXRUYXJnZXRMYWJlbEJveCA9IGZ1bmN0aW9uIGdldFRhcmdldExhYmVsQm94KGVsZSkge1xuICAgIGVsZS5ib3VuZGluZ0JveCgpO1xuICAgIHJldHVybiBlbGVbMF0uX3ByaXZhdGUubGFiZWxCb3VuZHMudGFyZ2V0IHx8IGVtcHR5QmI7XG4gIH07XG4gIHZhciBpc0xhYmVsVmlzaWJsZUF0U2NhbGUgPSBmdW5jdGlvbiBpc0xhYmVsVmlzaWJsZUF0U2NhbGUoZWxlLCBzY2FsZWRMYWJlbFNob3duKSB7XG4gICAgcmV0dXJuIHNjYWxlZExhYmVsU2hvd247XG4gIH07XG4gIHZhciBnZXRFbGVtZW50Um90YXRpb25Qb2ludCA9IGZ1bmN0aW9uIGdldEVsZW1lbnRSb3RhdGlvblBvaW50KGVsZSkge1xuICAgIHJldHVybiBnZXRCb3hDZW50ZXIoZ2V0RWxlbWVudEJveChlbGUpKTtcbiAgfTtcbiAgdmFyIGFkZFRleHRNYXJnaW4gPSBmdW5jdGlvbiBhZGRUZXh0TWFyZ2luKHByZWZpeCwgcHQsIGVsZSkge1xuICAgIHZhciBwcmUgPSBwcmVmaXggPyBwcmVmaXggKyAnLScgOiAnJztcbiAgICByZXR1cm4ge1xuICAgICAgeDogcHQueCArIGVsZS5wc3R5bGUocHJlICsgJ3RleHQtbWFyZ2luLXgnKS5wZlZhbHVlLFxuICAgICAgeTogcHQueSArIGVsZS5wc3R5bGUocHJlICsgJ3RleHQtbWFyZ2luLXknKS5wZlZhbHVlXG4gICAgfTtcbiAgfTtcbiAgdmFyIGdldFJzUHQgPSBmdW5jdGlvbiBnZXRSc1B0KGVsZSwgeCwgeSkge1xuICAgIHZhciBycyA9IGVsZVswXS5fcHJpdmF0ZS5yc2NyYXRjaDtcbiAgICByZXR1cm4ge1xuICAgICAgeDogcnNbeF0sXG4gICAgICB5OiByc1t5XVxuICAgIH07XG4gIH07XG4gIHZhciBnZXRMYWJlbFJvdGF0aW9uUG9pbnQgPSBmdW5jdGlvbiBnZXRMYWJlbFJvdGF0aW9uUG9pbnQoZWxlKSB7XG4gICAgcmV0dXJuIGFkZFRleHRNYXJnaW4oJycsIGdldFJzUHQoZWxlLCAnbGFiZWxYJywgJ2xhYmVsWScpLCBlbGUpO1xuICB9O1xuICB2YXIgZ2V0U291cmNlTGFiZWxSb3RhdGlvblBvaW50ID0gZnVuY3Rpb24gZ2V0U291cmNlTGFiZWxSb3RhdGlvblBvaW50KGVsZSkge1xuICAgIHJldHVybiBhZGRUZXh0TWFyZ2luKCdzb3VyY2UnLCBnZXRSc1B0KGVsZSwgJ3NvdXJjZUxhYmVsWCcsICdzb3VyY2VMYWJlbFknKSwgZWxlKTtcbiAgfTtcbiAgdmFyIGdldFRhcmdldExhYmVsUm90YXRpb25Qb2ludCA9IGZ1bmN0aW9uIGdldFRhcmdldExhYmVsUm90YXRpb25Qb2ludChlbGUpIHtcbiAgICByZXR1cm4gYWRkVGV4dE1hcmdpbigndGFyZ2V0JywgZ2V0UnNQdChlbGUsICd0YXJnZXRMYWJlbFgnLCAndGFyZ2V0TGFiZWxZJyksIGVsZSk7XG4gIH07XG4gIHZhciBnZXRFbGVtZW50Um90YXRpb25PZmZzZXQgPSBmdW5jdGlvbiBnZXRFbGVtZW50Um90YXRpb25PZmZzZXQoZWxlKSB7XG4gICAgcmV0dXJuIGdldENlbnRlck9mZnNldChnZXRFbGVtZW50Qm94KGVsZSkpO1xuICB9O1xuICB2YXIgZ2V0U291cmNlTGFiZWxSb3RhdGlvbk9mZnNldCA9IGZ1bmN0aW9uIGdldFNvdXJjZUxhYmVsUm90YXRpb25PZmZzZXQoZWxlKSB7XG4gICAgcmV0dXJuIGdldENlbnRlck9mZnNldChnZXRTb3VyY2VMYWJlbEJveChlbGUpKTtcbiAgfTtcbiAgdmFyIGdldFRhcmdldExhYmVsUm90YXRpb25PZmZzZXQgPSBmdW5jdGlvbiBnZXRUYXJnZXRMYWJlbFJvdGF0aW9uT2Zmc2V0KGVsZSkge1xuICAgIHJldHVybiBnZXRDZW50ZXJPZmZzZXQoZ2V0VGFyZ2V0TGFiZWxCb3goZWxlKSk7XG4gIH07XG4gIHZhciBnZXRMYWJlbFJvdGF0aW9uT2Zmc2V0ID0gZnVuY3Rpb24gZ2V0TGFiZWxSb3RhdGlvbk9mZnNldChlbGUpIHtcbiAgICB2YXIgYmIgPSBnZXRMYWJlbEJveChlbGUpO1xuICAgIHZhciBwID0gZ2V0Q2VudGVyT2Zmc2V0KGdldExhYmVsQm94KGVsZSkpO1xuICAgIGlmIChlbGUuaXNOb2RlKCkpIHtcbiAgICAgIHN3aXRjaCAoZWxlLnBzdHlsZSgndGV4dC1oYWxpZ24nKS52YWx1ZSkge1xuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICBwLnggPSAtYmIudztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIHAueCA9IDA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGVsZS5wc3R5bGUoJ3RleHQtdmFsaWduJykudmFsdWUpIHtcbiAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICBwLnkgPSAtYmIuaDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICBwLnkgPSAwO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcDtcbiAgfTtcbiAgdmFyIGVsZVR4ckNhY2hlID0gci5kYXRhLmVsZVR4ckNhY2hlID0gbmV3IEVsZW1lbnRUZXh0dXJlQ2FjaGUociwge1xuICAgIGdldEtleTogZ2V0U3R5bGVLZXksXG4gICAgZG9lc0VsZUludmFsaWRhdGVLZXk6IGJhY2tncm91bmRUaW1lc3RhbXBIYXNDaGFuZ2VkLFxuICAgIGRyYXdFbGVtZW50OiBkcmF3RWxlbWVudCxcbiAgICBnZXRCb3VuZGluZ0JveDogZ2V0RWxlbWVudEJveCxcbiAgICBnZXRSb3RhdGlvblBvaW50OiBnZXRFbGVtZW50Um90YXRpb25Qb2ludCxcbiAgICBnZXRSb3RhdGlvbk9mZnNldDogZ2V0RWxlbWVudFJvdGF0aW9uT2Zmc2V0LFxuICAgIGFsbG93RWRnZVR4ckNhY2hpbmc6IGZhbHNlLFxuICAgIGFsbG93UGFyZW50VHhyQ2FjaGluZzogZmFsc2VcbiAgfSk7XG4gIHZhciBsYmxUeHJDYWNoZSA9IHIuZGF0YS5sYmxUeHJDYWNoZSA9IG5ldyBFbGVtZW50VGV4dHVyZUNhY2hlKHIsIHtcbiAgICBnZXRLZXk6IGdldExhYmVsS2V5LFxuICAgIGRyYXdFbGVtZW50OiBkcmF3TGFiZWwsXG4gICAgZ2V0Qm91bmRpbmdCb3g6IGdldExhYmVsQm94LFxuICAgIGdldFJvdGF0aW9uUG9pbnQ6IGdldExhYmVsUm90YXRpb25Qb2ludCxcbiAgICBnZXRSb3RhdGlvbk9mZnNldDogZ2V0TGFiZWxSb3RhdGlvbk9mZnNldCxcbiAgICBpc1Zpc2libGU6IGlzTGFiZWxWaXNpYmxlQXRTY2FsZVxuICB9KTtcbiAgdmFyIHNsYlR4ckNhY2hlID0gci5kYXRhLnNsYlR4ckNhY2hlID0gbmV3IEVsZW1lbnRUZXh0dXJlQ2FjaGUociwge1xuICAgIGdldEtleTogZ2V0U291cmNlTGFiZWxLZXksXG4gICAgZHJhd0VsZW1lbnQ6IGRyYXdTb3VyY2VMYWJlbCxcbiAgICBnZXRCb3VuZGluZ0JveDogZ2V0U291cmNlTGFiZWxCb3gsXG4gICAgZ2V0Um90YXRpb25Qb2ludDogZ2V0U291cmNlTGFiZWxSb3RhdGlvblBvaW50LFxuICAgIGdldFJvdGF0aW9uT2Zmc2V0OiBnZXRTb3VyY2VMYWJlbFJvdGF0aW9uT2Zmc2V0LFxuICAgIGlzVmlzaWJsZTogaXNMYWJlbFZpc2libGVBdFNjYWxlXG4gIH0pO1xuICB2YXIgdGxiVHhyQ2FjaGUgPSByLmRhdGEudGxiVHhyQ2FjaGUgPSBuZXcgRWxlbWVudFRleHR1cmVDYWNoZShyLCB7XG4gICAgZ2V0S2V5OiBnZXRUYXJnZXRMYWJlbEtleSxcbiAgICBkcmF3RWxlbWVudDogZHJhd1RhcmdldExhYmVsLFxuICAgIGdldEJvdW5kaW5nQm94OiBnZXRUYXJnZXRMYWJlbEJveCxcbiAgICBnZXRSb3RhdGlvblBvaW50OiBnZXRUYXJnZXRMYWJlbFJvdGF0aW9uUG9pbnQsXG4gICAgZ2V0Um90YXRpb25PZmZzZXQ6IGdldFRhcmdldExhYmVsUm90YXRpb25PZmZzZXQsXG4gICAgaXNWaXNpYmxlOiBpc0xhYmVsVmlzaWJsZUF0U2NhbGVcbiAgfSk7XG4gIHZhciBseXJUeHJDYWNoZSA9IHIuZGF0YS5seXJUeHJDYWNoZSA9IG5ldyBMYXllcmVkVGV4dHVyZUNhY2hlKHIpO1xuICByLm9uVXBkYXRlRWxlQ2FsY3MoZnVuY3Rpb24gaW52YWxpZGF0ZVRleHR1cmVDYWNoZXMod2lsbERyYXcsIGVsZXMpIHtcbiAgICAvLyBlYWNoIGNhY2hlIHNob3VsZCBjaGVjayBmb3Igc3ViLWtleSBkaWZmIHRvIHNlZSB0aGF0IHRoZSB1cGRhdGUgYWZmZWN0cyB0aGF0IGNhY2hlIHBhcnRpY3VsYXJseVxuICAgIGVsZVR4ckNhY2hlLmludmFsaWRhdGVFbGVtZW50cyhlbGVzKTtcbiAgICBsYmxUeHJDYWNoZS5pbnZhbGlkYXRlRWxlbWVudHMoZWxlcyk7XG4gICAgc2xiVHhyQ2FjaGUuaW52YWxpZGF0ZUVsZW1lbnRzKGVsZXMpO1xuICAgIHRsYlR4ckNhY2hlLmludmFsaWRhdGVFbGVtZW50cyhlbGVzKTtcblxuICAgIC8vIGFueSBjaGFuZ2UgaW52YWxpZGF0ZXMgdGhlIGxheWVyc1xuICAgIGx5clR4ckNhY2hlLmludmFsaWRhdGVFbGVtZW50cyhlbGVzKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgb2xkIGJnIHRpbWVzdGFtcCBzbyBkaWZmcyBjYW4gYmUgZG9uZSBpbiB0aGUgZWxlIHR4ciBjYWNoZXNcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgZWxlcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfcCA9IGVsZXNbX2ldLl9wcml2YXRlO1xuICAgICAgX3Aub2xkQmFja2dyb3VuZFRpbWVzdGFtcCA9IF9wLmJhY2tncm91bmRUaW1lc3RhbXA7XG4gICAgfVxuICB9KTtcbiAgdmFyIHJlZmluZUluTGF5ZXJzID0gZnVuY3Rpb24gcmVmaW5lSW5MYXllcnMocmVxcykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVxcy5sZW5ndGg7IGkrKykge1xuICAgICAgbHlyVHhyQ2FjaGUuZW5xdWV1ZUVsZW1lbnRSZWZpbmVtZW50KHJlcXNbaV0uZWxlKTtcbiAgICB9XG4gIH07XG4gIGVsZVR4ckNhY2hlLm9uRGVxdWV1ZShyZWZpbmVJbkxheWVycyk7XG4gIGxibFR4ckNhY2hlLm9uRGVxdWV1ZShyZWZpbmVJbkxheWVycyk7XG4gIHNsYlR4ckNhY2hlLm9uRGVxdWV1ZShyZWZpbmVJbkxheWVycyk7XG4gIHRsYlR4ckNhY2hlLm9uRGVxdWV1ZShyZWZpbmVJbkxheWVycyk7XG59XG5DUnAucmVkcmF3SGludCA9IGZ1bmN0aW9uIChncm91cCwgYm9vbCkge1xuICB2YXIgciA9IHRoaXM7XG4gIHN3aXRjaCAoZ3JvdXApIHtcbiAgICBjYXNlICdlbGVzJzpcbiAgICAgIHIuZGF0YS5jYW52YXNOZWVkc1JlZHJhd1tDUnAuTk9ERV0gPSBib29sO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZHJhZyc6XG4gICAgICByLmRhdGEuY2FudmFzTmVlZHNSZWRyYXdbQ1JwLkRSQUddID0gYm9vbDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICByLmRhdGEuY2FudmFzTmVlZHNSZWRyYXdbQ1JwLlNFTEVDVF9CT1hdID0gYm9vbDtcbiAgICAgIGJyZWFrO1xuICB9XG59O1xuXG4vLyB3aGV0aGVyIHRvIHVzZSBQYXRoMkQgY2FjaGluZyBmb3IgZHJhd2luZ1xudmFyIHBhdGhzSW1wbGQgPSB0eXBlb2YgUGF0aDJEICE9PSAndW5kZWZpbmVkJztcbkNScC5wYXRoMmRFbmFibGVkID0gZnVuY3Rpb24gKG9uKSB7XG4gIGlmIChvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aHNFbmFibGVkO1xuICB9XG4gIHRoaXMucGF0aHNFbmFibGVkID0gb24gPyB0cnVlIDogZmFsc2U7XG59O1xuQ1JwLnVzZVBhdGhzID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gcGF0aHNJbXBsZCAmJiB0aGlzLnBhdGhzRW5hYmxlZDtcbn07XG5DUnAuc2V0SW1nU21vb3RoaW5nID0gZnVuY3Rpb24gKGNvbnRleHQsIGJvb2wpIHtcbiAgaWYgKGNvbnRleHQuaW1hZ2VTbW9vdGhpbmdFbmFibGVkICE9IG51bGwpIHtcbiAgICBjb250ZXh0LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGJvb2w7XG4gIH0gZWxzZSB7XG4gICAgY29udGV4dC53ZWJraXRJbWFnZVNtb290aGluZ0VuYWJsZWQgPSBib29sO1xuICAgIGNvbnRleHQubW96SW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gYm9vbDtcbiAgICBjb250ZXh0Lm1zSW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gYm9vbDtcbiAgfVxufTtcbkNScC5nZXRJbWdTbW9vdGhpbmcgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBpZiAoY29udGV4dC5pbWFnZVNtb290aGluZ0VuYWJsZWQgIT0gbnVsbCkge1xuICAgIHJldHVybiBjb250ZXh0LmltYWdlU21vb3RoaW5nRW5hYmxlZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY29udGV4dC53ZWJraXRJbWFnZVNtb290aGluZ0VuYWJsZWQgfHwgY29udGV4dC5tb3pJbWFnZVNtb290aGluZ0VuYWJsZWQgfHwgY29udGV4dC5tc0ltYWdlU21vb3RoaW5nRW5hYmxlZDtcbiAgfVxufTtcbkNScC5tYWtlT2Zmc2NyZWVuQ2FudmFzID0gZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHtcbiAgdmFyIGNhbnZhcztcbiAgaWYgKCh0eXBlb2YgT2Zmc2NyZWVuQ2FudmFzID09PSBcInVuZGVmaW5lZFwiID8gXCJ1bmRlZmluZWRcIiA6IF90eXBlb2YoT2Zmc2NyZWVuQ2FudmFzKSkgIT09IChcInVuZGVmaW5lZFwiICkpIHtcbiAgICBjYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpO1xuICB9IGVsc2Uge1xuICAgIHZhciBjb250YWluZXJXaW5kb3cgPSB0aGlzLmN5LndpbmRvdygpO1xuICAgIHZhciBkb2N1bWVudCA9IGNvbnRhaW5lcldpbmRvdy5kb2N1bWVudDtcbiAgICBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XG4gIH1cbiAgcmV0dXJuIGNhbnZhcztcbn07XG5bQ1JwJGEsIENScCQ5LCBDUnAkOCwgQ1JwJDcsIENScCQ2LCBDUnAkNSwgQ1JwJDQsIENScCQzLCBDUnAkMiwgQ1JwJDFdLmZvckVhY2goZnVuY3Rpb24gKHByb3BzKSB7XG4gIGV4dGVuZChDUnAsIHByb3BzKTtcbn0pO1xuXG52YXIgcmVuZGVyZXIgPSBbe1xuICBuYW1lOiAnbnVsbCcsXG4gIGltcGw6IE51bGxSZW5kZXJlclxufSwge1xuICBuYW1lOiAnYmFzZScsXG4gIGltcGw6IEJSXG59LCB7XG4gIG5hbWU6ICdjYW52YXMnLFxuICBpbXBsOiBDUlxufV07XG5cbnZhciBpbmNFeHRzID0gW3tcbiAgdHlwZTogJ2xheW91dCcsXG4gIGV4dGVuc2lvbnM6IGxheW91dFxufSwge1xuICB0eXBlOiAncmVuZGVyZXInLFxuICBleHRlbnNpb25zOiByZW5kZXJlclxufV07XG5cbi8vIHJlZ2lzdGVyZWQgZXh0ZW5zaW9ucyB0byBjeXRvc2NhcGUsIGluZGV4ZWQgYnkgbmFtZVxudmFyIGV4dGVuc2lvbnMgPSB7fTtcblxuLy8gcmVnaXN0ZXJlZCBtb2R1bGVzIGZvciBleHRlbnNpb25zLCBpbmRleGVkIGJ5IG5hbWVcbnZhciBtb2R1bGVzID0ge307XG5mdW5jdGlvbiBzZXRFeHRlbnNpb24odHlwZSwgbmFtZSwgcmVnaXN0cmFudCkge1xuICB2YXIgZXh0ID0gcmVnaXN0cmFudDtcbiAgdmFyIG92ZXJyaWRlRXJyID0gZnVuY3Rpb24gb3ZlcnJpZGVFcnIoZmllbGQpIHtcbiAgICB3YXJuKCdDYW4gbm90IHJlZ2lzdGVyIGAnICsgbmFtZSArICdgIGZvciBgJyArIHR5cGUgKyAnYCBzaW5jZSBgJyArIGZpZWxkICsgJ2AgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHByb3RvdHlwZSBhbmQgY2FuIG5vdCBiZSBvdmVycmlkZGVuJyk7XG4gIH07XG4gIGlmICh0eXBlID09PSAnY29yZScpIHtcbiAgICBpZiAoQ29yZS5wcm90b3R5cGVbbmFtZV0pIHtcbiAgICAgIHJldHVybiBvdmVycmlkZUVycihuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgQ29yZS5wcm90b3R5cGVbbmFtZV0gPSByZWdpc3RyYW50O1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlID09PSAnY29sbGVjdGlvbicpIHtcbiAgICBpZiAoQ29sbGVjdGlvbi5wcm90b3R5cGVbbmFtZV0pIHtcbiAgICAgIHJldHVybiBvdmVycmlkZUVycihuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgQ29sbGVjdGlvbi5wcm90b3R5cGVbbmFtZV0gPSByZWdpc3RyYW50O1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlID09PSAnbGF5b3V0Jykge1xuICAgIC8vIGZpbGwgaW4gbWlzc2luZyBsYXlvdXQgZnVuY3Rpb25zIGluIHRoZSBwcm90b3R5cGVcblxuICAgIHZhciBMYXlvdXQgPSBmdW5jdGlvbiBMYXlvdXQob3B0aW9ucykge1xuICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgIHJlZ2lzdHJhbnQuY2FsbCh0aGlzLCBvcHRpb25zKTtcblxuICAgICAgLy8gbWFrZSBzdXJlIGxheW91dCBoYXMgX3ByaXZhdGUgZm9yIHVzZSB3LyBzdGQgYXBpcyBsaWtlIC5vbigpXG4gICAgICBpZiAoIXBsYWluT2JqZWN0KHRoaXMuX3ByaXZhdGUpKSB7XG4gICAgICAgIHRoaXMuX3ByaXZhdGUgPSB7fTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3ByaXZhdGUuY3kgPSBvcHRpb25zLmN5O1xuICAgICAgdGhpcy5fcHJpdmF0ZS5saXN0ZW5lcnMgPSBbXTtcbiAgICAgIHRoaXMuY3JlYXRlRW1pdHRlcigpO1xuICAgIH07XG4gICAgdmFyIGxheW91dFByb3RvID0gTGF5b3V0LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUocmVnaXN0cmFudC5wcm90b3R5cGUpO1xuICAgIHZhciBvcHRMYXlvdXRGbnMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9wdExheW91dEZucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGZuTmFtZSA9IG9wdExheW91dEZuc1tpXTtcbiAgICAgIGxheW91dFByb3RvW2ZuTmFtZV0gPSBsYXlvdXRQcm90b1tmbk5hbWVdIHx8IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGVpdGhlciAuc3RhcnQoKSBvciAucnVuKCkgaXMgZGVmaW5lZCwgc28gYXV0b2dlbiB0aGUgb3RoZXJcbiAgICBpZiAobGF5b3V0UHJvdG8uc3RhcnQgJiYgIWxheW91dFByb3RvLnJ1bikge1xuICAgICAgbGF5b3V0UHJvdG8ucnVuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnN0YXJ0KCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKCFsYXlvdXRQcm90by5zdGFydCAmJiBsYXlvdXRQcm90by5ydW4pIHtcbiAgICAgIGxheW91dFByb3RvLnN0YXJ0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnJ1bigpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH07XG4gICAgfVxuICAgIHZhciByZWdTdG9wID0gcmVnaXN0cmFudC5wcm90b3R5cGUuc3RvcDtcbiAgICBsYXlvdXRQcm90by5zdG9wID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIG9wdHMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICBpZiAob3B0cyAmJiBvcHRzLmFuaW1hdGUpIHtcbiAgICAgICAgdmFyIGFuaXMgPSB0aGlzLmFuaW1hdGlvbnM7XG4gICAgICAgIGlmIChhbmlzKSB7XG4gICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFuaXMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBhbmlzW19pXS5zdG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocmVnU3RvcCkge1xuICAgICAgICByZWdTdG9wLmNhbGwodGhpcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVtaXQoJ2xheW91dHN0b3AnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgaWYgKCFsYXlvdXRQcm90by5kZXN0cm95KSB7XG4gICAgICBsYXlvdXRQcm90by5kZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH07XG4gICAgfVxuICAgIGxheW91dFByb3RvLmN5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ByaXZhdGUuY3k7XG4gICAgfTtcbiAgICB2YXIgZ2V0Q3kgPSBmdW5jdGlvbiBnZXRDeShsYXlvdXQpIHtcbiAgICAgIHJldHVybiBsYXlvdXQuX3ByaXZhdGUuY3k7XG4gICAgfTtcbiAgICB2YXIgZW1pdHRlck9wdHMgPSB7XG4gICAgICBhZGRFdmVudEZpZWxkczogZnVuY3Rpb24gYWRkRXZlbnRGaWVsZHMobGF5b3V0LCBldnQpIHtcbiAgICAgICAgZXZ0LmxheW91dCA9IGxheW91dDtcbiAgICAgICAgZXZ0LmN5ID0gZ2V0Q3kobGF5b3V0KTtcbiAgICAgICAgZXZ0LnRhcmdldCA9IGxheW91dDtcbiAgICAgIH0sXG4gICAgICBidWJibGU6IGZ1bmN0aW9uIGJ1YmJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgICAgcGFyZW50OiBmdW5jdGlvbiBwYXJlbnQobGF5b3V0KSB7XG4gICAgICAgIHJldHVybiBnZXRDeShsYXlvdXQpO1xuICAgICAgfVxuICAgIH07XG4gICAgZXh0ZW5kKGxheW91dFByb3RvLCB7XG4gICAgICBjcmVhdGVFbWl0dGVyOiBmdW5jdGlvbiBjcmVhdGVFbWl0dGVyKCkge1xuICAgICAgICB0aGlzLl9wcml2YXRlLmVtaXR0ZXIgPSBuZXcgRW1pdHRlcihlbWl0dGVyT3B0cywgdGhpcyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIGVtaXR0ZXI6IGZ1bmN0aW9uIGVtaXR0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcml2YXRlLmVtaXR0ZXI7XG4gICAgICB9LFxuICAgICAgb246IGZ1bmN0aW9uIG9uKGV2dCwgY2IpIHtcbiAgICAgICAgdGhpcy5lbWl0dGVyKCkub24oZXZ0LCBjYik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIG9uZTogZnVuY3Rpb24gb25lKGV2dCwgY2IpIHtcbiAgICAgICAgdGhpcy5lbWl0dGVyKCkub25lKGV2dCwgY2IpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICBvbmNlOiBmdW5jdGlvbiBvbmNlKGV2dCwgY2IpIHtcbiAgICAgICAgdGhpcy5lbWl0dGVyKCkub25lKGV2dCwgY2IpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICByZW1vdmVMaXN0ZW5lcjogZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIoZXZ0LCBjYikge1xuICAgICAgICB0aGlzLmVtaXR0ZXIoKS5yZW1vdmVMaXN0ZW5lcihldnQsIGNiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgcmVtb3ZlQWxsTGlzdGVuZXJzOiBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnMoKSB7XG4gICAgICAgIHRoaXMuZW1pdHRlcigpLnJlbW92ZUFsbExpc3RlbmVycygpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICBlbWl0OiBmdW5jdGlvbiBlbWl0KGV2dCwgcGFyYW1zKSB7XG4gICAgICAgIHRoaXMuZW1pdHRlcigpLmVtaXQoZXZ0LCBwYXJhbXMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICB9KTtcbiAgICBkZWZpbmUuZXZlbnRBbGlhc2VzT24obGF5b3V0UHJvdG8pO1xuICAgIGV4dCA9IExheW91dDsgLy8gcmVwbGFjZSB3aXRoIG91ciB3cmFwcGVkIGxheW91dFxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyZW5kZXJlcicgJiYgbmFtZSAhPT0gJ251bGwnICYmIG5hbWUgIT09ICdiYXNlJykge1xuICAgIC8vIHVzZXIgcmVnaXN0ZXJlZCByZW5kZXJlcnMgaW5oZXJpdCBmcm9tIGJhc2VcblxuICAgIHZhciBCYXNlUmVuZGVyZXIgPSBnZXRFeHRlbnNpb24oJ3JlbmRlcmVyJywgJ2Jhc2UnKTtcbiAgICB2YXIgYlByb3RvID0gQmFzZVJlbmRlcmVyLnByb3RvdHlwZTtcbiAgICB2YXIgUmVnaXN0cmFudFJlbmRlcmVyID0gcmVnaXN0cmFudDtcbiAgICB2YXIgclByb3RvID0gcmVnaXN0cmFudC5wcm90b3R5cGU7XG4gICAgdmFyIFJlbmRlcmVyID0gZnVuY3Rpb24gUmVuZGVyZXIoKSB7XG4gICAgICBCYXNlUmVuZGVyZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIFJlZ2lzdHJhbnRSZW5kZXJlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH07XG4gICAgdmFyIHByb3RvID0gUmVuZGVyZXIucHJvdG90eXBlO1xuICAgIGZvciAodmFyIHBOYW1lIGluIGJQcm90bykge1xuICAgICAgdmFyIHBWYWwgPSBiUHJvdG9bcE5hbWVdO1xuICAgICAgdmFyIGV4aXN0c0luUiA9IHJQcm90b1twTmFtZV0gIT0gbnVsbDtcbiAgICAgIGlmIChleGlzdHNJblIpIHtcbiAgICAgICAgcmV0dXJuIG92ZXJyaWRlRXJyKHBOYW1lKTtcbiAgICAgIH1cbiAgICAgIHByb3RvW3BOYW1lXSA9IHBWYWw7IC8vIHRha2UgaW1wbCBmcm9tIGJhc2VcbiAgICB9XG5cbiAgICBmb3IgKHZhciBfcE5hbWUgaW4gclByb3RvKSB7XG4gICAgICBwcm90b1tfcE5hbWVdID0gclByb3RvW19wTmFtZV07IC8vIHRha2UgaW1wbCBmcm9tIHJlZ2lzdHJhbnRcbiAgICB9XG5cbiAgICBiUHJvdG8uY2xpZW50RnVuY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHByb3RvW25hbWVdID0gcHJvdG9bbmFtZV0gfHwgZnVuY3Rpb24gKCkge1xuICAgICAgICBlcnJvcignUmVuZGVyZXIgZG9lcyBub3QgaW1wbGVtZW50IGByZW5kZXJlci4nICsgbmFtZSArICcoKWAgb24gaXRzIHByb3RvdHlwZScpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgICBleHQgPSBSZW5kZXJlcjtcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnX19wcm90b19fJyB8fCB0eXBlID09PSAnY29uc3RydWN0b3InIHx8IHR5cGUgPT09ICdwcm90b3R5cGUnKSB7XG4gICAgLy8gdG8gYXZvaWQgcG90ZW50aWFsIHByb3RvdHlwZSBwb2xsdXRpb25cbiAgICByZXR1cm4gZXJyb3IodHlwZSArICcgaXMgYW4gaWxsZWdhbCB0eXBlIHRvIGJlIHJlZ2lzdGVyZWQsIHBvc3NpYmx5IGxlYWQgdG8gcHJvdG90eXBlIHBvbGx1dGlvbnMnKTtcbiAgfVxuICByZXR1cm4gc2V0TWFwKHtcbiAgICBtYXA6IGV4dGVuc2lvbnMsXG4gICAga2V5czogW3R5cGUsIG5hbWVdLFxuICAgIHZhbHVlOiBleHRcbiAgfSk7XG59XG5mdW5jdGlvbiBnZXRFeHRlbnNpb24odHlwZSwgbmFtZSkge1xuICByZXR1cm4gZ2V0TWFwKHtcbiAgICBtYXA6IGV4dGVuc2lvbnMsXG4gICAga2V5czogW3R5cGUsIG5hbWVdXG4gIH0pO1xufVxuZnVuY3Rpb24gc2V0TW9kdWxlKHR5cGUsIG5hbWUsIG1vZHVsZVR5cGUsIG1vZHVsZU5hbWUsIHJlZ2lzdHJhbnQpIHtcbiAgcmV0dXJuIHNldE1hcCh7XG4gICAgbWFwOiBtb2R1bGVzLFxuICAgIGtleXM6IFt0eXBlLCBuYW1lLCBtb2R1bGVUeXBlLCBtb2R1bGVOYW1lXSxcbiAgICB2YWx1ZTogcmVnaXN0cmFudFxuICB9KTtcbn1cbmZ1bmN0aW9uIGdldE1vZHVsZSh0eXBlLCBuYW1lLCBtb2R1bGVUeXBlLCBtb2R1bGVOYW1lKSB7XG4gIHJldHVybiBnZXRNYXAoe1xuICAgIG1hcDogbW9kdWxlcyxcbiAgICBrZXlzOiBbdHlwZSwgbmFtZSwgbW9kdWxlVHlwZSwgbW9kdWxlTmFtZV1cbiAgfSk7XG59XG52YXIgZXh0ZW5zaW9uID0gZnVuY3Rpb24gZXh0ZW5zaW9uKCkge1xuICAvLyBlLmcuIGV4dGVuc2lvbigncmVuZGVyZXInLCAnc3ZnJylcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICByZXR1cm4gZ2V0RXh0ZW5zaW9uLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gIH1cblxuICAvLyBlLmcuIGV4dGVuc2lvbigncmVuZGVyZXInLCAnc3ZnJywgeyAuLi4gfSlcbiAgZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMykge1xuICAgIHJldHVybiBzZXRFeHRlbnNpb24uYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgfVxuXG4gIC8vIGUuZy4gZXh0ZW5zaW9uKCdyZW5kZXJlcicsICdzdmcnLCAnbm9kZVNoYXBlJywgJ2VsbGlwc2UnKVxuICBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSA0KSB7XG4gICAgcmV0dXJuIGdldE1vZHVsZS5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgLy8gZS5nLiBleHRlbnNpb24oJ3JlbmRlcmVyJywgJ3N2ZycsICdub2RlU2hhcGUnLCAnZWxsaXBzZScsIHsgLi4uIH0pXG4gIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDUpIHtcbiAgICByZXR1cm4gc2V0TW9kdWxlLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gIH0gZWxzZSB7XG4gICAgZXJyb3IoJ0ludmFsaWQgZXh0ZW5zaW9uIGFjY2VzcyBzeW50YXgnKTtcbiAgfVxufTtcblxuLy8gYWxsb3dzIGEgY29yZSBpbnN0YW5jZSB0byBhY2Nlc3MgZXh0ZW5zaW9ucyBpbnRlcm5hbGx5XG5Db3JlLnByb3RvdHlwZS5leHRlbnNpb24gPSBleHRlbnNpb247XG5cbi8vIGluY2x1ZGVkIGV4dGVuc2lvbnNcbmluY0V4dHMuZm9yRWFjaChmdW5jdGlvbiAoZ3JvdXApIHtcbiAgZ3JvdXAuZXh0ZW5zaW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChleHQpIHtcbiAgICBzZXRFeHRlbnNpb24oZ3JvdXAudHlwZSwgZXh0Lm5hbWUsIGV4dC5pbXBsKTtcbiAgfSk7XG59KTtcblxuLy8gYSBkdW1teSBzdHlsZXNoZWV0IG9iamVjdCB0aGF0IGRvZXNuJ3QgbmVlZCBhIHJlZmVyZW5jZSB0byB0aGUgY29yZVxuLy8gKHVzZWZ1bCBmb3IgaW5pdClcbnZhciBTdHlsZXNoZWV0ID0gZnVuY3Rpb24gU3R5bGVzaGVldCgpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFN0eWxlc2hlZXQpKSB7XG4gICAgcmV0dXJuIG5ldyBTdHlsZXNoZWV0KCk7XG4gIH1cbiAgdGhpcy5sZW5ndGggPSAwO1xufTtcbnZhciBzaGVldGZuID0gU3R5bGVzaGVldC5wcm90b3R5cGU7XG5zaGVldGZuLmluc3RhbmNlU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gJ3N0eWxlc2hlZXQnO1xufTtcblxuLy8ganVzdCBzdG9yZSB0aGUgc2VsZWN0b3IgdG8gYmUgcGFyc2VkIGxhdGVyXG5zaGVldGZuLnNlbGVjdG9yID0gZnVuY3Rpb24gKHNlbGVjdG9yKSB7XG4gIHZhciBpID0gdGhpcy5sZW5ndGgrKztcbiAgdGhpc1tpXSA9IHtcbiAgICBzZWxlY3Rvcjogc2VsZWN0b3IsXG4gICAgcHJvcGVydGllczogW11cbiAgfTtcbiAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG59O1xuXG4vLyBqdXN0IHN0b3JlIHRoZSBwcm9wZXJ0eSB0byBiZSBwYXJzZWQgbGF0ZXJcbnNoZWV0Zm4uY3NzID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gIHZhciBpID0gdGhpcy5sZW5ndGggLSAxO1xuICBpZiAoc3RyaW5nKG5hbWUpKSB7XG4gICAgdGhpc1tpXS5wcm9wZXJ0aWVzLnB1c2goe1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZVxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHBsYWluT2JqZWN0KG5hbWUpKSB7XG4gICAgdmFyIG1hcCA9IG5hbWU7XG4gICAgdmFyIHByb3BOYW1lcyA9IE9iamVjdC5rZXlzKG1hcCk7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBwcm9wTmFtZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBrZXkgPSBwcm9wTmFtZXNbal07XG4gICAgICB2YXIgbWFwVmFsID0gbWFwW2tleV07XG4gICAgICBpZiAobWFwVmFsID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcCA9IFN0eWxlLnByb3BlcnRpZXNba2V5XSB8fCBTdHlsZS5wcm9wZXJ0aWVzW2Rhc2gyY2FtZWwoa2V5KV07XG4gICAgICBpZiAocHJvcCA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdmFyIF9uYW1lID0gcHJvcC5uYW1lO1xuICAgICAgdmFyIF92YWx1ZSA9IG1hcFZhbDtcbiAgICAgIHRoaXNbaV0ucHJvcGVydGllcy5wdXNoKHtcbiAgICAgICAgbmFtZTogX25hbWUsXG4gICAgICAgIHZhbHVlOiBfdmFsdWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbn07XG5cbnNoZWV0Zm4uc3R5bGUgPSBzaGVldGZuLmNzcztcblxuLy8gZ2VuZXJhdGUgYSByZWFsIHN0eWxlIG9iamVjdCBmcm9tIHRoZSBkdW1teSBzdHlsZXNoZWV0XG5zaGVldGZuLmdlbmVyYXRlU3R5bGUgPSBmdW5jdGlvbiAoY3kpIHtcbiAgdmFyIHN0eWxlID0gbmV3IFN0eWxlKGN5KTtcbiAgcmV0dXJuIHRoaXMuYXBwZW5kVG9TdHlsZShzdHlsZSk7XG59O1xuXG4vLyBhcHBlbmQgYSBkdW1teSBzdHlsZXNoZWV0IG9iamVjdCBvbiBhIHJlYWwgc3R5bGUgb2JqZWN0XG5zaGVldGZuLmFwcGVuZFRvU3R5bGUgPSBmdW5jdGlvbiAoc3R5bGUpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGNvbnRleHQgPSB0aGlzW2ldO1xuICAgIHZhciBzZWxlY3RvciA9IGNvbnRleHQuc2VsZWN0b3I7XG4gICAgdmFyIHByb3BzID0gY29udGV4dC5wcm9wZXJ0aWVzO1xuICAgIHN0eWxlLnNlbGVjdG9yKHNlbGVjdG9yKTsgLy8gYXBwbHkgc2VsZWN0b3JcblxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgcHJvcHMubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBwcm9wID0gcHJvcHNbal07XG4gICAgICBzdHlsZS5jc3MocHJvcC5uYW1lLCBwcm9wLnZhbHVlKTsgLy8gYXBwbHkgcHJvcGVydHlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3R5bGU7XG59O1xuXG52YXIgdmVyc2lvbiA9IFwiMy4zMC4yXCI7XG5cbnZhciBjeXRvc2NhcGUgPSBmdW5jdGlvbiBjeXRvc2NhcGUob3B0aW9ucykge1xuICAvLyBpZiBubyBvcHRpb25zIHNwZWNpZmllZCwgdXNlIGRlZmF1bHRcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIC8vIGNyZWF0ZSBpbnN0YW5jZVxuICBpZiAocGxhaW5PYmplY3Qob3B0aW9ucykpIHtcbiAgICByZXR1cm4gbmV3IENvcmUob3B0aW9ucyk7XG4gIH1cblxuICAvLyBhbGxvdyBmb3IgcmVnaXN0cmF0aW9uIG9mIGV4dGVuc2lvbnNcbiAgZWxzZSBpZiAoc3RyaW5nKG9wdGlvbnMpKSB7XG4gICAgcmV0dXJuIGV4dGVuc2lvbi5hcHBseShleHRlbnNpb24sIGFyZ3VtZW50cyk7XG4gIH1cbn07XG5cbi8vIGUuZy4gY3l0b3NjYXBlLnVzZSggcmVxdWlyZSgnY3l0b3NjYXBlLWZvbycpLCBiYXIgKVxuY3l0b3NjYXBlLnVzZSA9IGZ1bmN0aW9uIChleHQpIHtcbiAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpOyAvLyBhcmdzIHRvIHBhc3MgdG8gZXh0XG5cbiAgYXJncy51bnNoaWZ0KGN5dG9zY2FwZSk7IC8vIGN5dG9zY2FwZSBpcyBmaXJzdCBhcmcgdG8gZXh0XG5cbiAgZXh0LmFwcGx5KG51bGwsIGFyZ3MpO1xuICByZXR1cm4gdGhpcztcbn07XG5jeXRvc2NhcGUud2FybmluZ3MgPSBmdW5jdGlvbiAoYm9vbCkge1xuICByZXR1cm4gd2FybmluZ3MoYm9vbCk7XG59O1xuXG4vLyByZXBsYWNlZCBieSBidWlsZCBzeXN0ZW1cbmN5dG9zY2FwZS52ZXJzaW9uID0gdmVyc2lvbjtcblxuLy8gZXhwb3NlIHB1YmxpYyBhcGlzIChtb3N0bHkgZm9yIGV4dGVuc2lvbnMpXG5jeXRvc2NhcGUuc3R5bGVzaGVldCA9IGN5dG9zY2FwZS5TdHlsZXNoZWV0ID0gU3R5bGVzaGVldDtcblxuZXhwb3J0IHsgY3l0b3NjYXBlIGFzIGRlZmF1bHQgfTtcbiIsCiAgICAiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wibGF5b3V0QmFzZVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJsYXlvdXRCYXNlXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbi8qKioqKiovIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRpOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdGw6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0ZXhwb3J0czoge31cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbi8qKioqKiovIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbi8qKioqKiovIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4vKioqKioqLyBcdH1cbi8qKioqKiovXG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pID0gZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuLyoqKioqKi8gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbi8qKioqKiovIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4vKioqKioqLyBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdGdldDogZ2V0dGVyXG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbi8qKioqKiovIFx0XHRyZXR1cm4gZ2V0dGVyO1xuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8qKioqKiovIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMjYpO1xuLyoqKioqKi8gfSlcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyAoW1xuLyogMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5mdW5jdGlvbiBMYXlvdXRDb25zdGFudHMoKSB7fVxuXG4vKipcclxuICogTGF5b3V0IFF1YWxpdHk6IDA6ZHJhZnQsIDE6ZGVmYXVsdCwgMjpwcm9vZlxyXG4gKi9cbkxheW91dENvbnN0YW50cy5RVUFMSVRZID0gMTtcblxuLyoqXHJcbiAqIERlZmF1bHQgcGFyYW1ldGVyc1xyXG4gKi9cbkxheW91dENvbnN0YW50cy5ERUZBVUxUX0NSRUFURV9CRU5EU19BU19ORUVERUQgPSBmYWxzZTtcbkxheW91dENvbnN0YW50cy5ERUZBVUxUX0lOQ1JFTUVOVEFMID0gZmFsc2U7XG5MYXlvdXRDb25zdGFudHMuREVGQVVMVF9BTklNQVRJT05fT05fTEFZT1VUID0gdHJ1ZTtcbkxheW91dENvbnN0YW50cy5ERUZBVUxUX0FOSU1BVElPTl9EVVJJTkdfTEFZT1VUID0gZmFsc2U7XG5MYXlvdXRDb25zdGFudHMuREVGQVVMVF9BTklNQVRJT05fUEVSSU9EID0gNTA7XG5MYXlvdXRDb25zdGFudHMuREVGQVVMVF9VTklGT1JNX0xFQUZfTk9ERV9TSVpFUyA9IGZhbHNlO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2VjdGlvbjogR2VuZXJhbCBvdGhlciBjb25zdGFudHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKlxyXG4gKiBNYXJnaW5zIG9mIGEgZ3JhcGggdG8gYmUgYXBwbGllZCBvbiBib3VkaW5nIHJlY3RhbmdsZSBvZiBpdHMgY29udGVudHMuIFdlXHJcbiAqIGFzc3VtZSBtYXJnaW5zIG9uIGFsbCBmb3VyIHNpZGVzIHRvIGJlIHVuaWZvcm0uXHJcbiAqL1xuTGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfR1JBUEhfTUFSR0lOID0gMTU7XG5cbi8qXHJcbiAqIFdoZXRoZXIgdG8gY29uc2lkZXIgbGFiZWxzIGluIG5vZGUgZGltZW5zaW9ucyBvciBub3RcclxuICovXG5MYXlvdXRDb25zdGFudHMuTk9ERV9ESU1FTlNJT05TX0lOQ0xVREVfTEFCRUxTID0gZmFsc2U7XG5cbi8qXHJcbiAqIERlZmF1bHQgZGltZW5zaW9uIG9mIGEgbm9uLWNvbXBvdW5kIG5vZGUuXHJcbiAqL1xuTGF5b3V0Q29uc3RhbnRzLlNJTVBMRV9OT0RFX1NJWkUgPSA0MDtcblxuLypcclxuICogRGVmYXVsdCBkaW1lbnNpb24gb2YgYSBub24tY29tcG91bmQgbm9kZS5cclxuICovXG5MYXlvdXRDb25zdGFudHMuU0lNUExFX05PREVfSEFMRl9TSVpFID0gTGF5b3V0Q29uc3RhbnRzLlNJTVBMRV9OT0RFX1NJWkUgLyAyO1xuXG4vKlxyXG4gKiBFbXB0eSBjb21wb3VuZCBub2RlIHNpemUuIFdoZW4gYSBjb21wb3VuZCBub2RlIGlzIGVtcHR5LCBpdHMgYm90aFxyXG4gKiBkaW1lbnNpb25zIHNob3VsZCBiZSBvZiB0aGlzIHZhbHVlLlxyXG4gKi9cbkxheW91dENvbnN0YW50cy5FTVBUWV9DT01QT1VORF9OT0RFX1NJWkUgPSA0MDtcblxuLypcclxuICogTWluaW11bSBsZW5ndGggdGhhdCBhbiBlZGdlIHNob3VsZCB0YWtlIGR1cmluZyBsYXlvdXRcclxuICovXG5MYXlvdXRDb25zdGFudHMuTUlOX0VER0VfTEVOR1RIID0gMTtcblxuLypcclxuICogV29ybGQgYm91bmRhcmllcyB0aGF0IGxheW91dCBvcGVyYXRlcyBvblxyXG4gKi9cbkxheW91dENvbnN0YW50cy5XT1JMRF9CT1VOREFSWSA9IDEwMDAwMDA7XG5cbi8qXHJcbiAqIFdvcmxkIGJvdW5kYXJpZXMgdGhhdCByYW5kb20gcG9zaXRpb25pbmcgY2FuIGJlIHBlcmZvcm1lZCB3aXRoXHJcbiAqL1xuTGF5b3V0Q29uc3RhbnRzLklOSVRJQUxfV09STERfQk9VTkRBUlkgPSBMYXlvdXRDb25zdGFudHMuV09STERfQk9VTkRBUlkgLyAxMDAwO1xuXG4vKlxyXG4gKiBDb29yZGluYXRlcyBvZiB0aGUgd29ybGQgY2VudGVyXHJcbiAqL1xuTGF5b3V0Q29uc3RhbnRzLldPUkxEX0NFTlRFUl9YID0gMTIwMDtcbkxheW91dENvbnN0YW50cy5XT1JMRF9DRU5URVJfWSA9IDkwMDtcblxubW9kdWxlLmV4cG9ydHMgPSBMYXlvdXRDb25zdGFudHM7XG5cbi8qKiovIH0pLFxuLyogMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG52YXIgTEdyYXBoT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcbnZhciBJR2VvbWV0cnkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpO1xudmFyIElNYXRoID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5KTtcblxuZnVuY3Rpb24gTEVkZ2Uoc291cmNlLCB0YXJnZXQsIHZFZGdlKSB7XG4gIExHcmFwaE9iamVjdC5jYWxsKHRoaXMsIHZFZGdlKTtcblxuICB0aGlzLmlzT3ZlcmxhcGluZ1NvdXJjZUFuZFRhcmdldCA9IGZhbHNlO1xuICB0aGlzLnZHcmFwaE9iamVjdCA9IHZFZGdlO1xuICB0aGlzLmJlbmRwb2ludHMgPSBbXTtcbiAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xufVxuXG5MRWRnZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKExHcmFwaE9iamVjdC5wcm90b3R5cGUpO1xuXG5mb3IgKHZhciBwcm9wIGluIExHcmFwaE9iamVjdCkge1xuICBMRWRnZVtwcm9wXSA9IExHcmFwaE9iamVjdFtwcm9wXTtcbn1cblxuTEVkZ2UucHJvdG90eXBlLmdldFNvdXJjZSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuc291cmNlO1xufTtcblxuTEVkZ2UucHJvdG90eXBlLmdldFRhcmdldCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMudGFyZ2V0O1xufTtcblxuTEVkZ2UucHJvdG90eXBlLmlzSW50ZXJHcmFwaCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuaXNJbnRlckdyYXBoO1xufTtcblxuTEVkZ2UucHJvdG90eXBlLmdldExlbmd0aCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMubGVuZ3RoO1xufTtcblxuTEVkZ2UucHJvdG90eXBlLmlzT3ZlcmxhcGluZ1NvdXJjZUFuZFRhcmdldCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuaXNPdmVybGFwaW5nU291cmNlQW5kVGFyZ2V0O1xufTtcblxuTEVkZ2UucHJvdG90eXBlLmdldEJlbmRwb2ludHMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmJlbmRwb2ludHM7XG59O1xuXG5MRWRnZS5wcm90b3R5cGUuZ2V0TGNhID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5sY2E7XG59O1xuXG5MRWRnZS5wcm90b3R5cGUuZ2V0U291cmNlSW5MY2EgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnNvdXJjZUluTGNhO1xufTtcblxuTEVkZ2UucHJvdG90eXBlLmdldFRhcmdldEluTGNhID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy50YXJnZXRJbkxjYTtcbn07XG5cbkxFZGdlLnByb3RvdHlwZS5nZXRPdGhlckVuZCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gIGlmICh0aGlzLnNvdXJjZSA9PT0gbm9kZSkge1xuICAgIHJldHVybiB0aGlzLnRhcmdldDtcbiAgfSBlbHNlIGlmICh0aGlzLnRhcmdldCA9PT0gbm9kZSkge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBcIk5vZGUgaXMgbm90IGluY2lkZW50IHdpdGggdGhpcyBlZGdlXCI7XG4gIH1cbn07XG5cbkxFZGdlLnByb3RvdHlwZS5nZXRPdGhlckVuZEluR3JhcGggPSBmdW5jdGlvbiAobm9kZSwgZ3JhcGgpIHtcbiAgdmFyIG90aGVyRW5kID0gdGhpcy5nZXRPdGhlckVuZChub2RlKTtcbiAgdmFyIHJvb3QgPSBncmFwaC5nZXRHcmFwaE1hbmFnZXIoKS5nZXRSb290KCk7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBpZiAob3RoZXJFbmQuZ2V0T3duZXIoKSA9PSBncmFwaCkge1xuICAgICAgcmV0dXJuIG90aGVyRW5kO1xuICAgIH1cblxuICAgIGlmIChvdGhlckVuZC5nZXRPd25lcigpID09IHJvb3QpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIG90aGVyRW5kID0gb3RoZXJFbmQuZ2V0T3duZXIoKS5nZXRQYXJlbnQoKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuTEVkZ2UucHJvdG90eXBlLnVwZGF0ZUxlbmd0aCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGNsaXBQb2ludENvb3JkaW5hdGVzID0gbmV3IEFycmF5KDQpO1xuXG4gIHRoaXMuaXNPdmVybGFwaW5nU291cmNlQW5kVGFyZ2V0ID0gSUdlb21ldHJ5LmdldEludGVyc2VjdGlvbih0aGlzLnRhcmdldC5nZXRSZWN0KCksIHRoaXMuc291cmNlLmdldFJlY3QoKSwgY2xpcFBvaW50Q29vcmRpbmF0ZXMpO1xuXG4gIGlmICghdGhpcy5pc092ZXJsYXBpbmdTb3VyY2VBbmRUYXJnZXQpIHtcbiAgICB0aGlzLmxlbmd0aFggPSBjbGlwUG9pbnRDb29yZGluYXRlc1swXSAtIGNsaXBQb2ludENvb3JkaW5hdGVzWzJdO1xuICAgIHRoaXMubGVuZ3RoWSA9IGNsaXBQb2ludENvb3JkaW5hdGVzWzFdIC0gY2xpcFBvaW50Q29vcmRpbmF0ZXNbM107XG5cbiAgICBpZiAoTWF0aC5hYnModGhpcy5sZW5ndGhYKSA8IDEuMCkge1xuICAgICAgdGhpcy5sZW5ndGhYID0gSU1hdGguc2lnbih0aGlzLmxlbmd0aFgpO1xuICAgIH1cblxuICAgIGlmIChNYXRoLmFicyh0aGlzLmxlbmd0aFkpIDwgMS4wKSB7XG4gICAgICB0aGlzLmxlbmd0aFkgPSBJTWF0aC5zaWduKHRoaXMubGVuZ3RoWSk7XG4gICAgfVxuXG4gICAgdGhpcy5sZW5ndGggPSBNYXRoLnNxcnQodGhpcy5sZW5ndGhYICogdGhpcy5sZW5ndGhYICsgdGhpcy5sZW5ndGhZICogdGhpcy5sZW5ndGhZKTtcbiAgfVxufTtcblxuTEVkZ2UucHJvdG90eXBlLnVwZGF0ZUxlbmd0aFNpbXBsZSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5sZW5ndGhYID0gdGhpcy50YXJnZXQuZ2V0Q2VudGVyWCgpIC0gdGhpcy5zb3VyY2UuZ2V0Q2VudGVyWCgpO1xuICB0aGlzLmxlbmd0aFkgPSB0aGlzLnRhcmdldC5nZXRDZW50ZXJZKCkgLSB0aGlzLnNvdXJjZS5nZXRDZW50ZXJZKCk7XG5cbiAgaWYgKE1hdGguYWJzKHRoaXMubGVuZ3RoWCkgPCAxLjApIHtcbiAgICB0aGlzLmxlbmd0aFggPSBJTWF0aC5zaWduKHRoaXMubGVuZ3RoWCk7XG4gIH1cblxuICBpZiAoTWF0aC5hYnModGhpcy5sZW5ndGhZKSA8IDEuMCkge1xuICAgIHRoaXMubGVuZ3RoWSA9IElNYXRoLnNpZ24odGhpcy5sZW5ndGhZKTtcbiAgfVxuXG4gIHRoaXMubGVuZ3RoID0gTWF0aC5zcXJ0KHRoaXMubGVuZ3RoWCAqIHRoaXMubGVuZ3RoWCArIHRoaXMubGVuZ3RoWSAqIHRoaXMubGVuZ3RoWSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IExFZGdlO1xuXG4vKioqLyB9KSxcbi8qIDIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuZnVuY3Rpb24gTEdyYXBoT2JqZWN0KHZHcmFwaE9iamVjdCkge1xuICB0aGlzLnZHcmFwaE9iamVjdCA9IHZHcmFwaE9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBMR3JhcGhPYmplY3Q7XG5cbi8qKiovIH0pLFxuLyogMyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG52YXIgTEdyYXBoT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcbnZhciBJbnRlZ2VyID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7XG52YXIgUmVjdGFuZ2xlRCA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpO1xudmFyIExheW91dENvbnN0YW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG52YXIgUmFuZG9tU2VlZCA9IF9fd2VicGFja19yZXF1aXJlX18oMTYpO1xudmFyIFBvaW50RCA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG5cbmZ1bmN0aW9uIExOb2RlKGdtLCBsb2MsIHNpemUsIHZOb2RlKSB7XG4gIC8vQWx0ZXJuYXRpdmUgY29uc3RydWN0b3IgMSA6IExOb2RlKExHcmFwaE1hbmFnZXIgZ20sIFBvaW50IGxvYywgRGltZW5zaW9uIHNpemUsIE9iamVjdCB2Tm9kZSlcbiAgaWYgKHNpemUgPT0gbnVsbCAmJiB2Tm9kZSA9PSBudWxsKSB7XG4gICAgdk5vZGUgPSBsb2M7XG4gIH1cblxuICBMR3JhcGhPYmplY3QuY2FsbCh0aGlzLCB2Tm9kZSk7XG5cbiAgLy9BbHRlcm5hdGl2ZSBjb25zdHJ1Y3RvciAyIDogTE5vZGUoTGF5b3V0IGxheW91dCwgT2JqZWN0IHZOb2RlKVxuICBpZiAoZ20uZ3JhcGhNYW5hZ2VyICE9IG51bGwpIGdtID0gZ20uZ3JhcGhNYW5hZ2VyO1xuXG4gIHRoaXMuZXN0aW1hdGVkU2l6ZSA9IEludGVnZXIuTUlOX1ZBTFVFO1xuICB0aGlzLmluY2x1c2lvblRyZWVEZXB0aCA9IEludGVnZXIuTUFYX1ZBTFVFO1xuICB0aGlzLnZHcmFwaE9iamVjdCA9IHZOb2RlO1xuICB0aGlzLmVkZ2VzID0gW107XG4gIHRoaXMuZ3JhcGhNYW5hZ2VyID0gZ207XG5cbiAgaWYgKHNpemUgIT0gbnVsbCAmJiBsb2MgIT0gbnVsbCkgdGhpcy5yZWN0ID0gbmV3IFJlY3RhbmdsZUQobG9jLngsIGxvYy55LCBzaXplLndpZHRoLCBzaXplLmhlaWdodCk7ZWxzZSB0aGlzLnJlY3QgPSBuZXcgUmVjdGFuZ2xlRCgpO1xufVxuXG5MTm9kZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKExHcmFwaE9iamVjdC5wcm90b3R5cGUpO1xuZm9yICh2YXIgcHJvcCBpbiBMR3JhcGhPYmplY3QpIHtcbiAgTE5vZGVbcHJvcF0gPSBMR3JhcGhPYmplY3RbcHJvcF07XG59XG5cbkxOb2RlLnByb3RvdHlwZS5nZXRFZGdlcyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuZWRnZXM7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuZ2V0Q2hpbGQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmNoaWxkO1xufTtcblxuTE5vZGUucHJvdG90eXBlLmdldE93bmVyID0gZnVuY3Rpb24gKCkge1xuICAvLyAgaWYgKHRoaXMub3duZXIgIT0gbnVsbCkge1xuICAvLyAgICBpZiAoISh0aGlzLm93bmVyID09IG51bGwgfHwgdGhpcy5vd25lci5nZXROb2RlcygpLmluZGV4T2YodGhpcykgPiAtMSkpIHtcbiAgLy8gICAgICB0aHJvdyBcImFzc2VydCBmYWlsZWRcIjtcbiAgLy8gICAgfVxuICAvLyAgfVxuXG4gIHJldHVybiB0aGlzLm93bmVyO1xufTtcblxuTE5vZGUucHJvdG90eXBlLmdldFdpZHRoID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5yZWN0LndpZHRoO1xufTtcblxuTE5vZGUucHJvdG90eXBlLnNldFdpZHRoID0gZnVuY3Rpb24gKHdpZHRoKSB7XG4gIHRoaXMucmVjdC53aWR0aCA9IHdpZHRoO1xufTtcblxuTE5vZGUucHJvdG90eXBlLmdldEhlaWdodCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMucmVjdC5oZWlnaHQ7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuc2V0SGVpZ2h0ID0gZnVuY3Rpb24gKGhlaWdodCkge1xuICB0aGlzLnJlY3QuaGVpZ2h0ID0gaGVpZ2h0O1xufTtcblxuTE5vZGUucHJvdG90eXBlLmdldENlbnRlclggPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnJlY3QueCArIHRoaXMucmVjdC53aWR0aCAvIDI7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuZ2V0Q2VudGVyWSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMucmVjdC55ICsgdGhpcy5yZWN0LmhlaWdodCAvIDI7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuZ2V0Q2VudGVyID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFBvaW50RCh0aGlzLnJlY3QueCArIHRoaXMucmVjdC53aWR0aCAvIDIsIHRoaXMucmVjdC55ICsgdGhpcy5yZWN0LmhlaWdodCAvIDIpO1xufTtcblxuTE5vZGUucHJvdG90eXBlLmdldExvY2F0aW9uID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFBvaW50RCh0aGlzLnJlY3QueCwgdGhpcy5yZWN0LnkpO1xufTtcblxuTE5vZGUucHJvdG90eXBlLmdldFJlY3QgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnJlY3Q7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuZ2V0RGlhZ29uYWwgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBNYXRoLnNxcnQodGhpcy5yZWN0LndpZHRoICogdGhpcy5yZWN0LndpZHRoICsgdGhpcy5yZWN0LmhlaWdodCAqIHRoaXMucmVjdC5oZWlnaHQpO1xufTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGhhbGYgdGhlIGRpYWdvbmFsIGxlbmd0aCBvZiB0aGlzIG5vZGUuXG4gKi9cbkxOb2RlLnByb3RvdHlwZS5nZXRIYWxmVGhlRGlhZ29uYWwgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBNYXRoLnNxcnQodGhpcy5yZWN0LmhlaWdodCAqIHRoaXMucmVjdC5oZWlnaHQgKyB0aGlzLnJlY3Qud2lkdGggKiB0aGlzLnJlY3Qud2lkdGgpIC8gMjtcbn07XG5cbkxOb2RlLnByb3RvdHlwZS5zZXRSZWN0ID0gZnVuY3Rpb24gKHVwcGVyTGVmdCwgZGltZW5zaW9uKSB7XG4gIHRoaXMucmVjdC54ID0gdXBwZXJMZWZ0Lng7XG4gIHRoaXMucmVjdC55ID0gdXBwZXJMZWZ0Lnk7XG4gIHRoaXMucmVjdC53aWR0aCA9IGRpbWVuc2lvbi53aWR0aDtcbiAgdGhpcy5yZWN0LmhlaWdodCA9IGRpbWVuc2lvbi5oZWlnaHQ7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuc2V0Q2VudGVyID0gZnVuY3Rpb24gKGN4LCBjeSkge1xuICB0aGlzLnJlY3QueCA9IGN4IC0gdGhpcy5yZWN0LndpZHRoIC8gMjtcbiAgdGhpcy5yZWN0LnkgPSBjeSAtIHRoaXMucmVjdC5oZWlnaHQgLyAyO1xufTtcblxuTE5vZGUucHJvdG90eXBlLnNldExvY2F0aW9uID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgdGhpcy5yZWN0LnggPSB4O1xuICB0aGlzLnJlY3QueSA9IHk7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUubW92ZUJ5ID0gZnVuY3Rpb24gKGR4LCBkeSkge1xuICB0aGlzLnJlY3QueCArPSBkeDtcbiAgdGhpcy5yZWN0LnkgKz0gZHk7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuZ2V0RWRnZUxpc3RUb05vZGUgPSBmdW5jdGlvbiAodG8pIHtcbiAgdmFyIGVkZ2VMaXN0ID0gW107XG4gIHZhciBlZGdlO1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgc2VsZi5lZGdlcy5mb3JFYWNoKGZ1bmN0aW9uIChlZGdlKSB7XG5cbiAgICBpZiAoZWRnZS50YXJnZXQgPT0gdG8pIHtcbiAgICAgIGlmIChlZGdlLnNvdXJjZSAhPSBzZWxmKSB0aHJvdyBcIkluY29ycmVjdCBlZGdlIHNvdXJjZSFcIjtcblxuICAgICAgZWRnZUxpc3QucHVzaChlZGdlKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBlZGdlTGlzdDtcbn07XG5cbkxOb2RlLnByb3RvdHlwZS5nZXRFZGdlc0JldHdlZW4gPSBmdW5jdGlvbiAob3RoZXIpIHtcbiAgdmFyIGVkZ2VMaXN0ID0gW107XG4gIHZhciBlZGdlO1xuXG4gIHZhciBzZWxmID0gdGhpcztcbiAgc2VsZi5lZGdlcy5mb3JFYWNoKGZ1bmN0aW9uIChlZGdlKSB7XG5cbiAgICBpZiAoIShlZGdlLnNvdXJjZSA9PSBzZWxmIHx8IGVkZ2UudGFyZ2V0ID09IHNlbGYpKSB0aHJvdyBcIkluY29ycmVjdCBlZGdlIHNvdXJjZSBhbmQvb3IgdGFyZ2V0XCI7XG5cbiAgICBpZiAoZWRnZS50YXJnZXQgPT0gb3RoZXIgfHwgZWRnZS5zb3VyY2UgPT0gb3RoZXIpIHtcbiAgICAgIGVkZ2VMaXN0LnB1c2goZWRnZSk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZWRnZUxpc3Q7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuZ2V0TmVpZ2hib3JzTGlzdCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIG5laWdoYm9ycyA9IG5ldyBTZXQoKTtcblxuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHNlbGYuZWRnZXMuZm9yRWFjaChmdW5jdGlvbiAoZWRnZSkge1xuXG4gICAgaWYgKGVkZ2Uuc291cmNlID09IHNlbGYpIHtcbiAgICAgIG5laWdoYm9ycy5hZGQoZWRnZS50YXJnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZWRnZS50YXJnZXQgIT0gc2VsZikge1xuICAgICAgICB0aHJvdyBcIkluY29ycmVjdCBpbmNpZGVuY3khXCI7XG4gICAgICB9XG5cbiAgICAgIG5laWdoYm9ycy5hZGQoZWRnZS5zb3VyY2UpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG5laWdoYm9ycztcbn07XG5cbkxOb2RlLnByb3RvdHlwZS53aXRoQ2hpbGRyZW4gPSBmdW5jdGlvbiAoKSB7XG4gIHZhciB3aXRoTmVpZ2hib3JzTGlzdCA9IG5ldyBTZXQoKTtcbiAgdmFyIGNoaWxkTm9kZTtcbiAgdmFyIGNoaWxkcmVuO1xuXG4gIHdpdGhOZWlnaGJvcnNMaXN0LmFkZCh0aGlzKTtcblxuICBpZiAodGhpcy5jaGlsZCAhPSBudWxsKSB7XG4gICAgdmFyIG5vZGVzID0gdGhpcy5jaGlsZC5nZXROb2RlcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNoaWxkTm9kZSA9IG5vZGVzW2ldO1xuICAgICAgY2hpbGRyZW4gPSBjaGlsZE5vZGUud2l0aENoaWxkcmVuKCk7XG4gICAgICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIHdpdGhOZWlnaGJvcnNMaXN0LmFkZChub2RlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3aXRoTmVpZ2hib3JzTGlzdDtcbn07XG5cbkxOb2RlLnByb3RvdHlwZS5nZXROb09mQ2hpbGRyZW4gPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBub09mQ2hpbGRyZW4gPSAwO1xuICB2YXIgY2hpbGROb2RlO1xuXG4gIGlmICh0aGlzLmNoaWxkID09IG51bGwpIHtcbiAgICBub09mQ2hpbGRyZW4gPSAxO1xuICB9IGVsc2Uge1xuICAgIHZhciBub2RlcyA9IHRoaXMuY2hpbGQuZ2V0Tm9kZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGlsZE5vZGUgPSBub2Rlc1tpXTtcblxuICAgICAgbm9PZkNoaWxkcmVuICs9IGNoaWxkTm9kZS5nZXROb09mQ2hpbGRyZW4oKTtcbiAgICB9XG4gIH1cblxuICBpZiAobm9PZkNoaWxkcmVuID09IDApIHtcbiAgICBub09mQ2hpbGRyZW4gPSAxO1xuICB9XG4gIHJldHVybiBub09mQ2hpbGRyZW47XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuZ2V0RXN0aW1hdGVkU2l6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuZXN0aW1hdGVkU2l6ZSA9PSBJbnRlZ2VyLk1JTl9WQUxVRSkge1xuICAgIHRocm93IFwiYXNzZXJ0IGZhaWxlZFwiO1xuICB9XG4gIHJldHVybiB0aGlzLmVzdGltYXRlZFNpemU7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuY2FsY0VzdGltYXRlZFNpemUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmNoaWxkID09IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy5lc3RpbWF0ZWRTaXplID0gKHRoaXMucmVjdC53aWR0aCArIHRoaXMucmVjdC5oZWlnaHQpIC8gMjtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmVzdGltYXRlZFNpemUgPSB0aGlzLmNoaWxkLmNhbGNFc3RpbWF0ZWRTaXplKCk7XG4gICAgdGhpcy5yZWN0LndpZHRoID0gdGhpcy5lc3RpbWF0ZWRTaXplO1xuICAgIHRoaXMucmVjdC5oZWlnaHQgPSB0aGlzLmVzdGltYXRlZFNpemU7XG5cbiAgICByZXR1cm4gdGhpcy5lc3RpbWF0ZWRTaXplO1xuICB9XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuc2NhdHRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJhbmRvbUNlbnRlclg7XG4gIHZhciByYW5kb21DZW50ZXJZO1xuXG4gIHZhciBtaW5YID0gLUxheW91dENvbnN0YW50cy5JTklUSUFMX1dPUkxEX0JPVU5EQVJZO1xuICB2YXIgbWF4WCA9IExheW91dENvbnN0YW50cy5JTklUSUFMX1dPUkxEX0JPVU5EQVJZO1xuICByYW5kb21DZW50ZXJYID0gTGF5b3V0Q29uc3RhbnRzLldPUkxEX0NFTlRFUl9YICsgUmFuZG9tU2VlZC5uZXh0RG91YmxlKCkgKiAobWF4WCAtIG1pblgpICsgbWluWDtcblxuICB2YXIgbWluWSA9IC1MYXlvdXRDb25zdGFudHMuSU5JVElBTF9XT1JMRF9CT1VOREFSWTtcbiAgdmFyIG1heFkgPSBMYXlvdXRDb25zdGFudHMuSU5JVElBTF9XT1JMRF9CT1VOREFSWTtcbiAgcmFuZG9tQ2VudGVyWSA9IExheW91dENvbnN0YW50cy5XT1JMRF9DRU5URVJfWSArIFJhbmRvbVNlZWQubmV4dERvdWJsZSgpICogKG1heFkgLSBtaW5ZKSArIG1pblk7XG5cbiAgdGhpcy5yZWN0LnggPSByYW5kb21DZW50ZXJYO1xuICB0aGlzLnJlY3QueSA9IHJhbmRvbUNlbnRlclk7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUudXBkYXRlQm91bmRzID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5nZXRDaGlsZCgpID09IG51bGwpIHtcbiAgICB0aHJvdyBcImFzc2VydCBmYWlsZWRcIjtcbiAgfVxuICBpZiAodGhpcy5nZXRDaGlsZCgpLmdldE5vZGVzKCkubGVuZ3RoICE9IDApIHtcbiAgICAvLyB3cmFwIHRoZSBjaGlsZHJlbiBub2RlcyBieSByZS1hcnJhbmdpbmcgdGhlIGJvdW5kYXJpZXNcbiAgICB2YXIgY2hpbGRHcmFwaCA9IHRoaXMuZ2V0Q2hpbGQoKTtcbiAgICBjaGlsZEdyYXBoLnVwZGF0ZUJvdW5kcyh0cnVlKTtcblxuICAgIHRoaXMucmVjdC54ID0gY2hpbGRHcmFwaC5nZXRMZWZ0KCk7XG4gICAgdGhpcy5yZWN0LnkgPSBjaGlsZEdyYXBoLmdldFRvcCgpO1xuXG4gICAgdGhpcy5zZXRXaWR0aChjaGlsZEdyYXBoLmdldFJpZ2h0KCkgLSBjaGlsZEdyYXBoLmdldExlZnQoKSk7XG4gICAgdGhpcy5zZXRIZWlnaHQoY2hpbGRHcmFwaC5nZXRCb3R0b20oKSAtIGNoaWxkR3JhcGguZ2V0VG9wKCkpO1xuXG4gICAgLy8gVXBkYXRlIGNvbXBvdW5kIGJvdW5kcyBjb25zaWRlcmluZyBpdHMgbGFiZWwgcHJvcGVydGllcyAgICBcbiAgICBpZiAoTGF5b3V0Q29uc3RhbnRzLk5PREVfRElNRU5TSU9OU19JTkNMVURFX0xBQkVMUykge1xuXG4gICAgICB2YXIgd2lkdGggPSBjaGlsZEdyYXBoLmdldFJpZ2h0KCkgLSBjaGlsZEdyYXBoLmdldExlZnQoKTtcbiAgICAgIHZhciBoZWlnaHQgPSBjaGlsZEdyYXBoLmdldEJvdHRvbSgpIC0gY2hpbGRHcmFwaC5nZXRUb3AoKTtcblxuICAgICAgaWYgKHRoaXMubGFiZWxXaWR0aCA+IHdpZHRoKSB7XG4gICAgICAgIHRoaXMucmVjdC54IC09ICh0aGlzLmxhYmVsV2lkdGggLSB3aWR0aCkgLyAyO1xuICAgICAgICB0aGlzLnNldFdpZHRoKHRoaXMubGFiZWxXaWR0aCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmxhYmVsSGVpZ2h0ID4gaGVpZ2h0KSB7XG4gICAgICAgIGlmICh0aGlzLmxhYmVsUG9zID09IFwiY2VudGVyXCIpIHtcbiAgICAgICAgICB0aGlzLnJlY3QueSAtPSAodGhpcy5sYWJlbEhlaWdodCAtIGhlaWdodCkgLyAyO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGFiZWxQb3MgPT0gXCJ0b3BcIikge1xuICAgICAgICAgIHRoaXMucmVjdC55IC09IHRoaXMubGFiZWxIZWlnaHQgLSBoZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRIZWlnaHQodGhpcy5sYWJlbEhlaWdodCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuZ2V0SW5jbHVzaW9uVHJlZURlcHRoID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5pbmNsdXNpb25UcmVlRGVwdGggPT0gSW50ZWdlci5NQVhfVkFMVUUpIHtcbiAgICB0aHJvdyBcImFzc2VydCBmYWlsZWRcIjtcbiAgfVxuICByZXR1cm4gdGhpcy5pbmNsdXNpb25UcmVlRGVwdGg7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUudHJhbnNmb3JtID0gZnVuY3Rpb24gKHRyYW5zKSB7XG4gIHZhciBsZWZ0ID0gdGhpcy5yZWN0Lng7XG5cbiAgaWYgKGxlZnQgPiBMYXlvdXRDb25zdGFudHMuV09STERfQk9VTkRBUlkpIHtcbiAgICBsZWZ0ID0gTGF5b3V0Q29uc3RhbnRzLldPUkxEX0JPVU5EQVJZO1xuICB9IGVsc2UgaWYgKGxlZnQgPCAtTGF5b3V0Q29uc3RhbnRzLldPUkxEX0JPVU5EQVJZKSB7XG4gICAgbGVmdCA9IC1MYXlvdXRDb25zdGFudHMuV09STERfQk9VTkRBUlk7XG4gIH1cblxuICB2YXIgdG9wID0gdGhpcy5yZWN0Lnk7XG5cbiAgaWYgKHRvcCA+IExheW91dENvbnN0YW50cy5XT1JMRF9CT1VOREFSWSkge1xuICAgIHRvcCA9IExheW91dENvbnN0YW50cy5XT1JMRF9CT1VOREFSWTtcbiAgfSBlbHNlIGlmICh0b3AgPCAtTGF5b3V0Q29uc3RhbnRzLldPUkxEX0JPVU5EQVJZKSB7XG4gICAgdG9wID0gLUxheW91dENvbnN0YW50cy5XT1JMRF9CT1VOREFSWTtcbiAgfVxuXG4gIHZhciBsZWZ0VG9wID0gbmV3IFBvaW50RChsZWZ0LCB0b3ApO1xuICB2YXIgdkxlZnRUb3AgPSB0cmFucy5pbnZlcnNlVHJhbnNmb3JtUG9pbnQobGVmdFRvcCk7XG5cbiAgdGhpcy5zZXRMb2NhdGlvbih2TGVmdFRvcC54LCB2TGVmdFRvcC55KTtcbn07XG5cbkxOb2RlLnByb3RvdHlwZS5nZXRMZWZ0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5yZWN0Lng7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuZ2V0UmlnaHQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnJlY3QueCArIHRoaXMucmVjdC53aWR0aDtcbn07XG5cbkxOb2RlLnByb3RvdHlwZS5nZXRUb3AgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnJlY3QueTtcbn07XG5cbkxOb2RlLnByb3RvdHlwZS5nZXRCb3R0b20gPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnJlY3QueSArIHRoaXMucmVjdC5oZWlnaHQ7XG59O1xuXG5MTm9kZS5wcm90b3R5cGUuZ2V0UGFyZW50ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5vd25lciA9PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gdGhpcy5vd25lci5nZXRQYXJlbnQoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gTE5vZGU7XG5cbi8qKiovIH0pLFxuLyogNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5mdW5jdGlvbiBQb2ludEQoeCwgeSkge1xuICBpZiAoeCA9PSBudWxsICYmIHkgPT0gbnVsbCkge1xuICAgIHRoaXMueCA9IDA7XG4gICAgdGhpcy55ID0gMDtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG4gIH1cbn1cblxuUG9pbnRELnByb3RvdHlwZS5nZXRYID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy54O1xufTtcblxuUG9pbnRELnByb3RvdHlwZS5nZXRZID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy55O1xufTtcblxuUG9pbnRELnByb3RvdHlwZS5zZXRYID0gZnVuY3Rpb24gKHgpIHtcbiAgdGhpcy54ID0geDtcbn07XG5cblBvaW50RC5wcm90b3R5cGUuc2V0WSA9IGZ1bmN0aW9uICh5KSB7XG4gIHRoaXMueSA9IHk7XG59O1xuXG5Qb2ludEQucHJvdG90eXBlLmdldERpZmZlcmVuY2UgPSBmdW5jdGlvbiAocHQpIHtcbiAgcmV0dXJuIG5ldyBEaW1lbnNpb25EKHRoaXMueCAtIHB0LngsIHRoaXMueSAtIHB0LnkpO1xufTtcblxuUG9pbnRELnByb3RvdHlwZS5nZXRDb3B5ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFBvaW50RCh0aGlzLngsIHRoaXMueSk7XG59O1xuXG5Qb2ludEQucHJvdG90eXBlLnRyYW5zbGF0ZSA9IGZ1bmN0aW9uIChkaW0pIHtcbiAgdGhpcy54ICs9IGRpbS53aWR0aDtcbiAgdGhpcy55ICs9IGRpbS5oZWlnaHQ7XG4gIHJldHVybiB0aGlzO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBQb2ludEQ7XG5cbi8qKiovIH0pLFxuLyogNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG52YXIgTEdyYXBoT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcbnZhciBJbnRlZ2VyID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7XG52YXIgTGF5b3V0Q29uc3RhbnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbnZhciBMR3JhcGhNYW5hZ2VyID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTtcbnZhciBMTm9kZSA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG52YXIgTEVkZ2UgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xudmFyIFJlY3RhbmdsZUQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTtcbnZhciBQb2ludCA9IF9fd2VicGFja19yZXF1aXJlX18oMTIpO1xudmFyIExpbmtlZExpc3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExKTtcblxuZnVuY3Rpb24gTEdyYXBoKHBhcmVudCwgb2JqMiwgdkdyYXBoKSB7XG4gIExHcmFwaE9iamVjdC5jYWxsKHRoaXMsIHZHcmFwaCk7XG4gIHRoaXMuZXN0aW1hdGVkU2l6ZSA9IEludGVnZXIuTUlOX1ZBTFVFO1xuICB0aGlzLm1hcmdpbiA9IExheW91dENvbnN0YW50cy5ERUZBVUxUX0dSQVBIX01BUkdJTjtcbiAgdGhpcy5lZGdlcyA9IFtdO1xuICB0aGlzLm5vZGVzID0gW107XG4gIHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcbiAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XG5cbiAgaWYgKG9iajIgIT0gbnVsbCAmJiBvYmoyIGluc3RhbmNlb2YgTEdyYXBoTWFuYWdlcikge1xuICAgIHRoaXMuZ3JhcGhNYW5hZ2VyID0gb2JqMjtcbiAgfSBlbHNlIGlmIChvYmoyICE9IG51bGwgJiYgb2JqMiBpbnN0YW5jZW9mIExheW91dCkge1xuICAgIHRoaXMuZ3JhcGhNYW5hZ2VyID0gb2JqMi5ncmFwaE1hbmFnZXI7XG4gIH1cbn1cblxuTEdyYXBoLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoTEdyYXBoT2JqZWN0LnByb3RvdHlwZSk7XG5mb3IgKHZhciBwcm9wIGluIExHcmFwaE9iamVjdCkge1xuICBMR3JhcGhbcHJvcF0gPSBMR3JhcGhPYmplY3RbcHJvcF07XG59XG5cbkxHcmFwaC5wcm90b3R5cGUuZ2V0Tm9kZXMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLm5vZGVzO1xufTtcblxuTEdyYXBoLnByb3RvdHlwZS5nZXRFZGdlcyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuZWRnZXM7XG59O1xuXG5MR3JhcGgucHJvdG90eXBlLmdldEdyYXBoTWFuYWdlciA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuZ3JhcGhNYW5hZ2VyO1xufTtcblxuTEdyYXBoLnByb3RvdHlwZS5nZXRQYXJlbnQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnBhcmVudDtcbn07XG5cbkxHcmFwaC5wcm90b3R5cGUuZ2V0TGVmdCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMubGVmdDtcbn07XG5cbkxHcmFwaC5wcm90b3R5cGUuZ2V0UmlnaHQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnJpZ2h0O1xufTtcblxuTEdyYXBoLnByb3RvdHlwZS5nZXRUb3AgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnRvcDtcbn07XG5cbkxHcmFwaC5wcm90b3R5cGUuZ2V0Qm90dG9tID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5ib3R0b207XG59O1xuXG5MR3JhcGgucHJvdG90eXBlLmlzQ29ubmVjdGVkID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5pc0Nvbm5lY3RlZDtcbn07XG5cbkxHcmFwaC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKG9iajEsIHNvdXJjZU5vZGUsIHRhcmdldE5vZGUpIHtcbiAgaWYgKHNvdXJjZU5vZGUgPT0gbnVsbCAmJiB0YXJnZXROb2RlID09IG51bGwpIHtcbiAgICB2YXIgbmV3Tm9kZSA9IG9iajE7XG4gICAgaWYgKHRoaXMuZ3JhcGhNYW5hZ2VyID09IG51bGwpIHtcbiAgICAgIHRocm93IFwiR3JhcGggaGFzIG5vIGdyYXBoIG1nciFcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ2V0Tm9kZXMoKS5pbmRleE9mKG5ld05vZGUpID4gLTEpIHtcbiAgICAgIHRocm93IFwiTm9kZSBhbHJlYWR5IGluIGdyYXBoIVwiO1xuICAgIH1cbiAgICBuZXdOb2RlLm93bmVyID0gdGhpcztcbiAgICB0aGlzLmdldE5vZGVzKCkucHVzaChuZXdOb2RlKTtcblxuICAgIHJldHVybiBuZXdOb2RlO1xuICB9IGVsc2Uge1xuICAgIHZhciBuZXdFZGdlID0gb2JqMTtcbiAgICBpZiAoISh0aGlzLmdldE5vZGVzKCkuaW5kZXhPZihzb3VyY2VOb2RlKSA+IC0xICYmIHRoaXMuZ2V0Tm9kZXMoKS5pbmRleE9mKHRhcmdldE5vZGUpID4gLTEpKSB7XG4gICAgICB0aHJvdyBcIlNvdXJjZSBvciB0YXJnZXQgbm90IGluIGdyYXBoIVwiO1xuICAgIH1cblxuICAgIGlmICghKHNvdXJjZU5vZGUub3duZXIgPT0gdGFyZ2V0Tm9kZS5vd25lciAmJiBzb3VyY2VOb2RlLm93bmVyID09IHRoaXMpKSB7XG4gICAgICB0aHJvdyBcIkJvdGggb3duZXJzIG11c3QgYmUgdGhpcyBncmFwaCFcIjtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlTm9kZS5vd25lciAhPSB0YXJnZXROb2RlLm93bmVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBzZXQgc291cmNlIGFuZCB0YXJnZXRcbiAgICBuZXdFZGdlLnNvdXJjZSA9IHNvdXJjZU5vZGU7XG4gICAgbmV3RWRnZS50YXJnZXQgPSB0YXJnZXROb2RlO1xuXG4gICAgLy8gc2V0IGFzIGludHJhLWdyYXBoIGVkZ2VcbiAgICBuZXdFZGdlLmlzSW50ZXJHcmFwaCA9IGZhbHNlO1xuXG4gICAgLy8gYWRkIHRvIGdyYXBoIGVkZ2UgbGlzdFxuICAgIHRoaXMuZ2V0RWRnZXMoKS5wdXNoKG5ld0VkZ2UpO1xuXG4gICAgLy8gYWRkIHRvIGluY2lkZW5jeSBsaXN0c1xuICAgIHNvdXJjZU5vZGUuZWRnZXMucHVzaChuZXdFZGdlKTtcblxuICAgIGlmICh0YXJnZXROb2RlICE9IHNvdXJjZU5vZGUpIHtcbiAgICAgIHRhcmdldE5vZGUuZWRnZXMucHVzaChuZXdFZGdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3RWRnZTtcbiAgfVxufTtcblxuTEdyYXBoLnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHZhciBub2RlID0gb2JqO1xuICBpZiAob2JqIGluc3RhbmNlb2YgTE5vZGUpIHtcbiAgICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBcIk5vZGUgaXMgbnVsbCFcIjtcbiAgICB9XG4gICAgaWYgKCEobm9kZS5vd25lciAhPSBudWxsICYmIG5vZGUub3duZXIgPT0gdGhpcykpIHtcbiAgICAgIHRocm93IFwiT3duZXIgZ3JhcGggaXMgaW52YWxpZCFcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ3JhcGhNYW5hZ2VyID09IG51bGwpIHtcbiAgICAgIHRocm93IFwiT3duZXIgZ3JhcGggbWFuYWdlciBpcyBpbnZhbGlkIVwiO1xuICAgIH1cbiAgICAvLyByZW1vdmUgaW5jaWRlbnQgZWRnZXMgZmlyc3QgKG1ha2UgYSBjb3B5IHRvIGRvIGl0IHNhZmVseSlcbiAgICB2YXIgZWRnZXNUb0JlUmVtb3ZlZCA9IG5vZGUuZWRnZXMuc2xpY2UoKTtcbiAgICB2YXIgZWRnZTtcbiAgICB2YXIgcyA9IGVkZ2VzVG9CZVJlbW92ZWQubGVuZ3RoO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgczsgaSsrKSB7XG4gICAgICBlZGdlID0gZWRnZXNUb0JlUmVtb3ZlZFtpXTtcblxuICAgICAgaWYgKGVkZ2UuaXNJbnRlckdyYXBoKSB7XG4gICAgICAgIHRoaXMuZ3JhcGhNYW5hZ2VyLnJlbW92ZShlZGdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVkZ2Uuc291cmNlLm93bmVyLnJlbW92ZShlZGdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBub3cgdGhlIG5vZGUgaXRzZWxmXG4gICAgdmFyIGluZGV4ID0gdGhpcy5ub2Rlcy5pbmRleE9mKG5vZGUpO1xuICAgIGlmIChpbmRleCA9PSAtMSkge1xuICAgICAgdGhyb3cgXCJOb2RlIG5vdCBpbiBvd25lciBub2RlIGxpc3QhXCI7XG4gICAgfVxuXG4gICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9IGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIExFZGdlKSB7XG4gICAgdmFyIGVkZ2UgPSBvYmo7XG4gICAgaWYgKGVkZ2UgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgXCJFZGdlIGlzIG51bGwhXCI7XG4gICAgfVxuICAgIGlmICghKGVkZ2Uuc291cmNlICE9IG51bGwgJiYgZWRnZS50YXJnZXQgIT0gbnVsbCkpIHtcbiAgICAgIHRocm93IFwiU291cmNlIGFuZC9vciB0YXJnZXQgaXMgbnVsbCFcIjtcbiAgICB9XG4gICAgaWYgKCEoZWRnZS5zb3VyY2Uub3duZXIgIT0gbnVsbCAmJiBlZGdlLnRhcmdldC5vd25lciAhPSBudWxsICYmIGVkZ2Uuc291cmNlLm93bmVyID09IHRoaXMgJiYgZWRnZS50YXJnZXQub3duZXIgPT0gdGhpcykpIHtcbiAgICAgIHRocm93IFwiU291cmNlIGFuZC9vciB0YXJnZXQgb3duZXIgaXMgaW52YWxpZCFcIjtcbiAgICB9XG5cbiAgICB2YXIgc291cmNlSW5kZXggPSBlZGdlLnNvdXJjZS5lZGdlcy5pbmRleE9mKGVkZ2UpO1xuICAgIHZhciB0YXJnZXRJbmRleCA9IGVkZ2UudGFyZ2V0LmVkZ2VzLmluZGV4T2YoZWRnZSk7XG4gICAgaWYgKCEoc291cmNlSW5kZXggPiAtMSAmJiB0YXJnZXRJbmRleCA+IC0xKSkge1xuICAgICAgdGhyb3cgXCJTb3VyY2UgYW5kL29yIHRhcmdldCBkb2Vzbid0IGtub3cgdGhpcyBlZGdlIVwiO1xuICAgIH1cblxuICAgIGVkZ2Uuc291cmNlLmVkZ2VzLnNwbGljZShzb3VyY2VJbmRleCwgMSk7XG5cbiAgICBpZiAoZWRnZS50YXJnZXQgIT0gZWRnZS5zb3VyY2UpIHtcbiAgICAgIGVkZ2UudGFyZ2V0LmVkZ2VzLnNwbGljZSh0YXJnZXRJbmRleCwgMSk7XG4gICAgfVxuXG4gICAgdmFyIGluZGV4ID0gZWRnZS5zb3VyY2Uub3duZXIuZ2V0RWRnZXMoKS5pbmRleE9mKGVkZ2UpO1xuICAgIGlmIChpbmRleCA9PSAtMSkge1xuICAgICAgdGhyb3cgXCJOb3QgaW4gb3duZXIncyBlZGdlIGxpc3QhXCI7XG4gICAgfVxuXG4gICAgZWRnZS5zb3VyY2Uub3duZXIuZ2V0RWRnZXMoKS5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG59O1xuXG5MR3JhcGgucHJvdG90eXBlLnVwZGF0ZUxlZnRUb3AgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciB0b3AgPSBJbnRlZ2VyLk1BWF9WQUxVRTtcbiAgdmFyIGxlZnQgPSBJbnRlZ2VyLk1BWF9WQUxVRTtcbiAgdmFyIG5vZGVUb3A7XG4gIHZhciBub2RlTGVmdDtcbiAgdmFyIG1hcmdpbjtcblxuICB2YXIgbm9kZXMgPSB0aGlzLmdldE5vZGVzKCk7XG4gIHZhciBzID0gbm9kZXMubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgczsgaSsrKSB7XG4gICAgdmFyIGxOb2RlID0gbm9kZXNbaV07XG4gICAgbm9kZVRvcCA9IGxOb2RlLmdldFRvcCgpO1xuICAgIG5vZGVMZWZ0ID0gbE5vZGUuZ2V0TGVmdCgpO1xuXG4gICAgaWYgKHRvcCA+IG5vZGVUb3ApIHtcbiAgICAgIHRvcCA9IG5vZGVUb3A7XG4gICAgfVxuXG4gICAgaWYgKGxlZnQgPiBub2RlTGVmdCkge1xuICAgICAgbGVmdCA9IG5vZGVMZWZ0O1xuICAgIH1cbiAgfVxuXG4gIC8vIERvIHdlIGhhdmUgYW55IG5vZGVzIGluIHRoaXMgZ3JhcGg/XG4gIGlmICh0b3AgPT0gSW50ZWdlci5NQVhfVkFMVUUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChub2Rlc1swXS5nZXRQYXJlbnQoKS5wYWRkaW5nTGVmdCAhPSB1bmRlZmluZWQpIHtcbiAgICBtYXJnaW4gPSBub2Rlc1swXS5nZXRQYXJlbnQoKS5wYWRkaW5nTGVmdDtcbiAgfSBlbHNlIHtcbiAgICBtYXJnaW4gPSB0aGlzLm1hcmdpbjtcbiAgfVxuXG4gIHRoaXMubGVmdCA9IGxlZnQgLSBtYXJnaW47XG4gIHRoaXMudG9wID0gdG9wIC0gbWFyZ2luO1xuXG4gIC8vIEFwcGx5IHRoZSBtYXJnaW5zIGFuZCByZXR1cm4gdGhlIHJlc3VsdFxuICByZXR1cm4gbmV3IFBvaW50KHRoaXMubGVmdCwgdGhpcy50b3ApO1xufTtcblxuTEdyYXBoLnByb3RvdHlwZS51cGRhdGVCb3VuZHMgPSBmdW5jdGlvbiAocmVjdXJzaXZlKSB7XG4gIC8vIGNhbGN1bGF0ZSBib3VuZHNcbiAgdmFyIGxlZnQgPSBJbnRlZ2VyLk1BWF9WQUxVRTtcbiAgdmFyIHJpZ2h0ID0gLUludGVnZXIuTUFYX1ZBTFVFO1xuICB2YXIgdG9wID0gSW50ZWdlci5NQVhfVkFMVUU7XG4gIHZhciBib3R0b20gPSAtSW50ZWdlci5NQVhfVkFMVUU7XG4gIHZhciBub2RlTGVmdDtcbiAgdmFyIG5vZGVSaWdodDtcbiAgdmFyIG5vZGVUb3A7XG4gIHZhciBub2RlQm90dG9tO1xuICB2YXIgbWFyZ2luO1xuXG4gIHZhciBub2RlcyA9IHRoaXMubm9kZXM7XG4gIHZhciBzID0gbm9kZXMubGVuZ3RoO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHM7IGkrKykge1xuICAgIHZhciBsTm9kZSA9IG5vZGVzW2ldO1xuXG4gICAgaWYgKHJlY3Vyc2l2ZSAmJiBsTm9kZS5jaGlsZCAhPSBudWxsKSB7XG4gICAgICBsTm9kZS51cGRhdGVCb3VuZHMoKTtcbiAgICB9XG4gICAgbm9kZUxlZnQgPSBsTm9kZS5nZXRMZWZ0KCk7XG4gICAgbm9kZVJpZ2h0ID0gbE5vZGUuZ2V0UmlnaHQoKTtcbiAgICBub2RlVG9wID0gbE5vZGUuZ2V0VG9wKCk7XG4gICAgbm9kZUJvdHRvbSA9IGxOb2RlLmdldEJvdHRvbSgpO1xuXG4gICAgaWYgKGxlZnQgPiBub2RlTGVmdCkge1xuICAgICAgbGVmdCA9IG5vZGVMZWZ0O1xuICAgIH1cblxuICAgIGlmIChyaWdodCA8IG5vZGVSaWdodCkge1xuICAgICAgcmlnaHQgPSBub2RlUmlnaHQ7XG4gICAgfVxuXG4gICAgaWYgKHRvcCA+IG5vZGVUb3ApIHtcbiAgICAgIHRvcCA9IG5vZGVUb3A7XG4gICAgfVxuXG4gICAgaWYgKGJvdHRvbSA8IG5vZGVCb3R0b20pIHtcbiAgICAgIGJvdHRvbSA9IG5vZGVCb3R0b207XG4gICAgfVxuICB9XG5cbiAgdmFyIGJvdW5kaW5nUmVjdCA9IG5ldyBSZWN0YW5nbGVEKGxlZnQsIHRvcCwgcmlnaHQgLSBsZWZ0LCBib3R0b20gLSB0b3ApO1xuICBpZiAobGVmdCA9PSBJbnRlZ2VyLk1BWF9WQUxVRSkge1xuICAgIHRoaXMubGVmdCA9IHRoaXMucGFyZW50LmdldExlZnQoKTtcbiAgICB0aGlzLnJpZ2h0ID0gdGhpcy5wYXJlbnQuZ2V0UmlnaHQoKTtcbiAgICB0aGlzLnRvcCA9IHRoaXMucGFyZW50LmdldFRvcCgpO1xuICAgIHRoaXMuYm90dG9tID0gdGhpcy5wYXJlbnQuZ2V0Qm90dG9tKCk7XG4gIH1cblxuICBpZiAobm9kZXNbMF0uZ2V0UGFyZW50KCkucGFkZGluZ0xlZnQgIT0gdW5kZWZpbmVkKSB7XG4gICAgbWFyZ2luID0gbm9kZXNbMF0uZ2V0UGFyZW50KCkucGFkZGluZ0xlZnQ7XG4gIH0gZWxzZSB7XG4gICAgbWFyZ2luID0gdGhpcy5tYXJnaW47XG4gIH1cblxuICB0aGlzLmxlZnQgPSBib3VuZGluZ1JlY3QueCAtIG1hcmdpbjtcbiAgdGhpcy5yaWdodCA9IGJvdW5kaW5nUmVjdC54ICsgYm91bmRpbmdSZWN0LndpZHRoICsgbWFyZ2luO1xuICB0aGlzLnRvcCA9IGJvdW5kaW5nUmVjdC55IC0gbWFyZ2luO1xuICB0aGlzLmJvdHRvbSA9IGJvdW5kaW5nUmVjdC55ICsgYm91bmRpbmdSZWN0LmhlaWdodCArIG1hcmdpbjtcbn07XG5cbkxHcmFwaC5jYWxjdWxhdGVCb3VuZHMgPSBmdW5jdGlvbiAobm9kZXMpIHtcbiAgdmFyIGxlZnQgPSBJbnRlZ2VyLk1BWF9WQUxVRTtcbiAgdmFyIHJpZ2h0ID0gLUludGVnZXIuTUFYX1ZBTFVFO1xuICB2YXIgdG9wID0gSW50ZWdlci5NQVhfVkFMVUU7XG4gIHZhciBib3R0b20gPSAtSW50ZWdlci5NQVhfVkFMVUU7XG4gIHZhciBub2RlTGVmdDtcbiAgdmFyIG5vZGVSaWdodDtcbiAgdmFyIG5vZGVUb3A7XG4gIHZhciBub2RlQm90dG9tO1xuXG4gIHZhciBzID0gbm9kZXMubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgczsgaSsrKSB7XG4gICAgdmFyIGxOb2RlID0gbm9kZXNbaV07XG4gICAgbm9kZUxlZnQgPSBsTm9kZS5nZXRMZWZ0KCk7XG4gICAgbm9kZVJpZ2h0ID0gbE5vZGUuZ2V0UmlnaHQoKTtcbiAgICBub2RlVG9wID0gbE5vZGUuZ2V0VG9wKCk7XG4gICAgbm9kZUJvdHRvbSA9IGxOb2RlLmdldEJvdHRvbSgpO1xuXG4gICAgaWYgKGxlZnQgPiBub2RlTGVmdCkge1xuICAgICAgbGVmdCA9IG5vZGVMZWZ0O1xuICAgIH1cblxuICAgIGlmIChyaWdodCA8IG5vZGVSaWdodCkge1xuICAgICAgcmlnaHQgPSBub2RlUmlnaHQ7XG4gICAgfVxuXG4gICAgaWYgKHRvcCA+IG5vZGVUb3ApIHtcbiAgICAgIHRvcCA9IG5vZGVUb3A7XG4gICAgfVxuXG4gICAgaWYgKGJvdHRvbSA8IG5vZGVCb3R0b20pIHtcbiAgICAgIGJvdHRvbSA9IG5vZGVCb3R0b207XG4gICAgfVxuICB9XG5cbiAgdmFyIGJvdW5kaW5nUmVjdCA9IG5ldyBSZWN0YW5nbGVEKGxlZnQsIHRvcCwgcmlnaHQgLSBsZWZ0LCBib3R0b20gLSB0b3ApO1xuXG4gIHJldHVybiBib3VuZGluZ1JlY3Q7XG59O1xuXG5MR3JhcGgucHJvdG90eXBlLmdldEluY2x1c2lvblRyZWVEZXB0aCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMgPT0gdGhpcy5ncmFwaE1hbmFnZXIuZ2V0Um9vdCgpKSB7XG4gICAgcmV0dXJuIDE7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmdldEluY2x1c2lvblRyZWVEZXB0aCgpO1xuICB9XG59O1xuXG5MR3JhcGgucHJvdG90eXBlLmdldEVzdGltYXRlZFNpemUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmVzdGltYXRlZFNpemUgPT0gSW50ZWdlci5NSU5fVkFMVUUpIHtcbiAgICB0aHJvdyBcImFzc2VydCBmYWlsZWRcIjtcbiAgfVxuICByZXR1cm4gdGhpcy5lc3RpbWF0ZWRTaXplO1xufTtcblxuTEdyYXBoLnByb3RvdHlwZS5jYWxjRXN0aW1hdGVkU2l6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHNpemUgPSAwO1xuICB2YXIgbm9kZXMgPSB0aGlzLm5vZGVzO1xuICB2YXIgcyA9IG5vZGVzLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHM7IGkrKykge1xuICAgIHZhciBsTm9kZSA9IG5vZGVzW2ldO1xuICAgIHNpemUgKz0gbE5vZGUuY2FsY0VzdGltYXRlZFNpemUoKTtcbiAgfVxuXG4gIGlmIChzaXplID09IDApIHtcbiAgICB0aGlzLmVzdGltYXRlZFNpemUgPSBMYXlvdXRDb25zdGFudHMuRU1QVFlfQ09NUE9VTkRfTk9ERV9TSVpFO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuZXN0aW1hdGVkU2l6ZSA9IHNpemUgLyBNYXRoLnNxcnQodGhpcy5ub2Rlcy5sZW5ndGgpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuZXN0aW1hdGVkU2l6ZTtcbn07XG5cbkxHcmFwaC5wcm90b3R5cGUudXBkYXRlQ29ubmVjdGVkID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIGlmICh0aGlzLm5vZGVzLmxlbmd0aCA9PSAwKSB7XG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IHRydWU7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIHF1ZXVlID0gbmV3IExpbmtlZExpc3QoKTtcbiAgdmFyIHZpc2l0ZWQgPSBuZXcgU2V0KCk7XG4gIHZhciBjdXJyZW50Tm9kZSA9IHRoaXMubm9kZXNbMF07XG4gIHZhciBuZWlnaGJvckVkZ2VzO1xuICB2YXIgY3VycmVudE5laWdoYm9yO1xuICB2YXIgY2hpbGRyZW5PZk5vZGUgPSBjdXJyZW50Tm9kZS53aXRoQ2hpbGRyZW4oKTtcbiAgY2hpbGRyZW5PZk5vZGUuZm9yRWFjaChmdW5jdGlvbiAobm9kZSkge1xuICAgIHF1ZXVlLnB1c2gobm9kZSk7XG4gICAgdmlzaXRlZC5hZGQobm9kZSk7XG4gIH0pO1xuXG4gIHdoaWxlIChxdWV1ZS5sZW5ndGggIT09IDApIHtcbiAgICBjdXJyZW50Tm9kZSA9IHF1ZXVlLnNoaWZ0KCk7XG5cbiAgICAvLyBUcmF2ZXJzZSBhbGwgbmVpZ2hib3JzIG9mIHRoaXMgbm9kZVxuICAgIG5laWdoYm9yRWRnZXMgPSBjdXJyZW50Tm9kZS5nZXRFZGdlcygpO1xuICAgIHZhciBzaXplID0gbmVpZ2hib3JFZGdlcy5sZW5ndGg7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcbiAgICAgIHZhciBuZWlnaGJvckVkZ2UgPSBuZWlnaGJvckVkZ2VzW2ldO1xuICAgICAgY3VycmVudE5laWdoYm9yID0gbmVpZ2hib3JFZGdlLmdldE90aGVyRW5kSW5HcmFwaChjdXJyZW50Tm9kZSwgdGhpcyk7XG5cbiAgICAgIC8vIEFkZCB1bnZpc2l0ZWQgbmVpZ2hib3JzIHRvIHRoZSBsaXN0IHRvIHZpc2l0XG4gICAgICBpZiAoY3VycmVudE5laWdoYm9yICE9IG51bGwgJiYgIXZpc2l0ZWQuaGFzKGN1cnJlbnROZWlnaGJvcikpIHtcbiAgICAgICAgdmFyIGNoaWxkcmVuT2ZOZWlnaGJvciA9IGN1cnJlbnROZWlnaGJvci53aXRoQ2hpbGRyZW4oKTtcblxuICAgICAgICBjaGlsZHJlbk9mTmVpZ2hib3IuZm9yRWFjaChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgIHF1ZXVlLnB1c2gobm9kZSk7XG4gICAgICAgICAgdmlzaXRlZC5hZGQobm9kZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcblxuICBpZiAodmlzaXRlZC5zaXplID49IHRoaXMubm9kZXMubGVuZ3RoKSB7XG4gICAgdmFyIG5vT2ZWaXNpdGVkSW5UaGlzR3JhcGggPSAwO1xuXG4gICAgdmlzaXRlZC5mb3JFYWNoKGZ1bmN0aW9uICh2aXNpdGVkTm9kZSkge1xuICAgICAgaWYgKHZpc2l0ZWROb2RlLm93bmVyID09IHNlbGYpIHtcbiAgICAgICAgbm9PZlZpc2l0ZWRJblRoaXNHcmFwaCsrO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKG5vT2ZWaXNpdGVkSW5UaGlzR3JhcGggPT0gdGhpcy5ub2Rlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuaXNDb25uZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBMR3JhcGg7XG5cbi8qKiovIH0pLFxuLyogNiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG52YXIgTEdyYXBoO1xudmFyIExFZGdlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcblxuZnVuY3Rpb24gTEdyYXBoTWFuYWdlcihsYXlvdXQpIHtcbiAgTEdyYXBoID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTsgLy8gSXQgbWF5IGJlIGJldHRlciB0byBpbml0aWxpemUgdGhpcyBvdXQgb2YgdGhpcyBmdW5jdGlvbiBidXQgaXQgZ2l2ZXMgYW4gZXJyb3IgKFJpZ2h0LWhhbmQgc2lkZSBvZiAnaW5zdGFuY2VvZicgaXMgbm90IGNhbGxhYmxlKSBub3cuXG4gIHRoaXMubGF5b3V0ID0gbGF5b3V0O1xuXG4gIHRoaXMuZ3JhcGhzID0gW107XG4gIHRoaXMuZWRnZXMgPSBbXTtcbn1cblxuTEdyYXBoTWFuYWdlci5wcm90b3R5cGUuYWRkUm9vdCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIG5ncmFwaCA9IHRoaXMubGF5b3V0Lm5ld0dyYXBoKCk7XG4gIHZhciBubm9kZSA9IHRoaXMubGF5b3V0Lm5ld05vZGUobnVsbCk7XG4gIHZhciByb290ID0gdGhpcy5hZGQobmdyYXBoLCBubm9kZSk7XG4gIHRoaXMuc2V0Um9vdEdyYXBoKHJvb3QpO1xuICByZXR1cm4gdGhpcy5yb290R3JhcGg7XG59O1xuXG5MR3JhcGhNYW5hZ2VyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAobmV3R3JhcGgsIHBhcmVudE5vZGUsIG5ld0VkZ2UsIHNvdXJjZU5vZGUsIHRhcmdldE5vZGUpIHtcbiAgLy90aGVyZSBhcmUganVzdCAyIHBhcmFtZXRlcnMgYXJlIHBhc3NlZCB0aGVuIGl0IGFkZHMgYW4gTEdyYXBoIGVsc2UgaXQgYWRkcyBhbiBMRWRnZVxuICBpZiAobmV3RWRnZSA9PSBudWxsICYmIHNvdXJjZU5vZGUgPT0gbnVsbCAmJiB0YXJnZXROb2RlID09IG51bGwpIHtcbiAgICBpZiAobmV3R3JhcGggPT0gbnVsbCkge1xuICAgICAgdGhyb3cgXCJHcmFwaCBpcyBudWxsIVwiO1xuICAgIH1cbiAgICBpZiAocGFyZW50Tm9kZSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBcIlBhcmVudCBub2RlIGlzIG51bGwhXCI7XG4gICAgfVxuICAgIGlmICh0aGlzLmdyYXBocy5pbmRleE9mKG5ld0dyYXBoKSA+IC0xKSB7XG4gICAgICB0aHJvdyBcIkdyYXBoIGFscmVhZHkgaW4gdGhpcyBncmFwaCBtZ3IhXCI7XG4gICAgfVxuXG4gICAgdGhpcy5ncmFwaHMucHVzaChuZXdHcmFwaCk7XG5cbiAgICBpZiAobmV3R3JhcGgucGFyZW50ICE9IG51bGwpIHtcbiAgICAgIHRocm93IFwiQWxyZWFkeSBoYXMgYSBwYXJlbnQhXCI7XG4gICAgfVxuICAgIGlmIChwYXJlbnROb2RlLmNoaWxkICE9IG51bGwpIHtcbiAgICAgIHRocm93IFwiQWxyZWFkeSBoYXMgYSBjaGlsZCFcIjtcbiAgICB9XG5cbiAgICBuZXdHcmFwaC5wYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgIHBhcmVudE5vZGUuY2hpbGQgPSBuZXdHcmFwaDtcblxuICAgIHJldHVybiBuZXdHcmFwaDtcbiAgfSBlbHNlIHtcbiAgICAvL2NoYW5nZSB0aGUgb3JkZXIgb2YgdGhlIHBhcmFtZXRlcnNcbiAgICB0YXJnZXROb2RlID0gbmV3RWRnZTtcbiAgICBzb3VyY2VOb2RlID0gcGFyZW50Tm9kZTtcbiAgICBuZXdFZGdlID0gbmV3R3JhcGg7XG4gICAgdmFyIHNvdXJjZUdyYXBoID0gc291cmNlTm9kZS5nZXRPd25lcigpO1xuICAgIHZhciB0YXJnZXRHcmFwaCA9IHRhcmdldE5vZGUuZ2V0T3duZXIoKTtcblxuICAgIGlmICghKHNvdXJjZUdyYXBoICE9IG51bGwgJiYgc291cmNlR3JhcGguZ2V0R3JhcGhNYW5hZ2VyKCkgPT0gdGhpcykpIHtcbiAgICAgIHRocm93IFwiU291cmNlIG5vdCBpbiB0aGlzIGdyYXBoIG1nciFcIjtcbiAgICB9XG4gICAgaWYgKCEodGFyZ2V0R3JhcGggIT0gbnVsbCAmJiB0YXJnZXRHcmFwaC5nZXRHcmFwaE1hbmFnZXIoKSA9PSB0aGlzKSkge1xuICAgICAgdGhyb3cgXCJUYXJnZXQgbm90IGluIHRoaXMgZ3JhcGggbWdyIVwiO1xuICAgIH1cblxuICAgIGlmIChzb3VyY2VHcmFwaCA9PSB0YXJnZXRHcmFwaCkge1xuICAgICAgbmV3RWRnZS5pc0ludGVyR3JhcGggPSBmYWxzZTtcbiAgICAgIHJldHVybiBzb3VyY2VHcmFwaC5hZGQobmV3RWRnZSwgc291cmNlTm9kZSwgdGFyZ2V0Tm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0VkZ2UuaXNJbnRlckdyYXBoID0gdHJ1ZTtcblxuICAgICAgLy8gc2V0IHNvdXJjZSBhbmQgdGFyZ2V0XG4gICAgICBuZXdFZGdlLnNvdXJjZSA9IHNvdXJjZU5vZGU7XG4gICAgICBuZXdFZGdlLnRhcmdldCA9IHRhcmdldE5vZGU7XG5cbiAgICAgIC8vIGFkZCBlZGdlIHRvIGludGVyLWdyYXBoIGVkZ2UgbGlzdFxuICAgICAgaWYgKHRoaXMuZWRnZXMuaW5kZXhPZihuZXdFZGdlKSA+IC0xKSB7XG4gICAgICAgIHRocm93IFwiRWRnZSBhbHJlYWR5IGluIGludGVyLWdyYXBoIGVkZ2UgbGlzdCFcIjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5lZGdlcy5wdXNoKG5ld0VkZ2UpO1xuXG4gICAgICAvLyBhZGQgZWRnZSB0byBzb3VyY2UgYW5kIHRhcmdldCBpbmNpZGVuY3kgbGlzdHNcbiAgICAgIGlmICghKG5ld0VkZ2Uuc291cmNlICE9IG51bGwgJiYgbmV3RWRnZS50YXJnZXQgIT0gbnVsbCkpIHtcbiAgICAgICAgdGhyb3cgXCJFZGdlIHNvdXJjZSBhbmQvb3IgdGFyZ2V0IGlzIG51bGwhXCI7XG4gICAgICB9XG5cbiAgICAgIGlmICghKG5ld0VkZ2Uuc291cmNlLmVkZ2VzLmluZGV4T2YobmV3RWRnZSkgPT0gLTEgJiYgbmV3RWRnZS50YXJnZXQuZWRnZXMuaW5kZXhPZihuZXdFZGdlKSA9PSAtMSkpIHtcbiAgICAgICAgdGhyb3cgXCJFZGdlIGFscmVhZHkgaW4gc291cmNlIGFuZC9vciB0YXJnZXQgaW5jaWRlbmN5IGxpc3QhXCI7XG4gICAgICB9XG5cbiAgICAgIG5ld0VkZ2Uuc291cmNlLmVkZ2VzLnB1c2gobmV3RWRnZSk7XG4gICAgICBuZXdFZGdlLnRhcmdldC5lZGdlcy5wdXNoKG5ld0VkZ2UpO1xuXG4gICAgICByZXR1cm4gbmV3RWRnZTtcbiAgICB9XG4gIH1cbn07XG5cbkxHcmFwaE1hbmFnZXIucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uIChsT2JqKSB7XG4gIGlmIChsT2JqIGluc3RhbmNlb2YgTEdyYXBoKSB7XG4gICAgdmFyIGdyYXBoID0gbE9iajtcbiAgICBpZiAoZ3JhcGguZ2V0R3JhcGhNYW5hZ2VyKCkgIT0gdGhpcykge1xuICAgICAgdGhyb3cgXCJHcmFwaCBub3QgaW4gdGhpcyBncmFwaCBtZ3JcIjtcbiAgICB9XG4gICAgaWYgKCEoZ3JhcGggPT0gdGhpcy5yb290R3JhcGggfHwgZ3JhcGgucGFyZW50ICE9IG51bGwgJiYgZ3JhcGgucGFyZW50LmdyYXBoTWFuYWdlciA9PSB0aGlzKSkge1xuICAgICAgdGhyb3cgXCJJbnZhbGlkIHBhcmVudCBub2RlIVwiO1xuICAgIH1cblxuICAgIC8vIGZpcnN0IHRoZSBlZGdlcyAobWFrZSBhIGNvcHkgdG8gZG8gaXQgc2FmZWx5KVxuICAgIHZhciBlZGdlc1RvQmVSZW1vdmVkID0gW107XG5cbiAgICBlZGdlc1RvQmVSZW1vdmVkID0gZWRnZXNUb0JlUmVtb3ZlZC5jb25jYXQoZ3JhcGguZ2V0RWRnZXMoKSk7XG5cbiAgICB2YXIgZWRnZTtcbiAgICB2YXIgcyA9IGVkZ2VzVG9CZVJlbW92ZWQubGVuZ3RoO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgczsgaSsrKSB7XG4gICAgICBlZGdlID0gZWRnZXNUb0JlUmVtb3ZlZFtpXTtcbiAgICAgIGdyYXBoLnJlbW92ZShlZGdlKTtcbiAgICB9XG5cbiAgICAvLyB0aGVuIHRoZSBub2RlcyAobWFrZSBhIGNvcHkgdG8gZG8gaXQgc2FmZWx5KVxuICAgIHZhciBub2Rlc1RvQmVSZW1vdmVkID0gW107XG5cbiAgICBub2Rlc1RvQmVSZW1vdmVkID0gbm9kZXNUb0JlUmVtb3ZlZC5jb25jYXQoZ3JhcGguZ2V0Tm9kZXMoKSk7XG5cbiAgICB2YXIgbm9kZTtcbiAgICBzID0gbm9kZXNUb0JlUmVtb3ZlZC5sZW5ndGg7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzOyBpKyspIHtcbiAgICAgIG5vZGUgPSBub2Rlc1RvQmVSZW1vdmVkW2ldO1xuICAgICAgZ3JhcGgucmVtb3ZlKG5vZGUpO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIGdyYXBoIGlzIHRoZSByb290XG4gICAgaWYgKGdyYXBoID09IHRoaXMucm9vdEdyYXBoKSB7XG4gICAgICB0aGlzLnNldFJvb3RHcmFwaChudWxsKTtcbiAgICB9XG5cbiAgICAvLyBub3cgcmVtb3ZlIHRoZSBncmFwaCBpdHNlbGZcbiAgICB2YXIgaW5kZXggPSB0aGlzLmdyYXBocy5pbmRleE9mKGdyYXBoKTtcbiAgICB0aGlzLmdyYXBocy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgLy8gYWxzbyByZXNldCB0aGUgcGFyZW50IG9mIHRoZSBncmFwaFxuICAgIGdyYXBoLnBhcmVudCA9IG51bGw7XG4gIH0gZWxzZSBpZiAobE9iaiBpbnN0YW5jZW9mIExFZGdlKSB7XG4gICAgZWRnZSA9IGxPYmo7XG4gICAgaWYgKGVkZ2UgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgXCJFZGdlIGlzIG51bGwhXCI7XG4gICAgfVxuICAgIGlmICghZWRnZS5pc0ludGVyR3JhcGgpIHtcbiAgICAgIHRocm93IFwiTm90IGFuIGludGVyLWdyYXBoIGVkZ2UhXCI7XG4gICAgfVxuICAgIGlmICghKGVkZ2Uuc291cmNlICE9IG51bGwgJiYgZWRnZS50YXJnZXQgIT0gbnVsbCkpIHtcbiAgICAgIHRocm93IFwiU291cmNlIGFuZC9vciB0YXJnZXQgaXMgbnVsbCFcIjtcbiAgICB9XG5cbiAgICAvLyByZW1vdmUgZWRnZSBmcm9tIHNvdXJjZSBhbmQgdGFyZ2V0IG5vZGVzJyBpbmNpZGVuY3kgbGlzdHNcblxuICAgIGlmICghKGVkZ2Uuc291cmNlLmVkZ2VzLmluZGV4T2YoZWRnZSkgIT0gLTEgJiYgZWRnZS50YXJnZXQuZWRnZXMuaW5kZXhPZihlZGdlKSAhPSAtMSkpIHtcbiAgICAgIHRocm93IFwiU291cmNlIGFuZC9vciB0YXJnZXQgZG9lc24ndCBrbm93IHRoaXMgZWRnZSFcIjtcbiAgICB9XG5cbiAgICB2YXIgaW5kZXggPSBlZGdlLnNvdXJjZS5lZGdlcy5pbmRleE9mKGVkZ2UpO1xuICAgIGVkZ2Uuc291cmNlLmVkZ2VzLnNwbGljZShpbmRleCwgMSk7XG4gICAgaW5kZXggPSBlZGdlLnRhcmdldC5lZGdlcy5pbmRleE9mKGVkZ2UpO1xuICAgIGVkZ2UudGFyZ2V0LmVkZ2VzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAvLyByZW1vdmUgZWRnZSBmcm9tIG93bmVyIGdyYXBoIG1hbmFnZXIncyBpbnRlci1ncmFwaCBlZGdlIGxpc3RcblxuICAgIGlmICghKGVkZ2Uuc291cmNlLm93bmVyICE9IG51bGwgJiYgZWRnZS5zb3VyY2Uub3duZXIuZ2V0R3JhcGhNYW5hZ2VyKCkgIT0gbnVsbCkpIHtcbiAgICAgIHRocm93IFwiRWRnZSBvd25lciBncmFwaCBvciBvd25lciBncmFwaCBtYW5hZ2VyIGlzIG51bGwhXCI7XG4gICAgfVxuICAgIGlmIChlZGdlLnNvdXJjZS5vd25lci5nZXRHcmFwaE1hbmFnZXIoKS5lZGdlcy5pbmRleE9mKGVkZ2UpID09IC0xKSB7XG4gICAgICB0aHJvdyBcIk5vdCBpbiBvd25lciBncmFwaCBtYW5hZ2VyJ3MgZWRnZSBsaXN0IVwiO1xuICAgIH1cblxuICAgIHZhciBpbmRleCA9IGVkZ2Uuc291cmNlLm93bmVyLmdldEdyYXBoTWFuYWdlcigpLmVkZ2VzLmluZGV4T2YoZWRnZSk7XG4gICAgZWRnZS5zb3VyY2Uub3duZXIuZ2V0R3JhcGhNYW5hZ2VyKCkuZWRnZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxufTtcblxuTEdyYXBoTWFuYWdlci5wcm90b3R5cGUudXBkYXRlQm91bmRzID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLnJvb3RHcmFwaC51cGRhdGVCb3VuZHModHJ1ZSk7XG59O1xuXG5MR3JhcGhNYW5hZ2VyLnByb3RvdHlwZS5nZXRHcmFwaHMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmdyYXBocztcbn07XG5cbkxHcmFwaE1hbmFnZXIucHJvdG90eXBlLmdldEFsbE5vZGVzID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5hbGxOb2RlcyA9PSBudWxsKSB7XG4gICAgdmFyIG5vZGVMaXN0ID0gW107XG4gICAgdmFyIGdyYXBocyA9IHRoaXMuZ2V0R3JhcGhzKCk7XG4gICAgdmFyIHMgPSBncmFwaHMubGVuZ3RoO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgczsgaSsrKSB7XG4gICAgICBub2RlTGlzdCA9IG5vZGVMaXN0LmNvbmNhdChncmFwaHNbaV0uZ2V0Tm9kZXMoKSk7XG4gICAgfVxuICAgIHRoaXMuYWxsTm9kZXMgPSBub2RlTGlzdDtcbiAgfVxuICByZXR1cm4gdGhpcy5hbGxOb2Rlcztcbn07XG5cbkxHcmFwaE1hbmFnZXIucHJvdG90eXBlLnJlc2V0QWxsTm9kZXMgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuYWxsTm9kZXMgPSBudWxsO1xufTtcblxuTEdyYXBoTWFuYWdlci5wcm90b3R5cGUucmVzZXRBbGxFZGdlcyA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5hbGxFZGdlcyA9IG51bGw7XG59O1xuXG5MR3JhcGhNYW5hZ2VyLnByb3RvdHlwZS5yZXNldEFsbE5vZGVzVG9BcHBseUdyYXZpdGF0aW9uID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmFsbE5vZGVzVG9BcHBseUdyYXZpdGF0aW9uID0gbnVsbDtcbn07XG5cbkxHcmFwaE1hbmFnZXIucHJvdG90eXBlLmdldEFsbEVkZ2VzID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5hbGxFZGdlcyA9PSBudWxsKSB7XG4gICAgdmFyIGVkZ2VMaXN0ID0gW107XG4gICAgdmFyIGdyYXBocyA9IHRoaXMuZ2V0R3JhcGhzKCk7XG4gICAgdmFyIHMgPSBncmFwaHMubGVuZ3RoO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZ3JhcGhzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBlZGdlTGlzdCA9IGVkZ2VMaXN0LmNvbmNhdChncmFwaHNbaV0uZ2V0RWRnZXMoKSk7XG4gICAgfVxuXG4gICAgZWRnZUxpc3QgPSBlZGdlTGlzdC5jb25jYXQodGhpcy5lZGdlcyk7XG5cbiAgICB0aGlzLmFsbEVkZ2VzID0gZWRnZUxpc3Q7XG4gIH1cbiAgcmV0dXJuIHRoaXMuYWxsRWRnZXM7XG59O1xuXG5MR3JhcGhNYW5hZ2VyLnByb3RvdHlwZS5nZXRBbGxOb2Rlc1RvQXBwbHlHcmF2aXRhdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuYWxsTm9kZXNUb0FwcGx5R3Jhdml0YXRpb247XG59O1xuXG5MR3JhcGhNYW5hZ2VyLnByb3RvdHlwZS5zZXRBbGxOb2Rlc1RvQXBwbHlHcmF2aXRhdGlvbiA9IGZ1bmN0aW9uIChub2RlTGlzdCkge1xuICBpZiAodGhpcy5hbGxOb2Rlc1RvQXBwbHlHcmF2aXRhdGlvbiAhPSBudWxsKSB7XG4gICAgdGhyb3cgXCJhc3NlcnQgZmFpbGVkXCI7XG4gIH1cblxuICB0aGlzLmFsbE5vZGVzVG9BcHBseUdyYXZpdGF0aW9uID0gbm9kZUxpc3Q7XG59O1xuXG5MR3JhcGhNYW5hZ2VyLnByb3RvdHlwZS5nZXRSb290ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5yb290R3JhcGg7XG59O1xuXG5MR3JhcGhNYW5hZ2VyLnByb3RvdHlwZS5zZXRSb290R3JhcGggPSBmdW5jdGlvbiAoZ3JhcGgpIHtcbiAgaWYgKGdyYXBoLmdldEdyYXBoTWFuYWdlcigpICE9IHRoaXMpIHtcbiAgICB0aHJvdyBcIlJvb3Qgbm90IGluIHRoaXMgZ3JhcGggbWdyIVwiO1xuICB9XG5cbiAgdGhpcy5yb290R3JhcGggPSBncmFwaDtcbiAgLy8gcm9vdCBncmFwaCBtdXN0IGhhdmUgYSByb290IG5vZGUgYXNzb2NpYXRlZCB3aXRoIGl0IGZvciBjb252ZW5pZW5jZVxuICBpZiAoZ3JhcGgucGFyZW50ID09IG51bGwpIHtcbiAgICBncmFwaC5wYXJlbnQgPSB0aGlzLmxheW91dC5uZXdOb2RlKFwiUm9vdCBub2RlXCIpO1xuICB9XG59O1xuXG5MR3JhcGhNYW5hZ2VyLnByb3RvdHlwZS5nZXRMYXlvdXQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmxheW91dDtcbn07XG5cbkxHcmFwaE1hbmFnZXIucHJvdG90eXBlLmlzT25lQW5jZXN0b3JPZk90aGVyID0gZnVuY3Rpb24gKGZpcnN0Tm9kZSwgc2Vjb25kTm9kZSkge1xuICBpZiAoIShmaXJzdE5vZGUgIT0gbnVsbCAmJiBzZWNvbmROb2RlICE9IG51bGwpKSB7XG4gICAgdGhyb3cgXCJhc3NlcnQgZmFpbGVkXCI7XG4gIH1cblxuICBpZiAoZmlyc3ROb2RlID09IHNlY29uZE5vZGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBJcyBzZWNvbmQgbm9kZSBhbiBhbmNlc3RvciBvZiB0aGUgZmlyc3Qgb25lP1xuICB2YXIgb3duZXJHcmFwaCA9IGZpcnN0Tm9kZS5nZXRPd25lcigpO1xuICB2YXIgcGFyZW50Tm9kZTtcblxuICBkbyB7XG4gICAgcGFyZW50Tm9kZSA9IG93bmVyR3JhcGguZ2V0UGFyZW50KCk7XG5cbiAgICBpZiAocGFyZW50Tm9kZSA9PSBudWxsKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAocGFyZW50Tm9kZSA9PSBzZWNvbmROb2RlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBvd25lckdyYXBoID0gcGFyZW50Tm9kZS5nZXRPd25lcigpO1xuICAgIGlmIChvd25lckdyYXBoID09IG51bGwpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSB3aGlsZSAodHJ1ZSk7XG4gIC8vIElzIGZpcnN0IG5vZGUgYW4gYW5jZXN0b3Igb2YgdGhlIHNlY29uZCBvbmU/XG4gIG93bmVyR3JhcGggPSBzZWNvbmROb2RlLmdldE93bmVyKCk7XG5cbiAgZG8ge1xuICAgIHBhcmVudE5vZGUgPSBvd25lckdyYXBoLmdldFBhcmVudCgpO1xuXG4gICAgaWYgKHBhcmVudE5vZGUgPT0gbnVsbCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKHBhcmVudE5vZGUgPT0gZmlyc3ROb2RlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBvd25lckdyYXBoID0gcGFyZW50Tm9kZS5nZXRPd25lcigpO1xuICAgIGlmIChvd25lckdyYXBoID09IG51bGwpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSB3aGlsZSAodHJ1ZSk7XG5cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuTEdyYXBoTWFuYWdlci5wcm90b3R5cGUuY2FsY0xvd2VzdENvbW1vbkFuY2VzdG9ycyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGVkZ2U7XG4gIHZhciBzb3VyY2VOb2RlO1xuICB2YXIgdGFyZ2V0Tm9kZTtcbiAgdmFyIHNvdXJjZUFuY2VzdG9yR3JhcGg7XG4gIHZhciB0YXJnZXRBbmNlc3RvckdyYXBoO1xuXG4gIHZhciBlZGdlcyA9IHRoaXMuZ2V0QWxsRWRnZXMoKTtcbiAgdmFyIHMgPSBlZGdlcy5sZW5ndGg7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgczsgaSsrKSB7XG4gICAgZWRnZSA9IGVkZ2VzW2ldO1xuXG4gICAgc291cmNlTm9kZSA9IGVkZ2Uuc291cmNlO1xuICAgIHRhcmdldE5vZGUgPSBlZGdlLnRhcmdldDtcbiAgICBlZGdlLmxjYSA9IG51bGw7XG4gICAgZWRnZS5zb3VyY2VJbkxjYSA9IHNvdXJjZU5vZGU7XG4gICAgZWRnZS50YXJnZXRJbkxjYSA9IHRhcmdldE5vZGU7XG5cbiAgICBpZiAoc291cmNlTm9kZSA9PSB0YXJnZXROb2RlKSB7XG4gICAgICBlZGdlLmxjYSA9IHNvdXJjZU5vZGUuZ2V0T3duZXIoKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHNvdXJjZUFuY2VzdG9yR3JhcGggPSBzb3VyY2VOb2RlLmdldE93bmVyKCk7XG5cbiAgICB3aGlsZSAoZWRnZS5sY2EgPT0gbnVsbCkge1xuICAgICAgZWRnZS50YXJnZXRJbkxjYSA9IHRhcmdldE5vZGU7XG4gICAgICB0YXJnZXRBbmNlc3RvckdyYXBoID0gdGFyZ2V0Tm9kZS5nZXRPd25lcigpO1xuXG4gICAgICB3aGlsZSAoZWRnZS5sY2EgPT0gbnVsbCkge1xuICAgICAgICBpZiAodGFyZ2V0QW5jZXN0b3JHcmFwaCA9PSBzb3VyY2VBbmNlc3RvckdyYXBoKSB7XG4gICAgICAgICAgZWRnZS5sY2EgPSB0YXJnZXRBbmNlc3RvckdyYXBoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhcmdldEFuY2VzdG9yR3JhcGggPT0gdGhpcy5yb290R3JhcGgpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlZGdlLmxjYSAhPSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgXCJhc3NlcnQgZmFpbGVkXCI7XG4gICAgICAgIH1cbiAgICAgICAgZWRnZS50YXJnZXRJbkxjYSA9IHRhcmdldEFuY2VzdG9yR3JhcGguZ2V0UGFyZW50KCk7XG4gICAgICAgIHRhcmdldEFuY2VzdG9yR3JhcGggPSBlZGdlLnRhcmdldEluTGNhLmdldE93bmVyKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzb3VyY2VBbmNlc3RvckdyYXBoID09IHRoaXMucm9vdEdyYXBoKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWRnZS5sY2EgPT0gbnVsbCkge1xuICAgICAgICBlZGdlLnNvdXJjZUluTGNhID0gc291cmNlQW5jZXN0b3JHcmFwaC5nZXRQYXJlbnQoKTtcbiAgICAgICAgc291cmNlQW5jZXN0b3JHcmFwaCA9IGVkZ2Uuc291cmNlSW5MY2EuZ2V0T3duZXIoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZWRnZS5sY2EgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgXCJhc3NlcnQgZmFpbGVkXCI7XG4gICAgfVxuICB9XG59O1xuXG5MR3JhcGhNYW5hZ2VyLnByb3RvdHlwZS5jYWxjTG93ZXN0Q29tbW9uQW5jZXN0b3IgPSBmdW5jdGlvbiAoZmlyc3ROb2RlLCBzZWNvbmROb2RlKSB7XG4gIGlmIChmaXJzdE5vZGUgPT0gc2Vjb25kTm9kZSkge1xuICAgIHJldHVybiBmaXJzdE5vZGUuZ2V0T3duZXIoKTtcbiAgfVxuICB2YXIgZmlyc3RPd25lckdyYXBoID0gZmlyc3ROb2RlLmdldE93bmVyKCk7XG5cbiAgZG8ge1xuICAgIGlmIChmaXJzdE93bmVyR3JhcGggPT0gbnVsbCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBzZWNvbmRPd25lckdyYXBoID0gc2Vjb25kTm9kZS5nZXRPd25lcigpO1xuXG4gICAgZG8ge1xuICAgICAgaWYgKHNlY29uZE93bmVyR3JhcGggPT0gbnVsbCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHNlY29uZE93bmVyR3JhcGggPT0gZmlyc3RPd25lckdyYXBoKSB7XG4gICAgICAgIHJldHVybiBzZWNvbmRPd25lckdyYXBoO1xuICAgICAgfVxuICAgICAgc2Vjb25kT3duZXJHcmFwaCA9IHNlY29uZE93bmVyR3JhcGguZ2V0UGFyZW50KCkuZ2V0T3duZXIoKTtcbiAgICB9IHdoaWxlICh0cnVlKTtcblxuICAgIGZpcnN0T3duZXJHcmFwaCA9IGZpcnN0T3duZXJHcmFwaC5nZXRQYXJlbnQoKS5nZXRPd25lcigpO1xuICB9IHdoaWxlICh0cnVlKTtcblxuICByZXR1cm4gZmlyc3RPd25lckdyYXBoO1xufTtcblxuTEdyYXBoTWFuYWdlci5wcm90b3R5cGUuY2FsY0luY2x1c2lvblRyZWVEZXB0aHMgPSBmdW5jdGlvbiAoZ3JhcGgsIGRlcHRoKSB7XG4gIGlmIChncmFwaCA9PSBudWxsICYmIGRlcHRoID09IG51bGwpIHtcbiAgICBncmFwaCA9IHRoaXMucm9vdEdyYXBoO1xuICAgIGRlcHRoID0gMTtcbiAgfVxuICB2YXIgbm9kZTtcblxuICB2YXIgbm9kZXMgPSBncmFwaC5nZXROb2RlcygpO1xuICB2YXIgcyA9IG5vZGVzLmxlbmd0aDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzOyBpKyspIHtcbiAgICBub2RlID0gbm9kZXNbaV07XG4gICAgbm9kZS5pbmNsdXNpb25UcmVlRGVwdGggPSBkZXB0aDtcblxuICAgIGlmIChub2RlLmNoaWxkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuY2FsY0luY2x1c2lvblRyZWVEZXB0aHMobm9kZS5jaGlsZCwgZGVwdGggKyAxKTtcbiAgICB9XG4gIH1cbn07XG5cbkxHcmFwaE1hbmFnZXIucHJvdG90eXBlLmluY2x1ZGVzSW52YWxpZEVkZ2UgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBlZGdlO1xuXG4gIHZhciBzID0gdGhpcy5lZGdlcy5sZW5ndGg7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgczsgaSsrKSB7XG4gICAgZWRnZSA9IHRoaXMuZWRnZXNbaV07XG5cbiAgICBpZiAodGhpcy5pc09uZUFuY2VzdG9yT2ZPdGhlcihlZGdlLnNvdXJjZSwgZWRnZS50YXJnZXQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBMR3JhcGhNYW5hZ2VyO1xuXG4vKioqLyB9KSxcbi8qIDcgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxudmFyIExheW91dENvbnN0YW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG5cbmZ1bmN0aW9uIEZETGF5b3V0Q29uc3RhbnRzKCkge31cblxuLy9GRExheW91dENvbnN0YW50cyBpbmhlcml0cyBzdGF0aWMgcHJvcHMgaW4gTGF5b3V0Q29uc3RhbnRzXG5mb3IgKHZhciBwcm9wIGluIExheW91dENvbnN0YW50cykge1xuICBGRExheW91dENvbnN0YW50c1twcm9wXSA9IExheW91dENvbnN0YW50c1twcm9wXTtcbn1cblxuRkRMYXlvdXRDb25zdGFudHMuTUFYX0lURVJBVElPTlMgPSAyNTAwO1xuXG5GRExheW91dENvbnN0YW50cy5ERUZBVUxUX0VER0VfTEVOR1RIID0gNTA7XG5GRExheW91dENvbnN0YW50cy5ERUZBVUxUX1NQUklOR19TVFJFTkdUSCA9IDAuNDU7XG5GRExheW91dENvbnN0YW50cy5ERUZBVUxUX1JFUFVMU0lPTl9TVFJFTkdUSCA9IDQ1MDAuMDtcbkZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfR1JBVklUWV9TVFJFTkdUSCA9IDAuNDtcbkZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfQ09NUE9VTkRfR1JBVklUWV9TVFJFTkdUSCA9IDEuMDtcbkZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfR1JBVklUWV9SQU5HRV9GQUNUT1IgPSAzLjg7XG5GRExheW91dENvbnN0YW50cy5ERUZBVUxUX0NPTVBPVU5EX0dSQVZJVFlfUkFOR0VfRkFDVE9SID0gMS41O1xuRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9VU0VfU01BUlRfSURFQUxfRURHRV9MRU5HVEhfQ0FMQ1VMQVRJT04gPSB0cnVlO1xuRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9VU0VfU01BUlRfUkVQVUxTSU9OX1JBTkdFX0NBTENVTEFUSU9OID0gdHJ1ZTtcbkZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfQ09PTElOR19GQUNUT1JfSU5DUkVNRU5UQUwgPSAwLjM7XG5GRExheW91dENvbnN0YW50cy5DT09MSU5HX0FEQVBUQVRJT05fRkFDVE9SID0gMC4zMztcbkZETGF5b3V0Q29uc3RhbnRzLkFEQVBUQVRJT05fTE9XRVJfTk9ERV9MSU1JVCA9IDEwMDA7XG5GRExheW91dENvbnN0YW50cy5BREFQVEFUSU9OX1VQUEVSX05PREVfTElNSVQgPSA1MDAwO1xuRkRMYXlvdXRDb25zdGFudHMuTUFYX05PREVfRElTUExBQ0VNRU5UX0lOQ1JFTUVOVEFMID0gMTAwLjA7XG5GRExheW91dENvbnN0YW50cy5NQVhfTk9ERV9ESVNQTEFDRU1FTlQgPSBGRExheW91dENvbnN0YW50cy5NQVhfTk9ERV9ESVNQTEFDRU1FTlRfSU5DUkVNRU5UQUwgKiAzO1xuRkRMYXlvdXRDb25zdGFudHMuTUlOX1JFUFVMU0lPTl9ESVNUID0gRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9FREdFX0xFTkdUSCAvIDEwLjA7XG5GRExheW91dENvbnN0YW50cy5DT05WRVJHRU5DRV9DSEVDS19QRVJJT0QgPSAxMDA7XG5GRExheW91dENvbnN0YW50cy5QRVJfTEVWRUxfSURFQUxfRURHRV9MRU5HVEhfRkFDVE9SID0gMC4xO1xuRkRMYXlvdXRDb25zdGFudHMuTUlOX0VER0VfTEVOR1RIID0gMTtcbkZETGF5b3V0Q29uc3RhbnRzLkdSSURfQ0FMQ1VMQVRJT05fQ0hFQ0tfUEVSSU9EID0gMTA7XG5cbm1vZHVsZS5leHBvcnRzID0gRkRMYXlvdXRDb25zdGFudHM7XG5cbi8qKiovIH0pLFxuLyogOCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG4vKipcbiAqIFRoaXMgY2xhc3MgbWFpbnRhaW5zIGEgbGlzdCBvZiBzdGF0aWMgZ2VvbWV0cnkgcmVsYXRlZCB1dGlsaXR5IG1ldGhvZHMuXG4gKlxuICpcbiAqIENvcHlyaWdodDogaS1WaXMgUmVzZWFyY2ggR3JvdXAsIEJpbGtlbnQgVW5pdmVyc2l0eSwgMjAwNyAtIHByZXNlbnRcbiAqL1xuXG52YXIgUG9pbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTtcblxuZnVuY3Rpb24gSUdlb21ldHJ5KCkge31cblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBjYWxjdWxhdGVzICpoYWxmKiB0aGUgYW1vdW50IGluIHggYW5kIHkgZGlyZWN0aW9ucyBvZiB0aGUgdHdvXG4gKiBpbnB1dCByZWN0YW5nbGVzIG5lZWRlZCB0byBzZXBhcmF0ZSB0aGVtIGtlZXBpbmcgdGhlaXIgcmVzcGVjdGl2ZVxuICogcG9zaXRpb25pbmcsIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgaW4gdGhlIGlucHV0IGFycmF5LiBBbiBpbnB1dFxuICogc2VwYXJhdGlvbiBidWZmZXIgYWRkZWQgdG8gdGhlIGFtb3VudCBpbiBib3RoIGRpcmVjdGlvbnMuIFdlIGFzc3VtZSB0aGF0XG4gKiB0aGUgdHdvIHJlY3RhbmdsZXMgZG8gaW50ZXJzZWN0LlxuICovXG5JR2VvbWV0cnkuY2FsY1NlcGFyYXRpb25BbW91bnQgPSBmdW5jdGlvbiAocmVjdEEsIHJlY3RCLCBvdmVybGFwQW1vdW50LCBzZXBhcmF0aW9uQnVmZmVyKSB7XG4gIGlmICghcmVjdEEuaW50ZXJzZWN0cyhyZWN0QikpIHtcbiAgICB0aHJvdyBcImFzc2VydCBmYWlsZWRcIjtcbiAgfVxuXG4gIHZhciBkaXJlY3Rpb25zID0gbmV3IEFycmF5KDIpO1xuXG4gIHRoaXMuZGVjaWRlRGlyZWN0aW9uc0Zvck92ZXJsYXBwaW5nTm9kZXMocmVjdEEsIHJlY3RCLCBkaXJlY3Rpb25zKTtcblxuICBvdmVybGFwQW1vdW50WzBdID0gTWF0aC5taW4ocmVjdEEuZ2V0UmlnaHQoKSwgcmVjdEIuZ2V0UmlnaHQoKSkgLSBNYXRoLm1heChyZWN0QS54LCByZWN0Qi54KTtcbiAgb3ZlcmxhcEFtb3VudFsxXSA9IE1hdGgubWluKHJlY3RBLmdldEJvdHRvbSgpLCByZWN0Qi5nZXRCb3R0b20oKSkgLSBNYXRoLm1heChyZWN0QS55LCByZWN0Qi55KTtcblxuICAvLyB1cGRhdGUgdGhlIG92ZXJsYXBwaW5nIGFtb3VudHMgZm9yIHRoZSBmb2xsb3dpbmcgY2FzZXM6XG4gIGlmIChyZWN0QS5nZXRYKCkgPD0gcmVjdEIuZ2V0WCgpICYmIHJlY3RBLmdldFJpZ2h0KCkgPj0gcmVjdEIuZ2V0UmlnaHQoKSkge1xuICAgIC8qIENhc2UgeC4xOlxuICAgICpcbiAgICAqIHJlY3RBXG4gICAgKiBcdHwgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAqIFx0fCAgICAgICAgX19fX19fX19fICAgICAgfFxuICAgICogXHR8ICAgICAgICB8ICAgICAgIHwgICAgICB8XG4gICAgKiBcdHxfX19fX19fX3xfX19fX19ffF9fX19fX3xcbiAgICAqIFx0XHRcdCB8ICAgICAgIHxcbiAgICAqICAgICAgICAgICB8ICAgICAgIHxcbiAgICAqICAgICAgICByZWN0QlxuICAgICovXG4gICAgb3ZlcmxhcEFtb3VudFswXSArPSBNYXRoLm1pbihyZWN0Qi5nZXRYKCkgLSByZWN0QS5nZXRYKCksIHJlY3RBLmdldFJpZ2h0KCkgLSByZWN0Qi5nZXRSaWdodCgpKTtcbiAgfSBlbHNlIGlmIChyZWN0Qi5nZXRYKCkgPD0gcmVjdEEuZ2V0WCgpICYmIHJlY3RCLmdldFJpZ2h0KCkgPj0gcmVjdEEuZ2V0UmlnaHQoKSkge1xuICAgIC8qIENhc2UgeC4yOlxuICAgICpcbiAgICAqIHJlY3RCXG4gICAgKiBcdHwgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAqIFx0fCAgICAgICAgX19fX19fX19fICAgICAgfFxuICAgICogXHR8ICAgICAgICB8ICAgICAgIHwgICAgICB8XG4gICAgKiBcdHxfX19fX19fX3xfX19fX19ffF9fX19fX3xcbiAgICAqIFx0XHRcdCB8ICAgICAgIHxcbiAgICAqICAgICAgICAgICB8ICAgICAgIHxcbiAgICAqICAgICAgICByZWN0QVxuICAgICovXG4gICAgb3ZlcmxhcEFtb3VudFswXSArPSBNYXRoLm1pbihyZWN0QS5nZXRYKCkgLSByZWN0Qi5nZXRYKCksIHJlY3RCLmdldFJpZ2h0KCkgLSByZWN0QS5nZXRSaWdodCgpKTtcbiAgfVxuICBpZiAocmVjdEEuZ2V0WSgpIDw9IHJlY3RCLmdldFkoKSAmJiByZWN0QS5nZXRCb3R0b20oKSA+PSByZWN0Qi5nZXRCb3R0b20oKSkge1xuICAgIC8qIENhc2UgeS4xOlxuICAgICAqICAgICAgICAgIF9fX19fX19fIHJlY3RBXG4gICAgICogICAgICAgICB8XG4gICAgICogICAgICAgICB8XG4gICAgICogICBfX19fX198X19fXyAgcmVjdEJcbiAgICAgKiAgICAgICAgIHwgICAgfFxuICAgICAqICAgICAgICAgfCAgICB8XG4gICAgICogICBfX19fX198X19fX3xcbiAgICAgKiAgICAgICAgIHxcbiAgICAgKiAgICAgICAgIHxcbiAgICAgKiAgICAgICAgIHxfX19fX19fX1xuICAgICAqXG4gICAgICovXG4gICAgb3ZlcmxhcEFtb3VudFsxXSArPSBNYXRoLm1pbihyZWN0Qi5nZXRZKCkgLSByZWN0QS5nZXRZKCksIHJlY3RBLmdldEJvdHRvbSgpIC0gcmVjdEIuZ2V0Qm90dG9tKCkpO1xuICB9IGVsc2UgaWYgKHJlY3RCLmdldFkoKSA8PSByZWN0QS5nZXRZKCkgJiYgcmVjdEIuZ2V0Qm90dG9tKCkgPj0gcmVjdEEuZ2V0Qm90dG9tKCkpIHtcbiAgICAvKiBDYXNlIHkuMjpcbiAgICAqICAgICAgICAgIF9fX19fX19fIHJlY3RCXG4gICAgKiAgICAgICAgIHxcbiAgICAqICAgICAgICAgfFxuICAgICogICBfX19fX198X19fXyAgcmVjdEFcbiAgICAqICAgICAgICAgfCAgICB8XG4gICAgKiAgICAgICAgIHwgICAgfFxuICAgICogICBfX19fX198X19fX3xcbiAgICAqICAgICAgICAgfFxuICAgICogICAgICAgICB8XG4gICAgKiAgICAgICAgIHxfX19fX19fX1xuICAgICpcbiAgICAqL1xuICAgIG92ZXJsYXBBbW91bnRbMV0gKz0gTWF0aC5taW4ocmVjdEEuZ2V0WSgpIC0gcmVjdEIuZ2V0WSgpLCByZWN0Qi5nZXRCb3R0b20oKSAtIHJlY3RBLmdldEJvdHRvbSgpKTtcbiAgfVxuXG4gIC8vIGZpbmQgc2xvcGUgb2YgdGhlIGxpbmUgcGFzc2VzIHR3byBjZW50ZXJzXG4gIHZhciBzbG9wZSA9IE1hdGguYWJzKChyZWN0Qi5nZXRDZW50ZXJZKCkgLSByZWN0QS5nZXRDZW50ZXJZKCkpIC8gKHJlY3RCLmdldENlbnRlclgoKSAtIHJlY3RBLmdldENlbnRlclgoKSkpO1xuICAvLyBpZiBjZW50ZXJzIGFyZSBvdmVybGFwcGVkXG4gIGlmIChyZWN0Qi5nZXRDZW50ZXJZKCkgPT09IHJlY3RBLmdldENlbnRlclkoKSAmJiByZWN0Qi5nZXRDZW50ZXJYKCkgPT09IHJlY3RBLmdldENlbnRlclgoKSkge1xuICAgIC8vIGFzc3VtZSB0aGUgc2xvcGUgaXMgMSAoNDUgZGVncmVlKVxuICAgIHNsb3BlID0gMS4wO1xuICB9XG5cbiAgdmFyIG1vdmVCeVkgPSBzbG9wZSAqIG92ZXJsYXBBbW91bnRbMF07XG4gIHZhciBtb3ZlQnlYID0gb3ZlcmxhcEFtb3VudFsxXSAvIHNsb3BlO1xuICBpZiAob3ZlcmxhcEFtb3VudFswXSA8IG1vdmVCeVgpIHtcbiAgICBtb3ZlQnlYID0gb3ZlcmxhcEFtb3VudFswXTtcbiAgfSBlbHNlIHtcbiAgICBtb3ZlQnlZID0gb3ZlcmxhcEFtb3VudFsxXTtcbiAgfVxuICAvLyByZXR1cm4gaGFsZiB0aGUgYW1vdW50IHNvIHRoYXQgaWYgZWFjaCByZWN0YW5nbGUgaXMgbW92ZWQgYnkgdGhlc2VcbiAgLy8gYW1vdW50cyBpbiBvcHBvc2l0ZSBkaXJlY3Rpb25zLCBvdmVybGFwIHdpbGwgYmUgcmVzb2x2ZWRcbiAgb3ZlcmxhcEFtb3VudFswXSA9IC0xICogZGlyZWN0aW9uc1swXSAqIChtb3ZlQnlYIC8gMiArIHNlcGFyYXRpb25CdWZmZXIpO1xuICBvdmVybGFwQW1vdW50WzFdID0gLTEgKiBkaXJlY3Rpb25zWzFdICogKG1vdmVCeVkgLyAyICsgc2VwYXJhdGlvbkJ1ZmZlcik7XG59O1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGRlY2lkZXMgdGhlIHNlcGFyYXRpb24gZGlyZWN0aW9uIG9mIG92ZXJsYXBwaW5nIG5vZGVzXG4gKlxuICogaWYgZGlyZWN0aW9uc1swXSA9IC0xLCB0aGVuIHJlY3RBIGdvZXMgbGVmdFxuICogaWYgZGlyZWN0aW9uc1swXSA9IDEsICB0aGVuIHJlY3RBIGdvZXMgcmlnaHRcbiAqIGlmIGRpcmVjdGlvbnNbMV0gPSAtMSwgdGhlbiByZWN0QSBnb2VzIHVwXG4gKiBpZiBkaXJlY3Rpb25zWzFdID0gMSwgIHRoZW4gcmVjdEEgZ29lcyBkb3duXG4gKi9cbklHZW9tZXRyeS5kZWNpZGVEaXJlY3Rpb25zRm9yT3ZlcmxhcHBpbmdOb2RlcyA9IGZ1bmN0aW9uIChyZWN0QSwgcmVjdEIsIGRpcmVjdGlvbnMpIHtcbiAgaWYgKHJlY3RBLmdldENlbnRlclgoKSA8IHJlY3RCLmdldENlbnRlclgoKSkge1xuICAgIGRpcmVjdGlvbnNbMF0gPSAtMTtcbiAgfSBlbHNlIHtcbiAgICBkaXJlY3Rpb25zWzBdID0gMTtcbiAgfVxuXG4gIGlmIChyZWN0QS5nZXRDZW50ZXJZKCkgPCByZWN0Qi5nZXRDZW50ZXJZKCkpIHtcbiAgICBkaXJlY3Rpb25zWzFdID0gLTE7XG4gIH0gZWxzZSB7XG4gICAgZGlyZWN0aW9uc1sxXSA9IDE7XG4gIH1cbn07XG5cbi8qKlxuICogVGhpcyBtZXRob2QgY2FsY3VsYXRlcyB0aGUgaW50ZXJzZWN0aW9uIChjbGlwcGluZykgcG9pbnRzIG9mIHRoZSB0d29cbiAqIGlucHV0IHJlY3RhbmdsZXMgd2l0aCBsaW5lIHNlZ21lbnQgZGVmaW5lZCBieSB0aGUgY2VudGVycyBvZiB0aGVzZSB0d29cbiAqIHJlY3RhbmdsZXMuIFRoZSBjbGlwcGluZyBwb2ludHMgYXJlIHNhdmVkIGluIHRoZSBpbnB1dCBkb3VibGUgYXJyYXkgYW5kXG4gKiB3aGV0aGVyIG9yIG5vdCB0aGUgdHdvIHJlY3RhbmdsZXMgb3ZlcmxhcCBpcyByZXR1cm5lZC5cbiAqL1xuSUdlb21ldHJ5LmdldEludGVyc2VjdGlvbjIgPSBmdW5jdGlvbiAocmVjdEEsIHJlY3RCLCByZXN1bHQpIHtcbiAgLy9yZXN1bHRbMC0xXSB3aWxsIGNvbnRhaW4gY2xpcFBvaW50IG9mIHJlY3RBLCByZXN1bHRbMi0zXSB3aWxsIGNvbnRhaW4gY2xpcFBvaW50IG9mIHJlY3RCXG4gIHZhciBwMXggPSByZWN0QS5nZXRDZW50ZXJYKCk7XG4gIHZhciBwMXkgPSByZWN0QS5nZXRDZW50ZXJZKCk7XG4gIHZhciBwMnggPSByZWN0Qi5nZXRDZW50ZXJYKCk7XG4gIHZhciBwMnkgPSByZWN0Qi5nZXRDZW50ZXJZKCk7XG5cbiAgLy9pZiB0d28gcmVjdGFuZ2xlcyBpbnRlcnNlY3QsIHRoZW4gY2xpcHBpbmcgcG9pbnRzIGFyZSBjZW50ZXJzXG4gIGlmIChyZWN0QS5pbnRlcnNlY3RzKHJlY3RCKSkge1xuICAgIHJlc3VsdFswXSA9IHAxeDtcbiAgICByZXN1bHRbMV0gPSBwMXk7XG4gICAgcmVzdWx0WzJdID0gcDJ4O1xuICAgIHJlc3VsdFszXSA9IHAyeTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvL3ZhcmlhYmxlcyBmb3IgcmVjdEFcbiAgdmFyIHRvcExlZnRBeCA9IHJlY3RBLmdldFgoKTtcbiAgdmFyIHRvcExlZnRBeSA9IHJlY3RBLmdldFkoKTtcbiAgdmFyIHRvcFJpZ2h0QXggPSByZWN0QS5nZXRSaWdodCgpO1xuICB2YXIgYm90dG9tTGVmdEF4ID0gcmVjdEEuZ2V0WCgpO1xuICB2YXIgYm90dG9tTGVmdEF5ID0gcmVjdEEuZ2V0Qm90dG9tKCk7XG4gIHZhciBib3R0b21SaWdodEF4ID0gcmVjdEEuZ2V0UmlnaHQoKTtcbiAgdmFyIGhhbGZXaWR0aEEgPSByZWN0QS5nZXRXaWR0aEhhbGYoKTtcbiAgdmFyIGhhbGZIZWlnaHRBID0gcmVjdEEuZ2V0SGVpZ2h0SGFsZigpO1xuICAvL3ZhcmlhYmxlcyBmb3IgcmVjdEJcbiAgdmFyIHRvcExlZnRCeCA9IHJlY3RCLmdldFgoKTtcbiAgdmFyIHRvcExlZnRCeSA9IHJlY3RCLmdldFkoKTtcbiAgdmFyIHRvcFJpZ2h0QnggPSByZWN0Qi5nZXRSaWdodCgpO1xuICB2YXIgYm90dG9tTGVmdEJ4ID0gcmVjdEIuZ2V0WCgpO1xuICB2YXIgYm90dG9tTGVmdEJ5ID0gcmVjdEIuZ2V0Qm90dG9tKCk7XG4gIHZhciBib3R0b21SaWdodEJ4ID0gcmVjdEIuZ2V0UmlnaHQoKTtcbiAgdmFyIGhhbGZXaWR0aEIgPSByZWN0Qi5nZXRXaWR0aEhhbGYoKTtcbiAgdmFyIGhhbGZIZWlnaHRCID0gcmVjdEIuZ2V0SGVpZ2h0SGFsZigpO1xuXG4gIC8vZmxhZyB3aGV0aGVyIGNsaXBwaW5nIHBvaW50cyBhcmUgZm91bmRcbiAgdmFyIGNsaXBQb2ludEFGb3VuZCA9IGZhbHNlO1xuICB2YXIgY2xpcFBvaW50QkZvdW5kID0gZmFsc2U7XG5cbiAgLy8gbGluZSBpcyB2ZXJ0aWNhbFxuICBpZiAocDF4ID09PSBwMngpIHtcbiAgICBpZiAocDF5ID4gcDJ5KSB7XG4gICAgICByZXN1bHRbMF0gPSBwMXg7XG4gICAgICByZXN1bHRbMV0gPSB0b3BMZWZ0QXk7XG4gICAgICByZXN1bHRbMl0gPSBwMng7XG4gICAgICByZXN1bHRbM10gPSBib3R0b21MZWZ0Qnk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChwMXkgPCBwMnkpIHtcbiAgICAgIHJlc3VsdFswXSA9IHAxeDtcbiAgICAgIHJlc3VsdFsxXSA9IGJvdHRvbUxlZnRBeTtcbiAgICAgIHJlc3VsdFsyXSA9IHAyeDtcbiAgICAgIHJlc3VsdFszXSA9IHRvcExlZnRCeTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy9ub3QgbGluZSwgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIGxpbmUgaXMgaG9yaXpvbnRhbFxuICBlbHNlIGlmIChwMXkgPT09IHAyeSkge1xuICAgICAgaWYgKHAxeCA+IHAyeCkge1xuICAgICAgICByZXN1bHRbMF0gPSB0b3BMZWZ0QXg7XG4gICAgICAgIHJlc3VsdFsxXSA9IHAxeTtcbiAgICAgICAgcmVzdWx0WzJdID0gdG9wUmlnaHRCeDtcbiAgICAgICAgcmVzdWx0WzNdID0gcDJ5O1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKHAxeCA8IHAyeCkge1xuICAgICAgICByZXN1bHRbMF0gPSB0b3BSaWdodEF4O1xuICAgICAgICByZXN1bHRbMV0gPSBwMXk7XG4gICAgICAgIHJlc3VsdFsyXSA9IHRvcExlZnRCeDtcbiAgICAgICAgcmVzdWx0WzNdID0gcDJ5O1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvL25vdCB2YWxpZCBsaW5lLCByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy9zbG9wZXMgb2YgcmVjdEEncyBhbmQgcmVjdEIncyBkaWFnb25hbHNcbiAgICAgIHZhciBzbG9wZUEgPSByZWN0QS5oZWlnaHQgLyByZWN0QS53aWR0aDtcbiAgICAgIHZhciBzbG9wZUIgPSByZWN0Qi5oZWlnaHQgLyByZWN0Qi53aWR0aDtcblxuICAgICAgLy9zbG9wZSBvZiBsaW5lIGJldHdlZW4gY2VudGVyIG9mIHJlY3RBIGFuZCBjZW50ZXIgb2YgcmVjdEJcbiAgICAgIHZhciBzbG9wZVByaW1lID0gKHAyeSAtIHAxeSkgLyAocDJ4IC0gcDF4KTtcbiAgICAgIHZhciBjYXJkaW5hbERpcmVjdGlvbkEgPSB2b2lkIDA7XG4gICAgICB2YXIgY2FyZGluYWxEaXJlY3Rpb25CID0gdm9pZCAwO1xuICAgICAgdmFyIHRlbXBQb2ludEF4ID0gdm9pZCAwO1xuICAgICAgdmFyIHRlbXBQb2ludEF5ID0gdm9pZCAwO1xuICAgICAgdmFyIHRlbXBQb2ludEJ4ID0gdm9pZCAwO1xuICAgICAgdmFyIHRlbXBQb2ludEJ5ID0gdm9pZCAwO1xuXG4gICAgICAvL2RldGVybWluZSB3aGV0aGVyIGNsaXBwaW5nIHBvaW50IGlzIHRoZSBjb3JuZXIgb2Ygbm9kZUFcbiAgICAgIGlmICgtc2xvcGVBID09PSBzbG9wZVByaW1lKSB7XG4gICAgICAgIGlmIChwMXggPiBwMngpIHtcbiAgICAgICAgICByZXN1bHRbMF0gPSBib3R0b21MZWZ0QXg7XG4gICAgICAgICAgcmVzdWx0WzFdID0gYm90dG9tTGVmdEF5O1xuICAgICAgICAgIGNsaXBQb2ludEFGb3VuZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0WzBdID0gdG9wUmlnaHRBeDtcbiAgICAgICAgICByZXN1bHRbMV0gPSB0b3BMZWZ0QXk7XG4gICAgICAgICAgY2xpcFBvaW50QUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChzbG9wZUEgPT09IHNsb3BlUHJpbWUpIHtcbiAgICAgICAgaWYgKHAxeCA+IHAyeCkge1xuICAgICAgICAgIHJlc3VsdFswXSA9IHRvcExlZnRBeDtcbiAgICAgICAgICByZXN1bHRbMV0gPSB0b3BMZWZ0QXk7XG4gICAgICAgICAgY2xpcFBvaW50QUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRbMF0gPSBib3R0b21SaWdodEF4O1xuICAgICAgICAgIHJlc3VsdFsxXSA9IGJvdHRvbUxlZnRBeTtcbiAgICAgICAgICBjbGlwUG9pbnRBRm91bmQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vZGV0ZXJtaW5lIHdoZXRoZXIgY2xpcHBpbmcgcG9pbnQgaXMgdGhlIGNvcm5lciBvZiBub2RlQlxuICAgICAgaWYgKC1zbG9wZUIgPT09IHNsb3BlUHJpbWUpIHtcbiAgICAgICAgaWYgKHAyeCA+IHAxeCkge1xuICAgICAgICAgIHJlc3VsdFsyXSA9IGJvdHRvbUxlZnRCeDtcbiAgICAgICAgICByZXN1bHRbM10gPSBib3R0b21MZWZ0Qnk7XG4gICAgICAgICAgY2xpcFBvaW50QkZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRbMl0gPSB0b3BSaWdodEJ4O1xuICAgICAgICAgIHJlc3VsdFszXSA9IHRvcExlZnRCeTtcbiAgICAgICAgICBjbGlwUG9pbnRCRm91bmQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHNsb3BlQiA9PT0gc2xvcGVQcmltZSkge1xuICAgICAgICBpZiAocDJ4ID4gcDF4KSB7XG4gICAgICAgICAgcmVzdWx0WzJdID0gdG9wTGVmdEJ4O1xuICAgICAgICAgIHJlc3VsdFszXSA9IHRvcExlZnRCeTtcbiAgICAgICAgICBjbGlwUG9pbnRCRm91bmQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdFsyXSA9IGJvdHRvbVJpZ2h0Qng7XG4gICAgICAgICAgcmVzdWx0WzNdID0gYm90dG9tTGVmdEJ5O1xuICAgICAgICAgIGNsaXBQb2ludEJGb3VuZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy9pZiBib3RoIGNsaXBwaW5nIHBvaW50cyBhcmUgY29ybmVyc1xuICAgICAgaWYgKGNsaXBQb2ludEFGb3VuZCAmJiBjbGlwUG9pbnRCRm91bmQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvL2RldGVybWluZSBDYXJkaW5hbCBEaXJlY3Rpb24gb2YgcmVjdGFuZ2xlc1xuICAgICAgaWYgKHAxeCA+IHAyeCkge1xuICAgICAgICBpZiAocDF5ID4gcDJ5KSB7XG4gICAgICAgICAgY2FyZGluYWxEaXJlY3Rpb25BID0gdGhpcy5nZXRDYXJkaW5hbERpcmVjdGlvbihzbG9wZUEsIHNsb3BlUHJpbWUsIDQpO1xuICAgICAgICAgIGNhcmRpbmFsRGlyZWN0aW9uQiA9IHRoaXMuZ2V0Q2FyZGluYWxEaXJlY3Rpb24oc2xvcGVCLCBzbG9wZVByaW1lLCAyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjYXJkaW5hbERpcmVjdGlvbkEgPSB0aGlzLmdldENhcmRpbmFsRGlyZWN0aW9uKC1zbG9wZUEsIHNsb3BlUHJpbWUsIDMpO1xuICAgICAgICAgIGNhcmRpbmFsRGlyZWN0aW9uQiA9IHRoaXMuZ2V0Q2FyZGluYWxEaXJlY3Rpb24oLXNsb3BlQiwgc2xvcGVQcmltZSwgMSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwMXkgPiBwMnkpIHtcbiAgICAgICAgICBjYXJkaW5hbERpcmVjdGlvbkEgPSB0aGlzLmdldENhcmRpbmFsRGlyZWN0aW9uKC1zbG9wZUEsIHNsb3BlUHJpbWUsIDEpO1xuICAgICAgICAgIGNhcmRpbmFsRGlyZWN0aW9uQiA9IHRoaXMuZ2V0Q2FyZGluYWxEaXJlY3Rpb24oLXNsb3BlQiwgc2xvcGVQcmltZSwgMyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2FyZGluYWxEaXJlY3Rpb25BID0gdGhpcy5nZXRDYXJkaW5hbERpcmVjdGlvbihzbG9wZUEsIHNsb3BlUHJpbWUsIDIpO1xuICAgICAgICAgIGNhcmRpbmFsRGlyZWN0aW9uQiA9IHRoaXMuZ2V0Q2FyZGluYWxEaXJlY3Rpb24oc2xvcGVCLCBzbG9wZVByaW1lLCA0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy9jYWxjdWxhdGUgY2xpcHBpbmcgUG9pbnQgaWYgaXQgaXMgbm90IGZvdW5kIGJlZm9yZVxuICAgICAgaWYgKCFjbGlwUG9pbnRBRm91bmQpIHtcbiAgICAgICAgc3dpdGNoIChjYXJkaW5hbERpcmVjdGlvbkEpIHtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICB0ZW1wUG9pbnRBeSA9IHRvcExlZnRBeTtcbiAgICAgICAgICAgIHRlbXBQb2ludEF4ID0gcDF4ICsgLWhhbGZIZWlnaHRBIC8gc2xvcGVQcmltZTtcbiAgICAgICAgICAgIHJlc3VsdFswXSA9IHRlbXBQb2ludEF4O1xuICAgICAgICAgICAgcmVzdWx0WzFdID0gdGVtcFBvaW50QXk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICB0ZW1wUG9pbnRBeCA9IGJvdHRvbVJpZ2h0QXg7XG4gICAgICAgICAgICB0ZW1wUG9pbnRBeSA9IHAxeSArIGhhbGZXaWR0aEEgKiBzbG9wZVByaW1lO1xuICAgICAgICAgICAgcmVzdWx0WzBdID0gdGVtcFBvaW50QXg7XG4gICAgICAgICAgICByZXN1bHRbMV0gPSB0ZW1wUG9pbnRBeTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHRlbXBQb2ludEF5ID0gYm90dG9tTGVmdEF5O1xuICAgICAgICAgICAgdGVtcFBvaW50QXggPSBwMXggKyBoYWxmSGVpZ2h0QSAvIHNsb3BlUHJpbWU7XG4gICAgICAgICAgICByZXN1bHRbMF0gPSB0ZW1wUG9pbnRBeDtcbiAgICAgICAgICAgIHJlc3VsdFsxXSA9IHRlbXBQb2ludEF5O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgdGVtcFBvaW50QXggPSBib3R0b21MZWZ0QXg7XG4gICAgICAgICAgICB0ZW1wUG9pbnRBeSA9IHAxeSArIC1oYWxmV2lkdGhBICogc2xvcGVQcmltZTtcbiAgICAgICAgICAgIHJlc3VsdFswXSA9IHRlbXBQb2ludEF4O1xuICAgICAgICAgICAgcmVzdWx0WzFdID0gdGVtcFBvaW50QXk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFjbGlwUG9pbnRCRm91bmQpIHtcbiAgICAgICAgc3dpdGNoIChjYXJkaW5hbERpcmVjdGlvbkIpIHtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICB0ZW1wUG9pbnRCeSA9IHRvcExlZnRCeTtcbiAgICAgICAgICAgIHRlbXBQb2ludEJ4ID0gcDJ4ICsgLWhhbGZIZWlnaHRCIC8gc2xvcGVQcmltZTtcbiAgICAgICAgICAgIHJlc3VsdFsyXSA9IHRlbXBQb2ludEJ4O1xuICAgICAgICAgICAgcmVzdWx0WzNdID0gdGVtcFBvaW50Qnk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICB0ZW1wUG9pbnRCeCA9IGJvdHRvbVJpZ2h0Qng7XG4gICAgICAgICAgICB0ZW1wUG9pbnRCeSA9IHAyeSArIGhhbGZXaWR0aEIgKiBzbG9wZVByaW1lO1xuICAgICAgICAgICAgcmVzdWx0WzJdID0gdGVtcFBvaW50Qng7XG4gICAgICAgICAgICByZXN1bHRbM10gPSB0ZW1wUG9pbnRCeTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHRlbXBQb2ludEJ5ID0gYm90dG9tTGVmdEJ5O1xuICAgICAgICAgICAgdGVtcFBvaW50QnggPSBwMnggKyBoYWxmSGVpZ2h0QiAvIHNsb3BlUHJpbWU7XG4gICAgICAgICAgICByZXN1bHRbMl0gPSB0ZW1wUG9pbnRCeDtcbiAgICAgICAgICAgIHJlc3VsdFszXSA9IHRlbXBQb2ludEJ5O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgdGVtcFBvaW50QnggPSBib3R0b21MZWZ0Qng7XG4gICAgICAgICAgICB0ZW1wUG9pbnRCeSA9IHAyeSArIC1oYWxmV2lkdGhCICogc2xvcGVQcmltZTtcbiAgICAgICAgICAgIHJlc3VsdFsyXSA9IHRlbXBQb2ludEJ4O1xuICAgICAgICAgICAgcmVzdWx0WzNdID0gdGVtcFBvaW50Qnk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGluIHdoaWNoIGNhcmRpbmFsIGRpcmVjdGlvbiBkb2VzIGlucHV0IHBvaW50IHN0YXlzXG4gKiAxOiBOb3J0aFxuICogMjogRWFzdFxuICogMzogU291dGhcbiAqIDQ6IFdlc3RcbiAqL1xuSUdlb21ldHJ5LmdldENhcmRpbmFsRGlyZWN0aW9uID0gZnVuY3Rpb24gKHNsb3BlLCBzbG9wZVByaW1lLCBsaW5lKSB7XG4gIGlmIChzbG9wZSA+IHNsb3BlUHJpbWUpIHtcbiAgICByZXR1cm4gbGluZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gMSArIGxpbmUgJSA0O1xuICB9XG59O1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGNhbGN1bGF0ZXMgdGhlIGludGVyc2VjdGlvbiBvZiB0aGUgdHdvIGxpbmVzIGRlZmluZWQgYnlcbiAqIHBvaW50IHBhaXJzIChzMSxzMikgYW5kIChmMSxmMikuXG4gKi9cbklHZW9tZXRyeS5nZXRJbnRlcnNlY3Rpb24gPSBmdW5jdGlvbiAoczEsIHMyLCBmMSwgZjIpIHtcbiAgaWYgKGYyID09IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnRlcnNlY3Rpb24yKHMxLCBzMiwgZjEpO1xuICB9XG5cbiAgdmFyIHgxID0gczEueDtcbiAgdmFyIHkxID0gczEueTtcbiAgdmFyIHgyID0gczIueDtcbiAgdmFyIHkyID0gczIueTtcbiAgdmFyIHgzID0gZjEueDtcbiAgdmFyIHkzID0gZjEueTtcbiAgdmFyIHg0ID0gZjIueDtcbiAgdmFyIHk0ID0gZjIueTtcbiAgdmFyIHggPSB2b2lkIDAsXG4gICAgICB5ID0gdm9pZCAwOyAvLyBpbnRlcnNlY3Rpb24gcG9pbnRcbiAgdmFyIGExID0gdm9pZCAwLFxuICAgICAgYTIgPSB2b2lkIDAsXG4gICAgICBiMSA9IHZvaWQgMCxcbiAgICAgIGIyID0gdm9pZCAwLFxuICAgICAgYzEgPSB2b2lkIDAsXG4gICAgICBjMiA9IHZvaWQgMDsgLy8gY29lZmZpY2llbnRzIG9mIGxpbmUgZXFucy5cbiAgdmFyIGRlbm9tID0gdm9pZCAwO1xuXG4gIGExID0geTIgLSB5MTtcbiAgYjEgPSB4MSAtIHgyO1xuICBjMSA9IHgyICogeTEgLSB4MSAqIHkyOyAvLyB7IGExKnggKyBiMSp5ICsgYzEgPSAwIGlzIGxpbmUgMSB9XG5cbiAgYTIgPSB5NCAtIHkzO1xuICBiMiA9IHgzIC0geDQ7XG4gIGMyID0geDQgKiB5MyAtIHgzICogeTQ7IC8vIHsgYTIqeCArIGIyKnkgKyBjMiA9IDAgaXMgbGluZSAyIH1cblxuICBkZW5vbSA9IGExICogYjIgLSBhMiAqIGIxO1xuXG4gIGlmIChkZW5vbSA9PT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgeCA9IChiMSAqIGMyIC0gYjIgKiBjMSkgLyBkZW5vbTtcbiAgeSA9IChhMiAqIGMxIC0gYTEgKiBjMikgLyBkZW5vbTtcblxuICByZXR1cm4gbmV3IFBvaW50KHgsIHkpO1xufTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBmaW5kcyBhbmQgcmV0dXJucyB0aGUgYW5nbGUgb2YgdGhlIHZlY3RvciBmcm9tIHRoZSArIHgtYXhpc1xuICogaW4gY2xvY2t3aXNlIGRpcmVjdGlvbiAoY29tcGF0aWJsZSB3LyBKYXZhIGNvb3JkaW5hdGUgc3lzdGVtISkuXG4gKi9cbklHZW9tZXRyeS5hbmdsZU9mVmVjdG9yID0gZnVuY3Rpb24gKEN4LCBDeSwgTngsIE55KSB7XG4gIHZhciBDX2FuZ2xlID0gdm9pZCAwO1xuXG4gIGlmIChDeCAhPT0gTngpIHtcbiAgICBDX2FuZ2xlID0gTWF0aC5hdGFuKChOeSAtIEN5KSAvIChOeCAtIEN4KSk7XG5cbiAgICBpZiAoTnggPCBDeCkge1xuICAgICAgQ19hbmdsZSArPSBNYXRoLlBJO1xuICAgIH0gZWxzZSBpZiAoTnkgPCBDeSkge1xuICAgICAgQ19hbmdsZSArPSB0aGlzLlRXT19QSTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoTnkgPCBDeSkge1xuICAgIENfYW5nbGUgPSB0aGlzLk9ORV9BTkRfSEFMRl9QSTsgLy8gMjcwIGRlZ3JlZXNcbiAgfSBlbHNlIHtcbiAgICBDX2FuZ2xlID0gdGhpcy5IQUxGX1BJOyAvLyA5MCBkZWdyZWVzXG4gIH1cblxuICByZXR1cm4gQ19hbmdsZTtcbn07XG5cbi8qKlxuICogVGhpcyBtZXRob2QgY2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHR3byBsaW5lIHNlZ21lbnRzIChvbmUgd2l0aCBwb2ludFxuICogcDEgYW5kIHAyLCB0aGUgb3RoZXIgd2l0aCBwb2ludCBwMyBhbmQgcDQpIGludGVyc2VjdCBhdCBhIHBvaW50IG90aGVyXG4gKiB0aGFuIHRoZXNlIHBvaW50cy5cbiAqL1xuSUdlb21ldHJ5LmRvSW50ZXJzZWN0ID0gZnVuY3Rpb24gKHAxLCBwMiwgcDMsIHA0KSB7XG4gIHZhciBhID0gcDEueDtcbiAgdmFyIGIgPSBwMS55O1xuICB2YXIgYyA9IHAyLng7XG4gIHZhciBkID0gcDIueTtcbiAgdmFyIHAgPSBwMy54O1xuICB2YXIgcSA9IHAzLnk7XG4gIHZhciByID0gcDQueDtcbiAgdmFyIHMgPSBwNC55O1xuICB2YXIgZGV0ID0gKGMgLSBhKSAqIChzIC0gcSkgLSAociAtIHApICogKGQgLSBiKTtcblxuICBpZiAoZGV0ID09PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIHZhciBsYW1iZGEgPSAoKHMgLSBxKSAqIChyIC0gYSkgKyAocCAtIHIpICogKHMgLSBiKSkgLyBkZXQ7XG4gICAgdmFyIGdhbW1hID0gKChiIC0gZCkgKiAociAtIGEpICsgKGMgLSBhKSAqIChzIC0gYikpIC8gZGV0O1xuICAgIHJldHVybiAwIDwgbGFtYmRhICYmIGxhbWJkYSA8IDEgJiYgMCA8IGdhbW1hICYmIGdhbW1hIDwgMTtcbiAgfVxufTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNlY3Rpb246IENsYXNzIENvbnN0YW50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qKlxuICogU29tZSB1c2VmdWwgcHJlLWNhbGN1bGF0ZWQgY29uc3RhbnRzXG4gKi9cbklHZW9tZXRyeS5IQUxGX1BJID0gMC41ICogTWF0aC5QSTtcbklHZW9tZXRyeS5PTkVfQU5EX0hBTEZfUEkgPSAxLjUgKiBNYXRoLlBJO1xuSUdlb21ldHJ5LlRXT19QSSA9IDIuMCAqIE1hdGguUEk7XG5JR2VvbWV0cnkuVEhSRUVfUEkgPSAzLjAgKiBNYXRoLlBJO1xuXG5tb2R1bGUuZXhwb3J0cyA9IElHZW9tZXRyeTtcblxuLyoqKi8gfSksXG4vKiA5ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbmZ1bmN0aW9uIElNYXRoKCkge31cblxuLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBzaWduIG9mIHRoZSBpbnB1dCB2YWx1ZS5cbiAqL1xuSU1hdGguc2lnbiA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICBpZiAodmFsdWUgPiAwKSB7XG4gICAgcmV0dXJuIDE7XG4gIH0gZWxzZSBpZiAodmFsdWUgPCAwKSB7XG4gICAgcmV0dXJuIC0xO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAwO1xuICB9XG59O1xuXG5JTWF0aC5mbG9vciA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPCAwID8gTWF0aC5jZWlsKHZhbHVlKSA6IE1hdGguZmxvb3IodmFsdWUpO1xufTtcblxuSU1hdGguY2VpbCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPCAwID8gTWF0aC5mbG9vcih2YWx1ZSkgOiBNYXRoLmNlaWwodmFsdWUpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBJTWF0aDtcblxuLyoqKi8gfSksXG4vKiAxMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5mdW5jdGlvbiBJbnRlZ2VyKCkge31cblxuSW50ZWdlci5NQVhfVkFMVUUgPSAyMTQ3NDgzNjQ3O1xuSW50ZWdlci5NSU5fVkFMVUUgPSAtMjE0NzQ4MzY0ODtcblxubW9kdWxlLmV4cG9ydHMgPSBJbnRlZ2VyO1xuXG4vKioqLyB9KSxcbi8qIDExICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBub2RlRnJvbSA9IGZ1bmN0aW9uIG5vZGVGcm9tKHZhbHVlKSB7XG4gIHJldHVybiB7IHZhbHVlOiB2YWx1ZSwgbmV4dDogbnVsbCwgcHJldjogbnVsbCB9O1xufTtcblxudmFyIGFkZCA9IGZ1bmN0aW9uIGFkZChwcmV2LCBub2RlLCBuZXh0LCBsaXN0KSB7XG4gIGlmIChwcmV2ICE9PSBudWxsKSB7XG4gICAgcHJldi5uZXh0ID0gbm9kZTtcbiAgfSBlbHNlIHtcbiAgICBsaXN0LmhlYWQgPSBub2RlO1xuICB9XG5cbiAgaWYgKG5leHQgIT09IG51bGwpIHtcbiAgICBuZXh0LnByZXYgPSBub2RlO1xuICB9IGVsc2Uge1xuICAgIGxpc3QudGFpbCA9IG5vZGU7XG4gIH1cblxuICBub2RlLnByZXYgPSBwcmV2O1xuICBub2RlLm5leHQgPSBuZXh0O1xuXG4gIGxpc3QubGVuZ3RoKys7XG5cbiAgcmV0dXJuIG5vZGU7XG59O1xuXG52YXIgX3JlbW92ZSA9IGZ1bmN0aW9uIF9yZW1vdmUobm9kZSwgbGlzdCkge1xuICB2YXIgcHJldiA9IG5vZGUucHJldixcbiAgICAgIG5leHQgPSBub2RlLm5leHQ7XG5cblxuICBpZiAocHJldiAhPT0gbnVsbCkge1xuICAgIHByZXYubmV4dCA9IG5leHQ7XG4gIH0gZWxzZSB7XG4gICAgbGlzdC5oZWFkID0gbmV4dDtcbiAgfVxuXG4gIGlmIChuZXh0ICE9PSBudWxsKSB7XG4gICAgbmV4dC5wcmV2ID0gcHJldjtcbiAgfSBlbHNlIHtcbiAgICBsaXN0LnRhaWwgPSBwcmV2O1xuICB9XG5cbiAgbm9kZS5wcmV2ID0gbm9kZS5uZXh0ID0gbnVsbDtcblxuICBsaXN0Lmxlbmd0aC0tO1xuXG4gIHJldHVybiBub2RlO1xufTtcblxudmFyIExpbmtlZExpc3QgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIExpbmtlZExpc3QodmFscykge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGlua2VkTGlzdCk7XG5cbiAgICB0aGlzLmxlbmd0aCA9IDA7XG4gICAgdGhpcy5oZWFkID0gbnVsbDtcbiAgICB0aGlzLnRhaWwgPSBudWxsO1xuXG4gICAgaWYgKHZhbHMgIT0gbnVsbCkge1xuICAgICAgdmFscy5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5wdXNoKHYpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKExpbmtlZExpc3QsIFt7XG4gICAga2V5OiBcInNpemVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2l6ZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmxlbmd0aDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaW5zZXJ0QmVmb3JlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGluc2VydEJlZm9yZSh2YWwsIG90aGVyTm9kZSkge1xuICAgICAgcmV0dXJuIGFkZChvdGhlck5vZGUucHJldiwgbm9kZUZyb20odmFsKSwgb3RoZXJOb2RlLCB0aGlzKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaW5zZXJ0QWZ0ZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW5zZXJ0QWZ0ZXIodmFsLCBvdGhlck5vZGUpIHtcbiAgICAgIHJldHVybiBhZGQob3RoZXJOb2RlLCBub2RlRnJvbSh2YWwpLCBvdGhlck5vZGUubmV4dCwgdGhpcyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImluc2VydE5vZGVCZWZvcmVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW5zZXJ0Tm9kZUJlZm9yZShuZXdOb2RlLCBvdGhlck5vZGUpIHtcbiAgICAgIHJldHVybiBhZGQob3RoZXJOb2RlLnByZXYsIG5ld05vZGUsIG90aGVyTm9kZSwgdGhpcyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImluc2VydE5vZGVBZnRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbnNlcnROb2RlQWZ0ZXIobmV3Tm9kZSwgb3RoZXJOb2RlKSB7XG4gICAgICByZXR1cm4gYWRkKG90aGVyTm9kZSwgbmV3Tm9kZSwgb3RoZXJOb2RlLm5leHQsIHRoaXMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJwdXNoXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHB1c2godmFsKSB7XG4gICAgICByZXR1cm4gYWRkKHRoaXMudGFpbCwgbm9kZUZyb20odmFsKSwgbnVsbCwgdGhpcyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInVuc2hpZnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdW5zaGlmdCh2YWwpIHtcbiAgICAgIHJldHVybiBhZGQobnVsbCwgbm9kZUZyb20odmFsKSwgdGhpcy5oZWFkLCB0aGlzKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVtb3ZlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbW92ZShub2RlKSB7XG4gICAgICByZXR1cm4gX3JlbW92ZShub2RlLCB0aGlzKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicG9wXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHBvcCgpIHtcbiAgICAgIHJldHVybiBfcmVtb3ZlKHRoaXMudGFpbCwgdGhpcykudmFsdWU7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInBvcE5vZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcG9wTm9kZSgpIHtcbiAgICAgIHJldHVybiBfcmVtb3ZlKHRoaXMudGFpbCwgdGhpcyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNoaWZ0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNoaWZ0KCkge1xuICAgICAgcmV0dXJuIF9yZW1vdmUodGhpcy5oZWFkLCB0aGlzKS52YWx1ZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2hpZnROb2RlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNoaWZ0Tm9kZSgpIHtcbiAgICAgIHJldHVybiBfcmVtb3ZlKHRoaXMuaGVhZCwgdGhpcyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldF9vYmplY3RfYXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0X29iamVjdF9hdChpbmRleCkge1xuICAgICAgaWYgKGluZGV4IDw9IHRoaXMubGVuZ3RoKCkpIHtcbiAgICAgICAgdmFyIGkgPSAxO1xuICAgICAgICB2YXIgY3VycmVudCA9IHRoaXMuaGVhZDtcbiAgICAgICAgd2hpbGUgKGkgPCBpbmRleCkge1xuICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHQ7XG4gICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXJyZW50LnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzZXRfb2JqZWN0X2F0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNldF9vYmplY3RfYXQoaW5kZXgsIHZhbHVlKSB7XG4gICAgICBpZiAoaW5kZXggPD0gdGhpcy5sZW5ndGgoKSkge1xuICAgICAgICB2YXIgaSA9IDE7XG4gICAgICAgIHZhciBjdXJyZW50ID0gdGhpcy5oZWFkO1xuICAgICAgICB3aGlsZSAoaSA8IGluZGV4KSB7XG4gICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dDtcbiAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBMaW5rZWRMaXN0O1xufSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IExpbmtlZExpc3Q7XG5cbi8qKiovIH0pLFxuLyogMTIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuLypcclxuICpUaGlzIGNsYXNzIGlzIHRoZSBqYXZhc2NyaXB0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBQb2ludC5qYXZhIGNsYXNzIGluIGpka1xyXG4gKi9cbmZ1bmN0aW9uIFBvaW50KHgsIHksIHApIHtcbiAgdGhpcy54ID0gbnVsbDtcbiAgdGhpcy55ID0gbnVsbDtcbiAgaWYgKHggPT0gbnVsbCAmJiB5ID09IG51bGwgJiYgcCA9PSBudWxsKSB7XG4gICAgdGhpcy54ID0gMDtcbiAgICB0aGlzLnkgPSAwO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB4ID09ICdudW1iZXInICYmIHR5cGVvZiB5ID09ICdudW1iZXInICYmIHAgPT0gbnVsbCkge1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgfSBlbHNlIGlmICh4LmNvbnN0cnVjdG9yLm5hbWUgPT0gJ1BvaW50JyAmJiB5ID09IG51bGwgJiYgcCA9PSBudWxsKSB7XG4gICAgcCA9IHg7XG4gICAgdGhpcy54ID0gcC54O1xuICAgIHRoaXMueSA9IHAueTtcbiAgfVxufVxuXG5Qb2ludC5wcm90b3R5cGUuZ2V0WCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMueDtcbn07XG5cblBvaW50LnByb3RvdHlwZS5nZXRZID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy55O1xufTtcblxuUG9pbnQucHJvdG90eXBlLmdldExvY2F0aW9uID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFBvaW50KHRoaXMueCwgdGhpcy55KTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5zZXRMb2NhdGlvbiA9IGZ1bmN0aW9uICh4LCB5LCBwKSB7XG4gIGlmICh4LmNvbnN0cnVjdG9yLm5hbWUgPT0gJ1BvaW50JyAmJiB5ID09IG51bGwgJiYgcCA9PSBudWxsKSB7XG4gICAgcCA9IHg7XG4gICAgdGhpcy5zZXRMb2NhdGlvbihwLngsIHAueSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHggPT0gJ251bWJlcicgJiYgdHlwZW9mIHkgPT0gJ251bWJlcicgJiYgcCA9PSBudWxsKSB7XG4gICAgLy9pZiBib3RoIHBhcmFtZXRlcnMgYXJlIGludGVnZXIganVzdCBtb3ZlICh4LHkpIGxvY2F0aW9uXG4gICAgaWYgKHBhcnNlSW50KHgpID09IHggJiYgcGFyc2VJbnQoeSkgPT0geSkge1xuICAgICAgdGhpcy5tb3ZlKHgsIHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnggPSBNYXRoLmZsb29yKHggKyAwLjUpO1xuICAgICAgdGhpcy55ID0gTWF0aC5mbG9vcih5ICsgMC41KTtcbiAgICB9XG4gIH1cbn07XG5cblBvaW50LnByb3RvdHlwZS5tb3ZlID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgdGhpcy54ID0geDtcbiAgdGhpcy55ID0geTtcbn07XG5cblBvaW50LnByb3RvdHlwZS50cmFuc2xhdGUgPSBmdW5jdGlvbiAoZHgsIGR5KSB7XG4gIHRoaXMueCArPSBkeDtcbiAgdGhpcy55ICs9IGR5O1xufTtcblxuUG9pbnQucHJvdG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgaWYgKG9iai5jb25zdHJ1Y3Rvci5uYW1lID09IFwiUG9pbnRcIikge1xuICAgIHZhciBwdCA9IG9iajtcbiAgICByZXR1cm4gdGhpcy54ID09IHB0LnggJiYgdGhpcy55ID09IHB0Lnk7XG4gIH1cbiAgcmV0dXJuIHRoaXMgPT0gb2JqO1xufTtcblxuUG9pbnQucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFBvaW50KCkuY29uc3RydWN0b3IubmFtZSArIFwiW3g9XCIgKyB0aGlzLnggKyBcIix5PVwiICsgdGhpcy55ICsgXCJdXCI7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFBvaW50O1xuXG4vKioqLyB9KSxcbi8qIDEzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbmZ1bmN0aW9uIFJlY3RhbmdsZUQoeCwgeSwgd2lkdGgsIGhlaWdodCkge1xuICB0aGlzLnggPSAwO1xuICB0aGlzLnkgPSAwO1xuICB0aGlzLndpZHRoID0gMDtcbiAgdGhpcy5oZWlnaHQgPSAwO1xuXG4gIGlmICh4ICE9IG51bGwgJiYgeSAhPSBudWxsICYmIHdpZHRoICE9IG51bGwgJiYgaGVpZ2h0ICE9IG51bGwpIHtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG4gICAgdGhpcy53aWR0aCA9IHdpZHRoO1xuICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xuICB9XG59XG5cblJlY3RhbmdsZUQucHJvdG90eXBlLmdldFggPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLng7XG59O1xuXG5SZWN0YW5nbGVELnByb3RvdHlwZS5zZXRYID0gZnVuY3Rpb24gKHgpIHtcbiAgdGhpcy54ID0geDtcbn07XG5cblJlY3RhbmdsZUQucHJvdG90eXBlLmdldFkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnk7XG59O1xuXG5SZWN0YW5nbGVELnByb3RvdHlwZS5zZXRZID0gZnVuY3Rpb24gKHkpIHtcbiAgdGhpcy55ID0geTtcbn07XG5cblJlY3RhbmdsZUQucHJvdG90eXBlLmdldFdpZHRoID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy53aWR0aDtcbn07XG5cblJlY3RhbmdsZUQucHJvdG90eXBlLnNldFdpZHRoID0gZnVuY3Rpb24gKHdpZHRoKSB7XG4gIHRoaXMud2lkdGggPSB3aWR0aDtcbn07XG5cblJlY3RhbmdsZUQucHJvdG90eXBlLmdldEhlaWdodCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuaGVpZ2h0O1xufTtcblxuUmVjdGFuZ2xlRC5wcm90b3R5cGUuc2V0SGVpZ2h0ID0gZnVuY3Rpb24gKGhlaWdodCkge1xuICB0aGlzLmhlaWdodCA9IGhlaWdodDtcbn07XG5cblJlY3RhbmdsZUQucHJvdG90eXBlLmdldFJpZ2h0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy54ICsgdGhpcy53aWR0aDtcbn07XG5cblJlY3RhbmdsZUQucHJvdG90eXBlLmdldEJvdHRvbSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMueSArIHRoaXMuaGVpZ2h0O1xufTtcblxuUmVjdGFuZ2xlRC5wcm90b3R5cGUuaW50ZXJzZWN0cyA9IGZ1bmN0aW9uIChhKSB7XG4gIGlmICh0aGlzLmdldFJpZ2h0KCkgPCBhLngpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodGhpcy5nZXRCb3R0b20oKSA8IGEueSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChhLmdldFJpZ2h0KCkgPCB0aGlzLngpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoYS5nZXRCb3R0b20oKSA8IHRoaXMueSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuUmVjdGFuZ2xlRC5wcm90b3R5cGUuZ2V0Q2VudGVyWCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMueCArIHRoaXMud2lkdGggLyAyO1xufTtcblxuUmVjdGFuZ2xlRC5wcm90b3R5cGUuZ2V0TWluWCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuZ2V0WCgpO1xufTtcblxuUmVjdGFuZ2xlRC5wcm90b3R5cGUuZ2V0TWF4WCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuZ2V0WCgpICsgdGhpcy53aWR0aDtcbn07XG5cblJlY3RhbmdsZUQucHJvdG90eXBlLmdldENlbnRlclkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnkgKyB0aGlzLmhlaWdodCAvIDI7XG59O1xuXG5SZWN0YW5nbGVELnByb3RvdHlwZS5nZXRNaW5ZID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5nZXRZKCk7XG59O1xuXG5SZWN0YW5nbGVELnByb3RvdHlwZS5nZXRNYXhZID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5nZXRZKCkgKyB0aGlzLmhlaWdodDtcbn07XG5cblJlY3RhbmdsZUQucHJvdG90eXBlLmdldFdpZHRoSGFsZiA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMud2lkdGggLyAyO1xufTtcblxuUmVjdGFuZ2xlRC5wcm90b3R5cGUuZ2V0SGVpZ2h0SGFsZiA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuaGVpZ2h0IC8gMjtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVjdGFuZ2xlRDtcblxuLyoqKi8gfSksXG4vKiAxNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG52YXIgX3R5cGVvZiA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07XG5cbmZ1bmN0aW9uIFVuaXF1ZUlER2VuZXJldG9yKCkge31cblxuVW5pcXVlSURHZW5lcmV0b3IubGFzdElEID0gMDtcblxuVW5pcXVlSURHZW5lcmV0b3IuY3JlYXRlSUQgPSBmdW5jdGlvbiAob2JqKSB7XG4gIGlmIChVbmlxdWVJREdlbmVyZXRvci5pc1ByaW1pdGl2ZShvYmopKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuICBpZiAob2JqLnVuaXF1ZUlEICE9IG51bGwpIHtcbiAgICByZXR1cm4gb2JqLnVuaXF1ZUlEO1xuICB9XG4gIG9iai51bmlxdWVJRCA9IFVuaXF1ZUlER2VuZXJldG9yLmdldFN0cmluZygpO1xuICBVbmlxdWVJREdlbmVyZXRvci5sYXN0SUQrKztcbiAgcmV0dXJuIG9iai51bmlxdWVJRDtcbn07XG5cblVuaXF1ZUlER2VuZXJldG9yLmdldFN0cmluZyA9IGZ1bmN0aW9uIChpZCkge1xuICBpZiAoaWQgPT0gbnVsbCkgaWQgPSBVbmlxdWVJREdlbmVyZXRvci5sYXN0SUQ7XG4gIHJldHVybiBcIk9iamVjdCNcIiArIGlkICsgXCJcIjtcbn07XG5cblVuaXF1ZUlER2VuZXJldG9yLmlzUHJpbWl0aXZlID0gZnVuY3Rpb24gKGFyZykge1xuICB2YXIgdHlwZSA9IHR5cGVvZiBhcmcgPT09IFwidW5kZWZpbmVkXCIgPyBcInVuZGVmaW5lZFwiIDogX3R5cGVvZihhcmcpO1xuICByZXR1cm4gYXJnID09IG51bGwgfHwgdHlwZSAhPSBcIm9iamVjdFwiICYmIHR5cGUgIT0gXCJmdW5jdGlvblwiO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBVbmlxdWVJREdlbmVyZXRvcjtcblxuLyoqKi8gfSksXG4vKiAxNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5mdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7IGlmIChBcnJheS5pc0FycmF5KGFycikpIHsgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBBcnJheShhcnIubGVuZ3RoKTsgaSA8IGFyci5sZW5ndGg7IGkrKykgeyBhcnIyW2ldID0gYXJyW2ldOyB9IHJldHVybiBhcnIyOyB9IGVsc2UgeyByZXR1cm4gQXJyYXkuZnJvbShhcnIpOyB9IH1cblxudmFyIExheW91dENvbnN0YW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG52YXIgTEdyYXBoTWFuYWdlciA9IF9fd2VicGFja19yZXF1aXJlX18oNik7XG52YXIgTE5vZGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xudmFyIExFZGdlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbnZhciBMR3JhcGggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xudmFyIFBvaW50RCA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG52YXIgVHJhbnNmb3JtID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNyk7XG52YXIgRW1pdHRlciA9IF9fd2VicGFja19yZXF1aXJlX18oMjcpO1xuXG5mdW5jdGlvbiBMYXlvdXQoaXNSZW1vdGVVc2UpIHtcbiAgRW1pdHRlci5jYWxsKHRoaXMpO1xuXG4gIC8vTGF5b3V0IFF1YWxpdHk6IDA6ZHJhZnQsIDE6ZGVmYXVsdCwgMjpwcm9vZlxuICB0aGlzLmxheW91dFF1YWxpdHkgPSBMYXlvdXRDb25zdGFudHMuUVVBTElUWTtcbiAgLy9XaGV0aGVyIGxheW91dCBzaG91bGQgY3JlYXRlIGJlbmRwb2ludHMgYXMgbmVlZGVkIG9yIG5vdFxuICB0aGlzLmNyZWF0ZUJlbmRzQXNOZWVkZWQgPSBMYXlvdXRDb25zdGFudHMuREVGQVVMVF9DUkVBVEVfQkVORFNfQVNfTkVFREVEO1xuICAvL1doZXRoZXIgbGF5b3V0IHNob3VsZCBiZSBpbmNyZW1lbnRhbCBvciBub3RcbiAgdGhpcy5pbmNyZW1lbnRhbCA9IExheW91dENvbnN0YW50cy5ERUZBVUxUX0lOQ1JFTUVOVEFMO1xuICAvL1doZXRoZXIgd2UgYW5pbWF0ZSBmcm9tIGJlZm9yZSB0byBhZnRlciBsYXlvdXQgbm9kZSBwb3NpdGlvbnNcbiAgdGhpcy5hbmltYXRpb25PbkxheW91dCA9IExheW91dENvbnN0YW50cy5ERUZBVUxUX0FOSU1BVElPTl9PTl9MQVlPVVQ7XG4gIC8vV2hldGhlciB3ZSBhbmltYXRlIHRoZSBsYXlvdXQgcHJvY2VzcyBvciBub3RcbiAgdGhpcy5hbmltYXRpb25EdXJpbmdMYXlvdXQgPSBMYXlvdXRDb25zdGFudHMuREVGQVVMVF9BTklNQVRJT05fRFVSSU5HX0xBWU9VVDtcbiAgLy9OdW1iZXIgaXRlcmF0aW9ucyB0aGF0IHNob3VsZCBiZSBkb25lIGJldHdlZW4gdHdvIHN1Y2Nlc3NpdmUgYW5pbWF0aW9uc1xuICB0aGlzLmFuaW1hdGlvblBlcmlvZCA9IExheW91dENvbnN0YW50cy5ERUZBVUxUX0FOSU1BVElPTl9QRVJJT0Q7XG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgb3Igbm90IGxlYWYgbm9kZXMgKG5vbi1jb21wb3VuZCBub2RlcykgYXJlIG9mIHVuaWZvcm0gc2l6ZXMuIFdoZW5cclxuICAgKiB0aGV5IGFyZSwgYm90aCBzcHJpbmcgYW5kIHJlcHVsc2lvbiBmb3JjZXMgYmV0d2VlbiB0d28gbGVhZiBub2RlcyBjYW4gYmVcclxuICAgKiBjYWxjdWxhdGVkIHdpdGhvdXQgdGhlIGV4cGVuc2l2ZSBjbGlwcGluZyBwb2ludCBjYWxjdWxhdGlvbnMsIHJlc3VsdGluZ1xyXG4gICAqIGluIG1ham9yIHNwZWVkLXVwLlxyXG4gICAqL1xuICB0aGlzLnVuaWZvcm1MZWFmTm9kZVNpemVzID0gTGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfVU5JRk9STV9MRUFGX05PREVfU0laRVM7XG4gIC8qKlxyXG4gICAqIFRoaXMgaXMgdXNlZCBmb3IgY3JlYXRpb24gb2YgYmVuZHBvaW50cyBieSB1c2luZyBkdW1teSBub2RlcyBhbmQgZWRnZXMuXHJcbiAgICogTWFwcyBhbiBMRWRnZSB0byBpdHMgZHVtbXkgYmVuZHBvaW50IHBhdGguXHJcbiAgICovXG4gIHRoaXMuZWRnZVRvRHVtbXlOb2RlcyA9IG5ldyBNYXAoKTtcbiAgdGhpcy5ncmFwaE1hbmFnZXIgPSBuZXcgTEdyYXBoTWFuYWdlcih0aGlzKTtcbiAgdGhpcy5pc0xheW91dEZpbmlzaGVkID0gZmFsc2U7XG4gIHRoaXMuaXNTdWJMYXlvdXQgPSBmYWxzZTtcbiAgdGhpcy5pc1JlbW90ZVVzZSA9IGZhbHNlO1xuXG4gIGlmIChpc1JlbW90ZVVzZSAhPSBudWxsKSB7XG4gICAgdGhpcy5pc1JlbW90ZVVzZSA9IGlzUmVtb3RlVXNlO1xuICB9XG59XG5cbkxheW91dC5SQU5ET01fU0VFRCA9IDE7XG5cbkxheW91dC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVtaXR0ZXIucHJvdG90eXBlKTtcblxuTGF5b3V0LnByb3RvdHlwZS5nZXRHcmFwaE1hbmFnZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmdyYXBoTWFuYWdlcjtcbn07XG5cbkxheW91dC5wcm90b3R5cGUuZ2V0QWxsTm9kZXMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmdyYXBoTWFuYWdlci5nZXRBbGxOb2RlcygpO1xufTtcblxuTGF5b3V0LnByb3RvdHlwZS5nZXRBbGxFZGdlcyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuZ3JhcGhNYW5hZ2VyLmdldEFsbEVkZ2VzKCk7XG59O1xuXG5MYXlvdXQucHJvdG90eXBlLmdldEFsbE5vZGVzVG9BcHBseUdyYXZpdGF0aW9uID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5ncmFwaE1hbmFnZXIuZ2V0QWxsTm9kZXNUb0FwcGx5R3Jhdml0YXRpb24oKTtcbn07XG5cbkxheW91dC5wcm90b3R5cGUubmV3R3JhcGhNYW5hZ2VyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZ20gPSBuZXcgTEdyYXBoTWFuYWdlcih0aGlzKTtcbiAgdGhpcy5ncmFwaE1hbmFnZXIgPSBnbTtcbiAgcmV0dXJuIGdtO1xufTtcblxuTGF5b3V0LnByb3RvdHlwZS5uZXdHcmFwaCA9IGZ1bmN0aW9uICh2R3JhcGgpIHtcbiAgcmV0dXJuIG5ldyBMR3JhcGgobnVsbCwgdGhpcy5ncmFwaE1hbmFnZXIsIHZHcmFwaCk7XG59O1xuXG5MYXlvdXQucHJvdG90eXBlLm5ld05vZGUgPSBmdW5jdGlvbiAodk5vZGUpIHtcbiAgcmV0dXJuIG5ldyBMTm9kZSh0aGlzLmdyYXBoTWFuYWdlciwgdk5vZGUpO1xufTtcblxuTGF5b3V0LnByb3RvdHlwZS5uZXdFZGdlID0gZnVuY3Rpb24gKHZFZGdlKSB7XG4gIHJldHVybiBuZXcgTEVkZ2UobnVsbCwgbnVsbCwgdkVkZ2UpO1xufTtcblxuTGF5b3V0LnByb3RvdHlwZS5jaGVja0xheW91dFN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmdyYXBoTWFuYWdlci5nZXRSb290KCkgPT0gbnVsbCB8fCB0aGlzLmdyYXBoTWFuYWdlci5nZXRSb290KCkuZ2V0Tm9kZXMoKS5sZW5ndGggPT0gMCB8fCB0aGlzLmdyYXBoTWFuYWdlci5pbmNsdWRlc0ludmFsaWRFZGdlKCk7XG59O1xuXG5MYXlvdXQucHJvdG90eXBlLnJ1bkxheW91dCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5pc0xheW91dEZpbmlzaGVkID0gZmFsc2U7XG5cbiAgaWYgKHRoaXMudGlsaW5nUHJlTGF5b3V0KSB7XG4gICAgdGhpcy50aWxpbmdQcmVMYXlvdXQoKTtcbiAgfVxuXG4gIHRoaXMuaW5pdFBhcmFtZXRlcnMoKTtcbiAgdmFyIGlzTGF5b3V0U3VjY2Vzc2Z1bGw7XG5cbiAgaWYgKHRoaXMuY2hlY2tMYXlvdXRTdWNjZXNzKCkpIHtcbiAgICBpc0xheW91dFN1Y2Nlc3NmdWxsID0gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgaXNMYXlvdXRTdWNjZXNzZnVsbCA9IHRoaXMubGF5b3V0KCk7XG4gIH1cblxuICBpZiAoTGF5b3V0Q29uc3RhbnRzLkFOSU1BVEUgPT09ICdkdXJpbmcnKSB7XG4gICAgLy8gSWYgdGhpcyBpcyBhICdkdXJpbmcnIGxheW91dCBhbmltYXRpb24uIExheW91dCBpcyBub3QgZmluaXNoZWQgeWV0LiBcbiAgICAvLyBXZSBuZWVkIHRvIHBlcmZvcm0gdGhlc2UgaW4gaW5kZXguanMgd2hlbiBsYXlvdXQgaXMgcmVhbGx5IGZpbmlzaGVkLlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChpc0xheW91dFN1Y2Nlc3NmdWxsKSB7XG4gICAgaWYgKCF0aGlzLmlzU3ViTGF5b3V0KSB7XG4gICAgICB0aGlzLmRvUG9zdExheW91dCgpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0aGlzLnRpbGluZ1Bvc3RMYXlvdXQpIHtcbiAgICB0aGlzLnRpbGluZ1Bvc3RMYXlvdXQoKTtcbiAgfVxuXG4gIHRoaXMuaXNMYXlvdXRGaW5pc2hlZCA9IHRydWU7XG5cbiAgcmV0dXJuIGlzTGF5b3V0U3VjY2Vzc2Z1bGw7XG59O1xuXG4vKipcclxuICogVGhpcyBtZXRob2QgcGVyZm9ybXMgdGhlIG9wZXJhdGlvbnMgcmVxdWlyZWQgYWZ0ZXIgbGF5b3V0LlxyXG4gKi9cbkxheW91dC5wcm90b3R5cGUuZG9Qb3N0TGF5b3V0ID0gZnVuY3Rpb24gKCkge1xuICAvL2Fzc2VydCAhaXNTdWJMYXlvdXQgOiBcIlNob3VsZCBub3QgYmUgY2FsbGVkIG9uIHN1Yi1sYXlvdXQhXCI7XG4gIC8vIFByb3BhZ2F0ZSBnZW9tZXRyaWMgY2hhbmdlcyB0byB2LWxldmVsIG9iamVjdHNcbiAgaWYgKCF0aGlzLmluY3JlbWVudGFsKSB7XG4gICAgdGhpcy50cmFuc2Zvcm0oKTtcbiAgfVxuICB0aGlzLnVwZGF0ZSgpO1xufTtcblxuLyoqXHJcbiAqIFRoaXMgbWV0aG9kIHVwZGF0ZXMgdGhlIGdlb21ldHJ5IG9mIHRoZSB0YXJnZXQgZ3JhcGggYWNjb3JkaW5nIHRvXHJcbiAqIGNhbGN1bGF0ZWQgbGF5b3V0LlxyXG4gKi9cbkxheW91dC5wcm90b3R5cGUudXBkYXRlMiA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gdXBkYXRlIGJlbmQgcG9pbnRzXG4gIGlmICh0aGlzLmNyZWF0ZUJlbmRzQXNOZWVkZWQpIHtcbiAgICB0aGlzLmNyZWF0ZUJlbmRwb2ludHNGcm9tRHVtbXlOb2RlcygpO1xuXG4gICAgLy8gcmVzZXQgYWxsIGVkZ2VzLCBzaW5jZSB0aGUgdG9wb2xvZ3kgaGFzIGNoYW5nZWRcbiAgICB0aGlzLmdyYXBoTWFuYWdlci5yZXNldEFsbEVkZ2VzKCk7XG4gIH1cblxuICAvLyBwZXJmb3JtIGVkZ2UsIG5vZGUgYW5kIHJvb3QgdXBkYXRlcyBpZiBsYXlvdXQgaXMgbm90IGNhbGxlZFxuICAvLyByZW1vdGVseVxuICBpZiAoIXRoaXMuaXNSZW1vdGVVc2UpIHtcbiAgICAvLyB1cGRhdGUgYWxsIGVkZ2VzXG4gICAgdmFyIGVkZ2U7XG4gICAgdmFyIGFsbEVkZ2VzID0gdGhpcy5ncmFwaE1hbmFnZXIuZ2V0QWxsRWRnZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbEVkZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBlZGdlID0gYWxsRWRnZXNbaV07XG4gICAgICAvLyAgICAgIHRoaXMudXBkYXRlKGVkZ2UpO1xuICAgIH1cblxuICAgIC8vIHJlY3Vyc2l2ZWx5IHVwZGF0ZSBub2Rlc1xuICAgIHZhciBub2RlO1xuICAgIHZhciBub2RlcyA9IHRoaXMuZ3JhcGhNYW5hZ2VyLmdldFJvb3QoKS5nZXROb2RlcygpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgIC8vICAgICAgdGhpcy51cGRhdGUobm9kZSk7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIHJvb3QgZ3JhcGhcbiAgICB0aGlzLnVwZGF0ZSh0aGlzLmdyYXBoTWFuYWdlci5nZXRSb290KCkpO1xuICB9XG59O1xuXG5MYXlvdXQucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgaWYgKG9iaiA9PSBudWxsKSB7XG4gICAgdGhpcy51cGRhdGUyKCk7XG4gIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgTE5vZGUpIHtcbiAgICB2YXIgbm9kZSA9IG9iajtcbiAgICBpZiAobm9kZS5nZXRDaGlsZCgpICE9IG51bGwpIHtcbiAgICAgIC8vIHNpbmNlIG5vZGUgaXMgY29tcG91bmQsIHJlY3Vyc2l2ZWx5IHVwZGF0ZSBjaGlsZCBub2Rlc1xuICAgICAgdmFyIG5vZGVzID0gbm9kZS5nZXRDaGlsZCgpLmdldE5vZGVzKCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHVwZGF0ZShub2Rlc1tpXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIGwtbGV2ZWwgbm9kZSBpcyBhc3NvY2lhdGVkIHdpdGggYSB2LWxldmVsIGdyYXBoIG9iamVjdCxcbiAgICAvLyB0aGVuIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgdi1sZXZlbCBub2RlIGltcGxlbWVudHMgdGhlXG4gICAgLy8gaW50ZXJmYWNlIFVwZGF0YWJsZS5cbiAgICBpZiAobm9kZS52R3JhcGhPYmplY3QgIT0gbnVsbCkge1xuICAgICAgLy8gY2FzdCB0byBVcGRhdGFibGUgd2l0aG91dCBhbnkgdHlwZSBjaGVja1xuICAgICAgdmFyIHZOb2RlID0gbm9kZS52R3JhcGhPYmplY3Q7XG5cbiAgICAgIC8vIGNhbGwgdGhlIHVwZGF0ZSBtZXRob2Qgb2YgdGhlIGludGVyZmFjZVxuICAgICAgdk5vZGUudXBkYXRlKG5vZGUpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBMRWRnZSkge1xuICAgIHZhciBlZGdlID0gb2JqO1xuICAgIC8vIGlmIHRoZSBsLWxldmVsIGVkZ2UgaXMgYXNzb2NpYXRlZCB3aXRoIGEgdi1sZXZlbCBncmFwaCBvYmplY3QsXG4gICAgLy8gdGhlbiBpdCBpcyBhc3N1bWVkIHRoYXQgdGhlIHYtbGV2ZWwgZWRnZSBpbXBsZW1lbnRzIHRoZVxuICAgIC8vIGludGVyZmFjZSBVcGRhdGFibGUuXG5cbiAgICBpZiAoZWRnZS52R3JhcGhPYmplY3QgIT0gbnVsbCkge1xuICAgICAgLy8gY2FzdCB0byBVcGRhdGFibGUgd2l0aG91dCBhbnkgdHlwZSBjaGVja1xuICAgICAgdmFyIHZFZGdlID0gZWRnZS52R3JhcGhPYmplY3Q7XG5cbiAgICAgIC8vIGNhbGwgdGhlIHVwZGF0ZSBtZXRob2Qgb2YgdGhlIGludGVyZmFjZVxuICAgICAgdkVkZ2UudXBkYXRlKGVkZ2UpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBMR3JhcGgpIHtcbiAgICB2YXIgZ3JhcGggPSBvYmo7XG4gICAgLy8gaWYgdGhlIGwtbGV2ZWwgZ3JhcGggaXMgYXNzb2NpYXRlZCB3aXRoIGEgdi1sZXZlbCBncmFwaCBvYmplY3QsXG4gICAgLy8gdGhlbiBpdCBpcyBhc3N1bWVkIHRoYXQgdGhlIHYtbGV2ZWwgb2JqZWN0IGltcGxlbWVudHMgdGhlXG4gICAgLy8gaW50ZXJmYWNlIFVwZGF0YWJsZS5cblxuICAgIGlmIChncmFwaC52R3JhcGhPYmplY3QgIT0gbnVsbCkge1xuICAgICAgLy8gY2FzdCB0byBVcGRhdGFibGUgd2l0aG91dCBhbnkgdHlwZSBjaGVja1xuICAgICAgdmFyIHZHcmFwaCA9IGdyYXBoLnZHcmFwaE9iamVjdDtcblxuICAgICAgLy8gY2FsbCB0aGUgdXBkYXRlIG1ldGhvZCBvZiB0aGUgaW50ZXJmYWNlXG4gICAgICB2R3JhcGgudXBkYXRlKGdyYXBoKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxyXG4gKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNldCBhbGwgbGF5b3V0IHBhcmFtZXRlcnMgdG8gZGVmYXVsdCB2YWx1ZXNcclxuICogZGV0ZXJtaW5lZCBhdCBjb21waWxlIHRpbWUuXHJcbiAqL1xuTGF5b3V0LnByb3RvdHlwZS5pbml0UGFyYW1ldGVycyA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKCF0aGlzLmlzU3ViTGF5b3V0KSB7XG4gICAgdGhpcy5sYXlvdXRRdWFsaXR5ID0gTGF5b3V0Q29uc3RhbnRzLlFVQUxJVFk7XG4gICAgdGhpcy5hbmltYXRpb25EdXJpbmdMYXlvdXQgPSBMYXlvdXRDb25zdGFudHMuREVGQVVMVF9BTklNQVRJT05fRFVSSU5HX0xBWU9VVDtcbiAgICB0aGlzLmFuaW1hdGlvblBlcmlvZCA9IExheW91dENvbnN0YW50cy5ERUZBVUxUX0FOSU1BVElPTl9QRVJJT0Q7XG4gICAgdGhpcy5hbmltYXRpb25PbkxheW91dCA9IExheW91dENvbnN0YW50cy5ERUZBVUxUX0FOSU1BVElPTl9PTl9MQVlPVVQ7XG4gICAgdGhpcy5pbmNyZW1lbnRhbCA9IExheW91dENvbnN0YW50cy5ERUZBVUxUX0lOQ1JFTUVOVEFMO1xuICAgIHRoaXMuY3JlYXRlQmVuZHNBc05lZWRlZCA9IExheW91dENvbnN0YW50cy5ERUZBVUxUX0NSRUFURV9CRU5EU19BU19ORUVERUQ7XG4gICAgdGhpcy51bmlmb3JtTGVhZk5vZGVTaXplcyA9IExheW91dENvbnN0YW50cy5ERUZBVUxUX1VOSUZPUk1fTEVBRl9OT0RFX1NJWkVTO1xuICB9XG5cbiAgaWYgKHRoaXMuYW5pbWF0aW9uRHVyaW5nTGF5b3V0KSB7XG4gICAgdGhpcy5hbmltYXRpb25PbkxheW91dCA9IGZhbHNlO1xuICB9XG59O1xuXG5MYXlvdXQucHJvdG90eXBlLnRyYW5zZm9ybSA9IGZ1bmN0aW9uIChuZXdMZWZ0VG9wKSB7XG4gIGlmIChuZXdMZWZ0VG9wID09IHVuZGVmaW5lZCkge1xuICAgIHRoaXMudHJhbnNmb3JtKG5ldyBQb2ludEQoMCwgMCkpO1xuICB9IGVsc2Uge1xuICAgIC8vIGNyZWF0ZSBhIHRyYW5zZm9ybWF0aW9uIG9iamVjdCAoZnJvbSBFY2xpcHNlIHRvIGxheW91dCkuIFdoZW4gYW5cbiAgICAvLyBpbnZlcnNlIHRyYW5zZm9ybSBpcyBhcHBsaWVkLCB3ZSBnZXQgdXBwZXItbGVmdCBjb29yZGluYXRlIG9mIHRoZVxuICAgIC8vIGRyYXdpbmcgb3IgdGhlIHJvb3QgZ3JhcGggYXQgZ2l2ZW4gaW5wdXQgY29vcmRpbmF0ZSAoc29tZSBtYXJnaW5zXG4gICAgLy8gYWxyZWFkeSBpbmNsdWRlZCBpbiBjYWxjdWxhdGlvbiBvZiBsZWZ0LXRvcCkuXG5cbiAgICB2YXIgdHJhbnMgPSBuZXcgVHJhbnNmb3JtKCk7XG4gICAgdmFyIGxlZnRUb3AgPSB0aGlzLmdyYXBoTWFuYWdlci5nZXRSb290KCkudXBkYXRlTGVmdFRvcCgpO1xuXG4gICAgaWYgKGxlZnRUb3AgIT0gbnVsbCkge1xuICAgICAgdHJhbnMuc2V0V29ybGRPcmdYKG5ld0xlZnRUb3AueCk7XG4gICAgICB0cmFucy5zZXRXb3JsZE9yZ1kobmV3TGVmdFRvcC55KTtcblxuICAgICAgdHJhbnMuc2V0RGV2aWNlT3JnWChsZWZ0VG9wLngpO1xuICAgICAgdHJhbnMuc2V0RGV2aWNlT3JnWShsZWZ0VG9wLnkpO1xuXG4gICAgICB2YXIgbm9kZXMgPSB0aGlzLmdldEFsbE5vZGVzKCk7XG4gICAgICB2YXIgbm9kZTtcblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBub2RlID0gbm9kZXNbaV07XG4gICAgICAgIG5vZGUudHJhbnNmb3JtKHRyYW5zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbkxheW91dC5wcm90b3R5cGUucG9zaXRpb25Ob2Rlc1JhbmRvbWx5ID0gZnVuY3Rpb24gKGdyYXBoKSB7XG5cbiAgaWYgKGdyYXBoID09IHVuZGVmaW5lZCkge1xuICAgIC8vYXNzZXJ0ICF0aGlzLmluY3JlbWVudGFsO1xuICAgIHRoaXMucG9zaXRpb25Ob2Rlc1JhbmRvbWx5KHRoaXMuZ2V0R3JhcGhNYW5hZ2VyKCkuZ2V0Um9vdCgpKTtcbiAgICB0aGlzLmdldEdyYXBoTWFuYWdlcigpLmdldFJvb3QoKS51cGRhdGVCb3VuZHModHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGxOb2RlO1xuICAgIHZhciBjaGlsZEdyYXBoO1xuXG4gICAgdmFyIG5vZGVzID0gZ3JhcGguZ2V0Tm9kZXMoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsTm9kZSA9IG5vZGVzW2ldO1xuICAgICAgY2hpbGRHcmFwaCA9IGxOb2RlLmdldENoaWxkKCk7XG5cbiAgICAgIGlmIChjaGlsZEdyYXBoID09IG51bGwpIHtcbiAgICAgICAgbE5vZGUuc2NhdHRlcigpO1xuICAgICAgfSBlbHNlIGlmIChjaGlsZEdyYXBoLmdldE5vZGVzKCkubGVuZ3RoID09IDApIHtcbiAgICAgICAgbE5vZGUuc2NhdHRlcigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvbk5vZGVzUmFuZG9tbHkoY2hpbGRHcmFwaCk7XG4gICAgICAgIGxOb2RlLnVwZGF0ZUJvdW5kcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLyoqXHJcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHRyZWVzIHdoZXJlIGVhY2ggdHJlZSBpcyByZXByZXNlbnRlZCBhcyBhXHJcbiAqIGxpc3Qgb2YgbC1ub2Rlcy4gVGhlIG1ldGhvZCByZXR1cm5zIGEgbGlzdCBvZiBzaXplIDAgd2hlbjpcclxuICogLSBUaGUgZ3JhcGggaXMgbm90IGZsYXQgb3JcclxuICogLSBPbmUgb2YgdGhlIGNvbXBvbmVudChzKSBvZiB0aGUgZ3JhcGggaXMgbm90IGEgdHJlZS5cclxuICovXG5MYXlvdXQucHJvdG90eXBlLmdldEZsYXRGb3Jlc3QgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBmbGF0Rm9yZXN0ID0gW107XG4gIHZhciBpc0ZvcmVzdCA9IHRydWU7XG5cbiAgLy8gUXVpY2sgcmVmZXJlbmNlIGZvciBhbGwgbm9kZXMgaW4gdGhlIGdyYXBoIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoXG4gIC8vIHRoaXMgbGF5b3V0LiBUaGUgbGlzdCBzaG91bGQgbm90IGJlIGNoYW5nZWQuXG4gIHZhciBhbGxOb2RlcyA9IHRoaXMuZ3JhcGhNYW5hZ2VyLmdldFJvb3QoKS5nZXROb2RlcygpO1xuXG4gIC8vIEZpcnN0IGJlIHN1cmUgdGhhdCB0aGUgZ3JhcGggaXMgZmxhdFxuICB2YXIgaXNGbGF0ID0gdHJ1ZTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbE5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFsbE5vZGVzW2ldLmdldENoaWxkKCkgIT0gbnVsbCkge1xuICAgICAgaXNGbGF0ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLy8gUmV0dXJuIGVtcHR5IGZvcmVzdCBpZiB0aGUgZ3JhcGggaXMgbm90IGZsYXQuXG4gIGlmICghaXNGbGF0KSB7XG4gICAgcmV0dXJuIGZsYXRGb3Jlc3Q7XG4gIH1cblxuICAvLyBSdW4gQkZTIGZvciBlYWNoIGNvbXBvbmVudCBvZiB0aGUgZ3JhcGguXG5cbiAgdmFyIHZpc2l0ZWQgPSBuZXcgU2V0KCk7XG4gIHZhciB0b0JlVmlzaXRlZCA9IFtdO1xuICB2YXIgcGFyZW50cyA9IG5ldyBNYXAoKTtcbiAgdmFyIHVuUHJvY2Vzc2VkTm9kZXMgPSBbXTtcblxuICB1blByb2Nlc3NlZE5vZGVzID0gdW5Qcm9jZXNzZWROb2Rlcy5jb25jYXQoYWxsTm9kZXMpO1xuXG4gIC8vIEVhY2ggaXRlcmF0aW9uIG9mIHRoaXMgbG9vcCBmaW5kcyBhIGNvbXBvbmVudCBvZiB0aGUgZ3JhcGggYW5kXG4gIC8vIGRlY2lkZXMgd2hldGhlciBpdCBpcyBhIHRyZWUgb3Igbm90LiBJZiBpdCBpcyBhIHRyZWUsIGFkZHMgaXQgdG8gdGhlXG4gIC8vIGZvcmVzdCBhbmQgY29udGludWVkIHdpdGggdGhlIG5leHQgY29tcG9uZW50LlxuXG4gIHdoaWxlICh1blByb2Nlc3NlZE5vZGVzLmxlbmd0aCA+IDAgJiYgaXNGb3Jlc3QpIHtcbiAgICB0b0JlVmlzaXRlZC5wdXNoKHVuUHJvY2Vzc2VkTm9kZXNbMF0pO1xuXG4gICAgLy8gU3RhcnQgdGhlIEJGUy4gRWFjaCBpdGVyYXRpb24gb2YgdGhpcyBsb29wIHZpc2l0cyBhIG5vZGUgaW4gYVxuICAgIC8vIEJGUyBtYW5uZXIuXG4gICAgd2hpbGUgKHRvQmVWaXNpdGVkLmxlbmd0aCA+IDAgJiYgaXNGb3Jlc3QpIHtcbiAgICAgIC8vcG9vbCBvcGVyYXRpb25cbiAgICAgIHZhciBjdXJyZW50Tm9kZSA9IHRvQmVWaXNpdGVkWzBdO1xuICAgICAgdG9CZVZpc2l0ZWQuc3BsaWNlKDAsIDEpO1xuICAgICAgdmlzaXRlZC5hZGQoY3VycmVudE5vZGUpO1xuXG4gICAgICAvLyBUcmF2ZXJzZSBhbGwgbmVpZ2hib3JzIG9mIHRoaXMgbm9kZVxuICAgICAgdmFyIG5laWdoYm9yRWRnZXMgPSBjdXJyZW50Tm9kZS5nZXRFZGdlcygpO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5laWdoYm9yRWRnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGN1cnJlbnROZWlnaGJvciA9IG5laWdoYm9yRWRnZXNbaV0uZ2V0T3RoZXJFbmQoY3VycmVudE5vZGUpO1xuXG4gICAgICAgIC8vIElmIEJGUyBpcyBub3QgZ3Jvd2luZyBmcm9tIHRoaXMgbmVpZ2hib3IuXG4gICAgICAgIGlmIChwYXJlbnRzLmdldChjdXJyZW50Tm9kZSkgIT0gY3VycmVudE5laWdoYm9yKSB7XG4gICAgICAgICAgLy8gV2UgaGF2ZW4ndCBwcmV2aW91c2x5IHZpc2l0ZWQgdGhpcyBuZWlnaGJvci5cbiAgICAgICAgICBpZiAoIXZpc2l0ZWQuaGFzKGN1cnJlbnROZWlnaGJvcikpIHtcbiAgICAgICAgICAgIHRvQmVWaXNpdGVkLnB1c2goY3VycmVudE5laWdoYm9yKTtcbiAgICAgICAgICAgIHBhcmVudHMuc2V0KGN1cnJlbnROZWlnaGJvciwgY3VycmVudE5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTaW5jZSB3ZSBoYXZlIHByZXZpb3VzbHkgdmlzaXRlZCB0aGlzIG5laWdoYm9yIGFuZFxuICAgICAgICAgIC8vIHRoaXMgbmVpZ2hib3IgaXMgbm90IHBhcmVudCBvZiBjdXJyZW50Tm9kZSwgZ2l2ZW5cbiAgICAgICAgICAvLyBncmFwaCBjb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGlzIG5vdCB0cmVlLCBoZW5jZVxuICAgICAgICAgIC8vIGl0IGlzIG5vdCBhIGZvcmVzdC5cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgaXNGb3Jlc3QgPSBmYWxzZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgZ3JhcGggY29udGFpbnMgYSBjb21wb25lbnQgdGhhdCBpcyBub3QgYSB0cmVlLiBFbXB0eVxuICAgIC8vIHByZXZpb3VzbHkgZm91bmQgdHJlZXMuIFRoZSBtZXRob2Qgd2lsbCBlbmQuXG4gICAgaWYgKCFpc0ZvcmVzdCkge1xuICAgICAgZmxhdEZvcmVzdCA9IFtdO1xuICAgIH1cbiAgICAvLyBTYXZlIGN1cnJlbnRseSB2aXNpdGVkIG5vZGVzIGFzIGEgdHJlZSBpbiBvdXIgZm9yZXN0LiBSZXNldFxuICAgIC8vIHZpc2l0ZWQgYW5kIHBhcmVudHMgbGlzdHMuIENvbnRpbnVlIHdpdGggdGhlIG5leHQgY29tcG9uZW50IG9mXG4gICAgLy8gdGhlIGdyYXBoLCBpZiBhbnkuXG4gICAgZWxzZSB7XG4gICAgICAgIHZhciB0ZW1wID0gW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheSh2aXNpdGVkKSk7XG4gICAgICAgIGZsYXRGb3Jlc3QucHVzaCh0ZW1wKTtcbiAgICAgICAgLy9mbGF0Rm9yZXN0ID0gZmxhdEZvcmVzdC5jb25jYXQodGVtcCk7XG4gICAgICAgIC8vdW5Qcm9jZXNzZWROb2Rlcy5yZW1vdmVBbGwodmlzaXRlZCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVtcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciB2YWx1ZSA9IHRlbXBbaV07XG4gICAgICAgICAgdmFyIGluZGV4ID0gdW5Qcm9jZXNzZWROb2Rlcy5pbmRleE9mKHZhbHVlKTtcbiAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgdW5Qcm9jZXNzZWROb2Rlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2aXNpdGVkID0gbmV3IFNldCgpO1xuICAgICAgICBwYXJlbnRzID0gbmV3IE1hcCgpO1xuICAgICAgfVxuICB9XG5cbiAgcmV0dXJuIGZsYXRGb3Jlc3Q7XG59O1xuXG4vKipcclxuICogVGhpcyBtZXRob2QgY3JlYXRlcyBkdW1teSBub2RlcyAoYW4gbC1sZXZlbCBub2RlIHdpdGggbWluaW1hbCBkaW1lbnNpb25zKVxyXG4gKiBmb3IgdGhlIGdpdmVuIGVkZ2UgKG9uZSBwZXIgYmVuZHBvaW50KS4gVGhlIGV4aXN0aW5nIGwtbGV2ZWwgc3RydWN0dXJlXHJcbiAqIGlzIHVwZGF0ZWQgYWNjb3JkaW5nbHkuXHJcbiAqL1xuTGF5b3V0LnByb3RvdHlwZS5jcmVhdGVEdW1teU5vZGVzRm9yQmVuZHBvaW50cyA9IGZ1bmN0aW9uIChlZGdlKSB7XG4gIHZhciBkdW1teU5vZGVzID0gW107XG4gIHZhciBwcmV2ID0gZWRnZS5zb3VyY2U7XG5cbiAgdmFyIGdyYXBoID0gdGhpcy5ncmFwaE1hbmFnZXIuY2FsY0xvd2VzdENvbW1vbkFuY2VzdG9yKGVkZ2Uuc291cmNlLCBlZGdlLnRhcmdldCk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlZGdlLmJlbmRwb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICAvLyBjcmVhdGUgbmV3IGR1bW15IG5vZGVcbiAgICB2YXIgZHVtbXlOb2RlID0gdGhpcy5uZXdOb2RlKG51bGwpO1xuICAgIGR1bW15Tm9kZS5zZXRSZWN0KG5ldyBQb2ludCgwLCAwKSwgbmV3IERpbWVuc2lvbigxLCAxKSk7XG5cbiAgICBncmFwaC5hZGQoZHVtbXlOb2RlKTtcblxuICAgIC8vIGNyZWF0ZSBuZXcgZHVtbXkgZWRnZSBiZXR3ZWVuIHByZXYgYW5kIGR1bW15IG5vZGVcbiAgICB2YXIgZHVtbXlFZGdlID0gdGhpcy5uZXdFZGdlKG51bGwpO1xuICAgIHRoaXMuZ3JhcGhNYW5hZ2VyLmFkZChkdW1teUVkZ2UsIHByZXYsIGR1bW15Tm9kZSk7XG5cbiAgICBkdW1teU5vZGVzLmFkZChkdW1teU5vZGUpO1xuICAgIHByZXYgPSBkdW1teU5vZGU7XG4gIH1cblxuICB2YXIgZHVtbXlFZGdlID0gdGhpcy5uZXdFZGdlKG51bGwpO1xuICB0aGlzLmdyYXBoTWFuYWdlci5hZGQoZHVtbXlFZGdlLCBwcmV2LCBlZGdlLnRhcmdldCk7XG5cbiAgdGhpcy5lZGdlVG9EdW1teU5vZGVzLnNldChlZGdlLCBkdW1teU5vZGVzKTtcblxuICAvLyByZW1vdmUgcmVhbCBlZGdlIGZyb20gZ3JhcGggbWFuYWdlciBpZiBpdCBpcyBpbnRlci1ncmFwaFxuICBpZiAoZWRnZS5pc0ludGVyR3JhcGgoKSkge1xuICAgIHRoaXMuZ3JhcGhNYW5hZ2VyLnJlbW92ZShlZGdlKTtcbiAgfVxuICAvLyBlbHNlLCByZW1vdmUgdGhlIGVkZ2UgZnJvbSB0aGUgY3VycmVudCBncmFwaFxuICBlbHNlIHtcbiAgICAgIGdyYXBoLnJlbW92ZShlZGdlKTtcbiAgICB9XG5cbiAgcmV0dXJuIGR1bW15Tm9kZXM7XG59O1xuXG4vKipcclxuICogVGhpcyBtZXRob2QgY3JlYXRlcyBiZW5kcG9pbnRzIGZvciBlZGdlcyBmcm9tIHRoZSBkdW1teSBub2Rlc1xyXG4gKiBhdCBsLWxldmVsLlxyXG4gKi9cbkxheW91dC5wcm90b3R5cGUuY3JlYXRlQmVuZHBvaW50c0Zyb21EdW1teU5vZGVzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZWRnZXMgPSBbXTtcbiAgZWRnZXMgPSBlZGdlcy5jb25jYXQodGhpcy5ncmFwaE1hbmFnZXIuZ2V0QWxsRWRnZXMoKSk7XG4gIGVkZ2VzID0gW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheSh0aGlzLmVkZ2VUb0R1bW15Tm9kZXMua2V5cygpKSkuY29uY2F0KGVkZ2VzKTtcblxuICBmb3IgKHZhciBrID0gMDsgayA8IGVkZ2VzLmxlbmd0aDsgaysrKSB7XG4gICAgdmFyIGxFZGdlID0gZWRnZXNba107XG5cbiAgICBpZiAobEVkZ2UuYmVuZHBvaW50cy5sZW5ndGggPiAwKSB7XG4gICAgICB2YXIgcGF0aCA9IHRoaXMuZWRnZVRvRHVtbXlOb2Rlcy5nZXQobEVkZ2UpO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGR1bW15Tm9kZSA9IHBhdGhbaV07XG4gICAgICAgIHZhciBwID0gbmV3IFBvaW50RChkdW1teU5vZGUuZ2V0Q2VudGVyWCgpLCBkdW1teU5vZGUuZ2V0Q2VudGVyWSgpKTtcblxuICAgICAgICAvLyB1cGRhdGUgYmVuZHBvaW50J3MgbG9jYXRpb24gYWNjb3JkaW5nIHRvIGR1bW15IG5vZGVcbiAgICAgICAgdmFyIGVicCA9IGxFZGdlLmJlbmRwb2ludHMuZ2V0KGkpO1xuICAgICAgICBlYnAueCA9IHAueDtcbiAgICAgICAgZWJwLnkgPSBwLnk7XG5cbiAgICAgICAgLy8gcmVtb3ZlIHRoZSBkdW1teSBub2RlLCBkdW1teSBlZGdlcyBpbmNpZGVudCB3aXRoIHRoaXNcbiAgICAgICAgLy8gZHVtbXkgbm9kZSBpcyBhbHNvIHJlbW92ZWQgKHdpdGhpbiB0aGUgcmVtb3ZlIG1ldGhvZClcbiAgICAgICAgZHVtbXlOb2RlLmdldE93bmVyKCkucmVtb3ZlKGR1bW15Tm9kZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIGFkZCB0aGUgcmVhbCBlZGdlIHRvIGdyYXBoXG4gICAgICB0aGlzLmdyYXBoTWFuYWdlci5hZGQobEVkZ2UsIGxFZGdlLnNvdXJjZSwgbEVkZ2UudGFyZ2V0KTtcbiAgICB9XG4gIH1cbn07XG5cbkxheW91dC50cmFuc2Zvcm0gPSBmdW5jdGlvbiAoc2xpZGVyVmFsdWUsIGRlZmF1bHRWYWx1ZSwgbWluRGl2LCBtYXhNdWwpIHtcbiAgaWYgKG1pbkRpdiAhPSB1bmRlZmluZWQgJiYgbWF4TXVsICE9IHVuZGVmaW5lZCkge1xuICAgIHZhciB2YWx1ZSA9IGRlZmF1bHRWYWx1ZTtcblxuICAgIGlmIChzbGlkZXJWYWx1ZSA8PSA1MCkge1xuICAgICAgdmFyIG1pblZhbHVlID0gZGVmYXVsdFZhbHVlIC8gbWluRGl2O1xuICAgICAgdmFsdWUgLT0gKGRlZmF1bHRWYWx1ZSAtIG1pblZhbHVlKSAvIDUwICogKDUwIC0gc2xpZGVyVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbWF4VmFsdWUgPSBkZWZhdWx0VmFsdWUgKiBtYXhNdWw7XG4gICAgICB2YWx1ZSArPSAobWF4VmFsdWUgLSBkZWZhdWx0VmFsdWUpIC8gNTAgKiAoc2xpZGVyVmFsdWUgLSA1MCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIHZhciBhLCBiO1xuXG4gICAgaWYgKHNsaWRlclZhbHVlIDw9IDUwKSB7XG4gICAgICBhID0gOS4wICogZGVmYXVsdFZhbHVlIC8gNTAwLjA7XG4gICAgICBiID0gZGVmYXVsdFZhbHVlIC8gMTAuMDtcbiAgICB9IGVsc2Uge1xuICAgICAgYSA9IDkuMCAqIGRlZmF1bHRWYWx1ZSAvIDUwLjA7XG4gICAgICBiID0gLTggKiBkZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGEgKiBzbGlkZXJWYWx1ZSArIGI7XG4gIH1cbn07XG5cbi8qKlxyXG4gKiBUaGlzIG1ldGhvZCBmaW5kcyBhbmQgcmV0dXJucyB0aGUgY2VudGVyIG9mIHRoZSBnaXZlbiBub2RlcywgYXNzdW1pbmdcclxuICogdGhhdCB0aGUgZ2l2ZW4gbm9kZXMgZm9ybSBhIHRyZWUgaW4gdGhlbXNlbHZlcy5cclxuICovXG5MYXlvdXQuZmluZENlbnRlck9mVHJlZSA9IGZ1bmN0aW9uIChub2Rlcykge1xuICB2YXIgbGlzdCA9IFtdO1xuICBsaXN0ID0gbGlzdC5jb25jYXQobm9kZXMpO1xuXG4gIHZhciByZW1vdmVkTm9kZXMgPSBbXTtcbiAgdmFyIHJlbWFpbmluZ0RlZ3JlZXMgPSBuZXcgTWFwKCk7XG4gIHZhciBmb3VuZENlbnRlciA9IGZhbHNlO1xuICB2YXIgY2VudGVyTm9kZSA9IG51bGw7XG5cbiAgaWYgKGxpc3QubGVuZ3RoID09IDEgfHwgbGlzdC5sZW5ndGggPT0gMikge1xuICAgIGZvdW5kQ2VudGVyID0gdHJ1ZTtcbiAgICBjZW50ZXJOb2RlID0gbGlzdFswXTtcbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBub2RlID0gbGlzdFtpXTtcbiAgICB2YXIgZGVncmVlID0gbm9kZS5nZXROZWlnaGJvcnNMaXN0KCkuc2l6ZTtcbiAgICByZW1haW5pbmdEZWdyZWVzLnNldChub2RlLCBub2RlLmdldE5laWdoYm9yc0xpc3QoKS5zaXplKTtcblxuICAgIGlmIChkZWdyZWUgPT0gMSkge1xuICAgICAgcmVtb3ZlZE5vZGVzLnB1c2gobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHRlbXBMaXN0ID0gW107XG4gIHRlbXBMaXN0ID0gdGVtcExpc3QuY29uY2F0KHJlbW92ZWROb2Rlcyk7XG5cbiAgd2hpbGUgKCFmb3VuZENlbnRlcikge1xuICAgIHZhciB0ZW1wTGlzdDIgPSBbXTtcbiAgICB0ZW1wTGlzdDIgPSB0ZW1wTGlzdDIuY29uY2F0KHRlbXBMaXN0KTtcbiAgICB0ZW1wTGlzdCA9IFtdO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbm9kZSA9IGxpc3RbaV07XG5cbiAgICAgIHZhciBpbmRleCA9IGxpc3QuaW5kZXhPZihub2RlKTtcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgIGxpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5laWdoYm91cnMgPSBub2RlLmdldE5laWdoYm9yc0xpc3QoKTtcblxuICAgICAgbmVpZ2hib3Vycy5mb3JFYWNoKGZ1bmN0aW9uIChuZWlnaGJvdXIpIHtcbiAgICAgICAgaWYgKHJlbW92ZWROb2Rlcy5pbmRleE9mKG5laWdoYm91cikgPCAwKSB7XG4gICAgICAgICAgdmFyIG90aGVyRGVncmVlID0gcmVtYWluaW5nRGVncmVlcy5nZXQobmVpZ2hib3VyKTtcbiAgICAgICAgICB2YXIgbmV3RGVncmVlID0gb3RoZXJEZWdyZWUgLSAxO1xuXG4gICAgICAgICAgaWYgKG5ld0RlZ3JlZSA9PSAxKSB7XG4gICAgICAgICAgICB0ZW1wTGlzdC5wdXNoKG5laWdoYm91cik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVtYWluaW5nRGVncmVlcy5zZXQobmVpZ2hib3VyLCBuZXdEZWdyZWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmVkTm9kZXMgPSByZW1vdmVkTm9kZXMuY29uY2F0KHRlbXBMaXN0KTtcblxuICAgIGlmIChsaXN0Lmxlbmd0aCA9PSAxIHx8IGxpc3QubGVuZ3RoID09IDIpIHtcbiAgICAgIGZvdW5kQ2VudGVyID0gdHJ1ZTtcbiAgICAgIGNlbnRlck5vZGUgPSBsaXN0WzBdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjZW50ZXJOb2RlO1xufTtcblxuLyoqXHJcbiAqIER1cmluZyB0aGUgY29hcnNlbmluZyBwcm9jZXNzLCB0aGlzIGxheW91dCBtYXkgYmUgcmVmZXJlbmNlZCBieSB0d28gZ3JhcGggbWFuYWdlcnNcclxuICogdGhpcyBzZXR0ZXIgZnVuY3Rpb24gZ3JhbnRzIGFjY2VzcyB0byBjaGFuZ2UgdGhlIGN1cnJlbnRseSBiZWluZyB1c2VkIGdyYXBoIG1hbmFnZXJcclxuICovXG5MYXlvdXQucHJvdG90eXBlLnNldEdyYXBoTWFuYWdlciA9IGZ1bmN0aW9uIChnbSkge1xuICB0aGlzLmdyYXBoTWFuYWdlciA9IGdtO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBMYXlvdXQ7XG5cbi8qKiovIH0pLFxuLyogMTYgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuZnVuY3Rpb24gUmFuZG9tU2VlZCgpIHt9XG4vLyBhZGFwdGVkIGZyb206IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xOTMwMzcyNVxuUmFuZG9tU2VlZC5zZWVkID0gMTtcblJhbmRvbVNlZWQueCA9IDA7XG5cblJhbmRvbVNlZWQubmV4dERvdWJsZSA9IGZ1bmN0aW9uICgpIHtcbiAgUmFuZG9tU2VlZC54ID0gTWF0aC5zaW4oUmFuZG9tU2VlZC5zZWVkKyspICogMTAwMDA7XG4gIHJldHVybiBSYW5kb21TZWVkLnggLSBNYXRoLmZsb29yKFJhbmRvbVNlZWQueCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJhbmRvbVNlZWQ7XG5cbi8qKiovIH0pLFxuLyogMTcgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxudmFyIFBvaW50RCA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG5cbmZ1bmN0aW9uIFRyYW5zZm9ybSh4LCB5KSB7XG4gIHRoaXMubHdvcmxkT3JnWCA9IDAuMDtcbiAgdGhpcy5sd29ybGRPcmdZID0gMC4wO1xuICB0aGlzLmxkZXZpY2VPcmdYID0gMC4wO1xuICB0aGlzLmxkZXZpY2VPcmdZID0gMC4wO1xuICB0aGlzLmx3b3JsZEV4dFggPSAxLjA7XG4gIHRoaXMubHdvcmxkRXh0WSA9IDEuMDtcbiAgdGhpcy5sZGV2aWNlRXh0WCA9IDEuMDtcbiAgdGhpcy5sZGV2aWNlRXh0WSA9IDEuMDtcbn1cblxuVHJhbnNmb3JtLnByb3RvdHlwZS5nZXRXb3JsZE9yZ1ggPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmx3b3JsZE9yZ1g7XG59O1xuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLnNldFdvcmxkT3JnWCA9IGZ1bmN0aW9uICh3b3gpIHtcbiAgdGhpcy5sd29ybGRPcmdYID0gd294O1xufTtcblxuVHJhbnNmb3JtLnByb3RvdHlwZS5nZXRXb3JsZE9yZ1kgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmx3b3JsZE9yZ1k7XG59O1xuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLnNldFdvcmxkT3JnWSA9IGZ1bmN0aW9uICh3b3kpIHtcbiAgdGhpcy5sd29ybGRPcmdZID0gd295O1xufTtcblxuVHJhbnNmb3JtLnByb3RvdHlwZS5nZXRXb3JsZEV4dFggPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmx3b3JsZEV4dFg7XG59O1xuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLnNldFdvcmxkRXh0WCA9IGZ1bmN0aW9uICh3ZXgpIHtcbiAgdGhpcy5sd29ybGRFeHRYID0gd2V4O1xufTtcblxuVHJhbnNmb3JtLnByb3RvdHlwZS5nZXRXb3JsZEV4dFkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmx3b3JsZEV4dFk7XG59O1xuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLnNldFdvcmxkRXh0WSA9IGZ1bmN0aW9uICh3ZXkpIHtcbiAgdGhpcy5sd29ybGRFeHRZID0gd2V5O1xufTtcblxuLyogRGV2aWNlIHJlbGF0ZWQgKi9cblxuVHJhbnNmb3JtLnByb3RvdHlwZS5nZXREZXZpY2VPcmdYID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5sZGV2aWNlT3JnWDtcbn07XG5cblRyYW5zZm9ybS5wcm90b3R5cGUuc2V0RGV2aWNlT3JnWCA9IGZ1bmN0aW9uIChkb3gpIHtcbiAgdGhpcy5sZGV2aWNlT3JnWCA9IGRveDtcbn07XG5cblRyYW5zZm9ybS5wcm90b3R5cGUuZ2V0RGV2aWNlT3JnWSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMubGRldmljZU9yZ1k7XG59O1xuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLnNldERldmljZU9yZ1kgPSBmdW5jdGlvbiAoZG95KSB7XG4gIHRoaXMubGRldmljZU9yZ1kgPSBkb3k7XG59O1xuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLmdldERldmljZUV4dFggPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmxkZXZpY2VFeHRYO1xufTtcblxuVHJhbnNmb3JtLnByb3RvdHlwZS5zZXREZXZpY2VFeHRYID0gZnVuY3Rpb24gKGRleCkge1xuICB0aGlzLmxkZXZpY2VFeHRYID0gZGV4O1xufTtcblxuVHJhbnNmb3JtLnByb3RvdHlwZS5nZXREZXZpY2VFeHRZID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5sZGV2aWNlRXh0WTtcbn07XG5cblRyYW5zZm9ybS5wcm90b3R5cGUuc2V0RGV2aWNlRXh0WSA9IGZ1bmN0aW9uIChkZXkpIHtcbiAgdGhpcy5sZGV2aWNlRXh0WSA9IGRleTtcbn07XG5cblRyYW5zZm9ybS5wcm90b3R5cGUudHJhbnNmb3JtWCA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciB4RGV2aWNlID0gMC4wO1xuICB2YXIgd29ybGRFeHRYID0gdGhpcy5sd29ybGRFeHRYO1xuICBpZiAod29ybGRFeHRYICE9IDAuMCkge1xuICAgIHhEZXZpY2UgPSB0aGlzLmxkZXZpY2VPcmdYICsgKHggLSB0aGlzLmx3b3JsZE9yZ1gpICogdGhpcy5sZGV2aWNlRXh0WCAvIHdvcmxkRXh0WDtcbiAgfVxuXG4gIHJldHVybiB4RGV2aWNlO1xufTtcblxuVHJhbnNmb3JtLnByb3RvdHlwZS50cmFuc2Zvcm1ZID0gZnVuY3Rpb24gKHkpIHtcbiAgdmFyIHlEZXZpY2UgPSAwLjA7XG4gIHZhciB3b3JsZEV4dFkgPSB0aGlzLmx3b3JsZEV4dFk7XG4gIGlmICh3b3JsZEV4dFkgIT0gMC4wKSB7XG4gICAgeURldmljZSA9IHRoaXMubGRldmljZU9yZ1kgKyAoeSAtIHRoaXMubHdvcmxkT3JnWSkgKiB0aGlzLmxkZXZpY2VFeHRZIC8gd29ybGRFeHRZO1xuICB9XG5cbiAgcmV0dXJuIHlEZXZpY2U7XG59O1xuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLmludmVyc2VUcmFuc2Zvcm1YID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIHhXb3JsZCA9IDAuMDtcbiAgdmFyIGRldmljZUV4dFggPSB0aGlzLmxkZXZpY2VFeHRYO1xuICBpZiAoZGV2aWNlRXh0WCAhPSAwLjApIHtcbiAgICB4V29ybGQgPSB0aGlzLmx3b3JsZE9yZ1ggKyAoeCAtIHRoaXMubGRldmljZU9yZ1gpICogdGhpcy5sd29ybGRFeHRYIC8gZGV2aWNlRXh0WDtcbiAgfVxuXG4gIHJldHVybiB4V29ybGQ7XG59O1xuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLmludmVyc2VUcmFuc2Zvcm1ZID0gZnVuY3Rpb24gKHkpIHtcbiAgdmFyIHlXb3JsZCA9IDAuMDtcbiAgdmFyIGRldmljZUV4dFkgPSB0aGlzLmxkZXZpY2VFeHRZO1xuICBpZiAoZGV2aWNlRXh0WSAhPSAwLjApIHtcbiAgICB5V29ybGQgPSB0aGlzLmx3b3JsZE9yZ1kgKyAoeSAtIHRoaXMubGRldmljZU9yZ1kpICogdGhpcy5sd29ybGRFeHRZIC8gZGV2aWNlRXh0WTtcbiAgfVxuICByZXR1cm4geVdvcmxkO1xufTtcblxuVHJhbnNmb3JtLnByb3RvdHlwZS5pbnZlcnNlVHJhbnNmb3JtUG9pbnQgPSBmdW5jdGlvbiAoaW5Qb2ludCkge1xuICB2YXIgb3V0UG9pbnQgPSBuZXcgUG9pbnREKHRoaXMuaW52ZXJzZVRyYW5zZm9ybVgoaW5Qb2ludC54KSwgdGhpcy5pbnZlcnNlVHJhbnNmb3JtWShpblBvaW50LnkpKTtcbiAgcmV0dXJuIG91dFBvaW50O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBUcmFuc2Zvcm07XG5cbi8qKiovIH0pLFxuLyogMTggKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSB7IGZvciAodmFyIGkgPSAwLCBhcnIyID0gQXJyYXkoYXJyLmxlbmd0aCk7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfSBlbHNlIHsgcmV0dXJuIEFycmF5LmZyb20oYXJyKTsgfSB9XG5cbnZhciBMYXlvdXQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE1KTtcbnZhciBGRExheW91dENvbnN0YW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7XG52YXIgTGF5b3V0Q29uc3RhbnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbnZhciBJR2VvbWV0cnkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpO1xudmFyIElNYXRoID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5KTtcblxuZnVuY3Rpb24gRkRMYXlvdXQoKSB7XG4gIExheW91dC5jYWxsKHRoaXMpO1xuXG4gIHRoaXMudXNlU21hcnRJZGVhbEVkZ2VMZW5ndGhDYWxjdWxhdGlvbiA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfVVNFX1NNQVJUX0lERUFMX0VER0VfTEVOR1RIX0NBTENVTEFUSU9OO1xuICB0aGlzLmlkZWFsRWRnZUxlbmd0aCA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfRURHRV9MRU5HVEg7XG4gIHRoaXMuc3ByaW5nQ29uc3RhbnQgPSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX1NQUklOR19TVFJFTkdUSDtcbiAgdGhpcy5yZXB1bHNpb25Db25zdGFudCA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfUkVQVUxTSU9OX1NUUkVOR1RIO1xuICB0aGlzLmdyYXZpdHlDb25zdGFudCA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfR1JBVklUWV9TVFJFTkdUSDtcbiAgdGhpcy5jb21wb3VuZEdyYXZpdHlDb25zdGFudCA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfQ09NUE9VTkRfR1JBVklUWV9TVFJFTkdUSDtcbiAgdGhpcy5ncmF2aXR5UmFuZ2VGYWN0b3IgPSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0dSQVZJVFlfUkFOR0VfRkFDVE9SO1xuICB0aGlzLmNvbXBvdW5kR3Jhdml0eVJhbmdlRmFjdG9yID0gRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9DT01QT1VORF9HUkFWSVRZX1JBTkdFX0ZBQ1RPUjtcbiAgdGhpcy5kaXNwbGFjZW1lbnRUaHJlc2hvbGRQZXJOb2RlID0gMy4wICogRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9FREdFX0xFTkdUSCAvIDEwMDtcbiAgdGhpcy5jb29saW5nRmFjdG9yID0gRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9DT09MSU5HX0ZBQ1RPUl9JTkNSRU1FTlRBTDtcbiAgdGhpcy5pbml0aWFsQ29vbGluZ0ZhY3RvciA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfQ09PTElOR19GQUNUT1JfSU5DUkVNRU5UQUw7XG4gIHRoaXMudG90YWxEaXNwbGFjZW1lbnQgPSAwLjA7XG4gIHRoaXMub2xkVG90YWxEaXNwbGFjZW1lbnQgPSAwLjA7XG4gIHRoaXMubWF4SXRlcmF0aW9ucyA9IEZETGF5b3V0Q29uc3RhbnRzLk1BWF9JVEVSQVRJT05TO1xufVxuXG5GRExheW91dC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKExheW91dC5wcm90b3R5cGUpO1xuXG5mb3IgKHZhciBwcm9wIGluIExheW91dCkge1xuICBGRExheW91dFtwcm9wXSA9IExheW91dFtwcm9wXTtcbn1cblxuRkRMYXlvdXQucHJvdG90eXBlLmluaXRQYXJhbWV0ZXJzID0gZnVuY3Rpb24gKCkge1xuICBMYXlvdXQucHJvdG90eXBlLmluaXRQYXJhbWV0ZXJzLmNhbGwodGhpcywgYXJndW1lbnRzKTtcblxuICB0aGlzLnRvdGFsSXRlcmF0aW9ucyA9IDA7XG4gIHRoaXMubm90QW5pbWF0ZWRJdGVyYXRpb25zID0gMDtcblxuICB0aGlzLnVzZUZSR3JpZFZhcmlhbnQgPSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX1VTRV9TTUFSVF9SRVBVTFNJT05fUkFOR0VfQ0FMQ1VMQVRJT047XG5cbiAgdGhpcy5ncmlkID0gW107XG59O1xuXG5GRExheW91dC5wcm90b3R5cGUuY2FsY0lkZWFsRWRnZUxlbmd0aHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBlZGdlO1xuICB2YXIgbGNhRGVwdGg7XG4gIHZhciBzb3VyY2U7XG4gIHZhciB0YXJnZXQ7XG4gIHZhciBzaXplT2ZTb3VyY2VJbkxjYTtcbiAgdmFyIHNpemVPZlRhcmdldEluTGNhO1xuXG4gIHZhciBhbGxFZGdlcyA9IHRoaXMuZ2V0R3JhcGhNYW5hZ2VyKCkuZ2V0QWxsRWRnZXMoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFZGdlcy5sZW5ndGg7IGkrKykge1xuICAgIGVkZ2UgPSBhbGxFZGdlc1tpXTtcblxuICAgIGVkZ2UuaWRlYWxMZW5ndGggPSB0aGlzLmlkZWFsRWRnZUxlbmd0aDtcblxuICAgIGlmIChlZGdlLmlzSW50ZXJHcmFwaCkge1xuICAgICAgc291cmNlID0gZWRnZS5nZXRTb3VyY2UoKTtcbiAgICAgIHRhcmdldCA9IGVkZ2UuZ2V0VGFyZ2V0KCk7XG5cbiAgICAgIHNpemVPZlNvdXJjZUluTGNhID0gZWRnZS5nZXRTb3VyY2VJbkxjYSgpLmdldEVzdGltYXRlZFNpemUoKTtcbiAgICAgIHNpemVPZlRhcmdldEluTGNhID0gZWRnZS5nZXRUYXJnZXRJbkxjYSgpLmdldEVzdGltYXRlZFNpemUoKTtcblxuICAgICAgaWYgKHRoaXMudXNlU21hcnRJZGVhbEVkZ2VMZW5ndGhDYWxjdWxhdGlvbikge1xuICAgICAgICBlZGdlLmlkZWFsTGVuZ3RoICs9IHNpemVPZlNvdXJjZUluTGNhICsgc2l6ZU9mVGFyZ2V0SW5MY2EgLSAyICogTGF5b3V0Q29uc3RhbnRzLlNJTVBMRV9OT0RFX1NJWkU7XG4gICAgICB9XG5cbiAgICAgIGxjYURlcHRoID0gZWRnZS5nZXRMY2EoKS5nZXRJbmNsdXNpb25UcmVlRGVwdGgoKTtcblxuICAgICAgZWRnZS5pZGVhbExlbmd0aCArPSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0VER0VfTEVOR1RIICogRkRMYXlvdXRDb25zdGFudHMuUEVSX0xFVkVMX0lERUFMX0VER0VfTEVOR1RIX0ZBQ1RPUiAqIChzb3VyY2UuZ2V0SW5jbHVzaW9uVHJlZURlcHRoKCkgKyB0YXJnZXQuZ2V0SW5jbHVzaW9uVHJlZURlcHRoKCkgLSAyICogbGNhRGVwdGgpO1xuICAgIH1cbiAgfVxufTtcblxuRkRMYXlvdXQucHJvdG90eXBlLmluaXRTcHJpbmdFbWJlZGRlciA9IGZ1bmN0aW9uICgpIHtcblxuICB2YXIgcyA9IHRoaXMuZ2V0QWxsTm9kZXMoKS5sZW5ndGg7XG4gIGlmICh0aGlzLmluY3JlbWVudGFsKSB7XG4gICAgaWYgKHMgPiBGRExheW91dENvbnN0YW50cy5BREFQVEFUSU9OX0xPV0VSX05PREVfTElNSVQpIHtcbiAgICAgIHRoaXMuY29vbGluZ0ZhY3RvciA9IE1hdGgubWF4KHRoaXMuY29vbGluZ0ZhY3RvciAqIEZETGF5b3V0Q29uc3RhbnRzLkNPT0xJTkdfQURBUFRBVElPTl9GQUNUT1IsIHRoaXMuY29vbGluZ0ZhY3RvciAtIChzIC0gRkRMYXlvdXRDb25zdGFudHMuQURBUFRBVElPTl9MT1dFUl9OT0RFX0xJTUlUKSAvIChGRExheW91dENvbnN0YW50cy5BREFQVEFUSU9OX1VQUEVSX05PREVfTElNSVQgLSBGRExheW91dENvbnN0YW50cy5BREFQVEFUSU9OX0xPV0VSX05PREVfTElNSVQpICogdGhpcy5jb29saW5nRmFjdG9yICogKDEgLSBGRExheW91dENvbnN0YW50cy5DT09MSU5HX0FEQVBUQVRJT05fRkFDVE9SKSk7XG4gICAgfVxuICAgIHRoaXMubWF4Tm9kZURpc3BsYWNlbWVudCA9IEZETGF5b3V0Q29uc3RhbnRzLk1BWF9OT0RFX0RJU1BMQUNFTUVOVF9JTkNSRU1FTlRBTDtcbiAgfSBlbHNlIHtcbiAgICBpZiAocyA+IEZETGF5b3V0Q29uc3RhbnRzLkFEQVBUQVRJT05fTE9XRVJfTk9ERV9MSU1JVCkge1xuICAgICAgdGhpcy5jb29saW5nRmFjdG9yID0gTWF0aC5tYXgoRkRMYXlvdXRDb25zdGFudHMuQ09PTElOR19BREFQVEFUSU9OX0ZBQ1RPUiwgMS4wIC0gKHMgLSBGRExheW91dENvbnN0YW50cy5BREFQVEFUSU9OX0xPV0VSX05PREVfTElNSVQpIC8gKEZETGF5b3V0Q29uc3RhbnRzLkFEQVBUQVRJT05fVVBQRVJfTk9ERV9MSU1JVCAtIEZETGF5b3V0Q29uc3RhbnRzLkFEQVBUQVRJT05fTE9XRVJfTk9ERV9MSU1JVCkgKiAoMSAtIEZETGF5b3V0Q29uc3RhbnRzLkNPT0xJTkdfQURBUFRBVElPTl9GQUNUT1IpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb29saW5nRmFjdG9yID0gMS4wO1xuICAgIH1cbiAgICB0aGlzLmluaXRpYWxDb29saW5nRmFjdG9yID0gdGhpcy5jb29saW5nRmFjdG9yO1xuICAgIHRoaXMubWF4Tm9kZURpc3BsYWNlbWVudCA9IEZETGF5b3V0Q29uc3RhbnRzLk1BWF9OT0RFX0RJU1BMQUNFTUVOVDtcbiAgfVxuXG4gIHRoaXMubWF4SXRlcmF0aW9ucyA9IE1hdGgubWF4KHRoaXMuZ2V0QWxsTm9kZXMoKS5sZW5ndGggKiA1LCB0aGlzLm1heEl0ZXJhdGlvbnMpO1xuXG4gIHRoaXMudG90YWxEaXNwbGFjZW1lbnRUaHJlc2hvbGQgPSB0aGlzLmRpc3BsYWNlbWVudFRocmVzaG9sZFBlck5vZGUgKiB0aGlzLmdldEFsbE5vZGVzKCkubGVuZ3RoO1xuXG4gIHRoaXMucmVwdWxzaW9uUmFuZ2UgPSB0aGlzLmNhbGNSZXB1bHNpb25SYW5nZSgpO1xufTtcblxuRkRMYXlvdXQucHJvdG90eXBlLmNhbGNTcHJpbmdGb3JjZXMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBsRWRnZXMgPSB0aGlzLmdldEFsbEVkZ2VzKCk7XG4gIHZhciBlZGdlO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbEVkZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgZWRnZSA9IGxFZGdlc1tpXTtcblxuICAgIHRoaXMuY2FsY1NwcmluZ0ZvcmNlKGVkZ2UsIGVkZ2UuaWRlYWxMZW5ndGgpO1xuICB9XG59O1xuXG5GRExheW91dC5wcm90b3R5cGUuY2FsY1JlcHVsc2lvbkZvcmNlcyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGdyaWRVcGRhdGVBbGxvd2VkID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB0cnVlO1xuICB2YXIgZm9yY2VUb05vZGVTdXJyb3VuZGluZ1VwZGF0ZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogZmFsc2U7XG5cbiAgdmFyIGksIGo7XG4gIHZhciBub2RlQSwgbm9kZUI7XG4gIHZhciBsTm9kZXMgPSB0aGlzLmdldEFsbE5vZGVzKCk7XG4gIHZhciBwcm9jZXNzZWROb2RlU2V0O1xuXG4gIGlmICh0aGlzLnVzZUZSR3JpZFZhcmlhbnQpIHtcbiAgICBpZiAodGhpcy50b3RhbEl0ZXJhdGlvbnMgJSBGRExheW91dENvbnN0YW50cy5HUklEX0NBTENVTEFUSU9OX0NIRUNLX1BFUklPRCA9PSAxICYmIGdyaWRVcGRhdGVBbGxvd2VkKSB7XG4gICAgICB0aGlzLnVwZGF0ZUdyaWQoKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzZWROb2RlU2V0ID0gbmV3IFNldCgpO1xuXG4gICAgLy8gY2FsY3VsYXRlIHJlcHVsc2lvbiBmb3JjZXMgYmV0d2VlbiBlYWNoIG5vZGVzIGFuZCBpdHMgc3Vycm91bmRpbmdcbiAgICBmb3IgKGkgPSAwOyBpIDwgbE5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBub2RlQSA9IGxOb2Rlc1tpXTtcbiAgICAgIHRoaXMuY2FsY3VsYXRlUmVwdWxzaW9uRm9yY2VPZkFOb2RlKG5vZGVBLCBwcm9jZXNzZWROb2RlU2V0LCBncmlkVXBkYXRlQWxsb3dlZCwgZm9yY2VUb05vZGVTdXJyb3VuZGluZ1VwZGF0ZSk7XG4gICAgICBwcm9jZXNzZWROb2RlU2V0LmFkZChub2RlQSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZvciAoaSA9IDA7IGkgPCBsTm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG5vZGVBID0gbE5vZGVzW2ldO1xuXG4gICAgICBmb3IgKGogPSBpICsgMTsgaiA8IGxOb2Rlcy5sZW5ndGg7IGorKykge1xuICAgICAgICBub2RlQiA9IGxOb2Rlc1tqXTtcblxuICAgICAgICAvLyBJZiBib3RoIG5vZGVzIGFyZSBub3QgbWVtYmVycyBvZiB0aGUgc2FtZSBncmFwaCwgc2tpcC5cbiAgICAgICAgaWYgKG5vZGVBLmdldE93bmVyKCkgIT0gbm9kZUIuZ2V0T3duZXIoKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYWxjUmVwdWxzaW9uRm9yY2Uobm9kZUEsIG5vZGVCKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbkZETGF5b3V0LnByb3RvdHlwZS5jYWxjR3Jhdml0YXRpb25hbEZvcmNlcyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIG5vZGU7XG4gIHZhciBsTm9kZXMgPSB0aGlzLmdldEFsbE5vZGVzVG9BcHBseUdyYXZpdGF0aW9uKCk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsTm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICBub2RlID0gbE5vZGVzW2ldO1xuICAgIHRoaXMuY2FsY0dyYXZpdGF0aW9uYWxGb3JjZShub2RlKTtcbiAgfVxufTtcblxuRkRMYXlvdXQucHJvdG90eXBlLm1vdmVOb2RlcyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGxOb2RlcyA9IHRoaXMuZ2V0QWxsTm9kZXMoKTtcbiAgdmFyIG5vZGU7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsTm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICBub2RlID0gbE5vZGVzW2ldO1xuICAgIG5vZGUubW92ZSgpO1xuICB9XG59O1xuXG5GRExheW91dC5wcm90b3R5cGUuY2FsY1NwcmluZ0ZvcmNlID0gZnVuY3Rpb24gKGVkZ2UsIGlkZWFsTGVuZ3RoKSB7XG4gIHZhciBzb3VyY2VOb2RlID0gZWRnZS5nZXRTb3VyY2UoKTtcbiAgdmFyIHRhcmdldE5vZGUgPSBlZGdlLmdldFRhcmdldCgpO1xuXG4gIHZhciBsZW5ndGg7XG4gIHZhciBzcHJpbmdGb3JjZTtcbiAgdmFyIHNwcmluZ0ZvcmNlWDtcbiAgdmFyIHNwcmluZ0ZvcmNlWTtcblxuICAvLyBVcGRhdGUgZWRnZSBsZW5ndGhcbiAgaWYgKHRoaXMudW5pZm9ybUxlYWZOb2RlU2l6ZXMgJiYgc291cmNlTm9kZS5nZXRDaGlsZCgpID09IG51bGwgJiYgdGFyZ2V0Tm9kZS5nZXRDaGlsZCgpID09IG51bGwpIHtcbiAgICBlZGdlLnVwZGF0ZUxlbmd0aFNpbXBsZSgpO1xuICB9IGVsc2Uge1xuICAgIGVkZ2UudXBkYXRlTGVuZ3RoKCk7XG5cbiAgICBpZiAoZWRnZS5pc092ZXJsYXBpbmdTb3VyY2VBbmRUYXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBsZW5ndGggPSBlZGdlLmdldExlbmd0aCgpO1xuXG4gIGlmIChsZW5ndGggPT0gMCkgcmV0dXJuO1xuXG4gIC8vIENhbGN1bGF0ZSBzcHJpbmcgZm9yY2VzXG4gIHNwcmluZ0ZvcmNlID0gdGhpcy5zcHJpbmdDb25zdGFudCAqIChsZW5ndGggLSBpZGVhbExlbmd0aCk7XG5cbiAgLy8gUHJvamVjdCBmb3JjZSBvbnRvIHggYW5kIHkgYXhlc1xuICBzcHJpbmdGb3JjZVggPSBzcHJpbmdGb3JjZSAqIChlZGdlLmxlbmd0aFggLyBsZW5ndGgpO1xuICBzcHJpbmdGb3JjZVkgPSBzcHJpbmdGb3JjZSAqIChlZGdlLmxlbmd0aFkgLyBsZW5ndGgpO1xuXG4gIC8vIEFwcGx5IGZvcmNlcyBvbiB0aGUgZW5kIG5vZGVzXG4gIHNvdXJjZU5vZGUuc3ByaW5nRm9yY2VYICs9IHNwcmluZ0ZvcmNlWDtcbiAgc291cmNlTm9kZS5zcHJpbmdGb3JjZVkgKz0gc3ByaW5nRm9yY2VZO1xuICB0YXJnZXROb2RlLnNwcmluZ0ZvcmNlWCAtPSBzcHJpbmdGb3JjZVg7XG4gIHRhcmdldE5vZGUuc3ByaW5nRm9yY2VZIC09IHNwcmluZ0ZvcmNlWTtcbn07XG5cbkZETGF5b3V0LnByb3RvdHlwZS5jYWxjUmVwdWxzaW9uRm9yY2UgPSBmdW5jdGlvbiAobm9kZUEsIG5vZGVCKSB7XG4gIHZhciByZWN0QSA9IG5vZGVBLmdldFJlY3QoKTtcbiAgdmFyIHJlY3RCID0gbm9kZUIuZ2V0UmVjdCgpO1xuICB2YXIgb3ZlcmxhcEFtb3VudCA9IG5ldyBBcnJheSgyKTtcbiAgdmFyIGNsaXBQb2ludHMgPSBuZXcgQXJyYXkoNCk7XG4gIHZhciBkaXN0YW5jZVg7XG4gIHZhciBkaXN0YW5jZVk7XG4gIHZhciBkaXN0YW5jZVNxdWFyZWQ7XG4gIHZhciBkaXN0YW5jZTtcbiAgdmFyIHJlcHVsc2lvbkZvcmNlO1xuICB2YXIgcmVwdWxzaW9uRm9yY2VYO1xuICB2YXIgcmVwdWxzaW9uRm9yY2VZO1xuXG4gIGlmIChyZWN0QS5pbnRlcnNlY3RzKHJlY3RCKSkgLy8gdHdvIG5vZGVzIG92ZXJsYXBcbiAgICB7XG4gICAgICAvLyBjYWxjdWxhdGUgc2VwYXJhdGlvbiBhbW91bnQgaW4geCBhbmQgeSBkaXJlY3Rpb25zXG4gICAgICBJR2VvbWV0cnkuY2FsY1NlcGFyYXRpb25BbW91bnQocmVjdEEsIHJlY3RCLCBvdmVybGFwQW1vdW50LCBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0VER0VfTEVOR1RIIC8gMi4wKTtcblxuICAgICAgcmVwdWxzaW9uRm9yY2VYID0gMiAqIG92ZXJsYXBBbW91bnRbMF07XG4gICAgICByZXB1bHNpb25Gb3JjZVkgPSAyICogb3ZlcmxhcEFtb3VudFsxXTtcblxuICAgICAgdmFyIGNoaWxkcmVuQ29uc3RhbnQgPSBub2RlQS5ub09mQ2hpbGRyZW4gKiBub2RlQi5ub09mQ2hpbGRyZW4gLyAobm9kZUEubm9PZkNoaWxkcmVuICsgbm9kZUIubm9PZkNoaWxkcmVuKTtcblxuICAgICAgLy8gQXBwbHkgZm9yY2VzIG9uIHRoZSB0d28gbm9kZXNcbiAgICAgIG5vZGVBLnJlcHVsc2lvbkZvcmNlWCAtPSBjaGlsZHJlbkNvbnN0YW50ICogcmVwdWxzaW9uRm9yY2VYO1xuICAgICAgbm9kZUEucmVwdWxzaW9uRm9yY2VZIC09IGNoaWxkcmVuQ29uc3RhbnQgKiByZXB1bHNpb25Gb3JjZVk7XG4gICAgICBub2RlQi5yZXB1bHNpb25Gb3JjZVggKz0gY2hpbGRyZW5Db25zdGFudCAqIHJlcHVsc2lvbkZvcmNlWDtcbiAgICAgIG5vZGVCLnJlcHVsc2lvbkZvcmNlWSArPSBjaGlsZHJlbkNvbnN0YW50ICogcmVwdWxzaW9uRm9yY2VZO1xuICAgIH0gZWxzZSAvLyBubyBvdmVybGFwXG4gICAge1xuICAgICAgLy8gY2FsY3VsYXRlIGRpc3RhbmNlXG5cbiAgICAgIGlmICh0aGlzLnVuaWZvcm1MZWFmTm9kZVNpemVzICYmIG5vZGVBLmdldENoaWxkKCkgPT0gbnVsbCAmJiBub2RlQi5nZXRDaGlsZCgpID09IG51bGwpIC8vIHNpbXBseSBiYXNlIHJlcHVsc2lvbiBvbiBkaXN0YW5jZSBvZiBub2RlIGNlbnRlcnNcbiAgICAgICAge1xuICAgICAgICAgIGRpc3RhbmNlWCA9IHJlY3RCLmdldENlbnRlclgoKSAtIHJlY3RBLmdldENlbnRlclgoKTtcbiAgICAgICAgICBkaXN0YW5jZVkgPSByZWN0Qi5nZXRDZW50ZXJZKCkgLSByZWN0QS5nZXRDZW50ZXJZKCk7XG4gICAgICAgIH0gZWxzZSAvLyB1c2UgY2xpcHBpbmcgcG9pbnRzXG4gICAgICAgIHtcbiAgICAgICAgICBJR2VvbWV0cnkuZ2V0SW50ZXJzZWN0aW9uKHJlY3RBLCByZWN0QiwgY2xpcFBvaW50cyk7XG5cbiAgICAgICAgICBkaXN0YW5jZVggPSBjbGlwUG9pbnRzWzJdIC0gY2xpcFBvaW50c1swXTtcbiAgICAgICAgICBkaXN0YW5jZVkgPSBjbGlwUG9pbnRzWzNdIC0gY2xpcFBvaW50c1sxXTtcbiAgICAgICAgfVxuXG4gICAgICAvLyBObyByZXB1bHNpb24gcmFuZ2UuIEZSIGdyaWQgdmFyaWFudCBzaG91bGQgdGFrZSBjYXJlIG9mIHRoaXMuXG4gICAgICBpZiAoTWF0aC5hYnMoZGlzdGFuY2VYKSA8IEZETGF5b3V0Q29uc3RhbnRzLk1JTl9SRVBVTFNJT05fRElTVCkge1xuICAgICAgICBkaXN0YW5jZVggPSBJTWF0aC5zaWduKGRpc3RhbmNlWCkgKiBGRExheW91dENvbnN0YW50cy5NSU5fUkVQVUxTSU9OX0RJU1Q7XG4gICAgICB9XG5cbiAgICAgIGlmIChNYXRoLmFicyhkaXN0YW5jZVkpIDwgRkRMYXlvdXRDb25zdGFudHMuTUlOX1JFUFVMU0lPTl9ESVNUKSB7XG4gICAgICAgIGRpc3RhbmNlWSA9IElNYXRoLnNpZ24oZGlzdGFuY2VZKSAqIEZETGF5b3V0Q29uc3RhbnRzLk1JTl9SRVBVTFNJT05fRElTVDtcbiAgICAgIH1cblxuICAgICAgZGlzdGFuY2VTcXVhcmVkID0gZGlzdGFuY2VYICogZGlzdGFuY2VYICsgZGlzdGFuY2VZICogZGlzdGFuY2VZO1xuICAgICAgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZGlzdGFuY2VTcXVhcmVkKTtcblxuICAgICAgcmVwdWxzaW9uRm9yY2UgPSB0aGlzLnJlcHVsc2lvbkNvbnN0YW50ICogbm9kZUEubm9PZkNoaWxkcmVuICogbm9kZUIubm9PZkNoaWxkcmVuIC8gZGlzdGFuY2VTcXVhcmVkO1xuXG4gICAgICAvLyBQcm9qZWN0IGZvcmNlIG9udG8geCBhbmQgeSBheGVzXG4gICAgICByZXB1bHNpb25Gb3JjZVggPSByZXB1bHNpb25Gb3JjZSAqIGRpc3RhbmNlWCAvIGRpc3RhbmNlO1xuICAgICAgcmVwdWxzaW9uRm9yY2VZID0gcmVwdWxzaW9uRm9yY2UgKiBkaXN0YW5jZVkgLyBkaXN0YW5jZTtcblxuICAgICAgLy8gQXBwbHkgZm9yY2VzIG9uIHRoZSB0d28gbm9kZXMgICAgXG4gICAgICBub2RlQS5yZXB1bHNpb25Gb3JjZVggLT0gcmVwdWxzaW9uRm9yY2VYO1xuICAgICAgbm9kZUEucmVwdWxzaW9uRm9yY2VZIC09IHJlcHVsc2lvbkZvcmNlWTtcbiAgICAgIG5vZGVCLnJlcHVsc2lvbkZvcmNlWCArPSByZXB1bHNpb25Gb3JjZVg7XG4gICAgICBub2RlQi5yZXB1bHNpb25Gb3JjZVkgKz0gcmVwdWxzaW9uRm9yY2VZO1xuICAgIH1cbn07XG5cbkZETGF5b3V0LnByb3RvdHlwZS5jYWxjR3Jhdml0YXRpb25hbEZvcmNlID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgdmFyIG93bmVyR3JhcGg7XG4gIHZhciBvd25lckNlbnRlclg7XG4gIHZhciBvd25lckNlbnRlclk7XG4gIHZhciBkaXN0YW5jZVg7XG4gIHZhciBkaXN0YW5jZVk7XG4gIHZhciBhYnNEaXN0YW5jZVg7XG4gIHZhciBhYnNEaXN0YW5jZVk7XG4gIHZhciBlc3RpbWF0ZWRTaXplO1xuICBvd25lckdyYXBoID0gbm9kZS5nZXRPd25lcigpO1xuXG4gIG93bmVyQ2VudGVyWCA9IChvd25lckdyYXBoLmdldFJpZ2h0KCkgKyBvd25lckdyYXBoLmdldExlZnQoKSkgLyAyO1xuICBvd25lckNlbnRlclkgPSAob3duZXJHcmFwaC5nZXRUb3AoKSArIG93bmVyR3JhcGguZ2V0Qm90dG9tKCkpIC8gMjtcbiAgZGlzdGFuY2VYID0gbm9kZS5nZXRDZW50ZXJYKCkgLSBvd25lckNlbnRlclg7XG4gIGRpc3RhbmNlWSA9IG5vZGUuZ2V0Q2VudGVyWSgpIC0gb3duZXJDZW50ZXJZO1xuICBhYnNEaXN0YW5jZVggPSBNYXRoLmFicyhkaXN0YW5jZVgpICsgbm9kZS5nZXRXaWR0aCgpIC8gMjtcbiAgYWJzRGlzdGFuY2VZID0gTWF0aC5hYnMoZGlzdGFuY2VZKSArIG5vZGUuZ2V0SGVpZ2h0KCkgLyAyO1xuXG4gIGlmIChub2RlLmdldE93bmVyKCkgPT0gdGhpcy5ncmFwaE1hbmFnZXIuZ2V0Um9vdCgpKSAvLyBpbiB0aGUgcm9vdCBncmFwaFxuICAgIHtcbiAgICAgIGVzdGltYXRlZFNpemUgPSBvd25lckdyYXBoLmdldEVzdGltYXRlZFNpemUoKSAqIHRoaXMuZ3Jhdml0eVJhbmdlRmFjdG9yO1xuXG4gICAgICBpZiAoYWJzRGlzdGFuY2VYID4gZXN0aW1hdGVkU2l6ZSB8fCBhYnNEaXN0YW5jZVkgPiBlc3RpbWF0ZWRTaXplKSB7XG4gICAgICAgIG5vZGUuZ3Jhdml0YXRpb25Gb3JjZVggPSAtdGhpcy5ncmF2aXR5Q29uc3RhbnQgKiBkaXN0YW5jZVg7XG4gICAgICAgIG5vZGUuZ3Jhdml0YXRpb25Gb3JjZVkgPSAtdGhpcy5ncmF2aXR5Q29uc3RhbnQgKiBkaXN0YW5jZVk7XG4gICAgICB9XG4gICAgfSBlbHNlIC8vIGluc2lkZSBhIGNvbXBvdW5kXG4gICAge1xuICAgICAgZXN0aW1hdGVkU2l6ZSA9IG93bmVyR3JhcGguZ2V0RXN0aW1hdGVkU2l6ZSgpICogdGhpcy5jb21wb3VuZEdyYXZpdHlSYW5nZUZhY3RvcjtcblxuICAgICAgaWYgKGFic0Rpc3RhbmNlWCA+IGVzdGltYXRlZFNpemUgfHwgYWJzRGlzdGFuY2VZID4gZXN0aW1hdGVkU2l6ZSkge1xuICAgICAgICBub2RlLmdyYXZpdGF0aW9uRm9yY2VYID0gLXRoaXMuZ3Jhdml0eUNvbnN0YW50ICogZGlzdGFuY2VYICogdGhpcy5jb21wb3VuZEdyYXZpdHlDb25zdGFudDtcbiAgICAgICAgbm9kZS5ncmF2aXRhdGlvbkZvcmNlWSA9IC10aGlzLmdyYXZpdHlDb25zdGFudCAqIGRpc3RhbmNlWSAqIHRoaXMuY29tcG91bmRHcmF2aXR5Q29uc3RhbnQ7XG4gICAgICB9XG4gICAgfVxufTtcblxuRkRMYXlvdXQucHJvdG90eXBlLmlzQ29udmVyZ2VkID0gZnVuY3Rpb24gKCkge1xuICB2YXIgY29udmVyZ2VkO1xuICB2YXIgb3NjaWxhdGluZyA9IGZhbHNlO1xuXG4gIGlmICh0aGlzLnRvdGFsSXRlcmF0aW9ucyA+IHRoaXMubWF4SXRlcmF0aW9ucyAvIDMpIHtcbiAgICBvc2NpbGF0aW5nID0gTWF0aC5hYnModGhpcy50b3RhbERpc3BsYWNlbWVudCAtIHRoaXMub2xkVG90YWxEaXNwbGFjZW1lbnQpIDwgMjtcbiAgfVxuXG4gIGNvbnZlcmdlZCA9IHRoaXMudG90YWxEaXNwbGFjZW1lbnQgPCB0aGlzLnRvdGFsRGlzcGxhY2VtZW50VGhyZXNob2xkO1xuXG4gIHRoaXMub2xkVG90YWxEaXNwbGFjZW1lbnQgPSB0aGlzLnRvdGFsRGlzcGxhY2VtZW50O1xuXG4gIHJldHVybiBjb252ZXJnZWQgfHwgb3NjaWxhdGluZztcbn07XG5cbkZETGF5b3V0LnByb3RvdHlwZS5hbmltYXRlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5hbmltYXRpb25EdXJpbmdMYXlvdXQgJiYgIXRoaXMuaXNTdWJMYXlvdXQpIHtcbiAgICBpZiAodGhpcy5ub3RBbmltYXRlZEl0ZXJhdGlvbnMgPT0gdGhpcy5hbmltYXRpb25QZXJpb2QpIHtcbiAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICB0aGlzLm5vdEFuaW1hdGVkSXRlcmF0aW9ucyA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm90QW5pbWF0ZWRJdGVyYXRpb25zKys7XG4gICAgfVxuICB9XG59O1xuXG4vL1RoaXMgbWV0aG9kIGNhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBjaGlsZHJlbiAod2VpZ2h0KSBmb3IgYWxsIG5vZGVzXG5GRExheW91dC5wcm90b3R5cGUuY2FsY05vT2ZDaGlsZHJlbkZvckFsbE5vZGVzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgbm9kZTtcbiAgdmFyIGFsbE5vZGVzID0gdGhpcy5ncmFwaE1hbmFnZXIuZ2V0QWxsTm9kZXMoKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbE5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgbm9kZSA9IGFsbE5vZGVzW2ldO1xuICAgIG5vZGUubm9PZkNoaWxkcmVuID0gbm9kZS5nZXROb09mQ2hpbGRyZW4oKTtcbiAgfVxufTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNlY3Rpb246IEZSLUdyaWQgVmFyaWFudCBSZXB1bHNpb24gRm9yY2UgQ2FsY3VsYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkZETGF5b3V0LnByb3RvdHlwZS5jYWxjR3JpZCA9IGZ1bmN0aW9uIChncmFwaCkge1xuXG4gIHZhciBzaXplWCA9IDA7XG4gIHZhciBzaXplWSA9IDA7XG5cbiAgc2l6ZVggPSBwYXJzZUludChNYXRoLmNlaWwoKGdyYXBoLmdldFJpZ2h0KCkgLSBncmFwaC5nZXRMZWZ0KCkpIC8gdGhpcy5yZXB1bHNpb25SYW5nZSkpO1xuICBzaXplWSA9IHBhcnNlSW50KE1hdGguY2VpbCgoZ3JhcGguZ2V0Qm90dG9tKCkgLSBncmFwaC5nZXRUb3AoKSkgLyB0aGlzLnJlcHVsc2lvblJhbmdlKSk7XG5cbiAgdmFyIGdyaWQgPSBuZXcgQXJyYXkoc2l6ZVgpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZVg7IGkrKykge1xuICAgIGdyaWRbaV0gPSBuZXcgQXJyYXkoc2l6ZVkpO1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplWDsgaSsrKSB7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBzaXplWTsgaisrKSB7XG4gICAgICBncmlkW2ldW2pdID0gbmV3IEFycmF5KCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdyaWQ7XG59O1xuXG5GRExheW91dC5wcm90b3R5cGUuYWRkTm9kZVRvR3JpZCA9IGZ1bmN0aW9uICh2LCBsZWZ0LCB0b3ApIHtcblxuICB2YXIgc3RhcnRYID0gMDtcbiAgdmFyIGZpbmlzaFggPSAwO1xuICB2YXIgc3RhcnRZID0gMDtcbiAgdmFyIGZpbmlzaFkgPSAwO1xuXG4gIHN0YXJ0WCA9IHBhcnNlSW50KE1hdGguZmxvb3IoKHYuZ2V0UmVjdCgpLnggLSBsZWZ0KSAvIHRoaXMucmVwdWxzaW9uUmFuZ2UpKTtcbiAgZmluaXNoWCA9IHBhcnNlSW50KE1hdGguZmxvb3IoKHYuZ2V0UmVjdCgpLndpZHRoICsgdi5nZXRSZWN0KCkueCAtIGxlZnQpIC8gdGhpcy5yZXB1bHNpb25SYW5nZSkpO1xuICBzdGFydFkgPSBwYXJzZUludChNYXRoLmZsb29yKCh2LmdldFJlY3QoKS55IC0gdG9wKSAvIHRoaXMucmVwdWxzaW9uUmFuZ2UpKTtcbiAgZmluaXNoWSA9IHBhcnNlSW50KE1hdGguZmxvb3IoKHYuZ2V0UmVjdCgpLmhlaWdodCArIHYuZ2V0UmVjdCgpLnkgLSB0b3ApIC8gdGhpcy5yZXB1bHNpb25SYW5nZSkpO1xuXG4gIGZvciAodmFyIGkgPSBzdGFydFg7IGkgPD0gZmluaXNoWDsgaSsrKSB7XG4gICAgZm9yICh2YXIgaiA9IHN0YXJ0WTsgaiA8PSBmaW5pc2hZOyBqKyspIHtcbiAgICAgIHRoaXMuZ3JpZFtpXVtqXS5wdXNoKHYpO1xuICAgICAgdi5zZXRHcmlkQ29vcmRpbmF0ZXMoc3RhcnRYLCBmaW5pc2hYLCBzdGFydFksIGZpbmlzaFkpO1xuICAgIH1cbiAgfVxufTtcblxuRkRMYXlvdXQucHJvdG90eXBlLnVwZGF0ZUdyaWQgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBpO1xuICB2YXIgbm9kZUE7XG4gIHZhciBsTm9kZXMgPSB0aGlzLmdldEFsbE5vZGVzKCk7XG5cbiAgdGhpcy5ncmlkID0gdGhpcy5jYWxjR3JpZCh0aGlzLmdyYXBoTWFuYWdlci5nZXRSb290KCkpO1xuXG4gIC8vIHB1dCBhbGwgbm9kZXMgdG8gcHJvcGVyIGdyaWQgY2VsbHNcbiAgZm9yIChpID0gMDsgaSA8IGxOb2Rlcy5sZW5ndGg7IGkrKykge1xuICAgIG5vZGVBID0gbE5vZGVzW2ldO1xuICAgIHRoaXMuYWRkTm9kZVRvR3JpZChub2RlQSwgdGhpcy5ncmFwaE1hbmFnZXIuZ2V0Um9vdCgpLmdldExlZnQoKSwgdGhpcy5ncmFwaE1hbmFnZXIuZ2V0Um9vdCgpLmdldFRvcCgpKTtcbiAgfVxufTtcblxuRkRMYXlvdXQucHJvdG90eXBlLmNhbGN1bGF0ZVJlcHVsc2lvbkZvcmNlT2ZBTm9kZSA9IGZ1bmN0aW9uIChub2RlQSwgcHJvY2Vzc2VkTm9kZVNldCwgZ3JpZFVwZGF0ZUFsbG93ZWQsIGZvcmNlVG9Ob2RlU3Vycm91bmRpbmdVcGRhdGUpIHtcblxuICBpZiAodGhpcy50b3RhbEl0ZXJhdGlvbnMgJSBGRExheW91dENvbnN0YW50cy5HUklEX0NBTENVTEFUSU9OX0NIRUNLX1BFUklPRCA9PSAxICYmIGdyaWRVcGRhdGVBbGxvd2VkIHx8IGZvcmNlVG9Ob2RlU3Vycm91bmRpbmdVcGRhdGUpIHtcbiAgICB2YXIgc3Vycm91bmRpbmcgPSBuZXcgU2V0KCk7XG4gICAgbm9kZUEuc3Vycm91bmRpbmcgPSBuZXcgQXJyYXkoKTtcbiAgICB2YXIgbm9kZUI7XG4gICAgdmFyIGdyaWQgPSB0aGlzLmdyaWQ7XG5cbiAgICBmb3IgKHZhciBpID0gbm9kZUEuc3RhcnRYIC0gMTsgaSA8IG5vZGVBLmZpbmlzaFggKyAyOyBpKyspIHtcbiAgICAgIGZvciAodmFyIGogPSBub2RlQS5zdGFydFkgLSAxOyBqIDwgbm9kZUEuZmluaXNoWSArIDI7IGorKykge1xuICAgICAgICBpZiAoIShpIDwgMCB8fCBqIDwgMCB8fCBpID49IGdyaWQubGVuZ3RoIHx8IGogPj0gZ3JpZFswXS5sZW5ndGgpKSB7XG4gICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBncmlkW2ldW2pdLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICBub2RlQiA9IGdyaWRbaV1bal1ba107XG5cbiAgICAgICAgICAgIC8vIElmIGJvdGggbm9kZXMgYXJlIG5vdCBtZW1iZXJzIG9mIHRoZSBzYW1lIGdyYXBoLCBcbiAgICAgICAgICAgIC8vIG9yIGJvdGggbm9kZXMgYXJlIHRoZSBzYW1lLCBza2lwLlxuICAgICAgICAgICAgaWYgKG5vZGVBLmdldE93bmVyKCkgIT0gbm9kZUIuZ2V0T3duZXIoKSB8fCBub2RlQSA9PSBub2RlQikge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHJlcHVsc2lvbiBmb3JjZSBiZXR3ZWVuXG4gICAgICAgICAgICAvLyBub2RlQSBhbmQgbm9kZUIgaGFzIGFscmVhZHkgYmVlbiBjYWxjdWxhdGVkXG4gICAgICAgICAgICBpZiAoIXByb2Nlc3NlZE5vZGVTZXQuaGFzKG5vZGVCKSAmJiAhc3Vycm91bmRpbmcuaGFzKG5vZGVCKSkge1xuICAgICAgICAgICAgICB2YXIgZGlzdGFuY2VYID0gTWF0aC5hYnMobm9kZUEuZ2V0Q2VudGVyWCgpIC0gbm9kZUIuZ2V0Q2VudGVyWCgpKSAtIChub2RlQS5nZXRXaWR0aCgpIC8gMiArIG5vZGVCLmdldFdpZHRoKCkgLyAyKTtcbiAgICAgICAgICAgICAgdmFyIGRpc3RhbmNlWSA9IE1hdGguYWJzKG5vZGVBLmdldENlbnRlclkoKSAtIG5vZGVCLmdldENlbnRlclkoKSkgLSAobm9kZUEuZ2V0SGVpZ2h0KCkgLyAyICsgbm9kZUIuZ2V0SGVpZ2h0KCkgLyAyKTtcblxuICAgICAgICAgICAgICAvLyBpZiB0aGUgZGlzdGFuY2UgYmV0d2VlbiBub2RlQSBhbmQgbm9kZUIgXG4gICAgICAgICAgICAgIC8vIGlzIGxlc3MgdGhlbiBjYWxjdWxhdGlvbiByYW5nZVxuICAgICAgICAgICAgICBpZiAoZGlzdGFuY2VYIDw9IHRoaXMucmVwdWxzaW9uUmFuZ2UgJiYgZGlzdGFuY2VZIDw9IHRoaXMucmVwdWxzaW9uUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAvL3RoZW4gYWRkIG5vZGVCIHRvIHN1cnJvdW5kaW5nIG9mIG5vZGVBXG4gICAgICAgICAgICAgICAgc3Vycm91bmRpbmcuYWRkKG5vZGVCKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIG5vZGVBLnN1cnJvdW5kaW5nID0gW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShzdXJyb3VuZGluZykpO1xuICB9XG4gIGZvciAoaSA9IDA7IGkgPCBub2RlQS5zdXJyb3VuZGluZy5sZW5ndGg7IGkrKykge1xuICAgIHRoaXMuY2FsY1JlcHVsc2lvbkZvcmNlKG5vZGVBLCBub2RlQS5zdXJyb3VuZGluZ1tpXSk7XG4gIH1cbn07XG5cbkZETGF5b3V0LnByb3RvdHlwZS5jYWxjUmVwdWxzaW9uUmFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAwLjA7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEZETGF5b3V0O1xuXG4vKioqLyB9KSxcbi8qIDE5ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbnZhciBMRWRnZSA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG52YXIgRkRMYXlvdXRDb25zdGFudHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDcpO1xuXG5mdW5jdGlvbiBGRExheW91dEVkZ2Uoc291cmNlLCB0YXJnZXQsIHZFZGdlKSB7XG4gIExFZGdlLmNhbGwodGhpcywgc291cmNlLCB0YXJnZXQsIHZFZGdlKTtcbiAgdGhpcy5pZGVhbExlbmd0aCA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfRURHRV9MRU5HVEg7XG59XG5cbkZETGF5b3V0RWRnZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKExFZGdlLnByb3RvdHlwZSk7XG5cbmZvciAodmFyIHByb3AgaW4gTEVkZ2UpIHtcbiAgRkRMYXlvdXRFZGdlW3Byb3BdID0gTEVkZ2VbcHJvcF07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRkRMYXlvdXRFZGdlO1xuXG4vKioqLyB9KSxcbi8qIDIwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbnZhciBMTm9kZSA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG5cbmZ1bmN0aW9uIEZETGF5b3V0Tm9kZShnbSwgbG9jLCBzaXplLCB2Tm9kZSkge1xuICAvLyBhbHRlcm5hdGl2ZSBjb25zdHJ1Y3RvciBpcyBoYW5kbGVkIGluc2lkZSBMTm9kZVxuICBMTm9kZS5jYWxsKHRoaXMsIGdtLCBsb2MsIHNpemUsIHZOb2RlKTtcbiAgLy9TcHJpbmcsIHJlcHVsc2lvbiBhbmQgZ3Jhdml0YXRpb25hbCBmb3JjZXMgYWN0aW5nIG9uIHRoaXMgbm9kZVxuICB0aGlzLnNwcmluZ0ZvcmNlWCA9IDA7XG4gIHRoaXMuc3ByaW5nRm9yY2VZID0gMDtcbiAgdGhpcy5yZXB1bHNpb25Gb3JjZVggPSAwO1xuICB0aGlzLnJlcHVsc2lvbkZvcmNlWSA9IDA7XG4gIHRoaXMuZ3Jhdml0YXRpb25Gb3JjZVggPSAwO1xuICB0aGlzLmdyYXZpdGF0aW9uRm9yY2VZID0gMDtcbiAgLy9BbW91bnQgYnkgd2hpY2ggdGhpcyBub2RlIGlzIHRvIGJlIG1vdmVkIGluIHRoaXMgaXRlcmF0aW9uXG4gIHRoaXMuZGlzcGxhY2VtZW50WCA9IDA7XG4gIHRoaXMuZGlzcGxhY2VtZW50WSA9IDA7XG5cbiAgLy9TdGFydCBhbmQgZmluaXNoIGdyaWQgY29vcmRpbmF0ZXMgdGhhdCB0aGlzIG5vZGUgaXMgZmFsbGVuIGludG9cbiAgdGhpcy5zdGFydFggPSAwO1xuICB0aGlzLmZpbmlzaFggPSAwO1xuICB0aGlzLnN0YXJ0WSA9IDA7XG4gIHRoaXMuZmluaXNoWSA9IDA7XG5cbiAgLy9HZW9tZXRyaWMgbmVpZ2hib3JzIG9mIHRoaXMgbm9kZVxuICB0aGlzLnN1cnJvdW5kaW5nID0gW107XG59XG5cbkZETGF5b3V0Tm9kZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKExOb2RlLnByb3RvdHlwZSk7XG5cbmZvciAodmFyIHByb3AgaW4gTE5vZGUpIHtcbiAgRkRMYXlvdXROb2RlW3Byb3BdID0gTE5vZGVbcHJvcF07XG59XG5cbkZETGF5b3V0Tm9kZS5wcm90b3R5cGUuc2V0R3JpZENvb3JkaW5hdGVzID0gZnVuY3Rpb24gKF9zdGFydFgsIF9maW5pc2hYLCBfc3RhcnRZLCBfZmluaXNoWSkge1xuICB0aGlzLnN0YXJ0WCA9IF9zdGFydFg7XG4gIHRoaXMuZmluaXNoWCA9IF9maW5pc2hYO1xuICB0aGlzLnN0YXJ0WSA9IF9zdGFydFk7XG4gIHRoaXMuZmluaXNoWSA9IF9maW5pc2hZO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBGRExheW91dE5vZGU7XG5cbi8qKiovIH0pLFxuLyogMjEgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuZnVuY3Rpb24gRGltZW5zaW9uRCh3aWR0aCwgaGVpZ2h0KSB7XG4gIHRoaXMud2lkdGggPSAwO1xuICB0aGlzLmhlaWdodCA9IDA7XG4gIGlmICh3aWR0aCAhPT0gbnVsbCAmJiBoZWlnaHQgIT09IG51bGwpIHtcbiAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcbiAgICB0aGlzLndpZHRoID0gd2lkdGg7XG4gIH1cbn1cblxuRGltZW5zaW9uRC5wcm90b3R5cGUuZ2V0V2lkdGggPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLndpZHRoO1xufTtcblxuRGltZW5zaW9uRC5wcm90b3R5cGUuc2V0V2lkdGggPSBmdW5jdGlvbiAod2lkdGgpIHtcbiAgdGhpcy53aWR0aCA9IHdpZHRoO1xufTtcblxuRGltZW5zaW9uRC5wcm90b3R5cGUuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5oZWlnaHQ7XG59O1xuXG5EaW1lbnNpb25ELnByb3RvdHlwZS5zZXRIZWlnaHQgPSBmdW5jdGlvbiAoaGVpZ2h0KSB7XG4gIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBEaW1lbnNpb25EO1xuXG4vKioqLyB9KSxcbi8qIDIyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbnZhciBVbmlxdWVJREdlbmVyZXRvciA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpO1xuXG5mdW5jdGlvbiBIYXNoTWFwKCkge1xuICB0aGlzLm1hcCA9IHt9O1xuICB0aGlzLmtleXMgPSBbXTtcbn1cblxuSGFzaE1hcC5wcm90b3R5cGUucHV0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgdmFyIHRoZUlkID0gVW5pcXVlSURHZW5lcmV0b3IuY3JlYXRlSUQoa2V5KTtcbiAgaWYgKCF0aGlzLmNvbnRhaW5zKHRoZUlkKSkge1xuICAgIHRoaXMubWFwW3RoZUlkXSA9IHZhbHVlO1xuICAgIHRoaXMua2V5cy5wdXNoKGtleSk7XG4gIH1cbn07XG5cbkhhc2hNYXAucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24gKGtleSkge1xuICB2YXIgdGhlSWQgPSBVbmlxdWVJREdlbmVyZXRvci5jcmVhdGVJRChrZXkpO1xuICByZXR1cm4gdGhpcy5tYXBba2V5XSAhPSBudWxsO1xufTtcblxuSGFzaE1hcC5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xuICB2YXIgdGhlSWQgPSBVbmlxdWVJREdlbmVyZXRvci5jcmVhdGVJRChrZXkpO1xuICByZXR1cm4gdGhpcy5tYXBbdGhlSWRdO1xufTtcblxuSGFzaE1hcC5wcm90b3R5cGUua2V5U2V0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5rZXlzO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBIYXNoTWFwO1xuXG4vKioqLyB9KSxcbi8qIDIzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbnZhciBVbmlxdWVJREdlbmVyZXRvciA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpO1xuXG5mdW5jdGlvbiBIYXNoU2V0KCkge1xuICB0aGlzLnNldCA9IHt9O1xufVxuO1xuXG5IYXNoU2V0LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHZhciB0aGVJZCA9IFVuaXF1ZUlER2VuZXJldG9yLmNyZWF0ZUlEKG9iaik7XG4gIGlmICghdGhpcy5jb250YWlucyh0aGVJZCkpIHRoaXMuc2V0W3RoZUlkXSA9IG9iajtcbn07XG5cbkhhc2hTZXQucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgZGVsZXRlIHRoaXMuc2V0W1VuaXF1ZUlER2VuZXJldG9yLmNyZWF0ZUlEKG9iaildO1xufTtcblxuSGFzaFNldC5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2V0ID0ge307XG59O1xuXG5IYXNoU2V0LnByb3RvdHlwZS5jb250YWlucyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIHRoaXMuc2V0W1VuaXF1ZUlER2VuZXJldG9yLmNyZWF0ZUlEKG9iaildID09IG9iajtcbn07XG5cbkhhc2hTZXQucHJvdG90eXBlLmlzRW1wdHkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnNpemUoKSA9PT0gMDtcbn07XG5cbkhhc2hTZXQucHJvdG90eXBlLnNpemUgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnNldCkubGVuZ3RoO1xufTtcblxuLy9jb25jYXRzIHRoaXMuc2V0IHRvIHRoZSBnaXZlbiBsaXN0XG5IYXNoU2V0LnByb3RvdHlwZS5hZGRBbGxUbyA9IGZ1bmN0aW9uIChsaXN0KSB7XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXModGhpcy5zZXQpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBsaXN0LnB1c2godGhpcy5zZXRba2V5c1tpXV0pO1xuICB9XG59O1xuXG5IYXNoU2V0LnByb3RvdHlwZS5zaXplID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5zZXQpLmxlbmd0aDtcbn07XG5cbkhhc2hTZXQucHJvdG90eXBlLmFkZEFsbCA9IGZ1bmN0aW9uIChsaXN0KSB7XG4gIHZhciBzID0gbGlzdC5sZW5ndGg7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgczsgaSsrKSB7XG4gICAgdmFyIHYgPSBsaXN0W2ldO1xuICAgIHRoaXMuYWRkKHYpO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEhhc2hTZXQ7XG5cbi8qKiovIH0pLFxuLyogMjQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxudmFyIF9jcmVhdGVDbGFzcyA9IGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0oKTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuLyoqXG4gKiBBIGNsYXNzaWMgUXVpY2tzb3J0IGFsZ29yaXRobSB3aXRoIEhvYXJlJ3MgcGFydGl0aW9uXG4gKiAtIFdvcmtzIGFsc28gb24gTGlua2VkTGlzdCBvYmplY3RzXG4gKlxuICogQ29weXJpZ2h0OiBpLVZpcyBSZXNlYXJjaCBHcm91cCwgQmlsa2VudCBVbml2ZXJzaXR5LCAyMDA3IC0gcHJlc2VudFxuICovXG5cbnZhciBMaW5rZWRMaXN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMSk7XG5cbnZhciBRdWlja3NvcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUXVpY2tzb3J0KEEsIGNvbXBhcmVGdW5jdGlvbikge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUXVpY2tzb3J0KTtcblxuICAgICAgICBpZiAoY29tcGFyZUZ1bmN0aW9uICE9PSBudWxsIHx8IGNvbXBhcmVGdW5jdGlvbiAhPT0gdW5kZWZpbmVkKSB0aGlzLmNvbXBhcmVGdW5jdGlvbiA9IHRoaXMuX2RlZmF1bHRDb21wYXJlRnVuY3Rpb247XG5cbiAgICAgICAgdmFyIGxlbmd0aCA9IHZvaWQgMDtcbiAgICAgICAgaWYgKEEgaW5zdGFuY2VvZiBMaW5rZWRMaXN0KSBsZW5ndGggPSBBLnNpemUoKTtlbHNlIGxlbmd0aCA9IEEubGVuZ3RoO1xuXG4gICAgICAgIHRoaXMuX3F1aWNrc29ydChBLCAwLCBsZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoUXVpY2tzb3J0LCBbe1xuICAgICAgICBrZXk6ICdfcXVpY2tzb3J0JyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9xdWlja3NvcnQoQSwgcCwgcikge1xuICAgICAgICAgICAgaWYgKHAgPCByKSB7XG4gICAgICAgICAgICAgICAgdmFyIHEgPSB0aGlzLl9wYXJ0aXRpb24oQSwgcCwgcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fcXVpY2tzb3J0KEEsIHAsIHEpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3F1aWNrc29ydChBLCBxICsgMSwgcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ19wYXJ0aXRpb24nLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3BhcnRpdGlvbihBLCBwLCByKSB7XG4gICAgICAgICAgICB2YXIgeCA9IHRoaXMuX2dldChBLCBwKTtcbiAgICAgICAgICAgIHZhciBpID0gcDtcbiAgICAgICAgICAgIHZhciBqID0gcjtcbiAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuY29tcGFyZUZ1bmN0aW9uKHgsIHRoaXMuX2dldChBLCBqKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgai0tO1xuICAgICAgICAgICAgICAgIH13aGlsZSAodGhpcy5jb21wYXJlRnVuY3Rpb24odGhpcy5fZ2V0KEEsIGkpLCB4KSkge1xuICAgICAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgfWlmIChpIDwgaikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zd2FwKEEsIGksIGopO1xuICAgICAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgICAgIGotLTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgcmV0dXJuIGo7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ19nZXQnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2dldChvYmplY3QsIGluZGV4KSB7XG4gICAgICAgICAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgTGlua2VkTGlzdCkgcmV0dXJuIG9iamVjdC5nZXRfb2JqZWN0X2F0KGluZGV4KTtlbHNlIHJldHVybiBvYmplY3RbaW5kZXhdO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdfc2V0JyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9zZXQob2JqZWN0LCBpbmRleCwgdmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiBMaW5rZWRMaXN0KSBvYmplY3Quc2V0X29iamVjdF9hdChpbmRleCwgdmFsdWUpO2Vsc2Ugb2JqZWN0W2luZGV4XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdfc3dhcCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfc3dhcChBLCBpLCBqKSB7XG4gICAgICAgICAgICB2YXIgdGVtcCA9IHRoaXMuX2dldChBLCBpKTtcbiAgICAgICAgICAgIHRoaXMuX3NldChBLCBpLCB0aGlzLl9nZXQoQSwgaikpO1xuICAgICAgICAgICAgdGhpcy5fc2V0KEEsIGosIHRlbXApO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdfZGVmYXVsdENvbXBhcmVGdW5jdGlvbicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfZGVmYXVsdENvbXBhcmVGdW5jdGlvbihhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4gYiA+IGE7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gUXVpY2tzb3J0O1xufSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFF1aWNrc29ydDtcblxuLyoqKi8gfSksXG4vKiAyNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG4vKipcbiAqICAgTmVlZGxlbWFuLVd1bnNjaCBhbGdvcml0aG0gaXMgYW4gcHJvY2VkdXJlIHRvIGNvbXB1dGUgdGhlIG9wdGltYWwgZ2xvYmFsIGFsaWdubWVudCBvZiB0d28gc3RyaW5nXG4gKiAgIHNlcXVlbmNlcyBieSBTLkIuTmVlZGxlbWFuIGFuZCBDLkQuV3Vuc2NoICgxOTcwKS5cbiAqXG4gKiAgIEFzaWRlIGZyb20gdGhlIGlucHV0cywgeW91IGNhbiBhc3NpZ24gdGhlIHNjb3JlcyBmb3IsXG4gKiAgIC0gTWF0Y2g6IFRoZSB0d28gY2hhcmFjdGVycyBhdCB0aGUgY3VycmVudCBpbmRleCBhcmUgc2FtZS5cbiAqICAgLSBNaXNtYXRjaDogVGhlIHR3byBjaGFyYWN0ZXJzIGF0IHRoZSBjdXJyZW50IGluZGV4IGFyZSBkaWZmZXJlbnQuXG4gKiAgIC0gSW5zZXJ0aW9uL0RlbGV0aW9uKGdhcHMpOiBUaGUgYmVzdCBhbGlnbm1lbnQgaW52b2x2ZXMgb25lIGxldHRlciBhbGlnbmluZyB0byBhIGdhcCBpbiB0aGUgb3RoZXIgc3RyaW5nLlxuICovXG5cbnZhciBOZWVkbGVtYW5XdW5zY2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTmVlZGxlbWFuV3Vuc2NoKHNlcXVlbmNlMSwgc2VxdWVuY2UyKSB7XG4gICAgICAgIHZhciBtYXRjaF9zY29yZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcbiAgICAgICAgdmFyIG1pc21hdGNoX3BlbmFsdHkgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IC0xO1xuICAgICAgICB2YXIgZ2FwX3BlbmFsdHkgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IC0xO1xuXG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBOZWVkbGVtYW5XdW5zY2gpO1xuXG4gICAgICAgIHRoaXMuc2VxdWVuY2UxID0gc2VxdWVuY2UxO1xuICAgICAgICB0aGlzLnNlcXVlbmNlMiA9IHNlcXVlbmNlMjtcbiAgICAgICAgdGhpcy5tYXRjaF9zY29yZSA9IG1hdGNoX3Njb3JlO1xuICAgICAgICB0aGlzLm1pc21hdGNoX3BlbmFsdHkgPSBtaXNtYXRjaF9wZW5hbHR5O1xuICAgICAgICB0aGlzLmdhcF9wZW5hbHR5ID0gZ2FwX3BlbmFsdHk7XG5cbiAgICAgICAgLy8gSnVzdCB0aGUgcmVtb3ZlIHJlZHVuZGFuY3lcbiAgICAgICAgdGhpcy5pTWF4ID0gc2VxdWVuY2UxLmxlbmd0aCArIDE7XG4gICAgICAgIHRoaXMuak1heCA9IHNlcXVlbmNlMi5sZW5ndGggKyAxO1xuXG4gICAgICAgIC8vIEdyaWQgbWF0cml4IG9mIHNjb3Jlc1xuICAgICAgICB0aGlzLmdyaWQgPSBuZXcgQXJyYXkodGhpcy5pTWF4KTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmlNYXg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5ncmlkW2ldID0gbmV3IEFycmF5KHRoaXMuak1heCk7XG5cbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGhpcy5qTWF4OyBqKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRbaV1bal0gPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJhY2ViYWNrIG1hdHJpeCAoMkQgYXJyYXksIGVhY2ggY2VsbCBpcyBhbiBhcnJheSBvZiBib29sZWFuIHZhbHVlcyBmb3IgW2BEaWFnYCwgYFVwYCwgYExlZnRgXSBwb3NpdGlvbnMpXG4gICAgICAgIHRoaXMudHJhY2ViYWNrR3JpZCA9IG5ldyBBcnJheSh0aGlzLmlNYXgpO1xuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgdGhpcy5pTWF4OyBfaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnRyYWNlYmFja0dyaWRbX2ldID0gbmV3IEFycmF5KHRoaXMuak1heCk7XG5cbiAgICAgICAgICAgIGZvciAodmFyIF9qID0gMDsgX2ogPCB0aGlzLmpNYXg7IF9qKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYWNlYmFja0dyaWRbX2ldW19qXSA9IFtudWxsLCBudWxsLCBudWxsXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBhbGlnbmVkIHNlcXVlbmNlcyAocmV0dXJuIG11bHRpcGxlIHBvc3NpYmlsaXRpZXMpXG4gICAgICAgIHRoaXMuYWxpZ25tZW50cyA9IFtdO1xuXG4gICAgICAgIC8vIEZpbmFsIGFsaWdubWVudCBzY29yZVxuICAgICAgICB0aGlzLnNjb3JlID0gLTE7XG5cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHNjb3JlcyBhbmQgdHJhY2ViYWNrc1xuICAgICAgICB0aGlzLmNvbXB1dGVHcmlkcygpO1xuICAgIH1cblxuICAgIF9jcmVhdGVDbGFzcyhOZWVkbGVtYW5XdW5zY2gsIFt7XG4gICAgICAgIGtleTogXCJnZXRTY29yZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0U2NvcmUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zY29yZTtcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImdldEFsaWdubWVudHNcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldEFsaWdubWVudHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hbGlnbm1lbnRzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFpbiBkeW5hbWljIHByb2dyYW1taW5nIHByb2NlZHVyZVxuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiY29tcHV0ZUdyaWRzXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wdXRlR3JpZHMoKSB7XG4gICAgICAgICAgICAvLyBGaWxsIGluIHRoZSBmaXJzdCByb3dcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAxOyBqIDwgdGhpcy5qTWF4OyBqKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRbMF1bal0gPSB0aGlzLmdyaWRbMF1baiAtIDFdICsgdGhpcy5nYXBfcGVuYWx0eTtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYWNlYmFja0dyaWRbMF1bal0gPSBbZmFsc2UsIGZhbHNlLCB0cnVlXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRmlsbCBpbiB0aGUgZmlyc3QgY29sdW1uXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRoaXMuaU1heDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkW2ldWzBdID0gdGhpcy5ncmlkW2kgLSAxXVswXSArIHRoaXMuZ2FwX3BlbmFsdHk7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFjZWJhY2tHcmlkW2ldWzBdID0gW2ZhbHNlLCB0cnVlLCBmYWxzZV07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEZpbGwgdGhlIHJlc3Qgb2YgdGhlIGdyaWRcbiAgICAgICAgICAgIGZvciAodmFyIF9pMiA9IDE7IF9pMiA8IHRoaXMuaU1heDsgX2kyKyspIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBfajIgPSAxOyBfajIgPCB0aGlzLmpNYXg7IF9qMisrKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIG1heCBzY29yZShzKSBhbW9uZyBbYERpYWdgLCBgVXBgLCBgTGVmdGBdXG4gICAgICAgICAgICAgICAgICAgIHZhciBkaWFnID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXF1ZW5jZTFbX2kyIC0gMV0gPT09IHRoaXMuc2VxdWVuY2UyW19qMiAtIDFdKSBkaWFnID0gdGhpcy5ncmlkW19pMiAtIDFdW19qMiAtIDFdICsgdGhpcy5tYXRjaF9zY29yZTtlbHNlIGRpYWcgPSB0aGlzLmdyaWRbX2kyIC0gMV1bX2oyIC0gMV0gKyB0aGlzLm1pc21hdGNoX3BlbmFsdHk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHVwID0gdGhpcy5ncmlkW19pMiAtIDFdW19qMl0gKyB0aGlzLmdhcF9wZW5hbHR5O1xuICAgICAgICAgICAgICAgICAgICB2YXIgbGVmdCA9IHRoaXMuZ3JpZFtfaTJdW19qMiAtIDFdICsgdGhpcy5nYXBfcGVuYWx0eTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBleGlzdHMgbXVsdGlwbGUgbWF4IHZhbHVlcywgY2FwdHVyZSB0aGVtIGZvciBtdWx0aXBsZSBwYXRoc1xuICAgICAgICAgICAgICAgICAgICB2YXIgbWF4T2YgPSBbZGlhZywgdXAsIGxlZnRdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgaW5kaWNlcyA9IHRoaXMuYXJyYXlBbGxNYXhJbmRleGVzKG1heE9mKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgR3JpZHNcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkW19pMl1bX2oyXSA9IG1heE9mW2luZGljZXNbMF1dO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYWNlYmFja0dyaWRbX2kyXVtfajJdID0gW2luZGljZXMuaW5jbHVkZXMoMCksIGluZGljZXMuaW5jbHVkZXMoMSksIGluZGljZXMuaW5jbHVkZXMoMildO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVXBkYXRlIGFsaWdubWVudCBzY29yZVxuICAgICAgICAgICAgdGhpcy5zY29yZSA9IHRoaXMuZ3JpZFt0aGlzLmlNYXggLSAxXVt0aGlzLmpNYXggLSAxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldHMgYWxsIHBvc3NpYmxlIHZhbGlkIHNlcXVlbmNlIGNvbWJpbmF0aW9uc1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiYWxpZ25tZW50VHJhY2ViYWNrXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBhbGlnbm1lbnRUcmFjZWJhY2soKSB7XG4gICAgICAgICAgICB2YXIgaW5Qcm9jZXNzQWxpZ25tZW50cyA9IFtdO1xuXG4gICAgICAgICAgICBpblByb2Nlc3NBbGlnbm1lbnRzLnB1c2goeyBwb3M6IFt0aGlzLnNlcXVlbmNlMS5sZW5ndGgsIHRoaXMuc2VxdWVuY2UyLmxlbmd0aF0sXG4gICAgICAgICAgICAgICAgc2VxMTogXCJcIixcbiAgICAgICAgICAgICAgICBzZXEyOiBcIlwiXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgd2hpbGUgKGluUHJvY2Vzc0FsaWdubWVudHNbMF0pIHtcbiAgICAgICAgICAgICAgICB2YXIgY3VycmVudCA9IGluUHJvY2Vzc0FsaWdubWVudHNbMF07XG4gICAgICAgICAgICAgICAgdmFyIGRpcmVjdGlvbnMgPSB0aGlzLnRyYWNlYmFja0dyaWRbY3VycmVudC5wb3NbMF1dW2N1cnJlbnQucG9zWzFdXTtcblxuICAgICAgICAgICAgICAgIGlmIChkaXJlY3Rpb25zWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgIGluUHJvY2Vzc0FsaWdubWVudHMucHVzaCh7IHBvczogW2N1cnJlbnQucG9zWzBdIC0gMSwgY3VycmVudC5wb3NbMV0gLSAxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcTE6IHRoaXMuc2VxdWVuY2UxW2N1cnJlbnQucG9zWzBdIC0gMV0gKyBjdXJyZW50LnNlcTEsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXEyOiB0aGlzLnNlcXVlbmNlMltjdXJyZW50LnBvc1sxXSAtIDFdICsgY3VycmVudC5zZXEyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZGlyZWN0aW9uc1sxXSkge1xuICAgICAgICAgICAgICAgICAgICBpblByb2Nlc3NBbGlnbm1lbnRzLnB1c2goeyBwb3M6IFtjdXJyZW50LnBvc1swXSAtIDEsIGN1cnJlbnQucG9zWzFdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcTE6IHRoaXMuc2VxdWVuY2UxW2N1cnJlbnQucG9zWzBdIC0gMV0gKyBjdXJyZW50LnNlcTEsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXEyOiAnLScgKyBjdXJyZW50LnNlcTJcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChkaXJlY3Rpb25zWzJdKSB7XG4gICAgICAgICAgICAgICAgICAgIGluUHJvY2Vzc0FsaWdubWVudHMucHVzaCh7IHBvczogW2N1cnJlbnQucG9zWzBdLCBjdXJyZW50LnBvc1sxXSAtIDFdLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VxMTogJy0nICsgY3VycmVudC5zZXExLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VxMjogdGhpcy5zZXF1ZW5jZTJbY3VycmVudC5wb3NbMV0gLSAxXSArIGN1cnJlbnQuc2VxMlxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudC5wb3NbMF0gPT09IDAgJiYgY3VycmVudC5wb3NbMV0gPT09IDApIHRoaXMuYWxpZ25tZW50cy5wdXNoKHsgc2VxdWVuY2UxOiBjdXJyZW50LnNlcTEsXG4gICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlMjogY3VycmVudC5zZXEyXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBpblByb2Nlc3NBbGlnbm1lbnRzLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFsaWdubWVudHM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIZWxwZXIgRnVuY3Rpb25zXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJnZXRBbGxJbmRleGVzXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRBbGxJbmRleGVzKGFyciwgdmFsKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXhlcyA9IFtdLFxuICAgICAgICAgICAgICAgIGkgPSAtMTtcbiAgICAgICAgICAgIHdoaWxlICgoaSA9IGFyci5pbmRleE9mKHZhbCwgaSArIDEpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpbmRleGVzLnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaW5kZXhlcztcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImFycmF5QWxsTWF4SW5kZXhlc1wiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gYXJyYXlBbGxNYXhJbmRleGVzKGFycmF5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGxJbmRleGVzKGFycmF5LCBNYXRoLm1heC5hcHBseShudWxsLCBhcnJheSkpO1xuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIE5lZWRsZW1hbld1bnNjaDtcbn0oKTtcblxubW9kdWxlLmV4cG9ydHMgPSBOZWVkbGVtYW5XdW5zY2g7XG5cbi8qKiovIH0pLFxuLyogMjYgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxudmFyIGxheW91dEJhc2UgPSBmdW5jdGlvbiBsYXlvdXRCYXNlKCkge1xuICByZXR1cm47XG59O1xuXG5sYXlvdXRCYXNlLkZETGF5b3V0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOCk7XG5sYXlvdXRCYXNlLkZETGF5b3V0Q29uc3RhbnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTtcbmxheW91dEJhc2UuRkRMYXlvdXRFZGdlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOSk7XG5sYXlvdXRCYXNlLkZETGF5b3V0Tm9kZSA9IF9fd2VicGFja19yZXF1aXJlX18oMjApO1xubGF5b3V0QmFzZS5EaW1lbnNpb25EID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMSk7XG5sYXlvdXRCYXNlLkhhc2hNYXAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIyKTtcbmxheW91dEJhc2UuSGFzaFNldCA9IF9fd2VicGFja19yZXF1aXJlX18oMjMpO1xubGF5b3V0QmFzZS5JR2VvbWV0cnkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpO1xubGF5b3V0QmFzZS5JTWF0aCA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7XG5sYXlvdXRCYXNlLkludGVnZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTtcbmxheW91dEJhc2UuUG9pbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTtcbmxheW91dEJhc2UuUG9pbnREID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbmxheW91dEJhc2UuUmFuZG9tU2VlZCA9IF9fd2VicGFja19yZXF1aXJlX18oMTYpO1xubGF5b3V0QmFzZS5SZWN0YW5nbGVEID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7XG5sYXlvdXRCYXNlLlRyYW5zZm9ybSA9IF9fd2VicGFja19yZXF1aXJlX18oMTcpO1xubGF5b3V0QmFzZS5VbmlxdWVJREdlbmVyZXRvciA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpO1xubGF5b3V0QmFzZS5RdWlja3NvcnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KTtcbmxheW91dEJhc2UuTGlua2VkTGlzdCA9IF9fd2VicGFja19yZXF1aXJlX18oMTEpO1xubGF5b3V0QmFzZS5MR3JhcGhPYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xubGF5b3V0QmFzZS5MR3JhcGggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xubGF5b3V0QmFzZS5MRWRnZSA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5sYXlvdXRCYXNlLkxHcmFwaE1hbmFnZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpO1xubGF5b3V0QmFzZS5MTm9kZSA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG5sYXlvdXRCYXNlLkxheW91dCA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpO1xubGF5b3V0QmFzZS5MYXlvdXRDb25zdGFudHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xubGF5b3V0QmFzZS5OZWVkbGVtYW5XdW5zY2ggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI1KTtcblxubW9kdWxlLmV4cG9ydHMgPSBsYXlvdXRCYXNlO1xuXG4vKioqLyB9KSxcbi8qIDI3ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbmZ1bmN0aW9uIEVtaXR0ZXIoKSB7XG4gIHRoaXMubGlzdGVuZXJzID0gW107XG59XG5cbnZhciBwID0gRW1pdHRlci5wcm90b3R5cGU7XG5cbnAuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiAoZXZlbnQsIGNhbGxiYWNrKSB7XG4gIHRoaXMubGlzdGVuZXJzLnB1c2goe1xuICAgIGV2ZW50OiBldmVudCxcbiAgICBjYWxsYmFjazogY2FsbGJhY2tcbiAgfSk7XG59O1xuXG5wLnJlbW92ZUxpc3RlbmVyID0gZnVuY3Rpb24gKGV2ZW50LCBjYWxsYmFjaykge1xuICBmb3IgKHZhciBpID0gdGhpcy5saXN0ZW5lcnMubGVuZ3RoOyBpID49IDA7IGktLSkge1xuICAgIHZhciBsID0gdGhpcy5saXN0ZW5lcnNbaV07XG5cbiAgICBpZiAobC5ldmVudCA9PT0gZXZlbnQgJiYgbC5jYWxsYmFjayA9PT0gY2FsbGJhY2spIHtcbiAgICAgIHRoaXMubGlzdGVuZXJzLnNwbGljZShpLCAxKTtcbiAgICB9XG4gIH1cbn07XG5cbnAuZW1pdCA9IGZ1bmN0aW9uIChldmVudCwgZGF0YSkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGwgPSB0aGlzLmxpc3RlbmVyc1tpXTtcblxuICAgIGlmIChldmVudCA9PT0gbC5ldmVudCkge1xuICAgICAgbC5jYWxsYmFjayhkYXRhKTtcbiAgICB9XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gRW1pdHRlcjtcblxuLyoqKi8gfSlcbi8qKioqKiovIF0pO1xufSk7IiwKICAgICIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJsYXlvdXQtYmFzZVwiKSk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXCJsYXlvdXQtYmFzZVwiXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJjb3NlQmFzZVwiXSA9IGZhY3RvcnkocmVxdWlyZShcImxheW91dC1iYXNlXCIpKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJjb3NlQmFzZVwiXSA9IGZhY3Rvcnkocm9vdFtcImxheW91dEJhc2VcIl0pO1xufSkodGhpcywgZnVuY3Rpb24oX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV8wX18pIHtcbnJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGk6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gaWRlbnRpdHkgZnVuY3Rpb24gZm9yIGNhbGxpbmcgaGFybW9ueSBpbXBvcnRzIHdpdGggdGhlIGNvcnJlY3QgY29udGV4dFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4vKioqKioqLyBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbi8qKioqKiovIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbi8qKioqKiovIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuLyoqKioqKi8gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuLyoqKioqKi8gXHRcdHJldHVybiBnZXR0ZXI7XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA3KTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxubW9kdWxlLmV4cG9ydHMgPSBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFXzBfXztcblxuLyoqKi8gfSksXG4vKiAxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbnZhciBGRExheW91dENvbnN0YW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuRkRMYXlvdXRDb25zdGFudHM7XG5cbmZ1bmN0aW9uIENvU0VDb25zdGFudHMoKSB7fVxuXG4vL0NvU0VDb25zdGFudHMgaW5oZXJpdHMgc3RhdGljIHByb3BzIGluIEZETGF5b3V0Q29uc3RhbnRzXG5mb3IgKHZhciBwcm9wIGluIEZETGF5b3V0Q29uc3RhbnRzKSB7XG4gIENvU0VDb25zdGFudHNbcHJvcF0gPSBGRExheW91dENvbnN0YW50c1twcm9wXTtcbn1cblxuQ29TRUNvbnN0YW50cy5ERUZBVUxUX1VTRV9NVUxUSV9MRVZFTF9TQ0FMSU5HID0gZmFsc2U7XG5Db1NFQ29uc3RhbnRzLkRFRkFVTFRfUkFESUFMX1NFUEFSQVRJT04gPSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0VER0VfTEVOR1RIO1xuQ29TRUNvbnN0YW50cy5ERUZBVUxUX0NPTVBPTkVOVF9TRVBFUkFUSU9OID0gNjA7XG5Db1NFQ29uc3RhbnRzLlRJTEUgPSB0cnVlO1xuQ29TRUNvbnN0YW50cy5USUxJTkdfUEFERElOR19WRVJUSUNBTCA9IDEwO1xuQ29TRUNvbnN0YW50cy5USUxJTkdfUEFERElOR19IT1JJWk9OVEFMID0gMTA7XG5Db1NFQ29uc3RhbnRzLlRSRUVfUkVEVUNUSU9OX09OX0lOQ1JFTUVOVEFMID0gZmFsc2U7IC8vIG1ha2UgdGhpcyB0cnVlIHdoZW4gY29zZSBpcyB1c2VkIGluY3JlbWVudGFsbHkgYXMgYSBwYXJ0IG9mIG90aGVyIG5vbi1pbmNyZW1lbnRhbCBsYXlvdXRcblxubW9kdWxlLmV4cG9ydHMgPSBDb1NFQ29uc3RhbnRzO1xuXG4vKioqLyB9KSxcbi8qIDIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxudmFyIEZETGF5b3V0RWRnZSA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuRkRMYXlvdXRFZGdlO1xuXG5mdW5jdGlvbiBDb1NFRWRnZShzb3VyY2UsIHRhcmdldCwgdkVkZ2UpIHtcbiAgRkRMYXlvdXRFZGdlLmNhbGwodGhpcywgc291cmNlLCB0YXJnZXQsIHZFZGdlKTtcbn1cblxuQ29TRUVkZ2UucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShGRExheW91dEVkZ2UucHJvdG90eXBlKTtcbmZvciAodmFyIHByb3AgaW4gRkRMYXlvdXRFZGdlKSB7XG4gIENvU0VFZGdlW3Byb3BdID0gRkRMYXlvdXRFZGdlW3Byb3BdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IENvU0VFZGdlO1xuXG4vKioqLyB9KSxcbi8qIDMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxudmFyIExHcmFwaCA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuTEdyYXBoO1xuXG5mdW5jdGlvbiBDb1NFR3JhcGgocGFyZW50LCBncmFwaE1nciwgdkdyYXBoKSB7XG4gIExHcmFwaC5jYWxsKHRoaXMsIHBhcmVudCwgZ3JhcGhNZ3IsIHZHcmFwaCk7XG59XG5cbkNvU0VHcmFwaC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKExHcmFwaC5wcm90b3R5cGUpO1xuZm9yICh2YXIgcHJvcCBpbiBMR3JhcGgpIHtcbiAgQ29TRUdyYXBoW3Byb3BdID0gTEdyYXBoW3Byb3BdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IENvU0VHcmFwaDtcblxuLyoqKi8gfSksXG4vKiA0ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbnZhciBMR3JhcGhNYW5hZ2VyID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5MR3JhcGhNYW5hZ2VyO1xuXG5mdW5jdGlvbiBDb1NFR3JhcGhNYW5hZ2VyKGxheW91dCkge1xuICBMR3JhcGhNYW5hZ2VyLmNhbGwodGhpcywgbGF5b3V0KTtcbn1cblxuQ29TRUdyYXBoTWFuYWdlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKExHcmFwaE1hbmFnZXIucHJvdG90eXBlKTtcbmZvciAodmFyIHByb3AgaW4gTEdyYXBoTWFuYWdlcikge1xuICBDb1NFR3JhcGhNYW5hZ2VyW3Byb3BdID0gTEdyYXBoTWFuYWdlcltwcm9wXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb1NFR3JhcGhNYW5hZ2VyO1xuXG4vKioqLyB9KSxcbi8qIDUgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxudmFyIEZETGF5b3V0Tm9kZSA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuRkRMYXlvdXROb2RlO1xudmFyIElNYXRoID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5JTWF0aDtcblxuZnVuY3Rpb24gQ29TRU5vZGUoZ20sIGxvYywgc2l6ZSwgdk5vZGUpIHtcbiAgRkRMYXlvdXROb2RlLmNhbGwodGhpcywgZ20sIGxvYywgc2l6ZSwgdk5vZGUpO1xufVxuXG5Db1NFTm9kZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEZETGF5b3V0Tm9kZS5wcm90b3R5cGUpO1xuZm9yICh2YXIgcHJvcCBpbiBGRExheW91dE5vZGUpIHtcbiAgQ29TRU5vZGVbcHJvcF0gPSBGRExheW91dE5vZGVbcHJvcF07XG59XG5cbkNvU0VOb2RlLnByb3RvdHlwZS5tb3ZlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgbGF5b3V0ID0gdGhpcy5ncmFwaE1hbmFnZXIuZ2V0TGF5b3V0KCk7XG4gIHRoaXMuZGlzcGxhY2VtZW50WCA9IGxheW91dC5jb29saW5nRmFjdG9yICogKHRoaXMuc3ByaW5nRm9yY2VYICsgdGhpcy5yZXB1bHNpb25Gb3JjZVggKyB0aGlzLmdyYXZpdGF0aW9uRm9yY2VYKSAvIHRoaXMubm9PZkNoaWxkcmVuO1xuICB0aGlzLmRpc3BsYWNlbWVudFkgPSBsYXlvdXQuY29vbGluZ0ZhY3RvciAqICh0aGlzLnNwcmluZ0ZvcmNlWSArIHRoaXMucmVwdWxzaW9uRm9yY2VZICsgdGhpcy5ncmF2aXRhdGlvbkZvcmNlWSkgLyB0aGlzLm5vT2ZDaGlsZHJlbjtcblxuICBpZiAoTWF0aC5hYnModGhpcy5kaXNwbGFjZW1lbnRYKSA+IGxheW91dC5jb29saW5nRmFjdG9yICogbGF5b3V0Lm1heE5vZGVEaXNwbGFjZW1lbnQpIHtcbiAgICB0aGlzLmRpc3BsYWNlbWVudFggPSBsYXlvdXQuY29vbGluZ0ZhY3RvciAqIGxheW91dC5tYXhOb2RlRGlzcGxhY2VtZW50ICogSU1hdGguc2lnbih0aGlzLmRpc3BsYWNlbWVudFgpO1xuICB9XG5cbiAgaWYgKE1hdGguYWJzKHRoaXMuZGlzcGxhY2VtZW50WSkgPiBsYXlvdXQuY29vbGluZ0ZhY3RvciAqIGxheW91dC5tYXhOb2RlRGlzcGxhY2VtZW50KSB7XG4gICAgdGhpcy5kaXNwbGFjZW1lbnRZID0gbGF5b3V0LmNvb2xpbmdGYWN0b3IgKiBsYXlvdXQubWF4Tm9kZURpc3BsYWNlbWVudCAqIElNYXRoLnNpZ24odGhpcy5kaXNwbGFjZW1lbnRZKTtcbiAgfVxuXG4gIC8vIGEgc2ltcGxlIG5vZGUsIGp1c3QgbW92ZSBpdFxuICBpZiAodGhpcy5jaGlsZCA9PSBudWxsKSB7XG4gICAgdGhpcy5tb3ZlQnkodGhpcy5kaXNwbGFjZW1lbnRYLCB0aGlzLmRpc3BsYWNlbWVudFkpO1xuICB9XG4gIC8vIGFuIGVtcHR5IGNvbXBvdW5kIG5vZGUsIGFnYWluIGp1c3QgbW92ZSBpdFxuICBlbHNlIGlmICh0aGlzLmNoaWxkLmdldE5vZGVzKCkubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMubW92ZUJ5KHRoaXMuZGlzcGxhY2VtZW50WCwgdGhpcy5kaXNwbGFjZW1lbnRZKTtcbiAgICB9XG4gICAgLy8gbm9uLWVtcHR5IGNvbXBvdW5kIG5vZGUsIHByb3BvZ2F0ZSBtb3ZlbWVudCB0byBjaGlsZHJlbiBhcyB3ZWxsXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMucHJvcG9nYXRlRGlzcGxhY2VtZW50VG9DaGlsZHJlbih0aGlzLmRpc3BsYWNlbWVudFgsIHRoaXMuZGlzcGxhY2VtZW50WSk7XG4gICAgICB9XG5cbiAgbGF5b3V0LnRvdGFsRGlzcGxhY2VtZW50ICs9IE1hdGguYWJzKHRoaXMuZGlzcGxhY2VtZW50WCkgKyBNYXRoLmFicyh0aGlzLmRpc3BsYWNlbWVudFkpO1xuXG4gIHRoaXMuc3ByaW5nRm9yY2VYID0gMDtcbiAgdGhpcy5zcHJpbmdGb3JjZVkgPSAwO1xuICB0aGlzLnJlcHVsc2lvbkZvcmNlWCA9IDA7XG4gIHRoaXMucmVwdWxzaW9uRm9yY2VZID0gMDtcbiAgdGhpcy5ncmF2aXRhdGlvbkZvcmNlWCA9IDA7XG4gIHRoaXMuZ3Jhdml0YXRpb25Gb3JjZVkgPSAwO1xuICB0aGlzLmRpc3BsYWNlbWVudFggPSAwO1xuICB0aGlzLmRpc3BsYWNlbWVudFkgPSAwO1xufTtcblxuQ29TRU5vZGUucHJvdG90eXBlLnByb3BvZ2F0ZURpc3BsYWNlbWVudFRvQ2hpbGRyZW4gPSBmdW5jdGlvbiAoZFgsIGRZKSB7XG4gIHZhciBub2RlcyA9IHRoaXMuZ2V0Q2hpbGQoKS5nZXROb2RlcygpO1xuICB2YXIgbm9kZTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgIG5vZGUgPSBub2Rlc1tpXTtcbiAgICBpZiAobm9kZS5nZXRDaGlsZCgpID09IG51bGwpIHtcbiAgICAgIG5vZGUubW92ZUJ5KGRYLCBkWSk7XG4gICAgICBub2RlLmRpc3BsYWNlbWVudFggKz0gZFg7XG4gICAgICBub2RlLmRpc3BsYWNlbWVudFkgKz0gZFk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUucHJvcG9nYXRlRGlzcGxhY2VtZW50VG9DaGlsZHJlbihkWCwgZFkpO1xuICAgIH1cbiAgfVxufTtcblxuQ29TRU5vZGUucHJvdG90eXBlLnNldFByZWQxID0gZnVuY3Rpb24gKHByZWQxKSB7XG4gIHRoaXMucHJlZDEgPSBwcmVkMTtcbn07XG5cbkNvU0VOb2RlLnByb3RvdHlwZS5nZXRQcmVkMSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHByZWQxO1xufTtcblxuQ29TRU5vZGUucHJvdG90eXBlLmdldFByZWQyID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gcHJlZDI7XG59O1xuXG5Db1NFTm9kZS5wcm90b3R5cGUuc2V0TmV4dCA9IGZ1bmN0aW9uIChuZXh0KSB7XG4gIHRoaXMubmV4dCA9IG5leHQ7XG59O1xuXG5Db1NFTm9kZS5wcm90b3R5cGUuZ2V0TmV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIG5leHQ7XG59O1xuXG5Db1NFTm9kZS5wcm90b3R5cGUuc2V0UHJvY2Vzc2VkID0gZnVuY3Rpb24gKHByb2Nlc3NlZCkge1xuICB0aGlzLnByb2Nlc3NlZCA9IHByb2Nlc3NlZDtcbn07XG5cbkNvU0VOb2RlLnByb3RvdHlwZS5pc1Byb2Nlc3NlZCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHByb2Nlc3NlZDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gQ29TRU5vZGU7XG5cbi8qKiovIH0pLFxuLyogNiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG52YXIgRkRMYXlvdXQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLkZETGF5b3V0O1xudmFyIENvU0VHcmFwaE1hbmFnZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xudmFyIENvU0VHcmFwaCA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG52YXIgQ29TRU5vZGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xudmFyIENvU0VFZGdlID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcbnZhciBDb1NFQ29uc3RhbnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbnZhciBGRExheW91dENvbnN0YW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuRkRMYXlvdXRDb25zdGFudHM7XG52YXIgTGF5b3V0Q29uc3RhbnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5MYXlvdXRDb25zdGFudHM7XG52YXIgUG9pbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLlBvaW50O1xudmFyIFBvaW50RCA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuUG9pbnREO1xudmFyIExheW91dCA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuTGF5b3V0O1xudmFyIEludGVnZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLkludGVnZXI7XG52YXIgSUdlb21ldHJ5ID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5JR2VvbWV0cnk7XG52YXIgTEdyYXBoID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5MR3JhcGg7XG52YXIgVHJhbnNmb3JtID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5UcmFuc2Zvcm07XG5cbmZ1bmN0aW9uIENvU0VMYXlvdXQoKSB7XG4gIEZETGF5b3V0LmNhbGwodGhpcyk7XG5cbiAgdGhpcy50b0JlVGlsZWQgPSB7fTsgLy8gTWVtb3JpemUgaWYgYSBub2RlIGlzIHRvIGJlIHRpbGVkIG9yIGlzIHRpbGVkXG59XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShGRExheW91dC5wcm90b3R5cGUpO1xuXG5mb3IgKHZhciBwcm9wIGluIEZETGF5b3V0KSB7XG4gIENvU0VMYXlvdXRbcHJvcF0gPSBGRExheW91dFtwcm9wXTtcbn1cblxuQ29TRUxheW91dC5wcm90b3R5cGUubmV3R3JhcGhNYW5hZ2VyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZ20gPSBuZXcgQ29TRUdyYXBoTWFuYWdlcih0aGlzKTtcbiAgdGhpcy5ncmFwaE1hbmFnZXIgPSBnbTtcbiAgcmV0dXJuIGdtO1xufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUubmV3R3JhcGggPSBmdW5jdGlvbiAodkdyYXBoKSB7XG4gIHJldHVybiBuZXcgQ29TRUdyYXBoKG51bGwsIHRoaXMuZ3JhcGhNYW5hZ2VyLCB2R3JhcGgpO1xufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUubmV3Tm9kZSA9IGZ1bmN0aW9uICh2Tm9kZSkge1xuICByZXR1cm4gbmV3IENvU0VOb2RlKHRoaXMuZ3JhcGhNYW5hZ2VyLCB2Tm9kZSk7XG59O1xuXG5Db1NFTGF5b3V0LnByb3RvdHlwZS5uZXdFZGdlID0gZnVuY3Rpb24gKHZFZGdlKSB7XG4gIHJldHVybiBuZXcgQ29TRUVkZ2UobnVsbCwgbnVsbCwgdkVkZ2UpO1xufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUuaW5pdFBhcmFtZXRlcnMgPSBmdW5jdGlvbiAoKSB7XG4gIEZETGF5b3V0LnByb3RvdHlwZS5pbml0UGFyYW1ldGVycy5jYWxsKHRoaXMsIGFyZ3VtZW50cyk7XG4gIGlmICghdGhpcy5pc1N1YkxheW91dCkge1xuICAgIGlmIChDb1NFQ29uc3RhbnRzLkRFRkFVTFRfRURHRV9MRU5HVEggPCAxMCkge1xuICAgICAgdGhpcy5pZGVhbEVkZ2VMZW5ndGggPSAxMDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pZGVhbEVkZ2VMZW5ndGggPSBDb1NFQ29uc3RhbnRzLkRFRkFVTFRfRURHRV9MRU5HVEg7XG4gICAgfVxuXG4gICAgdGhpcy51c2VTbWFydElkZWFsRWRnZUxlbmd0aENhbGN1bGF0aW9uID0gQ29TRUNvbnN0YW50cy5ERUZBVUxUX1VTRV9TTUFSVF9JREVBTF9FREdFX0xFTkdUSF9DQUxDVUxBVElPTjtcbiAgICB0aGlzLnNwcmluZ0NvbnN0YW50ID0gRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9TUFJJTkdfU1RSRU5HVEg7XG4gICAgdGhpcy5yZXB1bHNpb25Db25zdGFudCA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfUkVQVUxTSU9OX1NUUkVOR1RIO1xuICAgIHRoaXMuZ3Jhdml0eUNvbnN0YW50ID0gRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9HUkFWSVRZX1NUUkVOR1RIO1xuICAgIHRoaXMuY29tcG91bmRHcmF2aXR5Q29uc3RhbnQgPSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0NPTVBPVU5EX0dSQVZJVFlfU1RSRU5HVEg7XG4gICAgdGhpcy5ncmF2aXR5UmFuZ2VGYWN0b3IgPSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0dSQVZJVFlfUkFOR0VfRkFDVE9SO1xuICAgIHRoaXMuY29tcG91bmRHcmF2aXR5UmFuZ2VGYWN0b3IgPSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0NPTVBPVU5EX0dSQVZJVFlfUkFOR0VfRkFDVE9SO1xuXG4gICAgLy8gdmFyaWFibGVzIGZvciB0cmVlIHJlZHVjdGlvbiBzdXBwb3J0XG4gICAgdGhpcy5wcnVuZWROb2Rlc0FsbCA9IFtdO1xuICAgIHRoaXMuZ3Jvd1RyZWVJdGVyYXRpb25zID0gMDtcbiAgICB0aGlzLmFmdGVyR3Jvd3RoSXRlcmF0aW9ucyA9IDA7XG4gICAgdGhpcy5pc1RyZWVHcm93aW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc0dyb3d0aEZpbmlzaGVkID0gZmFsc2U7XG5cbiAgICAvLyB2YXJpYWJsZXMgZm9yIGNvb2xpbmdcbiAgICB0aGlzLmNvb2xpbmdDeWNsZSA9IDA7XG4gICAgdGhpcy5tYXhDb29saW5nQ3ljbGUgPSB0aGlzLm1heEl0ZXJhdGlvbnMgLyBGRExheW91dENvbnN0YW50cy5DT05WRVJHRU5DRV9DSEVDS19QRVJJT0Q7XG4gICAgdGhpcy5maW5hbFRlbXBlcmF0dXJlID0gRkRMYXlvdXRDb25zdGFudHMuQ09OVkVSR0VOQ0VfQ0hFQ0tfUEVSSU9EIC8gdGhpcy5tYXhJdGVyYXRpb25zO1xuICAgIHRoaXMuY29vbGluZ0FkanVzdGVyID0gMTtcbiAgfVxufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUubGF5b3V0ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgY3JlYXRlQmVuZHNBc05lZWRlZCA9IExheW91dENvbnN0YW50cy5ERUZBVUxUX0NSRUFURV9CRU5EU19BU19ORUVERUQ7XG4gIGlmIChjcmVhdGVCZW5kc0FzTmVlZGVkKSB7XG4gICAgdGhpcy5jcmVhdGVCZW5kcG9pbnRzKCk7XG4gICAgdGhpcy5ncmFwaE1hbmFnZXIucmVzZXRBbGxFZGdlcygpO1xuICB9XG5cbiAgdGhpcy5sZXZlbCA9IDA7XG4gIHJldHVybiB0aGlzLmNsYXNzaWNMYXlvdXQoKTtcbn07XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlLmNsYXNzaWNMYXlvdXQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMubm9kZXNXaXRoR3Jhdml0eSA9IHRoaXMuY2FsY3VsYXRlTm9kZXNUb0FwcGx5R3Jhdml0YXRpb25UbygpO1xuICB0aGlzLmdyYXBoTWFuYWdlci5zZXRBbGxOb2Rlc1RvQXBwbHlHcmF2aXRhdGlvbih0aGlzLm5vZGVzV2l0aEdyYXZpdHkpO1xuICB0aGlzLmNhbGNOb09mQ2hpbGRyZW5Gb3JBbGxOb2RlcygpO1xuICB0aGlzLmdyYXBoTWFuYWdlci5jYWxjTG93ZXN0Q29tbW9uQW5jZXN0b3JzKCk7XG4gIHRoaXMuZ3JhcGhNYW5hZ2VyLmNhbGNJbmNsdXNpb25UcmVlRGVwdGhzKCk7XG4gIHRoaXMuZ3JhcGhNYW5hZ2VyLmdldFJvb3QoKS5jYWxjRXN0aW1hdGVkU2l6ZSgpO1xuICB0aGlzLmNhbGNJZGVhbEVkZ2VMZW5ndGhzKCk7XG5cbiAgaWYgKCF0aGlzLmluY3JlbWVudGFsKSB7XG4gICAgdmFyIGZvcmVzdCA9IHRoaXMuZ2V0RmxhdEZvcmVzdCgpO1xuXG4gICAgLy8gVGhlIGdyYXBoIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGxheW91dCBpcyBmbGF0IGFuZCBhIGZvcmVzdFxuICAgIGlmIChmb3Jlc3QubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5wb3NpdGlvbk5vZGVzUmFkaWFsbHkoZm9yZXN0KTtcbiAgICB9XG4gICAgLy8gVGhlIGdyYXBoIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGxheW91dCBpcyBub3QgZmxhdCBvciBhIGZvcmVzdFxuICAgIGVsc2Uge1xuICAgICAgICAvLyBSZWR1Y2UgdGhlIHRyZWVzIHdoZW4gaW5jcmVtZW50YWwgbW9kZSBpcyBub3QgZW5hYmxlZCBhbmQgZ3JhcGggaXMgbm90IGEgZm9yZXN0IFxuICAgICAgICB0aGlzLnJlZHVjZVRyZWVzKCk7XG4gICAgICAgIC8vIFVwZGF0ZSBub2RlcyB0aGF0IGdyYXZpdHkgd2lsbCBiZSBhcHBsaWVkXG4gICAgICAgIHRoaXMuZ3JhcGhNYW5hZ2VyLnJlc2V0QWxsTm9kZXNUb0FwcGx5R3Jhdml0YXRpb24oKTtcbiAgICAgICAgdmFyIGFsbE5vZGVzID0gbmV3IFNldCh0aGlzLmdldEFsbE5vZGVzKCkpO1xuICAgICAgICB2YXIgaW50ZXJzZWN0aW9uID0gdGhpcy5ub2Rlc1dpdGhHcmF2aXR5LmZpbHRlcihmdW5jdGlvbiAoeCkge1xuICAgICAgICAgIHJldHVybiBhbGxOb2Rlcy5oYXMoeCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmdyYXBoTWFuYWdlci5zZXRBbGxOb2Rlc1RvQXBwbHlHcmF2aXRhdGlvbihpbnRlcnNlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMucG9zaXRpb25Ob2Rlc1JhbmRvbWx5KCk7XG4gICAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKENvU0VDb25zdGFudHMuVFJFRV9SRURVQ1RJT05fT05fSU5DUkVNRU5UQUwpIHtcbiAgICAgIC8vIFJlZHVjZSB0aGUgdHJlZXMgaW4gaW5jcmVtZW50YWwgbW9kZSBpZiBvbmx5IHRoaXMgY29uc3RhbnQgaXMgc2V0IHRvIHRydWUgXG4gICAgICB0aGlzLnJlZHVjZVRyZWVzKCk7XG4gICAgICAvLyBVcGRhdGUgbm9kZXMgdGhhdCBncmF2aXR5IHdpbGwgYmUgYXBwbGllZFxuICAgICAgdGhpcy5ncmFwaE1hbmFnZXIucmVzZXRBbGxOb2Rlc1RvQXBwbHlHcmF2aXRhdGlvbigpO1xuICAgICAgdmFyIGFsbE5vZGVzID0gbmV3IFNldCh0aGlzLmdldEFsbE5vZGVzKCkpO1xuICAgICAgdmFyIGludGVyc2VjdGlvbiA9IHRoaXMubm9kZXNXaXRoR3Jhdml0eS5maWx0ZXIoZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgcmV0dXJuIGFsbE5vZGVzLmhhcyh4KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5ncmFwaE1hbmFnZXIuc2V0QWxsTm9kZXNUb0FwcGx5R3Jhdml0YXRpb24oaW50ZXJzZWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICB0aGlzLmluaXRTcHJpbmdFbWJlZGRlcigpO1xuICB0aGlzLnJ1blNwcmluZ0VtYmVkZGVyKCk7XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5Db1NFTGF5b3V0LnByb3RvdHlwZS50aWNrID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLnRvdGFsSXRlcmF0aW9ucysrO1xuXG4gIGlmICh0aGlzLnRvdGFsSXRlcmF0aW9ucyA9PT0gdGhpcy5tYXhJdGVyYXRpb25zICYmICF0aGlzLmlzVHJlZUdyb3dpbmcgJiYgIXRoaXMuaXNHcm93dGhGaW5pc2hlZCkge1xuICAgIGlmICh0aGlzLnBydW5lZE5vZGVzQWxsLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaXNUcmVlR3Jvd2luZyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0aGlzLnRvdGFsSXRlcmF0aW9ucyAlIEZETGF5b3V0Q29uc3RhbnRzLkNPTlZFUkdFTkNFX0NIRUNLX1BFUklPRCA9PSAwICYmICF0aGlzLmlzVHJlZUdyb3dpbmcgJiYgIXRoaXMuaXNHcm93dGhGaW5pc2hlZCkge1xuICAgIGlmICh0aGlzLmlzQ29udmVyZ2VkKCkpIHtcbiAgICAgIGlmICh0aGlzLnBydW5lZE5vZGVzQWxsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5pc1RyZWVHcm93aW5nID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29vbGluZ0N5Y2xlKys7XG5cbiAgICBpZiAodGhpcy5sYXlvdXRRdWFsaXR5ID09IDApIHtcbiAgICAgIC8vIHF1YWxpdHkgLSBcImRyYWZ0XCJcbiAgICAgIHRoaXMuY29vbGluZ0FkanVzdGVyID0gdGhpcy5jb29saW5nQ3ljbGU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxheW91dFF1YWxpdHkgPT0gMSkge1xuICAgICAgLy8gcXVhbGl0eSAtIFwiZGVmYXVsdFwiXG4gICAgICB0aGlzLmNvb2xpbmdBZGp1c3RlciA9IHRoaXMuY29vbGluZ0N5Y2xlIC8gMztcbiAgICB9XG5cbiAgICAvLyBjb29saW5nIHNjaGVkdWxlIGlzIGJhc2VkIG9uIGh0dHA6Ly93d3cuYnRsdWtlLmNvbS9zaW1hbmYxLmh0bWwgLT4gY29vbGluZyBzY2hlZHVsZSAzXG4gICAgdGhpcy5jb29saW5nRmFjdG9yID0gTWF0aC5tYXgodGhpcy5pbml0aWFsQ29vbGluZ0ZhY3RvciAtIE1hdGgucG93KHRoaXMuY29vbGluZ0N5Y2xlLCBNYXRoLmxvZygxMDAgKiAodGhpcy5pbml0aWFsQ29vbGluZ0ZhY3RvciAtIHRoaXMuZmluYWxUZW1wZXJhdHVyZSkpIC8gTWF0aC5sb2codGhpcy5tYXhDb29saW5nQ3ljbGUpKSAvIDEwMCAqIHRoaXMuY29vbGluZ0FkanVzdGVyLCB0aGlzLmZpbmFsVGVtcGVyYXR1cmUpO1xuICAgIHRoaXMuYW5pbWF0aW9uUGVyaW9kID0gTWF0aC5jZWlsKHRoaXMuaW5pdGlhbEFuaW1hdGlvblBlcmlvZCAqIE1hdGguc3FydCh0aGlzLmNvb2xpbmdGYWN0b3IpKTtcbiAgfVxuICAvLyBPcGVyYXRpb25zIHdoaWxlIHRyZWUgaXMgZ3Jvd2luZyBhZ2FpbiBcbiAgaWYgKHRoaXMuaXNUcmVlR3Jvd2luZykge1xuICAgIGlmICh0aGlzLmdyb3dUcmVlSXRlcmF0aW9ucyAlIDEwID09IDApIHtcbiAgICAgIGlmICh0aGlzLnBydW5lZE5vZGVzQWxsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5ncmFwaE1hbmFnZXIudXBkYXRlQm91bmRzKCk7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCgpO1xuICAgICAgICB0aGlzLmdyb3dUcmVlKHRoaXMucHJ1bmVkTm9kZXNBbGwpO1xuICAgICAgICAvLyBVcGRhdGUgbm9kZXMgdGhhdCBncmF2aXR5IHdpbGwgYmUgYXBwbGllZFxuICAgICAgICB0aGlzLmdyYXBoTWFuYWdlci5yZXNldEFsbE5vZGVzVG9BcHBseUdyYXZpdGF0aW9uKCk7XG4gICAgICAgIHZhciBhbGxOb2RlcyA9IG5ldyBTZXQodGhpcy5nZXRBbGxOb2RlcygpKTtcbiAgICAgICAgdmFyIGludGVyc2VjdGlvbiA9IHRoaXMubm9kZXNXaXRoR3Jhdml0eS5maWx0ZXIoZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICByZXR1cm4gYWxsTm9kZXMuaGFzKHgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ncmFwaE1hbmFnZXIuc2V0QWxsTm9kZXNUb0FwcGx5R3Jhdml0YXRpb24oaW50ZXJzZWN0aW9uKTtcblxuICAgICAgICB0aGlzLmdyYXBoTWFuYWdlci51cGRhdGVCb3VuZHMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVHcmlkKCk7XG4gICAgICAgIHRoaXMuY29vbGluZ0ZhY3RvciA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfQ09PTElOR19GQUNUT1JfSU5DUkVNRU5UQUw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmlzVHJlZUdyb3dpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0dyb3d0aEZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5ncm93VHJlZUl0ZXJhdGlvbnMrKztcbiAgfVxuICAvLyBPcGVyYXRpb25zIGFmdGVyIGdyb3d0aCBpcyBmaW5pc2hlZFxuICBpZiAodGhpcy5pc0dyb3d0aEZpbmlzaGVkKSB7XG4gICAgaWYgKHRoaXMuaXNDb252ZXJnZWQoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmFmdGVyR3Jvd3RoSXRlcmF0aW9ucyAlIDEwID09IDApIHtcbiAgICAgIHRoaXMuZ3JhcGhNYW5hZ2VyLnVwZGF0ZUJvdW5kcygpO1xuICAgICAgdGhpcy51cGRhdGVHcmlkKCk7XG4gICAgfVxuICAgIHRoaXMuY29vbGluZ0ZhY3RvciA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfQ09PTElOR19GQUNUT1JfSU5DUkVNRU5UQUwgKiAoKDEwMCAtIHRoaXMuYWZ0ZXJHcm93dGhJdGVyYXRpb25zKSAvIDEwMCk7XG4gICAgdGhpcy5hZnRlckdyb3d0aEl0ZXJhdGlvbnMrKztcbiAgfVxuXG4gIHZhciBncmlkVXBkYXRlQWxsb3dlZCA9ICF0aGlzLmlzVHJlZUdyb3dpbmcgJiYgIXRoaXMuaXNHcm93dGhGaW5pc2hlZDtcbiAgdmFyIGZvcmNlVG9Ob2RlU3Vycm91bmRpbmdVcGRhdGUgPSB0aGlzLmdyb3dUcmVlSXRlcmF0aW9ucyAlIDEwID09IDEgJiYgdGhpcy5pc1RyZWVHcm93aW5nIHx8IHRoaXMuYWZ0ZXJHcm93dGhJdGVyYXRpb25zICUgMTAgPT0gMSAmJiB0aGlzLmlzR3Jvd3RoRmluaXNoZWQ7XG5cbiAgdGhpcy50b3RhbERpc3BsYWNlbWVudCA9IDA7XG4gIHRoaXMuZ3JhcGhNYW5hZ2VyLnVwZGF0ZUJvdW5kcygpO1xuICB0aGlzLmNhbGNTcHJpbmdGb3JjZXMoKTtcbiAgdGhpcy5jYWxjUmVwdWxzaW9uRm9yY2VzKGdyaWRVcGRhdGVBbGxvd2VkLCBmb3JjZVRvTm9kZVN1cnJvdW5kaW5nVXBkYXRlKTtcbiAgdGhpcy5jYWxjR3Jhdml0YXRpb25hbEZvcmNlcygpO1xuICB0aGlzLm1vdmVOb2RlcygpO1xuICB0aGlzLmFuaW1hdGUoKTtcblxuICByZXR1cm4gZmFsc2U7IC8vIExheW91dCBpcyBub3QgZW5kZWQgeWV0IHJldHVybiBmYWxzZVxufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUuZ2V0UG9zaXRpb25zRGF0YSA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGFsbE5vZGVzID0gdGhpcy5ncmFwaE1hbmFnZXIuZ2V0QWxsTm9kZXMoKTtcbiAgdmFyIHBEYXRhID0ge307XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsTm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcmVjdCA9IGFsbE5vZGVzW2ldLnJlY3Q7XG4gICAgdmFyIGlkID0gYWxsTm9kZXNbaV0uaWQ7XG4gICAgcERhdGFbaWRdID0ge1xuICAgICAgaWQ6IGlkLFxuICAgICAgeDogcmVjdC5nZXRDZW50ZXJYKCksXG4gICAgICB5OiByZWN0LmdldENlbnRlclkoKSxcbiAgICAgIHc6IHJlY3Qud2lkdGgsXG4gICAgICBoOiByZWN0LmhlaWdodFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gcERhdGE7XG59O1xuXG5Db1NFTGF5b3V0LnByb3RvdHlwZS5ydW5TcHJpbmdFbWJlZGRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5pbml0aWFsQW5pbWF0aW9uUGVyaW9kID0gMjU7XG4gIHRoaXMuYW5pbWF0aW9uUGVyaW9kID0gdGhpcy5pbml0aWFsQW5pbWF0aW9uUGVyaW9kO1xuICB2YXIgbGF5b3V0RW5kZWQgPSBmYWxzZTtcblxuICAvLyBJZiBhbWluYXRlIG9wdGlvbiBpcyAnZHVyaW5nJyBzaWduYWwgdGhhdCBsYXlvdXQgaXMgc3VwcG9zZWQgdG8gc3RhcnQgaXRlcmF0aW5nXG4gIGlmIChGRExheW91dENvbnN0YW50cy5BTklNQVRFID09PSAnZHVyaW5nJykge1xuICAgIHRoaXMuZW1pdCgnbGF5b3V0c3RhcnRlZCcpO1xuICB9IGVsc2Uge1xuICAgIC8vIElmIGFtaW5hdGUgb3B0aW9uIGlzICdkdXJpbmcnIHRpY2soKSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBvbiBpbmRleC5qc1xuICAgIHdoaWxlICghbGF5b3V0RW5kZWQpIHtcbiAgICAgIGxheW91dEVuZGVkID0gdGhpcy50aWNrKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ncmFwaE1hbmFnZXIudXBkYXRlQm91bmRzKCk7XG4gIH1cbn07XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlLmNhbGN1bGF0ZU5vZGVzVG9BcHBseUdyYXZpdGF0aW9uVG8gPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBub2RlTGlzdCA9IFtdO1xuICB2YXIgZ3JhcGg7XG5cbiAgdmFyIGdyYXBocyA9IHRoaXMuZ3JhcGhNYW5hZ2VyLmdldEdyYXBocygpO1xuICB2YXIgc2l6ZSA9IGdyYXBocy5sZW5ndGg7XG4gIHZhciBpO1xuICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgZ3JhcGggPSBncmFwaHNbaV07XG5cbiAgICBncmFwaC51cGRhdGVDb25uZWN0ZWQoKTtcblxuICAgIGlmICghZ3JhcGguaXNDb25uZWN0ZWQpIHtcbiAgICAgIG5vZGVMaXN0ID0gbm9kZUxpc3QuY29uY2F0KGdyYXBoLmdldE5vZGVzKCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub2RlTGlzdDtcbn07XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlLmNyZWF0ZUJlbmRwb2ludHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBlZGdlcyA9IFtdO1xuICBlZGdlcyA9IGVkZ2VzLmNvbmNhdCh0aGlzLmdyYXBoTWFuYWdlci5nZXRBbGxFZGdlcygpKTtcbiAgdmFyIHZpc2l0ZWQgPSBuZXcgU2V0KCk7XG4gIHZhciBpO1xuICBmb3IgKGkgPSAwOyBpIDwgZWRnZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZWRnZSA9IGVkZ2VzW2ldO1xuXG4gICAgaWYgKCF2aXNpdGVkLmhhcyhlZGdlKSkge1xuICAgICAgdmFyIHNvdXJjZSA9IGVkZ2UuZ2V0U291cmNlKCk7XG4gICAgICB2YXIgdGFyZ2V0ID0gZWRnZS5nZXRUYXJnZXQoKTtcblxuICAgICAgaWYgKHNvdXJjZSA9PSB0YXJnZXQpIHtcbiAgICAgICAgZWRnZS5nZXRCZW5kcG9pbnRzKCkucHVzaChuZXcgUG9pbnREKCkpO1xuICAgICAgICBlZGdlLmdldEJlbmRwb2ludHMoKS5wdXNoKG5ldyBQb2ludEQoKSk7XG4gICAgICAgIHRoaXMuY3JlYXRlRHVtbXlOb2Rlc0ZvckJlbmRwb2ludHMoZWRnZSk7XG4gICAgICAgIHZpc2l0ZWQuYWRkKGVkZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGVkZ2VMaXN0ID0gW107XG5cbiAgICAgICAgZWRnZUxpc3QgPSBlZGdlTGlzdC5jb25jYXQoc291cmNlLmdldEVkZ2VMaXN0VG9Ob2RlKHRhcmdldCkpO1xuICAgICAgICBlZGdlTGlzdCA9IGVkZ2VMaXN0LmNvbmNhdCh0YXJnZXQuZ2V0RWRnZUxpc3RUb05vZGUoc291cmNlKSk7XG5cbiAgICAgICAgaWYgKCF2aXNpdGVkLmhhcyhlZGdlTGlzdFswXSkpIHtcbiAgICAgICAgICBpZiAoZWRnZUxpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdmFyIGs7XG4gICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgZWRnZUxpc3QubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgICAgdmFyIG11bHRpRWRnZSA9IGVkZ2VMaXN0W2tdO1xuICAgICAgICAgICAgICBtdWx0aUVkZ2UuZ2V0QmVuZHBvaW50cygpLnB1c2gobmV3IFBvaW50RCgpKTtcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVEdW1teU5vZGVzRm9yQmVuZHBvaW50cyhtdWx0aUVkZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBlZGdlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChlZGdlKSB7XG4gICAgICAgICAgICB2aXNpdGVkLmFkZChlZGdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2aXNpdGVkLnNpemUgPT0gZWRnZXMubGVuZ3RoKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbn07XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlLnBvc2l0aW9uTm9kZXNSYWRpYWxseSA9IGZ1bmN0aW9uIChmb3Jlc3QpIHtcbiAgLy8gV2UgdGlsZSB0aGUgdHJlZXMgdG8gYSBncmlkIHJvdyBieSByb3c7IGZpcnN0IHRyZWUgc3RhcnRzIGF0ICgwLDApXG4gIHZhciBjdXJyZW50U3RhcnRpbmdQb2ludCA9IG5ldyBQb2ludCgwLCAwKTtcbiAgdmFyIG51bWJlck9mQ29sdW1ucyA9IE1hdGguY2VpbChNYXRoLnNxcnQoZm9yZXN0Lmxlbmd0aCkpO1xuICB2YXIgaGVpZ2h0ID0gMDtcbiAgdmFyIGN1cnJlbnRZID0gMDtcbiAgdmFyIGN1cnJlbnRYID0gMDtcbiAgdmFyIHBvaW50ID0gbmV3IFBvaW50RCgwLCAwKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGZvcmVzdC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChpICUgbnVtYmVyT2ZDb2x1bW5zID09IDApIHtcbiAgICAgIC8vIFN0YXJ0IG9mIGEgbmV3IHJvdywgbWFrZSB0aGUgeCBjb29yZGluYXRlIDAsIGluY3JlbWVudCB0aGVcbiAgICAgIC8vIHkgY29vcmRpbmF0ZSB3aXRoIHRoZSBtYXggaGVpZ2h0IG9mIHRoZSBwcmV2aW91cyByb3dcbiAgICAgIGN1cnJlbnRYID0gMDtcbiAgICAgIGN1cnJlbnRZID0gaGVpZ2h0O1xuXG4gICAgICBpZiAoaSAhPSAwKSB7XG4gICAgICAgIGN1cnJlbnRZICs9IENvU0VDb25zdGFudHMuREVGQVVMVF9DT01QT05FTlRfU0VQRVJBVElPTjtcbiAgICAgIH1cblxuICAgICAgaGVpZ2h0ID0gMDtcbiAgICB9XG5cbiAgICB2YXIgdHJlZSA9IGZvcmVzdFtpXTtcblxuICAgIC8vIEZpbmQgdGhlIGNlbnRlciBvZiB0aGUgdHJlZVxuICAgIHZhciBjZW50ZXJOb2RlID0gTGF5b3V0LmZpbmRDZW50ZXJPZlRyZWUodHJlZSk7XG5cbiAgICAvLyBTZXQgdGhlIHN0YXJpbmcgcG9pbnQgb2YgdGhlIG5leHQgdHJlZVxuICAgIGN1cnJlbnRTdGFydGluZ1BvaW50LnggPSBjdXJyZW50WDtcbiAgICBjdXJyZW50U3RhcnRpbmdQb2ludC55ID0gY3VycmVudFk7XG5cbiAgICAvLyBEbyBhIHJhZGlhbCBsYXlvdXQgc3RhcnRpbmcgd2l0aCB0aGUgY2VudGVyXG4gICAgcG9pbnQgPSBDb1NFTGF5b3V0LnJhZGlhbExheW91dCh0cmVlLCBjZW50ZXJOb2RlLCBjdXJyZW50U3RhcnRpbmdQb2ludCk7XG5cbiAgICBpZiAocG9pbnQueSA+IGhlaWdodCkge1xuICAgICAgaGVpZ2h0ID0gTWF0aC5mbG9vcihwb2ludC55KTtcbiAgICB9XG5cbiAgICBjdXJyZW50WCA9IE1hdGguZmxvb3IocG9pbnQueCArIENvU0VDb25zdGFudHMuREVGQVVMVF9DT01QT05FTlRfU0VQRVJBVElPTik7XG4gIH1cblxuICB0aGlzLnRyYW5zZm9ybShuZXcgUG9pbnREKExheW91dENvbnN0YW50cy5XT1JMRF9DRU5URVJfWCAtIHBvaW50LnggLyAyLCBMYXlvdXRDb25zdGFudHMuV09STERfQ0VOVEVSX1kgLSBwb2ludC55IC8gMikpO1xufTtcblxuQ29TRUxheW91dC5yYWRpYWxMYXlvdXQgPSBmdW5jdGlvbiAodHJlZSwgY2VudGVyTm9kZSwgc3RhcnRpbmdQb2ludCkge1xuICB2YXIgcmFkaWFsU2VwID0gTWF0aC5tYXgodGhpcy5tYXhEaWFnb25hbEluVHJlZSh0cmVlKSwgQ29TRUNvbnN0YW50cy5ERUZBVUxUX1JBRElBTF9TRVBBUkFUSU9OKTtcbiAgQ29TRUxheW91dC5icmFuY2hSYWRpYWxMYXlvdXQoY2VudGVyTm9kZSwgbnVsbCwgMCwgMzU5LCAwLCByYWRpYWxTZXApO1xuICB2YXIgYm91bmRzID0gTEdyYXBoLmNhbGN1bGF0ZUJvdW5kcyh0cmVlKTtcblxuICB2YXIgdHJhbnNmb3JtID0gbmV3IFRyYW5zZm9ybSgpO1xuICB0cmFuc2Zvcm0uc2V0RGV2aWNlT3JnWChib3VuZHMuZ2V0TWluWCgpKTtcbiAgdHJhbnNmb3JtLnNldERldmljZU9yZ1koYm91bmRzLmdldE1pblkoKSk7XG4gIHRyYW5zZm9ybS5zZXRXb3JsZE9yZ1goc3RhcnRpbmdQb2ludC54KTtcbiAgdHJhbnNmb3JtLnNldFdvcmxkT3JnWShzdGFydGluZ1BvaW50LnkpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdHJlZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBub2RlID0gdHJlZVtpXTtcbiAgICBub2RlLnRyYW5zZm9ybSh0cmFuc2Zvcm0pO1xuICB9XG5cbiAgdmFyIGJvdHRvbVJpZ2h0ID0gbmV3IFBvaW50RChib3VuZHMuZ2V0TWF4WCgpLCBib3VuZHMuZ2V0TWF4WSgpKTtcblxuICByZXR1cm4gdHJhbnNmb3JtLmludmVyc2VUcmFuc2Zvcm1Qb2ludChib3R0b21SaWdodCk7XG59O1xuXG5Db1NFTGF5b3V0LmJyYW5jaFJhZGlhbExheW91dCA9IGZ1bmN0aW9uIChub2RlLCBwYXJlbnRPZk5vZGUsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlLCBkaXN0YW5jZSwgcmFkaWFsU2VwYXJhdGlvbikge1xuICAvLyBGaXJzdCwgcG9zaXRpb24gdGhpcyBub2RlIGJ5IGZpbmRpbmcgaXRzIGFuZ2xlLlxuICB2YXIgaGFsZkludGVydmFsID0gKGVuZEFuZ2xlIC0gc3RhcnRBbmdsZSArIDEpIC8gMjtcblxuICBpZiAoaGFsZkludGVydmFsIDwgMCkge1xuICAgIGhhbGZJbnRlcnZhbCArPSAxODA7XG4gIH1cblxuICB2YXIgbm9kZUFuZ2xlID0gKGhhbGZJbnRlcnZhbCArIHN0YXJ0QW5nbGUpICUgMzYwO1xuICB2YXIgdGV0YSA9IG5vZGVBbmdsZSAqIElHZW9tZXRyeS5UV09fUEkgLyAzNjA7XG5cbiAgLy8gTWFrZSBwb2xhciB0byBqYXZhIGNvcmRpbmF0ZSBjb252ZXJzaW9uLlxuICB2YXIgY29zX3RldGEgPSBNYXRoLmNvcyh0ZXRhKTtcbiAgdmFyIHhfID0gZGlzdGFuY2UgKiBNYXRoLmNvcyh0ZXRhKTtcbiAgdmFyIHlfID0gZGlzdGFuY2UgKiBNYXRoLnNpbih0ZXRhKTtcblxuICBub2RlLnNldENlbnRlcih4XywgeV8pO1xuXG4gIC8vIFRyYXZlcnNlIGFsbCBuZWlnaGJvcnMgb2YgdGhpcyBub2RlIGFuZCByZWN1cnNpdmVseSBjYWxsIHRoaXNcbiAgLy8gZnVuY3Rpb24uXG4gIHZhciBuZWlnaGJvckVkZ2VzID0gW107XG4gIG5laWdoYm9yRWRnZXMgPSBuZWlnaGJvckVkZ2VzLmNvbmNhdChub2RlLmdldEVkZ2VzKCkpO1xuICB2YXIgY2hpbGRDb3VudCA9IG5laWdoYm9yRWRnZXMubGVuZ3RoO1xuXG4gIGlmIChwYXJlbnRPZk5vZGUgIT0gbnVsbCkge1xuICAgIGNoaWxkQ291bnQtLTtcbiAgfVxuXG4gIHZhciBicmFuY2hDb3VudCA9IDA7XG5cbiAgdmFyIGluY0VkZ2VzQ291bnQgPSBuZWlnaGJvckVkZ2VzLmxlbmd0aDtcbiAgdmFyIHN0YXJ0SW5kZXg7XG5cbiAgdmFyIGVkZ2VzID0gbm9kZS5nZXRFZGdlc0JldHdlZW4ocGFyZW50T2ZOb2RlKTtcblxuICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgZWRnZXMsIHBydW5lIHRoZW0gdW50aWwgdGhlcmUgcmVtYWlucyBvbmx5IG9uZVxuICAvLyBlZGdlLlxuICB3aGlsZSAoZWRnZXMubGVuZ3RoID4gMSkge1xuICAgIC8vbmVpZ2hib3JFZGdlcy5yZW1vdmUoZWRnZXMucmVtb3ZlKDApKTtcbiAgICB2YXIgdGVtcCA9IGVkZ2VzWzBdO1xuICAgIGVkZ2VzLnNwbGljZSgwLCAxKTtcbiAgICB2YXIgaW5kZXggPSBuZWlnaGJvckVkZ2VzLmluZGV4T2YodGVtcCk7XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIG5laWdoYm9yRWRnZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgaW5jRWRnZXNDb3VudC0tO1xuICAgIGNoaWxkQ291bnQtLTtcbiAgfVxuXG4gIGlmIChwYXJlbnRPZk5vZGUgIT0gbnVsbCkge1xuICAgIC8vYXNzZXJ0IGVkZ2VzLmxlbmd0aCA9PSAxO1xuICAgIHN0YXJ0SW5kZXggPSAobmVpZ2hib3JFZGdlcy5pbmRleE9mKGVkZ2VzWzBdKSArIDEpICUgaW5jRWRnZXNDb3VudDtcbiAgfSBlbHNlIHtcbiAgICBzdGFydEluZGV4ID0gMDtcbiAgfVxuXG4gIHZhciBzdGVwQW5nbGUgPSBNYXRoLmFicyhlbmRBbmdsZSAtIHN0YXJ0QW5nbGUpIC8gY2hpbGRDb3VudDtcblxuICBmb3IgKHZhciBpID0gc3RhcnRJbmRleDsgYnJhbmNoQ291bnQgIT0gY2hpbGRDb3VudDsgaSA9ICsraSAlIGluY0VkZ2VzQ291bnQpIHtcbiAgICB2YXIgY3VycmVudE5laWdoYm9yID0gbmVpZ2hib3JFZGdlc1tpXS5nZXRPdGhlckVuZChub2RlKTtcblxuICAgIC8vIERvbid0IGJhY2sgdHJhdmVyc2UgdG8gcm9vdCBub2RlIGluIGN1cnJlbnQgdHJlZS5cbiAgICBpZiAoY3VycmVudE5laWdoYm9yID09IHBhcmVudE9mTm9kZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdmFyIGNoaWxkU3RhcnRBbmdsZSA9IChzdGFydEFuZ2xlICsgYnJhbmNoQ291bnQgKiBzdGVwQW5nbGUpICUgMzYwO1xuICAgIHZhciBjaGlsZEVuZEFuZ2xlID0gKGNoaWxkU3RhcnRBbmdsZSArIHN0ZXBBbmdsZSkgJSAzNjA7XG5cbiAgICBDb1NFTGF5b3V0LmJyYW5jaFJhZGlhbExheW91dChjdXJyZW50TmVpZ2hib3IsIG5vZGUsIGNoaWxkU3RhcnRBbmdsZSwgY2hpbGRFbmRBbmdsZSwgZGlzdGFuY2UgKyByYWRpYWxTZXBhcmF0aW9uLCByYWRpYWxTZXBhcmF0aW9uKTtcblxuICAgIGJyYW5jaENvdW50Kys7XG4gIH1cbn07XG5cbkNvU0VMYXlvdXQubWF4RGlhZ29uYWxJblRyZWUgPSBmdW5jdGlvbiAodHJlZSkge1xuICB2YXIgbWF4RGlhZ29uYWwgPSBJbnRlZ2VyLk1JTl9WQUxVRTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRyZWUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbm9kZSA9IHRyZWVbaV07XG4gICAgdmFyIGRpYWdvbmFsID0gbm9kZS5nZXREaWFnb25hbCgpO1xuXG4gICAgaWYgKGRpYWdvbmFsID4gbWF4RGlhZ29uYWwpIHtcbiAgICAgIG1heERpYWdvbmFsID0gZGlhZ29uYWw7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1heERpYWdvbmFsO1xufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUuY2FsY1JlcHVsc2lvblJhbmdlID0gZnVuY3Rpb24gKCkge1xuICAvLyBmb3JtdWxhIGlzIDIgeCAobGV2ZWwgKyAxKSB4IGlkZWFsRWRnZUxlbmd0aFxuICByZXR1cm4gMiAqICh0aGlzLmxldmVsICsgMSkgKiB0aGlzLmlkZWFsRWRnZUxlbmd0aDtcbn07XG5cbi8vIFRpbGluZyBtZXRob2RzXG5cbi8vIEdyb3VwIHplcm8gZGVncmVlIG1lbWJlcnMgd2hvc2UgcGFyZW50cyBhcmUgbm90IHRvIGJlIHRpbGVkLCBjcmVhdGUgZHVtbXkgcGFyZW50cyB3aGVyZSBuZWVkZWQgYW5kIGZpbGwgbWVtYmVyR3JvdXBzIGJ5IHRoZWlyIGR1bW1wIHBhcmVudCBpZCdzXG5Db1NFTGF5b3V0LnByb3RvdHlwZS5ncm91cFplcm9EZWdyZWVNZW1iZXJzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIC8vIGFycmF5IG9mIFtwYXJlbnRfaWQgeCBvbmVEZWdyZWVOb2RlX2lkXVxuICB2YXIgdGVtcE1lbWJlckdyb3VwcyA9IHt9OyAvLyBBIHRlbXBvcmFyeSBtYXAgb2YgcGFyZW50IG5vZGUgYW5kIGl0cyB6ZXJvIGRlZ3JlZSBtZW1iZXJzXG4gIHRoaXMubWVtYmVyR3JvdXBzID0ge307IC8vIEEgbWFwIG9mIGR1bW15IHBhcmVudCBub2RlIGFuZCBpdHMgemVybyBkZWdyZWUgbWVtYmVycyB3aG9zZSBwYXJlbnRzIGFyZSBub3QgdG8gYmUgdGlsZWRcbiAgdGhpcy5pZFRvRHVtbXlOb2RlID0ge307IC8vIEEgbWFwIG9mIGlkIHRvIGR1bW15IG5vZGUgXG5cbiAgdmFyIHplcm9EZWdyZWUgPSBbXTsgLy8gTGlzdCBvZiB6ZXJvIGRlZ3JlZSBub2RlcyB3aG9zZSBwYXJlbnRzIGFyZSBub3QgdG8gYmUgdGlsZWRcbiAgdmFyIGFsbE5vZGVzID0gdGhpcy5ncmFwaE1hbmFnZXIuZ2V0QWxsTm9kZXMoKTtcblxuICAvLyBGaWxsIHplcm8gZGVncmVlIGxpc3RcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxOb2Rlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBub2RlID0gYWxsTm9kZXNbaV07XG4gICAgdmFyIHBhcmVudCA9IG5vZGUuZ2V0UGFyZW50KCk7XG4gICAgLy8gSWYgYSBub2RlIGhhcyB6ZXJvIGRlZ3JlZSBhbmQgaXRzIHBhcmVudCBpcyBub3QgdG8gYmUgdGlsZWQgaWYgZXhpc3RzIGFkZCB0aGF0IG5vZGUgdG8gemVyb0RlZ3JlcyBsaXN0XG4gICAgaWYgKHRoaXMuZ2V0Tm9kZURlZ3JlZVdpdGhDaGlsZHJlbihub2RlKSA9PT0gMCAmJiAocGFyZW50LmlkID09IHVuZGVmaW5lZCB8fCAhdGhpcy5nZXRUb0JlVGlsZWQocGFyZW50KSkpIHtcbiAgICAgIHplcm9EZWdyZWUucHVzaChub2RlKTtcbiAgICB9XG4gIH1cblxuICAvLyBDcmVhdGUgYSBtYXAgb2YgcGFyZW50IG5vZGUgYW5kIGl0cyB6ZXJvIGRlZ3JlZSBtZW1iZXJzXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgemVyb0RlZ3JlZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBub2RlID0gemVyb0RlZ3JlZVtpXTsgLy8gWmVybyBkZWdyZWUgbm9kZSBpdHNlbGZcbiAgICB2YXIgcF9pZCA9IG5vZGUuZ2V0UGFyZW50KCkuaWQ7IC8vIFBhcmVudCBpZFxuXG4gICAgaWYgKHR5cGVvZiB0ZW1wTWVtYmVyR3JvdXBzW3BfaWRdID09PSBcInVuZGVmaW5lZFwiKSB0ZW1wTWVtYmVyR3JvdXBzW3BfaWRdID0gW107XG5cbiAgICB0ZW1wTWVtYmVyR3JvdXBzW3BfaWRdID0gdGVtcE1lbWJlckdyb3Vwc1twX2lkXS5jb25jYXQobm9kZSk7IC8vIFB1c2ggbm9kZSB0byB0aGUgbGlzdCBiZWxvbmdzIHRvIGl0cyBwYXJlbnQgaW4gdGVtcE1lbWJlckdyb3Vwc1xuICB9XG5cbiAgLy8gSWYgdGhlcmUgYXJlIGF0IGxlYXN0IHR3byBub2RlcyBhdCBhIGxldmVsLCBjcmVhdGUgYSBkdW1teSBjb21wb3VuZCBmb3IgdGhlbVxuICBPYmplY3Qua2V5cyh0ZW1wTWVtYmVyR3JvdXBzKS5mb3JFYWNoKGZ1bmN0aW9uIChwX2lkKSB7XG4gICAgaWYgKHRlbXBNZW1iZXJHcm91cHNbcF9pZF0ubGVuZ3RoID4gMSkge1xuICAgICAgdmFyIGR1bW15Q29tcG91bmRJZCA9IFwiRHVtbXlDb21wb3VuZF9cIiArIHBfaWQ7IC8vIFRoZSBpZCBvZiBkdW1teSBjb21wb3VuZCB3aGljaCB3aWxsIGJlIGNyZWF0ZWQgc29vblxuICAgICAgc2VsZi5tZW1iZXJHcm91cHNbZHVtbXlDb21wb3VuZElkXSA9IHRlbXBNZW1iZXJHcm91cHNbcF9pZF07IC8vIEFkZCBkdW1teSBjb21wb3VuZCB0byBtZW1iZXJHcm91cHNcblxuICAgICAgdmFyIHBhcmVudCA9IHRlbXBNZW1iZXJHcm91cHNbcF9pZF1bMF0uZ2V0UGFyZW50KCk7IC8vIFRoZSBwYXJlbnQgb2YgemVybyBkZWdyZWUgbm9kZXMgd2lsbCBiZSB0aGUgcGFyZW50IG9mIG5ldyBkdW1teSBjb21wb3VuZFxuXG4gICAgICAvLyBDcmVhdGUgYSBkdW1teSBjb21wb3VuZCB3aXRoIGNhbGN1bGF0ZWQgaWRcbiAgICAgIHZhciBkdW1teUNvbXBvdW5kID0gbmV3IENvU0VOb2RlKHNlbGYuZ3JhcGhNYW5hZ2VyKTtcbiAgICAgIGR1bW15Q29tcG91bmQuaWQgPSBkdW1teUNvbXBvdW5kSWQ7XG4gICAgICBkdW1teUNvbXBvdW5kLnBhZGRpbmdMZWZ0ID0gcGFyZW50LnBhZGRpbmdMZWZ0IHx8IDA7XG4gICAgICBkdW1teUNvbXBvdW5kLnBhZGRpbmdSaWdodCA9IHBhcmVudC5wYWRkaW5nUmlnaHQgfHwgMDtcbiAgICAgIGR1bW15Q29tcG91bmQucGFkZGluZ0JvdHRvbSA9IHBhcmVudC5wYWRkaW5nQm90dG9tIHx8IDA7XG4gICAgICBkdW1teUNvbXBvdW5kLnBhZGRpbmdUb3AgPSBwYXJlbnQucGFkZGluZ1RvcCB8fCAwO1xuXG4gICAgICBzZWxmLmlkVG9EdW1teU5vZGVbZHVtbXlDb21wb3VuZElkXSA9IGR1bW15Q29tcG91bmQ7XG5cbiAgICAgIHZhciBkdW1teVBhcmVudEdyYXBoID0gc2VsZi5nZXRHcmFwaE1hbmFnZXIoKS5hZGQoc2VsZi5uZXdHcmFwaCgpLCBkdW1teUNvbXBvdW5kKTtcbiAgICAgIHZhciBwYXJlbnRHcmFwaCA9IHBhcmVudC5nZXRDaGlsZCgpO1xuXG4gICAgICAvLyBBZGQgZHVtbXkgY29tcG91bmQgdG8gcGFyZW50IHRoZSBncmFwaFxuICAgICAgcGFyZW50R3JhcGguYWRkKGR1bW15Q29tcG91bmQpO1xuXG4gICAgICAvLyBGb3IgZWFjaCB6ZXJvIGRlZ3JlZSBub2RlIGluIHRoaXMgbGV2ZWwgcmVtb3ZlIGl0IGZyb20gaXRzIHBhcmVudCBncmFwaCBhbmQgYWRkIGl0IHRvIHRoZSBncmFwaCBvZiBkdW1teSBwYXJlbnRcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVtcE1lbWJlckdyb3Vwc1twX2lkXS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgbm9kZSA9IHRlbXBNZW1iZXJHcm91cHNbcF9pZF1baV07XG5cbiAgICAgICAgcGFyZW50R3JhcGgucmVtb3ZlKG5vZGUpO1xuICAgICAgICBkdW1teVBhcmVudEdyYXBoLmFkZChub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUuY2xlYXJDb21wb3VuZHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBjaGlsZEdyYXBoTWFwID0ge307XG4gIHZhciBpZFRvTm9kZSA9IHt9O1xuXG4gIC8vIEdldCBjb21wb3VuZCBvcmRlcmluZyBieSBmaW5kaW5nIHRoZSBpbm5lciBvbmUgZmlyc3RcbiAgdGhpcy5wZXJmb3JtREZTT25Db21wb3VuZHMoKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY29tcG91bmRPcmRlci5sZW5ndGg7IGkrKykge1xuXG4gICAgaWRUb05vZGVbdGhpcy5jb21wb3VuZE9yZGVyW2ldLmlkXSA9IHRoaXMuY29tcG91bmRPcmRlcltpXTtcbiAgICBjaGlsZEdyYXBoTWFwW3RoaXMuY29tcG91bmRPcmRlcltpXS5pZF0gPSBbXS5jb25jYXQodGhpcy5jb21wb3VuZE9yZGVyW2ldLmdldENoaWxkKCkuZ2V0Tm9kZXMoKSk7XG5cbiAgICAvLyBSZW1vdmUgY2hpbGRyZW4gb2YgY29tcG91bmRzXG4gICAgdGhpcy5ncmFwaE1hbmFnZXIucmVtb3ZlKHRoaXMuY29tcG91bmRPcmRlcltpXS5nZXRDaGlsZCgpKTtcbiAgICB0aGlzLmNvbXBvdW5kT3JkZXJbaV0uY2hpbGQgPSBudWxsO1xuICB9XG5cbiAgdGhpcy5ncmFwaE1hbmFnZXIucmVzZXRBbGxOb2RlcygpO1xuXG4gIC8vIFRpbGUgdGhlIHJlbW92ZWQgY2hpbGRyZW5cbiAgdGhpcy50aWxlQ29tcG91bmRNZW1iZXJzKGNoaWxkR3JhcGhNYXAsIGlkVG9Ob2RlKTtcbn07XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlLmNsZWFyWmVyb0RlZ3JlZU1lbWJlcnMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHRpbGVkWmVyb0RlZ3JlZVBhY2sgPSB0aGlzLnRpbGVkWmVyb0RlZ3JlZVBhY2sgPSBbXTtcblxuICBPYmplY3Qua2V5cyh0aGlzLm1lbWJlckdyb3VwcykuZm9yRWFjaChmdW5jdGlvbiAoaWQpIHtcbiAgICB2YXIgY29tcG91bmROb2RlID0gc2VsZi5pZFRvRHVtbXlOb2RlW2lkXTsgLy8gR2V0IHRoZSBkdW1teSBjb21wb3VuZFxuXG4gICAgdGlsZWRaZXJvRGVncmVlUGFja1tpZF0gPSBzZWxmLnRpbGVOb2RlcyhzZWxmLm1lbWJlckdyb3Vwc1tpZF0sIGNvbXBvdW5kTm9kZS5wYWRkaW5nTGVmdCArIGNvbXBvdW5kTm9kZS5wYWRkaW5nUmlnaHQpO1xuXG4gICAgLy8gU2V0IHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBkdW1teSBjb21wb3VuZCBhcyBjYWxjdWxhdGVkXG4gICAgY29tcG91bmROb2RlLnJlY3Qud2lkdGggPSB0aWxlZFplcm9EZWdyZWVQYWNrW2lkXS53aWR0aDtcbiAgICBjb21wb3VuZE5vZGUucmVjdC5oZWlnaHQgPSB0aWxlZFplcm9EZWdyZWVQYWNrW2lkXS5oZWlnaHQ7XG4gIH0pO1xufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUucmVwb3B1bGF0ZUNvbXBvdW5kcyA9IGZ1bmN0aW9uICgpIHtcbiAgZm9yICh2YXIgaSA9IHRoaXMuY29tcG91bmRPcmRlci5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIHZhciBsQ29tcG91bmROb2RlID0gdGhpcy5jb21wb3VuZE9yZGVyW2ldO1xuICAgIHZhciBpZCA9IGxDb21wb3VuZE5vZGUuaWQ7XG4gICAgdmFyIGhvcml6b250YWxNYXJnaW4gPSBsQ29tcG91bmROb2RlLnBhZGRpbmdMZWZ0O1xuICAgIHZhciB2ZXJ0aWNhbE1hcmdpbiA9IGxDb21wb3VuZE5vZGUucGFkZGluZ1RvcDtcblxuICAgIHRoaXMuYWRqdXN0TG9jYXRpb25zKHRoaXMudGlsZWRNZW1iZXJQYWNrW2lkXSwgbENvbXBvdW5kTm9kZS5yZWN0LngsIGxDb21wb3VuZE5vZGUucmVjdC55LCBob3Jpem9udGFsTWFyZ2luLCB2ZXJ0aWNhbE1hcmdpbik7XG4gIH1cbn07XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlLnJlcG9wdWxhdGVaZXJvRGVncmVlTWVtYmVycyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgdGlsZWRQYWNrID0gdGhpcy50aWxlZFplcm9EZWdyZWVQYWNrO1xuXG4gIE9iamVjdC5rZXlzKHRpbGVkUGFjaykuZm9yRWFjaChmdW5jdGlvbiAoaWQpIHtcbiAgICB2YXIgY29tcG91bmROb2RlID0gc2VsZi5pZFRvRHVtbXlOb2RlW2lkXTsgLy8gR2V0IHRoZSBkdW1teSBjb21wb3VuZCBieSBpdHMgaWRcbiAgICB2YXIgaG9yaXpvbnRhbE1hcmdpbiA9IGNvbXBvdW5kTm9kZS5wYWRkaW5nTGVmdDtcbiAgICB2YXIgdmVydGljYWxNYXJnaW4gPSBjb21wb3VuZE5vZGUucGFkZGluZ1RvcDtcblxuICAgIC8vIEFkanVzdCB0aGUgcG9zaXRpb25zIG9mIG5vZGVzIHdydCBpdHMgY29tcG91bmRcbiAgICBzZWxmLmFkanVzdExvY2F0aW9ucyh0aWxlZFBhY2tbaWRdLCBjb21wb3VuZE5vZGUucmVjdC54LCBjb21wb3VuZE5vZGUucmVjdC55LCBob3Jpem9udGFsTWFyZ2luLCB2ZXJ0aWNhbE1hcmdpbik7XG4gIH0pO1xufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUuZ2V0VG9CZVRpbGVkID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgdmFyIGlkID0gbm9kZS5pZDtcbiAgLy9maXJzdGx5IGNoZWNrIHRoZSBwcmV2aW91cyByZXN1bHRzXG4gIGlmICh0aGlzLnRvQmVUaWxlZFtpZF0gIT0gbnVsbCkge1xuICAgIHJldHVybiB0aGlzLnRvQmVUaWxlZFtpZF07XG4gIH1cblxuICAvL29ubHkgY29tcG91bmQgbm9kZXMgYXJlIHRvIGJlIHRpbGVkXG4gIHZhciBjaGlsZEdyYXBoID0gbm9kZS5nZXRDaGlsZCgpO1xuICBpZiAoY2hpbGRHcmFwaCA9PSBudWxsKSB7XG4gICAgdGhpcy50b0JlVGlsZWRbaWRdID0gZmFsc2U7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIGNoaWxkcmVuID0gY2hpbGRHcmFwaC5nZXROb2RlcygpOyAvLyBHZXQgdGhlIGNoaWxkcmVuIG5vZGVzXG5cbiAgLy9hIGNvbXBvdW5kIG5vZGUgaXMgbm90IHRvIGJlIHRpbGVkIGlmIGFsbCBvZiBpdHMgY29tcG91bmQgY2hpbGRyZW4gYXJlIG5vdCB0byBiZSB0aWxlZFxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHRoZUNoaWxkID0gY2hpbGRyZW5baV07XG5cbiAgICBpZiAodGhpcy5nZXROb2RlRGVncmVlKHRoZUNoaWxkKSA+IDApIHtcbiAgICAgIHRoaXMudG9CZVRpbGVkW2lkXSA9IGZhbHNlO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vcGFzcyB0aGUgY2hpbGRyZW4gbm90IGhhdmluZyB0aGUgY29tcG91bmQgc3RydWN0dXJlXG4gICAgaWYgKHRoZUNoaWxkLmdldENoaWxkKCkgPT0gbnVsbCkge1xuICAgICAgdGhpcy50b0JlVGlsZWRbdGhlQ2hpbGQuaWRdID0gZmFsc2U7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZ2V0VG9CZVRpbGVkKHRoZUNoaWxkKSkge1xuICAgICAgdGhpcy50b0JlVGlsZWRbaWRdID0gZmFsc2U7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHRoaXMudG9CZVRpbGVkW2lkXSA9IHRydWU7XG4gIHJldHVybiB0cnVlO1xufTtcblxuLy8gR2V0IGRlZ3JlZSBvZiBhIG5vZGUgZGVwZW5kaW5nIG9mIGl0cyBlZGdlcyBhbmQgaW5kZXBlbmRlbnQgb2YgaXRzIGNoaWxkcmVuXG5Db1NFTGF5b3V0LnByb3RvdHlwZS5nZXROb2RlRGVncmVlID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgdmFyIGlkID0gbm9kZS5pZDtcbiAgdmFyIGVkZ2VzID0gbm9kZS5nZXRFZGdlcygpO1xuICB2YXIgZGVncmVlID0gMDtcblxuICAvLyBGb3IgdGhlIGVkZ2VzIGNvbm5lY3RlZFxuICBmb3IgKHZhciBpID0gMDsgaSA8IGVkZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVkZ2UgPSBlZGdlc1tpXTtcbiAgICBpZiAoZWRnZS5nZXRTb3VyY2UoKS5pZCAhPT0gZWRnZS5nZXRUYXJnZXQoKS5pZCkge1xuICAgICAgZGVncmVlID0gZGVncmVlICsgMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRlZ3JlZTtcbn07XG5cbi8vIEdldCBkZWdyZWUgb2YgYSBub2RlIHdpdGggaXRzIGNoaWxkcmVuXG5Db1NFTGF5b3V0LnByb3RvdHlwZS5nZXROb2RlRGVncmVlV2l0aENoaWxkcmVuID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgdmFyIGRlZ3JlZSA9IHRoaXMuZ2V0Tm9kZURlZ3JlZShub2RlKTtcbiAgaWYgKG5vZGUuZ2V0Q2hpbGQoKSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGRlZ3JlZTtcbiAgfVxuICB2YXIgY2hpbGRyZW4gPSBub2RlLmdldENoaWxkKCkuZ2V0Tm9kZXMoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgIHZhciBjaGlsZCA9IGNoaWxkcmVuW2ldO1xuICAgIGRlZ3JlZSArPSB0aGlzLmdldE5vZGVEZWdyZWVXaXRoQ2hpbGRyZW4oY2hpbGQpO1xuICB9XG4gIHJldHVybiBkZWdyZWU7XG59O1xuXG5Db1NFTGF5b3V0LnByb3RvdHlwZS5wZXJmb3JtREZTT25Db21wb3VuZHMgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuY29tcG91bmRPcmRlciA9IFtdO1xuICB0aGlzLmZpbGxDb21wZXhPcmRlckJ5REZTKHRoaXMuZ3JhcGhNYW5hZ2VyLmdldFJvb3QoKS5nZXROb2RlcygpKTtcbn07XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlLmZpbGxDb21wZXhPcmRlckJ5REZTID0gZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICBpZiAoY2hpbGQuZ2V0Q2hpbGQoKSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmZpbGxDb21wZXhPcmRlckJ5REZTKGNoaWxkLmdldENoaWxkKCkuZ2V0Tm9kZXMoKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmdldFRvQmVUaWxlZChjaGlsZCkpIHtcbiAgICAgIHRoaXMuY29tcG91bmRPcmRlci5wdXNoKGNoaWxkKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuKiBUaGlzIG1ldGhvZCBwbGFjZXMgZWFjaCB6ZXJvIGRlZ3JlZSBtZW1iZXIgd3J0IGdpdmVuICh4LHkpIGNvb3JkaW5hdGVzICh0b3AgbGVmdCkuXG4qL1xuQ29TRUxheW91dC5wcm90b3R5cGUuYWRqdXN0TG9jYXRpb25zID0gZnVuY3Rpb24gKG9yZ2FuaXphdGlvbiwgeCwgeSwgY29tcG91bmRIb3Jpem9udGFsTWFyZ2luLCBjb21wb3VuZFZlcnRpY2FsTWFyZ2luKSB7XG4gIHggKz0gY29tcG91bmRIb3Jpem9udGFsTWFyZ2luO1xuICB5ICs9IGNvbXBvdW5kVmVydGljYWxNYXJnaW47XG5cbiAgdmFyIGxlZnQgPSB4O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgb3JnYW5pemF0aW9uLnJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcm93ID0gb3JnYW5pemF0aW9uLnJvd3NbaV07XG4gICAgeCA9IGxlZnQ7XG4gICAgdmFyIG1heEhlaWdodCA9IDA7XG5cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHJvdy5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIGxub2RlID0gcm93W2pdO1xuXG4gICAgICBsbm9kZS5yZWN0LnggPSB4OyAvLyArIGxub2RlLnJlY3Qud2lkdGggLyAyO1xuICAgICAgbG5vZGUucmVjdC55ID0geTsgLy8gKyBsbm9kZS5yZWN0LmhlaWdodCAvIDI7XG5cbiAgICAgIHggKz0gbG5vZGUucmVjdC53aWR0aCArIG9yZ2FuaXphdGlvbi5ob3Jpem9udGFsUGFkZGluZztcblxuICAgICAgaWYgKGxub2RlLnJlY3QuaGVpZ2h0ID4gbWF4SGVpZ2h0KSBtYXhIZWlnaHQgPSBsbm9kZS5yZWN0LmhlaWdodDtcbiAgICB9XG5cbiAgICB5ICs9IG1heEhlaWdodCArIG9yZ2FuaXphdGlvbi52ZXJ0aWNhbFBhZGRpbmc7XG4gIH1cbn07XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlLnRpbGVDb21wb3VuZE1lbWJlcnMgPSBmdW5jdGlvbiAoY2hpbGRHcmFwaE1hcCwgaWRUb05vZGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnRpbGVkTWVtYmVyUGFjayA9IFtdO1xuXG4gIE9iamVjdC5rZXlzKGNoaWxkR3JhcGhNYXApLmZvckVhY2goZnVuY3Rpb24gKGlkKSB7XG4gICAgLy8gR2V0IHRoZSBjb21wb3VuZCBub2RlXG4gICAgdmFyIGNvbXBvdW5kTm9kZSA9IGlkVG9Ob2RlW2lkXTtcblxuICAgIHNlbGYudGlsZWRNZW1iZXJQYWNrW2lkXSA9IHNlbGYudGlsZU5vZGVzKGNoaWxkR3JhcGhNYXBbaWRdLCBjb21wb3VuZE5vZGUucGFkZGluZ0xlZnQgKyBjb21wb3VuZE5vZGUucGFkZGluZ1JpZ2h0KTtcblxuICAgIGNvbXBvdW5kTm9kZS5yZWN0LndpZHRoID0gc2VsZi50aWxlZE1lbWJlclBhY2tbaWRdLndpZHRoO1xuICAgIGNvbXBvdW5kTm9kZS5yZWN0LmhlaWdodCA9IHNlbGYudGlsZWRNZW1iZXJQYWNrW2lkXS5oZWlnaHQ7XG4gIH0pO1xufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUudGlsZU5vZGVzID0gZnVuY3Rpb24gKG5vZGVzLCBtaW5XaWR0aCkge1xuICB2YXIgdmVydGljYWxQYWRkaW5nID0gQ29TRUNvbnN0YW50cy5USUxJTkdfUEFERElOR19WRVJUSUNBTDtcbiAgdmFyIGhvcml6b250YWxQYWRkaW5nID0gQ29TRUNvbnN0YW50cy5USUxJTkdfUEFERElOR19IT1JJWk9OVEFMO1xuICB2YXIgb3JnYW5pemF0aW9uID0ge1xuICAgIHJvd3M6IFtdLFxuICAgIHJvd1dpZHRoOiBbXSxcbiAgICByb3dIZWlnaHQ6IFtdLFxuICAgIHdpZHRoOiAwLFxuICAgIGhlaWdodDogbWluV2lkdGgsIC8vIGFzc3VtZSBtaW5IZWlnaHQgZXF1YWxzIHRvIG1pbldpZHRoXG4gICAgdmVydGljYWxQYWRkaW5nOiB2ZXJ0aWNhbFBhZGRpbmcsXG4gICAgaG9yaXpvbnRhbFBhZGRpbmc6IGhvcml6b250YWxQYWRkaW5nXG4gIH07XG5cbiAgLy8gU29ydCB0aGUgbm9kZXMgaW4gYXNjZW5kaW5nIG9yZGVyIG9mIHRoZWlyIGFyZWFzXG4gIG5vZGVzLnNvcnQoZnVuY3Rpb24gKG4xLCBuMikge1xuICAgIGlmIChuMS5yZWN0LndpZHRoICogbjEucmVjdC5oZWlnaHQgPiBuMi5yZWN0LndpZHRoICogbjIucmVjdC5oZWlnaHQpIHJldHVybiAtMTtcbiAgICBpZiAobjEucmVjdC53aWR0aCAqIG4xLnJlY3QuaGVpZ2h0IDwgbjIucmVjdC53aWR0aCAqIG4yLnJlY3QuaGVpZ2h0KSByZXR1cm4gMTtcbiAgICByZXR1cm4gMDtcbiAgfSk7XG5cbiAgLy8gQ3JlYXRlIHRoZSBvcmdhbml6YXRpb24gLT4gdGlsZSBtZW1iZXJzXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbE5vZGUgPSBub2Rlc1tpXTtcblxuICAgIGlmIChvcmdhbml6YXRpb24ucm93cy5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5pbnNlcnROb2RlVG9Sb3cob3JnYW5pemF0aW9uLCBsTm9kZSwgMCwgbWluV2lkdGgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jYW5BZGRIb3Jpem9udGFsKG9yZ2FuaXphdGlvbiwgbE5vZGUucmVjdC53aWR0aCwgbE5vZGUucmVjdC5oZWlnaHQpKSB7XG4gICAgICB0aGlzLmluc2VydE5vZGVUb1Jvdyhvcmdhbml6YXRpb24sIGxOb2RlLCB0aGlzLmdldFNob3J0ZXN0Um93SW5kZXgob3JnYW5pemF0aW9uKSwgbWluV2lkdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluc2VydE5vZGVUb1Jvdyhvcmdhbml6YXRpb24sIGxOb2RlLCBvcmdhbml6YXRpb24ucm93cy5sZW5ndGgsIG1pbldpZHRoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNoaWZ0VG9MYXN0Um93KG9yZ2FuaXphdGlvbik7XG4gIH1cblxuICByZXR1cm4gb3JnYW5pemF0aW9uO1xufTtcblxuQ29TRUxheW91dC5wcm90b3R5cGUuaW5zZXJ0Tm9kZVRvUm93ID0gZnVuY3Rpb24gKG9yZ2FuaXphdGlvbiwgbm9kZSwgcm93SW5kZXgsIG1pbldpZHRoKSB7XG4gIHZhciBtaW5Db21wb3VuZFNpemUgPSBtaW5XaWR0aDtcblxuICAvLyBBZGQgbmV3IHJvdyBpZiBuZWVkZWRcbiAgaWYgKHJvd0luZGV4ID09IG9yZ2FuaXphdGlvbi5yb3dzLmxlbmd0aCkge1xuICAgIHZhciBzZWNvbmREaW1lbnNpb24gPSBbXTtcblxuICAgIG9yZ2FuaXphdGlvbi5yb3dzLnB1c2goc2Vjb25kRGltZW5zaW9uKTtcbiAgICBvcmdhbml6YXRpb24ucm93V2lkdGgucHVzaChtaW5Db21wb3VuZFNpemUpO1xuICAgIG9yZ2FuaXphdGlvbi5yb3dIZWlnaHQucHVzaCgwKTtcbiAgfVxuXG4gIC8vIFVwZGF0ZSByb3cgd2lkdGhcbiAgdmFyIHcgPSBvcmdhbml6YXRpb24ucm93V2lkdGhbcm93SW5kZXhdICsgbm9kZS5yZWN0LndpZHRoO1xuXG4gIGlmIChvcmdhbml6YXRpb24ucm93c1tyb3dJbmRleF0ubGVuZ3RoID4gMCkge1xuICAgIHcgKz0gb3JnYW5pemF0aW9uLmhvcml6b250YWxQYWRkaW5nO1xuICB9XG5cbiAgb3JnYW5pemF0aW9uLnJvd1dpZHRoW3Jvd0luZGV4XSA9IHc7XG4gIC8vIFVwZGF0ZSBjb21wb3VuZCB3aWR0aFxuICBpZiAob3JnYW5pemF0aW9uLndpZHRoIDwgdykge1xuICAgIG9yZ2FuaXphdGlvbi53aWR0aCA9IHc7XG4gIH1cblxuICAvLyBVcGRhdGUgaGVpZ2h0XG4gIHZhciBoID0gbm9kZS5yZWN0LmhlaWdodDtcbiAgaWYgKHJvd0luZGV4ID4gMCkgaCArPSBvcmdhbml6YXRpb24udmVydGljYWxQYWRkaW5nO1xuXG4gIHZhciBleHRyYUhlaWdodCA9IDA7XG4gIGlmIChoID4gb3JnYW5pemF0aW9uLnJvd0hlaWdodFtyb3dJbmRleF0pIHtcbiAgICBleHRyYUhlaWdodCA9IG9yZ2FuaXphdGlvbi5yb3dIZWlnaHRbcm93SW5kZXhdO1xuICAgIG9yZ2FuaXphdGlvbi5yb3dIZWlnaHRbcm93SW5kZXhdID0gaDtcbiAgICBleHRyYUhlaWdodCA9IG9yZ2FuaXphdGlvbi5yb3dIZWlnaHRbcm93SW5kZXhdIC0gZXh0cmFIZWlnaHQ7XG4gIH1cblxuICBvcmdhbml6YXRpb24uaGVpZ2h0ICs9IGV4dHJhSGVpZ2h0O1xuXG4gIC8vIEluc2VydCBub2RlXG4gIG9yZ2FuaXphdGlvbi5yb3dzW3Jvd0luZGV4XS5wdXNoKG5vZGUpO1xufTtcblxuLy9TY2FucyB0aGUgcm93cyBvZiBhbiBvcmdhbml6YXRpb24gYW5kIHJldHVybnMgdGhlIG9uZSB3aXRoIHRoZSBtaW4gd2lkdGhcbkNvU0VMYXlvdXQucHJvdG90eXBlLmdldFNob3J0ZXN0Um93SW5kZXggPSBmdW5jdGlvbiAob3JnYW5pemF0aW9uKSB7XG4gIHZhciByID0gLTE7XG4gIHZhciBtaW4gPSBOdW1iZXIuTUFYX1ZBTFVFO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgb3JnYW5pemF0aW9uLnJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAob3JnYW5pemF0aW9uLnJvd1dpZHRoW2ldIDwgbWluKSB7XG4gICAgICByID0gaTtcbiAgICAgIG1pbiA9IG9yZ2FuaXphdGlvbi5yb3dXaWR0aFtpXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHI7XG59O1xuXG4vL1NjYW5zIHRoZSByb3dzIG9mIGFuIG9yZ2FuaXphdGlvbiBhbmQgcmV0dXJucyB0aGUgb25lIHdpdGggdGhlIG1heCB3aWR0aFxuQ29TRUxheW91dC5wcm90b3R5cGUuZ2V0TG9uZ2VzdFJvd0luZGV4ID0gZnVuY3Rpb24gKG9yZ2FuaXphdGlvbikge1xuICB2YXIgciA9IC0xO1xuICB2YXIgbWF4ID0gTnVtYmVyLk1JTl9WQUxVRTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IG9yZ2FuaXphdGlvbi5yb3dzLmxlbmd0aDsgaSsrKSB7XG5cbiAgICBpZiAob3JnYW5pemF0aW9uLnJvd1dpZHRoW2ldID4gbWF4KSB7XG4gICAgICByID0gaTtcbiAgICAgIG1heCA9IG9yZ2FuaXphdGlvbi5yb3dXaWR0aFtpXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcjtcbn07XG5cbi8qKlxuKiBUaGlzIG1ldGhvZCBjaGVja3Mgd2hldGhlciBhZGRpbmcgZXh0cmEgd2lkdGggdG8gdGhlIG9yZ2FuaXphdGlvbiB2aW9sYXRlc1xuKiB0aGUgYXNwZWN0IHJhdGlvKDEpIG9yIG5vdC5cbiovXG5Db1NFTGF5b3V0LnByb3RvdHlwZS5jYW5BZGRIb3Jpem9udGFsID0gZnVuY3Rpb24gKG9yZ2FuaXphdGlvbiwgZXh0cmFXaWR0aCwgZXh0cmFIZWlnaHQpIHtcblxuICB2YXIgc3JpID0gdGhpcy5nZXRTaG9ydGVzdFJvd0luZGV4KG9yZ2FuaXphdGlvbik7XG5cbiAgaWYgKHNyaSA8IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBtaW4gPSBvcmdhbml6YXRpb24ucm93V2lkdGhbc3JpXTtcblxuICBpZiAobWluICsgb3JnYW5pemF0aW9uLmhvcml6b250YWxQYWRkaW5nICsgZXh0cmFXaWR0aCA8PSBvcmdhbml6YXRpb24ud2lkdGgpIHJldHVybiB0cnVlO1xuXG4gIHZhciBoRGlmZiA9IDA7XG5cbiAgLy8gQWRkaW5nIHRvIGFuIGV4aXN0aW5nIHJvd1xuICBpZiAob3JnYW5pemF0aW9uLnJvd0hlaWdodFtzcmldIDwgZXh0cmFIZWlnaHQpIHtcbiAgICBpZiAoc3JpID4gMCkgaERpZmYgPSBleHRyYUhlaWdodCArIG9yZ2FuaXphdGlvbi52ZXJ0aWNhbFBhZGRpbmcgLSBvcmdhbml6YXRpb24ucm93SGVpZ2h0W3NyaV07XG4gIH1cblxuICB2YXIgYWRkX3RvX3Jvd19yYXRpbztcbiAgaWYgKG9yZ2FuaXphdGlvbi53aWR0aCAtIG1pbiA+PSBleHRyYVdpZHRoICsgb3JnYW5pemF0aW9uLmhvcml6b250YWxQYWRkaW5nKSB7XG4gICAgYWRkX3RvX3Jvd19yYXRpbyA9IChvcmdhbml6YXRpb24uaGVpZ2h0ICsgaERpZmYpIC8gKG1pbiArIGV4dHJhV2lkdGggKyBvcmdhbml6YXRpb24uaG9yaXpvbnRhbFBhZGRpbmcpO1xuICB9IGVsc2Uge1xuICAgIGFkZF90b19yb3dfcmF0aW8gPSAob3JnYW5pemF0aW9uLmhlaWdodCArIGhEaWZmKSAvIG9yZ2FuaXphdGlvbi53aWR0aDtcbiAgfVxuXG4gIC8vIEFkZGluZyBhIG5ldyByb3cgZm9yIHRoaXMgbm9kZVxuICBoRGlmZiA9IGV4dHJhSGVpZ2h0ICsgb3JnYW5pemF0aW9uLnZlcnRpY2FsUGFkZGluZztcbiAgdmFyIGFkZF9uZXdfcm93X3JhdGlvO1xuICBpZiAob3JnYW5pemF0aW9uLndpZHRoIDwgZXh0cmFXaWR0aCkge1xuICAgIGFkZF9uZXdfcm93X3JhdGlvID0gKG9yZ2FuaXphdGlvbi5oZWlnaHQgKyBoRGlmZikgLyBleHRyYVdpZHRoO1xuICB9IGVsc2Uge1xuICAgIGFkZF9uZXdfcm93X3JhdGlvID0gKG9yZ2FuaXphdGlvbi5oZWlnaHQgKyBoRGlmZikgLyBvcmdhbml6YXRpb24ud2lkdGg7XG4gIH1cblxuICBpZiAoYWRkX25ld19yb3dfcmF0aW8gPCAxKSBhZGRfbmV3X3Jvd19yYXRpbyA9IDEgLyBhZGRfbmV3X3Jvd19yYXRpbztcblxuICBpZiAoYWRkX3RvX3Jvd19yYXRpbyA8IDEpIGFkZF90b19yb3dfcmF0aW8gPSAxIC8gYWRkX3RvX3Jvd19yYXRpbztcblxuICByZXR1cm4gYWRkX3RvX3Jvd19yYXRpbyA8IGFkZF9uZXdfcm93X3JhdGlvO1xufTtcblxuLy9JZiBtb3ZpbmcgdGhlIGxhc3Qgbm9kZSBmcm9tIHRoZSBsb25nZXN0IHJvdyBhbmQgYWRkaW5nIGl0IHRvIHRoZSBsYXN0XG4vL3JvdyBtYWtlcyB0aGUgYm91bmRpbmcgYm94IHNtYWxsZXIsIGRvIGl0LlxuQ29TRUxheW91dC5wcm90b3R5cGUuc2hpZnRUb0xhc3RSb3cgPSBmdW5jdGlvbiAob3JnYW5pemF0aW9uKSB7XG4gIHZhciBsb25nZXN0ID0gdGhpcy5nZXRMb25nZXN0Um93SW5kZXgob3JnYW5pemF0aW9uKTtcbiAgdmFyIGxhc3QgPSBvcmdhbml6YXRpb24ucm93V2lkdGgubGVuZ3RoIC0gMTtcbiAgdmFyIHJvdyA9IG9yZ2FuaXphdGlvbi5yb3dzW2xvbmdlc3RdO1xuICB2YXIgbm9kZSA9IHJvd1tyb3cubGVuZ3RoIC0gMV07XG5cbiAgdmFyIGRpZmYgPSBub2RlLndpZHRoICsgb3JnYW5pemF0aW9uLmhvcml6b250YWxQYWRkaW5nO1xuXG4gIC8vIENoZWNrIGlmIHRoZXJlIGlzIGVub3VnaCBzcGFjZSBvbiB0aGUgbGFzdCByb3dcbiAgaWYgKG9yZ2FuaXphdGlvbi53aWR0aCAtIG9yZ2FuaXphdGlvbi5yb3dXaWR0aFtsYXN0XSA+IGRpZmYgJiYgbG9uZ2VzdCAhPSBsYXN0KSB7XG4gICAgLy8gUmVtb3ZlIHRoZSBsYXN0IGVsZW1lbnQgb2YgdGhlIGxvbmdlc3Qgcm93XG4gICAgcm93LnNwbGljZSgtMSwgMSk7XG5cbiAgICAvLyBQdXNoIGl0IHRvIHRoZSBsYXN0IHJvd1xuICAgIG9yZ2FuaXphdGlvbi5yb3dzW2xhc3RdLnB1c2gobm9kZSk7XG5cbiAgICBvcmdhbml6YXRpb24ucm93V2lkdGhbbG9uZ2VzdF0gPSBvcmdhbml6YXRpb24ucm93V2lkdGhbbG9uZ2VzdF0gLSBkaWZmO1xuICAgIG9yZ2FuaXphdGlvbi5yb3dXaWR0aFtsYXN0XSA9IG9yZ2FuaXphdGlvbi5yb3dXaWR0aFtsYXN0XSArIGRpZmY7XG4gICAgb3JnYW5pemF0aW9uLndpZHRoID0gb3JnYW5pemF0aW9uLnJvd1dpZHRoW2luc3RhbmNlLmdldExvbmdlc3RSb3dJbmRleChvcmdhbml6YXRpb24pXTtcblxuICAgIC8vIFVwZGF0ZSBoZWlnaHRzIG9mIHRoZSBvcmdhbml6YXRpb25cbiAgICB2YXIgbWF4SGVpZ2h0ID0gTnVtYmVyLk1JTl9WQUxVRTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvdy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHJvd1tpXS5oZWlnaHQgPiBtYXhIZWlnaHQpIG1heEhlaWdodCA9IHJvd1tpXS5oZWlnaHQ7XG4gICAgfVxuICAgIGlmIChsb25nZXN0ID4gMCkgbWF4SGVpZ2h0ICs9IG9yZ2FuaXphdGlvbi52ZXJ0aWNhbFBhZGRpbmc7XG5cbiAgICB2YXIgcHJldlRvdGFsID0gb3JnYW5pemF0aW9uLnJvd0hlaWdodFtsb25nZXN0XSArIG9yZ2FuaXphdGlvbi5yb3dIZWlnaHRbbGFzdF07XG5cbiAgICBvcmdhbml6YXRpb24ucm93SGVpZ2h0W2xvbmdlc3RdID0gbWF4SGVpZ2h0O1xuICAgIGlmIChvcmdhbml6YXRpb24ucm93SGVpZ2h0W2xhc3RdIDwgbm9kZS5oZWlnaHQgKyBvcmdhbml6YXRpb24udmVydGljYWxQYWRkaW5nKSBvcmdhbml6YXRpb24ucm93SGVpZ2h0W2xhc3RdID0gbm9kZS5oZWlnaHQgKyBvcmdhbml6YXRpb24udmVydGljYWxQYWRkaW5nO1xuXG4gICAgdmFyIGZpbmFsVG90YWwgPSBvcmdhbml6YXRpb24ucm93SGVpZ2h0W2xvbmdlc3RdICsgb3JnYW5pemF0aW9uLnJvd0hlaWdodFtsYXN0XTtcbiAgICBvcmdhbml6YXRpb24uaGVpZ2h0ICs9IGZpbmFsVG90YWwgLSBwcmV2VG90YWw7XG5cbiAgICB0aGlzLnNoaWZ0VG9MYXN0Um93KG9yZ2FuaXphdGlvbik7XG4gIH1cbn07XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlLnRpbGluZ1ByZUxheW91dCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKENvU0VDb25zdGFudHMuVElMRSkge1xuICAgIC8vIEZpbmQgemVybyBkZWdyZWUgbm9kZXMgYW5kIGNyZWF0ZSBhIGNvbXBvdW5kIGZvciBlYWNoIGxldmVsXG4gICAgdGhpcy5ncm91cFplcm9EZWdyZWVNZW1iZXJzKCk7XG4gICAgLy8gVGlsZSBhbmQgY2xlYXIgY2hpbGRyZW4gb2YgZWFjaCBjb21wb3VuZFxuICAgIHRoaXMuY2xlYXJDb21wb3VuZHMoKTtcbiAgICAvLyBTZXBhcmF0ZWx5IHRpbGUgYW5kIGNsZWFyIHplcm8gZGVncmVlIG5vZGVzIGZvciBlYWNoIGxldmVsXG4gICAgdGhpcy5jbGVhclplcm9EZWdyZWVNZW1iZXJzKCk7XG4gIH1cbn07XG5cbkNvU0VMYXlvdXQucHJvdG90eXBlLnRpbGluZ1Bvc3RMYXlvdXQgPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChDb1NFQ29uc3RhbnRzLlRJTEUpIHtcbiAgICB0aGlzLnJlcG9wdWxhdGVaZXJvRGVncmVlTWVtYmVycygpO1xuICAgIHRoaXMucmVwb3B1bGF0ZUNvbXBvdW5kcygpO1xuICB9XG59O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2VjdGlvbjogVHJlZSBSZWR1Y3Rpb24gbWV0aG9kc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlZHVjZSB0cmVlcyBcbkNvU0VMYXlvdXQucHJvdG90eXBlLnJlZHVjZVRyZWVzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgcHJ1bmVkTm9kZXNBbGwgPSBbXTtcbiAgdmFyIGNvbnRhaW5zTGVhZiA9IHRydWU7XG4gIHZhciBub2RlO1xuXG4gIHdoaWxlIChjb250YWluc0xlYWYpIHtcbiAgICB2YXIgYWxsTm9kZXMgPSB0aGlzLmdyYXBoTWFuYWdlci5nZXRBbGxOb2RlcygpO1xuICAgIHZhciBwcnVuZWROb2Rlc0luU3RlcFRlbXAgPSBbXTtcbiAgICBjb250YWluc0xlYWYgPSBmYWxzZTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsTm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG5vZGUgPSBhbGxOb2Rlc1tpXTtcbiAgICAgIGlmIChub2RlLmdldEVkZ2VzKCkubGVuZ3RoID09IDEgJiYgIW5vZGUuZ2V0RWRnZXMoKVswXS5pc0ludGVyR3JhcGggJiYgbm9kZS5nZXRDaGlsZCgpID09IG51bGwpIHtcbiAgICAgICAgcHJ1bmVkTm9kZXNJblN0ZXBUZW1wLnB1c2goW25vZGUsIG5vZGUuZ2V0RWRnZXMoKVswXSwgbm9kZS5nZXRPd25lcigpXSk7XG4gICAgICAgIGNvbnRhaW5zTGVhZiA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjb250YWluc0xlYWYgPT0gdHJ1ZSkge1xuICAgICAgdmFyIHBydW5lZE5vZGVzSW5TdGVwID0gW107XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBydW5lZE5vZGVzSW5TdGVwVGVtcC5sZW5ndGg7IGorKykge1xuICAgICAgICBpZiAocHJ1bmVkTm9kZXNJblN0ZXBUZW1wW2pdWzBdLmdldEVkZ2VzKCkubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICBwcnVuZWROb2Rlc0luU3RlcC5wdXNoKHBydW5lZE5vZGVzSW5TdGVwVGVtcFtqXSk7XG4gICAgICAgICAgcHJ1bmVkTm9kZXNJblN0ZXBUZW1wW2pdWzBdLmdldE93bmVyKCkucmVtb3ZlKHBydW5lZE5vZGVzSW5TdGVwVGVtcFtqXVswXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHBydW5lZE5vZGVzQWxsLnB1c2gocHJ1bmVkTm9kZXNJblN0ZXApO1xuICAgICAgdGhpcy5ncmFwaE1hbmFnZXIucmVzZXRBbGxOb2RlcygpO1xuICAgICAgdGhpcy5ncmFwaE1hbmFnZXIucmVzZXRBbGxFZGdlcygpO1xuICAgIH1cbiAgfVxuICB0aGlzLnBydW5lZE5vZGVzQWxsID0gcHJ1bmVkTm9kZXNBbGw7XG59O1xuXG4vLyBHcm93IHRyZWUgb25lIHN0ZXAgXG5Db1NFTGF5b3V0LnByb3RvdHlwZS5ncm93VHJlZSA9IGZ1bmN0aW9uIChwcnVuZWROb2Rlc0FsbCkge1xuICB2YXIgbGVuZ3RoT2ZQcnVuZWROb2Rlc0luU3RlcCA9IHBydW5lZE5vZGVzQWxsLmxlbmd0aDtcbiAgdmFyIHBydW5lZE5vZGVzSW5TdGVwID0gcHJ1bmVkTm9kZXNBbGxbbGVuZ3RoT2ZQcnVuZWROb2Rlc0luU3RlcCAtIDFdO1xuXG4gIHZhciBub2RlRGF0YTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcnVuZWROb2Rlc0luU3RlcC5sZW5ndGg7IGkrKykge1xuICAgIG5vZGVEYXRhID0gcHJ1bmVkTm9kZXNJblN0ZXBbaV07XG5cbiAgICB0aGlzLmZpbmRQbGFjZWZvclBydW5lZE5vZGUobm9kZURhdGEpO1xuXG4gICAgbm9kZURhdGFbMl0uYWRkKG5vZGVEYXRhWzBdKTtcbiAgICBub2RlRGF0YVsyXS5hZGQobm9kZURhdGFbMV0sIG5vZGVEYXRhWzFdLnNvdXJjZSwgbm9kZURhdGFbMV0udGFyZ2V0KTtcbiAgfVxuXG4gIHBydW5lZE5vZGVzQWxsLnNwbGljZShwcnVuZWROb2Rlc0FsbC5sZW5ndGggLSAxLCAxKTtcbiAgdGhpcy5ncmFwaE1hbmFnZXIucmVzZXRBbGxOb2RlcygpO1xuICB0aGlzLmdyYXBoTWFuYWdlci5yZXNldEFsbEVkZ2VzKCk7XG59O1xuXG4vLyBGaW5kIGFuIGFwcHJvcHJpYXRlIHBvc2l0aW9uIHRvIHJlcGxhY2UgcHJ1bmVkIG5vZGUsIHRoaXMgbWV0aG9kIGNhbiBiZSBpbXByb3ZlZFxuQ29TRUxheW91dC5wcm90b3R5cGUuZmluZFBsYWNlZm9yUHJ1bmVkTm9kZSA9IGZ1bmN0aW9uIChub2RlRGF0YSkge1xuXG4gIHZhciBncmlkRm9yUHJ1bmVkTm9kZTtcbiAgdmFyIG5vZGVUb0Nvbm5lY3Q7XG4gIHZhciBwcnVuZWROb2RlID0gbm9kZURhdGFbMF07XG4gIGlmIChwcnVuZWROb2RlID09IG5vZGVEYXRhWzFdLnNvdXJjZSkge1xuICAgIG5vZGVUb0Nvbm5lY3QgPSBub2RlRGF0YVsxXS50YXJnZXQ7XG4gIH0gZWxzZSB7XG4gICAgbm9kZVRvQ29ubmVjdCA9IG5vZGVEYXRhWzFdLnNvdXJjZTtcbiAgfVxuICB2YXIgc3RhcnRHcmlkWCA9IG5vZGVUb0Nvbm5lY3Quc3RhcnRYO1xuICB2YXIgZmluaXNoR3JpZFggPSBub2RlVG9Db25uZWN0LmZpbmlzaFg7XG4gIHZhciBzdGFydEdyaWRZID0gbm9kZVRvQ29ubmVjdC5zdGFydFk7XG4gIHZhciBmaW5pc2hHcmlkWSA9IG5vZGVUb0Nvbm5lY3QuZmluaXNoWTtcblxuICB2YXIgdXBOb2RlQ291bnQgPSAwO1xuICB2YXIgZG93bk5vZGVDb3VudCA9IDA7XG4gIHZhciByaWdodE5vZGVDb3VudCA9IDA7XG4gIHZhciBsZWZ0Tm9kZUNvdW50ID0gMDtcbiAgdmFyIGNvbnRyb2xSZWdpb25zID0gW3VwTm9kZUNvdW50LCByaWdodE5vZGVDb3VudCwgZG93bk5vZGVDb3VudCwgbGVmdE5vZGVDb3VudF07XG5cbiAgaWYgKHN0YXJ0R3JpZFkgPiAwKSB7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0R3JpZFg7IGkgPD0gZmluaXNoR3JpZFg7IGkrKykge1xuICAgICAgY29udHJvbFJlZ2lvbnNbMF0gKz0gdGhpcy5ncmlkW2ldW3N0YXJ0R3JpZFkgLSAxXS5sZW5ndGggKyB0aGlzLmdyaWRbaV1bc3RhcnRHcmlkWV0ubGVuZ3RoIC0gMTtcbiAgICB9XG4gIH1cbiAgaWYgKGZpbmlzaEdyaWRYIDwgdGhpcy5ncmlkLmxlbmd0aCAtIDEpIHtcbiAgICBmb3IgKHZhciBpID0gc3RhcnRHcmlkWTsgaSA8PSBmaW5pc2hHcmlkWTsgaSsrKSB7XG4gICAgICBjb250cm9sUmVnaW9uc1sxXSArPSB0aGlzLmdyaWRbZmluaXNoR3JpZFggKyAxXVtpXS5sZW5ndGggKyB0aGlzLmdyaWRbZmluaXNoR3JpZFhdW2ldLmxlbmd0aCAtIDE7XG4gICAgfVxuICB9XG4gIGlmIChmaW5pc2hHcmlkWSA8IHRoaXMuZ3JpZFswXS5sZW5ndGggLSAxKSB7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0R3JpZFg7IGkgPD0gZmluaXNoR3JpZFg7IGkrKykge1xuICAgICAgY29udHJvbFJlZ2lvbnNbMl0gKz0gdGhpcy5ncmlkW2ldW2ZpbmlzaEdyaWRZICsgMV0ubGVuZ3RoICsgdGhpcy5ncmlkW2ldW2ZpbmlzaEdyaWRZXS5sZW5ndGggLSAxO1xuICAgIH1cbiAgfVxuICBpZiAoc3RhcnRHcmlkWCA+IDApIHtcbiAgICBmb3IgKHZhciBpID0gc3RhcnRHcmlkWTsgaSA8PSBmaW5pc2hHcmlkWTsgaSsrKSB7XG4gICAgICBjb250cm9sUmVnaW9uc1szXSArPSB0aGlzLmdyaWRbc3RhcnRHcmlkWCAtIDFdW2ldLmxlbmd0aCArIHRoaXMuZ3JpZFtzdGFydEdyaWRYXVtpXS5sZW5ndGggLSAxO1xuICAgIH1cbiAgfVxuICB2YXIgbWluID0gSW50ZWdlci5NQVhfVkFMVUU7XG4gIHZhciBtaW5Db3VudDtcbiAgdmFyIG1pbkluZGV4O1xuICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbnRyb2xSZWdpb25zLmxlbmd0aDsgaisrKSB7XG4gICAgaWYgKGNvbnRyb2xSZWdpb25zW2pdIDwgbWluKSB7XG4gICAgICBtaW4gPSBjb250cm9sUmVnaW9uc1tqXTtcbiAgICAgIG1pbkNvdW50ID0gMTtcbiAgICAgIG1pbkluZGV4ID0gajtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2xSZWdpb25zW2pdID09IG1pbikge1xuICAgICAgbWluQ291bnQrKztcbiAgICB9XG4gIH1cblxuICBpZiAobWluQ291bnQgPT0gMyAmJiBtaW4gPT0gMCkge1xuICAgIGlmIChjb250cm9sUmVnaW9uc1swXSA9PSAwICYmIGNvbnRyb2xSZWdpb25zWzFdID09IDAgJiYgY29udHJvbFJlZ2lvbnNbMl0gPT0gMCkge1xuICAgICAgZ3JpZEZvclBydW5lZE5vZGUgPSAxO1xuICAgIH0gZWxzZSBpZiAoY29udHJvbFJlZ2lvbnNbMF0gPT0gMCAmJiBjb250cm9sUmVnaW9uc1sxXSA9PSAwICYmIGNvbnRyb2xSZWdpb25zWzNdID09IDApIHtcbiAgICAgIGdyaWRGb3JQcnVuZWROb2RlID0gMDtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2xSZWdpb25zWzBdID09IDAgJiYgY29udHJvbFJlZ2lvbnNbMl0gPT0gMCAmJiBjb250cm9sUmVnaW9uc1szXSA9PSAwKSB7XG4gICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDM7XG4gICAgfSBlbHNlIGlmIChjb250cm9sUmVnaW9uc1sxXSA9PSAwICYmIGNvbnRyb2xSZWdpb25zWzJdID09IDAgJiYgY29udHJvbFJlZ2lvbnNbM10gPT0gMCkge1xuICAgICAgZ3JpZEZvclBydW5lZE5vZGUgPSAyO1xuICAgIH1cbiAgfSBlbHNlIGlmIChtaW5Db3VudCA9PSAyICYmIG1pbiA9PSAwKSB7XG4gICAgdmFyIHJhbmRvbSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIpO1xuICAgIGlmIChjb250cm9sUmVnaW9uc1swXSA9PSAwICYmIGNvbnRyb2xSZWdpb25zWzFdID09IDApIHtcbiAgICAgIDtcbiAgICAgIGlmIChyYW5kb20gPT0gMCkge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDE7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb250cm9sUmVnaW9uc1swXSA9PSAwICYmIGNvbnRyb2xSZWdpb25zWzJdID09IDApIHtcbiAgICAgIGlmIChyYW5kb20gPT0gMCkge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDI7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb250cm9sUmVnaW9uc1swXSA9PSAwICYmIGNvbnRyb2xSZWdpb25zWzNdID09IDApIHtcbiAgICAgIGlmIChyYW5kb20gPT0gMCkge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDM7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb250cm9sUmVnaW9uc1sxXSA9PSAwICYmIGNvbnRyb2xSZWdpb25zWzJdID09IDApIHtcbiAgICAgIGlmIChyYW5kb20gPT0gMCkge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDI7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb250cm9sUmVnaW9uc1sxXSA9PSAwICYmIGNvbnRyb2xSZWdpb25zWzNdID09IDApIHtcbiAgICAgIGlmIChyYW5kb20gPT0gMCkge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDM7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChyYW5kb20gPT0gMCkge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncmlkRm9yUHJ1bmVkTm9kZSA9IDM7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKG1pbkNvdW50ID09IDQgJiYgbWluID09IDApIHtcbiAgICB2YXIgcmFuZG9tID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNCk7XG4gICAgZ3JpZEZvclBydW5lZE5vZGUgPSByYW5kb207XG4gIH0gZWxzZSB7XG4gICAgZ3JpZEZvclBydW5lZE5vZGUgPSBtaW5JbmRleDtcbiAgfVxuXG4gIGlmIChncmlkRm9yUHJ1bmVkTm9kZSA9PSAwKSB7XG4gICAgcHJ1bmVkTm9kZS5zZXRDZW50ZXIobm9kZVRvQ29ubmVjdC5nZXRDZW50ZXJYKCksIG5vZGVUb0Nvbm5lY3QuZ2V0Q2VudGVyWSgpIC0gbm9kZVRvQ29ubmVjdC5nZXRIZWlnaHQoKSAvIDIgLSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0VER0VfTEVOR1RIIC0gcHJ1bmVkTm9kZS5nZXRIZWlnaHQoKSAvIDIpO1xuICB9IGVsc2UgaWYgKGdyaWRGb3JQcnVuZWROb2RlID09IDEpIHtcbiAgICBwcnVuZWROb2RlLnNldENlbnRlcihub2RlVG9Db25uZWN0LmdldENlbnRlclgoKSArIG5vZGVUb0Nvbm5lY3QuZ2V0V2lkdGgoKSAvIDIgKyBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0VER0VfTEVOR1RIICsgcHJ1bmVkTm9kZS5nZXRXaWR0aCgpIC8gMiwgbm9kZVRvQ29ubmVjdC5nZXRDZW50ZXJZKCkpO1xuICB9IGVsc2UgaWYgKGdyaWRGb3JQcnVuZWROb2RlID09IDIpIHtcbiAgICBwcnVuZWROb2RlLnNldENlbnRlcihub2RlVG9Db25uZWN0LmdldENlbnRlclgoKSwgbm9kZVRvQ29ubmVjdC5nZXRDZW50ZXJZKCkgKyBub2RlVG9Db25uZWN0LmdldEhlaWdodCgpIC8gMiArIEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfRURHRV9MRU5HVEggKyBwcnVuZWROb2RlLmdldEhlaWdodCgpIC8gMik7XG4gIH0gZWxzZSB7XG4gICAgcHJ1bmVkTm9kZS5zZXRDZW50ZXIobm9kZVRvQ29ubmVjdC5nZXRDZW50ZXJYKCkgLSBub2RlVG9Db25uZWN0LmdldFdpZHRoKCkgLyAyIC0gRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9FREdFX0xFTkdUSCAtIHBydW5lZE5vZGUuZ2V0V2lkdGgoKSAvIDIsIG5vZGVUb0Nvbm5lY3QuZ2V0Q2VudGVyWSgpKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBDb1NFTGF5b3V0O1xuXG4vKioqLyB9KSxcbi8qIDcgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxudmFyIGNvc2VCYXNlID0ge307XG5cbmNvc2VCYXNlLmxheW91dEJhc2UgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuY29zZUJhc2UuQ29TRUNvbnN0YW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5jb3NlQmFzZS5Db1NFRWRnZSA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG5jb3NlQmFzZS5Db1NFR3JhcGggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuY29zZUJhc2UuQ29TRUdyYXBoTWFuYWdlciA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG5jb3NlQmFzZS5Db1NFTGF5b3V0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTtcbmNvc2VCYXNlLkNvU0VOb2RlID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTtcblxubW9kdWxlLmV4cG9ydHMgPSBjb3NlQmFzZTtcblxuLyoqKi8gfSlcbi8qKioqKiovIF0pO1xufSk7IiwKICAgICIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJjb3NlLWJhc2VcIikpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW1wiY29zZS1iYXNlXCJdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcImN5dG9zY2FwZUNvc2VCaWxrZW50XCJdID0gZmFjdG9yeShyZXF1aXJlKFwiY29zZS1iYXNlXCIpKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJjeXRvc2NhcGVDb3NlQmlsa2VudFwiXSA9IGZhY3Rvcnkocm9vdFtcImNvc2VCYXNlXCJdKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMF9fKSB7XG5yZXR1cm4gLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbi8qKioqKiovIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRpOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdGw6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0ZXhwb3J0czoge31cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbi8qKioqKiovIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbi8qKioqKiovIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4vKioqKioqLyBcdH1cbi8qKioqKiovXG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pID0gZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuLyoqKioqKi8gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbi8qKioqKiovIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4vKioqKioqLyBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdGdldDogZ2V0dGVyXG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbi8qKioqKiovIFx0XHRyZXR1cm4gZ2V0dGVyO1xuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8qKioqKiovIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMSk7XG4vKioqKioqLyB9KVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKiovIChbXG4vKiAwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV8wX187XG5cbi8qKiovIH0pLFxuLyogMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG52YXIgTGF5b3V0Q29uc3RhbnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5sYXlvdXRCYXNlLkxheW91dENvbnN0YW50cztcbnZhciBGRExheW91dENvbnN0YW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oMCkubGF5b3V0QmFzZS5GRExheW91dENvbnN0YW50cztcbnZhciBDb1NFQ29uc3RhbnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5Db1NFQ29uc3RhbnRzO1xudmFyIENvU0VMYXlvdXQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLkNvU0VMYXlvdXQ7XG52YXIgQ29TRU5vZGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLkNvU0VOb2RlO1xudmFyIFBvaW50RCA9IF9fd2VicGFja19yZXF1aXJlX18oMCkubGF5b3V0QmFzZS5Qb2ludEQ7XG52YXIgRGltZW5zaW9uRCA9IF9fd2VicGFja19yZXF1aXJlX18oMCkubGF5b3V0QmFzZS5EaW1lbnNpb25EO1xuXG52YXIgZGVmYXVsdHMgPSB7XG4gIC8vIENhbGxlZCBvbiBgbGF5b3V0cmVhZHlgXG4gIHJlYWR5OiBmdW5jdGlvbiByZWFkeSgpIHt9LFxuICAvLyBDYWxsZWQgb24gYGxheW91dHN0b3BgXG4gIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7fSxcbiAgLy8gJ2RyYWZ0JywgJ2RlZmF1bHQnIG9yICdwcm9vZlwiIFxuICAvLyAtICdkcmFmdCcgZmFzdCBjb29saW5nIHJhdGUgXG4gIC8vIC0gJ2RlZmF1bHQnIG1vZGVyYXRlIGNvb2xpbmcgcmF0ZSBcbiAgLy8gLSBcInByb29mXCIgc2xvdyBjb29saW5nIHJhdGVcbiAgcXVhbGl0eTogJ2RlZmF1bHQnLFxuICAvLyBpbmNsdWRlIGxhYmVscyBpbiBub2RlIGRpbWVuc2lvbnNcbiAgbm9kZURpbWVuc2lvbnNJbmNsdWRlTGFiZWxzOiBmYWxzZSxcbiAgLy8gbnVtYmVyIG9mIHRpY2tzIHBlciBmcmFtZTsgaGlnaGVyIGlzIGZhc3RlciBidXQgbW9yZSBqZXJreVxuICByZWZyZXNoOiAzMCxcbiAgLy8gV2hldGhlciB0byBmaXQgdGhlIG5ldHdvcmsgdmlldyBhZnRlciB3aGVuIGRvbmVcbiAgZml0OiB0cnVlLFxuICAvLyBQYWRkaW5nIG9uIGZpdFxuICBwYWRkaW5nOiAxMCxcbiAgLy8gV2hldGhlciB0byBlbmFibGUgaW5jcmVtZW50YWwgbW9kZVxuICByYW5kb21pemU6IHRydWUsXG4gIC8vIE5vZGUgcmVwdWxzaW9uIChub24gb3ZlcmxhcHBpbmcpIG11bHRpcGxpZXJcbiAgbm9kZVJlcHVsc2lvbjogNDUwMCxcbiAgLy8gSWRlYWwgZWRnZSAobm9uIG5lc3RlZCkgbGVuZ3RoXG4gIGlkZWFsRWRnZUxlbmd0aDogNTAsXG4gIC8vIERpdmlzb3IgdG8gY29tcHV0ZSBlZGdlIGZvcmNlc1xuICBlZGdlRWxhc3RpY2l0eTogMC40NSxcbiAgLy8gTmVzdGluZyBmYWN0b3IgKG11bHRpcGxpZXIpIHRvIGNvbXB1dGUgaWRlYWwgZWRnZSBsZW5ndGggZm9yIG5lc3RlZCBlZGdlc1xuICBuZXN0aW5nRmFjdG9yOiAwLjEsXG4gIC8vIEdyYXZpdHkgZm9yY2UgKGNvbnN0YW50KVxuICBncmF2aXR5OiAwLjI1LFxuICAvLyBNYXhpbXVtIG51bWJlciBvZiBpdGVyYXRpb25zIHRvIHBlcmZvcm1cbiAgbnVtSXRlcjogMjUwMCxcbiAgLy8gRm9yIGVuYWJsaW5nIHRpbGluZ1xuICB0aWxlOiB0cnVlLFxuICAvLyBUeXBlIG9mIGxheW91dCBhbmltYXRpb24uIFRoZSBvcHRpb24gc2V0IGlzIHsnZHVyaW5nJywgJ2VuZCcsIGZhbHNlfVxuICBhbmltYXRlOiAnZW5kJyxcbiAgLy8gRHVyYXRpb24gZm9yIGFuaW1hdGU6ZW5kXG4gIGFuaW1hdGlvbkR1cmF0aW9uOiA1MDAsXG4gIC8vIFJlcHJlc2VudHMgdGhlIGFtb3VudCBvZiB0aGUgdmVydGljYWwgc3BhY2UgdG8gcHV0IGJldHdlZW4gdGhlIHplcm8gZGVncmVlIG1lbWJlcnMgZHVyaW5nIHRoZSB0aWxpbmcgb3BlcmF0aW9uKGNhbiBhbHNvIGJlIGEgZnVuY3Rpb24pXG4gIHRpbGluZ1BhZGRpbmdWZXJ0aWNhbDogMTAsXG4gIC8vIFJlcHJlc2VudHMgdGhlIGFtb3VudCBvZiB0aGUgaG9yaXpvbnRhbCBzcGFjZSB0byBwdXQgYmV0d2VlbiB0aGUgemVybyBkZWdyZWUgbWVtYmVycyBkdXJpbmcgdGhlIHRpbGluZyBvcGVyYXRpb24oY2FuIGFsc28gYmUgYSBmdW5jdGlvbilcbiAgdGlsaW5nUGFkZGluZ0hvcml6b250YWw6IDEwLFxuICAvLyBHcmF2aXR5IHJhbmdlIChjb25zdGFudCkgZm9yIGNvbXBvdW5kc1xuICBncmF2aXR5UmFuZ2VDb21wb3VuZDogMS41LFxuICAvLyBHcmF2aXR5IGZvcmNlIChjb25zdGFudCkgZm9yIGNvbXBvdW5kc1xuICBncmF2aXR5Q29tcG91bmQ6IDEuMCxcbiAgLy8gR3Jhdml0eSByYW5nZSAoY29uc3RhbnQpXG4gIGdyYXZpdHlSYW5nZTogMy44LFxuICAvLyBJbml0aWFsIGNvb2xpbmcgZmFjdG9yIGZvciBpbmNyZW1lbnRhbCBsYXlvdXRcbiAgaW5pdGlhbEVuZXJneU9uSW5jcmVtZW50YWw6IDAuNVxufTtcblxuZnVuY3Rpb24gZXh0ZW5kKGRlZmF1bHRzLCBvcHRpb25zKSB7XG4gIHZhciBvYmogPSB7fTtcblxuICBmb3IgKHZhciBpIGluIGRlZmF1bHRzKSB7XG4gICAgb2JqW2ldID0gZGVmYXVsdHNbaV07XG4gIH1cblxuICBmb3IgKHZhciBpIGluIG9wdGlvbnMpIHtcbiAgICBvYmpbaV0gPSBvcHRpb25zW2ldO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn07XG5cbmZ1bmN0aW9uIF9Db1NFTGF5b3V0KF9vcHRpb25zKSB7XG4gIHRoaXMub3B0aW9ucyA9IGV4dGVuZChkZWZhdWx0cywgX29wdGlvbnMpO1xuICBnZXRVc2VyT3B0aW9ucyh0aGlzLm9wdGlvbnMpO1xufVxuXG52YXIgZ2V0VXNlck9wdGlvbnMgPSBmdW5jdGlvbiBnZXRVc2VyT3B0aW9ucyhvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zLm5vZGVSZXB1bHNpb24gIT0gbnVsbCkgQ29TRUNvbnN0YW50cy5ERUZBVUxUX1JFUFVMU0lPTl9TVFJFTkdUSCA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfUkVQVUxTSU9OX1NUUkVOR1RIID0gb3B0aW9ucy5ub2RlUmVwdWxzaW9uO1xuICBpZiAob3B0aW9ucy5pZGVhbEVkZ2VMZW5ndGggIT0gbnVsbCkgQ29TRUNvbnN0YW50cy5ERUZBVUxUX0VER0VfTEVOR1RIID0gRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9FREdFX0xFTkdUSCA9IG9wdGlvbnMuaWRlYWxFZGdlTGVuZ3RoO1xuICBpZiAob3B0aW9ucy5lZGdlRWxhc3RpY2l0eSAhPSBudWxsKSBDb1NFQ29uc3RhbnRzLkRFRkFVTFRfU1BSSU5HX1NUUkVOR1RIID0gRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9TUFJJTkdfU1RSRU5HVEggPSBvcHRpb25zLmVkZ2VFbGFzdGljaXR5O1xuICBpZiAob3B0aW9ucy5uZXN0aW5nRmFjdG9yICE9IG51bGwpIENvU0VDb25zdGFudHMuUEVSX0xFVkVMX0lERUFMX0VER0VfTEVOR1RIX0ZBQ1RPUiA9IEZETGF5b3V0Q29uc3RhbnRzLlBFUl9MRVZFTF9JREVBTF9FREdFX0xFTkdUSF9GQUNUT1IgPSBvcHRpb25zLm5lc3RpbmdGYWN0b3I7XG4gIGlmIChvcHRpb25zLmdyYXZpdHkgIT0gbnVsbCkgQ29TRUNvbnN0YW50cy5ERUZBVUxUX0dSQVZJVFlfU1RSRU5HVEggPSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0dSQVZJVFlfU1RSRU5HVEggPSBvcHRpb25zLmdyYXZpdHk7XG4gIGlmIChvcHRpb25zLm51bUl0ZXIgIT0gbnVsbCkgQ29TRUNvbnN0YW50cy5NQVhfSVRFUkFUSU9OUyA9IEZETGF5b3V0Q29uc3RhbnRzLk1BWF9JVEVSQVRJT05TID0gb3B0aW9ucy5udW1JdGVyO1xuICBpZiAob3B0aW9ucy5ncmF2aXR5UmFuZ2UgIT0gbnVsbCkgQ29TRUNvbnN0YW50cy5ERUZBVUxUX0dSQVZJVFlfUkFOR0VfRkFDVE9SID0gRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9HUkFWSVRZX1JBTkdFX0ZBQ1RPUiA9IG9wdGlvbnMuZ3Jhdml0eVJhbmdlO1xuICBpZiAob3B0aW9ucy5ncmF2aXR5Q29tcG91bmQgIT0gbnVsbCkgQ29TRUNvbnN0YW50cy5ERUZBVUxUX0NPTVBPVU5EX0dSQVZJVFlfU1RSRU5HVEggPSBGRExheW91dENvbnN0YW50cy5ERUZBVUxUX0NPTVBPVU5EX0dSQVZJVFlfU1RSRU5HVEggPSBvcHRpb25zLmdyYXZpdHlDb21wb3VuZDtcbiAgaWYgKG9wdGlvbnMuZ3Jhdml0eVJhbmdlQ29tcG91bmQgIT0gbnVsbCkgQ29TRUNvbnN0YW50cy5ERUZBVUxUX0NPTVBPVU5EX0dSQVZJVFlfUkFOR0VfRkFDVE9SID0gRkRMYXlvdXRDb25zdGFudHMuREVGQVVMVF9DT01QT1VORF9HUkFWSVRZX1JBTkdFX0ZBQ1RPUiA9IG9wdGlvbnMuZ3Jhdml0eVJhbmdlQ29tcG91bmQ7XG4gIGlmIChvcHRpb25zLmluaXRpYWxFbmVyZ3lPbkluY3JlbWVudGFsICE9IG51bGwpIENvU0VDb25zdGFudHMuREVGQVVMVF9DT09MSU5HX0ZBQ1RPUl9JTkNSRU1FTlRBTCA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfQ09PTElOR19GQUNUT1JfSU5DUkVNRU5UQUwgPSBvcHRpb25zLmluaXRpYWxFbmVyZ3lPbkluY3JlbWVudGFsO1xuXG4gIGlmIChvcHRpb25zLnF1YWxpdHkgPT0gJ2RyYWZ0JykgTGF5b3V0Q29uc3RhbnRzLlFVQUxJVFkgPSAwO2Vsc2UgaWYgKG9wdGlvbnMucXVhbGl0eSA9PSAncHJvb2YnKSBMYXlvdXRDb25zdGFudHMuUVVBTElUWSA9IDI7ZWxzZSBMYXlvdXRDb25zdGFudHMuUVVBTElUWSA9IDE7XG5cbiAgQ29TRUNvbnN0YW50cy5OT0RFX0RJTUVOU0lPTlNfSU5DTFVERV9MQUJFTFMgPSBGRExheW91dENvbnN0YW50cy5OT0RFX0RJTUVOU0lPTlNfSU5DTFVERV9MQUJFTFMgPSBMYXlvdXRDb25zdGFudHMuTk9ERV9ESU1FTlNJT05TX0lOQ0xVREVfTEFCRUxTID0gb3B0aW9ucy5ub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHM7XG4gIENvU0VDb25zdGFudHMuREVGQVVMVF9JTkNSRU1FTlRBTCA9IEZETGF5b3V0Q29uc3RhbnRzLkRFRkFVTFRfSU5DUkVNRU5UQUwgPSBMYXlvdXRDb25zdGFudHMuREVGQVVMVF9JTkNSRU1FTlRBTCA9ICFvcHRpb25zLnJhbmRvbWl6ZTtcbiAgQ29TRUNvbnN0YW50cy5BTklNQVRFID0gRkRMYXlvdXRDb25zdGFudHMuQU5JTUFURSA9IExheW91dENvbnN0YW50cy5BTklNQVRFID0gb3B0aW9ucy5hbmltYXRlO1xuICBDb1NFQ29uc3RhbnRzLlRJTEUgPSBvcHRpb25zLnRpbGU7XG4gIENvU0VDb25zdGFudHMuVElMSU5HX1BBRERJTkdfVkVSVElDQUwgPSB0eXBlb2Ygb3B0aW9ucy50aWxpbmdQYWRkaW5nVmVydGljYWwgPT09ICdmdW5jdGlvbicgPyBvcHRpb25zLnRpbGluZ1BhZGRpbmdWZXJ0aWNhbC5jYWxsKCkgOiBvcHRpb25zLnRpbGluZ1BhZGRpbmdWZXJ0aWNhbDtcbiAgQ29TRUNvbnN0YW50cy5USUxJTkdfUEFERElOR19IT1JJWk9OVEFMID0gdHlwZW9mIG9wdGlvbnMudGlsaW5nUGFkZGluZ0hvcml6b250YWwgPT09ICdmdW5jdGlvbicgPyBvcHRpb25zLnRpbGluZ1BhZGRpbmdIb3Jpem9udGFsLmNhbGwoKSA6IG9wdGlvbnMudGlsaW5nUGFkZGluZ0hvcml6b250YWw7XG59O1xuXG5fQ29TRUxheW91dC5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkge1xuICB2YXIgcmVhZHk7XG4gIHZhciBmcmFtZUlkO1xuICB2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgdmFyIGlkVG9MTm9kZSA9IHRoaXMuaWRUb0xOb2RlID0ge307XG4gIHZhciBsYXlvdXQgPSB0aGlzLmxheW91dCA9IG5ldyBDb1NFTGF5b3V0KCk7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICBzZWxmLnN0b3BwZWQgPSBmYWxzZTtcblxuICB0aGlzLmN5ID0gdGhpcy5vcHRpb25zLmN5O1xuXG4gIHRoaXMuY3kudHJpZ2dlcih7IHR5cGU6ICdsYXlvdXRzdGFydCcsIGxheW91dDogdGhpcyB9KTtcblxuICB2YXIgZ20gPSBsYXlvdXQubmV3R3JhcGhNYW5hZ2VyKCk7XG4gIHRoaXMuZ20gPSBnbTtcblxuICB2YXIgbm9kZXMgPSB0aGlzLm9wdGlvbnMuZWxlcy5ub2RlcygpO1xuICB2YXIgZWRnZXMgPSB0aGlzLm9wdGlvbnMuZWxlcy5lZGdlcygpO1xuXG4gIHRoaXMucm9vdCA9IGdtLmFkZFJvb3QoKTtcbiAgdGhpcy5wcm9jZXNzQ2hpbGRyZW5MaXN0KHRoaXMucm9vdCwgdGhpcy5nZXRUb3BNb3N0Tm9kZXMobm9kZXMpLCBsYXlvdXQpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZWRnZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZWRnZSA9IGVkZ2VzW2ldO1xuICAgIHZhciBzb3VyY2VOb2RlID0gdGhpcy5pZFRvTE5vZGVbZWRnZS5kYXRhKFwic291cmNlXCIpXTtcbiAgICB2YXIgdGFyZ2V0Tm9kZSA9IHRoaXMuaWRUb0xOb2RlW2VkZ2UuZGF0YShcInRhcmdldFwiKV07XG4gICAgaWYgKHNvdXJjZU5vZGUgIT09IHRhcmdldE5vZGUgJiYgc291cmNlTm9kZS5nZXRFZGdlc0JldHdlZW4odGFyZ2V0Tm9kZSkubGVuZ3RoID09IDApIHtcbiAgICAgIHZhciBlMSA9IGdtLmFkZChsYXlvdXQubmV3RWRnZSgpLCBzb3VyY2VOb2RlLCB0YXJnZXROb2RlKTtcbiAgICAgIGUxLmlkID0gZWRnZS5pZCgpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBnZXRQb3NpdGlvbnMgPSBmdW5jdGlvbiBnZXRQb3NpdGlvbnMoZWxlLCBpKSB7XG4gICAgaWYgKHR5cGVvZiBlbGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgIGVsZSA9IGk7XG4gICAgfVxuICAgIHZhciB0aGVJZCA9IGVsZS5kYXRhKCdpZCcpO1xuICAgIHZhciBsTm9kZSA9IHNlbGYuaWRUb0xOb2RlW3RoZUlkXTtcblxuICAgIHJldHVybiB7XG4gICAgICB4OiBsTm9kZS5nZXRSZWN0KCkuZ2V0Q2VudGVyWCgpLFxuICAgICAgeTogbE5vZGUuZ2V0UmVjdCgpLmdldENlbnRlclkoKVxuICAgIH07XG4gIH07XG5cbiAgLypcbiAgICogUmVwb3NpdGlvbiBub2RlcyBpbiBpdGVyYXRpb25zIGFuaW1hdGVkbHlcbiAgICovXG4gIHZhciBpdGVyYXRlQW5pbWF0ZWQgPSBmdW5jdGlvbiBpdGVyYXRlQW5pbWF0ZWQoKSB7XG4gICAgLy8gVGhpZ3MgdG8gcGVyZm9ybSBhZnRlciBub2RlcyBhcmUgcmVwb3NpdGlvbmVkIG9uIHNjcmVlblxuICAgIHZhciBhZnRlclJlcG9zaXRpb24gPSBmdW5jdGlvbiBhZnRlclJlcG9zaXRpb24oKSB7XG4gICAgICBpZiAob3B0aW9ucy5maXQpIHtcbiAgICAgICAgb3B0aW9ucy5jeS5maXQob3B0aW9ucy5lbGVzLCBvcHRpb25zLnBhZGRpbmcpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlYWR5KSB7XG4gICAgICAgIHJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgc2VsZi5jeS5vbmUoJ2xheW91dHJlYWR5Jywgb3B0aW9ucy5yZWFkeSk7XG4gICAgICAgIHNlbGYuY3kudHJpZ2dlcih7IHR5cGU6ICdsYXlvdXRyZWFkeScsIGxheW91dDogc2VsZiB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIHRpY2tzUGVyRnJhbWUgPSBzZWxmLm9wdGlvbnMucmVmcmVzaDtcbiAgICB2YXIgaXNEb25lO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aWNrc1BlckZyYW1lICYmICFpc0RvbmU7IGkrKykge1xuICAgICAgaXNEb25lID0gc2VsZi5zdG9wcGVkIHx8IHNlbGYubGF5b3V0LnRpY2soKTtcbiAgICB9XG5cbiAgICAvLyBJZiBsYXlvdXQgaXMgZG9uZVxuICAgIGlmIChpc0RvbmUpIHtcbiAgICAgIC8vIElmIHRoZSBsYXlvdXQgaXMgbm90IGEgc3VibGF5b3V0IGFuZCBpdCBpcyBzdWNjZXNzZnVsIHBlcmZvcm0gcG9zdCBsYXlvdXQuXG4gICAgICBpZiAobGF5b3V0LmNoZWNrTGF5b3V0U3VjY2VzcygpICYmICFsYXlvdXQuaXNTdWJMYXlvdXQpIHtcbiAgICAgICAgbGF5b3V0LmRvUG9zdExheW91dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiBsYXlvdXQgaGFzIGEgdGlsaW5nUG9zdExheW91dCBmdW5jdGlvbiBwcm9wZXJ0eSBjYWxsIGl0LlxuICAgICAgaWYgKGxheW91dC50aWxpbmdQb3N0TGF5b3V0KSB7XG4gICAgICAgIGxheW91dC50aWxpbmdQb3N0TGF5b3V0KCk7XG4gICAgICB9XG5cbiAgICAgIGxheW91dC5pc0xheW91dEZpbmlzaGVkID0gdHJ1ZTtcblxuICAgICAgc2VsZi5vcHRpb25zLmVsZXMubm9kZXMoKS5wb3NpdGlvbnMoZ2V0UG9zaXRpb25zKTtcblxuICAgICAgYWZ0ZXJSZXBvc2l0aW9uKCk7XG5cbiAgICAgIC8vIHRyaWdnZXIgbGF5b3V0c3RvcCB3aGVuIHRoZSBsYXlvdXQgc3RvcHMgKGUuZy4gZmluaXNoZXMpXG4gICAgICBzZWxmLmN5Lm9uZSgnbGF5b3V0c3RvcCcsIHNlbGYub3B0aW9ucy5zdG9wKTtcbiAgICAgIHNlbGYuY3kudHJpZ2dlcih7IHR5cGU6ICdsYXlvdXRzdG9wJywgbGF5b3V0OiBzZWxmIH0pO1xuXG4gICAgICBpZiAoZnJhbWVJZCkge1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZUlkKTtcbiAgICAgIH1cblxuICAgICAgcmVhZHkgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgYW5pbWF0aW9uRGF0YSA9IHNlbGYubGF5b3V0LmdldFBvc2l0aW9uc0RhdGEoKTsgLy8gR2V0IHBvc2l0aW9ucyBvZiBsYXlvdXQgbm9kZXMgbm90ZSB0aGF0IGFsbCBub2RlcyBtYXkgbm90IGJlIGxheW91dCBub2RlcyBiZWNhdXNlIG9mIHRpbGluZ1xuXG4gICAgLy8gUG9zaXRpb24gbm9kZXMsIGZvciB0aGUgbm9kZXMgd2hvc2UgaWQgZG9lcyBub3QgaW5jbHVkZWQgaW4gZGF0YSAoYmVjYXVzZSB0aGV5IGFyZSByZW1vdmVkIGZyb20gdGhlaXIgcGFyZW50cyBhbmQgaW5jbHVkZWQgaW4gZHVtbXkgY29tcG91bmRzKVxuICAgIC8vIHVzZSBwb3NpdGlvbiBvZiB0aGVpciBhbmNlc3RvcnMgb3IgZHVtbXkgYW5jZXN0b3JzXG4gICAgb3B0aW9ucy5lbGVzLm5vZGVzKCkucG9zaXRpb25zKGZ1bmN0aW9uIChlbGUsIGkpIHtcbiAgICAgIGlmICh0eXBlb2YgZWxlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIGVsZSA9IGk7XG4gICAgICB9XG4gICAgICAvLyBJZiBlbGUgaXMgYSBjb21wb3VuZCBub2RlLCB0aGVuIGl0cyBwb3NpdGlvbiB3aWxsIGJlIGRlZmluZWQgYnkgaXRzIGNoaWxkcmVuXG4gICAgICBpZiAoIWVsZS5pc1BhcmVudCgpKSB7XG4gICAgICAgIHZhciB0aGVJZCA9IGVsZS5pZCgpO1xuICAgICAgICB2YXIgcE5vZGUgPSBhbmltYXRpb25EYXRhW3RoZUlkXTtcbiAgICAgICAgdmFyIHRlbXAgPSBlbGU7XG4gICAgICAgIC8vIElmIHBOb2RlIGlzIHVuZGVmaW5lZCBzZWFyY2ggdW50aWwgZmluZGluZyBwb3NpdGlvbiBkYXRhIG9mIGl0cyBmaXJzdCBhbmNlc3RvciAoSXQgbWF5IGJlIGR1bW15IGFzIHdlbGwpXG4gICAgICAgIHdoaWxlIChwTm9kZSA9PSBudWxsKSB7XG4gICAgICAgICAgcE5vZGUgPSBhbmltYXRpb25EYXRhW3RlbXAuZGF0YSgncGFyZW50JyldIHx8IGFuaW1hdGlvbkRhdGFbJ0R1bW15Q29tcG91bmRfJyArIHRlbXAuZGF0YSgncGFyZW50JyldO1xuICAgICAgICAgIGFuaW1hdGlvbkRhdGFbdGhlSWRdID0gcE5vZGU7XG4gICAgICAgICAgdGVtcCA9IHRlbXAucGFyZW50KClbMF07XG4gICAgICAgICAgaWYgKHRlbXAgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBOb2RlICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogcE5vZGUueCxcbiAgICAgICAgICAgIHk6IHBOb2RlLnlcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBlbGUucG9zaXRpb24oJ3gnKSxcbiAgICAgICAgICAgIHk6IGVsZS5wb3NpdGlvbigneScpXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWZ0ZXJSZXBvc2l0aW9uKCk7XG5cbiAgICBmcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGl0ZXJhdGVBbmltYXRlZCk7XG4gIH07XG5cbiAgLypcbiAgKiBMaXN0ZW4gJ2xheW91dHN0YXJ0ZWQnIGV2ZW50IGFuZCBzdGFydCBhbmltYXRlZCBpdGVyYXRpb24gaWYgYW5pbWF0ZSBvcHRpb24gaXMgJ2R1cmluZydcbiAgKi9cbiAgbGF5b3V0LmFkZExpc3RlbmVyKCdsYXlvdXRzdGFydGVkJywgZnVuY3Rpb24gKCkge1xuICAgIGlmIChzZWxmLm9wdGlvbnMuYW5pbWF0ZSA9PT0gJ2R1cmluZycpIHtcbiAgICAgIGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaXRlcmF0ZUFuaW1hdGVkKTtcbiAgICB9XG4gIH0pO1xuXG4gIGxheW91dC5ydW5MYXlvdXQoKTsgLy8gUnVuIGNvc2UgbGF5b3V0XG5cbiAgLypcbiAgICogSWYgYW5pbWF0ZSBvcHRpb24gaXMgbm90ICdkdXJpbmcnICgnZW5kJyBvciBmYWxzZSkgcGVyZm9ybSB0aGVzZSBoZXJlIChJZiBpdCBpcyAnZHVyaW5nJyBzaW1pbGFyIHRoaW5ncyBhcmUgYWxyZWFkeSBwZXJmb3JtZWQpXG4gICAqL1xuICBpZiAodGhpcy5vcHRpb25zLmFuaW1hdGUgIT09IFwiZHVyaW5nXCIpIHtcbiAgICBzZWxmLm9wdGlvbnMuZWxlcy5ub2RlcygpLm5vdChcIjpwYXJlbnRcIikubGF5b3V0UG9zaXRpb25zKHNlbGYsIHNlbGYub3B0aW9ucywgZ2V0UG9zaXRpb25zKTsgLy8gVXNlIGxheW91dCBwb3NpdGlvbnMgdG8gcmVwb3NpdGlvbiB0aGUgbm9kZXMgaXQgY29uc2lkZXJzIHRoZSBvcHRpb25zIHBhcmFtZXRlclxuICAgIHJlYWR5ID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdGhpczsgLy8gY2hhaW5pbmdcbn07XG5cbi8vR2V0IHRoZSB0b3AgbW9zdCBvbmVzIG9mIGEgbGlzdCBvZiBub2Rlc1xuX0NvU0VMYXlvdXQucHJvdG90eXBlLmdldFRvcE1vc3ROb2RlcyA9IGZ1bmN0aW9uIChub2Rlcykge1xuICB2YXIgbm9kZXNNYXAgPSB7fTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgIG5vZGVzTWFwW25vZGVzW2ldLmlkKCldID0gdHJ1ZTtcbiAgfVxuICB2YXIgcm9vdHMgPSBub2Rlcy5maWx0ZXIoZnVuY3Rpb24gKGVsZSwgaSkge1xuICAgIGlmICh0eXBlb2YgZWxlID09PSBcIm51bWJlclwiKSB7XG4gICAgICBlbGUgPSBpO1xuICAgIH1cbiAgICB2YXIgcGFyZW50ID0gZWxlLnBhcmVudCgpWzBdO1xuICAgIHdoaWxlIChwYXJlbnQgIT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGVzTWFwW3BhcmVudC5pZCgpXSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50KClbMF07XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcblxuICByZXR1cm4gcm9vdHM7XG59O1xuXG5fQ29TRUxheW91dC5wcm90b3R5cGUucHJvY2Vzc0NoaWxkcmVuTGlzdCA9IGZ1bmN0aW9uIChwYXJlbnQsIGNoaWxkcmVuLCBsYXlvdXQpIHtcbiAgdmFyIHNpemUgPSBjaGlsZHJlbi5sZW5ndGg7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgdmFyIHRoZUNoaWxkID0gY2hpbGRyZW5baV07XG4gICAgdmFyIGNoaWxkcmVuX29mX2NoaWxkcmVuID0gdGhlQ2hpbGQuY2hpbGRyZW4oKTtcbiAgICB2YXIgdGhlTm9kZTtcblxuICAgIHZhciBkaW1lbnNpb25zID0gdGhlQ2hpbGQubGF5b3V0RGltZW5zaW9ucyh7XG4gICAgICBub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHM6IHRoaXMub3B0aW9ucy5ub2RlRGltZW5zaW9uc0luY2x1ZGVMYWJlbHNcbiAgICB9KTtcblxuICAgIGlmICh0aGVDaGlsZC5vdXRlcldpZHRoKCkgIT0gbnVsbCAmJiB0aGVDaGlsZC5vdXRlckhlaWdodCgpICE9IG51bGwpIHtcbiAgICAgIHRoZU5vZGUgPSBwYXJlbnQuYWRkKG5ldyBDb1NFTm9kZShsYXlvdXQuZ3JhcGhNYW5hZ2VyLCBuZXcgUG9pbnREKHRoZUNoaWxkLnBvc2l0aW9uKCd4JykgLSBkaW1lbnNpb25zLncgLyAyLCB0aGVDaGlsZC5wb3NpdGlvbigneScpIC0gZGltZW5zaW9ucy5oIC8gMiksIG5ldyBEaW1lbnNpb25EKHBhcnNlRmxvYXQoZGltZW5zaW9ucy53KSwgcGFyc2VGbG9hdChkaW1lbnNpb25zLmgpKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGVOb2RlID0gcGFyZW50LmFkZChuZXcgQ29TRU5vZGUodGhpcy5ncmFwaE1hbmFnZXIpKTtcbiAgICB9XG4gICAgLy8gQXR0YWNoIGlkIHRvIHRoZSBsYXlvdXQgbm9kZVxuICAgIHRoZU5vZGUuaWQgPSB0aGVDaGlsZC5kYXRhKFwiaWRcIik7XG4gICAgLy8gQXR0YWNoIHRoZSBwYWRkaW5ncyBvZiBjeSBub2RlIHRvIGxheW91dCBub2RlXG4gICAgdGhlTm9kZS5wYWRkaW5nTGVmdCA9IHBhcnNlSW50KHRoZUNoaWxkLmNzcygncGFkZGluZycpKTtcbiAgICB0aGVOb2RlLnBhZGRpbmdUb3AgPSBwYXJzZUludCh0aGVDaGlsZC5jc3MoJ3BhZGRpbmcnKSk7XG4gICAgdGhlTm9kZS5wYWRkaW5nUmlnaHQgPSBwYXJzZUludCh0aGVDaGlsZC5jc3MoJ3BhZGRpbmcnKSk7XG4gICAgdGhlTm9kZS5wYWRkaW5nQm90dG9tID0gcGFyc2VJbnQodGhlQ2hpbGQuY3NzKCdwYWRkaW5nJykpO1xuXG4gICAgLy9BdHRhY2ggdGhlIGxhYmVsIHByb3BlcnRpZXMgdG8gY29tcG91bmQgaWYgbGFiZWxzIHdpbGwgYmUgaW5jbHVkZWQgaW4gbm9kZSBkaW1lbnNpb25zICBcbiAgICBpZiAodGhpcy5vcHRpb25zLm5vZGVEaW1lbnNpb25zSW5jbHVkZUxhYmVscykge1xuICAgICAgaWYgKHRoZUNoaWxkLmlzUGFyZW50KCkpIHtcbiAgICAgICAgdmFyIGxhYmVsV2lkdGggPSB0aGVDaGlsZC5ib3VuZGluZ0JveCh7IGluY2x1ZGVMYWJlbHM6IHRydWUsIGluY2x1ZGVOb2RlczogZmFsc2UgfSkudztcbiAgICAgICAgdmFyIGxhYmVsSGVpZ2h0ID0gdGhlQ2hpbGQuYm91bmRpbmdCb3goeyBpbmNsdWRlTGFiZWxzOiB0cnVlLCBpbmNsdWRlTm9kZXM6IGZhbHNlIH0pLmg7XG4gICAgICAgIHZhciBsYWJlbFBvcyA9IHRoZUNoaWxkLmNzcyhcInRleHQtaGFsaWduXCIpO1xuICAgICAgICB0aGVOb2RlLmxhYmVsV2lkdGggPSBsYWJlbFdpZHRoO1xuICAgICAgICB0aGVOb2RlLmxhYmVsSGVpZ2h0ID0gbGFiZWxIZWlnaHQ7XG4gICAgICAgIHRoZU5vZGUubGFiZWxQb3MgPSBsYWJlbFBvcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNYXAgdGhlIGxheW91dCBub2RlXG4gICAgdGhpcy5pZFRvTE5vZGVbdGhlQ2hpbGQuZGF0YShcImlkXCIpXSA9IHRoZU5vZGU7XG5cbiAgICBpZiAoaXNOYU4odGhlTm9kZS5yZWN0LngpKSB7XG4gICAgICB0aGVOb2RlLnJlY3QueCA9IDA7XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHRoZU5vZGUucmVjdC55KSkge1xuICAgICAgdGhlTm9kZS5yZWN0LnkgPSAwO1xuICAgIH1cblxuICAgIGlmIChjaGlsZHJlbl9vZl9jaGlsZHJlbiAhPSBudWxsICYmIGNoaWxkcmVuX29mX2NoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciB0aGVOZXdHcmFwaDtcbiAgICAgIHRoZU5ld0dyYXBoID0gbGF5b3V0LmdldEdyYXBoTWFuYWdlcigpLmFkZChsYXlvdXQubmV3R3JhcGgoKSwgdGhlTm9kZSk7XG4gICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbkxpc3QodGhlTmV3R3JhcGgsIGNoaWxkcmVuX29mX2NoaWxkcmVuLCBsYXlvdXQpO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBAYnJpZWYgOiBjYWxsZWQgb24gY29udGludW91cyBsYXlvdXRzIHRvIHN0b3AgdGhlbSBiZWZvcmUgdGhleSBmaW5pc2hcbiAqL1xuX0NvU0VMYXlvdXQucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc3RvcHBlZCA9IHRydWU7XG5cbiAgcmV0dXJuIHRoaXM7IC8vIGNoYWluaW5nXG59O1xuXG52YXIgcmVnaXN0ZXIgPSBmdW5jdGlvbiByZWdpc3RlcihjeXRvc2NhcGUpIHtcbiAgLy8gIHZhciBMYXlvdXQgPSBnZXRMYXlvdXQoIGN5dG9zY2FwZSApO1xuXG4gIGN5dG9zY2FwZSgnbGF5b3V0JywgJ2Nvc2UtYmlsa2VudCcsIF9Db1NFTGF5b3V0KTtcbn07XG5cbi8vIGF1dG8gcmVnIGZvciBnbG9iYWxzXG5pZiAodHlwZW9mIGN5dG9zY2FwZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgcmVnaXN0ZXIoY3l0b3NjYXBlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByZWdpc3RlcjtcblxuLyoqKi8gfSlcbi8qKioqKiovIF0pO1xufSk7IiwKICAgICJpbXBvcnQgeyBsIGFzIGxvZywgYyBhcyBnZXRDb25maWcsIEIgYXMgZGVmYXVsdENvbmZpZywgZCBhcyBzYW5pdGl6ZVRleHQsIEQgYXMgcGFyc2VGb250U2l6ZSwgQSBhcyBzZWxlY3RTdmdFbGVtZW50LCBvIGFzIHNldHVwR3JhcGhWaWV3Ym94IH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IGN5dG9zY2FwZSBmcm9tIFwiY3l0b3NjYXBlXCI7XG5pbXBvcnQgY29zZUJpbGtlbnQgZnJvbSBcImN5dG9zY2FwZS1jb3NlLWJpbGtlbnRcIjtcbmltcG9ydCB7IHNlbGVjdCB9IGZyb20gXCJkM1wiO1xuaW1wb3J0IHsgYSBhcyBjcmVhdGVUZXh0IH0gZnJvbSBcIi4vY3JlYXRlVGV4dC1jYTBjNTIxNi5qc1wiO1xuaW1wb3J0IHsgaXNEYXJrLCBsaWdodGVuLCBkYXJrZW4gfSBmcm9tIFwia2hyb21hXCI7XG5pbXBvcnQgXCJ0cy1kZWRlbnRcIjtcbmltcG9ydCBcImRheWpzXCI7XG5pbXBvcnQgXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IFwiZG9tcHVyaWZ5XCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lcmdlLmpzXCI7XG5pbXBvcnQgXCJzdHlsaXNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9pc0VtcHR5LmpzXCI7XG5pbXBvcnQgXCJtZGFzdC11dGlsLWZyb20tbWFya2Rvd25cIjtcbnZhciBwYXJzZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIG8gPSBmdW5jdGlvbihrLCB2LCBvMiwgbCkge1xuICAgIGZvciAobzIgPSBvMiB8fCB7fSwgbCA9IGsubGVuZ3RoOyBsLS07IG8yW2tbbF1dID0gdilcbiAgICAgIDtcbiAgICByZXR1cm4gbzI7XG4gIH0sICRWMCA9IFsxLCA0XSwgJFYxID0gWzEsIDEzXSwgJFYyID0gWzEsIDEyXSwgJFYzID0gWzEsIDE1XSwgJFY0ID0gWzEsIDE2XSwgJFY1ID0gWzEsIDIwXSwgJFY2ID0gWzEsIDE5XSwgJFY3ID0gWzYsIDcsIDhdLCAkVjggPSBbMSwgMjZdLCAkVjkgPSBbMSwgMjRdLCAkVmEgPSBbMSwgMjVdLCAkVmIgPSBbNiwgNywgMTFdLCAkVmMgPSBbMSwgNiwgMTMsIDE1LCAxNiwgMTksIDIyXSwgJFZkID0gWzEsIDMzXSwgJFZlID0gWzEsIDM0XSwgJFZmID0gWzEsIDYsIDcsIDExLCAxMywgMTUsIDE2LCAxOSwgMjJdO1xuICB2YXIgcGFyc2VyMiA9IHtcbiAgICB0cmFjZTogZnVuY3Rpb24gdHJhY2UoKSB7XG4gICAgfSxcbiAgICB5eToge30sXG4gICAgc3ltYm9sc186IHsgXCJlcnJvclwiOiAyLCBcInN0YXJ0XCI6IDMsIFwibWluZE1hcFwiOiA0LCBcInNwYWNlTGluZXNcIjogNSwgXCJTUEFDRUxJTkVcIjogNiwgXCJOTFwiOiA3LCBcIk1JTkRNQVBcIjogOCwgXCJkb2N1bWVudFwiOiA5LCBcInN0b3BcIjogMTAsIFwiRU9GXCI6IDExLCBcInN0YXRlbWVudFwiOiAxMiwgXCJTUEFDRUxJU1RcIjogMTMsIFwibm9kZVwiOiAxNCwgXCJJQ09OXCI6IDE1LCBcIkNMQVNTXCI6IDE2LCBcIm5vZGVXaXRoSWRcIjogMTcsIFwibm9kZVdpdGhvdXRJZFwiOiAxOCwgXCJOT0RFX0RTVEFSVFwiOiAxOSwgXCJOT0RFX0RFU0NSXCI6IDIwLCBcIk5PREVfREVORFwiOiAyMSwgXCJOT0RFX0lEXCI6IDIyLCBcIiRhY2NlcHRcIjogMCwgXCIkZW5kXCI6IDEgfSxcbiAgICB0ZXJtaW5hbHNfOiB7IDI6IFwiZXJyb3JcIiwgNjogXCJTUEFDRUxJTkVcIiwgNzogXCJOTFwiLCA4OiBcIk1JTkRNQVBcIiwgMTE6IFwiRU9GXCIsIDEzOiBcIlNQQUNFTElTVFwiLCAxNTogXCJJQ09OXCIsIDE2OiBcIkNMQVNTXCIsIDE5OiBcIk5PREVfRFNUQVJUXCIsIDIwOiBcIk5PREVfREVTQ1JcIiwgMjE6IFwiTk9ERV9ERU5EXCIsIDIyOiBcIk5PREVfSURcIiB9LFxuICAgIHByb2R1Y3Rpb25zXzogWzAsIFszLCAxXSwgWzMsIDJdLCBbNSwgMV0sIFs1LCAyXSwgWzUsIDJdLCBbNCwgMl0sIFs0LCAzXSwgWzEwLCAxXSwgWzEwLCAxXSwgWzEwLCAxXSwgWzEwLCAyXSwgWzEwLCAyXSwgWzksIDNdLCBbOSwgMl0sIFsxMiwgMl0sIFsxMiwgMl0sIFsxMiwgMl0sIFsxMiwgMV0sIFsxMiwgMV0sIFsxMiwgMV0sIFsxMiwgMV0sIFsxMiwgMV0sIFsxNCwgMV0sIFsxNCwgMV0sIFsxOCwgM10sIFsxNywgMV0sIFsxNywgNF1dLFxuICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eXRleHQsIHl5bGVuZywgeXlsaW5lbm8sIHl5LCB5eXN0YXRlLCAkJCwgXyQpIHtcbiAgICAgIHZhciAkMCA9ICQkLmxlbmd0aCAtIDE7XG4gICAgICBzd2l0Y2ggKHl5c3RhdGUpIHtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgcmV0dXJuIHl5O1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkudHJhY2UoXCJTdG9wIE5MIFwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA5OlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiU3RvcCBFT0YgXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiU3RvcCBOTDIgXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiU3RvcCBFT0YyIFwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5pbmZvKFwiTm9kZTogXCIsICQkWyQwXS5pZCk7XG4gICAgICAgICAgeXkuYWRkTm9kZSgkJFskMCAtIDFdLmxlbmd0aCwgJCRbJDBdLmlkLCAkJFskMF0uZGVzY3IsICQkWyQwXS50eXBlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS50cmFjZShcIkljb246IFwiLCAkJFskMF0pO1xuICAgICAgICAgIHl5LmRlY29yYXRlTm9kZSh7IGljb246ICQkWyQwXSB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNzpcbiAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICB5eS5kZWNvcmF0ZU5vZGUoeyBjbGFzczogJCRbJDBdIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiU1BBQ0VMSVNUXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiTm9kZTogXCIsICQkWyQwXS5pZCk7XG4gICAgICAgICAgeXkuYWRkTm9kZSgwLCAkJFskMF0uaWQsICQkWyQwXS5kZXNjciwgJCRbJDBdLnR5cGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgIHl5LmRlY29yYXRlTm9kZSh7IGljb246ICQkWyQwXSB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS50cmFjZShcIm5vZGUgZm91bmQgLi5cIiwgJCRbJDAgLSAyXSk7XG4gICAgICAgICAgdGhpcy4kID0geyBpZDogJCRbJDAgLSAxXSwgZGVzY3I6ICQkWyQwIC0gMV0sIHR5cGU6IHl5LmdldFR5cGUoJCRbJDAgLSAyXSwgJCRbJDBdKSB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIHRoaXMuJCA9IHsgaWQ6ICQkWyQwXSwgZGVzY3I6ICQkWyQwXSwgdHlwZTogeXkubm9kZVR5cGUuREVGQVVMVCB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwibm9kZSBmb3VuZCAuLlwiLCAkJFskMCAtIDNdKTtcbiAgICAgICAgICB0aGlzLiQgPSB7IGlkOiAkJFskMCAtIDNdLCBkZXNjcjogJCRbJDAgLSAxXSwgdHlwZTogeXkuZ2V0VHlwZSgkJFskMCAtIDJdLCAkJFskMF0pIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSxcbiAgICB0YWJsZTogW3sgMzogMSwgNDogMiwgNTogMywgNjogWzEsIDVdLCA4OiAkVjAgfSwgeyAxOiBbM10gfSwgeyAxOiBbMiwgMV0gfSwgeyA0OiA2LCA2OiBbMSwgN10sIDc6IFsxLCA4XSwgODogJFYwIH0sIHsgNjogJFYxLCA3OiBbMSwgMTBdLCA5OiA5LCAxMjogMTEsIDEzOiAkVjIsIDE0OiAxNCwgMTU6ICRWMywgMTY6ICRWNCwgMTc6IDE3LCAxODogMTgsIDE5OiAkVjUsIDIyOiAkVjYgfSwgbygkVjcsIFsyLCAzXSksIHsgMTogWzIsIDJdIH0sIG8oJFY3LCBbMiwgNF0pLCBvKCRWNywgWzIsIDVdKSwgeyAxOiBbMiwgNl0sIDY6ICRWMSwgMTI6IDIxLCAxMzogJFYyLCAxNDogMTQsIDE1OiAkVjMsIDE2OiAkVjQsIDE3OiAxNywgMTg6IDE4LCAxOTogJFY1LCAyMjogJFY2IH0sIHsgNjogJFYxLCA5OiAyMiwgMTI6IDExLCAxMzogJFYyLCAxNDogMTQsIDE1OiAkVjMsIDE2OiAkVjQsIDE3OiAxNywgMTg6IDE4LCAxOTogJFY1LCAyMjogJFY2IH0sIHsgNjogJFY4LCA3OiAkVjksIDEwOiAyMywgMTE6ICRWYSB9LCBvKCRWYiwgWzIsIDIyXSwgeyAxNzogMTcsIDE4OiAxOCwgMTQ6IDI3LCAxNTogWzEsIDI4XSwgMTY6IFsxLCAyOV0sIDE5OiAkVjUsIDIyOiAkVjYgfSksIG8oJFZiLCBbMiwgMThdKSwgbygkVmIsIFsyLCAxOV0pLCBvKCRWYiwgWzIsIDIwXSksIG8oJFZiLCBbMiwgMjFdKSwgbygkVmIsIFsyLCAyM10pLCBvKCRWYiwgWzIsIDI0XSksIG8oJFZiLCBbMiwgMjZdLCB7IDE5OiBbMSwgMzBdIH0pLCB7IDIwOiBbMSwgMzFdIH0sIHsgNjogJFY4LCA3OiAkVjksIDEwOiAzMiwgMTE6ICRWYSB9LCB7IDE6IFsyLCA3XSwgNjogJFYxLCAxMjogMjEsIDEzOiAkVjIsIDE0OiAxNCwgMTU6ICRWMywgMTY6ICRWNCwgMTc6IDE3LCAxODogMTgsIDE5OiAkVjUsIDIyOiAkVjYgfSwgbygkVmMsIFsyLCAxNF0sIHsgNzogJFZkLCAxMTogJFZlIH0pLCBvKCRWZiwgWzIsIDhdKSwgbygkVmYsIFsyLCA5XSksIG8oJFZmLCBbMiwgMTBdKSwgbygkVmIsIFsyLCAxNV0pLCBvKCRWYiwgWzIsIDE2XSksIG8oJFZiLCBbMiwgMTddKSwgeyAyMDogWzEsIDM1XSB9LCB7IDIxOiBbMSwgMzZdIH0sIG8oJFZjLCBbMiwgMTNdLCB7IDc6ICRWZCwgMTE6ICRWZSB9KSwgbygkVmYsIFsyLCAxMV0pLCBvKCRWZiwgWzIsIDEyXSksIHsgMjE6IFsxLCAzN10gfSwgbygkVmIsIFsyLCAyNV0pLCBvKCRWYiwgWzIsIDI3XSldLFxuICAgIGRlZmF1bHRBY3Rpb25zOiB7IDI6IFsyLCAxXSwgNjogWzIsIDJdIH0sXG4gICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgIGlmIChoYXNoLnJlY292ZXJhYmxlKSB7XG4gICAgICAgIHRoaXMudHJhY2Uoc3RyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICBlcnJvci5oYXNoID0gaGFzaDtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSxcbiAgICBwYXJzZTogZnVuY3Rpb24gcGFyc2UoaW5wdXQpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcywgc3RhY2sgPSBbMF0sIHRzdGFjayA9IFtdLCB2c3RhY2sgPSBbbnVsbF0sIGxzdGFjayA9IFtdLCB0YWJsZSA9IHRoaXMudGFibGUsIHl5dGV4dCA9IFwiXCIsIHl5bGluZW5vID0gMCwgeXlsZW5nID0gMCwgVEVSUk9SID0gMiwgRU9GID0gMTtcbiAgICAgIHZhciBhcmdzID0gbHN0YWNrLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgIHZhciBsZXhlcjIgPSBPYmplY3QuY3JlYXRlKHRoaXMubGV4ZXIpO1xuICAgICAgdmFyIHNoYXJlZFN0YXRlID0geyB5eToge30gfTtcbiAgICAgIGZvciAodmFyIGsgaW4gdGhpcy55eSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMueXksIGspKSB7XG4gICAgICAgICAgc2hhcmVkU3RhdGUueXlba10gPSB0aGlzLnl5W2tdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXhlcjIuc2V0SW5wdXQoaW5wdXQsIHNoYXJlZFN0YXRlLnl5KTtcbiAgICAgIHNoYXJlZFN0YXRlLnl5LmxleGVyID0gbGV4ZXIyO1xuICAgICAgc2hhcmVkU3RhdGUueXkucGFyc2VyID0gdGhpcztcbiAgICAgIGlmICh0eXBlb2YgbGV4ZXIyLnl5bGxvYyA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGxleGVyMi55eWxsb2MgPSB7fTtcbiAgICAgIH1cbiAgICAgIHZhciB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICBsc3RhY2sucHVzaCh5eWxvYyk7XG4gICAgICB2YXIgcmFuZ2VzID0gbGV4ZXIyLm9wdGlvbnMgJiYgbGV4ZXIyLm9wdGlvbnMucmFuZ2VzO1xuICAgICAgaWYgKHR5cGVvZiBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFyc2VFcnJvciA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5wYXJzZUVycm9yO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgdG9rZW47XG4gICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpIHx8IGxleGVyMi5sZXgoKSB8fCBFT0Y7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBpZiAodG9rZW4gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgdHN0YWNrID0gdG9rZW47XG4gICAgICAgICAgICB0b2tlbiA9IHRzdGFjay5wb3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdG9rZW4gPSBzZWxmLnN5bWJvbHNfW3Rva2VuXSB8fCB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICB9XG4gICAgICB2YXIgc3ltYm9sLCBzdGF0ZSwgYWN0aW9uLCByLCB5eXZhbCA9IHt9LCBwLCBsZW4sIG5ld1N0YXRlLCBleHBlY3RlZDtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHN0YXRlID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXSkge1xuICAgICAgICAgIGFjdGlvbiA9IHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChzeW1ib2wgPT09IG51bGwgfHwgdHlwZW9mIHN5bWJvbCA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBzeW1ib2wgPSBsZXgoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWN0aW9uID0gdGFibGVbc3RhdGVdICYmIHRhYmxlW3N0YXRlXVtzeW1ib2xdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSBcInVuZGVmaW5lZFwiIHx8ICFhY3Rpb24ubGVuZ3RoIHx8ICFhY3Rpb25bMF0pIHtcbiAgICAgICAgICB2YXIgZXJyU3RyID0gXCJcIjtcbiAgICAgICAgICBleHBlY3RlZCA9IFtdO1xuICAgICAgICAgIGZvciAocCBpbiB0YWJsZVtzdGF0ZV0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRlcm1pbmFsc19bcF0gJiYgcCA+IFRFUlJPUikge1xuICAgICAgICAgICAgICBleHBlY3RlZC5wdXNoKFwiJ1wiICsgdGhpcy50ZXJtaW5hbHNfW3BdICsgXCInXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGV4ZXIyLnNob3dQb3NpdGlvbikge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjpcXG5cIiArIGxleGVyMi5zaG93UG9zaXRpb24oKSArIFwiXFxuRXhwZWN0aW5nIFwiICsgZXhwZWN0ZWQuam9pbihcIiwgXCIpICsgXCIsIGdvdCAnXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOiBVbmV4cGVjdGVkIFwiICsgKHN5bWJvbCA9PSBFT0YgPyBcImVuZCBvZiBpbnB1dFwiIDogXCInXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wYXJzZUVycm9yKGVyclN0ciwge1xuICAgICAgICAgICAgdGV4dDogbGV4ZXIyLm1hdGNoLFxuICAgICAgICAgICAgdG9rZW46IHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCxcbiAgICAgICAgICAgIGxpbmU6IGxleGVyMi55eWxpbmVubyxcbiAgICAgICAgICAgIGxvYzogeXlsb2MsXG4gICAgICAgICAgICBleHBlY3RlZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25bMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBhY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcnNlIEVycm9yOiBtdWx0aXBsZSBhY3Rpb25zIHBvc3NpYmxlIGF0IHN0YXRlOiBcIiArIHN0YXRlICsgXCIsIHRva2VuOiBcIiArIHN5bWJvbCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChhY3Rpb25bMF0pIHtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBzdGFjay5wdXNoKHN5bWJvbCk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaChsZXhlcjIueXl0ZXh0KTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKGxleGVyMi55eWxsb2MpO1xuICAgICAgICAgICAgc3RhY2sucHVzaChhY3Rpb25bMV0pO1xuICAgICAgICAgICAgc3ltYm9sID0gbnVsbDtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgeXlsZW5nID0gbGV4ZXIyLnl5bGVuZztcbiAgICAgICAgICAgICAgeXl0ZXh0ID0gbGV4ZXIyLnl5dGV4dDtcbiAgICAgICAgICAgICAgeXlsaW5lbm8gPSBsZXhlcjIueXlsaW5lbm87XG4gICAgICAgICAgICAgIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGxlbiA9IHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMV07XG4gICAgICAgICAgICB5eXZhbC4kID0gdnN0YWNrW3ZzdGFjay5sZW5ndGggLSBsZW5dO1xuICAgICAgICAgICAgeXl2YWwuXyQgPSB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmFuZ2VzKSB7XG4gICAgICAgICAgICAgIHl5dmFsLl8kLnJhbmdlID0gW1xuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0ucmFuZ2VbMF0sXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5yYW5nZVsxXVxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgciA9IHRoaXMucGVyZm9ybUFjdGlvbi5hcHBseSh5eXZhbCwgW1xuICAgICAgICAgICAgICB5eXRleHQsXG4gICAgICAgICAgICAgIHl5bGVuZyxcbiAgICAgICAgICAgICAgeXlsaW5lbm8sXG4gICAgICAgICAgICAgIHNoYXJlZFN0YXRlLnl5LFxuICAgICAgICAgICAgICBhY3Rpb25bMV0sXG4gICAgICAgICAgICAgIHZzdGFjayxcbiAgICAgICAgICAgICAgbHN0YWNrXG4gICAgICAgICAgICBdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGVuKSB7XG4gICAgICAgICAgICAgIHN0YWNrID0gc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4gKiAyKTtcbiAgICAgICAgICAgICAgdnN0YWNrID0gdnN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgICAgbHN0YWNrID0gbHN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YWNrLnB1c2godGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVswXSk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaCh5eXZhbC4kKTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKHl5dmFsLl8kKTtcbiAgICAgICAgICAgIG5ld1N0YXRlID0gdGFibGVbc3RhY2tbc3RhY2subGVuZ3RoIC0gMl1dW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2gobmV3U3RhdGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfTtcbiAgdmFyIGxleGVyID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGxleGVyMiA9IHtcbiAgICAgIEVPRjogMSxcbiAgICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICAgIGlmICh0aGlzLnl5LnBhcnNlcikge1xuICAgICAgICAgIHRoaXMueXkucGFyc2VyLnBhcnNlRXJyb3Ioc3RyLCBoYXNoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJlc2V0cyB0aGUgbGV4ZXIsIHNldHMgbmV3IGlucHV0XG4gICAgICBzZXRJbnB1dDogZnVuY3Rpb24oaW5wdXQsIHl5KSB7XG4gICAgICAgIHRoaXMueXkgPSB5eSB8fCB0aGlzLnl5IHx8IHt9O1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLl9tb3JlID0gdGhpcy5fYmFja3RyYWNrID0gdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgIHRoaXMueXlsaW5lbm8gPSB0aGlzLnl5bGVuZyA9IDA7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaCA9IFwiXCI7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sgPSBbXCJJTklUSUFMXCJdO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogMCxcbiAgICAgICAgICBsYXN0X2xpbmU6IDEsXG4gICAgICAgICAgbGFzdF9jb2x1bW46IDBcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFswLCAwXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIGNvbnN1bWVzIGFuZCByZXR1cm5zIG9uZSBjaGFyIGZyb20gdGhlIGlucHV0XG4gICAgICBpbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBjaCA9IHRoaXMuX2lucHV0WzBdO1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBjaDtcbiAgICAgICAgdGhpcy55eWxlbmcrKztcbiAgICAgICAgdGhpcy5vZmZzZXQrKztcbiAgICAgICAgdGhpcy5tYXRjaCArPSBjaDtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IGNoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8rKztcbiAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2xpbmUrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbisrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2VbMV0rKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKDEpO1xuICAgICAgICByZXR1cm4gY2g7XG4gICAgICB9LFxuICAgICAgLy8gdW5zaGlmdHMgb25lIGNoYXIgKG9yIGEgc3RyaW5nKSBpbnRvIHRoZSBpbnB1dFxuICAgICAgdW5wdXQ6IGZ1bmN0aW9uKGNoKSB7XG4gICAgICAgIHZhciBsZW4gPSBjaC5sZW5ndGg7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gY2ggKyB0aGlzLl9pbnB1dDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLnl5dGV4dC5zdWJzdHIoMCwgdGhpcy55eXRleHQubGVuZ3RoIC0gbGVuKTtcbiAgICAgICAgdGhpcy5vZmZzZXQgLT0gbGVuO1xuICAgICAgICB2YXIgb2xkTGluZXMgPSB0aGlzLm1hdGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgIHRoaXMubWF0Y2ggPSB0aGlzLm1hdGNoLnN1YnN0cigwLCB0aGlzLm1hdGNoLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSAxKTtcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vIC09IGxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHIgPSB0aGlzLnl5bGxvYy5yYW5nZTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IChsaW5lcy5sZW5ndGggPT09IG9sZExpbmVzLmxlbmd0aCA/IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiA6IDApICsgb2xkTGluZXNbb2xkTGluZXMubGVuZ3RoIC0gbGluZXMubGVuZ3RoXS5sZW5ndGggLSBsaW5lc1swXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gLSBsZW5cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFtyWzBdLCByWzBdICsgdGhpcy55eWxlbmcgLSBsZW5dO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgY2FjaGVzIG1hdGNoZWQgdGV4dCBhbmQgYXBwZW5kcyBpdCBvbiBuZXh0IGFjdGlvblxuICAgICAgbW9yZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgc2lnbmFscyB0aGUgbGV4ZXIgdGhhdCB0aGlzIHJ1bGUgZmFpbHMgdG8gbWF0Y2ggdGhlIGlucHV0LCBzbyB0aGUgbmV4dCBtYXRjaGluZyBydWxlIChyZWdleCkgc2hvdWxkIGJlIHRlc3RlZCBpbnN0ZWFkLlxuICAgICAgcmVqZWN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIgKyAodGhpcy55eWxpbmVubyArIDEpICsgXCIuIFlvdSBjYW4gb25seSBpbnZva2UgcmVqZWN0KCkgaW4gdGhlIGxleGVyIHdoZW4gdGhlIGxleGVyIGlzIG9mIHRoZSBiYWNrdHJhY2tpbmcgcGVyc3Vhc2lvbiAob3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIgPSB0cnVlKS5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyByZXRhaW4gZmlyc3QgbiBjaGFyYWN0ZXJzIG9mIHRoZSBtYXRjaFxuICAgICAgbGVzczogZnVuY3Rpb24obikge1xuICAgICAgICB0aGlzLnVucHV0KHRoaXMubWF0Y2guc2xpY2UobikpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIGFscmVhZHkgbWF0Y2hlZCBpbnB1dCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHBhc3RJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwYXN0ID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gdGhpcy5tYXRjaC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gKHBhc3QubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikgKyBwYXN0LnN1YnN0cigtMjApLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB1cGNvbWluZyBpbnB1dCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHVwY29taW5nSW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbmV4dCA9IHRoaXMubWF0Y2g7XG4gICAgICAgIGlmIChuZXh0Lmxlbmd0aCA8IDIwKSB7XG4gICAgICAgICAgbmV4dCArPSB0aGlzLl9pbnB1dC5zdWJzdHIoMCwgMjAgLSBuZXh0Lmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChuZXh0LnN1YnN0cigwLCAyMCkgKyAobmV4dC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXIgcG9zaXRpb24gd2hlcmUgdGhlIGxleGluZyBlcnJvciBvY2N1cnJlZCwgaS5lLiBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHNob3dQb3NpdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwcmUgPSB0aGlzLnBhc3RJbnB1dCgpO1xuICAgICAgICB2YXIgYyA9IG5ldyBBcnJheShwcmUubGVuZ3RoICsgMSkuam9pbihcIi1cIik7XG4gICAgICAgIHJldHVybiBwcmUgKyB0aGlzLnVwY29taW5nSW5wdXQoKSArIFwiXFxuXCIgKyBjICsgXCJeXCI7XG4gICAgICB9LFxuICAgICAgLy8gdGVzdCB0aGUgbGV4ZWQgdG9rZW46IHJldHVybiBGQUxTRSB3aGVuIG5vdCBhIG1hdGNoLCBvdGhlcndpc2UgcmV0dXJuIHRva2VuXG4gICAgICB0ZXN0X21hdGNoOiBmdW5jdGlvbihtYXRjaCwgaW5kZXhlZF9ydWxlKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbGluZXMsIGJhY2t1cDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICBiYWNrdXAgPSB7XG4gICAgICAgICAgICB5eWxpbmVubzogdGhpcy55eWxpbmVubyxcbiAgICAgICAgICAgIHl5bGxvYzoge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgICAgbGFzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeXl0ZXh0OiB0aGlzLnl5dGV4dCxcbiAgICAgICAgICAgIG1hdGNoOiB0aGlzLm1hdGNoLFxuICAgICAgICAgICAgbWF0Y2hlczogdGhpcy5tYXRjaGVzLFxuICAgICAgICAgICAgbWF0Y2hlZDogdGhpcy5tYXRjaGVkLFxuICAgICAgICAgICAgeXlsZW5nOiB0aGlzLnl5bGVuZyxcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICBfbW9yZTogdGhpcy5fbW9yZSxcbiAgICAgICAgICAgIF9pbnB1dDogdGhpcy5faW5wdXQsXG4gICAgICAgICAgICB5eTogdGhpcy55eSxcbiAgICAgICAgICAgIGNvbmRpdGlvblN0YWNrOiB0aGlzLmNvbmRpdGlvblN0YWNrLnNsaWNlKDApLFxuICAgICAgICAgICAgZG9uZTogdGhpcy5kb25lXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgICAgYmFja3VwLnl5bGxvYy5yYW5nZSA9IHRoaXMueXlsbG9jLnJhbmdlLnNsaWNlKDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsaW5lcyA9IG1hdGNoWzBdLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyArPSBsaW5lcy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MubGFzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGggLSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5tYXRjaCgvXFxyP1xcbj8vKVswXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbiArIG1hdGNoWzBdLmxlbmd0aFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBtYXRjaFswXTtcbiAgICAgICAgdGhpcy5tYXRjaCArPSBtYXRjaFswXTtcbiAgICAgICAgdGhpcy5tYXRjaGVzID0gbWF0Y2g7XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3RoaXMub2Zmc2V0LCB0aGlzLm9mZnNldCArPSB0aGlzLnl5bGVuZ107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbW9yZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZShtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRva2VuID0gdGhpcy5wZXJmb3JtQWN0aW9uLmNhbGwodGhpcywgdGhpcy55eSwgdGhpcywgaW5kZXhlZF9ydWxlLCB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pO1xuICAgICAgICBpZiAodGhpcy5kb25lICYmIHRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgIGZvciAodmFyIGsgaW4gYmFja3VwKSB7XG4gICAgICAgICAgICB0aGlzW2tdID0gYmFja3VwW2tdO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIGluIGlucHV0XG4gICAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5kb25lID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdG9rZW4sIG1hdGNoLCB0ZW1wTWF0Y2gsIGluZGV4O1xuICAgICAgICBpZiAoIXRoaXMuX21vcmUpIHtcbiAgICAgICAgICB0aGlzLnl5dGV4dCA9IFwiXCI7XG4gICAgICAgICAgdGhpcy5tYXRjaCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJ1bGVzID0gdGhpcy5fY3VycmVudFJ1bGVzKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0ZW1wTWF0Y2ggPSB0aGlzLl9pbnB1dC5tYXRjaCh0aGlzLnJ1bGVzW3J1bGVzW2ldXSk7XG4gICAgICAgICAgaWYgKHRlbXBNYXRjaCAmJiAoIW1hdGNoIHx8IHRlbXBNYXRjaFswXS5sZW5ndGggPiBtYXRjaFswXS5sZW5ndGgpKSB7XG4gICAgICAgICAgICBtYXRjaCA9IHRlbXBNYXRjaDtcbiAgICAgICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKHRlbXBNYXRjaCwgcnVsZXNbaV0pO1xuICAgICAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLm9wdGlvbnMuZmxleCkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2gobWF0Y2gsIHJ1bGVzW2luZGV4XSk7XG4gICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0ID09PSBcIlwiKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoXCJMZXhpY2FsIGVycm9yIG9uIGxpbmUgXCIgKyAodGhpcy55eWxpbmVubyArIDEpICsgXCIuIFVucmVjb2duaXplZCB0ZXh0LlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggdGhhdCBoYXMgYSB0b2tlblxuICAgICAgbGV4OiBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciByID0gdGhpcy5uZXh0KCk7XG4gICAgICAgIGlmIChyKSB7XG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubGV4KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhY3RpdmF0ZXMgYSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIChwdXNoZXMgdGhlIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgb250byB0aGUgY29uZGl0aW9uIHN0YWNrKVxuICAgICAgYmVnaW46IGZ1bmN0aW9uIGJlZ2luKGNvbmRpdGlvbikge1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrLnB1c2goY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyBwb3AgdGhlIHByZXZpb3VzbHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvZmYgdGhlIGNvbmRpdGlvbiBzdGFja1xuICAgICAgcG9wU3RhdGU6IGZ1bmN0aW9uIHBvcFN0YXRlKCkge1xuICAgICAgICB2YXIgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKG4gPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2sucG9wKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2tbMF07XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBwcm9kdWNlIHRoZSBsZXhlciBydWxlIHNldCB3aGljaCBpcyBhY3RpdmUgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZVxuICAgICAgX2N1cnJlbnRSdWxlczogZnVuY3Rpb24gX2N1cnJlbnRSdWxlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoICYmIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdXS5ydWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW1wiSU5JVElBTFwiXS5ydWxlcztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGU7IHdoZW4gYW4gaW5kZXggYXJndW1lbnQgaXMgcHJvdmlkZWQgaXQgcHJvZHVjZXMgdGhlIE4tdGggcHJldmlvdXMgY29uZGl0aW9uIHN0YXRlLCBpZiBhdmFpbGFibGVcbiAgICAgIHRvcFN0YXRlOiBmdW5jdGlvbiB0b3BTdGF0ZShuKSB7XG4gICAgICAgIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDEgLSBNYXRoLmFicyhuIHx8IDApO1xuICAgICAgICBpZiAobiA+PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2tbbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFwiSU5JVElBTFwiO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWxpYXMgZm9yIGJlZ2luKGNvbmRpdGlvbilcbiAgICAgIHB1c2hTdGF0ZTogZnVuY3Rpb24gcHVzaFN0YXRlKGNvbmRpdGlvbikge1xuICAgICAgICB0aGlzLmJlZ2luKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdGVzIGN1cnJlbnRseSBvbiB0aGUgc3RhY2tcbiAgICAgIHN0YXRlU3RhY2tTaXplOiBmdW5jdGlvbiBzdGF0ZVN0YWNrU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHsgXCJjYXNlLWluc2Vuc2l0aXZlXCI6IHRydWUgfSxcbiAgICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eSwgeXlfLCAkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zLCBZWV9TVEFSVCkge1xuICAgICAgICBzd2l0Y2ggKCRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS50cmFjZShcIkZvdW5kIGNvbW1lbnRcIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gNjtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXR1cm4gODtcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiQ0xBU1NcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gMTY7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkudHJhY2UoXCJCZWdpbiBpY29uXCIpO1xuICAgICAgICAgICAgdGhpcy5iZWdpbihcIklDT05cIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS50cmFjZShcIlNQQUNFTElORVwiKTtcbiAgICAgICAgICAgIHJldHVybiA2O1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHJldHVybiA3O1xuICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIHJldHVybiAxNTtcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS50cmFjZShcImVuZCBpY29uXCIpO1xuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiRXhwbG9kaW5nIG5vZGVcIik7XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiTk9ERVwiKTtcbiAgICAgICAgICAgIHJldHVybiAxOTtcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkudHJhY2UoXCJDbG91ZFwiKTtcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJOT0RFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE5O1xuICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS50cmFjZShcIkV4cGxvc2lvbiBCYW5nXCIpO1xuICAgICAgICAgICAgdGhpcy5iZWdpbihcIk5PREVcIik7XG4gICAgICAgICAgICByZXR1cm4gMTk7XG4gICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiQ2xvdWQgQmFuZ1wiKTtcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJOT0RFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE5O1xuICAgICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiTk9ERVwiKTtcbiAgICAgICAgICAgIHJldHVybiAxOTtcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIk5PREVcIik7XG4gICAgICAgICAgICByZXR1cm4gMTk7XG4gICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJOT0RFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE5O1xuICAgICAgICAgIGNhc2UgMTc6XG4gICAgICAgICAgICB0aGlzLmJlZ2luKFwiTk9ERVwiKTtcbiAgICAgICAgICAgIHJldHVybiAxOTtcbiAgICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgICAgcmV0dXJuIDEzO1xuICAgICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgICByZXR1cm4gMjI7XG4gICAgICAgICAgY2FzZSAyMDpcbiAgICAgICAgICAgIHJldHVybiAxMTtcbiAgICAgICAgICBjYXNlIDIxOlxuICAgICAgICAgICAgdGhpcy5iZWdpbihcIk5TVFIyXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICAgIHJldHVybiBcIk5PREVfREVTQ1JcIjtcbiAgICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiU3RhcnRpbmcgTlNUUlwiKTtcbiAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJOU1RSXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiZGVzY3JpcHRpb246XCIsIHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERVNDUlwiO1xuICAgICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkudHJhY2UoXCJub2RlIGVuZCApKVwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIk5PREVfREVORFwiO1xuICAgICAgICAgIGNhc2UgMjg6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS50cmFjZShcIm5vZGUgZW5kIClcIik7XG4gICAgICAgICAgICByZXR1cm4gXCJOT0RFX0RFTkRcIjtcbiAgICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkudHJhY2UoXCJub2RlIGVuZCAuLi5cIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gXCJOT0RFX0RFTkRcIjtcbiAgICAgICAgICBjYXNlIDMwOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkudHJhY2UoXCJub2RlIGVuZCAoKFwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIk5PREVfREVORFwiO1xuICAgICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS50cmFjZShcIm5vZGUgZW5kICgtXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERU5EXCI7XG4gICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwibm9kZSBlbmQgKC1cIik7XG4gICAgICAgICAgICByZXR1cm4gXCJOT0RFX0RFTkRcIjtcbiAgICAgICAgICBjYXNlIDMzOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkudHJhY2UoXCJub2RlIGVuZCAoKFwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIk5PREVfREVORFwiO1xuICAgICAgICAgIGNhc2UgMzQ6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS50cmFjZShcIm5vZGUgZW5kICgoXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERU5EXCI7XG4gICAgICAgICAgY2FzZSAzNTpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiTG9uZyBkZXNjcmlwdGlvbjpcIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gMjA7XG4gICAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLnRyYWNlKFwiTG9uZyBkZXNjcmlwdGlvbjpcIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gMjA7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczogWy9eKD86XFxzKiUlLiopL2ksIC9eKD86bWluZG1hcFxcYikvaSwgL14oPzo6OjopL2ksIC9eKD86LispL2ksIC9eKD86XFxuKS9pLCAvXig/Ojo6aWNvblxcKCkvaSwgL14oPzpbXFxzXStbXFxuXSkvaSwgL14oPzpbXFxuXSspL2ksIC9eKD86W15cXCldKykvaSwgL14oPzpcXCkpL2ksIC9eKD86LVxcKSkvaSwgL14oPzpcXCgtKS9pLCAvXig/OlxcKVxcKSkvaSwgL14oPzpcXCkpL2ksIC9eKD86XFwoXFwoKS9pLCAvXig/Olxce1xceykvaSwgL14oPzpcXCgpL2ksIC9eKD86XFxbKS9pLCAvXig/OltcXHNdKykvaSwgL14oPzpbXlxcKFxcW1xcblxcKVxce1xcfV0rKS9pLCAvXig/OiQpL2ksIC9eKD86W1wiXVtgXSkvaSwgL14oPzpbXmBcIl0rKS9pLCAvXig/OltgXVtcIl0pL2ksIC9eKD86W1wiXSkvaSwgL14oPzpbXlwiXSspL2ksIC9eKD86W1wiXSkvaSwgL14oPzpbXFwpXVxcKSkvaSwgL14oPzpbXFwpXSkvaSwgL14oPzpbXFxdXSkvaSwgL14oPzpcXH1cXH0pL2ksIC9eKD86XFwoLSkvaSwgL14oPzotXFwpKS9pLCAvXig/OlxcKFxcKCkvaSwgL14oPzpcXCgpL2ksIC9eKD86W15cXClcXF1cXChcXH1dKykvaSwgL14oPzouKyg/IVxcKFxcKCkpL2ldLFxuICAgICAgY29uZGl0aW9uczogeyBcIkNMQVNTXCI6IHsgXCJydWxlc1wiOiBbMywgNF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiSUNPTlwiOiB7IFwicnVsZXNcIjogWzgsIDldLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIk5TVFIyXCI6IHsgXCJydWxlc1wiOiBbMjIsIDIzXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJOU1RSXCI6IHsgXCJydWxlc1wiOiBbMjUsIDI2XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJOT0RFXCI6IHsgXCJydWxlc1wiOiBbMjEsIDI0LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiSU5JVElBTFwiOiB7IFwicnVsZXNcIjogWzAsIDEsIDIsIDUsIDYsIDcsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMF0sIFwiaW5jbHVzaXZlXCI6IHRydWUgfSB9XG4gICAgfTtcbiAgICByZXR1cm4gbGV4ZXIyO1xuICB9KCk7XG4gIHBhcnNlcjIubGV4ZXIgPSBsZXhlcjtcbiAgZnVuY3Rpb24gUGFyc2VyKCkge1xuICAgIHRoaXMueXkgPSB7fTtcbiAgfVxuICBQYXJzZXIucHJvdG90eXBlID0gcGFyc2VyMjtcbiAgcGFyc2VyMi5QYXJzZXIgPSBQYXJzZXI7XG4gIHJldHVybiBuZXcgUGFyc2VyKCk7XG59KCk7XG5wYXJzZXIucGFyc2VyID0gcGFyc2VyO1xuY29uc3QgcGFyc2VyJDEgPSBwYXJzZXI7XG5sZXQgbm9kZXMgPSBbXTtcbmxldCBjbnQgPSAwO1xubGV0IGVsZW1lbnRzID0ge307XG5jb25zdCBjbGVhciA9ICgpID0+IHtcbiAgbm9kZXMgPSBbXTtcbiAgY250ID0gMDtcbiAgZWxlbWVudHMgPSB7fTtcbn07XG5jb25zdCBnZXRQYXJlbnQgPSBmdW5jdGlvbihsZXZlbCkge1xuICBmb3IgKGxldCBpID0gbm9kZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZiAobm9kZXNbaV0ubGV2ZWwgPCBsZXZlbCkge1xuICAgICAgcmV0dXJuIG5vZGVzW2ldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5jb25zdCBnZXRNaW5kbWFwID0gKCkgPT4ge1xuICByZXR1cm4gbm9kZXMubGVuZ3RoID4gMCA/IG5vZGVzWzBdIDogbnVsbDtcbn07XG5jb25zdCBhZGROb2RlID0gKGxldmVsLCBpZCwgZGVzY3IsIHR5cGUpID0+IHtcbiAgdmFyIF9hLCBfYjtcbiAgbG9nLmluZm8oXCJhZGROb2RlXCIsIGxldmVsLCBpZCwgZGVzY3IsIHR5cGUpO1xuICBjb25zdCBjb25mID0gZ2V0Q29uZmlnKCk7XG4gIGxldCBwYWRkaW5nID0gKChfYSA9IGNvbmYubWluZG1hcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnBhZGRpbmcpID8/IGRlZmF1bHRDb25maWcubWluZG1hcC5wYWRkaW5nO1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIG5vZGVUeXBlLlJPVU5ERURfUkVDVDpcbiAgICBjYXNlIG5vZGVUeXBlLlJFQ1Q6XG4gICAgY2FzZSBub2RlVHlwZS5IRVhBR09OOlxuICAgICAgcGFkZGluZyAqPSAyO1xuICB9XG4gIGNvbnN0IG5vZGUgPSB7XG4gICAgaWQ6IGNudCsrLFxuICAgIG5vZGVJZDogc2FuaXRpemVUZXh0KGlkLCBjb25mKSxcbiAgICBsZXZlbCxcbiAgICBkZXNjcjogc2FuaXRpemVUZXh0KGRlc2NyLCBjb25mKSxcbiAgICB0eXBlLFxuICAgIGNoaWxkcmVuOiBbXSxcbiAgICB3aWR0aDogKChfYiA9IGNvbmYubWluZG1hcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLm1heE5vZGVXaWR0aCkgPz8gZGVmYXVsdENvbmZpZy5taW5kbWFwLm1heE5vZGVXaWR0aCxcbiAgICBwYWRkaW5nXG4gIH07XG4gIGNvbnN0IHBhcmVudCA9IGdldFBhcmVudChsZXZlbCk7XG4gIGlmIChwYXJlbnQpIHtcbiAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICBub2Rlcy5wdXNoKG5vZGUpO1xuICB9IGVsc2Uge1xuICAgIGlmIChub2Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIG5vZGVzLnB1c2gobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZXJlIGNhbiBiZSBvbmx5IG9uZSByb290LiBObyBwYXJlbnQgY291bGQgYmUgZm91bmQgZm9yIChcIicgKyBub2RlLmRlc2NyICsgJ1wiKSdcbiAgICAgICk7XG4gICAgfVxuICB9XG59O1xuY29uc3Qgbm9kZVR5cGUgPSB7XG4gIERFRkFVTFQ6IDAsXG4gIE5PX0JPUkRFUjogMCxcbiAgUk9VTkRFRF9SRUNUOiAxLFxuICBSRUNUOiAyLFxuICBDSVJDTEU6IDMsXG4gIENMT1VEOiA0LFxuICBCQU5HOiA1LFxuICBIRVhBR09OOiA2XG59O1xuY29uc3QgZ2V0VHlwZSA9IChzdGFydFN0ciwgZW5kU3RyKSA9PiB7XG4gIGxvZy5kZWJ1ZyhcIkluIGdldCB0eXBlXCIsIHN0YXJ0U3RyLCBlbmRTdHIpO1xuICBzd2l0Y2ggKHN0YXJ0U3RyKSB7XG4gICAgY2FzZSBcIltcIjpcbiAgICAgIHJldHVybiBub2RlVHlwZS5SRUNUO1xuICAgIGNhc2UgXCIoXCI6XG4gICAgICByZXR1cm4gZW5kU3RyID09PSBcIilcIiA/IG5vZGVUeXBlLlJPVU5ERURfUkVDVCA6IG5vZGVUeXBlLkNMT1VEO1xuICAgIGNhc2UgXCIoKFwiOlxuICAgICAgcmV0dXJuIG5vZGVUeXBlLkNJUkNMRTtcbiAgICBjYXNlIFwiKVwiOlxuICAgICAgcmV0dXJuIG5vZGVUeXBlLkNMT1VEO1xuICAgIGNhc2UgXCIpKVwiOlxuICAgICAgcmV0dXJuIG5vZGVUeXBlLkJBTkc7XG4gICAgY2FzZSBcInt7XCI6XG4gICAgICByZXR1cm4gbm9kZVR5cGUuSEVYQUdPTjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG5vZGVUeXBlLkRFRkFVTFQ7XG4gIH1cbn07XG5jb25zdCBzZXRFbGVtZW50Rm9ySWQgPSAoaWQsIGVsZW1lbnQpID0+IHtcbiAgZWxlbWVudHNbaWRdID0gZWxlbWVudDtcbn07XG5jb25zdCBkZWNvcmF0ZU5vZGUgPSAoZGVjb3JhdGlvbikgPT4ge1xuICBpZiAoIWRlY29yYXRpb24pIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gIGNvbnN0IG5vZGUgPSBub2Rlc1tub2Rlcy5sZW5ndGggLSAxXTtcbiAgaWYgKGRlY29yYXRpb24uaWNvbikge1xuICAgIG5vZGUuaWNvbiA9IHNhbml0aXplVGV4dChkZWNvcmF0aW9uLmljb24sIGNvbmZpZyk7XG4gIH1cbiAgaWYgKGRlY29yYXRpb24uY2xhc3MpIHtcbiAgICBub2RlLmNsYXNzID0gc2FuaXRpemVUZXh0KGRlY29yYXRpb24uY2xhc3MsIGNvbmZpZyk7XG4gIH1cbn07XG5jb25zdCB0eXBlMlN0ciA9ICh0eXBlKSA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2Ugbm9kZVR5cGUuREVGQVVMVDpcbiAgICAgIHJldHVybiBcIm5vLWJvcmRlclwiO1xuICAgIGNhc2Ugbm9kZVR5cGUuUkVDVDpcbiAgICAgIHJldHVybiBcInJlY3RcIjtcbiAgICBjYXNlIG5vZGVUeXBlLlJPVU5ERURfUkVDVDpcbiAgICAgIHJldHVybiBcInJvdW5kZWQtcmVjdFwiO1xuICAgIGNhc2Ugbm9kZVR5cGUuQ0lSQ0xFOlxuICAgICAgcmV0dXJuIFwiY2lyY2xlXCI7XG4gICAgY2FzZSBub2RlVHlwZS5DTE9VRDpcbiAgICAgIHJldHVybiBcImNsb3VkXCI7XG4gICAgY2FzZSBub2RlVHlwZS5CQU5HOlxuICAgICAgcmV0dXJuIFwiYmFuZ1wiO1xuICAgIGNhc2Ugbm9kZVR5cGUuSEVYQUdPTjpcbiAgICAgIHJldHVybiBcImhleGdvblwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gXCJuby1ib3JkZXJcIjtcbiAgfVxufTtcbmNvbnN0IGdldExvZ2dlciA9ICgpID0+IGxvZztcbmNvbnN0IGdldEVsZW1lbnRCeUlkID0gKGlkKSA9PiBlbGVtZW50c1tpZF07XG5jb25zdCBkYiA9IHtcbiAgY2xlYXIsXG4gIGFkZE5vZGUsXG4gIGdldE1pbmRtYXAsXG4gIG5vZGVUeXBlLFxuICBnZXRUeXBlLFxuICBzZXRFbGVtZW50Rm9ySWQsXG4gIGRlY29yYXRlTm9kZSxcbiAgdHlwZTJTdHIsXG4gIGdldExvZ2dlcixcbiAgZ2V0RWxlbWVudEJ5SWRcbn07XG5jb25zdCBkYiQxID0gZGI7XG5jb25zdCBNQVhfU0VDVElPTlMgPSAxMjtcbmNvbnN0IGRlZmF1bHRCa2cgPSBmdW5jdGlvbihkYjIsIGVsZW0sIG5vZGUsIHNlY3Rpb24pIHtcbiAgY29uc3QgcmQgPSA1O1xuICBlbGVtLmFwcGVuZChcInBhdGhcIikuYXR0cihcImlkXCIsIFwibm9kZS1cIiArIG5vZGUuaWQpLmF0dHIoXCJjbGFzc1wiLCBcIm5vZGUtYmtnIG5vZGUtXCIgKyBkYjIudHlwZTJTdHIobm9kZS50eXBlKSkuYXR0cihcbiAgICBcImRcIixcbiAgICBgTTAgJHtub2RlLmhlaWdodCAtIHJkfSB2JHstbm9kZS5oZWlnaHQgKyAyICogcmR9IHEwLC01IDUsLTUgaCR7bm9kZS53aWR0aCAtIDIgKiByZH0gcTUsMCA1LDUgdiR7bm9kZS5oZWlnaHQgLSByZH0gSDAgWmBcbiAgKTtcbiAgZWxlbS5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJjbGFzc1wiLCBcIm5vZGUtbGluZS1cIiArIHNlY3Rpb24pLmF0dHIoXCJ4MVwiLCAwKS5hdHRyKFwieTFcIiwgbm9kZS5oZWlnaHQpLmF0dHIoXCJ4MlwiLCBub2RlLndpZHRoKS5hdHRyKFwieTJcIiwgbm9kZS5oZWlnaHQpO1xufTtcbmNvbnN0IHJlY3RCa2cgPSBmdW5jdGlvbihkYjIsIGVsZW0sIG5vZGUpIHtcbiAgZWxlbS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJpZFwiLCBcIm5vZGUtXCIgKyBub2RlLmlkKS5hdHRyKFwiY2xhc3NcIiwgXCJub2RlLWJrZyBub2RlLVwiICsgZGIyLnR5cGUyU3RyKG5vZGUudHlwZSkpLmF0dHIoXCJoZWlnaHRcIiwgbm9kZS5oZWlnaHQpLmF0dHIoXCJ3aWR0aFwiLCBub2RlLndpZHRoKTtcbn07XG5jb25zdCBjbG91ZEJrZyA9IGZ1bmN0aW9uKGRiMiwgZWxlbSwgbm9kZSkge1xuICBjb25zdCB3ID0gbm9kZS53aWR0aDtcbiAgY29uc3QgaCA9IG5vZGUuaGVpZ2h0O1xuICBjb25zdCByMSA9IDAuMTUgKiB3O1xuICBjb25zdCByMiA9IDAuMjUgKiB3O1xuICBjb25zdCByMyA9IDAuMzUgKiB3O1xuICBjb25zdCByNCA9IDAuMiAqIHc7XG4gIGVsZW0uYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiaWRcIiwgXCJub2RlLVwiICsgbm9kZS5pZCkuYXR0cihcImNsYXNzXCIsIFwibm9kZS1ia2cgbm9kZS1cIiArIGRiMi50eXBlMlN0cihub2RlLnR5cGUpKS5hdHRyKFxuICAgIFwiZFwiLFxuICAgIGBNMCAwIGEke3IxfSwke3IxfSAwIDAsMSAke3cgKiAwLjI1fSwkey0xICogdyAqIDAuMX1cbiAgICAgIGEke3IzfSwke3IzfSAxIDAsMSAke3cgKiAwLjR9LCR7LTEgKiB3ICogMC4xfVxuICAgICAgYSR7cjJ9LCR7cjJ9IDEgMCwxICR7dyAqIDAuMzV9LCR7MSAqIHcgKiAwLjJ9XG5cbiAgICAgIGEke3IxfSwke3IxfSAxIDAsMSAke3cgKiAwLjE1fSwkezEgKiBoICogMC4zNX1cbiAgICAgIGEke3I0fSwke3I0fSAxIDAsMSAkey0xICogdyAqIDAuMTV9LCR7MSAqIGggKiAwLjY1fVxuXG4gICAgICBhJHtyMn0sJHtyMX0gMSAwLDEgJHstMSAqIHcgKiAwLjI1fSwke3cgKiAwLjE1fVxuICAgICAgYSR7cjN9LCR7cjN9IDEgMCwxICR7LTEgKiB3ICogMC41fSwkezB9XG4gICAgICBhJHtyMX0sJHtyMX0gMSAwLDEgJHstMSAqIHcgKiAwLjI1fSwkey0xICogdyAqIDAuMTV9XG5cbiAgICAgIGEke3IxfSwke3IxfSAxIDAsMSAkey0xICogdyAqIDAuMX0sJHstMSAqIGggKiAwLjM1fVxuICAgICAgYSR7cjR9LCR7cjR9IDEgMCwxICR7dyAqIDAuMX0sJHstMSAqIGggKiAwLjY1fVxuXG4gICAgSDAgVjAgWmBcbiAgKTtcbn07XG5jb25zdCBiYW5nQmtnID0gZnVuY3Rpb24oZGIyLCBlbGVtLCBub2RlKSB7XG4gIGNvbnN0IHcgPSBub2RlLndpZHRoO1xuICBjb25zdCBoID0gbm9kZS5oZWlnaHQ7XG4gIGNvbnN0IHIgPSAwLjE1ICogdztcbiAgZWxlbS5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJpZFwiLCBcIm5vZGUtXCIgKyBub2RlLmlkKS5hdHRyKFwiY2xhc3NcIiwgXCJub2RlLWJrZyBub2RlLVwiICsgZGIyLnR5cGUyU3RyKG5vZGUudHlwZSkpLmF0dHIoXG4gICAgXCJkXCIsXG4gICAgYE0wIDAgYSR7cn0sJHtyfSAxIDAsMCAke3cgKiAwLjI1fSwkey0xICogaCAqIDAuMX1cbiAgICAgIGEke3J9LCR7cn0gMSAwLDAgJHt3ICogMC4yNX0sJHswfVxuICAgICAgYSR7cn0sJHtyfSAxIDAsMCAke3cgKiAwLjI1fSwkezB9XG4gICAgICBhJHtyfSwke3J9IDEgMCwwICR7dyAqIDAuMjV9LCR7MSAqIGggKiAwLjF9XG5cbiAgICAgIGEke3J9LCR7cn0gMSAwLDAgJHt3ICogMC4xNX0sJHsxICogaCAqIDAuMzN9XG4gICAgICBhJHtyICogMC44fSwke3IgKiAwLjh9IDEgMCwwICR7MH0sJHsxICogaCAqIDAuMzR9XG4gICAgICBhJHtyfSwke3J9IDEgMCwwICR7LTEgKiB3ICogMC4xNX0sJHsxICogaCAqIDAuMzN9XG5cbiAgICAgIGEke3J9LCR7cn0gMSAwLDAgJHstMSAqIHcgKiAwLjI1fSwke2ggKiAwLjE1fVxuICAgICAgYSR7cn0sJHtyfSAxIDAsMCAkey0xICogdyAqIDAuMjV9LCR7MH1cbiAgICAgIGEke3J9LCR7cn0gMSAwLDAgJHstMSAqIHcgKiAwLjI1fSwkezB9XG4gICAgICBhJHtyfSwke3J9IDEgMCwwICR7LTEgKiB3ICogMC4yNX0sJHstMSAqIGggKiAwLjE1fVxuXG4gICAgICBhJHtyfSwke3J9IDEgMCwwICR7LTEgKiB3ICogMC4xfSwkey0xICogaCAqIDAuMzN9XG4gICAgICBhJHtyICogMC44fSwke3IgKiAwLjh9IDEgMCwwICR7MH0sJHstMSAqIGggKiAwLjM0fVxuICAgICAgYSR7cn0sJHtyfSAxIDAsMCAke3cgKiAwLjF9LCR7LTEgKiBoICogMC4zM31cblxuICAgIEgwIFYwIFpgXG4gICk7XG59O1xuY29uc3QgY2lyY2xlQmtnID0gZnVuY3Rpb24oZGIyLCBlbGVtLCBub2RlKSB7XG4gIGVsZW0uYXBwZW5kKFwiY2lyY2xlXCIpLmF0dHIoXCJpZFwiLCBcIm5vZGUtXCIgKyBub2RlLmlkKS5hdHRyKFwiY2xhc3NcIiwgXCJub2RlLWJrZyBub2RlLVwiICsgZGIyLnR5cGUyU3RyKG5vZGUudHlwZSkpLmF0dHIoXCJyXCIsIG5vZGUud2lkdGggLyAyKTtcbn07XG5mdW5jdGlvbiBpbnNlcnRQb2x5Z29uU2hhcGUocGFyZW50LCB3LCBoLCBwb2ludHMsIG5vZGUpIHtcbiAgcmV0dXJuIHBhcmVudC5pbnNlcnQoXCJwb2x5Z29uXCIsIFwiOmZpcnN0LWNoaWxkXCIpLmF0dHIoXG4gICAgXCJwb2ludHNcIixcbiAgICBwb2ludHMubWFwKGZ1bmN0aW9uKGQpIHtcbiAgICAgIHJldHVybiBkLnggKyBcIixcIiArIGQueTtcbiAgICB9KS5qb2luKFwiIFwiKVxuICApLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyAobm9kZS53aWR0aCAtIHcpIC8gMiArIFwiLCBcIiArIGggKyBcIilcIik7XG59XG5jb25zdCBoZXhhZ29uQmtnID0gZnVuY3Rpb24oX2RiLCBlbGVtLCBub2RlKSB7XG4gIGNvbnN0IGggPSBub2RlLmhlaWdodDtcbiAgY29uc3QgZiA9IDQ7XG4gIGNvbnN0IG0gPSBoIC8gZjtcbiAgY29uc3QgdyA9IG5vZGUud2lkdGggLSBub2RlLnBhZGRpbmcgKyAyICogbTtcbiAgY29uc3QgcG9pbnRzID0gW1xuICAgIHsgeDogbSwgeTogMCB9LFxuICAgIHsgeDogdyAtIG0sIHk6IDAgfSxcbiAgICB7IHg6IHcsIHk6IC1oIC8gMiB9LFxuICAgIHsgeDogdyAtIG0sIHk6IC1oIH0sXG4gICAgeyB4OiBtLCB5OiAtaCB9LFxuICAgIHsgeDogMCwgeTogLWggLyAyIH1cbiAgXTtcbiAgaW5zZXJ0UG9seWdvblNoYXBlKGVsZW0sIHcsIGgsIHBvaW50cywgbm9kZSk7XG59O1xuY29uc3Qgcm91bmRlZFJlY3RCa2cgPSBmdW5jdGlvbihkYjIsIGVsZW0sIG5vZGUpIHtcbiAgZWxlbS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJpZFwiLCBcIm5vZGUtXCIgKyBub2RlLmlkKS5hdHRyKFwiY2xhc3NcIiwgXCJub2RlLWJrZyBub2RlLVwiICsgZGIyLnR5cGUyU3RyKG5vZGUudHlwZSkpLmF0dHIoXCJoZWlnaHRcIiwgbm9kZS5oZWlnaHQpLmF0dHIoXCJyeFwiLCBub2RlLnBhZGRpbmcpLmF0dHIoXCJyeVwiLCBub2RlLnBhZGRpbmcpLmF0dHIoXCJ3aWR0aFwiLCBub2RlLndpZHRoKTtcbn07XG5jb25zdCBkcmF3Tm9kZSA9IGZ1bmN0aW9uKGRiMiwgZWxlbSwgbm9kZSwgZnVsbFNlY3Rpb24sIGNvbmYpIHtcbiAgY29uc3QgaHRtbExhYmVscyA9IGNvbmYuaHRtbExhYmVscztcbiAgY29uc3Qgc2VjdGlvbiA9IGZ1bGxTZWN0aW9uICUgKE1BWF9TRUNUSU9OUyAtIDEpO1xuICBjb25zdCBub2RlRWxlbSA9IGVsZW0uYXBwZW5kKFwiZ1wiKTtcbiAgbm9kZS5zZWN0aW9uID0gc2VjdGlvbjtcbiAgbGV0IHNlY3Rpb25DbGFzcyA9IFwic2VjdGlvbi1cIiArIHNlY3Rpb247XG4gIGlmIChzZWN0aW9uIDwgMCkge1xuICAgIHNlY3Rpb25DbGFzcyArPSBcIiBzZWN0aW9uLXJvb3RcIjtcbiAgfVxuICBub2RlRWxlbS5hdHRyKFwiY2xhc3NcIiwgKG5vZGUuY2xhc3MgPyBub2RlLmNsYXNzICsgXCIgXCIgOiBcIlwiKSArIFwibWluZG1hcC1ub2RlIFwiICsgc2VjdGlvbkNsYXNzKTtcbiAgY29uc3QgYmtnRWxlbSA9IG5vZGVFbGVtLmFwcGVuZChcImdcIik7XG4gIGNvbnN0IHRleHRFbGVtID0gbm9kZUVsZW0uYXBwZW5kKFwiZ1wiKTtcbiAgY29uc3QgZGVzY3JpcHRpb24gPSBub2RlLmRlc2NyLnJlcGxhY2UoLyg8YnJcXC8qPikvZywgXCJcXG5cIik7XG4gIGNyZWF0ZVRleHQodGV4dEVsZW0sIGRlc2NyaXB0aW9uLCB7XG4gICAgdXNlSHRtbExhYmVsczogaHRtbExhYmVscyxcbiAgICB3aWR0aDogbm9kZS53aWR0aCxcbiAgICBjbGFzc2VzOiBcIm1pbmRtYXAtbm9kZS1sYWJlbFwiXG4gIH0pO1xuICBpZiAoIWh0bWxMYWJlbHMpIHtcbiAgICB0ZXh0RWxlbS5hdHRyKFwiZHlcIiwgXCIxZW1cIikuYXR0cihcImFsaWdubWVudC1iYXNlbGluZVwiLCBcIm1pZGRsZVwiKS5hdHRyKFwiZG9taW5hbnQtYmFzZWxpbmVcIiwgXCJtaWRkbGVcIikuYXR0cihcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpO1xuICB9XG4gIGNvbnN0IGJib3ggPSB0ZXh0RWxlbS5ub2RlKCkuZ2V0QkJveCgpO1xuICBjb25zdCBbZm9udFNpemVdID0gcGFyc2VGb250U2l6ZShjb25mLmZvbnRTaXplKTtcbiAgbm9kZS5oZWlnaHQgPSBiYm94LmhlaWdodCArIGZvbnRTaXplICogMS4xICogMC41ICsgbm9kZS5wYWRkaW5nO1xuICBub2RlLndpZHRoID0gYmJveC53aWR0aCArIDIgKiBub2RlLnBhZGRpbmc7XG4gIGlmIChub2RlLmljb24pIHtcbiAgICBpZiAobm9kZS50eXBlID09PSBkYjIubm9kZVR5cGUuQ0lSQ0xFKSB7XG4gICAgICBub2RlLmhlaWdodCArPSA1MDtcbiAgICAgIG5vZGUud2lkdGggKz0gNTA7XG4gICAgICBjb25zdCBpY29uID0gbm9kZUVsZW0uYXBwZW5kKFwiZm9yZWlnbk9iamVjdFwiKS5hdHRyKFwiaGVpZ2h0XCIsIFwiNTBweFwiKS5hdHRyKFwid2lkdGhcIiwgbm9kZS53aWR0aCkuYXR0cihcInN0eWxlXCIsIFwidGV4dC1hbGlnbjogY2VudGVyO1wiKTtcbiAgICAgIGljb24uYXBwZW5kKFwiZGl2XCIpLmF0dHIoXCJjbGFzc1wiLCBcImljb24tY29udGFpbmVyXCIpLmFwcGVuZChcImlcIikuYXR0cihcImNsYXNzXCIsIFwibm9kZS1pY29uLVwiICsgc2VjdGlvbiArIFwiIFwiICsgbm9kZS5pY29uKTtcbiAgICAgIHRleHRFbGVtLmF0dHIoXG4gICAgICAgIFwidHJhbnNmb3JtXCIsXG4gICAgICAgIFwidHJhbnNsYXRlKFwiICsgbm9kZS53aWR0aCAvIDIgKyBcIiwgXCIgKyAobm9kZS5oZWlnaHQgLyAyIC0gMS41ICogbm9kZS5wYWRkaW5nKSArIFwiKVwiXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlLndpZHRoICs9IDUwO1xuICAgICAgY29uc3Qgb3JnSGVpZ2h0ID0gbm9kZS5oZWlnaHQ7XG4gICAgICBub2RlLmhlaWdodCA9IE1hdGgubWF4KG9yZ0hlaWdodCwgNjApO1xuICAgICAgY29uc3QgaGVpZ2h0RGlmZiA9IE1hdGguYWJzKG5vZGUuaGVpZ2h0IC0gb3JnSGVpZ2h0KTtcbiAgICAgIGNvbnN0IGljb24gPSBub2RlRWxlbS5hcHBlbmQoXCJmb3JlaWduT2JqZWN0XCIpLmF0dHIoXCJ3aWR0aFwiLCBcIjYwcHhcIikuYXR0cihcImhlaWdodFwiLCBub2RlLmhlaWdodCkuYXR0cihcInN0eWxlXCIsIFwidGV4dC1hbGlnbjogY2VudGVyO21hcmdpbi10b3A6XCIgKyBoZWlnaHREaWZmIC8gMiArIFwicHg7XCIpO1xuICAgICAgaWNvbi5hcHBlbmQoXCJkaXZcIikuYXR0cihcImNsYXNzXCIsIFwiaWNvbi1jb250YWluZXJcIikuYXBwZW5kKFwiaVwiKS5hdHRyKFwiY2xhc3NcIiwgXCJub2RlLWljb24tXCIgKyBzZWN0aW9uICsgXCIgXCIgKyBub2RlLmljb24pO1xuICAgICAgdGV4dEVsZW0uYXR0cihcbiAgICAgICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAgICAgXCJ0cmFuc2xhdGUoXCIgKyAoMjUgKyBub2RlLndpZHRoIC8gMikgKyBcIiwgXCIgKyAoaGVpZ2h0RGlmZiAvIDIgKyBub2RlLnBhZGRpbmcgLyAyKSArIFwiKVwiXG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoIWh0bWxMYWJlbHMpIHtcbiAgICAgIGNvbnN0IGR4ID0gbm9kZS53aWR0aCAvIDI7XG4gICAgICBjb25zdCBkeSA9IG5vZGUucGFkZGluZyAvIDI7XG4gICAgICB0ZXh0RWxlbS5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKFwiICsgZHggKyBcIiwgXCIgKyBkeSArIFwiKVwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZHggPSAobm9kZS53aWR0aCAtIGJib3gud2lkdGgpIC8gMjtcbiAgICAgIGNvbnN0IGR5ID0gKG5vZGUuaGVpZ2h0IC0gYmJveC5oZWlnaHQpIC8gMjtcbiAgICAgIHRleHRFbGVtLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyBkeCArIFwiLCBcIiArIGR5ICsgXCIpXCIpO1xuICAgIH1cbiAgfVxuICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgIGNhc2UgZGIyLm5vZGVUeXBlLkRFRkFVTFQ6XG4gICAgICBkZWZhdWx0QmtnKGRiMiwgYmtnRWxlbSwgbm9kZSwgc2VjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIGRiMi5ub2RlVHlwZS5ST1VOREVEX1JFQ1Q6XG4gICAgICByb3VuZGVkUmVjdEJrZyhkYjIsIGJrZ0VsZW0sIG5vZGUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBkYjIubm9kZVR5cGUuUkVDVDpcbiAgICAgIHJlY3RCa2coZGIyLCBia2dFbGVtLCBub2RlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgZGIyLm5vZGVUeXBlLkNJUkNMRTpcbiAgICAgIGJrZ0VsZW0uYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIG5vZGUud2lkdGggLyAyICsgXCIsIFwiICsgK25vZGUuaGVpZ2h0IC8gMiArIFwiKVwiKTtcbiAgICAgIGNpcmNsZUJrZyhkYjIsIGJrZ0VsZW0sIG5vZGUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBkYjIubm9kZVR5cGUuQ0xPVUQ6XG4gICAgICBjbG91ZEJrZyhkYjIsIGJrZ0VsZW0sIG5vZGUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBkYjIubm9kZVR5cGUuQkFORzpcbiAgICAgIGJhbmdCa2coZGIyLCBia2dFbGVtLCBub2RlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgZGIyLm5vZGVUeXBlLkhFWEFHT046XG4gICAgICBoZXhhZ29uQmtnKGRiMiwgYmtnRWxlbSwgbm9kZSk7XG4gICAgICBicmVhaztcbiAgfVxuICBkYjIuc2V0RWxlbWVudEZvcklkKG5vZGUuaWQsIG5vZGVFbGVtKTtcbiAgcmV0dXJuIG5vZGUuaGVpZ2h0O1xufTtcbmNvbnN0IHBvc2l0aW9uTm9kZSA9IGZ1bmN0aW9uKGRiMiwgbm9kZSkge1xuICBjb25zdCBub2RlRWxlbSA9IGRiMi5nZXRFbGVtZW50QnlJZChub2RlLmlkKTtcbiAgY29uc3QgeCA9IG5vZGUueCB8fCAwO1xuICBjb25zdCB5ID0gbm9kZS55IHx8IDA7XG4gIG5vZGVFbGVtLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyB4ICsgXCIsXCIgKyB5ICsgXCIpXCIpO1xufTtcbmN5dG9zY2FwZS51c2UoY29zZUJpbGtlbnQpO1xuZnVuY3Rpb24gZHJhd05vZGVzKGRiMiwgc3ZnLCBtaW5kbWFwLCBzZWN0aW9uLCBjb25mKSB7XG4gIGRyYXdOb2RlKGRiMiwgc3ZnLCBtaW5kbWFwLCBzZWN0aW9uLCBjb25mKTtcbiAgaWYgKG1pbmRtYXAuY2hpbGRyZW4pIHtcbiAgICBtaW5kbWFwLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgZHJhd05vZGVzKGRiMiwgc3ZnLCBjaGlsZCwgc2VjdGlvbiA8IDAgPyBpbmRleCA6IHNlY3Rpb24sIGNvbmYpO1xuICAgIH0pO1xuICB9XG59XG5mdW5jdGlvbiBkcmF3RWRnZXMoZWRnZXNFbCwgY3kpIHtcbiAgY3kuZWRnZXMoKS5tYXAoKGVkZ2UsIGlkKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IGVkZ2UuZGF0YSgpO1xuICAgIGlmIChlZGdlWzBdLl9wcml2YXRlLmJvZHlCb3VuZHMpIHtcbiAgICAgIGNvbnN0IGJvdW5kcyA9IGVkZ2VbMF0uX3ByaXZhdGUucnNjcmF0Y2g7XG4gICAgICBsb2cudHJhY2UoXCJFZGdlOiBcIiwgaWQsIGRhdGEpO1xuICAgICAgZWRnZXNFbC5pbnNlcnQoXCJwYXRoXCIpLmF0dHIoXG4gICAgICAgIFwiZFwiLFxuICAgICAgICBgTSAke2JvdW5kcy5zdGFydFh9LCR7Ym91bmRzLnN0YXJ0WX0gTCAke2JvdW5kcy5taWRYfSwke2JvdW5kcy5taWRZfSBMJHtib3VuZHMuZW5kWH0sJHtib3VuZHMuZW5kWX0gYFxuICAgICAgKS5hdHRyKFwiY2xhc3NcIiwgXCJlZGdlIHNlY3Rpb24tZWRnZS1cIiArIGRhdGEuc2VjdGlvbiArIFwiIGVkZ2UtZGVwdGgtXCIgKyBkYXRhLmRlcHRoKTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gYWRkTm9kZXMobWluZG1hcCwgY3ksIGNvbmYsIGxldmVsKSB7XG4gIGN5LmFkZCh7XG4gICAgZ3JvdXA6IFwibm9kZXNcIixcbiAgICBkYXRhOiB7XG4gICAgICBpZDogbWluZG1hcC5pZC50b1N0cmluZygpLFxuICAgICAgbGFiZWxUZXh0OiBtaW5kbWFwLmRlc2NyLFxuICAgICAgaGVpZ2h0OiBtaW5kbWFwLmhlaWdodCxcbiAgICAgIHdpZHRoOiBtaW5kbWFwLndpZHRoLFxuICAgICAgbGV2ZWwsXG4gICAgICBub2RlSWQ6IG1pbmRtYXAuaWQsXG4gICAgICBwYWRkaW5nOiBtaW5kbWFwLnBhZGRpbmcsXG4gICAgICB0eXBlOiBtaW5kbWFwLnR5cGVcbiAgICB9LFxuICAgIHBvc2l0aW9uOiB7XG4gICAgICB4OiBtaW5kbWFwLngsXG4gICAgICB5OiBtaW5kbWFwLnlcbiAgICB9XG4gIH0pO1xuICBpZiAobWluZG1hcC5jaGlsZHJlbikge1xuICAgIG1pbmRtYXAuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgIGFkZE5vZGVzKGNoaWxkLCBjeSwgY29uZiwgbGV2ZWwgKyAxKTtcbiAgICAgIGN5LmFkZCh7XG4gICAgICAgIGdyb3VwOiBcImVkZ2VzXCIsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBpZDogYCR7bWluZG1hcC5pZH1fJHtjaGlsZC5pZH1gLFxuICAgICAgICAgIHNvdXJjZTogbWluZG1hcC5pZCxcbiAgICAgICAgICB0YXJnZXQ6IGNoaWxkLmlkLFxuICAgICAgICAgIGRlcHRoOiBsZXZlbCxcbiAgICAgICAgICBzZWN0aW9uOiBjaGlsZC5zZWN0aW9uXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG5mdW5jdGlvbiBsYXlvdXRNaW5kbWFwKG5vZGUsIGNvbmYpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgcmVuZGVyRWwgPSBzZWxlY3QoXCJib2R5XCIpLmFwcGVuZChcImRpdlwiKS5hdHRyKFwiaWRcIiwgXCJjeVwiKS5hdHRyKFwic3R5bGVcIiwgXCJkaXNwbGF5Om5vbmVcIik7XG4gICAgY29uc3QgY3kgPSBjeXRvc2NhcGUoe1xuICAgICAgY29udGFpbmVyOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImN5XCIpLFxuICAgICAgLy8gY29udGFpbmVyIHRvIHJlbmRlciBpblxuICAgICAgc3R5bGU6IFtcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdG9yOiBcImVkZ2VcIixcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgXCJjdXJ2ZS1zdHlsZVwiOiBcImJlemllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG4gICAgcmVuZGVyRWwucmVtb3ZlKCk7XG4gICAgYWRkTm9kZXMobm9kZSwgY3ksIGNvbmYsIDApO1xuICAgIGN5Lm5vZGVzKCkuZm9yRWFjaChmdW5jdGlvbihuKSB7XG4gICAgICBuLmxheW91dERpbWVuc2lvbnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBuLmRhdGEoKTtcbiAgICAgICAgcmV0dXJuIHsgdzogZGF0YS53aWR0aCwgaDogZGF0YS5oZWlnaHQgfTtcbiAgICAgIH07XG4gICAgfSk7XG4gICAgY3kubGF5b3V0KHtcbiAgICAgIG5hbWU6IFwiY29zZS1iaWxrZW50XCIsXG4gICAgICAvLyBAdHMtaWdub3JlIFR5cGVzIGZvciBjb3NlLWJpbGtlbnQgYXJlIG5vdCBjb3JyZWN0P1xuICAgICAgcXVhbGl0eTogXCJwcm9vZlwiLFxuICAgICAgc3R5bGVFbmFibGVkOiBmYWxzZSxcbiAgICAgIGFuaW1hdGU6IGZhbHNlXG4gICAgfSkucnVuKCk7XG4gICAgY3kucmVhZHkoKGUpID0+IHtcbiAgICAgIGxvZy5pbmZvKFwiUmVhZHlcIiwgZSk7XG4gICAgICByZXNvbHZlKGN5KTtcbiAgICB9KTtcbiAgfSk7XG59XG5mdW5jdGlvbiBwb3NpdGlvbk5vZGVzKGRiMiwgY3kpIHtcbiAgY3kubm9kZXMoKS5tYXAoKG5vZGUsIGlkKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IG5vZGUuZGF0YSgpO1xuICAgIGRhdGEueCA9IG5vZGUucG9zaXRpb24oKS54O1xuICAgIGRhdGEueSA9IG5vZGUucG9zaXRpb24oKS55O1xuICAgIHBvc2l0aW9uTm9kZShkYjIsIGRhdGEpO1xuICAgIGNvbnN0IGVsID0gZGIyLmdldEVsZW1lbnRCeUlkKGRhdGEubm9kZUlkKTtcbiAgICBsb2cuaW5mbyhcIklkOlwiLCBpZCwgXCJQb3NpdGlvbjogKFwiLCBub2RlLnBvc2l0aW9uKCkueCwgXCIsIFwiLCBub2RlLnBvc2l0aW9uKCkueSwgXCIpXCIsIGRhdGEpO1xuICAgIGVsLmF0dHIoXG4gICAgICBcInRyYW5zZm9ybVwiLFxuICAgICAgYHRyYW5zbGF0ZSgke25vZGUucG9zaXRpb24oKS54IC0gZGF0YS53aWR0aCAvIDJ9LCAke25vZGUucG9zaXRpb24oKS55IC0gZGF0YS5oZWlnaHQgLyAyfSlgXG4gICAgKTtcbiAgICBlbC5hdHRyKFwiYXR0clwiLCBgYXBhLSR7aWR9KWApO1xuICB9KTtcbn1cbmNvbnN0IGRyYXcgPSBhc3luYyAodGV4dCwgaWQsIF92ZXJzaW9uLCBkaWFnT2JqKSA9PiB7XG4gIHZhciBfYSwgX2I7XG4gIGxvZy5kZWJ1ZyhcIlJlbmRlcmluZyBtaW5kbWFwIGRpYWdyYW1cXG5cIiArIHRleHQpO1xuICBjb25zdCBkYjIgPSBkaWFnT2JqLmRiO1xuICBjb25zdCBtbSA9IGRiMi5nZXRNaW5kbWFwKCk7XG4gIGlmICghbW0pIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY29uZiA9IGdldENvbmZpZygpO1xuICBjb25mLmh0bWxMYWJlbHMgPSBmYWxzZTtcbiAgY29uc3Qgc3ZnID0gc2VsZWN0U3ZnRWxlbWVudChpZCk7XG4gIGNvbnN0IGVkZ2VzRWxlbSA9IHN2Zy5hcHBlbmQoXCJnXCIpO1xuICBlZGdlc0VsZW0uYXR0cihcImNsYXNzXCIsIFwibWluZG1hcC1lZGdlc1wiKTtcbiAgY29uc3Qgbm9kZXNFbGVtID0gc3ZnLmFwcGVuZChcImdcIik7XG4gIG5vZGVzRWxlbS5hdHRyKFwiY2xhc3NcIiwgXCJtaW5kbWFwLW5vZGVzXCIpO1xuICBkcmF3Tm9kZXMoZGIyLCBub2Rlc0VsZW0sIG1tLCAtMSwgY29uZik7XG4gIGNvbnN0IGN5ID0gYXdhaXQgbGF5b3V0TWluZG1hcChtbSwgY29uZik7XG4gIGRyYXdFZGdlcyhlZGdlc0VsZW0sIGN5KTtcbiAgcG9zaXRpb25Ob2RlcyhkYjIsIGN5KTtcbiAgc2V0dXBHcmFwaFZpZXdib3goXG4gICAgdm9pZCAwLFxuICAgIHN2ZyxcbiAgICAoKF9hID0gY29uZi5taW5kbWFwKSA9PSBudWxsID8gdm9pZCAwIDogX2EucGFkZGluZykgPz8gZGVmYXVsdENvbmZpZy5taW5kbWFwLnBhZGRpbmcsXG4gICAgKChfYiA9IGNvbmYubWluZG1hcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnVzZU1heFdpZHRoKSA/PyBkZWZhdWx0Q29uZmlnLm1pbmRtYXAudXNlTWF4V2lkdGhcbiAgKTtcbn07XG5jb25zdCByZW5kZXJlciA9IHtcbiAgZHJhd1xufTtcbmNvbnN0IGdlblNlY3Rpb25zID0gKG9wdGlvbnMpID0+IHtcbiAgbGV0IHNlY3Rpb25zID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRpb25zLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICBvcHRpb25zW1wibGluZUNvbG9yXCIgKyBpXSA9IG9wdGlvbnNbXCJsaW5lQ29sb3JcIiArIGldIHx8IG9wdGlvbnNbXCJjU2NhbGVJbnZcIiArIGldO1xuICAgIGlmIChpc0Rhcmsob3B0aW9uc1tcImxpbmVDb2xvclwiICsgaV0pKSB7XG4gICAgICBvcHRpb25zW1wibGluZUNvbG9yXCIgKyBpXSA9IGxpZ2h0ZW4ob3B0aW9uc1tcImxpbmVDb2xvclwiICsgaV0sIDIwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9uc1tcImxpbmVDb2xvclwiICsgaV0gPSBkYXJrZW4ob3B0aW9uc1tcImxpbmVDb2xvclwiICsgaV0sIDIwKTtcbiAgICB9XG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRpb25zLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICBjb25zdCBzdyA9IFwiXCIgKyAoMTcgLSAzICogaSk7XG4gICAgc2VjdGlvbnMgKz0gYFxuICAgIC5zZWN0aW9uLSR7aSAtIDF9IHJlY3QsIC5zZWN0aW9uLSR7aSAtIDF9IHBhdGgsIC5zZWN0aW9uLSR7aSAtIDF9IGNpcmNsZSwgLnNlY3Rpb24tJHtpIC0gMX0gcG9seWdvbiwgLnNlY3Rpb24tJHtpIC0gMX0gcGF0aCAge1xuICAgICAgZmlsbDogJHtvcHRpb25zW1wiY1NjYWxlXCIgKyBpXX07XG4gICAgfVxuICAgIC5zZWN0aW9uLSR7aSAtIDF9IHRleHQge1xuICAgICBmaWxsOiAke29wdGlvbnNbXCJjU2NhbGVMYWJlbFwiICsgaV19O1xuICAgIH1cbiAgICAubm9kZS1pY29uLSR7aSAtIDF9IHtcbiAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgIGNvbG9yOiAke29wdGlvbnNbXCJjU2NhbGVMYWJlbFwiICsgaV19O1xuICAgIH1cbiAgICAuc2VjdGlvbi1lZGdlLSR7aSAtIDF9e1xuICAgICAgc3Ryb2tlOiAke29wdGlvbnNbXCJjU2NhbGVcIiArIGldfTtcbiAgICB9XG4gICAgLmVkZ2UtZGVwdGgtJHtpIC0gMX17XG4gICAgICBzdHJva2Utd2lkdGg6ICR7c3d9O1xuICAgIH1cbiAgICAuc2VjdGlvbi0ke2kgLSAxfSBsaW5lIHtcbiAgICAgIHN0cm9rZTogJHtvcHRpb25zW1wiY1NjYWxlSW52XCIgKyBpXX0gO1xuICAgICAgc3Ryb2tlLXdpZHRoOiAzO1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCwgLmRpc2FibGVkIGNpcmNsZSwgLmRpc2FibGVkIHRleHQge1xuICAgICAgZmlsbDogbGlnaHRncmF5O1xuICAgIH1cbiAgICAuZGlzYWJsZWQgdGV4dCB7XG4gICAgICBmaWxsOiAjZWZlZmVmO1xuICAgIH1cbiAgICBgO1xuICB9XG4gIHJldHVybiBzZWN0aW9ucztcbn07XG5jb25zdCBnZXRTdHlsZXMgPSAob3B0aW9ucykgPT4gYFxuICAuZWRnZSB7XG4gICAgc3Ryb2tlLXdpZHRoOiAzO1xuICB9XG4gICR7Z2VuU2VjdGlvbnMob3B0aW9ucyl9XG4gIC5zZWN0aW9uLXJvb3QgcmVjdCwgLnNlY3Rpb24tcm9vdCBwYXRoLCAuc2VjdGlvbi1yb290IGNpcmNsZSwgLnNlY3Rpb24tcm9vdCBwb2x5Z29uICB7XG4gICAgZmlsbDogJHtvcHRpb25zLmdpdDB9O1xuICB9XG4gIC5zZWN0aW9uLXJvb3QgdGV4dCB7XG4gICAgZmlsbDogJHtvcHRpb25zLmdpdEJyYW5jaExhYmVsMH07XG4gIH1cbiAgLmljb24tY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6MTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgLmVkZ2Uge1xuICAgIGZpbGw6IG5vbmU7XG4gIH1cbiAgLm1pbmRtYXAtbm9kZS1sYWJlbCB7XG4gICAgZHk6IDFlbTtcbiAgICBhbGlnbm1lbnQtYmFzZWxpbmU6IG1pZGRsZTtcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xuICAgIGRvbWluYW50LWJhc2VsaW5lOiBtaWRkbGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5gO1xuY29uc3Qgc3R5bGVzID0gZ2V0U3R5bGVzO1xuY29uc3QgZGlhZ3JhbSA9IHtcbiAgZGI6IGRiJDEsXG4gIHJlbmRlcmVyLFxuICBwYXJzZXI6IHBhcnNlciQxLFxuICBzdHlsZXNcbn07XG5leHBvcnQge1xuICBkaWFncmFtXG59O1xuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtYXgodmFsdWVzLCB2YWx1ZW9mKSB7XG4gIGxldCBtYXg7XG4gIGlmICh2YWx1ZW9mID09PSB1bmRlZmluZWQpIHtcbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgaWYgKHZhbHVlICE9IG51bGxcbiAgICAgICAgICAmJiAobWF4IDwgdmFsdWUgfHwgKG1heCA9PT0gdW5kZWZpbmVkICYmIHZhbHVlID49IHZhbHVlKSkpIHtcbiAgICAgICAgbWF4ID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgaWYgKCh2YWx1ZSA9IHZhbHVlb2YodmFsdWUsICsraW5kZXgsIHZhbHVlcykpICE9IG51bGxcbiAgICAgICAgICAmJiAobWF4IDwgdmFsdWUgfHwgKG1heCA9PT0gdW5kZWZpbmVkICYmIHZhbHVlID49IHZhbHVlKSkpIHtcbiAgICAgICAgbWF4ID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXg7XG59XG4iLAogICAgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1pbih2YWx1ZXMsIHZhbHVlb2YpIHtcbiAgbGV0IG1pbjtcbiAgaWYgKHZhbHVlb2YgPT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICBpZiAodmFsdWUgIT0gbnVsbFxuICAgICAgICAgICYmIChtaW4gPiB2YWx1ZSB8fCAobWluID09PSB1bmRlZmluZWQgJiYgdmFsdWUgPj0gdmFsdWUpKSkge1xuICAgICAgICBtaW4gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbGV0IGluZGV4ID0gLTE7XG4gICAgZm9yIChsZXQgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICBpZiAoKHZhbHVlID0gdmFsdWVvZih2YWx1ZSwgKytpbmRleCwgdmFsdWVzKSkgIT0gbnVsbFxuICAgICAgICAgICYmIChtaW4gPiB2YWx1ZSB8fCAobWluID09PSB1bmRlZmluZWQgJiYgdmFsdWUgPj0gdmFsdWUpKSkge1xuICAgICAgICBtaW4gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1pbjtcbn1cbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3VtKHZhbHVlcywgdmFsdWVvZikge1xuICBsZXQgc3VtID0gMDtcbiAgaWYgKHZhbHVlb2YgPT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgaWYgKHZhbHVlID0gK3ZhbHVlKSB7XG4gICAgICAgIHN1bSArPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbGV0IGluZGV4ID0gLTE7XG4gICAgZm9yIChsZXQgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICBpZiAodmFsdWUgPSArdmFsdWVvZih2YWx1ZSwgKytpbmRleCwgdmFsdWVzKSkge1xuICAgICAgICBzdW0gKz0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzdW07XG59XG4iLAogICAgImltcG9ydCB7bWlufSBmcm9tIFwiZDMtYXJyYXlcIjtcblxuZnVuY3Rpb24gdGFyZ2V0RGVwdGgoZCkge1xuICByZXR1cm4gZC50YXJnZXQuZGVwdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsZWZ0KG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUuZGVwdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByaWdodChub2RlLCBuKSB7XG4gIHJldHVybiBuIC0gMSAtIG5vZGUuaGVpZ2h0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24ganVzdGlmeShub2RlLCBuKSB7XG4gIHJldHVybiBub2RlLnNvdXJjZUxpbmtzLmxlbmd0aCA/IG5vZGUuZGVwdGggOiBuIC0gMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNlbnRlcihub2RlKSB7XG4gIHJldHVybiBub2RlLnRhcmdldExpbmtzLmxlbmd0aCA/IG5vZGUuZGVwdGhcbiAgICAgIDogbm9kZS5zb3VyY2VMaW5rcy5sZW5ndGggPyBtaW4obm9kZS5zb3VyY2VMaW5rcywgdGFyZ2V0RGVwdGgpIC0gMVxuICAgICAgOiAwO1xufVxuIiwKICAgICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb25zdGFudCh4KSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4geDtcbiAgfTtcbn1cbiIsCiAgICAiaW1wb3J0IHttYXgsIG1pbiwgc3VtfSBmcm9tIFwiZDMtYXJyYXlcIjtcbmltcG9ydCB7anVzdGlmeX0gZnJvbSBcIi4vYWxpZ24uanNcIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuXG5mdW5jdGlvbiBhc2NlbmRpbmdTb3VyY2VCcmVhZHRoKGEsIGIpIHtcbiAgcmV0dXJuIGFzY2VuZGluZ0JyZWFkdGgoYS5zb3VyY2UsIGIuc291cmNlKSB8fCBhLmluZGV4IC0gYi5pbmRleDtcbn1cblxuZnVuY3Rpb24gYXNjZW5kaW5nVGFyZ2V0QnJlYWR0aChhLCBiKSB7XG4gIHJldHVybiBhc2NlbmRpbmdCcmVhZHRoKGEudGFyZ2V0LCBiLnRhcmdldCkgfHwgYS5pbmRleCAtIGIuaW5kZXg7XG59XG5cbmZ1bmN0aW9uIGFzY2VuZGluZ0JyZWFkdGgoYSwgYikge1xuICByZXR1cm4gYS55MCAtIGIueTA7XG59XG5cbmZ1bmN0aW9uIHZhbHVlKGQpIHtcbiAgcmV0dXJuIGQudmFsdWU7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRJZChkKSB7XG4gIHJldHVybiBkLmluZGV4O1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0Tm9kZXMoZ3JhcGgpIHtcbiAgcmV0dXJuIGdyYXBoLm5vZGVzO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0TGlua3MoZ3JhcGgpIHtcbiAgcmV0dXJuIGdyYXBoLmxpbmtzO1xufVxuXG5mdW5jdGlvbiBmaW5kKG5vZGVCeUlkLCBpZCkge1xuICBjb25zdCBub2RlID0gbm9kZUJ5SWQuZ2V0KGlkKTtcbiAgaWYgKCFub2RlKSB0aHJvdyBuZXcgRXJyb3IoXCJtaXNzaW5nOiBcIiArIGlkKTtcbiAgcmV0dXJuIG5vZGU7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVMaW5rQnJlYWR0aHMoe25vZGVzfSkge1xuICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICBsZXQgeTAgPSBub2RlLnkwO1xuICAgIGxldCB5MSA9IHkwO1xuICAgIGZvciAoY29uc3QgbGluayBvZiBub2RlLnNvdXJjZUxpbmtzKSB7XG4gICAgICBsaW5rLnkwID0geTAgKyBsaW5rLndpZHRoIC8gMjtcbiAgICAgIHkwICs9IGxpbmsud2lkdGg7XG4gICAgfVxuICAgIGZvciAoY29uc3QgbGluayBvZiBub2RlLnRhcmdldExpbmtzKSB7XG4gICAgICBsaW5rLnkxID0geTEgKyBsaW5rLndpZHRoIC8gMjtcbiAgICAgIHkxICs9IGxpbmsud2lkdGg7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNhbmtleSgpIHtcbiAgbGV0IHgwID0gMCwgeTAgPSAwLCB4MSA9IDEsIHkxID0gMTsgLy8gZXh0ZW50XG4gIGxldCBkeCA9IDI0OyAvLyBub2RlV2lkdGhcbiAgbGV0IGR5ID0gOCwgcHk7IC8vIG5vZGVQYWRkaW5nXG4gIGxldCBpZCA9IGRlZmF1bHRJZDtcbiAgbGV0IGFsaWduID0ganVzdGlmeTtcbiAgbGV0IHNvcnQ7XG4gIGxldCBsaW5rU29ydDtcbiAgbGV0IG5vZGVzID0gZGVmYXVsdE5vZGVzO1xuICBsZXQgbGlua3MgPSBkZWZhdWx0TGlua3M7XG4gIGxldCBpdGVyYXRpb25zID0gNjtcblxuICBmdW5jdGlvbiBzYW5rZXkoKSB7XG4gICAgY29uc3QgZ3JhcGggPSB7bm9kZXM6IG5vZGVzLmFwcGx5KG51bGwsIGFyZ3VtZW50cyksIGxpbmtzOiBsaW5rcy5hcHBseShudWxsLCBhcmd1bWVudHMpfTtcbiAgICBjb21wdXRlTm9kZUxpbmtzKGdyYXBoKTtcbiAgICBjb21wdXRlTm9kZVZhbHVlcyhncmFwaCk7XG4gICAgY29tcHV0ZU5vZGVEZXB0aHMoZ3JhcGgpO1xuICAgIGNvbXB1dGVOb2RlSGVpZ2h0cyhncmFwaCk7XG4gICAgY29tcHV0ZU5vZGVCcmVhZHRocyhncmFwaCk7XG4gICAgY29tcHV0ZUxpbmtCcmVhZHRocyhncmFwaCk7XG4gICAgcmV0dXJuIGdyYXBoO1xuICB9XG5cbiAgc2Fua2V5LnVwZGF0ZSA9IGZ1bmN0aW9uKGdyYXBoKSB7XG4gICAgY29tcHV0ZUxpbmtCcmVhZHRocyhncmFwaCk7XG4gICAgcmV0dXJuIGdyYXBoO1xuICB9O1xuXG4gIHNhbmtleS5ub2RlSWQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoaWQgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KF8pLCBzYW5rZXkpIDogaWQ7XG4gIH07XG5cbiAgc2Fua2V5Lm5vZGVBbGlnbiA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChhbGlnbiA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoXyksIHNhbmtleSkgOiBhbGlnbjtcbiAgfTtcblxuICBzYW5rZXkubm9kZVNvcnQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoc29ydCA9IF8sIHNhbmtleSkgOiBzb3J0O1xuICB9O1xuXG4gIHNhbmtleS5ub2RlV2lkdGggPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZHggPSArXywgc2Fua2V5KSA6IGR4O1xuICB9O1xuXG4gIHNhbmtleS5ub2RlUGFkZGluZyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkeSA9IHB5ID0gK18sIHNhbmtleSkgOiBkeTtcbiAgfTtcblxuICBzYW5rZXkubm9kZXMgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAobm9kZXMgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KF8pLCBzYW5rZXkpIDogbm9kZXM7XG4gIH07XG5cbiAgc2Fua2V5LmxpbmtzID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGxpbmtzID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudChfKSwgc2Fua2V5KSA6IGxpbmtzO1xuICB9O1xuXG4gIHNhbmtleS5saW5rU29ydCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChsaW5rU29ydCA9IF8sIHNhbmtleSkgOiBsaW5rU29ydDtcbiAgfTtcblxuICBzYW5rZXkuc2l6ZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh4MCA9IHkwID0gMCwgeDEgPSArX1swXSwgeTEgPSArX1sxXSwgc2Fua2V5KSA6IFt4MSAtIHgwLCB5MSAtIHkwXTtcbiAgfTtcblxuICBzYW5rZXkuZXh0ZW50ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHgwID0gK19bMF1bMF0sIHgxID0gK19bMV1bMF0sIHkwID0gK19bMF1bMV0sIHkxID0gK19bMV1bMV0sIHNhbmtleSkgOiBbW3gwLCB5MF0sIFt4MSwgeTFdXTtcbiAgfTtcblxuICBzYW5rZXkuaXRlcmF0aW9ucyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChpdGVyYXRpb25zID0gK18sIHNhbmtleSkgOiBpdGVyYXRpb25zO1xuICB9O1xuXG4gIGZ1bmN0aW9uIGNvbXB1dGVOb2RlTGlua3Moe25vZGVzLCBsaW5rc30pIHtcbiAgICBmb3IgKGNvbnN0IFtpLCBub2RlXSBvZiBub2Rlcy5lbnRyaWVzKCkpIHtcbiAgICAgIG5vZGUuaW5kZXggPSBpO1xuICAgICAgbm9kZS5zb3VyY2VMaW5rcyA9IFtdO1xuICAgICAgbm9kZS50YXJnZXRMaW5rcyA9IFtdO1xuICAgIH1cbiAgICBjb25zdCBub2RlQnlJZCA9IG5ldyBNYXAobm9kZXMubWFwKChkLCBpKSA9PiBbaWQoZCwgaSwgbm9kZXMpLCBkXSkpO1xuICAgIGZvciAoY29uc3QgW2ksIGxpbmtdIG9mIGxpbmtzLmVudHJpZXMoKSkge1xuICAgICAgbGluay5pbmRleCA9IGk7XG4gICAgICBsZXQge3NvdXJjZSwgdGFyZ2V0fSA9IGxpbms7XG4gICAgICBpZiAodHlwZW9mIHNvdXJjZSAhPT0gXCJvYmplY3RcIikgc291cmNlID0gbGluay5zb3VyY2UgPSBmaW5kKG5vZGVCeUlkLCBzb3VyY2UpO1xuICAgICAgaWYgKHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHRhcmdldCA9IGxpbmsudGFyZ2V0ID0gZmluZChub2RlQnlJZCwgdGFyZ2V0KTtcbiAgICAgIHNvdXJjZS5zb3VyY2VMaW5rcy5wdXNoKGxpbmspO1xuICAgICAgdGFyZ2V0LnRhcmdldExpbmtzLnB1c2gobGluayk7XG4gICAgfVxuICAgIGlmIChsaW5rU29ydCAhPSBudWxsKSB7XG4gICAgICBmb3IgKGNvbnN0IHtzb3VyY2VMaW5rcywgdGFyZ2V0TGlua3N9IG9mIG5vZGVzKSB7XG4gICAgICAgIHNvdXJjZUxpbmtzLnNvcnQobGlua1NvcnQpO1xuICAgICAgICB0YXJnZXRMaW5rcy5zb3J0KGxpbmtTb3J0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjb21wdXRlTm9kZVZhbHVlcyh7bm9kZXN9KSB7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICBub2RlLnZhbHVlID0gbm9kZS5maXhlZFZhbHVlID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IE1hdGgubWF4KHN1bShub2RlLnNvdXJjZUxpbmtzLCB2YWx1ZSksIHN1bShub2RlLnRhcmdldExpbmtzLCB2YWx1ZSkpXG4gICAgICAgICAgOiBub2RlLmZpeGVkVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY29tcHV0ZU5vZGVEZXB0aHMoe25vZGVzfSkge1xuICAgIGNvbnN0IG4gPSBub2Rlcy5sZW5ndGg7XG4gICAgbGV0IGN1cnJlbnQgPSBuZXcgU2V0KG5vZGVzKTtcbiAgICBsZXQgbmV4dCA9IG5ldyBTZXQ7XG4gICAgbGV0IHggPSAwO1xuICAgIHdoaWxlIChjdXJyZW50LnNpemUpIHtcbiAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBjdXJyZW50KSB7XG4gICAgICAgIG5vZGUuZGVwdGggPSB4O1xuICAgICAgICBmb3IgKGNvbnN0IHt0YXJnZXR9IG9mIG5vZGUuc291cmNlTGlua3MpIHtcbiAgICAgICAgICBuZXh0LmFkZCh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoKyt4ID4gbikgdGhyb3cgbmV3IEVycm9yKFwiY2lyY3VsYXIgbGlua1wiKTtcbiAgICAgIGN1cnJlbnQgPSBuZXh0O1xuICAgICAgbmV4dCA9IG5ldyBTZXQ7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY29tcHV0ZU5vZGVIZWlnaHRzKHtub2Rlc30pIHtcbiAgICBjb25zdCBuID0gbm9kZXMubGVuZ3RoO1xuICAgIGxldCBjdXJyZW50ID0gbmV3IFNldChub2Rlcyk7XG4gICAgbGV0IG5leHQgPSBuZXcgU2V0O1xuICAgIGxldCB4ID0gMDtcbiAgICB3aGlsZSAoY3VycmVudC5zaXplKSB7XG4gICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgY3VycmVudCkge1xuICAgICAgICBub2RlLmhlaWdodCA9IHg7XG4gICAgICAgIGZvciAoY29uc3Qge3NvdXJjZX0gb2Ygbm9kZS50YXJnZXRMaW5rcykge1xuICAgICAgICAgIG5leHQuYWRkKHNvdXJjZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICgrK3ggPiBuKSB0aHJvdyBuZXcgRXJyb3IoXCJjaXJjdWxhciBsaW5rXCIpO1xuICAgICAgY3VycmVudCA9IG5leHQ7XG4gICAgICBuZXh0ID0gbmV3IFNldDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjb21wdXRlTm9kZUxheWVycyh7bm9kZXN9KSB7XG4gICAgY29uc3QgeCA9IG1heChub2RlcywgZCA9PiBkLmRlcHRoKSArIDE7XG4gICAgY29uc3Qga3ggPSAoeDEgLSB4MCAtIGR4KSAvICh4IC0gMSk7XG4gICAgY29uc3QgY29sdW1ucyA9IG5ldyBBcnJheSh4KTtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgIGNvbnN0IGkgPSBNYXRoLm1heCgwLCBNYXRoLm1pbih4IC0gMSwgTWF0aC5mbG9vcihhbGlnbi5jYWxsKG51bGwsIG5vZGUsIHgpKSkpO1xuICAgICAgbm9kZS5sYXllciA9IGk7XG4gICAgICBub2RlLngwID0geDAgKyBpICoga3g7XG4gICAgICBub2RlLngxID0gbm9kZS54MCArIGR4O1xuICAgICAgaWYgKGNvbHVtbnNbaV0pIGNvbHVtbnNbaV0ucHVzaChub2RlKTtcbiAgICAgIGVsc2UgY29sdW1uc1tpXSA9IFtub2RlXTtcbiAgICB9XG4gICAgaWYgKHNvcnQpIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnMpIHtcbiAgICAgIGNvbHVtbi5zb3J0KHNvcnQpO1xuICAgIH1cbiAgICByZXR1cm4gY29sdW1ucztcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRpYWxpemVOb2RlQnJlYWR0aHMoY29sdW1ucykge1xuICAgIGNvbnN0IGt5ID0gbWluKGNvbHVtbnMsIGMgPT4gKHkxIC0geTAgLSAoYy5sZW5ndGggLSAxKSAqIHB5KSAvIHN1bShjLCB2YWx1ZSkpO1xuICAgIGZvciAoY29uc3Qgbm9kZXMgb2YgY29sdW1ucykge1xuICAgICAgbGV0IHkgPSB5MDtcbiAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgICAgICBub2RlLnkwID0geTtcbiAgICAgICAgbm9kZS55MSA9IHkgKyBub2RlLnZhbHVlICoga3k7XG4gICAgICAgIHkgPSBub2RlLnkxICsgcHk7XG4gICAgICAgIGZvciAoY29uc3QgbGluayBvZiBub2RlLnNvdXJjZUxpbmtzKSB7XG4gICAgICAgICAgbGluay53aWR0aCA9IGxpbmsudmFsdWUgKiBreTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgeSA9ICh5MSAtIHkgKyBweSkgLyAobm9kZXMubGVuZ3RoICsgMSk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgICAgbm9kZS55MCArPSB5ICogKGkgKyAxKTtcbiAgICAgICAgbm9kZS55MSArPSB5ICogKGkgKyAxKTtcbiAgICAgIH1cbiAgICAgIHJlb3JkZXJMaW5rcyhub2Rlcyk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY29tcHV0ZU5vZGVCcmVhZHRocyhncmFwaCkge1xuICAgIGNvbnN0IGNvbHVtbnMgPSBjb21wdXRlTm9kZUxheWVycyhncmFwaCk7XG4gICAgcHkgPSBNYXRoLm1pbihkeSwgKHkxIC0geTApIC8gKG1heChjb2x1bW5zLCBjID0+IGMubGVuZ3RoKSAtIDEpKTtcbiAgICBpbml0aWFsaXplTm9kZUJyZWFkdGhzKGNvbHVtbnMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB7XG4gICAgICBjb25zdCBhbHBoYSA9IE1hdGgucG93KDAuOTksIGkpO1xuICAgICAgY29uc3QgYmV0YSA9IE1hdGgubWF4KDEgLSBhbHBoYSwgKGkgKyAxKSAvIGl0ZXJhdGlvbnMpO1xuICAgICAgcmVsYXhSaWdodFRvTGVmdChjb2x1bW5zLCBhbHBoYSwgYmV0YSk7XG4gICAgICByZWxheExlZnRUb1JpZ2h0KGNvbHVtbnMsIGFscGhhLCBiZXRhKTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXBvc2l0aW9uIGVhY2ggbm9kZSBiYXNlZCBvbiBpdHMgaW5jb21pbmcgKHRhcmdldCkgbGlua3MuXG4gIGZ1bmN0aW9uIHJlbGF4TGVmdFRvUmlnaHQoY29sdW1ucywgYWxwaGEsIGJldGEpIHtcbiAgICBmb3IgKGxldCBpID0gMSwgbiA9IGNvbHVtbnMubGVuZ3RoOyBpIDwgbjsgKytpKSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zW2ldO1xuICAgICAgZm9yIChjb25zdCB0YXJnZXQgb2YgY29sdW1uKSB7XG4gICAgICAgIGxldCB5ID0gMDtcbiAgICAgICAgbGV0IHcgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHtzb3VyY2UsIHZhbHVlfSBvZiB0YXJnZXQudGFyZ2V0TGlua3MpIHtcbiAgICAgICAgICBsZXQgdiA9IHZhbHVlICogKHRhcmdldC5sYXllciAtIHNvdXJjZS5sYXllcik7XG4gICAgICAgICAgeSArPSB0YXJnZXRUb3Aoc291cmNlLCB0YXJnZXQpICogdjtcbiAgICAgICAgICB3ICs9IHY7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEodyA+IDApKSBjb250aW51ZTtcbiAgICAgICAgbGV0IGR5ID0gKHkgLyB3IC0gdGFyZ2V0LnkwKSAqIGFscGhhO1xuICAgICAgICB0YXJnZXQueTAgKz0gZHk7XG4gICAgICAgIHRhcmdldC55MSArPSBkeTtcbiAgICAgICAgcmVvcmRlck5vZGVMaW5rcyh0YXJnZXQpO1xuICAgICAgfVxuICAgICAgaWYgKHNvcnQgPT09IHVuZGVmaW5lZCkgY29sdW1uLnNvcnQoYXNjZW5kaW5nQnJlYWR0aCk7XG4gICAgICByZXNvbHZlQ29sbGlzaW9ucyhjb2x1bW4sIGJldGEpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlcG9zaXRpb24gZWFjaCBub2RlIGJhc2VkIG9uIGl0cyBvdXRnb2luZyAoc291cmNlKSBsaW5rcy5cbiAgZnVuY3Rpb24gcmVsYXhSaWdodFRvTGVmdChjb2x1bW5zLCBhbHBoYSwgYmV0YSkge1xuICAgIGZvciAobGV0IG4gPSBjb2x1bW5zLmxlbmd0aCwgaSA9IG4gLSAyOyBpID49IDA7IC0taSkge1xuICAgICAgY29uc3QgY29sdW1uID0gY29sdW1uc1tpXTtcbiAgICAgIGZvciAoY29uc3Qgc291cmNlIG9mIGNvbHVtbikge1xuICAgICAgICBsZXQgeSA9IDA7XG4gICAgICAgIGxldCB3ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCB7dGFyZ2V0LCB2YWx1ZX0gb2Ygc291cmNlLnNvdXJjZUxpbmtzKSB7XG4gICAgICAgICAgbGV0IHYgPSB2YWx1ZSAqICh0YXJnZXQubGF5ZXIgLSBzb3VyY2UubGF5ZXIpO1xuICAgICAgICAgIHkgKz0gc291cmNlVG9wKHNvdXJjZSwgdGFyZ2V0KSAqIHY7XG4gICAgICAgICAgdyArPSB2O1xuICAgICAgICB9XG4gICAgICAgIGlmICghKHcgPiAwKSkgY29udGludWU7XG4gICAgICAgIGxldCBkeSA9ICh5IC8gdyAtIHNvdXJjZS55MCkgKiBhbHBoYTtcbiAgICAgICAgc291cmNlLnkwICs9IGR5O1xuICAgICAgICBzb3VyY2UueTEgKz0gZHk7XG4gICAgICAgIHJlb3JkZXJOb2RlTGlua3Moc291cmNlKTtcbiAgICAgIH1cbiAgICAgIGlmIChzb3J0ID09PSB1bmRlZmluZWQpIGNvbHVtbi5zb3J0KGFzY2VuZGluZ0JyZWFkdGgpO1xuICAgICAgcmVzb2x2ZUNvbGxpc2lvbnMoY29sdW1uLCBiZXRhKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZXNvbHZlQ29sbGlzaW9ucyhub2RlcywgYWxwaGEpIHtcbiAgICBjb25zdCBpID0gbm9kZXMubGVuZ3RoID4+IDE7XG4gICAgY29uc3Qgc3ViamVjdCA9IG5vZGVzW2ldO1xuICAgIHJlc29sdmVDb2xsaXNpb25zQm90dG9tVG9Ub3Aobm9kZXMsIHN1YmplY3QueTAgLSBweSwgaSAtIDEsIGFscGhhKTtcbiAgICByZXNvbHZlQ29sbGlzaW9uc1RvcFRvQm90dG9tKG5vZGVzLCBzdWJqZWN0LnkxICsgcHksIGkgKyAxLCBhbHBoYSk7XG4gICAgcmVzb2x2ZUNvbGxpc2lvbnNCb3R0b21Ub1RvcChub2RlcywgeTEsIG5vZGVzLmxlbmd0aCAtIDEsIGFscGhhKTtcbiAgICByZXNvbHZlQ29sbGlzaW9uc1RvcFRvQm90dG9tKG5vZGVzLCB5MCwgMCwgYWxwaGEpO1xuICB9XG5cbiAgLy8gUHVzaCBhbnkgb3ZlcmxhcHBpbmcgbm9kZXMgZG93bi5cbiAgZnVuY3Rpb24gcmVzb2x2ZUNvbGxpc2lvbnNUb3BUb0JvdHRvbShub2RlcywgeSwgaSwgYWxwaGEpIHtcbiAgICBmb3IgKDsgaSA8IG5vZGVzLmxlbmd0aDsgKytpKSB7XG4gICAgICBjb25zdCBub2RlID0gbm9kZXNbaV07XG4gICAgICBjb25zdCBkeSA9ICh5IC0gbm9kZS55MCkgKiBhbHBoYTtcbiAgICAgIGlmIChkeSA+IDFlLTYpIG5vZGUueTAgKz0gZHksIG5vZGUueTEgKz0gZHk7XG4gICAgICB5ID0gbm9kZS55MSArIHB5O1xuICAgIH1cbiAgfVxuXG4gIC8vIFB1c2ggYW55IG92ZXJsYXBwaW5nIG5vZGVzIHVwLlxuICBmdW5jdGlvbiByZXNvbHZlQ29sbGlzaW9uc0JvdHRvbVRvVG9wKG5vZGVzLCB5LCBpLCBhbHBoYSkge1xuICAgIGZvciAoOyBpID49IDA7IC0taSkge1xuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgY29uc3QgZHkgPSAobm9kZS55MSAtIHkpICogYWxwaGE7XG4gICAgICBpZiAoZHkgPiAxZS02KSBub2RlLnkwIC09IGR5LCBub2RlLnkxIC09IGR5O1xuICAgICAgeSA9IG5vZGUueTAgLSBweTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZW9yZGVyTm9kZUxpbmtzKHtzb3VyY2VMaW5rcywgdGFyZ2V0TGlua3N9KSB7XG4gICAgaWYgKGxpbmtTb3J0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3Qge3NvdXJjZToge3NvdXJjZUxpbmtzfX0gb2YgdGFyZ2V0TGlua3MpIHtcbiAgICAgICAgc291cmNlTGlua3Muc29ydChhc2NlbmRpbmdUYXJnZXRCcmVhZHRoKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3Qge3RhcmdldDoge3RhcmdldExpbmtzfX0gb2Ygc291cmNlTGlua3MpIHtcbiAgICAgICAgdGFyZ2V0TGlua3Muc29ydChhc2NlbmRpbmdTb3VyY2VCcmVhZHRoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZW9yZGVyTGlua3Mobm9kZXMpIHtcbiAgICBpZiAobGlua1NvcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCB7c291cmNlTGlua3MsIHRhcmdldExpbmtzfSBvZiBub2Rlcykge1xuICAgICAgICBzb3VyY2VMaW5rcy5zb3J0KGFzY2VuZGluZ1RhcmdldEJyZWFkdGgpO1xuICAgICAgICB0YXJnZXRMaW5rcy5zb3J0KGFzY2VuZGluZ1NvdXJjZUJyZWFkdGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgdGhlIHRhcmdldC55MCB0aGF0IHdvdWxkIHByb2R1Y2UgYW4gaWRlYWwgbGluayBmcm9tIHNvdXJjZSB0byB0YXJnZXQuXG4gIGZ1bmN0aW9uIHRhcmdldFRvcChzb3VyY2UsIHRhcmdldCkge1xuICAgIGxldCB5ID0gc291cmNlLnkwIC0gKHNvdXJjZS5zb3VyY2VMaW5rcy5sZW5ndGggLSAxKSAqIHB5IC8gMjtcbiAgICBmb3IgKGNvbnN0IHt0YXJnZXQ6IG5vZGUsIHdpZHRofSBvZiBzb3VyY2Uuc291cmNlTGlua3MpIHtcbiAgICAgIGlmIChub2RlID09PSB0YXJnZXQpIGJyZWFrO1xuICAgICAgeSArPSB3aWR0aCArIHB5O1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHtzb3VyY2U6IG5vZGUsIHdpZHRofSBvZiB0YXJnZXQudGFyZ2V0TGlua3MpIHtcbiAgICAgIGlmIChub2RlID09PSBzb3VyY2UpIGJyZWFrO1xuICAgICAgeSAtPSB3aWR0aDtcbiAgICB9XG4gICAgcmV0dXJuIHk7XG4gIH1cblxuICAvLyBSZXR1cm5zIHRoZSBzb3VyY2UueTAgdGhhdCB3b3VsZCBwcm9kdWNlIGFuIGlkZWFsIGxpbmsgZnJvbSBzb3VyY2UgdG8gdGFyZ2V0LlxuICBmdW5jdGlvbiBzb3VyY2VUb3Aoc291cmNlLCB0YXJnZXQpIHtcbiAgICBsZXQgeSA9IHRhcmdldC55MCAtICh0YXJnZXQudGFyZ2V0TGlua3MubGVuZ3RoIC0gMSkgKiBweSAvIDI7XG4gICAgZm9yIChjb25zdCB7c291cmNlOiBub2RlLCB3aWR0aH0gb2YgdGFyZ2V0LnRhcmdldExpbmtzKSB7XG4gICAgICBpZiAobm9kZSA9PT0gc291cmNlKSBicmVhaztcbiAgICAgIHkgKz0gd2lkdGggKyBweTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB7dGFyZ2V0OiBub2RlLCB3aWR0aH0gb2Ygc291cmNlLnNvdXJjZUxpbmtzKSB7XG4gICAgICBpZiAobm9kZSA9PT0gdGFyZ2V0KSBicmVhaztcbiAgICAgIHkgLT0gd2lkdGg7XG4gICAgfVxuICAgIHJldHVybiB5O1xuICB9XG5cbiAgcmV0dXJuIHNhbmtleTtcbn1cbiIsCiAgICAidmFyIHBpID0gTWF0aC5QSSxcbiAgICB0YXUgPSAyICogcGksXG4gICAgZXBzaWxvbiA9IDFlLTYsXG4gICAgdGF1RXBzaWxvbiA9IHRhdSAtIGVwc2lsb247XG5cbmZ1bmN0aW9uIFBhdGgoKSB7XG4gIHRoaXMuX3gwID0gdGhpcy5feTAgPSAvLyBzdGFydCBvZiBjdXJyZW50IHN1YnBhdGhcbiAgdGhpcy5feDEgPSB0aGlzLl95MSA9IG51bGw7IC8vIGVuZCBvZiBjdXJyZW50IHN1YnBhdGhcbiAgdGhpcy5fID0gXCJcIjtcbn1cblxuZnVuY3Rpb24gcGF0aCgpIHtcbiAgcmV0dXJuIG5ldyBQYXRoO1xufVxuXG5QYXRoLnByb3RvdHlwZSA9IHBhdGgucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogUGF0aCxcbiAgbW92ZVRvOiBmdW5jdGlvbih4LCB5KSB7XG4gICAgdGhpcy5fICs9IFwiTVwiICsgKHRoaXMuX3gwID0gdGhpcy5feDEgPSAreCkgKyBcIixcIiArICh0aGlzLl95MCA9IHRoaXMuX3kxID0gK3kpO1xuICB9LFxuICBjbG9zZVBhdGg6IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLl94MSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5feDEgPSB0aGlzLl94MCwgdGhpcy5feTEgPSB0aGlzLl95MDtcbiAgICAgIHRoaXMuXyArPSBcIlpcIjtcbiAgICB9XG4gIH0sXG4gIGxpbmVUbzogZnVuY3Rpb24oeCwgeSkge1xuICAgIHRoaXMuXyArPSBcIkxcIiArICh0aGlzLl94MSA9ICt4KSArIFwiLFwiICsgKHRoaXMuX3kxID0gK3kpO1xuICB9LFxuICBxdWFkcmF0aWNDdXJ2ZVRvOiBmdW5jdGlvbih4MSwgeTEsIHgsIHkpIHtcbiAgICB0aGlzLl8gKz0gXCJRXCIgKyAoK3gxKSArIFwiLFwiICsgKCt5MSkgKyBcIixcIiArICh0aGlzLl94MSA9ICt4KSArIFwiLFwiICsgKHRoaXMuX3kxID0gK3kpO1xuICB9LFxuICBiZXppZXJDdXJ2ZVRvOiBmdW5jdGlvbih4MSwgeTEsIHgyLCB5MiwgeCwgeSkge1xuICAgIHRoaXMuXyArPSBcIkNcIiArICgreDEpICsgXCIsXCIgKyAoK3kxKSArIFwiLFwiICsgKCt4MikgKyBcIixcIiArICgreTIpICsgXCIsXCIgKyAodGhpcy5feDEgPSAreCkgKyBcIixcIiArICh0aGlzLl95MSA9ICt5KTtcbiAgfSxcbiAgYXJjVG86IGZ1bmN0aW9uKHgxLCB5MSwgeDIsIHkyLCByKSB7XG4gICAgeDEgPSAreDEsIHkxID0gK3kxLCB4MiA9ICt4MiwgeTIgPSAreTIsIHIgPSArcjtcbiAgICB2YXIgeDAgPSB0aGlzLl94MSxcbiAgICAgICAgeTAgPSB0aGlzLl95MSxcbiAgICAgICAgeDIxID0geDIgLSB4MSxcbiAgICAgICAgeTIxID0geTIgLSB5MSxcbiAgICAgICAgeDAxID0geDAgLSB4MSxcbiAgICAgICAgeTAxID0geTAgLSB5MSxcbiAgICAgICAgbDAxXzIgPSB4MDEgKiB4MDEgKyB5MDEgKiB5MDE7XG5cbiAgICAvLyBJcyB0aGUgcmFkaXVzIG5lZ2F0aXZlPyBFcnJvci5cbiAgICBpZiAociA8IDApIHRocm93IG5ldyBFcnJvcihcIm5lZ2F0aXZlIHJhZGl1czogXCIgKyByKTtcblxuICAgIC8vIElzIHRoaXMgcGF0aCBlbXB0eT8gTW92ZSB0byAoeDEseTEpLlxuICAgIGlmICh0aGlzLl94MSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5fICs9IFwiTVwiICsgKHRoaXMuX3gxID0geDEpICsgXCIsXCIgKyAodGhpcy5feTEgPSB5MSk7XG4gICAgfVxuXG4gICAgLy8gT3IsIGlzICh4MSx5MSkgY29pbmNpZGVudCB3aXRoICh4MCx5MCk/IERvIG5vdGhpbmcuXG4gICAgZWxzZSBpZiAoIShsMDFfMiA+IGVwc2lsb24pKTtcblxuICAgIC8vIE9yLCBhcmUgKHgwLHkwKSwgKHgxLHkxKSBhbmQgKHgyLHkyKSBjb2xsaW5lYXI/XG4gICAgLy8gRXF1aXZhbGVudGx5LCBpcyAoeDEseTEpIGNvaW5jaWRlbnQgd2l0aCAoeDIseTIpP1xuICAgIC8vIE9yLCBpcyB0aGUgcmFkaXVzIHplcm8/IExpbmUgdG8gKHgxLHkxKS5cbiAgICBlbHNlIGlmICghKE1hdGguYWJzKHkwMSAqIHgyMSAtIHkyMSAqIHgwMSkgPiBlcHNpbG9uKSB8fCAhcikge1xuICAgICAgdGhpcy5fICs9IFwiTFwiICsgKHRoaXMuX3gxID0geDEpICsgXCIsXCIgKyAodGhpcy5feTEgPSB5MSk7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCBkcmF3IGFuIGFyYyFcbiAgICBlbHNlIHtcbiAgICAgIHZhciB4MjAgPSB4MiAtIHgwLFxuICAgICAgICAgIHkyMCA9IHkyIC0geTAsXG4gICAgICAgICAgbDIxXzIgPSB4MjEgKiB4MjEgKyB5MjEgKiB5MjEsXG4gICAgICAgICAgbDIwXzIgPSB4MjAgKiB4MjAgKyB5MjAgKiB5MjAsXG4gICAgICAgICAgbDIxID0gTWF0aC5zcXJ0KGwyMV8yKSxcbiAgICAgICAgICBsMDEgPSBNYXRoLnNxcnQobDAxXzIpLFxuICAgICAgICAgIGwgPSByICogTWF0aC50YW4oKHBpIC0gTWF0aC5hY29zKChsMjFfMiArIGwwMV8yIC0gbDIwXzIpIC8gKDIgKiBsMjEgKiBsMDEpKSkgLyAyKSxcbiAgICAgICAgICB0MDEgPSBsIC8gbDAxLFxuICAgICAgICAgIHQyMSA9IGwgLyBsMjE7XG5cbiAgICAgIC8vIElmIHRoZSBzdGFydCB0YW5nZW50IGlzIG5vdCBjb2luY2lkZW50IHdpdGggKHgwLHkwKSwgbGluZSB0by5cbiAgICAgIGlmIChNYXRoLmFicyh0MDEgLSAxKSA+IGVwc2lsb24pIHtcbiAgICAgICAgdGhpcy5fICs9IFwiTFwiICsgKHgxICsgdDAxICogeDAxKSArIFwiLFwiICsgKHkxICsgdDAxICogeTAxKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fICs9IFwiQVwiICsgciArIFwiLFwiICsgciArIFwiLDAsMCxcIiArICgrKHkwMSAqIHgyMCA+IHgwMSAqIHkyMCkpICsgXCIsXCIgKyAodGhpcy5feDEgPSB4MSArIHQyMSAqIHgyMSkgKyBcIixcIiArICh0aGlzLl95MSA9IHkxICsgdDIxICogeTIxKTtcbiAgICB9XG4gIH0sXG4gIGFyYzogZnVuY3Rpb24oeCwgeSwgciwgYTAsIGExLCBjY3cpIHtcbiAgICB4ID0gK3gsIHkgPSAreSwgciA9ICtyLCBjY3cgPSAhIWNjdztcbiAgICB2YXIgZHggPSByICogTWF0aC5jb3MoYTApLFxuICAgICAgICBkeSA9IHIgKiBNYXRoLnNpbihhMCksXG4gICAgICAgIHgwID0geCArIGR4LFxuICAgICAgICB5MCA9IHkgKyBkeSxcbiAgICAgICAgY3cgPSAxIF4gY2N3LFxuICAgICAgICBkYSA9IGNjdyA/IGEwIC0gYTEgOiBhMSAtIGEwO1xuXG4gICAgLy8gSXMgdGhlIHJhZGl1cyBuZWdhdGl2ZT8gRXJyb3IuXG4gICAgaWYgKHIgPCAwKSB0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiICsgcik7XG5cbiAgICAvLyBJcyB0aGlzIHBhdGggZW1wdHk/IE1vdmUgdG8gKHgwLHkwKS5cbiAgICBpZiAodGhpcy5feDEgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuXyArPSBcIk1cIiArIHgwICsgXCIsXCIgKyB5MDtcbiAgICB9XG5cbiAgICAvLyBPciwgaXMgKHgwLHkwKSBub3QgY29pbmNpZGVudCB3aXRoIHRoZSBwcmV2aW91cyBwb2ludD8gTGluZSB0byAoeDAseTApLlxuICAgIGVsc2UgaWYgKE1hdGguYWJzKHRoaXMuX3gxIC0geDApID4gZXBzaWxvbiB8fCBNYXRoLmFicyh0aGlzLl95MSAtIHkwKSA+IGVwc2lsb24pIHtcbiAgICAgIHRoaXMuXyArPSBcIkxcIiArIHgwICsgXCIsXCIgKyB5MDtcbiAgICB9XG5cbiAgICAvLyBJcyB0aGlzIGFyYyBlbXB0eT8gV2XigJlyZSBkb25lLlxuICAgIGlmICghcikgcmV0dXJuO1xuXG4gICAgLy8gRG9lcyB0aGUgYW5nbGUgZ28gdGhlIHdyb25nIHdheT8gRmxpcCB0aGUgZGlyZWN0aW9uLlxuICAgIGlmIChkYSA8IDApIGRhID0gZGEgJSB0YXUgKyB0YXU7XG5cbiAgICAvLyBJcyB0aGlzIGEgY29tcGxldGUgY2lyY2xlPyBEcmF3IHR3byBhcmNzIHRvIGNvbXBsZXRlIHRoZSBjaXJjbGUuXG4gICAgaWYgKGRhID4gdGF1RXBzaWxvbikge1xuICAgICAgdGhpcy5fICs9IFwiQVwiICsgciArIFwiLFwiICsgciArIFwiLDAsMSxcIiArIGN3ICsgXCIsXCIgKyAoeCAtIGR4KSArIFwiLFwiICsgKHkgLSBkeSkgKyBcIkFcIiArIHIgKyBcIixcIiArIHIgKyBcIiwwLDEsXCIgKyBjdyArIFwiLFwiICsgKHRoaXMuX3gxID0geDApICsgXCIsXCIgKyAodGhpcy5feTEgPSB5MCk7XG4gICAgfVxuXG4gICAgLy8gSXMgdGhpcyBhcmMgbm9uLWVtcHR5PyBEcmF3IGFuIGFyYyFcbiAgICBlbHNlIGlmIChkYSA+IGVwc2lsb24pIHtcbiAgICAgIHRoaXMuXyArPSBcIkFcIiArIHIgKyBcIixcIiArIHIgKyBcIiwwLFwiICsgKCsoZGEgPj0gcGkpKSArIFwiLFwiICsgY3cgKyBcIixcIiArICh0aGlzLl94MSA9IHggKyByICogTWF0aC5jb3MoYTEpKSArIFwiLFwiICsgKHRoaXMuX3kxID0geSArIHIgKiBNYXRoLnNpbihhMSkpO1xuICAgIH1cbiAgfSxcbiAgcmVjdDogZnVuY3Rpb24oeCwgeSwgdywgaCkge1xuICAgIHRoaXMuXyArPSBcIk1cIiArICh0aGlzLl94MCA9IHRoaXMuX3gxID0gK3gpICsgXCIsXCIgKyAodGhpcy5feTAgPSB0aGlzLl95MSA9ICt5KSArIFwiaFwiICsgKCt3KSArIFwidlwiICsgKCtoKSArIFwiaFwiICsgKC13KSArIFwiWlwiO1xuICB9LFxuICB0b1N0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuXztcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgcGF0aDtcbiIsCiAgICAiZXhwb3J0IHtkZWZhdWx0IGFzIHBhdGh9IGZyb20gXCIuL3BhdGguanNcIjtcbiIsCiAgICAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4gZnVuY3Rpb24gY29uc3RhbnQoKSB7XG4gICAgcmV0dXJuIHg7XG4gIH07XG59XG4iLAogICAgImV4cG9ydCBmdW5jdGlvbiB4KHApIHtcbiAgcmV0dXJuIHBbMF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB5KHApIHtcbiAgcmV0dXJuIHBbMV07XG59XG4iLAogICAgImV4cG9ydCB2YXIgc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7XG4iLAogICAgImltcG9ydCB7cGF0aH0gZnJvbSBcImQzLXBhdGhcIjtcbmltcG9ydCB7c2xpY2V9IGZyb20gXCIuLi9hcnJheS5qc1wiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IHt4IGFzIHBvaW50WCwgeSBhcyBwb2ludFl9IGZyb20gXCIuLi9wb2ludC5qc1wiO1xuaW1wb3J0IHBvaW50UmFkaWFsIGZyb20gXCIuLi9wb2ludFJhZGlhbC5qc1wiO1xuXG5mdW5jdGlvbiBsaW5rU291cmNlKGQpIHtcbiAgcmV0dXJuIGQuc291cmNlO1xufVxuXG5mdW5jdGlvbiBsaW5rVGFyZ2V0KGQpIHtcbiAgcmV0dXJuIGQudGFyZ2V0O1xufVxuXG5mdW5jdGlvbiBsaW5rKGN1cnZlKSB7XG4gIHZhciBzb3VyY2UgPSBsaW5rU291cmNlLFxuICAgICAgdGFyZ2V0ID0gbGlua1RhcmdldCxcbiAgICAgIHggPSBwb2ludFgsXG4gICAgICB5ID0gcG9pbnRZLFxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgZnVuY3Rpb24gbGluaygpIHtcbiAgICB2YXIgYnVmZmVyLCBhcmd2ID0gc2xpY2UuY2FsbChhcmd1bWVudHMpLCBzID0gc291cmNlLmFwcGx5KHRoaXMsIGFyZ3YpLCB0ID0gdGFyZ2V0LmFwcGx5KHRoaXMsIGFyZ3YpO1xuICAgIGlmICghY29udGV4dCkgY29udGV4dCA9IGJ1ZmZlciA9IHBhdGgoKTtcbiAgICBjdXJ2ZShjb250ZXh0LCAreC5hcHBseSh0aGlzLCAoYXJndlswXSA9IHMsIGFyZ3YpKSwgK3kuYXBwbHkodGhpcywgYXJndiksICt4LmFwcGx5KHRoaXMsIChhcmd2WzBdID0gdCwgYXJndikpLCAreS5hcHBseSh0aGlzLCBhcmd2KSk7XG4gICAgaWYgKGJ1ZmZlcikgcmV0dXJuIGNvbnRleHQgPSBudWxsLCBidWZmZXIgKyBcIlwiIHx8IG51bGw7XG4gIH1cblxuICBsaW5rLnNvdXJjZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChzb3VyY2UgPSBfLCBsaW5rKSA6IHNvdXJjZTtcbiAgfTtcblxuICBsaW5rLnRhcmdldCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0YXJnZXQgPSBfLCBsaW5rKSA6IHRhcmdldDtcbiAgfTtcblxuICBsaW5rLnggPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoeCA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBsaW5rKSA6IHg7XG4gIH07XG5cbiAgbGluay55ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHkgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgbGluaykgOiB5O1xuICB9O1xuXG4gIGxpbmsuY29udGV4dCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICgoY29udGV4dCA9IF8gPT0gbnVsbCA/IG51bGwgOiBfKSwgbGluaykgOiBjb250ZXh0O1xuICB9O1xuXG4gIHJldHVybiBsaW5rO1xufVxuXG5mdW5jdGlvbiBjdXJ2ZUhvcml6b250YWwoY29udGV4dCwgeDAsIHkwLCB4MSwgeTEpIHtcbiAgY29udGV4dC5tb3ZlVG8oeDAsIHkwKTtcbiAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKHgwID0gKHgwICsgeDEpIC8gMiwgeTAsIHgwLCB5MSwgeDEsIHkxKTtcbn1cblxuZnVuY3Rpb24gY3VydmVWZXJ0aWNhbChjb250ZXh0LCB4MCwgeTAsIHgxLCB5MSkge1xuICBjb250ZXh0Lm1vdmVUbyh4MCwgeTApO1xuICBjb250ZXh0LmJlemllckN1cnZlVG8oeDAsIHkwID0gKHkwICsgeTEpIC8gMiwgeDEsIHkwLCB4MSwgeTEpO1xufVxuXG5mdW5jdGlvbiBjdXJ2ZVJhZGlhbChjb250ZXh0LCB4MCwgeTAsIHgxLCB5MSkge1xuICB2YXIgcDAgPSBwb2ludFJhZGlhbCh4MCwgeTApLFxuICAgICAgcDEgPSBwb2ludFJhZGlhbCh4MCwgeTAgPSAoeTAgKyB5MSkgLyAyKSxcbiAgICAgIHAyID0gcG9pbnRSYWRpYWwoeDEsIHkwKSxcbiAgICAgIHAzID0gcG9pbnRSYWRpYWwoeDEsIHkxKTtcbiAgY29udGV4dC5tb3ZlVG8ocDBbMF0sIHAwWzFdKTtcbiAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKHAxWzBdLCBwMVsxXSwgcDJbMF0sIHAyWzFdLCBwM1swXSwgcDNbMV0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlua0hvcml6b250YWwoKSB7XG4gIHJldHVybiBsaW5rKGN1cnZlSG9yaXpvbnRhbCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW5rVmVydGljYWwoKSB7XG4gIHJldHVybiBsaW5rKGN1cnZlVmVydGljYWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlua1JhZGlhbCgpIHtcbiAgdmFyIGwgPSBsaW5rKGN1cnZlUmFkaWFsKTtcbiAgbC5hbmdsZSA9IGwueCwgZGVsZXRlIGwueDtcbiAgbC5yYWRpdXMgPSBsLnksIGRlbGV0ZSBsLnk7XG4gIHJldHVybiBsO1xufVxuIiwKICAgICJleHBvcnQge2RlZmF1bHQgYXMgYXJjfSBmcm9tIFwiLi9hcmMuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBhcmVhfSBmcm9tIFwiLi9hcmVhLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgbGluZX0gZnJvbSBcIi4vbGluZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHBpZX0gZnJvbSBcIi4vcGllLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgYXJlYVJhZGlhbCwgZGVmYXVsdCBhcyByYWRpYWxBcmVhfSBmcm9tIFwiLi9hcmVhUmFkaWFsLmpzXCI7IC8vIE5vdGU6IHJhZGlhbEFyZWEgaXMgZGVwcmVjYXRlZCFcbmV4cG9ydCB7ZGVmYXVsdCBhcyBsaW5lUmFkaWFsLCBkZWZhdWx0IGFzIHJhZGlhbExpbmV9IGZyb20gXCIuL2xpbmVSYWRpYWwuanNcIjsgLy8gTm90ZTogcmFkaWFsTGluZSBpcyBkZXByZWNhdGVkIVxuZXhwb3J0IHtkZWZhdWx0IGFzIHBvaW50UmFkaWFsfSBmcm9tIFwiLi9wb2ludFJhZGlhbC5qc1wiO1xuZXhwb3J0IHtsaW5rSG9yaXpvbnRhbCwgbGlua1ZlcnRpY2FsLCBsaW5rUmFkaWFsfSBmcm9tIFwiLi9saW5rL2luZGV4LmpzXCI7XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBzeW1ib2wsIHN5bWJvbHN9IGZyb20gXCIuL3N5bWJvbC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN5bWJvbENpcmNsZX0gZnJvbSBcIi4vc3ltYm9sL2NpcmNsZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN5bWJvbENyb3NzfSBmcm9tIFwiLi9zeW1ib2wvY3Jvc3MuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzeW1ib2xEaWFtb25kfSBmcm9tIFwiLi9zeW1ib2wvZGlhbW9uZC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN5bWJvbFNxdWFyZX0gZnJvbSBcIi4vc3ltYm9sL3NxdWFyZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN5bWJvbFN0YXJ9IGZyb20gXCIuL3N5bWJvbC9zdGFyLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3ltYm9sVHJpYW5nbGV9IGZyb20gXCIuL3N5bWJvbC90cmlhbmdsZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN5bWJvbFd5ZX0gZnJvbSBcIi4vc3ltYm9sL3d5ZS5qc1wiO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgY3VydmVCYXNpc0Nsb3NlZH0gZnJvbSBcIi4vY3VydmUvYmFzaXNDbG9zZWQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUJhc2lzT3Blbn0gZnJvbSBcIi4vY3VydmUvYmFzaXNPcGVuLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgY3VydmVCYXNpc30gZnJvbSBcIi4vY3VydmUvYmFzaXMuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUJ1bmRsZX0gZnJvbSBcIi4vY3VydmUvYnVuZGxlLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgY3VydmVDYXJkaW5hbENsb3NlZH0gZnJvbSBcIi4vY3VydmUvY2FyZGluYWxDbG9zZWQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUNhcmRpbmFsT3Blbn0gZnJvbSBcIi4vY3VydmUvY2FyZGluYWxPcGVuLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgY3VydmVDYXJkaW5hbH0gZnJvbSBcIi4vY3VydmUvY2FyZGluYWwuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUNhdG11bGxSb21DbG9zZWR9IGZyb20gXCIuL2N1cnZlL2NhdG11bGxSb21DbG9zZWQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUNhdG11bGxSb21PcGVufSBmcm9tIFwiLi9jdXJ2ZS9jYXRtdWxsUm9tT3Blbi5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGN1cnZlQ2F0bXVsbFJvbX0gZnJvbSBcIi4vY3VydmUvY2F0bXVsbFJvbS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGN1cnZlTGluZWFyQ2xvc2VkfSBmcm9tIFwiLi9jdXJ2ZS9saW5lYXJDbG9zZWQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBjdXJ2ZUxpbmVhcn0gZnJvbSBcIi4vY3VydmUvbGluZWFyLmpzXCI7XG5leHBvcnQge21vbm90b25lWCBhcyBjdXJ2ZU1vbm90b25lWCwgbW9ub3RvbmVZIGFzIGN1cnZlTW9ub3RvbmVZfSBmcm9tIFwiLi9jdXJ2ZS9tb25vdG9uZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGN1cnZlTmF0dXJhbH0gZnJvbSBcIi4vY3VydmUvbmF0dXJhbC5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGN1cnZlU3RlcCwgc3RlcEFmdGVyIGFzIGN1cnZlU3RlcEFmdGVyLCBzdGVwQmVmb3JlIGFzIGN1cnZlU3RlcEJlZm9yZX0gZnJvbSBcIi4vY3VydmUvc3RlcC5qc1wiO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgc3RhY2t9IGZyb20gXCIuL3N0YWNrLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3RhY2tPZmZzZXRFeHBhbmR9IGZyb20gXCIuL29mZnNldC9leHBhbmQuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzdGFja09mZnNldERpdmVyZ2luZ30gZnJvbSBcIi4vb2Zmc2V0L2RpdmVyZ2luZy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN0YWNrT2Zmc2V0Tm9uZX0gZnJvbSBcIi4vb2Zmc2V0L25vbmUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzdGFja09mZnNldFNpbGhvdWV0dGV9IGZyb20gXCIuL29mZnNldC9zaWxob3VldHRlLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3RhY2tPZmZzZXRXaWdnbGV9IGZyb20gXCIuL29mZnNldC93aWdnbGUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzdGFja09yZGVyQXBwZWFyYW5jZX0gZnJvbSBcIi4vb3JkZXIvYXBwZWFyYW5jZS5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN0YWNrT3JkZXJBc2NlbmRpbmd9IGZyb20gXCIuL29yZGVyL2FzY2VuZGluZy5qc1wiO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHN0YWNrT3JkZXJEZXNjZW5kaW5nfSBmcm9tIFwiLi9vcmRlci9kZXNjZW5kaW5nLmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3RhY2tPcmRlckluc2lkZU91dH0gZnJvbSBcIi4vb3JkZXIvaW5zaWRlT3V0LmpzXCI7XG5leHBvcnQge2RlZmF1bHQgYXMgc3RhY2tPcmRlck5vbmV9IGZyb20gXCIuL29yZGVyL25vbmUuanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzdGFja09yZGVyUmV2ZXJzZX0gZnJvbSBcIi4vb3JkZXIvcmV2ZXJzZS5qc1wiO1xuIiwKICAgICJpbXBvcnQge2xpbmtIb3Jpem9udGFsfSBmcm9tIFwiZDMtc2hhcGVcIjtcblxuZnVuY3Rpb24gaG9yaXpvbnRhbFNvdXJjZShkKSB7XG4gIHJldHVybiBbZC5zb3VyY2UueDEsIGQueTBdO1xufVxuXG5mdW5jdGlvbiBob3Jpem9udGFsVGFyZ2V0KGQpIHtcbiAgcmV0dXJuIFtkLnRhcmdldC54MCwgZC55MV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbGlua0hvcml6b250YWwoKVxuICAgICAgLnNvdXJjZShob3Jpem9udGFsU291cmNlKVxuICAgICAgLnRhcmdldChob3Jpem9udGFsVGFyZ2V0KTtcbn1cbiIsCiAgICAiZXhwb3J0IHtkZWZhdWx0IGFzIHNhbmtleX0gZnJvbSBcIi4vc2Fua2V5LmpzXCI7XG5leHBvcnQge2NlbnRlciBhcyBzYW5rZXlDZW50ZXIsIGxlZnQgYXMgc2Fua2V5TGVmdCwgcmlnaHQgYXMgc2Fua2V5UmlnaHQsIGp1c3RpZnkgYXMgc2Fua2V5SnVzdGlmeX0gZnJvbSBcIi4vYWxpZ24uanNcIjtcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzYW5rZXlMaW5rSG9yaXpvbnRhbH0gZnJvbSBcIi4vc2Fua2V5TGlua0hvcml6b250YWwuanNcIjtcbiIsCiAgICAiaW1wb3J0IHsgYyBhcyBnZXRDb25maWcsIGcgYXMgZ2V0QWNjVGl0bGUsIHMgYXMgc2V0QWNjVGl0bGUsIGEgYXMgZ2V0QWNjRGVzY3JpcHRpb24sIGIgYXMgc2V0QWNjRGVzY3JpcHRpb24sIHQgYXMgZ2V0RGlhZ3JhbVRpdGxlLCBxIGFzIHNldERpYWdyYW1UaXRsZSwgdiBhcyBjbGVhciQxLCBlIGFzIGNvbW1vbiwgSyBhcyBkZWZhdWx0Q29uZmlnLCBvIGFzIHNldHVwR3JhcGhWaWV3Ym94IH0gZnJvbSBcIi4vbWVybWFpZC02ZGM3Mjk5MS5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0LCBzY2FsZU9yZGluYWwsIHNjaGVtZVRhYmxlYXUxMCB9IGZyb20gXCJkM1wiO1xuaW1wb3J0IHsgc2Fua2V5LCBzYW5rZXlMaW5rSG9yaXpvbnRhbCwgc2Fua2V5TGVmdCwgc2Fua2V5UmlnaHQsIHNhbmtleUNlbnRlciwgc2Fua2V5SnVzdGlmeSB9IGZyb20gXCJkMy1zYW5rZXlcIjtcbmltcG9ydCBcInRzLWRlZGVudFwiO1xuaW1wb3J0IFwiZGF5anNcIjtcbmltcG9ydCBcIkBicmFpbnRyZWUvc2FuaXRpemUtdXJsXCI7XG5pbXBvcnQgXCJkb21wdXJpZnlcIjtcbmltcG9ydCBcImtocm9tYVwiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lbW9pemUuanNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9tZXJnZS5qc1wiO1xuaW1wb3J0IFwic3R5bGlzXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvaXNFbXB0eS5qc1wiO1xudmFyIHBhcnNlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgbyA9IGZ1bmN0aW9uKGssIHYsIG8yLCBsKSB7XG4gICAgZm9yIChvMiA9IG8yIHx8IHt9LCBsID0gay5sZW5ndGg7IGwtLTsgbzJba1tsXV0gPSB2KVxuICAgICAgO1xuICAgIHJldHVybiBvMjtcbiAgfSwgJFYwID0gWzEsIDldLCAkVjEgPSBbMSwgMTBdLCAkVjIgPSBbMSwgNSwgMTAsIDEyXTtcbiAgdmFyIHBhcnNlcjIgPSB7XG4gICAgdHJhY2U6IGZ1bmN0aW9uIHRyYWNlKCkge1xuICAgIH0sXG4gICAgeXk6IHt9LFxuICAgIHN5bWJvbHNfOiB7IFwiZXJyb3JcIjogMiwgXCJzdGFydFwiOiAzLCBcIlNBTktFWVwiOiA0LCBcIk5FV0xJTkVcIjogNSwgXCJjc3ZcIjogNiwgXCJvcHRfZW9mXCI6IDcsIFwicmVjb3JkXCI6IDgsIFwiY3N2X3RhaWxcIjogOSwgXCJFT0ZcIjogMTAsIFwiZmllbGRbc291cmNlXVwiOiAxMSwgXCJDT01NQVwiOiAxMiwgXCJmaWVsZFt0YXJnZXRdXCI6IDEzLCBcImZpZWxkW3ZhbHVlXVwiOiAxNCwgXCJmaWVsZFwiOiAxNSwgXCJlc2NhcGVkXCI6IDE2LCBcIm5vbl9lc2NhcGVkXCI6IDE3LCBcIkRRVU9URVwiOiAxOCwgXCJFU0NBUEVEX1RFWFRcIjogMTksIFwiTk9OX0VTQ0FQRURfVEVYVFwiOiAyMCwgXCIkYWNjZXB0XCI6IDAsIFwiJGVuZFwiOiAxIH0sXG4gICAgdGVybWluYWxzXzogeyAyOiBcImVycm9yXCIsIDQ6IFwiU0FOS0VZXCIsIDU6IFwiTkVXTElORVwiLCAxMDogXCJFT0ZcIiwgMTE6IFwiZmllbGRbc291cmNlXVwiLCAxMjogXCJDT01NQVwiLCAxMzogXCJmaWVsZFt0YXJnZXRdXCIsIDE0OiBcImZpZWxkW3ZhbHVlXVwiLCAxODogXCJEUVVPVEVcIiwgMTk6IFwiRVNDQVBFRF9URVhUXCIsIDIwOiBcIk5PTl9FU0NBUEVEX1RFWFRcIiB9LFxuICAgIHByb2R1Y3Rpb25zXzogWzAsIFszLCA0XSwgWzYsIDJdLCBbOSwgMl0sIFs5LCAwXSwgWzcsIDFdLCBbNywgMF0sIFs4LCA1XSwgWzE1LCAxXSwgWzE1LCAxXSwgWzE2LCAzXSwgWzE3LCAxXV0sXG4gICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5dGV4dCwgeXlsZW5nLCB5eWxpbmVubywgeXksIHl5c3RhdGUsICQkLCBfJCkge1xuICAgICAgdmFyICQwID0gJCQubGVuZ3RoIC0gMTtcbiAgICAgIHN3aXRjaCAoeXlzdGF0ZSkge1xuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgY29uc3Qgc291cmNlID0geXkuZmluZE9yQ3JlYXRlTm9kZSgkJFskMCAtIDRdLnRyaW0oKS5yZXBsYWNlQWxsKCdcIlwiJywgJ1wiJykpO1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHl5LmZpbmRPckNyZWF0ZU5vZGUoJCRbJDAgLSAyXS50cmltKCkucmVwbGFjZUFsbCgnXCJcIicsICdcIicpKTtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcnNlRmxvYXQoJCRbJDBdLnRyaW0oKSk7XG4gICAgICAgICAgeXkuYWRkTGluayhzb3VyY2UsIHRhcmdldCwgdmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgdGhpcy4kID0gJCRbJDAgLSAxXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYmxlOiBbeyAzOiAxLCA0OiBbMSwgMl0gfSwgeyAxOiBbM10gfSwgeyA1OiBbMSwgM10gfSwgeyA2OiA0LCA4OiA1LCAxNTogNiwgMTY6IDcsIDE3OiA4LCAxODogJFYwLCAyMDogJFYxIH0sIHsgMTogWzIsIDZdLCA3OiAxMSwgMTA6IFsxLCAxMl0gfSwgbygkVjEsIFsyLCA0XSwgeyA5OiAxMywgNTogWzEsIDE0XSB9KSwgeyAxMjogWzEsIDE1XSB9LCBvKCRWMiwgWzIsIDhdKSwgbygkVjIsIFsyLCA5XSksIHsgMTk6IFsxLCAxNl0gfSwgbygkVjIsIFsyLCAxMV0pLCB7IDE6IFsyLCAxXSB9LCB7IDE6IFsyLCA1XSB9LCBvKCRWMSwgWzIsIDJdKSwgeyA2OiAxNywgODogNSwgMTU6IDYsIDE2OiA3LCAxNzogOCwgMTg6ICRWMCwgMjA6ICRWMSB9LCB7IDE1OiAxOCwgMTY6IDcsIDE3OiA4LCAxODogJFYwLCAyMDogJFYxIH0sIHsgMTg6IFsxLCAxOV0gfSwgbygkVjEsIFsyLCAzXSksIHsgMTI6IFsxLCAyMF0gfSwgbygkVjIsIFsyLCAxMF0pLCB7IDE1OiAyMSwgMTY6IDcsIDE3OiA4LCAxODogJFYwLCAyMDogJFYxIH0sIG8oWzEsIDUsIDEwXSwgWzIsIDddKV0sXG4gICAgZGVmYXVsdEFjdGlvbnM6IHsgMTE6IFsyLCAxXSwgMTI6IFsyLCA1XSB9LFxuICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICBpZiAoaGFzaC5yZWNvdmVyYWJsZSkge1xuICAgICAgICB0aGlzLnRyYWNlKHN0cik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgZXJyb3IuaGFzaCA9IGhhc2g7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0sXG4gICAgcGFyc2U6IGZ1bmN0aW9uIHBhcnNlKGlucHV0KSB7XG4gICAgICB2YXIgc2VsZiA9IHRoaXMsIHN0YWNrID0gWzBdLCB0c3RhY2sgPSBbXSwgdnN0YWNrID0gW251bGxdLCBsc3RhY2sgPSBbXSwgdGFibGUgPSB0aGlzLnRhYmxlLCB5eXRleHQgPSBcIlwiLCB5eWxpbmVubyA9IDAsIHl5bGVuZyA9IDAsIFRFUlJPUiA9IDIsIEVPRiA9IDE7XG4gICAgICB2YXIgYXJncyA9IGxzdGFjay5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICB2YXIgbGV4ZXIyID0gT2JqZWN0LmNyZWF0ZSh0aGlzLmxleGVyKTtcbiAgICAgIHZhciBzaGFyZWRTdGF0ZSA9IHsgeXk6IHt9IH07XG4gICAgICBmb3IgKHZhciBrIGluIHRoaXMueXkpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLnl5LCBrKSkge1xuICAgICAgICAgIHNoYXJlZFN0YXRlLnl5W2tdID0gdGhpcy55eVtrXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV4ZXIyLnNldElucHV0KGlucHV0LCBzaGFyZWRTdGF0ZS55eSk7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5sZXhlciA9IGxleGVyMjtcbiAgICAgIHNoYXJlZFN0YXRlLnl5LnBhcnNlciA9IHRoaXM7XG4gICAgICBpZiAodHlwZW9mIGxleGVyMi55eWxsb2MgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBsZXhlcjIueXlsbG9jID0ge307XG4gICAgICB9XG4gICAgICB2YXIgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgbHN0YWNrLnB1c2goeXlsb2MpO1xuICAgICAgdmFyIHJhbmdlcyA9IGxleGVyMi5vcHRpb25zICYmIGxleGVyMi5vcHRpb25zLnJhbmdlcztcbiAgICAgIGlmICh0eXBlb2Ygc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRoaXMucGFyc2VFcnJvciA9IHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3I7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykucGFyc2VFcnJvcjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHRva2VuO1xuICAgICAgICB0b2tlbiA9IHRzdGFjay5wb3AoKSB8fCBsZXhlcjIubGV4KCkgfHwgRU9GO1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgaWYgKHRva2VuIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIHRzdGFjayA9IHRva2VuO1xuICAgICAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRva2VuID0gc2VsZi5zeW1ib2xzX1t0b2tlbl0gfHwgdG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgfVxuICAgICAgdmFyIHN5bWJvbCwgc3RhdGUsIGFjdGlvbiwgciwgeXl2YWwgPSB7fSwgcCwgbGVuLCBuZXdTdGF0ZSwgZXhwZWN0ZWQ7XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBzdGF0ZSA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV0pIHtcbiAgICAgICAgICBhY3Rpb24gPSB0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc3ltYm9sID09PSBudWxsIHx8IHR5cGVvZiBzeW1ib2wgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgc3ltYm9sID0gbGV4KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjdGlvbiA9IHRhYmxlW3N0YXRlXSAmJiB0YWJsZVtzdGF0ZV1bc3ltYm9sXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhYWN0aW9uLmxlbmd0aCB8fCAhYWN0aW9uWzBdKSB7XG4gICAgICAgICAgdmFyIGVyclN0ciA9IFwiXCI7XG4gICAgICAgICAgZXhwZWN0ZWQgPSBbXTtcbiAgICAgICAgICBmb3IgKHAgaW4gdGFibGVbc3RhdGVdKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50ZXJtaW5hbHNfW3BdICYmIHAgPiBURVJST1IpIHtcbiAgICAgICAgICAgICAgZXhwZWN0ZWQucHVzaChcIidcIiArIHRoaXMudGVybWluYWxzX1twXSArIFwiJ1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGxleGVyMi5zaG93UG9zaXRpb24pIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6XFxuXCIgKyBsZXhlcjIuc2hvd1Bvc2l0aW9uKCkgKyBcIlxcbkV4cGVjdGluZyBcIiArIGV4cGVjdGVkLmpvaW4oXCIsIFwiKSArIFwiLCBnb3QgJ1wiICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyBcIidcIjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyU3RyID0gXCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiICsgKHl5bGluZW5vICsgMSkgKyBcIjogVW5leHBlY3RlZCBcIiArIChzeW1ib2wgPT0gRU9GID8gXCJlbmQgb2YgaW5wdXRcIiA6IFwiJ1wiICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyBcIidcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucGFyc2VFcnJvcihlcnJTdHIsIHtcbiAgICAgICAgICAgIHRleHQ6IGxleGVyMi5tYXRjaCxcbiAgICAgICAgICAgIHRva2VuOiB0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wsXG4gICAgICAgICAgICBsaW5lOiBsZXhlcjIueXlsaW5lbm8sXG4gICAgICAgICAgICBsb2M6IHl5bG9jLFxuICAgICAgICAgICAgZXhwZWN0ZWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uWzBdIGluc3RhbmNlb2YgQXJyYXkgJiYgYWN0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXJzZSBFcnJvcjogbXVsdGlwbGUgYWN0aW9ucyBwb3NzaWJsZSBhdCBzdGF0ZTogXCIgKyBzdGF0ZSArIFwiLCB0b2tlbjogXCIgKyBzeW1ib2wpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uWzBdKSB7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgc3RhY2sucHVzaChzeW1ib2wpO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2gobGV4ZXIyLnl5dGV4dCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaChsZXhlcjIueXlsbG9jKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goYWN0aW9uWzFdKTtcbiAgICAgICAgICAgIHN5bWJvbCA9IG51bGw7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHl5bGVuZyA9IGxleGVyMi55eWxlbmc7XG4gICAgICAgICAgICAgIHl5dGV4dCA9IGxleGVyMi55eXRleHQ7XG4gICAgICAgICAgICAgIHl5bGluZW5vID0gbGV4ZXIyLnl5bGluZW5vO1xuICAgICAgICAgICAgICB5eWxvYyA9IGxleGVyMi55eWxsb2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICBsZW4gPSB0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzFdO1xuICAgICAgICAgICAgeXl2YWwuJCA9IHZzdGFja1t2c3RhY2subGVuZ3RoIC0gbGVuXTtcbiAgICAgICAgICAgIHl5dmFsLl8kID0ge1xuICAgICAgICAgICAgICBmaXJzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJhbmdlcykge1xuICAgICAgICAgICAgICB5eXZhbC5fJC5yYW5nZSA9IFtcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLnJhbmdlWzBdLFxuICAgICAgICAgICAgICAgIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ucmFuZ2VbMV1cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHIgPSB0aGlzLnBlcmZvcm1BY3Rpb24uYXBwbHkoeXl2YWwsIFtcbiAgICAgICAgICAgICAgeXl0ZXh0LFxuICAgICAgICAgICAgICB5eWxlbmcsXG4gICAgICAgICAgICAgIHl5bGluZW5vLFxuICAgICAgICAgICAgICBzaGFyZWRTdGF0ZS55eSxcbiAgICAgICAgICAgICAgYWN0aW9uWzFdLFxuICAgICAgICAgICAgICB2c3RhY2ssXG4gICAgICAgICAgICAgIGxzdGFja1xuICAgICAgICAgICAgXS5jb25jYXQoYXJncykpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlbikge1xuICAgICAgICAgICAgICBzdGFjayA9IHN0YWNrLnNsaWNlKDAsIC0xICogbGVuICogMik7XG4gICAgICAgICAgICAgIHZzdGFjayA9IHZzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICAgIGxzdGFjayA9IGxzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFjay5wdXNoKHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMF0pO1xuICAgICAgICAgICAgdnN0YWNrLnB1c2goeXl2YWwuJCk7XG4gICAgICAgICAgICBsc3RhY2sucHVzaCh5eXZhbC5fJCk7XG4gICAgICAgICAgICBuZXdTdGF0ZSA9IHRhYmxlW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDJdXVtzdGFja1tzdGFjay5sZW5ndGggLSAxXV07XG4gICAgICAgICAgICBzdGFjay5wdXNoKG5ld1N0YXRlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH07XG4gIHZhciBsZXhlciA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBsZXhlcjIgPSB7XG4gICAgICBFT0Y6IDEsXG4gICAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgICBpZiAodGhpcy55eS5wYXJzZXIpIHtcbiAgICAgICAgICB0aGlzLnl5LnBhcnNlci5wYXJzZUVycm9yKHN0ciwgaGFzaCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHN0cik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXNldHMgdGhlIGxleGVyLCBzZXRzIG5ldyBpbnB1dFxuICAgICAgc2V0SW5wdXQ6IGZ1bmN0aW9uKGlucHV0LCB5eSkge1xuICAgICAgICB0aGlzLnl5ID0geXkgfHwgdGhpcy55eSB8fCB7fTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRoaXMuX2JhY2t0cmFjayA9IHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnl5bGluZW5vID0gdGhpcy55eWxlbmcgPSAwO1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrID0gW1wiSU5JVElBTFwiXTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7XG4gICAgICAgICAgZmlyc3RfbGluZTogMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IDAsXG4gICAgICAgICAgbGFzdF9saW5lOiAxLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiAwXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbMCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICAvLyBjb25zdW1lcyBhbmQgcmV0dXJucyBvbmUgY2hhciBmcm9tIHRoZSBpbnB1dFxuICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY2ggPSB0aGlzLl9pbnB1dFswXTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gY2g7XG4gICAgICAgIHRoaXMueXlsZW5nKys7XG4gICAgICAgIHRoaXMub2Zmc2V0Kys7XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gY2g7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBjaDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2gubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vKys7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9saW5lKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9jb2x1bW4rKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlWzFdKys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZSgxKTtcbiAgICAgICAgcmV0dXJuIGNoO1xuICAgICAgfSxcbiAgICAgIC8vIHVuc2hpZnRzIG9uZSBjaGFyIChvciBhIHN0cmluZykgaW50byB0aGUgaW5wdXRcbiAgICAgIHVucHV0OiBmdW5jdGlvbihjaCkge1xuICAgICAgICB2YXIgbGVuID0gY2gubGVuZ3RoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IGNoICsgdGhpcy5faW5wdXQ7XG4gICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy55eXRleHQuc3Vic3RyKDAsIHRoaXMueXl0ZXh0Lmxlbmd0aCAtIGxlbik7XG4gICAgICAgIHRoaXMub2Zmc2V0IC09IGxlbjtcbiAgICAgICAgdmFyIG9sZExpbmVzID0gdGhpcy5tYXRjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLm1hdGNoID0gdGhpcy5tYXRjaC5zdWJzdHIoMCwgdGhpcy5tYXRjaC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gMSk7XG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubyAtPSBsaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHZhciByID0gdGhpcy55eWxsb2MucmFuZ2U7XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyAobGluZXMubGVuZ3RoID09PSBvbGRMaW5lcy5sZW5ndGggPyB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gOiAwKSArIG9sZExpbmVzW29sZExpbmVzLmxlbmd0aCAtIGxpbmVzLmxlbmd0aF0ubGVuZ3RoIC0gbGluZXNbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIC0gbGVuXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbclswXSwgclswXSArIHRoaXMueXlsZW5nIC0gbGVuXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIGNhY2hlcyBtYXRjaGVkIHRleHQgYW5kIGFwcGVuZHMgaXQgb24gbmV4dCBhY3Rpb25cbiAgICAgIG1vcmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLl9tb3JlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gV2hlbiBjYWxsZWQgZnJvbSBhY3Rpb24sIHNpZ25hbHMgdGhlIGxleGVyIHRoYXQgdGhpcyBydWxlIGZhaWxzIHRvIG1hdGNoIHRoZSBpbnB1dCwgc28gdGhlIG5leHQgbWF0Y2hpbmcgcnVsZSAocmVnZXgpIHNob3VsZCBiZSB0ZXN0ZWQgaW5zdGVhZC5cbiAgICAgIHJlamVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBZb3UgY2FuIG9ubHkgaW52b2tlIHJlamVjdCgpIGluIHRoZSBsZXhlciB3aGVuIHRoZSBsZXhlciBpcyBvZiB0aGUgYmFja3RyYWNraW5nIHBlcnN1YXNpb24gKG9wdGlvbnMuYmFja3RyYWNrX2xleGVyID0gdHJ1ZSkuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gcmV0YWluIGZpcnN0IG4gY2hhcmFjdGVycyBvZiB0aGUgbWF0Y2hcbiAgICAgIGxlc3M6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdGhpcy51bnB1dCh0aGlzLm1hdGNoLnNsaWNlKG4pKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyBhbHJlYWR5IG1hdGNoZWQgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBwYXN0SW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcGFzdCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIHRoaXMubWF0Y2gubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIChwYXN0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpICsgcGFzdC5zdWJzdHIoLTIwKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdXBjb21pbmcgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICB1cGNvbWluZ0lucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLm1hdGNoO1xuICAgICAgICBpZiAobmV4dC5sZW5ndGggPCAyMCkge1xuICAgICAgICAgIG5leHQgKz0gdGhpcy5faW5wdXQuc3Vic3RyKDAsIDIwIC0gbmV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAobmV4dC5zdWJzdHIoMCwgMjApICsgKG5leHQubGVuZ3RoID4gMjAgPyBcIi4uLlwiIDogXCJcIikpLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgIH0sXG4gICAgICAvLyBkaXNwbGF5cyB0aGUgY2hhcmFjdGVyIHBvc2l0aW9uIHdoZXJlIHRoZSBsZXhpbmcgZXJyb3Igb2NjdXJyZWQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAgICBzaG93UG9zaXRpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcHJlID0gdGhpcy5wYXN0SW5wdXQoKTtcbiAgICAgICAgdmFyIGMgPSBuZXcgQXJyYXkocHJlLmxlbmd0aCArIDEpLmpvaW4oXCItXCIpO1xuICAgICAgICByZXR1cm4gcHJlICsgdGhpcy51cGNvbWluZ0lucHV0KCkgKyBcIlxcblwiICsgYyArIFwiXlwiO1xuICAgICAgfSxcbiAgICAgIC8vIHRlc3QgdGhlIGxleGVkIHRva2VuOiByZXR1cm4gRkFMU0Ugd2hlbiBub3QgYSBtYXRjaCwgb3RoZXJ3aXNlIHJldHVybiB0b2tlblxuICAgICAgdGVzdF9tYXRjaDogZnVuY3Rpb24obWF0Y2gsIGluZGV4ZWRfcnVsZSkge1xuICAgICAgICB2YXIgdG9rZW4sIGxpbmVzLCBiYWNrdXA7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYmFja3RyYWNrX2xleGVyKSB7XG4gICAgICAgICAgYmFja3VwID0ge1xuICAgICAgICAgICAgeXlsaW5lbm86IHRoaXMueXlsaW5lbm8sXG4gICAgICAgICAgICB5eWxsb2M6IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgIGxhc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHl5dGV4dDogdGhpcy55eXRleHQsXG4gICAgICAgICAgICBtYXRjaDogdGhpcy5tYXRjaCxcbiAgICAgICAgICAgIG1hdGNoZXM6IHRoaXMubWF0Y2hlcyxcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRoaXMubWF0Y2hlZCxcbiAgICAgICAgICAgIHl5bGVuZzogdGhpcy55eWxlbmcsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgX21vcmU6IHRoaXMuX21vcmUsXG4gICAgICAgICAgICBfaW5wdXQ6IHRoaXMuX2lucHV0LFxuICAgICAgICAgICAgeXk6IHRoaXMueXksXG4gICAgICAgICAgICBjb25kaXRpb25TdGFjazogdGhpcy5jb25kaXRpb25TdGFjay5zbGljZSgwKSxcbiAgICAgICAgICAgIGRvbmU6IHRoaXMuZG9uZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICAgIGJhY2t1cC55eWxsb2MucmFuZ2UgPSB0aGlzLnl5bGxvYy5yYW5nZS5zbGljZSgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMgPSBtYXRjaFswXS5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gKz0gbGluZXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmxhc3RfbGluZSxcbiAgICAgICAgICBsYXN0X2xpbmU6IHRoaXMueXlsaW5lbm8gKyAxLFxuICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoIC0gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubWF0Y2goL1xccj9cXG4/LylbMF0ubGVuZ3RoIDogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4gKyBtYXRjaFswXS5sZW5ndGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2hlcyA9IG1hdGNoO1xuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFt0aGlzLm9mZnNldCwgdGhpcy5vZmZzZXQgKz0gdGhpcy55eWxlbmddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21vcmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYmFja3RyYWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UobWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IG1hdGNoWzBdO1xuICAgICAgICB0b2tlbiA9IHRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHRoaXMsIHRoaXMueXksIHRoaXMsIGluZGV4ZWRfcnVsZSwgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSAmJiB0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICBmb3IgKHZhciBrIGluIGJhY2t1cCkge1xuICAgICAgICAgICAgdGhpc1trXSA9IGJhY2t1cFtrXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCBpbiBpbnB1dFxuICAgICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmRvbmUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRva2VuLCBtYXRjaCwgdGVtcE1hdGNoLCBpbmRleDtcbiAgICAgICAgaWYgKCF0aGlzLl9tb3JlKSB7XG4gICAgICAgICAgdGhpcy55eXRleHQgPSBcIlwiO1xuICAgICAgICAgIHRoaXMubWF0Y2ggPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBydWxlcyA9IHRoaXMuX2N1cnJlbnRSdWxlcygpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGVtcE1hdGNoID0gdGhpcy5faW5wdXQubWF0Y2godGhpcy5ydWxlc1tydWxlc1tpXV0pO1xuICAgICAgICAgIGlmICh0ZW1wTWF0Y2ggJiYgKCFtYXRjaCB8fCB0ZW1wTWF0Y2hbMF0ubGVuZ3RoID4gbWF0Y2hbMF0ubGVuZ3RoKSkge1xuICAgICAgICAgICAgbWF0Y2ggPSB0ZW1wTWF0Y2g7XG4gICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaCh0ZW1wTWF0Y2gsIHJ1bGVzW2ldKTtcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRpb25zLmZsZXgpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIHRva2VuID0gdGhpcy50ZXN0X21hdGNoKG1hdGNoLCBydWxlc1tpbmRleF0pO1xuICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dCA9PT0gXCJcIikge1xuICAgICAgICAgIHJldHVybiB0aGlzLkVPRjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiICsgKHRoaXMueXlsaW5lbm8gKyAxKSArIFwiLiBVbnJlY29nbml6ZWQgdGV4dC5cXG5cIiArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICB0b2tlbjogbnVsbCxcbiAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiBuZXh0IG1hdGNoIHRoYXQgaGFzIGEgdG9rZW5cbiAgICAgIGxleDogZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgciA9IHRoaXMubmV4dCgpO1xuICAgICAgICBpZiAocikge1xuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxleCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gYWN0aXZhdGVzIGEgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSAocHVzaGVzIHRoZSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9udG8gdGhlIGNvbmRpdGlvbiBzdGFjaylcbiAgICAgIGJlZ2luOiBmdW5jdGlvbiBiZWdpbihjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjay5wdXNoKGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICAgLy8gcG9wIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGUgb2ZmIHRoZSBjb25kaXRpb24gc3RhY2tcbiAgICAgIHBvcFN0YXRlOiBmdW5jdGlvbiBwb3BTdGF0ZSgpIHtcbiAgICAgICAgdmFyIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDE7XG4gICAgICAgIGlmIChuID4gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLnBvcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrWzBdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcHJvZHVjZSB0aGUgbGV4ZXIgcnVsZSBzZXQgd2hpY2ggaXMgYWN0aXZlIGZvciB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGVcbiAgICAgIF9jdXJyZW50UnVsZXM6IGZ1bmN0aW9uIF9jdXJyZW50UnVsZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAmJiB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW3RoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXV0ucnVsZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1tcIklOSVRJQUxcIl0ucnVsZXM7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlOyB3aGVuIGFuIGluZGV4IGFyZ3VtZW50IGlzIHByb3ZpZGVkIGl0IHByb2R1Y2VzIHRoZSBOLXRoIHByZXZpb3VzIGNvbmRpdGlvbiBzdGF0ZSwgaWYgYXZhaWxhYmxlXG4gICAgICB0b3BTdGF0ZTogZnVuY3Rpb24gdG9wU3RhdGUobikge1xuICAgICAgICBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxIC0gTWF0aC5hYnMobiB8fCAwKTtcbiAgICAgICAgaWYgKG4gPj0gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrW25dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBcIklOSVRJQUxcIjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFsaWFzIGZvciBiZWdpbihjb25kaXRpb24pXG4gICAgICBwdXNoU3RhdGU6IGZ1bmN0aW9uIHB1c2hTdGF0ZShjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5iZWdpbihjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXRlcyBjdXJyZW50bHkgb24gdGhlIHN0YWNrXG4gICAgICBzdGF0ZVN0YWNrU2l6ZTogZnVuY3Rpb24gc3RhdGVTdGFja1NpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aDtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7IFwiY2FzZS1pbnNlbnNpdGl2ZVwiOiB0cnVlIH0sXG4gICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXksIHl5XywgJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucywgWVlfU1RBUlQpIHtcbiAgICAgICAgc3dpdGNoICgkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zKSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJjc3ZcIik7XG4gICAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXR1cm4gMTA7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIDU7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIDEyO1xuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiZXNjYXBlZF90ZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE4O1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHJldHVybiAyMDtcbiAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKFwiZXNjYXBlZF90ZXh0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE4O1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHJldHVybiAxOTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiBbL14oPzpzYW5rZXktYmV0YVxcYikvaSwgL14oPzokKS9pLCAvXig/OigoXFx1MDAwRFxcdTAwMEEpfChcXHUwMDBBKSkpL2ksIC9eKD86KFxcdTAwMkMpKS9pLCAvXig/OihcXHUwMDIyKSkvaSwgL14oPzooW1xcdTAwMjAtXFx1MDAyMVxcdTAwMjMtXFx1MDAyQlxcdTAwMkQtXFx1MDA3RV0pKikvaSwgL14oPzooXFx1MDAyMikoPyEoXFx1MDAyMikpKS9pLCAvXig/OigoW1xcdTAwMjAtXFx1MDAyMVxcdTAwMjMtXFx1MDAyQlxcdTAwMkQtXFx1MDA3RV0pfChcXHUwMDJDKXwoXFx1MDAwRCl8KFxcdTAwMEEpfChcXHUwMDIyKShcXHUwMDIyKSkqKS9pXSxcbiAgICAgIGNvbmRpdGlvbnM6IHsgXCJjc3ZcIjogeyBcInJ1bGVzXCI6IFsxLCAyLCAzLCA0LCA1LCA2LCA3XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJlc2NhcGVkX3RleHRcIjogeyBcInJ1bGVzXCI6IFs2LCA3XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgN10sIFwiaW5jbHVzaXZlXCI6IHRydWUgfSB9XG4gICAgfTtcbiAgICByZXR1cm4gbGV4ZXIyO1xuICB9KCk7XG4gIHBhcnNlcjIubGV4ZXIgPSBsZXhlcjtcbiAgZnVuY3Rpb24gUGFyc2VyKCkge1xuICAgIHRoaXMueXkgPSB7fTtcbiAgfVxuICBQYXJzZXIucHJvdG90eXBlID0gcGFyc2VyMjtcbiAgcGFyc2VyMi5QYXJzZXIgPSBQYXJzZXI7XG4gIHJldHVybiBuZXcgUGFyc2VyKCk7XG59KCk7XG5wYXJzZXIucGFyc2VyID0gcGFyc2VyO1xuY29uc3QgcGFyc2VyJDEgPSBwYXJzZXI7XG5sZXQgbGlua3MgPSBbXTtcbmxldCBub2RlcyA9IFtdO1xubGV0IG5vZGVzTWFwID0ge307XG5jb25zdCBjbGVhciA9ICgpID0+IHtcbiAgbGlua3MgPSBbXTtcbiAgbm9kZXMgPSBbXTtcbiAgbm9kZXNNYXAgPSB7fTtcbiAgY2xlYXIkMSgpO1xufTtcbmNsYXNzIFNhbmtleUxpbmsge1xuICBjb25zdHJ1Y3Rvcihzb3VyY2UsIHRhcmdldCwgdmFsdWUgPSAwKSB7XG4gICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5jb25zdCBhZGRMaW5rID0gKHNvdXJjZSwgdGFyZ2V0LCB2YWx1ZSkgPT4ge1xuICBsaW5rcy5wdXNoKG5ldyBTYW5rZXlMaW5rKHNvdXJjZSwgdGFyZ2V0LCB2YWx1ZSkpO1xufTtcbmNsYXNzIFNhbmtleU5vZGUge1xuICBjb25zdHJ1Y3RvcihJRCkge1xuICAgIHRoaXMuSUQgPSBJRDtcbiAgfVxufVxuY29uc3QgZmluZE9yQ3JlYXRlTm9kZSA9IChJRCkgPT4ge1xuICBJRCA9IGNvbW1vbi5zYW5pdGl6ZVRleHQoSUQsIGdldENvbmZpZygpKTtcbiAgaWYgKCFub2Rlc01hcFtJRF0pIHtcbiAgICBub2Rlc01hcFtJRF0gPSBuZXcgU2Fua2V5Tm9kZShJRCk7XG4gICAgbm9kZXMucHVzaChub2Rlc01hcFtJRF0pO1xuICB9XG4gIHJldHVybiBub2Rlc01hcFtJRF07XG59O1xuY29uc3QgZ2V0Tm9kZXMgPSAoKSA9PiBub2RlcztcbmNvbnN0IGdldExpbmtzID0gKCkgPT4gbGlua3M7XG5jb25zdCBnZXRHcmFwaCA9ICgpID0+ICh7XG4gIG5vZGVzOiBub2Rlcy5tYXAoKG5vZGUpID0+ICh7IGlkOiBub2RlLklEIH0pKSxcbiAgbGlua3M6IGxpbmtzLm1hcCgobGluaykgPT4gKHtcbiAgICBzb3VyY2U6IGxpbmsuc291cmNlLklELFxuICAgIHRhcmdldDogbGluay50YXJnZXQuSUQsXG4gICAgdmFsdWU6IGxpbmsudmFsdWVcbiAgfSkpXG59KTtcbmNvbnN0IGRiID0ge1xuICBub2Rlc01hcCxcbiAgZ2V0Q29uZmlnOiAoKSA9PiBnZXRDb25maWcoKS5zYW5rZXksXG4gIGdldE5vZGVzLFxuICBnZXRMaW5rcyxcbiAgZ2V0R3JhcGgsXG4gIGFkZExpbmssXG4gIGZpbmRPckNyZWF0ZU5vZGUsXG4gIGdldEFjY1RpdGxlLFxuICBzZXRBY2NUaXRsZSxcbiAgZ2V0QWNjRGVzY3JpcHRpb24sXG4gIHNldEFjY0Rlc2NyaXB0aW9uLFxuICBnZXREaWFncmFtVGl0bGUsXG4gIHNldERpYWdyYW1UaXRsZSxcbiAgY2xlYXJcbn07XG5jb25zdCBfVWlkID0gY2xhc3MgX1VpZDIge1xuICBzdGF0aWMgbmV4dChuYW1lKSB7XG4gICAgcmV0dXJuIG5ldyBfVWlkMihuYW1lICsgKytfVWlkMi5jb3VudCk7XG4gIH1cbiAgY29uc3RydWN0b3IoaWQpIHtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5ocmVmID0gYCMke2lkfWA7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFwidXJsKFwiICsgdGhpcy5ocmVmICsgXCIpXCI7XG4gIH1cbn07XG5fVWlkLmNvdW50ID0gMDtcbmxldCBVaWQgPSBfVWlkO1xuY29uc3QgYWxpZ25tZW50c01hcCA9IHtcbiAgbGVmdDogc2Fua2V5TGVmdCxcbiAgcmlnaHQ6IHNhbmtleVJpZ2h0LFxuICBjZW50ZXI6IHNhbmtleUNlbnRlcixcbiAganVzdGlmeTogc2Fua2V5SnVzdGlmeVxufTtcbmNvbnN0IGRyYXcgPSBmdW5jdGlvbih0ZXh0LCBpZCwgX3ZlcnNpb24sIGRpYWdPYmopIHtcbiAgY29uc3QgeyBzZWN1cml0eUxldmVsLCBzYW5rZXk6IGNvbmYgfSA9IGdldENvbmZpZygpO1xuICBjb25zdCBkZWZhdWx0U2Fua2V5Q29uZmlnID0gZGVmYXVsdENvbmZpZy5zYW5rZXk7XG4gIGxldCBzYW5kYm94RWxlbWVudDtcbiAgaWYgKHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiKSB7XG4gICAgc2FuZGJveEVsZW1lbnQgPSBzZWxlY3QoXCIjaVwiICsgaWQpO1xuICB9XG4gIGNvbnN0IHJvb3QgPSBzZWN1cml0eUxldmVsID09PSBcInNhbmRib3hcIiA/IHNlbGVjdChzYW5kYm94RWxlbWVudC5ub2RlcygpWzBdLmNvbnRlbnREb2N1bWVudC5ib2R5KSA6IHNlbGVjdChcImJvZHlcIik7XG4gIGNvbnN0IHN2ZyA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gcm9vdC5zZWxlY3QoYFtpZD1cIiR7aWR9XCJdYCkgOiBzZWxlY3QoYFtpZD1cIiR7aWR9XCJdYCk7XG4gIGNvbnN0IHdpZHRoID0gKGNvbmYgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmYud2lkdGgpID8/IGRlZmF1bHRTYW5rZXlDb25maWcud2lkdGg7XG4gIGNvbnN0IGhlaWdodCA9IChjb25mID09IG51bGwgPyB2b2lkIDAgOiBjb25mLmhlaWdodCkgPz8gZGVmYXVsdFNhbmtleUNvbmZpZy53aWR0aDtcbiAgY29uc3QgdXNlTWF4V2lkdGggPSAoY29uZiA9PSBudWxsID8gdm9pZCAwIDogY29uZi51c2VNYXhXaWR0aCkgPz8gZGVmYXVsdFNhbmtleUNvbmZpZy51c2VNYXhXaWR0aDtcbiAgY29uc3Qgbm9kZUFsaWdubWVudCA9IChjb25mID09IG51bGwgPyB2b2lkIDAgOiBjb25mLm5vZGVBbGlnbm1lbnQpID8/IGRlZmF1bHRTYW5rZXlDb25maWcubm9kZUFsaWdubWVudDtcbiAgY29uc3QgcHJlZml4ID0gKGNvbmYgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmYucHJlZml4KSA/PyBkZWZhdWx0U2Fua2V5Q29uZmlnLnByZWZpeDtcbiAgY29uc3Qgc3VmZml4ID0gKGNvbmYgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmYuc3VmZml4KSA/PyBkZWZhdWx0U2Fua2V5Q29uZmlnLnN1ZmZpeDtcbiAgY29uc3Qgc2hvd1ZhbHVlcyA9IChjb25mID09IG51bGwgPyB2b2lkIDAgOiBjb25mLnNob3dWYWx1ZXMpID8/IGRlZmF1bHRTYW5rZXlDb25maWcuc2hvd1ZhbHVlcztcbiAgY29uc3QgZ3JhcGggPSBkaWFnT2JqLmRiLmdldEdyYXBoKCk7XG4gIGNvbnN0IG5vZGVBbGlnbiA9IGFsaWdubWVudHNNYXBbbm9kZUFsaWdubWVudF07XG4gIGNvbnN0IG5vZGVXaWR0aCA9IDEwO1xuICBjb25zdCBzYW5rZXkkMSA9IHNhbmtleSgpLm5vZGVJZCgoZCkgPT4gZC5pZCkubm9kZVdpZHRoKG5vZGVXaWR0aCkubm9kZVBhZGRpbmcoMTAgKyAoc2hvd1ZhbHVlcyA/IDE1IDogMCkpLm5vZGVBbGlnbihub2RlQWxpZ24pLmV4dGVudChbXG4gICAgWzAsIDBdLFxuICAgIFt3aWR0aCwgaGVpZ2h0XVxuICBdKTtcbiAgc2Fua2V5JDEoZ3JhcGgpO1xuICBjb25zdCBjb2xvclNjaGVtZSA9IHNjYWxlT3JkaW5hbChzY2hlbWVUYWJsZWF1MTApO1xuICBzdmcuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJub2Rlc1wiKS5zZWxlY3RBbGwoXCIubm9kZVwiKS5kYXRhKGdyYXBoLm5vZGVzKS5qb2luKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJub2RlXCIpLmF0dHIoXCJpZFwiLCAoZCkgPT4gKGQudWlkID0gVWlkLm5leHQoXCJub2RlLVwiKSkuaWQpLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgZnVuY3Rpb24oZCkge1xuICAgIHJldHVybiBcInRyYW5zbGF0ZShcIiArIGQueDAgKyBcIixcIiArIGQueTAgKyBcIilcIjtcbiAgfSkuYXR0cihcInhcIiwgKGQpID0+IGQueDApLmF0dHIoXCJ5XCIsIChkKSA9PiBkLnkwKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJoZWlnaHRcIiwgKGQpID0+IHtcbiAgICByZXR1cm4gZC55MSAtIGQueTA7XG4gIH0pLmF0dHIoXCJ3aWR0aFwiLCAoZCkgPT4gZC54MSAtIGQueDApLmF0dHIoXCJmaWxsXCIsIChkKSA9PiBjb2xvclNjaGVtZShkLmlkKSk7XG4gIGNvbnN0IGdldFRleHQgPSAoeyBpZDogaWQyLCB2YWx1ZSB9KSA9PiB7XG4gICAgaWYgKCFzaG93VmFsdWVzKSB7XG4gICAgICByZXR1cm4gaWQyO1xuICAgIH1cbiAgICByZXR1cm4gYCR7aWQyfVxuJHtwcmVmaXh9JHtNYXRoLnJvdW5kKHZhbHVlICogMTAwKSAvIDEwMH0ke3N1ZmZpeH1gO1xuICB9O1xuICBzdmcuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJub2RlLWxhYmVsc1wiKS5hdHRyKFwiZm9udC1mYW1pbHlcIiwgXCJzYW5zLXNlcmlmXCIpLmF0dHIoXCJmb250LXNpemVcIiwgMTQpLnNlbGVjdEFsbChcInRleHRcIikuZGF0YShncmFwaC5ub2Rlcykuam9pbihcInRleHRcIikuYXR0cihcInhcIiwgKGQpID0+IGQueDAgPCB3aWR0aCAvIDIgPyBkLngxICsgNiA6IGQueDAgLSA2KS5hdHRyKFwieVwiLCAoZCkgPT4gKGQueTEgKyBkLnkwKSAvIDIpLmF0dHIoXCJkeVwiLCBgJHtzaG93VmFsdWVzID8gXCIwXCIgOiBcIjAuMzVcIn1lbWApLmF0dHIoXCJ0ZXh0LWFuY2hvclwiLCAoZCkgPT4gZC54MCA8IHdpZHRoIC8gMiA/IFwic3RhcnRcIiA6IFwiZW5kXCIpLnRleHQoZ2V0VGV4dCk7XG4gIGNvbnN0IGxpbmsgPSBzdmcuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJsaW5rc1wiKS5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIikuYXR0cihcInN0cm9rZS1vcGFjaXR5XCIsIDAuNSkuc2VsZWN0QWxsKFwiLmxpbmtcIikuZGF0YShncmFwaC5saW5rcykuam9pbihcImdcIikuYXR0cihcImNsYXNzXCIsIFwibGlua1wiKS5zdHlsZShcIm1peC1ibGVuZC1tb2RlXCIsIFwibXVsdGlwbHlcIik7XG4gIGNvbnN0IGxpbmtDb2xvciA9IChjb25mID09IG51bGwgPyB2b2lkIDAgOiBjb25mLmxpbmtDb2xvcikgfHwgXCJncmFkaWVudFwiO1xuICBpZiAobGlua0NvbG9yID09PSBcImdyYWRpZW50XCIpIHtcbiAgICBjb25zdCBncmFkaWVudCA9IGxpbmsuYXBwZW5kKFwibGluZWFyR3JhZGllbnRcIikuYXR0cihcImlkXCIsIChkKSA9PiAoZC51aWQgPSBVaWQubmV4dChcImxpbmVhckdyYWRpZW50LVwiKSkuaWQpLmF0dHIoXCJncmFkaWVudFVuaXRzXCIsIFwidXNlclNwYWNlT25Vc2VcIikuYXR0cihcIngxXCIsIChkKSA9PiBkLnNvdXJjZS54MSkuYXR0cihcIngyXCIsIChkKSA9PiBkLnRhcmdldC54MCk7XG4gICAgZ3JhZGllbnQuYXBwZW5kKFwic3RvcFwiKS5hdHRyKFwib2Zmc2V0XCIsIFwiMCVcIikuYXR0cihcInN0b3AtY29sb3JcIiwgKGQpID0+IGNvbG9yU2NoZW1lKGQuc291cmNlLmlkKSk7XG4gICAgZ3JhZGllbnQuYXBwZW5kKFwic3RvcFwiKS5hdHRyKFwib2Zmc2V0XCIsIFwiMTAwJVwiKS5hdHRyKFwic3RvcC1jb2xvclwiLCAoZCkgPT4gY29sb3JTY2hlbWUoZC50YXJnZXQuaWQpKTtcbiAgfVxuICBsZXQgY29sb3Jpbmc7XG4gIHN3aXRjaCAobGlua0NvbG9yKSB7XG4gICAgY2FzZSBcImdyYWRpZW50XCI6XG4gICAgICBjb2xvcmluZyA9IChkKSA9PiBkLnVpZDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJzb3VyY2VcIjpcbiAgICAgIGNvbG9yaW5nID0gKGQpID0+IGNvbG9yU2NoZW1lKGQuc291cmNlLmlkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ0YXJnZXRcIjpcbiAgICAgIGNvbG9yaW5nID0gKGQpID0+IGNvbG9yU2NoZW1lKGQudGFyZ2V0LmlkKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBjb2xvcmluZyA9IGxpbmtDb2xvcjtcbiAgfVxuICBsaW5rLmFwcGVuZChcInBhdGhcIikuYXR0cihcImRcIiwgc2Fua2V5TGlua0hvcml6b250YWwoKSkuYXR0cihcInN0cm9rZVwiLCBjb2xvcmluZykuYXR0cihcInN0cm9rZS13aWR0aFwiLCAoZCkgPT4gTWF0aC5tYXgoMSwgZC53aWR0aCkpO1xuICBzZXR1cEdyYXBoVmlld2JveCh2b2lkIDAsIHN2ZywgMCwgdXNlTWF4V2lkdGgpO1xufTtcbmNvbnN0IHJlbmRlcmVyID0ge1xuICBkcmF3XG59O1xuY29uc3QgcHJlcGFyZVRleHRGb3JQYXJzaW5nID0gKHRleHQpID0+IHtcbiAgY29uc3QgdGV4dFRvUGFyc2UgPSB0ZXh0LnJlcGxhY2VBbGwoL15bXlxcU1xcblxccl0rfFteXFxTXFxuXFxyXSskL2csIFwiXCIpLnJlcGxhY2VBbGwoLyhbXFxuXFxyXSkrL2csIFwiXFxuXCIpLnRyaW0oKTtcbiAgcmV0dXJuIHRleHRUb1BhcnNlO1xufTtcbmNvbnN0IG9yaWdpbmFsUGFyc2UgPSBwYXJzZXIkMS5wYXJzZS5iaW5kKHBhcnNlciQxKTtcbnBhcnNlciQxLnBhcnNlID0gKHRleHQpID0+IG9yaWdpbmFsUGFyc2UocHJlcGFyZVRleHRGb3JQYXJzaW5nKHRleHQpKTtcbmNvbnN0IGRpYWdyYW0gPSB7XG4gIHBhcnNlcjogcGFyc2VyJDEsXG4gIGRiLFxuICByZW5kZXJlclxufTtcbmV4cG9ydCB7XG4gIGRpYWdyYW1cbn07XG4iLAogICAgInZhciBfYSwgX2I7XG5pbXBvcnQgeyBjIGFzIGdldENvbmZpZywgRiBhcyBnZXRDb25maWckMSwgbCBhcyBsb2csIHYgYXMgY2xlYXIkMSwgZSBhcyBjb21tb24sIGsgYXMgZ2V0U3R5bGVzRnJvbUFycmF5LCBpIGFzIGNvbmZpZ3VyZVN2Z1NpemUgfSBmcm9tIFwiLi9tZXJtYWlkLTZkYzcyOTkxLmpzXCI7XG5pbXBvcnQgY2xvbmUgZnJvbSBcImxvZGFzaC1lcy9jbG9uZS5qc1wiO1xuaW1wb3J0ICogYXMga2hyb21hIGZyb20gXCJraHJvbWFcIjtcbmltcG9ydCB7IGggYXMgaW5zZXJ0RWRnZSwgZiBhcyBpbnNlcnRFZGdlTGFiZWwsIGogYXMgcG9zaXRpb25FZGdlTGFiZWwsIGUgYXMgaW5zZXJ0Tm9kZSwgcCBhcyBwb3NpdGlvbk5vZGUsIGEgYXMgaW5zZXJ0TWFya2VycyB9IGZyb20gXCIuL2VkZ2VzLTA2NmE1NTYxLmpzXCI7XG5pbXBvcnQgKiBhcyBncmFwaGxpYiBmcm9tIFwiZGFncmUtZDMtZXMvc3JjL2dyYXBobGliL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBzZWxlY3QsIHNjYWxlT3JkaW5hbCwgc2NoZW1lVGFibGVhdTEwIH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgXCJ0cy1kZWRlbnRcIjtcbmltcG9ydCBcImRheWpzXCI7XG5pbXBvcnQgXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IFwiZG9tcHVyaWZ5XCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lcmdlLmpzXCI7XG5pbXBvcnQgXCJzdHlsaXNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9pc0VtcHR5LmpzXCI7XG5pbXBvcnQgXCIuL2NyZWF0ZVRleHQtY2EwYzUyMTYuanNcIjtcbmltcG9ydCBcIm1kYXN0LXV0aWwtZnJvbS1tYXJrZG93blwiO1xudmFyIHBhcnNlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgbyA9IGZ1bmN0aW9uKGssIHYsIG8yLCBsKSB7XG4gICAgZm9yIChvMiA9IG8yIHx8IHt9LCBsID0gay5sZW5ndGg7IGwtLTsgbzJba1tsXV0gPSB2KVxuICAgICAgO1xuICAgIHJldHVybiBvMjtcbiAgfSwgJFYwID0gWzEsIDddLCAkVjEgPSBbMSwgMTNdLCAkVjIgPSBbMSwgMTRdLCAkVjMgPSBbMSwgMTVdLCAkVjQgPSBbMSwgMTldLCAkVjUgPSBbMSwgMTZdLCAkVjYgPSBbMSwgMTddLCAkVjcgPSBbMSwgMThdLCAkVjggPSBbOCwgMzBdLCAkVjkgPSBbOCwgMjEsIDI4LCAyOSwgMzAsIDMxLCAzMiwgNDAsIDQ0LCA0N10sICRWYSA9IFsxLCAyM10sICRWYiA9IFsxLCAyNF0sICRWYyA9IFs4LCAxNSwgMTYsIDIxLCAyOCwgMjksIDMwLCAzMSwgMzIsIDQwLCA0NCwgNDddLCAkVmQgPSBbOCwgMTUsIDE2LCAyMSwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgNDAsIDQ0LCA0N10sICRWZSA9IFsxLCA0OV07XG4gIHZhciBwYXJzZXIyID0ge1xuICAgIHRyYWNlOiBmdW5jdGlvbiB0cmFjZSgpIHtcbiAgICB9LFxuICAgIHl5OiB7fSxcbiAgICBzeW1ib2xzXzogeyBcImVycm9yXCI6IDIsIFwic3BhY2VMaW5lc1wiOiAzLCBcIlNQQUNFTElORVwiOiA0LCBcIk5MXCI6IDUsIFwic2VwYXJhdG9yXCI6IDYsIFwiU1BBQ0VcIjogNywgXCJFT0ZcIjogOCwgXCJzdGFydFwiOiA5LCBcIkJMT0NLX0RJQUdSQU1fS0VZXCI6IDEwLCBcImRvY3VtZW50XCI6IDExLCBcInN0b3BcIjogMTIsIFwic3RhdGVtZW50XCI6IDEzLCBcImxpbmtcIjogMTQsIFwiTElOS1wiOiAxNSwgXCJTVEFSVF9MSU5LXCI6IDE2LCBcIkxJTktfTEFCRUxcIjogMTcsIFwiU1RSXCI6IDE4LCBcIm5vZGVTdGF0ZW1lbnRcIjogMTksIFwiY29sdW1uc1N0YXRlbWVudFwiOiAyMCwgXCJTUEFDRV9CTE9DS1wiOiAyMSwgXCJibG9ja1N0YXRlbWVudFwiOiAyMiwgXCJjbGFzc0RlZlN0YXRlbWVudFwiOiAyMywgXCJjc3NDbGFzc1N0YXRlbWVudFwiOiAyNCwgXCJzdHlsZVN0YXRlbWVudFwiOiAyNSwgXCJub2RlXCI6IDI2LCBcIlNJWkVcIjogMjcsIFwiQ09MVU1OU1wiOiAyOCwgXCJpZC1ibG9ja1wiOiAyOSwgXCJlbmRcIjogMzAsIFwiYmxvY2tcIjogMzEsIFwiTk9ERV9JRFwiOiAzMiwgXCJub2RlU2hhcGVOTGFiZWxcIjogMzMsIFwiZGlyTGlzdFwiOiAzNCwgXCJESVJcIjogMzUsIFwiTk9ERV9EU1RBUlRcIjogMzYsIFwiTk9ERV9ERU5EXCI6IDM3LCBcIkJMT0NLX0FSUk9XX1NUQVJUXCI6IDM4LCBcIkJMT0NLX0FSUk9XX0VORFwiOiAzOSwgXCJjbGFzc0RlZlwiOiA0MCwgXCJDTEFTU0RFRl9JRFwiOiA0MSwgXCJDTEFTU0RFRl9TVFlMRU9QVFNcIjogNDIsIFwiREVGQVVMVFwiOiA0MywgXCJjbGFzc1wiOiA0NCwgXCJDTEFTU0VOVElUWV9JRFNcIjogNDUsIFwiU1RZTEVDTEFTU1wiOiA0NiwgXCJzdHlsZVwiOiA0NywgXCJTVFlMRV9FTlRJVFlfSURTXCI6IDQ4LCBcIlNUWUxFX0RFRklOSVRJT05fREFUQVwiOiA0OSwgXCIkYWNjZXB0XCI6IDAsIFwiJGVuZFwiOiAxIH0sXG4gICAgdGVybWluYWxzXzogeyAyOiBcImVycm9yXCIsIDQ6IFwiU1BBQ0VMSU5FXCIsIDU6IFwiTkxcIiwgNzogXCJTUEFDRVwiLCA4OiBcIkVPRlwiLCAxMDogXCJCTE9DS19ESUFHUkFNX0tFWVwiLCAxNTogXCJMSU5LXCIsIDE2OiBcIlNUQVJUX0xJTktcIiwgMTc6IFwiTElOS19MQUJFTFwiLCAxODogXCJTVFJcIiwgMjE6IFwiU1BBQ0VfQkxPQ0tcIiwgMjc6IFwiU0laRVwiLCAyODogXCJDT0xVTU5TXCIsIDI5OiBcImlkLWJsb2NrXCIsIDMwOiBcImVuZFwiLCAzMTogXCJibG9ja1wiLCAzMjogXCJOT0RFX0lEXCIsIDM1OiBcIkRJUlwiLCAzNjogXCJOT0RFX0RTVEFSVFwiLCAzNzogXCJOT0RFX0RFTkRcIiwgMzg6IFwiQkxPQ0tfQVJST1dfU1RBUlRcIiwgMzk6IFwiQkxPQ0tfQVJST1dfRU5EXCIsIDQwOiBcImNsYXNzRGVmXCIsIDQxOiBcIkNMQVNTREVGX0lEXCIsIDQyOiBcIkNMQVNTREVGX1NUWUxFT1BUU1wiLCA0MzogXCJERUZBVUxUXCIsIDQ0OiBcImNsYXNzXCIsIDQ1OiBcIkNMQVNTRU5USVRZX0lEU1wiLCA0NjogXCJTVFlMRUNMQVNTXCIsIDQ3OiBcInN0eWxlXCIsIDQ4OiBcIlNUWUxFX0VOVElUWV9JRFNcIiwgNDk6IFwiU1RZTEVfREVGSU5JVElPTl9EQVRBXCIgfSxcbiAgICBwcm9kdWN0aW9uc186IFswLCBbMywgMV0sIFszLCAyXSwgWzMsIDJdLCBbNiwgMV0sIFs2LCAxXSwgWzYsIDFdLCBbOSwgM10sIFsxMiwgMV0sIFsxMiwgMV0sIFsxMiwgMl0sIFsxMiwgMl0sIFsxMSwgMV0sIFsxMSwgMl0sIFsxNCwgMV0sIFsxNCwgNF0sIFsxMywgMV0sIFsxMywgMV0sIFsxMywgMV0sIFsxMywgMV0sIFsxMywgMV0sIFsxMywgMV0sIFsxMywgMV0sIFsxOSwgM10sIFsxOSwgMl0sIFsxOSwgMV0sIFsyMCwgMV0sIFsyMiwgNF0sIFsyMiwgM10sIFsyNiwgMV0sIFsyNiwgMl0sIFszNCwgMV0sIFszNCwgMl0sIFszMywgM10sIFszMywgNF0sIFsyMywgM10sIFsyMywgM10sIFsyNCwgM10sIFsyNSwgM11dLFxuICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eXRleHQsIHl5bGVuZywgeXlsaW5lbm8sIHl5LCB5eXN0YXRlLCAkJCwgXyQpIHtcbiAgICAgIHZhciAkMCA9ICQkLmxlbmd0aCAtIDE7XG4gICAgICBzd2l0Y2ggKHl5c3RhdGUpIHtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiUnVsZTogc2VwYXJhdG9yIChOTCkgXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJSdWxlOiBzZXBhcmF0b3IgKFNwYWNlKSBcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIlJ1bGU6IHNlcGFyYXRvciAoRU9GKSBcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIlJ1bGU6IGhpZXJhcmNoeTogXCIsICQkWyQwIC0gMV0pO1xuICAgICAgICAgIHl5LnNldEhpZXJhcmNoeSgkJFskMCAtIDFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiU3RvcCBOTCBcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIlN0b3AgRU9GIFwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIlN0b3AgTkwyIFwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIlN0b3AgRU9GMiBcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJSdWxlOiBzdGF0ZW1lbnQ6IFwiLCAkJFskMF0pO1xuICAgICAgICAgIHR5cGVvZiAkJFskMF0ubGVuZ3RoID09PSBcIm51bWJlclwiID8gdGhpcy4kID0gJCRbJDBdIDogdGhpcy4kID0gWyQkWyQwXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJSdWxlOiBzdGF0ZW1lbnQgIzI6IFwiLCAkJFskMCAtIDFdKTtcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDAgLSAxXV0uY29uY2F0KCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJSdWxlOiBsaW5rOiBcIiwgJCRbJDBdLCB5eXRleHQpO1xuICAgICAgICAgIHRoaXMuJCA9IHsgZWRnZVR5cGVTdHI6ICQkWyQwXSwgbGFiZWw6IFwiXCIgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIlJ1bGU6IExBQkVMIGxpbms6IFwiLCAkJFskMCAtIDNdLCAkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9IHsgZWRnZVR5cGVTdHI6ICQkWyQwXSwgbGFiZWw6ICQkWyQwIC0gMV0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICBjb25zdCBudW0gPSBwYXJzZUludCgkJFskMF0pO1xuICAgICAgICAgIGNvbnN0IHNwYWNlSWQgPSB5eS5nZW5lcmF0ZUlkKCk7XG4gICAgICAgICAgdGhpcy4kID0geyBpZDogc3BhY2VJZCwgdHlwZTogXCJzcGFjZVwiLCBsYWJlbDogXCJcIiwgd2lkdGg6IG51bSwgY2hpbGRyZW46IFtdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJSdWxlOiAobm9kZVN0YXRlbWVudCBsaW5rIG5vZGUpIFwiLCAkJFskMCAtIDJdLCAkJFskMCAtIDFdLCAkJFskMF0sIFwiIHR5cGVzdHI6IFwiLCAkJFskMCAtIDFdLmVkZ2VUeXBlU3RyKTtcbiAgICAgICAgICBjb25zdCBlZGdlRGF0YSA9IHl5LmVkZ2VTdHJUb0VkZ2VEYXRhKCQkWyQwIC0gMV0uZWRnZVR5cGVTdHIpO1xuICAgICAgICAgIHRoaXMuJCA9IFtcbiAgICAgICAgICAgIHsgaWQ6ICQkWyQwIC0gMl0uaWQsIGxhYmVsOiAkJFskMCAtIDJdLmxhYmVsLCB0eXBlOiAkJFskMCAtIDJdLnR5cGUsIGRpcmVjdGlvbnM6ICQkWyQwIC0gMl0uZGlyZWN0aW9ucyB9LFxuICAgICAgICAgICAgeyBpZDogJCRbJDAgLSAyXS5pZCArIFwiLVwiICsgJCRbJDBdLmlkLCBzdGFydDogJCRbJDAgLSAyXS5pZCwgZW5kOiAkJFskMF0uaWQsIGxhYmVsOiAkJFskMCAtIDFdLmxhYmVsLCB0eXBlOiBcImVkZ2VcIiwgZGlyZWN0aW9uczogJCRbJDBdLmRpcmVjdGlvbnMsIGFycm93VHlwZUVuZDogZWRnZURhdGEsIGFycm93VHlwZVN0YXJ0OiBcImFycm93X29wZW5cIiB9LFxuICAgICAgICAgICAgeyBpZDogJCRbJDBdLmlkLCBsYWJlbDogJCRbJDBdLmxhYmVsLCB0eXBlOiB5eS50eXBlU3RyMlR5cGUoJCRbJDBdLnR5cGVTdHIpLCBkaXJlY3Rpb25zOiAkJFskMF0uZGlyZWN0aW9ucyB9XG4gICAgICAgICAgXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIlJ1bGU6IG5vZGVTdGF0ZW1lbnQgKGFiYzg4IG5vZGUgc2l6ZSkgXCIsICQkWyQwIC0gMV0sICQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0geyBpZDogJCRbJDAgLSAxXS5pZCwgbGFiZWw6ICQkWyQwIC0gMV0ubGFiZWwsIHR5cGU6IHl5LnR5cGVTdHIyVHlwZSgkJFskMCAtIDFdLnR5cGVTdHIpLCBkaXJlY3Rpb25zOiAkJFskMCAtIDFdLmRpcmVjdGlvbnMsIHdpZHRoSW5Db2x1bW5zOiBwYXJzZUludCgkJFskMF0sIDEwKSB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiUnVsZTogbm9kZVN0YXRlbWVudCAobm9kZSkgXCIsICQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0geyBpZDogJCRbJDBdLmlkLCBsYWJlbDogJCRbJDBdLmxhYmVsLCB0eXBlOiB5eS50eXBlU3RyMlR5cGUoJCRbJDBdLnR5cGVTdHIpLCBkaXJlY3Rpb25zOiAkJFskMF0uZGlyZWN0aW9ucywgd2lkdGhJbkNvbHVtbnM6IDEgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkFQQTEyM1wiLCB0aGlzID8gdGhpcyA6IFwibmFcIik7XG4gICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJDT0xVTU5TOiBcIiwgJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6IFwiY29sdW1uLXNldHRpbmdcIiwgY29sdW1uczogJCRbJDBdID09PSBcImF1dG9cIiA/IC0xIDogcGFyc2VJbnQoJCRbJDBdKSB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiUnVsZTogaWQtYmxvY2sgc3RhdGVtZW50IDogXCIsICQkWyQwIC0gMl0sICQkWyQwIC0gMV0pO1xuICAgICAgICAgIHl5LmdlbmVyYXRlSWQoKTtcbiAgICAgICAgICB0aGlzLiQgPSB7IC4uLiQkWyQwIC0gMl0sIHR5cGU6IFwiY29tcG9zaXRlXCIsIGNoaWxkcmVuOiAkJFskMCAtIDFdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjg6XG4gICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJSdWxlOiBibG9ja1N0YXRlbWVudCA6IFwiLCAkJFskMCAtIDJdLCAkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIGNvbnN0IGlkID0geXkuZ2VuZXJhdGVJZCgpO1xuICAgICAgICAgIHRoaXMuJCA9IHsgaWQsIHR5cGU6IFwiY29tcG9zaXRlXCIsIGxhYmVsOiBcIlwiLCBjaGlsZHJlbjogJCRbJDAgLSAxXSB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiUnVsZTogbm9kZSAoTk9ERV9JRCBzZXBhcmF0b3IpOiBcIiwgJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSB7IGlkOiAkJFskMF0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIlJ1bGU6IG5vZGUgKE5PREVfSUQgbm9kZVNoYXBlTkxhYmVsIHNlcGFyYXRvcik6IFwiLCAkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9IHsgaWQ6ICQkWyQwIC0gMV0sIGxhYmVsOiAkJFskMF0ubGFiZWwsIHR5cGVTdHI6ICQkWyQwXS50eXBlU3RyLCBkaXJlY3Rpb25zOiAkJFskMF0uZGlyZWN0aW9ucyB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiUnVsZTogZGlyTGlzdDogXCIsICQkWyQwXSk7XG4gICAgICAgICAgdGhpcy4kID0gWyQkWyQwXV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJSdWxlOiBkaXJMaXN0OiBcIiwgJCRbJDAgLSAxXSwgJCRbJDBdKTtcbiAgICAgICAgICB0aGlzLiQgPSBbJCRbJDAgLSAxXV0uY29uY2F0KCQkWyQwXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJSdWxlOiBub2RlU2hhcGVOTGFiZWw6IFwiLCAkJFskMCAtIDJdLCAkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZVN0cjogJCRbJDAgLSAyXSArICQkWyQwXSwgbGFiZWw6ICQkWyQwIC0gMV0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIlJ1bGU6IEJMT0NLX0FSUk9XIG5vZGVTaGFwZU5MYWJlbDogXCIsICQkWyQwIC0gM10sICQkWyQwIC0gMl0sIFwiICMzOlwiLCAkJFskMCAtIDFdLCAkJFskMF0pO1xuICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZVN0cjogJCRbJDAgLSAzXSArICQkWyQwXSwgbGFiZWw6ICQkWyQwIC0gMl0sIGRpcmVjdGlvbnM6ICQkWyQwIC0gMV0gfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNTpcbiAgICAgICAgY2FzZSAzNjpcbiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6IFwiY2xhc3NEZWZcIiwgaWQ6ICQkWyQwIC0gMV0udHJpbSgpLCBjc3M6ICQkWyQwXS50cmltKCkgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzNzpcbiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6IFwiYXBwbHlDbGFzc1wiLCBpZDogJCRbJDAgLSAxXS50cmltKCksIHN0eWxlQ2xhc3M6ICQkWyQwXS50cmltKCkgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzODpcbiAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6IFwiYXBwbHlTdHlsZXNcIiwgaWQ6ICQkWyQwIC0gMV0udHJpbSgpLCBzdHlsZXNTdHI6ICQkWyQwXS50cmltKCkgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYmxlOiBbeyA5OiAxLCAxMDogWzEsIDJdIH0sIHsgMTogWzNdIH0sIHsgMTE6IDMsIDEzOiA0LCAxOTogNSwgMjA6IDYsIDIxOiAkVjAsIDIyOiA4LCAyMzogOSwgMjQ6IDEwLCAyNTogMTEsIDI2OiAxMiwgMjg6ICRWMSwgMjk6ICRWMiwgMzE6ICRWMywgMzI6ICRWNCwgNDA6ICRWNSwgNDQ6ICRWNiwgNDc6ICRWNyB9LCB7IDg6IFsxLCAyMF0gfSwgbygkVjgsIFsyLCAxMl0sIHsgMTM6IDQsIDE5OiA1LCAyMDogNiwgMjI6IDgsIDIzOiA5LCAyNDogMTAsIDI1OiAxMSwgMjY6IDEyLCAxMTogMjEsIDIxOiAkVjAsIDI4OiAkVjEsIDI5OiAkVjIsIDMxOiAkVjMsIDMyOiAkVjQsIDQwOiAkVjUsIDQ0OiAkVjYsIDQ3OiAkVjcgfSksIG8oJFY5LCBbMiwgMTZdLCB7IDE0OiAyMiwgMTU6ICRWYSwgMTY6ICRWYiB9KSwgbygkVjksIFsyLCAxN10pLCBvKCRWOSwgWzIsIDE4XSksIG8oJFY5LCBbMiwgMTldKSwgbygkVjksIFsyLCAyMF0pLCBvKCRWOSwgWzIsIDIxXSksIG8oJFY5LCBbMiwgMjJdKSwgbygkVmMsIFsyLCAyNV0sIHsgMjc6IFsxLCAyNV0gfSksIG8oJFY5LCBbMiwgMjZdKSwgeyAxOTogMjYsIDI2OiAxMiwgMzI6ICRWNCB9LCB7IDExOiAyNywgMTM6IDQsIDE5OiA1LCAyMDogNiwgMjE6ICRWMCwgMjI6IDgsIDIzOiA5LCAyNDogMTAsIDI1OiAxMSwgMjY6IDEyLCAyODogJFYxLCAyOTogJFYyLCAzMTogJFYzLCAzMjogJFY0LCA0MDogJFY1LCA0NDogJFY2LCA0NzogJFY3IH0sIHsgNDE6IFsxLCAyOF0sIDQzOiBbMSwgMjldIH0sIHsgNDU6IFsxLCAzMF0gfSwgeyA0ODogWzEsIDMxXSB9LCBvKCRWZCwgWzIsIDI5XSwgeyAzMzogMzIsIDM2OiBbMSwgMzNdLCAzODogWzEsIDM0XSB9KSwgeyAxOiBbMiwgN10gfSwgbygkVjgsIFsyLCAxM10pLCB7IDI2OiAzNSwgMzI6ICRWNCB9LCB7IDMyOiBbMiwgMTRdIH0sIHsgMTc6IFsxLCAzNl0gfSwgbygkVmMsIFsyLCAyNF0pLCB7IDExOiAzNywgMTM6IDQsIDE0OiAyMiwgMTU6ICRWYSwgMTY6ICRWYiwgMTk6IDUsIDIwOiA2LCAyMTogJFYwLCAyMjogOCwgMjM6IDksIDI0OiAxMCwgMjU6IDExLCAyNjogMTIsIDI4OiAkVjEsIDI5OiAkVjIsIDMxOiAkVjMsIDMyOiAkVjQsIDQwOiAkVjUsIDQ0OiAkVjYsIDQ3OiAkVjcgfSwgeyAzMDogWzEsIDM4XSB9LCB7IDQyOiBbMSwgMzldIH0sIHsgNDI6IFsxLCA0MF0gfSwgeyA0NjogWzEsIDQxXSB9LCB7IDQ5OiBbMSwgNDJdIH0sIG8oJFZkLCBbMiwgMzBdKSwgeyAxODogWzEsIDQzXSB9LCB7IDE4OiBbMSwgNDRdIH0sIG8oJFZjLCBbMiwgMjNdKSwgeyAxODogWzEsIDQ1XSB9LCB7IDMwOiBbMSwgNDZdIH0sIG8oJFY5LCBbMiwgMjhdKSwgbygkVjksIFsyLCAzNV0pLCBvKCRWOSwgWzIsIDM2XSksIG8oJFY5LCBbMiwgMzddKSwgbygkVjksIFsyLCAzOF0pLCB7IDM3OiBbMSwgNDddIH0sIHsgMzQ6IDQ4LCAzNTogJFZlIH0sIHsgMTU6IFsxLCA1MF0gfSwgbygkVjksIFsyLCAyN10pLCBvKCRWZCwgWzIsIDMzXSksIHsgMzk6IFsxLCA1MV0gfSwgeyAzNDogNTIsIDM1OiAkVmUsIDM5OiBbMiwgMzFdIH0sIHsgMzI6IFsyLCAxNV0gfSwgbygkVmQsIFsyLCAzNF0pLCB7IDM5OiBbMiwgMzJdIH1dLFxuICAgIGRlZmF1bHRBY3Rpb25zOiB7IDIwOiBbMiwgN10sIDIzOiBbMiwgMTRdLCA1MDogWzIsIDE1XSwgNTI6IFsyLCAzMl0gfSxcbiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgaWYgKGhhc2gucmVjb3ZlcmFibGUpIHtcbiAgICAgICAgdGhpcy50cmFjZShzdHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKHN0cik7XG4gICAgICAgIGVycm9yLmhhc2ggPSBoYXNoO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzLCBzdGFjayA9IFswXSwgdHN0YWNrID0gW10sIHZzdGFjayA9IFtudWxsXSwgbHN0YWNrID0gW10sIHRhYmxlID0gdGhpcy50YWJsZSwgeXl0ZXh0ID0gXCJcIiwgeXlsaW5lbm8gPSAwLCB5eWxlbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxO1xuICAgICAgdmFyIGFyZ3MgPSBsc3RhY2suc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGxleGVyMiA9IE9iamVjdC5jcmVhdGUodGhpcy5sZXhlcik7XG4gICAgICB2YXIgc2hhcmVkU3RhdGUgPSB7IHl5OiB7fSB9O1xuICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnl5KSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHtcbiAgICAgICAgICBzaGFyZWRTdGF0ZS55eVtrXSA9IHRoaXMueXlba107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxleGVyMi5zZXRJbnB1dChpbnB1dCwgc2hhcmVkU3RhdGUueXkpO1xuICAgICAgc2hhcmVkU3RhdGUueXkubGV4ZXIgPSBsZXhlcjI7XG4gICAgICBzaGFyZWRTdGF0ZS55eS5wYXJzZXIgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBsZXhlcjIueXlsbG9jID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgbGV4ZXIyLnl5bGxvYyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHl5bG9jID0gbGV4ZXIyLnl5bGxvYztcbiAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICAgIHZhciByYW5nZXMgPSBsZXhlcjIub3B0aW9ucyAmJiBsZXhlcjIub3B0aW9ucy5yYW5nZXM7XG4gICAgICBpZiAodHlwZW9mIHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBzaGFyZWRTdGF0ZS55eS5wYXJzZUVycm9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgdG9rZW4gPSB0c3RhY2sucG9wKCkgfHwgbGV4ZXIyLmxleCgpIHx8IEVPRjtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB0c3RhY2sgPSB0b2tlbjtcbiAgICAgICAgICAgIHRva2VuID0gdHN0YWNrLnBvcCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0b2tlbiA9IHNlbGYuc3ltYm9sc19bdG9rZW5dIHx8IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cbiAgICAgIHZhciBzeW1ib2wsIHN0YXRlLCBhY3Rpb24sIHIsIHl5dmFsID0ge30sIHAsIGxlbiwgbmV3U3RhdGUsIGV4cGVjdGVkO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgc3RhdGUgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdKSB7XG4gICAgICAgICAgYWN0aW9uID0gdGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHN5bWJvbCA9PT0gbnVsbCB8fCB0eXBlb2Ygc3ltYm9sID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHN5bWJvbCA9IGxleCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhY3Rpb24gPSB0YWJsZVtzdGF0ZV0gJiYgdGFibGVbc3RhdGVdW3N5bWJvbF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09IFwidW5kZWZpbmVkXCIgfHwgIWFjdGlvbi5sZW5ndGggfHwgIWFjdGlvblswXSkge1xuICAgICAgICAgIHZhciBlcnJTdHIgPSBcIlwiO1xuICAgICAgICAgIGV4cGVjdGVkID0gW107XG4gICAgICAgICAgZm9yIChwIGluIHRhYmxlW3N0YXRlXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGVybWluYWxzX1twXSAmJiBwID4gVEVSUk9SKSB7XG4gICAgICAgICAgICAgIGV4cGVjdGVkLnB1c2goXCInXCIgKyB0aGlzLnRlcm1pbmFsc19bcF0gKyBcIidcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsZXhlcjIuc2hvd1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICBlcnJTdHIgPSBcIlBhcnNlIGVycm9yIG9uIGxpbmUgXCIgKyAoeXlsaW5lbm8gKyAxKSArIFwiOlxcblwiICsgbGV4ZXIyLnNob3dQb3NpdGlvbigpICsgXCJcXG5FeHBlY3RpbmcgXCIgKyBleHBlY3RlZC5qb2luKFwiLCBcIikgKyBcIiwgZ290ICdcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6IFVuZXhwZWN0ZWQgXCIgKyAoc3ltYm9sID09IEVPRiA/IFwiZW5kIG9mIGlucHV0XCIgOiBcIidcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnBhcnNlRXJyb3IoZXJyU3RyLCB7XG4gICAgICAgICAgICB0ZXh0OiBsZXhlcjIubWF0Y2gsXG4gICAgICAgICAgICB0b2tlbjogdGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sLFxuICAgICAgICAgICAgbGluZTogbGV4ZXIyLnl5bGluZW5vLFxuICAgICAgICAgICAgbG9jOiB5eWxvYyxcbiAgICAgICAgICAgIGV4cGVjdGVkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblswXSBpbnN0YW5jZW9mIEFycmF5ICYmIGFjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyc2UgRXJyb3I6IG11bHRpcGxlIGFjdGlvbnMgcG9zc2libGUgYXQgc3RhdGU6IFwiICsgc3RhdGUgKyBcIiwgdG9rZW46IFwiICsgc3ltYm9sKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGFjdGlvblswXSkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHN0YWNrLnB1c2goc3ltYm9sKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKGxleGVyMi55eXRleHQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2gobGV4ZXIyLnl5bGxvYyk7XG4gICAgICAgICAgICBzdGFjay5wdXNoKGFjdGlvblsxXSk7XG4gICAgICAgICAgICBzeW1ib2wgPSBudWxsO1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB5eWxlbmcgPSBsZXhlcjIueXlsZW5nO1xuICAgICAgICAgICAgICB5eXRleHQgPSBsZXhlcjIueXl0ZXh0O1xuICAgICAgICAgICAgICB5eWxpbmVubyA9IGxleGVyMi55eWxpbmVubztcbiAgICAgICAgICAgICAgeXlsb2MgPSBsZXhlcjIueXlsbG9jO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgbGVuID0gdGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVsxXTtcbiAgICAgICAgICAgIHl5dmFsLiQgPSB2c3RhY2tbdnN0YWNrLmxlbmd0aCAtIGxlbl07XG4gICAgICAgICAgICB5eXZhbC5fJCA9IHtcbiAgICAgICAgICAgICAgZmlyc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9saW5lLFxuICAgICAgICAgICAgICBsYXN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9saW5lLFxuICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2NvbHVtblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyYW5nZXMpIHtcbiAgICAgICAgICAgICAgeXl2YWwuXyQucmFuZ2UgPSBbXG4gICAgICAgICAgICAgICAgbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5yYW5nZVswXSxcbiAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLnJhbmdlWzFdXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByID0gdGhpcy5wZXJmb3JtQWN0aW9uLmFwcGx5KHl5dmFsLCBbXG4gICAgICAgICAgICAgIHl5dGV4dCxcbiAgICAgICAgICAgICAgeXlsZW5nLFxuICAgICAgICAgICAgICB5eWxpbmVubyxcbiAgICAgICAgICAgICAgc2hhcmVkU3RhdGUueXksXG4gICAgICAgICAgICAgIGFjdGlvblsxXSxcbiAgICAgICAgICAgICAgdnN0YWNrLFxuICAgICAgICAgICAgICBsc3RhY2tcbiAgICAgICAgICAgIF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZW4pIHtcbiAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZSgwLCAtMSAqIGxlbiAqIDIpO1xuICAgICAgICAgICAgICB2c3RhY2sgPSB2c3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgICBsc3RhY2sgPSBsc3RhY2suc2xpY2UoMCwgLTEgKiBsZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhY2sucHVzaCh0aGlzLnByb2R1Y3Rpb25zX1thY3Rpb25bMV1dWzBdKTtcbiAgICAgICAgICAgIHZzdGFjay5wdXNoKHl5dmFsLiQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2goeXl2YWwuXyQpO1xuICAgICAgICAgICAgbmV3U3RhdGUgPSB0YWJsZVtzdGFja1tzdGFjay5sZW5ndGggLSAyXV1bc3RhY2tbc3RhY2subGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgc3RhY2sucHVzaChuZXdTdGF0ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9O1xuICB2YXIgbGV4ZXIgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGV4ZXIyID0ge1xuICAgICAgRU9GOiAxLFxuICAgICAgcGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgICAgaWYgKHRoaXMueXkucGFyc2VyKSB7XG4gICAgICAgICAgdGhpcy55eS5wYXJzZXIucGFyc2VFcnJvcihzdHIsIGhhc2gpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihzdHIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmVzZXRzIHRoZSBsZXhlciwgc2V0cyBuZXcgaW5wdXRcbiAgICAgIHNldElucHV0OiBmdW5jdGlvbihpbnB1dCwgeXkpIHtcbiAgICAgICAgdGhpcy55eSA9IHl5IHx8IHRoaXMueXkgfHwge307XG4gICAgICAgIHRoaXMuX2lucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0aGlzLl9iYWNrdHJhY2sgPSB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy55eWxpbmVubyA9IHRoaXMueXlsZW5nID0gMDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjayA9IFtcIklOSVRJQUxcIl07XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgIGZpcnN0X2xpbmU6IDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiAwLFxuICAgICAgICAgIGxhc3RfbGluZTogMSxcbiAgICAgICAgICBsYXN0X2NvbHVtbjogMFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gWzAsIDBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgLy8gY29uc3VtZXMgYW5kIHJldHVybnMgb25lIGNoYXIgZnJvbSB0aGUgaW5wdXRcbiAgICAgIGlucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGNoID0gdGhpcy5faW5wdXRbMF07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IGNoO1xuICAgICAgICB0aGlzLnl5bGVuZysrO1xuICAgICAgICB0aGlzLm9mZnNldCsrO1xuICAgICAgICB0aGlzLm1hdGNoICs9IGNoO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gY2g7XG4gICAgICAgIHZhciBsaW5lcyA9IGNoLm1hdGNoKC8oPzpcXHJcXG4/fFxcbikuKi9nKTtcbiAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgdGhpcy55eWxpbmVubysrO1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfbGluZSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfY29sdW1uKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZVsxXSsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UoMSk7XG4gICAgICAgIHJldHVybiBjaDtcbiAgICAgIH0sXG4gICAgICAvLyB1bnNoaWZ0cyBvbmUgY2hhciAob3IgYSBzdHJpbmcpIGludG8gdGhlIGlucHV0XG4gICAgICB1bnB1dDogZnVuY3Rpb24oY2gpIHtcbiAgICAgICAgdmFyIGxlbiA9IGNoLmxlbmd0aDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBjaCArIHRoaXMuX2lucHV0O1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMueXl0ZXh0LnN1YnN0cigwLCB0aGlzLnl5dGV4dC5sZW5ndGggLSBsZW4pO1xuICAgICAgICB0aGlzLm9mZnNldCAtPSBsZW47XG4gICAgICAgIHZhciBvbGRMaW5lcyA9IHRoaXMubWF0Y2guc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgICAgICAgdGhpcy5tYXRjaCA9IHRoaXMubWF0Y2guc3Vic3RyKDAsIHRoaXMubWF0Y2gubGVuZ3RoIC0gMSk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIDEpO1xuICAgICAgICBpZiAobGluZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHRoaXMueXlsaW5lbm8gLT0gbGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgciA9IHRoaXMueXlsbG9jLnJhbmdlO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5maXJzdF9saW5lLFxuICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgbGFzdF9jb2x1bW46IGxpbmVzID8gKGxpbmVzLmxlbmd0aCA9PT0gb2xkTGluZXMubGVuZ3RoID8gdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIDogMCkgKyBvbGRMaW5lc1tvbGRMaW5lcy5sZW5ndGggLSBsaW5lcy5sZW5ndGhdLmxlbmd0aCAtIGxpbmVzWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiAtIGxlblxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3JbMF0sIHJbMF0gKyB0aGlzLnl5bGVuZyAtIGxlbl07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBjYWNoZXMgbWF0Y2hlZCB0ZXh0IGFuZCBhcHBlbmRzIGl0IG9uIG5leHQgYWN0aW9uXG4gICAgICBtb3JlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIFdoZW4gY2FsbGVkIGZyb20gYWN0aW9uLCBzaWduYWxzIHRoZSBsZXhlciB0aGF0IHRoaXMgcnVsZSBmYWlscyB0byBtYXRjaCB0aGUgaW5wdXQsIHNvIHRoZSBuZXh0IG1hdGNoaW5nIHJ1bGUgKHJlZ2V4KSBzaG91bGQgYmUgdGVzdGVkIGluc3RlYWQuXG4gICAgICByZWplY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gWW91IGNhbiBvbmx5IGludm9rZSByZWplY3QoKSBpbiB0aGUgbGV4ZXIgd2hlbiB0aGUgbGV4ZXIgaXMgb2YgdGhlIGJhY2t0cmFja2luZyBwZXJzdWFzaW9uIChvcHRpb25zLmJhY2t0cmFja19sZXhlciA9IHRydWUpLlxcblwiICsgdGhpcy5zaG93UG9zaXRpb24oKSwge1xuICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgbGluZTogdGhpcy55eWxpbmVub1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIC8vIHJldGFpbiBmaXJzdCBuIGNoYXJhY3RlcnMgb2YgdGhlIG1hdGNoXG4gICAgICBsZXNzOiBmdW5jdGlvbihuKSB7XG4gICAgICAgIHRoaXMudW5wdXQodGhpcy5tYXRjaC5zbGljZShuKSk7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgYWxyZWFkeSBtYXRjaGVkIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgcGFzdElucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHBhc3QgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSB0aGlzLm1hdGNoLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiAocGFzdC5sZW5ndGggPiAyMCA/IFwiLi4uXCIgOiBcIlwiKSArIHBhc3Quc3Vic3RyKC0yMCkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8vIGRpc3BsYXlzIHVwY29taW5nIGlucHV0LCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgdXBjb21pbmdJbnB1dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5tYXRjaDtcbiAgICAgICAgaWYgKG5leHQubGVuZ3RoIDwgMjApIHtcbiAgICAgICAgICBuZXh0ICs9IHRoaXMuX2lucHV0LnN1YnN0cigwLCAyMCAtIG5leHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKG5leHQuc3Vic3RyKDAsIDIwKSArIChuZXh0Lmxlbmd0aCA+IDIwID8gXCIuLi5cIiA6IFwiXCIpKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICB9LFxuICAgICAgLy8gZGlzcGxheXMgdGhlIGNoYXJhY3RlciBwb3NpdGlvbiB3aGVyZSB0aGUgbGV4aW5nIGVycm9yIG9jY3VycmVkLCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgc2hvd1Bvc2l0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHByZSA9IHRoaXMucGFzdElucHV0KCk7XG4gICAgICAgIHZhciBjID0gbmV3IEFycmF5KHByZS5sZW5ndGggKyAxKS5qb2luKFwiLVwiKTtcbiAgICAgICAgcmV0dXJuIHByZSArIHRoaXMudXBjb21pbmdJbnB1dCgpICsgXCJcXG5cIiArIGMgKyBcIl5cIjtcbiAgICAgIH0sXG4gICAgICAvLyB0ZXN0IHRoZSBsZXhlZCB0b2tlbjogcmV0dXJuIEZBTFNFIHdoZW4gbm90IGEgbWF0Y2gsIG90aGVyd2lzZSByZXR1cm4gdG9rZW5cbiAgICAgIHRlc3RfbWF0Y2g6IGZ1bmN0aW9uKG1hdGNoLCBpbmRleGVkX3J1bGUpIHtcbiAgICAgICAgdmFyIHRva2VuLCBsaW5lcywgYmFja3VwO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgIGJhY2t1cCA9IHtcbiAgICAgICAgICAgIHl5bGluZW5vOiB0aGlzLnl5bGluZW5vLFxuICAgICAgICAgICAgeXlsbG9jOiB7XG4gICAgICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgIGxhc3RfbGluZTogdGhpcy5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5eXRleHQ6IHRoaXMueXl0ZXh0LFxuICAgICAgICAgICAgbWF0Y2g6IHRoaXMubWF0Y2gsXG4gICAgICAgICAgICBtYXRjaGVzOiB0aGlzLm1hdGNoZXMsXG4gICAgICAgICAgICBtYXRjaGVkOiB0aGlzLm1hdGNoZWQsXG4gICAgICAgICAgICB5eWxlbmc6IHRoaXMueXlsZW5nLFxuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgIF9tb3JlOiB0aGlzLl9tb3JlLFxuICAgICAgICAgICAgX2lucHV0OiB0aGlzLl9pbnB1dCxcbiAgICAgICAgICAgIHl5OiB0aGlzLnl5LFxuICAgICAgICAgICAgY29uZGl0aW9uU3RhY2s6IHRoaXMuY29uZGl0aW9uU3RhY2suc2xpY2UoMCksXG4gICAgICAgICAgICBkb25lOiB0aGlzLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgICBiYWNrdXAueXlsbG9jLnJhbmdlID0gdGhpcy55eWxsb2MucmFuZ2Uuc2xpY2UoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxpbmVzID0gbWF0Y2hbMF0ubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICB0aGlzLnl5bGluZW5vICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICBmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5sYXN0X2xpbmUsXG4gICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uLFxuICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLm1hdGNoKC9cXHI/XFxuPy8pWzBdLmxlbmd0aCA6IHRoaXMueXlsbG9jLmxhc3RfY29sdW1uICsgbWF0Y2hbMF0ubGVuZ3RoXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMueXl0ZXh0ICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoICs9IG1hdGNoWzBdO1xuICAgICAgICB0aGlzLm1hdGNoZXMgPSBtYXRjaDtcbiAgICAgICAgdGhpcy55eWxlbmcgPSB0aGlzLnl5dGV4dC5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbdGhpcy5vZmZzZXQsIHRoaXMub2Zmc2V0ICs9IHRoaXMueXlsZW5nXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tb3JlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgIHRoaXMubWF0Y2hlZCArPSBtYXRjaFswXTtcbiAgICAgICAgdG9rZW4gPSB0aGlzLnBlcmZvcm1BY3Rpb24uY2FsbCh0aGlzLCB0aGlzLnl5LCB0aGlzLCBpbmRleGVkX3J1bGUsIHRoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXSk7XG4gICAgICAgIGlmICh0aGlzLmRvbmUgJiYgdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgZm9yICh2YXIgayBpbiBiYWNrdXApIHtcbiAgICAgICAgICAgIHRoaXNba10gPSBiYWNrdXBba107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIG5leHQgbWF0Y2ggaW4gaW5wdXRcbiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b2tlbiwgbWF0Y2gsIHRlbXBNYXRjaCwgaW5kZXg7XG4gICAgICAgIGlmICghdGhpcy5fbW9yZSkge1xuICAgICAgICAgIHRoaXMueXl0ZXh0ID0gXCJcIjtcbiAgICAgICAgICB0aGlzLm1hdGNoID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcnVsZXMgPSB0aGlzLl9jdXJyZW50UnVsZXMoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRlbXBNYXRjaCA9IHRoaXMuX2lucHV0Lm1hdGNoKHRoaXMucnVsZXNbcnVsZXNbaV1dKTtcbiAgICAgICAgICBpZiAodGVtcE1hdGNoICYmICghbWF0Y2ggfHwgdGVtcE1hdGNoWzBdLmxlbmd0aCA+IG1hdGNoWzBdLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIG1hdGNoID0gdGVtcE1hdGNoO1xuICAgICAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2godGVtcE1hdGNoLCBydWxlc1tpXSk7XG4gICAgICAgICAgICAgIGlmICh0b2tlbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYmFja3RyYWNrKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3B0aW9ucy5mbGV4KSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaChtYXRjaCwgcnVsZXNbaW5kZXhdKTtcbiAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faW5wdXQgPT09IFwiXCIpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcihcIkxleGljYWwgZXJyb3Igb24gbGluZSBcIiArICh0aGlzLnl5bGluZW5vICsgMSkgKyBcIi4gVW5yZWNvZ25pemVkIHRleHQuXFxuXCIgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7XG4gICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgdG9rZW46IG51bGwsXG4gICAgICAgICAgICBsaW5lOiB0aGlzLnl5bGluZW5vXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gbmV4dCBtYXRjaCB0aGF0IGhhcyBhIHRva2VuXG4gICAgICBsZXg6IGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLm5leHQoKTtcbiAgICAgICAgaWYgKHIpIHtcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sZXgoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGFjdGl2YXRlcyBhIG5ldyBsZXhlciBjb25kaXRpb24gc3RhdGUgKHB1c2hlcyB0aGUgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSBvbnRvIHRoZSBjb25kaXRpb24gc3RhY2spXG4gICAgICBiZWdpbjogZnVuY3Rpb24gYmVnaW4oY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sucHVzaChjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICAgIC8vIHBvcCB0aGUgcHJldmlvdXNseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9mZiB0aGUgY29uZGl0aW9uIHN0YWNrXG4gICAgICBwb3BTdGF0ZTogZnVuY3Rpb24gcG9wU3RhdGUoKSB7XG4gICAgICAgIHZhciBuID0gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxO1xuICAgICAgICBpZiAobiA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5wb3AoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1swXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHByb2R1Y2UgdGhlIGxleGVyIHJ1bGUgc2V0IHdoaWNoIGlzIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlXG4gICAgICBfY3VycmVudFJ1bGVzOiBmdW5jdGlvbiBfY3VycmVudFJ1bGVzKCkge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggJiYgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uc1t0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV1dLnJ1bGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvbnNbXCJJTklUSUFMXCJdLnJ1bGVzO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gcmV0dXJuIHRoZSBjdXJyZW50bHkgYWN0aXZlIGxleGVyIGNvbmRpdGlvbiBzdGF0ZTsgd2hlbiBhbiBpbmRleCBhcmd1bWVudCBpcyBwcm92aWRlZCBpdCBwcm9kdWNlcyB0aGUgTi10aCBwcmV2aW91cyBjb25kaXRpb24gc3RhdGUsIGlmIGF2YWlsYWJsZVxuICAgICAgdG9wU3RhdGU6IGZ1bmN0aW9uIHRvcFN0YXRlKG4pIHtcbiAgICAgICAgbiA9IHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMSAtIE1hdGguYWJzKG4gfHwgMCk7XG4gICAgICAgIGlmIChuID49IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1tuXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gXCJJTklUSUFMXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBhbGlhcyBmb3IgYmVnaW4oY29uZGl0aW9uKVxuICAgICAgcHVzaFN0YXRlOiBmdW5jdGlvbiBwdXNoU3RhdGUoY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuYmVnaW4oY29uZGl0aW9uKTtcbiAgICAgIH0sXG4gICAgICAvLyByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0ZXMgY3VycmVudGx5IG9uIHRoZSBzdGFja1xuICAgICAgc3RhdGVTdGFja1NpemU6IGZ1bmN0aW9uIHN0YXRlU3RhY2tTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge30sXG4gICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXksIHl5XywgJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucywgWVlfU1RBUlQpIHtcbiAgICAgICAgc3dpdGNoICgkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zKSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmV0dXJuIDEwO1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiRm91bmQgc3BhY2UtYmxvY2tcIik7XG4gICAgICAgICAgICByZXR1cm4gMzE7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJGb3VuZCBubC1ibG9ja1wiKTtcbiAgICAgICAgICAgIHJldHVybiAzMTtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkZvdW5kIHNwYWNlLWJsb2NrXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDI5O1xuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiLlwiLCB5eV8ueXl0ZXh0KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiX1wiLCB5eV8ueXl0ZXh0KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHJldHVybiA1O1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHl5Xy55eXRleHQgPSAtMTtcbiAgICAgICAgICAgIHJldHVybiAyODtcbiAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0geXlfLnl5dGV4dC5yZXBsYWNlKC9jb2x1bW5zXFxzKy8sIFwiXCIpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJDT0xVTU5TIChMRVgpXCIsIHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgcmV0dXJuIDI4O1xuICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwibWRfc3RyaW5nXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIHJldHVybiBcIk1EX1NUUlwiO1xuICAgICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJzdHJpbmdcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMRVg6IFBPUFBJTkcgU1RSOlwiLCB5eV8ueXl0ZXh0KTtcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxFWDogU1RSIGVuZDpcIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gXCJTVFJcIjtcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgeXlfLnl5dGV4dCA9IHl5Xy55eXRleHQucmVwbGFjZSgvc3BhY2VcXDovLCBcIlwiKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiU1BBQ0UgTlVNIChMRVgpXCIsIHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgcmV0dXJuIDIxO1xuICAgICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0gXCIxXCI7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkNPTFVNTlMgKExFWClcIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gMjE7XG4gICAgICAgICAgY2FzZSAxNzpcbiAgICAgICAgICAgIHJldHVybiA0MztcbiAgICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgICAgcmV0dXJuIFwiTElOS1NUWUxFXCI7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIHJldHVybiBcIklOVEVSUE9MQVRFXCI7XG4gICAgICAgICAgY2FzZSAyMDpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiQ0xBU1NERUZcIik7XG4gICAgICAgICAgICByZXR1cm4gNDA7XG4gICAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiQ0xBU1NERUZJRFwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIkRFRkFVTFRfQ0xBU1NERUZfSURcIjtcbiAgICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJDTEFTU0RFRklEXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQxO1xuICAgICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gNDI7XG4gICAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiQ0xBU1NcIik7XG4gICAgICAgICAgICByZXR1cm4gNDQ7XG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiQ0xBU1NfU1RZTEVcIik7XG4gICAgICAgICAgICByZXR1cm4gNDU7XG4gICAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiA0NjtcbiAgICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJTVFlMRV9TVE1OVFwiKTtcbiAgICAgICAgICAgIHJldHVybiA0NztcbiAgICAgICAgICBjYXNlIDI4OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJTVFlMRV9ERUZJTklUSU9OXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDQ4O1xuICAgICAgICAgIGNhc2UgMjk6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gNDk7XG4gICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiYWNjX3RpdGxlXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiYWNjX3RpdGxlXCI7XG4gICAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBcImFjY190aXRsZV92YWx1ZVwiO1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcImFjY19kZXNjclwiKTtcbiAgICAgICAgICAgIHJldHVybiBcImFjY19kZXNjclwiO1xuICAgICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfdmFsdWVcIjtcbiAgICAgICAgICBjYXNlIDM0OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJhY2NfZGVzY3JfbXVsdGlsaW5lXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzNTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgICByZXR1cm4gXCJhY2NfZGVzY3JfbXVsdGlsaW5lX3ZhbHVlXCI7XG4gICAgICAgICAgY2FzZSAzNzpcbiAgICAgICAgICAgIHJldHVybiAzMDtcbiAgICAgICAgICBjYXNlIDM4OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6ICgoXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERU5EXCI7XG4gICAgICAgICAgY2FzZSAzOTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiAoKFwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIk5PREVfREVORFwiO1xuICAgICAgICAgIGNhc2UgNDA6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleDogKSlcIik7XG4gICAgICAgICAgICByZXR1cm4gXCJOT0RFX0RFTkRcIjtcbiAgICAgICAgICBjYXNlIDQxOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6ICgoXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERU5EXCI7XG4gICAgICAgICAgY2FzZSA0MjpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiAoKFwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIk5PREVfREVORFwiO1xuICAgICAgICAgIGNhc2UgNDM6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleDogKC1cIik7XG4gICAgICAgICAgICByZXR1cm4gXCJOT0RFX0RFTkRcIjtcbiAgICAgICAgICBjYXNlIDQ0OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6IC0pXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERU5EXCI7XG4gICAgICAgICAgY2FzZSA0NTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiAoKFwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIk5PREVfREVORFwiO1xuICAgICAgICAgIGNhc2UgNDY6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleDogXV1cIik7XG4gICAgICAgICAgICByZXR1cm4gXCJOT0RFX0RFTkRcIjtcbiAgICAgICAgICBjYXNlIDQ3OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6IChcIik7XG4gICAgICAgICAgICByZXR1cm4gXCJOT0RFX0RFTkRcIjtcbiAgICAgICAgICBjYXNlIDQ4OlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6IF0pXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERU5EXCI7XG4gICAgICAgICAgY2FzZSA0OTpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiAvXVwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIk5PREVfREVORFwiO1xuICAgICAgICAgIGNhc2UgNTA6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleDogL11cIik7XG4gICAgICAgICAgICByZXR1cm4gXCJOT0RFX0RFTkRcIjtcbiAgICAgICAgICBjYXNlIDUxOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6ICldXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERU5EXCI7XG4gICAgICAgICAgY2FzZSA1MjpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiApXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERU5EXCI7XG4gICAgICAgICAgY2FzZSA1MzpcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiBdPlwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIk5PREVfREVORFwiO1xuICAgICAgICAgIGNhc2UgNTQ6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleDogXVwiKTtcbiAgICAgICAgICAgIHJldHVybiBcIk5PREVfREVORFwiO1xuICAgICAgICAgIGNhc2UgNTU6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleGE6IC0pXCIpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJOT0RFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgNTY6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleGE6ICgtXCIpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJOT0RFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgNTc6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleGE6ICkpXCIpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJOT0RFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgNTg6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleGE6IClcIik7XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIk5PREVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzY7XG4gICAgICAgICAgY2FzZSA1OTpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiAoKChcIik7XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIk5PREVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzY7XG4gICAgICAgICAgY2FzZSA2MDpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4YTogKVwiKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiTk9ERVwiKTtcbiAgICAgICAgICAgIHJldHVybiAzNjtcbiAgICAgICAgICBjYXNlIDYxOlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXhhOiApXCIpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJOT0RFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgNjI6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleGE6IClcIik7XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIk5PREVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzY7XG4gICAgICAgICAgY2FzZSA2MzpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4YzogPlwiKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiTk9ERVwiKTtcbiAgICAgICAgICAgIHJldHVybiAzNjtcbiAgICAgICAgICBjYXNlIDY0OlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXhhOiAoW1wiKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiTk9ERVwiKTtcbiAgICAgICAgICAgIHJldHVybiAzNjtcbiAgICAgICAgICBjYXNlIDY1OlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXhhOiApXCIpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJOT0RFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgNjY6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIk5PREVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzY7XG4gICAgICAgICAgY2FzZSA2NzpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiTk9ERVwiKTtcbiAgICAgICAgICAgIHJldHVybiAzNjtcbiAgICAgICAgICBjYXNlIDY4OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJOT0RFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgNjk6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIk5PREVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzY7XG4gICAgICAgICAgY2FzZSA3MDpcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiTk9ERVwiKTtcbiAgICAgICAgICAgIHJldHVybiAzNjtcbiAgICAgICAgICBjYXNlIDcxOlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJOT0RFXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDM2O1xuICAgICAgICAgIGNhc2UgNzI6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIk5PREVcIik7XG4gICAgICAgICAgICByZXR1cm4gMzY7XG4gICAgICAgICAgY2FzZSA3MzpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4YTogW1wiKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiTk9ERVwiKTtcbiAgICAgICAgICAgIHJldHVybiAzNjtcbiAgICAgICAgICBjYXNlIDc0OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJCTE9DS19BUlJPV1wiKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTEVYIEFSUiBTVEFSVFwiKTtcbiAgICAgICAgICAgIHJldHVybiAzODtcbiAgICAgICAgICBjYXNlIDc1OlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6IE5PREVfSURcIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gMzI7XG4gICAgICAgICAgY2FzZSA3NjpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiBFT0ZcIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gODtcbiAgICAgICAgICBjYXNlIDc3OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJtZF9zdHJpbmdcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDc4OlxuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJtZF9zdHJpbmdcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDc5OlxuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERVNDUlwiO1xuICAgICAgICAgIGNhc2UgODA6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDgxOlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6IFN0YXJ0aW5nIHN0cmluZ1wiKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwic3RyaW5nXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA4MjpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTEVYIEFSUjogU3RhcnRpbmcgc3RyaW5nXCIpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJzdHJpbmdcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDgzOlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMRVg6IE5PREVfREVTQ1I6XCIsIHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTk9ERV9ERVNDUlwiO1xuICAgICAgICAgIGNhc2UgODQ6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxFWCBQT1BQSU5HXCIpO1xuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA4NTpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiA9PkJBRVwiKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwiQVJST1dfRElSXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA4NjpcbiAgICAgICAgICAgIHl5Xy55eXRleHQgPSB5eV8ueXl0ZXh0LnJlcGxhY2UoL14sXFxzKi8sIFwiXCIpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXggKHJpZ2h0KTogZGlyOlwiLCB5eV8ueXl0ZXh0KTtcbiAgICAgICAgICAgIHJldHVybiBcIkRJUlwiO1xuICAgICAgICAgIGNhc2UgODc6XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0geXlfLnl5dGV4dC5yZXBsYWNlKC9eLFxccyovLCBcIlwiKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4IChsZWZ0KTpcIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gXCJESVJcIjtcbiAgICAgICAgICBjYXNlIDg4OlxuICAgICAgICAgICAgeXlfLnl5dGV4dCA9IHl5Xy55eXRleHQucmVwbGFjZSgvXixcXHMqLywgXCJcIik7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleCAoeCk6XCIsIHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgcmV0dXJuIFwiRElSXCI7XG4gICAgICAgICAgY2FzZSA4OTpcbiAgICAgICAgICAgIHl5Xy55eXRleHQgPSB5eV8ueXl0ZXh0LnJlcGxhY2UoL14sXFxzKi8sIFwiXCIpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXggKHkpOlwiLCB5eV8ueXl0ZXh0KTtcbiAgICAgICAgICAgIHJldHVybiBcIkRJUlwiO1xuICAgICAgICAgIGNhc2UgOTA6XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0geXlfLnl5dGV4dC5yZXBsYWNlKC9eLFxccyovLCBcIlwiKTtcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4ICh1cCk6XCIsIHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgcmV0dXJuIFwiRElSXCI7XG4gICAgICAgICAgY2FzZSA5MTpcbiAgICAgICAgICAgIHl5Xy55eXRleHQgPSB5eV8ueXl0ZXh0LnJlcGxhY2UoL14sXFxzKi8sIFwiXCIpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXggKGRvd24pOlwiLCB5eV8ueXl0ZXh0KTtcbiAgICAgICAgICAgIHJldHVybiBcIkRJUlwiO1xuICAgICAgICAgIGNhc2UgOTI6XG4gICAgICAgICAgICB5eV8ueXl0ZXh0ID0gXCJdPlwiO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXggKEFSUk9XX0RJUiBlbmQpOlwiLCB5eV8ueXl0ZXh0KTtcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBcIkJMT0NLX0FSUk9XX0VORFwiO1xuICAgICAgICAgIGNhc2UgOTM6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleDogTElOS1wiLCBcIiNcIiArIHl5Xy55eXRleHQgKyBcIiNcIik7XG4gICAgICAgICAgICByZXR1cm4gMTU7XG4gICAgICAgICAgY2FzZSA5NDpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiBMSU5LXCIsIHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgcmV0dXJuIDE1O1xuICAgICAgICAgIGNhc2UgOTU6XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleDogTElOS1wiLCB5eV8ueXl0ZXh0KTtcbiAgICAgICAgICAgIHJldHVybiAxNTtcbiAgICAgICAgICBjYXNlIDk2OlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6IExJTktcIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gMTU7XG4gICAgICAgICAgY2FzZSA5NzpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiBTVEFSVF9MSU5LXCIsIHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJMTEFCRUxcIik7XG4gICAgICAgICAgICByZXR1cm4gMTY7XG4gICAgICAgICAgY2FzZSA5ODpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiBTVEFSVF9MSU5LXCIsIHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJMTEFCRUxcIik7XG4gICAgICAgICAgICByZXR1cm4gMTY7XG4gICAgICAgICAgY2FzZSA5OTpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiBTVEFSVF9MSU5LXCIsIHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgdGhpcy5wdXNoU3RhdGUoXCJMTEFCRUxcIik7XG4gICAgICAgICAgICByZXR1cm4gMTY7XG4gICAgICAgICAgY2FzZSAxMDA6XG4gICAgICAgICAgICB0aGlzLnB1c2hTdGF0ZShcIm1kX3N0cmluZ1wiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTAxOlxuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6IFN0YXJ0aW5nIHN0cmluZ1wiKTtcbiAgICAgICAgICAgIHRoaXMucHVzaFN0YXRlKFwic3RyaW5nXCIpO1xuICAgICAgICAgICAgcmV0dXJuIFwiTElOS19MQUJFTFwiO1xuICAgICAgICAgIGNhc2UgMTAyOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6IExJTktcIiwgXCIjXCIgKyB5eV8ueXl0ZXh0ICsgXCIjXCIpO1xuICAgICAgICAgICAgcmV0dXJuIDE1O1xuICAgICAgICAgIGNhc2UgMTAzOlxuICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgeXkuZ2V0TG9nZ2VyKCkuZGVidWcoXCJMZXg6IExJTktcIiwgeXlfLnl5dGV4dCk7XG4gICAgICAgICAgICByZXR1cm4gMTU7XG4gICAgICAgICAgY2FzZSAxMDQ6XG4gICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICB5eS5nZXRMb2dnZXIoKS5kZWJ1ZyhcIkxleDogTElOS1wiLCB5eV8ueXl0ZXh0KTtcbiAgICAgICAgICAgIHJldHVybiAxNTtcbiAgICAgICAgICBjYXNlIDEwNTpcbiAgICAgICAgICAgIHl5LmdldExvZ2dlcigpLmRlYnVnKFwiTGV4OiBDT0xPTlwiLCB5eV8ueXl0ZXh0KTtcbiAgICAgICAgICAgIHl5Xy55eXRleHQgPSB5eV8ueXl0ZXh0LnNsaWNlKDEpO1xuICAgICAgICAgICAgcmV0dXJuIDI3O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcnVsZXM6IFsvXig/OmJsb2NrLWJldGFcXGIpLywgL14oPzpibG9ja1xccyspLywgL14oPzpibG9ja1xcbispLywgL14oPzpibG9jazopLywgL14oPzpbXFxzXSspLywgL14oPzpbXFxuXSspLywgL14oPzooKFxcdTAwMERcXHUwMDBBKXwoXFx1MDAwQSkpKS8sIC9eKD86Y29sdW1uc1xccythdXRvXFxiKS8sIC9eKD86Y29sdW1uc1xccytbXFxkXSspLywgL14oPzpbXCJdW2BdKS8sIC9eKD86W15gXCJdKykvLCAvXig/OltgXVtcIl0pLywgL14oPzpbXCJdKS8sIC9eKD86W1wiXSkvLCAvXig/OlteXCJdKikvLCAvXig/OnNwYWNlWzpdXFxkKykvLCAvXig/OnNwYWNlXFxiKS8sIC9eKD86ZGVmYXVsdFxcYikvLCAvXig/OmxpbmtTdHlsZVxcYikvLCAvXig/OmludGVycG9sYXRlXFxiKS8sIC9eKD86Y2xhc3NEZWZcXHMrKS8sIC9eKD86REVGQVVMVFxccyspLywgL14oPzpcXHcrXFxzKykvLCAvXig/OlteXFxuXSopLywgL14oPzpjbGFzc1xccyspLywgL14oPzooXFx3KykrKCgsXFxzKlxcdyspKikpLywgL14oPzpbXlxcbl0qKS8sIC9eKD86c3R5bGVcXHMrKS8sIC9eKD86KFxcdyspKygoLFxccypcXHcrKSopKS8sIC9eKD86W15cXG5dKikvLCAvXig/OmFjY1RpdGxlXFxzKjpcXHMqKS8sIC9eKD86KD8hXFxufHwpKlteXFxuXSopLywgL14oPzphY2NEZXNjclxccyo6XFxzKikvLCAvXig/Oig/IVxcbnx8KSpbXlxcbl0qKS8sIC9eKD86YWNjRGVzY3JcXHMqXFx7XFxzKikvLCAvXig/OltcXH1dKS8sIC9eKD86W15cXH1dKikvLCAvXig/OmVuZFxcYlxccyopLywgL14oPzpcXChcXChcXCgpLywgL14oPzpcXClcXClcXCkpLywgL14oPzpbXFwpXVxcKSkvLCAvXig/OlxcfVxcfSkvLCAvXig/OlxcfSkvLCAvXig/OlxcKC0pLywgL14oPzotXFwpKS8sIC9eKD86XFwoXFwoKS8sIC9eKD86XFxdXFxdKS8sIC9eKD86XFwoKS8sIC9eKD86XFxdXFwpKS8sIC9eKD86XFxcXFxcXSkvLCAvXig/OlxcL1xcXSkvLCAvXig/OlxcKVxcXSkvLCAvXig/OltcXCldKS8sIC9eKD86XFxdPikvLCAvXig/OltcXF1dKS8sIC9eKD86LVxcKSkvLCAvXig/OlxcKC0pLywgL14oPzpcXClcXCkpLywgL14oPzpcXCkpLywgL14oPzpcXChcXChcXCgpLywgL14oPzpcXChcXCgpLywgL14oPzpcXHtcXHspLywgL14oPzpcXHspLywgL14oPzo+KS8sIC9eKD86XFwoXFxbKS8sIC9eKD86XFwoKS8sIC9eKD86XFxbXFxbKS8sIC9eKD86XFxbXFx8KS8sIC9eKD86XFxbXFwoKS8sIC9eKD86XFwpXFwpXFwpKS8sIC9eKD86XFxbXFxcXCkvLCAvXig/OlxcW1xcLykvLCAvXig/OlxcW1xcXFwpLywgL14oPzpcXFspLywgL14oPzo8XFxbKS8sIC9eKD86W15cXChcXFtcXG5cXC1cXClcXHtcXH1cXHNcXDxcXD46XSspLywgL14oPzokKS8sIC9eKD86W1wiXVtgXSkvLCAvXig/OltcIl1bYF0pLywgL14oPzpbXmBcIl0rKS8sIC9eKD86W2BdW1wiXSkvLCAvXig/OltcIl0pLywgL14oPzpbXCJdKS8sIC9eKD86W15cIl0rKS8sIC9eKD86W1wiXSkvLCAvXig/OlxcXT5cXHMqXFwoKS8sIC9eKD86LD9cXHMqcmlnaHRcXHMqKS8sIC9eKD86LD9cXHMqbGVmdFxccyopLywgL14oPzosP1xccyp4XFxzKikvLCAvXig/Oiw/XFxzKnlcXHMqKS8sIC9eKD86LD9cXHMqdXBcXHMqKS8sIC9eKD86LD9cXHMqZG93blxccyopLywgL14oPzpcXClcXHMqKS8sIC9eKD86XFxzKlt4bzxdPy0tK1steG8+XVxccyopLywgL14oPzpcXHMqW3hvPF0/PT0rWz14bz5dXFxzKikvLCAvXig/OlxccypbeG88XT8tP1xcListW3hvPl0/XFxzKikvLCAvXig/Olxccyp+fltcXH5dK1xccyopLywgL14oPzpcXHMqW3hvPF0/LS1cXHMqKS8sIC9eKD86XFxzKlt4bzxdPz09XFxzKikvLCAvXig/OlxccypbeG88XT8tXFwuXFxzKikvLCAvXig/OltcIl1bYF0pLywgL14oPzpbXCJdKS8sIC9eKD86XFxzKlt4bzxdPy0tK1steG8+XVxccyopLywgL14oPzpcXHMqW3hvPF0/PT0rWz14bz5dXFxzKikvLCAvXig/OlxccypbeG88XT8tP1xcListW3hvPl0/XFxzKikvLCAvXig/OjpcXGQrKS9dLFxuICAgICAgY29uZGl0aW9uczogeyBcIlNUWUxFX0RFRklOSVRJT05cIjogeyBcInJ1bGVzXCI6IFsyOV0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiU1RZTEVfU1RNTlRcIjogeyBcInJ1bGVzXCI6IFsyOF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiQ0xBU1NERUZJRFwiOiB7IFwicnVsZXNcIjogWzIzXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJDTEFTU0RFRlwiOiB7IFwicnVsZXNcIjogWzIxLCAyMl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiQ0xBU1NfU1RZTEVcIjogeyBcInJ1bGVzXCI6IFsyNl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiQ0xBU1NcIjogeyBcInJ1bGVzXCI6IFsyNV0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiTExBQkVMXCI6IHsgXCJydWxlc1wiOiBbMTAwLCAxMDEsIDEwMiwgMTAzLCAxMDRdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIkFSUk9XX0RJUlwiOiB7IFwicnVsZXNcIjogWzg2LCA4NywgODgsIDg5LCA5MCwgOTEsIDkyXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJCTE9DS19BUlJPV1wiOiB7IFwicnVsZXNcIjogWzc3LCA4MiwgODVdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcIk5PREVcIjogeyBcInJ1bGVzXCI6IFszOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDc4LCA4MV0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwibWRfc3RyaW5nXCI6IHsgXCJydWxlc1wiOiBbMTAsIDExLCA3OSwgODBdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcInNwYWNlXCI6IHsgXCJydWxlc1wiOiBbXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJzdHJpbmdcIjogeyBcInJ1bGVzXCI6IFsxMywgMTQsIDgzLCA4NF0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX2Rlc2NyX211bHRpbGluZVwiOiB7IFwicnVsZXNcIjogWzM1LCAzNl0sIFwiaW5jbHVzaXZlXCI6IGZhbHNlIH0sIFwiYWNjX2Rlc2NyXCI6IHsgXCJydWxlc1wiOiBbMzNdLCBcImluY2x1c2l2ZVwiOiBmYWxzZSB9LCBcImFjY190aXRsZVwiOiB7IFwicnVsZXNcIjogWzMxXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTIsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDI0LCAyNywgMzAsIDMyLCAzNCwgMzcsIDU1LCA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA5MywgOTQsIDk1LCA5NiwgOTcsIDk4LCA5OSwgMTA1XSwgXCJpbmNsdXNpdmVcIjogdHJ1ZSB9IH1cbiAgICB9O1xuICAgIHJldHVybiBsZXhlcjI7XG4gIH0oKTtcbiAgcGFyc2VyMi5sZXhlciA9IGxleGVyO1xuICBmdW5jdGlvbiBQYXJzZXIoKSB7XG4gICAgdGhpcy55eSA9IHt9O1xuICB9XG4gIFBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXIyO1xuICBwYXJzZXIyLlBhcnNlciA9IFBhcnNlcjtcbiAgcmV0dXJuIG5ldyBQYXJzZXIoKTtcbn0oKTtcbnBhcnNlci5wYXJzZXIgPSBwYXJzZXI7XG5jb25zdCBwYXJzZXIkMSA9IHBhcnNlcjtcbmxldCBibG9ja0RhdGFiYXNlID0ge307XG5sZXQgZWRnZUxpc3QgPSBbXTtcbmxldCBlZGdlQ291bnQgPSB7fTtcbmNvbnN0IENPTE9SX0tFWVdPUkQgPSBcImNvbG9yXCI7XG5jb25zdCBGSUxMX0tFWVdPUkQgPSBcImZpbGxcIjtcbmNvbnN0IEJHX0ZJTEwgPSBcImJnRmlsbFwiO1xuY29uc3QgU1RZTEVDTEFTU19TRVAgPSBcIixcIjtcbmNvbnN0IGNvbmZpZyA9IGdldENvbmZpZygpO1xubGV0IGNsYXNzZXMgPSB7fTtcbmNvbnN0IHNhbml0aXplVGV4dCA9ICh0eHQpID0+IGNvbW1vbi5zYW5pdGl6ZVRleHQodHh0LCBjb25maWcpO1xuY29uc3QgYWRkU3R5bGVDbGFzcyA9IGZ1bmN0aW9uKGlkLCBzdHlsZUF0dHJpYnV0ZXMgPSBcIlwiKSB7XG4gIGlmIChjbGFzc2VzW2lkXSA9PT0gdm9pZCAwKSB7XG4gICAgY2xhc3Nlc1tpZF0gPSB7IGlkLCBzdHlsZXM6IFtdLCB0ZXh0U3R5bGVzOiBbXSB9O1xuICB9XG4gIGNvbnN0IGZvdW5kQ2xhc3MgPSBjbGFzc2VzW2lkXTtcbiAgaWYgKHN0eWxlQXR0cmlidXRlcyAhPT0gdm9pZCAwICYmIHN0eWxlQXR0cmlidXRlcyAhPT0gbnVsbCkge1xuICAgIHN0eWxlQXR0cmlidXRlcy5zcGxpdChTVFlMRUNMQVNTX1NFUCkuZm9yRWFjaCgoYXR0cmliKSA9PiB7XG4gICAgICBjb25zdCBmaXhlZEF0dHJpYiA9IGF0dHJpYi5yZXBsYWNlKC8oW147XSopOy8sIFwiJDFcIikudHJpbSgpO1xuICAgICAgaWYgKGF0dHJpYi5tYXRjaChDT0xPUl9LRVlXT1JEKSkge1xuICAgICAgICBjb25zdCBuZXdTdHlsZTEgPSBmaXhlZEF0dHJpYi5yZXBsYWNlKEZJTExfS0VZV09SRCwgQkdfRklMTCk7XG4gICAgICAgIGNvbnN0IG5ld1N0eWxlMiA9IG5ld1N0eWxlMS5yZXBsYWNlKENPTE9SX0tFWVdPUkQsIEZJTExfS0VZV09SRCk7XG4gICAgICAgIGZvdW5kQ2xhc3MudGV4dFN0eWxlcy5wdXNoKG5ld1N0eWxlMik7XG4gICAgICB9XG4gICAgICBmb3VuZENsYXNzLnN0eWxlcy5wdXNoKGZpeGVkQXR0cmliKTtcbiAgICB9KTtcbiAgfVxufTtcbmNvbnN0IGFkZFN0eWxlMk5vZGUgPSBmdW5jdGlvbihpZCwgc3R5bGVzID0gXCJcIikge1xuICBjb25zdCBmb3VuZEJsb2NrID0gYmxvY2tEYXRhYmFzZVtpZF07XG4gIGlmIChzdHlsZXMgIT09IHZvaWQgMCAmJiBzdHlsZXMgIT09IG51bGwpIHtcbiAgICBmb3VuZEJsb2NrLnN0eWxlcyA9IHN0eWxlcy5zcGxpdChTVFlMRUNMQVNTX1NFUCk7XG4gIH1cbn07XG5jb25zdCBzZXRDc3NDbGFzcyA9IGZ1bmN0aW9uKGl0ZW1JZHMsIGNzc0NsYXNzTmFtZSkge1xuICBpdGVtSWRzLnNwbGl0KFwiLFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7XG4gICAgbGV0IGZvdW5kQmxvY2sgPSBibG9ja0RhdGFiYXNlW2lkXTtcbiAgICBpZiAoZm91bmRCbG9jayA9PT0gdm9pZCAwKSB7XG4gICAgICBjb25zdCB0cmltbWVkSWQgPSBpZC50cmltKCk7XG4gICAgICBibG9ja0RhdGFiYXNlW3RyaW1tZWRJZF0gPSB7IGlkOiB0cmltbWVkSWQsIHR5cGU6IFwibmFcIiwgY2hpbGRyZW46IFtdIH07XG4gICAgICBmb3VuZEJsb2NrID0gYmxvY2tEYXRhYmFzZVt0cmltbWVkSWRdO1xuICAgIH1cbiAgICBpZiAoIWZvdW5kQmxvY2suY2xhc3Nlcykge1xuICAgICAgZm91bmRCbG9jay5jbGFzc2VzID0gW107XG4gICAgfVxuICAgIGZvdW5kQmxvY2suY2xhc3Nlcy5wdXNoKGNzc0NsYXNzTmFtZSk7XG4gIH0pO1xufTtcbmNvbnN0IHBvcHVsYXRlQmxvY2tEYXRhYmFzZSA9IChfYmxvY2tMaXN0LCBwYXJlbnQpID0+IHtcbiAgY29uc3QgYmxvY2tMaXN0ID0gX2Jsb2NrTGlzdC5mbGF0KCk7XG4gIGNvbnN0IGNoaWxkcmVuID0gW107XG4gIGZvciAoY29uc3QgYmxvY2sgb2YgYmxvY2tMaXN0KSB7XG4gICAgaWYgKGJsb2NrLmxhYmVsKSB7XG4gICAgICBibG9jay5sYWJlbCA9IHNhbml0aXplVGV4dChibG9jay5sYWJlbCk7XG4gICAgfVxuICAgIGlmIChibG9jay50eXBlID09PSBcImNsYXNzRGVmXCIpIHtcbiAgICAgIGFkZFN0eWxlQ2xhc3MoYmxvY2suaWQsIGJsb2NrLmNzcyk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGJsb2NrLnR5cGUgPT09IFwiYXBwbHlDbGFzc1wiKSB7XG4gICAgICBzZXRDc3NDbGFzcyhibG9jay5pZCwgKGJsb2NrID09IG51bGwgPyB2b2lkIDAgOiBibG9jay5zdHlsZUNsYXNzKSB8fCBcIlwiKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoYmxvY2sudHlwZSA9PT0gXCJhcHBseVN0eWxlc1wiKSB7XG4gICAgICBpZiAoYmxvY2sgPT0gbnVsbCA/IHZvaWQgMCA6IGJsb2NrLnN0eWxlc1N0cikge1xuICAgICAgICBhZGRTdHlsZTJOb2RlKGJsb2NrLmlkLCBibG9jayA9PSBudWxsID8gdm9pZCAwIDogYmxvY2suc3R5bGVzU3RyKTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoYmxvY2sudHlwZSA9PT0gXCJjb2x1bW4tc2V0dGluZ1wiKSB7XG4gICAgICBwYXJlbnQuY29sdW1ucyA9IGJsb2NrLmNvbHVtbnMgfHwgLTE7XG4gICAgfSBlbHNlIGlmIChibG9jay50eXBlID09PSBcImVkZ2VcIikge1xuICAgICAgaWYgKGVkZ2VDb3VudFtibG9jay5pZF0pIHtcbiAgICAgICAgZWRnZUNvdW50W2Jsb2NrLmlkXSsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWRnZUNvdW50W2Jsb2NrLmlkXSA9IDE7XG4gICAgICB9XG4gICAgICBibG9jay5pZCA9IGVkZ2VDb3VudFtibG9jay5pZF0gKyBcIi1cIiArIGJsb2NrLmlkO1xuICAgICAgZWRnZUxpc3QucHVzaChibG9jayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghYmxvY2subGFiZWwpIHtcbiAgICAgICAgaWYgKGJsb2NrLnR5cGUgPT09IFwiY29tcG9zaXRlXCIpIHtcbiAgICAgICAgICBibG9jay5sYWJlbCA9IFwiXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmxvY2subGFiZWwgPSBibG9jay5pZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgbmV3QmxvY2sgPSAhYmxvY2tEYXRhYmFzZVtibG9jay5pZF07XG4gICAgICBpZiAobmV3QmxvY2spIHtcbiAgICAgICAgYmxvY2tEYXRhYmFzZVtibG9jay5pZF0gPSBibG9jaztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChibG9jay50eXBlICE9PSBcIm5hXCIpIHtcbiAgICAgICAgICBibG9ja0RhdGFiYXNlW2Jsb2NrLmlkXS50eXBlID0gYmxvY2sudHlwZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYmxvY2subGFiZWwgIT09IGJsb2NrLmlkKSB7XG4gICAgICAgICAgYmxvY2tEYXRhYmFzZVtibG9jay5pZF0ubGFiZWwgPSBibG9jay5sYWJlbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGJsb2NrLmNoaWxkcmVuKSB7XG4gICAgICAgIHBvcHVsYXRlQmxvY2tEYXRhYmFzZShibG9jay5jaGlsZHJlbiwgYmxvY2spO1xuICAgICAgfVxuICAgICAgaWYgKGJsb2NrLnR5cGUgPT09IFwic3BhY2VcIikge1xuICAgICAgICBjb25zdCB3ID0gYmxvY2sud2lkdGggfHwgMTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB3OyBqKyspIHtcbiAgICAgICAgICBjb25zdCBuZXdCbG9jazIgPSBjbG9uZShibG9jayk7XG4gICAgICAgICAgbmV3QmxvY2syLmlkID0gbmV3QmxvY2syLmlkICsgXCItXCIgKyBqO1xuICAgICAgICAgIGJsb2NrRGF0YWJhc2VbbmV3QmxvY2syLmlkXSA9IG5ld0Jsb2NrMjtcbiAgICAgICAgICBjaGlsZHJlbi5wdXNoKG5ld0Jsb2NrMik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobmV3QmxvY2spIHtcbiAgICAgICAgY2hpbGRyZW4ucHVzaChibG9jayk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHBhcmVudC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xufTtcbmxldCBibG9ja3MgPSBbXTtcbmxldCByb290QmxvY2sgPSB7IGlkOiBcInJvb3RcIiwgdHlwZTogXCJjb21wb3NpdGVcIiwgY2hpbGRyZW46IFtdLCBjb2x1bW5zOiAtMSB9O1xuY29uc3QgY2xlYXIgPSAoKSA9PiB7XG4gIGxvZy5kZWJ1ZyhcIkNsZWFyIGNhbGxlZFwiKTtcbiAgY2xlYXIkMSgpO1xuICByb290QmxvY2sgPSB7IGlkOiBcInJvb3RcIiwgdHlwZTogXCJjb21wb3NpdGVcIiwgY2hpbGRyZW46IFtdLCBjb2x1bW5zOiAtMSB9O1xuICBibG9ja0RhdGFiYXNlID0geyByb290OiByb290QmxvY2sgfTtcbiAgYmxvY2tzID0gW107XG4gIGNsYXNzZXMgPSB7fTtcbiAgZWRnZUxpc3QgPSBbXTtcbiAgZWRnZUNvdW50ID0ge307XG59O1xuZnVuY3Rpb24gdHlwZVN0cjJUeXBlKHR5cGVTdHIpIHtcbiAgbG9nLmRlYnVnKFwidHlwZVN0cjJUeXBlXCIsIHR5cGVTdHIpO1xuICBzd2l0Y2ggKHR5cGVTdHIpIHtcbiAgICBjYXNlIFwiW11cIjpcbiAgICAgIHJldHVybiBcInNxdWFyZVwiO1xuICAgIGNhc2UgXCIoKVwiOlxuICAgICAgbG9nLmRlYnVnKFwid2UgaGF2ZSBhIHJvdW5kXCIpO1xuICAgICAgcmV0dXJuIFwicm91bmRcIjtcbiAgICBjYXNlIFwiKCgpKVwiOlxuICAgICAgcmV0dXJuIFwiY2lyY2xlXCI7XG4gICAgY2FzZSBcIj5dXCI6XG4gICAgICByZXR1cm4gXCJyZWN0X2xlZnRfaW52X2Fycm93XCI7XG4gICAgY2FzZSBcInt9XCI6XG4gICAgICByZXR1cm4gXCJkaWFtb25kXCI7XG4gICAgY2FzZSBcInt7fX1cIjpcbiAgICAgIHJldHVybiBcImhleGFnb25cIjtcbiAgICBjYXNlIFwiKFtdKVwiOlxuICAgICAgcmV0dXJuIFwic3RhZGl1bVwiO1xuICAgIGNhc2UgXCJbW11dXCI6XG4gICAgICByZXR1cm4gXCJzdWJyb3V0aW5lXCI7XG4gICAgY2FzZSBcIlsoKV1cIjpcbiAgICAgIHJldHVybiBcImN5bGluZGVyXCI7XG4gICAgY2FzZSBcIigoKCkpKVwiOlxuICAgICAgcmV0dXJuIFwiZG91YmxlY2lyY2xlXCI7XG4gICAgY2FzZSBcIlsvL11cIjpcbiAgICAgIHJldHVybiBcImxlYW5fcmlnaHRcIjtcbiAgICBjYXNlIFwiW1xcXFxcXFxcXVwiOlxuICAgICAgcmV0dXJuIFwibGVhbl9sZWZ0XCI7XG4gICAgY2FzZSBcIlsvXFxcXF1cIjpcbiAgICAgIHJldHVybiBcInRyYXBlem9pZFwiO1xuICAgIGNhc2UgXCJbXFxcXC9dXCI6XG4gICAgICByZXR1cm4gXCJpbnZfdHJhcGV6b2lkXCI7XG4gICAgY2FzZSBcIjxbXT5cIjpcbiAgICAgIHJldHVybiBcImJsb2NrX2Fycm93XCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBcIm5hXCI7XG4gIH1cbn1cbmZ1bmN0aW9uIGVkZ2VUeXBlU3RyMlR5cGUodHlwZVN0cikge1xuICBsb2cuZGVidWcoXCJ0eXBlU3RyMlR5cGVcIiwgdHlwZVN0cik7XG4gIHN3aXRjaCAodHlwZVN0cikge1xuICAgIGNhc2UgXCI9PVwiOlxuICAgICAgcmV0dXJuIFwidGhpY2tcIjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFwibm9ybWFsXCI7XG4gIH1cbn1cbmZ1bmN0aW9uIGVkZ2VTdHJUb0VkZ2VEYXRhKHR5cGVTdHIpIHtcbiAgc3dpdGNoICh0eXBlU3RyLnRyaW0oKSkge1xuICAgIGNhc2UgXCItLXhcIjpcbiAgICAgIHJldHVybiBcImFycm93X2Nyb3NzXCI7XG4gICAgY2FzZSBcIi0tb1wiOlxuICAgICAgcmV0dXJuIFwiYXJyb3dfY2lyY2xlXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBcImFycm93X3BvaW50XCI7XG4gIH1cbn1cbmxldCBjbnQgPSAwO1xuY29uc3QgZ2VuZXJhdGVJZCA9ICgpID0+IHtcbiAgY250Kys7XG4gIHJldHVybiBcImlkLVwiICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDEyKSArIFwiLVwiICsgY250O1xufTtcbmNvbnN0IHNldEhpZXJhcmNoeSA9IChibG9jaykgPT4ge1xuICByb290QmxvY2suY2hpbGRyZW4gPSBibG9jaztcbiAgcG9wdWxhdGVCbG9ja0RhdGFiYXNlKGJsb2NrLCByb290QmxvY2spO1xuICBibG9ja3MgPSByb290QmxvY2suY2hpbGRyZW47XG59O1xuY29uc3QgZ2V0Q29sdW1ucyA9IChibG9ja0lkKSA9PiB7XG4gIGNvbnN0IGJsb2NrID0gYmxvY2tEYXRhYmFzZVtibG9ja0lkXTtcbiAgaWYgKCFibG9jaykge1xuICAgIHJldHVybiAtMTtcbiAgfVxuICBpZiAoYmxvY2suY29sdW1ucykge1xuICAgIHJldHVybiBibG9jay5jb2x1bW5zO1xuICB9XG4gIGlmICghYmxvY2suY2hpbGRyZW4pIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cbiAgcmV0dXJuIGJsb2NrLmNoaWxkcmVuLmxlbmd0aDtcbn07XG5jb25zdCBnZXRCbG9ja3NGbGF0ID0gKCkgPT4ge1xuICByZXR1cm4gWy4uLk9iamVjdC52YWx1ZXMoYmxvY2tEYXRhYmFzZSldO1xufTtcbmNvbnN0IGdldEJsb2NrcyA9ICgpID0+IHtcbiAgcmV0dXJuIGJsb2NrcyB8fCBbXTtcbn07XG5jb25zdCBnZXRFZGdlcyA9ICgpID0+IHtcbiAgcmV0dXJuIGVkZ2VMaXN0O1xufTtcbmNvbnN0IGdldEJsb2NrID0gKGlkKSA9PiB7XG4gIHJldHVybiBibG9ja0RhdGFiYXNlW2lkXTtcbn07XG5jb25zdCBzZXRCbG9jayA9IChibG9jaykgPT4ge1xuICBibG9ja0RhdGFiYXNlW2Jsb2NrLmlkXSA9IGJsb2NrO1xufTtcbmNvbnN0IGdldExvZ2dlciA9ICgpID0+IGNvbnNvbGU7XG5jb25zdCBnZXRDbGFzc2VzJDEgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGNsYXNzZXM7XG59O1xuY29uc3QgZGIgPSB7XG4gIGdldENvbmZpZzogKCkgPT4gZ2V0Q29uZmlnJDEoKS5ibG9jayxcbiAgdHlwZVN0cjJUeXBlLFxuICBlZGdlVHlwZVN0cjJUeXBlLFxuICBlZGdlU3RyVG9FZGdlRGF0YSxcbiAgZ2V0TG9nZ2VyLFxuICBnZXRCbG9ja3NGbGF0LFxuICBnZXRCbG9ja3MsXG4gIGdldEVkZ2VzLFxuICBzZXRIaWVyYXJjaHksXG4gIGdldEJsb2NrLFxuICBzZXRCbG9jayxcbiAgZ2V0Q29sdW1ucyxcbiAgZ2V0Q2xhc3NlczogZ2V0Q2xhc3NlcyQxLFxuICBjbGVhcixcbiAgZ2VuZXJhdGVJZFxufTtcbmNvbnN0IGRiJDEgPSBkYjtcbmNvbnN0IGZhZGUgPSAoY29sb3IsIG9wYWNpdHkpID0+IHtcbiAgY29uc3QgY2hhbm5lbCA9IGtocm9tYS5jaGFubmVsO1xuICBjb25zdCByID0gY2hhbm5lbChjb2xvciwgXCJyXCIpO1xuICBjb25zdCBnID0gY2hhbm5lbChjb2xvciwgXCJnXCIpO1xuICBjb25zdCBiID0gY2hhbm5lbChjb2xvciwgXCJiXCIpO1xuICByZXR1cm4ga2hyb21hLnJnYmEociwgZywgYiwgb3BhY2l0eSk7XG59O1xuY29uc3QgZ2V0U3R5bGVzID0gKG9wdGlvbnMpID0+IGAubGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiAke29wdGlvbnMuZm9udEZhbWlseX07XG4gICAgY29sb3I6ICR7b3B0aW9ucy5ub2RlVGV4dENvbG9yIHx8IG9wdGlvbnMudGV4dENvbG9yfTtcbiAgfVxuICAuY2x1c3Rlci1sYWJlbCB0ZXh0IHtcbiAgICBmaWxsOiAke29wdGlvbnMudGl0bGVDb2xvcn07XG4gIH1cbiAgLmNsdXN0ZXItbGFiZWwgc3BhbixwIHtcbiAgICBjb2xvcjogJHtvcHRpb25zLnRpdGxlQ29sb3J9O1xuICB9XG5cblxuXG4gIC5sYWJlbCB0ZXh0LHNwYW4scCB7XG4gICAgZmlsbDogJHtvcHRpb25zLm5vZGVUZXh0Q29sb3IgfHwgb3B0aW9ucy50ZXh0Q29sb3J9O1xuICAgIGNvbG9yOiAke29wdGlvbnMubm9kZVRleHRDb2xvciB8fCBvcHRpb25zLnRleHRDb2xvcn07XG4gIH1cblxuICAubm9kZSByZWN0LFxuICAubm9kZSBjaXJjbGUsXG4gIC5ub2RlIGVsbGlwc2UsXG4gIC5ub2RlIHBvbHlnb24sXG4gIC5ub2RlIHBhdGgge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5tYWluQmtnfTtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5ub2RlQm9yZGVyfTtcbiAgICBzdHJva2Utd2lkdGg6IDFweDtcbiAgfVxuICAuZmxvd2NoYXJ0LWxhYmVsIHRleHQge1xuICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7XG4gIH1cbiAgLy8gLmZsb3djaGFydC1sYWJlbCAudGV4dC1vdXRlci10c3BhbiB7XG4gIC8vICAgdGV4dC1hbmNob3I6IG1pZGRsZTtcbiAgLy8gfVxuICAvLyAuZmxvd2NoYXJ0LWxhYmVsIC50ZXh0LWlubmVyLXRzcGFuIHtcbiAgLy8gICB0ZXh0LWFuY2hvcjogc3RhcnQ7XG4gIC8vIH1cblxuICAubm9kZSAubGFiZWwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubm9kZS5jbGlja2FibGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC5hcnJvd2hlYWRQYXRoIHtcbiAgICBmaWxsOiAke29wdGlvbnMuYXJyb3doZWFkQ29sb3J9O1xuICB9XG5cbiAgLmVkZ2VQYXRoIC5wYXRoIHtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5saW5lQ29sb3J9O1xuICAgIHN0cm9rZS13aWR0aDogMi4wcHg7XG4gIH1cblxuICAuZmxvd2NoYXJ0LWxpbmsge1xuICAgIHN0cm9rZTogJHtvcHRpb25zLmxpbmVDb2xvcn07XG4gICAgZmlsbDogbm9uZTtcbiAgfVxuXG4gIC5lZGdlTGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7b3B0aW9ucy5lZGdlTGFiZWxCYWNrZ3JvdW5kfTtcbiAgICByZWN0IHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7b3B0aW9ucy5lZGdlTGFiZWxCYWNrZ3JvdW5kfTtcbiAgICAgIGZpbGw6ICR7b3B0aW9ucy5lZGdlTGFiZWxCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLyogRm9yIGh0bWwgbGFiZWxzIG9ubHkgKi9cbiAgLmxhYmVsQmtnIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2ZhZGUob3B0aW9ucy5lZGdlTGFiZWxCYWNrZ3JvdW5kLCAwLjUpfTtcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOlxuICB9XG5cbiAgLm5vZGUgLmNsdXN0ZXIge1xuICAgIC8vIGZpbGw6ICR7ZmFkZShvcHRpb25zLm1haW5Ca2csIDAuNSl9O1xuICAgIGZpbGw6ICR7ZmFkZShvcHRpb25zLmNsdXN0ZXJCa2csIDAuNSl9O1xuICAgIHN0cm9rZTogJHtmYWRlKG9wdGlvbnMuY2x1c3RlckJvcmRlciwgMC4yKX07XG4gICAgYm94LXNoYWRvdzogcmdiYSg1MCwgNTAsIDkzLCAwLjI1KSAwcHggMTNweCAyN3B4IC01cHgsIHJnYmEoMCwgMCwgMCwgMC4zKSAwcHggOHB4IDE2cHggLThweDtcbiAgICBzdHJva2Utd2lkdGg6IDFweDtcbiAgfVxuXG4gIC5jbHVzdGVyIHRleHQge1xuICAgIGZpbGw6ICR7b3B0aW9ucy50aXRsZUNvbG9yfTtcbiAgfVxuXG4gIC5jbHVzdGVyIHNwYW4scCB7XG4gICAgY29sb3I6ICR7b3B0aW9ucy50aXRsZUNvbG9yfTtcbiAgfVxuICAvKiAuY2x1c3RlciBkaXYge1xuICAgIGNvbG9yOiAke29wdGlvbnMudGl0bGVDb2xvcn07XG4gIH0gKi9cblxuICBkaXYubWVybWFpZFRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgZm9udC1mYW1pbHk6ICR7b3B0aW9ucy5mb250RmFtaWx5fTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYmFja2dyb3VuZDogJHtvcHRpb25zLnRlcnRpYXJ5Q29sb3J9O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7b3B0aW9ucy5ib3JkZXIyfTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTAwO1xuICB9XG5cbiAgLmZsb3djaGFydFRpdGxlVGV4dCB7XG4gICAgdGV4dC1hbmNob3I6IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZmlsbDogJHtvcHRpb25zLnRleHRDb2xvcn07XG4gIH1cbmA7XG5jb25zdCBmbG93U3R5bGVzID0gZ2V0U3R5bGVzO1xuZnVuY3Rpb24gZ2V0Tm9kZUZyb21CbG9jayhibG9jaywgZGIyLCBwb3NpdGlvbmVkID0gZmFsc2UpIHtcbiAgdmFyIF9hMiwgX2IyLCBfYztcbiAgY29uc3QgdmVydGV4ID0gYmxvY2s7XG4gIGxldCBjbGFzc1N0ciA9IFwiZGVmYXVsdFwiO1xuICBpZiAoKCgoX2EyID0gdmVydGV4ID09IG51bGwgPyB2b2lkIDAgOiB2ZXJ0ZXguY2xhc3NlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9hMi5sZW5ndGgpIHx8IDApID4gMCkge1xuICAgIGNsYXNzU3RyID0gKCh2ZXJ0ZXggPT0gbnVsbCA/IHZvaWQgMCA6IHZlcnRleC5jbGFzc2VzKSB8fCBbXSkuam9pbihcIiBcIik7XG4gIH1cbiAgY2xhc3NTdHIgPSBjbGFzc1N0ciArIFwiIGZsb3djaGFydC1sYWJlbFwiO1xuICBsZXQgcmFkaXVzID0gMDtcbiAgbGV0IHNoYXBlID0gXCJcIjtcbiAgbGV0IHBhZGRpbmcyO1xuICBzd2l0Y2ggKHZlcnRleC50eXBlKSB7XG4gICAgY2FzZSBcInJvdW5kXCI6XG4gICAgICByYWRpdXMgPSA1O1xuICAgICAgc2hhcGUgPSBcInJlY3RcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjb21wb3NpdGVcIjpcbiAgICAgIHJhZGl1cyA9IDA7XG4gICAgICBzaGFwZSA9IFwiY29tcG9zaXRlXCI7XG4gICAgICBwYWRkaW5nMiA9IDA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwic3F1YXJlXCI6XG4gICAgICBzaGFwZSA9IFwicmVjdFwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImRpYW1vbmRcIjpcbiAgICAgIHNoYXBlID0gXCJxdWVzdGlvblwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImhleGFnb25cIjpcbiAgICAgIHNoYXBlID0gXCJoZXhhZ29uXCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiYmxvY2tfYXJyb3dcIjpcbiAgICAgIHNoYXBlID0gXCJibG9ja19hcnJvd1wiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcIm9kZFwiOlxuICAgICAgc2hhcGUgPSBcInJlY3RfbGVmdF9pbnZfYXJyb3dcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJsZWFuX3JpZ2h0XCI6XG4gICAgICBzaGFwZSA9IFwibGVhbl9yaWdodFwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImxlYW5fbGVmdFwiOlxuICAgICAgc2hhcGUgPSBcImxlYW5fbGVmdFwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcInRyYXBlem9pZFwiOlxuICAgICAgc2hhcGUgPSBcInRyYXBlem9pZFwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImludl90cmFwZXpvaWRcIjpcbiAgICAgIHNoYXBlID0gXCJpbnZfdHJhcGV6b2lkXCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwicmVjdF9sZWZ0X2ludl9hcnJvd1wiOlxuICAgICAgc2hhcGUgPSBcInJlY3RfbGVmdF9pbnZfYXJyb3dcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjaXJjbGVcIjpcbiAgICAgIHNoYXBlID0gXCJjaXJjbGVcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJlbGxpcHNlXCI6XG4gICAgICBzaGFwZSA9IFwiZWxsaXBzZVwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcInN0YWRpdW1cIjpcbiAgICAgIHNoYXBlID0gXCJzdGFkaXVtXCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwic3Vicm91dGluZVwiOlxuICAgICAgc2hhcGUgPSBcInN1YnJvdXRpbmVcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjeWxpbmRlclwiOlxuICAgICAgc2hhcGUgPSBcImN5bGluZGVyXCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZ3JvdXBcIjpcbiAgICAgIHNoYXBlID0gXCJyZWN0XCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZG91YmxlY2lyY2xlXCI6XG4gICAgICBzaGFwZSA9IFwiZG91YmxlY2lyY2xlXCI7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgc2hhcGUgPSBcInJlY3RcIjtcbiAgfVxuICBjb25zdCBzdHlsZXMgPSBnZXRTdHlsZXNGcm9tQXJyYXkoKHZlcnRleCA9PSBudWxsID8gdm9pZCAwIDogdmVydGV4LnN0eWxlcykgfHwgW10pO1xuICBjb25zdCB2ZXJ0ZXhUZXh0ID0gdmVydGV4LmxhYmVsO1xuICBjb25zdCBib3VuZHMgPSB2ZXJ0ZXguc2l6ZSB8fCB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAsIHg6IDAsIHk6IDAgfTtcbiAgY29uc3Qgbm9kZSA9IHtcbiAgICBsYWJlbFN0eWxlOiBzdHlsZXMubGFiZWxTdHlsZSxcbiAgICBzaGFwZSxcbiAgICBsYWJlbFRleHQ6IHZlcnRleFRleHQsXG4gICAgcng6IHJhZGl1cyxcbiAgICByeTogcmFkaXVzLFxuICAgIGNsYXNzOiBjbGFzc1N0cixcbiAgICBzdHlsZTogc3R5bGVzLnN0eWxlLFxuICAgIGlkOiB2ZXJ0ZXguaWQsXG4gICAgZGlyZWN0aW9uczogdmVydGV4LmRpcmVjdGlvbnMsXG4gICAgd2lkdGg6IGJvdW5kcy53aWR0aCxcbiAgICBoZWlnaHQ6IGJvdW5kcy5oZWlnaHQsXG4gICAgeDogYm91bmRzLngsXG4gICAgeTogYm91bmRzLnksXG4gICAgcG9zaXRpb25lZCxcbiAgICBpbnRlcnNlY3Q6IHZvaWQgMCxcbiAgICB0eXBlOiB2ZXJ0ZXgudHlwZSxcbiAgICBwYWRkaW5nOiBwYWRkaW5nMiA/PyAoKChfYyA9IChfYjIgPSBnZXRDb25maWckMSgpKSA9PSBudWxsID8gdm9pZCAwIDogX2IyLmJsb2NrKSA9PSBudWxsID8gdm9pZCAwIDogX2MucGFkZGluZykgfHwgMClcbiAgfTtcbiAgcmV0dXJuIG5vZGU7XG59XG5hc3luYyBmdW5jdGlvbiBjYWxjdWxhdGVCbG9ja1NpemUoZWxlbSwgYmxvY2ssIGRiMikge1xuICBjb25zdCBub2RlID0gZ2V0Tm9kZUZyb21CbG9jayhibG9jaywgZGIyLCBmYWxzZSk7XG4gIGlmIChub2RlLnR5cGUgPT09IFwiZ3JvdXBcIikge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBub2RlRWwgPSBhd2FpdCBpbnNlcnROb2RlKGVsZW0sIG5vZGUpO1xuICBjb25zdCBib3VuZGluZ0JveCA9IG5vZGVFbC5ub2RlKCkuZ2V0QkJveCgpO1xuICBjb25zdCBvYmogPSBkYjIuZ2V0QmxvY2sobm9kZS5pZCk7XG4gIG9iai5zaXplID0geyB3aWR0aDogYm91bmRpbmdCb3gud2lkdGgsIGhlaWdodDogYm91bmRpbmdCb3guaGVpZ2h0LCB4OiAwLCB5OiAwLCBub2RlOiBub2RlRWwgfTtcbiAgZGIyLnNldEJsb2NrKG9iaik7XG4gIG5vZGVFbC5yZW1vdmUoKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGluc2VydEJsb2NrUG9zaXRpb25lZChlbGVtLCBibG9jaywgZGIyKSB7XG4gIGNvbnN0IG5vZGUgPSBnZXROb2RlRnJvbUJsb2NrKGJsb2NrLCBkYjIsIHRydWUpO1xuICBjb25zdCBvYmogPSBkYjIuZ2V0QmxvY2sobm9kZS5pZCk7XG4gIGlmIChvYmoudHlwZSAhPT0gXCJzcGFjZVwiKSB7XG4gICAgYXdhaXQgaW5zZXJ0Tm9kZShlbGVtLCBub2RlKTtcbiAgICBibG9jay5pbnRlcnNlY3QgPSBub2RlID09IG51bGwgPyB2b2lkIDAgOiBub2RlLmludGVyc2VjdDtcbiAgICBwb3NpdGlvbk5vZGUobm9kZSk7XG4gIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIHBlcmZvcm1PcGVyYXRpb25zKGVsZW0sIGJsb2NrczIsIGRiMiwgb3BlcmF0aW9uKSB7XG4gIGZvciAoY29uc3QgYmxvY2sgb2YgYmxvY2tzMikge1xuICAgIGF3YWl0IG9wZXJhdGlvbihlbGVtLCBibG9jaywgZGIyKTtcbiAgICBpZiAoYmxvY2suY2hpbGRyZW4pIHtcbiAgICAgIGF3YWl0IHBlcmZvcm1PcGVyYXRpb25zKGVsZW0sIGJsb2NrLmNoaWxkcmVuLCBkYjIsIG9wZXJhdGlvbik7XG4gICAgfVxuICB9XG59XG5hc3luYyBmdW5jdGlvbiBjYWxjdWxhdGVCbG9ja1NpemVzKGVsZW0sIGJsb2NrczIsIGRiMikge1xuICBhd2FpdCBwZXJmb3JtT3BlcmF0aW9ucyhlbGVtLCBibG9ja3MyLCBkYjIsIGNhbGN1bGF0ZUJsb2NrU2l6ZSk7XG59XG5hc3luYyBmdW5jdGlvbiBpbnNlcnRCbG9ja3MoZWxlbSwgYmxvY2tzMiwgZGIyKSB7XG4gIGF3YWl0IHBlcmZvcm1PcGVyYXRpb25zKGVsZW0sIGJsb2NrczIsIGRiMiwgaW5zZXJ0QmxvY2tQb3NpdGlvbmVkKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGluc2VydEVkZ2VzKGVsZW0sIGVkZ2VzLCBibG9ja3MyLCBkYjIsIGlkKSB7XG4gIGNvbnN0IGcgPSBuZXcgZ3JhcGhsaWIuR3JhcGgoe1xuICAgIG11bHRpZ3JhcGg6IHRydWUsXG4gICAgY29tcG91bmQ6IHRydWVcbiAgfSk7XG4gIGcuc2V0R3JhcGgoe1xuICAgIHJhbmtkaXI6IFwiVEJcIixcbiAgICBub2Rlc2VwOiAxMCxcbiAgICByYW5rc2VwOiAxMCxcbiAgICBtYXJnaW54OiA4LFxuICAgIG1hcmdpbnk6IDhcbiAgfSk7XG4gIGZvciAoY29uc3QgYmxvY2sgb2YgYmxvY2tzMikge1xuICAgIGlmIChibG9jay5zaXplKSB7XG4gICAgICBnLnNldE5vZGUoYmxvY2suaWQsIHtcbiAgICAgICAgd2lkdGg6IGJsb2NrLnNpemUud2lkdGgsXG4gICAgICAgIGhlaWdodDogYmxvY2suc2l6ZS5oZWlnaHQsXG4gICAgICAgIGludGVyc2VjdDogYmxvY2suaW50ZXJzZWN0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgZm9yIChjb25zdCBlZGdlIG9mIGVkZ2VzKSB7XG4gICAgaWYgKGVkZ2Uuc3RhcnQgJiYgZWRnZS5lbmQpIHtcbiAgICAgIGNvbnN0IHN0YXJ0QmxvY2sgPSBkYjIuZ2V0QmxvY2soZWRnZS5zdGFydCk7XG4gICAgICBjb25zdCBlbmRCbG9jayA9IGRiMi5nZXRCbG9jayhlZGdlLmVuZCk7XG4gICAgICBpZiAoKHN0YXJ0QmxvY2sgPT0gbnVsbCA/IHZvaWQgMCA6IHN0YXJ0QmxvY2suc2l6ZSkgJiYgKGVuZEJsb2NrID09IG51bGwgPyB2b2lkIDAgOiBlbmRCbG9jay5zaXplKSkge1xuICAgICAgICBjb25zdCBzdGFydCA9IHN0YXJ0QmxvY2suc2l6ZTtcbiAgICAgICAgY29uc3QgZW5kID0gZW5kQmxvY2suc2l6ZTtcbiAgICAgICAgY29uc3QgcG9pbnRzID0gW1xuICAgICAgICAgIHsgeDogc3RhcnQueCwgeTogc3RhcnQueSB9LFxuICAgICAgICAgIHsgeDogc3RhcnQueCArIChlbmQueCAtIHN0YXJ0LngpIC8gMiwgeTogc3RhcnQueSArIChlbmQueSAtIHN0YXJ0LnkpIC8gMiB9LFxuICAgICAgICAgIHsgeDogZW5kLngsIHk6IGVuZC55IH1cbiAgICAgICAgXTtcbiAgICAgICAgYXdhaXQgaW5zZXJ0RWRnZShcbiAgICAgICAgICBlbGVtLFxuICAgICAgICAgIHsgdjogZWRnZS5zdGFydCwgdzogZWRnZS5lbmQsIG5hbWU6IGVkZ2UuaWQgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICAuLi5lZGdlLFxuICAgICAgICAgICAgYXJyb3dUeXBlRW5kOiBlZGdlLmFycm93VHlwZUVuZCxcbiAgICAgICAgICAgIGFycm93VHlwZVN0YXJ0OiBlZGdlLmFycm93VHlwZVN0YXJ0LFxuICAgICAgICAgICAgcG9pbnRzLFxuICAgICAgICAgICAgY2xhc3NlczogXCJlZGdlLXRoaWNrbmVzcy1ub3JtYWwgZWRnZS1wYXR0ZXJuLXNvbGlkIGZsb3djaGFydC1saW5rIExTLWExIExFLWIxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICBcImJsb2NrXCIsXG4gICAgICAgICAgZyxcbiAgICAgICAgICBpZFxuICAgICAgICApO1xuICAgICAgICBpZiAoZWRnZS5sYWJlbCkge1xuICAgICAgICAgIGF3YWl0IGluc2VydEVkZ2VMYWJlbChlbGVtLCB7XG4gICAgICAgICAgICAuLi5lZGdlLFxuICAgICAgICAgICAgbGFiZWw6IGVkZ2UubGFiZWwsXG4gICAgICAgICAgICBsYWJlbFN0eWxlOiBcInN0cm9rZTogIzMzMzsgc3Ryb2tlLXdpZHRoOiAxLjVweDtmaWxsOm5vbmU7XCIsXG4gICAgICAgICAgICBhcnJvd1R5cGVFbmQ6IGVkZ2UuYXJyb3dUeXBlRW5kLFxuICAgICAgICAgICAgYXJyb3dUeXBlU3RhcnQ6IGVkZ2UuYXJyb3dUeXBlU3RhcnQsXG4gICAgICAgICAgICBwb2ludHMsXG4gICAgICAgICAgICBjbGFzc2VzOiBcImVkZ2UtdGhpY2tuZXNzLW5vcm1hbCBlZGdlLXBhdHRlcm4tc29saWQgZmxvd2NoYXJ0LWxpbmsgTFMtYTEgTEUtYjFcIlxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGF3YWl0IHBvc2l0aW9uRWRnZUxhYmVsKFxuICAgICAgICAgICAgeyAuLi5lZGdlLCB4OiBwb2ludHNbMV0ueCwgeTogcG9pbnRzWzFdLnkgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3JpZ2luYWxQYXRoOiBwb2ludHNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5jb25zdCBwYWRkaW5nID0gKChfYiA9IChfYSA9IGdldENvbmZpZygpKSA9PSBudWxsID8gdm9pZCAwIDogX2EuYmxvY2spID09IG51bGwgPyB2b2lkIDAgOiBfYi5wYWRkaW5nKSB8fCA4O1xuZnVuY3Rpb24gY2FsY3VsYXRlQmxvY2tQb3NpdGlvbihjb2x1bW5zLCBwb3NpdGlvbikge1xuICBpZiAoY29sdW1ucyA9PT0gMCB8fCAhTnVtYmVyLmlzSW50ZWdlcihjb2x1bW5zKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNvbHVtbnMgbXVzdCBiZSBhbiBpbnRlZ2VyICE9PSAwLlwiKTtcbiAgfVxuICBpZiAocG9zaXRpb24gPCAwIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKHBvc2l0aW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlBvc2l0aW9uIG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlci5cIiArIHBvc2l0aW9uKTtcbiAgfVxuICBpZiAoY29sdW1ucyA8IDApIHtcbiAgICByZXR1cm4geyBweDogcG9zaXRpb24sIHB5OiAwIH07XG4gIH1cbiAgaWYgKGNvbHVtbnMgPT09IDEpIHtcbiAgICByZXR1cm4geyBweDogMCwgcHk6IHBvc2l0aW9uIH07XG4gIH1cbiAgY29uc3QgcHggPSBwb3NpdGlvbiAlIGNvbHVtbnM7XG4gIGNvbnN0IHB5ID0gTWF0aC5mbG9vcihwb3NpdGlvbiAvIGNvbHVtbnMpO1xuICByZXR1cm4geyBweCwgcHkgfTtcbn1cbmNvbnN0IGdldE1heENoaWxkU2l6ZSA9IChibG9jaykgPT4ge1xuICBsZXQgbWF4V2lkdGggPSAwO1xuICBsZXQgbWF4SGVpZ2h0ID0gMDtcbiAgZm9yIChjb25zdCBjaGlsZCBvZiBibG9jay5jaGlsZHJlbikge1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgeCwgeSB9ID0gY2hpbGQuc2l6ZSB8fCB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAsIHg6IDAsIHk6IDAgfTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBcImdldE1heENoaWxkU2l6ZSBhYmM5NSBjaGlsZDpcIixcbiAgICAgIGNoaWxkLmlkLFxuICAgICAgXCJ3aWR0aDpcIixcbiAgICAgIHdpZHRoLFxuICAgICAgXCJoZWlnaHQ6XCIsXG4gICAgICBoZWlnaHQsXG4gICAgICBcIng6XCIsXG4gICAgICB4LFxuICAgICAgXCJ5OlwiLFxuICAgICAgeSxcbiAgICAgIGNoaWxkLnR5cGVcbiAgICApO1xuICAgIGlmIChjaGlsZC50eXBlID09PSBcInNwYWNlXCIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAod2lkdGggPiBtYXhXaWR0aCkge1xuICAgICAgbWF4V2lkdGggPSB3aWR0aCAvIChibG9jay53aWR0aEluQ29sdW1ucyB8fCAxKTtcbiAgICB9XG4gICAgaWYgKGhlaWdodCA+IG1heEhlaWdodCkge1xuICAgICAgbWF4SGVpZ2h0ID0gaGVpZ2h0O1xuICAgIH1cbiAgfVxuICByZXR1cm4geyB3aWR0aDogbWF4V2lkdGgsIGhlaWdodDogbWF4SGVpZ2h0IH07XG59O1xuZnVuY3Rpb24gc2V0QmxvY2tTaXplcyhibG9jaywgZGIyLCBzaWJsaW5nV2lkdGggPSAwLCBzaWJsaW5nSGVpZ2h0ID0gMCkge1xuICB2YXIgX2EyLCBfYjIsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9pLCBfaiwgX2s7XG4gIGxvZy5kZWJ1ZyhcbiAgICBcInNldEJsb2NrU2l6ZXMgYWJjOTUgKHN0YXJ0KVwiLFxuICAgIGJsb2NrLmlkLFxuICAgIChfYTIgPSBibG9jayA9PSBudWxsID8gdm9pZCAwIDogYmxvY2suc2l6ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hMi54LFxuICAgIFwiYmxvY2sgd2lkdGggPVwiLFxuICAgIGJsb2NrID09IG51bGwgPyB2b2lkIDAgOiBibG9jay5zaXplLFxuICAgIFwic2llYmxpbmdXaWR0aFwiLFxuICAgIHNpYmxpbmdXaWR0aFxuICApO1xuICBpZiAoISgoX2IyID0gYmxvY2sgPT0gbnVsbCA/IHZvaWQgMCA6IGJsb2NrLnNpemUpID09IG51bGwgPyB2b2lkIDAgOiBfYjIud2lkdGgpKSB7XG4gICAgYmxvY2suc2l6ZSA9IHtcbiAgICAgIHdpZHRoOiBzaWJsaW5nV2lkdGgsXG4gICAgICBoZWlnaHQ6IHNpYmxpbmdIZWlnaHQsXG4gICAgICB4OiAwLFxuICAgICAgeTogMFxuICAgIH07XG4gIH1cbiAgbGV0IG1heFdpZHRoID0gMDtcbiAgbGV0IG1heEhlaWdodCA9IDA7XG4gIGlmICgoKF9jID0gYmxvY2suY2hpbGRyZW4pID09IG51bGwgPyB2b2lkIDAgOiBfYy5sZW5ndGgpID4gMCkge1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgYmxvY2suY2hpbGRyZW4pIHtcbiAgICAgIHNldEJsb2NrU2l6ZXMoY2hpbGQsIGRiMik7XG4gICAgfVxuICAgIGNvbnN0IGNoaWxkU2l6ZSA9IGdldE1heENoaWxkU2l6ZShibG9jayk7XG4gICAgbWF4V2lkdGggPSBjaGlsZFNpemUud2lkdGg7XG4gICAgbWF4SGVpZ2h0ID0gY2hpbGRTaXplLmhlaWdodDtcbiAgICBsb2cuZGVidWcoXCJzZXRCbG9ja1NpemVzIGFiYzk1IG1heFdpZHRoIG9mXCIsIGJsb2NrLmlkLCBcIjpzIGNoaWxkcmVuIGlzIFwiLCBtYXhXaWR0aCwgbWF4SGVpZ2h0KTtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGJsb2NrLmNoaWxkcmVuKSB7XG4gICAgICBpZiAoY2hpbGQuc2l6ZSkge1xuICAgICAgICBsb2cuZGVidWcoXG4gICAgICAgICAgYGFiYzk1IFNldHRpbmcgc2l6ZSBvZiBjaGlsZHJlbiBvZiAke2Jsb2NrLmlkfSBpZD0ke2NoaWxkLmlkfSAke21heFdpZHRofSAke21heEhlaWdodH0gJHtjaGlsZC5zaXplfWBcbiAgICAgICAgKTtcbiAgICAgICAgY2hpbGQuc2l6ZS53aWR0aCA9IG1heFdpZHRoICogKGNoaWxkLndpZHRoSW5Db2x1bW5zIHx8IDEpICsgcGFkZGluZyAqICgoY2hpbGQud2lkdGhJbkNvbHVtbnMgfHwgMSkgLSAxKTtcbiAgICAgICAgY2hpbGQuc2l6ZS5oZWlnaHQgPSBtYXhIZWlnaHQ7XG4gICAgICAgIGNoaWxkLnNpemUueCA9IDA7XG4gICAgICAgIGNoaWxkLnNpemUueSA9IDA7XG4gICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICBgYWJjOTUgdXBkYXRpbmcgc2l6ZSBvZiAke2Jsb2NrLmlkfSBjaGlsZHJlbiBjaGlsZDoke2NoaWxkLmlkfSBtYXhXaWR0aDoke21heFdpZHRofSBtYXhIZWlnaHQ6JHttYXhIZWlnaHR9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGJsb2NrLmNoaWxkcmVuKSB7XG4gICAgICBzZXRCbG9ja1NpemVzKGNoaWxkLCBkYjIsIG1heFdpZHRoLCBtYXhIZWlnaHQpO1xuICAgIH1cbiAgICBjb25zdCBjb2x1bW5zID0gYmxvY2suY29sdW1ucyB8fCAtMTtcbiAgICBsZXQgbnVtSXRlbXMgPSAwO1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgYmxvY2suY2hpbGRyZW4pIHtcbiAgICAgIG51bUl0ZW1zICs9IGNoaWxkLndpZHRoSW5Db2x1bW5zIHx8IDE7XG4gICAgfVxuICAgIGxldCB4U2l6ZSA9IGJsb2NrLmNoaWxkcmVuLmxlbmd0aDtcbiAgICBpZiAoY29sdW1ucyA+IDAgJiYgY29sdW1ucyA8IG51bUl0ZW1zKSB7XG4gICAgICB4U2l6ZSA9IGNvbHVtbnM7XG4gICAgfVxuICAgIGJsb2NrLndpZHRoSW5Db2x1bW5zIHx8IDE7XG4gICAgY29uc3QgeVNpemUgPSBNYXRoLmNlaWwobnVtSXRlbXMgLyB4U2l6ZSk7XG4gICAgbGV0IHdpZHRoID0geFNpemUgKiAobWF4V2lkdGggKyBwYWRkaW5nKSArIHBhZGRpbmc7XG4gICAgbGV0IGhlaWdodCA9IHlTaXplICogKG1heEhlaWdodCArIHBhZGRpbmcpICsgcGFkZGluZztcbiAgICBpZiAod2lkdGggPCBzaWJsaW5nV2lkdGgpIHtcbiAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgYERldGVjdGVkIHRvIHNtYWxsIHNpZWJsaW5nOiBhYmM5NSAke2Jsb2NrLmlkfSBzaWVibGluZ1dpZHRoICR7c2libGluZ1dpZHRofSBzaWVibGluZ0hlaWdodCAke3NpYmxpbmdIZWlnaHR9IHdpZHRoICR7d2lkdGh9YFxuICAgICAgKTtcbiAgICAgIHdpZHRoID0gc2libGluZ1dpZHRoO1xuICAgICAgaGVpZ2h0ID0gc2libGluZ0hlaWdodDtcbiAgICAgIGNvbnN0IGNoaWxkV2lkdGggPSAoc2libGluZ1dpZHRoIC0geFNpemUgKiBwYWRkaW5nIC0gcGFkZGluZykgLyB4U2l6ZTtcbiAgICAgIGNvbnN0IGNoaWxkSGVpZ2h0ID0gKHNpYmxpbmdIZWlnaHQgLSB5U2l6ZSAqIHBhZGRpbmcgLSBwYWRkaW5nKSAvIHlTaXplO1xuICAgICAgbG9nLmRlYnVnKFwiU2l6ZSBpbmRhdGEgYWJjODhcIiwgYmxvY2suaWQsIFwiY2hpbGRXaWR0aFwiLCBjaGlsZFdpZHRoLCBcIm1heFdpZHRoXCIsIG1heFdpZHRoKTtcbiAgICAgIGxvZy5kZWJ1ZyhcIlNpemUgaW5kYXRhIGFiYzg4XCIsIGJsb2NrLmlkLCBcImNoaWxkSGVpZ2h0XCIsIGNoaWxkSGVpZ2h0LCBcIm1heEhlaWdodFwiLCBtYXhIZWlnaHQpO1xuICAgICAgbG9nLmRlYnVnKFwiU2l6ZSBpbmRhdGEgYWJjODggeFNpemVcIiwgeFNpemUsIFwicGFkZGluZ1wiLCBwYWRkaW5nKTtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgYmxvY2suY2hpbGRyZW4pIHtcbiAgICAgICAgaWYgKGNoaWxkLnNpemUpIHtcbiAgICAgICAgICBjaGlsZC5zaXplLndpZHRoID0gY2hpbGRXaWR0aDtcbiAgICAgICAgICBjaGlsZC5zaXplLmhlaWdodCA9IGNoaWxkSGVpZ2h0O1xuICAgICAgICAgIGNoaWxkLnNpemUueCA9IDA7XG4gICAgICAgICAgY2hpbGQuc2l6ZS55ID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBsb2cuZGVidWcoXG4gICAgICBgYWJjOTUgKGZpbmFsZSBjYWxjKSAke2Jsb2NrLmlkfSB4U2l6ZSAke3hTaXplfSB5U2l6ZSAke3lTaXplfSBjb2x1bW5zICR7Y29sdW1uc30ke2Jsb2NrLmNoaWxkcmVuLmxlbmd0aH0gd2lkdGg9JHtNYXRoLm1heCh3aWR0aCwgKChfZCA9IGJsb2NrLnNpemUpID09IG51bGwgPyB2b2lkIDAgOiBfZC53aWR0aCkgfHwgMCl9YFxuICAgICk7XG4gICAgaWYgKHdpZHRoIDwgKCgoX2UgPSBibG9jayA9PSBudWxsID8gdm9pZCAwIDogYmxvY2suc2l6ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lLndpZHRoKSB8fCAwKSkge1xuICAgICAgd2lkdGggPSAoKF9mID0gYmxvY2sgPT0gbnVsbCA/IHZvaWQgMCA6IGJsb2NrLnNpemUpID09IG51bGwgPyB2b2lkIDAgOiBfZi53aWR0aCkgfHwgMDtcbiAgICAgIGNvbnN0IG51bSA9IGNvbHVtbnMgPiAwID8gTWF0aC5taW4oYmxvY2suY2hpbGRyZW4ubGVuZ3RoLCBjb2x1bW5zKSA6IGJsb2NrLmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgIGlmIChudW0gPiAwKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkV2lkdGggPSAod2lkdGggLSBudW0gKiBwYWRkaW5nIC0gcGFkZGluZykgLyBudW07XG4gICAgICAgIGxvZy5kZWJ1ZyhcImFiYzk1IChncm93aW5nIHRvIGZpdCkgd2lkdGhcIiwgYmxvY2suaWQsIHdpZHRoLCAoX2cgPSBibG9jay5zaXplKSA9PSBudWxsID8gdm9pZCAwIDogX2cud2lkdGgsIGNoaWxkV2lkdGgpO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGJsb2NrLmNoaWxkcmVuKSB7XG4gICAgICAgICAgaWYgKGNoaWxkLnNpemUpIHtcbiAgICAgICAgICAgIGNoaWxkLnNpemUud2lkdGggPSBjaGlsZFdpZHRoO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBibG9jay5zaXplID0ge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICB4OiAwLFxuICAgICAgeTogMFxuICAgIH07XG4gIH1cbiAgbG9nLmRlYnVnKFxuICAgIFwic2V0QmxvY2tTaXplcyBhYmM5NCAoZG9uZSlcIixcbiAgICBibG9jay5pZCxcbiAgICAoX2ggPSBibG9jayA9PSBudWxsID8gdm9pZCAwIDogYmxvY2suc2l6ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9oLngsXG4gICAgKF9pID0gYmxvY2sgPT0gbnVsbCA/IHZvaWQgMCA6IGJsb2NrLnNpemUpID09IG51bGwgPyB2b2lkIDAgOiBfaS53aWR0aCxcbiAgICAoX2ogPSBibG9jayA9PSBudWxsID8gdm9pZCAwIDogYmxvY2suc2l6ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9qLnksXG4gICAgKF9rID0gYmxvY2sgPT0gbnVsbCA/IHZvaWQgMCA6IGJsb2NrLnNpemUpID09IG51bGwgPyB2b2lkIDAgOiBfay5oZWlnaHRcbiAgKTtcbn1cbmZ1bmN0aW9uIGxheW91dEJsb2NrcyhibG9jaywgZGIyKSB7XG4gIHZhciBfYTIsIF9iMiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2ksIF9qLCBfaywgX2wsIF9tLCBfbiwgX28sIF9wLCBfcTtcbiAgbG9nLmRlYnVnKFxuICAgIGBhYmM4NSBsYXlvdXQgYmxvY2tzICg9PmxheW91dEJsb2NrcykgJHtibG9jay5pZH0geDogJHsoX2EyID0gYmxvY2sgPT0gbnVsbCA/IHZvaWQgMCA6IGJsb2NrLnNpemUpID09IG51bGwgPyB2b2lkIDAgOiBfYTIueH0geTogJHsoX2IyID0gYmxvY2sgPT0gbnVsbCA/IHZvaWQgMCA6IGJsb2NrLnNpemUpID09IG51bGwgPyB2b2lkIDAgOiBfYjIueX0gd2lkdGg6ICR7KF9jID0gYmxvY2sgPT0gbnVsbCA/IHZvaWQgMCA6IGJsb2NrLnNpemUpID09IG51bGwgPyB2b2lkIDAgOiBfYy53aWR0aH1gXG4gICk7XG4gIGNvbnN0IGNvbHVtbnMgPSBibG9jay5jb2x1bW5zIHx8IC0xO1xuICBsb2cuZGVidWcoXCJsYXlvdXRCbG9ja3MgY29sdW1ucyBhYmM5NVwiLCBibG9jay5pZCwgXCI9PlwiLCBjb2x1bW5zLCBibG9jayk7XG4gIGlmIChibG9jay5jaGlsZHJlbiAmJiAvLyBmaW5kIG1heCB3aWR0aCBvZiBjaGlsZHJlblxuICBibG9jay5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgd2lkdGggPSAoKF9lID0gKF9kID0gYmxvY2sgPT0gbnVsbCA/IHZvaWQgMCA6IGJsb2NrLmNoaWxkcmVuWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2Quc2l6ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lLndpZHRoKSB8fCAwO1xuICAgIGNvbnN0IHdpZHRoT2ZDaGlsZHJlbiA9IGJsb2NrLmNoaWxkcmVuLmxlbmd0aCAqIHdpZHRoICsgKGJsb2NrLmNoaWxkcmVuLmxlbmd0aCAtIDEpICogcGFkZGluZztcbiAgICBsb2cuZGVidWcoXCJ3aWR0aE9mQ2hpbGRyZW4gODhcIiwgd2lkdGhPZkNoaWxkcmVuLCBcInBvc1hcIik7XG4gICAgbGV0IGNvbHVtblBvcyA9IDA7XG4gICAgbG9nLmRlYnVnKFwiYWJjOTEgYmxvY2s/LnNpemU/LnhcIiwgYmxvY2suaWQsIChfZiA9IGJsb2NrID09IG51bGwgPyB2b2lkIDAgOiBibG9jay5zaXplKSA9PSBudWxsID8gdm9pZCAwIDogX2YueCk7XG4gICAgbGV0IHN0YXJ0aW5nUG9zWCA9ICgoX2cgPSBibG9jayA9PSBudWxsID8gdm9pZCAwIDogYmxvY2suc2l6ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9nLngpID8gKChfaCA9IGJsb2NrID09IG51bGwgPyB2b2lkIDAgOiBibG9jay5zaXplKSA9PSBudWxsID8gdm9pZCAwIDogX2gueCkgKyAoLSgoX2kgPSBibG9jayA9PSBudWxsID8gdm9pZCAwIDogYmxvY2suc2l6ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pLndpZHRoKSAvIDIgfHwgMCkgOiAtcGFkZGluZztcbiAgICBsZXQgcm93UG9zID0gMDtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGJsb2NrLmNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBibG9jaztcbiAgICAgIGlmICghY2hpbGQuc2l6ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgd2lkdGg6IHdpZHRoMiwgaGVpZ2h0IH0gPSBjaGlsZC5zaXplO1xuICAgICAgY29uc3QgeyBweCwgcHkgfSA9IGNhbGN1bGF0ZUJsb2NrUG9zaXRpb24oY29sdW1ucywgY29sdW1uUG9zKTtcbiAgICAgIGlmIChweSAhPSByb3dQb3MpIHtcbiAgICAgICAgcm93UG9zID0gcHk7XG4gICAgICAgIHN0YXJ0aW5nUG9zWCA9ICgoX2ogPSBibG9jayA9PSBudWxsID8gdm9pZCAwIDogYmxvY2suc2l6ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9qLngpID8gKChfayA9IGJsb2NrID09IG51bGwgPyB2b2lkIDAgOiBibG9jay5zaXplKSA9PSBudWxsID8gdm9pZCAwIDogX2sueCkgKyAoLSgoX2wgPSBibG9jayA9PSBudWxsID8gdm9pZCAwIDogYmxvY2suc2l6ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9sLndpZHRoKSAvIDIgfHwgMCkgOiAtcGFkZGluZztcbiAgICAgICAgbG9nLmRlYnVnKFwiTmV3IHJvdyBpbiBsYXlvdXQgZm9yIGJsb2NrXCIsIGJsb2NrLmlkLCBcIiBhbmQgY2hpbGQgXCIsIGNoaWxkLmlkLCByb3dQb3MpO1xuICAgICAgfVxuICAgICAgbG9nLmRlYnVnKFxuICAgICAgICBgYWJjODkgbGF5b3V0IGJsb2NrcyAoY2hpbGQpIGlkOiAke2NoaWxkLmlkfSBQb3M6ICR7Y29sdW1uUG9zfSAocHgsIHB5KSAke3B4fSwke3B5fSAoJHsoX20gPSBwYXJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBhcmVudC5zaXplKSA9PSBudWxsID8gdm9pZCAwIDogX20ueH0sJHsoX24gPSBwYXJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBhcmVudC5zaXplKSA9PSBudWxsID8gdm9pZCAwIDogX24ueX0pIHBhcmVudDogJHtwYXJlbnQuaWR9IHdpZHRoOiAke3dpZHRoMn0ke3BhZGRpbmd9YFxuICAgICAgKTtcbiAgICAgIGlmIChwYXJlbnQuc2l6ZSkge1xuICAgICAgICBjb25zdCBoYWxmV2lkdGggPSB3aWR0aDIgLyAyO1xuICAgICAgICBjaGlsZC5zaXplLnggPSBzdGFydGluZ1Bvc1ggKyBwYWRkaW5nICsgaGFsZldpZHRoO1xuICAgICAgICBsb2cuZGVidWcoXG4gICAgICAgICAgYGFiYzkxIGxheW91dCBibG9ja3MgKGNhbGMpIHB4LCBweWlkOiR7Y2hpbGQuaWR9IHN0YXJ0aW5nUG9zPVgke3N0YXJ0aW5nUG9zWH0gbmV3IHN0YXJ0aW5nUG9zWCR7Y2hpbGQuc2l6ZS54fSAke2hhbGZXaWR0aH0gcGFkZGluZz0ke3BhZGRpbmd9IHdpZHRoPSR7d2lkdGgyfSBoYWxmV2lkdGg9JHtoYWxmV2lkdGh9ID0+IHg6JHtjaGlsZC5zaXplLnh9IHk6JHtjaGlsZC5zaXplLnl9ICR7Y2hpbGQud2lkdGhJbkNvbHVtbnN9ICh3aWR0aCAqIChjaGlsZD8udyB8fCAxKSkgLyAyICR7d2lkdGgyICogKChjaGlsZCA9PSBudWxsID8gdm9pZCAwIDogY2hpbGQud2lkdGhJbkNvbHVtbnMpIHx8IDEpIC8gMn1gXG4gICAgICAgICk7XG4gICAgICAgIHN0YXJ0aW5nUG9zWCA9IGNoaWxkLnNpemUueCArIGhhbGZXaWR0aDtcbiAgICAgICAgY2hpbGQuc2l6ZS55ID0gcGFyZW50LnNpemUueSAtIHBhcmVudC5zaXplLmhlaWdodCAvIDIgKyBweSAqIChoZWlnaHQgKyBwYWRkaW5nKSArIGhlaWdodCAvIDIgKyBwYWRkaW5nO1xuICAgICAgICBsb2cuZGVidWcoXG4gICAgICAgICAgYGFiYzg4IGxheW91dCBibG9ja3MgKGNhbGMpIHB4LCBweWlkOiR7Y2hpbGQuaWR9c3RhcnRpbmdQb3NYJHtzdGFydGluZ1Bvc1h9JHtwYWRkaW5nfSR7aGFsZldpZHRofT0+eDoke2NoaWxkLnNpemUueH15OiR7Y2hpbGQuc2l6ZS55fSR7Y2hpbGQud2lkdGhJbkNvbHVtbnN9KHdpZHRoICogKGNoaWxkPy53IHx8IDEpKSAvIDIke3dpZHRoMiAqICgoY2hpbGQgPT0gbnVsbCA/IHZvaWQgMCA6IGNoaWxkLndpZHRoSW5Db2x1bW5zKSB8fCAxKSAvIDJ9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGNoaWxkLmNoaWxkcmVuKSB7XG4gICAgICAgIGxheW91dEJsb2NrcyhjaGlsZCk7XG4gICAgICB9XG4gICAgICBjb2x1bW5Qb3MgKz0gKGNoaWxkID09IG51bGwgPyB2b2lkIDAgOiBjaGlsZC53aWR0aEluQ29sdW1ucykgfHwgMTtcbiAgICAgIGxvZy5kZWJ1ZyhcImFiYzg4IGNvbHVtbnNQb3NcIiwgY2hpbGQsIGNvbHVtblBvcyk7XG4gICAgfVxuICB9XG4gIGxvZy5kZWJ1ZyhcbiAgICBgbGF5b3V0IGJsb2NrcyAoPD09bGF5b3V0QmxvY2tzKSAke2Jsb2NrLmlkfSB4OiAkeyhfbyA9IGJsb2NrID09IG51bGwgPyB2b2lkIDAgOiBibG9jay5zaXplKSA9PSBudWxsID8gdm9pZCAwIDogX28ueH0geTogJHsoX3AgPSBibG9jayA9PSBudWxsID8gdm9pZCAwIDogYmxvY2suc2l6ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9wLnl9IHdpZHRoOiAkeyhfcSA9IGJsb2NrID09IG51bGwgPyB2b2lkIDAgOiBibG9jay5zaXplKSA9PSBudWxsID8gdm9pZCAwIDogX3Eud2lkdGh9YFxuICApO1xufVxuZnVuY3Rpb24gZmluZEJvdW5kcyhibG9jaywgeyBtaW5YLCBtaW5ZLCBtYXhYLCBtYXhZIH0gPSB7IG1pblg6IDAsIG1pblk6IDAsIG1heFg6IDAsIG1heFk6IDAgfSkge1xuICBpZiAoYmxvY2suc2l6ZSAmJiBibG9jay5pZCAhPT0gXCJyb290XCIpIHtcbiAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IGJsb2NrLnNpemU7XG4gICAgaWYgKHggLSB3aWR0aCAvIDIgPCBtaW5YKSB7XG4gICAgICBtaW5YID0geCAtIHdpZHRoIC8gMjtcbiAgICB9XG4gICAgaWYgKHkgLSBoZWlnaHQgLyAyIDwgbWluWSkge1xuICAgICAgbWluWSA9IHkgLSBoZWlnaHQgLyAyO1xuICAgIH1cbiAgICBpZiAoeCArIHdpZHRoIC8gMiA+IG1heFgpIHtcbiAgICAgIG1heFggPSB4ICsgd2lkdGggLyAyO1xuICAgIH1cbiAgICBpZiAoeSArIGhlaWdodCAvIDIgPiBtYXhZKSB7XG4gICAgICBtYXhZID0geSArIGhlaWdodCAvIDI7XG4gICAgfVxuICB9XG4gIGlmIChibG9jay5jaGlsZHJlbikge1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgYmxvY2suY2hpbGRyZW4pIHtcbiAgICAgICh7IG1pblgsIG1pblksIG1heFgsIG1heFkgfSA9IGZpbmRCb3VuZHMoY2hpbGQsIHsgbWluWCwgbWluWSwgbWF4WCwgbWF4WSB9KSk7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IG1pblgsIG1pblksIG1heFgsIG1heFkgfTtcbn1cbmZ1bmN0aW9uIGxheW91dChkYjIpIHtcbiAgY29uc3Qgcm9vdCA9IGRiMi5nZXRCbG9jayhcInJvb3RcIik7XG4gIGlmICghcm9vdCkge1xuICAgIHJldHVybjtcbiAgfVxuICBzZXRCbG9ja1NpemVzKHJvb3QsIGRiMiwgMCwgMCk7XG4gIGxheW91dEJsb2Nrcyhyb290KTtcbiAgbG9nLmRlYnVnKFwiZ2V0QmxvY2tzXCIsIEpTT04uc3RyaW5naWZ5KHJvb3QsIG51bGwsIDIpKTtcbiAgY29uc3QgeyBtaW5YLCBtaW5ZLCBtYXhYLCBtYXhZIH0gPSBmaW5kQm91bmRzKHJvb3QpO1xuICBjb25zdCBoZWlnaHQgPSBtYXhZIC0gbWluWTtcbiAgY29uc3Qgd2lkdGggPSBtYXhYIC0gbWluWDtcbiAgcmV0dXJuIHsgeDogbWluWCwgeTogbWluWSwgd2lkdGgsIGhlaWdodCB9O1xufVxuY29uc3QgZ2V0Q2xhc3NlcyA9IGZ1bmN0aW9uKHRleHQsIGRpYWdPYmopIHtcbiAgcmV0dXJuIGRpYWdPYmouZGIuZ2V0Q2xhc3NlcygpO1xufTtcbmNvbnN0IGRyYXcgPSBhc3luYyBmdW5jdGlvbih0ZXh0LCBpZCwgX3ZlcnNpb24sIGRpYWdPYmopIHtcbiAgY29uc3QgeyBzZWN1cml0eUxldmVsLCBibG9jazogY29uZiB9ID0gZ2V0Q29uZmlnJDEoKTtcbiAgY29uc3QgZGIyID0gZGlhZ09iai5kYjtcbiAgbGV0IHNhbmRib3hFbGVtZW50O1xuICBpZiAoc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIpIHtcbiAgICBzYW5kYm94RWxlbWVudCA9IHNlbGVjdChcIiNpXCIgKyBpZCk7XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiID8gc2VsZWN0KHNhbmRib3hFbGVtZW50Lm5vZGVzKClbMF0uY29udGVudERvY3VtZW50LmJvZHkpIDogc2VsZWN0KFwiYm9keVwiKTtcbiAgY29uc3Qgc3ZnID0gc2VjdXJpdHlMZXZlbCA9PT0gXCJzYW5kYm94XCIgPyByb290LnNlbGVjdChgW2lkPVwiJHtpZH1cIl1gKSA6IHNlbGVjdChgW2lkPVwiJHtpZH1cIl1gKTtcbiAgY29uc3QgbWFya2VycyA9IFtcInBvaW50XCIsIFwiY2lyY2xlXCIsIFwiY3Jvc3NcIl07XG4gIGluc2VydE1hcmtlcnMoc3ZnLCBtYXJrZXJzLCBkaWFnT2JqLnR5cGUsIGlkKTtcbiAgY29uc3QgYmwgPSBkYjIuZ2V0QmxvY2tzKCk7XG4gIGNvbnN0IGJsQXJyID0gZGIyLmdldEJsb2Nrc0ZsYXQoKTtcbiAgY29uc3QgZWRnZXMgPSBkYjIuZ2V0RWRnZXMoKTtcbiAgY29uc3Qgbm9kZXMgPSBzdmcuaW5zZXJ0KFwiZ1wiKS5hdHRyKFwiY2xhc3NcIiwgXCJibG9ja1wiKTtcbiAgYXdhaXQgY2FsY3VsYXRlQmxvY2tTaXplcyhub2RlcywgYmwsIGRiMik7XG4gIGNvbnN0IGJvdW5kcyA9IGxheW91dChkYjIpO1xuICBhd2FpdCBpbnNlcnRCbG9ja3Mobm9kZXMsIGJsLCBkYjIpO1xuICBhd2FpdCBpbnNlcnRFZGdlcyhub2RlcywgZWRnZXMsIGJsQXJyLCBkYjIsIGlkKTtcbiAgaWYgKGJvdW5kcykge1xuICAgIGNvbnN0IGJvdW5kczIgPSBib3VuZHM7XG4gICAgY29uc3QgbWFnaWNGYWN0b3IgPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKDAuMTI1ICogKGJvdW5kczIud2lkdGggLyBib3VuZHMyLmhlaWdodCkpKTtcbiAgICBjb25zdCBoZWlnaHQgPSBib3VuZHMyLmhlaWdodCArIG1hZ2ljRmFjdG9yICsgMTA7XG4gICAgY29uc3Qgd2lkdGggPSBib3VuZHMyLndpZHRoICsgMTA7XG4gICAgY29uc3QgeyB1c2VNYXhXaWR0aCB9ID0gY29uZjtcbiAgICBjb25maWd1cmVTdmdTaXplKHN2ZywgaGVpZ2h0LCB3aWR0aCwgISF1c2VNYXhXaWR0aCk7XG4gICAgbG9nLmRlYnVnKFwiSGVyZSBCb3VuZHNcIiwgYm91bmRzLCBib3VuZHMyKTtcbiAgICBzdmcuYXR0cihcbiAgICAgIFwidmlld0JveFwiLFxuICAgICAgYCR7Ym91bmRzMi54IC0gNX0gJHtib3VuZHMyLnkgLSA1fSAke2JvdW5kczIud2lkdGggKyAxMH0gJHtib3VuZHMyLmhlaWdodCArIDEwfWBcbiAgICApO1xuICB9XG4gIHNjYWxlT3JkaW5hbChzY2hlbWVUYWJsZWF1MTApO1xufTtcbmNvbnN0IHJlbmRlcmVyID0ge1xuICBkcmF3LFxuICBnZXRDbGFzc2VzXG59O1xuY29uc3QgZGlhZ3JhbSA9IHtcbiAgcGFyc2VyOiBwYXJzZXIkMSxcbiAgZGI6IGRiJDEsXG4gIHJlbmRlcmVyLFxuICBzdHlsZXM6IGZsb3dTdHlsZXNcbn07XG5leHBvcnQge1xuICBkaWFncmFtXG59O1xuIiwKICAgICJpbXBvcnQgeyBkZWRlbnQgfSBmcm9tIFwidHMtZGVkZW50XCI7XG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZVVybCB9IGZyb20gXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IHsgc2VsZWN0LCBjdXJ2ZUJhc2lzLCBjdXJ2ZUJhc2lzQ2xvc2VkLCBjdXJ2ZUJhc2lzT3BlbiwgY3VydmVCdW1wWCwgY3VydmVCdW1wWSwgY3VydmVCdW5kbGUsIGN1cnZlQ2FyZGluYWxDbG9zZWQsIGN1cnZlQ2FyZGluYWxPcGVuLCBjdXJ2ZUNhcmRpbmFsLCBjdXJ2ZUNhdG11bGxSb21DbG9zZWQsIGN1cnZlQ2F0bXVsbFJvbU9wZW4sIGN1cnZlQ2F0bXVsbFJvbSwgY3VydmVMaW5lYXIsIGN1cnZlTGluZWFyQ2xvc2VkLCBjdXJ2ZU1vbm90b25lWCwgY3VydmVNb25vdG9uZVksIGN1cnZlTmF0dXJhbCwgY3VydmVTdGVwLCBjdXJ2ZVN0ZXBBZnRlciwgY3VydmVTdGVwQmVmb3JlIH0gZnJvbSBcImQzXCI7XG5pbXBvcnQgRE9NUHVyaWZ5IGZyb20gXCJkb21wdXJpZnlcIjtcbmltcG9ydCB7IGFkanVzdCwgaW52ZXJ0LCBkYXJrZW4sIGxpZ2h0ZW4sIGlzRGFyaywgcmdiYSB9IGZyb20gXCJraHJvbWFcIjtcbmltcG9ydCBtZW1vaXplIGZyb20gXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IG1lcmdlJDEgZnJvbSBcImxvZGFzaC1lcy9tZXJnZS5qc1wiO1xuaW1wb3J0IHsgc2VyaWFsaXplLCBjb21waWxlLCBzdHJpbmdpZnkgfSBmcm9tIFwic3R5bGlzXCI7XG5pbXBvcnQgaXNFbXB0eSBmcm9tIFwibG9kYXNoLWVzL2lzRW1wdHkuanNcIjtcbmNvbnN0IExFVkVMUyA9IHtcbiAgdHJhY2U6IDAsXG4gIGRlYnVnOiAxLFxuICBpbmZvOiAyLFxuICB3YXJuOiAzLFxuICBlcnJvcjogNCxcbiAgZmF0YWw6IDVcbn07XG5jb25zdCBsb2ckMSA9IHtcbiAgdHJhY2U6ICguLi5fYXJncykgPT4ge1xuICB9LFxuICBkZWJ1ZzogKC4uLl9hcmdzKSA9PiB7XG4gIH0sXG4gIGluZm86ICguLi5fYXJncykgPT4ge1xuICB9LFxuICB3YXJuOiAoLi4uX2FyZ3MpID0+IHtcbiAgfSxcbiAgZXJyb3I6ICguLi5fYXJncykgPT4ge1xuICB9LFxuICBmYXRhbDogKC4uLl9hcmdzKSA9PiB7XG4gIH1cbn07XG5jb25zdCBzZXRMb2dMZXZlbCQxID0gZnVuY3Rpb24obGV2ZWwgPSBcImZhdGFsXCIpIHtcbiAgbGV0IG51bWVyaWNMZXZlbCA9IExFVkVMUy5mYXRhbDtcbiAgaWYgKHR5cGVvZiBsZXZlbCA9PT0gXCJzdHJpbmdcIikge1xuICAgIGxldmVsID0gbGV2ZWwudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobGV2ZWwgaW4gTEVWRUxTKSB7XG4gICAgICBudW1lcmljTGV2ZWwgPSBMRVZFTFNbbGV2ZWxdO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgbGV2ZWwgPT09IFwibnVtYmVyXCIpIHtcbiAgICBudW1lcmljTGV2ZWwgPSBsZXZlbDtcbiAgfVxuICBsb2ckMS50cmFjZSA9ICgpID0+IHtcbiAgfTtcbiAgbG9nJDEuZGVidWcgPSAoKSA9PiB7XG4gIH07XG4gIGxvZyQxLmluZm8gPSAoKSA9PiB7XG4gIH07XG4gIGxvZyQxLndhcm4gPSAoKSA9PiB7XG4gIH07XG4gIGxvZyQxLmVycm9yID0gKCkgPT4ge1xuICB9O1xuICBsb2ckMS5mYXRhbCA9ICgpID0+IHtcbiAgfTtcbiAgaWYgKG51bWVyaWNMZXZlbCA8PSBMRVZFTFMuZmF0YWwpIHtcbiAgICBsb2ckMS5mYXRhbCA9IGNvbnNvbGUuZXJyb3IgPyBjb25zb2xlLmVycm9yLmJpbmQoY29uc29sZSwgZm9ybWF0KFwiRkFUQUxcIiksIFwiY29sb3I6IG9yYW5nZVwiKSA6IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSwgXCJcXHgxQlszNW1cIiwgZm9ybWF0KFwiRkFUQUxcIikpO1xuICB9XG4gIGlmIChudW1lcmljTGV2ZWwgPD0gTEVWRUxTLmVycm9yKSB7XG4gICAgbG9nJDEuZXJyb3IgPSBjb25zb2xlLmVycm9yID8gY29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUsIGZvcm1hdChcIkVSUk9SXCIpLCBcImNvbG9yOiBvcmFuZ2VcIikgOiBjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUsIFwiXFx4MUJbMzFtXCIsIGZvcm1hdChcIkVSUk9SXCIpKTtcbiAgfVxuICBpZiAobnVtZXJpY0xldmVsIDw9IExFVkVMUy53YXJuKSB7XG4gICAgbG9nJDEud2FybiA9IGNvbnNvbGUud2FybiA/IGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUsIGZvcm1hdChcIldBUk5cIiksIFwiY29sb3I6IG9yYW5nZVwiKSA6IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSwgYFxceDFCWzMzbWAsIGZvcm1hdChcIldBUk5cIikpO1xuICB9XG4gIGlmIChudW1lcmljTGV2ZWwgPD0gTEVWRUxTLmluZm8pIHtcbiAgICBsb2ckMS5pbmZvID0gY29uc29sZS5pbmZvID8gY29uc29sZS5pbmZvLmJpbmQoY29uc29sZSwgZm9ybWF0KFwiSU5GT1wiKSwgXCJjb2xvcjogbGlnaHRibHVlXCIpIDogY29uc29sZS5sb2cuYmluZChjb25zb2xlLCBcIlxceDFCWzM0bVwiLCBmb3JtYXQoXCJJTkZPXCIpKTtcbiAgfVxuICBpZiAobnVtZXJpY0xldmVsIDw9IExFVkVMUy5kZWJ1Zykge1xuICAgIGxvZyQxLmRlYnVnID0gY29uc29sZS5kZWJ1ZyA/IGNvbnNvbGUuZGVidWcuYmluZChjb25zb2xlLCBmb3JtYXQoXCJERUJVR1wiKSwgXCJjb2xvcjogbGlnaHRncmVlblwiKSA6IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSwgXCJcXHgxQlszMm1cIiwgZm9ybWF0KFwiREVCVUdcIikpO1xuICB9XG4gIGlmIChudW1lcmljTGV2ZWwgPD0gTEVWRUxTLnRyYWNlKSB7XG4gICAgbG9nJDEudHJhY2UgPSBjb25zb2xlLmRlYnVnID8gY29uc29sZS5kZWJ1Zy5iaW5kKGNvbnNvbGUsIGZvcm1hdChcIlRSQUNFXCIpLCBcImNvbG9yOiBsaWdodGdyZWVuXCIpIDogY29uc29sZS5sb2cuYmluZChjb25zb2xlLCBcIlxceDFCWzMybVwiLCBmb3JtYXQoXCJUUkFDRVwiKSk7XG4gIH1cbn07XG5jb25zdCBmb3JtYXQgPSAobGV2ZWwpID0+IHtcbiAgY29uc3QgdGltZSA9IGRheWpzKCkuZm9ybWF0KFwic3MuU1NTXCIpO1xuICByZXR1cm4gYCVjJHt0aW1lfSA6ICR7bGV2ZWx9IDogYDtcbn07XG5jb25zdCBsaW5lQnJlYWtSZWdleCA9IC88YnJcXHMqXFwvPz4vZ2k7XG5jb25zdCBnZXRSb3dzID0gKHMpID0+IHtcbiAgaWYgKCFzKSB7XG4gICAgcmV0dXJuIFtcIlwiXTtcbiAgfVxuICBjb25zdCBzdHIyID0gYnJlYWtUb1BsYWNlaG9sZGVyKHMpLnJlcGxhY2UoL1xcXFxuL2csIFwiI2JyI1wiKTtcbiAgcmV0dXJuIHN0cjIuc3BsaXQoXCIjYnIjXCIpO1xufTtcbmNvbnN0IHNldHVwRG9tcHVyaWZ5SG9va3NJZk5vdFNldHVwID0gKCgpID0+IHtcbiAgbGV0IHNldHVwID0gZmFsc2U7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgaWYgKCFzZXR1cCkge1xuICAgICAgc2V0dXBEb21wdXJpZnlIb29rcygpO1xuICAgICAgc2V0dXAgPSB0cnVlO1xuICAgIH1cbiAgfTtcbn0pKCk7XG5mdW5jdGlvbiBzZXR1cERvbXB1cmlmeUhvb2tzKCkge1xuICBjb25zdCBURU1QT1JBUllfQVRUUklCVVRFID0gXCJkYXRhLXRlbXAtaHJlZi10YXJnZXRcIjtcbiAgRE9NUHVyaWZ5LmFkZEhvb2soXCJiZWZvcmVTYW5pdGl6ZUF0dHJpYnV0ZXNcIiwgKG5vZGUpID0+IHtcbiAgICBpZiAobm9kZS50YWdOYW1lID09PSBcIkFcIiAmJiBub2RlLmhhc0F0dHJpYnV0ZShcInRhcmdldFwiKSkge1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoVEVNUE9SQVJZX0FUVFJJQlVURSwgbm9kZS5nZXRBdHRyaWJ1dGUoXCJ0YXJnZXRcIikgfHwgXCJcIik7XG4gICAgfVxuICB9KTtcbiAgRE9NUHVyaWZ5LmFkZEhvb2soXCJhZnRlclNhbml0aXplQXR0cmlidXRlc1wiLCAobm9kZSkgPT4ge1xuICAgIGlmIChub2RlLnRhZ05hbWUgPT09IFwiQVwiICYmIG5vZGUuaGFzQXR0cmlidXRlKFRFTVBPUkFSWV9BVFRSSUJVVEUpKSB7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShcInRhcmdldFwiLCBub2RlLmdldEF0dHJpYnV0ZShURU1QT1JBUllfQVRUUklCVVRFKSB8fCBcIlwiKTtcbiAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKFRFTVBPUkFSWV9BVFRSSUJVVEUpO1xuICAgICAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKFwidGFyZ2V0XCIpID09PSBcIl9ibGFua1wiKSB7XG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwicmVsXCIsIFwibm9vcGVuZXJcIik7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbmNvbnN0IHJlbW92ZVNjcmlwdCA9ICh0eHQpID0+IHtcbiAgc2V0dXBEb21wdXJpZnlIb29rc0lmTm90U2V0dXAoKTtcbiAgY29uc3Qgc2FuaXRpemVkVGV4dCA9IERPTVB1cmlmeS5zYW5pdGl6ZSh0eHQpO1xuICByZXR1cm4gc2FuaXRpemVkVGV4dDtcbn07XG5jb25zdCBzYW5pdGl6ZU1vcmUgPSAodGV4dCwgY29uZmlnMikgPT4ge1xuICB2YXIgX2E7XG4gIGlmICgoKF9hID0gY29uZmlnMi5mbG93Y2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5odG1sTGFiZWxzKSAhPT0gZmFsc2UpIHtcbiAgICBjb25zdCBsZXZlbCA9IGNvbmZpZzIuc2VjdXJpdHlMZXZlbDtcbiAgICBpZiAobGV2ZWwgPT09IFwiYW50aXNjcmlwdFwiIHx8IGxldmVsID09PSBcInN0cmljdFwiKSB7XG4gICAgICB0ZXh0ID0gcmVtb3ZlU2NyaXB0KHRleHQpO1xuICAgIH0gZWxzZSBpZiAobGV2ZWwgIT09IFwibG9vc2VcIikge1xuICAgICAgdGV4dCA9IGJyZWFrVG9QbGFjZWhvbGRlcih0ZXh0KTtcbiAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoLzwvZywgXCImbHQ7XCIpLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpO1xuICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvPS9nLCBcIiZlcXVhbHM7XCIpO1xuICAgICAgdGV4dCA9IHBsYWNlaG9sZGVyVG9CcmVhayh0ZXh0KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRleHQ7XG59O1xuY29uc3Qgc2FuaXRpemVUZXh0JDIgPSAodGV4dCwgY29uZmlnMikgPT4ge1xuICBpZiAoIXRleHQpIHtcbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuICBpZiAoY29uZmlnMi5kb21wdXJpZnlDb25maWcpIHtcbiAgICB0ZXh0ID0gRE9NUHVyaWZ5LnNhbml0aXplKHNhbml0aXplTW9yZSh0ZXh0LCBjb25maWcyKSwgY29uZmlnMi5kb21wdXJpZnlDb25maWcpLnRvU3RyaW5nKCk7XG4gIH0gZWxzZSB7XG4gICAgdGV4dCA9IERPTVB1cmlmeS5zYW5pdGl6ZShzYW5pdGl6ZU1vcmUodGV4dCwgY29uZmlnMiksIHtcbiAgICAgIEZPUkJJRF9UQUdTOiBbXCJzdHlsZVwiXVxuICAgIH0pLnRvU3RyaW5nKCk7XG4gIH1cbiAgcmV0dXJuIHRleHQ7XG59O1xuY29uc3Qgc2FuaXRpemVUZXh0T3JBcnJheSA9IChhLCBjb25maWcyKSA9PiB7XG4gIGlmICh0eXBlb2YgYSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBzYW5pdGl6ZVRleHQkMihhLCBjb25maWcyKTtcbiAgfVxuICByZXR1cm4gYS5mbGF0KCkubWFwKCh4KSA9PiBzYW5pdGl6ZVRleHQkMih4LCBjb25maWcyKSk7XG59O1xuY29uc3QgaGFzQnJlYWtzID0gKHRleHQpID0+IHtcbiAgcmV0dXJuIGxpbmVCcmVha1JlZ2V4LnRlc3QodGV4dCk7XG59O1xuY29uc3Qgc3BsaXRCcmVha3MgPSAodGV4dCkgPT4ge1xuICByZXR1cm4gdGV4dC5zcGxpdChsaW5lQnJlYWtSZWdleCk7XG59O1xuY29uc3QgcGxhY2Vob2xkZXJUb0JyZWFrID0gKHMpID0+IHtcbiAgcmV0dXJuIHMucmVwbGFjZSgvI2JyIy9nLCBcIjxici8+XCIpO1xufTtcbmNvbnN0IGJyZWFrVG9QbGFjZWhvbGRlciA9IChzKSA9PiB7XG4gIHJldHVybiBzLnJlcGxhY2UobGluZUJyZWFrUmVnZXgsIFwiI2JyI1wiKTtcbn07XG5jb25zdCBnZXRVcmwgPSAodXNlQWJzb2x1dGUpID0+IHtcbiAgbGV0IHVybCA9IFwiXCI7XG4gIGlmICh1c2VBYnNvbHV0ZSkge1xuICAgIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaDtcbiAgICB1cmwgPSB1cmwucmVwbGFjZUFsbCgvXFwoL2csIFwiXFxcXChcIik7XG4gICAgdXJsID0gdXJsLnJlcGxhY2VBbGwoL1xcKS9nLCBcIlxcXFwpXCIpO1xuICB9XG4gIHJldHVybiB1cmw7XG59O1xuY29uc3QgZXZhbHVhdGUgPSAodmFsKSA9PiB2YWwgPT09IGZhbHNlIHx8IFtcImZhbHNlXCIsIFwibnVsbFwiLCBcIjBcIl0uaW5jbHVkZXMoU3RyaW5nKHZhbCkudHJpbSgpLnRvTG93ZXJDYXNlKCkpID8gZmFsc2UgOiB0cnVlO1xuY29uc3QgZ2V0TWF4ID0gZnVuY3Rpb24oLi4udmFsdWVzKSB7XG4gIGNvbnN0IG5ld1ZhbHVlcyA9IHZhbHVlcy5maWx0ZXIoKHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuICFpc05hTih2YWx1ZSk7XG4gIH0pO1xuICByZXR1cm4gTWF0aC5tYXgoLi4ubmV3VmFsdWVzKTtcbn07XG5jb25zdCBnZXRNaW4gPSBmdW5jdGlvbiguLi52YWx1ZXMpIHtcbiAgY29uc3QgbmV3VmFsdWVzID0gdmFsdWVzLmZpbHRlcigodmFsdWUpID0+IHtcbiAgICByZXR1cm4gIWlzTmFOKHZhbHVlKTtcbiAgfSk7XG4gIHJldHVybiBNYXRoLm1pbiguLi5uZXdWYWx1ZXMpO1xufTtcbmNvbnN0IHBhcnNlR2VuZXJpY1R5cGVzID0gZnVuY3Rpb24oaW5wdXQpIHtcbiAgY29uc3QgaW5wdXRTZXRzID0gaW5wdXQuc3BsaXQoLygsKS8pO1xuICBjb25zdCBvdXRwdXQgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dFNldHMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgdGhpc1NldCA9IGlucHV0U2V0c1tpXTtcbiAgICBpZiAodGhpc1NldCA9PT0gXCIsXCIgJiYgaSA+IDAgJiYgaSArIDEgPCBpbnB1dFNldHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwcmV2aW91c1NldCA9IGlucHV0U2V0c1tpIC0gMV07XG4gICAgICBjb25zdCBuZXh0U2V0ID0gaW5wdXRTZXRzW2kgKyAxXTtcbiAgICAgIGlmIChzaG91bGRDb21iaW5lU2V0cyhwcmV2aW91c1NldCwgbmV4dFNldCkpIHtcbiAgICAgICAgdGhpc1NldCA9IHByZXZpb3VzU2V0ICsgXCIsXCIgKyBuZXh0U2V0O1xuICAgICAgICBpKys7XG4gICAgICAgIG91dHB1dC5wb3AoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgb3V0cHV0LnB1c2gocHJvY2Vzc1NldCh0aGlzU2V0KSk7XG4gIH1cbiAgcmV0dXJuIG91dHB1dC5qb2luKFwiXCIpO1xufTtcbmNvbnN0IGNvdW50T2NjdXJyZW5jZSA9IChzdHJpbmcsIHN1YnN0cmluZykgPT4ge1xuICByZXR1cm4gTWF0aC5tYXgoMCwgc3RyaW5nLnNwbGl0KHN1YnN0cmluZykubGVuZ3RoIC0gMSk7XG59O1xuY29uc3Qgc2hvdWxkQ29tYmluZVNldHMgPSAocHJldmlvdXNTZXQsIG5leHRTZXQpID0+IHtcbiAgY29uc3QgcHJldkNvdW50ID0gY291bnRPY2N1cnJlbmNlKHByZXZpb3VzU2V0LCBcIn5cIik7XG4gIGNvbnN0IG5leHRDb3VudCA9IGNvdW50T2NjdXJyZW5jZShuZXh0U2V0LCBcIn5cIik7XG4gIHJldHVybiBwcmV2Q291bnQgPT09IDEgJiYgbmV4dENvdW50ID09PSAxO1xufTtcbmNvbnN0IHByb2Nlc3NTZXQgPSAoaW5wdXQpID0+IHtcbiAgY29uc3QgdGlsZGVDb3VudCA9IGNvdW50T2NjdXJyZW5jZShpbnB1dCwgXCJ+XCIpO1xuICBsZXQgaGFzU3RhcnRpbmdUaWxkZSA9IGZhbHNlO1xuICBpZiAodGlsZGVDb3VudCA8PSAxKSB7XG4gICAgcmV0dXJuIGlucHV0O1xuICB9XG4gIGlmICh0aWxkZUNvdW50ICUgMiAhPT0gMCAmJiBpbnB1dC5zdGFydHNXaXRoKFwiflwiKSkge1xuICAgIGlucHV0ID0gaW5wdXQuc3Vic3RyaW5nKDEpO1xuICAgIGhhc1N0YXJ0aW5nVGlsZGUgPSB0cnVlO1xuICB9XG4gIGNvbnN0IGNoYXJzID0gWy4uLmlucHV0XTtcbiAgbGV0IGZpcnN0ID0gY2hhcnMuaW5kZXhPZihcIn5cIik7XG4gIGxldCBsYXN0ID0gY2hhcnMubGFzdEluZGV4T2YoXCJ+XCIpO1xuICB3aGlsZSAoZmlyc3QgIT09IC0xICYmIGxhc3QgIT09IC0xICYmIGZpcnN0ICE9PSBsYXN0KSB7XG4gICAgY2hhcnNbZmlyc3RdID0gXCI8XCI7XG4gICAgY2hhcnNbbGFzdF0gPSBcIj5cIjtcbiAgICBmaXJzdCA9IGNoYXJzLmluZGV4T2YoXCJ+XCIpO1xuICAgIGxhc3QgPSBjaGFycy5sYXN0SW5kZXhPZihcIn5cIik7XG4gIH1cbiAgaWYgKGhhc1N0YXJ0aW5nVGlsZGUpIHtcbiAgICBjaGFycy51bnNoaWZ0KFwiflwiKTtcbiAgfVxuICByZXR1cm4gY2hhcnMuam9pbihcIlwiKTtcbn07XG5jb25zdCBpc01hdGhNTFN1cHBvcnRlZCA9ICgpID0+IHdpbmRvdy5NYXRoTUxFbGVtZW50ICE9PSB2b2lkIDA7XG5jb25zdCBrYXRleFJlZ2V4ID0gL1xcJFxcJCguKilcXCRcXCQvZztcbmNvbnN0IGhhc0thdGV4ID0gKHRleHQpID0+IHtcbiAgdmFyIF9hO1xuICByZXR1cm4gKCgoX2EgPSB0ZXh0Lm1hdGNoKGthdGV4UmVnZXgpKSA9PSBudWxsID8gdm9pZCAwIDogX2EubGVuZ3RoKSA/PyAwKSA+IDA7XG59O1xuY29uc3QgY2FsY3VsYXRlTWF0aE1MRGltZW5zaW9ucyA9IGFzeW5jICh0ZXh0LCBjb25maWcyKSA9PiB7XG4gIHRleHQgPSBhd2FpdCByZW5kZXJLYXRleCh0ZXh0LCBjb25maWcyKTtcbiAgY29uc3QgZGl2RWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gIGRpdkVsZW0uaW5uZXJIVE1MID0gdGV4dDtcbiAgZGl2RWxlbS5pZCA9IFwia2F0ZXgtdGVtcFwiO1xuICBkaXZFbGVtLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuICBkaXZFbGVtLnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiO1xuICBkaXZFbGVtLnN0eWxlLnRvcCA9IFwiMFwiO1xuICBjb25zdCBib2R5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImJvZHlcIik7XG4gIGJvZHkgPT0gbnVsbCA/IHZvaWQgMCA6IGJvZHkuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYmVmb3JlZW5kXCIsIGRpdkVsZW0pO1xuICBjb25zdCBkaW0gPSB7IHdpZHRoOiBkaXZFbGVtLmNsaWVudFdpZHRoLCBoZWlnaHQ6IGRpdkVsZW0uY2xpZW50SGVpZ2h0IH07XG4gIGRpdkVsZW0ucmVtb3ZlKCk7XG4gIHJldHVybiBkaW07XG59O1xuY29uc3QgcmVuZGVyS2F0ZXggPSBhc3luYyAodGV4dCwgY29uZmlnMikgPT4ge1xuICBpZiAoIWhhc0thdGV4KHRleHQpKSB7XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cbiAgaWYgKCFpc01hdGhNTFN1cHBvcnRlZCgpICYmICFjb25maWcyLmxlZ2FjeU1hdGhNTCkge1xuICAgIHJldHVybiB0ZXh0LnJlcGxhY2Uoa2F0ZXhSZWdleCwgXCJNYXRoTUwgaXMgdW5zdXBwb3J0ZWQgaW4gdGhpcyBlbnZpcm9ubWVudC5cIik7XG4gIH1cbiAgY29uc3QgeyBkZWZhdWx0OiBrYXRleCB9ID0gYXdhaXQgaW1wb3J0KFwia2F0ZXhcIik7XG4gIHJldHVybiB0ZXh0LnNwbGl0KGxpbmVCcmVha1JlZ2V4KS5tYXAoXG4gICAgKGxpbmUpID0+IGhhc0thdGV4KGxpbmUpID8gYFxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB3aGl0ZS1zcGFjZTogbm93cmFwO1wiPlxuICAgICAgICAgICAgICAke2xpbmV9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgIDogYDxkaXY+JHtsaW5lfTwvZGl2PmBcbiAgKS5qb2luKFwiXCIpLnJlcGxhY2UoXG4gICAga2F0ZXhSZWdleCxcbiAgICAoXywgYykgPT4ga2F0ZXgucmVuZGVyVG9TdHJpbmcoYywge1xuICAgICAgdGhyb3dPbkVycm9yOiB0cnVlLFxuICAgICAgZGlzcGxheU1vZGU6IHRydWUsXG4gICAgICBvdXRwdXQ6IGlzTWF0aE1MU3VwcG9ydGVkKCkgPyBcIm1hdGhtbFwiIDogXCJodG1sQW5kTWF0aG1sXCJcbiAgICB9KS5yZXBsYWNlKC9cXG4vZywgXCIgXCIpLnJlcGxhY2UoLzxhbm5vdGF0aW9uLio8XFwvYW5ub3RhdGlvbj4vZywgXCJcIilcbiAgKTtcbn07XG5jb25zdCBjb21tb24kMSA9IHtcbiAgZ2V0Um93cyxcbiAgc2FuaXRpemVUZXh0OiBzYW5pdGl6ZVRleHQkMixcbiAgc2FuaXRpemVUZXh0T3JBcnJheSxcbiAgaGFzQnJlYWtzLFxuICBzcGxpdEJyZWFrcyxcbiAgbGluZUJyZWFrUmVnZXgsXG4gIHJlbW92ZVNjcmlwdCxcbiAgZ2V0VXJsLFxuICBldmFsdWF0ZSxcbiAgZ2V0TWF4LFxuICBnZXRNaW5cbn07XG5jb25zdCBta0JvcmRlciA9IChjb2wsIGRhcmtNb2RlKSA9PiBkYXJrTW9kZSA/IGFkanVzdChjb2wsIHsgczogLTQwLCBsOiAxMCB9KSA6IGFkanVzdChjb2wsIHsgczogLTQwLCBsOiAtMTAgfSk7XG5jb25zdCBvbGRBdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JPZGQgPSBcIiNmZmZmZmZcIjtcbmNvbnN0IG9sZEF0dHJpYnV0ZUJhY2tncm91bmRDb2xvckV2ZW4gPSBcIiNmMmYyZjJcIjtcbmxldCBUaGVtZSQ0ID0gY2xhc3MgVGhlbWUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmJhY2tncm91bmQgPSBcIiNmNGY0ZjRcIjtcbiAgICB0aGlzLnByaW1hcnlDb2xvciA9IFwiI2ZmZjRkZFwiO1xuICAgIHRoaXMubm90ZUJrZ0NvbG9yID0gXCIjZmZmNWFkXCI7XG4gICAgdGhpcy5ub3RlVGV4dENvbG9yID0gXCIjMzMzXCI7XG4gICAgdGhpcy5USEVNRV9DT0xPUl9MSU1JVCA9IDEyO1xuICAgIHRoaXMuZm9udEZhbWlseSA9ICdcInRyZWJ1Y2hldCBtc1wiLCB2ZXJkYW5hLCBhcmlhbCwgc2Fucy1zZXJpZic7XG4gICAgdGhpcy5mb250U2l6ZSA9IFwiMTZweFwiO1xuICB9XG4gIHVwZGF0ZUNvbG9ycygpIHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaSwgX2osIF9rO1xuICAgIHRoaXMucHJpbWFyeVRleHRDb2xvciA9IHRoaXMucHJpbWFyeVRleHRDb2xvciB8fCAodGhpcy5kYXJrTW9kZSA/IFwiI2VlZVwiIDogXCIjMzMzXCIpO1xuICAgIHRoaXMuc2Vjb25kYXJ5Q29sb3IgPSB0aGlzLnNlY29uZGFyeUNvbG9yIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAtMTIwIH0pO1xuICAgIHRoaXMudGVydGlhcnlDb2xvciA9IHRoaXMudGVydGlhcnlDb2xvciB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMTgwLCBsOiA1IH0pO1xuICAgIHRoaXMucHJpbWFyeUJvcmRlckNvbG9yID0gdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3IgfHwgbWtCb3JkZXIodGhpcy5wcmltYXJ5Q29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMuc2Vjb25kYXJ5Qm9yZGVyQ29sb3IgPSB0aGlzLnNlY29uZGFyeUJvcmRlckNvbG9yIHx8IG1rQm9yZGVyKHRoaXMuc2Vjb25kYXJ5Q29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMudGVydGlhcnlCb3JkZXJDb2xvciA9IHRoaXMudGVydGlhcnlCb3JkZXJDb2xvciB8fCBta0JvcmRlcih0aGlzLnRlcnRpYXJ5Q29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMubm90ZUJvcmRlckNvbG9yID0gdGhpcy5ub3RlQm9yZGVyQ29sb3IgfHwgbWtCb3JkZXIodGhpcy5ub3RlQmtnQ29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMubm90ZUJrZ0NvbG9yID0gdGhpcy5ub3RlQmtnQ29sb3IgfHwgXCIjZmZmNWFkXCI7XG4gICAgdGhpcy5ub3RlVGV4dENvbG9yID0gdGhpcy5ub3RlVGV4dENvbG9yIHx8IFwiIzMzM1wiO1xuICAgIHRoaXMuc2Vjb25kYXJ5VGV4dENvbG9yID0gdGhpcy5zZWNvbmRhcnlUZXh0Q29sb3IgfHwgaW52ZXJ0KHRoaXMuc2Vjb25kYXJ5Q29sb3IpO1xuICAgIHRoaXMudGVydGlhcnlUZXh0Q29sb3IgPSB0aGlzLnRlcnRpYXJ5VGV4dENvbG9yIHx8IGludmVydCh0aGlzLnRlcnRpYXJ5Q29sb3IpO1xuICAgIHRoaXMubGluZUNvbG9yID0gdGhpcy5saW5lQ29sb3IgfHwgaW52ZXJ0KHRoaXMuYmFja2dyb3VuZCk7XG4gICAgdGhpcy5hcnJvd2hlYWRDb2xvciA9IHRoaXMuYXJyb3doZWFkQ29sb3IgfHwgaW52ZXJ0KHRoaXMuYmFja2dyb3VuZCk7XG4gICAgdGhpcy50ZXh0Q29sb3IgPSB0aGlzLnRleHRDb2xvciB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5ib3JkZXIyID0gdGhpcy5ib3JkZXIyIHx8IHRoaXMudGVydGlhcnlCb3JkZXJDb2xvcjtcbiAgICB0aGlzLm5vZGVCa2cgPSB0aGlzLm5vZGVCa2cgfHwgdGhpcy5wcmltYXJ5Q29sb3I7XG4gICAgdGhpcy5tYWluQmtnID0gdGhpcy5tYWluQmtnIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMubm9kZUJvcmRlciA9IHRoaXMubm9kZUJvcmRlciB8fCB0aGlzLnByaW1hcnlCb3JkZXJDb2xvcjtcbiAgICB0aGlzLmNsdXN0ZXJCa2cgPSB0aGlzLmNsdXN0ZXJCa2cgfHwgdGhpcy50ZXJ0aWFyeUNvbG9yO1xuICAgIHRoaXMuY2x1c3RlckJvcmRlciA9IHRoaXMuY2x1c3RlckJvcmRlciB8fCB0aGlzLnRlcnRpYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5kZWZhdWx0TGlua0NvbG9yID0gdGhpcy5kZWZhdWx0TGlua0NvbG9yIHx8IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMudGl0bGVDb2xvciA9IHRoaXMudGl0bGVDb2xvciB8fCB0aGlzLnRlcnRpYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMuZWRnZUxhYmVsQmFja2dyb3VuZCA9IHRoaXMuZWRnZUxhYmVsQmFja2dyb3VuZCB8fCAodGhpcy5kYXJrTW9kZSA/IGRhcmtlbih0aGlzLnNlY29uZGFyeUNvbG9yLCAzMCkgOiB0aGlzLnNlY29uZGFyeUNvbG9yKTtcbiAgICB0aGlzLm5vZGVUZXh0Q29sb3IgPSB0aGlzLm5vZGVUZXh0Q29sb3IgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMuYWN0b3JCb3JkZXIgPSB0aGlzLmFjdG9yQm9yZGVyIHx8IHRoaXMucHJpbWFyeUJvcmRlckNvbG9yO1xuICAgIHRoaXMuYWN0b3JCa2cgPSB0aGlzLmFjdG9yQmtnIHx8IHRoaXMubWFpbkJrZztcbiAgICB0aGlzLmFjdG9yVGV4dENvbG9yID0gdGhpcy5hY3RvclRleHRDb2xvciB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5hY3RvckxpbmVDb2xvciA9IHRoaXMuYWN0b3JMaW5lQ29sb3IgfHwgXCJncmV5XCI7XG4gICAgdGhpcy5sYWJlbEJveEJrZ0NvbG9yID0gdGhpcy5sYWJlbEJveEJrZ0NvbG9yIHx8IHRoaXMuYWN0b3JCa2c7XG4gICAgdGhpcy5zaWduYWxDb2xvciA9IHRoaXMuc2lnbmFsQ29sb3IgfHwgdGhpcy50ZXh0Q29sb3I7XG4gICAgdGhpcy5zaWduYWxUZXh0Q29sb3IgPSB0aGlzLnNpZ25hbFRleHRDb2xvciB8fCB0aGlzLnRleHRDb2xvcjtcbiAgICB0aGlzLmxhYmVsQm94Qm9yZGVyQ29sb3IgPSB0aGlzLmxhYmVsQm94Qm9yZGVyQ29sb3IgfHwgdGhpcy5hY3RvckJvcmRlcjtcbiAgICB0aGlzLmxhYmVsVGV4dENvbG9yID0gdGhpcy5sYWJlbFRleHRDb2xvciB8fCB0aGlzLmFjdG9yVGV4dENvbG9yO1xuICAgIHRoaXMubG9vcFRleHRDb2xvciA9IHRoaXMubG9vcFRleHRDb2xvciB8fCB0aGlzLmFjdG9yVGV4dENvbG9yO1xuICAgIHRoaXMuYWN0aXZhdGlvbkJvcmRlckNvbG9yID0gdGhpcy5hY3RpdmF0aW9uQm9yZGVyQ29sb3IgfHwgZGFya2VuKHRoaXMuc2Vjb25kYXJ5Q29sb3IsIDEwKTtcbiAgICB0aGlzLmFjdGl2YXRpb25Ca2dDb2xvciA9IHRoaXMuYWN0aXZhdGlvbkJrZ0NvbG9yIHx8IHRoaXMuc2Vjb25kYXJ5Q29sb3I7XG4gICAgdGhpcy5zZXF1ZW5jZU51bWJlckNvbG9yID0gdGhpcy5zZXF1ZW5jZU51bWJlckNvbG9yIHx8IGludmVydCh0aGlzLmxpbmVDb2xvcik7XG4gICAgdGhpcy5zZWN0aW9uQmtnQ29sb3IgPSB0aGlzLnNlY3Rpb25Ca2dDb2xvciB8fCB0aGlzLnRlcnRpYXJ5Q29sb3I7XG4gICAgdGhpcy5hbHRTZWN0aW9uQmtnQ29sb3IgPSB0aGlzLmFsdFNlY3Rpb25Ca2dDb2xvciB8fCBcIndoaXRlXCI7XG4gICAgdGhpcy5zZWN0aW9uQmtnQ29sb3IgPSB0aGlzLnNlY3Rpb25Ca2dDb2xvciB8fCB0aGlzLnNlY29uZGFyeUNvbG9yO1xuICAgIHRoaXMuc2VjdGlvbkJrZ0NvbG9yMiA9IHRoaXMuc2VjdGlvbkJrZ0NvbG9yMiB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLmV4Y2x1ZGVCa2dDb2xvciA9IHRoaXMuZXhjbHVkZUJrZ0NvbG9yIHx8IFwiI2VlZWVlZVwiO1xuICAgIHRoaXMudGFza0JvcmRlckNvbG9yID0gdGhpcy50YXNrQm9yZGVyQ29sb3IgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy50YXNrQmtnQ29sb3IgPSB0aGlzLnRhc2tCa2dDb2xvciB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLmFjdGl2ZVRhc2tCb3JkZXJDb2xvciA9IHRoaXMuYWN0aXZlVGFza0JvcmRlckNvbG9yIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMuYWN0aXZlVGFza0JrZ0NvbG9yID0gdGhpcy5hY3RpdmVUYXNrQmtnQ29sb3IgfHwgbGlnaHRlbih0aGlzLnByaW1hcnlDb2xvciwgMjMpO1xuICAgIHRoaXMuZ3JpZENvbG9yID0gdGhpcy5ncmlkQ29sb3IgfHwgXCJsaWdodGdyZXlcIjtcbiAgICB0aGlzLmRvbmVUYXNrQmtnQ29sb3IgPSB0aGlzLmRvbmVUYXNrQmtnQ29sb3IgfHwgXCJsaWdodGdyZXlcIjtcbiAgICB0aGlzLmRvbmVUYXNrQm9yZGVyQ29sb3IgPSB0aGlzLmRvbmVUYXNrQm9yZGVyQ29sb3IgfHwgXCJncmV5XCI7XG4gICAgdGhpcy5jcml0Qm9yZGVyQ29sb3IgPSB0aGlzLmNyaXRCb3JkZXJDb2xvciB8fCBcIiNmZjg4ODhcIjtcbiAgICB0aGlzLmNyaXRCa2dDb2xvciA9IHRoaXMuY3JpdEJrZ0NvbG9yIHx8IFwicmVkXCI7XG4gICAgdGhpcy50b2RheUxpbmVDb2xvciA9IHRoaXMudG9kYXlMaW5lQ29sb3IgfHwgXCJyZWRcIjtcbiAgICB0aGlzLnRhc2tUZXh0Q29sb3IgPSB0aGlzLnRhc2tUZXh0Q29sb3IgfHwgdGhpcy50ZXh0Q29sb3I7XG4gICAgdGhpcy50YXNrVGV4dE91dHNpZGVDb2xvciA9IHRoaXMudGFza1RleHRPdXRzaWRlQ29sb3IgfHwgdGhpcy50ZXh0Q29sb3I7XG4gICAgdGhpcy50YXNrVGV4dExpZ2h0Q29sb3IgPSB0aGlzLnRhc2tUZXh0TGlnaHRDb2xvciB8fCB0aGlzLnRleHRDb2xvcjtcbiAgICB0aGlzLnRhc2tUZXh0Q29sb3IgPSB0aGlzLnRhc2tUZXh0Q29sb3IgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMudGFza1RleHREYXJrQ29sb3IgPSB0aGlzLnRhc2tUZXh0RGFya0NvbG9yIHx8IHRoaXMudGV4dENvbG9yO1xuICAgIHRoaXMudGFza1RleHRDbGlja2FibGVDb2xvciA9IHRoaXMudGFza1RleHRDbGlja2FibGVDb2xvciB8fCBcIiMwMDMxNjNcIjtcbiAgICB0aGlzLnBlcnNvbkJvcmRlciA9IHRoaXMucGVyc29uQm9yZGVyIHx8IHRoaXMucHJpbWFyeUJvcmRlckNvbG9yO1xuICAgIHRoaXMucGVyc29uQmtnID0gdGhpcy5wZXJzb25Ca2cgfHwgdGhpcy5tYWluQmtnO1xuICAgIHRoaXMudHJhbnNpdGlvbkNvbG9yID0gdGhpcy50cmFuc2l0aW9uQ29sb3IgfHwgdGhpcy5saW5lQ29sb3I7XG4gICAgdGhpcy50cmFuc2l0aW9uTGFiZWxDb2xvciA9IHRoaXMudHJhbnNpdGlvbkxhYmVsQ29sb3IgfHwgdGhpcy50ZXh0Q29sb3I7XG4gICAgdGhpcy5zdGF0ZUxhYmVsQ29sb3IgPSB0aGlzLnN0YXRlTGFiZWxDb2xvciB8fCB0aGlzLnN0YXRlQmtnIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnN0YXRlQmtnID0gdGhpcy5zdGF0ZUJrZyB8fCB0aGlzLm1haW5Ca2c7XG4gICAgdGhpcy5sYWJlbEJhY2tncm91bmRDb2xvciA9IHRoaXMubGFiZWxCYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5zdGF0ZUJrZztcbiAgICB0aGlzLmNvbXBvc2l0ZUJhY2tncm91bmQgPSB0aGlzLmNvbXBvc2l0ZUJhY2tncm91bmQgfHwgdGhpcy5iYWNrZ3JvdW5kIHx8IHRoaXMudGVydGlhcnlDb2xvcjtcbiAgICB0aGlzLmFsdEJhY2tncm91bmQgPSB0aGlzLmFsdEJhY2tncm91bmQgfHwgdGhpcy50ZXJ0aWFyeUNvbG9yO1xuICAgIHRoaXMuY29tcG9zaXRlVGl0bGVCYWNrZ3JvdW5kID0gdGhpcy5jb21wb3NpdGVUaXRsZUJhY2tncm91bmQgfHwgdGhpcy5tYWluQmtnO1xuICAgIHRoaXMuY29tcG9zaXRlQm9yZGVyID0gdGhpcy5jb21wb3NpdGVCb3JkZXIgfHwgdGhpcy5ub2RlQm9yZGVyO1xuICAgIHRoaXMuaW5uZXJFbmRCYWNrZ3JvdW5kID0gdGhpcy5ub2RlQm9yZGVyO1xuICAgIHRoaXMuZXJyb3JCa2dDb2xvciA9IHRoaXMuZXJyb3JCa2dDb2xvciB8fCB0aGlzLnRlcnRpYXJ5Q29sb3I7XG4gICAgdGhpcy5lcnJvclRleHRDb2xvciA9IHRoaXMuZXJyb3JUZXh0Q29sb3IgfHwgdGhpcy50ZXJ0aWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnRyYW5zaXRpb25Db2xvciA9IHRoaXMudHJhbnNpdGlvbkNvbG9yIHx8IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMuc3BlY2lhbFN0YXRlQ29sb3IgPSB0aGlzLmxpbmVDb2xvcjtcbiAgICB0aGlzLmNTY2FsZTAgPSB0aGlzLmNTY2FsZTAgfHwgdGhpcy5wcmltYXJ5Q29sb3I7XG4gICAgdGhpcy5jU2NhbGUxID0gdGhpcy5jU2NhbGUxIHx8IHRoaXMuc2Vjb25kYXJ5Q29sb3I7XG4gICAgdGhpcy5jU2NhbGUyID0gdGhpcy5jU2NhbGUyIHx8IHRoaXMudGVydGlhcnlDb2xvcjtcbiAgICB0aGlzLmNTY2FsZTMgPSB0aGlzLmNTY2FsZTMgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDMwIH0pO1xuICAgIHRoaXMuY1NjYWxlNCA9IHRoaXMuY1NjYWxlNCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogNjAgfSk7XG4gICAgdGhpcy5jU2NhbGU1ID0gdGhpcy5jU2NhbGU1IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiA5MCB9KTtcbiAgICB0aGlzLmNTY2FsZTYgPSB0aGlzLmNTY2FsZTYgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDEyMCB9KTtcbiAgICB0aGlzLmNTY2FsZTcgPSB0aGlzLmNTY2FsZTcgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDE1MCB9KTtcbiAgICB0aGlzLmNTY2FsZTggPSB0aGlzLmNTY2FsZTggfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDIxMCwgbDogMTUwIH0pO1xuICAgIHRoaXMuY1NjYWxlOSA9IHRoaXMuY1NjYWxlOSB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMjcwIH0pO1xuICAgIHRoaXMuY1NjYWxlMTAgPSB0aGlzLmNTY2FsZTEwIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAzMDAgfSk7XG4gICAgdGhpcy5jU2NhbGUxMSA9IHRoaXMuY1NjYWxlMTEgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDMzMCB9KTtcbiAgICBpZiAodGhpcy5kYXJrTW9kZSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICAgICAgdGhpc1tcImNTY2FsZVwiICsgaV0gPSBkYXJrZW4odGhpc1tcImNTY2FsZVwiICsgaV0sIDc1KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICAgICAgdGhpc1tcImNTY2FsZVwiICsgaV0gPSBkYXJrZW4odGhpc1tcImNTY2FsZVwiICsgaV0sIDI1KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICAgIHRoaXNbXCJjU2NhbGVJbnZcIiArIGldID0gdGhpc1tcImNTY2FsZUludlwiICsgaV0gfHwgaW52ZXJ0KHRoaXNbXCJjU2NhbGVcIiArIGldKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmRhcmtNb2RlKSB7XG4gICAgICAgIHRoaXNbXCJjU2NhbGVQZWVyXCIgKyBpXSA9IHRoaXNbXCJjU2NhbGVQZWVyXCIgKyBpXSB8fCBsaWdodGVuKHRoaXNbXCJjU2NhbGVcIiArIGldLCAxMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzW1wiY1NjYWxlUGVlclwiICsgaV0gPSB0aGlzW1wiY1NjYWxlUGVlclwiICsgaV0gfHwgZGFya2VuKHRoaXNbXCJjU2NhbGVcIiArIGldLCAxMCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2NhbGVMYWJlbENvbG9yID0gdGhpcy5zY2FsZUxhYmVsQ29sb3IgfHwgdGhpcy5sYWJlbFRleHRDb2xvcjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuVEhFTUVfQ09MT1JfTElNSVQ7IGkrKykge1xuICAgICAgdGhpc1tcImNTY2FsZUxhYmVsXCIgKyBpXSA9IHRoaXNbXCJjU2NhbGVMYWJlbFwiICsgaV0gfHwgdGhpcy5zY2FsZUxhYmVsQ29sb3I7XG4gICAgfVxuICAgIGNvbnN0IG11bHRpcGxpZXIgPSB0aGlzLmRhcmtNb2RlID8gLTQgOiAtMTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgICAgdGhpc1tcInN1cmZhY2VcIiArIGldID0gdGhpc1tcInN1cmZhY2VcIiArIGldIHx8IGFkanVzdCh0aGlzLm1haW5Ca2csIHsgaDogMTgwLCBzOiAtMTUsIGw6IG11bHRpcGxpZXIgKiAoNSArIGkgKiAzKSB9KTtcbiAgICAgIHRoaXNbXCJzdXJmYWNlUGVlclwiICsgaV0gPSB0aGlzW1wic3VyZmFjZVBlZXJcIiArIGldIHx8IGFkanVzdCh0aGlzLm1haW5Ca2csIHsgaDogMTgwLCBzOiAtMTUsIGw6IG11bHRpcGxpZXIgKiAoOCArIGkgKiAzKSB9KTtcbiAgICB9XG4gICAgdGhpcy5jbGFzc1RleHQgPSB0aGlzLmNsYXNzVGV4dCB8fCB0aGlzLnRleHRDb2xvcjtcbiAgICB0aGlzLmZpbGxUeXBlMCA9IHRoaXMuZmlsbFR5cGUwIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMuZmlsbFR5cGUxID0gdGhpcy5maWxsVHlwZTEgfHwgdGhpcy5zZWNvbmRhcnlDb2xvcjtcbiAgICB0aGlzLmZpbGxUeXBlMiA9IHRoaXMuZmlsbFR5cGUyIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiA2NCB9KTtcbiAgICB0aGlzLmZpbGxUeXBlMyA9IHRoaXMuZmlsbFR5cGUzIHx8IGFkanVzdCh0aGlzLnNlY29uZGFyeUNvbG9yLCB7IGg6IDY0IH0pO1xuICAgIHRoaXMuZmlsbFR5cGU0ID0gdGhpcy5maWxsVHlwZTQgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IC02NCB9KTtcbiAgICB0aGlzLmZpbGxUeXBlNSA9IHRoaXMuZmlsbFR5cGU1IHx8IGFkanVzdCh0aGlzLnNlY29uZGFyeUNvbG9yLCB7IGg6IC02NCB9KTtcbiAgICB0aGlzLmZpbGxUeXBlNiA9IHRoaXMuZmlsbFR5cGU2IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAxMjggfSk7XG4gICAgdGhpcy5maWxsVHlwZTcgPSB0aGlzLmZpbGxUeXBlNyB8fCBhZGp1c3QodGhpcy5zZWNvbmRhcnlDb2xvciwgeyBoOiAxMjggfSk7XG4gICAgdGhpcy5waWUxID0gdGhpcy5waWUxIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMucGllMiA9IHRoaXMucGllMiB8fCB0aGlzLnNlY29uZGFyeUNvbG9yO1xuICAgIHRoaXMucGllMyA9IHRoaXMucGllMyB8fCB0aGlzLnRlcnRpYXJ5Q29sb3I7XG4gICAgdGhpcy5waWU0ID0gdGhpcy5waWU0IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBsOiAtMTAgfSk7XG4gICAgdGhpcy5waWU1ID0gdGhpcy5waWU1IHx8IGFkanVzdCh0aGlzLnNlY29uZGFyeUNvbG9yLCB7IGw6IC0xMCB9KTtcbiAgICB0aGlzLnBpZTYgPSB0aGlzLnBpZTYgfHwgYWRqdXN0KHRoaXMudGVydGlhcnlDb2xvciwgeyBsOiAtMTAgfSk7XG4gICAgdGhpcy5waWU3ID0gdGhpcy5waWU3IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiA2MCwgbDogLTEwIH0pO1xuICAgIHRoaXMucGllOCA9IHRoaXMucGllOCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTYwLCBsOiAtMTAgfSk7XG4gICAgdGhpcy5waWU5ID0gdGhpcy5waWU5IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAxMjAsIGw6IDAgfSk7XG4gICAgdGhpcy5waWUxMCA9IHRoaXMucGllMTAgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDYwLCBsOiAtMjAgfSk7XG4gICAgdGhpcy5waWUxMSA9IHRoaXMucGllMTEgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IC02MCwgbDogLTIwIH0pO1xuICAgIHRoaXMucGllMTIgPSB0aGlzLnBpZTEyIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAxMjAsIGw6IC0xMCB9KTtcbiAgICB0aGlzLnBpZVRpdGxlVGV4dFNpemUgPSB0aGlzLnBpZVRpdGxlVGV4dFNpemUgfHwgXCIyNXB4XCI7XG4gICAgdGhpcy5waWVUaXRsZVRleHRDb2xvciA9IHRoaXMucGllVGl0bGVUZXh0Q29sb3IgfHwgdGhpcy50YXNrVGV4dERhcmtDb2xvcjtcbiAgICB0aGlzLnBpZVNlY3Rpb25UZXh0U2l6ZSA9IHRoaXMucGllU2VjdGlvblRleHRTaXplIHx8IFwiMTdweFwiO1xuICAgIHRoaXMucGllU2VjdGlvblRleHRDb2xvciA9IHRoaXMucGllU2VjdGlvblRleHRDb2xvciB8fCB0aGlzLnRleHRDb2xvcjtcbiAgICB0aGlzLnBpZUxlZ2VuZFRleHRTaXplID0gdGhpcy5waWVMZWdlbmRUZXh0U2l6ZSB8fCBcIjE3cHhcIjtcbiAgICB0aGlzLnBpZUxlZ2VuZFRleHRDb2xvciA9IHRoaXMucGllTGVnZW5kVGV4dENvbG9yIHx8IHRoaXMudGFza1RleHREYXJrQ29sb3I7XG4gICAgdGhpcy5waWVTdHJva2VDb2xvciA9IHRoaXMucGllU3Ryb2tlQ29sb3IgfHwgXCJibGFja1wiO1xuICAgIHRoaXMucGllU3Ryb2tlV2lkdGggPSB0aGlzLnBpZVN0cm9rZVdpZHRoIHx8IFwiMnB4XCI7XG4gICAgdGhpcy5waWVPdXRlclN0cm9rZVdpZHRoID0gdGhpcy5waWVPdXRlclN0cm9rZVdpZHRoIHx8IFwiMnB4XCI7XG4gICAgdGhpcy5waWVPdXRlclN0cm9rZUNvbG9yID0gdGhpcy5waWVPdXRlclN0cm9rZUNvbG9yIHx8IFwiYmxhY2tcIjtcbiAgICB0aGlzLnBpZU9wYWNpdHkgPSB0aGlzLnBpZU9wYWNpdHkgfHwgXCIwLjdcIjtcbiAgICB0aGlzLnF1YWRyYW50MUZpbGwgPSB0aGlzLnF1YWRyYW50MUZpbGwgfHwgdGhpcy5wcmltYXJ5Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudDJGaWxsID0gdGhpcy5xdWFkcmFudDJGaWxsIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyByOiA1LCBnOiA1LCBiOiA1IH0pO1xuICAgIHRoaXMucXVhZHJhbnQzRmlsbCA9IHRoaXMucXVhZHJhbnQzRmlsbCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgcjogMTAsIGc6IDEwLCBiOiAxMCB9KTtcbiAgICB0aGlzLnF1YWRyYW50NEZpbGwgPSB0aGlzLnF1YWRyYW50NEZpbGwgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IHI6IDE1LCBnOiAxNSwgYjogMTUgfSk7XG4gICAgdGhpcy5xdWFkcmFudDFUZXh0RmlsbCA9IHRoaXMucXVhZHJhbnQxVGV4dEZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMucXVhZHJhbnQyVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50MlRleHRGaWxsIHx8IGFkanVzdCh0aGlzLnByaW1hcnlUZXh0Q29sb3IsIHsgcjogLTUsIGc6IC01LCBiOiAtNSB9KTtcbiAgICB0aGlzLnF1YWRyYW50M1RleHRGaWxsID0gdGhpcy5xdWFkcmFudDNUZXh0RmlsbCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5VGV4dENvbG9yLCB7IHI6IC0xMCwgZzogLTEwLCBiOiAtMTAgfSk7XG4gICAgdGhpcy5xdWFkcmFudDRUZXh0RmlsbCA9IHRoaXMucXVhZHJhbnQ0VGV4dEZpbGwgfHwgYWRqdXN0KHRoaXMucHJpbWFyeVRleHRDb2xvciwgeyByOiAtMTUsIGc6IC0xNSwgYjogLTE1IH0pO1xuICAgIHRoaXMucXVhZHJhbnRQb2ludEZpbGwgPSB0aGlzLnF1YWRyYW50UG9pbnRGaWxsIHx8IGlzRGFyayh0aGlzLnF1YWRyYW50MUZpbGwpID8gbGlnaHRlbih0aGlzLnF1YWRyYW50MUZpbGwpIDogZGFya2VuKHRoaXMucXVhZHJhbnQxRmlsbCk7XG4gICAgdGhpcy5xdWFkcmFudFBvaW50VGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50UG9pbnRUZXh0RmlsbCB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudFhBeGlzVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50WEF4aXNUZXh0RmlsbCB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudFlBeGlzVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50WUF4aXNUZXh0RmlsbCB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudEludGVybmFsQm9yZGVyU3Ryb2tlRmlsbCA9IHRoaXMucXVhZHJhbnRJbnRlcm5hbEJvcmRlclN0cm9rZUZpbGwgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5xdWFkcmFudEV4dGVybmFsQm9yZGVyU3Ryb2tlRmlsbCA9IHRoaXMucXVhZHJhbnRFeHRlcm5hbEJvcmRlclN0cm9rZUZpbGwgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5xdWFkcmFudFRpdGxlRmlsbCA9IHRoaXMucXVhZHJhbnRUaXRsZUZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMueHlDaGFydCA9IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogKChfYSA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmJhY2tncm91bmRDb2xvcikgfHwgdGhpcy5iYWNrZ3JvdW5kLFxuICAgICAgdGl0bGVDb2xvcjogKChfYiA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnRpdGxlQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHhBeGlzVGl0bGVDb2xvcjogKChfYyA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jLnhBeGlzVGl0bGVDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeEF4aXNMYWJlbENvbG9yOiAoKF9kID0gdGhpcy54eUNoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2QueEF4aXNMYWJlbENvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB4QXhpc1RpY2tDb2xvcjogKChfZSA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lLnhBeGlzVGlja0NvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB4QXhpc0xpbmVDb2xvcjogKChfZiA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9mLnhBeGlzTGluZUNvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB5QXhpc1RpdGxlQ29sb3I6ICgoX2cgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfZy55QXhpc1RpdGxlQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHlBeGlzTGFiZWxDb2xvcjogKChfaCA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9oLnlBeGlzTGFiZWxDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeUF4aXNUaWNrQ29sb3I6ICgoX2kgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfaS55QXhpc1RpY2tDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeUF4aXNMaW5lQ29sb3I6ICgoX2ogPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfai55QXhpc0xpbmVDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgcGxvdENvbG9yUGFsZXR0ZTogKChfayA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9rLnBsb3RDb2xvclBhbGV0dGUpIHx8IFwiI0ZGRjRERCwjRkZEOEIxLCNGRkEwN0EsI0VDRUZGMSwjRDZEQkRGLCNDM0UwQTgsI0ZGQjZBNCwjRkZENzRELCM3MzhGQTcsI0ZGRkZGMFwiXG4gICAgfTtcbiAgICB0aGlzLnJlcXVpcmVtZW50QmFja2dyb3VuZCA9IHRoaXMucmVxdWlyZW1lbnRCYWNrZ3JvdW5kIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMucmVxdWlyZW1lbnRCb3JkZXJDb2xvciA9IHRoaXMucmVxdWlyZW1lbnRCb3JkZXJDb2xvciB8fCB0aGlzLnByaW1hcnlCb3JkZXJDb2xvcjtcbiAgICB0aGlzLnJlcXVpcmVtZW50Qm9yZGVyU2l6ZSA9IHRoaXMucmVxdWlyZW1lbnRCb3JkZXJTaXplIHx8IFwiMVwiO1xuICAgIHRoaXMucmVxdWlyZW1lbnRUZXh0Q29sb3IgPSB0aGlzLnJlcXVpcmVtZW50VGV4dENvbG9yIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnJlbGF0aW9uQ29sb3IgPSB0aGlzLnJlbGF0aW9uQ29sb3IgfHwgdGhpcy5saW5lQ29sb3I7XG4gICAgdGhpcy5yZWxhdGlvbkxhYmVsQmFja2dyb3VuZCA9IHRoaXMucmVsYXRpb25MYWJlbEJhY2tncm91bmQgfHwgKHRoaXMuZGFya01vZGUgPyBkYXJrZW4odGhpcy5zZWNvbmRhcnlDb2xvciwgMzApIDogdGhpcy5zZWNvbmRhcnlDb2xvcik7XG4gICAgdGhpcy5yZWxhdGlvbkxhYmVsQ29sb3IgPSB0aGlzLnJlbGF0aW9uTGFiZWxDb2xvciB8fCB0aGlzLmFjdG9yVGV4dENvbG9yO1xuICAgIHRoaXMuZ2l0MCA9IHRoaXMuZ2l0MCB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLmdpdDEgPSB0aGlzLmdpdDEgfHwgdGhpcy5zZWNvbmRhcnlDb2xvcjtcbiAgICB0aGlzLmdpdDIgPSB0aGlzLmdpdDIgfHwgdGhpcy50ZXJ0aWFyeUNvbG9yO1xuICAgIHRoaXMuZ2l0MyA9IHRoaXMuZ2l0MyB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTMwIH0pO1xuICAgIHRoaXMuZ2l0NCA9IHRoaXMuZ2l0NCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTYwIH0pO1xuICAgIHRoaXMuZ2l0NSA9IHRoaXMuZ2l0NSB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTkwIH0pO1xuICAgIHRoaXMuZ2l0NiA9IHRoaXMuZ2l0NiB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogNjAgfSk7XG4gICAgdGhpcy5naXQ3ID0gdGhpcy5naXQ3IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAxMjAgfSk7XG4gICAgaWYgKHRoaXMuZGFya01vZGUpIHtcbiAgICAgIHRoaXMuZ2l0MCA9IGxpZ2h0ZW4odGhpcy5naXQwLCAyNSk7XG4gICAgICB0aGlzLmdpdDEgPSBsaWdodGVuKHRoaXMuZ2l0MSwgMjUpO1xuICAgICAgdGhpcy5naXQyID0gbGlnaHRlbih0aGlzLmdpdDIsIDI1KTtcbiAgICAgIHRoaXMuZ2l0MyA9IGxpZ2h0ZW4odGhpcy5naXQzLCAyNSk7XG4gICAgICB0aGlzLmdpdDQgPSBsaWdodGVuKHRoaXMuZ2l0NCwgMjUpO1xuICAgICAgdGhpcy5naXQ1ID0gbGlnaHRlbih0aGlzLmdpdDUsIDI1KTtcbiAgICAgIHRoaXMuZ2l0NiA9IGxpZ2h0ZW4odGhpcy5naXQ2LCAyNSk7XG4gICAgICB0aGlzLmdpdDcgPSBsaWdodGVuKHRoaXMuZ2l0NywgMjUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdpdDAgPSBkYXJrZW4odGhpcy5naXQwLCAyNSk7XG4gICAgICB0aGlzLmdpdDEgPSBkYXJrZW4odGhpcy5naXQxLCAyNSk7XG4gICAgICB0aGlzLmdpdDIgPSBkYXJrZW4odGhpcy5naXQyLCAyNSk7XG4gICAgICB0aGlzLmdpdDMgPSBkYXJrZW4odGhpcy5naXQzLCAyNSk7XG4gICAgICB0aGlzLmdpdDQgPSBkYXJrZW4odGhpcy5naXQ0LCAyNSk7XG4gICAgICB0aGlzLmdpdDUgPSBkYXJrZW4odGhpcy5naXQ1LCAyNSk7XG4gICAgICB0aGlzLmdpdDYgPSBkYXJrZW4odGhpcy5naXQ2LCAyNSk7XG4gICAgICB0aGlzLmdpdDcgPSBkYXJrZW4odGhpcy5naXQ3LCAyNSk7XG4gICAgfVxuICAgIHRoaXMuZ2l0SW52MCA9IHRoaXMuZ2l0SW52MCB8fCBpbnZlcnQodGhpcy5naXQwKTtcbiAgICB0aGlzLmdpdEludjEgPSB0aGlzLmdpdEludjEgfHwgaW52ZXJ0KHRoaXMuZ2l0MSk7XG4gICAgdGhpcy5naXRJbnYyID0gdGhpcy5naXRJbnYyIHx8IGludmVydCh0aGlzLmdpdDIpO1xuICAgIHRoaXMuZ2l0SW52MyA9IHRoaXMuZ2l0SW52MyB8fCBpbnZlcnQodGhpcy5naXQzKTtcbiAgICB0aGlzLmdpdEludjQgPSB0aGlzLmdpdEludjQgfHwgaW52ZXJ0KHRoaXMuZ2l0NCk7XG4gICAgdGhpcy5naXRJbnY1ID0gdGhpcy5naXRJbnY1IHx8IGludmVydCh0aGlzLmdpdDUpO1xuICAgIHRoaXMuZ2l0SW52NiA9IHRoaXMuZ2l0SW52NiB8fCBpbnZlcnQodGhpcy5naXQ2KTtcbiAgICB0aGlzLmdpdEludjcgPSB0aGlzLmdpdEludjcgfHwgaW52ZXJ0KHRoaXMuZ2l0Nyk7XG4gICAgdGhpcy5icmFuY2hMYWJlbENvbG9yID0gdGhpcy5icmFuY2hMYWJlbENvbG9yIHx8ICh0aGlzLmRhcmtNb2RlID8gXCJibGFja1wiIDogdGhpcy5sYWJlbFRleHRDb2xvcik7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDAgPSB0aGlzLmdpdEJyYW5jaExhYmVsMCB8fCB0aGlzLmJyYW5jaExhYmVsQ29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDEgPSB0aGlzLmdpdEJyYW5jaExhYmVsMSB8fCB0aGlzLmJyYW5jaExhYmVsQ29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDIgPSB0aGlzLmdpdEJyYW5jaExhYmVsMiB8fCB0aGlzLmJyYW5jaExhYmVsQ29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDMgPSB0aGlzLmdpdEJyYW5jaExhYmVsMyB8fCB0aGlzLmJyYW5jaExhYmVsQ29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDQgPSB0aGlzLmdpdEJyYW5jaExhYmVsNCB8fCB0aGlzLmJyYW5jaExhYmVsQ29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDUgPSB0aGlzLmdpdEJyYW5jaExhYmVsNSB8fCB0aGlzLmJyYW5jaExhYmVsQ29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDYgPSB0aGlzLmdpdEJyYW5jaExhYmVsNiB8fCB0aGlzLmJyYW5jaExhYmVsQ29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDcgPSB0aGlzLmdpdEJyYW5jaExhYmVsNyB8fCB0aGlzLmJyYW5jaExhYmVsQ29sb3I7XG4gICAgdGhpcy50YWdMYWJlbENvbG9yID0gdGhpcy50YWdMYWJlbENvbG9yIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnRhZ0xhYmVsQmFja2dyb3VuZCA9IHRoaXMudGFnTGFiZWxCYWNrZ3JvdW5kIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMudGFnTGFiZWxCb3JkZXIgPSB0aGlzLnRhZ0JvcmRlciB8fCB0aGlzLnByaW1hcnlCb3JkZXJDb2xvcjtcbiAgICB0aGlzLnRhZ0xhYmVsRm9udFNpemUgPSB0aGlzLnRhZ0xhYmVsRm9udFNpemUgfHwgXCIxMHB4XCI7XG4gICAgdGhpcy5jb21taXRMYWJlbENvbG9yID0gdGhpcy5jb21taXRMYWJlbENvbG9yIHx8IHRoaXMuc2Vjb25kYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMuY29tbWl0TGFiZWxCYWNrZ3JvdW5kID0gdGhpcy5jb21taXRMYWJlbEJhY2tncm91bmQgfHwgdGhpcy5zZWNvbmRhcnlDb2xvcjtcbiAgICB0aGlzLmNvbW1pdExhYmVsRm9udFNpemUgPSB0aGlzLmNvbW1pdExhYmVsRm9udFNpemUgfHwgXCIxMHB4XCI7XG4gICAgdGhpcy5hdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JPZGQgPSB0aGlzLmF0dHJpYnV0ZUJhY2tncm91bmRDb2xvck9kZCB8fCBvbGRBdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JPZGQ7XG4gICAgdGhpcy5hdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JFdmVuID0gdGhpcy5hdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JFdmVuIHx8IG9sZEF0dHJpYnV0ZUJhY2tncm91bmRDb2xvckV2ZW47XG4gIH1cbiAgY2FsY3VsYXRlKG92ZXJyaWRlcykge1xuICAgIGlmICh0eXBlb2Ygb3ZlcnJpZGVzICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbG9ycygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3ZlcnJpZGVzKTtcbiAgICBrZXlzLmZvckVhY2goKGspID0+IHtcbiAgICAgIHRoaXNba10gPSBvdmVycmlkZXNba107XG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVDb2xvcnMoKTtcbiAgICBrZXlzLmZvckVhY2goKGspID0+IHtcbiAgICAgIHRoaXNba10gPSBvdmVycmlkZXNba107XG4gICAgfSk7XG4gIH1cbn07XG5jb25zdCBnZXRUaGVtZVZhcmlhYmxlcyQ0ID0gKHVzZXJPdmVycmlkZXMpID0+IHtcbiAgY29uc3QgdGhlbWUyID0gbmV3IFRoZW1lJDQoKTtcbiAgdGhlbWUyLmNhbGN1bGF0ZSh1c2VyT3ZlcnJpZGVzKTtcbiAgcmV0dXJuIHRoZW1lMjtcbn07XG5sZXQgVGhlbWUkMyA9IGNsYXNzIFRoZW1lMiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYmFja2dyb3VuZCA9IFwiIzMzM1wiO1xuICAgIHRoaXMucHJpbWFyeUNvbG9yID0gXCIjMWYyMDIwXCI7XG4gICAgdGhpcy5zZWNvbmRhcnlDb2xvciA9IGxpZ2h0ZW4odGhpcy5wcmltYXJ5Q29sb3IsIDE2KTtcbiAgICB0aGlzLnRlcnRpYXJ5Q29sb3IgPSBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTE2MCB9KTtcbiAgICB0aGlzLnByaW1hcnlCb3JkZXJDb2xvciA9IGludmVydCh0aGlzLmJhY2tncm91bmQpO1xuICAgIHRoaXMuc2Vjb25kYXJ5Qm9yZGVyQ29sb3IgPSBta0JvcmRlcih0aGlzLnNlY29uZGFyeUNvbG9yLCB0aGlzLmRhcmtNb2RlKTtcbiAgICB0aGlzLnRlcnRpYXJ5Qm9yZGVyQ29sb3IgPSBta0JvcmRlcih0aGlzLnRlcnRpYXJ5Q29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMucHJpbWFyeVRleHRDb2xvciA9IGludmVydCh0aGlzLnByaW1hcnlDb2xvcik7XG4gICAgdGhpcy5zZWNvbmRhcnlUZXh0Q29sb3IgPSBpbnZlcnQodGhpcy5zZWNvbmRhcnlDb2xvcik7XG4gICAgdGhpcy50ZXJ0aWFyeVRleHRDb2xvciA9IGludmVydCh0aGlzLnRlcnRpYXJ5Q29sb3IpO1xuICAgIHRoaXMubGluZUNvbG9yID0gaW52ZXJ0KHRoaXMuYmFja2dyb3VuZCk7XG4gICAgdGhpcy50ZXh0Q29sb3IgPSBpbnZlcnQodGhpcy5iYWNrZ3JvdW5kKTtcbiAgICB0aGlzLm1haW5Ca2cgPSBcIiMxZjIwMjBcIjtcbiAgICB0aGlzLnNlY29uZEJrZyA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMubWFpbkNvbnRyYXN0Q29sb3IgPSBcImxpZ2h0Z3JleVwiO1xuICAgIHRoaXMuZGFya1RleHRDb2xvciA9IGxpZ2h0ZW4oaW52ZXJ0KFwiIzMyM0Q0N1wiKSwgMTApO1xuICAgIHRoaXMubGluZUNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5ib3JkZXIxID0gXCIjODFCMURCXCI7XG4gICAgdGhpcy5ib3JkZXIyID0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICB0aGlzLmFycm93aGVhZENvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5mb250RmFtaWx5ID0gJ1widHJlYnVjaGV0IG1zXCIsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmJztcbiAgICB0aGlzLmZvbnRTaXplID0gXCIxNnB4XCI7XG4gICAgdGhpcy5sYWJlbEJhY2tncm91bmQgPSBcIiMxODE4MThcIjtcbiAgICB0aGlzLnRleHRDb2xvciA9IFwiI2NjY1wiO1xuICAgIHRoaXMuVEhFTUVfQ09MT1JfTElNSVQgPSAxMjtcbiAgICB0aGlzLm5vZGVCa2cgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLm5vZGVCb3JkZXIgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmNsdXN0ZXJCa2cgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmNsdXN0ZXJCb3JkZXIgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmRlZmF1bHRMaW5rQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRpdGxlQ29sb3IgPSBcIiNGOUZGRkVcIjtcbiAgICB0aGlzLmVkZ2VMYWJlbEJhY2tncm91bmQgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmFjdG9yQm9yZGVyID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5hY3RvckJrZyA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuYWN0b3JUZXh0Q29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmFjdG9yTGluZUNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5zaWduYWxDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuc2lnbmFsVGV4dENvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5sYWJlbEJveEJrZ0NvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5sYWJlbEJveEJvcmRlckNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5sYWJlbFRleHRDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMubG9vcFRleHRDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMubm90ZUJvcmRlckNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5ub3RlQmtnQ29sb3IgPSBcIiNmZmY1YWRcIjtcbiAgICB0aGlzLm5vdGVUZXh0Q29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmFjdGl2YXRpb25Cb3JkZXJDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuYWN0aXZhdGlvbkJrZ0NvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5zZXF1ZW5jZU51bWJlckNvbG9yID0gXCJibGFja1wiO1xuICAgIHRoaXMuc2VjdGlvbkJrZ0NvbG9yID0gZGFya2VuKFwiI0VBRThEOVwiLCAzMCk7XG4gICAgdGhpcy5hbHRTZWN0aW9uQmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnNlY3Rpb25Ca2dDb2xvcjIgPSBcIiNFQUU4RDlcIjtcbiAgICB0aGlzLmV4Y2x1ZGVCa2dDb2xvciA9IGRhcmtlbih0aGlzLnNlY3Rpb25Ca2dDb2xvciwgMTApO1xuICAgIHRoaXMudGFza0JvcmRlckNvbG9yID0gcmdiYSgyNTUsIDI1NSwgMjU1LCA3MCk7XG4gICAgdGhpcy50YXNrQmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRhc2tUZXh0Q29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRhc2tUZXh0TGlnaHRDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMudGFza1RleHRPdXRzaWRlQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRhc2tUZXh0Q2xpY2thYmxlQ29sb3IgPSBcIiMwMDMxNjNcIjtcbiAgICB0aGlzLmFjdGl2ZVRhc2tCb3JkZXJDb2xvciA9IHJnYmEoMjU1LCAyNTUsIDI1NSwgNTApO1xuICAgIHRoaXMuYWN0aXZlVGFza0JrZ0NvbG9yID0gXCIjODFCMURCXCI7XG4gICAgdGhpcy5ncmlkQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmRvbmVUYXNrQmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmRvbmVUYXNrQm9yZGVyQ29sb3IgPSBcImdyZXlcIjtcbiAgICB0aGlzLmNyaXRCb3JkZXJDb2xvciA9IFwiI0U4MzczN1wiO1xuICAgIHRoaXMuY3JpdEJrZ0NvbG9yID0gXCIjRTgzNzM3XCI7XG4gICAgdGhpcy50YXNrVGV4dERhcmtDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMudG9kYXlMaW5lQ29sb3IgPSBcIiNEQjU3NTdcIjtcbiAgICB0aGlzLnBlcnNvbkJvcmRlciA9IHRoaXMucHJpbWFyeUJvcmRlckNvbG9yO1xuICAgIHRoaXMucGVyc29uQmtnID0gdGhpcy5tYWluQmtnO1xuICAgIHRoaXMubGFiZWxDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuZXJyb3JCa2dDb2xvciA9IFwiI2E0NDE0MVwiO1xuICAgIHRoaXMuZXJyb3JUZXh0Q29sb3IgPSBcIiNkZGRcIjtcbiAgfVxuICB1cGRhdGVDb2xvcnMoKSB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2ksIF9qLCBfaztcbiAgICB0aGlzLnNlY29uZEJrZyA9IGxpZ2h0ZW4odGhpcy5tYWluQmtnLCAxNik7XG4gICAgdGhpcy5saW5lQ29sb3IgPSB0aGlzLm1haW5Db250cmFzdENvbG9yO1xuICAgIHRoaXMuYXJyb3doZWFkQ29sb3IgPSB0aGlzLm1haW5Db250cmFzdENvbG9yO1xuICAgIHRoaXMubm9kZUJrZyA9IHRoaXMubWFpbkJrZztcbiAgICB0aGlzLm5vZGVCb3JkZXIgPSB0aGlzLmJvcmRlcjE7XG4gICAgdGhpcy5jbHVzdGVyQmtnID0gdGhpcy5zZWNvbmRCa2c7XG4gICAgdGhpcy5jbHVzdGVyQm9yZGVyID0gdGhpcy5ib3JkZXIyO1xuICAgIHRoaXMuZGVmYXVsdExpbmtDb2xvciA9IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMuZWRnZUxhYmVsQmFja2dyb3VuZCA9IGxpZ2h0ZW4odGhpcy5sYWJlbEJhY2tncm91bmQsIDI1KTtcbiAgICB0aGlzLmFjdG9yQm9yZGVyID0gdGhpcy5ib3JkZXIxO1xuICAgIHRoaXMuYWN0b3JCa2cgPSB0aGlzLm1haW5Ca2c7XG4gICAgdGhpcy5hY3RvclRleHRDb2xvciA9IHRoaXMubWFpbkNvbnRyYXN0Q29sb3I7XG4gICAgdGhpcy5hY3RvckxpbmVDb2xvciA9IHRoaXMubWFpbkNvbnRyYXN0Q29sb3I7XG4gICAgdGhpcy5zaWduYWxDb2xvciA9IHRoaXMubWFpbkNvbnRyYXN0Q29sb3I7XG4gICAgdGhpcy5zaWduYWxUZXh0Q29sb3IgPSB0aGlzLm1haW5Db250cmFzdENvbG9yO1xuICAgIHRoaXMubGFiZWxCb3hCa2dDb2xvciA9IHRoaXMuYWN0b3JCa2c7XG4gICAgdGhpcy5sYWJlbEJveEJvcmRlckNvbG9yID0gdGhpcy5hY3RvckJvcmRlcjtcbiAgICB0aGlzLmxhYmVsVGV4dENvbG9yID0gdGhpcy5tYWluQ29udHJhc3RDb2xvcjtcbiAgICB0aGlzLmxvb3BUZXh0Q29sb3IgPSB0aGlzLm1haW5Db250cmFzdENvbG9yO1xuICAgIHRoaXMubm90ZUJvcmRlckNvbG9yID0gdGhpcy5zZWNvbmRhcnlCb3JkZXJDb2xvcjtcbiAgICB0aGlzLm5vdGVCa2dDb2xvciA9IHRoaXMuc2Vjb25kQmtnO1xuICAgIHRoaXMubm90ZVRleHRDb2xvciA9IHRoaXMuc2Vjb25kYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMuYWN0aXZhdGlvbkJvcmRlckNvbG9yID0gdGhpcy5ib3JkZXIxO1xuICAgIHRoaXMuYWN0aXZhdGlvbkJrZ0NvbG9yID0gdGhpcy5zZWNvbmRCa2c7XG4gICAgdGhpcy5hbHRTZWN0aW9uQmtnQ29sb3IgPSB0aGlzLmJhY2tncm91bmQ7XG4gICAgdGhpcy50YXNrQmtnQ29sb3IgPSBsaWdodGVuKHRoaXMubWFpbkJrZywgMjMpO1xuICAgIHRoaXMudGFza1RleHRDb2xvciA9IHRoaXMuZGFya1RleHRDb2xvcjtcbiAgICB0aGlzLnRhc2tUZXh0TGlnaHRDb2xvciA9IHRoaXMubWFpbkNvbnRyYXN0Q29sb3I7XG4gICAgdGhpcy50YXNrVGV4dE91dHNpZGVDb2xvciA9IHRoaXMudGFza1RleHRMaWdodENvbG9yO1xuICAgIHRoaXMuZ3JpZENvbG9yID0gdGhpcy5tYWluQ29udHJhc3RDb2xvcjtcbiAgICB0aGlzLmRvbmVUYXNrQmtnQ29sb3IgPSB0aGlzLm1haW5Db250cmFzdENvbG9yO1xuICAgIHRoaXMudGFza1RleHREYXJrQ29sb3IgPSB0aGlzLmRhcmtUZXh0Q29sb3I7XG4gICAgdGhpcy50cmFuc2l0aW9uQ29sb3IgPSB0aGlzLnRyYW5zaXRpb25Db2xvciB8fCB0aGlzLmxpbmVDb2xvcjtcbiAgICB0aGlzLnRyYW5zaXRpb25MYWJlbENvbG9yID0gdGhpcy50cmFuc2l0aW9uTGFiZWxDb2xvciB8fCB0aGlzLnRleHRDb2xvcjtcbiAgICB0aGlzLnN0YXRlTGFiZWxDb2xvciA9IHRoaXMuc3RhdGVMYWJlbENvbG9yIHx8IHRoaXMuc3RhdGVCa2cgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMuc3RhdGVCa2cgPSB0aGlzLnN0YXRlQmtnIHx8IHRoaXMubWFpbkJrZztcbiAgICB0aGlzLmxhYmVsQmFja2dyb3VuZENvbG9yID0gdGhpcy5sYWJlbEJhY2tncm91bmRDb2xvciB8fCB0aGlzLnN0YXRlQmtnO1xuICAgIHRoaXMuY29tcG9zaXRlQmFja2dyb3VuZCA9IHRoaXMuY29tcG9zaXRlQmFja2dyb3VuZCB8fCB0aGlzLmJhY2tncm91bmQgfHwgdGhpcy50ZXJ0aWFyeUNvbG9yO1xuICAgIHRoaXMuYWx0QmFja2dyb3VuZCA9IHRoaXMuYWx0QmFja2dyb3VuZCB8fCBcIiM1NTVcIjtcbiAgICB0aGlzLmNvbXBvc2l0ZVRpdGxlQmFja2dyb3VuZCA9IHRoaXMuY29tcG9zaXRlVGl0bGVCYWNrZ3JvdW5kIHx8IHRoaXMubWFpbkJrZztcbiAgICB0aGlzLmNvbXBvc2l0ZUJvcmRlciA9IHRoaXMuY29tcG9zaXRlQm9yZGVyIHx8IHRoaXMubm9kZUJvcmRlcjtcbiAgICB0aGlzLmlubmVyRW5kQmFja2dyb3VuZCA9IHRoaXMucHJpbWFyeUJvcmRlckNvbG9yO1xuICAgIHRoaXMuc3BlY2lhbFN0YXRlQ29sb3IgPSBcIiNmNGY0ZjRcIjtcbiAgICB0aGlzLmVycm9yQmtnQ29sb3IgPSB0aGlzLmVycm9yQmtnQ29sb3IgfHwgdGhpcy50ZXJ0aWFyeUNvbG9yO1xuICAgIHRoaXMuZXJyb3JUZXh0Q29sb3IgPSB0aGlzLmVycm9yVGV4dENvbG9yIHx8IHRoaXMudGVydGlhcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5maWxsVHlwZTAgPSB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLmZpbGxUeXBlMSA9IHRoaXMuc2Vjb25kYXJ5Q29sb3I7XG4gICAgdGhpcy5maWxsVHlwZTIgPSBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogNjQgfSk7XG4gICAgdGhpcy5maWxsVHlwZTMgPSBhZGp1c3QodGhpcy5zZWNvbmRhcnlDb2xvciwgeyBoOiA2NCB9KTtcbiAgICB0aGlzLmZpbGxUeXBlNCA9IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAtNjQgfSk7XG4gICAgdGhpcy5maWxsVHlwZTUgPSBhZGp1c3QodGhpcy5zZWNvbmRhcnlDb2xvciwgeyBoOiAtNjQgfSk7XG4gICAgdGhpcy5maWxsVHlwZTYgPSBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMTI4IH0pO1xuICAgIHRoaXMuZmlsbFR5cGU3ID0gYWRqdXN0KHRoaXMuc2Vjb25kYXJ5Q29sb3IsIHsgaDogMTI4IH0pO1xuICAgIHRoaXMuY1NjYWxlMSA9IHRoaXMuY1NjYWxlMSB8fCBcIiMwYjAwMDBcIjtcbiAgICB0aGlzLmNTY2FsZTIgPSB0aGlzLmNTY2FsZTIgfHwgXCIjNGQxMDM3XCI7XG4gICAgdGhpcy5jU2NhbGUzID0gdGhpcy5jU2NhbGUzIHx8IFwiIzNmNTI1OFwiO1xuICAgIHRoaXMuY1NjYWxlNCA9IHRoaXMuY1NjYWxlNCB8fCBcIiM0ZjJmMWJcIjtcbiAgICB0aGlzLmNTY2FsZTUgPSB0aGlzLmNTY2FsZTUgfHwgXCIjNmUwYTBhXCI7XG4gICAgdGhpcy5jU2NhbGU2ID0gdGhpcy5jU2NhbGU2IHx8IFwiIzNiMDA0OFwiO1xuICAgIHRoaXMuY1NjYWxlNyA9IHRoaXMuY1NjYWxlNyB8fCBcIiM5OTVhMDFcIjtcbiAgICB0aGlzLmNTY2FsZTggPSB0aGlzLmNTY2FsZTggfHwgXCIjMTU0NzA2XCI7XG4gICAgdGhpcy5jU2NhbGU5ID0gdGhpcy5jU2NhbGU5IHx8IFwiIzE2MTcyMlwiO1xuICAgIHRoaXMuY1NjYWxlMTAgPSB0aGlzLmNTY2FsZTEwIHx8IFwiIzAwMjk2ZlwiO1xuICAgIHRoaXMuY1NjYWxlMTEgPSB0aGlzLmNTY2FsZTExIHx8IFwiIzAxNjI5Y1wiO1xuICAgIHRoaXMuY1NjYWxlMTIgPSB0aGlzLmNTY2FsZTEyIHx8IFwiIzAxMDAyOVwiO1xuICAgIHRoaXMuY1NjYWxlMCA9IHRoaXMuY1NjYWxlMCB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLmNTY2FsZTEgPSB0aGlzLmNTY2FsZTEgfHwgdGhpcy5zZWNvbmRhcnlDb2xvcjtcbiAgICB0aGlzLmNTY2FsZTIgPSB0aGlzLmNTY2FsZTIgfHwgdGhpcy50ZXJ0aWFyeUNvbG9yO1xuICAgIHRoaXMuY1NjYWxlMyA9IHRoaXMuY1NjYWxlMyB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMzAgfSk7XG4gICAgdGhpcy5jU2NhbGU0ID0gdGhpcy5jU2NhbGU0IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiA2MCB9KTtcbiAgICB0aGlzLmNTY2FsZTUgPSB0aGlzLmNTY2FsZTUgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDkwIH0pO1xuICAgIHRoaXMuY1NjYWxlNiA9IHRoaXMuY1NjYWxlNiB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMTIwIH0pO1xuICAgIHRoaXMuY1NjYWxlNyA9IHRoaXMuY1NjYWxlNyB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMTUwIH0pO1xuICAgIHRoaXMuY1NjYWxlOCA9IHRoaXMuY1NjYWxlOCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMjEwIH0pO1xuICAgIHRoaXMuY1NjYWxlOSA9IHRoaXMuY1NjYWxlOSB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMjcwIH0pO1xuICAgIHRoaXMuY1NjYWxlMTAgPSB0aGlzLmNTY2FsZTEwIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAzMDAgfSk7XG4gICAgdGhpcy5jU2NhbGUxMSA9IHRoaXMuY1NjYWxlMTEgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDMzMCB9KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuVEhFTUVfQ09MT1JfTElNSVQ7IGkrKykge1xuICAgICAgdGhpc1tcImNTY2FsZUludlwiICsgaV0gPSB0aGlzW1wiY1NjYWxlSW52XCIgKyBpXSB8fCBpbnZlcnQodGhpc1tcImNTY2FsZVwiICsgaV0pO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuVEhFTUVfQ09MT1JfTElNSVQ7IGkrKykge1xuICAgICAgdGhpc1tcImNTY2FsZVBlZXJcIiArIGldID0gdGhpc1tcImNTY2FsZVBlZXJcIiArIGldIHx8IGxpZ2h0ZW4odGhpc1tcImNTY2FsZVwiICsgaV0sIDEwKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1OyBpKyspIHtcbiAgICAgIHRoaXNbXCJzdXJmYWNlXCIgKyBpXSA9IHRoaXNbXCJzdXJmYWNlXCIgKyBpXSB8fCBhZGp1c3QodGhpcy5tYWluQmtnLCB7IGg6IDMwLCBzOiAtMzAsIGw6IC0oLTEwICsgaSAqIDQpIH0pO1xuICAgICAgdGhpc1tcInN1cmZhY2VQZWVyXCIgKyBpXSA9IHRoaXNbXCJzdXJmYWNlUGVlclwiICsgaV0gfHwgYWRqdXN0KHRoaXMubWFpbkJrZywgeyBoOiAzMCwgczogLTMwLCBsOiAtKC03ICsgaSAqIDQpIH0pO1xuICAgIH1cbiAgICB0aGlzLnNjYWxlTGFiZWxDb2xvciA9IHRoaXMuc2NhbGVMYWJlbENvbG9yIHx8ICh0aGlzLmRhcmtNb2RlID8gXCJibGFja1wiIDogdGhpcy5sYWJlbFRleHRDb2xvcik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICAgIHRoaXNbXCJjU2NhbGVMYWJlbFwiICsgaV0gPSB0aGlzW1wiY1NjYWxlTGFiZWxcIiArIGldIHx8IHRoaXMuc2NhbGVMYWJlbENvbG9yO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuVEhFTUVfQ09MT1JfTElNSVQ7IGkrKykge1xuICAgICAgdGhpc1tcInBpZVwiICsgaV0gPSB0aGlzW1wiY1NjYWxlXCIgKyBpXTtcbiAgICB9XG4gICAgdGhpcy5waWVUaXRsZVRleHRTaXplID0gdGhpcy5waWVUaXRsZVRleHRTaXplIHx8IFwiMjVweFwiO1xuICAgIHRoaXMucGllVGl0bGVUZXh0Q29sb3IgPSB0aGlzLnBpZVRpdGxlVGV4dENvbG9yIHx8IHRoaXMudGFza1RleHREYXJrQ29sb3I7XG4gICAgdGhpcy5waWVTZWN0aW9uVGV4dFNpemUgPSB0aGlzLnBpZVNlY3Rpb25UZXh0U2l6ZSB8fCBcIjE3cHhcIjtcbiAgICB0aGlzLnBpZVNlY3Rpb25UZXh0Q29sb3IgPSB0aGlzLnBpZVNlY3Rpb25UZXh0Q29sb3IgfHwgdGhpcy50ZXh0Q29sb3I7XG4gICAgdGhpcy5waWVMZWdlbmRUZXh0U2l6ZSA9IHRoaXMucGllTGVnZW5kVGV4dFNpemUgfHwgXCIxN3B4XCI7XG4gICAgdGhpcy5waWVMZWdlbmRUZXh0Q29sb3IgPSB0aGlzLnBpZUxlZ2VuZFRleHRDb2xvciB8fCB0aGlzLnRhc2tUZXh0RGFya0NvbG9yO1xuICAgIHRoaXMucGllU3Ryb2tlQ29sb3IgPSB0aGlzLnBpZVN0cm9rZUNvbG9yIHx8IFwiYmxhY2tcIjtcbiAgICB0aGlzLnBpZVN0cm9rZVdpZHRoID0gdGhpcy5waWVTdHJva2VXaWR0aCB8fCBcIjJweFwiO1xuICAgIHRoaXMucGllT3V0ZXJTdHJva2VXaWR0aCA9IHRoaXMucGllT3V0ZXJTdHJva2VXaWR0aCB8fCBcIjJweFwiO1xuICAgIHRoaXMucGllT3V0ZXJTdHJva2VDb2xvciA9IHRoaXMucGllT3V0ZXJTdHJva2VDb2xvciB8fCBcImJsYWNrXCI7XG4gICAgdGhpcy5waWVPcGFjaXR5ID0gdGhpcy5waWVPcGFjaXR5IHx8IFwiMC43XCI7XG4gICAgdGhpcy5xdWFkcmFudDFGaWxsID0gdGhpcy5xdWFkcmFudDFGaWxsIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMucXVhZHJhbnQyRmlsbCA9IHRoaXMucXVhZHJhbnQyRmlsbCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgcjogNSwgZzogNSwgYjogNSB9KTtcbiAgICB0aGlzLnF1YWRyYW50M0ZpbGwgPSB0aGlzLnF1YWRyYW50M0ZpbGwgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IHI6IDEwLCBnOiAxMCwgYjogMTAgfSk7XG4gICAgdGhpcy5xdWFkcmFudDRGaWxsID0gdGhpcy5xdWFkcmFudDRGaWxsIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyByOiAxNSwgZzogMTUsIGI6IDE1IH0pO1xuICAgIHRoaXMucXVhZHJhbnQxVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50MVRleHRGaWxsIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnF1YWRyYW50MlRleHRGaWxsID0gdGhpcy5xdWFkcmFudDJUZXh0RmlsbCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5VGV4dENvbG9yLCB7IHI6IC01LCBnOiAtNSwgYjogLTUgfSk7XG4gICAgdGhpcy5xdWFkcmFudDNUZXh0RmlsbCA9IHRoaXMucXVhZHJhbnQzVGV4dEZpbGwgfHwgYWRqdXN0KHRoaXMucHJpbWFyeVRleHRDb2xvciwgeyByOiAtMTAsIGc6IC0xMCwgYjogLTEwIH0pO1xuICAgIHRoaXMucXVhZHJhbnQ0VGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50NFRleHRGaWxsIHx8IGFkanVzdCh0aGlzLnByaW1hcnlUZXh0Q29sb3IsIHsgcjogLTE1LCBnOiAtMTUsIGI6IC0xNSB9KTtcbiAgICB0aGlzLnF1YWRyYW50UG9pbnRGaWxsID0gdGhpcy5xdWFkcmFudFBvaW50RmlsbCB8fCBpc0RhcmsodGhpcy5xdWFkcmFudDFGaWxsKSA/IGxpZ2h0ZW4odGhpcy5xdWFkcmFudDFGaWxsKSA6IGRhcmtlbih0aGlzLnF1YWRyYW50MUZpbGwpO1xuICAgIHRoaXMucXVhZHJhbnRQb2ludFRleHRGaWxsID0gdGhpcy5xdWFkcmFudFBvaW50VGV4dEZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMucXVhZHJhbnRYQXhpc1RleHRGaWxsID0gdGhpcy5xdWFkcmFudFhBeGlzVGV4dEZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMucXVhZHJhbnRZQXhpc1RleHRGaWxsID0gdGhpcy5xdWFkcmFudFlBeGlzVGV4dEZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMucXVhZHJhbnRJbnRlcm5hbEJvcmRlclN0cm9rZUZpbGwgPSB0aGlzLnF1YWRyYW50SW50ZXJuYWxCb3JkZXJTdHJva2VGaWxsIHx8IHRoaXMucHJpbWFyeUJvcmRlckNvbG9yO1xuICAgIHRoaXMucXVhZHJhbnRFeHRlcm5hbEJvcmRlclN0cm9rZUZpbGwgPSB0aGlzLnF1YWRyYW50RXh0ZXJuYWxCb3JkZXJTdHJva2VGaWxsIHx8IHRoaXMucHJpbWFyeUJvcmRlckNvbG9yO1xuICAgIHRoaXMucXVhZHJhbnRUaXRsZUZpbGwgPSB0aGlzLnF1YWRyYW50VGl0bGVGaWxsIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnh5Q2hhcnQgPSB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICgoX2EgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5iYWNrZ3JvdW5kQ29sb3IpIHx8IHRoaXMuYmFja2dyb3VuZCxcbiAgICAgIHRpdGxlQ29sb3I6ICgoX2IgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYi50aXRsZUNvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB4QXhpc1RpdGxlQ29sb3I6ICgoX2MgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYy54QXhpc1RpdGxlQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHhBeGlzTGFiZWxDb2xvcjogKChfZCA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kLnhBeGlzTGFiZWxDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeEF4aXNUaWNrQ29sb3I6ICgoX2UgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfZS54QXhpc1RpY2tDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeEF4aXNMaW5lQ29sb3I6ICgoX2YgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfZi54QXhpc0xpbmVDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeUF4aXNUaXRsZUNvbG9yOiAoKF9nID0gdGhpcy54eUNoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2cueUF4aXNUaXRsZUNvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB5QXhpc0xhYmVsQ29sb3I6ICgoX2ggPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfaC55QXhpc0xhYmVsQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHlBeGlzVGlja0NvbG9yOiAoKF9pID0gdGhpcy54eUNoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2kueUF4aXNUaWNrQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHlBeGlzTGluZUNvbG9yOiAoKF9qID0gdGhpcy54eUNoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2oueUF4aXNMaW5lQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHBsb3RDb2xvclBhbGV0dGU6ICgoX2sgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfay5wbG90Q29sb3JQYWxldHRlKSB8fCBcIiMzNDk4ZGIsIzJlY2M3MSwjZTc0YzNjLCNmMWM0MGYsI2JkYzNjNywjZmZmZmZmLCMzNDQ5NWUsIzliNTliNiwjMWFiYzljLCNlNjdlMjJcIlxuICAgIH07XG4gICAgdGhpcy5jbGFzc1RleHQgPSB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5yZXF1aXJlbWVudEJhY2tncm91bmQgPSB0aGlzLnJlcXVpcmVtZW50QmFja2dyb3VuZCB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLnJlcXVpcmVtZW50Qm9yZGVyQ29sb3IgPSB0aGlzLnJlcXVpcmVtZW50Qm9yZGVyQ29sb3IgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5yZXF1aXJlbWVudEJvcmRlclNpemUgPSB0aGlzLnJlcXVpcmVtZW50Qm9yZGVyU2l6ZSB8fCBcIjFcIjtcbiAgICB0aGlzLnJlcXVpcmVtZW50VGV4dENvbG9yID0gdGhpcy5yZXF1aXJlbWVudFRleHRDb2xvciB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5yZWxhdGlvbkNvbG9yID0gdGhpcy5yZWxhdGlvbkNvbG9yIHx8IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMucmVsYXRpb25MYWJlbEJhY2tncm91bmQgPSB0aGlzLnJlbGF0aW9uTGFiZWxCYWNrZ3JvdW5kIHx8ICh0aGlzLmRhcmtNb2RlID8gZGFya2VuKHRoaXMuc2Vjb25kYXJ5Q29sb3IsIDMwKSA6IHRoaXMuc2Vjb25kYXJ5Q29sb3IpO1xuICAgIHRoaXMucmVsYXRpb25MYWJlbENvbG9yID0gdGhpcy5yZWxhdGlvbkxhYmVsQ29sb3IgfHwgdGhpcy5hY3RvclRleHRDb2xvcjtcbiAgICB0aGlzLmdpdDAgPSBsaWdodGVuKHRoaXMuc2Vjb25kYXJ5Q29sb3IsIDIwKTtcbiAgICB0aGlzLmdpdDEgPSBsaWdodGVuKHRoaXMucGllMiB8fCB0aGlzLnNlY29uZGFyeUNvbG9yLCAyMCk7XG4gICAgdGhpcy5naXQyID0gbGlnaHRlbih0aGlzLnBpZTMgfHwgdGhpcy50ZXJ0aWFyeUNvbG9yLCAyMCk7XG4gICAgdGhpcy5naXQzID0gbGlnaHRlbih0aGlzLnBpZTQgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IC0zMCB9KSwgMjApO1xuICAgIHRoaXMuZ2l0NCA9IGxpZ2h0ZW4odGhpcy5waWU1IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAtNjAgfSksIDIwKTtcbiAgICB0aGlzLmdpdDUgPSBsaWdodGVuKHRoaXMucGllNiB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTkwIH0pLCAxMCk7XG4gICAgdGhpcy5naXQ2ID0gbGlnaHRlbih0aGlzLnBpZTcgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDYwIH0pLCAxMCk7XG4gICAgdGhpcy5naXQ3ID0gbGlnaHRlbih0aGlzLnBpZTggfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDEyMCB9KSwgMjApO1xuICAgIHRoaXMuZ2l0SW52MCA9IHRoaXMuZ2l0SW52MCB8fCBpbnZlcnQodGhpcy5naXQwKTtcbiAgICB0aGlzLmdpdEludjEgPSB0aGlzLmdpdEludjEgfHwgaW52ZXJ0KHRoaXMuZ2l0MSk7XG4gICAgdGhpcy5naXRJbnYyID0gdGhpcy5naXRJbnYyIHx8IGludmVydCh0aGlzLmdpdDIpO1xuICAgIHRoaXMuZ2l0SW52MyA9IHRoaXMuZ2l0SW52MyB8fCBpbnZlcnQodGhpcy5naXQzKTtcbiAgICB0aGlzLmdpdEludjQgPSB0aGlzLmdpdEludjQgfHwgaW52ZXJ0KHRoaXMuZ2l0NCk7XG4gICAgdGhpcy5naXRJbnY1ID0gdGhpcy5naXRJbnY1IHx8IGludmVydCh0aGlzLmdpdDUpO1xuICAgIHRoaXMuZ2l0SW52NiA9IHRoaXMuZ2l0SW52NiB8fCBpbnZlcnQodGhpcy5naXQ2KTtcbiAgICB0aGlzLmdpdEludjcgPSB0aGlzLmdpdEludjcgfHwgaW52ZXJ0KHRoaXMuZ2l0Nyk7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDAgPSB0aGlzLmdpdEJyYW5jaExhYmVsMCB8fCBpbnZlcnQodGhpcy5sYWJlbFRleHRDb2xvcik7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDEgPSB0aGlzLmdpdEJyYW5jaExhYmVsMSB8fCB0aGlzLmxhYmVsVGV4dENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWwyID0gdGhpcy5naXRCcmFuY2hMYWJlbDIgfHwgdGhpcy5sYWJlbFRleHRDb2xvcjtcbiAgICB0aGlzLmdpdEJyYW5jaExhYmVsMyA9IHRoaXMuZ2l0QnJhbmNoTGFiZWwzIHx8IGludmVydCh0aGlzLmxhYmVsVGV4dENvbG9yKTtcbiAgICB0aGlzLmdpdEJyYW5jaExhYmVsNCA9IHRoaXMuZ2l0QnJhbmNoTGFiZWw0IHx8IHRoaXMubGFiZWxUZXh0Q29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDUgPSB0aGlzLmdpdEJyYW5jaExhYmVsNSB8fCB0aGlzLmxhYmVsVGV4dENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWw2ID0gdGhpcy5naXRCcmFuY2hMYWJlbDYgfHwgdGhpcy5sYWJlbFRleHRDb2xvcjtcbiAgICB0aGlzLmdpdEJyYW5jaExhYmVsNyA9IHRoaXMuZ2l0QnJhbmNoTGFiZWw3IHx8IHRoaXMubGFiZWxUZXh0Q29sb3I7XG4gICAgdGhpcy50YWdMYWJlbENvbG9yID0gdGhpcy50YWdMYWJlbENvbG9yIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnRhZ0xhYmVsQmFja2dyb3VuZCA9IHRoaXMudGFnTGFiZWxCYWNrZ3JvdW5kIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMudGFnTGFiZWxCb3JkZXIgPSB0aGlzLnRhZ0JvcmRlciB8fCB0aGlzLnByaW1hcnlCb3JkZXJDb2xvcjtcbiAgICB0aGlzLnRhZ0xhYmVsRm9udFNpemUgPSB0aGlzLnRhZ0xhYmVsRm9udFNpemUgfHwgXCIxMHB4XCI7XG4gICAgdGhpcy5jb21taXRMYWJlbENvbG9yID0gdGhpcy5jb21taXRMYWJlbENvbG9yIHx8IHRoaXMuc2Vjb25kYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMuY29tbWl0TGFiZWxCYWNrZ3JvdW5kID0gdGhpcy5jb21taXRMYWJlbEJhY2tncm91bmQgfHwgdGhpcy5zZWNvbmRhcnlDb2xvcjtcbiAgICB0aGlzLmNvbW1pdExhYmVsRm9udFNpemUgPSB0aGlzLmNvbW1pdExhYmVsRm9udFNpemUgfHwgXCIxMHB4XCI7XG4gICAgdGhpcy5hdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JPZGQgPSB0aGlzLmF0dHJpYnV0ZUJhY2tncm91bmRDb2xvck9kZCB8fCBsaWdodGVuKHRoaXMuYmFja2dyb3VuZCwgMTIpO1xuICAgIHRoaXMuYXR0cmlidXRlQmFja2dyb3VuZENvbG9yRXZlbiA9IHRoaXMuYXR0cmlidXRlQmFja2dyb3VuZENvbG9yRXZlbiB8fCBsaWdodGVuKHRoaXMuYmFja2dyb3VuZCwgMik7XG4gIH1cbiAgY2FsY3VsYXRlKG92ZXJyaWRlcykge1xuICAgIGlmICh0eXBlb2Ygb3ZlcnJpZGVzICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbG9ycygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3ZlcnJpZGVzKTtcbiAgICBrZXlzLmZvckVhY2goKGspID0+IHtcbiAgICAgIHRoaXNba10gPSBvdmVycmlkZXNba107XG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVDb2xvcnMoKTtcbiAgICBrZXlzLmZvckVhY2goKGspID0+IHtcbiAgICAgIHRoaXNba10gPSBvdmVycmlkZXNba107XG4gICAgfSk7XG4gIH1cbn07XG5jb25zdCBnZXRUaGVtZVZhcmlhYmxlcyQzID0gKHVzZXJPdmVycmlkZXMpID0+IHtcbiAgY29uc3QgdGhlbWUyID0gbmV3IFRoZW1lJDMoKTtcbiAgdGhlbWUyLmNhbGN1bGF0ZSh1c2VyT3ZlcnJpZGVzKTtcbiAgcmV0dXJuIHRoZW1lMjtcbn07XG5sZXQgVGhlbWUkMiA9IGNsYXNzIFRoZW1lMyB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYmFja2dyb3VuZCA9IFwiI2Y0ZjRmNFwiO1xuICAgIHRoaXMucHJpbWFyeUNvbG9yID0gXCIjRUNFQ0ZGXCI7XG4gICAgdGhpcy5zZWNvbmRhcnlDb2xvciA9IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAxMjAgfSk7XG4gICAgdGhpcy5zZWNvbmRhcnlDb2xvciA9IFwiI2ZmZmZkZVwiO1xuICAgIHRoaXMudGVydGlhcnlDb2xvciA9IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAtMTYwIH0pO1xuICAgIHRoaXMucHJpbWFyeUJvcmRlckNvbG9yID0gbWtCb3JkZXIodGhpcy5wcmltYXJ5Q29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMuc2Vjb25kYXJ5Qm9yZGVyQ29sb3IgPSBta0JvcmRlcih0aGlzLnNlY29uZGFyeUNvbG9yLCB0aGlzLmRhcmtNb2RlKTtcbiAgICB0aGlzLnRlcnRpYXJ5Qm9yZGVyQ29sb3IgPSBta0JvcmRlcih0aGlzLnRlcnRpYXJ5Q29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMucHJpbWFyeVRleHRDb2xvciA9IGludmVydCh0aGlzLnByaW1hcnlDb2xvcik7XG4gICAgdGhpcy5zZWNvbmRhcnlUZXh0Q29sb3IgPSBpbnZlcnQodGhpcy5zZWNvbmRhcnlDb2xvcik7XG4gICAgdGhpcy50ZXJ0aWFyeVRleHRDb2xvciA9IGludmVydCh0aGlzLnRlcnRpYXJ5Q29sb3IpO1xuICAgIHRoaXMubGluZUNvbG9yID0gaW52ZXJ0KHRoaXMuYmFja2dyb3VuZCk7XG4gICAgdGhpcy50ZXh0Q29sb3IgPSBpbnZlcnQodGhpcy5iYWNrZ3JvdW5kKTtcbiAgICB0aGlzLmJhY2tncm91bmQgPSBcIndoaXRlXCI7XG4gICAgdGhpcy5tYWluQmtnID0gXCIjRUNFQ0ZGXCI7XG4gICAgdGhpcy5zZWNvbmRCa2cgPSBcIiNmZmZmZGVcIjtcbiAgICB0aGlzLmxpbmVDb2xvciA9IFwiIzMzMzMzM1wiO1xuICAgIHRoaXMuYm9yZGVyMSA9IFwiIzkzNzBEQlwiO1xuICAgIHRoaXMuYm9yZGVyMiA9IFwiI2FhYWEzM1wiO1xuICAgIHRoaXMuYXJyb3doZWFkQ29sb3IgPSBcIiMzMzMzMzNcIjtcbiAgICB0aGlzLmZvbnRGYW1pbHkgPSAnXCJ0cmVidWNoZXQgbXNcIiwgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWYnO1xuICAgIHRoaXMuZm9udFNpemUgPSBcIjE2cHhcIjtcbiAgICB0aGlzLmxhYmVsQmFja2dyb3VuZCA9IFwiI2U4ZThlOFwiO1xuICAgIHRoaXMudGV4dENvbG9yID0gXCIjMzMzXCI7XG4gICAgdGhpcy5USEVNRV9DT0xPUl9MSU1JVCA9IDEyO1xuICAgIHRoaXMubm9kZUJrZyA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMubm9kZUJvcmRlciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuY2x1c3RlckJrZyA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuY2x1c3RlckJvcmRlciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuZGVmYXVsdExpbmtDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMudGl0bGVDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuZWRnZUxhYmVsQmFja2dyb3VuZCA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuYWN0b3JCb3JkZXIgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmFjdG9yQmtnID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5hY3RvclRleHRDb2xvciA9IFwiYmxhY2tcIjtcbiAgICB0aGlzLmFjdG9yTGluZUNvbG9yID0gXCJncmV5XCI7XG4gICAgdGhpcy5zaWduYWxDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuc2lnbmFsVGV4dENvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5sYWJlbEJveEJrZ0NvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5sYWJlbEJveEJvcmRlckNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5sYWJlbFRleHRDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMubG9vcFRleHRDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMubm90ZUJvcmRlckNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5ub3RlQmtnQ29sb3IgPSBcIiNmZmY1YWRcIjtcbiAgICB0aGlzLm5vdGVUZXh0Q29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmFjdGl2YXRpb25Cb3JkZXJDb2xvciA9IFwiIzY2NlwiO1xuICAgIHRoaXMuYWN0aXZhdGlvbkJrZ0NvbG9yID0gXCIjZjRmNGY0XCI7XG4gICAgdGhpcy5zZXF1ZW5jZU51bWJlckNvbG9yID0gXCJ3aGl0ZVwiO1xuICAgIHRoaXMuc2VjdGlvbkJrZ0NvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5hbHRTZWN0aW9uQmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnNlY3Rpb25Ca2dDb2xvcjIgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmV4Y2x1ZGVCa2dDb2xvciA9IFwiI2VlZWVlZVwiO1xuICAgIHRoaXMudGFza0JvcmRlckNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy50YXNrQmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRhc2tUZXh0TGlnaHRDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMudGFza1RleHRDb2xvciA9IHRoaXMudGFza1RleHRMaWdodENvbG9yO1xuICAgIHRoaXMudGFza1RleHREYXJrQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRhc2tUZXh0T3V0c2lkZUNvbG9yID0gdGhpcy50YXNrVGV4dERhcmtDb2xvcjtcbiAgICB0aGlzLnRhc2tUZXh0Q2xpY2thYmxlQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmFjdGl2ZVRhc2tCb3JkZXJDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuYWN0aXZlVGFza0JrZ0NvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5ncmlkQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmRvbmVUYXNrQmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmRvbmVUYXNrQm9yZGVyQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmNyaXRCb3JkZXJDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuY3JpdEJrZ0NvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy50b2RheUxpbmVDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuc2VjdGlvbkJrZ0NvbG9yID0gcmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQ5KTtcbiAgICB0aGlzLmFsdFNlY3Rpb25Ca2dDb2xvciA9IFwid2hpdGVcIjtcbiAgICB0aGlzLnNlY3Rpb25Ca2dDb2xvcjIgPSBcIiNmZmY0MDBcIjtcbiAgICB0aGlzLnRhc2tCb3JkZXJDb2xvciA9IFwiIzUzNGZiY1wiO1xuICAgIHRoaXMudGFza0JrZ0NvbG9yID0gXCIjOGE5MGRkXCI7XG4gICAgdGhpcy50YXNrVGV4dExpZ2h0Q29sb3IgPSBcIndoaXRlXCI7XG4gICAgdGhpcy50YXNrVGV4dENvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy50YXNrVGV4dERhcmtDb2xvciA9IFwiYmxhY2tcIjtcbiAgICB0aGlzLnRhc2tUZXh0T3V0c2lkZUNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy50YXNrVGV4dENsaWNrYWJsZUNvbG9yID0gXCIjMDAzMTYzXCI7XG4gICAgdGhpcy5hY3RpdmVUYXNrQm9yZGVyQ29sb3IgPSBcIiM1MzRmYmNcIjtcbiAgICB0aGlzLmFjdGl2ZVRhc2tCa2dDb2xvciA9IFwiI2JmYzdmZlwiO1xuICAgIHRoaXMuZ3JpZENvbG9yID0gXCJsaWdodGdyZXlcIjtcbiAgICB0aGlzLmRvbmVUYXNrQmtnQ29sb3IgPSBcImxpZ2h0Z3JleVwiO1xuICAgIHRoaXMuZG9uZVRhc2tCb3JkZXJDb2xvciA9IFwiZ3JleVwiO1xuICAgIHRoaXMuY3JpdEJvcmRlckNvbG9yID0gXCIjZmY4ODg4XCI7XG4gICAgdGhpcy5jcml0QmtnQ29sb3IgPSBcInJlZFwiO1xuICAgIHRoaXMudG9kYXlMaW5lQ29sb3IgPSBcInJlZFwiO1xuICAgIHRoaXMucGVyc29uQm9yZGVyID0gdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5wZXJzb25Ca2cgPSB0aGlzLm1haW5Ca2c7XG4gICAgdGhpcy5sYWJlbENvbG9yID0gXCJibGFja1wiO1xuICAgIHRoaXMuZXJyb3JCa2dDb2xvciA9IFwiIzU1MjIyMlwiO1xuICAgIHRoaXMuZXJyb3JUZXh0Q29sb3IgPSBcIiM1NTIyMjJcIjtcbiAgICB0aGlzLnVwZGF0ZUNvbG9ycygpO1xuICB9XG4gIHVwZGF0ZUNvbG9ycygpIHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaSwgX2osIF9rO1xuICAgIHRoaXMuY1NjYWxlMCA9IHRoaXMuY1NjYWxlMCB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLmNTY2FsZTEgPSB0aGlzLmNTY2FsZTEgfHwgdGhpcy5zZWNvbmRhcnlDb2xvcjtcbiAgICB0aGlzLmNTY2FsZTIgPSB0aGlzLmNTY2FsZTIgfHwgdGhpcy50ZXJ0aWFyeUNvbG9yO1xuICAgIHRoaXMuY1NjYWxlMyA9IHRoaXMuY1NjYWxlMyB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMzAgfSk7XG4gICAgdGhpcy5jU2NhbGU0ID0gdGhpcy5jU2NhbGU0IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiA2MCB9KTtcbiAgICB0aGlzLmNTY2FsZTUgPSB0aGlzLmNTY2FsZTUgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDkwIH0pO1xuICAgIHRoaXMuY1NjYWxlNiA9IHRoaXMuY1NjYWxlNiB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMTIwIH0pO1xuICAgIHRoaXMuY1NjYWxlNyA9IHRoaXMuY1NjYWxlNyB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMTUwIH0pO1xuICAgIHRoaXMuY1NjYWxlOCA9IHRoaXMuY1NjYWxlOCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMjEwIH0pO1xuICAgIHRoaXMuY1NjYWxlOSA9IHRoaXMuY1NjYWxlOSB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMjcwIH0pO1xuICAgIHRoaXMuY1NjYWxlMTAgPSB0aGlzLmNTY2FsZTEwIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAzMDAgfSk7XG4gICAgdGhpcy5jU2NhbGUxMSA9IHRoaXMuY1NjYWxlMTEgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDMzMCB9KTtcbiAgICB0aGlzW1wiY1NjYWxlUGVlcjFcIl0gPSB0aGlzW1wiY1NjYWxlUGVlcjFcIl0gfHwgZGFya2VuKHRoaXMuc2Vjb25kYXJ5Q29sb3IsIDQ1KTtcbiAgICB0aGlzW1wiY1NjYWxlUGVlcjJcIl0gPSB0aGlzW1wiY1NjYWxlUGVlcjJcIl0gfHwgZGFya2VuKHRoaXMudGVydGlhcnlDb2xvciwgNDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5USEVNRV9DT0xPUl9MSU1JVDsgaSsrKSB7XG4gICAgICB0aGlzW1wiY1NjYWxlXCIgKyBpXSA9IGRhcmtlbih0aGlzW1wiY1NjYWxlXCIgKyBpXSwgMTApO1xuICAgICAgdGhpc1tcImNTY2FsZVBlZXJcIiArIGldID0gdGhpc1tcImNTY2FsZVBlZXJcIiArIGldIHx8IGRhcmtlbih0aGlzW1wiY1NjYWxlXCIgKyBpXSwgMjUpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuVEhFTUVfQ09MT1JfTElNSVQ7IGkrKykge1xuICAgICAgdGhpc1tcImNTY2FsZUludlwiICsgaV0gPSB0aGlzW1wiY1NjYWxlSW52XCIgKyBpXSB8fCBhZGp1c3QodGhpc1tcImNTY2FsZVwiICsgaV0sIHsgaDogMTgwIH0pO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgICAgdGhpc1tcInN1cmZhY2VcIiArIGldID0gdGhpc1tcInN1cmZhY2VcIiArIGldIHx8IGFkanVzdCh0aGlzLm1haW5Ca2csIHsgaDogMzAsIGw6IC0oNSArIGkgKiA1KSB9KTtcbiAgICAgIHRoaXNbXCJzdXJmYWNlUGVlclwiICsgaV0gPSB0aGlzW1wic3VyZmFjZVBlZXJcIiArIGldIHx8IGFkanVzdCh0aGlzLm1haW5Ca2csIHsgaDogMzAsIGw6IC0oNyArIGkgKiA1KSB9KTtcbiAgICB9XG4gICAgdGhpcy5zY2FsZUxhYmVsQ29sb3IgPSB0aGlzLnNjYWxlTGFiZWxDb2xvciAhPT0gXCJjYWxjdWxhdGVkXCIgJiYgdGhpcy5zY2FsZUxhYmVsQ29sb3IgPyB0aGlzLnNjYWxlTGFiZWxDb2xvciA6IHRoaXMubGFiZWxUZXh0Q29sb3I7XG4gICAgaWYgKHRoaXMubGFiZWxUZXh0Q29sb3IgIT09IFwiY2FsY3VsYXRlZFwiKSB7XG4gICAgICB0aGlzLmNTY2FsZUxhYmVsMCA9IHRoaXMuY1NjYWxlTGFiZWwwIHx8IGludmVydCh0aGlzLmxhYmVsVGV4dENvbG9yKTtcbiAgICAgIHRoaXMuY1NjYWxlTGFiZWwzID0gdGhpcy5jU2NhbGVMYWJlbDMgfHwgaW52ZXJ0KHRoaXMubGFiZWxUZXh0Q29sb3IpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICAgICAgdGhpc1tcImNTY2FsZUxhYmVsXCIgKyBpXSA9IHRoaXNbXCJjU2NhbGVMYWJlbFwiICsgaV0gfHwgdGhpcy5sYWJlbFRleHRDb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5ub2RlQmtnID0gdGhpcy5tYWluQmtnO1xuICAgIHRoaXMubm9kZUJvcmRlciA9IHRoaXMuYm9yZGVyMTtcbiAgICB0aGlzLmNsdXN0ZXJCa2cgPSB0aGlzLnNlY29uZEJrZztcbiAgICB0aGlzLmNsdXN0ZXJCb3JkZXIgPSB0aGlzLmJvcmRlcjI7XG4gICAgdGhpcy5kZWZhdWx0TGlua0NvbG9yID0gdGhpcy5saW5lQ29sb3I7XG4gICAgdGhpcy50aXRsZUNvbG9yID0gdGhpcy50ZXh0Q29sb3I7XG4gICAgdGhpcy5lZGdlTGFiZWxCYWNrZ3JvdW5kID0gdGhpcy5sYWJlbEJhY2tncm91bmQ7XG4gICAgdGhpcy5hY3RvckJvcmRlciA9IGxpZ2h0ZW4odGhpcy5ib3JkZXIxLCAyMyk7XG4gICAgdGhpcy5hY3RvckJrZyA9IHRoaXMubWFpbkJrZztcbiAgICB0aGlzLmxhYmVsQm94QmtnQ29sb3IgPSB0aGlzLmFjdG9yQmtnO1xuICAgIHRoaXMuc2lnbmFsQ29sb3IgPSB0aGlzLnRleHRDb2xvcjtcbiAgICB0aGlzLnNpZ25hbFRleHRDb2xvciA9IHRoaXMudGV4dENvbG9yO1xuICAgIHRoaXMubGFiZWxCb3hCb3JkZXJDb2xvciA9IHRoaXMuYWN0b3JCb3JkZXI7XG4gICAgdGhpcy5sYWJlbFRleHRDb2xvciA9IHRoaXMuYWN0b3JUZXh0Q29sb3I7XG4gICAgdGhpcy5sb29wVGV4dENvbG9yID0gdGhpcy5hY3RvclRleHRDb2xvcjtcbiAgICB0aGlzLm5vdGVCb3JkZXJDb2xvciA9IHRoaXMuYm9yZGVyMjtcbiAgICB0aGlzLm5vdGVUZXh0Q29sb3IgPSB0aGlzLmFjdG9yVGV4dENvbG9yO1xuICAgIHRoaXMudGFza1RleHRDb2xvciA9IHRoaXMudGFza1RleHRMaWdodENvbG9yO1xuICAgIHRoaXMudGFza1RleHRPdXRzaWRlQ29sb3IgPSB0aGlzLnRhc2tUZXh0RGFya0NvbG9yO1xuICAgIHRoaXMudHJhbnNpdGlvbkNvbG9yID0gdGhpcy50cmFuc2l0aW9uQ29sb3IgfHwgdGhpcy5saW5lQ29sb3I7XG4gICAgdGhpcy50cmFuc2l0aW9uTGFiZWxDb2xvciA9IHRoaXMudHJhbnNpdGlvbkxhYmVsQ29sb3IgfHwgdGhpcy50ZXh0Q29sb3I7XG4gICAgdGhpcy5zdGF0ZUxhYmVsQ29sb3IgPSB0aGlzLnN0YXRlTGFiZWxDb2xvciB8fCB0aGlzLnN0YXRlQmtnIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnN0YXRlQmtnID0gdGhpcy5zdGF0ZUJrZyB8fCB0aGlzLm1haW5Ca2c7XG4gICAgdGhpcy5sYWJlbEJhY2tncm91bmRDb2xvciA9IHRoaXMubGFiZWxCYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5zdGF0ZUJrZztcbiAgICB0aGlzLmNvbXBvc2l0ZUJhY2tncm91bmQgPSB0aGlzLmNvbXBvc2l0ZUJhY2tncm91bmQgfHwgdGhpcy5iYWNrZ3JvdW5kIHx8IHRoaXMudGVydGlhcnlDb2xvcjtcbiAgICB0aGlzLmFsdEJhY2tncm91bmQgPSB0aGlzLmFsdEJhY2tncm91bmQgfHwgXCIjZjBmMGYwXCI7XG4gICAgdGhpcy5jb21wb3NpdGVUaXRsZUJhY2tncm91bmQgPSB0aGlzLmNvbXBvc2l0ZVRpdGxlQmFja2dyb3VuZCB8fCB0aGlzLm1haW5Ca2c7XG4gICAgdGhpcy5jb21wb3NpdGVCb3JkZXIgPSB0aGlzLmNvbXBvc2l0ZUJvcmRlciB8fCB0aGlzLm5vZGVCb3JkZXI7XG4gICAgdGhpcy5pbm5lckVuZEJhY2tncm91bmQgPSB0aGlzLm5vZGVCb3JkZXI7XG4gICAgdGhpcy5zcGVjaWFsU3RhdGVDb2xvciA9IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMuZXJyb3JCa2dDb2xvciA9IHRoaXMuZXJyb3JCa2dDb2xvciB8fCB0aGlzLnRlcnRpYXJ5Q29sb3I7XG4gICAgdGhpcy5lcnJvclRleHRDb2xvciA9IHRoaXMuZXJyb3JUZXh0Q29sb3IgfHwgdGhpcy50ZXJ0aWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnRyYW5zaXRpb25Db2xvciA9IHRoaXMudHJhbnNpdGlvbkNvbG9yIHx8IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMuY2xhc3NUZXh0ID0gdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMuZmlsbFR5cGUwID0gdGhpcy5wcmltYXJ5Q29sb3I7XG4gICAgdGhpcy5maWxsVHlwZTEgPSB0aGlzLnNlY29uZGFyeUNvbG9yO1xuICAgIHRoaXMuZmlsbFR5cGUyID0gYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDY0IH0pO1xuICAgIHRoaXMuZmlsbFR5cGUzID0gYWRqdXN0KHRoaXMuc2Vjb25kYXJ5Q29sb3IsIHsgaDogNjQgfSk7XG4gICAgdGhpcy5maWxsVHlwZTQgPSBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTY0IH0pO1xuICAgIHRoaXMuZmlsbFR5cGU1ID0gYWRqdXN0KHRoaXMuc2Vjb25kYXJ5Q29sb3IsIHsgaDogLTY0IH0pO1xuICAgIHRoaXMuZmlsbFR5cGU2ID0gYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDEyOCB9KTtcbiAgICB0aGlzLmZpbGxUeXBlNyA9IGFkanVzdCh0aGlzLnNlY29uZGFyeUNvbG9yLCB7IGg6IDEyOCB9KTtcbiAgICB0aGlzLnBpZTEgPSB0aGlzLnBpZTEgfHwgdGhpcy5wcmltYXJ5Q29sb3I7XG4gICAgdGhpcy5waWUyID0gdGhpcy5waWUyIHx8IHRoaXMuc2Vjb25kYXJ5Q29sb3I7XG4gICAgdGhpcy5waWUzID0gdGhpcy5waWUzIHx8IGFkanVzdCh0aGlzLnRlcnRpYXJ5Q29sb3IsIHsgbDogLTQwIH0pO1xuICAgIHRoaXMucGllNCA9IHRoaXMucGllNCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgbDogLTEwIH0pO1xuICAgIHRoaXMucGllNSA9IHRoaXMucGllNSB8fCBhZGp1c3QodGhpcy5zZWNvbmRhcnlDb2xvciwgeyBsOiAtMzAgfSk7XG4gICAgdGhpcy5waWU2ID0gdGhpcy5waWU2IHx8IGFkanVzdCh0aGlzLnRlcnRpYXJ5Q29sb3IsIHsgbDogLTIwIH0pO1xuICAgIHRoaXMucGllNyA9IHRoaXMucGllNyB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogNjAsIGw6IC0yMCB9KTtcbiAgICB0aGlzLnBpZTggPSB0aGlzLnBpZTggfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IC02MCwgbDogLTQwIH0pO1xuICAgIHRoaXMucGllOSA9IHRoaXMucGllOSB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMTIwLCBsOiAtNDAgfSk7XG4gICAgdGhpcy5waWUxMCA9IHRoaXMucGllMTAgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDYwLCBsOiAtNDAgfSk7XG4gICAgdGhpcy5waWUxMSA9IHRoaXMucGllMTEgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IC05MCwgbDogLTQwIH0pO1xuICAgIHRoaXMucGllMTIgPSB0aGlzLnBpZTEyIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAxMjAsIGw6IC0zMCB9KTtcbiAgICB0aGlzLnBpZVRpdGxlVGV4dFNpemUgPSB0aGlzLnBpZVRpdGxlVGV4dFNpemUgfHwgXCIyNXB4XCI7XG4gICAgdGhpcy5waWVUaXRsZVRleHRDb2xvciA9IHRoaXMucGllVGl0bGVUZXh0Q29sb3IgfHwgdGhpcy50YXNrVGV4dERhcmtDb2xvcjtcbiAgICB0aGlzLnBpZVNlY3Rpb25UZXh0U2l6ZSA9IHRoaXMucGllU2VjdGlvblRleHRTaXplIHx8IFwiMTdweFwiO1xuICAgIHRoaXMucGllU2VjdGlvblRleHRDb2xvciA9IHRoaXMucGllU2VjdGlvblRleHRDb2xvciB8fCB0aGlzLnRleHRDb2xvcjtcbiAgICB0aGlzLnBpZUxlZ2VuZFRleHRTaXplID0gdGhpcy5waWVMZWdlbmRUZXh0U2l6ZSB8fCBcIjE3cHhcIjtcbiAgICB0aGlzLnBpZUxlZ2VuZFRleHRDb2xvciA9IHRoaXMucGllTGVnZW5kVGV4dENvbG9yIHx8IHRoaXMudGFza1RleHREYXJrQ29sb3I7XG4gICAgdGhpcy5waWVTdHJva2VDb2xvciA9IHRoaXMucGllU3Ryb2tlQ29sb3IgfHwgXCJibGFja1wiO1xuICAgIHRoaXMucGllU3Ryb2tlV2lkdGggPSB0aGlzLnBpZVN0cm9rZVdpZHRoIHx8IFwiMnB4XCI7XG4gICAgdGhpcy5waWVPdXRlclN0cm9rZVdpZHRoID0gdGhpcy5waWVPdXRlclN0cm9rZVdpZHRoIHx8IFwiMnB4XCI7XG4gICAgdGhpcy5waWVPdXRlclN0cm9rZUNvbG9yID0gdGhpcy5waWVPdXRlclN0cm9rZUNvbG9yIHx8IFwiYmxhY2tcIjtcbiAgICB0aGlzLnBpZU9wYWNpdHkgPSB0aGlzLnBpZU9wYWNpdHkgfHwgXCIwLjdcIjtcbiAgICB0aGlzLnF1YWRyYW50MUZpbGwgPSB0aGlzLnF1YWRyYW50MUZpbGwgfHwgdGhpcy5wcmltYXJ5Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudDJGaWxsID0gdGhpcy5xdWFkcmFudDJGaWxsIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyByOiA1LCBnOiA1LCBiOiA1IH0pO1xuICAgIHRoaXMucXVhZHJhbnQzRmlsbCA9IHRoaXMucXVhZHJhbnQzRmlsbCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgcjogMTAsIGc6IDEwLCBiOiAxMCB9KTtcbiAgICB0aGlzLnF1YWRyYW50NEZpbGwgPSB0aGlzLnF1YWRyYW50NEZpbGwgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IHI6IDE1LCBnOiAxNSwgYjogMTUgfSk7XG4gICAgdGhpcy5xdWFkcmFudDFUZXh0RmlsbCA9IHRoaXMucXVhZHJhbnQxVGV4dEZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMucXVhZHJhbnQyVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50MlRleHRGaWxsIHx8IGFkanVzdCh0aGlzLnByaW1hcnlUZXh0Q29sb3IsIHsgcjogLTUsIGc6IC01LCBiOiAtNSB9KTtcbiAgICB0aGlzLnF1YWRyYW50M1RleHRGaWxsID0gdGhpcy5xdWFkcmFudDNUZXh0RmlsbCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5VGV4dENvbG9yLCB7IHI6IC0xMCwgZzogLTEwLCBiOiAtMTAgfSk7XG4gICAgdGhpcy5xdWFkcmFudDRUZXh0RmlsbCA9IHRoaXMucXVhZHJhbnQ0VGV4dEZpbGwgfHwgYWRqdXN0KHRoaXMucHJpbWFyeVRleHRDb2xvciwgeyByOiAtMTUsIGc6IC0xNSwgYjogLTE1IH0pO1xuICAgIHRoaXMucXVhZHJhbnRQb2ludEZpbGwgPSB0aGlzLnF1YWRyYW50UG9pbnRGaWxsIHx8IGlzRGFyayh0aGlzLnF1YWRyYW50MUZpbGwpID8gbGlnaHRlbih0aGlzLnF1YWRyYW50MUZpbGwpIDogZGFya2VuKHRoaXMucXVhZHJhbnQxRmlsbCk7XG4gICAgdGhpcy5xdWFkcmFudFBvaW50VGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50UG9pbnRUZXh0RmlsbCB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudFhBeGlzVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50WEF4aXNUZXh0RmlsbCB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudFlBeGlzVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50WUF4aXNUZXh0RmlsbCB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudEludGVybmFsQm9yZGVyU3Ryb2tlRmlsbCA9IHRoaXMucXVhZHJhbnRJbnRlcm5hbEJvcmRlclN0cm9rZUZpbGwgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5xdWFkcmFudEV4dGVybmFsQm9yZGVyU3Ryb2tlRmlsbCA9IHRoaXMucXVhZHJhbnRFeHRlcm5hbEJvcmRlclN0cm9rZUZpbGwgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5xdWFkcmFudFRpdGxlRmlsbCA9IHRoaXMucXVhZHJhbnRUaXRsZUZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMueHlDaGFydCA9IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogKChfYSA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmJhY2tncm91bmRDb2xvcikgfHwgdGhpcy5iYWNrZ3JvdW5kLFxuICAgICAgdGl0bGVDb2xvcjogKChfYiA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnRpdGxlQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHhBeGlzVGl0bGVDb2xvcjogKChfYyA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jLnhBeGlzVGl0bGVDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeEF4aXNMYWJlbENvbG9yOiAoKF9kID0gdGhpcy54eUNoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2QueEF4aXNMYWJlbENvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB4QXhpc1RpY2tDb2xvcjogKChfZSA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lLnhBeGlzVGlja0NvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB4QXhpc0xpbmVDb2xvcjogKChfZiA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9mLnhBeGlzTGluZUNvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB5QXhpc1RpdGxlQ29sb3I6ICgoX2cgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfZy55QXhpc1RpdGxlQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHlBeGlzTGFiZWxDb2xvcjogKChfaCA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9oLnlBeGlzTGFiZWxDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeUF4aXNUaWNrQ29sb3I6ICgoX2kgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfaS55QXhpc1RpY2tDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeUF4aXNMaW5lQ29sb3I6ICgoX2ogPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfai55QXhpc0xpbmVDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgcGxvdENvbG9yUGFsZXR0ZTogKChfayA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9rLnBsb3RDb2xvclBhbGV0dGUpIHx8IFwiI0VDRUNGRiwjODQ5M0E2LCNGRkMzQTAsI0RDRERFMSwjQjhFOTk0LCNEMUEzNkYsI0MzQ0RFNiwjRkZCNkMxLCM0OTYwNzgsI0Y4RjNFM1wiXG4gICAgfTtcbiAgICB0aGlzLnJlcXVpcmVtZW50QmFja2dyb3VuZCA9IHRoaXMucmVxdWlyZW1lbnRCYWNrZ3JvdW5kIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMucmVxdWlyZW1lbnRCb3JkZXJDb2xvciA9IHRoaXMucmVxdWlyZW1lbnRCb3JkZXJDb2xvciB8fCB0aGlzLnByaW1hcnlCb3JkZXJDb2xvcjtcbiAgICB0aGlzLnJlcXVpcmVtZW50Qm9yZGVyU2l6ZSA9IHRoaXMucmVxdWlyZW1lbnRCb3JkZXJTaXplIHx8IFwiMVwiO1xuICAgIHRoaXMucmVxdWlyZW1lbnRUZXh0Q29sb3IgPSB0aGlzLnJlcXVpcmVtZW50VGV4dENvbG9yIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnJlbGF0aW9uQ29sb3IgPSB0aGlzLnJlbGF0aW9uQ29sb3IgfHwgdGhpcy5saW5lQ29sb3I7XG4gICAgdGhpcy5yZWxhdGlvbkxhYmVsQmFja2dyb3VuZCA9IHRoaXMucmVsYXRpb25MYWJlbEJhY2tncm91bmQgfHwgdGhpcy5sYWJlbEJhY2tncm91bmQ7XG4gICAgdGhpcy5yZWxhdGlvbkxhYmVsQ29sb3IgPSB0aGlzLnJlbGF0aW9uTGFiZWxDb2xvciB8fCB0aGlzLmFjdG9yVGV4dENvbG9yO1xuICAgIHRoaXMuZ2l0MCA9IHRoaXMuZ2l0MCB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLmdpdDEgPSB0aGlzLmdpdDEgfHwgdGhpcy5zZWNvbmRhcnlDb2xvcjtcbiAgICB0aGlzLmdpdDIgPSB0aGlzLmdpdDIgfHwgdGhpcy50ZXJ0aWFyeUNvbG9yO1xuICAgIHRoaXMuZ2l0MyA9IHRoaXMuZ2l0MyB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTMwIH0pO1xuICAgIHRoaXMuZ2l0NCA9IHRoaXMuZ2l0NCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTYwIH0pO1xuICAgIHRoaXMuZ2l0NSA9IHRoaXMuZ2l0NSB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTkwIH0pO1xuICAgIHRoaXMuZ2l0NiA9IHRoaXMuZ2l0NiB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogNjAgfSk7XG4gICAgdGhpcy5naXQ3ID0gdGhpcy5naXQ3IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAxMjAgfSk7XG4gICAgaWYgKHRoaXMuZGFya01vZGUpIHtcbiAgICAgIHRoaXMuZ2l0MCA9IGxpZ2h0ZW4odGhpcy5naXQwLCAyNSk7XG4gICAgICB0aGlzLmdpdDEgPSBsaWdodGVuKHRoaXMuZ2l0MSwgMjUpO1xuICAgICAgdGhpcy5naXQyID0gbGlnaHRlbih0aGlzLmdpdDIsIDI1KTtcbiAgICAgIHRoaXMuZ2l0MyA9IGxpZ2h0ZW4odGhpcy5naXQzLCAyNSk7XG4gICAgICB0aGlzLmdpdDQgPSBsaWdodGVuKHRoaXMuZ2l0NCwgMjUpO1xuICAgICAgdGhpcy5naXQ1ID0gbGlnaHRlbih0aGlzLmdpdDUsIDI1KTtcbiAgICAgIHRoaXMuZ2l0NiA9IGxpZ2h0ZW4odGhpcy5naXQ2LCAyNSk7XG4gICAgICB0aGlzLmdpdDcgPSBsaWdodGVuKHRoaXMuZ2l0NywgMjUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdpdDAgPSBkYXJrZW4odGhpcy5naXQwLCAyNSk7XG4gICAgICB0aGlzLmdpdDEgPSBkYXJrZW4odGhpcy5naXQxLCAyNSk7XG4gICAgICB0aGlzLmdpdDIgPSBkYXJrZW4odGhpcy5naXQyLCAyNSk7XG4gICAgICB0aGlzLmdpdDMgPSBkYXJrZW4odGhpcy5naXQzLCAyNSk7XG4gICAgICB0aGlzLmdpdDQgPSBkYXJrZW4odGhpcy5naXQ0LCAyNSk7XG4gICAgICB0aGlzLmdpdDUgPSBkYXJrZW4odGhpcy5naXQ1LCAyNSk7XG4gICAgICB0aGlzLmdpdDYgPSBkYXJrZW4odGhpcy5naXQ2LCAyNSk7XG4gICAgICB0aGlzLmdpdDcgPSBkYXJrZW4odGhpcy5naXQ3LCAyNSk7XG4gICAgfVxuICAgIHRoaXMuZ2l0SW52MCA9IHRoaXMuZ2l0SW52MCB8fCBkYXJrZW4oaW52ZXJ0KHRoaXMuZ2l0MCksIDI1KTtcbiAgICB0aGlzLmdpdEludjEgPSB0aGlzLmdpdEludjEgfHwgaW52ZXJ0KHRoaXMuZ2l0MSk7XG4gICAgdGhpcy5naXRJbnYyID0gdGhpcy5naXRJbnYyIHx8IGludmVydCh0aGlzLmdpdDIpO1xuICAgIHRoaXMuZ2l0SW52MyA9IHRoaXMuZ2l0SW52MyB8fCBpbnZlcnQodGhpcy5naXQzKTtcbiAgICB0aGlzLmdpdEludjQgPSB0aGlzLmdpdEludjQgfHwgaW52ZXJ0KHRoaXMuZ2l0NCk7XG4gICAgdGhpcy5naXRJbnY1ID0gdGhpcy5naXRJbnY1IHx8IGludmVydCh0aGlzLmdpdDUpO1xuICAgIHRoaXMuZ2l0SW52NiA9IHRoaXMuZ2l0SW52NiB8fCBpbnZlcnQodGhpcy5naXQ2KTtcbiAgICB0aGlzLmdpdEludjcgPSB0aGlzLmdpdEludjcgfHwgaW52ZXJ0KHRoaXMuZ2l0Nyk7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDAgPSB0aGlzLmdpdEJyYW5jaExhYmVsMCB8fCBpbnZlcnQodGhpcy5sYWJlbFRleHRDb2xvcik7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDEgPSB0aGlzLmdpdEJyYW5jaExhYmVsMSB8fCB0aGlzLmxhYmVsVGV4dENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWwyID0gdGhpcy5naXRCcmFuY2hMYWJlbDIgfHwgdGhpcy5sYWJlbFRleHRDb2xvcjtcbiAgICB0aGlzLmdpdEJyYW5jaExhYmVsMyA9IHRoaXMuZ2l0QnJhbmNoTGFiZWwzIHx8IGludmVydCh0aGlzLmxhYmVsVGV4dENvbG9yKTtcbiAgICB0aGlzLmdpdEJyYW5jaExhYmVsNCA9IHRoaXMuZ2l0QnJhbmNoTGFiZWw0IHx8IHRoaXMubGFiZWxUZXh0Q29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDUgPSB0aGlzLmdpdEJyYW5jaExhYmVsNSB8fCB0aGlzLmxhYmVsVGV4dENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWw2ID0gdGhpcy5naXRCcmFuY2hMYWJlbDYgfHwgdGhpcy5sYWJlbFRleHRDb2xvcjtcbiAgICB0aGlzLmdpdEJyYW5jaExhYmVsNyA9IHRoaXMuZ2l0QnJhbmNoTGFiZWw3IHx8IHRoaXMubGFiZWxUZXh0Q29sb3I7XG4gICAgdGhpcy50YWdMYWJlbENvbG9yID0gdGhpcy50YWdMYWJlbENvbG9yIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnRhZ0xhYmVsQmFja2dyb3VuZCA9IHRoaXMudGFnTGFiZWxCYWNrZ3JvdW5kIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMudGFnTGFiZWxCb3JkZXIgPSB0aGlzLnRhZ0JvcmRlciB8fCB0aGlzLnByaW1hcnlCb3JkZXJDb2xvcjtcbiAgICB0aGlzLnRhZ0xhYmVsRm9udFNpemUgPSB0aGlzLnRhZ0xhYmVsRm9udFNpemUgfHwgXCIxMHB4XCI7XG4gICAgdGhpcy5jb21taXRMYWJlbENvbG9yID0gdGhpcy5jb21taXRMYWJlbENvbG9yIHx8IHRoaXMuc2Vjb25kYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMuY29tbWl0TGFiZWxCYWNrZ3JvdW5kID0gdGhpcy5jb21taXRMYWJlbEJhY2tncm91bmQgfHwgdGhpcy5zZWNvbmRhcnlDb2xvcjtcbiAgICB0aGlzLmNvbW1pdExhYmVsRm9udFNpemUgPSB0aGlzLmNvbW1pdExhYmVsRm9udFNpemUgfHwgXCIxMHB4XCI7XG4gICAgdGhpcy5hdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JPZGQgPSB0aGlzLmF0dHJpYnV0ZUJhY2tncm91bmRDb2xvck9kZCB8fCBvbGRBdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JPZGQ7XG4gICAgdGhpcy5hdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JFdmVuID0gdGhpcy5hdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JFdmVuIHx8IG9sZEF0dHJpYnV0ZUJhY2tncm91bmRDb2xvckV2ZW47XG4gIH1cbiAgY2FsY3VsYXRlKG92ZXJyaWRlcykge1xuICAgIGlmICh0eXBlb2Ygb3ZlcnJpZGVzICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbG9ycygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3ZlcnJpZGVzKTtcbiAgICBrZXlzLmZvckVhY2goKGspID0+IHtcbiAgICAgIHRoaXNba10gPSBvdmVycmlkZXNba107XG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVDb2xvcnMoKTtcbiAgICBrZXlzLmZvckVhY2goKGspID0+IHtcbiAgICAgIHRoaXNba10gPSBvdmVycmlkZXNba107XG4gICAgfSk7XG4gIH1cbn07XG5jb25zdCBnZXRUaGVtZVZhcmlhYmxlcyQyID0gKHVzZXJPdmVycmlkZXMpID0+IHtcbiAgY29uc3QgdGhlbWUyID0gbmV3IFRoZW1lJDIoKTtcbiAgdGhlbWUyLmNhbGN1bGF0ZSh1c2VyT3ZlcnJpZGVzKTtcbiAgcmV0dXJuIHRoZW1lMjtcbn07XG5sZXQgVGhlbWUkMSA9IGNsYXNzIFRoZW1lNCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYmFja2dyb3VuZCA9IFwiI2Y0ZjRmNFwiO1xuICAgIHRoaXMucHJpbWFyeUNvbG9yID0gXCIjY2RlNDk4XCI7XG4gICAgdGhpcy5zZWNvbmRhcnlDb2xvciA9IFwiI2NkZmZiMlwiO1xuICAgIHRoaXMuYmFja2dyb3VuZCA9IFwid2hpdGVcIjtcbiAgICB0aGlzLm1haW5Ca2cgPSBcIiNjZGU0OThcIjtcbiAgICB0aGlzLnNlY29uZEJrZyA9IFwiI2NkZmZiMlwiO1xuICAgIHRoaXMubGluZUNvbG9yID0gXCJncmVlblwiO1xuICAgIHRoaXMuYm9yZGVyMSA9IFwiIzEzNTQwY1wiO1xuICAgIHRoaXMuYm9yZGVyMiA9IFwiIzZlYWE0OVwiO1xuICAgIHRoaXMuYXJyb3doZWFkQ29sb3IgPSBcImdyZWVuXCI7XG4gICAgdGhpcy5mb250RmFtaWx5ID0gJ1widHJlYnVjaGV0IG1zXCIsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmJztcbiAgICB0aGlzLmZvbnRTaXplID0gXCIxNnB4XCI7XG4gICAgdGhpcy50ZXJ0aWFyeUNvbG9yID0gbGlnaHRlbihcIiNjZGU0OThcIiwgMTApO1xuICAgIHRoaXMucHJpbWFyeUJvcmRlckNvbG9yID0gbWtCb3JkZXIodGhpcy5wcmltYXJ5Q29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMuc2Vjb25kYXJ5Qm9yZGVyQ29sb3IgPSBta0JvcmRlcih0aGlzLnNlY29uZGFyeUNvbG9yLCB0aGlzLmRhcmtNb2RlKTtcbiAgICB0aGlzLnRlcnRpYXJ5Qm9yZGVyQ29sb3IgPSBta0JvcmRlcih0aGlzLnRlcnRpYXJ5Q29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMucHJpbWFyeVRleHRDb2xvciA9IGludmVydCh0aGlzLnByaW1hcnlDb2xvcik7XG4gICAgdGhpcy5zZWNvbmRhcnlUZXh0Q29sb3IgPSBpbnZlcnQodGhpcy5zZWNvbmRhcnlDb2xvcik7XG4gICAgdGhpcy50ZXJ0aWFyeVRleHRDb2xvciA9IGludmVydCh0aGlzLnByaW1hcnlDb2xvcik7XG4gICAgdGhpcy5saW5lQ29sb3IgPSBpbnZlcnQodGhpcy5iYWNrZ3JvdW5kKTtcbiAgICB0aGlzLnRleHRDb2xvciA9IGludmVydCh0aGlzLmJhY2tncm91bmQpO1xuICAgIHRoaXMuVEhFTUVfQ09MT1JfTElNSVQgPSAxMjtcbiAgICB0aGlzLm5vZGVCa2cgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLm5vZGVCb3JkZXIgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmNsdXN0ZXJCa2cgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmNsdXN0ZXJCb3JkZXIgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmRlZmF1bHRMaW5rQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRpdGxlQ29sb3IgPSBcIiMzMzNcIjtcbiAgICB0aGlzLmVkZ2VMYWJlbEJhY2tncm91bmQgPSBcIiNlOGU4ZThcIjtcbiAgICB0aGlzLmFjdG9yQm9yZGVyID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5hY3RvckJrZyA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuYWN0b3JUZXh0Q29sb3IgPSBcImJsYWNrXCI7XG4gICAgdGhpcy5hY3RvckxpbmVDb2xvciA9IFwiZ3JleVwiO1xuICAgIHRoaXMuc2lnbmFsQ29sb3IgPSBcIiMzMzNcIjtcbiAgICB0aGlzLnNpZ25hbFRleHRDb2xvciA9IFwiIzMzM1wiO1xuICAgIHRoaXMubGFiZWxCb3hCa2dDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMubGFiZWxCb3hCb3JkZXJDb2xvciA9IFwiIzMyNjkzMlwiO1xuICAgIHRoaXMubGFiZWxUZXh0Q29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmxvb3BUZXh0Q29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLm5vdGVCb3JkZXJDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMubm90ZUJrZ0NvbG9yID0gXCIjZmZmNWFkXCI7XG4gICAgdGhpcy5ub3RlVGV4dENvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5hY3RpdmF0aW9uQm9yZGVyQ29sb3IgPSBcIiM2NjZcIjtcbiAgICB0aGlzLmFjdGl2YXRpb25Ca2dDb2xvciA9IFwiI2Y0ZjRmNFwiO1xuICAgIHRoaXMuc2VxdWVuY2VOdW1iZXJDb2xvciA9IFwid2hpdGVcIjtcbiAgICB0aGlzLnNlY3Rpb25Ca2dDb2xvciA9IFwiIzZlYWE0OVwiO1xuICAgIHRoaXMuYWx0U2VjdGlvbkJrZ0NvbG9yID0gXCJ3aGl0ZVwiO1xuICAgIHRoaXMuc2VjdGlvbkJrZ0NvbG9yMiA9IFwiIzZlYWE0OVwiO1xuICAgIHRoaXMuZXhjbHVkZUJrZ0NvbG9yID0gXCIjZWVlZWVlXCI7XG4gICAgdGhpcy50YXNrQm9yZGVyQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRhc2tCa2dDb2xvciA9IFwiIzQ4N2UzYVwiO1xuICAgIHRoaXMudGFza1RleHRMaWdodENvbG9yID0gXCJ3aGl0ZVwiO1xuICAgIHRoaXMudGFza1RleHRDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMudGFza1RleHREYXJrQ29sb3IgPSBcImJsYWNrXCI7XG4gICAgdGhpcy50YXNrVGV4dE91dHNpZGVDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMudGFza1RleHRDbGlja2FibGVDb2xvciA9IFwiIzAwMzE2M1wiO1xuICAgIHRoaXMuYWN0aXZlVGFza0JvcmRlckNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5hY3RpdmVUYXNrQmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmdyaWRDb2xvciA9IFwibGlnaHRncmV5XCI7XG4gICAgdGhpcy5kb25lVGFza0JrZ0NvbG9yID0gXCJsaWdodGdyZXlcIjtcbiAgICB0aGlzLmRvbmVUYXNrQm9yZGVyQ29sb3IgPSBcImdyZXlcIjtcbiAgICB0aGlzLmNyaXRCb3JkZXJDb2xvciA9IFwiI2ZmODg4OFwiO1xuICAgIHRoaXMuY3JpdEJrZ0NvbG9yID0gXCJyZWRcIjtcbiAgICB0aGlzLnRvZGF5TGluZUNvbG9yID0gXCJyZWRcIjtcbiAgICB0aGlzLnBlcnNvbkJvcmRlciA9IHRoaXMucHJpbWFyeUJvcmRlckNvbG9yO1xuICAgIHRoaXMucGVyc29uQmtnID0gdGhpcy5tYWluQmtnO1xuICAgIHRoaXMubGFiZWxDb2xvciA9IFwiYmxhY2tcIjtcbiAgICB0aGlzLmVycm9yQmtnQ29sb3IgPSBcIiM1NTIyMjJcIjtcbiAgICB0aGlzLmVycm9yVGV4dENvbG9yID0gXCIjNTUyMjIyXCI7XG4gIH1cbiAgdXBkYXRlQ29sb3JzKCkge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9pLCBfaiwgX2s7XG4gICAgdGhpcy5hY3RvckJvcmRlciA9IGRhcmtlbih0aGlzLm1haW5Ca2csIDIwKTtcbiAgICB0aGlzLmFjdG9yQmtnID0gdGhpcy5tYWluQmtnO1xuICAgIHRoaXMubGFiZWxCb3hCa2dDb2xvciA9IHRoaXMuYWN0b3JCa2c7XG4gICAgdGhpcy5sYWJlbFRleHRDb2xvciA9IHRoaXMuYWN0b3JUZXh0Q29sb3I7XG4gICAgdGhpcy5sb29wVGV4dENvbG9yID0gdGhpcy5hY3RvclRleHRDb2xvcjtcbiAgICB0aGlzLm5vdGVCb3JkZXJDb2xvciA9IHRoaXMuYm9yZGVyMjtcbiAgICB0aGlzLm5vdGVUZXh0Q29sb3IgPSB0aGlzLmFjdG9yVGV4dENvbG9yO1xuICAgIHRoaXMuY1NjYWxlMCA9IHRoaXMuY1NjYWxlMCB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLmNTY2FsZTEgPSB0aGlzLmNTY2FsZTEgfHwgdGhpcy5zZWNvbmRhcnlDb2xvcjtcbiAgICB0aGlzLmNTY2FsZTIgPSB0aGlzLmNTY2FsZTIgfHwgdGhpcy50ZXJ0aWFyeUNvbG9yO1xuICAgIHRoaXMuY1NjYWxlMyA9IHRoaXMuY1NjYWxlMyB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMzAgfSk7XG4gICAgdGhpcy5jU2NhbGU0ID0gdGhpcy5jU2NhbGU0IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiA2MCB9KTtcbiAgICB0aGlzLmNTY2FsZTUgPSB0aGlzLmNTY2FsZTUgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDkwIH0pO1xuICAgIHRoaXMuY1NjYWxlNiA9IHRoaXMuY1NjYWxlNiB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMTIwIH0pO1xuICAgIHRoaXMuY1NjYWxlNyA9IHRoaXMuY1NjYWxlNyB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMTUwIH0pO1xuICAgIHRoaXMuY1NjYWxlOCA9IHRoaXMuY1NjYWxlOCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMjEwIH0pO1xuICAgIHRoaXMuY1NjYWxlOSA9IHRoaXMuY1NjYWxlOSB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMjcwIH0pO1xuICAgIHRoaXMuY1NjYWxlMTAgPSB0aGlzLmNTY2FsZTEwIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAzMDAgfSk7XG4gICAgdGhpcy5jU2NhbGUxMSA9IHRoaXMuY1NjYWxlMTEgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDMzMCB9KTtcbiAgICB0aGlzW1wiY1NjYWxlUGVlcjFcIl0gPSB0aGlzW1wiY1NjYWxlUGVlcjFcIl0gfHwgZGFya2VuKHRoaXMuc2Vjb25kYXJ5Q29sb3IsIDQ1KTtcbiAgICB0aGlzW1wiY1NjYWxlUGVlcjJcIl0gPSB0aGlzW1wiY1NjYWxlUGVlcjJcIl0gfHwgZGFya2VuKHRoaXMudGVydGlhcnlDb2xvciwgNDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5USEVNRV9DT0xPUl9MSU1JVDsgaSsrKSB7XG4gICAgICB0aGlzW1wiY1NjYWxlXCIgKyBpXSA9IGRhcmtlbih0aGlzW1wiY1NjYWxlXCIgKyBpXSwgMTApO1xuICAgICAgdGhpc1tcImNTY2FsZVBlZXJcIiArIGldID0gdGhpc1tcImNTY2FsZVBlZXJcIiArIGldIHx8IGRhcmtlbih0aGlzW1wiY1NjYWxlXCIgKyBpXSwgMjUpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuVEhFTUVfQ09MT1JfTElNSVQ7IGkrKykge1xuICAgICAgdGhpc1tcImNTY2FsZUludlwiICsgaV0gPSB0aGlzW1wiY1NjYWxlSW52XCIgKyBpXSB8fCBhZGp1c3QodGhpc1tcImNTY2FsZVwiICsgaV0sIHsgaDogMTgwIH0pO1xuICAgIH1cbiAgICB0aGlzLnNjYWxlTGFiZWxDb2xvciA9IHRoaXMuc2NhbGVMYWJlbENvbG9yICE9PSBcImNhbGN1bGF0ZWRcIiAmJiB0aGlzLnNjYWxlTGFiZWxDb2xvciA/IHRoaXMuc2NhbGVMYWJlbENvbG9yIDogdGhpcy5sYWJlbFRleHRDb2xvcjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuVEhFTUVfQ09MT1JfTElNSVQ7IGkrKykge1xuICAgICAgdGhpc1tcImNTY2FsZUxhYmVsXCIgKyBpXSA9IHRoaXNbXCJjU2NhbGVMYWJlbFwiICsgaV0gfHwgdGhpcy5zY2FsZUxhYmVsQ29sb3I7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgICB0aGlzW1wic3VyZmFjZVwiICsgaV0gPSB0aGlzW1wic3VyZmFjZVwiICsgaV0gfHwgYWRqdXN0KHRoaXMubWFpbkJrZywgeyBoOiAzMCwgczogLTMwLCBsOiAtKDUgKyBpICogNSkgfSk7XG4gICAgICB0aGlzW1wic3VyZmFjZVBlZXJcIiArIGldID0gdGhpc1tcInN1cmZhY2VQZWVyXCIgKyBpXSB8fCBhZGp1c3QodGhpcy5tYWluQmtnLCB7IGg6IDMwLCBzOiAtMzAsIGw6IC0oOCArIGkgKiA1KSB9KTtcbiAgICB9XG4gICAgdGhpcy5ub2RlQmtnID0gdGhpcy5tYWluQmtnO1xuICAgIHRoaXMubm9kZUJvcmRlciA9IHRoaXMuYm9yZGVyMTtcbiAgICB0aGlzLmNsdXN0ZXJCa2cgPSB0aGlzLnNlY29uZEJrZztcbiAgICB0aGlzLmNsdXN0ZXJCb3JkZXIgPSB0aGlzLmJvcmRlcjI7XG4gICAgdGhpcy5kZWZhdWx0TGlua0NvbG9yID0gdGhpcy5saW5lQ29sb3I7XG4gICAgdGhpcy50YXNrQm9yZGVyQ29sb3IgPSB0aGlzLmJvcmRlcjE7XG4gICAgdGhpcy50YXNrVGV4dENvbG9yID0gdGhpcy50YXNrVGV4dExpZ2h0Q29sb3I7XG4gICAgdGhpcy50YXNrVGV4dE91dHNpZGVDb2xvciA9IHRoaXMudGFza1RleHREYXJrQ29sb3I7XG4gICAgdGhpcy5hY3RpdmVUYXNrQm9yZGVyQ29sb3IgPSB0aGlzLnRhc2tCb3JkZXJDb2xvcjtcbiAgICB0aGlzLmFjdGl2ZVRhc2tCa2dDb2xvciA9IHRoaXMubWFpbkJrZztcbiAgICB0aGlzLnRyYW5zaXRpb25Db2xvciA9IHRoaXMudHJhbnNpdGlvbkNvbG9yIHx8IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMudHJhbnNpdGlvbkxhYmVsQ29sb3IgPSB0aGlzLnRyYW5zaXRpb25MYWJlbENvbG9yIHx8IHRoaXMudGV4dENvbG9yO1xuICAgIHRoaXMuc3RhdGVMYWJlbENvbG9yID0gdGhpcy5zdGF0ZUxhYmVsQ29sb3IgfHwgdGhpcy5zdGF0ZUJrZyB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5zdGF0ZUJrZyA9IHRoaXMuc3RhdGVCa2cgfHwgdGhpcy5tYWluQmtnO1xuICAgIHRoaXMubGFiZWxCYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmxhYmVsQmFja2dyb3VuZENvbG9yIHx8IHRoaXMuc3RhdGVCa2c7XG4gICAgdGhpcy5jb21wb3NpdGVCYWNrZ3JvdW5kID0gdGhpcy5jb21wb3NpdGVCYWNrZ3JvdW5kIHx8IHRoaXMuYmFja2dyb3VuZCB8fCB0aGlzLnRlcnRpYXJ5Q29sb3I7XG4gICAgdGhpcy5hbHRCYWNrZ3JvdW5kID0gdGhpcy5hbHRCYWNrZ3JvdW5kIHx8IFwiI2YwZjBmMFwiO1xuICAgIHRoaXMuY29tcG9zaXRlVGl0bGVCYWNrZ3JvdW5kID0gdGhpcy5jb21wb3NpdGVUaXRsZUJhY2tncm91bmQgfHwgdGhpcy5tYWluQmtnO1xuICAgIHRoaXMuY29tcG9zaXRlQm9yZGVyID0gdGhpcy5jb21wb3NpdGVCb3JkZXIgfHwgdGhpcy5ub2RlQm9yZGVyO1xuICAgIHRoaXMuaW5uZXJFbmRCYWNrZ3JvdW5kID0gdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5zcGVjaWFsU3RhdGVDb2xvciA9IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMuZXJyb3JCa2dDb2xvciA9IHRoaXMuZXJyb3JCa2dDb2xvciB8fCB0aGlzLnRlcnRpYXJ5Q29sb3I7XG4gICAgdGhpcy5lcnJvclRleHRDb2xvciA9IHRoaXMuZXJyb3JUZXh0Q29sb3IgfHwgdGhpcy50ZXJ0aWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnRyYW5zaXRpb25Db2xvciA9IHRoaXMudHJhbnNpdGlvbkNvbG9yIHx8IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMuY2xhc3NUZXh0ID0gdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMuZmlsbFR5cGUwID0gdGhpcy5wcmltYXJ5Q29sb3I7XG4gICAgdGhpcy5maWxsVHlwZTEgPSB0aGlzLnNlY29uZGFyeUNvbG9yO1xuICAgIHRoaXMuZmlsbFR5cGUyID0gYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDY0IH0pO1xuICAgIHRoaXMuZmlsbFR5cGUzID0gYWRqdXN0KHRoaXMuc2Vjb25kYXJ5Q29sb3IsIHsgaDogNjQgfSk7XG4gICAgdGhpcy5maWxsVHlwZTQgPSBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTY0IH0pO1xuICAgIHRoaXMuZmlsbFR5cGU1ID0gYWRqdXN0KHRoaXMuc2Vjb25kYXJ5Q29sb3IsIHsgaDogLTY0IH0pO1xuICAgIHRoaXMuZmlsbFR5cGU2ID0gYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDEyOCB9KTtcbiAgICB0aGlzLmZpbGxUeXBlNyA9IGFkanVzdCh0aGlzLnNlY29uZGFyeUNvbG9yLCB7IGg6IDEyOCB9KTtcbiAgICB0aGlzLnBpZTEgPSB0aGlzLnBpZTEgfHwgdGhpcy5wcmltYXJ5Q29sb3I7XG4gICAgdGhpcy5waWUyID0gdGhpcy5waWUyIHx8IHRoaXMuc2Vjb25kYXJ5Q29sb3I7XG4gICAgdGhpcy5waWUzID0gdGhpcy5waWUzIHx8IHRoaXMudGVydGlhcnlDb2xvcjtcbiAgICB0aGlzLnBpZTQgPSB0aGlzLnBpZTQgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGw6IC0zMCB9KTtcbiAgICB0aGlzLnBpZTUgPSB0aGlzLnBpZTUgfHwgYWRqdXN0KHRoaXMuc2Vjb25kYXJ5Q29sb3IsIHsgbDogLTMwIH0pO1xuICAgIHRoaXMucGllNiA9IHRoaXMucGllNiB8fCBhZGp1c3QodGhpcy50ZXJ0aWFyeUNvbG9yLCB7IGg6IDQwLCBsOiAtNDAgfSk7XG4gICAgdGhpcy5waWU3ID0gdGhpcy5waWU3IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiA2MCwgbDogLTEwIH0pO1xuICAgIHRoaXMucGllOCA9IHRoaXMucGllOCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogLTYwLCBsOiAtMTAgfSk7XG4gICAgdGhpcy5waWU5ID0gdGhpcy5waWU5IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAxMjAsIGw6IDAgfSk7XG4gICAgdGhpcy5waWUxMCA9IHRoaXMucGllMTAgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDYwLCBsOiAtNTAgfSk7XG4gICAgdGhpcy5waWUxMSA9IHRoaXMucGllMTEgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IC02MCwgbDogLTUwIH0pO1xuICAgIHRoaXMucGllMTIgPSB0aGlzLnBpZTEyIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAxMjAsIGw6IC01MCB9KTtcbiAgICB0aGlzLnBpZVRpdGxlVGV4dFNpemUgPSB0aGlzLnBpZVRpdGxlVGV4dFNpemUgfHwgXCIyNXB4XCI7XG4gICAgdGhpcy5waWVUaXRsZVRleHRDb2xvciA9IHRoaXMucGllVGl0bGVUZXh0Q29sb3IgfHwgdGhpcy50YXNrVGV4dERhcmtDb2xvcjtcbiAgICB0aGlzLnBpZVNlY3Rpb25UZXh0U2l6ZSA9IHRoaXMucGllU2VjdGlvblRleHRTaXplIHx8IFwiMTdweFwiO1xuICAgIHRoaXMucGllU2VjdGlvblRleHRDb2xvciA9IHRoaXMucGllU2VjdGlvblRleHRDb2xvciB8fCB0aGlzLnRleHRDb2xvcjtcbiAgICB0aGlzLnBpZUxlZ2VuZFRleHRTaXplID0gdGhpcy5waWVMZWdlbmRUZXh0U2l6ZSB8fCBcIjE3cHhcIjtcbiAgICB0aGlzLnBpZUxlZ2VuZFRleHRDb2xvciA9IHRoaXMucGllTGVnZW5kVGV4dENvbG9yIHx8IHRoaXMudGFza1RleHREYXJrQ29sb3I7XG4gICAgdGhpcy5waWVTdHJva2VDb2xvciA9IHRoaXMucGllU3Ryb2tlQ29sb3IgfHwgXCJibGFja1wiO1xuICAgIHRoaXMucGllU3Ryb2tlV2lkdGggPSB0aGlzLnBpZVN0cm9rZVdpZHRoIHx8IFwiMnB4XCI7XG4gICAgdGhpcy5waWVPdXRlclN0cm9rZVdpZHRoID0gdGhpcy5waWVPdXRlclN0cm9rZVdpZHRoIHx8IFwiMnB4XCI7XG4gICAgdGhpcy5waWVPdXRlclN0cm9rZUNvbG9yID0gdGhpcy5waWVPdXRlclN0cm9rZUNvbG9yIHx8IFwiYmxhY2tcIjtcbiAgICB0aGlzLnBpZU9wYWNpdHkgPSB0aGlzLnBpZU9wYWNpdHkgfHwgXCIwLjdcIjtcbiAgICB0aGlzLnF1YWRyYW50MUZpbGwgPSB0aGlzLnF1YWRyYW50MUZpbGwgfHwgdGhpcy5wcmltYXJ5Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudDJGaWxsID0gdGhpcy5xdWFkcmFudDJGaWxsIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyByOiA1LCBnOiA1LCBiOiA1IH0pO1xuICAgIHRoaXMucXVhZHJhbnQzRmlsbCA9IHRoaXMucXVhZHJhbnQzRmlsbCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgcjogMTAsIGc6IDEwLCBiOiAxMCB9KTtcbiAgICB0aGlzLnF1YWRyYW50NEZpbGwgPSB0aGlzLnF1YWRyYW50NEZpbGwgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IHI6IDE1LCBnOiAxNSwgYjogMTUgfSk7XG4gICAgdGhpcy5xdWFkcmFudDFUZXh0RmlsbCA9IHRoaXMucXVhZHJhbnQxVGV4dEZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMucXVhZHJhbnQyVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50MlRleHRGaWxsIHx8IGFkanVzdCh0aGlzLnByaW1hcnlUZXh0Q29sb3IsIHsgcjogLTUsIGc6IC01LCBiOiAtNSB9KTtcbiAgICB0aGlzLnF1YWRyYW50M1RleHRGaWxsID0gdGhpcy5xdWFkcmFudDNUZXh0RmlsbCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5VGV4dENvbG9yLCB7IHI6IC0xMCwgZzogLTEwLCBiOiAtMTAgfSk7XG4gICAgdGhpcy5xdWFkcmFudDRUZXh0RmlsbCA9IHRoaXMucXVhZHJhbnQ0VGV4dEZpbGwgfHwgYWRqdXN0KHRoaXMucHJpbWFyeVRleHRDb2xvciwgeyByOiAtMTUsIGc6IC0xNSwgYjogLTE1IH0pO1xuICAgIHRoaXMucXVhZHJhbnRQb2ludEZpbGwgPSB0aGlzLnF1YWRyYW50UG9pbnRGaWxsIHx8IGlzRGFyayh0aGlzLnF1YWRyYW50MUZpbGwpID8gbGlnaHRlbih0aGlzLnF1YWRyYW50MUZpbGwpIDogZGFya2VuKHRoaXMucXVhZHJhbnQxRmlsbCk7XG4gICAgdGhpcy5xdWFkcmFudFBvaW50VGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50UG9pbnRUZXh0RmlsbCB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudFhBeGlzVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50WEF4aXNUZXh0RmlsbCB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudFlBeGlzVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50WUF4aXNUZXh0RmlsbCB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5xdWFkcmFudEludGVybmFsQm9yZGVyU3Ryb2tlRmlsbCA9IHRoaXMucXVhZHJhbnRJbnRlcm5hbEJvcmRlclN0cm9rZUZpbGwgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5xdWFkcmFudEV4dGVybmFsQm9yZGVyU3Ryb2tlRmlsbCA9IHRoaXMucXVhZHJhbnRFeHRlcm5hbEJvcmRlclN0cm9rZUZpbGwgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5xdWFkcmFudFRpdGxlRmlsbCA9IHRoaXMucXVhZHJhbnRUaXRsZUZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMueHlDaGFydCA9IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogKChfYSA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmJhY2tncm91bmRDb2xvcikgfHwgdGhpcy5iYWNrZ3JvdW5kLFxuICAgICAgdGl0bGVDb2xvcjogKChfYiA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnRpdGxlQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHhBeGlzVGl0bGVDb2xvcjogKChfYyA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jLnhBeGlzVGl0bGVDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeEF4aXNMYWJlbENvbG9yOiAoKF9kID0gdGhpcy54eUNoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2QueEF4aXNMYWJlbENvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB4QXhpc1RpY2tDb2xvcjogKChfZSA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lLnhBeGlzVGlja0NvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB4QXhpc0xpbmVDb2xvcjogKChfZiA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9mLnhBeGlzTGluZUNvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB5QXhpc1RpdGxlQ29sb3I6ICgoX2cgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfZy55QXhpc1RpdGxlQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHlBeGlzTGFiZWxDb2xvcjogKChfaCA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9oLnlBeGlzTGFiZWxDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeUF4aXNUaWNrQ29sb3I6ICgoX2kgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfaS55QXhpc1RpY2tDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeUF4aXNMaW5lQ29sb3I6ICgoX2ogPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfai55QXhpc0xpbmVDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgcGxvdENvbG9yUGFsZXR0ZTogKChfayA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9rLnBsb3RDb2xvclBhbGV0dGUpIHx8IFwiI0NERTQ5OCwjRkY2QjZCLCNBMEQyREIsI0Q3QkRFMiwjRjBGMEYwLCNGRkMzQTAsIzdGRDhCRSwjRkY5QThCLCNGQUYzRTAsI0ZGRjE3NlwiXG4gICAgfTtcbiAgICB0aGlzLnJlcXVpcmVtZW50QmFja2dyb3VuZCA9IHRoaXMucmVxdWlyZW1lbnRCYWNrZ3JvdW5kIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMucmVxdWlyZW1lbnRCb3JkZXJDb2xvciA9IHRoaXMucmVxdWlyZW1lbnRCb3JkZXJDb2xvciB8fCB0aGlzLnByaW1hcnlCb3JkZXJDb2xvcjtcbiAgICB0aGlzLnJlcXVpcmVtZW50Qm9yZGVyU2l6ZSA9IHRoaXMucmVxdWlyZW1lbnRCb3JkZXJTaXplIHx8IFwiMVwiO1xuICAgIHRoaXMucmVxdWlyZW1lbnRUZXh0Q29sb3IgPSB0aGlzLnJlcXVpcmVtZW50VGV4dENvbG9yIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnJlbGF0aW9uQ29sb3IgPSB0aGlzLnJlbGF0aW9uQ29sb3IgfHwgdGhpcy5saW5lQ29sb3I7XG4gICAgdGhpcy5yZWxhdGlvbkxhYmVsQmFja2dyb3VuZCA9IHRoaXMucmVsYXRpb25MYWJlbEJhY2tncm91bmQgfHwgdGhpcy5lZGdlTGFiZWxCYWNrZ3JvdW5kO1xuICAgIHRoaXMucmVsYXRpb25MYWJlbENvbG9yID0gdGhpcy5yZWxhdGlvbkxhYmVsQ29sb3IgfHwgdGhpcy5hY3RvclRleHRDb2xvcjtcbiAgICB0aGlzLmdpdDAgPSB0aGlzLmdpdDAgfHwgdGhpcy5wcmltYXJ5Q29sb3I7XG4gICAgdGhpcy5naXQxID0gdGhpcy5naXQxIHx8IHRoaXMuc2Vjb25kYXJ5Q29sb3I7XG4gICAgdGhpcy5naXQyID0gdGhpcy5naXQyIHx8IHRoaXMudGVydGlhcnlDb2xvcjtcbiAgICB0aGlzLmdpdDMgPSB0aGlzLmdpdDMgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IC0zMCB9KTtcbiAgICB0aGlzLmdpdDQgPSB0aGlzLmdpdDQgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IC02MCB9KTtcbiAgICB0aGlzLmdpdDUgPSB0aGlzLmdpdDUgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IC05MCB9KTtcbiAgICB0aGlzLmdpdDYgPSB0aGlzLmdpdDYgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDYwIH0pO1xuICAgIHRoaXMuZ2l0NyA9IHRoaXMuZ2l0NyB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgaDogMTIwIH0pO1xuICAgIGlmICh0aGlzLmRhcmtNb2RlKSB7XG4gICAgICB0aGlzLmdpdDAgPSBsaWdodGVuKHRoaXMuZ2l0MCwgMjUpO1xuICAgICAgdGhpcy5naXQxID0gbGlnaHRlbih0aGlzLmdpdDEsIDI1KTtcbiAgICAgIHRoaXMuZ2l0MiA9IGxpZ2h0ZW4odGhpcy5naXQyLCAyNSk7XG4gICAgICB0aGlzLmdpdDMgPSBsaWdodGVuKHRoaXMuZ2l0MywgMjUpO1xuICAgICAgdGhpcy5naXQ0ID0gbGlnaHRlbih0aGlzLmdpdDQsIDI1KTtcbiAgICAgIHRoaXMuZ2l0NSA9IGxpZ2h0ZW4odGhpcy5naXQ1LCAyNSk7XG4gICAgICB0aGlzLmdpdDYgPSBsaWdodGVuKHRoaXMuZ2l0NiwgMjUpO1xuICAgICAgdGhpcy5naXQ3ID0gbGlnaHRlbih0aGlzLmdpdDcsIDI1KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5naXQwID0gZGFya2VuKHRoaXMuZ2l0MCwgMjUpO1xuICAgICAgdGhpcy5naXQxID0gZGFya2VuKHRoaXMuZ2l0MSwgMjUpO1xuICAgICAgdGhpcy5naXQyID0gZGFya2VuKHRoaXMuZ2l0MiwgMjUpO1xuICAgICAgdGhpcy5naXQzID0gZGFya2VuKHRoaXMuZ2l0MywgMjUpO1xuICAgICAgdGhpcy5naXQ0ID0gZGFya2VuKHRoaXMuZ2l0NCwgMjUpO1xuICAgICAgdGhpcy5naXQ1ID0gZGFya2VuKHRoaXMuZ2l0NSwgMjUpO1xuICAgICAgdGhpcy5naXQ2ID0gZGFya2VuKHRoaXMuZ2l0NiwgMjUpO1xuICAgICAgdGhpcy5naXQ3ID0gZGFya2VuKHRoaXMuZ2l0NywgMjUpO1xuICAgIH1cbiAgICB0aGlzLmdpdEludjAgPSB0aGlzLmdpdEludjAgfHwgaW52ZXJ0KHRoaXMuZ2l0MCk7XG4gICAgdGhpcy5naXRJbnYxID0gdGhpcy5naXRJbnYxIHx8IGludmVydCh0aGlzLmdpdDEpO1xuICAgIHRoaXMuZ2l0SW52MiA9IHRoaXMuZ2l0SW52MiB8fCBpbnZlcnQodGhpcy5naXQyKTtcbiAgICB0aGlzLmdpdEludjMgPSB0aGlzLmdpdEludjMgfHwgaW52ZXJ0KHRoaXMuZ2l0Myk7XG4gICAgdGhpcy5naXRJbnY0ID0gdGhpcy5naXRJbnY0IHx8IGludmVydCh0aGlzLmdpdDQpO1xuICAgIHRoaXMuZ2l0SW52NSA9IHRoaXMuZ2l0SW52NSB8fCBpbnZlcnQodGhpcy5naXQ1KTtcbiAgICB0aGlzLmdpdEludjYgPSB0aGlzLmdpdEludjYgfHwgaW52ZXJ0KHRoaXMuZ2l0Nik7XG4gICAgdGhpcy5naXRJbnY3ID0gdGhpcy5naXRJbnY3IHx8IGludmVydCh0aGlzLmdpdDcpO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWwwID0gdGhpcy5naXRCcmFuY2hMYWJlbDAgfHwgaW52ZXJ0KHRoaXMubGFiZWxUZXh0Q29sb3IpO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWwxID0gdGhpcy5naXRCcmFuY2hMYWJlbDEgfHwgdGhpcy5sYWJlbFRleHRDb2xvcjtcbiAgICB0aGlzLmdpdEJyYW5jaExhYmVsMiA9IHRoaXMuZ2l0QnJhbmNoTGFiZWwyIHx8IHRoaXMubGFiZWxUZXh0Q29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDMgPSB0aGlzLmdpdEJyYW5jaExhYmVsMyB8fCBpbnZlcnQodGhpcy5sYWJlbFRleHRDb2xvcik7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDQgPSB0aGlzLmdpdEJyYW5jaExhYmVsNCB8fCB0aGlzLmxhYmVsVGV4dENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWw1ID0gdGhpcy5naXRCcmFuY2hMYWJlbDUgfHwgdGhpcy5sYWJlbFRleHRDb2xvcjtcbiAgICB0aGlzLmdpdEJyYW5jaExhYmVsNiA9IHRoaXMuZ2l0QnJhbmNoTGFiZWw2IHx8IHRoaXMubGFiZWxUZXh0Q29sb3I7XG4gICAgdGhpcy5naXRCcmFuY2hMYWJlbDcgPSB0aGlzLmdpdEJyYW5jaExhYmVsNyB8fCB0aGlzLmxhYmVsVGV4dENvbG9yO1xuICAgIHRoaXMudGFnTGFiZWxDb2xvciA9IHRoaXMudGFnTGFiZWxDb2xvciB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy50YWdMYWJlbEJhY2tncm91bmQgPSB0aGlzLnRhZ0xhYmVsQmFja2dyb3VuZCB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLnRhZ0xhYmVsQm9yZGVyID0gdGhpcy50YWdCb3JkZXIgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy50YWdMYWJlbEZvbnRTaXplID0gdGhpcy50YWdMYWJlbEZvbnRTaXplIHx8IFwiMTBweFwiO1xuICAgIHRoaXMuY29tbWl0TGFiZWxDb2xvciA9IHRoaXMuY29tbWl0TGFiZWxDb2xvciB8fCB0aGlzLnNlY29uZGFyeVRleHRDb2xvcjtcbiAgICB0aGlzLmNvbW1pdExhYmVsQmFja2dyb3VuZCA9IHRoaXMuY29tbWl0TGFiZWxCYWNrZ3JvdW5kIHx8IHRoaXMuc2Vjb25kYXJ5Q29sb3I7XG4gICAgdGhpcy5jb21taXRMYWJlbEZvbnRTaXplID0gdGhpcy5jb21taXRMYWJlbEZvbnRTaXplIHx8IFwiMTBweFwiO1xuICAgIHRoaXMuYXR0cmlidXRlQmFja2dyb3VuZENvbG9yT2RkID0gdGhpcy5hdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JPZGQgfHwgb2xkQXR0cmlidXRlQmFja2dyb3VuZENvbG9yT2RkO1xuICAgIHRoaXMuYXR0cmlidXRlQmFja2dyb3VuZENvbG9yRXZlbiA9IHRoaXMuYXR0cmlidXRlQmFja2dyb3VuZENvbG9yRXZlbiB8fCBvbGRBdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JFdmVuO1xuICB9XG4gIGNhbGN1bGF0ZShvdmVycmlkZXMpIHtcbiAgICBpZiAodHlwZW9mIG92ZXJyaWRlcyAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhpcy51cGRhdGVDb2xvcnMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG92ZXJyaWRlcyk7XG4gICAga2V5cy5mb3JFYWNoKChrKSA9PiB7XG4gICAgICB0aGlzW2tdID0gb3ZlcnJpZGVzW2tdO1xuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlQ29sb3JzKCk7XG4gICAga2V5cy5mb3JFYWNoKChrKSA9PiB7XG4gICAgICB0aGlzW2tdID0gb3ZlcnJpZGVzW2tdO1xuICAgIH0pO1xuICB9XG59O1xuY29uc3QgZ2V0VGhlbWVWYXJpYWJsZXMkMSA9ICh1c2VyT3ZlcnJpZGVzKSA9PiB7XG4gIGNvbnN0IHRoZW1lMiA9IG5ldyBUaGVtZSQxKCk7XG4gIHRoZW1lMi5jYWxjdWxhdGUodXNlck92ZXJyaWRlcyk7XG4gIHJldHVybiB0aGVtZTI7XG59O1xuY2xhc3MgVGhlbWU1IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5wcmltYXJ5Q29sb3IgPSBcIiNlZWVcIjtcbiAgICB0aGlzLmNvbnRyYXN0ID0gXCIjNzA3MDcwXCI7XG4gICAgdGhpcy5zZWNvbmRhcnlDb2xvciA9IGxpZ2h0ZW4odGhpcy5jb250cmFzdCwgNTUpO1xuICAgIHRoaXMuYmFja2dyb3VuZCA9IFwiI2ZmZmZmZlwiO1xuICAgIHRoaXMudGVydGlhcnlDb2xvciA9IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAtMTYwIH0pO1xuICAgIHRoaXMucHJpbWFyeUJvcmRlckNvbG9yID0gbWtCb3JkZXIodGhpcy5wcmltYXJ5Q29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMuc2Vjb25kYXJ5Qm9yZGVyQ29sb3IgPSBta0JvcmRlcih0aGlzLnNlY29uZGFyeUNvbG9yLCB0aGlzLmRhcmtNb2RlKTtcbiAgICB0aGlzLnRlcnRpYXJ5Qm9yZGVyQ29sb3IgPSBta0JvcmRlcih0aGlzLnRlcnRpYXJ5Q29sb3IsIHRoaXMuZGFya01vZGUpO1xuICAgIHRoaXMucHJpbWFyeVRleHRDb2xvciA9IGludmVydCh0aGlzLnByaW1hcnlDb2xvcik7XG4gICAgdGhpcy5zZWNvbmRhcnlUZXh0Q29sb3IgPSBpbnZlcnQodGhpcy5zZWNvbmRhcnlDb2xvcik7XG4gICAgdGhpcy50ZXJ0aWFyeVRleHRDb2xvciA9IGludmVydCh0aGlzLnRlcnRpYXJ5Q29sb3IpO1xuICAgIHRoaXMubGluZUNvbG9yID0gaW52ZXJ0KHRoaXMuYmFja2dyb3VuZCk7XG4gICAgdGhpcy50ZXh0Q29sb3IgPSBpbnZlcnQodGhpcy5iYWNrZ3JvdW5kKTtcbiAgICB0aGlzLm1haW5Ca2cgPSBcIiNlZWVcIjtcbiAgICB0aGlzLnNlY29uZEJrZyA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMubGluZUNvbG9yID0gXCIjNjY2XCI7XG4gICAgdGhpcy5ib3JkZXIxID0gXCIjOTk5XCI7XG4gICAgdGhpcy5ib3JkZXIyID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5ub3RlID0gXCIjZmZhXCI7XG4gICAgdGhpcy50ZXh0ID0gXCIjMzMzXCI7XG4gICAgdGhpcy5jcml0aWNhbCA9IFwiI2Q0MlwiO1xuICAgIHRoaXMuZG9uZSA9IFwiI2JiYlwiO1xuICAgIHRoaXMuYXJyb3doZWFkQ29sb3IgPSBcIiMzMzMzMzNcIjtcbiAgICB0aGlzLmZvbnRGYW1pbHkgPSAnXCJ0cmVidWNoZXQgbXNcIiwgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWYnO1xuICAgIHRoaXMuZm9udFNpemUgPSBcIjE2cHhcIjtcbiAgICB0aGlzLlRIRU1FX0NPTE9SX0xJTUlUID0gMTI7XG4gICAgdGhpcy5ub2RlQmtnID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5ub2RlQm9yZGVyID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5jbHVzdGVyQmtnID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5jbHVzdGVyQm9yZGVyID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5kZWZhdWx0TGlua0NvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy50aXRsZUNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5lZGdlTGFiZWxCYWNrZ3JvdW5kID0gXCJ3aGl0ZVwiO1xuICAgIHRoaXMuYWN0b3JCb3JkZXIgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmFjdG9yQmtnID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5hY3RvclRleHRDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuYWN0b3JMaW5lQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnNpZ25hbENvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5zaWduYWxUZXh0Q29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmxhYmVsQm94QmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmxhYmVsQm94Qm9yZGVyQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmxhYmVsVGV4dENvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5sb29wVGV4dENvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5ub3RlQm9yZGVyQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLm5vdGVCa2dDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMubm90ZVRleHRDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuYWN0aXZhdGlvbkJvcmRlckNvbG9yID0gXCIjNjY2XCI7XG4gICAgdGhpcy5hY3RpdmF0aW9uQmtnQ29sb3IgPSBcIiNmNGY0ZjRcIjtcbiAgICB0aGlzLnNlcXVlbmNlTnVtYmVyQ29sb3IgPSBcIndoaXRlXCI7XG4gICAgdGhpcy5zZWN0aW9uQmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmFsdFNlY3Rpb25Ca2dDb2xvciA9IFwid2hpdGVcIjtcbiAgICB0aGlzLnNlY3Rpb25Ca2dDb2xvcjIgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmV4Y2x1ZGVCa2dDb2xvciA9IFwiI2VlZWVlZVwiO1xuICAgIHRoaXMudGFza0JvcmRlckNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy50YXNrQmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRhc2tUZXh0TGlnaHRDb2xvciA9IFwid2hpdGVcIjtcbiAgICB0aGlzLnRhc2tUZXh0Q29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRhc2tUZXh0RGFya0NvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy50YXNrVGV4dE91dHNpZGVDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMudGFza1RleHRDbGlja2FibGVDb2xvciA9IFwiIzAwMzE2M1wiO1xuICAgIHRoaXMuYWN0aXZlVGFza0JvcmRlckNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5hY3RpdmVUYXNrQmtnQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLmdyaWRDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuZG9uZVRhc2tCa2dDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuZG9uZVRhc2tCb3JkZXJDb2xvciA9IFwiY2FsY3VsYXRlZFwiO1xuICAgIHRoaXMuY3JpdEJrZ0NvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5jcml0Qm9yZGVyQ29sb3IgPSBcImNhbGN1bGF0ZWRcIjtcbiAgICB0aGlzLnRvZGF5TGluZUNvbG9yID0gXCJjYWxjdWxhdGVkXCI7XG4gICAgdGhpcy5wZXJzb25Cb3JkZXIgPSB0aGlzLnByaW1hcnlCb3JkZXJDb2xvcjtcbiAgICB0aGlzLnBlcnNvbkJrZyA9IHRoaXMubWFpbkJrZztcbiAgICB0aGlzLmxhYmVsQ29sb3IgPSBcImJsYWNrXCI7XG4gICAgdGhpcy5lcnJvckJrZ0NvbG9yID0gXCIjNTUyMjIyXCI7XG4gICAgdGhpcy5lcnJvclRleHRDb2xvciA9IFwiIzU1MjIyMlwiO1xuICB9XG4gIHVwZGF0ZUNvbG9ycygpIHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaSwgX2osIF9rO1xuICAgIHRoaXMuc2Vjb25kQmtnID0gbGlnaHRlbih0aGlzLmNvbnRyYXN0LCA1NSk7XG4gICAgdGhpcy5ib3JkZXIyID0gdGhpcy5jb250cmFzdDtcbiAgICB0aGlzLmFjdG9yQm9yZGVyID0gbGlnaHRlbih0aGlzLmJvcmRlcjEsIDIzKTtcbiAgICB0aGlzLmFjdG9yQmtnID0gdGhpcy5tYWluQmtnO1xuICAgIHRoaXMuYWN0b3JUZXh0Q29sb3IgPSB0aGlzLnRleHQ7XG4gICAgdGhpcy5hY3RvckxpbmVDb2xvciA9IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMuc2lnbmFsQ29sb3IgPSB0aGlzLnRleHQ7XG4gICAgdGhpcy5zaWduYWxUZXh0Q29sb3IgPSB0aGlzLnRleHQ7XG4gICAgdGhpcy5sYWJlbEJveEJrZ0NvbG9yID0gdGhpcy5hY3RvckJrZztcbiAgICB0aGlzLmxhYmVsQm94Qm9yZGVyQ29sb3IgPSB0aGlzLmFjdG9yQm9yZGVyO1xuICAgIHRoaXMubGFiZWxUZXh0Q29sb3IgPSB0aGlzLnRleHQ7XG4gICAgdGhpcy5sb29wVGV4dENvbG9yID0gdGhpcy50ZXh0O1xuICAgIHRoaXMubm90ZUJvcmRlckNvbG9yID0gXCIjOTk5XCI7XG4gICAgdGhpcy5ub3RlQmtnQ29sb3IgPSBcIiM2NjZcIjtcbiAgICB0aGlzLm5vdGVUZXh0Q29sb3IgPSBcIiNmZmZcIjtcbiAgICB0aGlzLmNTY2FsZTAgPSB0aGlzLmNTY2FsZTAgfHwgXCIjNTU1XCI7XG4gICAgdGhpcy5jU2NhbGUxID0gdGhpcy5jU2NhbGUxIHx8IFwiI0Y0RjRGNFwiO1xuICAgIHRoaXMuY1NjYWxlMiA9IHRoaXMuY1NjYWxlMiB8fCBcIiM1NTVcIjtcbiAgICB0aGlzLmNTY2FsZTMgPSB0aGlzLmNTY2FsZTMgfHwgXCIjQkJCXCI7XG4gICAgdGhpcy5jU2NhbGU0ID0gdGhpcy5jU2NhbGU0IHx8IFwiIzc3N1wiO1xuICAgIHRoaXMuY1NjYWxlNSA9IHRoaXMuY1NjYWxlNSB8fCBcIiM5OTlcIjtcbiAgICB0aGlzLmNTY2FsZTYgPSB0aGlzLmNTY2FsZTYgfHwgXCIjREREXCI7XG4gICAgdGhpcy5jU2NhbGU3ID0gdGhpcy5jU2NhbGU3IHx8IFwiI0ZGRlwiO1xuICAgIHRoaXMuY1NjYWxlOCA9IHRoaXMuY1NjYWxlOCB8fCBcIiNERERcIjtcbiAgICB0aGlzLmNTY2FsZTkgPSB0aGlzLmNTY2FsZTkgfHwgXCIjQkJCXCI7XG4gICAgdGhpcy5jU2NhbGUxMCA9IHRoaXMuY1NjYWxlMTAgfHwgXCIjOTk5XCI7XG4gICAgdGhpcy5jU2NhbGUxMSA9IHRoaXMuY1NjYWxlMTEgfHwgXCIjNzc3XCI7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICAgIHRoaXNbXCJjU2NhbGVJbnZcIiArIGldID0gdGhpc1tcImNTY2FsZUludlwiICsgaV0gfHwgaW52ZXJ0KHRoaXNbXCJjU2NhbGVcIiArIGldKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmRhcmtNb2RlKSB7XG4gICAgICAgIHRoaXNbXCJjU2NhbGVQZWVyXCIgKyBpXSA9IHRoaXNbXCJjU2NhbGVQZWVyXCIgKyBpXSB8fCBsaWdodGVuKHRoaXNbXCJjU2NhbGVcIiArIGldLCAxMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzW1wiY1NjYWxlUGVlclwiICsgaV0gPSB0aGlzW1wiY1NjYWxlUGVlclwiICsgaV0gfHwgZGFya2VuKHRoaXNbXCJjU2NhbGVcIiArIGldLCAxMCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2NhbGVMYWJlbENvbG9yID0gdGhpcy5zY2FsZUxhYmVsQ29sb3IgfHwgKHRoaXMuZGFya01vZGUgPyBcImJsYWNrXCIgOiB0aGlzLmxhYmVsVGV4dENvbG9yKTtcbiAgICB0aGlzW1wiY1NjYWxlTGFiZWwwXCJdID0gdGhpc1tcImNTY2FsZUxhYmVsMFwiXSB8fCB0aGlzLmNTY2FsZTE7XG4gICAgdGhpc1tcImNTY2FsZUxhYmVsMlwiXSA9IHRoaXNbXCJjU2NhbGVMYWJlbDJcIl0gfHwgdGhpcy5jU2NhbGUxO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5USEVNRV9DT0xPUl9MSU1JVDsgaSsrKSB7XG4gICAgICB0aGlzW1wiY1NjYWxlTGFiZWxcIiArIGldID0gdGhpc1tcImNTY2FsZUxhYmVsXCIgKyBpXSB8fCB0aGlzLnNjYWxlTGFiZWxDb2xvcjtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1OyBpKyspIHtcbiAgICAgIHRoaXNbXCJzdXJmYWNlXCIgKyBpXSA9IHRoaXNbXCJzdXJmYWNlXCIgKyBpXSB8fCBhZGp1c3QodGhpcy5tYWluQmtnLCB7IGw6IC0oNSArIGkgKiA1KSB9KTtcbiAgICAgIHRoaXNbXCJzdXJmYWNlUGVlclwiICsgaV0gPSB0aGlzW1wic3VyZmFjZVBlZXJcIiArIGldIHx8IGFkanVzdCh0aGlzLm1haW5Ca2csIHsgbDogLSg4ICsgaSAqIDUpIH0pO1xuICAgIH1cbiAgICB0aGlzLm5vZGVCa2cgPSB0aGlzLm1haW5Ca2c7XG4gICAgdGhpcy5ub2RlQm9yZGVyID0gdGhpcy5ib3JkZXIxO1xuICAgIHRoaXMuY2x1c3RlckJrZyA9IHRoaXMuc2Vjb25kQmtnO1xuICAgIHRoaXMuY2x1c3RlckJvcmRlciA9IHRoaXMuYm9yZGVyMjtcbiAgICB0aGlzLmRlZmF1bHRMaW5rQ29sb3IgPSB0aGlzLmxpbmVDb2xvcjtcbiAgICB0aGlzLnRpdGxlQ29sb3IgPSB0aGlzLnRleHQ7XG4gICAgdGhpcy5zZWN0aW9uQmtnQ29sb3IgPSBsaWdodGVuKHRoaXMuY29udHJhc3QsIDMwKTtcbiAgICB0aGlzLnNlY3Rpb25Ca2dDb2xvcjIgPSBsaWdodGVuKHRoaXMuY29udHJhc3QsIDMwKTtcbiAgICB0aGlzLnRhc2tCb3JkZXJDb2xvciA9IGRhcmtlbih0aGlzLmNvbnRyYXN0LCAxMCk7XG4gICAgdGhpcy50YXNrQmtnQ29sb3IgPSB0aGlzLmNvbnRyYXN0O1xuICAgIHRoaXMudGFza1RleHRDb2xvciA9IHRoaXMudGFza1RleHRMaWdodENvbG9yO1xuICAgIHRoaXMudGFza1RleHREYXJrQ29sb3IgPSB0aGlzLnRleHQ7XG4gICAgdGhpcy50YXNrVGV4dE91dHNpZGVDb2xvciA9IHRoaXMudGFza1RleHREYXJrQ29sb3I7XG4gICAgdGhpcy5hY3RpdmVUYXNrQm9yZGVyQ29sb3IgPSB0aGlzLnRhc2tCb3JkZXJDb2xvcjtcbiAgICB0aGlzLmFjdGl2ZVRhc2tCa2dDb2xvciA9IHRoaXMubWFpbkJrZztcbiAgICB0aGlzLmdyaWRDb2xvciA9IGxpZ2h0ZW4odGhpcy5ib3JkZXIxLCAzMCk7XG4gICAgdGhpcy5kb25lVGFza0JrZ0NvbG9yID0gdGhpcy5kb25lO1xuICAgIHRoaXMuZG9uZVRhc2tCb3JkZXJDb2xvciA9IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMuY3JpdEJrZ0NvbG9yID0gdGhpcy5jcml0aWNhbDtcbiAgICB0aGlzLmNyaXRCb3JkZXJDb2xvciA9IGRhcmtlbih0aGlzLmNyaXRCa2dDb2xvciwgMTApO1xuICAgIHRoaXMudG9kYXlMaW5lQ29sb3IgPSB0aGlzLmNyaXRCa2dDb2xvcjtcbiAgICB0aGlzLnRyYW5zaXRpb25Db2xvciA9IHRoaXMudHJhbnNpdGlvbkNvbG9yIHx8IFwiIzAwMFwiO1xuICAgIHRoaXMudHJhbnNpdGlvbkxhYmVsQ29sb3IgPSB0aGlzLnRyYW5zaXRpb25MYWJlbENvbG9yIHx8IHRoaXMudGV4dENvbG9yO1xuICAgIHRoaXMuc3RhdGVMYWJlbENvbG9yID0gdGhpcy5zdGF0ZUxhYmVsQ29sb3IgfHwgdGhpcy5zdGF0ZUJrZyB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5zdGF0ZUJrZyA9IHRoaXMuc3RhdGVCa2cgfHwgdGhpcy5tYWluQmtnO1xuICAgIHRoaXMubGFiZWxCYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmxhYmVsQmFja2dyb3VuZENvbG9yIHx8IHRoaXMuc3RhdGVCa2c7XG4gICAgdGhpcy5jb21wb3NpdGVCYWNrZ3JvdW5kID0gdGhpcy5jb21wb3NpdGVCYWNrZ3JvdW5kIHx8IHRoaXMuYmFja2dyb3VuZCB8fCB0aGlzLnRlcnRpYXJ5Q29sb3I7XG4gICAgdGhpcy5hbHRCYWNrZ3JvdW5kID0gdGhpcy5hbHRCYWNrZ3JvdW5kIHx8IFwiI2Y0ZjRmNFwiO1xuICAgIHRoaXMuY29tcG9zaXRlVGl0bGVCYWNrZ3JvdW5kID0gdGhpcy5jb21wb3NpdGVUaXRsZUJhY2tncm91bmQgfHwgdGhpcy5tYWluQmtnO1xuICAgIHRoaXMuc3RhdGVCb3JkZXIgPSB0aGlzLnN0YXRlQm9yZGVyIHx8IFwiIzAwMFwiO1xuICAgIHRoaXMuaW5uZXJFbmRCYWNrZ3JvdW5kID0gdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5zcGVjaWFsU3RhdGVDb2xvciA9IFwiIzIyMlwiO1xuICAgIHRoaXMuZXJyb3JCa2dDb2xvciA9IHRoaXMuZXJyb3JCa2dDb2xvciB8fCB0aGlzLnRlcnRpYXJ5Q29sb3I7XG4gICAgdGhpcy5lcnJvclRleHRDb2xvciA9IHRoaXMuZXJyb3JUZXh0Q29sb3IgfHwgdGhpcy50ZXJ0aWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLmNsYXNzVGV4dCA9IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLmZpbGxUeXBlMCA9IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMuZmlsbFR5cGUxID0gdGhpcy5zZWNvbmRhcnlDb2xvcjtcbiAgICB0aGlzLmZpbGxUeXBlMiA9IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiA2NCB9KTtcbiAgICB0aGlzLmZpbGxUeXBlMyA9IGFkanVzdCh0aGlzLnNlY29uZGFyeUNvbG9yLCB7IGg6IDY0IH0pO1xuICAgIHRoaXMuZmlsbFR5cGU0ID0gYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IC02NCB9KTtcbiAgICB0aGlzLmZpbGxUeXBlNSA9IGFkanVzdCh0aGlzLnNlY29uZGFyeUNvbG9yLCB7IGg6IC02NCB9KTtcbiAgICB0aGlzLmZpbGxUeXBlNiA9IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAxMjggfSk7XG4gICAgdGhpcy5maWxsVHlwZTcgPSBhZGp1c3QodGhpcy5zZWNvbmRhcnlDb2xvciwgeyBoOiAxMjggfSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRIRU1FX0NPTE9SX0xJTUlUOyBpKyspIHtcbiAgICAgIHRoaXNbXCJwaWVcIiArIGldID0gdGhpc1tcImNTY2FsZVwiICsgaV07XG4gICAgfVxuICAgIHRoaXMucGllMTIgPSB0aGlzLnBpZTA7XG4gICAgdGhpcy5waWVUaXRsZVRleHRTaXplID0gdGhpcy5waWVUaXRsZVRleHRTaXplIHx8IFwiMjVweFwiO1xuICAgIHRoaXMucGllVGl0bGVUZXh0Q29sb3IgPSB0aGlzLnBpZVRpdGxlVGV4dENvbG9yIHx8IHRoaXMudGFza1RleHREYXJrQ29sb3I7XG4gICAgdGhpcy5waWVTZWN0aW9uVGV4dFNpemUgPSB0aGlzLnBpZVNlY3Rpb25UZXh0U2l6ZSB8fCBcIjE3cHhcIjtcbiAgICB0aGlzLnBpZVNlY3Rpb25UZXh0Q29sb3IgPSB0aGlzLnBpZVNlY3Rpb25UZXh0Q29sb3IgfHwgdGhpcy50ZXh0Q29sb3I7XG4gICAgdGhpcy5waWVMZWdlbmRUZXh0U2l6ZSA9IHRoaXMucGllTGVnZW5kVGV4dFNpemUgfHwgXCIxN3B4XCI7XG4gICAgdGhpcy5waWVMZWdlbmRUZXh0Q29sb3IgPSB0aGlzLnBpZUxlZ2VuZFRleHRDb2xvciB8fCB0aGlzLnRhc2tUZXh0RGFya0NvbG9yO1xuICAgIHRoaXMucGllU3Ryb2tlQ29sb3IgPSB0aGlzLnBpZVN0cm9rZUNvbG9yIHx8IFwiYmxhY2tcIjtcbiAgICB0aGlzLnBpZVN0cm9rZVdpZHRoID0gdGhpcy5waWVTdHJva2VXaWR0aCB8fCBcIjJweFwiO1xuICAgIHRoaXMucGllT3V0ZXJTdHJva2VXaWR0aCA9IHRoaXMucGllT3V0ZXJTdHJva2VXaWR0aCB8fCBcIjJweFwiO1xuICAgIHRoaXMucGllT3V0ZXJTdHJva2VDb2xvciA9IHRoaXMucGllT3V0ZXJTdHJva2VDb2xvciB8fCBcImJsYWNrXCI7XG4gICAgdGhpcy5waWVPcGFjaXR5ID0gdGhpcy5waWVPcGFjaXR5IHx8IFwiMC43XCI7XG4gICAgdGhpcy5xdWFkcmFudDFGaWxsID0gdGhpcy5xdWFkcmFudDFGaWxsIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMucXVhZHJhbnQyRmlsbCA9IHRoaXMucXVhZHJhbnQyRmlsbCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5Q29sb3IsIHsgcjogNSwgZzogNSwgYjogNSB9KTtcbiAgICB0aGlzLnF1YWRyYW50M0ZpbGwgPSB0aGlzLnF1YWRyYW50M0ZpbGwgfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IHI6IDEwLCBnOiAxMCwgYjogMTAgfSk7XG4gICAgdGhpcy5xdWFkcmFudDRGaWxsID0gdGhpcy5xdWFkcmFudDRGaWxsIHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyByOiAxNSwgZzogMTUsIGI6IDE1IH0pO1xuICAgIHRoaXMucXVhZHJhbnQxVGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50MVRleHRGaWxsIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnF1YWRyYW50MlRleHRGaWxsID0gdGhpcy5xdWFkcmFudDJUZXh0RmlsbCB8fCBhZGp1c3QodGhpcy5wcmltYXJ5VGV4dENvbG9yLCB7IHI6IC01LCBnOiAtNSwgYjogLTUgfSk7XG4gICAgdGhpcy5xdWFkcmFudDNUZXh0RmlsbCA9IHRoaXMucXVhZHJhbnQzVGV4dEZpbGwgfHwgYWRqdXN0KHRoaXMucHJpbWFyeVRleHRDb2xvciwgeyByOiAtMTAsIGc6IC0xMCwgYjogLTEwIH0pO1xuICAgIHRoaXMucXVhZHJhbnQ0VGV4dEZpbGwgPSB0aGlzLnF1YWRyYW50NFRleHRGaWxsIHx8IGFkanVzdCh0aGlzLnByaW1hcnlUZXh0Q29sb3IsIHsgcjogLTE1LCBnOiAtMTUsIGI6IC0xNSB9KTtcbiAgICB0aGlzLnF1YWRyYW50UG9pbnRGaWxsID0gdGhpcy5xdWFkcmFudFBvaW50RmlsbCB8fCBpc0RhcmsodGhpcy5xdWFkcmFudDFGaWxsKSA/IGxpZ2h0ZW4odGhpcy5xdWFkcmFudDFGaWxsKSA6IGRhcmtlbih0aGlzLnF1YWRyYW50MUZpbGwpO1xuICAgIHRoaXMucXVhZHJhbnRQb2ludFRleHRGaWxsID0gdGhpcy5xdWFkcmFudFBvaW50VGV4dEZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMucXVhZHJhbnRYQXhpc1RleHRGaWxsID0gdGhpcy5xdWFkcmFudFhBeGlzVGV4dEZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMucXVhZHJhbnRZQXhpc1RleHRGaWxsID0gdGhpcy5xdWFkcmFudFlBeGlzVGV4dEZpbGwgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yO1xuICAgIHRoaXMucXVhZHJhbnRJbnRlcm5hbEJvcmRlclN0cm9rZUZpbGwgPSB0aGlzLnF1YWRyYW50SW50ZXJuYWxCb3JkZXJTdHJva2VGaWxsIHx8IHRoaXMucHJpbWFyeUJvcmRlckNvbG9yO1xuICAgIHRoaXMucXVhZHJhbnRFeHRlcm5hbEJvcmRlclN0cm9rZUZpbGwgPSB0aGlzLnF1YWRyYW50RXh0ZXJuYWxCb3JkZXJTdHJva2VGaWxsIHx8IHRoaXMucHJpbWFyeUJvcmRlckNvbG9yO1xuICAgIHRoaXMucXVhZHJhbnRUaXRsZUZpbGwgPSB0aGlzLnF1YWRyYW50VGl0bGVGaWxsIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcjtcbiAgICB0aGlzLnh5Q2hhcnQgPSB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICgoX2EgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5iYWNrZ3JvdW5kQ29sb3IpIHx8IHRoaXMuYmFja2dyb3VuZCxcbiAgICAgIHRpdGxlQ29sb3I6ICgoX2IgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYi50aXRsZUNvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB4QXhpc1RpdGxlQ29sb3I6ICgoX2MgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYy54QXhpc1RpdGxlQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHhBeGlzTGFiZWxDb2xvcjogKChfZCA9IHRoaXMueHlDaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kLnhBeGlzTGFiZWxDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeEF4aXNUaWNrQ29sb3I6ICgoX2UgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfZS54QXhpc1RpY2tDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeEF4aXNMaW5lQ29sb3I6ICgoX2YgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfZi54QXhpc0xpbmVDb2xvcikgfHwgdGhpcy5wcmltYXJ5VGV4dENvbG9yLFxuICAgICAgeUF4aXNUaXRsZUNvbG9yOiAoKF9nID0gdGhpcy54eUNoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2cueUF4aXNUaXRsZUNvbG9yKSB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3IsXG4gICAgICB5QXhpc0xhYmVsQ29sb3I6ICgoX2ggPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfaC55QXhpc0xhYmVsQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHlBeGlzVGlja0NvbG9yOiAoKF9pID0gdGhpcy54eUNoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2kueUF4aXNUaWNrQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHlBeGlzTGluZUNvbG9yOiAoKF9qID0gdGhpcy54eUNoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2oueUF4aXNMaW5lQ29sb3IpIHx8IHRoaXMucHJpbWFyeVRleHRDb2xvcixcbiAgICAgIHBsb3RDb2xvclBhbGV0dGU6ICgoX2sgPSB0aGlzLnh5Q2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfay5wbG90Q29sb3JQYWxldHRlKSB8fCBcIiNFRUUsIzZCQjhFNCwjOEFDQjg4LCNDN0FDRDYsI0U4RENDMiwjRkZCMkE4LCNGRkYzODAsIzdFOEQ5MSwjRkZEOEIxLCNGQUYzRTBcIlxuICAgIH07XG4gICAgdGhpcy5yZXF1aXJlbWVudEJhY2tncm91bmQgPSB0aGlzLnJlcXVpcmVtZW50QmFja2dyb3VuZCB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLnJlcXVpcmVtZW50Qm9yZGVyQ29sb3IgPSB0aGlzLnJlcXVpcmVtZW50Qm9yZGVyQ29sb3IgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy5yZXF1aXJlbWVudEJvcmRlclNpemUgPSB0aGlzLnJlcXVpcmVtZW50Qm9yZGVyU2l6ZSB8fCBcIjFcIjtcbiAgICB0aGlzLnJlcXVpcmVtZW50VGV4dENvbG9yID0gdGhpcy5yZXF1aXJlbWVudFRleHRDb2xvciB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy5yZWxhdGlvbkNvbG9yID0gdGhpcy5yZWxhdGlvbkNvbG9yIHx8IHRoaXMubGluZUNvbG9yO1xuICAgIHRoaXMucmVsYXRpb25MYWJlbEJhY2tncm91bmQgPSB0aGlzLnJlbGF0aW9uTGFiZWxCYWNrZ3JvdW5kIHx8IHRoaXMuZWRnZUxhYmVsQmFja2dyb3VuZDtcbiAgICB0aGlzLnJlbGF0aW9uTGFiZWxDb2xvciA9IHRoaXMucmVsYXRpb25MYWJlbENvbG9yIHx8IHRoaXMuYWN0b3JUZXh0Q29sb3I7XG4gICAgdGhpcy5naXQwID0gZGFya2VuKHRoaXMucGllMSwgMjUpIHx8IHRoaXMucHJpbWFyeUNvbG9yO1xuICAgIHRoaXMuZ2l0MSA9IHRoaXMucGllMiB8fCB0aGlzLnNlY29uZGFyeUNvbG9yO1xuICAgIHRoaXMuZ2l0MiA9IHRoaXMucGllMyB8fCB0aGlzLnRlcnRpYXJ5Q29sb3I7XG4gICAgdGhpcy5naXQzID0gdGhpcy5waWU0IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAtMzAgfSk7XG4gICAgdGhpcy5naXQ0ID0gdGhpcy5waWU1IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAtNjAgfSk7XG4gICAgdGhpcy5naXQ1ID0gdGhpcy5waWU2IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiAtOTAgfSk7XG4gICAgdGhpcy5naXQ2ID0gdGhpcy5waWU3IHx8IGFkanVzdCh0aGlzLnByaW1hcnlDb2xvciwgeyBoOiA2MCB9KTtcbiAgICB0aGlzLmdpdDcgPSB0aGlzLnBpZTggfHwgYWRqdXN0KHRoaXMucHJpbWFyeUNvbG9yLCB7IGg6IDEyMCB9KTtcbiAgICB0aGlzLmdpdEludjAgPSB0aGlzLmdpdEludjAgfHwgaW52ZXJ0KHRoaXMuZ2l0MCk7XG4gICAgdGhpcy5naXRJbnYxID0gdGhpcy5naXRJbnYxIHx8IGludmVydCh0aGlzLmdpdDEpO1xuICAgIHRoaXMuZ2l0SW52MiA9IHRoaXMuZ2l0SW52MiB8fCBpbnZlcnQodGhpcy5naXQyKTtcbiAgICB0aGlzLmdpdEludjMgPSB0aGlzLmdpdEludjMgfHwgaW52ZXJ0KHRoaXMuZ2l0Myk7XG4gICAgdGhpcy5naXRJbnY0ID0gdGhpcy5naXRJbnY0IHx8IGludmVydCh0aGlzLmdpdDQpO1xuICAgIHRoaXMuZ2l0SW52NSA9IHRoaXMuZ2l0SW52NSB8fCBpbnZlcnQodGhpcy5naXQ1KTtcbiAgICB0aGlzLmdpdEludjYgPSB0aGlzLmdpdEludjYgfHwgaW52ZXJ0KHRoaXMuZ2l0Nik7XG4gICAgdGhpcy5naXRJbnY3ID0gdGhpcy5naXRJbnY3IHx8IGludmVydCh0aGlzLmdpdDcpO1xuICAgIHRoaXMuYnJhbmNoTGFiZWxDb2xvciA9IHRoaXMuYnJhbmNoTGFiZWxDb2xvciB8fCB0aGlzLmxhYmVsVGV4dENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWwwID0gdGhpcy5icmFuY2hMYWJlbENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWwxID0gXCJ3aGl0ZVwiO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWwyID0gdGhpcy5icmFuY2hMYWJlbENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWwzID0gXCJ3aGl0ZVwiO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWw0ID0gdGhpcy5icmFuY2hMYWJlbENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWw1ID0gdGhpcy5icmFuY2hMYWJlbENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWw2ID0gdGhpcy5icmFuY2hMYWJlbENvbG9yO1xuICAgIHRoaXMuZ2l0QnJhbmNoTGFiZWw3ID0gdGhpcy5icmFuY2hMYWJlbENvbG9yO1xuICAgIHRoaXMudGFnTGFiZWxDb2xvciA9IHRoaXMudGFnTGFiZWxDb2xvciB8fCB0aGlzLnByaW1hcnlUZXh0Q29sb3I7XG4gICAgdGhpcy50YWdMYWJlbEJhY2tncm91bmQgPSB0aGlzLnRhZ0xhYmVsQmFja2dyb3VuZCB8fCB0aGlzLnByaW1hcnlDb2xvcjtcbiAgICB0aGlzLnRhZ0xhYmVsQm9yZGVyID0gdGhpcy50YWdCb3JkZXIgfHwgdGhpcy5wcmltYXJ5Qm9yZGVyQ29sb3I7XG4gICAgdGhpcy50YWdMYWJlbEZvbnRTaXplID0gdGhpcy50YWdMYWJlbEZvbnRTaXplIHx8IFwiMTBweFwiO1xuICAgIHRoaXMuY29tbWl0TGFiZWxDb2xvciA9IHRoaXMuY29tbWl0TGFiZWxDb2xvciB8fCB0aGlzLnNlY29uZGFyeVRleHRDb2xvcjtcbiAgICB0aGlzLmNvbW1pdExhYmVsQmFja2dyb3VuZCA9IHRoaXMuY29tbWl0TGFiZWxCYWNrZ3JvdW5kIHx8IHRoaXMuc2Vjb25kYXJ5Q29sb3I7XG4gICAgdGhpcy5jb21taXRMYWJlbEZvbnRTaXplID0gdGhpcy5jb21taXRMYWJlbEZvbnRTaXplIHx8IFwiMTBweFwiO1xuICAgIHRoaXMuYXR0cmlidXRlQmFja2dyb3VuZENvbG9yT2RkID0gdGhpcy5hdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JPZGQgfHwgb2xkQXR0cmlidXRlQmFja2dyb3VuZENvbG9yT2RkO1xuICAgIHRoaXMuYXR0cmlidXRlQmFja2dyb3VuZENvbG9yRXZlbiA9IHRoaXMuYXR0cmlidXRlQmFja2dyb3VuZENvbG9yRXZlbiB8fCBvbGRBdHRyaWJ1dGVCYWNrZ3JvdW5kQ29sb3JFdmVuO1xuICB9XG4gIGNhbGN1bGF0ZShvdmVycmlkZXMpIHtcbiAgICBpZiAodHlwZW9mIG92ZXJyaWRlcyAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhpcy51cGRhdGVDb2xvcnMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG92ZXJyaWRlcyk7XG4gICAga2V5cy5mb3JFYWNoKChrKSA9PiB7XG4gICAgICB0aGlzW2tdID0gb3ZlcnJpZGVzW2tdO1xuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlQ29sb3JzKCk7XG4gICAga2V5cy5mb3JFYWNoKChrKSA9PiB7XG4gICAgICB0aGlzW2tdID0gb3ZlcnJpZGVzW2tdO1xuICAgIH0pO1xuICB9XG59XG5jb25zdCBnZXRUaGVtZVZhcmlhYmxlcyA9ICh1c2VyT3ZlcnJpZGVzKSA9PiB7XG4gIGNvbnN0IHRoZW1lMiA9IG5ldyBUaGVtZTUoKTtcbiAgdGhlbWUyLmNhbGN1bGF0ZSh1c2VyT3ZlcnJpZGVzKTtcbiAgcmV0dXJuIHRoZW1lMjtcbn07XG5jb25zdCB0aGVtZSA9IHtcbiAgYmFzZToge1xuICAgIGdldFRoZW1lVmFyaWFibGVzOiBnZXRUaGVtZVZhcmlhYmxlcyQ0XG4gIH0sXG4gIGRhcms6IHtcbiAgICBnZXRUaGVtZVZhcmlhYmxlczogZ2V0VGhlbWVWYXJpYWJsZXMkM1xuICB9LFxuICBkZWZhdWx0OiB7XG4gICAgZ2V0VGhlbWVWYXJpYWJsZXM6IGdldFRoZW1lVmFyaWFibGVzJDJcbiAgfSxcbiAgZm9yZXN0OiB7XG4gICAgZ2V0VGhlbWVWYXJpYWJsZXM6IGdldFRoZW1lVmFyaWFibGVzJDFcbiAgfSxcbiAgbmV1dHJhbDoge1xuICAgIGdldFRoZW1lVmFyaWFibGVzXG4gIH1cbn07XG5jb25zdCBkZWZhdWx0Q29uZmlnSnNvbiA9IHtcbiAgXCJmbG93Y2hhcnRcIjoge1xuICAgIFwidXNlTWF4V2lkdGhcIjogdHJ1ZSxcbiAgICBcInRpdGxlVG9wTWFyZ2luXCI6IDI1LFxuICAgIFwic3ViR3JhcGhUaXRsZU1hcmdpblwiOiB7XG4gICAgICBcInRvcFwiOiAwLFxuICAgICAgXCJib3R0b21cIjogMFxuICAgIH0sXG4gICAgXCJkaWFncmFtUGFkZGluZ1wiOiA4LFxuICAgIFwiaHRtbExhYmVsc1wiOiB0cnVlLFxuICAgIFwibm9kZVNwYWNpbmdcIjogNTAsXG4gICAgXCJyYW5rU3BhY2luZ1wiOiA1MCxcbiAgICBcImN1cnZlXCI6IFwiYmFzaXNcIixcbiAgICBcInBhZGRpbmdcIjogMTUsXG4gICAgXCJkZWZhdWx0UmVuZGVyZXJcIjogXCJkYWdyZS13cmFwcGVyXCIsXG4gICAgXCJ3cmFwcGluZ1dpZHRoXCI6IDIwMFxuICB9LFxuICBcInNlcXVlbmNlXCI6IHtcbiAgICBcInVzZU1heFdpZHRoXCI6IHRydWUsXG4gICAgXCJoaWRlVW51c2VkUGFydGljaXBhbnRzXCI6IGZhbHNlLFxuICAgIFwiYWN0aXZhdGlvbldpZHRoXCI6IDEwLFxuICAgIFwiZGlhZ3JhbU1hcmdpblhcIjogNTAsXG4gICAgXCJkaWFncmFtTWFyZ2luWVwiOiAxMCxcbiAgICBcImFjdG9yTWFyZ2luXCI6IDUwLFxuICAgIFwid2lkdGhcIjogMTUwLFxuICAgIFwiaGVpZ2h0XCI6IDY1LFxuICAgIFwiYm94TWFyZ2luXCI6IDEwLFxuICAgIFwiYm94VGV4dE1hcmdpblwiOiA1LFxuICAgIFwibm90ZU1hcmdpblwiOiAxMCxcbiAgICBcIm1lc3NhZ2VNYXJnaW5cIjogMzUsXG4gICAgXCJtZXNzYWdlQWxpZ25cIjogXCJjZW50ZXJcIixcbiAgICBcIm1pcnJvckFjdG9yc1wiOiB0cnVlLFxuICAgIFwiZm9yY2VNZW51c1wiOiBmYWxzZSxcbiAgICBcImJvdHRvbU1hcmdpbkFkalwiOiAxLFxuICAgIFwicmlnaHRBbmdsZXNcIjogZmFsc2UsXG4gICAgXCJzaG93U2VxdWVuY2VOdW1iZXJzXCI6IGZhbHNlLFxuICAgIFwiYWN0b3JGb250U2l6ZVwiOiAxNCxcbiAgICBcImFjdG9yRm9udEZhbWlseVwiOiAnXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZicsXG4gICAgXCJhY3RvckZvbnRXZWlnaHRcIjogNDAwLFxuICAgIFwibm90ZUZvbnRTaXplXCI6IDE0LFxuICAgIFwibm90ZUZvbnRGYW1pbHlcIjogJ1widHJlYnVjaGV0IG1zXCIsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmJyxcbiAgICBcIm5vdGVGb250V2VpZ2h0XCI6IDQwMCxcbiAgICBcIm5vdGVBbGlnblwiOiBcImNlbnRlclwiLFxuICAgIFwibWVzc2FnZUZvbnRTaXplXCI6IDE2LFxuICAgIFwibWVzc2FnZUZvbnRGYW1pbHlcIjogJ1widHJlYnVjaGV0IG1zXCIsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmJyxcbiAgICBcIm1lc3NhZ2VGb250V2VpZ2h0XCI6IDQwMCxcbiAgICBcIndyYXBcIjogZmFsc2UsXG4gICAgXCJ3cmFwUGFkZGluZ1wiOiAxMCxcbiAgICBcImxhYmVsQm94V2lkdGhcIjogNTAsXG4gICAgXCJsYWJlbEJveEhlaWdodFwiOiAyMFxuICB9LFxuICBcImdhbnR0XCI6IHtcbiAgICBcInVzZU1heFdpZHRoXCI6IHRydWUsXG4gICAgXCJ0aXRsZVRvcE1hcmdpblwiOiAyNSxcbiAgICBcImJhckhlaWdodFwiOiAyMCxcbiAgICBcImJhckdhcFwiOiA0LFxuICAgIFwidG9wUGFkZGluZ1wiOiA1MCxcbiAgICBcInJpZ2h0UGFkZGluZ1wiOiA3NSxcbiAgICBcImxlZnRQYWRkaW5nXCI6IDc1LFxuICAgIFwiZ3JpZExpbmVTdGFydFBhZGRpbmdcIjogMzUsXG4gICAgXCJmb250U2l6ZVwiOiAxMSxcbiAgICBcInNlY3Rpb25Gb250U2l6ZVwiOiAxMSxcbiAgICBcIm51bWJlclNlY3Rpb25TdHlsZXNcIjogNCxcbiAgICBcImF4aXNGb3JtYXRcIjogXCIlWS0lbS0lZFwiLFxuICAgIFwidG9wQXhpc1wiOiBmYWxzZSxcbiAgICBcImRpc3BsYXlNb2RlXCI6IFwiXCIsXG4gICAgXCJ3ZWVrZGF5XCI6IFwic3VuZGF5XCJcbiAgfSxcbiAgXCJqb3VybmV5XCI6IHtcbiAgICBcInVzZU1heFdpZHRoXCI6IHRydWUsXG4gICAgXCJkaWFncmFtTWFyZ2luWFwiOiA1MCxcbiAgICBcImRpYWdyYW1NYXJnaW5ZXCI6IDEwLFxuICAgIFwibGVmdE1hcmdpblwiOiAxNTAsXG4gICAgXCJ3aWR0aFwiOiAxNTAsXG4gICAgXCJoZWlnaHRcIjogNTAsXG4gICAgXCJib3hNYXJnaW5cIjogMTAsXG4gICAgXCJib3hUZXh0TWFyZ2luXCI6IDUsXG4gICAgXCJub3RlTWFyZ2luXCI6IDEwLFxuICAgIFwibWVzc2FnZU1hcmdpblwiOiAzNSxcbiAgICBcIm1lc3NhZ2VBbGlnblwiOiBcImNlbnRlclwiLFxuICAgIFwiYm90dG9tTWFyZ2luQWRqXCI6IDEsXG4gICAgXCJyaWdodEFuZ2xlc1wiOiBmYWxzZSxcbiAgICBcInRhc2tGb250U2l6ZVwiOiAxNCxcbiAgICBcInRhc2tGb250RmFtaWx5XCI6ICdcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmJyxcbiAgICBcInRhc2tNYXJnaW5cIjogNTAsXG4gICAgXCJhY3RpdmF0aW9uV2lkdGhcIjogMTAsXG4gICAgXCJ0ZXh0UGxhY2VtZW50XCI6IFwiZm9cIixcbiAgICBcImFjdG9yQ29sb3Vyc1wiOiBbXG4gICAgICBcIiM4RkJDOEZcIixcbiAgICAgIFwiIzdDRkMwMFwiLFxuICAgICAgXCIjMDBGRkZGXCIsXG4gICAgICBcIiMyMEIyQUFcIixcbiAgICAgIFwiI0IwRTBFNlwiLFxuICAgICAgXCIjRkZGRkUwXCJcbiAgICBdLFxuICAgIFwic2VjdGlvbkZpbGxzXCI6IFtcbiAgICAgIFwiIzE5MTk3MFwiLFxuICAgICAgXCIjOEIwMDhCXCIsXG4gICAgICBcIiM0QjAwODJcIixcbiAgICAgIFwiIzJGNEY0RlwiLFxuICAgICAgXCIjODAwMDAwXCIsXG4gICAgICBcIiM4QjQ1MTNcIixcbiAgICAgIFwiIzAwMDA4QlwiXG4gICAgXSxcbiAgICBcInNlY3Rpb25Db2xvdXJzXCI6IFtcbiAgICAgIFwiI2ZmZlwiXG4gICAgXVxuICB9LFxuICBcImNsYXNzXCI6IHtcbiAgICBcInVzZU1heFdpZHRoXCI6IHRydWUsXG4gICAgXCJ0aXRsZVRvcE1hcmdpblwiOiAyNSxcbiAgICBcImFycm93TWFya2VyQWJzb2x1dGVcIjogZmFsc2UsXG4gICAgXCJkaXZpZGVyTWFyZ2luXCI6IDEwLFxuICAgIFwicGFkZGluZ1wiOiA1LFxuICAgIFwidGV4dEhlaWdodFwiOiAxMCxcbiAgICBcImRlZmF1bHRSZW5kZXJlclwiOiBcImRhZ3JlLXdyYXBwZXJcIixcbiAgICBcImh0bWxMYWJlbHNcIjogZmFsc2VcbiAgfSxcbiAgXCJzdGF0ZVwiOiB7XG4gICAgXCJ1c2VNYXhXaWR0aFwiOiB0cnVlLFxuICAgIFwidGl0bGVUb3BNYXJnaW5cIjogMjUsXG4gICAgXCJkaXZpZGVyTWFyZ2luXCI6IDEwLFxuICAgIFwic2l6ZVVuaXRcIjogNSxcbiAgICBcInBhZGRpbmdcIjogOCxcbiAgICBcInRleHRIZWlnaHRcIjogMTAsXG4gICAgXCJ0aXRsZVNoaWZ0XCI6IC0xNSxcbiAgICBcIm5vdGVNYXJnaW5cIjogMTAsXG4gICAgXCJmb3JrV2lkdGhcIjogNzAsXG4gICAgXCJmb3JrSGVpZ2h0XCI6IDcsXG4gICAgXCJtaW5pUGFkZGluZ1wiOiAyLFxuICAgIFwiZm9udFNpemVGYWN0b3JcIjogNS4wMixcbiAgICBcImZvbnRTaXplXCI6IDI0LFxuICAgIFwibGFiZWxIZWlnaHRcIjogMTYsXG4gICAgXCJlZGdlTGVuZ3RoRmFjdG9yXCI6IFwiMjBcIixcbiAgICBcImNvbXBvc2l0VGl0bGVTaXplXCI6IDM1LFxuICAgIFwicmFkaXVzXCI6IDUsXG4gICAgXCJkZWZhdWx0UmVuZGVyZXJcIjogXCJkYWdyZS13cmFwcGVyXCJcbiAgfSxcbiAgXCJlclwiOiB7XG4gICAgXCJ1c2VNYXhXaWR0aFwiOiB0cnVlLFxuICAgIFwidGl0bGVUb3BNYXJnaW5cIjogMjUsXG4gICAgXCJkaWFncmFtUGFkZGluZ1wiOiAyMCxcbiAgICBcImxheW91dERpcmVjdGlvblwiOiBcIlRCXCIsXG4gICAgXCJtaW5FbnRpdHlXaWR0aFwiOiAxMDAsXG4gICAgXCJtaW5FbnRpdHlIZWlnaHRcIjogNzUsXG4gICAgXCJlbnRpdHlQYWRkaW5nXCI6IDE1LFxuICAgIFwic3Ryb2tlXCI6IFwiZ3JheVwiLFxuICAgIFwiZmlsbFwiOiBcImhvbmV5ZGV3XCIsXG4gICAgXCJmb250U2l6ZVwiOiAxMlxuICB9LFxuICBcInBpZVwiOiB7XG4gICAgXCJ1c2VNYXhXaWR0aFwiOiB0cnVlLFxuICAgIFwidGV4dFBvc2l0aW9uXCI6IDAuNzVcbiAgfSxcbiAgXCJxdWFkcmFudENoYXJ0XCI6IHtcbiAgICBcInVzZU1heFdpZHRoXCI6IHRydWUsXG4gICAgXCJjaGFydFdpZHRoXCI6IDUwMCxcbiAgICBcImNoYXJ0SGVpZ2h0XCI6IDUwMCxcbiAgICBcInRpdGxlRm9udFNpemVcIjogMjAsXG4gICAgXCJ0aXRsZVBhZGRpbmdcIjogMTAsXG4gICAgXCJxdWFkcmFudFBhZGRpbmdcIjogNSxcbiAgICBcInhBeGlzTGFiZWxQYWRkaW5nXCI6IDUsXG4gICAgXCJ5QXhpc0xhYmVsUGFkZGluZ1wiOiA1LFxuICAgIFwieEF4aXNMYWJlbEZvbnRTaXplXCI6IDE2LFxuICAgIFwieUF4aXNMYWJlbEZvbnRTaXplXCI6IDE2LFxuICAgIFwicXVhZHJhbnRMYWJlbEZvbnRTaXplXCI6IDE2LFxuICAgIFwicXVhZHJhbnRUZXh0VG9wUGFkZGluZ1wiOiA1LFxuICAgIFwicG9pbnRUZXh0UGFkZGluZ1wiOiA1LFxuICAgIFwicG9pbnRMYWJlbEZvbnRTaXplXCI6IDEyLFxuICAgIFwicG9pbnRSYWRpdXNcIjogNSxcbiAgICBcInhBeGlzUG9zaXRpb25cIjogXCJ0b3BcIixcbiAgICBcInlBeGlzUG9zaXRpb25cIjogXCJsZWZ0XCIsXG4gICAgXCJxdWFkcmFudEludGVybmFsQm9yZGVyU3Ryb2tlV2lkdGhcIjogMSxcbiAgICBcInF1YWRyYW50RXh0ZXJuYWxCb3JkZXJTdHJva2VXaWR0aFwiOiAyXG4gIH0sXG4gIFwieHlDaGFydFwiOiB7XG4gICAgXCJ1c2VNYXhXaWR0aFwiOiB0cnVlLFxuICAgIFwid2lkdGhcIjogNzAwLFxuICAgIFwiaGVpZ2h0XCI6IDUwMCxcbiAgICBcInRpdGxlRm9udFNpemVcIjogMjAsXG4gICAgXCJ0aXRsZVBhZGRpbmdcIjogMTAsXG4gICAgXCJzaG93VGl0bGVcIjogdHJ1ZSxcbiAgICBcInhBeGlzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvJGRlZnMvWFlDaGFydEF4aXNDb25maWdcIixcbiAgICAgIFwic2hvd0xhYmVsXCI6IHRydWUsXG4gICAgICBcImxhYmVsRm9udFNpemVcIjogMTQsXG4gICAgICBcImxhYmVsUGFkZGluZ1wiOiA1LFxuICAgICAgXCJzaG93VGl0bGVcIjogdHJ1ZSxcbiAgICAgIFwidGl0bGVGb250U2l6ZVwiOiAxNixcbiAgICAgIFwidGl0bGVQYWRkaW5nXCI6IDUsXG4gICAgICBcInNob3dUaWNrXCI6IHRydWUsXG4gICAgICBcInRpY2tMZW5ndGhcIjogNSxcbiAgICAgIFwidGlja1dpZHRoXCI6IDIsXG4gICAgICBcInNob3dBeGlzTGluZVwiOiB0cnVlLFxuICAgICAgXCJheGlzTGluZVdpZHRoXCI6IDJcbiAgICB9LFxuICAgIFwieUF4aXNcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy8kZGVmcy9YWUNoYXJ0QXhpc0NvbmZpZ1wiLFxuICAgICAgXCJzaG93TGFiZWxcIjogdHJ1ZSxcbiAgICAgIFwibGFiZWxGb250U2l6ZVwiOiAxNCxcbiAgICAgIFwibGFiZWxQYWRkaW5nXCI6IDUsXG4gICAgICBcInNob3dUaXRsZVwiOiB0cnVlLFxuICAgICAgXCJ0aXRsZUZvbnRTaXplXCI6IDE2LFxuICAgICAgXCJ0aXRsZVBhZGRpbmdcIjogNSxcbiAgICAgIFwic2hvd1RpY2tcIjogdHJ1ZSxcbiAgICAgIFwidGlja0xlbmd0aFwiOiA1LFxuICAgICAgXCJ0aWNrV2lkdGhcIjogMixcbiAgICAgIFwic2hvd0F4aXNMaW5lXCI6IHRydWUsXG4gICAgICBcImF4aXNMaW5lV2lkdGhcIjogMlxuICAgIH0sXG4gICAgXCJjaGFydE9yaWVudGF0aW9uXCI6IFwidmVydGljYWxcIixcbiAgICBcInBsb3RSZXNlcnZlZFNwYWNlUGVyY2VudFwiOiA1MFxuICB9LFxuICBcInJlcXVpcmVtZW50XCI6IHtcbiAgICBcInVzZU1heFdpZHRoXCI6IHRydWUsXG4gICAgXCJyZWN0X2ZpbGxcIjogXCIjZjlmOWY5XCIsXG4gICAgXCJ0ZXh0X2NvbG9yXCI6IFwiIzMzM1wiLFxuICAgIFwicmVjdF9ib3JkZXJfc2l6ZVwiOiBcIjAuNXB4XCIsXG4gICAgXCJyZWN0X2JvcmRlcl9jb2xvclwiOiBcIiNiYmJcIixcbiAgICBcInJlY3RfbWluX3dpZHRoXCI6IDIwMCxcbiAgICBcInJlY3RfbWluX2hlaWdodFwiOiAyMDAsXG4gICAgXCJmb250U2l6ZVwiOiAxNCxcbiAgICBcInJlY3RfcGFkZGluZ1wiOiAxMCxcbiAgICBcImxpbmVfaGVpZ2h0XCI6IDIwXG4gIH0sXG4gIFwibWluZG1hcFwiOiB7XG4gICAgXCJ1c2VNYXhXaWR0aFwiOiB0cnVlLFxuICAgIFwicGFkZGluZ1wiOiAxMCxcbiAgICBcIm1heE5vZGVXaWR0aFwiOiAyMDBcbiAgfSxcbiAgXCJ0aW1lbGluZVwiOiB7XG4gICAgXCJ1c2VNYXhXaWR0aFwiOiB0cnVlLFxuICAgIFwiZGlhZ3JhbU1hcmdpblhcIjogNTAsXG4gICAgXCJkaWFncmFtTWFyZ2luWVwiOiAxMCxcbiAgICBcImxlZnRNYXJnaW5cIjogMTUwLFxuICAgIFwid2lkdGhcIjogMTUwLFxuICAgIFwiaGVpZ2h0XCI6IDUwLFxuICAgIFwiYm94TWFyZ2luXCI6IDEwLFxuICAgIFwiYm94VGV4dE1hcmdpblwiOiA1LFxuICAgIFwibm90ZU1hcmdpblwiOiAxMCxcbiAgICBcIm1lc3NhZ2VNYXJnaW5cIjogMzUsXG4gICAgXCJtZXNzYWdlQWxpZ25cIjogXCJjZW50ZXJcIixcbiAgICBcImJvdHRvbU1hcmdpbkFkalwiOiAxLFxuICAgIFwicmlnaHRBbmdsZXNcIjogZmFsc2UsXG4gICAgXCJ0YXNrRm9udFNpemVcIjogMTQsXG4gICAgXCJ0YXNrRm9udEZhbWlseVwiOiAnXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZicsXG4gICAgXCJ0YXNrTWFyZ2luXCI6IDUwLFxuICAgIFwiYWN0aXZhdGlvbldpZHRoXCI6IDEwLFxuICAgIFwidGV4dFBsYWNlbWVudFwiOiBcImZvXCIsXG4gICAgXCJhY3RvckNvbG91cnNcIjogW1xuICAgICAgXCIjOEZCQzhGXCIsXG4gICAgICBcIiM3Q0ZDMDBcIixcbiAgICAgIFwiIzAwRkZGRlwiLFxuICAgICAgXCIjMjBCMkFBXCIsXG4gICAgICBcIiNCMEUwRTZcIixcbiAgICAgIFwiI0ZGRkZFMFwiXG4gICAgXSxcbiAgICBcInNlY3Rpb25GaWxsc1wiOiBbXG4gICAgICBcIiMxOTE5NzBcIixcbiAgICAgIFwiIzhCMDA4QlwiLFxuICAgICAgXCIjNEIwMDgyXCIsXG4gICAgICBcIiMyRjRGNEZcIixcbiAgICAgIFwiIzgwMDAwMFwiLFxuICAgICAgXCIjOEI0NTEzXCIsXG4gICAgICBcIiMwMDAwOEJcIlxuICAgIF0sXG4gICAgXCJzZWN0aW9uQ29sb3Vyc1wiOiBbXG4gICAgICBcIiNmZmZcIlxuICAgIF0sXG4gICAgXCJkaXNhYmxlTXVsdGljb2xvclwiOiBmYWxzZVxuICB9LFxuICBcImdpdEdyYXBoXCI6IHtcbiAgICBcInVzZU1heFdpZHRoXCI6IHRydWUsXG4gICAgXCJ0aXRsZVRvcE1hcmdpblwiOiAyNSxcbiAgICBcImRpYWdyYW1QYWRkaW5nXCI6IDgsXG4gICAgXCJub2RlTGFiZWxcIjoge1xuICAgICAgXCJ3aWR0aFwiOiA3NSxcbiAgICAgIFwiaGVpZ2h0XCI6IDEwMCxcbiAgICAgIFwieFwiOiAtMjUsXG4gICAgICBcInlcIjogMFxuICAgIH0sXG4gICAgXCJtYWluQnJhbmNoTmFtZVwiOiBcIm1haW5cIixcbiAgICBcIm1haW5CcmFuY2hPcmRlclwiOiAwLFxuICAgIFwic2hvd0NvbW1pdExhYmVsXCI6IHRydWUsXG4gICAgXCJzaG93QnJhbmNoZXNcIjogdHJ1ZSxcbiAgICBcInJvdGF0ZUNvbW1pdExhYmVsXCI6IHRydWUsXG4gICAgXCJwYXJhbGxlbENvbW1pdHNcIjogZmFsc2UsXG4gICAgXCJhcnJvd01hcmtlckFic29sdXRlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYzRcIjoge1xuICAgIFwidXNlTWF4V2lkdGhcIjogdHJ1ZSxcbiAgICBcImRpYWdyYW1NYXJnaW5YXCI6IDUwLFxuICAgIFwiZGlhZ3JhbU1hcmdpbllcIjogMTAsXG4gICAgXCJjNFNoYXBlTWFyZ2luXCI6IDUwLFxuICAgIFwiYzRTaGFwZVBhZGRpbmdcIjogMjAsXG4gICAgXCJ3aWR0aFwiOiAyMTYsXG4gICAgXCJoZWlnaHRcIjogNjAsXG4gICAgXCJib3hNYXJnaW5cIjogMTAsXG4gICAgXCJjNFNoYXBlSW5Sb3dcIjogNCxcbiAgICBcIm5leHRMaW5lUGFkZGluZ1hcIjogMCxcbiAgICBcImM0Qm91bmRhcnlJblJvd1wiOiAyLFxuICAgIFwicGVyc29uRm9udFNpemVcIjogMTQsXG4gICAgXCJwZXJzb25Gb250RmFtaWx5XCI6ICdcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmJyxcbiAgICBcInBlcnNvbkZvbnRXZWlnaHRcIjogXCJub3JtYWxcIixcbiAgICBcImV4dGVybmFsX3BlcnNvbkZvbnRTaXplXCI6IDE0LFxuICAgIFwiZXh0ZXJuYWxfcGVyc29uRm9udEZhbWlseVwiOiAnXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZicsXG4gICAgXCJleHRlcm5hbF9wZXJzb25Gb250V2VpZ2h0XCI6IFwibm9ybWFsXCIsXG4gICAgXCJzeXN0ZW1Gb250U2l6ZVwiOiAxNCxcbiAgICBcInN5c3RlbUZvbnRGYW1pbHlcIjogJ1wiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWYnLFxuICAgIFwic3lzdGVtRm9udFdlaWdodFwiOiBcIm5vcm1hbFwiLFxuICAgIFwiZXh0ZXJuYWxfc3lzdGVtRm9udFNpemVcIjogMTQsXG4gICAgXCJleHRlcm5hbF9zeXN0ZW1Gb250RmFtaWx5XCI6ICdcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmJyxcbiAgICBcImV4dGVybmFsX3N5c3RlbUZvbnRXZWlnaHRcIjogXCJub3JtYWxcIixcbiAgICBcInN5c3RlbV9kYkZvbnRTaXplXCI6IDE0LFxuICAgIFwic3lzdGVtX2RiRm9udEZhbWlseVwiOiAnXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZicsXG4gICAgXCJzeXN0ZW1fZGJGb250V2VpZ2h0XCI6IFwibm9ybWFsXCIsXG4gICAgXCJleHRlcm5hbF9zeXN0ZW1fZGJGb250U2l6ZVwiOiAxNCxcbiAgICBcImV4dGVybmFsX3N5c3RlbV9kYkZvbnRGYW1pbHlcIjogJ1wiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWYnLFxuICAgIFwiZXh0ZXJuYWxfc3lzdGVtX2RiRm9udFdlaWdodFwiOiBcIm5vcm1hbFwiLFxuICAgIFwic3lzdGVtX3F1ZXVlRm9udFNpemVcIjogMTQsXG4gICAgXCJzeXN0ZW1fcXVldWVGb250RmFtaWx5XCI6ICdcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmJyxcbiAgICBcInN5c3RlbV9xdWV1ZUZvbnRXZWlnaHRcIjogXCJub3JtYWxcIixcbiAgICBcImV4dGVybmFsX3N5c3RlbV9xdWV1ZUZvbnRTaXplXCI6IDE0LFxuICAgIFwiZXh0ZXJuYWxfc3lzdGVtX3F1ZXVlRm9udEZhbWlseVwiOiAnXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZicsXG4gICAgXCJleHRlcm5hbF9zeXN0ZW1fcXVldWVGb250V2VpZ2h0XCI6IFwibm9ybWFsXCIsXG4gICAgXCJib3VuZGFyeUZvbnRTaXplXCI6IDE0LFxuICAgIFwiYm91bmRhcnlGb250RmFtaWx5XCI6ICdcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmJyxcbiAgICBcImJvdW5kYXJ5Rm9udFdlaWdodFwiOiBcIm5vcm1hbFwiLFxuICAgIFwibWVzc2FnZUZvbnRTaXplXCI6IDEyLFxuICAgIFwibWVzc2FnZUZvbnRGYW1pbHlcIjogJ1wiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWYnLFxuICAgIFwibWVzc2FnZUZvbnRXZWlnaHRcIjogXCJub3JtYWxcIixcbiAgICBcImNvbnRhaW5lckZvbnRTaXplXCI6IDE0LFxuICAgIFwiY29udGFpbmVyRm9udEZhbWlseVwiOiAnXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZicsXG4gICAgXCJjb250YWluZXJGb250V2VpZ2h0XCI6IFwibm9ybWFsXCIsXG4gICAgXCJleHRlcm5hbF9jb250YWluZXJGb250U2l6ZVwiOiAxNCxcbiAgICBcImV4dGVybmFsX2NvbnRhaW5lckZvbnRGYW1pbHlcIjogJ1wiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWYnLFxuICAgIFwiZXh0ZXJuYWxfY29udGFpbmVyRm9udFdlaWdodFwiOiBcIm5vcm1hbFwiLFxuICAgIFwiY29udGFpbmVyX2RiRm9udFNpemVcIjogMTQsXG4gICAgXCJjb250YWluZXJfZGJGb250RmFtaWx5XCI6ICdcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmJyxcbiAgICBcImNvbnRhaW5lcl9kYkZvbnRXZWlnaHRcIjogXCJub3JtYWxcIixcbiAgICBcImV4dGVybmFsX2NvbnRhaW5lcl9kYkZvbnRTaXplXCI6IDE0LFxuICAgIFwiZXh0ZXJuYWxfY29udGFpbmVyX2RiRm9udEZhbWlseVwiOiAnXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZicsXG4gICAgXCJleHRlcm5hbF9jb250YWluZXJfZGJGb250V2VpZ2h0XCI6IFwibm9ybWFsXCIsXG4gICAgXCJjb250YWluZXJfcXVldWVGb250U2l6ZVwiOiAxNCxcbiAgICBcImNvbnRhaW5lcl9xdWV1ZUZvbnRGYW1pbHlcIjogJ1wiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWYnLFxuICAgIFwiY29udGFpbmVyX3F1ZXVlRm9udFdlaWdodFwiOiBcIm5vcm1hbFwiLFxuICAgIFwiZXh0ZXJuYWxfY29udGFpbmVyX3F1ZXVlRm9udFNpemVcIjogMTQsXG4gICAgXCJleHRlcm5hbF9jb250YWluZXJfcXVldWVGb250RmFtaWx5XCI6ICdcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmJyxcbiAgICBcImV4dGVybmFsX2NvbnRhaW5lcl9xdWV1ZUZvbnRXZWlnaHRcIjogXCJub3JtYWxcIixcbiAgICBcImNvbXBvbmVudEZvbnRTaXplXCI6IDE0LFxuICAgIFwiY29tcG9uZW50Rm9udEZhbWlseVwiOiAnXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZicsXG4gICAgXCJjb21wb25lbnRGb250V2VpZ2h0XCI6IFwibm9ybWFsXCIsXG4gICAgXCJleHRlcm5hbF9jb21wb25lbnRGb250U2l6ZVwiOiAxNCxcbiAgICBcImV4dGVybmFsX2NvbXBvbmVudEZvbnRGYW1pbHlcIjogJ1wiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWYnLFxuICAgIFwiZXh0ZXJuYWxfY29tcG9uZW50Rm9udFdlaWdodFwiOiBcIm5vcm1hbFwiLFxuICAgIFwiY29tcG9uZW50X2RiRm9udFNpemVcIjogMTQsXG4gICAgXCJjb21wb25lbnRfZGJGb250RmFtaWx5XCI6ICdcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmJyxcbiAgICBcImNvbXBvbmVudF9kYkZvbnRXZWlnaHRcIjogXCJub3JtYWxcIixcbiAgICBcImV4dGVybmFsX2NvbXBvbmVudF9kYkZvbnRTaXplXCI6IDE0LFxuICAgIFwiZXh0ZXJuYWxfY29tcG9uZW50X2RiRm9udEZhbWlseVwiOiAnXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZicsXG4gICAgXCJleHRlcm5hbF9jb21wb25lbnRfZGJGb250V2VpZ2h0XCI6IFwibm9ybWFsXCIsXG4gICAgXCJjb21wb25lbnRfcXVldWVGb250U2l6ZVwiOiAxNCxcbiAgICBcImNvbXBvbmVudF9xdWV1ZUZvbnRGYW1pbHlcIjogJ1wiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWYnLFxuICAgIFwiY29tcG9uZW50X3F1ZXVlRm9udFdlaWdodFwiOiBcIm5vcm1hbFwiLFxuICAgIFwiZXh0ZXJuYWxfY29tcG9uZW50X3F1ZXVlRm9udFNpemVcIjogMTQsXG4gICAgXCJleHRlcm5hbF9jb21wb25lbnRfcXVldWVGb250RmFtaWx5XCI6ICdcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmJyxcbiAgICBcImV4dGVybmFsX2NvbXBvbmVudF9xdWV1ZUZvbnRXZWlnaHRcIjogXCJub3JtYWxcIixcbiAgICBcIndyYXBcIjogdHJ1ZSxcbiAgICBcIndyYXBQYWRkaW5nXCI6IDEwLFxuICAgIFwicGVyc29uX2JnX2NvbG9yXCI6IFwiIzA4NDI3QlwiLFxuICAgIFwicGVyc29uX2JvcmRlcl9jb2xvclwiOiBcIiMwNzNCNkZcIixcbiAgICBcImV4dGVybmFsX3BlcnNvbl9iZ19jb2xvclwiOiBcIiM2ODY4NjhcIixcbiAgICBcImV4dGVybmFsX3BlcnNvbl9ib3JkZXJfY29sb3JcIjogXCIjOEE4QThBXCIsXG4gICAgXCJzeXN0ZW1fYmdfY29sb3JcIjogXCIjMTE2OEJEXCIsXG4gICAgXCJzeXN0ZW1fYm9yZGVyX2NvbG9yXCI6IFwiIzNDN0ZDMFwiLFxuICAgIFwic3lzdGVtX2RiX2JnX2NvbG9yXCI6IFwiIzExNjhCRFwiLFxuICAgIFwic3lzdGVtX2RiX2JvcmRlcl9jb2xvclwiOiBcIiMzQzdGQzBcIixcbiAgICBcInN5c3RlbV9xdWV1ZV9iZ19jb2xvclwiOiBcIiMxMTY4QkRcIixcbiAgICBcInN5c3RlbV9xdWV1ZV9ib3JkZXJfY29sb3JcIjogXCIjM0M3RkMwXCIsXG4gICAgXCJleHRlcm5hbF9zeXN0ZW1fYmdfY29sb3JcIjogXCIjOTk5OTk5XCIsXG4gICAgXCJleHRlcm5hbF9zeXN0ZW1fYm9yZGVyX2NvbG9yXCI6IFwiIzhBOEE4QVwiLFxuICAgIFwiZXh0ZXJuYWxfc3lzdGVtX2RiX2JnX2NvbG9yXCI6IFwiIzk5OTk5OVwiLFxuICAgIFwiZXh0ZXJuYWxfc3lzdGVtX2RiX2JvcmRlcl9jb2xvclwiOiBcIiM4QThBOEFcIixcbiAgICBcImV4dGVybmFsX3N5c3RlbV9xdWV1ZV9iZ19jb2xvclwiOiBcIiM5OTk5OTlcIixcbiAgICBcImV4dGVybmFsX3N5c3RlbV9xdWV1ZV9ib3JkZXJfY29sb3JcIjogXCIjOEE4QThBXCIsXG4gICAgXCJjb250YWluZXJfYmdfY29sb3JcIjogXCIjNDM4REQ1XCIsXG4gICAgXCJjb250YWluZXJfYm9yZGVyX2NvbG9yXCI6IFwiIzNDN0ZDMFwiLFxuICAgIFwiY29udGFpbmVyX2RiX2JnX2NvbG9yXCI6IFwiIzQzOERENVwiLFxuICAgIFwiY29udGFpbmVyX2RiX2JvcmRlcl9jb2xvclwiOiBcIiMzQzdGQzBcIixcbiAgICBcImNvbnRhaW5lcl9xdWV1ZV9iZ19jb2xvclwiOiBcIiM0MzhERDVcIixcbiAgICBcImNvbnRhaW5lcl9xdWV1ZV9ib3JkZXJfY29sb3JcIjogXCIjM0M3RkMwXCIsXG4gICAgXCJleHRlcm5hbF9jb250YWluZXJfYmdfY29sb3JcIjogXCIjQjNCM0IzXCIsXG4gICAgXCJleHRlcm5hbF9jb250YWluZXJfYm9yZGVyX2NvbG9yXCI6IFwiI0E2QTZBNlwiLFxuICAgIFwiZXh0ZXJuYWxfY29udGFpbmVyX2RiX2JnX2NvbG9yXCI6IFwiI0IzQjNCM1wiLFxuICAgIFwiZXh0ZXJuYWxfY29udGFpbmVyX2RiX2JvcmRlcl9jb2xvclwiOiBcIiNBNkE2QTZcIixcbiAgICBcImV4dGVybmFsX2NvbnRhaW5lcl9xdWV1ZV9iZ19jb2xvclwiOiBcIiNCM0IzQjNcIixcbiAgICBcImV4dGVybmFsX2NvbnRhaW5lcl9xdWV1ZV9ib3JkZXJfY29sb3JcIjogXCIjQTZBNkE2XCIsXG4gICAgXCJjb21wb25lbnRfYmdfY29sb3JcIjogXCIjODVCQkYwXCIsXG4gICAgXCJjb21wb25lbnRfYm9yZGVyX2NvbG9yXCI6IFwiIzc4QThEOFwiLFxuICAgIFwiY29tcG9uZW50X2RiX2JnX2NvbG9yXCI6IFwiIzg1QkJGMFwiLFxuICAgIFwiY29tcG9uZW50X2RiX2JvcmRlcl9jb2xvclwiOiBcIiM3OEE4RDhcIixcbiAgICBcImNvbXBvbmVudF9xdWV1ZV9iZ19jb2xvclwiOiBcIiM4NUJCRjBcIixcbiAgICBcImNvbXBvbmVudF9xdWV1ZV9ib3JkZXJfY29sb3JcIjogXCIjNzhBOEQ4XCIsXG4gICAgXCJleHRlcm5hbF9jb21wb25lbnRfYmdfY29sb3JcIjogXCIjQ0NDQ0NDXCIsXG4gICAgXCJleHRlcm5hbF9jb21wb25lbnRfYm9yZGVyX2NvbG9yXCI6IFwiI0JGQkZCRlwiLFxuICAgIFwiZXh0ZXJuYWxfY29tcG9uZW50X2RiX2JnX2NvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxuICAgIFwiZXh0ZXJuYWxfY29tcG9uZW50X2RiX2JvcmRlcl9jb2xvclwiOiBcIiNCRkJGQkZcIixcbiAgICBcImV4dGVybmFsX2NvbXBvbmVudF9xdWV1ZV9iZ19jb2xvclwiOiBcIiNDQ0NDQ0NcIixcbiAgICBcImV4dGVybmFsX2NvbXBvbmVudF9xdWV1ZV9ib3JkZXJfY29sb3JcIjogXCIjQkZCRkJGXCJcbiAgfSxcbiAgXCJzYW5rZXlcIjoge1xuICAgIFwidXNlTWF4V2lkdGhcIjogdHJ1ZSxcbiAgICBcIndpZHRoXCI6IDYwMCxcbiAgICBcImhlaWdodFwiOiA0MDAsXG4gICAgXCJsaW5rQ29sb3JcIjogXCJncmFkaWVudFwiLFxuICAgIFwibm9kZUFsaWdubWVudFwiOiBcImp1c3RpZnlcIixcbiAgICBcInNob3dWYWx1ZXNcIjogdHJ1ZSxcbiAgICBcInByZWZpeFwiOiBcIlwiLFxuICAgIFwic3VmZml4XCI6IFwiXCJcbiAgfSxcbiAgXCJibG9ja1wiOiB7XG4gICAgXCJ1c2VNYXhXaWR0aFwiOiB0cnVlLFxuICAgIFwicGFkZGluZ1wiOiA4XG4gIH0sXG4gIFwidGhlbWVcIjogXCJkZWZhdWx0XCIsXG4gIFwibWF4VGV4dFNpemVcIjogNWU0LFxuICBcIm1heEVkZ2VzXCI6IDUwMCxcbiAgXCJkYXJrTW9kZVwiOiBmYWxzZSxcbiAgXCJmb250RmFtaWx5XCI6ICdcInRyZWJ1Y2hldCBtc1wiLCB2ZXJkYW5hLCBhcmlhbCwgc2Fucy1zZXJpZjsnLFxuICBcImxvZ0xldmVsXCI6IDUsXG4gIFwic2VjdXJpdHlMZXZlbFwiOiBcInN0cmljdFwiLFxuICBcInN0YXJ0T25Mb2FkXCI6IHRydWUsXG4gIFwiYXJyb3dNYXJrZXJBYnNvbHV0ZVwiOiBmYWxzZSxcbiAgXCJzZWN1cmVcIjogW1xuICAgIFwic2VjdXJlXCIsXG4gICAgXCJzZWN1cml0eUxldmVsXCIsXG4gICAgXCJzdGFydE9uTG9hZFwiLFxuICAgIFwibWF4VGV4dFNpemVcIixcbiAgICBcIm1heEVkZ2VzXCJcbiAgXSxcbiAgXCJsZWdhY3lNYXRoTUxcIjogZmFsc2UsXG4gIFwiZGV0ZXJtaW5pc3RpY0lkc1wiOiBmYWxzZSxcbiAgXCJmb250U2l6ZVwiOiAxNlxufTtcbmNvbnN0IGNvbmZpZyA9IHtcbiAgLi4uZGVmYXVsdENvbmZpZ0pzb24sXG4gIC8vIFNldCwgZXZlbiB0aG91Z2ggdGhleSdyZSBgdW5kZWZpbmVkYCBzbyB0aGF0IGBjb25maWdLZXlzYCBmaW5kcyB0aGVzZSBrZXlzXG4gIC8vIFRPRE86IFNob3VsZCB3ZSByZXBsYWNlIHRoZXNlIHdpdGggYG51bGxgIHNvIHRoYXQgdGhleSBjYW4gZ28gaW4gdGhlIEpTT04gU2NoZW1hP1xuICBkZXRlcm1pbmlzdGljSURTZWVkOiB2b2lkIDAsXG4gIHRoZW1lQ1NTOiB2b2lkIDAsXG4gIC8vIGFkZCBub24tSlNPTiBkZWZhdWx0IGNvbmZpZyB2YWx1ZXNcbiAgdGhlbWVWYXJpYWJsZXM6IHRoZW1lW1wiZGVmYXVsdFwiXS5nZXRUaGVtZVZhcmlhYmxlcygpLFxuICBzZXF1ZW5jZToge1xuICAgIC4uLmRlZmF1bHRDb25maWdKc29uLnNlcXVlbmNlLFxuICAgIG1lc3NhZ2VGb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMubWVzc2FnZUZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiB0aGlzLm1lc3NhZ2VGb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5tZXNzYWdlRm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9LFxuICAgIG5vdGVGb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMubm90ZUZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiB0aGlzLm5vdGVGb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5ub3RlRm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9LFxuICAgIGFjdG9yRm9udDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb250RmFtaWx5OiB0aGlzLmFjdG9yRm9udEZhbWlseSxcbiAgICAgICAgZm9udFNpemU6IHRoaXMuYWN0b3JGb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5hY3RvckZvbnRXZWlnaHRcbiAgICAgIH07XG4gICAgfVxuICB9LFxuICBnYW50dDoge1xuICAgIC4uLmRlZmF1bHRDb25maWdKc29uLmdhbnR0LFxuICAgIHRpY2tJbnRlcnZhbDogdm9pZCAwLFxuICAgIHVzZVdpZHRoOiB2b2lkIDBcbiAgICAvLyBjYW4gcHJvYmFibHkgYmUgcmVtb3ZlZCBzaW5jZSBgY29uZmlnS2V5c2AgYWxyZWFkeSBpbmNsdWRlcyB0aGlzXG4gIH0sXG4gIGM0OiB7XG4gICAgLi4uZGVmYXVsdENvbmZpZ0pzb24uYzQsXG4gICAgdXNlV2lkdGg6IHZvaWQgMCxcbiAgICBwZXJzb25Gb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMucGVyc29uRm9udEZhbWlseSxcbiAgICAgICAgZm9udFNpemU6IHRoaXMucGVyc29uRm9udFNpemUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRoaXMucGVyc29uRm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9LFxuICAgIGV4dGVybmFsX3BlcnNvbkZvbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9udEZhbWlseTogdGhpcy5leHRlcm5hbF9wZXJzb25Gb250RmFtaWx5LFxuICAgICAgICBmb250U2l6ZTogdGhpcy5leHRlcm5hbF9wZXJzb25Gb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5leHRlcm5hbF9wZXJzb25Gb250V2VpZ2h0XG4gICAgICB9O1xuICAgIH0sXG4gICAgc3lzdGVtRm9udDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb250RmFtaWx5OiB0aGlzLnN5c3RlbUZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiB0aGlzLnN5c3RlbUZvbnRTaXplLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGlzLnN5c3RlbUZvbnRXZWlnaHRcbiAgICAgIH07XG4gICAgfSxcbiAgICBleHRlcm5hbF9zeXN0ZW1Gb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuZXh0ZXJuYWxfc3lzdGVtRm9udEZhbWlseSxcbiAgICAgICAgZm9udFNpemU6IHRoaXMuZXh0ZXJuYWxfc3lzdGVtRm9udFNpemUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRoaXMuZXh0ZXJuYWxfc3lzdGVtRm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9LFxuICAgIHN5c3RlbV9kYkZvbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9udEZhbWlseTogdGhpcy5zeXN0ZW1fZGJGb250RmFtaWx5LFxuICAgICAgICBmb250U2l6ZTogdGhpcy5zeXN0ZW1fZGJGb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5zeXN0ZW1fZGJGb250V2VpZ2h0XG4gICAgICB9O1xuICAgIH0sXG4gICAgZXh0ZXJuYWxfc3lzdGVtX2RiRm9udDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb250RmFtaWx5OiB0aGlzLmV4dGVybmFsX3N5c3RlbV9kYkZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiB0aGlzLmV4dGVybmFsX3N5c3RlbV9kYkZvbnRTaXplLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGlzLmV4dGVybmFsX3N5c3RlbV9kYkZvbnRXZWlnaHRcbiAgICAgIH07XG4gICAgfSxcbiAgICBzeXN0ZW1fcXVldWVGb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuc3lzdGVtX3F1ZXVlRm9udEZhbWlseSxcbiAgICAgICAgZm9udFNpemU6IHRoaXMuc3lzdGVtX3F1ZXVlRm9udFNpemUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRoaXMuc3lzdGVtX3F1ZXVlRm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9LFxuICAgIGV4dGVybmFsX3N5c3RlbV9xdWV1ZUZvbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9udEZhbWlseTogdGhpcy5leHRlcm5hbF9zeXN0ZW1fcXVldWVGb250RmFtaWx5LFxuICAgICAgICBmb250U2l6ZTogdGhpcy5leHRlcm5hbF9zeXN0ZW1fcXVldWVGb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5leHRlcm5hbF9zeXN0ZW1fcXVldWVGb250V2VpZ2h0XG4gICAgICB9O1xuICAgIH0sXG4gICAgY29udGFpbmVyRm9udDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb250RmFtaWx5OiB0aGlzLmNvbnRhaW5lckZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbnRhaW5lckZvbnRTaXplLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGlzLmNvbnRhaW5lckZvbnRXZWlnaHRcbiAgICAgIH07XG4gICAgfSxcbiAgICBleHRlcm5hbF9jb250YWluZXJGb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuZXh0ZXJuYWxfY29udGFpbmVyRm9udEZhbWlseSxcbiAgICAgICAgZm9udFNpemU6IHRoaXMuZXh0ZXJuYWxfY29udGFpbmVyRm9udFNpemUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRoaXMuZXh0ZXJuYWxfY29udGFpbmVyRm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9LFxuICAgIGNvbnRhaW5lcl9kYkZvbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9udEZhbWlseTogdGhpcy5jb250YWluZXJfZGJGb250RmFtaWx5LFxuICAgICAgICBmb250U2l6ZTogdGhpcy5jb250YWluZXJfZGJGb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5jb250YWluZXJfZGJGb250V2VpZ2h0XG4gICAgICB9O1xuICAgIH0sXG4gICAgZXh0ZXJuYWxfY29udGFpbmVyX2RiRm9udDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb250RmFtaWx5OiB0aGlzLmV4dGVybmFsX2NvbnRhaW5lcl9kYkZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiB0aGlzLmV4dGVybmFsX2NvbnRhaW5lcl9kYkZvbnRTaXplLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGlzLmV4dGVybmFsX2NvbnRhaW5lcl9kYkZvbnRXZWlnaHRcbiAgICAgIH07XG4gICAgfSxcbiAgICBjb250YWluZXJfcXVldWVGb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuY29udGFpbmVyX3F1ZXVlRm9udEZhbWlseSxcbiAgICAgICAgZm9udFNpemU6IHRoaXMuY29udGFpbmVyX3F1ZXVlRm9udFNpemUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRoaXMuY29udGFpbmVyX3F1ZXVlRm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9LFxuICAgIGV4dGVybmFsX2NvbnRhaW5lcl9xdWV1ZUZvbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9udEZhbWlseTogdGhpcy5leHRlcm5hbF9jb250YWluZXJfcXVldWVGb250RmFtaWx5LFxuICAgICAgICBmb250U2l6ZTogdGhpcy5leHRlcm5hbF9jb250YWluZXJfcXVldWVGb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5leHRlcm5hbF9jb250YWluZXJfcXVldWVGb250V2VpZ2h0XG4gICAgICB9O1xuICAgIH0sXG4gICAgY29tcG9uZW50Rm9udDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb250RmFtaWx5OiB0aGlzLmNvbXBvbmVudEZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbXBvbmVudEZvbnRTaXplLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGlzLmNvbXBvbmVudEZvbnRXZWlnaHRcbiAgICAgIH07XG4gICAgfSxcbiAgICBleHRlcm5hbF9jb21wb25lbnRGb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuZXh0ZXJuYWxfY29tcG9uZW50Rm9udEZhbWlseSxcbiAgICAgICAgZm9udFNpemU6IHRoaXMuZXh0ZXJuYWxfY29tcG9uZW50Rm9udFNpemUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRoaXMuZXh0ZXJuYWxfY29tcG9uZW50Rm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9LFxuICAgIGNvbXBvbmVudF9kYkZvbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9udEZhbWlseTogdGhpcy5jb21wb25lbnRfZGJGb250RmFtaWx5LFxuICAgICAgICBmb250U2l6ZTogdGhpcy5jb21wb25lbnRfZGJGb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5jb21wb25lbnRfZGJGb250V2VpZ2h0XG4gICAgICB9O1xuICAgIH0sXG4gICAgZXh0ZXJuYWxfY29tcG9uZW50X2RiRm9udDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb250RmFtaWx5OiB0aGlzLmV4dGVybmFsX2NvbXBvbmVudF9kYkZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiB0aGlzLmV4dGVybmFsX2NvbXBvbmVudF9kYkZvbnRTaXplLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGlzLmV4dGVybmFsX2NvbXBvbmVudF9kYkZvbnRXZWlnaHRcbiAgICAgIH07XG4gICAgfSxcbiAgICBjb21wb25lbnRfcXVldWVGb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuY29tcG9uZW50X3F1ZXVlRm9udEZhbWlseSxcbiAgICAgICAgZm9udFNpemU6IHRoaXMuY29tcG9uZW50X3F1ZXVlRm9udFNpemUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRoaXMuY29tcG9uZW50X3F1ZXVlRm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9LFxuICAgIGV4dGVybmFsX2NvbXBvbmVudF9xdWV1ZUZvbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9udEZhbWlseTogdGhpcy5leHRlcm5hbF9jb21wb25lbnRfcXVldWVGb250RmFtaWx5LFxuICAgICAgICBmb250U2l6ZTogdGhpcy5leHRlcm5hbF9jb21wb25lbnRfcXVldWVGb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5leHRlcm5hbF9jb21wb25lbnRfcXVldWVGb250V2VpZ2h0XG4gICAgICB9O1xuICAgIH0sXG4gICAgYm91bmRhcnlGb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuYm91bmRhcnlGb250RmFtaWx5LFxuICAgICAgICBmb250U2l6ZTogdGhpcy5ib3VuZGFyeUZvbnRTaXplLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGlzLmJvdW5kYXJ5Rm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9LFxuICAgIG1lc3NhZ2VGb250OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvbnRGYW1pbHk6IHRoaXMubWVzc2FnZUZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRTaXplOiB0aGlzLm1lc3NhZ2VGb250U2l6ZSxcbiAgICAgICAgZm9udFdlaWdodDogdGhpcy5tZXNzYWdlRm9udFdlaWdodFxuICAgICAgfTtcbiAgICB9XG4gIH0sXG4gIHBpZToge1xuICAgIC4uLmRlZmF1bHRDb25maWdKc29uLnBpZSxcbiAgICB1c2VXaWR0aDogOTg0XG4gIH0sXG4gIHh5Q2hhcnQ6IHtcbiAgICAuLi5kZWZhdWx0Q29uZmlnSnNvbi54eUNoYXJ0LFxuICAgIHVzZVdpZHRoOiB2b2lkIDBcbiAgfSxcbiAgcmVxdWlyZW1lbnQ6IHtcbiAgICAuLi5kZWZhdWx0Q29uZmlnSnNvbi5yZXF1aXJlbWVudCxcbiAgICB1c2VXaWR0aDogdm9pZCAwXG4gIH0sXG4gIGdpdEdyYXBoOiB7XG4gICAgLi4uZGVmYXVsdENvbmZpZ0pzb24uZ2l0R3JhcGgsXG4gICAgLy8gVE9ETzogVGhpcyBpcyBhIHRlbXBvcmFyeSBvdmVycmlkZSBmb3IgYGdpdEdyYXBoYCwgc2luY2UgZXZlcnkgb3RoZXJcbiAgICAvLyAgICAgICBkaWFncmFtIGRvZXMgaGF2ZSBgdXNlTWF4V2lkdGhgLCBidXQgaW5zdGVhZCBzZXRzIGl0IHRvIGB0cnVlYC5cbiAgICAvLyAgICAgICBTaG91bGQgd2Ugc2V0IHRoaXMgdG8gYHRydWVgIGluc3RlYWQ/XG4gICAgdXNlTWF4V2lkdGg6IGZhbHNlXG4gIH0sXG4gIHNhbmtleToge1xuICAgIC4uLmRlZmF1bHRDb25maWdKc29uLnNhbmtleSxcbiAgICAvLyB0aGlzIGlzIGZhbHNlLCB1bmxpa2UgZXZlcnkgb3RoZXIgZGlhZ3JhbSAob3RoZXIgdGhhbiBnaXRHcmFwaClcbiAgICAvLyBUT0RPOiBjYW4gd2UgbWFrZSB0aGlzIGRlZmF1bHQgdG8gYHRydWVgIGluc3RlYWQ/XG4gICAgdXNlTWF4V2lkdGg6IGZhbHNlXG4gIH1cbn07XG5jb25zdCBrZXlpZnkgPSAob2JqLCBwcmVmaXggPSBcIlwiKSA9PiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgocmVzLCBlbCkgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShvYmpbZWxdKSkge1xuICAgIHJldHVybiByZXM7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9ialtlbF0gPT09IFwib2JqZWN0XCIgJiYgb2JqW2VsXSAhPT0gbnVsbCkge1xuICAgIHJldHVybiBbLi4ucmVzLCBwcmVmaXggKyBlbCwgLi4ua2V5aWZ5KG9ialtlbF0sIFwiXCIpXTtcbiAgfVxuICByZXR1cm4gWy4uLnJlcywgcHJlZml4ICsgZWxdO1xufSwgW10pO1xuY29uc3QgY29uZmlnS2V5cyA9IG5ldyBTZXQoa2V5aWZ5KGNvbmZpZywgXCJcIikpO1xuY29uc3QgZGVmYXVsdENvbmZpZyQyID0gY29uZmlnO1xuY29uc3Qgc2FuaXRpemVEaXJlY3RpdmUgPSAoYXJncykgPT4ge1xuICBsb2ckMS5kZWJ1ZyhcInNhbml0aXplRGlyZWN0aXZlIGNhbGxlZCB3aXRoXCIsIGFyZ3MpO1xuICBpZiAodHlwZW9mIGFyZ3MgIT09IFwib2JqZWN0XCIgfHwgYXJncyA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGFyZ3MpKSB7XG4gICAgYXJncy5mb3JFYWNoKChhcmcpID0+IHNhbml0aXplRGlyZWN0aXZlKGFyZykpO1xuICAgIHJldHVybjtcbiAgfVxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhhcmdzKSkge1xuICAgIGxvZyQxLmRlYnVnKFwiQ2hlY2tpbmcga2V5XCIsIGtleSk7XG4gICAgaWYgKGtleS5zdGFydHNXaXRoKFwiX19cIikgfHwga2V5LmluY2x1ZGVzKFwicHJvdG9cIikgfHwga2V5LmluY2x1ZGVzKFwiY29uc3RyXCIpIHx8ICFjb25maWdLZXlzLmhhcyhrZXkpIHx8IGFyZ3Nba2V5XSA9PSBudWxsKSB7XG4gICAgICBsb2ckMS5kZWJ1ZyhcInNhbml0aXplIGRlbGV0aW5nIGtleTogXCIsIGtleSk7XG4gICAgICBkZWxldGUgYXJnc1trZXldO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYXJnc1trZXldID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBsb2ckMS5kZWJ1ZyhcInNhbml0aXppbmcgb2JqZWN0XCIsIGtleSk7XG4gICAgICBzYW5pdGl6ZURpcmVjdGl2ZShhcmdzW2tleV0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGNzc01hdGNoZXJzID0gW1widGhlbWVDU1NcIiwgXCJmb250RmFtaWx5XCIsIFwiYWx0Rm9udEZhbWlseVwiXTtcbiAgICBmb3IgKGNvbnN0IGNzc0tleSBvZiBjc3NNYXRjaGVycykge1xuICAgICAgaWYgKGtleS5pbmNsdWRlcyhjc3NLZXkpKSB7XG4gICAgICAgIGxvZyQxLmRlYnVnKFwic2FuaXRpemluZyBjc3Mgb3B0aW9uXCIsIGtleSk7XG4gICAgICAgIGFyZ3Nba2V5XSA9IHNhbml0aXplQ3NzKGFyZ3Nba2V5XSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChhcmdzLnRoZW1lVmFyaWFibGVzKSB7XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKGFyZ3MudGhlbWVWYXJpYWJsZXMpKSB7XG4gICAgICBjb25zdCB2YWwgPSBhcmdzLnRoZW1lVmFyaWFibGVzW2tdO1xuICAgICAgaWYgKCh2YWwgPT0gbnVsbCA/IHZvaWQgMCA6IHZhbC5tYXRjaCkgJiYgIXZhbC5tYXRjaCgvXltcXGQgXCIjJSgpLC47QS1aYS16XSskLykpIHtcbiAgICAgICAgYXJncy50aGVtZVZhcmlhYmxlc1trXSA9IFwiXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGxvZyQxLmRlYnVnKFwiQWZ0ZXIgc2FuaXRpemF0aW9uXCIsIGFyZ3MpO1xufTtcbmNvbnN0IHNhbml0aXplQ3NzID0gKHN0cjIpID0+IHtcbiAgbGV0IHN0YXJ0Q250ID0gMDtcbiAgbGV0IGVuZENudCA9IDA7XG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiBzdHIyKSB7XG4gICAgaWYgKHN0YXJ0Q250IDwgZW5kQ250KSB7XG4gICAgICByZXR1cm4gXCJ7IC8qIEVSUk9SOiBVbmJhbGFuY2VkIENTUyAqLyB9XCI7XG4gICAgfVxuICAgIGlmIChlbGVtZW50ID09PSBcIntcIikge1xuICAgICAgc3RhcnRDbnQrKztcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQgPT09IFwifVwiKSB7XG4gICAgICBlbmRDbnQrKztcbiAgICB9XG4gIH1cbiAgaWYgKHN0YXJ0Q250ICE9PSBlbmRDbnQpIHtcbiAgICByZXR1cm4gXCJ7IC8qIEVSUk9SOiBVbmJhbGFuY2VkIENTUyAqLyB9XCI7XG4gIH1cbiAgcmV0dXJuIHN0cjI7XG59O1xuY29uc3QgZnJvbnRNYXR0ZXJSZWdleCA9IC9eLXszfVxccypbXFxuXFxyXSguKj8pW1xcblxccl0tezN9XFxzKltcXG5cXHJdKy9zO1xuY29uc3QgZGlyZWN0aXZlUmVnZXggPSAvJXsyfXtcXHMqKD86KFxcdyspXFxzKjp8KFxcdyspKVxccyooPzooXFx3Kyl8KCg/Oig/IX0lezJ9KS58XFxyP1xcbikqKSk/XFxzKig/On0lezJ9KT8vZ2k7XG5jb25zdCBhbnlDb21tZW50UmVnZXggPSAvXFxzKiUlLipcXG4vZ207XG5jbGFzcyBVbmtub3duRGlhZ3JhbUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gXCJVbmtub3duRGlhZ3JhbUVycm9yXCI7XG4gIH1cbn1cbmNvbnN0IGRldGVjdG9ycyA9IHt9O1xuY29uc3QgZGV0ZWN0VHlwZSA9IGZ1bmN0aW9uKHRleHQsIGNvbmZpZzIpIHtcbiAgdGV4dCA9IHRleHQucmVwbGFjZShmcm9udE1hdHRlclJlZ2V4LCBcIlwiKS5yZXBsYWNlKGRpcmVjdGl2ZVJlZ2V4LCBcIlwiKS5yZXBsYWNlKGFueUNvbW1lbnRSZWdleCwgXCJcXG5cIik7XG4gIGZvciAoY29uc3QgW2tleSwgeyBkZXRlY3RvcjogZGV0ZWN0b3IyIH1dIG9mIE9iamVjdC5lbnRyaWVzKGRldGVjdG9ycykpIHtcbiAgICBjb25zdCBkaWFncmFtMiA9IGRldGVjdG9yMih0ZXh0LCBjb25maWcyKTtcbiAgICBpZiAoZGlhZ3JhbTIpIHtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBVbmtub3duRGlhZ3JhbUVycm9yKFxuICAgIGBObyBkaWFncmFtIHR5cGUgZGV0ZWN0ZWQgbWF0Y2hpbmcgZ2l2ZW4gY29uZmlndXJhdGlvbiBmb3IgdGV4dDogJHt0ZXh0fWBcbiAgKTtcbn07XG5jb25zdCByZWdpc3RlckxhenlMb2FkZWREaWFncmFtcyA9ICguLi5kaWFncmFtczIpID0+IHtcbiAgZm9yIChjb25zdCB7IGlkOiBpZDIsIGRldGVjdG9yOiBkZXRlY3RvcjIsIGxvYWRlcjogbG9hZGVyMiB9IG9mIGRpYWdyYW1zMikge1xuICAgIGFkZERldGVjdG9yKGlkMiwgZGV0ZWN0b3IyLCBsb2FkZXIyKTtcbiAgfVxufTtcbmNvbnN0IGFkZERldGVjdG9yID0gKGtleSwgZGV0ZWN0b3IyLCBsb2FkZXIyKSA9PiB7XG4gIGlmIChkZXRlY3RvcnNba2V5XSkge1xuICAgIGxvZyQxLmVycm9yKGBEZXRlY3RvciB3aXRoIGtleSAke2tleX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgfSBlbHNlIHtcbiAgICBkZXRlY3RvcnNba2V5XSA9IHsgZGV0ZWN0b3I6IGRldGVjdG9yMiwgbG9hZGVyOiBsb2FkZXIyIH07XG4gIH1cbiAgbG9nJDEuZGVidWcoYERldGVjdG9yIHdpdGgga2V5ICR7a2V5fSBhZGRlZCR7bG9hZGVyMiA/IFwiIHdpdGggbG9hZGVyXCIgOiBcIlwifWApO1xufTtcbmNvbnN0IGdldERpYWdyYW1Mb2FkZXIgPSAoa2V5KSA9PiB7XG4gIHJldHVybiBkZXRlY3RvcnNba2V5XS5sb2FkZXI7XG59O1xuY29uc3QgYXNzaWduV2l0aERlcHRoID0gKGRzdCwgc3JjLCB7IGRlcHRoID0gMiwgY2xvYmJlciA9IGZhbHNlIH0gPSB7fSkgPT4ge1xuICBjb25zdCBjb25maWcyID0geyBkZXB0aCwgY2xvYmJlciB9O1xuICBpZiAoQXJyYXkuaXNBcnJheShzcmMpICYmICFBcnJheS5pc0FycmF5KGRzdCkpIHtcbiAgICBzcmMuZm9yRWFjaCgocykgPT4gYXNzaWduV2l0aERlcHRoKGRzdCwgcywgY29uZmlnMikpO1xuICAgIHJldHVybiBkc3Q7XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzcmMpICYmIEFycmF5LmlzQXJyYXkoZHN0KSkge1xuICAgIHNyYy5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBpZiAoIWRzdC5pbmNsdWRlcyhzKSkge1xuICAgICAgICBkc3QucHVzaChzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZHN0O1xuICB9XG4gIGlmIChkc3QgPT09IHZvaWQgMCB8fCBkZXB0aCA8PSAwKSB7XG4gICAgaWYgKGRzdCAhPT0gdm9pZCAwICYmIGRzdCAhPT0gbnVsbCAmJiB0eXBlb2YgZHN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBzcmMgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKGRzdCwgc3JjKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHNyYztcbiAgICB9XG4gIH1cbiAgaWYgKHNyYyAhPT0gdm9pZCAwICYmIHR5cGVvZiBkc3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHNyYyA9PT0gXCJvYmplY3RcIikge1xuICAgIE9iamVjdC5rZXlzKHNyYykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHNyY1trZXldID09PSBcIm9iamVjdFwiICYmIChkc3Rba2V5XSA9PT0gdm9pZCAwIHx8IHR5cGVvZiBkc3Rba2V5XSA9PT0gXCJvYmplY3RcIikpIHtcbiAgICAgICAgaWYgKGRzdFtrZXldID09PSB2b2lkIDApIHtcbiAgICAgICAgICBkc3Rba2V5XSA9IEFycmF5LmlzQXJyYXkoc3JjW2tleV0pID8gW10gOiB7fTtcbiAgICAgICAgfVxuICAgICAgICBkc3Rba2V5XSA9IGFzc2lnbldpdGhEZXB0aChkc3Rba2V5XSwgc3JjW2tleV0sIHsgZGVwdGg6IGRlcHRoIC0gMSwgY2xvYmJlciB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY2xvYmJlciB8fCB0eXBlb2YgZHN0W2tleV0gIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHNyY1trZXldICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGRzdFtrZXldID0gc3JjW2tleV07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGRzdDtcbn07XG5jb25zdCBhc3NpZ25XaXRoRGVwdGgkMSA9IGFzc2lnbldpdGhEZXB0aDtcbmNvbnN0IFpFUk9fV0lEVEhfU1BBQ0UgPSBcIuKAi1wiO1xuY29uc3QgZDNDdXJ2ZVR5cGVzID0ge1xuICBjdXJ2ZUJhc2lzLFxuICBjdXJ2ZUJhc2lzQ2xvc2VkLFxuICBjdXJ2ZUJhc2lzT3BlbixcbiAgY3VydmVCdW1wWCxcbiAgY3VydmVCdW1wWSxcbiAgY3VydmVCdW5kbGUsXG4gIGN1cnZlQ2FyZGluYWxDbG9zZWQsXG4gIGN1cnZlQ2FyZGluYWxPcGVuLFxuICBjdXJ2ZUNhcmRpbmFsLFxuICBjdXJ2ZUNhdG11bGxSb21DbG9zZWQsXG4gIGN1cnZlQ2F0bXVsbFJvbU9wZW4sXG4gIGN1cnZlQ2F0bXVsbFJvbSxcbiAgY3VydmVMaW5lYXIsXG4gIGN1cnZlTGluZWFyQ2xvc2VkLFxuICBjdXJ2ZU1vbm90b25lWCxcbiAgY3VydmVNb25vdG9uZVksXG4gIGN1cnZlTmF0dXJhbCxcbiAgY3VydmVTdGVwLFxuICBjdXJ2ZVN0ZXBBZnRlcixcbiAgY3VydmVTdGVwQmVmb3JlXG59O1xuY29uc3QgZGlyZWN0aXZlV2l0aG91dE9wZW4gPSAvXFxzKig/OihcXHcrKSg/PTopOnwoXFx3KykpXFxzKig/OihcXHcrKXwoKD86KD8hfSV7Mn0pLnxcXHI/XFxuKSopKT9cXHMqKD86fSV7Mn0pPy9naTtcbmNvbnN0IGRldGVjdEluaXQgPSBmdW5jdGlvbih0ZXh0LCBjb25maWcyKSB7XG4gIGNvbnN0IGluaXRzID0gZGV0ZWN0RGlyZWN0aXZlKHRleHQsIC8oPzppbml0XFxiKXwoPzppbml0aWFsaXplXFxiKS8pO1xuICBsZXQgcmVzdWx0cyA9IHt9O1xuICBpZiAoQXJyYXkuaXNBcnJheShpbml0cykpIHtcbiAgICBjb25zdCBhcmdzID0gaW5pdHMubWFwKChpbml0MikgPT4gaW5pdDIuYXJncyk7XG4gICAgc2FuaXRpemVEaXJlY3RpdmUoYXJncyk7XG4gICAgcmVzdWx0cyA9IGFzc2lnbldpdGhEZXB0aCQxKHJlc3VsdHMsIFsuLi5hcmdzXSk7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0cyA9IGluaXRzLmFyZ3M7XG4gIH1cbiAgaWYgKCFyZXN1bHRzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGxldCB0eXBlMiA9IGRldGVjdFR5cGUodGV4dCwgY29uZmlnMik7XG4gIGNvbnN0IHByb3AgPSBcImNvbmZpZ1wiO1xuICBpZiAocmVzdWx0c1twcm9wXSAhPT0gdm9pZCAwKSB7XG4gICAgaWYgKHR5cGUyID09PSBcImZsb3djaGFydC12MlwiKSB7XG4gICAgICB0eXBlMiA9IFwiZmxvd2NoYXJ0XCI7XG4gICAgfVxuICAgIHJlc3VsdHNbdHlwZTJdID0gcmVzdWx0c1twcm9wXTtcbiAgICBkZWxldGUgcmVzdWx0c1twcm9wXTtcbiAgfVxuICByZXR1cm4gcmVzdWx0cztcbn07XG5jb25zdCBkZXRlY3REaXJlY3RpdmUgPSBmdW5jdGlvbih0ZXh0LCB0eXBlMiA9IG51bGwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBjb21tZW50V2l0aG91dERpcmVjdGl2ZXMgPSBuZXcgUmVnRXhwKFxuICAgICAgYFslXXsyfSg/IVt7XSR7ZGlyZWN0aXZlV2l0aG91dE9wZW4uc291cmNlfSkoPz1bfV1bJV17Mn0pLipcbmAsXG4gICAgICBcImlnXCJcbiAgICApO1xuICAgIHRleHQgPSB0ZXh0LnRyaW0oKS5yZXBsYWNlKGNvbW1lbnRXaXRob3V0RGlyZWN0aXZlcywgXCJcIikucmVwbGFjZSgvJy9nbSwgJ1wiJyk7XG4gICAgbG9nJDEuZGVidWcoXG4gICAgICBgRGV0ZWN0aW5nIGRpYWdyYW0gZGlyZWN0aXZlJHt0eXBlMiAhPT0gbnVsbCA/IFwiIHR5cGU6XCIgKyB0eXBlMiA6IFwiXCJ9IGJhc2VkIG9uIHRoZSB0ZXh0OiR7dGV4dH1gXG4gICAgKTtcbiAgICBsZXQgbWF0Y2g7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgd2hpbGUgKChtYXRjaCA9IGRpcmVjdGl2ZVJlZ2V4LmV4ZWModGV4dCkpICE9PSBudWxsKSB7XG4gICAgICBpZiAobWF0Y2guaW5kZXggPT09IGRpcmVjdGl2ZVJlZ2V4Lmxhc3RJbmRleCkge1xuICAgICAgICBkaXJlY3RpdmVSZWdleC5sYXN0SW5kZXgrKztcbiAgICAgIH1cbiAgICAgIGlmIChtYXRjaCAmJiAhdHlwZTIgfHwgdHlwZTIgJiYgbWF0Y2hbMV0gJiYgbWF0Y2hbMV0ubWF0Y2godHlwZTIpIHx8IHR5cGUyICYmIG1hdGNoWzJdICYmIG1hdGNoWzJdLm1hdGNoKHR5cGUyKSkge1xuICAgICAgICBjb25zdCB0eXBlMjIgPSBtYXRjaFsxXSA/IG1hdGNoWzFdIDogbWF0Y2hbMl07XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBtYXRjaFszXSA/IG1hdGNoWzNdLnRyaW0oKSA6IG1hdGNoWzRdID8gSlNPTi5wYXJzZShtYXRjaFs0XS50cmltKCkpIDogbnVsbDtcbiAgICAgICAgcmVzdWx0LnB1c2goeyB0eXBlOiB0eXBlMjIsIGFyZ3MgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChyZXN1bHQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiB0ZXh0LCBhcmdzOiBudWxsIH07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQubGVuZ3RoID09PSAxID8gcmVzdWx0WzBdIDogcmVzdWx0O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZyQxLmVycm9yKFxuICAgICAgYEVSUk9SOiAke2Vycm9yLm1lc3NhZ2V9IC0gVW5hYmxlIHRvIHBhcnNlIGRpcmVjdGl2ZSB0eXBlOiAnJHt0eXBlMn0nIGJhc2VkIG9uIHRoZSB0ZXh0OiAnJHt0ZXh0fSdgXG4gICAgKTtcbiAgICByZXR1cm4geyB0eXBlOiB2b2lkIDAsIGFyZ3M6IG51bGwgfTtcbiAgfVxufTtcbmNvbnN0IHJlbW92ZURpcmVjdGl2ZXMgPSBmdW5jdGlvbih0ZXh0KSB7XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UoZGlyZWN0aXZlUmVnZXgsIFwiXCIpO1xufTtcbmNvbnN0IGlzU3Vic3RyaW5nSW5BcnJheSA9IGZ1bmN0aW9uKHN0cjIsIGFycikge1xuICBmb3IgKGNvbnN0IFtpLCBlbGVtZW50XSBvZiBhcnIuZW50cmllcygpKSB7XG4gICAgaWYgKGVsZW1lbnQubWF0Y2goc3RyMikpIHtcbiAgICAgIHJldHVybiBpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59O1xuZnVuY3Rpb24gaW50ZXJwb2xhdGVUb0N1cnZlKGludGVycG9sYXRlLCBkZWZhdWx0Q3VydmUpIHtcbiAgaWYgKCFpbnRlcnBvbGF0ZSkge1xuICAgIHJldHVybiBkZWZhdWx0Q3VydmU7XG4gIH1cbiAgY29uc3QgY3VydmVOYW1lID0gYGN1cnZlJHtpbnRlcnBvbGF0ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGludGVycG9sYXRlLnNsaWNlKDEpfWA7XG4gIHJldHVybiBkM0N1cnZlVHlwZXNbY3VydmVOYW1lXSA/PyBkZWZhdWx0Q3VydmU7XG59XG5mdW5jdGlvbiBmb3JtYXRVcmwobGlua1N0ciwgY29uZmlnMikge1xuICBjb25zdCB1cmwgPSBsaW5rU3RyLnRyaW0oKTtcbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIGlmIChjb25maWcyLnNlY3VyaXR5TGV2ZWwgIT09IFwibG9vc2VcIikge1xuICAgIHJldHVybiBzYW5pdGl6ZVVybCh1cmwpO1xuICB9XG4gIHJldHVybiB1cmw7XG59XG5jb25zdCBydW5GdW5jID0gKGZ1bmN0aW9uTmFtZSwgLi4ucGFyYW1zKSA9PiB7XG4gIGNvbnN0IGFyclBhdGhzID0gZnVuY3Rpb25OYW1lLnNwbGl0KFwiLlwiKTtcbiAgY29uc3QgbGVuID0gYXJyUGF0aHMubGVuZ3RoIC0gMTtcbiAgY29uc3QgZm5OYW1lID0gYXJyUGF0aHNbbGVuXTtcbiAgbGV0IG9iaiA9IHdpbmRvdztcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIG9iaiA9IG9ialthcnJQYXRoc1tpXV07XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIGxvZyQxLmVycm9yKGBGdW5jdGlvbiBuYW1lOiAke2Z1bmN0aW9uTmFtZX0gbm90IGZvdW5kIGluIHdpbmRvd2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICBvYmpbZm5OYW1lXSguLi5wYXJhbXMpO1xufTtcbmZ1bmN0aW9uIGRpc3RhbmNlKHAxLCBwMikge1xuICBpZiAoIXAxIHx8ICFwMikge1xuICAgIHJldHVybiAwO1xuICB9XG4gIHJldHVybiBNYXRoLnNxcnQoTWF0aC5wb3cocDIueCAtIHAxLngsIDIpICsgTWF0aC5wb3cocDIueSAtIHAxLnksIDIpKTtcbn1cbmZ1bmN0aW9uIHRyYXZlcnNlRWRnZShwb2ludHMpIHtcbiAgbGV0IHByZXZQb2ludDtcbiAgbGV0IHRvdGFsRGlzdGFuY2UgPSAwO1xuICBwb2ludHMuZm9yRWFjaCgocG9pbnQpID0+IHtcbiAgICB0b3RhbERpc3RhbmNlICs9IGRpc3RhbmNlKHBvaW50LCBwcmV2UG9pbnQpO1xuICAgIHByZXZQb2ludCA9IHBvaW50O1xuICB9KTtcbiAgY29uc3QgcmVtYWluaW5nRGlzdGFuY2UgPSB0b3RhbERpc3RhbmNlIC8gMjtcbiAgcmV0dXJuIGNhbGN1bGF0ZVBvaW50KHBvaW50cywgcmVtYWluaW5nRGlzdGFuY2UpO1xufVxuZnVuY3Rpb24gY2FsY0xhYmVsUG9zaXRpb24ocG9pbnRzKSB7XG4gIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHBvaW50c1swXTtcbiAgfVxuICByZXR1cm4gdHJhdmVyc2VFZGdlKHBvaW50cyk7XG59XG5jb25zdCByb3VuZE51bWJlciA9IChudW0sIHByZWNpc2lvbiA9IDIpID0+IHtcbiAgY29uc3QgZmFjdG9yID0gTWF0aC5wb3coMTAsIHByZWNpc2lvbik7XG4gIHJldHVybiBNYXRoLnJvdW5kKG51bSAqIGZhY3RvcikgLyBmYWN0b3I7XG59O1xuY29uc3QgY2FsY3VsYXRlUG9pbnQgPSAocG9pbnRzLCBkaXN0YW5jZVRvVHJhdmVyc2UpID0+IHtcbiAgbGV0IHByZXZQb2ludCA9IHZvaWQgMDtcbiAgbGV0IHJlbWFpbmluZ0Rpc3RhbmNlID0gZGlzdGFuY2VUb1RyYXZlcnNlO1xuICBmb3IgKGNvbnN0IHBvaW50IG9mIHBvaW50cykge1xuICAgIGlmIChwcmV2UG9pbnQpIHtcbiAgICAgIGNvbnN0IHZlY3RvckRpc3RhbmNlID0gZGlzdGFuY2UocG9pbnQsIHByZXZQb2ludCk7XG4gICAgICBpZiAodmVjdG9yRGlzdGFuY2UgPCByZW1haW5pbmdEaXN0YW5jZSkge1xuICAgICAgICByZW1haW5pbmdEaXN0YW5jZSAtPSB2ZWN0b3JEaXN0YW5jZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlUmF0aW8gPSByZW1haW5pbmdEaXN0YW5jZSAvIHZlY3RvckRpc3RhbmNlO1xuICAgICAgICBpZiAoZGlzdGFuY2VSYXRpbyA8PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZQb2ludDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGlzdGFuY2VSYXRpbyA+PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIHsgeDogcG9pbnQueCwgeTogcG9pbnQueSB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkaXN0YW5jZVJhdGlvID4gMCAmJiBkaXN0YW5jZVJhdGlvIDwgMSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiByb3VuZE51bWJlcigoMSAtIGRpc3RhbmNlUmF0aW8pICogcHJldlBvaW50LnggKyBkaXN0YW5jZVJhdGlvICogcG9pbnQueCwgNSksXG4gICAgICAgICAgICB5OiByb3VuZE51bWJlcigoMSAtIGRpc3RhbmNlUmF0aW8pICogcHJldlBvaW50LnkgKyBkaXN0YW5jZVJhdGlvICogcG9pbnQueSwgNSlcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHByZXZQb2ludCA9IHBvaW50O1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIGEgc3VpdGFibGUgcG9pbnQgZm9yIHRoZSBnaXZlbiBkaXN0YW5jZVwiKTtcbn07XG5jb25zdCBjYWxjQ2FyZGluYWxpdHlQb3NpdGlvbiA9IChpc1JlbGF0aW9uVHlwZVByZXNlbnQsIHBvaW50cywgaW5pdGlhbFBvc2l0aW9uKSA9PiB7XG4gIGxvZyQxLmluZm8oYG91ciBwb2ludHMgJHtKU09OLnN0cmluZ2lmeShwb2ludHMpfWApO1xuICBpZiAocG9pbnRzWzBdICE9PSBpbml0aWFsUG9zaXRpb24pIHtcbiAgICBwb2ludHMgPSBwb2ludHMucmV2ZXJzZSgpO1xuICB9XG4gIGNvbnN0IGRpc3RhbmNlVG9DYXJkaW5hbGl0eVBvaW50ID0gMjU7XG4gIGNvbnN0IGNlbnRlciA9IGNhbGN1bGF0ZVBvaW50KHBvaW50cywgZGlzdGFuY2VUb0NhcmRpbmFsaXR5UG9pbnQpO1xuICBjb25zdCBkID0gaXNSZWxhdGlvblR5cGVQcmVzZW50ID8gMTAgOiA1O1xuICBjb25zdCBhbmdsZSA9IE1hdGguYXRhbjIocG9pbnRzWzBdLnkgLSBjZW50ZXIueSwgcG9pbnRzWzBdLnggLSBjZW50ZXIueCk7XG4gIGNvbnN0IGNhcmRpbmFsaXR5UG9zaXRpb24gPSB7IHg6IDAsIHk6IDAgfTtcbiAgY2FyZGluYWxpdHlQb3NpdGlvbi54ID0gTWF0aC5zaW4oYW5nbGUpICogZCArIChwb2ludHNbMF0ueCArIGNlbnRlci54KSAvIDI7XG4gIGNhcmRpbmFsaXR5UG9zaXRpb24ueSA9IC1NYXRoLmNvcyhhbmdsZSkgKiBkICsgKHBvaW50c1swXS55ICsgY2VudGVyLnkpIC8gMjtcbiAgcmV0dXJuIGNhcmRpbmFsaXR5UG9zaXRpb247XG59O1xuZnVuY3Rpb24gY2FsY1Rlcm1pbmFsTGFiZWxQb3NpdGlvbih0ZXJtaW5hbE1hcmtlclNpemUsIHBvc2l0aW9uLCBfcG9pbnRzKSB7XG4gIGNvbnN0IHBvaW50cyA9IHN0cnVjdHVyZWRDbG9uZShfcG9pbnRzKTtcbiAgbG9nJDEuaW5mbyhcIm91ciBwb2ludHNcIiwgcG9pbnRzKTtcbiAgaWYgKHBvc2l0aW9uICE9PSBcInN0YXJ0X2xlZnRcIiAmJiBwb3NpdGlvbiAhPT0gXCJzdGFydF9yaWdodFwiKSB7XG4gICAgcG9pbnRzLnJldmVyc2UoKTtcbiAgfVxuICBjb25zdCBkaXN0YW5jZVRvQ2FyZGluYWxpdHlQb2ludCA9IDI1ICsgdGVybWluYWxNYXJrZXJTaXplO1xuICBjb25zdCBjZW50ZXIgPSBjYWxjdWxhdGVQb2ludChwb2ludHMsIGRpc3RhbmNlVG9DYXJkaW5hbGl0eVBvaW50KTtcbiAgY29uc3QgZCA9IDEwICsgdGVybWluYWxNYXJrZXJTaXplICogMC41O1xuICBjb25zdCBhbmdsZSA9IE1hdGguYXRhbjIocG9pbnRzWzBdLnkgLSBjZW50ZXIueSwgcG9pbnRzWzBdLnggLSBjZW50ZXIueCk7XG4gIGNvbnN0IGNhcmRpbmFsaXR5UG9zaXRpb24gPSB7IHg6IDAsIHk6IDAgfTtcbiAgaWYgKHBvc2l0aW9uID09PSBcInN0YXJ0X2xlZnRcIikge1xuICAgIGNhcmRpbmFsaXR5UG9zaXRpb24ueCA9IE1hdGguc2luKGFuZ2xlICsgTWF0aC5QSSkgKiBkICsgKHBvaW50c1swXS54ICsgY2VudGVyLngpIC8gMjtcbiAgICBjYXJkaW5hbGl0eVBvc2l0aW9uLnkgPSAtTWF0aC5jb3MoYW5nbGUgKyBNYXRoLlBJKSAqIGQgKyAocG9pbnRzWzBdLnkgKyBjZW50ZXIueSkgLyAyO1xuICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSBcImVuZF9yaWdodFwiKSB7XG4gICAgY2FyZGluYWxpdHlQb3NpdGlvbi54ID0gTWF0aC5zaW4oYW5nbGUgLSBNYXRoLlBJKSAqIGQgKyAocG9pbnRzWzBdLnggKyBjZW50ZXIueCkgLyAyIC0gNTtcbiAgICBjYXJkaW5hbGl0eVBvc2l0aW9uLnkgPSAtTWF0aC5jb3MoYW5nbGUgLSBNYXRoLlBJKSAqIGQgKyAocG9pbnRzWzBdLnkgKyBjZW50ZXIueSkgLyAyIC0gNTtcbiAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gXCJlbmRfbGVmdFwiKSB7XG4gICAgY2FyZGluYWxpdHlQb3NpdGlvbi54ID0gTWF0aC5zaW4oYW5nbGUpICogZCArIChwb2ludHNbMF0ueCArIGNlbnRlci54KSAvIDIgLSA1O1xuICAgIGNhcmRpbmFsaXR5UG9zaXRpb24ueSA9IC1NYXRoLmNvcyhhbmdsZSkgKiBkICsgKHBvaW50c1swXS55ICsgY2VudGVyLnkpIC8gMiAtIDU7XG4gIH0gZWxzZSB7XG4gICAgY2FyZGluYWxpdHlQb3NpdGlvbi54ID0gTWF0aC5zaW4oYW5nbGUpICogZCArIChwb2ludHNbMF0ueCArIGNlbnRlci54KSAvIDI7XG4gICAgY2FyZGluYWxpdHlQb3NpdGlvbi55ID0gLU1hdGguY29zKGFuZ2xlKSAqIGQgKyAocG9pbnRzWzBdLnkgKyBjZW50ZXIueSkgLyAyO1xuICB9XG4gIHJldHVybiBjYXJkaW5hbGl0eVBvc2l0aW9uO1xufVxuZnVuY3Rpb24gZ2V0U3R5bGVzRnJvbUFycmF5KGFycikge1xuICBsZXQgc3R5bGUgPSBcIlwiO1xuICBsZXQgbGFiZWxTdHlsZSA9IFwiXCI7XG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiBhcnIpIHtcbiAgICBpZiAoZWxlbWVudCAhPT0gdm9pZCAwKSB7XG4gICAgICBpZiAoZWxlbWVudC5zdGFydHNXaXRoKFwiY29sb3I6XCIpIHx8IGVsZW1lbnQuc3RhcnRzV2l0aChcInRleHQtYWxpZ246XCIpKSB7XG4gICAgICAgIGxhYmVsU3R5bGUgPSBsYWJlbFN0eWxlICsgZWxlbWVudCArIFwiO1wiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3R5bGUgPSBzdHlsZSArIGVsZW1lbnQgKyBcIjtcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgc3R5bGUsIGxhYmVsU3R5bGUgfTtcbn1cbmxldCBjbnQgPSAwO1xuY29uc3QgZ2VuZXJhdGVJZCA9ICgpID0+IHtcbiAgY250Kys7XG4gIHJldHVybiBcImlkLVwiICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDEyKSArIFwiLVwiICsgY250O1xufTtcbmZ1bmN0aW9uIG1ha2VSYW5kb21IZXgobGVuZ3RoKSB7XG4gIGxldCByZXN1bHQgPSBcIlwiO1xuICBjb25zdCBjaGFyYWN0ZXJzID0gXCIwMTIzNDU2Nzg5YWJjZGVmXCI7XG4gIGNvbnN0IGNoYXJhY3RlcnNMZW5ndGggPSBjaGFyYWN0ZXJzLmxlbmd0aDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIHJlc3VsdCArPSBjaGFyYWN0ZXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzTGVuZ3RoKSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmNvbnN0IHJhbmRvbSA9IChvcHRpb25zKSA9PiB7XG4gIHJldHVybiBtYWtlUmFuZG9tSGV4KG9wdGlvbnMubGVuZ3RoKTtcbn07XG5jb25zdCBnZXRUZXh0T2JqID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgeDogMCxcbiAgICB5OiAwLFxuICAgIGZpbGw6IHZvaWQgMCxcbiAgICBhbmNob3I6IFwic3RhcnRcIixcbiAgICBzdHlsZTogXCIjNjY2XCIsXG4gICAgd2lkdGg6IDEwMCxcbiAgICBoZWlnaHQ6IDEwMCxcbiAgICB0ZXh0TWFyZ2luOiAwLFxuICAgIHJ4OiAwLFxuICAgIHJ5OiAwLFxuICAgIHZhbGlnbjogdm9pZCAwLFxuICAgIHRleHQ6IFwiXCJcbiAgfTtcbn07XG5jb25zdCBkcmF3U2ltcGxlVGV4dCA9IGZ1bmN0aW9uKGVsZW0sIHRleHREYXRhKSB7XG4gIGNvbnN0IG5UZXh0ID0gdGV4dERhdGEudGV4dC5yZXBsYWNlKGNvbW1vbiQxLmxpbmVCcmVha1JlZ2V4LCBcIiBcIik7XG4gIGNvbnN0IFssIF9mb250U2l6ZVB4XSA9IHBhcnNlRm9udFNpemUodGV4dERhdGEuZm9udFNpemUpO1xuICBjb25zdCB0ZXh0RWxlbSA9IGVsZW0uYXBwZW5kKFwidGV4dFwiKTtcbiAgdGV4dEVsZW0uYXR0cihcInhcIiwgdGV4dERhdGEueCk7XG4gIHRleHRFbGVtLmF0dHIoXCJ5XCIsIHRleHREYXRhLnkpO1xuICB0ZXh0RWxlbS5zdHlsZShcInRleHQtYW5jaG9yXCIsIHRleHREYXRhLmFuY2hvcik7XG4gIHRleHRFbGVtLnN0eWxlKFwiZm9udC1mYW1pbHlcIiwgdGV4dERhdGEuZm9udEZhbWlseSk7XG4gIHRleHRFbGVtLnN0eWxlKFwiZm9udC1zaXplXCIsIF9mb250U2l6ZVB4KTtcbiAgdGV4dEVsZW0uc3R5bGUoXCJmb250LXdlaWdodFwiLCB0ZXh0RGF0YS5mb250V2VpZ2h0KTtcbiAgdGV4dEVsZW0uYXR0cihcImZpbGxcIiwgdGV4dERhdGEuZmlsbCk7XG4gIGlmICh0ZXh0RGF0YS5jbGFzcyAhPT0gdm9pZCAwKSB7XG4gICAgdGV4dEVsZW0uYXR0cihcImNsYXNzXCIsIHRleHREYXRhLmNsYXNzKTtcbiAgfVxuICBjb25zdCBzcGFuID0gdGV4dEVsZW0uYXBwZW5kKFwidHNwYW5cIik7XG4gIHNwYW4uYXR0cihcInhcIiwgdGV4dERhdGEueCArIHRleHREYXRhLnRleHRNYXJnaW4gKiAyKTtcbiAgc3Bhbi5hdHRyKFwiZmlsbFwiLCB0ZXh0RGF0YS5maWxsKTtcbiAgc3Bhbi50ZXh0KG5UZXh0KTtcbiAgcmV0dXJuIHRleHRFbGVtO1xufTtcbmNvbnN0IHdyYXBMYWJlbCA9IG1lbW9pemUoXG4gIChsYWJlbCwgbWF4V2lkdGgsIGNvbmZpZzIpID0+IHtcbiAgICBpZiAoIWxhYmVsKSB7XG4gICAgICByZXR1cm4gbGFiZWw7XG4gICAgfVxuICAgIGNvbmZpZzIgPSBPYmplY3QuYXNzaWduKFxuICAgICAgeyBmb250U2l6ZTogMTIsIGZvbnRXZWlnaHQ6IDQwMCwgZm9udEZhbWlseTogXCJBcmlhbFwiLCBqb2luV2l0aDogXCI8YnIvPlwiIH0sXG4gICAgICBjb25maWcyXG4gICAgKTtcbiAgICBpZiAoY29tbW9uJDEubGluZUJyZWFrUmVnZXgudGVzdChsYWJlbCkpIHtcbiAgICAgIHJldHVybiBsYWJlbDtcbiAgICB9XG4gICAgY29uc3Qgd29yZHMgPSBsYWJlbC5zcGxpdChcIiBcIik7XG4gICAgY29uc3QgY29tcGxldGVkTGluZXMgPSBbXTtcbiAgICBsZXQgbmV4dExpbmUgPSBcIlwiO1xuICAgIHdvcmRzLmZvckVhY2goKHdvcmQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB3b3JkTGVuZ3RoID0gY2FsY3VsYXRlVGV4dFdpZHRoKGAke3dvcmR9IGAsIGNvbmZpZzIpO1xuICAgICAgY29uc3QgbmV4dExpbmVMZW5ndGggPSBjYWxjdWxhdGVUZXh0V2lkdGgobmV4dExpbmUsIGNvbmZpZzIpO1xuICAgICAgaWYgKHdvcmRMZW5ndGggPiBtYXhXaWR0aCkge1xuICAgICAgICBjb25zdCB7IGh5cGhlbmF0ZWRTdHJpbmdzLCByZW1haW5pbmdXb3JkIH0gPSBicmVha1N0cmluZyh3b3JkLCBtYXhXaWR0aCwgXCItXCIsIGNvbmZpZzIpO1xuICAgICAgICBjb21wbGV0ZWRMaW5lcy5wdXNoKG5leHRMaW5lLCAuLi5oeXBoZW5hdGVkU3RyaW5ncyk7XG4gICAgICAgIG5leHRMaW5lID0gcmVtYWluaW5nV29yZDtcbiAgICAgIH0gZWxzZSBpZiAobmV4dExpbmVMZW5ndGggKyB3b3JkTGVuZ3RoID49IG1heFdpZHRoKSB7XG4gICAgICAgIGNvbXBsZXRlZExpbmVzLnB1c2gobmV4dExpbmUpO1xuICAgICAgICBuZXh0TGluZSA9IHdvcmQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0TGluZSA9IFtuZXh0TGluZSwgd29yZF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuICAgICAgfVxuICAgICAgY29uc3QgY3VycmVudFdvcmQgPSBpbmRleCArIDE7XG4gICAgICBjb25zdCBpc0xhc3RXb3JkID0gY3VycmVudFdvcmQgPT09IHdvcmRzLmxlbmd0aDtcbiAgICAgIGlmIChpc0xhc3RXb3JkKSB7XG4gICAgICAgIGNvbXBsZXRlZExpbmVzLnB1c2gobmV4dExpbmUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjb21wbGV0ZWRMaW5lcy5maWx0ZXIoKGxpbmUpID0+IGxpbmUgIT09IFwiXCIpLmpvaW4oY29uZmlnMi5qb2luV2l0aCk7XG4gIH0sXG4gIChsYWJlbCwgbWF4V2lkdGgsIGNvbmZpZzIpID0+IGAke2xhYmVsfSR7bWF4V2lkdGh9JHtjb25maWcyLmZvbnRTaXplfSR7Y29uZmlnMi5mb250V2VpZ2h0fSR7Y29uZmlnMi5mb250RmFtaWx5fSR7Y29uZmlnMi5qb2luV2l0aH1gXG4pO1xuY29uc3QgYnJlYWtTdHJpbmcgPSBtZW1vaXplKFxuICAod29yZCwgbWF4V2lkdGgsIGh5cGhlbkNoYXJhY3RlciA9IFwiLVwiLCBjb25maWcyKSA9PiB7XG4gICAgY29uZmlnMiA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7IGZvbnRTaXplOiAxMiwgZm9udFdlaWdodDogNDAwLCBmb250RmFtaWx5OiBcIkFyaWFsXCIsIG1hcmdpbjogMCB9LFxuICAgICAgY29uZmlnMlxuICAgICk7XG4gICAgY29uc3QgY2hhcmFjdGVycyA9IFsuLi53b3JkXTtcbiAgICBjb25zdCBsaW5lcyA9IFtdO1xuICAgIGxldCBjdXJyZW50TGluZSA9IFwiXCI7XG4gICAgY2hhcmFjdGVycy5mb3JFYWNoKChjaGFyYWN0ZXIsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBuZXh0TGluZSA9IGAke2N1cnJlbnRMaW5lfSR7Y2hhcmFjdGVyfWA7XG4gICAgICBjb25zdCBsaW5lV2lkdGggPSBjYWxjdWxhdGVUZXh0V2lkdGgobmV4dExpbmUsIGNvbmZpZzIpO1xuICAgICAgaWYgKGxpbmVXaWR0aCA+PSBtYXhXaWR0aCkge1xuICAgICAgICBjb25zdCBjdXJyZW50Q2hhcmFjdGVyID0gaW5kZXggKyAxO1xuICAgICAgICBjb25zdCBpc0xhc3RMaW5lID0gY2hhcmFjdGVycy5sZW5ndGggPT09IGN1cnJlbnRDaGFyYWN0ZXI7XG4gICAgICAgIGNvbnN0IGh5cGhlbmF0ZWROZXh0TGluZSA9IGAke25leHRMaW5lfSR7aHlwaGVuQ2hhcmFjdGVyfWA7XG4gICAgICAgIGxpbmVzLnB1c2goaXNMYXN0TGluZSA/IG5leHRMaW5lIDogaHlwaGVuYXRlZE5leHRMaW5lKTtcbiAgICAgICAgY3VycmVudExpbmUgPSBcIlwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3VycmVudExpbmUgPSBuZXh0TGluZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4geyBoeXBoZW5hdGVkU3RyaW5nczogbGluZXMsIHJlbWFpbmluZ1dvcmQ6IGN1cnJlbnRMaW5lIH07XG4gIH0sXG4gICh3b3JkLCBtYXhXaWR0aCwgaHlwaGVuQ2hhcmFjdGVyID0gXCItXCIsIGNvbmZpZzIpID0+IGAke3dvcmR9JHttYXhXaWR0aH0ke2h5cGhlbkNoYXJhY3Rlcn0ke2NvbmZpZzIuZm9udFNpemV9JHtjb25maWcyLmZvbnRXZWlnaHR9JHtjb25maWcyLmZvbnRGYW1pbHl9YFxuKTtcbmZ1bmN0aW9uIGNhbGN1bGF0ZVRleHRIZWlnaHQodGV4dCwgY29uZmlnMikge1xuICByZXR1cm4gY2FsY3VsYXRlVGV4dERpbWVuc2lvbnModGV4dCwgY29uZmlnMikuaGVpZ2h0O1xufVxuZnVuY3Rpb24gY2FsY3VsYXRlVGV4dFdpZHRoKHRleHQsIGNvbmZpZzIpIHtcbiAgcmV0dXJuIGNhbGN1bGF0ZVRleHREaW1lbnNpb25zKHRleHQsIGNvbmZpZzIpLndpZHRoO1xufVxuY29uc3QgY2FsY3VsYXRlVGV4dERpbWVuc2lvbnMgPSBtZW1vaXplKFxuICAodGV4dCwgY29uZmlnMikgPT4ge1xuICAgIGNvbnN0IHsgZm9udFNpemUgPSAxMiwgZm9udEZhbWlseSA9IFwiQXJpYWxcIiwgZm9udFdlaWdodCA9IDQwMCB9ID0gY29uZmlnMjtcbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIHJldHVybiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfTtcbiAgICB9XG4gICAgY29uc3QgWywgX2ZvbnRTaXplUHhdID0gcGFyc2VGb250U2l6ZShmb250U2l6ZSk7XG4gICAgY29uc3QgZm9udEZhbWlsaWVzID0gW1wic2Fucy1zZXJpZlwiLCBmb250RmFtaWx5XTtcbiAgICBjb25zdCBsaW5lcyA9IHRleHQuc3BsaXQoY29tbW9uJDEubGluZUJyZWFrUmVnZXgpO1xuICAgIGNvbnN0IGRpbXMgPSBbXTtcbiAgICBjb25zdCBib2R5ID0gc2VsZWN0KFwiYm9keVwiKTtcbiAgICBpZiAoIWJvZHkucmVtb3ZlKSB7XG4gICAgICByZXR1cm4geyB3aWR0aDogMCwgaGVpZ2h0OiAwLCBsaW5lSGVpZ2h0OiAwIH07XG4gICAgfVxuICAgIGNvbnN0IGcgPSBib2R5LmFwcGVuZChcInN2Z1wiKTtcbiAgICBmb3IgKGNvbnN0IGZvbnRGYW1pbHkyIG9mIGZvbnRGYW1pbGllcykge1xuICAgICAgbGV0IGNIZWlnaHQgPSAwO1xuICAgICAgY29uc3QgZGltID0geyB3aWR0aDogMCwgaGVpZ2h0OiAwLCBsaW5lSGVpZ2h0OiAwIH07XG4gICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgY29uc3QgdGV4dE9iaiA9IGdldFRleHRPYmooKTtcbiAgICAgICAgdGV4dE9iai50ZXh0ID0gbGluZSB8fCBaRVJPX1dJRFRIX1NQQUNFO1xuICAgICAgICBjb25zdCB0ZXh0RWxlbSA9IGRyYXdTaW1wbGVUZXh0KGcsIHRleHRPYmopLnN0eWxlKFwiZm9udC1zaXplXCIsIF9mb250U2l6ZVB4KS5zdHlsZShcImZvbnQtd2VpZ2h0XCIsIGZvbnRXZWlnaHQpLnN0eWxlKFwiZm9udC1mYW1pbHlcIiwgZm9udEZhbWlseTIpO1xuICAgICAgICBjb25zdCBiQm94ID0gKHRleHRFbGVtLl9ncm91cHMgfHwgdGV4dEVsZW0pWzBdWzBdLmdldEJCb3goKTtcbiAgICAgICAgaWYgKGJCb3gud2lkdGggPT09IDAgJiYgYkJveC5oZWlnaHQgPT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzdmcgZWxlbWVudCBub3QgaW4gcmVuZGVyIHRyZWVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZGltLndpZHRoID0gTWF0aC5yb3VuZChNYXRoLm1heChkaW0ud2lkdGgsIGJCb3gud2lkdGgpKTtcbiAgICAgICAgY0hlaWdodCA9IE1hdGgucm91bmQoYkJveC5oZWlnaHQpO1xuICAgICAgICBkaW0uaGVpZ2h0ICs9IGNIZWlnaHQ7XG4gICAgICAgIGRpbS5saW5lSGVpZ2h0ID0gTWF0aC5yb3VuZChNYXRoLm1heChkaW0ubGluZUhlaWdodCwgY0hlaWdodCkpO1xuICAgICAgfVxuICAgICAgZGltcy5wdXNoKGRpbSk7XG4gICAgfVxuICAgIGcucmVtb3ZlKCk7XG4gICAgY29uc3QgaW5kZXggPSBpc05hTihkaW1zWzFdLmhlaWdodCkgfHwgaXNOYU4oZGltc1sxXS53aWR0aCkgfHwgaXNOYU4oZGltc1sxXS5saW5lSGVpZ2h0KSB8fCBkaW1zWzBdLmhlaWdodCA+IGRpbXNbMV0uaGVpZ2h0ICYmIGRpbXNbMF0ud2lkdGggPiBkaW1zWzFdLndpZHRoICYmIGRpbXNbMF0ubGluZUhlaWdodCA+IGRpbXNbMV0ubGluZUhlaWdodCA/IDAgOiAxO1xuICAgIHJldHVybiBkaW1zW2luZGV4XTtcbiAgfSxcbiAgKHRleHQsIGNvbmZpZzIpID0+IGAke3RleHR9JHtjb25maWcyLmZvbnRTaXplfSR7Y29uZmlnMi5mb250V2VpZ2h0fSR7Y29uZmlnMi5mb250RmFtaWx5fWBcbik7XG5jbGFzcyBJbml0SURHZW5lcmF0b3Ige1xuICBjb25zdHJ1Y3RvcihkZXRlcm1pbmlzdGljID0gZmFsc2UsIHNlZWQpIHtcbiAgICB0aGlzLmNvdW50ID0gMDtcbiAgICB0aGlzLmNvdW50ID0gc2VlZCA/IHNlZWQubGVuZ3RoIDogMDtcbiAgICB0aGlzLm5leHQgPSBkZXRlcm1pbmlzdGljID8gKCkgPT4gdGhpcy5jb3VudCsrIDogKCkgPT4gRGF0ZS5ub3coKTtcbiAgfVxufVxubGV0IGRlY29kZXI7XG5jb25zdCBlbnRpdHlEZWNvZGUgPSBmdW5jdGlvbihodG1sKSB7XG4gIGRlY29kZXIgPSBkZWNvZGVyIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gIGh0bWwgPSBlc2NhcGUoaHRtbCkucmVwbGFjZSgvJTI2L2csIFwiJlwiKS5yZXBsYWNlKC8lMjMvZywgXCIjXCIpLnJlcGxhY2UoLyUzQi9nLCBcIjtcIik7XG4gIGRlY29kZXIuaW5uZXJIVE1MID0gaHRtbDtcbiAgcmV0dXJuIHVuZXNjYXBlKGRlY29kZXIudGV4dENvbnRlbnQpO1xufTtcbmZ1bmN0aW9uIGlzRGV0YWlsZWRFcnJvcihlcnJvcikge1xuICByZXR1cm4gXCJzdHJcIiBpbiBlcnJvcjtcbn1cbmNvbnN0IGluc2VydFRpdGxlID0gKHBhcmVudCwgY3NzQ2xhc3MsIHRpdGxlVG9wTWFyZ2luLCB0aXRsZSkgPT4ge1xuICB2YXIgX2E7XG4gIGlmICghdGl0bGUpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgYm91bmRzID0gKF9hID0gcGFyZW50Lm5vZGUoKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmdldEJCb3goKTtcbiAgaWYgKCFib3VuZHMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgcGFyZW50LmFwcGVuZChcInRleHRcIikudGV4dCh0aXRsZSkuYXR0cihcInhcIiwgYm91bmRzLnggKyBib3VuZHMud2lkdGggLyAyKS5hdHRyKFwieVwiLCAtdGl0bGVUb3BNYXJnaW4pLmF0dHIoXCJjbGFzc1wiLCBjc3NDbGFzcyk7XG59O1xuY29uc3QgcGFyc2VGb250U2l6ZSA9IChmb250U2l6ZSkgPT4ge1xuICBpZiAodHlwZW9mIGZvbnRTaXplID09PSBcIm51bWJlclwiKSB7XG4gICAgcmV0dXJuIFtmb250U2l6ZSwgZm9udFNpemUgKyBcInB4XCJdO1xuICB9XG4gIGNvbnN0IGZvbnRTaXplTnVtYmVyID0gcGFyc2VJbnQoZm9udFNpemUgPz8gXCJcIiwgMTApO1xuICBpZiAoTnVtYmVyLmlzTmFOKGZvbnRTaXplTnVtYmVyKSkge1xuICAgIHJldHVybiBbdm9pZCAwLCB2b2lkIDBdO1xuICB9IGVsc2UgaWYgKGZvbnRTaXplID09PSBTdHJpbmcoZm9udFNpemVOdW1iZXIpKSB7XG4gICAgcmV0dXJuIFtmb250U2l6ZU51bWJlciwgZm9udFNpemUgKyBcInB4XCJdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbZm9udFNpemVOdW1iZXIsIGZvbnRTaXplXTtcbiAgfVxufTtcbmZ1bmN0aW9uIGNsZWFuQW5kTWVyZ2UoZGVmYXVsdERhdGEsIGRhdGEpIHtcbiAgcmV0dXJuIG1lcmdlJDEoe30sIGRlZmF1bHREYXRhLCBkYXRhKTtcbn1cbmNvbnN0IHV0aWxzID0ge1xuICBhc3NpZ25XaXRoRGVwdGg6IGFzc2lnbldpdGhEZXB0aCQxLFxuICB3cmFwTGFiZWwsXG4gIGNhbGN1bGF0ZVRleHRIZWlnaHQsXG4gIGNhbGN1bGF0ZVRleHRXaWR0aCxcbiAgY2FsY3VsYXRlVGV4dERpbWVuc2lvbnMsXG4gIGNsZWFuQW5kTWVyZ2UsXG4gIGRldGVjdEluaXQsXG4gIGRldGVjdERpcmVjdGl2ZSxcbiAgaXNTdWJzdHJpbmdJbkFycmF5LFxuICBpbnRlcnBvbGF0ZVRvQ3VydmUsXG4gIGNhbGNMYWJlbFBvc2l0aW9uLFxuICBjYWxjQ2FyZGluYWxpdHlQb3NpdGlvbixcbiAgY2FsY1Rlcm1pbmFsTGFiZWxQb3NpdGlvbixcbiAgZm9ybWF0VXJsLFxuICBnZXRTdHlsZXNGcm9tQXJyYXksXG4gIGdlbmVyYXRlSWQsXG4gIHJhbmRvbSxcbiAgcnVuRnVuYyxcbiAgZW50aXR5RGVjb2RlLFxuICBpbnNlcnRUaXRsZSxcbiAgcGFyc2VGb250U2l6ZSxcbiAgSW5pdElER2VuZXJhdG9yXG59O1xuY29uc3QgZW5jb2RlRW50aXRpZXMgPSBmdW5jdGlvbih0ZXh0KSB7XG4gIGxldCB0eHQgPSB0ZXh0O1xuICB0eHQgPSB0eHQucmVwbGFjZSgvc3R5bGUuKjpcXFMqIy4qOy9nLCBmdW5jdGlvbihzKSB7XG4gICAgcmV0dXJuIHMuc3Vic3RyaW5nKDAsIHMubGVuZ3RoIC0gMSk7XG4gIH0pO1xuICB0eHQgPSB0eHQucmVwbGFjZSgvY2xhc3NEZWYuKjpcXFMqIy4qOy9nLCBmdW5jdGlvbihzKSB7XG4gICAgcmV0dXJuIHMuc3Vic3RyaW5nKDAsIHMubGVuZ3RoIC0gMSk7XG4gIH0pO1xuICB0eHQgPSB0eHQucmVwbGFjZSgvI1xcdys7L2csIGZ1bmN0aW9uKHMpIHtcbiAgICBjb25zdCBpbm5lclR4dCA9IHMuc3Vic3RyaW5nKDEsIHMubGVuZ3RoIC0gMSk7XG4gICAgY29uc3QgaXNJbnQgPSAvXlxcKz9cXGQrJC8udGVzdChpbm5lclR4dCk7XG4gICAgaWYgKGlzSW50KSB7XG4gICAgICByZXR1cm4gXCLvrILCsMKwXCIgKyBpbm5lclR4dCArIFwiwrbDn1wiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCLvrILCsFwiICsgaW5uZXJUeHQgKyBcIsK2w59cIjtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gdHh0O1xufTtcbmNvbnN0IGRlY29kZUVudGl0aWVzID0gZnVuY3Rpb24odGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKC/vrILCsMKwL2csIFwiJiNcIikucmVwbGFjZSgv76yCwrAvZywgXCImXCIpLnJlcGxhY2UoL8K2w58vZywgXCI7XCIpO1xufTtcbmNvbnN0IHZlcnNpb24gPSBcIjEwLjkuMVwiO1xuY29uc3QgZGVmYXVsdENvbmZpZyQxID0gT2JqZWN0LmZyZWV6ZShkZWZhdWx0Q29uZmlnJDIpO1xubGV0IHNpdGVDb25maWcgPSBhc3NpZ25XaXRoRGVwdGgkMSh7fSwgZGVmYXVsdENvbmZpZyQxKTtcbmxldCBjb25maWdGcm9tSW5pdGlhbGl6ZTtcbmxldCBkaXJlY3RpdmVzID0gW107XG5sZXQgY3VycmVudENvbmZpZyA9IGFzc2lnbldpdGhEZXB0aCQxKHt9LCBkZWZhdWx0Q29uZmlnJDEpO1xuY29uc3QgdXBkYXRlQ3VycmVudENvbmZpZyA9IChzaXRlQ2ZnLCBfZGlyZWN0aXZlcykgPT4ge1xuICBsZXQgY2ZnID0gYXNzaWduV2l0aERlcHRoJDEoe30sIHNpdGVDZmcpO1xuICBsZXQgc3VtT2ZEaXJlY3RpdmVzID0ge307XG4gIGZvciAoY29uc3QgZCBvZiBfZGlyZWN0aXZlcykge1xuICAgIHNhbml0aXplKGQpO1xuICAgIHN1bU9mRGlyZWN0aXZlcyA9IGFzc2lnbldpdGhEZXB0aCQxKHN1bU9mRGlyZWN0aXZlcywgZCk7XG4gIH1cbiAgY2ZnID0gYXNzaWduV2l0aERlcHRoJDEoY2ZnLCBzdW1PZkRpcmVjdGl2ZXMpO1xuICBpZiAoc3VtT2ZEaXJlY3RpdmVzLnRoZW1lICYmIHN1bU9mRGlyZWN0aXZlcy50aGVtZSBpbiB0aGVtZSkge1xuICAgIGNvbnN0IHRtcENvbmZpZ0Zyb21Jbml0aWFsaXplID0gYXNzaWduV2l0aERlcHRoJDEoe30sIGNvbmZpZ0Zyb21Jbml0aWFsaXplKTtcbiAgICBjb25zdCB0aGVtZVZhcmlhYmxlcyA9IGFzc2lnbldpdGhEZXB0aCQxKFxuICAgICAgdG1wQ29uZmlnRnJvbUluaXRpYWxpemUudGhlbWVWYXJpYWJsZXMgfHwge30sXG4gICAgICBzdW1PZkRpcmVjdGl2ZXMudGhlbWVWYXJpYWJsZXNcbiAgICApO1xuICAgIGlmIChjZmcudGhlbWUgJiYgY2ZnLnRoZW1lIGluIHRoZW1lKSB7XG4gICAgICBjZmcudGhlbWVWYXJpYWJsZXMgPSB0aGVtZVtjZmcudGhlbWVdLmdldFRoZW1lVmFyaWFibGVzKHRoZW1lVmFyaWFibGVzKTtcbiAgICB9XG4gIH1cbiAgY3VycmVudENvbmZpZyA9IGNmZztcbiAgY2hlY2tDb25maWcoY3VycmVudENvbmZpZyk7XG4gIHJldHVybiBjdXJyZW50Q29uZmlnO1xufTtcbmNvbnN0IHNldFNpdGVDb25maWcgPSAoY29uZikgPT4ge1xuICBzaXRlQ29uZmlnID0gYXNzaWduV2l0aERlcHRoJDEoe30sIGRlZmF1bHRDb25maWckMSk7XG4gIHNpdGVDb25maWcgPSBhc3NpZ25XaXRoRGVwdGgkMShzaXRlQ29uZmlnLCBjb25mKTtcbiAgaWYgKGNvbmYudGhlbWUgJiYgdGhlbWVbY29uZi50aGVtZV0pIHtcbiAgICBzaXRlQ29uZmlnLnRoZW1lVmFyaWFibGVzID0gdGhlbWVbY29uZi50aGVtZV0uZ2V0VGhlbWVWYXJpYWJsZXMoY29uZi50aGVtZVZhcmlhYmxlcyk7XG4gIH1cbiAgdXBkYXRlQ3VycmVudENvbmZpZyhzaXRlQ29uZmlnLCBkaXJlY3RpdmVzKTtcbiAgcmV0dXJuIHNpdGVDb25maWc7XG59O1xuY29uc3Qgc2F2ZUNvbmZpZ0Zyb21Jbml0aWFsaXplID0gKGNvbmYpID0+IHtcbiAgY29uZmlnRnJvbUluaXRpYWxpemUgPSBhc3NpZ25XaXRoRGVwdGgkMSh7fSwgY29uZik7XG59O1xuY29uc3QgdXBkYXRlU2l0ZUNvbmZpZyA9IChjb25mKSA9PiB7XG4gIHNpdGVDb25maWcgPSBhc3NpZ25XaXRoRGVwdGgkMShzaXRlQ29uZmlnLCBjb25mKTtcbiAgdXBkYXRlQ3VycmVudENvbmZpZyhzaXRlQ29uZmlnLCBkaXJlY3RpdmVzKTtcbiAgcmV0dXJuIHNpdGVDb25maWc7XG59O1xuY29uc3QgZ2V0U2l0ZUNvbmZpZyA9ICgpID0+IHtcbiAgcmV0dXJuIGFzc2lnbldpdGhEZXB0aCQxKHt9LCBzaXRlQ29uZmlnKTtcbn07XG5jb25zdCBzZXRDb25maWckMSA9IChjb25mKSA9PiB7XG4gIGNoZWNrQ29uZmlnKGNvbmYpO1xuICBhc3NpZ25XaXRoRGVwdGgkMShjdXJyZW50Q29uZmlnLCBjb25mKTtcbiAgcmV0dXJuIGdldENvbmZpZyQxKCk7XG59O1xuY29uc3QgZ2V0Q29uZmlnJDEgPSAoKSA9PiB7XG4gIHJldHVybiBhc3NpZ25XaXRoRGVwdGgkMSh7fSwgY3VycmVudENvbmZpZyk7XG59O1xuY29uc3Qgc2FuaXRpemUgPSAob3B0aW9ucykgPT4ge1xuICBpZiAoIW9wdGlvbnMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgW1wic2VjdXJlXCIsIC4uLnNpdGVDb25maWcuc2VjdXJlID8/IFtdXS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoT2JqZWN0Lmhhc093bihvcHRpb25zLCBrZXkpKSB7XG4gICAgICBsb2ckMS5kZWJ1ZyhgRGVuaWVkIGF0dGVtcHQgdG8gbW9kaWZ5IGEgc2VjdXJlIGtleSAke2tleX1gLCBvcHRpb25zW2tleV0pO1xuICAgICAgZGVsZXRlIG9wdGlvbnNba2V5XTtcbiAgICB9XG4gIH0pO1xuICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoXCJfX1wiKSkge1xuICAgICAgZGVsZXRlIG9wdGlvbnNba2V5XTtcbiAgICB9XG4gIH0pO1xuICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnNba2V5XSA9PT0gXCJzdHJpbmdcIiAmJiAob3B0aW9uc1trZXldLmluY2x1ZGVzKFwiPFwiKSB8fCBvcHRpb25zW2tleV0uaW5jbHVkZXMoXCI+XCIpIHx8IG9wdGlvbnNba2V5XS5pbmNsdWRlcyhcInVybChkYXRhOlwiKSkpIHtcbiAgICAgIGRlbGV0ZSBvcHRpb25zW2tleV07XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb3B0aW9uc1trZXldID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBzYW5pdGl6ZShvcHRpb25zW2tleV0pO1xuICAgIH1cbiAgfSk7XG59O1xuY29uc3QgYWRkRGlyZWN0aXZlID0gKGRpcmVjdGl2ZSkgPT4ge1xuICBzYW5pdGl6ZURpcmVjdGl2ZShkaXJlY3RpdmUpO1xuICBpZiAoZGlyZWN0aXZlLmZvbnRGYW1pbHkgJiYgKCFkaXJlY3RpdmUudGhlbWVWYXJpYWJsZXMgfHwgIWRpcmVjdGl2ZS50aGVtZVZhcmlhYmxlcy5mb250RmFtaWx5KSkge1xuICAgIGRpcmVjdGl2ZS50aGVtZVZhcmlhYmxlcyA9IHsgZm9udEZhbWlseTogZGlyZWN0aXZlLmZvbnRGYW1pbHkgfTtcbiAgfVxuICBkaXJlY3RpdmVzLnB1c2goZGlyZWN0aXZlKTtcbiAgdXBkYXRlQ3VycmVudENvbmZpZyhzaXRlQ29uZmlnLCBkaXJlY3RpdmVzKTtcbn07XG5jb25zdCByZXNldCA9IChjb25maWcyID0gc2l0ZUNvbmZpZykgPT4ge1xuICBkaXJlY3RpdmVzID0gW107XG4gIHVwZGF0ZUN1cnJlbnRDb25maWcoY29uZmlnMiwgZGlyZWN0aXZlcyk7XG59O1xuY29uc3QgQ29uZmlnV2FybmluZyA9IHtcbiAgTEFaWV9MT0FEX0RFUFJFQ0FURUQ6IFwiVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBsYXp5TG9hZGVkRGlhZ3JhbXMgYW5kIGxvYWRFeHRlcm5hbERpYWdyYW1zQXRTdGFydHVwIGFyZSBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIHJlZ2lzdGVyRXh0ZXJuYWxEaWFncmFtcyBpbnN0ZWFkLlwiXG59O1xuY29uc3QgaXNzdWVkV2FybmluZ3MgPSB7fTtcbmNvbnN0IGlzc3VlV2FybmluZyA9ICh3YXJuaW5nKSA9PiB7XG4gIGlmIChpc3N1ZWRXYXJuaW5nc1t3YXJuaW5nXSkge1xuICAgIHJldHVybjtcbiAgfVxuICBsb2ckMS53YXJuKENvbmZpZ1dhcm5pbmdbd2FybmluZ10pO1xuICBpc3N1ZWRXYXJuaW5nc1t3YXJuaW5nXSA9IHRydWU7XG59O1xuY29uc3QgY2hlY2tDb25maWcgPSAoY29uZmlnMikgPT4ge1xuICBpZiAoIWNvbmZpZzIpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGNvbmZpZzIubGF6eUxvYWRlZERpYWdyYW1zIHx8IGNvbmZpZzIubG9hZEV4dGVybmFsRGlhZ3JhbXNBdFN0YXJ0dXApIHtcbiAgICBpc3N1ZVdhcm5pbmcoXCJMQVpZX0xPQURfREVQUkVDQVRFRFwiKTtcbiAgfVxufTtcbmNvbnN0IGlkJGwgPSBcImM0XCI7XG5jb25zdCBkZXRlY3RvciRsID0gKHR4dCkgPT4ge1xuICByZXR1cm4gL15cXHMqQzRDb250ZXh0fEM0Q29udGFpbmVyfEM0Q29tcG9uZW50fEM0RHluYW1pY3xDNERlcGxveW1lbnQvLnRlc3QodHh0KTtcbn07XG5jb25zdCBsb2FkZXIkbSA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgeyBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgaW1wb3J0KFwiLi9jNERpYWdyYW0tYWU3NjY2OTMuanNcIik7XG4gIHJldHVybiB7IGlkOiBpZCRsLCBkaWFncmFtOiBkaWFncmFtMiB9O1xufTtcbmNvbnN0IHBsdWdpbiRqID0ge1xuICBpZDogaWQkbCxcbiAgZGV0ZWN0b3I6IGRldGVjdG9yJGwsXG4gIGxvYWRlcjogbG9hZGVyJG1cbn07XG5jb25zdCBjNCA9IHBsdWdpbiRqO1xuY29uc3QgaWQkayA9IFwiZmxvd2NoYXJ0XCI7XG5jb25zdCBkZXRlY3RvciRrID0gKHR4dCwgY29uZmlnMikgPT4ge1xuICB2YXIgX2EsIF9iO1xuICBpZiAoKChfYSA9IGNvbmZpZzIgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmZpZzIuZmxvd2NoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2EuZGVmYXVsdFJlbmRlcmVyKSA9PT0gXCJkYWdyZS13cmFwcGVyXCIgfHwgKChfYiA9IGNvbmZpZzIgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmZpZzIuZmxvd2NoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2IuZGVmYXVsdFJlbmRlcmVyKSA9PT0gXCJlbGtcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gL15cXHMqZ3JhcGgvLnRlc3QodHh0KTtcbn07XG5jb25zdCBsb2FkZXIkbCA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgeyBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgaW1wb3J0KFwiLi9mbG93RGlhZ3JhbS1iMjIyZTE1YS5qc1wiKTtcbiAgcmV0dXJuIHsgaWQ6IGlkJGssIGRpYWdyYW06IGRpYWdyYW0yIH07XG59O1xuY29uc3QgcGx1Z2luJGkgPSB7XG4gIGlkOiBpZCRrLFxuICBkZXRlY3RvcjogZGV0ZWN0b3IkayxcbiAgbG9hZGVyOiBsb2FkZXIkbFxufTtcbmNvbnN0IGZsb3djaGFydCA9IHBsdWdpbiRpO1xuY29uc3QgaWQkaiA9IFwiZmxvd2NoYXJ0LXYyXCI7XG5jb25zdCBkZXRlY3RvciRqID0gKHR4dCwgY29uZmlnMikgPT4ge1xuICB2YXIgX2EsIF9iLCBfYztcbiAgaWYgKCgoX2EgPSBjb25maWcyID09IG51bGwgPyB2b2lkIDAgOiBjb25maWcyLmZsb3djaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmRlZmF1bHRSZW5kZXJlcikgPT09IFwiZGFncmUtZDNcIiB8fCAoKF9iID0gY29uZmlnMiA9PSBudWxsID8gdm9pZCAwIDogY29uZmlnMi5mbG93Y2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYi5kZWZhdWx0UmVuZGVyZXIpID09PSBcImVsa1wiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICgvXlxccypncmFwaC8udGVzdCh0eHQpICYmICgoX2MgPSBjb25maWcyID09IG51bGwgPyB2b2lkIDAgOiBjb25maWcyLmZsb3djaGFydCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jLmRlZmF1bHRSZW5kZXJlcikgPT09IFwiZGFncmUtd3JhcHBlclwiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIC9eXFxzKmZsb3djaGFydC8udGVzdCh0eHQpO1xufTtcbmNvbnN0IGxvYWRlciRrID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7IGRpYWdyYW06IGRpYWdyYW0yIH0gPSBhd2FpdCBpbXBvcnQoXCIuL2Zsb3dEaWFncmFtLXYyLTEzMzI5ZGM3LmpzXCIpO1xuICByZXR1cm4geyBpZDogaWQkaiwgZGlhZ3JhbTogZGlhZ3JhbTIgfTtcbn07XG5jb25zdCBwbHVnaW4kaCA9IHtcbiAgaWQ6IGlkJGosXG4gIGRldGVjdG9yOiBkZXRlY3RvciRqLFxuICBsb2FkZXI6IGxvYWRlciRrXG59O1xuY29uc3QgZmxvd2NoYXJ0VjIgPSBwbHVnaW4kaDtcbmNvbnN0IGlkJGkgPSBcImVyXCI7XG5jb25zdCBkZXRlY3RvciRpID0gKHR4dCkgPT4ge1xuICByZXR1cm4gL15cXHMqZXJEaWFncmFtLy50ZXN0KHR4dCk7XG59O1xuY29uc3QgbG9hZGVyJGogPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHsgZGlhZ3JhbTogZGlhZ3JhbTIgfSA9IGF3YWl0IGltcG9ydChcIi4vZXJEaWFncmFtLTA5ZDFjMTVmLmpzXCIpO1xuICByZXR1cm4geyBpZDogaWQkaSwgZGlhZ3JhbTogZGlhZ3JhbTIgfTtcbn07XG5jb25zdCBwbHVnaW4kZyA9IHtcbiAgaWQ6IGlkJGksXG4gIGRldGVjdG9yOiBkZXRlY3RvciRpLFxuICBsb2FkZXI6IGxvYWRlciRqXG59O1xuY29uc3QgZXIgPSBwbHVnaW4kZztcbmNvbnN0IGlkJGggPSBcImdpdEdyYXBoXCI7XG5jb25zdCBkZXRlY3RvciRoID0gKHR4dCkgPT4ge1xuICByZXR1cm4gL15cXHMqZ2l0R3JhcGgvLnRlc3QodHh0KTtcbn07XG5jb25zdCBsb2FkZXIkaSA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgeyBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgaW1wb3J0KFwiLi9naXRHcmFwaERpYWdyYW0tOTQyZTYyZmUuanNcIik7XG4gIHJldHVybiB7IGlkOiBpZCRoLCBkaWFncmFtOiBkaWFncmFtMiB9O1xufTtcbmNvbnN0IHBsdWdpbiRmID0ge1xuICBpZDogaWQkaCxcbiAgZGV0ZWN0b3I6IGRldGVjdG9yJGgsXG4gIGxvYWRlcjogbG9hZGVyJGlcbn07XG5jb25zdCBnaXQgPSBwbHVnaW4kZjtcbmNvbnN0IGlkJGcgPSBcImdhbnR0XCI7XG5jb25zdCBkZXRlY3RvciRnID0gKHR4dCkgPT4ge1xuICByZXR1cm4gL15cXHMqZ2FudHQvLnRlc3QodHh0KTtcbn07XG5jb25zdCBsb2FkZXIkaCA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgeyBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgaW1wb3J0KFwiLi9nYW50dERpYWdyYW0tYjYyYzc5M2UuanNcIik7XG4gIHJldHVybiB7IGlkOiBpZCRnLCBkaWFncmFtOiBkaWFncmFtMiB9O1xufTtcbmNvbnN0IHBsdWdpbiRlID0ge1xuICBpZDogaWQkZyxcbiAgZGV0ZWN0b3I6IGRldGVjdG9yJGcsXG4gIGxvYWRlcjogbG9hZGVyJGhcbn07XG5jb25zdCBnYW50dCA9IHBsdWdpbiRlO1xuY29uc3QgaWQkZiA9IFwiaW5mb1wiO1xuY29uc3QgZGV0ZWN0b3IkZiA9ICh0eHQpID0+IHtcbiAgcmV0dXJuIC9eXFxzKmluZm8vLnRlc3QodHh0KTtcbn07XG5jb25zdCBsb2FkZXIkZyA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgeyBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgaW1wb3J0KFwiLi9pbmZvRGlhZ3JhbS05NGNkMjMyZi5qc1wiKTtcbiAgcmV0dXJuIHsgaWQ6IGlkJGYsIGRpYWdyYW06IGRpYWdyYW0yIH07XG59O1xuY29uc3QgaW5mbyA9IHtcbiAgaWQ6IGlkJGYsXG4gIGRldGVjdG9yOiBkZXRlY3RvciRmLFxuICBsb2FkZXI6IGxvYWRlciRnXG59O1xuY29uc3QgaWQkZSA9IFwicGllXCI7XG5jb25zdCBkZXRlY3RvciRlID0gKHR4dCkgPT4ge1xuICByZXR1cm4gL15cXHMqcGllLy50ZXN0KHR4dCk7XG59O1xuY29uc3QgbG9hZGVyJGYgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHsgZGlhZ3JhbTogZGlhZ3JhbTIgfSA9IGF3YWl0IGltcG9ydChcIi4vcGllRGlhZ3JhbS1iYjFkMTllNS5qc1wiKTtcbiAgcmV0dXJuIHsgaWQ6IGlkJGUsIGRpYWdyYW06IGRpYWdyYW0yIH07XG59O1xuY29uc3QgcGllID0ge1xuICBpZDogaWQkZSxcbiAgZGV0ZWN0b3I6IGRldGVjdG9yJGUsXG4gIGxvYWRlcjogbG9hZGVyJGZcbn07XG5jb25zdCBpZCRkID0gXCJxdWFkcmFudENoYXJ0XCI7XG5jb25zdCBkZXRlY3RvciRkID0gKHR4dCkgPT4ge1xuICByZXR1cm4gL15cXHMqcXVhZHJhbnRDaGFydC8udGVzdCh0eHQpO1xufTtcbmNvbnN0IGxvYWRlciRlID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7IGRpYWdyYW06IGRpYWdyYW0yIH0gPSBhd2FpdCBpbXBvcnQoXCIuL3F1YWRyYW50RGlhZ3JhbS1jNzU5YTQ3Mi5qc1wiKTtcbiAgcmV0dXJuIHsgaWQ6IGlkJGQsIGRpYWdyYW06IGRpYWdyYW0yIH07XG59O1xuY29uc3QgcGx1Z2luJGQgPSB7XG4gIGlkOiBpZCRkLFxuICBkZXRlY3RvcjogZGV0ZWN0b3IkZCxcbiAgbG9hZGVyOiBsb2FkZXIkZVxufTtcbmNvbnN0IHF1YWRyYW50Q2hhcnQgPSBwbHVnaW4kZDtcbmNvbnN0IGlkJGMgPSBcInh5Y2hhcnRcIjtcbmNvbnN0IGRldGVjdG9yJGMgPSAodHh0KSA9PiB7XG4gIHJldHVybiAvXlxccyp4eWNoYXJ0LWJldGEvLnRlc3QodHh0KTtcbn07XG5jb25zdCBsb2FkZXIkZCA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgeyBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgaW1wb3J0KFwiLi94eWNoYXJ0RGlhZ3JhbS1mMTFmNTBhNi5qc1wiKTtcbiAgcmV0dXJuIHsgaWQ6IGlkJGMsIGRpYWdyYW06IGRpYWdyYW0yIH07XG59O1xuY29uc3QgcGx1Z2luJGMgPSB7XG4gIGlkOiBpZCRjLFxuICBkZXRlY3RvcjogZGV0ZWN0b3IkYyxcbiAgbG9hZGVyOiBsb2FkZXIkZFxufTtcbmNvbnN0IHh5Y2hhcnQgPSBwbHVnaW4kYztcbmNvbnN0IGlkJGIgPSBcInJlcXVpcmVtZW50XCI7XG5jb25zdCBkZXRlY3RvciRiID0gKHR4dCkgPT4ge1xuICByZXR1cm4gL15cXHMqcmVxdWlyZW1lbnQoRGlhZ3JhbSk/Ly50ZXN0KHR4dCk7XG59O1xuY29uc3QgbG9hZGVyJGMgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHsgZGlhZ3JhbTogZGlhZ3JhbTIgfSA9IGF3YWl0IGltcG9ydChcIi4vcmVxdWlyZW1lbnREaWFncmFtLTg3MjUzZDY0LmpzXCIpO1xuICByZXR1cm4geyBpZDogaWQkYiwgZGlhZ3JhbTogZGlhZ3JhbTIgfTtcbn07XG5jb25zdCBwbHVnaW4kYiA9IHtcbiAgaWQ6IGlkJGIsXG4gIGRldGVjdG9yOiBkZXRlY3RvciRiLFxuICBsb2FkZXI6IGxvYWRlciRjXG59O1xuY29uc3QgcmVxdWlyZW1lbnQgPSBwbHVnaW4kYjtcbmNvbnN0IGlkJGEgPSBcInNlcXVlbmNlXCI7XG5jb25zdCBkZXRlY3RvciRhID0gKHR4dCkgPT4ge1xuICByZXR1cm4gL15cXHMqc2VxdWVuY2VEaWFncmFtLy50ZXN0KHR4dCk7XG59O1xuY29uc3QgbG9hZGVyJGIgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHsgZGlhZ3JhbTogZGlhZ3JhbTIgfSA9IGF3YWl0IGltcG9ydChcIi4vc2VxdWVuY2VEaWFncmFtLTY4OTRmMjgzLmpzXCIpO1xuICByZXR1cm4geyBpZDogaWQkYSwgZGlhZ3JhbTogZGlhZ3JhbTIgfTtcbn07XG5jb25zdCBwbHVnaW4kYSA9IHtcbiAgaWQ6IGlkJGEsXG4gIGRldGVjdG9yOiBkZXRlY3RvciRhLFxuICBsb2FkZXI6IGxvYWRlciRiXG59O1xuY29uc3Qgc2VxdWVuY2UgPSBwbHVnaW4kYTtcbmNvbnN0IGlkJDkgPSBcImNsYXNzXCI7XG5jb25zdCBkZXRlY3RvciQ5ID0gKHR4dCwgY29uZmlnMikgPT4ge1xuICB2YXIgX2E7XG4gIGlmICgoKF9hID0gY29uZmlnMiA9PSBudWxsID8gdm9pZCAwIDogY29uZmlnMi5jbGFzcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmRlZmF1bHRSZW5kZXJlcikgPT09IFwiZGFncmUtd3JhcHBlclwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiAvXlxccypjbGFzc0RpYWdyYW0vLnRlc3QodHh0KTtcbn07XG5jb25zdCBsb2FkZXIkYSA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgeyBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgaW1wb3J0KFwiLi9jbGFzc0RpYWdyYW0tZmI1NGQyYTAuanNcIik7XG4gIHJldHVybiB7IGlkOiBpZCQ5LCBkaWFncmFtOiBkaWFncmFtMiB9O1xufTtcbmNvbnN0IHBsdWdpbiQ5ID0ge1xuICBpZDogaWQkOSxcbiAgZGV0ZWN0b3I6IGRldGVjdG9yJDksXG4gIGxvYWRlcjogbG9hZGVyJGFcbn07XG5jb25zdCBjbGFzc0RpYWdyYW0gPSBwbHVnaW4kOTtcbmNvbnN0IGlkJDggPSBcImNsYXNzRGlhZ3JhbVwiO1xuY29uc3QgZGV0ZWN0b3IkOCA9ICh0eHQsIGNvbmZpZzIpID0+IHtcbiAgdmFyIF9hO1xuICBpZiAoL15cXHMqY2xhc3NEaWFncmFtLy50ZXN0KHR4dCkgJiYgKChfYSA9IGNvbmZpZzIgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmZpZzIuY2xhc3MpID09IG51bGwgPyB2b2lkIDAgOiBfYS5kZWZhdWx0UmVuZGVyZXIpID09PSBcImRhZ3JlLXdyYXBwZXJcIikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiAvXlxccypjbGFzc0RpYWdyYW0tdjIvLnRlc3QodHh0KTtcbn07XG5jb25zdCBsb2FkZXIkOSA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgeyBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgaW1wb3J0KFwiLi9jbGFzc0RpYWdyYW0tdjItYTJiNzM4YWQuanNcIik7XG4gIHJldHVybiB7IGlkOiBpZCQ4LCBkaWFncmFtOiBkaWFncmFtMiB9O1xufTtcbmNvbnN0IHBsdWdpbiQ4ID0ge1xuICBpZDogaWQkOCxcbiAgZGV0ZWN0b3I6IGRldGVjdG9yJDgsXG4gIGxvYWRlcjogbG9hZGVyJDlcbn07XG5jb25zdCBjbGFzc0RpYWdyYW1WMiA9IHBsdWdpbiQ4O1xuY29uc3QgaWQkNyA9IFwic3RhdGVcIjtcbmNvbnN0IGRldGVjdG9yJDcgPSAodHh0LCBjb25maWcyKSA9PiB7XG4gIHZhciBfYTtcbiAgaWYgKCgoX2EgPSBjb25maWcyID09IG51bGwgPyB2b2lkIDAgOiBjb25maWcyLnN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX2EuZGVmYXVsdFJlbmRlcmVyKSA9PT0gXCJkYWdyZS13cmFwcGVyXCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIC9eXFxzKnN0YXRlRGlhZ3JhbS8udGVzdCh0eHQpO1xufTtcbmNvbnN0IGxvYWRlciQ4ID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7IGRpYWdyYW06IGRpYWdyYW0yIH0gPSBhd2FpdCBpbXBvcnQoXCIuL3N0YXRlRGlhZ3JhbS01ZGVlOTQwZC5qc1wiKTtcbiAgcmV0dXJuIHsgaWQ6IGlkJDcsIGRpYWdyYW06IGRpYWdyYW0yIH07XG59O1xuY29uc3QgcGx1Z2luJDcgPSB7XG4gIGlkOiBpZCQ3LFxuICBkZXRlY3RvcjogZGV0ZWN0b3IkNyxcbiAgbG9hZGVyOiBsb2FkZXIkOFxufTtcbmNvbnN0IHN0YXRlID0gcGx1Z2luJDc7XG5jb25zdCBpZCQ2ID0gXCJzdGF0ZURpYWdyYW1cIjtcbmNvbnN0IGRldGVjdG9yJDYgPSAodHh0LCBjb25maWcyKSA9PiB7XG4gIHZhciBfYTtcbiAgaWYgKC9eXFxzKnN0YXRlRGlhZ3JhbS12Mi8udGVzdCh0eHQpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKC9eXFxzKnN0YXRlRGlhZ3JhbS8udGVzdCh0eHQpICYmICgoX2EgPSBjb25maWcyID09IG51bGwgPyB2b2lkIDAgOiBjb25maWcyLnN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX2EuZGVmYXVsdFJlbmRlcmVyKSA9PT0gXCJkYWdyZS13cmFwcGVyXCIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59O1xuY29uc3QgbG9hZGVyJDcgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHsgZGlhZ3JhbTogZGlhZ3JhbTIgfSA9IGF3YWl0IGltcG9ydChcIi4vc3RhdGVEaWFncmFtLXYyLTE5OTJjYWRhLmpzXCIpO1xuICByZXR1cm4geyBpZDogaWQkNiwgZGlhZ3JhbTogZGlhZ3JhbTIgfTtcbn07XG5jb25zdCBwbHVnaW4kNiA9IHtcbiAgaWQ6IGlkJDYsXG4gIGRldGVjdG9yOiBkZXRlY3RvciQ2LFxuICBsb2FkZXI6IGxvYWRlciQ3XG59O1xuY29uc3Qgc3RhdGVWMiA9IHBsdWdpbiQ2O1xuY29uc3QgaWQkNSA9IFwiam91cm5leVwiO1xuY29uc3QgZGV0ZWN0b3IkNSA9ICh0eHQpID0+IHtcbiAgcmV0dXJuIC9eXFxzKmpvdXJuZXkvLnRlc3QodHh0KTtcbn07XG5jb25zdCBsb2FkZXIkNiA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgeyBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgaW1wb3J0KFwiLi9qb3VybmV5RGlhZ3JhbS02NjI1YjQ1Ni5qc1wiKTtcbiAgcmV0dXJuIHsgaWQ6IGlkJDUsIGRpYWdyYW06IGRpYWdyYW0yIH07XG59O1xuY29uc3QgcGx1Z2luJDUgPSB7XG4gIGlkOiBpZCQ1LFxuICBkZXRlY3RvcjogZGV0ZWN0b3IkNSxcbiAgbG9hZGVyOiBsb2FkZXIkNlxufTtcbmNvbnN0IGpvdXJuZXkgPSBwbHVnaW4kNTtcbmNvbnN0IGQzQXR0cnMgPSBmdW5jdGlvbihkM0VsZW0sIGF0dHJzKSB7XG4gIGZvciAobGV0IGF0dHIgb2YgYXR0cnMpIHtcbiAgICBkM0VsZW0uYXR0cihhdHRyWzBdLCBhdHRyWzFdKTtcbiAgfVxufTtcbmNvbnN0IGNhbGN1bGF0ZVN2Z1NpemVBdHRycyA9IGZ1bmN0aW9uKGhlaWdodCwgd2lkdGgsIHVzZU1heFdpZHRoKSB7XG4gIGxldCBhdHRycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gIGlmICh1c2VNYXhXaWR0aCkge1xuICAgIGF0dHJzLnNldChcIndpZHRoXCIsIFwiMTAwJVwiKTtcbiAgICBhdHRycy5zZXQoXCJzdHlsZVwiLCBgbWF4LXdpZHRoOiAke3dpZHRofXB4O2ApO1xuICB9IGVsc2Uge1xuICAgIGF0dHJzLnNldChcImhlaWdodFwiLCBoZWlnaHQpO1xuICAgIGF0dHJzLnNldChcIndpZHRoXCIsIHdpZHRoKTtcbiAgfVxuICByZXR1cm4gYXR0cnM7XG59O1xuY29uc3QgY29uZmlndXJlU3ZnU2l6ZSA9IGZ1bmN0aW9uKHN2Z0VsZW0sIGhlaWdodCwgd2lkdGgsIHVzZU1heFdpZHRoKSB7XG4gIGNvbnN0IGF0dHJzID0gY2FsY3VsYXRlU3ZnU2l6ZUF0dHJzKGhlaWdodCwgd2lkdGgsIHVzZU1heFdpZHRoKTtcbiAgZDNBdHRycyhzdmdFbGVtLCBhdHRycyk7XG59O1xuY29uc3Qgc2V0dXBHcmFwaFZpZXdib3gkMSA9IGZ1bmN0aW9uKGdyYXBoLCBzdmdFbGVtLCBwYWRkaW5nLCB1c2VNYXhXaWR0aCkge1xuICBjb25zdCBzdmdCb3VuZHMgPSBzdmdFbGVtLm5vZGUoKS5nZXRCQm94KCk7XG4gIGNvbnN0IHNXaWR0aCA9IHN2Z0JvdW5kcy53aWR0aDtcbiAgY29uc3Qgc0hlaWdodCA9IHN2Z0JvdW5kcy5oZWlnaHQ7XG4gIGxvZyQxLmluZm8oYFNWRyBib3VuZHM6ICR7c1dpZHRofXgke3NIZWlnaHR9YCwgc3ZnQm91bmRzKTtcbiAgbGV0IHdpZHRoID0gMDtcbiAgbGV0IGhlaWdodCA9IDA7XG4gIGxvZyQxLmluZm8oYEdyYXBoIGJvdW5kczogJHt3aWR0aH14JHtoZWlnaHR9YCwgZ3JhcGgpO1xuICB3aWR0aCA9IHNXaWR0aCArIHBhZGRpbmcgKiAyO1xuICBoZWlnaHQgPSBzSGVpZ2h0ICsgcGFkZGluZyAqIDI7XG4gIGxvZyQxLmluZm8oYENhbGN1bGF0ZWQgYm91bmRzOiAke3dpZHRofXgke2hlaWdodH1gKTtcbiAgY29uZmlndXJlU3ZnU2l6ZShzdmdFbGVtLCBoZWlnaHQsIHdpZHRoLCB1c2VNYXhXaWR0aCk7XG4gIGNvbnN0IHZCb3ggPSBgJHtzdmdCb3VuZHMueCAtIHBhZGRpbmd9ICR7c3ZnQm91bmRzLnkgLSBwYWRkaW5nfSAke3N2Z0JvdW5kcy53aWR0aCArIDIgKiBwYWRkaW5nfSAke3N2Z0JvdW5kcy5oZWlnaHQgKyAyICogcGFkZGluZ31gO1xuICBzdmdFbGVtLmF0dHIoXCJ2aWV3Qm94XCIsIHZCb3gpO1xufTtcbmNvbnN0IHRoZW1lcyA9IHt9O1xuY29uc3QgZ2V0U3R5bGVzID0gKHR5cGUyLCB1c2VyU3R5bGVzLCBvcHRpb25zKSA9PiB7XG4gIGxldCBkaWFncmFtU3R5bGVzID0gXCJcIjtcbiAgaWYgKHR5cGUyIGluIHRoZW1lcyAmJiB0aGVtZXNbdHlwZTJdKSB7XG4gICAgZGlhZ3JhbVN0eWxlcyA9IHRoZW1lc1t0eXBlMl0ob3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgbG9nJDEud2FybihgTm8gdGhlbWUgZm91bmQgZm9yICR7dHlwZTJ9YCk7XG4gIH1cbiAgcmV0dXJuIGAgJiB7XG4gICAgZm9udC1mYW1pbHk6ICR7b3B0aW9ucy5mb250RmFtaWx5fTtcbiAgICBmb250LXNpemU6ICR7b3B0aW9ucy5mb250U2l6ZX07XG4gICAgZmlsbDogJHtvcHRpb25zLnRleHRDb2xvcn1cbiAgfVxuXG4gIC8qIENsYXNzZXMgY29tbW9uIGZvciBtdWx0aXBsZSBkaWFncmFtcyAqL1xuXG4gICYgLmVycm9yLWljb24ge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5lcnJvckJrZ0NvbG9yfTtcbiAgfVxuICAmIC5lcnJvci10ZXh0IHtcbiAgICBmaWxsOiAke29wdGlvbnMuZXJyb3JUZXh0Q29sb3J9O1xuICAgIHN0cm9rZTogJHtvcHRpb25zLmVycm9yVGV4dENvbG9yfTtcbiAgfVxuXG4gICYgLmVkZ2UtdGhpY2tuZXNzLW5vcm1hbCB7XG4gICAgc3Ryb2tlLXdpZHRoOiAycHg7XG4gIH1cbiAgJiAuZWRnZS10aGlja25lc3MtdGhpY2sge1xuICAgIHN0cm9rZS13aWR0aDogMy41cHhcbiAgfVxuICAmIC5lZGdlLXBhdHRlcm4tc29saWQge1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDA7XG4gIH1cblxuICAmIC5lZGdlLXBhdHRlcm4tZGFzaGVke1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDM7XG4gIH1cbiAgLmVkZ2UtcGF0dGVybi1kb3R0ZWQge1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDI7XG4gIH1cblxuICAmIC5tYXJrZXIge1xuICAgIGZpbGw6ICR7b3B0aW9ucy5saW5lQ29sb3J9O1xuICAgIHN0cm9rZTogJHtvcHRpb25zLmxpbmVDb2xvcn07XG4gIH1cbiAgJiAubWFya2VyLmNyb3NzIHtcbiAgICBzdHJva2U6ICR7b3B0aW9ucy5saW5lQ29sb3J9O1xuICB9XG5cbiAgJiBzdmcge1xuICAgIGZvbnQtZmFtaWx5OiAke29wdGlvbnMuZm9udEZhbWlseX07XG4gICAgZm9udC1zaXplOiAke29wdGlvbnMuZm9udFNpemV9O1xuICB9XG5cbiAgJHtkaWFncmFtU3R5bGVzfVxuXG4gICR7dXNlclN0eWxlc31cbmA7XG59O1xuY29uc3QgYWRkU3R5bGVzRm9yRGlhZ3JhbSA9ICh0eXBlMiwgZGlhZ3JhbVRoZW1lKSA9PiB7XG4gIGlmIChkaWFncmFtVGhlbWUgIT09IHZvaWQgMCkge1xuICAgIHRoZW1lc1t0eXBlMl0gPSBkaWFncmFtVGhlbWU7XG4gIH1cbn07XG5jb25zdCBnZXRTdHlsZXMkMSA9IGdldFN0eWxlcztcbmxldCBhY2NUaXRsZSA9IFwiXCI7XG5sZXQgZGlhZ3JhbVRpdGxlID0gXCJcIjtcbmxldCBhY2NEZXNjcmlwdGlvbiA9IFwiXCI7XG5jb25zdCBzYW5pdGl6ZVRleHQkMSA9ICh0eHQpID0+IHNhbml0aXplVGV4dCQyKHR4dCwgZ2V0Q29uZmlnJDEoKSk7XG5jb25zdCBjbGVhciA9ICgpID0+IHtcbiAgYWNjVGl0bGUgPSBcIlwiO1xuICBhY2NEZXNjcmlwdGlvbiA9IFwiXCI7XG4gIGRpYWdyYW1UaXRsZSA9IFwiXCI7XG59O1xuY29uc3Qgc2V0QWNjVGl0bGUgPSAodHh0KSA9PiB7XG4gIGFjY1RpdGxlID0gc2FuaXRpemVUZXh0JDEodHh0KS5yZXBsYWNlKC9eXFxzKy9nLCBcIlwiKTtcbn07XG5jb25zdCBnZXRBY2NUaXRsZSA9ICgpID0+IGFjY1RpdGxlO1xuY29uc3Qgc2V0QWNjRGVzY3JpcHRpb24gPSAodHh0KSA9PiB7XG4gIGFjY0Rlc2NyaXB0aW9uID0gc2FuaXRpemVUZXh0JDEodHh0KS5yZXBsYWNlKC9cXG5cXHMrL2csIFwiXFxuXCIpO1xufTtcbmNvbnN0IGdldEFjY0Rlc2NyaXB0aW9uID0gKCkgPT4gYWNjRGVzY3JpcHRpb247XG5jb25zdCBzZXREaWFncmFtVGl0bGUgPSAodHh0KSA9PiB7XG4gIGRpYWdyYW1UaXRsZSA9IHNhbml0aXplVGV4dCQxKHR4dCk7XG59O1xuY29uc3QgZ2V0RGlhZ3JhbVRpdGxlID0gKCkgPT4gZGlhZ3JhbVRpdGxlO1xuY29uc3QgY29tbW9uRGIgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmZyZWV6ZSgvKiBAX19QVVJFX18gKi8gT2JqZWN0LmRlZmluZVByb3BlcnR5KHtcbiAgX19wcm90b19fOiBudWxsLFxuICBjbGVhcixcbiAgZ2V0QWNjRGVzY3JpcHRpb24sXG4gIGdldEFjY1RpdGxlLFxuICBnZXREaWFncmFtVGl0bGUsXG4gIHNldEFjY0Rlc2NyaXB0aW9uLFxuICBzZXRBY2NUaXRsZSxcbiAgc2V0RGlhZ3JhbVRpdGxlXG59LCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6IFwiTW9kdWxlXCIgfSkpO1xuY29uc3QgbG9nID0gbG9nJDE7XG5jb25zdCBzZXRMb2dMZXZlbCA9IHNldExvZ0xldmVsJDE7XG5jb25zdCBnZXRDb25maWcgPSBnZXRDb25maWckMTtcbmNvbnN0IHNldENvbmZpZyA9IHNldENvbmZpZyQxO1xuY29uc3QgZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWckMTtcbmNvbnN0IHNhbml0aXplVGV4dCA9ICh0ZXh0KSA9PiBzYW5pdGl6ZVRleHQkMih0ZXh0LCBnZXRDb25maWcoKSk7XG5jb25zdCBzZXR1cEdyYXBoVmlld2JveCA9IHNldHVwR3JhcGhWaWV3Ym94JDE7XG5jb25zdCBnZXRDb21tb25EYiA9ICgpID0+IHtcbiAgcmV0dXJuIGNvbW1vbkRiO1xufTtcbmNvbnN0IGRpYWdyYW1zID0ge307XG5jb25zdCByZWdpc3RlckRpYWdyYW0gPSAoaWQyLCBkaWFncmFtMiwgZGV0ZWN0b3IyKSA9PiB7XG4gIHZhciBfYTtcbiAgaWYgKGRpYWdyYW1zW2lkMl0pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERpYWdyYW0gJHtpZDJ9IGFscmVhZHkgcmVnaXN0ZXJlZC5gKTtcbiAgfVxuICBkaWFncmFtc1tpZDJdID0gZGlhZ3JhbTI7XG4gIGlmIChkZXRlY3RvcjIpIHtcbiAgICBhZGREZXRlY3RvcihpZDIsIGRldGVjdG9yMik7XG4gIH1cbiAgYWRkU3R5bGVzRm9yRGlhZ3JhbShpZDIsIGRpYWdyYW0yLnN0eWxlcyk7XG4gIChfYSA9IGRpYWdyYW0yLmluamVjdFV0aWxzKSA9PSBudWxsID8gdm9pZCAwIDogX2EuY2FsbChcbiAgICBkaWFncmFtMixcbiAgICBsb2csXG4gICAgc2V0TG9nTGV2ZWwsXG4gICAgZ2V0Q29uZmlnLFxuICAgIHNhbml0aXplVGV4dCxcbiAgICBzZXR1cEdyYXBoVmlld2JveCxcbiAgICBnZXRDb21tb25EYigpLFxuICAgICgpID0+IHtcbiAgICB9XG4gICk7XG59O1xuY29uc3QgZ2V0RGlhZ3JhbSA9IChuYW1lKSA9PiB7XG4gIGlmIChuYW1lIGluIGRpYWdyYW1zKSB7XG4gICAgcmV0dXJuIGRpYWdyYW1zW25hbWVdO1xuICB9XG4gIHRocm93IG5ldyBEaWFncmFtTm90Rm91bmRFcnJvcihuYW1lKTtcbn07XG5jbGFzcyBEaWFncmFtTm90Rm91bmRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobmFtZSkge1xuICAgIHN1cGVyKGBEaWFncmFtICR7bmFtZX0gbm90IGZvdW5kLmApO1xuICB9XG59XG5jb25zdCBzZWxlY3RTdmdFbGVtZW50ID0gKGlkMikgPT4ge1xuICB2YXIgX2E7XG4gIGNvbnN0IHsgc2VjdXJpdHlMZXZlbCB9ID0gZ2V0Q29uZmlnKCk7XG4gIGxldCByb290ID0gc2VsZWN0KFwiYm9keVwiKTtcbiAgaWYgKHNlY3VyaXR5TGV2ZWwgPT09IFwic2FuZGJveFwiKSB7XG4gICAgY29uc3Qgc2FuZGJveEVsZW1lbnQgPSBzZWxlY3QoYCNpJHtpZDJ9YCk7XG4gICAgY29uc3QgZG9jID0gKChfYSA9IHNhbmRib3hFbGVtZW50Lm5vZGUoKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmNvbnRlbnREb2N1bWVudCkgPz8gZG9jdW1lbnQ7XG4gICAgcm9vdCA9IHNlbGVjdChkb2MuYm9keSk7XG4gIH1cbiAgY29uc3Qgc3ZnID0gcm9vdC5zZWxlY3QoYCMke2lkMn1gKTtcbiAgcmV0dXJuIHN2Zztcbn07XG5jb25zdCBkcmF3ID0gKF90ZXh0LCBpZDIsIHZlcnNpb24yKSA9PiB7XG4gIGxvZyQxLmRlYnVnKFwicmVuZGVyaW5nIHN2ZyBmb3Igc3ludGF4IGVycm9yXFxuXCIpO1xuICBjb25zdCBzdmcgPSBzZWxlY3RTdmdFbGVtZW50KGlkMik7XG4gIGNvbnN0IGcgPSBzdmcuYXBwZW5kKFwiZ1wiKTtcbiAgc3ZnLmF0dHIoXCJ2aWV3Qm94XCIsIFwiMCAwIDI0MTIgNTEyXCIpO1xuICBjb25maWd1cmVTdmdTaXplKHN2ZywgMTAwLCA1MTIsIHRydWUpO1xuICBnLmFwcGVuZChcInBhdGhcIikuYXR0cihcImNsYXNzXCIsIFwiZXJyb3ItaWNvblwiKS5hdHRyKFxuICAgIFwiZFwiLFxuICAgIFwibTQxMS4zMTMsMTIzLjMxM2M2LjI1LTYuMjUgNi4yNS0xNi4zNzUgMC0yMi42MjVzLTE2LjM3NS02LjI1LTIyLjYyNSwwbC0zMiwzMi05LjM3NSw5LjM3NS0yMC42ODgtMjAuNjg4Yy0xMi40ODQtMTIuNS0zMi43NjYtMTIuNS00NS4yNSwwbC0xNiwxNmMtMS4yNjEsMS4yNjEtMi4zMDQsMi42NDgtMy4zMSw0LjA1MS0yMS43MzktOC41NjEtNDUuMzI0LTEzLjQyNi03MC4wNjUtMTMuNDI2LTEwNS44NjcsMC0xOTIsODYuMTMzLTE5MiwxOTJzODYuMTMzLDE5MiAxOTIsMTkyIDE5Mi04Ni4xMzMgMTkyLTE5MmMwLTI0Ljc0MS00Ljg2NC00OC4zMjctMTMuNDI2LTcwLjA2NSAxLjQwMi0xLjAwNyAyLjc5LTIuMDQ5IDQuMDUxLTMuMzFsMTYtMTZjMTIuNS0xMi40OTIgMTIuNS0zMi43NTggMC00NS4yNWwtMjAuNjg4LTIwLjY4OCA5LjM3NS05LjM3NSAzMi4wMDEtMzEuOTk5em0tMjE5LjMxMywxMDAuNjg3Yy01Mi45MzgsMC05Niw0My4wNjMtOTYsOTYgMCw4LjgzNi03LjE2NCwxNi0xNiwxNnMtMTYtNy4xNjQtMTYtMTZjMC03MC41NzggNTcuNDIyLTEyOCAxMjgtMTI4IDguODM2LDAgMTYsNy4xNjQgMTYsMTZzLTcuMTY0LDE2LTE2LDE2elwiXG4gICk7XG4gIGcuYXBwZW5kKFwicGF0aFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJlcnJvci1pY29uXCIpLmF0dHIoXG4gICAgXCJkXCIsXG4gICAgXCJtNDU5LjAyLDE0OC45OGMtNi4yNS02LjI1LTE2LjM3NS02LjI1LTIyLjYyNSwwcy02LjI1LDE2LjM3NSAwLDIyLjYyNWwxNiwxNmMzLjEyNSwzLjEyNSA3LjIxOSw0LjY4OCAxMS4zMTMsNC42ODggNC4wOTQsMCA4LjE4OC0xLjU2MyAxMS4zMTMtNC42ODggNi4yNS02LjI1IDYuMjUtMTYuMzc1IDAtMjIuNjI1bC0xNi4wMDEtMTZ6XCJcbiAgKTtcbiAgZy5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJjbGFzc1wiLCBcImVycm9yLWljb25cIikuYXR0cihcbiAgICBcImRcIixcbiAgICBcIm0zNDAuMzk1LDc1LjYwNWMzLjEyNSwzLjEyNSA3LjIxOSw0LjY4OCAxMS4zMTMsNC42ODggNC4wOTQsMCA4LjE4OC0xLjU2MyAxMS4zMTMtNC42ODggNi4yNS02LjI1IDYuMjUtMTYuMzc1IDAtMjIuNjI1bC0xNi0xNmMtNi4yNS02LjI1LTE2LjM3NS02LjI1LTIyLjYyNSwwcy02LjI1LDE2LjM3NSAwLDIyLjYyNWwxNS45OTksMTZ6XCJcbiAgKTtcbiAgZy5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJjbGFzc1wiLCBcImVycm9yLWljb25cIikuYXR0cihcbiAgICBcImRcIixcbiAgICBcIm00MDAsNjRjOC44NDQsMCAxNi03LjE2NCAxNi0xNnYtMzJjMC04LjgzNi03LjE1Ni0xNi0xNi0xNi04Ljg0NCwwLTE2LDcuMTY0LTE2LDE2djMyYzAsOC44MzYgNy4xNTYsMTYgMTYsMTZ6XCJcbiAgKTtcbiAgZy5hcHBlbmQoXCJwYXRoXCIpLmF0dHIoXCJjbGFzc1wiLCBcImVycm9yLWljb25cIikuYXR0cihcbiAgICBcImRcIixcbiAgICBcIm00OTYsOTYuNTg2aC0zMmMtOC44NDQsMC0xNiw3LjE2NC0xNiwxNiAwLDguODM2IDcuMTU2LDE2IDE2LDE2aDMyYzguODQ0LDAgMTYtNy4xNjQgMTYtMTYgMC04LjgzNi03LjE1Ni0xNi0xNi0xNnpcIlxuICApO1xuICBnLmFwcGVuZChcInBhdGhcIikuYXR0cihcImNsYXNzXCIsIFwiZXJyb3ItaWNvblwiKS5hdHRyKFxuICAgIFwiZFwiLFxuICAgIFwibTQzNi45OCw3NS42MDVjMy4xMjUsMy4xMjUgNy4yMTksNC42ODggMTEuMzEzLDQuNjg4IDQuMDk0LDAgOC4xODgtMS41NjMgMTEuMzEzLTQuNjg4bDMyLTMyYzYuMjUtNi4yNSA2LjI1LTE2LjM3NSAwLTIyLjYyNXMtMTYuMzc1LTYuMjUtMjIuNjI1LDBsLTMyLDMyYy02LjI1MSw2LjI1LTYuMjUxLDE2LjM3NS0wLjAwMSwyMi42MjV6XCJcbiAgKTtcbiAgZy5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJjbGFzc1wiLCBcImVycm9yLXRleHRcIikuYXR0cihcInhcIiwgMTQ0MCkuYXR0cihcInlcIiwgMjUwKS5hdHRyKFwiZm9udC1zaXplXCIsIFwiMTUwcHhcIikuc3R5bGUoXCJ0ZXh0LWFuY2hvclwiLCBcIm1pZGRsZVwiKS50ZXh0KFwiU3ludGF4IGVycm9yIGluIHRleHRcIik7XG4gIGcuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwiY2xhc3NcIiwgXCJlcnJvci10ZXh0XCIpLmF0dHIoXCJ4XCIsIDEyNTApLmF0dHIoXCJ5XCIsIDQwMCkuYXR0cihcImZvbnQtc2l6ZVwiLCBcIjEwMHB4XCIpLnN0eWxlKFwidGV4dC1hbmNob3JcIiwgXCJtaWRkbGVcIikudGV4dChgbWVybWFpZCB2ZXJzaW9uICR7dmVyc2lvbjJ9YCk7XG59O1xuY29uc3QgcmVuZGVyZXIgPSB7IGRyYXcgfTtcbmNvbnN0IGVycm9yUmVuZGVyZXIgPSByZW5kZXJlcjtcbmNvbnN0IGRpYWdyYW0gPSB7XG4gIGRiOiB7fSxcbiAgcmVuZGVyZXIsXG4gIHBhcnNlcjoge1xuICAgIHBhcnNlcjogeyB5eToge30gfSxcbiAgICBwYXJzZTogKCkgPT4ge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufTtcbmNvbnN0IGVycm9yRGlhZ3JhbSA9IGRpYWdyYW07XG5jb25zdCBpZCQ0ID0gXCJmbG93Y2hhcnQtZWxrXCI7XG5jb25zdCBkZXRlY3RvciQ0ID0gKHR4dCwgY29uZmlnMikgPT4ge1xuICB2YXIgX2E7XG4gIGlmIChcbiAgICAvLyBJZiBkaWFncmFtIGV4cGxpY2l0bHkgc3RhdGVzIGZsb3djaGFydC1lbGtcbiAgICAvXlxccypmbG93Y2hhcnQtZWxrLy50ZXN0KHR4dCkgfHwgLy8gSWYgYSBmbG93Y2hhcnQvZ3JhcGggZGlhZ3JhbSBoYXMgdGhlaXIgZGVmYXVsdCByZW5kZXJlciBzZXQgdG8gZWxrXG4gICAgL15cXHMqZmxvd2NoYXJ0fGdyYXBoLy50ZXN0KHR4dCkgJiYgKChfYSA9IGNvbmZpZzIgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmZpZzIuZmxvd2NoYXJ0KSA9PSBudWxsID8gdm9pZCAwIDogX2EuZGVmYXVsdFJlbmRlcmVyKSA9PT0gXCJlbGtcIlxuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59O1xuY29uc3QgbG9hZGVyJDUgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHsgZGlhZ3JhbTogZGlhZ3JhbTIgfSA9IGF3YWl0IGltcG9ydChcIi4vZmxvd2NoYXJ0LWVsay1kZWZpbml0aW9uLWFlMGVmZWU2LmpzXCIpO1xuICByZXR1cm4geyBpZDogaWQkNCwgZGlhZ3JhbTogZGlhZ3JhbTIgfTtcbn07XG5jb25zdCBwbHVnaW4kNCA9IHtcbiAgaWQ6IGlkJDQsXG4gIGRldGVjdG9yOiBkZXRlY3RvciQ0LFxuICBsb2FkZXI6IGxvYWRlciQ1XG59O1xuY29uc3QgZmxvd2NoYXJ0RWxrID0gcGx1Z2luJDQ7XG5jb25zdCBpZCQzID0gXCJ0aW1lbGluZVwiO1xuY29uc3QgZGV0ZWN0b3IkMyA9ICh0eHQpID0+IHtcbiAgcmV0dXJuIC9eXFxzKnRpbWVsaW5lLy50ZXN0KHR4dCk7XG59O1xuY29uc3QgbG9hZGVyJDQgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHsgZGlhZ3JhbTogZGlhZ3JhbTIgfSA9IGF3YWl0IGltcG9ydChcIi4vdGltZWxpbmUtZGVmaW5pdGlvbi1iZjcwMjM0NC5qc1wiKTtcbiAgcmV0dXJuIHsgaWQ6IGlkJDMsIGRpYWdyYW06IGRpYWdyYW0yIH07XG59O1xuY29uc3QgcGx1Z2luJDMgPSB7XG4gIGlkOiBpZCQzLFxuICBkZXRlY3RvcjogZGV0ZWN0b3IkMyxcbiAgbG9hZGVyOiBsb2FkZXIkNFxufTtcbmNvbnN0IHRpbWVsaW5lID0gcGx1Z2luJDM7XG5jb25zdCBpZCQyID0gXCJtaW5kbWFwXCI7XG5jb25zdCBkZXRlY3RvciQyID0gKHR4dCkgPT4ge1xuICByZXR1cm4gL15cXHMqbWluZG1hcC8udGVzdCh0eHQpO1xufTtcbmNvbnN0IGxvYWRlciQzID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7IGRpYWdyYW06IGRpYWdyYW0yIH0gPSBhd2FpdCBpbXBvcnQoXCIuL21pbmRtYXAtZGVmaW5pdGlvbi0zMDdjNzEwYS5qc1wiKTtcbiAgcmV0dXJuIHsgaWQ6IGlkJDIsIGRpYWdyYW06IGRpYWdyYW0yIH07XG59O1xuY29uc3QgcGx1Z2luJDIgPSB7XG4gIGlkOiBpZCQyLFxuICBkZXRlY3RvcjogZGV0ZWN0b3IkMixcbiAgbG9hZGVyOiBsb2FkZXIkM1xufTtcbmNvbnN0IG1pbmRtYXAgPSBwbHVnaW4kMjtcbmNvbnN0IGlkJDEgPSBcInNhbmtleVwiO1xuY29uc3QgZGV0ZWN0b3IkMSA9ICh0eHQpID0+IHtcbiAgcmV0dXJuIC9eXFxzKnNhbmtleS1iZXRhLy50ZXN0KHR4dCk7XG59O1xuY29uc3QgbG9hZGVyJDIgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHsgZGlhZ3JhbTogZGlhZ3JhbTIgfSA9IGF3YWl0IGltcG9ydChcIi4vc2Fua2V5RGlhZ3JhbS03MDdmYWMwZi5qc1wiKTtcbiAgcmV0dXJuIHsgaWQ6IGlkJDEsIGRpYWdyYW06IGRpYWdyYW0yIH07XG59O1xuY29uc3QgcGx1Z2luJDEgPSB7XG4gIGlkOiBpZCQxLFxuICBkZXRlY3RvcjogZGV0ZWN0b3IkMSxcbiAgbG9hZGVyOiBsb2FkZXIkMlxufTtcbmNvbnN0IHNhbmtleSA9IHBsdWdpbiQxO1xuY29uc3QgaWQgPSBcImJsb2NrXCI7XG5jb25zdCBkZXRlY3RvciA9ICh0eHQpID0+IHtcbiAgcmV0dXJuIC9eXFxzKmJsb2NrLWJldGEvLnRlc3QodHh0KTtcbn07XG5jb25zdCBsb2FkZXIkMSA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgeyBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgaW1wb3J0KFwiLi9ibG9ja0RpYWdyYW0tOWY0YTY4NjUuanNcIik7XG4gIHJldHVybiB7IGlkLCBkaWFncmFtOiBkaWFncmFtMiB9O1xufTtcbmNvbnN0IHBsdWdpbiA9IHtcbiAgaWQsXG4gIGRldGVjdG9yLFxuICBsb2FkZXI6IGxvYWRlciQxXG59O1xuY29uc3QgYmxvY2sgPSBwbHVnaW47XG5sZXQgaGFzTG9hZGVkRGlhZ3JhbXMgPSBmYWxzZTtcbmNvbnN0IGFkZERpYWdyYW1zID0gKCkgPT4ge1xuICBpZiAoaGFzTG9hZGVkRGlhZ3JhbXMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaGFzTG9hZGVkRGlhZ3JhbXMgPSB0cnVlO1xuICByZWdpc3RlckRpYWdyYW0oXCJlcnJvclwiLCBlcnJvckRpYWdyYW0sICh0ZXh0KSA9PiB7XG4gICAgcmV0dXJuIHRleHQudG9Mb3dlckNhc2UoKS50cmltKCkgPT09IFwiZXJyb3JcIjtcbiAgfSk7XG4gIHJlZ2lzdGVyRGlhZ3JhbShcbiAgICBcIi0tLVwiLFxuICAgIC8vIC0tLSBkaWFncmFtIHR5cGUgbWF5IGFwcGVhciBpZiBZQU1MIGZyb250LW1hdHRlciBpcyBub3QgcGFyc2VkIGNvcnJlY3RseVxuICAgIHtcbiAgICAgIGRiOiB7XG4gICAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzdHlsZXM6IHt9LFxuICAgICAgLy8gc2hvdWxkIG5ldmVyIGJlIHVzZWRcbiAgICAgIHJlbmRlcmVyOiB7XG4gICAgICAgIGRyYXc6ICgpID0+IHtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHBhcnNlcjoge1xuICAgICAgICBwYXJzZXI6IHsgeXk6IHt9IH0sXG4gICAgICAgIHBhcnNlOiAoKSA9PiB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCJEaWFncmFtcyBiZWdpbm5pbmcgd2l0aCAtLS0gYXJlIG5vdCB2YWxpZC4gSWYgeW91IHdlcmUgdHJ5aW5nIHRvIHVzZSBhIFlBTUwgZnJvbnQtbWF0dGVyLCBwbGVhc2UgZW5zdXJlIHRoYXQgeW91J3ZlIGNvcnJlY3RseSBvcGVuZWQgYW5kIGNsb3NlZCB0aGUgWUFNTCBmcm9udC1tYXR0ZXIgd2l0aCB1bi1pbmRlbnRlZCBgLS0tYCBibG9ja3NcIlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBpbml0OiAoKSA9PiBudWxsXG4gICAgICAvLyBubyBvcFxuICAgIH0sXG4gICAgKHRleHQpID0+IHtcbiAgICAgIHJldHVybiB0ZXh0LnRvTG93ZXJDYXNlKCkudHJpbVN0YXJ0KCkuc3RhcnRzV2l0aChcIi0tLVwiKTtcbiAgICB9XG4gICk7XG4gIHJlZ2lzdGVyTGF6eUxvYWRlZERpYWdyYW1zKFxuICAgIGM0LFxuICAgIGNsYXNzRGlhZ3JhbVYyLFxuICAgIGNsYXNzRGlhZ3JhbSxcbiAgICBlcixcbiAgICBnYW50dCxcbiAgICBpbmZvLFxuICAgIHBpZSxcbiAgICByZXF1aXJlbWVudCxcbiAgICBzZXF1ZW5jZSxcbiAgICBmbG93Y2hhcnRFbGssXG4gICAgZmxvd2NoYXJ0VjIsXG4gICAgZmxvd2NoYXJ0LFxuICAgIG1pbmRtYXAsXG4gICAgdGltZWxpbmUsXG4gICAgZ2l0LFxuICAgIHN0YXRlVjIsXG4gICAgc3RhdGUsXG4gICAgam91cm5leSxcbiAgICBxdWFkcmFudENoYXJ0LFxuICAgIHNhbmtleSxcbiAgICB4eWNoYXJ0LFxuICAgIGJsb2NrXG4gICk7XG59O1xuY2xhc3MgRGlhZ3JhbSB7XG4gIGNvbnN0cnVjdG9yKHRleHQsIG1ldGFkYXRhID0ge30pIHtcbiAgICB0aGlzLnRleHQgPSB0ZXh0O1xuICAgIHRoaXMubWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICB0aGlzLnR5cGUgPSBcImdyYXBoXCI7XG4gICAgdGhpcy50ZXh0ID0gZW5jb2RlRW50aXRpZXModGV4dCk7XG4gICAgdGhpcy50ZXh0ICs9IFwiXFxuXCI7XG4gICAgY29uc3QgY25mID0gZ2V0Q29uZmlnJDEoKTtcbiAgICB0cnkge1xuICAgICAgdGhpcy50eXBlID0gZGV0ZWN0VHlwZSh0ZXh0LCBjbmYpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMudHlwZSA9IFwiZXJyb3JcIjtcbiAgICAgIHRoaXMuZGV0ZWN0RXJyb3IgPSBlO1xuICAgIH1cbiAgICBjb25zdCBkaWFncmFtMiA9IGdldERpYWdyYW0odGhpcy50eXBlKTtcbiAgICBsb2ckMS5kZWJ1ZyhcIlR5cGUgXCIgKyB0aGlzLnR5cGUpO1xuICAgIHRoaXMuZGIgPSBkaWFncmFtMi5kYjtcbiAgICB0aGlzLnJlbmRlcmVyID0gZGlhZ3JhbTIucmVuZGVyZXI7XG4gICAgdGhpcy5wYXJzZXIgPSBkaWFncmFtMi5wYXJzZXI7XG4gICAgdGhpcy5wYXJzZXIucGFyc2VyLnl5ID0gdGhpcy5kYjtcbiAgICB0aGlzLmluaXQgPSBkaWFncmFtMi5pbml0O1xuICAgIHRoaXMucGFyc2UoKTtcbiAgfVxuICBwYXJzZSgpIHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgIGlmICh0aGlzLmRldGVjdEVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLmRldGVjdEVycm9yO1xuICAgIH1cbiAgICAoX2IgPSAoX2EgPSB0aGlzLmRiKS5jbGVhcikgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgIGNvbnN0IGNvbmZpZzIgPSBnZXRDb25maWckMSgpO1xuICAgIChfYyA9IHRoaXMuaW5pdCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jLmNhbGwodGhpcywgY29uZmlnMik7XG4gICAgaWYgKHRoaXMubWV0YWRhdGEudGl0bGUpIHtcbiAgICAgIChfZSA9IChfZCA9IHRoaXMuZGIpLnNldERpYWdyYW1UaXRsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lLmNhbGwoX2QsIHRoaXMubWV0YWRhdGEudGl0bGUpO1xuICAgIH1cbiAgICB0aGlzLnBhcnNlci5wYXJzZSh0aGlzLnRleHQpO1xuICB9XG4gIGFzeW5jIHJlbmRlcihpZDIsIHZlcnNpb24yKSB7XG4gICAgYXdhaXQgdGhpcy5yZW5kZXJlci5kcmF3KHRoaXMudGV4dCwgaWQyLCB2ZXJzaW9uMiwgdGhpcyk7XG4gIH1cbiAgZ2V0UGFyc2VyKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlcjtcbiAgfVxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cbn1cbmNvbnN0IGdldERpYWdyYW1Gcm9tVGV4dCQxID0gYXN5bmMgKHRleHQsIG1ldGFkYXRhID0ge30pID0+IHtcbiAgY29uc3QgdHlwZTIgPSBkZXRlY3RUeXBlKHRleHQsIGdldENvbmZpZyQxKCkpO1xuICB0cnkge1xuICAgIGdldERpYWdyYW0odHlwZTIpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnN0IGxvYWRlcjIgPSBnZXREaWFncmFtTG9hZGVyKHR5cGUyKTtcbiAgICBpZiAoIWxvYWRlcjIpIHtcbiAgICAgIHRocm93IG5ldyBVbmtub3duRGlhZ3JhbUVycm9yKGBEaWFncmFtICR7dHlwZTJ9IG5vdCBmb3VuZC5gKTtcbiAgICB9XG4gICAgY29uc3QgeyBpZDogaWQyLCBkaWFncmFtOiBkaWFncmFtMiB9ID0gYXdhaXQgbG9hZGVyMigpO1xuICAgIHJlZ2lzdGVyRGlhZ3JhbShpZDIsIGRpYWdyYW0yKTtcbiAgfVxuICByZXR1cm4gbmV3IERpYWdyYW0odGV4dCwgbWV0YWRhdGEpO1xufTtcbmxldCBpbnRlcmFjdGlvbkZ1bmN0aW9ucyA9IFtdO1xuY29uc3QgYXR0YWNoRnVuY3Rpb25zID0gKCkgPT4ge1xuICBpbnRlcmFjdGlvbkZ1bmN0aW9ucy5mb3JFYWNoKChmKSA9PiB7XG4gICAgZigpO1xuICB9KTtcbiAgaW50ZXJhY3Rpb25GdW5jdGlvbnMgPSBbXTtcbn07XG5jb25zdCBTVkdfUk9MRSA9IFwiZ3JhcGhpY3MtZG9jdW1lbnQgZG9jdW1lbnRcIjtcbmZ1bmN0aW9uIHNldEExMXlEaWFncmFtSW5mbyhzdmcsIGRpYWdyYW1UeXBlKSB7XG4gIHN2Zy5hdHRyKFwicm9sZVwiLCBTVkdfUk9MRSk7XG4gIGlmIChkaWFncmFtVHlwZSAhPT0gXCJcIikge1xuICAgIHN2Zy5hdHRyKFwiYXJpYS1yb2xlZGVzY3JpcHRpb25cIiwgZGlhZ3JhbVR5cGUpO1xuICB9XG59XG5mdW5jdGlvbiBhZGRTVkdhMTF5VGl0bGVEZXNjcmlwdGlvbihzdmcsIGExMXlUaXRsZSwgYTExeURlc2MsIGJhc2VJZCkge1xuICBpZiAoc3ZnLmluc2VydCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChhMTF5RGVzYykge1xuICAgIGNvbnN0IGRlc2NJZCA9IGBjaGFydC1kZXNjLSR7YmFzZUlkfWA7XG4gICAgc3ZnLmF0dHIoXCJhcmlhLWRlc2NyaWJlZGJ5XCIsIGRlc2NJZCk7XG4gICAgc3ZnLmluc2VydChcImRlc2NcIiwgXCI6Zmlyc3QtY2hpbGRcIikuYXR0cihcImlkXCIsIGRlc2NJZCkudGV4dChhMTF5RGVzYyk7XG4gIH1cbiAgaWYgKGExMXlUaXRsZSkge1xuICAgIGNvbnN0IHRpdGxlSWQgPSBgY2hhcnQtdGl0bGUtJHtiYXNlSWR9YDtcbiAgICBzdmcuYXR0cihcImFyaWEtbGFiZWxsZWRieVwiLCB0aXRsZUlkKTtcbiAgICBzdmcuaW5zZXJ0KFwidGl0bGVcIiwgXCI6Zmlyc3QtY2hpbGRcIikuYXR0cihcImlkXCIsIHRpdGxlSWQpLnRleHQoYTExeVRpdGxlKTtcbiAgfVxufVxuY29uc3QgY2xlYW51cENvbW1lbnRzID0gKHRleHQpID0+IHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZSgvXlxccyolJSg/IXspW15cXG5dK1xcbj8vZ20sIFwiXCIpLnRyaW1TdGFydCgpO1xufTtcbi8qISBqcy15YW1sIDQuMS4wIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvanMteWFtbCBAbGljZW5zZSBNSVQgKi9cbmZ1bmN0aW9uIGlzTm90aGluZyhzdWJqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygc3ViamVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCBzdWJqZWN0ID09PSBudWxsO1xufVxuZnVuY3Rpb24gaXNPYmplY3Qoc3ViamVjdCkge1xuICByZXR1cm4gdHlwZW9mIHN1YmplY3QgPT09IFwib2JqZWN0XCIgJiYgc3ViamVjdCAhPT0gbnVsbDtcbn1cbmZ1bmN0aW9uIHRvQXJyYXkoc2VxdWVuY2UyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHNlcXVlbmNlMikpXG4gICAgcmV0dXJuIHNlcXVlbmNlMjtcbiAgZWxzZSBpZiAoaXNOb3RoaW5nKHNlcXVlbmNlMikpXG4gICAgcmV0dXJuIFtdO1xuICByZXR1cm4gW3NlcXVlbmNlMl07XG59XG5mdW5jdGlvbiBleHRlbmQodGFyZ2V0LCBzb3VyY2UpIHtcbiAgdmFyIGluZGV4LCBsZW5ndGgsIGtleSwgc291cmNlS2V5cztcbiAgaWYgKHNvdXJjZSkge1xuICAgIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBzb3VyY2VLZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgIGtleSA9IHNvdXJjZUtleXNbaW5kZXhdO1xuICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRhcmdldDtcbn1cbmZ1bmN0aW9uIHJlcGVhdChzdHJpbmcsIGNvdW50KSB7XG4gIHZhciByZXN1bHQgPSBcIlwiLCBjeWNsZTtcbiAgZm9yIChjeWNsZSA9IDA7IGN5Y2xlIDwgY291bnQ7IGN5Y2xlICs9IDEpIHtcbiAgICByZXN1bHQgKz0gc3RyaW5nO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBpc05lZ2F0aXZlWmVybyhudW1iZXIpIHtcbiAgcmV0dXJuIG51bWJlciA9PT0gMCAmJiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IDEgLyBudW1iZXI7XG59XG52YXIgaXNOb3RoaW5nXzEgPSBpc05vdGhpbmc7XG52YXIgaXNPYmplY3RfMSA9IGlzT2JqZWN0O1xudmFyIHRvQXJyYXlfMSA9IHRvQXJyYXk7XG52YXIgcmVwZWF0XzEgPSByZXBlYXQ7XG52YXIgaXNOZWdhdGl2ZVplcm9fMSA9IGlzTmVnYXRpdmVaZXJvO1xudmFyIGV4dGVuZF8xID0gZXh0ZW5kO1xudmFyIGNvbW1vbiA9IHtcbiAgaXNOb3RoaW5nOiBpc05vdGhpbmdfMSxcbiAgaXNPYmplY3Q6IGlzT2JqZWN0XzEsXG4gIHRvQXJyYXk6IHRvQXJyYXlfMSxcbiAgcmVwZWF0OiByZXBlYXRfMSxcbiAgaXNOZWdhdGl2ZVplcm86IGlzTmVnYXRpdmVaZXJvXzEsXG4gIGV4dGVuZDogZXh0ZW5kXzFcbn07XG5mdW5jdGlvbiBmb3JtYXRFcnJvcihleGNlcHRpb24yLCBjb21wYWN0KSB7XG4gIHZhciB3aGVyZSA9IFwiXCIsIG1lc3NhZ2UgPSBleGNlcHRpb24yLnJlYXNvbiB8fCBcIih1bmtub3duIHJlYXNvbilcIjtcbiAgaWYgKCFleGNlcHRpb24yLm1hcmspXG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIGlmIChleGNlcHRpb24yLm1hcmsubmFtZSkge1xuICAgIHdoZXJlICs9ICdpbiBcIicgKyBleGNlcHRpb24yLm1hcmsubmFtZSArICdcIiAnO1xuICB9XG4gIHdoZXJlICs9IFwiKFwiICsgKGV4Y2VwdGlvbjIubWFyay5saW5lICsgMSkgKyBcIjpcIiArIChleGNlcHRpb24yLm1hcmsuY29sdW1uICsgMSkgKyBcIilcIjtcbiAgaWYgKCFjb21wYWN0ICYmIGV4Y2VwdGlvbjIubWFyay5zbmlwcGV0KSB7XG4gICAgd2hlcmUgKz0gXCJcXG5cXG5cIiArIGV4Y2VwdGlvbjIubWFyay5zbmlwcGV0O1xuICB9XG4gIHJldHVybiBtZXNzYWdlICsgXCIgXCIgKyB3aGVyZTtcbn1cbmZ1bmN0aW9uIFlBTUxFeGNlcHRpb24kMShyZWFzb24sIG1hcmspIHtcbiAgRXJyb3IuY2FsbCh0aGlzKTtcbiAgdGhpcy5uYW1lID0gXCJZQU1MRXhjZXB0aW9uXCI7XG4gIHRoaXMucmVhc29uID0gcmVhc29uO1xuICB0aGlzLm1hcmsgPSBtYXJrO1xuICB0aGlzLm1lc3NhZ2UgPSBmb3JtYXRFcnJvcih0aGlzLCBmYWxzZSk7XG4gIGlmIChFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSkge1xuICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuc3RhY2sgPSBuZXcgRXJyb3IoKS5zdGFjayB8fCBcIlwiO1xuICB9XG59XG5ZQU1MRXhjZXB0aW9uJDEucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpO1xuWUFNTEV4Y2VwdGlvbiQxLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFlBTUxFeGNlcHRpb24kMTtcbllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhjb21wYWN0KSB7XG4gIHJldHVybiB0aGlzLm5hbWUgKyBcIjogXCIgKyBmb3JtYXRFcnJvcih0aGlzLCBjb21wYWN0KTtcbn07XG52YXIgZXhjZXB0aW9uID0gWUFNTEV4Y2VwdGlvbiQxO1xuZnVuY3Rpb24gZ2V0TGluZShidWZmZXIsIGxpbmVTdGFydCwgbGluZUVuZCwgcG9zaXRpb24sIG1heExpbmVMZW5ndGgpIHtcbiAgdmFyIGhlYWQgPSBcIlwiO1xuICB2YXIgdGFpbCA9IFwiXCI7XG4gIHZhciBtYXhIYWxmTGVuZ3RoID0gTWF0aC5mbG9vcihtYXhMaW5lTGVuZ3RoIC8gMikgLSAxO1xuICBpZiAocG9zaXRpb24gLSBsaW5lU3RhcnQgPiBtYXhIYWxmTGVuZ3RoKSB7XG4gICAgaGVhZCA9IFwiIC4uLiBcIjtcbiAgICBsaW5lU3RhcnQgPSBwb3NpdGlvbiAtIG1heEhhbGZMZW5ndGggKyBoZWFkLmxlbmd0aDtcbiAgfVxuICBpZiAobGluZUVuZCAtIHBvc2l0aW9uID4gbWF4SGFsZkxlbmd0aCkge1xuICAgIHRhaWwgPSBcIiAuLi5cIjtcbiAgICBsaW5lRW5kID0gcG9zaXRpb24gKyBtYXhIYWxmTGVuZ3RoIC0gdGFpbC5sZW5ndGg7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBzdHI6IGhlYWQgKyBidWZmZXIuc2xpY2UobGluZVN0YXJ0LCBsaW5lRW5kKS5yZXBsYWNlKC9cXHQvZywgXCLihpJcIikgKyB0YWlsLFxuICAgIHBvczogcG9zaXRpb24gLSBsaW5lU3RhcnQgKyBoZWFkLmxlbmd0aFxuICAgIC8vIHJlbGF0aXZlIHBvc2l0aW9uXG4gIH07XG59XG5mdW5jdGlvbiBwYWRTdGFydChzdHJpbmcsIG1heCkge1xuICByZXR1cm4gY29tbW9uLnJlcGVhdChcIiBcIiwgbWF4IC0gc3RyaW5nLmxlbmd0aCkgKyBzdHJpbmc7XG59XG5mdW5jdGlvbiBtYWtlU25pcHBldChtYXJrLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBPYmplY3QuY3JlYXRlKG9wdGlvbnMgfHwgbnVsbCk7XG4gIGlmICghbWFyay5idWZmZXIpXG4gICAgcmV0dXJuIG51bGw7XG4gIGlmICghb3B0aW9ucy5tYXhMZW5ndGgpXG4gICAgb3B0aW9ucy5tYXhMZW5ndGggPSA3OTtcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmluZGVudCAhPT0gXCJudW1iZXJcIilcbiAgICBvcHRpb25zLmluZGVudCA9IDE7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5saW5lc0JlZm9yZSAhPT0gXCJudW1iZXJcIilcbiAgICBvcHRpb25zLmxpbmVzQmVmb3JlID0gMztcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmxpbmVzQWZ0ZXIgIT09IFwibnVtYmVyXCIpXG4gICAgb3B0aW9ucy5saW5lc0FmdGVyID0gMjtcbiAgdmFyIHJlID0gL1xccj9cXG58XFxyfFxcMC9nO1xuICB2YXIgbGluZVN0YXJ0cyA9IFswXTtcbiAgdmFyIGxpbmVFbmRzID0gW107XG4gIHZhciBtYXRjaDtcbiAgdmFyIGZvdW5kTGluZU5vID0gLTE7XG4gIHdoaWxlIChtYXRjaCA9IHJlLmV4ZWMobWFyay5idWZmZXIpKSB7XG4gICAgbGluZUVuZHMucHVzaChtYXRjaC5pbmRleCk7XG4gICAgbGluZVN0YXJ0cy5wdXNoKG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICBpZiAobWFyay5wb3NpdGlvbiA8PSBtYXRjaC5pbmRleCAmJiBmb3VuZExpbmVObyA8IDApIHtcbiAgICAgIGZvdW5kTGluZU5vID0gbGluZVN0YXJ0cy5sZW5ndGggLSAyO1xuICAgIH1cbiAgfVxuICBpZiAoZm91bmRMaW5lTm8gPCAwKVxuICAgIGZvdW5kTGluZU5vID0gbGluZVN0YXJ0cy5sZW5ndGggLSAxO1xuICB2YXIgcmVzdWx0ID0gXCJcIiwgaSwgbGluZTtcbiAgdmFyIGxpbmVOb0xlbmd0aCA9IE1hdGgubWluKG1hcmsubGluZSArIG9wdGlvbnMubGluZXNBZnRlciwgbGluZUVuZHMubGVuZ3RoKS50b1N0cmluZygpLmxlbmd0aDtcbiAgdmFyIG1heExpbmVMZW5ndGggPSBvcHRpb25zLm1heExlbmd0aCAtIChvcHRpb25zLmluZGVudCArIGxpbmVOb0xlbmd0aCArIDMpO1xuICBmb3IgKGkgPSAxOyBpIDw9IG9wdGlvbnMubGluZXNCZWZvcmU7IGkrKykge1xuICAgIGlmIChmb3VuZExpbmVObyAtIGkgPCAwKVxuICAgICAgYnJlYWs7XG4gICAgbGluZSA9IGdldExpbmUoXG4gICAgICBtYXJrLmJ1ZmZlcixcbiAgICAgIGxpbmVTdGFydHNbZm91bmRMaW5lTm8gLSBpXSxcbiAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vIC0gaV0sXG4gICAgICBtYXJrLnBvc2l0aW9uIC0gKGxpbmVTdGFydHNbZm91bmRMaW5lTm9dIC0gbGluZVN0YXJ0c1tmb3VuZExpbmVObyAtIGldKSxcbiAgICAgIG1heExpbmVMZW5ndGhcbiAgICApO1xuICAgIHJlc3VsdCA9IGNvbW1vbi5yZXBlYXQoXCIgXCIsIG9wdGlvbnMuaW5kZW50KSArIHBhZFN0YXJ0KChtYXJrLmxpbmUgLSBpICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArIFwiIHwgXCIgKyBsaW5lLnN0ciArIFwiXFxuXCIgKyByZXN1bHQ7XG4gIH1cbiAgbGluZSA9IGdldExpbmUobWFyay5idWZmZXIsIGxpbmVTdGFydHNbZm91bmRMaW5lTm9dLCBsaW5lRW5kc1tmb3VuZExpbmVOb10sIG1hcmsucG9zaXRpb24sIG1heExpbmVMZW5ndGgpO1xuICByZXN1bHQgKz0gY29tbW9uLnJlcGVhdChcIiBcIiwgb3B0aW9ucy5pbmRlbnQpICsgcGFkU3RhcnQoKG1hcmsubGluZSArIDEpLnRvU3RyaW5nKCksIGxpbmVOb0xlbmd0aCkgKyBcIiB8IFwiICsgbGluZS5zdHIgKyBcIlxcblwiO1xuICByZXN1bHQgKz0gY29tbW9uLnJlcGVhdChcIi1cIiwgb3B0aW9ucy5pbmRlbnQgKyBsaW5lTm9MZW5ndGggKyAzICsgbGluZS5wb3MpICsgXCJeXFxuXCI7XG4gIGZvciAoaSA9IDE7IGkgPD0gb3B0aW9ucy5saW5lc0FmdGVyOyBpKyspIHtcbiAgICBpZiAoZm91bmRMaW5lTm8gKyBpID49IGxpbmVFbmRzLmxlbmd0aClcbiAgICAgIGJyZWFrO1xuICAgIGxpbmUgPSBnZXRMaW5lKFxuICAgICAgbWFyay5idWZmZXIsXG4gICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vICsgaV0sXG4gICAgICBsaW5lRW5kc1tmb3VuZExpbmVObyArIGldLFxuICAgICAgbWFyay5wb3NpdGlvbiAtIChsaW5lU3RhcnRzW2ZvdW5kTGluZU5vXSAtIGxpbmVTdGFydHNbZm91bmRMaW5lTm8gKyBpXSksXG4gICAgICBtYXhMaW5lTGVuZ3RoXG4gICAgKTtcbiAgICByZXN1bHQgKz0gY29tbW9uLnJlcGVhdChcIiBcIiwgb3B0aW9ucy5pbmRlbnQpICsgcGFkU3RhcnQoKG1hcmsubGluZSArIGkgKyAxKS50b1N0cmluZygpLCBsaW5lTm9MZW5ndGgpICsgXCIgfCBcIiArIGxpbmUuc3RyICsgXCJcXG5cIjtcbiAgfVxuICByZXR1cm4gcmVzdWx0LnJlcGxhY2UoL1xcbiQvLCBcIlwiKTtcbn1cbnZhciBzbmlwcGV0ID0gbWFrZVNuaXBwZXQ7XG52YXIgVFlQRV9DT05TVFJVQ1RPUl9PUFRJT05TID0gW1xuICBcImtpbmRcIixcbiAgXCJtdWx0aVwiLFxuICBcInJlc29sdmVcIixcbiAgXCJjb25zdHJ1Y3RcIixcbiAgXCJpbnN0YW5jZU9mXCIsXG4gIFwicHJlZGljYXRlXCIsXG4gIFwicmVwcmVzZW50XCIsXG4gIFwicmVwcmVzZW50TmFtZVwiLFxuICBcImRlZmF1bHRTdHlsZVwiLFxuICBcInN0eWxlQWxpYXNlc1wiXG5dO1xudmFyIFlBTUxfTk9ERV9LSU5EUyA9IFtcbiAgXCJzY2FsYXJcIixcbiAgXCJzZXF1ZW5jZVwiLFxuICBcIm1hcHBpbmdcIlxuXTtcbmZ1bmN0aW9uIGNvbXBpbGVTdHlsZUFsaWFzZXMobWFwMikge1xuICB2YXIgcmVzdWx0ID0ge307XG4gIGlmIChtYXAyICE9PSBudWxsKSB7XG4gICAgT2JqZWN0LmtleXMobWFwMikuZm9yRWFjaChmdW5jdGlvbihzdHlsZSkge1xuICAgICAgbWFwMltzdHlsZV0uZm9yRWFjaChmdW5jdGlvbihhbGlhcykge1xuICAgICAgICByZXN1bHRbU3RyaW5nKGFsaWFzKV0gPSBzdHlsZTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBUeXBlJDEodGFnLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBpZiAoVFlQRV9DT05TVFJVQ1RPUl9PUFRJT05TLmluZGV4T2YobmFtZSkgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdVbmtub3duIG9wdGlvbiBcIicgKyBuYW1lICsgJ1wiIGlzIG1ldCBpbiBkZWZpbml0aW9uIG9mIFwiJyArIHRhZyArICdcIiBZQU1MIHR5cGUuJyk7XG4gICAgfVxuICB9KTtcbiAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgdGhpcy50YWcgPSB0YWc7XG4gIHRoaXMua2luZCA9IG9wdGlvbnNbXCJraW5kXCJdIHx8IG51bGw7XG4gIHRoaXMucmVzb2x2ZSA9IG9wdGlvbnNbXCJyZXNvbHZlXCJdIHx8IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuICB0aGlzLmNvbnN0cnVjdCA9IG9wdGlvbnNbXCJjb25zdHJ1Y3RcIl0gfHwgZnVuY3Rpb24oZGF0YSkge1xuICAgIHJldHVybiBkYXRhO1xuICB9O1xuICB0aGlzLmluc3RhbmNlT2YgPSBvcHRpb25zW1wiaW5zdGFuY2VPZlwiXSB8fCBudWxsO1xuICB0aGlzLnByZWRpY2F0ZSA9IG9wdGlvbnNbXCJwcmVkaWNhdGVcIl0gfHwgbnVsbDtcbiAgdGhpcy5yZXByZXNlbnQgPSBvcHRpb25zW1wicmVwcmVzZW50XCJdIHx8IG51bGw7XG4gIHRoaXMucmVwcmVzZW50TmFtZSA9IG9wdGlvbnNbXCJyZXByZXNlbnROYW1lXCJdIHx8IG51bGw7XG4gIHRoaXMuZGVmYXVsdFN0eWxlID0gb3B0aW9uc1tcImRlZmF1bHRTdHlsZVwiXSB8fCBudWxsO1xuICB0aGlzLm11bHRpID0gb3B0aW9uc1tcIm11bHRpXCJdIHx8IGZhbHNlO1xuICB0aGlzLnN0eWxlQWxpYXNlcyA9IGNvbXBpbGVTdHlsZUFsaWFzZXMob3B0aW9uc1tcInN0eWxlQWxpYXNlc1wiXSB8fCBudWxsKTtcbiAgaWYgKFlBTUxfTk9ERV9LSU5EUy5pbmRleE9mKHRoaXMua2luZCkgPT09IC0xKSB7XG4gICAgdGhyb3cgbmV3IGV4Y2VwdGlvbignVW5rbm93biBraW5kIFwiJyArIHRoaXMua2luZCArICdcIiBpcyBzcGVjaWZpZWQgZm9yIFwiJyArIHRhZyArICdcIiBZQU1MIHR5cGUuJyk7XG4gIH1cbn1cbnZhciB0eXBlID0gVHlwZSQxO1xuZnVuY3Rpb24gY29tcGlsZUxpc3Qoc2NoZW1hMiwgbmFtZSkge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHNjaGVtYTJbbmFtZV0uZm9yRWFjaChmdW5jdGlvbihjdXJyZW50VHlwZSkge1xuICAgIHZhciBuZXdJbmRleCA9IHJlc3VsdC5sZW5ndGg7XG4gICAgcmVzdWx0LmZvckVhY2goZnVuY3Rpb24ocHJldmlvdXNUeXBlLCBwcmV2aW91c0luZGV4KSB7XG4gICAgICBpZiAocHJldmlvdXNUeXBlLnRhZyA9PT0gY3VycmVudFR5cGUudGFnICYmIHByZXZpb3VzVHlwZS5raW5kID09PSBjdXJyZW50VHlwZS5raW5kICYmIHByZXZpb3VzVHlwZS5tdWx0aSA9PT0gY3VycmVudFR5cGUubXVsdGkpIHtcbiAgICAgICAgbmV3SW5kZXggPSBwcmV2aW91c0luZGV4O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJlc3VsdFtuZXdJbmRleF0gPSBjdXJyZW50VHlwZTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBjb21waWxlTWFwKCkge1xuICB2YXIgcmVzdWx0ID0ge1xuICAgIHNjYWxhcjoge30sXG4gICAgc2VxdWVuY2U6IHt9LFxuICAgIG1hcHBpbmc6IHt9LFxuICAgIGZhbGxiYWNrOiB7fSxcbiAgICBtdWx0aToge1xuICAgICAgc2NhbGFyOiBbXSxcbiAgICAgIHNlcXVlbmNlOiBbXSxcbiAgICAgIG1hcHBpbmc6IFtdLFxuICAgICAgZmFsbGJhY2s6IFtdXG4gICAgfVxuICB9LCBpbmRleCwgbGVuZ3RoO1xuICBmdW5jdGlvbiBjb2xsZWN0VHlwZSh0eXBlMikge1xuICAgIGlmICh0eXBlMi5tdWx0aSkge1xuICAgICAgcmVzdWx0Lm11bHRpW3R5cGUyLmtpbmRdLnB1c2godHlwZTIpO1xuICAgICAgcmVzdWx0Lm11bHRpW1wiZmFsbGJhY2tcIl0ucHVzaCh0eXBlMik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFt0eXBlMi5raW5kXVt0eXBlMi50YWddID0gcmVzdWx0W1wiZmFsbGJhY2tcIl1bdHlwZTIudGFnXSA9IHR5cGUyO1xuICAgIH1cbiAgfVxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBhcmd1bWVudHNbaW5kZXhdLmZvckVhY2goY29sbGVjdFR5cGUpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBTY2hlbWEkMShkZWZpbml0aW9uKSB7XG4gIHJldHVybiB0aGlzLmV4dGVuZChkZWZpbml0aW9uKTtcbn1cblNjaGVtYSQxLnByb3RvdHlwZS5leHRlbmQgPSBmdW5jdGlvbiBleHRlbmQyKGRlZmluaXRpb24pIHtcbiAgdmFyIGltcGxpY2l0ID0gW107XG4gIHZhciBleHBsaWNpdCA9IFtdO1xuICBpZiAoZGVmaW5pdGlvbiBpbnN0YW5jZW9mIHR5cGUpIHtcbiAgICBleHBsaWNpdC5wdXNoKGRlZmluaXRpb24pO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbikpIHtcbiAgICBleHBsaWNpdCA9IGV4cGxpY2l0LmNvbmNhdChkZWZpbml0aW9uKTtcbiAgfSBlbHNlIGlmIChkZWZpbml0aW9uICYmIChBcnJheS5pc0FycmF5KGRlZmluaXRpb24uaW1wbGljaXQpIHx8IEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbi5leHBsaWNpdCkpKSB7XG4gICAgaWYgKGRlZmluaXRpb24uaW1wbGljaXQpXG4gICAgICBpbXBsaWNpdCA9IGltcGxpY2l0LmNvbmNhdChkZWZpbml0aW9uLmltcGxpY2l0KTtcbiAgICBpZiAoZGVmaW5pdGlvbi5leHBsaWNpdClcbiAgICAgIGV4cGxpY2l0ID0gZXhwbGljaXQuY29uY2F0KGRlZmluaXRpb24uZXhwbGljaXQpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBleGNlcHRpb24oXCJTY2hlbWEuZXh0ZW5kIGFyZ3VtZW50IHNob3VsZCBiZSBhIFR5cGUsIFsgVHlwZSBdLCBvciBhIHNjaGVtYSBkZWZpbml0aW9uICh7IGltcGxpY2l0OiBbLi4uXSwgZXhwbGljaXQ6IFsuLi5dIH0pXCIpO1xuICB9XG4gIGltcGxpY2l0LmZvckVhY2goZnVuY3Rpb24odHlwZSQxKSB7XG4gICAgaWYgKCEodHlwZSQxIGluc3RhbmNlb2YgdHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBleGNlcHRpb24oXCJTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuXCIpO1xuICAgIH1cbiAgICBpZiAodHlwZSQxLmxvYWRLaW5kICYmIHR5cGUkMS5sb2FkS2luZCAhPT0gXCJzY2FsYXJcIikge1xuICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbihcIlRoZXJlIGlzIGEgbm9uLXNjYWxhciB0eXBlIGluIHRoZSBpbXBsaWNpdCBsaXN0IG9mIGEgc2NoZW1hLiBJbXBsaWNpdCByZXNvbHZpbmcgb2Ygc3VjaCB0eXBlcyBpcyBub3Qgc3VwcG9ydGVkLlwiKTtcbiAgICB9XG4gICAgaWYgKHR5cGUkMS5tdWx0aSkge1xuICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbihcIlRoZXJlIGlzIGEgbXVsdGkgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gTXVsdGkgdGFncyBjYW4gb25seSBiZSBsaXN0ZWQgYXMgZXhwbGljaXQuXCIpO1xuICAgIH1cbiAgfSk7XG4gIGV4cGxpY2l0LmZvckVhY2goZnVuY3Rpb24odHlwZSQxKSB7XG4gICAgaWYgKCEodHlwZSQxIGluc3RhbmNlb2YgdHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBleGNlcHRpb24oXCJTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuXCIpO1xuICAgIH1cbiAgfSk7XG4gIHZhciByZXN1bHQgPSBPYmplY3QuY3JlYXRlKFNjaGVtYSQxLnByb3RvdHlwZSk7XG4gIHJlc3VsdC5pbXBsaWNpdCA9ICh0aGlzLmltcGxpY2l0IHx8IFtdKS5jb25jYXQoaW1wbGljaXQpO1xuICByZXN1bHQuZXhwbGljaXQgPSAodGhpcy5leHBsaWNpdCB8fCBbXSkuY29uY2F0KGV4cGxpY2l0KTtcbiAgcmVzdWx0LmNvbXBpbGVkSW1wbGljaXQgPSBjb21waWxlTGlzdChyZXN1bHQsIFwiaW1wbGljaXRcIik7XG4gIHJlc3VsdC5jb21waWxlZEV4cGxpY2l0ID0gY29tcGlsZUxpc3QocmVzdWx0LCBcImV4cGxpY2l0XCIpO1xuICByZXN1bHQuY29tcGlsZWRUeXBlTWFwID0gY29tcGlsZU1hcChyZXN1bHQuY29tcGlsZWRJbXBsaWNpdCwgcmVzdWx0LmNvbXBpbGVkRXhwbGljaXQpO1xuICByZXR1cm4gcmVzdWx0O1xufTtcbnZhciBzY2hlbWEgPSBTY2hlbWEkMTtcbnZhciBzdHIgPSBuZXcgdHlwZShcInRhZzp5YW1sLm9yZywyMDAyOnN0clwiLCB7XG4gIGtpbmQ6IFwic2NhbGFyXCIsXG4gIGNvbnN0cnVjdDogZnVuY3Rpb24oZGF0YSkge1xuICAgIHJldHVybiBkYXRhICE9PSBudWxsID8gZGF0YSA6IFwiXCI7XG4gIH1cbn0pO1xudmFyIHNlcSA9IG5ldyB0eXBlKFwidGFnOnlhbWwub3JnLDIwMDI6c2VxXCIsIHtcbiAga2luZDogXCJzZXF1ZW5jZVwiLFxuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiBbXTtcbiAgfVxufSk7XG52YXIgbWFwID0gbmV3IHR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjptYXBcIiwge1xuICBraW5kOiBcIm1hcHBpbmdcIixcbiAgY29uc3RydWN0OiBmdW5jdGlvbihkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDoge307XG4gIH1cbn0pO1xudmFyIGZhaWxzYWZlID0gbmV3IHNjaGVtYSh7XG4gIGV4cGxpY2l0OiBbXG4gICAgc3RyLFxuICAgIHNlcSxcbiAgICBtYXBcbiAgXVxufSk7XG5mdW5jdGlvbiByZXNvbHZlWWFtbE51bGwoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbClcbiAgICByZXR1cm4gdHJ1ZTtcbiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoO1xuICByZXR1cm4gbWF4ID09PSAxICYmIGRhdGEgPT09IFwiflwiIHx8IG1heCA9PT0gNCAmJiAoZGF0YSA9PT0gXCJudWxsXCIgfHwgZGF0YSA9PT0gXCJOdWxsXCIgfHwgZGF0YSA9PT0gXCJOVUxMXCIpO1xufVxuZnVuY3Rpb24gY29uc3RydWN0WWFtbE51bGwoKSB7XG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gaXNOdWxsKG9iamVjdCkge1xuICByZXR1cm4gb2JqZWN0ID09PSBudWxsO1xufVxudmFyIF9udWxsID0gbmV3IHR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsXCIsIHtcbiAga2luZDogXCJzY2FsYXJcIixcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxOdWxsLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxOdWxsLFxuICBwcmVkaWNhdGU6IGlzTnVsbCxcbiAgcmVwcmVzZW50OiB7XG4gICAgY2Fub25pY2FsOiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIn5cIjtcbiAgICB9LFxuICAgIGxvd2VyY2FzZTogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgfSxcbiAgICB1cHBlcmNhc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFwiTlVMTFwiO1xuICAgIH0sXG4gICAgY2FtZWxjYXNlOiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIk51bGxcIjtcbiAgICB9LFxuICAgIGVtcHR5OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiBcImxvd2VyY2FzZVwiXG59KTtcbmZ1bmN0aW9uIHJlc29sdmVZYW1sQm9vbGVhbihkYXRhKSB7XG4gIGlmIChkYXRhID09PSBudWxsKVxuICAgIHJldHVybiBmYWxzZTtcbiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoO1xuICByZXR1cm4gbWF4ID09PSA0ICYmIChkYXRhID09PSBcInRydWVcIiB8fCBkYXRhID09PSBcIlRydWVcIiB8fCBkYXRhID09PSBcIlRSVUVcIikgfHwgbWF4ID09PSA1ICYmIChkYXRhID09PSBcImZhbHNlXCIgfHwgZGF0YSA9PT0gXCJGYWxzZVwiIHx8IGRhdGEgPT09IFwiRkFMU0VcIik7XG59XG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQm9vbGVhbihkYXRhKSB7XG4gIHJldHVybiBkYXRhID09PSBcInRydWVcIiB8fCBkYXRhID09PSBcIlRydWVcIiB8fCBkYXRhID09PSBcIlRSVUVcIjtcbn1cbmZ1bmN0aW9uIGlzQm9vbGVhbihvYmplY3QpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpID09PSBcIltvYmplY3QgQm9vbGVhbl1cIjtcbn1cbnZhciBib29sID0gbmV3IHR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sXCIsIHtcbiAga2luZDogXCJzY2FsYXJcIixcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxCb29sZWFuLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCb29sZWFuLFxuICBwcmVkaWNhdGU6IGlzQm9vbGVhbixcbiAgcmVwcmVzZW50OiB7XG4gICAgbG93ZXJjYXNlOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPyBcInRydWVcIiA6IFwiZmFsc2VcIjtcbiAgICB9LFxuICAgIHVwcGVyY2FzZTogZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID8gXCJUUlVFXCIgOiBcIkZBTFNFXCI7XG4gICAgfSxcbiAgICBjYW1lbGNhc2U6IGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgcmV0dXJuIG9iamVjdCA/IFwiVHJ1ZVwiIDogXCJGYWxzZVwiO1xuICAgIH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiBcImxvd2VyY2FzZVwiXG59KTtcbmZ1bmN0aW9uIGlzSGV4Q29kZShjKSB7XG4gIHJldHVybiA0OCA8PSBjICYmIGMgPD0gNTcgfHwgNjUgPD0gYyAmJiBjIDw9IDcwIHx8IDk3IDw9IGMgJiYgYyA8PSAxMDI7XG59XG5mdW5jdGlvbiBpc09jdENvZGUoYykge1xuICByZXR1cm4gNDggPD0gYyAmJiBjIDw9IDU1O1xufVxuZnVuY3Rpb24gaXNEZWNDb2RlKGMpIHtcbiAgcmV0dXJuIDQ4IDw9IGMgJiYgYyA8PSA1Nztcbn1cbmZ1bmN0aW9uIHJlc29sdmVZYW1sSW50ZWdlcihkYXRhKSB7XG4gIGlmIChkYXRhID09PSBudWxsKVxuICAgIHJldHVybiBmYWxzZTtcbiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoLCBpbmRleCA9IDAsIGhhc0RpZ2l0cyA9IGZhbHNlLCBjaDtcbiAgaWYgKCFtYXgpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBjaCA9IGRhdGFbaW5kZXhdO1xuICBpZiAoY2ggPT09IFwiLVwiIHx8IGNoID09PSBcIitcIikge1xuICAgIGNoID0gZGF0YVsrK2luZGV4XTtcbiAgfVxuICBpZiAoY2ggPT09IFwiMFwiKSB7XG4gICAgaWYgKGluZGV4ICsgMSA9PT0gbWF4KVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgY2ggPSBkYXRhWysraW5kZXhdO1xuICAgIGlmIChjaCA9PT0gXCJiXCIpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICAgICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICAgICAgaWYgKGNoID09PSBcIl9cIilcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKGNoICE9PSBcIjBcIiAmJiBjaCAhPT0gXCIxXCIpXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gXCJfXCI7XG4gICAgfVxuICAgIGlmIChjaCA9PT0gXCJ4XCIpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICAgICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICAgICAgaWYgKGNoID09PSBcIl9cIilcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKCFpc0hleENvZGUoZGF0YS5jaGFyQ29kZUF0KGluZGV4KSkpXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gXCJfXCI7XG4gICAgfVxuICAgIGlmIChjaCA9PT0gXCJvXCIpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICAgICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICAgICAgaWYgKGNoID09PSBcIl9cIilcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKCFpc09jdENvZGUoZGF0YS5jaGFyQ29kZUF0KGluZGV4KSkpXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gXCJfXCI7XG4gICAgfVxuICB9XG4gIGlmIChjaCA9PT0gXCJfXCIpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgIGlmIChjaCA9PT0gXCJfXCIpXG4gICAgICBjb250aW51ZTtcbiAgICBpZiAoIWlzRGVjQ29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICB9XG4gIGlmICghaGFzRGlnaXRzIHx8IGNoID09PSBcIl9cIilcbiAgICByZXR1cm4gZmFsc2U7XG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gY29uc3RydWN0WWFtbEludGVnZXIoZGF0YSkge1xuICB2YXIgdmFsdWUgPSBkYXRhLCBzaWduID0gMSwgY2g7XG4gIGlmICh2YWx1ZS5pbmRleE9mKFwiX1wiKSAhPT0gLTEpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL18vZywgXCJcIik7XG4gIH1cbiAgY2ggPSB2YWx1ZVswXTtcbiAgaWYgKGNoID09PSBcIi1cIiB8fCBjaCA9PT0gXCIrXCIpIHtcbiAgICBpZiAoY2ggPT09IFwiLVwiKVxuICAgICAgc2lnbiA9IC0xO1xuICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSk7XG4gICAgY2ggPSB2YWx1ZVswXTtcbiAgfVxuICBpZiAodmFsdWUgPT09IFwiMFwiKVxuICAgIHJldHVybiAwO1xuICBpZiAoY2ggPT09IFwiMFwiKSB7XG4gICAgaWYgKHZhbHVlWzFdID09PSBcImJcIilcbiAgICAgIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDIpO1xuICAgIGlmICh2YWx1ZVsxXSA9PT0gXCJ4XCIpXG4gICAgICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCAxNik7XG4gICAgaWYgKHZhbHVlWzFdID09PSBcIm9cIilcbiAgICAgIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDgpO1xuICB9XG4gIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUsIDEwKTtcbn1cbmZ1bmN0aW9uIGlzSW50ZWdlcihvYmplY3QpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpID09PSBcIltvYmplY3QgTnVtYmVyXVwiICYmIChvYmplY3QgJSAxID09PSAwICYmICFjb21tb24uaXNOZWdhdGl2ZVplcm8ob2JqZWN0KSk7XG59XG52YXIgaW50ID0gbmV3IHR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcIiwge1xuICBraW5kOiBcInNjYWxhclwiLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEludGVnZXIsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEludGVnZXIsXG4gIHByZWRpY2F0ZTogaXNJbnRlZ2VyLFxuICByZXByZXNlbnQ6IHtcbiAgICBiaW5hcnk6IGZ1bmN0aW9uKG9iaikge1xuICAgICAgcmV0dXJuIG9iaiA+PSAwID8gXCIwYlwiICsgb2JqLnRvU3RyaW5nKDIpIDogXCItMGJcIiArIG9iai50b1N0cmluZygyKS5zbGljZSgxKTtcbiAgICB9LFxuICAgIG9jdGFsOiBmdW5jdGlvbihvYmopIHtcbiAgICAgIHJldHVybiBvYmogPj0gMCA/IFwiMG9cIiArIG9iai50b1N0cmluZyg4KSA6IFwiLTBvXCIgKyBvYmoudG9TdHJpbmcoOCkuc2xpY2UoMSk7XG4gICAgfSxcbiAgICBkZWNpbWFsOiBmdW5jdGlvbihvYmopIHtcbiAgICAgIHJldHVybiBvYmoudG9TdHJpbmcoMTApO1xuICAgIH0sXG4gICAgLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuICAgIGhleGFkZWNpbWFsOiBmdW5jdGlvbihvYmopIHtcbiAgICAgIHJldHVybiBvYmogPj0gMCA/IFwiMHhcIiArIG9iai50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSA6IFwiLTB4XCIgKyBvYmoudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSk7XG4gICAgfVxuICB9LFxuICBkZWZhdWx0U3R5bGU6IFwiZGVjaW1hbFwiLFxuICBzdHlsZUFsaWFzZXM6IHtcbiAgICBiaW5hcnk6IFsyLCBcImJpblwiXSxcbiAgICBvY3RhbDogWzgsIFwib2N0XCJdLFxuICAgIGRlY2ltYWw6IFsxMCwgXCJkZWNcIl0sXG4gICAgaGV4YWRlY2ltYWw6IFsxNiwgXCJoZXhcIl1cbiAgfVxufSk7XG52YXIgWUFNTF9GTE9BVF9QQVRURVJOID0gbmV3IFJlZ0V4cChcbiAgLy8gMi41ZTQsIDIuNSBhbmQgaW50ZWdlcnNcbiAgXCJeKD86Wy0rXT8oPzpbMC05XVswLTlfXSopKD86XFxcXC5bMC05X10qKT8oPzpbZUVdWy0rXT9bMC05XSspP3xcXFxcLlswLTlfXSsoPzpbZUVdWy0rXT9bMC05XSspP3xbLStdP1xcXFwuKD86aW5mfEluZnxJTkYpfFxcXFwuKD86bmFufE5hTnxOQU4pKSRcIlxuKTtcbmZ1bmN0aW9uIHJlc29sdmVZYW1sRmxvYXQoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbClcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkgfHwgLy8gUXVpY2sgaGFjayB0byBub3QgYWxsb3cgaW50ZWdlcnMgZW5kIHdpdGggYF9gXG4gIC8vIFByb2JhYmx5IHNob3VsZCB1cGRhdGUgcmVnZXhwICYgY2hlY2sgc3BlZWRcbiAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdID09PSBcIl9cIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxGbG9hdChkYXRhKSB7XG4gIHZhciB2YWx1ZSwgc2lnbjtcbiAgdmFsdWUgPSBkYXRhLnJlcGxhY2UoL18vZywgXCJcIikudG9Mb3dlckNhc2UoKTtcbiAgc2lnbiA9IHZhbHVlWzBdID09PSBcIi1cIiA/IC0xIDogMTtcbiAgaWYgKFwiKy1cIi5pbmRleE9mKHZhbHVlWzBdKSA+PSAwKSB7XG4gICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgfVxuICBpZiAodmFsdWUgPT09IFwiLmluZlwiKSB7XG4gICAgcmV0dXJuIHNpZ24gPT09IDEgPyBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgOiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7XG4gIH0gZWxzZSBpZiAodmFsdWUgPT09IFwiLm5hblwiKSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuICByZXR1cm4gc2lnbiAqIHBhcnNlRmxvYXQodmFsdWUsIDEwKTtcbn1cbnZhciBTQ0lFTlRJRklDX1dJVEhPVVRfRE9UID0gL15bLStdP1swLTldK2UvO1xuZnVuY3Rpb24gcmVwcmVzZW50WWFtbEZsb2F0KG9iamVjdCwgc3R5bGUpIHtcbiAgdmFyIHJlcztcbiAgaWYgKGlzTmFOKG9iamVjdCkpIHtcbiAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgICBjYXNlIFwibG93ZXJjYXNlXCI6XG4gICAgICAgIHJldHVybiBcIi5uYW5cIjtcbiAgICAgIGNhc2UgXCJ1cHBlcmNhc2VcIjpcbiAgICAgICAgcmV0dXJuIFwiLk5BTlwiO1xuICAgICAgY2FzZSBcImNhbWVsY2FzZVwiOlxuICAgICAgICByZXR1cm4gXCIuTmFOXCI7XG4gICAgfVxuICB9IGVsc2UgaWYgKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA9PT0gb2JqZWN0KSB7XG4gICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgY2FzZSBcImxvd2VyY2FzZVwiOlxuICAgICAgICByZXR1cm4gXCIuaW5mXCI7XG4gICAgICBjYXNlIFwidXBwZXJjYXNlXCI6XG4gICAgICAgIHJldHVybiBcIi5JTkZcIjtcbiAgICAgIGNhc2UgXCJjYW1lbGNhc2VcIjpcbiAgICAgICAgcmV0dXJuIFwiLkluZlwiO1xuICAgIH1cbiAgfSBlbHNlIGlmIChOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkge1xuICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgIGNhc2UgXCJsb3dlcmNhc2VcIjpcbiAgICAgICAgcmV0dXJuIFwiLS5pbmZcIjtcbiAgICAgIGNhc2UgXCJ1cHBlcmNhc2VcIjpcbiAgICAgICAgcmV0dXJuIFwiLS5JTkZcIjtcbiAgICAgIGNhc2UgXCJjYW1lbGNhc2VcIjpcbiAgICAgICAgcmV0dXJuIFwiLS5JbmZcIjtcbiAgICB9XG4gIH0gZWxzZSBpZiAoY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpIHtcbiAgICByZXR1cm4gXCItMC4wXCI7XG4gIH1cbiAgcmVzID0gb2JqZWN0LnRvU3RyaW5nKDEwKTtcbiAgcmV0dXJuIFNDSUVOVElGSUNfV0lUSE9VVF9ET1QudGVzdChyZXMpID8gcmVzLnJlcGxhY2UoXCJlXCIsIFwiLmVcIikgOiByZXM7XG59XG5mdW5jdGlvbiBpc0Zsb2F0KG9iamVjdCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkgPT09IFwiW29iamVjdCBOdW1iZXJdXCIgJiYgKG9iamVjdCAlIDEgIT09IDAgfHwgY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpO1xufVxudmFyIGZsb2F0ID0gbmV3IHR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFwiLCB7XG4gIGtpbmQ6IFwic2NhbGFyXCIsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sRmxvYXQsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEZsb2F0LFxuICBwcmVkaWNhdGU6IGlzRmxvYXQsXG4gIHJlcHJlc2VudDogcmVwcmVzZW50WWFtbEZsb2F0LFxuICBkZWZhdWx0U3R5bGU6IFwibG93ZXJjYXNlXCJcbn0pO1xudmFyIGpzb24gPSBmYWlsc2FmZS5leHRlbmQoe1xuICBpbXBsaWNpdDogW1xuICAgIF9udWxsLFxuICAgIGJvb2wsXG4gICAgaW50LFxuICAgIGZsb2F0XG4gIF1cbn0pO1xudmFyIGNvcmUgPSBqc29uO1xudmFyIFlBTUxfREFURV9SRUdFWFAgPSBuZXcgUmVnRXhwKFxuICBcIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldKS0oWzAtOV1bMC05XSkkXCJcbik7XG52YXIgWUFNTF9USU1FU1RBTVBfUkVHRVhQID0gbmV3IFJlZ0V4cChcbiAgXCJeKFswLTldWzAtOV1bMC05XVswLTldKS0oWzAtOV1bMC05XT8pLShbMC05XVswLTldPykoPzpbVHRdfFsgXFxcXHRdKykoWzAtOV1bMC05XT8pOihbMC05XVswLTldKTooWzAtOV1bMC05XSkoPzpcXFxcLihbMC05XSopKT8oPzpbIFxcXFx0XSooWnwoWy0rXSkoWzAtOV1bMC05XT8pKD86OihbMC05XVswLTldKSk/KSk/JFwiXG4pO1xuZnVuY3Rpb24gcmVzb2x2ZVlhbWxUaW1lc3RhbXAoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbClcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmIChZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSkgIT09IG51bGwpXG4gICAgcmV0dXJuIHRydWU7XG4gIGlmIChZQU1MX1RJTUVTVEFNUF9SRUdFWFAuZXhlYyhkYXRhKSAhPT0gbnVsbClcbiAgICByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gY29uc3RydWN0WWFtbFRpbWVzdGFtcChkYXRhKSB7XG4gIHZhciBtYXRjaCwgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uID0gMCwgZGVsdGEgPSBudWxsLCB0el9ob3VyLCB0el9taW51dGUsIGRhdGU7XG4gIG1hdGNoID0gWUFNTF9EQVRFX1JFR0VYUC5leGVjKGRhdGEpO1xuICBpZiAobWF0Y2ggPT09IG51bGwpXG4gICAgbWF0Y2ggPSBZQU1MX1RJTUVTVEFNUF9SRUdFWFAuZXhlYyhkYXRhKTtcbiAgaWYgKG1hdGNoID09PSBudWxsKVxuICAgIHRocm93IG5ldyBFcnJvcihcIkRhdGUgcmVzb2x2ZSBlcnJvclwiKTtcbiAgeWVhciA9ICttYXRjaFsxXTtcbiAgbW9udGggPSArbWF0Y2hbMl0gLSAxO1xuICBkYXkgPSArbWF0Y2hbM107XG4gIGlmICghbWF0Y2hbNF0pIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSkpO1xuICB9XG4gIGhvdXIgPSArbWF0Y2hbNF07XG4gIG1pbnV0ZSA9ICttYXRjaFs1XTtcbiAgc2Vjb25kID0gK21hdGNoWzZdO1xuICBpZiAobWF0Y2hbN10pIHtcbiAgICBmcmFjdGlvbiA9IG1hdGNoWzddLnNsaWNlKDAsIDMpO1xuICAgIHdoaWxlIChmcmFjdGlvbi5sZW5ndGggPCAzKSB7XG4gICAgICBmcmFjdGlvbiArPSBcIjBcIjtcbiAgICB9XG4gICAgZnJhY3Rpb24gPSArZnJhY3Rpb247XG4gIH1cbiAgaWYgKG1hdGNoWzldKSB7XG4gICAgdHpfaG91ciA9ICttYXRjaFsxMF07XG4gICAgdHpfbWludXRlID0gKyhtYXRjaFsxMV0gfHwgMCk7XG4gICAgZGVsdGEgPSAodHpfaG91ciAqIDYwICsgdHpfbWludXRlKSAqIDZlNDtcbiAgICBpZiAobWF0Y2hbOV0gPT09IFwiLVwiKVxuICAgICAgZGVsdGEgPSAtZGVsdGE7XG4gIH1cbiAgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBmcmFjdGlvbikpO1xuICBpZiAoZGVsdGEpXG4gICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpIC0gZGVsdGEpO1xuICByZXR1cm4gZGF0ZTtcbn1cbmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxUaW1lc3RhbXAob2JqZWN0KSB7XG4gIHJldHVybiBvYmplY3QudG9JU09TdHJpbmcoKTtcbn1cbnZhciB0aW1lc3RhbXAgPSBuZXcgdHlwZShcInRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcFwiLCB7XG4gIGtpbmQ6IFwic2NhbGFyXCIsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sVGltZXN0YW1wLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAsXG4gIGluc3RhbmNlT2Y6IERhdGUsXG4gIHJlcHJlc2VudDogcmVwcmVzZW50WWFtbFRpbWVzdGFtcFxufSk7XG5mdW5jdGlvbiByZXNvbHZlWWFtbE1lcmdlKGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEgPT09IFwiPDxcIiB8fCBkYXRhID09PSBudWxsO1xufVxudmFyIG1lcmdlID0gbmV3IHR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZVwiLCB7XG4gIGtpbmQ6IFwic2NhbGFyXCIsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sTWVyZ2Vcbn0pO1xudmFyIEJBU0U2NF9NQVAgPSBcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89XFxuXFxyXCI7XG5mdW5jdGlvbiByZXNvbHZlWWFtbEJpbmFyeShkYXRhKSB7XG4gIGlmIChkYXRhID09PSBudWxsKVxuICAgIHJldHVybiBmYWxzZTtcbiAgdmFyIGNvZGUsIGlkeCwgYml0bGVuID0gMCwgbWF4ID0gZGF0YS5sZW5ndGgsIG1hcDIgPSBCQVNFNjRfTUFQO1xuICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICBjb2RlID0gbWFwMi5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpO1xuICAgIGlmIChjb2RlID4gNjQpXG4gICAgICBjb250aW51ZTtcbiAgICBpZiAoY29kZSA8IDApXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgYml0bGVuICs9IDY7XG4gIH1cbiAgcmV0dXJuIGJpdGxlbiAlIDggPT09IDA7XG59XG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQmluYXJ5KGRhdGEpIHtcbiAgdmFyIGlkeCwgdGFpbGJpdHMsIGlucHV0ID0gZGF0YS5yZXBsYWNlKC9bXFxyXFxuPV0vZywgXCJcIiksIG1heCA9IGlucHV0Lmxlbmd0aCwgbWFwMiA9IEJBU0U2NF9NQVAsIGJpdHMgPSAwLCByZXN1bHQgPSBbXTtcbiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7XG4gICAgaWYgKGlkeCAlIDQgPT09IDAgJiYgaWR4KSB7XG4gICAgICByZXN1bHQucHVzaChiaXRzID4+IDE2ICYgMjU1KTtcbiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gOCAmIDI1NSk7XG4gICAgICByZXN1bHQucHVzaChiaXRzICYgMjU1KTtcbiAgICB9XG4gICAgYml0cyA9IGJpdHMgPDwgNiB8IG1hcDIuaW5kZXhPZihpbnB1dC5jaGFyQXQoaWR4KSk7XG4gIH1cbiAgdGFpbGJpdHMgPSBtYXggJSA0ICogNjtcbiAgaWYgKHRhaWxiaXRzID09PSAwKSB7XG4gICAgcmVzdWx0LnB1c2goYml0cyA+PiAxNiAmIDI1NSk7XG4gICAgcmVzdWx0LnB1c2goYml0cyA+PiA4ICYgMjU1KTtcbiAgICByZXN1bHQucHVzaChiaXRzICYgMjU1KTtcbiAgfSBlbHNlIGlmICh0YWlsYml0cyA9PT0gMTgpIHtcbiAgICByZXN1bHQucHVzaChiaXRzID4+IDEwICYgMjU1KTtcbiAgICByZXN1bHQucHVzaChiaXRzID4+IDIgJiAyNTUpO1xuICB9IGVsc2UgaWYgKHRhaWxiaXRzID09PSAxMikge1xuICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gNCAmIDI1NSk7XG4gIH1cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHJlc3VsdCk7XG59XG5mdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KG9iamVjdCkge1xuICB2YXIgcmVzdWx0ID0gXCJcIiwgYml0cyA9IDAsIGlkeCwgdGFpbCwgbWF4ID0gb2JqZWN0Lmxlbmd0aCwgbWFwMiA9IEJBU0U2NF9NQVA7XG4gIGZvciAoaWR4ID0gMDsgaWR4IDwgbWF4OyBpZHgrKykge1xuICAgIGlmIChpZHggJSAzID09PSAwICYmIGlkeCkge1xuICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxOCAmIDYzXTtcbiAgICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgPj4gMTIgJiA2M107XG4gICAgICByZXN1bHQgKz0gbWFwMltiaXRzID4+IDYgJiA2M107XG4gICAgICByZXN1bHQgKz0gbWFwMltiaXRzICYgNjNdO1xuICAgIH1cbiAgICBiaXRzID0gKGJpdHMgPDwgOCkgKyBvYmplY3RbaWR4XTtcbiAgfVxuICB0YWlsID0gbWF4ICUgMztcbiAgaWYgKHRhaWwgPT09IDApIHtcbiAgICByZXN1bHQgKz0gbWFwMltiaXRzID4+IDE4ICYgNjNdO1xuICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgPj4gMTIgJiA2M107XG4gICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiA2ICYgNjNdO1xuICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgJiA2M107XG4gIH0gZWxzZSBpZiAodGFpbCA9PT0gMikge1xuICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgPj4gMTAgJiA2M107XG4gICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiA0ICYgNjNdO1xuICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgPDwgMiAmIDYzXTtcbiAgICByZXN1bHQgKz0gbWFwMls2NF07XG4gIH0gZWxzZSBpZiAodGFpbCA9PT0gMSkge1xuICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgPj4gMiAmIDYzXTtcbiAgICByZXN1bHQgKz0gbWFwMltiaXRzIDw8IDQgJiA2M107XG4gICAgcmVzdWx0ICs9IG1hcDJbNjRdO1xuICAgIHJlc3VsdCArPSBtYXAyWzY0XTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gaXNCaW5hcnkob2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IFVpbnQ4QXJyYXldXCI7XG59XG52YXIgYmluYXJ5ID0gbmV3IHR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjpiaW5hcnlcIiwge1xuICBraW5kOiBcInNjYWxhclwiLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEJpbmFyeSxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sQmluYXJ5LFxuICBwcmVkaWNhdGU6IGlzQmluYXJ5LFxuICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxCaW5hcnlcbn0pO1xudmFyIF9oYXNPd25Qcm9wZXJ0eSQzID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfdG9TdHJpbmckMiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5mdW5jdGlvbiByZXNvbHZlWWFtbE9tYXAoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbClcbiAgICByZXR1cm4gdHJ1ZTtcbiAgdmFyIG9iamVjdEtleXMgPSBbXSwgaW5kZXgsIGxlbmd0aCwgcGFpciwgcGFpcktleSwgcGFpckhhc0tleSwgb2JqZWN0ID0gZGF0YTtcbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpciA9IG9iamVjdFtpbmRleF07XG4gICAgcGFpckhhc0tleSA9IGZhbHNlO1xuICAgIGlmIChfdG9TdHJpbmckMi5jYWxsKHBhaXIpICE9PSBcIltvYmplY3QgT2JqZWN0XVwiKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAocGFpcktleSBpbiBwYWlyKSB7XG4gICAgICBpZiAoX2hhc093blByb3BlcnR5JDMuY2FsbChwYWlyLCBwYWlyS2V5KSkge1xuICAgICAgICBpZiAoIXBhaXJIYXNLZXkpXG4gICAgICAgICAgcGFpckhhc0tleSA9IHRydWU7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcGFpckhhc0tleSlcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICBpZiAob2JqZWN0S2V5cy5pbmRleE9mKHBhaXJLZXkpID09PSAtMSlcbiAgICAgIG9iamVjdEtleXMucHVzaChwYWlyS2V5KTtcbiAgICBlbHNlXG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sT21hcChkYXRhKSB7XG4gIHJldHVybiBkYXRhICE9PSBudWxsID8gZGF0YSA6IFtdO1xufVxudmFyIG9tYXAgPSBuZXcgdHlwZShcInRhZzp5YW1sLm9yZywyMDAyOm9tYXBcIiwge1xuICBraW5kOiBcInNlcXVlbmNlXCIsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sT21hcCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sT21hcFxufSk7XG52YXIgX3RvU3RyaW5nJDEgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuZnVuY3Rpb24gcmVzb2x2ZVlhbWxQYWlycyhkYXRhKSB7XG4gIGlmIChkYXRhID09PSBudWxsKVxuICAgIHJldHVybiB0cnVlO1xuICB2YXIgaW5kZXgsIGxlbmd0aCwgcGFpciwga2V5cywgcmVzdWx0LCBvYmplY3QgPSBkYXRhO1xuICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7XG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdO1xuICAgIGlmIChfdG9TdHJpbmckMS5jYWxsKHBhaXIpICE9PSBcIltvYmplY3QgT2JqZWN0XVwiKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGtleXMgPSBPYmplY3Qua2V5cyhwYWlyKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggIT09IDEpXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmVzdWx0W2luZGV4XSA9IFtrZXlzWzBdLCBwYWlyW2tleXNbMF1dXTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxQYWlycyhkYXRhKSB7XG4gIGlmIChkYXRhID09PSBudWxsKVxuICAgIHJldHVybiBbXTtcbiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCwgb2JqZWN0ID0gZGF0YTtcbiAgcmVzdWx0ID0gbmV3IEFycmF5KG9iamVjdC5sZW5ndGgpO1xuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTtcbiAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG4gICAgcmVzdWx0W2luZGV4XSA9IFtrZXlzWzBdLCBwYWlyW2tleXNbMF1dXTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxudmFyIHBhaXJzID0gbmV3IHR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlyc1wiLCB7XG4gIGtpbmQ6IFwic2VxdWVuY2VcIixcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxQYWlycyxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sUGFpcnNcbn0pO1xudmFyIF9oYXNPd25Qcm9wZXJ0eSQyID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbmZ1bmN0aW9uIHJlc29sdmVZYW1sU2V0KGRhdGEpIHtcbiAgaWYgKGRhdGEgPT09IG51bGwpXG4gICAgcmV0dXJuIHRydWU7XG4gIHZhciBrZXksIG9iamVjdCA9IGRhdGE7XG4gIGZvciAoa2V5IGluIG9iamVjdCkge1xuICAgIGlmIChfaGFzT3duUHJvcGVydHkkMi5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgaWYgKG9iamVjdFtrZXldICE9PSBudWxsKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gY29uc3RydWN0WWFtbFNldChkYXRhKSB7XG4gIHJldHVybiBkYXRhICE9PSBudWxsID8gZGF0YSA6IHt9O1xufVxudmFyIHNldCA9IG5ldyB0eXBlKFwidGFnOnlhbWwub3JnLDIwMDI6c2V0XCIsIHtcbiAga2luZDogXCJtYXBwaW5nXCIsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sU2V0LFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxTZXRcbn0pO1xudmFyIF9kZWZhdWx0ID0gY29yZS5leHRlbmQoe1xuICBpbXBsaWNpdDogW1xuICAgIHRpbWVzdGFtcCxcbiAgICBtZXJnZVxuICBdLFxuICBleHBsaWNpdDogW1xuICAgIGJpbmFyeSxcbiAgICBvbWFwLFxuICAgIHBhaXJzLFxuICAgIHNldFxuICBdXG59KTtcbnZhciBfaGFzT3duUHJvcGVydHkkMSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgQ09OVEVYVF9GTE9XX0lOID0gMTtcbnZhciBDT05URVhUX0ZMT1dfT1VUID0gMjtcbnZhciBDT05URVhUX0JMT0NLX0lOID0gMztcbnZhciBDT05URVhUX0JMT0NLX09VVCA9IDQ7XG52YXIgQ0hPTVBJTkdfQ0xJUCA9IDE7XG52YXIgQ0hPTVBJTkdfU1RSSVAgPSAyO1xudmFyIENIT01QSU5HX0tFRVAgPSAzO1xudmFyIFBBVFRFUk5fTk9OX1BSSU5UQUJMRSA9IC9bXFx4MDAtXFx4MDhcXHgwQlxceDBDXFx4MEUtXFx4MUZcXHg3Ri1cXHg4NFxceDg2LVxceDlGXFx1RkZGRVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdLztcbnZhciBQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyA9IC9bXFx4ODVcXHUyMDI4XFx1MjAyOV0vO1xudmFyIFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTID0gL1ssXFxbXFxdXFx7XFx9XS87XG52YXIgUEFUVEVSTl9UQUdfSEFORExFID0gL14oPzohfCEhfCFbYS16XFwtXSshKSQvaTtcbnZhciBQQVRURVJOX1RBR19VUkkgPSAvXig/OiF8W14sXFxbXFxdXFx7XFx9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelxcLSM7XFwvXFw/OkAmPVxcK1xcJCxfXFwuIX5cXConXFwoXFwpXFxbXFxdXSkqJC9pO1xuZnVuY3Rpb24gX2NsYXNzKG9iaikge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaik7XG59XG5mdW5jdGlvbiBpc19FT0woYykge1xuICByZXR1cm4gYyA9PT0gMTAgfHwgYyA9PT0gMTM7XG59XG5mdW5jdGlvbiBpc19XSElURV9TUEFDRShjKSB7XG4gIHJldHVybiBjID09PSA5IHx8IGMgPT09IDMyO1xufVxuZnVuY3Rpb24gaXNfV1NfT1JfRU9MKGMpIHtcbiAgcmV0dXJuIGMgPT09IDkgfHwgYyA9PT0gMzIgfHwgYyA9PT0gMTAgfHwgYyA9PT0gMTM7XG59XG5mdW5jdGlvbiBpc19GTE9XX0lORElDQVRPUihjKSB7XG4gIHJldHVybiBjID09PSA0NCB8fCBjID09PSA5MSB8fCBjID09PSA5MyB8fCBjID09PSAxMjMgfHwgYyA9PT0gMTI1O1xufVxuZnVuY3Rpb24gZnJvbUhleENvZGUoYykge1xuICB2YXIgbGM7XG4gIGlmICg0OCA8PSBjICYmIGMgPD0gNTcpIHtcbiAgICByZXR1cm4gYyAtIDQ4O1xuICB9XG4gIGxjID0gYyB8IDMyO1xuICBpZiAoOTcgPD0gbGMgJiYgbGMgPD0gMTAyKSB7XG4gICAgcmV0dXJuIGxjIC0gOTcgKyAxMDtcbiAgfVxuICByZXR1cm4gLTE7XG59XG5mdW5jdGlvbiBlc2NhcGVkSGV4TGVuKGMpIHtcbiAgaWYgKGMgPT09IDEyMCkge1xuICAgIHJldHVybiAyO1xuICB9XG4gIGlmIChjID09PSAxMTcpIHtcbiAgICByZXR1cm4gNDtcbiAgfVxuICBpZiAoYyA9PT0gODUpIHtcbiAgICByZXR1cm4gODtcbiAgfVxuICByZXR1cm4gMDtcbn1cbmZ1bmN0aW9uIGZyb21EZWNpbWFsQ29kZShjKSB7XG4gIGlmICg0OCA8PSBjICYmIGMgPD0gNTcpIHtcbiAgICByZXR1cm4gYyAtIDQ4O1xuICB9XG4gIHJldHVybiAtMTtcbn1cbmZ1bmN0aW9uIHNpbXBsZUVzY2FwZVNlcXVlbmNlKGMpIHtcbiAgcmV0dXJuIGMgPT09IDQ4ID8gXCJcXDBcIiA6IGMgPT09IDk3ID8gXCJcXHgwN1wiIDogYyA9PT0gOTggPyBcIlxcYlwiIDogYyA9PT0gMTE2ID8gXCJcdFwiIDogYyA9PT0gOSA/IFwiXHRcIiA6IGMgPT09IDExMCA/IFwiXFxuXCIgOiBjID09PSAxMTggPyBcIlxcdlwiIDogYyA9PT0gMTAyID8gXCJcXGZcIiA6IGMgPT09IDExNCA/IFwiXFxyXCIgOiBjID09PSAxMDEgPyBcIlxceDFCXCIgOiBjID09PSAzMiA/IFwiIFwiIDogYyA9PT0gMzQgPyAnXCInIDogYyA9PT0gNDcgPyBcIi9cIiA6IGMgPT09IDkyID8gXCJcXFxcXCIgOiBjID09PSA3OCA/IFwiwoVcIiA6IGMgPT09IDk1ID8gXCLCoFwiIDogYyA9PT0gNzYgPyBcIlxcdTIwMjhcIiA6IGMgPT09IDgwID8gXCJcXHUyMDI5XCIgOiBcIlwiO1xufVxuZnVuY3Rpb24gY2hhckZyb21Db2RlcG9pbnQoYykge1xuICBpZiAoYyA8PSA2NTUzNSkge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuICB9XG4gIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKFxuICAgIChjIC0gNjU1MzYgPj4gMTApICsgNTUyOTYsXG4gICAgKGMgLSA2NTUzNiAmIDEwMjMpICsgNTYzMjBcbiAgKTtcbn1cbnZhciBzaW1wbGVFc2NhcGVDaGVjayA9IG5ldyBBcnJheSgyNTYpO1xudmFyIHNpbXBsZUVzY2FwZU1hcCA9IG5ldyBBcnJheSgyNTYpO1xuZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBzaW1wbGVFc2NhcGVDaGVja1tpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpID8gMSA6IDA7XG4gIHNpbXBsZUVzY2FwZU1hcFtpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpO1xufVxuZnVuY3Rpb24gU3RhdGUkMShpbnB1dCwgb3B0aW9ucykge1xuICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gIHRoaXMuZmlsZW5hbWUgPSBvcHRpb25zW1wiZmlsZW5hbWVcIl0gfHwgbnVsbDtcbiAgdGhpcy5zY2hlbWEgPSBvcHRpb25zW1wic2NoZW1hXCJdIHx8IF9kZWZhdWx0O1xuICB0aGlzLm9uV2FybmluZyA9IG9wdGlvbnNbXCJvbldhcm5pbmdcIl0gfHwgbnVsbDtcbiAgdGhpcy5sZWdhY3kgPSBvcHRpb25zW1wibGVnYWN5XCJdIHx8IGZhbHNlO1xuICB0aGlzLmpzb24gPSBvcHRpb25zW1wianNvblwiXSB8fCBmYWxzZTtcbiAgdGhpcy5saXN0ZW5lciA9IG9wdGlvbnNbXCJsaXN0ZW5lclwiXSB8fCBudWxsO1xuICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0O1xuICB0aGlzLnR5cGVNYXAgPSB0aGlzLnNjaGVtYS5jb21waWxlZFR5cGVNYXA7XG4gIHRoaXMubGVuZ3RoID0gaW5wdXQubGVuZ3RoO1xuICB0aGlzLnBvc2l0aW9uID0gMDtcbiAgdGhpcy5saW5lID0gMDtcbiAgdGhpcy5saW5lU3RhcnQgPSAwO1xuICB0aGlzLmxpbmVJbmRlbnQgPSAwO1xuICB0aGlzLmZpcnN0VGFiSW5MaW5lID0gLTE7XG4gIHRoaXMuZG9jdW1lbnRzID0gW107XG59XG5mdW5jdGlvbiBnZW5lcmF0ZUVycm9yKHN0YXRlMiwgbWVzc2FnZSkge1xuICB2YXIgbWFyayA9IHtcbiAgICBuYW1lOiBzdGF0ZTIuZmlsZW5hbWUsXG4gICAgYnVmZmVyOiBzdGF0ZTIuaW5wdXQuc2xpY2UoMCwgLTEpLFxuICAgIC8vIG9taXQgdHJhaWxpbmcgXFwwXG4gICAgcG9zaXRpb246IHN0YXRlMi5wb3NpdGlvbixcbiAgICBsaW5lOiBzdGF0ZTIubGluZSxcbiAgICBjb2x1bW46IHN0YXRlMi5wb3NpdGlvbiAtIHN0YXRlMi5saW5lU3RhcnRcbiAgfTtcbiAgbWFyay5zbmlwcGV0ID0gc25pcHBldChtYXJrKTtcbiAgcmV0dXJuIG5ldyBleGNlcHRpb24obWVzc2FnZSwgbWFyayk7XG59XG5mdW5jdGlvbiB0aHJvd0Vycm9yKHN0YXRlMiwgbWVzc2FnZSkge1xuICB0aHJvdyBnZW5lcmF0ZUVycm9yKHN0YXRlMiwgbWVzc2FnZSk7XG59XG5mdW5jdGlvbiB0aHJvd1dhcm5pbmcoc3RhdGUyLCBtZXNzYWdlKSB7XG4gIGlmIChzdGF0ZTIub25XYXJuaW5nKSB7XG4gICAgc3RhdGUyLm9uV2FybmluZy5jYWxsKG51bGwsIGdlbmVyYXRlRXJyb3Ioc3RhdGUyLCBtZXNzYWdlKSk7XG4gIH1cbn1cbnZhciBkaXJlY3RpdmVIYW5kbGVycyA9IHtcbiAgWUFNTDogZnVuY3Rpb24gaGFuZGxlWWFtbERpcmVjdGl2ZShzdGF0ZTIsIG5hbWUsIGFyZ3MpIHtcbiAgICB2YXIgbWF0Y2gsIG1ham9yLCBtaW5vcjtcbiAgICBpZiAoc3RhdGUyLnZlcnNpb24gIT09IG51bGwpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcImR1cGxpY2F0aW9uIG9mICVZQU1MIGRpcmVjdGl2ZVwiKTtcbiAgICB9XG4gICAgaWYgKGFyZ3MubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJZQU1MIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgb25lIGFyZ3VtZW50XCIpO1xuICAgIH1cbiAgICBtYXRjaCA9IC9eKFswLTldKylcXC4oWzAtOV0rKSQvLmV4ZWMoYXJnc1swXSk7XG4gICAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZVwiKTtcbiAgICB9XG4gICAgbWFqb3IgPSBwYXJzZUludChtYXRjaFsxXSwgMTApO1xuICAgIG1pbm9yID0gcGFyc2VJbnQobWF0Y2hbMl0sIDEwKTtcbiAgICBpZiAobWFqb3IgIT09IDEpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcInVuYWNjZXB0YWJsZSBZQU1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50XCIpO1xuICAgIH1cbiAgICBzdGF0ZTIudmVyc2lvbiA9IGFyZ3NbMF07XG4gICAgc3RhdGUyLmNoZWNrTGluZUJyZWFrcyA9IG1pbm9yIDwgMjtcbiAgICBpZiAobWlub3IgIT09IDEgJiYgbWlub3IgIT09IDIpIHtcbiAgICAgIHRocm93V2FybmluZyhzdGF0ZTIsIFwidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudFwiKTtcbiAgICB9XG4gIH0sXG4gIFRBRzogZnVuY3Rpb24gaGFuZGxlVGFnRGlyZWN0aXZlKHN0YXRlMiwgbmFtZSwgYXJncykge1xuICAgIHZhciBoYW5kbGUsIHByZWZpeDtcbiAgICBpZiAoYXJncy5sZW5ndGggIT09IDIpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcIlRBRyBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IHR3byBhcmd1bWVudHNcIik7XG4gICAgfVxuICAgIGhhbmRsZSA9IGFyZ3NbMF07XG4gICAgcHJlZml4ID0gYXJnc1sxXTtcbiAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KGhhbmRsZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlXCIpO1xuICAgIH1cbiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZTIudGFnTWFwLCBoYW5kbGUpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgJ3RoZXJlIGlzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBzdWZmaXggZm9yIFwiJyArIGhhbmRsZSArICdcIiB0YWcgaGFuZGxlJyk7XG4gICAgfVxuICAgIGlmICghUEFUVEVSTl9UQUdfVVJJLnRlc3QocHJlZml4KSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwiaWxsLWZvcm1lZCB0YWcgcHJlZml4IChzZWNvbmQgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlXCIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgcHJlZml4ID0gZGVjb2RlVVJJQ29tcG9uZW50KHByZWZpeCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJ0YWcgcHJlZml4IGlzIG1hbGZvcm1lZDogXCIgKyBwcmVmaXgpO1xuICAgIH1cbiAgICBzdGF0ZTIudGFnTWFwW2hhbmRsZV0gPSBwcmVmaXg7XG4gIH1cbn07XG5mdW5jdGlvbiBjYXB0dXJlU2VnbWVudChzdGF0ZTIsIHN0YXJ0LCBlbmQsIGNoZWNrSnNvbikge1xuICB2YXIgX3Bvc2l0aW9uLCBfbGVuZ3RoLCBfY2hhcmFjdGVyLCBfcmVzdWx0O1xuICBpZiAoc3RhcnQgPCBlbmQpIHtcbiAgICBfcmVzdWx0ID0gc3RhdGUyLmlucHV0LnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgIGlmIChjaGVja0pzb24pIHtcbiAgICAgIGZvciAoX3Bvc2l0aW9uID0gMCwgX2xlbmd0aCA9IF9yZXN1bHQubGVuZ3RoOyBfcG9zaXRpb24gPCBfbGVuZ3RoOyBfcG9zaXRpb24gKz0gMSkge1xuICAgICAgICBfY2hhcmFjdGVyID0gX3Jlc3VsdC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG4gICAgICAgIGlmICghKF9jaGFyYWN0ZXIgPT09IDkgfHwgMzIgPD0gX2NoYXJhY3RlciAmJiBfY2hhcmFjdGVyIDw9IDExMTQxMTEpKSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwiZXhwZWN0ZWQgdmFsaWQgSlNPTiBjaGFyYWN0ZXJcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFBBVFRFUk5fTk9OX1BSSU5UQUJMRS50ZXN0KF9yZXN1bHQpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJ0aGUgc3RyZWFtIGNvbnRhaW5zIG5vbi1wcmludGFibGUgY2hhcmFjdGVyc1wiKTtcbiAgICB9XG4gICAgc3RhdGUyLnJlc3VsdCArPSBfcmVzdWx0O1xuICB9XG59XG5mdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHN0YXRlMiwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3ZlcnJpZGFibGVLZXlzKSB7XG4gIHZhciBzb3VyY2VLZXlzLCBrZXksIGluZGV4LCBxdWFudGl0eTtcbiAgaWYgKCFjb21tb24uaXNPYmplY3Qoc291cmNlKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcImNhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlXCIpO1xuICB9XG4gIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSBzb3VyY2VLZXlzLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkge1xuICAgIGtleSA9IHNvdXJjZUtleXNbaW5kZXhdO1xuICAgIGlmICghX2hhc093blByb3BlcnR5JDEuY2FsbChkZXN0aW5hdGlvbiwga2V5KSkge1xuICAgICAgZGVzdGluYXRpb25ba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgb3ZlcnJpZGFibGVLZXlzW2tleV0gPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gc3RvcmVNYXBwaW5nUGFpcihzdGF0ZTIsIF9yZXN1bHQsIG92ZXJyaWRhYmxlS2V5cywga2V5VGFnLCBrZXlOb2RlLCB2YWx1ZU5vZGUsIHN0YXJ0TGluZSwgc3RhcnRMaW5lU3RhcnQsIHN0YXJ0UG9zKSB7XG4gIHZhciBpbmRleCwgcXVhbnRpdHk7XG4gIGlmIChBcnJheS5pc0FycmF5KGtleU5vZGUpKSB7XG4gICAga2V5Tm9kZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGtleU5vZGUpO1xuICAgIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IGtleU5vZGUubGVuZ3RoOyBpbmRleCA8IHF1YW50aXR5OyBpbmRleCArPSAxKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShrZXlOb2RlW2luZGV4XSkpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwibmVzdGVkIGFycmF5cyBhcmUgbm90IHN1cHBvcnRlZCBpbnNpZGUga2V5c1wiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Yga2V5Tm9kZSA9PT0gXCJvYmplY3RcIiAmJiBfY2xhc3Moa2V5Tm9kZVtpbmRleF0pID09PSBcIltvYmplY3QgT2JqZWN0XVwiKSB7XG4gICAgICAgIGtleU5vZGVbaW5kZXhdID0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKHR5cGVvZiBrZXlOb2RlID09PSBcIm9iamVjdFwiICYmIF9jbGFzcyhrZXlOb2RlKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIikge1xuICAgIGtleU5vZGUgPSBcIltvYmplY3QgT2JqZWN0XVwiO1xuICB9XG4gIGtleU5vZGUgPSBTdHJpbmcoa2V5Tm9kZSk7XG4gIGlmIChfcmVzdWx0ID09PSBudWxsKSB7XG4gICAgX3Jlc3VsdCA9IHt9O1xuICB9XG4gIGlmIChrZXlUYWcgPT09IFwidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2VcIikge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlTm9kZSkpIHtcbiAgICAgIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IHZhbHVlTm9kZS5sZW5ndGg7IGluZGV4IDwgcXVhbnRpdHk7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgbWVyZ2VNYXBwaW5ncyhzdGF0ZTIsIF9yZXN1bHQsIHZhbHVlTm9kZVtpbmRleF0sIG92ZXJyaWRhYmxlS2V5cyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUyLCBfcmVzdWx0LCB2YWx1ZU5vZGUsIG92ZXJyaWRhYmxlS2V5cyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICghc3RhdGUyLmpzb24gJiYgIV9oYXNPd25Qcm9wZXJ0eSQxLmNhbGwob3ZlcnJpZGFibGVLZXlzLCBrZXlOb2RlKSAmJiBfaGFzT3duUHJvcGVydHkkMS5jYWxsKF9yZXN1bHQsIGtleU5vZGUpKSB7XG4gICAgICBzdGF0ZTIubGluZSA9IHN0YXJ0TGluZSB8fCBzdGF0ZTIubGluZTtcbiAgICAgIHN0YXRlMi5saW5lU3RhcnQgPSBzdGFydExpbmVTdGFydCB8fCBzdGF0ZTIubGluZVN0YXJ0O1xuICAgICAgc3RhdGUyLnBvc2l0aW9uID0gc3RhcnRQb3MgfHwgc3RhdGUyLnBvc2l0aW9uO1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwiZHVwbGljYXRlZCBtYXBwaW5nIGtleVwiKTtcbiAgICB9XG4gICAgaWYgKGtleU5vZGUgPT09IFwiX19wcm90b19fXCIpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfcmVzdWx0LCBrZXlOb2RlLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiB2YWx1ZU5vZGVcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBfcmVzdWx0W2tleU5vZGVdID0gdmFsdWVOb2RlO1xuICAgIH1cbiAgICBkZWxldGUgb3ZlcnJpZGFibGVLZXlzW2tleU5vZGVdO1xuICB9XG4gIHJldHVybiBfcmVzdWx0O1xufVxuZnVuY3Rpb24gcmVhZExpbmVCcmVhayhzdGF0ZTIpIHtcbiAgdmFyIGNoO1xuICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbik7XG4gIGlmIChjaCA9PT0gMTApIHtcbiAgICBzdGF0ZTIucG9zaXRpb24rKztcbiAgfSBlbHNlIGlmIChjaCA9PT0gMTMpIHtcbiAgICBzdGF0ZTIucG9zaXRpb24rKztcbiAgICBpZiAoc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uKSA9PT0gMTApIHtcbiAgICAgIHN0YXRlMi5wb3NpdGlvbisrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWRcIik7XG4gIH1cbiAgc3RhdGUyLmxpbmUgKz0gMTtcbiAgc3RhdGUyLmxpbmVTdGFydCA9IHN0YXRlMi5wb3NpdGlvbjtcbiAgc3RhdGUyLmZpcnN0VGFiSW5MaW5lID0gLTE7XG59XG5mdW5jdGlvbiBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlMiwgYWxsb3dDb21tZW50cywgY2hlY2tJbmRlbnQpIHtcbiAgdmFyIGxpbmVCcmVha3MgPSAwLCBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbik7XG4gIHdoaWxlIChjaCAhPT0gMCkge1xuICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgIGlmIChjaCA9PT0gOSAmJiBzdGF0ZTIuZmlyc3RUYWJJbkxpbmUgPT09IC0xKSB7XG4gICAgICAgIHN0YXRlMi5maXJzdFRhYkluTGluZSA9IHN0YXRlMi5wb3NpdGlvbjtcbiAgICAgIH1cbiAgICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICAgIH1cbiAgICBpZiAoYWxsb3dDb21tZW50cyAmJiBjaCA9PT0gMzUpIHtcbiAgICAgIGRvIHtcbiAgICAgICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gICAgICB9IHdoaWxlIChjaCAhPT0gMTAgJiYgY2ggIT09IDEzICYmIGNoICE9PSAwKTtcbiAgICB9XG4gICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUyKTtcbiAgICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uKTtcbiAgICAgIGxpbmVCcmVha3MrKztcbiAgICAgIHN0YXRlMi5saW5lSW5kZW50ID0gMDtcbiAgICAgIHdoaWxlIChjaCA9PT0gMzIpIHtcbiAgICAgICAgc3RhdGUyLmxpbmVJbmRlbnQrKztcbiAgICAgICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoY2hlY2tJbmRlbnQgIT09IC0xICYmIGxpbmVCcmVha3MgIT09IDAgJiYgc3RhdGUyLmxpbmVJbmRlbnQgPCBjaGVja0luZGVudCkge1xuICAgIHRocm93V2FybmluZyhzdGF0ZTIsIFwiZGVmaWNpZW50IGluZGVudGF0aW9uXCIpO1xuICB9XG4gIHJldHVybiBsaW5lQnJlYWtzO1xufVxuZnVuY3Rpb24gdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlMikge1xuICB2YXIgX3Bvc2l0aW9uID0gc3RhdGUyLnBvc2l0aW9uLCBjaDtcbiAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24pO1xuICBpZiAoKGNoID09PSA0NSB8fCBjaCA9PT0gNDYpICYmIGNoID09PSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24gKyAxKSAmJiBjaCA9PT0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMikpIHtcbiAgICBfcG9zaXRpb24gKz0gMztcbiAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG4gICAgaWYgKGNoID09PSAwIHx8IGlzX1dTX09SX0VPTChjaCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiB3cml0ZUZvbGRlZExpbmVzKHN0YXRlMiwgY291bnQpIHtcbiAgaWYgKGNvdW50ID09PSAxKSB7XG4gICAgc3RhdGUyLnJlc3VsdCArPSBcIiBcIjtcbiAgfSBlbHNlIGlmIChjb3VudCA+IDEpIHtcbiAgICBzdGF0ZTIucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoXCJcXG5cIiwgY291bnQgLSAxKTtcbiAgfVxufVxuZnVuY3Rpb24gcmVhZFBsYWluU2NhbGFyKHN0YXRlMiwgbm9kZUluZGVudCwgd2l0aGluRmxvd0NvbGxlY3Rpb24pIHtcbiAgdmFyIHByZWNlZGluZywgZm9sbG93aW5nLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGhhc1BlbmRpbmdDb250ZW50LCBfbGluZSwgX2xpbmVTdGFydCwgX2xpbmVJbmRlbnQsIF9raW5kID0gc3RhdGUyLmtpbmQsIF9yZXN1bHQgPSBzdGF0ZTIucmVzdWx0LCBjaDtcbiAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24pO1xuICBpZiAoaXNfV1NfT1JfRU9MKGNoKSB8fCBpc19GTE9XX0lORElDQVRPUihjaCkgfHwgY2ggPT09IDM1IHx8IGNoID09PSAzOCB8fCBjaCA9PT0gNDIgfHwgY2ggPT09IDMzIHx8IGNoID09PSAxMjQgfHwgY2ggPT09IDYyIHx8IGNoID09PSAzOSB8fCBjaCA9PT0gMzQgfHwgY2ggPT09IDM3IHx8IGNoID09PSA2NCB8fCBjaCA9PT0gOTYpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGNoID09PSA2MyB8fCBjaCA9PT0gNDUpIHtcbiAgICBmb2xsb3dpbmcgPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24gKyAxKTtcbiAgICBpZiAoaXNfV1NfT1JfRU9MKGZvbGxvd2luZykgfHwgd2l0aGluRmxvd0NvbGxlY3Rpb24gJiYgaXNfRkxPV19JTkRJQ0FUT1IoZm9sbG93aW5nKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBzdGF0ZTIua2luZCA9IFwic2NhbGFyXCI7XG4gIHN0YXRlMi5yZXN1bHQgPSBcIlwiO1xuICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUyLnBvc2l0aW9uO1xuICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlO1xuICB3aGlsZSAoY2ggIT09IDApIHtcbiAgICBpZiAoY2ggPT09IDU4KSB7XG4gICAgICBmb2xsb3dpbmcgPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24gKyAxKTtcbiAgICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2ggPT09IDM1KSB7XG4gICAgICBwcmVjZWRpbmcgPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24gLSAxKTtcbiAgICAgIGlmIChpc19XU19PUl9FT0wocHJlY2VkaW5nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN0YXRlMi5wb3NpdGlvbiA9PT0gc3RhdGUyLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUyKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihjaCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgX2xpbmUgPSBzdGF0ZTIubGluZTtcbiAgICAgIF9saW5lU3RhcnQgPSBzdGF0ZTIubGluZVN0YXJ0O1xuICAgICAgX2xpbmVJbmRlbnQgPSBzdGF0ZTIubGluZUluZGVudDtcbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUyLCBmYWxzZSwgLTEpO1xuICAgICAgaWYgKHN0YXRlMi5saW5lSW5kZW50ID49IG5vZGVJbmRlbnQpIHtcbiAgICAgICAgaGFzUGVuZGluZ0NvbnRlbnQgPSB0cnVlO1xuICAgICAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbik7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUyLnBvc2l0aW9uID0gY2FwdHVyZUVuZDtcbiAgICAgICAgc3RhdGUyLmxpbmUgPSBfbGluZTtcbiAgICAgICAgc3RhdGUyLmxpbmVTdGFydCA9IF9saW5lU3RhcnQ7XG4gICAgICAgIHN0YXRlMi5saW5lSW5kZW50ID0gX2xpbmVJbmRlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaGFzUGVuZGluZ0NvbnRlbnQpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlMiwgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCBmYWxzZSk7XG4gICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlMiwgc3RhdGUyLmxpbmUgLSBfbGluZSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUyLnBvc2l0aW9uO1xuICAgICAgaGFzUGVuZGluZ0NvbnRlbnQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZTIucG9zaXRpb24gKyAxO1xuICAgIH1cbiAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUyLnBvc2l0aW9uKTtcbiAgfVxuICBjYXB0dXJlU2VnbWVudChzdGF0ZTIsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgZmFsc2UpO1xuICBpZiAoc3RhdGUyLnJlc3VsdCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHN0YXRlMi5raW5kID0gX2tpbmQ7XG4gIHN0YXRlMi5yZXN1bHQgPSBfcmVzdWx0O1xuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiByZWFkU2luZ2xlUXVvdGVkU2NhbGFyKHN0YXRlMiwgbm9kZUluZGVudCkge1xuICB2YXIgY2gsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZDtcbiAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24pO1xuICBpZiAoY2ggIT09IDM5KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0YXRlMi5raW5kID0gXCJzY2FsYXJcIjtcbiAgc3RhdGUyLnJlc3VsdCA9IFwiXCI7XG4gIHN0YXRlMi5wb3NpdGlvbisrO1xuICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUyLnBvc2l0aW9uO1xuICB3aGlsZSAoKGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uKSkgIT09IDApIHtcbiAgICBpZiAoY2ggPT09IDM5KSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZTIsIGNhcHR1cmVTdGFydCwgc3RhdGUyLnBvc2l0aW9uLCB0cnVlKTtcbiAgICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICAgICAgaWYgKGNoID09PSAzOSkge1xuICAgICAgICBjYXB0dXJlU3RhcnQgPSBzdGF0ZTIucG9zaXRpb247XG4gICAgICAgIHN0YXRlMi5wb3NpdGlvbisrO1xuICAgICAgICBjYXB0dXJlRW5kID0gc3RhdGUyLnBvc2l0aW9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZTIsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgdHJ1ZSk7XG4gICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlMiwgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZTIsIGZhbHNlLCBub2RlSW5kZW50KSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUyLnBvc2l0aW9uO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUyLnBvc2l0aW9uID09PSBzdGF0ZTIubGluZVN0YXJ0ICYmIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZTIpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXJcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlMi5wb3NpdGlvbisrO1xuICAgICAgY2FwdHVyZUVuZCA9IHN0YXRlMi5wb3NpdGlvbjtcbiAgICB9XG4gIH1cbiAgdGhyb3dFcnJvcihzdGF0ZTIsIFwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhclwiKTtcbn1cbmZ1bmN0aW9uIHJlYWREb3VibGVRdW90ZWRTY2FsYXIoc3RhdGUyLCBub2RlSW5kZW50KSB7XG4gIHZhciBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGhleExlbmd0aCwgaGV4UmVzdWx0LCB0bXAsIGNoO1xuICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbik7XG4gIGlmIChjaCAhPT0gMzQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc3RhdGUyLmtpbmQgPSBcInNjYWxhclwiO1xuICBzdGF0ZTIucmVzdWx0ID0gXCJcIjtcbiAgc3RhdGUyLnBvc2l0aW9uKys7XG4gIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZTIucG9zaXRpb247XG4gIHdoaWxlICgoY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24pKSAhPT0gMCkge1xuICAgIGlmIChjaCA9PT0gMzQpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlMiwgY2FwdHVyZVN0YXJ0LCBzdGF0ZTIucG9zaXRpb24sIHRydWUpO1xuICAgICAgc3RhdGUyLnBvc2l0aW9uKys7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGNoID09PSA5Mikge1xuICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUyLCBjYXB0dXJlU3RhcnQsIHN0YXRlMi5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUyLnBvc2l0aW9uKTtcbiAgICAgIGlmIChpc19FT0woY2gpKSB7XG4gICAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUyLCBmYWxzZSwgbm9kZUluZGVudCk7XG4gICAgICB9IGVsc2UgaWYgKGNoIDwgMjU2ICYmIHNpbXBsZUVzY2FwZUNoZWNrW2NoXSkge1xuICAgICAgICBzdGF0ZTIucmVzdWx0ICs9IHNpbXBsZUVzY2FwZU1hcFtjaF07XG4gICAgICAgIHN0YXRlMi5wb3NpdGlvbisrO1xuICAgICAgfSBlbHNlIGlmICgodG1wID0gZXNjYXBlZEhleExlbihjaCkpID4gMCkge1xuICAgICAgICBoZXhMZW5ndGggPSB0bXA7XG4gICAgICAgIGhleFJlc3VsdCA9IDA7XG4gICAgICAgIGZvciAoOyBoZXhMZW5ndGggPiAwOyBoZXhMZW5ndGgtLSkge1xuICAgICAgICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICAgICAgICAgIGlmICgodG1wID0gZnJvbUhleENvZGUoY2gpKSA+PSAwKSB7XG4gICAgICAgICAgICBoZXhSZXN1bHQgPSAoaGV4UmVzdWx0IDw8IDQpICsgdG1wO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJleHBlY3RlZCBoZXhhZGVjaW1hbCBjaGFyYWN0ZXJcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0YXRlMi5yZXN1bHQgKz0gY2hhckZyb21Db2RlcG9pbnQoaGV4UmVzdWx0KTtcbiAgICAgICAgc3RhdGUyLnBvc2l0aW9uKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJ1bmtub3duIGVzY2FwZSBzZXF1ZW5jZVwiKTtcbiAgICAgIH1cbiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZTIucG9zaXRpb247XG4gICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZTIsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgdHJ1ZSk7XG4gICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlMiwgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZTIsIGZhbHNlLCBub2RlSW5kZW50KSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUyLnBvc2l0aW9uO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUyLnBvc2l0aW9uID09PSBzdGF0ZTIubGluZVN0YXJ0ICYmIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZTIpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXJcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlMi5wb3NpdGlvbisrO1xuICAgICAgY2FwdHVyZUVuZCA9IHN0YXRlMi5wb3NpdGlvbjtcbiAgICB9XG4gIH1cbiAgdGhyb3dFcnJvcihzdGF0ZTIsIFwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhclwiKTtcbn1cbmZ1bmN0aW9uIHJlYWRGbG93Q29sbGVjdGlvbihzdGF0ZTIsIG5vZGVJbmRlbnQpIHtcbiAgdmFyIHJlYWROZXh0ID0gdHJ1ZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MsIF90YWcgPSBzdGF0ZTIudGFnLCBfcmVzdWx0LCBfYW5jaG9yID0gc3RhdGUyLmFuY2hvciwgZm9sbG93aW5nLCB0ZXJtaW5hdG9yLCBpc1BhaXIsIGlzRXhwbGljaXRQYWlyLCBpc01hcHBpbmcsIG92ZXJyaWRhYmxlS2V5cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpLCBrZXlOb2RlLCBrZXlUYWcsIHZhbHVlTm9kZSwgY2g7XG4gIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uKTtcbiAgaWYgKGNoID09PSA5MSkge1xuICAgIHRlcm1pbmF0b3IgPSA5MztcbiAgICBpc01hcHBpbmcgPSBmYWxzZTtcbiAgICBfcmVzdWx0ID0gW107XG4gIH0gZWxzZSBpZiAoY2ggPT09IDEyMykge1xuICAgIHRlcm1pbmF0b3IgPSAxMjU7XG4gICAgaXNNYXBwaW5nID0gdHJ1ZTtcbiAgICBfcmVzdWx0ID0ge307XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChzdGF0ZTIuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgc3RhdGUyLmFuY2hvck1hcFtzdGF0ZTIuYW5jaG9yXSA9IF9yZXN1bHQ7XG4gIH1cbiAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gIHdoaWxlIChjaCAhPT0gMCkge1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUyLCB0cnVlLCBub2RlSW5kZW50KTtcbiAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbik7XG4gICAgaWYgKGNoID09PSB0ZXJtaW5hdG9yKSB7XG4gICAgICBzdGF0ZTIucG9zaXRpb24rKztcbiAgICAgIHN0YXRlMi50YWcgPSBfdGFnO1xuICAgICAgc3RhdGUyLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICBzdGF0ZTIua2luZCA9IGlzTWFwcGluZyA/IFwibWFwcGluZ1wiIDogXCJzZXF1ZW5jZVwiO1xuICAgICAgc3RhdGUyLnJlc3VsdCA9IF9yZXN1bHQ7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKCFyZWFkTmV4dCkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwibWlzc2VkIGNvbW1hIGJldHdlZW4gZmxvdyBjb2xsZWN0aW9uIGVudHJpZXNcIik7XG4gICAgfSBlbHNlIGlmIChjaCA9PT0gNDQpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcImV4cGVjdGVkIHRoZSBub2RlIGNvbnRlbnQsIGJ1dCBmb3VuZCAnLCdcIik7XG4gICAgfVxuICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsO1xuICAgIGlzUGFpciA9IGlzRXhwbGljaXRQYWlyID0gZmFsc2U7XG4gICAgaWYgKGNoID09PSA2Mykge1xuICAgICAgZm9sbG93aW5nID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uICsgMSk7XG4gICAgICBpZiAoaXNfV1NfT1JfRU9MKGZvbGxvd2luZykpIHtcbiAgICAgICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSB0cnVlO1xuICAgICAgICBzdGF0ZTIucG9zaXRpb24rKztcbiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZTIsIHRydWUsIG5vZGVJbmRlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICBfbGluZSA9IHN0YXRlMi5saW5lO1xuICAgIF9saW5lU3RhcnQgPSBzdGF0ZTIubGluZVN0YXJ0O1xuICAgIF9wb3MgPSBzdGF0ZTIucG9zaXRpb247XG4gICAgY29tcG9zZU5vZGUoc3RhdGUyLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICBrZXlUYWcgPSBzdGF0ZTIudGFnO1xuICAgIGtleU5vZGUgPSBzdGF0ZTIucmVzdWx0O1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUyLCB0cnVlLCBub2RlSW5kZW50KTtcbiAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbik7XG4gICAgaWYgKChpc0V4cGxpY2l0UGFpciB8fCBzdGF0ZTIubGluZSA9PT0gX2xpbmUpICYmIGNoID09PSA1OCkge1xuICAgICAgaXNQYWlyID0gdHJ1ZTtcbiAgICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZTIsIHRydWUsIG5vZGVJbmRlbnQpO1xuICAgICAgY29tcG9zZU5vZGUoc3RhdGUyLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICAgIHZhbHVlTm9kZSA9IHN0YXRlMi5yZXN1bHQ7XG4gICAgfVxuICAgIGlmIChpc01hcHBpbmcpIHtcbiAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUyLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlLCBfbGluZSwgX2xpbmVTdGFydCwgX3Bvcyk7XG4gICAgfSBlbHNlIGlmIChpc1BhaXIpIHtcbiAgICAgIF9yZXN1bHQucHVzaChzdG9yZU1hcHBpbmdQYWlyKHN0YXRlMiwgbnVsbCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgX3Jlc3VsdC5wdXNoKGtleU5vZGUpO1xuICAgIH1cbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlMiwgdHJ1ZSwgbm9kZUluZGVudCk7XG4gICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24pO1xuICAgIGlmIChjaCA9PT0gNDQpIHtcbiAgICAgIHJlYWROZXh0ID0gdHJ1ZTtcbiAgICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWFkTmV4dCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGZsb3cgY29sbGVjdGlvblwiKTtcbn1cbmZ1bmN0aW9uIHJlYWRCbG9ja1NjYWxhcihzdGF0ZTIsIG5vZGVJbmRlbnQpIHtcbiAgdmFyIGNhcHR1cmVTdGFydCwgZm9sZGluZywgY2hvbXBpbmcgPSBDSE9NUElOR19DTElQLCBkaWRSZWFkQ29udGVudCA9IGZhbHNlLCBkZXRlY3RlZEluZGVudCA9IGZhbHNlLCB0ZXh0SW5kZW50ID0gbm9kZUluZGVudCwgZW1wdHlMaW5lcyA9IDAsIGF0TW9yZUluZGVudGVkID0gZmFsc2UsIHRtcCwgY2g7XG4gIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uKTtcbiAgaWYgKGNoID09PSAxMjQpIHtcbiAgICBmb2xkaW5nID0gZmFsc2U7XG4gIH0gZWxzZSBpZiAoY2ggPT09IDYyKSB7XG4gICAgZm9sZGluZyA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0YXRlMi5raW5kID0gXCJzY2FsYXJcIjtcbiAgc3RhdGUyLnJlc3VsdCA9IFwiXCI7XG4gIHdoaWxlIChjaCAhPT0gMCkge1xuICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICAgIGlmIChjaCA9PT0gNDMgfHwgY2ggPT09IDQ1KSB7XG4gICAgICBpZiAoQ0hPTVBJTkdfQ0xJUCA9PT0gY2hvbXBpbmcpIHtcbiAgICAgICAgY2hvbXBpbmcgPSBjaCA9PT0gNDMgPyBDSE9NUElOR19LRUVQIDogQ0hPTVBJTkdfU1RSSVA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXJcIik7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICgodG1wID0gZnJvbURlY2ltYWxDb2RlKGNoKSkgPj0gMCkge1xuICAgICAgaWYgKHRtcCA9PT0gMCkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJiYWQgZXhwbGljaXQgaW5kZW50YXRpb24gd2lkdGggb2YgYSBibG9jayBzY2FsYXI7IGl0IGNhbm5vdCBiZSBsZXNzIHRoYW4gb25lXCIpO1xuICAgICAgfSBlbHNlIGlmICghZGV0ZWN0ZWRJbmRlbnQpIHtcbiAgICAgICAgdGV4dEluZGVudCA9IG5vZGVJbmRlbnQgKyB0bXAgLSAxO1xuICAgICAgICBkZXRlY3RlZEluZGVudCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJyZXBlYXQgb2YgYW4gaW5kZW50YXRpb24gd2lkdGggaWRlbnRpZmllclwiKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICBkbyB7XG4gICAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUyLnBvc2l0aW9uKTtcbiAgICB9IHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpO1xuICAgIGlmIChjaCA9PT0gMzUpIHtcbiAgICAgIGRvIHtcbiAgICAgICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gICAgICB9IHdoaWxlICghaXNfRU9MKGNoKSAmJiBjaCAhPT0gMCk7XG4gICAgfVxuICB9XG4gIHdoaWxlIChjaCAhPT0gMCkge1xuICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUyKTtcbiAgICBzdGF0ZTIubGluZUluZGVudCA9IDA7XG4gICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24pO1xuICAgIHdoaWxlICgoIWRldGVjdGVkSW5kZW50IHx8IHN0YXRlMi5saW5lSW5kZW50IDwgdGV4dEluZGVudCkgJiYgY2ggPT09IDMyKSB7XG4gICAgICBzdGF0ZTIubGluZUluZGVudCsrO1xuICAgICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gICAgfVxuICAgIGlmICghZGV0ZWN0ZWRJbmRlbnQgJiYgc3RhdGUyLmxpbmVJbmRlbnQgPiB0ZXh0SW5kZW50KSB7XG4gICAgICB0ZXh0SW5kZW50ID0gc3RhdGUyLmxpbmVJbmRlbnQ7XG4gICAgfVxuICAgIGlmIChpc19FT0woY2gpKSB7XG4gICAgICBlbXB0eUxpbmVzKys7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHN0YXRlMi5saW5lSW5kZW50IDwgdGV4dEluZGVudCkge1xuICAgICAgaWYgKGNob21waW5nID09PSBDSE9NUElOR19LRUVQKSB7XG4gICAgICAgIHN0YXRlMi5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdChcIlxcblwiLCBkaWRSZWFkQ29udGVudCA/IDEgKyBlbXB0eUxpbmVzIDogZW1wdHlMaW5lcyk7XG4gICAgICB9IGVsc2UgaWYgKGNob21waW5nID09PSBDSE9NUElOR19DTElQKSB7XG4gICAgICAgIGlmIChkaWRSZWFkQ29udGVudCkge1xuICAgICAgICAgIHN0YXRlMi5yZXN1bHQgKz0gXCJcXG5cIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChmb2xkaW5nKSB7XG4gICAgICBpZiAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICAgIGF0TW9yZUluZGVudGVkID0gdHJ1ZTtcbiAgICAgICAgc3RhdGUyLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KFwiXFxuXCIsIGRpZFJlYWRDb250ZW50ID8gMSArIGVtcHR5TGluZXMgOiBlbXB0eUxpbmVzKTtcbiAgICAgIH0gZWxzZSBpZiAoYXRNb3JlSW5kZW50ZWQpIHtcbiAgICAgICAgYXRNb3JlSW5kZW50ZWQgPSBmYWxzZTtcbiAgICAgICAgc3RhdGUyLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KFwiXFxuXCIsIGVtcHR5TGluZXMgKyAxKTtcbiAgICAgIH0gZWxzZSBpZiAoZW1wdHlMaW5lcyA9PT0gMCkge1xuICAgICAgICBpZiAoZGlkUmVhZENvbnRlbnQpIHtcbiAgICAgICAgICBzdGF0ZTIucmVzdWx0ICs9IFwiIFwiO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZTIucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoXCJcXG5cIiwgZW1wdHlMaW5lcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlMi5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdChcIlxcblwiLCBkaWRSZWFkQ29udGVudCA/IDEgKyBlbXB0eUxpbmVzIDogZW1wdHlMaW5lcyk7XG4gICAgfVxuICAgIGRpZFJlYWRDb250ZW50ID0gdHJ1ZTtcbiAgICBkZXRlY3RlZEluZGVudCA9IHRydWU7XG4gICAgZW1wdHlMaW5lcyA9IDA7XG4gICAgY2FwdHVyZVN0YXJ0ID0gc3RhdGUyLnBvc2l0aW9uO1xuICAgIHdoaWxlICghaXNfRU9MKGNoKSAmJiBjaCAhPT0gMCkge1xuICAgICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gICAgfVxuICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlMiwgY2FwdHVyZVN0YXJ0LCBzdGF0ZTIucG9zaXRpb24sIGZhbHNlKTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlMiwgbm9kZUluZGVudCkge1xuICB2YXIgX2xpbmUsIF90YWcgPSBzdGF0ZTIudGFnLCBfYW5jaG9yID0gc3RhdGUyLmFuY2hvciwgX3Jlc3VsdCA9IFtdLCBmb2xsb3dpbmcsIGRldGVjdGVkID0gZmFsc2UsIGNoO1xuICBpZiAoc3RhdGUyLmZpcnN0VGFiSW5MaW5lICE9PSAtMSlcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmIChzdGF0ZTIuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgc3RhdGUyLmFuY2hvck1hcFtzdGF0ZTIuYW5jaG9yXSA9IF9yZXN1bHQ7XG4gIH1cbiAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24pO1xuICB3aGlsZSAoY2ggIT09IDApIHtcbiAgICBpZiAoc3RhdGUyLmZpcnN0VGFiSW5MaW5lICE9PSAtMSkge1xuICAgICAgc3RhdGUyLnBvc2l0aW9uID0gc3RhdGUyLmZpcnN0VGFiSW5MaW5lO1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwidGFiIGNoYXJhY3RlcnMgbXVzdCBub3QgYmUgdXNlZCBpbiBpbmRlbnRhdGlvblwiKTtcbiAgICB9XG4gICAgaWYgKGNoICE9PSA0NSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGZvbGxvd2luZyA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbiArIDEpO1xuICAgIGlmICghaXNfV1NfT1JfRU9MKGZvbGxvd2luZykpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgc3RhdGUyLnBvc2l0aW9uKys7XG4gICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUyLCB0cnVlLCAtMSkpIHtcbiAgICAgIGlmIChzdGF0ZTIubGluZUluZGVudCA8PSBub2RlSW5kZW50KSB7XG4gICAgICAgIF9yZXN1bHQucHVzaChudWxsKTtcbiAgICAgICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgX2xpbmUgPSBzdGF0ZTIubGluZTtcbiAgICBjb21wb3NlTm9kZShzdGF0ZTIsIG5vZGVJbmRlbnQsIENPTlRFWFRfQkxPQ0tfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICBfcmVzdWx0LnB1c2goc3RhdGUyLnJlc3VsdCk7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZTIsIHRydWUsIC0xKTtcbiAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbik7XG4gICAgaWYgKChzdGF0ZTIubGluZSA9PT0gX2xpbmUgfHwgc3RhdGUyLmxpbmVJbmRlbnQgPiBub2RlSW5kZW50KSAmJiBjaCAhPT0gMCkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwiYmFkIGluZGVudGF0aW9uIG9mIGEgc2VxdWVuY2UgZW50cnlcIik7XG4gICAgfSBlbHNlIGlmIChzdGF0ZTIubGluZUluZGVudCA8IG5vZGVJbmRlbnQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoZGV0ZWN0ZWQpIHtcbiAgICBzdGF0ZTIudGFnID0gX3RhZztcbiAgICBzdGF0ZTIuYW5jaG9yID0gX2FuY2hvcjtcbiAgICBzdGF0ZTIua2luZCA9IFwic2VxdWVuY2VcIjtcbiAgICBzdGF0ZTIucmVzdWx0ID0gX3Jlc3VsdDtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiByZWFkQmxvY2tNYXBwaW5nKHN0YXRlMiwgbm9kZUluZGVudCwgZmxvd0luZGVudCkge1xuICB2YXIgZm9sbG93aW5nLCBhbGxvd0NvbXBhY3QsIF9saW5lLCBfa2V5TGluZSwgX2tleUxpbmVTdGFydCwgX2tleVBvcywgX3RhZyA9IHN0YXRlMi50YWcsIF9hbmNob3IgPSBzdGF0ZTIuYW5jaG9yLCBfcmVzdWx0ID0ge30sIG92ZXJyaWRhYmxlS2V5cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpLCBrZXlUYWcgPSBudWxsLCBrZXlOb2RlID0gbnVsbCwgdmFsdWVOb2RlID0gbnVsbCwgYXRFeHBsaWNpdEtleSA9IGZhbHNlLCBkZXRlY3RlZCA9IGZhbHNlLCBjaDtcbiAgaWYgKHN0YXRlMi5maXJzdFRhYkluTGluZSAhPT0gLTEpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBpZiAoc3RhdGUyLmFuY2hvciAhPT0gbnVsbCkge1xuICAgIHN0YXRlMi5hbmNob3JNYXBbc3RhdGUyLmFuY2hvcl0gPSBfcmVzdWx0O1xuICB9XG4gIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uKTtcbiAgd2hpbGUgKGNoICE9PSAwKSB7XG4gICAgaWYgKCFhdEV4cGxpY2l0S2V5ICYmIHN0YXRlMi5maXJzdFRhYkluTGluZSAhPT0gLTEpIHtcbiAgICAgIHN0YXRlMi5wb3NpdGlvbiA9IHN0YXRlMi5maXJzdFRhYkluTGluZTtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcInRhYiBjaGFyYWN0ZXJzIG11c3Qgbm90IGJlIHVzZWQgaW4gaW5kZW50YXRpb25cIik7XG4gICAgfVxuICAgIGZvbGxvd2luZyA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbiArIDEpO1xuICAgIF9saW5lID0gc3RhdGUyLmxpbmU7XG4gICAgaWYgKChjaCA9PT0gNjMgfHwgY2ggPT09IDU4KSAmJiBpc19XU19PUl9FT0woZm9sbG93aW5nKSkge1xuICAgICAgaWYgKGNoID09PSA2Mykge1xuICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUyLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgbnVsbCwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MpO1xuICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGRldGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgYXRFeHBsaWNpdEtleSA9IHRydWU7XG4gICAgICAgIGFsbG93Q29tcGFjdCA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlO1xuICAgICAgICBhbGxvd0NvbXBhY3QgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwiaW5jb21wbGV0ZSBleHBsaWNpdCBtYXBwaW5nIHBhaXI7IGEga2V5IG5vZGUgaXMgbWlzc2VkOyBvciBmb2xsb3dlZCBieSBhIG5vbi10YWJ1bGF0ZWQgZW1wdHkgbGluZVwiKTtcbiAgICAgIH1cbiAgICAgIHN0YXRlMi5wb3NpdGlvbiArPSAxO1xuICAgICAgY2ggPSBmb2xsb3dpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9rZXlMaW5lID0gc3RhdGUyLmxpbmU7XG4gICAgICBfa2V5TGluZVN0YXJ0ID0gc3RhdGUyLmxpbmVTdGFydDtcbiAgICAgIF9rZXlQb3MgPSBzdGF0ZTIucG9zaXRpb247XG4gICAgICBpZiAoIWNvbXBvc2VOb2RlKHN0YXRlMiwgZmxvd0luZGVudCwgQ09OVEVYVF9GTE9XX09VVCwgZmFsc2UsIHRydWUpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXRlMi5saW5lID09PSBfbGluZSkge1xuICAgICAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbik7XG4gICAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgICAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUyLnBvc2l0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2ggPT09IDU4KSB7XG4gICAgICAgICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gICAgICAgICAgaWYgKCFpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIGV4cGVjdGVkIGFmdGVyIHRoZSBrZXktdmFsdWUgc2VwYXJhdG9yIHdpdGhpbiBhIGJsb2NrIG1hcHBpbmdcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChhdEV4cGxpY2l0S2V5KSB7XG4gICAgICAgICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlMiwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTtcbiAgICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlO1xuICAgICAgICAgIGFsbG93Q29tcGFjdCA9IGZhbHNlO1xuICAgICAgICAgIGtleVRhZyA9IHN0YXRlMi50YWc7XG4gICAgICAgICAga2V5Tm9kZSA9IHN0YXRlMi5yZXN1bHQ7XG4gICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZFwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZTIudGFnID0gX3RhZztcbiAgICAgICAgICBzdGF0ZTIuYW5jaG9yID0gX2FuY2hvcjtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChkZXRlY3RlZCkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJjYW4gbm90IHJlYWQgYSBibG9jayBtYXBwaW5nIGVudHJ5OyBhIG11bHRpbGluZSBrZXkgbWF5IG5vdCBiZSBhbiBpbXBsaWNpdCBrZXlcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZTIudGFnID0gX3RhZztcbiAgICAgICAgc3RhdGUyLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3RhdGUyLmxpbmUgPT09IF9saW5lIHx8IHN0YXRlMi5saW5lSW5kZW50ID4gbm9kZUluZGVudCkge1xuICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgX2tleUxpbmUgPSBzdGF0ZTIubGluZTtcbiAgICAgICAgX2tleUxpbmVTdGFydCA9IHN0YXRlMi5saW5lU3RhcnQ7XG4gICAgICAgIF9rZXlQb3MgPSBzdGF0ZTIucG9zaXRpb247XG4gICAgICB9XG4gICAgICBpZiAoY29tcG9zZU5vZGUoc3RhdGUyLCBub2RlSW5kZW50LCBDT05URVhUX0JMT0NLX09VVCwgdHJ1ZSwgYWxsb3dDb21wYWN0KSkge1xuICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgICAgICAgIGtleU5vZGUgPSBzdGF0ZTIucmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlTm9kZSA9IHN0YXRlMi5yZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghYXRFeHBsaWNpdEtleSkge1xuICAgICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlMiwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MpO1xuICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUyLCB0cnVlLCAtMSk7XG4gICAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbik7XG4gICAgfVxuICAgIGlmICgoc3RhdGUyLmxpbmUgPT09IF9saW5lIHx8IHN0YXRlMi5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgJiYgY2ggIT09IDApIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcImJhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnlcIik7XG4gICAgfSBlbHNlIGlmIChzdGF0ZTIubGluZUluZGVudCA8IG5vZGVJbmRlbnQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUyLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgbnVsbCwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MpO1xuICB9XG4gIGlmIChkZXRlY3RlZCkge1xuICAgIHN0YXRlMi50YWcgPSBfdGFnO1xuICAgIHN0YXRlMi5hbmNob3IgPSBfYW5jaG9yO1xuICAgIHN0YXRlMi5raW5kID0gXCJtYXBwaW5nXCI7XG4gICAgc3RhdGUyLnJlc3VsdCA9IF9yZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIGRldGVjdGVkO1xufVxuZnVuY3Rpb24gcmVhZFRhZ1Byb3BlcnR5KHN0YXRlMikge1xuICB2YXIgX3Bvc2l0aW9uLCBpc1ZlcmJhdGltID0gZmFsc2UsIGlzTmFtZWQgPSBmYWxzZSwgdGFnSGFuZGxlLCB0YWdOYW1lLCBjaDtcbiAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24pO1xuICBpZiAoY2ggIT09IDMzKVxuICAgIHJldHVybiBmYWxzZTtcbiAgaWYgKHN0YXRlMi50YWcgIT09IG51bGwpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJkdXBsaWNhdGlvbiBvZiBhIHRhZyBwcm9wZXJ0eVwiKTtcbiAgfVxuICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUyLnBvc2l0aW9uKTtcbiAgaWYgKGNoID09PSA2MCkge1xuICAgIGlzVmVyYmF0aW0gPSB0cnVlO1xuICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICB9IGVsc2UgaWYgKGNoID09PSAzMykge1xuICAgIGlzTmFtZWQgPSB0cnVlO1xuICAgIHRhZ0hhbmRsZSA9IFwiISFcIjtcbiAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUyLnBvc2l0aW9uKTtcbiAgfSBlbHNlIHtcbiAgICB0YWdIYW5kbGUgPSBcIiFcIjtcbiAgfVxuICBfcG9zaXRpb24gPSBzdGF0ZTIucG9zaXRpb247XG4gIGlmIChpc1ZlcmJhdGltKSB7XG4gICAgZG8ge1xuICAgICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gICAgfSB3aGlsZSAoY2ggIT09IDAgJiYgY2ggIT09IDYyKTtcbiAgICBpZiAoc3RhdGUyLnBvc2l0aW9uIDwgc3RhdGUyLmxlbmd0aCkge1xuICAgICAgdGFnTmFtZSA9IHN0YXRlMi5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlMi5wb3NpdGlvbik7XG4gICAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUyLnBvc2l0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWdcIik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHdoaWxlIChjaCAhPT0gMCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgaWYgKGNoID09PSAzMykge1xuICAgICAgICBpZiAoIWlzTmFtZWQpIHtcbiAgICAgICAgICB0YWdIYW5kbGUgPSBzdGF0ZTIuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uIC0gMSwgc3RhdGUyLnBvc2l0aW9uICsgMSk7XG4gICAgICAgICAgaWYgKCFQQVRURVJOX1RBR19IQU5ETEUudGVzdCh0YWdIYW5kbGUpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJuYW1lZCB0YWcgaGFuZGxlIGNhbm5vdCBjb250YWluIHN1Y2ggY2hhcmFjdGVyc1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaXNOYW1lZCA9IHRydWU7XG4gICAgICAgICAgX3Bvc2l0aW9uID0gc3RhdGUyLnBvc2l0aW9uICsgMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGV4Y2xhbWF0aW9uIG1hcmtzXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUyLnBvc2l0aW9uKTtcbiAgICB9XG4gICAgdGFnTmFtZSA9IHN0YXRlMi5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlMi5wb3NpdGlvbik7XG4gICAgaWYgKFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTLnRlc3QodGFnTmFtZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVyc1wiKTtcbiAgICB9XG4gIH1cbiAgaWYgKHRhZ05hbWUgJiYgIVBBVFRFUk5fVEFHX1VSSS50ZXN0KHRhZ05hbWUpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwidGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiBcIiArIHRhZ05hbWUpO1xuICB9XG4gIHRyeSB7XG4gICAgdGFnTmFtZSA9IGRlY29kZVVSSUNvbXBvbmVudCh0YWdOYW1lKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwidGFnIG5hbWUgaXMgbWFsZm9ybWVkOiBcIiArIHRhZ05hbWUpO1xuICB9XG4gIGlmIChpc1ZlcmJhdGltKSB7XG4gICAgc3RhdGUyLnRhZyA9IHRhZ05hbWU7XG4gIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZTIudGFnTWFwLCB0YWdIYW5kbGUpKSB7XG4gICAgc3RhdGUyLnRhZyA9IHN0YXRlMi50YWdNYXBbdGFnSGFuZGxlXSArIHRhZ05hbWU7XG4gIH0gZWxzZSBpZiAodGFnSGFuZGxlID09PSBcIiFcIikge1xuICAgIHN0YXRlMi50YWcgPSBcIiFcIiArIHRhZ05hbWU7XG4gIH0gZWxzZSBpZiAodGFnSGFuZGxlID09PSBcIiEhXCIpIHtcbiAgICBzdGF0ZTIudGFnID0gXCJ0YWc6eWFtbC5vcmcsMjAwMjpcIiArIHRhZ05hbWU7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZTIsICd1bmRlY2xhcmVkIHRhZyBoYW5kbGUgXCInICsgdGFnSGFuZGxlICsgJ1wiJyk7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiByZWFkQW5jaG9yUHJvcGVydHkoc3RhdGUyKSB7XG4gIHZhciBfcG9zaXRpb24sIGNoO1xuICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbik7XG4gIGlmIChjaCAhPT0gMzgpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBpZiAoc3RhdGUyLmFuY2hvciAhPT0gbnVsbCkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcImR1cGxpY2F0aW9uIG9mIGFuIGFuY2hvciBwcm9wZXJ0eVwiKTtcbiAgfVxuICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUyLnBvc2l0aW9uKTtcbiAgX3Bvc2l0aW9uID0gc3RhdGUyLnBvc2l0aW9uO1xuICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkge1xuICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICB9XG4gIGlmIChzdGF0ZTIucG9zaXRpb24gPT09IF9wb3NpdGlvbikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXJcIik7XG4gIH1cbiAgc3RhdGUyLmFuY2hvciA9IHN0YXRlMi5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlMi5wb3NpdGlvbik7XG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gcmVhZEFsaWFzKHN0YXRlMikge1xuICB2YXIgX3Bvc2l0aW9uLCBhbGlhcywgY2g7XG4gIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uKTtcbiAgaWYgKGNoICE9PSA0MilcbiAgICByZXR1cm4gZmFsc2U7XG4gIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICBfcG9zaXRpb24gPSBzdGF0ZTIucG9zaXRpb247XG4gIHdoaWxlIChjaCAhPT0gMCAmJiAhaXNfV1NfT1JfRU9MKGNoKSAmJiAhaXNfRkxPV19JTkRJQ0FUT1IoY2gpKSB7XG4gICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gIH1cbiAgaWYgKHN0YXRlMi5wb3NpdGlvbiA9PT0gX3Bvc2l0aW9uKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwibmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyXCIpO1xuICB9XG4gIGFsaWFzID0gc3RhdGUyLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUyLnBvc2l0aW9uKTtcbiAgaWYgKCFfaGFzT3duUHJvcGVydHkkMS5jYWxsKHN0YXRlMi5hbmNob3JNYXAsIGFsaWFzKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUyLCAndW5pZGVudGlmaWVkIGFsaWFzIFwiJyArIGFsaWFzICsgJ1wiJyk7XG4gIH1cbiAgc3RhdGUyLnJlc3VsdCA9IHN0YXRlMi5hbmNob3JNYXBbYWxpYXNdO1xuICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlMiwgdHJ1ZSwgLTEpO1xuICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGNvbXBvc2VOb2RlKHN0YXRlMiwgcGFyZW50SW5kZW50LCBub2RlQ29udGV4dCwgYWxsb3dUb1NlZWssIGFsbG93Q29tcGFjdCkge1xuICB2YXIgYWxsb3dCbG9ja1N0eWxlcywgYWxsb3dCbG9ja1NjYWxhcnMsIGFsbG93QmxvY2tDb2xsZWN0aW9ucywgaW5kZW50U3RhdHVzID0gMSwgYXROZXdMaW5lID0gZmFsc2UsIGhhc0NvbnRlbnQgPSBmYWxzZSwgdHlwZUluZGV4LCB0eXBlUXVhbnRpdHksIHR5cGVMaXN0LCB0eXBlMiwgZmxvd0luZGVudCwgYmxvY2tJbmRlbnQ7XG4gIGlmIChzdGF0ZTIubGlzdGVuZXIgIT09IG51bGwpIHtcbiAgICBzdGF0ZTIubGlzdGVuZXIoXCJvcGVuXCIsIHN0YXRlMik7XG4gIH1cbiAgc3RhdGUyLnRhZyA9IG51bGw7XG4gIHN0YXRlMi5hbmNob3IgPSBudWxsO1xuICBzdGF0ZTIua2luZCA9IG51bGw7XG4gIHN0YXRlMi5yZXN1bHQgPSBudWxsO1xuICBhbGxvd0Jsb2NrU3R5bGVzID0gYWxsb3dCbG9ja1NjYWxhcnMgPSBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBDT05URVhUX0JMT0NLX09VVCA9PT0gbm9kZUNvbnRleHQgfHwgQ09OVEVYVF9CTE9DS19JTiA9PT0gbm9kZUNvbnRleHQ7XG4gIGlmIChhbGxvd1RvU2Vlaykge1xuICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlMiwgdHJ1ZSwgLTEpKSB7XG4gICAgICBhdE5ld0xpbmUgPSB0cnVlO1xuICAgICAgaWYgKHN0YXRlMi5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7XG4gICAgICAgIGluZGVudFN0YXR1cyA9IDE7XG4gICAgICB9IGVsc2UgaWYgKHN0YXRlMi5saW5lSW5kZW50ID09PSBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgaW5kZW50U3RhdHVzID0gMDtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdGUyLmxpbmVJbmRlbnQgPCBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChpbmRlbnRTdGF0dXMgPT09IDEpIHtcbiAgICB3aGlsZSAocmVhZFRhZ1Byb3BlcnR5KHN0YXRlMikgfHwgcmVhZEFuY2hvclByb3BlcnR5KHN0YXRlMikpIHtcbiAgICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlMiwgdHJ1ZSwgLTEpKSB7XG4gICAgICAgIGF0TmV3TGluZSA9IHRydWU7XG4gICAgICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGFsbG93QmxvY2tTdHlsZXM7XG4gICAgICAgIGlmIChzdGF0ZTIubGluZUluZGVudCA+IHBhcmVudEluZGVudCkge1xuICAgICAgICAgIGluZGVudFN0YXR1cyA9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUyLmxpbmVJbmRlbnQgPT09IHBhcmVudEluZGVudCkge1xuICAgICAgICAgIGluZGVudFN0YXR1cyA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUyLmxpbmVJbmRlbnQgPCBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAtMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChhbGxvd0Jsb2NrQ29sbGVjdGlvbnMpIHtcbiAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBhdE5ld0xpbmUgfHwgYWxsb3dDb21wYWN0O1xuICB9XG4gIGlmIChpbmRlbnRTdGF0dXMgPT09IDEgfHwgQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0KSB7XG4gICAgaWYgKENPTlRFWFRfRkxPV19JTiA9PT0gbm9kZUNvbnRleHQgfHwgQ09OVEVYVF9GTE9XX09VVCA9PT0gbm9kZUNvbnRleHQpIHtcbiAgICAgIGZsb3dJbmRlbnQgPSBwYXJlbnRJbmRlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsb3dJbmRlbnQgPSBwYXJlbnRJbmRlbnQgKyAxO1xuICAgIH1cbiAgICBibG9ja0luZGVudCA9IHN0YXRlMi5wb3NpdGlvbiAtIHN0YXRlMi5saW5lU3RhcnQ7XG4gICAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSkge1xuICAgICAgaWYgKGFsbG93QmxvY2tDb2xsZWN0aW9ucyAmJiAocmVhZEJsb2NrU2VxdWVuY2Uoc3RhdGUyLCBibG9ja0luZGVudCkgfHwgcmVhZEJsb2NrTWFwcGluZyhzdGF0ZTIsIGJsb2NrSW5kZW50LCBmbG93SW5kZW50KSkgfHwgcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlMiwgZmxvd0luZGVudCkpIHtcbiAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYWxsb3dCbG9ja1NjYWxhcnMgJiYgcmVhZEJsb2NrU2NhbGFyKHN0YXRlMiwgZmxvd0luZGVudCkgfHwgcmVhZFNpbmdsZVF1b3RlZFNjYWxhcihzdGF0ZTIsIGZsb3dJbmRlbnQpIHx8IHJlYWREb3VibGVRdW90ZWRTY2FsYXIoc3RhdGUyLCBmbG93SW5kZW50KSkge1xuICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHJlYWRBbGlhcyhzdGF0ZTIpKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG4gICAgICAgICAgaWYgKHN0YXRlMi50YWcgIT09IG51bGwgfHwgc3RhdGUyLmFuY2hvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwiYWxpYXMgbm9kZSBzaG91bGQgbm90IGhhdmUgYW55IHByb3BlcnRpZXNcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHJlYWRQbGFpblNjYWxhcihzdGF0ZTIsIGZsb3dJbmRlbnQsIENPTlRFWFRfRkxPV19JTiA9PT0gbm9kZUNvbnRleHQpKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG4gICAgICAgICAgaWYgKHN0YXRlMi50YWcgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXRlMi50YWcgPSBcIj9cIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXRlMi5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgICBzdGF0ZTIuYW5jaG9yTWFwW3N0YXRlMi5hbmNob3JdID0gc3RhdGUyLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaW5kZW50U3RhdHVzID09PSAwKSB7XG4gICAgICBoYXNDb250ZW50ID0gYWxsb3dCbG9ja0NvbGxlY3Rpb25zICYmIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlMiwgYmxvY2tJbmRlbnQpO1xuICAgIH1cbiAgfVxuICBpZiAoc3RhdGUyLnRhZyA9PT0gbnVsbCkge1xuICAgIGlmIChzdGF0ZTIuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgICBzdGF0ZTIuYW5jaG9yTWFwW3N0YXRlMi5hbmNob3JdID0gc3RhdGUyLnJlc3VsdDtcbiAgICB9XG4gIH0gZWxzZSBpZiAoc3RhdGUyLnRhZyA9PT0gXCI/XCIpIHtcbiAgICBpZiAoc3RhdGUyLnJlc3VsdCAhPT0gbnVsbCAmJiBzdGF0ZTIua2luZCAhPT0gXCJzY2FsYXJcIikge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsICd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPD8+IHRhZzsgaXQgc2hvdWxkIGJlIFwic2NhbGFyXCIsIG5vdCBcIicgKyBzdGF0ZTIua2luZCArICdcIicpO1xuICAgIH1cbiAgICBmb3IgKHR5cGVJbmRleCA9IDAsIHR5cGVRdWFudGl0eSA9IHN0YXRlMi5pbXBsaWNpdFR5cGVzLmxlbmd0aDsgdHlwZUluZGV4IDwgdHlwZVF1YW50aXR5OyB0eXBlSW5kZXggKz0gMSkge1xuICAgICAgdHlwZTIgPSBzdGF0ZTIuaW1wbGljaXRUeXBlc1t0eXBlSW5kZXhdO1xuICAgICAgaWYgKHR5cGUyLnJlc29sdmUoc3RhdGUyLnJlc3VsdCkpIHtcbiAgICAgICAgc3RhdGUyLnJlc3VsdCA9IHR5cGUyLmNvbnN0cnVjdChzdGF0ZTIucmVzdWx0KTtcbiAgICAgICAgc3RhdGUyLnRhZyA9IHR5cGUyLnRhZztcbiAgICAgICAgaWYgKHN0YXRlMi5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgICBzdGF0ZTIuYW5jaG9yTWFwW3N0YXRlMi5hbmNob3JdID0gc3RhdGUyLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoc3RhdGUyLnRhZyAhPT0gXCIhXCIpIHtcbiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZTIudHlwZU1hcFtzdGF0ZTIua2luZCB8fCBcImZhbGxiYWNrXCJdLCBzdGF0ZTIudGFnKSkge1xuICAgICAgdHlwZTIgPSBzdGF0ZTIudHlwZU1hcFtzdGF0ZTIua2luZCB8fCBcImZhbGxiYWNrXCJdW3N0YXRlMi50YWddO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlMiA9IG51bGw7XG4gICAgICB0eXBlTGlzdCA9IHN0YXRlMi50eXBlTWFwLm11bHRpW3N0YXRlMi5raW5kIHx8IFwiZmFsbGJhY2tcIl07XG4gICAgICBmb3IgKHR5cGVJbmRleCA9IDAsIHR5cGVRdWFudGl0eSA9IHR5cGVMaXN0Lmxlbmd0aDsgdHlwZUluZGV4IDwgdHlwZVF1YW50aXR5OyB0eXBlSW5kZXggKz0gMSkge1xuICAgICAgICBpZiAoc3RhdGUyLnRhZy5zbGljZSgwLCB0eXBlTGlzdFt0eXBlSW5kZXhdLnRhZy5sZW5ndGgpID09PSB0eXBlTGlzdFt0eXBlSW5kZXhdLnRhZykge1xuICAgICAgICAgIHR5cGUyID0gdHlwZUxpc3RbdHlwZUluZGV4XTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXR5cGUyKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJ1bmtub3duIHRhZyAhPFwiICsgc3RhdGUyLnRhZyArIFwiPlwiKTtcbiAgICB9XG4gICAgaWYgKHN0YXRlMi5yZXN1bHQgIT09IG51bGwgJiYgdHlwZTIua2luZCAhPT0gc3RhdGUyLmtpbmQpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcInVuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8XCIgKyBzdGF0ZTIudGFnICsgJz4gdGFnOyBpdCBzaG91bGQgYmUgXCInICsgdHlwZTIua2luZCArICdcIiwgbm90IFwiJyArIHN0YXRlMi5raW5kICsgJ1wiJyk7XG4gICAgfVxuICAgIGlmICghdHlwZTIucmVzb2x2ZShzdGF0ZTIucmVzdWx0LCBzdGF0ZTIudGFnKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwiY2Fubm90IHJlc29sdmUgYSBub2RlIHdpdGggITxcIiArIHN0YXRlMi50YWcgKyBcIj4gZXhwbGljaXQgdGFnXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZTIucmVzdWx0ID0gdHlwZTIuY29uc3RydWN0KHN0YXRlMi5yZXN1bHQsIHN0YXRlMi50YWcpO1xuICAgICAgaWYgKHN0YXRlMi5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgc3RhdGUyLmFuY2hvck1hcFtzdGF0ZTIuYW5jaG9yXSA9IHN0YXRlMi5yZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChzdGF0ZTIubGlzdGVuZXIgIT09IG51bGwpIHtcbiAgICBzdGF0ZTIubGlzdGVuZXIoXCJjbG9zZVwiLCBzdGF0ZTIpO1xuICB9XG4gIHJldHVybiBzdGF0ZTIudGFnICE9PSBudWxsIHx8IHN0YXRlMi5hbmNob3IgIT09IG51bGwgfHwgaGFzQ29udGVudDtcbn1cbmZ1bmN0aW9uIHJlYWREb2N1bWVudChzdGF0ZTIpIHtcbiAgdmFyIGRvY3VtZW50U3RhcnQgPSBzdGF0ZTIucG9zaXRpb24sIF9wb3NpdGlvbiwgZGlyZWN0aXZlTmFtZSwgZGlyZWN0aXZlQXJncywgaGFzRGlyZWN0aXZlcyA9IGZhbHNlLCBjaDtcbiAgc3RhdGUyLnZlcnNpb24gPSBudWxsO1xuICBzdGF0ZTIuY2hlY2tMaW5lQnJlYWtzID0gc3RhdGUyLmxlZ2FjeTtcbiAgc3RhdGUyLnRhZ01hcCA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBzdGF0ZTIuYW5jaG9yTWFwID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIHdoaWxlICgoY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24pKSAhPT0gMCkge1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUyLCB0cnVlLCAtMSk7XG4gICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdChzdGF0ZTIucG9zaXRpb24pO1xuICAgIGlmIChzdGF0ZTIubGluZUluZGVudCA+IDAgfHwgY2ggIT09IDM3KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaGFzRGlyZWN0aXZlcyA9IHRydWU7XG4gICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gICAgX3Bvc2l0aW9uID0gc3RhdGUyLnBvc2l0aW9uO1xuICAgIHdoaWxlIChjaCAhPT0gMCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgY2ggPSBzdGF0ZTIuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlMi5wb3NpdGlvbik7XG4gICAgfVxuICAgIGRpcmVjdGl2ZU5hbWUgPSBzdGF0ZTIuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZTIucG9zaXRpb24pO1xuICAgIGRpcmVjdGl2ZUFyZ3MgPSBbXTtcbiAgICBpZiAoZGlyZWN0aXZlTmFtZS5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJkaXJlY3RpdmUgbmFtZSBtdXN0IG5vdCBiZSBsZXNzIHRoYW4gb25lIGNoYXJhY3RlciBpbiBsZW5ndGhcIik7XG4gICAgfVxuICAgIHdoaWxlIChjaCAhPT0gMCkge1xuICAgICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICBjaCA9IHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUyLnBvc2l0aW9uKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaCA9PT0gMzUpIHtcbiAgICAgICAgZG8ge1xuICAgICAgICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICAgICAgICB9IHdoaWxlIChjaCAhPT0gMCAmJiAhaXNfRU9MKGNoKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKGlzX0VPTChjaCkpXG4gICAgICAgIGJyZWFrO1xuICAgICAgX3Bvc2l0aW9uID0gc3RhdGUyLnBvc2l0aW9uO1xuICAgICAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICAgIGNoID0gc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZTIucG9zaXRpb24pO1xuICAgICAgfVxuICAgICAgZGlyZWN0aXZlQXJncy5wdXNoKHN0YXRlMi5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlMi5wb3NpdGlvbikpO1xuICAgIH1cbiAgICBpZiAoY2ggIT09IDApXG4gICAgICByZWFkTGluZUJyZWFrKHN0YXRlMik7XG4gICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQxLmNhbGwoZGlyZWN0aXZlSGFuZGxlcnMsIGRpcmVjdGl2ZU5hbWUpKSB7XG4gICAgICBkaXJlY3RpdmVIYW5kbGVyc1tkaXJlY3RpdmVOYW1lXShzdGF0ZTIsIGRpcmVjdGl2ZU5hbWUsIGRpcmVjdGl2ZUFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvd1dhcm5pbmcoc3RhdGUyLCAndW5rbm93biBkb2N1bWVudCBkaXJlY3RpdmUgXCInICsgZGlyZWN0aXZlTmFtZSArICdcIicpO1xuICAgIH1cbiAgfVxuICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlMiwgdHJ1ZSwgLTEpO1xuICBpZiAoc3RhdGUyLmxpbmVJbmRlbnQgPT09IDAgJiYgc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uKSA9PT0gNDUgJiYgc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uICsgMSkgPT09IDQ1ICYmIHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbiArIDIpID09PSA0NSkge1xuICAgIHN0YXRlMi5wb3NpdGlvbiArPSAzO1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUyLCB0cnVlLCAtMSk7XG4gIH0gZWxzZSBpZiAoaGFzRGlyZWN0aXZlcykge1xuICAgIHRocm93RXJyb3Ioc3RhdGUyLCBcImRpcmVjdGl2ZXMgZW5kIG1hcmsgaXMgZXhwZWN0ZWRcIik7XG4gIH1cbiAgY29tcG9zZU5vZGUoc3RhdGUyLCBzdGF0ZTIubGluZUluZGVudCAtIDEsIENPTlRFWFRfQkxPQ0tfT1VULCBmYWxzZSwgdHJ1ZSk7XG4gIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUyLCB0cnVlLCAtMSk7XG4gIGlmIChzdGF0ZTIuY2hlY2tMaW5lQnJlYWtzICYmIFBBVFRFUk5fTk9OX0FTQ0lJX0xJTkVfQlJFQUtTLnRlc3Qoc3RhdGUyLmlucHV0LnNsaWNlKGRvY3VtZW50U3RhcnQsIHN0YXRlMi5wb3NpdGlvbikpKSB7XG4gICAgdGhyb3dXYXJuaW5nKHN0YXRlMiwgXCJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnRcIik7XG4gIH1cbiAgc3RhdGUyLmRvY3VtZW50cy5wdXNoKHN0YXRlMi5yZXN1bHQpO1xuICBpZiAoc3RhdGUyLnBvc2l0aW9uID09PSBzdGF0ZTIubGluZVN0YXJ0ICYmIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZTIpKSB7XG4gICAgaWYgKHN0YXRlMi5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlMi5wb3NpdGlvbikgPT09IDQ2KSB7XG4gICAgICBzdGF0ZTIucG9zaXRpb24gKz0gMztcbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUyLCB0cnVlLCAtMSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuICBpZiAoc3RhdGUyLnBvc2l0aW9uIDwgc3RhdGUyLmxlbmd0aCAtIDEpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlMiwgXCJlbmQgb2YgdGhlIHN0cmVhbSBvciBhIGRvY3VtZW50IHNlcGFyYXRvciBpcyBleHBlY3RlZFwiKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm47XG4gIH1cbn1cbmZ1bmN0aW9uIGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpIHtcbiAgaW5wdXQgPSBTdHJpbmcoaW5wdXQpO1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgaWYgKGlucHV0Lmxlbmd0aCAhPT0gMCkge1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KGlucHV0Lmxlbmd0aCAtIDEpICE9PSAxMCAmJiBpbnB1dC5jaGFyQ29kZUF0KGlucHV0Lmxlbmd0aCAtIDEpICE9PSAxMykge1xuICAgICAgaW5wdXQgKz0gXCJcXG5cIjtcbiAgICB9XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQoMCkgPT09IDY1Mjc5KSB7XG4gICAgICBpbnB1dCA9IGlucHV0LnNsaWNlKDEpO1xuICAgIH1cbiAgfVxuICB2YXIgc3RhdGUyID0gbmV3IFN0YXRlJDEoaW5wdXQsIG9wdGlvbnMpO1xuICB2YXIgbnVsbHBvcyA9IGlucHV0LmluZGV4T2YoXCJcXDBcIik7XG4gIGlmIChudWxscG9zICE9PSAtMSkge1xuICAgIHN0YXRlMi5wb3NpdGlvbiA9IG51bGxwb3M7XG4gICAgdGhyb3dFcnJvcihzdGF0ZTIsIFwibnVsbCBieXRlIGlzIG5vdCBhbGxvd2VkIGluIGlucHV0XCIpO1xuICB9XG4gIHN0YXRlMi5pbnB1dCArPSBcIlxcMFwiO1xuICB3aGlsZSAoc3RhdGUyLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUyLnBvc2l0aW9uKSA9PT0gMzIpIHtcbiAgICBzdGF0ZTIubGluZUluZGVudCArPSAxO1xuICAgIHN0YXRlMi5wb3NpdGlvbiArPSAxO1xuICB9XG4gIHdoaWxlIChzdGF0ZTIucG9zaXRpb24gPCBzdGF0ZTIubGVuZ3RoIC0gMSkge1xuICAgIHJlYWREb2N1bWVudChzdGF0ZTIpO1xuICB9XG4gIHJldHVybiBzdGF0ZTIuZG9jdW1lbnRzO1xufVxuZnVuY3Rpb24gbG9hZEFsbCQxKGlucHV0LCBpdGVyYXRvciwgb3B0aW9ucykge1xuICBpZiAoaXRlcmF0b3IgIT09IG51bGwgJiYgdHlwZW9mIGl0ZXJhdG9yID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvcHRpb25zID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgb3B0aW9ucyA9IGl0ZXJhdG9yO1xuICAgIGl0ZXJhdG9yID0gbnVsbDtcbiAgfVxuICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyk7XG4gIGlmICh0eXBlb2YgaXRlcmF0b3IgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBkb2N1bWVudHM7XG4gIH1cbiAgZm9yICh2YXIgaW5kZXggPSAwLCBsZW5ndGggPSBkb2N1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGl0ZXJhdG9yKGRvY3VtZW50c1tpbmRleF0pO1xuICB9XG59XG5mdW5jdGlvbiBsb2FkJDEoaW5wdXQsIG9wdGlvbnMpIHtcbiAgdmFyIGRvY3VtZW50cyA9IGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpO1xuICBpZiAoZG9jdW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH0gZWxzZSBpZiAoZG9jdW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBkb2N1bWVudHNbMF07XG4gIH1cbiAgdGhyb3cgbmV3IGV4Y2VwdGlvbihcImV4cGVjdGVkIGEgc2luZ2xlIGRvY3VtZW50IGluIHRoZSBzdHJlYW0sIGJ1dCBmb3VuZCBtb3JlXCIpO1xufVxudmFyIGxvYWRBbGxfMSA9IGxvYWRBbGwkMTtcbnZhciBsb2FkXzEgPSBsb2FkJDE7XG52YXIgbG9hZGVyID0ge1xuICBsb2FkQWxsOiBsb2FkQWxsXzEsXG4gIGxvYWQ6IGxvYWRfMVxufTtcbnZhciBKU09OX1NDSEVNQSA9IGpzb247XG52YXIgbG9hZCA9IGxvYWRlci5sb2FkO1xuZnVuY3Rpb24gZXh0cmFjdEZyb250TWF0dGVyKHRleHQpIHtcbiAgY29uc3QgbWF0Y2hlcyA9IHRleHQubWF0Y2goZnJvbnRNYXR0ZXJSZWdleCk7XG4gIGlmICghbWF0Y2hlcykge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0LFxuICAgICAgbWV0YWRhdGE6IHt9XG4gICAgfTtcbiAgfVxuICBsZXQgcGFyc2VkID0gbG9hZChtYXRjaGVzWzFdLCB7XG4gICAgLy8gVG8gc3VwcG9ydCBjb25maWcsIHdlIG5lZWQgSlNPTiBzY2hlbWEuXG4gICAgLy8gaHR0cHM6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjgwMzIzMVxuICAgIHNjaGVtYTogSlNPTl9TQ0hFTUFcbiAgfSkgPz8ge307XG4gIHBhcnNlZCA9IHR5cGVvZiBwYXJzZWQgPT09IFwib2JqZWN0XCIgJiYgIUFycmF5LmlzQXJyYXkocGFyc2VkKSA/IHBhcnNlZCA6IHt9O1xuICBjb25zdCBtZXRhZGF0YSA9IHt9O1xuICBpZiAocGFyc2VkLmRpc3BsYXlNb2RlKSB7XG4gICAgbWV0YWRhdGEuZGlzcGxheU1vZGUgPSBwYXJzZWQuZGlzcGxheU1vZGUudG9TdHJpbmcoKTtcbiAgfVxuICBpZiAocGFyc2VkLnRpdGxlKSB7XG4gICAgbWV0YWRhdGEudGl0bGUgPSBwYXJzZWQudGl0bGUudG9TdHJpbmcoKTtcbiAgfVxuICBpZiAocGFyc2VkLmNvbmZpZykge1xuICAgIG1ldGFkYXRhLmNvbmZpZyA9IHBhcnNlZC5jb25maWc7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB0ZXh0OiB0ZXh0LnNsaWNlKG1hdGNoZXNbMF0ubGVuZ3RoKSxcbiAgICBtZXRhZGF0YVxuICB9O1xufVxuY29uc3QgY2xlYW51cFRleHQgPSAoY29kZSkgPT4ge1xuICByZXR1cm4gY29kZS5yZXBsYWNlKC9cXHJcXG4/L2csIFwiXFxuXCIpLnJlcGxhY2UoXG4gICAgLzwoXFx3KykoW14+XSopPi9nLFxuICAgIChtYXRjaCwgdGFnLCBhdHRyaWJ1dGVzKSA9PiBcIjxcIiArIHRhZyArIGF0dHJpYnV0ZXMucmVwbGFjZSgvPVwiKFteXCJdKilcIi9nLCBcIj0nJDEnXCIpICsgXCI+XCJcbiAgKTtcbn07XG5jb25zdCBwcm9jZXNzRnJvbnRtYXR0ZXIgPSAoY29kZSkgPT4ge1xuICBjb25zdCB7IHRleHQsIG1ldGFkYXRhIH0gPSBleHRyYWN0RnJvbnRNYXR0ZXIoY29kZSk7XG4gIGNvbnN0IHsgZGlzcGxheU1vZGUsIHRpdGxlLCBjb25maWc6IGNvbmZpZzIgPSB7fSB9ID0gbWV0YWRhdGE7XG4gIGlmIChkaXNwbGF5TW9kZSkge1xuICAgIGlmICghY29uZmlnMi5nYW50dCkge1xuICAgICAgY29uZmlnMi5nYW50dCA9IHt9O1xuICAgIH1cbiAgICBjb25maWcyLmdhbnR0LmRpc3BsYXlNb2RlID0gZGlzcGxheU1vZGU7XG4gIH1cbiAgcmV0dXJuIHsgdGl0bGUsIGNvbmZpZzogY29uZmlnMiwgdGV4dCB9O1xufTtcbmNvbnN0IHByb2Nlc3NEaXJlY3RpdmVzID0gKGNvZGUpID0+IHtcbiAgY29uc3QgaW5pdERpcmVjdGl2ZSA9IHV0aWxzLmRldGVjdEluaXQoY29kZSkgPz8ge307XG4gIGNvbnN0IHdyYXBEaXJlY3RpdmVzID0gdXRpbHMuZGV0ZWN0RGlyZWN0aXZlKGNvZGUsIFwid3JhcFwiKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkod3JhcERpcmVjdGl2ZXMpKSB7XG4gICAgaW5pdERpcmVjdGl2ZS53cmFwID0gd3JhcERpcmVjdGl2ZXMuc29tZSgoeyB0eXBlOiB0eXBlMiB9KSA9PiB7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoKHdyYXBEaXJlY3RpdmVzID09IG51bGwgPyB2b2lkIDAgOiB3cmFwRGlyZWN0aXZlcy50eXBlKSA9PT0gXCJ3cmFwXCIpIHtcbiAgICBpbml0RGlyZWN0aXZlLndyYXAgPSB0cnVlO1xuICB9XG4gIHJldHVybiB7XG4gICAgdGV4dDogcmVtb3ZlRGlyZWN0aXZlcyhjb2RlKSxcbiAgICBkaXJlY3RpdmU6IGluaXREaXJlY3RpdmVcbiAgfTtcbn07XG5mdW5jdGlvbiBwcmVwcm9jZXNzRGlhZ3JhbShjb2RlKSB7XG4gIGNvbnN0IGNsZWFuZWRDb2RlID0gY2xlYW51cFRleHQoY29kZSk7XG4gIGNvbnN0IGZyb250TWF0dGVyUmVzdWx0ID0gcHJvY2Vzc0Zyb250bWF0dGVyKGNsZWFuZWRDb2RlKTtcbiAgY29uc3QgZGlyZWN0aXZlUmVzdWx0ID0gcHJvY2Vzc0RpcmVjdGl2ZXMoZnJvbnRNYXR0ZXJSZXN1bHQudGV4dCk7XG4gIGNvbnN0IGNvbmZpZzIgPSBjbGVhbkFuZE1lcmdlKGZyb250TWF0dGVyUmVzdWx0LmNvbmZpZywgZGlyZWN0aXZlUmVzdWx0LmRpcmVjdGl2ZSk7XG4gIGNvZGUgPSBjbGVhbnVwQ29tbWVudHMoZGlyZWN0aXZlUmVzdWx0LnRleHQpO1xuICByZXR1cm4ge1xuICAgIGNvZGUsXG4gICAgdGl0bGU6IGZyb250TWF0dGVyUmVzdWx0LnRpdGxlLFxuICAgIGNvbmZpZzogY29uZmlnMlxuICB9O1xufVxuY29uc3QgTUFYX1RFWFRMRU5HVEggPSA1ZTQ7XG5jb25zdCBNQVhfVEVYVExFTkdUSF9FWENFRURFRF9NU0cgPSBcImdyYXBoIFRCO2FbTWF4aW11bSB0ZXh0IHNpemUgaW4gZGlhZ3JhbSBleGNlZWRlZF07c3R5bGUgYSBmaWxsOiNmYWFcIjtcbmNvbnN0IFNFQ1VSSVRZX0xWTF9TQU5EQk9YID0gXCJzYW5kYm94XCI7XG5jb25zdCBTRUNVUklUWV9MVkxfTE9PU0UgPSBcImxvb3NlXCI7XG5jb25zdCBYTUxOU19TVkdfU1REID0gXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO1xuY29uc3QgWE1MTlNfWExJTktfU1REID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI7XG5jb25zdCBYTUxOU19YSFRNTF9TVEQgPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjtcbmNvbnN0IElGUkFNRV9XSURUSCA9IFwiMTAwJVwiO1xuY29uc3QgSUZSQU1FX0hFSUdIVCA9IFwiMTAwJVwiO1xuY29uc3QgSUZSQU1FX1NUWUxFUyA9IFwiYm9yZGVyOjA7bWFyZ2luOjA7XCI7XG5jb25zdCBJRlJBTUVfQk9EWV9TVFlMRSA9IFwibWFyZ2luOjBcIjtcbmNvbnN0IElGUkFNRV9TQU5EQk9YX09QVFMgPSBcImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiBhbGxvdy1wb3B1cHNcIjtcbmNvbnN0IElGUkFNRV9OT1RfU1VQUE9SVEVEX01TRyA9ICdUaGUgXCJpZnJhbWVcIiB0YWcgaXMgbm90IHN1cHBvcnRlZCBieSB5b3VyIGJyb3dzZXIuJztcbmNvbnN0IERPTVBVUklGWV9UQUdTID0gW1wiZm9yZWlnbm9iamVjdFwiXTtcbmNvbnN0IERPTVBVUklGWV9BVFRSID0gW1wiZG9taW5hbnQtYmFzZWxpbmVcIl07XG5mdW5jdGlvbiBwcm9jZXNzQW5kU2V0Q29uZmlncyh0ZXh0KSB7XG4gIGNvbnN0IHByb2Nlc3NlZCA9IHByZXByb2Nlc3NEaWFncmFtKHRleHQpO1xuICByZXNldCgpO1xuICBhZGREaXJlY3RpdmUocHJvY2Vzc2VkLmNvbmZpZyA/PyB7fSk7XG4gIHJldHVybiBwcm9jZXNzZWQ7XG59XG5hc3luYyBmdW5jdGlvbiBwYXJzZSQxKHRleHQsIHBhcnNlT3B0aW9ucykge1xuICBhZGREaWFncmFtcygpO1xuICB0ZXh0ID0gcHJvY2Vzc0FuZFNldENvbmZpZ3ModGV4dCkuY29kZTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBnZXREaWFncmFtRnJvbVRleHQodGV4dCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKHBhcnNlT3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogcGFyc2VPcHRpb25zLnN1cHByZXNzRXJyb3JzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuY29uc3QgY3NzSW1wb3J0YW50U3R5bGVzID0gKGNzc0NsYXNzLCBlbGVtZW50LCBjc3NDbGFzc2VzID0gW10pID0+IHtcbiAgcmV0dXJuIGBcbi4ke2Nzc0NsYXNzfSAke2VsZW1lbnR9IHsgJHtjc3NDbGFzc2VzLmpvaW4oXCIgIWltcG9ydGFudDsgXCIpfSAhaW1wb3J0YW50OyB9YDtcbn07XG5jb25zdCBjcmVhdGVDc3NTdHlsZXMgPSAoY29uZmlnMiwgY2xhc3NEZWZzID0ge30pID0+IHtcbiAgdmFyIF9hO1xuICBsZXQgY3NzU3R5bGVzID0gXCJcIjtcbiAgaWYgKGNvbmZpZzIudGhlbWVDU1MgIT09IHZvaWQgMCkge1xuICAgIGNzc1N0eWxlcyArPSBgXG4ke2NvbmZpZzIudGhlbWVDU1N9YDtcbiAgfVxuICBpZiAoY29uZmlnMi5mb250RmFtaWx5ICE9PSB2b2lkIDApIHtcbiAgICBjc3NTdHlsZXMgKz0gYFxuOnJvb3QgeyAtLW1lcm1haWQtZm9udC1mYW1pbHk6ICR7Y29uZmlnMi5mb250RmFtaWx5fX1gO1xuICB9XG4gIGlmIChjb25maWcyLmFsdEZvbnRGYW1pbHkgIT09IHZvaWQgMCkge1xuICAgIGNzc1N0eWxlcyArPSBgXG46cm9vdCB7IC0tbWVybWFpZC1hbHQtZm9udC1mYW1pbHk6ICR7Y29uZmlnMi5hbHRGb250RmFtaWx5fX1gO1xuICB9XG4gIGlmICghaXNFbXB0eShjbGFzc0RlZnMpKSB7XG4gICAgY29uc3QgaHRtbExhYmVscyA9IGNvbmZpZzIuaHRtbExhYmVscyB8fCAoKF9hID0gY29uZmlnMi5mbG93Y2hhcnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5odG1sTGFiZWxzKTtcbiAgICBjb25zdCBjc3NIdG1sRWxlbWVudHMgPSBbXCI+ICpcIiwgXCJzcGFuXCJdO1xuICAgIGNvbnN0IGNzc1NoYXBlRWxlbWVudHMgPSBbXCJyZWN0XCIsIFwicG9seWdvblwiLCBcImVsbGlwc2VcIiwgXCJjaXJjbGVcIiwgXCJwYXRoXCJdO1xuICAgIGNvbnN0IGNzc0VsZW1lbnRzID0gaHRtbExhYmVscyA/IGNzc0h0bWxFbGVtZW50cyA6IGNzc1NoYXBlRWxlbWVudHM7XG4gICAgZm9yIChjb25zdCBjbGFzc0lkIGluIGNsYXNzRGVmcykge1xuICAgICAgY29uc3Qgc3R5bGVDbGFzc0RlZiA9IGNsYXNzRGVmc1tjbGFzc0lkXTtcbiAgICAgIGlmICghaXNFbXB0eShzdHlsZUNsYXNzRGVmLnN0eWxlcykpIHtcbiAgICAgICAgY3NzRWxlbWVudHMuZm9yRWFjaCgoY3NzRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGNzc1N0eWxlcyArPSBjc3NJbXBvcnRhbnRTdHlsZXMoc3R5bGVDbGFzc0RlZi5pZCwgY3NzRWxlbWVudCwgc3R5bGVDbGFzc0RlZi5zdHlsZXMpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNFbXB0eShzdHlsZUNsYXNzRGVmLnRleHRTdHlsZXMpKSB7XG4gICAgICAgIGNzc1N0eWxlcyArPSBjc3NJbXBvcnRhbnRTdHlsZXMoc3R5bGVDbGFzc0RlZi5pZCwgXCJ0c3BhblwiLCBzdHlsZUNsYXNzRGVmLnRleHRTdHlsZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gY3NzU3R5bGVzO1xufTtcbmNvbnN0IGNyZWF0ZVVzZXJTdHlsZXMgPSAoY29uZmlnMiwgZ3JhcGhUeXBlLCBjbGFzc0RlZnMsIHN2Z0lkKSA9PiB7XG4gIGNvbnN0IHVzZXJDU1NzdHlsZXMgPSBjcmVhdGVDc3NTdHlsZXMoY29uZmlnMiwgY2xhc3NEZWZzKTtcbiAgY29uc3QgYWxsU3R5bGVzID0gZ2V0U3R5bGVzJDEoZ3JhcGhUeXBlLCB1c2VyQ1NTc3R5bGVzLCBjb25maWcyLnRoZW1lVmFyaWFibGVzKTtcbiAgcmV0dXJuIHNlcmlhbGl6ZShjb21waWxlKGAke3N2Z0lkfXske2FsbFN0eWxlc319YCksIHN0cmluZ2lmeSk7XG59O1xuY29uc3QgY2xlYW5VcFN2Z0NvZGUgPSAoc3ZnQ29kZSA9IFwiXCIsIGluU2FuZGJveE1vZGUsIHVzZUFycm93TWFya2VyVXJscykgPT4ge1xuICBsZXQgY2xlYW5lZFVwU3ZnID0gc3ZnQ29kZTtcbiAgaWYgKCF1c2VBcnJvd01hcmtlclVybHMgJiYgIWluU2FuZGJveE1vZGUpIHtcbiAgICBjbGVhbmVkVXBTdmcgPSBjbGVhbmVkVXBTdmcucmVwbGFjZShcbiAgICAgIC9tYXJrZXItZW5kPVwidXJsXFwoW1xcZCsuLzo9P0EtWmEtei1dKj8jL2csXG4gICAgICAnbWFya2VyLWVuZD1cInVybCgjJ1xuICAgICk7XG4gIH1cbiAgY2xlYW5lZFVwU3ZnID0gZGVjb2RlRW50aXRpZXMoY2xlYW5lZFVwU3ZnKTtcbiAgY2xlYW5lZFVwU3ZnID0gY2xlYW5lZFVwU3ZnLnJlcGxhY2UoLzxicj4vZywgXCI8YnIvPlwiKTtcbiAgcmV0dXJuIGNsZWFuZWRVcFN2Zztcbn07XG5jb25zdCBwdXRJbnRvSUZyYW1lID0gKHN2Z0NvZGUgPSBcIlwiLCBzdmdFbGVtZW50KSA9PiB7XG4gIHZhciBfYSwgX2I7XG4gIGNvbnN0IGhlaWdodCA9ICgoX2IgPSAoX2EgPSBzdmdFbGVtZW50ID09IG51bGwgPyB2b2lkIDAgOiBzdmdFbGVtZW50LnZpZXdCb3gpID09IG51bGwgPyB2b2lkIDAgOiBfYS5iYXNlVmFsKSA9PSBudWxsID8gdm9pZCAwIDogX2IuaGVpZ2h0KSA/IHN2Z0VsZW1lbnQudmlld0JveC5iYXNlVmFsLmhlaWdodCArIFwicHhcIiA6IElGUkFNRV9IRUlHSFQ7XG4gIGNvbnN0IGJhc2U2NGVuY29kZWRTcmMgPSBidG9hKCc8Ym9keSBzdHlsZT1cIicgKyBJRlJBTUVfQk9EWV9TVFlMRSArICdcIj4nICsgc3ZnQ29kZSArIFwiPC9ib2R5PlwiKTtcbiAgcmV0dXJuIGA8aWZyYW1lIHN0eWxlPVwid2lkdGg6JHtJRlJBTUVfV0lEVEh9O2hlaWdodDoke2hlaWdodH07JHtJRlJBTUVfU1RZTEVTfVwiIHNyYz1cImRhdGE6dGV4dC9odG1sO2Jhc2U2NCwke2Jhc2U2NGVuY29kZWRTcmN9XCIgc2FuZGJveD1cIiR7SUZSQU1FX1NBTkRCT1hfT1BUU31cIj5cbiAgJHtJRlJBTUVfTk9UX1NVUFBPUlRFRF9NU0d9XG48L2lmcmFtZT5gO1xufTtcbmNvbnN0IGFwcGVuZERpdlN2Z0cgPSAocGFyZW50Um9vdCwgaWQyLCBlbmNsb3NpbmdEaXZJZCwgZGl2U3R5bGUsIHN2Z1hsaW5rKSA9PiB7XG4gIGNvbnN0IGVuY2xvc2luZ0RpdiA9IHBhcmVudFJvb3QuYXBwZW5kKFwiZGl2XCIpO1xuICBlbmNsb3NpbmdEaXYuYXR0cihcImlkXCIsIGVuY2xvc2luZ0RpdklkKTtcbiAgaWYgKGRpdlN0eWxlKSB7XG4gICAgZW5jbG9zaW5nRGl2LmF0dHIoXCJzdHlsZVwiLCBkaXZTdHlsZSk7XG4gIH1cbiAgY29uc3Qgc3ZnTm9kZSA9IGVuY2xvc2luZ0Rpdi5hcHBlbmQoXCJzdmdcIikuYXR0cihcImlkXCIsIGlkMikuYXR0cihcIndpZHRoXCIsIFwiMTAwJVwiKS5hdHRyKFwieG1sbnNcIiwgWE1MTlNfU1ZHX1NURCk7XG4gIGlmIChzdmdYbGluaykge1xuICAgIHN2Z05vZGUuYXR0cihcInhtbG5zOnhsaW5rXCIsIHN2Z1hsaW5rKTtcbiAgfVxuICBzdmdOb2RlLmFwcGVuZChcImdcIik7XG4gIHJldHVybiBwYXJlbnRSb290O1xufTtcbmZ1bmN0aW9uIHNhbmRib3hlZElmcmFtZShwYXJlbnROb2RlLCBpRnJhbWVJZCkge1xuICByZXR1cm4gcGFyZW50Tm9kZS5hcHBlbmQoXCJpZnJhbWVcIikuYXR0cihcImlkXCIsIGlGcmFtZUlkKS5hdHRyKFwic3R5bGVcIiwgXCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1wiKS5hdHRyKFwic2FuZGJveFwiLCBcIlwiKTtcbn1cbmNvbnN0IHJlbW92ZUV4aXN0aW5nRWxlbWVudHMgPSAoZG9jLCBpZDIsIGRpdklkLCBpRnJhbWVJZCkgPT4ge1xuICB2YXIgX2EsIF9iLCBfYztcbiAgKF9hID0gZG9jLmdldEVsZW1lbnRCeUlkKGlkMikpID09IG51bGwgPyB2b2lkIDAgOiBfYS5yZW1vdmUoKTtcbiAgKF9iID0gZG9jLmdldEVsZW1lbnRCeUlkKGRpdklkKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnJlbW92ZSgpO1xuICAoX2MgPSBkb2MuZ2V0RWxlbWVudEJ5SWQoaUZyYW1lSWQpKSA9PSBudWxsID8gdm9pZCAwIDogX2MucmVtb3ZlKCk7XG59O1xuY29uc3QgcmVuZGVyJDEgPSBhc3luYyBmdW5jdGlvbihpZDIsIHRleHQsIHN2Z0NvbnRhaW5pbmdFbGVtZW50KSB7XG4gIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICBhZGREaWFncmFtcygpO1xuICBjb25zdCBwcm9jZXNzZWQgPSBwcm9jZXNzQW5kU2V0Q29uZmlncyh0ZXh0KTtcbiAgdGV4dCA9IHByb2Nlc3NlZC5jb2RlO1xuICBjb25zdCBjb25maWcyID0gZ2V0Q29uZmlnJDEoKTtcbiAgbG9nJDEuZGVidWcoY29uZmlnMik7XG4gIGlmICh0ZXh0Lmxlbmd0aCA+ICgoY29uZmlnMiA9PSBudWxsID8gdm9pZCAwIDogY29uZmlnMi5tYXhUZXh0U2l6ZSkgPz8gTUFYX1RFWFRMRU5HVEgpKSB7XG4gICAgdGV4dCA9IE1BWF9URVhUTEVOR1RIX0VYQ0VFREVEX01TRztcbiAgfVxuICBjb25zdCBpZFNlbGVjdG9yID0gXCIjXCIgKyBpZDI7XG4gIGNvbnN0IGlGcmFtZUlEID0gXCJpXCIgKyBpZDI7XG4gIGNvbnN0IGlGcmFtZUlEX3NlbGVjdG9yID0gXCIjXCIgKyBpRnJhbWVJRDtcbiAgY29uc3QgZW5jbG9zaW5nRGl2SUQgPSBcImRcIiArIGlkMjtcbiAgY29uc3QgZW5jbG9zaW5nRGl2SURfc2VsZWN0b3IgPSBcIiNcIiArIGVuY2xvc2luZ0RpdklEO1xuICBsZXQgcm9vdCA9IHNlbGVjdChcImJvZHlcIik7XG4gIGNvbnN0IGlzU2FuZGJveGVkID0gY29uZmlnMi5zZWN1cml0eUxldmVsID09PSBTRUNVUklUWV9MVkxfU0FOREJPWDtcbiAgY29uc3QgaXNMb29zZVNlY3VyaXR5TGV2ZWwgPSBjb25maWcyLnNlY3VyaXR5TGV2ZWwgPT09IFNFQ1VSSVRZX0xWTF9MT09TRTtcbiAgY29uc3QgZm9udEZhbWlseSA9IGNvbmZpZzIuZm9udEZhbWlseTtcbiAgaWYgKHN2Z0NvbnRhaW5pbmdFbGVtZW50ICE9PSB2b2lkIDApIHtcbiAgICBpZiAoc3ZnQ29udGFpbmluZ0VsZW1lbnQpIHtcbiAgICAgIHN2Z0NvbnRhaW5pbmdFbGVtZW50LmlubmVySFRNTCA9IFwiXCI7XG4gICAgfVxuICAgIGlmIChpc1NhbmRib3hlZCkge1xuICAgICAgY29uc3QgaWZyYW1lID0gc2FuZGJveGVkSWZyYW1lKHNlbGVjdChzdmdDb250YWluaW5nRWxlbWVudCksIGlGcmFtZUlEKTtcbiAgICAgIHJvb3QgPSBzZWxlY3QoaWZyYW1lLm5vZGVzKClbMF0uY29udGVudERvY3VtZW50LmJvZHkpO1xuICAgICAgcm9vdC5ub2RlKCkuc3R5bGUubWFyZ2luID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcm9vdCA9IHNlbGVjdChzdmdDb250YWluaW5nRWxlbWVudCk7XG4gICAgfVxuICAgIGFwcGVuZERpdlN2Z0cocm9vdCwgaWQyLCBlbmNsb3NpbmdEaXZJRCwgYGZvbnQtZmFtaWx5OiAke2ZvbnRGYW1pbHl9YCwgWE1MTlNfWExJTktfU1REKTtcbiAgfSBlbHNlIHtcbiAgICByZW1vdmVFeGlzdGluZ0VsZW1lbnRzKGRvY3VtZW50LCBpZDIsIGVuY2xvc2luZ0RpdklELCBpRnJhbWVJRCk7XG4gICAgaWYgKGlzU2FuZGJveGVkKSB7XG4gICAgICBjb25zdCBpZnJhbWUgPSBzYW5kYm94ZWRJZnJhbWUoc2VsZWN0KFwiYm9keVwiKSwgaUZyYW1lSUQpO1xuICAgICAgcm9vdCA9IHNlbGVjdChpZnJhbWUubm9kZXMoKVswXS5jb250ZW50RG9jdW1lbnQuYm9keSk7XG4gICAgICByb290Lm5vZGUoKS5zdHlsZS5tYXJnaW4gPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByb290ID0gc2VsZWN0KFwiYm9keVwiKTtcbiAgICB9XG4gICAgYXBwZW5kRGl2U3ZnRyhyb290LCBpZDIsIGVuY2xvc2luZ0RpdklEKTtcbiAgfVxuICBsZXQgZGlhZztcbiAgbGV0IHBhcnNlRW5jb3VudGVyZWRFeGNlcHRpb247XG4gIHRyeSB7XG4gICAgZGlhZyA9IGF3YWl0IGdldERpYWdyYW1Gcm9tVGV4dCh0ZXh0LCB7IHRpdGxlOiBwcm9jZXNzZWQudGl0bGUgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZGlhZyA9IG5ldyBEaWFncmFtKFwiZXJyb3JcIik7XG4gICAgcGFyc2VFbmNvdW50ZXJlZEV4Y2VwdGlvbiA9IGVycm9yO1xuICB9XG4gIGNvbnN0IGVsZW1lbnQgPSByb290LnNlbGVjdChlbmNsb3NpbmdEaXZJRF9zZWxlY3Rvcikubm9kZSgpO1xuICBjb25zdCBkaWFncmFtVHlwZSA9IGRpYWcudHlwZTtcbiAgY29uc3Qgc3ZnID0gZWxlbWVudC5maXJzdENoaWxkO1xuICBjb25zdCBmaXJzdENoaWxkID0gc3ZnLmZpcnN0Q2hpbGQ7XG4gIGNvbnN0IGRpYWdyYW1DbGFzc0RlZnMgPSAoX2IgPSAoX2EgPSBkaWFnLnJlbmRlcmVyKS5nZXRDbGFzc2VzKSA9PSBudWxsID8gdm9pZCAwIDogX2IuY2FsbChfYSwgdGV4dCwgZGlhZyk7XG4gIGNvbnN0IHJ1bGVzID0gY3JlYXRlVXNlclN0eWxlcyhjb25maWcyLCBkaWFncmFtVHlwZSwgZGlhZ3JhbUNsYXNzRGVmcywgaWRTZWxlY3Rvcik7XG4gIGNvbnN0IHN0eWxlMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcbiAgc3R5bGUxLmlubmVySFRNTCA9IHJ1bGVzO1xuICBzdmcuaW5zZXJ0QmVmb3JlKHN0eWxlMSwgZmlyc3RDaGlsZCk7XG4gIHRyeSB7XG4gICAgYXdhaXQgZGlhZy5yZW5kZXJlci5kcmF3KHRleHQsIGlkMiwgdmVyc2lvbiwgZGlhZyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBlcnJvclJlbmRlcmVyLmRyYXcodGV4dCwgaWQyLCB2ZXJzaW9uKTtcbiAgICB0aHJvdyBlO1xuICB9XG4gIGNvbnN0IHN2Z05vZGUgPSByb290LnNlbGVjdChgJHtlbmNsb3NpbmdEaXZJRF9zZWxlY3Rvcn0gc3ZnYCk7XG4gIGNvbnN0IGExMXlUaXRsZSA9IChfZCA9IChfYyA9IGRpYWcuZGIpLmdldEFjY1RpdGxlKSA9PSBudWxsID8gdm9pZCAwIDogX2QuY2FsbChfYyk7XG4gIGNvbnN0IGExMXlEZXNjciA9IChfZiA9IChfZSA9IGRpYWcuZGIpLmdldEFjY0Rlc2NyaXB0aW9uKSA9PSBudWxsID8gdm9pZCAwIDogX2YuY2FsbChfZSk7XG4gIGFkZEExMXlJbmZvKGRpYWdyYW1UeXBlLCBzdmdOb2RlLCBhMTF5VGl0bGUsIGExMXlEZXNjcik7XG4gIHJvb3Quc2VsZWN0KGBbaWQ9XCIke2lkMn1cIl1gKS5zZWxlY3RBbGwoXCJmb3JlaWdub2JqZWN0ID4gKlwiKS5hdHRyKFwieG1sbnNcIiwgWE1MTlNfWEhUTUxfU1REKTtcbiAgbGV0IHN2Z0NvZGUgPSByb290LnNlbGVjdChlbmNsb3NpbmdEaXZJRF9zZWxlY3Rvcikubm9kZSgpLmlubmVySFRNTDtcbiAgbG9nJDEuZGVidWcoXCJjb25maWcuYXJyb3dNYXJrZXJBYnNvbHV0ZVwiLCBjb25maWcyLmFycm93TWFya2VyQWJzb2x1dGUpO1xuICBzdmdDb2RlID0gY2xlYW5VcFN2Z0NvZGUoc3ZnQ29kZSwgaXNTYW5kYm94ZWQsIGV2YWx1YXRlKGNvbmZpZzIuYXJyb3dNYXJrZXJBYnNvbHV0ZSkpO1xuICBpZiAoaXNTYW5kYm94ZWQpIHtcbiAgICBjb25zdCBzdmdFbCA9IHJvb3Quc2VsZWN0KGVuY2xvc2luZ0RpdklEX3NlbGVjdG9yICsgXCIgc3ZnXCIpLm5vZGUoKTtcbiAgICBzdmdDb2RlID0gcHV0SW50b0lGcmFtZShzdmdDb2RlLCBzdmdFbCk7XG4gIH0gZWxzZSBpZiAoIWlzTG9vc2VTZWN1cml0eUxldmVsKSB7XG4gICAgc3ZnQ29kZSA9IERPTVB1cmlmeS5zYW5pdGl6ZShzdmdDb2RlLCB7XG4gICAgICBBRERfVEFHUzogRE9NUFVSSUZZX1RBR1MsXG4gICAgICBBRERfQVRUUjogRE9NUFVSSUZZX0FUVFJcbiAgICB9KTtcbiAgfVxuICBhdHRhY2hGdW5jdGlvbnMoKTtcbiAgaWYgKHBhcnNlRW5jb3VudGVyZWRFeGNlcHRpb24pIHtcbiAgICB0aHJvdyBwYXJzZUVuY291bnRlcmVkRXhjZXB0aW9uO1xuICB9XG4gIGNvbnN0IHRtcEVsZW1lbnRTZWxlY3RvciA9IGlzU2FuZGJveGVkID8gaUZyYW1lSURfc2VsZWN0b3IgOiBlbmNsb3NpbmdEaXZJRF9zZWxlY3RvcjtcbiAgY29uc3Qgbm9kZSA9IHNlbGVjdCh0bXBFbGVtZW50U2VsZWN0b3IpLm5vZGUoKTtcbiAgaWYgKG5vZGUgJiYgXCJyZW1vdmVcIiBpbiBub2RlKSB7XG4gICAgbm9kZS5yZW1vdmUoKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHN2Zzogc3ZnQ29kZSxcbiAgICBiaW5kRnVuY3Rpb25zOiBkaWFnLmRiLmJpbmRGdW5jdGlvbnNcbiAgfTtcbn07XG5mdW5jdGlvbiBpbml0aWFsaXplJDEob3B0aW9ucyA9IHt9KSB7XG4gIHZhciBfYTtcbiAgaWYgKChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLmZvbnRGYW1pbHkpICYmICEoKF9hID0gb3B0aW9ucy50aGVtZVZhcmlhYmxlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmZvbnRGYW1pbHkpKSB7XG4gICAgaWYgKCFvcHRpb25zLnRoZW1lVmFyaWFibGVzKSB7XG4gICAgICBvcHRpb25zLnRoZW1lVmFyaWFibGVzID0ge307XG4gICAgfVxuICAgIG9wdGlvbnMudGhlbWVWYXJpYWJsZXMuZm9udEZhbWlseSA9IG9wdGlvbnMuZm9udEZhbWlseTtcbiAgfVxuICBzYXZlQ29uZmlnRnJvbUluaXRpYWxpemUob3B0aW9ucyk7XG4gIGlmICgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy50aGVtZSkgJiYgb3B0aW9ucy50aGVtZSBpbiB0aGVtZSkge1xuICAgIG9wdGlvbnMudGhlbWVWYXJpYWJsZXMgPSB0aGVtZVtvcHRpb25zLnRoZW1lXS5nZXRUaGVtZVZhcmlhYmxlcyhcbiAgICAgIG9wdGlvbnMudGhlbWVWYXJpYWJsZXNcbiAgICApO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMpIHtcbiAgICBvcHRpb25zLnRoZW1lVmFyaWFibGVzID0gdGhlbWUuZGVmYXVsdC5nZXRUaGVtZVZhcmlhYmxlcyhvcHRpb25zLnRoZW1lVmFyaWFibGVzKTtcbiAgfVxuICBjb25zdCBjb25maWcyID0gdHlwZW9mIG9wdGlvbnMgPT09IFwib2JqZWN0XCIgPyBzZXRTaXRlQ29uZmlnKG9wdGlvbnMpIDogZ2V0U2l0ZUNvbmZpZygpO1xuICBzZXRMb2dMZXZlbCQxKGNvbmZpZzIubG9nTGV2ZWwpO1xuICBhZGREaWFncmFtcygpO1xufVxuY29uc3QgZ2V0RGlhZ3JhbUZyb21UZXh0ID0gKHRleHQsIG1ldGFkYXRhID0ge30pID0+IHtcbiAgY29uc3QgeyBjb2RlIH0gPSBwcmVwcm9jZXNzRGlhZ3JhbSh0ZXh0KTtcbiAgcmV0dXJuIGdldERpYWdyYW1Gcm9tVGV4dCQxKGNvZGUsIG1ldGFkYXRhKTtcbn07XG5mdW5jdGlvbiBhZGRBMTF5SW5mbyhkaWFncmFtVHlwZSwgc3ZnTm9kZSwgYTExeVRpdGxlLCBhMTF5RGVzY3IpIHtcbiAgc2V0QTExeURpYWdyYW1JbmZvKHN2Z05vZGUsIGRpYWdyYW1UeXBlKTtcbiAgYWRkU1ZHYTExeVRpdGxlRGVzY3JpcHRpb24oc3ZnTm9kZSwgYTExeVRpdGxlLCBhMTF5RGVzY3IsIHN2Z05vZGUuYXR0cihcImlkXCIpKTtcbn1cbmNvbnN0IG1lcm1haWRBUEkgPSBPYmplY3QuZnJlZXplKHtcbiAgcmVuZGVyOiByZW5kZXIkMSxcbiAgcGFyc2U6IHBhcnNlJDEsXG4gIGdldERpYWdyYW1Gcm9tVGV4dCxcbiAgaW5pdGlhbGl6ZTogaW5pdGlhbGl6ZSQxLFxuICBnZXRDb25maWc6IGdldENvbmZpZyQxLFxuICBzZXRDb25maWc6IHNldENvbmZpZyQxLFxuICBnZXRTaXRlQ29uZmlnLFxuICB1cGRhdGVTaXRlQ29uZmlnLFxuICByZXNldDogKCkgPT4ge1xuICAgIHJlc2V0KCk7XG4gIH0sXG4gIGdsb2JhbFJlc2V0OiAoKSA9PiB7XG4gICAgcmVzZXQoZGVmYXVsdENvbmZpZyQxKTtcbiAgfSxcbiAgZGVmYXVsdENvbmZpZzogZGVmYXVsdENvbmZpZyQxXG59KTtcbnNldExvZ0xldmVsJDEoZ2V0Q29uZmlnJDEoKS5sb2dMZXZlbCk7XG5yZXNldChnZXRDb25maWckMSgpKTtcbmNvbnN0IGxvYWRSZWdpc3RlcmVkRGlhZ3JhbXMgPSBhc3luYyAoKSA9PiB7XG4gIGxvZyQxLmRlYnVnKGBMb2FkaW5nIHJlZ2lzdGVyZWQgZGlhZ3JhbXNgKTtcbiAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChcbiAgICBPYmplY3QuZW50cmllcyhkZXRlY3RvcnMpLm1hcChhc3luYyAoW2tleSwgeyBkZXRlY3RvcjogZGV0ZWN0b3IyLCBsb2FkZXI6IGxvYWRlcjIgfV0pID0+IHtcbiAgICAgIGlmIChsb2FkZXIyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZ2V0RGlhZ3JhbShrZXkpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB7IGRpYWdyYW06IGRpYWdyYW0yLCBpZDogaWQyIH0gPSBhd2FpdCBsb2FkZXIyKCk7XG4gICAgICAgICAgICByZWdpc3RlckRpYWdyYW0oaWQyLCBkaWFncmFtMiwgZGV0ZWN0b3IyKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGxvZyQxLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBkaWFncmFtIHdpdGgga2V5ICR7a2V5fS4gUmVtb3ZpbmcgZnJvbSBkZXRlY3RvcnMuYCk7XG4gICAgICAgICAgICBkZWxldGUgZGV0ZWN0b3JzW2tleV07XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgKTtcbiAgY29uc3QgZmFpbGVkID0gcmVzdWx0cy5maWx0ZXIoKHJlc3VsdCkgPT4gcmVzdWx0LnN0YXR1cyA9PT0gXCJyZWplY3RlZFwiKTtcbiAgaWYgKGZhaWxlZC5sZW5ndGggPiAwKSB7XG4gICAgbG9nJDEuZXJyb3IoYEZhaWxlZCB0byBsb2FkICR7ZmFpbGVkLmxlbmd0aH0gZXh0ZXJuYWwgZGlhZ3JhbXNgKTtcbiAgICBmb3IgKGNvbnN0IHJlcyBvZiBmYWlsZWQpIHtcbiAgICAgIGxvZyQxLmVycm9yKHJlcyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgJHtmYWlsZWQubGVuZ3RofSBleHRlcm5hbCBkaWFncmFtc2ApO1xuICB9XG59O1xuY29uc3QgaGFuZGxlRXJyb3IgPSAoZXJyb3IsIGVycm9ycywgcGFyc2VFcnJvcikgPT4ge1xuICBsb2ckMS53YXJuKGVycm9yKTtcbiAgaWYgKGlzRGV0YWlsZWRFcnJvcihlcnJvcikpIHtcbiAgICBpZiAocGFyc2VFcnJvcikge1xuICAgICAgcGFyc2VFcnJvcihlcnJvci5zdHIsIGVycm9yLmhhc2gpO1xuICAgIH1cbiAgICBlcnJvcnMucHVzaCh7IC4uLmVycm9yLCBtZXNzYWdlOiBlcnJvci5zdHIsIGVycm9yIH0pO1xuICB9IGVsc2Uge1xuICAgIGlmIChwYXJzZUVycm9yKSB7XG4gICAgICBwYXJzZUVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGVycm9ycy5wdXNoKHtcbiAgICAgICAgc3RyOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICBoYXNoOiBlcnJvci5uYW1lLFxuICAgICAgICBlcnJvclxuICAgICAgfSk7XG4gICAgfVxuICB9XG59O1xuY29uc3QgcnVuID0gYXN5bmMgZnVuY3Rpb24ob3B0aW9ucyA9IHtcbiAgcXVlcnlTZWxlY3RvcjogXCIubWVybWFpZFwiXG59KSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgcnVuVGhyb3dzRXJyb3JzKG9wdGlvbnMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGlzRGV0YWlsZWRFcnJvcihlKSkge1xuICAgICAgbG9nJDEuZXJyb3IoZS5zdHIpO1xuICAgIH1cbiAgICBpZiAobWVybWFpZC5wYXJzZUVycm9yKSB7XG4gICAgICBtZXJtYWlkLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc0Vycm9ycykge1xuICAgICAgbG9nJDEuZXJyb3IoXCJVc2UgdGhlIHN1cHByZXNzRXJyb3JzIG9wdGlvbiB0byBzdXBwcmVzcyB0aGVzZSBlcnJvcnNcIik7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufTtcbmNvbnN0IHJ1blRocm93c0Vycm9ycyA9IGFzeW5jIGZ1bmN0aW9uKHsgcG9zdFJlbmRlckNhbGxiYWNrLCBxdWVyeVNlbGVjdG9yLCBub2RlcyB9ID0ge1xuICBxdWVyeVNlbGVjdG9yOiBcIi5tZXJtYWlkXCJcbn0pIHtcbiAgY29uc3QgY29uZiA9IG1lcm1haWRBUEkuZ2V0Q29uZmlnKCk7XG4gIGxvZyQxLmRlYnVnKGAkeyFwb3N0UmVuZGVyQ2FsbGJhY2sgPyBcIk5vIFwiIDogXCJcIn1DYWxsYmFjayBmdW5jdGlvbiBmb3VuZGApO1xuICBsZXQgbm9kZXNUb1Byb2Nlc3M7XG4gIGlmIChub2Rlcykge1xuICAgIG5vZGVzVG9Qcm9jZXNzID0gbm9kZXM7XG4gIH0gZWxzZSBpZiAocXVlcnlTZWxlY3Rvcikge1xuICAgIG5vZGVzVG9Qcm9jZXNzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChxdWVyeVNlbGVjdG9yKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJOb2RlcyBhbmQgcXVlcnlTZWxlY3RvciBhcmUgYm90aCB1bmRlZmluZWRcIik7XG4gIH1cbiAgbG9nJDEuZGVidWcoYEZvdW5kICR7bm9kZXNUb1Byb2Nlc3MubGVuZ3RofSBkaWFncmFtc2ApO1xuICBpZiAoKGNvbmYgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmYuc3RhcnRPbkxvYWQpICE9PSB2b2lkIDApIHtcbiAgICBsb2ckMS5kZWJ1ZyhcIlN0YXJ0IE9uIExvYWQ6IFwiICsgKGNvbmYgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmYuc3RhcnRPbkxvYWQpKTtcbiAgICBtZXJtYWlkQVBJLnVwZGF0ZVNpdGVDb25maWcoeyBzdGFydE9uTG9hZDogY29uZiA9PSBudWxsID8gdm9pZCAwIDogY29uZi5zdGFydE9uTG9hZCB9KTtcbiAgfVxuICBjb25zdCBpZEdlbmVyYXRvciA9IG5ldyB1dGlscy5Jbml0SURHZW5lcmF0b3IoY29uZi5kZXRlcm1pbmlzdGljSWRzLCBjb25mLmRldGVybWluaXN0aWNJRFNlZWQpO1xuICBsZXQgdHh0O1xuICBjb25zdCBlcnJvcnMgPSBbXTtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIEFycmF5LmZyb20obm9kZXNUb1Byb2Nlc3MpKSB7XG4gICAgbG9nJDEuaW5mbyhcIlJlbmRlcmluZyBkaWFncmFtOiBcIiArIGVsZW1lbnQuaWQpO1xuICAgIC8qISBDaGVjayBpZiBwcmV2aW91c2x5IHByb2Nlc3NlZCAqL1xuICAgIGlmIChlbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtcHJvY2Vzc2VkXCIpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkYXRhLXByb2Nlc3NlZFwiLCBcInRydWVcIik7XG4gICAgY29uc3QgaWQyID0gYG1lcm1haWQtJHtpZEdlbmVyYXRvci5uZXh0KCl9YDtcbiAgICB0eHQgPSBlbGVtZW50LmlubmVySFRNTDtcbiAgICB0eHQgPSBkZWRlbnQodXRpbHMuZW50aXR5RGVjb2RlKHR4dCkpLnRyaW0oKS5yZXBsYWNlKC88YnJcXHMqXFwvPz4vZ2ksIFwiPGJyLz5cIik7XG4gICAgY29uc3QgaW5pdDIgPSB1dGlscy5kZXRlY3RJbml0KHR4dCk7XG4gICAgaWYgKGluaXQyKSB7XG4gICAgICBsb2ckMS5kZWJ1ZyhcIkRldGVjdGVkIGVhcmx5IHJlaW5pdDogXCIsIGluaXQyKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgc3ZnLCBiaW5kRnVuY3Rpb25zIH0gPSBhd2FpdCByZW5kZXIoaWQyLCB0eHQsIGVsZW1lbnQpO1xuICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBzdmc7XG4gICAgICBpZiAocG9zdFJlbmRlckNhbGxiYWNrKSB7XG4gICAgICAgIGF3YWl0IHBvc3RSZW5kZXJDYWxsYmFjayhpZDIpO1xuICAgICAgfVxuICAgICAgaWYgKGJpbmRGdW5jdGlvbnMpIHtcbiAgICAgICAgYmluZEZ1bmN0aW9ucyhlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIGVycm9ycywgbWVybWFpZC5wYXJzZUVycm9yKTtcbiAgICB9XG4gIH1cbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgZXJyb3JzWzBdO1xuICB9XG59O1xuY29uc3QgaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKGNvbmZpZzIpIHtcbiAgbWVybWFpZEFQSS5pbml0aWFsaXplKGNvbmZpZzIpO1xufTtcbmNvbnN0IGluaXQgPSBhc3luYyBmdW5jdGlvbihjb25maWcyLCBub2RlcywgY2FsbGJhY2spIHtcbiAgbG9nJDEud2FybihcIm1lcm1haWQuaW5pdCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIHJ1biBpbnN0ZWFkLlwiKTtcbiAgaWYgKGNvbmZpZzIpIHtcbiAgICBpbml0aWFsaXplKGNvbmZpZzIpO1xuICB9XG4gIGNvbnN0IHJ1bk9wdGlvbnMgPSB7IHBvc3RSZW5kZXJDYWxsYmFjazogY2FsbGJhY2ssIHF1ZXJ5U2VsZWN0b3I6IFwiLm1lcm1haWRcIiB9O1xuICBpZiAodHlwZW9mIG5vZGVzID09PSBcInN0cmluZ1wiKSB7XG4gICAgcnVuT3B0aW9ucy5xdWVyeVNlbGVjdG9yID0gbm9kZXM7XG4gIH0gZWxzZSBpZiAobm9kZXMpIHtcbiAgICBpZiAobm9kZXMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgcnVuT3B0aW9ucy5ub2RlcyA9IFtub2Rlc107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJ1bk9wdGlvbnMubm9kZXMgPSBub2RlcztcbiAgICB9XG4gIH1cbiAgYXdhaXQgcnVuKHJ1bk9wdGlvbnMpO1xufTtcbmNvbnN0IHJlZ2lzdGVyRXh0ZXJuYWxEaWFncmFtcyA9IGFzeW5jIChkaWFncmFtczIsIHtcbiAgbGF6eUxvYWQgPSB0cnVlXG59ID0ge30pID0+IHtcbiAgcmVnaXN0ZXJMYXp5TG9hZGVkRGlhZ3JhbXMoLi4uZGlhZ3JhbXMyKTtcbiAgaWYgKGxhenlMb2FkID09PSBmYWxzZSkge1xuICAgIGF3YWl0IGxvYWRSZWdpc3RlcmVkRGlhZ3JhbXMoKTtcbiAgfVxufTtcbmNvbnN0IGNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigpIHtcbiAgaWYgKG1lcm1haWQuc3RhcnRPbkxvYWQpIHtcbiAgICBjb25zdCB7IHN0YXJ0T25Mb2FkIH0gPSBtZXJtYWlkQVBJLmdldENvbmZpZygpO1xuICAgIGlmIChzdGFydE9uTG9hZCkge1xuICAgICAgbWVybWFpZC5ydW4oKS5jYXRjaCgoZXJyKSA9PiBsb2ckMS5lcnJvcihcIk1lcm1haWQgZmFpbGVkIHRvIGluaXRpYWxpemVcIiwgZXJyKSk7XG4gICAgfVxuICB9XG59O1xuaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAvKiFcbiAgICogV2FpdCBmb3IgZG9jdW1lbnQgbG9hZGVkIGJlZm9yZSBzdGFydGluZyB0aGUgZXhlY3V0aW9uXG4gICAqL1xuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgY29udGVudExvYWRlZCwgZmFsc2UpO1xufVxuY29uc3Qgc2V0UGFyc2VFcnJvckhhbmRsZXIgPSBmdW5jdGlvbihwYXJzZUVycm9ySGFuZGxlcikge1xuICBtZXJtYWlkLnBhcnNlRXJyb3IgPSBwYXJzZUVycm9ySGFuZGxlcjtcbn07XG5jb25zdCBleGVjdXRpb25RdWV1ZSA9IFtdO1xubGV0IGV4ZWN1dGlvblF1ZXVlUnVubmluZyA9IGZhbHNlO1xuY29uc3QgZXhlY3V0ZVF1ZXVlID0gYXN5bmMgKCkgPT4ge1xuICBpZiAoZXhlY3V0aW9uUXVldWVSdW5uaW5nKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGV4ZWN1dGlvblF1ZXVlUnVubmluZyA9IHRydWU7XG4gIHdoaWxlIChleGVjdXRpb25RdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgZiA9IGV4ZWN1dGlvblF1ZXVlLnNoaWZ0KCk7XG4gICAgaWYgKGYpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGYoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nJDEuZXJyb3IoXCJFcnJvciBleGVjdXRpbmcgcXVldWVcIiwgZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGV4ZWN1dGlvblF1ZXVlUnVubmluZyA9IGZhbHNlO1xufTtcbmNvbnN0IHBhcnNlID0gYXN5bmMgKHRleHQsIHBhcnNlT3B0aW9ucykgPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHBlcmZvcm1DYWxsID0gKCkgPT4gbmV3IFByb21pc2UoKHJlcywgcmVqKSA9PiB7XG4gICAgICBtZXJtYWlkQVBJLnBhcnNlKHRleHQsIHBhcnNlT3B0aW9ucykudGhlbihcbiAgICAgICAgKHIpID0+IHtcbiAgICAgICAgICByZXMocik7XG4gICAgICAgICAgcmVzb2x2ZShyKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgbG9nJDEuZXJyb3IoXCJFcnJvciBwYXJzaW5nXCIsIGUpO1xuICAgICAgICAgIChfYSA9IG1lcm1haWQucGFyc2VFcnJvcikgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmNhbGwobWVybWFpZCwgZSk7XG4gICAgICAgICAgcmVqKGUpO1xuICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgICBleGVjdXRpb25RdWV1ZS5wdXNoKHBlcmZvcm1DYWxsKTtcbiAgICBleGVjdXRlUXVldWUoKS5jYXRjaChyZWplY3QpO1xuICB9KTtcbn07XG5jb25zdCByZW5kZXIgPSAoaWQyLCB0ZXh0LCBjb250YWluZXIpID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBwZXJmb3JtQ2FsbCA9ICgpID0+IG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuICAgICAgbWVybWFpZEFQSS5yZW5kZXIoaWQyLCB0ZXh0LCBjb250YWluZXIpLnRoZW4oXG4gICAgICAgIChyKSA9PiB7XG4gICAgICAgICAgcmVzKHIpO1xuICAgICAgICAgIHJlc29sdmUocik7XG4gICAgICAgIH0sXG4gICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgIGxvZyQxLmVycm9yKFwiRXJyb3IgcGFyc2luZ1wiLCBlKTtcbiAgICAgICAgICAoX2EgPSBtZXJtYWlkLnBhcnNlRXJyb3IpID09IG51bGwgPyB2b2lkIDAgOiBfYS5jYWxsKG1lcm1haWQsIGUpO1xuICAgICAgICAgIHJlaihlKTtcbiAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gICAgZXhlY3V0aW9uUXVldWUucHVzaChwZXJmb3JtQ2FsbCk7XG4gICAgZXhlY3V0ZVF1ZXVlKCkuY2F0Y2gocmVqZWN0KTtcbiAgfSk7XG59O1xuY29uc3QgbWVybWFpZCA9IHtcbiAgc3RhcnRPbkxvYWQ6IHRydWUsXG4gIG1lcm1haWRBUEksXG4gIHBhcnNlLFxuICByZW5kZXIsXG4gIGluaXQsXG4gIHJ1bixcbiAgcmVnaXN0ZXJFeHRlcm5hbERpYWdyYW1zLFxuICBpbml0aWFsaXplLFxuICBwYXJzZUVycm9yOiB2b2lkIDAsXG4gIGNvbnRlbnRMb2FkZWQsXG4gIHNldFBhcnNlRXJyb3JIYW5kbGVyLFxuICBkZXRlY3RUeXBlXG59O1xuZXhwb3J0IHtcbiAgc2VsZWN0U3ZnRWxlbWVudCBhcyBBLFxuICBkZWZhdWx0Q29uZmlnJDIgYXMgQixcbiAgY2xlYW5BbmRNZXJnZSBhcyBDLFxuICBwYXJzZUZvbnRTaXplIGFzIEQsXG4gIGdldFRoZW1lVmFyaWFibGVzJDIgYXMgRSxcbiAgZ2V0Q29uZmlnJDEgYXMgRixcbiAgaGFzS2F0ZXggYXMgRyxcbiAgY2FsY3VsYXRlTWF0aE1MRGltZW5zaW9ucyBhcyBILFxuICBnZW5lcmF0ZUlkIGFzIEksXG4gIGxpbmVCcmVha1JlZ2V4IGFzIEosXG4gIGRlZmF1bHRDb25maWcgYXMgSyxcbiAgY29tbW9uRGIgYXMgTCxcbiAgZGVjb2RlRW50aXRpZXMgYXMgTSxcbiAgbWVybWFpZCBhcyBOLFxuICBaRVJPX1dJRFRIX1NQQUNFIGFzIFosXG4gIGdldEFjY0Rlc2NyaXB0aW9uIGFzIGEsXG4gIHNldEFjY0Rlc2NyaXB0aW9uIGFzIGIsXG4gIGdldENvbmZpZyBhcyBjLFxuICBzYW5pdGl6ZVRleHQkMiBhcyBkLFxuICBjb21tb24kMSBhcyBlLFxuICBhc3NpZ25XaXRoRGVwdGgkMSBhcyBmLFxuICBnZXRBY2NUaXRsZSBhcyBnLFxuICBjYWxjdWxhdGVUZXh0V2lkdGggYXMgaCxcbiAgY29uZmlndXJlU3ZnU2l6ZSBhcyBpLFxuICBjYWxjdWxhdGVUZXh0SGVpZ2h0IGFzIGosXG4gIGdldFN0eWxlc0Zyb21BcnJheSBhcyBrLFxuICBsb2ckMSBhcyBsLFxuICBldmFsdWF0ZSBhcyBtLFxuICBpbnRlcnBvbGF0ZVRvQ3VydmUgYXMgbixcbiAgc2V0dXBHcmFwaFZpZXdib3gkMSBhcyBvLFxuICBzZXRDb25maWcgYXMgcCxcbiAgc2V0RGlhZ3JhbVRpdGxlIGFzIHEsXG4gIHJlbmRlckthdGV4IGFzIHIsXG4gIHNldEFjY1RpdGxlIGFzIHMsXG4gIGdldERpYWdyYW1UaXRsZSBhcyB0LFxuICB1dGlscyBhcyB1LFxuICBjbGVhciBhcyB2LFxuICB3cmFwTGFiZWwgYXMgdyxcbiAgcGFyc2VHZW5lcmljVHlwZXMgYXMgeCxcbiAgcmFuZG9tIGFzIHksXG4gIHNldHVwR3JhcGhWaWV3Ym94IGFzIHpcbn07XG4iLAogICAgImltcG9ydCBcInRzLWRlZGVudFwiO1xuaW1wb3J0IHsgTiB9IGZyb20gXCIuL21lcm1haWQtNmRjNzI5OTEuanNcIjtcbmltcG9ydCBcImRheWpzXCI7XG5pbXBvcnQgXCJAYnJhaW50cmVlL3Nhbml0aXplLXVybFwiO1xuaW1wb3J0IFwiZDNcIjtcbmltcG9ydCBcImRvbXB1cmlmeVwiO1xuaW1wb3J0IFwia2hyb21hXCI7XG5pbXBvcnQgXCJsb2Rhc2gtZXMvbWVtb2l6ZS5qc1wiO1xuaW1wb3J0IFwibG9kYXNoLWVzL21lcmdlLmpzXCI7XG5pbXBvcnQgXCJzdHlsaXNcIjtcbmltcG9ydCBcImxvZGFzaC1lcy9pc0VtcHR5LmpzXCI7XG5leHBvcnQge1xuICBOIGFzIGRlZmF1bHRcbn07XG4iLAogICAgImltcG9ydCBtZXJtYWlkIGZyb20gXCJtZXJtYWlkXCI7XG5cbndpbmRvdy5vbmxvYWQgPSAoKSA9PiB7XG4gIC8qIFRBQiBHUk9VUFMgKi9cblxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnRhYi1ncm91cFwiKS5mb3JFYWNoKCh0YWJzRWwpID0+IHtcbiAgICB0YWJzRWwucXVlcnlTZWxlY3RvckFsbChcIi5kai10YWItaGVhZGluZ1wiKS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgY29uc3QgY29udGVudENscyA9IChlbCBhcyBIVE1MRWxlbWVudCkuZGF0YXNldC50YWJJZDtcbiAgICAgIGNvbnN0IGdyb3VwQ2xzID0gKGVsIGFzIEhUTUxFbGVtZW50KS5kYXRhc2V0LnRhYkdyb3VwO1xuICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIHRhYnNFbC5xdWVyeVNlbGVjdG9yQWxsKFwiLlwiICsgZ3JvdXBDbHMpLmZvckVhY2goKGNvbnRlbnRFbCkgPT4ge1xuICAgICAgICAgIGNvbnRlbnRFbC5jbGFzc0xpc3QucmVtb3ZlKFwibS1hY3RpdmVcIik7XG4gICAgICAgIH0pO1xuICAgICAgICB0YWJzRWwucXVlcnlTZWxlY3RvckFsbChcIi5cIiArIGNvbnRlbnRDbHMpLmZvckVhY2goKGNvbnRlbnRFbCkgPT4ge1xuICAgICAgICAgIGNvbnRlbnRFbC5jbGFzc0xpc3QuYWRkKFwibS1hY3RpdmVcIik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8qIENMT1NFIE9OLVRISVMtUEFHRSBQT1BPVkVSIFdIRU4gQ0xJQ0tJTkcgTElOS1MgSU5TSURFIElUICovXG5cbiAgZG9jdW1lbnRcbiAgICAucXVlcnlTZWxlY3RvckFsbChcImRldGFpbHMuREpUYWJsZU9mQ29udGVudHNcIilcbiAgICAuZm9yRWFjaCgocG9wb3ZlckVsKSA9PiB7XG4gICAgICBwb3BvdmVyRWwucXVlcnlTZWxlY3RvckFsbChcImFcIikuZm9yRWFjaCgobGlua0VsKSA9PiB7XG4gICAgICAgIChsaW5rRWwgYXMgSFRNTEFuY2hvckVsZW1lbnQpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgICAgIChwb3BvdmVyRWwgYXMgSFRNTERldGFpbHNFbGVtZW50KS5vcGVuID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgLyogTUVSTUFJRCAqL1xuXG4gIC8vIFJlcGxhY2UgYWxsIDxwcmU+PGNvZGUgY2xhc3M9XCJsYW5ndWFnZS1tZXJtYWlkXCI+Li4uPC9jb2RlPjwvcHJlPiB3aXRoIGp1c3QgPHByZSBjbGFzcz1cIm1lcm1haWRcIj48L3ByZT5cbiAgWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUgY29kZS5sYW5ndWFnZS1tZXJtYWlkXCIpXS5tYXAoKGNvZGVFbCkgPT4ge1xuICAgIGNvbnN0IHBhcmVudCA9IGNvZGVFbC5wYXJlbnRFbGVtZW50ITtcbiAgICBwYXJlbnQuaW5uZXJIVE1MID0gY29kZUVsLmlubmVySFRNTDtcbiAgICBwYXJlbnQuY2xhc3NOYW1lID0gXCJsYW5ndWFnZS1tZXJtYWlkXCI7XG4gIH0pO1xuXG4gIG1lcm1haWQucnVuKHsgcXVlcnlTZWxlY3RvcjogXCIubGFuZ3VhZ2UtbWVybWFpZFwiIH0pO1xuXG4gIC8qIERKQ09MTEFQU0UgKi9cblxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLkRKQ29sbGFwc2VfQ29sbGFwc2VyXCIpLmZvckVhY2goKGVsKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0SUQgPSAoZWwgYXMgSFRNTEVsZW1lbnQpLmRhdGFzZXQuY29sbGFwc2VUYXJnZXQ7XG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0YXJnZXRJRH1gKTtcbiAgICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJDYW4ndCBmaW5kXCIsIGAjJHt0YXJnZXRJRH1gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGFyZ2V0LmNsYXNzTGlzdC50b2dnbGUoXCJtLWNvbGxhcHNlZFwiKTtcbiAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoXCJtLXVuY29sbGFwc2VkXCIpO1xuICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcIm0tY29sbGFwc2VkXCIpO1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZChcbiAgICAgICAgdGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhcIm0tY29sbGFwc2VkXCIpXG4gICAgICAgICAgPyBcIm0tY29sbGFwc2VkXCJcbiAgICAgICAgICA6IFwibS11bmNvbGxhcHNlZFwiXG4gICAgICApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImRqLW9ubG9hZFwiKSk7XG59O1xuIgogIF0sCiAgIm1hcHBpbmdzIjogIjZ6QkFBTyxTQUFTLEdBQU0sQ0FBQyxFQUFPLENBQzFCLElBQUksRUFBUyxDQUFDLEVBQ2QsUUFBUyxFQUFLLEVBQUcsRUFBSyxVQUFVLE9BQVEsSUFDcEMsRUFBTyxFQUFLLEdBQUssVUFBVSxHQUUvQixJQUFJLEVBQVUsTUFBTSxZQUFZLElBQVUsU0FBVyxDQUFDLENBQUssRUFBSSxDQUFLLEVBQ3BFLEVBQVEsRUFBUSxPQUFTLEdBQUssRUFBUSxFQUFRLE9BQVMsR0FBRyxRQUFRLGlCQUFrQixFQUFFLEVBQ3RGLElBQUksRUFBZ0IsRUFBUSxlQUFnQixDQUFDLEVBQUssRUFBSyxDQUNuRCxJQUFJLEVBQVUsRUFBSSxNQUFNLHFCQUFxQixFQUM3QyxHQUFJLEVBQ0EsT0FBTyxFQUFJLE9BQU8sRUFBUSxZQUFhLENBQUMsRUFBTyxDQUFFLElBQUksRUFBSSxFQUFJLE9BQVEsR0FBTSxFQUFLLEVBQU0sTUFBTSxRQUFRLEtBQU8sTUFBUSxJQUFZLE9BQVMsT0FBSSxFQUFHLFVBQVksTUFBUSxJQUFZLE9BQUksRUFBSyxFQUFJLENBQUMsRUFFak0sT0FBTyxHQUNSLENBQUMsQ0FBQyxFQUNMLEdBQUksRUFBYyxPQUFRLENBQ3RCLElBQUksRUFBWSxJQUFJLE9BQU8sV0FBYSxLQUFLLElBQUksTUFBTSxLQUFNLENBQWEsRUFBSSxJQUFLLEdBQUcsRUFDdEYsRUFBVSxFQUFRLFlBQWEsQ0FBQyxFQUFLLENBQUUsT0FBTyxFQUFJLFFBQVEsRUFBVyxJQUFJLEVBQUksRUFFakYsRUFBUSxHQUFLLEVBQVEsR0FBRyxRQUFRLFNBQVUsRUFBRSxFQUM1QyxJQUFJLEVBQVMsRUFBUSxHQWVyQixPQWRBLEVBQU8sZ0JBQWlCLENBQUMsRUFBTyxFQUFHLENBQy9CLElBQUksRUFBZSxFQUFPLE1BQU0sZUFBZSxFQUMzQyxFQUFjLEVBQWUsRUFBYSxHQUFLLEdBQy9DLEVBQWdCLEVBQ3BCLFVBQVcsSUFBVSxVQUFZLEVBQU0sU0FBUyxJQUFJLEVBQ2hELEVBQWdCLE9BQU8sQ0FBSyxFQUN2QixNQUFNLElBQUksRUFDVixZQUFhLENBQUMsRUFBSyxFQUFHLENBQ3ZCLE9BQU8sSUFBTSxFQUFJLEVBQU0sR0FBSyxFQUFjLEVBQzdDLEVBQ0ksS0FBSyxJQUFJLEVBRWxCLEdBQVUsRUFBZ0IsRUFBUSxFQUFJLEdBQ3pDLEVBQ00sc0NDbENYLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFpQixLQUFqQixpQkFBOEMsS0FBcEIsWUFBMkIsSUFBTyxRQUFRLEVBQUUsU0FBcUIsUUFBbkIsWUFBMkIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLFNBQXNCLFlBQXBCLFlBQStCLFdBQVcsR0FBRyxNQUFNLE1BQU0sRUFBRSxJQUFHLFlBQWMsRUFBRSxDQUFjLElBQUksRUFBRSxLQUFJLEVBQUUsTUFBSSxFQUFFLFFBQUssRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLDZGQUE2RixFQUFFLHNGQUFzRixFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsMkRBQTJELE1BQU0sR0FBRyxFQUFFLE9BQU8sd0ZBQXdGLE1BQU0sR0FBRyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxJQUFJLEVBQUUsR0FBRSxFQUFFLElBQUksTUFBTSxJQUFJLEdBQUcsRUFBRyxJQUFFLElBQUksS0FBSyxFQUFFLEtBQUksRUFBRSxJQUFJLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxJQUFJLEdBQUUsT0FBTyxDQUFDLEVBQUUsT0FBTyxJQUFHLEdBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxHQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUUsS0FBSyxNQUFNLEdBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFHLE9BQU8sR0FBRyxFQUFFLElBQUksS0FBSyxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUUsRUFBRSxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksR0FBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEdBQUcsR0FBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUcsR0FBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLFVBQVUsSUFBRyxHQUFFLEtBQUksR0FBRSxHQUFFLEVBQUUsRUFBRSxNQUFLLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLE9BQU8sR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLFFBQVEsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFnQixJQUFKLE9BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sYUFBYSxNQUFNLElBQUksRUFBRSxLQUFLLFdBQVcsQ0FBQyxDQUFDLEVBQUUsR0FBRSxHQUFFLENBQUMsSUFBSSxHQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBb0IsR0FBakIsU0FBbUIsQ0FBQyxJQUFJLEdBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxNQUFLLEdBQUUsSUFBRyxLQUFJLEVBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxJQUFJLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFFLEVBQUUsS0FBSyxFQUFFLElBQUcsRUFBRSxHQUFFLEdBQUUsT0FBTyxJQUFHLEtBQUksRUFBRSxJQUFHLEtBQUksSUFBRyxHQUFHLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxVQUFtQixHQUFqQixTQUFtQixFQUFFLENBQUMsRUFBRSxPQUFPLEdBQUUsS0FBSyxFQUFFLEdBQUUsS0FBSyxVQUFVLElBQUksRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUUsT0FBTyxLQUFLLEVBQUUsRUFBRSxLQUFLLE1BQU0sRUFBQyxFQUFFLEtBQUssR0FBRyxLQUFLLElBQUksR0FBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxVQUFVLE9BQU8sRUFBRSxjQUFjLENBQUMsR0FBRSxDQUFDLEtBQUssV0FBVyxDQUFDLEdBQUUsQ0FBQyxJQUFRLEtBQUosR0FBYSxJQUFKLElBQUUsR0FBTSxHQUFVLEtBQVAsS0FBUyxPQUFPLElBQUksS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBQyxFQUFFLE9BQU8sSUFBSSxLQUFLLEdBQUcsY0FBYSxLQUFLLE9BQU8sSUFBSSxLQUFLLEVBQUMsRUFBRSxVQUFvQixJQUFqQixXQUFxQixNQUFNLEtBQUssRUFBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBRyxFQUFFLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FBRSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxHQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUMsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLEdBQUcsR0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFDLEdBQUcsT0FBTyxJQUFJLEtBQUssRUFBQyxHQUFHLEVBQUMsRUFBRSxLQUFLLEtBQUssR0FBRyxFQUFFLGFBQWEsRUFBRSxDQUFDLElBQUksR0FBRSxLQUFLLEdBQUcsS0FBSyxHQUFHLEdBQUUsWUFBWSxFQUFFLEtBQUssR0FBRyxHQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsR0FBRSxRQUFRLEVBQUUsS0FBSyxHQUFHLEdBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxHQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsR0FBRSxXQUFXLEVBQUUsS0FBSyxHQUFHLEdBQUUsV0FBVyxFQUFFLEtBQUssSUFBSSxHQUFFLGdCQUFnQixHQUFHLEVBQUUsZUFBZSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxTQUFTLElBQUksR0FBSSxFQUFFLGVBQWUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxJQUFJLEdBQUUsRUFBRSxFQUFDLEVBQUUsT0FBTyxLQUFLLFFBQVEsRUFBQyxHQUFHLElBQUcsSUFBRyxLQUFLLE1BQU0sRUFBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRSxHQUFFLENBQUMsT0FBTyxFQUFFLEVBQUMsRUFBRSxLQUFLLFFBQVEsRUFBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsR0FBRSxHQUFFLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBQyxFQUFFLEVBQUUsRUFBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUUsR0FBRSxHQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBQyxFQUFFLEtBQUssSUFBRyxLQUFLLElBQUksR0FBRSxFQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxPQUFPLEtBQUssTUFBTSxLQUFLLFFBQVEsRUFBRSxJQUFHLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLFFBQVEsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUUsR0FBRSxDQUFDLElBQUksR0FBRSxLQUFLLEtBQUksRUFBRSxFQUFFLEVBQUMsR0FBRyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxXQUFVLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBSSxHQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsS0FBSyxJQUFJLEdBQUUsR0FBRyxHQUFFLEVBQUMsRUFBRSxJQUFJLEtBQUssR0FBRSxHQUFHLEdBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxPQUFPLEdBQUUsR0FBRSxHQUFFLE1BQU0sQ0FBQyxHQUFHLFdBQVUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFFLE9BQU8sRUFBRSxJQUFHLE1BQU0sR0FBRSxPQUFPLEdBQUcsR0FBRyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBQyxHQUFHLEdBQUUsS0FBSyxHQUFHLEdBQUUsS0FBSyxHQUFHLEdBQUUsS0FBSyxHQUFHLEdBQUUsT0FBTyxLQUFLLEdBQUcsTUFBTSxJQUFJLE9BQU8sUUFBUSxFQUFFLE9BQU8sR0FBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEdBQUUsR0FBRSxFQUFFLEVBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLEdBQUUsS0FBSyxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsRUFBRSxJQUFHLEdBQUUsT0FBTyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsRUFBRSxJQUFHLEVBQUMsT0FBTyxPQUFPLEVBQUUsT0FBTyxHQUFFLEdBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUUsR0FBRSxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sR0FBRSxHQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxHQUFFLEdBQUUsZUFBZSxDQUFDLFVBQVUsT0FBTyxLQUFLLE1BQU0sSUFBSSxFQUFFLGNBQWMsQ0FBQyxHQUFFLENBQUMsT0FBTyxLQUFLLFFBQVEsR0FBRSxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBSSxHQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU0sSUFBSSxJQUFHLEdBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRyxFQUFFLE9BQU8sR0FBRSxHQUFHLEVBQUUsT0FBTyxHQUFFLEdBQUcsRUFBRSxRQUFRLEdBQUUsR0FBRyxFQUFFLFdBQVcsR0FBRSxHQUFHLEVBQUUsUUFBUSxHQUFFLEdBQUcsRUFBRSxVQUFVLEdBQUUsR0FBRyxFQUFFLFVBQVUsR0FBRSxHQUFHLEVBQUUsZUFBZSxJQUFHLElBQUcsR0FBRSxLQUFJLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxJQUFJLEdBQUUsR0FBRyxLQUFJLEdBQUcsS0FBSSxFQUFFLENBQUMsSUFBSSxHQUFFLEtBQUssTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFHLElBQUcsRUFBQyxFQUFFLEdBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxHQUFFLElBQUksRUFBRSxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUUsWUFBWSxDQUFDLENBQUMsRUFBRSxPQUFRLEtBQUcsS0FBSyxHQUFHLElBQUcsRUFBQyxFQUFFLE9BQU8sS0FBSyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxHQUFFLEdBQUUsQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFLEtBQUssR0FBRSxFQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsR0FBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBQyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBSSxHQUFFLEdBQUUsS0FBSyxHQUFFLE9BQU8sRUFBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBQyxFQUFFLFdBQVUsQ0FBQyxHQUFFLENBQUMsSUFBSSxHQUFFLEVBQUUsRUFBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUUsS0FBSyxHQUFFLEtBQUssRUFBRSxLQUFLLE1BQU0sR0FBRSxFQUFDLENBQUMsRUFBRSxFQUFDLEdBQUcsR0FBRyxJQUFJLEVBQUUsT0FBTyxLQUFLLElBQUksRUFBRSxLQUFLLEdBQUcsRUFBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sS0FBSyxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEdBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sR0FBRSxDQUFDLEVBQUUsSUFBSSxJQUFHLEdBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxFQUFFLElBQUcsSUFBSSxFQUFFLEdBQUUsS0FBSyxHQUFHLFFBQVEsRUFBRSxHQUFFLEdBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRSxJQUFJLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxPQUFPLEtBQUssSUFBSSxHQUFHLEdBQUUsRUFBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLEdBQUUsQ0FBQyxJQUFJLEdBQUUsS0FBSyxHQUFFLEtBQUssUUFBUSxFQUFFLElBQUksS0FBSyxRQUFRLEVBQUUsT0FBTyxHQUFFLGFBQWEsRUFBRSxJQUFJLEdBQUUsSUFBRyx1QkFBdUIsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUUsS0FBSyxHQUFHLEdBQUUsS0FBSyxHQUFHLEdBQUUsS0FBSyxHQUFHLEdBQUUsR0FBRSxTQUFTLEdBQUUsR0FBRSxPQUFPLEdBQUUsR0FBRSxTQUFTLFdBQVUsQ0FBQyxHQUFFLEdBQUUsR0FBRSxHQUFFLENBQUMsT0FBTyxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsRUFBQyxJQUFJLEdBQUUsSUFBRyxNQUFNLEVBQUUsRUFBQyxHQUFHLFdBQVUsQ0FBQyxHQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRSxJQUFJLEdBQUcsR0FBRSxHQUFHLEdBQUcsR0FBRSxZQUFXLENBQUMsR0FBRSxHQUFFLEdBQUUsQ0FBQyxJQUFJLEdBQUUsR0FBRSxHQUFHLEtBQUssS0FBSyxPQUFPLEdBQUUsR0FBRSxZQUFZLEVBQUUsSUFBRyxPQUFPLEdBQUUsUUFBUSxVQUFXLENBQUMsR0FBRSxHQUFFLENBQUMsT0FBTyxZQUFXLENBQUMsR0FBRSxDQUFDLE9BQU8sUUFBTyxLQUFLLE9BQU8sT0FBTyxHQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLE9BQU8sRUFBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxJQUFJLE9BQU8sR0FBRSxNQUFNLEtBQUssT0FBTyxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLE1BQU0sT0FBTyxHQUFFLEdBQUUsWUFBWSxHQUFFLEdBQUUsQ0FBQyxNQUFNLE9BQU8sT0FBTyxHQUFFLEdBQUUsRUFBQyxNQUFNLElBQUksT0FBTyxHQUFFLE9BQU8sS0FBSyxPQUFPLEVBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sSUFBSSxPQUFPLE9BQU8sR0FBRSxFQUFFLE1BQU0sS0FBSyxPQUFPLEdBQUUsR0FBRSxZQUFZLEdBQUUsR0FBRyxHQUFFLENBQUMsTUFBTSxNQUFNLE9BQU8sR0FBRSxHQUFFLGNBQWMsR0FBRSxHQUFHLEdBQUUsQ0FBQyxNQUFNLE9BQU8sT0FBTyxHQUFFLEdBQUUsUUFBUSxJQUFJLE9BQU8sT0FBTyxFQUFDLE1BQU0sS0FBSyxPQUFPLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxNQUFNLElBQUksT0FBTyxHQUFFLENBQUMsTUFBTSxLQUFLLE9BQU8sR0FBRSxDQUFDLE1BQU0sSUFBSSxPQUFPLEdBQUUsR0FBRSxHQUFFLEVBQUUsTUFBTSxJQUFJLE9BQU8sR0FBRSxHQUFFLEdBQUUsRUFBRSxNQUFNLElBQUksT0FBTyxPQUFPLEVBQUMsTUFBTSxLQUFLLE9BQU8sRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFHLE1BQU0sSUFBSSxPQUFPLE9BQU8sR0FBRSxFQUFFLE1BQU0sS0FBSyxPQUFPLEVBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sTUFBTSxPQUFPLEVBQUUsRUFBRSxHQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxPQUFPLEVBQUUsT0FBTyxNQUFNLEVBQUMsR0FBRyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUcsR0FBRyxFQUFFLGtCQUFrQixFQUFFLENBQUMsTUFBTyxLQUFJLEtBQUssTUFBTSxLQUFLLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLEdBQUUsR0FBRSxHQUFFLENBQUMsSUFBSSxHQUFFLEVBQUUsS0FBSyxHQUFFLEVBQUUsRUFBRSxFQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUMsRUFBRSxJQUFHLEdBQUUsVUFBVSxFQUFFLEtBQUssVUFBVSxHQUFHLEVBQUUsR0FBRSxLQUFLLEdBQUUsV0FBVSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFDLEdBQUcsT0FBTyxTQUFRLEVBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRSxHQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUcsR0FBRSxJQUFHLFVBQU8sV0FBVyxFQUFFLElBQUcsR0FBRSxJQUFHLFNBQU0sV0FBVyxFQUFFLEdBQUUsR0FBRSxFQUFFLFdBQVcsRUFBRSxHQUFFLEdBQUUsRUFBRSxXQUFXLEVBQUUsR0FBRSxHQUFFLEVBQUUsY0FBYyxHQUFFLEdBQUUsT0FBTyxHQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFFLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBRSxlQUFlLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBSSxHQUFFLE9BQU8sS0FBSyxHQUFHLElBQUksR0FBRSxLQUFLLE1BQU0sRUFBRSxHQUFFLEVBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxPQUFPLEtBQUksR0FBRSxHQUFHLElBQUcsSUFBRyxFQUFFLGNBQWMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxlQUFlLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxLQUFLLFFBQVEsQ0FBQyxHQUFHLEVBQUUsZUFBZSxFQUFFLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxLQUFLLFlBQVksRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxZQUFZLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLFlBQVksR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLFVBQVUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGdCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsZUFBZSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVB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SSxJQUFNLEdBQU0sRUFBSyxJQUFPLElBQU0sR0FBSyxHQUN2QyxHQUFNLElBbE1kLFNBQXdCLEVBQUssQ0FBQyxFQUFRLENBQ3BDLElBQUksRUFBRyxFQUVQLE9BREEsR0FBVSxFQUFTLElBQUksS0FBSyxFQUFFLFlBQVksR0FDbEMsRUFBSSxJQUFNLEtBQUssQ0FBTSxJQUFNLEVBQUksRUFBRSxHQUFHLE9BQVEsRUFBSSxTQUFTLEVBQUUsR0FBSSxFQUFFLEVBQUcsSUFBTSxFQUFJLElBQUssQ0FBQyxFQUN0RixJQUFNLEVBQUksSUFBSSxHQUFLLEdBQUssRUFBSSxHQUFRLEdBQUssRUFBSSxJQUFRLEdBQUssRUFBSSxHQUFRLEVBQUksS0FBUyxFQUFJLEtBQVEsRUFBTSxFQUFJLEdBQU0sQ0FBQyxFQUNoSCxJQUFNLEVBQUksSUFBSyxHQUFLLEdBQUssSUFBTSxHQUFLLEdBQUssSUFBTSxHQUFLLEVBQUksS0FBTyxFQUFJLEtBQVEsR0FBSSxFQUMvRSxJQUFNLEVBQUksSUFBTSxHQUFLLEdBQUssR0FBUSxHQUFLLEVBQUksSUFBUSxHQUFLLEVBQUksR0FBUSxHQUFLLEVBQUksSUFBUSxHQUFLLEVBQUksR0FBUSxFQUFJLE1BQVUsRUFBSSxLQUFRLEVBQU0sRUFBSSxJQUFRLEdBQUksRUFDdEosT0FDQyxFQUFJLElBQWEsS0FBSyxDQUFNLEdBQUssSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsR0FDNUQsRUFBSSxJQUFhLEtBQUssQ0FBTSxHQUFLLElBQUksR0FBSSxFQUFFLEdBQUssSUFBTSxJQUFLLEVBQUUsR0FBSyxJQUFNLElBQUssRUFBRSxHQUFLLElBQU0sSUFBSyxDQUFDLEdBQ2hHLEVBQUksSUFBYyxLQUFLLENBQU0sR0FBSyxJQUFLLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUM3RCxFQUFJLElBQWMsS0FBSyxDQUFNLEdBQUssSUFBSyxFQUFFLEdBQUssSUFBTSxJQUFLLEVBQUUsR0FBSyxJQUFNLElBQUssRUFBRSxH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Q0FBQyxFQUFHLEVBQVEsRUFBRyxDQUM5QyxJQUFJLEVBQUksR0FBUyxLQUFLLEVBQU8sTUFBTSxFQUFHLEVBQUksQ0FBQyxDQUFDLEVBQzVDLE9BQU8sR0FBSyxFQUFFLEdBQUssRUFBRSxHQUFJLEVBQUksRUFBRSxHQUFHLFFBQVUsR0FHOUMsU0FBUyxHQUFxQixDQUFDLEVBQUcsRUFBUSxFQUFHLENBQzNDLElBQUksRUFBSSxHQUFTLEtBQUssRUFBTyxNQUFNLEVBQUcsRUFBSSxDQUFDLENBQUMsRUFDNUMsT0FBTyxHQUFLLEVBQUUsR0FBSyxFQUFFLEdBQUksRUFBSSxFQUFFLEdBQUcsUUFBVSxHQUc5QyxTQUFTLEdBQWtCLENBQUMsRUFBRyxFQUFRLEVBQUcsQ0FDeEMsSUFBSSxFQUFJLEdBQVMsS0FBSyxFQUFPLE1BQU0sRUFBRyxFQUFJLENBQUMsQ0FBQyxFQUM1QyxPQUFPLEdBQUssRUFBRSxHQUFLLEVBQUUsR0FBSSxFQUFJLEVBQUUsR0FBRyxRQUFVLEdBRzlDLFNBQVMsR0FBcUIsQ0FBQyxFQUFHLEVBQVEsRUFBRyxDQUMzQyxJQUFJLEVBQUksR0FBUyxLQUFLLEVBQU8sTUFBTSxFQUFHLEVBQUksQ0FBQyxDQUFDLEVBQzVDLE9BQU8sR0FBSyxFQUFFLEdBQUssRUFBRSxHQUFJLEVBQUksRUFBRSxHQUFHLFFBQVUsR0FHOUMsU0FBUyxHQUFhLENBQUMsRUFBRyxFQUFRLEVBQUcsQ0FDbkMsSUFBSSxFQUFJLEdBQVMsS0FBSyxFQUFPLE1BQU0sRUFBRyxFQUFJLENBQUMsQ0FBQyxFQUM1QyxPQUFPLEdBQUssRUFBRSxHQUFLLEVBQUUsR0FBSSxFQUFJLEVBQUUsR0FBRyxRQUFVLEdBRzlDLFNBQVMsR0FBUyxDQUFDLEVBQUcsRUFBUSxFQUFHLENBQy9CLElBQUksRUFBSSxHQUFTLEtBQUssRUFBTyxNQUFNLEVBQUcsRUFBSSxDQUFDLENBQUMsRUFDNUMsT0FBTyxHQUFLLEVBQUUsR0FBSyxFQUFFLEtBQU8sRUFBRSxHQUFLLEdBQUssS0FBTyxNQUFPLEVBQUksRUFBRSxHQUFHLFFBQVUs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RUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsSUFBSyxHQUNQLEVBRUksRUFBYSxDQUNmLEVBQUssR0FDTCxFQUFLLEdBQ0wsRUFBSyxHQUNMLEVBQUssR0FDTCxFQUFLLEtBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLEdBQ0wsRUFBSyxHQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxLQUNMLEVBQUssS0FDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxJQUFLLEdBQ1AsRUFFSSxFQUFTLENBQ1gsRUFBSyxFQUNMLEVBQUssRUFDTCxFQUFLLEVBQ0wsRUFBSyxFQUNMLEVBQUssR0FDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssRUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLEVBQUssSUFDTCxFQUFLLEdBQ0wsRUFBSyxHQUNMLEVBQUssSUFDTCxFQUFLLElBQ0wsRUFBSyxJQUNMLElBQUssR0FDUCxFQUdBLEVBQVEsRUFBSSxFQUFVLEVBQWEsQ0FBTyxFQUMxQyxFQUFRLEVBQUksRUFBVSxFQUFhLENBQU8sRUFDMUMsRUFBUSxFQUFJLEVBQVUsRUFBaUIsQ0FBTyxFQUM5QyxFQUFXLEVBQUksRUFBVSxFQUFhLENBQVUsRUFDaEQsRUFBVyxFQUFJLEVBQVUsRUFBYSxDQUFVLEVBQ2hELEVBQVcsRUFBSSxFQUFVLEVBQWlCLENBQVUsRUFF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LElBQUssR0FBTyxHQUFLLEdBQUssR0FBUyxJQUFPLEVBQUssRUFBSSxHQUFLLEdBQU8sR0FBSSxHQUFPLE9BQ2pFLEdBQU0sRUFBRyxFQUFNLEdBQU8sRUFBSyxHQUFNLEVBQ3RDLElBQUssR0FBTyxHQUFLLEdBQUssR0FBUyxJQUFPLEVBQUssRUFBSSxHQUFLLEdBQU8sR0FBSSxHQUFPLE9BQ2pFLEdBQU0sRUFBRyxFQUFNLEdBQU8sRUFBSyxHQUFNLEVBR3hDLElBQUksR0FBTSxFQUFLLEdBQUksQ0FBRyxFQUNsQixFQUFNLEVBQUssR0FBSSxDQUFHLEVBQ2xCLEdBQU0sRUFBSyxHQUFJLENBQUcsRUFDbEIsR0FBTSxFQUFLLEdBQUksQ0FBRyxFQUd0QixHQUFJLEVBQUssR0FBUyxDQUNoQixJQUFJLEdBQU0sRUFBSyxHQUFJLENBQUcsRUFDbEIsR0FBTSxFQUFLLEdBQUksQ0FBRyxFQUNsQixHQUFNLEVBQUssR0FBSSxDQUFHLEVBQ2xCLEdBQU0sRUFBSyxHQUFJLENBQUcsRUFDbEIsR0FLSixHQUFJLEVBQUssR0FDUCxHQUFJLEdBQUssSUFBVSxHQUFLLEVBQUssR0FBSyxHQUFLLEdBQUssR0FBSyxHQUFLLEVBQUcsRUFBRyxDQUMxRCxJQUFJLEdBQUssR0FBTSxHQUFHLEdBQ2QsR0FBSyxFQUFNLEdBQUcsR0FDZCxHQUFLLEdBQU0sR0FBRyxHQUNkLEdBQUssR0FBTSxHQUFHLEdBQ2QsR0FBSyxFQUFJLEdBQUksS0FBTSxHQUFLLEdBQUssR0FBSyxLQUFPLEdBQUssR0FBSyxHQUFLLEdBQUssRUFBRSxFQUFJLEdBQUssR0FBSyxHQUFLLEdBQUssRUFBRSxFQUFFLEVBQUksQ0FBQyxFQUNoRyxHQUFLLEdBQUssR0FBRyxHQUFLLEdBQUcsR0FBSyxHQUFHLEdBQUssR0FBRyxFQUFFLEVBQzNDLEVBQU0sSUFBSSxHQUFLLEVBQUssS0FBTyxHQUFLLEVBQUUsRUFDbEMsRUFBTSxJQUFJLEdBQUssRUFBSyxLQUFPLEdBQUssRUFBRSxNQUVsQyxHQUFNLEVBQU0sRUFNbEIsS0FBTSxFQUFNLElBQVUsRUFBUSxPQUFPLEdBQUssQ0FBRyxVQUdwQyxFQUFNLEdBT2IsR0FOQSxFQUFLLElBQWUsR0FBSyxHQUFLLEdBQUssRUFBSyxFQUFJLEVBQUssQ0FBRSxFQUNuRCxHQUFLLElBQWUsR0FBSyxHQUFLLEdBQUssR0FBSyxFQUFJLEVBQUssQ0FBRSxFQUVuRCxFQUFRLE9BQU8sRUFBRyxHQUFLLEVBQUcsSUFBSyxFQUFHLEdBQUssRUFBRyxHQUFHLEVBR3pDLEVBQU0sRUFBSSxFQUFRLElBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFLLEdBQU0sRUFBRyxJQUFLLEVBQUcsR0FBRyxFQUFHLEdBQU0sR0FBRyxJQUFLLEdBQUcsR0FBRyxHQUFJLENBQUUsTUFJNUYsR0FBUSxJQUFJLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBSyxHQUFNLEVBQUcsSUFBSyxFQUFHLEdBQUcsRUFBRyxHQUFNLEVBQUcsSUFBSyxFQUFHLEdBQUcsR0FBSSxDQUFFLEVBQ2hGLEVBQVEsSUFBSSxFQUFHLEVBQUcsRUFBSSxHQUFNLEVBQUcsR0FBSyxFQUFHLElBQUssRUFBRyxHQUFLLEVBQUcsR0FBRyxFQUFHLEdBQU0sR0FBRyxHQUFLLEdBQUcsSUFBSyxHQUFHLEdBQUssR0FBRyxHQUFHLEdBQUksQ0FBRSxFQUN2RyxFQUFRLElBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFLLEdBQU0sR0FBRyxJQUFLLEdBQUcsR0FBRyxFQUFHLEdBQU0sR0FBRyxJQUFLLEdBQUcsR0FBRyxHQUFJLENBQUUsTUFLL0UsR0FBUSxPQUFPLEdBQUssQ0FBRyxFQUFHLEVBQVEsSUFBSSxFQUFHLEVBQUcsRUFBSSxFQUFLLEdBQU0sQ0FBRSxFQUlsRSxLQUFNLEVBQUssT0FBYyxFQUFNLElBQVUsRUFBUSxPQUFPLEdBQUssRUFBRyxVQUd2RCxFQUFNLEdBT2IsR0FOQSxFQUFLLElBQWUsR0FBSyxHQUFLLEdBQUssR0FBSyxHQUFLLEVBQUssQ0FBRSxFQUNwRCxHQUFLLElBQWUsR0FBSyxFQUFLLEdBQUssR0FBSyxHQUFLLEVBQUssQ0FBRSxFQUVw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QVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsT0FBUSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ2hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUNyQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQ3JDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDckMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUNyQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQ3BDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDcEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDOUIsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUM5QixPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDckMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM5QixPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzlCLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDOUIsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUM5QixPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsT0FBUSxNQUFPLEVBQUcsRUFBRyxDQUFHLEVBQ2pDLE9BQVEsQ0FBQyxPQUFRLE1BQU8sRUFBRyxFQUFHLENBQUcsRUFDakMsT0FBUSxDQUFDLE9BQVEsTUFBTyxFQUFHLEVBQUcsQ0FBRyxFQUNqQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxPQUFRLE1BQU8sRUFBRyxFQUFHLENBQUcsRUFDakMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQ3BDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDcEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUNyQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQ3JDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDckMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUNwQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQ3BDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDckMsT0FBUSxDQUFDLE9BQVEsTUFBTyxFQUFHLEVBQUcsS0FBSyxFQUNuQyxPQUFRLENBQUMsT0FBUSxNQUFPLEVBQUcsRUFBRyxLQUFLLEVBQ25DLE9BQVEsQ0FBQyxFQUFHLE1BQU8sRUFBRyxFQUFHLEdBQUcsRUFDNUIsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUNyQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQ3BDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDcEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLE9BQVEsTUFBTyxFQUFHLEVBQUcsT0FBTyxFQUNyQyxPQUFRLENBQUMsT0FBUSxNQUFPLEVBQUcsRUFBRyxPQUFPLEVBQ3JDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLE1BQU8sRUFBRyxFQUFHLE9BQU8sRUFDaEMsT0FBUSxDQUFDLEVBQUcsTUFBTyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxPQUFRLENBQUMsRUFBRyxNQUFPLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLE9BQVEsQ0FBQyxFQUFHLE1BQU8sRUFBRyxFQUFHLE9BQU8sRUFDaEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxPQUFRLE9BQVEsRUFBRyxFQUFHLE9BQU8sRUFDdEMsT0FBUSxDQUFDLE9BQVEsT0FBUSxFQUFHLEVBQUcsT0FBTyxFQUN0QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDOUIsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM5QixPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzlCLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDOUIsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLE1BQU8sRUFBRyxFQUFHLE9BQU8sRUFDaEMsT0FBUSxDQUFDLEVBQUcsTUFBTyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsUUFBUyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNuQyxRQUFTLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ25DLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sQ0FDM0MsRUFDQSxzQkFBdUIsQ0FDckIsS0FBTSxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsSUFBSSxFQUN2QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsUUFBUyxRQUFTLE9BQVEsUUFBUyxPQUFPLEVBQ2pELEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsUUFBUyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQ2xELEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLFFBQVMsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsUUFBUyxNQUFNLEVBQ3JDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLFFBQVMsTUFBTSxFQUNyQyxLQUFNLENBQUMsRUFBRyxRQUFTLE1BQU8sUUFBUyxPQUFPLEVBQzFDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsTUFBTSxFQUMzQyxLQUFNLENBQUMsUUFBUyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQ2xELEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsTUFBTyxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsSUFBSSxDQUMxQixFQUNBLGtCQUFtQixDQUNqQixLQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLEVBQ3ZCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxNQUFNLEVBQy9CLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE1BQU0sRUFDckMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsTUFBTSxFQUN0QyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE1BQU0sRUFDaEMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsTUFBTSxFQUNoQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLElBQUksRUFDeEIsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLFFBQVMsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbkMsUUFBUyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsTUFBTSxFQUNsQyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxRQUFTLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ25DLFFBQVMsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbkMsUUFBUyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxDQUNyQyxFQUNBLFlBQWEsQ0FDWCxLQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLEVBQ3ZCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDN0IsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLEtBQUssRUFDakMsS0FBTSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNuQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLEtBQU0sRUFBRyxFQUFHLEtBQUssRUFDM0IsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsTUFBTSxFQUMvQixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsS0FBTSxRQUFTLFFBQVMsRUFBRyxLQUFLLEVBQ3ZDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLEtBQUssRUFDM0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsS0FBTSxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ2xDLE1BQU8sQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLElBQUksRUFDeEIsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLEVBQUcsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUNyQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDN0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEtBQUssRUFDdEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEtBQUssRUFDdEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3RDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUN0QyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLE9BQVEsQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLEtBQUssRUFDaEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxPQUFRLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLEtBQUssRUFDbkMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLEtBQUssRUFDaEMsT0FBUSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsS0FBSyxFQUNoQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3ZDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDdkMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUN2QyxPQUFRLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsS0FBSyxFQUNoQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDOUMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLE1BQU8sTUFBTyxFQUFHLEVBQUcsS0FBSyxFQUNsQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3ZDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUN2QyxPQUFRLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDdkMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3ZDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQy9CLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxRQUFTLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ25DLFFBQVMsQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDbkMsUUFBUyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUMvQixRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsQ0FBQyxDQUNyQyxFQUNBLGtCQUFtQixDQUNqQixLQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLEVBQ3ZCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxRQUFTLEtBQU0sUUFBUyxFQUFHLE9BQU8sRUFDekMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxLQUFNLEtBQU0sUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxLQUFNLFFBQVMsRUFBRyxPQUFPLEVBQ25DLEtBQU0sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDNUMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM1QyxLQUFNLENBQUMsU0FBVSxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzdDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsT0FBUSxFQUFHLE9BQU8sRUFDckMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE1BQU0sRUFDckMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLE1BQU8sRUFBRyxPQUFPLEVBQ3BDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE1BQU0sRUFDckMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLE9BQVEsRUFBRyxPQUFPLEVBQ3JDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE1BQU0sRUFDckMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxPQUFRLEVBQUcsT0FBTyxFQUNyQyxLQUFNLENBQUMsS0FBTSxLQUFNLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEtBQU0sUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN6QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsTUFBTyxFQUFHLE9BQU8sRUFDckMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUN6QyxNQUFPLENBQUMsUUFBUyxRQUFTLE1BQU8sRUFBRyxPQUFPLEVBQzNDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLE9BQVEsRUFBRyxPQUFPLEVBQzVDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsTUFBTyxFQUFHLE9BQU8sRUFDM0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEtBQUssRUFDckMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLE1BQU8sRUFBRyxPQUFPLEVBQzNDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEtBQU0sUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUMxQyxNQUFPLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLEVBQ3hCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxFQUFHLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM3QyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxLQUFLLEVBQzNDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsTUFBTyxFQUFHLE9BQU8sRUFDckMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxNQUFPLEVBQUcsT0FBTyxFQUNyQyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxLQUFLLEVBQzNDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE1BQU0sRUFDdEMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLE9BQVEsRUFBRyxPQUFPLEVBQ3RDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLENBQzFDLEVBQ0EsY0FBZSxDQUNiLEtBQU0sQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLElBQUksRUFDdkIsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDNUMsS0FBTSxDQUFDLFFBQVMsS0FBTSxRQUFTLEVBQUcsT0FBTyxFQUN6QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsS0FBTSxLQUFNLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLEtBQU0sUUFBUyxFQUFHLE9BQU8sRUFDbkMsS0FBTSxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM1QyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsS0FBTSxLQUFNLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxPQUFRLEVBQUcsT0FBTyxFQUNyQyxLQUFNLENBQUMsUUFBUyxRQUFTLE9BQVEsRUFBRyxPQUFPLEVBQzNDLEtBQU0sQ0FBQyxTQUFVLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsS0FBTSxDQUFDLEVBQUcsUUFBUyxPQUFRLEVBQUcsT0FBTyxFQUNyQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEtBQUssRUFDcEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEtBQUssRUFDcEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsS0FBTSxLQUFNLE9BQVEsRUFBRyxPQUFPLEVBQ3JDLEtBQU0sQ0FBQyxLQUFNLEtBQU0sUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsS0FBTSxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3pDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsSUFBSSxFQUNuQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxJQUFJLEVBQ25DLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsSUFBSSxFQUNwQyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLElBQUksRUFDMUMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLE9BQVEsRUFBRyxPQUFPLEVBQ3RDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsSUFBSSxFQUNwQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsSUFBSSxFQUMxQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLElBQUksRUFDcEMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsS0FBTSxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzFDLE1BQU8sQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLElBQUksRUFDeEIsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLEVBQUcsRUFBRyxFQUFHLElBQUksRUFDOUIsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLE9BQVEsRUFBRyxPQUFPLEVBQ3RDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxPQUFRLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsT0FBUSxFQUFHLE9BQU8sRUFDdkMsT0FBUSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLENBQ3BDLEVBQ0EsZUFBZ0IsQ0FDZCxLQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLEVBQ3ZCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLEdBQUcsRUFDL0IsS0FBTSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNuQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLEtBQU0sRUFBRyxFQUFHLEdBQUcsRUFDekIsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxPQUFRLE9BQVEsRUFBRyxFQUFHLE9BQU8sRUFDcEMsS0FBTSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxLQUFNLENBQUMsT0FBUSxPQUFRLEVBQUcsRUFBRyxPQUFPLEVBQ3BDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzdCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDN0IsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDN0IsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsSUFBSSxFQUM3QixLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxJQUFJLEVBQ25DLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsSUFBSSxFQUM3QixLQUFNLENBQUMsRUFBRyxRQUFTLE1BQU8sRUFBRyxJQUFJLEVBQ2pDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsS0FBTSxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ3JDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDekMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzdCLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxHQUFHLEVBQzdCLE1BQU8sQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsR0FBRyxFQUM3QixNQUFPLENBQUMsS0FBTSxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQ2hDLE1BQU8sQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLElBQUksRUFDeEIsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDN0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzlCLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxFQUFHLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDN0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDbkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzdCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDN0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM3QixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzdCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDN0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM3QixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDOUIsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM3QixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzdCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzlCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxPQUFRLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ3BDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLENBQUcsRUFDcEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDOUIsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM5QixPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLEVBQUcsTUFBTyxFQUFHLEVBQUcsS0FBSyxFQUM5QixPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ2hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDcEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxRQUFTLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLFFBQVMsT0FBTyxFQUM5QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUNyQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQ3BDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDckMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUNwQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQ3JDLE9BQVEsQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLEdBQUcsRUFDOUIsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUNwQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQ3BDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDcEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUNwQyxPQUFRLENBQUMsTUFBTyxNQUFPLEVBQUcsRUFBRyxDQUFHLEVBQ2hDLE9BQVEsQ0FBQyxNQUFPLE1BQU8sRUFBRyxFQUFHLEtBQUssRUFDbEMsT0FBUSxDQUFDLE1BQU8sTUFBTyxFQUFHLEVBQUcsS0FBSyxFQUNsQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQ3JDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDckMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUNyQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQ3JDLE9BQVEsQ0FBQyxNQUFPLE1BQU8sRUFBRyxFQUFHLENBQUcsRUFDaEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUNyQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDckMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQ3JDLE9BQVEsQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxNQUFNLEVBQzdDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsR0FBRyxFQUNqQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxPQUFRLE9BQVEsRUFBRyxFQUFHLE9BQU8sRUFDdEMsT0FBUSxDQUFDLE9BQVEsT0FBUSxFQUFHLEVBQUcsT0FBTyxFQUN0QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsR0FBRyxFQUM5QixPQUFRLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxHQUFHLEVBQzlCLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDckMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUNyQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQ3JDLE9BQVEsQ0FBQyxJQUFLLElBQUssRUFBRyxFQUFHLE9BQU8sRUFDaEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQzlCLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxHQUFHLEVBQzlCLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM5QyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxPQUFRLENBQUMsT0FBUSxNQUFPLEVBQUcsRUFBRyxLQUFLLEVBQ25DLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN6QyxPQUFRLENBQUMsT0FBUSxNQUFPLEVBQUcsRUFBRyxLQUFLLEVBQ25DLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxPQUFRLE9BQVEsRUFBRyxFQUFHLENBQUcsRUFDbEMsT0FBUSxDQUFDLE9BQVEsT0FBUSxFQUFHLEVBQUcsQ0FBRyxFQUNsQyxPQUFRLENBQUMsT0FBUSxPQUFRLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLE9BQVEsQ0FBQyxPQUFRLE9BQVEsRUFBRyxFQUFHLE9BQU8sRUFDdEMsT0FBUSxDQUFDLE9BQVEsT0FBUSxFQUFHLEVBQUcsT0FBTyxFQUN0QyxPQUFRLENBQUMsT0FBUSxPQUFRLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLE1BQU8sS0FBTSxFQUFHLEVBQUcsS0FBSyxFQUNqQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQ3JDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUNyQyxPQUFRLENBQUMsTUFBTyxNQUFPLEVBQUcsRUFBRyxHQUFHLEVBQ2hDLE9BQVEsQ0FBQyxLQUFNLE1BQU8sRUFBRyxFQUFHLEtBQUssRUFDakMsT0FBUSxDQUFDLE1BQU8sTUFBTyxFQUFHLEVBQUcsS0FBSyxFQUNsQyxPQUFRLENBQUMsS0FBTSxNQUFPLEVBQUcsRUFBRyxLQUFLLEVBQ2pDLE9BQVEsQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsQ0FBRyxFQUNyQyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxDQUFHLEVBQ3JDLE9BQVEsQ0FBQyxNQUFPLE1BQU8sRUFBRyxFQUFHLEtBQUssRUFDbEMsT0FBUSxDQUFDLE1BQU8sTUFBTyxFQUFHLEVBQUcsS0FBSyxFQUNsQyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDckMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQ3JDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLENBQUcsRUFDcEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQy9CLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxRQUFTLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ25DLFFBQVMsQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDbkMsUUFBUyxDQUFDLE1BQU8sTUFBTyxFQUFHLEVBQUcsS0FBSyxFQUNuQyxRQUFTLENBQUMsTUFBTyxNQUFPLEVBQUcsRUFBRyxLQUFLLEVBQ25DLFFBQVMsQ0FBQyxNQUFPLE1BQU8sRUFBRyxFQUFHLEtBQUssRUFDbkMsUUFBUyxDQUFDLE1BQU8sTUFBTyxFQUFHLEVBQUcsS0FBSyxFQUNuQyxRQUFTLENBQUMsTUFBTyxNQUFPLEVBQUcsRUFBRyxLQUFLLEVBQ25DLFFBQVMsQ0FBQyxNQUFPLE1BQU8sRUFBRyxFQUFHLEtBQUssRUFDbkMsUUFBUyxDQUFDLE1BQU8sTUFBTyxFQUFHLEVBQUcsS0FBSyxFQUNuQyxRQUFTLENBQUMsTUFBTyxNQUFPLEVBQUcsRUFBRyxLQUFLLEVBQ25DLFFBQVMsQ0FBQyxNQUFPLE1BQU8sRUFBRyxFQUFHLEtBQUssRUFDbkMsUUFBUyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsSUFBSSxFQUNoQyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3pDLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDekMsUUFBUyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsQ0FBQyxDQUNyQyxFQUNBLGtCQUFtQixDQUNqQixLQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLEVBQ3ZCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDcEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUNwQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3BDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUNwQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDcEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxNQUFNLEVBQ3JDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE1BQU0sRUFDNUMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxNQUFNLEVBQ2hDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsT0FBUSxFQUFHLE9BQU8sRUFDNUMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsTUFBTSxFQUN0QyxNQUFPLENBQUMsRUFBRyxRQUFTLE9BQVEsRUFBRyxPQUFPLEVBQ3RDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE1BQU0sRUFDaEMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxNQUFNLEVBQ3RDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLEVBQ3hCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsTUFBTSxFQUN0QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM3QyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ3pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE1BQU0sRUFDdEMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE1BQU0sRUFDdEMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsTUFBTSxFQUN0QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxLQUFLLEVBQ3JDLE9BQVEsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE1BQU0sRUFDdkMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxRQUFTLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ25DLFFBQVMsQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sQ0FDM0MsRUFDQSxjQUFlLENBQ2IsS0FBTSxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsSUFBSSxFQUN2QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQ2xDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDbEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUNsQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDbEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQ2xDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxRQUFTLElBQUksRUFDbkMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsTUFBTSxFQUMzQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxRQUFTLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDNUMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE1BQU0sRUFDM0MsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM1QyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLFFBQVMsT0FBTyxFQUN0QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxRQUFTLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUNuRCxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQ25ELE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE1BQU0sRUFDdEMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLFFBQVMsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDbkQsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxRQUFTLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLFFBQVMsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLFFBQVMsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQ25ELE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsSUFBSSxFQUN4QixNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxRQUFTLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLFFBQVMsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEtBQU0sUUFBUyxPQUFPLEVBQzFDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE1BQU0sRUFDNUMsTUFBTyxDQUFDLEVBQUcsUUFBUyxPQUFRLFFBQVMsTUFBTSxFQUMzQyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQ25ELE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxRQUFTLE1BQU0sRUFDbEQsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUNuRCxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsUUFBUyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxRQUFTLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxRQUFTLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLFFBQVMsT0FBTyxFQUM3QyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsUUFBUyxNQUFNLEVBQ2xELE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxRQUFTLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDbkQsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLE9BQVEsUUFBUyxPQUFPLEVBQzVDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDN0MsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLFFBQVMsT0FBTyxFQUM3QyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxRQUFTLE9BQU8sRUFDbkQsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxRQUFTLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxPQUFRLENBQUMsUUFBUyxRQUFTLEVBQUcsUUFBUyxPQUFPLEVBQzlDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxRQUFTLE1BQU0sRUFDdkMsUUFBUyxDQUFDLEVBQUcsUUFBUyxFQUFHLFFBQVMsT0FBTyxFQUN6QyxRQUFTLENBQUMsUUFBUyxRQUFTLEVBQUcsUUFBUyxPQUFPLENBQ2pELEVBQ0EsaUJBQWtCLENBQ2hCLEtBQU0sQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLElBQUksRUFDdkIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsSUFBSSxFQUNoQyxLQUFNLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ25DLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsS0FBTSxFQUFHLEVBQUcsSUFBSSxFQUMxQixLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLElBQUksRUFDN0IsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsSUFBSSxFQUM3QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzdCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDN0IsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsSUFBSSxFQUM3QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzdCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDN0IsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsSUFBSSxFQUM3QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzdCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDN0IsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsSUFBSSxFQUM3QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxPQUFRLEVBQUcsT0FBTyxFQUNyQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzdCLEtBQU0sQ0FBQyxLQUFNLFFBQVMsUUFBUyxFQUFHLElBQUksRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsSUFBSSxFQUMxQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDOUIsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUNuQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDN0IsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUN6QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxLQUFNLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDakMsTUFBTyxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsSUFBSSxFQUN4QixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzlCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsSUFBSSxFQUM5QixNQUFPLENBQUMsUUFBUyxFQUFHLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzlCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDOUIsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsSUFBSSxFQUM5QixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzlCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxJQUFJLEVBQzlCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLElBQUksRUFDOUIsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLElBQUksRUFDckMsT0FBUSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLENBQ3BDLEVBQ0EsbUJBQW9CLENBQ2xCLEtBQU0sQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLElBQUksRUFDdkIsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ2xDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDNUMsS0FBTSxDQUFDLFFBQVMsS0FBTSxRQUFTLEVBQUcsR0FBRyxFQUNyQyxLQUFNLENBQUMsUUFBUyxLQUFNLFFBQVMsRUFBRyxPQUFPLEVBQ3pDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsS0FBTSxLQUFNLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxLQUFNLEtBQU0sUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsS0FBTSxRQUFTLEVBQUcsR0FBRyxFQUMvQixLQUFNLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzVDLEtBQU0sQ0FBQyxNQUFPLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDcEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxLQUFNLEtBQU0sUUFBUyxFQUFHLEdBQUcsRUFDbEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUNsQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ2xDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDbEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUNsQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ2xDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDbEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUNsQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ2xDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDbEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUNsQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxNQUFPLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDMUMsS0FBTSxDQUFDLE1BQU8sS0FBTSxRQUFTLEVBQUcsT0FBTyxFQUN2QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsS0FBSyxFQUNwQyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsTUFBTyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzFDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE1BQU0sRUFDckMsS0FBTSxDQUFDLEVBQUcsUUFBUyxPQUFRLEVBQUcsT0FBTyxFQUNyQyxLQUFNLENBQUMsRUFBRyxRQUFTLE9BQVEsRUFBRyxPQUFPLEVBQ3JDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxLQUFNLEtBQU0sUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLE9BQVEsRUFBRyxHQUFHLEVBQ2pDLEtBQU0sQ0FBQyxLQUFNLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDckMsS0FBTSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUN6QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDbkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxPQUFRLEVBQUcsT0FBTyxFQUM1QyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxPQUFRLEVBQUcsT0FBTyxFQUN0QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLFFBQVMsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUM3QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxLQUFNLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDdEMsTUFBTyxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsSUFBSSxFQUN4QixNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ25DLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLFFBQVMsRUFBRyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDN0MsTUFBTyxDQUFDLEVBQUcsUUFBUyxPQUFRLEVBQUcsR0FBRyxFQUNsQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ25DLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDbkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUNuQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzdCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDbkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEdBQUcsRUFDbkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUNuQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsT0FBUSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUNwQyxPQUFRLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxDQUFHLEVBQ3BDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDeEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN4QyxPQUFRLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ3BDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLEdBQUcsQ0FDdEMsRUFDQSxvQkFBcUIsQ0FDbkIsS0FBTSxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsSUFBSSxFQUN2QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxLQUFNLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxHQUFHLEVBQy9CLEtBQU0sQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDbkMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxLQUFNLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxLQUFNLEVBQUcsRUFBRyxHQUFHLEVBQ3pCLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLE1BQU8sUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNwQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM1QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzVCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLE1BQU8sUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNwQyxLQUFNLENBQUMsTUFBTyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxNQUFPLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDcEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsTUFBTSxFQUMvQixLQUFNLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3RDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsRUFBRyxRQUFTLE1BQU8sRUFBRyxPQUFPLEVBQ3BDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEtBQU0sS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNoQyxLQUFNLENBQUMsS0FBTSxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDNUIsS0FBTSxDQUFDLEtBQU0sUUFBUyxRQUFTLEVBQUcsR0FBRyxFQUNyQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2hDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDaEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNoQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ3pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM3QixNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxRQUFTLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQ3ZDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLE9BQU8sRUFDdkMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxRQUFTLFFBQVMsRUFBRyxPQUFPLEVBQzdDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEtBQU0sUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUNoQyxNQUFPLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLEVBQ3hCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDN0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsUUFBUyxFQUFHLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzdCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDN0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM3QixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzdCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDN0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM3QixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxFQUM3QixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxHQUFHLEVBQzdCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxPQUFRLENBQUMsRUFBRyxRQUFTLFFBQVMsRUFBRyxHQUFHLEVBQ3BDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsUUFBUyxFQUFHLENBQUcsRUFDcEMsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEdBQUcsRUFDOUIsT0FBUSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsR0FBRyxDQUNoQyxFQUNBLGlCQUFrQixDQUNoQixLQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLEVBQ3ZCLEtBQU0sQ0FBQyxFQUFHLElBQUssUUFBUyxFQUFHLE9BQU8sRUFDbEMsS0FBTSxDQUFDLEVBQUcsSUFBSyxRQUFTLEVBQUcsT0FBTyxFQUNsQyxLQUFNLENBQUMsRUFBRyxJQUFLLE9BQVEsRUFBRyxPQUFPLEVBQ2pDLEtBQU0sQ0FBQyxFQUFHLElBQUssUUFBUyxFQUFHLE9BQU8sRUFDbEMsS0FBTSxDQUFDLEVBQUcsSUFBSyxRQUFTLEVBQUcsT0FBTyxFQUNsQyxLQUFNLENBQUMsRUFBRyxJQUFLLFFBQVMsRUFBRyxPQUFPLEVBQ2xDLEtBQU0sQ0FBQyxFQUFHLElBQUssUUFBUyxFQUFHLE9BQU8sRUFDbEMsS0FBTSxDQUFDLEVBQUcsSUFBSyxRQUFTLEVBQUcsT0FBTyxFQUNsQyxLQUFNLENBQUMsRUFBRyxJQUFLLFFBQVMsRUFBRyxPQUFPLEVBQ2xDLEtBQU0sQ0FBQyxRQUFTLElBQUssUUFBUyxFQUFHLE9BQU8sRUFDeEMsS0FBTSxDQUFDLEVBQUcsSUFBSyxRQUFTLEVBQUcsT0FBTyxFQUNsQyxLQUFNLENBQUMsRUFBRyxJQUFLLFFBQVMsRUFBRyxPQUFPLEVBQ2xDLEtBQU0sQ0FBQyxFQUFHLElBQUssUUFBUyxFQUFHLE9BQU8sRUFDbEMsS0FBTSxDQUFDLEVBQUcsSUFBSyxPQUFRLEVBQUcsTUFBTSxFQUNoQyxLQUFNLENBQUMsRUFBRyxJQUFLLFFBQVMsRUFBRyxPQUFPLEVBQ2xDLEtBQU0sQ0FBQyxFQUFHLElBQUssUUFBUyxFQUFHLE9BQU8sRUFDbEMsS0FBTSxDQUFDLEVBQUcsSUFBSyxRQUFTLEVBQUcsT0FBTyxFQUNsQyxLQUFNLENBQUMsRUFBRyxJQUFLLFFBQVMsRUFBRyxJQUFJLEVBQy9CLEtBQU0sQ0FBQyxFQUFHLElBQUssUUFBUyxFQUFHLE9BQU8sRUFDbEMsS0FBTSxDQUFDLEVBQUcsSUFBSyxRQUFTLEVBQUcsT0FBTyxFQUNsQyxLQUFNLENBQUMsRUFBRyxJQUFLLFFBQVMsRUFBRyxPQUFPLEVBQ2xDLEtBQU0sQ0FBQyxFQUFHLElBQUssUUFBUyxFQUFHLE9BQU8sRUFDbEMsS0FBTSxDQUFDLEVBQUcsSUFBSyxRQUFTLEVBQUcsT0FBTyxFQUNsQyxLQUFNLENBQUMsRUFBRyxJQUFLLFFBQVMsRUFBRyxPQUFPLEVBQ2xDLEtBQU0sQ0FBQyxFQUFHLElBQUssT0FBUSxFQUFHLE9BQU8sRUFDakMsS0FBTSxDQUFDLEVBQUcsSUFBSyxRQUFTLEVBQUcsTUFBTSxFQUNqQyxNQUFPLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLENBQzFCLEVBQ0EsZ0JBQWlCLENBQ2YsS0FBTSxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsSUFBSSxFQUN2QixLQUFNLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ25DLEtBQU0sQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDbkMsS0FBTSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNuQyxLQUFNLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ25DLEtBQU0sQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDbkMsS0FBTSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNuQyxNQUFPLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ3BDLE1BQU8sQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDcEMsTUFBTyxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsSUFBSSxFQUN4QixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLE9BQU8sRUFDakMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsT0FBTyxFQUNqQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxPQUFPLEVBQ2pDLE9BQVEsQ0FBQyxTQUFVLE1BQU8sRUFBRyxFQUFHLE9BQU8sRUFDdkMsT0FBUSxDQUFDLFFBQU8sSUFBSyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsUUFBTyxJQUFLLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxRQUFPLElBQUssRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQU8sSUFBSyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ3JDLE9BQVEsQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDckMsT0FBUSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNyQyxPQUFRLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxDQUFHLEVBQ2pDLE9BQVEsQ0FBQyxTQUFVLE1BQU8sRUFBRyxFQUFHLE9BQU8sRUFDdkMsT0FBUSxDQUFDLFNBQVUsTUFBTyxFQUFHLEVBQUcsT0FBTyxFQUN2QyxPQUFRLENBQUMsUUFBUyxNQUFPLFFBQVMsRUFBRyxPQUFPLEVBQzVDLE9BQVEsQ0FBQyxNQUFPLE1BQU8sUUFBUyxFQUFHLE9BQU8sRUFDMUMsT0FBUSxDQUFDLE1BQU8sTUFBTyxRQUFTLEVBQUcsT0FBTyxFQUMxQyxPQUFRLENBQUMsUUFBUyxNQUFPLFFBQVMsRUFBRyxPQUFPLEVBQzVDLE9BQVEsQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDckMsT0FBUSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNyQyxPQUFRLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ3JDLE9BQVEsQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDckMsT0FBUSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNyQyxPQUFRLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ3JDLE9BQVEsQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDckMsT0FBUSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNyQyxPQUFRLENBQUMsU0FBVSxNQUFPLEVBQUcsRUFBRyxPQUFPLEVBQ3ZDLFFBQVMsQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDdEMsUUFBUyxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUN0QyxRQUFTLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLFFBQVMsQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDdEMsUUFBUyxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUN0QyxRQUFTLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLFFBQVMsQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sQ0FDeEMsRUFDQSxnQkFBaUIsQ0FDZixLQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxJQUFJLEVBQ3ZCLEtBQU0sQ0FBQyxRQUFTLEtBQU0sRUFBRyxF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RUFBRyxPQUFPLEVBQ3RDLE9BQVEsQ0FBQyxRQUFPLElBQUssRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsS0FBTSxFQUFHLEVBQUcsT0FBTyxFQUNyQyxPQUFRLENBQUMsUUFBUyxFQUFHLEVBQUcsRUFBRyxPQUFPLEVBQ2xDLE9BQVEsQ0FBQyxFQUFHLElBQUssRUFBRyxFQUFHLE9BQU8sRUFDOUIsT0FBUSxDQUFDLFFBQU8sSUFBSyxFQUFHLEVBQUcsT0FBTyxFQUNsQyxPQUFRLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ3JDLE9BQVEsQ0FBQyxRQUFTLEVBQUcsRUFBRyxFQUFHLE9BQU8sRUFDbEMsT0FBUSxDQUFDLFFBQVMsTUFBTyxFQUFHLEVBQUcsT0FBTyxFQUN0QyxRQUFTLENBQUMsUUFBUyxLQUFNLEVBQUcsRUFBRyxPQUFPLEVBQ3RDLFFBQVMsQ0FBQyxRQUFTLEtBQU0sRUFBRyxFQUFHLE9BQU8sRUFDdEMsUUFBUyxDQUFDLFNBQVUsTUFBTyxFQUFHLEVBQUcsT0FBTyxFQUN4QyxRQUFTLENBQUMsU0FBVSxNQUFPLEVBQUcsRUFBRyxPQUFPLEVBQ3hDLFFBQVMsQ0FBQyxFQUFHLEtBQU0sRUFBRyxFQUFHLElBQUksRUFDN0IsUUFBUyxDQUFDLEVBQUcsS0FBTSxFQUFHLEVBQUcsSUFBSSxFQUM3QixRQUFTLENBQUMsRUFBRyxLQUFNLEVBQUcsRUFBRyxJQUFJLEVBQzdCLFFBQVMsQ0FBQyxFQUFHLEtBQU0sRUFBRyxFQUFHLElBQUksQ0FDL0IsRUFDQSxxQkFBc0IsQ0FDcEIsS0FBTSxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsS0FBSyxFQUN4QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3BDLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDcEMsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDcEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUNwQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDckMsS0FBTSxDQUFDLFFBQVMsTUFBTyxFQUFHLEVBQUcsS0FBSyxFQUNsQyxLQUFNLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3JDLEtBQU0sQ0FBQyxFQUFHLE1BQU8sRUFBRyxFQUFHLEtBQUssRUFDNUIsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUNwQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUNwQyxLQUFNLENBQUMsU0FBVSxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3JDLEtBQU0sQ0FBQyxTQUFVLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDckMsS0FBTSxDQUFDLFNBQVUsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUNyQyxLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3BDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDcEMsS0FBTSxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUNwQyxLQUFNLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3BDLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLFFBQVMsRUFBRyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLEtBQU0sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDOUIsS0FBTSxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUM5QixLQUFNLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQzlCLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDckMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDckMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDckMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUNyQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDckMsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3JDLE1BQU8sQ0FBQyxRQUFTLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDckMsTUFBTyxDQUFDLFFBQVMsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUNyQyxNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsS0FBSyxFQUN6QixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxRQUFTLEVBQUcsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsUUFBUyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQ3JDLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxFQUMvQixNQUFPLENBQUMsRUFBRyxRQUFTLEVBQUcsRUFBRyxLQUFLLEVBQy9CLE1BQU8sQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQUFHLEtBQUssRUFDL0IsTUFBTyxDQUFDLEVBQUcsUUFBUyxFQUFHLEVBQUcsS0FBSyxF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V0FBWSxFQUFJLEVBQ3hELEdBQWEsR0FBTSxHQUFNLEdBQUssU0FBVSxVQUFXLEVBQUksRUFDdkQsR0FBYSxHQUFNLEdBQU0sR0FBSyxTQUFVLGVBQWdCLEVBQUksRUFDNUQsR0FBYSxHQUFNLEdBQU0sR0FBSyxTQUFVLGVBQWdCLEVBQUksRUFDNUQsR0FBYSxHQUFNLEdBQU0sR0FBSyxTQUFVLFVBQVcsRUFBSSxFQUN2RCxHQUFhLEdBQU0sR0FBTSxHQUFLLFNBQVUsVUFBVyxFQUFJLEVBQ3ZELEdBQWEsR0FBTSxHQUFNLEdBQUssU0FBVSxPQUFRLEVBQUksRUFDcEQsR0FBYSxHQUFNLEdBQU0sR0FBSyxTQUFVLFdBQVksRUFBSSxFQUN4RCxHQUFhLEdBQU0sR0FBTSxHQUFLLFNBQVUsVUFBVyxFQUFJLEVBQ3ZELEdBQWEsR0FBTSxHQUFNLEdBQUssU0FBVSxVQUFXLEVBQUksRUFDdkQsR0FBYSxHQUFNLEdBQU0sR0FBSyxTQUFVLFFBQVEsRUFFaEQsR0FBYSxHQUFNLEdBQU0sSUFBTyxJQUFVLFNBQVMsRUFDbkQsR0FBYSxHQUFNLEdBQU0sSUFBTyxTQUFVLFNBQVMsRUFFbkQsR0FBYSxHQUFNLEdBQU0sR0FBUyxJQUFVLEtBQUssRUFDakQsR0FBYSxHQUFNLEdBQU0sR0FBUyxJQUFVLEtBQUssRUFDakQsR0FBYSxHQUFNLEdBQU0sR0FBUyxJQUFVLEtBQUssRUFDakQsR0FBYSxHQUFNLEdBQU0sR0FBUyxJQUFVLEtBQUssRUFDakQsR0FBYSxHQUFNLEdBQU0sR0FBUyxTQUFVLFVBQVcsRUFBSSxFQUMzRCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsV0FBWSxFQUFJLEVBQzVELEdBQWEsR0FBTSxHQUFNLEdBQVMsU0FBVSxTQUFVLEVBQUksRUFDMUQsR0FBYSxHQUFNLEdBQU0sR0FBUyxTQUFVLFdBQVksRUFBSSxFQUM1RCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsVUFBVyxFQUFJLEVBQzNELEdBQWEsR0FBTSxHQUFNLEdBQVMsU0FBVSxTQUFVLEVBQUksRUFDMUQsR0FBYSxHQUFNLEdBQU0s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YSxHQUFNLEdBQU0sR0FBUyxJQUFLLFFBQVEsRUFDL0MsR0FBYSxHQUFNLEdBQU0sR0FBUyxJQUFLLFFBQVEsRUFDL0MsR0FBYSxHQUFNLEdBQU0sR0FBUyxJQUFLLFFBQVEsRUFDL0MsR0FBYSxHQUFNLEdBQU0sR0FBUyxJQUFLLFFBQVEsRUFDL0MsR0FBYSxHQUFNLEdBQU0sR0FBUyxJQUFLLFFBQVEsRUFDL0MsR0FBYSxHQUFNLEdBQU0sR0FBUyxJQUFLLFFBQVEsRUFDL0MsR0FBYSxHQUFNLEdBQU0sR0FBUyxJQUFLLFFBQVEsRUFDL0MsR0FBYSxHQUFNLEdBQU0sR0FBUyxPQUFVLFFBQVMsRUFBSSxFQUN6RCxHQUFhLEdBQU0sR0FBTSxHQUFTLE9BQVUsUUFBUSxFQUNwRCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsT0FBTyxFQUNuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsT0FBTyxFQUNuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsWUFBWSxFQUN4RCxHQUFhLEdBQU0sR0FBSyxHQUFTLFNBQVUsY0FBYyxFQUN6RCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsVUFBVyxFQUFJLEVBQzNELEdBQWEsR0FBTSxHQUFNLEdBQVMsU0FBVSxTQUFVLEVBQUksRUFDMUQsR0FBYSxHQUFNLEdBQU0sR0FBUyxTQUFVLFVBQVcsRUFBSSxFQUMzRCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsVUFBVyxFQUFJLEVBQzNELEdBQWEsR0FBTSxHQUFNLEdBQVMsU0FBVSxZQUFhLEVBQUksRUFDN0QsR0FBYSxHQUFNLEdBQU0sR0FBUyxTQUFVLFNBQVUsRUFBSSxFQUMxRCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsUUFBUyxFQUFJLEVBQ3pELEdBQWEsR0FBTSxHQUFNLEdBQVMsU0FBVSxVQUFXLEVBQUksRUFDM0QsR0FBYSxHQUFNLEdBQU0sR0FBUyxTQUFVLFNBQVUsRUFBSSxFQUMxRCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsVUFBVyxFQUFJLEVBQzNELEdBQWEsR0FBTSxHQUFNLEdBQVMs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QUFhLEdBQU0sR0FBTSxHQUFRLFNBQVUsT0FBTyxFQUNsRCxHQUFhLEdBQU0sR0FBTSxHQUFRLFNBQVUsU0FBUyxFQUNwRCxHQUFhLEdBQU0sR0FBTSxHQUFRLFNBQVUsU0FBUyxFQUNwRCxHQUFhLEdBQU0sR0FBTSxHQUFRLElBQVUsT0FBTyxFQUNsRCxHQUFhLEdBQU0sR0FBTSxHQUFRLFNBQVUsT0FBTyxFQUNsRCxHQUFhLEdBQU0sR0FBTSxHQUFRLFNBQVUsT0FBTyxFQUNsRCxHQUFhLEdBQU0sR0FBTSxHQUFRLFNBQVUsWUFBWSxFQUV2RCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsVUFBVSxFQUN0RCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsVUFBVSxFQUN0RCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsUUFBUSxFQUNwRCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsUUFBUSxFQUNwRCxHQUFhLEdBQU0sR0FBTSxHQUFTLFNBQVUsTUFBTyxFQUFJLEVBQ3ZELEdBQWEsR0FBTSxHQUFNLEdBQVMsU0FBVSxNQUFPLEVBQUksRUFDdkQsR0FBYSxHQUFNLEdBQU0sR0FBUyxPQUFVLE9BQVEsRUFBSSxFQUN4RCxHQUFhLEdBQU0sR0FBTSxHQUFTLE9BQVUsT0FBUSxFQUFJLEVBQ3hELEdBQWEsR0FBTSxHQUFNLEdBQVMsU0FBVSxPQUFRLEVBQUksRUFDeEQsR0FBYSxHQUFNLEdBQU0sR0FBUyxPQUFVLE1BQU8sRUFBSSxFQUN2RCxHQUFhLEdBQU0sR0FBTSxHQUFTLE9BQVUsT0FBUSxFQUFJLEVBQ3hELEdBQWEsR0FBTSxHQUFNLEdBQVMsU0FBVSxPQUFRLEVBQUksRUFDeEQsR0FBYSxHQUFNLEdBQU0sR0FBUyxPQUFVLE1BQU8sRUFBSSxFQUN2RCxHQUFhLEdBQU0sR0FBTSxHQUFRLFNBQVUsS0FBSyxFQUVoRCxHQUFhLEdBQU0sR0FBTSxHQUFRLFNBQVUsS0FBSyxFQUVoRCxHQUFhLEdBQU0sR0FBTSxHQUFRLFNBQVUsS0FBSyxFQUVoRCxHQUFhLEdBQU0sR0FBTSxHQUFRLFNBQVUsS0FB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R0FBSyxHQUFTLElBQUssUUFBUSxFQUM5QyxHQUFhLEdBQU0sR0FBSyxHQUFTLElBQUssUUFBUSxFQUM5QyxHQUFhLEdBQU0sR0FBSyxHQUFTLElBQUssUUFBUSxFQUM5QyxHQUFhLEdBQU0sR0FBSyxHQUFTLElBQUssUUFBUSxFQUM5QyxHQUFhLEdBQU0sR0FBSyxHQUFTLElBQUssUUFBUSxFQUM5QyxHQUFhLEdBQU0sR0FBSyxHQUFTLElBQUssUUFBUSxFQUM5QyxHQUFhLEdBQU0sR0FBSyxHQUFTLElBQUssUUFBUSxFQUM5QyxHQUFhLEdBQU0sR0FBTSxHQUFTLElBQUssUUFBUSxFQUUvQyxHQUFhLEdBQU0sR0FBTSxHQUFTLElBQUssUUFBUSxFQVEvQyxJQUFTLEdBQU0sRUFBRyxHQUFNLElBQVEsT0FBUSxLQTJDdEMsR0ExQ0ksR0FBTyxJQUFRLE9BQU8sRUFBRyxFQUs3QixHQUFXLE9BQU8sYUFBYSxNQUFRLE1BQVMsRUFBRyxFQUVuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFXLE9BQU8sYUFBYSxNQUFRLE1BQVMsRUFBRyxFQUVuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFXLE9BQU8sYUFBYSxNQUFRLE1BQVMsRUFBRyxFQUVuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFXLE9BQU8sYUFBYSxNQUFRLE1BQVMsRUFBRyxFQUVuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFXLE9BQU8sYUFBYSxNQUFRLE1BQVMsRUFBRyxFQUVuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFXLE9BQU8sYUFBYSxNQUFRLE1BQVMsRUFBRyxFQUVuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFXLE9BQU8sYUFBYSxNQUFRLE1BQVMsRUFBRyxFQUVuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFXLE9BQU8sYUFBYSxNQUFRLE1BQVMsRUFBRyxFQUVuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFXLE9BQU8sYUFBYSxNQUFRLE1BQVMsRUFBRyxFQUVuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUNoRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFBUSxFQUU1QyxHQUFNLEdBR1IsR0FBVyxPQUFPLGFBQWEsTUFBUSxNQUFTLEVBQUcsRUFFbkQsR0FBYSxHQUFNLEdBQU0sR0FBUyxHQUFNLEVBQVEsRUFDaEQsR0FBYSxHQUFNLEdBQU0sR0FBUyxHQUFNLEVBQVEsRUFDaEQsR0FBVyxPQUFPLGFBQWEsTUFBUSxNQUFTLEVBQUcsRUFFbkQsR0FBYSxHQUFNLEdBQU0sR0FBUyxHQUFNLEVBQVEsRUFDaEQsR0FBYSxHQUFNLEdBQU0sR0FBUyxHQUFNLEVBQVEsRUFNcEQsR0FBVyxPQUFPLGFBQWEsTUFBUSxLQUFNLEVBRTdDLEdBQWEsR0FBTSxHQUFNLEdBQVMsSUFBSyxFQUFRLEVBQy9DLEdBQWEsR0FBTSxHQUFNLEdBQVMsSUFBSyxFQUFRLEVBRS9DLElBQVMsR0FBTSxFQUFHLEdBQU0sR0FBSSxLQUN0QixHQUFPLEdBQUksU0FBUyxFQUV4QixHQUFXLE9BQU8sYUFBYSxNQUFRLE1BQVMsRUFBRyxFQUVuRCxHQUFhLEdBQU0sR0FBTSxHQUFTLEdBQU0sRUFB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VixTQUFVLElBQ1YsU0FBVSxJQUNWLFNBQVUsSUFDVixTQUFVLElBQ1YsU0FBVSxJQUNWLFNBQVUsSUFDVixTQUFVLElBQ1YsU0FBVSxJQUNWLFNBQVUsSUFDVixTQUFVLElBQ1YsU0FBVSxJQUNWLFNBQVUsSUFDVixTQUFVLElBQ1YsU0FBVSxJQUNWLFNBQVUsSUFDVixTQUFVLElBQ1YsU0FBVSxJQUNWLFNBQVUsSUFDVixTQUFVLElBQ1YsU0FBVSxJQUNWLFNBQVUsSUFDVixTQUFVLElBQ1YsU0FBVSxJQUNWLFNBQVUsSUFDVixTQUFVLFNBQ1YsU0FBVSxTQUNWLFNBQVUsU0FDVixTQUFVLFNBQ1YsU0FBVSxTQUNWLFNBQVUsUUFDWixDQUFDLEVBSUcsSUFBaUIsQ0FDbkIsU0FBSSxDQUNGLEtBQVEsTUFDUixLQUFRLFNBQ1YsRUFDQSxTQUFJLENBQ0YsS0FBUSxNQUNSLEtBQVEsU0FDVixFQUNBLFNBQUksQ0FDRixLQUFRLE9BQ1IsS0FBUSxRQUNWLEVBQ0EsU0FBSSxDQUNGLEtBQVEsTUFDUixLQUFRLFNBQ1YsRUFDQSxTQUFJLENBQ0YsS0FBUSxNQUNSLEtBQVEsT0FDVixFQUNBLFNBQUksQ0FDRixLQUFRLE1BQ1IsS0FBUSxTQUNWLEVBQ0EsU0FBSSxDQUNGLEtBQVEsTUFDUixLQUFRLFNBQ1YsRUFDQSxTQUFJLENBQ0YsS0FBUSxNQUNSLEtBQVEsT0FDVixFQUNBLFNBQUksQ0FDRixLQUFRLE1BQ1IsS0FBUSxPQUNWLEVBQ0EsU0FBSSxDQUNGLEtBQVEsTUFDUixLQUFRLFlBQ1YsRUFDQSxTQUFJLENBQ0YsS0FBUSxLQUNWLEVBQ0EsU0FBSSxDQUNGLEtBQVEsS0FDVixDQUNGLEVBQ0ksSUFBaUIsQ0FDbkIsT0FBSSxVQUNKLE9BQUksVUFDSixPQUFJLFVBQ0osU0FBSSxnQkFDSixPQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxnQkFDSixTQUFJLFVBQ0osT0FBSSxVQUNKLFNBQUksZ0JBQ0osU0FBSSxnQkFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLE9BQUksVUFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxnQkFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixPQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osT0FBSSxVQUNKLE9BQUksVUFDSixPQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxVQUNKLFNBQUksZ0JBQ0osU0FBSSxVQUNKLE9BQUksVUFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxnQkFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixPQUFJLFVBQ0osT0FBSSxVQUNKLE9BQUksVUFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixPQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osT0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLE9BQUksVUFDSixPQUFJLFVBQ0osT0FBSSxVQUNKLFNBQUksZ0JBQ0osT0FBSSxVQUNKLFNBQUksZ0JBQ0osU0FBSSxnQkFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixPQUFJLFVBQ0osU0FBSSxnQkFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxVQUNKLFNBQUksZ0JBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixPQUFJLFVBQ0osT0FBSSxVQUNKLE9BQUksVUFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxnQkFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osT0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osT0FBSSxVQUNKLFNBQUksVUFDSixPQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osT0FBSSxVQUNKLE9BQUksVUFDSixPQUFJLFVBQ0osU0FBSSxnQkFDSixPQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxnQkFDSixTQUFJLFVBQ0osT0FBSSxVQUNKLFNBQUksZ0JBQ0osU0FBSSxnQkFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLE9BQUksVUFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxnQkFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixPQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osT0FBSSxVQUNKLE9BQUksVUFDSixPQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxVQUNKLFNBQUksZ0JBQ0osU0FBSSxVQUNKLE9BQUksVUFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxnQkFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixPQUFJLFVBQ0osT0FBSSxVQUNKLE9BQUksVUFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixPQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osT0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLE9BQUksVUFDSixPQUFJLFVBQ0osT0FBSSxVQUNKLFNBQUksZ0JBQ0osT0FBSSxVQUNKLFNBQUksZ0JBQ0osU0FBSSxnQkFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixPQUFJLFVBQ0osU0FBSSxnQkFDSixTQUFJLGdCQUNKLFNBQUksZ0JBQ0osU0FBSSxVQUNKLFNBQUksZ0JBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLGdCQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLFNBQUksVUFDSixTQUFJLFVBQ0osU0FBSSxVQUNKLE9BQUksVUFDSixPQUFJLFVBQ0osT0FBSSxVQUNKLFNBQUks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QUFHLEdBQUksR0FBRyxDQUM1QixJQUFLLEdBQUssSUFBTSxDQUFDLEVBQUcsR0FBSSxHQUFFLE9BQVEsS0FBSyxHQUFHLEdBQUUsS0FBTSxJQUVsRCxPQUFPLElBQ04sRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFNLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLEdBQU0sQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBTSxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFN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QUFTLEdBQUksUUFBUyxHQUFJLFFBQVMsR0FBSSxZQUFhLEdBQUksa0JBQW1CLEdBQUksbUJBQW9CLEdBQUksdUJBQXdCLEdBQUksTUFBTyxHQUFJLFVBQVcsR0FBSSxZQUFhLEdBQUksWUFBYSxHQUFJLGlCQUFrQixFQUN0ckMsYUFBYyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsQ0FBQyxFQUNyckIsdUJBQXdCLEVBQVMsQ0FBQyxHQUFRLEdBQVEsR0FBVSxHQUFJLEdBQVMsR0FBSSxHQUFJLENBQy9FLElBQUksR0FBSyxHQUFHLE9BQVMsRUFDckIsT0FBUSxRQUNELEdBQ0gsR0FBRyxhQUFhLElBQUksRUFDcEIsVUFDRyxHQUNI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SSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQUksR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxJQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFB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QU0sRUFBRyxpQkFBb0IsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLGdCQUFtQixDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsTUFBUyxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsTUFBUyxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsTUFBUyxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsTUFBUyxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsTUFBUyxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsT0FBVSxDQUFFLE1BQVMsQ0FBQyxFQUFHLFVBQWEsRUFBTSxFQUFHLElBQU8sQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLE9BQVUsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLE9BQVUsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLEtBQVEsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLE1BQVMsQ0FBRSxNQUFTLENBQUMsRUFBRyxVQUFhLEVBQU0sRUFBRyxVQUFhLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxvQkFBdUIsQ0FBRSxNQUFTLENBQUMsRUFBRyxVQUFhLEVBQU0sRUFBRyxpQkFBb0IsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLGNBQWlCLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxnQkFBbUIsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLGFBQWdCLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxVQUFhLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxtQkFBc0IsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLG9CQUF1QixDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsaUJBQW9CLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxjQUFpQixDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsZ0JBQW1CLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxhQUFnQixDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsVUFBYSxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsTUFBUyxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsZ0JBQW1CLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxvQkFBdUIsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLFNBQVksQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLGlCQUFvQixDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsY0FBaUIsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLFdBQWMsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLGFBQWdCLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxVQUFhLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxPQUFVLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxXQUFjLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxPQUFVLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxRQUFXLENBQUUsTUFBUyxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFLLENBQUUsQ0FDM3lHLEVBQ0Es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SUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssR0FBRyxFQUFHLEVBQU0sQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssR0FBRyxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLEdBQUcsRUFBRyxHQUFNLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU0sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFNLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU0sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFNLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU0sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFNLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFPLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFPLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFPLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFPLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFPLENBQUMsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEVBQUcsRUFBRSxFQUFHLEdBQU8sQ0FBQyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFPLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFPLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxHQUFJLElBQUssR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsR0FBTyxDQUFDLEdBQUksR0FBRyxFQUFHLEdBQU8sQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFPLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFPLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFPLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU8sQ0FBQyxFQUFHLEVBQUcsR0FBSSxHQUFHLEVBQUcsR0FBTyxDQUFDLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxHQUFHLEVBQ3A5RSxHQUFVLENBQ1osZUFBZ0IsRUFBSyxFQUFHLEdBRXhCLEdBQUksQ0FBQyxFQUNMLFNBQVUsQ0FBRSxNQUFTLEVBQUcsTUFBUyxFQUFHLFlBQWUsRUFBRyxTQUFZLEVBQUcsS0FBUSxFQUFHLFVBQWEsRUFBRyxLQUFRLEVBQUcsUUFBVyxFQUFHLE1BQVMsR0FBSSxJQUFPLEdBQUksTUFBUyxH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QWdCLEdBQUksZUFBZ0IsR0FBSSxPQUFRLEdBQUksY0FBZSxHQUFJLFlBQWEsR0FBSSxlQUFnQixHQUFJLFVBQVcsSUFBSyxjQUFlLElBQUssTUFBTyxJQUFLLFFBQVMsSUFBSyxjQUFlLElBQUssT0FBUSxJQUFLLE9BQVEsSUFBSyxNQUFPLElBQUssUUFBUyxJQUFLLE9BQVEsSUFBSyxlQUFnQixJQUFLLE9BQVEsSUFBSyxXQUFZLElBQUssWUFBYSxJQUFLLGVBQWdCLElBQUssZUFBZ0IsSUFBSyxlQUFnQixJQUFLLGNBQWUsRUFDeDFDLGFBQWMsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsSUFBSyxDQUFDLEVBQUcsQ0FBQyxJQUFLLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxJQUFLLENBQUMsRUFBRyxDQUFDLElBQUssQ0FBQyxFQUFHLENBQUMsSUFBSyxDQUFDLEVBQUcsQ0FBQyxJQUFLLENBQUMsRUFBRyxDQUFDLElBQUssQ0FBQyxFQUFHLENBQUMsSUFBSyxDQUFDLEVBQUcsQ0FBQyxJQUFLLENBQUMsRUFBRyxDQUFDLElBQUssQ0FBQyxFQUFHLENBQUMsSUFBSyxDQUFDLEVBQUcsQ0FBQyxJQUFLLENBQUMsRUFBRyxDQUFDLElBQUssQ0FBQyxFQUFHLENBQUMsSUFBSyxDQUFDLEVBQUcsQ0FBQyxJQUFLLENBQUMsRUFBRyxDQUFDLElBQUssQ0FBQyxFQUFHLENBQUMsSUFBSyxDQUFDLEVBQUcsQ0FBQyxJQUFLLENBQUMsRUFBRyxDQUFDLElBQUssQ0FBQyxFQUFHLENBQUMsSUFBSyxDQUFDLEVBQUcsQ0FBQyxJQUFLLENBQUMsRUFBRyxDQUFDLElBQUssQ0FBQyxFQUFHLENBQUMsSUFBSyxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsSUFBSyxDQUFDLEVBQUcsQ0FBQyxJQUFLLENBQUMsRUFBRyxDQUFDLElBQUssQ0FBQyxFQUFHLENBQUMsSUFBSyxDQUFDLEVBQUcsQ0FBQyxJQUFLLENBQUMsRUFB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S0FBSyxFQUFJLEdBQUcsR0FBSyxHQUNqQixHQUFHLFVBQVUsR0FBRyxHQUFLLEdBQUksR0FBRyxHQUFLLEdBQUksUUFBUSxFQUM3QyxVQUNHLElBQ0gsS0FBSyxFQUFJLEdBQUcsR0FBSyxHQUNqQixHQUFHLFVBQVUsR0FBRyxHQUFLLEdBQUksR0FBRyxHQUFLLEdBQUksY0FBYyxFQUNuRCxVQUNHLElBQ0gsS0FBSyxFQUFJLEdBQUcsR0FBSyxHQUNqQixHQUFHLFVBQVUsR0FBRyxHQUFLLEdBQUksR0FBRyxHQUFLLEdBQUksUUFBUSxFQUM3QyxVQUNHLElBQ0gsS0FBSyxFQUFJLEdBQUcsR0FBSyxHQUNqQixHQUFHLFVBQVUsR0FBRyxHQUFLLEdBQUksR0FBRyxHQUFLLEdBQUksU0FBUyxFQUM5QyxVQUNHLElBQ0gsS0FBSyxFQUFJLEdBQUcsR0FBSyxHQUNqQixHQUFHLFVBQVUsR0FBRyxHQUFLLEdBQUksR0FBRyxHQUFLLEdBQUksU0FBUyxFQUM5QyxVQUNHLElBQ0gsS0FBSyxFQUFJLEdBQUcsR0FBSyxHQUNqQixHQUFHLFVBQVUsR0FBRyxHQUFLLEdBQUksR0FBRyxHQUFLLEdBQUksWUFBWSxFQUNqRCxVQUNHLElBQ0gsS0FBSyxFQUFJLEdBQUcsR0FBSyxHQUNqQixHQUFHLFVBQVUsR0FBRyxHQUFLLEdBQUksR0FBRyxHQUFLLEdBQUksT0FBYSxPQUFRLE9BQVEsT0FBRyxPQUFPLFlBQVksQ0FBQyxDQUFDLEdBQUcsR0FBSyxHQUFJLEdBQUcsR0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ25ILFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLEdBQUcsVUFBVSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssR0FBSSxVQUFVLEVBQy9DLFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLEdBQUcsVUFBVSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssR0FBSSxPQUFPLEVBQzVDLFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLEdBQUcsVUFBVSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssR0FBSSxTQUFTLEVBQzlDLFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLEdBQUcsVUFBVSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssR0FBSSxTQUFTLEVBQzlDLFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLEdBQUcsVUFBVSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssR0FBSSxLQUFLLEVBQzFDLFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLEdBQUcsVUFBVSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssR0FBSSxXQUFXLEVBQ2hELFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLEdBQUcsVUFBVSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssR0FBSSxlQUFlLEVBQ3BELFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLEdBQUcsVUFBVSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssR0FBSSxZQUFZLEVBQ2pELFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLEdBQUcsVUFBVSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssR0FBSSxXQUFXLEVBQ2hELFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxJQUNaLEdBQUcsVUFBVSxHQUFHLEdBQUcsRUFDbkIsVUFDRyxJQUNILEdBQUcsR0FBSyxHQUFHLEtBQU8sR0FBRyxJQUNyQixLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLFVBQ0csUUFDQSxJQUNILEdBQUcsR0FBSyxHQUFHLEtBQU8sR0FBRyxHQUFLLEdBQzFCLEtBQUssRUFBSSxHQUFHLEdBQUssR0FDakIsVUFDRyxJQUNILEtBQUssRUFBSSxHQUFHLElBQ1osVUFDRyxJQUNILElBQUksR0FBTSxHQUFHLGFBQWEsR0FBRyxJQUFLLEdBQUcsR0FBSyxFQUFFLEVBQzVDLEtBQUssRUFBSSxDQUFFLEtBQVEsR0FBSSxLQUFNLE9BQVUsR0FBSSxPQUFRLE9BQVUsR0FBSSxPQUFRLEtBQVEsR0FBRyxHQUFLLEVBQUcsRUFDNUYsVUFDRyxJQUNILEtBQUssRUFBSSxDQUFFLEtBQU0sR0FBRyxJQUFLLEtBQU0sTUFBTyxFQUN0QyxVQUNHLElBQ0gsS0FBSyxFQUFJLENBQUUsS0FBTSxHQUFHLEdBQUssR0FBRyxLQUFPLEdBQUssR0FBRyxJQUFLLEtBQU0sR0FBRyxHQUFLLEdBQUcsSUFBSyxFQUN0RSxVQUNHLElBQ0gsS0FBSyxFQUFJLENBQUUsS0FBTSxHQUFHLElBQUssS0FBTSxRQUFTLEVBQ3hDLFVBQ0csSUFDSCxLQUFLLEVBQUksQ0FBRSxLQUFNLEdBQUcsSUFBSyxLQUFNLFVBQVcsRUFDMUMsVUFDRyxJQUNILElBQUksR0FBTSxHQUFHLGFBQWEsR0FBRyxHQUFHLEVBQ2hDLEtBQUssRUFBSSxDQUFFLEtBQVEsR0FBSSxLQUFNLE9BQVUsR0FBSSxPQUFRLE9BQVUsR0FBSSxNQUFPLEVBQ3hFLFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLFVBQ0csSUFDSCxLQUFLLEVBQUksQ0FBRSxLQUFNLEdBQUcsSUFBSyxLQUFNLE1BQU8sRUFDdEMsVUFDRyxJQUNILEtBQUssRUFBSSxDQUFFLEtBQU0sR0FBRyxHQUFLLEdBQUcsS0FBTyxHQUFLLEdBQUcsSUFBSyxLQUFNLEdBQUcsR0FBSyxHQUFHLElBQUssRUFDdEUsVUFDRyxJQUNILEtBQUssRUFBSSxDQUFFLEtBQU0sR0FBRyxJQUFLLEtBQU0sUUFBUyxFQUN4QyxVQUNHLFFBQ0EsSUFDSCxLQUFLLEVBQUksQ0FBRSxLQUFNLEdBQUcsSUFBSyxLQUFNLFVBQVcsRUFDMUMsVUFDRyxJQUNILEtBQUssRUFBSSxDQUFFLEtBQU0sR0FBRyxJQUFLLEtBQU0sTUFBTyxFQUN0QyxVQUNHLElBQ0gsS0FBSyxFQUFJLENBQUUsS0FBTSxHQUFHLEdBQUssR0FBRyxLQUFPLEdBQUssR0FBRyxJQUFLLEtBQU0sR0FBRyxHQUFLLEdBQUcsSUFBSyxFQUN0RSxVQUNHLElBQ0gsS0FBSyxFQUFJLENBQUUsS0FB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LEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxFQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUcsRUFBRSxFQUFLLEVBQUssQ0FBRSxFQUFHLENBQUUsQ0FBQyxFQUFHLENBQUUsRUFBRyxFQUFHLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxFQUFHLEVBQUcsRUFBRyxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLENBQUMsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUcsRUFBSyxFQUFHLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxHQUFJLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssRUFBSSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBRyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLENBQUUsRUFBRyxHQUFLLEVBQUcsR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxHQUFLLEVBQUcsR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFHLEVBQUcsQ0FBRSxFQUFHLEdBQUssRUFBRyxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUcsRUFBRyxDQUFFLEVBQUcsR0FBSyxFQUFHLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBRyxFQUFHLENBQUUsRUFBRyxHQUFLLEVBQUcsR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFHLEVBQUcsQ0FBRSxFQUFHLEdBQUssRUFBRyxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUcsRUFBRyxDQUFFLEVBQUcsR0FBSyxFQUFHLEdBQUssR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksR0FBSyxHQUFJLEVBQUcsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBSSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLEdBQUssR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLEdBQUksSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssRUFBRyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxJQUFLLElBQUssR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBSyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEVBQUssR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEVBQUssR0FBSSxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssQ0FBSSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLENBQUksQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEdBQUksSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLENBQUksRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLElBQUssR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxJQUFLLEdBQUssSUFBSyxFQUFJLEVBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLEdBQUcsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksSUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQU0sR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLElBQUssR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLEVBQUUsR0FBTSxFQUFLLENBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEVBQUssQ0FBQyxFQUFHLENBQUUsR0FBSSxFQUFLLEdBQUksSUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxHQUFJLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsSUFBSyxJQUFLLElBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxFQUFLLEdBQUksSUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxHQUFJLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxDQUFJLEVBQUcsQ0FBRSxHQUFJLEVBQUssR0FBSSxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEdBQUksSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLENBQUksRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLEVBQUcsQ0FBRSxJQUFLLElBQUssR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEVBQUksQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxDQUFFLEdBQUksRUFBSyxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssR0FBSSxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssQ0FBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLElBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLENBQUksQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksSUFBSyxJQUFLLEdBQUssSUFBSyxFQUFJLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLENBQUUsRUFBRyxHQUFLLEVBQUcsR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxJQUFLLEdBQUksR0FBSyxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFNLEdBQUksSUFBSyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxJQUFLLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxFQUFLLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBRyxFQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxHQUFJLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssRUFBSSxFQUFHLENBQUUsR0FBSSxFQUFLLEdBQUksR0FBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxJQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxJQUFLLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxJQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLElBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsSUFBSyxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLENBQUksQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEdBQU0sR0FBSSxJQUFLLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxFQUFLLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEdBQU0sR0FBSSxJQUFLLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxFQUFLLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEdBQU0sR0FBSSxJQUFLLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxFQUFLLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksR0FBTSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLENBQUUsR0FBSSxHQUFNLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxJQUFLLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxFQUFLLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEVBQUssQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEdBQU0sR0FBSSxJQUFLLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxFQUFLLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLEVBQUUsR0FBTSxFQUFLLENBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssR0FBSSxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssQ0FBSSxFQUFHLENBQUUsR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxJQUFLLElBQUssR0FBTSxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLENBQUUsR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxJQUFLLElBQUssQ0FBQyxFQUFHLEdBQUcsRUFBRyxJQUFLLEdBQU0sSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLENBQUMsRUFBRyxHQUFHLEVBQUcsSUFBSyxHQUFNLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxFQUFLLEVBQUcsQ0FBRSxJQUFLLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEdBQUksRUFBSyxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssR0FBSSxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssQ0FBSSxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsSUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxDQUFFLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBRyxFQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxHQUFJLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssRUFBSSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLEVBQUcsQ0FBRSxJQUFLLEVBQUssQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLENBQUUsSUFBSyxJQUFLLEdBQUksR0FBTSxHQUFJLEdBQU0sR0FBSSxHQUFNLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLENBQUUsSUFBSyxFQUFLLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLENBQUUsSUFBSyxFQUFLLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxJQUFLLEVBQUssQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsSUFBSyxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLEVBQUssSUFBSyxFQUFLLElBQUssRUFBSyxJQUFLLENBQUksQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEVBQUcsR0FBSyxFQUFHLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxJQUFLLEdBQU0sSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksSUFBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxFQUFHLEVBQUcsQ0FBRSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxJQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEVBQUcsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxHQUFJLElBQUssSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEVBQUssRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBTSxFQUFLLENBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsRUFBRyxDQUFFLElBQUssSUFBSyxHQUFJLEdBQU0sR0FBSSxHQUFNLEdBQUksR0FBTSxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssR0FBTSxJQUFLLEdBQU0sSUFBSyxFQUFLLENBQUMsRUFBRyxFQUFFLEdBQU0sQ0FBQyxFQUFHLEdBQUcsRUFBRyxDQUFFLElBQUssSUFBSyxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssRUFBSSxDQUFDLEVBQUcsRUFBRSxHQUFNLENBQUMsRUFBRyxHQUFHLEVBQUcsQ0FBRSxJQUFLLElBQUssR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEdBQUssSUFBSyxHQUFLLElBQUssR0FBSyxJQUFLLEVBQUksQ0FBQyxFQUFHLEVBQUUsR0FBTSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxHQUFNLEdBQUksSUFBSyxJQUFLLEdBQU0sSUFBSyxHQUFNLElBQUssRUFBSyxFQUFHLENBQUUsRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFHLEVBQUssRUFBRyxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLElBQUssRUFBSyxJQUFL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QUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLE9BQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFNBQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssVUFBVSxVQUFVLEVBQ2xCLE9BQ0osSUFDSCxNQUFPLFNBQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssVUFBVSxlQUFlLEVBQ3ZCLE9BQ0osSUFDSCxNQUFPLFNBQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssVUFBVSxnQkFBZ0IsRUFDeEIsT0FDSixJQUNILE1BQU8sU0FDSixJQUNILE1BQU8sUUFDSixJQUVILE9BREEsS0FBSyxTQUFTLEVBQ1AsT0FDSixJQUNILE1BQU8sV0FDSixJQUVILE9BREEsS0FBSyxVQUFVLGFBQWEsRUFDckIsT0FDSixJQUVILE9BREEsS0FBSyxTQUFTLEVBQ1AsT0FDSixJQUVILE9BREEsS0FBSyxVQUFVLE1BQU0sRUFDZCxPQUNKLElBRUgsT0FEQSxLQUFLLFNBQVMsRUFDUCxPQUNKLElBRUgsT0FEQSxLQUFLLFVBQVUsTUFBTSxFQUNkLE9BQ0osSUFDSCxNQUFPLFFBQ0osSUFFSCxPQURBLEtBQUssVUFBVSxNQUFNLEVBQ2QsT0FDSixJQUVILE9BREEsS0FBSyxTQUFTLEVBQ1AsT0FDSixJQUVILE9BREEsS0FBSyxVQUFVLE1BQU0sRUFDZCxPQUNKLElBRUgsT0FEQSxLQUFLLFNBQVMsRUFDUCxPQUNKLElBRUgsT0FEQSxLQUFLLFVBQVUsTUFBTSxFQUNkLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osSUFDSCxNQUFPLFNBQ0osSUFFSCxPQURBLEtBQUssVUFBVSxVQUFVLEVBQ2xCLE9BQ0osSUFFSCxPQURBLEtBQUssVUFBVSxVQUFVLEVBQ2xCLE9BQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFVBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFNBQ0osSUFDSCxNQUFPLFNBQ0osS0FFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osS0FFSCxPQURBLEtBQUssVUFBVSxNQUFNLEVBQ2QsT0FDSixLQUVILE9BREEsS0FBSyxTQUFTLEVBQ1AsT0FDSixLQUVILE9BREEsS0FBSyxVQUFVLE1BQU0sRUFDZCxPQUNKLEtBRUgsT0FEQSxLQUFLLFNBQVMsRUFDUCxPQUNKLEtBRUgsT0FEQSxLQUFLLFVBQVUsTUFBTSxFQUNkLE9BQ0osS0FFSCxPQURBLEtBQUssU0FBUyxFQUNQLE9BQ0osS0FFSCxPQURBLEtBQUssVUFBVSxNQUFNLEVBQ2QsT0FDSixLQUNILE1BQU8sV0FDSixLQUNILE1BQU8sWUFDSixLQUNILE1BQU8sT0FDSixLQUNILE1BQU8sUUFDSixLQUNILE1BQU8sTUFHYixNQUFPLENBQUMsdUJBQXdCLHVCQUF3Qix1QkFBd0IsdUJBQXdCLHdCQUF5QixZQUFhLGNBQWUsaUJBQWtCLGlCQUFrQixVQUFXLGFBQWMsVUFBVyxhQUFjLGNBQWUsY0FBZSxjQUFlLGFBQWMsV0FBWSxXQUFZLGVBQWdCLGlCQUFrQixtQkFBb0IscUJBQXNCLGtCQUFtQixlQUFnQixnQkFBaUIsa0JBQW1CLGNBQWUsZ0JBQWlCLHVCQUF3QixlQUFnQixtQkFBb0Isa0JBQW1CLGdCQUFpQixlQUFnQixnQkFBaUIsaUJBQWtCLGNBQWUscUJBQXNCLGVBQWdCLGVBQWdCLGVBQWdCLGVBQWdCLGVBQWdCLGVBQWdCLFlBQWEsWUFBYSxhQUFjLGNBQWUsOEJBQStCLDhCQUErQiw4QkFBK0IsOEJBQStCLGNBQWUsU0FBVSxXQUFZLFNBQVUsU0FBVSxTQUFVLFNBQVUsVUFBVyw2QkFBOEIsc0JBQXVCLG9CQUFxQiw2QkFBOEIsc0JBQXVCLGtCQUFtQixnQ0FBaUMsdUJBQXdCLG9CQUFxQixxQkFBc0Isa0JBQW1CLDRCQUE2QixXQUFZLFlBQWEsWUFBYSxZQUFhLFlBQWEsWUFBYSxTQUFVLFlBQWEsWUFBYSxjQUFlLGNBQWUsc0JBQXVCLGtCQUFtQiw4Q0FBK0MsWUFBYSxZQUFhLFNBQVUsU0FBVSxVQUFXLFlBQWEsV0FBWSxVQUFXLFNBQVUsU0FBVSw2REFBOEQsU0FBVSxxeElBQXN4SSxVQUFXLFVBQVcsVUFBVyxVQUFXLFVBQVcsVUFBVyxZQUFhLFVBQVcsNEJBQTZCLFNBQVUsZ0JBQWlCLFVBQVcsUUFBUSxFQUM5cE0sV0FBWSxDQUFFLGFBQWdCLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLEdBQUcsRUFBRyxVQUFhLEVBQU0sRUFBRyxhQUFnQixDQUFFLE1BQVMsQ0FBQyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLEdBQUcsRUFBRyxVQUFhLEVBQU0sRUFBRyxLQUFRLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSyxJQUFLLElBQUssR0FBRyxFQUFHLFVBQWEsRUFBTSxFQUFHLE1BQVMsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSyxJQUFLLElBQUssR0FBRyxFQUFHLFVBQWEsRUFBTSxFQUFHLGVBQWtCLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLEdBQUcsRUFBRyxVQUFhLEVBQU0sRUFBRyxjQUFpQixDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsVUFBYSxFQUFNLEVBQUcsU0FBWSxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsVUFBYSxFQUFNLEVBQUcsU0FBWSxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLEdBQUcsRUFBRyxVQUFhLEVBQU0sRUFBRyxZQUFlLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLEdBQUcsRUFBRyxVQUFhLEVBQU0sRUFBRyxLQUFRLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssR0FBRyxFQUFHLFVBQWEsRUFBTSxFQUFHLE9BQVUsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsVUFBYSxFQUFNLEVBQUcsSUFBTyxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsVUFBYSxFQUFNLEVBQUcsb0JBQXVCLENBQUUsTUFBUyxDQUFDLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUssSUFBSyxJQUFLLEdBQUcsRUFBRyxVQUFhLEVBQU0sRUFBRyxVQUFhLENBQUUsTUFBUyxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsVUFBYSxFQUFNLEVBQUcsVUFBYSxDQUFFLE1BQVMsQ0FBQyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSyxJQUFLLElBQUssR0FBRyxFQUFHLFVBQWEsRUFBTSxFQUFHLFVBQWEsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSyxJQUFLLElBQUssR0FBRyxFQUFHLFVBQWEsRUFBTSxFQUFHLE9BQVUsQ0FBRSxNQUFTLENBQUMsR0FBSSxH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LFlBQWEsR0FBSSxrQkFBbUIsR0FBSSxjQUFlLEdBQUksTUFBTyxFQUMvaEIsYUFBYyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcs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WUFBWSxZQUN4QixVQUNHLElBQ0gsS0FBSyxFQUFJLEVBQUcsWUFBWSxhQUN4QixVQUNHLElBQ0gsS0FBSyxFQUFJLEVBQUcsWUFBWSxZQUN4QixVQUNHLElBQ0gsS0FBSyxFQUFJLEVBQUcsWUFBWSxTQUN4QixVQUNHLElBQ0gsS0FBSyxFQUFJLEVBQUcsWUFBWSxVQUN4QixVQUNHLElBQ0gsS0FBSyxFQUFJLEVBQUcsZUFBZSxnQkFDM0IsVUFDRyxJQUNILEtBQUssRUFBSSxFQUFHLGVBQWUsWUFDM0IsUUFHTixNQUFPLENBQUMsQ0FBRSxFQUFHLEVBQUcsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUUsQ0FBQyxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLENBQUMsRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxDQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUcsR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxDQUFJLENBQUMsRUFBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxDQUFDLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENB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QUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUNybkMsdUJBQXdCLENBQVMsQ0FBQyxFQUFRLEVBQVEsRUFBVSxFQUFJLEVBQVMsRUFBSSxFQUFJLENBQy9FLElBQUksRUFBSyxFQUFHLE9BQVMsRUFDckIsT0FBUSxPQUNELEdBQ0gsT0FBTyxFQUFHLE9BQ1AsR0FDSCxPQUFPLEVBQUcsRUFBSyxPQUNaLEdBRUgsT0FEQSxFQUFHLGFBQWEsRUFBRyxFQUFLLEVBQUUsRUFDbkIsRUFBRyxFQUFLLE9BQ1osR0FDSCxFQUFHLFdBQVcsRUFBRyxFQUFLLEVBQUUsRUFDeEIsS0FBSyxFQUFJLEVBQUcsR0FDWixVQUNHLEdBQ0gsRUFBRyxFQUFLLElBQU0sRUFBRyxHQUNqQixLQUFLLEVBQUksRUFBRyxFQUFLLEdBQ2pCLFVBQ0csR0FDSCxLQUFLLEVBQUksQ0FBQyxFQUNWLFVBQ0csSUFDSCxFQUFHLEVBQUssR0FBRyxLQUFLLEVBQUcsRUFBRyxFQUN0QixLQUFLLEVBQUksRUFBRyxFQUFLLEdBQ2pCLFVBQ0csSUFDSCxLQUFLLEVBQUksRUFBRyxFQUFLLEdBQ2pCLFVBQ0csSUFDSCxLQUFLLEVBQUksRUFBRyxHQUFJLEtBQUssRUFDckIsRUFBRyxZQUFZLEtBQUssQ0FBQyxFQUNyQixVQUNHLFFBQ0EsSUFDSCxLQUFLLEVBQUksRUFBRyxHQUFJLEtBQUssRUFDckIsRUFBRyxrQkFBa0IsS0FBSyxDQUFDLEVBQzNCLFVBQ0csSUFDSCxFQUFHLFdBQVcsRUFBRyxHQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQzlCLEtBQUssRUFBSSxFQUFHLEdBQUksT0FBTyxDQUFDLEVBQ3hCLFVBQ0csSUFDSCxFQUFHLFNBQVMsRUFBRyxFQUFHLEVBQ2xCLFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFHLEVBQ2hCLFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQzVCLFVBQ0csSUFDSCxFQUFHLFdBQVcsRUFBRyxHQUFLLEdBQVMsTUFBQyxFQUNoQyxVQUNHLElBQ0gsRUFBRyxXQUFXLEVBQUcsRUFBSyxHQUFJLEdBQVMsT0FBRyxFQUFHLEVBQUcsRUFDNUMsVUFDRyxJQUNILEVBQUcsV0FBVyxFQUFHLEVBQUssR0FBSSxHQUFJLEVBQUcsRUFBRyxFQUNwQyxVQUNHLElBQ0gsRUFBRyxXQUFXLEVBQUcsRUFBSyxHQUFJLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxFQUFFLEVBQ2hELFVBQ0csSUFDSCxFQUFHLFdBQVcsRUFBRyxFQUFLLEdBQUksR0FBSSxFQUFHLEVBQUssR0FBSSxFQUFHLEVBQUcsRUFDaEQsVUFDRyxJQUNILEVBQUcsV0FBVyxFQUFHLEdBQUssR0FBSSxFQUFHLEVBQUssRUFBRSxFQUNwQyxVQUNHLElBQ0gsRUFBRyxXQUFXLEVBQUcsR0FBSyxHQUFJLEVBQUUsRUFDNUIsVUFDRyxJQUNILEVBQUcsV0FBVyxFQUFHLEVBQUssR0FBSSxHQUFJLEVBQUUsRUFDaEMsVUFDRyxJQUNILEVBQUcsV0FBVyxFQUFHLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBRyxFQUFLLEVBQUUsRUFDNUMsVUFDRyxJQUNILEVBQUcsV0FBVyxFQUFHLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBRyxFQUFHLEVBQ3hDLFVBQ0csSUFDSCxFQUFHLFdBQVcsRUFBRyxFQUFLLEdBQUksR0FBSSxFQUFHLEVBQUssR0FBSSxFQUFHLEVBQUcsRUFDaEQsVUFDRyxJQUNILEVBQUcsV0FBVyxFQUFHLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBRyxFQUFHLEVBQ3hDLFVBQ0csSUFDSCxFQUFHLE1BQU0sRUFBRyxHQUFLLEdBQUksR0FBSSxFQUFFLEVBQzNCLFVBQ0csSUFDSCxFQUFHLE1BQU0sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEdBQUksRUFBRSxFQUNuQyxVQUNHLElBQ0gsRUFBRyxNQUFNLEVBQUcsRUFBSyxHQUFJLEdBQUksRUFBRyxHQUFLLEVBQUUsRUFDbkMsVUFDRyxJQUNILEVBQUcsTUFBTSxFQUFHLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBRyxFQUFHLEVBQ25DLFVBQ0csSUFDSCxFQUFHLE1BQU0sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEdBQUksRUFBRyxFQUFLLEVBQUUsRUFDM0MsVUFDRyxJQUNILEVBQUcsTUFBTSxFQUFHLEVBQUssR0FBSSxHQUFJLEVBQUcsR0FBSyxFQUFHLEVBQUssRUFBRSxFQUMzQyxVQUNHLElBQ0gsRUFBRyxNQUFNLEVBQUcsRUFBSyxHQUFJLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQzNDLFVBQ0csSUFDSCxFQUFHLE1BQU0sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUUsRUFDM0MsVUFDRyxJQUNILEVBQUcsTUFBTSxFQUFHLEVBQUssR0FBSSxFQUFHLEVBQUssR0FBSSxHQUFJLEVBQUcsRUFBRyxFQUMzQyxVQUNHLElBQ0gsRUFBRyxNQUFNLEVBQUcsRUFBSyxHQUFJLEVBQUcsR0FBSyxFQUFHLEVBQUssR0FBSSxFQUFFLEVBQzNDLFVBQ0csSUFDSCxFQUFHLE1BQU0sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQ25ELFVBQ0csSUFDSCxFQUFHLE1BQU0sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ25ELFVBQ0csSUFDSCxFQUFHLE1BQU0sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxFQUFFLEVBQ25ELFVBQ0csSUFDSCxFQUFHLE1BQU0sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQ25ELFVBQ0csSUFDSCxFQUFHLE1BQU0sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ25ELFVBQ0csSUFDSCxFQUFHLE1BQU0sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxFQUFFLEVBQ25ELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFHLEVBQ2hCLFVBQ0csSUFDSCxFQUFHLE9BQU8sR0FBSSxHQUFJLEVBQUcsV0FBVyxPQUFRLEVBQUcsRUFBRyxFQUM5QyxVQUNHLElBQ0gsRUFBRyxPQUFPLEdBQUksR0FBSSxFQUFHLEdBQUssRUFBRSxFQUM1QixVQUNHLElBQ0gsRUFBRyxPQUFPLEdBQUksR0FBSSxFQUFHLEdBQUssRUFBRyxFQUFLLEVBQUUsRUFDcEMsVUFDRyxJQUNILEVBQUcsT0FBTyxHQUFJLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQ3BDLFVBQ0csSUFDSCxFQUFHLE9BQU8sR0FBSSxFQUFHLEdBQUssRUFBRyxXQUFXLE9BQVEsRUFBRSxFQUM5QyxVQUNHLElBQ0gsRUFBRyxPQUFPLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxXQUFXLE9BQVEsRUFBRyxFQUFHLEVBQ3RELFVBQ0csSUFDSCxFQUFHLE9BQU8sR0FBSSxFQUFHLEdBQUssRUFBRyxXQUFXLE9BQVEsRUFBRyxFQUFLLEVBQUUsRUFDdEQsVUFDRyxJQUNILEVBQUcsT0FBTyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsR0FBSyxFQUFFLEVBQ3BDLFVBQ0csSUFDSCxFQUFHLE9BQU8sR0FBSSxFQUFHLEdBQUssRUFBRyxFQUFLLEdBQUksRUFBRSxFQUNwQyxVQUNHLElBQ0gsRUFBRyxPQUFPLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQzVDLFVBQ0csSUFDSCxFQUFHLE9BQU8sR0FBSSxFQUFHLEVBQUssR0FBSSxFQUFHLEdBQUssRUFBRyxFQUFLLEVBQUUsRUFDNUMsVUFDRyxJQUNILEVBQUcsT0FBTyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBRyxFQUM1QyxVQUNHLElBQ0gsRUFBRyxPQUFPLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQzVDLFVBQ0csSUFDSCxFQUFHLE9BQU8sR0FBSSxFQUFHLEdBQUssRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEVBQUUsRUFDNUMsVUFDRyxJQUNILEVBQUcsT0FBTyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsR0FBSyxFQUFHLEVBQUssRUFBRSxFQUM1QyxVQUNHLElBQ0gsRUFBRyxPQUFPLEVBQUcsR0FBSyxHQUFJLEVBQUcsV0FBVyxPQUFRLEVBQUUsRUFDOUMsVUFDRyxJQUNILEVBQUcsT0FBTyxFQUFHLEdBQUssR0FBSSxFQUFHLFdBQVcsT0FBUSxFQUFHLEVBQUssRUFBRSxFQUN0RCxVQUNHLElBQ0gsRUFBRyxPQUFPLEVBQUcsRUFBSyxHQUFJLEdBQUksRUFBRyxXQUFXLE9BQVEsRUFBRyxFQUFHLEVBQ3RELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksR0FBSSxFQUFHLEdBQUssRUFBRSxFQUNwQyxVQUNHLElBQ0gsRUFBRyxPQUFPLEVBQUcsR0FBSyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUUsRUFDcEMsVUFDRyxJQUNILEVBQUcsT0FBTyxFQUFHLEdBQUssRUFBRyxFQUFLLEdBQUksRUFBRyxXQUFXLE9BQVEsRUFBRSxFQUN0RCxVQUNHLElBQ0gsRUFBRyxPQUFPLEVBQUcsRUFBSyxHQUFJLEVBQUcsR0FBSyxFQUFHLFdBQVcsT0FBUSxFQUFFLEVBQ3RELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksR0FBSSxFQUFHLEVBQUssR0FBSSxFQUFHLEVBQUcsRUFDNUMsVUFDRyxJQUNILEVBQUcsT0FBTyxFQUFHLEVBQUssR0FBSSxHQUFJLEVBQUcsR0FBSyxFQUFHLEVBQUssRUFBRSxFQUM1QyxVQUNHLElBQ0gsRUFBRyxPQUFPLEVBQUcsRUFBSyxHQUFJLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQzVDLFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxHQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEVBQUUsRUFDNUMsVUFDRyxJQUNILEVBQUcsT0FBTyxFQUFHLEdBQUssR0FBSSxFQUFHLEVBQUssR0FBSSxFQUFHLEVBQUssRUFBRSxFQUM1QyxVQUNHLElBQ0gsRUFBRyxPQUFPLEVBQUcsRUFBSyxHQUFJLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxFQUFFLEVBQzVDLFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUUsRUFDNUMsVUFDRyxJQUNILEVBQUcsT0FBTyxFQUFHLEVBQUssR0FBSSxFQUFHLEVBQUssR0FBSSxFQUFHLEdBQUssRUFBRSxFQUM1QyxVQUNHLElBQ0gsRUFBRyxPQUFPLEVBQUcsRUFBSyxHQUFJLEVBQUcsR0FBSyxFQUFHLEVBQUssR0FBSSxFQUFFLEVBQzVDLFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUUsRUFDNUMsVUFDRyxJQUNILEVBQUcsT0FBTyxFQUFHLEdBQUssRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRSxFQUM1QyxVQUNHLElBQ0gsRUFBRyxPQUFPLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsR0FBSyxFQUFFLEVBQzVDLFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsV0FBVyxPQUFRLEVBQUcsRUFBSyxFQUFFLEVBQzlELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxXQUFXLE9BQVEsRUFBRyxFQUFHLEVBQzlELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsV0FBVyxPQUFRLEVBQUcsRUFBSyxFQUFFLEVBQzlELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsV0FBVyxPQUFRLEVBQUcsRUFBSyxFQUFFLEVBQzlELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsV0FBVyxPQUFRLEVBQUcsRUFBSyxFQUFFLEVBQzlELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxXQUFXLE9BQVEsRUFBRyxFQUFHLEVBQzlELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQ3BELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQ3BELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csSUFDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLEVBQ3BELFVBQ0csS0FDSCxFQUFHLE9BQU8sRUFBRyxFQUFLLEdBQUksRUFBRyxHQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSyxFQUFFLEVBQ3BELFVBQ0csS0FDSCxLQUFLLEVBQUksR0FDVCxVQUNHLEtBQ0gsS0FBSyxFQUFJLEVBQUcsR0FDWixVQUNHLEtBQ0gsS0FBSyxFQUFJLEVBQUcsV0FBVyxPQUN2QixVQUNHLEtBQ0gsS0FBSyxFQUFJLEVBQUcsV0FBVyxRQUN2QixVQUNHLEtBQ0gsS0FBSyxFQUFJLEVBQUcsV0FBVyxVQUN2QixRQUdOLE1BQU8sQ0FBQyxDQUFFLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxFQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBSyxFQUFHLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsRUFBRyxFQUFHLEVBQUcsRUFBSyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLEdBQUksRUFBRyxFQUFLLEdBQUksR0FBSSxHQUFJLENBQUksRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLEdBQUksRUFBRyxFQUFLLEdBQUksR0FBSSxHQUFJLENBQUksRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsRUFBRyxHQUFJLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQzl5TSxlQUFnQixDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxHQUFJLENBQUMsRUFBRyxDQUFDLEVBQUcsR0FBSSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEdBQUksQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUNoRSxvQkFBcUIsQ0FBVSxDQUFDLEVBQUssRUFBTSxDQUN6QyxHQUFJLEVBQUssWUFDUCxLQUFLLE1BQU0sQ0FBRyxNQUNULENBQ0wsSUFBSSxFQUFRLElBQUksTUFBTSxDQUFHLEVBRXpCLE1BREEsRUFBTSxLQUFPLEVBQ1AsSUFHVixlQUFnQixDQUFLLENBQUMsRUFBTyxDQUMzQixJQUFJLEVBQU8sS0FBTSxFQUFRLENBQUMsQ0FBQyxFQUFHLEVBQVMsQ0FBQyxFQUFHLEVBQVMsQ0FBQyxJQUFJLEVBQUcsRUFBUyxDQUFDLEVBQUcsRUFBUSxLQUFLLE1BQU8sRUFBUyxHQUFJLEdBQVcsRUFBRyxHQUFTLEVBQUcsR0FBUyxFQUFHLEdBQU0sRUFDbEosRUFBTyxFQUFPLE1BQU0sS0FBSyxVQUFXLENBQUMsRUFDckMsR0FBUyxPQUFPLE9BQU8sS0FBSyxLQUFLLEVBQ2pDLEdBQWMsQ0FBRSxHQUFJLENBQUMsQ0FBRSxFQUMzQixRQUFTLE1BQUssS0FBSyxHQUNqQixHQUFJLE9BQU8sVUFBVSxlQUFlLEtBQUssS0FBSyxHQUFJLEVBQUMsRUFDakQsR0FBWSxHQUFHLElBQUssS0FBSyxHQUFHLElBTWhDLEdBSEEsR0FBTyxTQUFTLEVBQU8sR0FBWSxFQUFFLEVBQ3JDLEdBQVksR0FBRyxNQUFRLEdBQ3ZCLEdBQVksR0FBRyxPQUFTLFlBQ2IsR0FBTyxRQUFVLFlBQzFCLEdBQU8sT0FBUyxDQUFDLEVBRW5CLElBQUksR0FBUSxHQUFPLE9BQ25CLEVBQU8sS0FBSyxFQUFLLEVBQ2pCLElBQUksR0FBUyxHQUFPLFNBQVcsR0FBTyxRQUFRLE9BQzlDLFVBQVcsR0FBWSxHQUFHLGFBQWUsV0FDdkMsS0FBSyxXQUFhLEdBQVksR0FBRyxlQUVqQyxNQUFLLFdBQWEsT0FBTyxlQUFlLElBQUksRUFBRSxXQUVoRCxTQUFTLEVBQUcsRUFBRyxDQUNiLElBQUksR0FDSSxFQUFPLElBQUksR0FBSyxHQUFPLElBQUksR0FBSyxHQUN4QyxVQUFXLEtBQVUsU0FBVSxDQUM3QixHQUFJLGNBQWlCLE1BQ25CLEVBQVMsR0FDVCxHQUFRLEVBQU8sSUFBSSxFQUVyQixHQUFRLEVBQUssU0FBUyxLQUFVLEdBRWxDLE9BQU8sR0FFVCxJQUFJLEdBQVEsR0FBTyxHQUFRLEdBQUcsR0FBUSxDQUFDLEVBQUcsR0FBRyxHQUFLLEdBQVUsR0FDNUQsTUFBTyxHQUFNLENBRVgsR0FEQSxHQUFRLEVBQU0sRUFBTSxPQUFTLEdBQ3pCLEtBQUssZUFBZSxJQUN0QixHQUFTLEtBQUssZUFBZSxRQUN4QixDQUNMLEdBQUksS0FBVyxhQUFlLElBQVUsWUFDdEMsR0FBUyxHQUFJLEVBRWYsR0FBUyxFQUFNLEtBQVUsRUFBTSxJQUFPLElBRXhDLFVBQVcsS0FBVyxjQUFnQixHQUFPLFNBQVcsR0FBTyxHQUFJLENBQ2pFLElBQUksR0FBUyxHQUNiLEdBQVcsQ0FBQyxFQUNaLElBQUssTUFBSyxFQUFNLElBQ2QsR0FBSSxLQUFLLFdBQVcsS0FBTSxHQUFJLEdBQzVCLEdBQVMsS0FBSyxJQUFNLEtBQUssV0FBVyxJQUFLLEdBQUcsRUFHaEQsR0FBSSxHQUFPLGFBQ1QsR0FBUyx3QkFBMEIsR0FBVyxHQUFLLE1BQVEsR0FBTyxhQUFhLEVBQUksZUFBaUIsR0FBUyxLQUFLLElBQUksRUFBSSxXQUFhLEtBQUssV0FBVyxLQUFXLElBQVUsUUFFNUssSUFBUyx3QkFBMEIsR0FBVyxHQUFLLGlCQUFtQixJQUFVLEdBQU0sZUFBaUIsS0FBTyxLQUFLLFdBQVcsS0FBVyxJQUFVLEtBRXJKLEtBQUssV0FBVyxHQUFRLENBQ3RCLEtBQU0sR0FBTyxNQUNiLE1BQU8sS0FBSyxXQUFXLEtBQVcsR0FDbEMsS0FBTSxHQUFPLFNBQ2IsSUFBSyxHQUNMLFdBQ0YsQ0FBQyxFQUVILEdBQUksR0FBTyxhQUFjLE9BQVMsR0FBTyxPQUFTLEVBQ2hELE1BQU0sSUFBSSxNQUFNLG9EQUFzRCxHQUFRLFlBQWMsRUFBTSxFQUVwRyxPQUFRLEdBQU8sUUFDUixHQUNILEVBQU0sS0FBSyxFQUFNLEVBQ2pCLEVBQU8sS0FBSyxHQUFPLE1BQU0sRUFDekIsRUFBTyxLQUFLLEdBQU8sTUFBTSxFQUN6QixFQUFNLEtBQUssR0FBTyxFQUFFLEVBQ3BCLEdBQVMsS0FFUCxHQUFTLEdBQU8sT0FDaEIsRUFBUyxHQUFPLE9BQ2hCLEdBQVcsR0FBTyxTQUNsQixHQUFRLEdBQU8sT0FFakIsVUFDRyxHQVNILEdBUkEsR0FBTSxLQUFLLGFBQWEsR0FBTyxJQUFJLEdBQ25DLEdBQU0sRUFBSSxFQUFPLEVBQU8sT0FBUyxJQUNqQyxHQUFNLEdBQUssQ0FDVCxXQUFZLEVBQU8sRUFBTyxRQUFVLElBQU8sSUFBSSxXQUMvQyxVQUFXLEVBQU8sRUFBTyxPQUFTLEdBQUcsVUFDckMsYUFBYyxFQUFPLEVBQU8sUUFBVSxJQUFPLElBQUksYUFDakQsWUFBYSxFQUFPLEVBQU8sT0FBUyxHQUFHLFdBQ3pDLEVBQ0ksR0FDRixHQUFNLEdBQUcsTUFBUSxDQUNmLEVBQU8sRUFBTyxRQUFVLElBQU8sSUFBSSxNQUFNLEdBQ3pDLEVBQU8sRUFBTyxPQUFTLEdBQUcsTUFBTSxFQUNsQyxFQVdGLEdBVEEsR0FBSSxLQUFLLGNBQWMsTUFBTSxHQUFPLENBQ2xDLEVBQ0EsR0FDQSxHQUNBLEdBQVksR0FDWixHQUFPLEdBQ1AsRUFDQSxDQUNGLEVBQUUsT0FBTyxDQUFJLENBQUMsU0FDSCxLQUFNLFlBQ2YsT0FBTyxHQUVULEdBQUksR0FDRixFQUFRLEVBQU0sTUFBTSxFQUFHLEdBQUssR0FBTSxDQUFDLEVBQ25DLEVBQVMsRUFBTyxNQUFNLEVBQUcsR0FBSyxFQUFHLEVBQ2pDLEVBQVMsRUFBTyxNQUFNLEVBQUcsR0FBSyxFQUFHLEVBRW5DLEVBQU0sS0FBSyxLQUFLLGFBQWEsR0FBTyxJQUFJLEVBQUUsRUFDMUMsRUFBTyxLQUFLLEdBQU0sQ0FBQyxFQUNuQixFQUFPLEtBQUssR0FBTSxFQUFFLEVBQ3BCLEdBQVcsRUFBTSxFQUFNLEVBQU0sT0FBUyxJQUFJLEVBQU0sRUFBTSxPQUFTLElBQy9ELEVBQU0sS0FBSyxFQUFRLEVBQ25CLFVBQ0csR0FDSCxNQUFPLElBR2IsTUFBTyxHQUVYLEVBQ0ksVUFBZ0IsRUFBRyxDQUNyQixJQUFJLEVBQVMsQ0FDWCxJQUFLLEVBQ0wsb0JBQXFCLENBQVUsQ0FBQyxFQUFLLEVBQU0sQ0FDekMsR0FBSSxLQUFLLEdBQUcsT0FDVixLQUFLLEdBQUcsT0FBTyxXQUFXLEVBQUssQ0FBSSxNQUVuQyxPQUFNLElBQUksTUFBTSxDQUFHLEdBSXZCLGlCQUFrQixDQUFDLEVBQU8sRUFBSSxDQWE1QixHQVpBLEtBQUssR0FBSyxHQUFNLEtBQUssSUFBTSxDQUFDLEVBQzVCLEtBQUssT0FBUyxFQUNkLEtBQUssTUFBUSxLQUFLLFdBQWEsS0FBSyxLQUFPLEdBQzNDLEtBQUssU0FBVyxLQUFLLE9BQVMsRUFDOUIsS0FBSyxPQUFTLEtBQUssUUFBVSxLQUFLLE1BQVEsR0FDMUMsS0FBSyxlQUFpQixDQUFDLFNBQVMsRUFDaEMsS0FBSyxPQUFTLENBQ1osV0FBWSxFQUNaLGFBQWMsRUFDZCxVQUFXLEVBQ1gsWUFBYSxDQUNmLEVBQ0ksS0FBSyxRQUFRLE9BQ2YsS0FBSyxPQUFPLE1BQVEsQ0FBQyxFQUFHLENBQUMsRUFHM0IsT0FEQSxLQUFLLE9BQVMsRUFDUCxNQUdULGNBQWUsRUFBRyxDQUNoQixJQUFJLEVBQUssS0FBSyxPQUFPLEdBQ3JCLEtBQUssUUFBVSxFQUNmLEtBQUssU0FDTCxLQUFLLFNBQ0wsS0FBSyxPQUFTLEVBQ2QsS0FBSyxTQUFXLEVBQ2hCLElBQUksRUFBUSxFQUFHLE1BQU0saUJBQWlCLEVBQ3RDLEdBQUksRUFDRixLQUFLLFdBQ0wsS0FBSyxPQUFPLGdCQUVaLE1BQUssT0FBTyxjQUVkLEdBQUksS0FBSyxRQUFRLE9BQ2YsS0FBSyxPQUFPLE1BQU0sS0FHcEIsT0FEQSxLQUFLLE9BQVMsS0FBSyxPQUFPLE1BQU0sQ0FBQyxFQUMxQixHQUdULGNBQWUsQ0FBQyxFQUFJLENBQ2xCLElBQUksRUFBTSxFQUFHLE9BQ1QsRUFBUSxFQUFHLE1BQU0sZUFBZSxFQUNwQyxLQUFLLE9BQVMsRUFBSyxLQUFLLE9BQ3hCLEtBQUssT0FBUyxLQUFLLE9BQU8sT0FBTyxFQUFHLEtBQUssT0FBTyxPQUFTLENBQUcsRUFDNUQsS0FBSyxRQUFVLEVBQ2YsSUFBSSxFQUFXLEtBQUssTUFBTSxNQUFNLGVBQWUsRUFHL0MsR0FGQSxLQUFLLE1BQVEsS0FBSyxNQUFNLE9BQU8sRUFBRyxLQUFLLE1BQU0sT0FBUyxDQUFDLEVBQ3ZELEtBQUssUUFBVSxLQUFLLFFBQVEsT0FBTyxFQUFHLEtBQUssUUFBUSxPQUFTLENBQUMsRUFDekQsRUFBTSxPQUFTLEVBQ2pCLEtBQUssVUFBWSxFQUFNLE9BQVMsRUFFbEMsSUFBSSxFQUFJLEtBQUssT0FBTyxNQU9wQixHQU5BLEtBQUssT0FBUyxDQUNaLFdBQVksS0FBSyxPQUFPLFdBQ3hCLFVBQVcsS0FBSyxTQUFXLEVBQzNCLGFBQWMsS0FBSyxPQUFPLGFBQzFCLFlBQWEsR0FBUyxFQUFNLFNBQVcsRUFBUyxPQUFTLEtBQUssT0FBTyxhQUFlLEdBQUssRUFBUyxFQUFTLE9BQVMsRUFBTSxRQUFRLE9BQVMsRUFBTSxHQUFHLE9BQVMsS0FBSyxPQUFPLGFBQWUsQ0FDMUwsRUFDSSxLQUFLLFFBQVEsT0FDZixLQUFLLE9BQU8sTUFBUSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUssS0FBSyxPQUFTLENBQUcsRUFHckQsT0FEQSxLQUFLLE9BQVMsS0FBSyxPQUFPLE9BQ25CLE1BR1QsYUFBYyxFQUFHLENBRWYsT0FEQSxLQUFLLE1BQVEsR0FDTixNQUdULGVBQWdCLEVBQUcsQ0FDakIsR0FBSSxLQUFLLFFBQVEsZ0JBQ2YsS0FBSyxXQUFhLE9BRWxCLFFBQU8sS0FBSyxXQUFXLDBCQUE0QixLQUFLLFNBQVcsR0FBSyxtSUFBcUksS0FBSyxhQUFhLEVBQUcsQ0FDaE8sS0FBTSxHQUNOLE1BQU8sS0FDUCxLQUFNLEtBQUssUUFDYixDQUFDLEVBRUgsT0FBTyxNQUdULGFBQWMsQ0FBQyxFQUFHLENBQ2hCLEtBQUssTUFBTSxLQUFLLE1BQU0sTUFBTSxDQUFDLENBQUMsR0FHaEMsa0JBQW1CLEVBQUcsQ0FDcEIsSUFBSSxFQUFPLEtBQUssUUFBUSxPQUFPLEVBQUcsS0FBSyxRQUFRLE9BQVMsS0FBSyxNQUFNLE1BQU0sRUFDekUsT0FBUSxFQUFLLE9BQVMsR0FBSyxNQUFRLElBQU0sRUFBSyxPQUFPLEdBQUcsRUFBRSxRQUFRLE1BQU8sRUFBRSxHQUc3RSxzQkFBdUIsRUFBRyxDQUN4QixJQUFJLEVBQU8sS0FBSyxNQUNoQixHQUFJLEVBQUssT0FBUyxHQUNoQixHQUFRLEtBQUssT0FBTyxPQUFPLEVBQUcsR0FBSyxFQUFLLE1BQU0sRUFFaEQsT0FBUSxFQUFLLE9BQU8sRUFBRyxFQUFFLEdBQUssRUFBSyxPQUFTLEdBQUssTUFBUSxLQUFLLFFBQVEsTUFBTyxFQUFFLEdBR2pGLHFCQUFzQixFQUFHLENBQ3ZCLElBQUksRUFBTSxLQUFLLFVBQVUsRUFDckIsRUFBSSxJQUFJLE1BQU0sRUFBSSxPQUFTLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFDMUMsT0FBTyxFQUFNLEtBQUssY0FBYyxFQUFJLEtBQU8sRUFBSSxLQUdqRCxtQkFBb0IsQ0FBQyxFQUFPLEVBQWMsQ0FDeEMsSUFBSSxFQUFPLEVBQU8sRUFDbEIsR0FBSSxLQUFLLFFBQVEsaUJBcUJmLEdBcEJBLEVBQVMsQ0FDUCxTQUFVLEtBQUssU0FDZixPQUFRLENBQ04sV0FBWSxLQUFLLE9BQU8sV0FDeEIsVUFBVyxLQUFLLFVBQ2hCLGFBQWMsS0FBSyxPQUFPLGFBQzFCLFlBQWEsS0FBSyxPQUFPLFdBQzNCLEVBQ0EsT0FBUSxLQUFLLE9BQ2IsTUFBTyxLQUFLLE1BQ1osUUFBUyxLQUFLLFFBQ2QsUUFBUyxLQUFLLFFBQ2QsT0FBUSxLQUFLLE9BQ2IsT0FBUSxLQUFLLE9BQ2IsTUFBTyxLQUFLLE1BQ1osT0FBUSxLQUFLLE9BQ2IsR0FBSSxLQUFLLEdBQ1QsZUFBZ0IsS0FBSyxlQUFlLE1BQU0sQ0FBQyxFQUMzQyxLQUFNLEtBQUssSUFDYixFQUNJLEtBQUssUUFBUSxPQUNmLEVBQU8sT0FBTyxNQUFRLEtBQUssT0FBTyxNQUFNLE1BQU0sQ0FBQyxFQUluRCxHQURBLEVBQVEsRUFBTSxHQUFHLE1BQU0saUJBQWlCLEVBQ3BDLEVBQ0YsS0FBSyxVQUFZLEVBQU0sT0FZekIsR0FWQSxLQUFLLE9BQVMsQ0FDWixXQUFZLEtBQUssT0FBTyxVQUN4QixVQUFXLEtBQUssU0FBVyxFQUMzQixhQUFjLEtBQUssT0FBTyxZQUMxQixZQUFhLEVBQVEsRUFBTSxFQUFNLE9BQVMsR0FBRyxPQUFTLEVBQU0sRUFBTSxPQUFTLEdBQUcsTUFBTSxRQUFRLEVBQUUsR0FBRyxPQUFTLEtBQUssT0FBTyxZQUFjLEVBQU0sR0FBRyxNQUMvSSxFQUNBLEtBQUssUUFBVSxFQUFNLEdBQ3JCLEtBQUssT0FBUyxFQUFNLEdBQ3BCLEtBQUssUUFBVSxFQUNmLEtBQUssT0FBUyxLQUFLLE9BQU8sT0FDdEIsS0FBSyxRQUFRLE9BQ2YsS0FBSyxPQUFPLE1BQVEsQ0FBQyxLQUFLLE9BQVEsS0FBSyxRQUFVLEtBQUssTUFBTSxFQU85RCxHQUxBLEtBQUssTUFBUSxHQUNiLEtBQUssV0FBYSxHQUNsQixLQUFLLE9BQVMsS0FBSyxPQUFPLE1BQU0sRUFBTSxHQUFHLE1BQU0sRUFDL0MsS0FBSyxTQUFXLEVBQU0sR0FDdEIsRUFBUSxLQUFLLGNBQWMsS0FBSyxLQUFNLEtBQUssR0FBSSxLQUFNLEVBQWMsS0FBSyxlQUFlLEtBQUssZUFBZSxPQUFTLEVBQUUsRUFDbEgsS0FBSyxNQUFRLEtBQUssT0FDcEIsS0FBSyxLQUFPLEdBRWQsR0FBSSxFQUNGLE9BQU8sVUFDRSxLQUFLLFdBQVksQ0FDMUIsUUFBUyxLQUFLLEVBQ1osS0FBSyxHQUFLLEVBQU8sR0FFbkIsTUFBTyxHQUVULE1BQU8sSUFHVCxhQUFjLEVBQUcsQ0FDZixHQUFJLEtBQUssS0FDUCxPQUFPLEtBQUssSUFFZCxJQUFLLEtBQUssT0FDUixLQUFLLEtBQU8sR0FFZCxJQUFJLEVBQU8sRUFBTyxFQUFXLEVBQzdCLElBQUssS0FBSyxNQUNSLEtBQUssT0FBUyxHQUNkLEtBQUssTUFBUSxHQUVmLElBQUksRUFBUSxLQUFLLGNBQWMsRUFDL0IsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFNLE9BQVEsSUFFaEMsR0FEQSxFQUFZLEtBQUssT0FBTyxNQUFNLEtBQUssTUFBTSxFQUFNLEdBQUcsRUFDOUMsS0FBZSxHQUFTLEVBQVUsR0FBRyxPQUFTLEVBQU0sR0FBRyxTQUd6RCxHQUZBLEVBQVEsRUFDUixFQUFRLEVBQ0osS0FBSyxRQUFRLGdCQUVmLEdBREEsRUFBUSxLQUFLLFdBQVcsRUFBVyxFQUFNLEVBQUUsRUFDdkMsSUFBVSxHQUNaLE9BQU8sVUFDRSxLQUFLLFdBQVksQ0FDMUIsRUFBUSxHQUNSLGFBRUEsT0FBTyxZQUVDLEtBQUssUUFBUSxLQUN2QixNQUlOLEdBQUksRUFBTyxDQUVULEdBREEsRUFBUSxLQUFLLFdBQVcsRUFBTyxFQUFNLEVBQU0sRUFDdkMsSUFBVSxHQUNaLE9BQU8sRUFFVCxNQUFPLEdBRVQsR0FBSSxLQUFLLFNBQVcsR0FDbEIsT0FBTyxLQUFLLFFBRVosUUFBTyxLQUFLLFdBQVcsMEJBQTRCLEtBQUssU0FBVyxHQUFLLHlCQUEyQixLQUFLLGFBQWEsRUFBRyxDQUN0SCxLQUFNLEdBQ04sTUFBTyxLQUNQLEtBQU0sS0FBSyxRQUNiLENBQUMsR0FJTCxhQUFjLENBQUcsRUFBRyxDQUNsQixJQUFJLEVBQUksS0FBSyxLQUFLLEVBQ2xCLEdBQUksRUFDRixPQUFPLE1BRVAsUUFBTyxLQUFLLElBQUksR0FJcEIsZUFBZ0IsQ0FBSyxDQUFDLEVBQVcsQ0FDL0IsS0FBSyxlQUFlLEtBQUssQ0FBUyxHQUdwQyxrQkFBbUIsQ0FBUSxFQUFHLENBQzVCLElBQUksRUFBSSxLQUFLLGVBQWUsT0FBUyxFQUNyQyxHQUFJLEVBQUksRUFDTixPQUFPLEtBQUssZUFBZSxJQUFJLE1BRS9CLFFBQU8sS0FBSyxlQUFlLElBSS9CLHVCQUF3QixDQUFhLEVBQUcsQ0FDdEMsR0FBSSxLQUFLLGVBQWUsUUFBVSxLQUFLLGVBQWUsS0FBSyxlQUFlLE9BQVMsR0FDakYsT0FBTyxLQUFLLFdBQVcsS0FBSyxlQUFlLEtBQUssZUFBZSxPQUFTLElBQUksVUFFNUUsUUFBTyxLQUFLLFdBQVcsUUFBVyxPQUl0QyxrQkFBbUIsQ0FBUSxDQUFDLEVBQUcsQ0FFN0IsR0FEQSxFQUFJLEtBQUssZUFBZSxPQUFTLEVBQUksS0FBSyxJQUFJLEdBQUssQ0FBQyxFQUNoRCxHQUFLLEVBQ1AsT0FBTyxLQUFLLGVBQWUsT0FFM0IsT0FBTyxXQUlYLG1CQUFvQixDQUFTLENBQUMsRUFBVyxDQUN2QyxLQUFLLE1BQU0sQ0FBUyxHQUd0Qix3QkFBeUIsQ0FBYyxFQUFHLENBQ3hDLE9BQU8sS0FBSyxlQUFlLFFBRTdCLFFBQVMsQ0FBRSxtQkFBb0IsRUFBSyxFQUNwQyx1QkFBd0IsQ0FBUyxDQUFDLEVBQUksRUFBSyxFQUEyQixFQUFVLENBQzlFLE9BQVEsT0FDRCxHQUVILE9BREEsS0FBSyxNQUFNLFdBQVcsRUFDZixPQUNKLEdBRUgsT0FEQSxLQUFLLFNBQVMsRUFDUCxzQkFDSixHQUVILE9BREEsS0FBSyxNQUFNLFdBQVcsRUFDZixPQUNKLEdBRUgsT0FEQSxLQUFLLFNBQVMsRUFDUCxzQkFDSixHQUNILEtBQUssTUFBTSxxQkFBcUIsRUFDaEMsVUFDRyxHQUNILEtBQUssU0FBUyxFQUNkLFVBQ0csR0FDSCxNQUFPLGdDQUNKLEdBQ0gsTUFBTyxRQUNKLEdBQ0gsVUFDRyxHQUNILFVBQ0csSUFDSCxNQUFPLE9BQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLFFBQ0osSUFDSCxNQUFPLE9BQ0osSUFDSCxNQUFPLE9BQ0osSUFDSCxNQUFPLE9BQ0osSUFDSCxNQUFPLFlBQ0osSUFDSCxLQUFLLE1BQU0sU0FBUyxFQUNwQixVQUNHLElBQ0gsS0FBSyxTQUFTLEVBQ2QsVUFDRyxJQUNILE1BQU8sUUFDSixJQUNILE1BQU8sUUFDSixJQUNILEtBQUssTUFBTSxRQUFRLEVBQ25CLFVBQ0csSUFDSCxLQUFLLFNBQVMsRUFDZCxVQUNHLElBQ0gsTUFBTyxRQUNKLElBQ0gsTUFBTyxRQUNKLElBQ0gsTUFBTyxRQUNKLElBQ0gsTUFBTyxLQUdiLE1BQU8sQ0FBQyx3QkFBeUIsd0JBQXlCLHdCQUF5Qix3QkFBeUIseUJBQTBCLGFBQWMsZUFBZ0IsaUJBQWtCLGdCQUFpQixnQkFBaUIsbUJBQW9CLHVCQUF3QixZQUFhLGNBQWUsYUFBYyxpQkFBa0Isa0JBQW1CLG9CQUFxQixhQUFjLHVCQUF3QixlQUFnQixzQkFBdUIsNEJBQTZCLGdCQUFpQix5QkFBMEIsYUFBYyxhQUFjLFVBQVcsV0FBWSxxQkFBc0Isd0JBQXlCLGlDQUFrQyxlQUFnQixZQUFhLFlBQWEsY0FBZSx1QkFBd0IsNEJBQTZCLFVBQVcsV0FBVyxFQUNyd0IsV0FBWSxDQUFFLG9CQUF1QixDQUFFLE1BQVMsQ0FBQyxFQUFHLENBQUMsRUFBRyxVQUFhLEVBQU0sRUFBRyxVQUFhLENBQUUsTUFBUyxDQUFDLENBQUMsRUFBRyxVQUFhLEVBQU0sRUFBRyxVQUFhLENBQUUsTUFBUyxDQUFDLENBQUMsRUFBRyxVQUFhLEVBQU0sRUFBRyxRQUFXLENBQUUsTUFBUyxDQUFDLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLE9BQVUsQ0FBRSxNQUFTLENBQUMsR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsUUFBVyxDQUFFLE1BQVMsQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQUssQ0FBRSxDQUN2YyxFQUNBLE9BQU8sR0FDUCxFQUNGLEVBQVEsTUFBUSxFQUNoQixTQUFTLENBQU0sRUFBRyxDQUNoQixLQUFLLEdBQUssQ0FBQyxFQUliLE9BRkEsRUFBTyxVQUFZLEVBQ25CLEVBQVEsT0FBUyxFQUNWLElBQUksR0FDWCxFQUNGLElBQU8sT0FBUyxJQUNWLElBQWlCLElBQ25CLElBQWlCLEdBQVUsRUFBRSxTQUFTLGVBQ3RDLElBQWtCLEdBQVUsRUFBRSxTQUFTLGdCQUN2QyxHQUFVLENBQUMsRUFFWCxHQUFpQixDQUFDLEVBQ3RCLEdBQWUsS0FBa0IsQ0FBRSxLQUFNLElBQWdCLE1BQU8sR0FBZ0IsRUFDNUUsR0FBVyxDQUFDLEVBQ2hCLEdBQVMsS0FBa0IsR0FDdkIsR0FBWSxJQW9CWixJQUFVLENBQUMsRUFzVlQsR0FBZSxDQUNuQixPQUFRLEVBQ1IsUUFBUyxFQUNULFVBQVcsRUFDWCxNQUFPLEVBQ1AsWUFBYSxDQUNmLEVBQ00sSUFBYSxDQUNqQixVQUFXLElBQU0sR0FBVSxFQUFFLFNBQzdCLGlCQUNBLGVBQ0EsZUFDQSxXQUNBLFdBQ0EsVUFDQSxlQUNBLGFBRUEsZ0JBQ0EsTUFBTyxJQUNQLDBCQUNBLGdCQUNBLGVBQ0Esb0JBQ0EscUJBQ0EsaUJBQ0EsWUFDQSxlQUNBLGVBQ0EscUJBQ0EscUJBQ0EsbUJBQ0EsbUJBQ0EsV0FBWSxFQUNkLEVBQ0ksR0FBaUIsQ0FBQyxFQUNoQixHQUFhLENBQ2pCLE9BQVEsRUFDUixRQUFTLEVBQ1QsVUFBVyxFQUNYLE1BQU8sRUFDUCxZQUFhLENBQ2YsRUFFSSxHQUFZLENBQUMsRUFDYixHQUFZLENBQUMsRUFDYixJQUFRLENBQUMsRUFvYVAsSUFBbUIsQ0FDdkIsUUFDRixFQXNETSxJQUFpQixJQUNqQixJQUFVLENBQ2QsT0FBUSxJQUNSLEdBQUksSUFDSixTQUFVLElBQ1YsT0FBUSxHQUNWLDJCQ3B3REEsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQWlCLEtBQWpCLGlCQUE4QyxLQUFwQixZQUEyQixJQUFPLFFBQVEsRUFBRSxTQUFxQixRQUFuQixZQUEyQixPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsU0FBc0IsWUFBcEIsWUFBK0IsV0FBVyxHQUFHLE1BQU0scUJBQXFCLEVBQUUsSUFBRyxZQUFjLEVBQUUsQ0FBYyxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssUUFBUSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxZQUFZLEVBQUUsRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsUUFBUSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsT0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBakIsVUFBbUIsRUFBRSxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsS0FBSyxXQUFXLEVBQUUsRUFBRSxFQUFFLFFBQVEsS0FBSyxFQUFFLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxHQUFHLEtBQUssV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sS0FBSyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUssMkJDQXIrQixTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBaUIsS0FBakIsaUJBQThDLEtBQXBCLFlBQTJCLElBQU8sUUFBUSxFQUFFLFNBQXFCLFFBQW5CLFlBQTJCLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxTQUFzQixZQUFwQixZQUErQixXQUFXLEdBQUcsTUFBTSwrQkFBK0IsRUFBRSxJQUFHLFlBQWMsRUFBRSxDQUFjLElBQUksRUFBRSxDQUFDLElBQUksWUFBWSxHQUFHLFNBQVMsRUFBRSxhQUFhLEdBQUcsZUFBZSxJQUFJLHNCQUFzQixLQUFLLDJCQUEyQixFQUFFLEVBQUUsZ0dBQWdHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxHQUFHLEtBQUssT0FBVSxVQUFVLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU8sR0FBRSxHQUFTLElBQU4sSUFBUSxNQUFPLEdBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxjQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBRyxPQUFXLElBQUosRUFBTSxFQUFRLEVBQUUsS0FBUixLQUFZLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsR0FBRyxHQUFHLFFBQVEsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLFdBQVksR0FBRSxLQUFLLEVBQUUsS0FBSyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSyxhQUFhLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssYUFBYSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEtBQUssY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEtBQUssRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsU0FBUyxFQUFFLElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxhQUFhLEdBQUcsRUFBRSxZQUFhLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFHLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxRQUFRLEdBQUcsRUFBRSxFQUFFLFFBQVEsNENBQTZDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsUUFBUSx5Q0FBMEMsQ0FBQyxFQUFFLEVBQUUsR0FBRSxDQUFDLE9BQU8sR0FBRyxHQUFFLE1BQU0sQ0FBQyxFQUFHLEVBQUcsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsUUFBUSxXQUFXLEVBQUUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxVQUFvQixHQUFqQixTQUFtQixHQUFHLEVBQUUsV0FBVyxDQUFDLElBQVEsTUFBSixFQUFjLE9BQUosSUFBRSxFQUFTLEdBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFFLEVBQUUsS0FBSyxFQUFDLEVBQUUsR0FBRyxHQUFFLEtBQUssRUFBRSxFQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRSxFQUFFLEdBQUcsZUFBZSxDQUFDLEdBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRSxVQUFVLEdBQVksSUFBSixPQUFNLENBQUMsSUFBSSxHQUFFLEdBQUUsTUFBTSxFQUFFLEdBQUUsS0FBSyxHQUFFLE9BQU8sSUFBUyxLQUFMLEtBQVMsR0FBRSxNQUFNLFVBQVUsR0FBRSxZQUFZLENBQUMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxtQkFBbUIsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBUSxLQUFKLEVBQWEsSUFBSixFQUFZLEtBQUosR0FBTixFQUFlLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsVUFBb0IsR0FBakIsU0FBbUIsQ0FBQyxJQUFJLEVBQU8sRUFBRSxLQUFQLEdBQVUsRUFBTyxFQUFFLEtBQVAsR0FBVSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxRQUFRLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxXQUFXLENBQUMsR0FBRSxHQUFFLEdBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFDLEVBQUUsR0FBRyxPQUFPLElBQUksTUFBWSxLQUFOLElBQVEsS0FBSSxHQUFHLEVBQUMsRUFBRSxJQUFJLEdBQUUsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxNQUFNLEdBQUUsR0FBRSxJQUFJLEdBQUUsR0FBRSxNQUFNLEdBQUUsR0FBRSxRQUFRLEdBQUUsR0FBRSxRQUFRLEdBQUUsR0FBRSxhQUFhLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsSUFBSSxLQUFLLEdBQUUsS0FBSSxJQUFHLEdBQUUsRUFBRSxHQUFFLFFBQVEsR0FBRyxHQUFFLElBQUcsR0FBRSxZQUFZLEVBQUUsR0FBRSxFQUFFLEtBQUksS0FBSSxHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxTQUFTLEdBQUcsSUFBSSxHQUFFLEdBQUUsSUFBRyxFQUFFLEdBQUUsSUFBRyxFQUFFLEdBQUUsSUFBRyxFQUFFLEdBQUUsSUFBRyxFQUFFLE9BQU8sR0FBRSxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRyxHQUFFLE9BQU8sSUFBRyxDQUFDLEVBQUUsR0FBRSxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUMsQ0FBQyxHQUFHLEdBQUUsSUFBSSxLQUFLLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUMsRUFBRSxLQUFJLEdBQUUsRUFBRSxFQUFDLEVBQUUsS0FBSyxFQUFDLEVBQUUsT0FBTyxHQUFHLFVBQVMsR0FBTixDQUFTLE9BQU8sSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxLQUFLLEVBQUUsR0FBUSxJQUFMLEtBQVMsS0FBSyxHQUFHLEtBQUssT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLEdBQUcsS0FBSyxPQUFPLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxhQUFhLE1BQU0s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QTtBQUFBO0FBQUEsWUFJUixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFJUixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFJUixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBWU4sRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFNSCxFQUFRO0FBQUEsWUFDZixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBWU4sRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBbUJWLEVBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFNUixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFhUixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBTVIsRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQU1SLEVBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBV1IsRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBT1IsRUFBUTtBQUFBLGNBQ04sRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQU1WLEVBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBS1IsRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBVVIsRUFBUTtBQUFBLGNBQ04sRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBT1YsRUFBUTtB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QUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsQ0FBQyxFQUNyWSx1QkFBd0IsQ0FBUyxDQUFDLEVBQVEsRUFBUSxHQUFVLEdBQUksR0FBUyxHQUFJLEVBQUksQ0FDL0UsSUFBSSxHQUFLLEdBQUcsT0FBUyxFQUNyQixPQUFRLFFBQ0QsR0FDSCxPQUFPLEdBQUcsR0FBSyxPQUNaLEdBQ0gsS0FBSyxFQUFJLENBQUMsRUFDVixVQUNHLEdBQ0gsR0FBRyxHQUFLLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFDdEIsS0FBSyxFQUFJLEdBQUcsR0FBSyxHQUNqQixVQUNHLE9BQ0EsR0FDSCxLQUFLLEVBQUksR0FBRyxJQUNaLFVBQ0csT0FDQSxHQUNILEtBQUssRUFBSSxDQUFDLEVBQ1YsVUFDRyxHQUNILEdBQUcsV0FBVyxRQUFRLEVBQ3RCLFVBQ0csR0FDSCxHQUFHLFdBQVcsU0FBUyxFQUN2QixVQUNHLElBQ0gsR0FBRyxXQUFXLFdBQVcsRUFDekIsVUFDRyxJQUNILEdB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Qy9DLEdBQUcsUUFBUSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssRUFBRSxFQUNqQyxVQUNHLElBQ0gsS0FBSyxFQUFJLEdBQUcsR0FBSyxHQUNqQixHQUFHLFFBQVEsR0FBRyxHQUFLLEdBQUksR0FBRyxHQUFHLEVBQzdCLFVBQ0csUUFDQSxJQUNILEtBQUssRUFBSSxHQUFHLEdBQUssR0FBSyxJQUFNLEdBQUcsSUFDL0IsVUFDRyxRQUNBLFFBQ0EsSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQUssSUFBTSxHQUFHLEdBQUssR0FBSyxJQUFNLEdBQUcsSUFDbEQsVUFDRyxRQUNBLElBQ0gsS0FBSyxFQUFJLEdBQUcsR0FBSyxHQUFLLElBQU0sR0FBRyxHQUFLLEdBQUssSUFBTSxHQUFHLEdBQUssR0FBSyxJQUFNLEdBQUcsSUFDckUsUUFHTixNQUFPLENBQUMsQ0FBRSxFQUFHLEVBQUcsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUUsQ0FBQyxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLENBQUMsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLENBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLENBQUMs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RSxFQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxFQUFLLENBQUUsRUFBRyxFQUFHLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUUsRUFBRyxFQUFFLEVBQUssRUFBSyxDQUFFLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLENBQUMsRUFBRyxFQUFFLEVBQUssRUFBSyxDQUFFLEVBQUcsRUFBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxDQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxFQUFLLENBQUUsRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsQ0FBQyxFQUNscUIsZUFBZ0IsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUUsRUFDNUIsb0JBQXFCLENBQVUsQ0FBQyxFQUFLLEVBQU0sQ0FDekMsR0FBSSxFQUFLLFlBQ1AsS0FBSyxNQUFNLENBQUcsTUFDVCxDQUNMLElBQUksRUFBUSxJQUFJLE1BQU0sQ0FBRyxFQUV6QixNQURBLEVBQU0sS0FBTyxFQUNQLElBR1YsZUFBZ0IsQ0FBSyxDQUFDLEVBQU8sQ0FDM0IsSUFBSSxFQUFPLEtBQU0sRUFBUSxDQUFDLENBQUMsRUFBRyxFQUFTLENBQUMsRUFBRyxFQUFTLENBQUMsSUFBSSxFQUFHLEVBQVMsQ0FBQyxFQUFHLEVBQVEsS0FBSyxNQUFPLEVBQVMsR0FBSSxFQUFXLEVBQUcsRUFBUyxFQUFHLEdBQVMsRUFBRyxHQUFNLEVBQ2xKLEdBQU8sRUFBTyxNQUFNLEtBQUssVUFBVyxDQUFDLEVBQ3JDLEdBQVMsT0FBTyxPQUFPLEtBQUssS0FBSyxFQUNqQyxFQUFjLENBQUUsR0FBSSxDQUFDLENBQUUsRUFDM0IsUUFBUyxNQUFLLEtBQUssR0FDakIsR0FBSSxPQUFPLFVBQVUsZUFBZSxLQUFLLEtBQUssR0FBSSxFQUFDLEVBQ2pELEVBQVksR0FBRyxJQUFLLEtBQUssR0FBRyxJQU1oQyxHQUhBLEdBQU8sU0FBUyxFQUFPLEVBQVksRUFBRSxFQUNyQyxFQUFZLEdBQUcsTUFBUSxHQUN2QixFQUFZLEdBQUcsT0FBUyxZQUNiLEdBQU8sUUFBVSxZQUMxQixHQUFPLE9BQVMsQ0FBQyxFQUVuQixJQUFJLEdBQVEsR0FBTyxPQUNuQixFQUFPLEtBQUssRUFBSyxFQUNqQixJQUFJLEdBQVMsR0FBTyxTQUFXLEdBQU8sUUFBUSxPQUM5QyxVQUFXLEVBQVksR0FBRyxhQUFlLFdBQ3ZDLEtBQUssV0FBYSxFQUFZLEdBQUcsZUFFakMsTUFBSyxXQUFhLE9BQU8sZUFBZSxJQUFJLEVBQUUsV0FFaEQsU0FBUyxFQUFHLEVBQUcsQ0FDYixJQUFJLEdBQ0ksRUFBTyxJQUFJLEdBQUssR0FBTyxJQUFJLEdBQUssR0FDeEMsVUFBVyxLQUFVLFNBQVUsQ0FDN0IsR0FBSSxjQUFpQixNQUNuQixFQUFTLEdBQ1QsR0FBUSxFQUFPLElBQUksRUFFckIsR0FBUSxFQUFLLFNBQVMsS0FBVSxHQUVsQyxPQUFPLEdBRVQsSUFBSSxHQUFRLEdBQU8sR0FBUSxHQUFHLEdBQVEsQ0FBQyxFQUFHLEdBQUcsR0FBSyxHQUFVLEdBQzVELE1BQU8sR0FBTSxDQUVYLEdBREEsR0FBUSxFQUFNLEVBQU0sT0FBUyxHQUN6QixLQUFLLGVBQWUsSUFDdEIsR0FBUyxLQUFLLGVBQWUsUUFDeEIsQ0FDTCxHQUFJLEtBQVcsYUFBZSxJQUFVLFlBQ3RDLEdBQVMsR0FBSSxFQUVmLEdBQVMsRUFBTSxLQUFVLEVBQU0sSUFBTyxJQUV4QyxVQUFXLEtBQVcsY0FBZ0IsR0FBTyxTQUFXLEdBQU8sR0FBSSxDQUNqRSxJQUFJLEdBQVMsR0FDYixHQUFXLENBQUMsRUFDWixJQUFLLE1BQUssRUFBTSxJQUNkLEdBQUksS0FBSyxXQUFXLEtBQU0sR0FBSSxHQUM1QixHQUFTLEtBQUssSUFBTSxLQUFLLFdBQVcsSUFBSyxHQUFHLEVBR2hELEdBQUksR0FBTyxhQUNULEdBQVMsd0JBQTBCLEVBQVcsR0FBSyxNQUFRLEdBQU8sYUFBYSxFQUFJLGVBQWlCLEdBQVMsS0FBSyxJQUFJLEVBQUksV0FBYSxLQUFLLFdBQVcsS0FBVyxJQUFVLFFBRTVLLElBQVMsd0JBQTBCLEVBQVcsR0FBSyxpQkFBbUIsSUFBVSxHQUFNLGVBQWlCLEtBQU8sS0FBSyxXQUFXLEtBQVcsSUFBVSxLQUVySixLQUFLLFdBQVcsR0FBUSxDQUN0QixLQUFNLEdBQU8sTUFDYixNQUFPLEtBQUssV0FBVyxLQUFXLEdBQ2xDLEtBQU0sR0FBTyxTQUNiLElBQUssR0FDTCxXQUNGLENBQUMsRUFFSCxHQUFJLEdBQU8sYUFBYyxPQUFTLEdBQU8sT0FBUyxFQUNoRCxNQUFNLElBQUksTUFBTSxvREFBc0QsR0FBUSxZQUFjLEVBQU0sRUFFcEcsT0FBUSxHQUFPLFFBQ1IsR0FDSCxFQUFNLEtBQUssRUFBTSxFQUNqQixFQUFPLEtBQUssR0FBTyxNQUFNLEVBQ3pCLEVBQU8sS0FBSyxHQUFPLE1BQU0sRUFDekIsRUFBTSxLQUFLLEdBQU8sRUFBRSxFQUNwQixHQUFTLEtBRVAsRUFBUyxHQUFPLE9BQ2hCLEVBQVMsR0FBTyxPQUNoQixFQUFXLEdBQU8sU0FDbEIsR0FBUSxHQUFPLE9BRWpCLFVBQ0csR0FTSCxHQVJBLEdBQU0sS0FBSyxhQUFhLEdBQU8sSUFBSSxHQUNuQyxHQUFNLEVBQUksRUFBTyxFQUFPLE9BQVMsSUFDakMsR0FBTSxHQUFLLENBQ1QsV0FBWSxFQUFPLEVBQU8sUUFBVSxJQUFPLElBQUksV0FDL0MsVUFBVyxFQUFPLEVBQU8sT0FBUyxHQUFHLFVBQ3JDLGFBQWMsRUFBTyxFQUFPLFFBQVUsSUFBTyxJQUFJLGFBQ2pELFlBQWEsRUFBTyxFQUFPLE9BQVMsR0FBRyxXQUN6QyxFQUNJLEdBQ0YsR0FBTSxHQUFHLE1BQVEsQ0FDZixFQUFPLEVBQU8sUUFBVSxJQUFPLElBQUksTUFBTSxHQUN6QyxFQUFPLEVBQU8sT0FBUyxHQUFHLE1BQU0sRUFDbEMsRUFXRixHQVRBLEdBQUksS0FBSyxjQUFjLE1BQU0sR0FBTyxDQUNsQyxFQUNBLEVBQ0EsRUFDQSxFQUFZLEdBQ1osR0FBTyxHQUNQLEVBQ0EsQ0FDRixFQUFFLE9BQU8sRUFBSSxDQUFDLFNBQ0gsS0FBTSxZQUNmLE9BQU8sR0FFVCxHQUFJLEdBQ0YsRUFBUSxFQUFNLE1BQU0sRUFBRyxHQUFLLEdBQU0sQ0FBQyxFQUNuQyxFQUFTLEVBQU8sTUFBTSxFQUFHLEdBQUssRUFBRyxFQUNqQyxFQUFTLEVBQU8sTUFBTSxFQUFHLEdBQUssRUFBRyxFQUVuQyxFQUFNLEtBQUssS0FBSyxhQUFhLEdBQU8sSUFBSSxFQUFFLEVBQzFDLEVBQU8sS0FBSyxHQUFNLENBQUMsRUFDbkIsRUFBTyxLQUFLLEdBQU0sRUFBRSxFQUNwQixHQUFXLEVBQU0sRUFBTSxFQUFNLE9BQVMsSUFBSSxFQUFNLEVBQU0sT0FBUyxJQUMvRCxFQUFNLEtBQUssRUFBUSxFQUNuQixVQUNHLEdBQ0gsTUFBTyxJQUdiLE1BQU8sR0FFWCxFQUNJLFVBQWdCLEVBQUcsQ0FDckIsSUFBSSxFQUFTLENBQ1gsSUFBSyxFQUNMLG9CQUFxQixDQUFVLENBQUMsRUFBSyxFQUFNLENBQ3pDLEdBQUksS0FBSyxHQUFHLE9BQ1YsS0FBSyxHQUFHLE9BQU8sV0FBVyxFQUFLLENBQUksTUFFbkMsT0FBTSxJQUFJLE1BQU0sQ0FBRyxHQUl2QixpQkFBa0IsQ0FBQyxFQUFPLEVBQUksQ0FhNUIsR0FaQSxLQUFLLEdBQUssR0FBTSxLQUFLLElBQU0sQ0FBQyxFQUM1QixLQUFLLE9BQVMsRUFDZCxLQUFLLE1BQVEsS0FBSyxXQUFhLEtBQUssS0FBTyxHQUMzQyxLQUFLLFNBQVcsS0FBSyxPQUFTLEVBQzlCLEtBQUssT0FBUyxLQUFLLFFBQVUsS0FBSyxNQUFRLEdBQzFDLEtBQUssZUFBaUIsQ0FBQyxTQUFTLEVBQ2hDLEtBQUssT0FBUyxDQUNaLFdBQVksRUFDWixhQUFjLEVBQ2QsVUFBVyxFQUNYLFlBQWEsQ0FDZixFQUNJLEtBQUssUUFBUSxPQUNmLEtBQUssT0FBTyxNQUFRLENBQUMsRUFBRyxDQUFDLEVBRzNCLE9BREEsS0FBSyxPQUFTLEVBQ1AsTUFHVCxjQUFlLEVBQUcsQ0FDaEIsSUFBSSxFQUFLLEtBQUssT0FBTyxHQUNyQixLQUFLLFFBQVUsRUFDZixLQUFLLFNBQ0wsS0FBSyxTQUNMLEtBQUssT0FBUyxFQUNkLEtBQUssU0FBVyxFQUNoQixJQUFJLEVBQVEsRUFBRyxNQUFNLGlCQUFpQixFQUN0QyxHQUFJLEVBQ0YsS0FBSyxXQUNMLEtBQUssT0FBTyxnQkFFWixNQUFLLE9BQU8sY0FFZCxHQUFJLEtBQUssUUFBUSxPQUNmLEtBQUssT0FBTyxNQUFNLEtBR3BCLE9BREEsS0FBSyxPQUFTLEtBQUssT0FBTyxNQUFNLENBQUMsRUFDMUIsR0FHVCxjQUFlLENBQUMsRUFBSSxDQUNsQixJQUFJLEVBQU0sRUFBRyxPQUNULEVBQVEsRUFBRyxNQUFNLGVBQWUsRUFDcEMsS0FBSyxPQUFTLEVBQUssS0FBSyxPQUN4QixLQUFLLE9BQVMsS0FBSyxPQUFPLE9BQU8sRUFBRyxLQUFLLE9BQU8sT0FBUyxDQUFHLEVBQzVELEtBQUssUUFBVSxFQUNmLElBQUksRUFBVyxLQUFLLE1BQU0sTUFBTSxlQUFlLEVBRy9DLEdBRkEsS0FBSyxNQUFRLEtBQUssTUFBTSxPQUFPLEVBQUcsS0FBSyxNQUFNLE9BQVMsQ0FBQyxFQUN2RCxLQUFLLFFBQVUsS0FBSyxRQUFRLE9BQU8sRUFBRyxLQUFLLFFBQVEsT0FBUyxDQUFDLEVBQ3pELEVBQU0sT0FBUyxFQUNqQixLQUFLLFVBQVksRUFBTSxPQUFTLEVBRWxDLElBQUksRUFBSSxLQUFLLE9BQU8sTUFPcEIsR0FOQSxLQUFLLE9BQVMsQ0FDWixXQUFZLEtBQUssT0FBTyxXQUN4QixVQUFXLEtBQUssU0FBVyxFQUMzQixhQUFjLEtBQUssT0FBTyxhQUMxQixZQUFhLEdBQVMsRUFBTSxTQUFXLEVBQVMsT0FBUyxLQUFLLE9BQU8sYUFBZSxHQUFLLEVBQVMsRUFBUyxPQUFTLEVBQU0sUUFBUSxPQUFTLEVBQU0sR0FBRyxPQUFTLEtBQUssT0FBTyxhQUFlLENBQzFMLEVBQ0ksS0FBSyxRQUFRLE9BQ2YsS0FBSyxPQUFPLE1BQVEsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFLLEtBQUssT0FBUyxDQUFHLEVBR3JELE9BREEsS0FBSyxPQUFTLEtBQUssT0FBTyxPQUNuQixNQUdULGFBQWMsRUFBRyxDQUVmLE9BREEsS0FBSyxNQUFRLEdBQ04sTUFHVCxlQUFnQixFQUFHLENBQ2pCLEdBQUksS0FBSyxRQUFRLGdCQUNmLEtBQUssV0FBYSxPQUVsQixRQUFPLEtBQUssV0FBVywwQkFBNEIsS0FBSyxTQUFXLEdBQUssbUlBQXFJLEtBQUssYUFBYSxFQUFHLENBQ2hPLEtBQU0sR0FDTixNQUFPLEtBQ1AsS0FBTSxLQUFLLFFBQ2IsQ0FBQyxFQUVILE9BQU8sTUFHVCxhQUFjLENBQUMsRUFBRyxDQUNoQixLQUFLLE1BQU0sS0FBSyxNQUFNLE1BQU0sQ0FBQyxDQUFDLEdBR2hDLGtCQUFtQixFQUFHLENBQ3BCLElBQUksRUFBTyxLQUFLLFFBQVEsT0FBTyxFQUFHLEtBQUssUUFBUSxPQUFTLEtBQUssTUFBTSxNQUFNLEVBQ3pFLE9BQVEsRUFBSyxPQUFTLEdBQUssTUFBUSxJQUFNLEVBQUssT0FBTyxHQUFHLEVBQUUsUUFBUSxNQUFPLEVBQUUsR0FHN0Usc0JBQXVCLEVBQUcsQ0FDeEIsSUFBSSxFQUFPLEtBQUssTUFDaEIsR0FBSSxFQUFLLE9BQVMsR0FDaEIsR0FBUSxLQUFLLE9BQU8sT0FBTyxFQUFHLEdBQUssRUFBSyxNQUFNLEVBRWhELE9BQVEsRUFBSyxPQUFPLEVBQUcsRUFBRSxHQUFLLEVBQUssT0FBUyxHQUFLLE1BQVEsS0FBSyxRQUFRLE1BQU8sRUFBRSxHQUdqRixxQkFBc0IsRUFBRyxDQUN2QixJQUFJLEVBQU0sS0FBSyxVQUFVLEVBQ3JCLEVBQUksSUFBSSxNQUFNLEVBQUksT0FBUyxDQUFDLEVBQUUsS0FBSyxHQUFHLEVBQzFDLE9BQU8sRUFBTSxLQUFLLGNBQWMsRUFBSSxLQUFPLEVBQUksS0FHakQsbUJBQW9CLENBQUMsRUFBTyxFQUFjLENBQ3hDLElBQUksRUFBTyxFQUFPLEVBQ2xCLEdBQUksS0FBSyxRQUFRLGlCQXFCZixHQXBCQSxFQUFTLENBQ1AsU0FBVSxLQUFLLFNBQ2YsT0FBUSxDQUNOLFdBQVksS0FBSyxPQUFPLFdBQ3hCLFVBQVcsS0FBSyxVQUNoQixhQUFjLEtBQUssT0FBTyxhQUMxQixZQUFhLEtBQUssT0FBTyxXQUMzQixFQUNBLE9BQVEsS0FBSyxPQUNiLE1BQU8sS0FBSyxNQUNaLFFBQVMsS0FBSyxRQUNkLFFBQVMsS0FBSyxRQUNkLE9BQVEsS0FBSyxPQUNiLE9BQVEsS0FBSyxPQUNiLE1BQU8sS0FBSyxNQUNaLE9BQVEsS0FBSyxPQUNiLEdBQUksS0FBSyxHQUNULGVBQWdCLEtBQUssZUFBZSxNQUFNLENBQUMsRUFDM0MsS0FBTSxLQUFLLElBQ2IsRUFDSSxLQUFLLFFBQVEsT0FDZixFQUFPLE9BQU8sTUFBUSxLQUFLLE9BQU8sTUFBTSxNQUFNLENBQUMsRUFJbkQsR0FEQSxFQUFRLEVBQU0sR0FBRyxNQUFNLGlCQUFpQixFQUNwQyxFQUNGLEtBQUssVUFBWSxFQUFNLE9BWXpCLEdBVkEsS0FBSyxPQUFTLENBQ1osV0FBWSxLQUFLLE9BQU8sVUFDeEIsVUFBVyxLQUFLLFNBQVcsRUFDM0IsYUFBYyxLQUFLLE9BQU8sWUFDMUIsWUFBYSxFQUFRLEVBQU0sRUFBTSxPQUFTLEdBQUcsT0FBUyxFQUFNLEVBQU0sT0FBUyxHQUFHLE1BQU0sUUFBUSxFQUFFLEdBQUcsT0FBUyxLQUFLLE9BQU8sWUFBYyxFQUFNLEdBQUcsTUFDL0ksRUFDQSxLQUFLLFFBQVUsRUFBTSxHQUNyQixLQUFLLE9BQVMsRUFBTSxHQUNwQixLQUFLLFFBQVUsRUFDZixLQUFLLE9BQVMsS0FBSyxPQUFPLE9BQ3RCLEtBQUssUUFBUSxPQUNmLEtBQUssT0FBTyxNQUFRLENBQUMsS0FBSyxPQUFRLEtBQUssUUFBVSxLQUFLLE1BQU0sRUFPOUQsR0FMQSxLQUFLLE1BQVEsR0FDYixLQUFLLFdBQWEsR0FDbEIsS0FBSyxPQUFTLEtBQUssT0FBTyxNQUFNLEVBQU0sR0FBRyxNQUFNLEVBQy9DLEtBQUssU0FBVyxFQUFNLEdBQ3RCLEVBQVEsS0FBSyxjQUFjLEtBQUssS0FBTSxLQUFLLEdBQUksS0FBTSxFQUFjLEtBQUssZUFBZSxLQUFLLGVBQWUsT0FBUyxFQUFFLEVBQ2xILEtBQUssTUFBUSxLQUFLLE9BQ3BCLEtBQUssS0FBTyxHQUVkLEdBQUksRUFDRixPQUFPLFVBQ0UsS0FBSyxXQUFZLENBQzFCLFFBQVMsS0FBSyxFQUNaLEtBQUssR0FBSyxFQUFPLEdBRW5CLE1BQU8sR0FFVCxNQUFPLElBR1QsYUFBYyxFQUFHLENBQ2YsR0FBSSxLQUFLLEtBQ1AsT0FBTyxLQUFLLElBRWQsSUFBSyxLQUFLLE9BQ1IsS0FBSyxLQUFPLEdBRWQsSUFBSSxFQUFPLEVBQU8sRUFBVyxFQUM3QixJQUFLLEtBQUssTUFDUixLQUFLLE9BQVMsR0FDZCxLQUFLLE1BQVEsR0FFZixJQUFJLEVBQVEsS0FBSyxjQUFjLEVBQy9CLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBTSxPQUFRLElBRWhDLEdBREEsRUFBWSxLQUFLLE9BQU8sTUFBTSxLQUFLLE1BQU0sRUFBTSxHQUFHLEVBQzlDLEtBQWUsR0FBUyxFQUFVLEdBQUcsT0FBUyxFQUFNLEdBQUcsU0FHekQsR0FGQSxFQUFRLEVBQ1IsRUFBUSxFQUNKLEtBQUssUUFBUSxnQkFFZixHQURBLEVBQVEsS0FBSyxXQUFXLEVBQVcsRUFBTSxFQUFFLEVBQ3ZDLElBQVUsR0FDWixPQUFPLFVBQ0UsS0FBSyxXQUFZLENBQzFCLEVBQVEsR0FDUixhQUVBLE9BQU8sWUFFQyxLQUFLLFFBQVEsS0FDdkIsTUFJTixHQUFJLEVBQU8sQ0FFVCxHQURBLEVBQVEsS0FBSyxXQUFXLEVBQU8sRUFBTSxFQUFNLEVBQ3ZDLElBQVUsR0FDWixPQUFPLEVBRVQsTUFBTyxHQUVULEdBQUksS0FBSyxTQUFXLEdBQ2xCLE9BQU8sS0FBSyxRQUVaLFFBQU8sS0FBSyxXQUFXLDBCQUE0QixLQUFLLFNBQVcsR0FBSyx5QkFBMkIsS0FBSyxhQUFhLEVBQUcsQ0FDdEgsS0FBTSxHQUNOLE1BQU8sS0FDUCxLQUFNLEtBQUssUUFDYixDQUFDLEdBSUwsYUFBYyxDQUFHLEVBQUcsQ0FDbEIsSUFBSSxFQUFJLEtBQUssS0FBSyxFQUNsQixHQUFJLEVBQ0YsT0FBTyxNQUVQLFFBQU8sS0FBSyxJQUFJLEdBSXBCLGVBQWdCLENBQUssQ0FBQyxFQUFXLENBQy9CLEtBQUssZUFBZSxLQUFLLENBQVMsR0FHcEMsa0JBQW1CLENBQVEsRUFBRyxDQUM1QixJQUFJLEVBQUksS0FBSyxlQUFlLE9BQVMsRUFDckMsR0FBSSxFQUFJLEVBQ04sT0FBTyxLQUFLLGVBQWUsSUFBSSxNQUUvQixRQUFPLEtBQUssZUFBZSxJQUkvQix1QkFBd0IsQ0FBYSxFQUFHLENBQ3RDLEdBQUksS0FBSyxlQUFlLFFBQVUsS0FBSyxlQUFlLEtBQUssZUFBZSxPQUFTLEdBQ2pGLE9BQU8sS0FBSyxXQUFXLEtBQUssZUFBZSxLQUFLLGVBQWUsT0FBUyxJQUFJLFVBRTVFLFFBQU8sS0FBSyxXQUFXLFFBQVcsT0FJdEMsa0JBQW1CLENBQVEsQ0FBQyxFQUFHLENBRTdCLEdBREEsRUFBSSxLQUFLLGVBQWUsT0FBUyxFQUFJLEtBQUssSUFBSSxHQUFLLENBQUMsRUFDaEQsR0FBSyxFQUNQLE9BQU8sS0FBSyxlQUFlLE9BRTNCLE9BQU8sV0FJWCxtQkFBb0IsQ0FBUyxDQUFDLEVBQVcsQ0FDdkMsS0FBSyxNQUFNLENBQVMsR0FHdEIsd0JBQXlCLENBQWMsRUFBRyxDQUN4QyxPQUFPLEtBQUssZUFBZSxRQUU3QixRQUFTLENBQUUsbUJBQW9CLEVBQUssRUFDcEMsdUJBQXdCLENBQVMsQ0FBQyxFQUFJLEVBQUssRUFBMkIsRUFBVSxDQUM5RSxPQUFRLE9BQ0QsR0FDSCxVQUNHLEdBQ0gsVUFDRyxHQUNILE1BQU8sUUFDSixHQUNILFVBQ0csR0FDSCxVQUNHLEdBRUgsT0FEQSxLQUFLLE1BQU0sT0FBTyxFQUNYLE9BQ0osR0FFSCxPQURBLEtBQUssU0FBUyxFQUNQLGtCQUNKLEdBRUgsT0FEQSxLQUFLLE1BQU0sV0FBVyxFQUNmLE9BQ0osR0FFSCxPQURBLEtBQUssU0FBUyxFQUNQLHNCQUNKLEdBRUgsT0FEQSxLQUFLLE1BQU0sV0FBVyxFQUNmLE9BQ0osSUFFSCxPQURBLEtBQUssU0FBUyxFQUNQLHNCQUNKLElBQ0gsS0FBSyxNQUFNLHFCQUFxQixFQUNoQyxVQUNHLElBQ0gsS0FBSyxTQUFTLEVBQ2QsVUFDRyxJQUNILE1BQU8sZ0NBQ0osSUFDSCxLQUFLLE1BQU0sUUFBUSxFQUNuQixVQUNHLElBQ0gsS0FBSyxTQUFTLEVBQ2QsVUFDRyxJQUNILE1BQU8sVUFDSixJQUNILE1BQU8sT0FDSixJQUNILE1BQU8sT0FDSixJQUNILE1BQU8sWUFDSixJQUNILE1BQU8sTUFHYixNQUFPLENBQUMsdUJBQXdCLHNCQUF1QixnQkFBaUIsaUJBQWtCLGNBQWUsZ0JBQWlCLHdCQUF5Qix3QkFBeUIsd0JBQXlCLHdCQUF5Qix3QkFBeUIseUJBQTBCLGFBQWMsZUFBZ0IsWUFBYSxZQUFhLGNBQWUsY0FBZSxtQkFBb0IsZ0NBQWlDLFNBQVMsRUFDcmEsV0FBWSxDQUFFLG9CQUF1QixDQUFFLE1BQVMsQ0FBQyxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxVQUFhLENBQUUsTUFBUyxDQUFDLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxVQUFhLENBQUUsTUFBUyxDQUFDLENBQUMsRUFBRyxVQUFhLEVBQU0sRUFBRyxNQUFTLENBQUUsTUFBUyxDQUFDLENBQUMsRUFBRyxVQUFhLEVBQU0sRUFBRyxPQUFVLENBQUUsTUFBUyxDQUFDLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLFFBQVcsQ0FBRSxNQUFTLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFLLENBQUUsQ0FDelgsRUFDQSxPQUFPLEdBQ1AsRUFDRixFQUFRLE1BQVEsRUFDaEIsU0FBUyxDQUFNLEVBQUcsQ0FDaEIsS0FBSyxHQUFLLENBQUMsRUFJYixPQUZBLEVBQU8sVUFBWSxFQUNuQixFQUFRLE9BQVMsRUFDVixJQUFJLEdBQ1gsRUFDRixJQUFPLE9BQVMsSUFDVixJQUFXLElBQ1gsSUFBcUIsR0FBYyxJQUNuQyxJQUFpQixDQUNyQixTQUFVLENBQUMsRUFDWCxTQUFVLEdBQ1YsT0FBUSxHQUNWLEVBQ0ksSUFBVyxJQUFlLFNBQzFCLElBQVcsSUFBZSxTQUN4QixJQUFTLGdCQUFnQixHQUFrQixFQXlCM0MsSUFBSyxDQUNULGNBQ0EsVUFDQSxtQkFDQSxtQkFDQSxlQUNBLGVBQ0EscUJBQ0EscUJBQ0EsZUFDQSxnQkFDQSxpQkFDQSxnQkFDQSxlQUNGLEVBOEJNLElBQVMsSUF3RlQsSUFBVyxDQUFFLFFBQUssRUFDbEIsSUFBVSxDQUNkLE9BQVEsSUFDUixPQUNBLGFBQ0EsVUFDRix5Q0MrVUEsU0FBUyxFQUFhLENBQUMsRUFBTSxDQUMzQixPQUFPLEdBQWEsRUFBSyxLQUFLLEVBQUcsR0FBTSxFQUd6QyxTQUFTLEdBQWdCLENBQUMsRUFBUyxDQUNqQyxHQUFnQixRQUFRLENBQUUsY0FBZSxHQUFjLEVBQVEsSUFBSSxDQUFFLENBQUMsRUFFeEUsU0FBUyxHQUFnQixDQUFDLEVBQVMsQ0FDakMsR0FBZ0IsUUFBUSxDQUFFLGNBQWUsR0FBYyxFQUFRLElBQUksQ0FBRSxDQUFDLEVBRXhFLFNBQVMsR0FBZ0IsQ0FBQyxFQUFTLENBQ2pDLEdBQWdCLFFBQVEsQ0FBRSxjQUFlLEdBQWMsRUFBUSxJQUFJLENBQUUsQ0FBQyxFQUV4RSxTQUFTLEdBQWdCLENBQUMsRUFBUyxDQUNqQyxHQUFnQixRQUFRLENBQUUsY0FBZSxHQUFjLEVBQVEsSUFBSSxDQUFFLENBQUMsRUFFeEUsU0FBUyxHQUFnQixDQUFDLEVBQVMsQ0FDakMsR0FBZ0IsUUFBUSxDQUFFLGNBQWUsR0FBYyxFQUFRLElBQUksQ0FBRSxDQUFDLEVBRXhFLFNBQVMsR0FBaUIsQ0FBQyxFQUFTLENBQ2xDLEdBQWdCLFFBQVEsQ0FBRSxlQUFnQixHQUFjLEVBQVEsSUFBSSxDQUFFLENBQUMsRUFFekUsU0FBUyxHQUFlLENBQUMsRUFBUyxDQUNoQyxHQUFnQixRQUFRLENBQUUsYUFBYyxHQUFjLEVBQVEsSUFBSSxDQUFFLENBQUMsRUFFdkUsU0FBUyxHQUFrQixDQUFDLEVBQVMsQ0FDbkMsR0FBZ0IsUUFBUSxDQUFFLGdCQUFpQixHQUFjLEVBQVEsSUFBSSxDQUFFLENBQUMsRUFFMUUsU0FBUyxHQUFRLENBQUMsRUFBUyxFQUFHLEVBQUcsQ0FDL0IsR0FBZ0IsVUFBVSxDQUFDLENBQUUsSUFBRyxJQUFHLEtBQU0sR0FBYyxFQUFRLElBQUksQ0FBRSxDQUFDLENBQUMsRUFFekUsU0FBUyxHQUFRLENBQUMsRUFBTyxDQUN2QixHQUFnQixVQUFVLENBQUUsV0FBWSxDQUFNLENBQUMsRUFFakQsU0FBUyxHQUFTLENBQUMsRUFBUSxDQUN6QixHQUFnQixVQUFVLENBQUUsWUFBYSxDQUFPLENBQUMsRUFFbkQsU0FBUyxHQUFlLEVBQUcsQ0FDekIsTUFBTSxFQUFVLEdBQVUsR0FDbEIsaUJBQWdCLGNBQWUsR0FBd0IsRUFDL0QsR0FBSSxFQUNGLEdBQWdCLFVBQVUsQ0FBbUIsRUFvQi9DLE9BbEJBLEdBQWdCLGVBQWUsQ0FDN0IsY0FBZSxFQUFlLGNBQzlCLGNBQWUsRUFBZSxjQUM5QixjQUFlLEVBQWUsY0FDOUIsY0FBZSxFQUFlLGNBQzlCLGtCQUFtQixFQUFlLGtCQUNsQyxrQkFBbUIsRUFBZSxrQkFDbEMsa0JBQW1CLEVBQWUsa0JBQ2xDLGtCQUFtQixFQUFlLGtCQUNsQyxrQkFBbUIsRUFBZSxrQkFDbEMsc0JBQXVCLEVBQWUsc0JBQ3RDLHNCQUF1QixFQUFlLHNCQUN0QyxzQkFBdUIsRUFBZSxzQkFDdEMsaUNBQWtDLEVBQWUsaUNBQ2pELGlDQUFrQyxFQUFlLGlDQUNqRCxrQkFBbUIsRUFBZSxpQkFDcEMsQ0FBQyxFQUNELEdBQWdCLFFBQVEsQ0FBRSxVQUFXLEdBQWdCLENBQUUsQ0FBQyxFQUNqRCxHQUFnQixNQUFNLEVBeGMvQixNQUFNLEdBQWdCLENBQ3BCLFdBQVcsRUFBRyxDQUNaLEtBQUssT0FBUyxLQUFLLGlCQUFpQixFQUNwQyxLQUFLLFlBQWMsS0FBSyxzQkFBc0IsRUFDOUMsS0FBSyxLQUFPLEtBQUssZUFBZSxFQUVsQyxjQUFjLEVBQUcsQ0FDZixNQUFPLENBQ0wsVUFBVyxHQUNYLGNBQWUsR0FDZixjQUFlLEdBQ2YsY0FBZSxHQUNmLGNBQWUsR0FDZixjQUFlLEdBQ2YsZUFBZ0IsR0FDaEIsZ0JBQWlCLEdBQ2pCLGFBQWMsR0FDZCxPQUFRLENBQUMsQ0FDWCxFQUVGLGdCQUFnQixFQUFHLENBQ2pCLElBQUksRUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQ3hFLE1BQU8sQ0FDTCxVQUFXLEdBQ1gsVUFBVyxHQUNYLFVBQVcsR0FDWCxjQUFlLEVBQUssR0FBYyxnQkFBa0IsS0FBWSxPQUFJLEVBQUcsYUFBZSxJQUN0RixhQUFjLEVBQUssR0FBYyxnQkFBa0IsS0FBWSxPQUFJLEVBQUcsY0FBZ0IsSUFDdEYsZUFBZ0IsRUFBSyxHQUFjLGdCQUFrQixLQUFZLE9BQUksRUFBRyxlQUFpQixHQUN6RixnQkFBaUIsRUFBSyxHQUFjLGdCQUFrQixLQUFZLE9BQUksRUFBRyxnQkFBa0IsR0FDM0Ysa0JBQW1CLEVBQUssR0FBYyxnQkFBa0IsS0FBWSxPQUFJLEVBQUcsa0JBQW9CLEVBQy9GLG9CQUFxQixFQUFLLEdBQWMsZ0JBQWtCLEtBQVksT0FBSSxFQUFHLG9CQUFzQixFQUNuRyxvQkFBcUIsRUFBSyxHQUFjLGdCQUFrQixLQUFZLE9BQUksRUFBRyxvQkFBc0IsRUFDbkcscUJBQXNCLEVBQUssR0FBYyxnQkFBa0IsS0FBWSxPQUFJLEVBQUcscUJBQXVCLEdBQ3JHLHFCQUFzQixFQUFLLEdBQWMsZ0JBQWtCLEtBQVksT0FBSSxFQUFHLHFCQUF1QixHQUNyRyx3QkFBeUIsRUFBSyxHQUFjLGdCQUFrQixLQUFZLE9BQUksRUFBRyx3QkFBMEIsR0FDM0cseUJBQTBCLEVBQUssR0FBYyxnQkFBa0IsS0FBWSxPQUFJLEVBQUcseUJBQTJCLEVBQzdHLG1CQUFvQixFQUFLLEdBQWMsZ0JBQWtCLEtBQVksT0FBSSxFQUFHLG1CQUFxQixFQUNqRyxxQkFBc0IsRUFBSyxHQUFjLGdCQUFrQixLQUFZLE9BQUksRUFBRyxxQkFBdUIsR0FDckcsY0FBZSxFQUFLLEdBQWMsZ0JBQWtCLEtBQVksT0FBSSxFQUFHLGNBQWdCLEVBQ3ZGLGdCQUFpQixFQUFLLEdBQWMsZ0JBQWtCLEtBQVksT0FBSSxFQUFHLGdCQUFrQixNQUMzRixnQkFBaUIsRUFBSyxHQUFjLGdCQUFrQixLQUFZLE9BQUksRUFBRyxnQkFBa0IsT0FDM0Ysb0NBQXFDLEVBQUssR0FBYyxnQkFBa0IsS0FBWSxPQUFJLEVBQUcsb0NBQXNDLEVBQ25JLG9DQUFxQyxFQUFLLEdBQWMsZ0JBQWtCLEtBQVksT0FBSSxFQUFHLG9DQUFzQyxDQUNySSxFQUVGLHFCQUFxQixFQUFHLENBQ3RCLE1BQU8sQ0FDTCxjQUFlLEdBQXNCLGNBQ3JDLGNBQWUsR0FBc0IsY0FDckMsY0FBZSxHQUFzQixjQUNyQyxjQUFlLEdBQXNCLGNBQ3JDLGtCQUFtQixHQUFzQixrQkFDekMsa0JBQW1CLEdBQXNCLGtCQUN6QyxrQkFBbUIsR0FBc0Isa0JBQ3pDLGtCQUFtQixHQUFzQixrQkFDekMsa0JBQW1CLEdBQXNCLGtCQUN6QyxzQkFBdUIsR0FBc0Isc0JBQzdDLHNCQUF1QixHQUFzQixzQkFDN0Msc0JBQXVCLEdBQXNCLHNCQUM3QyxrQkFBbUIsR0FBc0Isa0JBQ3pDLGlDQUFrQyxHQUFzQixpQ0FDeEQsaUNBQWtDLEdBQXNCLGdDQUMxRCxFQUVGLEtBQUssRUFBRyxDQUNOLEtBQUssT0FBUyxLQUFLLGlCQUFpQixFQUNwQyxLQUFLLFlBQWMsS0FBSyxzQkFBc0IsRUFDOUMsS0FBSyxLQUFPLEtBQUssZUFBZSxFQUNoQyxHQUFJLEtBQUssY0FBYyxFQUV6QixPQUFPLENBQUMsRUFBTSxDQUNaLEtBQUssS0FBTyxJQUFLLEtBQUssUUFBUyxDQUFLLEVBRXRDLFNBQVMsQ0FBQyxFQUFRLENBQ2hCLEtBQUssS0FBSyxPQUFTLENBQUMsR0FBRyxFQUFRLEdBQUcsS0FBSyxLQUFLLE1BQU0sRUFFcEQsU0FBUyxDQUFDLEVBQVMsQ0FDakIsR0FBSSxNQUFNLDBCQUEyQixDQUFPLEVBQzVDLEtBQUssT0FBUyxJQUFLLEtBQUssVUFBVyxDQUFRLEVBRTdDLGNBQWMsQ0FBQyxFQUFhLENBQzFCLEdBQUksTUFBTSwrQkFBZ0MsQ0FBVyxFQUNyRCxLQUFLLFlBQWMsSUFBSyxLQUFLLGVBQWdCLENBQVksRUFFM0QsY0FBYyxDQUFDLEVBQWUsRUFBVyxFQUFXLEVBQVcsQ0FDN0QsTUFBTSxFQUF3QixLQUFLLE9BQU8sa0JBQW9CLEVBQUksS0FBSyxPQUFPLG1CQUN4RSxFQUFhLENBQ2pCLElBQUssSUFBa0IsT0FBUyxFQUFZLEVBQXdCLEVBQ3BFLE9BQVEsSUFBa0IsVUFBWSxFQUFZLEVBQXdCLENBQzVFLEVBQ00sRUFBd0IsS0FBSyxPQUFPLGtCQUFvQixFQUFJLEtBQUssT0FBTyxtQkFDeEUsRUFBYSxDQUNqQixLQUFNLEtBQUssT0FBTyxnQkFBa0IsUUFBVSxFQUFZLEVBQXdCLEVBQ2xGLE1BQU8sS0FBSyxPQUFPLGdCQUFrQixTQUFXLEVBQVksRUFBd0IsQ0FDdEYsRUFDTSxFQUF3QixLQUFLLE9BQU8sY0FBZ0IsS0FBSyxPQUFPLGFBQWUsRUFDL0UsRUFBYSxDQUNqQixJQUFLLEVBQVksRUFBd0IsQ0FDM0MsRUFDTSxFQUFlLEtBQUssT0FBTyxnQkFBa0IsRUFBVyxLQUN4RCxFQUFjLEtBQUssT0FBTyxnQkFBa0IsRUFBVyxJQUFNLEVBQVcsSUFDeEUsRUFBZ0IsS0FBSyxPQUFPLFdBQWEsS0FBSyxPQUFPLGdCQUFrQixFQUFJLEVBQVcsS0FBTyxFQUFXLE1BQ3hHLEVBQWlCLEtBQUssT0FBTyxZQUFjLEtBQUssT0FBTyxnQkFBa0IsRUFBSSxFQUFXLElBQU0sRUFBVyxPQUFTLEVBQVcsSUFDN0gsRUFBb0IsRUFBZ0IsRUFDcEMsRUFBcUIsRUFBaUIsRUFTNUMsTUFBTyxDQUNMLGFBQ0EsYUFDQSxhQUNBLGNBWm9CLENBQ3BCLGVBQ0EsY0FDQSxnQkFDQSxvQkFDQSxpQkFDQSxvQkFDRixDQU1BLEVBRUYsYUFBYSxDQUFDLEVBQWUsRUFBVyxFQUFXLEVBQVcsQ0FDNUQsTUFBUSxnQkFBZSxjQUFlLEdBRXBDLHFCQUNBLGlCQUNBLGVBQ0Esb0JBQ0EsY0FDQSxpQkFDRSxFQUNFLEVBQTBCLFFBQVEsS0FBSyxLQUFLLGNBQWMsRUFDMUQsRUFBMEIsUUFBUSxLQUFLLEtBQUssWUFBWSxFQUN4RCxFQUFhLENBQUMsRUFDcEIsR0FBSSxLQUFLLEtBQUssZUFBaUIsRUFDN0IsRUFBVyxLQUFLLENBQ2QsS0FBTSxLQUFLLEtBQUssY0FDaEIsS0FBTSxLQUFLLFlBQVksc0JBQ3ZCLEVBQUcsR0FBZ0IsRUFBMEIsRUFBb0IsRUFBSSxHQUNyRSxFQUFHLElBQWtCLE1BQVEsS0FBSyxPQUFPLGtCQUFvQixFQUFXLElBQU0sS0FBSyxPQUFPLGtCQUFvQixFQUFjLEVBQWlCLEtBQUssT0FBTyxnQkFDekosU0FBVSxLQUFLLE9BQU8sbUJBQ3RCLFlBQWEsRUFBMEIsU0FBVyxPQUNsRCxjQUFlLE1BQ2YsU0FBVSxDQUNaLENBQUMsRUFFSCxHQUFJLEtBQUssS0FBSyxnQkFBa0IsRUFDOUIsRUFBVyxLQUFLLENBQ2QsS0FBTSxLQUFLLEtBQUssZUFDaEIsS0FBTSxLQUFLLFlBQVksc0JBQ3ZCLEVBQUcsRUFBZSxHQUFxQixFQUEwQixFQUFvQixFQUFJLEdBQ3pGLEVBQUcsSUFBa0IsTUFBUSxLQUFLLE9BQU8sa0JBQW9CLEVBQVcsSUFBTSxLQUFLLE9BQU8sa0JBQW9CLEVBQWMsRUFBaUIsS0FBSyxPQUFPLGdCQUN6SixTQUFVLEtBQUssT0FBTyxtQkFDdEIsWUFBYSxFQUEwQixTQUFXLE9BQ2xELGNBQWUsTUFDZixTQUFVLENBQ1osQ0FBQyxFQUVILEdBQUksS0FBSyxLQUFLLGlCQUFtQixFQUMvQixFQUFXLEtBQUssQ0FDZCxLQUFNLEtBQUssS0FBSyxnQkFDaEIsS0FBTSxLQUFLLFlBQVksc0JBQ3ZCLEVBQUcsS0FBSyxPQUFPLGdCQUFrQixPQUFTLEtBQUssT0FBTyxrQkFBb0IsS0FBSyxPQUFPLGtCQUFvQixFQUFlLEVBQWdCLEtBQUssT0FBTyxnQkFDckosRUFBRyxFQUFjLEdBQWtCLEVBQTBCLEVBQXFCLEVBQUksR0FDdEYsU0FBVSxLQUFLLE9BQU8sbUJBQ3RCLFlBQWEsRUFBMEIsU0FBVyxPQUNsRCxjQUFlLE1BQ2YsU0FBVSxHQUNaLENBQUMsRUFFSCxHQUFJLEtBQUssS0FBSyxjQUFnQixFQUM1QixFQUFXLEtBQUssQ0FDZCxLQUFNLEtBQUssS0FBSyxhQUNoQixLQUFNLEtBQUssWUFBWSxzQkFDdkIsRUFBRyxLQUFLLE9BQU8sZ0JBQWtCLE9BQVMsS0FBSyxPQUFPLGtCQUFvQixLQUFLLE9BQU8sa0JBQW9CLEVBQWUsRUFBZ0IsS0FBSyxPQUFPLGdCQUNySixFQUFHLEVBQWMsR0FBc0IsRUFBMEIsRUFBcUIsRUFBSSxHQUMxRixTQUFVLEtBQUssT0FBTyxtQkFDdEIsWUFBYSxFQUEwQixTQUFXLE9BQ2xELGNBQWUsTUFDZixTQUFVLEdBQ1osQ0FBQyxFQUVILE9BQU8sRUFFVCxZQUFZLENBQUMsRUFBVyxDQUN0QixNQUFRLGlCQUFrQixHQUNsQixxQkFBb0IsZUFBYyxvQkFBbUIsZUFBZ0IsRUFDdkUsRUFBWSxDQUNoQixDQUNFLEtBQU0sQ0FDSixLQUFNLEtBQUssS0FBSyxjQUNoQixLQUFNLEtBQUssWUFBWSxrQkFDdkIsRUFBRyxFQUNILEVBQUcsRUFDSCxTQUFVLEtBQUssT0FBTyxzQkFDdEIsWUFBYSxTQUNiLGNBQWUsU0FDZixTQUFVLENBQ1osRUFDQSxFQUFHLEVBQWUsRUFDbEIsRUFBRyxFQUNILE1BQU8sRUFDUCxPQUFRLEVBQ1IsS0FBTSxLQUFLLFlBQVksYUFDekIsRUFDQSxDQUNFLEtBQU0sQ0FDSixLQUFNLEtBQUssS0FBSyxjQUNoQixLQUFNLEtBQUssWUFBWSxrQkFDdkIsRUFBRyxFQUNILEVBQUcsRUFDSCxTQUFVLEtBQUssT0FBTyxzQkFDdEIsWUFBYSxTQUNiLGNBQWUsU0FDZixTQUFVLENBQ1osRUFDQSxFQUFHLEVBQ0gsRUFBRyxFQUNILE1BQU8sRUFDUCxPQUFRLEVBQ1IsS0FBTSxLQUFLLFlBQVksYUFDekIsRUFDQSxDQUNFLEtBQU0sQ0FDSixLQUFNLEtBQUssS0FBSyxjQUNoQixLQUFNLEtBQUssWUFBWSxrQkFDdkIsRUFBRyxFQUNILEVBQUcsRUFDSCxTQUFVLEtBQUssT0FBTyxzQkFDdEIsWUFBYSxTQUNiLGNBQWUsU0FDZixTQUFVLENBQ1osRUFDQSxFQUFHLEVBQ0gsRUFBRyxFQUFjLEVBQ2pCLE1BQU8sRUFDUCxPQUFRLEVBQ1IsS0FBTSxLQUFLLFlBQVksYUFDekIsRUFDQSxDQUNFLEtBQU0sQ0FDSixLQUFNLEtBQUssS0FBSyxjQUNoQixLQUFNLEtBQUssWUFBWSxrQkFDdkIsRUFBRyxFQUNILEVBQUcsRUFDSCxTQUFVLEtBQUssT0FBTyxzQkFDdEIsWUFBYSxTQUNiLGNBQWUsU0FDZixTQUFVLENBQ1osRUFDQSxFQUFHLEVBQWUsRUFDbEIsRUFBRyxFQUFjLEVBQ2pCLE1BQU8sRUFDUCxPQUFRLEVBQ1IsS0FBTSxLQUFLLFlBQVksYUFDekIsQ0FDRixFQUNBLFFBQVcsS0FBWSxFQUVyQixHQURBLEVBQVMsS0FBSyxFQUFJLEVBQVMsRUFBSSxFQUFTLE1BQVEsRUFDNUMsS0FBSyxLQUFLLE9BQU8sU0FBVyxFQUM5QixFQUFTLEtBQUssRUFBSSxFQUFTLEVBQUksRUFBUyxPQUFTLEVBQ2pELEVBQVMsS0FBSyxjQUFnQixhQUU5QixHQUFTLEtBQUssRUFBSSxFQUFTLEVBQUksS0FBSyxPQUFPLHVCQUMzQyxFQUFTLEtBQUssY0FBZ0IsTUFHbEMsT0FBTyxFQUVULGlCQUFpQixDQUFDLEVBQVcsQ0FDM0IsTUFBUSxpQkFBa0IsR0FDbEIsaUJBQWdCLGVBQWMsY0FBYSxpQkFBa0IsRUFDL0QsRUFBUSxHQUFZLEVBQUUsT0FBTyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQWMsRUFBZ0IsQ0FBWSxDQUFDLEVBQ3ZGLEVBQVEsR0FBWSxFQUFFLE9BQU8sQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFpQixFQUFhLENBQVcsQ0FBQyxFQW9CNUYsT0FuQmUsS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQVUsQ0FpQjdDLE1BaEJjLENBQ1osRUFBRyxFQUFNLEVBQU0sQ0FBQyxFQUNoQixFQUFHLEVBQU0sRUFBTSxDQUFDLEVBQ2hCLEtBQU0sS0FBSyxZQUFZLGtCQUN2QixPQUFRLEtBQUssT0FBTyxZQUNwQixLQUFNLENBQ0osS0FBTSxFQUFNLEtBQ1osS0FBTSxLQUFLLFlBQVksc0JBQ3ZCLEVBQUcsRUFBTSxFQUFNLENBQUMsRUFDaEIsRUFBRyxFQUFNLEVBQU0sQ0FBQyxFQUFJLEtBQUssT0FBTyxpQkFDaEMsWUFBYSxTQUNiLGNBQWUsTUFDZixTQUFVLEtBQUssT0FBTyxtQkFDdEIsU0FBVSxDQUNaLENBQ0YsRUFFRCxFQUdILFVBQVUsQ0FBQyxFQUFXLENBQ3BCLE1BQU0sRUFBMEIsS0FBSyxPQUFPLGtDQUFvQyxHQUN4RSxpQkFBa0IsR0FFeEIscUJBQ0EsaUJBQ0EsZUFDQSxvQkFDQSxjQUNBLGlCQUNFLEVBeURKLE1BeERvQixDQUVsQixDQUNFLFdBQVksS0FBSyxZQUFZLGlDQUM3QixZQUFhLEtBQUssT0FBTyxrQ0FDekIsR0FBSSxFQUFlLEVBQ25CLEdBQUksRUFDSixHQUFJLEVBQWUsRUFBZ0IsRUFDbkMsR0FBSSxDQUNOLEVBRUEsQ0FDRSxXQUFZLEtBQUssWUFBWSxpQ0FDN0IsWUFBYSxLQUFLLE9BQU8sa0NBQ3pCLEdBQUksRUFBZSxFQUNuQixHQUFJLEVBQWMsRUFDbEIsR0FBSSxFQUFlLEVBQ25CLEdBQUksRUFBYyxFQUFpQixDQUNyQyxFQUVBLENBQ0UsV0FBWSxLQUFLLFlBQVksaUNBQzdCLFlBQWEsS0FBSyxPQUFPLGtDQUN6QixHQUFJLEVBQWUsRUFDbkIsR0FBSSxFQUFjLEVBQ2xCLEdBQUksRUFBZSxFQUFnQixFQUNuQyxHQUFJLEVBQWMsQ0FDcEIsRUFFQSxDQUNFLFdBQVksS0FBSyxZQUFZLGlDQUM3QixZQUFhLEtBQUssT0FBTyxrQ0FDekIsR0FBSSxFQUNKLEdBQUksRUFBYyxFQUNsQixHQUFJLEVBQ0osR0FBSSxFQUFjLEVBQWlCLENBQ3JDLEVBRUEsQ0FDRSxXQUFZLEtBQUssWUFBWSxpQ0FDN0IsWUFBYSxLQUFLLE9BQU8sa0NBQ3pCLEdBQUksRUFBZSxFQUNuQixHQUFJLEVBQWMsRUFDbEIsR0FBSSxFQUFlLEVBQ25CLEdBQUksRUFBYyxFQUFpQixDQUNyQyxFQUVBLENBQ0UsV0FBWSxLQUFLLFlBQVksaUNBQzdCLFlBQWEsS0FBSyxPQUFPLGtDQUN6QixHQUFJLEVBQWUsRUFDbkIsR0FBSSxFQUFjLEVBQ2xCLEdBQUksRUFBZSxFQUFnQixFQUNuQyxHQUFJLEVBQWMsQ0FDcEIsQ0FDRixFQUdGLFFBQVEsQ0FBQyxFQUFXLENBQ2xCLEdBQUksRUFDRixNQUFPLENBQ0wsS0FBTSxLQUFLLEtBQUssVUFDaEIsS0FBTSxLQUFLLFlBQVksa0JBQ3ZCLFNBQVUsS0FBSyxPQUFPLGNBQ3RCLGNBQWUsTUFDZixZQUFhLFNBQ2IsU0FBVSxFQUNWLEVBQUcsS0FBSyxPQUFPLGFBQ2YsRUFBRyxLQUFLLE9BQU8sV0FBYSxDQUM5QixFQUVGLE9BRUYsS0FBSyxFQUFHLENBQ04sTUFBTSxFQUFZLEtBQUssT0FBTyxjQUFnQixLQUFLLEtBQUssZUFBaUIsS0FBSyxLQUFLLGdCQUM3RSxFQUFZLEtBQUssT0FBTyxjQUFnQixLQUFLLEtBQUssY0FBZ0IsS0FBSyxLQUFLLGlCQUM1RSxFQUFZLEtBQUssT0FBTyxhQUFlLEtBQUssS0FBSyxVQUNqRCxFQUFnQixLQUFLLEtBQUssT0FBTyxPQUFTLEVBQUksU0FBVyxLQUFLLE9BQU8sY0FDckUsRUFBa0IsS0FBSyxlQUFlLEVBQWUsRUFBVyxFQUFXLENBQVMsRUFDMUYsTUFBTyxDQUNMLE9BQVEsS0FBSyxrQkFBa0IsQ0FBZSxFQUM5QyxVQUFXLEtBQUssYUFBYSxDQUFlLEVBQzVDLFdBQVksS0FBSyxjQUFjLEVBQWUsRUFBVyxFQUFXLENBQWUsRUFDbkYsWUFBYSxLQUFLLFdBQVcsQ0FBZSxFQUM1QyxNQUFPLEtBQUssU0FBUyxDQUFTLENBQ2hDLEVBRUosS0F4aENBLElBQ0EsSUFDQSxJQU1JLElBcW9CRSxJQUNBLEdBMllBLElBSUEsR0E0REEsWUFBZ0IsRUFBRyxDQUN2QixHQUFnQixNQUFNLEVBQ3RCLEdBQVEsR0FFSixJQXFCQSxJQUFPLENBQUMsRUFBSyxFQUFJLEVBQVUsSUFBWSxDQUMzQyxJQUFJLEVBQUksRUFBSSxFQUNaLFNBQVMsQ0FBbUIsQ0FBQyxFQUFlLENBQzFDLE9BQU8sSUFBa0IsTUFBUSxVQUFZLFNBRS9DLFNBQVMsQ0FBYSxDQUFDLEVBQWEsQ0FDbEMsT0FBTyxJQUFnQixPQUFTLFFBQVUsU0FFNUMsU0FBUyxDQUFpQixDQUFDLEVBQU0sQ0FDL0IsTUFBTyxhQUFhLEVBQUssTUFBTSxFQUFLLGFBQWEsRUFBSyxVQUFZLEtBRXBFLE1BQU0sRUFBTyxHQUFVLEVBQ3ZCLEdBQUksTUFBTSw2QkFBK0IsQ0FBRyxFQUM1QyxNQUFNLEVBQWdCLEVBQUssY0FDM0IsSUFBSSxFQUNKLEdBQUksSUFBa0IsVUFDcEIsRUFBaUIsR0FBTyxLQUFPLENBQUUsRUFHbkMsTUFBTSxHQURPLElBQWtCLFVBQVksR0FBTyxFQUFlLE1BQU0sRUFBRSxHQUFHLGdCQUFnQixJQUFJLEVBQUksR0FBTyxNQUFNLEdBQ2hHLE9BQU8sUUFBUSxLQUFNLEVBQ2hDLEVBQVEsRUFBSSxPQUFPLEdBQUcsRUFBRSxLQUFLLFFBQVMsTUFBTSxFQUM1QyxJQUFVLEVBQUssRUFBSyxnQkFBa0IsS0FBWSxPQUFJLEVBQUcsYUFBZSxJQUN4RSxJQUFXLEVBQUssRUFBSyxnQkFBa0IsS0FBWSxPQUFJLEVBQUcsY0FBZ0IsSUFDaEYsR0FBaUIsRUFBSyxFQUFRLElBQVMsRUFBSyxFQUFLLGdCQUFrQixLQUFZLE9BQUksRUFBRyxjQUFnQixFQUFJLEVBQzFHLEVBQUksS0FBSyxVQUFXLE9BQVMsRUFBUSxJQUFNLENBQU0sRUFDakQsRUFBUSxHQUFHLFVBQVUsQ0FBTSxFQUMzQixFQUFRLEdBQUcsU0FBUyxDQUFLLEVBQ3pCLE1BQU0sRUFBZSxFQUFRLEdBQUcsZ0JBQWdCLEVBQzFDLEVBQWlCLEVBQU0sT0FBTyxHQUFHLEVBQUUsS0FBSyxRQUFTLFdBQVcsRUFDNUQsRUFBYyxFQUFNLE9BQU8sR0FBRyxFQUFFLEtBQUssUUFBUyxRQUFRLEVBQ3RELEVBQWlCLEVBQU0sT0FBTyxHQUFHLEVBQUUsS0FBSyxRQUFTLGFBQWEsRUFDOUQsRUFBYSxFQUFNLE9BQU8sR0FBRyxFQUFFLEtBQUssUUFBUyxRQUFRLEVBQ3JELEVBQWEsRUFBTSxPQUFPLEdBQUcsRUFBRSxLQUFLLFFBQVMsT0FBTyxFQUMxRCxHQUFJLEVBQWEsTUFDZixFQUFXLE9BQU8sTUFBTSxFQUFFLEtBQUssSUFBSyxDQUFDLEVBQUUsS0FBSyxJQUFLLENBQUMsRUFBRSxLQUFLLE9BQVEsRUFBYSxNQUFNLElBQUksRUFBRSxLQUFLLFlBQWEsRUFBYSxNQUFNLFFBQVEsRUFBRSxLQUFLLG9CQUFxQixFQUFvQixFQUFhLE1BQU0sYUFBYSxDQUFDLEVBQUUsS0FBSyxjQUFlLEVBQWMsRUFBYSxNQUFNLFdBQVcsQ0FBQyxFQUFFLEtBQUssWUFBYSxFQUFrQixFQUFhLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBYSxNQUFNLElBQUksRUFFcFgsR0FBSSxFQUFhLFlBQ2YsRUFBWSxVQUFVLE1BQU0sRUFBRSxLQUFLLEVBQWEsV0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLE1BQU0sRUFBRSxLQUFLLEtBQU0sQ0FBQyxJQUFTLEVBQUssRUFBRSxFQUFFLEtBQUssS0FBTSxDQUFDLElBQVMsRUFBSyxFQUFFLEVBQUUsS0FBSyxLQUFNLENBQUMsSUFBUyxFQUFLLEVBQUUsRUFBRSxLQUFLLEtBQU0sQ0FBQyxJQUFTLEVBQUssRUFBRSxFQUFFLE1BQU0sU0FBVSxDQUFDLElBQVMsRUFBSyxVQUFVLEVBQUUsTUFBTSxlQUFnQixDQUFDLElBQVMsRUFBSyxXQUFXLEVBRXpTLE1BQU0sRUFBWSxFQUFlLFVBQVUsWUFBWSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sR0FBRyxFQUFFLEtBQUssUUFBUyxVQUFVLEVBQ2xJLEVBQVUsT0FBTyxNQUFNLEVBQUUsS0FBSyxJQUFLLENBQUMsSUFBUyxFQUFLLENBQUMsRUFBRSxLQUFLLElBQUssQ0FBQyxJQUFTLEVBQUssQ0FBQyxFQUFFLEtBQUssUUFBUyxDQUFDLElBQVMsRUFBSyxLQUFLLEVBQUUsS0FBSyxTQUFVLENBQUMsSUFBUyxFQUFLLE1BQU0sRUFBRSxLQUFLLE9BQVEsQ0FBQyxJQUFTLEVBQUssSUFBSSxFQUMzTCxFQUFVLE9BQU8sTUFBTSxFQUFFLEtBQUssSUFBSyxDQUFDLEVBQUUsS0FBSyxJQUFLLENBQUMsRUFBRSxLQUFLLE9BQVEsQ0FBQyxJQUFTLEVBQUssS0FBSyxJQUFJLEVBQUUsS0FBSyxZQUFhLENBQUMsSUFBUyxFQUFLLEtBQUssUUFBUSxFQUFFLEtBQ3hJLG9CQUNBLENBQUMsSUFBUyxFQUFvQixFQUFLLEtBQUssYUFBYSxDQUN2RCxFQUFFLEtBQUssY0FBZSxDQUFDLElBQVMsRUFBYyxFQUFLLEtBQUssV0FBVyxDQUFDLEVBQUUsS0FBSyxZQUFhLENBQUMsSUFBUyxFQUFrQixFQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFTLEVBQUssS0FBSyxJQUFJLEVBQzlJLEVBQVcsVUFBVSxTQUFTLEVBQUUsS0FBSyxFQUFhLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxHQUFHLEVBQUUsS0FBSyxRQUFTLE9BQU8sRUFDL0csT0FBTyxNQUFNLEVBQUUsS0FBSyxJQUFLLENBQUMsRUFBRSxLQUFLLElBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFTLEVBQUssSUFBSSxFQUFFLEtBQUssT0FBUSxDQUFDLElBQVMsRUFBSyxJQUFJLEVBQUUsS0FBSyxZQUFhLENBQUMsSUFBUyxFQUFLLFFBQVEsRUFBRSxLQUFLLG9CQUFxQixDQUFDLElBQVMsRUFBb0IsRUFBSyxhQUFhLENBQUMsRUFBRSxLQUFLLGNBQWUsQ0FBQyxJQUFTLEVBQWMsRUFBSyxXQUFXLENBQUMsRUFBRSxLQUFLLFlBQWEsQ0FBQyxJQUFTLEVBQWtCLENBQUksQ0FBQyxFQUN0VixNQUFNLEVBQWEsRUFBZSxVQUFVLGNBQWMsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEdBQUcsRUFBRSxLQUFLLFFBQVMsWUFBWSxFQUNwSSxFQUFXLE9BQU8sUUFBUSxFQUFFLEtBQUssS0FBTSxDQUFDLElBQVMsRUFBSyxDQUFDLEVBQUUsS0FBSyxLQUFNLENBQUMsSUFBUyxFQUFLLENBQUMsRUFBRSxLQUFLLElBQUssQ0FBQyxJQUFTLEVBQUssTUFBTSxFQUFFLEtBQUssT0FBUSxDQUFDLElBQVMsRUFBSyxJQUFJLEVBQ3ZKLEVBQVcsT0FBTyxNQUFNLEVBQUUsS0FBSyxJQUFLLENBQUMsRUFBRSxLQUFLLElBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFTLEVBQUssS0FBSyxJQUFJLEVBQUUsS0FBSyxPQUFRLENBQUMsSUFBUyxFQUFLLEtBQUssSUFBSSxFQUFFLEtBQUssWUFBYSxDQUFDLElBQVMsRUFBSyxLQUFLLFFBQVEsRUFBRSxLQUN4SyxvQkFDQSxDQUFDLElBQVMsRUFBb0IsRUFBSyxLQUFLLGFBQWEsQ0FDdkQsRUFBRSxLQUFLLGNBQWUsQ0FBQyxJQUFTLEVBQWMsRUFBSyxLQUFLLFdBQVcsQ0FBQyxFQUFFLEtBQUssWUFBYSxDQUFDLElBQVMsRUFBa0IsRUFBSyxJQUFJLENBQUMsR0FFMUgsSUFHQSxvQkE5cUNOLEtBQ0EsS0FDQSxLQUNBLGVBQ0EsZUFDQSxlQU1JLFlBQWlCLEVBQUcsQ0FDdEIsSUFBSSxVQUFZLENBQUMsR0FBRyxHQUFHLEdBQUksR0FBRyxDQUM1QixJQUFLLEdBQUssSUFBTSxDQUFDLEVBQUcsR0FBSSxHQUFFLE9BQVEsS0FBSyxHQUFHLEdBQUUsS0FBTSxJQUVsRCxPQUFPLElBQ04sRUFBTSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQU0sQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFNLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBTSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQU0sQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBTSxDQUFDLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUMvekIsR0FBVSxDQUNaLGVBQWdCLEVBQUssRUFBRyxHQUV4QixHQUFJLENBQUMsRUFDTCxTQUFVLENBQUUsTUFBUyxFQUFHLE1BQVMsRUFBRyxJQUFPLEVBQUcsTUFBUyxFQUFHLFNBQVksRUFBRyxTQUFZLEVBQUcsS0FBUSxFQUFHLFVBQWEsRUFBRyxZQUFlLEdBQUksZ0JBQW1CLEdBQUksT0FBVSxHQUFJLE1BQVMsR0FBSSxZQUFlLEdBQUksVUFBYSxHQUFJLGdCQUFtQixHQUFJLFVBQWEsR0FBSSxnQkFBbUIsR0FBSSwwQkFBNkIsR0FBSSxRQUFXLEdBQUksS0FBUSxHQUFJLFlBQWUsR0FBSSxRQUFXLEdBQUksUUFBVyxHQUFJLFNBQVUsR0FBSSxzQkFBdUIsR0FBSSxTQUFVLEdBQUksV0FBYyxHQUFJLFdBQWMsR0FBSSxXQUFjLEdBQUksV0FBYyxHQUFJLFFBQVcsR0FBSSxLQUFRLEdBQUksSUFBTyxHQUFJLGNBQWlCLEdBQUksZ0JBQW1CLEdBQUksSUFBTyxHQUFJLE9BQVUsR0FBSSxTQUFZLEdBQUksWUFBZSxHQUFJLElBQU8sR0FBSSxJQUFPLEdBQUksTUFBUyxHQUFJLE1BQVMsR0FBSSxLQUFRLEdBQUksT0FBVSxHQUFJLEtBQVEsR0FBSSxJQUFPLEdBQUksS0FBUSxHQUFJLFdBQWMsR0FBSSxNQUFTLEdBQUksUUFBVyxFQUFHLEtBQVEsQ0FBRSxFQUN6ekIsV0FBWSxDQUFFLEVBQUcsUUFBUyxFQUFHLFFBQVMsRUFBRyxXQUFZLEdBQUksUUFBUyxHQUFJLGNBQWUsR0FBSSxZQUFhLEdBQUksa0JBQW1CLEdBQUksWUFBYSxHQUFJLGtCQUFtQixHQUFJLDRCQUE2QixHQUFJLFVBQVcsR0FBSSxjQUFlLEdBQUksVUFBVyxHQUFJLFVBQVcsR0FBSSxTQUFVLEdBQUksc0JBQXVCLEdBQUksU0FBVSxHQUFJLGFBQWMsR0FBSSxhQUFjLEdBQUksYUFBYyxHQUFJLGFBQWMsR0FBSSxVQUFXLEdBQUksT0FBUSxHQUFJLE1BQU8sR0FBSSxNQUFPLEdBQUksU0FBVSxHQUFJLGNBQWUsR0FBSSxNQUFPLEdBQUksTUFBTyxHQUFJLFFBQVMsR0FBSSxRQUFTLEdBQUksT0FBUSxHQUFJLFNBQVUsR0FBSSxPQUFRLEdBQUksTUFBTyxHQUFJLE9BQVEsR0FBSSxhQUFjLEdBQUksT0FBUSxFQUNsbUIsYUFBYyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FB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QUksRUFBRyxDQUFFLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUUsRUFBRyxFQUFHLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsRUFBRSxFQUFLLEVBQUssQ0FBRSxFQUFHLEdBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksQ0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxDQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxFQUFLLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxDQUFJLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxFQUFHLEdBQUssR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSyxHQUFJLEVBQUksRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLEdBQUssR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUssR0FBSSxFQUFJLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxHQUFLLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFLLEdBQUksRUFBSSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsR0FBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFLLEdBQUksRUFBSSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsR0FBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFLLEdBQUksRUFBSSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsR0FBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFLLEdBQUksRUFBSSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsR0FBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFLLEdBQUksRUFBSSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLENBQUksQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLENBQUksQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsR0FBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFLLEdBQUksRUFBSSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsR0FBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFLLEdB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LEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQ25wQixFQUFVLENBQ1osZUFBZ0IsRUFBSyxFQUFHLEdBRXhCLEdBQUksQ0FBQyxFQUNMLFNBQVUsQ0FBRSxNQUFTLEVBQUcsTUFBUyxFQUFHLElBQU8sRUFBRyxRQUFXLEVBQUcsWUFBZSxFQUFHLFNBQVksRUFBRyxrQkFBcUIsRUFBRyxVQUFhLEVBQUcsTUFBUyxHQUFJLEtBQVEsR0FBSSxPQUFVLEdBQUksV0FBYyxHQUFJLE9BQVUsR0FBSSxXQUFjLEdBQUksS0FBUSxHQUFJLFNBQVksR0FBSSxJQUFPLEdBQUksVUFBYSxHQUFJLGdCQUFtQixHQUFJLFVBQWEsR0FBSSxnQkFBbUIsR0FBSSwwQkFBNkIsR0FBSSxvQkFBdUIsR0FBSSxzQkFBeUIsR0FBSSxrQkFBcUIsR0FBSSxvQkFBdUIsR0FBSSxNQUFTLEdBQUksVUFBYSxHQUFJLFNBQVksR0FBSSxnQkFBbUIsR0FBSSxvQkFBdUIsR0FBSSxVQUFhLEdBQUksUUFBVyxHQUFJLEtBQVEsR0FBSSxJQUFPLEdBQUksU0FBWSxHQUFJLElBQU8sR0FBSSxPQUFVLEdBQUksY0FBaUIsR0FBSSxJQUFPLEdBQUksSUFBTyxHQUFJLE1BQVMsR0FBSSxLQUFRLEdBQUksT0FBVSxHQUFJLEtBQVEsR0FBSSxJQUFPLEdBQUksS0FBUSxHQUFJLE1BQVMsR0FBSSxXQUFjLEdBQUksUUFBVyxFQUFHLEtBQVEsQ0FBRSxFQUM5MEIsV0FBWSxDQUFFLEVBQUcsUUFBUyxFQUFHLFVBQVcsRUFBRyxvQkFBcUIsR0FBSSxRQUFTLEdBQUksU0FBVSxHQUFJLFNBQVUsR0FBSSxPQUFRLEdBQUksTUFBTyxHQUFJLFlBQWEsR0FBSSxrQkFBbUIsR0FBSSxZQUFhLEdBQUksa0JBQW1CLEdBQUksNEJBQTZCLEdBQUksc0JBQXVCLEdBQUksb0JBQXFCLEdBQUksc0JBQXVCLEdBQUksUUFBUyxHQUFJLGtCQUFtQixHQUFJLFVBQVcsR0FBSSxPQUFRLEdBQUksTUFBTyxHQUFJLE1BQU8sR0FBSSxTQUFVLEdBQUksTUFBTyxHQUFJLE1BQU8sR0FBSSxRQUFTLEdBQUksT0FBUSxHQUFJLFNBQVUsR0FBSSxPQUFRLEdBQUksTUFBTyxHQUFJLE9BQVEsR0FBSSxRQUFTLEdBQUksWUFBYSxFQUNqaUIsYUFBYyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFD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QUssR0FBSSxFQUFLLEdBQUksQ0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFLLEVBQUssQ0FBRSxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEdBQUksRUFBRyxFQUFLLEVBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLEVBQUUsRUFBSyxFQUFLLENBQUUsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEdBQUksRUFBRyxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBRSxFQUFHLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLENBQUksQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLENBQUksQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxDQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVB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QUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFLLEVBQUcsZUFBa0IsQ0FBRSxNQUFTLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBSyxFQUFHLFVBQWEsQ0FBRSxNQUFTLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBSyxFQUFHLG9CQUF1QixDQUFFLE1BQVMsQ0FBQyxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxVQUFhLENBQUUsTUFBUyxDQUFDLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxVQUFhLENBQUUsTUFBUyxDQUFDLENBQUMsRUFBRyxVQUFhLEVBQU0sRUFBRyxNQUFTLENBQUUsTUFBUyxDQUFDLEVBQUcsVUFBYSxFQUFNLEVBQUcsVUFBYSxDQUFFLE1BQVMsQ0FBQyxFQUFHLFVBQWEsRUFBTSxFQUFHLE9BQVUsQ0FBRSxNQUFTLENBQUMsR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsUUFBVyxDQUFFLE1BQVMsQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJ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QUFXLEdBQUcsRUFBVSxFQUFJLEtBQVcsRUFBVSxFQUFJLEtBQVcsS0FBUyxHQUFRLEdBRXRGLElBR0Esb0JBamtDTixLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsZUFDQSxlQUNBLGVBTUksWUFBaUIsRUFBRyxDQUN0QixJQUFJLFVBQVksQ0FBQyxHQUFHLEdBQUcsR0FBSSxHQUFHLENBQzVCLElBQUssR0FBSyxJQUFNLENBQUMsRUFBRyxHQUFJLEdBQUUsT0FBUSxLQUFLLEdBQUcsR0FBRSxLQUFNLElBRWxELE9BQU8sSUFDTixFQUFNLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBTSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQU0sQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFNLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsR0FBSSxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFB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LEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFD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QUcsQ0FBQyxFQUFHLEVBQUcsRUFBSyxFQUFHLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsQ0FBRSxFQUFHLEdBQUksRUFBRyxFQUFHLEVBQUcsRUFBSyxFQUFHLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLEdBQUksRUFBRyxFQUFLLEVBQUcsR0FBSSxFQUFHLEVBQUssRUFBRyxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLEdBQUksRUFBRyxFQUFLLEVBQUcsR0FBSSxFQUFHLEVBQUssRUFBRyxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsRUFBRyxHQUFJLEVBQUcsRUFBSyxFQUFHLEdBQUksRUFBRyxFQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEVBQUcsR0FBSSxFQUFHLEVBQUssRUFBRyxHQUFJLEVBQUcsRUFBSyxFQUFHLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxFQUFHLEdBQUksRUFBRyxFQUFLLEVBQUcsR0FBSSxFQUFHLEVBQUssRUFBRyxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsRUFBRyxHQUFJLEVBQUcsRUFBSyxFQUFHLEdBQUksRUFBRyxFQUFLLEVBQUcsRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEVBQUcsR0FBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLEdBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLEVBQUssR0FBSSxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEVBQUcsRUFBSyxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsRUFBRyxFQUFLLEdBQUksSUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxFQUFHLEVBQUssR0FBSSxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEVBQUcsR0FBSyxHQUFJLEVBQUssR0FBSSxJQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEVBQUcsR0FBSyxHQUFJLEVBQUssR0FBSSxJQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsQ0FBQyxFQUN0cEgsZUFBZ0IsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsR0FBSSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEdBQUksQ0FBQyxFQUFHLENBQUMsRUFBRyxHQUFJLENBQUMsRUFBRyxDQUFDLEVBQUcsR0FBSSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFH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RUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBTSxDQUFDLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUN6ckMsR0FBVSxDQUNaLGVBQWdCLEVBQUssRUFBRyxHQUV4QixHQUFJLENBQUMsRUFDTCxTQUFVLENBQUUsTUFBUyxFQUFHLE1BQVMsRUFBRyxNQUFTLEVBQUcsUUFBVyxFQUFHLEdBQU0sRUFBRyxTQUFZLEVBQUcsS0FBUSxFQUFHLFVBQWEsRUFBRyxZQUFlLEdBQUksU0FBWSxHQUFJLHNCQUF5QixHQUFJLE9BQVUsR0FBSSxJQUFPLEdBQUksV0FBYyxHQUFJLElBQU8sR0FBSSxPQUFVLEdBQUksV0FBYyxHQUFJLElBQU8sR0FBSSxJQUFPLEdBQUksU0FBWSxHQUFJLE1BQVMsR0FBSSxXQUFjLEdBQUksZUFBa0IsR0FBSSxnQkFBbUIsR0FBSSxlQUFrQixHQUFJLHFCQUF3QixHQUFJLGtCQUFxQixHQUFJLE1BQVMsR0FBSSxhQUFnQixHQUFJLFVBQWEsR0FBSSxnQkFBbUIsR0FBSSxVQUFhLEdBQUksZ0JBQW1CLEdBQUksMEJBQTZCLEdBQUksS0FBUSxHQUFJLEtBQVEsR0FBSSxJQUFPLEdBQUksSUFBTyxHQUFJLGNBQWlCLEdBQUksSUFBTyxHQUFJLGFBQWdCLEdBQUksU0FBWSxHQUFJLFNBQVksR0FBSSxnQkFBbUIsR0FBSSxNQUFTLEdBQUksT0FBVSxHQUFJLElBQU8sR0FBSSxLQUFRLEdBQUksWUFBZSxHQUFJLEdBQU0sR0FBSSxrQkFBcUIsR0FBSSxRQUFXLEdBQUksS0FBUSxHQUFJLFVBQWEsR0FBSSxNQUFTLEdBQUksS0FBUSxHQUFJLFdBQWMsR0FBSSxNQUFTLEdBQUksS0FBUSxHQUFJLFdBQWMsR0FBSSxRQUFXLEdBQUksVUFBYSxHQUFJLElBQUssR0FBSSxRQUFXLEdBQUksU0FBWSxHQUFJLFdBQWMsR0FBSSxJQUFLLEdBQUksSUFBSyxHQUFJLE1BQVMsR0FBSSxpQkFBb0IsR0FBSSxrQkFBcUIsR0FBSSxZQUFlLEdBQUksYUFBZ0IsR0FBSSxZQUFlLEdBQUksYUFBZ0IsR0FBSSxZQUFlLEdBQUksYUFBZ0IsR0FBSSxJQUFPLEdBQUksUUFBVyxFQUFHLEtBQVEsQ0FBRSxFQUMzeEMsV0FBWSxDQUFFLEVBQUcsUUFBUyxFQUFHLFFBQVMsRUFBRyxVQUFXLEVBQUcsS0FBTSxHQUFJLFNBQVUsR0FBSSxNQUFPLEdBQUksYUFBYyxHQUFJLE1BQU8sR0FBSSxhQUFjLEdBQUksTUFBTyxHQUFJLE1BQU8sR0FBSSxXQUFZLEdBQUksYUFBYyxHQUFJLFFBQVMsR0FBSSxlQUFnQixHQUFJLFlBQWEsR0FBSSxrQkFBbUIsR0FBSSxZQUFhLEdBQUksa0JBQW1CLEdBQUksNEJBQTZCLEdBQUksT0FBUSxHQUFJLE9BQVEsR0FBSSxNQUFPLEdBQUksTUFBTyxHQUFJLE1BQU8sR0FBSSxXQUFZLEdBQUksV0FBWSxHQUFJLFFBQVMsR0FBSSxTQUFVLEdBQUksTUFBTyxHQUFJLE9BQVEsR0FBSSxjQUFlLEdBQUksS0FBTSxHQUFJLG9CQUFxQixHQUFJLFVBQVcsR0FBSSxPQUFRLEdBQUksT0FBUSxHQUFJLFFBQVMsR0FBSSxPQUFRLEdBQUksYUFBYyxHQUFJLFVBQVcsR0FBSSxJQUFLLEdBQUksVUFBVyxHQUFJLFdBQVksR0FBSSxJQUFLLEdBQUksSUFBSyxHQUFJLFFBQVMsR0FBSSxtQkFBb0IsR0FBSSxvQkFBcUIsR0FBSSxjQUFlLEdBQUksZUFBZ0IsR0FBSSxjQUFlLEdBQUksZUFBZ0IsR0FBSSxjQUFlLEdBQUksZUFBZ0IsR0FBSSxLQUFNLEVBQ3gyQixhQUFjLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxD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QU8sQ0FBQyxDQUFFLEVBQUcsRUFBRyxFQUFHLEVBQUssRUFBRyxFQUFLLEVBQUcsQ0FBSSxFQUFHLENBQUUsRUFBRyxDQUFDLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxFQUFHLEVBQUcsRUFBSyxFQUFHLEVBQUssRUFBRyxDQUFJLEVBQUcsQ0FBRSxFQUFHLEVBQUcsRUFBRyxFQUFLLEVBQUcsRUFBSyxFQUFHLENBQUksRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFLLENBQUUsRUFBRyxDQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxFQUFLLEVBQUcsRUFBSyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLENBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFJLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFJLEVBQUcsRUFBRSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFFLEdBQUksRUFBRyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLEVBQUssQ0FBRSxFQUFHLEVBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBSyxFQUFLLENBQUUsRUFBRyxFQUFHLENBQUMsRUFBRyxFQUFFLEdBQUssRUFBSyxDQUFFLEVBQUcsRUFBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLEVBQUssQ0FBRSxHQUFJLElBQUssRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEdBQUssRUFBSyxDQUFFLEdBQUksSUFBSyxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsR0FBSyxFQUFLLENBQUUsRUFBRyxJQUFLLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxHQUFLLEVBQUssQ0FBRSxHQUFJLElBQUssRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEdBQUssRUFBSyxDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksRUFBSSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLElBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsR0FBRyxFQUFHLEVBQUcsQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLElBQUssR0FBSSxJQUFLLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsRUFBSyxFQUFHLEVBQUssRUFBRyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsRUFBRyxFQUFLLEVBQUcsRUFBSyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxFQUFHLEVBQUssRUFBRyxFQUFLLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsRUFBRyxFQUFLLEVBQUcsRUFBSyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsQ0FBRSxFQUFHLEVBQUssRUFBRyxFQUFLLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsRUFBRyxFQUFLLEVBQUcsRUFBSyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsRUFBRyxFQUFLLEVBQUcsRUFBSyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLElBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLEVBQUssQ0FBRSxFQUFHLElBQUssR0FBSSxHQUFJLENBQUMsRUFBRyxFQUFFLEdBQUssRUFBSyxDQUFFLEVBQUcsSUFBSyxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsR0FBSyxFQUFLLENBQUUsRUFBRyxJQUFLLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENB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UTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBVWQsRUFBUTtBQUFBO0FBQUE7QUFBQSxVQUdULEVBQVE7QUFBQTtBQUFBO0FBQUEsVUFHUixFQUFRO0FBQUE7QUFBQTtBQUFBLGdCQUdGLEVBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBV1osRUFBUTtBQUFBLGNBQ04sRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQU1WLEVBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFTVixFQUFRO0FBQUEsWUFDTixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFJUixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFPVixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUtSLEVBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBS04sRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFjVixFQUFRO0FBQUEsWUFDTixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUtWLEVBQVE7QUFBQSxZQUNOLEVBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBS1YsRUFBUTtBQUFBLFlBQ04sRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFLVixFQUFRO0FBQUEsWUFDTixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBTVIsRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQU1SLEVBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFNUixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBTVIsRUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFLVixFQUFRO0FBQUEsWUFDTixFQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUtWLEVBQVE7QUFBQSxZQUNOLEVBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFZVixFQUFRO0FBQUE7QUFBQSxFQUdaLG9CQXQ4Q04sS0FDQSxLQUNJLFlBQWlCLEVBQUcsQ0FDdEIsSUFBSSxVQUFZLENBQUMsR0FBRyxHQUFHLEdBQUksR0FBRyxDQUM1QixJQUFLLEdBQUssSUFBTSxDQUFDLEVBQUcsR0FBSSxHQUFFLE9BQVEsS0FBSyxHQUFHLEdBQUUsS0FBTSxJQUVsRCxPQUFPLElBQ04sRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUcsQ0FBQyxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLEdBQU0sQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLEdBQU0sQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFNLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQU0sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFNLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU0sQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFNLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBTSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQU0s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LEdBQUksZ0JBQWlCLEdBQUksZ0JBQWlCLEdBQUksT0FBUSxHQUFJLFFBQVMsR0FBSSxRQUFTLEdBQUksV0FBWSxHQUFJLFFBQVMsR0FBSSxNQUFPLEdBQUksUUFBUyxHQUFJLE9BQVEsR0FBSSxRQUFTLEdBQUksT0FBUSxHQUFJLE1BQU8sR0FBSSxrQkFBbUIsR0FBSSxXQUFZLEdBQUksU0FBVSxHQUFJLEtBQU0sR0FBSSxLQUFNLEdBQUksVUFBVyxHQUFJLFFBQVMsR0FBSSxXQUFZLEdBQUksZUFBZ0IsR0FBSSxZQUFhLEVBQ2hoQyxhQUFjLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsQ0FBQyxFQUN0aUMsdUJBQXdCLEVBQVMsQ0FBQyxHQUFRLEdBQVEsR0FBVSxHQUFJLEdBQVMsR0FBSSxHQUFJLENBQy9FLElBQUksR0FBSyxHQUFHLE9BQVMsRUFDckIsT0FBUSxRQUNE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LEVBQUksR0FBRyxHQUFLLEdBQ2pCLEdBQUcsUUFBUSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUcsRUFDekMsVUFDRyxJQUNILEtBQUssRUFBSSxHQUFHLEdBQUssR0FDakIsR0FBRyxRQUFRLEdBQUcsR0FBSyxHQUFJLEdBQUcsR0FBSyxFQUFFLEVBQ2pDLEdBQUcsV0FBVyxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUcsRUFDaEMsVUFDRyxJQUNILEtBQUssRUFBSSxHQUFHLEdBQUssR0FDakIsR0FBRyxRQUFRLEdBQUcsR0FBSyxHQUFJLEdBQUcsR0FBSyxHQUFJLEdBQUcsR0FBRyxFQUN6QyxHQUFHLFdBQVcsR0FBRyxHQUFLLEdBQUksR0FBRyxHQUFLLEVBQUUsRUFDcEMsVUFDRyxJQUNILEtBQUssRUFBSSxHQUFHLEdBQUssR0FDakIsR0FBRyxZQUFZLEdBQUcsR0FBSyxHQUFJLEdBQUcsR0FBRyxFQUNqQyxVQUNHLElBQ0gsR0FBRyxZQUFZLEdBQUcsR0FBSyxHQUFJLEdBQUcsR0FBRyxFQUNqQyxVQUNHLElBQ0gsS0FBSyxFQUFJLENBQUMsR0FBRyxHQUFHLEVBQ2hCLFVBQ0csSUFDSCxHQUFHLEdBQUssR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUN0QixLQUFLLEVBQUksR0FBRyxHQUFLLEdBQ2pCLFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxHQUFLLEdBQUssR0FBRyxJQUN6QixRQUdOLE1BQU8sQ0FBQyxDQUFFLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsR0FBSSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxFQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxHQUFLLEdBQUksRUFBRyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsQ0FBQyxFQUFHLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUUsR0FBSSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxDQUFDLEVBQUcsQ0FBRSxFQUFHLEdBQUksR0FBSSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFLLEdBQUksRUFBSSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSSxHQUFJLElBQUssR0FBSSxJQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksR0FBSyxHQUFJLEdBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxJQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksSUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSyxHQUFJLEVBQUksQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksQ0FBSSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksSUFBSyxHQUFJLEVBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLElBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLElBQUssR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksSUFBSyxHQUFJLEVBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLElBQUssR0FBSSxJQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLEVBQUcsRUFBRSxHQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsQ0FBRSxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsR0FBRyxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxHQUFHLENBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxJQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxHQUFLLEdBQUksR0FBSyxHQUFJLEdBQUssR0FBSSxFQUFJLENBQUMsRUFBRyxFQUFFLEdBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsQ0FBQyxFQUM3L0ssZUFBZ0IsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsSUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLElBQUssQ0FBQyxFQUFHLENBQUMsRUFBRyxJQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsSUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQ3RILG9CQUFxQixFQUFVLENBQUMsR0FBSyxHQUFNLENBQ3pDLEdBQUksR0FBSyxZQUNQLEtBQUssTUFBTSxFQUFHLE1BQ1QsQ0FDTCxJQUFJLEdBQVEsSUFBSSxNQUFNLEVB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QUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsVUFBYSxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLGFBQWMsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsTUFBUyxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLG9CQUF1QixDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsVUFBYSxDQUFFLE1BQVMsQ0FBQyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLFVBQWEsQ0FBRSxNQUFTLENBQUMsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxjQUFpQixDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsY0FBaUIsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsS0FBUSxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxPQUFVLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLFFBQVcsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLFNBQVksQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLE9BQVUsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLFFBQVcsQ0FBRSxNQUFTLENBQUMsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FB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LEdBQUksR0FBRyxDQUM1QixJQUFLLEdBQUssSUFBTSxDQUFDLEVBQUcsR0FBSSxHQUFFLE9BQVEsS0FBSyxHQUFHLEdBQUUsS0FBTSxHQUVsRCxPQUFPLElBQ04sRUFBTSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQU0sQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFNLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBTSxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQU0sQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQU0sQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFNLENBQUMsRUFBRyxFQUFHLEVB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QUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLENBQUMsRUFDdlksdUJBQXdCLEVBQVMsQ0FBQyxFQUFRLEdBQVEsR0FBVSxHQUFJLEdBQVMsR0FBSSxHQUFJLENBQy9FLElBQUksR0FBSyxHQUFHLE9BQVMsRUFDckIsT0FBUSxRQUNELEdBRUgsT0FEQSxHQUFHLFdBQVcsR0FBRyxHQUFHLEVBQ2IsR0FBRyxRQUNQLEdBQ0gsS0FBSyxFQUFJLENBQUMsRUFDVixVQUNHLEdBQ0gsR0FBSSxHQUFHLEtBQU8sS0FDWixHQUFHLEdBQUssR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUN0QixLQUFLLEVBQUksR0FBRyxHQUFLLEdBRW5CLFVBQ0csT0FDQSxHQUNILEtBQUssRUFBSSxHQUFHLElBQ1osVUFDRyxHQUNILEtBQUssRUFBSSxLQUNULFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxJQUNaLFVBQ0csSUFDSCxNQUFNLEdBQVksR0FBRyxHQUFLLEdBQzFCLEdBQVUsWUFBYyxHQUFHLFVBQVUsR0FBRyxHQUFHLEVBQzNDLEtBQUssRUFBSSxHQUNULFVBQ0csSUFDSCxLQUFLLEVBQUksQ0FBRSxLQUFNLFdBQVksT0FBUSxHQUFHLEdBQUssR0FBSSxPQUFRLEdBQUcsR0FBSSxFQUNoRSxVQUNHLElBQ0gsTUFBTSxHQUFpQixHQUFHLFVBQVUsR0FBRyxHQUFHLEVBQzFDLEtBQUssRUFBSSxDQUFFLEtBQU0sV0FBWSxPQUFRLEdBQUcsR0FBSyxHQUFJLE9BQVEsR0FBRyxHQUFLLEdBQUksWUFBYSxFQUFlLEVBQ2pHLFVBQ0csSUFDSCxLQUFLLEVBQUksQ0FBRSxLQUFNLFFBQVMsR0FBSSxHQUFHLEdBQUssR0FBSSxLQUFNLFVBQVcsWUFBYSxHQUFJLElBQUssR0FBRyxHQUFLLEVBQUcsRUFDNUYsVUFDRyxJQUNILElBQUksR0FBSyxHQUFHLElBQ1IsR0FBYyxHQUFHLEdBQUssR0FBRyxLQUFLLEVBQ2xDLEdBQUksR0FBRyxJQUFJLE1BQU0sR0FBRyxFQUFHLENBQ3JCLElBQUksR0FBUSxHQUFHLElBQUksTUFBTSxHQUFHLEVBQzVCLEdBQUssR0FBTSxHQUNYLEdBQWMsQ0FBQyxHQUFhLEdBQU0sRUFBRSxFQUV0QyxLQUFLLEVBQUksQ0FBRSxLQUFNLFFBQVMsTUFBSSxLQUFNLFVBQVcsY0FBWSxFQUMzRCxVQUNHLElBQ0gsS0FBSyxFQUFJLENBQUUsS0FBTSxRQUFTLEdBQUksR0FBRyxHQUFLLEdBQUksS0FBTSxVQUFXLFlBQWEsR0FBRyxHQUFLLEdBQUksSUFBSyxHQUFHLEdBQUssRUFBRyxFQUNwRyxVQUNHLElBQ0gsS0FBSyxFQUFJLENBQUUsS0FBTSxRQUFTLEdBQUksR0FBRyxJQUFLLEtBQU0sTUFBTyxFQUNuRCxVQUNHLElBQ0gsS0FBSyxFQUFJLENBQUUsS0FBTSxRQUFTLEdBQUksR0FBRyxJQUFLLEtBQU0sTUFBTyxFQUNuRCxVQUNHLElBQ0gsS0FBSyxFQUFJLENBQUUsS0FBTSxRQUFTLEdBQUksR0FBRyxJQUFLLEtBQU0sUUFBUyxFQUNyRCxVQUNHLElBQ0gsS0FBSyxFQUFJLENBQUUsS0FBTSxRQUFTLEdBQUksR0FBRyxhQUFhLEVBQUcsS0FBTSxTQUFVLEVBQ2pFLFVBQ0csSUFDSCxLQUFLLEVBQUksQ0FBRSxLQUFNLFFBQVMsR0FBSSxHQUFHLEdBQUssR0FBRyxLQUFLLEVBQUcsS0FBTSxDQUFFLFNBQVUsR0FBRyxHQUFLLEdBQUcsS0FBSyxFQUFHLEtBQU0sR0FBRyxJQUFJLEtBQUssQ0FBRSxDQUFFLEVBQzVHLFVBQ0csSUFDSCxLQUFLLEVBQUksR0FBRyxJQUFJLEtBQUssRUFDckIsR0FBRyxZQUFZLEtBQUssQ0FBQyxFQUNyQixVQUNHLFFBQ0EsSUFDSCxLQUFLLEVBQUksR0FBRyxJQUFJLEtBQUssRUFDckIsR0FBRyxrQkFBa0IsS0FBSyxDQUFDLEVBQzNCLFVBQ0csUUFDQSxJQUNILEtBQUssRUFBSSxDQUFFLEtBQU0sV0FBWSxHQUFJLEdBQUcsR0FBSyxHQUFHLEtBQUssRUFBRyxRQUFTLEdBQUcsSUFBSSxLQUFLLENBQUUsRUFDM0UsVUFDRyxJQUNILEtBQUssRUFBSSxDQUFFLEtBQU0sYUFBYyxHQUFJLEdBQUcsR0FBSyxHQUFHLEtBQUssRUFBRyxXQUFZLEdBQUcsSUFBSSxLQUFLLENBQUUsRUFDaEYsVUFDRyxJQUNILEdBQUcsYUFBYSxJQUFJLEVBQ3BCLEtBQUssRUFBSSxDQUFFLEtBQU0sTUFBTyxNQUFPLElBQUssRUFDcEMsVUFDRyxJQUNILEdBQUcsYUFBYSxJQUFJLEVBQ3BCLEtBQUssRUFBSSxDQUFFLEtBQU0sTUFBTyxNQUFPLElBQUssRUFDcEMsVUFDRyxJQUNILEdBQUcsYUFBYSxJQUFJLEVBQ3BCLEtBQUssRUFBSSxDQUFFLEtBQU0sTUFBTyxNQUFPLElBQUssRUFDcEMsVUFDRyxJQUNILEdBQUcsYUFBYSxJQUFJLEVBQ3BCLEtBQUssRUFBSSxDQUFFLEtBQU0sTUFBTyxNQUFPLElBQUssRUFDcEMsVUFDRyxRQUNBLElBQ0gsS0FBSyxFQUFJLENBQUUsS0FBTSxRQUFTLEdBQUksR0FBRyxJQUFJLEtBQUssRUFBRyxLQUFNLFVBQVcsWUFBYSxFQUFHLEVBQzlFLFVBQ0csSUFDSCxLQUFLLEVBQUksQ0FBRSxLQUFNLFFBQVMsR0FBSSxHQUFHLEdBQUssR0FBRyxLQUFLLEVBQUcsUUFBUyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRyxLQUFNLFVBQVcsWUFBYSxFQUFHLEVBQzVHLFVBQ0csSUFDSCxLQUFLLEVBQUksQ0FBRSxLQUFNLFFBQVMsR0FBSSxHQUFHLEdBQUssR0FBRyxLQUFLLEVBQUcsUUFBUyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRyxLQUFNLFVBQVcsWUFBYSxFQUFHLEVBQzVHLFFBR04sTUFBTyxDQUFDLENBQUUsRUFBRyxFQUFHLEVBQUcsRUFBSyxFQUFHLEVBQUssRUFBRyxDQUFJLEVBQUcsQ0FBRSxFQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLEVBQUcsRUFBRyxFQUFLLEVBQUcsRUFBSyxFQUFHLENBQUksRUFBRyxDQUFFLEVBQUcsRUFBRyxFQUFHLEVBQUssRUFBRyxFQUFLLEVBQUcsQ0FBSSxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFLLENBQUUsRUFBRyxDQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxFQUFLLEVBQUcsRUFBSyxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxDQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxFQUFLLENBQUUsRUFBRyxFQUFHLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxDQUFDLEVBQUcsQ0FBRSxFQUFHLEVBQUssRUFBRyxFQUFLLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxFQUFLLENBQUUsRUFBRyxFQUFHLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxFQUFHLEVBQUssRUFBRyxFQUFLLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsQ0FBQyxFQUN6NEUsZUFBZ0IsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFDakUsb0JBQXFCLEVBQVUsQ0FBQyxFQUFLLEdBQU0sQ0FDekMsR0FBSSxHQUFLLFlBQ1AsS0FBSyxNQUFNLENBQUcsTUFDVCxDQUNMLElBQUksR0FBUSxJQUFJLE1BQU0sQ0FBRyxFQUV6QixNQURBLEdBQU0sS0FBTyxHQUNQLEtBR1Ys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RUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxFQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEVBQUcsRUFBRSxFQUNkLFNBQVMsRUFBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFDZixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQ2YsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQ2pCLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUNuQixTQUFTLEVBQUcsRUFBRSxDQUFDLElBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFDbkIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQ25CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNuQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxDQUFDLEVBQ3JCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdEIsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN0QixTQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUN0QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUN2QixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLFNBQVMsRUFBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQ3RCLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEVBQ3ZCLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEVBQ3ZCLFNBQVMsRUFBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQ3ZCLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQ3ZCLFNBQVMsRUFBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQ3RCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUN2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUN4QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQ3hCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFDeEIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUN4QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQ3hCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFDeEIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUN6QixTQUFTLEdBQUUsRUFBRSxDQUFDLE9BQU8sS0FDckIsU0FBUyxHQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQ3JCLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFDekIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUMxQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FDeEIsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMxQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzFCLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQzFCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQzFCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDMUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLENBQUMsRUFDekIsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQzNCLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMzQixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUMzQixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUMzQixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUMzQixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUMzQixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUcsR0FBRyxDQUFDLEVBQzNCLFNBQVMsR0FBRSxFQUFFLENBQUMsSUFBRyxFQUFJLElBQUksR0FDekIsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFHLEtBQUssSUFBSSxFQUMxQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUcsS0FBSyxJQUFJLEVBQzNCLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksRUFDM0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUMzQixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQzNCLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksRUFDM0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUMzQixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQzNCLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksRUFDM0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUMzQixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQzNCLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksRUFDM0IsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUMzQixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUN0QixTQUFTLEVBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUN4QixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQzFCLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUMzQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzNCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFDM0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUMzQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzNCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDM0IsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUMzQixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzNCLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUM1QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUM1QixTQUFTLEVBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQzFCLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FDMUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUMxQixTQUFTLEVBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQzFCLFNBQVMsRUFBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FDMUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUMxQixTQUFTLEVBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQzFCLFNBQVMsRUFBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksSUFDMUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUMxQixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQzFCLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksSUFDMUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUMxQixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQzFCLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FDMUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUMxQixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQzFCLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksSUFDMUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUMxQixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQzFCLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FDMUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUMxQixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQzFCLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksSUFDMUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUMxQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsRUFBRyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEVBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEVBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxFQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxFQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsRUFBRyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUM1QixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxJQUFJLEVBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFDNUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUMxQixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQzFCLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FDMUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUMxQixTQUFTLEVBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQzFCLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FDMUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUMxQixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQzFCLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksSUFDMUIsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUksSUFBRyxJQUFJLEVBQzVCLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFJLElBQUcsSUFBSSxJQUM1QixTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBSSxJQUFHLElBQUksSUFDNUIsU0FBUyxHQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLEVBQzdCLFNBQVMsR0FBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUM3QixTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUM3QixTQUFTLEdBQUUsRUFBRSxDQUFDLElBQUcsRUFBSSxJQUFHLElBQUksR0FDNUIsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUksSUFBRyxJQUFJLElBQzVCLFNBQVMsR0FBRSxFQUFFLENBQUMsSUFBRyxFQUFJLElBQUcsSUFBSSxFQUM1QixTQUFTLEdBQUUsRUFBRSxDQUFDLElBQUcsRUFBSSxJQUFHLElBQUksRUFDNUIsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUksR0FBRyxJQUFJLEVBQzVCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxFQUFFLEVBQzdCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQzdCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxFQUFFLEVBQzdCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxFQUFFLEVBQzdCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQzdCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFDN0IsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBRyxFQUFFLENBQUMsRUFDN0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQzdCLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUM3QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFDN0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzdCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUM3QixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUM5QixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQzlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQzdCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksQ0FBQyxFQUFFLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksQ0FBQyxFQUFFLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksQ0FBQyxFQUFFLEVBQzlCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEVBQzlCLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEVBQzlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksQ0FBQyxFQUFFLEVBQzlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksQ0FBQyxFQUFFLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDOUIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFRLE9BQVAsR0FBSSxDQUFDLEVBQVMsRUFDOUIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFDOUIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFDOUIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLFFBQVMsR0FBRyxFQUFFLEVBQzlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFTLEdBQUcsRUFBRSxFQUM5QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUyxHQUFHLEVBQUUsRUFDOUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDOUIsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUMvQixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFDL0IsU0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUcsQ0FBQyxFQUMvQixTQUFTLEdBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDL0IsU0FBUyxHQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQy9CLFNBQVMsR0FBRSxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxFQUMvQixTQUFTLEdBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDL0IsU0FBUyxHQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQy9CLFNBQVMsR0FBRSxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxFQUMvQixTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBTyxHQUFHLEVBQzNCLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUMvQixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFDL0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUMvQixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUMvQixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUMvQixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUMvQixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQy9CLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssR0FBRyxDQUFDLEVBQy9CLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFDL0IsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUMvQixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUMvQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQy9CLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQy9CLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQy9CLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQy9CLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQy9CLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDL0IsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLENBQUMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFDL0IsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLENBQUMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLENBQUMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLENBQUMsRUFDL0IsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQy9CLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQy9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixFQUFFLEVBQUUsRUFBUyxFQUMvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FDNUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEVBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxFQUMvQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLElBQUksRUFDL0IsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxHQUFJLEVBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxFQUMvQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksRUFDL0IsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxJQUFJLEVBQy9CLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFDaEMsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUMvQixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDaEMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ2hDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFRLEVBQUUsS0FBSyxFQUFFLEVBQ2hDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFRLEVBQUUsS0FBSyxFQUFFLEVBQ2hDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFRLEVBQUUsS0FBSyxFQUFFLEVBQ2hDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBUSxPQUFQLEdBQUksQ0FBQyxFQUFTLEVBQUUsRUFDaEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQVEsT0FBUCxFQUFFLEdBQUcsRUFBUyxFQUNoQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBUSxPQUFQLEVBQUUsR0FBRyxFQUFTLEVBQ2hDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFRLE9BQVAsRUFBRSxHQUFHLEVBQVMsRUFDaEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQVEsT0FBUCxFQUFFLEdBQUcsRUFBUyxFQUNoQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQzlCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFDaEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQ2hDLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDaEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQ2hDLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDaEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRSxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRSxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRSxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRSxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRSxFQUNoQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFDaEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFRLE9BQVAsR0FBSSxDQUFDLEVBQVMsRUFBRSxFQUNoQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQ2hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FDL0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUNoQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFDaEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUM5QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDaEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQ2hDLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDaEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQ2hDLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDaEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQ2hDLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxFQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDaEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQ2hDLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxFQUNoQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQ2hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLENBQUMsRUFDaEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQVEsR0FBRyxJQUFJLENBQUMsRUFDaEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQy9CLFNBQVMsR0FBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQy9CLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxPQUFPLElBQUksQ0FBQyxHQUNoQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDakMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNqQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDakMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNqQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDakMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNqQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDakMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNqQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDakMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNqQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDakMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNqQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDakMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNqQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUNqQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDakMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQ2pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQ2pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQ2pDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQ2pDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQ2pDLFNBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBSyxLQUM5QixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDakMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ2pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUNqQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDakMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ2pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUNqQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDakMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ2pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUNqQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQy9CLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNqQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEVBQUUsRUFBRSxJQUFHLElBQ2hDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDakMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxJQUFJLEVBQ2pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksRUFDakMsU0FBUyxFQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFJLElBQUksRUFDakMsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLEdBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUMvQixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFDL0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUMvQixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLElBQUksRUFDakMsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQy9CLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDakMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ2pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUNqQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDakMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ2pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUNqQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFDakMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDaEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDaEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQVMsT0FBUixFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQ2pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFTLE9BQVIsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUNqQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBUyxPQUFSLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFDakMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQVMsT0FBUixFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ2pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFTLE9BQVIsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUNqQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBUyxPQUFSLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFDakMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQVMsT0FBUixFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ2pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFTLE9BQVIsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUNqQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBUyxPQUFSLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFDakMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQVMsT0FBUixFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ2pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBVyxPQUFWLEVBQUUsRUFBRSxHQUFhLEVBQ2pDLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUMvQixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFDL0IsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQy9CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUMvQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksSUFDL0IsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQy9CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUMvQixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FDL0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUMvQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksSUFDL0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxJQUMvQixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFDL0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxJQUMvQixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksSUFDL0IsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksR0FDaEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsRUFDakMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNqQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ2pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDakMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNqQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ2pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDakMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ2pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNqQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDakMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQVEsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUNqQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsRUFBRSxFQUFFLENBQUMsRUFDakMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQVMsT0FBUixFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ2pDLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxJQUMvQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksSUFDL0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQy9CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxJQUMvQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksSUFDL0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLElBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUMvQixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFDL0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLElBQy9CLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxJQUMvQixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFDL0IsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLElBQy9CLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUMvQixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLENBQUMsRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBRyxLQUFLLEtBQUssQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxDQUFDLEVBQUUsR0FDOUIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFVLE9BQVQsR0FBSSxFQUFFLENBQUMsRUFBUyxFQUFFLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBWSxPQUFYLElBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxFQUNsQyxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sSUFBSSxFQUFTLElBQUksSUFDaEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksSUFDaEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksR0FDaEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksR0FDaEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEdBQUksRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQ2xDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNsQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQ25DLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxLQUFLLEVBQ25DLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLElBQUksSUFDakMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsSUFBSSxHQUNqQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxJQUFJLElBQ2pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLENBQUMsR0FBRyxFQUNuQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFDbkMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQ25DLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQ25DLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ25DLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUcsQ0FBQyxFQUFTLEVBQUUsRUFBRSxHQUFHLEVBQ25DLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBYyxPQUFiLEdBQUksR0FBRyxJQUFJLEVBQVMsRUFDbkMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQVcsT0FBVixFQUFFLEdBQUcsR0FBRyxFQUFTLEVBQ25DLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFXLE9BQVYsRUFBRSxHQUFHLEdBQUcsRUFBUyxFQUNuQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBVyxPQUFWLEVBQUUsR0FBRyxHQUFHLEVBQVMsRUFDbkMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQVcsT0FBVixFQUFFLEdBQUcsR0FBRyxFQUFTLEVBQ25DLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFXLE9BQVYsRUFBRSxHQUFHLEdBQUcsRUFBUyxFQUNuQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFDbkMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU8sSUFBSSxHQUFJLENBQUMsRUFBRSxHQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFDbkMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksRUFDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ25DLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNuQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbkMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ25DLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNuQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQVUsT0FBVCxHQUFJLEVBQUUsQ0FBQyxFQUFTLEtBQ2hDLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQy9CLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQy9CLFNBQVMsR0FBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUNuQyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUcsR0FBSSxDQUFDLEVBQ25DLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBRyxJQUFJLENBQUMsRUFDbkMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxFQUNuQyxTQUFTLEdBQUUsRUFBRSxDQUFDLElBQUcsRUFBSSxJQUFHLEVBQUUsSUFBRyxJQUFJLEdBQ2pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBYSxPQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ25DLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFXLE9BQVYsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ25DLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNuQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbkMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ25DLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUNuQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDbkMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFDbkMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsR0FBSSxDQUFDLENBQUMsRUFDbkMsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEVBQUssYUFBYSxDQUFDLEVBQ2xDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQ3BDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQ3BDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDcEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDcEMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ25DLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUNwQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFDcEMsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQ3BDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUNuQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUNuQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFDcEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLGNBQWMsSUFBSSxJQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUssR0FBRyxHQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUssR0FBRyxHQUNsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDcEMsU0FBUyxFQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUcsRUFDcEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFDcEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQVksT0FBWCxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDcEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsRUFBRSxHQUFHLEVBQ3BDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEVBQUUsR0FBRyxFQUNwQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxFQUFFLEdBQUcsRUFDcEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQVksT0FBWCxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDcEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQVksT0FBWCxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDcEMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQ3BDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUNwQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUNwQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLElBQUksRUFDcEMsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQ3BDLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBSSxDQUFDLEVBQ3BDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUNwQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFDcEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFLLEdBQUcsR0FDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFLLEdBQUcsR0FDbEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFLLEdBQUcsR0FDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFLLEdBQUcsR0FDbEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDcEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQ3BDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUNwQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ3JDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFDcEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQ3BDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUNwQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFDcEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQ3BDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDckMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBSSxFQUNwQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLE9BQU8sQ0FBQyxFQUNyQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLE9BQU8sQ0FBQyxFQUNyQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLENBQUMsRUFDckMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDckMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3JDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBYSxPQUFaLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBUyxFQUFFLEVBQ3JDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBYSxPQUFaLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBUyxFQUFFLEVBQ3JDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSyxPQUFPLEVBQUUsRUFBRSxFQUNyQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQ3JDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFDckMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFDckMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFDckMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUNyQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ3JDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDckMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDckMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQ3JDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUNyQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNyQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUNyQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUNyQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFXLE9BQVYsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ3JDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFDckMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQ3JDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUNyQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLEdBQUksS0FBSyxLQUFLLENBQUMsRUFDckMsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUcsS0FBSyxLQUFLLENBQUMsRUFDdEMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUksRUFBSyxLQUFLLElBQUksQ0FBQyxFQUNwQyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFLLElBQUksRUFBRSxLQUNsQyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxHQUFFLEVBQ3JDLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxJQUFJLEdBQ25DLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQ25DLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFDckMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUNyQyxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQ3JDLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFDckMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxLQUFLLENBQUMsRUFDdEMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxLQUFLLENBQUMsRUFDdEMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN0QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBRSxFQUN0QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQ3RDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUNqQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FDakMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUN0QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQ3RDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFDdEMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDdEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUN0QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUN0QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3RDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDdEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN0QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFZLE9BQVgsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ3RDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEVBQUUsRUFBRSxHQUFHLEVBQ3RDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLEtBQUssRUFBRSxFQUN0QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxLQUFLLEVBQUUsRUFDdEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxRQUFRLENBQUMsRUFDdEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQ3BDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUN0QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUNwQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUNwQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUN0QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUN0QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3RDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3RDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3RDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3RDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDdEMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFDdkMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUN0QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUNwQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUN0QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLElBQUksRUFDdEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxLQUFLLElBQUksRUFDdEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxLQUFLLElBQUksRUFDdEMsU0FBUyxHQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxXQUFXLENBQUMsRUFDdkMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxHQUFFLEVBQ3RDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUN2QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQ3ZDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQ3BDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ3RDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ3RDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ3RDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUN0QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDdkMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN2QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ3ZDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FDdEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUN0QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQ3RDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FDdEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUN2QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUNwQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQ3ZDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFDdkMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUN2QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDdkMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUN2QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ3ZDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFDdkMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQ3JDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQWEsT0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUN2QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBZSxPQUFkLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFTLEVBQ3ZDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFZLE9BQVgsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQ3BDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQWEsT0FBWixHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUN2QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQ3ZDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDdkMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUN2QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQ3ZDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDdkMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUN2QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQ3ZDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDdkMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUN2QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQ3ZDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUN0QyxTQUFTLEVBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3ZDLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksS0FBSyxJQUFJLElBQ3JDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQ3ZDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQ3ZDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxLQUFLLENBQUMsRUFDeEMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUN4QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDdkMsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQ3ZDLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksRUFBRSxJQUFJLElBQUksR0FDckMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxFQUFFLElBQUksSUFBSSxJQUNyQyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQ3ZDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUN2QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUN2QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUN2QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQ3hDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDeEMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUN4QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQ3hDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxLQUFLLENBQUMsRUFDeEMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUN4QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQ3hDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxLQUFLLENBQUMsRUFDeEMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUN4QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQ3hDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBRyxDQUFDLEVBQVMsSUFBSSxJQUFHLEVBQUUsQ0FBQyxFQUN4QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDeEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFDeEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUN4QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBSSxHQUFJLENBQUMsRUFDeEMsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEtBQUssRUFBRSxLQUNyQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQ3RDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBRyxDQUFDLEVBQUUsS0FDckMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFDeEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFDeEMsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQ3hDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUN4QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUN4QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUN4QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUN4QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUN4QyxTQUFTLEdBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxFQUN4QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUN4QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQWdCLE9BQWYsR0FBSSxFQUFFLEdBQUcsSUFBSSxFQUFTLEVBQUUsRUFDeEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQWMsT0FBYixHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUFFLEVBQ3hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFjLE9BQWIsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUN4QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBYyxPQUFiLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFDeEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBYyxPQUFiLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ3hDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLFFBQUosRUFBRSxFQUFTLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDeEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sUUFBSixFQUFFLEVBQVMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUN4QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDeEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN4QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDeEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxHQUN2QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEdBQ3ZDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQ3hDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFDeEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxLQUNyQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsS0FDckMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN4QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDeEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksSUFBVyxJQUFJLEVBQUUsR0FBRyxFQUN4QyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksRUFDeEMsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQ3hDLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksR0FBTSxHQUFJLEdBQ3JDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3hDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDeEMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN4QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3hDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQ3hDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFHLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQ3hDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQ3hDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQ3hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxRQUFKLEdBQVcsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUN4QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQVcsT0FBVixHQUFHLEVBQUUsRUFBRyxFQUFTLElBQUksR0FBSSxDQUFDLEVBQ3pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBTSxPQUFMLEdBQUcsRUFBUyxTQUFTLENBQUMsR0FBRyxHQUN4QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQU0sT0FBTCxHQUFHLEVBQVMsSUFBSSxJQUFHLEVBQUUsS0FBSSxDQUFDLEVBQ3pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUN6QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDekMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDekMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ3hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDeEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQ3hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxFQUN6QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUN0QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUN0QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQWEsT0FBWixHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFBRSxFQUFFLEVBQUUsRUFDekMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFhLE9BQVosR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQUUsRUFBRSxFQUFFLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFpQixPQUFoQixHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ3pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVMsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3pDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFDekMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQ3ZDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUN2QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQ3ZDLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUN4QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFDekMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBZSxPQUFkLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFTLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQWUsT0FBZCxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBaUIsT0FBaEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ3pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBbUIsT0FBbEIsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFTLEVBQ3pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQWUsT0FBZCxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLElBQUksRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUN6QyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLFlBQVksQ0FBQyxFQUN6QyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLFlBQVksQ0FBQyxFQUN6QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxHQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQ3pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxHQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEdBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxHQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxHQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ3pDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsRUFDekMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEtBQUssSUFBSSxDQUFDLEVBQ3pDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksQ0FBQyxFQUN6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssS0FBSyxHQUFJLENBQUMsRUFDekMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFxQixPQUFwQixHQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFTLEVBQzFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBcUIsT0FBcEIsR0FBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBUyxFQUMxQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQXFCLE9BQXBCLEdBQUksR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQVMsRUFDMUMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQU0sT0FBTyxJQUFJLENBQUMsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQ3hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUN4QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDeEMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQ3hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUN4QyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQ3ZDLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLE1BQU0sRUFDekMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLEtBQUssSUFBSSxHQUN2QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUMxQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQzFDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUMxQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFDMUMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQzFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUMxQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBSyxLQUFLLEdBQUksQ0FBQyxDQUFDLEVBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxNQUFPLEdBQUUsT0FBTyxFQUFFLEVBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSyxPQUFPLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLENBQUMsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUMxQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFRLEdBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxLQUN2QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQzFDLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUMxQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDMUMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBZ0IsT0FBZixFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQWdCLE9BQWYsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUMxQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFnQixPQUFmLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDMUMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQWtCLE9BQWpCLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBUSxFQUFFLElBQUssRUFBRSxFQUFFLE9BQ3JDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxLQUFLLENBQUMsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUMxQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQzFDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUMxQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBaUIsT0FBaEIsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxFQUMzQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQW9CLE9BQWxCLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFXLEVBQUUsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBUSxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQzNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLFFBQVMsRUFBRSxHQUFHLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQzFDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUMxQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUMzQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQzNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUMzQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLGFBQWEsQ0FBQyxFQUMzQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssS0FBSyxFQUFFLFFBQ3JDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUMzQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQzNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxHQUFVLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksR0FDekMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQ3pDLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUN6QyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FDekMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLElBQ3pDLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUN6QyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FDekMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQ3pDLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUN6QyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLElBQUksSUFDekMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQ3pDLFNBQVMsRUFBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUN6QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FDMUMsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQzFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLElBQUksR0FBSSxDQUFDLEVBQzNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxHQUMxQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsR0FDMUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQzNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FDeEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQzNDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFtQixPQUFsQixFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQVMsRUFDM0MsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQW1CLE9BQWxCLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBUyxFQUMzQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQXFCLE9BQXBCLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFVLEVBQzNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQWlCLE9BQWhCLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLE1BQU0sR0FBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLE1BQU0sR0FBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFDM0MsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0MsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUMzQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUMzQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUMzQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUM1QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUM1QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUM1QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUM1QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUM1QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQzVDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQzVDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQzVDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFDNUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM1QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzVDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDNUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM1QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzVDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFRLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzVDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSyxHQUFHLElBQUssR0FBRyxHQUMxQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDNUMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFDNUMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxLQUFLLEdBQUksQ0FBQyxFQUM1QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUM1QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQzFDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUMzQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUM1QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUssT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQzNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzVDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDNUMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUM1QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUM1QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUM1QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUM1QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUM1QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFDN0MsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQVEsTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDLEVBQzdDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFJLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxJQUFJLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUM3QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksS0FBSyxJQUFJLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQzFDLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUMzQyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDNUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzVDLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM1QyxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBSSxJQUFJLEtBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUM1QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQzVDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFDNUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDN0MsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDN0MsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBbUIsT0FBbEIsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFTLEVBQzdDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFVLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQVUsT0FBTixFQUFFLEVBQUUsRUFBUyxFQUM3QyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFDM0MsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQzNDLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUMzQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBUSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQzVDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQzdDLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEtBQUssR0FBSSxFQUFFLElBQUssR0FBSSxHQUMzQyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFDM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFxQixPQUFuQixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBWSxFQUFFLEVBQzdDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzdDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzdDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQzdDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQzdDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM3QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUcsRUFBRSxDQUFDLEVBQzlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsRUFDN0MsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQWEsT0FBWixHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBUyxJQUFJLElBQUcsRUFBRSxDQUFDLEVBQzlDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFhLE9BQVosR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQVMsSUFBSSxJQUFHLEVBQUUsQ0FBQyxFQUM5QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBYSxPQUFaLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFTLElBQUksSUFBRyxFQUFFLENBQUMsRUFDOUMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQWEsT0FBWixHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBUyxJQUFJLElBQUcsRUFBRSxDQUFDLEVBQzlDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBYSxPQUFaLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBUyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFhLE9BQVosR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM5QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQXFCLE9BQW5CLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFZLEVBQUUsRUFDN0MsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQVksT0FBUixHQUFHLEVBQUUsQ0FBQyxFQUFTLEVBQzlDLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFZLE9BQVIsR0FBRyxFQUFFLENBQUMsRUFBUyxFQUM5QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBWSxPQUFSLEdBQUcsRUFBRSxDQUFDLEVBQVMsRUFDOUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQVksT0FBUixHQUFHLEVBQUUsQ0FBQyxFQUFTLEVBQzlDLFNBQVMsQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUF1QixPQUF0QixHQUFJLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQVMsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDOUMsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQzFDLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQzlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQzlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQzlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFLLEVBQzlDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUM5QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQzVDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUM3QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFDN0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLE1BQU0sR0FBSSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQzdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM5QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFDOUMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQzNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUM5QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBUSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQzVDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUM5QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBVyxPQUFULElBQUksRUFBRSxDQUFDLEVBQVMsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQXNCLE9BQXJCLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBVSxFQUM5QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBc0IsT0FBckIsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQVMsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDOUMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDOUMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFJLEtBQUssSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQzlDLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxNQUFNLEdBQUksRUFBRSxHQUFJLEVBQzlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBYSxPQUFaLEdBQUksSUFBSSxHQUFXLElBQUksR0FBSSxFQUFFLENBQUMsRUFDOUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksS0FBSyxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FDN0MsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUksSUFBSSxLQUFJLEdBQUcsRUFBRSxNQUFLLEdBQUcsRUFBRSxJQUFHLEVBQy9DLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBRyxHQUFHLEdBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUMvQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFJLEdBQUcsSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDOUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUMvQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssSUFBSSxFQUMvQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssSUFBSSxFQUMvQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUM5QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUM5QyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFDOUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFVLE9BQVAsRUFBRSxHQUFHLEVBQVMsRUFDL0MsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQy9DLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDL0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMvQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQy9DLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FDNUMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQW9CLE9BQW5CLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQzVDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxPQUFPLEdBQUksQ0FBQyxFQUMvQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBSSxDQUFDLEdBQUcsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUMvQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBSSxDQUFDLEdBQUcsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUMvQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQy9DLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFHLEVBQUUsQ0FBQyxFQUMvQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFDL0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUMxQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQzFDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FDMUMsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDL0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQVEsR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUMvQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEdBQVUsR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLENBQUMsRUFDL0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQy9DLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMvQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDL0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQy9DLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDL0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQy9DLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUM5QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFDL0MsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxpQkFBaUIsQ0FBQyxFQUMvQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FDNUMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksRUFBRSxDQUFDLEVBQVEsT0FBTixFQUFFLEVBQUUsRUFBUyxFQUNoRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQWtCLFFBQWQsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBUyxFQUMvQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFxQixPQUFwQixFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUMvQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQy9DLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQy9DLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUNoRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFDaEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFDL0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFDL0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFDL0MsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUM5QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUMvQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUMvQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFDL0MsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUMvQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQ2hELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUcsRUFDaEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQXdCLE9BQXZCLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBUyxFQUNoRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBbUIsT0FBbEIsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQVMsRUFBRSxFQUFFLEdBQy9DLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFtQixPQUFsQixHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBUyxFQUFFLEVBQUUsR0FDL0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUNoRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQ2hELFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDaEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNoRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2hELFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBRyxHQUFHLEdBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUNoRCxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFJLElBQUksSUFBSSxFQUFFLENBQUMsRUFDaEQsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFHLEdBQUcsR0FBSSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQ2hELFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBRyxHQUFHLEdBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUNoRCxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxHQUFNLEdBQU0sR0FBTSxFQUFLLEVBQy9DLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUNoRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxFQUNoRCxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksR0FDOUMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEdBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDaEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNoRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDaEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNoRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDaEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDaEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFDaEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUksRUFBRSxDQUFDLEVBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFJLEVBQUUsQ0FBQyxFQUNoRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBUSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFDaEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQ2hELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQ2hELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFtQixPQUFsQixFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBUyxFQUFFLEVBQUUsR0FDL0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLENBQUMsRUFBRSxPQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFDaEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQWEsT0FBWixHQUFJLElBQUksR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQ2hELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQ2hELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQ2hELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDaEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQy9DLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDakQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDakQsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssR0FDL0MsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ2pELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUNqRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNqRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxPQUN4QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUMvQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUNqRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNqRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNqRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ2hELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDaEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUcsR0FDOUMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksQ0FBQyxFQUFXLE9BQVQsSUFBSSxFQUFFLENBQUMsRUFBUyxFQUNqRCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBMEIsT0FBeEIsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFTLEVBQ2pELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUNqRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ2pELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2pELFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksRUFDakQsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUNqRCxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQy9DLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FDL0MsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssQ0FBQyxFQUNoRCxTQUFTLEdBQUUsRUFBRSxDQUFDLElBQUcsRUFBSSxJQUFHLElBQUksSUFBRyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDakQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ2pELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBUSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNqRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQ2pELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFDakQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUNqRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQ2pELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNqRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDakQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBdUIsT0FBdEIsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUNqRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUF1QixPQUF0QixFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ2pELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQXVCLE9BQXRCLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDakQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBSSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUUsT0FBTyxJQUFHLENBQUMsRUFDakQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFhLE9BQVosR0FBSSxJQUFJLEdBQVcsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEVBQ2pELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLE9BQVEsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFDbEQsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsT0FBUSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUNsRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUNoRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUcsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQ2xELFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUM5QyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUNsRCxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNsRCxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUssRUFBRSxLQUFLLEdBQy9DLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFRLE1BQU0sUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLLEdBQ2hELFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDbEQsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ2xELFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNsRCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDbEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUNsRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUssR0FBSSxDQUFDLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQ2xELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQ2pELFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBRyxFQUFFLEtBQUksS0FBSyxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUNsRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUksRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssR0FBRyxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQ2pELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxLQUFLLEdBQUcsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNqRCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNsRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBRSxHQUFLLEVBQUUsR0FBRyxDQUFDLEVBQ2pELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDakQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUcsRUFDakQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsR0FBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUNsRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBRyxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQ2xELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ2xELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQ2xELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQ2xELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ2xELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQU0sSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUNoRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDbEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDbEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQ2xELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksR0FBVSxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsR0FBRyxFQUFHLEVBQ2xELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxLQUMvQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFJLENBQUMsRUFBRyxNQUFPLEdBQUcsRUFBRSxPQUFPLElBQUcsQ0FBQyxFQUNsRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUNsRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUF3QixPQUF2QixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ2xELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNsRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQ2xELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUssRUFBRSxLQUFLLEVBQUUsR0FDOUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxtQkFBbUIsQ0FBQyxFQUNqRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxFQUNsRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxFQUNsRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDbEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQ2xELFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUNuRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFDbEQsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUcsS0FBSyxLQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFDbkQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQWEsT0FBWixHQUFJLElBQUksR0FBVyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQWEsT0FBWixHQUFJLElBQUksR0FBVyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDbEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDbkQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFDbEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFDbkQsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLElBQUksSUFBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUNuRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNsRCxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRSxFQUFHLEVBQ25ELFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLElBQUksV0FBWSxJQUFJLElBQ2pELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQ2xELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLE9BQU8sRUFBRSxFQUNuRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksQ0FBQyxFQUFlLE9BQWIsR0FBSSxHQUFHLElBQUksRUFBUyxFQUNuRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksQ0FBQyxFQUFlLE9BQWIsR0FBSSxHQUFHLElBQUksRUFBUyxFQUNuRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEdBQUcsRUFBVSxPQUFSLElBQUcsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUNuRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFHLEtBQ2hELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEtBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUNuRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUNuRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFZLE9BQVgsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ25ELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDbkQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNuRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUNsRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEdBQzlDLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNuRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUksRUFBRSxLQUFLLEVBQUUsRUFDbkQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUNuRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUF5QixPQUF4QixJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDbkQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUE2QixPQUE1QixHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBWSxFQUNuRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQTJCLE9BQXpCLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBUyxFQUFFLEVBQ25ELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFDcEQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQ2xELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbkQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsS0FDaEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUNwRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ25ELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxLQUFNLE1BQU0sR0FBSSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQ2xELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFDcEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLE1BQU8sR0FBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQ25ELFNBQVMsR0FBRSxFQUFFLENBQU0sT0FBTCxHQUFHLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBRSxDQUFDLEVBQ3BELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3BELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNwRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FDakQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQTRCLE9BQTFCLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ3BELFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUcsRUFBRSxDQUFDLEVBQVksT0FBVixHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDcEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUNuRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRyxFQUFFLEtBQUssR0FBSSxFQUFFLEdBQUcsRUFDbkQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNwRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUNwRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDcEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3BELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUNwRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUksR0FBSSxHQUFHLEdBQUksT0FBTyxHQUFHLEVBQ25ELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBSSxHQUFJLEdBQUcsR0FBSSxPQUFPLEdBQUcsRUFDbkQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUksR0FBSSxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQ3BELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFDcEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUNwRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQ3BELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFzQixPQUFyQixFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQVUsRUFBRSxHQUFHLENBQUMsRUFDcEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQWdCLE9BQWYsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQVMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUNwRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUNwRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFHLEdBQUcsR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFDcEQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUNsRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFDcEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUNwRCxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUssS0FBSyxFQUFFLEdBQ2pELFNBQVMsR0FBRSxFQUFFLENBQUMsSUFBRyxFQUFJLElBQUcsSUFBSSxJQUFHLEVBQUssRUFBRSxJQUFHLElBQUksSUFBRyxFQUFJLEVBQ3BELFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxJQUFJLElBQUcsQ0FBQyxFQUFHLEVBQ3JELFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxJQUFJLElBQUcsQ0FBQyxFQUFHLEVBQ3JELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxJQUFJLElBQUcsQ0FBQyxFQUFHLEVBQ3JELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxJQUFJLElBQUcsQ0FBQyxFQUFHLEVBQ3JELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLE9BQVEsRUFBRyxFQUFFLEVBQUUsSUFBSSxJQUFHLENBQUMsRUFBRyxFQUNyRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxPQUFRLEVBQUcsRUFBRSxFQUFFLElBQUksSUFBRyxDQUFDLEVBQUcsRUFDckQsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsT0FBUSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFHLEVBQ3JELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQWEsT0FBWixHQUFJLElBQUksR0FBVyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFDcEQsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQW9CLE9BQW5CLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFTLElBQUksSUFBRyxFQUFFLENBQUMsRUFDckQsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxHQUFHLEVBQVUsT0FBUixHQUFHLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFBRSxFQUNyRCxTQUFTLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFXLE9BQVQsSUFBSSxFQUFFLENBQUMsRUFBUyxFQUNyRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFnQixPQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ3JELFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxFQUNyRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQU0sTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLEtBQUssRUFBRSxFQUNyRCxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsSUFBRyxLQUFLLENBQUMsRUFDckQsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFDckQsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUksR0FBRyxFQUFFLElBQUcsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUNyRCxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBSSxHQUFHLEVBQUUsSUFBRyxJQUFJLEtBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQ3JELFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFLLEdBQUksSUFBRSxLQUFNLElBQUksRUFDcEQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ3BELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFRLEVBQUUsR0FBRyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxPQUMvQyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDckQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3JELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQ3JELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQ3JELFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQXVCLE9BQXRCLElBQUksR0FBRyxNQUFNLElBQUcsRUFBRSxDQUFDLENBQUMsRUFBUyxFQUFFLEdBQUcsRUFDckQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQW1CLE9BQWxCLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFTLEVBQUUsT0FBTyxDQUFDLEVBQ3JELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFDcEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNyRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUNuRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUNyRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUNyRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNyRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ3JELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFDckQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLFFBQVEsR0FBRyxFQUFFLEtBQUssUUFBUSxDQUFDLEVBQ3JELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDckQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFDckQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUE2QixPQUEzQixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFVLEVBQUUsRUFDckQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUE2QixPQUEzQixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFVLEVBQUUsRUFDckQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQTZCLE9BQTVCLEVBQUUsR0FBRyxPQUFPLGFBQWEsQ0FBQyxFQUFTLEVBQ3JELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUE2QixPQUE1QixFQUFFLEdBQUcsT0FBTyxhQUFhLENBQUMsRUFBUyxFQUNyRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDckQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQ3JELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNyRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDckQsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQ3RELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsR0FBSSxFQUFHLEVBQUUsSUFBSyxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQ25ELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUN0RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQ3JELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUssS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNyRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN0RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUN0RCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUN0RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLEVBQ3JELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBUSxPQUFQLEdBQUksQ0FBQyxFQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLENBQUMsRUFDdEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQVEsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUNyRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFJLE1BQU8sR0FBTSxPQUFPLEdBQUksR0FBSSxDQUFDLEVBQ3JELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRyxPQUFPLElBQUksSUFBSSxPQUFPLElBQUksRUFBRSxDQUFDLEVBQ3RELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFDdEQsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUcsQ0FBQyxFQUNyRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQVUsSUFBSSxFQUFFLENBQUMsRUFDckQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFLLElBQUksQ0FBQyxNQUFPLEdBQUUsRUFBRSxHQUFHLEVBQ3JELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FDbEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFzQixPQUFwQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEdBQUcsRUFDdEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDdEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ3RELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDdEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFDdEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUN0RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ3RELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxFQUN0RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQU0sTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLE9BQU8sRUFDdEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLE9BQU8sRUFBRSxFQUN0RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxFQUFFLEVBQ3RELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxPQUFPLEVBQUUsRUFDdEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLE9BQU8sRUFBRSxFQUN0RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxFQUFFLEVBQ3RELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxPQUFPLEVBQUUsRUFDdEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUE4QixPQUE1QixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUcsR0FBVSxFQUFFLEVBQ3RELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBOEIsT0FBN0IsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQVMsRUFBRSxFQUN0RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxHQUFHLENBQUMsRUFBYyxPQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ3ZELFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDdkQsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN2RCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDdkQsU0FBUyxFQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUNyRCxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLElBQUssR0FBSSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFDdEQsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFLLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQ3RELFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUsseUJBQXlCLENBQUMsRUFDdEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxhQUFhLE1BQU0sS0FBSyxDQUFDLEVBQ3ZELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3ZELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksR0FBVSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFDdkQsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFXLE9BQVYsR0FBRyxFQUFFLEdBQUcsRUFBUyxHQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQ3ZELFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFNLE9BQUwsR0FBRyxFQUFTLElBQUksSUFBRyxJQUFJLElBQUcsQ0FBQyxFQUFFLElBQUksSUFBRyxDQUFDLENBQUMsRUFDdkQsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUksSUFBRyxJQUFJLElBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ3ZELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBK0IsT0FBN0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFVLEVBQUUsRUFDdkQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUErQixPQUE3QixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQVUsRUFBRSxFQUN2RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQStCLE9BQTdCLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBVSxFQUFFLEVBQ3ZELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUN2RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFJLENBQUMsRUFBYSxPQUFYLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxFQUN2RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDdkQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFDdkQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUNwRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUN2RCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUN2RCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUN2RCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUcsQ0FBQyxFQUN2RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQStCLE9BQTdCLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBVSxFQUFFLEVBQ3ZELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBK0IsT0FBN0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFVLEVBQUUsRUFDdkQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUErQixPQUE3QixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQVUsRUFBRSxFQUN2RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQStCLE9BQTdCLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBVSxFQUFFLEVBQ3ZELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBaUMsT0FBaEMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBUyxFQUN2RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQStCLE9BQTlCLEVBQUUsR0FBRyxJQUFLLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFTLEVBQUUsRUFDdkQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUErQixPQUE5QixFQUFFLEdBQUcsSUFBSyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBUyxFQUFFLEVBQ3ZELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBMkIsT0FBMUIsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBUyxFQUN2RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksRUFDdEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQ3RELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUN2RCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUN4RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBaUIsT0FBaEIsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFTLEVBQUUsV0FBVyxDQUFDLEVBQ3ZELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUN2RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDdkQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQVEsT0FBUCxHQUFJLENBQUMsRUFBUyxJQUFJLEdBQUksRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN4RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBUSxPQUFQLEdBQUksQ0FBQyxFQUFTLElBQUksR0FBSSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3hELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFRLE9BQVAsR0FBSSxDQUFDLEVBQVMsSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDeEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQVEsT0FBUCxHQUFJLENBQUMsRUFBUyxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN4RCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUN4RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDeEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixJQUFJLEVBQVMsSUFBSyxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFDeEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxNQUFNLEdBQUksR0FBSSxFQUFFLFlBQVksQ0FBQyxFQUN2RCxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFDdkQsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQXdCLE9BQXJCLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLENBQUMsR0FBVSxFQUN4RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsT0FBTyxLQUNyRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBeUIsT0FBdkIsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBUyxFQUN4RCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ3hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUN4RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDeEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN4RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDeEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN4RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3hELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3hELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDeEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLE1BQU0sS0FBSyxFQUFFLEVBQ3hELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ3hELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsMkJBQTJCLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDeEQsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSywyQkFBMkIsRUFDdkQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN4RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3hELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDeEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN4RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQ3hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDeEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBdUIsT0FBckIsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBUyxFQUN4RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQTJCLE9BQXpCLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ3hELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBMkIsT0FBekIsR0FBRyxFQUFFLElBQUksR0FBSSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQVMsRUFDeEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBVyxPQUFULElBQUksRUFBRSxDQUFDLEVBQVMsS0FDckQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFnQyxPQUE5QixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQVUsRUFBRSxFQUN4RCxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQW9DLE9BQW5DLEdBQUksR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFLLEVBQUUsS0FBSyxFQUFJLEVBQVMsRUFDekQsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLEVBQUUsSUFBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLE9BQU8sRUFDekQsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFTLEdBQVIsR0FBRyxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUN2RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQW1CLE9BQWxCLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQ3pELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQ3pELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQ3hELFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUcsS0FBSyxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQ3pELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUN4RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFDeEQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxDQUFDLEdBQUcsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFDekQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN6RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBaUMsT0FBaEMsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFDekQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQWlDLE9BQWhDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFDekQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUN6RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFhLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUN6RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFhLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUN6RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDekQsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQ3pELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDekQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFDeEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFDeEQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBUSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQ3pELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFDekQsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUksRUFBRSxJQUFLLEdBQUksRUFDekQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQ3pELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN6RCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FDdkQsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQ3ZELFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUN2RCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FDdkQsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQU0sTUFBTSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQzFELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBaUMsT0FBL0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFVLEVBQUUsRUFDekQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFpQyxPQUEvQixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQVUsRUFBRSxFQUN6RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQWlDLE9BQS9CLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBVSxFQUFFLEVBQ3pELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUcsQ0FBQyxFQUFTLElBQUcsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQzFELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFhLE9BQVosR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQVMsSUFBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFDekQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ3pELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQ3pELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDekQsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBRyxLQUFLLEtBQUssSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUMxRCxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssS0FBSyxFQUFFLEVBQzFELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDekQsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUcsSUFBRyxFQUFFLElBQUksRUFBRyxFQUMxRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQzFELFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFHLEVBQUUsR0FBRyxDQUFDLEVBQzFELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQzFELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQzFELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxRQUFTLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUksQ0FBQyxFQUMxRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUMxRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFnQixPQUFkLElBQUksRUFBRSxFQUFFLE1BQWEsRUFDMUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU8sR0FDdEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUMxRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQzFELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQzFELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDMUQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRyxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUMxRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFHLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQzFELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUcsR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFDMUQsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksSUFDeEQsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FDeEQsU0FBUyxFQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQ3pELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDMUQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQzFELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzFELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzFELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDMUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFDM0QsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQzFELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQzFELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQWtCLE9BQWhCLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFDM0QsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQU0sTUFBTSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQzNELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUMxRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FDMUQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUMxRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUMzRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFtQixPQUFsQixHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBUyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFDM0QsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDM0QsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBTSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLGFBQWEsRUFBRSxFQUMxRCxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUssbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUN6RCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQzNELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFDM0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUcsQ0FBQyxFQUMzRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBRyxDQUFDLEVBQzNELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFDM0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUcsQ0FBQyxFQUMzRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQzNELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFDM0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxFQUMzRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksRUFBRyxDQUFDLEVBQzNELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsRUFDM0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxFQUMzRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksRUFBRyxDQUFDLEVBQzNELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFHLENBQUMsRUFDM0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUMzRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQzNELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFDM0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUMzRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksRUFBRyxDQUFDLEVBQzNELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFHLENBQUMsRUFDM0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUcsQ0FBQyxFQUMzRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQzNELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFDM0QsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxHQUFJLEVBQUUsQ0FBQyxFQUMzRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxHQUFJLEVBQUUsQ0FBQyxFQUMzRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxHQUFJLEVBQUUsQ0FBQyxFQUMzRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQW1DLE9BQWxDLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFTLEVBQUUsRUFDM0QsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDMUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDMUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFDM0QsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFHLEtBQUssS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUcsRUFBSSxFQUFFLEtBQUssRUFBRSxFQUM1RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzNELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEdBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDM0QsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUM1RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDM0QsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzVELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM1RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBUSxPQUFQLElBQUksQ0FBQyxFQUFTLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUM1RCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBMkIsT0FBMUIsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFTLElBQUksSUFBRyxFQUFFLENBQUMsRUFDNUQsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUcsRUFBRSxXQUFXLENBQUMsR0FBRyxPQUFPLEdBQUcsS0FBSyxFQUFFLEVBQzVELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUEyQixPQUF6QixFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFDNUQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM1RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM1RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDNUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSyxDQUFDLENBQUMsRUFDNUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFJLEdBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQzVELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDNUQsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSSxFQUFFLEVBQUcsRUFBRSxXQUFXLEVBQUUsRUFDNUQsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FBSSxFQUFFLElBQUksSUFBSSxDQUFDLEdBQzNELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDNUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUM1RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzVELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUN6RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFDVCxPQUFsQixFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQVMsSUFBSSxFQUM5QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUksR0FDNUQsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxPQUFPLEtBQUssT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQzVELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsT0FBTyxLQUFLLE9BQU8sRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUM1RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLE9BQU8sS0FBSyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFDNUQsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLElBQUksR0FBSSxDQUFDLEVBQzNELFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxJQUFJLEdBQUksQ0FBQyxFQUMzRCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksSUFBSSxLQUFLLENBQUMsRUFDNUQsU0FBUyxHQUFFLEVBQUUsQ0FBQyxJQUFHLEVBQUksSUFBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFFLENBQUMsRUFBRSxFQUM3RCxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQVcsT0FBVCxJQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQzdELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFxQyxPQUFwQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFTLEVBQzdELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBVSxPQUFQLElBQUksQ0FBQyxFQUFTLEdBQUssTUFBTyxHQUN6RCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxJQUFHLEVBQUUsQ0FBQyxFQUM3RCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDN0QsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFDNUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUM3RCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzVELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQzdELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUM1RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLEdBQ3pELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUssR0FDekQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFLLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFDN0QsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQzdELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUF1QixPQUFyQixFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQUUsR0FBRyxFQUM3RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBVSxPQUFSLElBQUcsRUFBRSxDQUFDLEVBQVMsSUFBSSxHQUFJLENBQUMsRUFDN0QsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUM3RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzdELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsT0FBTyxLQUFLLE9BQU8sRUFBRyxFQUFFLEdBQUcsR0FBRyxFQUM3RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLE9BQU8sS0FBSyxPQUFPLEVBQUcsRUFBRSxHQUFHLEdBQUcsRUFDN0QsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxPQUFPLEtBQUssT0FBTyxFQUFHLEVBQUUsR0FBRyxHQUFHLEVBQzdELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsT0FBTyxLQUFLLE9BQU8sRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUM3RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLE9BQU8sS0FBSyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFDN0QsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxPQUFPLEtBQUssT0FBTyxFQUFHLEVBQUUsR0FBRyxHQUFHLEVBQzdELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQW1CLE9BQWpCLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFXLEdBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FDN0QsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQzlELFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxFQUM3RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFDOUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FDN0QsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FDN0QsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUM3RCxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDN0QsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxJQUFHLElBQUksR0FBRyxFQUM3RCxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksSUFBSSxJQUFLLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQzlELFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBSSxJQUFJLElBQUssR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFDOUQsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUM5RCxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksSUFBSSxJQUFLLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQzlELFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksR0FBSSxJQUFJLElBQUssR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFDOUQsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUM5RCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLEdBQUksSUFBSSxJQUFLLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQzlELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM3RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEdBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM5RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDOUQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM5RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDOUQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM5RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUssR0FDMUQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sR0FBSSxFQUFFLENBQUMsRUFDOUQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFDOUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDOUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBaUMsT0FBL0IsR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBaUMsT0FBL0IsR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQzlELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFlLEdBQVQsRUFBRSxFQUFFLEdBQUcsR0FBTSxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQzdELFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQXFDLE9BQXBDLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFTLEVBQzlELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQzlELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFDL0QsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMvRCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDL0QsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDL0QsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQy9ELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUM5RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBSyxLQUFLLElBQUksQ0FBQyxFQUM5RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUM5RCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFHLEtBQUssS0FBSyxJQUFJLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQy9ELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxHQUFJLEVBQUUsS0FBSyxLQUFLLEdBQU0sRUFBRSxDQUFDLEVBQy9ELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxHQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFLLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDL0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsRUFDL0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBSSxHQUFHLENBQUMsRUFDL0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUcsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDL0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRyxDQUFDLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsRUFDL0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRyxDQUFDLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUcsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsRUFDL0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUMvRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUcsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksSUFBSSxJQUFLLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFJLEVBQzlELFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUMvRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDL0QsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDL0QsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQy9ELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUM3RCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDOUQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQzlELFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQU0sRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUMvRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUE2QixPQUEzQixHQUFJLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsS0FBWSxHQUFJLEVBQUUsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFDL0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLENBQUMsRUFDL0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUcsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsRUFDL0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQy9ELFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUMvRCxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDL0QsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQy9ELFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUcsQ0FBQyxFQUFTLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2hFLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFDaEUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDaEUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDaEUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDaEUsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFLLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBa0IsT0FBaEIsTUFBTSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQVMsRUFBRSxDQUFDLEVBQ2hFLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUF3QixPQUF0QixFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQVMsSUFBSSxJQUFHLEVBQUUsQ0FBQyxFQUNoRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLE9BQU8sS0FBSyxPQUFPLEVBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUMvRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQzdELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxPQUFPLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FDN0QsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFpQyxPQUFoQyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQy9ELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNoRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFDaEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDaEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQy9ELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFNLEtBQUssRUFBRSxHQUMzRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQXVDLE9BQXRDLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBUyxFQUFFLEVBQy9ELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBdUMsT0FBdEMsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFTLEVBQUUsRUFDL0QsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDaEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDaEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDaEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDaEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUM3RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ2hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2hFLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQ2hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQ2hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFvQixPQUFsQixFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFDaEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWUsT0FBYixFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBUyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFDaEUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUNoRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxLQUFLLEVBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUMvRCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBWSxHQUFYLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFDaEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNoRSxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksRUFDaEUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQ2hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQ2hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsSUFDOUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxJQUM5RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLElBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsSUFDOUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxJQUM5RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLElBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsSUFDOUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxJQUM5RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNoRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEdBQUcsR0FBSSxFQUFFLElBQUssS0FBSyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQ2hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBSyxLQUFLLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFDaEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQ2hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxDQUFDLEVBQ2hFLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUNqRSxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFHLENBQUMsQ0FBQyxFQUNqRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsR0FBSSxFQUFFLENBQUMsR0FDL0QsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVMsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQy9ELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFHLFFBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxHQUFJLEVBQUUsQ0FBQyxFQUNoRSxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFTLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDakUsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQXVCLE9BQXJCLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQUksRUFBRSxDQUFDLEVBQ2pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUEyQixPQUF6QixFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFTLEdBQUksRUFBRSxDQUFDLEVBQ2pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNqRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDakUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBZ0MsT0FBL0IsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ2hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBcUMsT0FBcEMsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEtBQUssR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUNqRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQ2pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFDakUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFDakUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFJLEVBQUUsR0FBRyxJQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFDakUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUNoRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLEdBQ2hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBdUMsT0FBdEMsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFTLEVBQUUsRUFBRSxFQUNqRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ2pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFDakUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUNqRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ2pFLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ2pFLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFDbEUsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssVUFBVyxHQUFJLEdBQUcsQ0FBQyxNQUFNLFFBQVEsRUFBTixFQUFXLE9BQU8sRUFDakUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFPLEdBQU4sR0FBSSxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEtBQzlELFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQW1CLE9BQWIsSUFBRyxFQUFFLElBQUksQ0FBRSxFQUFTLEdBQy9ELFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBTyxPQUFKLEVBQUUsRUFBUyxHQUFHLEdBQUksRUFBRSxFQUFFLE9BQU8sSUFBRyxDQUFDLEVBQ2xFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFPLEdBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFPLEdBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFPLEdBQzlELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQXVDLE9BQXJDLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBUyxFQUNsRSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQW1DLE9BQWpDLEdBQUcsR0FBRyxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBSSxJQUFJLENBQUMsRUFBUyxFQUNqRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUF1QyxPQUFyQyxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQVMsRUFDbEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFlLE9BQVosRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFTLEdBQUssTUFBTyxHQUM5RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssR0FBRyxHQUFJLEVBQUUsS0FBSyxLQUFLLEdBQU0sS0FBSyxFQUFLLEVBQ2pFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFDbEUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQ2pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFLLEVBQ2pFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUNsRSxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxJQUFHLENBQUMsQ0FBQyxFQUNsRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUksRUFBRSxHQUFHLElBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUNsRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEdBQVUsR0FBSSxDQUFDLE1BQU0sR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUNoRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUNqRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUNsRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUNsRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNsRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNsRSxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFHLEVBQUUsR0FBRyxDQUFDLE9BQU8sSUFBRyxFQUFFLEVBQUUsQ0FBQyxTQUFFLENBQVEsSUFBRyxDQUFDLEdBQ2pFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFtQyxPQUFqQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBVSxFQUNsRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBbUMsT0FBakMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQVUsRUFDbEUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQW1DLE9BQWpDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFVLEVBQ2xFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFtQyxPQUFqQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxJQUFJLENBQUMsR0FBVSxFQUNsRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLENBQUMsRUFBMEIsT0FBeEIsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDbEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbEUsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNuRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2xFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FDakUsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ25FLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFDbkUsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxRQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFDbkUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUF5QyxPQUF4QyxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBUyxFQUFFLEVBQUUsRUFDbkUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFDbkUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDbkUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFDbEUsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFDbkUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUNsRSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQ2xFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLEVBQUUsRUFDbEUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFDbkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFDbkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDbkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDbkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksSUFBSSxHQUFHLENBQUMsRUFDbkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDbkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFDbkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDbkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFDbkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFDbkUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFJLEVBQUUsTUFBTyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQ2xFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ25FLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQWtCLE9BQWYsSUFBSSxFQUFFLElBQUksSUFBWSxFQUNuRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQU8sR0FBTixHQUFJLEVBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sS0FDaEUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUNoRSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxXQUFXLENBQUMsRUFDbEUsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLElBQUksUUFBUSxDQUFDLEVBQUUsR0FBSSxJQUFJLElBQUksUUFBUSxDQUFDLEVBQ25FLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUNuRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxHQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxDQUFDLEVBQUUsR0FBRyxFQUNuRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxHQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxDQUFDLEVBQUUsR0FBRyxFQUNuRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUNuRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBSSxJQUFJLEdBQUcsQ0FBQyxFQUNuRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUNuRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUNuRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUNuRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUNuRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUNuRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUNuRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBSSxJQUFJLENBQUMsRUFBRSxFQUFHLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUNoRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDbkUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxDQUFDLEVBQTJCLE9BQXpCLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ25FLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksQ0FBQyxFQUEyQixPQUF6QixHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUNuRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXNDLE9BQXBDLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ25FLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUE0QixPQUExQixFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUNuRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDbEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDbkUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBSSxFQUFHLEdBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUNuRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxHQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FDbEUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLE9BQU8sR0FBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQ2xFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxPQUFPLEdBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUNsRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxHQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FDbEUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEdBQUksT0FBTyxHQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDcEUsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxhQUFhLEdBQUcsS0FBSyxHQUFJLEdBQUksQ0FBQyxFQUNwRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNwRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFDcEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBYSxHQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ3BFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ3BFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNuRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUNwRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQ3BFLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQThCLE9BQTFCLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBUyxFQUFFLEVBQ3BFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLE1BQU0sRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsT0FBTyxFQUNwRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLENBQUMsRUFBNEIsT0FBMUIsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDcEUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQ3BFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQVcsT0FBVCxJQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQUUsR0FBRyxDQUFDLEVBQ3BFLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFPLFFBQU8sRUFBRSxFQUFFLEdBQ2xFLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQ3JFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFHLEtBQUssR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUNwRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUFJLEVBQUUsR0FBRyxJQUFLLEdBQUcsR0FBSSxFQUFFLEdBQ25FLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQU0sQ0FBQyxFQUNwRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLENBQUMsRUFDcEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxDQUFDLEVBQ3BFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsT0FBTyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNyRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQXNDLE9BQXJDLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FDcEUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFDcEUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLElBQUksd0JBQXdCLENBQUMsQ0FBQyxFQUNwRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBVSxFQUFFLEVBQUUsR0FBRyxFQUNyRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQU8sRUFBRSxNQUFPLEdBQ3JFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUErQixPQUE5QixHQUFJLEVBQUUsT0FBTyxhQUFhLEVBQUUsRUFBUyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUNyRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBK0IsT0FBOUIsR0FBSSxFQUFFLE9BQU8sYUFBYSxFQUFFLEVBQVMsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDckUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNwRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUNuRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDckUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3JFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDckUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3JFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFDdEUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQ3RFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUNyRSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFDdEUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFDdEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUNyRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQ3JFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDdEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFTLE9BQVAsSUFBSSxDQUFDLEVBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDdEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUNwRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxPQUFPLEVBQUUsRUFDdEUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUcsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFvQixPQUFsQixFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFTLEVBQ3RFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFHLEdBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLE9BQU8sRUFDdEUsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUF1QixHQUF0QixHQUFHLEtBQUksSUFBRyxFQUFFLElBQUcsSUFBSSxHQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUksSUFBRyxFQUFFLEVBQUUsR0FBRyxJQUNoRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUN0RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFDdEUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQ3RFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFHLENBQUMsRUFBRSxFQUN0RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBRyxDQUFDLEVBQUUsRUFDdEUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQ3RFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUN0RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksRUFBRyxDQUFDLEVBQUUsRUFDdEUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQ3RFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsRUFBRSxFQUN0RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFDdEUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQ3RFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsRUFBRSxFQUN0RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFDdEUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ3RFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsRUFBRSxFQUN0RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFDdEUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQ3RFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUN0RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFDdEUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ3RFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUN0RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFDdEUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUN0RSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQ3RFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQ3RFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFRLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsS0FBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFDdEUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLFFBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUksQ0FBQyxFQUNyRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUN0RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQ3RFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFDdEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsTUFBTSxFQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxPQUFPLEVBQ3RFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxPQUFPLEVBQ3RFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFhLE9BQVQsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUN2RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQ3RFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFDdkUsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxHQUFLLElBQUksR0FBTSxJQUFJLEdBQU0sSUFBSSxHQUFNLElBQUksR0FDbEUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFPLEdBQU4sR0FBSSxFQUFLLEdBQUssT0FBTyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBSyxLQUFLLEVBQUUsSUFBSSxHQUNyRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUN2RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQ3ZFLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRyxFQUN2RSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxlQUFlLENBQUMsRUFDdEUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBUSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUcsRUFDdkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUN2RSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQ3ZFLFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFDdkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUN2RSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQ3ZFLFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFDdkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUN2RSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQ3ZFLFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDdkUsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUN2RSxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQU0sT0FBTCxHQUFHLFVBQWlCLEVBQUUsQ0FBQyxPQUFPLElBQUcsRUFBRSxLQUFLLFNBQVMsRUFBRSxJQUFJLEdBQ3RFLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUcsTUFBTyxHQUFNLFFBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQ3ZFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU8sR0FDbkUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUN2RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFDdkUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQ3ZFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3ZFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3ZFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3ZFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3ZFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN2RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBcUIsT0FBbkIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQVcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUN2RSxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDdkUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFDdkUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLE9BQU8sT0FBTyxHQUFJLEdBQUksT0FBTyxHQUFJLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUN4RSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBVyxPQUFSLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxFQUFFLEdBQUcsTUFBTyxPQUFNLEdBQUksSUFBSSxFQUFHLEVBQ3ZFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQ3hFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQ3hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxHQUFHLEtBQUssR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUN2RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQ3ZFLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFxQyxPQUFqQyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxJQUFJLEVBQVMsRUFDeEUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFrQixPQUFoQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsR0FBRyxHQUN0RSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBa0MsT0FBaEMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQVMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUN4RSxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFDdkUsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXFCLEdBQW5CLEVBQUUsRUFBRyxJQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFDdkUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDeEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDeEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDeEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFLLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3hFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDeEUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDeEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3hFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUssR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUN2RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDdkUsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBa0IsT0FBZixJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQ3pFLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBVSxPQUFQLEdBQUksQ0FBQyxFQUFTLEdBQUcsQ0FBQyxFQUN6RSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQTZDLE9BQTNDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBUyxFQUN6RSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBaUIsT0FBZixJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ3pFLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUN6RSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQWlCLE9BQWIsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDekUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQTRCLE9BQTFCLEdBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEdBQVUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDekUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQ3pFLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBa0IsR0FBakIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEVBQUUsR0FBRyxFQUFTLE9BQU4sRUFBRSxFQUFFLEVBQVMsR0FBSyxNQUFPLEdBQ3BFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFpRCxPQUEvQyxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDekUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ3pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDekUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN6RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssR0FBRyxHQUFJLEVBQUUsS0FDckUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUN4RSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsRUFDekUsU0FBUyxFQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUN2RSxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQ3ZFLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FDdkUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUN6RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDeEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQTBCLE9BQXhCLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBUyxJQUFJLEVBQUUsQ0FBQyxFQUN6RSxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDekUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEtBQUssT0FBTyxFQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQ3pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRyxPQUFPLElBQUksRUFBRSxDQUFDLE1BQVEsUUFBTyxFQUFFLE9BQU8sS0FDdEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU8sV0FBVSxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU8sR0FBRyxNQUFPLEdBQ3pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBRyxPQUFPLEVBQUUsRUFDekUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQXFDLFFBQWpDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBUyxFQUFFLEdBQUcsRUFDekUsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUEyQixPQUF6QixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQVMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsQ0FBQyxDQUFDLEVBQzFFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFjLE9BQVgsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLE9BQVUsT0FBTyxHQUNwRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUF5QyxPQUF4QyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBUyxFQUFFLEVBQUUsR0FBRyxHQUN6RSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQ3pFLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFDMUUsU0FBUyxFQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUN2RSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLElBQUssRUFBRSxJQUFJLEdBQUksR0FDdEUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBb0MsT0FBbEMsR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUMxRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQzFFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFRLEdBQVAsR0FBSSxDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBaUIsT0FBZCxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBUyxHQUFLLE1BQU8sR0FDdEUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLHVDQUF1QyxFQUMxRSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxxQ0FBcUMsRUFDeEUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksNEJBQTRCLEdBQUksRUFBRSxJQUFJLEVBQ3pFLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxJQUFJLFVBQVUsQ0FBQyxFQUFFLEdBQUksSUFBSSxJQUFJLFdBQVcsQ0FBQyxFQUN4RSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksSUFBSSxjQUFjLENBQUMsRUFDekUsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQUksWUFBWSxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQUksV0FBVyxDQUFDLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzFFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzFFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzFFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBZ0QsT0FBOUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEtBQU0sRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBVSxFQUFFLEVBQUUsRUFDMUUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFnRCxPQUE5QyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksS0FBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFVLEVBQUUsRUFBRSxFQUMxRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQWdELE9BQTlDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxLQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEdBQVUsRUFBRSxFQUFFLEVBQzFFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBZ0QsT0FBOUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEtBQU0sRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBVSxFQUFFLEVBQUUsRUFDMUUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUE4QyxRQUEzQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQVUsRUFDMUUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUE4QyxRQUEzQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQVUsRUFDMUUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBaUIsT0FBZixJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQzNFLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUcsRUFBRSxDQUFDLEVBQTZCLE9BQTNCLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQzNFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBSSxDQUFDLEVBQUUsT0FBTyxFQUMxRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDeEUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBd0IsT0FBcEIsRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFTLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQzNFLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsU0FBUyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUMzRSxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBNkMsT0FBM0MsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBUyxFQUMzRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3pFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxDQUFDLENBQUMsRUFDMUUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUMzRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQzFFLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUcsS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLElBQUksT0FBUyxNQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FDdkUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FDeEUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQzNFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzNFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRyxFQUMzRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxFQUFHLENBQUMsRUFDM0UsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQzNFLFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUMzRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDM0UsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQzNFLFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUMzRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDM0UsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQzNFLFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUMzRSxTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFDM0UsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFDM0UsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sT0FBbUIsUUFBUixFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQ3ZFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFvRCxPQUFuRCxHQUFJLEVBQUUscUNBQXFDLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFDNUUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFJLEdBQUksRUFBRSxDQUFDLEVBQTJCLE9BQXpCLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQWEsRUFDM0UsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQzNFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUM1RSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBc0IsT0FBcEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzNFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDM0UsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQzNFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFtQyxPQUFsQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQVMsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUM1RSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQTZCLE9BQTVCLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFTLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQzVFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDM0UsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzNFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUMzRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUE4QixPQUE1QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUksRUFBUyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFDNUUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBcUIsT0FBbkIsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFXLEVBQUUsS0FBSyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUM1RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFDNUUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzVFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSSxFQUM1RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQTBCLE9BQXhCLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBUyxJQUFJLEVBQUUsQ0FBQyxFQUM3RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQW1CLFFBQWYsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBUyxHQUFJLEVBQUUsQ0FBQyxFQUM1RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUcsRUFBcUIsT0FBbkIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQVMsRUFDNUUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFHLE1BQU8sR0FBTyxNQUFPLEdBQzFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQVEsR0FBTixHQUFHLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFlLE9BQVosRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFTLEVBQUUsT0FBTyxJQUFJLElBQUcsQ0FBQyxFQUM3RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQzdFLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSSxHQUFJLEVBQUUsS0FBSyxJQUFJLEdBQUksR0FBRyxFQUM3RSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFBSSxjQUFjLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxZQUFZLENBQUMsRUFDN0UsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFDNUUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzVFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sR0FBRyxFQUFFLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FDNUUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBVSxHQUFULEdBQUksRUFBRSxDQUFDLEVBQUssR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLE9BQU8sRUFDN0UsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQXNELE9BQXJELEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFTLEVBQzdFLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUM5RSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzdFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUM1RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzlFLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLE1BQU0sQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUM1RSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFDOUUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksRUFBRyxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUcsRUFDN0UsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUM5RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzlFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFDOUUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUM5RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzlFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsRUFDOUUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUM5RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzlFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFDOUUsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLElBQUksdUJBQXVCLENBQUMsRUFDOUUsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXdDLE9BQXRDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBUyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQzlFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRyxPQUFPLElBQUksQ0FBQyxFQUM3RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsT0FBTyxFQUM5RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsT0FBTyxFQUM5RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLEtBQUssS0FBSyxHQUFJLENBQUMsRUFDN0UsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sR0FBRyxLQUFLLEtBQUssR0FBSSxDQUFDLEVBQzdFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FDN0UsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUM3RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBTSxFQUM5RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQzlFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFDOUUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUM5RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzlFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFDOUUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUM5RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQzlFLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFDOUUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUM5RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzlFLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUM5RSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBb0MsT0FBbkMsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQVMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQy9FLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFVLE9BQVAsSUFBSSxDQUFDLEVBQVMsRUFBRSxFQUFFLE9BQU8sS0FDNUUsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBSSxNQUFPLEdBQWUsT0FBVCxHQUFJLEVBQUUsQ0FBQyxFQUFTLEdBQzVFLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUE4QyxPQUE1QyxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBUyxFQUFFLEVBQy9FLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQW9ELE9BQWxELEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBUyxFQUMvRSxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUF1QixPQUFyQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBWSxFQUMvRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBSSxDQUFDLEdBQVMsR0FBTixFQUFFLEVBQUUsR0FBTSxNQUFNLENBQUMsRUFBRyxPQUFPLEVBQUcsT0FBTyxHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQy9FLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxPQUFPLEVBQUcsTUFBTyxHQUM5RSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWtELE9BQWhELEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQVMsRUFDL0UsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxFQUMvRSxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUM3RSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxLQUFLLEdBQUcsRUFDL0UsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFDOUUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQzlFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMvRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxFQUMvRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBZ0QsT0FBOUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBUyxFQUMvRSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBZ0QsT0FBOUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBUyxFQUMvRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQW9CLE9BQWxCLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsSUFBVyxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQy9FLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQy9FLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBYSxPQUFYLElBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQy9FLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDL0UsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUMvRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQ2hGLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBbUQsT0FBakQsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUNoRixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUE2QyxPQUEzQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQVUsRUFDaEYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUF3RCxPQUF2RCxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxFQUNoRixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLE9BQVMsR0FBRSxNQUFPLFdBQVcsTUFBTyxJQUM5RSxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFHLEdBQUcsR0FBRyxFQUFFLElBQUcsRUFBRSxFQUFHLE9BQVEsSUFBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUM5RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEtBQUssR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQ2hGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ2hGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSSxFQUNoRixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNoRixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFDaEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRyxFQUNoRixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFDL0UsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksTUFBTSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQ2hGLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLE1BQU0sQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUNoRixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFBSSxjQUFjLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxjQUFjLENBQUMsRUFDL0UsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUksSUFBRyxHQUFHLEdBQUksR0FBSSxNQUFNLEVBQUUsSUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsSUFBRyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFHLEdBQUcsQ0FBQyxFQUNoRixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQ2hGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxHQUF5QyxPQUF0QyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUNoRixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBVyxPQUFSLEVBQUUsR0FBRyxDQUFDLEVBQVMsT0FBVSxPQUFPLEdBQzNFLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQU0sTUFBTSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUNqRixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBWSxPQUFULElBQUksRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLE9BQU8sS0FDOUUsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFrQixHQUFoQixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBRyxNQUFPLEdBQUcsRUFBRSxNQUFPLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FDaEYsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFPLEdBQUcsR0FBRyxFQUFFLEtBQUksT0FBTyxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFVLENBQUMsRUFDakYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXVDLE9BQXJDLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFTLElBQUksR0FBSSxFQUFFLENBQUMsRUFDakYsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQW9CLE9BQWxCLEdBQUcsTUFBTSxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ2pGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNqRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQ2hGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNoRixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsR0FBSSxVQUFVLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUM5RSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBRyxNQUFNLElBQUssR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUNoRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBRyxNQUFNLElBQUssR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUNoRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBRyxNQUFNLElBQUssR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUNoRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBRyxNQUFNLElBQUssR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUNoRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQ2hGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQ2pGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQ2pGLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsd0JBQXdCLEtBQUssR0FBRyxFQUFFLHVCQUMxRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxZQUFZLEVBQ2xGLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQThCLE9BQTVCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQVMsRUFBRSxFQUFFLEVBQ2xGLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQThCLE9BQTVCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQVMsRUFBRSxFQUFFLEVBQ2xGLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLE9BQzNFLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFHLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQ2pGLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFHLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQ2pGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFPLEVBQ2hGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUcsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNsRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sRUFDbEYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFPLEdBQzlFLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTyxHQUM5RSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFDbEYsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ2xGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUNsRixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFDbEYsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ2xGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUNsRixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFDbEYsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQ2xGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUNqRixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFDbEYsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQ2xGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUNqRixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxvQkFBb0IsQ0FBQyxFQUNqRixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksSUFBSSx1QkFBdUIsQ0FBQyxFQUNsRixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksSUFBSSxvQkFBb0IsQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLFdBQVcsQ0FBQyxFQUNsRixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FDL0UsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQ25GLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFLLEtBQUssSUFBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDbEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFDbkYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFDbEYsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEtBQU0sTUFBTSxHQUFJLElBQUksRUFBRyxFQUFzQixPQUFwQixFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ25GLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDbEYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFLLEVBQUUsR0FBRyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxPQUFPLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FDL0UsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDbkYsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUNuRixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLFdBQVcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUNsRixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUcsT0FBTyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFHLE9BQU8sR0FBSSxPQUFPLEdBQUksQ0FBQyxFQUNuRixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQWEsT0FBVixHQUFHLEVBQUUsR0FBRyxFQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSyxPQUFPLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEdBQ2pGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFlLEdBQWQsR0FBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUssRUFBRSxFQUFFLEdBQUcsRUFBa0IsT0FBZixFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQUssTUFBTyxHQUMvRSxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBcUIsR0FBbkIsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQU0sRUFBRyxPQUFPLEtBQVMsT0FBSixFQUFFLEVBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQ3BGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQ25GLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxHQUFVLEdBQUksRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDbkYsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUyxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ3BGLFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFDbkYsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUNuRixTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQ25GLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLE9BQU8sRUFDcEYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFDbkYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFDcEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxHQUFHLEdBQUksQ0FBQyxDQUFDLEVBQ3BGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBNEMsT0FBMUMsR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQVMsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUNwRixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FDakYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUE2RCxPQUE1RCxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsS0FBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsS0FBTSxFQUFFLEVBQUUsR0FBVSxFQUNuRixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLE9BQU8sRUFDcEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQ3BGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLE1BQU0sR0FBSSxDQUFDLEVBQVksR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRyxNQUFPLEdBQU0sTUFBTyxHQUNoRixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsR0FBRyxDQUFDLEVBQ3BGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUNwRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3BGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDcEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBSyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbkYsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxLQUFLLEVBQUUsS0FBSyxLQUFLLEdBQUcsR0FBRyxFQUFFLEtBQ2xGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQWtELE9BQWhELEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBUyxFQUNyRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUEwQixPQUF2QixHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBUyxHQUFLLE1BQU8sR0FDakYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLElBQUksMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDbkYsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUkscUJBQXFCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUNuRixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBYyxPQUFiLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBUyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFLLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsRUFDckYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ3BGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFDcEYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssQ0FBQyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQ3BGLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDckYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQ3JGLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsT0FBTyxFQUFFLE1BQXNDLFFBQS9CLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBVSxFQUNwRixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQ3JGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsR0FBRyxHQUNwRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEdBQWdCLE9BQWIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFTLEVBQ3RGLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEtBQU0sT0FBTyxTQUFzQixRQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBUyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQ3BGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sR0FBRyxFQUFFLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNyRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBSSxHQUFJLENBQUMsRUFDdEYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUEwQyxPQUF6QyxHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUssdUJBQXVCLEVBQVMsSUFBSSxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQ3RGLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksR0FDbkYsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUNuRixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxNQUFNLENBQUMsRUFDcEYsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksT0FBTyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksT0FBTyxDQUFDLEVBQ3BGLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLElBQUssR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQ3JGLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLElBQUssR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQ3JGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUssR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsR0FBRyxPQUFPLElBQUksR0FDbkYsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQ3RGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUN0RixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3RGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUN0RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3RGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDdEYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN0RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3RGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDdEYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN0RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3RGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDdEYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN0RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3RGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDdEYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN0RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3RGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDdEYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsSUFBSyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDdEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQ3RGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQXFELE9BQW5ELEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ3RGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFhLEdBQVgsRUFBRSxLQUFLLEVBQUUsRUFBSyxHQUFrQixHQUFmLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRyxPQUFPLEVBQUUsRUFBRyxPQUFPLEtBQ25GLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQVUsR0FBVCxHQUFJLEVBQUUsQ0FBQyxHQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUcsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxPQUFPLEVBQ3RGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLEdBQU4sRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksT0FBUyxHQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxPQUFPLEVBQ3RGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQ3ZGLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQTRELE9BQTFELEdBQUksR0FBRyxNQUFNLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEVBQVMsRUFDdEYsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUEyRCxPQUF6RCxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEtBQU0sRUFBRSw0QkFBNEIsQ0FBQyxFQUFTLEVBQ3ZGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksRUFBRSxDQUFDLEVBQXVDLE9BQXJDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ3ZGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN0RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDdEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3RGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN0RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDdEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUN2RixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxPQUFPLElBQUksSUFBRyxDQUFDLEVBQ3ZGLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBeUIsT0FBdkIsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN2RixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQXlCLE9BQXZCLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDdkYsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxnQ0FBb0MsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLElBQUksSUFDckYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBc0QsT0FBcEQsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQVMsRUFDdkYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUN0RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQ3JGLFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUN2RixTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFDdkYsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksYUFBYSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQ3ZGLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFlBQVksQ0FBQyxFQUN2RixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxNQUFNLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxNQUFNLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxTQUFTLENBQUMsRUFDdkYsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksUUFBUSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksU0FBUyxDQUFDLEVBQ3ZGLFNBQVMsRUFBRyxFQUFFLENBQUMsSUFBSSxJQUFLLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUNyRixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUksTUFBTSxHQUFJLElBQUksR0FBSSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLEVBQ3ZGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQTJCLFFBQXBCLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ3RGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQTZELE9BQTVELEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUFTLEVBQ3ZGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUN2RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDdkYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFhLEdBQVosR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQ3RGLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUN4RixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUN2RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN0RixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRyxPQUFPLEVBQUcsTUFBTyxHQUN2RixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTyxRQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsT0FBTyxHQUN2RixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFDeEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxTQUFTLFdBQVksT0FBTyxPQUFVLEtBQU0sT0FBTyxLQUFRLEdBQUcsR0FDdkYsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3hGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDeEYsU0FBUyxHQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksRUFBRyxDQUFDLEVBQ3ZGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ3hGLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLGNBQWMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUN4RixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUN4RixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUN4RixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUN4RixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUN4RixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUN4RixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUN4RixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUN4RixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQ3ZGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLEVBQUUsVUFBVSxPQUFPLElBQUssRUFBRSxLQUFLLFVBQVUsRUFBRSxFQUN0RixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQ3hGLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUN0RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQ3ZGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUN0RixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssS0FBSyxJQUFJLEdBQ3JGLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDeEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDeEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3ZGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN4RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDeEYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3hGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN4RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDeEYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3hGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN4RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDeEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3hGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN4RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDeEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3hGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsRUFDeEYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLE9BQU8sSUFBSSxJQUF5QixPQUFyQixFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBUyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQ3pGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUksSUFBSSxHQUFJLENBQUMsRUFBZ0MsT0FBOUIsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLElBQUksR0FBSSxDQUFDLEVBQ3pGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFtQixHQUFqQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFHLE9BQU8sRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxLQUNyRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBc0IsR0FBcEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUcsTUFBTyxHQUFHLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBRSxNQUFPLEdBQ3pGLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxLQUN0RixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFnQyxHQUE5QixFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUssRUFBRSxFQUFTLE9BQU4sSUFBSSxFQUFTLEVBQUUsRUFBRSxFQUFFLEdBQUksT0FBTyxFQUN6RixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQVksT0FBWCxJQUFHLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFBRSxPQUFRLEdBQUUsTUFBTyxPQUFXLEdBQUUsTUFBTyxHQUFNLE9BQU8sSUFBRyxDQUFDLEVBQ3pGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQWEsT0FBVixFQUFFLEVBQUcsRUFBRSxDQUFDLEVBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFPLE9BQU8sR0FDcEYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN6RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ3hGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN6RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDekYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3pGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUssS0FBSyxFQUFFLEdBQUcsUUFBUSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDekYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLDBDQUEwQyxDQUFDLEVB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LEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUN6RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDekYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQzFGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxHQUFHLE9BQU8sRUFDMUYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFtRCxPQUEvQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSyxFQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFTLEVBQzFGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUMxRixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQ3pGLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQzFGLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDMUYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUMzRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUMxRixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFDMUYsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBYyxPQUFYLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUMzRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFDMUYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUMzRixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFHLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFHLENBQUMsRUFDM0YsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUMxRixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQzFGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzRixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0YsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzNGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUMzRixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDM0YsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUM1RixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUM1RixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFNLEVBQUUsRUFBRSxRQUFRLEtBQUssRUFBRyxFQUFFLGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLE9BQU8sRUFDMUYsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFPLE1BQU0sR0FBRyxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsV0FBWSxHQUFFLE9BQU8sT0FBTyxFQUFFLElBQUcsQ0FBQyxFQUM1RixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBSSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFDNUYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYyxFQUFFLEdBQUcsS0FBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUN2RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLElBQUssR0FBRyxJQUFLLEdBQUcsSUFBSyxHQUFHLElBQUssR0FBRyxJQUFLLEdBQUcsSUFBSyxHQUFHLElBQUssR0FBRyxHQUMxRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLElBQUssR0FBRyxJQUFLLEdBQUcsSUFBSyxHQUFHLElBQUssR0FBRyxJQUFLLEdBQUcsSUFBSyxHQUFHLElBQUssR0FBRyxHQUMxRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFRLEdBQUgsR0FBTSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFDNUYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzVGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUM1RixTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUMzRixTQUFTLEdBQUcsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUMzRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDNUYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWtELE9BQWhELEVBQUUsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFTLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM1RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFDNUYsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFBRyxPQUFPLEtBQzFGLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUcsT0FBTyxLQUMxRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLElBQUksRUFBRSxHQUFHLEdBQzNGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUM1RixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUMzRixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUM3RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQTZDLE9BQTVDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFLLEVBQVMsRUFDM0YsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLE9BQU8sRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFDN0YsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLE9BQU8sRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFDN0YsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxPQUFPLEdBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQzdGLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksT0FBTyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUM3RixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFDN0YsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLEdBQUUsT0FBTyxHQUFJLEVBQUUsT0FBUyxHQUFFLE9BQU8sR0FBSSxFQUFFLFdBQVksT0FBTyxHQUMzRixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLEdBQUksRUFBRSxPQUFTLEdBQUUsT0FBTyxHQUFJLEVBQUUsV0FBWSxPQUFPLEdBQzNGLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFlBQVksT0FBTyxNQUN2RixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSw4Q0FBOEMsR0FBSSxFQUFFLEdBQUksRUFDM0YsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFHLEVBQzdGLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLElBQUssR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUM3RixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDNUYsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLElBQUksa0JBQWtCLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxxQkFBcUIsQ0FBQyxFQUMxRixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FDM0YsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQU0sR0FBTSxJQUFJLEVBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDN0YsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQzVGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQzlGLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDN0YsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxNQUFPLEdBQU8sTUFBTyxHQUMxRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQzdGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFDN0YsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLE9BQVEsS0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUM5RixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQVEsR0FBUCxHQUFJLENBQUMsRUFBSyxFQUFFLFFBQVEsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLHdCQUF3QixDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFDOUYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFlLEdBQWQsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssRUFBRSxFQUFHLEtBQUssRUFBRSxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFDNUYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEtBQUssRUFBRSxJQUFJLEVBQzdGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUM3RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQWtDLE9BQWhDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQzlGLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQzlGLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFDNUYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxFQUFFLE1BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBRyxHQUM3RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxDQUFDLEVBQUUsT0FBTyxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQzdGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUM5RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUM3RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQzlGLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFZLEdBQVQsRUFBRSxFQUFFLEdBQUcsR0FBTSxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQU8sTUFBTyxHQUM1RixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUssSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsT0FBTyxJQUM3RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUMvRixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxtQkFBbUIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUM5RixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxjQUFjLENBQUMsRUFDOUYsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksWUFBWSxHQUFJLEVBQUUsR0FBTSxFQUFFLElBQUksSUFBSSxHQUFJLGtCQUFrQixFQUFJLEVBQy9GLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUM5RixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsRUFDOUYsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQzlGLFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFDL0YsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBd0MsT0FBdEMsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQVUsSUFBSSxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDaEcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQXdCLE9BQXJCLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQVMsT0FBVSxPQUFPLEdBQzFGLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxHQUFOLEdBQUksRUFBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxPQUFPLElBQUksQ0FBQyxFQUFHLE9BQU8sS0FDN0YsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRyxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQ2hHLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUMvRixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUM5RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFDOUYsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUMvRixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUMvRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ2hHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQ2hHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDaEcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLElBQUssSUFBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUNoRyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFXLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLE1BQU0sRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUM5RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDakcsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBSyxHQUFKLEVBQUUsRUFBSyxHQUFHLEVBQUcsTUFBTyxHQUFLLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxNQUFPLEdBQzdGLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFLLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksT0FBTyxFQUNqRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUE0QixHQUExQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUcsTUFBTyxHQUFHLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBRSxNQUFPLEdBQ2pHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQ2hHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsMENBQTBDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUMvRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDaEcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxNQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUMvRixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBcUMsT0FBbkMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBUyxFQUNqRyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFjLE9BQVgsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFRLFFBQU8sS0FDN0YsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWtFLE9BQWhFLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBUyxFQUNqRyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBa0UsT0FBaEUsR0FBRyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQ2pHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTSxHQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFJLEVBQzlGLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUksRUFBRSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFLLEVBQ2pHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFHLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUNqRyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQTRCLFFBQXZCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBUyxNQUFPLE9BQU0sR0FBSSxJQUFJLEVBQUcsRUFDaEcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQVEsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxZQUFZLE9BQU8sSUFBSSxLQUM3RixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxRQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxNQUFPLEdBQUUsT0FBTyxFQUFFLEdBQUcsS0FBTSxPQUFPLElBQUksRUFBRSxDQUFDLEVBQ2pHLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUssT0FBTyxFQUFFLEVBQUUsRUFBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUssS0FBSyxNQUFNLENBQUMsRUFBRSxPQUFPLEdBQUksSUFBRyxDQUFDLENBQUMsRUFDakcsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSyxPQUFPLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLEVBQ2xHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFPLE9BQU0sR0FBSSxDQUFDLEdBQ2pHLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQVUsR0FBUixFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxHQUE4QixPQUExQixFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQVMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUNsRyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFDbEcsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxPQUFPLEVBQ2xHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUcsT0FBTyxFQUFxRCxPQUFuRCxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQVUsRUFDbEcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksT0FBVyxFQUFFLEVBQUUsTUFBTyxLQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFDbEcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBWSxHQUFWLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQStCLE9BQTVCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxHQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDbEcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWMsT0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ2xHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUNsRyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQ2pHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDakcsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFDbEcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQ2hHLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUNsRyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxZQUFZLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxZQUFZLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxNQUFNLENBQUMsRUFDaEcsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQUksMkJBQTJCLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxFQUNoRyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUNsRyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxFQUFHLENBQUMsRUFBRSxFQUNsRyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUNqRyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUNsRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUksRUFBRSxNQUFPLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxJQUMvRixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUE4QixHQUE1QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFLLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDbEcsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FDbEcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWdDLEdBQTlCLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQVUsRUFBRSxFQUFHLE1BQU8sR0FBRyxHQUFHLEdBQUcsRUFBRyxNQUFPLEdBQUUsTUFBTyxHQUNuRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEtBQUssRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUksQ0FBQyxFQUNsRyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFLLEdBQUosRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxJQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ25HLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQXlCLE9BQXZCLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFVLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQ2pHLFNBQVMsR0FBRyxFQUFFLENBQU8sR0FBTixHQUFJLEVBQUssR0FBSyxPQUFPLElBQUksR0FBSSxJQUFJLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRSxnQ0FBZ0MsRUFDbkcsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFHLE9BQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ25HLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFvRSxPQUFsRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBUyxFQUNuRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBOEQsT0FBNUQsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQVUsRUFDbkcsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLE9BQU8sRUFBRSxFQUNuRyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQWEsR0FBVCxFQUFFLEVBQUUsR0FBRyxHQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUcsTUFBTyxHQUFPLE1BQU8sR0FDakcsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBZ0QsT0FBOUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBVyxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQ3BHLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQWdELE9BQTlDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQVcsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUNwRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFDbEcsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUEwQixHQUF4QixFQUFFLEdBQUcsRUFBRSxrQkFBcUIsRUFBRyxFQUFFLElBQUksSUFBRyxDQUFDLEVBQUUsSUFBRyxDQUFDLEVBQUUsT0FBTyxFQUNwRyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRyxFQUFFLEdBQUcsV0FBVyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLE1BQU8sUUFBTyxLQUMvRixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUF5QixPQUFuQixFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLEdBQUcsRUFDcEcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQU0sTUFBTyxHQUFNLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUcsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFHLE1BQU8sR0FBTSxNQUFPLEdBQ2hHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRyxNQUFPLEdBQU0sT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNwRyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBc0IsR0FBcEIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBVSxHQUFHLEVBQUcsTUFBTyxHQUE0QixPQUF0QixJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQVMsR0FDakcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQ3BHLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDcEcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQ25HLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNuRyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLDRCQUE0QixHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbkcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsRUFBSyxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNwRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNuRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNuRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQXdELE9BQXRELEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBUyxFQUNwRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXVFLE9BQXJFLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQ3BHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLE9BQU8sRUFDcEcsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBcUUsT0FBbkUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQVMsRUFDckcsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQXdFLE9BQXZFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSx1QkFBdUIsRUFBUyxFQUNyRyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxPQUFPLENBQUMsRUFDcEcsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksTUFBTSxDQUFDLEVBQ25HLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUNyRyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxNQUFNLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxjQUFjLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxhQUFhLENBQUMsRUFDbkcsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLElBQUksd0JBQXdCLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSx3QkFBd0IsQ0FBQyxFQUNuRyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLEdBQUksaUNBQWlDLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQ2xHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBd0UsT0FBdEUsR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksS0FBSyxHQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFDckcsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNyRyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQWMsR0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUcsT0FBTyxFQUFHLE1BQU8sR0FDckcsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQU0sR0FBSixFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUcsT0FBTyxFQUNyRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBbUIsR0FBakIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFHLE9BQU8sRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxLQUNsRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQ3RHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFtRCxPQUFqRCxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBVSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUN0RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFDckcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFHLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUNyRyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBb0UsT0FBakUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRyxDQUFDLEVBQVMsRUFDdEcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQW9CLE9BQWxCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDdEcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUN0RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLFdBQVksT0FBTyxJQUNqRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxPQUFRLE9BQU8sR0FBRSxNQUFPLFdBQWEsTUFBTyxJQUM5RixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEdBQ3BHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBUSxJQUFJLEVBQUUsQ0FBQyxFQUNyRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBZ0UsT0FBOUQsRUFBRSxFQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxJQUFJLEVBQUUsQ0FBQyxFQUN0RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQXVCLE9BQXJCLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQ3RHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUssRUFBSyxFQUNwRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQ3RHLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFpRSxPQUEvRCxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQVcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUN2RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLE9BQU8sV0FBWSxHQUFHLEVBQUcsTUFBTyxPQUFNLENBQUMsSUFBSSxFQUFFLElBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLE9BQU8sR0FDdEcsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxNQUFPLEdBQU0sT0FBTyxFQUFFLEdBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ3RHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQ3ZHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQTZFLE9BQTVFLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQVUsRUFDdkcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUEwRSxPQUF4RSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxFQUN2RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXVFLE9BQXJFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEdBQUcsRUFDdkcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUN2RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRyxFQUNyRyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQ3RHLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFDdEcsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksZ0JBQWdCLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxnQkFBZ0IsQ0FBQyxFQUN0RyxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBSSxJQUFHLENBQUMsUUFBVSxJQUFHLE9BQVMsSUFBRyxPQUFTLElBQUcsT0FBUyxJQUFHLFNBQVcsSUFBRyxVQUFZLEdBQUUsRUFDdEcsU0FBUyxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQ3BHLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFDckcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLE1BQU0sRUFBRyxHQUFJLElBQUssR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFJLEVBQUUsS0FDcEcsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFLLEtBQUssS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUN4RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUcsRUFBRSwyQkFBMkIsRUFBRSxHQUFJLEdBQUcsRUFBRSwwQkFBMEIsRUFBRSxHQUFJLElBQUksRUFDckcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXdCLEdBQXRCLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUcsRUFDdkcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUN4RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFxRSxPQUFuRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQWEsRUFBRSxFQUN4RyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQU0sT0FBTyxLQUE2QyxPQUF4QyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFTLEVBQ3hHLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBYSxHQUFYLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBSyxHQUFHLEdBQWUsT0FBWCxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQVMsR0FBRyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBUSxRQUFPLEVBQUUsR0FDdEcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQ3ZHLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFDeEcsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUN4RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFDdkcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFpRSxPQUE3RCxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUssRUFBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFNLEVBQUssRUFBUyxFQUN4RyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQ3hHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFtRSxPQUFqRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBVSxFQUN4RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBZ0IsR0FBYixFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBTyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEtBQU0sT0FBTyxFQUN4RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBZ0IsR0FBYixFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBTyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEtBQU0sT0FBTyxFQUN4RyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFPLEdBQU4sR0FBRyxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFHLE9BQU8sRUFDekcsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLElBQUksRUFBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBTyxNQUFPLEdBQ3RHLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTyxVQUFVLEdBQUcsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLGVBQWdCLEdBQUUsV0FBVyxPQUFPLEVBQUUsSUFBRyxDQUFDLEVBQ3hHLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQTRDLE9BQXRDLEVBQUUsR0FBSSxlQUFlLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBUyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUN6RyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3hHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUN6RyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBRyxFQUFFLENBQUMsRUFBVyxHQUFULEdBQUcsR0FBRyxDQUFDLEVBQUssRUFBRyxFQUFFLElBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFHLEdBQUcsQ0FBQyxFQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFDekcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBbUQsR0FBbEQsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxPQUFPLElBQUksQ0FBQyxFQUN6RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFtRCxHQUFsRCxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxDQUFDLEVBQ3pHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLFFBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLE1BQU8sR0FBRSxRQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFDdkcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLElBQUksS0FBSyxVQUFXLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLE1BQ25HLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxZQUFZLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUN2RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLElBQUksWUFBWSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FDdkcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFRLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUN4RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUN2RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUN0RyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQ3pHLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQ3pHLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQW1CLEdBQWpCLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxPQUFPLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxJQUN2RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBUSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ3pHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDekcsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDeEcsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQU0sTUFBTSxHQUFJLElBQUksR0FBSSxzQ0FBc0MsQ0FBQyxFQUFFLE9BQU8sRUFDekcsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQzFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQWlCLEdBQWhCLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sS0FDdkcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBK0MsR0FBN0MsR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSyxJQUFPLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUMxRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBc0QsT0FBcEQsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQzFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBc0IsR0FBckIsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBSyxJQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUcsSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFHLE9BQU8sSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFDMUcsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTyxRQUFPLEtBQU0sT0FBTyxFQUFFLEVBQzFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sZ0JBQWlCLEdBQUUsTUFBTyxPQUFPLEdBQUUsT0FBTyxRQUFTLEdBQUUsT0FBTyxLQUN0RyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLE9BQU8sSUFBdUQsT0FBbkQsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFTLElBQ3ZHLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLE1BQU0sQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLE1BQU0sQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLE1BQU0sQ0FBQyxFQUMxRyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxrQkFBa0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFlBQVksQ0FBQyxFQUMxRyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxtQkFBbUIsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGdCQUFnQixDQUFDLEVBQ3pHLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUNyRyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLEdBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQ3hHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUMxRyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUcsTUFBTyxHQUFLLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBZSxPQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTyxHQUN2RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQWtELE9BQS9DLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsT0FBVSxPQUFPLEdBQ3RHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBOEIsR0FBNUIsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDMUcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFHLE9BQU8sRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFPLEdBQzNHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRyxPQUFPLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTyxHQUMzRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFLLE9BQU8sR0FBRyxJQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQzFHLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBTSxPQUFMLEdBQUcsRUFBUyxJQUFJLElBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzNHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQTBFLE9BQXhFLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBUyxFQUMzRyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFDM0csU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBUSxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDNUcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFxQixHQUFqQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQzFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUcsQ0FBQyxFQUFFLEdBQUcsRUFDNUcsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUMzRyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQU8sTUFBTyxHQUN4RyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBTSxNQUFPLEdBQ3pHLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUssT0FBTyxFQUM3RyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBNkUsT0FBM0UsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxNQUFNLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBUyxFQUM1RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBcUIsT0FBbkIsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLEdBQVUsRUFDNUcsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFHLE1BQU8sV0FBYSxHQUFHLEVBQUUsRUFBRSxFQUFjLE9BQVgsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFTLElBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFPLEdBQ3pHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsTUFBTyxHQUFNLE1BQU8sR0FDekcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUssT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FDMUcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLElBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUcsTUFBTyxHQUFrQyxPQUE1QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFTLEdBQUcsRUFDN0csU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLEdBQUcsTUFBTyxPQUFVLEdBQUcsTUFBTyxPQUFXLEdBQUksRUFBRSxFQUFFLFVBQVcsT0FBTyxFQUFFLEdBQUcsR0FDekcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLEdBQUksTUFBTyxPQUFVLEdBQUksTUFBTyxPQUFXLEdBQUcsRUFBRSxFQUFFLFVBQVcsT0FBTyxFQUFFLEdBQUcsR0FDMUcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUcsS0FBSyxLQUFLLCtFQUErRSxDQUFDLEVBQzdHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcseUJBQXlCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDN0csU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsS0FBSyxFQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQzdHLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUcsRUFBRSxFQUFFLENBQUMsRUFDN0csU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLE9BQU8sR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDOUcsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXFCLEdBQW5CLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFNLEVBQUcsT0FBTyxLQUE2QyxPQUF4QyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUM5RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUcsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBRyxFQUM3RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLElBQUksR0FBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUM3RyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxLQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBSSxFQUFFLEdBQUcsS0FBSyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFDM0csU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUssR0FBSSxFQUFFLEdBQUksR0FBRyxNQUFNLEVBQUUsR0FBRyxHQUFHLEtBQUssR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFXLEdBQVQsRUFBRSxFQUFFLEVBQUUsR0FBTSxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUM3RyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFRLEtBQUosRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM3RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBUSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxLQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDN0csU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLGdEQUFnRCxFQUFFLENBQUMsQ0FBQyxFQUM3RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLElBQUksRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sS0FDM0csU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFHLEdBQUsscUNBQXFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUssR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUMvRyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxLQUFLLEdBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBRyxFQUM3RyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxNQUFNLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxhQUFhLENBQUMsRUFDNUcsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksb0JBQW9CLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxtQkFBbUIsQ0FBQyxFQUM3RyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxlQUFlLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxvQkFBb0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFNBQVMsQ0FBQyxFQUM5RyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxhQUFhLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxrQkFBa0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFlBQVksQ0FBQyxFQUM3RyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUM3RyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxNQUFNLFFBQVEsQ0FBQyxHQUFHLEdBQUcsSUFBRyxDQUFDLEdBQUcsSUFDekcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUM5RyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQy9HLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMvRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFDL0csU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBd0MsR0FBdEMsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBVSxHQUFHLEVBQUcsTUFBTyxHQUFtQixPQUFiLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQzVHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxPQUFPLEVBQUcsT0FBTyxLQUM3RyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQy9HLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFDaEgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLE9BQU8sS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxLQUM1RyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsTUFBTyxHQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUcsTUFBTyxHQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsTUFBTyxHQUFHLE9BQU8sRUFBRSxHQUFHLEVBQ2hILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxNQUFPLEdBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRyxNQUFPLEdBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQUcsT0FBTyxFQUFFLEdBQUcsRUFDaEgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFHLE9BQU8sR0FBSSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTyxHQUNoSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUNoSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFDaEgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBd0IsR0FBdEIsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFRLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsRUFDaEgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRyxPQUFPLEVBQVEsR0FBTixFQUFFLEVBQUUsR0FBTSxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUksQ0FBQyxJQUFJLFFBQVEsSUFDNUcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDaEgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksQ0FBQyxFQUF1RSxPQUFyRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFDakgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFJLE1BQU8sR0FBTSxNQUFPLEdBQzdHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsTUFBTSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxJQUM5RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDL0csU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFHLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBSSxHQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FDOUcsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUNoSCxTQUFTLEdBQUUsRUFBRSxDQUFDLElBQUcsS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFHLEtBQUssS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsRUFDL0csU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFNLE1BQUwsR0FBRyxFQUFRLEdBQUksSUFBSSxJQUFHLDZCQUE2QixFQUFFLDJDQUEyQyxDQUFDLEVBQ2hILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFLLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUssTUFBTyxHQUFLLE9BQU8sRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQzlHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBSSxNQUFPLEdBQU0sTUFBTyxHQUM3RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssTUFBTyxHQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFPLEdBQU0sTUFBTyxHQUM5RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFrQixHQUFoQixFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxHQUFrQixHQUFmLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLE9BQU8sRUFDakgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXNFLE9BQXBFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ2pILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFXLEdBQVQsRUFBRSxHQUFJLENBQUMsR0FBTSxFQUFHLENBQUMsTUFBTSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNqSCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBcUIsR0FBbkIsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQU0sRUFBRyxPQUFPLEVBQUUsR0FBRyxFQUFzQyxPQUFwQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFTLEVBQUUsR0FBRyxDQUFDLEVBQ2xILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFLLE1BQU0sRUFBRyxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQ2pILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQ2hILFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQXVGLE9BQXJGLEdBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBUyxFQUNsSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFnQixPQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQUUsRUFDbEgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQXlCLE9BQXZCLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQVMsR0FBSSxDQUFDLEVBQ2pILFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUF3RSxPQUF0RSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQ2xILFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFRLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDakgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLEdBQUcsRUFBNEUsT0FBMUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFTLEVBQ2xILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNsSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsT0FBTyxFQUFHLE9BQU8sS0FDL0csU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxHQUFNLE1BQU8sR0FDOUcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQ2pILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxFQUFFLENBQUMsRUFBbUIsR0FBakIsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUNqSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsR0FBRyxHQUFJLENBQUMsR0FBUyxHQUFOLEVBQUUsRUFBRSxHQUFNLE1BQU0sQ0FBQyxFQUFHLE9BQU8sRUFBRyxPQUFPLElBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQ2xILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTyxJQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNsSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sSUFBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDbEgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFpRCxHQUEvQyxHQUFHLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQU8sRUFBRSxHQUFNLEdBQUcsRUFBRyxFQUFFLEdBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUNsSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUNsSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUNsSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUNsSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxNQUM3RyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxNQUFNLEVBQUUsRUFBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDakgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFHLE9BQU8sR0FBRyxFQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNuSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQ2xILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDbkgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUNsSCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxrQkFBa0IsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLG1CQUFtQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksUUFBUSxDQUFDLEVBQy9HLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLGdCQUFnQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksb0JBQW9CLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxZQUFZLENBQUMsRUFDbEgsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksVUFBVSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksbUJBQW1CLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxvQkFBb0IsQ0FBQyxFQUNuSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLE9BQVEsSUFBSSxFQUFFLENBQUMsRUFDbkgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxZQUFZLE9BQU8sTUFDN0csU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFNLE9BQUwsR0FBRyxFQUFTLEVBQUUsT0FBUSxHQUFFLE9BQU8sR0FBRyxFQUFFLFFBQVEsR0FBRSxPQUFPLElBQUksR0FBRyxJQUFHLElBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLE9BQU8sSUFBSSxJQUFHLENBQUMsR0FDbEgsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFNLE9BQUwsR0FBRyxFQUFTLEVBQUUsR0FBRyxPQUFRLEdBQUUsT0FBTyxHQUFHLEVBQUUsUUFBUSxHQUFFLE9BQU8sSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxVQUFVLE9BQU8sSUFBSSxJQUFHLENBQUMsR0FDbEgsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFRLEdBQUUsT0FBTyxRQUFRLEdBQUUsT0FBTyxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBYyxPQUFKLEVBQUUsRUFBUyxJQUFJLEdBQUcsQ0FBQyxHQUNsSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFLLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFDcEgsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSyxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLEVBQ3BILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBcUMsR0FBbEMsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBSyxJQUFJLEVBQUUsQ0FBQyxFQUFHLE9BQVEsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUNwSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQ3BILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUErRSxPQUEzRSxFQUFFLEdBQUcsbUJBQW1CLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsSUFBRyxJQUFJLEdBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBUyxFQUFFLEVBQ3BILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxH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QUksRUFBRSxFQUFnQixHQUFkLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFDcEgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBYyxHQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUNwSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFtRixPQUFqRixFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxLQUFLLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBSyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFDcEgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBbUYsT0FBakYsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUssR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQ3BILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFxRixPQUFuRixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFTLEVBQ3BILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3BILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQ3JILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsQ0FBQyxJQUNsSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFVLE9BQVAsR0FBSSxDQUFDLEVBQVMsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDckgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRyxPQUFPLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDckgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRyxPQUFPLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDckgsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFHLENBQUMsRUFBRSxJQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUcsRUFBRSxDQUFDLEVBQ3JILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQ3BILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQ3BILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBSSxDQUFDLEVBQTBELE9BQXhELEVBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLGFBQWEsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFDckgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBSSxPQUFPLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSyxPQUFPLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBSSxPQUFPLEVBQUUsR0FBRyxNQUFPLEdBQ3JILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxPQUFPLEVBQUcsT0FBTyxJQUNuSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQWtDLEdBQWhDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBSyxHQUFHLEtBQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEtBQUssR0FBRyxFQUNsSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUssRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFNLEVBQUUsSUFBSSxNQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3JILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSyxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQU0sRUFBRSxJQUFJLE1BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDckgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFLLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBTSxFQUFFLElBQUksTUFBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNySCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUssRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFNLEVBQUUsSUFBSSxNQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3JILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSyxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQU0sRUFBRSxJQUFJLE1BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDckgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBYyxHQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsRUFBRSxFQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNySCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ3JILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBTSxNQUFPLEdBQ2pILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBUSxHQUFOLEVBQUUsRUFBRSxFQUFLLElBQUksR0FBSSxFQUFFLElBQWtDLE9BQTVCLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQVMsSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLEdBQUksTUFBTyxHQUNsSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ3RILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBSSxLQUFLLEVBQUUsR0FBSSxDQUFDLEVBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLENBQUMsR0FDcEgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3JILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFLLEtB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LEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxlQUFlLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxzQkFBc0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGVBQWUsQ0FBQyxFQUN0SCxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxJQUFLLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQ3BILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxHQUNySCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxZQUFZLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FDckgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLEdBQUUsT0FBTyxPQUFTLEdBQUUsT0FBTyxPQUFTLEdBQUUsT0FBTyxPQUFTLEdBQUUsT0FBTyxXQUFZLE9BQU8sSUFDbkgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBUSxPQUFPLEdBQUUsT0FBTyxNQUFPLE9BQU8sR0FBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsT0FBTyxNQUNsSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLFdBQVksT0FBTyxJQUNuSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLFdBQVksT0FBTyxJQUNuSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLFdBQVksT0FBTyxJQUNuSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBUSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFPLEdBQUUsT0FBTyxFQUFFLEVBQUcsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDckgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFvRCxPQUFqRCxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQVMsTUFBTyxRQUFPLElBQUksRUFBRSxFQUFFLENBQUMsRUFDdEgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTyxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUssRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDdEgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFLLEVBQUUsR0FBRyxLQUFNLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBTSxFQUFFLElBQUksT0FBUSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUN2SCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUssRUFBRSxHQUFHLEtBQU0sRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFNLEVBQUUsSUFBSSxPQUFRLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQ3ZILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSyxFQUFFLEdBQUcsS0FBTSxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQU0sRUFBRSxJQUFJLE9BQVEsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDdkgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFLLEVBQUUsR0FBRyxLQUFNLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBTSxFQUFFLElBQUksT0FBUSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUN2SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUNySCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksa0NBQWtDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUN2SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFNLE1BQU0sR0FBSSxJQUFJLEdBQUksOEJBQThCLENBQUMsRUFBVyxPQUFULElBQUksRUFBRSxDQUFDLEVBQVMsS0FDcEgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFpQixHQUFiLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFLLEdBQUksRUFBRSxDQUFDLEVBQUcsT0FBTyxLQUFLLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRyxPQUFPLEtBQ3BILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBcUIsR0FBakIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxjQUFVLE9BQU8sRUFBRyxPQUFPLEtBQ3BILFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUssTUFBTSxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsR0FBRyxJQUFPLEVBQUUsR0FBTSxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFRLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFDeEgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDdkgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN2SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQU8sRUFBcUIsR0FBbkIsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFHLE9BQU8sRUFBRSxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDeEgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUFHLEdBQUcsRUFBRSxFQUFHLE1BQU8sR0FBRSxHQUFHLEdBQUcsRUFBRyxPQUFPLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQ3RILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsR0FBRyxHQUFHLEtBQU0sT0FBTyxLQUE2QyxPQUF4QyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFTLEVBQ3ZILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLE9BQU8sRUFDdEgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUN2SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBSSxDQUFDLEVBQUUsT0FBTyxFQUN2SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEtBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ3RILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXdDLE9BQXRDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFTLEdBQUcsTUFBTSxHQUFHLEtBQUssR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFHLEtBQUssRUFBRSxFQUN4SCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBTSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFNLE9BQU8sRUFDekgsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBd0YsT0FBdEYsR0FBRyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBUyxFQUN6SCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQThCLEdBQTVCLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUssSUFBSSxHQUFJLEVBQUUsSUFBNEIsT0FBdEIsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQVMsR0FBRyxFQUFFLEdBQUksR0FBSSxPQUFPLEVBQ3hILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxZQUFZLE9BQU8sSUFBSSxLQUNwSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxzREFBc0QsQ0FBQyxFQUN2SCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQWtDLEdBQWhDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxPQUFVLEtBQUssQ0FBQyxFQUFLLElBQUksT0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQ3pILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUcsT0FBTyxLQUN0SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFzRixRQUFsRixJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBTSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBVyxFQUN6SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3pILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXdGLE9BQXRGLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFDekgsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsT0FBTyxHQUFJLENBQUMsRUFBOEQsT0FBNUQsRUFBRSxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsaUJBQWlCLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQ3pILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSyxFQUFFLEdBQUcsS0FBTSxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQU0sRUFBRSxJQUFJLFFBQVMsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDeEgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFLLEVBQUUsR0FBRyxLQUFNLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBTSxFQUFFLElBQUksUUFBUyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUN4SCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUssRUFBRSxHQUFHLEtBQU0sRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFNLEVBQUUsSUFBSSxRQUFTLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQ3hILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSyxFQUFFLEdBQUcsS0FBTSxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQU0sRUFBRSxJQUFJLFFBQVMsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDeEgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQXNELE9BQXBELEdBQUcsR0FBSSxFQUFFLElBQUksR0FBRyxJQUFJLEdBQUksR0FBSSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sR0FBVyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFDeEgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsd0NBQXVCLE9BQU8sV0FBWSxFQUFFLHlDQUF3QixPQUFPLEdBQUksT0FBTyxFQUMxSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsR0FBRyxHQUFJLENBQUMsR0FBUyxHQUFOLEVBQUUsRUFBRSxFQUFLLEdBQUksR0FBRyxFQUFFLEdBQUssT0FBTyxFQUFHLE9BQU8sR0FBSSxJQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzFILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUksQ0FBQyxHQUFHLEdBQUksQ0FBQyxHQUFTLEdBQU4sRUFBRSxFQUFFLEVBQUssR0FBSSxHQUFHLEVBQUUsR0FBSyxPQUFPLEVBQUcsT0FBTyxHQUFJLElBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDMUgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBSSxDQUFDLEdBQUcsR0FBSSxDQUFDLEdBQVMsR0FBTixFQUFFLEVBQUUsRUFBSyxHQUFJLEdBQUcsRUFBRSxHQUFLLE9BQU8sRUFBRyxPQUFPLEdBQUksSUFBRyxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUMxSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQWtDLE9BQWhDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBVSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3pILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFLLEdBQ3RILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQzFILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQzFILFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFNLE9BQUwsR0FBRyxFQUFTLEdBQUcsRUFBRyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUMxSCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxXQUFXLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxhQUFhLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFDdkgsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksc0JBQXNCLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxtQkFBbUIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGNBQWMsQ0FBQyxFQUN6SCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBRyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQU8sTUFBSixFQUFFLEVBQVEsR0FBSSxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsRUFBRSxPQUFPLEVBQzFILFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFLLEdBQUcsRUFBRSxJQUFJLEtBQU0sTUFBTSxHQUFJLElBQUksR0FBSSxZQUFZLENBQUMsQ0FBQyxFQUFPLE9BQUosRUFBRSxFQUFTLElBQUksR0FBSSxDQUFDLEVBQzNILFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUMxSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFDMUgsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQzFILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFDM0gsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBaUIsR0FBYixFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sS0FBSyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxLQUN2SCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUMzSCxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxDQUFDLEVBQUUsT0FBTyxJQUFHLEVBQUUsQ0FBQyxFQUMzSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXVGLE9BQXJGLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFTLEVBQzFILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDekgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXVCLEdBQXJCLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEtBQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDekgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFxQixHQUFsQixFQUFFLEdBQUksR0FBRyxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUssR0FBRyxFQUFHLGVBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTyxHQUFJLEVBQUUsQ0FBQyxFQUMzSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQzNILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyw2QkFBNkIsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUMxSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDMUgsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUMzSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssR0FBSyxPQUFPLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sRUFBRSxTQUFTLEVBQzVILFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQXFCLE9BQWxCLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQVUsS0FBSSxHQUFHLEVBQUUsSUFBRyxFQUEwQixPQUF4QixJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFVLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFDNUgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLEVBQUUsTUFBTyxHQUFFLE9BQU8sRUFBRSxNQUFPLEdBQUUsT0FBTyxFQUFFLE1BQU8sR0FBRSxPQUFPLEVBQUUsVUFBVSxNQUFPLElBQ3JILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLEdBQUUsT0FBTyxFQUFFLE1BQU8sR0FBRSxPQUFPLEVBQUUsTUFBTyxHQUFFLE9BQU8sRUFBRSxNQUFPLEdBQUUsT0FBTyxFQUFFLFVBQVUsTUFBTyxJQUNySCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBTyxFQUFFLE1BQU8sR0FBRSxPQUFPLEVBQUUsTUFBTyxHQUFFLE9BQU8sRUFBRSxNQUFPLEdBQUUsT0FBTyxFQUFFLEVBQUcsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDM0gsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsVUFBVSxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsTUFBTyxPQUFNLEdBQUksSUFBSSxHQUFJLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLEVBQzNILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLDRCQUE0QixDQUFDLEVBQzNILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQzFILFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQVcsR0FBUixHQUFHLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLFVBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FDM0gsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDNUgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUM1SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUM3SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzVILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUssR0FBRyxJQUFLLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU8sR0FBSyxNQUFPLEdBQ3pILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFxQixHQUFqQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFLLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxHQUFNLE1BQU8sR0FDekgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUM3SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFHLEdBQUcsSUFBSSxFQUF1QixPQUFwQixFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFXLEVBQzlILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBMkIsR0FBekIsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUcsRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQzlILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBZ0IsT0FBVCxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQzlILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFNLE9BQU8sTUFBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxPQUFPLEVBQUUsRUFDNUgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLE1BQU8sR0FBTSxPQUFPLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUM1SCxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUF1QixPQUFwQixFQUFFLElBQUcsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBUyxNQUFPLFFBQU8sR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsQ0FBQyxFQUFFLElBQUksSUFBRyxDQUFDLEVBQy9ILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEtBQUssTUFBTyxHQUFnQixPQUFYLEVBQUUsRUFBRSxPQUFjLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUcsTUFBTSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQzdILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQWMsT0FBWCxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFPLEdBQzNILFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxFQUFFLE9BQVEsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLFdBQVksT0FBTyxJQUN6SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFnQixHQUFmLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBSyxFQUFHLE9BQU8sRUFBRSxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsT0FBTyxHQUFJLEVBQUUsSUFDN0gsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzlILFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsT0FBTyxhQUFhLEVBQUUsRUFDOUgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM5SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUMvSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDOUgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUE2QixRQUF0QixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLE1BQVEsUUFBTyxFQUFFLEdBQUcsRUFDOUgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRyxNQUFPLEdBQUcsTUFBTyxLQUFLLEVBQUUsS0FBSyxNQUFNLEVBQy9GLE9BQU8sSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksR0FDNUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTyxHQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU8sR0FBRSxPQUFPLEVBQUUsR0FBRyxNQUFPLEdBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQy9ILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFlBQVksTUFBTSxHQUFJLElBQUksR0FBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQzdILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFlBQVksTUFBTSxHQUFJLElBQUksR0FBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQzdILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFlBQVksTUFBTSxHQUFJLElBQUksR0FBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQzdILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFlBQVksTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQzdILFNBQVMsRUFBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssTUFBTSxFQUFFLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxJQUN4SCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxPQUFPLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFDM0gsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksWUFBWSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksY0FBYyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksWUFBWSxDQUFDLEVBQzNILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQzlILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQzlILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUSxPQUFPLEVBQy9ILFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFhLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBYSxPQUFWLEdBQUcsRUFBRSxHQUFHLEVBQVMsR0FBTSxNQUFPLEdBQzVILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFXLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFFLENBQVUsR0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsRUFBRSxHQUFHLEdBQW9CLEdBQWpCLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUssR0FBRyxLQUFNLE9BQU8sRUFBRSxJQUFJLEVBQUcsT0FBTyxFQUFFLE9BQU8sS0FDN0gsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQXdCLEdBQXRCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQVksR0FBVCxFQUFFLElBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFhLE9BQVYsR0FBRyxHQUFJLENBQUMsRUFBUyxFQUNoSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxPQUFRLE9BQU8sR0FBSSxHQUFvRCxPQUFqRCxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQVMsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDaEksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFHLE1BQU8sT0FBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQW9CLEdBQWpCLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUssRUFBRSxHQUFHLENBQUMsRUFBRyxNQUFPLEdBQU8sT0FBTyxHQUFJLEVBQUUsQ0FBQyxHQUMvSCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFRLEtBQUosRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLE1BQU8sT0FBVSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTyxJQUMzSCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQVEsR0FBTixFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUcsTUFBTSxFQUFFLEVBQUcsR0FBRyxLQUFLLE1BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQVEsT0FBTixFQUFFLEVBQUUsRUFBUyxHQUM3SCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFxQyxHQUFuQyxHQUFHLEVBQUUsR0FBRyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUcsT0FBTyxFQUFJLE1BQU8sR0FDL0gsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLENBQUMsRUFBRSxRQUN6SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFDaEksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBcUcsT0FBbEcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFTLEVBQ2hJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxFQUFFLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQ2hJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEVBQzdILFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBRyxDQUFDLEdBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNqSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUssS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFDakksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLEdBQU4sR0FBSSxFQUFLLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUM5SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFDakksU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLElBQUssSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQ2hJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUNqSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBNEIsR0FBMUIsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFJLENBQUMsRUFBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUF5QixPQUF2QixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFTLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUNqSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUE4RixPQUE1RixFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLEVBQ2pJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBK0IsT0FBN0IsRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBUyxFQUNqSSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxPQUFPLEdBQUksQ0FBQyxFQUFxRSxPQUFuRSxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyx3QkFBd0IsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFDaEksU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUssR0FBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sRUFDakksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFLLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFJLENBQUMsRUFDbEksU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUcsTUFBTyxHQUFPLE1BQU8sR0FDOUgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFnRSxPQUE3RCxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsR0FBRyxPQUFRLE9BQU8sR0FDNUgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ2xJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsT0FBUSxJQUFJLEVBQUUsQ0FBQyxFQUNoSSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksTUFBTyxHQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksVUFBVSxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFDN0gsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFlBQWEsR0FBRSxPQUFPLFFBQVEsR0FBRSxPQUFPLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLFVBQVUsT0FBTyxJQUFJLEdBQUcsSUFBRyxDQUFDLENBQUMsR0FDL0gsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxNQUFPLE9BQU0sR0FBSSxDQUFDLEdBQ2hJLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUMvSCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFHLEVBQUUsSUFBSSxFQUFFLEVBQTBELEdBQXhELEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsRUFBRyxHQUFJLElBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBTyxFQUFHLEVBQUUsSUFBSSxJQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBSSxJQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDbEksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQWtHLFFBQTlGLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUksRUFBRSxFQUFHLEVBQUksR0FBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBVSxFQUNuSSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBUyxHQUFQLEVBQUUsS0FBUSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQThCLE9BQTNCLEdBQUcsT0FBTyxFQUFFLEVBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxHQUFVLEVBQ25JLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFzQyxPQUFuQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFTLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxNQUFPLEdBQy9ILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBZ0UsR0FBN0QsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUcsT0FBTyxFQUFFLEdBQUcsRUFBRyxPQUFPLEtBQy9ILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNsSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFpRyxPQUEvRixFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxLQUFLLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBSyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFDbEksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBaUcsT0FBL0YsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUssR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQ2xJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLE9BQU8sRUFDbEksU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBNEIsR0FBMUIsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEdBQUcsRUFBRyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUcsT0FBTyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxJQUFJLEdBQ2xJLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUksQ0FBQyxHQUFHLEdBQUksQ0FBQyxHQUFTLEdBQU4sRUFBRSxFQUFFLEVBQUssR0FBSSxHQUFHLEVBQUUsR0FBSyxPQUFPLEVBQUcsT0FBTyxJQUFLLElBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUksRUFBRSxHQUFHLEVBQ3BJLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFDcEksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDakksU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsSUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQ3BJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEVBQUcsR0FBRSxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQ2hJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDbEksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNuSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQ2pJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3BJLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUNuSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsMEJBQTBCLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBSyxLQUFLLElBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ25JLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksRUFBRyxFQUNuSSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxjQUFjLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxjQUFjLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxlQUFlLENBQUMsRUFDcEksU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUkseUJBQXlCLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxhQUFhLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSw0QkFBNEIsQ0FBQyxFQUNwSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBZ0IsR0FBYixFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBTSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBZSxPQUFULEVBQUUsRUFBRSxLQUFZLE9BQVcsT0FBTyxHQUMvSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFpQixHQUFoQixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxHQUFHLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksT0FBTyxFQUNySSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFpQixHQUFoQixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxHQUFHLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksT0FBTyxFQUNySSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBVSxHQUFSLEVBQUUsR0FBUyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFLLE9BQU8sRUFDckksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUNySSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUE0QyxHQUExQyxFQUFFLEVBQUcsR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsTUFBTyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUNuSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQWtHLE9BQWhHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQVMsRUFDckksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBMkIsR0FBdkIsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBTyxNQUFPLEdBQ2xJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTBELE9BQXhELEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBUyxFQUFLLEtBQUssS0FBSyxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFDcEksU0FBUyxHQUFFLEVBQUUsQ0FBQyxHQUFHLE1BQU0sZ0JBQWdCLEVBQXVELE9BQXBELEVBQUssTUFBTSxnQkFBZ0IsTUFBTSxnQkFBZ0IsR0FBVSxHQUFLLE1BQU8sVUFBVyxJQUFJLE1BQ2hJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFLLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUNwSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFDcEksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQ3JJLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxTQUFTLEdBQUcsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUNySSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXVCLEdBQXJCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEdBQUcsS0FBMEQsT0FBcEQsRUFBRSxHQUFHLElBQUcsSUFBSSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQVMsTUFBTyxRQUFPLElBQ2xJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxPQUFPLEtBQUssRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUksQ0FBQyxFQUFFLE9BQU8sRUFDckksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLE9BQU8sS0FBSyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBSSxDQUFDLEVBQUUsT0FBTyxFQUNySSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssT0FBTyxLQUFLLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFJLENBQUMsRUFBRSxPQUFPLEVBQ3JJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsQ0FBQyxHQUNwSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLENBQUMsR0FDcEksU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsSUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQ3RJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsSUFBRyxNQUFPLFdBQWEsTUFBTyxJQUMvSCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxxQkFBcUIsQ0FBQyxFQUNySSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxrQkFBa0IsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGVBQWUsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGVBQWUsQ0FBQyxFQUNySSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQ3BJLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQU0sRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsZUFBZSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxLQUFJLE9BQU8sR0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBVSxDQUFDLEVBQUUsT0FBTyxFQUN0SSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBMkIsR0FBekIsRUFBRSxLQUFLLEVBQUUsTUFBTyxFQUFFLEVBQUUsR0FBRyxFQUFLLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxnQ0FBZ0MsQ0FBQyxFQUFtQixPQUFqQixFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUcsQ0FBQyxFQUFTLEVBQ3RJLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQVEsR0FBUCxHQUFJLENBQUMsR0FBTSxFQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUN0SSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUErRCxHQUE3RCxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBWSxPQUFULElBQUksRUFBRSxDQUFDLEVBQVMsRUFBRSxHQUFHLE1BQU8sUUFBTyxLQUNsSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsTUFBTyxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxPQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3RJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksR0FBRyxFQUFFLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFJLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFJLE9BQU8sRUFBRSxHQUFHLEdBQUcsTUFBTyxHQUN0SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksZ0RBQWdELENBQUMsRUFDdEksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBSSxHQUFJLENBQUMsRUFBRyxPQUFPLEdBQUksRUFBRSxXQUFZLEdBQUksSUFBSSxDQUFDLEVBQUcsT0FBTyxHQUFJLEVBQUUsT0FBUyxPQUFNLEdBQUksSUFBSSxHQUFJLHlCQUF5QixDQUFDLEVBQ3RJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLFFBQVMsSUFBSSxPQUFPLEdBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxHQUFJLENBQUMsT0FBTyxHQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFJLENBQUMsR0FDckksU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLGlFQUFpRSxDQUFDLEVBQWUsT0FBYixJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUN0SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sR0FBTixHQUFJLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUcsR0FBSSxHQUFJLEdBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRyxPQUFPLEVBQUcsR0FBSSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sS0FDbkksU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRyxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUN2SSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUcsR0FBRyxHQUFHLEtBQU0sSUFBSSxFQUFFLENBQUMsTUFBTyxHQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBUSxJQUFHLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUN2SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDdkksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUEwRCxHQUF4RCxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsRUFBWSxPQUFULElBQUksRUFBRSxDQUFDLEVBQVMsT0FBaUIsUUFBVCxJQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ3ZJLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFXLEdBQVQsRUFBRSxFQUFFLEdBQUcsR0FBTSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSyxPQUFPLEVBQUUsR0FBRyxFQUFXLEdBQVQsRUFBRSxFQUFFLEdBQUcsSUFBTyxHQUFHLEdBQUcsRUFBRyxPQUFRLE9BQU8sRUFDdkksU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUcsTUFBTyxHQUFLLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQWlCLEdBQVgsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBTSxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQ3hJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLFdBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFDeEksU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQVEsR0FBUCxHQUFJLENBQUMsRUFBSyxHQUFHLEtBQU0sTUFBTyxHQUFNLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQUssT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEdBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxZQUFZLENBQUMsRUFDekksU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxPQUFPLElBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUN2SSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSwwQkFBMEIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQ3ZJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQTBHLE9BQXhHLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUksSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxXQUFXLENBQUMsRUFBRSxFQUFTLEVBQUUsRUFDdkksU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUN4SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsUUFBUSxnQkFBZ0IsS0FBSyxRQUFRLGVBQWUsUUFBUSxPQUFPLEtBQUssUUFBUSxNQUFNLFFBQVEsS0FBSyxLQUFLLFFBQVEsQ0FBQyxFQUN4SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ3hJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUN4SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFDeEksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFxRyxPQUFuRyxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLE1BQU8sRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ3hJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN4SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDekksU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUN4SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQU8sR0FBTixHQUFJLEVBQUssRUFBRSxRQUFRLEVBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFPLE1BQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQ3pJLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFHLElBQUksS0FBSyxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQzFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFDeEksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUN4SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQW1CLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsT0FBTyxFQUFHLE9BQU8sS0FDdEksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWMsR0FBWixFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxHQUE4RCxHQUEzRCxFQUFFLEdBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLEVBQUssR0FBRyxLQUFNLE9BQU8sRUFBRyxPQUFPLEVBQUUsR0FBRyxFQUN6SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBYyxHQUFaLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEdBQThELEdBQTNELEVBQUUsR0FBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFHLENBQUMsRUFBSyxHQUFHLEtBQU0sT0FBTyxFQUFHLE9BQU8sRUFBRSxHQUFHLEVBQ3pJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUF5QixHQUF2QixFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFHLE9BQU8sRUFBNkIsR0FBM0IsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLEVBQUcsT0FBTyxFQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDMUksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQWEsR0FBVixFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLE1BQU0sSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFDdkksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBeUMsR0FBdkMsR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQ3hJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQTRDLEdBQTFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN6SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQXVDLEdBQXJDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUssRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN6SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBYyxHQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQTZCLFFBQXRCLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQVUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQ3pJLFNBQVMsR0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFnQixHQUFiLEVBQUUsS0FBSyxJQUFJLEVBQUssRUFBRSxJQUFHLEtBQU0sSUFBRyxFQUFFLEdBQUcsRUFBSyxXQUFXLElBQUcsRUFBRSxFQUFHLEdBQUcsTUFBTSxFQUFpQixPQUFkLEtBQUksSUFBRyxFQUFFLElBQUcsRUFBUyxHQUFLLE1BQU8sR0FDdEksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLElBQU0sS0FBSyxHQUFJLEVBQUUsSUFBTSxLQUFLLEdBQUksRUFBRSxJQUFNLE1BQU0sR0FBSSxFQUFFLE9BQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQy9ILFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FDekksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsSUFBSSxHQUFJLENBQUMsRUFBRyxHQUFJLEVBQUUsR0FBSSxFQUFHLE1BQU8sR0FBRSxFQUFHLEdBQUksR0FBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQ3hJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBbUQsT0FBaEQsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFTLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU8sT0FBTyxHQUNySSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUMxSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUMxSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQzFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsT0FBTyxFQUFFLE9BQVEsT0FBTyxHQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsQ0FBQyxNQUFPLE9BQU8sR0FBRSxPQUFPLElBQUksR0FBSSxFQUFFLENBQUMsVUFBVSxPQUFPLE1BQ3JJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQU8sTUFBSixFQUFFLEVBQVEsR0FBSSxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDekksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUErQixHQUE3QixFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFRLEVBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssR0FBRyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQU0sT0FBSixFQUFFLEVBQVMsRUFDMUksU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLE9BQU8sR0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUcsSUFBSyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxNQUFNLE9BQU8sRUFDMUksU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxFQUFFLEdBQUksSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBMkIsT0FBekIsRUFBRSxPQUFPLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFTLEVBQzNJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUksRUFBRSxHQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTJCLE9BQXpCLEVBQUUsT0FBTyxHQUFHLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBUyxFQUMzSSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBUSxLQUFKLEVBQUUsRUFBSyxHQUFHLE1BQStDLEdBQXpDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQVMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQzFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEtBQUssT0FBTyxLQUF3QixHQUFuQixFQUFFLElBQUksR0FBSSxFQUFFLEVBQUksQ0FBQyxFQUFLLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxHQUFJLDZCQUE2QixFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFDMUksU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFHLEdBQUksRUFBRSxFQUFFLElBQUksSUFBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FDekksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksT0FBTyxFQUFFLEVBQUUsR0FBRyxHQUFLLElBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzFJLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBdUIsR0FBckIsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQU0sRUFBd0MsT0FBckMsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBUyxTQUE4QixRQUFwQixFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBUyxFQUMzSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBc0csT0FBcEcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLE1BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBSyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFDM0ksU0FBUyxFQUFHLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFDM0ksU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLEdBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU8sR0FBRSxPQUFPLElBQUksR0FBSSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sSUFBSSxHQUFJLEdBQUcsQ0FBQyxVQUFVLE9BQU8sSUFBSSxHQUFJLEVBQUUsQ0FBQyxHQUN6SSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLEdBQUksRUFBRSxPQUFTLEdBQUUsT0FBTyxHQUFJLEVBQUUsT0FBUyxHQUFFLE9BQU8sR0FBSSxFQUFFLE9BQVMsR0FBRSxPQUFPLEdBQUksRUFBRSxHQUFLLE9BQU8sR0FBSSxFQUFFLEdBQzFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLE9BQVEsSUFBRyxNQUFPLE9BQU8sSUFBRyxNQUFPLE9BQU8sSUFBRyxNQUFPLE9BQU8sSUFBRyxNQUFPLE9BQU8sSUFBRyxNQUFPLEdBQUcsTUFBTyxHQUMxSSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxTQUFTLENBQUMsRUFDM0ksU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFJLEdBQWdCLE9BQVosRUFBRSxJQUFJLEdBQUcsR0FBVSxPQUFRLEdBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVyxHQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLGNBQWMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUMxSSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBYSxHQUFYLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsTUFBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUcsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFDNUksU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLElBQUksb0RBQW9ELENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxxQ0FBcUMsQ0FBQyxFQUM1SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssR0FBRyxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFJLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQzVJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUM1SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFnQixHQUFkLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLEdBQUssT0FBTyxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUM1SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFDNUksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsSUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQzVJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLElBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUM1SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxJQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFDNUksU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksY0FBYyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksWUFBWSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksUUFBUSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksTUFBTSxDQUFDLEVBQzVJLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQTZCLE9BQTNCLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUM1SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxHQUFJLENBQUMsRUFDNUksU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFZLEdBQVgsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLE1BQU0sS0FBSyxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsT0FBTyxNQUFPLFFBQU8sRUFBRSxFQUMzSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxPQUFPLE1BQU8sR0FBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBTSxNQUFPLEdBQzFJLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFnQyxPQUEvQixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQVcsUUFBUSxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFVLE1BQVAsRUFBRSxHQUFHLEVBQVEsR0FBSSxJQUFJLEVBQUcsTUFBTyxPQUFNLEdBQUksQ0FBQyxHQUMzSSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBZ0MsT0FBL0IsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFXLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEVBQUUsRUFBVSxNQUFQLEVBQUUsR0FBRyxFQUFRLEdBQUksSUFBSSxFQUFHLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDM0ksU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUssR0FBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFDNUksU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQVMsR0FBUCxFQUFFLEtBQVEsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUF3QyxPQUFyQyxHQUFHLFFBQVEsR0FBSSxDQUFDLElBQUksRUFBRSxFQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsR0FBVSxFQUM3SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLE1BQU8sSUFBSSxDQUFDLE1BQVEsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxPQUFPLEVBQzlJLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEdBQUksRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUMzSSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQStCLE9BQTlCLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFTLEVBQUUsT0FBUSxPQUFPLEdBQUUsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFJLFVBQVcsT0FBTyxHQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssRUFBRSxJQUN6SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUM3SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsNEJBQTRCLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQzdJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxLQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUMzSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxLQUFLLE9BQU8sS0FBd0IsR0FBbkIsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFJLENBQUMsRUFBSyxHQUFHLEtBQU0sTUFBTSxHQUFJLElBQUksR0FBSSxnQ0FBZ0MsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQzdJLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxxQkFBcUIsQ0FBQyxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDOUksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsQ0FBQyxDQUFDLEVBQzdJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFRLE9BQU8sRUFDOUksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQXlHLE9BQXJHLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFJLElBQUssRUFBRSxHQUFHLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxDQUFDLENBQUMsRUFBUyxFQUFFLEVBQzlJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBa0UsT0FBaEUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFTLElBQUksR0FBSSxFQUFFLElBQUssR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUM5SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBZ0UsT0FBOUQsRUFBRSxFQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUM5SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQVEsR0FBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFVBQVcsR0FBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzlJLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGtCQUFrQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksZ0JBQWdCLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFDOUksU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQU0sR0FBSSxFQUFFLEdBQUssR0FBSSxFQUFFLEdBQU0sR0FBSSxFQUFFLEdBQzVJLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFNLEdBQUksRUFBRSxHQUFLLEdBQUksRUFBRSxHQUFNLEdBQUksRUFBRSxHQUM1SSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQXNFLFNBQTdELEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFXLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUM3SSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQVEsSUFBSSxFQUFFLENBQUMsRUFDOUksU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBcUgsT0FBcEgsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQVUsRUFDL0ksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBVSxHQUFSLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFhLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBTyxNQUFPLEdBQzVJLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsTUFBTyxXQUFhLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU8sV0FBYSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLElBQU8sTUFBTyxHQUMzSSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFHLFFBQVMsSUFBRyxXQUFXLEVBQUUsR0FBSSxRQUFTLEVBQUUsR0FBRyxXQUFXLEdBQUcsQ0FBQyxFQUFHLFFBQVMsSUFBRyxXQUFXLEdBQUcsQ0FBQyxFQUFHLFFBQVMsSUFBRyxHQUFHLE1BQU8sR0FDNUksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRyxHQUFFLEVBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDL0ksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQy9JLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUNoSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFDaEosU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBZSxHQUFiLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUcsTUFBTyxPQUFPLEtBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRyxPQUFPLEVBQy9JLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQy9JLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFZLEdBQVYsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFLLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sSUFBSSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQy9JLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFZLEdBQVYsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFLLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sSUFBSSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQy9JLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBUyxHQUFOLEdBQUksRUFBSyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBTyxJQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQzlJLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUE2QixPQUEzQixFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ2hKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBb0QsR0FBbEQsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFLLElBQUksR0FBSSxFQUFFLEtBQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUcsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ2hKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sR0FBSSxFQUFFLE9BQVMsR0FBRSxPQUFPLEdBQUksRUFBRSxPQUFTLEdBQUUsT0FBTyxHQUFJLEVBQUUsUUFBUyxHQUFFLE9BQU8sR0FBSSxFQUFFLFlBQVksT0FBTyxNQUMzSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLE9BQU8sRUFBRSxPQUFRLEdBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVyxHQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFTLEtBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUNoSixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQU0sT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQ2hKLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxDQUFRLEdBQVAsR0FBSSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBNEIsT0FBMUIsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQUUsTUFBTyxPQUFNLEdBQUksSUFBSSxFQUFHLEVBQy9JLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBMEUsR0FBeEUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBSSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBSSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFHLE1BQU8sR0FBRyxHQUFHLEdBQUcsRUFBRyxNQUFPLEdBQUUsTUFBTyxHQUNqSixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFhLEdBQVgsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUF5QixHQUF0QixFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFHLE9BQU8sRUFBSSxNQUFPLEdBQ2hKLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQVcsR0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBYSxHQUFWLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBSyxHQUFHLEdBQUcsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQ2pKLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUEyQyxHQUExQyxLQUFLLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFLLElBQUksR0FBRyxFQUFFLEtBQUssTUFBTSxHQUFJLElBQUksR0FBSSxrQkFBa0IsSUFBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ2pKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFNLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFDN0ksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUNsSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyw4QkFBOEIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ2pKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsQ0FBQyxFQUNoSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUNqSixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUNqSixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUNqSixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGdDQUFnQyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksWUFBWSxDQUFDLEVBQ2pKLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLDZCQUE2QixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUkseUJBQXlCLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSwwQkFBMEIsQ0FBQyxFQUNsSixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxZQUFZLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxNQUFNLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFDakosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssRUFBRSxHQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFHLENBQUMsRUFBRSxHQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFJLENBQUMsRUFDbEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUssRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFvRCxPQUFsRCxJQUFJLEdBQUksRUFBRSxPQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBVSxFQUNsSixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBVyxHQUFULElBQUksRUFBRSxDQUFDLEdBQU0sR0FBRyxJQUFJLEVBQUcsT0FBTyxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSwyQkFBc0IsRUFBRSxFQUFHLEdBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsT0FBTyxHQUFHLENBQUMsRUFDbEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQ2hKLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQXlDLEdBQXBDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQU0sRUFBRSxHQUFHLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU8sUUFBTyxFQUFHLE9BQU8sRUFBRSxFQUFFLE9BQzdJLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sU0FBVSxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFlBQVksTUFBTSxHQUFJLElBQUksR0FBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQ2hKLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ2xKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUErQyxPQUEzQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBVSxFQUNuSixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBSyxLQUFLLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUNsSixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUNsSixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUNsSixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQ2xKLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU8sR0FBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFDakosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFPLFdBQWMsRUFBRSxHQUFHLEdBQUcsR0FBYSxPQUFULEVBQUUsRUFBRSxHQUFHLEVBQVMsR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFPLFFBQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQy9JLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDbkosU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsS0FBSyxHQUFHLEdBQUksRUFBRSxJQUFLLEtBQUssR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLEVBQ25KLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUcsT0FBTyxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDbkosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDbkosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLENBQUMsRUFDbEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQU0sTUFBTyxHQUMvSSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQW9CLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLElBQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFPLEdBQU0sTUFBTyxHQUMvSSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQW9CLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLElBQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFPLEdBQU0sTUFBTyxHQUMvSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUMvSSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxLQUFLLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFNLEVBQ25KLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFzQyxHQUFwQyxFQUFFLEdBQUcsNEJBQTRCLENBQUMsRUFBSyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sS0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ25KLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxPQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU8sR0FBRSxPQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUcsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDbkosU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFDbkosU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU8sR0FBRyxHQUFHLEVBQUUsSUFBSSxNQUFPLEdBQUcsR0FBRyxHQUFHLEdBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTyxHQUFHLEdBQUcsR0FBRyxHQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTyxHQUFHLE9BQU8sRUFBRSxHQUFHLEdBQ2xKLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxLQUFNLE1BQU0sR0FBSSxJQUFJLEdBQUksMkJBQTJCLENBQUMsQ0FBQyxVQUFVLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxHQUFJLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxFQUNuSixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQXdCLEdBQWxCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBTyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBSSxNQUFPLEdBQU8sT0FBUSxFQUFFLEdBQUcsRUFDcEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUNwSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQ3BKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUcsSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQ25KLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBUSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUEyQixPQUF6QixHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDcEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFDbkosU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFDbEosU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFDbEosU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksd0VBQXdFLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFDckosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksVUFBVSxHQUFHLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ3JKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQU8sTUFBSixFQUFFLEVBQVEsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDcEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEVBQUUsRUFBTyxNQUFKLEVBQUUsRUFBUSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLENBQUMsTUFBTyxPQUFNLEdBQUksQ0FBQyxHQUNwSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFPLE1BQUosRUFBRSxFQUFRLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksQ0FBQyxNQUFPLE9BQU0sR0FBSSxDQUFDLEdBQ3BKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sR0FBSSxFQUFFLE9BQVMsR0FBRSxPQUFPLEdBQUksRUFBRSxPQUFTLEdBQUUsT0FBTyxHQUFJLEVBQUUsT0FBUyxHQUFFLE9BQU8sR0FBSSxFQUFFLFdBQVksT0FBTyxHQUFJLEVBQUUsSUFDakosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsR0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSyxFQUFFLEdBQUcsR0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQ3BKLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUcsTUFBTyxHQUFNLE1BQU8sR0FDakosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsaUNBQWlDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQ3JKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUEwSCxPQUF6SCxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsR0FDbEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUNwSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQ3JKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sR0FBRyxFQUNySixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sS0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQ3JKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBa0gsT0FBaEgsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxPQUFRLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ3JKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUssRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUFFLEVBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQ3JKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUssRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUFFLEVBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQ3JKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDdEosU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDckosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDckosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDckosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBSSxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxNQUFPLE9BQU0sR0FBSSxDQUFDLEdBQ3RKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUNsSixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLEdBQUksSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBMkIsT0FBekIsRUFBRSxPQUFPLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFTLEVBQ3ZKLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFXLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLE1BQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQU0sT0FBTyxNQUFTLEtBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRyxPQUFPLEVBQUksTUFBTyxHQUN0SixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUE4QixHQUE1QixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFPLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFJLE1BQU8sR0FBTSxHQUFHLEdBQUcsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBTSxNQUFPLEdBQ3JKLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLFVBQVUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ3ZKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLEdBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTyxHQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFPLEdBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxNQUFPLElBQ3JKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFjLE9BQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQ3JKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEtBQUssSUFBSSxJQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUN2SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUN4SixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSwwQkFBMEIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLG9DQUFvQyxDQUFDLEVBQ3ZKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFxQixHQUFuQixFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFHLE9BQU8sRUFBc0IsR0FBcEIsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRyxPQUFPLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxvQ0FBb0MsQ0FBQyxDQUFDLEVBQ3ZKLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQVcsT0FBVixFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQVMsR0FBRyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxPQUFXLE9BQU0sR0FBSSxDQUFDLEdBQUcsTUFBTyxHQUNwSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxNQUFPLE9BQU0sR0FBSSxJQUFJLEdBQUksNERBQTRELENBQUMsRUFDdkosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsRUFBRSxNQUFPLE9BQU0sR0FBSSxJQUFJLEdBQUksUUFBUSxFQUFFLHlDQUF5QyxDQUFDLENBQUMsRUFDdkosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcscUJBQXFCLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3hKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBUSxPQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLFVBQVcsT0FBTyxHQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksR0FDdEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUN0SixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQ3ZKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFHLE1BQU8sR0FBRyxNQUFPLE9BQVEsUUFBTyxFQUN2SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFDeEosU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU8sR0FBRyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQ3hKLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxFQUFNLEVBQUUsT0FBTyxPQUFRLFFBQVEsSUFBRyxFQUFFLEVBQUUsVUFBVyxJQUFHLEVBQUUsR0FBTSxjQUFjLE9BQU8sRUFBRyxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQ3pKLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQ3pKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQ3hKLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUN6SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUN6SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBSSxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQU8sTUFBSixFQUFFLEVBQVEsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDeEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUssUUFBUSxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFPLE1BQUosRUFBRSxFQUFRLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksQ0FBQyxNQUFPLE9BQU0sR0FBSSxDQUFDLEdBQ3hKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRyxPQUEyQixHQUFwQixFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxVQUFVLEVBQUUsR0FBRyxFQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUN4SixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUcsT0FBMkIsR0FBcEIsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsVUFBVSxFQUFFLEdBQUcsRUFBRyxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFDeEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBMEUsT0FBeEUsRUFBRSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFVLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUN4SixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFDekosU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQ3pKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQzFKLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLE1BQWdCLEdBQVQsRUFBRSxJQUFJLENBQUMsRUFBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sSUFBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEdBQU0sR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEdBQUksQ0FBQyxFQUFJLE9BQU8sRUFBRSxFQUN6SixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBUSxHQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsVUFBVyxHQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsY0FBYyxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUN4SixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBUSxHQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsVUFBVyxHQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsY0FBYyxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUN4SixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBa0IsT0FBaEIsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQVUsRUFDMUosU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQWtCLE9BQWhCLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFVLEVBQzFKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFDMUosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRyxNQUFPLEdBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsRUFBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUMxSixTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FDeEosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFJLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDMUosU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFVLEVBQUUsRUFBRSxLQUEyRCxPQUF0RCxFQUFFLFVBQVUsRUFBRSxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFVLEVBQUUsTUFBTSxJQUFJLEVBQUUsTUFBTyxDQUFDLEVBQzNKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUssSUFBSSxFQUFFLEtBQUssT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsS0FBSyxHQUMxSixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsT0FBaUQsR0FBMUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFLLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQzNKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQzNKLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEtBQUssRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBVyxHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxLQUFNLE9BQU8sRUFBRSxNQUFPLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDMUosU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsS0FBSyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxPQUFPLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFXLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEtBQU0sT0FBTyxFQUFFLE1BQU8sS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUMxSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQXFCLEdBQWxCLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFHLE9BQU8sSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRyxPQUFPLEtBQ3hKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUF1QixHQUFwQixFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBTyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxDQUFDLEdBQUksTUFBTyxHQUFPLE1BQU8sR0FDeEosU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzNKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUMzSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLE9BQVEsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUMxSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUcsT0FBTyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsR0FBRyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzSixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFHLEdBQUcsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRyxJQUFLLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxFQUFFLElBQUksRUFDM0osU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQTJHLE9BQTFHLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQVMsRUFDM0osU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLFNBQVUsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFRLE9BQU0sR0FBSSxDQUFDLEVBQUUsT0FBTyxHQUFJLENBQUMsRUFDM0osU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLFNBQVUsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFRLE9BQU0sR0FBSSxDQUFDLEVBQUUsT0FBTyxHQUFJLENBQUMsRUFDM0osU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBWSxHQUFWLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUcsTUFBTyxHQUEyQyxHQUFyQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBTSxFQUFFLEVBQUcsTUFBTyxHQUFvQyxPQUE5QixFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBVyxHQUN6SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxNQUFPLEdBQU0sR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxNQUFPLEdBQU0sTUFBTyxHQUN6SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBRSxPQUFPLEVBQUUsRUFBRSxPQUFRLEdBQUUsT0FBTyxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLE1BQU8sR0FBRSxPQUFPLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQzVKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sUUFBUyxHQUFFLE9BQU8sUUFBUyxHQUFFLE9BQU8sUUFBUyxHQUFFLE9BQU8sUUFBUyxHQUFFLE9BQU8sT0FBUyxHQUFFLE9BQU8sWUFBWSxPQUFPLE1BQ3ZKLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQTJILE9BQXpILEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUFTLEVBQzVKLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQXlGLFFBQXJGLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUM1SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM1SixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FDM0osU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQzNKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQTBCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQXFCLEdBQWxCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFJLE9BQU8sRUFDN0osU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksS0FBSyxHQUFJLEVBQUUsR0FBTSxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUM3SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLENBQUMsR0FDM0osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FDM0osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FDM0osU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUksRUFBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUF5QixHQUF2QixHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFLLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBTSxFQUFFLElBQUksR0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLE9BQU8sRUFDN0osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFxRyxPQUFuRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUM3SixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksSUFBSSxJQUFLLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksMkJBQTJCLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksNEJBQTRCLEdBQUksQ0FBQyxDQUFDLEVBQzdKLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLG1CQUFtQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksbUJBQW1CLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxvQkFBb0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGtCQUFrQixDQUFDLEVBQzdKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLElBQUksR0FBSSxFQUFFLENBQUMsRUFDN0osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBcUMsT0FBbkMsRUFBRSxFQUFLLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBUyxFQUM5SixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxTQUFTLENBQUMsRUFBRSxJQUFJLEdBQUksNEJBQTRCLEVBQUcsRUFDN0osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxNQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxPQUFPLE1BQVMsS0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRyxPQUFPLEVBQUksTUFBTyxHQUM1SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsR0FBRyxHQUFLLE1BQU8sV0FBVyxFQUFFLEdBQUcsSUFBSyxFQUFFLEdBQUcsR0FBSyxNQUFPLEdBQWdDLE9BQTlCLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUM5SixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLE1BQU0sR0FBSSxJQUFJLEdBQUksNENBQTRDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM5SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFvQyxPQUFoQyxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBUyxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFDN0osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxLQUFLLEVBQUUsSUFBSSxJQUFNLEtBQUssRUFBRSxJQUFJLElBQzNKLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFTLEdBQVAsRUFBRSxLQUFRLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBMkQsT0FBeEQsR0FBRyxRQUFRLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsR0FBSSxDQUFDLEdBQVUsRUFDOUosU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBaUIsT0FBaEIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBUyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSx3QkFBd0IsQ0FBQyxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDOUosU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBb0YsR0FBbEYsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBUSxNQUFNLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFDL0osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFpQixPQUFULElBQUksRUFBRSxDQUFDLEVBQVMsR0FBSyxNQUFPLEdBQzNKLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLEtBQUssR0FBSSxFQUFFLEdBQUssRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFDN0osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsVUFBVSxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsTUFBTyxPQUFNLEdBQUksSUFBSSxHQUFJLG1FQUFtRSxDQUFDLEVBQzlKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWMsT0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLE9BQVEsR0FBRSxPQUFRLEVBQUUsRUFBRSxNQUFPLEdBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTyxHQUFFLE9BQVEsRUFBRSxFQUFFLFVBQVUsTUFBTyxJQUM3SixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDOUosU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRyxPQUFPLEVBQUcsRUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQTBFLE9BQXhFLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxDQUFDLEVBQVMsRUFDL0osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUMvSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMvSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMvSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMvSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMvSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMvSixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMvSixTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQzdKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFnQixHQUFYLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBSyxHQUFHLE1BQU0sR0FBRyxHQUFHLEtBQU0sT0FBTyxVQUFXLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFHLE1BQU8sR0FDOUosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWMsR0FBWixFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBTSxFQUFHLE9BQU8sU0FBcUUsUUFBM0QsRUFBRSxHQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUcsQ0FBQyxFQUFTLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQzlKLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSyxPQUFPLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTyxJQUFPLE1BQU8sR0FDM0osU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFPLE9BQU4sR0FBSSxFQUFTLEVBQUUsRUFBRSxPQUFRLEdBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxVQUFXLEdBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxjQUFjLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFHLEdBQzlKLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUksRUFBUyxFQUFFLEVBQUUsT0FBUSxHQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsVUFBVyxHQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsY0FBYyxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUM5SixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQThCLEdBQTVCLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksRUFBRyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxJQUFJLEdBQUksQ0FBQyxDQUFDLE1BQU8sSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxDQUFDLENBQUMsRUFDL0osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBUSxHQUFFLFFBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFPLEdBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTyxHQUFFLFFBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksTUFBTyxHQUNoSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLE9BQVMsR0FBRSxPQUFPLElBQUksR0FBSSxFQUFFLElBQUssR0FBSSxPQUFTLEdBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxJQUFLLEdBQUksV0FBWSxPQUFPLElBQzVKLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUNoSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNoSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNqSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNqSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNqSyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQ2hLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFDakssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBYSxHQUFYLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUUsUUFBUSxFQUFHLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNoSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEdBQy9KLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBbUIsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFNLEdBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsTUFBTyxHQUFPLE1BQU8sR0FDN0osU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFtQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQU0sR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU8sR0FBTyxNQUFPLEdBQzlKLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDLEdBQy9KLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLE1BQU8sR0FDOUosU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXNCLEdBQXBCLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQWMsR0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQWMsR0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQWMsT0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLEVBQ2xLLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEtBQUssR0FBSSxFQUFFLEdBQUssRUFDbEssU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBUSxHQUFOLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBWSxHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFVLEdBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLFdBQWEsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUNqSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBZ0MsR0FBdkIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBTyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ2hLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ2xLLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFRLEdBQU4sRUFBRSxFQUFFLEVBQUssSUFBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQ2xLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFDaEssU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQTZILE9BQTVILEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUNoSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQ2xLLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQW9ILE9BQWxILEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQVMsRUFDbkssU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFpQyxHQUFoQyxFQUFFLEVBQUcsS0FBSyxHQUFJLEVBQUUsSUFBSyxFQUFHLEVBQUUsSUFBSSxFQUFLLEVBQUcsT0FBTyxRQUFTLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEtBQUssR0FBSSxFQUFFLEVBQUUsTUFBTyxPQUFNLEdBQUksQ0FBQyxFQUFFLE9BQU8sSUFBSSxJQUNqSyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQWlDLEdBQWhDLEVBQUUsRUFBRyxLQUFLLEdBQUksRUFBRSxJQUFLLEVBQUcsRUFBRSxJQUFJLEVBQUssRUFBRyxPQUFPLFFBQVMsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxNQUFPLE9BQU0sR0FBSSxDQUFDLEVBQUUsT0FBTyxJQUFJLElBQ2pLLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBaUMsR0FBaEMsRUFBRSxFQUFHLEtBQUssR0FBSSxFQUFFLElBQUssRUFBRyxFQUFFLElBQUksRUFBSyxFQUFHLE9BQU8sUUFBUyxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUksRUFBRSxFQUFFLE1BQU8sT0FBTSxHQUFJLENBQUMsRUFBRSxPQUFPLElBQUksSUFDakssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBYyxHQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFtRCxPQUFqRCxHQUFHLElBQUksRUFBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFXLEVBQ25LLFNBQVMsR0FBRSxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBTSxLQUFLLEVBQUUsR0FBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBTSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FDbEssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBcUUsR0FBbkUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTyxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUFHLE9BQU8sRUFDcEssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBcUUsR0FBbkUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTyxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUFHLE9BQU8sRUFDcEssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBcUUsR0FBbkUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTyxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUFHLE9BQU8sRUFDcEssU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxFQUNwSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQ3BLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWMsT0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLE9BQVEsR0FBRSxPQUFRLEVBQUUsRUFBRSxNQUFPLEdBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTyxHQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBRSxPQUFRLEVBQUUsRUFBRSxVQUFVLE1BQU8sSUFDakssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsNkJBQTZCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3BLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBWSxHQUFWLEVBQUUsRUFBRSxFQUFFLEdBQU8sRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFpRSxHQUE1RCxFQUFFLEVBQUUscUJBQXFCLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQ3BLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFDcEssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFDcEssU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBVyxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFHLEdBQUcsQ0FBb0IsS0FBakIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBZ0IsR0FBYixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBUSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBUSxFQUFFLEVBQUUsR0FDbkssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUNwSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUNwSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBcUMsT0FBbkMsRUFBRSxFQUFLLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBUyxFQUNySyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDdEssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3RLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUEyRyxPQUF6RyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFTLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUNySyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLHlCQUF5QixDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQWUsRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUNySyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNySyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBUSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNySyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBUSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNySyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsR0FDbkssU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBMkIsR0FBekIsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBSyxFQUFFLEVBQUUsR0FBdUMsR0FBcEMsR0FBRyxFQUFFLElBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFhLE9BQVYsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQTJCLE9BQXhCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEtBQ2xLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxPQUFRLE9BQU8sR0FBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQXFCLEdBQWxCLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFHLE9BQU8sRUFBRyxLQUFLLEVBQUUsT0FBTyxLQUNsSyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQ3BLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBeUksT0FBdkksRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQVMsRUFDdEssU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksNEJBQTRCLENBQUMsTUFBTyxRQUFPLEVBQUUsSUFBSSxPQUFPLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBSyxLQUFLLEtBQUssR0FBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEdBQ3JLLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsTUFBTyxPQUFZLEtBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUcsTUFBTyxHQUFPLE1BQU8sR0FDbEssU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBTSxNQUFPLE9BQVksT0FBTSxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsTUFBTyxHQUFPLE1BQU8sR0FDbkssU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRyxNQUFPLFdBQWEsR0FBRyxFQUFFLEdBQUcsRUFBZ0IsT0FBYixFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQVMsS0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRyxFQUFFLE1BQU8sT0FBTyxHQUNsSyxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUssR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTyxPQUFPLEVBQ3ZLLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUksQ0FBQyxHQUFHLEdBQUksQ0FBQyxHQUFTLEdBQU4sRUFBRSxFQUFFLEVBQUssR0FBSSxHQUFHLEVBQUUsR0FBSyxPQUFPLEVBQUUsRUFBRSxFQUFLLEtBQUssS0FBSyxDQUFDLEVBQUUsRUFBSyxLQUFLLE1BQU0sQ0FBQyxFQUFHLE9BQU8sR0FBSSxJQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLENBQUMsRUFDdkssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFHLE9BQU8sRUFBRSxFQUFFLFVBQVUsR0FBRyxFQUFFLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxNQUFPLE9BQU0sR0FBSSxJQUFJLEdBQUksbUVBQW1FLENBQUMsRUFDdEssU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBOEIsR0FBNUIsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFDckssU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUN2SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQThCLEdBQTFCLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFHLE9BQU8sRUFBRyxPQUFPLEtBQ3BLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUN0SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBTSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFDdkssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBMEUsR0FBeEUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLE1BQVEsR0FBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUN0SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsRUFBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFDdkssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQVUsR0FBUixFQUFFLEdBQVMsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLEdBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFLLEdBQUksR0FBRyxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRyxJQUFJLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFDdEssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQWtJLE9BQWhJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxNQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUssR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQ3ZLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUcsRUFBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQWMsT0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxDQUFDLFVBQVUsT0FBTyxNQUNuSyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxTQUFTLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxXQUFXLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxZQUFZLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxXQUFXLENBQUMsRUFDeEssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUEyQixHQUF6QixFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxHQUFtRCxHQUFoRCxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBRyxPQUFPLEVBQ3hLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sYUFBYSxNQUFNLEdBQUksSUFBSSxHQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FDdEssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUN4SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFRLElBQUksRUFBRSxFQUFFLENBQUMsRUFDeEssU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUN4SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFlLEdBQWIsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBdUMsT0FBcEMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQXVCLEVBQUUsR0FBRyxVQUFVLEdBQUcsRUFBRSxHQUFHLEVBQXNCLE9BQW5CLEVBQUUsRUFBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBUyxNQUFPLFFBQU8sS0FDcEssU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUF5SCxPQUF2SCxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFLLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBSyxFQUFFLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxFQUFTLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDekssU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF1RSxHQUFyRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFDekssU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUksTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDeEssU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWtCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxJQUFHLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxPQUFPLEVBQzFLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzFLLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUMzSyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFDM0ssU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sR0FBRyxLQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUcsT0FBTyxFQUFHLE9BQU8sS0FDdkssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWdFLEdBQTlELEVBQUUsRUFBRyxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBdUIsR0FBcEIsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRyxPQUFPLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUMxSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQ3hLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUEwQixHQUFqQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFPLElBQUksQ0FBQyxFQUMzSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMzSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQVcsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsQ0FBQyxFQUFHLE9BQU8sU0FBMkQsUUFBakQsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLElBQUcsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFVLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUN6SyxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksRUFBRyxHQUFJLElBQUssR0FBSSxFQUFFLElBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxFQUFHLE9BQU8sRUFBRSxFQUMxSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFrQyxHQUEvQixHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBTSxFQUFtQixHQUFoQixFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTyxHQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUN2SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQVksRUFBRSxFQUFZLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxFQUFFLEdBQUcsRUFDdEgsR0FBRyxFQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQU4sQ0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFRLEtBQUksQ0FBQyxFQUFFLEVBQ2hELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBd0MsR0FBcEMsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLE1BQU8sR0FBTyxNQUFPLEdBQ3hLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBd0MsR0FBcEMsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLE1BQU8sR0FBTyxNQUFPLEdBQ3hLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFLLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzFLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBUSxHQUFFLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsVUFBVyxHQUFFLElBQUksQ0FBQyxFQUFFLFVBQVcsR0FBRSxJQUFJLENBQUMsR0FDekssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFLLEVBQUUsR0FBRyxTQUFTLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQzNLLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLFFBQVEsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFNBQVMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFVBQVUsQ0FBQyxFQUMzSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxPQUFPLEdBQUksQ0FBQyxFQUFnSCxPQUE5RyxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxlQUFlLEdBQUksR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLGdCQUFnQixHQUFJLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFDM0ssU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBRyxDQUFDLEVBQUUsSUFBRyxJQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxJQUFHLENBQUMsRUFBRSxJQUFHLElBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDM0ssU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFRLElBQUksTUFBSyxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBTixDQUFTLE1BQU8sSUFDdkYsVUFBVSxNQUFNLEtBQUssSUFBSSxVQUFVLFNBQVMsRUFBRSxFQUFHLE9BQU8sUUFBUyxRQUFPLElBQUksRUFDNUUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQTBELEdBQXZELEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSyxPQUFPLE1BQU8sR0FBRSxhQUFXLEVBQUUsT0FBTyxFQUM1SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsTUFBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQzVLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxNQUFPLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDNUssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQU0sQ0FBQyxFQUFFLEdBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUcsT0FBTyxFQUM1SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxPQUFPLEtBQWdCLEdBQVgsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU8sR0FBRyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQzVLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLE9BQU8sS0FBZ0IsR0FBWCxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsTUFBTyxHQUFHLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFDNUssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBc0MsR0FBcEMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsS0FBTSxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxLQUFNLE1BQU8sV0FBVyxFQUFFLEdBQUcsS0FBTSxNQUFPLEdBQUUsTUFBTyxHQUM3SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFtSixPQUFsSixFQUFFLEdBQUcsY0FBYyxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQVMsRUFDN0ssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FDM0ssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FDM0ssU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsTUFBTSxFQUFFLE9BQU8sR0FBRyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxHQUFJLEdBQUcsQ0FBNEIsT0FBM0IsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBUyxFQUFFLEdBQUcsV0FBVyxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsR0FBTSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBSSxDQUFDLEVBQUcsTUFBTyxHQUN6SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQXVDLE9BQXJDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQUUsT0FBUSxHQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQXFDLE9BQWxDLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFTLEVBQzlLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBa0csT0FBaEcsRUFBRSxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBUyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFDOUssU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksV0FBVyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksbUJBQW1CLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxxQkFBcUIsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGNBQWMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGFBQWEsQ0FBQyxFQUM5SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDOUssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FDNUssU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUM5SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsTUFBTyxPQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBTSxJQUFJLEVBQUUsRUFBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQWlCLE9BQWQsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQVMsT0FBc0IsUUFBWixFQUFFLEVBQUUsSUFBSSxJQUFXLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBUSxRQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FDNUssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUEySSxPQUF6SSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQU0sQ0FBQyxFQUFFLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBVSxFQUM5SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQWUsR0FBZCxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUssR0FBSSxHQUFJLENBQUMsR0FBRyxHQUFJLElBQUksQ0FBQyxFQUFHLE9BQU8sR0FBSSxFQUFFLFdBQVksR0FBSSxJQUFJLENBQUMsR0FBRyxHQUFJLElBQUksQ0FBQyxFQUFHLE9BQU8sR0FBSSxFQUFFLEdBQUksTUFBTSxHQUFJLElBQUksR0FBSSwyQkFBMkIsRUFBRSxHQUFHLENBQUMsRUFDOUssU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQTZCLEdBQXpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRyxPQUFPLEtBQzVLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDL0ssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sRUFDL0ssU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUMvSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQXNCLEdBQXBCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUcsS0FBTSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFJLEVBQXNCLEdBQXBCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQy9LLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUcsSUFBSSxDQUFDLEVBQy9LLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUMvSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQzdLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsT0FBTyxJQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBRyxHQUFJLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUcsR0FBSSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUM5SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFHLE1BQU8sR0FBTSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLE1BQU8sR0FBSyxPQUFPLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFDL0ssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQy9LLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLE9BQU8sQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGFBQWEsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGNBQWMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGNBQWMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFlBQVksQ0FBQyxFQUMvSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFLLFNBQVMsRUFBRyxHQUFHLEdBQUksSUFBSSxHQUFHLENBQUMsRUFBRyxPQUFPLEVBQUksTUFBTyxHQUMvSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQU0sT0FBTyxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FDL0ssU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQy9LLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQ2hMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQTBELEdBQXpELEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFPLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDL0ssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxNQUFPLEdBQVEsTUFBTyxHQUM3SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEdBQ3BLLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBbUosT0FBakosRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQVMsRUFDaEwsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLGFBQWEsRUFBRSxFQUFFLElBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQUUsR0FBRyxJQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsSUFBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxJQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ2pMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ2hMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBMkIsT0FBekIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFXLEVBQUUsT0FBUSxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUMvSyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBNkIsR0FBekIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxHQUFNLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUcsT0FBTyxFQUFHLE9BQU8sS0FDOUssU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksa0JBQWtCLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxXQUFXLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSx5QkFBeUIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLHVCQUF1QixDQUFDLEVBQ2pMLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxPQUFPLEVBQUcsSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFHLEVBQUUsSUFBSSxFQUEyRyxPQUF6RyxFQUFFLEVBQUcsR0FBRyxJQUFLLEdBQUksRUFBRSxJQUFLLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFJLEVBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBSyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQVMsRUFDakwsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBK0IsR0FBN0IsRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBRywwQkFBMEIsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFDakwsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQU8sTUFBTyxHQUM5SyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxNQUFPLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxHQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxDQUFDLEVBQ2xMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXFDLE9BQW5DLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFVLEVBQUUsT0FBUSxHQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLEVBQXVCLE9BQXBCLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ2xMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBNEQsT0FBMUQsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLE9BQVEsT0FBTyxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVyxPQUFPLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDbEwsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxPQUFPLEVBQ2xMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFtQyxHQUExQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsT0FBUSxFQUFFLEVBQUUsRUFBRSxFQUNsTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBbUMsR0FBMUIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLE9BQVEsRUFBRSxFQUFFLEVBQUUsRUFDbEwsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFHLElBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRyxFQUFFLEdBQUssRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBVyxHQUFFLEdBQzdLLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUNsTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFHLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQWMsT0FBWCxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQVMsRUFDbkwsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsbUJBQWlCLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUssSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUNoTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFtQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBSSxDQUFDLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUcsTUFBTyxJQUFRLE1BQU8sR0FDL0ssU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBdUYsR0FBcEYsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsUUFBUSxFQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsR0FDakwsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE4QixHQUE1QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsR0FBSSxDQUFDLEdBQUcsRUFBRyxNQUFPLFdBQVUsSUFBSSxDQUFDLEdBQUcsRUFBRyxNQUFPLE9BQWEsUUFBTixFQUFFLEVBQUUsRUFBUyxHQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFDbEwsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsS0FBSyxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBSyxLQUFLLEVBQUUsRUFBRSxFQUNsTCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFrRCxHQUFoRCxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsZUFBZSxHQUFHLElBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFNLEdBQWdFLEdBQTdELEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsSUFBTyxFQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEdBQ2pMLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBTyxFQUFHLEVBQUUsRUFBRSxVQUFVLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBTyxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsV0FBVyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBSSwrQkFBK0IsQ0FBQyxFQUNsTCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sRUFBRSxLQUFLLEVBQVksT0FBVCxFQUFFLEdBQUcsRUFBRSxFQUFTLElBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxFQUFFLEtBQUssRUFBWSxPQUFULEVBQUUsR0FBRyxFQUFFLEVBQVMsSUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUNwTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNuTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksMkJBQTJCLENBQUMsVUFBVSxFQUFFLEdBQUcsS0FBTSxNQUFPLE9BQW1FLFFBQXhELEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUcsSUFBVyxHQUNoTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE2SSxPQUEzSSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsRUFBUyxFQUNwTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQWMsR0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLE9BQVEsR0FBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUNwTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUssSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFHLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQ3BMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBSyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUcsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDcEwsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsR0FBRyxFQUNwTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3BMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDcEwsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUNyTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUE2QixHQUE1QixFQUFFLEdBQUcsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksTUFBTyxHQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFNLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUssR0FBTSxFQUFFLEVBQUUsR0FBRyxFQUNyTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBa0IsT0FBZixJQUFJLEVBQUUsSUFBSSxJQUFZLEVBQ3JMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxPQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQ3JMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEdBQUcsRUFDckwsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFDckwsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUE2SSxPQUE1SSxLQUFJLEVBQUUsS0FBTSxFQUFFLGtEQUFrRCxFQUFFLEtBQUksRUFBRSxJQUFJLEVBQUUsZ0RBQWdELEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQVMsSUFBSSxJQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDdEwsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQTJGLEdBQTFGLElBQUksRUFBRSxtQ0FBbUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxvQ0FBb0MsRUFBSyxFQUFFLEVBQUcsT0FBTyxFQUFFLEdBQUcsS0FBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQ3JMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBUSxPQUFPLEdBQUUsT0FBTyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFPLE9BQU8sR0FBRSxPQUFPLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsTUFBTyxHQUN0TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUksRUFBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQ3JMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sU0FBUyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUNyTCxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQXlELE9BQXBELEVBQUUsSUFBSyxFQUFFLElBQUssR0FBRyxNQUFNLEdBQUksRUFBRSxPQUFPLEVBQUUsR0FBSSxNQUFNLEdBQVcsT0FBTyxhQUFhLENBQUMsR0FBRyxHQUFHLE9BQU8sYUFBYSxDQUFDLE9BQVEsUUFBTyxPQUFPLGFBQWEsRUFBRSxFQUFHLEVBQ3RMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQTRCLEdBQTFCLEVBQUUsRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxHQUFHLEVBQTZELE9BQTFELEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBVSxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLE9BQVEsT0FBTyxHQUNsTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQU0sT0FBTyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFFLEdBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUE2QixHQUEzQixHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3RMLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGFBQWEsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGNBQWMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksYUFBYSxDQUFDLEVBQ3ZMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQVcsT0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFTLEVBQUUsT0FBUSxHQUFFLFFBQVMsRUFBRSxFQUFFLEVBQUUsT0FBUSxHQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTyxHQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTyxHQUFFLFFBQVMsRUFBRSxFQUFFLEVBQUUsR0FBSSxNQUFPLEdBQ3ZMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBb0osT0FBbEosRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLENBQUMsRUFBRSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBVSxFQUN2TCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQWlCLEdBQWhCLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFnQixPQUFiLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBZSxPQUFiLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQ3JMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBTSxHQUFKLEVBQUUsR0FBTSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFLLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBUSxHQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFvRCxPQUFsRCxJQUFJLEdBQUksRUFBRSxPQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBVSxFQUN4TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFHLE1BQU8sR0FBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxNQUFPLEdBQTBDLE9BQXBDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEdBQUcsR0FBRyxHQUFHLEVBQ3hMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFlBQVksTUFBTSxHQUFJLElBQUksR0FBSSw4REFBOEQsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FDdEwsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFNLEdBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFLLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRyxJQUFJLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFDdkwsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBYyxHQUFaLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEdBQTBELEdBQXZELEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFLLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFLLFNBQVMsRUFBRyxHQUFHLEdBQUksSUFBSSxHQUFHLENBQUMsRUFBRyxPQUFPLEdBQUssTUFBTyxHQUN4TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssR0FBMEQsR0FBdkQsRUFBRSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUssR0FBRyxNQUFNLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQUssU0FBUyxFQUFHLEdBQUcsR0FBSSxJQUFJLEdBQUcsQ0FBQyxFQUFHLE9BQU8sR0FBSyxNQUFPLEdBQ3hMLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBb0IsR0FBbEIsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBUSxLQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFDekwsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUEyRCxPQUF6RCxFQUFFLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLEVBQUUsT0FBUSxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsT0FBTyxFQUN6TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFLLEdBQUksRUFBRSxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3hMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FDdkwsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFDekwsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUN2TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUEwQixHQUFqQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxHQUFNLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUMxTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQ3hMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsd0NBQXdDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsSUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDMUwsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBMEMsR0FBeEMsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFHLE1BQU8sR0FBa0QsR0FBNUMsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUcsTUFBTyxHQUFNLE1BQU8sR0FDdkwsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUssR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFtRSxHQUFqRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBSSxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFLLElBQUksR0FBSSxFQUFFLEtBQU0sS0FBSyxHQUFHLEVBQUcsS0FBSyxJQUFJLEVBQUUsRUFBRyxFQUFFLElBQUksTUFBTyxNQUFLLElBQUksR0FBSSxFQUFFLElBQ3RMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLFNBQVMsRUFBRyxHQUFHLENBQUMsT0FBTyxJQUFJLEdBQUksR0FBRyxDQUFDLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxNQUFPLE9BQU0sR0FBSSxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFDMUwsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sTUFBTSxNQUFNLE1BQU0sR0FBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxLQUFLLENBQUMsRUFDM0wsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQW9DLEdBQWxDLEVBQUUsVUFBVyxFQUFHLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBUSxFQUFHLE9BQU8sR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsR0FBSSxRQUFRLEdBQUcsSUFBSSxPQUFPLEdBQUcsSUFBSSxPQUFPLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFJLEVBQzNMLFNBQVMsQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFxQyxHQUFuQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBTSxHQUFHLEtBQU0sT0FBTyxFQUFvRyxPQUFsRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBYSxFQUMzTCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxvQkFBb0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGNBQWMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLG1CQUFtQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksb0JBQW9CLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxrQkFBa0IsQ0FBQyxFQUMzTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBbUIsR0FBaEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFFLElBQUksRUFBRSxFQUFHLE9BQU8sV0FBVyxFQUFFLEdBQUcsRUFBRSxFQUFHLE9BQVEsRUFBRyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxRQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMxTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQUssSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBMEIsR0FBekIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQUssR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUFNLE1BQU8sR0FDdkwsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFNLEVBQzNMLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksR0FDekwsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUMzTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQzNMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFJLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDM0wsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUMzTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQWlCLEtBQWIsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUErQyxPQUE3QyxHQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFVLEVBQzNMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFNLEdBQUosRUFBRSxFQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFLLE9BQU8sSUFBSSxDQUFDLEVBQU0sR0FBSixFQUFFLEVBQUssR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksb0RBQW9ELENBQUMsQ0FBQyxHQUFJLE9BQU8sRUFDM0wsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsb0JBQW9CLEdBQUcsS0FBSyxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsT0FBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQzNMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFVLEdBQVIsRUFBRSxHQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUM1TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLE1BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUM1TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLE1BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUM1TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBUSxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FDM0wsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUM3TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFrQixHQUFoQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxNQUFNLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUM1TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQStDLEdBQTdDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQW1ELEdBQWhELEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFPLEtBQUssRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUFFLEVBQzdMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxHQUMzTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQWEsR0FBWCxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLE9BQU8sRUFBWSxHQUFULEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQTJCLE9BQXhCLEVBQUUsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFVLEVBQzdMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQTBCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQzlMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQzlMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLFVBQVUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsTUFBTyxHQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQzVMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQTBCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzVMLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBeUQsR0FBeEQsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLE1BQU8sR0FBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFDN0wsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLEdBQzVMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxHQUM3TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDL0wsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksZ0NBQWdDLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxnQ0FBZ0MsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUMvTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUM5TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQWlCLEdBQWhCLEVBQUUsR0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxNQUFNLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUEwQyxPQUF4QyxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBUyxFQUMvTCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTyxHQUFNLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFnQixHQUFmLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE1BQU8sR0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxHQUFLLE1BQU8sR0FDM0wsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQy9MLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsTUFBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQy9MLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBSSxzQ0FBc0MsQ0FBQyxFQUM5TCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxNQUFPLE9BQU0sR0FBSSxJQUFJLEdBQUksdUNBQXVDLENBQUMsRUFDL0wsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFLLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUssRUFBRSxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsTUFDNUwsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQy9MLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLFNBQVMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFlBQVksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGdCQUFnQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksbUJBQW1CLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxpQkFBaUIsQ0FBQyxFQUNoTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFVLEdBQVIsRUFBRSxHQUFTLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUcsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSyxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsSUFDN0wsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWtHLEdBQWhHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBSyxFQUFHLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDaE0sU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLElBQU8sRUFBRSxHQUFNLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFRLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFDak0sU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBUSxHQUFOLEdBQUcsR0FBTSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxVQUFVLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUNqTSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQWdILEdBQS9HLEtBQUssT0FBTyxJQUFJLElBQUksT0FBTyxpRkFBaUYsSUFBTyxJQUFJLEtBQUssQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sV0FBVyxDQUFDLEVBQ2pNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDL0wsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsR0FBRyxFQUFJLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUNoTSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxZQUFZLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxjQUFjLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxlQUFlLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxpQkFBaUIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGFBQWEsQ0FBQyxFQUNqTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSwwQkFBMEIsQ0FBQyxVQUFVLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLDBCQUEwQixDQUFDLE1BQU8sUUFBTyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FDaE0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFtQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQzlMLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBSSxDQUFDLEVBQXNJLE9BQXBJLEVBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLGFBQWEsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxZQUFZLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsUUFBUSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLFFBQVEsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFDak0sU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQTZDLEdBQTFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUssR0FBRyxLQUFNLE1BQU0sR0FBSSxJQUFJLEdBQUksa0JBQWtCLENBQUMsQ0FBQyxFQUFHLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FDak0sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsT0FBTyxhQUFhLENBQUMsQ0FBQyxFQUFFLE9BQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUNqTSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksRUFBRyxFQUFFLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksSUFBSSxJQUNoTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBMEMsTUFBdkMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFRLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLHNDQUFzQyxFQUFFLEdBQUcsQ0FBQyxFQUNqTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFnRCxHQUEvQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQU0sR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFHLFNBQVMsSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQ2xNLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBc0ssT0FBcEssRUFBRSxFQUFLLEtBQUssTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUssS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ25NLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLE9BQU8sSUFBSSxDQUE4QyxHQUE3QyxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUksTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBSyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsRUFBRSxtQkFBbUIsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFDbk0sU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksRUFBRSxLQUFLLEdBQUcsR0FBSSxFQUFFLElBQUssS0FBSyxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQ3BNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRyxNQUFPLEdBQWMsR0FBUixFQUFFLEVBQUUsRUFBRSxFQUFLLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sTUFBTyxHQUFvQyxHQUE3QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFLLEdBQUcsR0FBSyxNQUFPLEdBQU0sTUFBTyxHQUNqTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUcsTUFBTyxHQUFjLEdBQVIsRUFBRSxFQUFFLEVBQUUsRUFBSyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLE1BQU8sR0FBb0MsR0FBN0IsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBSyxHQUFHLEdBQUssTUFBTyxHQUFNLE1BQU8sR0FDak0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEtBQUssR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3BNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLE9BQU8sRUFBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFRLE9BQU8sR0FBRSxJQUFJLENBQUMsTUFBTyxHQUFFLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQVMsSUFBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUNuTSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxrQkFBa0IsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUkscUJBQXFCLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxtQkFBbUIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLHdCQUF3QixDQUFDLEVBQ3BNLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssT0FBTyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSSxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUNwTSxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQWUsT0FBYixFQUFFLEVBQUUsRUFBRSxPQUFjLE9BQVEsR0FBRSxPQUFPLFFBQVEsR0FBMEIsT0FBeEIsRUFBRSxFQUFHLElBQUcsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBUyxJQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLFVBQXdELE9BQTlDLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBUyxJQUFJLElBQUcsQ0FBQyxHQUNuTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUksT0FBTyxFQUNyTSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksTUFBTyxHQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksTUFBTyxHQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksTUFBTyxHQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksVUFBVSxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFDak0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBd0QsR0FBdEQsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU8sSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUNwTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFlLEdBQWIsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQWlGLE9BQTlFLEVBQUUsR0FBSSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ3JNLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFDbk0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQWtCLEdBQWpCLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxFQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQ3JNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksRUFBRSxFQUFFLEVBQUksRUFBRSxJQUFJLEVBQUUseUJBQXlCLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQ3JNLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxHQUFJLDZCQUE2QixDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxHQUFJLEdBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsWUFBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQ2pNLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBMEIsT0FBeEIsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBUyxFQUNyTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUNuTSxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRyxNQUFPLEdBQUssR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sT0FBVyxPQUFNLEdBQUksQ0FBQyxHQUFHLE1BQU8sR0FDbE0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBVSxPQUFULEtBQUssRUFBRSxFQUFTLEVBQUUsT0FBUSxHQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ3RNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBc0IsR0FBcEIsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUNwTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUEwQixPQUF4QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLEVBQUUsT0FBUSxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUNwTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBZ0IsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFRLEdBQUksQ0FBQyxNQUFNLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSyxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsR0FDL0wsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksMkVBQTJFLENBQUMsRUFBNEQsT0FBMUQsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQVUsRUFDdE0sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxVQUFVLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsVUFBVSxHQUFHLEVBQUUsRUFBRSxFQUFHLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3JNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsT0FBTyxFQUN2TSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBNkIsR0FBekIsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxJQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsTUFBTyxHQUFPLE1BQU8sR0FDbk0sU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFrQixHQUFoQixHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFDeE0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFJLENBQUMsR0FBSSxFQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBSSxFQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUN4TSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDeE0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLElBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUssR0FBRyxJQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FDdE0sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLEdBQWlDLE9BQTlCLEdBQUcsS0FBTSxFQUFFLElBQUksR0FBRyxLQUFNLEVBQUUsSUFBVyxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFDek0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBb0UsR0FBbEUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBeUIsR0FBckIsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBNkIsR0FBekIsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksT0FBTyxFQUN6TSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBbUQsR0FBL0MsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFHLEVBQWdCLE9BQWIsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsR0FBTSxNQUFPLEdBQ3JNLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksR0FBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBaUIsR0FBZCxFQUFFLEVBQUUsR0FBRyxPQUFVLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBb0IsT0FBakIsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQVUsRUFDMU0sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsT0FBTyxJQUFJLENBQUMsRUFBK0ksT0FBN0ksRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFJLElBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFTLEVBQUUsRUFDMU0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFZLE9BQVQsR0FBSSxFQUFFLENBQUMsRUFBUyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFDMU0sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQVEsR0FBTixFQUFFLEVBQUUsRUFBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsT0FBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxLQUFLLE9BQU8sRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUN6TSxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxPQUFPLElBQUcsRUFBRSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsT0FBTyxJQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxHQUFHLHdEQUF3RCxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDM00sU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsSUFBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFPLE9BQU0sR0FBSSxDQUFDLEdBQUcsT0FBTyxFQUMzTSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEtBQUssR0FBSSxFQUFFLEdBQUssRUFDMU0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBZ0MsR0FBOUIsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFLLEVBQUcsRUFBRSxLQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFLLEtBQUssSUFBSSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDMU0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLEVBQzNNLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxLQUFLLEdBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFLLEtBQUssRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFDM00sU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsR0FBRyxLQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFNLE9BQVEsRUFBRSxHQUFHLElBQUksR0FBRyxFQUM1TSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRyxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQzNNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzVNLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFDNU0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFNLE9BQU8sRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxHQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQzNNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQTZCLEdBQTNCLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEVBQUUsRUFBRyxJQUFJLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBRyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsQ0FBQyxNQUFRLElBQUksRUFBRSxFQUFFLENBQUMsRUFDM00sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFpQixHQUFmLEVBQUUsS0FBSyxFQUFFLEdBQVMsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSyxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLElBQUksRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFDNU0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFHLEdBQUcsRUFBRyxPQUFPLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFDM00sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLE9BQU8sU0FBUyxDQUFDLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQTBCLE9BQXhCLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsRUFBUyxHQUM1TSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsRUFBRSxFQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFLLEVBQzVNLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFVBQVUsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLE1BQU0sQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFNBQVMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFNBQVMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLE9BQU8sQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFVBQVUsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFNBQVMsQ0FBQyxFQUM3TSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBc0gsR0FBcEgsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDN00sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUE0QixHQUF6QixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsS0FBYSxPQUFQLEVBQUUsR0FBRyxFQUFTLEdBQU0sTUFBTyxPQUFXLFFBQU8sRUFBRSxHQUFHLEVBQzVNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBNEIsR0FBekIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQU0sS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFHLEtBQWEsT0FBUCxFQUFFLEdBQUcsRUFBUyxHQUFNLE1BQU8sT0FBVyxRQUFPLEVBQUUsR0FBRyxFQUM1TSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxJQUFJLEVBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxRQUFRLEdBQUksR0FBSSxhQUFhLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksV0FBVyxVQUFVLEVBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxJQUMzTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBb0IsSUFBakIsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsUUFBUyxHQUFHLEVBQUUsRUFBRSxFQUFvQixJQUFqQixHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxRQUFTLEdBQzdNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQTRFLE9BQXpFLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBUyxFQUM5TSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxlQUFlLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxhQUFhLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxhQUFhLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSx3QkFBd0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGVBQWUsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGVBQWUsQ0FBQyxFQUM5TSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBUSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUM3TSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sS0FDM00sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLE9BQU8sT0FBTyxHQUFFLE9BQU8sR0FBSSxFQUFFLE9BQVMsT0FBTyxPQUFPLEdBQUUsT0FBTyxHQUFJLEVBQUUsT0FBUyxPQUFPLE9BQU8sR0FBRSxPQUFPLEdBQUksRUFBRSxPQUFTLE9BQU8sUUFBUSxJQUFHLE9BQU8sR0FBSSxFQUFFLFdBQVksT0FBTyxHQUFJLEVBQUUsSUFDM00sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRyxNQUFPLEdBQXlELEdBQW5ELEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUssSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLEdBQUssTUFBTyxHQUFLLE9BQU8sR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFDL00sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsTUFBTyxPQUFNLEdBQUksSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDOU0sU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBbUQsR0FBakQsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUcsRUFBRSxDQUFDLEVBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sSUFBSSxFQUFHLElBQUcsSUFBSSxNQUFPLENBQUMsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxLQUFJLEVBQUcsSUFBRyxJQUFJLEVBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQzdNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUNyTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBdUIsR0FBckIsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUUsTUFBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQ2hOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUF1QixHQUFyQixFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBSyxFQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksRUFBRSxNQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFDaE4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksRUFBRSxFQUFLLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDaE4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBNEksT0FBMUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFTLElBQUksR0FBSSxFQUFFLENBQUMsRUFDaE4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsMkJBQTJCLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUNoTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUssSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBZ0IsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUksQ0FBQyxFQUFHLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FDNU0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxPQUFPLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLFVBQVcsR0FBRSxHQUFHLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBZ0QsT0FBN0MsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLElBQUksR0FBRyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQVUsRUFDaE4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQy9NLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsMEJBQTBCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDaE4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQThCLEdBQTVCLEVBQUUsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBaUQsR0FBaEQsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLENBQUMsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsSUFBSSxPQUFPLE1BQU8sUUFBTyxJQUFJLEdBQzdNLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQU0sR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUssRUFBRyxHQUFJLElBQUssR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxPQUFPLEVBQUUsRUFDaE4sU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLElBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUcsSUFBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQ2pOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF3SSxHQUF0SSxFQUFFLEVBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNoTixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQ2hOLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUksT0FBTyxFQUNsTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQTZDLEdBQXpDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFNLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FDOU0sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFLLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxHQUFHLEdBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxLQUMvTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXdCLEdBQXRCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFLLEdBQUcsS0FBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsS0FBSyxHQUFHLEVBQU8sR0FBSixFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFDbE4sU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLE9BQU8sRUFBRyxJQUFLLEdBQUksRUFBRSxJQUFLLEVBQUcsRUFBRSxJQUFJLEVBQTRJLE9BQTFJLElBQUksRUFBRSxFQUFFLEVBQUcsR0FBRyxJQUFLLEdBQUksRUFBRSxJQUFLLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFJLEVBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBSyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFLLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFTLEVBQ2xOLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFzRixHQUFwRixFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQU0sRUFBRSxFQUFHLE1BQU8sR0FBWSxPQUFOLEVBQUUsRUFBRSxFQUFTLEdBQ2hOLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFzRixHQUFwRixFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQU0sRUFBRSxFQUFHLE1BQU8sR0FBWSxPQUFOLEVBQUUsRUFBRSxFQUFTLEdBQ2hOLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUE0RCxHQUExRCxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBTSxFQUFFLFFBQVEsRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsVUFBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFHLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBNkMsT0FBMUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQVMsS0FDaE4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQ25OLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLENBQUMsRUFBRyxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUssQ0FBQyxFQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3BOLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUNuTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFDbk4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQStFLEdBQTVFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFLLElBQUksR0FBSSxFQUFFLElBQU0sR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFDak4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEdBQUksQ0FBQyxFQUNuTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ25OLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxLQUFLLEdBQUksRUFBRSxDQUFDLEdBQ2xOLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUcsT0FBTyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsQ0FBQyxNQUFPLFFBQU8sR0FBRyw2Q0FBNkMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbk4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQVEsR0FBTixFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFvRSxHQUE3RCxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDcE4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFHLEVBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQy9NLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLEdBQU4sSUFBSSxFQUFLLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUcsT0FBTyxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLGtGQUFrRixDQUFDLEVBQ3BOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFPLEdBQU4sSUFBSSxFQUFLLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUcsT0FBTyxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLGtGQUFrRixDQUFDLEVBQ3BOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQ3BOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBNkIsR0FBM0IsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFHLElBQUksRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsQ0FBQyxNQUFRLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNuTixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFtQyxHQUFoQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxLQUFNLE1BQU8sT0FBVSxFQUFFLEVBQUUsRUFBRyxNQUFPLE9BQVcsUUFBTyxFQUFFLEVBQUUsRUFDbk4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBa0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFHLEdBQUcsQ0FBdUMsR0FBdEMsRUFBRSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsSUFBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBSyxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRyxPQUFPLElBQUksQ0FBQyxRQUFTLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxHQUFNLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFJLENBQUMsRUFBRyxPQUFPLEVBQ3BOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQ3JOLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUSxPQUFPLE1BQU8sUUFBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQ2xOLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUcsT0FBTyxJQUFHLEVBQUUsSUFBRyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBRyxPQUFPLEdBQUcsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVUsQ0FBQyxVQUFVLGFBQWEsT0FBTyxhQUFhLEVBQUssTUFBTyxPQUFPLElBQUksSUFBRyxDQUFDLE1BQU8sUUFBTyxJQUFJLEdBQUcsQ0FBQyxFQUNyTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQTRILE9BQTFILEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFTLEVBQUUsT0FBUSxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQ3ROLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBNEgsT0FBMUgsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQVMsRUFBRSxPQUFRLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDdE4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUF5QixHQUFsQixFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFjLEdBQVgsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUNuTixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUNyTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTyxHQUFNLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFnQixHQUFmLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxDQUFDLElBQU8sR0FBSSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUFJLE1BQU8sR0FBTSxFQUFFLEVBQUUsS0FBSyxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUksTUFBTyxHQUFNLE1BQU8sR0FDbk4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF1SyxPQUFySyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBVSxFQUN0TixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBNEQsR0FBM0QsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQThCLElBQXhCLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBVSxFQUFFLEVBQUUsS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FDbE4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBTSxHQUFKLEVBQUUsRUFBSyxFQUFFLE9BQU8sRUFBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBTyxNQUFKLEVBQUUsRUFBUSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsTUFBTyxPQUFNLEdBQUksQ0FBQyxFQUFrQyxPQUEvQixJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLEdBQVUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FDbk4sU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUcsT0FBTyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsQ0FBQyxNQUFPLFFBQU8sR0FBRyxzQ0FBc0MsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDdE4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FDdE4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FDdE4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FDdE4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FDdE4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQXFFLEdBQXBFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRyxNQUFNLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN2TixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksTUFBTyxHQUFNLE1BQU8sR0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxNQUFPLEdBQUssTUFBTyxHQUNuTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxpQ0FBaUMsRUFBRSxrQkFBa0IsRUFBRSw4RUFBOEUsQ0FBQyxFQUN0TixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFzQixPQUFuQixFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQVMsR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQVEsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUksT0FBUSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUN2TixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUN4TixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFRLEdBQU4sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFHLE9BQU8sRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FDck4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxPQUFPLEdBQWEsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEVBQUcsT0FBTyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBVyxHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssRUFBaUMsT0FBOUIsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFTLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEdBQ3ROLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sT0FBTyxHQUFhLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxFQUFHLE9BQU8sRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQVcsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEVBQWlDLE9BQTlCLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBUyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxHQUN0TixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQWtCLEdBQWpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFHLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQ3ZOLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFNLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQ3JOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUcsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQW9CLE9BQWhCLEdBQUksRUFBRSxHQUFJLEVBQUcsQ0FBQyxFQUFTLElBQUksRUFBRSxDQUFDLEVBQ3hOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBb0YsR0FBbEYsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDeE4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQTRDLEdBQXhDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFLLEVBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQ3JOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUE0QyxHQUF4QyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBSyxFQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUNyTixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUE4RCxHQUE1RCxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFNLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsTUFBTyxHQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUN6TixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBVyxHQUFULEVBQUUsRUFBRSxHQUFHLEdBQU0sRUFBRSxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBSSxpQ0FBaUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUssSUFBSyxFQUFFLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQW9DLE1BQWxDLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxTQUFXLEVBQUUsR0FBRyxJQUFVLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQ3pOLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBbUQsR0FBakQsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQXVHLE9BQXJHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBVyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFDek4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQXlCLEdBQXBCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFDek4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUNwTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUE4QixHQUE1QixFQUFFLElBQUssR0FBSSxFQUFFLElBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEVBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFPLE9BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLENBQUMsRUFDeE4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsRUFBRyxNQUFPLEdBQThHLE9BQTVHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFLLEtBQUssTUFBTSxFQUFLLEtBQUssSUFBSSxDQUFDLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBUyxFQUFFLE9BQU8sSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUMxTixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQThCLEdBQTdCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxTQUFpQixHQUFSLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUMxTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxlQUFlLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFDMU4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQStCLEdBQTlCLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQyxFQUFLLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFPLE9BQU0sR0FBSSxJQUFJLEdBQUksa0ZBQWtGLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDMU4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBMEwsT0FBeEwsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFTLEVBQzNOLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxJQUFLLEdBQUksRUFBRSxHQUFJLE1BQU8sR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxZQUFZLE1BQU0sR0FBSSxJQUFJLEdBQUksOERBQThELEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQ3pOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEdBQ3pOLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUMzTixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxTQUFTLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSwyQkFBMkIsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLG1CQUFtQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUkseUJBQXlCLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxrQkFBa0IsQ0FBQyxFQUMzTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWtMLE9BQWhMLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQzNOLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBc0QsR0FBcEQsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBdUcsT0FBckcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFXLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUM1TixTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQXVHLE9BQXJHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBVyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFDN04sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxDQUFDLEVBQUUsT0FBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQzNOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBMEIsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUssRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBZ0QsT0FBN0MsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFTLEVBQUUsRUFBRSxFQUFFLEdBQzNOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUMxTixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUMzTixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDNU4sU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFVLEdBQVIsRUFBRSxHQUFTLEdBQUcsRUFBRSxHQUFHLEVBQVUsT0FBUCxFQUFFLEdBQVksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQXNCLEdBQW5CLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFVLE9BQVAsRUFBRSxHQUFZLEdBQUksSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFJLE1BQU0sR0FBSSxJQUFJLEdBQUksdUNBQXVDLEVBQUUsSUFBSSxDQUFDLEVBQzVOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFzRixHQUFsRixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBTSxHQUFHLE1BQU0sR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQVEsT0FBTyxFQUM1TixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFzQixHQUFwQixHQUFHLEVBQUUsYUFBYSxFQUFLLEdBQUcsRUFBRyxPQUFPLEVBQUUsRUFBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQXlCLEdBQXZCLEVBQUUsRUFBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFHLE1BQU8sR0FBVyxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxFQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQzdOLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUEyRCxHQUF6RCxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFzRixPQUFuRixHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUcsRUFBRSxFQUFFLEdBQUcsSUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFTLE9BQVUsT0FBTyxHQUN4TixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFNLEdBQUosRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUcsR0FBRyxJQUFJLEVBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUyxHQUFFLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUM3TixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFNLEdBQUosRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRyxFQUFFLElBQUksRUFBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFHLEdBQUcsSUFBSSxFQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUM3TixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksbUNBQW1DLENBQUMsRUFBMEUsR0FBeEUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDNU4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUssSUFBSSxFQUFFLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUM1TixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxPQUFPLEVBQUUsT0FBUSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUMzTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFvRCxHQUFsRCxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBdUcsT0FBcEcsRUFBRSxHQUFJLEdBQUksRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLENBQUMsRUFBUyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDOU4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBb0QsR0FBbEQsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQXVHLE9BQXBHLEVBQUUsR0FBSSxHQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQVMsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQzlOLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBc0QsR0FBcEQsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUcsS0FBVSxFQUFFLEtBQUssRUFBRSxFQUFHLElBQUssRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSyxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLElBQUssRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFDOU4sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFRLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFlBQVksTUFBTSxHQUFJLElBQUksR0FBSSx3REFBd0QsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FDNU4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsT0FBTyxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUM5TixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUM1TixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQVEsR0FBSSxNQUFPLE9BQVUsR0FBUyxHQUFOLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxHQUFHLEdBQVcsT0FBUCxFQUFFLEVBQUUsR0FBVSxXQUFVLEVBQUUsR0FBSSxDQUFDLElBQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBYSxPQUFQLEVBQUUsRUFBRSxHQUFVLE9BQWdCLFFBQU4sRUFBRSxFQUFFLEVBQVMsZUFBcUIsR0FBRyxNQUFPLElBQ3hOLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBUyxHQUFQLEdBQUksQ0FBQyxFQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBa0MsR0FBaEMsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBSyxFQUFFLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUF5QixPQUF2QixFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBRyxFQUM5TixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFpQixHQUFmLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUM3TixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxJQUFJLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBRyxVQUFXLEdBQUUsS0FBSyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDL04sU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFvQixHQUFsQixFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBZ0QsR0FBL0MsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUssR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUMvTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQW1DLEdBQWhDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFRLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUMvTixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNoTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBYSxPQUFaLEVBQUUsSUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFTLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBNkIsR0FBNUIsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBUSxPQUFPLEVBQUUsU0FBVSxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsR0FBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBSSxDQUFDLEVBQUUsT0FBTyxTQUFVLE9BQU0sR0FBSSxDQUFDLEdBQy9OLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQThCLEdBQTVCLEVBQUUsSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssRUFBdUcsT0FBcEcsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSSxFQUFFLEdBQUcsR0FBVSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFPLE9BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDL04sU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxPQUFPLEVBQUcsSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFHLEVBQUUsSUFBSSxFQUFxSixPQUFuSixHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRyxHQUFHLElBQUssR0FBSSxFQUFFLElBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUksRUFBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFLLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUssSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQVMsRUFDak8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFTLEdBQVAsRUFBRSxFQUFFLEdBQU0sR0FBSSxFQUFFLENBQUMsRUFBNkYsR0FBMUYsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQU0sRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQ2hPLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQWEsR0FBWCxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sR0FBRyxFQUFFLE9BQVEsTUFBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksR0FBRyxHQUFHLENBQW1CLEdBQWxCLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFLLEdBQUcsRUFBRSxPQUFRLE1BQU0sR0FBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBMEIsT0FBdkIsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUksRUFBRSxHQUFXLEVBQ2xPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBMkYsR0FBekYsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFLLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBSyxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQUssR0FBRyxHQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsSUFBSSxHQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxNQUFPLElBQUcsRUFBRSxFQUFFLEVBQUcsT0FBTyxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFDbE8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFlLEdBQVYsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksTUFBTyxHQUFPLE1BQU8sR0FDOU4sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDbE8sU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBNEIsR0FBeEIsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxHQUFNLEVBQUcsRUFBRSxVQUFVLEdBQUcsRUFBRyxNQUFPLEdBQU8sTUFBTyxHQUMvTixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBUSxLQUFKLEVBQUUsRUFBSyxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQVcsR0FBVCxFQUFFLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQ2xPLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQWEsR0FBVixFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFBRSxHQUFHLENBQUMsRUFBcUIsUUFBaEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFTLE9BQVUsT0FBTSxHQUFJLElBQUksSUFBSSw2Q0FBNkMsQ0FBQyxVQUFXLEVBQUUsR0FBRyxDQUFDLEVBQVMsUUFBSixFQUFFLEVBQVMsT0FBVSxPQUFPLEdBQzlOLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU8sV0FBVSxHQUFHLEVBQUcsTUFBTyxRQUF1SixRQUEvSSxJQUFJLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFHLEdBQVUsRUFBRSxFQUFFLEVBQ2xPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLEdBQUksRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUcsT0FBTyxJQUNqTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBWSxHQUFWLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBSyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxNQUFNLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNsTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxJQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRyxDQUFDLElBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUF1QixPQUFmLEdBQUksRUFBRSxJQUFJLEdBQUcsRUFBUyxFQUNuTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBMkIsT0FBeEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsV0FBVyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQTJCLEdBQXhCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQ3BPLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNuTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF1RixHQUFyRixFQUFFLEVBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBSyxHQUFHLEVBQUcsT0FBTyxFQUF3RSxPQUF0RSxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFXLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUNwTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFJLElBQUksR0FBSSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFDcE8sU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUE4QixHQUE1QixFQUFFLElBQUssR0FBSSxFQUFFLElBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEVBQXVHLE9BQXBHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUssRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUksRUFBRSxHQUFHLEdBQVUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFPLE9BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDbk8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFXLEdBQVQsRUFBRSxFQUFFLEVBQUUsR0FBTSxHQUFlLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxNQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFrQixHQUFmLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBRyxFQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsT0FBTyxNQUFTLEtBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFrQixHQUFmLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBRyxFQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRyxPQUFPLEVBQUssT0FBTyxLQUNqTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFzQixPQUFuQixFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQVMsR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQVEsT0FBTyxPQUFPLEdBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRyxPQUFRLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQ3BPLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLG1CQUFtQixDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUcsT0FBTyxXQUFZLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRyxHQUFHLElBQUksRUFBRSxFQUFHLEVBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDLEVBQ3JPLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRyxNQUFPLEdBQUssR0FBRyxHQUFHLE1BQU0sR0FBRyxLQUFNLE1BQU8sR0FBTSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQVEsTUFBTyxHQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQWlCLEdBQWQsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQVEsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUksTUFBTyxHQUFPLE1BQU8sR0FDbE8sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBSyxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssS0FBSyxFQUFFLEVBQUUsSUFBSSxLQUFLLElBQUksRUFBRyxFQUFFLEdBQUksSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUNuTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUcsT0FBTyxLQUFLLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQTRELE9BQTFELEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFVLEVBQ3JPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQVEsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sTUFBa0MsR0FBNUIsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSyxTQUFTLEVBQUUsR0FBRyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FDcE8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWdELEdBQTlDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQXlCLEdBQXhCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksQ0FBQyxFQUFRLEdBQU4sRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDbk8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFLLElBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQ3BPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQU0sTUFBTyxXQUFhLEVBQUUsR0FBRyxFQUFHLE1BQU8sT0FBVyxHQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssSUFBSSxLQUFLLEdBQUcsRUFBVSxPQUFQLEdBQUksQ0FBQyxFQUFTLElBQUksQ0FBQyxNQUFPLFFBQU8sRUFBRSxHQUFHLEVBQ3BPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBVSxHQUFULEtBQUssRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBSSxRQUFRLEVBQUUsMkJBQTJCLENBQUMsRUFDck8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBb0UsR0FBbEUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFNLEVBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLFVBQVUsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUcsTUFBTSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQ3JPLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBRyxDQUFDLEdBQUcsSUFBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFHLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBSSxFQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBRyxJQUFJLEVBQ3ZPLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksTUFBSyxJQUFHLElBQUcsR0FBRyxLQUFRLEVBQUUsRUFBRSxRQUFRLDBJQUEwSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFPLElBQUksRUFBRSxJQUNyTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxJQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLFVBQVUsT0FBTyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQ3RPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxFQUFFLElBQUksS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBSyxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFDdE8sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQ3ZPLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE0QyxHQUExQyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsT0FBVSxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFTLEdBQVAsRUFBRSxFQUFFLEdBQU0sR0FBRyxFQUFHLEVBQUUsU0FBVSxHQUFFLEdBQUcsSUFBRyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFzQixPQUFwQixHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxFQUN2TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQWtELEdBQS9DLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsS0FBTSxNQUFPLE9BQVUsRUFBRSxFQUFFLEVBQUcsTUFBTyxPQUFXLFFBQU8sRUFBRSxFQUFFLEVBQUUsRUFDdE8sU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxFQUFHLEdBQUksSUFBSyxJQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQ3ZPLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBSSxLQUFLLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxLQUFLLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFLLEtBQUssRUFBRSxHQUFRLEtBQUssRUFBRSxHQUNuTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FDdE8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUF1RSxHQUFyRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUssSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLElBQUssR0FBRyxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQU0sRUFBRSxHQUFJLENBQUMsT0FBUyxHQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUksQ0FBQyxFQUFJLEVBQUUsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFDeE8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRywwQkFBMEIsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUN4TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3ZPLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBc0MsR0FBcEMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsS0FBb0QsT0FBOUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsVUFBVSxFQUFFLEdBQUcsS0FBaUIsT0FBWCxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsV0FBVyxFQUFFLEdBQUcsS0FBaUIsT0FBWCxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxNQUFPLEdBQ3hPLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUN2TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBa0UsR0FBL0QsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBa0IsR0FBZixFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBTSxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBUSxHQUFFLEdBQUcsQ0FBQyxVQUFRLElBQUksRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFDdE8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQTRDLEdBQXpDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsR0FBRyxFQUF3QyxHQUFyQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBTyxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBUSxHQUFFLEdBQUcsQ0FBQyxVQUFRLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUN4TyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxLQUFLLEdBQUcsRUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEtBQUssR0FBRyxFQUFLLENBQUMsRUFDeE8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sTUFBTyxHQUEyQixHQUF0QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUE2QyxHQUExQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFHLE1BQU8sR0FBTyxHQUFHLEVBQUUsR0FBcUMsR0FBbEMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRyxNQUFPLEdBQU8sTUFBTyxHQUN0TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBOEMsR0FBN0MsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsT0FBTyxFQUN6TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxPQUFPLEdBQUksQ0FBQyxFQUE4SyxPQUE1SyxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxhQUFhLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsYUFBYSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLFdBQVcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsaUJBQWlCLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQ3pPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBSSxDQUFDLEVBQThLLE9BQTVLLEVBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLGNBQWMsR0FBSSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsYUFBYSxHQUFJLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxpQkFBaUIsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxpQkFBaUIsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFDek8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFnTSxPQUE5TCxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUssRUFBUyxFQUN6TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQXVCLEdBQXJCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFNLEVBQW1LLE9BQWhLLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFHLFFBQVEsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxPQUFPLEVBQzFPLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQzFPLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBVSxHQUFSLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUN6TyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVksR0FBVixFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUssR0FBRyxFQUFFLENBQWlELEdBQWhELEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBdUMsT0FBckMsR0FBSSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxDQUFDLEVBQVMsTUFBTyxRQUFPLEVBQ3pPLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFDM08sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFHLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxLQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLE9BQU8sR0FDMU8sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFxRixHQUFuRixHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFLLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFDM08sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksT0FBTyxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFNLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQ3hPLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBa0IsR0FBaEIsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUssR0FBRyxFQUFHLEVBQUUsR0FBRyxhQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUcsRUFBRSxLQUFLLEVBQzNPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxPQUFPLE9BQVEsS0FBSSxFQUFFLEVBQUUsVUFBVyxLQUFJLEVBQUUsRUFBRSxVQUFXLEtBQUksRUFBRSxFQUFFLFVBQVcsS0FBSSxFQUFFLEdBQUcsVUFBVyxLQUFJLEVBQUUsR0FBRyxVQUFXLEtBQUksRUFBRSxHQUFHLFVBQVcsSUFBRyxFQUFFLElBQUksVUFBVyxJQUFHLEVBQUUsSUFBSSxVQUFXLElBQUcsRUFBRSxJQUFJLFVBQVcsSUFBRyxFQUFFLEdBQUssT0FBTyxFQUMzTyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLENBQUMsRUFBRSxHQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsR0FDM08sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBb0QsR0FBbEQsRUFBRSxFQUFLLEtBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQU0sR0FBRyxFQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFDNU8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFNLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUksRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQzFPLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQTRCLEdBQXhCLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsR0FBTSxFQUFHLEVBQUUsR0FBSSxDQUFDLFVBQVUsR0FBRyxHQUFJLENBQUMsRUFBRyxNQUFPLEdBQU0sTUFBTyxHQUN4TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBZ0QsR0FBN0MsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsR0FBRyxFQUF3QyxHQUFyQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBTyxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBUSxHQUFFLEdBQUcsQ0FBQyxVQUFRLEdBQUksRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFDMU8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFpQixHQUFmLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQU0sRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLG9EQUFvRCxDQUFDLEVBQUUsRUFBRSxHQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxXQUFhLEVBQUcsTUFDdE8sU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLDhDQUE4QyxFQUFFLENBQUMsQ0FBQyxFQUFhLEdBQVgsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxHQUFJLDZDQUE2QyxFQUFFLEVBQUUsTUFBTSxLQUFLLEdBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQzdPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBVyxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFjLEdBQVgsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsRUFBa0osT0FBL0ksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFTLEdBQUksT0FBTyxFQUM3TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFZLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLEVBQUUsQ0FBQyxFQUFnQixRQUFaLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBUyxFQUFFLEdBQUcsRUFBRyxPQUFPLEtBQzNPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsT0FBTyxFQUM5TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRyxPQUFpRSxHQUExRCxFQUFFLElBQUksRUFBRyxFQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksQ0FBQyxFQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFHLE9BQU8sT0FBTyxFQUFFLE9BQVEsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxHQUM1TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUcsSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsS0FDM08sU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksS0FBSyxHQUFJLEVBQUUsR0FBTSxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQzlPLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSyxHQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxHQUFNLEtBQUssRUFBRSxHQUMxTyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxvQkFBb0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGNBQWMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGNBQWMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFFBQVEsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGVBQWUsQ0FBQyxFQUM5TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBeUQsR0FBdEQsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQWtCLEdBQWYsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQU0sRUFBRyxFQUFFLEdBQUcsQ0FBQyxNQUFPLEdBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLE1BQVEsR0FBRSxHQUFHLENBQUMsWUFBVSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFDNU8sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxPQUFRLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLHNCQUFzQixDQUFDLEVBQVMsR0FBUCxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUF1QixHQUFyQixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQU8sRUFBRSxFQUFFLEVBQVksR0FBVCxFQUFFLElBQUksQ0FBQyxFQUFLLEVBQUUsRUFBRyxNQUFPLE9BQVcsSUFBRyxFQUFHLEdBQUcsRUFBSSxHQUFHLEVBQUcsT0FBUSxFQUFFLElBQUksRUFDL08sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDL08sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFRLEdBQU4sRUFBRSxFQUFFLEVBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEdBQUksQ0FBQyxHQUFHLEdBQWlGLEdBQTlFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUcsT0FBTyxJQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFLLE9BQU8sRUFDL08sU0FBUyxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBSSxFQUFNLEVBQUUsRUFBRSxHQUFPLEVBQUUsYUFBYSxNQUFNLEVBQUUsR0FBRyxLQUFLLEdBQUcsSUFBSSxFQUFHLEVBQUUsTUFBTyxJQUFHLEVBQUUsR0FBRyxFQUFFLFdBQVcsSUFBSSxFQUFFLEdBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsVUFBVSxTQUFTLEVBQUcsVUFBVSxHQUFHLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUMvTyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBVyxHQUFWLEVBQUUsRUFBRSxJQUFHLENBQUMsR0FBTSxFQUFFLEVBQUcsTUFBTyxHQUEwQixHQUFwQixFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBdUQsR0FBdEQsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUcsT0FBTyxHQUFJLEVBQUUsQ0FBQyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU8sR0FDN08sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUEwQixHQUFqQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxHQUFNLEVBQUUsRUFBRSxFQUFFLElBQTZCLEdBQXpCLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFHLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUksT0FBTyxFQUNoUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBc0MsR0FBN0IsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEdBQU0sRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQzdPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBbUQsR0FBakQsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUssRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBZ0MsT0FBNUIsRUFBRSxFQUFFLFFBQVEsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQVMsR0FBRyxHQUFHLEVBQUUsS0FDN08sU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFLLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFHLEdBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUNoUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxJQUFLLEdBQUcsR0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQzNPLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE0QyxHQUExQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQU0sRUFBRSxJQUFJLEdBQUcsVUFBYSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLE1BQU8sR0FBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQ2pQLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ2pQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUM5TyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxpQ0FBaUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBa0QsR0FBL0MsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksQ0FBQyxFQUFHLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ2pQLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFDaFAsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUNoUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUEwRSxHQUF2RSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBWSxPQUFULElBQUksRUFBRSxDQUFDLEVBQVMsSUFBUSxNQUFPLEdBQzdPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWMsR0FBWixFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUssR0FBNkUsR0FBMUUsRUFBRSxHQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLGtCQUFrQixDQUFDLEVBQUssR0FBRyxLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQy9PLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFDalAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUksRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQy9PLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBUSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ2xQLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUcsTUFBTyxHQUFLLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQWlCLEdBQVgsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBc0IsR0FBbEIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFPLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFJLE1BQU8sR0FBTyxNQUFPLEdBQ2hQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUNsUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxZQUFZLE1BQU0sR0FBSSxJQUFJLEdBQUksdURBQXVELEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQ2pQLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFlBQVksTUFBTSxHQUFJLElBQUksR0FBSSx5REFBeUQsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FDblAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUyxFQUFFLEdBQUcsR0FDbFAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNwUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ2xQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFpQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsNENBQTRDLEVBQUUsTUFBbUMsR0FBN0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFDcFAsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFvRyxHQUFsRyxFQUFFLEVBQUcsR0FBSSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFHLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFHLE9BQU8sRUFDcFAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUcsQ0FBQyxJQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBdUIsT0FBZixHQUFJLEVBQUUsSUFBSSxHQUFHLEVBQVMsRUFDcFAsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRyxNQUFPLEdBQUssSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFHLE1BQU8sR0FBMEIsR0FBcEIsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQU0sR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFHLE1BQU8sR0FBTyxNQUFPLE9BQVUsUUFBTyxJQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ3BQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxNQUFPLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQ3BQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQ3JQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQWlDLEdBQTdCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFPLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUNsUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFpRSxHQUEvRCxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUcsSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRyxPQUFPLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3RQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXVELEdBQXJELEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQVksR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQVMsR0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUNqUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFpSixPQUEvSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBUyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3ZQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEwRSxJQUF2RSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFTLEdBQUcsR0FBRyxPQUFPLEVBQ3ZQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFnRixJQUE3RSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFTLEdBQUcsR0FBRyxPQUFPLEVBQ3ZQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBd0MsR0FBdEMsRUFBRSxHQUFHLDhCQUE4QixDQUFDLEVBQUssR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUcsSUFBSSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTyxPQUFNLEdBQUksSUFBSSxHQUFJLGtDQUFrQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3ZQLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUF5RCxHQUF2RCxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFNLEdBQUcsS0FBTSxPQUFPLEVBQTRJLE9BQTFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBYSxFQUN2UCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxTQUFTLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxXQUFXLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxRQUFRLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxXQUFXLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxXQUFXLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxTQUFTLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxhQUFhLENBQUMsRUFDeFAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksb0NBQW9DLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXNDLEdBQTdCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBaUIsR0FBZCxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFJLE9BQU8sRUFDelAsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBa0IsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFHLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FDeFAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxJQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3hQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBb0MsR0FBbEMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLG9CQUFvQixFQUFLLEVBQUUsQ0FBMkIsR0FBMUIsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUssRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQW9GLEdBQWxGLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQU8sRUFBRyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUN2UCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBb0IsR0FBbEIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQVEsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsTUFBTyxFQUFFLEVBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBTSxPQUFKLEVBQUUsRUFBUyxFQUN6UCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFHLE1BQU8sR0FBSyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBYSxHQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBTSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFxQixHQUFqQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFLLElBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsTUFBTyxHQUFPLE1BQU8sR0FBSyxNQUFPLEdBQ3RQLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQXdDLEdBQXRDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsR0FBRyxHQUFHLEVBQUcsR0FBRyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsVUFBVSxHQUFHLEdBQUcsRUFBRSxFQUFHLEdBQUcsRUFBRSxHQUFHLFVBQVUsR0FBRyxHQUFHLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxHQUFHLEVBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTyxJQUFHLEVBQUUsR0FBRyxFQUFNLE9BQU8sSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQzFQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLFdBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLFdBQVUsRUFBRSxHQUFHLEVBQUUsRUFBRyxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLEdBQUssTUFBTyxXQUFXLEVBQUUsR0FBRyxJQUFLLEVBQUUsR0FBRyxHQUFLLE1BQU8sR0FBRSxNQUFPLEdBQzFQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE2RSxHQUEzRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUUsR0FBMEMsT0FBckMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUEwQyxPQUFyQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLE1BQU8sR0FDdFAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUN6UCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sS0FBSyxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsT0FBTyxFQUMxUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQU0sRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssT0FBTyxJQUFRLEVBQUosRUFBYyxFQUFKLEdBQUUsRUFBSSxFQUFFLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQzFQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQTBCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQ3hQLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFDM1AsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQTZILEdBQTNILEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsTUFBTSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQU0sRUFBRyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUFRLElBQUcsT0FBTyxFQUFFLElBQUksR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUMzUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQXFCLEdBQWxCLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBSyxHQUFJLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBbUIsR0FBaEIsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBSyxHQUFHLEtBQU0sR0FBRyxHQUFHLEtBQU0sT0FBTyxNQUFPLENBQUMsSUFBSSxFQUFFLFdBQVcsR0FBSSxFQUFFLENBQUMsRUFBRyxPQUFPLE1BQU8sSUFBRyxPQUFPLElBQUksRUFBRSxHQUFJLE9BQU8sS0FDeFAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFxQixHQUFsQixFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUssR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQW1CLEdBQWhCLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUssR0FBRyxLQUFNLEdBQUcsR0FBRyxLQUFNLE9BQU8sTUFBTyxDQUFDLElBQUksRUFBRSxXQUFXLEdBQUksRUFBRSxDQUFDLEVBQUcsT0FBTyxNQUFPLElBQUcsT0FBTyxJQUFJLEVBQUUsR0FBSSxPQUFPLEtBQ3hQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBa0QsR0FBaEQsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLE1BQVEsS0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBSSxPQUFPLElBQUksQ0FBQyxFQUMzUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBZSxHQUFaLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBSyxHQUFnRixHQUE3RSxFQUFFLEdBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcscUJBQXFCLENBQUMsRUFBSyxHQUFHLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBSSxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FDelAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBcUQsT0FBakQsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLE9BQVEsT0FBTyxHQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVyxPQUFPLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFDeFAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBMEYsT0FBeEYsR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQVMsRUFDNVAsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQStILEdBQTlILEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTyxJQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDM1AsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsR0FBRyxLQUFLLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFJLEVBQUUsRUFBRSxHQUN6UCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRyxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFHLEVBQUUsRUFBRSxPQUFPLEVBQzdQLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBb0UsR0FBbEUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFFLENBQW9DLEdBQW5DLEVBQUUsR0FBRyxnQkFBZ0IsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLFlBQVksR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLGFBQWEsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksT0FBTyxFQUFFLEVBQzdQLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksSUFBSyxHQUFJLEdBQUUsRUFBRSxJQUFJLElBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFjLE9BQVYsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQzlQLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLHFFQUFxRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUM1UCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE2QixHQUEzQixFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFNLEVBQStFLE1BQTVFLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLDRDQUE0QyxFQUFFLEVBQUUsRUFBRSxXQUFpQixHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFDOVAsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFlLEdBQVQsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQWtCLEdBQWYsRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxPQUFPLFdBQVUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQWtCLEdBQWYsRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFHLE9BQU8sRUFBSyxNQUFPLEdBQzdQLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQXlDLEdBQXZDLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQXVDLE9BQXBDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUF1QixVQUFVLEdBQUcsRUFBRSxHQUFHLEVBQXVGLE9BQXBGLEVBQUUsRUFBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxPQUFlLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBVSxNQUFPLFFBQU8sS0FDMVAsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssT0FBTyxLQUFnQixHQUFYLEVBQUUsRUFBRSxPQUFVLEVBQUUsR0FBRyxFQUFFLE9BQU8sS0FBSyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBZSxHQUFkLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBTyxHQUFHLEdBQUcsT0FBTyxLQUFxQixHQUFoQixFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBTyxHQUFHLEdBQUcsT0FBTyxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsT0FBTyxFQUM5UCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQXVCLEdBQXJCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFNLEVBQW1DLEdBQWhDLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxJQUFJLENBQUMsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBcUMsUUFBOUIsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBUyxFQUFFLE9BQVEsT0FBTyxHQUFFLEVBQUUsRUFBRSxHQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVcsT0FBTyxHQUFFLEVBQUUsRUFBRSxHQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLE9BQU8sRUFDL1AsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQWlHLEdBQWhHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBTSxHQUFHLEdBQUcsR0FBRyxFQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDL1AsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWtELEdBQWhELEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxNQUFRLEtBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUksT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUMvUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBYSxHQUFYLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxHQUFHLEVBQUcsT0FBTyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQWlDLEdBQXhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBZSxPQUFYLElBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxHQUMvUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBYSxHQUFYLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxHQUFHLEVBQUcsT0FBTyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQWlDLEdBQXhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBZSxPQUFYLElBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxHQUMvUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUM5UCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUksRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQVEsR0FBUCxFQUFFLEVBQUUsR0FBTSxHQUFJLENBQUMsRUFBRSxRQUFRLEVBQUcsU0FBb0IsR0FBWCxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUssR0FBRyxLQUFNLE9BQU8sU0FBVSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFDaFEsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQXlDLEdBQXBDLEdBQUcsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQU0sR0FBSSxnQkFBZ0IsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRyxNQUFPLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUNoUSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBc0MsR0FBN0IsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEdBQU0sRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUM5UCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUcsR0FBRyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSyxHQUFJLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU8sSUFBSSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFRLEtBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUMvUCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQW1GLEdBQWhGLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQU0sR0FBRyxFQUFHLEVBQUUsTUFBTyxPQUFPLE9BQU8sRUFDalEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQ2pRLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUNqUSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLDJCQUEyQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxJQUFJLENBQUMsRUFBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFDblEsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBZ0IsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFNLFFBQW9CLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQU0sUUFBUSxFQUFFLEdBQUcsT0FBTyxFQUNuUSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQTBDLEdBQXJDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRyxjQUFjLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQWlCLEdBQWQsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxFQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDblEsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQ25RLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFDblEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQWtCLEdBQWpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsU0FBUyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sS0FDalEsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sR0FBRyxFQUNwUSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQ3BRLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBeUMsR0FBdkMsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFHLE1BQU8sR0FBaUQsR0FBM0MsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUcsTUFBTyxHQUFpRCxHQUEzQyxFQUFFLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRyxNQUFPLEdBQU0sTUFBTyxHQUNqUSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBMEIsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQTBCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDblEsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQStCLEdBQXpCLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBUyxPQUFOLEVBQUUsRUFBRSxFQUFTLEVBQWdELEdBQTdDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFLLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQW9CLEdBQW5CLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUssRUFBRSxHQUFHLEVBQUcsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUNyUSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFlLEdBQWIsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxNQUFPLE9BQVcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQTZCLFFBQWxCLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBUyxHQUFRLE9BQU8sR0FBSSxFQUFFLENBQUMsRUFDclEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFDdFEsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQW1CLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUksT0FBTyxFQUN0USxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxZQUFZLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3ZRLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTyxHQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU8sR0FBRSxPQUFPLElBQUksR0FBSSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3ZRLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFDdlEsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUN2USxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sU0FBUyxDQUE0QixHQUEzQixFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsRUFBRSxHQUFJLE9BQVUsR0FBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBYyxHQUFYLEVBQUUsRUFBRSxPQUFVLEdBQUcsR0FBdUMsR0FBcEMsR0FBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBTSxHQUFHLEdBQUksT0FBTyxZQUFZLEdBQUcsR0FBSSxPQUFPLFlBQWEsR0FBRyxFQUFHLE9BQU8sSUFBSyxPQUFPLEdBQUksQ0FBQyxHQUN0USxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBNEMsR0FBMUMsRUFBRSxHQUFHLDJCQUEyQixDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUssR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUksRUFBRSxJQUFJLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUN4USxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQUssRUFBRSxHQUFNLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQVEsR0FBUCxFQUFFLEVBQUUsR0FBTSxHQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUcsU0FBcUMsR0FBNUIsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFLLEVBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDeFEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQXdCLEdBQXRCLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBZ0IsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFRLEdBQUksQ0FBQyxNQUFNLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFHLEVBQUcsU0FBUyxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDeFEsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXFKLEdBQTVJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxHQUFFLE1BQU8sR0FDeFEsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBNEYsR0FBMUYsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFLLEtBQUssTUFBTSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsR0FBSSxPQUFPLEVBQUssS0FBSyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBMEYsUUFBbkYsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFLLEtBQUssTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxhQUFhLEdBQUcsWUFBbUIsRUFDeFEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxNQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsT0FBTyxFQUN6USxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQW1HLEdBQS9GLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUssRUFBRSxDQUFVLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUN2USxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFpSixHQUEvSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLGlDQUFpQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQzFRLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBOEIsR0FBNUIsRUFBRSxJQUFLLEdBQUksRUFBRSxJQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxFQUFFLENBQU8sR0FBTixHQUFJLEdBQU0sRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQXFCLEdBQWxCLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEdBQU0sRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxDQUFDLEVBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsQ0FBQyxFQUN6USxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsT0FBTyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUE2QixHQUF6QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLE9BQU8sRUFBRyxPQUFPLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEtBQ3RRLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsb0NBQW9DLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUMzUSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsZUFBZSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBa0QsR0FBL0MsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFJLEVBQUUsR0FBRyxFQUMzUSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBRyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFDM1EsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUN4USxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUErQixHQUE5QixFQUFFLElBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFLLEVBQUcsR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLElBQUksT0FBTyxFQUFFLEVBQzNRLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQU0sT0FBTyxTQUFTLENBQTRCLEdBQTNCLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxFQUFFLEdBQUksT0FBVSxHQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFjLEdBQVgsRUFBRSxFQUFFLE9BQVUsR0FBRyxHQUF1QyxHQUFwQyxHQUFHLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFNLEdBQUcsR0FBSSxPQUFPLFlBQVksR0FBRyxHQUFJLE9BQU8sWUFBYSxHQUFHLEVBQUcsT0FBTyxJQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FDMVEsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQVEsR0FBTixFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsSUFBSSxFQUFHLE1BQU8sR0FBUyxHQUFOLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUcsTUFBTyxHQUFTLEdBQU4sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLElBQUksRUFBRyxNQUFPLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRyxNQUFPLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRyxPQUFPLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUcsT0FBTyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUcsT0FBTyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU8sR0FDM1EsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLElBQUksRUFBRSxFQUM3USxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQXNELEdBQXBELEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQU8sRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU8sR0FBRSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFDN1EsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBb0IsT0FBaEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLElBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUM3USxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFDNVEsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFrQyxPQUF6QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFrQyxPQUF6QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQVMsRUFBRyxPQUFPLEtBQzFRLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxPQUFPLEVBQzdRLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXVCLEdBQXJCLEVBQUUsR0FBSSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUssR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsRUFBRyxDQUFDLEVBQUUsR0FBRyxLQUFNLEVBQUUsT0FBUSxHQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLFVBQVUsR0FBRyxFQUFHLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzdRLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLE9BQVEsRUFBRSxHQUFHLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBb0gsT0FBbEgsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQWUsR0FBRyxJQUFJLEdBQUksRUFBRSxNQUFPLEdBQUcsR0FBRyxFQUFFLEdBQzdRLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssR0FBRyxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUM5USxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxNQUFPLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDOVEsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsTUFBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQy9RLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLE1BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUM5USxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWlCLEdBQWYsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLFFBQVEsRUFBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFVLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFZLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsRUFBRSxDQUFhLEdBQVosRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFLLEVBQUUsR0FBRyxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLFNBQVUsT0FBTSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxPQUFPLEtBQzNRLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxHQUE0TyxPQUF4TyxHQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBUyxFQUMvUSxTQUFTLEdBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBTSxPQUFPLEdBQUksR0FBRyxDQUFDLE9BQU8sR0FBSSxDQUFDLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBMkgsT0FBeEgsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUksRUFBRSxzQ0FBc0MsR0FBRyxDQUFDLEVBQVMsSUFBSSxFQUFFLFVBQVUsR0FBSSxFQUFFLEVBQUUsRUFBRSxRQUFTLE9BQU0sR0FBSSxDQUFDLEdBQy9RLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksQ0FBQyxHQUFHLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsTUFBTSxHQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLE1BQU0sR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxNQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBSSxHQUM5USxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUksRUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsR0FDOVEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBc0UsR0FBcEUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFHLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFHLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUMvUSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFtQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSSxPQUFPLEVBQ2hSLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLHVDQUF1QyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksdUNBQXVDLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSx5Q0FBeUMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLHlDQUF5QyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksZ0JBQWdCLENBQUMsRUFDaFIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFHLE9BQU8sU0FBVSxPQUFNLEdBQUksSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDL1EsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFLLEVBQUUsSUFBSSxLQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQy9RLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLDBCQUEwQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLElBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUksRUFBRSxHQUFHLEVBQ2pSLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLE1BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUNqUixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUssSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUssRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFDalIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFVLEdBQVIsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQWEsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxXQUFhLEdBQUUsRUFBeUMsT0FBdkMsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQVUsRUFDbFIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksdUNBQXVDLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFRLEdBQUUsT0FBTyxPQUFTLEdBQWdELE9BQTlDLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFTLEdBQUcsRUFBRSxHQUFJLE9BQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxPQUFPLFdBQVksT0FBTyxNQUM3USxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFPLEdBQU4sR0FBSSxFQUFLLEdBQUksRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQU0sT0FBTyxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNsUixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFpQixHQUFkLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxRQUFRLEdBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxLQUFLLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsSUFBSSxHQUFJLEdBQUksQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUcsTUFBTyxHQUFPLE1BQU8sR0FDOVEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQ2xSLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLDJCQUEyQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBUSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsR0FBSSxDQUFDLEdBQUksRUFBRSxHQUFHLEVBQ25SLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQWtDLEdBQXpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLE9BQU8sRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBUSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FDN1EsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxnREFBZ0QsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ25SLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDblIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBZ0YsR0FBOUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFJLENBQUMsR0FBTSxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU8sV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU8sT0FBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQWdCLEdBQWYsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLEVBQUcsT0FBTyxFQUFpQixHQUFmLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFHLE9BQU8sRUFBdUIsT0FBcEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxHQUFJLEVBQUUsQ0FBQyxHQUNsUixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWlDLEtBQTdCLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLE9BQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFJLE1BQU8sT0FBVSxPQUFPLEdBQzlRLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBZSxHQUFiLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLE9BQVMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUNuUixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLElBQUksSUFBSSxFQUFFLElBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsTUFBTyxHQUFPLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBTSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBTyxNQUFPLEdBQ2pSLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsT0FBTyxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxNQUFPLEdBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUNwUixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQ3BSLFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFHLE9BQU8sR0FBRyxFQUFFLElBQUcsR0FBRyxFQUFFLHFCQUFzQixPQUFPLEdBQUcsRUFBRSxJQUFHLEdBQUcsR0FBRyxvQkFBcUIsT0FBTyxHQUFHLEVBQUUsSUFBVyxHQUFSLEVBQUUsR0FBUyxFQUFFLEVBQUcsRUFBRSxHQUFLLEdBQUcsRUFBTSxHQUFKLEVBQUUsRUFBSyxHQUFHLEdBQUssRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFRLEdBQUosRUFBRSxFQUFLLEdBQUcsR0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQWlDLE9BQTdCLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBUyxFQUNyUixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQStDLEdBQTdDLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFNLEdBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFNLEdBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUNuUixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWtCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLElBQU0sTUFBTSxHQUFJLElBQUksR0FBSSwyRkFBMkYsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUNwUixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUN0UixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUN0UixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBbUYsR0FBakYsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUcsT0FBTyxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRyxPQUFPLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFHLE9BQU8sSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQ3RSLFNBQVMsR0FBRyxFQUFFLENBQU8sT0FBTixHQUFJLEVBQVMsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUcsQ0FBQyxFQUN0UixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsSUFBSyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSyxFQUFFLEdBQUcsR0FBSSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxJQUFLLEVBQUUsR0FBRyxLQUFNLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUN0UixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTZFLEdBQTNFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUcsRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLGVBQWUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQWtCLEdBQWhCLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRyxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDdFIsU0FBUyxHQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxJQUFPLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRyxFQUFHLElBQUksSUFBSSxHQUFJLEtBQUssSUFBRyxJQUFJLElBQUssR0FBRyxFQUFFLElBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUN2UixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUE4QixHQUF6QixJQUFJLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsTUFBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBTSxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQ3JSLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQXdFLEdBQXRFLElBQUksS0FBSyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQVUsS0FBSyxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSw0REFBNEQsQ0FBQyxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQ3JSLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsTUFBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3ZSLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsTUFBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3ZSLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBb0ssT0FBbEssR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFTLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ3hSLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGVBQWUsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLHNCQUFzQixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksaUJBQWlCLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFlBQVksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGlCQUFpQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksaUJBQWlCLENBQUMsRUFDeFIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxPQUFRLE1BQU0sR0FBSSxJQUFJLEdBQUksWUFBWSxFQUFFLE9BQU8sdUNBQXVDLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUN4UixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQ3hSLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFpQyxJQUE5QixFQUFFLEdBQUcsTUFBTSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsUUFBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQ3pSLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBSyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQUUsR0FBRyxJQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUssRUFBRSxRQUFRLFVBQVUsTUFBTSxRQUFRLFNBQVMsS0FBSyxPQUFPLEVBQ3pSLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsSUFBSSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBYSxPQUFYLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxFQUN6UixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBUSxHQUFQLEVBQUUsRUFBRSxHQUFNLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFJLEVBQUcsR0FBRyxHQUFHLElBQUssR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFJLElBQ3ZSLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBZ0IsT0FBZCxFQUFFLEtBQUssRUFBRSxLQUFZLElBQUksQ0FBQyxFQUFFLE9BQVEsR0FBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUUsR0FBSSxVQUFXLEdBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEdBQUksVUFBVyxHQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxHQUFJLFVBQVcsR0FBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUUsR0FBSyxJQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFDMVIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXNCLEdBQXBCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUMxUixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFNLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDMVIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQW9CLEdBQWhCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUN4UixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsT0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBUyxFQUFFLEVBQUUsT0FBUSxPQUFPLEdBQUUsRUFBRSxFQUFFLEdBQUcsVUFBVyxPQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsSUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQU0sRUFBRSxFQUFFLElBQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBRyxFQUM1UixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBUyxHQUFSLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUcsT0FBTyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBSyxPQUFPLGFBQWMsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sT0FBTyxFQUM1UixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFrRyxHQUE3RixHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUM1UixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEtBQUssSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUM1UixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxJQUFLLEdBQUksR0FBRSxFQUFFLElBQUcsRUFBRSxtQ0FBbUMsR0FBSSxHQUFFLEVBQUUsSUFBRyxHQUFHLGNBQWMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxnREFBZ0QsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQW9DLE9BQWxDLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUM3UixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxHQUFLLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxDQUFDLElBQUksRUFBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQzdSLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBTSxHQUFKLEVBQUUsRUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU8sT0FBUSxHQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBSSxFQUFFLFNBQWEsR0FBRyxPQUFPLEVBQzdSLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUE4UCxPQUE1UCxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQzdSLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEdBQUcsRUFBRyxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsTUFBTyxLQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDN1IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFtQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsNklBQWdKLENBQUMsRUFDN1IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsd0JBQXdCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFDL1IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQTZCLE9BQTNCLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQVMsRUFDL1IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBUSxHQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVyxHQUFFLElBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFDL1IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQXFQLE9BQWhQLEVBQUUsTUFBTSxJQUFJLEVBQUUsR0FBRyxNQUFRLEVBQUUsTUFBTSxJQUFJLEVBQUUsR0FBRyxNQUFRLEVBQUUsTUFBTSxJQUFJLEVBQUUsR0FBRyxNQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBRyxNQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBRyxNQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBRyxNQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsR0FBRyxNQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsR0FBRyxNQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsR0FBRyxNQUFRLEVBQUUsS0FBTSxJQUFJLEVBQUUsR0FBRyxLQUFjLElBQUksRUFBRSxDQUFDLEVBQy9SLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ2hTLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLE9BQU8sWUFBWSxJQUFJLEdBQUksRUFBRSxPQUFPLEdBQUcsS0FBSyxHQUFHLElBQUssR0FBRyxNQUFNLEdBQUcsSUFBSyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFzQixHQUFyQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBTSxFQUFHLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFvRixPQUFsRixJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFTLEdBQy9SLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFpQixHQUFmLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQU0sRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLHVEQUF1RCxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBSSxFQUFFLE9BQU8sYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FDaFMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQU0sRUFBSyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNqUyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQVEsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDalMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQXlDLEdBQXRDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUssRUFBRSxDQUE2QixHQUE1QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsR0FDL1IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQXlDLEdBQXRDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUssRUFBRSxDQUE2QixHQUE1QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsR0FDL1IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWlHLEdBQS9GLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUssR0FBRyxFQUFHLE9BQU8sSUFBSSxHQUFHLEVBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQXlDLEdBQXJDLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUM1UixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLG1EQUFtRCxDQUFDLEVBQUUsRUFBRSxHQUFNLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLE1BQU0sR0FBSSxFQUFFLEdBQUssRUFBRSxFQUFFLEdBQUcsRUFDalMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFRLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEdBQWUsT0FBWixFQUFFLEVBQUUsSUFBSSxHQUFXLEVBQ2pTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQXNDLEdBQWxDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFLLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBZ0IsR0FBYixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBSyxFQUFFLEVBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUMvUixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRyxHQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxRQUFRLEdBQWdLLE9BQTdKLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUNsUyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQWdDLEdBQTlCLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRyxPQUFPLElBQUksR0FBSSxJQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRyxPQUFPLElBQUksR0FBSSxJQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUcsR0FBRyxFQUFLLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBSyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUcsT0FBTyxJQUFJLEdBQUksSUFBSyxDQUFDLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksR0FBSSxJQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUNwUyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQTRELEdBQTFELEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBSyxJQUFJLEdBQUksRUFBRSxJQUFNLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxVQUFVLEdBQUcsR0FBSyxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksVUFBVSxJQUFJLEdBQUksRUFBRSxJQUFNLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLFVBQVUsR0FBRyxHQUFLLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQ25TLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUssR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFHLEVBQ3BTLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsRUFDclMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxHQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUksQ0FBQyxHQUFtRCxHQUFoRCxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBNkIsR0FBNUIsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBTSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUNsUyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQXFILE9BQWpILEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBRyxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQVMsR0FBTSxNQUFPLEdBQ2pTLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBbUIsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLG1KQUFzSixDQUFDLEVBQ25TLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFrQixHQUFoQixFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBSyxHQUFHLEVBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsRUFBbUMsR0FBaEMsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU8sQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUcsR0FBRyxFQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFDclMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUcsRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUksRUFBRSxHQUFHLEVBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFDdFMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEdBQUosRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLE1BQU8sR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBTSxHQUFKLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsRUFDclMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxHQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBSyxTQUFXLEdBQ3JTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLENBQUMsR0FDclMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsSUFBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQW1CLEdBQWxCLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBSyxHQUFHLEVBQUUsRUFBRSxJQUFLLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQU0sS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUN0UyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFhLEdBQVgsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRyxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQ3RTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBc0IsR0FBcEIsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFLLEdBQVMsR0FBTixFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLFVBQVUsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxVQUFVLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBTyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRyxNQUFPLEdBQ3BTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBZSxHQUFiLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLE9BQVMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFJLE9BQU8sRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUN2UyxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLGFBQWEsT0FBUSxHQUFHLENBQXNCLEdBQXJCLEVBQUUsaUJBQWlCLEVBQUssVUFBVSxVQUFVLFlBQVksRUFBRSxRQUFRLE1BQU0sR0FBRyxJQUFJLEtBQUssYUFBYSxFQUFHLE9BQU8sSUFBSSxFQUFFLEVBQUUsT0FBTyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBTixHQUM5UixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBZSxHQUFiLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBTSxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxNQUFNLEdBQUksRUFBRSxJQUF1RCxHQUFsRCxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsSUFBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLElBQThCLE9BQTFCLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBUyxFQUN4UyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFxSSxPQUFuSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFTLEVBQUcsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUN4UyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQXlDLE9BQXZDLEVBQUUsR0FBRyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsRUFBUyxFQUFFLE9BQVEsR0FBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxVQUFXLEdBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsVUFBVyxHQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxVQUFXLEdBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsVUFBVyxHQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUN4UyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sV0FBYSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLElBQUssR0FBRyxLQUFLLEdBQUcsSUFBSyxNQUFPLFdBQVUsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUcsTUFBTyxXQUFXLEVBQUUsSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLENBQUMsR0FBTSxFQUFHLE1BQU8sT0FBbUIsUUFBVCxFQUFFLEVBQUUsR0FBRyxHQUFVLEVBQUUsR0FBRyxHQUFHLEtBQUssR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEdBQUcsTUFBVSxPQUFPLEdBQ25TLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBb0gsR0FBbEgsRUFBRSxHQUFJLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFLLEdBQUksQ0FBQyxHQUFHLEdBQUksQ0FBQyxFQUFHLE9BQU8sS0FBSyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUcsT0FBTyxLQUFjLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUcsT0FBTyxVQUFPLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQVMsR0FBTixFQUFFLEVBQUUsRUFBSyxFQUFHLE9BQU8sRUFBSSxPQUFPLEtBQ3RTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLGtDQUFrQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQ3pTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBNkMsR0FBM0MsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLElBQU0sT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQXlDLEdBQXBDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQU8sRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxNQUFPLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQ3RTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUN6UyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBTSxPQUFPLEVBQUUsT0FBUSxHQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsSUFBSyxVQUFXLEdBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksQ0FBQyxDQUFDLEVBQUksT0FBTyxFQUFFLEVBQ3pTLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFNLE9BQU8sRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFLLFVBQVcsR0FBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBSSxPQUFPLEVBQUUsRUFDelMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEwQixHQUF4QixHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQU0sQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLE1BQU8sQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUksR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUN6UyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQ3RTLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBOEcsR0FBNUcsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBb0IsR0FBbkIsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzFTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQWUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQ2hTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXNDLEdBQXBDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBdU0sT0FBck0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBUyxFQUMzUyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXdDLEdBQXRDLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQU8sRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFnSCxPQUE5RyxFQUFFLEdBQUcsRUFBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFTLEVBQzNTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFvQyxHQUFsQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsRUFBb0UsT0FBakUsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRyxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQTRFLE9BQTFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBUyxFQUM1UyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFHLE9BQU8sTUFBTSxDQUFtQixHQUFsQixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLEVBQTJCLE9BQXhCLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQVksRUFBcUMsR0FBbkMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFXLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFLLE9BQU8sRUFDNVMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQXVGLEdBQXJGLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQXdGLEdBQXJGLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUssR0FBRyxHQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFDM1MsU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQzVTLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBRSxFQUFFLEVBQUUsRUFBTSxHQUFKLEVBQUUsRUFBSyxFQUFFLEdBQUcsS0FBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBUyxDQUFjLEdBQWIsRUFBRSxFQUFFLEVBQUUsT0FBVSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsSUFBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxHQUMzUyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssSUFBSSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FDM1MsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBbUIsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFNLEdBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLE9BQU8sRUFDN1MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUE0RixHQUExRixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBMEIsR0FBckIsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUM3UyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUF1QixHQUF0QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsR0FBOEIsR0FBekIsRUFBRSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUssR0FBRyxLQUFNLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FDN1MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBb0MsS0FBaEMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUcsTUFBTyxHQUE2QixHQUF4QixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUcsTUFBTyxHQUFLLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQW9CLEdBQWhCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE1BQU8sR0FBTyxNQUFPLEdBQzVTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQXlFLEdBQXRFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBSyxFQUFLLEdBQUcsS0FBSyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRyxXQUFZLE9BQU8sRUFBRSxPQUFPLEtBQzdTLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsMEJBQTBCLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5RSxHQUFoRSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFPLEtBQUssRUFBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxHQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ2pULFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksRUFDalQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBc0QsR0FBckQsRUFBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxHQUNoVCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixPQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFTLEVBQUUsRUFBRSxPQUFRLEdBQUUsRUFBRSxNQUFPLEdBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBTSxDQUFDLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSyxDQUFDLEdBQ2pULFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQWdFLEdBQTVELEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFHLE9BQU8sR0FBSSxFQUFFLENBQUMsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQ2xULFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNsVCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsTUFBTSxFQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUcsT0FBTyxFQUNuVCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUE4RSxHQUE3RSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBa0IsR0FBWixFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBTSxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsV0FBWSxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRyxPQUFPLE1BQU0sQ0FBWSxHQUFYLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEdBQ2xULFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBcUIsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQ3BULFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGlCQUFpQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksYUFBYSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksYUFBYSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksaUJBQWlCLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxvQkFBb0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGdCQUFnQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksYUFBYSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksYUFBYSxDQUFDLEVBQ3BULFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQW9NLEdBQW5NLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLE1BQU0sTUFBTSxNQUFNLEdBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFNLEVBQUUsRUFBRyxNQUFPLEdBQVksT0FBTixFQUFFLEVBQUUsRUFBUyxXQUFhLEVBQUUsRUFBVyxPQUFSLEVBQUUsRUFBRSxFQUFFLEVBQVMsR0FBSyxNQUFPLEdBQ2pULFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQW9NLEdBQW5NLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLE1BQU0sTUFBTSxNQUFNLEdBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFNLEVBQUUsRUFBRyxNQUFPLEdBQVksT0FBTixFQUFFLEVBQUUsRUFBUyxXQUFhLEVBQUUsRUFBVyxPQUFSLEVBQUUsRUFBRSxFQUFFLEVBQVMsR0FBSyxNQUFPLEdBQ2pULFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFPLEdBQUwsRUFBRSxHQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBUSxNQUFPLEdBQW9CLEdBQWQsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxJQUFJLEdBQUcsR0FBSSxNQUFPLEdBQXVCLEtBQWYsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUcsTUFBTyxHQUFNLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLElBQUksR0FBUyxPQUFOLEVBQUUsRUFBRSxFQUFTLEdBQ2xULFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUssR0FBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFNLEVBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNyVCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFpQixPQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFTLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsQ0FBQyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQWdCLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBTyxFQUFFLEtBQUssRUFBRSxFQUFHLFNBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxJQUNuVCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLElBQUksSUFBSSxHQUFJLG9CQUFvQixFQUFFLEdBQUksRUFBRyxFQUFFLElBQUksSUFBSSxHQUFJLG9CQUFvQixFQUFFLEdBQUksRUFBRyxFQUFFLElBQUksSUFBSSxHQUFJLG9CQUFvQixFQUFFLEdBQUksRUFBRyxFQUFFLElBQUksSUFBSSxHQUFJLG9CQUFvQixFQUFFLEdBQUksRUFBRyxFQUNyVCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQW1CLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBTSxHQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxNQUFPLE9BQU8sRUFDclQsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssTUFBTSxPQUFPLFFBQVEsU0FBUyxVQUFVLFdBQVcsWUFBWSxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxFQUNyVCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUssR0FBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBSSxPQUFPLElBQUssR0FBSSxHQUFHLEdBQUksR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksRUFDclQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFHLE9BQU8sSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFDdFQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLE1BQU8sRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQU0sRUFBRSxDQUFDLEVBQUUsR0FBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBeUMsR0FBcEMsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLFNBQWEsR0FBRyxPQUFPLEVBQ3RULFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUcsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3RULFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTBGLEdBQXhGLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU8sV0FBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU8sV0FBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLE1BQU8sV0FBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU8sR0FBSyxNQUFPLEdBQ2xULFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBcUMsS0FBaEMsSUFBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLE9BQU8sRUFDdlQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFHLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQXNCLEdBQW5CLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxTQUFVLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFJLEdBQUcsTUFDcFQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUE0RCxHQUEzRCxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUssR0FBcUMsR0FBbEMsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUssR0FBSSxDQUFDLEdBQUcsR0FBSSxDQUFDLEVBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUN2VCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUEyQixHQUF2QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBSSxLQUFNLE9BQU8sTUFBUyxLQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBcUIsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUcsT0FBTyxFQUFJLE9BQU8sS0FDclQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEtBQUssT0FBTyxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLFVBQVcsR0FBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLFVBQVcsR0FBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLFVBQVcsR0FBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUF3QyxPQUFuQyxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBVSxFQUN6VCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQ3pULFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUF5QyxPQUF2QyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDMVQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLHlCQUF5QixDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLElBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQzFULFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFNLEVBQUUsSUFBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFDeFQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsS0FBTSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQXNELE9BQXJELEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQzFULFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLEtBQU0sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFzRCxPQUFyRCxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQUUsRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUMxVCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXlNLEdBQXZNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUssRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQzNULFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBUSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDNVQsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLGdCQUFnQixFQUFFLHVKQUF1SixFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFHLEVBQzdULFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxHQUFHLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUssR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUssR0FBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsSUFBSyxHQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksR0FBRyxHQUFHLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FDM1QsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLHVCQUF1QixDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFLLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQzlULFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBOEcsR0FBNUcsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBb0IsR0FBbkIsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUMvVCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQzlULFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQStCLEdBQTlCLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBYSxJQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFLLEVBQUcsR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLElBQUksT0FBTyxFQUFFLEVBQy9ULFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQVEsT0FBTixFQUFFLEVBQUUsRUFBUyxPQUFRLEtBQUksRUFBRSxHQUFHLFVBQVcsS0FBSSxFQUFFLEdBQUcsVUFBVyxLQUFJLEVBQUUsRUFBRSxVQUFXLFFBQVEsU0FBUyxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxTQUFTLFNBQVMsUUFBUSxRQUFRLFFBQVEsSUFBRyxjQUFjLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRyxPQUFPLEVBQy9ULFNBQVMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sdUJBQXVCLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxNQUFPLElBQUksSUFBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFzQyxHQUFyQyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFHLEVBQUUsSUFBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sS0FBSyxFQUFFLEVBQUUsSUFBSyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQ2hVLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQTBELEdBQW5ELEVBQUUsSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEdBQU0sRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFDaFUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sU0FBUyxPQUFPLG9CQUFxQixNQUFPLEdBQU0sSUFBSSxFQUFFLFlBQWdCLEVBQUUsT0FBTyxPQUFPLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxPQUFXLE1BQU8sR0FBTSxJQUFJLEVBQUUsT0FBTyxvQkFBb0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUcsTUFBTyxHQUFjLEdBQVIsRUFBRSxHQUFHLEdBQU0sRUFBRSxLQUFLLEdBQUksTUFBTyxHQUFNLEdBQUcsT0FBTyxvQkFBb0IsQ0FBQyxFQUFFLFFBQVEsRUFBRyxNQUFPLEdBQU0sTUFBTyxHQUM5VCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQW9DLEdBQWxDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFPLEdBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLElBQUksR0FBSSxFQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNsVSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQWdCLEdBQWQsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsT0FBTyxFQUFrRCxHQUFoRCxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsSUFBTyxLQUFLLEdBQWEsR0FBVixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFHLE9BQU8sRUFBRyxPQUFPLEVBQUUsRUFBRSxPQUFRLEdBQUUsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsR0FDaFUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFHLE1BQU8sR0FBRyxHQUFHLEdBQUcsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFHLE1BQU8sR0FBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQXVELEdBQXRELEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxHQUFJLE1BQU8sR0FBd0IsR0FBckIsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU8sR0FBSSxPQUFPLEVBQUUsRUFDbFUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBSyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTyxHQUEwQixHQUFwQixFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBZSxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQXNCLEdBQW5CLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsS0FBSyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQWEsS0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQXNCLEdBQW5CLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBUSxNQUFPLEdBQy9ULFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBVSxHQUFQLEVBQUUsR0FBRyxFQUFLLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQVksR0FBVCxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sUUFBYyxLQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQVksR0FBVCxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRyxNQUFPLElBQVUsTUFBTyxHQUM5VCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssR0FBd0UsR0FBckUsRUFBRSxHQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLGFBQWEsQ0FBQyxFQUFLLEdBQUcsS0FBdUIsT0FBakIsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBUyxHQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxNQUFNLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUcsT0FBTyxLQUMvVCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsK0NBQStDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUNyVSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLElBQUksT0FBTyxFQUFFLElBQUksSUFBSSxPQUFRLFFBQVEsUUFBUSxRQUFRLFNBQVMsU0FBUyxLQUFLLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxPQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxJQUFJLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxXQUFZLE1BQU0sR0FBSSxJQUFJLEdBQUkscUJBQXFCLENBQUMsR0FDblUsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxJQUFJLEdBQUksU0FBUyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksZUFBZSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksWUFBWSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksU0FBUyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUkseUJBQXlCLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxzQkFBc0IsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksaUNBQWlDLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSwyQkFBMkIsQ0FBQyxFQUN2VSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBTSxRQUFRLEtBQUssRUFBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQXFFLEdBQXBFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUssRUFBRSxJQUFJLEVBQUUsRUFBSyxFQUFLLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFVLE9BQU8sT0FBTyxFQUN2VSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFlBQVksTUFBTSxHQUFJLElBQUksR0FBSSxtREFBbUQsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FDclUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQU0sSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxJQUFJLEVBQUUsSUFBTyxFQUFFLElBQXdJLE9BQWpJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxHQUFHLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssRUFBRSxFQUFFLEdBQVUsRUFDdlUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLEdBQUcsR0FBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFLLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsSUFBTSxHQUFHLEtBQU0sRUFBRyxHQUFHLEdBQUssR0FBRyxJQUFLLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssTUFBTSxHQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUN2VSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFTLE9BQVAsRUFBRSxLQUFZLEVBQUUsT0FBUSxHQUFFLEdBQUcsR0FBSSxFQUFFLEtBQUssVUFBVyxHQUFFLEdBQUcsR0FBSSxFQUFFLEtBQWEsT0FBUCxFQUFFLEtBQVksRUFBRSxPQUFRLEdBQUUsR0FBRyxHQUFJLEVBQUUsS0FBSyxVQUFXLEdBQUUsR0FBRyxHQUFJLEVBQUUsS0FBSyxVQUFXLEdBQUUsR0FBRyxHQUFJLEVBQUUsS0FBSyxVQUFXLEdBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxRQUFTLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUcsSUFBSSxHQUFJLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQ3JVLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUF5RCxPQUF2RCxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBUyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFHLEtBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3ZVLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQW1CLEdBQWxCLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFLLEdBQUcsRUFBRSxPQUFRLE1BQU0sR0FBSSxJQUFJLEdBQUksZ0RBQWdELENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLElBQUssS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUN4VSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEyRyxHQUF6RyxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEdBQU0sRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFDeFUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQWlDLE9BQS9CLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBUyxFQUFFLE9BQVEsR0FBRSxFQUFFLElBQUksQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsY0FBYyxNQUFNLEdBQUksSUFBSSxHQUFJLGdDQUFnQyxFQUFFLFNBQVMsQ0FBQyxFQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUN6VSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTJELEdBQXpELEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUssSUFBSSxHQUFJLEVBQUUsSUFBTSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFxRSxPQUFwRSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLE9BQVEsR0FBRSxHQUFHLEdBQUcsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQ3pVLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQXdFLEtBQWxFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQTZCLE9BQTFCLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUFzQyxHQUFwQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUE2QixPQUExQixHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQTZCLE9BQTFCLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUF1QyxPQUFyQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxFQUN6VSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxTQUFTLElBQUksRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQWdCLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFLLFNBQVMsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBSSxPQUFPLEVBQzNVLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksS0FBSyxHQUFJLEVBQUUsR0FBTSxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUksRUFBRSxJQUFJLElBQ3pVLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFpQyxHQUF4QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxHQUFTLEdBQU4sRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFTLEdBQVIsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQVEsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxNQUFPLEdBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUssT0FBTyxFQUM1VSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBOEIsR0FBNUIsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsT0FBTyxhQUFhLEVBQUUsR0FBRyxHQUFHLEVBQUcsT0FBTyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFTLE9BQVAsRUFBRSxLQUFZLEVBQUUsT0FBUSxHQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUM3VSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFNLE9BQTJELEdBQXBELEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFTLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxHQUFHLFFBQVksQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFRLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxDQUFDLEdBQzVVLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLGtCQUFrQixFQUFFLEdBQUksSUFBSSxHQUFJLGVBQWUsRUFBRSxHQUFJLElBQUksR0FBSSxjQUFjLEVBQUUsR0FBSSxJQUFJLEdBQUksV0FBVyxFQUFFLEdBQUksSUFBSSxHQUFJLFVBQVUsRUFBRSxHQUFJLElBQUksR0FBSSxNQUFNLEVBQUUsR0FBSSxJQUFJLEdBQUksYUFBYSxFQUFFLElBQUksSUFBSSxHQUFJLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksaUJBQWlCLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxpQkFBaUIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGlCQUFpQixDQUFDLEVBQzlVLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBUSxPQUFOLEVBQUUsRUFBRSxFQUFTLE9BQVEsR0FBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssS0FBTSxHQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxLQUFNLEdBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEtBQU0sR0FBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssS0FBTSxHQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQzVVLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFLLEdBQU0sSUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLE9BQU8sRUFDL1UsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQW9CLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFJLE9BQU8sRUFDL1UsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBb0osR0FBbkosRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQVEsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLEdBQUcsVUFBVSxFQUFFLEVBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUMvVSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBcUQsT0FBcEQsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBWSxFQUFFLE9BQVEsT0FBTyxHQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssVUFBVyxPQUFPLEdBQUUsR0FBRyxHQUFJLEVBQUUsSUFBTSxHQUFHLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxJQUFLLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLE1BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFDalYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsSUFBSSxJQUFLLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FDaFYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFrSyxHQUFoSyxFQUFFLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBVSxHQUFQLElBQUksQ0FBQyxFQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUNqVixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWtLLEdBQWhLLEVBQUUsRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFVLEdBQVAsSUFBSSxDQUFDLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQ2pWLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxF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WSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLE1BQU0sR0FBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRyxFQUFFLEdBQUcsR0FBSSxPQUFPLEtBQ2hWLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQ3BWLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBSyxJQUFLLEVBQUUsR0FBRyxFQUNyVixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxLQUFLLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBd0csT0FBdEcsSUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDclYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQVEsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQVMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQVMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQVEsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxNQUFPLEdBQ3JWLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsR0FBRyxHQUFLLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUN0VixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQU8sR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUE4QyxHQUExQyxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEdBQU0sR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFHLEVBQUUsTUFBUSxHQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQ3RWLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUksSUFBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUksSUFBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUksSUFBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFDdlYsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssSUFBSyxHQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssRUFBRSxHQUFHLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLENBQXFCLEdBQXBCLEVBQUUsRUFBRSxRQUFRLEtBQUssQ0FBQyxFQUFLLEdBQUcsR0FBSSxNQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxLQUFLLElBQUssR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQXNCLEdBQXBCLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUssRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBUSxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksT0FBTyxFQUFFLEVBQ3hWLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQXdDLEdBQXBDLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssSUFBSSxDQUFDLEdBQTJCLEdBQXhCLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLENBQUMsTUFBUSxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBSSxFQUFFLENBQUMsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQ3hWLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFzRCxHQUFwRCxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxHQUFHLEtBQU0sSUFBSSxHQUFHLEdBQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUE0QyxHQUEzQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBTSxJQUFJLEdBQUcsSUFBTyxFQUFHLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsTUFBTSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBTSxJQUFJLEdBQUcsSUFBSyxHQUFHLFdBQVksR0FBRyxFQUFFLEdBQUcsRUFBRyxHQUFHLFFBQVMsR0FBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRyxLQUE4QixPQUF2QixFQUFFLEdBQUcsTUFBTSxJQUFJLEdBQUcsS0FBWSxFQUN4VixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBK0IsT0FBMUIsRUFBRSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUssQ0FBQyxDQUFDLEVBQVMsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxHQUFJLEVBQUUsTUFBTSxJQUFJLEdBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUksTUFBTyxHQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQXFCLE9BQWxCLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxHQUNwVixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFJLEdBQUksQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLElBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFJLEVBQUUsRUFBRSxPQUFPLEVBQ3pWLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBZ00sT0FBOUwsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSyxHQUFHLEVBQUUsRUFBRSxLQUFNLEdBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLElBQUssR0FBRyxFQUFFLEVBQUUsS0FBTSxHQUFHLElBQVksR0FBRyxFQUFFLEdBQUcsWUFBTyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLGNBQVMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUN6VixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQzFWLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFDMVYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBMEIsT0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBUyxFQUFFLEVBQUUsT0FBUSxHQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsY0FBYyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQ3ZWLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUcsR0FBSSxJQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFpQyxHQUE3QixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUMxVixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLFFBQVMsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsR0FDMVYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQXdDLEdBQXBDLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQU0sR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBSyxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQzNWLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRyxJQUFJLEVBQUUsR0FBSyxJQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFJLEVBQUUsR0FBRyxHQUFHLE1BQU0sSUFBSSxFQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzFWLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFDNVYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFvRCxHQUFsRCxFQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRyxPQUFPLEVBQTBDLEdBQXhDLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQU8sS0FBSyxHQUFhLEdBQVYsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRyxPQUFPLEVBQUcsT0FBTyxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBRSxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEdBQzFWLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxPQUFPLElBQUksQ0FBQyxFQUF1QixHQUFyQixFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sR0FBaUMsSUFBN0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFJLElBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFRLElBQUksSUFBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQTBGLE9BQXhGLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBUyxFQUFFLEVBQzVWLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxPQUFPLElBQUksQ0FBQyxFQUF1QixHQUFyQixFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sR0FBaUMsSUFBN0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFJLElBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFRLElBQUksSUFBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQTBGLE9BQXhGLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBUyxFQUFFLEVBQzVWLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLE1BQU0sR0FBSSxFQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUcsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUE0RSxPQUF4RSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFHLEVBQVMsRUFBRSxPQUFRLEdBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsVUFBVyxPQUFPLEdBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUksQ0FBQyxHQUMzVixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLE1BQU0sRUFBRSxRQUFRLEVBQUcsT0FBTyxLQUEwQixHQUFyQixFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBTSxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQTBELEdBQXRELEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFVLEdBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxHQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRyxPQUFPLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQzlWLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBd1IsR0FBdFIsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFFLEVBQUcsTUFBTyxHQUFHLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBRSxNQUFPLEdBQy9WLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUcsT0FBMkIsR0FBcEIsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLE9BQU8sR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQy9WLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBRyxDQUFDLElBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEVBQUUsRUFBRSxHQUFjLEdBQVgsR0FBSSxFQUFFLEVBQUcsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxFQUFFLEdBQUcsSUFBSyxFQUFFLEVBQUUsRUFBRSxHQUFjLEdBQVgsR0FBSSxFQUFFLEVBQUcsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxNQUFPLE9BQU8sRUFDL1YsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUksTUFBTSxHQUFJLElBQUksR0FBSSwrREFBK0QsQ0FBQyxFQUFzTCxPQUFwTCxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDaFcsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxLQUM1VixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEtBQzVWLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksMkJBQTJCLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLDJCQUEyQixDQUFDLFdBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUssTUFBTSxHQUFJLElBQUksR0FBSSwrQkFBK0IsQ0FBQyxFQUM5VixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQXFHLEdBQXBHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUssSUFBSSxHQUFJLEVBQUUsSUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUFJLE9BQU8sRUFDaFcsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLE9BQU8sSUFBSyxHQUFJLEdBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNqVyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQTJCLEdBQTFCLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQTRCLEdBQTFCLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFNLEVBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQVEsUUFBTyxFQUFFLEdBQUcsRUFBRSxPQUFRLE9BQU8sR0FBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FDaFcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFJLEtBQUssRUFBRSxFQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUksS0FBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsT0FDN1YsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ2xXLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNsVyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDbFcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFNLEdBQUosRUFBRSxFQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQXlELEdBQXBELEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSSxPQUFPLEVBQ25XLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNuVyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBdUksR0FBckksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBZ0MsTUFBN0IsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFVLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFtQyxPQUFqQyxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxFQUNuVyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDN1YsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQU8sR0FBSixFQUFFLEVBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQW9CLEdBQWpCLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFLLEVBQUUsUUFBUSxFQUFHLE1BQVEsT0FBTyxFQUNyVyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFzRCxHQUFwRCxFQUFFLEdBQUcsZUFBZSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBSyxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBSSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFHLEVBQUUsR0FBRyxFQUNyVyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsT0FBTyxHQUFHLE1BQU8sT0FBVSxPQUFPLE9BQU8sT0FBTyxHQUFHLE1BQU8sT0FBVyxHQUFHLE9BQU8sRUFBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU8sT0FBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUksTUFBTyxPQUFXLFFBQU8sRUFBRSxPQUFRLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxHQUFHLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sT0FBTyxHQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVyxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFjLE1BQU8sSUFDL1YsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBa0QsT0FBaEQsRUFBRSxHQUFHLDJCQUEyQixDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFTLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxFQUFFLElBQUksSUFBSSxVQUFXLEdBQUUsRUFBRSxJQUFJLElBQUksY0FBYyxFQUFFLElBQUksSUFBbUQsR0FBOUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBTyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFHLE9BQU8sRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVcsR0FBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDeFcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFHLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FDdFcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLFdBQVcsRUFBRSwwSUFBMEksRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFDeFcsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBMEgsR0FBeEgsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQWMsR0FBWixFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksMEJBQTBCLENBQUMsQ0FBQyxFQUFvQixHQUFsQixFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBdUMsT0FBcEMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQVksRUFBRSxNQUEwQixRQUFuQixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBRyxDQUFDLEVBQVMsS0FDclcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF1UCxHQUFyUCxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUssRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ3pXLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFVBQVUsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksbUJBQW1CLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSx5QkFBeUIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLHVCQUF1QixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksdUJBQXVCLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxjQUFjLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSw0QkFBNEIsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLDRCQUE0QixDQUFDLEVBQ3pXLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBYyxHQUFiLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBZ0IsR0FBYixFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUssR0FBRyxJQUFJLEdBQUcsR0FBRyxNQUFNLFNBQVMsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsS0FBSyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRyxJQUFJLE1BQU8sR0FBRSxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRyxJQUFJLE1BQVEsSUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLE9BQU8sRUFBRSxFQUN6VyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLElBQUksR0FBSSxLQUFLLEdBQUksRUFBRSxHQUFNLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksRUFBSyxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksRUFBSyxFQUMxVyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUEwRCxHQUFqRCxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxHQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRyxFQUFFLEdBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUN4VyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLE9BQU8sYUFBYSxHQUFHLEdBQXVCLEdBQW5CLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQWEsR0FBVixFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsR0FBYyxHQUFYLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsS0FBTSxFQUFHLE9BQU8sR0FBSyxNQUFNLEdBQUksSUFBSSxHQUFJLDhDQUE4QyxDQUFDLE1BQVEsUUFBTyxHQUFJLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQ3pXLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBSSxDQUFDLEdBQUksRUFBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQTBDLEdBQXJDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQU0sRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUEwQyxHQUFyQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFNLEVBQUUsRUFBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBSyxPQUFPLEVBQzdXLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxHQUFJLEtBQUssR0FBSSxFQUFFLEdBQU0sRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUksRUFBRSxLQUFLLEdBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQzdXLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksSUFBSSxHQUFJLFlBQVksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGFBQWEsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksZUFBZSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksaUJBQWlCLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxxQkFBcUIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksZUFBZSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksb0JBQW9CLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxvQkFBb0IsRUFBRSxFQUM5VyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUErRixHQUE1RixFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQU0sRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRyxFQUFFLEdBQUssRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQWUsR0FBWCxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUcsT0FBUSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxXQUFXLEVBQUcsT0FBTyxNQUFpQyxRQUExQixJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFTLEVBQzVXLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQStGLEdBQTVGLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBTSxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFHLEVBQUUsR0FBSyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBZSxHQUFYLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRyxPQUFRLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLFdBQVcsRUFBRyxPQUFPLE1BQWlDLFFBQTFCLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQVMsRUFDNVcsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxPQUFPLEdBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFZLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBUSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQU0sQ0FBQyxFQUFFLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FDL1csU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQXdDLEdBQXRDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBWSxPQUFULEdBQUksRUFBRSxDQUFDLEVBQVMsWUFBZ0IsR0FBRyxNQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFZLE9BQVQsR0FBSSxFQUFFLENBQUMsRUFBUyxRQUFhLEtBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEtBQWUsT0FBVCxHQUFJLEVBQUUsQ0FBQyxFQUFTLEdBQVEsTUFBTyxHQUM1VyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBb0csR0FBbEcsRUFBRSxHQUFHLGdEQUFnRCxDQUFDLEVBQUUsS0FBSyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSyxHQUFLLElBQUksR0FBRyxFQUFFLEVBQUssRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQUUsR0FBRyxFQUNqWCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBUSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSyxPQUFPLEVBQ2pYLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSwyQkFBMkIsRUFBRSw2R0FBNkcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQU0sRUFDalgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssR0FBOEQsR0FBM0QsRUFBRSxHQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUksRUFBRSxNQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxTQUFTLEVBQUcsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFrQixHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVEsT0FBTyxHQUFHLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxHQUMvVyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FDalgsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLElBQUssR0FBSSxHQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFHLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLE9BQU8sRUFDblgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLE9BQU8sRUFDblgsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFnQyxHQUE5QixFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUssR0FBRyxFQUFHLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFHLE1BQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBc0YsR0FBbEYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBSyxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUNqWCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEwQixHQUF4QixHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQU0sQ0FBQyxFQUFHLE1BQU8sT0FBVyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsTUFBTyxPQUErQyxRQUFwQyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFTLEdBQVEsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFDblgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBVSxPQUFQLEVBQUUsRUFBRSxHQUFVLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFLLENBQUMsRUFBRSxVQUFXLEdBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBTSxDQUFDLEdBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLENBQUMsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUksQ0FBQyxFQUNuWCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFpQyxHQUEvQixFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLE1BQU8sR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUNyWCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQThTLEdBQTVTLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUcsTUFBTyxHQUFHLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBRSxNQUFPLEdBQ3JYLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxPQUFPLEVBQUUsRUFDclgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFDclgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sR0FBRyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sSUFBSSxFQUFFLENBQUMsTUFBTyxLQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBa0IsT0FBakIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBUyxFQUFFLEVBQUUsT0FBUSxHQUFFLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFXLEdBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsQ0FBQyxHQUNwWCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBZ0IsR0FBZCxFQUFFLElBQUksSUFBRyxFQUFFLENBQUMsR0FBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUEyRCxHQUF4RCxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFNLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQVEsR0FBRSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVEsUUFBSixFQUFFLEVBQVMsRUFDdlgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTRCLEdBQTFCLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQ3ZYLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsRUFBRSxHQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxTQUE4QixHQUFyQixFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLE1BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLElBQUksR0FBRyxFQUN2WCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUEwSSxHQUF4SSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsTUFBTyxJQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBVyxHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUN0WCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sT0FBUSxHQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sTUFBTSxNQUFNLE1BQU0sR0FBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsY0FBYyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDdFgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ3ZYLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUFHLENBQTRELEdBQTNELEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRyxTQUF3RCxHQUEvQyxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQ3BYLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFHLEdBQUksSUFBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FDeFgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFLLEdBQUosRUFBRSxFQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFJLE9BQU8sSUFBSSxFQUFFLENBQUMsR0FBSSxPQUFPLEVBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFDelgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQXdGLEdBQXRGLEVBQUUsR0FBRyx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVEsR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3pYLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLHVCQUF1QixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksb0NBQW9DLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxrQkFBa0IsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLCtCQUErQixDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksaUJBQWlCLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSx1QkFBdUIsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLDhCQUE4QixDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksNEJBQTRCLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxlQUFlLENBQUMsRUFDelgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLE9BQU8sU0FBUyxDQUF3QyxHQUF2QyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBTSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBNEQsR0FBekQsR0FBRyxHQUFHLEVBQUUsR0FBRyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQVMsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBTSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FDeFgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksbUNBQW1DLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLDBDQUEwQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUcsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUMzWCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFnRCxHQUE5QyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFRLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsQ0FBQyxNQUFRLEtBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxHQUN2WCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBbUQsR0FBaEQsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFNLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsTUFBTyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRyxPQUFPLEVBQzNYLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQStCLEdBQTdCLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLElBQU8sSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLElBQU0sT0FBTyxFQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxTQUFxQyxHQUE1QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFLLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUFLLFNBQVMsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFNLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBTSxFQUFJLEdBQzNYLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQWlDLEdBQTlCLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRyxHQUFHLEdBQUcsRUFBRyxFQUFFLFFBQVMsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQXFFLE9BQWxFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQVMsUUFBUyxRQUFPLEVBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDNVgsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUE0QyxHQUEzQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsSUFBSyxHQUFHLEdBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLFVBQVUsR0FBRyxJQUFLLEdBQUcsR0FBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxNQUFNLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQzdYLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQWdCLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLENBQUMsRUFBRyxTQUFTLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBSyxLQUFLLElBQUksRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUM3WCxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksSUFBSSxJQUFLLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsRUFDN1gsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFHLENBQUMsRUFBRSxJQUFHLENBQUMsRUFBRSxFQUFFLElBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxHQUFHLEVBQUUsQ0FBVyxHQUFWLEVBQUUsSUFBRyxFQUFFLENBQUMsRUFBSyxHQUFxRixHQUFsRixFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBYSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFlLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBaUIsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksS0FBSyxFQUFXLEdBQVQsR0FBRyxHQUFHLENBQUMsRUFBSyxFQUFHLEdBQUcsRUFBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxJQUFHLElBQUksR0FBRyxFQUFFLElBQUcsT0FBUSxJQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQzlYLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBbUIsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxLQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FDMVgsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssR0FBRyxLQUFLLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBSSxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBMEIsR0FBdkIsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLE1BQU0sQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxVQUFVLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFDL1gsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFrRSxHQUF6RCxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBSyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUN2WCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQzlYLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEtBQUksT0FBTyxHQUFJLEdBQUksRUFBSSxNQUFPLElBQUcsT0FBTyxHQUFJLEdBQUksRUFBSyxNQUFPLEtBQUksT0FBTyxHQUFJLElBQUksRUFBSSxNQUFPLElBQUcsT0FBTyxHQUFJLElBQUksRUFBSyxNQUFPLEtBQUksT0FBTyxHQUFJLElBQUksRUFBSSxNQUFPLElBQUcsT0FBTyxHQUFJLElBQUksRUFBSyxNQUFPLElBQUcsT0FBTyxHQUFJLElBQUksRUFBSSxNQUFPLElBQUcsT0FBTyxHQUFJLElBQUksRUFBSyxNQUFPLEtBQUksT0FBTyxHQUFJLElBQUksRUFBSSxNQUFPLElBQUcsT0FBTyxHQUFJLElBQUksRUFBSyxVQUFVLE1BQU0sR0FBSSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQzdYLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBZ0ksT0FBOUgsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsR0FBRyxFQUEwRyxPQUF2RyxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ2pZLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU8sS0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDalksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNoWSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTJFLEdBQXpFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQU0sRUFBRSxFQUFzRSxHQUFuRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBSSxNQUFPLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUksRUFBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQ2xZLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBYyxPQUFOLEVBQUUsRUFBRSxFQUFTLEdBQUssT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQVEsSUFBRyxFQUFFLEVBQUUsVUFBVyxJQUFHLEVBQUUsR0FBRyxjQUFvQixPQUFOLEVBQUUsRUFBRSxFQUFTLEdBQThCLEtBQXRCLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFHLE1BQU8sR0FBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLFFBQVEsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBZ0MsR0FBL0IsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUcsTUFBTyxHQUFNLEdBQUcsTUFBTyxHQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUcsR0FBRyxHQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFHLEdBQWdCLE9BQVosR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFTLEdBQ2hZLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFDbFksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUE2RSxHQUF6RSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQU0sR0FBSSxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQU0sSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQTZFLEdBQXpFLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBTSxHQUFJLEVBQUUsQ0FBQyxFQUFHLE1BQU8sR0FBTSxNQUFPLEdBQ2hZLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQWdCLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLENBQUMsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsU0FBdUMsR0FBOUIsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQ2xZLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQWdCLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLENBQUMsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsU0FBdUMsR0FBOUIsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQ2xZLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEyQixHQUF6QixFQUFFLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsRUFBSyxHQUFHLE9BQU8sR0FBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQW9DLEdBQWhDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUssRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBcUIsR0FBbEIsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQU0sT0FBTyxFQUFFLE9BQU8sR0FBRyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNwWSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUNyWSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQStOLEdBQTdOLEVBQUUsR0FBRyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUssR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDclksU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEyQixHQUF6QixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFRLEVBQUcsS0FBSyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQU0sRUFBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFPLEdBQUUsU0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQTRELEdBQXpELEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRyxPQUFPLEVBQ3JZLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBVyxHQUFWLEVBQUUsSUFBSSxHQUFPLEVBQUUsR0FBRyxLQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRSxHQUFHLEtBQU0sSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBUSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBTSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsR0FBRyxLQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUssR0FBRyxJQUFJLEVBQUUsR0FBRyxLQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQU0sRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFRLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUNyWSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQThDLEdBQXJDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFrRCxHQUEvQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUksR0FBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFLLE1BQU8sS0FBSSxFQUFFLEVBQUUsRUFBSSxFQUNyWSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQ3RZLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBc0ksR0FBcEksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLFlBQVksSUFBSSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksd0JBQXdCLENBQUMsQ0FBQyxFQUF3RCxLQUFwRCxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQVcsT0FBTixJQUFHLENBQUMsR0FBVSxFQUFFLEtBQUssRUFBRSxFQUN2WSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLENBQUMsRUFBRSxHQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUssRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRyxDQUFDLEVBQUUsR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQ3ZZLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRyxPQUFPLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxJQUFJLElBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFxQixHQUFwQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFHLEVBQUUsRUFBRSxNQUFPLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN2WSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFtRCxHQUFqRCxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUcsTUFBTyxHQUErQixHQUF6QixHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQXNGLEdBQW5GLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBUSxHQUFrQixHQUFmLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLE9BQU8sRUFBRyxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUksT0FBTyxFQUN2WSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF3RyxHQUF0RyxFQUFFLEdBQUcsMEJBQTBCLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxPQUFPLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQ3hZLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFXLEdBQVYsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsT0FBTyxLQUN2WSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBYSxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFxQixHQUFsQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFLLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxLQUFNLE9BQU8sTUFBUyxLQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLFdBQWMsR0FBRyxNQUFNLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQXFCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFHLEtBQU0sT0FBTyxNQUFTLEtBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQXFCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFBTSxPQUFPLEtBQ3ZZLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBSSxFQUFFLFVBQVUsRUFBRSxHQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFFLEVBQUUsRUFBQyxFQUFFLEdBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFFLEVBQUUsRUFBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzWSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLE9BQVAsRUFBRSxLQUFZLEVBQUUsT0FBUSxHQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRyxPQUFPLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxNQUFNLEdBQUksRUFBRSxHQUFLLEVBQUUsVUFBVyxHQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRyxPQUFPLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxNQUFNLEdBQUksRUFBRSxHQUFLLEVBQUcsR0FBRyxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDNVksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxPQUFPLEVBQzdZLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQThCLEdBQXZCLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFTLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFLLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSyxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFLLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSyxHQUFHLEdBQUcsRUFBRSxDQUE2QixHQUE1QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQzVZLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQVUsS0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFrRSxPQUFqRSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEdBQUcsRUFBRyxNQUFPLEdBQU8sTUFBTyxHQUMxWSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBbUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQzlZLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUMvWSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsU0FBUyxFQUFFLHdFQUF3RSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUMvWSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF3QixHQUF0QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxHQUFHLEdBQUcsRUFBRyxPQUFPLEdBQUksRUFBRSxHQUFvQyxPQUFoQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQUUsT0FBUSxPQUFPLEdBQUUsR0FBRyxFQUFFLEVBQUcsT0FBTyxHQUFJLEVBQUUsV0FBWSxFQUFFLEVBQUUsRUFBRyxPQUFPLEdBQUksRUFBRSxHQUFJLFVBQVcsT0FBTyxHQUFFLEdBQUcsRUFBRSxFQUFHLE9BQU8sR0FBSSxFQUFFLFdBQVksRUFBRSxFQUFFLEVBQUcsT0FBTyxHQUFJLEVBQUUsR0FBNkIsT0FBeEIsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQzdZLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBaUMsR0FBaEMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsR0FBOEQsR0FBM0QsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUNqWixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBMEIsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLElBQUksRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQTBCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxJQUFJLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUMvWSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQW1CLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBTSxHQUFJLENBQUMsSUFBSSxHQUFJLENBQUMsSUFBSSxHQUFJLENBQUMsR0FBa0csR0FBL0YsRUFBRSxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQU8sS0FBSyxFQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFDL1ksU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQXNDLEdBQWxDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFLLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBZ0IsR0FBYixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBSyxFQUFFLEVBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFTLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FDalosU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksR0FBSSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksS0FBSyxHQUFJLEVBQUUsR0FBSyxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxHQUFJLEdBQUcsRUFDcFosU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sR0FBRyxDQUFDLE9BQVEsR0FBRSxPQUFPLEdBQUcsQ0FBQyxNQUFPLEdBQUUsT0FBTyxHQUFHLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBRyxDQUFDLE1BQU8sR0FBRSxPQUFPLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxTQUFVLElBQUcsT0FBTyxHQUFHLGFBQWEsSUFBSSxRQUFTLElBQUcsT0FBTyxHQUFHLGNBQWMsSUFBSSxXQUFZLEdBQUcsU0FBVSxHQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsZ0JBQWdCLE1BQU8sR0FBRSxPQUFPLEdBQUcsQ0FBQyxHQUFLLEVBQUUsS0FBSyxPQUFVLEdBQUUsT0FBTyxHQUFHLENBQUMsR0FBSyxFQUFFLEtBQUssSUFBTSxHQUFHLEVBQUUsRUFBRSxnQkFBZ0IsVUFBVSxNQUFPLElBQ2haLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQWMsR0FBWixFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBa0QsR0FBakQsRUFBRSxFQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQU0sRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDclosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUEyTCxHQUF6TCxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQXlDLEdBQXZDLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsTUFBTyxHQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRyxNQUFPLEdBQUUsR0FBRyxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQ3RaLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBa0IsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUcsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsT0FBTyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxPQUFPLEVBQUUsRUFBRSxPQUFRLEdBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQ3JaLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFDdlosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUErQyxHQUE3QyxFQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEtBQUssSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLElBQUssR0FBRyxJQUFNLE1BQU8sR0FBRSxHQUFHLElBQUksR0FBSSxFQUFFLEtBQThDLEdBQXhDLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQU8sS0FBSyxHQUFhLEdBQVYsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRyxPQUFPLEdBQUksT0FBTyxFQUFFLEVBQUUsT0FBUSxHQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEdBQ3RaLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFzQixHQUFwQixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFFLEVBQUcsR0FBSSxFQUFFLElBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBTSxFQUFHLFVBQVUsRUFBRSxFQUFHLEdBQUksRUFBRSxJQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUssRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN4WixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFLLElBQUksR0FBRyxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBSSxHQUFJLElBQUksRUFBRSxFQUN4WixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQW1SLE9BQWpSLEVBQUUsSUFBSSxLQUFNLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBSyxDQUFDLElBQUksR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFJLENBQUMsRUFBUyxFQUN6WixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFNLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBNkMsR0FBNUMsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFNLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLFNBQVMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxTQUFnQixHQUFQLEVBQUUsR0FBUSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFrQixPQUFmLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFTLEVBQWtCLE9BQWYsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQVksRUFDMVosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVcsR0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsRUFBRyxNQUFPLE9BQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUE4RSxHQUEzRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxLQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsTUFBTyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUFRLEdBQUUsR0FBRyxDQUFDLFVBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksS0FBSyxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFPLElBQ3RaLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUEyRCxHQUExRCxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFtQyxLQUE3QixJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFNLEVBQUcsRUFBRSxHQUFHLENBQUMsTUFBTyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxXQUFZLEVBQUcsRUFBRSxHQUFHLENBQUMsTUFBTyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFHLE9BQU8sTUFBTSxDQUEyQixHQUExQixHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBTSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUksRUFBRSxPQUFPLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEdBQ3paLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWtHLEdBQWhHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxHQUFNLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQWdELEdBQXZDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FDelosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUErQixHQUE3QixFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLENBQUMsRUFBSyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEdBQUcsRUFBRyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUN6WixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUMzWixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLHdCQUF3QixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixPQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFTLEVBQUUsRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxHQUFHLEVBQzVaLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUF1QixHQUF0QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxHQUFHLEdBQUksRUFBRSxZQUFhLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxHQUFHLEdBQUksRUFBRSxRQUFVLE9BQU0sR0FBSSxJQUFJLEdBQUksOENBQThDLENBQUMsRUFBUSxHQUFOLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxHQUFHLEdBQUksRUFBRSxZQUFhLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxHQUFHLEdBQUksRUFBRSxRQUFVLE9BQU0sR0FBSSxJQUFJLEdBQUksOENBQThDLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FDM1osU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQXFDLEdBQWxDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUUsR0FBRyxHQUF5RCxJQUFyRCxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFLLE9BQU8sRUFBRSxFQUM1WixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBc0QsR0FBckQsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUcsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQTJDLEdBQTFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLElBQWdCLEdBQVgsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQzdaLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFPLFdBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFLLEVBQVksR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRyxJQUFJLEVBQUcsTUFBTyxPQUE2QixRQUFsQixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQVMsR0FBRyxHQUFHLEdBQUcsU0FBVSxDQUErRSxHQUE5RSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQU0sR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQXVDLEdBQXBDLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE1BQU8sR0FBUSxNQUFPLE9BQXVCLFFBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsR0FBRyxFQUM1WixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFhLEdBQVosR0FBRyxJQUFJLEVBQUUsR0FBTSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBRyxHQUFJLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUksTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBeUQsT0FBdkQsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUksQ0FBQyxFQUFTLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBSSxpREFBaUQsQ0FBQyxFQUM3WixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTJGLE9BQXpGLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFRLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxPQUFPLEVBQy9aLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFpRixHQUEvRSxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBSyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxLQUFNLEVBQUUsRUFBRyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBb08sT0FBbE8sR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBSSxDQUFDLElBQVEsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUksRUFBRSxJQUFJLElBQUssR0FBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQVMsRUFDL1osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBa0IsR0FBaEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxHQUFLLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFLLFVBQVUsRUFBRSxHQUFHLEdBQUssR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUssTUFBTyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQzlaLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQWtELEdBQWpELEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUssR0FBSSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUcsU0FBUyxFQUFFLEVBQUcsR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQy9aLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBZ0csR0FBOUYsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBdUIsT0FBckIsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBVSxFQUFFLEdBQUcsRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNoYSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQ2hhLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFlLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxFQUFHLElBQUksRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBSyxPQUFPLEdBQUcsQ0FBQyxVQUFVLEdBQUcsR0FBSSxPQUFPLEdBQUcsRUFBRSxFQUFFLFVBQVUsR0FBRyxHQUFJLE9BQU8sR0FBRyxFQUFFLEdBQUcsVUFBVSxHQUFHLEdBQUksT0FBTyxHQUFHLEVBQUUsR0FBRyxVQUFVLEdBQUcsR0FBSSxPQUFPLEdBQUcsRUFBRSxHQUFHLFVBQVUsR0FBRyxHQUFJLE9BQU8sR0FBRyxDQUFDLFVBQVUsR0FBRyxHQUFLLE9BQU8sR0FBRyxFQUFFLEdBQUcsVUFBVSxHQUFHLEdBQUksT0FBTyxHQUFHLEVBQUUsR0FBRyxNQUFRLFFBQU8sR0FBSSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLFVBQVcsR0FBRyxFQUFFLEVBQUUsRUFBRyxPQUFPLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxHQUM1WixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksR0FBRyxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFLLEdBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxJQUFLLEdBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUssR0FBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxHQUFJLElBQUksR0FBRyxHQUFJLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUksSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUcsRUFBRSxHQUFJLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBRyxHQUFJLElBQUksR0FDL1osU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBb0IsR0FBbEIsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBb0csR0FBbEcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxPQUFPLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssT0FBTyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBTSxFQUFFLEVBQUUsRUFBRyxPQUFPLFVBQVUsRUFBRSxFQUFFLEVBQUcsT0FBUSxNQUF5SCxRQUFsSCxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUcsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQVUsSUFBSSxFQUFFLENBQUMsTUFBUSxRQUFPLEVBQUUsRUFBRSxHQUFHLEVBQ2phLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFvQixHQUFoQixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBSSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFDbmEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBdUIsR0FBdEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNuYSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUF1QixHQUFyQixFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsR0FBRyxHQUFHLEVBQUcsT0FBTyxHQUFJLEVBQUUsR0FBZ0IsT0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLE9BQVEsT0FBTyxHQUFFLEdBQUcsRUFBRSxFQUFHLE9BQU8sR0FBSSxFQUFFLFdBQVksRUFBRSxFQUFFLEVBQUUsRUFBRyxPQUFPLEdBQUksRUFBRSxHQUFJLFVBQVcsT0FBTyxHQUFFLEdBQUcsRUFBRSxFQUFHLE9BQU8sR0FBSSxFQUFFLFdBQVksRUFBRSxFQUFFLEVBQUUsRUFBRyxPQUFPLEdBQUksRUFBRSxHQUFpQyxPQUE1QixHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQ2hhLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUE2RCxHQUEzRCxFQUFFLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUssRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsTUFBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFLLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsR0FDbmEsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSw0Q0FBNEMsRUFBRSxDQUFDLENBQUMsRUFBMEksR0FBeEksRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEdBQUcsS0FBTSxHQUFHLEdBQUcsS0FBSyxHQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBYSxPQUFULEVBQUUsRUFBRSxHQUFZLEVBQ3BhLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLGlDQUFpQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQWlDLEdBQWhDLEVBQUUsRUFBRyxFQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBSyxHQUFHLEdBQUksSUFBSSxHQUFJLEVBQUUsTUFBTyxFQUFFLFdBQVcsSUFBSSxHQUFJLEVBQUUsSUFBTSxHQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUcsSUFBSSxHQUFJLEVBQUUsS0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFDcmEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBVyxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxFQUFHLE1BQU8sT0FBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQThFLEdBQTNFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEtBQUssSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxNQUFPLEdBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLE1BQVEsR0FBRSxHQUFHLENBQUMsVUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxLQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxJQUNsYSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRywwQ0FBMEMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUSxHQUFHLElBQU0sR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLElBQUksRUFBRSxHQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3ZhLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUEwQixHQUFqQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxHQUFNLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFZLEdBQU4sRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBVSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUEwQixHQUFqQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxHQUFNLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFZLEdBQU4sRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDOVosU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFvRCxHQUFqRCxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFNLEdBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxVQUFPLEdBQUcsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQWEsT0FBVCxHQUFJLEVBQUUsQ0FBQyxFQUFTLEVBQ3ZhLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXVOLEdBQXJOLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSwwQkFBMEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBTSxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBbUIsR0FBaEIsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFRLEtBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxNQUFTLEtBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUksRUFDdmEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBc0gsT0FBcEgsRUFBRSxHQUFHLGFBQWEsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQVMsRUFBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQUUsR0FBRyxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxPQUFPLEdBQUksQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFJLEVBQUUsY0FBYyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFDeGEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUN0YSxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxPQUFPLElBQUksS0FBSyxHQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksRUFBSSxDQUFDLEVBQUUsS0FBSyxHQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFxTyxPQUFuTyxLQUFLLEdBQUksSUFBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxLQUFLLElBQUksRUFBRSxHQUFJLEVBQUUsTUFBTSxLQUFLLEVBQUUsS0FBSyxHQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEtBQUssR0FBSSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBSSxJQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFTLElBQ3ZhLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLE1BQU0sR0FBa0IsR0FBWixFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUssR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBZ0csR0FBL0YsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFLLEdBQUcsRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEdBQUcsT0FBTyxFQUMxYSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxLQUFLLEdBQUksRUFBRSxHQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBSSxFQUFFLElBQUssR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQ3hhLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBMkIsR0FBekIsRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUssSUFBSSxFQUFFLENBQUMsRUFBRyxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUksR0FBRyxHQUFHLE1BQU0sR0FBSSxDQUFDLEVBQUUsUUFBUSxHQUFHLElBQUksSUFBSSxHQUFJLENBQUMsRUFBMEcsTUFBdkcsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLDBDQUEwQyxFQUFFLEVBQUcsRUFBRSx5QkFBeUIsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFRLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQWdGLE9BQXhFLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBSSxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBUSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUN6YSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU8sQ0FBeUYsR0FBeEYsRUFBRSxJQUFJLEVBQUUsRUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFDM2EsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUE4RCxPQUF6RCxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQVMsRUFDNWEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFDNWEsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEyQixHQUF6QixFQUFFLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsRUFBSyxHQUFHLE9BQU8sR0FBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBbUQsR0FBMUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBSyxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQU0sT0FBTyxFQUFFLE9BQU8sR0FBRyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUM3YSxTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQStCLEdBQTlCLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBYSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFHLElBQUksRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEdBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxPQUFPLEVBQUUsRUFDN2EsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBYyxHQUFaLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEdBQXdFLEdBQXJFLEVBQUUsR0FBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUMsRUFBSyxHQUFHLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxNQUFNLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FDM2EsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsQ0FBNkYsR0FBNUYsRUFBRSxJQUFJLEVBQUUsRUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFDN2EsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLE1BQU8sT0FBTyxFQUM5YSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXdDLEdBQXRDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUcsTUFBTyxXQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxNQUFPLEdBQU0sR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUcsTUFBTyxRQUFhLEtBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFNLE1BQU8sR0FBUSxNQUFPLEdBQzNhLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWMsR0FBWixFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxHQUE4RCxHQUEzRCxFQUFFLEdBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLEVBQUssR0FBRyxLQUFLLENBQTJCLEdBQTFCLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsR0FBRyxFQUFHLEVBQUUsS0FBSyxHQUFHLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLE9BQVEsSUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLEdBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxPQUFRLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLE9BQU8sT0FBTyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSyxPQUFPLEtBQzdhLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBK0IsR0FBOUIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLFdBQVksR0FBRSxFQUFLLEtBQUssSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFDamIsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxxRUFBcUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFnQixHQUFmLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTyxJQUFHLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDamIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWtDLEdBQWhDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFnRCxHQUE3QyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxDQUFDLEVBQUssR0FBRyxHQUFHLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRyxPQUFPLEVBQUcsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRyxPQUFPLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLE9BQU8sTUFDN2EsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLElBQUksSUFBSSxFQUFFLEdBQUcsR0FBRyxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxFQUNuYixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBTSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFtRCxHQUFoRCxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQU0sR0FBRyxHQUFHLEdBQUcsRUFBRyxHQUFJLENBQUMsV0FBVyxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxhQUFlLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQXVFLEdBQXBFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzdhLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBd1IsR0FBdFIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLE1BQU8sV0FBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQU0sTUFBTyxHQUNoYixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF1QixHQUFyQixFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBTSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksOEJBQThCLENBQUMsRUFBMkQsR0FBekQsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQXVCLEdBQXJCLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUssR0FBeUMsR0FBdEMsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsaUJBQWlCLENBQUMsRUFBK0IsT0FBNUIsR0FBSSxFQUFFLFlBQVksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFTLEtBQ2hiLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBNkUsR0FBNUUsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFLLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFTLEtBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQ3BiLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsR0FDcmIsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUcsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEdBQU0sR0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUN2YixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBbUMsR0FBakMsRUFBRSxHQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFFLEdBQUcsRUFBRyxPQUFPLEtBQTJWLE9BQXRWLEVBQUUsRUFBRyxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFTLEVBQ3ZiLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUN6YixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsTUFBTyxFQUFFLElBQ3RiLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBa0QsR0FBaEQsRUFBRSxHQUFHLGtDQUFrQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLFFBQVEsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVEsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUSxFQUFFLEdBQUcsRUFDM2IsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxPQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxJQUFHLEVBQUUsS0FBSyxPQUFPLGFBQWEsRUFBRSxFQUFHLEVBQUUsVUFBVyxJQUFHLEVBQUUsTUFBTSxVQUFXLElBQUcsRUFBRSxNQUFNLFVBQVcsSUFBRyxFQUFFLE1BQU0sVUFBVyxHQUFFLEVBQUUsTUFBTSxVQUFXLElBQUcsRUFBRSxNQUFNLGNBQWMsR0FBRyxFQUFFLEdBQUksR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE1BQU0sVUFBVSxHQUFHLEdBQUssR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE1BQU0sTUFBTyxHQUFFLEdBQUcsT0FBTyxhQUFhLEVBQUUsRUFBRyxFQUFHLE9BQU8sRUFDM2IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsTUFBTyxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFHLE9BQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksR0FDM2IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLHdEQUF3RCxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBSyxLQUFLLEVBQUUsR0FBTSxJQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFHLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQzFiLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxHQUFHLEVBQUUsRUFBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUMxYixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQXFDLEdBQWxDLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBYSxPQUFULElBQUksRUFBRSxDQUFDLEVBQVMsV0FBYSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUF1SSxPQUFuSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBUyxHQUFNLE1BQU8sR0FDMWIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUE4QyxHQUE3QyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQStELEdBQTNELEdBQUcsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFPLEVBQUcsRUFBRSxHQUFHLENBQUMsTUFBTyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxVQUFRLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQU8sRUFBRyxFQUFFLEdBQUcsQ0FBQyxNQUFPLEdBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUcsT0FBTyxNQUFNLENBQWMsR0FBYixFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBSSxFQUFFLEtBQUssR0FBRyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxHQUM3YixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBcUMsR0FBbkMsRUFBRSxHQUFHLDJCQUEyQixDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBb0gsR0FBN0csRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxPQUFPLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxFQUFFLElBQUksSUFBSSxVQUFXLEdBQUUsRUFBRSxJQUFJLElBQUksY0FBYyxFQUFFLElBQUksSUFBaUIsR0FBWixFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBTSxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsT0FBUSxHQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDamMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVEsR0FBTixHQUFHLEdBQU0sRUFBRSxFQUFFLFNBQVMsR0FBRyxHQUEyRyxHQUF4RyxFQUFFLElBQUksRUFBSyxLQUFLLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLGtCQUFrQixFQUFFLEVBQUUsa0JBQWtCLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFLLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEdBQUcsR0FBRyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQ2xjLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBMEIsR0FBeEIsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFnQixHQUFYLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQWMsR0FBWCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUssR0FBRyxFQUFHLFdBQWEsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFnQixHQUFYLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQWMsR0FBWCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUssR0FBRyxFQUFHLFFBQzNiLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQ3BjLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQWdCLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFxRCxHQUFsRCxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLE9BQVEsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU8sR0FBRSxPQUFZLEdBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSyxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBTSxNQUFPLEdBQ2hjLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxJQUFJLEdBQUksR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBYyxHQUFiLEVBQUUsSUFBSSxHQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUcsR0FBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsT0FBTyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQ3JjLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBK0IsR0FBOUIsRUFBRSxJQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFhLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFLLEVBQUcsR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxLQUFLLEdBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxPQUFPLEVBQUUsRUFDcmMsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTRDLEdBQTFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFBRSxXQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUUsUUFBVSxLQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEtBQU0sT0FBTyxFQUFFLEVBQUUsRUFBSSxNQUFPLEdBQ3BjLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBa0MsR0FBL0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQU0sRUFBdUIsR0FBcEIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsR0FBRyxHQUEwQixHQUF0QixFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBc0MsR0FBbEMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQU0sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxNQUFPLENBQUMsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU8sR0FBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsV0FBYSxHQUFHLEtBQU0sRUFBRSxHQUFHLElBQUksTUFBTyxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQ2xjLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQWdCLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLENBQUMsRUFBRyxTQUFpQixHQUFSLEVBQUUsRUFBRSxFQUFFLEVBQUssSUFBSSxFQUFFLEVBQUcsRUFBRSxDQUFvQixHQUFuQixFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFLLEdBQUcsR0FBSSxTQUFTLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFnQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBSSxDQUFDLEVBQUcsU0FBaUIsR0FBUixFQUFFLEVBQUUsRUFBRSxFQUFLLElBQUksRUFBRSxFQUFHLEVBQUUsQ0FBb0IsR0FBbkIsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBSyxHQUFHLEdBQUksU0FBUyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUN2YyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLE9BQU8sRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBa0QsR0FBL0MsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFDdmMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxPQUFPLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUF1RSxHQUFwRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFLLElBQUksR0FBSSxFQUFFLElBQU0sR0FBSSxFQUFFLEVBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUMvYyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBVSxHQUFSLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFBRSxHQUFJLE9BQVEsT0FBTyxHQUFJLFdBQVcsR0FBRyxHQUFJLE9BQU8sSUFBSyxHQUFJLEVBQUUsS0FBSyxDQUFDLFVBQVUsR0FBRyxHQUFLLE9BQU8sR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFTLE1BQU0sR0FBSSxJQUFJLEdBQUksc0JBQXNCLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBSyxPQUFPLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxNQUFNLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsTUFBTSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBYSxPQUFYLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBUyxFQUMxYyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sU0FBcUMsR0FBNUIsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFzQixHQUFyQixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLFNBQWUsR0FBTixFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRyxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBUSxHQUFOLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUN2YyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBaVUsR0FBL1QsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxFQUFHLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLENBQUMsRUFDNWMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBOEssR0FBN0ssRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVEsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUN0YyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFnSSxHQUExSCxFQUFFLEVBQUUsR0FBRyxLQUFNLEdBQUksR0FBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFLLElBQUksR0FBSSxFQUFFLElBQUssQ0FBdUQsR0FBdEQsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBRyxHQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBRSxDQUFDLFVBQVUsR0FBRyxHQUFLLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBSSxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsRUFBSSxHQUFJLENBQUMsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQzNjLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUssSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF1RyxHQUE5RixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRywrQkFBK0IsRUFBRSxpQ0FBaUMsQ0FBQyxFQUFFLE1BQU8sSUFBSSxFQUFHLE1BQTBDLE9BQW5DLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLGlCQUFpQixDQUFDLEVBQVMsRUFDamQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXFFLEdBQW5FLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLElBQUksRUFBdUMsT0FBckMsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ25kLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxRQUFRLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUNwZCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEySCxHQUF6SCxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFNLEVBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQWtCLEdBQWhCLEVBQUUsR0FBTSxFQUFFLEdBQVMsRUFBRyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsTUFBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBdUUsR0FBcEUsRUFBRSxJQUFJLElBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUksSUFBSSxFQUFLLEdBQUcsRUFBRyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQ3BkLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUF3QixHQUFyQixFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQU8sR0FBTixFQUFFLEVBQUUsRUFBSyxHQUFHLEdBQVUsR0FBUCxHQUFHLElBQU8sR0FBRyxFQUFHLE1BQU8sR0FBRyxJQUFJLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxrQkFBZSxFQUFFLElBQU8sSUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQVEsQ0FBTSxHQUFMLEVBQUUsR0FBTSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBbUIsR0FBZixFQUFFLEVBQUUsR0FBRyxJQUFHLEVBQUUsQ0FBQyxFQUFLLEVBQUUsR0FBRyxFQUFHLGlCQUFrQixJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLFNBQVMsTUFBTyxHQUFHLElBQUksSUFBRyxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQUUsT0FBTyxFQUFFLEdBQ3BkLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFLLElBQUksRUFBRSxJQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBNEIsR0FBM0IsRUFBRSxFQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFFLEdBQUksU0FBdUUsR0FBOUQsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLElBQ2xkLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBSSxFQUNwZCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQW9ELEdBQWxELEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUcsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFPLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFPLEdBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTyxHQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ25kLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUF5QyxHQUF4QyxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQWEsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUcsR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSyxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsT0FBTyxFQUFFLEVBQ3RkLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxXQUFXLEVBQUUsdUdBQXVHLEVBQUUsSUFBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUMxZCxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxPQUFPLGNBQWMsRUFBRSxHQUFHLENBQUMsR0FBSSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLElBQUssSUFBRyxFQUFFLEdBQUcsK0JBQStCLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLDhCQUE4QixHQUFTLEVBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFJLEdBQUcsd0JBQXdCLEdBQVMsRUFBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUksR0FBRyxxQkFBcUIsR0FBUyxFQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBSSxHQUFHLGFBQWEsR0FBUyxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsR0FBTSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBSSxDQUFDLEdBQ3pkLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBNkIsR0FBM0IsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUssR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRyxNQUFPLEdBQStNLElBQTVNLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsSUFBSSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQU0sRUFBSyxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFNLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBUSxHQUFQLElBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRyxNQUFPLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLE9BQU8sRUFDNWQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUE2QixHQUEzQixFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBSyxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFHLE1BQU8sR0FBK00sSUFBNU0sR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBTSxFQUFLLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFHLEdBQUksRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQU0sRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFRLEdBQVAsSUFBSSxDQUFDLEVBQUssR0FBRyxFQUFHLE1BQU8sR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsT0FBTyxFQUM1ZCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBNEYsR0FBMUYsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFHLEdBQUcsR0FBRyxFQUFFLENBQXFJLEdBQXBJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBTyxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRyxPQUFPLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxTQUFVLFFBQU8sU0FBVyxRQUFPLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQ3pkLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTBMLEdBQXhMLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBTyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxLQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzlkLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTBMLEdBQXhMLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBTyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxLQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzlkLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUcsSUFBSSxHQUFJLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUM3ZCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBZ0MsR0FBOUIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFvRCxHQUFuRCxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBNEIsR0FBMUIsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlkLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBZ0MsR0FBdkIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLE1BQU8sR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDaGUsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQXFELEdBQXBELEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQWEsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUcsR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSyxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsT0FBTyxFQUFFLEVBQ2xlLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQW1ELEdBQWpELEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUksRUFBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVksR0FBRyxNQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQVMsS0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFDcGUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWtDLE9BQWhDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxjQUFjLE1BQU0sR0FBSSxJQUFJLEdBQUkseUJBQXlCLENBQUMsRUFBNEIsT0FBekIsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ3JlLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF3RCxHQUF0RCxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBTSxJQUFJLEVBQUcsT0FBK0QsR0FBeEQsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBTSxHQUFKLEVBQUUsRUFBSyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBdUIsR0FBckIsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUNyZSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUE2RCxHQUF6RCxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBSyxHQUFxRyxHQUFsRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsS0FBTSxDQUFDLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRyxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUcsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRyxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSSxPQUFPLEVBQ3ZlLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWdCLEdBQWQsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBaUIsR0FBaEIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQU4sR0FBSSxFQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLE9BQU8sVUFBVSxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSSxDQUFDLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUssR0FBRyxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQWdGLFFBQXpFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBVSxFQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUN2ZSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBa0MsR0FBaEMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBUyxHQUFOLEdBQUksRUFBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxPQUFPLE1BQWdGLFFBQXpFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBVSxFQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBUSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQU4sR0FBSSxFQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLE9BQU8sTUFBZ0YsUUFBekUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFVLEVBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQ3hlLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFHLENBQUMsR0FBSSxXQUFXLEdBQUksV0FBVyxVQUFVLFdBQVcsR0FBSSxVQUFVLEdBQUksVUFBVSxVQUFVLFVBQVUsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsV0FBVyxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsR0FBSSxXQUFXLFdBQVcsV0FBVyxRQUFRLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUMxZSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWMsR0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBYyxHQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUF1RSxPQUFwRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBSSxDQUFDLEdBQVUsR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBaUMsR0FBL0IsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBTyxFQUFFLEVBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUcsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBa0MsT0FBL0IsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFTLEVBQzFlLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBNEosR0FBMUosRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxJQUFJLEdBQUksT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQXNMLE9BQW5MLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFDMWUsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLElBQUksQ0FBQyxHQUFnQyxHQUE3QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUNyZSxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQU0sT0FBTyxLQUFnQixHQUFYLEVBQUUsRUFBRSxPQUFVLEdBQUcsRUFBRyxNQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBa0IsR0FBYixFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUssR0FBRyxLQUFLLEdBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFHLENBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxVQUFPLEVBQUUsRUFBSyxHQUFHLEdBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sYUFBYSxFQUFFLENBQUMsTUFBUyxHQUFFLEdBQU8sR0FBRyxFQUFHLElBQUksRUFBRyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE1BQW9CLFFBQWIsRUFBRSxFQUFFLEVBQUUsT0FBYyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFTLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFDMWUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyx1QkFBdUIsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxHQUFHLEVBQUcsRUFBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQy9lLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE0QixHQUExQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUssRUFBRSxHQUFHLEtBQUssT0FBZ0IsR0FBVCxFQUFFLEVBQUUsR0FBUSxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUyxHQUFHLEdBQUcsRUFBRSxFQUFFLE9BQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsYUFBYSxHQUFHLEVBQUUsRUFBRSxPQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLFNBQVUsR0FBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBTSxFQUFFLEVBQUUsRUFDaGYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE4SixHQUE1SixFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBTSxJQUFJLEVBQUcsT0FBTyxJQUFJLElBQUksRUFBRyxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBMEwsT0FBeEwsSUFBSSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLElBQUksR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsSUFBSSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQVUsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQ2pmLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWtCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLEVBQ2xmLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBSSxDQUFDLEVBQXVCLEdBQXJCLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxHQUFpQyxJQUE3QixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUksSUFBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLE1BQVEsSUFBSSxJQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBOE8sT0FBNU8sSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFHLEVBQUUsR0FBRyxLQUFTLEVBQUUsR0FBRyxJQUFPLEdBQUksRUFBRSxJQUFHLElBQUksR0FBRyxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQU8sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsS0FBTyxHQUFJLEVBQUUsSUFBRyxJQUFJLEdBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFjLEVBQUUsRUFDbGYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBRSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFDLEVBQ2xmLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFLLENBQUMsRUFDbmYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsNkJBQTZCLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVEsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQUssR0FBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUNwZixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUssRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUssTUFBTyxHQUF1RCxHQUFyRCxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUksSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBUSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFHLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFHLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsRUFBRyxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFDdGYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQXdCLEdBQXRCLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFLLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDcGYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBeUMsR0FBdkMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQU0sR0FBRyxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEtBQUssR0FBSSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssRUFBRSxHQUFJLENBQUMsQ0FBQyxNQUFNLENBQW9CLEdBQW5CLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU8sR0FBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQW9DLE9BQWxDLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxPQUFRLE9BQU8sR0FBRSxDQUFDLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxLQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsT0FBTyxHQUFFLENBQUMsSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLEtBQU0sRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUksT0FBTyxFQUN2ZixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUEyQixHQUExQixFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUssR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLEdBQUcsR0FBSyxpQkFBa0IsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLEdBQUcsR0FBSyxTQUFtRSxPQUF6RCxFQUFFLEVBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQ3RmLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQ3ZmLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFtQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQU0sR0FBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBNEQsR0FBekQsRUFBRSxHQUFJLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBTSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUssRUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FDdmYsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLHNCQUFzQixFQUFFLDJKQUEySixFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQU0sRUFDMWYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFDM2YsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWtCLE9BQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQVMsRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFVBQVcsR0FBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVcsR0FBRSxJQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsSUFBSSxFQUFFLENBQUMsRUFBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FDMWYsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBcUQsR0FBbkQsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEdBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQU0sRUFBRSxHQUFHLEVBQUUsRUFBYyxPQUFYLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxVQUFVLEVBQUUsRUFBRSxDQUFpQixHQUFoQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWdFLE9BQTlELEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFZLEVBQUUsT0FBTyxFQUM3ZixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBb0QsR0FBOUMsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFhLEdBQVQsRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQU0sQ0FBQyxFQUFHLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxXQUFhLEVBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQVEsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUcsT0FBTyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDN2YsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBbUIsR0FBaEIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFLLEdBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU8sS0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQzVmLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsS0FBUSxHQUFHLElBQUksRUFBRSxFQUFFLElBQU8sRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEtBQVEsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFrSSxPQUEzSCxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQU0sRUFBRSxJQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBTSxFQUFFLElBQUksRUFBRSxJQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQy9mLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFNLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUNuZ0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUNyZ0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQW1CLEdBQWxCLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQVEsR0FBRyxLQUFNLEVBQUUsR0FBRyxHQUFHLFVBQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsS0FBdUIsR0FBakIsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBSyxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxLQUFLLElBQUssR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTyxHQUFFLEdBQUcsR0FBRyxFQUFJLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUssRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFRLEVBQUUsR0FBRyxHQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxPQUFPLEVBQUUsR0FBRyxHQUFHLFdBQWEsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxPQUFPLEVBQUUsR0FBRyxHQUFHLFdBQVUsRUFBRSxHQUFHLElBQU8sRUFBRSxFQUFHLEVBQUUsR0FBRyxVQUFVLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUcsRUFBRSxHQUFHLFlBQVksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUNuZ0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFNLEVBQUUsR0FBRyxHQUNuZ0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBMkMsR0FBekMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRyxPQUFPLEVBQXdGLEdBQXRGLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBVSxFQUFFLEVBQUUsRUFBaUIsR0FBZCxHQUFHLEVBQUUsT0FBTyxFQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLEtBQUssRUFBRSxHQUFJLE9BQU8sR0FBRyxHQUFJLE9BQVEsSUFBSSxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLE1BQU8sR0FBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTyxDQUFDLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsS0FBSyxHQUFHLEdBQUksT0FBTyxHQUFHLEdBQUksT0FBUSxJQUFJLEVBQUUsRUFBRyxFQUFFLElBQUksRUFBRSxHQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQ3pnQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxNQUFPLEdBQU0sR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsTUFBTyxHQUFtQyxHQUE3QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFLLElBQUksR0FBSSxFQUFFLElBQU0sTUFBTyxHQUEwRyxHQUFwRyxHQUFHLEdBQUksSUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUksRUFBRSxFQUFHLEVBQUksR0FBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRyxHQUFNLEdBQUcsR0FBSyxNQUFPLEdBQU0sS0FBSyxHQUFHLElBQUssR0FBRyxJQUFLLENBQWlILEdBQWhILEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQTBDLEdBQXBDLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUcsTUFBTyxHQUFPLE1BQU8sR0FDdGdCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLDBCQUEwQixDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQWdGLEdBQS9FLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBSyxFQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBOEUsR0FBNUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFLLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxHQUFHLEdBQUcsTUFBTyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQzFnQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXVDLEdBQXJDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQU8sRUFBRSxDQUFrQixHQUFqQixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBRyxLQUFLLEdBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUMxZ0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBc0csR0FBcEcsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUcsR0FBRyxJQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFNLElBQUksS0FBSyxFQUFFLENBQTBHLEdBQXpHLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBSSxHQUFJLElBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFLLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFHLEdBQUssR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLE1BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQTZCLE9BQTNCLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFTLEVBQzNnQixTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksV0FBVyxDQUFDLEVBQUUsSUFBSSxHQUFJLElBQUksR0FBSSxXQUFXLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxJQUFJLEdBQUksTUFBTSxFQUFFLElBQUksR0FBSSxNQUFNLEVBQUUsR0FBSSxHQUFJLEtBQUssRUFBRSxHQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLFVBQVUsQ0FBQyxFQUFFLElBQUssR0FBSSxFQUFFLElBQUksR0FBSSxDQUFDLEdBQzFnQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTJDLEdBQXpDLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFLLEVBQUUsR0FBRyxHQUF1QixHQUFwQixFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQVEsR0FBRSxJQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUEwSCxPQUF4SCxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBUyxFQUM5Z0IsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBMEYsR0FBakYsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsTUFBTyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFNLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFHLElBQUksR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQzdnQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUE0SCxHQUExSCxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUFJLEVBQUUsR0FBRyxJQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUcsSUFBSyxHQUFHLEdBQUksRUFBRSxHQUFHLElBQUssR0FBRyxHQUFJLEVBQUUsR0FBRyxJQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUcsSUFBSyxHQUFHLEdBQU8sR0FBRyxFQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUksRUFBRSxVQUFVLEdBQUcsRUFBRyxPQUFPLEVBQUUsR0FBRyxHQUFJLEVBQUUsVUFBVSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQXNMLE9BQXBMLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUUsR0FBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLElBQUcsR0FBRyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxFQUFDLEVBQUUsR0FBRSxHQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsSUFBVSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxPQUFPLEVBQzlnQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTJDLEdBQXpDLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxFQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxNQUFPLElBQUksRUFBRSxHQUFJLENBQUMsTUFBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUssSUFBSSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUF3SixHQUF0SixFQUFFLEVBQUcsSUFBSSxFQUFFLEdBQUssSUFBSSxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEtBQUksRUFBRSxHQUFLLElBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxFQUFLLEVBQUcsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFPLElBQUksRUFBRSxHQUFJLENBQUMsR0FDN2dCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBbUIsR0FBYixFQUFFLEVBQUUsRUFBRSxPQUFVLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUNqaEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLElBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBSSxFQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBSSxFQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFDL2dCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBaUUsR0FBL0QsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLEdBQUcsV0FBVyxFQUFFLEtBQUssR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFpQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFDbGhCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVksR0FBVixFQUFFLElBQUksSUFBUSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxTQUFTLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxJQUFjLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNwaEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFrRyxHQUFqRyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxJQUFJLEdBQUksR0FBRyxHQUFJLEdBQUksQ0FBQyxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLE1BQU8sR0FBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFhLE9BQVgsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ3JoQixTQUFTLEVBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxTQUFVLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsTUFBTyxPQUFNLEdBQUksSUFBSSxHQUFHLDJDQUEyQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBUSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQ2xoQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQXFELE9BQXBELEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQVUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsT0FBUSxHQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFXLEdBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFHLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUksR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUNyaEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFrZCxHQUFoZCxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQU0sRUFBRSxFQUFHLE1BQU8sR0FBRyxHQUFHLEdBQUcsRUFBRyxNQUFPLEdBQUUsTUFBTyxHQUN6aEIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxHQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQzVoQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEyQixHQUF6QixFQUFFLEdBQUcsaUJBQWlCLENBQUMsRUFBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFLLEVBQUUsR0FBRyxFQUM1aEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU8sR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFRLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSyxJQUFJLENBQUMsRUFDM2hCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFNLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQThCLE9BQTFCLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFTLEVBQUUsRUFBMkMsR0FBekMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQXNGLEdBQXBGLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLGFBQWEsRUFBRSxDQUFDLE1BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLE9BQU8sYUFBYSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLE9BQU8sYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxJQUFJLEVBQUUsT0FBTyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEdBQUcsR0FBSSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQVUsT0FBUixFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQUUsRUFDN2hCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsR0FBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxPQUFPLEdBQUUsS0FBSSxHQUFHLEVBQUUsRUFBRSxJQUFHLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUUsSUFBSSxFQUFFLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxPQUFPLEdBQUUsS0FBSSxHQUFxQixHQUFsQixFQUFFLEVBQUUsSUFBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUssR0FBRyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBTyxLQUFGLEVBQUssR0FBRyxJQUFJLEdBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBWSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFFLEVBQUUsRUFBRSxPQUFRLEdBQUUsSUFBRyxHQUFHLEVBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRSxLQUFLLFVBQVcsR0FBRyxHQUFHLElBQzVoQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFxQixHQUFqQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFLLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxJQUFJLEVBQUcsTUFBTSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFDL2hCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFDL2hCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF5SCxHQUF2SCxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLEdBQU0sRUFBSyxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEdBQVEsR0FBRyxFQUFHLEdBQUcsRUFBSyxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEdBQUksT0FBTyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBVSxHQUFSLEdBQUcsRUFBRyxHQUFNLEVBQUssS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFLLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFHLE9BQU8sRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQVEsRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNsaUIsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBMkIsSUFBbkIsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBd0IsR0FBakIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQVUsR0FBRyxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQThCLEdBQXZCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQVEsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBZ0MsR0FBekIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQVUsRUFBRSxHQUFHLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEtBQUssR0FBSSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUcsTUFBTyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUNsaUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUErQyxHQUF0QyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUksQ0FBQyxFQUNuaUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUErQixHQUE3QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFLLElBQUksR0FBSSxFQUFFLElBQU0sT0FBdUksT0FBaEksRUFBRSxHQUFHLHdCQUF3QixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRyxFQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLGNBQWMsSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUcsT0FBTyxFQUFFLE9BQVEsR0FBRSxHQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUNyaUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBQyxFQUFFLElBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFRLEdBQU4sRUFBRSxFQUFFLEVBQUssRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3JpQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxNQUFNLENBQWtELEdBQWpELEVBQUUsRUFBRyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFNLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUF5QyxHQUF2QyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsR0FBSyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUN4aUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFnRCxPQUE5QyxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQVksRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxFQUFHLENBQUMsQ0FBQyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFHLE9BQU8sRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUcsT0FBTyxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sS0FDdGlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQW9CLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxZQUFhLEdBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUssRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVcsR0FBRSxjQUFjLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsTUFBTSxHQUFJLEVBQUUsR0FBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBSyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQzVpQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQXdELEdBQXZELEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLElBQW1DLEdBQTlCLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQVEsSUFBSSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksQ0FBQyxHQUM1aUIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBVyxHQUFSLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFLLEtBQUssTUFBTSxDQUFDLEVBQUcsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQWlCLEdBQWQsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUssS0FBSyxNQUFNLENBQUMsRUFBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUssS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUM5aUIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBWSxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFFLEVBQUUsQ0FBa0QsR0FBakQsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEtBQUssSUFBSSxHQUFJLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQStELEdBQTVELEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsV0FBWSxFQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBUyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxVQUFXLEVBQUUsR0FBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFPLElBQUksQ0FBQyxNQUFRLElBQUksQ0FBQyxFQUM3aUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQzNpQixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFrTixHQUFoTixFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsSUFBRyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsSUFBRyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsSUFBRyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQStLLE9BQTdLLEdBQUcsSUFBSSxJQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBSSxHQUFHLEdBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBRyxHQUFHLEdBQUUsSUFBRyxFQUFFLElBQUcsR0FBRSxTQUFTLEVBQUUsSUFBRyxHQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUcsR0FBRSxJQUFHLEVBQUUsSUFBRyxHQUFFLE9BQU8sRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBSSxJQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUksSUFBRyxHQUFXLEdBQUcsRUFBRSxFQUFFLEVBQUMsRUFDampCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXNCLEdBQXBCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSwyRkFBMkYsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFDaGpCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFzRixHQUFyRixFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQU0sRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQXlCLEdBQXRCLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUcsTUFBTyxHQUFPLE9BQU8sVUFBVSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBcUMsR0FBbEMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUssR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRyxNQUFPLFdBQWEsR0FBRyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLE1BQU8sUUFBYSxPQUFPLEdBQWtCLEdBQVgsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBeUIsR0FBdEIsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRyxNQUFPLEdBQU8sT0FBTyxNQUFPLFFBQU8sR0FBSSxFQUFFLENBQUMsRUFDampCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLDZCQUE2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQWlDLEdBQXhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQVcsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFDcGpCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWdELE9BQS9DLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQVMsRUFBRSxFQUFFLEVBQUUsT0FBUSxHQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVcsR0FBRSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBNkMsR0FBcEMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRyxPQUFPLEdBQUksRUFBRSxDQUFDLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUNwakIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUErRixHQUE3RixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLElBQUssR0FBSSxFQUFFLEVBQUcsRUFBSyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBdUYsR0FBdEYsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxVQUFXLEVBQUUsR0FBRyxFQUFHLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQU0sR0FBTSxJQUFJLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBSyxDQUFDLEdBQ3ZqQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBeUIsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBUSxLQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsQ0FBQyxFQUN4akIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksR0FBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEdBQUUsT0FBTyxHQUFFLEtBQUksR0FBVSxHQUFQLEdBQUUsR0FBRSxLQUFPLEdBQUksR0FBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEdBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsSUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUMsRUFBUSxHQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsSUFBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxHQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLElBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFDLEVBQVEsR0FBRSxJQUFJLEVBQUUsS0FBTSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUNuakIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxHQUFJLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBdUIsT0FBckIsRUFBRSxFQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFTLEVBQUUsT0FBUSxHQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUksRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFJLEVBQUUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUksRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUksRUFDM2pCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFRLEdBQU4sRUFBRSxFQUFFLEVBQUssSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsS0FBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsSUFBSyxDQUFLLE9BQUosRUFBRSxFQUFTLEVBQUUsT0FBUSxPQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsVUFBVyxPQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBYyxHQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFhLEdBQUcsSUFBSyxHQUFHLElBQUssR0FBRyxHQUFLLE9BQU8sRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBUyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMzakIsU0FBUyxFQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFxQixHQUFsQixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFtSCxHQUFoSCxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsTUFBTyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxXQUFZLEVBQUcsRUFBRSxHQUFHLENBQUMsTUFBTyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUFTLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDLFVBQVcsRUFBRSxHQUFHLEVBQVksR0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFPLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFRLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUMzakIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksTUFBTSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQTZDLEdBQTFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFDN2pCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFJLEVBQUcsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM5akIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUEyQixHQUExQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sU0FBUyxJQUFJLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFLLENBQUMsR0FBRyxFQUFHLElBQUksRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBSSxFQUFFLElBQzVqQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyw2QkFBNkIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBVSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFDbmtCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBVyxHQUFSLEVBQUUsR0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUssS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFVLEdBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQ25rQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxnQ0FBZ0MsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFtQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxVQUFXLFdBQVksR0FBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUssRUFBRSxHQUFHLEVBQ3ZrQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcseUJBQXlCLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBTSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQW1DLEdBQWxDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLFNBQVMsRUFBRSxHQUFLLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLE1BQU8sR0FBRyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxHQUFHLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQ3hrQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUE4QyxPQUE3QyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQVMsRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsSUFBSSxjQUFjLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsSUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSyxJQUFHLEVBQUUsR0FBRyxFQUFFLEtBQU0sRUFBRSxNQUFNLElBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsSUFBSSxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFDemtCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBK0IsR0FBN0IsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBSyxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFtQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQU0sSUFBSSxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLDBJQUE2SSxDQUFDLFVBQVksR0FBRyxJQUFLLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFtQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQU0sSUFBSSxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLHdJQUEySSxDQUFDLEdBQzFrQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksWUFBWSxFQUFFLEVBQUUsd0NBQTJDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUcsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFrQixFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUEwRCxPQUFsRCxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQVMsRUFDOWtCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQTJDLEdBQTFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBOEUsR0FBN0UsR0FBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTyxHQUFFLEVBQUUsRUFBRSxHQUE0RCxHQUExRCxJQUFHLEdBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFDLEdBQU0sR0FBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFLLElBQUksQ0FBQyxFQUFrQyxPQUEvQixHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFTLEVBQy9rQixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBcUIsT0FBbEIsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBVSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLElBQUcsRUFBRSxDQUFDLEVBQVUsR0FBUixFQUFFLEdBQVMsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBa0MsR0FBaEMsRUFBRSxJQUFHLENBQUMsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFNLEVBQUUsR0FBUyxFQUFFLEdBQUcsSUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBaUIsR0FBZCxFQUFFLEdBQUssRUFBRSxHQUFRLEdBQUcsR0FBSSxFQUFFLEtBQUksR0FBRyxFQUFFLElBQUcsRUFBRSxFQUFFLEdBQUssR0FBRyxNQUE0QyxRQUFyQyxFQUFFLElBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFVLFVBQVcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEdBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLE9BQU8sSUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUcsRUFBRSxDQUFDLEVBQUUsRUFBMEMsT0FBdkMsSUFBSSxFQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQVcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUNqbEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRyxPQUFPLEVBQWMsR0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRSxDQUFxQyxHQUFwQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUssR0FBRyxFQUF3QyxPQUFyQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFnQyxHQUEvQixFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFHLE9BQU8sR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBa0MsT0FBL0IsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFTLEVBQ2xsQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEtBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUNwbEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFzRSxPQUFyRSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLE9BQVEsR0FBRSxHQUFHLEdBQUksRUFBRSxJQUFLLFVBQVcsR0FBRSxHQUFHLEdBQUksRUFBRSxJQUFLLFVBQVcsR0FBRSxHQUFHLEdBQUksRUFBRSxJQUFLLGNBQWMsR0FBRyxHQUFJLEVBQUUsSUFBTSxHQUFHLEVBQUUsRUFBRyxHQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFDLEVBQUUsR0FBSSxFQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsTUFBTyxHQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDcGxCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLElBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRSxLQUFLLEdBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFvQixHQUFqQixFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFNLElBQUksRUFBRSxHQUFHLEtBQU0sSUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFHLENBQUMsSUFBSSxRQUFRLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsR0FBRyxLQUFNLEtBQUssRUFBRSxHQUFHLEtBQU0sSUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFHLENBQUMsSUFBSSxRQUFRLEdBQUksRUFBRSxDQUFDLFdBQVEsR0FBSSxFQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUN2bEIsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLENBQUMsR0FBRyxFQUFHLE9BQU8sRUFBRSxPQUFPLEdBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxPQUFRLEdBQUUsQ0FBQyxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFnRCxHQUEvQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFHLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBcUIsR0FBbEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFLLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFBSSxPQUFPLElBQUksS0FBTSxHQUFFLENBQUMsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQWtELEdBQS9DLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUcsT0FBTyxFQUFtQixHQUFoQixFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFLLEdBQUksR0FBSSxDQUFDLEVBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQXFCLEdBQWxCLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBSyxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRyxPQUFPLEdBQUssT0FBTyxJQUFJLFNBQVUsT0FBTyxNQUNsbEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTyxHQUFvRCxHQUE5QyxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBSyxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQWEsR0FBVCxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBTSxDQUFDLEVBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsV0FBYSxFQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxNQUFPLE9BQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxPQUFPLEdBQUksRUFBRSxDQUFDLEVBQ3hsQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksR0FBRyxFQUFHLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFRLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxJQUFJLEdBQUcsRUFBRyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUN4bEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBNkQsR0FBNUQsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFtQixHQUFqQixFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBSyxFQUFFLEVBQUUsTUFBTyxVQUFrQyxHQUF6QixFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUcsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDemxCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFvQyxHQUFsQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBUSxLQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLENBQUMsRUFBRyxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUMzbEIsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksS0FBSyxJQUFJLEVBQUUsSUFBSyxFQUFFLElBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFJLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFHLElBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxHQUFHLElBQUksR0FBSSxHQUM5bEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBa0QsR0FBakQsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUssRUFBRSxDQUE2QixHQUE1QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFNLEVBQUcsU0FBUyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBK0IsR0FBdEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsZUFBZ0IsSUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQStCLEdBQXRCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLGVBQWdCLElBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sS0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQy9sQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQzdsQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcseUJBQXlCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBK0IsR0FBN0IsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBSyxJQUFJLEdBQUksRUFBRSxJQUFNLE9BQU8sRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxPQUFRLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxNQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsVUFBWSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sT0FBTyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxNQUFTLFFBQU8sRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxPQUFRLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFDbG1CLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUNubUIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBOEMsR0FBN0MsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBa1ksT0FBL1gsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBUyxFQUNwbUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDcm1CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBcUQsR0FBNUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFLLElBQUksR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFXLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQTBDLEdBQXZDLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQ3ZtQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxHQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUUsSUFBSSxDQUEwSyxHQUF6SyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBSyxHQUFFLEVBQUcsR0FBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBSyxLQUFLLE1BQU0sR0FBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFDem1CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUksRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQWtELEdBQWhELEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxDQUFDLElBQ3ZtQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFpQixHQUFmLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBVSxFQUFFLEVBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBcUIsR0FBaEIsR0FBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQXFCLEdBQXBCLEdBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFNLElBQUksRUFBRSxHQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsSUFBSSxHQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQzFtQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLE1BQU0sR0FBSSxFQUFFLEVBQUcsRUFBRyxPQUFPLEtBQUssR0FBRyxFQUFFLFFBQVEsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sT0FBTyxLQUFLLE9BQU8sRUFBRSxFQUFFLE9BQVEsR0FBRSxPQUFPLEdBQUksRUFBRSxFQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxTQUFVLEdBQUUsR0FBRyxDQUFDLE9BQU8sR0FBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLENBQUMsUUFBUSxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sU0FBVSxPQUFNLEdBQUksQ0FBQyxNQUFPLEdBQUUsR0FBRyxDQUFDLE9BQU8sR0FBSSxDQUFDLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLFNBQVUsT0FBTSxHQUFJLENBQUMsTUFBTyxHQUFFLE9BQU8sTUFBTyxHQUFTLE9BQVAsSUFBSSxDQUFDLEVBQVMsSUFBSSxFQUFFLENBQUMsTUFBTyxHQUFTLE9BQVAsSUFBSSxDQUFDLEVBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQWtCLE9BQWpCLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBUyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUcsT0FBTyxTQUFVLE9BQU0sR0FBSSxDQUFDLFVBQVUsTUFBTSxHQUFJLElBQUksR0FBSSwwQ0FBMEMsQ0FBQyxHQUMzbUIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBUSxHQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBTSxHQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBTSxPQUFPLE9BQU8sT0FBTyxPQUFPLEdBQUcsT0FBTyxFQUFFLEVBQUUsV0FBWSxNQUFPLEdBQWdCLE9BQVQsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUFFLE9BQVEsR0FBRSxPQUFPLEdBQUcsTUFBTSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxHQUFHLE1BQU0sRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFRLEdBQUUsT0FBTyxHQUFHLE1BQU0sRUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsUUFBVSxHQUFFLE9BQU8sR0FBRyxNQUFNLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxHQUFHLE1BQU0sRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUcsTUFBTSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLENBQUMsR0FBRyxJQUFJLE9BQVEsR0FBRSxPQUFPLEdBQUcsTUFBTSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFPLEdBQUUsT0FBTyxHQUFHLE1BQU0sRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsVUFBVSxPQUFPLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQzVtQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFxQixHQUFsQixFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBNEIsR0FBM0IsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQXNDLE9BQXBDLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssQ0FBQyxFQUFTLEdBQUcsT0FBTyxFQUMvbUIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUEwQixHQUFqQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFRLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxJQUM5bUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBaUQsR0FBL0MsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUE0RixHQUEzRixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsSUFBSSxFQUFFLENBQUMsR0FBTSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFLLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNubkIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBaUQsR0FBL0MsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBOEQsR0FBN0QsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBTSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFLLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNubkIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUF5RixHQUF2RixFQUFFLEdBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUUsRUFBSyxFQUFFLEVBQUUsR0FBTSxHQUFHLEVBQUUsRUFBRSxFQUFHLE1BQU8sR0FBTSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRyxHQUFFLEVBQUUsRUFBRyxNQUFPLEdBQWlFLEdBQTNELEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLEtBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUcsTUFBTyxHQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU8sS0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUF3RCxHQUFuRCxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFFLE9BQU8sRUFBRyxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFLLE9BQU8sRUFDbm5CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQStCLEdBQTVCLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBSyxFQUFFLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQXFCLEdBQWpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUssR0FBRyxFQUFHLGFBQWMsTUFBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLFVBQVksRUFBRSxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUksTUFBTSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUksS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxHQUFJLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3BuQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBb0UsR0FBbkUsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlHLEdBQWhHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBSSxPQUFPLEVBQUUsRUFDcm5CLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxHQUFHLE9BQU8sS0FBSyxFQUFFLEdBQUcsSUFBRyxDQUFDLEdBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFHLENBQUMsR0FBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxJQUFLLEdBQUksRUFBRSxJQUFLLEVBQUcsRUFBRSxHQUFJLEtBQUssR0FBSSxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUksS0FBSyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUksS0FBSyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUksS0FBSyxHQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxJQUFJLEtBQUssR0FBSSxFQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxLQUFLLEdBQUksRUFBRyxFQUFFLEdBQUksS0FBSyxHQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLEtBQUssR0FBSSxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUksS0FBSyxHQUFJLEdBQUksR0FBSSxFQUFHLEVBQ3JuQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFXLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLEdBQWdDLEdBQTdCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFFLENBQXVDLEdBQXRDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQVEsR0FBSSxFQUFFLENBQUMsR0FBaUMsR0FBOUIsRUFBRSxJQUFLLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssQ0FBQyxHQUF1QixHQUFwQixFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBSyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQU0sRUFBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBZSxRQUFWLEdBQUcsRUFBRSxHQUFHLEVBQVMsR0FBRyxPQUFPLEVBQ3RuQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxTQUFTLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLFFBQVEsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxRQUFRLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLE9BQU8sRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsY0FBYyxHQUFHLEdBQUksRUFBRSxpQkFBaUIsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxhQUFhLEdBQUcsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFDdG5CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBeUQsR0FBdkQsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsT0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBUyxFQUFFLEVBQUUsT0FBUSxHQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBRyxVQUFXLEdBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsVUFBVyxHQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVcsR0FBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQU0sSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUUsR0FBaEUsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUM3bkIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBRyxHQUFJLE1BQU0sR0FBSSxJQUFJLEdBQUksbUJBQW1CLENBQUMsQ0FBQyxFQUFFLElBQUksS0FBSyxHQUFHLE1BQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFNLE1BQU0sR0FBSSxJQUFJLEdBQUksdUJBQXVCLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxHQUFHLE1BQU0sR0FBSSxHQUFJLEVBQUUsWUFBWSxDQUFDLE1BQU0sR0FBRyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFJLEdBQUksRUFBRSxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLG1CQUFtQixDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFpRSxNQUE5RCxFQUFFLEdBQUcsS0FBSyx5QkFBeUIsb0JBQW9CLElBQUksQ0FBQyxFQUFRLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxNQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUssTUFBTSxHQUFJLElBQUksR0FBSSxrQkFBa0IsQ0FBQyxDQUFDLEVBQzduQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQW1GLEdBQWpGLEVBQUUsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUssS0FBSyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFDaG9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQW1GLE9BQWhGLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBVSxFQUFFLEVBQUUsT0FBUSxHQUFFLElBQUksRUFBRSxJQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsSUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxJQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVcsR0FBRSxJQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQXFCLE9BQWpCLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQVMsRUFDam9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsTUFBTSxFQUFFLFFBQVEsRUFBRyxPQUFPLEtBQXlCLEdBQXBCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFNLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRyxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBeUQsR0FBckQsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQVUsR0FBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEdBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFHLE9BQU8sS0FBSyxFQUFFLEVBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFHLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUE4QyxHQUExQyxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxHQUFHLE1BQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFxQixHQUFsQixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBVSxHQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsR0FBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUcsT0FBTyxLQUFLLEVBQUUsSUFBTSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUNwb0IsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksQ0FBcUMsR0FBcEMsR0FBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUcsSUFBSyxFQUFFLEVBQUUsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxHQUFHLElBQUssRUFBRSxHQUFHLE9BQU8sYUFBYSxDQUFDLElBQUksTUFBTyxHQUFFLE9BQVksR0FBRSxHQUFHLE9BQU8sYUFBYSxDQUFDLEVBQUUsU0FBUyxHQUFHLEdBQUksc0JBQXNCLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFNBQVMsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsR0FBRyxJQUFLLEVBQUUsR0FBRyxNQUFNLE1BQU8sR0FBRSxPQUFXLEdBQUUsR0FBRyxPQUFPLGFBQWEsQ0FBQyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFHLENBQUMsRUFDdG9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRyxJQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFFLEVBQUUsR0FBRyxFQUFDLEdBQUcsS0FBSyxHQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFHLElBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUUsRUFBRSxHQUFHLEVBQUMsR0FBRyxLQUFLLEdBQUUsRUFBRSxJQUFJLElBQUksR0FBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBa0IsR0FBakIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBTSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBZ0IsR0FBVixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUNwb0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQW1VLEdBQWpVLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEtBQUssS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUssSUFBSSxHQUFJLEVBQUUsTUFBTyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFHLEVBQUUsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUssR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRyxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLE1BQU8sTUFBSyxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUN4b0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBaUMsR0FBeEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQVEsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQWlDLEdBQXhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFJLENBQUMsR0FBRyxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVEsRUFBRSxJQUFJLEVBQUUsT0FBVSxLQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFpQyxHQUF4QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBSSxDQUFDLEdBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRyxhQUFjLEdBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFRLEVBQUUsSUFBSSxFQUFFLEdBQU0sSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFDdG9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQzlvQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRyxPQUFPLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQThDLEdBQTNDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFLLEVBQUUsQ0FBMkIsR0FBMUIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQU0sRUFBRyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUE0QixHQUExQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxJQUMzb0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFLLEdBQUksR0FBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxNQUFPLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLE1BQU8sRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFrRCxHQUF6QyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxJQUFLLEVBQUUsR0FBRyxJQUFLLEVBQUUsTUFBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEdBQUcsRUFDOW9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsd0JBQXdCLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxJQUFPLEdBQUcsSUFBSyxHQUFHLElBQUssR0FBRyxNQUFPLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFPLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSyxHQUFHLElBQUssR0FBRyxJQUFLLElBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxJQUFLLEdBQUcsSUFBSyxHQUFHLEtBQU0sSUFBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFDL29CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQU0sR0FBSixFQUFFLEVBQUssRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEtBQUssT0FBTyxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQWdELEdBQXhDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRyxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsRUFBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxVQUFVLEdBQUcsRUFBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxVQUFVLEdBQUcsRUFBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU8sR0FBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxVQUFXLEVBQUUsRUFBRyxHQUFHLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBRyw2Q0FBNkMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFHLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMvb0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFFLElBQUksQ0FBQyxJQUFJLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBTSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUNocEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixPQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFTLEVBQUUsT0FBUSxPQUFPLE9BQU8sR0FBRSxJQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSyxFQUFLLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFLLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksT0FBTyxFQUFFLE9BQVEsT0FBTyxHQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUM5b0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBUSxHQUFxSCxHQUFuSCxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsSUFBSSxHQUFLLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLENBQTZDLEdBQTVDLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFHLE9BQU8sRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFzQixHQUFwQixFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUssRUFBRSxDQUE2QyxHQUE1QyxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsVUFBVyxHQUFvRCxPQUFsRCxFQUFFLEVBQUcsRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxFQUFFLE9BQVEsR0FBRSxPQUFPLEVBQUUsRUFBRSxNQUFPLEdBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxPQUFPLElBQUksQ0FBQyxFQUFFLEVBQ2hwQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsR0FBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRyxJQUFHLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQ2xwQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUksR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBaUMsR0FBN0IsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUksR0FBRSxFQUFHLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUMsRUFBRyxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBd0MsR0FBcEMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFLLEVBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFHLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFFLEVBQUUsR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3ZwQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXFJLEdBQW5JLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUssR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLE1BQU8sRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFNLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQU8sSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQTJCLEdBQXZCLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQThCLE9BQTNCLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFVLElBQUksR0FBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFLLEdBQU0sRUFDenBCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxJQUFJLEVBQUcsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsRUFBRSxHQUFHLE1BQU0sR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFLLEdBQU0sRUFBRSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDMXBCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUUsSUFBSSxFQUFFLEdBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxDQUFDLEdBQWEsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBa0IsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSyxTQUFTLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQWUsT0FBYixFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBUyxFQUFFLEVBQzFwQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxFQUFHLElBQUksRUFBRSxHQUFLLElBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxRQUFRLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBRyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFtRixHQUFqRixHQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRyxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLEdBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxNQUFRLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFJLEVBQUUsRUFBRyxJQUFJLEVBQUUsR0FBSyxJQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUN0cEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSSxHQUFHLEdBQUcsS0FBSyxJQUFHLElBQUcsRUFBRSxHQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFFLElBQUcsR0FBSSxFQUFFLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFHLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxHQUFHLEtBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsR0FBRyxJQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsR0FBSyxNQUFPLEdBQWlMLEdBQTNLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQzNwQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSyxFQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUssRUFBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFDLEVBQUUsR0FBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzVwQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQWtELEdBQS9DLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBTSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQU0sR0FBSSxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFJLEVBQUUsR0FBRyxFQUM5cEIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUM5cEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBSyxHQUFLLEdBQUssRUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBSyxHQUFLLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQU0sR0FBSyxHQUFLLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBSyxHQUFNLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBTSxHQUFLLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQU0sR0FBSyxHQUFLLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQU0sR0FBSyxHQUFNLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBSyxHQUFLLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBSyxHQUFLLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBSyxHQUFLLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBSyxHQUFLLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBSyxHQUFLLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBSyxHQUFLLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUssR0FBSyxHQUFLLEVBQUksRUFDanFCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxDQUFDLEVBQTRCLEdBQTFCLEVBQUUsSUFBSyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBb0IsR0FBbEIsRUFBRSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQU0sT0FBTyxLQUFnQixHQUFYLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFvQixHQUFsQixFQUFFLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBRyxHQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFxQixHQUFqQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUcsR0FBRyxDQUF1QixHQUF0QixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEdBQUcsS0FBTSxPQUFPLFFBQVMsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEdBQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksQ0FBQyxFQUFJLE1BQU0sR0FBSSxJQUFJLEdBQUksbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBaUIsT0FBZixFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBUyxHQUFHLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFJLEdBQUcsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUNwcUIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFRLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFRLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFHLElBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUcsSUFBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUF3QixHQUF2QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLFNBQVMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FDNXBCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFRLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFRLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQXdCLEdBQXZCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRyxTQUFTLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsS0FDN3BCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBNm5CLE9BQTNuQixFQUFFLEdBQUksRUFBRSxHQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFLLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFLLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFLLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsTUFBTyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBTSxFQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFJLEVBQUUsSUFBTyxFQUFFLElBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsTUFBTyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBTSxLQUFLLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFVLEVBQ3RxQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsdVJBQXVSLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQ3ZxQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUEwRCxHQUFqRCxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQVUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEdBQUcsRUFBRyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBb0IsR0FBbkIsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLElBQUksR0FBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBMEIsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsQ0FBQyxVQUFXLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLElBQUksR0FBSSxFQUFFLENBQUMsRUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVUsT0FBTyxLQUNwcUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxvQ0FBb0MsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsSUFBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQUssR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQ3ZxQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQVcsR0FBSixFQUFFLEVBQUssRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEtBQUssT0FBTyxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQWdELEdBQXhDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxhQUFhLEdBQUcsR0FBRyxHQUFHLEVBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsVUFBVSxHQUFHLEVBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLE1BQU8sR0FBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxVQUFXLEVBQUUsRUFBRyxHQUFHLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBRyw0Q0FBNEMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFHLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN6cUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBMEgsR0FBeEgsRUFBRSxHQUFJLEVBQUUsR0FBTSxFQUFLLEVBQUUsR0FBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUUsR0FBSSxFQUFDLEdBQUcsR0FBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBSSxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFHLEdBQUcsR0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFLLEdBQUUsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxHQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFDLE1BQU8sR0FBRyxHQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUksR0FBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUE2QyxHQUExQyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUcsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFPLElBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzFxQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxPQUFPLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksR0FBbUssR0FBaEssRUFBRyxHQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUssRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsR0FBSSxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFLLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUssRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQStCLEdBQTVCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUcsR0FBRyxJQUFJLENBQUMsRUFBRyxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsT0FBVSxHQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUF5QixHQUF0QixFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLElBQVMsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLElBQ3ZxQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUE2TixHQUFwTixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBSSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUksRUFBRSxFQUFHLEVBQUksR0FBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRyxHQUFHLElBQUksR0FBRyxJQUFLLEdBQUcsTUFBTyxFQUFFLEVBQUUsR0FBRyxJQUFNLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSyxHQUFHLElBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFNLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRSxHQUFHLENBQUMsR0FBRyxJQUFLLEdBQUcsS0FBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLElBQUksSUFBSSxFQUFDLENBQUMsSUFDenFCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBTSxHQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLFNBQVMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFNLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsU0FBUyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLE1BQU0sR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUssR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxNQUMxcUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxNQUFPLEdBQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFxRixHQUFqRixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQVUsR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxXQUFXLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFjLEdBQVgsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLE9BQVUsR0FBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFVLEdBQUcsRUFBRSxDQUFrQixHQUFqQixFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBa0MsT0FBaEMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFjLEVBQUUsRUFDbHJCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFpQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUcsU0FBdUgsR0FBOUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxDQUF1RixHQUF0RixFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFLLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQy9xQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFvRSxHQUFuRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUssR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUEyRCxHQUF4RCxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxPQUFPLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFNLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUNockIsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFvSCxJQUFqSCxJQUFJLEVBQUUsSUFBRyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksSUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsa0JBQWtCLEdBQUcsRUFBRSxFQUFFLGtCQUFrQixFQUFHLEVBQUUsRUFBRyxHQUFHLFNBQVcsR0FBRyxTQUFVLEVBQUUsSUFBSSxJQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQWlCLEdBQWIsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsR0FBRyxHQUFHLENBQUssS0FBRixFQUFLLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQU0sT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFHLEVBQUUsR0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBUSxHQUFFLEdBQUcsT0FBTyxhQUFhLENBQUMsSUFBSSxFQUFHLE9BQU8sRUFBRSxFQUNyckIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFHLElBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksSUFBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFHLElBQUksR0FBRyxFQUFFLEdBQUksSUFBRyxJQUFJLEdBQUcsRUFDdnJCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQU0sT0FBTyxHQUFrQixHQUFkLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssR0FBRyxLQUFNLE1BQU8sUUFBUSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEdBQUcsT0FBTyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsT0FBTyxNQUFPLEdBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQVEsSUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFPLElBQUksRUFBRSxHQUFHLEtBQUssR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFHLE9BQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUN2ckIsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFRLEdBQU4sRUFBRSxFQUFFLEVBQUssR0FBRyxLQUFNLEVBQUUsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFJLFVBQU8sRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBSyxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRyxJQUFJLEdBQUksRUFBRSxFQUFHLElBQUksR0FBSSxFQUFFLEVBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRyxJQUFJLEdBQUksRUFBRSxFQUFHLElBQUksR0FBSSxFQUFFLEVBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRyxJQUFJLEdBQUksRUFBRSxFQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxHQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUssR0FBSixFQUFFLEVBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEdBQUcsR0FBa0UsR0FBOUQsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQVEsR0FBSSxFQUFFLEVBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRyxJQUFJLEdBQUksRUFBRSxFQUFHLElBQUksR0FBSSxFQUFFLEVBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRyxJQUFJLEdBQUksRUFBRSxFQUFHLElBQUksR0FBSSxFQUFFLEVBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRyxFQUFHLEVBQUUsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFFBQVMsR0FBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUM3ckIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFtRCxHQUFqRCxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQU0sR0FBRyxJQUFxQixHQUFqQixFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsRUFBOEYsT0FBM0YsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFVLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTyxDQUF5QyxHQUF4QyxFQUFFLEdBQUcsS0FBSyxPQUFPLElBQUksSUFBSSxPQUFPLEtBQUssR0FBTSxJQUFJLEtBQUssT0FBTyxhQUFhLENBQUMsQ0FBQyxHQUF3QixHQUFyQixFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFHLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBTyxNQUFKLEVBQUUsRUFBUSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsTUFBTyxPQUFNLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBeUMsT0FBdEMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBVSxFQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFHLE9BQU8sRUFBRyxHQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFHLE9BQU8sS0FDNXJCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyx5QkFBeUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQW1CLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFrRCxHQUEvQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQU0sR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRyxHQUFHLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU8sR0FBRSxHQUFHLEVBQUUsRUFBRSxHQUFLLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDanNCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBOEosR0FBNUosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxJQUFLLEdBQUcsSUFBUSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QyxHQUFoQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFHLElBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFTLEdBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQTBELE9BQXhELEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRyxHQUFVLEVBQ2xzQixTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBMEIsR0FBeEIsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxLQUE2QyxJQUF2QyxJQUFJLEdBQUcsR0FBSSxFQUFFLE1BQU8sSUFBSSxHQUFHLEdBQUksRUFBRSxLQUFTLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsV0FBWSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxLQUF5RCxHQUFwRCxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxLQUFTLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsV0FBWSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUssSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFHLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksT0FBTyxFQUNyc0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFNLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQStOLEdBQTNOLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUssR0FBRyxHQUFPLEtBQUYsRUFBSyxFQUFFLEVBQUcsTUFBUSxFQUFFLEVBQUcsRUFBRSxHQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBTSxFQUFFLElBQUksRUFBRSxJQUFNLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFDdnNCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE4QixHQUE1QixFQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFHLE9BQU8sS0FBYSxHQUFSLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFzQyxHQUFyQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBSyxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxJQUFNLE9BQU8sRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBUyxRQUFPLEVBQUUsT0FBUSxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUksRUFDN3NCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxHQUFHLEdBQUcsR0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLElBQUssSUFBSSxFQUFHLEdBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFPLENBQUMsR0FBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUUsR0FBRSxNQUFNLEVBQUUsSUFBSSxHQUFFLEdBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEdBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUssRUFBRSxLQUFLLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxFQUFFLEdBQUcsSUFBSSxHQUFJLEdBQUUsR0FBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBSSxHQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFFLEVBQUUsRUFBRSxHQUFHLEtBQzdzQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUF1ZixHQUF0ZixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUksRUFBRSxFQUFHLEVBQUksR0FBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRyxHQUFHLEVBQUUsSUFBTSxHQUFHLEtBQU0sRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUssR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsRUFBRSxHQUFLLEdBQUcsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxHQUFNLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUMvc0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBeUMsR0FBdkMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBSyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBa0IsT0FBaEIsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBc0MsT0FBbkMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBUyxFQUNsdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUEyTyxHQUF6TyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsRUFBRSxJQUFJLEdBQUksR0FBRSxFQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksRUFBRSxFQUFDLEVBQUUsR0FBRyxHQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUMsRUFBRSxHQUFFLElBQUksR0FBSSxFQUFFLEVBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFFLEVBQUMsRUFBRSxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFFLEdBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQU0sR0FBRSxFQUFFLEVBQUUsSUFBTyxNQUFLLEdBQUUsR0FBRyxFQUFFLEVBQXdDLEdBQXJDLEVBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBRyxHQUFFLEVBQUUsRUFBSyxHQUFHLEdBQUcsRUFBRyxFQUFFLEdBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRSxFQUFFLEVBQUUsT0FBUyxHQUFFLEdBQXNCLEdBQWhCLEVBQUUsR0FBTSxHQUFFLEVBQUUsRUFBRSxJQUFPLE1BQUssR0FBRSxHQUFHLEVBQUUsRUFBd0MsR0FBckMsRUFBRSxHQUFHLEdBQUUsRUFBRSxJQUFJLEdBQUcsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFLLEVBQUcsRUFBRSxHQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFDLE9BQVEsR0FBRSxHQUFNLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQy90QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQXVCLEdBQXRCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUssR0FBRSxFQUFFLFFBQVEsRUFBRyxTQUFTLEVBQUUsSUFBSSxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFzQixHQUFyQixFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBdUUsR0FBcEUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxVQUFXLEdBQUUsS0FBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBMkMsR0FBekMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBSyxHQUFHLEVBQUcsR0FBSSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsTUFBTyxJQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBVyxHQUFQLEVBQUUsS0FBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBUSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQzl0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE4QixHQUE1QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFNLEVBQUcsT0FBd0MsR0FBakMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxNQUFPLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBSSxFQUFFLEdBQUcsR0FBRyxNQUFNLEdBQUksRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFLLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFLLEdBQUcsRUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQThCLEdBQTVCLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUssRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsTUFBTyxJQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUNodUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFLLEVBQW1ELEdBQWpELEVBQUUsR0FBRyxFQUFFLHlCQUF5QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQXlDLEdBQXZDLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBSyxLQUFLLEtBQUssR0FBRSxHQUFFLEdBQUUsRUFBQyxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxHQUMvdEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBcUksR0FBbkksRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUssRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBUSxHQUFILEdBQU0sTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUcsTUFBTyxHQUFxZSxPQUEvZCxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBRyxFQUFFLElBQUcsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBRyxFQUFFLElBQUcsR0FBRyxHQUFRLEdBQUcsRUFBRyxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQVEsR0FBSCxHQUFNLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQVMsR0FBRyxFQUFHLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBVSxHQUFHLEVBQUcsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFRLEdBQUgsR0FBTSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxLQUFVLEdBQUcsRUFBRyxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQVcsRUFDdHVCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQXVDLEdBQXJDLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUcsR0FBRSxHQUFHLFdBQVcsRUFBRSxHQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLFlBQVksR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsWUFBWSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxZQUFZLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLFlBQVksR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsWUFBWSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxZQUFZLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLFlBQVksR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsUUFBUyxHQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLFdBQVcsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEdBQU0sR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEdBQUksQ0FBQyxXQUFXLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLE9BQU8sV0FBWSxHQUFJLEVBQUUsRUFBRyxFQUFFLE9BQU8sV0FBVyxHQUFJLEVBQUUsRUFBRyxFQUFFLE9BQU8sV0FBVyxHQUFJLEVBQUUsRUFBRyxFQUFFLE9BQU8sV0FBVyxHQUFJLEVBQUUsRUFBRyxFQUFFLE9BQU8sV0FBVyxHQUFJLEVBQUUsRUFBRyxFQUFFLE9BQU8sV0FBVyxHQUFJLEVBQUUsRUFBRyxFQUFFLE9BQU8sV0FBVyxHQUFJLEVBQUUsRUFBRyxFQUFFLE9BQU8sR0FBSSxPQUFPLEtBQ251QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBSSxHQUFFLEVBQUUsRUFBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxFQUFFLENBQUMsRUFBRSxLQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFDLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUUsR0FBTSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBTSxHQUFFLEVBQUMsRUFBRSxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQyxFQUE0QixPQUExQixFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUN2dUIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFHLEVBQUUsR0FBRyxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsS0FBSSxFQUE0RCxHQUF6RCxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBUyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFNLElBQUksR0FBRSxHQUFJLENBQUMsTUFBTSxLQUFJLEdBQUUsR0FBRyxLQUFNLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQU8sR0FBSSxFQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUEwQyxHQUF2QyxHQUFHLEdBQUUsRUFBRSxHQUFJLEdBQUUsS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBQyxFQUFFLEdBQUcsR0FBTSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBYSxHQUFWLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQXNCLEdBQXJCLEdBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFDLEVBQUssR0FBRyxNQUFNLElBQUcsS0FBSyxDQUFZLEdBQVgsR0FBRSxFQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUUsSUFBSSxHQUFFLEdBQUcsS0FBTSxLQUFLLEdBQUksRUFBQyxFQUFHLFNBQVMsRUFBRSxHQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRSxFQUFFLEdBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBQyxJQUFJLEVBQUUsWUFBYyxHQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQ2p1QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBa0MsR0FBaEMsRUFBRSxHQUFHLHdCQUF3QixDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQWMsR0FBWCxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsSUFBSSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQzF1QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFrQixHQUFqQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUcsU0FBUyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBRyxFQUFHLFNBQVMsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFRLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQVEsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLEVBQUcsRUFBSSxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQzF1QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUE2SCxHQUEzSCxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FDMXVCLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxJQUFLLEdBQUksR0FBRSxFQUFFLElBQUksSUFBRyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUcsT0FBTyxFQUFjLE9BQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxPQUFRLEdBQUUsT0FBTyxFQUFFLE9BQVEsR0FBRSxHQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRyxVQUFXLEdBQUUsT0FBTyxFQUFFLE9BQVEsR0FBRSxHQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFHLFVBQVcsR0FBRSxPQUFPLEVBQUUsT0FBUSxHQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUcsVUFBVyxHQUFFLE9BQU8sRUFBRSxPQUFRLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRyxVQUFXLEdBQUUsT0FBTyxFQUFFLE9BQVEsR0FBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFJLE9BQU8sRUFDbHZCLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxJQUFLLEdBQUksR0FBRSxFQUFFLElBQUksSUFBRyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUcsT0FBTyxFQUFjLE9BQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxPQUFRLEdBQUUsT0FBTyxFQUFFLE9BQVEsR0FBRSxHQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRyxVQUFXLEdBQUUsT0FBTyxFQUFFLE9BQVEsR0FBRSxHQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFHLFVBQVcsR0FBRSxPQUFPLEVBQUUsT0FBUSxHQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUcsVUFBVyxHQUFFLE9BQU8sRUFBRSxPQUFRLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLFVBQVcsR0FBRSxHQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRyxVQUFXLEdBQUUsT0FBTyxFQUFFLE9BQVEsR0FBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsVUFBVyxHQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFJLE9BQU8sRUFDbHZCLFNBQVMsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLFVBQVcsR0FBRSxHQUFHLFFBQTJHLEdBQW5HLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBRyxFQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxDQUFDLElBQUssRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQWlCLEdBQWQsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUssRUFBRSxDQUFDLElBQUssRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsUUFBUSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQTJCLEdBQXZCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxDQUFDLElBQUssRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsT0FBUSxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQTRDLEdBQXpDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQU0sRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFPLEdBQUksRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFPLEdBQUksRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUMvdUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBOEMsR0FBN0MsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSyxNQUFNLEdBQUksSUFBSSxHQUFJLG9DQUFvQyxDQUFDLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxLQUNsdkIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXFKLE9BQW5KLEVBQUUsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLEdBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBVyxFQUFFLEVBQUUsT0FBUSxPQUFPLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxHQUFHLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVcsR0FBRSxJQUFJLEVBQUUsRUFBSSxFQUFFLFVBQVcsR0FBRSxJQUFJLEVBQUUsRUFBSyxFQUFFLGNBQWMsR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsSUFBSyxFQUFFLEdBQUcsR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3R2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRSxHQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFFLFdBQWMsRUFBRSxFQUFFLFFBQVEsR0FBdUMsR0FBcEMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBTSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sR0FBRSxHQUFLLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxDQUFDLEVBQ3J2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLE9BQU8sR0FBRSxLQUFJLEdBQUcsRUFBRSxFQUFFLElBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLE9BQU8sRUFBRSxLQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQ3Z2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLFNBQThELE9BQXJELEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQUUsT0FBUSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBTyxPQUFKLEVBQUUsRUFBUyxFQUFFLE9BQVEsT0FBTyxHQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQU0sRUFBSSxVQUFVLEdBQUcsR0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFNLEVBQUksRUFBRyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sU0FBMkMsT0FBbEMsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLE9BQVEsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQ3Z2QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQTRCLEdBQTFCLEVBQUUsRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLEdBQUksRUFBRSxJQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQUssR0FBRSxHQUFHLElBQUssR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBa0IsR0FBakIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsU0FBMEYsR0FBakYsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFrQixHQUFqQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FDNXZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBK0IsR0FBdEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFvQyxHQUFqQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUSxDQUFxQyxHQUFwQyxFQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXNFLEdBQTdELEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFNLEVBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsR0FBRyxLQUFJLEdBQUksRUFBRSxNQUFPLEdBQUksRUFBRSxJQUFLLEdBQUcsRUFBQyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFFLEVBQUUsSUFBbUQsT0FBM0MsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQ3B3QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsV0FBWSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBMEIsR0FBdEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFHLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFnQyxHQUE1QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFLLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxvQkFBb0Isb0JBQW9CLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUNwd0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQXNCLEdBQXBCLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBSyxFQUFHLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUNwd0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBZSxHQUFiLEdBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLElBQUcsS0FBTSxHQUFFLElBQUksR0FBRyxFQUFFLEVBQUcsR0FBRSxHQUFHLEVBQUUsR0FBRSxFQUFFLEtBQUssR0FBRSxHQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBQyxFQUFFLEdBQUcsRUFBRSxHQUFJLENBQUMsRUFBa0wsR0FBaEwsR0FBRSxFQUFHLEdBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUcsR0FBSSxHQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFFLElBQUksRUFBQyxFQUFFLEdBQUUsSUFBSSxHQUFHLEdBQUksR0FBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRSxXQUFXLEVBQUMsRUFBRSxFQUFFLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRyxHQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxFQUFDLEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFFLEdBQUksRUFBQyxFQUFpSixHQUEvSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEtBQUksRUFBRSxJQUFHLElBQUksRUFBRSxFQUFFLEdBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUUsR0FBSSxDQUFDLEVBQUUsS0FBSSxHQUFFLElBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRSxJQUFJLElBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUssRUFBRyxHQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUMsRUFBRSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRSxJQUFJLEVBQUMsRUFBbUQsR0FBakQsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUssRUFBRyxHQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUMsRUFBRSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRSxJQUFJLEVBQUMsRUFDNXdCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBc0IsR0FBckIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksR0FBMEIsR0FBdkIsRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBSyxFQUFFLEVBQUcsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsR0FBSyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQStELE9BQTVELEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQW1DLEdBQWpDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBbUMsR0FBakMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFtQyxHQUFqQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQW1DLEdBQWpDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUMxd0IsU0FBUyxHQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBTyxHQUFMLEVBQUUsR0FBTSxFQUFFLFFBQVEsRUFBRyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQXFILEdBQW5ILEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsUUFBUSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEVBQUssR0FBRyxHQUFxQixHQUFqQixFQUFFLEVBQUUsUUFBUSxHQUFHLEVBQUssR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFRLEdBQUUsRUFBRSxRQUFRLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUE0SyxHQUExSyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxHQUFHLEdBQUksRUFBRSxvQkFBb0IsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBTyxHQUFHLElBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDL3dCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFxRCxPQUFwRCxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFZLEVBQUUsT0FBUSxPQUFPLEdBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxVQUFXLE9BQU8sR0FBRSxHQUFHLEdBQUksRUFBRSxJQUFNLEdBQUcsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLElBQUssR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksVUFBVSxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEdBQUssSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFPLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBTSxNQUFNLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQWtELEdBQXpDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBSyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSSxDQUFDLEVBQUUsR0FBTSxNQUFPLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQWtELEdBQXpDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBSyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSSxDQUFDLEVBQUUsR0FBTSxPQUFRLEdBQUcsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFDN3dCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUMsRUFBRSxJQUFJLEdBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFRLENBQXFDLEdBQXBDLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBSyxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXFDLEdBQTVCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUEyRixHQUF2RixFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUssSUFBRyxHQUFHLElBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUksR0FBSyxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBcUMsR0FBNUIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQTJGLEdBQXZGLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBSyxJQUFHLEdBQUcsSUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSSxJQUFNLEdBQUcsRUFBRSxFQUFHLElBQUcsRUFBRSxJQUFJLEVBQUcsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNqeEIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBQyxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUksR0FBRSxHQUFFLEVBQUMsRUFBRSxHQUFFLEdBQUcsR0FBSSxHQUFFLEdBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUssSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFHLENBQUMsRUFBRSxFQUFFLEdBQThHLEdBQTFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBTSxFQUFLLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxDQUFDLElBQU8sSUFBRyxHQUFJLEVBQUUsR0FBRSxDQUFDLEdBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFDLEVBQUUsSUFBSSxJQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFLLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRyxDQUFDLEVBQUUsRUFBRSxHQUE0SCxHQUF4SCxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQU0sRUFBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLElBQUksQ0FBQyxJQUFPLElBQUcsR0FBSSxFQUFFLEdBQUUsQ0FBQyxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBQyxFQUFFLElBQUksSUFBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQ254QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQStCLEdBQTdCLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBVSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsSUFBSyxHQUFHLEdBQXFWLEdBQWpWLElBQUksRUFBRSxFQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEdBQU0sQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksQ0FBQyxFQUFFLE9BQU8sR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFNLEVBQUcsT0FBTyxFQUFFLEVBQXVSLE9BQXJSLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRyxFQUFFLElBQUksRUFBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRyxFQUFTLEVBQUUsRUFDenhCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVEsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLEdBQUssRUFBRSxHQUFHLEVBQUksRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzV4QixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWMsT0FBWixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUcsQ0FBQyxFQUFFLFVBQVcsV0FBVSxHQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRyxDQUFDLEVBQUcsT0FBTyxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxVQUFXLFdBQVUsR0FBSSxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBRyxPQUFPLEVBQUcsRUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBUSxHQUFFLEVBQUUsSUFBSSxHQUFJLFVBQVcsR0FBRSxFQUFFLElBQUksR0FBSSxVQUFXLEdBQUUsRUFBRSxJQUFJLEdBQUksVUFBVyxHQUFFLEVBQUUsSUFBSSxHQUFJLFVBQVcsR0FBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUcsRUFBRSxVQUFXLEdBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFHLEVBQUUsVUFBVyxHQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFHLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksRUFBRyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUcsQ0FBQyxFQUFFLFVBQVcsV0FBVSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUcsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUM3eEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLE1BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFLLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRyxHQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxHQUE4RCxHQUF2RCxHQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUMsRUFBSyxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsQ0FBQyxNQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLENBQUMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUUsR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUcsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFHLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUssTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBbUIsR0FBaEIsR0FBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFHLEVBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFJLEdBQUUsR0FBSSxHQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLE1BQU8sR0FBRSxJQUFTLEVBQUUsR0FBRyxFQUNoeUIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBZ0MsR0FBOUIsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFLLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLElBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLElBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSyxFQUFFLEVBQUssS0FBSyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUssRUFBRSxFQUFLLEtBQUssTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ2p5QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRyw4QkFBOEIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxHQUFFLElBQUksR0FBSSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFDLEVBQUUsR0FBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLFNBQVMsSUFBSSxHQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUcsU0FBUyxJQUFJLEdBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsSUFBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBQyxFQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsSUFBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBQyxJQUFLLElBQUksRUFBRSxJQUFJLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDcnlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxLQUFLLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxFQUFHLEdBQUcsS0FBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUFHLENBQXFDLEdBQXBDLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFHLFNBQVMsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFzRSxHQUFyRSxFQUFFLEdBQUcsRUFBRyxHQUFFLEVBQUUsRUFBSSxHQUFFLEVBQUUsRUFBRyxHQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFLLEVBQUssS0FBSyxJQUFJLEdBQUUsQ0FBQyxFQUFFLElBQUssU0FBUyxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBQyxFQUFFLEdBQUksR0FBRSxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFDcnlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBa0QsR0FBaEQsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUF1SCxHQUF0SCxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUE2RyxHQUE1RyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFDdnlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsT0FBTyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sT0FBTyxFQUFFLEVBQUUsT0FBUSxHQUErQixHQUE3QixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFLLElBQUksR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsTUFBTSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxNQUEyQixHQUFyQixFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUssSUFBSSxHQUFJLEVBQUUsSUFBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLGNBQWMsTUFBTSxHQUFJLElBQUksR0FBSSxpQkFBaUIsRUFBRSxFQUFFLDRCQUE0QixHQUFFLENBQUMsR0FDdnlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTJGLEdBQXpGLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBcUIsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsR0FBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUF1QixHQUFwQixFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBTSxFQUErRixPQUE1RixFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFVLEVBQUUsT0FBUSxPQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLE9BQU8sR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDNXlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsSUFBSSxFQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUksSUFBSSxHQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsR0FBSyxHQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQVEsT0FBTyxHQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsR0FBRyxLQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsT0FBTyxHQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsR0FBRyxLQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLE9BQU8sRUFDbnpCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFHLEdBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxLQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEtBQU0sRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUUsRUFBQyxFQUFHLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUUsR0FBRSxHQUFNLEVBQUksRUFDMXpCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcseUJBQXlCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBd0IsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBOEMsR0FBN0MsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBVSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLElBQUksR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsTUFBTSxDQUFDLEdBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBSSxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQVEsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFJLEdBQUksR0FBRSxFQUFFLENBQUMsRUFBUyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFJLEdBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEdBQUcsRUFDM3pCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXdFLEdBQXRFLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUssQ0FBQyxDQUFDLEVBQUssS0FBSyxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUssS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFxQixPQUFqQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFTLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxPQUFRLEdBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxLQUFNLEdBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssV0FBUyxHQUFJLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBSyxLQUFLLEVBQUUsS0FBSyxLQUFLLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFHLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLFdBQVksR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFHLEtBQUssRUFBRSxLQUFLLEtBQUssR0FBRyxHQUFJLEVBQUUsU0FBVSxNQUFLLEVBQUUsS0FBSyxLQUFLLEVBQUUsR0FBSyxLQUFLLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxDQUFDLE9BQVUsTUFBSyxFQUFFLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxLQUMzekIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBa0IsR0FBakIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsU0FBaUksT0FBeEgsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFVLEVBQUUsT0FBUSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxVQUFXLEdBQWUsR0FBYixFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsTUFBTyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsVUFBVyxHQUFjLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLE1BQU8sR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFHLENBQUMsSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLE1BQU8sRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQ2gwQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBdUgsR0FBckgsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBTSxFQUFHLE9BQU8sR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxPQUFPLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVksRUFBRSxHQUFHLEVBQUcsRUFBRyxPQUFPLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQVEsT0FBTyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLE9BQU8sR0FBRSxHQUFHLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU8sR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFDeDBCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sU0FBUyxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFHLFNBQVMsR0FBRSxLQUFLLEdBQUUsS0FBSyxHQUFFLEtBQUssSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBeUIsT0FBaEIsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBUyxHQUFFLEVBQUUsT0FBUSxHQUFFLEdBQUUsR0FBRSxVQUFXLEdBQUUsR0FBRSxHQUFFLGNBQWMsR0FBRSxHQUFJLEdBQUUsRUFBRyxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUcsR0FBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFFLEVBQUUsR0FBRyxJQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFDLEVBQUUsR0FBSSxHQUFFLElBQUksRUFBRSxHQUFJLEdBQUUsSUFBSSxFQUFFLEdBQUksR0FBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQzMwQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUErVCxHQUE3VCxLQUFLLEVBQUUsSUFBRyxJQUFJLEdBQUksSUFBSSxFQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUcsR0FBRyxHQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQU0sSUFBSSxLQUFLLENBQUMsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLGlDQUFpQyxLQUFLLENBQUMsQ0FBQyxFQUFvRCxHQUFsRCxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksS0FBSyxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxpQ0FBaUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxJQUFLLEtBQUssQ0FBQyxFQUM3MEIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBRyxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsRUFDNzBCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBWSxPQUFWLEVBQUUsSUFBSSxHQUFXLEVBQUUsRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsVUFBVyxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxjQUFjLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBbUgsR0FBaEgsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFPLEtBQUssS0FBSyxFQUFHLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUks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QUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxVQUFVLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxVQUFVLGFBQWEsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLEVBQUUsVUFBVSxhQUFhLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLFFBQVEsS0FBSyxLQUFLLElBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sRUFDM3hCLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksR0FBSSxRQUFRLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksTUFBTSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxRQUFRLEdBQUksRUFBRSxHQUFNLEVBQUUsSUFBSSxJQUFJLEdBQUksZUFBZSxJQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUksZ0JBQWdCLElBQUksRUFBRSxHQUFJLElBQUksR0FBSSxjQUFjLElBQUksRUFBRSxJQUFJLElBQUksR0FBSSxlQUFlLElBQUksRUFBRSxJQUFJLElBQUksR0FBSSxRQUFRLEVBQUssRUFBRSxJQUFJLEdBQUksUUFBUSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGtCQUFrQixJQUFJLEVBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxRQUFRLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksUUFBUSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLGNBQWMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGFBQWEsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGFBQWEsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGFBQWEsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLGFBQWEsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLDBCQUEwQixFQUFLLEVBQUUsSUFBSSxJQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRyxFQUFFLEdBQUksSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLFdBQVcsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxTQUFTLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxXQUFXLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxFQUN0MUIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssT0FBTyxLQUFrQixHQUFiLEVBQUUsRUFBRSxPQUFPLEVBQUssR0FBRyxFQUFHLE1BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksR0FBRyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxXQUFXLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLEdBQUksR0FBRyxHQUFHLEVBQUUsS0FBSyxHQUFHLE9BQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQ3QxQixTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWlHLEdBQS9GLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSyxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUUsRUFBRSxZQUFZLEVBQUUsR0FBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTyxJQUFHLEVBQUUsQ0FBQyxFQUFnTCxHQUE5SyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFHLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFLLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBRyxJQUFHLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBRyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFHLE1BQU8sR0FBUSxHQUFHLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLGtCQUFrQixFQUFFLElBQUcsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxDQUFDLEVBQUUsTUFBTyxHQUNyMUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUF1QixHQUFyQixFQUFFLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBNEYsR0FBckYsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFLLEdBQUksSUFBRyxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUcsR0FBRyxFQUFHLElBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFHLEdBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUM5MUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsT0FBeUYsR0FBbEYsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLEtBQU0sRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxHQUFHLEdBQUcsR0FBSyxJQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFPLEtBQUksRUFBRSxJQUFJLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBUSxDQUFDLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksT0FBTyxFQUFFLE9BQVEsR0FBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVcsR0FBRSxHQUFHLEVBQUUsRUFBRSxVQUFXLEdBQUUsR0FBRyxFQUFFLElBQUksRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVcsR0FBRSxHQUFHLEVBQUUsSUFBSSxFQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBSSxJQUFJLEVBQUUsRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUN2MkIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxPQUFpRyxHQUExRixFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxLQUFNLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsR0FBRyxHQUFHLEdBQUssSUFBSSxFQUFFLElBQUksRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsTUFBTyxLQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLE9BQU8sRUFBRSxPQUFRLEdBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFXLEdBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVyxHQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxVQUFXLEdBQUUsR0FBRyxFQUFFLElBQUksRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEdBQUksSUFBSSxFQUFFLEVBQUcsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNuM0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLGdEQUFnRCxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBd0IsR0FBdEIsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBSSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUMxMkIsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBSSxFQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FDbDNCLFNBQVMsRUFBRyxFQUFFLENBQUMsR0FBSSxFQUFJLElBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFLLEdBQUksRUFBRSxJQUFJLElBQUssRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUNuM0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFZLEdBQVgsRUFBRSxFQUFFLEtBQUssS0FBTyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxHQUFJLFNBQVMsR0FBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsRUFBRSxHQUFFLEdBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFDLEVBQUUsR0FBSSxFQUFDLEVBQUUsSUFBSSxHQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxHQUFJLEdBQUUsRUFBRyxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUUsR0FBRSxLQUFLLENBQUMsRUFBRSxHQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRyxFQUFJLEdBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFDejNCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUssS0FBSyxNQUFNLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUcsQ0FBaUIsR0FBaEIsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUksSUFBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUksR0FBRSxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRyxHQUFJLEdBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSyxJQUFJLEdBQUksRUFBQyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUssSUFBSSxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFJLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxJQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxHQUFHLEtBQUssR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSyxJQUFJLEdBQUksQ0FBQyxFQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQ3ozQixTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBK0MsR0FBN0MsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUssSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQXdCLEdBQXZCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRyxTQUFTLE9BQU8sRUFBRSxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUcsR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFLLElBQUksR0FBSSxFQUFFLElBQU0sR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFRLEdBQUcsSUFBSyxJQUFJLEdBQUksRUFBRSxJQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxJQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUssR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQUUsVUFBVyxPQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLElBQUssSUFBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxJQUFLLElBQUksRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsSUFBSyxJQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLEdBQUcsRUFBRyxFQUFFLEVBQUUsUUFBUSxHQUFHLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQ2o0QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFHLHFDQUFxQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFPLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBVSxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFtQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFLLEVBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsTUFBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFJLEdBQUksR0FBRSxFQUFFLENBQUMsRUFBUSxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFDcDRCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUF3SixHQUF0SixFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUksR0FBSSxDQUFDLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEtBQUssR0FBSSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxHQUFHLEdBQUcsRUFBRyxFQUFHLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBSSxFQUFFLEVBQUcsRUFBSSxHQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFzQyxHQUE3QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUcsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLElBQUksR0FBSSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDaDVCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxHQUFHLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRSxFQUFFLEVBQUUsQ0FBQyxFQUFzRixHQUFwRixHQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRSxHQUFNLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBc0gsR0FBckgsR0FBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUcsR0FBSSxHQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsR0FBRSxFQUFHLEVBQUUsRUFBRSxHQUFFLElBQUcsRUFBRSxFQUFFLEdBQUcsTUFBTyxHQUFFLEdBQUUsRUFBRSxJQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLE1BQU8sR0FBRSxHQUFFLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFHLEdBQUksRUFBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFHLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQ241QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFpRSxHQUEvRCxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLENBQUMsRUFBRyxTQUFTLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsSUFBSyxHQUFHLElBQUssR0FBRyxLQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUssR0FBRyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsSUFBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLENBQUMsRUFBRyxTQUFTLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsSUFBSyxHQUFHLElBQUssR0FBRyxLQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEtBQ3Q1QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQTJJLEdBQXpJLEVBQUUsR0FBRyx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsR0FBRSxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxFQUFFLEdBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEdBQUUsSUFBSSxJQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQTBDLEdBQXpDLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFxQyxHQUFsQyxJQUFJLEVBQUUsR0FBRSxJQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxFQUFDLENBQUMsRUFBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxHQUFFLEVBQUUsR0FBRSxFQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEVBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQVEsT0FBTyxPQUFPLE9BQU8sT0FBTyxHQUFFLElBQUksRUFBRSxFQUFFLEdBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFFLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxHQUFHLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsRUFDMzVCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBYSxPQUFYLEdBQUksRUFBRSxHQUFHLElBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBUSxHQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksbURBQW1ELENBQUMsTUFBTyxHQUFFLFFBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBSSxHQUFJLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFxSCxHQUFsSCxFQUFFLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBSSxDQUFDLEdBQUcsR0FBSSxDQUFDLEVBQUcsT0FBTyxHQUFJLENBQUMsVUFBVSxHQUFHLEdBQUksQ0FBQyxFQUFHLE9BQU8sVUFBVSxHQUFHLEdBQUksQ0FBQyxFQUFHLE9BQU8sRUFBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUF1QixHQUFwQixFQUFFLEdBQUksRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFHLElBQUksR0FBSSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUksQ0FBQyxHQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsR0FBSSxDQUFDLFVBQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFNLEVBQUcsT0FBTyxLQUFRLE9BQU8sRUFDMzVCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQWEsR0FBWCxFQUFFLEVBQUUsT0FBVSxFQUFFLEdBQXVDLEdBQXBDLEdBQUcsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQWlDLEdBQTdCLEVBQUUsRUFBRSxZQUFZLEdBQUcsRUFBRSxFQUFFLEdBQVMsR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBb0UsR0FBbkUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFFLEdBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRyxHQUFHLENBQUMsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRyxRQUFRLEdBQU4sQ0FBa0IsR0FBVCxHQUFFLEdBQUksRUFBQyxFQUFLLEdBQUcsR0FBRSxHQUFHLEVBQU8sTUFBSixFQUFFLEdBQVEsR0FBSSxJQUFJLEdBQUksQ0FBQyxDQUFDLE1BQU8sT0FBTSxHQUFJLEVBQUMsRUFBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFhLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxHQUFxQixHQUFsQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRSxFQUFFLEdBQU0sSUFBRyxLQUFLLElBQUcsS0FBSyxHQUFJLEdBQUUsRUFBQyxJQUFJLEtBQUssRUFBRyxPQUFPLEVBQUksT0FBTyxNQUEyRSxHQUFyRSxFQUFFLEVBQUUsWUFBWSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFLLEdBQUcsR0FBSSxHQUFHLENBQUMsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRyxRQUFRLEdBQU4sQ0FBa0IsR0FBVCxHQUFFLEdBQUksRUFBQyxFQUFLLEdBQUcsR0FBRSxHQUFHLEVBQUcsRUFBRSxNQUFPLE9BQU0sR0FBSSxFQUFDLEVBQUcsRUFBRSxHQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBYSxHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsR0FBd0IsR0FBckIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRSxHQUFHLEdBQU0sR0FBRyxLQUFLLElBQUcsS0FBSyxHQUFJLEVBQUUsRUFBQyxJQUFJLEtBQUssRUFBRyxPQUFPLEVBQUksT0FBTyxNQUFNLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFDOTVCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFrQyxHQUF6QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUssRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBTyxHQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBa0MsR0FBekIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFLLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBZ0IsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUksQ0FBQyxFQUFHLFNBQXFCLEdBQVosRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQU0sR0FBSSxFQUFFLElBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFHLFNBQTRGLEdBQW5GLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLElBQUssS0FBSyxHQUFJLEVBQU0sRUFBRSxHQUFHLElBQUksRUFBRSxFQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUEyQixHQUExQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxHQUFHLEVBQUcsU0FBUyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFJLEdBQUcsR0FBRSxHQUFHLElBQUssS0FBSyxHQUFJLEVBQU0sR0FBRSxHQUFHLElBQUksRUFBRSxFQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUEyQixHQUExQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxHQUFHLEVBQUcsU0FBUyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUMxNUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBNEIsR0FBMUIsRUFBRSxFQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLEdBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUssR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQUssR0FBRSxHQUFHLElBQUssR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUcsR0FBSSxHQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQWtCLEdBQWpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLFNBQVMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFJLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFFLEdBQUcsR0FBSSxFQUFLLEtBQUssSUFBSSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUcsR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRSxLQUFLLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFrQixHQUFqQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FDcDZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUE2QixHQUF6QixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUssRUFBRSxDQUF5QixHQUF4QixFQUFFLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQU0sRUFBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQTZCLEdBQXpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBSyxFQUFFLENBQXlCLEdBQXhCLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFDdjZCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBNkIsR0FBM0IsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksQ0FBQyxHQUFNLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRyxPQUFPLE9BQVEsR0FBRSxNQUFPLFFBQVMsR0FBRSxPQUFPLE9BQVMsR0FBRSxNQUFPLFdBQVksR0FBRSxNQUFPLFlBQWEsR0FBRSxNQUFPLGFBQWMsR0FBRSxNQUFPLGNBQWUsR0FBRSxNQUFPLG1CQUE2RixPQUExRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLE1BQVUsRUFBRSxHQUFHLEtBQVEsRUFBRSxHQUFHLEdBQUcsR0FBSSxhQUFhLElBQUksRUFBUyxFQUFFLEVBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBVSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQTRCLEdBQXpCLEVBQUUsR0FBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBSyxHQUFHLEVBQWtCLE9BQWYsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFXLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUE0QixPQUF6QixFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBVyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUssRUFBRSxFQUFFLEdBQUcsR0FBc0MsT0FBbkMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBVyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBc0MsR0FBcEMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxHQUFHLEtBQVUsRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFtRCxPQUFqRCxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQU8sRUFBRSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQVMsRUFBRSxFQUMzNkIsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBd0gsR0FBdEgsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBc0MsR0FBckMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUcsR0FBSSxHQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUssS0FBSSxHQUFJLEVBQUUsSUFBTSxHQUFFLElBQUksR0FBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLEdBQUksRUFBQyxFQUFFLE9BQU8sR0FBRSxPQUFRLEdBQUUsR0FBRyxHQUFJLEdBQUUsR0FBRSxFQUFFLEVBQUMsRUFBRSxVQUFXLEdBQUUsR0FBSSxHQUFFLEdBQUUsRUFBRSxFQUFDLEVBQUUsR0FBRyxHQUFJLEdBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBRyxHQUFJLEdBQUUsR0FBRSxFQUFFLEVBQUMsRUFBRSxHQUFJLEdBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBRyxHQUFJLEdBQUUsR0FBRSxFQUFFLENBQUMsSUFBb0IsR0FBZixHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEdBQUcsSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQTZELEdBQXpELEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsR0FBRSxFQUFFLEdBQUcsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQW1GLE9BQTlFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQVMsSUFBSSxHQUFJLEdBQUUsQ0FBQyxFQUNoN0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsWUFBWSxFQUFFLG9YQUFvWCxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFDajdCLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUF5QixHQUF2QixFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFTLEVBQUUsR0FBdUMsR0FBcEMsR0FBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBTSxHQUFHLElBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsSUFBSyxHQUFHLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEtBQUssSUFBSyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUUsR0FBRyxHQUFJLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUF1RCxHQUFwRCxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUcsR0FBRyxVQUFVLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQU0sTUFBTSxHQUFHLEVBQUUsQ0FBeUYsR0FBeEYsRUFBRSxVQUFVLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBSyxFQUFHLEVBQUUsT0FBVSxDQUFDLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFZLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUcsT0FBTyxFQUNuN0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxPQUFPLEtBQXNCLEdBQWpCLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFHLE9BQU8sTUFBTSxDQUFDLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBcUIsR0FBaEIsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxHQUFHLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQXlGLEdBQXhGLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFLLEVBQUUsRUFBRyxDQUFDLEVBQUUsTUFBTSxJQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBSyxFQUFFLFVBQVcsR0FBRyxLQUFLLElBQUksRUFBRSxNQUFNLElBQUssRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sSUFBSyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxDQUFDLEdBQUksSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxLQUFLLEtBQU0sR0FBRSxDQUFDLEdBQUksSUFBSSxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFHLE9BQU8sRUFBRSxHQUNwN0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEySyxHQUF6SyxFQUFFLEdBQUksR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEdBQUksRUFBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUksSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQTRELEdBQXhELEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFDejdCLFNBQVMsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQW1DLEdBQWpDLElBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFNLElBQUcsQ0FBQyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFRLE1BQU8sR0FBTSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU8sR0FBRSxHQUFHLEVBQUUsQ0FBQyxFQUFHLE9BQU8sT0FBUSxJQUFvRCxPQUFqRCxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFTLE9BQVUsSUFBRyxPQUFPLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sSUFBRyxPQUFPLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sSUFBRyxPQUFPLElBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBTyxJQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFzRCxPQUFuRCxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFTLE9BQVUsS0FBSSxPQUFPLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxLQUFJLEdBQUcsR0FBRyxFQUFHLE1BQU8sR0FBWSxPQUFOLEVBQUUsRUFBRSxFQUFTLE9BQVUsSUFBRyxHQUFHLEVBQUUsRUFBRyxNQUFPLEdBQU0sT0FBTyxJQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFPLEtBQUksR0FBRyxLQUFLLEVBQUUsT0FBUSxRQUFRLElBQUcsR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUFzQixPQUFoQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBYSxPQUFVLEtBQUksR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUFxQixPQUFmLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFZLE9BQVUsS0FBSSxHQUFHLEVBQUUsRUFBRyxNQUFPLEdBQVksT0FBTixFQUFFLEVBQUUsRUFBUyxPQUFVLEtBQUksR0FBRyxFQUFFLEVBQUcsTUFBTyxHQUFZLE9BQU4sRUFBRSxFQUFFLEVBQVMsT0FBVSxJQUFHLEdBQUcsRUFBRSxFQUFFLFNBQVMsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsSUFBa0IsUUFBWCxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQVMsT0FBVSxTQUFTLEtBQUksT0FBTyxJQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxNQUFPLElBQ3I3QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLEdBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUUsSUFBSyxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUUsSUFBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxHQUFFLEdBQUUsRUFBRSxDQUFDLEdBQUksR0FBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFFLElBQUssQ0FBQyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUksRUFBRSxJQUFNLEdBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFLLEdBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFFLElBQUssRUFBRSxHQUFHLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUksVUFBVSxHQUFHLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUcsT0FBTyxFQUM3N0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBa0UsT0FBaEUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBUyxFQUFFLEVBQUUsT0FBUSxHQUFvQyxHQUFsQyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLElBQU0sR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU8sSUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxVQUFXLEdBQW1DLEdBQWpDLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsSUFBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTyxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVcsR0FBbUMsR0FBakMsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxJQUFNLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFPLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVyxHQUFvQyxHQUFsQyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLElBQU0sR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU8sSUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FDOTdCLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQXFkLEdBQXBkLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUssS0FBSyxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSyxJQUFJLEVBQUUsRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ3A4QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUcsNEJBQTRCLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLE1BQU0sR0FBRSxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQW1ELEdBQWhELEdBQUcsR0FBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEdBQUcsR0FBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRyxHQUFFLElBQUksR0FBRSxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBQyxFQUFJLElBQUksRUFBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUN2OEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUssS0FBSyxLQUFLLEdBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBSSxHQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUE0RCxHQUEzRCxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRSxHQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxFQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUcsR0FBRSxFQUFpQyxHQUEvQixFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUUsRUFBSyxHQUFFLEVBQUcsR0FBRyxFQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxHQUFJLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBRSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUksR0FBRyxHQUFJLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFvRSxHQUFsRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUMsRUFBRSxFQUFFLEdBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksR0FBRSxFQUFDLENBQUMsRUFBRSxJQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBQyxFQUMzOEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUcsK0JBQStCLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRSxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRSxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFFLEdBQUUsRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFDLEVBQUcsR0FBRSxHQUFFLEVBQUksR0FBRSxHQUFJLEVBQUMsRUFBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBeUksR0FBeEksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsQ0FBQyxFQUFLLEVBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFNLEdBQUcsSUFBRyxJQUFHLElBQUksSUFBRyxNQUFLLEdBQUksRUFBRSxFQUFFLEVBQUMsRUFBb0UsR0FBbEUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxJQUFJLENBQUMsR0FBRyxHQUFFLENBQUMsR0FBRyxHQUFJLEdBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxFQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUM3OEIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQWtDLEdBQTlCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEtBQU0sSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUksQ0FBQyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFJLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsTUFDbDlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUcsT0FBTyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxHQUFHLEVBQUcsT0FBTyxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBQyxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQXdFLEdBQXZFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUssR0FBRSxFQUFFLEVBQUUsRUFBRyxHQUFFLEVBQUUsSUFBRyxFQUFFLEdBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUUsRUFBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFHLEVBQUUsRUFBRSxHQUFFLE9BQU8sRUFDejlCLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLE9BQU8sS0FBdUIsR0FBbEIsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFLLEVBQUUsR0FBRyxFQUFHLE9BQU8sS0FBYSxHQUFSLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFFLE9BQU8sR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFHLE9BQU8sS0FBeUMsR0FBcEMsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQVEsR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEtBQTBFLE9BQXJFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxHQUFVLFVBQVUsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFVLEdBQVQsRUFBRSxHQUFJLElBQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxLQUE2RyxPQUF4RyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFVLE1BQU8sUUFBTyxTQUFXLEdBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsT0FBTyxFQUM5OUIsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFRLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUksRUFBRSxJQUFNLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFXLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLEVBQUksR0FBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxFQUFJLEdBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxFQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBQyxFQUFFLEdBQUUsSUFBSSxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxHQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQTRCLEdBQXBCLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFJLEVBQUUsRUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQU0sV0FBYSxHQUFFLEdBQU0sSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFHLEdBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQy85QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsTUFBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUE0QixHQUEzQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxHQUF3RixHQUFwRixHQUFFLEVBQUcsR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBSyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFNLEVBQUUsR0FBRyxFQUFFLEdBQTZFLEdBQTFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBSyxFQUFFLEdBQUcsSUFBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSyxHQUFHLEVBQUUsRUFBRSxHQUFFLElBQUksSUFBaUMsR0FBOUIsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxHQUFFLElBQUksR0FBSSxFQUFFLElBQUssR0FBSyxJQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFXLEtBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUUsSUFBSSxJQUFpQyxHQUE5QixHQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUUsRUFBRSxFQUFFLEdBQU0sR0FBSSxFQUFFLEdBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFLLElBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQy85QixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBd0YsR0FBdEYsR0FBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFNLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsSUFBSSxFQUFHLE1BQU8sR0FBZ0IsR0FBVixHQUFFLEdBQUUsRUFBRSxFQUFFLEdBQU0sR0FBRyxHQUFFLEVBQUUsRUFBRyxNQUFPLEdBQTJELEdBQXJELEVBQUUsRUFBRyxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBTyxHQUFFLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFFLEVBQUssS0FBSyxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFRLEdBQU4sRUFBRSxHQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFFLEVBQUssS0FBSyxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUksTUFBTyxHQUFxVixPQUFoVixFQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFHLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsR0FBRyxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFHLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUcsR0FBRSxFQUFHLEVBQUUsR0FBRSxJQUFJLEdBQUUsTUFBSyxHQUFFLEVBQUUsR0FBRyxHQUFFLEdBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRyxJQUFVLEdBQ3ArQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBMkQsR0FBekQsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFPLEVBQUUsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBMEQsR0FBekQsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFrQixHQUFqQixFQUFFLElBQUksSUFBSyxHQUFHLENBQUMsRUFBSyxFQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQzUrQixTQUFTLEdBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxNQUFNLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsU0FBUyxFQUFzcUIsT0FBcHFCLEVBQUUsSUFBSSxNQUFNLEVBQUUsSUFBSSxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQUUsT0FBTyxVQUFVLEVBQUUsT0FBTyxVQUFVLEVBQUUsT0FBTyxVQUFVLEVBQUUsT0FBTyxVQUFpQixFQUM3K0IsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxXQUFXLEVBQUUsOFFBQThRLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRyxFQUFFLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUssRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksRUFBSyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUM5K0IsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxHQUFJLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksT0FBTyxJQUFJLENBQXNCLEdBQXJCLEtBQUssR0FBSSxJQUFJLEdBQUksQ0FBQyxHQUFNLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFJLE1BQU0sRUFBRSxJQUFJLFdBQVcsQ0FBQyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBaUQsR0FBL0MsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLFVBQVUsR0FBRyxHQUFJLEVBQUUsTUFBTSxLQUFLLEVBQUssR0FBSSxFQUFFLEdBQUcsRUFBRyxHQUFJLEVBQUUsT0FBTyxPQUFPLEVBQUUsR0FBSSxFQUFFLFFBQVEsT0FBTyxFQUFzSCxHQUFwSCxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFRLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRSxNQUFRLEdBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUksRUFBRSxLQUFLLEdBQUksSUFBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBSSxHQUFJLE1BQU0sQ0FBQyxFQUFFLEdBQUksR0FBSSxNQUFNLEdBQUksQ0FBQyxDQUFDLEdBQUcsS0FBTSxHQUFJLElBQUksSUFBSyxHQUFJLEdBQUksSUFBSSxHQUFHLEdBQUcsS0FBTSxHQUFJLElBQUksSUFBSyxHQUFJLEdBQUksSUFBSSxHQUFHLEdBQUcsS0FBTSxHQUFJLElBQUksSUFBSyxHQUFJLEdBQUksTUFBTSxLQUFLLEVBQTRDLE9BQTFDLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQVMsRUFDcC9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsY0FBYyxFQUFFLHVPQUF1TyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUssRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFDci9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQWtCLEdBQWpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLFNBQW9GLE9BQTNFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBVSxFQUFFLE9BQVEsR0FBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxVQUFVLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksTUFBTyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxVQUFXLEdBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksVUFBVSxHQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLE1BQU8sR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsVUFBVyxHQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLFVBQVUsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxVQUFVLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksTUFBTyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLElBQ2ovQixTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBa0IsR0FBaEIsRUFBRSxHQUFNLEVBQUUsR0FBUyxHQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQU0sRUFBRSxHQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBbUIsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFNLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFFLEdBQUssUUFBUSxHQUFHLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFLLFVBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFPLEtBQUcsRUFBRSxHQUFHLEdBQStCLEdBQTVCLEdBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQU0sR0FBRyxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLFVBQVUsRUFBRyxFQUFFLFdBQU8sRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxNQUFPLElBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLFVBQVUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBTSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFJLENBQUMsVUFBVSxFQUFHLEVBQUUsVUFBTyxHQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQU0sR0FBRyxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLE1BQU8sR0FBRSxHQUFHLEdBQUcsR0FBRSxHQUFHLEVBQUcsRUFBRSxFQUFJLEVBQUUsR0FBa0MsR0FBN0IsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxFQUFLLEVBQUUsR0FBRyxFQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFDei9CLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBRSxJQUFJLEdBQUksRUFBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFRLENBQWlCLEdBQWhCLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUssR0FBRSxJQUFJLEdBQUksRUFBRSxJQUFNLFNBQVMsR0FBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUUsSUFBSSxHQUFJLEVBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRSxHQUFzRixHQUFuRixFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFFLEdBQUUsSUFBSSxFQUFDLEVBQUUsR0FBSSxHQUFFLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEtBQUssR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUUsRUFBRyxHQUFFLEVBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBMkQsR0FBdEQsR0FBRSxJQUFJLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBQyxFQUFFLEdBQUUsR0FBSSxHQUFHLEdBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFFLEdBQUcsSUFBRyxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRSxHQUFHLEdBQUksR0FBRSxFQUFHLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUM3L0IsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBZ0MsR0FBOUIsRUFBRSxHQUFHLHNCQUFzQixDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEdBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFFLEVBQUcsRUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRSxLQUFJLEdBQUksRUFBRSxJQUFLLEdBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssR0FBRSxFQUFFLEVBQUUsQ0FBaUssR0FBaEssR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFFLElBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsR0FBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFHLEdBQUcsSUFBRyxFQUFLLEdBQUUsRUFBRSxDQUFrRixHQUFqRixFQUFFLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFFLEdBQUcsSUFBSSxLQUFJLEdBQUcsR0FBRyxNQUFLLEtBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLElBQUksR0FBRSxFQUFFLEdBQUUsRUFBQyxDQUFDLEdBQU0sRUFBRSxLQUFJLElBQUksRUFBRyxJQUFHLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRSxJQUFHLE1BQU8sQ0FBQyxJQUFJLElBQUksSUFBRyxJQUFHLEVBQUUsSUFBRyxJQUFJLEdBQUUsRUFBQyxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEtBQUksS0FBSSxJQUFHLEdBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRSxFQUFFLFFBQVEsSUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUN2Z0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLElBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFFLEdBQUcsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBSyxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRSxDQUFDLENBQUMsRUFBRyxHQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLEdBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUMsR0FBaEMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFNLEVBQUcsU0FBUyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksRUFBQyxFQUFHLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSSxFQUFHLEdBQUksR0FBRyxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQyxHQUFoQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQU0sR0FBRyxTQUFTLElBQUksR0FBRSxJQUFJLEdBQUksRUFBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFTLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUUsR0FBSSxDQUFDLEdBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUcsR0FBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxFQUFDLEVBQ3BoQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQTBCLEdBQXhCLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRSxHQUFNLEdBQUUsS0FBUSxHQUFJLEVBQUUsQ0FBQyxHQUFZLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxLQUFLLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRSxJQUFJLEdBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUksR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUUsUUFBUSxFQUFHLEVBQUUsR0FBRSxHQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEtBQUssRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLEVBQUUsUUFBYSxHQUFKLEVBQUUsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRyxPQUFzQixHQUFkLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFFLE9BQVEsRUFBRSxHQUFFLEdBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEdBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFJLEdBQUksRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFPLEdBQUcsR0FBRSxDQUFDLEdBQUcsSUFBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEtBQUssSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLE1BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTyxPQUFVLE9BQU8sR0FDM2hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFtQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBSSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRSxHQUFHLEdBQUcsQ0FBZ0UsT0FBL0QsR0FBRSxFQUFHLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEtBQUssR0FBRSxLQUFZLEdBQUUsT0FBUSxHQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFXLEdBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVcsR0FBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVyxHQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRyxHQUFHLEVBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFHLEVBQUUsR0FBSSxFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQThCLE9BQTNCLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFTLEVBQ2xpQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksS0FBTSxPQUFPLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFLLEdBQUksR0FBSSxFQUFFLENBQStCLEdBQTlCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFVLEVBQUUsR0FBRyxJQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSyxFQUFFLEVBQUUsRUFBcUosR0FBbEosRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBSyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFtQixHQUFmLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxHQUFHLEdBQXFGLEdBQWhGLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUcsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLE1BQU8sR0FBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVEsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsTUFBTyxHQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsVUFBUyxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxHQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsTUFBUyxHQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQzVpQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFvQyxHQUFsQyxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLE1BQU8sR0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQU0sR0FBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQVEsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUssQ0FBQyxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsU0FBMkIsR0FBbEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFNLEVBQUUsR0FBRyxHQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLE1BQU8sSUFBRyxFQUFFLE9BQVEsSUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUUsSUFBSSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsS0FBSyxJQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUcsRUFBRSxFQUFFLElBQUcsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQyxFQUFFLEdBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUcsSUFBSSxJQUFHLEdBQUUsRUFBRSxPQUFPLEdBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFDLEdBQStDLEdBQTNDLEdBQUUsRUFBRyxHQUFHLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLEVBQUksSUFBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxHQUFHLElBQUcsRUFBRSxFQUFFLElBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsRUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFDLEVBQUcsR0FBRSxFQUFFLE9BQU8sRUFBMkIsT0FBekIsRUFBRSxHQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSyxHQUFFLElBQUcsRUFBUyxHQUFHLEVBQzlpQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxHQUFFLElBQUksR0FBRyxHQUFFLElBQUksR0FBRyxFQUFFLEdBQUksR0FBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUUsRUFBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUUsR0FBRSxHQUFHLEdBQUcsR0FBRSxFQUFFLElBQUksR0FBRyxHQUFFLEdBQUUsQ0FBQyxFQUFHLElBQUcsSUFBSSxHQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxHQUFHLENBQUMsR0FBRSxFQUFHLEdBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBRyxHQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFpQyxHQUE3QixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEdBQUcsSUFBSSxHQUFFLElBQUksR0FBRSxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRSxHQUFHLEdBQUksRUFBRSxFQUFDLE1BQTBDLE9BQW5DLEVBQUUsR0FBSSxHQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQVUsR0FBSSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUksR0FBRyxHQUFFLEdBQUUsR0FBRyxHQUFHLEdBQUUsRUFBRSxJQUFJLEdBQUcsR0FBRSxHQUFFLENBQUMsRUFBRyxJQUFHLElBQUksR0FBRSxFQUFFLEdBQUcsRUFBRSxHQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUUsRUFBRyxHQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBRSxFQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxFQUFFLEdBQUcsRUFBRSxHQUFFLEdBQUcsR0FBaUMsR0FBN0IsRUFBRSxHQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBSyxHQUFHLElBQUksR0FBRSxJQUFJLEdBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUUsR0FBRyxHQUFJLEVBQUUsRUFBQyxNQUEwQyxPQUFuQyxFQUFFLEdBQUksR0FBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFVLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFrQyxJQUE3QixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQU0sRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBd0QsR0FBckQsR0FBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFNLEdBQUksRUFBQyxJQUFJLEdBQUksRUFBQyxFQUFHLEdBQUksR0FBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FDOWlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFJLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLEdBQUUsT0FBTyxHQUFFLEtBQUksR0FBRSxDQUFDLEdBQUUsR0FBRSxJQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUEwQyxHQUF6QyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXVCLEdBQXJCLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsSUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBTSxFQUFFLEVBQUcsR0FBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXVELEdBQTlDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUssRUFBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUssS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFPLEVBQUUsRUFBRyxHQUFJLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF1RCxHQUE5QyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBSyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBTyxHQUFHLEdBQUcsR0FBRyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUNuakMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUE4QixHQUE1QixFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBa0IsR0FBakIsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBWSxLQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBa0IsR0FBakIsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBTyxHQUFHLEVBQUUsRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLElBQUksR0FBSSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxDQUFDLE1BQU8sR0FBRSxFQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQzVqQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSSxHQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBMEQsR0FBekQsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBUyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLFNBQWdDLEdBQXZCLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBTSxHQUFHLEdBQUssRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxHQUFHLEdBQUssRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxHQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU8sR0FBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQzFqQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBK0ksR0FBN0ksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxJQUFPLEdBQUcsSUFBSyxHQUFHLElBQU0sR0FBRyxFQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUcsRUFBRSxHQUFHLEdBQUksQ0FBQyxFQUFvQixHQUFsQixFQUFFLElBQUksR0FBSSxFQUFFLEdBQVMsRUFBRSxHQUFHLEVBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBVSxLQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBUSxHQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVyxHQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxVQUFXLEdBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVyxHQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQTRCLEdBQXhCLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxJQUFLLEdBQUcsSUFBSyxHQUFHLEdBQUksQ0FBSyxHQUFKLEVBQUUsRUFBSyxHQUFHLElBQUssRUFBRSxHQUFHLEVBQUcsRUFBRyxPQUFPLEVBQUUsT0FBUSxPQUFPLEdBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxPQUFPLEdBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLE1BQVMsUUFBTyxFQUFFLE9BQVEsT0FBTyxHQUFFLEVBQUUsRUFBRSxF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RyxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUksRUFBRSxLQUFLLEdBQUksRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxJQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksQ0FBQyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxLQUFLLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQXlDLEdBQXZDLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBSyxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsT0FBTyxFQUNqa0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBRyxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBSyxLQUFLLEtBQUssR0FBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLElBQUksR0FBSSxHQUFJLEdBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQW1FLEdBQWxFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRSxHQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRSxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUUsRUFBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFHLEdBQUUsRUFBRSxFQUFFLEVBQWlGLEdBQS9FLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUssR0FBRSxFQUFHLEdBQUcsRUFBRSxHQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEdBQUUsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUUsRUFBRSxFQUFFLEdBQUUsR0FBSSxHQUFHLEdBQUksRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQTJELEdBQXpELEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBQyxFQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFDLEVBQUUsSUFBSSxHQUFHLEdBQUUsSUFBRyxFQUFFLENBQUMsRUFBRSxJQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFDLEVBQ2prQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFDamtDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBTSxHQUFKLEdBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQVEsSUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQThILE9BQTdILEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxVQUFXLEdBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRyxHQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsRUFBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxJQUFJLEdBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxHQUFFLEdBQUksSUFBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFzQixHQUFwQixFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUssRUFBRyxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQ3JrQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQU0sR0FBSixHQUFFLEVBQUssRUFBRSxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFRLElBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUE4SCxPQUE3SCxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsT0FBUSxHQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsVUFBVyxHQUFFLEdBQUksRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUcsR0FBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsSUFBSSxHQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUUsRUFBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUksR0FBRSxHQUFJLElBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBc0IsR0FBcEIsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUcsSUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUNya0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFFLElBQUksR0FBSSxNQUFNLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBRyxHQUFJLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFFLEVBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRSxJQUFJLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxHQUFHLENBQWlCLEdBQWhCLEdBQUUsRUFBRyxHQUFFLEdBQUcsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQUcsRUFBQyxFQUFHLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRyxHQUFFLENBQUMsRUFBc2IsR0FBcGIsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFFLElBQUksR0FBSSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUUsSUFBSSxHQUFJLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUcsRUFBRSxHQUFFLElBQUksR0FBSSxHQUFJLEdBQUUsR0FBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFJLElBQUcsR0FBSSxFQUFFLElBQUssRUFBRyxFQUFJLEdBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxHQUFJLEdBQUksR0FBRSxFQUFDLEVBQUUsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsR0FBSSxFQUFHLEVBQUksR0FBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRSxHQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUssR0FBRSxHQUFHLEdBQUssRUFBRSxFQUFHLEVBQUksR0FBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFPLE9BQU8sRUFBRSxFQUFFLE9BQU8sR0FBSSxFQUFDLEVBQ3ZrQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQThDLEdBQTFDLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFLLEVBQUUsS0FBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBdUIsR0FBdEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQVEsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFnQixHQUFmLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEdBQU0sSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQW9DLEdBQWpDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssRUFBVyxHQUFSLEVBQUUsR0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsV0FBYSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsT0FBVSxHQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLEdBQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQTJCLEdBQXhCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsV0FBYSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsT0FBVSxHQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLEdBQVEsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQW1CLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQWtCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUFNLE9BQU8sRUFDNWtDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBd0YsT0FBdkYsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBUyxHQUFJLElBQUksQ0FBQyxPQUFRLElBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxLQUFNLElBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxLQUFNLElBQUcsQ0FBQyxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsT0FBTyxHQUFJLElBQUksQ0FBQyxPQUFRLElBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssS0FBTSxJQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEtBQU0sS0FBSSxDQUFLLEtBQUYsRUFBSyxFQUFFLFFBQVEsTUFBTSxDQUFDLEdBQUcsRUFBRyxFQUFFLEVBQUUsS0FBSyxJQUFJLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFHLE9BQU8sR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLE9BQVEsSUFBSSxVQUFXLElBQUksZ0JBQWlCLE1BQU0sR0FBSSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsTUFBUyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssS0FBTSxLQUFJLENBQUssS0FBRixFQUFLLEVBQUUsUUFBUSxNQUFNLENBQUMsR0FBRyxFQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLENBQUMsTUFBTyxPQUFNLEdBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBbUIsR0FBaEIsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsR0FBSSxNQUFNLEdBQUksSUFBSSxHQUFHLGFBQWEsQ0FBQyxNQUFRLE9BQU8sT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQ2psQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWUsT0FBYixFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQVksT0FBUSxHQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFPLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxFQUFFLEdBQUcsTUFBTyxJQUFHLE9BQU8sRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFPLEVBQUUsR0FBRyxNQUFPLEdBQUUsR0FBSSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBSyxVQUFXLEdBQUUsT0FBTyxFQUFFLEdBQUcsRUFBSSxNQUFPLElBQUcsT0FBTyxFQUFFLEdBQUcsTUFBTyxJQUFHLE9BQU8sRUFBRSxPQUFRLFNBQVMsUUFBUSxTQUFTLFFBQVEsU0FBUyxJQUFzQixPQUFuQixFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBUyxNQUFPLFNBQVMsU0FBUyxTQUFTLFNBQVMsU0FBUyxTQUFTLFNBQVMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEdBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUcsVUFBVyxJQUFHLE9BQU8sRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFPLEVBQUUsR0FBRyxNQUFPLEtBQUksT0FBTyxFQUFFLEdBQUcsTUFBTyxJQUFHLE9BQU8sRUFBRSxHQUFHLE1BQU8sS0FBSSxPQUFPLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxFQUFFLEdBQUcsTUFBTyxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsSUFBRyxPQUFPLEVBQUUsR0FBRyxNQUFPLFFBQVEsS0FBaUIsR0FBYixFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBTSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRyxHQUFJLENBQUMsRUFBRSxVQUFXLEdBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBSSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQTBCLEdBQXhCLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsR0FBTSxFQUFFLFFBQVEsSUFBSyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsUUFBUSxNQUFPLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLGNBQWMsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFHLE9BQU8sRUFDeGxDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBSSxHQUFJLEdBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLElBQUcsRUFBRyxHQUFJLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBUSxHQUFHLEdBQUksR0FBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLEVBQVEsR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLE1BQU0sR0FBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFFLEdBQUcsRUFBRyxJQUFHLEdBQUksR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEdBQUksR0FBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFFLEVBQUUsR0FBRyxFQUFDLEdBQUcsS0FBSyxHQUFFLEVBQUUsS0FBSSxJQUFJLEdBQUUsR0FBRSxFQUFDLEVBQUUsTUFBTSxHQUFFLEdBQUcsRUFBRyxJQUFHLEdBQUksR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEdBQUksR0FBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFFLEVBQUUsR0FBRyxFQUFDLEdBQUcsS0FBSyxHQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUUsR0FBRSxFQUFDLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRSxHQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBK0IsR0FBM0IsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssSUFBRyxFQUFFLENBQUMsR0FBRyxHQUFFLEVBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxHQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFHLEdBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFHLElBQUksR0FBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQXlELEdBQXRELEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFFLEVBQUUsRUFBSyxHQUFFLEVBQUUsR0FBRSxHQUFxQixHQUFsQixHQUFJLENBQUMsRUFBRSxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUUsR0FBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUksR0FBRSxFQUFFLENBQUMsSUFDdmxDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBRSxFQUFFLENBQUMsRUFBRSxpQkFBaUIsR0FBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUksQ0FBQyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksSUFBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBSSxHQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxJQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFFLEVBQUMsRUFBRSxHQUFFLElBQUksR0FBSSxHQUFJLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsRUFBRyxFQUFFLEdBQUksR0FBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxHQUFJLEdBQUUsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBSSxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFDLEVBQVEsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFDLEVBQVEsSUFBSSxHQUFJLEdBQUUsRUFBRSxFQUFDLEVBQVEsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUUsSUFBSSxHQUFJLEVBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQzVsQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBQyxHQUFJLEdBQUUsRUFBRyxHQUFHLEVBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUNsbUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUErUCxHQUE3UCxFQUFFLEdBQUcsaUNBQWlDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUssR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsZ0NBQWdDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBd0YsR0FBdEYsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsa0NBQWtDLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBSSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLGlDQUFpQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQ3htQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRyxtQ0FBbUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVEsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLFdBQWMsSUFBSSxFQUFFLENBQUMsRUFBa0MsR0FBL0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUksR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQW1CLEdBQWYsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsVUFBUyxJQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFJLEdBQUksR0FBRSxFQUFFLENBQUMsRUFBUSxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFDM21DLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBaUosR0FBL0ksR0FBRSxLQUFLLEdBQUUsRUFBRSxHQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFDLEVBQUUsR0FBSSxHQUFFLEdBQUksR0FBRSxFQUFHLENBQUMsRUFBRSxHQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUUsWUFBWSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsR0FBSSxDQUFDLEdBQUcsR0FBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQU0sR0FBc0UsTUFBbkUsRUFBRSxHQUFJLEVBQUMsRUFBRSxFQUFFLDhDQUE4QyxFQUFFLEVBQUUsRUFBRSxHQUFVLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssS0FBSSxHQUFHLEdBQUksRUFBQyxFQUFFLEVBQUMsRUFBOEcsTUFBM0csRUFBRSxHQUFJLEdBQUUsRUFBRyxFQUFFLEVBQUUsa0ZBQWtGLEVBQUUsR0FBRSxFQUFFLEdBQVUsR0FBSSxJQUFJLEdBQUksRUFBQyxDQUFDLEVBQXNLLEdBQXBLLEtBQUksR0FBRSxJQUFJLEdBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFFLFlBQVksRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLEdBQUksQ0FBQyxHQUFHLEdBQUUsRUFBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFNLEdBQXNFLE1BQW5FLEVBQUUsR0FBSSxFQUFDLEVBQUUsR0FBRSw4Q0FBOEMsRUFBRSxHQUFFLEdBQUUsR0FBVSxHQUFJLElBQUksR0FBSSxFQUFDLENBQUMsRUFBRSxLQUFLLEtBQUksR0FBRyxHQUFJLEVBQUMsRUFBRSxFQUFDLEVBQThHLE1BQTNHLEVBQUUsR0FBSSxHQUFFLEVBQUcsRUFBRSxHQUFFLGtGQUFrRixFQUFFLEdBQUUsR0FBRSxHQUFVLEdBQUksSUFBSSxHQUFJLEVBQUMsQ0FBQyxFQUFzRSxHQUFwRSxLQUFJLEdBQUUsSUFBSSxHQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRSxFQUFFLENBQUMsR0FBRyxHQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUUsQ0FBQyxJQUFPLEdBQUUsSUFBSSxHQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRSxFQUFFLENBQUMsR0FBRyxHQUFFLEdBQUcsR0FBRyxLQUFLLEdBQUUsSUFBSSxHQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRSxFQUFFLENBQUMsR0FBRyxHQUFFLEdBQUcsR0FBRyxFQUFnQyxNQUE3QixFQUFFLEdBQUksR0FBRSxFQUFHLEVBQUUsR0FBRSxJQUFJLEVBQUUsR0FBRSxHQUFFLEdBQVUsR0FBSSxJQUFJLEdBQUksRUFBQyxDQUFDLEVBQWlDLE9BQS9CLEdBQUksR0FBRSxFQUFDLEVBQUUsSUFBSSxHQUFFLEVBQUMsRUFBRSxHQUFFLEdBQUksRUFBRSxHQUFFLEVBQUMsRUFBUyxHQUMzbUMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUksR0FBRSxHQUFJLEdBQUUsR0FBSSxHQUFFLEdBQUksSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUssS0FBSyxJQUFJLEdBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUssS0FBSyxJQUFJLEdBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBRSxFQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF1QyxHQUE5QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBSSxFQUFFLEVBQUcsRUFBSyxHQUFHLEdBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxHQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSyxFQUFJLEVBQUUsR0FBRSxJQUFJLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxHQUFFLElBQUcsR0FBRSxFQUFFLEdBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFFLEVBQUUsR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBRyxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQzdtQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQWdpQyxPQUE5aEMsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFHLENBQUMsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFTLEVBQzdtQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUUsRUFBRSxHQUFHLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFDLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxHQUFJLEdBQUUsRUFBRyxHQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBSSxHQUFFLEVBQUUsRUFBQyxFQUFFLEdBQUksR0FBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFDLEVBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFLLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBTyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBUyxJQUFHLEdBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxJQUFJLEVBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRSxJQUFJLElBQUksR0FBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRyxHQUFFLElBQUksR0FBSSxHQUFJLEdBQUUsSUFBSSxJQUFJLEVBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQWlCLE9BQWYsR0FBSSxHQUFFLElBQUksRUFBRyxFQUFTLEdBQzltQyxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDbG5DLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBUSxPQUFOLEVBQUUsRUFBRSxFQUFTLE9BQVEsSUFBRyxPQUFPLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxFQUFFLEdBQUcsTUFBTyxJQUFHLE9BQU8sRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFPLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxFQUFFLEdBQUcsTUFBTyxJQUFHLE9BQU8sRUFBRSxHQUFHLE1BQU8sSUFBVSxPQUFQLEdBQUksQ0FBQyxFQUFTLEdBQUksRUFBRSxHQUFJLEVBQUUsT0FBUyxJQUFHLE9BQU8sRUFBRSxPQUFRLElBQUcsT0FBTyxFQUFFLEdBQUcsTUFBTyxJQUFHLE9BQU8sRUFBRSxHQUFHLE1BQU8sS0FBSSxPQUFPLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxFQUFFLEdBQUcsTUFBTyxJQUFHLE9BQU8sRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFPLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxFQUFFLEdBQUcsR0FBbUIsT0FBZixFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFTLE9BQVEsR0FBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU8sR0FBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU8sR0FBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU8sR0FBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBZ0IsR0FBZixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFPLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBZ0IsR0FBWixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQU0sRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBUSxPQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQU0sR0FBSixFQUFFLEVBQUssR0FBRyxHQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBZ0IsR0FBWixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQU0sRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU8sR0FBRSxHQUFJLEdBQUcsR0FBRyxJQUFJLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU8sSUFBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLENBQUMsR0FBRyxPQUFPLEVBQzFuQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQW1TLE9BQWpTLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEdBQUcsTUFBTSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFJLEVBQVMsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxPQUFRLE9BQU8sT0FBTyxHQUFFLEdBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQWdKLEdBQTdJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFJLEVBQUssRUFBRSxHQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBRyxFQUE2TSxHQUEzTSxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFJLEVBQUssSUFBSSxDQUFDLEVBQUcsR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksR0FBRyxFQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLE1BQU0sR0FBSSxFQUFFLE1BQU0sR0FBSSxFQUFFLEtBQUssR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxPQUFPLEVBQUcsRUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBUSxHQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVcsR0FBRSxHQUFJLEdBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEVBQW9FLE9BQWpFLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLElBQUksRUFBUyxFQUNscUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQVEsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQVMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQVMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxNQUFPLE9BQVEsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsT0FBTyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBYSxHQUFaLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQWMsT0FBWCxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsV0FBVyxHQUFHLEVBQWMsT0FBWCxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRyxPQUFPLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxHQUFFLE9BQU8sR0FBRSxLQUFJLEdBQVUsR0FBUCxFQUFFLEdBQUUsSUFBTSxHQUFHLEVBQWMsT0FBWCxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsV0FBVyxHQUFHLEVBQWMsT0FBWCxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBSSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFHLEVBQW1ELE9BQWhELEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBaUYsT0FBOUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQ2hyQyxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFNLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQW9CLEdBQW5CLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBTSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSSxFQUFFLG1DQUFtQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFLLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxHQUFHLE9BQVEsR0FBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUssRUFBRSxLQUFLLEtBQU0sR0FBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxLQUFLLEVBQW9CLEdBQWxCLEVBQUUsR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFvQixHQUFsQixFQUFFLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBb0IsR0FBbEIsRUFBRSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUcsR0FBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUF1QixHQUF0QixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEdBQUcsS0FBTSxPQUFPLFFBQVMsR0FBTixDQUFrQixHQUFULEdBQUUsR0FBSSxFQUFDLEdBQU0sR0FBRyxHQUFFLEVBQUUsRUFBRSxNQUFNLEdBQUksRUFBQyxHQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSSxFQUFFLDREQUE0RCxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBK0IsR0FBN0IsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQU0sRUFBRSxPQUFPLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLFNBQVUsR0FBTixDQUFrQixHQUFULEdBQUUsR0FBSSxFQUFDLEVBQUssR0FBRyxHQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFRLE9BQU0sR0FBSSxFQUFDLEVBQUUsT0FBTyxHQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxTQUFTLEVBQUcsR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFJLEdBQUcsQ0FBQyxRQUFRLEdBQU4sQ0FBa0IsR0FBVCxHQUFFLEdBQUksRUFBQyxHQUFNLEdBQUcsR0FBRSxFQUFFLEVBQUUsTUFBTSxHQUFJLEVBQUMsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxxR0FBcUcsQ0FBQyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSSxFQUFFLGdCQUFnQixDQUFDLEVBQ25yQyxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLElBQUksR0FBRyxHQUFHLElBQUssR0FBSSxFQUFFLElBQUssRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUN4ckMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRSxFQUFFLElBQUksR0FBRSxFQUFFLENBQUMsRUFBRSxJQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEdBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFDLEVBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxHQUFFLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLENBQWdCLEdBQWYsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLENBQUMsR0FBTSxFQUFFLENBQUMsRUFBRSxHQUFFLFNBQVMsR0FBRyxJQUFHLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxJQUFHLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDcHNDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFzQyxHQUFwQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBTyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBYSxLQUFOLElBQUksRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFNLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU0sRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLE1BQU0sR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsT0FBTyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxJQUFLLEVBQUUsRUFBMEMsR0FBeEMsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEtBQUssSUFBSyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxPQUFPLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLElBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEtBQUssSUFBSyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLE1BQU0sR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFTLEtBQU4sRUFBRSxFQUFFLEVBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLElBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxPQUFPLEVBQStELEdBQTdELEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxxQkFBcUIsQ0FBQyxFQUFTLEdBQU4sRUFBRSxFQUFFLEVBQUssRUFBRSxPQUFPLEdBQUcsQ0FBcUYsR0FBcEYsRUFBRSxHQUFHLEtBQUssT0FBTyxJQUFJLElBQUksT0FBTyxjQUFjLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsS0FBUSxNQUFNLEVBQUUsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFPLEtBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFjLEdBQWIsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxJQUFJLEdBQUcsR0FBSSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUN6c0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLHFCQUFxQixDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksc0xBQXNMLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxxREFBcUQsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLGdEQUFnRCxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSwrREFBK0QsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLDZGQUE2RixDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksd0ZBQXdGLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSwwQkFBMEIsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLDREQUE0RCxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUkscURBQXFELENBQUMsQ0FBQyxFQUNodEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQTBELEdBQW5ELEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQU8sSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLElBQUssR0FBRyxJQUFLLEdBQUcsSUFBTSxNQUFNLEdBQUksSUFBSSxHQUFJLHdFQUF3RSxDQUFDLEVBQW1ELEdBQWpELEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBTSxHQUFJLEVBQUUsSUFBSyxHQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQXlCLEdBQXRCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUcsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQVcsR0FBRSxHQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQVMsR0FBTixFQUFFLEVBQUUsRUFBSyxHQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxPQUFPLElBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRSxFQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFFLEdBQUcsRUFBRSxHQUFFLEdBQUcsRUFBRSxHQUFFLEdBQUksSUFBSSxHQUFJLEdBQUUsRUFBRSxHQUFFLENBQUMsRUFBRSxFQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBSSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUUsRUFBQyxFQUFFLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsRUFBQyxFQUFFLElBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRSxHQUFHLEVBQUUsR0FBRSxHQUFHLEVBQUUsR0FBRSxHQUFJLElBQUksR0FBSSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsRUFBQyxFQUFFLEdBQUUsSUFBSSxHQUFJLEdBQUksR0FBRSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBQyxHQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUM3dEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBOEYsR0FBNUYsR0FBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFHLEVBQUUsR0FBRSxHQUFFLEdBQUcsRUFBRSxHQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxFQUFLLEdBQUcsR0FBRSxHQUFHLEVBQUcsR0FBRSxFQUFHLEdBQUUsR0FBRyxFQUFFLElBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxJQUFHLEdBQUksRUFBQyxFQUFFLEVBQXdHLEdBQXRHLElBQUcsR0FBRSxJQUFHLEVBQUUsR0FBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFHLEVBQUUsR0FBRSxHQUFFLEdBQUcsRUFBRSxHQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUcsRUFBRSxFQUFLLEdBQUcsR0FBRSxHQUFHLEVBQUcsR0FBRSxFQUFHLEdBQUUsR0FBRyxFQUFFLElBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxJQUFHLEdBQUksRUFBQyxFQUFFLEVBQVksR0FBVixJQUFHLEdBQUUsSUFBRyxLQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUcsRUFBRSxHQUFFLEdBQUcsR0FBRSxHQUFFLEtBQUksRUFBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFHLEdBQUUsR0FBRSxFQUFHLEdBQUUsR0FBRSxJQUFJLEdBQUUsR0FBRSxHQUFHLEVBQUUsR0FBRSxJQUFHLEVBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFHLEdBQUUsR0FBRSxJQUFJLEVBQUUsR0FBRSxJQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUMsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUcsR0FBRSxHQUFFLEdBQUcsR0FBRSxHQUFFLEtBQUksR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFHLEdBQUUsR0FBRSxHQUFHLEdBQUUsR0FBRSxLQUFJLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxLQUFJLEdBQUUsR0FBRSxJQUFHLEdBQUksRUFBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUMsRUFBRSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUcsTUFBSyxFQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBSyxLQUFLLEtBQUssR0FBRSxHQUFFLEdBQUUsRUFBQyxFQUFFLEVBQUUsR0FBRSxvQkFBb0IsR0FBRSxJQUFHLEVBQUUsR0FBRyxHQUFFLElBQUcsRUFBRSxHQUFHLEdBQUUsRUFBRSxHQUFFLEdBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssSUFBRyxHQUFFLElBQUcsR0FBRSxFQUFFLEdBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQzV2QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsdUJBQXVCLEVBQUUsNGxCQUE0bEIsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBTSxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUN4d0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBb0IsR0FBbEIsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssSUFBRyxFQUFHLE9BQU8sT0FBUSxHQUFFLE1BQU8sUUFBUyxHQUFFLE9BQU8sT0FBUyxHQUFFLE1BQU8sV0FBWSxHQUFFLE1BQU8sWUFBYSxHQUFFLE1BQU8sYUFBYyxHQUFFLE1BQU8sY0FBZSxHQUFFLE1BQU8sbUJBQXNFLE9BQW5ELEdBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFFLEdBQUcsTUFBVSxHQUFFLEdBQUcsS0FBUSxHQUFFLElBQUksRUFBUyxHQUFFLEVBQTRDLEdBQXhDLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBSyxHQUFHLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsQ0FBQyxHQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFJLEVBQUUsR0FBSSxHQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBVSxHQUFJLEdBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFFLEVBQUUsRUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRSxJQUFJLFNBQVUsSUFBRyxPQUFRLENBQUMsR0FBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFDLEVBQUUsRUFBRSxNQUFNLEdBQUssQ0FBQyxHQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSyxHQUFFLEdBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUUsR0FBRyxFQUFHLENBQUMsRUFBRSxHQUFFLElBQUksRUFBQyxFQUFFLEdBQUUsR0FBRyxHQUFJLEVBQUMsRUFBRSxHQUFFLEdBQUksR0FBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFFLEdBQUcsVUFBVyxHQUFFLEdBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFLLEdBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFFLEVBQUUsS0FBSyxHQUFFLElBQUksRUFBRSxJQUFLLEdBQUcsR0FBRyxFQUFHLFFBQVMsR0FBRSxFQUFFLEVBQUUsTUFBTSxHQUFFLElBQUksR0FBSSxFQUFFLEVBQW1CLEdBQWhCLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQWtCLE9BQWYsSUFBSSxHQUFFLEVBQUUsR0FBRyxJQUFXLEdBQUksR0FBRSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSyxHQUFFLEVBQUUsR0FBRyxHQUFFLEdBQTRCLE9BQXpCLEdBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFFLEVBQUUsR0FBRyxJQUFXLEdBQUksR0FBRSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSyxHQUFFLEVBQUUsR0FBRyxHQUFzQyxPQUFuQyxHQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFFLEVBQUUsR0FBRyxJQUFXLEdBQUksR0FBRSxFQUFFLEdBQUUsQ0FBQyxFQUFzQyxHQUFwQyxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxJQUFJLEdBQUksSUFBSSxHQUFFLEdBQUcsS0FBVSxFQUFFLElBQUcsRUFBRyxHQUFJLEdBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLElBQUksR0FBRSxHQUFHLEdBQUksR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLENBQUMsTUFBTyxJQUFFLEdBQUcsR0FBSSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQXVDLE9BQXJDLEdBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFFLEdBQUcsS0FBTyxHQUFFLEdBQUcsR0FBRyxFQUFTLEdBQUUsRUFDOXdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQXNOLE9BQXBOLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBUyxFQUFFLE9BQVEsR0FBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVyxHQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVcsR0FBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsY0FBYyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBd0YsR0FBckYsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxHQUFJLEVBQUUsRUFBRSxFQUFDLEVBQUcsR0FBSSxJQUFHLEVBQUssS0FBSyxPQUFPLEVBQUUsS0FBSyxJQUFLLEVBQUssS0FBSyxPQUFPLEVBQUUsS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxHQUFFLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUFFLE9BQVEsR0FBRSxHQUFHLElBQUcsS0FBTSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTyxLQUFJLEdBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxHQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksVUFBVyxHQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBc0MsR0FBN0IsRUFBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsY0FBYyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBRSxHQUFHLEtBQUssR0FBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFDL3hDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFNLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBVSxHQUFULEVBQUUsR0FBSSxDQUFDLEdBQU0sR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEtBQUssR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxDQUFDLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLEdBQUcsR0FBRyxHQUFJLENBQUMsR0FBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEdBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUE2QixHQUF6QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDdHlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUksRUFBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEdBQUcsRUFBRyxTQUFTLEdBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFpQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUcsU0FBUyxHQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBQyxJQUFJLEdBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFHLEdBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUMsSUFBSSxHQUFFLEdBQUcsR0FBRSxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksR0FBRSxJQUFJLEdBQUksRUFBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBdUIsR0FBcEIsR0FBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBRyxFQUFFLENBQUMsR0FBRyxHQUFFLEVBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFHLEdBQUUsR0FBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxPQUFPLElBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFHLElBQUksRUFBRSxJQUFJLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUUsR0FBRSxPQUFPLEdBQUUsS0FBSSxHQUFFLENBQUMsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFJLEdBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBb0IsR0FBakIsRUFBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSyxHQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFDNXlDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUUsSUFBSSxHQUFJLEdBQUUsSUFBSSxFQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUUsR0FBRSxFQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFnQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBaUcsR0FBaEcsRUFBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFHLEdBQUksR0FBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBTSxFQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsR0FBSSxHQUFFLEdBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFJLElBQUssR0FBSSxFQUFFLEdBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxHQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFFLEVBQUcsR0FBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLE9BQU8sSUFBSSxDQUFDLEdBQUUsRUFBRyxHQUFJLEdBQUUsRUFBRSxHQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQTRDLEdBQXpDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBSSxHQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUcsR0FBSSxDQUFDLFVBQU8sR0FBRSxHQUFJLElBQUksR0FBSSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFLLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUcsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUssS0FBSyxJQUFJLENBQUMsSUFBSyxHQUFJLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUSxFQUFFLEdBQUksR0FBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVEsR0FBSSxDQUFDLEVBQUksR0FBRSxJQUFHLE9BQU8sRUFDL3lDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRSxFQUFHLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBb0QsR0FBL0MsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBSyxJQUFHLEdBQUcsR0FBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFPLEdBQU4sRUFBRSxHQUFFLEVBQUssRUFBRSxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFZLEdBQU4sRUFBRSxHQUFFLEVBQUssRUFBRSxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUssSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLElBQUksRUFBRSxLQUFLLEdBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFHLEdBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxDQUFDLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxJQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLEdBQUUsT0FBTyxHQUFFLEtBQUksR0FBRSxDQUFDLEdBQUUsR0FBRSxJQUFHLEVBQUUsR0FBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUcsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFJLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVMsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFHLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQ2p6QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFRLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUssR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUM5ekMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLE9BQU8sSUFBSSxDQUFzQyxHQUFyQyxHQUFHLEdBQUksRUFBRSxHQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsR0FBRSxFQUFFLEdBQUcsR0FBRyxHQUFNLEdBQUcsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxHQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBK0MsR0FBN0MsRUFBRSxJQUFJLEVBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUssR0FBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsS0FBSSxNQUFNLENBQVUsR0FBVCxJQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxHQUFFLEVBQUUsUUFBOEwsR0FBdEwsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxJQUFLLEdBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxHQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSyxHQUFJLEVBQUUsRUFBRSxHQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsR0FBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRSxFQUFFLENBQUMsRUFBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFHLEdBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFzSCxPQUFqSCxHQUFFLElBQUksR0FBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUssS0FBSyxJQUFJLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFDLEVBQVMsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFFLEdBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQy96QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUErQixHQUE3QixHQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxJQUFPLEtBQUksR0FBSSxFQUFFLEtBQU0sSUFBRyxJQUFNLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsU0FBUyxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUF3QixHQUF2QixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFDLEVBQUcsU0FBMkMsR0FBbEMsR0FBRSxFQUFHLEdBQUUsR0FBRyxFQUFJLElBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBTSxHQUFHLEdBQUUsSUFBSSxFQUFFLEVBQUMsRUFBRSxHQUFFLEdBQUcsRUFBSSxHQUFFLEVBQUcsRUFBRSxFQUFDLEVBQUUsR0FBRSxHQUFHLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBd0IsR0FBdkIsRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksRUFBQyxFQUFHLFNBQTRDLEdBQW5DLEdBQUUsRUFBRyxHQUFJLEVBQUUsRUFBSSxJQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQU0sR0FBRyxHQUFFLElBQUksRUFBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUksR0FBRSxFQUFHLEVBQUUsRUFBQyxFQUFFLEdBQUksR0FBRSxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQXFDLEdBQXBDLElBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQU0sR0FBRSxHQUFHLEVBQUcsU0FBZ0IsR0FBUCxFQUFFLEtBQVEsR0FBRyxFQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUcsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFHLElBQUksR0FBRSxJQUFJLEdBQUksRUFBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFTLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFFLElBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEtBQUssRUFBQyxFQUMvMEMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFFLEdBQUksSUFBSSxHQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEVBQUMsRUFBRyxHQUFJLEdBQUUsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRSxHQUFJLEdBQUksRUFBQyxDQUFDLEdBQUcsR0FBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUssR0FBRSxFQUFFLEVBQUcsR0FBRSxJQUFJLElBQUksR0FBRSxFQUFFLEtBQUksSUFBSSxFQUFFLEdBQUUsRUFBQyxFQUFFLEdBQUksR0FBRSxFQUFFLEVBQUMsRUFBSSxHQUFFLEdBQUcsR0FBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxPQUFPLElBQUssR0FBSSxHQUFFLElBQUksRUFBRyxFQUFFLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRyxHQUFJLEdBQUUsR0FBRyxJQUFHLElBQUksSUFBSSxHQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUcsR0FBSSxHQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUUsSUFBSSxHQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxPQUFPLElBQUssRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQVEsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxHQUFFLEVBQUcsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFFLEdBQUcsS0FBSSxPQUFPLEdBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRyxHQUFFLEVBQUcsR0FBRSxHQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRSxHQUFHLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBSSxHQUFFLEVBQUUsRUFBQyxFQUFTLEVBQUUsRUFBRSxHQUFHLElBQUcsSUFBSSxJQUFJLEdBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUUsT0FBTyxJQUFJLENBQUMsRUFBRSxHQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxJQUFJLEdBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFTLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQ3IxQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFNLEVBQUUsR0FBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxDQUFzQyxHQUFyQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFNLEVBQUUsRUFBRyxTQUFTLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBSSxFQUFFLE9BQU8sYUFBYSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBSyxTQUFTLElBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQXVOLEdBQWxOLEVBQUUsS0FBSyxHQUFHLEdBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRyxHQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLFFBQVEsSUFBSSxHQUFFLEVBQUcsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBRyxFQUFFLEtBQVEsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLElBQUksR0FBSSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxHQUFHLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxNQUFNLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxJQUFJLEdBQUksR0FBRyxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFLLFNBQVMsR0FBRyxHQUFlLEdBQVosRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sR0FBSSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFRLEdBQVAsRUFBRSxHQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUssRUFBRSxHQUFLLGtCQUFrQixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUssRUFBRSxHQUFLLFNBQVMsR0FBRyxFQUFHLFNBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUssRUFBRSxLQUFPLElBQUksRUFBRSxFQUFFLElBQU8sYUFBYyxJQUFJLEVBQUUsQ0FBQyxFQUFHLE9BQU8sSUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLEdBQUssSUFBTyxFQUFFLEdBQUssRUFBSyxFQUN4MUMsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksSUFBSyxJQUFJLEVBQUUsS0FBSyxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLEdBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLElBQUksR0FBSSxLQUFLLEdBQUksRUFBRSxHQUFLLEVBQUUsR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLEdBQUksRUFBRSxJQUFLLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxHQUFJLEVBQUUsSUFBSyxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFDMTFDLFNBQVMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQThCLEdBQXZCLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLE9BQVEsSUFBUSxHQUFMLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVyxJQUFHLElBQUksRUFBRSxFQUFFLE1BQU0sS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFRLEdBQUUsRUFBRSxVQUFXLElBQUcsSUFBSSxFQUFFLEVBQUUsTUFBTSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxjQUFjLElBQUksRUFBRSxRQUFRLElBQUssRUFBRSxFQUFFLEVBQUUsR0FBa0IsR0FBZixFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFNLEVBQUUsUUFBUSxNQUFPLEVBQUUsRUFBRSxJQUFLLEVBQUUsSUFBSyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sT0FBTyxPQUFRLEtBQUksRUFBRSxFQUFFLFVBQVcsSUFBRyxFQUFFLEVBQUUsVUFBVyxJQUFHLEVBQUUsRUFBRSxVQUFXLElBQUcsRUFBRSxFQUFFLFVBQVcsSUFBRyxFQUFFLEVBQUUsVUFBVyxJQUFHLEVBQUUsRUFBRSxVQUFXLElBQUcsRUFBRSxFQUFFLFVBQVcsSUFBRyxFQUFFLEdBQUcsVUFBVyxJQUFHLEVBQUUsR0FBRyxVQUFXLElBQU8sR0FBSixFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQW1CLE9BQWpCLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQVMsT0FBUSxJQUFHLEVBQUUsR0FBRyxVQUFXLElBQUcsRUFBRSxHQUFHLFVBQVcsSUFBRyxFQUFFLEdBQUcsVUFBVyxJQUFHLEVBQUUsR0FBRyxVQUFXLElBQUcsRUFBRSxHQUFHLFVBQVcsSUFBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFtQixHQUFqQixFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsR0FBSSxFQUFFLFdBQVcsR0FBRyxHQUFJLEVBQUUsT0FBUSxPQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsVUFBVyxJQUFHLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBb0IsR0FBakIsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLGNBQWMsR0FBRyxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLGNBQWMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLE1BQU0sTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFHLFVBQVcsSUFBUSxHQUFMLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQ2oyQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUErQixHQUE3QixFQUFFLEdBQUcscUJBQXFCLENBQUMsR0FBTSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBTSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLENBQStCLEdBQTlCLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFTLE9BQU4sRUFBRSxFQUFFLEVBQVMsRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBWSxFQUFHLE9BQU8sRUFBRSxPQUFRLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSSxHQUFHLEdBQUcsRUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFnRSxHQUEvRCxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBSyxFQUFFLEdBQUcsS0FBTSxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLE1BQVEsS0FBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLEdBQUssRUFBRSxHQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUksRUFBRSxHQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUcsRUFBRSxHQUFHLE9BQU8sR0FBRyxJQUFLLEdBQUcsR0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBSSxHQUFHLEVBQUUsR0FBRyxNQUF3QyxHQUFsQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsS0FBSyxHQUFJLEVBQUUsR0FBSyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksQ0FBQyxDQUFDLE9BQVMsS0FBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLEdBQUssRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxFQUNuM0MsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXNCLEdBQXBCLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsS0FBUSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLENBQUMsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxLQUFVLEdBQUksSUFBSSxHQUFJLENBQUMsT0FBUSxJQUFHLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsR0FBSyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQW9CLEdBQWQsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFTLEdBQUcsR0FBSSxPQUFPLE9BQVEsU0FBUyxRQUFRLFNBQVMsUUFBUSxTQUFTLElBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFLLFVBQVcsU0FBUyxRQUFRLFFBQVEsSUFBRyxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBTSxVQUFXLFNBQVMsSUFBYyxHQUFYLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBTSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQW9CLEdBQWxCLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsTUFBYSxHQUFQLEdBQUksQ0FBQyxHQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBUSxHQUFQLEdBQUksQ0FBQyxHQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBSSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBTyxHQUFOLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFPLElBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFVLEdBQVAsR0FBSSxDQUFDLEVBQUssRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUE2QixPQUEzQixHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBUyxFQUM1M0MsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQW9DLEdBQWxDLEVBQUUsR0FBRywwQkFBMEIsQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sR0FBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBQyxFQUFFLEVBQUcsRUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxHQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFnQixHQUFmLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsR0FBSSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQVMsRUFBRSxJQUFJLEdBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxHQUFFLElBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFDLEVBQUUsRUFBRyxFQUFRLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEdBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxLQUFJLElBQUksR0FBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUksR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBZ0IsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUksU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUcsR0FBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQy8zQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFNLEVBQUUsQ0FBQyxHQUFFLEdBQU0sSUFBSSxFQUFFLEVBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQWtCLEdBQWpCLEVBQUUsRUFBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRyxTQUFTLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sU0FBUyxHQUFFLEdBQUssSUFBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsSUFBSSxHQUFHLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUUsSUFBTyxJQUFJLEdBQUcsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFNLEdBQUUsR0FBSyxFQUFFLEdBQU0sSUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFvQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUksRUFBRSxFQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFFLFlBQWdCLEdBQUcsSUFBRyxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBdUgsR0FBakgsRUFBRSxHQUFLLEVBQUcsRUFBRSxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQU0sR0FBRyxFQUFHLEVBQUcsRUFBRSxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUUsS0FBVSxHQUFHLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLE1BQU8sR0FBRSxJQUFPLEdBQUcsR0FBRyxHQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLFlBQWMsSUFDaDZDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksMENBQTBDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSwwQ0FBMEMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLDBDQUEwQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksV0FBVyxHQUFJLGlCQUFpQixDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksdUNBQXVDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSw0Q0FBNEMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLFFBQVEsR0FBSSxjQUFjLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxRQUFRLEdBQUksY0FBYyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUkseUNBQXlDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxVQUFVLEdBQUksZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSx3Q0FBd0MsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLFNBQVMsR0FBSSxlQUFlLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxzQ0FBc0MsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLE9BQU8sR0FBSSxhQUFhLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSx1Q0FBdUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLFFBQVEsR0FBSSxjQUFjLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSx3Q0FBd0MsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLFNBQVMsR0FBSSxlQUFlLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSx5Q0FBeUMsQ0FBQyxDQUFDLEVBQ3I3QyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQW9ELEdBQWxELEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLElBQUksR0FBSSxFQUFFLEtBQU0sR0FBRyxHQUF5RSxHQUFwRSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLElBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFPLEtBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFRLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU8sS0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUcsR0FBRyxHQUFHLEdBQUssR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBSyxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxHQUFLLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFPLEdBQUUsRUFBRSxHQUFHLElBQUksRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFDNTdDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWlGLEdBQS9FLEVBQUUsR0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUssRUFBRSxFQUFFLFNBQVMsR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsSUFBSyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFzQyxHQUFwQyxFQUFFLEdBQUcsTUFBTSxHQUFJLEdBQUksRUFBRSxZQUFZLENBQUMsRUFBSyxFQUFFLENBQXVCLEdBQXRCLEVBQUUsRUFBRSxZQUFZLElBQUksRUFBSyxHQUFHLEdBQUksTUFBTSxHQUFJLElBQUksR0FBSSxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsR0FBSyxFQUFFLEdBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLFVBQVUsR0FBRyxHQUFHLEdBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsSUFBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxHQUFHLEVBQUUsU0FBUyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFNLEVBQUUsR0FBTSxFQUFFLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsU0FBUyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUF3RSxHQUFuRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBTSxFQUFFLE9BQU8sR0FBRyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsU0FBUyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxJQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUssR0FBRyxFQUFFLEVBQUUsU0FBUyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxNQUFNLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxNQUFNLEVBQUUsRUFBRSxTQUFTLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLE1BQU0sR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsSUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFtQixFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxTQUFTLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLElBQUssRUFBRSxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxRQUFRLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUE4QyxPQUE1QyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFTLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDMzhDLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksRUFBRSxHQUFJLElBQUksR0FBRyxHQUFHLElBQUssR0FBSSxFQUFFLElBQUssRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQzlpRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUE0TSxPQUExTSxFQUFFLEdBQUcsaUNBQWlDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsTUFBTyxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsS0FBSyxHQUFFLEtBQUssR0FBRSxLQUFLLEdBQUUsS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBVSxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBRSxHQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBQyxFQUFFLFVBQVcsR0FBRSxHQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBQyxFQUFFLFVBQVcsR0FBRSxHQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBQyxFQUFFLFVBQVcsR0FBRSxHQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBQyxFQUFFLGNBQWMsR0FBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUMsRUFBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksSUFBSSxDQUFDLENBQUMsRUFBVSxHQUFQLEVBQUUsS0FBUSxFQUFFLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFJLENBQUMsSUFBSSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBRywwQkFBMEIsQ0FBQyxFQUFFLEVBQUUsR0FBRyxXQUFXLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFDamtELFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUEyQyxPQUF4QyxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQVMsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRyxPQUFPLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLElBQUcsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBSSxFQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFFLElBQUksR0FBSSxHQUFJLElBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRSxHQUFJLEdBQUksRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsQ0FBQyxFQUFFLElBQUcsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBSyxLQUFLLEtBQUssRUFBQyxFQUFFLEdBQUksR0FBRyxFQUFJLElBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFFLEdBQUksR0FBRyxFQUFJLEdBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBd0UsR0FBdkUsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFFLEdBQUksR0FBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxDQUFDLENBQUMsRUFBSyxHQUFFLEdBQUUsRUFBRSxFQUFHLEdBQUUsRUFBRSxJQUFHLEVBQUUsR0FBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRSxFQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsQ0FBQyxFQUFFLElBQUcsR0FBRSxFQUFFLEdBQUUsR0FBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUksSUFBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxJQUFHLEdBQUUsRUFBUSxHQUFLLEdBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEdBQUksR0FBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFHLEdBQUksRUFBRSx1Q0FBdUMsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLGtCQUFrQixPQUFPLGFBQWEsRUFBRSxNQUFPLElBQUksR0FBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQVMsSUFBSSxHQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQVcsT0FBUCxJQUFJLEVBQUMsRUFBUyxHQUN2bEQsU0FBUyxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQVEsT0FBTyxPQUFPLE9BQU8sT0FBTyxRQUFRLFFBQVEsUUFBUSxRQUFRLE9BQU8sUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLElBQUcsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFPLElBQUcsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFPLEdBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFPLElBQUcsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFPLElBQUcsT0FBTyxJQUFJLEdBQUksRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU8sSUFBRyxPQUFPLElBQUksSUFBSSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTyxHQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLE1BQU0sR0FBSSxJQUFJLEdBQUcsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDLEdBQ3ZtRCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBZ0MsR0FBL0IsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQU8sRUFBRSxJQUFJLEVBQUUsRUFBRyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsRUFBWSxHQUFULEVBQUUsRUFBRSxHQUFRLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEdBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxHQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEdBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxHQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVEsRUFBRSxFQUFFLEdBQVEsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEdBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsR0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQ2h4RCxTQUFTLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsT0FBTyxPQUFRLElBQUcsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUssTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVyxLQUFJLElBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLElBQUcsSUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVcsS0FBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVyxJQUFHLElBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLElBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVyxJQUFHLEVBQUUsRUFBRSxTQUFTLEdBQUcsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFXLEtBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVyxJQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLElBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLElBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFXLElBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLE1BQU0sTUFBTSxNQUFNLEdBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVcsSUFBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxjQUFjLGNBQWMsY0FBYyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVyxLQUFJLEdBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsVUFBVyxLQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVyxLQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVyxLQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFXLEtBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVcsSUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLElBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsY0FBYyxNQUFPLEdBQU8sTUFBTyxHQUM5MkQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUE0UixHQUExUixJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEtBQUssR0FBRSxLQUFRLEdBQUcsRUFBRSxHQUFHLEdBQXdCLEdBQXJCLEdBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEdBQUcsR0FBRSxFQUFFLEVBQUcsR0FBRSxFQUFHLEdBQUUsRUFBRSxVQUFVLEdBQUcsR0FBRSxFQUFFLEVBQUcsR0FBRSxFQUFHLEdBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBd0IsR0FBckIsR0FBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUssR0FBRyxHQUFFLEVBQUUsRUFBRyxHQUFFLEVBQUcsR0FBRSxFQUFFLFVBQVUsR0FBRyxHQUFFLEVBQUUsRUFBRyxHQUFFLEVBQUcsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLEdBQUksR0FBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsSUFBSSxLQUFJLEdBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxvQ0FBb0MsRUFBRSwwVEFBc1UsQ0FBQyxFQUE4RyxHQUE1RyxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksRUFBRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBRyxJQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFNLEdBQUUsQ0FBc0IsR0FBckIsSUFBRyxHQUFJLEVBQUUsSUFBSyxHQUFFLE9BQVUsR0FBRyxHQUFJLEVBQUcsRUFBSSxHQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBNkMsR0FBMUMsR0FBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRSxDQUFDLEVBQUssR0FBSSxFQUFFLENBQUMsRUFBRyxHQUFFLEdBQUksR0FBSSxHQUFFLEdBQUUsQ0FBQyxFQUFHLEdBQUUsSUFBSSxHQUFFLEdBQUUsR0FBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLENBQXNCLEdBQXJCLElBQUcsR0FBSSxFQUFFLElBQUssR0FBRSxPQUFVLEdBQUcsR0FBSSxFQUFHLEVBQUksR0FBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUcsR0FBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRSxDQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUUsR0FBRSxHQUFFLEdBQUksRUFBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUMsRUFBRSxHQUFJLEVBQUUsRUFBQyxHQUFHLEdBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxHQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsR0FBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEdBQUUsRUFBRSxFQUFFLE9BQU8sSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBcUIsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsR0FBTSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUF1QixPQUFwQixFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLE9BQVEsT0FBTyxHQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLFVBQVcsR0FBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFnRixHQUEzRSxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxLQUFJLEdBQUksRUFBRSxPQUFVLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLElBQUksR0FBRSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBSSxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFDaDVELFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBRSxFQUFHLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxJQUFLLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLElBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFrRixHQUE5RSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUssR0FBRSxFQUFHLElBQUksRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLElBQUksQ0FBK0gsR0FBOUgsRUFBRSxFQUFFLEdBQUUsRUFBRyxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxJQUFJLEdBQUksRUFBRSxLQUFNLEdBQUcsR0FBSSxDQUFDLEdBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLElBQW1CLEdBQWQsSUFBRyxFQUFFLEtBQUksR0FBRSxJQUFNLEVBQUcsR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFPLEdBQUcsR0FBRSxHQUFHLEVBQUUsRUFBRSxDQUFnSixHQUEvSSxHQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFJLEdBQUksRUFBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUssR0FBRyxHQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxHQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLGNBQWUsQ0FBQyxHQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsRUFBRSxJQUFtQixHQUFkLElBQUcsRUFBRSxLQUFJLEdBQUUsSUFBTSxFQUFHLEdBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTyxHQUFHLEdBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBZ0osR0FBL0ksR0FBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBSSxHQUFJLEVBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUcsR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEdBQUcsR0FBRSxHQUFHLEVBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxVQUFrRyxHQUF2RixFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsQ0FBQyxFQUFLLEdBQUksR0FBRSxHQUFJLEVBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLEdBQUUsR0FBSSxFQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU8sR0FBRSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRyxHQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRSxHQUFHLEVBQUUsS0FBSyxFQUFHLEdBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRSxHQUFJLEVBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUssR0FBRyxHQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssT0FBTyxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLFdBQVksSUFBRyxFQUFHLElBQUksQ0FBQyxVQUFVLEdBQUUsRUFBRyxFQUFFLEdBQUUsTUFBSyxFQUFFLElBQUcsR0FBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUMsRUFBRSxHQUFJLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUUsRUFBRSxHQUFJLEdBQUUsR0FBRSxDQUFDLENBQUMsRUFBRSxHQUFFLEVBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3I5RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBVSxHQUFSLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxPQUFRLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxPQUFTLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxPQUFTLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxPQUFRLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUE4QyxPQUEzQyxHQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQWMsR0FBWCxHQUFFLElBQUksRUFBRSxDQUFDLEVBQUssSUFBRyxFQUFxQyxPQUFsQyxJQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsR0FBbUQsR0FBaEQsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQWlILE9BQTlHLEVBQUUsRUFBRyxFQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBYyxPQUFYLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxVQUFVLEdBQUcsRUFBYyxPQUFYLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxHQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFpRCxHQUFoRCxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLFFBQVEsS0FBSyxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBeUUsT0FBdEUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBYyxHQUFYLEdBQUUsSUFBSSxFQUFFLENBQUMsRUFBSyxJQUFHLEVBQXFDLE9BQWxDLElBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRyxHQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxHQUFtSixHQUFoSixFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLEVBQUcsRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFFLEVBQUcsRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEdBQUcsRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxDQUFDLENBQUMsSUFBSSxHQUFJLEdBQUcsRUFBSSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBYyxPQUFYLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxXQUFXLEdBQUksR0FBRyxFQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUksR0FBRyxFQUFJLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFjLE9BQVgsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQTZCLE9BQTFCLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQTZCLE9BQTFCLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFjLE9BQVgsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLFVBQVUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBYyxPQUFYLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxXQUFXLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQXlFLE9BQXRFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQWtCLFFBQVgsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFTLEdBQy85RCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsR0FBSyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUNyaUUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLElBQUksR0FBSSxHQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQTRhLEdBQXphLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksS0FBSyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUksR0FBRyxDQUFDLEVBQUUsSUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUssR0FBRSxDQUE0SSxHQUEzSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxJQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRSxLQUFRLElBQUcsSUFBSSxHQUFHLElBQTBFLEdBQXRFLEdBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFFLEdBQUksRUFBQyxFQUFFLEdBQUksR0FBRSxFQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUksR0FBRSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFLLEVBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRSxHQUFFLEdBQUksSUFBSSxHQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFDLEVBQTBELEdBQXZELEdBQUUsRUFBRSxHQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksS0FBSSxHQUFFLEdBQUUsR0FBRyxHQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsRUFBSyxHQUFHLEdBQUUsRUFBRSxHQUFFLEdBQUUsRUFBRSxHQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQTZjLEdBQTVjLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBRSxHQUFJLEVBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFLLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUcsR0FBSSxHQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBSSxHQUFHLEdBQUksR0FBRSxFQUFHLENBQUMsQ0FBQyxFQUFHLFNBQVMsRUFBRSxHQUFJLENBQUMsR0FBRyxHQUFJLEdBQUcsR0FBSSxHQUFFLEVBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFHLEdBQUksR0FBRSxFQUFDLEVBQUcsR0FBRSxHQUFHLEdBQUksR0FBRSxFQUFDLElBQUksR0FBRSxJQUFHLEdBQUUsRUFBRSxHQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsRUFBQyxFQUFFLEVBQUUsSUFBSSxLQUFJLEdBQUUsR0FBRSxHQUFHLEdBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRSxFQUFDLEVBQUUsR0FBSSxJQUFHLEdBQUksRUFBRSxLQUFL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R0FBSSxLQUFLLElBQUksR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxHQUFHLEdBQUksRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUE0QixHQUF2QixFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQU0sR0FBRyxHQUFJLENBQStCLEdBQTlCLEVBQUUsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBSSxDQUErQixHQUE5QixFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxHQUFHLEdBQUksQ0FBK0IsR0FBOUIsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBK0IsR0FBOUIsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFLLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUMveEUsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLElBQUksRUFBRSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBTSxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUssRUFBRSxJQUFJLElBQUksR0FBSSxHQUFJLEVBQUssRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUssRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLEdBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksRUFBRyxFQUFFLElBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBSyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQU0sSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUssRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksRUFBSyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsSUFBSyxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUcsR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFLLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUksS0FBSyxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBSyxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxJQUFJLEdBQzl6RSxTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxJQUFJLElBQUksR0FBSSx5QkFBeUIsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLHVCQUF1QixDQUFDLEVBQUUsR0FBSSxJQUFJLEdB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LElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxLQUFLLEdBQUksRUFBRSxHQUFNLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUksRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxLQUFLLEdBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxLQUFLLEdBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsSUFBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsS0FBSyxHQUFJLEVBQUUsSUFBSyxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUssRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsSUFBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxFQUFLLEVBQUUsS0FBSyxHQUFJLEVBQUUsSUFBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksRUFBSyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksRUFBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksRUFBSSxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksRUFBSSxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsSUFBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksRUFBSyxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxJQUFJLEtBQUssR0FBSSxFQUFFLElBQUssSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxLQUFLLEdBQUksRUFBRSxJQUFLLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUM5OUUsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRyxJQUFHLElBQUcsR0FBRyxHQUFHLElBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFHLElBQUcsSUFBRyxFQUFFLElBQUksR0FBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLEdBQUUsT0FBTyxHQUFFLEtBQUksR0FBRSxDQUFDLEdBQUUsR0FBRSxJQUFHLElBQUksR0FBRSxJQUFJLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRSxHQUFFLElBQUksRUFBRSxFQUFFLEdBQUUsR0FBRyxRQUFPLEdBQUcsRUFBRSxJQUFJLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxHQUFFLE9BQU8sR0FBRSxLQUFJLEdBQUUsQ0FBQyxHQUFFLEdBQUUsSUFBRyxHQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBSyxHQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRSxXQUFhLE9BQU8sR0FBRSxFQUFFLEdBQUUsSUFBSSxHQUFJLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFFLEVBQUUsRUFBRSxDQUFDLElBQUcsR0FBSSxHQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsR0FBRSxFQUFFLEdBQUcsR0FBRSxJQUFJLEdBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUUsR0FBRyxHQUFFLEVBQUcsR0FBRyxHQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxFQUFFLEdBQUUsR0FBRyxLQUFLLE9BQVEsR0FBRSxFQUFFLEdBQUUsR0FBRyxHQUFHLEdBQUUsS0FBSSxHQUFJLElBQUksR0FBRSxHQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxHQUFFLE9BQU8sR0FBRSxLQUFJLEdBQUUsQ0FBQyxHQUFFLEdBQUUsSUFBRyxJQUFJLElBQUcsSUFBSSxHQUFJLEdBQUUsQ0FBQyxFQUFFLElBQUcsRUFBRSxJQUFHLEVBQUUsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFHLEdBQUksR0FBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFnQyxHQUF2QixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFLLEdBQUUsR0FBRyxHQUFHLEVBQUUsRUFBeUQsR0FBdEQsR0FBRyxFQUFHLEdBQUcsR0FBSSxHQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxHQUFHLEdBQUksR0FBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBTSxLQUFLLEdBQUksRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFFLEVBQUUsR0FBRyxDQUFDLFdBQVcsR0FBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLEdBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLFFBQVMsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBUyxFQUFFLEVBQUcsR0FBRyxFQUFFLEdBQUcsSUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFFLEVBQUUsR0FBRyxFQUFFLElBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsUUFBb0MsR0FBM0IsR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxHQUFFLEdBQU0sR0FBRSxFQUFFLEdBQUcsR0FBRyxHQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBRyxHQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsWUFBVyxHQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFHLEdBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRSxFQUFFLEdBQUUsRUFBRSxPQUFPLEtBQUssR0FBRyxJQUFHLEVBQUUsSUFBRyxFQUFFLEVBQUUsR0FBRyxLQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxFQUFFLEdBQUUsRUFBRSxPQUFPLEtBQUssRUFBRSxLQUFJLEVBQUcsRUFBRSxJQUFHLElBQUssRUFBRSxHQUFFLEVBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRSxHQUFHLE9BQU8sS0FBSyxHQUFHLEtBQUksRUFBRSxHQUFHLEtBQUksR0FBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEdBQUcsSUFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFHLEdBQUcsR0FBRyxHQUFJLEdBQUcsSUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRSxHQUFHLE9BQU8sS0FBSSxDQUFDLEdBQUUsR0FBRyxJQUFHLElBQUksSUFBRyxJQUFHLE1BQU0sR0FBRSxFQUFHLEdBQUUsRUFBRSxJQUFJLEdBQUcsSUFBRyxHQUFFLElBQUksSUFBRyxHQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsSUFBSSxHQUFFLEdBQUcsSUFBRyxHQUFJLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLE9BQU8sS0FBSyxHQUFFLEVBQUUsSUFBRyxJQUFJLEdBQUksRUFBRSxJQUFHLEVBQUUsSUFBRyxFQUFFLEVBQUUsSUFBRyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRSxFQUFFLEdBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxJQUFHLEVBQUUsSUFBRyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFJLEdBQUUsRUFBRSxHQUFFLE9BQU8sSUFBSSxFQUFFLEdBQUUsRUFBRSxJQUFJLEdBQUUsRUFBRSxHQUFFLEdBQUUsT0FBTyxLQUFLLE9BQU8sR0FBRSxJQUFHLEVBQUUsT0FBUSxHQUFFLEVBQUUsR0FBRSxVQUFXLEdBQUUsRUFBRSxHQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsSUFBRyxHQUFJLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLEVBQUUsR0FBRSxFQUFFLE9BQU8sS0FBSyxHQUFHLEVBQUUsSUFBRyxJQUFJLEdBQUksRUFBRSxJQUFHLEVBQUUsSUFBRyxFQUFFLEVBQUUsSUFBRyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxJQUFHLEVBQUUsSUFBRyxFQUFFLEVBQUUsSUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFJLEdBQUcsRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLEdBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxJQUFLLE9BQU8sR0FBRyxHQUFHLEVBQUUsT0FBUSxHQUFFLEVBQUUsR0FBRSxVQUFXLEdBQUUsRUFBRSxHQUFFLEdBQUcsR0FBSSxPQUFPLEVBQ3prRixTQUFTLEVBQUcsRUFBRSxDQUFDLEdBQUksRUFBSSxHQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsT0FBTyxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsS0FBSyxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxHQUFJLElBQUksR0FBSSxFQUFFLEdBQUcsR0FBRyxPQUFPLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLEdBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU8sR0FBSSxJQUFJLEdBQUksQ0FBQyxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxNQUFPLEdBQUksSUFBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEVBQUUsTUFBTyxHQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcs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LEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxVQUFVLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFVBQVUsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFVBQVUsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksVUFBVSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFVBQVUsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFVBQVUsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksR0FBSSxVQUFVLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksVUFBVSxHQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUksVUFBVSxHQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFNBQVMsR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFNBQVMsR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFNBQVMsR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFNBQVMsR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFNBQVMsR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFNBQVMsR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFNBQVMsR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFNBQVMsR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLFNBQVMsR0FBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksR0FBRyxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNuNEYsU0FBUyxFQUFHLEVBQUUsQ0FBQyxHQUFJLEVBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUM1dUcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFLLEdBQUksRUFBRSxNQUFNLEVBQUUsR0FBSSxFQUFFLGdCQUFnQixFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFHLElBQUssR0FBSSxFQUFFLElBQUssRUFBRyxFQUFFLElBQUksRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxVQUFVLEdBQU0sR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksS0FBSyxFQUFFLEdBQUcsR0FBSSxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEtBQUssRUFBRSxHQUFHLEdBQUksR0FBSyxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsZUFBZSxLQUFLLEVBQUUsR0FBRyxHQUFJLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxJQUFJLEdBQU0sR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLEtBQUssRUFBRSxFQUFFLEdBQUksR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksSUFBSSxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxLQUFLLEVBQUUsRUFBRSxHQUFJLEdBQUssR0FBSyxHQUFLLEdBQU0sR0FBSyxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLEdBQUksR0FBSyxHQUFLLEdBQUssR0FBTSxHQUFLLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxlQUFlLEVBQUUsRUFBRSxHQUFJLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssaUJBQWlCLEVBQUUsR0FBRyxLQUFLLEdBQUssR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxvQkFBb0IsRUFBRSxHQUFHLEtBQUssR0FBSyxHQUFNLEdBQUssR0FBSyxHQUFNLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsUUFBUSxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUssR0FBSyxHQUFLLEdBQU0sR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxVQUFVLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBSyxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLEdBQUcsS0FBSyxHQUFLLEdBQUssR0FBSyxHQUFLLEdBQU0sR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBSyxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLGdCQUFnQixFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxTQUFTLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLGVBQWUsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksVUFBVSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxnQkFBZ0IsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxhQUFhLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsV0FBVyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBRyxVQUFVLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsZUFBZSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxXQUFXLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsZUFBZSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsY0FBYyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsWUFBWSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxRQUFRLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLGFBQWEsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsU0FBUyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxhQUFhLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsVUFBVSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxZQUFZLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxhQUFhLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxrQkFBa0IsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxXQUFXLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLGVBQWUsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcscUJBQXFCLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLHFCQUFxQixFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxtQkFBbUIsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsV0FBVyxFQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBRyxrQkFBa0IsRUFBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxRQUFRLEVBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLGNBQWMsRUFBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBRyxPQUFPLEVBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksZUFBZSxFQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBRyxxQkFBcUIsRUFBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsY0FBYyxFQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBRyxvQkFBb0IsRUFBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsZUFBZSxFQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBRyxnQkFBZ0IsRUFBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsc0JBQXNCLEVBQUksRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLElBQUksQ0FBQyxFQUN4ekcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBb0UsR0FBaEUsS0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFFLElBQUksQ0FBQyxFQUFFLElBQUcsR0FBRSxHQUFHLEVBQUssSUFBRyxHQUFFLENBQXNCLEdBQXJCLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBTSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUkseUZBQXlGLENBQUMsRUFBOEIsR0FBNUIsR0FBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLENBQUMsR0FBTSxJQUFHLEtBQUksR0FBRyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBYyxHQUFWLEdBQUUsSUFBSSxHQUFPLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBRyxHQUFHLElBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLGlFQUFpRSxDQUFDLEVBQUUsR0FBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFFLEdBQUcsRUFBcUYsR0FBbEYsR0FBRSxFQUFHLEdBQUUsR0FBRyxFQUFFLE1BQU0sR0FBSSxHQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBRSxHQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUMsRUFBRSxHQUFFLEdBQUcsR0FBSSxHQUFFLEVBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRyxFQUFLLElBQUcsR0FBSSxHQUFFLEVBQUcsSUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFFLEVBQUcsQ0FBQyxFQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLENBQUMsRUFBRSxHQUFJLEdBQUUsR0FBSSxFQUFHLEVBQUUsSUFBSSxFQUFDLE1BQU8sSUFBRyxLQUFJLEdBQUUsSUFBSSxHQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRSxHQUFHLEVBQUUsR0FBRyxHQUFFLEVBQUUsTUFBUSxDQUEyQyxHQUExQyxLQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBSyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBdUIsR0FBdEIsR0FBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUUsR0FBRyxJQUFJLENBQUMsRUFBSyxHQUFJLEVBQUUsRUFBRyxHQUFHLEtBQU0sTUFBTSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsOENBQThDLENBQUMsRUFBRSxHQUFHLEVBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBRyxJQUFLLElBQUksR0FBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRyxHQUFvVCxHQUFoVCxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxHQUFJLEdBQUUsRUFBRyxFQUFFLEdBQUcsSUFBTyxHQUFFLElBQUksR0FBRSxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRSxHQUFHLEVBQUUsR0FBSSxHQUFJLEdBQUUsQ0FBQyxFQUF3TixHQUFJLEdBQUUsR0FBRyxHQUFHLEtBQU0sRUFBRSxFQUFHLEdBQUksR0FBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUMsRUFBRSxHQUFJLEdBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEVBQUssS0FBSyxJQUFJLEdBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQyxFQUFxSSxHQUFqSSxHQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsR0FBRywwQkFBMEIsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFDLENBQUMsRUFBSyxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUssSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRSxDQUFDLEVBQXFFLEdBQW5FLEdBQUUsR0FBRyw4QkFBOEIsR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBSyxFQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxvSUFBb0ksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRSxHQUFHLHdCQUF3QixFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxFQUFLLEtBQUssSUFBSSxHQUFFLEVBQUssS0FBSyxJQUFJLEdBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFDLEVBQUUsR0FBRSxHQUFHLEVBQUUsRUFBRSxrQ0FBa0MsR0FBRSxJQUFJLEdBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsS0FBSSxHQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxHQUFHLEdBQUUsR0FBRyxFQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsSUFBRyxLQUFJLEdBQUUsS0FBSSxHQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxHQUFHLEdBQUUsR0FBRyxFQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsSUFBRyxLQUFJLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRyxHQUFFLEdBQUcsV0FBVyxHQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUksR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUUsR0FBRSxFQUFFLEVBQUMsRUFBRSxHQUFJLEdBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksS0FBTSxHQUFFLElBQUksR0FBRSxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRSxHQUFFLEVBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRSxHQUFFLEVBQUUsR0FBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sR0FBRSxJQUFJLEdBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFFLENBQUMsR0FBRyxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLElBQUksR0FBRSxJQUFJLEtBQU0sR0FBRSxJQUFJLEdBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFFLEdBQUUsRUFBRSxHQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLEdBQUksR0FBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBSSxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUUsR0FBRyxHQUFFLEdBQUUsR0FBRyxHQUFHLEdBQUksR0FBRSxHQUFJLEVBQUMsR0FBRyxHQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBRSxJQUFJLEdBQUksRUFBQyxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxRQUFTLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFFLElBQUssR0FBSSxFQUFFLEdBQUssRUFBK0MsT0FBN0MsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFDLENBQUMsRUFBRSxJQUFJLEVBQUMsRUFBUyxJQUFHLEdBQUUsSUFBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLFFBQVUsUUFBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQy9oSCxTQUFTLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUssR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEtBQVUsR0FBSSxJQUFJLEdBQUksQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsS0FBVSxHQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxLQUFVLEdBQUksSUFBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsS0FBVSxHQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLHN6R0FBc3pHLEVBQUUsR0FBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsS0FBVSxHQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUE0QyxPQUExQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFTLEVBQ3I1SCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLGFBQWEsRUFBRSwraUJBQStpQixFQUFFLElBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSxJQUFLLEdBQUksRUFBRSxLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUssRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxFQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsRUFDLzhILFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksZUFBZSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksVUFBVSxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUksUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLElBQUksSUFBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxTQUFTLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksZUFBZSxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxpQkFBaUIsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxjQUFjLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksT0FBTyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLFdBQVcsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxVQUFVLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLGdCQUFnQixHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLFdBQVcsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxXQUFXLEdBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLGVBQWUsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxPQUFPLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksU0FBUyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLFlBQVksR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxRQUFRLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksYUFBYSxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLFlBQVksR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksUUFBUSxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLFNBQVMsR0FBSSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLGFBQWEsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxXQUFXLEdBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLGNBQWMsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxPQUFPLEdBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksa0JBQWtCLEdBQUksSUFBSSxHQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksV0FBVyxHQUFJLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksV0FBVyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLGtCQUFrQixHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSwrQkFBK0IsR0FBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksUUFBUSxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLGVBQWUsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxnQkFBZ0IsR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssR0FBSSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUksVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksT0FBTyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksSUFBSSxHQUFJLE1BQU0sR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxzQkFBc0IsR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUksYUFBYSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLHFCQUFxQixHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLGVBQWUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBSSxRQUFRLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksdUJBQXVCLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBRyxHQUFJLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUksUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxjQUFjLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUksR0FBSSxHQUFJLG9CQUFvQixDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxRQUFRLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxVQUFVLEdBQUksRUFBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVB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RUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBRyxJQUFJLEdBQUssR0FBSyxFQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUcsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEtBQUssYUFBYSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxLQUFLLGtCQUFrQixFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBSyxHQUFNLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFLLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsS0FBSyxlQUFlLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsS0FBSyxhQUFhLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQU0sR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBSyxHQUFNLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQU0sR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFLLEdBQU0sR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUssR0FBSyxHQUFNLEdBQU0sR0FBSyxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBSyxHQUFLLEdBQU0sR0FBTSxHQUFLLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUssR0FBSyxHQUFNLEdBQU0sR0FBSyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQU0sR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEtBQUssS0FBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBSyxHQUFNLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxLQUFLLGdCQUFnQixFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLDZCQUE2QixHQUFNLEdBQU0sRUFBSyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBRyxHQUFNLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFHLFlBQVksRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsZ0JBQWdCLEVBQUksRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUMzbUwsU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUksR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBSSxHQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBSSxJQUFJLEdBQUcsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBSSxHQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBSSxHQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxLQUFLLElBQUksR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUcsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUcsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUcsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUcsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxLQUFLLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUcsR0FBSSxLQUFLLElBQUksR0FBSSxLQUFLLEdBQUcsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUcsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxLQUFLLEdBQUcsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxLQUFLLElBQUksR0FBSSxLQUFLLEdBQUcsR0FBSSxLQUFLLElBQUksR0FBSSxLQUFLLEdBQUcsR0FBSSxLQUFLLElBQUksR0FBSSxLQUFLLEdBQUcsR0FBSSxLQUFLLElBQUksR0FBSSxLQUFLLEdBQUcsR0FBSSxHQUFJLElBQUksS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxNQUFNLElBQUksR0FBSSxHQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBSSxHQUFJLEtBQUssTUFBTSxFQUFFLEVBQUUsR0FBSSxPQUFPLElBQUksR0FBSSxPQUFPLEdBQUcsR0FBSSxPQUFPLElBQUksR0FBSSxHQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxPQUFPLEdBQUcsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxPQUFPLEdBQUcsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBSSxHQUFJLE1BQU0sR0FBSSxFQUFFLEVBQUUsR0FBSSxHQUFJLE1BQU0sTUFBTSxFQUFFLEVBQ2xvWCxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUssR0FBSSxFQUFFLE9BQU8sRUFBRSxHQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQU0sR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssaUJBQWlCLEVBQUUsRUFBRSxHQUFHLEdBQUssR0FBSyxHQUFNLEdBQU0sR0FBSyxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxVQUFVLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEdBQUssR0FBTSxHQUFLLEdBQU0sR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssV0FBVyxFQUFFLEdBQUcsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFLLEdBQU0sR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLGFBQWEsRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsU0FBUyxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsV0FBVyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssY0FBYyxFQUFFLEdBQUcsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBSyxHQUFNLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxpQkFBaUIsRUFBRSxHQUFHLEdBQUcsR0FBSyxHQUFLLEdBQU0sR0FBTSxHQUFLLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxpQkFBaUIsRUFBRSxHQUFHLEdBQUcsR0FBSyxHQUFLLEdBQU0sR0FBTSxHQUFLLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxjQUFjLEVBQUUsR0FBRyxHQUFHLEdBQUssR0FBSyxHQUFNLEdBQU0sR0FBSyxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssY0FBYyxFQUFFLEdBQUcsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLG1CQUFtQixFQUFFLEdBQUcsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLGlCQUFpQixFQUFFLEdBQUcsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLHlCQUF5QixFQUFFLEdBQUcsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLGlCQUFpQixFQUFFLEdBQUcsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLGVBQWUsRUFBRSxFQUFFLEdBQUcsR0FBSyxHQUFLLEdBQU0sR0FBTSxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBSyxHQUFNLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyx3QkFBd0IsRUFBRSxHQUFHLEdBQUcsR0FBSyxHQUFLLEdBQU0sR0FBTSxHQUFLLEdBQU0sRUFBSSxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSyxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLG9CQUFvQixLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBSyxHQUFLLEdBQUssR0FBSyxFQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixHQUFHLEdBQUssR0FBSyxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFLLEdBQUssR0FBSyxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQU0sR0FBTSxHQUFNLEdBQUssR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBSyxHQUFLLEdBQU0sRUFBSyxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFHLFlBQVksR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsR0FBSSxFQUFFLEVBQUUsSUFBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsUUFBUSxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUssRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLDBCQUEwQixFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBSyxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEdBQUssR0FBTSxHQUFNLEdBQU0sR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLFdBQVcsR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQU0sR0FBSyxHQUFNLEdBQU0sR0FBTSxFQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFLLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUssRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBRyxJQUFJLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLElBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLFVBQVUsR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxXQUFXLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssY0FBYyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLGtCQUFrQixFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxNQUFNLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLFFBQVEsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUssR0FBTSxHQUFNLEdBQU0sR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFLLEdBQUssR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBSyxHQUFNLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxjQUFjLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUsscUJBQXFCLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEdBQUssR0FBTSxHQUFLLEdBQU0sR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLEdBQUcsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFLLEdBQUssR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBSyxHQUFLLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEdBQUcsR0FBSyxHQUFNLEdBQU0sR0FBTSxHQUFLLEdBQU0sRUFBSyxFQUFFLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBTSxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQU0sR0FBTSxHQUFNLEdBQU0sR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQU0sR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxjQUFjLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEdBQUksRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssWUFBWSxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLGlCQUFpQixFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFLLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsc0JBQXNCLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQUssR0FBTSxHQUFNLEdBQUssRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQU0sR0FBTSxHQUFNLEdBQU0sR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxtQkFBbUIsRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBSyxHQUFNLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsR0FBSSxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxhQUFhLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLGFBQWEsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUssR0FBSyxHQUFNLEdBQU0sR0FBSyxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBSyxHQUFLLEdBQU0sR0FBTSxHQUFLLEVBQUksRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssUUFBUSxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQUssR0FBSyxHQUFNLEdBQUssR0FBSyxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLGVBQWUsRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFLLEdBQUssR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsMEJBQTBCLEdBQU0sR0FBTSxFQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFLLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFNLEdBQU0sR0FBSyxHQUFNLEdBQUssRUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxjQUFjLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssaUJBQWlCLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssV0FBVyxFQUFFLEVBQUUsR0FBRyxHQUFLLEdBQU0sR0FBTSxHQUFNLEdBQUssR0FBTSxFQUFJLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLGNBQWMsRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBSyxHQUFNLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxpQkFBaUIsRUFBRSxFQUFFLEdBQUcsR0FBTSxHQUFNLEdBQUssR0FBTSxHQUFNLEdBQU0sRUFBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxjQUFjLEVBQUUsRUFBRSxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQU0sR0FBSyxHQUFNLEVBQUssRUFBRSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFNLEdBQU0sRUFBSSxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxVQUFVLEVBQUUsR0FBRyxHQUFHLEdBQU0sR0FBTSxHQUFLLEdBQUssR0FBTSxHQUFNLEVBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFHLGNBQWMsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsY0FBYyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxXQUFXLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLGlCQUFpQixFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxRQUFRLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLGFBQWEsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsY0FBYyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxRQUFRLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLG1CQUFtQixFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxRQUFRLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFHLG1CQUFtQixFQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxVQUFVLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLGdCQUFnQixFQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsSUFBRyxTQUFTLEVBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFHLGNBQWMsRUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksY0FBYyxFQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxtQkFBbUIsRUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsU0FBUyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxlQUFlLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsaUJBQWlCLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFHLGFBQWEsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsY0FBYyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxRQUFRLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLGNBQWMsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUcsT0FBTyxFQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUUsSUFBSSxZQUFZLEVBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLGVBQWUsRUFBSyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksU0FBUyxFQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxlQUFlLEVBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBSSxFQUFFLEdBQUksRUFBRSxHQUFHLElBQUcsZ0JBQWdCLEVBQUssRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFHLDZCQUE2QixFQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFDcnVaLElBQUksR0FBSSxTQUFTLEdBQUksVUFBVSxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksV0FBVyxHQUFJLFdBQVcsR0FBSSxZQUFZLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLHlCQUF5QixHQUFJLEtBQUssSUFBSSwrQkFBK0IsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxrQkFBa0IsSUFBSSxxREFBcUQsSUFBSSxlQUFlLEdBQUksT0FBTyxHQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksNEJBQTRCLEdBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUksWUFBWSxHQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxLQUFLLEdBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLG1CQUFtQixJQUFJLHVCQUF1QixHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxNQUFNLEdBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksK0JBQStCLEdBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxVQUFVLEdBQUksV0FBVyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksZUFBZSxHQUFJLEtBQUssR0FBSSxXQUFXLEdBQUksbUJBQW1CLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLFlBQVksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFJLE9BQU8sR0FBSSxZQUFZLElBQUksYUFBYSxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxrQ0FBa0MsSUFBSSxTQUFTLElBQUksNkJBQTZCLElBQUksWUFBWSxJQUFJLFVBQVUsSUFBSSxVQUFVLEdBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxHQUFJLE1BQU0sSUFBSSxVQUFVLElBQUksV0FBVyxJQUFJLFFBQVEsSUFBSSxRQUFRLEdBQUksTUFBTSxJQUFJLE9BQU8sSUFBSSxPQUFPLElBQUksU0FBUyxJQUFJLFlBQVksSUFBSSxVQUFVLElBQUksV0FBVyxJQUFJLFdBQVcsR0FBSSxLQUFLLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksZ0JBQWdCLElBQUksY0FBYyxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksVUFBVSxJQUFJLFlBQVksSUFBSSxXQUFXLElBQUksU0FBUyxJQUFJLFdBQVcsSUFBSSw2QkFBNkIsSUFBSSxpQkFBaUIsSUFBSSw2QkFBNkIsSUFBSSw0QkFBNEIsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksNkJBQTZCLEdBQUksUUFBUSxHQUFJLFFBQVEsR0FBSSxPQUFPLEdBQUksUUFBUSxHQUFJLGVBQWUsR0FBSSxJQUFXLEdBQUksZ0JBQWdCLElBQUksVUFBVSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksc0JBQXNCLEdBQUksSUFBUyxHQUFJLEtBQVUsR0FBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksMEJBQTBCLEdBQUksTUFBTSxHQUFJLE1BQU0sR0FBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFPLElBQUksbUJBQW1CLEdBQUksV0FBVyxHQUFJLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUksaUNBQWlDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxTQUFTLEdBQUksMkJBQXNCLEdBQUksbUNBQXVCLElBQUksU0FBUyxHQUFJLDBCQUFzQixJQUFJLFNBQVMsR0FBSSxTQUFTLElBQUksYUFBYSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksV0FBVyxJQUFJLGNBQWMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUkscUJBQXFCLEdBQUksb0JBQW9CLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVB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QUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksUUFBUSxHQUFJLHNEQUFzRCxHQUFJLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksc0JBQXNCLEdBQUksc0JBQXNCLEdBQUksS0FBSyxHQUFJLHdDQUF3QyxHQUFJLE9BQU8sR0FBSSxjQUFjLEdBQUksV0FBVyxJQUFJLHdCQUF3QixJQUFJLGVBQWUsR0FBSSxVQUFVLElBQUksaUJBQWlCLElBQUksWUFBWSxJQUFJLGVBQWUsSUFBSSxrQkFBa0IsSUFBSSxhQUFhLElBQUksa0JBQWtCLElBQUksbUJBQW1CLEdBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxpQ0FBaUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksc0NBQXNDLElBQUksY0FBYyxHQUFJLFNBQVMsR0FBSSxZQUFZLElBQUksb0JBQW9CLEdBQUksVUFBVSxJQUFJLGtCQUFrQixHQUFJLFdBQVcsSUFBSSxXQUFXLEdBQUksWUFBWSxHQUFJLG9CQUFvQixHQUFJLGFBQWEsSUFBSSxZQUFZLEdBQUksMENBQTBDLElBQUksUUFBUSxHQUFJLGdCQUFnQixHQUFJLDBDQUEwQyxHQUFJLGlDQUFpQyxJQUFJLHdCQUF3QixJQUFJLGdCQUFnQixJQUFJLHNCQUFzQixHQUFJLHNDQUFzQyxHQUFJLE1BQU0sSUFBSSxhQUFhLElBQUksa0JBQWtCLElBQUksWUFBWSxJQUFJLFNBQVMsR0FBSSxTQUFTLElBQUksZ0JBQWdCLElBQUksVUFBVSxJQUFJLFFBQVEsSUFBSSxVQUFVLElBQUksb0NBQW9DLElBQUksVUFBVSxJQUFJLHNCQUFzQixJQUFJLHFCQUFxQixHQUFJLGVBQWUsSUFBSSxVQUFVLElBQUksa0JBQWtCLElBQUkscUJBQXFCLEdBQUksZUFBZSxJQUFJLG1CQUFtQixJQUFJLGVBQWUsSUFBSSxjQUFjLElBQUksdUJBQXVCLElBQUksZ0JBQWdCLElBQUksd0JBQXdCLEdBQUksMENBQTBDLEdBQUksUUFBUSxJQUFJLGtDQUFrQyxHQUFJLGNBQWMsSUFBSSxhQUFhLElBQUksY0FBYyxJQUFJLGlCQUFpQixJQUFJLHdCQUF3QixJQUFJLDZLQUE2SyxJQUFJLHEzRUFBcTNFLElBQUksY0FBYyxJQUFJLFdBQVcsSUFBSSx5K0JBQTIrQixJQUFJLGFBQWEsR0FBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLHNDQUFzQyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSw4QkFBOEIsSUFBSSxpQ0FBaUMsSUFBSSxpQ0FBaUMsSUFBSSxzQ0FBc0MsSUFBSSxhQUFpQixFQUFFLEdBQUksSUFBSSxJQUFJLEdBQUcsRUFBSyxLQUFLLEVBQUssTUFBTSxDQUFDLEVBQUUsRUFBSyxLQUFLLE9BQU8sRUFBSyxLQUFLLFFBQVEsRUFBSyxHQUFJLENBQUMsRUFBRSxFQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEdBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsSUFBSSxJQUFHLElBQUcsSUFBRyxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBNkMsT0FBekMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUksRUFBRSxFQUFFLEtBQWEsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQVcsT0FBVixHQUFJLElBQUksRUFBUyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBTSxHQUFHLEVBQUksR0FBSSxTQUFTLENBQUMsRUFBTSxJQUFHLEVBQUksR0FBSSxRQUFRLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxXQUFXLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFJLENBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksTUFBTSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsTUFBTyxhQUFZLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxNQUFPLHFCQUFxQixFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBTyxPQUFOLEdBQUcsQ0FBQyxFQUFTLEdBQUcsRUFBRSxLQUFJLElBQUksSUFBTyxJQUFHLEVBQUksR0FBSSxTQUFTLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksU0FBUyxHQUFHLEVBQU0sSUFBRyxHQUFJLEdBQUksV0FBVyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBZSxPQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBUyxJQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsR0FBRyxFQUFFLEVBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFlLE9BQVosRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFTLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsTUFBTyxZQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxtRUFBbUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksVUFBVSxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEtBQUssRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsT0FBTyxLQUFLLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxPQUFPLEtBQUssS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksbUJBQW1CLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUcsS0FBSyxFQUFFLEtBQUssR0FBRyxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLElBQUksS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1REFBdUQsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFNLElBQUcsR0FBSSxHQUFJLEtBQUssRUFBRSxFQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxRQUFTLElBQUcsS0FBSyxFQUFFLEVBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQTZCLEdBQXpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQU0sTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQU0sTUFBTyxHQUFLLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQWlCLEdBQVgsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLEtBQUssR0FBRyxDQUFDLEVBQUcsTUFBTyxHQUFPLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBRyxLQUFLLEVBQUUsRUFBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUksK0JBQStCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFHLEtBQUssRUFBRSxFQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGNBQWMsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksS0FBSyxFQUFFLE9BQVEsRUFBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEtBQUssRUFBRSxPQUFRLEVBQUcsS0FBSyxFQUFFLElBQUksSUFBRyxJQUFJLEVBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFHLElBQUksR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsR0FBRyxFQUFNLEdBQUcsR0FBSSxHQUFJLFVBQVUsRUFBRSxFQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLHNDQUFzQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFHLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLEVBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLEVBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFHLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsRUFBRSxFQUFNLEdBQUcsR0FBSSxHQUFJLEtBQUssRUFBRSxFQUFJLEdBQUksR0FBRyxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGNBQWMsRUFBRyxFQUFFLEVBQUksS0FBSyxHQUFJLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQWMsT0FBWCxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQVMsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZ0JBQWdCLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQWlELE9BQTNDLEVBQUUsRUFBRyxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFTLElBQU0sRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksOENBQThDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0VBQXdFLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFHLEVBQUksR0FBSSwrQ0FBK0MsR0FBRyxFQUFFLEVBQUksSUFBSSxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksSUFBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFnQixPQUFiLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBUyxHQUFLLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUE0QixHQUExQixFQUFFLEVBQUUsRUFBRSxFQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQ0FBa0MsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQTJCLE9BQTFCLEtBQUssRUFBRSxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFTLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxFQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1Q0FBdUMsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRyxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFHLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBSSxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUcsRUFBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRyxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUcsRUFBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRyxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBDQUEwQyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3Q0FBd0MsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksMkNBQTJDLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBd0MsR0FBdEMsR0FBRyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFLLEVBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxHQUE4QyxHQUF4QyxHQUFHLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksR0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFHLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFVLE9BQVQsR0FBRyxJQUFJLEVBQVMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFVLE9BQVQsR0FBRyxJQUFJLEVBQVMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxLQUFNLE1BQU8sR0FBYyxPQUFULEdBQUcsSUFBSSxFQUFTLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQVUsT0FBVCxHQUFHLElBQUksRUFBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBVSxPQUFULEdBQUcsSUFBSSxFQUFTLElBQUksSUFBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUEwQixHQUF4QixHQUFHLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBSyxFQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFVLE9BQVQsR0FBRyxJQUFJLEVBQVMsR0FBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDZDQUE2QyxHQUFHLEVBQU0sR0FBRyxHQUFJLEdBQUksTUFBTSxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQXVELEdBQWpELEdBQUcsR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFLLEVBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLEVBQUUsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFVLE9BQVQsR0FBRyxJQUFJLEVBQVMsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFVLE9BQVQsR0FBRyxJQUFJLEVBQVMsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBVSxPQUFULEdBQUcsSUFBSSxFQUFTLElBQUksSUFBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQVUsT0FBVCxHQUFHLElBQUksRUFBUyxJQUFJLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFxRCxPQUFuRCxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQVUsT0FBVCxHQUFHLElBQUksRUFBUyxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFVLE9BQVQsR0FBRyxJQUFJLEVBQVMsSUFBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdUNBQXVDLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxtREFBbUQsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFVLE9BQVQsR0FBRyxJQUFJLEVBQVMsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQVUsT0FBVCxHQUFHLElBQUksRUFBUyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFHLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDZEQUE2RCxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxJQUFHLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUcsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBUSxHQUFHLElBQUksRUFBRSxFQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFRLEdBQUcsSUFBSSxFQUFFLEVBQUcsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQVEsR0FBRyxJQUFJLEVBQUUsRUFBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBUSxHQUFHLElBQUksRUFBRSxFQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkRBQTJELEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxJQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNENBQTRDLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxJQUFJLEdBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLCtDQUErQyxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUNBQXlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5Q0FBeUMsSUFBSSxFQUFNLEdBQUcsR0FBSSxHQUFJLFdBQVcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBYyxPQUFYLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBUyxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQTBCLE9BQXhCLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsR0FBVSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsSUFBSSxLQUFLLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUksS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQWMsT0FBWCxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQVMsSUFBRyxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFjLE9BQVgsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFTLElBQUcsS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG9CQUFvQixJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBCQUEwQixHQUFHLEVBQUUsRUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFHLEVBQUUsSUFBSSxFQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFNLE9BQUwsSUFBRyxFQUFTLElBQU0sRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUcsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQWEsR0FBWixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUssRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFPLEdBQTRCLE9BQXRCLEVBQUUsSUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQWlELEdBQTlDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQVksT0FBVCxFQUFFLEtBQUssRUFBUyxJQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxJQUFPLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsSUFBRyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFHLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsSUFBSSxHQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxJQUFJLEdBQUksS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUcsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUksRUFBRSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFHLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFHLEdBQUksRUFBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsS0FBSyxLQUFLLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sS0FBSyxFQUFFLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sS0FBSSxFQUFFLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLElBQUcsSUFBSSxFQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdCQUFnQixJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQXFELE9BQWxELEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBRyxJQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQVcsR0FBRyxJQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFxRCxPQUFsRCxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEdBQUcsSUFBRyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFXLEdBQUcsSUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksS0FBSyxHQUFHLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGdEQUFnRCxJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBSSxHQUFHLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxvQkFBb0IsR0FBRyxFQUFFLEVBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxhQUFhLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZUFBZSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxLQUFNLE1BQU8sR0FBSyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQWUsT0FBWixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQVMsR0FBRyxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE1BQU8sSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksZUFBZSxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZ0NBQWdDLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFRLEVBQUUsS0FBSyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQ0FBK0MsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLElBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxNQUFPLFVBQVUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxpQkFBaUIsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsTUFBTyxPQUFPLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFRLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLElBQUksSUFBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE1BQU8sT0FBTSxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDJDQUEyQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5REFBeUQsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseURBQXlELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQTRDLFFBQXpDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFVLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFLLENBQUMsS0FBSyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUEyQyxPQUF4QyxHQUFJLEtBQUssRUFBRSxFQUFHLElBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBVSxPQUFVLE1BQUssRUFBRSxLQUFLLElBQUksS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFHLElBQUksQ0FBQyxFQUFHLE1BQU8sS0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHlDQUF5QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdURBQXVELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdURBQXVELElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFJLEdBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGlEQUFpRCxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLE1BQU8sR0FBRSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssTUFBTyxHQUE0QixHQUF6QixHQUFHLEdBQUcsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBTSxHQUFHLEVBQUcsT0FBTyxFQUFFLE9BQU8sR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLE1BQU0sR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLElBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLFlBQVksRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsTUFBTyxXQUFXLElBQUksSUFBTyxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE1BQU8sSUFBSSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksSUFBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxZQUFZLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxNQUFPLFdBQVcsSUFBSSxJQUFPLElBQUcsRUFBSSxHQUFJLGVBQWUsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLElBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUssRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsTUFBTyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBRyxFQUFJLEdBQUksaUJBQWlCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEVBQUcsR0FBRyxLQUFLLG9EQUFvRCxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUJBQW1CLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUJBQW1CLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksS0FBSyxFQUFFLE9BQVEsRUFBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxNQUFNLEdBQUcsS0FBSyxFQUFFLEVBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsT0FBUSxHQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLEdBQUUsT0FBTyxHQUFHLEVBQUUsSUFBSSxHQUFHLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsVUFBVSxPQUFPLElBQUksSUFBRyxLQUFLLEtBQUssR0FBRyxDQUFDLElBQUssRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxJQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsTUFBTSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdDQUFnQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBRyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksRUFBRSxJQUFJLElBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFPLElBQUcsRUFBSSxHQUFJLGdCQUFnQixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLE1BQU0sRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRyxPQUFPLEtBQUssRUFBRSxPQUFPLEtBQUssRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQU8sSUFBRyxFQUFJLEdBQUksZUFBZSxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFHLElBQUksSUFBRyxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFHLElBQUksS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsSUFBSSxJQUFHLElBQUksS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUJBQXlCLEdBQUcsRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdCQUFnQixJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssSUFBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBTSxNQUFPLEdBQU0sR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxPQUFXLE9BQU0sR0FBSSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQWlFLE9BQS9ELEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFFBQVEsR0FBRyxFQUFFLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQVMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsTUFBTSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUJBQXlCLEdBQUcsRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxRQUFTLEdBQUcsS0FBSyxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFHLEtBQUssSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBRyxLQUFLLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRyxPQUFPLFNBQXVDLFFBQTdCLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQVksRUFBRSxHQUFJLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksWUFBWSxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUcsSUFBSSxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBcUQsT0FBbkQsRUFBRSxFQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxFQUFTLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxJQUFJLEtBQUssRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQUcsRUFBSSxHQUFJLGdCQUFnQixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLElBQUksRUFBRSxFQUFJLEdBQUksSUFBSSxJQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFtRSxHQUFqRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBSyxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFJLE9BQU8sRUFBNEwsT0FBMUwsS0FBSSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLEtBQUssS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBUyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLEVBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLEdBQUcsRUFBRSxFQUFJLElBQUksS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFHLEtBQUssRUFBRSxJQUFJLElBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRyxPQUFPLFNBQXlDLFFBQS9CLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBWSxFQUFFLEdBQUksRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksSUFBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBbUUsR0FBakUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUssR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBSSxPQUFPLEVBQXVJLE9BQXJJLEtBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBUyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUNBQW1DLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUcsTUFBTyxPQUEwQixRQUFmLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFTLElBQU8sSUFBSSxJQUFHLEVBQUksR0FBSSxrQ0FBa0MsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQ0FBa0MsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFHLE1BQU8sT0FBMEMsUUFBL0IsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFZLElBQU8sSUFBSSxJQUFHLEVBQUksR0FBSSxtQkFBbUIsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwyQ0FBMkMsSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGVBQWUsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksbUJBQW1CLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtCQUFrQixHQUFHLEVBQUUsRUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEdBQUcsRUFBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRyxLQUFLLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLElBQUksSUFBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFCQUFxQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLElBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLElBQUksSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsTUFBTSxJQUFHLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw4Q0FBOEMsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksS0FBSyxLQUFLLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGVBQWUsRUFBRSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksSUFBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxJQUFJLElBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssRUFBRSxHQUFHLEVBQWlCLEdBQWQsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFLLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRyxPQUFPLEVBQUcsT0FBTyxLQUFLLEVBQUUsRUFBRSxNQUFNLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGNBQWMsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFjLE9BQVosS0FBSyxFQUFFLEdBQVksS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFPLElBQUcsRUFBSSxHQUFJLHFCQUFxQixJQUFJLEVBQUUsRUFBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLGlDQUFpQyxFQUFFLEVBQUUsRUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFJLEdBQUksT0FBTyxFQUFFLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUssR0FBRyxJQUFJLElBQU8sSUFBRyxHQUFJLEdBQUksb0NBQW9DLElBQUksR0FBRyxJQUFHLEdBQUUsRUFBTSxJQUFHLEVBQUksS0FBSyxJQUFJLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGlEQUFpRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFHLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxJQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUksRUFBRyxLQUFLLEVBQUUsSUFBSSxJQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFHLElBQUksSUFBRyxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sR0FBRyxJQUFJLElBQUssRUFBRSxLQUFLLEVBQUUsR0FBSSxFQUFHLEtBQUssRUFBRSxJQUFJLElBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHFCQUFxQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksOENBQThDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxJQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxnQ0FBZ0MsR0FBRyxFQUFFLEVBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFHLE1BQU8sR0FBaUosT0FBMUksRUFBRSxJQUFJLElBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFHLElBQUksRUFBUyxJQUFNLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxLQUFLLEVBQUUsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxHQUFNLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFHLElBQUksRUFBRSxLQUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBVyxHQUFULElBQUcsSUFBSSxFQUFLLEtBQUssR0FBRyxLQUFLLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUEwRCxPQUF4RCxFQUFFLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFHLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLElBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksZ0NBQWdDLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRyxLQUFLLEVBQUUsSUFBSSxJQUFHLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQVEsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsR0FBRyxFQUFFLEVBQUksR0FBRyxHQUFHLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUksZ0NBQWdDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBc0IsT0FBckIsS0FBSyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBUyxJQUFNLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxtQ0FBbUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxnQ0FBZ0MsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGVBQWUsRUFBRSxFQUFFLEVBQUksS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQWtCLE9BQWpCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBUyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxxQkFBcUIsQ0FBQyxDQUFDLE1BQU8sT0FBTSxHQUFJLENBQUMsSUFBSSxJQUFJLElBQUcsRUFBSSxHQUFJLHlCQUF5QixJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksS0FBSyxLQUFLLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFRLElBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFVLE9BQVQsSUFBRyxJQUFJLElBQVcsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBVSxHQUFULElBQUcsSUFBSSxHQUFNLEtBQUssRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsTUFBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEtBQUssSUFBSSxHQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUcsSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx5Q0FBeUMsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEtBQUssRUFBVyxPQUFULEtBQUssRUFBRSxFQUFTLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxRQUFTLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsUUFBUyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBYyxHQUFiLEtBQUssS0FBSyxDQUFDLEVBQUssS0FBSyxHQUFHLEtBQUssRUFBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxNQUFPLE1BQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxNQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx5Q0FBeUMsR0FBRyxFQUFFLEVBQUksS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksZ0NBQWdDLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxJQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFVBQVUsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLElBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLElBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLElBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQkFBb0IsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksZ0NBQWdDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFPLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsR0FBRyxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBYyxPQUFaLEtBQUssRUFBRSxHQUFZLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxHQUFHLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFjLE9BQVosS0FBSyxFQUFFLEdBQVksS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFPLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUcsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksU0FBUyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUUsSUFBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxTQUFTLEdBQUcsRUFBRSxFQUFJLElBQUksS0FBSyxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtDQUFrQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsRUFBSSxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQW9CLEdBQWhCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQXFCLE9BQWxCLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQVMsR0FBTSxNQUFPLE9BQVcsT0FBTSxHQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixHQUFHLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFHLElBQUksR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0JBQWtCLEdBQUcsRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUcsS0FBSyxDQUFDLEVBQUcsTUFBTyxHQUErQyxPQUF6QyxFQUFFLEVBQUcsR0FBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQVMsSUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsSUFBSSxJQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0NBQXdDLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQkFBbUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFlLE9BQVosRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFTLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBK0MsT0FBN0MsRUFBRSxHQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFTLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMEJBQTBCLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksQ0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUcsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUJBQXlCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFHLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBCQUEwQixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQWUsT0FBWixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQVMsSUFBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksUUFBUSxHQUFHLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUJBQXlCLEdBQUcsRUFBRSxFQUFJLElBQUksS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksSUFBRyxHQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRSxFQUFFLElBQUksSUFBTyxJQUFHLEVBQUksR0FBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksS0FBSyxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0NBQWtDLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsRUFBaUIsR0FBZCxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUssS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE9BQU8sRUFBRyxPQUFPLEtBQUssRUFBRSxFQUFFLE1BQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxXQUFXLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtDQUFrQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdDQUFnQyxHQUFHLEVBQUUsRUFBSSxLQUFLLEtBQUssR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlCQUF5QixHQUFHLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsTUFBTyxJQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0JBQXdCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLEdBQUksR0FBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFHLEdBQUksRUFBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsS0FBSyxLQUFLLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQXlCLE9BQXhCLEdBQUcsTUFBTSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBUyxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsT0FBTyxLQUFLLEVBQUUsR0FBRyxJQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFHLEtBQUssSUFBRyxLQUFLLEdBQUcsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFLLElBQUksSUFBRyxFQUFJLEdBQUksWUFBWSxFQUFFLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxZQUFZLEdBQUcsRUFBRSxFQUFJLEdBQUcsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksbUJBQW1CLEVBQUUsRUFBRSxFQUFJLElBQUksR0FBRyxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQVUsT0FBVCxJQUFHLElBQUksRUFBUyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUUsRUFBRSxLQUFLLEtBQUssR0FBRyxJQUFJLElBQU8sSUFBRyxFQUFJLElBQUksc0JBQXNCLEdBQUcsRUFBTSxJQUFHLEVBQUksSUFBSSxvQkFBb0IsQ0FBQyxFQUFNLElBQUcsRUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFHLEVBQUksSUFBSSxZQUFZLElBQUksRUFBTSxHQUFHLEVBQUUsSUFBRyxFQUFFLEdBQUcsR0FBRyxFQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBRSxFQUFFLElBQUksSUFBTyxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsR0FBRyxFQUFNLElBQUcsRUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLE9BQU8sT0FBTyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssSUFBRyxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSyxHQUFHLEVBQUUsS0FBSyxFQUFHLE9BQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLEdBQUcsRUFBRSxFQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFnRCxHQUE5QyxFQUFFLElBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBVSxHQUFHLEVBQUcsT0FBTyxFQUFFLEVBQUUsSUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEtBQUssSUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG9DQUFvQyxJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0NBQStDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUcsRUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRSxFQUFFLElBQUksSUFBTyxJQUFHLEVBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUcsRUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBRyxFQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUUsRUFBRSxJQUFJLEdBQU8sSUFBRyxFQUFJLElBQUksYUFBYSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxJQUFJLFdBQVcsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksdUNBQXVDLHlCQUF5QixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksSUFBSSw2QkFBNkIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLElBQUksR0FBRyxJQUFHLEdBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBSSxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLE9BQU8sR0FBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQW1GLE9BQWpGLEdBQUcsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBVSxJQUFJLEVBQUUsS0FBSyxLQUFLLEVBQUUsT0FBTyxHQUFHLElBQUksSUFBSSxLQUFLLEVBQUUsU0FBUyxHQUFHLElBQUksR0FBRyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxLQUFLLEVBQUUsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFJLEdBQUksT0FBTyxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksSUFBSSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksa0NBQWtDLGFBQWEsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sTUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLFlBQVksSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBTSxPQUFPLElBQUcsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUksRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBTyxHQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFXLE9BQVQsRUFBRSxHQUFHLElBQVcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksWUFBWSxHQUFHLEVBQUUsRUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsSUFBTyxJQUFHLEVBQUksR0FBSSxjQUFjLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLEdBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGdCQUFnQixHQUFHLEVBQUUsRUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFJLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUssSUFBSSxJQUFPLElBQUcsRUFBSSxHQUFJLFdBQVcsSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFFLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRyxNQUFPLEdBQU0sT0FBTyxLQUFLLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUksRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksYUFBYSxHQUFHLEVBQUUsRUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxHQUFNLE9BQU8sSUFBRyxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSSxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxJQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBUSxFQUFFLEdBQUcsR0FBTyxHQUFJLEVBQUUsSUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFXLE9BQVQsRUFBRSxHQUFHLElBQVcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksYUFBYSxHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsUUFBUSxJQUFJLElBQUcsRUFBSSxHQUFJLGVBQWUsR0FBRyxFQUFNLElBQUcsRUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBTSxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUksRUFBRSxZQUFZLENBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRSxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxhQUFhLEdBQUcsRUFBTSxHQUFPLElBQUcsSUFBRyxJQUFHLElBQUcsRUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBRyxFQUFJLElBQUksZUFBZSxJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBRyxFQUFJLElBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxJQUFJLGNBQWMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLEdBQUcsRUFBRSxFQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLEVBQUUsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLElBQUksRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksUUFBUSxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsSUFBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFJLEdBQVEsR0FBRyxFQUFJLEdBQUksVUFBVSxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksU0FBUyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sR0FBRyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUksR0FBSSxPQUFPLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxPQUFPLGFBQWEsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFRLEdBQUcsRUFBSSxHQUFJLFlBQVksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsR0FBRyxFQUFFLElBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBSSxHQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBSSxHQUFJLFFBQVEsR0FBRyxFQUFFLEVBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsRUFBRSxFQUFFLEVBQUksR0FBRyxHQUFHLEdBQUksR0FBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsRUFBRSxFQUFFLEVBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUcsS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFJLEdBQUksVUFBVSxFQUFFLEVBQU0sSUFBUSxJQUFJLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUcsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBSSxHQUFJLE9BQU8sR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBSSxLQUFLLEdBQUcsR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixHQUFHLEVBQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksd0JBQXdCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBSSxHQUFJLFFBQVEsR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQWUsT0FBWixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQVMsS0FBSyxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsRUFBRSxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLEtBQUssRUFBRSxLQUFLLEtBQUssR0FBRyxLQUFLLEtBQUssRUFBRSxtQkFBbUIsS0FBSyxHQUFHLEVBQUUsSUFBSSxLQUFLLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLEdBQUcsRUFBRSxJQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksa0NBQWtDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksRUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxnQ0FBZ0MsRUFBRSxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLEVBQUcsTUFBTyxHQUFLLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBZSxPQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBUyxLQUFLLEdBQUcsRUFBRSxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFHLE9BQU8sS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQTRHLE9BQXhHLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFTLEtBQUssRUFBbUMsT0FBakMsS0FBSyxFQUFFLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFTLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEVBQUksWUFBWSxhQUFhLEdBQUcsRUFBRSxFQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxHQUFRLEdBQUcsRUFBSSxZQUFZLGFBQWEsRUFBRSxFQUFNLElBQUksSUFBUSxHQUFJLEdBQUksRUFBSSxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGtCQUFrQixHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFnQyxPQUE3QixFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBUyxHQUFLLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkJBQTJCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLEdBQUcsRUFBRSxFQUFJLEdBQUcsSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdDQUFnQyxFQUFFLEVBQUUsRUFBSSxJQUFJLEdBQUcsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBZSxPQUFkLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBUyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBK0MsT0FBN0MsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQVMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFlLE9BQWQsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFTLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQWdCLE9BQWIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQUssTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0JBQWtCLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0JBQWtCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTyxHQUFpQixPQUFYLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBUyxHQUFJLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDBCQUEwQixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTyxHQUFpQixPQUFYLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBUyxHQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsSUFBSSxLQUFLLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQWMsT0FBWCxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQVMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZ0NBQWdDLEdBQUcsRUFBRSxFQUFJLEtBQUssR0FBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQWdCLE9BQWIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQUssTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1Q0FBdUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUNBQXlDLElBQUksRUFBRSxFQUFJLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQW1ELE9BQWxELEdBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxLQUFLLDZCQUE2QixFQUFTLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUcsUUFBUSxJQUFJLElBQUcsRUFBSSxHQUFJLGdCQUFnQixJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEVBQUUsSUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBNkUsT0FBM0UsRUFBRSxPQUFPLElBQUksRUFBRSxHQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGFBQWEsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsR0FBRyxFQUFFLEVBQUksR0FBRyxHQUFHLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxRQUFRLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFlBQVksRUFBRSxFQUFFLEVBQUksRUFBRSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxDQUFDLEVBQUUsRUFBSSxLQUFLLEVBQUssU0FBUyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUksSUFBSSxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBSyxHQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBbUIsT0FBZixHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssR0FBRyxHQUFHLEdBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixHQUFHLEVBQU0sR0FBSSxHQUFJLEdBQUksRUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0JBQXdCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBSSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxJQUFJLEdBQVEsSUFBRyxFQUFJLEdBQUksZ0NBQWdDLEdBQUcsRUFBRSxFQUFJLElBQUksS0FBSyxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQVUsT0FBVCxHQUFJLEVBQUUsQ0FBQyxFQUFTLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2Q0FBNkMsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLEtBQUssRUFBRSxHQUFHLEVBQWtCLE9BQWhCLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1EQUFtRCxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFEQUFxRCxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxRUFBcUUsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksMkNBQTJDLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixHQUFHLEVBQU0sSUFBSSxJQUFJLElBQUksRUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxLQUFLLElBQUksSUFBRyxFQUFJLEdBQUksNENBQTRDLElBQUksRUFBRSxFQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLEVBQUUsRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGtDQUFrQyxHQUFHLEVBQU0sSUFBSSxJQUFJLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sbUNBQW1DLEdBQUksS0FBSyxDQUFDLEVBQUUsWUFBWSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFHLFdBQVcsS0FBSyxFQUFFLFdBQVcsS0FBSyxFQUFFLFdBQVcsSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDBCQUEwQixJQUFJLEVBQUUsRUFBSSxLQUFLLEdBQUcsR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRyxNQUFPLEdBQU0sTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFVBQVUsR0FBRyxFQUFFLEVBQUksS0FBSyxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBaUMsT0FBOUIsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQVMsR0FBSyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEtBQU0sS0FBSyxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUJBQW1CLElBQUksRUFBRSxFQUFJLElBQUksR0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksVUFBVSxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxHQUFHLEVBQUUsRUFBSSxHQUFHLElBQUksR0FBSSxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEtBQU0sTUFBTyxHQUFVLE9BQVIsRUFBRSxHQUFHLENBQUMsRUFBUyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxVQUFVLEVBQUUsRUFBRSxFQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxVQUFVLEVBQUUsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLGdDQUFnQyxHQUFJLEtBQUssQ0FBQyxFQUFFLFlBQVksR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFHLFdBQVcsS0FBSyxFQUFFLFdBQVcsS0FBSyxFQUFFLFdBQVcsR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQVEsTUFBTyxHQUFxQixHQUFoQixFQUFFLEtBQUssRUFBRSxLQUFLLEdBQU0sRUFBRSxLQUFpQyxPQUEzQixLQUFLLEVBQUUsRUFBRSxNQUFNLEdBQUcsS0FBSyxFQUFFLEVBQVMsR0FBSyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLEdBQUcsRUFBRSxFQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxLQUFLLEVBQUUsRUFBRSxNQUFNLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsTUFBTyxHQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksZ0JBQWdCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksMkJBQTJCLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFpQyxPQUE5QixFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsRUFBUyxHQUFLLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEtBQU0sS0FBSyxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksdUNBQXVDLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGFBQWEsRUFBRSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQU0sS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGtCQUFrQixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksU0FBUyxJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFJLElBQUksSUFBRyxFQUFJLEdBQUksV0FBVyxHQUFHLEVBQUUsRUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxXQUFXLElBQUksSUFBRyxFQUFJLEdBQUksV0FBVyxHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksS0FBTSxNQUFPLEdBQUssSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBa0IsT0FBWixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQVMsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsS0FBSyxJQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsSUFBSSxvQkFBb0IsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLFdBQVcsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxLQUFNLE1BQU8sR0FBSyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxHQUFrQixPQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBUyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEdBQUcsS0FBSyxHQUFHLElBQUksMEJBQTBCLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxpQkFBaUIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxLQUFNLE1BQU8sR0FBSyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUcsTUFBTyxHQUFrQixPQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBUyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsR0FBRyxLQUFLLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLGNBQWMsR0FBRyxFQUFFLEVBQUksSUFBSSxLQUFLLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBUSxHQUFHLEtBQUssR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdCQUFnQixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBK0MsT0FBOUMsR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBVyxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0JBQWtCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksRUFBTSxJQUFHLEVBQUksR0FBSSxTQUFTLEdBQUcsRUFBRSxFQUFJLEdBQUcsRUFBRSxHQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQVcsT0FBVixJQUFJLElBQUksRUFBUyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxFQUFFLEVBQUUsRUFBSSxJQUFJLEdBQUcsR0FBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw4Q0FBOEMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhDQUE4QyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJDQUEyQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJDQUEyQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5Q0FBeUMsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdDQUFnQyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBUSxNQUFNLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxRQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUcsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLGdDQUFnQyxJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBMEIsT0FBekIsR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFTLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxRQUFRLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksUUFBUSxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLEdBQUcsRUFBRSxFQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksVUFBVSxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0JBQXdCLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLGFBQWEsS0FBSyxFQUFFLFVBQVUsS0FBSyxFQUFFLFNBQVMsS0FBSyxFQUFFLFVBQVUsS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksZ0JBQWdCLEdBQUcsRUFBRSxFQUFJLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUksRUFBSSxFQUFFLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFLLEVBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFLLEdBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBOEYsT0FBNUYsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUcsRUFBRSxHQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBSSxFQUFJLEVBQUUsR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUssRUFBSSxFQUFFLElBQUksS0FBSyxDQUFDLElBQVksR0FBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLEVBQUUsaUJBQWlCLEtBQUssQ0FBQyxDQUFDLEVBQUUsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRSxzQkFBc0IsS0FBSyxFQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUcsT0FBTyxLQUFLLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUE4RixHQUE1RixLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRyxFQUFFLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFJLEVBQUksRUFBRSxHQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBSyxFQUFJLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBVSxHQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU8sTUFBTyxHQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxHQUFHLEdBQUksR0FBSSxxQkFBcUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFHLEdBQUksR0FBSSx1QkFBdUIsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxJQUFJLElBQUcsR0FBSSxHQUFJLHVCQUF1QixLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxJQUFJLElBQUcsR0FBSSxHQUFJLHVCQUF1QixLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksVUFBVSxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksK0JBQStCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUcsRUFBSSxJQUFJLHlCQUF5QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSwwQkFBMEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLFVBQVUsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxTQUFTLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxRQUFRLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxRQUFRLElBQUksSUFBRyxFQUFJLEdBQUksa0JBQWtCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxhQUFhLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQUcsRUFBSSxHQUFJLFlBQVksSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBSSxHQUFNLElBQUksR0FBTSxHQUFJLEdBQU0sSUFBSSxHQUFNLElBQUksR0FBVSxJQUFHLEVBQUksR0FBSSxTQUFTLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDBCQUEwQixHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBUSxHQUFHLEdBQUksR0FBSSw0QkFBNEIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGdCQUFnQixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG9DQUFvQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdUNBQXVDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUssSUFBTyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQ0FBa0MsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFLLElBQUksSUFBRyxFQUFJLEdBQUksbUNBQW1DLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQ0FBa0MsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQU8sSUFBSSxFQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUssSUFBSSxFQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkJBQTJCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkJBQTJCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlDQUFpQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZ0JBQWdCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQU0sSUFBRyxHQUFJLEdBQUksUUFBUSxFQUFFLEVBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksSUFBSSxHQUFHLElBQUksR0FBUSxJQUFHLEVBQUksR0FBSSxhQUFhLEVBQUUsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sT0FBVSxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFNLE1BQU8sSUFBTyxJQUFJLElBQUcsRUFBSSxHQUFJLGVBQWUsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDZCQUE2QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssRUFBRyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFNLE9BQU8sS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFHLE9BQU8sS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNkNBQTZDLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrREFBa0QsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlDQUFpQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLCtDQUErQyxJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0NBQStDLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUcsTUFBTyxHQUFNLEtBQUssRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkNBQTJDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkJBQTJCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxvQkFBb0IsZ0JBQWdCLElBQUksRUFBTSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBDQUEwQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkJBQTJCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksa0JBQWtCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFlLE9BQVosRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFTLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLE9BQU8sSUFBUSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxRQUFRLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFlLE9BQVosRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFTLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxNQUFPLE9BQU8sSUFBUSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFlBQVksR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksT0FBTyxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxJQUFJLFdBQVcsSUFBSSxFQUFNLElBQUcsR0FBSSxJQUFJLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksU0FBUyxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxJQUFHLEVBQUksR0FBSSxTQUFTLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLEdBQUcsRUFBRSxFQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFHLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxPQUFPLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBSSxJQUFJLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksR0FBRyxFQUFJLEdBQUksUUFBUSxFQUFFLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHFCQUFxQixHQUFHLEVBQU0sSUFBSSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQVEsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLEdBQUssRUFBRSxHQUFHLEVBQUksRUFBRSxHQUFHLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsU0FBUyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLFNBQVMsR0FBSSxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLElBQUksRUFBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxJQUFJLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxJQUFJLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLDZDQUE2QyxJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQVEsSUFBRyxHQUFJLElBQUksNEJBQTRCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxJQUFJLDJCQUEyQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBUSxHQUFHLEdBQUksR0FBSSx5QkFBeUIsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSw4QkFBOEIsRUFBRSw4RUFBOEUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHVDQUF1QyxFQUFFLDZMQUE2TCxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHFDQUFxQyxFQUFFLDRFQUE0RSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLGtCQUFrQixFQUFFLDRLQUE0SyxHQUFHLEdBQUksRUFBRSxHQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLElBQUksbUJBQW1CLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxJQUFJLG9CQUFvQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxZQUFZLEtBQUssRUFBRSxNQUFNLEtBQUssRUFBRSxNQUFNLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksUUFBUSxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHFCQUFxQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksUUFBUSxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFVLFFBQVAsS0FBSyxFQUFTLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFVLFFBQVAsS0FBSyxFQUFTLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUUsUUFBUSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQVUsUUFBUCxLQUFLLEVBQVMsR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFVLFFBQVAsS0FBSyxFQUFTLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksaUJBQWlCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUssRUFBSyxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksMkNBQTJDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUFLLElBQUksSUFBRyxFQUFJLElBQUksdUJBQXVCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxPQUFPLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxLQUFLLEVBQUUsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksYUFBYSxHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBUSxHQUFHLEdBQUksR0FBSSxnQkFBZ0IsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksZ0JBQWdCLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQWdHLE9BQTlGLEtBQUssRUFBRSxLQUFLLEVBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUksQ0FBQyxFQUFVLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFNLEdBQUosRUFBRSxFQUFLLEtBQUssRUFBRyxLQUFLLEVBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLFdBQVcsS0FBSyxFQUFHLEVBQUUsSUFBSSxLQUFLLElBQUksS0FBSyxLQUFLLEVBQUksQ0FBQyxNQUFPLEtBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLEVBQUksQ0FBQyxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEtBQUssRUFBSyxFQUFFLElBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxHQUFJLEVBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQVEsS0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBSyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsR0FBSyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFxSCxHQUFuSCxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksS0FBSyxFQUFLLEVBQUUsSUFBSSxNQUFNLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRyxFQUFFLElBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxJQUFJLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUksRUFBRSxHQUFJLEVBQU0sSUFBRyxFQUFJLEdBQUksb0JBQW9CLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFRLElBQUcsR0FBSSxHQUFJLDJCQUEyQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksWUFBWSxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUNBQW1DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSx5QkFBeUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLGNBQWMsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQ0FBK0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrREFBa0QsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxvQkFBb0IsSUFBSSxHQUFHLEdBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLFFBQVMsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQU0sSUFBSSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFNLEdBQUksRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBFQUEwRSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLCtCQUErQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJFQUEyRSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRFQUE0RSxJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBSSxHQUFRLElBQUcsR0FBSSxHQUFJLHVEQUF1RCxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDZDQUE2QyxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNkNBQTZDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMERBQTBELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0VBQXdFLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdFQUF3RSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3RUFBd0UsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyREFBMkQsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5RUFBeUUsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrREFBa0QsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0Q0FBNEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxREFBcUQsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrRUFBa0UsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnRkFBZ0YsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0JBQWtCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFCQUFxQixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0NBQXdDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksR0FBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUssR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSyxFQUFFLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUcsR0FBRyxJQUFLLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRyxHQUFHLElBQU0sR0FBRyxJQUFLLEdBQUcsS0FBSyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxhQUFhLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGFBQWEsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxZQUFZLEdBQUcsRUFBTSxJQUFHLEdBQUksR0FBSSxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGNBQWMsSUFBSSxFQUFNLElBQUksR0FBTSxHQUFJLElBQUksRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtREFBbUQsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFNLEdBQUksSUFBSSxFQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLE9BQU8sRUFBRSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQ0FBK0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2REFBNkQsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLElBQUksV0FBVyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUcsRUFBSSxJQUFJLGVBQWUsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHlCQUF5QixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQWlELEdBQS9DLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBSyxHQUFJLEVBQUUsR0FBRyxHQUFtQyxHQUFoQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBcUMsT0FBbEMsRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQVMsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBUSxHQUFFLElBQUksSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUksS0FBSyxFQUFFLEVBQUcsQ0FBQyxFQUFFLGNBQWMsR0FBSSxFQUFFLE9BQU8sYUFBYSxFQUFFLEVBQUcsSUFBSSxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksSUFBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksSUFBSSwwQkFBMEIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFLLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFRLElBQUcsR0FBSSxHQUFJLGNBQWMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxZQUFZLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGNBQWMsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksVUFBVSxHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFRLElBQUcsR0FBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsMENBQTBDLEVBQUUsZ0hBQWdILEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsdUNBQXVDLEVBQUUsOExBQThMLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVEQUF1RCxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDJEQUEyRCxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxJQUFJLHdCQUF3QixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEVBQUksSUFBSSxlQUFlLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLHVDQUF1QyxjQUFjLEdBQUcsRUFBTSxJQUFJLElBQUksR0FBSSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNENBQTRDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNENBQTRDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNENBQTRDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNENBQTRDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNENBQTRDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRDQUE0QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRDQUE0QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG9DQUFvQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlEQUF5RCxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLFlBQVksR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUEwQixPQUF2QixFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsSUFBSSxLQUFLLEdBQUksS0FBSyxDQUFDLEVBQUUsSUFBSSxNQUFPLEtBQUssR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxhQUFhLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFFBQVEsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksU0FBUyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxNQUFNLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxHQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksS0FBSyxLQUFLLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxTQUFTLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxRQUFRLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxJQUFJLHFCQUFxQixJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBdU4sT0FBck4sSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksSUFBSSxhQUFhLEdBQUcsRUFBRSxFQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUE2TixPQUEzTixJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBSyxLQUFLLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxLQUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksSUFBSSwyQkFBMkIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSw2Q0FBNkMsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSw4Q0FBOEMsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsZ0lBQWdJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLHlFQUF5RSxFQUFFLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLDhDQUE4QyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFRLElBQUcsR0FBSSxHQUFJLHFCQUFxQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLGVBQWUsRUFBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsSUFBSSxFQUFNLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUseURBQXlELEdBQUcsR0FBSSxFQUFFLEdBQU0sR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsc0dBQXNHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsNERBQTRELEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsa0RBQWtELEVBQUUsRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsaUZBQWlGLEVBQUUsR0FBSSxFQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLHlCQUF5QixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBa0IsR0FBakIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUcsU0FBUyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHFCQUFxQixJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSwrQkFBK0IsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxhQUFhLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLG9CQUFvQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0NBQWtDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQ0FBa0MsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtDQUFrQyxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSxnQkFBZ0IsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksZ0NBQWdDLElBQUksRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUcsS0FBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtDQUFrQyxJQUFJLEVBQUUsRUFBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUFJLElBQUksSUFBRyxFQUFJLEdBQUksUUFBUSxFQUFFLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBSSxJQUFJLElBQUcsRUFBSSxHQUFJLDBDQUEwQyxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1EQUFtRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbURBQW1ELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksU0FBUyxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEdBQUksSUFBSSxJQUFHLEVBQUksR0FBSSxTQUFTLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUcsS0FBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBSyxLQUFLLElBQUksRUFBRSxHQUFHLEtBQUssR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxJQUFJLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxJQUFJLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxJQUFJLElBQUksRUFBTSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxJQUFJLEVBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxJQUFJLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsS0FBTSxNQUFPLEdBQU0sR0FBRyxLQUFJLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBa0IsT0FBWixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQVMsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLEtBQUssRUFBRSxLQUFLLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxRQUFRLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksaUJBQWlCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxvREFBb0QsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtFQUFrRSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQUcsRUFBSSxHQUFJLDhDQUE4QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLFdBQVcsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQTBDLE9BQXZDLEdBQUcsS0FBSyxFQUFFLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxPQUFVLE9BQU8sSUFBUSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsTUFBTyxHQUFPLE1BQU8sSUFBTSxJQUFJLEdBQVEsSUFBRyxFQUFJLEdBQUksaUJBQWlCLEdBQUcsRUFBRSxFQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQTBCLEdBQWpCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFHLENBQUMsRUFBRyxPQUFRLEdBQUksS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBbUMsR0FBakMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQTBCLEdBQXhCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBSSxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBbUMsR0FBakMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksR0FBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBa0IsR0FBakIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBSyxHQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRSxFQUFFLElBQUksR0FBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUUsRUFBRSxHQUFHLEdBQTBCLEdBQXRCLEdBQUUsRUFBRyxHQUFHLEdBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRSxFQUFFLGVBQWdCLEdBQUksRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUUsRUFBRSxJQUFJLEdBQUUsSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRyxHQUEwQixHQUF0QixHQUFFLEVBQUcsR0FBRyxHQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUUsRUFBRSxPQUFnRCxHQUF4QyxFQUFFLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFJLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxFQUFFLEdBQUcsR0FBMEIsR0FBdEIsR0FBRSxFQUFHLEdBQUcsR0FBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxDQUFDLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU8sR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEdBQUksRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBRSxJQUFJLEdBQUUsSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFFLEVBQUUsR0FBRyxHQUEwQixHQUF0QixHQUFFLEVBQUcsR0FBRyxHQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTyxHQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQTJCLEdBQXhCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEdBQUksR0FBRyxFQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUksRUFBRSxFQUFHLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBSSxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFRLElBQUcsR0FBSSxHQUFJLDRCQUE0QixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLEdBQUcsRUFBRSxFQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksd0NBQXdDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtEQUFrRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnREFBZ0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxREFBcUQsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxJQUFJLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQVEsSUFBRyxFQUFJLEdBQUksMkJBQTJCLEdBQUcsRUFBRSxFQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQWtCLEdBQWpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBMEcsR0FBeEcsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUssS0FBSyxLQUFLLENBQUMsRUFBRSxHQUFJLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBSyxHQUFJLEdBQUcsRUFBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBdUIsR0FBdEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLEVBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUcsSUFBSSxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQXVCLEdBQXRCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEtBQUssR0FBRyxFQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFHLElBQUksRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlCQUF5QixJQUFJLEVBQU0sSUFBSSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUcsRUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUcsRUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLCtCQUErQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUkseUNBQXlDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFCQUFxQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFFBQVEsRUFBRSxFQUFFLEVBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFHLE1BQU8sY0FBYyxHQUFHLEtBQUssQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRyxNQUFPLFlBQVksR0FBRyxLQUFLLENBQUMsRUFBRSxNQUFPLGNBQWMsR0FBRyxLQUFLLENBQUMsRUFBRSxXQUFXLEdBQUcsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUcsRUFBSSxHQUFJLFNBQVMsRUFBRSxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFHLE9BQU8sS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFzQyxHQUFuQyxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUssS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRyxJQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUssQ0FBQyxFQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUssQ0FBQyxLQUFRLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLCtCQUErQixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFHLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUcsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLEVBQUksRUFBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLE1BQU0sR0FBSSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLFlBQWEsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEdBQTJDLEdBQXhDLEVBQUUsRUFBRyxFQUFJLEVBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSyxFQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFJLEdBQUcsR0FBSSxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFnRSxHQUE3RCxFQUFFLEVBQUcsRUFBSSxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUssRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUssT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFHLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxZQUFhLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxHQUEyQyxHQUF4QyxFQUFFLEVBQUcsRUFBSSxFQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUssRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsRUFBSSxHQUFHLEdBQUksRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBZ0UsR0FBN0QsRUFBRSxFQUFHLEVBQUksRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFLLEVBQUcsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxHQUFLLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBRyxFQUFJLEVBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdDQUFnQyxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFNLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksU0FBUyxHQUFHLEVBQUUsRUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEVBQUUsT0FBTyxHQUFHLEtBQUssUUFBUSxLQUFLLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxTQUFTLEVBQUUsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBZSxPQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBUyxLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxNQUFPLE9BQU8sSUFBUSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQTRFLE9BQTFFLEVBQUUsR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFXLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxLQUFLLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sTUFBTSxFQUFFLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFxQixHQUFwQixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUssRUFBRSxRQUFRLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxzQ0FBc0MsQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxLQUFLLEVBQUcsS0FBSyxFQUFFLEVBQUcsR0FBSSxFQUFFLE1BQU0sRUFBRyxLQUFLLEVBQUUsRUFBRyxHQUFJLEVBQUUsUUFBUSxFQUFHLEtBQUssRUFBRSxFQUFHLEdBQUksRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLFVBQVUsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBTyxNQUFKLEVBQUUsRUFBUSxHQUFJLElBQUksR0FBSSxJQUFJLENBQUMsQ0FBQyxNQUFPLE9BQU0sR0FBSSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sUUFBUSxLQUFLLEVBQUUsU0FBUyxLQUFLLEVBQUUsV0FBVyxLQUFLLEVBQUUsVUFBVSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLFVBQVUsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksWUFBWSxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksSUFBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxVQUFVLEdBQUcsRUFBRSxFQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksR0FBRyxFQUFJLEdBQUksUUFBUSxFQUFFLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSxpQkFBaUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxhQUFhLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLFdBQVcsR0FBRyxFQUFFLEVBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQXFGLEdBQW5GLEVBQUUsSUFBSSxHQUFJLElBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxHQUFJLElBQUssRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUssS0FBSyxFQUFFLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxFQUFFLFFBQVEsR0FBRyxFQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEdBQUcsT0FBTyxHQUFHLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxFQUFFLFFBQVEsR0FBRyxFQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFNLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSyxFQUFFLEdBQUcsT0FBTyxHQUFHLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksUUFBUSxFQUFFLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFVBQVUsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxZQUFZLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxVQUFVLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksWUFBWSxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxLQUFLLEdBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFFBQVEsRUFBRSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxJQUFJLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwREFBMEQsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBEQUEwRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlDQUFpQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNENBQTRDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRDQUE0QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxpQkFBaUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQkFBbUIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLCtCQUErQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsSUFBSSxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGtDQUFrQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnREFBZ0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnREFBZ0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQVEsR0FBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnREFBZ0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnREFBZ0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdEQUFnRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdEQUFnRCxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQkFBbUIsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFRLElBQUcsR0FBSSxHQUFJLHdCQUF3QixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFEQUFxRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlDQUF5QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlDQUF5QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQVEsSUFBRyxFQUFJLEdBQUksa0NBQWtDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDREQUE0RCxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdEQUFnRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdEQUFnRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxrQ0FBa0MsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBSSxJQUFJLElBQUcsRUFBSSxHQUFJLG9DQUFvQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0RBQWtELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtEQUFrRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0RBQWtELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtEQUFrRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrREFBa0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0RBQWtELElBQUksRUFBRSxFQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxPQUFRLElBQUcsT0FBTyxJQUFJLFFBQVMsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLFFBQVEsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxPQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLEtBQUssR0FBSSxFQUFFLEdBQUksTUFBTyxHQUFFLE9BQU8sSUFBSSxLQUFLLEdBQUksRUFBRSxJQUFJLE1BQU8sR0FBRSxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxJQUFLLEdBQUksRUFBRSxHQUFJLE1BQU8sR0FBRSxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxRQUFTLElBQUcsT0FBTyxJQUFJLFFBQVMsSUFBRyxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxJQUFLLEdBQUksRUFBRSxHQUFJLFVBQVUsTUFBTSxHQUFJLElBQUksR0FBSSxLQUFLLEtBQUssR0FBRyxLQUFLLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLDBDQUEwQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLHFCQUFxQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLElBQUksSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxJQUFJLElBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQ0FBa0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUNBQW1DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUNBQW1DLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG9CQUFvQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFRLElBQUcsR0FBSSxHQUFJLG9EQUFvRCxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUJBQW1CLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQ0FBMkMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLGlCQUFpQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLCtCQUErQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLCtCQUErQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQkFBb0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLFFBQVMsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxpREFBaUQsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaURBQWlELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaURBQWlELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaURBQWlELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFXLE9BQVQsS0FBSyxFQUFFLEVBQVMsS0FBSyxFQUFFLE9BQVEsR0FBRSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBSSxLQUFLLElBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxLQUFLLElBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVyxHQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxNQUFNLEdBQUksSUFBSSxHQUFHLElBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx5Q0FBeUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdURBQXVELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdURBQXVELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHdEQUF3RCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3REFBd0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0RBQXdELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdEQUF3RCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0RBQXdELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHdEQUF3RCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3REFBd0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0RBQXdELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0RBQXdELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3REFBd0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVEQUF1RCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHdEQUF3RCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx3REFBd0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFNLElBQUksSUFBRyxFQUFJLEdBQUksd0RBQXdELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdEQUF3RCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1REFBdUQsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx1REFBdUQsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksdURBQXVELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLHVEQUF1RCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1REFBdUQsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdURBQXVELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdURBQXVELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksMkJBQTJCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUcsTUFBTyxHQUFvQixHQUFsQixFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxDQUFDLElBQU8sR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLE9BQVEsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sTUFBTyxHQUFzQyxPQUFwQyxFQUFFLEVBQUcsRUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBUyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFHLE1BQU8sR0FBd0QsT0FBdEQsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFJLEtBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFTLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlDQUF5QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5Q0FBeUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsTUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLG9EQUFvRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUksRUFBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBDQUEwQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQ0FBMkMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkNBQTJDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQ0FBMkMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkNBQTJDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwyQ0FBMkMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDJDQUEyQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksMkNBQTJDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJDQUEyQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQ0FBMkMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJDQUEyQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQ0FBMkMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLElBQUksR0FBRyxHQUFHLEdBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkNBQTJDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkNBQTJDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkNBQTJDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQ0FBMkMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBDQUEwQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBDQUEwQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBDQUEwQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxHQUFHLElBQUcsR0FBSSxJQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLHVCQUF1QixLQUFLLEVBQUUsa0JBQWtCLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksd0RBQXdELEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLHVCQUF1QixLQUFLLEVBQUUsaUJBQWlCLEtBQUssRUFBRSx3QkFBd0IsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxrRUFBa0UsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFNLElBQUcsR0FBSSxHQUFJLGdCQUFnQixFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFpQixPQUFoQixJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBUyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBa0IsT0FBaEIsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGlEQUFpRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLGdCQUFnQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssSUFBSSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxnQ0FBZ0MsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLCtCQUErQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSxlQUFlLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLGVBQWUsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksNEJBQTRCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBTyxJQUFJLElBQUcsRUFBSSxHQUFJLDZCQUE2QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDZCQUE2QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDZCQUE2QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLDZCQUE2QixJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxHQUFJLEdBQUksMEJBQTBCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHlCQUF5QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxJQUFJLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5Q0FBeUMsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFxRSxPQUFuRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFTLElBQUksQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUJBQXlCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksR0FBUSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZ0NBQWdDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdDQUFnQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQThKLE9BQTVKLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBUyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSwyQkFBMkIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxHQUFHLElBQUksSUFBRyxFQUFJLElBQUkseUNBQXlDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxJQUFJLDJCQUEyQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQWlYLE9BQTdXLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxhQUFhLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLHFCQUFxQixHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLHlCQUF5QixHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLHdCQUF3QixHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLHVCQUF1QixHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLHNCQUFzQixHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQVMsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUJBQXlCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0NBQStDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaURBQWlELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxhQUFhLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFLLEtBQUssSUFBSSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUssS0FBSyxJQUFJLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlDQUFpQyxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkJBQTJCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkJBQTJCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkJBQTJCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsS0FBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLElBQUksSUFBRyxFQUFJLEdBQUksK0NBQStDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUUsT0FBTyxJQUFLLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRyxHQUFFLEdBQUcsSUFBRyxHQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQWtELEdBQWpELEVBQUUsSUFBRyxFQUFFLEdBQUcsR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxHQUFHLEVBQUcsR0FBRSxHQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRSxFQUFFLEdBQUcsSUFBRyxFQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUUsRUFBSyxLQUFLLElBQUksR0FBRSxHQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUcsR0FBRSxFQUFFLEdBQUcsR0FBRSxFQUFFLEdBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBK0IsR0FBN0IsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQVEsR0FBRyxHQUFJLEdBQUksbUNBQW1DLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxHQUFJLGdDQUFnQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLElBQUksR0FBSSxHQUFJLElBQVEsSUFBRyxHQUFJLEdBQUksK0JBQStCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBSSxJQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksa0JBQWtCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksd0JBQXdCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxJQUFRLElBQUcsR0FBSSxHQUFJLHNCQUFzQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFRLElBQUcsR0FBSSxHQUFJLGlCQUFpQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFRLElBQUcsR0FBSSxHQUFJLHlCQUF5QixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksSUFBUSxJQUFHLEdBQUksR0FBSSw0QkFBNEIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxpQkFBaUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBUSxJQUFHLEdBQUksR0FBSSwwQkFBMEIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFRLElBQUcsR0FBSSxHQUFJLGtCQUFrQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxHQUFJLG1CQUFtQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFRLElBQUcsR0FBSSxHQUFJLG9CQUFvQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSw0QkFBNEIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQVEsSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxJQUFJLElBQUksR0FBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSxrQkFBa0IsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsc01BQXNNLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSwyRUFBMkUsR0FBRyxHQUFJLEVBQUUsR0FBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsNkJBQTZCLEVBQUUsOEVBQThFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLHVTQUF1UyxFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLGdDQUFnQyxFQUFFLCthQUErYSxFQUFFLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsc0NBQXNDLEVBQUUsMmdCQUEyZ0IsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLDBDQUEwQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsdUJBQXVCLEVBQUUseU1BQXlNLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLDJEQUEyRCxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSw0QkFBNEIsRUFBRSw4U0FBOFMsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxpQ0FBaUMsRUFBRSx3TEFBd0wsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSw2UkFBNlIsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSw2QkFBNkIsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSw4RUFBOEUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSx5QkFBeUIsRUFBRSwwZ0JBQTBnQixFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxtSkFBbUosRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUseUNBQXlDLEVBQUUsOElBQThJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLDBEQUEwRCxFQUFFLDZUQUE2VCxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSx5QkFBeUIsRUFBRSxtRUFBbUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSwrQkFBK0IsRUFBRSxxREFBcUQsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsZ0RBQWdELEVBQUUsR0FBSSxFQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRyxFQUFFLGdDQUFnQyxFQUFFLHFDQUFxQyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLHdCQUF3QixFQUFFLHdWQUF3VixFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLHlCQUF5QixFQUFFLGdFQUFnRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLHdDQUF3QyxFQUFFLHFUQUFxVCxFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLHlCQUF5QixFQUFFLDhLQUE4SyxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLHVCQUF1QixFQUFFLDBLQUEwSyxFQUFFLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLDRCQUE0QixFQUFFLDJoQkFBMmhCLEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsYUFBYSxFQUFFLDBKQUEwSixFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxvQ0FBb0MsRUFBRSw4T0FBOE8sRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUscUNBQXFDLEVBQUUsZ1JBQWdSLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSwrQ0FBK0MsRUFBRSxvREFBb0QsRUFBRSxpWEFBaVgsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSx5QkFBeUIsRUFBRSw4QkFBOEIsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUscUNBQXFDLEVBQUUsa05BQWtOLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSx1QkFBdUIsRUFBRSw2ZEFBNmQsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSx5SkFBeUosRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLDhCQUE4QixFQUFFLHNDQUFzQyxFQUFFLDJFQUEyRSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLDhCQUE4QixFQUFFLGtCQUFrQixFQUFFLGtYQUFrWCxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSw4Q0FBOEMsRUFBRSwwQkFBMEIsRUFBRSx3RkFBd0YsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxxR0FBcUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSx5SEFBeUgsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLCtSQUErUixFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsNEJBQTRCLEVBQUUsb0NBQW9DLEVBQUUsa0ZBQWtGLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxzQkFBc0IsRUFBRSx3QkFBd0IsRUFBRSxpUUFBaVEsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsb0JBQW9CLEVBQUUsbVZBQW1WLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSxrQ0FBa0MsRUFBRSwrTEFBK0wsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSxpQ0FBaUMsRUFBRSxzTUFBc00sRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSxrQ0FBa0MsRUFBRSwyS0FBMkssRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSw4SkFBOEosRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsdUhBQXVILEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHVCQUF1QixFQUFFLDhJQUE4SSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsZ0VBQWdFLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHdDQUF3QyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSw0QkFBNEIsRUFBRSwrREFBK0QsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSw0QkFBNEIsRUFBRSxxREFBcUQsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsc0NBQXNDLEVBQUUsNkZBQTZGLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLHlCQUF5QixFQUFFLG9VQUFvVSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLGtDQUFrQyxFQUFFLDJNQUEyTSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLGdDQUFnQyxFQUFFLHFTQUFxUyxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLGtCQUFrQixFQUFFLG9HQUFvRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSx5QkFBeUIsRUFBRSw4REFBOEQsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLDRRQUE0USxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLHlCQUF5QixFQUFFLG1LQUFtSyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSw0QkFBNEIsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsMktBQTJLLEVBQUUsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsc0NBQXNDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFJLEdBQUksRUFBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHVCQUF1QixFQUFFLG9NQUFvTSxFQUFFLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLDJCQUEyQixFQUFFLHVDQUF1QyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHNDQUFzQyxFQUFFLHlFQUF5RSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRyxFQUFFLHNCQUFzQixFQUFFLHdOQUF3TixFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLHFCQUFxQixFQUFFLGdNQUFnTSxFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLGdCQUFnQixFQUFFLHFGQUFxRixFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLHFDQUFxQyxFQUFFLDBZQUEwWSxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLDZCQUE2QixFQUFFLCtOQUErTixFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLHVDQUF1QyxFQUFFLG1iQUFtYixFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLHVDQUF1QyxFQUFFLG1iQUFtYixFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxHQUFJLElBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFRLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdDQUFnQyxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksSUFBUSxJQUFHLEVBQUksR0FBSSx5Q0FBeUMsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxtQkFBbUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBUSxJQUFHLEdBQUksR0FBSSwyQkFBMkIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFRLElBQUcsR0FBSSxHQUFJLGtCQUFrQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFRLElBQUcsR0FBSSxHQUFJLHdCQUF3QixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksd0JBQXdCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBSSxHQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxtQkFBbUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQVEsSUFBRyxHQUFJLEdBQUksc0JBQXNCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksV0FBVyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxHQUFJLCtCQUErQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUksR0FBSSxJQUFRLElBQUcsR0FBSSxHQUFJLDJCQUEyQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLFdBQVcsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBSSxJQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksb0JBQW9CLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxHQUFJLEdBQUksbUJBQW1CLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxJQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksbUJBQW1CLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFJLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFHLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUcsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsSUFBSSxFQUFHLE9BQU8sRUFBRyxHQUFJLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw4Q0FBOEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMERBQTBELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRDQUE0QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFCQUFxQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBSSxJQUFJLElBQUssR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxHQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDZDQUE2QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSyxHQUFJLEVBQUUsS0FBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEdBQUcsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtEQUFrRCxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsSUFBSSxLQUFLLENBQUMsTUFBTyxLQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRyxHQUFJLEdBQUcsRUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssSUFBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQU0sR0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxNQUFPLElBQU8sSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLHlCQUF5QixLQUFLLEVBQUUsa0JBQWtCLEtBQUssRUFBRSxZQUFZLEtBQUssRUFBRSxnQkFBZ0IsS0FBSyxFQUFFLGFBQWEsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUssR0FBSSxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLEdBQUksSUFBSyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLEVBQUUsR0FBRyxJQUFPLE9BQVEsRUFBRSxHQUFHLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNENBQTRDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBDQUEwQyxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBNEksT0FBM0ksR0FBRyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQWMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFhLEdBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQVMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLEdBQUcsS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlDQUFpQyxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnRkFBZ0YsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlFQUF5RSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkVBQTJFLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFRLElBQUcsR0FBSSxHQUFJLDJDQUEyQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0Q0FBNEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyw0QkFBNEIsS0FBSyxFQUFFLDJCQUEyQixLQUFLLEVBQUUscUJBQXFCLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBVyxPQUFULEVBQUUsS0FBSyxFQUFTLEVBQUUsT0FBUSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUF5QixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxPQUFRLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFPLEdBQUUsRUFBRSxHQUFHLElBQUksRUFBRyxPQUFPLENBQUMsS0FBTSxHQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUyxNQUFNLEdBQUksSUFBSSxFQUFHLElBQUssSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUcsSUFBSSxLQUFLLENBQUMsTUFBTyxLQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRyxHQUFJLEdBQUcsRUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFJLEdBQUcsRUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUksSUFBSSxJQUFHLEVBQUksR0FBSSxnQ0FBZ0MsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksOENBQThDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFXLE9BQVQsRUFBRSxLQUFLLEVBQVMsRUFBRSxPQUFRLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQXlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLE9BQVEsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTyxHQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxLQUFLLEtBQU0sR0FBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxTQUFTLE1BQU0sR0FBSSxJQUFJLEdBQUksd0JBQXdCLENBQUMsRUFBRyxNQUFPLElBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLFlBQVksR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFHLEdBQUcsR0FBSSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsR0FBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLEtBQUssRUFBRSxHQUFHLEdBQU0sRUFBRSxHQUFHLElBQUssRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFFLEdBQUcsTUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLG9CQUFvQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUksR0FBUSxJQUFHLEVBQUksR0FBSSxtQkFBbUIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlDQUFpQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlDQUFpQyxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDRDQUE0QyxHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksaURBQWlELElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLE1BQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEdBQUksR0FBUSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBZSxPQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBUyxLQUFLLEdBQUcsRUFBRSxFQUFFLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUkseUNBQXlDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFJLE1BQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQ0FBK0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0NBQStDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLCtCQUErQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBDQUEwQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQ0FBMEMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsR0FBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLEdBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxHQUF5SCxPQUF0SCxLQUFLLElBQUksR0FBSSxFQUFFLElBQU0sR0FBRyxHQUFLLEtBQUssR0FBRyxLQUFNLEdBQUcsSUFBSyxLQUFLLElBQUksR0FBSSxFQUFFLElBQU0sR0FBRyxJQUFLLEtBQUssR0FBRyxHQUFLLEdBQUcsS0FBTyxHQUFHLFdBQW1CLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxHQUFRLElBQUcsR0FBSSxHQUFJLDZCQUE2QixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSw2QkFBNkIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLFlBQVksSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksZUFBZSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDBCQUEwQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNkNBQTZDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLG9CQUFvQixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSyxHQUFJLElBQUssRUFBRSxZQUFZLENBQUcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLG9DQUFvQyxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBNEIsR0FBMUIsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBTyxHQUFHLEdBQUksT0FBTyxFQUFNLEdBQUosRUFBRSxFQUFLLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxJQUFNLElBQUksRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFJLElBQUksTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUssT0FBUSxLQUFJLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLElBQUksRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFLLEdBQUcsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBcUMsR0FBcEMsRUFBRSxFQUFHLElBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxLQUFLLENBQUMsR0FBTSxFQUFFLEVBQUcsU0FBa0QsR0FBekMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBTSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLElBQUksS0FBSyxFQUFHLElBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksSUFBSSxJQUFHLEVBQUksR0FBSSw0Q0FBNEMsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFRLElBQUcsRUFBSSxJQUFJLG9CQUFvQixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLElBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQVEsSUFBRyxFQUFJLElBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxLQUFNLElBQUksSUFBRyxFQUFJLEdBQUksdUNBQXVDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdUNBQXVDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFlLE9BQVosRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFTLEtBQUssR0FBRyxFQUFFLEVBQUUsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFRLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFnQixPQUFULEVBQUUsR0FBRyxJQUFXLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBRyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSw0Q0FBNEMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5Q0FBeUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHlDQUF5QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5Q0FBeUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUNBQXlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUNBQXlDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJDQUEyQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQ0FBMkMsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBRyxFQUFJLElBQUksK0JBQStCLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBTSxHQUFJLENBQUMsR0FBdUQsR0FBcEQsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBSyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQStELEdBQTlELEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFFLEdBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFLLE1BQU8sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLElBQUksSUFBRyxFQUFJLElBQUksOEJBQThCLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBTSxHQUFJLENBQUMsR0FBdUQsR0FBcEQsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBSyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQStELEdBQTlELEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFFLEdBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFLLE1BQU8sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLElBQUksSUFBRyxFQUFJLElBQUksOEJBQThCLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBeUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBTSxHQUFJLENBQUMsR0FBdUQsR0FBcEQsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBSyxFQUFLLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLENBQThELEdBQTdELEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUssRUFBRyxFQUFFLEdBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFJLE1BQU8sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLElBQUksSUFBRyxFQUFJLElBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxZQUFZLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLE9BQU8sS0FBSyxFQUFFLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSxpQ0FBaUMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksZ0NBQWdDLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxTQUFTLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLElBQUksR0FBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSxtQkFBbUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxlQUFlLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxJQUFJLElBQUcsRUFBSSxHQUFJLGFBQWEsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLElBQUksSUFBRyxFQUFJLEdBQUksYUFBYSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUJBQXlCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBCQUEwQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBCQUEwQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMEJBQTBCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlCQUF5QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlCQUF5QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGdCQUFnQixHQUFHLEVBQUUsRUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxRQUFTLEtBQUssS0FBSyxLQUFLLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFFBQVEsRUFBRSxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQUUsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksU0FBUyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUksR0FBSSxRQUFRLEVBQUUsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxVQUFVLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksWUFBWSxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLG9DQUFvQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFHLEdBQUcsSUFBSSxJQUFJLElBQUcsRUFBSSxHQUFJLG9DQUFvQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLG9DQUFvQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLG9DQUFvQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZUFBZSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLE9BQVEsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxJQUFHLE9BQU8sSUFBSSxZQUFZLE1BQU0sR0FBSSxJQUFJLEdBQUksS0FBSyxLQUFLLEdBQUcsS0FBSyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxHQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssSUFBSSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUJBQWlCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZ0JBQWdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxHQUFJLGtCQUFrQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBUSxHQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsNEhBQTRILEdBQUcsR0FBSSxFQUFFLEdBQU0sR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUseUJBQXlCLEVBQUUsdUhBQXVILEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLDZDQUE2QyxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUseUtBQXlLLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLG9CQUFvQixFQUFFLHFEQUFxRCxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLG9DQUFvQyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSwyREFBMkQsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLHlCQUF5QixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFRLElBQUcsRUFBSSxHQUFJLGdCQUFnQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxHQUFJLGlCQUFpQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxrQkFBa0IsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFRLElBQUcsRUFBSSx1Q0FBdUMsZUFBZSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLGNBQWMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEVBQUcsRUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFRLElBQUcsRUFBSSxxQ0FBcUMsYUFBYSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxhQUFhLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlDQUF5QyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUNBQXlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsRUFBRyxFQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMkJBQTJCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksNEJBQTRCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLElBQUksRUFBTSxHQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFJLEdBQVEsSUFBRyxHQUFJLElBQUkscUJBQXFCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBbUosR0FBakosRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxHQUFNLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxnQ0FBZ0MsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxJQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLElBQUksMkJBQTJCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLE9BQVEsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksUUFBUyxHQUFFLE9BQU8sSUFBSSxZQUFZLE1BQU0sR0FBSSxJQUFJLEdBQUksS0FBSyxLQUFLLEdBQUcsS0FBSyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksSUFBSSxvQ0FBb0MsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLElBQUksTUFBTSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLE1BQU0sR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFLLElBQUksSUFBRyxFQUFJLElBQUkseUJBQXlCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSxtQkFBbUIsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsSUFBSSxNQUFNLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxJQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssSUFBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUksT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksK0JBQStCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUksRUFBRSxFQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLElBQUkseUJBQXlCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssS0FBSyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLG1EQUFtRCxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxtREFBbUQsaUJBQWlCLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSx1QkFBdUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLDhKQUE4SixHQUFHLEdBQUksRUFBRSxHQUFNLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSx3SEFBd0gsRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLGtGQUFrRixFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxvRkFBb0YsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsa0xBQWtMLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsaUlBQWlJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxxSkFBcUosRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSx3QkFBd0IsRUFBRSx3S0FBd0ssRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSx1SUFBdUksRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUseUVBQXlFLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsd0JBQXdCLEVBQUUsc01BQXNNLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsc0JBQXNCLEVBQUUsMkpBQTJKLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLGdCQUFnQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxHQUFJLDRCQUE0QixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxHQUFJLGtCQUFrQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSx3Q0FBd0MsY0FBYyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxJQUFJLDBCQUEwQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksdUNBQXVDLHlCQUF5QixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksV0FBVyxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxJQUFJLHlCQUF5QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUcsRUFBSSxJQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksSUFBUSxJQUFHLEdBQUksSUFBSSwwQkFBMEIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQXlPLEdBQXZPLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFLLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBUyxJQUFHLEdBQUUsR0FBRyxFQUFFLENBQUMsR0FBRSxFQUFHLEdBQUksR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRyxHQUFJLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRSxFQUErQixHQUE1QixHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRyxHQUFJLEdBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUUsR0FBSyxVQUFXLEVBQUUsTUFBUyxJQUFFLEdBQUssSUFBSSxHQUFFLENBQUMsRUFBRSxHQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxFQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxLQUFLLEdBQUcsR0FBRSxJQUFJLEdBQUksR0FBSSxHQUFFLElBQUssR0FBSSxFQUFFLElBQUksRUFBRSxHQUFJLEdBQUUsR0FBSSxHQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUksR0FBRSxHQUFJLEdBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFLElBQUksR0FBSSxFQUFDLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUksR0FBRSxFQUFHLEdBQUksRUFBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUssS0FBSyxJQUFJLEdBQUUsR0FBRSxFQUFFLEdBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBSSxHQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRSxDQUFDLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBTSxFQUFJLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlDQUF5QyxJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssT0FBUSxHQUFFLE9BQU8sSUFBSSxRQUFTLEdBQUUsT0FBTyxJQUFJLFFBQVMsR0FBRSxPQUFPLElBQUksSUFBSyxPQUFPLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBTSxHQUFJLEdBQUksR0FBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksR0FBSSxHQUFJLEdBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksSUFBSSxtQkFBbUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsc09BQXNPLEdBQUcsR0FBSSxFQUFFLEdBQU0sR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsa0RBQWtELEVBQUUseUlBQXlJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLHVCQUF1QixFQUFFLG9MQUFvTCxFQUFFLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsdUxBQXVMLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsOEJBQThCLEVBQUUsdURBQXVELEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLHlPQUF5TyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLG1CQUFtQixFQUFFLDhPQUE4TyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLHdpQkFBd2lCLEVBQUUsRUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLHFEQUFxRCxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHlCQUF5QixFQUFFLG1XQUFtVyxFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHVCQUF1QixFQUFFLG9WQUFvVixFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSx1QkFBdUIsRUFBRSxvQ0FBb0MsRUFBRSxnRkFBZ0YsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxJQUFJLDhCQUE4QixHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLElBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksd0NBQXdDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLElBQUksRUFBTSxJQUFHLEdBQUksR0FBSSxxQkFBcUIsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFRLE9BQU8sR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGFBQWEsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFLLEtBQUssS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUssS0FBSyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFJLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBUSxPQUFPLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQkFBb0IsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBCQUEwQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFTLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQVEsT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQkFBK0IsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQVEsSUFBRyxHQUFJLEdBQUksNkJBQTZCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksWUFBWSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsR0FBSSxHQUFJLGtCQUFrQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLElBQUksSUFBRyxFQUFJLEdBQUksMEJBQTBCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxJQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBZ0ssR0FBOUosRUFBRSxHQUFHLHdDQUF3QyxDQUFDLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxNQUFPLElBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQVEsSUFBRyxHQUFJLElBQUksZ0NBQWdDLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksUUFBUSxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxXQUFXLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGFBQWEsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSx3QkFBd0IsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxVQUFVLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLElBQUksSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxJQUFJLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEdBQTJDLEdBQXhDLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEVBQUcsRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRyxHQUFJLEVBQUUsS0FBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxLQUFLLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEtBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLGtCQUFrQixDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUE0QixFQUFFLElBQUksR0FBSSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBSSxHQUFHLEdBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQThCLEdBQTdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLEtBQUssRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkNBQTZDLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFRLElBQUcsR0FBSSxHQUFJLGNBQWMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGFBQWEsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBbUMsR0FBaEMsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLENBQUMsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBSyxFQUFHLEVBQUUsRUFBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLGtDQUFrQyxRQUFRLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxJQUFJLElBQVEsSUFBRyxHQUFJLEdBQUkseUJBQXlCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxJQUFRLElBQUcsR0FBSSxHQUFJLGdCQUFnQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSwyQkFBMkIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBUSxJQUFHLEVBQUksR0FBSSx5QkFBeUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnREFBZ0QsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSw2QkFBNkIsRUFBRSxnSUFBZ0ksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUUsK0dBQStHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsNEJBQTRCLEVBQUUsbUZBQW1GLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsaUNBQWlDLEVBQUUsaUVBQWlFLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsMENBQTBDLEVBQUUsMkhBQTJILEVBQUUsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsa0NBQWtDLEVBQUUseUZBQXlGLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLG9EQUFvRCxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHVCQUF1QixFQUFFLHNGQUFzRixHQUFHLEdBQUksRUFBRSxHQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSwrQ0FBK0MsRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHdEQUF3RCxFQUFFLElBQUksRUFBRSxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksNkJBQTZCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaURBQWlELElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLElBQUksR0FBUSxJQUFHLEdBQUksR0FBSSw4QkFBOEIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBUSxJQUFHLEdBQUksR0FBSSwyQkFBMkIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksMkNBQTJDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcscUNBQXFDLENBQUMsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLEVBQUcsR0FBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxFQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksYUFBYSxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLHFDQUFxQyxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFJLEVBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUcsR0FBSSxHQUFHLEVBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFHLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxJQUFJLGFBQWEsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSwyQkFBMkIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxJQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUcsRUFBSSxJQUFJLGdCQUFnQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksSUFBSSw0QkFBNEIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLElBQUksMENBQTBDLEdBQUcsRUFBTSxJQUFHLEdBQUksR0FBSSxzQkFBc0IsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBTSxJQUFHLEdBQUksR0FBSSxnREFBZ0QsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDZCQUE2QixHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLG9DQUFvQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsR0FBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw0QkFBNEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLFFBQVMsRUFBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUyxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUNBQW1DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLCtCQUErQixFQUFFLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLGlDQUFpQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQ0FBK0MsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0NBQStDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQ0FBK0MsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxxQkFBcUIsS0FBSyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxnQkFBZ0IsS0FBSyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksd0NBQXdDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUssSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSyxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdUNBQXVDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUssSUFBSSxJQUFHLEVBQUksR0FBSSx1Q0FBdUMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1Q0FBdUMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSyxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVDQUF1QyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFLLElBQUksSUFBRyxFQUFJLEdBQUksdUNBQXVDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksdUNBQXVDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFHLEVBQUksR0FBSSx1Q0FBdUMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBRyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1Q0FBdUMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUssSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFLLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLEdBQUcsRUFBTSxJQUFHLEdBQUksR0FBSSxXQUFXLEVBQUUsRUFBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFlLEdBQWQsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFLLEdBQUcsS0FBTSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksS0FBSyxFQUFFLGtEQUFxRCxHQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsT0FBTyxNQUFPLFFBQU8sS0FBSyxHQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sa0JBQWtCLEtBQUssR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixFQUFFLEVBQUUsRUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixFQUFFLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQVEsR0FBRyxHQUFJLEdBQUksMEJBQTBCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFRLElBQUcsR0FBSSxHQUFJLHdCQUF3QixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBUSxHQUFRLElBQUksRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFHLE1BQU8sR0FBa0IsT0FBWixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQVMsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sVUFBVSxLQUFLLEVBQUUsTUFBTSxLQUFLLEVBQUUsTUFBTSxLQUFLLEVBQUUsTUFBTSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGVBQWUsR0FBRyxFQUFFLEVBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxLQUFLLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sTUFBTSxFQUFFLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLGdEQUFnRCxDQUFDLEVBQXlELEdBQXZELEVBQUUsSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxXQUFXLEVBQUssRUFBRSxRQUFRLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxxQ0FBcUMsRUFBRSxPQUFPLGNBQWMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQU8sTUFBSixFQUFFLEVBQVEsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLENBQUMsTUFBTyxPQUFNLEdBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUksS0FBSyxFQUFFLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUksR0FBSSxVQUFVLENBQUMsRUFBRSxFQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxxQ0FBcUMsRUFBRSxHQUFJLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxNQUFNLEdBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksS0FBSyxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFPLE1BQUosRUFBRSxFQUFRLEdBQUksSUFBSSxHQUFJLG1FQUFtRSxDQUFDLENBQUMsTUFBTyxPQUFNLEdBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFRLE9BQVEsRUFBRSxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZUFBZSxFQUFFLEVBQUUsRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSxZQUFZLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZ0NBQWdDLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFRLElBQUcsR0FBSSxHQUFJLG1CQUFtQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUscUNBQXFDLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSwyQkFBMkIsRUFBRSxtREFBbUQsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSwwR0FBMEcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLG1GQUFtRixFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxrUUFBa1EsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLDhOQUE4TixFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSwwREFBMEQsR0FBRyxHQUFJLEVBQUUsR0FBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLGdGQUFnRixFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSw0U0FBNFMsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsaUVBQWlFLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsOHBCQUE4cEIsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsaU1BQWlNLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLG9SQUFvUixFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLG9CQUFvQixFQUFFLGlGQUFpRixFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLHdCQUF3QixFQUFFLHlaQUF5WixFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLGtCQUFrQixFQUFFLDZEQUE2RCxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUseUhBQXlILEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsMkhBQTJILEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsNktBQTZLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsK0JBQStCLEVBQUUsa0VBQWtFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxnWUFBZ1ksRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUscVBBQXFQLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLG9EQUFvRCxFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsc0VBQXNFLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsMFJBQTBSLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLG9aQUFvWixFQUFFLEVBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsNGVBQTRlLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLGtCQUFrQixFQUFFLG9FQUFvRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLHFFQUFxRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLGd3Q0FBZ3dDLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLHFGQUFxRixFQUFFLEVBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLHVCQUF1QixFQUFFLDBNQUEwTSxFQUFFLEdBQUksR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSx3SUFBd0ksRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSx3QkFBd0IsRUFBRSxtREFBbUQsRUFBRSxHQUFJLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsd0JBQXdCLEVBQUUsbURBQW1ELEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSx1RUFBdUUsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSwyTUFBMk0sRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxnTkFBZ04sRUFBRSxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsNkVBQTZFLEVBQUUsRUFBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsdVJBQXVSLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUseUJBQXlCLEVBQUUsbU1BQW1NLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsc0JBQXNCLEVBQUUsZ0xBQWdMLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsb0JBQW9CLEVBQUUsNElBQTRJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsY0FBYyxFQUFFLG1NQUFtTSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLG9CQUFvQixFQUFFLGlMQUFpTCxFQUFFLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLG1CQUFtQixFQUFFLGtEQUFrRCxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRyxFQUFFLGVBQWUsRUFBRSx5RkFBeUYsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSxvQkFBb0IsRUFBRSxnTEFBZ0wsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSwyQ0FBMkMsRUFBRSxrTEFBa0wsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSx5Q0FBeUMsRUFBRSxnTEFBZ0wsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBRSxjQUFjLEVBQUUsOERBQThELEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsd0JBQXdCLEVBQUUsNERBQTRELEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsY0FBYyxFQUFFLGtEQUFrRCxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSxvQkFBb0IsRUFBRSwySUFBMkksRUFBRSxFQUFHLEVBQUUsR0FBRSxFQUFFLEdBQUksR0FBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsQ0FBQyxHQUFJLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSx1QkFBdUIsRUFBRSxvVEFBb1QsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsNk5BQTZOLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxxQkFBcUIsRUFBRSwrZUFBK2UsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxrRUFBa0UsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxzQkFBc0IsRUFBRSxvR0FBb0csRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSxnQkFBZ0IsRUFBRSxpR0FBaUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsd0JBQXdCLEVBQUUsa0dBQWtHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsd0JBQXdCLEVBQUUsa0dBQWtHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsdUJBQXVCLEVBQUUsaUdBQWlHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFHLEVBQUUsdUJBQXVCLEVBQUUsaUdBQWlHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSx1QkFBdUIsRUFBRSxpS0FBaUssRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSx3T0FBd08sRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxrREFBa0QsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxxSkFBcUosRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxzQkFBc0IsRUFBRSwyQ0FBMkMsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSx5T0FBeU8sRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLDZCQUE2QixFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxzRUFBc0UsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUscVVBQXFVLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsc0xBQXNMLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLHFrQkFBcWtCLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxzQkFBc0IsRUFBRSxxR0FBcUcsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSwwQkFBMEIsRUFBRSx1REFBdUQsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSw0QkFBNEIsRUFBRSwwWEFBMFgsRUFBRSxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBRSxzQkFBc0IsRUFBRSw2TkFBNk4sRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSwyQkFBMkIsRUFBRSwyUEFBMlAsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBRSxpQ0FBaUMsRUFBRSxxTUFBcU0sRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBRSx3Q0FBd0MsRUFBRSxtT0FBbU8sRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUcsRUFBRSxtQkFBbUIsRUFBRSxrVEFBa1QsRUFBRSxJQUFJLEVBQUUsRUFBRyxFQUFFLEdBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsR0FBSSxHQUFJLElBQUksRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUcsRUFBRSxtQkFBbUIsRUFBRSwrV0FBK1csRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSw0QkFBNEIsRUFBRSx1UEFBdVAsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxpRkFBaUYsRUFBRSxFQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSx1SUFBdUksRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsd0lBQXdJLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksRUFBRyxFQUFFLFNBQVMsRUFBRSx1WkFBdVosQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksNEJBQTRCLEVBQUUsWUFBWSxFQUFFLHFoQkFBcWhCLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxPQUFPLEVBQUUscUxBQXFMLENBQUMsQ0FBQyxFQUFFLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLHdCQUF3QixFQUFFLFFBQVEsRUFBRSwrUEFBK1AsQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSw4S0FBOEssQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksd0JBQXdCLEVBQUUsUUFBUSxFQUFFLDhJQUE4SSxDQUFDLENBQUMsRUFBRSxHQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsUUFBUSxFQUFFLHlGQUF5RixDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLGNBQWMsR0FBRyxFQUFFLEVBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFRLEdBQUcsR0FBSSxHQUFJLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSxxQkFBcUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxJQUFRLElBQUcsR0FBSSxHQUFJLGNBQWMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxXQUFXLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBUSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQ0FBb0MsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksb0JBQW9CLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBUSxJQUFHLEdBQUksR0FBSSxZQUFZLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQVEsR0FBRyxHQUFJLEdBQUkscUJBQXFCLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxHQUFRLEdBQUcsR0FBSSxHQUFJLGdCQUFnQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFRLElBQUcsR0FBSSxHQUFJLGtCQUFrQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFRLEdBQUcsR0FBSSxHQUFJLHFCQUFxQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFRLEdBQUcsR0FBSSxHQUFJLFdBQVcsR0FBRyxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksd0JBQXdCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQVEsR0FBRyxHQUFJLEdBQUksaUJBQWlCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQVEsSUFBRyxHQUFJLEdBQUksY0FBYyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksSUFBSSxHQUFRLElBQUcsR0FBSSxHQUFJLG1CQUFtQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQU0sSUFBSSxFQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQVEsR0FBRyxHQUFJLEdBQUksMEJBQTBCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksSUFBRyxHQUFJLEdBQUksNEJBQTRCLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxJQUFHLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUksR0FBRSxDQUFDLEVBQUUsR0FBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFHLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBSSxHQUFFLEVBQUMsRUFBRSxHQUFJLEdBQUUsQ0FBQyxFQUFFLEdBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUUsRUFBRSxFQUFFLEVBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFFLEVBQUcsR0FBRyxHQUFJLEdBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLEdBQUksR0FBRSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUcsRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFNLEdBQUUsSUFBSSxHQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRSxFQUFFLENBQUMsR0FBRyxHQUFFLEdBQUcsRUFBQyxFQUFFLEtBQU0sR0FBRSxJQUFJLEdBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxHQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUUsR0FBRyxFQUFDLEVBQUUsR0FBSSxHQUFFLEdBQUksRUFBQyxDQUFDLEVBQUUsR0FBSSxHQUFFLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFFLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxHQUFOLENBQWtCLEdBQVQsR0FBRSxHQUFJLEVBQUMsRUFBSyxHQUFHLEdBQUUsR0FBRyxFQUFPLE1BQUosRUFBRSxHQUFRLEdBQUksQ0FBQyxNQUFPLE9BQU0sR0FBSSxFQUFDLEVBQThNLE9BQTVNLEdBQUksR0FBRSxFQUFHLEdBQUcsR0FBSSxHQUFFLEVBQUcsR0FBRyxJQUFJLEVBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEdBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFLLEtBQUssT0FBTyxHQUFFLElBQUksR0FBRSxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRSxHQUFHLENBQUMsRUFBRSxHQUFFLEVBQUcsR0FBSSxHQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQVMsSUFBSSxHQUFJLEVBQUssS0FBSyxJQUFJLEdBQUUsQ0FBQyxFQUFFLEVBQUssS0FBSyxJQUFJLEdBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsR0FBSSxHQUFJLDRCQUE0QixJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQU0sSUFBSSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxFQUFFLEtBQUssR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFHLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEtBQUssR0FBRyxJQUFJLE1BQU0sRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUcsT0FBTyxTQUE2RCxRQUFuRCxFQUFFLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssS0FBSyxFQUFFLEVBQVMsR0FBSSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG9CQUFvQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFHLEdBQUksR0FBSSxnQ0FBZ0MsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFNLElBQUksRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtDQUFrQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtDQUFrQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGtDQUFrQyxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEtBQUssR0FBSSxFQUFNLEVBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0RBQW9ELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvREFBb0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0RBQW9ELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvREFBb0QsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG9EQUFvRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0RBQW9ELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0RBQW9ELElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFlLE9BQVosRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFTLEtBQUssR0FBRyxFQUFFLEVBQUUsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUcsZUFBZSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsR0FBRyxHQUFHLENBQTRDLEdBQTNDLEdBQUUsRUFBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxFQUFHLEdBQUksSUFBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBSyxJQUFrQixHQUFmLEdBQUksR0FBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUssRUFBRyxHQUFJLEdBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFHLEdBQUksR0FBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUssRUFBSSxFQUFHLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsRUFBRSxHQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEdBQUUsSUFBSSxHQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRSxFQUFFLENBQUMsR0FBRyxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsSUFBSSxJQUFHLEdBQUksRUFBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxHQUFFLElBQUksS0FBTSxHQUFFLElBQUksR0FBRSxFQUFFLElBQUksR0FBSSxHQUFHLEdBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRyxHQUFJLEdBQUUsRUFBRyxFQUFFLENBQUMsSUFBSSxJQUFHLEdBQUksR0FBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLEdBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRSxHQUFFLENBQUMsRUFBRSxFQUFFLEVBQUssS0FBSyxJQUFJLEVBQUUsR0FBRSxHQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEdBQUUsSUFBSSxHQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsR0FBRSxFQUFFLENBQUMsR0FBRyxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsRUFBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLENBQUMsSUFBSSxJQUFHLEdBQUksRUFBRSxHQUFFLEVBQUUsR0FBRSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEdBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBbUIsR0FBZixFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUksR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsRUFBSSxHQUFHLElBQUksR0FBSSxFQUFFLElBQU0sSUFBSSxHQUFFLElBQUksS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFFLEVBQUcsR0FBSSxFQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksQ0FBQyxFQUFJLElBQUksR0FBSSxHQUFHLEdBQUksR0FBRyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRyxHQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFLLEVBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUF5QyxHQUF4QyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksc0JBQXNCLEVBQUUsRUFBRSxDQUFDLEVBQWdCLEdBQWQsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUssR0FBRyxLQUFNLE1BQU0sR0FBSSxJQUFJLEdBQUkseUJBQXlCLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxPQUFPLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFLLEdBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFPLE1BQUosRUFBRSxFQUFRLEdBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFPLE9BQU0sR0FBSSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFHLEdBQUksS0FBTSxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEtBQUssR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUksSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGVBQWUsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQVEsSUFBRyxHQUFJLEdBQUksbUJBQW1CLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUJBQXlCLElBQUksRUFBRSxFQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBOEYsT0FBM0YsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBUyxHQUFHLE1BQU8sT0FBTyxJQUFRLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFnRyxPQUE5RixFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsT0FBYyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxHQUFHLEtBQUssa0JBQWtCLEtBQUssR0FBRyxLQUFLLGFBQWEsR0FBSSxLQUFLLENBQUMsRUFBRSxJQUFJLEtBQUssR0FBRyxLQUFLLFFBQVEsR0FBSSxLQUFLLENBQUMsRUFBRSxTQUFTLFFBQVEsR0FBSSxLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUcsRUFBSSxHQUFJLE9BQU8sRUFBRSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFNLEtBQUssRUFBRSxHQUFHLE9BQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFrQixPQUFaLEtBQUssRUFBRSxHQUFZLEtBQUssRUFBRSxXQUFXLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFrQixPQUFaLEtBQUssRUFBRSxHQUFZLEtBQUssRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQWdGLE1BQS9FLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFNLEtBQUssRUFBRSxFQUFFLEtBQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE9BQU8sS0FBSyxFQUFFLEVBQUUsTUFBWSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBRyxFQUFJLEdBQUksU0FBUyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssRUFBRSxLQUFLLElBQUksSUFBRyxFQUFJLEdBQUksWUFBWSxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBMEIsR0FBeEIsRUFBRSxHQUFHLGdCQUFnQixDQUFDLElBQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRyxHQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLElBQUksR0FBSSxFQUFFLENBQUMsRUFBSSxFQUFFLElBQUksR0FBSyxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFHLEVBQUksR0FBSSxTQUFTLEdBQUcsRUFBTSxJQUFJLEVBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxrREFBa0QsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFHLE9BQU8sS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLElBQUksSUFBRyxFQUFJLEdBQUksa0NBQWtDLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLElBQUksSUFBRyxFQUFJLEdBQUksbUNBQW1DLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLG1DQUFtQyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRyxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksR0FBSSxDQUFDLEVBQUUsR0FBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBSSxFQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFJLEVBQUUsRUFBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFHLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksRUFBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLEVBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksTUFBTSxHQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksSUFBRyxFQUFJLEdBQUksa0NBQWtDLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEtBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFvQixHQUFoQixFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFLLEdBQUksR0FBSSxDQUFDLEVBQUUsQ0FBQyxFQUFHLE1BQU8sV0FBYSxHQUFJLENBQUMsR0FBRyxHQUFHLEdBQUksR0FBRyxHQUFJLEdBQUcsR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUcsTUFBTyxHQUFPLElBQUksRUFBRSxJQUFJLEdBQUksRUFBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBb0IsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFJLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRyxNQUFPLEdBQU8sTUFBTyxJQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksSUFBRyxFQUFJLEdBQUksa0NBQWtDLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0NBQWtDLElBQUksRUFBTSxHQUFHLEdBQUksR0FBSSxTQUFTLEVBQU0sR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFNLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBTSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQU0sR0FBRyxHQUFJLEdBQUksVUFBVSxFQUFNLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBTSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQU0sR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFNLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBTSxHQUFHLEdBQUksR0FBSSxVQUFVLEVBQU0sSUFBUSxJQUFHLEdBQUksR0FBSSxHQUFHLEVBQU0sR0FBRyxHQUFJLEdBQUksVUFBVSxFQUFNLEdBQVEsSUFBSSxJQUFJLElBQUksR0FBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFRLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBTSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQU0sR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQVcsT0FBVixLQUFLLEdBQUcsRUFBUyxNQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvQkFBb0IsRUFBRSxFQUFFLEVBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBSSxFQUFHLEdBQUksS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFvQixHQUFqQixFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBSyxFQUFHLE9BQU8sRUFBRyxPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFpRyxPQUEvRixFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxFQUFTLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsR0FBRyxFQUFFLE9BQVEsRUFBRSxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLEtBQUssR0FBRyxFQUFFLE9BQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxFQUFFLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUksS0FBSyxHQUFHLEVBQUUsUUFBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFHLEdBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxLQUFLLEdBQUcsRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxRQUFTLEtBQUssR0FBRyxLQUFLLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxFQUFFLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFjLEdBQVosRUFBRSxLQUFLLEdBQUcsSUFBTyxLQUFLLEVBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQWMsR0FBWixFQUFFLEtBQUssR0FBRyxFQUFLLEVBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEtBQU0sRUFBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksT0FBUSxJQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFjLE9BQVgsS0FBSyxHQUFHLENBQUMsRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFxQyxHQUFuQyxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFLLEdBQUcsRUFBRyxPQUFPLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUMsVUFBVSxHQUFHLEdBQTJCLEdBQXZCLEVBQUUsSUFBSyxHQUFJLEVBQUUsSUFBSyxFQUFFLENBQUMsRUFBSyxHQUF5SCxHQUF0SCxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFJLEdBQUksR0FBSSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFHLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFLLEVBQUksRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxPQUFPLEVBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBSyxFQUFFLEVBQUUsTUFBUSxPQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLFVBQVcsRUFBRSxHQUFHLEVBQUcsT0FBTyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBTSxFQUFJLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBSyxFQUFFLEVBQUUsRUFBb0IsT0FBbEIsRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLEVBQVMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxHQUFJLEVBQUUsSUFBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUJBQW1CLEVBQUUsRUFBTSxJQUFJLEVBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksSUFBSSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEdBQUksRUFBRSxFQUFFLElBQUksSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQVcsSUFBSyxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUksS0FBSyxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxHQUFHLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLEVBQUksR0FBSSwrQkFBK0IsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUJBQXlCLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxPQUFPLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU8sR0FBRSxPQUFPLEtBQUssR0FBRyxFQUFHLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQVEsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsT0FBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQXNGLE9BQXBGLEVBQUUsSUFBSSxHQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLFFBQVEsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxtQkFBbUIsR0FBRyxFQUFFLEVBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDBCQUEwQixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBTyxHQUFJLElBQUksTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTyxHQUFFLE9BQU8sR0FBSSxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQU0sT0FBVSxHQUFFLE9BQU8sR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLEdBQUssT0FBVyxHQUFFLE9BQU8sR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLEdBQUssT0FBVyxJQUFHLE9BQU8sR0FBSSxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUssR0FBTyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQStFLFFBQTNFLEtBQUssS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLEdBQUcsS0FBSyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQVcsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsUUFBUyxHQUFJLElBQUksTUFBTyxHQUFFLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU8sR0FBRSxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLFFBQVMsR0FBRSxPQUFPLEdBQUksSUFBSSxNQUFPLEdBQUUsT0FBTyxHQUFJLElBQUksTUFBTyxJQUFHLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUksT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFRLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLE9BQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGNBQWMsR0FBRyxFQUFFLEVBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxPQUFPLEtBQUssTUFBTyxHQUFFLE9BQU8sS0FBSyxNQUFPLEdBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxNQUFPLEdBQUUsT0FBTyxJQUFJLElBQUksTUFBTyxHQUFFLEdBQUcsRUFBRSxPQUFPLEdBQUksSUFBSSxFQUFFLE9BQU8sS0FBSyxNQUFPLEdBQUUsR0FBRyxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLE1BQU8sSUFBRyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLE1BQU8sSUFBRyxPQUFPLEtBQUssRUFBRyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUErRSxRQUEzRSxLQUFLLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFXLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLElBQUksS0FBSyxLQUFLLENBQUMsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxPQUFPLEtBQUssR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLEdBQUcsTUFBTyxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU8sR0FBRSxPQUFPLEtBQUssR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTyxHQUFFLFFBQVMsSUFBSSxJQUFJLE1BQU8sR0FBRSxRQUFTLEtBQUssTUFBTyxHQUFFLFFBQVMsS0FBSyxNQUFPLEdBQUUsUUFBUyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTyxJQUFHLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFPLEtBQUssR0FBRyxLQUFNLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLElBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksSUFBRyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFRLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxXQUFZLElBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxXQUFZLElBQUcsSUFBSSxLQUFLLElBQUksRUFBRSxPQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRyxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUcsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRyxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFHLFFBQVMsS0FBSyxJQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsT0FBTyxHQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBSSxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUksRUFBRSxHQUFHLEVBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFrRixHQUFqRixFQUFFLEVBQUcsR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUUsRUFBSyxHQUFJLENBQUMsRUFBc0MsT0FBbkMsRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBUyxFQUFFLEVBQUUsR0FBSSxDQUFDLEVBQUUsT0FBUSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLHNCQUFzQixJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxFQUFHLE9BQU8sR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU8sR0FBOEMsUUFBMUMsS0FBSyxJQUFJLEVBQUUsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFVLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBSSxJQUFJLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxJQUFJLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFJLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxlQUFlLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLE9BQVEsSUFBRyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxHQUFJLENBQUMsVUFBVSxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsRUFBRyxDQUFDLElBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFRLEdBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxNQUFPLElBQUcsT0FBTyxFQUFFLElBQUksR0FBSSxNQUFPLElBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxVQUFVLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUcsRUFBRyxDQUFDLElBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFRLFFBQVEsSUFBRyxPQUFPLGFBQWEsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsQ0FBQyxJQUFLLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXFELE9BQW5ELEdBQUcsRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSyxFQUFFLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFVLEdBQUcsTUFBTSxHQUFJLEVBQUUsR0FBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFRLEdBQUUsT0FBTyxLQUFLLEdBQUcsRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFRLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxXQUFZLEdBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxPQUFRLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLEtBQUssSUFBSSxJQUFHLEVBQUksR0FBSSxvQkFBb0IsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFRLEdBQUUsT0FBTyxLQUFLLE9BQVEsR0FBRSxPQUFPLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxPQUFRLEdBQUUsT0FBTyxLQUFLLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsS0FBSyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFRLEdBQUUsR0FBRyxFQUFFLE9BQU8sS0FBSyxJQUFJLElBQUksRUFBRSxFQUFHLEtBQUssR0FBRyxHQUFHLEVBQUUsS0FBSyxPQUFPLElBQUksSUFBSSxFQUFHLE9BQU8sR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxHQUFnRCxRQUE1QyxLQUFLLEtBQUssRUFBRSxFQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQVUsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU8sR0FBK0UsUUFBM0UsS0FBSyxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBVyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBSSxJQUFJLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDLE1BQU8sR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLElBQUksU0FBVSxHQUFFLE9BQU8sS0FBSyxJQUFJLFNBQVUsR0FBRSxPQUFPLEtBQUssSUFBSSxTQUFVLEdBQUUsUUFBUyxLQUFLLE9BQVEsR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUcsTUFBTyxHQUFFLFFBQVMsSUFBSSxJQUFJLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEtBQUssS0FBSyxHQUFJLElBQUksRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFPLEdBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxHQUFHLEtBQUssRUFBRSxPQUFPLEdBQUksSUFBSSxFQUFtRyxPQUFqRyxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxZQUFZLEdBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsZUFBZSxHQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxlQUFlLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFJLEdBQVUsSUFBRyxFQUFJLEdBQUksc0JBQXNCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBTyxJQUFJLElBQUksTUFBTyxHQUFFLE9BQU8sS0FBSyxFQUFHLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBK0UsUUFBM0UsS0FBSyxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBVyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUcsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUcsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxRQUFTLElBQUksSUFBSSxNQUFPLEdBQUUsT0FBUSxHQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUcsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBUSxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsSUFBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxPQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTyxJQUFHLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssTUFBTyxJQUFHLE9BQU8sR0FBSSxJQUFJLE1BQU8sSUFBRyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLE1BQU8sSUFBRyxPQUFPLEdBQUksR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFLLEdBQU8sT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU8sSUFBZ0YsUUFBM0UsS0FBSyxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBVyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU8sSUFBRyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDLE1BQU8sSUFBRyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU8sSUFBRyxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFPLElBQUcsUUFBUyxHQUFJLElBQUksTUFBTyxJQUFHLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFHLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLElBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksSUFBRyxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBUSxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxXQUFZLElBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxXQUFZLElBQUcsR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLElBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxPQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFHLE9BQU8sR0FBSSxJQUFJLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUErRSxRQUEzRSxLQUFLLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFXLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRyxPQUFPLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFHLFFBQVMsR0FBSSxJQUFJLEVBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFRLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxJQUFJLEtBQUssSUFBSSxFQUFFLE9BQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGNBQWMsR0FBRyxFQUFNLElBQUcsR0FBSSxHQUFJLGlCQUFpQixFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxPQUFPLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLFFBQVMsS0FBSyxNQUFPLEdBQUUsT0FBTyxLQUFLLEdBQUcsS0FBTSxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFdBQVksR0FBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLE9BQVEsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLElBQUksS0FBSyxJQUFJLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxJQUFJLEVBQUUsT0FBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksS0FBSyxFQUFjLE9BQVosSUFBSSxLQUFLLENBQUMsRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQW9FLE9BQWxFLEVBQUUsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEtBQUssQ0FBQyxDQUFDLEVBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsR0FBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw2QkFBNkIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDZCQUE2QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNDQUFzQyxHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLEdBQUksR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBUSxHQUFHLEdBQUksR0FBSSxlQUFlLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBTSxJQUFJLEVBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUksR0FBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLFdBQVcsRUFBRSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxRQUFTLEtBQUssR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdDQUFnQyxHQUFHLEVBQU0sSUFBRyxHQUFJLEdBQUksT0FBTyxFQUFFLEVBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGdCQUFnQixFQUFFLEVBQUUsRUFBSSxHQUFHLEdBQUcsR0FBSSxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQTBDLEtBQXRDLEtBQUssRUFBRSxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQVUsRUFBRSxFQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFNLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGFBQWEsRUFBRSxFQUFNLElBQUcsR0FBSSxHQUFJLGNBQWMsRUFBRSxFQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsT0FBTyxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsS0FBSyxHQUFHLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxxQ0FBcUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQW1DLE9BQWpDLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFTLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw4Q0FBOEMsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxnREFBZ0QsR0FBRyxFQUFNLEdBQUksSUFBUSxHQUFHLEVBQUksR0FBSSxhQUFhLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixHQUFHLEVBQU0sR0FBUSxJQUFHLEdBQUksR0FBSSxpQkFBaUIsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFHLEVBQUkseUJBQXlCLFlBQVksSUFBSSxFQUFNLElBQUcsR0FBSSxJQUFJLFNBQVMsRUFBTSxJQUFHLEdBQUksSUFBSSxjQUFjLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQUcsRUFBSSxHQUFJLGNBQWMsSUFBSSxFQUFFLEVBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQVcsS0FBUCxLQUFLLEVBQUssRUFBRSxHQUFHLEVBQUcsTUFBTyxPQUFVLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFPLEtBQU8sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQWMsT0FBWCxLQUFLLEdBQUcsQ0FBQyxFQUFTLE9BQVUsT0FBTyxJQUFRLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBZ0UsT0FBN0QsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFTLE1BQU8sUUFBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBd0QsR0FBdkQsRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBSyxLQUFLLEdBQUcsS0FBSyxFQUFrQixHQUFmLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFNLEVBQUcsS0FBSyxHQUFHLENBQUMsTUFBTyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxXQUFZLEVBQUcsS0FBSyxHQUFHLENBQUMsTUFBTyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFHLE9BQU8sTUFBTSxDQUFlLEdBQWQsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFLLEtBQUssR0FBRyxLQUFLLEVBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLElBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDhCQUE4QixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFPLElBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxLQUFLLE9BQVEsT0FBTyxHQUFZLE9BQVQsRUFBRSxFQUFFLEdBQUcsRUFBUyxPQUFRLE9BQU8sR0FBWSxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBdUMsT0FBcEMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksS0FBSyxFQUFFLEdBQVUsT0FBYSxHQUFFLENBQVUsT0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFTLE9BQVEsR0FBRSxDQUFVLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQXVGLEdBQXRGLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRyxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU8sSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBbUMsT0FBakMsS0FBSyxFQUFFLEVBQUUsSUFBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBVSxHQUFLLEtBQUssRUFBRSxLQUFLLEtBQU0sR0FBRSxDQUFVLE9BQVQsRUFBRSxFQUFFLEdBQUcsRUFBUyxPQUFRLEdBQUUsQ0FBVSxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQWUsR0FBUCxFQUFFLEVBQUUsR0FBTSxHQUFHLEVBQUcsRUFBRSxLQUFLLElBQUksTUFBTyxPQUFPLEVBQUUsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQWdDLE9BQTdCLEtBQUssRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFXLEdBQUssS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBbUYsT0FBakYsRUFBRSxJQUFJLEdBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLGdCQUF1QixLQUFLLE9BQVEsR0FBRSxDQUFDLEVBQUUsR0FBRyxNQUFNLEtBQUssS0FBTSxHQUFFLENBQUMsRUFBRSxHQUFHLFFBQVEsS0FBSyxLQUFNLEdBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxLQUFLLEtBQU0sR0FBRSxDQUFDLEVBQUUsR0FBRyxXQUFXLEtBQUssS0FBTSxHQUFFLENBQUMsRUFBRSxHQUFHLFNBQVMsS0FBSyxLQUFNLEdBQUUsQ0FBQyxFQUFFLEdBQUcsY0FBYyxLQUFLLEtBQU0sR0FBRSxDQUFDLEVBQUUsR0FBRyxPQUFPLEtBQUssS0FBTSxHQUFFLENBQUMsRUFBRSxHQUFHLG1CQUFtQixLQUFLLEtBQU0sR0FBRSxDQUFDLEVBQUUsR0FBRyxVQUFVLEtBQUssU0FBUyxDQUFDLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQTRPLEdBQTFPLElBQUksSUFBSSxJQUFJLEVBQUUsR0FBRyxpQkFBbUIsRUFBRSxHQUFHLGVBQWUsR0FBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsZUFBZSxHQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsY0FBYyxHQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsZUFBZSxHQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsZUFBa0IsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBTyxFQUFFLEdBQUcsUUFBUyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBa0YsT0FBaEYsRUFBRSxHQUFHLGNBQWMsR0FBSSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLGFBQWEsR0FBSSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQVcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksbUJBQW1CLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZ0NBQWdDLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRyxFQUFFLEVBQUcsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBSSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdCQUF3QixHQUFHLEVBQUUsRUFBSSxLQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksZUFBZSxJQUFJLEVBQUUsRUFBSSxLQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLE1BQU8sUUFBTyxHQUFJLEtBQUssQ0FBQyxHQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLElBQUksRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksK0NBQStDLEdBQUcsRUFBRSxFQUFJLEdBQUcsRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMEJBQTBCLEVBQUUsRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUErQyxPQUE5QyxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQVMsUUFBUSxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFhLE1BQVYsS0FBSyxHQUFHLEVBQVEsR0FBSSxJQUFJLEVBQUcsTUFBTyxPQUFNLEdBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQ0FBc0MsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUErQyxPQUE5QyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLElBQVcsUUFBUSxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFhLE1BQVYsS0FBSyxHQUFHLEVBQVEsR0FBSSxJQUFJLEVBQUcsTUFBTyxPQUFNLEdBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUErQyxPQUE5QyxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQVMsUUFBUSxFQUFOLENBQWtCLEdBQVQsRUFBRSxHQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFhLE1BQVYsS0FBSyxHQUFHLEVBQVEsR0FBSSxJQUFJLEVBQUcsTUFBTyxPQUFNLEdBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksMENBQTBDLEdBQUcsRUFBRSxFQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBVyxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU8sT0FBbUIsU0FBUCxLQUFLLEVBQVMsSUFBUSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFXLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxNQUFPLE9BQW1CLFNBQVAsS0FBSyxFQUFTLElBQVEsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFpRCxHQUEvQyxHQUFHLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsUUFBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLE9BQU8sR0FBSSxLQUFLLElBQUksRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTBCLEdBQXhCLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEdBQUcsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxHQUFHLEVBQUUsQ0FBQyxFQUFHLE1BQU8sT0FBWSxLQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRyxNQUFPLEdBQVEsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUErQyxHQUE3QyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsT0FBVSxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQTBCLEdBQXhCLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFLLEdBQUcsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxPQUFPLE1BQVMsS0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFHLE9BQU8sRUFBSyxNQUFPLElBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFpRCxHQUEvQyxHQUFHLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsUUFBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQW1DLEdBQWpDLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLE9BQVUsR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBUyxHQUFQLEVBQUUsRUFBRSxHQUFNLEdBQUcsRUFBRyxFQUFFLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXNELE9BQXBELEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsR0FBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQVMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUEwRixPQUF4RixFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBRyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQStDLEdBQTdDLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxPQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUEyQixPQUF6QixFQUFFLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQVMsR0FBRyxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLEtBQUssR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBSSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUNBQXFDLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFJLElBQUksSUFBRyxFQUFJLEdBQUksNkNBQTZDLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFHLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUksSUFBSSxJQUFHLEVBQUksR0FBSSxpREFBaUQsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksRUFBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksNENBQTRDLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksK0JBQStCLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksWUFBWSxHQUFHLEVBQUUsRUFBSSxLQUFLLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLElBQUksRUFBRSxFQUFJLEtBQUssR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBRyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGNBQWMsSUFBSSxFQUFFLEVBQUksS0FBSyxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLElBQUksSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksS0FBSyxFQUFFLEVBQWdCLE9BQWQsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFTLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLElBQUksRUFBRSxFQUFJLEtBQUssR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUksR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLElBQUksRUFBRSxFQUFJLEtBQUssR0FBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQW1GLEdBQWhGLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQU0sRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFVLEdBQVAsRUFBRSxFQUFFLEdBQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU8sSUFBUSxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxHQUFHLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxjQUFjLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUksTUFBTSxHQUFJLElBQUksRUFBRyxFQUE2RSxPQUEzRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFHLEtBQUssRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQVMsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUksTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsTUFBTSxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksOEJBQThCLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUNBQWlDLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksbUNBQW1DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwwQkFBMEIsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBYyxPQUFYLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBVSxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLE9BQVEsT0FBTyxJQUFRLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBSSxLQUFLLEVBQVcsT0FBVCxLQUFLLEVBQUUsRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxLQUFLLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQU0sR0FBSSxFQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUksR0FBSSxFQUFFLElBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyQ0FBMkMsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNkNBQTZDLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFJLEVBQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLElBQUksR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUksR0FBSSxFQUFFLEdBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFHLEdBQUksQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0NBQXNDLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBSSxFQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU8sSUFBSSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLEtBQUssSUFBSSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFJLEdBQUksRUFBRSxHQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBRyxHQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssSUFBSSxJQUFHLEVBQUksR0FBSSxxQ0FBcUMsSUFBSSxFQUFNLElBQUcsR0FBSSxHQUFJLFlBQVksRUFBTSxHQUFJLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFPLEdBQUssSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU8sR0FBa0IsT0FBWixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQVMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxLQUFLLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxJQUFRLElBQUcsRUFBSSxHQUFJLE1BQU0sR0FBRyxFQUFFLEVBQUksS0FBSyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksZUFBZSxJQUFJLEVBQUUsRUFBSSxJQUFJLEdBQUcsR0FBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxHQUFHLEVBQUUsRUFBSSxJQUFJLEdBQUcsR0FBSSxFQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxtQkFBbUIsR0FBRyxFQUFNLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBTSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQU0sR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFNLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBTSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQU0sR0FBRyxHQUFJLEdBQUksUUFBUSxFQUFNLElBQUcsR0FBSSxHQUFJLFdBQVcsRUFBTSxJQUFJLEVBQUksS0FBSyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksOERBQThELElBQUksRUFBTSxHQUFHLEdBQUksR0FBSSxPQUFPLEVBQU0sR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFNLEdBQUcsR0FBSSxHQUFJLEdBQUcsRUFBTSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQU0sR0FBUSxHQUFHLEdBQUksR0FBSSxHQUFHLEVBQU0sR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sT0FBTyxJQUFJLElBQUcsRUFBSSxHQUFJLG1EQUFtRCxJQUFJLEVBQU0sSUFBSSxFQUFJLEtBQUssR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxHQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG9FQUFvRSxJQUFJLEVBQU0sR0FBRyxHQUFJLEdBQUksR0FBRyxFQUFNLEdBQUcsR0FBSSxHQUFJLDJCQUEyQixFQUFNLElBQVEsSUFBUSxHQUFRLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFJLElBQUksR0FBUSxHQUFJLEdBQUksR0FBSSxrQkFBa0IsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLE1BQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksNkNBQTZDLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkseUNBQXlDLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsS0FBSyxHQUFHLEVBQUksS0FBSyxHQUFHLElBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxLQUFLLEdBQUcsRUFBSSxLQUFLLEdBQUcsSUFBSyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxHQUFJLEVBQUUsSUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksY0FBYyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsTUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxNQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBMkIsT0FBekIsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQVksS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsS0FBTSxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUUsRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksR0FBSSxLQUFLLEtBQUssQ0FBQyxFQUFxQixPQUFuQixJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBUyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0NBQW9DLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksa0RBQWtELElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLE9BQVEsR0FBRSxPQUFPLEtBQUssTUFBTyxHQUFFLE9BQU8sSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLElBQUksR0FBRyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxJQUFJLEdBQUcsR0FBSSxLQUFLLENBQUMsT0FBUSxHQUFFLE9BQU8sSUFBSSxJQUFJLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU8sR0FBK0UsUUFBM0UsS0FBSyxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBVyxJQUFJLEtBQUssRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxJQUFJLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLElBQUksS0FBSyxLQUFLLENBQUMsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBSSxJQUFJLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLFFBQVMsS0FBSyxJQUFJLEtBQUssR0FBRyxHQUFHLE1BQU8sR0FBRSxPQUFPLEtBQUssR0FBRyxTQUFVLEdBQUUsUUFBUyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTyxHQUFFLFFBQVMsSUFBSSxJQUFJLE1BQU8sR0FBRSxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxJQUFJLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLFdBQVksR0FBRSxJQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEtBQUssSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUEwQixPQUF4QixFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLFlBQVksR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLE9BQVEsR0FBRSxPQUFPLEtBQUssT0FBUSxHQUFFLE9BQU8sR0FBSSxHQUFHLEtBQUssR0FBRyxNQUFNLEVBQUUsR0FBSyxPQUFXLEdBQUUsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLE1BQU0sRUFBRSxHQUFLLE9BQVcsR0FBRSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFLLE9BQVcsR0FBRSxPQUFPLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBSyxPQUFXLEdBQUUsR0FBRyxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxPQUFPLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxLQUFLLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxPQUFRLEdBQUUsUUFBUyxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUcsTUFBTyxHQUFFLE9BQU8sS0FBSyxJQUFJLFNBQVUsR0FBRSxPQUFRLEtBQUssR0FBRyxNQUFNLE1BQU8sR0FBRSxPQUFRLEtBQUssR0FBRyxNQUFNLE1BQU8sR0FBRSxPQUFPLEtBQUssR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLEdBQUcsTUFBTyxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU8sR0FBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTyxHQUFFLFFBQVMsS0FBSyxJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLE9BQU8sS0FBSyxJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxHQUFJLE9BQU8sR0FBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxXQUFZLEdBQUUsRUFBRSxHQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFRLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLFdBQVksR0FBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksR0FBRSxFQUFFLEdBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxNQUFNLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksb0JBQW9CLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxPQUFRLEdBQUUsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLE1BQU0sRUFBRSxHQUFLLE9BQVcsR0FBRSxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFLEdBQUssT0FBVyxHQUFFLE9BQU8sR0FBSSxLQUFLLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxLQUFLLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUssT0FBVyxHQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFLLE9BQVcsR0FBRSxHQUFHLEVBQUUsT0FBTyxHQUFJLElBQUksRUFBRSxPQUFPLEtBQUssTUFBTyxHQUFFLE9BQU8sS0FBSyxNQUFPLElBQUcsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLEtBQU0sRUFBRSxHQUFLLE9BQVcsSUFBRyxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsS0FBTSxFQUFFLEdBQUssT0FBVyxJQUFHLE9BQU8sR0FBSSxHQUFHLEtBQUssR0FBRyxLQUFNLEVBQUUsR0FBSyxPQUFXLElBQUcsT0FBTyxLQUFLLE1BQU8sSUFBRyxPQUFPLEdBQUksSUFBSSxNQUFPLElBQUcsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLEtBQU0sRUFBRSxHQUFLLE9BQVcsSUFBRyxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsS0FBTSxFQUFFLEdBQUssT0FBVyxJQUFHLE9BQU8sR0FBSSxJQUFJLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxJQUFnRixRQUEzRSxLQUFLLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFXLEdBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFHLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQU8sSUFBRyxPQUFPLEdBQUksS0FBSyxLQUFLLEdBQUcsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFHLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLElBQUksU0FBVSxHQUFFLE9BQVEsS0FBSyxHQUFHLE1BQU0sTUFBTyxHQUFFLE9BQVEsS0FBSyxHQUFHLE1BQU0sTUFBTyxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU8sR0FBRSxPQUFPLEtBQUssR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLEdBQUcsTUFBTyxHQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLElBQUksS0FBSyxFQUFFLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFHLE1BQU8sR0FBRSxRQUFTLEtBQUssT0FBTyxLQUFLLElBQUksS0FBSyxFQUFFLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFHLE9BQVEsSUFBRyxPQUFRLEtBQUssR0FBRyxLQUFNLE1BQU8sSUFBRyxPQUFRLEtBQUssR0FBRyxLQUFNLE1BQU8sSUFBRyxPQUFRLEtBQUssR0FBRyxLQUFNLE1BQU8sSUFBRyxPQUFPLEtBQUssR0FBRyxTQUFVLElBQUcsT0FBTyxHQUFJLElBQUksR0FBRyxTQUFVLElBQUcsT0FBUSxLQUFLLEdBQUcsS0FBTSxNQUFPLElBQUcsT0FBUSxLQUFLLEdBQUcsS0FBTSxNQUFPLElBQUcsUUFBUyxHQUFJLElBQUksRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxLQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsV0FBWSxHQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBWSxJQUFHLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLElBQUcsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBWSxJQUFHLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBWSxJQUFHLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFRLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLFdBQVksR0FBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksR0FBRSxFQUFFLEdBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxLQUFLLEVBQUUsS0FBSyxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFLLElBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLEVBQUcsRUFBRSxHQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsTUFBTSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBSSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsS0FBSyxHQUFHLEtBQU0sT0FBTyxFQUFFLEtBQUssR0FBSSxFQUFFLElBQUssQ0FBQyxJQUFJLEdBQUcsU0FBUyxFQUFFLEdBQUksR0FBSSxHQUFJLElBQUksQ0FBQyxJQUFLLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUcsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsS0FBTSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLElBQUksRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsSUFBSSxFQUFHLEdBQUcsR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsSUFBRyxJQUFJLEVBQUcsS0FBSyxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxJQUFJLEVBQUksS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksRUFBRyxHQUFHLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLElBQUcsSUFBSSxFQUFHLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksS0FBSyxHQUFHLEtBQU0sR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUcsS0FBSyxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUksS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUksRUFBRSxLQUFLLEdBQUcsRUFBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUksS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFHLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFLLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxJQUFJLEdBQUksS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLEdBQUcsS0FBTSxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBSSxFQUFFLElBQUksRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsSUFBSSxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksR0FBSSxLQUFLLEdBQUcsS0FBTSxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLElBQUksRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUksRUFBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsSUFBSSxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxLQUFNLEdBQUcsRUFBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsSUFBSSxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksR0FBSSxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxJQUFJLEVBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBRyxLQUFNLEdBQUcsRUFBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsSUFBSSxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLElBQUksR0FBSSxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxJQUFJLEVBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUcsS0FBSyxHQUFHLEtBQU0sR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBSSxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBSSxLQUFLLEdBQUcsS0FBTSxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFJLEVBQUcsS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFHLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxLQUFNLEdBQUcsRUFBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUksRUFBRyxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUksS0FBSyxHQUFHLEtBQU0sR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBSSxFQUFHLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBSSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRyxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUksS0FBSyxFQUFFLElBQUksSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFLLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxJQUFJLEdBQUksS0FBSyxHQUFHLEtBQU0sR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFJLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLE1BQU0sR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBSSxFQUFHLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFJLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLE1BQU0sR0FBSSxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxLQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUksS0FBSyxFQUFFLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxLQUFLLEdBQUcsS0FBTSxFQUFFLEtBQUssR0FBRyxFQUFHLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUcsS0FBSyxHQUFHLEVBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxLQUFNLEVBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBRyxLQUFNLEVBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFJLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBSSxHQUFHLEtBQUssR0FBRyxLQUFNLEVBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBRyxLQUFNLEVBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFJLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEdBQUcsS0FBTSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEdBQUcsS0FBTSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxHQUFHLEtBQU0sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUkseUJBQXlCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxPQUFRLEdBQUUsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLE1BQU0sRUFBRSxHQUFLLE9BQVcsR0FBRSxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFLEdBQUssT0FBVyxHQUFFLE9BQU8sR0FBSSxLQUFLLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxLQUFLLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUssT0FBVyxHQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFLLE9BQVcsR0FBRSxHQUFHLEVBQUUsT0FBTyxHQUFJLElBQUksRUFBRSxPQUFPLEtBQUssTUFBTyxHQUFFLE9BQU8sS0FBSyxNQUFPLElBQUcsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLEtBQU0sRUFBRSxHQUFLLE9BQVcsSUFBRyxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsS0FBTSxFQUFFLEdBQUssT0FBVyxJQUFHLE9BQU8sR0FBSSxHQUFHLEtBQUssR0FBRyxLQUFNLEVBQUUsR0FBSyxPQUFXLElBQUcsT0FBTyxLQUFLLE1BQU8sSUFBRyxPQUFPLEdBQUksSUFBSSxNQUFPLElBQUcsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLEtBQU0sRUFBRSxHQUFLLE9BQVcsSUFBRyxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsS0FBTSxFQUFFLEdBQUssT0FBVyxJQUFHLE9BQU8sR0FBSSxJQUFJLE1BQU8sSUFBRyxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsS0FBTSxFQUFFLEdBQUssT0FBVyxJQUFHLEdBQUcsRUFBRSxPQUFPLEdBQUksSUFBSSxFQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLFFBQVMsS0FBSyxJQUFJLEtBQUssR0FBRyxHQUFHLE1BQU8sR0FBRSxPQUFPLEtBQUssSUFBSSxTQUFVLEdBQUUsT0FBUSxLQUFLLEdBQUcsTUFBTSxNQUFPLEdBQUUsT0FBUSxLQUFLLEdBQUcsTUFBTSxNQUFPLEdBQUUsT0FBTyxLQUFLLEdBQUcsTUFBTyxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU8sR0FBRSxPQUFPLElBQUksSUFBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU8sR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsTUFBTyxHQUFFLFFBQVMsS0FBSyxPQUFPLEtBQUssSUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsT0FBUSxJQUFHLE9BQVEsS0FBSyxHQUFHLEtBQU0sTUFBTyxJQUFHLE9BQVEsS0FBSyxHQUFHLEtBQU0sTUFBTyxJQUFHLE9BQVEsS0FBSyxHQUFHLEtBQU0sTUFBTyxJQUFHLE9BQU8sS0FBSyxHQUFHLFNBQVUsSUFBRyxPQUFPLEdBQUksSUFBSSxHQUFHLFNBQVUsSUFBRyxPQUFRLEtBQUssR0FBRyxLQUFNLE1BQU8sSUFBRyxPQUFRLEtBQUssR0FBRyxLQUFNLE1BQU8sSUFBRyxRQUFTLEdBQUksSUFBSSxNQUFPLElBQUcsT0FBUSxLQUFLLEdBQUcsS0FBTSxNQUFPLElBQUcsUUFBUyxJQUFJLElBQUksRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxXQUFZLEdBQUUsRUFBRSxHQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxXQUFZLElBQUcsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBWSxJQUFHLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLElBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxJQUFHLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLElBQUcsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLFdBQVksR0FBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxLQUFLLEVBQUUsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksR0FBRSxFQUFFLEdBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxLQUFLLEVBQUUsS0FBSyxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksRUFBRSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUssSUFBSSxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBc0IsT0FBckIsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQVksSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxLQUFLLEVBQUUsT0FBTyxHQUFJLElBQUksRUFBc0UsT0FBcEUsRUFBRSxJQUFJLEdBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsU0FBUyxHQUFJLEdBQUcsS0FBSyxHQUFHLEtBQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFXLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLElBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLE9BQVEsR0FBRSxPQUFPLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQUssTUFBTyxHQUFFLE9BQU8sR0FBSSxJQUFJLE1BQU8sR0FBRSxPQUFPLEtBQUssR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxHQUFHLEVBQUUsT0FBTyxHQUFJLElBQUksRUFBRSxPQUFPLEdBQUksSUFBSSxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQStFLFFBQTNFLEtBQUssS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLEdBQUcsS0FBSyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQVcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxLQUFLLEtBQUssRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLElBQUksU0FBVSxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxHQUFHLEtBQUssTUFBTyxHQUFFLFFBQVMsR0FBSSxJQUFJLE1BQU8sR0FBRSxPQUFPLEtBQUssR0FBRyxHQUFHLFNBQVUsR0FBRSxPQUFPLEtBQUssR0FBRyxNQUFNLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssTUFBTyxHQUFFLFFBQVMsR0FBSSxJQUFJLE1BQU8sR0FBRSxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFHLE9BQU8sR0FBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLFdBQVksR0FBRSxHQUFHLEtBQUssR0FBRyxHQUFHLElBQUksRUFBRyxLQUFLLEdBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTSxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssSUFBSSxFQUFFLEdBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLEdBQUcsS0FBSyxLQUFLLEdBQUcsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsR0FBRyxFQUFFLEVBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxPQUFRLEdBQUUsT0FBTyxLQUFLLEdBQUcsS0FBSyxLQUFLLEVBQUUsS0FBSyxNQUFPLEdBQUUsT0FBTyxHQUFJLElBQUksTUFBTyxHQUFFLE9BQU8sU0FBVSxHQUFFLE9BQU8sS0FBSyxNQUFPLEdBQUUsR0FBRyxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQUUsT0FBTyxHQUFJLElBQUksTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLE1BQU8sR0FBRSxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFLEdBQUssT0FBVyxHQUFFLE9BQU8sR0FBSSxHQUFHLEtBQUssR0FBRyxNQUFNLEVBQUUsR0FBSyxPQUFXLElBQUcsT0FBTyxHQUFJLElBQUksTUFBTyxJQUFHLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssTUFBTyxJQUFHLE9BQU8sR0FBSSxJQUFJLE1BQU8sSUFBRyxPQUFPLEdBQUksSUFBSSxNQUFPLElBQUcsT0FBTyxHQUFJLElBQUksRUFBRSxLQUFLLE1BQU8sSUFBRyxPQUFPLEdBQUksSUFBSSxFQUFFLEtBQUssTUFBTyxJQUFHLE9BQU8sSUFBSSxJQUFJLE1BQU8sSUFBRyxPQUFPLElBQUksSUFBSSxNQUFPLElBQUcsT0FBTyxHQUFJLElBQUksTUFBTyxJQUFHLE9BQU8sR0FBSSxJQUFJLE1BQU8sSUFBRyxPQUFPLEdBQUksSUFBSSxFQUFFLEtBQUssTUFBTyxJQUFHLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssTUFBTyxJQUFHLE9BQU8sR0FBSSxJQUFJLE1BQU8sSUFBRyxPQUFPLElBQUksSUFBSSxFQUFHLE9BQU8sR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxHQUErRSxRQUEzRSxLQUFLLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFXLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU8sSUFBRyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBSSxJQUFJLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBTyxHQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU8sSUFBRyxPQUFPLEdBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLElBQUksU0FBVSxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxHQUFHLEtBQUssTUFBTyxHQUFFLFFBQVMsR0FBSSxJQUFJLE1BQU8sR0FBRSxNQUFPLE9BQVcsR0FBRSxPQUFPLEtBQUssR0FBRyxNQUFNLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssTUFBTyxHQUFFLFFBQVMsR0FBSSxJQUFJLE1BQU8sR0FBRSxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFPLEdBQUUsT0FBUSxLQUFLLEdBQUcsTUFBTSxNQUFPLEdBQUUsT0FBUSxLQUFLLEdBQUcsTUFBTSxNQUFPLElBQUcsUUFBUyxLQUFLLEdBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxLQUFLLEdBQUcsR0FBSSxLQUFLLENBQUMsT0FBUSxJQUFHLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFPLEdBQUksSUFBSSxFQUFFLEdBQUcsTUFBTyxJQUFHLE9BQU8sR0FBSSxJQUFJLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxHQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxHQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxJQUFJLElBQUksRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFPLElBQUksSUFBSSxFQUFFLEdBQUcsTUFBTyxJQUFHLE9BQU8sR0FBSSxJQUFJLEVBQUUsR0FBRyxNQUFPLElBQUcsT0FBTyxHQUFJLElBQUksRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFPLEdBQUksSUFBSSxJQUFJLEtBQUssTUFBTyxJQUFHLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU8sSUFBRyxRQUFTLEtBQUssR0FBRyxHQUFJLEtBQUssQ0FBQyxNQUFPLElBQUcsT0FBTyxJQUFJLElBQUksRUFBRSxHQUFHLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFJLEtBQUssR0FBRyxRQUFRLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBSSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksSUFBRyxHQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxJQUFHLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLElBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksSUFBRyxHQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFJLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxXQUFZLEdBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxJQUFJLEVBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxJQUFJLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxJQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksR0FBRSxJQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxFQUFFLEtBQUssR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksSUFBRyxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksSUFBRyxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksSUFBRyxFQUFFLEtBQUssR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBNEYsR0FBMUYsR0FBSSxJQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsR0FBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxDQUFDLENBQUMsRUFBSyxLQUFLLEVBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFHLEdBQUcsS0FBSyxFQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBSSxHQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRyxJQUFLLEdBQUksRUFBRSxJQUFLLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssSUFBSSxHQUFJLElBQUksSUFBUSxJQUFHLEVBQUksR0FBSSxhQUFhLEVBQUUsRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxFQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRyxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUcsS0FBSyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUcsR0FBSSxLQUFLLENBQUMsRUFBRyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxhQUFhLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFJLEdBQUksZUFBZSxHQUFHLEVBQUUsRUFBSSxHQUFHLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFJLEVBQUksR0FBSSwwQkFBMEIsRUFBRSxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBWSxHQUFWLEdBQUksSUFBSSxFQUFLLEdBQUksS0FBSyxDQUFDLEVBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQU0sR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUssQ0FBQyxNQUFPLE1BQUssRUFBRSxJQUFRLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBSSxFQUFJLEdBQUkscUNBQXFDLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssSUFBSSxHQUFJLEtBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFLLEdBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxNQUFPLEdBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFXLE9BQU8sSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFJLElBQUssRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFXLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLEVBQUUsQ0FBVSxHQUFULEVBQUUsSUFBSSxDQUFDLEVBQUssR0FBRyxFQUFHLE9BQU8sT0FBUSxPQUFPLEdBQUUsQ0FBVSxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxLQUFNLEVBQUUsR0FBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBVyxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxNQUFrQixHQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBTSxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsR0FBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRyxLQUFLLEtBQU0sR0FBRSxDQUFVLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLE1BQWtCLEdBQVosRUFBRSxFQUFHLEVBQUUsR0FBRyxHQUFNLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxHQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFHLEtBQUssS0FBTSxHQUFFLENBQVUsR0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQXFCLEdBQWpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQU0sRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEdBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUksS0FBSyxLQUFNLEdBQUUsQ0FBVSxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxNQUFrQixHQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsR0FBTSxFQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUUsR0FBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRyxLQUFLLEtBQU0sR0FBRSxDQUFVLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLE1BQU0sSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFxQixHQUFqQixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFNLEVBQUUsR0FBRyxJQUFJLEVBQUcsRUFBRSxHQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFJLEtBQUssRUFBRyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsSUFBSSxFQUFFLEVBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksK0JBQStCLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLElBQUksSUFBSSxFQUFJLEdBQUksMkNBQTJDLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBd0IsR0FBckIsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUcsR0FBRyxHQUFHLEtBQUssRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUcsT0FBTyxHQUFLLE1BQU8sSUFBSSxJQUFJLElBQUcsRUFBSSxHQUFJLHlDQUF5QyxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxJQUFJLElBQUcsRUFBSSxHQUFJLDRDQUE0QyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxJQUFJLElBQUcsRUFBSSxHQUFJLDRCQUE0QixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLElBQUksSUFBRyxFQUFJLEdBQUksZUFBZSxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGVBQWUsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLElBQUksSUFBRyxFQUFJLEdBQUksZUFBZSxJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx1Q0FBdUMsSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLENBQWEsR0FBWixFQUFFLEtBQUssR0FBRyxFQUFLLEVBQUUsRUFBRyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFzSyxHQUFySyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFHLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBSSxFQUFHLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQTBCLEdBQXZCLEVBQUUsR0FBSSxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRyxNQUFPLEdBQU8sT0FBTyxVQUFVLEtBQUssR0FBRyxJQUFJLEtBQUssR0FBRyxHQUF5RCxHQUF0RCxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUcsR0FBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFHLE1BQU8sV0FBYSxHQUFHLE9BQU8sRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsTUFBTyxRQUFhLE9BQU8sR0FBb0IsR0FBYixFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUssS0FBSyxHQUFHLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBMEIsR0FBdkIsRUFBRSxHQUFJLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFHLE1BQU8sR0FBTyxPQUFPLE1BQU8sUUFBTyxLQUFLLEdBQUcsQ0FBQyxHQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxRQUFTLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUErQixHQUE3QixFQUFFLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQWMsT0FBWCxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQVUsRUFBRSxHQUFHLEtBQU0sS0FBSyxHQUFJLEVBQUcsRUFBRSxFQUFFLENBQUMsTUFBTyxPQUFPLElBQVEsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBK0IsR0FBN0IsRUFBRSxHQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUF1QixPQUFwQixFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFJLENBQUMsSUFBVyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLFFBQVMsT0FBTyxJQUFRLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUErQixHQUE3QixFQUFFLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFLLEdBQUcsRUFBRSxHQUFHLEVBQXVCLE9BQXBCLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksQ0FBQyxJQUFXLE1BQU8sT0FBTyxJQUFRLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBK0IsR0FBN0IsRUFBRSxHQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBSyxHQUFHLEVBQUUsR0FBRyxFQUFjLE9BQVgsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFVLEVBQUUsR0FBRyxLQUFNLE1BQU8sT0FBTyxJQUFRLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBZSxHQUFiLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBSyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBMEIsR0FBdkIsRUFBRSxHQUFJLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFHLE9BQU8sRUFBSSxNQUFPLElBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFJLEVBQUcsR0FBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBSSxFQUFHLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRyxHQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRyxHQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQStCLEdBQTdCLEVBQUUsR0FBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBYyxPQUFYLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBVSxFQUFFLEdBQUcsS0FBTSxNQUFPLE9BQU8sSUFBUSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLElBQUksRUFBRSxHQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRyxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRyxHQUFJLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUcsT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRyxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRyxHQUFJLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUcsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksdUJBQXVCLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFHLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRyxHQUFJLEdBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksR0FBSSxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQWEsR0FBVCxFQUFFLEVBQUUsR0FBRyxHQUFNLElBQUksS0FBSyxDQUFDLEVBQUcsTUFBTyxHQUFPLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBYyxHQUFYLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBSyxFQUFFLEdBQUcsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBSSxDQUFDLENBQUMsRUFBRyxNQUFPLEdBQU8sTUFBTyxJQUFNLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQU0sRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUksQ0FBQyxHQUFHLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQWlCLEdBQWhCLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUssR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBRyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU8sSUFBSSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWtCLEdBQWhCLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxFQUFLLEVBQUUsT0FBTyxFQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxJQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLElBQWdCLE9BQVQsRUFBRSxHQUFHLElBQVcsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLEtBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxlQUFlLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlCQUFpQixJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxJQUFJLElBQUcsRUFBSSxHQUFJLGVBQWUsSUFBSSxFQUFFLEVBQUksS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLE9BQVEsR0FBRSxPQUFPLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQUssTUFBTyxHQUFFLE9BQU8sR0FBSSxJQUFJLE1BQU8sR0FBRSxPQUFPLEtBQUssR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxHQUFHLEVBQUUsT0FBTyxHQUFJLElBQUksRUFBRSxPQUFPLEdBQUksSUFBSSxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssTUFBTyxHQUFFLE9BQU8sR0FBSSxHQUFHLEtBQUssR0FBRyxNQUFNLEVBQUUsR0FBSyxHQUFPLE9BQU8sR0FBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLFFBQVMsS0FBSyxJQUFJLEtBQUssR0FBRyxHQUFHLE1BQU8sR0FBRSxPQUFPLEtBQUssSUFBSSxTQUFVLEdBQUUsT0FBTyxLQUFLLEdBQUcsTUFBTSxLQUFLLEdBQUcsS0FBSyxNQUFPLEdBQUUsUUFBUyxHQUFJLElBQUksTUFBTyxHQUFFLE9BQU8sS0FBSyxHQUFHLEdBQUcsU0FBVSxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxNQUFPLEdBQUUsUUFBUyxHQUFJLElBQUksTUFBTyxHQUFFLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU8sR0FBRSxPQUFRLEtBQUssR0FBRyxNQUFNLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFRLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxXQUFZLEdBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxJQUFJLEVBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxJQUFJLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBSSxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSyxHQUFJLEVBQUUsSUFBSyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksS0FBSyxHQUFvQixHQUFqQixFQUFFLElBQUksR0FBSSxJQUFJLENBQUMsR0FBTSxFQUFFLEdBQUcsRUFBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUksSUFBSSxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxHQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRyxHQUFLLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBTSxHQUFHLEdBQUksS0FBSyxFQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUcsR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFJLENBQUMsRUFBRyxHQUFHLEdBQUssS0FBSyxFQUFFLEdBQUksQ0FBQyxFQUFHLEdBQUcsR0FBSSxLQUFLLEVBQUUsR0FBSSxDQUFDLEVBQUksS0FBSyxFQUFFLEdBQUksQ0FBQyxHQUFJLEtBQUssRUFBRSxHQUFLLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxNQUFNLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsbURBQW1ELEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxHQUFHLEtBQUssRUFBRSxPQUFPLEdBQUksSUFBSSxFQUFnRixPQUE5RSxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxtQkFBbUIsR0FBSSxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFRLEdBQUUsT0FBTyxLQUFLLE9BQVEsR0FBRSxPQUFPLEtBQUssR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLE1BQU8sR0FBRSxPQUFPLEdBQUksSUFBSSxNQUFPLEdBQUUsT0FBTyxJQUFJLElBQUksTUFBTyxHQUFFLE9BQU8sS0FBSyxNQUFPLEdBQUUsR0FBRyxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQUUsT0FBTyxHQUFJLElBQUksTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLE1BQU8sR0FBRSxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFLEdBQUssT0FBVyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU8sR0FBK0UsUUFBM0UsS0FBSyxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBVyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFHLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFJLElBQUksRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLElBQUksU0FBVSxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxHQUFHLEtBQUssTUFBTyxHQUFFLFFBQVMsR0FBSSxJQUFJLE1BQU8sR0FBRSxRQUFTLElBQUksSUFBSSxNQUFPLEdBQUUsT0FBTyxLQUFLLEdBQUcsTUFBTSxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLE1BQU8sR0FBRSxRQUFTLEdBQUksSUFBSSxNQUFPLEdBQUUsUUFBUyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTyxHQUFFLE9BQVEsS0FBSyxHQUFHLE1BQU0sTUFBTyxHQUFFLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxXQUFZLEdBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxJQUFJLEVBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxJQUFJLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUksR0FBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUcsSUFBSyxHQUFJLEVBQUUsSUFBSyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxLQUFNLE1BQU8sR0FBSyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxZQUFZLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxPQUFRLEdBQUUsT0FBTyxHQUFJLEtBQUssQ0FBQyxNQUFPLEdBQUUsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssTUFBTyxHQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEtBQUssR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFNLE9BQU8sR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxHQUErRSxRQUEzRSxLQUFLLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFXLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFHLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFJLElBQUksRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFHLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFJLElBQUksRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsUUFBUyxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUcsTUFBTyxHQUFFLE9BQU8sS0FBSyxJQUFJLFNBQVUsR0FBRSxPQUFPLEtBQUssR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLE1BQU8sR0FBRSxPQUFPLEtBQUssR0FBRyxTQUFVLEdBQUUsU0FBVSxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxNQUFPLE9BQU8sR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLEVBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLElBQUksRUFBRSxPQUFRLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEtBQUssR0FBRyxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksbUJBQW1CLEdBQUcsRUFBTSxJQUFHLEdBQUksR0FBSSxzQ0FBc0MsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUcsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLDhDQUE4QyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQW9CLEdBQWxCLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsRUFBRSxHQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLElBQUksRUFBRSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxNQUFPLEdBQUUsR0FBRyxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxPQUFPLEtBQUssTUFBTyxHQUFFLE9BQU8sS0FBSyxNQUFPLEdBQUUsR0FBRyxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQUUsT0FBTyxLQUFLLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFPLElBQUksS0FBSyxLQUFLLENBQUMsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFHLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFJLElBQUksRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsUUFBUyxLQUFLLE1BQU8sR0FBRSxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLE1BQU8sR0FBRSxRQUFTLEtBQUssTUFBTyxHQUFFLFFBQVMsS0FBSyxNQUFPLEdBQUUsUUFBUyxLQUFLLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsSUFBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxJQUFJLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxJQUFJLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxJQUFJLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxJQUFJLEdBQUksR0FBSSxJQUFJLENBQUMsRUFBNkMsT0FBM0MsRUFBRSxHQUFHLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFXLEVBQUUsR0FBRyxJQUFJLElBQVEsSUFBRyxFQUFJLEdBQUksbUJBQW1CLEdBQUcsRUFBRSxFQUFJLEtBQUssS0FBSyxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBdUIsT0FBdEIsSUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBaUIsT0FBaEIsR0FBRyxLQUFLLEVBQUUsRUFBSSxFQUFTLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBb0MsT0FBbEMsRUFBRSxJQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBSSxFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksa0NBQWtDLElBQUksRUFBRSxFQUFJLElBQUksS0FBSyxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxLQUFNLE9BQU8sR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFJLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsS0FBTSxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFJLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWUsR0FBWixFQUFFLEtBQUssRUFBRSxJQUFPLEtBQUssR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBOEIsR0FBM0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUssRUFBRSxHQUFJLEVBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBTSxNQUFPLFdBQWdCLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsTUFBTyxXQUFlLEdBQUcsS0FBTSxNQUFPLElBQVMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsRUFBRyxNQUFNLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBRSxVQUFVLENBQUMsRUFBRSxPQUFPLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBSSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUksQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEVBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFNLEdBQUosRUFBRSxFQUFLLEtBQUssR0FBRyxNQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZSxHQUFaLEVBQUUsS0FBSyxFQUFFLElBQU8sS0FBSyxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUE4QixHQUEzQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBSyxFQUFFLEdBQUksRUFBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxNQUFRLEdBQUUsR0FBRyxFQUFHLEdBQUcsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUcsR0FBRyxRQUFRLEVBQUksT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFRLElBQUksRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksSUFBSSxFQUFFLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksRUFBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEtBQUssS0FBSyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksNkNBQTZDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEtBQUssT0FBUSxPQUFPLEdBQUcsTUFBTyxPQUFVLEdBQUcsTUFBTyxPQUFXLEdBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVcsSUFBSSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksS0FBSyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxFQUFFLEtBQUssRUFBRSxPQUEyQixHQUFuQixFQUFFLEtBQUssRUFBRSxLQUFLLE9BQVUsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsTUFBTSxLQUFLLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQTBELEdBQXRELEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQU0sS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU8sR0FBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRyxLQUFLLEVBQUUsS0FBSyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTyxNQUFLLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBdUUsR0FBdEUsR0FBRyxLQUFLLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUssS0FBSyxFQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFPLEdBQUUsRUFBRSxLQUFLLEVBQUUsRUFBVyxPQUFULEtBQUssRUFBRSxFQUFTLFlBQWMsR0FBRyxLQUFvRCxPQUE5QyxLQUFLLEVBQUUsS0FBSyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQVMsR0FBcUQsT0FBOUMsS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEdBQU0sS0FBSyxFQUFFLEVBQVMsT0FBVSxDQUF1RSxHQUF0RSxHQUFHLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBSyxLQUFLLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU8sR0FBRSxFQUFFLEtBQUssRUFBRSxFQUFXLE9BQVQsS0FBSyxFQUFFLEVBQVMsTUFBUyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEtBQUssT0FBUSxPQUFRLEdBQUksTUFBTyxPQUFVLEdBQUksTUFBTyxPQUFXLEdBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVcsSUFBSSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksS0FBSyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQXNCLEdBQW5CLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxLQUFRLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFHLE1BQU0sS0FBSyxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUEwRCxHQUF0RCxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFPLEdBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssTUFBTyxNQUFLLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQXVFLEdBQXRFLEdBQUcsS0FBSyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFLLEtBQUssRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTyxHQUFFLEVBQUUsS0FBSyxFQUFFLEVBQVksT0FBVixLQUFLLEVBQUUsR0FBVSxZQUFjLEdBQUcsS0FBcUQsT0FBL0MsS0FBSyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFVLEdBQXlDLE9BQWxDLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxHQUFVLE9BQVUsQ0FBdUUsR0FBdEUsR0FBRyxLQUFLLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUssS0FBSyxFQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFPLEdBQUUsRUFBRSxLQUFLLEVBQUUsRUFBWSxPQUFWLEtBQUssRUFBRSxHQUFVLE1BQVMsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxLQUFLLEdBQUcsRUFBd0MsUUFBbkMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxFQUFTLE1BQU8sT0FBTSxHQUFJLElBQUksRUFBRyxHQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQVEsSUFBSSxFQUFJLEdBQUkscUNBQXFDLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLElBQUksSUFBSSxFQUFJLEdBQUksOENBQThDLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLElBQUksSUFBRyxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLElBQUksSUFBRyxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEdBQUcsSUFBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksR0FBSSxHQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBbUUsT0FBbEUsS0FBSyxHQUFHLE1BQU0sS0FBSyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBVSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFJLElBQUksSUFBSSxFQUFFLEdBQUcsRUFBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU8sSUFBTyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG9CQUFvQixFQUFFLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxPQUFRLEdBQUUsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLE1BQU0sRUFBRSxHQUFLLE9BQVcsR0FBRSxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFLEdBQUssT0FBVyxHQUFFLE9BQU8sR0FBSSxLQUFLLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxLQUFLLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBSyxPQUFXLEdBQUUsT0FBTyxHQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUssT0FBVyxHQUFFLEdBQUcsRUFBRSxPQUFPLEdBQUksSUFBSSxFQUFFLE9BQU8sS0FBSyxNQUFPLEdBQUUsT0FBTyxLQUFLLE1BQU8sSUFBRyxPQUFPLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRyxLQUFLLEdBQUcsRUFBRSxFQUFFLFNBQVUsSUFBRyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxNQUFPLElBQUcsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxNQUFPLElBQUcsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLElBQUksR0FBRyxLQUFLLE1BQU8sSUFBRyxPQUFPLEdBQUksSUFBSSxFQUFHLE9BQU8sR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxJQUFnRixRQUEzRSxLQUFLLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFXLEdBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFPLElBQUcsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFJLEVBQUUsSUFBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUksSUFBSSxFQUFFLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxHQUFFLE9BQU8sR0FBSSxLQUFLLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBSSxLQUFLLEtBQUssR0FBRyxDQUFDLE1BQU8sSUFBRyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU8sSUFBRyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBSSxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFBRyxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBSSxJQUFJLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFPLEdBQUUsT0FBTyxLQUFLLElBQUksU0FBVSxHQUFFLE9BQVEsS0FBSyxHQUFHLE1BQU0sTUFBTyxHQUFFLE9BQVEsS0FBSyxHQUFHLE1BQU0sTUFBTyxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU8sR0FBRSxPQUFPLEtBQUssR0FBRyxNQUFPLEdBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxPQUFRLEdBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU8sR0FBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsTUFBTyxHQUFFLFFBQVMsS0FBSyxPQUFPLEtBQUssSUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsT0FBUSxJQUFHLFNBQVUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsVUFBVyxJQUFHLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU8sSUFBRyxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFPLElBQUcsUUFBUyxLQUFLLEdBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxLQUFLLEdBQUcsR0FBSSxLQUFLLENBQUMsT0FBUSxJQUFHLFFBQVMsS0FBSyxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsV0FBWSxHQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBWSxJQUFHLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksSUFBRyxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxJQUFHLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxJQUFJLEdBQUcsR0FBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLElBQUksR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxJQUFHLEdBQUksR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFJLEdBQUksSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFRLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxJQUFJLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxFQUFJLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxFQUFJLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxJQUFJLEVBQUUsV0FBWSxHQUFFLEVBQUUsR0FBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBWSxJQUFHLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksSUFBRyxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksSUFBRyxFQUFFLEtBQUssR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksSUFBRyxFQUFFLEtBQUssR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEdBQUksR0FBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUcsR0FBSSxJQUFJLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpQkFBaUIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUcsR0FBSSxHQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxLQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFHLEdBQUksR0FBSSxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxHQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBYSxHQUFULEVBQUUsRUFBRSxHQUFHLEdBQU0sSUFBSSxLQUFLLENBQUMsRUFBRyxNQUFPLEdBQU8sTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFjLEdBQVgsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFJLENBQUMsQ0FBQyxFQUFHLE1BQU8sR0FBTyxNQUFPLElBQU0sTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsS0FBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBaUIsR0FBaEIsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFFLEVBQUUsRUFBSyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTyxJQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLEdBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQU0sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBa0IsR0FBaEIsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUssRUFBRSxPQUFPLEVBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFJLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQU0sR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLElBQUksRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBSSxFQUFFLElBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBZ0IsT0FBVCxFQUFFLEdBQUcsSUFBVyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sS0FBSSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixHQUFHLEVBQUUsRUFBSSxLQUFLLEtBQUssR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLEdBQUcsR0FBSSxFQUFFLEtBQUssR0FBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLE1BQU8sR0FBRyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVcsT0FBTyxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUksSUFBSyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUksaUJBQWlCLEdBQUcsRUFBRSxFQUFJLEdBQUcsR0FBRyxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUksR0FBSSxxQ0FBcUMsRUFBRSxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLCtDQUErQyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxpQkFBaUIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFHLEVBQUksR0FBSSxpQkFBaUIsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBSSxLQUFLLENBQUMsSUFBSSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLE9BQVEsR0FBRSxPQUFPLEtBQUssT0FBUSxHQUFFLE9BQU8sR0FBSSxHQUFHLEtBQUssR0FBRyxNQUFNLEVBQUUsR0FBSyxPQUFXLEdBQUUsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLE1BQU0sRUFBRSxHQUFLLE9BQVcsR0FBRSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUssT0FBVyxHQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFLLE9BQVcsR0FBRSxHQUFHLEVBQUUsT0FBTyxHQUFJLElBQUksRUFBRSxPQUFPLEtBQUssTUFBTyxHQUFFLE9BQU8sS0FBSyxNQUFPLElBQUcsT0FBTyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUcsS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFNLE9BQU8sR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTyxJQUFnRixRQUEzRSxLQUFLLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFXLEdBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFHLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFJLElBQUksRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQU8sSUFBRyxPQUFPLEdBQUksS0FBSyxLQUFLLEdBQUcsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFHLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFJLElBQUksRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLFFBQVMsS0FBSyxJQUFJLEtBQUssR0FBRyxHQUFHLE1BQU8sR0FBRSxPQUFPLEtBQUssSUFBSSxTQUFVLEdBQUUsT0FBUSxLQUFLLEdBQUcsTUFBTSxNQUFPLEdBQUUsT0FBUSxLQUFLLEdBQUcsTUFBTSxNQUFPLEdBQUUsT0FBTyxLQUFLLEdBQUcsTUFBTyxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU8sR0FBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLE9BQVEsR0FBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTyxHQUFFLFFBQVMsS0FBSyxJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLE9BQU8sS0FBSyxJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxPQUFRLElBQUcsU0FBVSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUcsS0FBSyxHQUFHLEVBQUUsRUFBRSxNQUFPLE9BQU8sR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLElBQUksSUFBRyxFQUFJLEdBQUksaUJBQWlCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLE9BQVEsR0FBRSxPQUFPLEtBQUssT0FBUSxHQUFFLE9BQU8sR0FBSSxHQUFHLEtBQUssR0FBRyxNQUFNLEVBQUUsR0FBSyxPQUFXLEdBQUUsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLE1BQU0sRUFBRSxHQUFLLE9BQVcsR0FBRSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUssT0FBVyxHQUFFLE9BQU8sR0FBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFLLE9BQVcsR0FBRSxHQUFHLEVBQUUsT0FBTyxHQUFJLElBQUksRUFBRSxPQUFPLEtBQUssTUFBTyxHQUFFLE9BQU8sS0FBSyxNQUFPLElBQUcsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLEtBQU0sRUFBRSxHQUFLLE9BQVcsSUFBRyxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsS0FBTSxFQUFFLEdBQUssT0FBVyxJQUFHLE9BQU8sR0FBSSxHQUFHLEtBQUssR0FBRyxLQUFNLEVBQUUsR0FBSyxPQUFXLElBQUcsT0FBTyxLQUFLLE1BQU8sSUFBRyxPQUFPLEdBQUksSUFBSSxNQUFPLElBQUcsT0FBTyxHQUFJLEdBQUcsS0FBSyxHQUFHLEtBQU0sRUFBRSxHQUFLLE9BQVcsSUFBRyxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsS0FBTSxFQUFFLEdBQUssT0FBVyxJQUFHLE9BQU8sR0FBSSxJQUFJLE1BQU8sSUFBRyxPQUFPLEdBQUksR0FBRyxLQUFLLEdBQUcsS0FBTSxFQUFFLEdBQUssT0FBVyxJQUFHLE9BQU8sR0FBSSxFQUFFLEVBQUUsR0FBSSxJQUFJLElBQUksSUFBSSxFQUFFLEdBQUcsS0FBTSxFQUFFLEdBQUssT0FBVyxJQUFHLE9BQU8sR0FBSSxHQUFHLEtBQUssR0FBRyxLQUFNLEVBQUUsR0FBSyxPQUFXLElBQUcsR0FBRyxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQUUsT0FBTyxLQUFLLE1BQU8sSUFBRyxHQUFHLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRSxPQUFPLElBQUksSUFBSSxNQUFPLElBQUcsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLFFBQVMsS0FBSyxJQUFJLEtBQUssR0FBRyxHQUFHLE1BQU8sR0FBRSxPQUFPLEtBQUssSUFBSSxTQUFVLEdBQUUsT0FBUSxLQUFLLEdBQUcsTUFBTSxNQUFPLEdBQUUsT0FBUSxLQUFLLEdBQUcsTUFBTSxNQUFPLEdBQUUsT0FBTyxLQUFLLEdBQUcsTUFBTyxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU8sR0FBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLE9BQVEsR0FBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTyxHQUFFLFFBQVMsS0FBSyxJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxNQUFPLEdBQUUsUUFBUyxLQUFLLE9BQU8sS0FBSyxJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxPQUFRLElBQUcsT0FBUSxLQUFLLEdBQUcsS0FBTSxNQUFPLElBQUcsT0FBUSxLQUFLLEdBQUcsS0FBTSxNQUFPLElBQUcsT0FBUSxLQUFLLEdBQUcsS0FBTSxNQUFPLElBQUcsT0FBTyxLQUFLLEdBQUcsU0FBVSxJQUFHLE9BQU8sR0FBSSxJQUFJLEdBQUcsU0FBVSxJQUFHLE9BQVEsS0FBSyxHQUFHLEtBQU0sTUFBTyxJQUFHLE9BQVEsS0FBSyxHQUFHLEtBQU0sTUFBTyxJQUFHLFFBQVMsR0FBSSxJQUFJLE1BQU8sSUFBRyxPQUFRLEtBQUssR0FBRyxLQUFNLE1BQU8sSUFBRyxPQUFPLEVBQUUsR0FBSSxJQUFJLElBQUksSUFBSSxFQUFFLEdBQUcsS0FBTSxNQUFPLElBQUcsT0FBUSxLQUFLLEdBQUcsS0FBTSxNQUFPLElBQUcsUUFBUyxLQUFLLE1BQU8sSUFBRyxRQUFTLElBQUksSUFBSSxNQUFPLElBQUcsUUFBUyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxXQUFZLEdBQUUsRUFBRSxHQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxXQUFZLElBQUcsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBWSxJQUFHLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLElBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxJQUFHLEdBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLElBQUcsR0FBSSxLQUFLLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVksSUFBRyxJQUFJLEtBQUssR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBWSxJQUFHLElBQUksS0FBSyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFZLElBQUcsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLElBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLFdBQVksR0FBRSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBSSxHQUFJLEVBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksR0FBRSxFQUFFLEdBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxLQUFLLEVBQUUsS0FBSyxHQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxHQUFJLEtBQUssRUFBSyxFQUFFLFdBQVksSUFBRyxJQUFJLEtBQUssRUFBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFJLEdBQUksRUFBRyxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVksSUFBRyxJQUFJLEtBQUssRUFBSSxFQUFFLFdBQVksSUFBRyxJQUFJLEtBQUssSUFBSSxFQUFFLFdBQVksSUFBRyxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEdBQUcsS0FBSyxFQUFFLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxPQUFRLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFLLElBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUksSUFBSSxJQUFJLElBQUksRUFBRSxHQUFHLEtBQU0sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEdBQUcsS0FBTSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssR0FBRyxLQUFNLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBYSxPQUFaLEtBQUssRUFBRSxLQUFZLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxHQUFHLEtBQUssRUFBRSxPQUFPLEdBQUksSUFBSSxFQUFpSSxPQUEvSCxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxrQkFBa0IsR0FBSSxHQUFHLEtBQUssR0FBRyxLQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcscUJBQXFCLEdBQUksR0FBRyxLQUFLLEdBQUcsS0FBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQVcsRUFBRSxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUJBQWlCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQU8sS0FBSyxNQUFPLEdBQUUsT0FBTyxLQUFLLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFPLEtBQUssR0FBRyxTQUFVLEdBQUUsT0FBTyxLQUFLLEdBQUcsS0FBTSxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsSUFBSSxLQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLElBQUksRUFBRSxPQUFRLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUksQ0FBQyxFQUFFLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQTRGLE9BQTFGLEVBQUUsSUFBSSxHQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLFVBQVUsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxZQUFZLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFNLElBQUksR0FBSSxHQUFJLDJCQUEyQixFQUFFLEVBQUksSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFHLE1BQU8sV0FBYSxHQUFHLEVBQUUsRUFBRSxFQUFjLEdBQVgsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBZSxPQUFaLEVBQUUsS0FBSyxHQUFHLEVBQVMsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU8sT0FBTyxPQUFZLE9BQU8sSUFBUSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBSSxLQUFLLEdBQUcsRUFBRSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFxQyxPQUFuQyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQVUsR0FBRyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLEtBQUssR0FBRyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksOENBQThDLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksNERBQTRELEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRyxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxvRUFBb0UsSUFBSSxFQUFFLEVBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFJLEdBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLENBQUMsRUFBaUMsR0FBL0IsR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxLQUFLLENBQUMsQ0FBQyxHQUFNLEVBQUcsT0FBTyxLQUFLLE9BQVEsUUFBUSxJQUFHLE9BQU8sRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU8sSUFBRyxPQUFPLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFJLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUE4RCxPQUE1RCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFTLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUksRUFBRSxHQUFHLENBQUMsRUFBZ0MsT0FBOUIsR0FBRyxPQUFPLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFVLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxNQUFNLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBMkMsR0FBekMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLENBQUMsRUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFHLE9BQU8sRUFBRyxFQUFFLEVBQUUsTUFBd0IsUUFBakIsRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFTLElBQUksSUFBSSxDQUFDLEdBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUcsRUFBSSxHQUFJLHFEQUFxRCxFQUFFLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxFQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQVEsSUFBRyxFQUFJLEdBQUksdURBQXVELEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBRyxFQUFJLEdBQUkseURBQXlELElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQXNGLFFBQWxGLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLFFBQVMsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBZ0MsR0FBOUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUssR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxNQUFPLEdBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBSSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFXLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxFQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLE1BQU8sR0FBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUksR0FBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEdBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxJQUFJLElBQUcsRUFBSSxHQUFJLGdFQUFnRSxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLElBQUksSUFBRyxFQUFJLEdBQUkseUVBQXlFLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEtBQUssS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRyxFQUFFLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sR0FBRyxDQUFDLElBQUksR0FBRyxFQUFHLElBQUksR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBcUQsR0FBcEQsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUcsRUFBRSxLQUFLLEdBQU0sR0FBRyxLQUFNLEdBQUcsS0FBSyxHQUFHLEtBQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxNQUFPLE1BQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLE1BQU8sTUFBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxHQUFHLEtBQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLE1BQU8sTUFBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQUMsR0FBSSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwyREFBMkQsR0FBRyxFQUFFLEVBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFRLElBQUcsRUFBSSxHQUFJLCtFQUErRSxFQUFHLEVBQUUsRUFBSSxLQUFLLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpRkFBaUYsSUFBSSxFQUFFLEVBQUksS0FBSyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUZBQWlGLElBQUksRUFBRSxFQUFJLEtBQUssR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlGQUFpRixJQUFJLEVBQUUsRUFBSSxLQUFLLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpRkFBaUYsSUFBSSxFQUFFLEVBQUksS0FBSyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUZBQWlGLElBQUksRUFBRSxFQUFJLEtBQUssR0FBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlGQUFpRixJQUFJLEVBQUUsRUFBSSxLQUFLLEdBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxpRkFBaUYsSUFBSSxFQUFFLEVBQUksS0FBSyxHQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksaUZBQWlGLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBSSxJQUFJLElBQUcsRUFBSSxHQUFJLGtFQUFrRSxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLGlFQUFpRSxJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxNQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBa0IsR0FBakIsRUFBRSxHQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBSyxHQUFHLEtBQU0sRUFBRSxHQUFNLEVBQUUsS0FBSyxNQUFPLElBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRyxJQUFJLEVBQUUsTUFBTSxHQUFHLEdBQUcsS0FBTSxHQUFHLEtBQUssR0FBRyxLQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssTUFBTyxHQUFFLEdBQUcsRUFBRSxFQUFHLE1BQVEsTUFBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsS0FBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxNQUFPLE1BQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQWtCLEdBQWpCLEVBQUUsR0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUssR0FBRyxLQUFNLEVBQUUsR0FBTSxFQUFFLEtBQUssTUFBTyxJQUFHLENBQUMsSUFBSSxHQUFHLEVBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTyxHQUFFLEdBQUcsQ0FBQyxHQUFJLElBQUksSUFBRyxFQUFJLEdBQUkscUVBQXFFLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBSSxJQUFJLElBQUcsRUFBSSxHQUFJLDRFQUE0RSxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJFQUEyRSxJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFZLEdBQVYsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFLLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRyxFQUFHLE9BQU8sYUFBYSxLQUFLLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFZLEdBQVgsRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFLLEVBQUUsR0FBRyxHQUFjLEdBQVgsRUFBRSxHQUFJLEVBQUUsQ0FBQyxFQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxHQUFHLENBQUMsRUFBRSxHQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBYyxHQUFaLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFLLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sTUFBTyxRQUFPLEdBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBZ0QsR0FBOUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUssS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLEtBQU0sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBUSxNQUFLLEdBQUcsR0FBRyxHQUFHLE9BQU8sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFvQyxHQUFsQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLE1BQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBSSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQWtFLEdBQWhFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFRLEtBQUssR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBTSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFNLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLFdBQVksS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRyxHQUFHLE9BQU8sRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUE2QyxHQUF6QyxHQUFHLE1BQU0sS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBMkMsR0FBeEMsRUFBRSxJQUFJLEdBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFNLEVBQUcsR0FBSSxFQUFFLENBQUMsTUFBTyxHQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWtFLEdBQWhFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFRLEdBQUcsS0FBTSxHQUFHLEtBQUssR0FBRyxFQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU8sTUFBSyxHQUFHLElBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQVcsR0FBUixFQUFFLEdBQUcsQ0FBQyxFQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUE4QyxHQUEzQyxFQUFFLElBQUksR0FBSSxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBTSxFQUFHLEdBQUksRUFBRSxDQUFDLE1BQU8sR0FBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxJQUFJLElBQUcsRUFBSSxHQUFJLDhEQUE4RCxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLElBQUksSUFBRyxFQUFJLEdBQUkseUVBQXlFLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxrRkFBa0YsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLG1GQUFtRixHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLElBQUksSUFBRyxFQUFJLEdBQUksNEZBQTRGLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxvRkFBb0YsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLDZGQUE2RixJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLElBQUksSUFBRyxFQUFJLEdBQUksOEZBQThGLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSx1R0FBdUcsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLHVFQUF1RSxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLElBQUksSUFBRyxFQUFJLEdBQUksaUZBQWlGLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSxrRkFBa0YsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLDRGQUE0RixJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLElBQUksSUFBRyxFQUFJLEdBQUksd0VBQXdFLElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFHLEVBQUksR0FBSSx5RUFBeUUsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLG1GQUFtRixJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHdEQUF3RCxHQUFHLEVBQUUsRUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHFDQUFxQyxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0RBQXNELElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSwrQ0FBK0MsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sSUFBSSxJQUFHLEVBQUksR0FBSSxrQkFBa0IsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxPQUFRLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sT0FBUSxHQUFFLE9BQVEsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFHLE9BQU8sRUFBRSxFQUFHLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLElBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFJLElBQUksRUFBRSxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsUUFBUyxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUcsTUFBTyxHQUFFLE9BQU8sS0FBSyxJQUFJLFNBQVUsR0FBRSxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFHLE9BQU8sR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxFQUFFLElBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsV0FBWSxHQUFFLEdBQUksS0FBSyxJQUFJLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUkscUJBQXFCLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSx1QkFBdUIsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUksRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsSUFBTSxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFLLElBQUksR0FBSSxLQUFLLENBQUMsRUFBRyxDQUFDLEVBQUUsSUFBSSxHQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHlCQUF5QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLDJCQUEyQixHQUFHLEVBQUUsRUFBSSxLQUFLLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBd0MsR0FBdEMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUssR0FBRyxFQUFFLEdBQUcsRUFBOEMsT0FBM0MsRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFTLE1BQU8sUUFBTyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU0sR0FBSSxFQUFFLEtBQUssTUFBTSxJQUFJLElBQUcsRUFBSSxHQUFJLHlCQUF5QixJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxHQUFJLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU8sSUFBRyxPQUFPLElBQUksQ0FBQyxNQUFPLElBQUcsT0FBTyxJQUFJLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBRyxLQUFLLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRyxFQUFFLEdBQUcsQ0FBQyxNQUFPLElBQUcsT0FBTyxHQUFHLEtBQUssR0FBRyxHQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBSSxDQUFDLE1BQU8sSUFBRyxPQUFPLEdBQUcsQ0FBQyxVQUFVLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLENBQUMsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFJLENBQUMsRUFBRSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFRLEdBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLElBQUksR0FBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFPLEdBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFPLElBQUcsT0FBTyxFQUFFLElBQUksR0FBSSxNQUFPLElBQUcsT0FBTyxFQUFFLElBQUksR0FBSSxNQUFPLElBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFPLElBQUcsT0FBTyxFQUFFLElBQUksR0FBSSxNQUFPLElBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFPLElBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFPLElBQUcsT0FBTyxFQUFFLElBQUksR0FBSSxNQUFPLElBQUcsT0FBTyxHQUFFLElBQUksR0FBSSxXQUFVLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSSxFQUFFLEdBQUcsRUFBRyxDQUFDLElBQUssRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFRLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFPLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUksQ0FBQyxNQUFPLFFBQVEsSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFPLFFBQVEsSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksR0FBSSxFQUFFLEtBQUssR0FBRyxHQUFHLElBQUksRUFBRSxNQUFPLElBQUcsT0FBTyxJQUFJLENBQUMsTUFBTyxJQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU8sSUFBRyxPQUFPLElBQUksQ0FBQyxNQUFPLElBQUcsT0FBTyxJQUFJLENBQUMsTUFBTyxRQUFRLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxHQUFJLENBQUMsTUFBTyxRQUFRLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFPLFFBQVEsSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksR0FBSSxFQUFFLEdBQUksRUFBRyxDQUFDLE1BQU8sSUFBRyxPQUFPLFNBQVUsSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLFNBQVUsUUFBUSxJQUFHLE9BQU8sR0FBRyxLQUFLLEtBQUssR0FBSSxHQUFJLENBQUMsQ0FBQyxNQUFPLFFBQVEsSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksR0FBSSxFQUFFLEdBQUksS0FBSyxHQUFHLElBQUksRUFBRSxNQUFPLElBQUcsT0FBTyxVQUFVLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLENBQUMsSUFBSyxJQUFJLElBQUcsRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFNLEVBQUUsR0FBRyxHQUFNLElBQUksSUFBSSxJQUFJLEdBQVUsSUFBSSxFQUFJLEdBQUksbUJBQW1CLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUcsRUFBSSxHQUFJLHFCQUFxQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUcsRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBRyxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFHLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHNCQUFzQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksc0JBQXNCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxzQkFBc0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHFCQUFxQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHFCQUFxQixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxpREFBaUQsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksbURBQW1ELElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFJLCtCQUErQixjQUFjLElBQUksRUFBTSxJQUFJLEdBQUksSUFBSSxVQUFVLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQWEsR0FBWCxFQUFFLEVBQUUsT0FBVSxFQUFFLEdBQW1CLEdBQWhCLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBSyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFtQixHQUFoQixHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxHQUFJLEdBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUEwQyxPQUF2QyxHQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFTLElBQUksS0FBSyxDQUFDLFVBQU8sR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxHQUFHLEdBQUksRUFBRSxJQUFJLEVBQUUsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFNLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxTQUFTLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBSSxFQUFJLElBQUksZUFBZSxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUksSUFBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBSSxFQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFBSSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUksRUFBSSxHQUFJLGdDQUFnQyxJQUFJLEVBQUUsRUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksSUFBSSxpQkFBaUIsSUFBSSxFQUFFLEVBQUksSUFBSSxLQUFLLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsR0FBSSxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLElBQUksS0FBSyxFQUFFLElBQUksS0FBSyxFQUFFLEVBQUUsTUFBYSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxJQUFXLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFJLEVBQUcsRUFBRSxFQUFFLEVBQW1CLE9BQWpCLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQVMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBSSxFQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLElBQUksSUFBSSxFQUFJLElBQUksNkJBQTZCLEdBQUcsRUFBRSxFQUFJLElBQUksS0FBSyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksb0NBQW9DLEdBQUcsRUFBTSxJQUFJLElBQUksR0FBSSxJQUFJLEVBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxHQUFJLEdBQVEsSUFBSSxFQUFJLEdBQUksd0JBQXdCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUEwQyxPQUF6QyxLQUFLLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBUyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssRUFBRSxZQUFZLENBQUcsRUFBRSxDQUEyQyxPQUExQyxLQUFLLEdBQUcsSUFBSyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBUyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBSSxJQUFJLElBQUksRUFBSSxHQUFJLG1EQUFtRCxJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQW1ELE9BQWxELEtBQUssSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBUyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQW1ELE9BQWxELEtBQUssSUFBSSxHQUFJLEVBQUUsS0FBTSxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBUyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUF1QyxPQUFyQyxLQUFLLEdBQUcsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQVMsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBMkMsT0FBMUMsS0FBSyxHQUFHLElBQUssSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQVMsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBMEMsT0FBekMsS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQVMsS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksc0RBQXNELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFNLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBSSxFQUFJLEdBQUkscURBQXFELElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFJLElBQUksSUFBSSxFQUFJLEdBQUksK0RBQStELElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBSSxHQUFJLGlCQUFpQixHQUFHLEVBQU0sSUFBSSxHQUFJLEdBQUksWUFBWSxFQUFFLEVBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQTZCLEdBQXpCLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUksRUFBRSxDQUFDLElBQUksR0FBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBVSxHQUFQLEVBQUUsRUFBRSxHQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxNQUFPLEdBQUcsR0FBSSxFQUFFLENBQUMsRUFBRyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUE2QixHQUF6QixFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQVUsR0FBUCxFQUFFLEVBQUUsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQU0sTUFBTyxHQUFHLEdBQUksRUFBRSxDQUFDLEVBQUcsT0FBTyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFXLE9BQVYsS0FBSyxFQUFFLEdBQVUsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBUSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksa0JBQWtCLEVBQUUsRUFBRSxFQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFJLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxHQUFJLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUksSUFBSSxRQUFRLEVBQU4sQ0FBa0IsR0FBVCxFQUFFLEdBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUcsTUFBTSxHQUFJLElBQUksRUFBRyxNQUFPLE9BQU0sR0FBSSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUEyQixHQUExQixHQUFJLElBQUksRUFBRSxLQUFLLElBQUksS0FBSyxFQUFLLEtBQUssR0FBRyxFQUFHLEVBQUUsR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQVcsT0FBVCxLQUFLLEVBQUUsRUFBUyxLQUFLLE1BQU8sT0FBTSxHQUFJLElBQUksRUFBRyxHQUFJLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFJLE1BQU0sR0FBSSxJQUFJLEVBQUcsRUFBRSxHQUFJLElBQUksRUFBRSxHQUFHLENBQTJDLEdBQTFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUssS0FBSyxFQUFFLEtBQUssRUFBRyxFQUFFLEtBQUssSUFBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLE1BQU8sT0FBTSxHQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUksTUFBTSxHQUFJLElBQUksRUFBRyxFQUFFLEdBQUksSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBTixDQUFrQixHQUFULEVBQUUsR0FBSSxDQUFDLEVBQUssR0FBRyxFQUFFLEVBQUUsRUFBRyxNQUFNLEdBQUksSUFBSSxFQUFHLE1BQU8sT0FBTSxHQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBSSxHQUFJLHVDQUF1QyxJQUFJLEVBQUUsRUFBSSxJQUFJLEtBQUssR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBYSxHQUFaLEVBQUUsRUFBRSxLQUFLLEdBQU0sS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBbUMsT0FBaEMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFTLEdBQUssRUFBRSxLQUFLLEVBQXFCLE9BQW5CLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFVLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxLQUFLLEdBQUcsRUFBZSxHQUFaLEVBQUUsRUFBRSxLQUFLLEdBQU0sS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBb0MsT0FBakMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFVLEdBQTBCLE9BQXBCLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFVLElBQU8sSUFBSSxJQUFJLEVBQUksR0FBSSxtQ0FBbUMsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFJLEVBQUksR0FBSSw0Q0FBNEMsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sSUFBSSxJQUFJLEVBQUksR0FBSSxtQkFBbUIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sSUFBSSxJQUFJLEVBQUksR0FBSSxtQkFBbUIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU8sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxJQUFJLElBQUksRUFBSSxHQUFJLHVDQUF1QyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFZLEdBQVYsR0FBSSxJQUFJLEVBQUssR0FBSSxLQUFLLENBQUMsRUFBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBTSxHQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBSyxDQUFDLE1BQU8sTUFBSyxFQUFFLElBQVEsRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFJLEVBQUksR0FBSSw0QkFBNEIsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFJLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFJLEVBQUksR0FBSSxrQ0FBa0MsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLG9DQUFvQyxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksK0NBQStDLElBQUksRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQVksR0FBVixHQUFJLElBQUksRUFBSyxHQUFJLEtBQUssQ0FBQyxFQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFNLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFLLENBQUMsTUFBTyxNQUFLLEVBQUUsSUFBUSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUksRUFBSSxHQUFJLGdEQUFnRCxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksMERBQTBELElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQU0sRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQVksR0FBVixHQUFJLElBQUksRUFBSyxHQUFJLEtBQUssQ0FBQyxFQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFNLEdBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFLLENBQUMsTUFBTyxNQUFLLEVBQUUsSUFBUSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUksRUFBSSxHQUFJLDBCQUEwQixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxtQ0FBbUMsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFRLElBQUksRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUksR0FBSSwwQkFBMEIsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFJLEVBQUksR0FBSSxzQ0FBc0MsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBWSxHQUFWLEdBQUksSUFBSSxFQUFLLEdBQUksS0FBSyxDQUFDLEVBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQU0sR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUssQ0FBQyxNQUFPLE1BQUssRUFBRSxJQUFRLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBSSxFQUFJLEdBQUkscUNBQXFDLEdBQUcsRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLElBQUksSUFBSSxFQUFJLEdBQUksaURBQWlELElBQUksRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFNLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxtQ0FBbUMsR0FBRyxFQUFFLEVBQUksR0FBRyxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sSUFBSSxJQUFJLEVBQUksR0FBSSwrQ0FBK0MsRUFBRSxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLDhDQUE4QyxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTSxJQUFJLElBQUksRUFBSSxHQUFJLDBEQUEwRCxJQUFJLEVBQUUsRUFBSSxLQUFLLElBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssRUFBRSxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxFQUFFLEtBQUssR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxFQUFFLEtBQU0sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssRUFBRSxLQUFNLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsS0FBSyxFQUFFLE1BQU0sR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFZLEdBQVYsR0FBSSxJQUFJLEdBQU0sS0FBSyxFQUFFLElBQUksRUFBRyxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUcsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssR0FBRyxHQUFHLEdBQUksS0FBSyxJQUFJLEdBQUksS0FBSyxFQUFFLEVBQUUsR0FBSSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFLLENBQUMsTUFBTyxNQUFLLEdBQUcsSUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFJLEdBQUkscUJBQXFCLElBQUksRUFBRSxFQUFJLEtBQUssS0FBSyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxjQUFjLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLDRDQUE0QyxHQUFHLEVBQUUsRUFBSSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBTSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBWSxHQUFWLEdBQUksSUFBSSxFQUFLLEdBQUksS0FBSyxDQUFDLEVBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQU0sR0FBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUssQ0FBQyxNQUFPLE1BQUssRUFBRSxJQUFRLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBSSxFQUFJLEdBQUksaUVBQWlFLElBQUksRUFBRSxFQUFJLEtBQUssSUFBSSxHQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUksRUFBSSxHQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFpQyxPQUEvQixJQUFJLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBWSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksa0NBQWtDLEdBQUcsRUFBRSxFQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBUSxJQUFJLEVBQUksR0FBSSxpQkFBaUIsSUFBSSxFQUFNLElBQVEsSUFBSSxHQUFJLEdBQUksMEJBQTBCLEVBQUUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTyxJQUFNLElBQUksSUFBSSxFQUFJLEdBQUksbUJBQW1CLElBQUksRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxNQUFPLEdBQXlCLEdBQXBCLEVBQUUsR0FBRyxHQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBSyxHQUFHLEtBQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUE2QixPQUExQixJQUFJLEtBQUssRUFBRSxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQVMsT0FBb0MsUUFBMUIsSUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFTLE9BQVksUUFBTyxJQUFJLEdBQUksRUFBRSxLQUFPLEVBQUUsRUFBRSxHQUFNLElBQUksSUFBUSxJQUFJLEVBQUksR0FBSSxnQ0FBZ0MsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksR0FBRyxFQUFFLElBQUksSUFBSSxFQUFJLEdBQUksc0NBQXNDLEdBQUcsRUFBRSxFQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxHQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sR0FBSSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQVEsR0FBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUksS0FBSyxFQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxDQUFDLEdBQUksR0FBSSxFQUFFLEdBQUksR0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFnQixPQUFULEVBQUUsR0FBRyxJQUFXLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsR0FBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSw4QkFBOEIsR0FBRyxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxLQUFLLE9BQVEsT0FBTyxHQUFFLENBQVUsR0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUF1QyxPQUFwQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsR0FBVSxHQUFLLEtBQUssS0FBTSxHQUFFLENBQVUsT0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFTLE9BQVEsR0FBRSxDQUFVLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBOEQsT0FBM0QsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUksQ0FBQyxFQUFFLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBUyxHQUFLLEtBQUssRUFBRSxLQUFLLEtBQU0sR0FBRSxDQUFVLE9BQVQsRUFBRSxFQUFFLEdBQUcsRUFBUyxPQUFRLEdBQUUsQ0FBVSxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQWdDLE9BQTdCLEVBQUUsRUFBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFTLEdBQUssS0FBSyxFQUFFLEtBQUssS0FBTSxHQUFFLENBQVUsT0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFTLE9BQVEsR0FBRSxDQUFVLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBMEIsT0FBdkIsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFTLEdBQUssS0FBSyxLQUFNLEdBQUUsQ0FBVSxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQWdILE9BQTdHLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFJLENBQUMsRUFBRSxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFTLEdBQUssS0FBSyxFQUFFLEtBQUssS0FBTSxHQUFFLENBQVUsT0FBVCxFQUFFLEVBQUUsR0FBRyxFQUFTLE9BQVEsR0FBRSxDQUFVLEdBQVQsRUFBRSxFQUFFLEdBQUcsRUFBSyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBa0ksT0FBL0gsRUFBRSxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBUyxHQUFLLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTyxJQUFPLElBQUksSUFBSSxFQUFJLEdBQUksMENBQTBDLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBUSxHQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSxtQ0FBbUMsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEdBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLEdBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksOEJBQThCLElBQUksRUFBTSxHQUFJLElBQUksSUFBSSxHQUFJLElBQVEsR0FBSSxHQUFJLEdBQUksU0FBUyxFQUFFLEVBQUksSUFBSSxHQUFHLEdBQUksRUFBRyxFQUFFLElBQUksSUFBSSxFQUFJLEdBQUksZ0NBQWdDLEdBQUcsRUFBTSxHQUFJLEdBQUksR0FBSSxHQUFHLEVBQU0sR0FBSSxHQUFJLEdBQUksR0FBRyxFQUFNLElBQUksR0FBSSxHQUFJLEdBQUcsRUFBTSxJQUFRLEdBQVEsSUFBSSxHQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksR0FBSSxHQUFJLElBQUksR0FBSSxHQUFJLEdBQUksSUFBSSxHQUFJLEdBQUksRUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLEdBQUcsRUFBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRSxNQUFPLEdBQUUsR0FBRyxFQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRyxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxRQUFTLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUcsRUFBRyxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxNQUFPLEdBQUUsR0FBRyxFQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxFQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFLLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxPQUFRLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTyxHQUFFLFFBQVMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRyxFQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRyxPQUFPLEVBQUUsRUFBRyxJQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFHLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFPLEdBQUUsU0FBVSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsTUFBTyxHQUFFLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxHQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFLLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsRUFBRSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFHLEVBQUcsR0FBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFRLEdBQUksS0FBSyxFQUFFLEdBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFHLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxXQUFZLEdBQUUsRUFBRSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsR0FBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUssS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEdBQUcsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sR0FBSSxJQUFJLEVBQXFHLE9BQW5HLEVBQUUsSUFBSSxHQUFJLEdBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLFlBQVksR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxtQkFBbUIsR0FBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFXLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLGNBQWMsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsT0FBTyxLQUFLLE1BQU8sR0FBRSxPQUFPLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBTSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxPQUFPLEtBQUssR0FBRyxTQUFVLEdBQUUsT0FBTyxLQUFLLEdBQUcsS0FBTSxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBTSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssS0FBSyxFQUFFLElBQUksRUFBRSxLQUFNLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFLLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxLQUFLLEVBQUUsS0FBSyxXQUFZLEdBQUUsS0FBSyxFQUFFLEtBQUssT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQU0sS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEdBQUksSUFBSSxFQUE4RixPQUE1RixFQUFFLElBQUksR0FBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsYUFBYSxHQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQVcsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFJLEdBQUksNEJBQTRCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxHQUFHLEVBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEVBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEVBQUUsTUFBTyxHQUFFLEdBQUcsRUFBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUcsR0FBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsUUFBUyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFHLEVBQUcsR0FBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsTUFBTyxHQUFFLEdBQUcsRUFBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRSxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUksQ0FBQyxNQUFPLEdBQUUsT0FBTyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxJQUFLLEVBQUksQ0FBQyxFQUFFLE1BQU8sR0FBRSxPQUFPLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBTSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFPLEdBQUUsU0FBVSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsTUFBTyxHQUFFLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLElBQUssRUFBSSxDQUFDLEdBQUcsU0FBVSxHQUFFLE9BQU8sSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsSUFBSyxFQUFJLENBQUMsRUFBRSxHQUFHLFNBQVUsR0FBRSxRQUFTLEtBQUssRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBTSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLEVBQUUsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRyxFQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVksR0FBRSxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBWSxHQUFFLElBQUksS0FBSyxFQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQU0sS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsRUFBRSxXQUFZLEdBQUUsRUFBRSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxJQUFLLElBQUksRUFBRSxXQUFZLEdBQUUsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLFdBQVksR0FBRSxLQUFLLEVBQUUsS0FBSyxPQUFRLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBTSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksb0JBQW9CLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBUSxHQUFFLEdBQUcsRUFBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRSxNQUFPLEdBQUUsT0FBTyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFLLEdBQUksRUFBRSxJQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBSSxLQUFLLENBQUMsT0FBUSxHQUFFLE9BQU8sSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLE9BQVEsR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUcsT0FBTyxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQU0sS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLE9BQVEsR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxHQUFJLEVBQUUsSUFBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxFQUFFLEVBQUcsSUFBSyxLQUFLLEVBQUUsSUFBSSxHQUFHLEdBQUksRUFBRSxNQUFPLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFLLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsUUFBUyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTyxHQUFFLFFBQVMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU8sR0FBRSxRQUFTLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsSUFBSSxHQUFJLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsTUFBTyxHQUFFLE9BQVEsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLElBQUksR0FBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLE1BQU8sR0FBRSxPQUFRLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUksR0FBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxNQUFPLEdBQUUsT0FBUSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsSUFBSSxHQUFJLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsRUFBRyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUssR0FBSSxFQUFFLEdBQUksRUFBRSxJQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBTSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxPQUFRLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBSSxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVksR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksR0FBSSxLQUFLLEdBQUcsR0FBSSxFQUFFLEdBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksR0FBSSxLQUFLLEVBQUUsRUFBRyxFQUFFLEVBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFZLEdBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFJLEdBQUksS0FBSyxHQUFHLEdBQUksRUFBRSxHQUFJLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksR0FBSSxLQUFLLENBQUMsR0FBRyxHQUFJLEdBQUksS0FBSyxFQUFFLEVBQUcsRUFBRSxFQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBSSxHQUFJLEtBQUssRUFBRSxFQUFHLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQVEsR0FBSSxLQUFLLEVBQUUsSUFBSyxHQUFJLEVBQUUsR0FBSSxFQUFFLElBQUssS0FBSyxFQUFFLElBQUksRUFBRSxLQUFNLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFLLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxHQUFJLEVBQUUsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE9BQVEsR0FBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUksS0FBSyxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssR0FBSSxFQUFFLElBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsV0FBWSxHQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLEdBQUksS0FBSyxDQUFDLEdBQUcsR0FBSSxHQUFJLEtBQUssR0FBRyxHQUFJLEVBQUUsR0FBSSxDQUFDLEVBQUUsT0FBUSxHQUFJLEtBQUssRUFBRSxJQUFLLEdBQUksRUFBRSxHQUFJLEVBQUUsSUFBSyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQU0sS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEdBQUksSUFBSSxFQUErRCxPQUE3RCxFQUFFLElBQUksR0FBSSxHQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxZQUFZLEdBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBVyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSwwQkFBMEIsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsT0FBUSxPQUFPLE9BQU8sT0FBTyxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsR0FBRSxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksQ0FBQyxNQUFPLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsR0FBRSxPQUFPLEdBQUcsQ0FBQyxNQUFPLEdBQUUsT0FBTyxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsTUFBTyxRQUFRLFFBQVEsUUFBUSxJQUFHLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLEVBQUcsRUFBRSxHQUFHLENBQUMsTUFBTyxRQUFRLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFPLElBQUcsT0FBTyxLQUFLLEdBQUksRUFBRSxFQUFFLE1BQU8sSUFBRyxPQUFPLElBQUksQ0FBQyxNQUFPLFFBQVEsSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLElBQUksRUFBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxPQUFPLElBQUksRUFBRyxFQUFFLEdBQUcsQ0FBQyxNQUFPLElBQUcsT0FBTyxLQUFLLEdBQUksRUFBRSxFQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU8sSUFBRyxPQUFPLElBQUksRUFBRyxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBTyxLQUFLLEdBQUksRUFBRSxFQUFFLE1BQU8sSUFBRyxPQUFPLEtBQUssR0FBSSxFQUFFLEVBQUUsTUFBTyxJQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU8sUUFBUSxJQUFHLE9BQU8sS0FBSyxHQUFJLEVBQUUsRUFBRSxVQUFVLE1BQU0sR0FBSSxJQUFJLEdBQUksR0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFHLENBQUMsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUksQ0FBQyxFQUFFLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQVEsR0FBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU8sR0FBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU8sR0FBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU8sR0FBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLFVBQVUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBRyxFQUFHLENBQUMsSUFBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUUsR0FBRSxPQUFPLEVBQUUsR0FBRyxPQUFRLE9BQU8sUUFBUSxHQUFFLE9BQU8sTUFBTyxHQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU8sT0FBTyxHQUFFLE9BQU8sR0FBRyxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU8sR0FBRSxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksSUFBSyxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUcsSUFBSSxFQUFFLE1BQU8sSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksSUFBSyxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUcsSUFBSSxFQUFFLE1BQU8sSUFBRyxPQUFPLEdBQUcsR0FBSSxNQUFNLEdBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFPLElBQUcsT0FBTyxHQUFHLEdBQUksTUFBTSxHQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUksRUFBRSxFQUFJLENBQUMsTUFBTyxRQUFRLElBQUcsT0FBTyxJQUFJLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBRyxHQUFJLE1BQU0sR0FBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU8sSUFBRyxPQUFPLEtBQUssR0FBSSxFQUFFLEVBQUUsTUFBTyxJQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU8sUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxJQUFHLE9BQU8sR0FBSSxFQUFFLEVBQUksTUFBTyxRQUFRLElBQUcsT0FBTyxJQUFJLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBRyxHQUFJLE1BQU0sR0FBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU8sSUFBRyxPQUFPLEdBQUcsR0FBSSxNQUFNLEdBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFPLElBQUcsT0FBTyxHQUFHLEdBQUksTUFBTSxHQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBRyxHQUFJLE1BQU0sR0FBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU8sSUFBRyxPQUFPLEdBQUcsR0FBSSxNQUFNLEdBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFPLElBQUcsT0FBTyxJQUFJLENBQUMsTUFBTyxJQUFHLE9BQU8sS0FBSyxHQUFJLEVBQUUsRUFBRSxNQUFPLElBQUcsT0FBTyxJQUFJLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBRyxLQUFLLEtBQUssR0FBSSxJQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFLLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFJLEVBQUcsQ0FBQyxNQUFPLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUssRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUFFLEVBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU8sSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksSUFBSyxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBSSxFQUFHLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBRyxLQUFLLEtBQUssR0FBSSxJQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFLLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksSUFBSyxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBTyxLQUFLLEdBQUksRUFBRSxFQUFFLE1BQU8sSUFBRyxPQUFPLEtBQUssR0FBSSxFQUFFLEVBQUUsTUFBTyxJQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU8sSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLElBQUksSUFBSyxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTyxJQUFHLE9BQU8sR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFLLEdBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxHQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsR0FBRSxNQUFNLEVBQUUsR0FBRSxXQUFXLENBQUMsR0FBRyxLQUFLLEdBQUksRUFBRSxHQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRSxNQUFPLElBQUcsT0FBTyxHQUFJLEVBQUUsRUFBSyxNQUFPLElBQUcsT0FBTyxHQUFHLEdBQUksTUFBTSxHQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTyxRQUFRLElBQUcsT0FBTyxLQUFLLEdBQUksRUFBRSxFQUFFLE1BQU8sSUFBRyxPQUFPLEdBQUcsR0FBSSxNQUFNLEdBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFPLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxHQUFJLElBQUssR0FBRSxHQUFJLEVBQUUsRUFBSSxFQUFFLEdBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxHQUFFLE1BQU0sRUFBRSxHQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssR0FBSSxFQUFFLEdBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRSxPQUFPLENBQUMsR0FBRyxJQUFHLEdBQUksS0FBSyxHQUFHLElBQUksRUFBRSxNQUFPLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxHQUFJLElBQUssRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUFFLEVBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUksS0FBSyxHQUFHLElBQUksRUFBRSxNQUFPLElBQUcsT0FBTyxHQUFHLEdBQUksTUFBTSxHQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTyxJQUFHLE9BQU8sR0FBRyxLQUFLLEtBQUssR0FBSSxJQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFLLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFJLEtBQUssR0FBRyxJQUFJLEVBQUUsTUFBTyxJQUFHLE9BQU8sR0FBRyxLQUFLLEtBQUssR0FBSSxJQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFLLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFJLEtBQUssR0FBRyxJQUFJLEVBQUUsTUFBTyxJQUFHLE9BQU8sR0FBRyxLQUFLLEtBQUssR0FBSSxJQUFLLEVBQUUsR0FBSSxFQUFFLEVBQUksRUFBRSxFQUFFLE9BQU8sSUFBSSxHQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFLLEdBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksSUFBSyxFQUFFLEdBQUksRUFBRSxFQUFJLEVBQUUsRUFBRSxPQUFPLElBQUksR0FBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxHQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUcsT0FBTyxHQUFHLEtBQUssS0FBSyxHQUFJLElBQUssRUFBRSxHQUFJLEVBQUUsRUFBSSxFQUFFLEVBQUUsT0FBTyxJQUFJLEdBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssR0FBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUksRUFBRyxDQUFDLE1BQU8sSUFBRyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBSSxFQUFFLEdBQUksRUFBRyxDQUFDLFVBQVUsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUcsQ0FBQyxJQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBUSxJQUFJLEVBQUksR0FBSSxxQkFBcUIsSUFBSSxFQUFFLEVBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBTSxFQUFFLEVBQUUsR0FBTSxJQUFJLElBQUksR0FBVSxJQUFJLEVBQUksR0FBSSxxQkFBcUIsR0FBRyxFQUFFLEVBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxFQUFJLEdBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBSSxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHdCQUF3QixJQUFJLEVBQUUsRUFBSSxLQUFLLEVBQUUsR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksd0JBQXdCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFJLEdBQUksdUJBQXVCLElBQUksRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSx1QkFBdUIsSUFBSSxFQUFFLEVBQUksS0FBSyxFQUFFLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFJLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHVCQUF1QixJQUFJLEVBQU0sR0FBSSxHQUFRLEdBQUksR0FBUSxHQUFJLEVBQUksR0FBRyxHQUFHLEdBQUksRUFBRyxFQUFFLElBQUksSUFBSSxFQUFJLEdBQUksdUJBQXVCLEVBQUUsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFXLE9BQVQsRUFBRSxLQUFLLEVBQVMsT0FBUSxLQUFJLEVBQUUsR0FBRyxVQUFXLEtBQUksRUFBRSxHQUFHLFVBQVcsS0FBSSxFQUFFLEdBQUcsVUFBVyxLQUFJLEVBQUUsR0FBRyxVQUFXLEtBQUksRUFBRSxFQUFFLFVBQVcsS0FBYyxHQUFWLEdBQUksSUFBSSxFQUFLLEtBQUssR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQVcsR0FBVixHQUFJLElBQUksRUFBSyxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsSUFBTSxHQUFHLEtBQUssR0FBRyxJQUFJLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBSSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUssR0FBSixFQUFFLEVBQUssS0FBSyxHQUFHLElBQUksRUFBRSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFnQixHQUFkLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBSyxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsVUFBVyxLQUFrQixHQUFkLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBSyxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQWdCLEdBQWQsRUFBRSxFQUFFLEdBQUksSUFBSSxFQUFLLEtBQUssR0FBRyxJQUFJLEVBQUUsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBcUIsR0FBbkIsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLElBQUksRUFBSyxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQXFCLEdBQW5CLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxJQUFJLEVBQUssS0FBSyxHQUFHLElBQUksRUFBRSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFVBQVcsS0FBYyxHQUFWLEdBQUksSUFBSSxFQUFLLEtBQUssR0FBRyxJQUFJLEVBQUUsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBZ0IsR0FBZCxFQUFFLEVBQUUsR0FBSSxJQUFJLEVBQUssS0FBSyxHQUFHLElBQUksRUFBRSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFxQixHQUFuQixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksSUFBSSxFQUFLLEtBQUssR0FBRyxJQUFJLEVBQUUsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBcUIsR0FBbkIsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFJLElBQUksRUFBSyxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQXFCLEdBQW5CLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBSSxJQUFJLEVBQUssS0FBSyxHQUFHLElBQUksRUFBRSxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFxQixHQUFuQixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUksSUFBSSxFQUFLLEtBQUssR0FBRyxJQUFJLEVBQUUsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBVyxHQUFULEVBQUUsRUFBRSxHQUFHLEVBQUssRUFBRSxHQUFJLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFXLFFBQVEsUUFBUSxLQUFJLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRyxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxPQUFRLEtBQUksR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUksS0FBSyxFQUFJLEdBQUcsR0FBSSxFQUFFLElBQUssVUFBVyxJQUFHLEdBQUcsS0FBSyxFQUFFLEtBQUssR0FBRyxHQUFJLEtBQUssRUFBSyxHQUFHLEdBQUksRUFBRSxLQUFLLFVBQVcsS0FBSSxHQUFHLEtBQUssRUFBRSxLQUFLLEdBQUcsR0FBSSxTQUFTLEVBQUksR0FBRyxHQUFJLEVBQUUsSUFBSyxVQUFXLElBQUcsR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUksU0FBUyxFQUFLLEdBQUcsR0FBSSxFQUFFLEtBQUssVUFBVyxLQUFJLEdBQUcsS0FBSyxFQUFFLEtBQUssR0FBRyxHQUFJLFVBQVUsRUFBSSxHQUFHLEdBQUksRUFBRSxJQUFLLFVBQVcsSUFBRyxHQUFHLEtBQUssRUFBRSxLQUFLLEdBQUcsR0FBSSxVQUFVLEVBQUssR0FBRyxHQUFJLEVBQUUsS0FBSyxjQUFjLE1BQU0sR0FBSSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUcsT0FBTyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQTRCLEdBQTFCLEtBQUssRUFBRSxFQUFFLEdBQUksSUFBSSxFQUFFLEVBQUUsS0FBUSxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBYyxHQUFWLEdBQUksSUFBSSxFQUFLLEVBQUcsR0FBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsT0FBUSxJQUFHLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxHQUFHLEdBQUksRUFBRSxFQUFFLEVBQUcsRUFBRSxLQUFVLEdBQUksSUFBSSxHQUFJLENBQUMsT0FBUyxJQUFHLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUUsR0FBSyxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsS0FBSyxFQUFFLE1BQStCLEdBQXpCLEVBQUUsR0FBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQVMsR0FBRyxHQUFJLE9BQU8sT0FBUSxTQUFTLFFBQVEsU0FBUyxRQUFRLFNBQVMsSUFBRyxHQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBSyxVQUFXLFNBQVMsUUFBUSxRQUFRLElBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBTSxVQUFXLFNBQVMsSUFBaUIsR0FBZCxFQUFFLElBQUksS0FBSyxDQUFDLEdBQU0sRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUssY0FBYyxFQUFFLEtBQUssR0FBRyxVQUFZLEdBQUcsR0FBRyxDQUF5QixHQUF4QixFQUFFLEdBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUssRUFBRSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBUyxHQUFQLEVBQUUsR0FBUSxHQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBMEQsR0FBcEQsRUFBRSxHQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLE1BQU0sR0FBRyxHQUFNLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFrQixHQUFoQixHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBUSxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQVksR0FBVixHQUFJLElBQUksR0FBTSxFQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUksR0FBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQVcsR0FBVixHQUFJLElBQUksR0FBTSxFQUFFLEtBQUssSUFBSSxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBSSxHQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBSSxFQUFFLEdBQUcsRUFBRSxNQUFPLEdBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssR0FBRyxHQUFHLEdBQUksSUFBSSxFQUFFLEdBQUksRUFBRSxFQUFFLENBQUMsRUFBSSxDQUFDLEtBQUssRUFBRSxLQUFNLElBQUssS0FBSyxHQUFHLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBSSxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFHLEdBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFtQyxPQUFqQyxHQUFJLENBQUMsRUFBRSxHQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBWSxHQUFULEVBQUUsS0FBSyxFQUFLLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFXLEdBQVYsR0FBSSxJQUFJLEVBQUssS0FBSyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFtQixHQUFqQixFQUFFLEtBQUssR0FBRyxFQUFLLEVBQUssR0FBRyxFQUFFLEdBQUksRUFBRSxDQUFDLFVBQVUsR0FBRyxHQUFHLEdBQUksRUFBRSxDQUFDLFVBQVUsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU8sT0FBTSxHQUFJLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTyxPQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQWEsT0FBVixHQUFJLElBQUksRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBa0gsT0FBaEgsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLElBQUksSUFBSyxHQUFJLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBSSxJQUFJLEVBQVMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQVcsT0FBVixHQUFJLElBQUksRUFBUyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQVcsT0FBVixHQUFJLElBQUksRUFBUyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFXLE9BQVYsR0FBSSxJQUFJLEVBQVMsSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBVyxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBVyxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsS0FBSyxLQUFLLEVBQUUsR0FBSSxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUcsUUFBUSxHQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBWSxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQVcsT0FBVixHQUFJLElBQUksRUFBUyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFXLE9BQVYsR0FBSSxJQUFJLEVBQVMsR0FBSSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksR0FBSyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsR0FBRyxHQUFhLE9BQVYsR0FBSSxJQUFJLEVBQVMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQVcsT0FBVixHQUFJLElBQUksRUFBUyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQVcsT0FBVixHQUFJLElBQUksRUFBUyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFXLE9BQVYsR0FBSSxJQUFJLEVBQVMsR0FBSSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBbUMsR0FBakMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFLLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBa0UsR0FBakUsRUFBRSxFQUFFLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUssR0FBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBSyxHQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssTUFBNkMsUUFBdEMsR0FBRyxNQUFNLEtBQUssRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxFQUFTLEVBQUUsT0FBUSxRQUFRLFFBQVEsUUFBUSxJQUFHLFVBQVcsR0FBRSxHQUFHLEtBQUssR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxjQUFjLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBaUMsR0FBN0IsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLElBQUksRUFBRSxFQUFFLEtBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQVksT0FBVixHQUFJLElBQUksRUFBUyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQVcsT0FBVixHQUFJLElBQUksRUFBUyxHQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFnQyxHQUE5QixHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksR0FBRyxHQUFJLElBQUksQ0FBQyxFQUFLLEtBQUssR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBWSxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBZ0MsR0FBOUIsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxJQUFJLENBQUMsRUFBSyxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQVksT0FBVixHQUFJLElBQUksRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQWdDLEdBQTlCLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksSUFBSSxDQUFDLEVBQUssS0FBSyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFZLE9BQVYsR0FBSSxJQUFJLEVBQVMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQStCLEdBQTlCLEVBQUUsR0FBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBSyxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLEtBQUssRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBK0IsR0FBOUIsRUFBRSxHQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsS0FBSyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUF5QyxLQUF0QyxLQUFLLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFLLEtBQUssR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBRSxHQUFJLElBQUksVUFBVSxHQUFHLEdBQUksRUFBRSxLQUFLLEVBQUUsR0FBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFPLE9BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBZ0MsR0FBOUIsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUcsR0FBSSxJQUFJLENBQUMsRUFBSyxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQVksT0FBVixHQUFJLElBQUksRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQWdDLEdBQTlCLEdBQUksSUFBSSxFQUFFLEVBQUUsR0FBSSxHQUFHLEdBQUksSUFBSSxDQUFDLEVBQUssS0FBSyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFZLE9BQVYsR0FBSSxJQUFJLEVBQVMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQTBDLEdBQXhDLEdBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsR0FBSSxHQUFJLElBQUksRUFBRSxDQUFDLEVBQUssS0FBSyxHQUFHLEVBQUUsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFZLE9BQVYsR0FBSSxJQUFJLEVBQVMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsSUFBSSxFQUErQixHQUE3QixHQUFJLElBQUksRUFBRSxFQUFFLEdBQUksR0FBSSxJQUFJLEVBQUUsQ0FBQyxFQUFLLEtBQUssR0FBRyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsRUFBWSxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQVcsR0FBVixHQUFJLElBQUksRUFBSyxLQUFLLEdBQUcsRUFBYSxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUksR0FBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU8sUUFBTyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBNkMsR0FBM0MsR0FBSSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsR0FBTSxLQUFLLEdBQUcsRUFBRyxHQUFJLElBQUksRUFBRSxHQUFJLEVBQVEsRUFBSSxFQUFFLEdBQUksRUFBRSxDQUFDLE1BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFJLEVBQVEsRUFBSSxFQUFFLE9BQU8sR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBVyxHQUFWLEdBQUksSUFBSSxFQUFLLEtBQUssR0FBRyxFQUFhLE9BQVYsR0FBSSxJQUFJLEVBQVMsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsTUFBTyxRQUFPLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUksR0FBSSxvQkFBb0IsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBVyxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBVyxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBVyxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQVcsT0FBVixHQUFJLElBQUksRUFBUyxHQUFJLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFXLE9BQVYsR0FBSSxJQUFJLEVBQVMsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBVyxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU0sR0FBSSxJQUFJLEdBQUksSUFBSyxHQUFJLEVBQUUsR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxJQUFLLEdBQUksRUFBRSxHQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLElBQUksRUFBK0IsR0FBN0IsR0FBSSxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQUksSUFBSSxFQUFFLENBQUMsRUFBSyxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEVBQVksT0FBVixHQUFJLElBQUksRUFBUyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUksSUFBSSxHQUFJLElBQUssR0FBSSxFQUFFLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQVcsT0FBVixHQUFJLElBQUksRUFBUyxHQUFJLEdBQUcsR0FBSSxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBd0UsT0FBdEUsR0FBSSxJQUFJLEVBQUUsR0FBRyxHQUFJLEVBQUUsR0FBSSxJQUFJLEdBQUksSUFBSSxHQUFJLENBQUMsR0FBRyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUksRUFBUSxFQUFJLEVBQVMsR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBVyxPQUFWLEdBQUksSUFBSSxFQUFTLEdBQUksRUFBRSxHQUFJLElBQUksR0FBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEtBQUssR0FBSSxLQUFTLElBQUksRUFBSSxHQUFJLDJCQUEyQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUksRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLE1BQU0sRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxHQUFJLEdBQUksSUFBSSxJQUFJLEdBQUksS0FBSyxHQUFJLElBQUksS0FBSyxJQUFJLEdBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFJLElBQUksSUFBSSxHQUFJLEVBQU0sSUFBSSxFQUFJLEdBQUksY0FBYyxHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUcsR0FBRyxNQUFNLElBQUksRUFBRSxZQUFZLE1BQU0sR0FBSSxFQUFFLGNBQWMsTUFBTSxHQUFJLEVBQUUsY0FBYyxNQUFNLEdBQUksRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLEdBQUksRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFHLEVBQWlDLElBQTdCLEVBQUUsS0FBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBVSxLQUFLLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxHQUFJLEdBQUksRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTyxJQUFJLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLFVBQVcsTUFBTSxJQUFJLEVBQUUsY0FBYyxNQUFNLElBQUksRUFBRSxjQUFjLE1BQU0sSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLElBQUksR0FBSSxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEdBQUcsRUFBaUMsSUFBN0IsRUFBRSxLQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFVLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUksR0FBSSxFQUFFLEdBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFPLElBQUksRUFBRSxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFJLEVBQUUsR0FBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRyxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQU0sRUFBRSxFQUFFLEdBQU0sSUFBSSxJQUFJLEVBQUksR0FBSSxtQkFBbUIsR0FBRyxFQUFFLEVBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFJLEdBQUksc0NBQXNDLEdBQUcsRUFBRSxFQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxLQUFLLE1BQU8sR0FBTSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTyxHQUFrQixPQUFaLEVBQUUsRUFBRyxFQUFFLEdBQUcsRUFBUyxHQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUksS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFJLEdBQUksMEJBQTBCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEtBQUssT0FBUSxHQUFFLE9BQU8sS0FBSyxPQUFRLFNBQVMsUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxTQUFTLElBQUcsRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLEVBQUcsRUFBRSxVQUFXLElBQUcsRUFBRSxNQUFNLFVBQVcsSUFBRyxFQUFFLE1BQU0sVUFBVyxJQUFHLEVBQUUsTUFBTSxVQUFXLEdBQUUsRUFBRSxNQUFNLFVBQVcsSUFBRyxFQUFFLE1BQU0sY0FBYyxHQUFHLEtBQUssR0FBRyxHQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE1BQU0sTUFBTyxHQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsRUFBRyxFQUFHLFVBQVcsR0FBRSxNQUFNLEtBQUssTUFBTSxJQUFLLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxFQUFHLEVBQUksRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLEVBQUcsRUFBRyxjQUFjLEVBQUUsS0FBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUksR0FBSSx3QkFBd0IsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksRUFBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxHQUFHLEVBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxZQUFZLEtBQUssR0FBRyxLQUFLLEVBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsWUFBWSxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssRUFBRSxZQUFZLEtBQUssR0FBRyxHQUFHLEtBQUssRUFBRSxFQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLFNBQVUsT0FBTSxHQUFJLElBQUksR0FBRyw2QkFBNkIsS0FBSyxFQUFFLEdBQUksS0FBSyxDQUFDLENBQUMsVUFBVSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxhQUFhLEtBQUssR0FBRyxLQUFLLEVBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsYUFBYSxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssRUFBRSxhQUFhLEtBQUssR0FBRyxHQUFHLEtBQUssRUFBRSxFQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLFVBQVcsT0FBTSxHQUFJLElBQUksR0FBRyxzQ0FBc0MsS0FBSyxFQUFFLEdBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUksR0FBSSwyQkFBMkIsR0FBRyxFQUFFLEVBQUksSUFBSSxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQW9KLE9BQWxKLEtBQUssRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFLLEtBQUssRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUksR0FBSSwwQkFBMEIsR0FBRyxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLE9BQU8sS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLE9BQU8sS0FBSyxFQUFFLE1BQU0sR0FBSSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFvSSxPQUFsSSxLQUFLLEVBQUUsRUFBRyxFQUFFLE1BQU0sS0FBSyxFQUFFLElBQUssS0FBSyxFQUFFLEdBQUcsRUFBRyxFQUFFLE1BQU0sS0FBSyxFQUFFLElBQU0sRUFBRSxLQUFLLEtBQUssR0FBSSxLQUFLLEVBQUcsR0FBRyxLQUFLLEVBQUUsSUFBTSxHQUFHLEtBQUssRUFBRSxJQUFJLEtBQUssRUFBRSxJQUFZLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUksR0FBSSw2QkFBNkIsSUFBSSxFQUFFLEVBQUksS0FBSyxJQUFJLEdBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTyxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRSxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBSSxHQUFJLDRCQUE0QixJQUFJLEVBQUUsRUFBSSxJQUFJLElBQUksR0FBSSxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUksS0FBSyxPQUFPLEtBQUssT0FBUSxHQUFFLEtBQUssR0FBRyxFQUFHLEVBQUUsTUFBTSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBTSxFQUFFLElBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUssVUFBVyxJQUFHLEVBQUUsTUFBTSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxVQUFXLElBQUcsRUFBRSxNQUFNLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLFVBQVcsSUFBRyxFQUFFLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksVUFBVyxJQUFHLEVBQUUsT0FBTyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxVQUFXLElBQUcsRUFBRSxNQUFNLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFLLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBSSxHQUFJLHlCQUF5QixHQUFHLEVBQUUsRUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFJLEdBQUksMEJBQTBCLEdBQUcsRUFBRSxFQUFJLElBQUksSUFBSSxHQUFJLEVBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFRLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUssRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLE9BQVEsQ0FBQyxFQUFFLElBQUksR0FBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxJQUFLLEdBQUksRUFBRSxFQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRyxFQUFHLEdBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFHLEVBQUUsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFlBQVksS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEdBQUcsRUFBRyxHQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRyxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRSxJQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLElBQUssRUFBRSxHQUFHLElBQUksR0FBSSxFQUFFLEVBQUcsR0FBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBSSxHQUFJLHlCQUF5QixHQUFHLEVBQUUsRUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUksSUFBSSxpQ0FBaUMsR0FBRyxFQUFFLEVBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFRLElBQUksRUFBSSxJQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBUSxLQUFLLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxFQUFFLEdBQUksSUFBSSxHQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQVEsSUFBSSxFQUFJLElBQUksaUJBQWlCLEdBQUcsRUFBRSxFQUFJLEtBQUssRUFBRSxHQUFJLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBTyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTyxJQUFPLEVBQUUsWUFBWSxDQUFHLEVBQUUsQ0FBQyxNQUFPLElBQUksRUFBRSxZQUFZLENBQUcsRUFBRSxDQUFDLE1BQU8sSUFBSSxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsTUFBTSxHQUFJLElBQUksR0FBSSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksRUFBSSxJQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBSSxJQUFJLEVBQUUsR0FBSSxFQUFHLEVBQUUsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxZQUFZLENBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLFlBQVksQ0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxL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QyxDQUFDLEVBQzlCLEtBQUssRUFBSSxFQUFHLEdBQUksT0FBTyxDQUFDLEVBQ3hCLFVBQ0csSUFDSCxFQUFHLFFBQVEsRUFBRyxHQUFLLEVBQUcsRUFBRSxFQUN4QixLQUFLLEVBQUksRUFBRyxHQUNaLFVBQ0csSUFDSCxFQUFHLFNBQVMsRUFBRyxHQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQzVCLEtBQUssRUFBSSxFQUFHLEdBQ1osUUFHTixNQUFPLENBQUMsQ0FBRSxFQUFHLEVBQUcsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUUsQ0FBQyxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxFQUFHLEdBQUksQ0FBQyxFQUFHLENBQUMsRUFBRyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLENBQUUsRUFBRyxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFH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SyxDQUFDLEVBQ3ZCLEVBQU8sSUFBTSxFQUFRLEVBQU0sS0FBSyxJQUFJLEVBQU8sQ0FBRyxFQUM5QyxFQUFPLElBQU0sRUFBUSxFQUFNLEtBQUssS0FBSyxFQUFPLEVBQU0sS0FBSyxJQUFNLENBQUcsRUFDaEUsRUFBTyxJQUFNLEVBQVEsRUFBTSxLQUFLLEtBQUssRUFBTyxFQUFNLEtBQUssSUFBTSxDQUFHLEVBQ2hFLFFBRUUsYUFBbUMsQ0FBdUIsQ0FBQyxFQUFHLEVBQUcsRUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksQ0FRM0YsSUFBSSxFQUFJLEVBQU0sRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUssRUFBSyxFQUFLLEVBQUssRUFBSSxFQUFLLEVBQUssRUFBSSxFQUFLLEVBQUssRUFBSSxFQUFLLEVBQUssRUFBSSxFQUFLLEVBQUssRUFBSyxFQUM3SixFQUFJLEVBQVUsRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUNqSixFQUFJLEVBQVUsRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUssRUFBSyxFQUFLLEVBQUksRUFBSSxFQUFLLEVBQUssRUFBSSxFQUFLLEVBQUksRUFBSyxFQUFJLEVBQUksRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFLLEVBQUssRUFBSyxFQUFLLEVBQUksRUFBSSxFQUFLLEVBQUssRUFBSSxFQUFLLEVBQUksRUFBSyxFQUM1SyxFQUFJLEVBQU0sRUFBSyxFQUFLLEVBQUssRUFBSyxFQUFLLEVBQUksRUFBSyxFQUFJLEVBQUssRUFBSyxFQUFLLEVBQUssRUFBSyxFQUFJLEVBQUssRUFJbEYsRUFBUSxDQUFDLEVBR2IsSUFBVyxFQUFHLEVBQUcsRUFBRyxFQUFHLENB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LENBQ0QsU0FBVSxRQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFRLEVBQUksUUFBUSxFQUV4QixFQUFHLENBQ0QsU0FBVSxXQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFPLEVBQUksUUFBUSxFQUV2QixFQUFHLENBQ0QsU0FBVSxVQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFRLEVBQUksUUFBUSxFQUV4QixFQUFHLENBQ0QsU0FBVSxhQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFPLEVBQUksVUFBVSxFQUV6QixFQUFHLENBQ0QsU0FBVSxlQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFRLEVBQUksVUFBVSxFQUUxQixFQUFHLENBQ0QsU0FBVSxZQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFPLEVBQUksU0FBUyxFQUV4QixFQUFHLENBQ0QsU0FBVSxjQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFRLEVBQUksU0FBUyxFQUV6QixFQUFHLENBQ0QsU0FBVSxVQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFPLEVBQUksU0FBUyxFQUV4QixFQUFHLENBQ0QsU0FBVSxhQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFPLEVBQUksWUFBWSxFQUUzQixFQUFHLENBQ0QsU0FBVSxTQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFPLEVBQUksUUFBUSxFQUV2QixFQUFHLENBQ0QsU0FBVSxVQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFPLEVBQUksU0FBUyxFQUV4QixFQUFHLENBQ0QsU0FBVSxhQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixPQUFPLEVBQUksUUFBUSxFQUV2QixFQUFHLENBQ0QsU0FBVSxZQUNWLGlCQUFrQixDQUFPLENBQUMsRUFBSyxDQUM3QixHQUFJLEVBQUksT0FBTyxFQUNiLE9BQU8sRUFB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QUcsWUFBYSxFQUFHLEtBQU0sRUFBRyxVQUFXLEdBQUksTUFBTyxHQUFJLFlBQWEsR0FBSSxPQUFRLEdBQUksUUFBUyxHQUFJLGNBQWUsR0FBSSxhQUFjLEdBQUksWUFBYSxHQUFJLFNBQVUsRUFDMUwsYUFBYyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLEVBQUcsQ0FBQyxHQUFJLENBQUMsRUFBRyxDQUFDLEdBQUksQ0FBQyxFQUFHLENBQUMsR0FBSSxDQUFDLENBQUMsRUFDMVAsdUJBQXdCLENBQVMsQ0FBQyxFQUFRLEVBQVEsRUFBVSxFQUFJLEVBQVMsRUFBSSxFQUFJLENBQy9FLElBQUksRUFBSyxFQUFHLE9BQVMsRUFDckIsT0FBUSxPQUNELE9BQ0EsR0FDSCxPQUFPLE1BQ0osR0FDSCxFQUFHLFVBQVUsRUFBRSxNQUFNLFVBQVUsRUFDL0IsVUFDRyxHQUNILEVBQUcsVUFBVSxFQUFFLE1BQU0sV0FBVyxFQUNoQyxVQUNHLElBQ0gsRUFBRyxVQUFVLEVBQUUsTUFBTSxXQUFXLEVBQ2hDLFVBQ0csSUFDSCxFQUFHLFVBQVUsRUFBRSxNQUFNLFlBQVksRUFDakMsVUFDRyxJQUNILEVBQUcsVUFBVSxFQUFFLEtBQUssU0FBVSxFQUFHLEdBQUksRUFBRSxFQUN2QyxFQUFHLFFBQVEsRUFBRyxFQUFLLEdBQUcsT0FBUSxFQUFHLEdBQUksR0FBSSxFQUFHLEdBQUksTUFBTyxFQUFHLEdBQUksSUFBSSxFQUNsRSxVQUNHLElBQ0gsRUFBRyxVQUFVLEVBQUUsTUFBTSxTQUFVLEVBQUcsRUFBRyxFQUNyQyxFQUFHLGFBQWEsQ0FBRSxLQUFNLEVBQUcsRUFBSSxDQUFDLEVBQ2hDLFVBQ0csUUFDQSxJQUNILEVBQUcsYUFBYSxDQUFFLE1BQU8sRUFBRyxFQUFJLENBQUMsRUFDakMsVUFDRyxJQUNILEVBQUcsVUFBVSxFQUFFLE1BQU0sV0FBVyxFQUNoQyxVQUNHLElBQ0gsRUFBRyxVQUFVLEVBQUUsTUFBTSxTQUFVLEVBQUcsR0FBSSxFQUFFLEVBQ3hDLEVBQUcsUUFBUSxFQUFHLEVBQUcsR0FBSSxHQUFJLEVBQUcsR0FBSSxNQUFPLEVBQUcsR0FBSSxJQUFJLEVBQ2xELFVBQ0csSUFDSCxFQUFHLGFBQWEsQ0FBRSxLQUFNLEVBQUcsRUFBSSxDQUFDLEVBQ2hDLFVBQ0csSUFDSCxFQUFHLFVBQVUsRUFBRSxNQUFNLGdCQUFpQixFQUFHLEVBQUssRUFBRSxFQUNoRCxLQUFLLEVBQUksQ0FBRSxHQUFJLEVBQUcsRUFBSyxHQUFJLE1BQU8sRUFBRyxFQUFLLEdBQUksS0FBTSxFQUFHLFFBQVEsRUFBRyxFQUFLLEdBQUksRUFBRyxFQUFHLENBQUUsRUFDbkYsVUFDRyxJQUNILEtBQUssRUFBSSxDQUFFLEdBQUksRUFBRyxHQUFLLE1BQU8sRUFBRyxHQUFLLEtBQU0sRUFBRyxTQUFTLE9BQVEsRUFDaEUsVUFDRyxJQUNILEVBQUcsVUFBVSxFQUFFLE1BQU0sZ0JBQWlCLEVBQUcsRUFBSyxFQUFFLEVBQ2hELEtBQUssRUFBSSxDQUFFLEdBQUksRUFBRyxFQUFLLEdBQUksTUFBTyxFQUFHLEVBQUssR0FBSSxLQUFNLEVBQUcsUUFBUSxFQUFHLEVBQUssR0FBSSxFQUFHLEVBQUcsQ0FBRSxFQUNuRixRQUdOLE1BQU8sQ0FBQyxDQUFFLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFHLENBQUksRUFBRyxDQUFFLEVBQUcsQ0FBQyxDQUFDLENBQUUsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxFQUFHLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxDQUFJLEVBQUcsQ0FBRSxFQUFHLEVBQUssRUFBRyxDQUFDLEVBQUcsRUFBRSxFQUFHLEVBQUcsRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUcsRUFBRyxFQUFLLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxFQUFHLEVBQUssRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxFQUFHLEVBQUssRUFBRyxFQUFLLEdBQUksR0FBSSxHQUFJLENBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLEVBQUcsR0FBSSxFQUFLLEdBQUksQ0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxFQUFHLEVBQUssRUFBRyxFQUFLLEdBQUksR0FBSSxHQUFJLENBQUksRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxFQUFHLEVBQUssR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEVBQUcsRUFBSyxHQUFJLENBQUksQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFH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QUFHLENBQUMsRUFBRyxDQUFFLEVBQUcsR0FBSSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxDQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxDQUFFLEVBQUcsR0FBSSxFQUFHLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxDQUFDLENBQUMsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRyxFQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBQyxDQUFDLEVBQ2xpQixlQUFnQixDQUFFLEdBQUksQ0FBQyxFQUFHLENBQUMsRUFBRyxHQUFJLENBQUMsRUFBRyxDQUFDLENBQUUsRUFDekMsb0JBQXFCLENBQVUsQ0FBQyxFQUFLLEVBQU0sQ0FDekMsR0FBSSxFQUFLLFlBQ1AsS0FBSyxNQUFNLENBQUcsTUFDVCxDQUNMLElBQUksRUFBUSxJQUFJ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RUFBRyxJQUFLLEVBQUcsR0FBSSxLQUFLLENBQUUsRUFDdkUsVUFDRyxJQUNILEtBQUssRUFBSSxDQUFFLEtBQU0sYUFBYyxHQUFJLEVBQUcsRUFBSyxHQUFHLEtBQUssRUFBRyxXQUFZLEVBQUcsR0FBSSxLQUFLLENBQUUsRUFDaEYsVUFDRyxJQUNILEtBQUssRUFBSSxDQUFFLEtBQU0sY0FBZSxHQUFJLEVBQUcsRUFBSyxHQUFHLEtBQUssRUFBRyxVQUFXLEVBQUcsR0FBSSxLQUFLLENBQUUsRUFDaEYsUUFHTixNQUFPLENBQUMsQ0FBRSxFQUFHLEVBQUcsR0FBSSxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxFQUFHLENBQUMsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxHQUFJLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFLLEdBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxDQUFJLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsRUFBRyxDQUFFLEdBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUcsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLENBQUksQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUssR0FBSSxFQUFHLEdBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsRUFBRyxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLEVBQUcsQ0FBRSxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBRSxFQUFHLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxDQUFDLEVBQUcsQ0FBRSxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxHQUFJLEdBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBSyxHQUFJLEVBQUcsR0FBSSxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksRUFBSyxHQUFJLEVBQUssR0FBSSxFQUFLLEdBQUksQ0FBSSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUUsR0FBSSxDQUFDLEVBQUcsRUFBRSxDQUFFLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsRUFBRSxFQUFLLENBQUMsRUFBRyxFQUFFLENBQUMsRUFBRyxFQUFFLEVBQUssQ0FBQyxFQUFHLEVBQUUsQ0FBQyxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVBQUcsQ0FBRSxHQUFJLENBQUMsRUFBRyxFQUFFLENBQUUsRUFBRyxDQUFFLEdBQUksR0FBSSxHQUFJLENBQUksRUFBRyxDQUFFLEdBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBRSxFQUFHLEVBQUUsRUFBSyxDQUFDLEVBQUcsRUFBRSxDQUFDLEVB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LFVBQVUsRUFBRSxNQUFNLFFBQVEsRUFDdEIsZ0JBQ0osSUFHSCxPQUZBLEtBQUssU0FBUyxFQUNkLEVBQUcsVUFBVSxFQUFFLE1BQU0sU0FBUyxFQUN2QixnQkFDSixJQUdILE9BRkEsS0FBSyxTQUFTLEVBQ2QsRUFBRyxVQUFVLEVBQUUsTUFBTSxTQUFTLEVBQ3ZCLGdCQUNKLElBR0gsT0FGQSxLQUFLLFNBQVMsRUFDZCxFQUFHLFVBQVUsRUFBRSxNQUFNLFNBQVMsRUFDdkIsZ0JBQ0osSUFHSCxPQUZBLEtBQUssU0FBUyxFQUNkLEVBQUcsVUFBVSxFQUFFLE1BQU0sU0FBUyxFQUN2QixnQkFDSixJQUdILE9BRkEsS0FBSyxTQUFTLEVBQ2QsRUFBRyxVQUFVLEVBQUUsTUFBTSxRQUFRLEVBQ3RCLGdCQUNKLElBR0gsT0FGQSxLQUFLLFNBQVMsRUFDZCxFQUFHLFVBQVUsRUFBRSxNQUFNLFNBQVMsRUFDdkIsZ0JBQ0osSUFHSCxPQUZBLEtBQUssU0FBUyxFQUNkLEVBQUcsVUFBVSxFQUFFLE1BQU0sUUFBUSxFQUN0QixnQkFDSixJQUdILE9BRkEsRUFBRyxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQy9CLEtBQUssVUFBVSxNQUFNLEVBQ2QsT0FDSixJQUdILE9BRkEsRUFBRyxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQy9CLEtBQUssVUFBVSxNQUFNLEVBQ2QsT0FDSixJQUdILE9BRkEsRUFBRyxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQy9CLEtBQUssVUFBVSxNQUFNLEVBQ2QsT0FDSixJQUdILE9BRkEsRUFBRyxVQUFVLEVBQUUsTUFBTSxTQUFTLEVBQzlCLEtBQUssVUFBVSxNQUFNLEVBQ2QsT0FDSixJQUdILE9BRkEsRUFBRyxVQUFVLEVBQUUsTUFBTSxVQUFVLEVBQy9CLEtBQUssVUFBVSxNQUFNLEVBQ2QsT0FDSixJQUdILE9BRkEsRUFBRyxVQUFVLEVBQUUsTUFBTSxTQUFTLEVBQzlCLEtBQUssVUFBVSxNQUFNLEVBQ2QsT0FDSixJQUdILE9BRkEsRUFBRyxVQUFVLEVBQUUsTUFBTSxTQUFTLEVB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RSxNQUFTLENBQUMsRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLE1BQVMsQ0FBRSxNQUFTLENBQUMsRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLE9BQVUsQ0FBRSxNQUFTLENBQUMsSUFBSyxJQUFLLElBQUssSUFBSyxHQUFHLEVBQUcsVUFBYSxFQUFNLEVBQUcsVUFBYSxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsWUFBZSxDQUFFLE1BQVMsQ0FBQyxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLEtBQVEsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLFVBQWEsQ0FBRSxNQUFTLENBQUMsR0FBSSxHQUFJLEdBQUksRUFBRSxFQUFHLFVBQWEsRUFBTSxFQUFHLE1BQVMsQ0FBRSxNQUFTLENBQUMsRUFBRyxVQUFhLEVBQU0sRUFBRyxPQUFVLENBQUUsTUFBUyxDQUFDLEdBQUksR0FBSSxHQUFJLEVBQUUsRUFBRyxVQUFhLEVBQU0sRUFBRyxvQkFBdUIsQ0FBRSxNQUFTLENBQUMsR0FBSSxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsVUFBYSxDQUFFLE1BQVMsQ0FBQyxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsVUFBYSxDQUFFLE1BQVMsQ0FBQyxFQUFFLEVBQUcsVUFBYSxFQUFNLEVBQUcsUUFBVyxDQUFFLE1BQVMsQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUcsRUFBRyxVQUFhLEVBQUssQ0FBRSxDQUN0dUMsRUFDQSxPQUFPLEdBQ1AsRUFDRixFQUFRLE1BQVEsRUFDaEIsU0FBUyxDQUFNLEVBQUcsQ0FDaEIsS0FBSyxHQUFLLENBQUMsRUFJYixPQUZBLEVBQU8sVUFBWSxFQUNuQixFQUFRLE9BQVMsRUFDVixJQUFJLEdBQ1gsRUFDRixJQUFPLE9BQVMsSUFDVixJQUFXLElBQ2IsR0FBZ0IsQ0FBQyxFQUNqQixJQUFXLENBQUMsRUFDWixHQUFZLENBQUMsRUFLWCxJQUFTLEdBQVUsRUFDckIsR0FBVSxDQUFDLEVBMkdYLElBQVMsQ0FBQyxFQUNWLEdBQVksQ0FBRSxHQUFJLE9BQVEsS0FBTSxZQUFhLFNBQVUsQ0FBQyxFQUFHLFFBQVMsRUFBRyxFQThHckUsSUFBSyxDQUNULFVBQVcsSUFBTSxHQUFZLEVBQUUsTUFDL0IsaUJBQ0EscUJBQ0Esc0JBQ0EsY0FDQSxrQkFDQSxjQUNBLGFBQ0EsaUJBQ0EsYUFDQSxhQUNBLGVBQ0EsV0FBWSxJQUNaLFVBQ0EsY0FDRixFQUNNLElBQU8sSUF5SFAsSUFBYSxJQTRNYixLQUFZLEtBQU0sSUFBSyxHQUFVLElBQU0sS0FBWSxPQUFJLElBQUcsUUFBVSxLQUFZLE9BQUksSUFBRyxVQUFZLEVBOFJuRyxJQUFXLENBQ2YsU0FDQSxjQUNGLEVBQ00sSUFBVSxDQUNkLE9BQVEsSUFDUixHQUFJLElBQ0osYUFDQSxPQUFRLEdBQ1YsSUM1ckRBLFNBQVMsR0FBbUIsRUFBRyxDQUU3QixXQUFVLFFBQVEsMkJBQTRCLENBQUMsSUFBUyxDQUN0RCxHQUFJLEVBQUssVUFBWSxLQUFPLEVBQUssYUFBYSxRQUFRLEVBQ3BELEVBQUssYUFIbUIsd0JBR2UsRUFBSyxhQUFhLFFBQVEsR0FBSyxFQUFFLEVBRTNFLEVBQ0QsV0FBVSxRQUFRLDBCQUEyQixDQUFDLElBQVMsQ0FDckQsR0FBSSxFQUFLLFVBQVksS0FBTyxFQUFLLGFBUFAsdUJBT3VDLEdBRy9ELEdBRkEsRUFBSyxhQUFhLFNBQVUsRUFBSyxhQVJULHVCQVF5QyxHQUFLLEVBQUUsRUFDeEUsRUFBSyxnQkFUbUIsdUJBU2dCLEVBQ3BDLEVBQUssYUFBYSxRQUFRLElBQU0sU0FDbEMsRUFBSyxhQUFhLE1BQU8sVUFBVSxHQUd4QyxFQXc3RUgsU0FBUyxFQUFrQixDQUFDLEVBQWEsRUFBYyxDQUNyRCxJQUFLLEVBQ0gsT0FBTyxFQUVULE1BQU0sRUFBWSxRQUFRLEVBQVksT0FBTyxDQUFDLEVBQUUsWUFBWSxFQUFJLEVBQVksTUFBTSxDQUFDLElBQ25GLE9BQU8sSUFBYSxJQUFjLEVBRXBDLFNBQVMsR0FBUyxDQUFDLEVBQVMsRUFBUyxDQUNuQyxNQUFNLEVBQU0sRUFBUSxLQUFLLEVBQ3pCLElBQUssRUFDSCxPQUVGLEdBQUksRUFBUSxnQkFBa0IsUUFDNUIsT0FBTyxnQkFBWSxDQUFHLEVBRXhCLE9BQU8sRUFnQlQsU0FBUyxHQUFRLENBQUMsRUFBSSxFQUFJLENBQ3hCLElBQUssSUFBTyxFQUNWLE1BQU8sR0FFVCxPQUFPLEtBQUssS0FBSyxLQUFLLElBQUksRUFBRyxFQUFJLEVBQUcsRUFBRyxDQUFDLEVBQUksS0FBSyxJQUFJLEVBQUcsRUFBSSxFQUFHLEVBQUcsQ0FBQyxDQUFDLEVBRXRFLFNBQVMsR0FBWSxDQUFDLEVBQVEsQ0FDNUIsSUFBSSxFQUNBLEVBQWdCLEVBQ3BCLEVBQU8sUUFBUSxDQUFDLElBQVUsQ0FDeEIsR0FBaUIsSUFBUyxFQUFPLENBQVMsRUFDMUMsRUFBWSxFQUNiLEVBQ0QsTUFBTSxFQUFvQixFQUFnQixFQUMxQyxPQUFPLElBQWUsRUFBUSxDQUFpQixFQUVqRCxTQUFTLEdBQWlCLENBQUMsRUFBUSxDQUNqQyxHQUFJLEVBQU8sU0FBVyxFQUNwQixPQUFPLEVBQU8sR0FFaEIsT0FBTyxJQUFhLENBQU0sRUFnRDVCLFNBQVMsR0FBeUIsQ0FBQyxFQUFvQixFQUFVLEVBQVMsQ0FDeEUsTUFBTSxFQUFTLGdCQUFnQixDQUFPLEVBRXRDLEdBREEsR0FBTSxLQUFLLGFBQWMsQ0FBTSxFQUMzQixJQUFhLGNBQWdCLElBQWEsY0FDNUMsRUFBTyxRQUFRLEVBRWpCLE1BQU0sRUFBNkIsR0FBSyxFQUNsQyxFQUFTLElBQWUsRUFBUSxDQUEwQixFQUMxRCxFQUFJLEdBQUssRUFBcUIsSUFDOUIsRUFBUSxLQUFLLE1BQU0sRUFBTyxHQUFHLEVBQUksRUFBTyxFQUFHLEVBQU8sR0FBRyxFQUFJLEVBQU8sQ0FBQyxFQUNqRSxFQUFzQixDQUFFLEVBQUcsRUFBRyxFQUFHLENBQUUsRUFDekMsR0FBSSxJQUFhLGFBQ2YsRUFBb0IsRUFBSSxLQUFLLElBQUksRUFBUSxLQUFLLEVBQUUsRUFBSSxHQUFLLEVBQU8sR0FBRyxFQUFJLEVBQU8sR0FBSyxFQUNuRixFQUFvQixHQUFLLEtBQUssSUFBSSxFQUFRLEtBQUssRUFBRSxFQUFJLEdBQUssRUFBTyxHQUFHLEVBQUksRUFBTyxHQUFLLFVBQzNFLElBQWEsWUFDdEIsRUFBb0IsRUFBSSxLQUFLLElBQUksRUFBUSxLQUFLLEVBQUUsRUFBSSxHQUFLLEVBQU8sR0FBRyxFQUFJLEVBQU8sR0FBSyxFQUFJLEVBQ3ZGLEVBQW9CLEdBQUssS0FBSyxJQUFJLEVBQVEsS0FBSyxFQUFFLEVBQUksR0FBSyxFQUFPLEdBQUcsRUFBSSxFQUFPLEdBQUssRUFBSSxVQUMvRSxJQUFhLFdBQ3RCLEVBQW9CLEVBQUksS0FBSyxJQUFJLENBQUssRUFBSSxHQUFLLEVBQU8sR0FBRyxFQUFJLEVBQU8sR0FBSyxFQUFJLEVBQzdFLEVBQW9CLEdBQUssS0FBSyxJQUFJLENBQUssRUFBSSxHQUFLLEVBQU8sR0FBRyxFQUFJLEVBQU8sR0FBSyxFQUFJLE1BRTlFLEdBQW9CLEVBQUksS0FBSyxJQUFJLENBQUssRUFBSSxHQUFLLEVBQU8sR0FBRyxFQUFJLEVBQU8sR0FBSyxFQUN6RSxFQUFvQixHQUFLLEtBQUssSUFBSSxDQUFLLEVBQUksR0FBSyxFQUFPLEdBQUcsRUFBSSxFQUFPLEdBQUssRUFFNUUsT0FBTyxFQUVULFNBQVMsRUFBa0IsQ0FBQyxFQUFLLENBQy9CLElBQUksRUFBUSxHQUNSLEVBQWEsR0FDakIsUUFBVyxLQUFXLEVBQ3BCLEdBQUksSUFBaUIsT0FDbkIsR0FBSSxFQUFRLFdBQVcsUUFBUSxHQUFLLEVBQVEsV0FBVyxhQUFhLEVBQ2xFLEVBQWEsRUFBYSxFQUFVLFFBRXBDLEdBQVEsRUFBUSxFQUFVLElBSWhDLE1BQU8sQ0FBRSxRQUFPLFlBQVcsRUFPN0IsU0FBUyxHQUFhLENBQUMsRUFBUSxDQUM3QixJQUFJLEVBQVMsR0FDYixNQUFNLEVBQWEsbUJBQ2IsRUFBbUIsRUFBVyxPQUNwQyxRQUFTLEVBQUksRUFBRyxFQUFJLEVBQVEsSUFDMUIsR0FBVSxFQUFXLE9BQU8sS0FBSyxNQUFNLEtBQUssT0FBTyxFQUFJLENBQWdCLENBQUMsRUFFMUUsT0FBTyxFQXlHVCxTQUFTLEdBQW1CLENBQUMsRUFBTSxFQUFTLENBQzFDLE9BQU8sSUFBd0IsRUFBTSxDQUFPLEVBQUUsT0FFaEQsU0FBUyxFQUFrQixDQUFDLEVBQU0sRUFBUyxDQUN6QyxPQUFPLElBQXdCLEVBQU0sQ0FBTyxFQUFFLE1BdURoRCxTQUFTLEdBQWUsQ0FBQyxFQUFPLENBQzlCLE1BQU8sUUFBUyxFQTBCbEIsU0FBUyxFQUFhLENBQUMsRUFBYSxFQUFNLENBQ3hDLE9BQU8sR0FBUSxDQUFDLEVBQUcsRUFBYSxDQUFJLEVBbTJCdEMsU0FBUyxHQUFrQixDQUFDLEVBQUssRUFBYSxDQUU1QyxHQURBLEVBQUksS0FBSyxPQUFRLEdBQVEsRUFDckIsSUFBZ0IsR0FDbEIsRUFBSSxLQUFLLHVCQUF3QixDQUFXLEVBR2hELFNBQVMsR0FBMEIsQ0FBQyxFQUFLLEVBQVcsRUFBVSxFQUFRLENBQ3BFLEdBQUksRUFBSSxTQUFnQixPQUN0QixPQUVGLEdBQUksRUFBVSxDQUNaLE1BQU0sRUFBUyxjQUFjLElBQzdCLEVBQUksS0FBSyxtQkFBb0IsQ0FBTSxFQUNuQyxFQUFJLE9BQU8sT0FBUSxjQUFjLEVBQUUsS0FBSyxLQUFNLENBQU0sRUFBRSxLQUFLLENBQVEsRUFFckUsR0FBSSxFQUFXLENBQ2IsTUFBTSxFQUFVLGVBQWUsSUFDL0IsRUFBSSxLQUFLLGtCQUFtQixDQUFPLEVBQ25DLEVBQUksT0FBTyxRQUFTLGNBQWMsRUFBRSxLQUFLLEtBQU0sQ0FBTyxFQUFFLEtBQUssQ0FBUyxHQU8xRSxTQUFTLEdBQVMsQ0FBQyxFQUFTLENBQzFCLGNBQWMsSUFBWSxhQUFlLElBQVksS0FFdkQsU0FBUyxHQUFRLENBQUMsRUFBUyxDQUN6QixjQUFjLElBQVksVUFBWSxJQUFZLEtBRXBELFNBQVMsR0FBTyxDQUFDLEVBQVcsQ0FDMUIsR0FBSSxNQUFNLFFBQVEsQ0FBUyxFQUN6QixPQUFPLFVBQ0EsSUFBVSxDQUFTLEVBQzFCLE1BQU8sQ0FBQyxFQUNWLE1BQU8sQ0FBQyxDQUFTLEVBRW5CLFNBQVMsR0FBTSxDQUFDLEVBQVEsRUFBUSxDQUM5QixJQUFJLEVBQU8sRUFBUSxFQUFLLEVBQ3hCLEdBQUksRUFBUSxDQUNWLEVBQWEsT0FBTyxLQUFLLENBQU0sRUFDL0IsSUFBSyxFQUFRLEVBQUcsRUFBUyxFQUFXLE9BQVEsRUFBUSxFQUFRLEdBQVMsRUFDbkUsRUFBTSxFQUFXLEdBQ2pCLEVBQU8sR0FBTyxFQUFPLEdBR3pCLE9BQU8sRUFFVCxTQUFTLEdBQU0sQ0FBQyxFQUFRLEVBQU8sQ0FDN0IsSUFBSSxFQUFTLEdBQUksRUFDakIsSUFBSyxFQUFRLEVBQUcsRUFBUSxFQUFPLEdBQVMsRUFDdEMsR0FBVSxFQUVaLE9BQU8sRUFFVCxTQUFTLEdBQWMsQ0FBQyxFQUFRLENBQzlCLE9BQU8sSUFBVyxHQUFLLE9BQU8sb0JBQXNCLEVBQUksRUFnQjFELFNBQVMsR0FBVyxDQUFDLEVBQVksRUFBUyxDQUN4QyxJQUFJLEVBQVEsR0FBSSxFQUFVLEVBQVcsUUFBVSxtQkFDL0MsSUFBSyxFQUFXLEtBQ2QsT0FBTyxFQUNULEdBQUksRUFBVyxLQUFLLEtBQ2xCLEdBQVMsT0FBUyxFQUFXLEtBQUssS0FBTyxLQUczQyxHQURBLEdBQVMsS0FBTyxFQUFXLEtBQUssS0FBTyxHQUFLLEtBQU8sRUFBVyxLQUFLLE9BQVMsR0FBSyxLQUM1RSxHQUFXLEVBQVcsS0FBSyxRQUM5QixHQUFTLE9BQVMsRUFBVyxLQUFLLFFBRXBDLE9BQU8sRUFBVSxJQUFNLEVBRXpCLFNBQVMsRUFBZSxDQUFDLEVBQVEsRUFBTSxDQU1yQyxHQUxBLE1BQU0sS0FBSyxJQUFJLEVBQ2YsS0FBSyxLQUFPLGdCQUNaLEtBQUssT0FBUyxFQUNkLEtBQUssS0FBTyxFQUNaLEtBQUssUUFBVSxJQUFZLEtBQU0sRUFBSyxFQUNsQyxNQUFNLGtCQUNSLE1BQU0sa0JBQWtCLEtBQU0sS0FBSyxXQUFXLE1BRTlDLE1BQUssTUFBUSxJQUFJLE1BQU0sRUFBRSxPQUFTLEdBU3RDLFNBQVMsR0FBTyxDQUFDLEVBQVEsRUFBVyxFQUFTLEVBQVUsRUFBZSxDQUNwRSxJQUFJLEVBQU8sR0FDUCxFQUFPLEdBQ1AsRUFBZ0IsS0FBSyxNQUFNLEVBQWdCLENBQUMsRUFBSSxFQUNwRCxHQUFJLEVBQVcsRUFBWSxFQUN6QixFQUFPLFFBQ1AsRUFBWSxFQUFXLEVBQWdCLEVBQUssT0FFOUMsR0FBSSxFQUFVLEVBQVcsRUFDdkIsRUFBTyxPQUNQLEVBQVUsRUFBVyxFQUFnQixFQUFLLE9BRTVDLE1BQU8sQ0FDTCxJQUFLLEVBQU8sRUFBTyxNQUFNLEVBQVcsQ0FBTyxFQUFFLFFBQVEsTUFBTyxRQUFFLEVBQUksRUFDbEUsSUFBSyxFQUFXLEVBQVksRUFBSyxNQUVuQyxFQUVGLFNBQVMsR0FBUSxDQUFDLEVBQVEsRUFBSyxDQUM3QixPQUFPLEdBQU8sT0FBTyxJQUFLLEVBQU0sRUFBTyxNQUFNLEVBQUksRUFFbkQsU0FBUyxHQUFXLENBQUMsRUFBTSxFQUFTLENBRWxDLEdBREEsRUFBVSxPQUFPLE9BQU8sR0FBVyxJQUFJLEdBQ2xDLEVBQUssT0FDUixPQUFPLEtBQ1QsSUFBSyxFQUFRLFVBQ1gsRUFBUSxVQUFZLEdBQ3RCLFVBQVcsRUFBUSxTQUFXLFNBQzVCLEVBQVEsT0FBUyxFQUNuQixVQUFXLEVBQVEsY0FBZ0IsU0FDakMsRUFBUSxZQUFjLEVBQ3hCLFVBQVcsRUFBUSxhQUFlLFNBQ2hDLEVBQVEsV0FBYSxFQUN2QixJQUFJLEVBQUssZUFDTCxFQUFhLENBQUMsQ0FBQyxFQUNmLEVBQVcsQ0FBQyxFQUNaLEVBQ0EsRUFBYyxHQUNsQixNQUFPLEVBQVEsRUFBRyxLQUFLLEVBQUssTUFBTSxFQUdoQyxHQUZBLEVBQVMsS0FBSyxFQUFNLEtBQUssRUFDekIsRUFBVyxLQUFLLEVBQU0sTUFBUSxFQUFNLEdBQUcsTUFBTSxFQUN6QyxFQUFLLFVBQVksRUFBTSxPQUFTLEVBQWMsRUFDaEQsRUFBYyxFQUFXLE9BQVMsRUFHdEMsR0FBSSxFQUFjLEVBQ2hCLEVBQWMsRUFBVyxPQUFTLEVBQ3BDLElBQUksRUFBUyxHQUFJLEVBQUcsRUFDaEIsRUFBZSxLQUFLLElBQUksRUFBSyxLQUFPLEVBQVEsV0FBWSxFQUFTLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FDcEYsRUFBZ0IsRUFBUSxXQUFhLEVBQVEsT0FBUyxFQUFlLEdBQ3pFLElBQUssRUFBSSxFQUFHLEdBQUssRUFBUSxZQUFhLElBQUssQ0FDekMsR0FBSSxFQUFjLEVBQUksRUFDcEIsTUFDRixFQUFPLElBQ0wsRUFBSyxPQUNMLEVBQVcsRUFBYyxHQUN6QixFQUFTLEVBQWMsR0FDdkIsRUFBSyxVQUFZLEVBQVcsR0FBZSxFQUFXLEVBQWMsSUFDcEUsQ0FDRixFQUNBLEVBQVMsR0FBTyxPQUFPLElBQUssRUFBUSxNQUFNLEVBQUksS0FBVSxFQUFLLEtBQU8sRUFBSSxHQUFHLFNBQVMsRUFBRyxDQUFZLEVBQUksTUFBUSxFQUFLLElBQU0sS0FBTyxFQUVuSSxFQUFPLElBQVEsRUFBSyxPQUFRLEVBQVcsR0FBYyxFQUFTLEdBQWMsRUFBSyxTQUFVLENBQWEsRUFDeEcsR0FBVSxHQUFPLE9BQU8sSUFBSyxFQUFRLE1BQU0sRUFBSSxLQUFVLEVBQUssS0FBTyxHQUFHLFNBQVMsRUFBRyxDQUFZLEVBQUksTUFBUSxFQUFLLElBQU0sS0FDdkgsR0FBVSxHQUFPLE9BQU8sSUFBSyxFQUFRLE9BQVMsRUFBZSxFQUFJLEVBQUssR0FBRyxFQUFJLE1BQzdFLElBQUssRUFBSSxFQUFHLEdBQUssRUFBUSxXQUFZLElBQUssQ0FDeEMsR0FBSSxFQUFjLEdBQUssRUFBUyxPQUM5QixNQUNGLEVBQU8sSUFDTCxFQUFLLE9BQ0wsRUFBVyxFQUFjLEdBQ3pCLEVBQVMsRUFBYyxHQUN2QixFQUFLLFVBQVksRUFBVyxHQUFlLEVBQVcsRUFBYyxJQUNwRSxDQUNGLEVBQ0EsR0FBVSxHQUFPLE9BQU8sSUFBSyxFQUFRLE1BQU0sRUFBSSxLQUFVLEVBQUssS0FBTyxFQUFJLEdBQUcsU0FBUyxFQUFHLENBQVksRUFBSSxNQUFRLEVBQUssSUFBTSxLQUU3SCxPQUFPLEVBQU8sUUFBUSxNQUFPLEVBQUUsRUFvQmpDLFNBQVMsR0FBbUIsQ0FBQyxFQUFNLENBQ2pDLElBQUksRUFBUyxDQUFDLEVBQ2QsR0FBSSxJQUFTLEtBQ1gsT0FBTyxLQUFLLENBQUksRUFBRSxnQkFBZ0IsQ0FBQyxFQUFPLENBQ3hDLEVBQUssR0FBTyxnQkFBZ0IsQ0FBQyxFQUFPLENBQ2xDLEVBQU8sT0FBTyxDQUFLLEdBQUssRUFDekIsRUFDRixFQUVILE9BQU8sRUFFVCxTQUFTLEdBQU0sQ0FBQyxFQUFLLEVBQVMsQ0F1QjVCLEdBdEJBLEVBQVUsR0FBVyxDQUFDLEVBQ3RCLE9BQU8sS0FBSyxDQUFPLEVBQUUsZ0JBQWdCLENBQUMsRUFBTSxDQUMxQyxHQUFJLElBQXlCLFFBQVEsQ0FBSSxJQUFNLEdBQzdDLE1BQU0sSUFBSSxHQUFVLG1CQUFxQixFQUFPLDhCQUFnQyxFQUFNLGNBQWMsRUFFdkcsRUFDRCxLQUFLLFFBQVUsRUFDZixLQUFLLElBQU0sRUFDWCxLQUFLLEtBQU8sRUFBUSxNQUFXLEtBQy9CLEtBQUssUUFBVSxFQUFRLGlCQUFzQixFQUFHLENBQzlDLE1BQU8sSUFFVCxLQUFLLFVBQVksRUFBUSxtQkFBd0IsQ0FBQyxFQUFNLENBQ3RELE9BQU8sR0FFVCxLQUFLLFdBQWEsRUFBUSxZQUFpQixLQUMzQyxLQUFLLFVBQVksRUFBUSxXQUFnQixLQUN6QyxLQUFLLFVBQVksRUFBUSxXQUFnQixLQUN6QyxLQUFLLGNBQWdCLEVBQVEsZUFBb0IsS0FDakQsS0FBSyxhQUFlLEVBQVEsY0FBbUIsS0FDL0MsS0FBSyxNQUFRLEVBQVEsT0FBWSxHQUNqQyxLQUFLLGFBQWUsSUFBb0IsRUFBUSxjQUFtQixJQUFJLEVBQ25FLElBQWdCLFFBQVEsS0FBSyxJQUFJLElBQU0sR0FDekMsTUFBTSxJQUFJLEdBQVUsaUJBQW1CLEtBQUssS0FBTyx1QkFBeUIsRUFBTSxjQUFjLEVBSXBHLFNBQVMsR0FBVyxDQUFDLEVBQVMsRUFBTSxDQUNsQyxJQUFJLEVBQVMsQ0FBQyxFQVVkLE9BVEEsRUFBUSxHQUFNLGdCQUFnQixDQUFDLEVBQWEsQ0FDMUMsSUFBSSxFQUFXLEVBQU8sT0FDdEIsRUFBTyxnQkFBZ0IsQ0FBQyxFQUFjLEVBQWUsQ0FDbkQsR0FBSSxFQUFhLE1BQVEsRUFBWSxLQUFPLEVBQWEsT0FBUyxFQUFZLE1BQVEsRUFBYSxRQUFVLEVBQVksTUFDdkgsRUFBVyxFQUVkLEVBQ0QsRUFBTyxHQUFZLEVBQ3BCLEVBQ00sRUFFVCxTQUFTLEdBQVUsRUFBRyxDQUNwQixJQUFJLEVBQVMsQ0FDWCxPQUFRLENBQUMsRUFDVCxTQUFVLENBQUMsRUFDWCxRQUFTLENBQUMsRUFDVixTQUFVLENBQUMsRUFDWCxNQUFPLENBQ0wsT0FBUSxDQUFDLEVBQ1QsU0FBVSxDQUFDLEVBQ1gsUUFBUyxDQUFDLEVBQ1YsU0FBVSxDQUFDLENBQ2IsQ0FDRixFQUFHLEVBQU8sRUFDVixTQUFTLENBQVcsQ0FBQyxFQUFPLENBQzFCLEdBQUksRUFBTSxNQUNSLEVBQU8sTUFBTSxFQUFNLE1BQU0sS0FBSyxDQUFLLEVBQ25DLEVBQU8sTUFBTSxTQUFZLEtBQUssQ0FBSyxNQUVuQyxHQUFPLEVBQU0sTUFBTSxFQUFNLEtBQU8sRUFBTyxTQUFZLEVBQU0sS0FBTyxFQUdwRSxJQUFLLEVBQVEsRUFBRyxFQUFTLFVBQVUsT0FBUSxFQUFRLEVBQVEsR0FBUyxFQUNsRSxVQUFVLEdBQU8sUUFBUSxDQUFXLEVBRXRDLE9BQU8sRUFFVCxTQUFTLEdBQVEsQ0FBQyxFQUFZLENBQzVCLE9BQU8sS0FBSyxPQUFPLENBQVUsRUFtRS9CLFNBQVMsR0FBZSxDQUFDLEVBQU0sQ0FDN0IsR0FBSSxJQUFTLEtBQ1gsTUFBTyxHQUNULElBQUksRUFBTSxFQUFLLE9BQ2YsT0FBTyxJQUFRLEdBQUssSUFBUyxLQUFPLElBQVEsSUFBTSxJQUFTLFFBQVUsSUFBUyxRQUFVLElBQVMsUUFFbkcsU0FBUyxHQUFpQixFQUFHLENBQzNCLE9BQU8sS0FFVCxTQUFTLEdBQU0sQ0FBQyxFQUFRLENBQ3RCLE9BQU8sSUFBVyxLQTBCcEIsU0FBUyxHQUFrQixDQUFDLEVBQU0sQ0FDaEMsR0FBSSxJQUFTLEtBQ1gsTUFBTyxHQUNULElBQUksRUFBTSxFQUFLLE9BQ2YsT0FBTyxJQUFRLElBQU0sSUFBUyxRQUFVLElBQVMsUUFBVSxJQUFTLFNBQVcsSUFBUSxJQUFNLElBQVMsU0FBVyxJQUFTLFNBQVcsSUFBUyxTQUVoSixTQUFTLEdBQW9CLENBQUMsRUFBTSxDQUNsQyxPQUFPLElBQVMsUUFBVSxJQUFTLFFBQVUsSUFBUyxPQUV4RCxTQUFTLEdBQVMsQ0FBQyxFQUFRLENBQ3pCLE9BQU8sT0FBTyxVQUFVLFNBQVMsS0FBSyxDQUFNLElBQU0sbUJBb0JwRCxTQUFTLEdBQVMsQ0FBQyxFQUFHLENBQ3BCLE1BQU8sS0FBTSxHQUFLLEdBQUssSUFBTSxJQUFNLEdBQUssR0FBSyxJQUFNLElBQU0sR0FBSyxHQUFLLElBRXJFLFNBQVMsR0FBUyxDQUFDLEVBQUcsQ0FDcEIsTUFBTyxLQUFNLEdBQUssR0FBSyxHQUV6QixTQUFTLEdBQVMsQ0FBQyxFQUFHLENBQ3BCLE1BQU8sS0FBTSxHQUFLLEdBQUssR0FFekIsU0FBUyxHQUFrQixDQUFDLEVBQU0sQ0FDaEMsR0FBSSxJQUFTLEtBQ1gsTUFBTyxHQUNULElBQUksRUFBTSxFQUFLLE9BQVEsRUFBUSxFQUFHLEVBQVksR0FBTyxFQUNyRCxJQUFLLEVBQ0gsTUFBTyxHQUVULEdBREEsRUFBSyxFQUFLLEdBQ04sSUFBTyxLQUFPLElBQU8sSUFDdkIsRUFBSyxFQUFLLEVBQUUsR0FFZCxHQUFJLElBQU8sSUFBSyxDQUNkLEdBQUksRUFBUSxJQUFNLEVBQ2hCLE1BQU8sR0FFVCxHQURBLEVBQUssRUFBSyxFQUFFLEdBQ1IsSUFBTyxJQUFLLENBQ2QsSUFDQSxLQUFPLEVBQVEsRUFBSyxJQUFTLENBRTNCLEdBREEsRUFBSyxFQUFLLEdBQ04sSUFBTyxJQUNULFNBQ0YsR0FBSSxJQUFPLEtBQU8sSUFBTyxJQUN2QixNQUFPLEdBQ1QsRUFBWSxHQUVkLE9BQU8sR0FBYSxJQUFPLElBRTdCLEdBQUksSUFBTyxJQUFLLENBQ2QsSUFDQSxLQUFPLEVBQVEsRUFBSyxJQUFTLENBRTNCLEdBREEsRUFBSyxFQUFLLEdBQ04sSUFBTyxJQUNULFNBQ0YsSUFBSyxJQUFVLEVBQUssV0FBVyxDQUFLLENBQUMsRUFDbkMsTUFBTyxHQUNULEVBQVksR0FFZCxPQUFPLEdBQWEsSUFBTyxJQUU3QixHQUFJLElBQU8sSUFBSyxDQUNkLElBQ0EsS0FBTyxFQUFRLEVBQUssSUFBUyxDQUUzQixHQURBLEVBQUssRUFBSyxHQUNOLElBQU8sSUFDVCxTQUNGLElBQUssSUFBVSxFQUFLLFdBQVcsQ0FBSyxDQUFDLEVBQ25DLE1BQU8sR0FDVCxFQUFZLEdBRWQsT0FBTyxHQUFhLElBQU8sS0FHL0IsR0FBSSxJQUFPLElBQ1QsTUFBTyxHQUNULEtBQU8sRUFBUSxFQUFLLElBQVMsQ0FFM0IsR0FEQSxFQUFLLEVBQUssR0FDTixJQUFPLElBQ1QsU0FDRixJQUFLLElBQVUsRUFBSyxXQUFXLENBQUssQ0FBQyxFQUNuQyxNQUFPLEdBRVQsRUFBWSxHQUVkLElBQUssR0FBYSxJQUFPLElBQ3ZCLE1BQU8sR0FDVCxNQUFPLEdBRVQsU0FBUyxHQUFvQixDQUFDLEVBQU0sQ0FDbEMsSUFBSSxFQUFRLEVBQU0sRUFBTyxFQUFHLEVBQzVCLEdBQUksRUFBTSxRQUFRLEdBQUcsSUFBTSxHQUN6QixFQUFRLEVBQU0sUUFBUSxLQUFNLEVBQUUsRUFHaEMsR0FEQSxFQUFLLEVBQU0sR0FDUCxJQUFPLEtBQU8sSUFBTyxJQUFLLENBQzVCLEdBQUksSUFBTyxJQUNULEVBQU8sR0FDVCxFQUFRLEVBQU0sTUFBTSxDQUFDLEVBQ3JCLEVBQUssRUFBTSxHQUViLEdBQUksSUFBVSxJQUNaLE1BQU8sR0FDVCxHQUFJLElBQU8sSUFBSyxDQUNkLEdBQUksRUFBTSxLQUFPLElBQ2YsT0FBTyxFQUFPLFNBQVMsRUFBTSxNQUFNLENBQUMsRUFBRyxDQUFDLEVBQzFDLEdBQUksRUFBTSxLQUFPLElBQ2YsT0FBTyxFQUFPLFNBQVMsRUFBTSxNQUFNLENBQUMsRUFBRyxFQUFFLEVBQzNDLEdBQUksRUFBTSxLQUFPLElBQ2YsT0FBTyxFQUFPLFNBQVMsRUFBTSxNQUFNLENBQUMsRUFBRyxDQUFDLEVBRTVDLE9BQU8sRUFBTyxTQUFTLEVBQU8sRUFBRSxFQUVsQyxTQUFTLEdBQVMsQ0FBQyxFQUFRLENBQ3pCLE9BQU8sT0FBTyxVQUFVLFNBQVMsS0FBSyxDQUFNLElBQU0sb0JBQXNCLEVBQVMsSUFBTSxJQUFNLEdBQU8sZUFBZSxDQUFNLEdBa0MzSCxTQUFTLEdBQWdCLENBQUMsRUFBTSxDQUM5QixHQUFJLElBQVMsS0FDWCxNQUFPLEdBQ1QsSUFBSyxJQUFtQixLQUFLLENBQUksR0FFakMsRUFBSyxFQUFLLE9BQVMsS0FBTyxJQUN4QixNQUFPLEdBRVQsTUFBTyxHQUVULFNBQVMsR0FBa0IsQ0FBQyxFQUFNLENBQ2hDLElBQUksRUFBTyxFQUdYLEdBRkEsRUFBUSxFQUFLLFFBQVEsS0FBTSxFQUFFLEVBQUUsWUFBWSxFQUMzQyxFQUFPLEVBQU0sS0FBTyxJQUFNLEdBQUssRUFDM0IsS0FBSyxRQUFRLEVBQU0sRUFBRSxHQUFLLEVBQzVCLEVBQVEsRUFBTSxNQUFNLENBQUMsRUFFdkIsR0FBSSxJQUFVLE9BQ1osT0FBTyxJQUFTLEVBQUksT0FBTyxrQkFBb0IsT0FBTywwQkFDN0MsSUFBVSxPQUNuQixNQUFPLEtBRVQsT0FBTyxFQUFPLFdBQVcsRUFBTyxFQUFFLEVBR3BDLFNBQVMsR0FBa0IsQ0FBQyxFQUFRLEVBQU8sQ0FDekMsSUFBSSxFQUNKLEdBQUksTUFBTSxDQUFNLEVBQ2QsT0FBUSxPQUNELFlBQ0gsTUFBTyxXQUNKLFlBQ0gsTUFBTyxXQUNKLFlBQ0gsTUFBTyxlQUVGLE9BQU8sb0JBQXNCLEVBQ3RDLE9BQVEsT0FDRCxZQUNILE1BQU8sV0FDSixZQUNILE1BQU8sV0FDSixZQUNILE1BQU8sZUFFRixPQUFPLG9CQUFzQixFQUN0QyxPQUFRLE9BQ0QsWUFDSCxNQUFPLFlBQ0osWUFDSCxNQUFPLFlBQ0osWUFDSCxNQUFPLGdCQUVGLEdBQU8sZUFBZSxDQUFNLEVBQ3JDLE1BQU8sT0FHVCxPQURBLEVBQU0sRUFBTyxTQUFTLEVBQUUsRUFDakIsSUFBdUIsS0FBSyxDQUFHLEVBQUksRUFBSSxRQUFRLElBQUssSUFBSSxFQUFJLEVBRXJFLFNBQVMsR0FBTyxDQUFDLEVBQVEsQ0FDdkIsT0FBTyxPQUFPLFVBQVUsU0FBUyxLQUFLLENBQU0sSUFBTSxvQkFBc0IsRUFBUyxJQUFNLEdBQUssR0FBTyxlQUFlLENBQU0sR0F5QjFILFNBQVMsR0FBb0IsQ0FBQyxFQUFNLENBQ2xDLEdBQUksSUFBUyxLQUNYLE1BQU8sR0FDVCxHQUFJLElBQWlCLEtBQUssQ0FBSSxJQUFNLEtBQ2xDLE1BQU8sR0FDVCxHQUFJLElBQXNCLEtBQUssQ0FBSSxJQUFNLEtBQ3ZDLE1BQU8sR0FDVCxNQUFPLEdBRVQsU0FBUyxHQUFzQixDQUFDLEVBQU0sQ0FDcEMsSUFBSSxFQUFPLEVBQU0sRUFBTyxFQUFLLEVBQU0sRUFBUSxFQUFRLEVBQVcsRUFBRyxFQUFRLEtBQU0sRUFBUyxFQUFXLEVBRW5HLEdBREEsRUFBUSxJQUFpQixLQUFLLENBQUksRUFDOUIsSUFBVSxLQUNaLEVBQVEsSUFBc0IsS0FBSyxDQUFJLEVBQ3pDLEdBQUksSUFBVSxLQUNaLE1BQU0sSUFBSSxNQUFNLG9CQUFvQixFQUl0QyxHQUhBLEdBQVEsRUFBTSxHQUNkLEdBQVMsRUFBTSxHQUFLLEVBQ3BCLEdBQU8sRUFBTSxJQUNSLEVBQU0sR0FDVCxPQUFPLElBQUksS0FBSyxLQUFLLElBQUksRUFBTSxFQUFPLENBQUcsQ0FBQyxFQUs1QyxHQUhBLEdBQVEsRUFBTSxHQUNkLEdBQVUsRUFBTSxHQUNoQixHQUFVLEVBQU0sR0FDWixFQUFNLEdBQUksQ0FDWixFQUFXLEVBQU0sR0FBRyxNQUFNLEVBQUcsQ0FBQyxFQUM5QixNQUFPLEVBQVMsT0FBUyxFQUN2QixHQUFZLElBRWQsR0FBWSxFQUVkLEdBQUksRUFBTSxJQUlSLEdBSEEsR0FBVyxFQUFNLElBQ2pCLElBQWMsRUFBTSxLQUFPLEdBQzNCLEdBQVMsRUFBVSxHQUFLLEdBQWEsTUFDakMsRUFBTSxLQUFPLElBQ2YsR0FBUyxFQUdiLEdBREEsRUFBTyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQU0sRUFBTyxFQUFLLEVBQU0sRUFBUSxFQUFRLENBQVEsQ0FBQyxFQUN0RSxFQUNGLEVBQUssUUFBUSxFQUFLLFFBQVEsRUFBSSxDQUFLLEVBQ3JDLE9BQU8sRUFFVCxTQUFTLEdBQXNCLENBQUMsRUFBUSxDQUN0QyxPQUFPLEVBQU8sWUFBWSxFQVM1QixTQUFTLEdBQWdCLENBQUMsRUFBTSxDQUM5QixPQUFPLElBQVMsTUFBUSxJQUFTLEtBT25DLFNBQVMsR0FBaUIsQ0FBQyxFQUFNLENBQy9CLEdBQUksSUFBUyxLQUNYLE1BQU8sR0FDVCxJQUFJLEVBQU0sRUFBSyxFQUFTLEVBQUcsRUFBTSxFQUFLLE9BQVEsRUFBTyxJQUNyRCxJQUFLLEVBQU0sRUFBRyxFQUFNLEVBQUssSUFBTyxDQUU5QixHQURBLEVBQU8sRUFBSyxRQUFRLEVBQUssT0FBTyxDQUFHLENBQUMsRUFDaEMsRUFBTyxHQUNULFNBQ0YsR0FBSSxFQUFPLEVBQ1QsTUFBTyxHQUNULEdBQVUsRUFFWixPQUFPLEVBQVMsSUFBTSxFQUV4QixTQUFTLEdBQW1CLENBQUMsRUFBTSxDQUNqQyxJQUFJLEVBQUssRUFBVSxFQUFRLEVBQUssUUFBUSxXQUFZLEVBQUUsRUFBRyxFQUFNLEVBQU0sT0FBUSxFQUFPLElBQVksRUFBTyxFQUFHLEVBQVMsQ0FBQyxFQUNwSCxJQUFLLEVBQU0sRUFBRyxFQUFNLEVBQUssSUFBTyxDQUM5QixHQUFJLEVBQU0sSUFBTSxHQUFLLEVBQ25CLEVBQU8sS0FBSyxHQUFRLEdBQUssR0FBRyxFQUM1QixFQUFPLEtBQUssR0FBUSxFQUFJLEdBQUcsRUFDM0IsRUFBTyxLQUFLLEVBQU8sR0FBRyxFQUV4QixFQUFPLEdBQVEsRUFBSSxFQUFLLFFBQVEsRUFBTSxPQUFPLENBQUcsQ0FBQyxFQUduRCxHQURBLEVBQVcsRUFBTSxFQUFJLEVBQ2pCLElBQWEsRUFDZixFQUFPLEtBQUssR0FBUSxHQUFLLEdBQUcsRUFDNUIsRUFBTyxLQUFLLEdBQVEsRUFBSSxHQUFHLEVBQzNCLEVBQU8sS0FBSyxFQUFPLEdBQUcsVUFDYixJQUFhLEdBQ3RCLEVBQU8sS0FBSyxHQUFRLEdBQUssR0FBRyxFQUM1QixFQUFPLEtBQUssR0FBUSxFQUFJLEdBQUcsVUFDbEIsSUFBYSxHQUN0QixFQUFPLEtBQUssR0FBUSxFQUFJLEdBQUcsRUFFN0IsT0FBTyxJQUFJLFdBQVcsQ0FBTSxFQUU5QixTQUFTLEdBQW1CLENBQUMsRUFBUSxDQUNuQyxJQUFJLEVBQVMsR0FBSSxFQUFPLEVBQUcsRUFBSyxFQUFNLEVBQU0sRUFBTyxPQUFRLEVBQU8sSUFDbEUsSUFBSyxFQUFNLEVBQUcsRUFBTSxFQUFLLElBQU8sQ0FDOUIsR0FBSSxFQUFNLElBQU0sR0FBSyxFQUNuQixHQUFVLEVBQUssR0FBUSxHQUFLLElBQzVCLEdBQVUsRUFBSyxHQUFRLEdBQUssSUFDNUIsR0FBVSxFQUFLLEdBQVEsRUFBSSxJQUMzQixHQUFVLEVBQUssRUFBTyxJQUV4QixHQUFRLEdBQVEsR0FBSyxFQUFPLEdBRzlCLEdBREEsRUFBTyxFQUFNLEVBQ1QsSUFBUyxFQUNYLEdBQVUsRUFBSyxHQUFRLEdBQUssSUFDNUIsR0FBVSxFQUFLLEdBQVEsR0FBSyxJQUM1QixHQUFVLEVBQUssR0FBUSxFQUFJLElBQzNCLEdBQVUsRUFBSyxFQUFPLFlBQ2IsSUFBUyxFQUNsQixHQUFVLEVBQUssR0FBUSxHQUFLLElBQzVCLEdBQVUsRUFBSyxHQUFRLEVBQUksSUFDM0IsR0FBVSxFQUFLLEdBQVEsRUFBSSxJQUMzQixHQUFVLEVBQUssWUFDTixJQUFTLEVBQ2xCLEdBQVUsRUFBSyxHQUFRLEVBQUksSUFDM0IsR0FBVSxFQUFLLEdBQVEsRUFBSSxJQUMzQixHQUFVLEVBQUssSUFDZixHQUFVLEVBQUssSUFFakIsT0FBTyxFQUVULFNBQVMsR0FBUSxDQUFDLEVBQUssQ0FDckIsT0FBTyxPQUFPLFVBQVUsU0FBUyxLQUFLLENBQUcsSUFBTSxzQkFXakQsU0FBUyxHQUFlLENBQUMsRUFBTSxDQUM3QixHQUFJLElBQVMsS0FDWCxNQUFPLEdBQ1QsSUFBSSxFQUFhLENBQUMsRUFBRyxFQUFPLEVBQVEsRUFBTSxFQUFTLEVBQVksRUFBUyxFQUN4RSxJQUFLLEVBQVEsRUFBRyxFQUFTLEVBQU8sT0FBUSxFQUFRLEVBQVEsR0FBUyxFQUFHLENBR2xFLEdBRkEsRUFBTyxFQUFPLEdBQ2QsRUFBYSxHQUNULElBQVksS0FBSyxDQUFJLElBQU0sa0JBQzdCLE1BQU8sR0FDVCxJQUFLLEtBQVcsRUFDZCxHQUFJLElBQWtCLEtBQUssRUFBTSxDQUFPLEVBQ3RDLElBQUssRUFDSCxFQUFhLE9BRWIsT0FBTyxHQUdiLElBQUssRUFDSCxNQUFPLEdBQ1QsR0FBSSxFQUFXLFFBQVEsQ0FBTyxJQUFNLEdBQ2xDLEVBQVcsS0FBSyxDQUFPLE1BRXZCLE9BQU8sR0FFWCxNQUFPLEdBRVQsU0FBUyxHQUFpQixDQUFDLEVBQU0sQ0FDL0IsT0FBTyxJQUFTLEtBQU8sRUFBTyxDQUFDLEVBUWpDLFNBQVMsR0FBZ0IsQ0FBQyxFQUFNLENBQzlCLEdBQUksSUFBUyxLQUNYLE1BQU8sR0FDVCxJQUFJLEVBQU8sRUFBUSxFQUFNLEVBQU0sRUFBUSxFQUFTLEVBQ2hELEVBQVMsSUFBSSxNQUFNLEVBQU8sTUFBTSxFQUNoQyxJQUFLLEVBQVEsRUFBRyxFQUFTLEVBQU8sT0FBUSxFQUFRLEVBQVEsR0FBUyxFQUFHLENBRWxFLEdBREEsRUFBTyxFQUFPLEdBQ1YsSUFBWSxLQUFLLENBQUksSUFBTSxrQkFDN0IsTUFBTyxHQUVULEdBREEsRUFBTyxPQUFPLEtBQUssQ0FBSSxFQUNuQixFQUFLLFNBQVcsRUFDbEIsTUFBTyxHQUNULEVBQU8sR0FBUyxDQUFDLEVBQUssR0FBSSxFQUFLLEVBQUssR0FBRyxFQUV6QyxNQUFPLEdBRVQsU0FBUyxHQUFrQixDQUFDLEVBQU0sQ0FDaEMsR0FBSSxJQUFTLEtBQ1gsTUFBTyxDQUFDLEVBQ1YsSUFBSSxFQUFPLEVBQVEsRUFBTSxFQUFNLEVBQVEsRUFBUyxFQUNoRCxFQUFTLElBQUksTUFBTSxFQUFPLE1BQU0sRUFDaEMsSUFBSyxFQUFRLEVBQUcsRUFBUyxFQUFPLE9BQVEsRUFBUSxFQUFRLEdBQVMsRUFDL0QsRUFBTyxFQUFPLEdBQ2QsRUFBTyxPQUFPLEtBQUssQ0FBSSxFQUN2QixFQUFPLEdBQVMsQ0FBQyxFQUFLLEdBQUksRUFBSyxFQUFLLEdBQUcsRUFFekMsT0FBTyxFQVFULFNBQVMsR0FBYyxDQUFDLEVBQU0sQ0FDNUIsR0FBSSxJQUFTLEtBQ1gsTUFBTyxHQUNULElBQUksRUFBSyxFQUFTLEVBQ2xCLElBQUssS0FBTyxFQUNWLEdBQUksSUFBa0IsS0FBSyxFQUFRLENBQUcsR0FDcEMsR0FBSSxFQUFPLEtBQVMsS0FDbEIsTUFBTyxHQUdiLE1BQU8sR0FFVCxTQUFTLEdBQWdCLENBQUMsRUFBTSxDQUM5QixPQUFPLElBQVMsS0FBTyxFQUFPLENBQUMsRUFnQ2pDLFNBQVMsR0FBTSxDQUFDLEVBQUssQ0FDbkIsT0FBTyxPQUFPLFVBQVUsU0FBUyxLQUFLLENBQUcsRUFFM0MsU0FBUyxFQUFNLENBQUMsRUFBRyxDQUNqQixPQUFPLElBQU0sSUFBTSxJQUFNLEdBRTNCLFNBQVMsRUFBYyxDQUFDLEVBQUcsQ0FDekIsT0FBTyxJQUFNLEdBQUssSUFBTSxHQUUxQixTQUFTLEVBQVksQ0FBQyxFQUFHLENBQ3ZCLE9BQU8sSUFBTSxHQUFLLElBQU0sSUFBTSxJQUFNLElBQU0sSUFBTSxHQUVsRCxTQUFTLEVBQWlCLENBQUMsRUFBRyxDQUM1QixPQUFPLElBQU0sSUFBTSxJQUFNLElBQU0sSUFBTSxJQUFNLElBQU0sS0FBTyxJQUFNLElBRWhFLFNBQVMsR0FBVyxDQUFDLEVBQUcsQ0FDdEIsSUFBSSxFQUNKLEdBQUksSUFBTSxHQUFLLEdBQUssR0FDbEIsT0FBTyxFQUFJLEdBR2IsR0FEQSxFQUFLLEVBQUksR0FDTCxJQUFNLEdBQU0sR0FBTSxJQUNwQixPQUFPLEVBQUssR0FBSyxHQUVuQixNQUFPLEdBRVQsU0FBUyxHQUFhLENBQUMsRUFBRyxDQUN4QixHQUFJLElBQU0sSUFDUixNQUFPLEdBRVQsR0FBSSxJQUFNLElBQ1IsTUFBTyxHQUVULEdBQUksSUFBTSxHQUNSLE1BQU8sR0FFVCxNQUFPLEdBRVQsU0FBUyxHQUFlLENBQUMsRUFBRyxDQUMxQixHQUFJLElBQU0sR0FBSyxHQUFLLEdBQ2xCLE9BQU8sRUFBSSxHQUViLE1BQU8sR0FFVCxTQUFTLEdBQW9CLENBQUMsRUFBRyxDQUMvQixPQUFPLElBQU0sR0FBSyxLQUFPLElBQU0sR0FBSyxPQUFTLElBQU0sR0FBSyxLQUFPLElBQU0sSUFBTSxJQUFNLElBQU0sRUFBSSxJQUFNLElBQU0sSUFBTSxLQUFPLElBQU0sSUFBTSxLQUFPLElBQU0sSUFBTSxLQUFPLElBQU0sSUFBTSxLQUFPLElBQU0sSUFBTSxPQUFTLElBQU0sR0FBSyxJQUFNLElBQU0sR0FBSyxJQUFNLElBQU0sR0FBSyxJQUFNLElBQU0sR0FBSyxLQUFPLElBQU0sR0FBSyxPQUFLLElBQU0sR0FBSyxPQUFNLElBQU0sR0FBSyxTQUFXLElBQU0sR0FBSyxTQUFXLEdBRXRWLFNBQVMsR0FBaUIsQ0FBQyxFQUFHLENBQzVCLEdBQUksR0FBSyxNQUNQLE9BQU8sT0FBTyxhQUFhLENBQUMsRUFFOUIsT0FBTyxPQUFPLGNBQ1gsRUFBSSxPQUFTLElBQU0sT0FDbkIsRUFBSSxNQUFRLE1BQVEsS0FDdkIsRUFRRixTQUFTLEdBQU8sQ0FBQyxFQUFPLEVBQVMsQ0FDL0IsS0FBSyxNQUFRLEVBQ2IsS0FBSyxTQUFXLEVBQVEsVUFBZSxLQUN2QyxLQUFLLE9BQVMsRUFBUSxRQUFhLElBQ25DLEtBQUssVUFBWSxFQUFRLFdBQWdCLEtBQ3pDLEtBQUssT0FBUyxFQUFRLFFBQWEsR0FDbkMsS0FBSyxLQUFPLEVBQVEsTUFBVyxHQUMvQixLQUFLLFNBQVcsRUFBUSxVQUFlLEtBQ3ZDLEtBQUssY0FBZ0IsS0FBSyxPQUFPLGlCQUNqQyxLQUFLLFFBQVUsS0FBSyxPQUFPLGdCQUMzQixLQUFLLE9BQVMsRUFBTSxPQUNwQixLQUFLLFNBQVcsRUFDaEIsS0FBSyxLQUFPLEVBQ1osS0FBSyxVQUFZLEVBQ2pCLEtBQUssV0FBYSxFQUNsQixLQUFLLGVBQWlCLEdBQ3RCLEtBQUssVUFBWSxDQUFDLEVBRXBCLFNBQVMsR0FBYSxDQUFDLEVBQVEsRUFBUyxDQUN0QyxJQUFJLEVBQU8sQ0FDVCxLQUFNLEVBQU8sU0FDYixPQUFRLEVBQU8sTUFBTSxNQUFNLEVBQUcsRUFBRSxFQUVoQyxTQUFVLEVBQU8sU0FDakIsS0FBTSxFQUFPLEtBQ2IsT0FBUSxFQUFPLFNBQVcsRUFBTyxTQUNuQyxFQUVBLE9BREEsRUFBSyxRQUFVLElBQVEsQ0FBSSxFQUNwQixJQUFJLEdBQVUsRUFBUyxDQUFJLEVBRXBDLFNBQVMsRUFBVSxDQUFDLEVBQVEsRUFBUyxDQUNuQyxNQUFNLElBQWMsRUFBUSxDQUFPLEVBRXJDLFNBQVMsR0FBWSxDQUFDLEVBQVEsRUFBUyxDQUNyQyxHQUFJLEVBQU8sVUFDVCxFQUFPLFVBQVUsS0FBSyxLQUFNLElBQWMsRUFBUSxDQUFPLENBQUMsRUFtRDlELFNBQVMsRUFBYyxDQUFDLEVBQVEsRUFBTyxFQUFLLEVBQVcsQ0FDckQsSUFBSSxFQUFXLEVBQVMsRUFBWSxFQUNwQyxHQUFJLEVBQVEsRUFBSyxDQUVmLEdBREEsRUFBVSxFQUFPLE1BQU0sTUFBTSxFQUFPLENBQUcsRUFDbkMsR0FDRixJQUFLLEVBQVksRUFBRyxFQUFVLEVBQVEsT0FBUSxFQUFZLEVBQVMsR0FBYSxFQUU5RSxHQURBLEVBQWEsRUFBUSxXQUFXLENBQVMsSUFDbkMsSUFBZSxHQUFLLElBQU0sR0FBYyxHQUFjLFNBQzFELEdBQVcsRUFBUSwrQkFBK0IsVUFHN0MsSUFBc0IsS0FBSyxDQUFPLEVBQzNDLEdBQVcsRUFBUSw4Q0FBOEMsRUFFbkUsRUFBTyxRQUFVLEdBR3JCLFNBQVMsR0FBYSxDQUFDLEVBQVEsRUFBYSxFQUFRLEVBQWlCLENBQ25FLElBQUksRUFBWSxFQUFLLEVBQU8sRUFDNUIsSUFBSyxHQUFPLFNBQVMsQ0FBTSxFQUN6QixHQUFXLEVBQVEsbUVBQW1FLEVBRXhGLEVBQWEsT0FBTyxLQUFLLENBQU0sRUFDL0IsSUFBSyxFQUFRLEVBQUcsRUFBVyxFQUFXLE9BQVEsRUFBUSxFQUFVLEdBQVMsRUFFdkUsR0FEQSxFQUFNLEVBQVcsSUFDWixHQUFrQixLQUFLLEVBQWEsQ0FBRyxFQUMxQyxFQUFZLEdBQU8sRUFBTyxHQUMxQixFQUFnQixHQUFPLEdBSTdCLFNBQVMsRUFBZ0IsQ0FBQyxFQUFRLEVBQVMsRUFBaUIsRUFBUSxFQUFTLEVBQVcsRUFBVyxFQUFnQixFQUFVLENBQzNILElBQUksRUFBTyxFQUNYLEdBQUksTUFBTSxRQUFRLENBQU8sRUFBRyxDQUMxQixFQUFVLE1BQU0sVUFBVSxNQUFNLEtBQUssQ0FBTyxFQUM1QyxJQUFLLEVBQVEsRUFBRyxFQUFXLEVBQVEsT0FBUSxFQUFRLEVBQVUsR0FBUyxFQUFHLENBQ3ZFLEdBQUksTUFBTSxRQUFRLEVBQVEsRUFBTSxFQUM5QixHQUFXLEVBQVEsNkNBQTZDLEVBRWxFLFVBQVcsSUFBWSxVQUFZLElBQU8sRUFBUSxFQUFNLElBQU0sa0JBQzVELEVBQVEsR0FBUyxtQkFJdkIsVUFBVyxJQUFZLFVBQVksSUFBTyxDQUFPLElBQU0sa0JBQ3JELEVBQVUsa0JBR1osR0FEQSxFQUFVLE9BQU8sQ0FBTyxFQUNwQixJQUFZLEtBQ2QsRUFBVSxDQUFDLEVBRWIsR0FBSSxJQUFXLDBCQUNiLEdBQUksTUFBTSxRQUFRLENBQVMsRUFDekIsSUFBSyxFQUFRLEVBQUcsRUFBVyxFQUFVLE9BQVEsRUFBUSxFQUFVLEdBQVMsRUFDdEUsSUFBYyxFQUFRLEVBQVMsRUFBVSxHQUFRLENBQWUsTUFHbEUsS0FBYyxFQUFRLEVBQVMsRUFBVyxDQUFlLE1BRXRELENBQ0wsSUFBSyxFQUFPLE9BQVMsR0FBa0IsS0FBSyxFQUFpQixDQUFPLEdBQUssR0FBa0IsS0FBSyxFQUFTLENBQU8sRUFDOUcsRUFBTyxLQUFPLEdBQWEsRUFBTyxLQUNsQyxFQUFPLFVBQVksR0FBa0IsRUFBTyxVQUM1QyxFQUFPLFNBQVcsR0FBWSxFQUFPLFNBQ3JDLEdBQVcsRUFBUSx3QkFBd0IsRUFFN0MsR0FBSSxJQUFZLFlBQ2QsT0FBTyxlQUFlLEVBQVMsRUFBUyxDQUN0QyxhQUFjLEdBQ2QsV0FBWSxHQUNaLFNBQVUsR0FDVixNQUFPLENBQ1QsQ0FBQyxNQUVELEdBQVEsR0FBVyxFQUVyQixPQUFPLEVBQWdCLEdBRXpCLE9BQU8sRUFFVCxTQUFTLEdBQWEsQ0FBQyxFQUFRLENBQzdCLElBQUksRUFDQyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsRUFDNUMsR0FBSSxJQUFPLEdBQ1QsRUFBTyxtQkFDRSxJQUFPLElBRWhCLEdBREEsRUFBTyxXQUNILEVBQU8sTUFBTSxXQUFXLEVBQU8sUUFBUSxJQUFNLEdBQy9DLEVBQU8sZUFHVCxJQUFXLEVBQVEsMEJBQTBCLEVBRS9DLEVBQU8sTUFBUSxFQUNmLEVBQU8sVUFBWSxFQUFPLFNBQzFCLEVBQU8sZUFBaUIsR0FFMUIsU0FBUyxFQUFtQixDQUFDLEVBQVEsRUFBZSxFQUFhLENBQy9ELElBQUksRUFBYSxFQUFHLEVBQUssRUFBTyxNQUFNLFdBQVcsRUFBTyxRQUFRLEVBQ2hFLE1BQU8sSUFBTyxFQUFHLENBQ2YsTUFBTyxHQUFlLENBQUUsRUFBRyxDQUN6QixHQUFJLElBQU8sR0FBSyxFQUFPLGlCQUFtQixHQUN4QyxFQUFPLGVBQWlCLEVBQU8sU0FFakMsRUFBSyxFQUFPLE1BQU0sYUFBYSxFQUFPLFFBQVEsRUFFaEQsR0FBSSxHQUFpQixJQUFPLEdBQzFCLEVBQ0UsR0FBSyxFQUFPLE1BQU0sYUFBYSxFQUFPLFFBQVEsUUFDdkMsSUFBTyxJQUFNLElBQU8sSUFBTSxJQUFPLEdBRTVDLEdBQUksR0FBTyxDQUFFLEVBQUcsQ0FDZCxJQUFjLENBQU0sRUFDcEIsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsRUFDNUMsSUFDQSxFQUFPLFdBQWEsRUFDcEIsTUFBTyxJQUFPLEdBQ1osRUFBTyxhQUNQLEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLE1BR2hELE9BR0osR0FBSSxJQUFnQixJQUFNLElBQWUsR0FBSyxFQUFPLFdBQWEsRUFDaEUsSUFBYSxFQUFRLHVCQUF1QixFQUU5QyxPQUFPLEVBRVQsU0FBUyxHQUFxQixDQUFDLEVBQVEsQ0FDckMsSUFBSSxFQUFZLEVBQU8sU0FBVSxFQUVqQyxHQURBLEVBQUssRUFBTyxNQUFNLFdBQVcsQ0FBUyxHQUNqQyxJQUFPLElBQU0sSUFBTyxLQUFPLElBQU8sRUFBTyxNQUFNLFdBQVcsRUFBWSxDQUFDLEdBQUssSUFBTyxFQUFPLE1BQU0sV0FBVyxFQUFZLENBQUMsR0FHM0gsR0FGQSxHQUFhLEVBQ2IsRUFBSyxFQUFPLE1BQU0sV0FBVyxDQUFTLEVBQ2xDLElBQU8sR0FBSyxHQUFhLENBQUUsRUFDN0IsTUFBTyxHQUdYLE1BQU8sR0FFVCxTQUFTLEdBQWdCLENBQUMsRUFBUSxFQUFPLENBQ3ZDLEdBQUksSUFBVSxFQUNaLEVBQU8sUUFBVSxZQUNSLEVBQVEsRUFDakIsRUFBTyxRQUFVLEdBQU8sT0FBTyxLQUFNLEVBQVEsQ0FBQyxFQUdsRCxTQUFTLEdBQWUsQ0FBQyxFQUFRLEVBQVksRUFBc0IsQ0FDakUsSUFBSSxFQUFXLEVBQVcsRUFBYyxFQUFZLEVBQW1CLEVBQU8sRUFBWSxFQUFhLEVBQVEsRUFBTyxLQUFNLEVBQVUsRUFBTyxPQUFRLEVBRXJKLEdBREEsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsRUFDeEMsR0FBYSxDQUFFLEdBQUssR0FBa0IsQ0FBRSxHQUFLLElBQU8sSUFBTSxJQUFPLElBQU0sSUFBTyxJQUFNLElBQU8sSUFBTSxJQUFPLEtBQU8sSUFBTyxJQUFNLElBQU8sSUFBTSxJQUFPLElBQU0sSUFBTyxJQUFNLElBQU8sSUFBTSxJQUFPLEdBQ3pMLE1BQU8sR0FFVCxHQUFJLElBQU8sSUFBTSxJQUFPLElBRXRCLEdBREEsRUFBWSxFQUFPLE1BQU0sV0FBVyxFQUFPLFNBQVcsQ0FBQyxFQUNuRCxHQUFhLENBQVMsR0FBSyxHQUF3QixHQUFrQixDQUFTLEVBQ2hGLE1BQU8sR0FHWCxFQUFPLEtBQU8sU0FDZCxFQUFPLE9BQVMsR0FDaEIsRUFBZSxFQUFhLEVBQU8sU0FDbkMsRUFBb0IsR0FDcEIsTUFBTyxJQUFPLEVBQUcsQ0FDZixHQUFJLElBQU8sSUFFVCxHQURBLEVBQVksRUFBTyxNQUFNLFdBQVcsRUFBTyxTQUFXLENBQUMsRUFDbkQsR0FBYSxDQUFTLEdBQUssR0FBd0IsR0FBa0IsQ0FBUyxFQUNoRixjQUVPLElBQU8sSUFFaEIsR0FEQSxFQUFZLEVBQU8sTUFBTSxXQUFXLEVBQU8sU0FBVyxDQUFDLEVBQ25ELEdBQWEsQ0FBUyxFQUN4QixjQUVPLEVBQU8sV0FBYSxFQUFPLFdBQWEsSUFBc0IsQ0FBTSxHQUFLLEdBQXdCLEdBQWtCLENBQUUsRUFDOUgsY0FDUyxHQUFPLENBQUUsRUFLbEIsR0FKQSxFQUFRLEVBQU8sS0FDZixFQUFhLEVBQU8sVUFDcEIsRUFBYyxFQUFPLFdBQ3JCLEdBQW9CLEVBQVEsR0FBTyxFQUFFLEVBQ2pDLEVBQU8sWUFBYyxFQUFZLENBQ25DLEVBQW9CLEdBQ3BCLEVBQUssRUFBTyxNQUFNLFdBQVcsRUFBTyxRQUFRLEVBQzVDLGFBQ0ssQ0FDTCxFQUFPLFNBQVcsRUFDbEIsRUFBTyxLQUFPLEVBQ2QsRUFBTyxVQUFZLEVBQ25CLEVBQU8sV0FBYSxFQUNwQixNQUdKLEdBQUksRUFDRixHQUFlLEVBQVEsRUFBYyxFQUFZLEVBQUssRUFDdEQsSUFBaUIsRUFBUSxFQUFPLEtBQU8sQ0FBSyxFQUM1QyxFQUFlLEVBQWEsRUFBTyxTQUNuQyxFQUFvQixHQUV0QixJQUFLLEdBQWUsQ0FBRSxFQUNwQixFQUFhLEVBQU8sU0FBVyxFQUVqQyxFQUFLLEVBQU8sTUFBTSxhQUFhLEVBQU8sUUFBUSxFQUdoRCxHQURBLEdBQWUsRUFBUSxFQUFjLEVBQVksRUFBSyxFQUNsRCxFQUFPLE9BQ1QsTUFBTyxHQUlULE9BRkEsRUFBTyxLQUFPLEVBQ2QsRUFBTyxPQUFTLEVBQ1QsR0FFVCxTQUFTLEdBQXNCLENBQUMsRUFBUSxFQUFZLENBQ2xELElBQUksRUFBSSxFQUFjLEVBRXRCLEdBREEsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsRUFDeEMsSUFBTyxHQUNULE1BQU8sR0FFVCxFQUFPLEtBQU8sU0FDZCxFQUFPLE9BQVMsR0FDaEIsRUFBTyxXQUNQLEVBQWUsRUFBYSxFQUFPLFNBQ25DLE9BQVEsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsS0FBTyxFQUN6RCxHQUFJLElBQU8sR0FHVCxHQUZBLEdBQWUsRUFBUSxFQUFjLEVBQU8sU0FBVSxFQUFJLEVBQzFELEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLEVBQzFDLElBQU8sR0FDVCxFQUFlLEVBQU8sU0FDdEIsRUFBTyxXQUNQLEVBQWEsRUFBTyxhQUVwQixPQUFPLFdBRUEsR0FBTyxDQUFFLEVBQ2xCLEdBQWUsRUFBUSxFQUFjLEVBQVksRUFBSSxFQUNyRCxJQUFpQixFQUFRLEdBQW9CLEVBQVEsR0FBTyxDQUFVLENBQUMsRUFDdkUsRUFBZSxFQUFhLEVBQU8saUJBQzFCLEVBQU8sV0FBYSxFQUFPLFdBQWEsSUFBc0IsQ0FBTSxFQUM3RSxHQUFXLEVBQVEsOERBQThELE1BRWpGLEdBQU8sV0FDUCxFQUFhLEVBQU8sU0FHeEIsR0FBVyxFQUFRLDREQUE0RCxFQUVqRixTQUFTLEdBQXNCLENBQUMsRUFBUSxFQUFZLENBQ2xELElBQUksRUFBYyxFQUFZLEVBQVcsRUFBVyxFQUFLLEVBRXpELEdBREEsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsRUFDeEMsSUFBTyxHQUNULE1BQU8sR0FFVCxFQUFPLEtBQU8sU0FDZCxFQUFPLE9BQVMsR0FDaEIsRUFBTyxXQUNQLEVBQWUsRUFBYSxFQUFPLFNBQ25DLE9BQVEsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsS0FBTyxFQUN6RCxHQUFJLElBQU8sR0FHVCxPQUZBLEdBQWUsRUFBUSxFQUFjLEVBQU8sU0FBVSxFQUFJLEVBQzFELEVBQU8sV0FDQSxXQUNFLElBQU8sR0FBSSxDQUdwQixHQUZBLEdBQWUsRUFBUSxFQUFjLEVBQU8sU0FBVSxFQUFJLEVBQzFELEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLEVBQzFDLEdBQU8sQ0FBRSxFQUNYLEdBQW9CLEVBQVEsR0FBTyxDQUFVLFVBQ3BDLEVBQUssS0FBTyxJQUFrQixHQUN2QyxFQUFPLFFBQVUsSUFBZ0IsR0FDakMsRUFBTyxvQkFDRyxFQUFNLElBQWMsQ0FBRSxHQUFLLEVBQUcsQ0FDeEMsRUFBWSxFQUNaLEVBQVksRUFDWixLQUFPLEVBQVksRUFBRyxJQUVwQixHQURBLEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLEdBQ3pDLEVBQU0sSUFBWSxDQUFFLElBQU0sRUFDN0IsR0FBYSxHQUFhLEdBQUssTUFFL0IsSUFBVyxFQUFRLGdDQUFnQyxFQUd2RCxFQUFPLFFBQVUsSUFBa0IsQ0FBUyxFQUM1QyxFQUFPLGVBRVAsSUFBVyxFQUFRLHlCQUF5QixFQUU5QyxFQUFlLEVBQWEsRUFBTyxpQkFDMUIsR0FBTyxDQUFFLEVBQ2xCLEdBQWUsRUFBUSxFQUFjLEVBQVksRUFBSSxFQUNyRCxJQUFpQixFQUFRLEdBQW9CLEVBQVEsR0FBTyxDQUFVLENBQUMsRUFDdkUsRUFBZSxFQUFhLEVBQU8saUJBQzFCLEVBQU8sV0FBYSxFQUFPLFdBQWEsSUFBc0IsQ0FBTSxFQUM3RSxHQUFXLEVBQVEsOERBQThELE1BRWpGLEdBQU8sV0FDUCxFQUFhLEVBQU8sU0FHeEIsR0FBVyxFQUFRLDREQUE0RCxFQUVqRixTQUFTLEdBQWtCLENBQUMsRUFBUSxFQUFZLENBQzlDLElBQUksRUFBVyxHQUFNLEVBQU8sRUFBWSxFQUFNLEVBQU8sRUFBTyxJQUFLLEVBQVMsRUFBVSxFQUFPLE9BQVEsRUFBVyxFQUFZLEVBQVEsRUFBZ0IsRUFBVyxFQUFrQyxPQUFPLE9BQU8sSUFBSSxFQUFHLEVBQVMsRUFBUSxFQUFXLEVBRWhQLEdBREEsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsRUFDeEMsSUFBTyxHQUNULEVBQWEsR0FDYixFQUFZLEdBQ1osRUFBVSxDQUFDLFVBQ0YsSUFBTyxJQUNoQixFQUFhLElBQ2IsRUFBWSxHQUNaLEVBQVUsQ0FBQyxNQUVYLE9BQU8sR0FFVCxHQUFJLEVBQU8sU0FBVyxLQUNwQixFQUFPLFVBQVUsRUFBTyxRQUFVLEVBRXBDLEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLEVBQzlDLE1BQU8sSUFBTyxFQUFHLENBR2YsR0FGQSxHQUFvQixFQUFRLEdBQU0sQ0FBVSxFQUM1QyxFQUFLLEVBQU8sTUFBTSxXQUFXLEVBQU8sUUFBUSxFQUN4QyxJQUFPLEVBTVQsT0FMQSxFQUFPLFdBQ1AsRUFBTyxJQUFNLEVBQ2IsRUFBTyxPQUFTLEVBQ2hCLEVBQU8sS0FBTyxFQUFZLFVBQVksV0FDdEMsRUFBTyxPQUFTLEVBQ1QsWUFDRyxFQUNWLEdBQVcsRUFBUSw4Q0FBOEMsVUFDeEQsSUFBTyxHQUNoQixHQUFXLEVBQVEsMENBQTBDLEVBSS9ELEdBRkEsRUFBUyxFQUFVLEVBQVksS0FDL0IsRUFBUyxFQUFpQixHQUN0QixJQUFPLElBRVQsR0FEQSxFQUFZLEVBQU8sTUFBTSxXQUFXLEVBQU8sU0FBVyxDQUFDLEVBQ25ELEdBQWEsQ0FBUyxFQUN4QixFQUFTLEVBQWlCLEdBQzFCLEVBQU8sV0FDUCxHQUFvQixFQUFRLEdBQU0sQ0FBVSxFQVdoRCxHQVJBLEVBQVEsRUFBTyxLQUNmLEVBQWEsRUFBTyxVQUNwQixFQUFPLEVBQU8sU0FDZCxHQUFZLEVBQVEsRUFBWSxJQUFpQixHQUFPLEVBQUksRUFDNUQsRUFBUyxFQUFPLElBQ2hCLEVBQVUsRUFBTyxPQUNqQixHQUFvQixFQUFRLEdBQU0sQ0FBVSxFQUM1QyxFQUFLLEVBQU8sTUFBTSxXQUFXLEVBQU8sUUFBUSxHQUN2QyxHQUFrQixFQUFPLE9BQVMsSUFBVSxJQUFPLEdBQ3RELEVBQVMsR0FDVCxFQUFLLEVBQU8sTUFBTSxhQUFhLEVBQU8sUUFBUSxFQUM5QyxHQUFvQixFQUFRLEdBQU0sQ0FBVSxFQUM1QyxHQUFZLEVBQVEsRUFBWSxJQUFpQixHQUFPLEVBQUksRUFDNUQsRUFBWSxFQUFPLE9BRXJCLEdBQUksRUFDRixHQUFpQixFQUFRLEVBQVMsRUFBaUIsRUFBUSxFQUFTLEVBQVcsRUFBTyxFQUFZLENBQUksVUFDN0YsRUFDVCxFQUFRLEtBQUssR0FBaUIsRUFBUSxLQUFNLEVBQWlCLEVBQVEsRUFBUyxFQUFXLEVBQU8sRUFBWSxDQUFJLENBQUMsTUFFakgsR0FBUSxLQUFLLENBQU8sRUFJdEIsR0FGQSxHQUFvQixFQUFRLEdBQU0sQ0FBVSxFQUM1QyxFQUFLLEVBQU8sTUFBTSxXQUFXLEVBQU8sUUFBUSxFQUN4QyxJQUFPLEdBQ1QsRUFBVyxHQUNYLEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLE1BRTlDLEdBQVcsR0FHZixHQUFXLEVBQVEsdURBQXVELEVBRTVFLFNBQVMsR0FBZSxDQUFDLEVBQVEsRUFBWSxDQUMzQyxJQUFJLEVBQWMsRUFBUyxFQUFXLElBQWUsRUFBaUIsR0FBTyxFQUFpQixHQUFPLEVBQWEsRUFBWSxFQUFhLEVBQUcsRUFBaUIsR0FBTyxFQUFLLEVBRTNLLEdBREEsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsRUFDeEMsSUFBTyxJQUNULEVBQVUsV0FDRCxJQUFPLEdBQ2hCLEVBQVUsT0FFVixPQUFPLEdBRVQsRUFBTyxLQUFPLFNBQ2QsRUFBTyxPQUFTLEdBQ2hCLE1BQU8sSUFBTyxFQUVaLEdBREEsRUFBSyxFQUFPLE1BQU0sYUFBYSxFQUFPLFFBQVEsRUFDMUMsSUFBTyxJQUFNLElBQU8sR0FDdEIsR0FBSSxNQUFrQixFQUNwQixFQUFXLElBQU8sR0FBSyxJQUFnQixRQUV2QyxJQUFXLEVBQVEsc0NBQXNDLFdBRWpELEVBQU0sSUFBZ0IsQ0FBRSxJQUFNLEVBQ3hDLEdBQUksSUFBUSxFQUNWLEdBQVcsRUFBUSw4RUFBOEUsV0FDdkYsRUFDVixFQUFhLEVBQWEsRUFBTSxFQUNoQyxFQUFpQixPQUVqQixJQUFXLEVBQVEsMkNBQTJDLE1BR2hFLE9BR0osR0FBSSxHQUFlLENBQUUsRUFBRyxDQUN0QixFQUNFLEdBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLFFBQ3ZDLEdBQWUsQ0FBRSxHQUMxQixHQUFJLElBQU8sR0FDVCxFQUNFLEdBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLFNBQ3RDLEdBQU8sQ0FBRSxHQUFLLElBQU8sR0FHbkMsTUFBTyxJQUFPLEVBQUcsQ0FDZixJQUFjLENBQU0sRUFDcEIsRUFBTyxXQUFhLEVBQ3BCLEVBQUssRUFBTyxNQUFNLFdBQVcsRUFBTyxRQUFRLEVBQzVDLFFBQVMsR0FBa0IsRUFBTyxXQUFhLElBQWUsSUFBTyxHQUNuRSxFQUFPLGFBQ1AsRUFBSyxFQUFPLE1BQU0sYUFBYSxFQUFPLFFBQVEsRUFFaEQsSUFBSyxHQUFrQixFQUFPLFdBQWEsRUFDekMsRUFBYSxFQUFPLFdBRXRCLEdBQUksR0FBTyxDQUFFLEVBQUcsQ0FDZCxJQUNBLFNBRUYsR0FBSSxFQUFPLFdBQWEsRUFBWSxDQUNsQyxHQUFJLElBQWEsSUFDZixFQUFPLFFBQVUsR0FBTyxPQUFPLEtBQU0sRUFBaUIsRUFBSSxFQUFhLENBQVUsVUFDeEUsSUFBYSxLQUN0QixHQUFJLEVBQ0YsRUFBTyxRQUFVLEtBR3JCLE1BRUYsR0FBSSxFQUNGLEdBQUksR0FBZSxDQUFFLEVBQ25CLEVBQWlCLEdBQ2pCLEVBQU8sUUFBVSxHQUFPLE9BQU8sS0FBTSxFQUFpQixFQUFJLEVBQWEsQ0FBVSxVQUN4RSxFQUNULEVBQWlCLEdBQ2pCLEVBQU8sUUFBVSxHQUFPLE9BQU8sS0FBTSxFQUFhLENBQUMsVUFDMUMsSUFBZSxHQUN4QixHQUFJLEVBQ0YsRUFBTyxRQUFVLFFBR25CLEdBQU8sUUFBVSxHQUFPLE9BQU8sS0FBTSxDQUFVLE1BR2pELEdBQU8sUUFBVSxHQUFPLE9BQU8sS0FBTSxFQUFpQixFQUFJLEVBQWEsQ0FBVSxFQUVuRixFQUFpQixHQUNqQixFQUFpQixHQUNqQixFQUFhLEVBQ2IsRUFBZSxFQUFPLFNBQ3RCLE9BQVEsR0FBTyxDQUFFLEdBQUssSUFBTyxFQUMzQixFQUFLLEVBQU8sTUFBTSxhQUFhLEVBQU8sUUFBUSxFQUVoRCxHQUFlLEVBQVEsRUFBYyxFQUFPLFNBQVUsRUFBSyxFQUU3RCxNQUFPLEdBRVQsU0FBUyxHQUFpQixDQUFDLEVBQVEsRUFBWSxDQUM3QyxJQUFJLEVBQU8sRUFBTyxFQUFPLElBQUssRUFBVSxFQUFPLE9BQVEsRUFBVSxDQUFDLEVBQUcsRUFBVyxFQUFXLEdBQU8sRUFDbEcsR0FBSSxFQUFPLGlCQUFtQixHQUM1QixNQUFPLEdBQ1QsR0FBSSxFQUFPLFNBQVcsS0FDcEIsRUFBTyxVQUFVLEVBQU8sUUFBVSxFQUVwQyxFQUFLLEVBQU8sTUFBTSxXQUFXLEVBQU8sUUFBUSxFQUM1QyxNQUFPLElBQU8sRUFBRyxDQUNmLEdBQUksRUFBTyxpQkFBbUIsR0FDNUIsRUFBTyxTQUFXLEVBQU8sZUFDekIsR0FBVyxFQUFRLGdEQUFnRCxFQUVyRSxHQUFJLElBQU8sR0FDVCxNQUdGLEdBREEsRUFBWSxFQUFPLE1BQU0sV0FBVyxFQUFPLFNBQVcsQ0FBQyxHQUNsRCxHQUFhLENBQVMsRUFDekIsTUFJRixHQUZBLEVBQVcsR0FDWCxFQUFPLFdBQ0gsR0FBb0IsRUFBUSxHQUFNLEVBQUUsR0FDdEMsR0FBSSxFQUFPLFlBQWMsRUFBWSxDQUNuQyxFQUFRLEtBQUssSUFBSSxFQUNqQixFQUFLLEVBQU8sTUFBTSxXQUFXLEVBQU8sUUFBUSxFQUM1QyxVQVFKLEdBTEEsRUFBUSxFQUFPLEtBQ2YsR0FBWSxFQUFRLEVBQVksSUFBa0IsR0FBTyxFQUFJLEVBQzdELEVBQVEsS0FBSyxFQUFPLE1BQU0sRUFDMUIsR0FBb0IsRUFBUSxHQUFNLEVBQUUsRUFDcEMsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsR0FDdkMsRUFBTyxPQUFTLEdBQVMsRUFBTyxXQUFhLElBQWUsSUFBTyxFQUN0RSxHQUFXLEVBQVEscUNBQXFDLFVBQy9DLEVBQU8sV0FBYSxFQUM3QixNQUdKLEdBQUksRUFLRixPQUpBLEVBQU8sSUFBTSxFQUNiLEVBQU8sT0FBUyxFQUNoQixFQUFPLEtBQU8sV0FDZCxFQUFPLE9BQVMsRUFDVCxHQUVULE1BQU8sR0FFVCxTQUFTLEdBQWdCLENBQUMsRUFBUSxFQUFZLEVBQVksQ0FDeEQsSUFBSSxFQUFXLEVBQWMsRUFBTyxFQUFVLEVBQWUsRUFBUyxFQUFPLEVBQU8sSUFBSyxFQUFVLEVBQU8sT0FBUSxFQUFVLENBQUMsRUFBRyxFQUFrQyxPQUFPLE9BQU8sSUFBSSxFQUFHLEVBQVMsS0FBTSxFQUFVLEtBQU0sRUFBWSxLQUFNLEVBQWdCLEdBQU8sRUFBVyxHQUFPLEVBQ2pSLEdBQUksRUFBTyxpQkFBbUIsR0FDNUIsTUFBTyxHQUNULEdBQUksRUFBTyxTQUFXLEtBQ3BCLEVBQU8sVUFBVSxFQUFPLFFBQVUsRUFFcEMsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsRUFDNUMsTUFBTyxJQUFPLEVBQUcsQ0FDZixJQUFLLEdBQWlCLEVBQU8saUJBQW1CLEdBQzlDLEVBQU8sU0FBVyxFQUFPLGVBQ3pCLEdBQVcsRUFBUSxnREFBZ0QsRUFJckUsR0FGQSxFQUFZLEVBQU8sTUFBTSxXQUFXLEVBQU8sU0FBVyxDQUFDLEVBQ3ZELEVBQVEsRUFBTyxNQUNWLElBQU8sSUFBTSxJQUFPLEtBQU8sR0FBYSxDQUFTLEVBQUcsQ0FDdkQsR0FBSSxJQUFPLEdBQUksQ0FDYixHQUFJLEVBQ0YsR0FBaUIsRUFBUSxFQUFTLEVBQWlCLEVBQVEsRUFBUyxLQUFNLEVBQVUsRUFBZSxDQUFPLEVBQzFHLEVBQVMsRUFBVSxFQUFZLEtBRWpDLEVBQVcsR0FDWCxFQUFnQixHQUNoQixFQUFlLFdBQ04sRUFDVCxFQUFnQixHQUNoQixFQUFlLE9BRWYsSUFBVyxFQUFRLG1HQUFtRyxFQUV4SCxFQUFPLFVBQVksRUFDbkIsRUFBSyxNQUNBLENBSUwsR0FIQSxFQUFXLEVBQU8sS0FDbEIsRUFBZ0IsRUFBTyxVQUN2QixFQUFVLEVBQU8sVUFDWixHQUFZLEVBQVEsRUFBWSxJQUFrQixHQUFPLEVBQUksRUFDaEUsTUFFRixHQUFJLEVBQU8sT0FBUyxFQUFPLENBQ3pCLEVBQUssRUFBTyxNQUFNLFdBQVcsRUFBTyxRQUFRLEVBQzVDLE1BQU8sR0FBZSxDQUFFLEVBQ3RCLEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLEVBRWhELEdBQUksSUFBTyxHQUFJLENBRWIsR0FEQSxFQUFLLEVBQU8sTUFBTSxhQUFhLEVBQU8sUUFBUSxHQUN6QyxHQUFhLENBQUUsRUFDbEIsR0FBVyxFQUFRLHlGQUF5RixFQUU5RyxHQUFJLEVBQ0YsR0FBaUIsRUFBUSxFQUFTLEVBQWlCLEVBQVEsRUFBUyxLQUFNLEVBQVUsRUFBZSxDQUFPLEVBQzFHLEVBQVMsRUFBVSxFQUFZLEtBRWpDLEVBQVcsR0FDWCxFQUFnQixHQUNoQixFQUFlLEdBQ2YsRUFBUyxFQUFPLElBQ2hCLEVBQVUsRUFBTyxlQUNSLEVBQ1QsR0FBVyxFQUFRLDBEQUEwRCxNQUk3RSxRQUZBLEVBQU8sSUFBTSxFQUNiLEVBQU8sT0FBUyxFQUNULFdBRUEsRUFDVCxHQUFXLEVBQVEsZ0ZBQWdGLE1BSW5HLFFBRkEsRUFBTyxJQUFNLEVBQ2IsRUFBTyxPQUFTLEVBQ1QsR0FHWCxHQUFJLEVBQU8sT0FBUyxHQUFTLEVBQU8sV0FBYSxFQUFZLENBQzNELEdBQUksRUFDRixFQUFXLEVBQU8sS0FDbEIsRUFBZ0IsRUFBTyxVQUN2QixFQUFVLEVBQU8sU0FFbkIsR0FBSSxHQUFZLEVBQVEsRUFBWSxJQUFtQixHQUFNLENBQVksRUFDdkUsR0FBSSxFQUNGLEVBQVUsRUFBTyxXQUVqQixHQUFZLEVBQU8sT0FHdkIsSUFBSyxFQUNILEdBQWlCLEVBQVEsRUFBUyxFQUFpQixFQUFRLEVBQVMsRUFBVyxFQUFVLEVBQWUsQ0FBTyxFQUMvRyxFQUFTLEVBQVUsRUFBWSxLQUVqQyxHQUFvQixFQUFRLEdBQU0sRUFBRSxFQUNwQyxFQUFLLEVBQU8sTUFBTSxXQUFXLEVBQU8sUUFBUSxFQUU5QyxJQUFLLEVBQU8sT0FBUyxHQUFTLEVBQU8sV0FBYSxJQUFlLElBQU8sRUFDdEUsR0FBVyxFQUFRLG9DQUFvQyxVQUM5QyxFQUFPLFdBQWEsRUFDN0IsTUFHSixHQUFJLEVBQ0YsR0FBaUIsRUFBUSxFQUFTLEVBQWlCLEVBQVEsRUFBUyxLQUFNLEVBQVUsRUFBZSxDQUFPLEVBRTVHLEdBQUksRUFDRixFQUFPLElBQU0sRUFDYixFQUFPLE9BQVMsRUFDaEIsRUFBTyxLQUFPLFVBQ2QsRUFBTyxPQUFTLEVBRWxCLE9BQU8sRUFFVCxTQUFTLEdBQWUsQ0FBQyxFQUFRLENBQy9CLElBQUksRUFBVyxFQUFhLEdBQU8sRUFBVSxHQUFPLEVBQVcsRUFBUyxFQUV4RSxHQURBLEVBQUssRUFBTyxNQUFNLFdBQVcsRUFBTyxRQUFRLEVBQ3hDLElBQU8sR0FDVCxNQUFPLEdBQ1QsR0FBSSxFQUFPLE1BQVEsS0FDakIsR0FBVyxFQUFRLCtCQUErQixFQUdwRCxHQURBLEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLEVBQzFDLElBQU8sR0FDVCxFQUFhLEdBQ2IsRUFBSyxFQUFPLE1BQU0sYUFBYSxFQUFPLFFBQVEsVUFDckMsSUFBTyxHQUNoQixFQUFVLEdBQ1YsRUFBWSxLQUNaLEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLE1BRTlDLEdBQVksSUFHZCxHQURBLEVBQVksRUFBTyxTQUNmLEVBQVksQ0FDZCxFQUNFLEdBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLFFBQ3ZDLElBQU8sR0FBSyxJQUFPLElBQzVCLEdBQUksRUFBTyxTQUFXLEVBQU8sT0FDM0IsRUFBVSxFQUFPLE1BQU0sTUFBTSxFQUFXLEVBQU8sUUFBUSxFQUN2RCxFQUFLLEVBQU8sTUFBTSxhQUFhLEVBQU8sUUFBUSxNQUU5QyxJQUFXLEVBQVEsb0RBQW9ELE1BRXBFLENBQ0wsTUFBTyxJQUFPLElBQU0sR0FBYSxDQUFFLEVBQUcsQ0FDcEMsR0FBSSxJQUFPLEdBQ1QsSUFBSyxFQUFTLENBRVosR0FEQSxFQUFZLEVBQU8sTUFBTSxNQUFNLEVBQVksRUFBRyxFQUFPLFNBQVcsQ0FBQyxHQUM1RCxJQUFtQixLQUFLLENBQVMsRUFDcEMsR0FBVyxFQUFRLGlEQUFpRCxFQUV0RSxFQUFVLEdBQ1YsRUFBWSxFQUFPLFNBQVcsTUFFOUIsSUFBVyxFQUFRLDZDQUE2QyxFQUdwRSxFQUFLLEVBQU8sTUFBTSxhQUFhLEVBQU8sUUFBUSxFQUdoRCxHQURBLEVBQVUsRUFBTyxNQUFNLE1BQU0sRUFBVyxFQUFPLFFBQVEsRUFDbkQsSUFBd0IsS0FBSyxDQUFPLEVBQ3RDLEdBQVcsRUFBUSxxREFBcUQsRUFHNUUsR0FBSSxJQUFZLElBQWdCLEtBQUssQ0FBTyxFQUMxQyxHQUFXLEVBQVEsNENBQThDLENBQU8sRUFFMUUsR0FBSSxDQUNGLEVBQVUsbUJBQW1CLENBQU8sUUFDN0IsRUFBUCxDQUNBLEdBQVcsRUFBUSwwQkFBNEIsQ0FBTyxFQUV4RCxHQUFJLEVBQ0YsRUFBTyxJQUFNLFVBQ0osR0FBa0IsS0FBSyxFQUFPLE9BQVEsQ0FBUyxFQUN4RCxFQUFPLElBQU0sRUFBTyxPQUFPLEdBQWEsVUFDL0IsSUFBYyxJQUN2QixFQUFPLElBQU0sSUFBTSxVQUNWLElBQWMsS0FDdkIsRUFBTyxJQUFNLHFCQUF1QixNQUVwQyxJQUFXLEVBQVEsMEJBQTRCLEVBQVksR0FBRyxFQUVoRSxNQUFPLEdBRVQsU0FBUyxHQUFrQixDQUFDLEVBQVEsQ0FDbEMsSUFBSSxFQUFXLEVBRWYsR0FEQSxFQUFLLEVBQU8sTUFBTSxXQUFXLEVBQU8sUUFBUSxFQUN4QyxJQUFPLEdBQ1QsTUFBTyxHQUNULEdBQUksRUFBTyxTQUFXLEtBQ3BCLEdBQVcsRUFBUSxtQ0FBbUMsRUFFeEQsRUFBSyxFQUFPLE1BQU0sYUFBYSxFQUFPLFFBQVEsRUFDOUMsRUFBWSxFQUFPLFNBQ25CLE1BQU8sSUFBTyxJQUFNLEdBQWEsQ0FBRSxJQUFNLEdBQWtCLENBQUUsRUFDM0QsRUFBSyxFQUFPLE1BQU0sYUFBYSxFQUFPLFFBQVEsRUFFaEQsR0FBSSxFQUFPLFdBQWEsRUFDdEIsR0FBVyxFQUFRLDREQUE0RCxFQUdqRixPQURBLEVBQU8sT0FBUyxFQUFPLE1BQU0sTUFBTSxFQUFXLEVBQU8sUUFBUSxFQUN0RCxHQUVULFNBQVMsR0FBUyxDQUFDLEVBQVEsQ0FDekIsSUFBSSxFQUFXLEVBQU8sRUFFdEIsR0FEQSxFQUFLLEVBQU8sTUFBTSxXQUFXLEVBQU8sUUFBUSxFQUN4QyxJQUFPLEdBQ1QsTUFBTyxHQUNULEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLEVBQzlDLEVBQVksRUFBTyxTQUNuQixNQUFPLElBQU8sSUFBTSxHQUFhLENBQUUsSUFBTSxHQUFrQixDQUFFLEVBQzNELEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLEVBRWhELEdBQUksRUFBTyxXQUFhLEVBQ3RCLEdBQVcsRUFBUSwyREFBMkQsRUFHaEYsR0FEQSxFQUFRLEVBQU8sTUFBTSxNQUFNLEVBQVcsRUFBTyxRQUFRLEdBQ2hELEdBQWtCLEtBQUssRUFBTyxVQUFXLENBQUssRUFDakQsR0FBVyxFQUFRLHVCQUF5QixFQUFRLEdBQUcsRUFJekQsT0FGQSxFQUFPLE9BQVMsRUFBTyxVQUFVLEdBQ2pDLEdBQW9CLEVBQVEsR0FBTSxFQUFFLEVBQzdCLEdBRVQsU0FBUyxFQUFXLENBQUMsRUFBUSxFQUFjLEVBQWEsRUFBYSxFQUFjLENBQ2pGLElBQUksRUFBa0IsRUFBbUIsRUFBdUIsRUFBZSxFQUFHLEVBQVksR0FBTyxFQUFhLEdBQU8sRUFBVyxFQUFjLEVBQVUsRUFBTyxFQUFZLEVBQy9LLEdBQUksRUFBTyxXQUFhLEtBQ3RCLEVBQU8sU0FBUyxPQUFRLENBQU0sRUFPaEMsR0FMQSxFQUFPLElBQU0sS0FDYixFQUFPLE9BQVMsS0FDaEIsRUFBTyxLQUFPLEtBQ2QsRUFBTyxPQUFTLEtBQ2hCLEVBQW1CLEVBQW9CLEVBQXdCLE1BQXNCLEdBQWUsTUFBcUIsRUFDckgsR0FDRixHQUFJLEdBQW9CLEVBQVEsR0FBTSxFQUFFLEdBRXRDLEdBREEsRUFBWSxHQUNSLEVBQU8sV0FBYSxFQUN0QixFQUFlLFVBQ04sRUFBTyxhQUFlLEVBQy9CLEVBQWUsVUFDTixFQUFPLFdBQWEsRUFDN0IsRUFBZSxJQUlyQixHQUFJLElBQWlCLEVBQ25CLE1BQU8sSUFBZ0IsQ0FBTSxHQUFLLElBQW1CLENBQU0sRUFDekQsR0FBSSxHQUFvQixFQUFRLEdBQU0sRUFBRSxHQUd0QyxHQUZBLEVBQVksR0FDWixFQUF3QixFQUNwQixFQUFPLFdBQWEsRUFDdEIsRUFBZSxVQUNOLEVBQU8sYUFBZSxFQUMvQixFQUFlLFVBQ04sRUFBTyxXQUFhLEVBQzdCLEVBQWUsT0FHakIsR0FBd0IsR0FJOUIsR0FBSSxFQUNGLEVBQXdCLEdBQWEsRUFFdkMsR0FBSSxJQUFpQixHQUFLLE1BQXNCLEVBQWEsQ0FDM0QsR0FBSSxNQUFvQixHQUFlLE1BQXFCLEVBQzFELEVBQWEsTUFFYixHQUFhLEVBQWUsRUFHOUIsR0FEQSxFQUFjLEVBQU8sU0FBVyxFQUFPLFVBQ25DLElBQWlCLEVBQ25CLEdBQUksSUFBMEIsSUFBa0IsRUFBUSxDQUFXLEdBQUssSUFBaUIsRUFBUSxFQUFhLENBQVUsSUFBTSxJQUFtQixFQUFRLENBQVUsRUFDakssRUFBYSxPQUNSLENBQ0wsR0FBSSxHQUFxQixJQUFnQixFQUFRLENBQVUsR0FBSyxJQUF1QixFQUFRLENBQVUsR0FBSyxJQUF1QixFQUFRLENBQVUsRUFDckosRUFBYSxXQUNKLElBQVUsQ0FBTSxHQUV6QixHQURBLEVBQWEsR0FDVCxFQUFPLE1BQVEsTUFBUSxFQUFPLFNBQVcsS0FDM0MsR0FBVyxFQUFRLDJDQUEyQyxVQUV2RCxJQUFnQixFQUFRLEVBQVksTUFBb0IsQ0FBVyxHQUU1RSxHQURBLEVBQWEsR0FDVCxFQUFPLE1BQVEsS0FDakIsRUFBTyxJQUFNLElBR2pCLEdBQUksRUFBTyxTQUFXLEtBQ3BCLEVBQU8sVUFBVSxFQUFPLFFBQVUsRUFBTyxlQUdwQyxJQUFpQixFQUMxQixFQUFhLEdBQXlCLElBQWtCLEVBQVEsQ0FBVyxFQUcvRSxHQUFJLEVBQU8sTUFBUSxNQUNqQixHQUFJLEVBQU8sU0FBVyxLQUNwQixFQUFPLFVBQVUsRUFBTyxRQUFVLEVBQU8sZUFFbEMsRUFBTyxNQUFRLElBQUssQ0FDN0IsR0FBSSxFQUFPLFNBQVcsTUFBUSxFQUFPLE9BQVMsU0FDNUMsR0FBVyxFQUFRLG9FQUFzRSxFQUFPLEtBQU8sR0FBRyxFQUU1RyxJQUFLLEVBQVksRUFBRyxFQUFlLEVBQU8sY0FBYyxPQUFRLEVBQVksRUFBYyxHQUFhLEVBRXJHLEdBREEsRUFBUSxFQUFPLGNBQWMsR0FDekIsRUFBTSxRQUFRLEVBQU8sTUFBTSxFQUFHLENBR2hDLEdBRkEsRUFBTyxPQUFTLEVBQU0sVUFBVSxFQUFPLE1BQU0sRUFDN0MsRUFBTyxJQUFNLEVBQU0sSUFDZixFQUFPLFNBQVcsS0FDcEIsRUFBTyxVQUFVLEVBQU8sUUFBVSxFQUFPLE9BRTNDLGVBR0ssRUFBTyxNQUFRLElBQUssQ0FDN0IsR0FBSSxHQUFrQixLQUFLLEVBQU8sUUFBUSxFQUFPLE1BQVEsWUFBYSxFQUFPLEdBQUcsRUFDOUUsRUFBUSxFQUFPLFFBQVEsRUFBTyxNQUFRLFlBQVksRUFBTyxTQUNwRCxDQUNMLEVBQVEsS0FDUixFQUFXLEVBQU8sUUFBUSxNQUFNLEVBQU8sTUFBUSxZQUMvQyxJQUFLLEVBQVksRUFBRyxFQUFlLEVBQVMsT0FBUSxFQUFZLEVBQWMsR0FBYSxFQUN6RixHQUFJLEVBQU8sSUFBSSxNQUFNLEVBQUcsRUFBUyxHQUFXLElBQUksTUFBTSxJQUFNLEVBQVMsR0FBVyxJQUFLLENBQ25GLEVBQVEsRUFBUyxHQUNqQixPQUlOLElBQUssRUFDSCxHQUFXLEVBQVEsaUJBQW1CLEVBQU8sSUFBTSxHQUFHLEVBRXhELEdBQUksRUFBTyxTQUFXLE1BQVEsRUFBTSxPQUFTLEVBQU8sS0FDbEQsR0FBVyxFQUFRLGdDQUFrQyxFQUFPLElBQU0sd0JBQTBCLEVBQU0sS0FBTyxXQUFhLEVBQU8sS0FBTyxHQUFHLEVBRXpJLElBQUssRUFBTSxRQUFRLEVBQU8sT0FBUSxFQUFPLEdBQUcsRUFDMUMsR0FBVyxFQUFRLGdDQUFrQyxFQUFPLElBQU0sZ0JBQWdCLFVBRWxGLEVBQU8sT0FBUyxFQUFNLFVBQVUsRUFBTyxPQUFRLEVBQU8sR0FBRyxFQUNyRCxFQUFPLFNBQVcsS0FDcEIsRUFBTyxVQUFVLEVBQU8sUUFBVSxFQUFPLE9BSS9DLEdBQUksRUFBTyxXQUFhLEtBQ3RCLEVBQU8sU0FBUyxRQUFTLENBQU0sRUFFakMsT0FBTyxFQUFPLE1BQVEsTUFBUSxFQUFPLFNBQVcsTUFBUSxFQUUxRCxTQUFTLEdBQVksQ0FBQyxFQUFRLENBQzVCLElBQUksRUFBZ0IsRUFBTyxTQUFVLEVBQVcsRUFBZSxFQUFlLEVBQWdCLEdBQU8sRUFDckcsRUFBTyxRQUFVLEtBQ2pCLEVBQU8sZ0JBQWtCLEVBQU8sT0FDaEMsRUFBTyxPQUF5QixPQUFPLE9BQU8sSUFBSSxFQUNsRCxFQUFPLFVBQTRCLE9BQU8sT0FBTyxJQUFJLEVBQ3JELE9BQVEsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsS0FBTyxFQUFHLENBRzVELEdBRkEsR0FBb0IsRUFBUSxHQUFNLEVBQUUsRUFDcEMsRUFBSyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsRUFDeEMsRUFBTyxXQUFhLEdBQUssSUFBTyxHQUNsQyxNQUVGLEVBQWdCLEdBQ2hCLEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLEVBQzlDLEVBQVksRUFBTyxTQUNuQixNQUFPLElBQU8sSUFBTSxHQUFhLENBQUUsRUFDakMsRUFBSyxFQUFPLE1BQU0sYUFBYSxFQUFPLFFBQVEsRUFJaEQsR0FGQSxFQUFnQixFQUFPLE1BQU0sTUFBTSxFQUFXLEVBQU8sUUFBUSxFQUM3RCxFQUFnQixDQUFDLEVBQ2IsRUFBYyxPQUFTLEVBQ3pCLEdBQVcsRUFBUSw4REFBOEQsRUFFbkYsTUFBTyxJQUFPLEVBQUcsQ0FDZixNQUFPLEdBQWUsQ0FBRSxFQUN0QixFQUFLLEVBQU8sTUFBTSxhQUFhLEVBQU8sUUFBUSxFQUVoRCxHQUFJLElBQU8sR0FBSSxDQUNiLEVBQ0UsR0FBSyxFQUFPLE1BQU0sYUFBYSxFQUFPLFFBQVEsUUFDdkMsSUFBTyxJQUFNLEdBQU8sQ0FBRSxHQUMvQixNQUVGLEdBQUksR0FBTyxDQUFFLEVBQ1gsTUFDRixFQUFZLEVBQU8sU0FDbkIsTUFBTyxJQUFPLElBQU0sR0FBYSxDQUFFLEVBQ2pDLEVBQUssRUFBTyxNQUFNLGFBQWEsRUFBTyxRQUFRLEVBRWhELEVBQWMsS0FBSyxFQUFPLE1BQU0sTUFBTSxFQUFXLEVBQU8sUUFBUSxDQUFDLEVBRW5FLEdBQUksSUFBTyxFQUNULElBQWMsQ0FBTSxFQUN0QixHQUFJLEdBQWtCLEtBQUssSUFBbUIsQ0FBYSxFQUN6RCxJQUFrQixHQUFlLEVBQVEsRUFBZSxDQUFhLE1BRXJFLEtBQWEsRUFBUSwrQkFBaUMsRUFBZ0IsR0FBRyxFQUk3RSxHQURBLEdBQW9CLEVBQVEsR0FBTSxFQUFFLEVBQ2hDLEVBQU8sYUFBZSxHQUFLLEVBQU8sTUFBTSxXQUFXLEVBQU8sUUFBUSxJQUFNLElBQU0sRUFBTyxNQUFNLFdBQVcsRUFBTyxTQUFXLENBQUMsSUFBTSxJQUFNLEVBQU8sTUFBTSxXQUFXLEVBQU8sU0FBVyxDQUFDLElBQU0sR0FDeEwsRUFBTyxVQUFZLEVBQ25CLEdBQW9CLEVBQVEsR0FBTSxFQUFFLFVBQzNCLEVBQ1QsR0FBVyxFQUFRLGlDQUFpQyxFQUl0RCxHQUZBLEdBQVksRUFBUSxFQUFPLFdBQWEsRUFBRyxJQUFtQixHQUFPLEVBQUksRUFDekUsR0FBb0IsRUFBUSxHQUFNLEVBQUUsRUFDaEMsRUFBTyxpQkFBbUIsSUFBOEIsS0FBSyxFQUFPLE1BQU0sTUFBTSxFQUFlLEVBQU8sUUFBUSxDQUFDLEVBQ2pILElBQWEsRUFBUSxrREFBa0QsRUFHekUsR0FEQSxFQUFPLFVBQVUsS0FBSyxFQUFPLE1BQU0sRUFDL0IsRUFBTyxXQUFhLEVBQU8sV0FBYSxJQUFzQixDQUFNLEVBQUcsQ0FDekUsR0FBSSxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsSUFBTSxHQUMvQyxFQUFPLFVBQVksRUFDbkIsR0FBb0IsRUFBUSxHQUFNLEVBQUUsRUFFdEMsT0FFRixHQUFJLEVBQU8sU0FBVyxFQUFPLE9BQVMsRUFDcEMsR0FBVyxFQUFRLHVEQUF1RCxNQUUxRSxRQUdKLFNBQVMsR0FBYSxDQUFDLEVBQU8sRUFBUyxDQUdyQyxHQUZBLEVBQVEsT0FBTyxDQUFLLEVBQ3BCLEVBQVUsR0FBVyxDQUFDLEVBQ2xCLEVBQU0sU0FBVyxFQUFHLENBQ3RCLEdBQUksRUFBTSxXQUFXLEVBQU0sT0FBUyxDQUFDLElBQU0sSUFBTSxFQUFNLFdBQVcsRUFBTSxPQUFTLENBQUMsSUFBTSxHQUN0RixHQUFTLEtBRVgsR0FBSSxFQUFNLFdBQVcsQ0FBQyxJQUFNLE1BQzFCLEVBQVEsRUFBTSxNQUFNLENBQUMsRUFHekIsSUFBSSxFQUFTLElBQUksSUFBUSxFQUFPLENBQU8sRUFDbkMsRUFBVSxFQUFNLFFBQVEsSUFBSSxFQUNoQyxHQUFJLElBQVksR0FDZCxFQUFPLFNBQVcsRUFDbEIsR0FBVyxFQUFRLG1DQUFtQyxFQUV4RCxFQUFPLE9BQVMsS0FDaEIsTUFBTyxFQUFPLE1BQU0sV0FBVyxFQUFPLFFBQVEsSUFBTSxHQUNsRCxFQUFPLFlBQWMsRUFDckIsRUFBTyxVQUFZLEVBRXJCLE1BQU8sRUFBTyxTQUFXLEVBQU8sT0FBUyxFQUN2QyxJQUFhLENBQU0sRUFFckIsT0FBTyxFQUFPLFVBRWhCLFNBQVMsR0FBUyxDQUFDLEVBQU8sRUFBVSxFQUFTLENBQzNDLEdBQUksSUFBYSxhQUFlLElBQWEsaUJBQW1CLElBQVksWUFDMUUsRUFBVSxFQUNWLEVBQVcsS0FFYixJQUFJLEVBQVksSUFBYyxFQUFPLENBQU8sRUFDNUMsVUFBVyxJQUFhLFdBQ3RCLE9BQU8sRUFFVCxRQUFTLEVBQVEsRUFBRyxFQUFTLEVBQVUsT0FBUSxFQUFRLEVBQVEsR0FBUyxFQUN0RSxFQUFTLEVBQVUsRUFBTSxFQUc3QixTQUFTLEdBQU0sQ0FBQyxFQUFPLEVBQVMsQ0FDOUIsSUFBSSxFQUFZLElBQWMsRUFBTyxDQUFPLEVBQzVDLEdBQUksRUFBVSxTQUFXLEVBQ3ZCLGVBQ1MsRUFBVSxTQUFXLEVBQzlCLE9BQU8sRUFBVSxHQUVuQixNQUFNLElBQUksR0FBVSwwREFBMEQsRUFVaEYsU0FBUyxHQUFrQixDQUFDLEVBQU0sQ0FDaEMsTUFBTSxFQUFVLEVBQUssTUFBTSxHQUFnQixFQUMzQyxJQUFLLEVBQ0gsTUFBTyxDQUNMLE9BQ0EsU0FBVSxDQUFDLENBQ2IsRUFFRixJQUFJLEVBQVMsSUFBSyxFQUFRLEdBQUksQ0FHNUIsT0FBUSxHQUNWLENBQUMsR0FBSyxDQUFDLEVBQ1AsU0FBZ0IsSUFBVyxXQUFhLE1BQU0sUUFBUSxDQUFNLEVBQUksRUFBUyxDQUFDLEVBQzFFLE1BQU0sRUFBVyxDQUFDLEVBQ2xCLEdBQUksRUFBTyxZQUNULEVBQVMsWUFBYyxFQUFPLFlBQVksU0FBUyxFQUVyRCxHQUFJLEVBQU8sTUFDVCxFQUFTLE1BQVEsRUFBTyxNQUFNLFNBQVMsRUFFekMsR0FBSSxFQUFPLE9BQ1QsRUFBUyxPQUFTLEVBQU8sT0FFM0IsTUFBTyxDQUNMLEtBQU0sRUFBSyxNQUFNLEVBQVEsR0FBRyxNQUFNLEVBQ2xDLFVBQ0YsRUFpQ0YsU0FBUyxHQUFpQixDQUFDLEVBQU0sQ0FDL0IsTUFBTSxFQUFjLElBQVksQ0FBSSxFQUM5QixFQUFvQixJQUFtQixDQUFXLEVBQ2xELEVBQWtCLElBQWtCLEVBQWtCLElBQUksRUFDMUQsRUFBVSxHQUFjLEVBQWtCLE9BQVEsRUFBZ0IsU0FBUyxFQUVqRixPQURBLEVBQU8sSUFBZ0IsRUFBZ0IsSUFBSSxFQUNwQyxDQUNMLE9BQ0EsTUFBTyxFQUFrQixNQUN6QixPQUFRLENBQ1YsRUFpQkYsU0FBUyxHQUFvQixDQUFDLEVBQU0sQ0FDbEMsTUFBTSxFQUFZLElBQWtCLENBQUksRUFHeEMsT0FGQSxJQUFNLEVBQ04sSUFBYSxFQUFVLFFBQVUsQ0FBQyxDQUFDLEVBQzVCLEVBRVQsZUFBZSxHQUFPLENBQUMsRUFBTSxFQUFjLENBQ3pDLElBQVksRUFDWixFQUFPLElBQXFCLENBQUksRUFBRSxLQUNsQyxHQUFJLENBQ0YsTUFBTSxJQUFtQixDQUFJLFFBQ3RCLEVBQVAsQ0FDQSxHQUFJLEdBQWdCLEtBQVksT0FBSSxFQUFhLGVBQy9DLE1BQU8sR0FFVCxNQUFNLEVBRVIsTUFBTyxHQThFVCxTQUFTLEdBQWUsQ0FBQyxFQUFZLEVBQVUsQ0FDN0MsT0FBTyxFQUFXLE9BQU8sUUFBUSxFQUFFLEtBQUssS0FBTSxDQUFRLEVBQUUsS0FBSyxRQUFTLDRCQUE0QixFQUFFLEtBQUssVUFBVyxFQUFFLEVBd0d4SCxTQUFTLEdBQVksQ0FBQyxFQUFVLENBQUMsRUFBRyxDQUNsQyxJQUFJLEVBQ0osSUFBSyxHQUFXLEtBQVksT0FBSSxFQUFRLGdCQUFrQixFQUFLLEVBQVEsaUJBQW1CLEtBQVksT0FBSSxFQUFHLFlBQWEsQ0FDeEgsSUFBSyxFQUFRLGVBQ1gsRUFBUSxlQUFpQixDQUFDLEVBRTVCLEVBQVEsZUFBZSxXQUFhLEVBQVEsV0FHOUMsR0FEQSxJQUF5QixDQUFPLEdBQzNCLEdBQVcsS0FBWSxPQUFJLEVBQVEsUUFBVSxFQUFRLFNBQVMsR0FDakUsRUFBUSxlQUFpQixHQUFNLEVBQVEsT0FBTyxrQkFDNUMsRUFBUSxjQUNWLFVBQ1MsRUFDVCxFQUFRLGVBQWlCLEdBQU0sUUFBUSxrQkFBa0IsRUFBUSxjQUFjLEVBRWpGLE1BQU0sU0FBaUIsSUFBWSxTQUFXLElBQWMsQ0FBTyxFQUFJLElBQWMsRUFDckYsSUFBYyxFQUFRLFFBQVEsRUFDOUIsSUFBWSxFQU1kLFNBQVMsR0FBVyxDQUFDLEVBQWEsRUFBUyxFQUFXLEVBQVcsQ0FDL0QsSUFBbUIsRUFBUyxDQUFXLEVBQ3ZDLElBQTJCLEVBQVMsRUFBVyxFQUFXLEVBQVEsS0FBSyxJQUFJLENBQUMsRUE3b0o5RSxNQUFNLEdBQU8sQ0FDWCxXQUFXLEVBQUcsQ0FDWixLQUFLLGFBQWUsT0FDcEIsS0FBSyxTQUFXLFVBQ2hCLEtBQUssZUFBaUIsR0FBUSxLQUFLLFNBQVUsRUFBRSxFQUMvQyxLQUFLLFdBQWEsVUFDbEIsS0FBSyxjQUFnQixHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsSUFBSyxDQUFDLEVBQzFELEtBQUssbUJBQXFCLEdBQVMsS0FBSyxhQUFjLEtBQUssUUFBUSxFQUNuRSxLQUFLLHFCQUF1QixHQUFTLEtBQUssZUFBZ0IsS0FBSyxRQUFRLEVBQ3ZFLEtBQUssb0JBQXNCLEdBQVMsS0FBSyxjQUFlLEtBQUssUUFBUSxFQUNyRSxLQUFLLGlCQUFtQixHQUFPLEtBQUssWUFBWSxFQUNoRCxLQUFLLG1CQUFxQixHQUFPLEtBQUssY0FBYyxFQUNwRCxLQUFLLGtCQUFvQixHQUFPLEtBQUssYUFBYSxFQUNsRCxLQUFLLFVBQVksR0FBTyxLQUFLLFVBQVUsRUFDdkMsS0FBSyxVQUFZLEdBQU8sS0FBSyxVQUFVLEVBQ3ZDLEtBQUssUUFBVSxPQUNmLEtBQUssVUFBWSxhQUNqQixLQUFLLFVBQVksT0FDakIsS0FBSyxRQUFVLE9BQ2YsS0FBSyxRQUFVLGFBQ2YsS0FBSyxLQUFPLE9BQ1osS0FBSyxLQUFPLE9BQ1osS0FBSyxTQUFXLE9BQ2hCLEtBQUssS0FBTyxPQUNaLEtBQUssZUFBaUIsVUFDdEIsS0FBSyxXQUFhLDZDQUNsQixLQUFLLFNBQVcsT0FDaEIsS0FBSyxrQkFBb0IsR0FDekIsS0FBSyxRQUFVLGFBQ2YsS0FBSyxXQUFhLGFBQ2xCLEtBQUssV0FBYSxhQUNsQixLQUFLLGNBQWdCLGFBQ3JCLEtBQUssaUJBQW1CLGFBQ3hCLEtBQUssV0FBYSxhQUNsQixLQUFLLG9CQUFzQixRQUMzQixLQUFLLFlBQWMsYUFDbkIsS0FBSyxTQUFXLGFBQ2hCLEtBQUssZUFBaUIsYUFDdEIsS0FBSyxlQUFpQixhQUN0QixLQUFLLFlBQWMsYUFDbkIsS0FBSyxnQkFBa0IsYUFDdkIsS0FBSyxpQkFBbUIsYUFDeEIsS0FBSyxvQkFBc0IsYUFDM0IsS0FBSyxlQUFpQixhQUN0QixLQUFLLGNBQWdCLGFBQ3JCLEtBQUssZ0JBQWtCLGFBQ3ZCLEtBQUssYUFBZSxhQUNwQixLQUFLLGNBQWdCLGFBQ3JCLEtBQUssc0JBQXdCLE9BQzdCLEtBQUssbUJBQXFCLFVBQzFCLEtBQUssb0JBQXNCLFFBQzNCLEtBQUssZ0JBQWtCLGFBQ3ZCLEtBQUssbUJBQXFCLFFBQzFCLEtBQUssaUJBQW1CLGFBQ3hCLEtBQUssZ0JBQWtCLFVBQ3ZCLEtBQUssZ0JBQWtCLGFBQ3ZCLEtBQUssYUFBZSxhQUNwQixLQUFLLG1CQUFxQixRQUMxQixLQUFLLGNBQWdCLGFBQ3JCLEtBQUssa0JBQW9CLGFBQ3pCLEtBQUsscUJBQXVCLGFBQzVCLEtBQUssdUJBQXlCLFVBQzlCLEtBQUssc0JBQXdCLGFBQzdCLEtBQUssbUJBQXFCLGFBQzFCLEtBQUssVUFBWSxhQUNqQixLQUFLLGlCQUFtQixhQUN4QixLQUFLLG9CQUFzQixhQUMzQixLQUFLLGFBQWUsYUFDcEIsS0FBSyxnQkFBa0IsYUFDdkIsS0FBSyxlQUFpQixhQUN0QixLQUFLLGFBQWUsS0FBSyxtQkFDekIsS0FBSyxVQUFZLEtBQUssUUFDdEIsS0FBSyxXQUFhLFFBQ2xCLEtBQUssY0FBZ0IsVUFDckIsS0FBSyxlQUFpQixVQUV4QixZQUFZLEVBQUcsQ0FDYixJQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksRUFDNUMsS0FBSyxVQUFZLEdBQVEsS0FBSyxTQUFVLEVBQUUsRUFDMUMsS0FBSyxRQUFVLEtBQUssU0FDcEIsS0FBSyxZQUFjLEdBQVEsS0FBSyxRQUFTLEVBQUUsRUFDM0MsS0FBSyxTQUFXLEtBQUssUUFDckIsS0FBSyxlQUFpQixLQUFLLEtBQzNCLEtBQUssZUFBaUIsS0FBSyxVQUMzQixLQUFLLFlBQWMsS0FBSyxLQUN4QixLQUFLLGdCQUFrQixLQUFLLEtBQzVCLEtBQUssaUJBQW1CLEtBQUssU0FDN0IsS0FBSyxvQkFBc0IsS0FBSyxZQUNoQyxLQUFLLGVBQWlCLEtBQUssS0FDM0IsS0FBSyxjQUFnQixLQUFLLEtBQzFCLEtBQUssZ0JBQWtCLE9BQ3ZCLEtBQUssYUFBZSxPQUNwQixLQUFLLGNBQWdCLE9BQ3JCLEtBQUssUUFBVSxLQUFLLFNBQVcsT0FDL0IsS0FBSyxRQUFVLEtBQUssU0FBVyxVQUMvQixLQUFLLFFBQVUsS0FBSyxTQUFXLE9BQy9CLEtBQUssUUFBVSxLQUFLLFNBQVcsT0FDL0IsS0FBSyxRQUFVLEtBQUssU0FBVyxPQUMvQixLQUFLLFFBQVUsS0FBSyxTQUFXLE9BQy9CLEtBQUssUUFBVSxLQUFLLFNBQVcsT0FDL0IsS0FBSyxRQUFVLEtBQUssU0FBVyxPQUMvQixLQUFLLFFBQVUsS0FBSyxTQUFXLE9BQy9CLEtBQUssUUFBVSxLQUFLLFNBQVcsT0FDL0IsS0FBSyxTQUFXLEtBQUssVUFBWSxPQUNqQyxLQUFLLFNBQVcsS0FBSyxVQUFZLE9BQ2pDLFFBQVMsRUFBSSxFQUFHLEVBQUksS0FBSyxrQkFBbUIsSUFDMUMsS0FBSyxZQUFjLEdBQUssS0FBSyxZQUFjLElBQU0sR0FBTyxLQUFLLFNBQVcsRUFBRSxFQUU1RSxRQUFTLEVBQUksRUFBRyxFQUFJLEtBQUssa0JBQW1CLElBQzFDLEdBQUksS0FBSyxTQUNQLEtBQUssYUFBZSxHQUFLLEtBQUssYUFBZSxJQUFNLEdBQVEsS0FBSyxTQUFXLEdBQUksRUFBRSxNQUVqRixNQUFLLGFBQWUsR0FBSyxLQUFLLGFBQWUsSUFBTSxHQUFPLEtBQUssU0FBVyxHQUFJLEVBQUUsRUFHcEYsS0FBSyxnQkFBa0IsS0FBSyxrQkFBb0IsS0FBSyxTQUFXLFFBQVUsS0FBSyxnQkFDL0UsS0FBSyxhQUFrQixLQUFLLGNBQW1CLEtBQUssUUFDcEQsS0FBSyxhQUFrQixLQUFLLGNBQW1CLEtBQUssUUFDcEQsUUFBUyxFQUFJLEVBQUcsRUFBSSxLQUFLLGtCQUFtQixJQUMxQyxLQUFLLGNBQWdCLEdBQUssS0FBSyxjQUFnQixJQUFNLEtBQUssZ0JBRTVELFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBRyxJQUNyQixLQUFLLFVBQVksR0FBSyxLQUFLLFVBQVksSUFBTSxHQUFPLEtBQUssUUFBUyxDQUFFLElBQUssRUFBSSxFQUFJLEVBQUcsQ0FBQyxFQUNyRixLQUFLLGNBQWdCLEdBQUssS0FBSyxjQUFnQixJQUFNLEdBQU8sS0FBSyxRQUFTLENBQUUsSUFBSyxFQUFJLEVBQUksRUFBRyxDQUFDLEVBRS9GLEtBQUssUUFBVSxLQUFLLFFBQ3BCLEtBQUssV0FBYSxLQUFLLFFBQ3ZCLEtBQUssV0FBYSxLQUFLLFVBQ3ZCLEtBQUssY0FBZ0IsS0FBSyxRQUMxQixLQUFLLGlCQUFtQixLQUFLLFVBQzdCLEtBQUssV0FBYSxLQUFLLEtBQ3ZCLEtBQUssZ0JBQWtCLEdBQVEsS0FBSyxTQUFVLEVBQUUsRUFDaEQsS0FBSyxpQkFBbUIsR0FBUSxLQUFLLFNBQVUsRUFBRSxFQUNqRCxLQUFLLGdCQUFrQixHQUFPLEtBQUssU0FBVSxFQUFFLEVBQy9DLEtBQUssYUFBZSxLQUFLLFNBQ3pCLEtBQUssY0FBZ0IsS0FBSyxtQkFDMUIsS0FBSyxrQkFBb0IsS0FBSyxLQUM5QixLQUFLLHFCQUF1QixLQUFLLGtCQUNqQyxLQUFLLHNCQUF3QixLQUFLLGdCQUNsQyxLQUFLLG1CQUFxQixLQUFLLFFBQy9CLEtBQUssVUFBWSxHQUFRLEtBQUssUUFBUyxFQUFFLEVBQ3pDLEtBQUssaUJBQW1CLEtBQUssS0FDN0IsS0FBSyxvQkFBc0IsS0FBSyxVQUNoQyxLQUFLLGFBQWUsS0FBSyxTQUN6QixLQUFLLGdCQUFrQixHQUFPLEtBQUssYUFBYyxFQUFFLEVBQ25ELEtBQUssZUFBaUIsS0FBSyxhQUMzQixLQUFLLGdCQUFrQixLQUFLLGlCQUFtQixPQUMvQyxLQUFLLHFCQUF1QixLQUFLLHNCQUF3QixLQUFLLFVBQzlELEtBQUssZ0JBQWtCLEtBQUssaUJBQW1CLEtBQUssVUFBWSxLQUFLLGlCQUNyRSxLQUFLLFNBQVcsS0FBSyxVQUFZLEtBQUssUUFDdEMsS0FBSyxxQkFBdUIsS0FBSyxzQkFBd0IsS0FBSyxTQUM5RCxLQUFLLG9CQUFzQixLQUFLLHFCQUF1QixLQUFLLFlBQWMsS0FBSyxjQUMvRSxLQUFLLGNBQWdCLEtBQUssZUFBaUIsVUFDM0MsS0FBSyx5QkFBMkIsS0FBSywwQkFBNEIsS0FBSyxRQUN0RSxLQUFLLFlBQWMsS0FBSyxhQUFlLE9BQ3ZDLEtBQUssbUJBQXFCLEtBQUssbUJBQy9CLEtBQUssa0JBQW9CLE9BQ3pCLEtBQUssY0FBZ0IsS0FBSyxlQUFpQixLQUFLLGNBQ2hELEtBQUssZUFBaUIsS0FBSyxnQkFBa0IsS0FBSyxrQkFDbEQsS0FBSyxVQUFZLEtBQUssaUJBQ3RCLEtBQUssVUFBWSxLQUFLLGFBQ3RCLEtBQUssVUFBWSxLQUFLLGVBQ3RCLEtBQUssVUFBWSxHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsRUFBRyxDQUFDLEVBQ3BELEtBQUssVUFBWSxHQUFPLEtBQUssZUFBZ0IsQ0FBRSxFQUFHLEVBQUcsQ0FBQyxFQUN0RCxLQUFLLFVBQVksR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEdBQUksQ0FBQyxFQUNyRCxLQUFLLFVBQVksR0FBTyxLQUFLLGVBQWdCLENBQUUsRUFBRyxHQUFJLENBQUMsRUFDdkQsS0FBSyxVQUFZLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxHQUFJLENBQUMsRUFDckQsS0FBSyxVQUFZLEdBQU8sS0FBSyxlQUFnQixDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQ3ZELFFBQVMsRUFBSSxFQUFHLEVBQUksS0FBSyxrQkFBbUIsSUFDMUMsS0FBSyxNQUFRLEdBQUssS0FBSyxTQUFXLEdBRXBDLEtBQUssTUFBUSxLQUFLLEtBQ2xCLEtBQUssaUJBQW1CLEtBQUssa0JBQW9CLE9BQ2pELEtBQUssa0JBQW9CLEtBQUssbUJBQXFCLEtBQUssa0JBQ3hELEtBQUssbUJBQXFCLEtBQUssb0JBQXNCLE9BQ3JELEtBQUssb0JBQXNCLEtBQUsscUJBQXVCLEtBQUssVUFDNUQsS0FBSyxrQkFBb0IsS0FBSyxtQkFBcUIsT0FDbkQsS0FBSyxtQkFBcUIsS0FBSyxvQkFBc0IsS0FBSyxrQkFDMUQsS0FBSyxlQUFpQixLQUFLLGdCQUFrQixRQUM3QyxLQUFLLGVBQWlCLEtBQUssZ0JBQWtCLE1BQzdDLEtBQUssb0JBQXNCLEtBQUsscUJBQXVCLE1BQ3ZELEtBQUssb0JBQXNCLEtBQUsscUJBQXVCLFFBQ3ZELEtBQUssV0FBYSxLQUFLLFlBQWMsTUFDckMsS0FBSyxjQUFnQixLQUFLLGVBQWlCLEtBQUssYUFDaEQsS0FBSyxjQUFnQixLQUFLLGVBQWlCLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLENBQUUsQ0FBQyxFQUN6RixLQUFLLGNBQWdCLEtBQUssZUFBaUIsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUcsRUFBRyxDQUFDLEVBQzVGLEtBQUssY0FBZ0IsS0FBSyxlQUFpQixHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBRyxFQUFHLENBQUMsRUFDNUYsS0FBSyxrQkFBb0IsS0FBSyxtQkFBcUIsS0FBSyxpQkFDeEQsS0FBSyxrQkFBb0IsS0FBSyxtQkFBcUIsR0FBTyxLQUFLLGlCQUFrQixDQUFFLEVBQUcsR0FBSSxFQUFHLEdBQUksRUFBRyxFQUFHLENBQUMsRUFDeEcsS0FBSyxrQkFBb0IsS0FBSyxtQkFBcUIsR0FBTyxLQUFLLGlCQUFrQixDQUFFLEVBQUcsSUFBSyxFQUFHLElBQUssRUFBRyxHQUFJLENBQUMsRUFDM0csS0FBSyxrQkFBb0IsS0FBSyxtQkFBcUIsR0FBTyxLQUFLLGlCQUFrQixDQUFFLEVBQUcsSUFBSyxFQUFHLElBQUssRUFBRyxHQUFJLENBQUMsRUFDM0csS0FBSyxrQkFBb0IsS0FBSyxtQkFBcUIsR0FBTyxLQUFLLGFBQWEsRUFBSSxHQUFRLEtBQUssYUFBYSxFQUFJLEdBQU8sS0FBSyxhQUFhLEVBQ3ZJLEtBQUssc0JBQXdCLEtBQUssdUJBQXlCLEtBQUssaUJBQ2hFLEtBQUssc0JBQXdCLEtBQUssdUJBQXlCLEtBQUssaUJBQ2hFLEtBQUssc0JBQXdCLEtBQUssdUJBQXlCLEtBQUssaUJBQ2hFLEtBQUssaUNBQW1DLEtBQUssa0NBQW9DLEtBQUssbUJBQ3RGLEtBQUssaUNBQW1DLEtBQUssa0NBQW9DLEtBQUssbUJBQ3RGLEtBQUssa0JBQW9CLEtBQUssbUJBQXFCLEtBQUssaUJBQ3hELEtBQUssUUFBVSxDQUNiLGtCQUFtQixFQUFLLEtBQUssVUFBWSxLQUFZLE9BQUksRUFBRyxrQkFBb0IsS0FBSyxXQUNyRixhQUFjLEVBQUssS0FBSyxVQUFZLEtBQVksT0FBSSxFQUFHLGFBQWUsS0FBSyxpQkFDM0Usa0JBQW1CLEVBQUssS0FBSyxVQUFZLEtBQVksT0FBSSxFQUFHLGtCQUFvQixLQUFLLGlCQUNyRixrQkFBbUIsRUFBSyxLQUFLLFVBQVksS0FBWSxPQUFJLEVBQUcsa0JBQW9CLEtBQUssaUJBQ3JGLGlCQUFrQixFQUFLLEtBQUssVUFBWSxLQUFZLE9BQUksRUFBRyxpQkFBbUIsS0FBSyxpQkFDbkYsaUJBQWtCLEVBQUssS0FBSyxVQUFZLEtBQVksT0FBSSxFQUFHLGlCQUFtQixLQUFLLGlCQUNuRixrQkFBbUIsRUFBSyxLQUFLLFVBQVksS0FBWSxPQUFJLEVBQUcsa0JBQW9CLEtBQUssaUJBQ3JGLGtCQUFtQixFQUFLLEtBQUssVUFBWSxLQUFZLE9BQUksRUFBRyxrQkFBb0IsS0FBSyxpQkFDckYsaUJBQWtCLEVBQUssS0FBSyxVQUFZLEtBQVksT0FBSSxFQUFHLGlCQUFtQixLQUFLLGlCQUNuRixpQkFBa0IsRUFBSyxLQUFLLFVBQVksS0FBWSxPQUFJLEVBQUcsaUJBQW1CLEtBQUssaUJBQ25GLG1CQUFvQixFQUFLLEtBQUssVUFBWSxLQUFZLE9BQUksRUFBRyxtQkFBcUIsOEVBQ3BGLEVBQ0EsS0FBSyxzQkFBd0IsS0FBSyx1QkFBeUIsS0FBSyxhQUNoRSxLQUFLLHVCQUF5QixLQUFLLHdCQUEwQixLQUFLLG1CQUNsRSxLQUFLLHNCQUF3QixLQUFLLHVCQUF5QixJQUMzRCxLQUFLLHFCQUF1QixLQUFLLHNCQUF3QixLQUFLLGlCQUM5RCxLQUFLLGNBQWdCLEtBQUssZUFBaUIsS0FBSyxVQUNoRCxLQUFLLHdCQUEwQixLQUFLLHlCQUEyQixLQUFLLG9CQUNwRSxLQUFLLG1CQUFxQixLQUFLLG9CQUFzQixLQUFLLGVBQzFELEtBQUssS0FBTyxHQUFPLEtBQUssS0FBTSxFQUFFLEdBQUssS0FBSyxhQUMxQyxLQUFLLEtBQU8sS0FBSyxNQUFRLEtBQUssZUFDOUIsS0FBSyxLQUFPLEtBQUssTUFBUSxLQUFLLGNBQzlCLEtBQUssS0FBTyxLQUFLLE1BQVEsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEdBQUksQ0FBQyxFQUM3RCxLQUFLLEtBQU8sS0FBSyxNQUFRLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxHQUFJLENBQUMsRUFDN0QsS0FBSyxLQUFPLEtBQUssTUFBUSxHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQzdELEtBQUssS0FBTyxLQUFLLE1BQVEsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEVBQUcsQ0FBQyxFQUM1RCxLQUFLLEtBQU8sS0FBSyxNQUFRLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxHQUFJLENBQUMsRUFDN0QsS0FBSyxRQUFVLEtBQUssU0FBVyxHQUFPLEtBQUssSUFBSSxFQUMvQyxLQUFLLFFBQVUsS0FBSyxTQUFXLEdBQU8sS0FBSyxJQUFJLEVBQy9DLEtBQUssUUFBVSxLQUFLLFNBQVcsR0FBTyxLQUFLLElBQUksRUFDL0MsS0FBSyxRQUFVLEtBQUssU0FBVyxHQUFPLEtBQUssSUFBSSxFQUMvQyxLQUFLLFFBQVUsS0FBSyxTQUFXLEdBQU8sS0FBSyxJQUFJLEVBQy9DLEtBQUssUUFBVSxLQUFLLFNBQVcsR0FBTyxLQUFLLElBQUksRUFDL0MsS0FBSyxRQUFVLEtBQUssU0FBVyxHQUFPLEtBQUssSUFBSSxFQUMvQyxLQUFLLFFBQVUsS0FBSyxTQUFXLEdBQU8sS0FBSyxJQUFJLEVBQy9DLEtBQUssaUJBQW1CLEtBQUssa0JBQW9CLEtBQUssZUFDdEQsS0FBSyxnQkFBa0IsS0FBSyxpQkFDNUIsS0FBSyxnQkFBa0IsUUFDdkIsS0FBSyxnQkFBa0IsS0FBSyxpQkFDNUIsS0FBSyxnQkFBa0IsUUFDdkIsS0FBSyxnQkFBa0IsS0FBSyxpQkFDNUIsS0FBSyxnQkFBa0IsS0FBSyxpQkFDNUIsS0FBSyxnQkFBa0IsS0FBSyxpQkFDNUIsS0FBSyxnQkFBa0IsS0FBSyxpQkFDNUIsS0FBSyxjQUFnQixLQUFLLGVBQWlCLEtBQUssaUJBQ2hELEtBQUssbUJBQXFCLEtBQUssb0JBQXNCLEtBQUssYUFDMUQsS0FBSyxlQUFpQixLQUFLLFdBQWEsS0FBSyxtQkFDN0MsS0FBSyxpQkFBbUIsS0FBSyxrQkFBb0IsT0FDakQsS0FBSyxpQkFBbUIsS0FBSyxrQkFBb0IsS0FBSyxtQkFDdEQsS0FBSyxzQkFBd0IsS0FBSyx1QkFBeUIsS0FBSyxlQUNoRSxLQUFLLG9CQUFzQixLQUFLLHFCQUF1QixPQUN2RCxLQUFLLDRCQUE4QixLQUFLLDZCQUErQixJQUN2RSxLQUFLLDZCQUErQixLQUFLLDhCQUFnQyxJQUUzRSxTQUFTLENBQUMsRUFBVyxDQUNuQixVQUFXLElBQWMsU0FBVSxDQUNqQyxLQUFLLGFBQWEsRUFDbEIsT0FFRixNQUFNLEVBQU8sT0FBTyxLQUFLLENBQVMsRUFDbEMsRUFBSyxRQUFRLENBQUMsSUFBTSxDQUNsQixLQUFLLEdBQUssRUFBVSxHQUNyQixFQUNELEtBQUssYUFBYSxFQUNsQixFQUFLLFFBQVEsQ0FBQyxJQUFNLENBQ2xCLEtBQUssR0FBSyxFQUFVLEdBQ3JCLEVBRUwsQ0F1c0NBLE1BQU0sR0FBZ0IsQ0FDcEIsV0FBVyxDQUFDLEVBQWdCLEdBQU8sRUFBTSxDQUN2QyxLQUFLLE1BQVEsRUFDYixLQUFLLE1BQVEsRUFBTyxFQUFLLE9BQVMsRUFDbEMsS0FBSyxLQUFPLEVBQWdCLElBQU0sS0FBSyxRQUFVLElBQU0sS0FBSyxJQUFJLEVBRXBFLENBbTBCQSxNQUFNLEdBQVEsQ0FDWixXQUFXLENBQUMsRUFBTSxFQUFXLENBQUMsRUFBRyxDQUMvQixLQUFLLEtBQU8sRUFDWixLQUFLLFNBQVcsRUFDaEIsS0FBSyxLQUFPLFFBQ1osS0FBSyxLQUFPLElBQWUsQ0FBSSxFQUMvQixLQUFLLE1BQVEsS0FDYixNQUFNLEVBQU0sR0FBWSxFQUN4QixHQUFJLENBQ0YsS0FBSyxLQUFPLElBQVcsRUFBTSxDQUFHLFFBQ3pCLEVBQVAsQ0FDQSxLQUFLLEtBQU8sUUFDWixLQUFLLFlBQWMsRUFFckIsTUFBTSxFQUFXLElBQVcsS0FBSyxJQUFJLEVBQ3JDLEdBQU0sTUFBTSxRQUFVLEtBQUssSUFBSSxFQUMvQixLQUFLLEdBQUssRUFBUyxHQUNuQixLQUFLLFNBQVcsRUFBUyxTQUN6QixLQUFLLE9BQVMsRUFBUyxPQUN2QixLQUFLLE9BQU8sT0FBTyxHQUFLLEtBQUssR0FDN0IsS0FBSyxLQUFPLEVBQVMsS0FDckIsS0FBSyxNQUFNLEVBRWIsS0FBSyxFQUFHLENBQ04sSUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQ3BCLEdBQUksS0FBSyxZQUNQLE1BQU0sS0FBSyxZQUViLENBQUMsR0FBTSxFQUFLLEtBQUssSUFBSSxRQUFVLE1BQWdCLEVBQUcsS0FBSyxDQUFFLEVBQ3pELE1BQU0sRUFBVSxHQUFZLEVBRTVCLElBREMsRUFBSyxLQUFLLE9BQVMsTUFBZ0IsRUFBRyxLQUFLLEtBQU0sQ0FBTyxFQUNyRCxLQUFLLFNBQVMsTUFDaEIsQ0FBQyxHQUFNLEVBQUssS0FBSyxJQUFJLGtCQUFvQixNQUFnQixFQUFHLEtBQUssRUFBSSxLQUFLLFNBQVMsS0FBSyxFQUUxRixLQUFLLE9BQU8sTUFBTSxLQUFLLElBQUksT0FFdkIsT0FBTSxDQUFDLEVBQUssRUFBVSxDQUMxQixNQUFNLEtBQUssU0FBUyxLQUFLLEtBQUssS0FBTSxFQUFLLEVBQVUsSUFBSSxFQUV6RCxTQUFTLEVBQUcsQ0FDVixPQUFPLEtBQUssT0FFZCxPQUFPLEVBQUcsQ0FDUixPQUFPLEtBQUssS0FFaEIsS0F2c0hBLElBQ0EsSUFFQSxHQU1NLEdBUUEsR0FjQSxZQUF3QixDQUFDLEVBQVEsUUFBUyxDQUM5QyxJQUFJLEVBQWUsR0FBTyxNQUMxQixVQUFXLElBQVUsVUFFbkIsR0FEQSxFQUFRLEVBQU0sWUFBWSxFQUN0QixLQUFTLEdBQ1gsRUFBZSxHQUFPLGtCQUVSLElBQVUsU0FDMUIsRUFBZSxFQWNqQixHQVpBLEdBQU0sTUFBUSxJQUFNLEdBRXBCLEdBQU0sTUFBUSxJQUFNLEdBRXBCLEdBQU0sS0FBTyxJQUFNLEdBRW5CLEdBQU0sS0FBTyxJQUFNLEdBRW5CLEdBQU0sTUFBUSxJQUFNLEdBRXBCLEdBQU0sTUFBUSxJQUFNLEdBRWhCLEdBQWdCLEdBQU8sTUFDekIsR0FBTSxNQUFRLFFBQVEsTUFBUSxRQUFRLE1BQU0sS0FBSyxRQUFTLEdBQU8sT0FBTyxFQUFHLGVBQWUsRUFBSSxRQUFRLElBQUksS0FBSyxRQUFTLFdBQVksR0FBTyxPQUFPLENBQUMsRUFFckosR0FBSSxHQUFnQixHQUFPLE1BQ3pCLEdBQU0sTUFBUSxRQUFRLE1BQVEsUUFBUSxNQUFNLEtBQUssUUFBUyxHQUFPLE9BQU8sRUFBRyxlQUFlLEVBQUksUUFBUSxJQUFJLEtBQUssUUFBUyxXQUFZLEdBQU8sT0FBTyxDQUFDLEVBRXJKLEdBQUksR0FBZ0IsR0FBTyxLQUN6QixHQUFNLEtBQU8sUUFBUSxLQUFPLFFBQVEsS0FBSyxLQUFLLFFBQVMsR0FBTyxNQUFNLEVBQUcsZUFBZSxFQUFJLFFBQVEsSUFBSSxLQUFLLFFBQVMsV0FBWSxHQUFPLE1BQU0sQ0FBQyxFQUVoSixHQUFJLEdBQWdCLEdBQU8sS0FDekIsR0FBTSxLQUFPLFFBQVEsS0FBTyxRQUFRLEtBQUssS0FBSyxRQUFTLEdBQU8sTUFBTSxFQUFHLGtCQUFrQixFQUFJLFFBQVEsSUFBSSxLQUFLLFFBQVMsV0FBWSxHQUFPLE1BQU0sQ0FBQyxFQUVuSixHQUFJLEdBQWdCLEdBQU8sTUFDekIsR0FBTSxNQUFRLFFBQVEsTUFBUSxRQUFRLE1BQU0sS0FBSyxRQUFTLEdBQU8sT0FBTyxFQUFHLG1CQUFtQixFQUFJLFFBQVEsSUFBSSxLQUFLLFFBQVMsV0FBWSxHQUFPLE9BQU8sQ0FBQyxFQUV6SixHQUFJLEdBQWdCLEdBQU8sTUFDekIsR0FBTSxNQUFRLFFBQVEsTUFBUSxRQUFRLE1BQU0sS0FBSyxRQUFTLEdBQU8sT0FBTyxFQUFHLG1CQUFtQixFQUFJLFFBQVEsSUFBSSxLQUFLLFFBQVMsV0FBWSxHQUFPLE9BQU8sQ0FBQyxHQUdySixHQUFTLENBQUMsSUFBVSxDQUV4QixNQUFPLEtBRE0sWUFBTSxFQUFFLE9BQU8sUUFBUSxPQUNkLFFBRWxCLEdBQ0EsSUFBVSxDQUFDLElBQU0sQ0FDckIsSUFBSyxFQUNILE1BQU8sQ0FBQyxFQUFFLEVBR1osT0FEYSxJQUFtQixDQUFDLEVBQUUsUUFBUSxPQUFRLE1BQU0sRUFDN0MsTUFBTSxNQUFNLEdBRXBCLElBMEJBLElBQWUsQ0FBQyxJQUFRLENBRzVCLE9BRkEsSUFBOEIsRUFDUixXQUFVLFNBQVMsQ0FBRyxHQUd4QyxJQUFlLENBQUMsRUFBTSxJQUFZLENBQ3RDLElBQUksRUFDSixLQUFNLEVBQUssRUFBUSxZQUFjLEtBQVksT0FBSSxFQUFHLGNBQWdCLEdBQU8sQ0FDekUsTUFBTSxFQUFRLEVBQVEsY0FDdEIsR0FBSSxJQUFVLGNBQWdCLElBQVUsU0FDdEMsRUFBTyxJQUFhLENBQUksVUFDZixJQUFVLFFBQ25CLEVBQU8sSUFBbUIsQ0FBSSxFQUM5QixFQUFPLEVBQUssUUFBUSxLQUFNLE1BQU0sRUFBRSxRQUFRLEtBQU0sTUFBTSxFQUN0RCxFQUFPLEVBQUssUUFBUSxLQUFNLFVBQVUsRUFDcEMsRUFBTyxJQUFtQixDQUFJLEVBR2xDLE9BQU8sR0FFSCxHQUFpQixDQUFDLEVBQU0sSUFBWSxDQUN4QyxJQUFLLEVBQ0gsT0FBTyxFQUVULEdBQUksRUFBUSxnQkFDVixFQUFPLFdBQVUsU0FBUyxJQUFhLEVBQU0sQ0FBTyxFQUFHLEVBQVEsZUFBZSxFQUFFLFNBQVMsTUFFekYsR0FBTyxXQUFVLFNBQVMsSUFBYSxFQUFNLENBQU8sRUFBRyxDQUNyRCxZQUFhLENBQUMsT0FBTyxDQUN2QixDQUFDLEVBQUUsU0FBUyxFQUVkLE9BQU8sR0FFSCxJQUFzQixDQUFDLEVBQUcsSUFBWSxDQUMxQyxVQUFXLElBQU0sU0FDZixPQUFPLEdBQWUsRUFBRyxDQUFPLEVBRWxDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQU0sR0FBZSxFQUFHLENBQU8sQ0FBQyxHQUVqRCxJQUFZLENBQUMsSUFBUyxDQUMxQixPQUFPLEdBQWUsS0FBSyxDQUFJLEdBRTNCLElBQWMsQ0FBQyxJQUFTLENBQzVCLE9BQU8sRUFBSyxNQUFNLEVBQWMsR0FFNUIsSUFBcUIsQ0FBQyxJQUFNLENBQ2hDLE9BQU8sRUFBRSxRQUFRLFFBQVMsT0FBTyxHQUU3QixJQUFxQixDQUFDLElBQU0sQ0FDaEMsT0FBTyxFQUFFLFFBQVEsR0FBZ0IsTUFBTSxHQUVuQyxJQUFTLENBQUMsSUFBZ0IsQ0FDOUIsSUFBSSxFQUFNLEdBQ1YsR0FBSSxFQUNGLEVBQU0sT0FBTyxTQUFTLFNBQVcsS0FBTyxPQUFPLFNBQVMsS0FBTyxPQUFPLFNBQVMsU0FBVyxPQUFPLFNBQVMsT0FDMUcsRUFBTSxFQUFJLFdBQVcsTUFBTyxLQUFLLEVBQ2pDLEVBQU0sRUFBSSxXQUFXLE1BQU8sS0FBSyxFQUVuQyxPQUFPLEdBRUgsR0FBVyxDQUFDLElBQVEsSUFBUSxJQUFTLENBQUMsUUFBUyxPQUFRLEdBQUcsRUFBRSxTQUFTLE9BQU8sQ0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsRUFBSSxHQUFRLEdBQ2pILFlBQWlCLElBQUksRUFBUSxDQUNqQyxNQUFNLEVBQVksRUFBTyxPQUFPLENBQUMsSUFBVSxDQUN6QyxPQUFRLE1BQU0sQ0FBSyxFQUNwQixFQUNELE9BQU8sS0FBSyxJQUFJLEdBQUcsQ0FBUyxHQUV4QixZQUFpQixJQUFJLEVBQVEsQ0FDakMsTUFBTSxFQUFZLEVBQU8sT0FBTyxDQUFDLElBQVUsQ0FDekMsT0FBUSxNQUFNLENBQUssRUFDcEIsRUFDRCxPQUFPLEtBQUssSUFBSSxHQUFHLENBQVMsR0FFeEIsV0FBNEIsQ0FBQyxFQUFPLENBQ3hDLE1BQU0sRUFBWSxFQUFNLE1BQU0sS0FBSyxFQUM3QixFQUFTLENBQUMsRUFDaEIsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFVLE9BQVEsSUFBSyxDQUN6QyxJQUFJLEVBQVUsRUFBVSxHQUN4QixHQUFJLElBQVksS0FBTyxFQUFJLEdBQUssRUFBSSxFQUFJLEVBQVUsT0FBUSxDQUN4RCxNQUFNLEVBQWMsRUFBVSxFQUFJLEdBQzVCLEVBQVUsRUFBVSxFQUFJLEdBQzlCLEdBQUksSUFBa0IsRUFBYSxDQUFPLEVBQ3hDLEVBQVUsRUFBYyxJQUFNLEVBQzlCLElBQ0EsRUFBTyxJQUFJLEVBR2YsRUFBTyxLQUFLLElBQVcsQ0FBTyxDQUFDLEVBRWpDLE9BQU8sRUFBTyxLQUFLLEVBQUUsR0FFakIsSUFBa0IsQ0FBQyxFQUFRLElBQWMsQ0FDN0MsT0FBTyxLQUFLLElBQUksRUFBRyxFQUFPLE1BQU0sQ0FBUyxFQUFFLE9BQVMsQ0FBQyxHQUVqRCxJQUFvQixDQUFDLEVBQWEsSUFBWSxDQUNsRCxNQUFNLEVBQVksSUFBZ0IsRUFBYSxHQUFHLEVBQzVDLEVBQVksSUFBZ0IsRUFBUyxHQUFHLEVBQzlDLE9BQU8sSUFBYyxHQUFLLElBQWMsR0FFcEMsSUFBYSxDQUFDLElBQVUsQ0FDNUIsTUFBTSxFQUFhLElBQWdCLEVBQU8sR0FBRyxFQUM3QyxJQUFJLEVBQW1CLEdBQ3ZCLEdBQUksR0FBYyxFQUNoQixPQUFPLEVBRVQsR0FBSSxFQUFhLElBQU0sR0FBSyxFQUFNLFdBQVcsR0FBRyxFQUM5QyxFQUFRLEVBQU0sVUFBVSxDQUFDLEVBQ3pCLEVBQW1CLEdBRXJCLE1BQU0sRUFBUSxDQUFDLEdBQUcsQ0FBSyxFQUN2QixJQUFJLEVBQVEsRUFBTSxRQUFRLEdBQUcsRUFDekIsRUFBTyxFQUFNLFlBQVksR0FBRyxFQUNoQyxNQUFPLElBQVUsSUFBTSxJQUFTLElBQU0sSUFBVSxFQUM5QyxFQUFNLEdBQVMsSUFDZixFQUFNLEdBQVEsSUFDZCxFQUFRLEVBQU0sUUFBUSxHQUFHLEVBQ3pCLEVBQU8sRUFBTSxZQUFZLEdBQUcsRUFFOUIsR0FBSSxFQUNGLEVBQU0sUUFBUSxHQUFHLEVBRW5CLE9BQU8sRUFBTSxLQUFLLEVBQUUsR0FFaEIsSUFBb0IsSUFBTSxPQUFPLGdCQUF1QixPQUN4RCxJQUNBLEdBQVcsQ0FBQyxJQUFTLENBQ3pCLElBQUksRUFDSixTQUFVLEVBQUssRUFBSyxNQUFNLEdBQVUsSUFBTSxLQUFZLE9BQUksRUFBRyxTQUFXLEdBQUssR0FFekUsR0FBNEIsTUFBTyxFQUFNLElBQVksQ0FDekQsRUFBTyxNQUFNLEdBQVksRUFBTSxDQUFPLEVBQ3RDLE1BQU0sRUFBVSxTQUFTLGNBQWMsS0FBSyxFQUM1QyxFQUFRLFVBQVksRUFDcEIsRUFBUSxHQUFLLGFBQ2IsRUFBUSxNQUFNLFdBQWEsU0FDM0IsRUFBUSxNQUFNLFNBQVcsV0FDekIsRUFBUSxNQUFNLElBQU0sSUFDcEIsTUFBTSxFQUFPLFNBQVMsY0FBYyxNQUFNLEVBQzFDLEdBQVEsTUFBZ0IsRUFBSyxzQkFBc0IsWUFBYSxDQUFPLEVBQ3ZFLE1BQU0sRUFBTSxDQUFFLE1BQU8sRUFBUSxZQUFhLE9BQVEsRUFBUSxZQUFhLEVBRXZFLE9BREEsRUFBUSxPQUFPLEVBQ1IsR0FFSCxHQUFjLE1BQU8sRUFBTSxJQUFZLENBQzNDLElBQUssR0FBUyxDQUFJLEVBQ2hCLE9BQU8sRUFFVCxJQUFLLElBQWtCLElBQU0sRUFBUSxhQUNuQyxPQUFPLEVBQUssUUFBUSxJQUFZLDRDQUE0QyxFQUU5RSxNQUFRLFFBQVMsR0FBVSxnREFDM0IsT0FBTyxFQUFLLE1BQU0sRUFBYyxFQUFFLElBQ2hDLENBQUMsSUFBUyxHQUFTLENBQUksRUFBSTtBQUFBO0FBQUEsZ0JBRWY7QUFBQTtBQUFBLFlBRUYsUUFBUSxTQUNwQixFQUFFLEtBQUssRUFBRSxFQUFFLFFBQ1QsSUFDQSxDQUFDLEVBQUcsSUFBTSxFQUFNLGVBQWUsRUFBRyxDQUNoQyxhQUFjLEdBQ2QsWUFBYSxHQUNiLE9BQVEsSUFBa0IsRUFBSSxTQUFXLGVBQzNDLENBQUMsRUFBRSxRQUFRLE1BQU8sR0FBRyxFQUFFLFFBQVEsK0JBQWdDLEVBQUUsQ0FDbkUsR0FFSSxHQWFBLEdBQVcsQ0FBQyxFQUFLLElBQWEsRUFBVyxHQUFPLEVBQUssQ0FBRSxFQUFHLElBQUssRUFBRyxFQUFHLENBQUMsRUFBSSxHQUFPLEVBQUssQ0FBRSxFQUFHLElBQUssRUFBRyxHQUFJLENBQUMsRUFDeEcsSUFBaUMsVUFDakMsSUFBa0MsVUFDcEMsSUFBVSxNQUFNLENBQU0sQ0FDeEIsV0FBVyxFQUFHLENBQ1osS0FBSyxXQUFhLFVBQ2xCLEtBQUssYUFBZSxVQUNwQixLQUFLLGFBQWUsVUFDcEIsS0FBSyxjQUFnQixPQUNyQixLQUFLLGtCQUFvQixHQUN6QixLQUFLLFdBQWEsNkNBQ2xCLEtBQUssU0FBVyxPQUVsQixZQUFZLEVBQUcsQ0FDYixJQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksRUFBSSxFQUFJLEVBQUksRUF1RjVDLEdBdEZBLEtBQUssaUJBQW1CLEtBQUssbUJBQXFCLEtBQUssU0FBVyxPQUFTLFFBQzNFLEtBQUssZUFBaUIsS0FBSyxnQkFBa0IsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLElBQUssQ0FBQyxFQUNsRixLQUFLLGNBQWdCLEtBQUssZUFBaUIsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLElBQUssRUFBRyxDQUFFLENBQUMsRUFDckYsS0FBSyxtQkFBcUIsS0FBSyxvQkFBc0IsR0FBUyxLQUFLLGFBQWMsS0FBSyxRQUFRLEVBQzlGLEtBQUsscUJBQXVCLEtBQUssc0JBQXdCLEdBQVMsS0FBSyxlQUFnQixLQUFLLFFBQVEsRUFDcEcsS0FBSyxvQkFBc0IsS0FBSyxxQkFBdUIsR0FBUyxLQUFLLGNBQWUsS0FBSyxRQUFRLEVBQ2pHLEtBQUssZ0JBQWtCLEtBQUssaUJBQW1CLEdBQVMsS0FBSyxhQUFjLEtBQUssUUFBUSxFQUN4RixLQUFLLGFBQWUsS0FBSyxjQUFnQixVQUN6QyxLQUFLLGNBQWdCLEtBQUssZUFBaUIsT0FDM0MsS0FBSyxtQkFBcUIsS0FBSyxvQkFBc0IsR0FBTyxLQUFLLGNBQWMsRUFDL0UsS0FBSyxrQkFBb0IsS0FBSyxtQkFBcUIsR0FBTyxLQUFLLGFBQWEsRUFDNUUsS0FBSyxVQUFZLEtBQUssV0FBYSxHQUFPLEtBQUssVUFBVSxFQUN6RCxLQUFLLGVBQWlCLEtBQUssZ0JBQWtCLEdBQU8sS0FBSyxVQUFVLEVBQ25FLEtBQUssVUFBWSxLQUFLLFdBQWEsS0FBSyxpQkFDeEMsS0FBSyxRQUFVLEtBQUssU0FBVyxLQUFLLG9CQUNwQyxLQUFLLFFBQVUsS0FBSyxTQUFXLEtBQUssYUFDcEMsS0FBSyxRQUFVLEtBQUssU0FBVyxLQUFLLGFBQ3BDLEtBQUssV0FBYSxLQUFLLFlBQWMsS0FBSyxtQkFDMUMsS0FBSyxXQUFhLEtBQUssWUFBYyxLQUFLLGNBQzFDLEtBQUssY0FBZ0IsS0FBSyxlQUFpQixLQUFLLG9CQUNoRCxLQUFLLGlCQUFtQixLQUFLLGtCQUFvQixLQUFLLFVBQ3RELEtBQUssV0FBYSxLQUFLLFlBQWMsS0FBSyxrQkFDMUMsS0FBSyxvQkFBc0IsS0FBSyxzQkFBd0IsS0FBSyxTQUFXLEdBQU8sS0FBSyxlQUFnQixFQUFFLEVBQUksS0FBSyxnQkFDL0csS0FBSyxjQUFnQixLQUFLLGVBQWlCLEtBQUssaUJBQ2hELEtBQUssWUFBYyxLQUFLLGFBQWUsS0FBSyxtQkFDNUMsS0FBSyxTQUFXLEtBQUssVUFBWSxLQUFLLFFBQ3RDLEtBQUssZUFBaUIsS0FBSyxnQkFBa0IsS0FBSyxpQkFDbEQsS0FBSyxlQUFpQixLQUFLLGdCQUFrQixPQUM3QyxLQUFLLGlCQUFtQixLQUFLLGtCQUFvQixLQUFLLFNBQ3RELEtBQUssWUFBYyxLQUFLLGFBQWUsS0FBSyxVQUM1QyxLQUFLLGdCQUFrQixLQUFLLGlCQUFtQixLQUFLLFVBQ3BELEtBQUssb0JBQXNCLEtBQUsscUJBQXVCLEtBQUssWUFDNUQsS0FBSyxlQUFpQixLQUFLLGdCQUFrQixLQUFLLGVBQ2xELEtBQUssY0FBZ0IsS0FBSyxlQUFpQixLQUFLLGVBQ2hELEtBQUssc0JBQXdCLEtBQUssdUJBQXlCLEdBQU8sS0FBSyxlQUFnQixFQUFFLEVBQ3pGLEtBQUssbUJBQXFCLEtBQUssb0JBQXNCLEtBQUssZUFDMUQsS0FBSyxvQkFBc0IsS0FBSyxxQkFBdUIsR0FBTyxLQUFLLFNBQVMsRUFDNUUsS0FBSyxnQkFBa0IsS0FBSyxpQkFBbUIsS0FBSyxjQUNwRCxLQUFLLG1CQUFxQixLQUFLLG9CQUFzQixRQUNyRCxLQUFLLGdCQUFrQixLQUFLLGlCQUFtQixLQUFLLGVBQ3BELEtBQUssaUJBQW1CLEtBQUssa0JBQW9CLEtBQUssYUFDdEQsS0FBSyxnQkFBa0IsS0FBSyxpQkFBbUIsVUFDL0MsS0FBSyxnQkFBa0IsS0FBSyxpQkFBbUIsS0FBSyxtQkFDcEQsS0FBSyxhQUFlLEtBQUssY0FBZ0IsS0FBSyxhQUM5QyxLQUFLLHNCQUF3QixLQUFLLHVCQUF5QixLQUFLLGFBQ2hFLEtBQUssbUJBQXFCLEtBQUssb0JBQXNCLEdBQVEsS0FBSyxhQUFjLEVBQUUsRUFDbEYsS0FBSyxVQUFZLEtBQUssV0FBYSxZQUNuQyxLQUFLLGlCQUFtQixLQUFLLGtCQUFvQixZQUNqRCxLQUFLLG9CQUFzQixLQUFLLHFCQUF1QixPQUN2RCxLQUFLLGdCQUFrQixLQUFLLGlCQUFtQixVQUMvQyxLQUFLLGFBQWUsS0FBSyxjQUFnQixNQUN6QyxLQUFLLGVBQWlCLEtBQUssZ0JBQWtCLE1BQzdDLEtBQUssY0FBZ0IsS0FBSyxlQUFpQixLQUFLLFVBQ2hELEtBQUsscUJBQXVCLEtBQUssc0JBQXdCLEtBQUssVUFDOUQsS0FBSyxtQkFBcUIsS0FBSyxvQkFBc0IsS0FBSyxVQUMxRCxLQUFLLGNBQWdCLEtBQUssZUFBaUIsS0FBSyxpQkFDaEQsS0FBSyxrQkFBb0IsS0FBSyxtQkFBcUIsS0FBSyxVQUN4RCxLQUFLLHVCQUF5QixLQUFLLHdCQUEwQixVQUM3RCxLQUFLLGFBQWUsS0FBSyxjQUFnQixLQUFLLG1CQUM5QyxLQUFLLFVBQVksS0FBSyxXQUFhLEtBQUssUUFDeEMsS0FBSyxnQkFBa0IsS0FBSyxpQkFBbUIsS0FBSyxVQUNwRCxLQUFLLHFCQUF1QixLQUFLLHNCQUF3QixLQUFLLFVBQzlELEtBQUssZ0JBQWtCLEtBQUssaUJBQW1CLEtBQUssVUFBWSxLQUFLLGlCQUNyRSxLQUFLLFNBQVcsS0FBSyxVQUFZLEtBQUssUUFDdEMsS0FBSyxxQkFBdUIsS0FBSyxzQkFBd0IsS0FBSyxTQUM5RCxLQUFLLG9CQUFzQixLQUFLLHFCQUF1QixLQUFLLFlBQWMsS0FBSyxjQUMvRSxLQUFLLGNBQWdCLEtBQUssZUFBaUIsS0FBSyxjQUNoRCxLQUFLLHlCQUEyQixLQUFLLDBCQUE0QixLQUFLLFFBQ3RFLEtBQUssZ0JBQWtCLEtBQUssaUJBQW1CLEtBQUssV0FDcEQsS0FBSyxtQkFBcUIsS0FBSyxXQUMvQixLQUFLLGNBQWdCLEtBQUssZUFBaUIsS0FBSyxjQUNoRCxLQUFLLGVBQWlCLEtBQUssZ0JBQWtCLEtBQUssa0JBQ2xELEtBQUssZ0JBQWtCLEtBQUssaUJBQW1CLEtBQUssVUFDcEQsS0FBSyxrQkFBb0IsS0FBSyxVQUM5QixLQUFLLFFBQVUsS0FBSyxTQUFXLEtBQUssYUFDcEMsS0FBSyxRQUFVLEtBQUssU0FBVyxLQUFLLGVBQ3BDLEtBQUssUUFBVSxLQUFLLFNBQVcsS0FBSyxjQUNwQyxLQUFLLFFBQVUsS0FBSyxTQUFXLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxFQUFHLENBQUMsRUFDbEUsS0FBSyxRQUFVLEtBQUssU0FBVyxHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsRUFBRyxDQUFDLEVBQ2xFLEtBQUssUUFBVSxLQUFLLFNBQVcsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEVBQUcsQ0FBQyxFQUNsRSxLQUFLLFFBQVUsS0FBSyxTQUFXLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxHQUFJLENBQUMsRUFDbkUsS0FBSyxRQUFVLEtBQUssU0FBVyxHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQ25FLEtBQUssUUFBVSxLQUFLLFNBQVcsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLElBQUssRUFBRyxHQUFJLENBQUMsRUFDM0UsS0FBSyxRQUFVLEtBQUssU0FBVyxHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQ25FLEtBQUssU0FBVyxLQUFLLFVBQVksR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEdBQUksQ0FBQyxFQUNyRSxLQUFLLFNBQVcsS0FBSyxVQUFZLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxHQUFJLENBQUMsRUFDakUsS0FBSyxTQUNQLFFBQVMsRUFBSSxFQUFHLEVBQUksS0FBSyxrQkFBbUIsSUFDMUMsS0FBSyxTQUFXLEdBQUssR0FBTyxLQUFLLFNBQVcsR0FBSSxFQUFFLE1BR3BELFNBQVMsRUFBSSxFQUFHLEVBQUksS0FBSyxrQkFBbUIsSUFDMUMsS0FBSyxTQUFXLEdBQUssR0FBTyxLQUFLLFNBQVcsR0FBSSxFQUFFLEVBR3RELFFBQVMsRUFBSSxFQUFHLEVBQUksS0FBSyxrQkFBbUIsSUFDMUMsS0FBSyxZQUFjLEdBQUssS0FBSyxZQUFjLElBQU0sR0FBTyxLQUFLLFNBQVcsRUFBRSxFQUU1RSxRQUFTLEVBQUksRUFBRyxFQUFJLEtBQUssa0JBQW1CLElBQzFDLEdBQUksS0FBSyxTQUNQLEtBQUssYUFBZSxHQUFLLEtBQUssYUFBZSxJQUFNLEdBQVEsS0FBSyxTQUFXLEdBQUksRUFBRSxNQUVqRixNQUFLLGFBQWUsR0FBSyxLQUFLLGFBQWUsSUFBTSxHQUFPLEtBQUssU0FBVyxHQUFJLEVBQUUsRUFHcEYsS0FBSyxnQkFBa0IsS0FBSyxpQkFBbUIsS0FBSyxlQUNwRCxRQUFTLEVBQUksRUFBRyxFQUFJLEtBQUssa0JBQW1CLElBQzFDLEtBQUssY0FBZ0IsR0FBSyxLQUFLLGNBQWdCLElBQU0sS0FBSyxnQkFFNUQsTUFBTSxFQUFhLEtBQUssU0FBVyxHQUFLLEdBQ3hDLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBRyxJQUNyQixLQUFLLFVBQVksR0FBSyxLQUFLLFVBQVksSUFBTSxHQUFPLEtBQUssUUFBUyxDQUFFLEVBQUcsSUFBSyxFQUFHLElBQUssRUFBRyxHQUFjLEVBQUksRUFBSSxFQUFHLENBQUMsRUFDakgsS0FBSyxjQUFnQixHQUFLLEtBQUssY0FBZ0IsSUFBTSxHQUFPLEtBQUssUUFBUyxDQUFFLEVBQUcsSUFBSyxFQUFHLElBQUssRUFBRyxHQUFjLEVBQUksRUFBSSxFQUFHLENBQUMsRUE2RTNILEdBM0VBLEtBQUssVUFBWSxLQUFLLFdBQWEsS0FBSyxVQUN4QyxLQUFLLFVBQVksS0FBSyxXQUFhLEtBQUssYUFDeEMsS0FBSyxVQUFZLEtBQUssV0FBYSxLQUFLLGVBQ3hDLEtBQUssVUFBWSxLQUFLLFdBQWEsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEVBQUcsQ0FBQyxFQUN0RSxLQUFLLFVBQVksS0FBSyxXQUFhLEdBQU8sS0FBSyxlQUFnQixDQUFFLEVBQUcsRUFBRyxDQUFDLEVBQ3hFLEtBQUssVUFBWSxLQUFLLFdBQWEsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEdBQUksQ0FBQyxFQUN2RSxLQUFLLFVBQVksS0FBSyxXQUFhLEdBQU8sS0FBSyxlQUFnQixDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQ3pFLEtBQUssVUFBWSxLQUFLLFdBQWEsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEdBQUksQ0FBQyxFQUN2RSxLQUFLLFVBQVksS0FBSyxXQUFhLEdBQU8sS0FBSyxlQUFnQixDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQ3pFLEtBQUssS0FBTyxLQUFLLE1BQVEsS0FBSyxhQUM5QixLQUFLLEtBQU8sS0FBSyxNQUFRLEtBQUssZUFDOUIsS0FBSyxLQUFPLEtBQUssTUFBUSxLQUFLLGNBQzlCLEtBQUssS0FBTyxLQUFLLE1BQVEsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEdBQUksQ0FBQyxFQUM3RCxLQUFLLEtBQU8sS0FBSyxNQUFRLEdBQU8sS0FBSyxlQUFnQixDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQy9ELEtBQUssS0FBTyxLQUFLLE1BQVEsR0FBTyxLQUFLLGNBQWUsQ0FBRSxFQUFHLEdBQUksQ0FBQyxFQUM5RCxLQUFLLEtBQU8sS0FBSyxNQUFRLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxHQUFJLEVBQUcsR0FBSSxDQUFDLEVBQ3BFLEtBQUssS0FBTyxLQUFLLE1BQVEsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLElBQUssRUFBRyxHQUFJLENBQUMsRUFDckUsS0FBSyxLQUFPLEtBQUssTUFBUSxHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsSUFBSyxFQUFHLENBQUUsQ0FBQyxFQUNuRSxLQUFLLE1BQVEsS0FBSyxPQUFTLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxHQUFJLEVBQUcsR0FBSSxDQUFDLEVBQ3RFLEtBQUssTUFBUSxLQUFLLE9BQVMsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLElBQUssRUFBRyxHQUFJLENBQUMsRUFDdkUsS0FBSyxNQUFRLEtBQUssT0FBUyxHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsSUFBSyxFQUFHLEdBQUksQ0FBQyxFQUN2RSxLQUFLLGlCQUFtQixLQUFLLGtCQUFvQixPQUNqRCxLQUFLLGtCQUFvQixLQUFLLG1CQUFxQixLQUFLLGtCQUN4RCxLQUFLLG1CQUFxQixLQUFLLG9CQUFzQixPQUNyRCxLQUFLLG9CQUFzQixLQUFLLHFCQUF1QixLQUFLLFVBQzVELEtBQUssa0JBQW9CLEtBQUssbUJBQXFCLE9BQ25ELEtBQUssbUJBQXFCLEtBQUssb0JBQXNCLEtBQUssa0JBQzFELEtBQUssZUFBaUIsS0FBSyxnQkFBa0IsUUFDN0MsS0FBSyxlQUFpQixLQUFLLGdCQUFrQixNQUM3QyxLQUFLLG9CQUFzQixLQUFLLHFCQUF1QixNQUN2RCxLQUFLLG9CQUFzQixLQUFLLHFCQUF1QixRQUN2RCxLQUFLLFdBQWEsS0FBSyxZQUFjLE1BQ3JDLEtBQUssY0FBZ0IsS0FBSyxlQUFpQixLQUFLLGFBQ2hELEtBQUssY0FBZ0IsS0FBSyxlQUFpQixHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsRUFBRyxFQUFHLEVBQUcsRUFBRyxDQUFFLENBQUMsRUFDekYsS0FBSyxjQUFnQixLQUFLLGVBQWlCLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxHQUFJLEVBQUcsR0FBSSxFQUFHLEVBQUcsQ0FBQyxFQUM1RixLQUFLLGNBQWdCLEtBQUssZUFBaUIsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUcsRUFBRyxDQUFDLEVBQzVGLEtBQUssa0JBQW9CLEtBQUssbUJBQXFCLEtBQUssaUJBQ3hELEtBQUssa0JBQW9CLEtBQUssbUJBQXFCLEdBQU8sS0FBSyxpQkFBa0IsQ0FBRSxFQUFHLEdBQUksRUFBRyxHQUFJLEVBQUcsRUFBRyxDQUFDLEVBQ3hHLEtBQUssa0JBQW9CLEtBQUssbUJBQXFCLEdBQU8sS0FBSyxpQkFBa0IsQ0FBRSxFQUFHLElBQUssRUFBRyxJQUFLLEVBQUcsR0FBSSxDQUFDLEVBQzNHLEtBQUssa0JBQW9CLEtBQUssbUJBQXFCLEdBQU8sS0FBSyxpQkFBa0IsQ0FBRSxFQUFHLElBQUssRUFBRyxJQUFLLEVBQUcsR0FBSSxDQUFDLEVBQzNHLEtBQUssa0JBQW9CLEtBQUssbUJBQXFCLEdBQU8sS0FBSyxhQUFhLEVBQUksR0FBUSxLQUFLLGFBQWEsRUFBSSxHQUFPLEtBQUssYUFBYSxFQUN2SSxLQUFLLHNCQUF3QixLQUFLLHVCQUF5QixLQUFLLGlCQUNoRSxLQUFLLHNCQUF3QixLQUFLLHVCQUF5QixLQUFLLGlCQUNoRSxLQUFLLHNCQUF3QixLQUFLLHVCQUF5QixLQUFLLGlCQUNoRSxLQUFLLGlDQUFtQyxLQUFLLGtDQUFvQyxLQUFLLG1CQUN0RixLQUFLLGlDQUFtQyxLQUFLLGtDQUFvQyxLQUFLLG1CQUN0RixLQUFLLGtCQUFvQixLQUFLLG1CQUFxQixLQUFLLGlCQUN4RCxLQUFLLFFBQVUsQ0FDYixrQkFBbUIsRUFBSyxLQUFLLFVBQVksS0FBWSxPQUFJLEVBQUcsa0JBQW9CLEtBQUssV0FDckYsYUFBYyxFQUFLLEtBQUssVUFBWSxLQUFZLE9BQUksRUFBRyxhQUFlLEtBQUssaUJBQzNFLGtCQUFtQixFQUFLLEtBQUssVUFBWSxLQUFZLE9BQUksRUFBRyxrQkFBb0IsS0FBSyxpQkFDckYsa0JBQW1CLEVBQUssS0FBSyxVQUFZLEtBQVksT0FBSSxFQUFHLGtCQUFvQixLQUFLLGlCQUNyRixpQkFBa0IsRUFBSyxLQUFLLFVBQVksS0FBWSxPQUFJLEVBQUcsaUJBQW1CLEtBQUssaUJBQ25GLGlCQUFrQixFQUFLLEtBQUssVUFBWSxLQUFZLE9BQUksRUFBRyxpQkFBbUIsS0FBSyxpQkFDbkYsa0JBQW1CLEVBQUssS0FBSyxVQUFZLEtBQVksT0FBSSxFQUFHLGtCQUFvQixLQUFLLGlCQUNyRixrQkFBbUIsRUFBSyxLQUFLLFVBQVksS0FBWSxPQUFJLEVBQUcsa0JBQW9CLEtBQUssaUJBQ3JGLGlCQUFrQixFQUFLLEtBQUssVUFBWSxLQUFZLE9BQUksRUFBRyxpQkFBbUIsS0FBSyxpQkFDbkYsaUJBQWtCLEVBQUssS0FBSyxVQUFZLEtBQVksT0FBSSxFQUFHLGlCQUFtQixLQUFLLGlCQUNuRixtQkFBb0IsRUFBSyxLQUFLLFVBQVksS0FBWSxPQUFJLEVBQUcsbUJBQXFCLGlGQUNwRixFQUNBLEtBQUssc0JBQXdCLEtBQUssdUJBQXlCLEtBQUssYUFDaEUsS0FBSyx1QkFBeUIsS0FBSyx3QkFBMEIsS0FBSyxtQkFDbEUsS0FBSyxzQkFBd0IsS0FBSyx1QkFBeUIsSUFDM0QsS0FBSyxxQkFBdUIsS0FBSyxzQkFBd0IsS0FBSyxpQkFDOUQsS0FBSyxjQUFnQixLQUFLLGVBQWlCLEtBQUssVUFDaEQsS0FBSyx3QkFBMEIsS0FBSywwQkFBNEIsS0FBSyxTQUFXLEdBQU8sS0FBSyxlQUFnQixFQUFFLEVBQUksS0FBSyxnQkFDdkgsS0FBSyxtQkFBcUIsS0FBSyxvQkFBc0IsS0FBSyxlQUMxRCxLQUFLLEtBQU8sS0FBSyxNQUFRLEtBQUssYUFDOUIsS0FBSyxLQUFPLEtBQUssTUFBUSxLQUFLLGVBQzlCLEtBQUssS0FBTyxLQUFLLE1BQVEsS0FBSyxjQUM5QixLQUFLLEtBQU8sS0FBSyxNQUFRLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxHQUFJLENBQUMsRUFDN0QsS0FBSyxLQUFPLEtBQUssTUFBUSxHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQzdELEtBQUssS0FBTyxLQUFLLE1BQVEsR0FBTyxLQUFLLGFBQWMsQ0FBRSxFQUFHLEdBQUksQ0FBQyxFQUM3RCxLQUFLLEtBQU8sS0FBSyxNQUFRLEdBQU8sS0FBSyxhQUFjLENBQUUsRUFBRyxFQUFHLENBQUMsRUFDNUQsS0FBSyxLQUFPLEtBQUssTUFBUSxHQUFPLEtBQUssYUFBYyxDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQ3pELEtBQUssU0FDUCxLQUFLLEtBQU8sR0FBUSxLQUFLLEtBQU0sRUFBRSxFQUNqQyxLQUFLLEtBQU8sR0FBUSxLQUFLLEtBQU0sRUFBRSxFQUNqQyxLQUFLLEtBQU8sR0FBUSxLQUFLLEtBQU0sRUFBRSxFQUNqQyxLQUFLLEtBQU8sR0FBUSxLQUFLLEtBQU0sRUFBRSxFQUNqQyxLQUFLLEtBQU8sR0FBUSxLQUFLLEtBQU0sRUFBRSxFQUNqQyxLQUFLLEtBQU8sR0FBUSxLQUFLLEtBQU0sRUFBRSxFQUNqQyxLQUFLLEtBQU8sR0FBUSxLQUFLLEtBQU0sRUFBRSxFQUNqQyxLQUFLLEtBQU8sR0FBUSxLQUFLLEtBQU0sRUFBRSxNQUVqQyxNQUFLLEtBQU8sR0FBTyxLQUFLLEtBQU0sRUFBRSxFQUNoQyxLQUFLLEtBQU8sR0FBTyxLQUFLLEtBQU0sRUFBRSxFQUNoQyxLQUFLLEtBQU8sR0FBTyxLQUFLLEtBQU0sRUFBRSxFQUNoQyxLQUFLLEtBQU8sR0FBTyxLQUFLLEtBQU0sRUFBRSxFQUNoQyxLQUFLLEtBQU8sR0FBTyxLQUFLLEtBQU0sRUFBRSxFQUNoQyxLQUFLLEtBQU8sR0FBTyxLQUFLLEtBQU0sRUFBRSxFQUNoQyxLQUFLLEtBQU8sR0FBTyxLQUFLLEtBQU0sRUFBRSxFQUNoQyxLQUFLLEtBQU8sR0FBTyxLQUFLLEtBQU0sRUFBRSxFQUVsQyxLQUFLLFFBQVUsS0FBSyxTQUFXLEdBQU8sS0FBSyxJQUFJLEVBQy9DLEtBQUssUUFBVSxLQUFLLFNBQVcsR0FBTyxLQUFLLElBQUksRUFDL0MsS0FBSyxRQUFVLEtBQUssU0FBVyxHQUFPLEtBQUssSUFBSSxFQUMvQyxLQUFLLFFBQVUsS0FBSyxTQUFXLEdBQU8sS0FBSyxJQUFJLEVBQy9DLEtBQUssUUFBVSxLQUFLLFNBQVcsR0FBTyxLQUFLLElBQUksRUFDL0MsS0FBSyxRQUFVLEtBQUssU0FBVyxHQUFPLEtBQUssSUFBSSxFQUMvQyxLQUFLLFFBQVUsS0FB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QSxZQUFPLGlCQUFpQixPQUFRLElBQWUsRUFBSyxFQUtoRCxJQUFpQixDQUFDLEVBNkRsQixHQUFVLENBQ2QsWUFBYSxHQUNiLGNBQ0EsVUFDQSxXQUNBLFNBQ0EsUUFDQSw2QkFDQSxlQUNBLFdBQWlCLE9BQ2pCLGtCQUNBLHlCQUNBLGNBQ0YsSUNqeE1BLEtBQ0EsS0FDQSxtQkFDQSxlQUNBLEtBQ0EsbUJDSEEsT0FBTyxPQUFTLElBQU0sQ0FHcEIsU0FBUyxpQkFBaUIsWUFBWSxFQUFFLFFBQVEsQ0FBQyxJQUFXLENBQzFELEVBQU8saUJBQWlCLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxJQUFPLENBQ3pELE1BQU0sRUFBYyxFQUFtQixRQUFRLE1BQ3pDLEVBQVksRUFBbUIsUUFBUSxTQUM3QyxFQUFHLGlCQUFpQixRQUFTLENBQUMsSUFBTSxDQUNsQyxFQUFPLGlCQUFpQixJQUFNLENBQVEsRUFBRSxRQUFRLENBQUMsSUFBYyxDQUM3RCxFQUFVLFVBQVUsT0FBTyxVQUFVLEVBQ3RDLEVBQ0QsRUFBTyxpQkFBaUIsSUFBTSxDQUFVLEVBQUUsUUFBUSxDQUFDLElBQWMsQ0FDL0QsRUFBVSxVQUFVLElBQUksVUFBVSxFQUNuQyxFQUNGLEVBQ0YsRUFDRixFQUlELFNBQ0csaUJBQWlCLDJCQUEyQixFQUM1QyxRQUFRLENBQUMsSUFBYyxDQUN0QixFQUFVLGlCQUFpQixHQUFHLEVBQUUsUUFBUSxDQUFDLElBQVcsQ0FDbEQsQUFBQyxFQUE2QixpQkFBaUIsUUFBUyxDQUFDLElBQU0sQ0FFN0QsT0FEQyxFQUFpQyxLQUFPLEdBQ2xDLEdBQ1IsRUFDRixFQUNGLEVBS0gsQ0FBQyxHQUFHLFNBQVMsaUJBQWlCLDJCQUEyQixDQUFDLEVBQUUsSUFBSSxDQUFDLElBQVcsQ0FDMUUsTUFBTSxFQUFTLEVBQU8sY0FDdEIsRUFBTyxVQUFZLEVBQU8sVUFDMUIsRUFBTyxVQUFZLG1CQUNwQixFQUVELEdBQVEsSUFBSSxDQUFFLGNBQWUsbUJBQW9CLENBQUMsRUFJbEQsU0FBUyxpQkFBaUIsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLElBQU8sQ0FDakUsTUFBTSxFQUFZLEVBQW1CLFFBQVEsZUFDN0MsRUFBRyxpQkFBaUIsUUFBUyxDQUFDLElBQU0sQ0FDbEMsTUFBTSxFQUFTLFNBQVMsY0FBYyxJQUFJLEdBQVUsRUFDcEQsSUFBSyxFQUFRLENBQ1gsUUFBUSxNQUFNLGFBQWMsSUFBSSxHQUFVLEVBQzFDLE9BVUYsT0FSQSxFQUFPLFVBQVUsT0FBTyxhQUFhLEVBQ3JDLEVBQUcsVUFBVSxPQUFPLGVBQWUsRUFDbkMsRUFBRyxVQUFVLE9BQU8sYUFBYSxFQUNqQyxFQUFHLFVBQVUsSUFDWCxFQUFPLFVBQVUsU0FBUyxhQUFhLEVBQ25DLGNBQ0EsZUFDTixFQUNPLEdBQ1IsRUFDRixFQUVELE9BQU8sY0FBYyxJQUFJLE1BQU0sV0FBVyxDQUFDIiwKICAiZGVidWdJZCI6ICJFMzVFNzUzOTEzNTJEQTI4NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ== diff --git a/templates/html/static/dj-doctree-and-toc.css b/templates/html/static/dj-doctree-and-toc.css new file mode 100644 index 0000000..16ec717 --- /dev/null +++ b/templates/html/static/dj-doctree-and-toc.css @@ -0,0 +1,90 @@ +.DJDocTree.m-sidebar { + padding: 0 calc(var(--mm) - var(--ms)); +} + +.DJTableOfContents { + font-size: var(--fs-small); + padding: 0 var(--ms); +} + +.DJDocTree_Content { + font-size: var(--fs-small); + padding: 0; +} + +nav ul { + padding-left: 0; + list-style-type: none; + margin-left: var(--ms); +} + +.DJTableOfContents_Content > ul { + margin-left: 0; +} + +.DJDocTree_Content > ul { + margin-left: var(--ms); +} + +nav li { + list-style-type: none; + padding-left: 0; +} + +.DJTableOfContents.m-sidebar .DJTableOfContents_Content::before { + content: "On this page"; +} + +nav.DJDocTree a, +nav.DJDocTree a:visited, +nav.DJDocTree h1, +nav.DJDocTree h2, +nav.DJDocTree h3, +nav.DJDocTree h4, +nav.DJDocTree h5, +nav.DJDocTree h6 { + text-decoration: none; + color: var(--color-fg-2); +} + +nav.DJDocTree a.m-active { + font-weight: var(--fw-semibold); +} + +/* Add underlines to sections with self-docs */ +nav.DJDocTree a:hover, +nav.DJDocTree h1 > a, +nav.DJDocTree h2 > a, +nav.DJDocTree h3 > a, +nav.DJDocTree h4 > a, +nav.DJDocTree h5 > a, +nav.DJDocTree h6 > a { + text-decoration: underline; +} + +nav h1, +nav h2, +nav h3, +nav h4, +nav h5, +nav h6 { + font-size: var(--fs-normal); + font-weight: var(--fw-semibold); + margin-bottom: 0.5em; + + padding: var(--ms); + margin-left: calc(-1 * var(--ms)); + border-radius: var(--border-radius-small); +} + +nav h1 { + margin-left: 0; +} + +nav h2, +nav h3, +nav h4, +nav h5, +nav h6 { + margin-top: 1em; +} diff --git a/templates/html/static/dj-layout.css b/templates/html/static/dj-layout.css index 6cf9753..cbcfbb5 100644 --- a/templates/html/static/dj-layout.css +++ b/templates/html/static/dj-layout.css @@ -23,7 +23,6 @@ body > footer { .u-page-width { width: 100%; - max-width: var(--page-max-width); } main { @@ -31,6 +30,7 @@ main { display: flex; flex-direction: row; + justify-content: space-between; } .DJDocTree { @@ -59,6 +59,8 @@ main { align-items: stretch; justify-content: stretch; min-height: 100%; + + max-width: var(--content-max-width); } .DJContent > article { flex-grow: 1; @@ -145,7 +147,7 @@ main { /* RESPONSIVENESS */ .DJHeader_Hamburger { - display: none; + display: none !important; } @media (max-width: 970px) { @@ -154,7 +156,7 @@ main { } .DJHeader_Hamburger { - display: block; + display: block !important; cursor: pointer; } diff --git a/templates/html/static/dj-markupfeatures.css b/templates/html/static/dj-markupfeatures.css index 2d0d49f..d08dc13 100644 --- a/templates/html/static/dj-markupfeatures.css +++ b/templates/html/static/dj-markupfeatures.css @@ -21,6 +21,7 @@ aside::before { margin: 0 0 var(--ms) 0; padding: var(--mss) var(--ms); display: block; + color: var(--aside-title-color-fg); } /* Note */ @@ -130,8 +131,8 @@ aside.warning { } .dj-tab-heading.m-active { - color: var(--c-linkblue); - border-bottom: 3px solid var(--c-linkblue); + color: var(--c-control-active); + border-bottom: 3px solid var(--c-control-active); } .dj-tab-group-content > * { diff --git a/templates/html/static/dj-style.css b/templates/html/static/dj-style.css index 3108215..4bfcf25 100644 --- a/templates/html/static/dj-style.css +++ b/templates/html/static/dj-style.css @@ -98,7 +98,7 @@ th { .DJHeader_Content { border-bottom: var(--border-weak); - padding: var(--header-padding); + padding: var(--header-padding) var(--mm); } .DJTableOfContents.m-header { @@ -129,81 +129,14 @@ main { /* NAVIGATION */ -.DJDocTree_Content, -.DJTableOfContents_Content { - padding: 0 var(--ms); -} - .DJContent { padding: 0 var(--mm); } -nav > ul, -nav > div > ul, -nav > ul > li > ul, -nav > div > ul, -nav > div > ul > li > ul { - list-style-type: none; - padding-left: 0; -} - -/* Only indent third-level lists */ -nav > ul ul ul, -nav > div > ul ul ul { - padding-left: 0; - list-style-type: none; - margin-left: 0.5em; -} - -.DJTableOfContents.m-sidebar .DJTableOfContents_Content::before { - content: "On this page"; -} - .DJNextPrevious.m-top { display: none; /* hidden by default */ } -nav.DJDocTree a, -nav.DJDocTree a:visited, -nav.DJDocTree h1, -nav.DJDocTree h2, -nav.DJDocTree h3, -nav.DJDocTree h4, -nav.DJDocTree h5, -nav.DJDocTree h6 { - text-decoration: none; - color: var(--color-fg-2); -} - -/* Add underlines to sections with self-docs */ -nav.DJDocTree a:hover, -nav.DJDocTree h1 > a, -nav.DJDocTree h2 > a, -nav.DJDocTree h3 > a, -nav.DJDocTree h4 > a, -nav.DJDocTree h5 > a, -nav.DJDocTree h6 > a { - text-decoration: underline; -} - -nav h1, -nav h2, -nav h3, -nav h4, -nav h5, -nav h6 { - font-size: var(--fs-normal); - margin-bottom: 0.5em; -} - -nav h2, -nav h3, -nav h4, -nav h5, -nav h6 { - margin-top: 1em; -} - .DJNextPrevious > a { text-decoration: none; padding: var(--ms) var(--mm); @@ -292,3 +225,31 @@ nav h6 { justify-content: flex-start; gap: var(--ms); } + +.DJCollapse_Collapser { + position: relative; + cursor: pointer; +} + +.DJCollapse_Collapser::after { + font-size: var(--fs-tiny); + float: right; + color: var(--color-fg-3); +} + +.DJCollapse_Collapser.m-uncollapsed::after { + transform: rotate(90deg); + content: "▶"; +} + +.DJCollapse_Collapser.m-collapsed::after { + content: "▶"; +} + +.DJCollapse_Collapser:hover { + background-color: var(--color-control-hover-bg); +} + +.DJCollapse_Collapsee.m-collapsed { + display: none; +} diff --git a/templates/html/static/dj-typography.css b/templates/html/static/dj-typography.css index 9ebe6f1..3688910 100644 --- a/templates/html/static/dj-typography.css +++ b/templates/html/static/dj-typography.css @@ -29,7 +29,8 @@ article pre, article aside, article ol, article ul, -.tab-group { +article .tab-group, +article details { margin-bottom: 1.25em; } diff --git a/templates/html/static/dj-variables.css b/templates/html/static/dj-variables.css index 914208c..2102584 100644 --- a/templates/html/static/dj-variables.css +++ b/templates/html/static/dj-variables.css @@ -16,6 +16,7 @@ sans-serif; --f-monospace: Menlo, monospace; + --fs-tiny: 12px; --fs-small: 14px; --fs-normal: 16px; --fs-large: 20px; @@ -29,7 +30,7 @@ /* Grays */ --c-white: rgb(249, 250, 251); --c-black: rgb(49, 49, 56); - --c-gray6: #f7f7f7; + --c-gray6: #ededed; --c-gray5: #ddd; --c-gray4: #aaa; --c-gray3: #777; @@ -37,8 +38,8 @@ --c-gray1: #333; /* Accents */ - --c-linkblue: rgb(12, 34, 161); - --c-linkpurple: rgb(109, 4, 109); + --c-control-active: rgb(12, 34, 161); + --c-control-used: rgb(109, 4, 109); /* Distances */ @@ -52,16 +53,22 @@ --color-bg: var(--c-white); - --color-fg-link: var(--c-linkblue); - --color-fg-link-visited: var(--c-linkpurple); + --color-fg-link: var(--c-control-active); + --color-fg-link-visited: var(--c-control-used); --color-fg-1: var(--c-black); + --color-fg-1-invert: var(--c-white); --color-fg-2: var(--c-gray2); + --color-fg-3: var(--c-gray4); --color-bg-1: var(--c-white); --color-bg-1-hover: var(--c-gray6); + --color-control-hover-bg: var(--c-gray6); + --border-strong: 1px solid var(--c-gray3); --border-weak: 1px solid var(--c-gray5); + --border-radius-small: 4px; + --border-radius-large: 8px; --line-height-short: 1.2em; --line-height-tall: 1.5em; @@ -80,8 +87,8 @@ /* LAYOUT SIZES */ --header-height: 4rem; - --page-max-width: 80rem; - --sidebar-width: 14rem; + --content-max-width: 40rem; + --sidebar-width: 18rem; --sidebar-width-large: 20rem; --approx-height-of-top-bar-during-scroll: calc( var(--header-height) + var(--mm) @@ -90,7 +97,8 @@ /* COMPONENT VALUES */ --aside-border-width: 1px; - --aside-border-radius: 4px; + --aside-border-radius: var(--border-radius-small); + --aside-title-color-fg: var(--color-fg-1); --aside-color-border-note: rgb(60, 60, 255); --aside-title-color-bg-note: rgb(211, 211, 255); --aside-color-border-tip: rgb(68, 149, 71); @@ -115,7 +123,9 @@ --c-gray6: #333; /* Accents */ - --c-linkblue: lightblue; - --c-linkpurple: rgb(232, 120, 232); + --c-control-active: lightblue; + --c-control-used: rgb(232, 120, 232); + + --aside-title-color-fg: var(--color-fg-1-invert); } } diff --git a/templates/html/static/search.js b/templates/html/static/search.js index 9bc655a..8f866fc 100644 --- a/templates/html/static/search.js +++ b/templates/html/static/search.js @@ -36,4 +36,7 @@ var e=Object.create;var{getPrototypeOf:GG,defineProperty:m,getOwnPropertyNames:Q

${i(G.name,"name",U,!1)}

${i(G.text,"text",U,!0)}
- `}function i(Q,G,U,X){const Y=new Array;let Z=new Array;for(let O of Object.values(U)){if(!O[G])continue;Z=Z.concat(O[G].position)}Z.sort((O,J)=>O[0]-J[0]);let $=0;function A(){if($>=Q.length)return null;const O=Q.indexOf("\n",$),J=$;let z="";if(O>=0)z=Q.slice($,O),$=O+1;else z=Q.slice($),$=Q.length;return{startInclusive:J,endExclusive:$,text:z}}if(X){let O=A();while(O){const J=Z.filter((z)=>z[0]>=O.startInclusive&&z[0]${a(O,J)}`);O=A()}}else Y.push(a({startInclusive:0,endExclusive:Q.length,text:Q},Z));return Y.join("\n")}function a(Q,G){const U=new Array;let X=0;for(let[Y,Z]of G){const $=Y-Q.startInclusive;if($>X)U.push(Q.text.slice(X,$)),X=$+Z;U.push(""),U.push(Q.text.slice($,$+Z)),U.push("")}if(X{const Q=document.querySelector("#dj-search-input");if(!Q)return;const G=document.querySelector("#dj-search-menu-results");if(!G)return;const U=document.querySelector("#dj-search-menu");if(!U)return;document.querySelectorAll(".DJSearchMenu_FlexContainer").forEach((J)=>{J.addEventListener("click",(z)=>{if(z.target!==J)return;U.hidePopover()})});const X=window;if(!X.djSearchIndex){console.warn("Search index not found");return}const Y=X.djSearchIndex,Z={},$=o.default(function(){this.ref("url"),this.field("name"),this.field("text"),this.field("url"),this.metadataWhitelist=["position"];for(let J of Y)this.add(J),Z[J.url]=J});function A(J,z,D=!1,C){let T=null;return function(){let P=this,F=arguments,W=function(){if(T=null,!D)J.apply(P,F)},K=D&&!T;if(clearTimeout(T),T=setTimeout(W,z),C)C();if(K)J.apply(P,F)}}const O=A((J)=>{ZG(Z,$,J,G)},500);Q.addEventListener("input",(J)=>{O(J.target.value)}),document.querySelector(".DJOpenSearchButton").addEventListener("click",(J)=>{return J.preventDefault(),U.showPopover(),Q.focus(),!0}),window.addEventListener("keydown",(J)=>{if(U.matches(":popover-open"))return;if(J.key==="/")U.showPopover(),Q.focus(),J.preventDefault()}),window.addEventListener("keydown",(J)=>{if(J.key==="Escape")U.hidePopover()})}); + `}function i(Q,G,U,X){const Y=new Array;let Z=new Array;for(let O of Object.values(U)){if(!O[G])continue;Z=Z.concat(O[G].position)}Z.sort((O,J)=>O[0]-J[0]);let $=0;function A(){if($>=Q.length)return null;const O=Q.indexOf("\n",$),J=$;let z="";if(O>=0)z=Q.slice($,O),$=O+1;else z=Q.slice($),$=Q.length;return{startInclusive:J,endExclusive:$,text:z}}if(X){let O=A();while(O){const J=Z.filter((z)=>z[0]>=O.startInclusive&&z[0]${a(O,J)}`);O=A()}}else Y.push(a({startInclusive:0,endExclusive:Q.length,text:Q},Z));return Y.join("\n")}function a(Q,G){const U=new Array;let X=0;for(let[Y,Z]of G){const $=Y-Q.startInclusive;if($>X)U.push(Q.text.slice(X,$));U.push(""),U.push(Q.text.slice($,$+Z)),U.push(""),X=$+Z}if(X{const Q=document.querySelector("#dj-search-input");if(!Q)return;const G=document.querySelector("#dj-search-menu-results");if(!G)return;const U=document.querySelector("#dj-search-menu");if(!U)return;document.querySelectorAll(".DJSearchMenu_FlexContainer").forEach((J)=>{J.addEventListener("click",(z)=>{if(z.target!==J)return;U.hidePopover()})});const X=window;if(!X.djSearchIndex){console.warn("Search index not found");return}const Y=X.djSearchIndex,Z={},$=o.default(function(){this.ref("url"),this.field("name"),this.field("text"),this.field("url"),this.metadataWhitelist=["position"];for(let J of Y)this.add(J),Z[J.url]=J});function A(J,z,D=!1,C){let T=null;return function(){let P=this,F=arguments,W=function(){if(T=null,!D)J.apply(P,F)},K=D&&!T;if(clearTimeout(T),T=setTimeout(W,z),C)C();if(K)J.apply(P,F)}}const O=A((J)=>{ZG(Z,$,J,G)},500);Q.addEventListener("input",(J)=>{O(J.target.value)}),document.querySelector(".DJOpenSearchButton").addEventListener("click",(J)=>{return J.preventDefault(),U.showPopover(),Q.focus(),!0}),window.addEventListener("keydown",(J)=>{if(U.matches(":popover-open"))return;if(J.key==="/")U.showPopover(),Q.focus(),J.preventDefault()}),window.addEventListener("keydown",(J)=>{if(J.key==="Escape")U.hidePopover()})}); + +//# debugId=D94A4ABCF1A4B16864756E2164756E21 +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL2x1bnIvbHVuci5qcyIsICJzcmMvY2xpZW50anMvc2VhcmNoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIi8qKlxuICogbHVuciAtIGh0dHA6Ly9sdW5yanMuY29tIC0gQSBiaXQgbGlrZSBTb2xyLCBidXQgbXVjaCBzbWFsbGVyIGFuZCBub3QgYXMgYnJpZ2h0IC0gMi4zLjlcbiAqIENvcHlyaWdodCAoQykgMjAyMCBPbGl2ZXIgTmlnaHRpbmdhbGVcbiAqIEBsaWNlbnNlIE1JVFxuICovXG5cbihmdW5jdGlvbiAoKSB7XG4gIC8qKlxuICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBjb25maWd1cmluZyBhbmQgY29uc3RydWN0aW5nXG4gICAqIGEgbmV3IGx1bnIgSW5kZXguXG4gICAqXG4gICAqIEEgbHVuci5CdWlsZGVyIGluc3RhbmNlIGlzIGNyZWF0ZWQgYW5kIHRoZSBwaXBlbGluZSBzZXR1cFxuICAgKiB3aXRoIGEgdHJpbW1lciwgc3RvcCB3b3JkIGZpbHRlciBhbmQgc3RlbW1lci5cbiAgICpcbiAgICogVGhpcyBidWlsZGVyIG9iamVjdCBpcyB5aWVsZGVkIHRvIHRoZSBjb25maWd1cmF0aW9uIGZ1bmN0aW9uXG4gICAqIHRoYXQgaXMgcGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBhbGxvd2luZyB0aGUgbGlzdCBvZiBmaWVsZHNcbiAgICogYW5kIG90aGVyIGJ1aWxkZXIgcGFyYW1ldGVycyB0byBiZSBjdXN0b21pc2VkLlxuICAgKlxuICAgKiBBbGwgZG9jdW1lbnRzIF9tdXN0XyBiZSBhZGRlZCB3aXRoaW4gdGhlIHBhc3NlZCBjb25maWcgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHZhciBpZHggPSBsdW5yKGZ1bmN0aW9uICgpIHtcbiAgICogICB0aGlzLmZpZWxkKCd0aXRsZScpXG4gICAqICAgdGhpcy5maWVsZCgnYm9keScpXG4gICAqICAgdGhpcy5yZWYoJ2lkJylcbiAgICpcbiAgICogICBkb2N1bWVudHMuZm9yRWFjaChmdW5jdGlvbiAoZG9jKSB7XG4gICAqICAgICB0aGlzLmFkZChkb2MpXG4gICAqICAgfSwgdGhpcylcbiAgICogfSlcbiAgICpcbiAgICogQHNlZSB7QGxpbmsgbHVuci5CdWlsZGVyfVxuICAgKiBAc2VlIHtAbGluayBsdW5yLlBpcGVsaW5lfVxuICAgKiBAc2VlIHtAbGluayBsdW5yLnRyaW1tZXJ9XG4gICAqIEBzZWUge0BsaW5rIGx1bnIuc3RvcFdvcmRGaWx0ZXJ9XG4gICAqIEBzZWUge0BsaW5rIGx1bnIuc3RlbW1lcn1cbiAgICogQG5hbWVzcGFjZSB7ZnVuY3Rpb259IGx1bnJcbiAgICovXG4gIHZhciBsdW5yID0gZnVuY3Rpb24gKGNvbmZpZykge1xuICAgIHZhciBidWlsZGVyID0gbmV3IGx1bnIuQnVpbGRlcigpO1xuXG4gICAgYnVpbGRlci5waXBlbGluZS5hZGQobHVuci50cmltbWVyLCBsdW5yLnN0b3BXb3JkRmlsdGVyLCBsdW5yLnN0ZW1tZXIpO1xuXG4gICAgYnVpbGRlci5zZWFyY2hQaXBlbGluZS5hZGQobHVuci5zdGVtbWVyKTtcblxuICAgIGNvbmZpZy5jYWxsKGJ1aWxkZXIsIGJ1aWxkZXIpO1xuICAgIHJldHVybiBidWlsZGVyLmJ1aWxkKCk7XG4gIH07XG5cbiAgbHVuci52ZXJzaW9uID0gXCIyLjMuOVwiO1xuICAvKiFcbiAgICogbHVuci51dGlsc1xuICAgKiBDb3B5cmlnaHQgKEMpIDIwMjAgT2xpdmVyIE5pZ2h0aW5nYWxlXG4gICAqL1xuXG4gIC8qKlxuICAgKiBBIG5hbWVzcGFjZSBjb250YWluaW5nIHV0aWxzIGZvciB0aGUgcmVzdCBvZiB0aGUgbHVuciBsaWJyYXJ5XG4gICAqIEBuYW1lc3BhY2UgbHVuci51dGlsc1xuICAgKi9cbiAgbHVuci51dGlscyA9IHt9O1xuXG4gIC8qKlxuICAgKiBQcmludCBhIHdhcm5pbmcgbWVzc2FnZSB0byB0aGUgY29uc29sZS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gYmUgcHJpbnRlZC5cbiAgICogQG1lbWJlck9mIGx1bnIudXRpbHNcbiAgICogQGZ1bmN0aW9uXG4gICAqL1xuICBsdW5yLnV0aWxzLndhcm4gPSAoZnVuY3Rpb24gKGdsb2JhbCkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbiAgICByZXR1cm4gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICAgIGlmIChnbG9iYWwuY29uc29sZSAmJiBjb25zb2xlLndhcm4pIHtcbiAgICAgICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH07XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1jb25zb2xlICovXG4gIH0pKHRoaXMpO1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGFuIG9iamVjdCB0byBhIHN0cmluZy5cbiAgICpcbiAgICogSW4gdGhlIGNhc2Ugb2YgYG51bGxgIGFuZCBgdW5kZWZpbmVkYCB0aGUgZnVuY3Rpb24gcmV0dXJuc1xuICAgKiB0aGUgZW1wdHkgc3RyaW5nLCBpbiBhbGwgb3RoZXIgY2FzZXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nXG4gICAqIGB0b1N0cmluZ2Agb24gdGhlIHBhc3NlZCBvYmplY3QgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7QW55fSBvYmogVGhlIG9iamVjdCB0byBjb252ZXJ0IHRvIGEgc3RyaW5nLlxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGFzc2VkIG9iamVjdC5cbiAgICogQG1lbWJlck9mIGx1bnIudXRpbHNcbiAgICovXG4gIGx1bnIudXRpbHMuYXNTdHJpbmcgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgaWYgKG9iaiA9PT0gdm9pZCAwIHx8IG9iaiA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvYmoudG9TdHJpbmcoKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIENsb25lcyBhbiBvYmplY3QuXG4gICAqXG4gICAqIFdpbGwgY3JlYXRlIGEgY29weSBvZiBhbiBleGlzdGluZyBvYmplY3Qgc3VjaCB0aGF0IGFueSBtdXRhdGlvbnNcbiAgICogb24gdGhlIGNvcHkgY2Fubm90IGFmZmVjdCB0aGUgb3JpZ2luYWwuXG4gICAqXG4gICAqIE9ubHkgc2hhbGxvdyBvYmplY3RzIGFyZSBzdXBwb3J0ZWQsIHBhc3NpbmcgYSBuZXN0ZWQgb2JqZWN0IHRvIHRoaXNcbiAgICogZnVuY3Rpb24gd2lsbCBjYXVzZSBhIFR5cGVFcnJvci5cbiAgICpcbiAgICogT2JqZWN0cyB3aXRoIHByaW1pdGl2ZXMsIGFuZCBhcnJheXMgb2YgcHJpbWl0aXZlcyBhcmUgc3VwcG9ydGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gICAqIEByZXR1cm4ge09iamVjdH0gYSBjbG9uZSBvZiB0aGUgcGFzc2VkIG9iamVjdC5cbiAgICogQHRocm93cyB7VHlwZUVycm9yfSB3aGVuIGEgbmVzdGVkIG9iamVjdCBpcyBwYXNzZWQuXG4gICAqIEBtZW1iZXJPZiBVdGlsc1xuICAgKi9cbiAgbHVuci51dGlscy5jbG9uZSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgICBpZiAob2JqID09PSBudWxsIHx8IG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH1cblxuICAgIHZhciBjbG9uZSA9IE9iamVjdC5jcmVhdGUobnVsbCksXG4gICAgICBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV0sXG4gICAgICAgIHZhbCA9IG9ialtrZXldO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgIGNsb25lW2tleV0gPSB2YWwuc2xpY2UoKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgdmFsID09PSBcIm51bWJlclwiIHx8XG4gICAgICAgIHR5cGVvZiB2YWwgPT09IFwiYm9vbGVhblwiXG4gICAgICApIHtcbiAgICAgICAgY2xvbmVba2V5XSA9IHZhbDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgIFwiY2xvbmUgaXMgbm90IGRlZXAgYW5kIGRvZXMgbm90IHN1cHBvcnQgbmVzdGVkIG9iamVjdHNcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmU7XG4gIH07XG4gIGx1bnIuRmllbGRSZWYgPSBmdW5jdGlvbiAoZG9jUmVmLCBmaWVsZE5hbWUsIHN0cmluZ1ZhbHVlKSB7XG4gICAgdGhpcy5kb2NSZWYgPSBkb2NSZWY7XG4gICAgdGhpcy5maWVsZE5hbWUgPSBmaWVsZE5hbWU7XG4gICAgdGhpcy5fc3RyaW5nVmFsdWUgPSBzdHJpbmdWYWx1ZTtcbiAgfTtcblxuICBsdW5yLkZpZWxkUmVmLmpvaW5lciA9IFwiL1wiO1xuXG4gIGx1bnIuRmllbGRSZWYuZnJvbVN0cmluZyA9IGZ1bmN0aW9uIChzKSB7XG4gICAgdmFyIG4gPSBzLmluZGV4T2YobHVuci5GaWVsZFJlZi5qb2luZXIpO1xuXG4gICAgaWYgKG4gPT09IC0xKSB7XG4gICAgICB0aHJvdyBcIm1hbGZvcm1lZCBmaWVsZCByZWYgc3RyaW5nXCI7XG4gICAgfVxuXG4gICAgdmFyIGZpZWxkUmVmID0gcy5zbGljZSgwLCBuKSxcbiAgICAgIGRvY1JlZiA9IHMuc2xpY2UobiArIDEpO1xuXG4gICAgcmV0dXJuIG5ldyBsdW5yLkZpZWxkUmVmKGRvY1JlZiwgZmllbGRSZWYsIHMpO1xuICB9O1xuXG4gIGx1bnIuRmllbGRSZWYucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLl9zdHJpbmdWYWx1ZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3N0cmluZ1ZhbHVlID0gdGhpcy5maWVsZE5hbWUgKyBsdW5yLkZpZWxkUmVmLmpvaW5lciArIHRoaXMuZG9jUmVmO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zdHJpbmdWYWx1ZTtcbiAgfTtcbiAgLyohXG4gICAqIGx1bnIuU2V0XG4gICAqIENvcHlyaWdodCAoQykgMjAyMCBPbGl2ZXIgTmlnaHRpbmdhbGVcbiAgICovXG5cbiAgLyoqXG4gICAqIEEgbHVuciBzZXQuXG4gICAqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKi9cbiAgbHVuci5TZXQgPSBmdW5jdGlvbiAoZWxlbWVudHMpIHtcbiAgICB0aGlzLmVsZW1lbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGlmIChlbGVtZW50cykge1xuICAgICAgdGhpcy5sZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLmVsZW1lbnRzW2VsZW1lbnRzW2ldXSA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEEgY29tcGxldGUgc2V0IHRoYXQgY29udGFpbnMgYWxsIGVsZW1lbnRzLlxuICAgKlxuICAgKiBAc3RhdGljXG4gICAqIEByZWFkb25seVxuICAgKiBAdHlwZSB7bHVuci5TZXR9XG4gICAqL1xuICBsdW5yLlNldC5jb21wbGV0ZSA9IHtcbiAgICBpbnRlcnNlY3Q6IGZ1bmN0aW9uIChvdGhlcikge1xuICAgICAgcmV0dXJuIG90aGVyO1xuICAgIH0sXG5cbiAgICB1bmlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIGNvbnRhaW5zOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICB9O1xuXG4gIC8qKlxuICAgKiBBbiBlbXB0eSBzZXQgdGhhdCBjb250YWlucyBubyBlbGVtZW50cy5cbiAgICpcbiAgICogQHN0YXRpY1xuICAgKiBAcmVhZG9ubHlcbiAgICogQHR5cGUge2x1bnIuU2V0fVxuICAgKi9cbiAgbHVuci5TZXQuZW1wdHkgPSB7XG4gICAgaW50ZXJzZWN0OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgdW5pb246IGZ1bmN0aW9uIChvdGhlcikge1xuICAgICAgcmV0dXJuIG90aGVyO1xuICAgIH0sXG5cbiAgICBjb250YWluczogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0sXG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyB0aGUgc3BlY2lmaWVkIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCAtIE9iamVjdCB3aG9zZSBwcmVzZW5jZSBpbiB0aGlzIHNldCBpcyB0byBiZSB0ZXN0ZWQuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgdGhlIHNwZWNpZmllZCBvYmplY3QuXG4gICAqL1xuICBsdW5yLlNldC5wcm90b3R5cGUuY29udGFpbnMgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgcmV0dXJuICEhdGhpcy5lbGVtZW50c1tvYmplY3RdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmV3IHNldCBjb250YWluaW5nIG9ubHkgdGhlIGVsZW1lbnRzIHRoYXQgYXJlIHByZXNlbnQgaW4gYm90aFxuICAgKiB0aGlzIHNldCBhbmQgdGhlIHNwZWNpZmllZCBzZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7bHVuci5TZXR9IG90aGVyIC0gc2V0IHRvIGludGVyc2VjdCB3aXRoIHRoaXMgc2V0LlxuICAgKiBAcmV0dXJucyB7bHVuci5TZXR9IGEgbmV3IHNldCB0aGF0IGlzIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhpcyBhbmQgdGhlIHNwZWNpZmllZCBzZXQuXG4gICAqL1xuXG4gIGx1bnIuU2V0LnByb3RvdHlwZS5pbnRlcnNlY3QgPSBmdW5jdGlvbiAob3RoZXIpIHtcbiAgICB2YXIgYSxcbiAgICAgIGIsXG4gICAgICBlbGVtZW50cyxcbiAgICAgIGludGVyc2VjdGlvbiA9IFtdO1xuXG4gICAgaWYgKG90aGVyID09PSBsdW5yLlNldC5jb21wbGV0ZSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKG90aGVyID09PSBsdW5yLlNldC5lbXB0eSkge1xuICAgICAgcmV0dXJuIG90aGVyO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxlbmd0aCA8IG90aGVyLmxlbmd0aCkge1xuICAgICAgYSA9IHRoaXM7XG4gICAgICBiID0gb3RoZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGEgPSBvdGhlcjtcbiAgICAgIGIgPSB0aGlzO1xuICAgIH1cblxuICAgIGVsZW1lbnRzID0gT2JqZWN0LmtleXMoYS5lbGVtZW50cyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZWxlbWVudCA9IGVsZW1lbnRzW2ldO1xuICAgICAgaWYgKGVsZW1lbnQgaW4gYi5lbGVtZW50cykge1xuICAgICAgICBpbnRlcnNlY3Rpb24ucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IGx1bnIuU2V0KGludGVyc2VjdGlvbik7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBuZXcgc2V0IGNvbWJpbmluZyB0aGUgZWxlbWVudHMgb2YgdGhpcyBhbmQgdGhlIHNwZWNpZmllZCBzZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7bHVuci5TZXR9IG90aGVyIC0gc2V0IHRvIHVuaW9uIHdpdGggdGhpcyBzZXQuXG4gICAqIEByZXR1cm4ge2x1bnIuU2V0fSBhIG5ldyBzZXQgdGhhdCBpcyB0aGUgdW5pb24gb2YgdGhpcyBhbmQgdGhlIHNwZWNpZmllZCBzZXQuXG4gICAqL1xuXG4gIGx1bnIuU2V0LnByb3RvdHlwZS51bmlvbiA9IGZ1bmN0aW9uIChvdGhlcikge1xuICAgIGlmIChvdGhlciA9PT0gbHVuci5TZXQuY29tcGxldGUpIHtcbiAgICAgIHJldHVybiBsdW5yLlNldC5jb21wbGV0ZTtcbiAgICB9XG5cbiAgICBpZiAob3RoZXIgPT09IGx1bnIuU2V0LmVtcHR5KSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IGx1bnIuU2V0KFxuICAgICAgT2JqZWN0LmtleXModGhpcy5lbGVtZW50cykuY29uY2F0KE9iamVjdC5rZXlzKG90aGVyLmVsZW1lbnRzKSlcbiAgICApO1xuICB9O1xuICAvKipcbiAgICogQSBmdW5jdGlvbiB0byBjYWxjdWxhdGUgdGhlIGludmVyc2UgZG9jdW1lbnQgZnJlcXVlbmN5IGZvclxuICAgKiBhIHBvc3RpbmcuIFRoaXMgaXMgc2hhcmVkIGJldHdlZW4gdGhlIGJ1aWxkZXIgYW5kIHRoZSBpbmRleFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge29iamVjdH0gcG9zdGluZyAtIFRoZSBwb3N0aW5nIGZvciBhIGdpdmVuIHRlcm1cbiAgICogQHBhcmFtIHtudW1iZXJ9IGRvY3VtZW50Q291bnQgLSBUaGUgdG90YWwgbnVtYmVyIG9mIGRvY3VtZW50cy5cbiAgICovXG4gIGx1bnIuaWRmID0gZnVuY3Rpb24gKHBvc3RpbmcsIGRvY3VtZW50Q291bnQpIHtcbiAgICB2YXIgZG9jdW1lbnRzV2l0aFRlcm0gPSAwO1xuXG4gICAgZm9yICh2YXIgZmllbGROYW1lIGluIHBvc3RpbmcpIHtcbiAgICAgIGlmIChmaWVsZE5hbWUgPT0gXCJfaW5kZXhcIikgY29udGludWU7IC8vIElnbm9yZSB0aGUgdGVybSBpbmRleCwgaXRzIG5vdCBhIGZpZWxkXG4gICAgICBkb2N1bWVudHNXaXRoVGVybSArPSBPYmplY3Qua2V5cyhwb3N0aW5nW2ZpZWxkTmFtZV0pLmxlbmd0aDtcbiAgICB9XG5cbiAgICB2YXIgeCA9XG4gICAgICAoZG9jdW1lbnRDb3VudCAtIGRvY3VtZW50c1dpdGhUZXJtICsgMC41KSAvIChkb2N1bWVudHNXaXRoVGVybSArIDAuNSk7XG5cbiAgICByZXR1cm4gTWF0aC5sb2coMSArIE1hdGguYWJzKHgpKTtcbiAgfTtcblxuICAvKipcbiAgICogQSB0b2tlbiB3cmFwcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHRva2VuXG4gICAqIGFzIGl0IGlzIHBhc3NlZCB0aHJvdWdoIHRoZSB0ZXh0IHByb2Nlc3NpbmcgcGlwZWxpbmUuXG4gICAqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cj0nJ10gLSBUaGUgc3RyaW5nIHRva2VuIGJlaW5nIHdyYXBwZWQuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbbWV0YWRhdGE9e31dIC0gTWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdG9rZW4uXG4gICAqL1xuICBsdW5yLlRva2VuID0gZnVuY3Rpb24gKHN0ciwgbWV0YWRhdGEpIHtcbiAgICB0aGlzLnN0ciA9IHN0ciB8fCBcIlwiO1xuICAgIHRoaXMubWV0YWRhdGEgPSBtZXRhZGF0YSB8fCB7fTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdG9rZW4gc3RyaW5nIHRoYXQgaXMgYmVpbmcgd3JhcHBlZCBieSB0aGlzIG9iamVjdC5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGx1bnIuVG9rZW4ucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnN0cjtcbiAgfTtcblxuICAvKipcbiAgICogQSB0b2tlbiB1cGRhdGUgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIHVwZGF0aW5nIG9yIG9wdGlvbmFsbHlcbiAgICogd2hlbiBjbG9uaW5nIGEgdG9rZW4uXG4gICAqXG4gICAqIEBjYWxsYmFjayBsdW5yLlRva2VufnVwZGF0ZUZ1bmN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0b2tlbi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG1ldGFkYXRhIC0gQWxsIG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRva2VuLlxuICAgKi9cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgZ2l2ZW4gZnVuY3Rpb24gdG8gdGhlIHdyYXBwZWQgc3RyaW5nIHRva2VuLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB0b2tlbi51cGRhdGUoZnVuY3Rpb24gKHN0ciwgbWV0YWRhdGEpIHtcbiAgICogICByZXR1cm4gc3RyLnRvVXBwZXJDYXNlKClcbiAgICogfSlcbiAgICpcbiAgICogQHBhcmFtIHtsdW5yLlRva2VufnVwZGF0ZUZ1bmN0aW9ufSBmbiAtIEEgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIHRva2VuIHN0cmluZy5cbiAgICogQHJldHVybnMge2x1bnIuVG9rZW59XG4gICAqL1xuICBsdW5yLlRva2VuLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICB0aGlzLnN0ciA9IGZuKHRoaXMuc3RyLCB0aGlzLm1ldGFkYXRhKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoaXMgdG9rZW4uIE9wdGlvbmFsbHkgYSBmdW5jdGlvbiBjYW4gYmVcbiAgICogYXBwbGllZCB0byB0aGUgY2xvbmVkIHRva2VuLlxuICAgKlxuICAgKiBAcGFyYW0ge2x1bnIuVG9rZW5+dXBkYXRlRnVuY3Rpb259IFtmbl0gLSBBbiBvcHRpb25hbCBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgY2xvbmVkIHRva2VuLlxuICAgKiBAcmV0dXJucyB7bHVuci5Ub2tlbn1cbiAgICovXG4gIGx1bnIuVG9rZW4ucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgZm4gPVxuICAgICAgZm4gfHxcbiAgICAgIGZ1bmN0aW9uIChzKSB7XG4gICAgICAgIHJldHVybiBzO1xuICAgICAgfTtcbiAgICByZXR1cm4gbmV3IGx1bnIuVG9rZW4oZm4odGhpcy5zdHIsIHRoaXMubWV0YWRhdGEpLCB0aGlzLm1ldGFkYXRhKTtcbiAgfTtcbiAgLyohXG4gICAqIGx1bnIudG9rZW5pemVyXG4gICAqIENvcHlyaWdodCAoQykgMjAyMCBPbGl2ZXIgTmlnaHRpbmdhbGVcbiAgICovXG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gZm9yIHNwbGl0dGluZyBhIHN0cmluZyBpbnRvIHRva2VucyByZWFkeSB0byBiZSBpbnNlcnRlZCBpbnRvXG4gICAqIHRoZSBzZWFyY2ggaW5kZXguIFVzZXMgYGx1bnIudG9rZW5pemVyLnNlcGFyYXRvcmAgdG8gc3BsaXQgc3RyaW5ncywgY2hhbmdlXG4gICAqIHRoZSB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IHRvIGNoYW5nZSBob3cgc3RyaW5ncyBhcmUgc3BsaXQgaW50byB0b2tlbnMuXG4gICAqXG4gICAqIFRoaXMgdG9rZW5pemVyIHdpbGwgY29udmVydCBpdHMgcGFyYW1ldGVyIHRvIGEgc3RyaW5nIGJ5IGNhbGxpbmcgYHRvU3RyaW5nYCBhbmRcbiAgICogdGhlbiB3aWxsIHNwbGl0IHRoaXMgc3RyaW5nIG9uIHRoZSBjaGFyYWN0ZXIgaW4gYGx1bnIudG9rZW5pemVyLnNlcGFyYXRvcmAuXG4gICAqIEFycmF5cyB3aWxsIGhhdmUgdGhlaXIgZWxlbWVudHMgY29udmVydGVkIHRvIHN0cmluZ3MgYW5kIHdyYXBwZWQgaW4gYSBsdW5yLlRva2VuLlxuICAgKlxuICAgKiBPcHRpb25hbCBtZXRhZGF0YSBjYW4gYmUgcGFzc2VkIHRvIHRoZSB0b2tlbml6ZXIsIHRoaXMgbWV0YWRhdGEgd2lsbCBiZSBjbG9uZWQgYW5kXG4gICAqIGFkZGVkIGFzIG1ldGFkYXRhIHRvIGV2ZXJ5IHRva2VuIHRoYXQgaXMgY3JlYXRlZCBmcm9tIHRoZSBvYmplY3QgdG8gYmUgdG9rZW5pemVkLlxuICAgKlxuICAgKiBAc3RhdGljXG4gICAqIEBwYXJhbSB7PyhzdHJpbmd8b2JqZWN0fG9iamVjdFtdKX0gb2JqIC0gVGhlIG9iamVjdCB0byBjb252ZXJ0IGludG8gdG9rZW5zXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbWV0YWRhdGEgLSBPcHRpb25hbCBtZXRhZGF0YSB0byBhc3NvY2lhdGUgd2l0aCBldmVyeSB0b2tlblxuICAgKiBAcmV0dXJucyB7bHVuci5Ub2tlbltdfVxuICAgKiBAc2VlIHtAbGluayBsdW5yLlBpcGVsaW5lfVxuICAgKi9cbiAgbHVuci50b2tlbml6ZXIgPSBmdW5jdGlvbiAob2JqLCBtZXRhZGF0YSkge1xuICAgIGlmIChvYmogPT0gbnVsbCB8fCBvYmogPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgcmV0dXJuIG9iai5tYXAoZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBsdW5yLlRva2VuKFxuICAgICAgICAgIGx1bnIudXRpbHMuYXNTdHJpbmcodCkudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICBsdW5yLnV0aWxzLmNsb25lKG1ldGFkYXRhKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdmFyIHN0ciA9IG9iai50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBsZW4gPSBzdHIubGVuZ3RoLFxuICAgICAgdG9rZW5zID0gW107XG5cbiAgICBmb3IgKHZhciBzbGljZUVuZCA9IDAsIHNsaWNlU3RhcnQgPSAwOyBzbGljZUVuZCA8PSBsZW47IHNsaWNlRW5kKyspIHtcbiAgICAgIHZhciBjaGFyID0gc3RyLmNoYXJBdChzbGljZUVuZCksXG4gICAgICAgIHNsaWNlTGVuZ3RoID0gc2xpY2VFbmQgLSBzbGljZVN0YXJ0O1xuXG4gICAgICBpZiAoY2hhci5tYXRjaChsdW5yLnRva2VuaXplci5zZXBhcmF0b3IpIHx8IHNsaWNlRW5kID09IGxlbikge1xuICAgICAgICBpZiAoc2xpY2VMZW5ndGggPiAwKSB7XG4gICAgICAgICAgdmFyIHRva2VuTWV0YWRhdGEgPSBsdW5yLnV0aWxzLmNsb25lKG1ldGFkYXRhKSB8fCB7fTtcbiAgICAgICAgICB0b2tlbk1ldGFkYXRhW1wicG9zaXRpb25cIl0gPSBbc2xpY2VTdGFydCwgc2xpY2VMZW5ndGhdO1xuICAgICAgICAgIHRva2VuTWV0YWRhdGFbXCJpbmRleFwiXSA9IHRva2Vucy5sZW5ndGg7XG5cbiAgICAgICAgICB0b2tlbnMucHVzaChcbiAgICAgICAgICAgIG5ldyBsdW5yLlRva2VuKHN0ci5zbGljZShzbGljZVN0YXJ0LCBzbGljZUVuZCksIHRva2VuTWV0YWRhdGEpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNsaWNlU3RhcnQgPSBzbGljZUVuZCArIDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRva2VucztcbiAgfTtcblxuICAvKipcbiAgICogVGhlIHNlcGFyYXRvciB1c2VkIHRvIHNwbGl0IGEgc3RyaW5nIGludG8gdG9rZW5zLiBPdmVycmlkZSB0aGlzIHByb3BlcnR5IHRvIGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mXG4gICAqIGBsdW5yLnRva2VuaXplcmAgYmVoYXZpb3VyIHdoZW4gdG9rZW5pemluZyBzdHJpbmdzLiBCeSBkZWZhdWx0IHRoaXMgc3BsaXRzIG9uIHdoaXRlc3BhY2UgYW5kIGh5cGhlbnMuXG4gICAqXG4gICAqIEBzdGF0aWNcbiAgICogQHNlZSBsdW5yLnRva2VuaXplclxuICAgKi9cbiAgbHVuci50b2tlbml6ZXIuc2VwYXJhdG9yID0gL1tcXHNcXC1dKy87XG4gIC8qIVxuICAgKiBsdW5yLlBpcGVsaW5lXG4gICAqIENvcHlyaWdodCAoQykgMjAyMCBPbGl2ZXIgTmlnaHRpbmdhbGVcbiAgICovXG5cbiAgLyoqXG4gICAqIGx1bnIuUGlwZWxpbmVzIG1haW50YWluIGFuIG9yZGVyZWQgbGlzdCBvZiBmdW5jdGlvbnMgdG8gYmUgYXBwbGllZCB0byBhbGxcbiAgICogdG9rZW5zIGluIGRvY3VtZW50cyBlbnRlcmluZyB0aGUgc2VhcmNoIGluZGV4IGFuZCBxdWVyaWVzIGJlaW5nIHJhbiBhZ2FpbnN0XG4gICAqIHRoZSBpbmRleC5cbiAgICpcbiAgICogQW4gaW5zdGFuY2Ugb2YgbHVuci5JbmRleCBjcmVhdGVkIHdpdGggdGhlIGx1bnIgc2hvcnRjdXQgd2lsbCBjb250YWluIGFcbiAgICogcGlwZWxpbmUgd2l0aCBhIHN0b3Agd29yZCBmaWx0ZXIgYW5kIGFuIEVuZ2xpc2ggbGFuZ3VhZ2Ugc3RlbW1lci4gRXh0cmFcbiAgICogZnVuY3Rpb25zIGNhbiBiZSBhZGRlZCBiZWZvcmUgb3IgYWZ0ZXIgZWl0aGVyIG9mIHRoZXNlIGZ1bmN0aW9ucyBvciB0aGVzZVxuICAgKiBkZWZhdWx0IGZ1bmN0aW9ucyBjYW4gYmUgcmVtb3ZlZC5cbiAgICpcbiAgICogV2hlbiBydW4gdGhlIHBpcGVsaW5lIHdpbGwgY2FsbCBlYWNoIGZ1bmN0aW9uIGluIHR1cm4sIHBhc3NpbmcgYSB0b2tlbiwgdGhlXG4gICAqIGluZGV4IG9mIHRoYXQgdG9rZW4gaW4gdGhlIG9yaWdpbmFsIGxpc3Qgb2YgYWxsIHRva2VucyBhbmQgZmluYWxseSBhIGxpc3Qgb2ZcbiAgICogYWxsIHRoZSBvcmlnaW5hbCB0b2tlbnMuXG4gICAqXG4gICAqIFRoZSBvdXRwdXQgb2YgZnVuY3Rpb25zIGluIHRoZSBwaXBlbGluZSB3aWxsIGJlIHBhc3NlZCB0byB0aGUgbmV4dCBmdW5jdGlvblxuICAgKiBpbiB0aGUgcGlwZWxpbmUuIFRvIGV4Y2x1ZGUgYSB0b2tlbiBmcm9tIGVudGVyaW5nIHRoZSBpbmRleCB0aGUgZnVuY3Rpb25cbiAgICogc2hvdWxkIHJldHVybiB1bmRlZmluZWQsIHRoZSByZXN0IG9mIHRoZSBwaXBlbGluZSB3aWxsIG5vdCBiZSBjYWxsZWQgd2l0aFxuICAgKiB0aGlzIHRva2VuLlxuICAgKlxuICAgKiBGb3Igc2VyaWFsaXNhdGlvbiBvZiBwaXBlbGluZXMgdG8gd29yaywgYWxsIGZ1bmN0aW9ucyB1c2VkIGluIGFuIGluc3RhbmNlIG9mXG4gICAqIGEgcGlwZWxpbmUgc2hvdWxkIGJlIHJlZ2lzdGVyZWQgd2l0aCBsdW5yLlBpcGVsaW5lLiBSZWdpc3RlcmVkIGZ1bmN0aW9ucyBjYW5cbiAgICogdGhlbiBiZSBsb2FkZWQuIElmIHRyeWluZyB0byBsb2FkIGEgc2VyaWFsaXNlZCBwaXBlbGluZSB0aGF0IHVzZXMgZnVuY3Rpb25zXG4gICAqIHRoYXQgYXJlIG5vdCByZWdpc3RlcmVkIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLlxuICAgKlxuICAgKiBJZiBub3QgcGxhbm5pbmcgb24gc2VyaWFsaXNpbmcgdGhlIHBpcGVsaW5lIHRoZW4gcmVnaXN0ZXJpbmcgcGlwZWxpbmUgZnVuY3Rpb25zXG4gICAqIGlzIG5vdCBuZWNlc3NhcnkuXG4gICAqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKi9cbiAgbHVuci5QaXBlbGluZSA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLl9zdGFjayA9IFtdO1xuICB9O1xuXG4gIGx1bnIuUGlwZWxpbmUucmVnaXN0ZXJlZEZ1bmN0aW9ucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgLyoqXG4gICAqIEEgcGlwZWxpbmUgZnVuY3Rpb24gbWFwcyBsdW5yLlRva2VuIHRvIGx1bnIuVG9rZW4uIEEgbHVuci5Ub2tlbiBjb250YWlucyB0aGUgdG9rZW5cbiAgICogc3RyaW5nIGFzIHdlbGwgYXMgYWxsIGtub3duIG1ldGFkYXRhLiBBIHBpcGVsaW5lIGZ1bmN0aW9uIGNhbiBtdXRhdGUgdGhlIHRva2VuIHN0cmluZ1xuICAgKiBvciBtdXRhdGUgKG9yIGFkZCkgbWV0YWRhdGEgZm9yIGEgZ2l2ZW4gdG9rZW4uXG4gICAqXG4gICAqIEEgcGlwZWxpbmUgZnVuY3Rpb24gY2FuIGluZGljYXRlIHRoYXQgdGhlIHBhc3NlZCB0b2tlbiBzaG91bGQgYmUgZGlzY2FyZGVkIGJ5IHJldHVybmluZ1xuICAgKiBudWxsLCB1bmRlZmluZWQgb3IgYW4gZW1wdHkgc3RyaW5nLiBUaGlzIHRva2VuIHdpbGwgbm90IGJlIHBhc3NlZCB0byBhbnkgZG93bnN0cmVhbSBwaXBlbGluZVxuICAgKiBmdW5jdGlvbnMgYW5kIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBpbmRleC5cbiAgICpcbiAgICogTXVsdGlwbGUgdG9rZW5zIGNhbiBiZSByZXR1cm5lZCBieSByZXR1cm5pbmcgYW4gYXJyYXkgb2YgdG9rZW5zLiBFYWNoIHRva2VuIHdpbGwgYmUgcGFzc2VkXG4gICAqIHRvIGFueSBkb3duc3RyZWFtIHBpcGVsaW5lIGZ1bmN0aW9ucyBhbmQgYWxsIHdpbGwgcmV0dXJuZWQgdG9rZW5zIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGluZGV4LlxuICAgKlxuICAgKiBBbnkgbnVtYmVyIG9mIHBpcGVsaW5lIGZ1bmN0aW9ucyBtYXkgYmUgY2hhaW5lZCB0b2dldGhlciB1c2luZyBhIGx1bnIuUGlwZWxpbmUuXG4gICAqXG4gICAqIEBpbnRlcmZhY2UgbHVuci5QaXBlbGluZUZ1bmN0aW9uXG4gICAqIEBwYXJhbSB7bHVuci5Ub2tlbn0gdG9rZW4gLSBBIHRva2VuIGZyb20gdGhlIGRvY3VtZW50IGJlaW5nIHByb2Nlc3NlZC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGkgLSBUaGUgaW5kZXggb2YgdGhpcyB0b2tlbiBpbiB0aGUgY29tcGxldGUgbGlzdCBvZiB0b2tlbnMgZm9yIHRoaXMgZG9jdW1lbnQvZmllbGQuXG4gICAqIEBwYXJhbSB7bHVuci5Ub2tlbltdfSB0b2tlbnMgLSBBbGwgdG9rZW5zIGZvciB0aGlzIGRvY3VtZW50L2ZpZWxkLlxuICAgKiBAcmV0dXJucyB7KD9sdW5yLlRva2VufGx1bnIuVG9rZW5bXSl9XG4gICAqL1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGZ1bmN0aW9uIHdpdGggdGhlIHBpcGVsaW5lLlxuICAgKlxuICAgKiBGdW5jdGlvbnMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgcGlwZWxpbmUgc2hvdWxkIGJlIHJlZ2lzdGVyZWQgaWYgdGhlIHBpcGVsaW5lXG4gICAqIG5lZWRzIHRvIGJlIHNlcmlhbGlzZWQsIG9yIGEgc2VyaWFsaXNlZCBwaXBlbGluZSBuZWVkcyB0byBiZSBsb2FkZWQuXG4gICAqXG4gICAqIFJlZ2lzdGVyaW5nIGEgZnVuY3Rpb24gZG9lcyBub3QgYWRkIGl0IHRvIGEgcGlwZWxpbmUsIGZ1bmN0aW9ucyBtdXN0IHN0aWxsIGJlXG4gICAqIGFkZGVkIHRvIGluc3RhbmNlcyBvZiB0aGUgcGlwZWxpbmUgZm9yIHRoZW0gdG8gYmUgdXNlZCB3aGVuIHJ1bm5pbmcgYSBwaXBlbGluZS5cbiAgICpcbiAgICogQHBhcmFtIHtsdW5yLlBpcGVsaW5lRnVuY3Rpb259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGNoZWNrIGZvci5cbiAgICogQHBhcmFtIHtTdHJpbmd9IGxhYmVsIC0gVGhlIGxhYmVsIHRvIHJlZ2lzdGVyIHRoaXMgZnVuY3Rpb24gd2l0aFxuICAgKi9cbiAgbHVuci5QaXBlbGluZS5yZWdpc3RlckZ1bmN0aW9uID0gZnVuY3Rpb24gKGZuLCBsYWJlbCkge1xuICAgIGlmIChsYWJlbCBpbiB0aGlzLnJlZ2lzdGVyZWRGdW5jdGlvbnMpIHtcbiAgICAgIGx1bnIudXRpbHMud2FybihcIk92ZXJ3cml0aW5nIGV4aXN0aW5nIHJlZ2lzdGVyZWQgZnVuY3Rpb246IFwiICsgbGFiZWwpO1xuICAgIH1cblxuICAgIGZuLmxhYmVsID0gbGFiZWw7XG4gICAgbHVuci5QaXBlbGluZS5yZWdpc3RlcmVkRnVuY3Rpb25zW2ZuLmxhYmVsXSA9IGZuO1xuICB9O1xuXG4gIC8qKlxuICAgKiBXYXJucyBpZiB0aGUgZnVuY3Rpb24gaXMgbm90IHJlZ2lzdGVyZWQgYXMgYSBQaXBlbGluZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtsdW5yLlBpcGVsaW5lRnVuY3Rpb259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGNoZWNrIGZvci5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIGx1bnIuUGlwZWxpbmUud2FybklmRnVuY3Rpb25Ob3RSZWdpc3RlcmVkID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgdmFyIGlzUmVnaXN0ZXJlZCA9IGZuLmxhYmVsICYmIGZuLmxhYmVsIGluIHRoaXMucmVnaXN0ZXJlZEZ1bmN0aW9ucztcblxuICAgIGlmICghaXNSZWdpc3RlcmVkKSB7XG4gICAgICBsdW5yLnV0aWxzLndhcm4oXG4gICAgICAgIFwiRnVuY3Rpb24gaXMgbm90IHJlZ2lzdGVyZWQgd2l0aCBwaXBlbGluZS4gVGhpcyBtYXkgY2F1c2UgcHJvYmxlbXMgd2hlbiBzZXJpYWxpc2luZyB0aGUgaW5kZXguXFxuXCIsXG4gICAgICAgIGZuXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogTG9hZHMgYSBwcmV2aW91c2x5IHNlcmlhbGlzZWQgcGlwZWxpbmUuXG4gICAqXG4gICAqIEFsbCBmdW5jdGlvbnMgdG8gYmUgbG9hZGVkIG11c3QgYWxyZWFkeSBiZSByZWdpc3RlcmVkIHdpdGggbHVuci5QaXBlbGluZS5cbiAgICogSWYgYW55IGZ1bmN0aW9uIGZyb20gdGhlIHNlcmlhbGlzZWQgZGF0YSBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCB0aGVuIGFuXG4gICAqIGVycm9yIHdpbGwgYmUgdGhyb3duLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gc2VyaWFsaXNlZCAtIFRoZSBzZXJpYWxpc2VkIHBpcGVsaW5lIHRvIGxvYWQuXG4gICAqIEByZXR1cm5zIHtsdW5yLlBpcGVsaW5lfVxuICAgKi9cbiAgbHVuci5QaXBlbGluZS5sb2FkID0gZnVuY3Rpb24gKHNlcmlhbGlzZWQpIHtcbiAgICB2YXIgcGlwZWxpbmUgPSBuZXcgbHVuci5QaXBlbGluZSgpO1xuXG4gICAgc2VyaWFsaXNlZC5mb3JFYWNoKGZ1bmN0aW9uIChmbk5hbWUpIHtcbiAgICAgIHZhciBmbiA9IGx1bnIuUGlwZWxpbmUucmVnaXN0ZXJlZEZ1bmN0aW9uc1tmbk5hbWVdO1xuXG4gICAgICBpZiAoZm4pIHtcbiAgICAgICAgcGlwZWxpbmUuYWRkKGZuKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBsb2FkIHVucmVnaXN0ZXJlZCBmdW5jdGlvbjogXCIgKyBmbk5hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBpcGVsaW5lO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBZGRzIG5ldyBmdW5jdGlvbnMgdG8gdGhlIGVuZCBvZiB0aGUgcGlwZWxpbmUuXG4gICAqXG4gICAqIExvZ3MgYSB3YXJuaW5nIGlmIHRoZSBmdW5jdGlvbiBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtsdW5yLlBpcGVsaW5lRnVuY3Rpb25bXX0gZnVuY3Rpb25zIC0gQW55IG51bWJlciBvZiBmdW5jdGlvbnMgdG8gYWRkIHRvIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIGx1bnIuUGlwZWxpbmUucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZm5zID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblxuICAgIGZucy5mb3JFYWNoKGZ1bmN0aW9uIChmbikge1xuICAgICAgbHVuci5QaXBlbGluZS53YXJuSWZGdW5jdGlvbk5vdFJlZ2lzdGVyZWQoZm4pO1xuICAgICAgdGhpcy5fc3RhY2sucHVzaChmbik7XG4gICAgfSwgdGhpcyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzaW5nbGUgZnVuY3Rpb24gYWZ0ZXIgYSBmdW5jdGlvbiB0aGF0IGFscmVhZHkgZXhpc3RzIGluIHRoZVxuICAgKiBwaXBlbGluZS5cbiAgICpcbiAgICogTG9ncyBhIHdhcm5pbmcgaWYgdGhlIGZ1bmN0aW9uIGhhcyBub3QgYmVlbiByZWdpc3RlcmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge2x1bnIuUGlwZWxpbmVGdW5jdGlvbn0gZXhpc3RpbmdGbiAtIEEgZnVuY3Rpb24gdGhhdCBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgcGlwZWxpbmUuXG4gICAqIEBwYXJhbSB7bHVuci5QaXBlbGluZUZ1bmN0aW9ufSBuZXdGbiAtIFRoZSBuZXcgZnVuY3Rpb24gdG8gYWRkIHRvIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIGx1bnIuUGlwZWxpbmUucHJvdG90eXBlLmFmdGVyID0gZnVuY3Rpb24gKGV4aXN0aW5nRm4sIG5ld0ZuKSB7XG4gICAgbHVuci5QaXBlbGluZS53YXJuSWZGdW5jdGlvbk5vdFJlZ2lzdGVyZWQobmV3Rm4pO1xuXG4gICAgdmFyIHBvcyA9IHRoaXMuX3N0YWNrLmluZGV4T2YoZXhpc3RpbmdGbik7XG4gICAgaWYgKHBvcyA9PSAtMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgZXhpc3RpbmdGblwiKTtcbiAgICB9XG5cbiAgICBwb3MgPSBwb3MgKyAxO1xuICAgIHRoaXMuX3N0YWNrLnNwbGljZShwb3MsIDAsIG5ld0ZuKTtcbiAgfTtcblxuICAvKipcbiAgICogQWRkcyBhIHNpbmdsZSBmdW5jdGlvbiBiZWZvcmUgYSBmdW5jdGlvbiB0aGF0IGFscmVhZHkgZXhpc3RzIGluIHRoZVxuICAgKiBwaXBlbGluZS5cbiAgICpcbiAgICogTG9ncyBhIHdhcm5pbmcgaWYgdGhlIGZ1bmN0aW9uIGhhcyBub3QgYmVlbiByZWdpc3RlcmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge2x1bnIuUGlwZWxpbmVGdW5jdGlvbn0gZXhpc3RpbmdGbiAtIEEgZnVuY3Rpb24gdGhhdCBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgcGlwZWxpbmUuXG4gICAqIEBwYXJhbSB7bHVuci5QaXBlbGluZUZ1bmN0aW9ufSBuZXdGbiAtIFRoZSBuZXcgZnVuY3Rpb24gdG8gYWRkIHRvIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIGx1bnIuUGlwZWxpbmUucHJvdG90eXBlLmJlZm9yZSA9IGZ1bmN0aW9uIChleGlzdGluZ0ZuLCBuZXdGbikge1xuICAgIGx1bnIuUGlwZWxpbmUud2FybklmRnVuY3Rpb25Ob3RSZWdpc3RlcmVkKG5ld0ZuKTtcblxuICAgIHZhciBwb3MgPSB0aGlzLl9zdGFjay5pbmRleE9mKGV4aXN0aW5nRm4pO1xuICAgIGlmIChwb3MgPT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIGV4aXN0aW5nRm5cIik7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhY2suc3BsaWNlKHBvcywgMCwgbmV3Rm4pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgZnVuY3Rpb24gZnJvbSB0aGUgcGlwZWxpbmUuXG4gICAqXG4gICAqIEBwYXJhbSB7bHVuci5QaXBlbGluZUZ1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gcmVtb3ZlIGZyb20gdGhlIHBpcGVsaW5lLlxuICAgKi9cbiAgbHVuci5QaXBlbGluZS5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgdmFyIHBvcyA9IHRoaXMuX3N0YWNrLmluZGV4T2YoZm4pO1xuICAgIGlmIChwb3MgPT0gLTEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGFjay5zcGxpY2UocG9zLCAxKTtcbiAgfTtcblxuICAvKipcbiAgICogUnVucyB0aGUgY3VycmVudCBsaXN0IG9mIGZ1bmN0aW9ucyB0aGF0IG1ha2UgdXAgdGhlIHBpcGVsaW5lIGFnYWluc3QgdGhlXG4gICAqIHBhc3NlZCB0b2tlbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXl9IHRva2VucyBUaGUgdG9rZW5zIHRvIHJ1biB0aHJvdWdoIHRoZSBwaXBlbGluZS5cbiAgICogQHJldHVybnMge0FycmF5fVxuICAgKi9cbiAgbHVuci5QaXBlbGluZS5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKHRva2Vucykge1xuICAgIHZhciBzdGFja0xlbmd0aCA9IHRoaXMuX3N0YWNrLmxlbmd0aDtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RhY2tMZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGZuID0gdGhpcy5fc3RhY2tbaV07XG4gICAgICB2YXIgbWVtbyA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRva2Vucy5sZW5ndGg7IGorKykge1xuICAgICAgICB2YXIgcmVzdWx0ID0gZm4odG9rZW5zW2pdLCBqLCB0b2tlbnMpO1xuXG4gICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB2b2lkIDAgfHwgcmVzdWx0ID09PSBcIlwiKSBjb250aW51ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCByZXN1bHQubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgIG1lbW8ucHVzaChyZXN1bHRba10pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtZW1vLnB1c2gocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0b2tlbnMgPSBtZW1vO1xuICAgIH1cblxuICAgIHJldHVybiB0b2tlbnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgcGFzc2luZyBhIHN0cmluZyB0aHJvdWdoIGEgcGlwZWxpbmUgYW5kIGdldHRpbmdcbiAgICogc3RyaW5ncyBvdXQuIFRoaXMgbWV0aG9kIHRha2VzIGNhcmUgb2Ygd3JhcHBpbmcgdGhlIHBhc3NlZCBzdHJpbmcgaW4gYVxuICAgKiB0b2tlbiBhbmQgbWFwcGluZyB0aGUgcmVzdWx0aW5nIHRva2VucyBiYWNrIHRvIHN0cmluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBUaGUgc3RyaW5nIHRvIHBhc3MgdGhyb3VnaCB0aGUgcGlwZWxpbmUuXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbWV0YWRhdGEgLSBPcHRpb25hbCBtZXRhZGF0YSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgdG9rZW5cbiAgICogcGFzc2VkIHRvIHRoZSBwaXBlbGluZS5cbiAgICogQHJldHVybnMge3N0cmluZ1tdfVxuICAgKi9cbiAgbHVuci5QaXBlbGluZS5wcm90b3R5cGUucnVuU3RyaW5nID0gZnVuY3Rpb24gKHN0ciwgbWV0YWRhdGEpIHtcbiAgICB2YXIgdG9rZW4gPSBuZXcgbHVuci5Ub2tlbihzdHIsIG1ldGFkYXRhKTtcblxuICAgIHJldHVybiB0aGlzLnJ1bihbdG9rZW5dKS5tYXAoZnVuY3Rpb24gKHQpIHtcbiAgICAgIHJldHVybiB0LnRvU3RyaW5nKCk7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgcGlwZWxpbmUgYnkgcmVtb3ZpbmcgYW55IGV4aXN0aW5nIHByb2Nlc3NvcnMuXG4gICAqXG4gICAqL1xuICBsdW5yLlBpcGVsaW5lLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLl9zdGFjayA9IFtdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBpcGVsaW5lIHJlYWR5IGZvciBzZXJpYWxpc2F0aW9uLlxuICAgKlxuICAgKiBMb2dzIGEgd2FybmluZyBpZiB0aGUgZnVuY3Rpb24gaGFzIG5vdCBiZWVuIHJlZ2lzdGVyZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtBcnJheX1cbiAgICovXG4gIGx1bnIuUGlwZWxpbmUucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhY2subWFwKGZ1bmN0aW9uIChmbikge1xuICAgICAgbHVuci5QaXBlbGluZS53YXJuSWZGdW5jdGlvbk5vdFJlZ2lzdGVyZWQoZm4pO1xuXG4gICAgICByZXR1cm4gZm4ubGFiZWw7XG4gICAgfSk7XG4gIH07XG4gIC8qIVxuICAgKiBsdW5yLlZlY3RvclxuICAgKiBDb3B5cmlnaHQgKEMpIDIwMjAgT2xpdmVyIE5pZ2h0aW5nYWxlXG4gICAqL1xuXG4gIC8qKlxuICAgKiBBIHZlY3RvciBpcyB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgdmVjdG9yIHNwYWNlIG9mIGRvY3VtZW50cyBhbmQgcXVlcmllcy4gVGhlc2VcbiAgICogdmVjdG9ycyBzdXBwb3J0IG9wZXJhdGlvbnMgdG8gZGV0ZXJtaW5lIHRoZSBzaW1pbGFyaXR5IGJldHdlZW4gdHdvIGRvY3VtZW50cyBvclxuICAgKiBhIGRvY3VtZW50IGFuZCBhIHF1ZXJ5LlxuICAgKlxuICAgKiBOb3JtYWxseSBubyBwYXJhbWV0ZXJzIGFyZSByZXF1aXJlZCBmb3IgaW5pdGlhbGl6aW5nIGEgdmVjdG9yLCBidXQgaW4gdGhlIGNhc2Ugb2ZcbiAgICogbG9hZGluZyBhIHByZXZpb3VzbHkgZHVtcGVkIHZlY3RvciB0aGUgcmF3IGVsZW1lbnRzIGNhbiBiZSBwcm92aWRlZCB0byB0aGUgY29uc3RydWN0b3IuXG4gICAqXG4gICAqIEZvciBwZXJmb3JtYW5jZSByZWFzb25zIHZlY3RvcnMgYXJlIGltcGxlbWVudGVkIHdpdGggYSBmbGF0IGFycmF5LCB3aGVyZSBhbiBlbGVtZW50c1xuICAgKiBpbmRleCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBpdHMgdmFsdWUuIEUuZy4gW2luZGV4LCB2YWx1ZSwgaW5kZXgsIHZhbHVlXS4gVGhpc1xuICAgKiBhbGxvd3MgdGhlIHVuZGVybHlpbmcgYXJyYXkgdG8gYmUgYXMgc3BhcnNlIGFzIHBvc3NpYmxlIGFuZCBzdGlsbCBvZmZlciBkZWNlbnRcbiAgICogcGVyZm9ybWFuY2Ugd2hlbiBiZWluZyB1c2VkIGZvciB2ZWN0b3IgY2FsY3VsYXRpb25zLlxuICAgKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtOdW1iZXJbXX0gW2VsZW1lbnRzXSAtIFRoZSBmbGF0IGxpc3Qgb2YgZWxlbWVudCBpbmRleCBhbmQgZWxlbWVudCB2YWx1ZSBwYWlycy5cbiAgICovXG4gIGx1bnIuVmVjdG9yID0gZnVuY3Rpb24gKGVsZW1lbnRzKSB7XG4gICAgdGhpcy5fbWFnbml0dWRlID0gMDtcbiAgICB0aGlzLmVsZW1lbnRzID0gZWxlbWVudHMgfHwgW107XG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdmVjdG9yIHRvIGluc2VydCBhIGdpdmVuIGluZGV4LlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseSBieSBpbnNlcnQgYW5kIHVwc2VydC4gSWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBpbmRleGVzIHRoZW5cbiAgICogdGhlIHBvc2l0aW9uIGlzIHJldHVybmVkIGFzIGlmIHRoZSB2YWx1ZSBmb3IgdGhhdCBpbmRleCB3ZXJlIHRvIGJlIHVwZGF0ZWQsIGJ1dCBpdFxuICAgKiBpcyB0aGUgY2FsbGVycyByZXNwb25zaWJpbGl0eSB0byBjaGVjayB3aGV0aGVyIHRoZXJlIGlzIGEgZHVwbGljYXRlIGF0IHRoYXQgaW5kZXhcbiAgICpcbiAgICogQHBhcmFtIHtOdW1iZXJ9IGluc2VydElkeCAtIFRoZSBpbmRleCBhdCB3aGljaCB0aGUgZWxlbWVudCBzaG91bGQgYmUgaW5zZXJ0ZWQuXG4gICAqIEByZXR1cm5zIHtOdW1iZXJ9XG4gICAqL1xuICBsdW5yLlZlY3Rvci5wcm90b3R5cGUucG9zaXRpb25Gb3JJbmRleCA9IGZ1bmN0aW9uIChpbmRleCkge1xuICAgIC8vIEZvciBhbiBlbXB0eSB2ZWN0b3IgdGhlIHR1cGxlIGNhbiBiZSBpbnNlcnRlZCBhdCB0aGUgYmVnaW5uaW5nXG4gICAgaWYgKHRoaXMuZWxlbWVudHMubGVuZ3RoID09IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHZhciBzdGFydCA9IDAsXG4gICAgICBlbmQgPSB0aGlzLmVsZW1lbnRzLmxlbmd0aCAvIDIsXG4gICAgICBzbGljZUxlbmd0aCA9IGVuZCAtIHN0YXJ0LFxuICAgICAgcGl2b3RQb2ludCA9IE1hdGguZmxvb3Ioc2xpY2VMZW5ndGggLyAyKSxcbiAgICAgIHBpdm90SW5kZXggPSB0aGlzLmVsZW1lbnRzW3Bpdm90UG9pbnQgKiAyXTtcblxuICAgIHdoaWxlIChzbGljZUxlbmd0aCA+IDEpIHtcbiAgICAgIGlmIChwaXZvdEluZGV4IDwgaW5kZXgpIHtcbiAgICAgICAgc3RhcnQgPSBwaXZvdFBvaW50O1xuICAgICAgfVxuXG4gICAgICBpZiAocGl2b3RJbmRleCA+IGluZGV4KSB7XG4gICAgICAgIGVuZCA9IHBpdm90UG9pbnQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChwaXZvdEluZGV4ID09IGluZGV4KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBzbGljZUxlbmd0aCA9IGVuZCAtIHN0YXJ0O1xuICAgICAgcGl2b3RQb2ludCA9IHN0YXJ0ICsgTWF0aC5mbG9vcihzbGljZUxlbmd0aCAvIDIpO1xuICAgICAgcGl2b3RJbmRleCA9IHRoaXMuZWxlbWVudHNbcGl2b3RQb2ludCAqIDJdO1xuICAgIH1cblxuICAgIGlmIChwaXZvdEluZGV4ID09IGluZGV4KSB7XG4gICAgICByZXR1cm4gcGl2b3RQb2ludCAqIDI7XG4gICAgfVxuXG4gICAgaWYgKHBpdm90SW5kZXggPiBpbmRleCkge1xuICAgICAgcmV0dXJuIHBpdm90UG9pbnQgKiAyO1xuICAgIH1cblxuICAgIGlmIChwaXZvdEluZGV4IDwgaW5kZXgpIHtcbiAgICAgIHJldHVybiAocGl2b3RQb2ludCArIDEpICogMjtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEluc2VydHMgYW4gZWxlbWVudCBhdCBhbiBpbmRleCB3aXRoaW4gdGhlIHZlY3Rvci5cbiAgICpcbiAgICogRG9lcyBub3QgYWxsb3cgZHVwbGljYXRlcywgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIGVudHJ5XG4gICAqIGZvciB0aGlzIGluZGV4LlxuICAgKlxuICAgKiBAcGFyYW0ge051bWJlcn0gaW5zZXJ0SWR4IC0gVGhlIGluZGV4IGF0IHdoaWNoIHRoZSBlbGVtZW50IHNob3VsZCBiZSBpbnNlcnRlZC5cbiAgICogQHBhcmFtIHtOdW1iZXJ9IHZhbCAtIFRoZSB2YWx1ZSB0byBiZSBpbnNlcnRlZCBpbnRvIHRoZSB2ZWN0b3IuXG4gICAqL1xuICBsdW5yLlZlY3Rvci5wcm90b3R5cGUuaW5zZXJ0ID0gZnVuY3Rpb24gKGluc2VydElkeCwgdmFsKSB7XG4gICAgdGhpcy51cHNlcnQoaW5zZXJ0SWR4LCB2YWwsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRocm93IFwiZHVwbGljYXRlIGluZGV4XCI7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluc2VydHMgb3IgdXBkYXRlcyBhbiBleGlzdGluZyBpbmRleCB3aXRoaW4gdGhlIHZlY3Rvci5cbiAgICpcbiAgICogQHBhcmFtIHtOdW1iZXJ9IGluc2VydElkeCAtIFRoZSBpbmRleCBhdCB3aGljaCB0aGUgZWxlbWVudCBzaG91bGQgYmUgaW5zZXJ0ZWQuXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB2YWwgLSBUaGUgdmFsdWUgdG8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgdmVjdG9yLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmbiAtIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgZm9yIHVwZGF0ZXMsIHRoZSBleGlzdGluZyB2YWx1ZSBhbmQgdGhlXG4gICAqIHJlcXVlc3RlZCB2YWx1ZSBhcmUgcGFzc2VkIGFzIGFyZ3VtZW50c1xuICAgKi9cbiAgbHVuci5WZWN0b3IucHJvdG90eXBlLnVwc2VydCA9IGZ1bmN0aW9uIChpbnNlcnRJZHgsIHZhbCwgZm4pIHtcbiAgICB0aGlzLl9tYWduaXR1ZGUgPSAwO1xuICAgIHZhciBwb3NpdGlvbiA9IHRoaXMucG9zaXRpb25Gb3JJbmRleChpbnNlcnRJZHgpO1xuXG4gICAgaWYgKHRoaXMuZWxlbWVudHNbcG9zaXRpb25dID09IGluc2VydElkeCkge1xuICAgICAgdGhpcy5lbGVtZW50c1twb3NpdGlvbiArIDFdID0gZm4odGhpcy5lbGVtZW50c1twb3NpdGlvbiArIDFdLCB2YWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVsZW1lbnRzLnNwbGljZShwb3NpdGlvbiwgMCwgaW5zZXJ0SWR4LCB2YWwpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgbWFnbml0dWRlIG9mIHRoaXMgdmVjdG9yLlxuICAgKlxuICAgKiBAcmV0dXJucyB7TnVtYmVyfVxuICAgKi9cbiAgbHVuci5WZWN0b3IucHJvdG90eXBlLm1hZ25pdHVkZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy5fbWFnbml0dWRlKSByZXR1cm4gdGhpcy5fbWFnbml0dWRlO1xuXG4gICAgdmFyIHN1bU9mU3F1YXJlcyA9IDAsXG4gICAgICBlbGVtZW50c0xlbmd0aCA9IHRoaXMuZWxlbWVudHMubGVuZ3RoO1xuXG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBlbGVtZW50c0xlbmd0aDsgaSArPSAyKSB7XG4gICAgICB2YXIgdmFsID0gdGhpcy5lbGVtZW50c1tpXTtcbiAgICAgIHN1bU9mU3F1YXJlcyArPSB2YWwgKiB2YWw7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLl9tYWduaXR1ZGUgPSBNYXRoLnNxcnQoc3VtT2ZTcXVhcmVzKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHRoaXMgdmVjdG9yIGFuZCBhbm90aGVyIHZlY3Rvci5cbiAgICpcbiAgICogQHBhcmFtIHtsdW5yLlZlY3Rvcn0gb3RoZXJWZWN0b3IgLSBUaGUgdmVjdG9yIHRvIGNvbXB1dGUgdGhlIGRvdCBwcm9kdWN0IHdpdGguXG4gICAqIEByZXR1cm5zIHtOdW1iZXJ9XG4gICAqL1xuICBsdW5yLlZlY3Rvci5wcm90b3R5cGUuZG90ID0gZnVuY3Rpb24gKG90aGVyVmVjdG9yKSB7XG4gICAgdmFyIGRvdFByb2R1Y3QgPSAwLFxuICAgICAgYSA9IHRoaXMuZWxlbWVudHMsXG4gICAgICBiID0gb3RoZXJWZWN0b3IuZWxlbWVudHMsXG4gICAgICBhTGVuID0gYS5sZW5ndGgsXG4gICAgICBiTGVuID0gYi5sZW5ndGgsXG4gICAgICBhVmFsID0gMCxcbiAgICAgIGJWYWwgPSAwLFxuICAgICAgaSA9IDAsXG4gICAgICBqID0gMDtcblxuICAgIHdoaWxlIChpIDwgYUxlbiAmJiBqIDwgYkxlbikge1xuICAgICAgKGFWYWwgPSBhW2ldKSwgKGJWYWwgPSBiW2pdKTtcbiAgICAgIGlmIChhVmFsIDwgYlZhbCkge1xuICAgICAgICBpICs9IDI7XG4gICAgICB9IGVsc2UgaWYgKGFWYWwgPiBiVmFsKSB7XG4gICAgICAgIGogKz0gMjtcbiAgICAgIH0gZWxzZSBpZiAoYVZhbCA9PSBiVmFsKSB7XG4gICAgICAgIGRvdFByb2R1Y3QgKz0gYVtpICsgMV0gKiBiW2ogKyAxXTtcbiAgICAgICAgaSArPSAyO1xuICAgICAgICBqICs9IDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRvdFByb2R1Y3Q7XG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHNpbWlsYXJpdHkgYmV0d2VlbiB0aGlzIHZlY3RvciBhbmQgYW5vdGhlciB2ZWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSB7bHVuci5WZWN0b3J9IG90aGVyVmVjdG9yIC0gVGhlIG90aGVyIHZlY3RvciB0byBjYWxjdWxhdGUgdGhlXG4gICAqIHNpbWlsYXJpdHkgd2l0aC5cbiAgICogQHJldHVybnMge051bWJlcn1cbiAgICovXG4gIGx1bnIuVmVjdG9yLnByb3RvdHlwZS5zaW1pbGFyaXR5ID0gZnVuY3Rpb24gKG90aGVyVmVjdG9yKSB7XG4gICAgcmV0dXJuIHRoaXMuZG90KG90aGVyVmVjdG9yKSAvIHRoaXMubWFnbml0dWRlKCkgfHwgMDtcbiAgfTtcblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHZlY3RvciB0byBhbiBhcnJheSBvZiB0aGUgZWxlbWVudHMgd2l0aGluIHRoZSB2ZWN0b3IuXG4gICAqXG4gICAqIEByZXR1cm5zIHtOdW1iZXJbXX1cbiAgICovXG4gIGx1bnIuVmVjdG9yLnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBvdXRwdXQgPSBuZXcgQXJyYXkodGhpcy5lbGVtZW50cy5sZW5ndGggLyAyKTtcblxuICAgIGZvciAodmFyIGkgPSAxLCBqID0gMDsgaSA8IHRoaXMuZWxlbWVudHMubGVuZ3RoOyBpICs9IDIsIGorKykge1xuICAgICAgb3V0cHV0W2pdID0gdGhpcy5lbGVtZW50c1tpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBBIEpTT04gc2VyaWFsaXphYmxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2ZWN0b3IuXG4gICAqXG4gICAqIEByZXR1cm5zIHtOdW1iZXJbXX1cbiAgICovXG4gIGx1bnIuVmVjdG9yLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudHM7XG4gIH07XG4gIC8qIGVzbGludC1kaXNhYmxlICovXG4gIC8qIVxuICAgKiBsdW5yLnN0ZW1tZXJcbiAgICogQ29weXJpZ2h0IChDKSAyMDIwIE9saXZlciBOaWdodGluZ2FsZVxuICAgKiBJbmNsdWRlcyBjb2RlIGZyb20gLSBodHRwOi8vdGFydGFydXMub3JnL35tYXJ0aW4vUG9ydGVyU3RlbW1lci9qcy50eHRcbiAgICovXG5cbiAgLyoqXG4gICAqIGx1bnIuc3RlbW1lciBpcyBhbiBlbmdsaXNoIGxhbmd1YWdlIHN0ZW1tZXIsIHRoaXMgaXMgYSBKYXZhU2NyaXB0XG4gICAqIGltcGxlbWVudGF0aW9uIG9mIHRoZSBQb3J0ZXJTdGVtbWVyIHRha2VuIGZyb20gaHR0cDovL3RhcnRhcnVzLm9yZy9+bWFydGluXG4gICAqXG4gICAqIEBzdGF0aWNcbiAgICogQGltcGxlbWVudHMge2x1bnIuUGlwZWxpbmVGdW5jdGlvbn1cbiAgICogQHBhcmFtIHtsdW5yLlRva2VufSB0b2tlbiAtIFRoZSBzdHJpbmcgdG8gc3RlbVxuICAgKiBAcmV0dXJucyB7bHVuci5Ub2tlbn1cbiAgICogQHNlZSB7QGxpbmsgbHVuci5QaXBlbGluZX1cbiAgICogQGZ1bmN0aW9uXG4gICAqL1xuICBsdW5yLnN0ZW1tZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBzdGVwMmxpc3QgPSB7XG4gICAgICAgIGF0aW9uYWw6IFwiYXRlXCIsXG4gICAgICAgIHRpb25hbDogXCJ0aW9uXCIsXG4gICAgICAgIGVuY2k6IFwiZW5jZVwiLFxuICAgICAgICBhbmNpOiBcImFuY2VcIixcbiAgICAgICAgaXplcjogXCJpemVcIixcbiAgICAgICAgYmxpOiBcImJsZVwiLFxuICAgICAgICBhbGxpOiBcImFsXCIsXG4gICAgICAgIGVudGxpOiBcImVudFwiLFxuICAgICAgICBlbGk6IFwiZVwiLFxuICAgICAgICBvdXNsaTogXCJvdXNcIixcbiAgICAgICAgaXphdGlvbjogXCJpemVcIixcbiAgICAgICAgYXRpb246IFwiYXRlXCIsXG4gICAgICAgIGF0b3I6IFwiYXRlXCIsXG4gICAgICAgIGFsaXNtOiBcImFsXCIsXG4gICAgICAgIGl2ZW5lc3M6IFwiaXZlXCIsXG4gICAgICAgIGZ1bG5lc3M6IFwiZnVsXCIsXG4gICAgICAgIG91c25lc3M6IFwib3VzXCIsXG4gICAgICAgIGFsaXRpOiBcImFsXCIsXG4gICAgICAgIGl2aXRpOiBcIml2ZVwiLFxuICAgICAgICBiaWxpdGk6IFwiYmxlXCIsXG4gICAgICAgIGxvZ2k6IFwibG9nXCIsXG4gICAgICB9LFxuICAgICAgc3RlcDNsaXN0ID0ge1xuICAgICAgICBpY2F0ZTogXCJpY1wiLFxuICAgICAgICBhdGl2ZTogXCJcIixcbiAgICAgICAgYWxpemU6IFwiYWxcIixcbiAgICAgICAgaWNpdGk6IFwiaWNcIixcbiAgICAgICAgaWNhbDogXCJpY1wiLFxuICAgICAgICBmdWw6IFwiXCIsXG4gICAgICAgIG5lc3M6IFwiXCIsXG4gICAgICB9LFxuICAgICAgYyA9IFwiW15hZWlvdV1cIiwgLy8gY29uc29uYW50XG4gICAgICB2ID0gXCJbYWVpb3V5XVwiLCAvLyB2b3dlbFxuICAgICAgQyA9IGMgKyBcIlteYWVpb3V5XSpcIiwgLy8gY29uc29uYW50IHNlcXVlbmNlXG4gICAgICBWID0gdiArIFwiW2FlaW91XSpcIiwgLy8gdm93ZWwgc2VxdWVuY2VcbiAgICAgIG1ncjAgPSBcIl4oXCIgKyBDICsgXCIpP1wiICsgViArIEMsIC8vIFtDXVZDLi4uIGlzIG0+MFxuICAgICAgbWVxMSA9IFwiXihcIiArIEMgKyBcIik/XCIgKyBWICsgQyArIFwiKFwiICsgViArIFwiKT8kXCIsIC8vIFtDXVZDW1ZdIGlzIG09MVxuICAgICAgbWdyMSA9IFwiXihcIiArIEMgKyBcIik/XCIgKyBWICsgQyArIFYgKyBDLCAvLyBbQ11WQ1ZDLi4uIGlzIG0+MVxuICAgICAgc192ID0gXCJeKFwiICsgQyArIFwiKT9cIiArIHY7IC8vIHZvd2VsIGluIHN0ZW1cblxuICAgIHZhciByZV9tZ3IwID0gbmV3IFJlZ0V4cChtZ3IwKTtcbiAgICB2YXIgcmVfbWdyMSA9IG5ldyBSZWdFeHAobWdyMSk7XG4gICAgdmFyIHJlX21lcTEgPSBuZXcgUmVnRXhwKG1lcTEpO1xuICAgIHZhciByZV9zX3YgPSBuZXcgUmVnRXhwKHNfdik7XG5cbiAgICB2YXIgcmVfMWEgPSAvXiguKz8pKHNzfGkpZXMkLztcbiAgICB2YXIgcmUyXzFhID0gL14oLis/KShbXnNdKXMkLztcbiAgICB2YXIgcmVfMWIgPSAvXiguKz8pZWVkJC87XG4gICAgdmFyIHJlMl8xYiA9IC9eKC4rPykoZWR8aW5nKSQvO1xuICAgIHZhciByZV8xYl8yID0gLy4kLztcbiAgICB2YXIgcmUyXzFiXzIgPSAvKGF0fGJsfGl6KSQvO1xuICAgIHZhciByZTNfMWJfMiA9IG5ldyBSZWdFeHAoXCIoW15hZWlvdXlsc3pdKVxcXFwxJFwiKTtcbiAgICB2YXIgcmU0XzFiXzIgPSBuZXcgUmVnRXhwKFwiXlwiICsgQyArIHYgKyBcIlteYWVpb3V3eHldJFwiKTtcblxuICAgIHZhciByZV8xYyA9IC9eKC4rP1teYWVpb3VdKXkkLztcbiAgICB2YXIgcmVfMiA9XG4gICAgICAvXiguKz8pKGF0aW9uYWx8dGlvbmFsfGVuY2l8YW5jaXxpemVyfGJsaXxhbGxpfGVudGxpfGVsaXxvdXNsaXxpemF0aW9ufGF0aW9ufGF0b3J8YWxpc218aXZlbmVzc3xmdWxuZXNzfG91c25lc3N8YWxpdGl8aXZpdGl8YmlsaXRpfGxvZ2kpJC87XG5cbiAgICB2YXIgcmVfMyA9IC9eKC4rPykoaWNhdGV8YXRpdmV8YWxpemV8aWNpdGl8aWNhbHxmdWx8bmVzcykkLztcblxuICAgIHZhciByZV80ID1cbiAgICAgIC9eKC4rPykoYWx8YW5jZXxlbmNlfGVyfGljfGFibGV8aWJsZXxhbnR8ZW1lbnR8bWVudHxlbnR8b3V8aXNtfGF0ZXxpdGl8b3VzfGl2ZXxpemUpJC87XG4gICAgdmFyIHJlMl80ID0gL14oLis/KShzfHQpKGlvbikkLztcblxuICAgIHZhciByZV81ID0gL14oLis/KWUkLztcbiAgICB2YXIgcmVfNV8xID0gL2xsJC87XG4gICAgdmFyIHJlM181ID0gbmV3IFJlZ0V4cChcIl5cIiArIEMgKyB2ICsgXCJbXmFlaW91d3h5XSRcIik7XG5cbiAgICB2YXIgcG9ydGVyU3RlbW1lciA9IGZ1bmN0aW9uIHBvcnRlclN0ZW1tZXIodykge1xuICAgICAgdmFyIHN0ZW0sIHN1ZmZpeCwgZmlyc3RjaCwgcmUsIHJlMiwgcmUzLCByZTQ7XG5cbiAgICAgIGlmICh3Lmxlbmd0aCA8IDMpIHtcbiAgICAgICAgcmV0dXJuIHc7XG4gICAgICB9XG5cbiAgICAgIGZpcnN0Y2ggPSB3LnN1YnN0cigwLCAxKTtcbiAgICAgIGlmIChmaXJzdGNoID09IFwieVwiKSB7XG4gICAgICAgIHcgPSBmaXJzdGNoLnRvVXBwZXJDYXNlKCkgKyB3LnN1YnN0cigxKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3RlcCAxYVxuICAgICAgcmUgPSByZV8xYTtcbiAgICAgIHJlMiA9IHJlMl8xYTtcblxuICAgICAgaWYgKHJlLnRlc3QodykpIHtcbiAgICAgICAgdyA9IHcucmVwbGFjZShyZSwgXCIkMSQyXCIpO1xuICAgICAgfSBlbHNlIGlmIChyZTIudGVzdCh3KSkge1xuICAgICAgICB3ID0gdy5yZXBsYWNlKHJlMiwgXCIkMSQyXCIpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdGVwIDFiXG4gICAgICByZSA9IHJlXzFiO1xuICAgICAgcmUyID0gcmUyXzFiO1xuICAgICAgaWYgKHJlLnRlc3QodykpIHtcbiAgICAgICAgdmFyIGZwID0gcmUuZXhlYyh3KTtcbiAgICAgICAgcmUgPSByZV9tZ3IwO1xuICAgICAgICBpZiAocmUudGVzdChmcFsxXSkpIHtcbiAgICAgICAgICByZSA9IHJlXzFiXzI7XG4gICAgICAgICAgdyA9IHcucmVwbGFjZShyZSwgXCJcIik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocmUyLnRlc3QodykpIHtcbiAgICAgICAgdmFyIGZwID0gcmUyLmV4ZWModyk7XG4gICAgICAgIHN0ZW0gPSBmcFsxXTtcbiAgICAgICAgcmUyID0gcmVfc192O1xuICAgICAgICBpZiAocmUyLnRlc3Qoc3RlbSkpIHtcbiAgICAgICAgICB3ID0gc3RlbTtcbiAgICAgICAgICByZTIgPSByZTJfMWJfMjtcbiAgICAgICAgICByZTMgPSByZTNfMWJfMjtcbiAgICAgICAgICByZTQgPSByZTRfMWJfMjtcbiAgICAgICAgICBpZiAocmUyLnRlc3QodykpIHtcbiAgICAgICAgICAgIHcgPSB3ICsgXCJlXCI7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZTMudGVzdCh3KSkge1xuICAgICAgICAgICAgcmUgPSByZV8xYl8yO1xuICAgICAgICAgICAgdyA9IHcucmVwbGFjZShyZSwgXCJcIik7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZTQudGVzdCh3KSkge1xuICAgICAgICAgICAgdyA9IHcgKyBcImVcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU3RlcCAxYyAtIHJlcGxhY2Ugc3VmZml4IHkgb3IgWSBieSBpIGlmIHByZWNlZGVkIGJ5IGEgbm9uLXZvd2VsIHdoaWNoIGlzIG5vdCB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSB3b3JkIChzbyBjcnkgLT4gY3JpLCBieSAtPiBieSwgc2F5IC0+IHNheSlcbiAgICAgIHJlID0gcmVfMWM7XG4gICAgICBpZiAocmUudGVzdCh3KSkge1xuICAgICAgICB2YXIgZnAgPSByZS5leGVjKHcpO1xuICAgICAgICBzdGVtID0gZnBbMV07XG4gICAgICAgIHcgPSBzdGVtICsgXCJpXCI7XG4gICAgICB9XG5cbiAgICAgIC8vIFN0ZXAgMlxuICAgICAgcmUgPSByZV8yO1xuICAgICAgaWYgKHJlLnRlc3QodykpIHtcbiAgICAgICAgdmFyIGZwID0gcmUuZXhlYyh3KTtcbiAgICAgICAgc3RlbSA9IGZwWzFdO1xuICAgICAgICBzdWZmaXggPSBmcFsyXTtcbiAgICAgICAgcmUgPSByZV9tZ3IwO1xuICAgICAgICBpZiAocmUudGVzdChzdGVtKSkge1xuICAgICAgICAgIHcgPSBzdGVtICsgc3RlcDJsaXN0W3N1ZmZpeF07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU3RlcCAzXG4gICAgICByZSA9IHJlXzM7XG4gICAgICBpZiAocmUudGVzdCh3KSkge1xuICAgICAgICB2YXIgZnAgPSByZS5leGVjKHcpO1xuICAgICAgICBzdGVtID0gZnBbMV07XG4gICAgICAgIHN1ZmZpeCA9IGZwWzJdO1xuICAgICAgICByZSA9IHJlX21ncjA7XG4gICAgICAgIGlmIChyZS50ZXN0KHN0ZW0pKSB7XG4gICAgICAgICAgdyA9IHN0ZW0gKyBzdGVwM2xpc3Rbc3VmZml4XTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTdGVwIDRcbiAgICAgIHJlID0gcmVfNDtcbiAgICAgIHJlMiA9IHJlMl80O1xuICAgICAgaWYgKHJlLnRlc3QodykpIHtcbiAgICAgICAgdmFyIGZwID0gcmUuZXhlYyh3KTtcbiAgICAgICAgc3RlbSA9IGZwWzFdO1xuICAgICAgICByZSA9IHJlX21ncjE7XG4gICAgICAgIGlmIChyZS50ZXN0KHN0ZW0pKSB7XG4gICAgICAgICAgdyA9IHN0ZW07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocmUyLnRlc3QodykpIHtcbiAgICAgICAgdmFyIGZwID0gcmUyLmV4ZWModyk7XG4gICAgICAgIHN0ZW0gPSBmcFsxXSArIGZwWzJdO1xuICAgICAgICByZTIgPSByZV9tZ3IxO1xuICAgICAgICBpZiAocmUyLnRlc3Qoc3RlbSkpIHtcbiAgICAgICAgICB3ID0gc3RlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTdGVwIDVcbiAgICAgIHJlID0gcmVfNTtcbiAgICAgIGlmIChyZS50ZXN0KHcpKSB7XG4gICAgICAgIHZhciBmcCA9IHJlLmV4ZWModyk7XG4gICAgICAgIHN0ZW0gPSBmcFsxXTtcbiAgICAgICAgcmUgPSByZV9tZ3IxO1xuICAgICAgICByZTIgPSByZV9tZXExO1xuICAgICAgICByZTMgPSByZTNfNTtcbiAgICAgICAgaWYgKHJlLnRlc3Qoc3RlbSkgfHwgKHJlMi50ZXN0KHN0ZW0pICYmICFyZTMudGVzdChzdGVtKSkpIHtcbiAgICAgICAgICB3ID0gc3RlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZSA9IHJlXzVfMTtcbiAgICAgIHJlMiA9IHJlX21ncjE7XG4gICAgICBpZiAocmUudGVzdCh3KSAmJiByZTIudGVzdCh3KSkge1xuICAgICAgICByZSA9IHJlXzFiXzI7XG4gICAgICAgIHcgPSB3LnJlcGxhY2UocmUsIFwiXCIpO1xuICAgICAgfVxuXG4gICAgICAvLyBhbmQgdHVybiBpbml0aWFsIFkgYmFjayB0byB5XG5cbiAgICAgIGlmIChmaXJzdGNoID09IFwieVwiKSB7XG4gICAgICAgIHcgPSBmaXJzdGNoLnRvTG93ZXJDYXNlKCkgKyB3LnN1YnN0cigxKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHc7XG4gICAgfTtcblxuICAgIHJldHVybiBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgIHJldHVybiB0b2tlbi51cGRhdGUocG9ydGVyU3RlbW1lcik7XG4gICAgfTtcbiAgfSkoKTtcblxuICBsdW5yLlBpcGVsaW5lLnJlZ2lzdGVyRnVuY3Rpb24obHVuci5zdGVtbWVyLCBcInN0ZW1tZXJcIik7XG4gIC8qIVxuICAgKiBsdW5yLnN0b3BXb3JkRmlsdGVyXG4gICAqIENvcHlyaWdodCAoQykgMjAyMCBPbGl2ZXIgTmlnaHRpbmdhbGVcbiAgICovXG5cbiAgLyoqXG4gICAqIGx1bnIuZ2VuZXJhdGVTdG9wV29yZEZpbHRlciBidWlsZHMgYSBzdG9wV29yZEZpbHRlciBmdW5jdGlvbiBmcm9tIHRoZSBwcm92aWRlZFxuICAgKiBsaXN0IG9mIHN0b3Agd29yZHMuXG4gICAqXG4gICAqIFRoZSBidWlsdCBpbiBsdW5yLnN0b3BXb3JkRmlsdGVyIGlzIGJ1aWx0IHVzaW5nIHRoaXMgZ2VuZXJhdG9yIGFuZCBjYW4gYmUgdXNlZFxuICAgKiB0byBnZW5lcmF0ZSBjdXN0b20gc3RvcFdvcmRGaWx0ZXJzIGZvciBhcHBsaWNhdGlvbnMgb3Igbm9uIEVuZ2xpc2ggbGFuZ3VhZ2VzLlxuICAgKlxuICAgKiBAZnVuY3Rpb25cbiAgICogQHBhcmFtIHtBcnJheX0gdG9rZW4gVGhlIHRva2VuIHRvIHBhc3MgdGhyb3VnaCB0aGUgZmlsdGVyXG4gICAqIEByZXR1cm5zIHtsdW5yLlBpcGVsaW5lRnVuY3Rpb259XG4gICAqIEBzZWUgbHVuci5QaXBlbGluZVxuICAgKiBAc2VlIGx1bnIuc3RvcFdvcmRGaWx0ZXJcbiAgICovXG4gIGx1bnIuZ2VuZXJhdGVTdG9wV29yZEZpbHRlciA9IGZ1bmN0aW9uIChzdG9wV29yZHMpIHtcbiAgICB2YXIgd29yZHMgPSBzdG9wV29yZHMucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBzdG9wV29yZCkge1xuICAgICAgbWVtb1tzdG9wV29yZF0gPSBzdG9wV29yZDtcbiAgICAgIHJldHVybiBtZW1vO1xuICAgIH0sIHt9KTtcblxuICAgIHJldHVybiBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgIGlmICh0b2tlbiAmJiB3b3Jkc1t0b2tlbi50b1N0cmluZygpXSAhPT0gdG9rZW4udG9TdHJpbmcoKSkgcmV0dXJuIHRva2VuO1xuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIGx1bnIuc3RvcFdvcmRGaWx0ZXIgaXMgYW4gRW5nbGlzaCBsYW5ndWFnZSBzdG9wIHdvcmQgbGlzdCBmaWx0ZXIsIGFueSB3b3Jkc1xuICAgKiBjb250YWluZWQgaW4gdGhlIGxpc3Qgd2lsbCBub3QgYmUgcGFzc2VkIHRocm91Z2ggdGhlIGZpbHRlci5cbiAgICpcbiAgICogVGhpcyBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGluIHRoZSBQaXBlbGluZS4gSWYgdGhlIHRva2VuIGRvZXMgbm90IHBhc3MgdGhlXG4gICAqIGZpbHRlciB0aGVuIHVuZGVmaW5lZCB3aWxsIGJlIHJldHVybmVkLlxuICAgKlxuICAgKiBAZnVuY3Rpb25cbiAgICogQGltcGxlbWVudHMge2x1bnIuUGlwZWxpbmVGdW5jdGlvbn1cbiAgICogQHBhcmFtcyB7bHVuci5Ub2tlbn0gdG9rZW4gLSBBIHRva2VuIHRvIGNoZWNrIGZvciBiZWluZyBhIHN0b3Agd29yZC5cbiAgICogQHJldHVybnMge2x1bnIuVG9rZW59XG4gICAqIEBzZWUge0BsaW5rIGx1bnIuUGlwZWxpbmV9XG4gICAqL1xuICBsdW5yLnN0b3BXb3JkRmlsdGVyID0gbHVuci5nZW5lcmF0ZVN0b3BXb3JkRmlsdGVyKFtcbiAgICBcImFcIixcbiAgICBcImFibGVcIixcbiAgICBcImFib3V0XCIsXG4gICAgXCJhY3Jvc3NcIixcbiAgICBcImFmdGVyXCIsXG4gICAgXCJhbGxcIixcbiAgICBcImFsbW9zdFwiLFxuICAgIFwiYWxzb1wiLFxuICAgIFwiYW1cIixcbiAgICBcImFtb25nXCIsXG4gICAgXCJhblwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJhbnlcIixcbiAgICBcImFyZVwiLFxuICAgIFwiYXNcIixcbiAgICBcImF0XCIsXG4gICAgXCJiZVwiLFxuICAgIFwiYmVjYXVzZVwiLFxuICAgIFwiYmVlblwiLFxuICAgIFwiYnV0XCIsXG4gICAgXCJieVwiLFxuICAgIFwiY2FuXCIsXG4gICAgXCJjYW5ub3RcIixcbiAgICBcImNvdWxkXCIsXG4gICAgXCJkZWFyXCIsXG4gICAgXCJkaWRcIixcbiAgICBcImRvXCIsXG4gICAgXCJkb2VzXCIsXG4gICAgXCJlaXRoZXJcIixcbiAgICBcImVsc2VcIixcbiAgICBcImV2ZXJcIixcbiAgICBcImV2ZXJ5XCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZyb21cIixcbiAgICBcImdldFwiLFxuICAgIFwiZ290XCIsXG4gICAgXCJoYWRcIixcbiAgICBcImhhc1wiLFxuICAgIFwiaGF2ZVwiLFxuICAgIFwiaGVcIixcbiAgICBcImhlclwiLFxuICAgIFwiaGVyc1wiLFxuICAgIFwiaGltXCIsXG4gICAgXCJoaXNcIixcbiAgICBcImhvd1wiLFxuICAgIFwiaG93ZXZlclwiLFxuICAgIFwiaVwiLFxuICAgIFwiaWZcIixcbiAgICBcImluXCIsXG4gICAgXCJpbnRvXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiaXRcIixcbiAgICBcIml0c1wiLFxuICAgIFwianVzdFwiLFxuICAgIFwibGVhc3RcIixcbiAgICBcImxldFwiLFxuICAgIFwibGlrZVwiLFxuICAgIFwibGlrZWx5XCIsXG4gICAgXCJtYXlcIixcbiAgICBcIm1lXCIsXG4gICAgXCJtaWdodFwiLFxuICAgIFwibW9zdFwiLFxuICAgIFwibXVzdFwiLFxuICAgIFwibXlcIixcbiAgICBcIm5laXRoZXJcIixcbiAgICBcIm5vXCIsXG4gICAgXCJub3JcIixcbiAgICBcIm5vdFwiLFxuICAgIFwib2ZcIixcbiAgICBcIm9mZlwiLFxuICAgIFwib2Z0ZW5cIixcbiAgICBcIm9uXCIsXG4gICAgXCJvbmx5XCIsXG4gICAgXCJvclwiLFxuICAgIFwib3RoZXJcIixcbiAgICBcIm91clwiLFxuICAgIFwib3duXCIsXG4gICAgXCJyYXRoZXJcIixcbiAgICBcInNhaWRcIixcbiAgICBcInNheVwiLFxuICAgIFwic2F5c1wiLFxuICAgIFwic2hlXCIsXG4gICAgXCJzaG91bGRcIixcbiAgICBcInNpbmNlXCIsXG4gICAgXCJzb1wiLFxuICAgIFwic29tZVwiLFxuICAgIFwidGhhblwiLFxuICAgIFwidGhhdFwiLFxuICAgIFwidGhlXCIsXG4gICAgXCJ0aGVpclwiLFxuICAgIFwidGhlbVwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidGhlcmVcIixcbiAgICBcInRoZXNlXCIsXG4gICAgXCJ0aGV5XCIsXG4gICAgXCJ0aGlzXCIsXG4gICAgXCJ0aXNcIixcbiAgICBcInRvXCIsXG4gICAgXCJ0b29cIixcbiAgICBcInR3YXNcIixcbiAgICBcInVzXCIsXG4gICAgXCJ3YW50c1wiLFxuICAgIFwid2FzXCIsXG4gICAgXCJ3ZVwiLFxuICAgIFwid2VyZVwiLFxuICAgIFwid2hhdFwiLFxuICAgIFwid2hlblwiLFxuICAgIFwid2hlcmVcIixcbiAgICBcIndoaWNoXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2hvXCIsXG4gICAgXCJ3aG9tXCIsXG4gICAgXCJ3aHlcIixcbiAgICBcIndpbGxcIixcbiAgICBcIndpdGhcIixcbiAgICBcIndvdWxkXCIsXG4gICAgXCJ5ZXRcIixcbiAgICBcInlvdVwiLFxuICAgIFwieW91clwiLFxuICBdKTtcblxuICBsdW5yLlBpcGVsaW5lLnJlZ2lzdGVyRnVuY3Rpb24obHVuci5zdG9wV29yZEZpbHRlciwgXCJzdG9wV29yZEZpbHRlclwiKTtcbiAgLyohXG4gICAqIGx1bnIudHJpbW1lclxuICAgKiBDb3B5cmlnaHQgKEMpIDIwMjAgT2xpdmVyIE5pZ2h0aW5nYWxlXG4gICAqL1xuXG4gIC8qKlxuICAgKiBsdW5yLnRyaW1tZXIgaXMgYSBwaXBlbGluZSBmdW5jdGlvbiBmb3IgdHJpbW1pbmcgbm9uIHdvcmRcbiAgICogY2hhcmFjdGVycyBmcm9tIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0b2tlbnMgYmVmb3JlIHRoZXlcbiAgICogZW50ZXIgdGhlIGluZGV4LlxuICAgKlxuICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIG1heSBub3Qgd29yayBjb3JyZWN0bHkgZm9yIG5vbiBsYXRpblxuICAgKiBjaGFyYWN0ZXJzIGFuZCBzaG91bGQgZWl0aGVyIGJlIHJlbW92ZWQgb3IgYWRhcHRlZCBmb3IgdXNlXG4gICAqIHdpdGggbGFuZ3VhZ2VzIHdpdGggbm9uLWxhdGluIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBzdGF0aWNcbiAgICogQGltcGxlbWVudHMge2x1bnIuUGlwZWxpbmVGdW5jdGlvbn1cbiAgICogQHBhcmFtIHtsdW5yLlRva2VufSB0b2tlbiBUaGUgdG9rZW4gdG8gcGFzcyB0aHJvdWdoIHRoZSBmaWx0ZXJcbiAgICogQHJldHVybnMge2x1bnIuVG9rZW59XG4gICAqIEBzZWUgbHVuci5QaXBlbGluZVxuICAgKi9cbiAgbHVuci50cmltbWVyID0gZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgcmV0dXJuIHRva2VuLnVwZGF0ZShmdW5jdGlvbiAocykge1xuICAgICAgcmV0dXJuIHMucmVwbGFjZSgvXlxcVysvLCBcIlwiKS5yZXBsYWNlKC9cXFcrJC8sIFwiXCIpO1xuICAgIH0pO1xuICB9O1xuXG4gIGx1bnIuUGlwZWxpbmUucmVnaXN0ZXJGdW5jdGlvbihsdW5yLnRyaW1tZXIsIFwidHJpbW1lclwiKTtcbiAgLyohXG4gICAqIGx1bnIuVG9rZW5TZXRcbiAgICogQ29weXJpZ2h0IChDKSAyMDIwIE9saXZlciBOaWdodGluZ2FsZVxuICAgKi9cblxuICAvKipcbiAgICogQSB0b2tlbiBzZXQgaXMgdXNlZCB0byBzdG9yZSB0aGUgdW5pcXVlIGxpc3Qgb2YgYWxsIHRva2Vuc1xuICAgKiB3aXRoaW4gYW4gaW5kZXguIFRva2VuIHNldHMgYXJlIGFsc28gdXNlZCB0byByZXByZXNlbnQgYW5cbiAgICogaW5jb21pbmcgcXVlcnkgdG8gdGhlIGluZGV4LCB0aGlzIHF1ZXJ5IHRva2VuIHNldCBhbmQgaW5kZXhcbiAgICogdG9rZW4gc2V0IGFyZSB0aGVuIGludGVyc2VjdGVkIHRvIGZpbmQgd2hpY2ggdG9rZW5zIHRvIGxvb2tcbiAgICogdXAgaW4gdGhlIGludmVydGVkIGluZGV4LlxuICAgKlxuICAgKiBBIHRva2VuIHNldCBjYW4gaG9sZCBtdWx0aXBsZSB0b2tlbnMsIGFzIGluIHRoZSBjYXNlIG9mIHRoZVxuICAgKiBpbmRleCB0b2tlbiBzZXQsIG9yIGl0IGNhbiBob2xkIGEgc2luZ2xlIHRva2VuIGFzIGluIHRoZVxuICAgKiBjYXNlIG9mIGEgc2ltcGxlIHF1ZXJ5IHRva2VuIHNldC5cbiAgICpcbiAgICogQWRkaXRpb25hbGx5IHRva2VuIHNldHMgYXJlIHVzZWQgdG8gcGVyZm9ybSB3aWxkY2FyZCBtYXRjaGluZy5cbiAgICogTGVhZGluZywgY29udGFpbmVkIGFuZCB0cmFpbGluZyB3aWxkY2FyZHMgYXJlIHN1cHBvcnRlZCwgYW5kXG4gICAqIGZyb20gdGhpcyBlZGl0IGRpc3RhbmNlIG1hdGNoaW5nIGNhbiBhbHNvIGJlIHByb3ZpZGVkLlxuICAgKlxuICAgKiBUb2tlbiBzZXRzIGFyZSBpbXBsZW1lbnRlZCBhcyBhIG1pbmltYWwgZmluaXRlIHN0YXRlIGF1dG9tYXRhLFxuICAgKiB3aGVyZSBib3RoIGNvbW1vbiBwcmVmaXhlcyBhbmQgc3VmZml4ZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRva2Vucy5cbiAgICogVGhpcyBoZWxwcyB0byByZWR1Y2UgdGhlIHNwYWNlIHVzZWQgZm9yIHN0b3JpbmcgdGhlIHRva2VuIHNldC5cbiAgICpcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqL1xuICBsdW5yLlRva2VuU2V0ID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmluYWwgPSBmYWxzZTtcbiAgICB0aGlzLmVkZ2VzID0ge307XG4gICAgdGhpcy5pZCA9IGx1bnIuVG9rZW5TZXQuX25leHRJZDtcbiAgICBsdW5yLlRva2VuU2V0Ll9uZXh0SWQgKz0gMTtcbiAgfTtcblxuICAvKipcbiAgICogS2VlcHMgdHJhY2sgb2YgdGhlIG5leHQsIGF1dG8gaW5jcmVtZW50LCBpZGVudGlmaWVyIHRvIGFzc2lnblxuICAgKiB0byBhIG5ldyB0b2tlblNldC5cbiAgICpcbiAgICogVG9rZW5TZXRzIHJlcXVpcmUgYSB1bmlxdWUgaWRlbnRpZmllciB0byBiZSBjb3JyZWN0bHkgbWluaW1pc2VkLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgbHVuci5Ub2tlblNldC5fbmV4dElkID0gMTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFRva2VuU2V0IGluc3RhbmNlIGZyb20gdGhlIGdpdmVuIHNvcnRlZCBhcnJheSBvZiB3b3Jkcy5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmdbXX0gYXJyIC0gQSBzb3J0ZWQgYXJyYXkgb2Ygc3RyaW5ncyB0byBjcmVhdGUgdGhlIHNldCBmcm9tLlxuICAgKiBAcmV0dXJucyB7bHVuci5Ub2tlblNldH1cbiAgICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBpbnB1dCBhcnJheSBpcyBub3Qgc29ydGVkLlxuICAgKi9cbiAgbHVuci5Ub2tlblNldC5mcm9tQXJyYXkgPSBmdW5jdGlvbiAoYXJyKSB7XG4gICAgdmFyIGJ1aWxkZXIgPSBuZXcgbHVuci5Ub2tlblNldC5CdWlsZGVyKCk7XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYXJyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBidWlsZGVyLmluc2VydChhcnJbaV0pO1xuICAgIH1cblxuICAgIGJ1aWxkZXIuZmluaXNoKCk7XG4gICAgcmV0dXJuIGJ1aWxkZXIucm9vdDtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHRva2VuIHNldCBmcm9tIGEgcXVlcnkgY2xhdXNlLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gY2xhdXNlIC0gQSBzaW5nbGUgY2xhdXNlIGZyb20gbHVuci5RdWVyeS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNsYXVzZS50ZXJtIC0gVGhlIHF1ZXJ5IGNsYXVzZSB0ZXJtLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2NsYXVzZS5lZGl0RGlzdGFuY2VdIC0gVGhlIG9wdGlvbmFsIGVkaXQgZGlzdGFuY2UgZm9yIHRoZSB0ZXJtLlxuICAgKiBAcmV0dXJucyB7bHVuci5Ub2tlblNldH1cbiAgICovXG4gIGx1bnIuVG9rZW5TZXQuZnJvbUNsYXVzZSA9IGZ1bmN0aW9uIChjbGF1c2UpIHtcbiAgICBpZiAoXCJlZGl0RGlzdGFuY2VcIiBpbiBjbGF1c2UpIHtcbiAgICAgIHJldHVybiBsdW5yLlRva2VuU2V0LmZyb21GdXp6eVN0cmluZyhjbGF1c2UudGVybSwgY2xhdXNlLmVkaXREaXN0YW5jZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBsdW5yLlRva2VuU2V0LmZyb21TdHJpbmcoY2xhdXNlLnRlcm0pO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHRva2VuIHNldCByZXByZXNlbnRpbmcgYSBzaW5nbGUgc3RyaW5nIHdpdGggYSBzcGVjaWZpZWRcbiAgICogZWRpdCBkaXN0YW5jZS5cbiAgICpcbiAgICogSW5zZXJ0aW9ucywgZGVsZXRpb25zLCBzdWJzdGl0dXRpb25zIGFuZCB0cmFuc3Bvc2l0aW9ucyBhcmUgZWFjaFxuICAgKiB0cmVhdGVkIGFzIGFuIGVkaXQgZGlzdGFuY2Ugb2YgMS5cbiAgICpcbiAgICogSW5jcmVhc2luZyB0aGUgYWxsb3dlZCBlZGl0IGRpc3RhbmNlIHdpbGwgaGF2ZSBhIGRyYW1hdGljIGltcGFjdFxuICAgKiBvbiB0aGUgcGVyZm9ybWFuY2Ugb2YgYm90aCBjcmVhdGluZyBhbmQgaW50ZXJzZWN0aW5nIHRoZXNlIFRva2VuU2V0cy5cbiAgICogSXQgaXMgYWR2aXNlZCB0byBrZWVwIHRoZSBlZGl0IGRpc3RhbmNlIGxlc3MgdGhhbiAzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gVGhlIHN0cmluZyB0byBjcmVhdGUgdGhlIHRva2VuIHNldCBmcm9tLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZWRpdERpc3RhbmNlIC0gVGhlIGFsbG93ZWQgZWRpdCBkaXN0YW5jZSB0byBtYXRjaC5cbiAgICogQHJldHVybnMge2x1bnIuVmVjdG9yfVxuICAgKi9cbiAgbHVuci5Ub2tlblNldC5mcm9tRnV6enlTdHJpbmcgPSBmdW5jdGlvbiAoc3RyLCBlZGl0RGlzdGFuY2UpIHtcbiAgICB2YXIgcm9vdCA9IG5ldyBsdW5yLlRva2VuU2V0KCk7XG5cbiAgICB2YXIgc3RhY2sgPSBbXG4gICAgICB7XG4gICAgICAgIG5vZGU6IHJvb3QsXG4gICAgICAgIGVkaXRzUmVtYWluaW5nOiBlZGl0RGlzdGFuY2UsXG4gICAgICAgIHN0cjogc3RyLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgd2hpbGUgKHN0YWNrLmxlbmd0aCkge1xuICAgICAgdmFyIGZyYW1lID0gc3RhY2sucG9wKCk7XG5cbiAgICAgIC8vIG5vIGVkaXRcbiAgICAgIGlmIChmcmFtZS5zdHIubGVuZ3RoID4gMCkge1xuICAgICAgICB2YXIgY2hhciA9IGZyYW1lLnN0ci5jaGFyQXQoMCksXG4gICAgICAgICAgbm9FZGl0Tm9kZTtcblxuICAgICAgICBpZiAoY2hhciBpbiBmcmFtZS5ub2RlLmVkZ2VzKSB7XG4gICAgICAgICAgbm9FZGl0Tm9kZSA9IGZyYW1lLm5vZGUuZWRnZXNbY2hhcl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm9FZGl0Tm9kZSA9IG5ldyBsdW5yLlRva2VuU2V0KCk7XG4gICAgICAgICAgZnJhbWUubm9kZS5lZGdlc1tjaGFyXSA9IG5vRWRpdE5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZnJhbWUuc3RyLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgbm9FZGl0Tm9kZS5maW5hbCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBzdGFjay5wdXNoKHtcbiAgICAgICAgICBub2RlOiBub0VkaXROb2RlLFxuICAgICAgICAgIGVkaXRzUmVtYWluaW5nOiBmcmFtZS5lZGl0c1JlbWFpbmluZyxcbiAgICAgICAgICBzdHI6IGZyYW1lLnN0ci5zbGljZSgxKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChmcmFtZS5lZGl0c1JlbWFpbmluZyA9PSAwKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBpbnNlcnRpb25cbiAgICAgIGlmIChcIipcIiBpbiBmcmFtZS5ub2RlLmVkZ2VzKSB7XG4gICAgICAgIHZhciBpbnNlcnRpb25Ob2RlID0gZnJhbWUubm9kZS5lZGdlc1tcIipcIl07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgaW5zZXJ0aW9uTm9kZSA9IG5ldyBsdW5yLlRva2VuU2V0KCk7XG4gICAgICAgIGZyYW1lLm5vZGUuZWRnZXNbXCIqXCJdID0gaW5zZXJ0aW9uTm9kZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZyYW1lLnN0ci5sZW5ndGggPT0gMCkge1xuICAgICAgICBpbnNlcnRpb25Ob2RlLmZpbmFsID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgc3RhY2sucHVzaCh7XG4gICAgICAgIG5vZGU6IGluc2VydGlvbk5vZGUsXG4gICAgICAgIGVkaXRzUmVtYWluaW5nOiBmcmFtZS5lZGl0c1JlbWFpbmluZyAtIDEsXG4gICAgICAgIHN0cjogZnJhbWUuc3RyLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIGRlbGV0aW9uXG4gICAgICAvLyBjYW4gb25seSBkbyBhIGRlbGV0aW9uIGlmIHdlIGhhdmUgZW5vdWdoIGVkaXRzIHJlbWFpbmluZ1xuICAgICAgLy8gYW5kIGlmIHRoZXJlIGFyZSBjaGFyYWN0ZXJzIGxlZnQgdG8gZGVsZXRlIGluIHRoZSBzdHJpbmdcbiAgICAgIGlmIChmcmFtZS5zdHIubGVuZ3RoID4gMSkge1xuICAgICAgICBzdGFjay5wdXNoKHtcbiAgICAgICAgICBub2RlOiBmcmFtZS5ub2RlLFxuICAgICAgICAgIGVkaXRzUmVtYWluaW5nOiBmcmFtZS5lZGl0c1JlbWFpbmluZyAtIDEsXG4gICAgICAgICAgc3RyOiBmcmFtZS5zdHIuc2xpY2UoMSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBkZWxldGlvblxuICAgICAgLy8ganVzdCByZW1vdmluZyB0aGUgbGFzdCBjaGFyYWN0ZXIgZnJvbSB0aGUgc3RyXG4gICAgICBpZiAoZnJhbWUuc3RyLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgIGZyYW1lLm5vZGUuZmluYWwgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBzdWJzdGl0dXRpb25cbiAgICAgIC8vIGNhbiBvbmx5IGRvIGEgc3Vic3RpdHV0aW9uIGlmIHdlIGhhdmUgZW5vdWdoIGVkaXRzIHJlbWFpbmluZ1xuICAgICAgLy8gYW5kIGlmIHRoZXJlIGFyZSBjaGFyYWN0ZXJzIGxlZnQgdG8gc3Vic3RpdHV0ZVxuICAgICAgaWYgKGZyYW1lLnN0ci5sZW5ndGggPj0gMSkge1xuICAgICAgICBpZiAoXCIqXCIgaW4gZnJhbWUubm9kZS5lZGdlcykge1xuICAgICAgICAgIHZhciBzdWJzdGl0dXRpb25Ob2RlID0gZnJhbWUubm9kZS5lZGdlc1tcIipcIl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHN1YnN0aXR1dGlvbk5vZGUgPSBuZXcgbHVuci5Ub2tlblNldCgpO1xuICAgICAgICAgIGZyYW1lLm5vZGUuZWRnZXNbXCIqXCJdID0gc3Vic3RpdHV0aW9uTm9kZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmcmFtZS5zdHIubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICBzdWJzdGl0dXRpb25Ob2RlLmZpbmFsID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YWNrLnB1c2goe1xuICAgICAgICAgIG5vZGU6IHN1YnN0aXR1dGlvbk5vZGUsXG4gICAgICAgICAgZWRpdHNSZW1haW5pbmc6IGZyYW1lLmVkaXRzUmVtYWluaW5nIC0gMSxcbiAgICAgICAgICBzdHI6IGZyYW1lLnN0ci5zbGljZSgxKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIHRyYW5zcG9zaXRpb25cbiAgICAgIC8vIGNhbiBvbmx5IGRvIGEgdHJhbnNwb3NpdGlvbiBpZiB0aGVyZSBhcmUgZWRpdHMgcmVtYWluaW5nXG4gICAgICAvLyBhbmQgdGhlcmUgYXJlIGVub3VnaCBjaGFyYWN0ZXJzIHRvIHRyYW5zcG9zZVxuICAgICAgaWYgKGZyYW1lLnN0ci5sZW5ndGggPiAxKSB7XG4gICAgICAgIHZhciBjaGFyQSA9IGZyYW1lLnN0ci5jaGFyQXQoMCksXG4gICAgICAgICAgY2hhckIgPSBmcmFtZS5zdHIuY2hhckF0KDEpLFxuICAgICAgICAgIHRyYW5zcG9zZU5vZGU7XG5cbiAgICAgICAgaWYgKGNoYXJCIGluIGZyYW1lLm5vZGUuZWRnZXMpIHtcbiAgICAgICAgICB0cmFuc3Bvc2VOb2RlID0gZnJhbWUubm9kZS5lZGdlc1tjaGFyQl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJhbnNwb3NlTm9kZSA9IG5ldyBsdW5yLlRva2VuU2V0KCk7XG4gICAgICAgICAgZnJhbWUubm9kZS5lZGdlc1tjaGFyQl0gPSB0cmFuc3Bvc2VOb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZyYW1lLnN0ci5sZW5ndGggPT0gMSkge1xuICAgICAgICAgIHRyYW5zcG9zZU5vZGUuZmluYWwgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhY2sucHVzaCh7XG4gICAgICAgICAgbm9kZTogdHJhbnNwb3NlTm9kZSxcbiAgICAgICAgICBlZGl0c1JlbWFpbmluZzogZnJhbWUuZWRpdHNSZW1haW5pbmcgLSAxLFxuICAgICAgICAgIHN0cjogY2hhckEgKyBmcmFtZS5zdHIuc2xpY2UoMiksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByb290O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgVG9rZW5TZXQgZnJvbSBhIHN0cmluZy5cbiAgICpcbiAgICogVGhlIHN0cmluZyBtYXkgY29udGFpbiBvbmUgb3IgbW9yZSB3aWxkY2FyZCBjaGFyYWN0ZXJzICgqKVxuICAgKiB0aGF0IHdpbGwgYWxsb3cgd2lsZGNhcmQgbWF0Y2hpbmcgd2hlbiBpbnRlcnNlY3Rpbmcgd2l0aFxuICAgKiBhbm90aGVyIFRva2VuU2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gVGhlIHN0cmluZyB0byBjcmVhdGUgYSBUb2tlblNldCBmcm9tLlxuICAgKiBAcmV0dXJucyB7bHVuci5Ub2tlblNldH1cbiAgICovXG4gIGx1bnIuVG9rZW5TZXQuZnJvbVN0cmluZyA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICB2YXIgbm9kZSA9IG5ldyBsdW5yLlRva2VuU2V0KCksXG4gICAgICByb290ID0gbm9kZTtcblxuICAgIC8qXG4gICAgICogSXRlcmF0ZXMgdGhyb3VnaCBhbGwgY2hhcmFjdGVycyB3aXRoaW4gdGhlIHBhc3NlZCBzdHJpbmdcbiAgICAgKiBhcHBlbmRpbmcgYSBub2RlIGZvciBlYWNoIGNoYXJhY3Rlci5cbiAgICAgKlxuICAgICAqIFdoZW4gYSB3aWxkY2FyZCBjaGFyYWN0ZXIgaXMgZm91bmQgdGhlbiBhIHNlbGZcbiAgICAgKiByZWZlcmVuY2luZyBlZGdlIGlzIGludHJvZHVjZWQgdG8gY29udGludWFsbHkgbWF0Y2hcbiAgICAgKiBhbnkgbnVtYmVyIG9mIGFueSBjaGFyYWN0ZXJzLlxuICAgICAqL1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzdHIubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIHZhciBjaGFyID0gc3RyW2ldLFxuICAgICAgICBmaW5hbCA9IGkgPT0gbGVuIC0gMTtcblxuICAgICAgaWYgKGNoYXIgPT0gXCIqXCIpIHtcbiAgICAgICAgbm9kZS5lZGdlc1tjaGFyXSA9IG5vZGU7XG4gICAgICAgIG5vZGUuZmluYWwgPSBmaW5hbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXh0ID0gbmV3IGx1bnIuVG9rZW5TZXQoKTtcbiAgICAgICAgbmV4dC5maW5hbCA9IGZpbmFsO1xuXG4gICAgICAgIG5vZGUuZWRnZXNbY2hhcl0gPSBuZXh0O1xuICAgICAgICBub2RlID0gbmV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcm9vdDtcbiAgfTtcblxuICAvKipcbiAgICogQ29udmVydHMgdGhpcyBUb2tlblNldCBpbnRvIGFuIGFycmF5IG9mIHN0cmluZ3NcbiAgICogY29udGFpbmVkIHdpdGhpbiB0aGUgVG9rZW5TZXQuXG4gICAqXG4gICAqIFRoaXMgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBUb2tlblNldCB0aGF0XG4gICAqIGNvbnRhaW5zIHdpbGRjYXJkcywgaW4gdGhlc2UgY2FzZXMgdGhlIHJlc3VsdHMgYXJlXG4gICAqIHVuZGVmaW5lZCBhbmQgYXJlIGxpa2VseSB0byBjYXVzZSBhbiBpbmZpbml0ZSBsb29wLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119XG4gICAqL1xuICBsdW5yLlRva2VuU2V0LnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciB3b3JkcyA9IFtdO1xuXG4gICAgdmFyIHN0YWNrID0gW1xuICAgICAge1xuICAgICAgICBwcmVmaXg6IFwiXCIsXG4gICAgICAgIG5vZGU6IHRoaXMsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7XG4gICAgICB2YXIgZnJhbWUgPSBzdGFjay5wb3AoKSxcbiAgICAgICAgZWRnZXMgPSBPYmplY3Qua2V5cyhmcmFtZS5ub2RlLmVkZ2VzKSxcbiAgICAgICAgbGVuID0gZWRnZXMubGVuZ3RoO1xuXG4gICAgICBpZiAoZnJhbWUubm9kZS5maW5hbCkge1xuICAgICAgICAvKiBJbiBTYWZhcmksIGF0IHRoaXMgcG9pbnQgdGhlIHByZWZpeCBpcyBzb21ldGltZXMgY29ycnVwdGVkLCBzZWU6XG4gICAgICAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9vbGl2ZXJubi9sdW5yLmpzL2lzc3Vlcy8yNzkgQ2FsbGluZyBhbnlcbiAgICAgICAgICogU3RyaW5nLnByb3RvdHlwZSBtZXRob2QgZm9yY2VzIFNhZmFyaSB0byBcImNhc3RcIiB0aGlzIHN0cmluZyB0byB3aGF0XG4gICAgICAgICAqIGl0J3Mgc3VwcG9zZWQgdG8gYmUsIGZpeGluZyB0aGUgYnVnLiAqL1xuICAgICAgICBmcmFtZS5wcmVmaXguY2hhckF0KDApO1xuICAgICAgICB3b3Jkcy5wdXNoKGZyYW1lLnByZWZpeCk7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgdmFyIGVkZ2UgPSBlZGdlc1tpXTtcblxuICAgICAgICBzdGFjay5wdXNoKHtcbiAgICAgICAgICBwcmVmaXg6IGZyYW1lLnByZWZpeC5jb25jYXQoZWRnZSksXG4gICAgICAgICAgbm9kZTogZnJhbWUubm9kZS5lZGdlc1tlZGdlXSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHdvcmRzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBUb2tlblNldC5cbiAgICpcbiAgICogVGhpcyBpcyBpbnRlbmRlZCB0byBhbGxvdyBUb2tlblNldHMgdG8gYmUgdXNlZCBhcyBrZXlzXG4gICAqIGluIG9iamVjdHMsIGxhcmdlbHkgdG8gYWlkIHRoZSBjb25zdHJ1Y3Rpb24gYW5kIG1pbmltaXNhdGlvblxuICAgKiBvZiBhIFRva2VuU2V0LiBBcyBzdWNoIGl0IGlzIG5vdCBkZXNpZ25lZCB0byBiZSBhIGh1bWFuXG4gICAqIGZyaWVuZGx5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBUb2tlblNldC5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGx1bnIuVG9rZW5TZXQucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIC8vIE5PVEU6IFVzaW5nIE9iamVjdC5rZXlzIGhlcmUgYXMgdGhpcy5lZGdlcyBpcyB2ZXJ5IGxpa2VseVxuICAgIC8vIHRvIGVudGVyICdoYXNoLW1vZGUnIHdpdGggbWFueSBrZXlzIGJlaW5nIGFkZGVkXG4gICAgLy9cbiAgICAvLyBhdm9pZGluZyBhIGZvci1pbiBsb29wIGhlcmUgYXMgaXQgbGVhZHMgdG8gdGhlIGZ1bmN0aW9uXG4gICAgLy8gYmVpbmcgZGUtb3B0aW1pc2VkIChhdCBsZWFzdCBpbiBWOCkuIEZyb20gc29tZSBzaW1wbGVcbiAgICAvLyBiZW5jaG1hcmtzIHRoZSBwZXJmb3JtYW5jZSBpcyBjb21wYXJhYmxlLCBidXQgYWxsb3dpbmdcbiAgICAvLyBWOCB0byBvcHRpbWl6ZSBtYXkgbWVhbiBlYXN5IHBlcmZvcm1hbmNlIHdpbnMgaW4gdGhlIGZ1dHVyZS5cblxuICAgIGlmICh0aGlzLl9zdHIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zdHI7XG4gICAgfVxuXG4gICAgdmFyIHN0ciA9IHRoaXMuZmluYWwgPyBcIjFcIiA6IFwiMFwiLFxuICAgICAgbGFiZWxzID0gT2JqZWN0LmtleXModGhpcy5lZGdlcykuc29ydCgpLFxuICAgICAgbGVuID0gbGFiZWxzLmxlbmd0aDtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIHZhciBsYWJlbCA9IGxhYmVsc1tpXSxcbiAgICAgICAgbm9kZSA9IHRoaXMuZWRnZXNbbGFiZWxdO1xuXG4gICAgICBzdHIgPSBzdHIgKyBsYWJlbCArIG5vZGUuaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cjtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyBhIG5ldyBUb2tlblNldCB0aGF0IGlzIHRoZSBpbnRlcnNlY3Rpb24gb2ZcbiAgICogdGhpcyBUb2tlblNldCBhbmQgdGhlIHBhc3NlZCBUb2tlblNldC5cbiAgICpcbiAgICogVGhpcyBpbnRlcnNlY3Rpb24gd2lsbCB0YWtlIGludG8gYWNjb3VudCBhbnkgd2lsZGNhcmRzXG4gICAqIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFRva2VuU2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge2x1bnIuVG9rZW5TZXR9IGIgLSBBbiBvdGhlciBUb2tlblNldCB0byBpbnRlcnNlY3Qgd2l0aC5cbiAgICogQHJldHVybnMge2x1bnIuVG9rZW5TZXR9XG4gICAqL1xuICBsdW5yLlRva2VuU2V0LnByb3RvdHlwZS5pbnRlcnNlY3QgPSBmdW5jdGlvbiAoYikge1xuICAgIHZhciBvdXRwdXQgPSBuZXcgbHVuci5Ub2tlblNldCgpLFxuICAgICAgZnJhbWUgPSB1bmRlZmluZWQ7XG5cbiAgICB2YXIgc3RhY2sgPSBbXG4gICAgICB7XG4gICAgICAgIHFOb2RlOiBiLFxuICAgICAgICBvdXRwdXQ6IG91dHB1dCxcbiAgICAgICAgbm9kZTogdGhpcyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHdoaWxlIChzdGFjay5sZW5ndGgpIHtcbiAgICAgIGZyYW1lID0gc3RhY2sucG9wKCk7XG5cbiAgICAgIC8vIE5PVEU6IEFzIHdpdGggdGhlICN0b1N0cmluZyBtZXRob2QsIHdlIGFyZSB1c2luZ1xuICAgICAgLy8gT2JqZWN0LmtleXMgYW5kIGEgZm9yIGxvb3AgaW5zdGVhZCBvZiBhIGZvci1pbiBsb29wXG4gICAgICAvLyBhcyBib3RoIG9mIHRoZXNlIG9iamVjdHMgZW50ZXIgJ2hhc2gnIG1vZGUsIGNhdXNpbmdcbiAgICAgIC8vIHRoZSBmdW5jdGlvbiB0byBiZSBkZS1vcHRpbWlzZWQgaW4gVjhcbiAgICAgIHZhciBxRWRnZXMgPSBPYmplY3Qua2V5cyhmcmFtZS5xTm9kZS5lZGdlcyksXG4gICAgICAgIHFMZW4gPSBxRWRnZXMubGVuZ3RoLFxuICAgICAgICBuRWRnZXMgPSBPYmplY3Qua2V5cyhmcmFtZS5ub2RlLmVkZ2VzKSxcbiAgICAgICAgbkxlbiA9IG5FZGdlcy5sZW5ndGg7XG5cbiAgICAgIGZvciAodmFyIHEgPSAwOyBxIDwgcUxlbjsgcSsrKSB7XG4gICAgICAgIHZhciBxRWRnZSA9IHFFZGdlc1txXTtcblxuICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IG5MZW47IG4rKykge1xuICAgICAgICAgIHZhciBuRWRnZSA9IG5FZGdlc1tuXTtcblxuICAgICAgICAgIGlmIChuRWRnZSA9PSBxRWRnZSB8fCBxRWRnZSA9PSBcIipcIikge1xuICAgICAgICAgICAgdmFyIG5vZGUgPSBmcmFtZS5ub2RlLmVkZ2VzW25FZGdlXSxcbiAgICAgICAgICAgICAgcU5vZGUgPSBmcmFtZS5xTm9kZS5lZGdlc1txRWRnZV0sXG4gICAgICAgICAgICAgIGZpbmFsID0gbm9kZS5maW5hbCAmJiBxTm9kZS5maW5hbCxcbiAgICAgICAgICAgICAgbmV4dCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgaWYgKG5FZGdlIGluIGZyYW1lLm91dHB1dC5lZGdlcykge1xuICAgICAgICAgICAgICAvLyBhbiBlZGdlIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIGNoYXJhY3RlclxuICAgICAgICAgICAgICAvLyBubyBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBub2RlLCBqdXN0IHNldCB0aGUgZmluYWxpdHlcbiAgICAgICAgICAgICAgLy8gYml0IHVubGVzcyB0aGlzIG5vZGUgaXMgYWxyZWFkeSBmaW5hbFxuICAgICAgICAgICAgICBuZXh0ID0gZnJhbWUub3V0cHV0LmVkZ2VzW25FZGdlXTtcbiAgICAgICAgICAgICAgbmV4dC5maW5hbCA9IG5leHQuZmluYWwgfHwgZmluYWw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBubyBlZGdlIGV4aXN0cyB5ZXQsIG11c3QgY3JlYXRlIG9uZVxuICAgICAgICAgICAgICAvLyBzZXQgdGhlIGZpbmFsaXR5IGJpdCBhbmQgaW5zZXJ0IGl0XG4gICAgICAgICAgICAgIC8vIGludG8gdGhlIG91dHB1dFxuICAgICAgICAgICAgICBuZXh0ID0gbmV3IGx1bnIuVG9rZW5TZXQoKTtcbiAgICAgICAgICAgICAgbmV4dC5maW5hbCA9IGZpbmFsO1xuICAgICAgICAgICAgICBmcmFtZS5vdXRwdXQuZWRnZXNbbkVkZ2VdID0gbmV4dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhY2sucHVzaCh7XG4gICAgICAgICAgICAgIHFOb2RlOiBxTm9kZSxcbiAgICAgICAgICAgICAgb3V0cHV0OiBuZXh0LFxuICAgICAgICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfTtcbiAgbHVuci5Ub2tlblNldC5CdWlsZGVyID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMucHJldmlvdXNXb3JkID0gXCJcIjtcbiAgICB0aGlzLnJvb3QgPSBuZXcgbHVuci5Ub2tlblNldCgpO1xuICAgIHRoaXMudW5jaGVja2VkTm9kZXMgPSBbXTtcbiAgICB0aGlzLm1pbmltaXplZE5vZGVzID0ge307XG4gIH07XG5cbiAgbHVuci5Ub2tlblNldC5CdWlsZGVyLnByb3RvdHlwZS5pbnNlcnQgPSBmdW5jdGlvbiAod29yZCkge1xuICAgIHZhciBub2RlLFxuICAgICAgY29tbW9uUHJlZml4ID0gMDtcblxuICAgIGlmICh3b3JkIDwgdGhpcy5wcmV2aW91c1dvcmQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk91dCBvZiBvcmRlciB3b3JkIGluc2VydGlvblwiKTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdvcmQubGVuZ3RoICYmIGkgPCB0aGlzLnByZXZpb3VzV29yZC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHdvcmRbaV0gIT0gdGhpcy5wcmV2aW91c1dvcmRbaV0pIGJyZWFrO1xuICAgICAgY29tbW9uUHJlZml4Kys7XG4gICAgfVxuXG4gICAgdGhpcy5taW5pbWl6ZShjb21tb25QcmVmaXgpO1xuXG4gICAgaWYgKHRoaXMudW5jaGVja2VkTm9kZXMubGVuZ3RoID09IDApIHtcbiAgICAgIG5vZGUgPSB0aGlzLnJvb3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUgPSB0aGlzLnVuY2hlY2tlZE5vZGVzW3RoaXMudW5jaGVja2VkTm9kZXMubGVuZ3RoIC0gMV0uY2hpbGQ7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IGNvbW1vblByZWZpeDsgaSA8IHdvcmQubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBuZXh0Tm9kZSA9IG5ldyBsdW5yLlRva2VuU2V0KCksXG4gICAgICAgIGNoYXIgPSB3b3JkW2ldO1xuXG4gICAgICBub2RlLmVkZ2VzW2NoYXJdID0gbmV4dE5vZGU7XG5cbiAgICAgIHRoaXMudW5jaGVja2VkTm9kZXMucHVzaCh7XG4gICAgICAgIHBhcmVudDogbm9kZSxcbiAgICAgICAgY2hhcjogY2hhcixcbiAgICAgICAgY2hpbGQ6IG5leHROb2RlLFxuICAgICAgfSk7XG5cbiAgICAgIG5vZGUgPSBuZXh0Tm9kZTtcbiAgICB9XG5cbiAgICBub2RlLmZpbmFsID0gdHJ1ZTtcbiAgICB0aGlzLnByZXZpb3VzV29yZCA9IHdvcmQ7XG4gIH07XG5cbiAgbHVuci5Ub2tlblNldC5CdWlsZGVyLnByb3RvdHlwZS5maW5pc2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5taW5pbWl6ZSgwKTtcbiAgfTtcblxuICBsdW5yLlRva2VuU2V0LkJ1aWxkZXIucHJvdG90eXBlLm1pbmltaXplID0gZnVuY3Rpb24gKGRvd25Ubykge1xuICAgIGZvciAodmFyIGkgPSB0aGlzLnVuY2hlY2tlZE5vZGVzLmxlbmd0aCAtIDE7IGkgPj0gZG93blRvOyBpLS0pIHtcbiAgICAgIHZhciBub2RlID0gdGhpcy51bmNoZWNrZWROb2Rlc1tpXSxcbiAgICAgICAgY2hpbGRLZXkgPSBub2RlLmNoaWxkLnRvU3RyaW5nKCk7XG5cbiAgICAgIGlmIChjaGlsZEtleSBpbiB0aGlzLm1pbmltaXplZE5vZGVzKSB7XG4gICAgICAgIG5vZGUucGFyZW50LmVkZ2VzW25vZGUuY2hhcl0gPSB0aGlzLm1pbmltaXplZE5vZGVzW2NoaWxkS2V5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENhY2hlIHRoZSBrZXkgZm9yIHRoaXMgbm9kZSBzaW5jZVxuICAgICAgICAvLyB3ZSBrbm93IGl0IGNhbid0IGNoYW5nZSBhbnltb3JlXG4gICAgICAgIG5vZGUuY2hpbGQuX3N0ciA9IGNoaWxkS2V5O1xuXG4gICAgICAgIHRoaXMubWluaW1pemVkTm9kZXNbY2hpbGRLZXldID0gbm9kZS5jaGlsZDtcbiAgICAgIH1cblxuICAgICAgdGhpcy51bmNoZWNrZWROb2Rlcy5wb3AoKTtcbiAgICB9XG4gIH07XG4gIC8qIVxuICAgKiBsdW5yLkluZGV4XG4gICAqIENvcHlyaWdodCAoQykgMjAyMCBPbGl2ZXIgTmlnaHRpbmdhbGVcbiAgICovXG5cbiAgLyoqXG4gICAqIEFuIGluZGV4IGNvbnRhaW5zIHRoZSBidWlsdCBpbmRleCBvZiBhbGwgZG9jdW1lbnRzIGFuZCBwcm92aWRlcyBhIHF1ZXJ5IGludGVyZmFjZVxuICAgKiB0byB0aGUgaW5kZXguXG4gICAqXG4gICAqIFVzdWFsbHkgaW5zdGFuY2VzIG9mIGx1bnIuSW5kZXggd2lsbCBub3QgYmUgY3JlYXRlZCB1c2luZyB0aGlzIGNvbnN0cnVjdG9yLCBpbnN0ZWFkXG4gICAqIGx1bnIuQnVpbGRlciBzaG91bGQgYmUgdXNlZCB0byBjb25zdHJ1Y3QgbmV3IGluZGV4ZXMsIG9yIGx1bnIuSW5kZXgubG9hZCBzaG91bGQgYmVcbiAgICogdXNlZCB0byBsb2FkIHByZXZpb3VzbHkgYnVpbHQgYW5kIHNlcmlhbGl6ZWQgaW5kZXhlcy5cbiAgICpcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhdHRycyAtIFRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBidWlsdCBzZWFyY2ggaW5kZXguXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhdHRycy5pbnZlcnRlZEluZGV4IC0gQW4gaW5kZXggb2YgdGVybS9maWVsZCB0byBkb2N1bWVudCByZWZlcmVuY2UuXG4gICAqIEBwYXJhbSB7T2JqZWN0PHN0cmluZywgbHVuci5WZWN0b3I+fSBhdHRycy5maWVsZFZlY3RvcnMgLSBGaWVsZCB2ZWN0b3JzXG4gICAqIEBwYXJhbSB7bHVuci5Ub2tlblNldH0gYXR0cnMudG9rZW5TZXQgLSBBbiBzZXQgb2YgYWxsIGNvcnB1cyB0b2tlbnMuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGF0dHJzLmZpZWxkcyAtIFRoZSBuYW1lcyBvZiBpbmRleGVkIGRvY3VtZW50IGZpZWxkcy5cbiAgICogQHBhcmFtIHtsdW5yLlBpcGVsaW5lfSBhdHRycy5waXBlbGluZSAtIFRoZSBwaXBlbGluZSB0byB1c2UgZm9yIHNlYXJjaCB0ZXJtcy5cbiAgICovXG4gIGx1bnIuSW5kZXggPSBmdW5jdGlvbiAoYXR0cnMpIHtcbiAgICB0aGlzLmludmVydGVkSW5kZXggPSBhdHRycy5pbnZlcnRlZEluZGV4O1xuICAgIHRoaXMuZmllbGRWZWN0b3JzID0gYXR0cnMuZmllbGRWZWN0b3JzO1xuICAgIHRoaXMudG9rZW5TZXQgPSBhdHRycy50b2tlblNldDtcbiAgICB0aGlzLmZpZWxkcyA9IGF0dHJzLmZpZWxkcztcbiAgICB0aGlzLnBpcGVsaW5lID0gYXR0cnMucGlwZWxpbmU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEEgcmVzdWx0IGNvbnRhaW5zIGRldGFpbHMgb2YgYSBkb2N1bWVudCBtYXRjaGluZyBhIHNlYXJjaCBxdWVyeS5cbiAgICogQHR5cGVkZWYge09iamVjdH0gbHVuci5JbmRleH5SZXN1bHRcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHJlZiAtIFRoZSByZWZlcmVuY2Ugb2YgdGhlIGRvY3VtZW50IHRoaXMgcmVzdWx0IHJlcHJlc2VudHMuXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzY29yZSAtIEEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMSByZXByZXNlbnRpbmcgaG93IHNpbWlsYXIgdGhpcyBkb2N1bWVudCBpcyB0byB0aGUgcXVlcnkuXG4gICAqIEBwcm9wZXJ0eSB7bHVuci5NYXRjaERhdGF9IG1hdGNoRGF0YSAtIENvbnRhaW5zIG1ldGFkYXRhIGFib3V0IHRoaXMgbWF0Y2ggaW5jbHVkaW5nIHdoaWNoIHRlcm0ocykgY2F1c2VkIHRoZSBtYXRjaC5cbiAgICovXG5cbiAgLyoqXG4gICAqIEFsdGhvdWdoIGx1bnIgcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gY3JlYXRlIHF1ZXJpZXMgdXNpbmcgbHVuci5RdWVyeSwgaXQgYWxzbyBwcm92aWRlcyBhIHNpbXBsZVxuICAgKiBxdWVyeSBsYW5ndWFnZSB3aGljaCBpdHNlbGYgaXMgcGFyc2VkIGludG8gYW4gaW5zdGFuY2Ugb2YgbHVuci5RdWVyeS5cbiAgICpcbiAgICogRm9yIHByb2dyYW1tYXRpY2FsbHkgYnVpbGRpbmcgcXVlcmllcyBpdCBpcyBhZHZpc2VkIHRvIGRpcmVjdGx5IHVzZSBsdW5yLlF1ZXJ5LCB0aGUgcXVlcnkgbGFuZ3VhZ2VcbiAgICogaXMgYmVzdCB1c2VkIGZvciBodW1hbiBlbnRlcmVkIHRleHQgcmF0aGVyIHRoYW4gcHJvZ3JhbSBnZW5lcmF0ZWQgdGV4dC5cbiAgICpcbiAgICogQXQgaXRzIHNpbXBsZXN0IHF1ZXJpZXMgY2FuIGp1c3QgYmUgYSBzaW5nbGUgdGVybSwgZS5nLiBgaGVsbG9gLCBtdWx0aXBsZSB0ZXJtcyBhcmUgYWxzbyBzdXBwb3J0ZWRcbiAgICogYW5kIHdpbGwgYmUgY29tYmluZWQgd2l0aCBPUiwgZS5nIGBoZWxsbyB3b3JsZGAgd2lsbCBtYXRjaCBkb2N1bWVudHMgdGhhdCBjb250YWluIGVpdGhlciAnaGVsbG8nXG4gICAqIG9yICd3b3JsZCcsIHRob3VnaCB0aG9zZSB0aGF0IGNvbnRhaW4gYm90aCB3aWxsIHJhbmsgaGlnaGVyIGluIHRoZSByZXN1bHRzLlxuICAgKlxuICAgKiBXaWxkY2FyZHMgY2FuIGJlIGluY2x1ZGVkIGluIHRlcm1zIHRvIG1hdGNoIG9uZSBvciBtb3JlIHVuc3BlY2lmaWVkIGNoYXJhY3RlcnMsIHRoZXNlIHdpbGRjYXJkcyBjYW5cbiAgICogYmUgaW5zZXJ0ZWQgYW55d2hlcmUgd2l0aGluIHRoZSB0ZXJtLCBhbmQgbW9yZSB0aGFuIG9uZSB3aWxkY2FyZCBjYW4gZXhpc3QgaW4gYSBzaW5nbGUgdGVybS4gQWRkaW5nXG4gICAqIHdpbGRjYXJkcyB3aWxsIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgZG9jdW1lbnRzIHRoYXQgd2lsbCBiZSBmb3VuZCBidXQgY2FuIGFsc28gaGF2ZSBhIG5lZ2F0aXZlXG4gICAqIGltcGFjdCBvbiBxdWVyeSBwZXJmb3JtYW5jZSwgZXNwZWNpYWxseSB3aXRoIHdpbGRjYXJkcyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgdGVybS5cbiAgICpcbiAgICogVGVybXMgY2FuIGJlIHJlc3RyaWN0ZWQgdG8gc3BlY2lmaWMgZmllbGRzLCBlLmcuIGB0aXRsZTpoZWxsb2AsIG9ubHkgZG9jdW1lbnRzIHdpdGggdGhlIHRlcm1cbiAgICogaGVsbG8gaW4gdGhlIHRpdGxlIGZpZWxkIHdpbGwgbWF0Y2ggdGhpcyBxdWVyeS4gVXNpbmcgYSBmaWVsZCBub3QgcHJlc2VudCBpbiB0aGUgaW5kZXggd2lsbCBsZWFkXG4gICAqIHRvIGFuIGVycm9yIGJlaW5nIHRocm93bi5cbiAgICpcbiAgICogTW9kaWZpZXJzIGNhbiBhbHNvIGJlIGFkZGVkIHRvIHRlcm1zLCBsdW5yIHN1cHBvcnRzIGVkaXQgZGlzdGFuY2UgYW5kIGJvb3N0IG1vZGlmaWVycyBvbiB0ZXJtcy4gQSB0ZXJtXG4gICAqIGJvb3N0IHdpbGwgbWFrZSBkb2N1bWVudHMgbWF0Y2hpbmcgdGhhdCB0ZXJtIHNjb3JlIGhpZ2hlciwgZS5nLiBgZm9vXjVgLiBFZGl0IGRpc3RhbmNlIGlzIGFsc28gc3VwcG9ydGVkXG4gICAqIHRvIHByb3ZpZGUgZnV6enkgbWF0Y2hpbmcsIGUuZy4gJ2hlbGxvfjInIHdpbGwgbWF0Y2ggZG9jdW1lbnRzIHdpdGggaGVsbG8gd2l0aCBhbiBlZGl0IGRpc3RhbmNlIG9mIDIuXG4gICAqIEF2b2lkIGxhcmdlIHZhbHVlcyBmb3IgZWRpdCBkaXN0YW5jZSB0byBpbXByb3ZlIHF1ZXJ5IHBlcmZvcm1hbmNlLlxuICAgKlxuICAgKiBFYWNoIHRlcm0gYWxzbyBzdXBwb3J0cyBhIHByZXNlbmNlIG1vZGlmaWVyLiBCeSBkZWZhdWx0IGEgdGVybSdzIHByZXNlbmNlIGluIGRvY3VtZW50IGlzIG9wdGlvbmFsLCBob3dldmVyXG4gICAqIHRoaXMgY2FuIGJlIGNoYW5nZWQgdG8gZWl0aGVyIHJlcXVpcmVkIG9yIHByb2hpYml0ZWQuIEZvciBhIHRlcm0ncyBwcmVzZW5jZSB0byBiZSByZXF1aXJlZCBpbiBhIGRvY3VtZW50IHRoZVxuICAgKiB0ZXJtIHNob3VsZCBiZSBwcmVmaXhlZCB3aXRoIGEgJysnLCBlLmcuIGArZm9vIGJhcmAgaXMgYSBzZWFyY2ggZm9yIGRvY3VtZW50cyB0aGF0IG11c3QgY29udGFpbiAnZm9vJyBhbmRcbiAgICogb3B0aW9uYWxseSBjb250YWluICdiYXInLiBDb252ZXJzZWx5IGEgbGVhZGluZyAnLScgc2V0cyB0aGUgdGVybXMgcHJlc2VuY2UgdG8gcHJvaGliaXRlZCwgaS5lLiBpdCBtdXN0IG5vdFxuICAgKiBhcHBlYXIgaW4gYSBkb2N1bWVudCwgZS5nLiBgLWZvbyBiYXJgIGlzIGEgc2VhcmNoIGZvciBkb2N1bWVudHMgdGhhdCBkbyBub3QgY29udGFpbiAnZm9vJyBidXQgbWF5IGNvbnRhaW4gJ2JhcicuXG4gICAqXG4gICAqIFRvIGVzY2FwZSBzcGVjaWFsIGNoYXJhY3RlcnMgdGhlIGJhY2tzbGFzaCBjaGFyYWN0ZXIgJ1xcJyBjYW4gYmUgdXNlZCwgdGhpcyBhbGxvd3Mgc2VhcmNoZXMgdG8gaW5jbHVkZVxuICAgKiBjaGFyYWN0ZXJzIHRoYXQgd291bGQgbm9ybWFsbHkgYmUgY29uc2lkZXJlZCBtb2RpZmllcnMsIGUuZy4gYGZvb1xcfjJgIHdpbGwgc2VhcmNoIGZvciBhIHRlcm0gXCJmb29+MlwiIGluc3RlYWRcbiAgICogb2YgYXR0ZW1wdGluZyB0byBhcHBseSBhIGJvb3N0IG9mIDIgdG8gdGhlIHNlYXJjaCB0ZXJtIFwiZm9vXCIuXG4gICAqXG4gICAqIEB0eXBlZGVmIHtzdHJpbmd9IGx1bnIuSW5kZXh+UXVlcnlTdHJpbmdcbiAgICogQGV4YW1wbGUgPGNhcHRpb24+U2ltcGxlIHNpbmdsZSB0ZXJtIHF1ZXJ5PC9jYXB0aW9uPlxuICAgKiBoZWxsb1xuICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5NdWx0aXBsZSB0ZXJtIHF1ZXJ5PC9jYXB0aW9uPlxuICAgKiBoZWxsbyB3b3JsZFxuICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj50ZXJtIHNjb3BlZCB0byBhIGZpZWxkPC9jYXB0aW9uPlxuICAgKiB0aXRsZTpoZWxsb1xuICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj50ZXJtIHdpdGggYSBib29zdCBvZiAxMDwvY2FwdGlvbj5cbiAgICogaGVsbG9eMTBcbiAgICogQGV4YW1wbGUgPGNhcHRpb24+dGVybSB3aXRoIGFuIGVkaXQgZGlzdGFuY2Ugb2YgMjwvY2FwdGlvbj5cbiAgICogaGVsbG9+MlxuICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj50ZXJtcyB3aXRoIHByZXNlbmNlIG1vZGlmaWVyczwvY2FwdGlvbj5cbiAgICogLWZvbyArYmFyIGJhelxuICAgKi9cblxuICAvKipcbiAgICogUGVyZm9ybXMgYSBzZWFyY2ggYWdhaW5zdCB0aGUgaW5kZXggdXNpbmcgbHVuciBxdWVyeSBzeW50YXguXG4gICAqXG4gICAqIFJlc3VsdHMgd2lsbCBiZSByZXR1cm5lZCBzb3J0ZWQgYnkgdGhlaXIgc2NvcmUsIHRoZSBtb3N0IHJlbGV2YW50IHJlc3VsdHNcbiAgICogd2lsbCBiZSByZXR1cm5lZCBmaXJzdC4gIEZvciBkZXRhaWxzIG9uIGhvdyB0aGUgc2NvcmUgaXMgY2FsY3VsYXRlZCwgcGxlYXNlIHNlZVxuICAgKiB0aGUge0BsaW5rIGh0dHBzOi8vbHVucmpzLmNvbS9ndWlkZXMvc2VhcmNoaW5nLmh0bWwjc2NvcmluZ3xndWlkZX0uXG4gICAqXG4gICAqIEZvciBtb3JlIHByb2dyYW1tYXRpYyBxdWVyeWluZyB1c2UgbHVuci5JbmRleCNxdWVyeS5cbiAgICpcbiAgICogQHBhcmFtIHtsdW5yLkluZGV4flF1ZXJ5U3RyaW5nfSBxdWVyeVN0cmluZyAtIEEgc3RyaW5nIGNvbnRhaW5pbmcgYSBsdW5yIHF1ZXJ5LlxuICAgKiBAdGhyb3dzIHtsdW5yLlF1ZXJ5UGFyc2VFcnJvcn0gSWYgdGhlIHBhc3NlZCBxdWVyeSBzdHJpbmcgY2Fubm90IGJlIHBhcnNlZC5cbiAgICogQHJldHVybnMge2x1bnIuSW5kZXh+UmVzdWx0W119XG4gICAqL1xuICBsdW5yLkluZGV4LnByb3RvdHlwZS5zZWFyY2ggPSBmdW5jdGlvbiAocXVlcnlTdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeShmdW5jdGlvbiAocXVlcnkpIHtcbiAgICAgIHZhciBwYXJzZXIgPSBuZXcgbHVuci5RdWVyeVBhcnNlcihxdWVyeVN0cmluZywgcXVlcnkpO1xuICAgICAgcGFyc2VyLnBhcnNlKCk7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEEgcXVlcnkgYnVpbGRlciBjYWxsYmFjayBwcm92aWRlcyBhIHF1ZXJ5IG9iamVjdCB0byBiZSB1c2VkIHRvIGV4cHJlc3NcbiAgICogdGhlIHF1ZXJ5IHRvIHBlcmZvcm0gb24gdGhlIGluZGV4LlxuICAgKlxuICAgKiBAY2FsbGJhY2sgbHVuci5JbmRleH5xdWVyeUJ1aWxkZXJcbiAgICogQHBhcmFtIHtsdW5yLlF1ZXJ5fSBxdWVyeSAtIFRoZSBxdWVyeSBvYmplY3QgdG8gYnVpbGQgdXAuXG4gICAqIEB0aGlzIGx1bnIuUXVlcnlcbiAgICovXG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIGEgcXVlcnkgYWdhaW5zdCB0aGUgaW5kZXggdXNpbmcgdGhlIHlpZWxkZWQgbHVuci5RdWVyeSBvYmplY3QuXG4gICAqXG4gICAqIElmIHBlcmZvcm1pbmcgcHJvZ3JhbW1hdGljIHF1ZXJpZXMgYWdhaW5zdCB0aGUgaW5kZXgsIHRoaXMgbWV0aG9kIGlzIHByZWZlcnJlZFxuICAgKiBvdmVyIGx1bnIuSW5kZXgjc2VhcmNoIHNvIGFzIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIHF1ZXJ5IHBhcnNpbmcgb3ZlcmhlYWQuXG4gICAqXG4gICAqIEEgcXVlcnkgb2JqZWN0IGlzIHlpZWxkZWQgdG8gdGhlIHN1cHBsaWVkIGZ1bmN0aW9uIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvXG4gICAqIGV4cHJlc3MgdGhlIHF1ZXJ5IHRvIGJlIHJ1biBhZ2FpbnN0IHRoZSBpbmRleC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGFsdGhvdWdoIHRoaXMgZnVuY3Rpb24gdGFrZXMgYSBjYWxsYmFjayBwYXJhbWV0ZXIgaXQgaXMgX25vdF8gYW5cbiAgICogYXN5bmNocm9ub3VzIG9wZXJhdGlvbiwgdGhlIGNhbGxiYWNrIGlzIGp1c3QgeWllbGRlZCBhIHF1ZXJ5IG9iamVjdCB0byBiZVxuICAgKiBjdXN0b21pemVkLlxuICAgKlxuICAgKiBAcGFyYW0ge2x1bnIuSW5kZXh+cXVlcnlCdWlsZGVyfSBmbiAtIEEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHRvIGJ1aWxkIHRoZSBxdWVyeS5cbiAgICogQHJldHVybnMge2x1bnIuSW5kZXh+UmVzdWx0W119XG4gICAqL1xuICBsdW5yLkluZGV4LnByb3RvdHlwZS5xdWVyeSA9IGZ1bmN0aW9uIChmbikge1xuICAgIC8vIGZvciBlYWNoIHF1ZXJ5IGNsYXVzZVxuICAgIC8vICogcHJvY2VzcyB0ZXJtc1xuICAgIC8vICogZXhwYW5kIHRlcm1zIGZyb20gdG9rZW4gc2V0XG4gICAgLy8gKiBmaW5kIG1hdGNoaW5nIGRvY3VtZW50cyBhbmQgbWV0YWRhdGFcbiAgICAvLyAqIGdldCBkb2N1bWVudCB2ZWN0b3JzXG4gICAgLy8gKiBzY29yZSBkb2N1bWVudHNcblxuICAgIHZhciBxdWVyeSA9IG5ldyBsdW5yLlF1ZXJ5KHRoaXMuZmllbGRzKSxcbiAgICAgIG1hdGNoaW5nRmllbGRzID0gT2JqZWN0LmNyZWF0ZShudWxsKSxcbiAgICAgIHF1ZXJ5VmVjdG9ycyA9IE9iamVjdC5jcmVhdGUobnVsbCksXG4gICAgICB0ZXJtRmllbGRDYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCksXG4gICAgICByZXF1aXJlZE1hdGNoZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpLFxuICAgICAgcHJvaGliaXRlZE1hdGNoZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gICAgLypcbiAgICAgKiBUbyBzdXBwb3J0IGZpZWxkIGxldmVsIGJvb3N0cyBhIHF1ZXJ5IHZlY3RvciBpcyBjcmVhdGVkIHBlclxuICAgICAqIGZpZWxkLiBBbiBlbXB0eSB2ZWN0b3IgaXMgZWFnZXJseSBjcmVhdGVkIHRvIHN1cHBvcnQgbmVnYXRlZFxuICAgICAqIHF1ZXJpZXMuXG4gICAgICovXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmZpZWxkcy5sZW5ndGg7IGkrKykge1xuICAgICAgcXVlcnlWZWN0b3JzW3RoaXMuZmllbGRzW2ldXSA9IG5ldyBsdW5yLlZlY3RvcigpO1xuICAgIH1cblxuICAgIGZuLmNhbGwocXVlcnksIHF1ZXJ5KTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVlcnkuY2xhdXNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgLypcbiAgICAgICAqIFVubGVzcyB0aGUgcGlwZWxpbmUgaGFzIGJlZW4gZGlzYWJsZWQgZm9yIHRoaXMgdGVybSwgd2hpY2ggaXNcbiAgICAgICAqIHRoZSBjYXNlIGZvciB0ZXJtcyB3aXRoIHdpbGRjYXJkcywgd2UgbmVlZCB0byBwYXNzIHRoZSBjbGF1c2VcbiAgICAgICAqIHRlcm0gdGhyb3VnaCB0aGUgc2VhcmNoIHBpcGVsaW5lLiBBIHBpcGVsaW5lIHJldHVybnMgYW4gYXJyYXlcbiAgICAgICAqIG9mIHByb2Nlc3NlZCB0ZXJtcy4gUGlwZWxpbmUgZnVuY3Rpb25zIG1heSBleHBhbmQgdGhlIHBhc3NlZFxuICAgICAgICogdGVybSwgd2hpY2ggbWVhbnMgd2UgbWF5IGVuZCB1cCBwZXJmb3JtaW5nIG11bHRpcGxlIGluZGV4IGxvb2t1cHNcbiAgICAgICAqIGZvciBhIHNpbmdsZSBxdWVyeSB0ZXJtLlxuICAgICAgICovXG4gICAgICB2YXIgY2xhdXNlID0gcXVlcnkuY2xhdXNlc1tpXSxcbiAgICAgICAgdGVybXMgPSBudWxsLFxuICAgICAgICBjbGF1c2VNYXRjaGVzID0gbHVuci5TZXQuZW1wdHk7XG5cbiAgICAgIGlmIChjbGF1c2UudXNlUGlwZWxpbmUpIHtcbiAgICAgICAgdGVybXMgPSB0aGlzLnBpcGVsaW5lLnJ1blN0cmluZyhjbGF1c2UudGVybSwge1xuICAgICAgICAgIGZpZWxkczogY2xhdXNlLmZpZWxkcyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0ZXJtcyA9IFtjbGF1c2UudGVybV07XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIG0gPSAwOyBtIDwgdGVybXMubGVuZ3RoOyBtKyspIHtcbiAgICAgICAgdmFyIHRlcm0gPSB0ZXJtc1ttXTtcblxuICAgICAgICAvKlxuICAgICAgICAgKiBFYWNoIHRlcm0gcmV0dXJuZWQgZnJvbSB0aGUgcGlwZWxpbmUgbmVlZHMgdG8gdXNlIHRoZSBzYW1lIHF1ZXJ5XG4gICAgICAgICAqIGNsYXVzZSBvYmplY3QsIGUuZy4gdGhlIHNhbWUgYm9vc3QgYW5kIG9yIGVkaXQgZGlzdGFuY2UuIFRoZVxuICAgICAgICAgKiBzaW1wbGVzdCB3YXkgdG8gZG8gdGhpcyBpcyB0byByZS11c2UgdGhlIGNsYXVzZSBvYmplY3QgYnV0IG11dGF0ZVxuICAgICAgICAgKiBpdHMgdGVybSBwcm9wZXJ0eS5cbiAgICAgICAgICovXG4gICAgICAgIGNsYXVzZS50ZXJtID0gdGVybTtcblxuICAgICAgICAvKlxuICAgICAgICAgKiBGcm9tIHRoZSB0ZXJtIGluIHRoZSBjbGF1c2Ugd2UgY3JlYXRlIGEgdG9rZW4gc2V0IHdoaWNoIHdpbGwgdGhlblxuICAgICAgICAgKiBiZSB1c2VkIHRvIGludGVyc2VjdCB0aGUgaW5kZXhlcyB0b2tlbiBzZXQgdG8gZ2V0IGEgbGlzdCBvZiB0ZXJtc1xuICAgICAgICAgKiB0byBsb29rdXAgaW4gdGhlIGludmVydGVkIGluZGV4XG4gICAgICAgICAqL1xuICAgICAgICB2YXIgdGVybVRva2VuU2V0ID0gbHVuci5Ub2tlblNldC5mcm9tQ2xhdXNlKGNsYXVzZSksXG4gICAgICAgICAgZXhwYW5kZWRUZXJtcyA9IHRoaXMudG9rZW5TZXQuaW50ZXJzZWN0KHRlcm1Ub2tlblNldCkudG9BcnJheSgpO1xuXG4gICAgICAgIC8qXG4gICAgICAgICAqIElmIGEgdGVybSBtYXJrZWQgYXMgcmVxdWlyZWQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIHRva2VuU2V0IGl0IGlzXG4gICAgICAgICAqIGltcG9zc2libGUgZm9yIHRoZSBzZWFyY2ggdG8gcmV0dXJuIGFueSBtYXRjaGVzLiBXZSBzZXQgYWxsIHRoZSBmaWVsZFxuICAgICAgICAgKiBzY29wZWQgcmVxdWlyZWQgbWF0Y2hlcyBzZXQgdG8gZW1wdHkgYW5kIHN0b3AgZXhhbWluaW5nIGFueSBmdXJ0aGVyXG4gICAgICAgICAqIGNsYXVzZXMuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXhwYW5kZWRUZXJtcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICBjbGF1c2UucHJlc2VuY2UgPT09IGx1bnIuUXVlcnkucHJlc2VuY2UuUkVRVUlSRURcbiAgICAgICAgKSB7XG4gICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBjbGF1c2UuZmllbGRzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICB2YXIgZmllbGQgPSBjbGF1c2UuZmllbGRzW2tdO1xuICAgICAgICAgICAgcmVxdWlyZWRNYXRjaGVzW2ZpZWxkXSA9IGx1bnIuU2V0LmVtcHR5O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBleHBhbmRlZFRlcm1zLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgLypcbiAgICAgICAgICAgKiBGb3IgZWFjaCB0ZXJtIGdldCB0aGUgcG9zdGluZyBhbmQgdGVybUluZGV4LCB0aGlzIGlzIHJlcXVpcmVkIGZvclxuICAgICAgICAgICAqIGJ1aWxkaW5nIHRoZSBxdWVyeSB2ZWN0b3IuXG4gICAgICAgICAgICovXG4gICAgICAgICAgdmFyIGV4cGFuZGVkVGVybSA9IGV4cGFuZGVkVGVybXNbal0sXG4gICAgICAgICAgICBwb3N0aW5nID0gdGhpcy5pbnZlcnRlZEluZGV4W2V4cGFuZGVkVGVybV0sXG4gICAgICAgICAgICB0ZXJtSW5kZXggPSBwb3N0aW5nLl9pbmRleDtcblxuICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgY2xhdXNlLmZpZWxkcy5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAqIEZvciBlYWNoIGZpZWxkIHRoYXQgdGhpcyBxdWVyeSB0ZXJtIGlzIHNjb3BlZCBieSAoYnkgZGVmYXVsdFxuICAgICAgICAgICAgICogYWxsIGZpZWxkcyBhcmUgaW4gc2NvcGUpIHdlIG5lZWQgdG8gZ2V0IGFsbCB0aGUgZG9jdW1lbnQgcmVmc1xuICAgICAgICAgICAgICogdGhhdCBoYXZlIHRoaXMgdGVybSBpbiB0aGF0IGZpZWxkLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIFRoZSBwb3N0aW5nIGlzIHRoZSBlbnRyeSBpbiB0aGUgaW52ZXJ0ZWRJbmRleCBmb3IgdGhlIG1hdGNoaW5nXG4gICAgICAgICAgICAgKiB0ZXJtIGZyb20gYWJvdmUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHZhciBmaWVsZCA9IGNsYXVzZS5maWVsZHNba10sXG4gICAgICAgICAgICAgIGZpZWxkUG9zdGluZyA9IHBvc3RpbmdbZmllbGRdLFxuICAgICAgICAgICAgICBtYXRjaGluZ0RvY3VtZW50UmVmcyA9IE9iamVjdC5rZXlzKGZpZWxkUG9zdGluZyksXG4gICAgICAgICAgICAgIHRlcm1GaWVsZCA9IGV4cGFuZGVkVGVybSArIFwiL1wiICsgZmllbGQsXG4gICAgICAgICAgICAgIG1hdGNoaW5nRG9jdW1lbnRzU2V0ID0gbmV3IGx1bnIuU2V0KG1hdGNoaW5nRG9jdW1lbnRSZWZzKTtcblxuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAqIGlmIHRoZSBwcmVzZW5jZSBvZiB0aGlzIHRlcm0gaXMgcmVxdWlyZWQgZW5zdXJlIHRoYXQgdGhlIG1hdGNoaW5nXG4gICAgICAgICAgICAgKiBkb2N1bWVudHMgYXJlIGFkZGVkIHRvIHRoZSBzZXQgb2YgcmVxdWlyZWQgbWF0Y2hlcyBmb3IgdGhpcyBjbGF1c2UuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoY2xhdXNlLnByZXNlbmNlID09IGx1bnIuUXVlcnkucHJlc2VuY2UuUkVRVUlSRUQpIHtcbiAgICAgICAgICAgICAgY2xhdXNlTWF0Y2hlcyA9IGNsYXVzZU1hdGNoZXMudW5pb24obWF0Y2hpbmdEb2N1bWVudHNTZXQpO1xuXG4gICAgICAgICAgICAgIGlmIChyZXF1aXJlZE1hdGNoZXNbZmllbGRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXF1aXJlZE1hdGNoZXNbZmllbGRdID0gbHVuci5TZXQuY29tcGxldGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAqIGlmIHRoZSBwcmVzZW5jZSBvZiB0aGlzIHRlcm0gaXMgcHJvaGliaXRlZCBlbnN1cmUgdGhhdCB0aGUgbWF0Y2hpbmdcbiAgICAgICAgICAgICAqIGRvY3VtZW50cyBhcmUgYWRkZWQgdG8gdGhlIHNldCBvZiBwcm9oaWJpdGVkIG1hdGNoZXMgZm9yIHRoaXMgZmllbGQsXG4gICAgICAgICAgICAgKiBjcmVhdGluZyB0aGF0IHNldCBpZiBpdCBkb2VzIG5vdCB5ZXQgZXhpc3QuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChjbGF1c2UucHJlc2VuY2UgPT0gbHVuci5RdWVyeS5wcmVzZW5jZS5QUk9ISUJJVEVEKSB7XG4gICAgICAgICAgICAgIGlmIChwcm9oaWJpdGVkTWF0Y2hlc1tmaWVsZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHByb2hpYml0ZWRNYXRjaGVzW2ZpZWxkXSA9IGx1bnIuU2V0LmVtcHR5O1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcHJvaGliaXRlZE1hdGNoZXNbZmllbGRdID1cbiAgICAgICAgICAgICAgICBwcm9oaWJpdGVkTWF0Y2hlc1tmaWVsZF0udW5pb24obWF0Y2hpbmdEb2N1bWVudHNTZXQpO1xuXG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAqIFByb2hpYml0ZWQgbWF0Y2hlcyBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhlIHF1ZXJ5IHZlY3RvciB1c2VkIGZvclxuICAgICAgICAgICAgICAgKiBzaW1pbGFyaXR5IHNjb3JpbmcgYW5kIG5vIG1ldGFkYXRhIHNob3VsZCBiZSBleHRyYWN0ZWQgc28gd2UgY29udGludWVcbiAgICAgICAgICAgICAgICogdG8gdGhlIG5leHQgZmllbGRcbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICogVGhlIHF1ZXJ5IGZpZWxkIHZlY3RvciBpcyBwb3B1bGF0ZWQgdXNpbmcgdGhlIHRlcm1JbmRleCBmb3VuZCBmb3JcbiAgICAgICAgICAgICAqIHRoZSB0ZXJtIGFuZCBhIHVuaXQgdmFsdWUgd2l0aCB0aGUgYXBwcm9wcmlhdGUgYm9vc3QgYXBwbGllZC5cbiAgICAgICAgICAgICAqIFVzaW5nIHVwc2VydCBiZWNhdXNlIHRoZXJlIGNvdWxkIGFscmVhZHkgYmUgYW4gZW50cnkgaW4gdGhlIHZlY3RvclxuICAgICAgICAgICAgICogZm9yIHRoZSB0ZXJtIHdlIGFyZSB3b3JraW5nIHdpdGguIEluIHRoYXQgY2FzZSB3ZSBqdXN0IGFkZCB0aGUgc2NvcmVzXG4gICAgICAgICAgICAgKiB0b2dldGhlci5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgcXVlcnlWZWN0b3JzW2ZpZWxkXS51cHNlcnQoXG4gICAgICAgICAgICAgIHRlcm1JbmRleCxcbiAgICAgICAgICAgICAgY2xhdXNlLmJvb3N0LFxuICAgICAgICAgICAgICBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHJldHVybiBhICsgYjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB3ZSd2ZSBhbHJlYWR5IHNlZW4gdGhpcyB0ZXJtLCBmaWVsZCBjb21ibyB0aGVuIHdlJ3ZlIGFscmVhZHkgY29sbGVjdGVkXG4gICAgICAgICAgICAgKiB0aGUgbWF0Y2hpbmcgZG9jdW1lbnRzIGFuZCBtZXRhZGF0YSwgbm8gbmVlZCB0byBnbyB0aHJvdWdoIGFsbCB0aGF0IGFnYWluXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0ZXJtRmllbGRDYWNoZVt0ZXJtRmllbGRdKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKHZhciBsID0gMDsgbCA8IG1hdGNoaW5nRG9jdW1lbnRSZWZzLmxlbmd0aDsgbCsrKSB7XG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAqIEFsbCBtZXRhZGF0YSBmb3IgdGhpcyB0ZXJtL2ZpZWxkL2RvY3VtZW50IHRyaXBsZVxuICAgICAgICAgICAgICAgKiBhcmUgdGhlbiBleHRyYWN0ZWQgYW5kIGNvbGxlY3RlZCBpbnRvIGFuIGluc3RhbmNlXG4gICAgICAgICAgICAgICAqIG9mIGx1bnIuTWF0Y2hEYXRhIHJlYWR5IHRvIGJlIHJldHVybmVkIGluIHRoZSBxdWVyeVxuICAgICAgICAgICAgICAgKiByZXN1bHRzXG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICB2YXIgbWF0Y2hpbmdEb2N1bWVudFJlZiA9IG1hdGNoaW5nRG9jdW1lbnRSZWZzW2xdLFxuICAgICAgICAgICAgICAgIG1hdGNoaW5nRmllbGRSZWYgPSBuZXcgbHVuci5GaWVsZFJlZihcbiAgICAgICAgICAgICAgICAgIG1hdGNoaW5nRG9jdW1lbnRSZWYsXG4gICAgICAgICAgICAgICAgICBmaWVsZFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaWVsZFBvc3RpbmdbbWF0Y2hpbmdEb2N1bWVudFJlZl0sXG4gICAgICAgICAgICAgICAgZmllbGRNYXRjaDtcblxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGZpZWxkTWF0Y2ggPSBtYXRjaGluZ0ZpZWxkc1ttYXRjaGluZ0ZpZWxkUmVmXSkgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBtYXRjaGluZ0ZpZWxkc1ttYXRjaGluZ0ZpZWxkUmVmXSA9IG5ldyBsdW5yLk1hdGNoRGF0YShcbiAgICAgICAgICAgICAgICAgIGV4cGFuZGVkVGVybSxcbiAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgbWV0YWRhdGFcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZpZWxkTWF0Y2guYWRkKGV4cGFuZGVkVGVybSwgZmllbGQsIG1ldGFkYXRhKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZXJtRmllbGRDYWNoZVt0ZXJtRmllbGRdID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB0aGUgcHJlc2VuY2Ugd2FzIHJlcXVpcmVkIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSByZXF1aXJlZE1hdGNoZXMgZmllbGQgc2V0cy5cbiAgICAgICAqIFdlIGRvIHRoaXMgYWZ0ZXIgYWxsIGZpZWxkcyBmb3IgdGhlIHRlcm0gaGF2ZSBjb2xsZWN0ZWQgdGhlaXIgbWF0Y2hlcyBiZWNhdXNlXG4gICAgICAgKiB0aGUgY2xhdXNlIHRlcm1zIHByZXNlbmNlIGlzIHJlcXVpcmVkIGluIF9hbnlfIG9mIHRoZSBmaWVsZHMgbm90IF9hbGxfIG9mIHRoZVxuICAgICAgICogZmllbGRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2xhdXNlLnByZXNlbmNlID09PSBsdW5yLlF1ZXJ5LnByZXNlbmNlLlJFUVVJUkVEKSB7XG4gICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgY2xhdXNlLmZpZWxkcy5sZW5ndGg7IGsrKykge1xuICAgICAgICAgIHZhciBmaWVsZCA9IGNsYXVzZS5maWVsZHNba107XG4gICAgICAgICAgcmVxdWlyZWRNYXRjaGVzW2ZpZWxkXSA9XG4gICAgICAgICAgICByZXF1aXJlZE1hdGNoZXNbZmllbGRdLmludGVyc2VjdChjbGF1c2VNYXRjaGVzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5lZWQgdG8gY29tYmluZSB0aGUgZmllbGQgc2NvcGVkIHJlcXVpcmVkIGFuZCBwcm9oaWJpdGVkXG4gICAgICogbWF0Y2hpbmcgZG9jdW1lbnRzIGludG8gYSBnbG9iYWwgc2V0IG9mIHJlcXVpcmVkIGFuZCBwcm9oaWJpdGVkXG4gICAgICogbWF0Y2hlc1xuICAgICAqL1xuICAgIHZhciBhbGxSZXF1aXJlZE1hdGNoZXMgPSBsdW5yLlNldC5jb21wbGV0ZSxcbiAgICAgIGFsbFByb2hpYml0ZWRNYXRjaGVzID0gbHVuci5TZXQuZW1wdHk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZmllbGQgPSB0aGlzLmZpZWxkc1tpXTtcblxuICAgICAgaWYgKHJlcXVpcmVkTWF0Y2hlc1tmaWVsZF0pIHtcbiAgICAgICAgYWxsUmVxdWlyZWRNYXRjaGVzID0gYWxsUmVxdWlyZWRNYXRjaGVzLmludGVyc2VjdChcbiAgICAgICAgICByZXF1aXJlZE1hdGNoZXNbZmllbGRdXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9oaWJpdGVkTWF0Y2hlc1tmaWVsZF0pIHtcbiAgICAgICAgYWxsUHJvaGliaXRlZE1hdGNoZXMgPSBhbGxQcm9oaWJpdGVkTWF0Y2hlcy51bmlvbihcbiAgICAgICAgICBwcm9oaWJpdGVkTWF0Y2hlc1tmaWVsZF1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbWF0Y2hpbmdGaWVsZFJlZnMgPSBPYmplY3Qua2V5cyhtYXRjaGluZ0ZpZWxkcyksXG4gICAgICByZXN1bHRzID0gW10sXG4gICAgICBtYXRjaGVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIC8qXG4gICAgICogSWYgdGhlIHF1ZXJ5IGlzIG5lZ2F0ZWQgKGNvbnRhaW5zIG9ubHkgcHJvaGliaXRlZCB0ZXJtcylcbiAgICAgKiB3ZSBuZWVkIHRvIGdldCBfYWxsXyBmaWVsZFJlZnMgY3VycmVudGx5IGV4aXN0aW5nIGluIHRoZVxuICAgICAqIGluZGV4LiBUaGlzIGlzIG9ubHkgZG9uZSB3aGVuIHdlIGtub3cgdGhhdCB0aGUgcXVlcnkgaXNcbiAgICAgKiBlbnRpcmVseSBwcm9oaWJpdGVkIHRlcm1zIHRvIGF2b2lkIGFueSBjb3N0IG9mIGdldHRpbmcgYWxsXG4gICAgICogZmllbGRSZWZzIHVubmVjZXNzYXJpbHkuXG4gICAgICpcbiAgICAgKiBBZGRpdGlvbmFsbHksIGJsYW5rIE1hdGNoRGF0YSBtdXN0IGJlIGNyZWF0ZWQgdG8gY29ycmVjdGx5XG4gICAgICogcG9wdWxhdGUgdGhlIHJlc3VsdHMuXG4gICAgICovXG4gICAgaWYgKHF1ZXJ5LmlzTmVnYXRlZCgpKSB7XG4gICAgICBtYXRjaGluZ0ZpZWxkUmVmcyA9IE9iamVjdC5rZXlzKHRoaXMuZmllbGRWZWN0b3JzKTtcblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXRjaGluZ0ZpZWxkUmVmcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgbWF0Y2hpbmdGaWVsZFJlZiA9IG1hdGNoaW5nRmllbGRSZWZzW2ldO1xuICAgICAgICB2YXIgZmllbGRSZWYgPSBsdW5yLkZpZWxkUmVmLmZyb21TdHJpbmcobWF0Y2hpbmdGaWVsZFJlZik7XG4gICAgICAgIG1hdGNoaW5nRmllbGRzW21hdGNoaW5nRmllbGRSZWZdID0gbmV3IGx1bnIuTWF0Y2hEYXRhKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXRjaGluZ0ZpZWxkUmVmcy5sZW5ndGg7IGkrKykge1xuICAgICAgLypcbiAgICAgICAqIEN1cnJlbnRseSB3ZSBoYXZlIGRvY3VtZW50IGZpZWxkcyB0aGF0IG1hdGNoIHRoZSBxdWVyeSwgYnV0IHdlXG4gICAgICAgKiBuZWVkIHRvIHJldHVybiBkb2N1bWVudHMuIFRoZSBtYXRjaERhdGEgYW5kIHNjb3JlcyBhcmUgY29tYmluZWRcbiAgICAgICAqIGZyb20gbXVsdGlwbGUgZmllbGRzIGJlbG9uZ2luZyB0byB0aGUgc2FtZSBkb2N1bWVudC5cbiAgICAgICAqXG4gICAgICAgKiBTY29yZXMgYXJlIGNhbGN1bGF0ZWQgYnkgZmllbGQsIHVzaW5nIHRoZSBxdWVyeSB2ZWN0b3JzIGNyZWF0ZWRcbiAgICAgICAqIGFib3ZlLCBhbmQgY29tYmluZWQgaW50byBhIGZpbmFsIGRvY3VtZW50IHNjb3JlIHVzaW5nIGFkZGl0aW9uLlxuICAgICAgICovXG4gICAgICB2YXIgZmllbGRSZWYgPSBsdW5yLkZpZWxkUmVmLmZyb21TdHJpbmcobWF0Y2hpbmdGaWVsZFJlZnNbaV0pLFxuICAgICAgICBkb2NSZWYgPSBmaWVsZFJlZi5kb2NSZWY7XG5cbiAgICAgIGlmICghYWxsUmVxdWlyZWRNYXRjaGVzLmNvbnRhaW5zKGRvY1JlZikpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChhbGxQcm9oaWJpdGVkTWF0Y2hlcy5jb250YWlucyhkb2NSZWYpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgZmllbGRWZWN0b3IgPSB0aGlzLmZpZWxkVmVjdG9yc1tmaWVsZFJlZl0sXG4gICAgICAgIHNjb3JlID0gcXVlcnlWZWN0b3JzW2ZpZWxkUmVmLmZpZWxkTmFtZV0uc2ltaWxhcml0eShmaWVsZFZlY3RvciksXG4gICAgICAgIGRvY01hdGNoO1xuXG4gICAgICBpZiAoKGRvY01hdGNoID0gbWF0Y2hlc1tkb2NSZWZdKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRvY01hdGNoLnNjb3JlICs9IHNjb3JlO1xuICAgICAgICBkb2NNYXRjaC5tYXRjaERhdGEuY29tYmluZShtYXRjaGluZ0ZpZWxkc1tmaWVsZFJlZl0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG1hdGNoID0ge1xuICAgICAgICAgIHJlZjogZG9jUmVmLFxuICAgICAgICAgIHNjb3JlOiBzY29yZSxcbiAgICAgICAgICBtYXRjaERhdGE6IG1hdGNoaW5nRmllbGRzW2ZpZWxkUmVmXSxcbiAgICAgICAgfTtcbiAgICAgICAgbWF0Y2hlc1tkb2NSZWZdID0gbWF0Y2g7XG4gICAgICAgIHJlc3VsdHMucHVzaChtYXRjaCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBTb3J0IHRoZSByZXN1bHRzIG9iamVjdHMgYnkgc2NvcmUsIGhpZ2hlc3QgZmlyc3QuXG4gICAgICovXG4gICAgcmV0dXJuIHJlc3VsdHMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGIuc2NvcmUgLSBhLnNjb3JlO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQcmVwYXJlcyB0aGUgaW5kZXggZm9yIEpTT04gc2VyaWFsaXphdGlvbi5cbiAgICpcbiAgICogVGhlIHNjaGVtYSBmb3IgdGhpcyBKU09OIGJsb2Igd2lsbCBiZSBkZXNjcmliZWQgaW4gYVxuICAgKiBzZXBhcmF0ZSBKU09OIHNjaGVtYSBmaWxlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fVxuICAgKi9cbiAgbHVuci5JbmRleC5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBpbnZlcnRlZEluZGV4ID0gT2JqZWN0LmtleXModGhpcy5pbnZlcnRlZEluZGV4KVxuICAgICAgLnNvcnQoKVxuICAgICAgLm1hcChmdW5jdGlvbiAodGVybSkge1xuICAgICAgICByZXR1cm4gW3Rlcm0sIHRoaXMuaW52ZXJ0ZWRJbmRleFt0ZXJtXV07XG4gICAgICB9LCB0aGlzKTtcblxuICAgIHZhciBmaWVsZFZlY3RvcnMgPSBPYmplY3Qua2V5cyh0aGlzLmZpZWxkVmVjdG9ycykubWFwKGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIHJldHVybiBbcmVmLCB0aGlzLmZpZWxkVmVjdG9yc1tyZWZdLnRvSlNPTigpXTtcbiAgICB9LCB0aGlzKTtcblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uOiBsdW5yLnZlcnNpb24sXG4gICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLFxuICAgICAgZmllbGRWZWN0b3JzOiBmaWVsZFZlY3RvcnMsXG4gICAgICBpbnZlcnRlZEluZGV4OiBpbnZlcnRlZEluZGV4LFxuICAgICAgcGlwZWxpbmU6IHRoaXMucGlwZWxpbmUudG9KU09OKCksXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogTG9hZHMgYSBwcmV2aW91c2x5IHNlcmlhbGl6ZWQgbHVuci5JbmRleFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gc2VyaWFsaXplZEluZGV4IC0gQSBwcmV2aW91c2x5IHNlcmlhbGl6ZWQgbHVuci5JbmRleFxuICAgKiBAcmV0dXJucyB7bHVuci5JbmRleH1cbiAgICovXG4gIGx1bnIuSW5kZXgubG9hZCA9IGZ1bmN0aW9uIChzZXJpYWxpemVkSW5kZXgpIHtcbiAgICB2YXIgYXR0cnMgPSB7fSxcbiAgICAgIGZpZWxkVmVjdG9ycyA9IHt9LFxuICAgICAgc2VyaWFsaXplZFZlY3RvcnMgPSBzZXJpYWxpemVkSW5kZXguZmllbGRWZWN0b3JzLFxuICAgICAgaW52ZXJ0ZWRJbmRleCA9IE9iamVjdC5jcmVhdGUobnVsbCksXG4gICAgICBzZXJpYWxpemVkSW52ZXJ0ZWRJbmRleCA9IHNlcmlhbGl6ZWRJbmRleC5pbnZlcnRlZEluZGV4LFxuICAgICAgdG9rZW5TZXRCdWlsZGVyID0gbmV3IGx1bnIuVG9rZW5TZXQuQnVpbGRlcigpLFxuICAgICAgcGlwZWxpbmUgPSBsdW5yLlBpcGVsaW5lLmxvYWQoc2VyaWFsaXplZEluZGV4LnBpcGVsaW5lKTtcblxuICAgIGlmIChzZXJpYWxpemVkSW5kZXgudmVyc2lvbiAhPSBsdW5yLnZlcnNpb24pIHtcbiAgICAgIGx1bnIudXRpbHMud2FybihcbiAgICAgICAgXCJWZXJzaW9uIG1pc21hdGNoIHdoZW4gbG9hZGluZyBzZXJpYWxpc2VkIGluZGV4LiBDdXJyZW50IHZlcnNpb24gb2YgbHVuciAnXCIgK1xuICAgICAgICAgIGx1bnIudmVyc2lvbiArXG4gICAgICAgICAgXCInIGRvZXMgbm90IG1hdGNoIHNlcmlhbGl6ZWQgaW5kZXggJ1wiICtcbiAgICAgICAgICBzZXJpYWxpemVkSW5kZXgudmVyc2lvbiArXG4gICAgICAgICAgXCInXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXJpYWxpemVkVmVjdG9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHR1cGxlID0gc2VyaWFsaXplZFZlY3RvcnNbaV0sXG4gICAgICAgIHJlZiA9IHR1cGxlWzBdLFxuICAgICAgICBlbGVtZW50cyA9IHR1cGxlWzFdO1xuXG4gICAgICBmaWVsZFZlY3RvcnNbcmVmXSA9IG5ldyBsdW5yLlZlY3RvcihlbGVtZW50cyk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXJpYWxpemVkSW52ZXJ0ZWRJbmRleC5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHR1cGxlID0gc2VyaWFsaXplZEludmVydGVkSW5kZXhbaV0sXG4gICAgICAgIHRlcm0gPSB0dXBsZVswXSxcbiAgICAgICAgcG9zdGluZyA9IHR1cGxlWzFdO1xuXG4gICAgICB0b2tlblNldEJ1aWxkZXIuaW5zZXJ0KHRlcm0pO1xuICAgICAgaW52ZXJ0ZWRJbmRleFt0ZXJtXSA9IHBvc3Rpbmc7XG4gICAgfVxuXG4gICAgdG9rZW5TZXRCdWlsZGVyLmZpbmlzaCgpO1xuXG4gICAgYXR0cnMuZmllbGRzID0gc2VyaWFsaXplZEluZGV4LmZpZWxkcztcblxuICAgIGF0dHJzLmZpZWxkVmVjdG9ycyA9IGZpZWxkVmVjdG9ycztcbiAgICBhdHRycy5pbnZlcnRlZEluZGV4ID0gaW52ZXJ0ZWRJbmRleDtcbiAgICBhdHRycy50b2tlblNldCA9IHRva2VuU2V0QnVpbGRlci5yb290O1xuICAgIGF0dHJzLnBpcGVsaW5lID0gcGlwZWxpbmU7XG5cbiAgICByZXR1cm4gbmV3IGx1bnIuSW5kZXgoYXR0cnMpO1xuICB9O1xuICAvKiFcbiAgICogbHVuci5CdWlsZGVyXG4gICAqIENvcHlyaWdodCAoQykgMjAyMCBPbGl2ZXIgTmlnaHRpbmdhbGVcbiAgICovXG5cbiAgLyoqXG4gICAqIGx1bnIuQnVpbGRlciBwZXJmb3JtcyBpbmRleGluZyBvbiBhIHNldCBvZiBkb2N1bWVudHMgYW5kXG4gICAqIHJldHVybnMgaW5zdGFuY2VzIG9mIGx1bnIuSW5kZXggcmVhZHkgZm9yIHF1ZXJ5aW5nLlxuICAgKlxuICAgKiBBbGwgY29uZmlndXJhdGlvbiBvZiB0aGUgaW5kZXggaXMgZG9uZSB2aWEgdGhlIGJ1aWxkZXIsIHRoZVxuICAgKiBmaWVsZHMgdG8gaW5kZXgsIHRoZSBkb2N1bWVudCByZWZlcmVuY2UsIHRoZSB0ZXh0IHByb2Nlc3NpbmdcbiAgICogcGlwZWxpbmUgYW5kIGRvY3VtZW50IHNjb3JpbmcgcGFyYW1ldGVycyBhcmUgYWxsIHNldCBvbiB0aGVcbiAgICogYnVpbGRlciBiZWZvcmUgaW5kZXhpbmcuXG4gICAqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gX3JlZiAtIEludGVybmFsIHJlZmVyZW5jZSB0byB0aGUgZG9jdW1lbnQgcmVmZXJlbmNlIGZpZWxkLlxuICAgKiBAcHJvcGVydHkge3N0cmluZ1tdfSBfZmllbGRzIC0gSW50ZXJuYWwgcmVmZXJlbmNlIHRvIHRoZSBkb2N1bWVudCBmaWVsZHMgdG8gaW5kZXguXG4gICAqIEBwcm9wZXJ0eSB7b2JqZWN0fSBpbnZlcnRlZEluZGV4IC0gVGhlIGludmVydGVkIGluZGV4IG1hcHMgdGVybXMgdG8gZG9jdW1lbnQgZmllbGRzLlxuICAgKiBAcHJvcGVydHkge29iamVjdH0gZG9jdW1lbnRUZXJtRnJlcXVlbmNpZXMgLSBLZWVwcyB0cmFjayBvZiBkb2N1bWVudCB0ZXJtIGZyZXF1ZW5jaWVzLlxuICAgKiBAcHJvcGVydHkge29iamVjdH0gZG9jdW1lbnRMZW5ndGhzIC0gS2VlcHMgdHJhY2sgb2YgdGhlIGxlbmd0aCBvZiBkb2N1bWVudHMgYWRkZWQgdG8gdGhlIGluZGV4LlxuICAgKiBAcHJvcGVydHkge2x1bnIudG9rZW5pemVyfSB0b2tlbml6ZXIgLSBGdW5jdGlvbiBmb3Igc3BsaXR0aW5nIHN0cmluZ3MgaW50byB0b2tlbnMgZm9yIGluZGV4aW5nLlxuICAgKiBAcHJvcGVydHkge2x1bnIuUGlwZWxpbmV9IHBpcGVsaW5lIC0gVGhlIHBpcGVsaW5lIHBlcmZvcm1zIHRleHQgcHJvY2Vzc2luZyBvbiB0b2tlbnMgYmVmb3JlIGluZGV4aW5nLlxuICAgKiBAcHJvcGVydHkge2x1bnIuUGlwZWxpbmV9IHNlYXJjaFBpcGVsaW5lIC0gQSBwaXBlbGluZSBmb3IgcHJvY2Vzc2luZyBzZWFyY2ggdGVybXMgYmVmb3JlIHF1ZXJ5aW5nIHRoZSBpbmRleC5cbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGRvY3VtZW50Q291bnQgLSBLZWVwcyB0cmFjayBvZiB0aGUgdG90YWwgbnVtYmVyIG9mIGRvY3VtZW50cyBpbmRleGVkLlxuICAgKiBAcHJvcGVydHkge251bWJlcn0gX2IgLSBBIHBhcmFtZXRlciB0byBjb250cm9sIGZpZWxkIGxlbmd0aCBub3JtYWxpemF0aW9uLCBzZXR0aW5nIHRoaXMgdG8gMCBkaXNhYmxlZCBub3JtYWxpemF0aW9uLCAxIGZ1bGx5IG5vcm1hbGl6ZXMgZmllbGQgbGVuZ3RocywgdGhlIGRlZmF1bHQgdmFsdWUgaXMgMC43NS5cbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IF9rMSAtIEEgcGFyYW1ldGVyIHRvIGNvbnRyb2wgaG93IHF1aWNrbHkgYW4gaW5jcmVhc2UgaW4gdGVybSBmcmVxdWVuY3kgcmVzdWx0cyBpbiB0ZXJtIGZyZXF1ZW5jeSBzYXR1cmF0aW9uLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyAxLjIuXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB0ZXJtSW5kZXggLSBBIGNvdW50ZXIgaW5jcmVtZW50ZWQgZm9yIGVhY2ggdW5pcXVlIHRlcm0sIHVzZWQgdG8gaWRlbnRpZnkgYSB0ZXJtcyBwb3NpdGlvbiBpbiB0aGUgdmVjdG9yIHNwYWNlLlxuICAgKiBAcHJvcGVydHkge2FycmF5fSBtZXRhZGF0YVdoaXRlbGlzdCAtIEEgbGlzdCBvZiBtZXRhZGF0YSBrZXlzIHRoYXQgaGF2ZSBiZWVuIHdoaXRlbGlzdGVkIGZvciBlbnRyeSBpbiB0aGUgaW5kZXguXG4gICAqL1xuICBsdW5yLkJ1aWxkZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5fcmVmID0gXCJpZFwiO1xuICAgIHRoaXMuX2ZpZWxkcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZG9jdW1lbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLmludmVydGVkSW5kZXggPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRoaXMuZmllbGRUZXJtRnJlcXVlbmNpZXMgPSB7fTtcbiAgICB0aGlzLmZpZWxkTGVuZ3RocyA9IHt9O1xuICAgIHRoaXMudG9rZW5pemVyID0gbHVuci50b2tlbml6ZXI7XG4gICAgdGhpcy5waXBlbGluZSA9IG5ldyBsdW5yLlBpcGVsaW5lKCk7XG4gICAgdGhpcy5zZWFyY2hQaXBlbGluZSA9IG5ldyBsdW5yLlBpcGVsaW5lKCk7XG4gICAgdGhpcy5kb2N1bWVudENvdW50ID0gMDtcbiAgICB0aGlzLl9iID0gMC43NTtcbiAgICB0aGlzLl9rMSA9IDEuMjtcbiAgICB0aGlzLnRlcm1JbmRleCA9IDA7XG4gICAgdGhpcy5tZXRhZGF0YVdoaXRlbGlzdCA9IFtdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkb2N1bWVudCBmaWVsZCB1c2VkIGFzIHRoZSBkb2N1bWVudCByZWZlcmVuY2UuIEV2ZXJ5IGRvY3VtZW50IG11c3QgaGF2ZSB0aGlzIGZpZWxkLlxuICAgKiBUaGUgdHlwZSBvZiB0aGlzIGZpZWxkIGluIHRoZSBkb2N1bWVudCBzaG91bGQgYmUgYSBzdHJpbmcsIGlmIGl0IGlzIG5vdCBhIHN0cmluZyBpdCB3aWxsIGJlXG4gICAqIGNvZXJjZWQgaW50byBhIHN0cmluZyBieSBjYWxsaW5nIHRvU3RyaW5nLlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCByZWYgaXMgJ2lkJy5cbiAgICpcbiAgICogVGhlIHJlZiBzaG91bGQgX25vdF8gYmUgY2hhbmdlZCBkdXJpbmcgaW5kZXhpbmcsIGl0IHNob3VsZCBiZSBzZXQgYmVmb3JlIGFueSBkb2N1bWVudHMgYXJlXG4gICAqIGFkZGVkIHRvIHRoZSBpbmRleC4gQ2hhbmdpbmcgaXQgZHVyaW5nIGluZGV4aW5nIGNhbiBsZWFkIHRvIGluY29uc2lzdGVudCByZXN1bHRzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVmIC0gVGhlIG5hbWUgb2YgdGhlIHJlZmVyZW5jZSBmaWVsZCBpbiB0aGUgZG9jdW1lbnQuXG4gICAqL1xuICBsdW5yLkJ1aWxkZXIucHJvdG90eXBlLnJlZiA9IGZ1bmN0aW9uIChyZWYpIHtcbiAgICB0aGlzLl9yZWYgPSByZWY7XG4gIH07XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHRvIGV4dHJhY3QgYSBmaWVsZCBmcm9tIGEgZG9jdW1lbnQuXG4gICAqXG4gICAqIEx1bnIgZXhwZWN0cyBhIGZpZWxkIHRvIGJlIGF0IHRoZSB0b3AgbGV2ZWwgb2YgYSBkb2N1bWVudCwgaWYgaG93ZXZlciB0aGUgZmllbGRcbiAgICogaXMgZGVlcGx5IG5lc3RlZCB3aXRoaW4gYSBkb2N1bWVudCBhbiBleHRyYWN0b3IgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gZXh0cmFjdFxuICAgKiB0aGUgcmlnaHQgZmllbGQgZm9yIGluZGV4aW5nLlxuICAgKlxuICAgKiBAY2FsbGJhY2sgZmllbGRFeHRyYWN0b3JcbiAgICogQHBhcmFtIHtvYmplY3R9IGRvYyAtIFRoZSBkb2N1bWVudCBiZWluZyBhZGRlZCB0byB0aGUgaW5kZXguXG4gICAqIEByZXR1cm5zIHs/KHN0cmluZ3xvYmplY3R8b2JqZWN0W10pfSBvYmogLSBUaGUgb2JqZWN0IHRoYXQgd2lsbCBiZSBpbmRleGVkIGZvciB0aGlzIGZpZWxkLlxuICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5FeHRyYWN0aW5nIGEgbmVzdGVkIGZpZWxkPC9jYXB0aW9uPlxuICAgKiBmdW5jdGlvbiAoZG9jKSB7IHJldHVybiBkb2MubmVzdGVkLmZpZWxkIH1cbiAgICovXG5cbiAgLyoqXG4gICAqIEFkZHMgYSBmaWVsZCB0byB0aGUgbGlzdCBvZiBkb2N1bWVudCBmaWVsZHMgdGhhdCB3aWxsIGJlIGluZGV4ZWQuIEV2ZXJ5IGRvY3VtZW50IGJlaW5nXG4gICAqIGluZGV4ZWQgc2hvdWxkIGhhdmUgdGhpcyBmaWVsZC4gTnVsbCB2YWx1ZXMgZm9yIHRoaXMgZmllbGQgaW4gaW5kZXhlZCBkb2N1bWVudHMgd2lsbFxuICAgKiBub3QgY2F1c2UgZXJyb3JzIGJ1dCB3aWxsIGxpbWl0IHRoZSBjaGFuY2Ugb2YgdGhhdCBkb2N1bWVudCBiZWluZyByZXRyaWV2ZWQgYnkgc2VhcmNoZXMuXG4gICAqXG4gICAqIEFsbCBmaWVsZHMgc2hvdWxkIGJlIGFkZGVkIGJlZm9yZSBhZGRpbmcgZG9jdW1lbnRzIHRvIHRoZSBpbmRleC4gQWRkaW5nIGZpZWxkcyBhZnRlclxuICAgKiBhIGRvY3VtZW50IGhhcyBiZWVuIGluZGV4ZWQgd2lsbCBoYXZlIG5vIGVmZmVjdCBvbiBhbHJlYWR5IGluZGV4ZWQgZG9jdW1lbnRzLlxuICAgKlxuICAgKiBGaWVsZHMgY2FuIGJlIGJvb3N0ZWQgYXQgYnVpbGQgdGltZS4gVGhpcyBhbGxvd3MgdGVybXMgd2l0aGluIHRoYXQgZmllbGQgdG8gaGF2ZSBtb3JlXG4gICAqIGltcG9ydGFuY2Ugd2hlbiByYW5raW5nIHNlYXJjaCByZXN1bHRzLiBVc2UgYSBmaWVsZCBib29zdCB0byBzcGVjaWZ5IHRoYXQgbWF0Y2hlcyB3aXRoaW5cbiAgICogb25lIGZpZWxkIGFyZSBtb3JlIGltcG9ydGFudCB0aGFuIG90aGVyIGZpZWxkcy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpZWxkTmFtZSAtIFRoZSBuYW1lIG9mIGEgZmllbGQgdG8gaW5kZXggaW4gYWxsIGRvY3VtZW50cy5cbiAgICogQHBhcmFtIHtvYmplY3R9IGF0dHJpYnV0ZXMgLSBPcHRpb25hbCBhdHRyaWJ1dGVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpZWxkLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2F0dHJpYnV0ZXMuYm9vc3Q9MV0gLSBCb29zdCBhcHBsaWVkIHRvIGFsbCB0ZXJtcyB3aXRoaW4gdGhpcyBmaWVsZC5cbiAgICogQHBhcmFtIHtmaWVsZEV4dHJhY3Rvcn0gW2F0dHJpYnV0ZXMuZXh0cmFjdG9yXSAtIEZ1bmN0aW9uIHRvIGV4dHJhY3QgYSBmaWVsZCBmcm9tIGEgZG9jdW1lbnQuXG4gICAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGZpZWxkTmFtZSBjYW5ub3QgY29udGFpbiB1bnN1cHBvcnRlZCBjaGFyYWN0ZXJzICcvJ1xuICAgKi9cbiAgbHVuci5CdWlsZGVyLnByb3RvdHlwZS5maWVsZCA9IGZ1bmN0aW9uIChmaWVsZE5hbWUsIGF0dHJpYnV0ZXMpIHtcbiAgICBpZiAoL1xcLy8udGVzdChmaWVsZE5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcbiAgICAgICAgXCJGaWVsZCAnXCIgKyBmaWVsZE5hbWUgKyBcIicgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXIgJy8nXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fZmllbGRzW2ZpZWxkTmFtZV0gPSBhdHRyaWJ1dGVzIHx8IHt9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBBIHBhcmFtZXRlciB0byB0dW5lIHRoZSBhbW91bnQgb2YgZmllbGQgbGVuZ3RoIG5vcm1hbGlzYXRpb24gdGhhdCBpcyBhcHBsaWVkIHdoZW5cbiAgICogY2FsY3VsYXRpbmcgcmVsZXZhbmNlIHNjb3Jlcy4gQSB2YWx1ZSBvZiAwIHdpbGwgY29tcGxldGVseSBkaXNhYmxlIGFueSBub3JtYWxpc2F0aW9uXG4gICAqIGFuZCBhIHZhbHVlIG9mIDEgd2lsbCBmdWxseSBub3JtYWxpc2UgZmllbGQgbGVuZ3Rocy4gVGhlIGRlZmF1bHQgaXMgMC43NS4gVmFsdWVzIG9mIGJcbiAgICogd2lsbCBiZSBjbGFtcGVkIHRvIHRoZSByYW5nZSAwIC0gMS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciAtIFRoZSB2YWx1ZSB0byBzZXQgZm9yIHRoaXMgdHVuaW5nIHBhcmFtZXRlci5cbiAgICovXG4gIGx1bnIuQnVpbGRlci5wcm90b3R5cGUuYiA9IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgdGhpcy5fYiA9IDA7XG4gICAgfSBlbHNlIGlmIChudW1iZXIgPiAxKSB7XG4gICAgICB0aGlzLl9iID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fYiA9IG51bWJlcjtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEEgcGFyYW1ldGVyIHRoYXQgY29udHJvbHMgdGhlIHNwZWVkIGF0IHdoaWNoIGEgcmlzZSBpbiB0ZXJtIGZyZXF1ZW5jeSByZXN1bHRzIGluIHRlcm1cbiAgICogZnJlcXVlbmN5IHNhdHVyYXRpb24uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEuMi4gU2V0dGluZyB0aGlzIHRvIGEgaGlnaGVyIHZhbHVlIHdpbGwgZ2l2ZVxuICAgKiBzbG93ZXIgc2F0dXJhdGlvbiBsZXZlbHMsIGEgbG93ZXIgdmFsdWUgd2lsbCByZXN1bHQgaW4gcXVpY2tlciBzYXR1cmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIC0gVGhlIHZhbHVlIHRvIHNldCBmb3IgdGhpcyB0dW5pbmcgcGFyYW1ldGVyLlxuICAgKi9cbiAgbHVuci5CdWlsZGVyLnByb3RvdHlwZS5rMSA9IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICB0aGlzLl9rMSA9IG51bWJlcjtcbiAgfTtcblxuICAvKipcbiAgICogQWRkcyBhIGRvY3VtZW50IHRvIHRoZSBpbmRleC5cbiAgICpcbiAgICogQmVmb3JlIGFkZGluZyBmaWVsZHMgdG8gdGhlIGluZGV4IHRoZSBpbmRleCBzaG91bGQgaGF2ZSBiZWVuIGZ1bGx5IHNldHVwLCB3aXRoIHRoZSBkb2N1bWVudFxuICAgKiByZWYgYW5kIGFsbCBmaWVsZHMgdG8gaW5kZXggYWxyZWFkeSBoYXZpbmcgYmVlbiBzcGVjaWZpZWQuXG4gICAqXG4gICAqIFRoZSBkb2N1bWVudCBtdXN0IGhhdmUgYSBmaWVsZCBuYW1lIGFzIHNwZWNpZmllZCBieSB0aGUgcmVmIChieSBkZWZhdWx0IHRoaXMgaXMgJ2lkJykgYW5kXG4gICAqIGl0IHNob3VsZCBoYXZlIGFsbCBmaWVsZHMgZGVmaW5lZCBmb3IgaW5kZXhpbmcsIHRob3VnaCBudWxsIG9yIHVuZGVmaW5lZCB2YWx1ZXMgd2lsbCBub3RcbiAgICogY2F1c2UgZXJyb3JzLlxuICAgKlxuICAgKiBFbnRpcmUgZG9jdW1lbnRzIGNhbiBiZSBib29zdGVkIGF0IGJ1aWxkIHRpbWUuIEFwcGx5aW5nIGEgYm9vc3QgdG8gYSBkb2N1bWVudCBpbmRpY2F0ZXMgdGhhdFxuICAgKiB0aGlzIGRvY3VtZW50IHNob3VsZCByYW5rIGhpZ2hlciBpbiBzZWFyY2ggcmVzdWx0cyB0aGFuIG90aGVyIGRvY3VtZW50cy5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGRvYyAtIFRoZSBkb2N1bWVudCB0byBhZGQgdG8gdGhlIGluZGV4LlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXR0cmlidXRlcyAtIE9wdGlvbmFsIGF0dHJpYnV0ZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZG9jdW1lbnQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbYXR0cmlidXRlcy5ib29zdD0xXSAtIEJvb3N0IGFwcGxpZWQgdG8gYWxsIHRlcm1zIHdpdGhpbiB0aGlzIGRvY3VtZW50LlxuICAgKi9cbiAgbHVuci5CdWlsZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAoZG9jLCBhdHRyaWJ1dGVzKSB7XG4gICAgdmFyIGRvY1JlZiA9IGRvY1t0aGlzLl9yZWZdLFxuICAgICAgZmllbGRzID0gT2JqZWN0LmtleXModGhpcy5fZmllbGRzKTtcblxuICAgIHRoaXMuX2RvY3VtZW50c1tkb2NSZWZdID0gYXR0cmlidXRlcyB8fCB7fTtcbiAgICB0aGlzLmRvY3VtZW50Q291bnQgKz0gMTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZmllbGROYW1lID0gZmllbGRzW2ldLFxuICAgICAgICBleHRyYWN0b3IgPSB0aGlzLl9maWVsZHNbZmllbGROYW1lXS5leHRyYWN0b3IsXG4gICAgICAgIGZpZWxkID0gZXh0cmFjdG9yID8gZXh0cmFjdG9yKGRvYykgOiBkb2NbZmllbGROYW1lXSxcbiAgICAgICAgdG9rZW5zID0gdGhpcy50b2tlbml6ZXIoZmllbGQsIHtcbiAgICAgICAgICBmaWVsZHM6IFtmaWVsZE5hbWVdLFxuICAgICAgICB9KSxcbiAgICAgICAgdGVybXMgPSB0aGlzLnBpcGVsaW5lLnJ1bih0b2tlbnMpLFxuICAgICAgICBmaWVsZFJlZiA9IG5ldyBsdW5yLkZpZWxkUmVmKGRvY1JlZiwgZmllbGROYW1lKSxcbiAgICAgICAgZmllbGRUZXJtcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgICAgIHRoaXMuZmllbGRUZXJtRnJlcXVlbmNpZXNbZmllbGRSZWZdID0gZmllbGRUZXJtcztcbiAgICAgIHRoaXMuZmllbGRMZW5ndGhzW2ZpZWxkUmVmXSA9IDA7XG5cbiAgICAgIC8vIHN0b3JlIHRoZSBsZW5ndGggb2YgdGhpcyBmaWVsZCBmb3IgdGhpcyBkb2N1bWVudFxuICAgICAgdGhpcy5maWVsZExlbmd0aHNbZmllbGRSZWZdICs9IHRlcm1zLmxlbmd0aDtcblxuICAgICAgLy8gY2FsY3VsYXRlIHRlcm0gZnJlcXVlbmNpZXMgZm9yIHRoaXMgZmllbGRcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGVybXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgdmFyIHRlcm0gPSB0ZXJtc1tqXTtcblxuICAgICAgICBpZiAoZmllbGRUZXJtc1t0ZXJtXSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmaWVsZFRlcm1zW3Rlcm1dID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpZWxkVGVybXNbdGVybV0gKz0gMTtcblxuICAgICAgICAvLyBhZGQgdG8gaW52ZXJ0ZWQgaW5kZXhcbiAgICAgICAgLy8gY3JlYXRlIGFuIGluaXRpYWwgcG9zdGluZyBpZiBvbmUgZG9lc24ndCBleGlzdFxuICAgICAgICBpZiAodGhpcy5pbnZlcnRlZEluZGV4W3Rlcm1dID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHZhciBwb3N0aW5nID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBwb3N0aW5nW1wiX2luZGV4XCJdID0gdGhpcy50ZXJtSW5kZXg7XG4gICAgICAgICAgdGhpcy50ZXJtSW5kZXggKz0gMTtcblxuICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgZmllbGRzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICBwb3N0aW5nW2ZpZWxkc1trXV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuaW52ZXJ0ZWRJbmRleFt0ZXJtXSA9IHBvc3Rpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhZGQgYW4gZW50cnkgZm9yIHRoaXMgdGVybS9maWVsZE5hbWUvZG9jUmVmIHRvIHRoZSBpbnZlcnRlZEluZGV4XG4gICAgICAgIGlmICh0aGlzLmludmVydGVkSW5kZXhbdGVybV1bZmllbGROYW1lXVtkb2NSZWZdID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW52ZXJ0ZWRJbmRleFt0ZXJtXVtmaWVsZE5hbWVdW2RvY1JlZl0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3RvcmUgYWxsIHdoaXRlbGlzdGVkIG1ldGFkYXRhIGFib3V0IHRoaXMgdG9rZW4gaW4gdGhlXG4gICAgICAgIC8vIGludmVydGVkIGluZGV4XG4gICAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgdGhpcy5tZXRhZGF0YVdoaXRlbGlzdC5sZW5ndGg7IGwrKykge1xuICAgICAgICAgIHZhciBtZXRhZGF0YUtleSA9IHRoaXMubWV0YWRhdGFXaGl0ZWxpc3RbbF0sXG4gICAgICAgICAgICBtZXRhZGF0YSA9IHRlcm0ubWV0YWRhdGFbbWV0YWRhdGFLZXldO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5pbnZlcnRlZEluZGV4W3Rlcm1dW2ZpZWxkTmFtZV1bZG9jUmVmXVttZXRhZGF0YUtleV0gPT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5pbnZlcnRlZEluZGV4W3Rlcm1dW2ZpZWxkTmFtZV1bZG9jUmVmXVttZXRhZGF0YUtleV0gPSBbXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmludmVydGVkSW5kZXhbdGVybV1bZmllbGROYW1lXVtkb2NSZWZdW21ldGFkYXRhS2V5XS5wdXNoKFxuICAgICAgICAgICAgbWV0YWRhdGFcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBhdmVyYWdlIGRvY3VtZW50IGxlbmd0aCBmb3IgdGhpcyBpbmRleFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgbHVuci5CdWlsZGVyLnByb3RvdHlwZS5jYWxjdWxhdGVBdmVyYWdlRmllbGRMZW5ndGhzID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBmaWVsZFJlZnMgPSBPYmplY3Qua2V5cyh0aGlzLmZpZWxkTGVuZ3RocyksXG4gICAgICBudW1iZXJPZkZpZWxkcyA9IGZpZWxkUmVmcy5sZW5ndGgsXG4gICAgICBhY2N1bXVsYXRvciA9IHt9LFxuICAgICAgZG9jdW1lbnRzV2l0aEZpZWxkID0ge307XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bWJlck9mRmllbGRzOyBpKyspIHtcbiAgICAgIHZhciBmaWVsZFJlZiA9IGx1bnIuRmllbGRSZWYuZnJvbVN0cmluZyhmaWVsZFJlZnNbaV0pLFxuICAgICAgICBmaWVsZCA9IGZpZWxkUmVmLmZpZWxkTmFtZTtcblxuICAgICAgZG9jdW1lbnRzV2l0aEZpZWxkW2ZpZWxkXSB8fCAoZG9jdW1lbnRzV2l0aEZpZWxkW2ZpZWxkXSA9IDApO1xuICAgICAgZG9jdW1lbnRzV2l0aEZpZWxkW2ZpZWxkXSArPSAxO1xuXG4gICAgICBhY2N1bXVsYXRvcltmaWVsZF0gfHwgKGFjY3VtdWxhdG9yW2ZpZWxkXSA9IDApO1xuICAgICAgYWNjdW11bGF0b3JbZmllbGRdICs9IHRoaXMuZmllbGRMZW5ndGhzW2ZpZWxkUmVmXTtcbiAgICB9XG5cbiAgICB2YXIgZmllbGRzID0gT2JqZWN0LmtleXModGhpcy5fZmllbGRzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZmllbGROYW1lID0gZmllbGRzW2ldO1xuICAgICAgYWNjdW11bGF0b3JbZmllbGROYW1lXSA9XG4gICAgICAgIGFjY3VtdWxhdG9yW2ZpZWxkTmFtZV0gLyBkb2N1bWVudHNXaXRoRmllbGRbZmllbGROYW1lXTtcbiAgICB9XG5cbiAgICB0aGlzLmF2ZXJhZ2VGaWVsZExlbmd0aCA9IGFjY3VtdWxhdG9yO1xuICB9O1xuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSB2ZWN0b3Igc3BhY2UgbW9kZWwgb2YgZXZlcnkgZG9jdW1lbnQgdXNpbmcgbHVuci5WZWN0b3JcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGx1bnIuQnVpbGRlci5wcm90b3R5cGUuY3JlYXRlRmllbGRWZWN0b3JzID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBmaWVsZFZlY3RvcnMgPSB7fSxcbiAgICAgIGZpZWxkUmVmcyA9IE9iamVjdC5rZXlzKHRoaXMuZmllbGRUZXJtRnJlcXVlbmNpZXMpLFxuICAgICAgZmllbGRSZWZzTGVuZ3RoID0gZmllbGRSZWZzLmxlbmd0aCxcbiAgICAgIHRlcm1JZGZDYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpZWxkUmVmc0xlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZmllbGRSZWYgPSBsdW5yLkZpZWxkUmVmLmZyb21TdHJpbmcoZmllbGRSZWZzW2ldKSxcbiAgICAgICAgZmllbGROYW1lID0gZmllbGRSZWYuZmllbGROYW1lLFxuICAgICAgICBmaWVsZExlbmd0aCA9IHRoaXMuZmllbGRMZW5ndGhzW2ZpZWxkUmVmXSxcbiAgICAgICAgZmllbGRWZWN0b3IgPSBuZXcgbHVuci5WZWN0b3IoKSxcbiAgICAgICAgdGVybUZyZXF1ZW5jaWVzID0gdGhpcy5maWVsZFRlcm1GcmVxdWVuY2llc1tmaWVsZFJlZl0sXG4gICAgICAgIHRlcm1zID0gT2JqZWN0LmtleXModGVybUZyZXF1ZW5jaWVzKSxcbiAgICAgICAgdGVybXNMZW5ndGggPSB0ZXJtcy5sZW5ndGg7XG5cbiAgICAgIHZhciBmaWVsZEJvb3N0ID0gdGhpcy5fZmllbGRzW2ZpZWxkTmFtZV0uYm9vc3QgfHwgMSxcbiAgICAgICAgZG9jQm9vc3QgPSB0aGlzLl9kb2N1bWVudHNbZmllbGRSZWYuZG9jUmVmXS5ib29zdCB8fCAxO1xuXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRlcm1zTGVuZ3RoOyBqKyspIHtcbiAgICAgICAgdmFyIHRlcm0gPSB0ZXJtc1tqXSxcbiAgICAgICAgICB0ZiA9IHRlcm1GcmVxdWVuY2llc1t0ZXJtXSxcbiAgICAgICAgICB0ZXJtSW5kZXggPSB0aGlzLmludmVydGVkSW5kZXhbdGVybV0uX2luZGV4LFxuICAgICAgICAgIGlkZixcbiAgICAgICAgICBzY29yZSxcbiAgICAgICAgICBzY29yZVdpdGhQcmVjaXNpb247XG5cbiAgICAgICAgaWYgKHRlcm1JZGZDYWNoZVt0ZXJtXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWRmID0gbHVuci5pZGYodGhpcy5pbnZlcnRlZEluZGV4W3Rlcm1dLCB0aGlzLmRvY3VtZW50Q291bnQpO1xuICAgICAgICAgIHRlcm1JZGZDYWNoZVt0ZXJtXSA9IGlkZjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZGYgPSB0ZXJtSWRmQ2FjaGVbdGVybV07XG4gICAgICAgIH1cblxuICAgICAgICBzY29yZSA9XG4gICAgICAgICAgKGlkZiAqICgodGhpcy5fazEgKyAxKSAqIHRmKSkgL1xuICAgICAgICAgICh0aGlzLl9rMSAqXG4gICAgICAgICAgICAoMSAtXG4gICAgICAgICAgICAgIHRoaXMuX2IgK1xuICAgICAgICAgICAgICB0aGlzLl9iICogKGZpZWxkTGVuZ3RoIC8gdGhpcy5hdmVyYWdlRmllbGRMZW5ndGhbZmllbGROYW1lXSkpICtcbiAgICAgICAgICAgIHRmKTtcbiAgICAgICAgc2NvcmUgKj0gZmllbGRCb29zdDtcbiAgICAgICAgc2NvcmUgKj0gZG9jQm9vc3Q7XG4gICAgICAgIHNjb3JlV2l0aFByZWNpc2lvbiA9IE1hdGgucm91bmQoc2NvcmUgKiAxMDAwKSAvIDEwMDA7XG4gICAgICAgIC8vIENvbnZlcnRzIDEuMjM0NTY3ODkgdG8gMS4yMzQuXG4gICAgICAgIC8vIFJlZHVjaW5nIHRoZSBwcmVjaXNpb24gc28gdGhhdCB0aGUgdmVjdG9ycyB0YWtlIHVwIGxlc3NcbiAgICAgICAgLy8gc3BhY2Ugd2hlbiBzZXJpYWxpc2VkLiBEb2luZyBpdCBub3cgc28gdGhhdCB0aGV5IGJlaGF2ZVxuICAgICAgICAvLyB0aGUgc2FtZSBiZWZvcmUgYW5kIGFmdGVyIHNlcmlhbGlzYXRpb24uIEFsc28sIHRoaXMgaXNcbiAgICAgICAgLy8gdGhlIGZhc3Rlc3QgYXBwcm9hY2ggdG8gcmVkdWNpbmcgYSBudW1iZXIncyBwcmVjaXNpb24gaW5cbiAgICAgICAgLy8gSmF2YVNjcmlwdC5cblxuICAgICAgICBmaWVsZFZlY3Rvci5pbnNlcnQodGVybUluZGV4LCBzY29yZVdpdGhQcmVjaXNpb24pO1xuICAgICAgfVxuXG4gICAgICBmaWVsZFZlY3RvcnNbZmllbGRSZWZdID0gZmllbGRWZWN0b3I7XG4gICAgfVxuXG4gICAgdGhpcy5maWVsZFZlY3RvcnMgPSBmaWVsZFZlY3RvcnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB0b2tlbiBzZXQgb2YgYWxsIHRva2VucyBpbiB0aGUgaW5kZXggdXNpbmcgbHVuci5Ub2tlblNldFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgbHVuci5CdWlsZGVyLnByb3RvdHlwZS5jcmVhdGVUb2tlblNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnRva2VuU2V0ID0gbHVuci5Ub2tlblNldC5mcm9tQXJyYXkoXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmludmVydGVkSW5kZXgpLnNvcnQoKVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgaW5kZXgsIGNyZWF0aW5nIGFuIGluc3RhbmNlIG9mIGx1bnIuSW5kZXguXG4gICAqXG4gICAqIFRoaXMgY29tcGxldGVzIHRoZSBpbmRleGluZyBwcm9jZXNzIGFuZCBzaG91bGQgb25seSBiZSBjYWxsZWRcbiAgICogb25jZSBhbGwgZG9jdW1lbnRzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgaW5kZXguXG4gICAqXG4gICAqIEByZXR1cm5zIHtsdW5yLkluZGV4fVxuICAgKi9cbiAgbHVuci5CdWlsZGVyLnByb3RvdHlwZS5idWlsZCA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmNhbGN1bGF0ZUF2ZXJhZ2VGaWVsZExlbmd0aHMoKTtcbiAgICB0aGlzLmNyZWF0ZUZpZWxkVmVjdG9ycygpO1xuICAgIHRoaXMuY3JlYXRlVG9rZW5TZXQoKTtcblxuICAgIHJldHVybiBuZXcgbHVuci5JbmRleCh7XG4gICAgICBpbnZlcnRlZEluZGV4OiB0aGlzLmludmVydGVkSW5kZXgsXG4gICAgICBmaWVsZFZlY3RvcnM6IHRoaXMuZmllbGRWZWN0b3JzLFxuICAgICAgdG9rZW5TZXQ6IHRoaXMudG9rZW5TZXQsXG4gICAgICBmaWVsZHM6IE9iamVjdC5rZXlzKHRoaXMuX2ZpZWxkcyksXG4gICAgICBwaXBlbGluZTogdGhpcy5zZWFyY2hQaXBlbGluZSxcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQXBwbGllcyBhIHBsdWdpbiB0byB0aGUgaW5kZXggYnVpbGRlci5cbiAgICpcbiAgICogQSBwbHVnaW4gaXMgYSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aXRoIHRoZSBpbmRleCBidWlsZGVyIGFzIGl0cyBjb250ZXh0LlxuICAgKiBQbHVnaW5zIGNhbiBiZSB1c2VkIHRvIGN1c3RvbWlzZSBvciBleHRlbmQgdGhlIGJlaGF2aW91ciBvZiB0aGUgaW5kZXhcbiAgICogaW4gc29tZSB3YXkuIEEgcGx1Z2luIGlzIGp1c3QgYSBmdW5jdGlvbiwgdGhhdCBlbmNhcHN1bGF0ZWQgdGhlIGN1c3RvbVxuICAgKiBiZWhhdmlvdXIgdGhhdCBzaG91bGQgYmUgYXBwbGllZCB3aGVuIGJ1aWxkaW5nIHRoZSBpbmRleC5cbiAgICpcbiAgICogVGhlIHBsdWdpbiBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSBpbmRleCBidWlsZGVyIGFzIGl0cyBhcmd1bWVudCwgYWRkaXRpb25hbFxuICAgKiBhcmd1bWVudHMgY2FuIGFsc28gYmUgcGFzc2VkIHdoZW4gY2FsbGluZyB1c2UuIFRoZSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZFxuICAgKiB3aXRoIHRoZSBpbmRleCBidWlsZGVyIGFzIGl0cyBjb250ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwbHVnaW4gVGhlIHBsdWdpbiB0byBhcHBseS5cbiAgICovXG4gIGx1bnIuQnVpbGRlci5wcm90b3R5cGUudXNlID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgIGFyZ3MudW5zaGlmdCh0aGlzKTtcbiAgICBmbi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgfTtcbiAgLyoqXG4gICAqIENvbnRhaW5zIGFuZCBjb2xsZWN0cyBtZXRhZGF0YSBhYm91dCBhIG1hdGNoaW5nIGRvY3VtZW50LlxuICAgKiBBIHNpbmdsZSBpbnN0YW5jZSBvZiBsdW5yLk1hdGNoRGF0YSBpcyByZXR1cm5lZCBhcyBwYXJ0IG9mIGV2ZXJ5XG4gICAqIGx1bnIuSW5kZXh+UmVzdWx0LlxuICAgKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRlcm0gLSBUaGUgdGVybSB0aGlzIG1hdGNoIGRhdGEgaXMgYXNzb2NpYXRlZCB3aXRoXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZCAtIFRoZSBmaWVsZCBpbiB3aGljaCB0aGUgdGVybSB3YXMgZm91bmRcbiAgICogQHBhcmFtIHtvYmplY3R9IG1ldGFkYXRhIC0gVGhlIG1ldGFkYXRhIHJlY29yZGVkIGFib3V0IHRoaXMgdGVybSBpbiB0aGlzIGZpZWxkXG4gICAqIEBwcm9wZXJ0eSB7b2JqZWN0fSBtZXRhZGF0YSAtIEEgY2xvbmVkIGNvbGxlY3Rpb24gb2YgbWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZG9jdW1lbnQuXG4gICAqIEBzZWUge0BsaW5rIGx1bnIuSW5kZXh+UmVzdWx0fVxuICAgKi9cbiAgbHVuci5NYXRjaERhdGEgPSBmdW5jdGlvbiAodGVybSwgZmllbGQsIG1ldGFkYXRhKSB7XG4gICAgdmFyIGNsb25lZE1ldGFkYXRhID0gT2JqZWN0LmNyZWF0ZShudWxsKSxcbiAgICAgIG1ldGFkYXRhS2V5cyA9IE9iamVjdC5rZXlzKG1ldGFkYXRhIHx8IHt9KTtcblxuICAgIC8vIENsb25pbmcgdGhlIG1ldGFkYXRhIHRvIHByZXZlbnQgdGhlIG9yaWdpbmFsXG4gICAgLy8gYmVpbmcgbXV0YXRlZCBkdXJpbmcgbWF0Y2ggZGF0YSBjb21iaW5hdGlvbi5cbiAgICAvLyBNZXRhZGF0YSBpcyBrZXB0IGluIGFuIGFycmF5IHdpdGhpbiB0aGUgaW52ZXJ0ZWRcbiAgICAvLyBpbmRleCBzbyBjbG9uaW5nIHRoZSBkYXRhIGNhbiBiZSBkb25lIHdpdGhcbiAgICAvLyBBcnJheSNzbGljZVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWV0YWRhdGFLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0gbWV0YWRhdGFLZXlzW2ldO1xuICAgICAgY2xvbmVkTWV0YWRhdGFba2V5XSA9IG1ldGFkYXRhW2tleV0uc2xpY2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLm1ldGFkYXRhID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGlmICh0ZXJtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWV0YWRhdGFbdGVybV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgdGhpcy5tZXRhZGF0YVt0ZXJtXVtmaWVsZF0gPSBjbG9uZWRNZXRhZGF0YTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEFuIGluc3RhbmNlIG9mIGx1bnIuTWF0Y2hEYXRhIHdpbGwgYmUgY3JlYXRlZCBmb3IgZXZlcnkgdGVybSB0aGF0IG1hdGNoZXMgYVxuICAgKiBkb2N1bWVudC4gSG93ZXZlciBvbmx5IG9uZSBpbnN0YW5jZSBpcyByZXF1aXJlZCBpbiBhIGx1bnIuSW5kZXh+UmVzdWx0LiBUaGlzXG4gICAqIG1ldGhvZCBjb21iaW5lcyBtZXRhZGF0YSBmcm9tIGFub3RoZXIgaW5zdGFuY2Ugb2YgbHVuci5NYXRjaERhdGEgd2l0aCB0aGlzXG4gICAqIG9iamVjdHMgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7bHVuci5NYXRjaERhdGF9IG90aGVyTWF0Y2hEYXRhIC0gQW5vdGhlciBpbnN0YW5jZSBvZiBtYXRjaCBkYXRhIHRvIG1lcmdlIHdpdGggdGhpcyBvbmUuXG4gICAqIEBzZWUge0BsaW5rIGx1bnIuSW5kZXh+UmVzdWx0fVxuICAgKi9cbiAgbHVuci5NYXRjaERhdGEucHJvdG90eXBlLmNvbWJpbmUgPSBmdW5jdGlvbiAob3RoZXJNYXRjaERhdGEpIHtcbiAgICB2YXIgdGVybXMgPSBPYmplY3Qua2V5cyhvdGhlck1hdGNoRGF0YS5tZXRhZGF0YSk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlcm1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdGVybSA9IHRlcm1zW2ldLFxuICAgICAgICBmaWVsZHMgPSBPYmplY3Qua2V5cyhvdGhlck1hdGNoRGF0YS5tZXRhZGF0YVt0ZXJtXSk7XG5cbiAgICAgIGlmICh0aGlzLm1ldGFkYXRhW3Rlcm1dID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLm1ldGFkYXRhW3Rlcm1dID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIH1cblxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBmaWVsZHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgdmFyIGZpZWxkID0gZmllbGRzW2pdLFxuICAgICAgICAgIGtleXMgPSBPYmplY3Qua2V5cyhvdGhlck1hdGNoRGF0YS5tZXRhZGF0YVt0ZXJtXVtmaWVsZF0pO1xuXG4gICAgICAgIGlmICh0aGlzLm1ldGFkYXRhW3Rlcm1dW2ZpZWxkXSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhW3Rlcm1dW2ZpZWxkXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGtleXMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICB2YXIga2V5ID0ga2V5c1trXTtcblxuICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhW3Rlcm1dW2ZpZWxkXVtrZXldID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tZXRhZGF0YVt0ZXJtXVtmaWVsZF1ba2V5XSA9XG4gICAgICAgICAgICAgIG90aGVyTWF0Y2hEYXRhLm1ldGFkYXRhW3Rlcm1dW2ZpZWxkXVtrZXldO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1ldGFkYXRhW3Rlcm1dW2ZpZWxkXVtrZXldID0gdGhpcy5tZXRhZGF0YVt0ZXJtXVtmaWVsZF1bXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgXS5jb25jYXQob3RoZXJNYXRjaERhdGEubWV0YWRhdGFbdGVybV1bZmllbGRdW2tleV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQWRkIG1ldGFkYXRhIGZvciBhIHRlcm0vZmllbGQgcGFpciB0byB0aGlzIGluc3RhbmNlIG9mIG1hdGNoIGRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXJtIC0gVGhlIHRlcm0gdGhpcyBtYXRjaCBkYXRhIGlzIGFzc29jaWF0ZWQgd2l0aFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmllbGQgLSBUaGUgZmllbGQgaW4gd2hpY2ggdGhlIHRlcm0gd2FzIGZvdW5kXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBtZXRhZGF0YSAtIFRoZSBtZXRhZGF0YSByZWNvcmRlZCBhYm91dCB0aGlzIHRlcm0gaW4gdGhpcyBmaWVsZFxuICAgKi9cbiAgbHVuci5NYXRjaERhdGEucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh0ZXJtLCBmaWVsZCwgbWV0YWRhdGEpIHtcbiAgICBpZiAoISh0ZXJtIGluIHRoaXMubWV0YWRhdGEpKSB7XG4gICAgICB0aGlzLm1ldGFkYXRhW3Rlcm1dID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIHRoaXMubWV0YWRhdGFbdGVybV1bZmllbGRdID0gbWV0YWRhdGE7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCEoZmllbGQgaW4gdGhpcy5tZXRhZGF0YVt0ZXJtXSkpIHtcbiAgICAgIHRoaXMubWV0YWRhdGFbdGVybV1bZmllbGRdID0gbWV0YWRhdGE7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIG1ldGFkYXRhS2V5cyA9IE9iamVjdC5rZXlzKG1ldGFkYXRhKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWV0YWRhdGFLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0gbWV0YWRhdGFLZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5IGluIHRoaXMubWV0YWRhdGFbdGVybV1bZmllbGRdKSB7XG4gICAgICAgIHRoaXMubWV0YWRhdGFbdGVybV1bZmllbGRdW2tleV0gPSB0aGlzLm1ldGFkYXRhW3Rlcm1dW2ZpZWxkXVtcbiAgICAgICAgICBrZXlcbiAgICAgICAgXS5jb25jYXQobWV0YWRhdGFba2V5XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1ldGFkYXRhW3Rlcm1dW2ZpZWxkXVtrZXldID0gbWV0YWRhdGFba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIC8qKlxuICAgKiBBIGx1bnIuUXVlcnkgcHJvdmlkZXMgYSBwcm9ncmFtbWF0aWMgd2F5IG9mIGRlZmluaW5nIHF1ZXJpZXMgdG8gYmUgcGVyZm9ybWVkXG4gICAqIGFnYWluc3QgYSB7QGxpbmsgbHVuci5JbmRleH0uXG4gICAqXG4gICAqIFByZWZlciBjb25zdHJ1Y3RpbmcgYSBsdW5yLlF1ZXJ5IHVzaW5nIHRoZSB7QGxpbmsgbHVuci5JbmRleCNxdWVyeX0gbWV0aG9kXG4gICAqIHNvIHRoZSBxdWVyeSBvYmplY3QgaXMgcHJlLWluaXRpYWxpemVkIHdpdGggdGhlIHJpZ2h0IGluZGV4IGZpZWxkcy5cbiAgICpcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBwcm9wZXJ0eSB7bHVuci5RdWVyeX5DbGF1c2VbXX0gY2xhdXNlcyAtIEFuIGFycmF5IG9mIHF1ZXJ5IGNsYXVzZXMuXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGFsbEZpZWxkcyAtIEFuIGFycmF5IG9mIGFsbCBhdmFpbGFibGUgZmllbGRzIGluIGEgbHVuci5JbmRleC5cbiAgICovXG4gIGx1bnIuUXVlcnkgPSBmdW5jdGlvbiAoYWxsRmllbGRzKSB7XG4gICAgdGhpcy5jbGF1c2VzID0gW107XG4gICAgdGhpcy5hbGxGaWVsZHMgPSBhbGxGaWVsZHM7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbnN0YW50cyBmb3IgaW5kaWNhdGluZyB3aGF0IGtpbmQgb2YgYXV0b21hdGljIHdpbGRjYXJkIGluc2VydGlvbiB3aWxsIGJlIHVzZWQgd2hlbiBjb25zdHJ1Y3RpbmcgYSBxdWVyeSBjbGF1c2UuXG4gICAqXG4gICAqIFRoaXMgYWxsb3dzIHdpbGRjYXJkcyB0byBiZSBhZGRlZCB0byB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgYSB0ZXJtIHdpdGhvdXQgaGF2aW5nIHRvIG1hbnVhbGx5IGRvIGFueSBzdHJpbmdcbiAgICogY29uY2F0ZW5hdGlvbi5cbiAgICpcbiAgICogVGhlIHdpbGRjYXJkIGNvbnN0YW50cyBjYW4gYmUgYml0d2lzZSBjb21iaW5lZCB0byBzZWxlY3QgYm90aCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aWxkY2FyZHMuXG4gICAqXG4gICAqIEBjb25zdGFudFxuICAgKiBAZGVmYXVsdFxuICAgKiBAcHJvcGVydHkge251bWJlcn0gd2lsZGNhcmQuTk9ORSAtIFRoZSB0ZXJtIHdpbGwgaGF2ZSBubyB3aWxkY2FyZHMgaW5zZXJ0ZWQsIHRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3VyXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3aWxkY2FyZC5MRUFESU5HIC0gUHJlcGVuZCB0aGUgdGVybSB3aXRoIGEgd2lsZGNhcmQsIHVubGVzcyBhIGxlYWRpbmcgd2lsZGNhcmQgYWxyZWFkeSBleGlzdHNcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHdpbGRjYXJkLlRSQUlMSU5HIC0gQXBwZW5kIGEgd2lsZGNhcmQgdG8gdGhlIHRlcm0sIHVubGVzcyBhIHRyYWlsaW5nIHdpbGRjYXJkIGFscmVhZHkgZXhpc3RzXG4gICAqIEBzZWUgbHVuci5RdWVyeX5DbGF1c2VcbiAgICogQHNlZSBsdW5yLlF1ZXJ5I2NsYXVzZVxuICAgKiBAc2VlIGx1bnIuUXVlcnkjdGVybVxuICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5xdWVyeSB0ZXJtIHdpdGggdHJhaWxpbmcgd2lsZGNhcmQ8L2NhcHRpb24+XG4gICAqIHF1ZXJ5LnRlcm0oJ2ZvbycsIHsgd2lsZGNhcmQ6IGx1bnIuUXVlcnkud2lsZGNhcmQuVFJBSUxJTkcgfSlcbiAgICogQGV4YW1wbGUgPGNhcHRpb24+cXVlcnkgdGVybSB3aXRoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdpbGRjYXJkPC9jYXB0aW9uPlxuICAgKiBxdWVyeS50ZXJtKCdmb28nLCB7XG4gICAqICAgd2lsZGNhcmQ6IGx1bnIuUXVlcnkud2lsZGNhcmQuTEVBRElORyB8IGx1bnIuUXVlcnkud2lsZGNhcmQuVFJBSUxJTkdcbiAgICogfSlcbiAgICovXG5cbiAgbHVuci5RdWVyeS53aWxkY2FyZCA9IG5ldyBTdHJpbmcoXCIqXCIpO1xuICBsdW5yLlF1ZXJ5LndpbGRjYXJkLk5PTkUgPSAwO1xuICBsdW5yLlF1ZXJ5LndpbGRjYXJkLkxFQURJTkcgPSAxO1xuICBsdW5yLlF1ZXJ5LndpbGRjYXJkLlRSQUlMSU5HID0gMjtcblxuICAvKipcbiAgICogQ29uc3RhbnRzIGZvciBpbmRpY2F0aW5nIHdoYXQga2luZCBvZiBwcmVzZW5jZSBhIHRlcm0gbXVzdCBoYXZlIGluIG1hdGNoaW5nIGRvY3VtZW50cy5cbiAgICpcbiAgICogQGNvbnN0YW50XG4gICAqIEBlbnVtIHtudW1iZXJ9XG4gICAqIEBzZWUgbHVuci5RdWVyeX5DbGF1c2VcbiAgICogQHNlZSBsdW5yLlF1ZXJ5I2NsYXVzZVxuICAgKiBAc2VlIGx1bnIuUXVlcnkjdGVybVxuICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5xdWVyeSB0ZXJtIHdpdGggcmVxdWlyZWQgcHJlc2VuY2U8L2NhcHRpb24+XG4gICAqIHF1ZXJ5LnRlcm0oJ2ZvbycsIHsgcHJlc2VuY2U6IGx1bnIuUXVlcnkucHJlc2VuY2UuUkVRVUlSRUQgfSlcbiAgICovXG4gIGx1bnIuUXVlcnkucHJlc2VuY2UgPSB7XG4gICAgLyoqXG4gICAgICogVGVybSdzIHByZXNlbmNlIGluIGEgZG9jdW1lbnQgaXMgb3B0aW9uYWwsIHRoaXMgaXMgdGhlIGRlZmF1bHQgdmFsdWUuXG4gICAgICovXG4gICAgT1BUSU9OQUw6IDEsXG5cbiAgICAvKipcbiAgICAgKiBUZXJtJ3MgcHJlc2VuY2UgaW4gYSBkb2N1bWVudCBpcyByZXF1aXJlZCwgZG9jdW1lbnRzIHRoYXQgZG8gbm90IGNvbnRhaW5cbiAgICAgKiB0aGlzIHRlcm0gd2lsbCBub3QgYmUgcmV0dXJuZWQuXG4gICAgICovXG4gICAgUkVRVUlSRUQ6IDIsXG5cbiAgICAvKipcbiAgICAgKiBUZXJtJ3MgcHJlc2VuY2UgaW4gYSBkb2N1bWVudCBpcyBwcm9oaWJpdGVkLCBkb2N1bWVudHMgdGhhdCBkbyBjb250YWluXG4gICAgICogdGhpcyB0ZXJtIHdpbGwgbm90IGJlIHJldHVybmVkLlxuICAgICAqL1xuICAgIFBST0hJQklURUQ6IDMsXG4gIH07XG5cbiAgLyoqXG4gICAqIEEgc2luZ2xlIGNsYXVzZSBpbiBhIHtAbGluayBsdW5yLlF1ZXJ5fSBjb250YWlucyBhIHRlcm0gYW5kIGRldGFpbHMgb24gaG93IHRvXG4gICAqIG1hdGNoIHRoYXQgdGVybSBhZ2FpbnN0IGEge0BsaW5rIGx1bnIuSW5kZXh9LlxuICAgKlxuICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBsdW5yLlF1ZXJ5fkNsYXVzZVxuICAgKiBAcHJvcGVydHkge3N0cmluZ1tdfSBmaWVsZHMgLSBUaGUgZmllbGRzIGluIGFuIGluZGV4IHRoaXMgY2xhdXNlIHNob3VsZCBiZSBtYXRjaGVkIGFnYWluc3QuXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbYm9vc3Q9MV0gLSBBbnkgYm9vc3QgdGhhdCBzaG91bGQgYmUgYXBwbGllZCB3aGVuIG1hdGNoaW5nIHRoaXMgY2xhdXNlLlxuICAgKiBAcHJvcGVydHkge251bWJlcn0gW2VkaXREaXN0YW5jZV0gLSBXaGV0aGVyIHRoZSB0ZXJtIHNob3VsZCBoYXZlIGZ1enp5IG1hdGNoaW5nIGFwcGxpZWQsIGFuZCBob3cgZnV6enkgdGhlIG1hdGNoIHNob3VsZCBiZS5cbiAgICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlUGlwZWxpbmVdIC0gV2hldGhlciB0aGUgdGVybSBzaG91bGQgYmUgcGFzc2VkIHRocm91Z2ggdGhlIHNlYXJjaCBwaXBlbGluZS5cbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IFt3aWxkY2FyZD1sdW5yLlF1ZXJ5LndpbGRjYXJkLk5PTkVdIC0gV2hldGhlciB0aGUgdGVybSBzaG91bGQgaGF2ZSB3aWxkY2FyZHMgYXBwZW5kZWQgb3IgcHJlcGVuZGVkLlxuICAgKiBAcHJvcGVydHkge251bWJlcn0gW3ByZXNlbmNlPWx1bnIuUXVlcnkucHJlc2VuY2UuT1BUSU9OQUxdIC0gVGhlIHRlcm1zIHByZXNlbmNlIGluIGFueSBtYXRjaGluZyBkb2N1bWVudHMuXG4gICAqL1xuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIGx1bnIuUXVlcnl+Q2xhdXNlfSB0byB0aGlzIHF1ZXJ5LlxuICAgKlxuICAgKiBVbmxlc3MgdGhlIGNsYXVzZSBjb250YWlucyB0aGUgZmllbGRzIHRvIGJlIG1hdGNoZWQgYWxsIGZpZWxkcyB3aWxsIGJlIG1hdGNoZWQuIEluIGFkZGl0aW9uXG4gICAqIGEgZGVmYXVsdCBib29zdCBvZiAxIGlzIGFwcGxpZWQgdG8gdGhlIGNsYXVzZS5cbiAgICpcbiAgICogQHBhcmFtIHtsdW5yLlF1ZXJ5fkNsYXVzZX0gY2xhdXNlIC0gVGhlIGNsYXVzZSB0byBhZGQgdG8gdGhpcyBxdWVyeS5cbiAgICogQHNlZSBsdW5yLlF1ZXJ5fkNsYXVzZVxuICAgKiBAcmV0dXJucyB7bHVuci5RdWVyeX1cbiAgICovXG4gIGx1bnIuUXVlcnkucHJvdG90eXBlLmNsYXVzZSA9IGZ1bmN0aW9uIChjbGF1c2UpIHtcbiAgICBpZiAoIShcImZpZWxkc1wiIGluIGNsYXVzZSkpIHtcbiAgICAgIGNsYXVzZS5maWVsZHMgPSB0aGlzLmFsbEZpZWxkcztcbiAgICB9XG5cbiAgICBpZiAoIShcImJvb3N0XCIgaW4gY2xhdXNlKSkge1xuICAgICAgY2xhdXNlLmJvb3N0ID0gMTtcbiAgICB9XG5cbiAgICBpZiAoIShcInVzZVBpcGVsaW5lXCIgaW4gY2xhdXNlKSkge1xuICAgICAgY2xhdXNlLnVzZVBpcGVsaW5lID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIShcIndpbGRjYXJkXCIgaW4gY2xhdXNlKSkge1xuICAgICAgY2xhdXNlLndpbGRjYXJkID0gbHVuci5RdWVyeS53aWxkY2FyZC5OT05FO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGNsYXVzZS53aWxkY2FyZCAmIGx1bnIuUXVlcnkud2lsZGNhcmQuTEVBRElORyAmJlxuICAgICAgY2xhdXNlLnRlcm0uY2hhckF0KDApICE9IGx1bnIuUXVlcnkud2lsZGNhcmRcbiAgICApIHtcbiAgICAgIGNsYXVzZS50ZXJtID0gXCIqXCIgKyBjbGF1c2UudGVybTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBjbGF1c2Uud2lsZGNhcmQgJiBsdW5yLlF1ZXJ5LndpbGRjYXJkLlRSQUlMSU5HICYmXG4gICAgICBjbGF1c2UudGVybS5zbGljZSgtMSkgIT0gbHVuci5RdWVyeS53aWxkY2FyZFxuICAgICkge1xuICAgICAgY2xhdXNlLnRlcm0gPSBcIlwiICsgY2xhdXNlLnRlcm0gKyBcIipcIjtcbiAgICB9XG5cbiAgICBpZiAoIShcInByZXNlbmNlXCIgaW4gY2xhdXNlKSkge1xuICAgICAgY2xhdXNlLnByZXNlbmNlID0gbHVuci5RdWVyeS5wcmVzZW5jZS5PUFRJT05BTDtcbiAgICB9XG5cbiAgICB0aGlzLmNsYXVzZXMucHVzaChjbGF1c2UpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIEEgbmVnYXRlZCBxdWVyeSBpcyBvbmUgaW4gd2hpY2ggZXZlcnkgY2xhdXNlIGhhcyBhIHByZXNlbmNlIG9mXG4gICAqIHByb2hpYml0ZWQuIFRoZXNlIHF1ZXJpZXMgcmVxdWlyZSBzb21lIHNwZWNpYWwgcHJvY2Vzc2luZyB0byByZXR1cm5cbiAgICogdGhlIGV4cGVjdGVkIHJlc3VsdHMuXG4gICAqXG4gICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICovXG4gIGx1bnIuUXVlcnkucHJvdG90eXBlLmlzTmVnYXRlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2xhdXNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMuY2xhdXNlc1tpXS5wcmVzZW5jZSAhPSBsdW5yLlF1ZXJ5LnByZXNlbmNlLlBST0hJQklURUQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgdGVybSB0byB0aGUgY3VycmVudCBxdWVyeSwgdW5kZXIgdGhlIGNvdmVycyB0aGlzIHdpbGwgY3JlYXRlIGEge0BsaW5rIGx1bnIuUXVlcnl+Q2xhdXNlfVxuICAgKiB0byB0aGUgbGlzdCBvZiBjbGF1c2VzIHRoYXQgbWFrZSB1cCB0aGlzIHF1ZXJ5LlxuICAgKlxuICAgKiBUaGUgdGVybSBpcyB1c2VkIGFzIGlzLCBpLmUuIG5vIHRva2VuaXphdGlvbiB3aWxsIGJlIHBlcmZvcm1lZCBieSB0aGlzIG1ldGhvZC4gSW5zdGVhZCBjb252ZXJzaW9uXG4gICAqIHRvIGEgdG9rZW4gb3IgdG9rZW4tbGlrZSBzdHJpbmcgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuXG4gICAqXG4gICAqIFRoZSB0ZXJtIHdpbGwgYmUgY29udmVydGVkIHRvIGEgc3RyaW5nIGJ5IGNhbGxpbmcgYHRvU3RyaW5nYC4gTXVsdGlwbGUgdGVybXMgY2FuIGJlIHBhc3NlZCBhcyBhblxuICAgKiBhcnJheSwgZWFjaCB0ZXJtIGluIHRoZSBhcnJheSB3aWxsIHNoYXJlIHRoZSBzYW1lIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fG9iamVjdFtdfSB0ZXJtIC0gVGhlIHRlcm0ocykgdG8gYWRkIHRvIHRoZSBxdWVyeS5cbiAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXSAtIEFueSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gYWRkIHRvIHRoZSBxdWVyeSBjbGF1c2UuXG4gICAqIEByZXR1cm5zIHtsdW5yLlF1ZXJ5fVxuICAgKiBAc2VlIGx1bnIuUXVlcnkjY2xhdXNlXG4gICAqIEBzZWUgbHVuci5RdWVyeX5DbGF1c2VcbiAgICogQGV4YW1wbGUgPGNhcHRpb24+YWRkaW5nIGEgc2luZ2xlIHRlcm0gdG8gYSBxdWVyeTwvY2FwdGlvbj5cbiAgICogcXVlcnkudGVybShcImZvb1wiKVxuICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5hZGRpbmcgYSBzaW5nbGUgdGVybSB0byBhIHF1ZXJ5IGFuZCBzcGVjaWZ5aW5nIHNlYXJjaCBmaWVsZHMsIHRlcm0gYm9vc3QgYW5kIGF1dG9tYXRpYyB0cmFpbGluZyB3aWxkY2FyZDwvY2FwdGlvbj5cbiAgICogcXVlcnkudGVybShcImZvb1wiLCB7XG4gICAqICAgZmllbGRzOiBbXCJ0aXRsZVwiXSxcbiAgICogICBib29zdDogMTAsXG4gICAqICAgd2lsZGNhcmQ6IGx1bnIuUXVlcnkud2lsZGNhcmQuVFJBSUxJTkdcbiAgICogfSlcbiAgICogQGV4YW1wbGUgPGNhcHRpb24+dXNpbmcgbHVuci50b2tlbml6ZXIgdG8gY29udmVydCBhIHN0cmluZyB0byB0b2tlbnMgYmVmb3JlIHVzaW5nIHRoZW0gYXMgdGVybXM8L2NhcHRpb24+XG4gICAqIHF1ZXJ5LnRlcm0obHVuci50b2tlbml6ZXIoXCJmb28gYmFyXCIpKVxuICAgKi9cbiAgbHVuci5RdWVyeS5wcm90b3R5cGUudGVybSA9IGZ1bmN0aW9uICh0ZXJtLCBvcHRpb25zKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGVybSkpIHtcbiAgICAgIHRlcm0uZm9yRWFjaChmdW5jdGlvbiAodCkge1xuICAgICAgICB0aGlzLnRlcm0odCwgbHVuci51dGlscy5jbG9uZShvcHRpb25zKSk7XG4gICAgICB9LCB0aGlzKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHZhciBjbGF1c2UgPSBvcHRpb25zIHx8IHt9O1xuICAgIGNsYXVzZS50ZXJtID0gdGVybS50b1N0cmluZygpO1xuXG4gICAgdGhpcy5jbGF1c2UoY2xhdXNlKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuICBsdW5yLlF1ZXJ5UGFyc2VFcnJvciA9IGZ1bmN0aW9uIChtZXNzYWdlLCBzdGFydCwgZW5kKSB7XG4gICAgdGhpcy5uYW1lID0gXCJRdWVyeVBhcnNlRXJyb3JcIjtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuc3RhcnQgPSBzdGFydDtcbiAgICB0aGlzLmVuZCA9IGVuZDtcbiAgfTtcblxuICBsdW5yLlF1ZXJ5UGFyc2VFcnJvci5wcm90b3R5cGUgPSBuZXcgRXJyb3IoKTtcbiAgbHVuci5RdWVyeUxleGVyID0gZnVuY3Rpb24gKHN0cikge1xuICAgIHRoaXMubGV4ZW1lcyA9IFtdO1xuICAgIHRoaXMuc3RyID0gc3RyO1xuICAgIHRoaXMubGVuZ3RoID0gc3RyLmxlbmd0aDtcbiAgICB0aGlzLnBvcyA9IDA7XG4gICAgdGhpcy5zdGFydCA9IDA7XG4gICAgdGhpcy5lc2NhcGVDaGFyUG9zaXRpb25zID0gW107XG4gIH07XG5cbiAgbHVuci5RdWVyeUxleGVyLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHN0YXRlID0gbHVuci5RdWVyeUxleGVyLmxleFRleHQ7XG5cbiAgICB3aGlsZSAoc3RhdGUpIHtcbiAgICAgIHN0YXRlID0gc3RhdGUodGhpcyk7XG4gICAgfVxuICB9O1xuXG4gIGx1bnIuUXVlcnlMZXhlci5wcm90b3R5cGUuc2xpY2VTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHN1YlNsaWNlcyA9IFtdLFxuICAgICAgc2xpY2VTdGFydCA9IHRoaXMuc3RhcnQsXG4gICAgICBzbGljZUVuZCA9IHRoaXMucG9zO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmVzY2FwZUNoYXJQb3NpdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNsaWNlRW5kID0gdGhpcy5lc2NhcGVDaGFyUG9zaXRpb25zW2ldO1xuICAgICAgc3ViU2xpY2VzLnB1c2godGhpcy5zdHIuc2xpY2Uoc2xpY2VTdGFydCwgc2xpY2VFbmQpKTtcbiAgICAgIHNsaWNlU3RhcnQgPSBzbGljZUVuZCArIDE7XG4gICAgfVxuXG4gICAgc3ViU2xpY2VzLnB1c2godGhpcy5zdHIuc2xpY2Uoc2xpY2VTdGFydCwgdGhpcy5wb3MpKTtcbiAgICB0aGlzLmVzY2FwZUNoYXJQb3NpdGlvbnMubGVuZ3RoID0gMDtcblxuICAgIHJldHVybiBzdWJTbGljZXMuam9pbihcIlwiKTtcbiAgfTtcblxuICBsdW5yLlF1ZXJ5TGV4ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiAodHlwZSkge1xuICAgIHRoaXMubGV4ZW1lcy5wdXNoKHtcbiAgICAgIHR5cGU6IHR5cGUsXG4gICAgICBzdHI6IHRoaXMuc2xpY2VTdHJpbmcoKSxcbiAgICAgIHN0YXJ0OiB0aGlzLnN0YXJ0LFxuICAgICAgZW5kOiB0aGlzLnBvcyxcbiAgICB9KTtcblxuICAgIHRoaXMuc3RhcnQgPSB0aGlzLnBvcztcbiAgfTtcblxuICBsdW5yLlF1ZXJ5TGV4ZXIucHJvdG90eXBlLmVzY2FwZUNoYXJhY3RlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmVzY2FwZUNoYXJQb3NpdGlvbnMucHVzaCh0aGlzLnBvcyAtIDEpO1xuICAgIHRoaXMucG9zICs9IDE7XG4gIH07XG5cbiAgbHVuci5RdWVyeUxleGVyLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLnBvcyA+PSB0aGlzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGx1bnIuUXVlcnlMZXhlci5FT1M7XG4gICAgfVxuXG4gICAgdmFyIGNoYXIgPSB0aGlzLnN0ci5jaGFyQXQodGhpcy5wb3MpO1xuICAgIHRoaXMucG9zICs9IDE7XG4gICAgcmV0dXJuIGNoYXI7XG4gIH07XG5cbiAgbHVuci5RdWVyeUxleGVyLnByb3RvdHlwZS53aWR0aCA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5wb3MgLSB0aGlzLnN0YXJ0O1xuICB9O1xuXG4gIGx1bnIuUXVlcnlMZXhlci5wcm90b3R5cGUuaWdub3JlID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLnN0YXJ0ID09IHRoaXMucG9zKSB7XG4gICAgICB0aGlzLnBvcyArPSAxO1xuICAgIH1cblxuICAgIHRoaXMuc3RhcnQgPSB0aGlzLnBvcztcbiAgfTtcblxuICBsdW5yLlF1ZXJ5TGV4ZXIucHJvdG90eXBlLmJhY2t1cCA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnBvcyAtPSAxO1xuICB9O1xuXG4gIGx1bnIuUXVlcnlMZXhlci5wcm90b3R5cGUuYWNjZXB0RGlnaXRSdW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGNoYXIsIGNoYXJDb2RlO1xuXG4gICAgZG8ge1xuICAgICAgY2hhciA9IHRoaXMubmV4dCgpO1xuICAgICAgY2hhckNvZGUgPSBjaGFyLmNoYXJDb2RlQXQoMCk7XG4gICAgfSB3aGlsZSAoY2hhckNvZGUgPiA0NyAmJiBjaGFyQ29kZSA8IDU4KTtcblxuICAgIGlmIChjaGFyICE9IGx1bnIuUXVlcnlMZXhlci5FT1MpIHtcbiAgICAgIHRoaXMuYmFja3VwKCk7XG4gICAgfVxuICB9O1xuXG4gIGx1bnIuUXVlcnlMZXhlci5wcm90b3R5cGUubW9yZSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5wb3MgPCB0aGlzLmxlbmd0aDtcbiAgfTtcblxuICBsdW5yLlF1ZXJ5TGV4ZXIuRU9TID0gXCJFT1NcIjtcbiAgbHVuci5RdWVyeUxleGVyLkZJRUxEID0gXCJGSUVMRFwiO1xuICBsdW5yLlF1ZXJ5TGV4ZXIuVEVSTSA9IFwiVEVSTVwiO1xuICBsdW5yLlF1ZXJ5TGV4ZXIuRURJVF9ESVNUQU5DRSA9IFwiRURJVF9ESVNUQU5DRVwiO1xuICBsdW5yLlF1ZXJ5TGV4ZXIuQk9PU1QgPSBcIkJPT1NUXCI7XG4gIGx1bnIuUXVlcnlMZXhlci5QUkVTRU5DRSA9IFwiUFJFU0VOQ0VcIjtcblxuICBsdW5yLlF1ZXJ5TGV4ZXIubGV4RmllbGQgPSBmdW5jdGlvbiAobGV4ZXIpIHtcbiAgICBsZXhlci5iYWNrdXAoKTtcbiAgICBsZXhlci5lbWl0KGx1bnIuUXVlcnlMZXhlci5GSUVMRCk7XG4gICAgbGV4ZXIuaWdub3JlKCk7XG4gICAgcmV0dXJuIGx1bnIuUXVlcnlMZXhlci5sZXhUZXh0O1xuICB9O1xuXG4gIGx1bnIuUXVlcnlMZXhlci5sZXhUZXJtID0gZnVuY3Rpb24gKGxleGVyKSB7XG4gICAgaWYgKGxleGVyLndpZHRoKCkgPiAxKSB7XG4gICAgICBsZXhlci5iYWNrdXAoKTtcbiAgICAgIGxleGVyLmVtaXQobHVuci5RdWVyeUxleGVyLlRFUk0pO1xuICAgIH1cblxuICAgIGxleGVyLmlnbm9yZSgpO1xuXG4gICAgaWYgKGxleGVyLm1vcmUoKSkge1xuICAgICAgcmV0dXJuIGx1bnIuUXVlcnlMZXhlci5sZXhUZXh0O1xuICAgIH1cbiAgfTtcblxuICBsdW5yLlF1ZXJ5TGV4ZXIubGV4RWRpdERpc3RhbmNlID0gZnVuY3Rpb24gKGxleGVyKSB7XG4gICAgbGV4ZXIuaWdub3JlKCk7XG4gICAgbGV4ZXIuYWNjZXB0RGlnaXRSdW4oKTtcbiAgICBsZXhlci5lbWl0KGx1bnIuUXVlcnlMZXhlci5FRElUX0RJU1RBTkNFKTtcbiAgICByZXR1cm4gbHVuci5RdWVyeUxleGVyLmxleFRleHQ7XG4gIH07XG5cbiAgbHVuci5RdWVyeUxleGVyLmxleEJvb3N0ID0gZnVuY3Rpb24gKGxleGVyKSB7XG4gICAgbGV4ZXIuaWdub3JlKCk7XG4gICAgbGV4ZXIuYWNjZXB0RGlnaXRSdW4oKTtcbiAgICBsZXhlci5lbWl0KGx1bnIuUXVlcnlMZXhlci5CT09TVCk7XG4gICAgcmV0dXJuIGx1bnIuUXVlcnlMZXhlci5sZXhUZXh0O1xuICB9O1xuXG4gIGx1bnIuUXVlcnlMZXhlci5sZXhFT1MgPSBmdW5jdGlvbiAobGV4ZXIpIHtcbiAgICBpZiAobGV4ZXIud2lkdGgoKSA+IDApIHtcbiAgICAgIGxleGVyLmVtaXQobHVuci5RdWVyeUxleGVyLlRFUk0pO1xuICAgIH1cbiAgfTtcblxuICAvLyBUaGlzIG1hdGNoZXMgdGhlIHNlcGFyYXRvciB1c2VkIHdoZW4gdG9rZW5pc2luZyBmaWVsZHNcbiAgLy8gd2l0aGluIGEgZG9jdW1lbnQuIFRoZXNlIHNob3VsZCBtYXRjaCBvdGhlcndpc2UgaXQgaXNcbiAgLy8gbm90IHBvc3NpYmxlIHRvIHNlYXJjaCBmb3Igc29tZSB0b2tlbnMgd2l0aGluIGEgZG9jdW1lbnQuXG4gIC8vXG4gIC8vIEl0IGlzIHBvc3NpYmxlIGZvciB0aGUgdXNlciB0byBjaGFuZ2UgdGhlIHNlcGFyYXRvciBvbiB0aGVcbiAgLy8gdG9rZW5pemVyIHNvIGl0IF9taWdodF8gY2xhc2ggd2l0aCBhbnkgb3RoZXIgb2YgdGhlIHNwZWNpYWxcbiAgLy8gY2hhcmFjdGVycyBhbHJlYWR5IHVzZWQgd2l0aGluIHRoZSBzZWFyY2ggc3RyaW5nLCBlLmcuIDouXG4gIC8vXG4gIC8vIFRoaXMgbWVhbnMgdGhhdCBpdCBpcyBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIHNlcGFyYXRvciBpblxuICAvLyBzdWNoIGEgd2F5IHRoYXQgbWFrZXMgc29tZSB3b3JkcyB1bnNlYXJjaGFibGUgdXNpbmcgYSBzZWFyY2hcbiAgLy8gc3RyaW5nLlxuICBsdW5yLlF1ZXJ5TGV4ZXIudGVybVNlcGFyYXRvciA9IGx1bnIudG9rZW5pemVyLnNlcGFyYXRvcjtcblxuICBsdW5yLlF1ZXJ5TGV4ZXIubGV4VGV4dCA9IGZ1bmN0aW9uIChsZXhlcikge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICB2YXIgY2hhciA9IGxleGVyLm5leHQoKTtcblxuICAgICAgaWYgKGNoYXIgPT0gbHVuci5RdWVyeUxleGVyLkVPUykge1xuICAgICAgICByZXR1cm4gbHVuci5RdWVyeUxleGVyLmxleEVPUztcbiAgICAgIH1cblxuICAgICAgLy8gRXNjYXBlIGNoYXJhY3RlciBpcyAnXFwnXG4gICAgICBpZiAoY2hhci5jaGFyQ29kZUF0KDApID09IDkyKSB7XG4gICAgICAgIGxleGVyLmVzY2FwZUNoYXJhY3RlcigpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYXIgPT0gXCI6XCIpIHtcbiAgICAgICAgcmV0dXJuIGx1bnIuUXVlcnlMZXhlci5sZXhGaWVsZDtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYXIgPT0gXCJ+XCIpIHtcbiAgICAgICAgbGV4ZXIuYmFja3VwKCk7XG4gICAgICAgIGlmIChsZXhlci53aWR0aCgpID4gMCkge1xuICAgICAgICAgIGxleGVyLmVtaXQobHVuci5RdWVyeUxleGVyLlRFUk0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsdW5yLlF1ZXJ5TGV4ZXIubGV4RWRpdERpc3RhbmNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hhciA9PSBcIl5cIikge1xuICAgICAgICBsZXhlci5iYWNrdXAoKTtcbiAgICAgICAgaWYgKGxleGVyLndpZHRoKCkgPiAwKSB7XG4gICAgICAgICAgbGV4ZXIuZW1pdChsdW5yLlF1ZXJ5TGV4ZXIuVEVSTSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGx1bnIuUXVlcnlMZXhlci5sZXhCb29zdDtcbiAgICAgIH1cblxuICAgICAgLy8gXCIrXCIgaW5kaWNhdGVzIHRlcm0gcHJlc2VuY2UgaXMgcmVxdWlyZWRcbiAgICAgIC8vIGNoZWNraW5nIGZvciBsZW5ndGggdG8gZW5zdXJlIHRoYXQgb25seVxuICAgICAgLy8gbGVhZGluZyBcIitcIiBhcmUgY29uc2lkZXJlZFxuICAgICAgaWYgKGNoYXIgPT0gXCIrXCIgJiYgbGV4ZXIud2lkdGgoKSA9PT0gMSkge1xuICAgICAgICBsZXhlci5lbWl0KGx1bnIuUXVlcnlMZXhlci5QUkVTRU5DRSk7XG4gICAgICAgIHJldHVybiBsdW5yLlF1ZXJ5TGV4ZXIubGV4VGV4dDtcbiAgICAgIH1cblxuICAgICAgLy8gXCItXCIgaW5kaWNhdGVzIHRlcm0gcHJlc2VuY2UgaXMgcHJvaGliaXRlZFxuICAgICAgLy8gY2hlY2tpbmcgZm9yIGxlbmd0aCB0byBlbnN1cmUgdGhhdCBvbmx5XG4gICAgICAvLyBsZWFkaW5nIFwiLVwiIGFyZSBjb25zaWRlcmVkXG4gICAgICBpZiAoY2hhciA9PSBcIi1cIiAmJiBsZXhlci53aWR0aCgpID09PSAxKSB7XG4gICAgICAgIGxleGVyLmVtaXQobHVuci5RdWVyeUxleGVyLlBSRVNFTkNFKTtcbiAgICAgICAgcmV0dXJuIGx1bnIuUXVlcnlMZXhlci5sZXhUZXh0O1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hhci5tYXRjaChsdW5yLlF1ZXJ5TGV4ZXIudGVybVNlcGFyYXRvcikpIHtcbiAgICAgICAgcmV0dXJuIGx1bnIuUXVlcnlMZXhlci5sZXhUZXJtO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBsdW5yLlF1ZXJ5UGFyc2VyID0gZnVuY3Rpb24gKHN0ciwgcXVlcnkpIHtcbiAgICB0aGlzLmxleGVyID0gbmV3IGx1bnIuUXVlcnlMZXhlcihzdHIpO1xuICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICB0aGlzLmN1cnJlbnRDbGF1c2UgPSB7fTtcbiAgICB0aGlzLmxleGVtZUlkeCA9IDA7XG4gIH07XG5cbiAgbHVuci5RdWVyeVBhcnNlci5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5sZXhlci5ydW4oKTtcbiAgICB0aGlzLmxleGVtZXMgPSB0aGlzLmxleGVyLmxleGVtZXM7XG5cbiAgICB2YXIgc3RhdGUgPSBsdW5yLlF1ZXJ5UGFyc2VyLnBhcnNlQ2xhdXNlO1xuXG4gICAgd2hpbGUgKHN0YXRlKSB7XG4gICAgICBzdGF0ZSA9IHN0YXRlKHRoaXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnF1ZXJ5O1xuICB9O1xuXG4gIGx1bnIuUXVlcnlQYXJzZXIucHJvdG90eXBlLnBlZWtMZXhlbWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZW1lc1t0aGlzLmxleGVtZUlkeF07XG4gIH07XG5cbiAgbHVuci5RdWVyeVBhcnNlci5wcm90b3R5cGUuY29uc3VtZUxleGVtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGV4ZW1lID0gdGhpcy5wZWVrTGV4ZW1lKCk7XG4gICAgdGhpcy5sZXhlbWVJZHggKz0gMTtcbiAgICByZXR1cm4gbGV4ZW1lO1xuICB9O1xuXG4gIGx1bnIuUXVlcnlQYXJzZXIucHJvdG90eXBlLm5leHRDbGF1c2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGNvbXBsZXRlZENsYXVzZSA9IHRoaXMuY3VycmVudENsYXVzZTtcbiAgICB0aGlzLnF1ZXJ5LmNsYXVzZShjb21wbGV0ZWRDbGF1c2UpO1xuICAgIHRoaXMuY3VycmVudENsYXVzZSA9IHt9O1xuICB9O1xuXG4gIGx1bnIuUXVlcnlQYXJzZXIucGFyc2VDbGF1c2UgPSBmdW5jdGlvbiAocGFyc2VyKSB7XG4gICAgdmFyIGxleGVtZSA9IHBhcnNlci5wZWVrTGV4ZW1lKCk7XG5cbiAgICBpZiAobGV4ZW1lID09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAobGV4ZW1lLnR5cGUpIHtcbiAgICAgIGNhc2UgbHVuci5RdWVyeUxleGVyLlBSRVNFTkNFOlxuICAgICAgICByZXR1cm4gbHVuci5RdWVyeVBhcnNlci5wYXJzZVByZXNlbmNlO1xuICAgICAgY2FzZSBsdW5yLlF1ZXJ5TGV4ZXIuRklFTEQ6XG4gICAgICAgIHJldHVybiBsdW5yLlF1ZXJ5UGFyc2VyLnBhcnNlRmllbGQ7XG4gICAgICBjYXNlIGx1bnIuUXVlcnlMZXhlci5URVJNOlxuICAgICAgICByZXR1cm4gbHVuci5RdWVyeVBhcnNlci5wYXJzZVRlcm07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID1cbiAgICAgICAgICBcImV4cGVjdGVkIGVpdGhlciBhIGZpZWxkIG9yIGEgdGVybSwgZm91bmQgXCIgKyBsZXhlbWUudHlwZTtcblxuICAgICAgICBpZiAobGV4ZW1lLnN0ci5sZW5ndGggPj0gMSkge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSArPSBcIiB3aXRoIHZhbHVlICdcIiArIGxleGVtZS5zdHIgKyBcIidcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBsdW5yLlF1ZXJ5UGFyc2VFcnJvcihlcnJvck1lc3NhZ2UsIGxleGVtZS5zdGFydCwgbGV4ZW1lLmVuZCk7XG4gICAgfVxuICB9O1xuXG4gIGx1bnIuUXVlcnlQYXJzZXIucGFyc2VQcmVzZW5jZSA9IGZ1bmN0aW9uIChwYXJzZXIpIHtcbiAgICB2YXIgbGV4ZW1lID0gcGFyc2VyLmNvbnN1bWVMZXhlbWUoKTtcblxuICAgIGlmIChsZXhlbWUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChsZXhlbWUuc3RyKSB7XG4gICAgICBjYXNlIFwiLVwiOlxuICAgICAgICBwYXJzZXIuY3VycmVudENsYXVzZS5wcmVzZW5jZSA9IGx1bnIuUXVlcnkucHJlc2VuY2UuUFJPSElCSVRFRDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiK1wiOlxuICAgICAgICBwYXJzZXIuY3VycmVudENsYXVzZS5wcmVzZW5jZSA9IGx1bnIuUXVlcnkucHJlc2VuY2UuUkVRVUlSRUQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IFwidW5yZWNvZ25pc2VkIHByZXNlbmNlIG9wZXJhdG9yJ1wiICsgbGV4ZW1lLnN0ciArIFwiJ1wiO1xuICAgICAgICB0aHJvdyBuZXcgbHVuci5RdWVyeVBhcnNlRXJyb3IoZXJyb3JNZXNzYWdlLCBsZXhlbWUuc3RhcnQsIGxleGVtZS5lbmQpO1xuICAgIH1cblxuICAgIHZhciBuZXh0TGV4ZW1lID0gcGFyc2VyLnBlZWtMZXhlbWUoKTtcblxuICAgIGlmIChuZXh0TGV4ZW1lID09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IFwiZXhwZWN0aW5nIHRlcm0gb3IgZmllbGQsIGZvdW5kIG5vdGhpbmdcIjtcbiAgICAgIHRocm93IG5ldyBsdW5yLlF1ZXJ5UGFyc2VFcnJvcihlcnJvck1lc3NhZ2UsIGxleGVtZS5zdGFydCwgbGV4ZW1lLmVuZCk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChuZXh0TGV4ZW1lLnR5cGUpIHtcbiAgICAgIGNhc2UgbHVuci5RdWVyeUxleGVyLkZJRUxEOlxuICAgICAgICByZXR1cm4gbHVuci5RdWVyeVBhcnNlci5wYXJzZUZpZWxkO1xuICAgICAgY2FzZSBsdW5yLlF1ZXJ5TGV4ZXIuVEVSTTpcbiAgICAgICAgcmV0dXJuIGx1bnIuUXVlcnlQYXJzZXIucGFyc2VUZXJtO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgXCJleHBlY3RpbmcgdGVybSBvciBmaWVsZCwgZm91bmQgJ1wiICsgbmV4dExleGVtZS50eXBlICsgXCInXCI7XG4gICAgICAgIHRocm93IG5ldyBsdW5yLlF1ZXJ5UGFyc2VFcnJvcihcbiAgICAgICAgICBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgbmV4dExleGVtZS5zdGFydCxcbiAgICAgICAgICBuZXh0TGV4ZW1lLmVuZFxuICAgICAgICApO1xuICAgIH1cbiAgfTtcblxuICBsdW5yLlF1ZXJ5UGFyc2VyLnBhcnNlRmllbGQgPSBmdW5jdGlvbiAocGFyc2VyKSB7XG4gICAgdmFyIGxleGVtZSA9IHBhcnNlci5jb25zdW1lTGV4ZW1lKCk7XG5cbiAgICBpZiAobGV4ZW1lID09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwYXJzZXIucXVlcnkuYWxsRmllbGRzLmluZGV4T2YobGV4ZW1lLnN0cikgPT0gLTEpIHtcbiAgICAgIHZhciBwb3NzaWJsZUZpZWxkcyA9IHBhcnNlci5xdWVyeS5hbGxGaWVsZHNcbiAgICAgICAgICAubWFwKGZ1bmN0aW9uIChmKSB7XG4gICAgICAgICAgICByZXR1cm4gXCInXCIgKyBmICsgXCInXCI7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuam9pbihcIiwgXCIpLFxuICAgICAgICBlcnJvck1lc3NhZ2UgPVxuICAgICAgICAgIFwidW5yZWNvZ25pc2VkIGZpZWxkICdcIiArXG4gICAgICAgICAgbGV4ZW1lLnN0ciArXG4gICAgICAgICAgXCInLCBwb3NzaWJsZSBmaWVsZHM6IFwiICtcbiAgICAgICAgICBwb3NzaWJsZUZpZWxkcztcblxuICAgICAgdGhyb3cgbmV3IGx1bnIuUXVlcnlQYXJzZUVycm9yKGVycm9yTWVzc2FnZSwgbGV4ZW1lLnN0YXJ0LCBsZXhlbWUuZW5kKTtcbiAgICB9XG5cbiAgICBwYXJzZXIuY3VycmVudENsYXVzZS5maWVsZHMgPSBbbGV4ZW1lLnN0cl07XG5cbiAgICB2YXIgbmV4dExleGVtZSA9IHBhcnNlci5wZWVrTGV4ZW1lKCk7XG5cbiAgICBpZiAobmV4dExleGVtZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSBcImV4cGVjdGluZyB0ZXJtLCBmb3VuZCBub3RoaW5nXCI7XG4gICAgICB0aHJvdyBuZXcgbHVuci5RdWVyeVBhcnNlRXJyb3IoZXJyb3JNZXNzYWdlLCBsZXhlbWUuc3RhcnQsIGxleGVtZS5lbmQpO1xuICAgIH1cblxuICAgIHN3aXRjaCAobmV4dExleGVtZS50eXBlKSB7XG4gICAgICBjYXNlIGx1bnIuUXVlcnlMZXhlci5URVJNOlxuICAgICAgICByZXR1cm4gbHVuci5RdWVyeVBhcnNlci5wYXJzZVRlcm07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gXCJleHBlY3RpbmcgdGVybSwgZm91bmQgJ1wiICsgbmV4dExleGVtZS50eXBlICsgXCInXCI7XG4gICAgICAgIHRocm93IG5ldyBsdW5yLlF1ZXJ5UGFyc2VFcnJvcihcbiAgICAgICAgICBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgbmV4dExleGVtZS5zdGFydCxcbiAgICAgICAgICBuZXh0TGV4ZW1lLmVuZFxuICAgICAgICApO1xuICAgIH1cbiAgfTtcblxuICBsdW5yLlF1ZXJ5UGFyc2VyLnBhcnNlVGVybSA9IGZ1bmN0aW9uIChwYXJzZXIpIHtcbiAgICB2YXIgbGV4ZW1lID0gcGFyc2VyLmNvbnN1bWVMZXhlbWUoKTtcblxuICAgIGlmIChsZXhlbWUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGFyc2VyLmN1cnJlbnRDbGF1c2UudGVybSA9IGxleGVtZS5zdHIudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChsZXhlbWUuc3RyLmluZGV4T2YoXCIqXCIpICE9IC0xKSB7XG4gICAgICBwYXJzZXIuY3VycmVudENsYXVzZS51c2VQaXBlbGluZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHZhciBuZXh0TGV4ZW1lID0gcGFyc2VyLnBlZWtMZXhlbWUoKTtcblxuICAgIGlmIChuZXh0TGV4ZW1lID09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyc2VyLm5leHRDbGF1c2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKG5leHRMZXhlbWUudHlwZSkge1xuICAgICAgY2FzZSBsdW5yLlF1ZXJ5TGV4ZXIuVEVSTTpcbiAgICAgICAgcGFyc2VyLm5leHRDbGF1c2UoKTtcbiAgICAgICAgcmV0dXJuIGx1bnIuUXVlcnlQYXJzZXIucGFyc2VUZXJtO1xuICAgICAgY2FzZSBsdW5yLlF1ZXJ5TGV4ZXIuRklFTEQ6XG4gICAgICAgIHBhcnNlci5uZXh0Q2xhdXNlKCk7XG4gICAgICAgIHJldHVybiBsdW5yLlF1ZXJ5UGFyc2VyLnBhcnNlRmllbGQ7XG4gICAgICBjYXNlIGx1bnIuUXVlcnlMZXhlci5FRElUX0RJU1RBTkNFOlxuICAgICAgICByZXR1cm4gbHVuci5RdWVyeVBhcnNlci5wYXJzZUVkaXREaXN0YW5jZTtcbiAgICAgIGNhc2UgbHVuci5RdWVyeUxleGVyLkJPT1NUOlxuICAgICAgICByZXR1cm4gbHVuci5RdWVyeVBhcnNlci5wYXJzZUJvb3N0O1xuICAgICAgY2FzZSBsdW5yLlF1ZXJ5TGV4ZXIuUFJFU0VOQ0U6XG4gICAgICAgIHBhcnNlci5uZXh0Q2xhdXNlKCk7XG4gICAgICAgIHJldHVybiBsdW5yLlF1ZXJ5UGFyc2VyLnBhcnNlUHJlc2VuY2U7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gXCJVbmV4cGVjdGVkIGxleGVtZSB0eXBlICdcIiArIG5leHRMZXhlbWUudHlwZSArIFwiJ1wiO1xuICAgICAgICB0aHJvdyBuZXcgbHVuci5RdWVyeVBhcnNlRXJyb3IoXG4gICAgICAgICAgZXJyb3JNZXNzYWdlLFxuICAgICAgICAgIG5leHRMZXhlbWUuc3RhcnQsXG4gICAgICAgICAgbmV4dExleGVtZS5lbmRcbiAgICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgbHVuci5RdWVyeVBhcnNlci5wYXJzZUVkaXREaXN0YW5jZSA9IGZ1bmN0aW9uIChwYXJzZXIpIHtcbiAgICB2YXIgbGV4ZW1lID0gcGFyc2VyLmNvbnN1bWVMZXhlbWUoKTtcblxuICAgIGlmIChsZXhlbWUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGVkaXREaXN0YW5jZSA9IHBhcnNlSW50KGxleGVtZS5zdHIsIDEwKTtcblxuICAgIGlmIChpc05hTihlZGl0RGlzdGFuY2UpKSB7XG4gICAgICB2YXIgZXJyb3JNZXNzYWdlID0gXCJlZGl0IGRpc3RhbmNlIG11c3QgYmUgbnVtZXJpY1wiO1xuICAgICAgdGhyb3cgbmV3IGx1bnIuUXVlcnlQYXJzZUVycm9yKGVycm9yTWVzc2FnZSwgbGV4ZW1lLnN0YXJ0LCBsZXhlbWUuZW5kKTtcbiAgICB9XG5cbiAgICBwYXJzZXIuY3VycmVudENsYXVzZS5lZGl0RGlzdGFuY2UgPSBlZGl0RGlzdGFuY2U7XG5cbiAgICB2YXIgbmV4dExleGVtZSA9IHBhcnNlci5wZWVrTGV4ZW1lKCk7XG5cbiAgICBpZiAobmV4dExleGVtZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnNlci5uZXh0Q2xhdXNlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChuZXh0TGV4ZW1lLnR5cGUpIHtcbiAgICAgIGNhc2UgbHVuci5RdWVyeUxleGVyLlRFUk06XG4gICAgICAgIHBhcnNlci5uZXh0Q2xhdXNlKCk7XG4gICAgICAgIHJldHVybiBsdW5yLlF1ZXJ5UGFyc2VyLnBhcnNlVGVybTtcbiAgICAgIGNhc2UgbHVuci5RdWVyeUxleGVyLkZJRUxEOlxuICAgICAgICBwYXJzZXIubmV4dENsYXVzZSgpO1xuICAgICAgICByZXR1cm4gbHVuci5RdWVyeVBhcnNlci5wYXJzZUZpZWxkO1xuICAgICAgY2FzZSBsdW5yLlF1ZXJ5TGV4ZXIuRURJVF9ESVNUQU5DRTpcbiAgICAgICAgcmV0dXJuIGx1bnIuUXVlcnlQYXJzZXIucGFyc2VFZGl0RGlzdGFuY2U7XG4gICAgICBjYXNlIGx1bnIuUXVlcnlMZXhlci5CT09TVDpcbiAgICAgICAgcmV0dXJuIGx1bnIuUXVlcnlQYXJzZXIucGFyc2VCb29zdDtcbiAgICAgIGNhc2UgbHVuci5RdWVyeUxleGVyLlBSRVNFTkNFOlxuICAgICAgICBwYXJzZXIubmV4dENsYXVzZSgpO1xuICAgICAgICByZXR1cm4gbHVuci5RdWVyeVBhcnNlci5wYXJzZVByZXNlbmNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IFwiVW5leHBlY3RlZCBsZXhlbWUgdHlwZSAnXCIgKyBuZXh0TGV4ZW1lLnR5cGUgKyBcIidcIjtcbiAgICAgICAgdGhyb3cgbmV3IGx1bnIuUXVlcnlQYXJzZUVycm9yKFxuICAgICAgICAgIGVycm9yTWVzc2FnZSxcbiAgICAgICAgICBuZXh0TGV4ZW1lLnN0YXJ0LFxuICAgICAgICAgIG5leHRMZXhlbWUuZW5kXG4gICAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGx1bnIuUXVlcnlQYXJzZXIucGFyc2VCb29zdCA9IGZ1bmN0aW9uIChwYXJzZXIpIHtcbiAgICB2YXIgbGV4ZW1lID0gcGFyc2VyLmNvbnN1bWVMZXhlbWUoKTtcblxuICAgIGlmIChsZXhlbWUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGJvb3N0ID0gcGFyc2VJbnQobGV4ZW1lLnN0ciwgMTApO1xuXG4gICAgaWYgKGlzTmFOKGJvb3N0KSkge1xuICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IFwiYm9vc3QgbXVzdCBiZSBudW1lcmljXCI7XG4gICAgICB0aHJvdyBuZXcgbHVuci5RdWVyeVBhcnNlRXJyb3IoZXJyb3JNZXNzYWdlLCBsZXhlbWUuc3RhcnQsIGxleGVtZS5lbmQpO1xuICAgIH1cblxuICAgIHBhcnNlci5jdXJyZW50Q2xhdXNlLmJvb3N0ID0gYm9vc3Q7XG5cbiAgICB2YXIgbmV4dExleGVtZSA9IHBhcnNlci5wZWVrTGV4ZW1lKCk7XG5cbiAgICBpZiAobmV4dExleGVtZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnNlci5uZXh0Q2xhdXNlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChuZXh0TGV4ZW1lLnR5cGUpIHtcbiAgICAgIGNhc2UgbHVuci5RdWVyeUxleGVyLlRFUk06XG4gICAgICAgIHBhcnNlci5uZXh0Q2xhdXNlKCk7XG4gICAgICAgIHJldHVybiBsdW5yLlF1ZXJ5UGFyc2VyLnBhcnNlVGVybTtcbiAgICAgIGNhc2UgbHVuci5RdWVyeUxleGVyLkZJRUxEOlxuICAgICAgICBwYXJzZXIubmV4dENsYXVzZSgpO1xuICAgICAgICByZXR1cm4gbHVuci5RdWVyeVBhcnNlci5wYXJzZUZpZWxkO1xuICAgICAgY2FzZSBsdW5yLlF1ZXJ5TGV4ZXIuRURJVF9ESVNUQU5DRTpcbiAgICAgICAgcmV0dXJuIGx1bnIuUXVlcnlQYXJzZXIucGFyc2VFZGl0RGlzdGFuY2U7XG4gICAgICBjYXNlIGx1bnIuUXVlcnlMZXhlci5CT09TVDpcbiAgICAgICAgcmV0dXJuIGx1bnIuUXVlcnlQYXJzZXIucGFyc2VCb29zdDtcbiAgICAgIGNhc2UgbHVuci5RdWVyeUxleGVyLlBSRVNFTkNFOlxuICAgICAgICBwYXJzZXIubmV4dENsYXVzZSgpO1xuICAgICAgICByZXR1cm4gbHVuci5RdWVyeVBhcnNlci5wYXJzZVByZXNlbmNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IFwiVW5leHBlY3RlZCBsZXhlbWUgdHlwZSAnXCIgKyBuZXh0TGV4ZW1lLnR5cGUgKyBcIidcIjtcbiAgICAgICAgdGhyb3cgbmV3IGx1bnIuUXVlcnlQYXJzZUVycm9yKFxuICAgICAgICAgIGVycm9yTWVzc2FnZSxcbiAgICAgICAgICBuZXh0TGV4ZW1lLnN0YXJ0LFxuICAgICAgICAgIG5leHRMZXhlbWUuZW5kXG4gICAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBleHBvcnQgdGhlIG1vZHVsZSB2aWEgQU1ELCBDb21tb25KUyBvciBhcyBhIGJyb3dzZXIgZ2xvYmFsXG4gICAqIEV4cG9ydCBjb2RlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3VtZGpzL3VtZC9ibG9iL21hc3Rlci9yZXR1cm5FeHBvcnRzLmpzXG4gICAqL1xuICAoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcbiAgICAgIC8vIEFNRC4gUmVnaXN0ZXIgYXMgYW4gYW5vbnltb3VzIG1vZHVsZS5cbiAgICAgIGRlZmluZShmYWN0b3J5KTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAvKipcbiAgICAgICAqIE5vZGUuIERvZXMgbm90IHdvcmsgd2l0aCBzdHJpY3QgQ29tbW9uSlMsIGJ1dFxuICAgICAgICogb25seSBDb21tb25KUy1saWtlIGVudmlyb21lbnRzIHRoYXQgc3VwcG9ydCBtb2R1bGUuZXhwb3J0cyxcbiAgICAgICAqIGxpa2UgTm9kZS5cbiAgICAgICAqL1xuICAgICAgbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEJyb3dzZXIgZ2xvYmFscyAocm9vdCBpcyB3aW5kb3cpXG4gICAgICByb290Lmx1bnIgPSBmYWN0b3J5KCk7XG4gICAgfVxuICB9KSh0aGlzLCBmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgICogSnVzdCByZXR1cm4gYSB2YWx1ZSB0byBkZWZpbmUgdGhlIG1vZHVsZSBleHBvcnQuXG4gICAgICogVGhpcyBleGFtcGxlIHJldHVybnMgYW4gb2JqZWN0LCBidXQgdGhlIG1vZHVsZVxuICAgICAqIGNhbiByZXR1cm4gYSBmdW5jdGlvbiBhcyB0aGUgZXhwb3J0ZWQgdmFsdWUuXG4gICAgICovXG4gICAgcmV0dXJuIGx1bnI7XG4gIH0pO1xufSkoKTtcbiIsCiAgICAiaW1wb3J0IGx1bnIgZnJvbSBcImx1bnJcIjtcblxuLyoqXG4gKiBUaGlzIGlzIGEgbG90IG9mIGhhY2t5IGJ1bGxzaGl0LiBUaGUgbWFpbiB0aGluZyBpcyB0aGVyZSdzIGEgcG9wb3ZlciBlbGVtZW50LCBhIGRlYm91bmNlZCBpbnB1dFxuICogZmllbGQsIGEgc2VhcmNoIGZ1bmN0aW9uLCBhbmQgYSBmdW5jdGlvbiB0aGF0IGJ1aWxkcyBhbiBIVE1MIHN0cmluZyB0byBwbG9wIGludG8gdGhlIHJlc3VsdHMuXG4gKi9cblxuaW50ZXJmYWNlIE1hdGNoRGF0YSB7XG4gIG1ldGFkYXRhOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIFJlY29yZDxrZXlvZiBTZWFyY2hEb2MsIHsgcG9zaXRpb246IFtudW1iZXIsIG51bWJlcl1bXSB9PlxuICA+O1xufVxuXG5pbnRlcmZhY2UgU2VhcmNoRG9jIHtcbiAgbmFtZTogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBkb1NlYXJjaChcbiAgZG9jc0J5UmVmOiBSZWNvcmQ8c3RyaW5nLCBTZWFyY2hEb2M+LFxuICBsOiBsdW5yLkluZGV4LFxuICBxdWVyeTogc3RyaW5nLFxuICByZXN1bHRFbDogSFRNTERpdkVsZW1lbnRcbikge1xuICBpZiAoIXF1ZXJ5LnRyaW0oKS5sZW5ndGgpIHtcbiAgICByZXN1bHRFbC5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz1cIkRKU2VhcmNoUmVzdWx0c19FbXB0eSBtLW5vcXVlcnlcIj5UeXBlIGEgc2VhcmNoIGludG8gdGhlIGJveC48L2Rpdj5gO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCByZXN1bHRzID0gbC5xdWVyeShmdW5jdGlvbiAocSkge1xuICAgIHEudGVybShxdWVyeSwgeyBib29zdDogMTAwLCB1c2VQaXBlbGluZTogdHJ1ZSB9KTtcbiAgICBxLnRlcm0ocXVlcnksIHtcbiAgICAgIGJvb3N0OiAxMCxcbiAgICAgIHVzZVBpcGVsaW5lOiBmYWxzZSxcbiAgICAgIHdpbGRjYXJkOiBsdW5yLlF1ZXJ5LndpbGRjYXJkLlRSQUlMSU5HLFxuICAgIH0pO1xuICAgIHEudGVybShxdWVyeSwgeyBib29zdDogMSwgZWRpdERpc3RhbmNlOiAxIH0pO1xuICB9KTtcblxuICBpZiAoIXJlc3VsdHMubGVuZ3RoKSB7XG4gICAgcmVzdWx0RWwuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9XCJESlNlYXJjaFJlc3VsdHNfRW1wdHkgbS1ub3Jlc3VsdHNcIj5ObyByZXN1bHRzIGZvdW5kLjwvZGl2PmA7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVzdWx0RWwuaW5uZXJIVE1MID0gcmVzdWx0c1xuICAgIC5tYXAoKHIpID0+IGJ1aWxkUmVzdWx0SFRNTChyLCBkb2NzQnlSZWZbci5yZWZdKSlcbiAgICAuam9pbihcIlxcblwiKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRSZXN1bHRIVE1MKHJlc3VsdDogbHVuci5JbmRleC5SZXN1bHQsIGRvYzogU2VhcmNoRG9jKTogc3RyaW5nIHtcbiAgY29uc3QgbWV0YWRhdGEgPSAocmVzdWx0Lm1hdGNoRGF0YSBhcyBNYXRjaERhdGEpLm1ldGFkYXRhO1xuICByZXR1cm4gYFxuICA8YSBjbGFzcz1cIkRKU2VhcmNoUmVzdWx0XCIgdGFiaW5kZXg9XCIwXCIgaHJlZj1cIiR7ZG9jLnVybH1cIj5cbiAgICA8aDE+JHtidWlsZEhpZ2hsaWdodGVkVGVybXNIVE1MKGRvYy5uYW1lLCBcIm5hbWVcIiwgbWV0YWRhdGEsIGZhbHNlKX08L2gxPlxuICAgIDxkaXYgY2xhc3M9XCJESlNlYXJjaFJlc3VsdF9UZXh0XCI+JHtidWlsZEhpZ2hsaWdodGVkVGVybXNIVE1MKFxuICAgICAgZG9jLnRleHQsXG4gICAgICBcInRleHRcIixcbiAgICAgIG1ldGFkYXRhLFxuICAgICAgdHJ1ZVxuICAgICl9PC9kaXY+XG4gIDwvZGl2PmA7XG59XG5cbmludGVyZmFjZSBTdWJzdHJpbmdMaW5lIHtcbiAgc3RhcnRJbmNsdXNpdmU6IG51bWJlcjtcbiAgZW5kRXhjbHVzaXZlOiBudW1iZXI7XG4gIHRleHQ6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gYnVpbGRIaWdobGlnaHRlZFRlcm1zSFRNTChcbiAgdGV4dDogc3RyaW5nLFxuICBtZXRhZGF0YUtleToga2V5b2YgU2VhcmNoRG9jLFxuICBtZXRhZGF0YTogTWF0Y2hEYXRhW1wibWV0YWRhdGFcIl0sIC8vIHRlcm06IGZpZWxkOiBwb3NpdGlvbltdXG4gIHVzZVBhcmFncmFwaHM6IGJvb2xlYW5cbik6IHN0cmluZyB7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGxldCBwb3NpdGlvbnMgPSBuZXcgQXJyYXk8W251bWJlciwgbnVtYmVyXT4oKTtcblxuICBmb3IgKGNvbnN0IHRlcm1NZXRhZGF0YSBvZiBPYmplY3QudmFsdWVzKG1ldGFkYXRhKSkge1xuICAgIGlmICghdGVybU1ldGFkYXRhW21ldGFkYXRhS2V5XSkgY29udGludWU7XG4gICAgcG9zaXRpb25zID0gcG9zaXRpb25zLmNvbmNhdCh0ZXJtTWV0YWRhdGFbbWV0YWRhdGFLZXldLnBvc2l0aW9uKTtcbiAgfVxuICBwb3NpdGlvbnMuc29ydCgoYSwgYikgPT4gYVswXSAtIGJbMF0pO1xuXG4gIGxldCB0ZXh0SW5kZXggPSAwO1xuXG4gIGZ1bmN0aW9uIGdldE5leHRMaW5lKCk6IG51bGwgfCBTdWJzdHJpbmdMaW5lIHtcbiAgICBpZiAodGV4dEluZGV4ID49IHRleHQubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBsYkluZGV4ID0gdGV4dC5pbmRleE9mKFwiXFxuXCIsIHRleHRJbmRleCk7XG4gICAgY29uc3Qgb3JpZ2luYWxUZXh0SW5kZXggPSB0ZXh0SW5kZXg7XG4gICAgbGV0IHN1YnN0cmluZyA9IFwiXCI7XG4gICAgaWYgKGxiSW5kZXggPj0gMCkge1xuICAgICAgc3Vic3RyaW5nID0gdGV4dC5zbGljZSh0ZXh0SW5kZXgsIGxiSW5kZXgpO1xuICAgICAgdGV4dEluZGV4ID0gbGJJbmRleCArIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1YnN0cmluZyA9IHRleHQuc2xpY2UodGV4dEluZGV4KTtcbiAgICAgIHRleHRJbmRleCA9IHRleHQubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnRJbmNsdXNpdmU6IG9yaWdpbmFsVGV4dEluZGV4LFxuICAgICAgZW5kRXhjbHVzaXZlOiB0ZXh0SW5kZXgsXG4gICAgICB0ZXh0OiBzdWJzdHJpbmcsXG4gICAgfTtcbiAgfVxuXG4gIGlmICh1c2VQYXJhZ3JhcGhzKSB7XG4gICAgbGV0IG5leHRMaW5lID0gZ2V0TmV4dExpbmUoKTtcbiAgICB3aGlsZSAobmV4dExpbmUpIHtcbiAgICAgIC8vIFdBUk5JTkc6IE5eMiBBTEdPUklUSE0hXG4gICAgICBjb25zdCByZWxldmFudFBvc2l0aW9ucyA9IHBvc2l0aW9ucy5maWx0ZXIoXG4gICAgICAgIChwb3MpID0+XG4gICAgICAgICAgcG9zWzBdID49IG5leHRMaW5lIS5zdGFydEluY2x1c2l2ZSAmJiBwb3NbMF0gPCBuZXh0TGluZSEuZW5kRXhjbHVzaXZlXG4gICAgICApO1xuICAgICAgaWYgKHJlbGV2YW50UG9zaXRpb25zLmxlbmd0aClcbiAgICAgICAgcmVzdWx0LnB1c2goYDxwPiR7bGluZVRvSFRNTChuZXh0TGluZSwgcmVsZXZhbnRQb3NpdGlvbnMpfWApO1xuICAgICAgbmV4dExpbmUgPSBnZXROZXh0TGluZSgpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXN1bHQucHVzaChcbiAgICAgIGxpbmVUb0hUTUwoXG4gICAgICAgIHsgc3RhcnRJbmNsdXNpdmU6IDAsIGVuZEV4Y2x1c2l2ZTogdGV4dC5sZW5ndGgsIHRleHQgfSxcbiAgICAgICAgcG9zaXRpb25zXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQuam9pbihcIlxcblwiKTtcbn1cblxuZnVuY3Rpb24gbGluZVRvSFRNTChcbiAgbGluZTogU3Vic3RyaW5nTGluZSxcbiAgcG9zaXRpb25zOiBbbnVtYmVyLCBudW1iZXJdW11cbik6IHN0cmluZyB7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgbGV0IGxhc3RQbGFpbkluZGV4ID0gMDtcblxuICBmb3IgKGNvbnN0IFtzdGFydCwgbGVuXSBvZiBwb3NpdGlvbnMpIHtcbiAgICBjb25zdCBsb2NhbFN0YXJ0ID0gc3RhcnQgLSBsaW5lLnN0YXJ0SW5jbHVzaXZlO1xuICAgIGlmIChsb2NhbFN0YXJ0ID4gbGFzdFBsYWluSW5kZXgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGxpbmUudGV4dC5zbGljZShsYXN0UGxhaW5JbmRleCwgbG9jYWxTdGFydCkpO1xuICAgIH1cbiAgICByZXN1bHQucHVzaChcIjxtYXJrPlwiKTtcbiAgICByZXN1bHQucHVzaChsaW5lLnRleHQuc2xpY2UobG9jYWxTdGFydCwgbG9jYWxTdGFydCArIGxlbikpO1xuICAgIHJlc3VsdC5wdXNoKFwiPC9tYXJrPlwiKTtcbiAgICBsYXN0UGxhaW5JbmRleCA9IGxvY2FsU3RhcnQgKyBsZW47XG4gIH1cblxuICBpZiAobGFzdFBsYWluSW5kZXggPCBsaW5lLnRleHQubGVuZ3RoKSB7XG4gICAgcmVzdWx0LnB1c2gobGluZS50ZXh0LnNsaWNlKGxhc3RQbGFpbkluZGV4KSk7XG4gIH1cblxuICBpZiAoIXJlc3VsdC5sZW5ndGgpIHJldHVybiBcIlwiO1xuXG4gIHJldHVybiByZXN1bHQuam9pbihcIlwiKTtcbn1cblxud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJkai1vbmxvYWRcIiwgKCkgPT4ge1xuICBjb25zdCBpbnB1dEVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICBcIiNkai1zZWFyY2gtaW5wdXRcIlxuICApIGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsO1xuICBpZiAoIWlucHV0RWwpIHJldHVybjtcblxuICBjb25zdCByZXN1bHRFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgXCIjZGotc2VhcmNoLW1lbnUtcmVzdWx0c1wiXG4gICkhIGFzIEhUTUxEaXZFbGVtZW50O1xuICBpZiAoIXJlc3VsdEVsKSByZXR1cm47XG5cbiAgY29uc3QgcG9wb3ZlckVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICBcIiNkai1zZWFyY2gtbWVudVwiXG4gICkhIGFzIEhUTUxEaXZFbGVtZW50O1xuICBpZiAoIXBvcG92ZXJFbCkgcmV0dXJuO1xuXG4gIC8vIFRoZSBmbGV4IGNvbnRhaW5lciBzZWVtcyB0byBwcmV2ZW50IHRoZSBiYWNrZHJvcCBmcm9tIGdldHRpbmcgY2xpY2sgZXZlbnRzLiA6LShcbiAgLy8gU28ganVzdCBjbG9zZSB0aGUgZGFtbiB0aGluZyBvbiBjbGljay5cbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5ESlNlYXJjaE1lbnVfRmxleENvbnRhaW5lclwiKS5mb3JFYWNoKChmbGV4RWwpID0+IHtcbiAgICBmbGV4RWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICBpZiAoZS50YXJnZXQgIT09IGZsZXhFbCkgcmV0dXJuO1xuICAgICAgcG9wb3ZlckVsLmhpZGVQb3BvdmVyKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGNvbnN0IHdpbiA9IHdpbmRvdyBhcyB7XG4gICAgZGpTZWFyY2hJbmRleD86IHsgbmFtZTogc3RyaW5nOyB0ZXh0OiBzdHJpbmc7IHVybDogc3RyaW5nIH1bXTtcbiAgfTtcbiAgaWYgKCF3aW4uZGpTZWFyY2hJbmRleCkge1xuICAgIGNvbnNvbGUud2FybihcIlNlYXJjaCBpbmRleCBub3QgZm91bmRcIik7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IHNlYXJjaEluZGV4ID0gd2luLmRqU2VhcmNoSW5kZXg7XG5cbiAgY29uc3QgZG9jc0J5UmVmOiBSZWNvcmQ8c3RyaW5nLCBTZWFyY2hEb2M+ID0ge307XG5cbiAgY29uc3QgbCA9IGx1bnIoZnVuY3Rpb24gKCkge1xuICAgIHRoaXMucmVmKFwidXJsXCIpO1xuICAgIHRoaXMuZmllbGQoXCJuYW1lXCIpO1xuICAgIHRoaXMuZmllbGQoXCJ0ZXh0XCIpO1xuICAgIHRoaXMuZmllbGQoXCJ1cmxcIik7XG5cbiAgICB0aGlzLm1ldGFkYXRhV2hpdGVsaXN0ID0gW1wicG9zaXRpb25cIl07XG5cbiAgICBmb3IgKGNvbnN0IGRvYyBvZiBzZWFyY2hJbmRleCkge1xuICAgICAgdGhpcy5hZGQoZG9jKTtcbiAgICAgIGRvY3NCeVJlZltkb2MudXJsXSA9IGRvYztcbiAgICB9XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGRlYm91bmNlKFxuICAgIGZ1bmM6IEZ1bmN0aW9uLFxuICAgIHdhaXQ6IG51bWJlcixcbiAgICBpbW1lZGlhdGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBhbHdheXNJbW1lZGlhdGVDYWxsYmFjaz86ICgpID0+IHZvaWRcbiAgKTogdHlwZW9mIGZ1bmMge1xuICAgIGxldCB0aW1lb3V0OiBhbnkgfCBudWxsID0gbnVsbDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRoaXM6IHVua25vd24pIHtcbiAgICAgIGxldCBjb250ZXh0ID0gdGhpcztcbiAgICAgIGxldCBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgbGV0IGxhdGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgaWYgKCFpbW1lZGlhdGUpIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICB9O1xuICAgICAgbGV0IGNhbGxOb3cgPSBpbW1lZGlhdGUgJiYgIXRpbWVvdXQ7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dCEpO1xuICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQobGF0ZXIsIHdhaXQpO1xuICAgICAgaWYgKGFsd2F5c0ltbWVkaWF0ZUNhbGxiYWNrKSBhbHdheXNJbW1lZGlhdGVDYWxsYmFjaygpO1xuICAgICAgaWYgKGNhbGxOb3cpIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGRlYm91bmNlZFNlYXJjaGVyID0gZGVib3VuY2UoKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICBkb1NlYXJjaChkb2NzQnlSZWYsIGwsIHF1ZXJ5LCByZXN1bHRFbCk7XG4gIH0sIDUwMCk7XG5cbiAgLy8gdXNlICdpbnB1dCcgZm9yIGtleXN0cm9rZXMsICdjaGFuZ2UnIGZvciBlbnRlciBvciB1bmZvY3VzXG4gIGlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIChlKSA9PiB7XG4gICAgZGVib3VuY2VkU2VhcmNoZXIoKGUudGFyZ2V0ISBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSk7XG4gIH0pO1xuXG4gIChcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLkRKT3BlblNlYXJjaEJ1dHRvblwiKSEgYXMgSFRNTEJ1dHRvbkVsZW1lbnRcbiAgKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgcG9wb3ZlckVsLnNob3dQb3BvdmVyKCk7XG4gICAgaW5wdXRFbC5mb2N1cygpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcblxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgKGUpID0+IHtcbiAgICBpZiAocG9wb3ZlckVsLm1hdGNoZXMoXCI6cG9wb3Zlci1vcGVuXCIpKSByZXR1cm47XG4gICAgaWYgKGUua2V5ID09PSBcIi9cIikge1xuICAgICAgcG9wb3ZlckVsLnNob3dQb3BvdmVyKCk7XG4gICAgICBpbnB1dEVsLmZvY3VzKCk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9KTtcbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIChlKSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICBwb3BvdmVyRWwuaGlkZVBvcG92ZXIoKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiZ1pBTUEsU0FBVSxFQUFHLENBZ0NYLElBQUksVUFBZ0IsQ0FBQyxFQUFRLENBQzNCLElBQUksRUFBVSxJQUFJLEVBQUssUUFPdkIsT0FMQSxFQUFRLFNBQVMsSUFBSSxFQUFLLFFBQVMsRUFBSyxlQUFnQixFQUFLLE9BQU8sRUFFcEUsRUFBUSxlQUFlLElBQUksRUFBSyxPQUFPLEVBRXZDLEVBQU8sS0FBSyxFQUFTLENBQU8sRUFDckIsRUFBUSxNQUFNLEdBR3ZCLEVBQUssUUFBVSxRQVVmO0FBQUE7QUFBQTtBQUFBLE9BQUssTUFBUSxDQUFDLEVBU2QsRUFBSyxNQUFNLGFBQWlCLENBQUMsRUFBUSxDQUVuQyxlQUFnQixDQUFDLEVBQVMsQ0FDeEIsR0FBSSxFQUFPLFNBQVcsUUFBUSxLQUM1QixRQUFRLEtBQUssQ0FBTyxJQUl2QixJQUFJLEVBYVAsRUFBSyxNQUFNLGlCQUFvQixDQUFDLEVBQUssQ0FDbkMsR0FBSSxJQUFhLFFBQUssSUFBUSxLQUM1QixNQUFPLE9BRVAsUUFBTyxFQUFJLFNBQVMsR0FvQnhCLEVBQUssTUFBTSxjQUFpQixDQUFDLEVBQUssQ0FDaEMsR0FBSSxJQUFRLE1BQVEsSUFBUSxPQUMxQixPQUFPLEVBR1QsSUFBSSxFQUFRLE9BQU8sT0FBTyxJQUFJLEVBQzVCLEVBQU8sT0FBTyxLQUFLLENBQUcsRUFFeEIsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFLLE9BQVEsSUFBSyxDQUNwQyxJQUFJLEVBQU0sRUFBSyxHQUNiLEVBQU0sRUFBSSxHQUVaLEdBQUksTUFBTSxRQUFRLENBQUcsRUFBRyxDQUN0QixFQUFNLEdBQU8sRUFBSSxNQUFNLEVBQ3ZCLFNBR0YsVUFDUyxJQUFRLGlCQUNSLElBQVEsaUJBQ1IsSUFBUSxVQUNmLENBQ0EsRUFBTSxHQUFPLEVBQ2IsU0FHRixNQUFNLElBQUksVUFDUix1REFDRixFQUdGLE9BQU8sR0FFVCxFQUFLLGlCQUFvQixDQUFDLEVBQVEsRUFBVyxFQUFhLENBQ3hELEtBQUssT0FBUyxFQUNkLEtBQUssVUFBWSxFQUNqQixLQUFLLGFBQWUsR0FHdEIsRUFBSyxTQUFTLE9BQVMsSUFFdkIsRUFBSyxTQUFTLG1CQUFzQixDQUFDLEVBQUcsQ0FDdEMsSUFBSSxFQUFJLEVBQUUsUUFBUSxFQUFLLFNBQVMsTUFBTSxFQUV0QyxHQUFJLElBQU0sR0FDUixLQUFNLDZCQUdSLElBQUksRUFBVyxFQUFFLE1BQU0sRUFBRyxDQUFDLEVBQ3pCLEVBQVMsRUFBRSxNQUFNLEVBQUksQ0FBQyxFQUV4QixPQUFPLElBQUksRUFBSyxTQUFTLEVBQVEsRUFBVSxDQUFDLEdBRzlDLEVBQUssU0FBUyxVQUFVLGlCQUFvQixFQUFHLENBQzdDLEdBQUksS0FBSyxjQUFnQixLQUN2QixLQUFLLGFBQWUsS0FBSyxVQUFZLEVBQUssU0FBUyxPQUFTLEtBQUssT0FHbkUsT0FBTyxLQUFLLGNBWWQ7QUFBQTtBQUFBO0FBQUEsT0FBSyxZQUFlLENBQUMsRUFBVSxDQUc3QixHQUZBLEtBQUssU0FBVyxPQUFPLE9BQU8sSUFBSSxFQUU5QixFQUFVLENBQ1osS0FBSyxPQUFTLEVBQVMsT0FFdkIsUUFBUyxFQUFJLEVBQUcsRUFBSSxLQUFLLE9BQVEsSUFDL0IsS0FBSyxTQUFTLEVBQVMsSUFBTSxPQUcvQixNQUFLLE9BQVMsR0FXbEIsRUFBSyxJQUFJLFNBQVcsQ0FDbEIsa0JBQW9CLENBQUMsRUFBTyxDQUMxQixPQUFPLEdBR1QsY0FBZ0IsRUFBRyxDQUNqQixPQUFPLE1BR1QsaUJBQW1CLEVBQUcsQ0FDcEIsTUFBTyxHQUVYLEVBU0EsRUFBSyxJQUFJLE1BQVEsQ0FDZixrQkFBb0IsRUFBRyxDQUNyQixPQUFPLE1BR1QsY0FBZ0IsQ0FBQyxFQUFPLENBQ3RCLE9BQU8sR0FHVCxpQkFBbUIsRUFBRyxDQUNwQixNQUFPLEdBRVgsRUFRQSxFQUFLLElBQUksVUFBVSxpQkFBb0IsQ0FBQyxFQUFRLENBQzlDLFFBQVMsS0FBSyxTQUFTLElBV3pCLEVBQUssSUFBSSxVQUFVLGtCQUFxQixDQUFDLEVBQU8sQ0FDOUMsSUFBSSxFQUNGLEVBQ0EsRUFDQSxFQUFlLENBQUMsRUFFbEIsR0FBSSxJQUFVLEVBQUssSUFBSSxTQUNyQixPQUFPLEtBR1QsR0FBSSxJQUFVLEVBQUssSUFBSSxNQUNyQixPQUFPLEVBR1QsR0FBSSxLQUFLLE9BQVMsRUFBTSxPQUN0QixFQUFJLEtBQ0osRUFBSSxNQUVKLEdBQUksRUFDSixFQUFJLEtBR04sRUFBVyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBRWpDLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBUyxPQUFRLElBQUssQ0FDeEMsSUFBSSxFQUFVLEVBQVMsR0FDdkIsR0FBSSxLQUFXLEVBQUUsU0FDZixFQUFhLEtBQUssQ0FBTyxFQUk3QixPQUFPLElBQUksRUFBSyxJQUFJLENBQVksR0FVbEMsRUFBSyxJQUFJLFVBQVUsY0FBaUIsQ0FBQyxFQUFPLENBQzFDLEdBQUksSUFBVSxFQUFLLElBQUksU0FDckIsT0FBTyxFQUFLLElBQUksU0FHbEIsR0FBSSxJQUFVLEVBQUssSUFBSSxNQUNyQixPQUFPLEtBR1QsT0FBTyxJQUFJLEVBQUssSUFDZCxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsT0FBTyxPQUFPLEtBQUssRUFBTSxRQUFRLENBQUMsQ0FDL0QsR0FVRixFQUFLLFlBQWUsQ0FBQyxFQUFTLEVBQWUsQ0FDM0MsSUFBSSxFQUFvQixFQUV4QixRQUFTLEtBQWEsRUFBUyxDQUM3QixHQUFJLEdBQWEsU0FBVSxTQUMzQixHQUFxQixPQUFPLEtBQUssRUFBUSxFQUFVLEVBQUUsT0FHdkQsSUFBSSxHQUNELEVBQWdCLEVBQW9CLE1BQVEsRUFBb0IsS0FFbkUsT0FBTyxLQUFLLElBQUksRUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLEdBV2pDLEVBQUssY0FBaUIsQ0FBQyxFQUFLLEVBQVUsQ0FDcEMsS0FBSyxJQUFNLEdBQU8sR0FDbEIsS0FBSyxTQUFXLEdBQVksQ0FBQyxHQVEvQixFQUFLLE1BQU0sVUFBVSxpQkFBb0IsRUFBRyxDQUMxQyxPQUFPLEtBQUssS0F1QmQsRUFBSyxNQUFNLFVBQVUsZUFBa0IsQ0FBQyxFQUFJLENBRTFDLE9BREEsS0FBSyxJQUFNLEVBQUcsS0FBSyxJQUFLLEtBQUssUUFBUSxFQUM5QixNQVVULEVBQUssTUFBTSxVQUFVLGNBQWlCLENBQUMsRUFBSSxDQU16QyxPQUxBLEVBQ0UsV0FDUyxDQUFDLEVBQUcsQ0FDWCxPQUFPLEdBRUosSUFBSSxFQUFLLE1BQU0sRUFBRyxLQUFLLElBQUssS0FBSyxRQUFRLEVBQUcsS0FBSyxRQUFRLEdBeUJsRTtBQUFBO0FBQUE7QUFBQSxPQUFLLGtCQUFxQixDQUFDLEVBQUssRUFBVSxDQUN4QyxHQUFJLEdBQU8sTUFBUSxHQUFPLEtBQ3hCLE1BQU8sQ0FBQyxFQUdWLEdBQUksTUFBTSxRQUFRLENBQUcsRUFDbkIsT0FBTyxFQUFJLFlBQWEsQ0FBQyxFQUFHLENBQzFCLE9BQU8sSUFBSSxFQUFLLE1BQ2QsRUFBSyxNQUFNLFNBQVMsQ0FBQyxFQUFFLFlBQVksRUFDbkMsRUFBSyxNQUFNLE1BQU0sQ0FBUSxDQUMzQixFQUNELEVBR0gsSUFBSSxFQUFNLEVBQUksU0FBUyxFQUFFLFlBQVksRUFDbkMsRUFBTSxFQUFJLE9BQ1YsRUFBUyxDQUFDLEVBRVosUUFBUyxFQUFXLEVBQUcsRUFBYSxFQUFHLEdBQVksRUFBSyxJQUFZLENBQ2xFLElBQUksRUFBTyxFQUFJLE9BQU8sQ0FBUSxFQUM1QixFQUFjLEVBQVcsRUFFM0IsR0FBSSxFQUFLLE1BQU0sRUFBSyxVQUFVLFNBQVMsR0FBSyxHQUFZLEVBQUssQ0FDM0QsR0FBSSxFQUFjLEVBQUcsQ0FDbkIsSUFBSSxFQUFnQixFQUFLLE1BQU0sTUFBTSxDQUFRLEdBQUssQ0FBQyxFQUNuRCxFQUFjLFNBQWMsQ0FBQyxFQUFZLENBQVcsRUFDcEQsRUFBYyxNQUFXLEVBQU8sT0FFaEMsRUFBTyxLQUNMLElBQUksRUFBSyxNQUFNLEVBQUksTUFBTSxFQUFZLENBQVEsRUFBRyxDQUFhLENBQy9ELEVBR0YsRUFBYSxFQUFXLEdBSTVCLE9BQU8sR0FVVCxFQUFLLFVBQVUsVUFBWSxVQW1DM0I7QUFBQTtBQUFBO0FBQUEsT0FBSyxpQkFBb0IsRUFBRyxDQUMxQixLQUFLLE9BQVMsQ0FBQyxHQUdqQixFQUFLLFNBQVMsb0JBQXNCLE9BQU8sT0FBTyxJQUFJLEVBbUN0RCxFQUFLLFNBQVMseUJBQTRCLENBQUMsRUFBSSxFQUFPLENBQ3BELEdBQUksS0FBUyxLQUFLLG9CQUNoQixFQUFLLE1BQU0sS0FBSyw2Q0FBK0MsQ0FBSyxFQUd0RSxFQUFHLE1BQVEsRUFDWCxFQUFLLFNBQVMsb0JBQW9CLEVBQUcsT0FBUyxHQVNoRCxFQUFLLFNBQVMsb0NBQXVDLENBQUMsRUFBSSxDQUN4RCxJQUFJLEVBQWUsRUFBRyxPQUFTLEVBQUcsU0FBUyxLQUFLLG9CQUVoRCxJQUFLLEVBQ0gsRUFBSyxNQUFNLEtBQ1Qsa0dBQ0EsQ0FDRixHQWNKLEVBQUssU0FBUyxhQUFnQixDQUFDLEVBQVksQ0FDekMsSUFBSSxFQUFXLElBQUksRUFBSyxTQVl4QixPQVZBLEVBQVcsZ0JBQWlCLENBQUMsRUFBUSxDQUNuQyxJQUFJLEVBQUssRUFBSyxTQUFTLG9CQUFvQixHQUUzQyxHQUFJLEVBQ0YsRUFBUyxJQUFJLENBQUUsTUFFZixPQUFNLElBQUksTUFBTSxzQ0FBd0MsQ0FBTSxFQUVqRSxFQUVNLEdBVVQsRUFBSyxTQUFTLFVBQVUsWUFBZSxFQUFHLENBQ3hDLElBQUksRUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFNBQVMsRUFFOUMsRUFBSSxnQkFBaUIsQ0FBQyxFQUFJLENBQ3hCLEVBQUssU0FBUyw0QkFBNEIsQ0FBRSxFQUM1QyxLQUFLLE9BQU8sS0FBSyxDQUFFLEdBQ2xCLElBQUksR0FZVCxFQUFLLFNBQVMsVUFBVSxjQUFpQixDQUFDLEVBQVksRUFBTyxDQUMzRCxFQUFLLFNBQVMsNEJBQTRCLENBQUssRUFFL0MsSUFBSSxFQUFNLEtBQUssT0FBTyxRQUFRLENBQVUsRUFDeEMsR0FBSSxHQUFPLEdBQ1QsTUFBTSxJQUFJLE1BQU0sd0JBQXdCLEVBRzFDLEVBQU0sRUFBTSxFQUNaLEtBQUssT0FBTyxPQUFPLEVBQUssRUFBRyxDQUFLLEdBWWxDLEVBQUssU0FBUyxVQUFVLGVBQWtCLENBQUMsRUFBWSxFQUFPLENBQzVELEVBQUssU0FBUyw0QkFBNEIsQ0FBSyxFQUUvQyxJQUFJLEVBQU0sS0FBSyxPQUFPLFFBQVEsQ0FBVSxFQUN4QyxHQUFJLEdBQU8sR0FDVCxNQUFNLElBQUksTUFBTSx3QkFBd0IsRUFHMUMsS0FBSyxPQUFPLE9BQU8sRUFBSyxFQUFHLENBQUssR0FRbEMsRUFBSyxTQUFTLFVBQVUsZUFBa0IsQ0FBQyxFQUFJLENBQzdDLElBQUksRUFBTSxLQUFLLE9BQU8sUUFBUSxDQUFFLEVBQ2hDLEdBQUksR0FBTyxHQUNULE9BR0YsS0FBSyxPQUFPLE9BQU8sRUFBSyxDQUFDLEdBVTNCLEVBQUssU0FBUyxVQUFVLFlBQWUsQ0FBQyxFQUFRLENBQzlDLElBQUksRUFBYyxLQUFLLE9BQU8sT0FFOUIsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFhLElBQUssQ0FDcEMsSUFBSSxFQUFLLEtBQUssT0FBTyxHQUNqQixFQUFPLENBQUMsRUFFWixRQUFTLEVBQUksRUFBRyxFQUFJLEVBQU8sT0FBUSxJQUFLLENBQ3RDLElBQUksRUFBUyxFQUFHLEVBQU8sR0FBSSxFQUFHLENBQU0sRUFFcEMsR0FBSSxJQUFXLE1BQVEsSUFBZ0IsUUFBSyxJQUFXLEdBQUksU0FFM0QsR0FBSSxNQUFNLFFBQVEsQ0FBTSxFQUN0QixRQUFTLEVBQUksRUFBRyxFQUFJLEVBQU8sT0FBUSxJQUNqQyxFQUFLLEtBQUssRUFBTyxFQUFFLE1BR3JCLEdBQUssS0FBSyxDQUFNLEVBSXBCLEVBQVMsRUFHWCxPQUFPLEdBYVQsRUFBSyxTQUFTLFVBQVUsa0JBQXFCLENBQUMsRUFBSyxFQUFVLENBQzNELElBQUksRUFBUSxJQUFJLEVBQUssTUFBTSxFQUFLLENBQVEsRUFFeEMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFLLENBQUMsRUFBRSxZQUFhLENBQUMsRUFBRyxDQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUNuQixHQU9ILEVBQUssU0FBUyxVQUFVLGNBQWlCLEVBQUcsQ0FDMUMsS0FBSyxPQUFTLENBQUMsR0FVakIsRUFBSyxTQUFTLFVBQVUsZUFBa0IsRUFBRyxDQUMzQyxPQUFPLEtBQUssT0FBTyxZQUFhLENBQUMsRUFBSSxDQUduQyxPQUZBLEVBQUssU0FBUyw0QkFBNEIsQ0FBRSxFQUVyQyxFQUFHLE1BQ1gsR0F1Qkg7QUFBQTtBQUFBO0FBQUEsT0FBSyxlQUFrQixDQUFDLEVBQVUsQ0FDaEMsS0FBSyxXQUFhLEVBQ2xCLEtBQUssU0FBVyxHQUFZLENBQUMsR0FhL0IsRUFBSyxPQUFPLFVBQVUseUJBQTRCLENBQUMsRUFBTyxDQUV4RCxHQUFJLEtBQUssU0FBUyxRQUFVLEVBQzFCLE1BQU8sR0FHVCxJQUFJLEVBQVEsRUFDVixFQUFNLEtBQUssU0FBUyxPQUFTLEVBQzdCLEVBQWMsRUFBTSxFQUNwQixFQUFhLEtBQUssTUFBTSxFQUFjLENBQUMsRUFDdkMsRUFBYSxLQUFLLFNBQVMsRUFBYSxHQUUxQyxNQUFPLEVBQWMsRUFBRyxDQUN0QixHQUFJLEVBQWEsRUFDZixFQUFRLEVBR1YsR0FBSSxFQUFhLEVBQ2YsRUFBTSxFQUdSLEdBQUksR0FBYyxFQUNoQixNQUdGLEVBQWMsRUFBTSxFQUNwQixFQUFhLEVBQVEsS0FBSyxNQUFNLEVBQWMsQ0FBQyxFQUMvQyxFQUFhLEtBQUssU0FBUyxFQUFhLEdBRzFDLEdBQUksR0FBYyxFQUNoQixPQUFPLEVBQWEsRUFHdEIsR0FBSSxFQUFhLEVBQ2YsT0FBTyxFQUFhLEVBR3RCLEdBQUksRUFBYSxFQUNmLE9BQVEsRUFBYSxHQUFLLEdBYTlCLEVBQUssT0FBTyxVQUFVLGVBQWtCLENBQUMsRUFBVyxFQUFLLENBQ3ZELEtBQUssT0FBTyxFQUFXLFVBQWMsRUFBRyxDQUN0QyxLQUFNLGtCQUNQLEdBV0gsRUFBSyxPQUFPLFVBQVUsZUFBa0IsQ0FBQyxFQUFXLEVBQUssRUFBSSxDQUMzRCxLQUFLLFdBQWEsRUFDbEIsSUFBSSxFQUFXLEtBQUssaUJBQWlCLENBQVMsRUFFOUMsR0FBSSxLQUFLLFNBQVMsSUFBYSxFQUM3QixLQUFLLFNBQVMsRUFBVyxHQUFLLEVBQUcsS0FBSyxTQUFTLEVBQVcsR0FBSSxDQUFHLE1BRWpFLE1BQUssU0FBUyxPQUFPLEVBQVUsRUFBRyxFQUFXLENBQUcsR0FTcEQsRUFBSyxPQUFPLFVBQVUsa0JBQXFCLEVBQUcsQ0FDNUMsR0FBSSxLQUFLLFdBQVksT0FBTyxLQUFLLFdBRWpDLElBQUksRUFBZSxFQUNqQixFQUFpQixLQUFLLFNBQVMsT0FFakMsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFnQixHQUFLLEVBQUcsQ0FDMUMsSUFBSSxFQUFNLEtBQUssU0FBUyxHQUN4QixHQUFnQixFQUFNLEVBR3hCLE9BQVEsS0FBSyxXQUFhLEtBQUssS0FBSyxDQUFZLEdBU2xELEVBQUssT0FBTyxVQUFVLFlBQWUsQ0FBQyxFQUFhLENBQ2pELElBQUksRUFBYSxFQUNmLEVBQUksS0FBSyxTQUNULEVBQUksRUFBWSxTQUNoQixFQUFPLEVBQUUsT0FDVCxFQUFPLEVBQUUsT0FDVCxFQUFPLEVBQ1AsRUFBTyxFQUNQLEVBQUksRUFDSixFQUFJLEVBRU4sTUFBTyxFQUFJLEdBQVEsRUFBSSxFQUVyQixHQURDLEVBQU8sRUFBRSxHQUFNLEVBQU8sRUFBRSxHQUNyQixFQUFPLEVBQ1QsR0FBSyxVQUNJLEVBQU8sRUFDaEIsR0FBSyxVQUNJLEdBQVEsRUFDakIsR0FBYyxFQUFFLEVBQUksR0FBSyxFQUFFLEVBQUksR0FDL0IsR0FBSyxFQUNMLEdBQUssRUFJVCxPQUFPLEdBVVQsRUFBSyxPQUFPLFVBQVUsbUJBQXNCLENBQUMsRUFBYSxDQUN4RCxPQUFPLEtBQUssSUFBSSxDQUFXLEVBQUksS0FBSyxVQUFVLEdBQUssR0FRckQsRUFBSyxPQUFPLFVBQVUsZ0JBQW1CLEVBQUcsQ0FDMUMsSUFBSSxFQUFTLElBQUksTUFBTSxLQUFLLFNBQVMsT0FBUyxDQUFDLEVBRS9DLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBRyxFQUFJLEtBQUssU0FBUyxPQUFRLEdBQUssRUFBRyxJQUN2RCxFQUFPLEdBQUssS0FBSyxTQUFTLEdBRzVCLE9BQU8sR0FRVCxFQUFLLE9BQU8sVUFBVSxlQUFrQixFQUFHLENBQ3pDLE9BQU8sS0FBSyxVQW9CZDtBQUFBO0FBQUE7QUFBQTtBQUFBLE9BQUssZ0JBQW9CLEVBQUcsQ0FDMUIsSUFBSSxFQUFZLENBQ1osUUFBUyxNQUNULE9BQVEsT0FDUixLQUFNLE9BQ04sS0FBTSxPQUNOLEtBQU0sTUFDTixJQUFLLE1BQ0wsS0FBTSxLQUNOLE1BQU8sTUFDUCxJQUFLLElBQ0wsTUFBTyxNQUNQLFFBQVMsTUFDVCxNQUFPLE1BQ1AsS0FBTSxNQUNOLE1BQU8sS0FDUCxRQUFTLE1BQ1QsUUFBUyxNQUNULFFBQVMsTUFDVCxNQUFPLEtBQ1AsTUFBTyxNQUNQLE9BQVEsTUFDUixLQUFNLEtBQ1IsRUFDQSxFQUFZLENBQ1YsTUFBTyxLQUNQLE1BQU8sR0FDUCxNQUFPLEtBQ1AsTUFBTyxLQUNQLEtBQU0sS0FDTixJQUFLLEdBQ0wsS0FBTSxFQUNSLEVBQ0EsRUFBSSxXQUNKLEVBQUksV0FDSixFQUFJLEVBQUksYUFDUixFQUFJLEVBQUksV0FDUixFQUFPLEtBQU8sRUFBSSxLQUFPLEVBQUksRUFDN0IsRUFBTyxLQUFPLEVBQUksS0FBTyxFQUFJLEVBQUksSUFBTSxFQUFJLE1BQzNDLEVBQU8sS0FBTyxFQUFJLEtBQU8sRUFBSSxFQUFJLEVBQUksRUFDckMsRUFBTSxLQUFPLEVBQUksS0FBTyxFQUV0QixFQUFVLElBQUksT0FBTyxDQUFJLEVBQ3pCLEVBQVUsSUFBSSxPQUFPLENBQUksRUFDekIsRUFBVSxJQUFJLE9BQU8sQ0FBSSxFQUN6QixFQUFTLElBQUksT0FBTyxDQUFHLEVBRXZCLEVBQVEsa0JBQ1IsRUFBUyxpQkFDVCxFQUFRLGFBQ1IsRUFBUyxrQkFDVCxFQUFVLEtBQ1YsRUFBVyxjQUNYLEVBQVcsSUFBSSxPQUFPLG9CQUFvQixFQUMxQyxFQUFXLElBQUksT0FBTyxJQUFNLEVBQUksRUFBSSxjQUFjLEVBRWxELEVBQVEsbUJBQ1IsRUFDRiwySUFFRSxFQUFPLGlEQUVQLEVBQ0Ysc0ZBQ0UsRUFBUSxvQkFFUixFQUFPLFdBQ1AsRUFBUyxNQUNULEVBQVEsSUFBSSxPQUFPLElBQU0sRUFBSSxFQUFJLGNBQWMsRUFFL0MsV0FBeUIsQ0FBYSxDQUFDLEVBQUcsQ0FDNUMsSUFBSSxFQUFNLEVBQVEsRUFBUyxFQUFJLEVBQUssRUFBSyxFQUV6QyxHQUFJLEVBQUUsT0FBUyxFQUNiLE9BQU8sRUFJVCxHQURBLEVBQVUsRUFBRSxPQUFPLEVBQUcsQ0FBQyxFQUNuQixHQUFXLElBQ2IsRUFBSSxFQUFRLFlBQVksRUFBSSxFQUFFLE9BQU8sQ0FBQyxFQU94QyxHQUhBLEVBQUssRUFDTCxFQUFNLEVBRUYsRUFBRyxLQUFLLENBQUMsRUFDWCxFQUFJLEVBQUUsUUFBUSxFQUFJLE1BQU0sVUFDZixFQUFJLEtBQUssQ0FBQyxFQUNuQixFQUFJLEVBQUUsUUFBUSxFQUFLLE1BQU0sRUFNM0IsR0FGQSxFQUFLLEVBQ0wsRUFBTSxFQUNGLEVBQUcsS0FBSyxDQUFDLEVBQUcsQ0FDZCxJQUFJLEVBQUssRUFBRyxLQUFLLENBQUMsRUFFbEIsR0FEQSxFQUFLLEVBQ0QsRUFBRyxLQUFLLEVBQUcsRUFBRSxFQUNmLEVBQUssRUFDTCxFQUFJLEVBQUUsUUFBUSxFQUFJLEVBQUUsVUFFYixFQUFJLEtBQUssQ0FBQyxFQUFHLENBQ3RCLElBQUksRUFBSyxFQUFJLEtBQUssQ0FBQyxFQUduQixHQUZBLEVBQU8sRUFBRyxHQUNWLEVBQU0sRUFDRixFQUFJLEtBQUssQ0FBSSxHQUtmLEdBSkEsRUFBSSxFQUNKLEVBQU0sRUFDTixFQUFNLEVBQ04sRUFBTSxFQUNGLEVBQUksS0FBSyxDQUFDLEVBQ1osRUFBSSxFQUFJLFlBQ0MsRUFBSSxLQUFLLENBQUMsRUFDbkIsRUFBSyxFQUNMLEVBQUksRUFBRSxRQUFRLEVBQUksRUFBRSxVQUNYLEVBQUksS0FBSyxDQUFDLEVBQ25CLEVBQUksRUFBSSxLQU9kLEdBREEsRUFBSyxFQUNELEVBQUcsS0FBSyxDQUFDLEVBQUcsQ0FDZCxJQUFJLEVBQUssRUFBRyxLQUFLLENBQUMsRUFDbEIsRUFBTyxFQUFHLEdBQ1YsRUFBSSxFQUFPLElBS2IsR0FEQSxFQUFLLEVBQ0QsRUFBRyxLQUFLLENBQUMsRUFBRyxDQUNkLElBQUksRUFBSyxFQUFHLEtBQUssQ0FBQyxFQUlsQixHQUhBLEVBQU8sRUFBRyxHQUNWLEVBQVMsRUFBRyxHQUNaLEVBQUssRUFDRCxFQUFHLEtBQUssQ0FBSSxFQUNkLEVBQUksRUFBTyxFQUFVLEdBTXpCLEdBREEsRUFBSyxFQUNELEVBQUcsS0FBSyxDQUFDLEVBQUcsQ0FDZCxJQUFJLEVBQUssRUFBRyxLQUFLLENBQUMsRUFJbEIsR0FIQSxFQUFPLEVBQUcsR0FDVixFQUFTLEVBQUcsR0FDWixFQUFLLEVBQ0QsRUFBRyxLQUFLLENBQUksRUFDZCxFQUFJLEVBQU8sRUFBVSxHQU96QixHQUZBLEVBQUssRUFDTCxFQUFNLEVBQ0YsRUFBRyxLQUFLLENBQUMsRUFBRyxDQUNkLElBQUksRUFBSyxFQUFHLEtBQUssQ0FBQyxFQUdsQixHQUZBLEVBQU8sRUFBRyxHQUNWLEVBQUssRUFDRCxFQUFHLEtBQUssQ0FBSSxFQUNkLEVBQUksVUFFRyxFQUFJLEtBQUssQ0FBQyxFQUFHLENBQ3RCLElBQUksRUFBSyxFQUFJLEtBQUssQ0FBQyxFQUduQixHQUZBLEVBQU8sRUFBRyxHQUFLLEVBQUcsR0FDbEIsRUFBTSxFQUNGLEVBQUksS0FBSyxDQUFJLEVBQ2YsRUFBSSxFQU1SLEdBREEsRUFBSyxFQUNELEVBQUcsS0FBSyxDQUFDLEVBQUcsQ0FDZCxJQUFJLEVBQUssRUFBRyxLQUFLLENBQUMsRUFLbEIsR0FKQSxFQUFPLEVBQUcsR0FDVixFQUFLLEVBQ0wsRUFBTSxFQUNOLEVBQU0sRUFDRixFQUFHLEtBQUssQ0FBSSxHQUFNLEVBQUksS0FBSyxDQUFJLElBQU0sRUFBSSxLQUFLLENBQUksRUFDcEQsRUFBSSxFQU1SLEdBRkEsRUFBSyxFQUNMLEVBQU0sRUFDRixFQUFHLEtBQUssQ0FBQyxHQUFLLEVBQUksS0FBSyxDQUFDLEVBQzFCLEVBQUssRUFDTCxFQUFJLEVBQUUsUUFBUSxFQUFJLEVBQUUsRUFLdEIsR0FBSSxHQUFXLElBQ2IsRUFBSSxFQUFRLFlBQVksRUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUd4QyxPQUFPLEdBR1QsZUFBZ0IsQ0FBQyxFQUFPLENBQ3RCLE9BQU8sRUFBTSxPQUFPLENBQWEsSUFFbEMsRUFFSCxFQUFLLFNBQVMsaUJBQWlCLEVBQUssUUFBUyxTQUFTLEVBbUJ0RDtBQUFBO0FBQUE7QUFBQSxPQUFLLCtCQUFrQyxDQUFDLEVBQVcsQ0FDakQsSUFBSSxFQUFRLEVBQVUsZUFBZ0IsQ0FBQyxFQUFNLEVBQVUsQ0FFckQsT0FEQSxFQUFLLEdBQVksRUFDVixHQUNOLENBQUMsQ0FBQyxFQUVMLGVBQWdCLENBQUMsRUFBTyxDQUN0QixHQUFJLEdBQVMsRUFBTSxFQUFNLFNBQVMsS0FBTyxFQUFNLFNBQVMsRUFBRyxPQUFPLElBaUJ0RSxFQUFLLGVBQWlCLEVBQUssdUJBQXVCLENBQ2hELElBQ0EsT0FDQSxRQUNBLFNBQ0EsUUFDQSxNQUNBLFNBQ0EsT0FDQSxLQUNBLFFBQ0EsS0FDQSxNQUNBLE1BQ0EsTUFDQSxLQUNBLEtBQ0EsS0FDQSxVQUNBLE9BQ0EsTUFDQSxLQUNBLE1BQ0EsU0FDQSxRQUNBLE9BQ0EsTUFDQSxLQUNBLE9BQ0EsU0FDQSxPQUNBLE9BQ0EsUUFDQSxNQUNBLE9BQ0EsTUFDQSxNQUNBLE1BQ0EsTUFDQSxPQUNBLEtBQ0EsTUFDQSxPQUNBLE1BQ0EsTUFDQSxNQUNBLFVBQ0EsSUFDQSxLQUNBLEtBQ0EsT0FDQSxLQUNBLEtBQ0EsTUFDQSxPQUNBLFFBQ0EsTUFDQSxPQUNBLFNBQ0EsTUFDQSxLQUNBLFFBQ0EsT0FDQSxPQUNBLEtBQ0EsVUFDQSxLQUNBLE1BQ0EsTUFDQSxLQUNBLE1BQ0EsUUFDQSxLQUNBLE9BQ0EsS0FDQSxRQUNBLE1BQ0EsTUFDQSxTQUNBLE9BQ0EsTUFDQSxPQUNBLE1BQ0EsU0FDQSxRQUNBLEtBQ0EsT0FDQSxPQUNBLE9BQ0EsTUFDQSxRQUNBLE9BQ0EsT0FDQSxRQUNBLFFBQ0EsT0FDQSxPQUNBLE1BQ0EsS0FDQSxNQUNBLE9BQ0EsS0FDQSxRQUNBLE1BQ0EsS0FDQSxPQUNBLE9BQ0EsT0FDQSxRQUNBLFFBQ0EsUUFDQSxNQUNBLE9BQ0EsTUFDQSxPQUNBLE9BQ0EsUUFDQSxNQUNBLE1BQ0EsTUFDRixDQUFDLEVBRUQsRUFBSyxTQUFTLGlCQUFpQixFQUFLLGVBQWdCLGdCQUFnQixFQXFCcEU7QUFBQTtBQUFBO0FBQUEsT0FBSyxnQkFBbUIsQ0FBQyxFQUFPLENBQzlCLE9BQU8sRUFBTSxlQUFnQixDQUFDLEVBQUcsQ0FDL0IsT0FBTyxFQUFFLFFBQVEsT0FBUSxFQUFFLEVBQUUsUUFBUSxPQUFRLEVBQUUsRUFDaEQsR0FHSCxFQUFLLFNBQVMsaUJBQWlCLEVBQUssUUFBUyxTQUFTLEVBMkJ0RDtBQUFBO0FBQUE7QUFBQSxPQUFLLGlCQUFvQixFQUFHLENBQzFCLEtBQUssTUFBUSxHQUNiLEtBQUssTUFBUSxDQUFDLEVBQ2QsS0FBSyxHQUFLLEVBQUssU0FBUyxRQUN4QixFQUFLLFNBQVMsU0FBVyxHQVczQixFQUFLLFNBQVMsUUFBVSxFQVN4QixFQUFLLFNBQVMsa0JBQXFCLENBQUMsRUFBSyxDQUN2QyxJQUFJLEVBQVUsSUFBSSxFQUFLLFNBQVMsUUFFaEMsUUFBUyxFQUFJLEVBQUcsRUFBTSxFQUFJLE9BQVEsRUFBSSxFQUFLLElBQ3pDLEVBQVEsT0FBTyxFQUFJLEVBQUUsRUFJdkIsT0FEQSxFQUFRLE9BQU8sRUFDUixFQUFRLE1BWWpCLEVBQUssU0FBUyxtQkFBc0IsQ0FBQyxFQUFRLENBQzNDLEdBQUksaUJBQWtCLEVBQ3BCLE9BQU8sRUFBSyxTQUFTLGdCQUFnQixFQUFPLEtBQU0sRUFBTyxZQUFZLE1BRXJFLFFBQU8sRUFBSyxTQUFTLFdBQVcsRUFBTyxJQUFJLEdBbUIvQyxFQUFLLFNBQVMsd0JBQTJCLENBQUMsRUFBSyxFQUFjLENBQzNELElBQUksRUFBTyxJQUFJLEVBQUssU0FFaEIsRUFBUSxDQUNWLENBQ0UsS0FBTSxFQUNOLGVBQWdCLEVBQ2hCLElBQUssQ0FDUCxDQUNGLEVBRUEsTUFBTyxFQUFNLE9BQVEsQ0FDbkIsSUFBSSxFQUFRLEVBQU0sSUFBSSxFQUd0QixHQUFJLEVBQU0sSUFBSSxPQUFTLEVBQUcsQ0FDeEIsSUFBSSxFQUFPLEVBQU0sSUFBSSxPQUFPLENBQUMsRUFDM0IsRUFFRixHQUFJLEtBQVEsRUFBTSxLQUFLLE1BQ3JCLEVBQWEsRUFBTSxLQUFLLE1BQU0sT0FFOUIsR0FBYSxJQUFJLEVBQUssU0FDdEIsRUFBTSxLQUFLLE1BQU0sR0FBUSxFQUczQixHQUFJLEVBQU0sSUFBSSxRQUFVLEVBQ3RCLEVBQVcsTUFBUSxHQUdyQixFQUFNLEtBQUssQ0FDVCxLQUFNLEVBQ04sZUFBZ0IsRUFBTSxlQUN0QixJQUFLLEVBQU0sSUFBSSxNQUFNLENBQUMsQ0FDeEIsQ0FBQyxFQUdILEdBQUksRUFBTSxnQkFBa0IsRUFDMUIsU0FJRixHQUFJLE1BQU8sRUFBTSxLQUFLLE1BQ3BCLElBQUksRUFBZ0IsRUFBTSxLQUFLLE1BQU0sU0FDaEMsQ0FDTCxJQUFJLEVBQWdCLElBQUksRUFBSyxTQUM3QixFQUFNLEtBQUssTUFBTSxLQUFPLEVBRzFCLEdBQUksRUFBTSxJQUFJLFFBQVUsRUFDdEIsRUFBYyxNQUFRLEdBWXhCLEdBVEEsRUFBTSxLQUFLLENBQ1QsS0FBTSxFQUNOLGVBQWdCLEVBQU0sZUFBaUIsRUFDdkMsSUFBSyxFQUFNLEdBQ2IsQ0FBQyxFQUtHLEVBQU0sSUFBSSxPQUFTLEVBQ3JCLEVBQU0sS0FBSyxDQUNULEtBQU0sRUFBTSxLQUNaLGVBQWdCLEVBQU0sZUFBaUIsRUFDdkMsSUFBSyxFQUFNLElBQUksTUFBTSxDQUFDLENBQ3hCLENBQUMsRUFLSCxHQUFJLEVBQU0sSUFBSSxRQUFVLEVBQ3RCLEVBQU0sS0FBSyxNQUFRLEdBTXJCLEdBQUksRUFBTSxJQUFJLFFBQVUsRUFBRyxDQUN6QixHQUFJLE1BQU8sRUFBTSxLQUFLLE1BQ3BCLElBQUksRUFBbUIsRUFBTSxLQUFLLE1BQU0sU0FDbkMsQ0FDTCxJQUFJLEVBQW1CLElBQUksRUFBSyxTQUNoQyxFQUFNLEtBQUssTUFBTSxLQUFPLEVBRzFCLEdBQUksRUFBTSxJQUFJLFFBQVUsRUFDdEIsRUFBaUIsTUFBUSxHQUczQixFQUFNLEtBQUssQ0FDVCxLQUFNLEVBQ04sZUFBZ0IsRUFBTSxlQUFpQixFQUN2QyxJQUFLLEVBQU0sSUFBSSxNQUFNLENBQUMsQ0FDeEIsQ0FBQyxFQU1ILEdBQUksRUFBTSxJQUFJLE9BQVMsRUFBRyxDQUN4QixJQUFJLEVBQVEsRUFBTSxJQUFJLE9BQU8sQ0FBQyxFQUM1QixFQUFRLEVBQU0sSUFBSSxPQUFPLENBQUMsRUFDMUIsRUFFRixHQUFJLEtBQVMsRUFBTSxLQUFLLE1BQ3RCLEVBQWdCLEVBQU0sS0FBSyxNQUFNLE9BRWpDLEdBQWdCLElBQUksRUFBSyxTQUN6QixFQUFNLEtBQUssTUFBTSxHQUFTLEVBRzVCLEdBQUksRUFBTSxJQUFJLFFBQVUsRUFDdEIsRUFBYyxNQUFRLEdBR3hCLEVBQU0sS0FBSyxDQUNULEtBQU0sRUFDTixlQUFnQixFQUFNLGVBQWlCLEVBQ3ZDLElBQUssRUFBUSxFQUFNLElBQUksTUFBTSxDQUFDLENBQ2hDLENBQUMsR0FJTCxPQUFPLEdBYVQsRUFBSyxTQUFTLG1CQUFzQixDQUFDLEVBQUssQ0FDeEMsSUFBSSxFQUFPLElBQUksRUFBSyxTQUNsQixFQUFPLEVBVVQsUUFBUyxFQUFJLEVBQUcsRUFBTSxFQUFJLE9BQVEsRUFBSSxFQUFLLElBQUssQ0FDOUMsSUFBSSxFQUFPLEVBQUksR0FDYixFQUFRLEdBQUssRUFBTSxFQUVyQixHQUFJLEdBQVEsSUFDVixFQUFLLE1BQU0sR0FBUSxFQUNuQixFQUFLLE1BQVEsTUFDUixDQUNMLElBQUksRUFBTyxJQUFJLEVBQUssU0FDcEIsRUFBSyxNQUFRLEVBRWIsRUFBSyxNQUFNLEdBQVEsRUFDbkIsRUFBTyxHQUlYLE9BQU8sR0FhVCxFQUFLLFNBQVMsVUFBVSxnQkFBbUIsRUFBRyxDQUM1QyxJQUFJLEVBQVEsQ0FBQyxFQUVULEVBQVEsQ0FDVixDQUNFLE9BQVEsR0FDUixLQUFNLElBQ1IsQ0FDRixFQUVBLE1BQU8sRUFBTSxPQUFRLENBQ25CLElBQUksRUFBUSxFQUFNLElBQUksRUFDcEIsRUFBUSxPQUFPLEtBQUssRUFBTSxLQUFLLEtBQUssRUFDcEMsRUFBTSxFQUFNLE9BRWQsR0FBSSxFQUFNLEtBQUssTUFLYixFQUFNLE9BQU8sT0FBTyxDQUFDLEVBQ3JCLEVBQU0sS0FBSyxFQUFNLE1BQU0sRUFHekIsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFLLElBQUssQ0FDNUIsSUFBSSxFQUFPLEVBQU0sR0FFakIsRUFBTSxLQUFLLENBQ1QsT0FBUSxFQUFNLE9BQU8sT0FBTyxDQUFJLEVBQ2hDLEtBQU0sRUFBTSxLQUFLLE1BQU0sRUFDekIsQ0FBQyxHQUlMLE9BQU8sR0FhVCxFQUFLLFNBQVMsVUFBVSxpQkFBb0IsRUFBRyxDQVM3QyxHQUFJLEtBQUssS0FDUCxPQUFPLEtBQUssS0FHZCxJQUFJLEVBQU0sS0FBSyxNQUFRLElBQU0sSUFDM0IsRUFBUyxPQUFPLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxFQUN0QyxFQUFNLEVBQU8sT0FFZixRQUFTLEVBQUksRUFBRyxFQUFJLEVBQUssSUFBSyxDQUM1QixJQUFJLEVBQVEsRUFBTyxHQUNqQixFQUFPLEtBQUssTUFBTSxHQUVwQixFQUFNLEVBQU0sRUFBUSxFQUFLLEdBRzNCLE9BQU8sR0FhVCxFQUFLLFNBQVMsVUFBVSxrQkFBcUIsQ0FBQyxFQUFHLENBQy9DLElBQUksRUFBUyxJQUFJLEVBQUssU0FDcEIsRUFBUSxPQUVOLEVBQVEsQ0FDVixDQUNFLE1BQU8sRUFDUCxPQUFRLEVBQ1IsS0FBTSxJQUNSLENBQ0YsRUFFQSxNQUFPLEVBQU0sT0FBUSxDQUNuQixFQUFRLEVBQU0sSUFBSSxFQU1sQixJQUFJLEVBQVMsT0FBTyxLQUFLLEVBQU0sTUFBTSxLQUFLLEVBQ3hDLEVBQU8sRUFBTyxPQUNkLEVBQVMsT0FBTyxLQUFLLEVBQU0sS0FBSyxLQUFLLEVBQ3JDLEVBQU8sRUFBTyxPQUVoQixRQUFTLEVBQUksRUFBRyxFQUFJLEVBQU0sSUFBSyxDQUM3QixJQUFJLEVBQVEsRUFBTyxHQUVuQixRQUFTLEVBQUksRUFBRyxFQUFJLEVBQU0sSUFBSyxDQUM3QixJQUFJLEVBQVEsRUFBTyxHQUVuQixHQUFJLEdBQVMsR0FBUyxHQUFTLElBQUssQ0FDbEMsSUFBSSxFQUFPLEVBQU0sS0FBSyxNQUFNLEdBQzFCLEVBQVEsRUFBTSxNQUFNLE1BQU0sR0FDMUIsRUFBUSxFQUFLLE9BQVMsRUFBTSxNQUM1QixFQUFPLE9BRVQsR0FBSSxLQUFTLEVBQU0sT0FBTyxNQUl4QixFQUFPLEVBQU0sT0FBTyxNQUFNLEdBQzFCLEVBQUssTUFBUSxFQUFLLE9BQVMsTUFLM0IsR0FBTyxJQUFJLEVBQUssU0FDaEIsRUFBSyxNQUFRLEVBQ2IsRUFBTSxPQUFPLE1BQU0sR0FBUyxFQUc5QixFQUFNLEtBQUssQ0FDVCxNQUFPLEVBQ1AsT0FBUSxFQUNSLEtBQU0sQ0FDUixDQUFDLEtBTVQsT0FBTyxHQUVULEVBQUssU0FBUyxnQkFBbUIsRUFBRyxDQUNsQyxLQUFLLGFBQWUsR0FDcEIsS0FBSyxLQUFPLElBQUksRUFBSyxTQUNyQixLQUFLLGVBQWlCLENBQUMsRUFDdkIsS0FBSyxlQUFpQixDQUFDLEdBR3pCLEVBQUssU0FBUyxRQUFRLFVBQVUsZUFBa0IsQ0FBQyxFQUFNLENBQ3ZELElBQUksRUFDRixFQUFlLEVBRWpCLEdBQUksRUFBTyxLQUFLLGFBQ2QsTUFBTSxJQUFJLE1BQU0sNkJBQTZCLEVBRy9DLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBSyxRQUFVLEVBQUksS0FBSyxhQUFhLE9BQVEsSUFBSyxDQUNwRSxHQUFJLEVBQUssSUFBTSxLQUFLLGFBQWEsR0FBSSxNQUNyQyxJQUtGLEdBRkEsS0FBSyxTQUFTLENBQVksRUFFdEIsS0FBSyxlQUFlLFFBQVUsRUFDaEMsRUFBTyxLQUFLLFNBRVosR0FBTyxLQUFLLGVBQWUsS0FBSyxlQUFlLE9BQVMsR0FBRyxNQUc3RCxRQUFTLEVBQUksRUFBYyxFQUFJLEVBQUssT0FBUSxJQUFLLENBQy9DLElBQUksRUFBVyxJQUFJLEVBQUssU0FDdEIsRUFBTyxFQUFLLEdBRWQsRUFBSyxNQUFNLEdBQVEsRUFFbkIsS0FBSyxlQUFlLEtBQUssQ0FDdkIsT0FBUSxFQUNSLEtBQU0sRUFDTixNQUFPLENBQ1QsQ0FBQyxFQUVELEVBQU8sRUFHVCxFQUFLLE1BQVEsR0FDYixLQUFLLGFBQWUsR0FHdEIsRUFBSyxTQUFTLFFBQVEsVUFBVSxlQUFrQixFQUFHLENBQ25ELEtBQUssU0FBUyxDQUFDLEdBR2pCLEVBQUssU0FBUyxRQUFRLFVBQVUsaUJBQW9CLENBQUMsRUFBUSxDQUMzRCxRQUFTLEVBQUksS0FBSyxlQUFlLE9BQVMsRUFBRyxHQUFLLEVBQVEsSUFBSyxDQUM3RCxJQUFJLEVBQU8sS0FBSyxlQUFlLEdBQzdCLEVBQVcsRUFBSyxNQUFNLFNBQVMsRUFFakMsR0FBSSxLQUFZLEtBQUssZUFDbkIsRUFBSyxPQUFPLE1BQU0sRUFBSyxNQUFRLEtBQUssZUFBZSxPQUluRCxHQUFLLE1BQU0sS0FBTyxFQUVsQixLQUFLLGVBQWUsR0FBWSxFQUFLLE1BR3ZDLEtBQUssZUFBZSxJQUFJLElBd0I1QjtBQUFBO0FBQUE7QUFBQSxPQUFLLGNBQWlCLENBQUMsRUFBTyxDQUM1QixLQUFLLGNBQWdCLEVBQU0sY0FDM0IsS0FBSyxhQUFlLEVBQU0sYUFDMUIsS0FBSyxTQUFXLEVBQU0sU0FDdEIsS0FBSyxPQUFTLEVBQU0sT0FDcEIsS0FBSyxTQUFXLEVBQU0sVUEwRXhCLEVBQUssTUFBTSxVQUFVLGVBQWtCLENBQUMsRUFBYSxDQUNuRCxPQUFPLEtBQUssY0FBZSxDQUFDLEVBQU8sQ0FDakMsSUFBSSxFQUFTLElBQUksRUFBSyxZQUFZLEVBQWEsQ0FBSyxFQUNwRCxFQUFPLE1BQU0sRUFDZCxHQTRCSCxFQUFLLE1BQU0sVUFBVSxjQUFpQixDQUFDLEVBQUksQ0FRekMsSUFBSSxFQUFRLElBQUksRUFBSyxNQUFNLEtBQUssTUFBTSxFQUNwQyxFQUFpQixPQUFPLE9BQU8sSUFBSSxFQUNuQyxFQUFlLE9BQU8sT0FBTyxJQUFJLEVBQ2pDLEVBQWlCLE9BQU8sT0FBTyxJQUFJLEVBQ25DLEVBQWtCLE9BQU8sT0FBTyxJQUFJLEVBQ3BDLEVBQW9CLE9BQU8sT0FBTyxJQUFJLEVBT3hDLFFBQVMsRUFBSSxFQUFHLEVBQUksS0FBSyxPQUFPLE9BQVEsSUFDdEMsRUFBYSxLQUFLLE9BQU8sSUFBTSxJQUFJLEVBQUssT0FHMUMsRUFBRyxLQUFLLEVBQU8sQ0FBSyxFQUVwQixRQUFTLEVBQUksRUFBRyxFQUFJLEVBQU0sUUFBUSxPQUFRLElBQUssQ0FTN0MsSUFBSSxFQUFTLEVBQU0sUUFBUSxHQUN6QixFQUFRLEtBQ1IsRUFBZ0IsRUFBSyxJQUFJLE1BRTNCLEdBQUksRUFBTyxZQUNULEVBQVEsS0FBSyxTQUFTLFVBQVUsRUFBTyxLQUFNLENBQzNDLE9BQVEsRUFBTyxNQUNqQixDQUFDLE1BRUQsR0FBUSxDQUFDLEVBQU8sSUFBSSxFQUd0QixRQUFTLEVBQUksRUFBRyxFQUFJLEVBQU0sT0FBUSxJQUFLLENBQ3JDLElBQUksRUFBTyxFQUFNLEdBUWpCLEVBQU8sS0FBTyxFQU9kLElBQUksRUFBZSxFQUFLLFNBQVMsV0FBVyxDQUFNLEVBQ2hELEVBQWdCLEtBQUssU0FBUyxVQUFVLENBQVksRUFBRSxRQUFRLEVBUWhFLEdBQ0UsRUFBYyxTQUFXLEdBQ3pCLEVBQU8sV0FBYSxFQUFLLE1BQU0sU0FBUyxTQUN4QyxDQUNBLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBTyxPQUFPLE9BQVEsSUFBSyxDQUM3QyxJQUFJLEVBQVEsRUFBTyxPQUFPLEdBQzFCLEVBQWdCLEdBQVMsRUFBSyxJQUFJLE1BR3BDLE1BR0YsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFjLE9BQVEsSUFBSyxDQUs3QyxJQUFJLEVBQWUsRUFBYyxHQUMvQixFQUFVLEtBQUssY0FBYyxHQUM3QixFQUFZLEVBQVEsT0FFdEIsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFPLE9BQU8sT0FBUSxJQUFLLENBUzdDLElBQUksRUFBUSxFQUFPLE9BQU8sR0FDeEIsRUFBZSxFQUFRLEdBQ3ZCLEVBQXVCLE9BQU8sS0FBSyxDQUFZLEVBQy9DLEVBQVksRUFBZSxJQUFNLEVBQ2pDLEVBQXVCLElBQUksRUFBSyxJQUFJLENBQW9CLEVBTzFELEdBQUksRUFBTyxVQUFZLEVBQUssTUFBTSxTQUFTLFVBR3pDLEdBRkEsRUFBZ0IsRUFBYyxNQUFNLENBQW9CLEVBRXBELEVBQWdCLEtBQVcsT0FDN0IsRUFBZ0IsR0FBUyxFQUFLLElBQUksU0FTdEMsR0FBSSxFQUFPLFVBQVksRUFBSyxNQUFNLFNBQVMsV0FBWSxDQUNyRCxHQUFJLEVBQWtCLEtBQVcsT0FDL0IsRUFBa0IsR0FBUyxFQUFLLElBQUksTUFHdEMsRUFBa0IsR0FDaEIsRUFBa0IsR0FBTyxNQUFNLENBQW9CLEVBT3JELFNBc0JGLEdBWkEsRUFBYSxHQUFPLE9BQ2xCLEVBQ0EsRUFBTyxjQUNFLENBQUMsRUFBRyxFQUFHLENBQ2QsT0FBTyxFQUFJLEVBRWYsRUFNSSxFQUFlLEdBQ2pCLFNBR0YsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFxQixPQUFRLElBQUssQ0FPcEQsSUFBSSxFQUFzQixFQUFxQixHQUM3QyxFQUFtQixJQUFJLEVBQUssU0FDMUIsRUFDQSxDQUNGLEVBQ0EsRUFBVyxFQUFhLEdBQ3hCLEVBRUYsSUFDRyxFQUFhLEVBQWUsTUFBdUIsT0FFcEQsRUFBZSxHQUFvQixJQUFJLEVBQUssVUFDMUMsRUFDQSxFQUNBLENBQ0YsTUFFQSxHQUFXLElBQUksRUFBYyxFQUFPLENBQVEsRUFJaEQsRUFBZSxHQUFhLEtBV2xDLEdBQUksRUFBTyxXQUFhLEVBQUssTUFBTSxTQUFTLFNBQzFDLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBTyxPQUFPLE9BQVEsSUFBSyxDQUM3QyxJQUFJLEVBQVEsRUFBTyxPQUFPLEdBQzFCLEVBQWdCLEdBQ2QsRUFBZ0IsR0FBTyxVQUFVLENBQWEsR0FVdEQsSUFBSSxFQUFxQixFQUFLLElBQUksU0FDaEMsRUFBdUIsRUFBSyxJQUFJLE1BRWxDLFFBQVMsRUFBSSxFQUFHLEVBQUksS0FBSyxPQUFPLE9BQVEsSUFBSyxDQUMzQyxJQUFJLEVBQVEsS0FBSyxPQUFPLEdBRXhCLEdBQUksRUFBZ0IsR0FDbEIsRUFBcUIsRUFBbUIsVUFDdEMsRUFBZ0IsRUFDbEIsRUFHRixHQUFJLEVBQWtCLEdBQ3BCLEVBQXVCLEVBQXFCLE1BQzFDLEVBQWtCLEVBQ3BCLEVBSUosSUFBSSxFQUFvQixPQUFPLEtBQUssQ0FBYyxFQUNoRCxFQUFVLENBQUMsRUFDWCxFQUFVLE9BQU8sT0FBTyxJQUFJLEVBWTlCLEdBQUksRUFBTSxVQUFVLEVBQUcsQ0FDckIsRUFBb0IsT0FBTyxLQUFLLEtBQUssWUFBWSxFQUVqRCxRQUFTLEVBQUksRUFBRyxFQUFJLEVBQWtCLE9BQVEsSUFBSyxDQUNqRCxJQUFJLEVBQW1CLEVBQWtCLEdBQ3JDLEVBQVcsRUFBSyxTQUFTLFdBQVcsQ0FBZ0IsRUFDeEQsRUFBZSxHQUFvQixJQUFJLEVBQUssV0FJaEQsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFrQixPQUFRLElBQUssQ0FTakQsSUFBSSxFQUFXLEVBQUssU0FBUyxXQUFXLEVBQWtCLEVBQUUsRUFDMUQsRUFBUyxFQUFTLE9BRXBCLElBQUssRUFBbUIsU0FBUyxDQUFNLEVBQ3JDLFNBR0YsR0FBSSxFQUFxQixTQUFTLENBQU0sRUFDdEMsU0FHRixJQUFJLEVBQWMsS0FBSyxhQUFhLEdBQ2xDLEVBQVEsRUFBYSxFQUFTLFdBQVcsV0FBVyxDQUFXLEVBQy9ELEVBRUYsSUFBSyxFQUFXLEVBQVEsTUFBYSxPQUNuQyxFQUFTLE9BQVMsRUFDbEIsRUFBUyxVQUFVLFFBQVEsRUFBZSxFQUFTLE1BQzlDLENBQ0wsSUFBSSxFQUFRLENBQ1YsSUFBSyxFQUNMLE1BQU8sRUFDUCxVQUFXLEVBQWUsRUFDNUIsRUFDQSxFQUFRLEdBQVUsRUFDbEIsRUFBUSxLQUFLLENBQUssR0FPdEIsT0FBTyxFQUFRLGFBQWMsQ0FBQyxFQUFHLEVBQUcsQ0FDbEMsT0FBTyxFQUFFLE1BQVEsRUFBRSxNQUNwQixHQVdILEVBQUssTUFBTSxVQUFVLGVBQWtCLEVBQUcsQ0FDeEMsSUFBSSxFQUFnQixPQUFPLEtBQUssS0FBSyxhQUFhLEVBQy9DLEtBQUssRUFDTCxZQUFhLENBQUMsRUFBTSxDQUNuQixNQUFPLENBQUMsRUFBTSxLQUFLLGNBQWMsRUFBSyxHQUNyQyxJQUFJLEVBRUwsRUFBZSxPQUFPLEtBQUssS0FBSyxZQUFZLEVBQUUsWUFBYSxDQUFDLEVBQUssQ0FDbkUsTUFBTyxDQUFDLEVBQUssS0FBSyxhQUFhLEdBQUssT0FBTyxDQUFDLEdBQzNDLElBQUksRUFFUCxNQUFPLENBQ0wsUUFBUyxFQUFLLFFBQ2QsT0FBUSxLQUFLLE9BQ2IsYUFBYyxFQUNkLGNBQWUsRUFDZixTQUFVLEtBQUssU0FBUyxPQUFPLENBQ2pDLEdBU0YsRUFBSyxNQUFNLGFBQWdCLENBQUMsRUFBaUIsQ0FDM0MsSUFBSSxFQUFRLENBQUMsRUFDWCxFQUFlLENBQUMsRUFDaEIsRUFBb0IsRUFBZ0IsYUFDcEMsRUFBZ0IsT0FBTyxPQUFPLElBQUksRUFDbEMsRUFBMEIsRUFBZ0IsY0FDMUMsRUFBa0IsSUFBSSxFQUFLLFNBQVMsUUFDcEMsRUFBVyxFQUFLLFNBQVMsS0FBSyxFQUFnQixRQUFRLEVBRXhELEdBQUksRUFBZ0IsU0FBVyxFQUFLLFFBQ2xDLEVBQUssTUFBTSxLQUNULDRFQUNFLEVBQUssUUFDTCxzQ0FDQSxFQUFnQixRQUNoQixHQUNKLEVBR0YsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFrQixPQUFRLElBQUssQ0FDakQsSUFBSSxFQUFRLEVBQWtCLEdBQzVCLEVBQU0sRUFBTSxHQUNaLEVBQVcsRUFBTSxHQUVuQixFQUFhLEdBQU8sSUFBSSxFQUFLLE9BQU8sQ0FBUSxFQUc5QyxRQUFTLEVBQUksRUFBRyxFQUFJLEVBQXdCLE9BQVEsSUFBSyxDQUN2RCxJQUFJLEVBQVEsRUFBd0IsR0FDbEMsRUFBTyxFQUFNLEdBQ2IsRUFBVSxFQUFNLEdBRWxCLEVBQWdCLE9BQU8sQ0FBSSxFQUMzQixFQUFjLEdBQVEsRUFZeEIsT0FUQSxFQUFnQixPQUFPLEVBRXZCLEVBQU0sT0FBUyxFQUFnQixPQUUvQixFQUFNLGFBQWUsRUFDckIsRUFBTSxjQUFnQixFQUN0QixFQUFNLFNBQVcsRUFBZ0IsS0FDakMsRUFBTSxTQUFXLEVBRVYsSUFBSSxFQUFLLE1BQU0sQ0FBSyxHQStCN0I7QUFBQTtBQUFBO0FBQUEsT0FBSyxnQkFBbUIsRUFBRyxDQUN6QixLQUFLLEtBQU8sS0FDWixLQUFLLFFBQVUsT0FBTyxPQUFPLElBQUksRUFDakMsS0FBSyxXQUFhLE9BQU8sT0FBTyxJQUFJLEVBQ3BDLEtBQUssY0FBZ0IsT0FBTyxPQUFPLElBQUksRUFDdkMsS0FBSyxxQkFBdUIsQ0FBQyxFQUM3QixLQUFLLGFBQWUsQ0FBQyxFQUNyQixLQUFLLFVBQVksRUFBSyxVQUN0QixLQUFLLFNBQVcsSUFBSSxFQUFLLFNBQ3pCLEtBQUssZUFBaUIsSUFBSSxFQUFLLFNBQy9CLEtBQUssY0FBZ0IsRUFDckIsS0FBSyxHQUFLLEtBQ1YsS0FBSyxJQUFNLElBQ1gsS0FBSyxVQUFZLEVBQ2pCLEtBQUssa0JBQW9CLENBQUMsR0FlNUIsRUFBSyxRQUFRLFVBQVUsWUFBZSxDQUFDLEVBQUssQ0FDMUMsS0FBSyxLQUFPLEdBbUNkLEVBQUssUUFBUSxVQUFVLGNBQWlCLENBQUMsRUFBVyxFQUFZLENBQzlELEdBQUksS0FBSyxLQUFLLENBQVMsRUFDckIsTUFBTSxJQUFJLFdBQ1IsVUFBWSxFQUFZLGtDQUMxQixFQUdGLEtBQUssUUFBUSxHQUFhLEdBQWMsQ0FBQyxHQVczQyxFQUFLLFFBQVEsVUFBVSxVQUFhLENBQUMsRUFBUSxDQUMzQyxHQUFJLEVBQVMsRUFDWCxLQUFLLEdBQUssVUFDRCxFQUFTLEVBQ2xCLEtBQUssR0FBSyxNQUVWLE1BQUssR0FBSyxHQVdkLEVBQUssUUFBUSxVQUFVLFdBQWMsQ0FBQyxFQUFRLENBQzVDLEtBQUssSUFBTSxHQW9CYixFQUFLLFFBQVEsVUFBVSxZQUFlLENBQUMsRUFBSyxFQUFZLENBQ3RELElBQUksRUFBUyxFQUFJLEtBQUssTUFDcEIsRUFBUyxPQUFPLEtBQUssS0FBSyxPQUFPLEVBRW5DLEtBQUssV0FBVyxHQUFVLEdBQWMsQ0FBQyxFQUN6QyxLQUFLLGVBQWlCLEVBRXRCLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBTyxPQUFRLElBQUssQ0FDdEMsSUFBSSxFQUFZLEVBQU8sR0FDckIsRUFBWSxLQUFLLFFBQVEsR0FBVyxVQUNwQyxFQUFRLEVBQVksRUFBVSxDQUFHLEVBQUksRUFBSSxHQUN6QyxFQUFTLEtBQUssVUFBVSxFQUFPLENBQzdCLE9BQVEsQ0FBQyxDQUFTLENBQ3BCLENBQUMsRUFDRCxFQUFRLEtBQUssU0FBUyxJQUFJLENBQU0sRUFDaEMsRUFBVyxJQUFJLEVBQUssU0FBUyxFQUFRLENBQVMsRUFDOUMsRUFBYSxPQUFPLE9BQU8sSUFBSSxFQUVqQyxLQUFLLHFCQUFxQixHQUFZLEVBQ3RDLEtBQUssYUFBYSxHQUFZLEVBRzlCLEtBQUssYUFBYSxJQUFhLEVBQU0sT0FHckMsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFNLE9BQVEsSUFBSyxDQUNyQyxJQUFJLEVBQU8sRUFBTSxHQUVqQixHQUFJLEVBQVcsSUFBUyxLQUN0QixFQUFXLEdBQVEsRUFPckIsR0FKQSxFQUFXLElBQVMsRUFJaEIsS0FBSyxjQUFjLElBQVMsS0FBVyxDQUN6QyxJQUFJLEVBQVUsT0FBTyxPQUFPLElBQUksRUFDaEMsRUFBUSxPQUFZLEtBQUssVUFDekIsS0FBSyxXQUFhLEVBRWxCLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBTyxPQUFRLElBQ2pDLEVBQVEsRUFBTyxJQUFNLE9BQU8sT0FBTyxJQUFJLEVBR3pDLEtBQUssY0FBYyxHQUFRLEVBSTdCLEdBQUksS0FBSyxjQUFjLEdBQU0sR0FBVyxJQUFXLEtBQ2pELEtBQUssY0FBYyxHQUFNLEdBQVcsR0FBVSxPQUFPLE9BQU8sSUFBSSxFQUtsRSxRQUFTLEVBQUksRUFBRyxFQUFJLEtBQUssa0JBQWtCLE9BQVEsSUFBSyxDQUN0RCxJQUFJLEVBQWMsS0FBSyxrQkFBa0IsR0FDdkMsRUFBVyxFQUFLLFNBQVMsR0FFM0IsR0FDRSxLQUFLLGNBQWMsR0FBTSxHQUFXLEdBQVEsSUFDNUMsS0FFQSxLQUFLLGNBQWMsR0FBTSxHQUFXLEdBQVEsR0FBZSxDQUFDLEVBRzlELEtBQUssY0FBYyxHQUFNLEdBQVcsR0FBUSxHQUFhLEtBQ3ZELENBQ0YsTUFXUixFQUFLLFFBQVEsVUFBVSxxQ0FBd0MsRUFBRyxDQUNoRSxJQUFJLEVBQVksT0FBTyxLQUFLLEtBQUssWUFBWSxFQUMzQyxFQUFpQixFQUFVLE9BQzNCLEVBQWMsQ0FBQyxFQUNmLEVBQXFCLENBQUMsRUFFeEIsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFnQixJQUFLLENBQ3ZDLElBQUksRUFBVyxFQUFLLFNBQVMsV0FBVyxFQUFVLEVBQUUsRUFDbEQsRUFBUSxFQUFTLFVBRW5CLEVBQW1CLEtBQVcsRUFBbUIsR0FBUyxHQUMxRCxFQUFtQixJQUFVLEVBRTdCLEVBQVksS0FBVyxFQUFZLEdBQVMsR0FDNUMsRUFBWSxJQUFVLEtBQUssYUFBYSxHQUcxQyxJQUFJLEVBQVMsT0FBTyxLQUFLLEtBQUssT0FBTyxFQUVyQyxRQUFTLEVBQUksRUFBRyxFQUFJLEVBQU8sT0FBUSxJQUFLLENBQ3RDLElBQUksRUFBWSxFQUFPLEdBQ3ZCLEVBQVksR0FDVixFQUFZLEdBQWEsRUFBbUIsR0FHaEQsS0FBSyxtQkFBcUIsR0FRNUIsRUFBSyxRQUFRLFVBQVUsMkJBQThCLEVBQUcsQ0FDdEQsSUFBSSxFQUFlLENBQUMsRUFDbEIsRUFBWSxPQUFPLEtBQUssS0FBSyxvQkFBb0IsRUFDakQsRUFBa0IsRUFBVSxPQUM1QixFQUFlLE9BQU8sT0FBTyxJQUFJLEVBRW5DLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBaUIsSUFBSyxDQUN4QyxJQUFJLEVBQVcsRUFBSyxTQUFTLFdBQVcsRUFBVSxFQUFFLEVBQ2xELEVBQVksRUFBUyxVQUNyQixFQUFjLEtBQUssYUFBYSxHQUNoQyxFQUFjLElBQUksRUFBSyxPQUN2QixFQUFrQixLQUFLLHFCQUFxQixHQUM1QyxFQUFRLE9BQU8sS0FBSyxDQUFlLEVBQ25DLEVBQWMsRUFBTSxPQUVsQixFQUFhLEtBQUssUUFBUSxHQUFXLE9BQVMsRUFDaEQsRUFBVyxLQUFLLFdBQVcsRUFBUyxRQUFRLE9BQVMsRUFFdkQsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFhLElBQUssQ0FDcEMsSUFBSSxFQUFPLEVBQU0sR0FDZixFQUFLLEVBQWdCLEdBQ3JCLEVBQVksS0FBSyxjQUFjLEdBQU0sT0FDckMsRUFDQSxFQUNBLEVBRUYsR0FBSSxFQUFhLEtBQVUsT0FDekIsRUFBTSxFQUFLLElBQUksS0FBSyxjQUFjLEdBQU8sS0FBSyxhQUFhLEVBQzNELEVBQWEsR0FBUSxNQUVyQixHQUFNLEVBQWEsR0FHckIsRUFDRyxJQUFRLEtBQUssSUFBTSxHQUFLLElBQ3hCLEtBQUssS0FDSCxFQUNDLEtBQUssR0FDTCxLQUFLLElBQU0sRUFBYyxLQUFLLG1CQUFtQixLQUNuRCxHQUNKLEdBQVMsRUFDVCxHQUFTLEVBQ1QsRUFBcUIsS0FBSyxNQUFNLEVBQVEsSUFBSSxFQUFJLEtBUWhELEVBQVksT0FBTyxFQUFXLENBQWtCLEVBR2xELEVBQWEsR0FBWSxFQUczQixLQUFLLGFBQWUsR0FRdEIsRUFBSyxRQUFRLFVBQVUsdUJBQTBCLEVBQUcsQ0FDbEQsS0FBSyxTQUFXLEVBQUssU0FBUyxVQUM1QixPQUFPLEtBQUssS0FBSyxhQUFhLEVBQUUsS0FBSyxDQUN2QyxHQVdGLEVBQUssUUFBUSxVQUFVLGNBQWlCLEVBQUcsQ0FLekMsT0FKQSxLQUFLLDZCQUE2QixFQUNsQyxLQUFLLG1CQUFtQixFQUN4QixLQUFLLGVBQWUsRUFFYixJQUFJLEVBQUssTUFBTSxDQUNwQixjQUFlLEtBQUssY0FDcEIsYUFBYyxLQUFLLGFBQ25CLFNBQVUsS0FBSyxTQUNmLE9BQVEsT0FBTyxLQUFLLEtBQUssT0FBTyxFQUNoQyxTQUFVLEtBQUssY0FDakIsQ0FBQyxHQWlCSCxFQUFLLFFBQVEsVUFBVSxZQUFlLENBQUMsRUFBSSxDQUN6QyxJQUFJLEVBQU8sTUFBTSxVQUFVLE1BQU0sS0FBSyxVQUFXLENBQUMsRUFDbEQsRUFBSyxRQUFRLElBQUksRUFDakIsRUFBRyxNQUFNLEtBQU0sQ0FBSSxHQWNyQixFQUFLLGtCQUFxQixDQUFDLEVBQU0sRUFBTyxFQUFVLENBQ2hELElBQUksRUFBaUIsT0FBTyxPQUFPLElBQUksRUFDckMsRUFBZSxPQUFPLEtBQUssR0FBWSxDQUFDLENBQUMsRUFPM0MsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFhLE9BQVEsSUFBSyxDQUM1QyxJQUFJLEVBQU0sRUFBYSxHQUN2QixFQUFlLEdBQU8sRUFBUyxHQUFLLE1BQU0sRUFLNUMsR0FGQSxLQUFLLFNBQVcsT0FBTyxPQUFPLElBQUksRUFFOUIsSUFBUyxPQUNYLEtBQUssU0FBUyxHQUFRLE9BQU8sT0FBTyxJQUFJLEVBQ3hDLEtBQUssU0FBUyxHQUFNLEdBQVMsR0FhakMsRUFBSyxVQUFVLFVBQVUsZ0JBQW1CLENBQUMsRUFBZ0IsQ0FDM0QsSUFBSSxFQUFRLE9BQU8sS0FBSyxFQUFlLFFBQVEsRUFFL0MsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFNLE9BQVEsSUFBSyxDQUNyQyxJQUFJLEVBQU8sRUFBTSxHQUNmLEVBQVMsT0FBTyxLQUFLLEVBQWUsU0FBUyxFQUFLLEVBRXBELEdBQUksS0FBSyxTQUFTLElBQVMsS0FDekIsS0FBSyxTQUFTLEdBQVEsT0FBTyxPQUFPLElBQUksRUFHMUMsUUFBUyxFQUFJLEVBQUcsRUFBSSxFQUFPLE9BQVEsSUFBSyxDQUN0QyxJQUFJLEVBQVEsRUFBTyxHQUNqQixFQUFPLE9BQU8sS0FBSyxFQUFlLFNBQVMsR0FBTSxFQUFNLEVBRXpELEdBQUksS0FBSyxTQUFTLEdBQU0sSUFBVSxLQUNoQyxLQUFLLFNBQVMsR0FBTSxHQUFTLE9BQU8sT0FBTyxJQUFJLEVBR2pELFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBSyxPQUFRLElBQUssQ0FDcEMsSUFBSSxFQUFNLEVBQUssR0FFZixHQUFJLEtBQUssU0FBUyxHQUFNLEdBQU8sSUFBUSxLQUNyQyxLQUFLLFNBQVMsR0FBTSxHQUFPLEdBQ3pCLEVBQWUsU0FBUyxHQUFNLEdBQU8sT0FFdkMsTUFBSyxTQUFTLEdBQU0sR0FBTyxHQUFPLEtBQUssU0FBUyxHQUFNLEdBQ3BELEdBQ0EsT0FBTyxFQUFlLFNBQVMsR0FBTSxHQUFPLEVBQUksTUFjNUQsRUFBSyxVQUFVLFVBQVUsWUFBZSxDQUFDLEVBQU0sRUFBTyxFQUFVLENBQzlELEtBQU0sS0FBUSxLQUFLLFVBQVcsQ0FDNUIsS0FBSyxTQUFTLEdBQVEsT0FBTyxPQUFPLElBQUksRUFDeEMsS0FBSyxTQUFTLEdBQU0sR0FBUyxFQUM3QixPQUdGLEtBQU0sS0FBUyxLQUFLLFNBQVMsSUFBUSxDQUNuQyxLQUFLLFNBQVMsR0FBTSxHQUFTLEVBQzdCLE9BR0YsSUFBSSxFQUFlLE9BQU8sS0FBSyxDQUFRLEVBRXZDLFFBQVMsRUFBSSxFQUFHLEVBQUksRUFBYSxPQUFRLElBQUssQ0FDNUMsSUFBSSxFQUFNLEVBQWEsR0FFdkIsR0FBSSxLQUFPLEtBQUssU0FBUyxHQUFNLEdBQzdCLEtBQUssU0FBUyxHQUFNLEdBQU8sR0FBTyxLQUFLLFNBQVMsR0FBTSxHQUNwRCxHQUNBLE9BQU8sRUFBUyxFQUFJLE1BRXRCLE1BQUssU0FBUyxHQUFNLEdBQU8sR0FBTyxFQUFTLEtBZWpELEVBQUssY0FBaUIsQ0FBQyxFQUFXLENBQ2hDLEtBQUssUUFBVSxDQUFDLEVBQ2hCLEtBQUssVUFBWSxHQTJCbkIsRUFBSyxNQUFNLFNBQVcsSUFBSSxPQUFPLEdBQUcsRUFDcEMsRUFBSyxNQUFNLFNBQVMsS0FBTyxFQUMzQixFQUFLLE1BQU0sU0FBUyxRQUFVLEVBQzlCLEVBQUssTUFBTSxTQUFTLFNBQVcsRUFhL0IsRUFBSyxNQUFNLFNBQVcsQ0FJcEIsU0FBVSxFQU1WLFNBQVUsRUFNVixXQUFZLENBQ2QsRUF5QkEsRUFBSyxNQUFNLFVBQVUsZUFBa0IsQ0FBQyxFQUFRLENBQzlDLEtBQU0sV0FBWSxHQUNoQixFQUFPLE9BQVMsS0FBSyxVQUd2QixLQUFNLFVBQVcsR0FDZixFQUFPLE1BQVEsRUFHakIsS0FBTSxnQkFBaUIsR0FDckIsRUFBTyxZQUFjLEdBR3ZCLEtBQU0sYUFBYyxHQUNsQixFQUFPLFNBQVcsRUFBSyxNQUFNLFNBQVMsS0FHeEMsR0FDRSxFQUFPLFNBQVcsRUFBSyxNQUFNLFNBQVMsU0FDdEMsRUFBTyxLQUFLLE9BQU8sQ0FBQyxHQUFLLEVBQUssTUFBTSxTQUVwQyxFQUFPLEtBQU8sSUFBTSxFQUFPLEtBRzdCLEdBQ0UsRUFBTyxTQUFXLEVBQUssTUFBTSxTQUFTLFVBQ3RDLEVBQU8sS0FBSyxNQUFNLEVBQUUsR0FBSyxFQUFLLE1BQU0sU0FFcEMsRUFBTyxLQUFPLEdBQUssRUFBTyxLQUFPLElBR25DLEtBQU0sYUFBYyxHQUNsQixFQUFPLFNBQVcsRUFBSyxNQUFNLFNBQVMsU0FLeEMsT0FGQSxLQUFLLFFBQVEsS0FBSyxDQUFNLEVBRWpCLE1BVVQsRUFBSyxNQUFNLFVBQVUsa0JBQXFCLEVBQUcsQ0FDM0MsUUFBUyxFQUFJLEVBQUcsRUFBSSxLQUFLLFFBQVEsT0FBUSxJQUN2QyxHQUFJLEtBQUssUUFBUSxHQUFHLFVBQVksRUFBSyxNQUFNLFNBQVMsV0FDbEQsTUFBTyxHQUlYLE1BQU8sSUE2QlQsRUFBSyxNQUFNLFVBQVUsYUFBZ0IsQ0FBQyxFQUFNLEVBQVMsQ0FDbkQsR0FBSSxNQUFNLFFBQVEsQ0FBSSxFQUlwQixPQUhBLEVBQUssZ0JBQWlCLENBQUMsRUFBRyxDQUN4QixLQUFLLEtBQUssRUFBRyxFQUFLLE1BQU0sTUFBTSxDQUFPLENBQUMsR0FDckMsSUFBSSxFQUNBLEtBR1QsSUFBSSxFQUFTLEdBQVcsQ0FBQyxFQUt6QixPQUpBLEVBQU8sS0FBTyxFQUFLLFNBQVMsRUFFNUIsS0FBSyxPQUFPLENBQU0sRUFFWCxNQUVULEVBQUssd0JBQTJCLENBQUMsRUFBUyxFQUFPLEVBQUssQ0FDcEQsS0FBSyxLQUFPLGtCQUNaLEtBQUssUUFBVSxFQUNmLEtBQUssTUFBUSxFQUNiLEtBQUssSUFBTSxHQUdiLEVBQUssZ0JBQWdCLFVBQVksSUFBSSxNQUNyQyxFQUFLLG1CQUFzQixDQUFDLEVBQUssQ0FDL0IsS0FBSyxRQUFVLENBQUMsRUFDaEIsS0FBSyxJQUFNLEVBQ1gsS0FBSyxPQUFTLEVBQUksT0FDbEIsS0FBSyxJQUFNLEVBQ1gsS0FBSyxNQUFRLEVBQ2IsS0FBSyxvQkFBc0IsQ0FBQyxHQUc5QixFQUFLLFdBQVcsVUFBVSxZQUFlLEVBQUcsQ0FDMUMsSUFBSSxFQUFRLEVBQUssV0FBVyxRQUU1QixNQUFPLEVBQ0wsRUFBUSxFQUFNLElBQUksR0FJdEIsRUFBSyxXQUFXLFVBQVUsb0JBQXVCLEVBQUcsQ0FDbEQsSUFBSSxFQUFZLENBQUMsRUFDZixFQUFhLEtBQUssTUFDbEIsRUFBVyxLQUFLLElBRWxCLFFBQVMsRUFBSSxFQUFHLEVBQUksS0FBSyxvQkFBb0IsT0FBUSxJQUNuRCxFQUFXLEtBQUssb0JBQW9CLEdBQ3BDLEVBQVUsS0FBSyxLQUFLLElBQUksTUFBTSxFQUFZLENBQVEsQ0FBQyxFQUNuRCxFQUFhLEVBQVcsRUFNMUIsT0FIQSxFQUFVLEtBQUssS0FBSyxJQUFJLE1BQU0sRUFBWSxLQUFLLEdBQUcsQ0FBQyxFQUNuRCxLQUFLLG9CQUFvQixPQUFTLEVBRTNCLEVBQVUsS0FBSyxFQUFFLEdBRzFCLEVBQUssV0FBVyxVQUFVLGFBQWdCLENBQUMsRUFBTSxDQUMvQyxLQUFLLFFBQVEsS0FBSyxDQUNoQixLQUFNLEVBQ04sSUFBSyxLQUFLLFlBQVksRUFDdEIsTUFBTyxLQUFLLE1BQ1osSUFBSyxLQUFLLEdBQ1osQ0FBQyxFQUVELEtBQUssTUFBUSxLQUFLLEtBR3BCLEVBQUssV0FBVyxVQUFVLHdCQUEyQixFQUFHLENBQ3RELEtBQUssb0JBQW9CLEtBQUssS0FBSyxJQUFNLENBQUMsRUFDMUMsS0FBSyxLQUFPLEdBR2QsRUFBSyxXQUFXLFVBQVUsYUFBZ0IsRUFBRyxDQUMzQyxHQUFJLEtBQUssS0FBTyxLQUFLLE9BQ25CLE9BQU8sRUFBSyxXQUFXLElBR3pCLElBQUksRUFBTyxLQUFLLElBQUksT0FBTyxLQUFLLEdBQUcsRUFFbkMsT0FEQSxLQUFLLEtBQU8sRUFDTCxHQUdULEVBQUssV0FBVyxVQUFVLGNBQWlCLEVBQUcsQ0FDNUMsT0FBTyxLQUFLLElBQU0sS0FBSyxPQUd6QixFQUFLLFdBQVcsVUFBVSxlQUFrQixFQUFHLENBQzdDLEdBQUksS0FBSyxPQUFTLEtBQUssSUFDckIsS0FBSyxLQUFPLEVBR2QsS0FBSyxNQUFRLEtBQUssS0FHcEIsRUFBSyxXQUFXLFVBQVUsZUFBa0IsRUFBRyxDQUM3QyxLQUFLLEtBQU8sR0FHZCxFQUFLLFdBQVcsVUFBVSx1QkFBMEIsRUFBRyxDQUNyRCxJQUFJLEVBQU0sRUFFVixFQUNFLEdBQU8sS0FBSyxLQUFLLEVBQ2pCLEVBQVcsRUFBSyxXQUFXLENBQUMsUUFDckIsRUFBVyxJQUFNLEVBQVcsSUFFckMsR0FBSSxHQUFRLEVBQUssV0FBVyxJQUMxQixLQUFLLE9BQU8sR0FJaEIsRUFBSyxXQUFXLFVBQVUsYUFBZ0IsRUFBRyxDQUMzQyxPQUFPLEtBQUssSUFBTSxLQUFLLFFBR3pCLEVBQUssV0FBVyxJQUFNLE1BQ3RCLEVBQUssV0FBVyxNQUFRLFFBQ3hCLEVBQUssV0FBVyxLQUFPLE9BQ3ZCLEVBQUssV0FBVyxjQUFnQixnQkFDaEMsRUFBSyxXQUFXLE1BQVEsUUFDeEIsRUFBSyxXQUFXLFNBQVcsV0FFM0IsRUFBSyxXQUFXLGlCQUFvQixDQUFDLEVBQU8sQ0FJMUMsT0FIQSxFQUFNLE9BQU8sRUFDYixFQUFNLEtBQUssRUFBSyxXQUFXLEtBQUssRUFDaEMsRUFBTSxPQUFPLEVBQ04sRUFBSyxXQUFXLFNBR3pCLEVBQUssV0FBVyxnQkFBbUIsQ0FBQyxFQUFPLENBQ3pDLEdBQUksRUFBTSxNQUFNLEVBQUksRUFDbEIsRUFBTSxPQUFPLEVBQ2IsRUFBTSxLQUFLLEVBQUssV0FBVyxJQUFJLEVBS2pDLEdBRkEsRUFBTSxPQUFPLEVBRVQsRUFBTSxLQUFLLEVBQ2IsT0FBTyxFQUFLLFdBQVcsU0FJM0IsRUFBSyxXQUFXLHdCQUEyQixDQUFDLEVBQU8sQ0FJakQsT0FIQSxFQUFNLE9BQU8sRUFDYixFQUFNLGVBQWUsRUFDckIsRUFBTSxLQUFLLEVBQUssV0FBVyxhQUFhLEVBQ2pDLEVBQUssV0FBVyxTQUd6QixFQUFLLFdBQVcsaUJBQW9CLENBQUMsRUFBTyxDQUkxQyxPQUhBLEVBQU0sT0FBTyxFQUNiLEVBQU0sZUFBZSxFQUNyQixFQUFNLEtBQUssRUFBSyxXQUFXLEtBQUssRUFDekIsRUFBSyxXQUFXLFNBR3pCLEVBQUssV0FBVyxlQUFrQixDQUFDLEVBQU8sQ0FDeEMsR0FBSSxFQUFNLE1BQU0sRUFBSSxFQUNsQixFQUFNLEtBQUssRUFBSyxXQUFXLElBQUksR0FlbkMsRUFBSyxXQUFXLGNBQWdCLEVBQUssVUFBVSxVQUUvQyxFQUFLLFdBQVcsZ0JBQW1CLENBQUMsRUFBTyxDQUN6QyxNQUFPLEdBQU0sQ0FDWCxJQUFJLEVBQU8sRUFBTSxLQUFLLEVBRXRCLEdBQUksR0FBUSxFQUFLLFdBQVcsSUFDMUIsT0FBTyxFQUFLLFdBQVcsT0FJekIsR0FBSSxFQUFLLFdBQVcsQ0FBQyxHQUFLLEdBQUksQ0FDNUIsRUFBTSxnQkFBZ0IsRUFDdEIsU0FHRixHQUFJLEdBQVEsSUFDVixPQUFPLEVBQUssV0FBVyxTQUd6QixHQUFJLEdBQVEsSUFBSyxDQUVmLEdBREEsRUFBTSxPQUFPLEVBQ1QsRUFBTSxNQUFNLEVBQUksRUFDbEIsRUFBTSxLQUFLLEVBQUssV0FBVyxJQUFJLEVBRWpDLE9BQU8sRUFBSyxXQUFXLGdCQUd6QixHQUFJLEdBQVEsSUFBSyxDQUVmLEdBREEsRUFBTSxPQUFPLEVBQ1QsRUFBTSxNQUFNLEVBQUksRUFDbEIsRUFBTSxLQUFLLEVBQUssV0FBVyxJQUFJLEVBRWpDLE9BQU8sRUFBSyxXQUFXLFNBTXpCLEdBQUksR0FBUSxLQUFPLEVBQU0sTUFBTSxJQUFNLEVBRW5DLE9BREEsRUFBTSxLQUFLLEVBQUssV0FBVyxRQUFRLEVBQzVCLEVBQUssV0FBVyxRQU16QixHQUFJLEdBQVEsS0FBTyxFQUFNLE1BQU0sSUFBTSxFQUVuQyxPQURBLEVBQU0sS0FBSyxFQUFLLFdBQVcsUUFBUSxFQUM1QixFQUFLLFdBQVcsUUFHekIsR0FBSSxFQUFLLE1BQU0sRUFBSyxXQUFXLGFBQWEsRUFDMUMsT0FBTyxFQUFLLFdBQVcsVUFLN0IsRUFBSyxvQkFBdUIsQ0FBQyxFQUFLLEVBQU8sQ0FDdkMsS0FBSyxNQUFRLElBQUksRUFBSyxXQUFXLENBQUcsRUFDcEMsS0FBSyxNQUFRLEVBQ2IsS0FBSyxjQUFnQixDQUFDLEVBQ3RCLEtBQUssVUFBWSxHQUduQixFQUFLLFlBQVksVUFBVSxjQUFpQixFQUFHLENBQzdDLEtBQUssTUFBTSxJQUFJLEVBQ2YsS0FBSyxRQUFVLEtBQUssTUFBTSxRQUUxQixJQUFJLEVBQVEsRUFBSyxZQUFZLFlBRTdCLE1BQU8sRUFDTCxFQUFRLEVBQU0sSUFBSSxFQUdwQixPQUFPLEtBQUssT0FHZCxFQUFLLFlBQVksVUFBVSxtQkFBc0IsRUFBRyxDQUNsRCxPQUFPLEtBQUssUUFBUSxLQUFLLFlBRzNCLEVBQUssWUFBWSxVQUFVLHNCQUF5QixFQUFHLENBQ3JELElBQUksRUFBUyxLQUFLLFdBQVcsRUFFN0IsT0FEQSxLQUFLLFdBQWEsRUFDWCxHQUdULEVBQUssWUFBWSxVQUFVLG1CQUFzQixFQUFHLENBQ2xELElBQUksRUFBa0IsS0FBSyxjQUMzQixLQUFLLE1BQU0sT0FBTyxDQUFlLEVBQ2pDLEtBQUssY0FBZ0IsQ0FBQyxHQUd4QixFQUFLLFlBQVksb0JBQXVCLENBQUMsRUFBUSxDQUMvQyxJQUFJLEVBQVMsRUFBTyxXQUFXLEVBRS9CLEdBQUksR0FBVSxLQUNaLE9BR0YsT0FBUSxFQUFPLFdBQ1IsRUFBSyxXQUFXLFNBQ25CLE9BQU8sRUFBSyxZQUFZLG1CQUNyQixFQUFLLFdBQVcsTUFDbkIsT0FBTyxFQUFLLFlBQVksZ0JBQ3JCLEVBQUssV0FBVyxLQUNuQixPQUFPLEVBQUssWUFBWSxrQkFFeEIsSUFBSSxFQUNGLDRDQUE4QyxFQUFPLEtBRXZELEdBQUksRUFBTyxJQUFJLFFBQVUsRUFDdkIsR0FBZ0IsZ0JBQWtCLEVBQU8sSUFBTSxJQUdqRCxNQUFNLElBQUksRUFBSyxnQkFBZ0IsRUFBYyxFQUFPLE1BQU8sRUFBTyxHQUFHLElBSTNFLEVBQUssWUFBWSxzQkFBeUIsQ0FBQyxFQUFRLENBQ2pELElBQUksRUFBUyxFQUFPLGNBQWMsRUFFbEMsR0FBSSxHQUFVLEtBQ1osT0FHRixPQUFRLEVBQU8sU0FDUixJQUNILEVBQU8sY0FBYyxTQUFXLEVBQUssTUFBTSxTQUFTLFdBQ3BELFVBQ0csSUFDSCxFQUFPLGNBQWMsU0FBVyxFQUFLLE1BQU0sU0FBUyxTQUNwRCxjQUVBLElBQUksRUFBZSxrQ0FBb0MsRUFBTyxJQUFNLElBQ3BFLE1BQU0sSUFBSSxFQUFLLGdCQUFnQixFQUFjLEVBQU8sTUFBTyxFQUFPLEdBQUcsRUFHekUsSUFBSSxFQUFhLEVBQU8sV0FBVyxFQUVuQyxHQUFJLEdBQWMsS0FBVyxDQUMzQixJQUFJLEVBQWUseUNBQ25CLE1BQU0sSUFBSSxFQUFLLGdCQUFnQixFQUFjLEVBQU8sTUFBTyxFQUFPLEdBQUcsRUFHdkUsT0FBUSxFQUFXLFdBQ1osRUFBSyxXQUFXLE1BQ25CLE9BQU8sRUFBSyxZQUFZLGdCQUNyQixFQUFLLFdBQVcsS0FDbkIsT0FBTyxFQUFLLFlBQVksa0JBRXhCLElBQUksRUFDRixtQ0FBcUMsRUFBVyxLQUFPLElBQ3pELE1BQU0sSUFBSSxFQUFLLGdCQUNiLEVBQ0EsRUFBVyxNQUNYLEVBQVcsR0FDYixJQUlOLEVBQUssWUFBWSxtQkFBc0IsQ0FBQyxFQUFRLENBQzlDLElBQUksRUFBUyxFQUFPLGNBQWMsRUFFbEMsR0FBSSxHQUFVLEtBQ1osT0FHRixHQUFJLEVBQU8sTUFBTSxVQUFVLFFBQVEsRUFBTyxHQUFHLEdBQUssR0FBSSxDQUNwRCxJQUFJLEVBQWlCLEVBQU8sTUFBTSxVQUM3QixZQUFhLENBQUMsRUFBRyxDQUNoQixNQUFPLElBQU0sRUFBSSxJQUNsQixFQUNBLEtBQUssSUFBSSxFQUNaLEVBQ0UsdUJBQ0EsRUFBTyxJQUNQLHVCQUNBLEVBRUosTUFBTSxJQUFJLEVBQUssZ0JBQWdCLEVBQWMsRUFBTyxNQUFPLEVBQU8sR0FBRyxFQUd2RSxFQUFPLGNBQWMsT0FBUyxDQUFDLEVBQU8sR0FBRyxFQUV6QyxJQUFJLEVBQWEsRUFBTyxXQUFXLEVBRW5DLEdBQUksR0FBYyxLQUFXLENBQzNCLElBQUksRUFBZSxnQ0FDbkIsTUFBTSxJQUFJLEVBQUssZ0JBQWdCLEVBQWMsRUFBTyxNQUFPLEVBQU8sR0FBRyxFQUd2RSxPQUFRLEVBQVcsV0FDWixFQUFLLFdBQVcsS0FDbkIsT0FBTyxFQUFLLFlBQVksa0JBRXhCLElBQUksRUFBZSwwQkFBNEIsRUFBVyxLQUFPLElBQ2pFLE1BQU0sSUFBSSxFQUFLLGdCQUNiLEVBQ0EsRUFBVyxNQUNYLEVBQVcsR0FDYixJQUlOLEVBQUssWUFBWSxrQkFBcUIsQ0FBQyxFQUFRLENBQzdDLElBQUksRUFBUyxFQUFPLGNBQWMsRUFFbEMsR0FBSSxHQUFVLEtBQ1osT0FLRixHQUZBLEVBQU8sY0FBYyxLQUFPLEVBQU8sSUFBSSxZQUFZLEVBRS9DLEVBQU8sSUFBSSxRQUFRLEdBQUcsR0FBSyxHQUM3QixFQUFPLGNBQWMsWUFBYyxHQUdyQyxJQUFJLEVBQWEsRUFBTyxXQUFXLEVBRW5DLEdBQUksR0FBYyxLQUFXLENBQzNCLEVBQU8sV0FBVyxFQUNsQixPQUdGLE9BQVEsRUFBVyxXQUNaLEVBQUssV0FBVyxLQUVuQixPQURBLEVBQU8sV0FBVyxFQUNYLEVBQUssWUFBWSxlQUNyQixFQUFLLFdBQVcsTUFFbkIsT0FEQSxFQUFPLFdBQVcsRUFDWCxFQUFLLFlBQVksZ0JBQ3JCLEVBQUssV0FBVyxjQUNuQixPQUFPLEVBQUssWUFBWSx1QkFDckIsRUFBSyxXQUFXLE1BQ25CLE9BQU8sRUFBSyxZQUFZLGdCQUNyQixFQUFLLFdBQVcsU0FFbkIsT0FEQSxFQUFPLFdBQVcsRUFDWCxFQUFLLFlBQVksc0JBRXhCLElBQUksRUFBZSwyQkFBNkIsRUFBVyxLQUFPLElBQ2xFLE1BQU0sSUFBSSxFQUFLLGdCQUNiLEVBQ0EsRUFBVyxNQUNYLEVBQVcsR0FDYixJQUlOLEVBQUssWUFBWSwwQkFBNkIsQ0FBQyxFQUFRLENBQ3JELElBQUksRUFBUyxFQUFPLGNBQWMsRUFFbEMsR0FBSSxHQUFVLEtBQ1osT0FHRixJQUFJLEVBQWUsU0FBUyxFQUFPLElBQUssRUFBRSxFQUUxQyxHQUFJLE1BQU0sQ0FBWSxFQUFHLENBQ3ZCLElBQUksRUFBZSxnQ0FDbkIsTUFBTSxJQUFJLEVBQUssZ0JBQWdCLEVBQWMsRUFBTyxNQUFPLEVBQU8sR0FBRyxFQUd2RSxFQUFPLGNBQWMsYUFBZSxFQUVwQyxJQUFJLEVBQWEsRUFBTyxXQUFXLEVBRW5DLEdBQUksR0FBYyxLQUFXLENBQzNCLEVBQU8sV0FBVyxFQUNsQixPQUdGLE9BQVEsRUFBVyxXQUNaLEVBQUssV0FBVyxLQUVuQixPQURBLEVBQU8sV0FBVyxFQUNYLEVBQUssWUFBWSxlQUNyQixFQUFLLFdBQVcsTUFFbkIsT0FEQSxFQUFPLFdBQVcsRUFDWCxFQUFLLFlBQVksZ0JBQ3JCLEVBQUssV0FBVyxjQUNuQixPQUFPLEVBQUssWUFBWSx1QkFDckIsRUFBSyxXQUFXLE1BQ25CLE9BQU8sRUFBSyxZQUFZLGdCQUNyQixFQUFLLFdBQVcsU0FFbkIsT0FEQSxFQUFPLFdBQVcsRUFDWCxFQUFLLFlBQVksc0JBRXhCLElBQUksRUFBZSwyQkFBNkIsRUFBVyxLQUFPLElBQ2xFLE1BQU0sSUFBSSxFQUFLLGdCQUNiLEVBQ0EsRUFBVyxNQUNYLEVBQVcsR0FDYixJQUlOLEVBQUssWUFBWSxtQkFBc0IsQ0FBQyxFQUFRLENBQzlDLElBQUksRUFBUyxFQUFPLGNBQWMsRUFFbEMsR0FBSSxHQUFVLEtBQ1osT0FHRixJQUFJLEVBQVEsU0FBUyxFQUFPLElBQUssRUFBRSxFQUVuQyxHQUFJLE1BQU0sQ0FBSyxFQUFHLENBQ2hCLElBQUksRUFBZSx3QkFDbkIsTUFBTSxJQUFJLEVBQUssZ0JBQWdCLEVBQWMsRUFBTyxNQUFPLEVBQU8sR0FBRyxFQUd2RSxFQUFPLGNBQWMsTUFBUSxFQUU3QixJQUFJLEVBQWEsRUFBTyxXQUFXLEVBRW5DLEdBQUksR0FBYyxLQUFXLENBQzNCLEVBQU8sV0FBVyxFQUNsQixPQUdGLE9BQVEsRUFBVyxXQUNaLEVBQUssV0FBVyxLQUVuQixPQURBLEVBQU8sV0FBVyxFQUNYLEVBQUssWUFBWSxlQUNyQixFQUFLLFdBQVcsTUFFbkIsT0FEQSxFQUFPLFdBQVcsRUFDWCxFQUFLLFlBQVksZ0JBQ3JCLEVBQUssV0FBVyxjQUNuQixPQUFPLEVBQUssWUFBWSx1QkFDckIsRUFBSyxXQUFXLE1BQ25CLE9BQU8sRUFBSyxZQUFZLGdCQUNyQixFQUFLLFdBQVcsU0FFbkIsT0FEQSxFQUFPLFdBQVcsRUFDWCxFQUFLLFlBQVksc0JBRXhCLElBQUksRUFBZSwyQkFBNkIsRUFBVyxLQUFPLElBQ2xFLE1BQU0sSUFBSSxFQUFLLGdCQUNiLEVBQ0EsRUFBVyxNQUNYLEVBQVcsR0FDYixZQVFJLENBQUMsRUFBTSxFQUFTLENBQ3hCLFVBQVcsU0FBVyxZQUFjLE9BQU8sSUFFekMsT0FBTyxDQUFPLGlCQUNFLElBQVksU0FNNUIsRUFBTyxRQUFVLEVBQVEsTUFHekIsR0FBSyxLQUFPLEVBQVEsR0FFckIsYUFBZSxFQUFHLENBTW5CLE9BQU8sRUFDUixJQUNBLElDcC9HSCxnQkFvQkEsU0FBUyxFQUFRLENBQ2YsRUFDQSxFQUNBLEVBQ0EsRUFDQSxDQUNBLElBQUssRUFBTSxLQUFLLEVBQUUsT0FBUSxDQUN4QixFQUFTLFVBQVksaUZBQ3JCLE9BRUYsTUFBTSxFQUFVLEVBQUUsY0FBZSxDQUFDLEVBQUcsQ0FDbkMsRUFBRSxLQUFLLEVBQU8sQ0FBRSxNQUFPLElBQUssWUFBYSxFQUFLLENBQUMsRUFDL0MsRUFBRSxLQUFLLEVBQU8sQ0FDWixNQUFPLEdBQ1AsWUFBYSxHQUNiLFNBQVUsVUFBSyxNQUFNLFNBQVMsUUFDaEMsQ0FBQyxFQUNELEVBQUUsS0FBSyxFQUFPLENBQUUsTUFBTyxFQUFHLGFBQWMsQ0FBRSxDQUFDLEVBQzVDLEVBRUQsSUFBSyxFQUFRLE9BQVEsQ0FDbkIsRUFBUyxVQUFZLHlFQUNyQixPQUdGLEVBQVMsVUFBWSxFQUNsQixJQUFJLENBQUMsSUFBTSxHQUFnQixFQUFHLEVBQVUsRUFBRSxJQUFJLENBQUMsRUFDL0MsS0FBSyxJQUFJLEVBR2QsU0FBUyxFQUFlLENBQUMsRUFBMkIsRUFBd0IsQ0FDMUUsTUFBTSxFQUFZLEVBQU8sVUFBd0IsU0FDakQsTUFBTztBQUFBLGlEQUN3QyxFQUFJO0FBQUEsVUFDM0MsRUFBMEIsRUFBSSxLQUFNLE9BQVEsRUFBVSxFQUFLO0FBQUEsdUNBQzlCLEVBQ2pDLEVBQUksS0FDSixPQUNBLEVBQ0EsRUFDRjtBQUFBLFVBVUosU0FBUyxDQUF5QixDQUNoQyxFQUNBLEVBQ0EsRUFDQSxFQUNRLENBQ1IsTUFBTSxFQUFTLElBQUksTUFDbkIsSUFBSSxFQUFZLElBQUksTUFFcEIsUUFBVyxLQUFnQixPQUFPLE9BQU8sQ0FBUSxFQUFHLENBQ2xELElBQUssRUFBYSxHQUFjLFNBQ2hDLEVBQVksRUFBVSxPQUFPLEVBQWEsR0FBYSxRQUFRLEVBRWpFLEVBQVUsS0FBSyxDQUFDLEVBQUcsSUFBTSxFQUFFLEdBQUssRUFBRSxFQUFFLEVBRXBDLElBQUksRUFBWSxFQUVoQixTQUFTLENBQVcsRUFBeUIsQ0FDM0MsR0FBSSxHQUFhLEVBQUssT0FBUSxPQUFPLEtBQ3JDLE1BQU0sRUFBVSxFQUFLLFFBQVEsS0FBTSxDQUFTLEVBQ3RDLEVBQW9CLEVBQzFCLElBQUksRUFBWSxHQUNoQixHQUFJLEdBQVcsRUFDYixFQUFZLEVBQUssTUFBTSxFQUFXLENBQU8sRUFDekMsRUFBWSxFQUFVLE1BRXRCLEdBQVksRUFBSyxNQUFNLENBQVMsRUFDaEMsRUFBWSxFQUFLLE9BRW5CLE1BQU8sQ0FDTCxlQUFnQixFQUNoQixhQUFjLEVBQ2QsS0FBTSxDQUNSLEVBR0YsR0FBSSxFQUFlLENBQ2pCLElBQUksRUFBVyxFQUFZLEVBQzNCLE1BQU8sRUFBVSxDQUVmLE1BQU0sRUFBb0IsRUFBVSxPQUNsQyxDQUFDLElBQ0MsRUFBSSxJQUFNLEVBQVUsZ0JBQWtCLEVBQUksR0FBSyxFQUFVLFlBQzdELEVBQ0EsR0FBSSxFQUFrQixPQUNwQixFQUFPLEtBQUssTUFBTSxFQUFXLEVBQVUsQ0FBaUIsR0FBRyxFQUM3RCxFQUFXLEVBQVksT0FHekIsR0FBTyxLQUNMLEVBQ0UsQ0FBRSxlQUFnQixFQUFHLGFBQWMsRUFBSyxPQUFRLE1BQUssRUFDckQsQ0FDRixDQUNGLEVBR0YsT0FBTyxFQUFPLEtBQUssSUFBSSxFQUd6QixTQUFTLENBQVUsQ0FDakIsRUFDQSxFQUNRLENBQ1IsTUFBTSxFQUFTLElBQUksTUFFbkIsSUFBSSxFQUFpQixFQUVyQixRQUFZLEVBQU8sS0FBUSxFQUFXLENBQ3BDLE1BQU0sRUFBYSxFQUFRLEVBQUssZUFDaEMsR0FBSSxFQUFhLEVBQ2YsRUFBTyxLQUFLLEVBQUssS0FBSyxNQUFNLEVBQWdCLENBQVUsQ0FBQyxFQUV6RCxFQUFPLEtBQUssUUFBUSxFQUNwQixFQUFPLEtBQUssRUFBSyxLQUFLLE1BQU0sRUFBWSxFQUFhLENBQUcsQ0FBQyxFQUN6RCxFQUFPLEtBQUssU0FBUyxFQUNyQixFQUFpQixFQUFhLEVBR2hDLEdBQUksRUFBaUIsRUFBSyxLQUFLLE9BQzdCLEVBQU8sS0FBSyxFQUFLLEtBQUssTUFBTSxDQUFjLENBQUMsRUFHN0MsSUFBSyxFQUFPLE9BQVEsTUFBTyxHQUUzQixPQUFPLEVBQU8sS0FBSyxFQUFFLEVBR3ZCLE9BQU8saUJBQWlCLFlBQWEsSUFBTSxDQUN6QyxNQUFNLEVBQVUsU0FBUyxjQUN2QixrQkFDRixFQUNBLElBQUssRUFBUyxPQUVkLE1BQU0sRUFBVyxTQUFTLGNBQ3hCLHlCQUNGLEVBQ0EsSUFBSyxFQUFVLE9BRWYsTUFBTSxFQUFZLFNBQVMsY0FDekIsaUJBQ0YsRUFDQSxJQUFLLEVBQVcsT0FJaEIsU0FBUyxpQkFBaUIsNkJBQTZCLEVBQUUsUUFBUSxDQUFDLElBQVcsQ0FDM0UsRUFBTyxpQkFBaUIsUUFBUyxDQUFDLElBQU0sQ0FDdEMsR0FBSSxFQUFFLFNBQVcsRUFBUSxPQUN6QixFQUFVLFlBQVksRUFDdkIsRUFDRixFQUVELE1BQU0sRUFBTSxPQUdaLElBQUssRUFBSSxjQUFlLENBQ3RCLFFBQVEsS0FBSyx3QkFBd0IsRUFDckMsT0FFRixNQUFNLEVBQWMsRUFBSSxjQUVsQixFQUF1QyxDQUFDLEVBRXhDLEVBQUksa0JBQWMsRUFBRyxDQUN6QixLQUFLLElBQUksS0FBSyxFQUNkLEtBQUssTUFBTSxNQUFNLEVBQ2pCLEtBQUssTUFBTSxNQUFNLEVBQ2pCLEtBQUssTUFBTSxLQUFLLEVBRWhCLEtBQUssa0JBQW9CLENBQUMsVUFBVSxFQUVwQyxRQUFXLEtBQU8sRUFDaEIsS0FBSyxJQUFJLENBQUcsRUFDWixFQUFVLEVBQUksS0FBTyxFQUV4QixFQUVELFNBQVMsQ0FBUSxDQUNmLEVBQ0EsRUFDQSxFQUFxQixHQUNyQixFQUNhLENBQ2IsSUFBSSxFQUFzQixLQUMxQixlQUFnQixFQUFnQixDQUM5QixJQUFJLEVBQVUsS0FDVixFQUFPLFVBQ1AsVUFBaUIsRUFBRyxDQUV0QixHQURBLEVBQVUsTUFDTCxFQUFXLEVBQUssTUFBTSxFQUFTLENBQUksR0FFdEMsRUFBVSxJQUFjLEVBRzVCLEdBRkEsYUFBYSxDQUFRLEVBQ3JCLEVBQVUsV0FBVyxFQUFPLENBQUksRUFDNUIsRUFBeUIsRUFBd0IsRUFDckQsR0FBSSxFQUFTLEVBQUssTUFBTSxFQUFTLENBQUksR0FJekMsTUFBTSxFQUFvQixFQUFTLENBQUMsSUFBa0IsQ0FDcEQsR0FBUyxFQUFXLEVBQUcsRUFBTyxDQUFRLEdBQ3JDLEdBQUcsRUFHTixFQUFRLGlCQUFpQixRQUFTLENBQUMsSUFBTSxDQUN2QyxFQUFtQixFQUFFLE9BQTZCLEtBQUssRUFDeEQsRUFHQyxTQUFTLGNBQWMscUJBQXFCLEVBQzVDLGlCQUFpQixRQUFTLENBQUMsSUFBTSxDQUlqQyxPQUhBLEVBQUUsZUFBZSxFQUNqQixFQUFVLFlBQVksRUFDdEIsRUFBUSxNQUFNLEVBQ1AsR0FDUixFQUVELE9BQU8saUJBQWlCLFVBQVcsQ0FBQyxJQUFNLENBQ3hDLEdBQUksRUFBVSxRQUFRLGVBQWUsRUFBRyxPQUN4QyxHQUFJLEVBQUUsTUFBUSxJQUNaLEVBQVUsWUFBWSxFQUN0QixFQUFRLE1BQU0sRUFDZCxFQUFFLGVBQWUsRUFFcEIsRUFDRCxPQUFPLGlCQUFpQixVQUFXLENBQUMsSUFBTSxDQUN4QyxHQUFJLEVBQUUsTUFBUSxTQUNaLEVBQVUsWUFBWSxFQUV6QixFQUNGIiwKICAiZGVidWdJZCI6ICJEOTRBNEFCQ0YxQTRCMTY4NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ== diff --git a/yarn.lock b/yarn.lock index 796b0e4..d2d2a41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,5822 +1,3895 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 6 - cacheKey: 8 - -"@ampproject/remapping@npm:^2.2.0": - version: 2.3.0 - resolution: "@ampproject/remapping@npm:2.3.0" - dependencies: - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.24 - checksum: d3ad7b89d973df059c4e8e6d7c972cbeb1bb2f18f002a3bd04ae0707da214cb06cc06929b65aa2313b9347463df2914772298bae8b1d7973f246bb3f2ab3e8f0 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" - dependencies: - "@babel/highlight": ^7.24.7 - picocolors: ^1.0.0 - checksum: 830e62cd38775fdf84d612544251ce773d544a8e63df667728cc9e0126eeef14c6ebda79be0f0bc307e8318316b7f58c27ce86702e0a1f5c321d842eb38ffda4 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.25.2": - version: 7.25.4 - resolution: "@babel/compat-data@npm:7.25.4" - checksum: b12a91d27c3731a4b0bdc9312a50b1911f41f7f728aaf0d4b32486e2257fd2cb2d3ea1a295e98449600c48f2c7883a3196ca77cda1cef7d97a10c2e83d037974 - languageName: node - linkType: hard - -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.0 - "@babel/helper-compilation-targets": ^7.25.2 - "@babel/helper-module-transforms": ^7.25.2 - "@babel/helpers": ^7.25.0 - "@babel/parser": ^7.25.0 - "@babel/template": ^7.25.0 - "@babel/traverse": ^7.25.2 - "@babel/types": ^7.25.2 - convert-source-map: ^2.0.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.3 - semver: ^6.3.1 - checksum: 9a1ef604a7eb62195f70f9370cec45472a08114e3934e3eaaedee8fd754edf0730e62347c7b4b5e67d743ce57b5bb8cf3b92459482ca94d06e06246ef021390a - languageName: node - linkType: hard - -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.4, @babel/generator@npm:^7.7.2": - version: 7.25.5 - resolution: "@babel/generator@npm:7.25.5" - dependencies: - "@babel/types": ^7.25.4 - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: d7713f02536a8144eca810e9b13ae854b05fec462348eaf52e7b50df2c0a312bc43bfff0e8e10d6dd982e8986d61175ac8e67d7358a8b4dad9db4d6733bf0c9c - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" - dependencies: - "@babel/compat-data": ^7.25.2 - "@babel/helper-validator-option": ^7.24.8 - browserslist: ^4.23.1 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: aed33c5496cb9db4b5e2d44e26bf8bc474074cc7f7bb5ebe1d4a20fdeb362cb3ba9e1596ca18c7484bcd6e5c3a155ab975e420d520c0ae60df81f9de04d0fd16 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" - dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 8ac15d96d262b8940bc469052a048e06430bba1296369be695fabdf6799f201dd0b00151762b56012a218464e706bc033f27c07f6cec20c6f8f5fd6543c67054 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" - dependencies: - "@babel/helper-module-imports": ^7.24.7 - "@babel/helper-simple-access": ^7.24.7 - "@babel/helper-validator-identifier": ^7.24.7 - "@babel/traverse": ^7.25.2 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 282d4e3308df6746289e46e9c39a0870819630af5f84d632559171e4fae6045684d771a65f62df3d569e88ccf81dc2def78b8338a449ae3a94bb421aa14fc367 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.24.8 - resolution: "@babel/helper-plugin-utils@npm:7.24.8" - checksum: 73b1a83ba8bcee21dc94de2eb7323207391715e4369fd55844bb15cf13e3df6f3d13a40786d990e6370bf0f571d94fc31f70dec96c1d1002058258c35ca3767a - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-simple-access@npm:7.24.7" - dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: ddbf55f9dea1900213f2a1a8500fabfd21c5a20f44dcfa957e4b0d8638c730f88751c77f678644f754f1a1dc73f4eb8b766c300deb45a9daad000e4247957819 - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 39b03c5119216883878655b149148dc4d2e284791e969b19467a9411fccaa33f7a713add98f4db5ed519535f70ad273cdadfd2eb54d47ebbdeac5083351328ce - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-identifier@npm:7.24.7" - checksum: 6799ab117cefc0ecd35cd0b40ead320c621a298ecac88686a14cffceaac89d80cdb3c178f969861bf5fa5e4f766648f9161ea0752ecfe080d8e89e3147270257 - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helpers@npm:7.25.0" - dependencies: - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.0 - checksum: 739e3704ff41a30f5eaac469b553f4d3ab02be6ced083f5925851532dfbd9efc5c347728e77b754ed0b262a4e5e384e60932a62c192d338db7e4b7f3adf9f4a7 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" - dependencies: - "@babel/helper-validator-identifier": ^7.24.7 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - picocolors: ^1.0.0 - checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/parser@npm:7.25.4" - dependencies: - "@babel/types": ^7.25.4 - bin: - parser: ./bin/babel-parser.js - checksum: fe4f083d4ad34f019dd7fad672cd007003004fb0a3df9b7315a5da9a5e8e56c1fed95acab6862e7d76cfccb2e8e364bcc307e9117718e6bb6dfb2e87ad065abf - languageName: node - linkType: hard - -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 - languageName: node - linkType: hard - -"@babel/plugin-syntax-bigint@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.12.13": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": ^7.12.13 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-attributes@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 590dbb5d1a15264f74670b427b8d18527672c3d6c91d7bae7e65f80fd810edbc83d90e68065088644cbad3f2457ed265a54a9956fb789fcb9a5b521822b3a275 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.24.7 - resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7a5ca629d8ca1e1ee78705a78e58c12920d07ed8006d7e7232b31296a384ff5e41d7b649bde5561196041037bbb9f9715be1d1c20975df87ca204f34ad15b965 - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.25.4 - resolution: "@babel/plugin-syntax-typescript@npm:7.25.4" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9b89b8930cd5983f64251d75c9fcdc17a8dc73837d6de12220ff972888ecff4054a6467cf0c423cad242aa96c0f0564a39a0823073728cc02239b80d13f02230 - languageName: node - linkType: hard - -"@babel/template@npm:^7.25.0, @babel/template@npm:^7.3.3": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/parser": ^7.25.0 - "@babel/types": ^7.25.0 - checksum: 3f2db568718756d0daf2a16927b78f00c425046b654cd30b450006f2e84bdccaf0cbe6dc04994aa1f5f6a4398da2f11f3640a4d3ee31722e43539c4c919c817b - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2": - version: 7.25.4 - resolution: "@babel/traverse@npm:7.25.4" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.4 - "@babel/parser": ^7.25.4 - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.4 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: 3b6d879b9d843b119501585269b3599f047011ae21eb7820d00aef62fc3a2bcdaf6f4cdf2679795a2d7c0b6b5d218974916e422f08dea08613dc42188ef21e4b - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.4, @babel/types@npm:^7.3.3": - version: 7.25.4 - resolution: "@babel/types@npm:7.25.4" - dependencies: - "@babel/helper-string-parser": ^7.24.8 - "@babel/helper-validator-identifier": ^7.24.7 - to-fast-properties: ^2.0.0 - checksum: 497f8b583c54a92a59c3ec542144695064cd5c384fcca46ba1aa301d5e5dd6c1d011f312ca024cb0f9c956da07ae82fb4c348c31a30afa31a074c027720d2aa8 - languageName: node - linkType: hard - -"@bcoe/v8-coverage@npm:^0.2.3": - version: 0.2.3 - resolution: "@bcoe/v8-coverage@npm:0.2.3" - checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 - languageName: node - linkType: hard - -"@braintree/sanitize-url@npm:^6.0.1": - version: 6.0.4 - resolution: "@braintree/sanitize-url@npm:6.0.4" - checksum: f5ec6048973722ea1c46ae555d2e9eb848d7fa258994f8ea7d6db9514ee754ea3ef344ef71b3696d486776bcb839f3124e79f67c6b5b2814ed2da220b340627c - languageName: node - linkType: hard - -"@djockey/linkmapper-typedoc@npm:^0.0.7": - version: 0.0.7 - resolution: "@djockey/linkmapper-typedoc@npm:0.0.7" - dependencies: - argparse: ^2.0.1 - typedoc: ^0.26.6 - peerDependencies: - typescript: ^5.0.0 - bin: - linkmapper-typedoc: index.js - checksum: 494bcd5240c5827ac3d8a69a698abc6069c149ee9dfb71454552924989acc5692c14505eb11cedbd38705b23132ade02c282c3483823760fd0cc9fb0da098d65 - languageName: node - linkType: hard - -"@djot/djot@npm:^0.3.1": - version: 0.3.1 - resolution: "@djot/djot@npm:0.3.1" - bin: - djot: lib/cli.js - checksum: e36f71b8b87de77739606464c48ade09b155585b25bfa75937b05dcba0a92658a4ccd357f84935fb0378f03145ac6a89ce2dae6f58c3a4544cdfe958e64df579 - languageName: node - linkType: hard - -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: ^5.1.2 - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: ^7.0.1 - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: ^8.1.0 - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb - languageName: node - linkType: hard - -"@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.1.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" - dependencies: - camelcase: ^5.3.1 - find-up: ^4.1.0 - get-package-type: ^0.1.0 - js-yaml: ^3.13.1 - resolve-from: ^5.0.0 - checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 - languageName: node - linkType: hard - -"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 - languageName: node - linkType: hard - -"@jest/console@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/console@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - slash: ^3.0.0 - checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 - languageName: node - linkType: hard - -"@jest/core@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/core@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/reporters": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - ci-info: ^3.2.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-changed-files: ^29.7.0 - jest-config: ^29.7.0 - jest-haste-map: ^29.7.0 - jest-message-util: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-resolve-dependencies: ^29.7.0 - jest-runner: ^29.7.0 - jest-runtime: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - jest-watcher: ^29.7.0 - micromatch: ^4.0.4 - pretty-format: ^29.7.0 - slash: ^3.0.0 - strip-ansi: ^6.0.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d - languageName: node - linkType: hard - -"@jest/environment@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/environment@npm:29.7.0" - dependencies: - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-mock: ^29.7.0 - checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 - languageName: node - linkType: hard - -"@jest/expect-utils@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/expect-utils@npm:29.7.0" - dependencies: - jest-get-type: ^29.6.3 - checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed - languageName: node - linkType: hard - -"@jest/expect@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/expect@npm:29.7.0" - dependencies: - expect: ^29.7.0 - jest-snapshot: ^29.7.0 - checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e - languageName: node - linkType: hard - -"@jest/fake-timers@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/fake-timers@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@sinonjs/fake-timers": ^10.0.2 - "@types/node": "*" - jest-message-util: ^29.7.0 - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00 - languageName: node - linkType: hard - -"@jest/globals@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/globals@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/expect": ^29.7.0 - "@jest/types": ^29.6.3 - jest-mock: ^29.7.0 - checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 - languageName: node - linkType: hard - -"@jest/reporters@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/reporters@npm:29.7.0" - dependencies: - "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@jridgewell/trace-mapping": ^0.3.18 - "@types/node": "*" - chalk: ^4.0.0 - collect-v8-coverage: ^1.0.0 - exit: ^0.1.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^6.0.0 - istanbul-lib-report: ^3.0.0 - istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.1.3 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - jest-worker: ^29.7.0 - slash: ^3.0.0 - string-length: ^4.0.1 - strip-ansi: ^6.0.0 - v8-to-istanbul: ^9.0.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455 - languageName: node - linkType: hard - -"@jest/schemas@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/schemas@npm:29.6.3" - dependencies: - "@sinclair/typebox": ^0.27.8 - checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 - languageName: node - linkType: hard - -"@jest/source-map@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/source-map@npm:29.6.3" - dependencies: - "@jridgewell/trace-mapping": ^0.3.18 - callsites: ^3.0.0 - graceful-fs: ^4.2.9 - checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb - languageName: node - linkType: hard - -"@jest/test-result@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/test-result@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/istanbul-lib-coverage": ^2.0.0 - collect-v8-coverage: ^1.0.0 - checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa - languageName: node - linkType: hard - -"@jest/test-sequencer@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/test-sequencer@npm:29.7.0" - dependencies: - "@jest/test-result": ^29.7.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - slash: ^3.0.0 - checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd - languageName: node - linkType: hard - -"@jest/transform@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/transform@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@jest/types": ^29.6.3 - "@jridgewell/trace-mapping": ^0.3.18 - babel-plugin-istanbul: ^6.1.1 - chalk: ^4.0.0 - convert-source-map: ^2.0.0 - fast-json-stable-stringify: ^2.1.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-util: ^29.7.0 - micromatch: ^4.0.4 - pirates: ^4.0.4 - slash: ^3.0.0 - write-file-atomic: ^4.0.2 - checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab - languageName: node - linkType: hard - -"@jest/types@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/types@npm:29.6.3" - dependencies: - "@jest/schemas": ^29.6.3 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" - dependencies: - "@jridgewell/set-array": ^1.2.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.24 - checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.2 - resolution: "@jridgewell/resolve-uri@npm:3.1.2" - checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.2.1": - version: 1.2.1 - resolution: "@jridgewell/set-array@npm:1.2.1" - checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": - version: 1.5.0 - resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" - checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": - version: 0.3.25 - resolution: "@jridgewell/trace-mapping@npm:0.3.25" - dependencies: - "@jridgewell/resolve-uri": ^3.1.0 - "@jridgewell/sourcemap-codec": ^1.4.14 - checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: ^1.1.9 - checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: ^1.6.0 - checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 - languageName: node - linkType: hard - -"@npmcli/agent@npm:^2.0.0": - version: 2.2.2 - resolution: "@npmcli/agent@npm:2.2.2" - dependencies: - agent-base: ^7.1.0 - http-proxy-agent: ^7.0.0 - https-proxy-agent: ^7.0.1 - lru-cache: ^10.0.1 - socks-proxy-agent: ^8.0.3 - checksum: 67de7b88cc627a79743c88bab35e023e23daf13831a8aa4e15f998b92f5507b644d8ffc3788afc8e64423c612e0785a6a92b74782ce368f49a6746084b50d874 - languageName: node - linkType: hard - -"@npmcli/fs@npm:^3.1.0": - version: 3.1.1 - resolution: "@npmcli/fs@npm:3.1.1" - dependencies: - semver: ^7.3.5 - checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 - languageName: node - linkType: hard - -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f - languageName: node - linkType: hard - -"@shikijs/core@npm:1.14.1": - version: 1.14.1 - resolution: "@shikijs/core@npm:1.14.1" - dependencies: - "@types/hast": ^3.0.4 - checksum: 886e6ff0ea1b78650de755db556bbd8060dd09b8d437d5ea6526a56a01973e3c4a1a14fb64de7578e6e09f94639bf6839c23c6d847e6f202d8d9015a08bd9dc3 - languageName: node - linkType: hard - -"@sinclair/typebox@npm:^0.27.8": - version: 0.27.8 - resolution: "@sinclair/typebox@npm:0.27.8" - checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 - languageName: node - linkType: hard - -"@sinonjs/commons@npm:^3.0.0": - version: 3.0.1 - resolution: "@sinonjs/commons@npm:3.0.1" - dependencies: - type-detect: 4.0.8 - checksum: a7c3e7cc612352f4004873747d9d8b2d4d90b13a6d483f685598c945a70e734e255f1ca5dc49702515533c403b32725defff148177453b3f3915bcb60e9d4601 - languageName: node - linkType: hard - -"@sinonjs/fake-timers@npm:^10.0.2": - version: 10.3.0 - resolution: "@sinonjs/fake-timers@npm:10.3.0" - dependencies: - "@sinonjs/commons": ^3.0.0 - checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 - languageName: node - linkType: hard - -"@types/argparse@npm:^2.0.16": - version: 2.0.16 - resolution: "@types/argparse@npm:2.0.16" - checksum: 4eb7c73e8a79dbc9a52bd85b63047002b47f0e2ac25f23cb8809745707b62bdc9b6f090d79d76d88972290b201f2b9316a8805516a305e5cfd6c2d0956a055dc - languageName: node - linkType: hard - -"@types/babel__core@npm:^7.1.14": - version: 7.20.5 - resolution: "@types/babel__core@npm:7.20.5" - dependencies: - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - "@types/babel__generator": "*" - "@types/babel__template": "*" - "@types/babel__traverse": "*" - checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 - languageName: node - linkType: hard - -"@types/babel__generator@npm:*": - version: 7.6.8 - resolution: "@types/babel__generator@npm:7.6.8" - dependencies: - "@babel/types": ^7.0.0 - checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 - languageName: node - linkType: hard - -"@types/babel__template@npm:*": - version: 7.4.4 - resolution: "@types/babel__template@npm:7.4.4" - dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 - checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 - languageName: node - linkType: hard - -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.20.6 - resolution: "@types/babel__traverse@npm:7.20.6" - dependencies: - "@babel/types": ^7.20.7 - checksum: 2bdc65eb62232c2d5c1086adeb0c31e7980e6fd7e50a3483b4a724a1a1029c84d9cb59749cf8de612f9afa2bc14c85b8f50e64e21f8a4398fa77eb9059a4283c - languageName: node - linkType: hard - -"@types/braces@npm:*": - version: 3.0.4 - resolution: "@types/braces@npm:3.0.4" - checksum: 7324497b6cc34c963c44d3f8516c67a83b749ab4f18defd9418b231b071af7ee8f0a0f345a52b204e867de80f684cabb21158512e1eaecbcebbabed1d1e357a3 - languageName: node - linkType: hard - -"@types/d3-array@npm:*": - version: 3.2.1 - resolution: "@types/d3-array@npm:3.2.1" - checksum: 8a41cee0969e53bab3f56cc15c4e6c9d76868d6daecb2b7d8c9ce71e0ececccc5a8239697cc52dadf5c665f287426de5c8ef31a49e7ad0f36e8846889a383df4 - languageName: node - linkType: hard - -"@types/d3-axis@npm:*": - version: 3.0.6 - resolution: "@types/d3-axis@npm:3.0.6" - dependencies: - "@types/d3-selection": "*" - checksum: ea1065d9e6d134c04427763603cbe9d549b8b5785b8ae0d002b5b14a362619d5b8f5ee3c2fda8b36b7e5a413cbcd387e1a2d89898b919a9f0cc91ad4e67b5ab5 - languageName: node - linkType: hard - -"@types/d3-brush@npm:*": - version: 3.0.6 - resolution: "@types/d3-brush@npm:3.0.6" - dependencies: - "@types/d3-selection": "*" - checksum: e5166bc53e5c914b1fed0a6ce55ca14d76ae11c5afd16b724b8ae47989e977c4af02bb07496d1ccd0a77f4ccd9a2ca7345e1d289bcfce16490fe4b39a9e0d170 - languageName: node - linkType: hard - -"@types/d3-chord@npm:*": - version: 3.0.6 - resolution: "@types/d3-chord@npm:3.0.6" - checksum: b511cf372ed8a0086d37a715c0d4aca811b614454e1f7c1561fbcd46863beaccdb115d274a7a992a30a8218393fbc3e1fdd7ca6e9d572e729a4570002c327083 - languageName: node - linkType: hard - -"@types/d3-color@npm:*": - version: 3.1.3 - resolution: "@types/d3-color@npm:3.1.3" - checksum: 8a0e79a709929502ec4effcee2c786465b9aec51b653ba0b5d05dbfec3e84f418270dd603002d94021885061ff592f614979193bd7a02ad76317f5608560e357 - languageName: node - linkType: hard - -"@types/d3-contour@npm:*": - version: 3.0.6 - resolution: "@types/d3-contour@npm:3.0.6" - dependencies: - "@types/d3-array": "*" - "@types/geojson": "*" - checksum: 83c13eb0567e95d6675d6d81cbeab38d0899c5af70a7c69354e23e0860ddb2f3e911d2cacd33a8baa60ce7846b38785a337b2d7c8d2763a1340bfb999b4bd2ab - languageName: node - linkType: hard - -"@types/d3-delaunay@npm:*": - version: 6.0.4 - resolution: "@types/d3-delaunay@npm:6.0.4" - checksum: 502fe0eb91f7d05b0f57904d68028c24348a54b1e5458009caf662de995d0e59bd82cd701b4af0087d614ee9e456d415fe32d63c25272ca753bf12b3f27b2d77 - languageName: node - linkType: hard - -"@types/d3-dispatch@npm:*": - version: 3.0.6 - resolution: "@types/d3-dispatch@npm:3.0.6" - checksum: f82076c7d205885480d363c92c19b8e0d6b9e529a3a78ce772f96a7cc4cce01f7941141f148828337035fac9676b13e7440565530491d560fdf12e562cb56573 - languageName: node - linkType: hard - -"@types/d3-drag@npm:*": - version: 3.0.7 - resolution: "@types/d3-drag@npm:3.0.7" - dependencies: - "@types/d3-selection": "*" - checksum: 1107cb1667ead79073741c06ea4a9e8e4551698f6c9c60821e327a6aa30ca2ba0b31a6fe767af85a2e38a22d2305f6c45b714df15c2bba68adf58978223a5fc5 - languageName: node - linkType: hard - -"@types/d3-dsv@npm:*": - version: 3.0.7 - resolution: "@types/d3-dsv@npm:3.0.7" - checksum: 5025e01459827d09d14e0d00281995a04042ce9e3e76444c5a65466c1d29649d82cbfaa9251e33837bf576f5c587525d8d8ff5aacc6bd3b831824d54449261b9 - languageName: node - linkType: hard - -"@types/d3-ease@npm:*": - version: 3.0.2 - resolution: "@types/d3-ease@npm:3.0.2" - checksum: 0885219966294bfc99548f37297e1c75e75da812a5f3ec941977ebb57dcab0a25acec5b2bbd82d09a49d387daafca08521ca269b7e4c27ddca7768189e987b54 - languageName: node - linkType: hard - -"@types/d3-fetch@npm:*": - version: 3.0.7 - resolution: "@types/d3-fetch@npm:3.0.7" - dependencies: - "@types/d3-dsv": "*" - checksum: e60cf60b25cbc49b2066ac2a3638f610c7379000562b0f499dd90fd57a8cb9740c24667a70496c2a66456d42867afeffb1722a75b26d95e7d7ee8667d96b0b36 - languageName: node - linkType: hard - -"@types/d3-force@npm:*": - version: 3.0.10 - resolution: "@types/d3-force@npm:3.0.10" - checksum: 0faf1321ddd85f7bf25769ee97513b380a897791ad1cd6c4282f09e0108e566132fad80f4c73cdb592a352139b22388d3c77458298a00f92ef72e27019fb33c7 - languageName: node - linkType: hard - -"@types/d3-format@npm:*": - version: 3.0.4 - resolution: "@types/d3-format@npm:3.0.4" - checksum: e69421cd93861a0c080084b0b23d4a5d6a427497559e46898189002fb756dae2c7c858b465308f6bcede7272b90e39ce8adab810bded2309035a5d9556c59134 - languageName: node - linkType: hard - -"@types/d3-geo@npm:*": - version: 3.1.0 - resolution: "@types/d3-geo@npm:3.1.0" - dependencies: - "@types/geojson": "*" - checksum: a4b2daa8a64012912ce7186891e8554af123925dca344c111b771e168a37477e02d504c6c94ee698440380e8c4f3f373d6755be97935da30eae0904f6745ce40 - languageName: node - linkType: hard - -"@types/d3-hierarchy@npm:*": - version: 3.1.7 - resolution: "@types/d3-hierarchy@npm:3.1.7" - checksum: 69746b3a65e0fe0ceb3ffcb1a8840a61e271eadb32eccb5034f0fce036d24801aef924ee45b99246580c9f7c81839ab0555f776a11773d82e860d522a2ff1c0e - languageName: node - linkType: hard - -"@types/d3-interpolate@npm:*": - version: 3.0.4 - resolution: "@types/d3-interpolate@npm:3.0.4" - dependencies: - "@types/d3-color": "*" - checksum: efd2770e174e84fc7316fdafe03cf3688451f767dde1fa6211610137f495be7f3923db7e1723a6961a0e0e9ae0ed969f4f47c038189fa0beb1d556b447922622 - languageName: node - linkType: hard - -"@types/d3-path@npm:*": - version: 3.1.0 - resolution: "@types/d3-path@npm:3.1.0" - checksum: 1e81b56ed33ba1ac954a8c42c78c3fcf2716927fe5d01b2003591193ad3b639572a3dfcedd9bf78b6b73215a5cfb01cede8f25c936e95ac18fbe3858f9b62f5c - languageName: node - linkType: hard - -"@types/d3-polygon@npm:*": - version: 3.0.2 - resolution: "@types/d3-polygon@npm:3.0.2" - checksum: 7cf1eadb54f02dd3617512b558f4c0f3811f8a6a8c887d9886981c3cc251db28b68329b2b0707d9f517231a72060adbb08855227f89bef6ef30caedc0a67cab2 - languageName: node - linkType: hard - -"@types/d3-quadtree@npm:*": - version: 3.0.6 - resolution: "@types/d3-quadtree@npm:3.0.6" - checksum: 631fb1a50dbe4fb0c97574891b180ec3d6a0f524bbd8aee8dfd44eda405e7ed1ca2b03d5568a35f697d09e5e4b598117e149236874b0c8764979a3d6242bb0bc - languageName: node - linkType: hard - -"@types/d3-random@npm:*": - version: 3.0.3 - resolution: "@types/d3-random@npm:3.0.3" - checksum: 33285b57768a724d2466ac1deec002432805c9df3e475ffb7f7fec66681cfe3e18d2f68b7f8ba45f400b274907bbebfe8adff14c9a97ef1987e476135e784925 - languageName: node - linkType: hard - -"@types/d3-scale-chromatic@npm:*, @types/d3-scale-chromatic@npm:^3.0.0": - version: 3.0.3 - resolution: "@types/d3-scale-chromatic@npm:3.0.3" - checksum: a465d126a00a71d3824957283580b4b404fe6f6bb52eb2b7303047fffed2bec6e31aeb34bfb30313e72ee1d75243c50ec5a45824eaf547f9c0849a1379527662 - languageName: node - linkType: hard - -"@types/d3-scale@npm:*, @types/d3-scale@npm:^4.0.3": - version: 4.0.8 - resolution: "@types/d3-scale@npm:4.0.8" - dependencies: - "@types/d3-time": "*" - checksum: 3b1906da895564f73bb3d0415033d9a8aefe7c4f516f970176d5b2ff7a417bd27ae98486e9a9aa0472001dc9885a9204279a1973a985553bdb3ee9bbc1b94018 - languageName: node - linkType: hard - -"@types/d3-selection@npm:*": - version: 3.0.10 - resolution: "@types/d3-selection@npm:3.0.10" - checksum: 8a1b0940eca565d754c1898b9e4f86e2778e4135878b76b3b8a89d497e37675d423ec3376f248577a502bccb55c1218cc9f6b5688a29a3b500973de8fc5f1c5c - languageName: node - linkType: hard - -"@types/d3-shape@npm:*": - version: 3.1.6 - resolution: "@types/d3-shape@npm:3.1.6" - dependencies: - "@types/d3-path": "*" - checksum: bd765be021019c43c8dca066a798a1de28a051d1213db6ca25f76c9e577da7ec40a592e3bda7628383ab48cb87164fe60b95eb5ec23761b2012bd0adb30c549a - languageName: node - linkType: hard - -"@types/d3-time-format@npm:*": - version: 4.0.3 - resolution: "@types/d3-time-format@npm:4.0.3" - checksum: e981fc9780697a9d8c5d1ddf1167d9c6bc28e4e610afddff1384fe55e6eb52cb65309b2a0a1d4cf817413b0a80b9f1a652fe0b2cb8054ace4eafff80a6093aa5 - languageName: node - linkType: hard - -"@types/d3-time@npm:*": - version: 3.0.3 - resolution: "@types/d3-time@npm:3.0.3" - checksum: a071826c80efdb1999e6406fef2db516d45f3906da3a9a4da8517fa863bae53c4c1056ca5347a20921660607d21ec874fd2febe0e961adb7be6954255587d08f - languageName: node - linkType: hard - -"@types/d3-timer@npm:*": - version: 3.0.2 - resolution: "@types/d3-timer@npm:3.0.2" - checksum: 1643eebfa5f4ae3eb00b556bbc509444d88078208ec2589ddd8e4a24f230dd4cf2301e9365947e70b1bee33f63aaefab84cd907822aae812b9bc4871b98ab0e1 - languageName: node - linkType: hard - -"@types/d3-transition@npm:*": - version: 3.0.8 - resolution: "@types/d3-transition@npm:3.0.8" - dependencies: - "@types/d3-selection": "*" - checksum: 4ff2727f0f2305cbe4fed1ef860a6cac44393607db42e4d0975eb6348338c2c3091b25bc5a1bddd31d7f3e10d1028187f7d271f6e4239d67f485f28c4f076a8b - languageName: node - linkType: hard - -"@types/d3-zoom@npm:*": - version: 3.0.8 - resolution: "@types/d3-zoom@npm:3.0.8" - dependencies: - "@types/d3-interpolate": "*" - "@types/d3-selection": "*" - checksum: a1685728949ed39faf8ce162cc13338639c57bc2fd4d55fc7902b2632cad2bc2a808941263e57ce6685647e8a6a0a556e173386a52d6bb74c9ed6195b68be3de - languageName: node - linkType: hard - -"@types/d3@npm:^7.4.3": - version: 7.4.3 - resolution: "@types/d3@npm:7.4.3" - dependencies: - "@types/d3-array": "*" - "@types/d3-axis": "*" - "@types/d3-brush": "*" - "@types/d3-chord": "*" - "@types/d3-color": "*" - "@types/d3-contour": "*" - "@types/d3-delaunay": "*" - "@types/d3-dispatch": "*" - "@types/d3-drag": "*" - "@types/d3-dsv": "*" - "@types/d3-ease": "*" - "@types/d3-fetch": "*" - "@types/d3-force": "*" - "@types/d3-format": "*" - "@types/d3-geo": "*" - "@types/d3-hierarchy": "*" - "@types/d3-interpolate": "*" - "@types/d3-path": "*" - "@types/d3-polygon": "*" - "@types/d3-quadtree": "*" - "@types/d3-random": "*" - "@types/d3-scale": "*" - "@types/d3-scale-chromatic": "*" - "@types/d3-selection": "*" - "@types/d3-shape": "*" - "@types/d3-time": "*" - "@types/d3-time-format": "*" - "@types/d3-timer": "*" - "@types/d3-transition": "*" - "@types/d3-zoom": "*" - checksum: 12234aa093c8661546168becdd8956e892b276f525d96f65a7b32fed886fc6a569fe5a1171bff26fef2a5663960635f460c9504a6f2d242ba281a2b6c8c6465c - languageName: node - linkType: hard - -"@types/debug@npm:^4.0.0": - version: 4.1.12 - resolution: "@types/debug@npm:4.1.12" - dependencies: - "@types/ms": "*" - checksum: 47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 - languageName: node - linkType: hard - -"@types/dompurify@npm:^3.0.5": - version: 3.0.5 - resolution: "@types/dompurify@npm:3.0.5" - dependencies: - "@types/trusted-types": "*" - checksum: ffc34eca6a4536e1c8c16a47cce2623c5a118a9785492e71230052d92933ff096d14326ff449031e8dfaac509413222372d8f2b28786a13159de6241df716185 - languageName: node - linkType: hard - -"@types/geojson@npm:*": - version: 7946.0.14 - resolution: "@types/geojson@npm:7946.0.14" - checksum: ae511bee6488ae3bd5a3a3347aedb0371e997b14225b8983679284e22fa4ebd88627c6e3ff8b08bf4cc35068cb29310c89427311ffc9322c255615821a922e71 - languageName: node - linkType: hard - -"@types/graceful-fs@npm:^4.1.3": - version: 4.1.9 - resolution: "@types/graceful-fs@npm:4.1.9" - dependencies: - "@types/node": "*" - checksum: 79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 - languageName: node - linkType: hard - -"@types/hast@npm:^3.0.4": - version: 3.0.4 - resolution: "@types/hast@npm:3.0.4" - dependencies: - "@types/unist": "*" - checksum: 7a973e8d16fcdf3936090fa2280f408fb2b6a4f13b42edeb5fbd614efe042b82eac68e298e556d50f6b4ad585a3a93c353e9c826feccdc77af59de8dd400d044 - languageName: node - linkType: hard - -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": - version: 2.0.6 - resolution: "@types/istanbul-lib-coverage@npm:2.0.6" - checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 - languageName: node - linkType: hard - -"@types/istanbul-lib-report@npm:*": - version: 3.0.3 - resolution: "@types/istanbul-lib-report@npm:3.0.3" - dependencies: - "@types/istanbul-lib-coverage": "*" - checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 - languageName: node - linkType: hard - -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.4 - resolution: "@types/istanbul-reports@npm:3.0.4" - dependencies: - "@types/istanbul-lib-report": "*" - checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 - languageName: node - linkType: hard - -"@types/jest@npm:^29.5.12": - version: 29.5.12 - resolution: "@types/jest@npm:29.5.12" - dependencies: - expect: ^29.0.0 - pretty-format: ^29.0.0 - checksum: 19b1efdeed9d9a60a81edc8226cdeae5af7479e493eaed273e01243891c9651f7b8b4c08fc633a7d0d1d379b091c4179bbaa0807af62542325fd72f2dd17ce1c - languageName: node - linkType: hard - -"@types/js-yaml@npm:^4.0.9": - version: 4.0.9 - resolution: "@types/js-yaml@npm:4.0.9" - checksum: e5e5e49b5789a29fdb1f7d204f82de11cb9e8f6cb24ab064c616da5d6e1b3ccfbf95aa5d1498a9fbd3b9e745564e69b4a20b6c530b5a8bbb2d4eb830cda9bc69 - languageName: node - linkType: hard - -"@types/log-update@npm:^3.1.0": - version: 3.1.0 - resolution: "@types/log-update@npm:3.1.0" - dependencies: - log-update: "*" - checksum: a7207dfd0bf28c0d05f1f22877cad7c4c6f4d530aba9cf57669d306156515aa3a63f3bdc33e84035202936c2d20ecfe1e19e6855bbba18b0de209a40ac3b31d8 - languageName: node - linkType: hard - -"@types/lunr@npm:^2.3.7": - version: 2.3.7 - resolution: "@types/lunr@npm:2.3.7" - checksum: 188a18f035e042f4c23e807ae752bfdb0076a0446ff8285b3c10572008fb00282dfeebdbbd566bfcf65dbb073daf552477a0ccbf426ebaa5ce88c0088a860924 - languageName: node - linkType: hard - -"@types/mdast@npm:^3.0.0": - version: 3.0.15 - resolution: "@types/mdast@npm:3.0.15" - dependencies: - "@types/unist": ^2 - checksum: af85042a4e3af3f879bde4059fa9e76c71cb552dffc896cdcc6cf9dc1fd38e37035c2dbd6245cfa6535b433f1f0478f5549696234ccace47a64055a10c656530 - languageName: node - linkType: hard - -"@types/micromatch@npm:^4.0.9": - version: 4.0.9 - resolution: "@types/micromatch@npm:4.0.9" - dependencies: - "@types/braces": "*" - checksum: 109920dd54116dc9b52a2973221230f0db98f119c5c20169f84358c4f956fe7c9f20b645824c1fcdf872ad2beb7c795fb503663da3283c4896785c23443abc32 - languageName: node - linkType: hard - -"@types/ms@npm:*": - version: 0.7.34 - resolution: "@types/ms@npm:0.7.34" - checksum: f38d36e7b6edecd9badc9cf50474159e9da5fa6965a75186cceaf883278611b9df6669dc3a3cc122b7938d317b68a9e3d573d316fcb35d1be47ec9e468c6bd8a - languageName: node - linkType: hard - -"@types/node@npm:*, @types/node@npm:^22.4.0": - version: 22.4.0 - resolution: "@types/node@npm:22.4.0" - dependencies: - undici-types: ~6.19.2 - checksum: 680303e9b2801f3e19453957df93f59e7ad95e2277a363ba3719e9a3e0c8949ed9bed2265a2a3444254c5e550170177c088bc2b2303eb79740fb8ee96b097ad3 - languageName: node - linkType: hard - -"@types/nunjucks@npm:^3.2.6": - version: 3.2.6 - resolution: "@types/nunjucks@npm:3.2.6" - checksum: a139cc51d877052f5a471516acfc091b48c8c6e999aeaf1148e775c8dfd722f999731b092c9174492af0f7d4a6cd592004562356fbf51af8ce8fc88ee3c29e97 - languageName: node - linkType: hard - -"@types/parse-json@npm:^4.0.0": - version: 4.0.2 - resolution: "@types/parse-json@npm:4.0.2" - checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 - languageName: node - linkType: hard - -"@types/parse5@npm:^7.0.0": - version: 7.0.0 - resolution: "@types/parse5@npm:7.0.0" - dependencies: - parse5: "*" - checksum: ae9ffc515ac3130e125922ef4cc1cd98ec29f2b841b5c5da4b3ca47b7d580b38ffbc0f82554739ffb3cf620876d662434af8ffbcec229687512263fdeb183bed - languageName: node - linkType: hard - -"@types/stack-utils@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/stack-utils@npm:2.0.3" - checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 - languageName: node - linkType: hard - -"@types/trusted-types@npm:*": - version: 2.0.7 - resolution: "@types/trusted-types@npm:2.0.7" - checksum: 8e4202766a65877efcf5d5a41b7dd458480b36195e580a3b1085ad21e948bc417d55d6f8af1fd2a7ad008015d4117d5fdfe432731157da3c68678487174e4ba3 - languageName: node - linkType: hard - -"@types/unist@npm:*, @types/unist@npm:^2, @types/unist@npm:^2.0.0": - version: 2.0.11 - resolution: "@types/unist@npm:2.0.11" - checksum: 6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e - languageName: node - linkType: hard - -"@types/yargs-parser@npm:*": - version: 21.0.3 - resolution: "@types/yargs-parser@npm:21.0.3" - checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc - languageName: node - linkType: hard - -"@types/yargs@npm:^17.0.8": - version: 17.0.33 - resolution: "@types/yargs@npm:17.0.33" - dependencies: - "@types/yargs-parser": "*" - checksum: ee013f257472ab643cb0584cf3e1ff9b0c44bca1c9ba662395300a7f1a6c55fa9d41bd40ddff42d99f5d95febb3907c9ff600fbcb92dadbec22c6a76de7e1236 - languageName: node - linkType: hard - -"a-sync-waterfall@npm:^1.0.0": - version: 1.0.1 - resolution: "a-sync-waterfall@npm:1.0.1" - checksum: 534948b50d6787c2dd5b7e89179b30c0fd96ac80a662d0f92eaa568cfffb36f1eea4aa720e3a21572d8b5f8686940954ac9d8c7667bcc719c1317ae3bdf86fe0 - languageName: node - linkType: hard - -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 - languageName: node - linkType: hard - -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": - version: 7.1.1 - resolution: "agent-base@npm:7.1.1" - dependencies: - debug: ^4.3.4 - checksum: 51c158769c5c051482f9ca2e6e1ec085ac72b5a418a9b31b4e82fe6c0a6699adb94c1c42d246699a587b3335215037091c79e0de512c516f73b6ea844202f037 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 - languageName: node - linkType: hard - -"ansi-colors@npm:^4.1.1": - version: 4.1.3 - resolution: "ansi-colors@npm:4.1.3" - checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e - languageName: node - linkType: hard - -"ansi-escapes@npm:^4.2.1": - version: 4.3.2 - resolution: "ansi-escapes@npm:4.3.2" - dependencies: - type-fest: ^0.21.3 - checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 - languageName: node - linkType: hard - -"ansi-escapes@npm:^7.0.0": - version: 7.0.0 - resolution: "ansi-escapes@npm:7.0.0" - dependencies: - environment: ^1.0.0 - checksum: 19baa61e68d1998c03b3b8bd023653a6c2667f0ed6caa9a00780ffd6f0a14f4a6563c57a38b3c0aba71bd704cd49c4c8df41be60bd81c957409f91e9dd49051f - languageName: node - linkType: hard - -"ansi-regex@npm:^4.1.0": - version: 4.1.1 - resolution: "ansi-regex@npm:4.1.1" - checksum: b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888 - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b - languageName: node - linkType: hard - -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: ^1.9.0 - checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: ^2.0.1 - checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 - languageName: node - linkType: hard - -"ansi-styles@npm:^5.0.0": - version: 5.2.0 - resolution: "ansi-styles@npm:5.2.0" - checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 - languageName: node - linkType: hard - -"anymatch@npm:^3.0.3": - version: 3.1.3 - resolution: "anymatch@npm:3.1.3" - dependencies: - normalize-path: ^3.0.0 - picomatch: ^2.0.4 - checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 - languageName: node - linkType: hard - -"apisauce@npm:^2.1.5": - version: 2.1.6 - resolution: "apisauce@npm:2.1.6" - dependencies: - axios: ^0.21.4 - checksum: 3db1447f03ecfa0d8fb9be0991bd4732a8eb4a5c96282c964c0b5f9d215dc1bca1e0fec7f5187080286368c1028deb0de8fb69cd7bccb92441b327aa1028598a - languageName: node - linkType: hard - -"app-module-path@npm:^2.2.0": - version: 2.2.0 - resolution: "app-module-path@npm:2.2.0" - checksum: b52aa49cfa809efbad41b514222e8ef3f8ee9e147f5eccf79280b45eddcc61f7aeb302b0049474e3f42072dd53a28348c57dd96f36cd461d2e31cc8ab1ef56b5 - languageName: node - linkType: hard - -"argparse@npm:^1.0.7": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" - dependencies: - sprintf-js: ~1.0.2 - checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 - languageName: node - linkType: hard - -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced - languageName: node - linkType: hard - -"asap@npm:^2.0.3": - version: 2.0.6 - resolution: "asap@npm:2.0.6" - checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d - languageName: node - linkType: hard - -"async@npm:^3.2.3": - version: 3.2.6 - resolution: "async@npm:3.2.6" - checksum: ee6eb8cd8a0ab1b58bd2a3ed6c415e93e773573a91d31df9d5ef559baafa9dab37d3b096fa7993e84585cac3697b2af6ddb9086f45d3ac8cae821bb2aab65682 - languageName: node - linkType: hard - -"axios@npm:^0.21.4": - version: 0.21.4 - resolution: "axios@npm:0.21.4" - dependencies: - follow-redirects: ^1.14.0 - checksum: 44245f24ac971e7458f3120c92f9d66d1fc695e8b97019139de5b0cc65d9b8104647db01e5f46917728edfc0cfd88eb30fc4c55e6053eef4ace76768ce95ff3c - languageName: node - linkType: hard - -"babel-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "babel-jest@npm:29.7.0" - dependencies: - "@jest/transform": ^29.7.0 - "@types/babel__core": ^7.1.14 - babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^29.6.3 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - slash: ^3.0.0 - peerDependencies: - "@babel/core": ^7.8.0 - checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7 - languageName: node - linkType: hard - -"babel-plugin-istanbul@npm:^6.1.1": - version: 6.1.1 - resolution: "babel-plugin-istanbul@npm:6.1.1" - dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@istanbuljs/load-nyc-config": ^1.0.0 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-instrument: ^5.0.4 - test-exclude: ^6.0.0 - checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a - languageName: node - linkType: hard - -"babel-plugin-jest-hoist@npm:^29.6.3": - version: 29.6.3 - resolution: "babel-plugin-jest-hoist@npm:29.6.3" - dependencies: - "@babel/template": ^7.3.3 - "@babel/types": ^7.3.3 - "@types/babel__core": ^7.1.14 - "@types/babel__traverse": ^7.0.6 - checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 - languageName: node - linkType: hard - -"babel-preset-current-node-syntax@npm:^1.0.0": - version: 1.1.0 - resolution: "babel-preset-current-node-syntax@npm:1.1.0" - dependencies: - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-bigint": ^7.8.3 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-import-attributes": ^7.24.7 - "@babel/plugin-syntax-import-meta": ^7.10.4 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 9f93fac975eaba296c436feeca1031ca0539143c4066eaf5d1ba23525a31850f03b651a1049caea7287df837a409588c8252c15627ad3903f17864c8e25ed64b - languageName: node - linkType: hard - -"babel-preset-jest@npm:^29.6.3": - version: 29.6.3 - resolution: "babel-preset-jest@npm:29.6.3" - dependencies: - babel-plugin-jest-hoist: ^29.6.3 - babel-preset-current-node-syntax: ^1.0.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: ^1.0.0 - concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 - languageName: node - linkType: hard - -"braces@npm:^3.0.3": - version: 3.0.3 - resolution: "braces@npm:3.0.3" - dependencies: - fill-range: ^7.1.1 - checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 - languageName: node - linkType: hard - -"browserslist@npm:^4.23.1": - version: 4.23.3 - resolution: "browserslist@npm:4.23.3" - dependencies: - caniuse-lite: ^1.0.30001646 - electron-to-chromium: ^1.5.4 - node-releases: ^2.0.18 - update-browserslist-db: ^1.1.0 - bin: - browserslist: cli.js - checksum: 7906064f9970aeb941310b2fcb8b4ace4a1b50aa657c986677c6f1553a8cabcc94ee9c5922f715baffbedaa0e6cf0831b6fed7b059dde6873a4bfadcbe069c7e - languageName: node - linkType: hard - -"bs-logger@npm:^0.2.6": - version: 0.2.6 - resolution: "bs-logger@npm:0.2.6" - dependencies: - fast-json-stable-stringify: 2.x - checksum: d34bdaf68c64bd099ab97c3ea608c9ae7d3f5faa1178b3f3f345acd94e852e608b2d4f9103fb2e503f5e69780e98293df41691b84be909b41cf5045374d54606 - languageName: node - linkType: hard - -"bser@npm:2.1.1": - version: 2.1.1 - resolution: "bser@npm:2.1.1" - dependencies: - node-int64: ^0.4.0 - checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 - languageName: node - linkType: hard - -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb - languageName: node - linkType: hard - -"cacache@npm:^18.0.0": - version: 18.0.4 - resolution: "cacache@npm:18.0.4" - dependencies: - "@npmcli/fs": ^3.1.0 - fs-minipass: ^3.0.0 - glob: ^10.2.2 - lru-cache: ^10.0.1 - minipass: ^7.0.3 - minipass-collect: ^2.0.1 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: b7422c113b4ec750f33beeca0f426a0024c28e3172f332218f48f963e5b970647fa1ac05679fe5bb448832c51efea9fda4456b9a95c3a1af1105fe6c1833cde2 - languageName: node - linkType: hard - -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 - languageName: node - linkType: hard - -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b - languageName: node - linkType: hard - -"camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001653 - resolution: "caniuse-lite@npm:1.0.30001653" - checksum: 289cf06c26a46f3e6460ccd5feffa788ab0ab35d306898c48120c65cfb11959bfa560e9f739393769b4fd01150c69b0747ad3ad5ec3abf3dfafd66df3c59254e - languageName: node - linkType: hard - -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: ^3.2.1 - escape-string-regexp: ^1.0.5 - supports-color: ^5.3.0 - checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 - languageName: node - linkType: hard - -"chalk@npm:^4.0.0, chalk@npm:^4.0.2": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc - languageName: node - linkType: hard - -"char-regex@npm:^1.0.2": - version: 1.0.2 - resolution: "char-regex@npm:1.0.2" - checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 - languageName: node - linkType: hard - -"character-entities@npm:^2.0.0": - version: 2.0.2 - resolution: "character-entities@npm:2.0.2" - checksum: cf1643814023697f725e47328fcec17923b8f1799102a8a79c1514e894815651794a2bffd84bb1b3a4b124b050154e4529ed6e81f7c8068a734aecf07a6d3def - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f - languageName: node - linkType: hard - -"ci-info@npm:^3.2.0": - version: 3.9.0 - resolution: "ci-info@npm:3.9.0" - checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 - languageName: node - linkType: hard - -"cjs-module-lexer@npm:^1.0.0": - version: 1.4.0 - resolution: "cjs-module-lexer@npm:1.4.0" - checksum: 3dda638a7f31dfee3879a71eff7fe02eb53d887a983ae25918dcc3d804b9fa1fe23acc4d6b4b1d3e1aa1c2cacfa168524db8dfb28e2859cf9be2e4b7f7450d89 - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: ^3.1.0 - checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 - languageName: node - linkType: hard - -"cli-cursor@npm:^5.0.0": - version: 5.0.0 - resolution: "cli-cursor@npm:5.0.0" - dependencies: - restore-cursor: ^5.0.0 - checksum: 1eb9a3f878b31addfe8d82c6d915ec2330cec8447ab1f117f4aa34f0137fbb3137ec3466e1c9a65bcb7557f6e486d343f2da57f253a2f668d691372dfa15c090 - languageName: node - linkType: hard - -"cli-spinners@npm:^2.2.0": - version: 2.9.2 - resolution: "cli-spinners@npm:2.9.2" - checksum: 1bd588289b28432e4676cb5d40505cfe3e53f2e4e10fbe05c8a710a154d6fe0ce7836844b00d6858f740f2ffe67cdc36e0fce9c7b6a8430e80e6388d5aa4956c - languageName: node - linkType: hard - -"cli-table3@npm:0.6.0": - version: 0.6.0 - resolution: "cli-table3@npm:0.6.0" - dependencies: - colors: ^1.1.2 - object-assign: ^4.1.0 - string-width: ^4.2.0 - dependenciesMeta: - colors: - optional: true - checksum: 98682a2d3eef5ad07d34a08f90398d0640004e28ecf8eb59006436f11ed7b4d453db09f46c2ea880618fbd61fee66321b3b3ee1b20276bc708b6baf6f9663d75 - languageName: node - linkType: hard - -"cliui@npm:^8.0.1": - version: 8.0.1 - resolution: "cliui@npm:8.0.1" - dependencies: - string-width: ^4.2.0 - strip-ansi: ^6.0.1 - wrap-ansi: ^7.0.0 - checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 - languageName: node - linkType: hard - -"clone@npm:^1.0.2": - version: 1.0.4 - resolution: "clone@npm:1.0.4" - checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd - languageName: node - linkType: hard - -"co@npm:^4.6.0": - version: 4.6.0 - resolution: "co@npm:4.6.0" - checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 - languageName: node - linkType: hard - -"collect-v8-coverage@npm:^1.0.0": - version: 1.0.2 - resolution: "collect-v8-coverage@npm:1.0.2" - checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da - languageName: node - linkType: hard - -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: 1.1.3 - checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: ~1.1.4 - checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 - languageName: node - linkType: hard - -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - -"color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 - languageName: node - linkType: hard - -"colors@npm:1.4.0, colors@npm:^1.1.2": - version: 1.4.0 - resolution: "colors@npm:1.4.0" - checksum: 98aa2c2418ad87dedf25d781be69dc5fc5908e279d9d30c34d8b702e586a0474605b3a189511482b9d5ed0d20c867515d22749537f7bc546256c6014f3ebdcec - languageName: node - linkType: hard - -"commander@npm:7": - version: 7.2.0 - resolution: "commander@npm:7.2.0" - checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc - languageName: node - linkType: hard - -"commander@npm:^5.1.0": - version: 5.1.0 - resolution: "commander@npm:5.1.0" - checksum: 0b7fec1712fbcc6230fcb161d8d73b4730fa91a21dc089515489402ad78810547683f058e2a9835929c212fead1d6a6ade70db28bbb03edbc2829a9ab7d69447 - languageName: node - linkType: hard - -"commander@npm:^8.3.0": - version: 8.3.0 - resolution: "commander@npm:8.3.0" - checksum: 0f82321821fc27b83bd409510bb9deeebcfa799ff0bf5d102128b500b7af22872c0c92cb6a0ebc5a4cf19c6b550fba9cedfa7329d18c6442a625f851377bacf0 - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af - languageName: node - linkType: hard - -"convert-source-map@npm:^2.0.0": - version: 2.0.0 - resolution: "convert-source-map@npm:2.0.0" - checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 - languageName: node - linkType: hard - -"cose-base@npm:^1.0.0": - version: 1.0.3 - resolution: "cose-base@npm:1.0.3" - dependencies: - layout-base: ^1.0.0 - checksum: 3f3d592316df74adb215ca91e430f1c22b6e890bc0025b32ae1f6464c73fdb9614816cb40a8d38b40c6a3e9e7b8c64eda90d53fb9a4a6948abec17dad496f30b - languageName: node - linkType: hard - -"cosmiconfig@npm:7.0.1": - version: 7.0.1 - resolution: "cosmiconfig@npm:7.0.1" - dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.2.1 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.10.0 - checksum: 4be63e7117955fd88333d7460e4c466a90f556df6ef34efd59034d2463484e339666c41f02b523d574a797ec61f4a91918c5b89a316db2ea2f834e0d2d09465b - languageName: node - linkType: hard - -"create-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "create-jest@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-config: ^29.7.0 - jest-util: ^29.7.0 - prompts: ^2.0.1 - bin: - create-jest: bin/create-jest.js - checksum: 1427d49458adcd88547ef6fa39041e1fe9033a661293aa8d2c3aa1b4967cb5bf4f0c00436c7a61816558f28ba2ba81a94d5c962e8022ea9a883978fc8e1f2945 - languageName: node - linkType: hard - -"cross-spawn@npm:7.0.3, cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: ^3.1.0 - shebang-command: ^2.0.0 - which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 - languageName: node - linkType: hard - -"cytoscape-cose-bilkent@npm:^4.1.0": - version: 4.1.0 - resolution: "cytoscape-cose-bilkent@npm:4.1.0" - dependencies: - cose-base: ^1.0.0 - peerDependencies: - cytoscape: ^3.2.0 - checksum: bea6aa139e21bf4135b01b99f8778eed061e074d1a1689771597e8164a999d66f4075d46be584b0a88a5447f9321f38c90c8821df6a9322faaf5afebf4848d97 - languageName: node - linkType: hard - -"cytoscape@npm:^3.28.1": - version: 3.30.2 - resolution: "cytoscape@npm:3.30.2" - checksum: 45ec8f256b6bb59d505bf92f937d86d2547c62cd45e02e7e873320f321d39bb57261aad0dad06d0903f2af50decb367aa0a05193043da5332dc6feb37dce888c - languageName: node - linkType: hard - -"d3-array@npm:1 - 2": - version: 2.12.1 - resolution: "d3-array@npm:2.12.1" - dependencies: - internmap: ^1.0.0 - checksum: 97853b7b523aded17078f37c67742f45d81e88dda2107ae9994c31b9e36c5fa5556c4c4cf39650436f247813602dfe31bf7ad067ff80f127a16903827f10c6eb - languageName: node - linkType: hard - -"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:^3.2.0": - version: 3.2.4 - resolution: "d3-array@npm:3.2.4" - dependencies: - internmap: 1 - 2 - checksum: a5976a6d6205f69208478bb44920dd7ce3e788c9dceb86b304dbe401a4bfb42ecc8b04c20facde486e9adcb488b5d1800d49393a3f81a23902b68158e12cddd0 - languageName: node - linkType: hard - -"d3-axis@npm:3": - version: 3.0.0 - resolution: "d3-axis@npm:3.0.0" - checksum: 227ddaa6d4bad083539c1ec245e2228b4620cca941997a8a650cb0af239375dc20271993127eedac66f0543f331027aca09385e1e16eed023f93eac937cddf0b - languageName: node - linkType: hard - -"d3-brush@npm:3": - version: 3.0.0 - resolution: "d3-brush@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-drag: 2 - 3 - d3-interpolate: 1 - 3 - d3-selection: 3 - d3-transition: 3 - checksum: 1d042167769a02ac76271c71e90376d7184206e489552b7022a8ec2860209fe269db55e0a3430f3dcbe13b6fec2ff65b1adeaccba3218991b38e022390df72e3 - languageName: node - linkType: hard - -"d3-chord@npm:3": - version: 3.0.1 - resolution: "d3-chord@npm:3.0.1" - dependencies: - d3-path: 1 - 3 - checksum: ddf35d41675e0f8738600a8a2f05bf0858def413438c12cba357c5802ecc1014c80a658acbbee63cbad2a8c747912efb2358455d93e59906fe37469f1dc6b78b - languageName: node - linkType: hard - -"d3-color@npm:1 - 3, d3-color@npm:3": - version: 3.1.0 - resolution: "d3-color@npm:3.1.0" - checksum: 4931fbfda5d7c4b5cfa283a13c91a954f86e3b69d75ce588d06cde6c3628cebfc3af2069ccf225e982e8987c612aa7948b3932163ce15eb3c11cd7c003f3ee3b - languageName: node - linkType: hard - -"d3-contour@npm:4": - version: 4.0.2 - resolution: "d3-contour@npm:4.0.2" - dependencies: - d3-array: ^3.2.0 - checksum: 56aa082c1acf62a45b61c8d29fdd307041785aa17d9a07de7d1d848633769887a33fb6823888afa383f31c460d0f21d24756593e84e334ddb92d774214d32f1b - languageName: node - linkType: hard - -"d3-delaunay@npm:6": - version: 6.0.4 - resolution: "d3-delaunay@npm:6.0.4" - dependencies: - delaunator: 5 - checksum: ce6d267d5ef21a8aeadfe4606329fc80a22ab6e7748d47bc220bcc396ee8be84b77a5473033954c5ac4aa522d265ddc45d4165d30fe4787dd60a15ea66b9bbb4 - languageName: node - linkType: hard - -"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3": - version: 3.0.1 - resolution: "d3-dispatch@npm:3.0.1" - checksum: fdfd4a230f46463e28e5b22a45dd76d03be9345b605e1b5dc7d18bd7ebf504e6c00ae123fd6d03e23d9e2711e01f0e14ea89cd0632545b9f0c00b924ba4be223 - languageName: node - linkType: hard - -"d3-drag@npm:2 - 3, d3-drag@npm:3": - version: 3.0.0 - resolution: "d3-drag@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-selection: 3 - checksum: d297231e60ecd633b0d076a63b4052b436ddeb48b5a3a11ff68c7e41a6774565473a6b064c5e9256e88eca6439a917ab9cea76032c52d944ddbf4fd289e31111 - languageName: node - linkType: hard - -"d3-dsv@npm:1 - 3, d3-dsv@npm:3": - version: 3.0.1 - resolution: "d3-dsv@npm:3.0.1" - dependencies: - commander: 7 - iconv-lite: 0.6 - rw: 1 - bin: - csv2json: bin/dsv2json.js - csv2tsv: bin/dsv2dsv.js - dsv2dsv: bin/dsv2dsv.js - dsv2json: bin/dsv2json.js - json2csv: bin/json2dsv.js - json2dsv: bin/json2dsv.js - json2tsv: bin/json2dsv.js - tsv2csv: bin/dsv2dsv.js - tsv2json: bin/dsv2json.js - checksum: 5fc0723647269d5dccd181d74f2265920ab368a2868b0b4f55ffa2fecdfb7814390ea28622cd61ee5d9594ab262879509059544e9f815c54fe76fbfb4ffa4c8a - languageName: node - linkType: hard - -"d3-ease@npm:1 - 3, d3-ease@npm:3": - version: 3.0.1 - resolution: "d3-ease@npm:3.0.1" - checksum: 06e2ee5326d1e3545eab4e2c0f84046a123dcd3b612e68858219aa034da1160333d9ce3da20a1d3486d98cb5c2a06f7d233eee1bc19ce42d1533458bd85dedcd - languageName: node - linkType: hard - -"d3-fetch@npm:3": - version: 3.0.1 - resolution: "d3-fetch@npm:3.0.1" - dependencies: - d3-dsv: 1 - 3 - checksum: 382dcea06549ef82c8d0b719e5dc1d96286352579e3b51b20f71437f5800323315b09cf7dcfd4e1f60a41e1204deb01758470cea257d2285a7abd9dcec806984 - languageName: node - linkType: hard - -"d3-force@npm:3": - version: 3.0.0 - resolution: "d3-force@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-quadtree: 1 - 3 - d3-timer: 1 - 3 - checksum: 6c7e96438cab62fa32aeadb0ade3297b62b51f81b1b38b0a60a5ec9fd627d74090c1189654d92df2250775f31b06812342f089f1d5947de9960a635ee3581def - languageName: node - linkType: hard - -"d3-format@npm:1 - 3, d3-format@npm:3": - version: 3.1.0 - resolution: "d3-format@npm:3.1.0" - checksum: f345ec3b8ad3cab19bff5dead395bd9f5590628eb97a389b1dd89f0b204c7c4fc1d9520f13231c2c7cf14b7c9a8cf10f8ef15bde2befbab41454a569bd706ca2 - languageName: node - linkType: hard - -"d3-geo@npm:3": - version: 3.1.1 - resolution: "d3-geo@npm:3.1.1" - dependencies: - d3-array: 2.5.0 - 3 - checksum: 3cc4bb50af5d2d4858d2df1729a1777b7fd361854079d9faab1166186c988d2cba0d11911da0c4598d5e22fae91d79113ed262a9f98cabdbc6dbf7c30e5c0363 - languageName: node - linkType: hard - -"d3-hierarchy@npm:3": - version: 3.1.2 - resolution: "d3-hierarchy@npm:3.1.2" - checksum: 0fd946a8c5fd4686d43d3e11bbfc2037a145fda29d2261ccd0e36f70b66af6d7638e2c0c7112124d63fc3d3127197a00a6aecf676bd5bd392a94d7235a214263 - languageName: node - linkType: hard - -"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3": - version: 3.0.1 - resolution: "d3-interpolate@npm:3.0.1" - dependencies: - d3-color: 1 - 3 - checksum: a42ba314e295e95e5365eff0f604834e67e4a3b3c7102458781c477bd67e9b24b6bb9d8e41ff5521050a3f2c7c0c4bbbb6e187fd586daa3980943095b267e78b - languageName: node - linkType: hard - -"d3-path@npm:1": - version: 1.0.9 - resolution: "d3-path@npm:1.0.9" - checksum: d4382573baf9509a143f40944baeff9fead136926aed6872f7ead5b3555d68925f8a37935841dd51f1d70b65a294fe35c065b0906fb6e42109295f6598fc16d0 - languageName: node - linkType: hard - -"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0": - version: 3.1.0 - resolution: "d3-path@npm:3.1.0" - checksum: 2306f1bd9191e1eac895ec13e3064f732a85f243d6e627d242a313f9777756838a2215ea11562f0c7630c7c3b16a19ec1fe0948b1c82f3317fac55882f6ee5d8 - languageName: node - linkType: hard - -"d3-polygon@npm:3": - version: 3.0.1 - resolution: "d3-polygon@npm:3.0.1" - checksum: 0b85c532517895544683849768a2c377cee3801ef8ccf3fa9693c8871dd21a0c1a2a0fc75ff54192f0ba2c562b0da2bc27f5bf959dfafc7fa23573b574865d2c - languageName: node - linkType: hard - -"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3": - version: 3.0.1 - resolution: "d3-quadtree@npm:3.0.1" - checksum: 5469d462763811475f34a7294d984f3eb100515b0585ca5b249656f6b1a6e99b20056a2d2e463cc9944b888896d2b1d07859c50f9c0cf23438df9cd2e3146066 - languageName: node - linkType: hard - -"d3-random@npm:3": - version: 3.0.1 - resolution: "d3-random@npm:3.0.1" - checksum: a70ad8d1cabe399ebeb2e482703121ac8946a3b336830b518da6848b9fdd48a111990fc041dc716f16885a72176ffa2898f2a250ca3d363ecdba5ef92b18e131 - languageName: node - linkType: hard - -"d3-sankey@npm:^0.12.3": - version: 0.12.3 - resolution: "d3-sankey@npm:0.12.3" - dependencies: - d3-array: 1 - 2 - d3-shape: ^1.2.0 - checksum: df1cb9c9d02dd8fd14040e89f112f0da58c03bd7529fa001572a6925a51496d1d82ff25d9fedb6c429a91645fbd2476c19891e535ac90c8bc28337c33ee21c87 - languageName: node - linkType: hard - -"d3-scale-chromatic@npm:3": - version: 3.1.0 - resolution: "d3-scale-chromatic@npm:3.1.0" - dependencies: - d3-color: 1 - 3 - d3-interpolate: 1 - 3 - checksum: ab6324bd8e1f708e731e02ab44e09741efda2b174cea1d8ca21e4a87546295e99856bc44e2fd3890f228849c96bccfbcf922328f95be6a7df117453eb5cf22c9 - languageName: node - linkType: hard - -"d3-scale@npm:4": - version: 4.0.2 - resolution: "d3-scale@npm:4.0.2" - dependencies: - d3-array: 2.10.0 - 3 - d3-format: 1 - 3 - d3-interpolate: 1.2.0 - 3 - d3-time: 2.1.1 - 3 - d3-time-format: 2 - 4 - checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e - languageName: node - linkType: hard - -"d3-selection@npm:2 - 3, d3-selection@npm:3": - version: 3.0.0 - resolution: "d3-selection@npm:3.0.0" - checksum: f4e60e133309115b99f5b36a79ae0a19d71ee6e2d5e3c7216ef3e75ebd2cb1e778c2ed2fa4c01bef35e0dcbd96c5428f5bd6ca2184fe2957ed582fde6841cbc5 - languageName: node - linkType: hard - -"d3-shape@npm:3": - version: 3.2.0 - resolution: "d3-shape@npm:3.2.0" - dependencies: - d3-path: ^3.1.0 - checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa - languageName: node - linkType: hard - -"d3-shape@npm:^1.2.0": - version: 1.3.7 - resolution: "d3-shape@npm:1.3.7" - dependencies: - d3-path: 1 - checksum: 46566a3ab64a25023653bf59d64e81e9e6c987e95be985d81c5cedabae5838bd55f4a201a6b69069ca862eb63594cd263cac9034afc2b0e5664dfe286c866129 - languageName: node - linkType: hard - -"d3-time-format@npm:2 - 4, d3-time-format@npm:4": - version: 4.1.0 - resolution: "d3-time-format@npm:4.1.0" - dependencies: - d3-time: 1 - 3 - checksum: 7342bce28355378152bbd4db4e275405439cabba082d9cd01946d40581140481c8328456d91740b0fe513c51ec4a467f4471ffa390c7e0e30ea30e9ec98fcdf4 - languageName: node - linkType: hard - -"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3": - version: 3.1.0 - resolution: "d3-time@npm:3.1.0" - dependencies: - d3-array: 2 - 3 - checksum: 613b435352a78d9f31b7f68540788186d8c331b63feca60ad21c88e9db1989fe888f97f242322ebd6365e45ec3fb206a4324cd4ca0dfffa1d9b5feb856ba00a7 - languageName: node - linkType: hard - -"d3-timer@npm:1 - 3, d3-timer@npm:3": - version: 3.0.1 - resolution: "d3-timer@npm:3.0.1" - checksum: 1cfddf86d7bca22f73f2c427f52dfa35c49f50d64e187eb788dcad6e927625c636aa18ae4edd44d084eb9d1f81d8ca4ec305dae7f733c15846a824575b789d73 - languageName: node - linkType: hard - -"d3-transition@npm:2 - 3, d3-transition@npm:3": - version: 3.0.1 - resolution: "d3-transition@npm:3.0.1" - dependencies: - d3-color: 1 - 3 - d3-dispatch: 1 - 3 - d3-ease: 1 - 3 - d3-interpolate: 1 - 3 - d3-timer: 1 - 3 - peerDependencies: - d3-selection: 2 - 3 - checksum: cb1e6e018c3abf0502fe9ff7b631ad058efb197b5e14b973a410d3935aead6e3c07c67d726cfab258e4936ef2667c2c3d1cd2037feb0765f0b4e1d3b8788c0ea - languageName: node - linkType: hard - -"d3-zoom@npm:3": - version: 3.0.0 - resolution: "d3-zoom@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-drag: 2 - 3 - d3-interpolate: 1 - 3 - d3-selection: 2 - 3 - d3-transition: 2 - 3 - checksum: 8056e3527281cfd1ccbcbc458408f86973b0583e9dac00e51204026d1d36803ca437f970b5736f02fafed9f2b78f145f72a5dbc66397e02d4d95d4c594b8ff54 - languageName: node - linkType: hard - -"d3@npm:^7.4.0, d3@npm:^7.8.2": - version: 7.9.0 - resolution: "d3@npm:7.9.0" - dependencies: - d3-array: 3 - d3-axis: 3 - d3-brush: 3 - d3-chord: 3 - d3-color: 3 - d3-contour: 4 - d3-delaunay: 6 - d3-dispatch: 3 - d3-drag: 3 - d3-dsv: 3 - d3-ease: 3 - d3-fetch: 3 - d3-force: 3 - d3-format: 3 - d3-geo: 3 - d3-hierarchy: 3 - d3-interpolate: 3 - d3-path: 3 - d3-polygon: 3 - d3-quadtree: 3 - d3-random: 3 - d3-scale: 4 - d3-scale-chromatic: 3 - d3-selection: 3 - d3-shape: 3 - d3-time: 3 - d3-time-format: 4 - d3-timer: 3 - d3-transition: 3 - d3-zoom: 3 - checksum: 1c0e9135f1fb78aa32b187fafc8b56ae6346102bd0e4e5e5a5339611a51e6038adbaa293fae373994228100eddd87320e930b1be922baeadc07c9fd43d26d99b - languageName: node - linkType: hard - -"dagre-d3-es@npm:7.0.10": - version: 7.0.10 - resolution: "dagre-d3-es@npm:7.0.10" - dependencies: - d3: ^7.8.2 - lodash-es: ^4.17.21 - checksum: 25194e80dfad48db0dc2e0a273a7c9fcbfdc4cf993b219eaa1e0e0ce0cbb8c63be42fa2aa0c5f9bf9b324c34b8b2e300bb2a1606d5ae35c2de00f9c4ac317d8e - languageName: node - linkType: hard - -"dayjs@npm:^1.11.7": - version: 1.11.13 - resolution: "dayjs@npm:1.11.13" - checksum: f388db88a6aa93956c1f6121644e783391c7b738b73dbc54485578736565c8931bdfba4bb94e9b1535c6e509c97d5deb918bbe1ae6b34358d994de735055cca9 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": - version: 4.3.6 - resolution: "debug@npm:4.3.6" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 1630b748dea3c581295e02137a9f5cbe2c1d85fea35c1e6597a65ca2b16a6fce68cec61b299d480787ef310ba927dc8c92d3061faba0ad06c6a724672f66be7f - languageName: node - linkType: hard - -"decode-named-character-reference@npm:^1.0.0": - version: 1.0.2 - resolution: "decode-named-character-reference@npm:1.0.2" - dependencies: - character-entities: ^2.0.0 - checksum: f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 - languageName: node - linkType: hard - -"dedent@npm:^1.0.0": - version: 1.5.3 - resolution: "dedent@npm:1.5.3" - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - checksum: 045b595557b2a8ea2eb9b0b4623d764e9a87326486fe2b61191b4342ed93dc01245644d8a09f3108a50c0ee7965f1eedd92e4a3a503ed89ea8e810566ea27f9a - languageName: node - linkType: hard - -"deepmerge@npm:^4.2.2": - version: 4.3.1 - resolution: "deepmerge@npm:4.3.1" - checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 - languageName: node - linkType: hard - -"defaults@npm:^1.0.3": - version: 1.0.4 - resolution: "defaults@npm:1.0.4" - dependencies: - clone: ^1.0.2 - checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a - languageName: node - linkType: hard - -"delaunator@npm:5": - version: 5.0.1 - resolution: "delaunator@npm:5.0.1" - dependencies: - robust-predicates: ^3.0.2 - checksum: 69ee43ec649b4a13b7f33c8a027fb3e8dfcb09266af324286118da757e04d3d39df619b905dca41421405c311317ccf632ecfa93db44519bacec3303c57c5a0b - languageName: node - linkType: hard - -"dequal@npm:^2.0.0": - version: 2.0.3 - resolution: "dequal@npm:2.0.3" - checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 - languageName: node - linkType: hard - -"detect-newline@npm:^3.0.0": - version: 3.1.0 - resolution: "detect-newline@npm:3.1.0" - checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 - languageName: node - linkType: hard - -"diff-sequences@npm:^29.6.3": - version: 29.6.3 - resolution: "diff-sequences@npm:29.6.3" - checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa - languageName: node - linkType: hard - -"diff@npm:^5.0.0": - version: 5.2.0 - resolution: "diff@npm:5.2.0" - checksum: 12b63ca9c36c72bafa3effa77121f0581b4015df18bc16bac1f8e263597735649f1a173c26f7eba17fb4162b073fee61788abe49610e6c70a2641fe1895443fd - languageName: node - linkType: hard - -"djockey@workspace:.": - version: 0.0.0-use.local - resolution: "djockey@workspace:." - dependencies: - "@djockey/linkmapper-typedoc": ^0.0.7 - "@djot/djot": ^0.3.1 - "@jest/globals": ^29.7.0 - "@types/argparse": ^2.0.16 - "@types/d3": ^7.4.3 - "@types/dompurify": ^3.0.5 - "@types/jest": ^29.5.12 - "@types/js-yaml": ^4.0.9 - "@types/log-update": ^3.1.0 - "@types/lunr": ^2.3.7 - "@types/micromatch": ^4.0.9 - "@types/node": ^22.4.0 - "@types/nunjucks": ^3.2.6 - "@types/parse5": ^7.0.0 - argparse: ^2.0.1 - fast-glob: ^3.3.2 - gluegun: ^5.2.0 - jest: ^29.7.0 - js-yaml: ^4.1.0 - lunr: ^2.3.9 - mermaid: ^10.9.1 - micromatch: ^4.0.8 - nunjucks: ^3.2.4 - parse5: ^7.1.2 - shiki: ^1.14.1 - ts-jest: ^29.2.5 - typedoc: ^0.26.6 - typescript: ^5.5.4 - bin: - djockey: ./dist/cli.js - languageName: unknown - linkType: soft - -"dompurify@npm:^3.0.5": - version: 3.1.6 - resolution: "dompurify@npm:3.1.6" - checksum: cc4fc4ccd9261fbceb2a1627a985c70af231274a26ddd3f643fd0616a0a44099bd9e4480940ce3655612063be4a1fe9f5e9309967526f8c0a99f931602323866 - languageName: node - linkType: hard - -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed - languageName: node - linkType: hard - -"ejs@npm:3.1.8": - version: 3.1.8 - resolution: "ejs@npm:3.1.8" - dependencies: - jake: ^10.8.5 - bin: - ejs: bin/cli.js - checksum: 1d40d198ad52e315ccf37e577bdec06e24eefdc4e3c27aafa47751a03a0c7f0ec4310254c9277a5f14763c3cd4bbacce27497332b2d87c74232b9b1defef8efc - languageName: node - linkType: hard - -"ejs@npm:^3.1.10": - version: 3.1.10 - resolution: "ejs@npm:3.1.10" - dependencies: - jake: ^10.8.5 - bin: - ejs: bin/cli.js - checksum: ce90637e9c7538663ae023b8a7a380b2ef7cc4096de70be85abf5a3b9641912dde65353211d05e24d56b1f242d71185c6d00e02cb8860701d571786d92c71f05 - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.5.4": - version: 1.5.13 - resolution: "electron-to-chromium@npm:1.5.13" - checksum: f18ac84dd3bf9a200654a6a9292b9ec4bced0cf9bd26cec9941b775f4470c581c9d043e70b37a124d9752dcc0f47fc96613d52b2defd8e59632852730cb418b9 - languageName: node - linkType: hard - -"elkjs@npm:^0.9.0": - version: 0.9.3 - resolution: "elkjs@npm:0.9.3" - checksum: 1293e42e0ea034b39d3719f3816b7b3cbaceb52a3114f2c1bd5ddd969bb1e36ae0afef58e77864fff7a1018dc5e96c177e9b0a40c16e4aaac26eb87f5785be4b - languageName: node - linkType: hard - -"emittery@npm:^0.13.1": - version: 0.13.1 - resolution: "emittery@npm:0.13.1" - checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 - languageName: node - linkType: hard - -"emoji-regex@npm:^10.3.0": - version: 10.4.0 - resolution: "emoji-regex@npm:10.4.0" - checksum: a6d9a0e454829a52e664e049847776ee1fff5646617b06cd87de7c03ce1dfcce4102a3b154d5e9c8e90f8125bc120fc1fe114d523dddf60a8a161f26c72658d2 - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 - languageName: node - linkType: hard - -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - -"enquirer@npm:2.3.6": - version: 2.3.6 - resolution: "enquirer@npm:2.3.6" - dependencies: - ansi-colors: ^4.1.1 - checksum: 1c0911e14a6f8d26721c91e01db06092a5f7675159f0261d69c403396a385afd13dd76825e7678f66daffa930cfaa8d45f506fb35f818a2788463d022af1b884 - languageName: node - linkType: hard - -"entities@npm:^4.4.0": - version: 4.5.0 - resolution: "entities@npm:4.5.0" - checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e - languageName: node - linkType: hard - -"environment@npm:^1.0.0": - version: 1.1.0 - resolution: "environment@npm:1.1.0" - checksum: dd3c1b9825e7f71f1e72b03c2344799ac73f2e9ef81b78ea8b373e55db021786c6b9f3858ea43a436a2c4611052670ec0afe85bc029c384cc71165feee2f4ba6 - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 - languageName: node - linkType: hard - -"error-ex@npm:^1.3.1": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: ^0.2.1 - checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 - languageName: node - linkType: hard - -"escalade@npm:^3.1.1, escalade@npm:^3.1.2": - version: 3.1.2 - resolution: "escalade@npm:3.1.2" - checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 - languageName: node - linkType: hard - -"esprima@npm:^4.0.0": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 - languageName: node - linkType: hard - -"execa@npm:5.1.1, execa@npm:^5.0.0": - version: 5.1.1 - resolution: "execa@npm:5.1.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.0 - human-signals: ^2.1.0 - is-stream: ^2.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^4.0.1 - onetime: ^5.1.2 - signal-exit: ^3.0.3 - strip-final-newline: ^2.0.0 - checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 - languageName: node - linkType: hard - -"exit@npm:^0.1.2": - version: 0.1.2 - resolution: "exit@npm:0.1.2" - checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 - languageName: node - linkType: hard - -"expect@npm:^29.0.0, expect@npm:^29.7.0": - version: 29.7.0 - resolution: "expect@npm:29.7.0" - dependencies: - "@jest/expect-utils": ^29.7.0 - jest-get-type: ^29.6.3 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c - languageName: node - linkType: hard - -"exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 - languageName: node - linkType: hard - -"fast-glob@npm:^3.3.2": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.1.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" - dependencies: - reusify: ^1.0.4 - checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 - languageName: node - linkType: hard - -"fb-watchman@npm:^2.0.0": - version: 2.0.2 - resolution: "fb-watchman@npm:2.0.2" - dependencies: - bser: 2.1.1 - checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 - languageName: node - linkType: hard - -"filelist@npm:^1.0.4": - version: 1.0.4 - resolution: "filelist@npm:1.0.4" - dependencies: - minimatch: ^5.0.1 - checksum: a303573b0821e17f2d5e9783688ab6fbfce5d52aaac842790ae85e704a6f5e4e3538660a63183d6453834dedf1e0f19a9dadcebfa3e926c72397694ea11f5160 - languageName: node - linkType: hard - -"fill-range@npm:^7.1.1": - version: 7.1.1 - resolution: "fill-range@npm:7.1.1" - dependencies: - to-regex-range: ^5.0.1 - checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 - languageName: node - linkType: hard - -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" - dependencies: - locate-path: ^5.0.0 - path-exists: ^4.0.0 - checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 - languageName: node - linkType: hard - -"follow-redirects@npm:^1.14.0": - version: 1.15.6 - resolution: "follow-redirects@npm:1.15.6" - peerDependenciesMeta: - debug: - optional: true - checksum: a62c378dfc8c00f60b9c80cab158ba54e99ba0239a5dd7c81245e5a5b39d10f0c35e249c3379eae719ff0285fff88c365dd446fab19dee771f1d76252df1bbf5 - languageName: node - linkType: hard - -"foreground-child@npm:^3.1.0": - version: 3.3.0 - resolution: "foreground-child@npm:3.3.0" - dependencies: - cross-spawn: ^7.0.0 - signal-exit: ^4.0.1 - checksum: 1989698488f725b05b26bc9afc8a08f08ec41807cd7b92ad85d96004ddf8243fd3e79486b8348c64a3011ae5cc2c9f0936af989e1f28339805d8bc178a75b451 - languageName: node - linkType: hard - -"fs-jetpack@npm:4.3.1": - version: 4.3.1 - resolution: "fs-jetpack@npm:4.3.1" - dependencies: - minimatch: ^3.0.2 - rimraf: ^2.6.3 - checksum: ffe90946ec250c6042569faa2ec7753594779ca0e8a72eea0b76b82574542c50d580974f54c5d6885f44f5719ece173be778cf82dc50ad90f43dab043f4061c9 - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 - languageName: node - linkType: hard - -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: ^7.0.3 - checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 - languageName: node - linkType: hard - -"fsevents@npm:^2.3.2": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@^2.3.2#~builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" - dependencies: - node-gyp: latest - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 - languageName: node - linkType: hard - -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec - languageName: node - linkType: hard - -"get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 - languageName: node - linkType: hard - -"get-east-asian-width@npm:^1.0.0": - version: 1.2.0 - resolution: "get-east-asian-width@npm:1.2.0" - checksum: ea55f4d4a42c4b00d3d9be3111bc17eb0161f60ed23fc257c1390323bb780a592d7a8bdd550260fd4627dabee9a118cdfa3475ae54edca35ebcd3bdae04179e3 - languageName: node - linkType: hard - -"get-package-type@npm:^0.1.0": - version: 0.1.0 - resolution: "get-package-type@npm:0.1.0" - checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 - languageName: node - linkType: hard - -"get-stream@npm:^6.0.0": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: ^4.0.1 - checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e - languageName: node - linkType: hard - -"glob@npm:^10.2.2, glob@npm:^10.3.10": - version: 10.4.5 - resolution: "glob@npm:10.4.5" - dependencies: - foreground-child: ^3.1.0 - jackspeak: ^3.1.2 - minimatch: ^9.0.4 - minipass: ^7.1.2 - package-json-from-dist: ^1.0.0 - path-scurry: ^1.11.1 - bin: - glob: dist/esm/bin.mjs - checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a - languageName: node - linkType: hard - -"glob@npm:^7.1.3, glob@npm:^7.1.4": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.1.1 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 - languageName: node - linkType: hard - -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e - languageName: node - linkType: hard - -"gluegun@npm:^5.2.0": - version: 5.2.0 - resolution: "gluegun@npm:5.2.0" - dependencies: - apisauce: ^2.1.5 - app-module-path: ^2.2.0 - cli-table3: 0.6.0 - colors: 1.4.0 - cosmiconfig: 7.0.1 - cross-spawn: 7.0.3 - ejs: 3.1.8 - enquirer: 2.3.6 - execa: 5.1.1 - fs-jetpack: 4.3.1 - lodash.camelcase: ^4.3.0 - lodash.kebabcase: ^4.1.1 - lodash.lowercase: ^4.3.0 - lodash.lowerfirst: ^4.3.1 - lodash.pad: ^4.5.1 - lodash.padend: ^4.6.1 - lodash.padstart: ^4.6.1 - lodash.repeat: ^4.1.0 - lodash.snakecase: ^4.1.1 - lodash.startcase: ^4.4.0 - lodash.trim: ^4.5.1 - lodash.trimend: ^4.5.1 - lodash.trimstart: ^4.5.1 - lodash.uppercase: ^4.3.0 - lodash.upperfirst: ^4.3.1 - ora: 4.0.2 - pluralize: ^8.0.0 - semver: 7.3.5 - which: 2.0.2 - yargs-parser: ^21.0.0 - bin: - gluegun: bin/gluegun - checksum: aae53499a9295b9c39ef7644e539c45fa22784c0641c67fdc14006b28e1172adf334686ff843bfd79f6fc3330035f3d6c05e64bcec00f03b4b0705d9f46713a1 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": - version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" - checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b - languageName: node - linkType: hard - -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad - languageName: node - linkType: hard - -"hasown@npm:^2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" - dependencies: - function-bind: ^1.1.2 - checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db - languageName: node - linkType: hard - -"html-escaper@npm:^2.0.0": - version: 2.0.2 - resolution: "html-escaper@npm:2.0.2" - checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^7.0.0": - version: 7.0.2 - resolution: "http-proxy-agent@npm:7.0.2" - dependencies: - agent-base: ^7.1.0 - debug: ^4.3.4 - checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.1": - version: 7.0.5 - resolution: "https-proxy-agent@npm:7.0.5" - dependencies: - agent-base: ^7.0.2 - debug: 4 - checksum: 2e1a28960f13b041a50702ee74f240add8e75146a5c37fc98f1960f0496710f6918b3a9fe1e5aba41e50f58e6df48d107edd9c405c5f0d73ac260dabf2210857 - languageName: node - linkType: hard - -"human-signals@npm:^2.1.0": - version: 2.1.0 - resolution: "human-signals@npm:2.1.0" - checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 - languageName: node - linkType: hard - -"iconv-lite@npm:0.6, iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf - languageName: node - linkType: hard - -"import-fresh@npm:^3.2.1": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: ^1.0.0 - resolve-from: ^4.0.0 - checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa - languageName: node - linkType: hard - -"import-local@npm:^3.0.2": - version: 3.2.0 - resolution: "import-local@npm:3.2.0" - dependencies: - pkg-dir: ^4.2.0 - resolve-cwd: ^3.0.0 - bin: - import-local-fixture: fixtures/cli.js - checksum: 0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: ^1.3.0 - wrappy: 1 - checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd - languageName: node - linkType: hard - -"inherits@npm:2": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 - languageName: node - linkType: hard - -"internmap@npm:1 - 2": - version: 2.0.3 - resolution: "internmap@npm:2.0.3" - checksum: 7ca41ec6aba8f0072fc32fa8a023450a9f44503e2d8e403583c55714b25efd6390c38a87161ec456bf42d7bc83aab62eb28f5aef34876b1ac4e60693d5e1d241 - languageName: node - linkType: hard - -"internmap@npm:^1.0.0": - version: 1.0.1 - resolution: "internmap@npm:1.0.1" - checksum: 9d00f8c0cf873a24a53a5a937120dab634c41f383105e066bb318a61864e6292d24eb9516e8e7dccfb4420ec42ca474a0f28ac9a6cc82536898fa09bbbe53813 - languageName: node - linkType: hard - -"ip-address@npm:^9.0.5": - version: 9.0.5 - resolution: "ip-address@npm:9.0.5" - dependencies: - jsbn: 1.1.0 - sprintf-js: ^1.1.3 - checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f - languageName: node - linkType: hard - -"is-core-module@npm:^2.13.0": - version: 2.15.1 - resolution: "is-core-module@npm:2.15.1" - dependencies: - hasown: ^2.0.2 - checksum: df134c168115690724b62018c37b2f5bba0d5745fa16960b329c5a00883a8bea6a5632fdb1e3efcce237c201826ba09f93197b7cd95577ea56b0df335be23633 - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^5.0.0": - version: 5.0.0 - resolution: "is-fullwidth-code-point@npm:5.0.0" - dependencies: - get-east-asian-width: ^1.0.0 - checksum: 8dfb2d2831b9e87983c136f5c335cd9d14c1402973e357a8ff057904612ed84b8cba196319fabedf9aefe4639e14fe3afe9d9966d1d006ebeb40fe1fed4babe5 - languageName: node - linkType: hard - -"is-generator-fn@npm:^2.0.0": - version: 2.1.0 - resolution: "is-generator-fn@npm:2.1.0" - checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 - languageName: node - linkType: hard - -"is-glob@npm:^4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: ^2.1.1 - checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 - languageName: node - linkType: hard - -"is-interactive@npm:^1.0.0": - version: 1.0.0 - resolution: "is-interactive@npm:1.0.0" - checksum: 824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a - languageName: node - linkType: hard - -"is-stream@npm:^2.0.0": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 - languageName: node - linkType: hard - -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.2 - resolution: "istanbul-lib-coverage@npm:3.2.2" - checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^5.0.4": - version: 5.2.1 - resolution: "istanbul-lib-instrument@npm:5.2.1" - dependencies: - "@babel/core": ^7.12.3 - "@babel/parser": ^7.14.7 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.2.0 - semver: ^6.3.0 - checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^6.0.0": - version: 6.0.3 - resolution: "istanbul-lib-instrument@npm:6.0.3" - dependencies: - "@babel/core": ^7.23.9 - "@babel/parser": ^7.23.9 - "@istanbuljs/schema": ^0.1.3 - istanbul-lib-coverage: ^3.2.0 - semver: ^7.5.4 - checksum: 74104c60c65c4fa0e97cc76f039226c356123893929f067bfad5f86fe839e08f5d680354a68fead3bc9c1e2f3fa6f3f53cded70778e821d911e851d349f3545a - languageName: node - linkType: hard - -"istanbul-lib-report@npm:^3.0.0": - version: 3.0.1 - resolution: "istanbul-lib-report@npm:3.0.1" - dependencies: - istanbul-lib-coverage: ^3.0.0 - make-dir: ^4.0.0 - supports-color: ^7.1.0 - checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 - languageName: node - linkType: hard - -"istanbul-lib-source-maps@npm:^4.0.0": - version: 4.0.1 - resolution: "istanbul-lib-source-maps@npm:4.0.1" - dependencies: - debug: ^4.1.1 - istanbul-lib-coverage: ^3.0.0 - source-map: ^0.6.1 - checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 - languageName: node - linkType: hard - -"istanbul-reports@npm:^3.1.3": - version: 3.1.7 - resolution: "istanbul-reports@npm:3.1.7" - dependencies: - html-escaper: ^2.0.0 - istanbul-lib-report: ^3.0.0 - checksum: 2072db6e07bfbb4d0eb30e2700250636182398c1af811aea5032acb219d2080f7586923c09fa194029efd6b92361afb3dcbe1ebcc3ee6651d13340f7c6c4ed95 - languageName: node - linkType: hard - -"jackspeak@npm:^3.1.2": - version: 3.4.3 - resolution: "jackspeak@npm:3.4.3" - dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: be31027fc72e7cc726206b9f560395604b82e0fddb46c4cbf9f97d049bcef607491a5afc0699612eaa4213ca5be8fd3e1e7cd187b3040988b65c9489838a7c00 - languageName: node - linkType: hard - -"jake@npm:^10.8.5": - version: 10.9.2 - resolution: "jake@npm:10.9.2" - dependencies: - async: ^3.2.3 - chalk: ^4.0.2 - filelist: ^1.0.4 - minimatch: ^3.1.2 - bin: - jake: bin/cli.js - checksum: f2dc4a086b4f58446d02cb9be913c39710d9ea570218d7681bb861f7eeaecab7b458256c946aeaa7e548c5e0686cc293e6435501e4047174a3b6a504dcbfcaae - languageName: node - linkType: hard - -"jest-changed-files@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-changed-files@npm:29.7.0" - dependencies: - execa: ^5.0.0 - jest-util: ^29.7.0 - p-limit: ^3.1.0 - checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99 - languageName: node - linkType: hard - -"jest-circus@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-circus@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/expect": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - dedent: ^1.0.0 - is-generator-fn: ^2.0.0 - jest-each: ^29.7.0 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-runtime: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - p-limit: ^3.1.0 - pretty-format: ^29.7.0 - pure-rand: ^6.0.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7 - languageName: node - linkType: hard - -"jest-cli@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-cli@npm:29.7.0" - dependencies: - "@jest/core": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - create-jest: ^29.7.0 - exit: ^0.1.2 - import-local: ^3.0.2 - jest-config: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - yargs: ^17.3.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36 - languageName: node - linkType: hard - -"jest-config@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-config@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@jest/test-sequencer": ^29.7.0 - "@jest/types": ^29.6.3 - babel-jest: ^29.7.0 - chalk: ^4.0.0 - ci-info: ^3.2.0 - deepmerge: ^4.2.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-circus: ^29.7.0 - jest-environment-node: ^29.7.0 - jest-get-type: ^29.6.3 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-runner: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - micromatch: ^4.0.4 - parse-json: ^5.2.0 - pretty-format: ^29.7.0 - slash: ^3.0.0 - strip-json-comments: ^3.1.1 - peerDependencies: - "@types/node": "*" - ts-node: ">=9.0.0" - peerDependenciesMeta: - "@types/node": - optional: true - ts-node: - optional: true - checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff - languageName: node - linkType: hard - -"jest-diff@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-diff@npm:29.7.0" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^29.6.3 - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77 - languageName: node - linkType: hard - -"jest-docblock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-docblock@npm:29.7.0" - dependencies: - detect-newline: ^3.0.0 - checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192 - languageName: node - linkType: hard - -"jest-each@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-each@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - jest-get-type: ^29.6.3 - jest-util: ^29.7.0 - pretty-format: ^29.7.0 - checksum: e88f99f0184000fc8813f2a0aa79e29deeb63700a3b9b7928b8a418d7d93cd24933608591dbbdea732b473eb2021c72991b5cc51a17966842841c6e28e6f691c - languageName: node - linkType: hard - -"jest-environment-node@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-environment-node@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646 - languageName: node - linkType: hard - -"jest-get-type@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-get-type@npm:29.6.3" - checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 - languageName: node - linkType: hard - -"jest-haste-map@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-haste-map@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/graceful-fs": ^4.1.3 - "@types/node": "*" - anymatch: ^3.0.3 - fb-watchman: ^2.0.0 - fsevents: ^2.3.2 - graceful-fs: ^4.2.9 - jest-regex-util: ^29.6.3 - jest-util: ^29.7.0 - jest-worker: ^29.7.0 - micromatch: ^4.0.4 - walker: ^1.0.8 - dependenciesMeta: - fsevents: - optional: true - checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 - languageName: node - linkType: hard - -"jest-leak-detector@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-leak-detector@npm:29.7.0" - dependencies: - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 - languageName: node - linkType: hard - -"jest-matcher-utils@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-matcher-utils@npm:29.7.0" - dependencies: - chalk: ^4.0.0 - jest-diff: ^29.7.0 - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd - languageName: node - linkType: hard - -"jest-message-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-message-util@npm:29.7.0" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.6.3 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^29.7.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 - languageName: node - linkType: hard - -"jest-mock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-mock@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-util: ^29.7.0 - checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 - languageName: node - linkType: hard - -"jest-pnp-resolver@npm:^1.2.2": - version: 1.2.3 - resolution: "jest-pnp-resolver@npm:1.2.3" - peerDependencies: - jest-resolve: "*" - peerDependenciesMeta: - jest-resolve: - optional: true - checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 - languageName: node - linkType: hard - -"jest-regex-util@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-regex-util@npm:29.6.3" - checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a - languageName: node - linkType: hard - -"jest-resolve-dependencies@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve-dependencies@npm:29.7.0" - dependencies: - jest-regex-util: ^29.6.3 - jest-snapshot: ^29.7.0 - checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984 - languageName: node - linkType: hard - -"jest-resolve@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve@npm:29.7.0" - dependencies: - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-pnp-resolver: ^1.2.2 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - resolve: ^1.20.0 - resolve.exports: ^2.0.0 - slash: ^3.0.0 - checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487 - languageName: node - linkType: hard - -"jest-runner@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-runner@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/environment": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - emittery: ^0.13.1 - graceful-fs: ^4.2.9 - jest-docblock: ^29.7.0 - jest-environment-node: ^29.7.0 - jest-haste-map: ^29.7.0 - jest-leak-detector: ^29.7.0 - jest-message-util: ^29.7.0 - jest-resolve: ^29.7.0 - jest-runtime: ^29.7.0 - jest-util: ^29.7.0 - jest-watcher: ^29.7.0 - jest-worker: ^29.7.0 - p-limit: ^3.1.0 - source-map-support: 0.5.13 - checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb - languageName: node - linkType: hard - -"jest-runtime@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-runtime@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/globals": ^29.7.0 - "@jest/source-map": ^29.6.3 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - cjs-module-lexer: ^1.0.0 - collect-v8-coverage: ^1.0.0 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-message-util: ^29.7.0 - jest-mock: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - slash: ^3.0.0 - strip-bom: ^4.0.0 - checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e - languageName: node - linkType: hard - -"jest-snapshot@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-snapshot@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@babel/generator": ^7.7.2 - "@babel/plugin-syntax-jsx": ^7.7.2 - "@babel/plugin-syntax-typescript": ^7.7.2 - "@babel/types": ^7.3.3 - "@jest/expect-utils": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - babel-preset-current-node-syntax: ^1.0.0 - chalk: ^4.0.0 - expect: ^29.7.0 - graceful-fs: ^4.2.9 - jest-diff: ^29.7.0 - jest-get-type: ^29.6.3 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - natural-compare: ^1.4.0 - pretty-format: ^29.7.0 - semver: ^7.5.3 - checksum: 86821c3ad0b6899521ce75ee1ae7b01b17e6dfeff9166f2cf17f012e0c5d8c798f30f9e4f8f7f5bed01ea7b55a6bc159f5eda778311162cbfa48785447c237ad - languageName: node - linkType: hard - -"jest-util@npm:^29.0.0, jest-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-util@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca - languageName: node - linkType: hard - -"jest-validate@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-validate@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - camelcase: ^6.2.0 - chalk: ^4.0.0 - jest-get-type: ^29.6.3 - leven: ^3.1.0 - pretty-format: ^29.7.0 - checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae - languageName: node - linkType: hard - -"jest-watcher@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-watcher@npm:29.7.0" - dependencies: - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - emittery: ^0.13.1 - jest-util: ^29.7.0 - string-length: ^4.0.1 - checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f - languageName: node - linkType: hard - -"jest-worker@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-worker@npm:29.7.0" - dependencies: - "@types/node": "*" - jest-util: ^29.7.0 - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 - languageName: node - linkType: hard - -"jest@npm:^29.7.0": - version: 29.7.0 - resolution: "jest@npm:29.7.0" - dependencies: - "@jest/core": ^29.7.0 - "@jest/types": ^29.6.3 - import-local: ^3.0.2 - jest-cli: ^29.7.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 17ca8d67504a7dbb1998cf3c3077ec9031ba3eb512da8d71cb91bcabb2b8995c4e4b292b740cb9bf1cbff5ce3e110b3f7c777b0cefb6f41ab05445f248d0ee0b - languageName: node - linkType: hard - -"js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 - languageName: node - linkType: hard - -"js-yaml@npm:^3.13.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" - dependencies: - argparse: ^1.0.7 - esprima: ^4.0.0 - bin: - js-yaml: bin/js-yaml.js - checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c - languageName: node - linkType: hard - -"js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: ^2.0.1 - bin: - js-yaml: bin/js-yaml.js - checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a - languageName: node - linkType: hard - -"jsbn@npm:1.1.0": - version: 1.1.0 - resolution: "jsbn@npm:1.1.0" - checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 - languageName: node - linkType: hard - -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f - languageName: node - linkType: hard - -"json5@npm:^2.2.3": - version: 2.2.3 - resolution: "json5@npm:2.2.3" - bin: - json5: lib/cli.js - checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 - languageName: node - linkType: hard - -"katex@npm:^0.16.9": - version: 0.16.11 - resolution: "katex@npm:0.16.11" - dependencies: - commander: ^8.3.0 - bin: - katex: cli.js - checksum: 49d9340705f4922ee22aacedad45664971449e5ca65e42a70228961336c8d4746c37c3c719bcc2114b6ad21182800c7d3d8bea28fe6f951fc45fe7e8322ea3bd - languageName: node - linkType: hard - -"khroma@npm:^2.0.0": - version: 2.1.0 - resolution: "khroma@npm:2.1.0" - checksum: b34ba39d3a9a52d388110bded8cb1c12272eb69c249d8eb26feab12d18a96a9bc4ceec4851d2afa43de4569f7d5ea78fa305965a3d0e96a38e02fe77c53677da - languageName: node - linkType: hard - -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 - languageName: node - linkType: hard - -"kleur@npm:^4.0.3": - version: 4.1.5 - resolution: "kleur@npm:4.1.5" - checksum: 1dc476e32741acf0b1b5b0627ffd0d722e342c1b0da14de3e8ae97821327ca08f9fb944542fb3c126d90ac5f27f9d804edbe7c585bf7d12ef495d115e0f22c12 - languageName: node - linkType: hard - -"layout-base@npm:^1.0.0": - version: 1.0.2 - resolution: "layout-base@npm:1.0.2" - checksum: e4c312765ac4fa13b49c940e701461309c7a0aa07f784f81d31f626b945dced90a8abf83222388a5af16b7074271f745501a90ef5a3af676abb2e7eb16d55b2e - languageName: node - linkType: hard - -"leven@npm:^3.1.0": - version: 3.1.0 - resolution: "leven@npm:3.1.0" - checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 - languageName: node - linkType: hard - -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 - languageName: node - linkType: hard - -"linkify-it@npm:^5.0.0": - version: 5.0.0 - resolution: "linkify-it@npm:5.0.0" - dependencies: - uc.micro: ^2.0.0 - checksum: b0b86cadaf816b64c947a83994ceaad1c15f9fe7e079776ab88699fb71afd7b8fc3fd3d0ae5ebec8c92c1d347be9ba257b8aef338c0ebf81b0d27dcf429a765a - languageName: node - linkType: hard - -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: ^4.1.0 - checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 - languageName: node - linkType: hard - -"lodash-es@npm:^4.17.21": - version: 4.17.21 - resolution: "lodash-es@npm:4.17.21" - checksum: 05cbffad6e2adbb331a4e16fbd826e7faee403a1a04873b82b42c0f22090f280839f85b95393f487c1303c8a3d2a010048bf06151a6cbe03eee4d388fb0a12d2 - languageName: node - linkType: hard - -"lodash.camelcase@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.camelcase@npm:4.3.0" - checksum: cb9227612f71b83e42de93eccf1232feeb25e705bdb19ba26c04f91e885bfd3dd5c517c4a97137658190581d3493ea3973072ca010aab7e301046d90740393d1 - languageName: node - linkType: hard - -"lodash.kebabcase@npm:^4.1.1": - version: 4.1.1 - resolution: "lodash.kebabcase@npm:4.1.1" - checksum: 5a6c59161914e1bae23438a298c7433e83d935e0f59853fa862e691164696bc07f6dfa4c313d499fbf41ba8d53314e9850416502376705a357d24ee6ca33af78 - languageName: node - linkType: hard - -"lodash.lowercase@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.lowercase@npm:4.3.0" - checksum: 463d7e50db29aea736563352f05adcff1f7c60574fe201f47ad98d2834f3dc64bee84a31702e1661d0f94913e89a46ded04befd425bbd3b95d23697689118f98 - languageName: node - linkType: hard - -"lodash.lowerfirst@npm:^4.3.1": - version: 4.3.1 - resolution: "lodash.lowerfirst@npm:4.3.1" - checksum: e1688e18873777d394db4994d150dfc14cf01bf450169cf8296af4d84ecd7c3c4ae4dab3746f77f8719a093e4fff58bee3ae73ae7e23ef508b7d970b189d9952 - languageName: node - linkType: hard - -"lodash.memoize@npm:^4.1.2": - version: 4.1.2 - resolution: "lodash.memoize@npm:4.1.2" - checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 - languageName: node - linkType: hard - -"lodash.pad@npm:^4.5.1": - version: 4.5.1 - resolution: "lodash.pad@npm:4.5.1" - checksum: 325805c929dad67d61470348046bc92bdad017a9edbda11322cc8945da92a10f943f935d24c340aa6d47cd9a3ff8f5ed6f4a77283266a54e32afae09be0c41ff - languageName: node - linkType: hard - -"lodash.padend@npm:^4.6.1": - version: 4.6.1 - resolution: "lodash.padend@npm:4.6.1" - checksum: c2e6e789debf83b98f5c085305cdcfff1067e7a31bda2a110fd765d3c11a99edfbeef570d9ef737ab3212006bdb8114e77622e518c18c1fce52b8fdfd9dab685 - languageName: node - linkType: hard - -"lodash.padstart@npm:^4.6.1": - version: 4.6.1 - resolution: "lodash.padstart@npm:4.6.1" - checksum: 0d6ad92c626d351db85de539e41df3238d7d36c5fbfc5f57c4f060c90c73ad9f1db566463487795fdf0bf290a8f133189a0bd91d051032f6eb2d15b7e1863b5e - languageName: node - linkType: hard - -"lodash.repeat@npm:^4.1.0": - version: 4.1.0 - resolution: "lodash.repeat@npm:4.1.0" - checksum: dac15fc59ed783678e1a9f986fefa180bfdbf95280852165965ecc8e15b871c6f0eaf7b325768a176014594d5186f1d6558fb72a18527bddd82539fb3ef8a4d3 - languageName: node - linkType: hard - -"lodash.snakecase@npm:^4.1.1": - version: 4.1.1 - resolution: "lodash.snakecase@npm:4.1.1" - checksum: 1685ed3e83dda6eae5a4dcaee161a51cd210aabb3e1c09c57150e7dd8feda19e4ca0d27d0631eabe8d0f4eaa51e376da64e8c018ae5415417c5890d42feb72a8 - languageName: node - linkType: hard - -"lodash.startcase@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.startcase@npm:4.4.0" - checksum: c03a4a784aca653845fe09d0ef67c902b6e49288dc45f542a4ab345a9c406a6dc194c774423fa313ee7b06283950301c1221dd2a1d8ecb2dac8dfbb9ed5606b5 - languageName: node - linkType: hard - -"lodash.trim@npm:^4.5.1": - version: 4.5.1 - resolution: "lodash.trim@npm:4.5.1" - checksum: 64b08e97d94d4c7620159371e6fe6cbb706514a41d737db2f189d9ec738305eb08cb772a9bbd2459e90f1c22f96174ec1047ceb8272f2f6040cb5bd63d8f9f2b - languageName: node - linkType: hard - -"lodash.trimend@npm:^4.5.1": - version: 4.5.1 - resolution: "lodash.trimend@npm:4.5.1" - checksum: 8d0c013e95529f6b8af0cbe987a730a4befdd1ab3674ae72199731109929d3ed9892217fdb282361a4cdd78c3a1d3aa7d6aadd313dd3c38b61248fb60e2f6627 - languageName: node - linkType: hard - -"lodash.trimstart@npm:^4.5.1": - version: 4.5.1 - resolution: "lodash.trimstart@npm:4.5.1" - checksum: 4b2d37505ac15f501f4f2378928455a40e858fa56c924494dbc21d5d828c55e821cda8543f25fe265e3d552937e915264a2567ba9291a172262c24c33e9ad6b0 - languageName: node - linkType: hard - -"lodash.uppercase@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.uppercase@npm:4.3.0" - checksum: 0a435cccd3acfe732c968deb4897d6237051d69f58f18e55e7faa781b1731176012e3286505780e93a4e0acb93a6799e39908c7ea3367678bdd2aecb963f469d - languageName: node - linkType: hard - -"lodash.upperfirst@npm:^4.3.1": - version: 4.3.1 - resolution: "lodash.upperfirst@npm:4.3.1" - checksum: cadec6955900afe1928cc60cdc4923a79c2ef991e42665419cc81630ed9b4f952a1093b222e0141ab31cbc4dba549f97ec28ff67929d71e01861c97188a5fa83 - languageName: node - linkType: hard - -"log-symbols@npm:^3.0.0": - version: 3.0.0 - resolution: "log-symbols@npm:3.0.0" - dependencies: - chalk: ^2.4.2 - checksum: f2322e1452d819050b11aad247660e1494f8b2219d40a964af91d5f9af1a90636f1b3d93f2952090e42af07cc5550aecabf6c1d8ec1181207e95cb66ba112361 - languageName: node - linkType: hard - -"log-update@npm:*": - version: 6.1.0 - resolution: "log-update@npm:6.1.0" - dependencies: - ansi-escapes: ^7.0.0 - cli-cursor: ^5.0.0 - slice-ansi: ^7.1.0 - strip-ansi: ^7.1.0 - wrap-ansi: ^9.0.0 - checksum: 817a9ba6c5cbc19e94d6359418df8cfe8b3244a2903f6d53354e175e243a85b782dc6a98db8b5e457ee2f09542ca8916c39641b9cd3b0e6ef45e9481d50c918a - languageName: node - linkType: hard - -"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": - version: 10.4.3 - resolution: "lru-cache@npm:10.4.3" - checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a - languageName: node - linkType: hard - -"lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" - dependencies: - yallist: ^3.0.2 - checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb - languageName: node - linkType: hard - -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - -"lunr@npm:^2.3.9": - version: 2.3.9 - resolution: "lunr@npm:2.3.9" - checksum: 176719e24fcce7d3cf1baccce9dd5633cd8bdc1f41ebe6a180112e5ee99d80373fe2454f5d4624d437e5a8319698ca6837b9950566e15d2cae5f2a543a3db4b8 - languageName: node - linkType: hard - -"make-dir@npm:^4.0.0": - version: 4.0.0 - resolution: "make-dir@npm:4.0.0" - dependencies: - semver: ^7.5.3 - checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a - languageName: node - linkType: hard - -"make-error@npm:^1.3.6": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 - languageName: node - linkType: hard - -"make-fetch-happen@npm:^13.0.0": - version: 13.0.1 - resolution: "make-fetch-happen@npm:13.0.1" - dependencies: - "@npmcli/agent": ^2.0.0 - cacache: ^18.0.0 - http-cache-semantics: ^4.1.1 - is-lambda: ^1.0.1 - minipass: ^7.0.2 - minipass-fetch: ^3.0.0 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - proc-log: ^4.2.0 - promise-retry: ^2.0.1 - ssri: ^10.0.0 - checksum: 5c9fad695579b79488fa100da05777213dd9365222f85e4757630f8dd2a21a79ddd3206c78cfd6f9b37346819681782b67900ac847a57cf04190f52dda5343fd - languageName: node - linkType: hard - -"makeerror@npm:1.0.12": - version: 1.0.12 - resolution: "makeerror@npm:1.0.12" - dependencies: - tmpl: 1.0.5 - checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 - languageName: node - linkType: hard - -"markdown-it@npm:^14.1.0": - version: 14.1.0 - resolution: "markdown-it@npm:14.1.0" - dependencies: - argparse: ^2.0.1 - entities: ^4.4.0 - linkify-it: ^5.0.0 - mdurl: ^2.0.0 - punycode.js: ^2.3.1 - uc.micro: ^2.1.0 - bin: - markdown-it: bin/markdown-it.mjs - checksum: 07296b45ebd0b13a55611a24d1b1ad002c6729ec54f558f597846994b0b7b1de79d13cd99ff3e7b6e9e027f36b63125cdcf69174da294ecabdd4e6b9fff39e5d - languageName: node - linkType: hard - -"mdast-util-from-markdown@npm:^1.3.0": - version: 1.3.1 - resolution: "mdast-util-from-markdown@npm:1.3.1" - dependencies: - "@types/mdast": ^3.0.0 - "@types/unist": ^2.0.0 - decode-named-character-reference: ^1.0.0 - mdast-util-to-string: ^3.1.0 - micromark: ^3.0.0 - micromark-util-decode-numeric-character-reference: ^1.0.0 - micromark-util-decode-string: ^1.0.0 - micromark-util-normalize-identifier: ^1.0.0 - micromark-util-symbol: ^1.0.0 - micromark-util-types: ^1.0.0 - unist-util-stringify-position: ^3.0.0 - uvu: ^0.5.0 - checksum: c2fac225167e248d394332a4ea39596e04cbde07d8cdb3889e91e48972c4c3462a02b39fda3855345d90231eb17a90ac6e082fb4f012a77c1d0ddfb9c7446940 - languageName: node - linkType: hard - -"mdast-util-to-string@npm:^3.1.0": - version: 3.2.0 - resolution: "mdast-util-to-string@npm:3.2.0" - dependencies: - "@types/mdast": ^3.0.0 - checksum: dc40b544d54339878ae2c9f2b3198c029e1e07291d2126bd00ca28272ee6616d0d2194eb1c9828a7c34d412a79a7e73b26512a734698d891c710a1e73db1e848 - languageName: node - linkType: hard - -"mdurl@npm:^2.0.0": - version: 2.0.0 - resolution: "mdurl@npm:2.0.0" - checksum: 880bc289ef668df0bb34c5b2b5aaa7b6ea755052108cdaf4a5e5968ad01cf27e74927334acc9ebcc50a8628b65272ae6b1fd51fae1330c130e261c0466e1a3b2 - languageName: node - linkType: hard - -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 - languageName: node - linkType: hard - -"merge2@npm:^1.3.0": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 - languageName: node - linkType: hard - -"mermaid@npm:^10.9.1": - version: 10.9.1 - resolution: "mermaid@npm:10.9.1" - dependencies: - "@braintree/sanitize-url": ^6.0.1 - "@types/d3-scale": ^4.0.3 - "@types/d3-scale-chromatic": ^3.0.0 - cytoscape: ^3.28.1 - cytoscape-cose-bilkent: ^4.1.0 - d3: ^7.4.0 - d3-sankey: ^0.12.3 - dagre-d3-es: 7.0.10 - dayjs: ^1.11.7 - dompurify: ^3.0.5 - elkjs: ^0.9.0 - katex: ^0.16.9 - khroma: ^2.0.0 - lodash-es: ^4.17.21 - mdast-util-from-markdown: ^1.3.0 - non-layered-tidy-tree-layout: ^2.0.2 - stylis: ^4.1.3 - ts-dedent: ^2.2.0 - uuid: ^9.0.0 - web-worker: ^1.2.0 - checksum: ec4f463011205ab031fe27ad95730daf815097be9f161866c9c08ac291118dee99a0e841f6e39e7b480c12287a923b71914931eab8beb048bfd991d9957f11ee - languageName: node - linkType: hard - -"micromark-core-commonmark@npm:^1.0.1": - version: 1.1.0 - resolution: "micromark-core-commonmark@npm:1.1.0" - dependencies: - decode-named-character-reference: ^1.0.0 - micromark-factory-destination: ^1.0.0 - micromark-factory-label: ^1.0.0 - micromark-factory-space: ^1.0.0 - micromark-factory-title: ^1.0.0 - micromark-factory-whitespace: ^1.0.0 - micromark-util-character: ^1.0.0 - micromark-util-chunked: ^1.0.0 - micromark-util-classify-character: ^1.0.0 - micromark-util-html-tag-name: ^1.0.0 - micromark-util-normalize-identifier: ^1.0.0 - micromark-util-resolve-all: ^1.0.0 - micromark-util-subtokenize: ^1.0.0 - micromark-util-symbol: ^1.0.0 - micromark-util-types: ^1.0.1 - uvu: ^0.5.0 - checksum: c6dfedc95889cc73411cb222fc2330b9eda6d849c09c9fd9eb3cd3398af246167e9d3cdb0ae3ce9ae59dd34a14624c8330e380255d41279ad7350cf6c6be6c5b - languageName: node - linkType: hard - -"micromark-factory-destination@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-factory-destination@npm:1.1.0" - dependencies: - micromark-util-character: ^1.0.0 - micromark-util-symbol: ^1.0.0 - micromark-util-types: ^1.0.0 - checksum: 9e2b5fb5fedbf622b687e20d51eb3d56ae90c0e7ecc19b37bd5285ec392c1e56f6e21aa7cfcb3c01eda88df88fe528f3acb91a5f57d7f4cba310bc3cd7f824fa - languageName: node - linkType: hard - -"micromark-factory-label@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-factory-label@npm:1.1.0" - dependencies: - micromark-util-character: ^1.0.0 - micromark-util-symbol: ^1.0.0 - micromark-util-types: ^1.0.0 - uvu: ^0.5.0 - checksum: fcda48f1287d9b148c562c627418a2ab759cdeae9c8e017910a0cba94bb759a96611e1fc6df33182e97d28fbf191475237298983bb89ef07d5b02464b1ad28d5 - languageName: node - linkType: hard - -"micromark-factory-space@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-factory-space@npm:1.1.0" - dependencies: - micromark-util-character: ^1.0.0 - micromark-util-types: ^1.0.0 - checksum: b58435076b998a7e244259a4694eb83c78915581206b6e7fc07b34c6abd36a1726ade63df8972fbf6c8fa38eecb9074f4e17be8d53f942e3b3d23d1a0ecaa941 - languageName: node - linkType: hard - -"micromark-factory-title@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-factory-title@npm:1.1.0" - dependencies: - micromark-factory-space: ^1.0.0 - micromark-util-character: ^1.0.0 - micromark-util-symbol: ^1.0.0 - micromark-util-types: ^1.0.0 - checksum: 4432d3dbc828c81f483c5901b0c6591a85d65a9e33f7d96ba7c3ae821617a0b3237ff5faf53a9152d00aaf9afb3a9f185b205590f40ed754f1d9232e0e9157b1 - languageName: node - linkType: hard - -"micromark-factory-whitespace@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-factory-whitespace@npm:1.1.0" - dependencies: - micromark-factory-space: ^1.0.0 - micromark-util-character: ^1.0.0 - micromark-util-symbol: ^1.0.0 - micromark-util-types: ^1.0.0 - checksum: ef0fa682c7d593d85a514ee329809dee27d10bc2a2b65217d8ef81173e33b8e83c549049764b1ad851adfe0a204dec5450d9d20a4ca8598f6c94533a73f73fcd - languageName: node - linkType: hard - -"micromark-util-character@npm:^1.0.0": - version: 1.2.0 - resolution: "micromark-util-character@npm:1.2.0" - dependencies: - micromark-util-symbol: ^1.0.0 - micromark-util-types: ^1.0.0 - checksum: 089e79162a19b4a28731736246579ab7e9482ac93cd681c2bfca9983dcff659212ef158a66a5957e9d4b1dba957d1b87b565d85418a5b009f0294f1f07f2aaac - languageName: node - linkType: hard - -"micromark-util-chunked@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-chunked@npm:1.1.0" - dependencies: - micromark-util-symbol: ^1.0.0 - checksum: c435bde9110cb595e3c61b7f54c2dc28ee03e6a57fa0fc1e67e498ad8bac61ee5a7457a2b6a73022ddc585676ede4b912d28dcf57eb3bd6951e54015e14dc20b - languageName: node - linkType: hard - -"micromark-util-classify-character@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-classify-character@npm:1.1.0" - dependencies: - micromark-util-character: ^1.0.0 - micromark-util-symbol: ^1.0.0 - micromark-util-types: ^1.0.0 - checksum: 8499cb0bb1f7fb946f5896285fcca65cd742f66cd3e79ba7744792bd413ec46834f932a286de650349914d02e822946df3b55d03e6a8e1d245d1ddbd5102e5b0 - languageName: node - linkType: hard - -"micromark-util-combine-extensions@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-combine-extensions@npm:1.1.0" - dependencies: - micromark-util-chunked: ^1.0.0 - micromark-util-types: ^1.0.0 - checksum: ee78464f5d4b61ccb437850cd2d7da4d690b260bca4ca7a79c4bb70291b84f83988159e373b167181b6716cb197e309bc6e6c96a68cc3ba9d50c13652774aba9 - languageName: node - linkType: hard - -"micromark-util-decode-numeric-character-reference@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-decode-numeric-character-reference@npm:1.1.0" - dependencies: - micromark-util-symbol: ^1.0.0 - checksum: 4733fe75146e37611243f055fc6847137b66f0cde74d080e33bd26d0408c1d6f44cabc984063eee5968b133cb46855e729d555b9ff8d744652262b7b51feec73 - languageName: node - linkType: hard - -"micromark-util-decode-string@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-decode-string@npm:1.1.0" - dependencies: - decode-named-character-reference: ^1.0.0 - micromark-util-character: ^1.0.0 - micromark-util-decode-numeric-character-reference: ^1.0.0 - micromark-util-symbol: ^1.0.0 - checksum: f1625155db452f15aa472918499689ba086b9c49d1322a08b22bfbcabe918c61b230a3002c8bc3ea9b1f52ca7a9bb1c3dd43ccb548c7f5f8b16c24a1ae77a813 - languageName: node - linkType: hard - -"micromark-util-encode@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-encode@npm:1.1.0" - checksum: 4ef29d02b12336918cea6782fa87c8c578c67463925221d4e42183a706bde07f4b8b5f9a5e1c7ce8c73bb5a98b261acd3238fecd152e6dd1cdfa2d1ae11b60a0 - languageName: node - linkType: hard - -"micromark-util-html-tag-name@npm:^1.0.0": - version: 1.2.0 - resolution: "micromark-util-html-tag-name@npm:1.2.0" - checksum: ccf0fa99b5c58676dc5192c74665a3bfd1b536fafaf94723bd7f31f96979d589992df6fcf2862eba290ef18e6a8efb30ec8e1e910d9f3fc74f208871e9f84750 - languageName: node - linkType: hard - -"micromark-util-normalize-identifier@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-normalize-identifier@npm:1.1.0" - dependencies: - micromark-util-symbol: ^1.0.0 - checksum: 8655bea41ffa4333e03fc22462cb42d631bbef9c3c07b625fd852b7eb442a110f9d2e5902a42e65188d85498279569502bf92f3434a1180fc06f7c37edfbaee2 - languageName: node - linkType: hard - -"micromark-util-resolve-all@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-resolve-all@npm:1.1.0" - dependencies: - micromark-util-types: ^1.0.0 - checksum: 1ce6c0237cd3ca061e76fae6602cf95014e764a91be1b9f10d36cb0f21ca88f9a07de8d49ab8101efd0b140a4fbfda6a1efb72027ab3f4d5b54c9543271dc52c - languageName: node - linkType: hard - -"micromark-util-sanitize-uri@npm:^1.0.0": - version: 1.2.0 - resolution: "micromark-util-sanitize-uri@npm:1.2.0" - dependencies: - micromark-util-character: ^1.0.0 - micromark-util-encode: ^1.0.0 - micromark-util-symbol: ^1.0.0 - checksum: 6663f365c4fe3961d622a580f4a61e34867450697f6806f027f21cf63c92989494895fcebe2345d52e249fe58a35be56e223a9776d084c9287818b40c779acc1 - languageName: node - linkType: hard - -"micromark-util-subtokenize@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-subtokenize@npm:1.1.0" - dependencies: - micromark-util-chunked: ^1.0.0 - micromark-util-symbol: ^1.0.0 - micromark-util-types: ^1.0.0 - uvu: ^0.5.0 - checksum: 4a9d780c4d62910e196ea4fd886dc4079d8e424e5d625c0820016da0ed399a281daff39c50f9288045cc4bcd90ab47647e5396aba500f0853105d70dc8b1fc45 - languageName: node - linkType: hard - -"micromark-util-symbol@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-symbol@npm:1.1.0" - checksum: 02414a753b79f67ff3276b517eeac87913aea6c028f3e668a19ea0fc09d98aea9f93d6222a76ca783d20299af9e4b8e7c797fe516b766185dcc6e93290f11f88 - languageName: node - linkType: hard - -"micromark-util-types@npm:^1.0.0, micromark-util-types@npm:^1.0.1": - version: 1.1.0 - resolution: "micromark-util-types@npm:1.1.0" - checksum: b0ef2b4b9589f15aec2666690477a6a185536927ceb7aa55a0f46475852e012d75a1ab945187e5c7841969a842892164b15d58ff8316b8e0d6cc920cabd5ede7 - languageName: node - linkType: hard - -"micromark@npm:^3.0.0": - version: 3.2.0 - resolution: "micromark@npm:3.2.0" - dependencies: - "@types/debug": ^4.0.0 - debug: ^4.0.0 - decode-named-character-reference: ^1.0.0 - micromark-core-commonmark: ^1.0.1 - micromark-factory-space: ^1.0.0 - micromark-util-character: ^1.0.0 - micromark-util-chunked: ^1.0.0 - micromark-util-combine-extensions: ^1.0.0 - micromark-util-decode-numeric-character-reference: ^1.0.0 - micromark-util-encode: ^1.0.0 - micromark-util-normalize-identifier: ^1.0.0 - micromark-util-resolve-all: ^1.0.0 - micromark-util-sanitize-uri: ^1.0.0 - micromark-util-subtokenize: ^1.0.0 - micromark-util-symbol: ^1.0.0 - micromark-util-types: ^1.0.1 - uvu: ^0.5.0 - checksum: 56c15851ad3eb8301aede65603473443e50c92a54849cac1dadd57e4ec33ab03a0a77f3df03de47133e6e8f695dae83b759b514586193269e98c0bf319ecd5e4 - languageName: node - linkType: hard - -"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8": - version: 4.0.8 - resolution: "micromatch@npm:4.0.8" - dependencies: - braces: ^3.0.3 - picomatch: ^2.3.1 - checksum: 79920eb634e6f400b464a954fcfa589c4e7c7143209488e44baf627f9affc8b1e306f41f4f0deedde97e69cb725920879462d3e750ab3bd3c1aed675bb3a8966 - languageName: node - linkType: hard - -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a - languageName: node - linkType: hard - -"mimic-function@npm:^5.0.0": - version: 5.0.1 - resolution: "mimic-function@npm:5.0.1" - checksum: eb5893c99e902ccebbc267c6c6b83092966af84682957f79313311edb95e8bb5f39fb048d77132b700474d1c86d90ccc211e99bae0935447a4834eb4c882982c - languageName: node - linkType: hard - -"minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: ^1.1.7 - checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a - languageName: node - linkType: hard - -"minimatch@npm:^5.0.1": - version: 5.1.6 - resolution: "minimatch@npm:5.1.6" - dependencies: - brace-expansion: ^2.0.1 - checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 - languageName: node - linkType: hard - -"minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" - dependencies: - brace-expansion: ^2.0.1 - checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 - languageName: node - linkType: hard - -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: ^7.0.3 - checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 - languageName: node - linkType: hard - -"minipass-fetch@npm:^3.0.0": - version: 3.0.5 - resolution: "minipass-fetch@npm:3.0.5" - dependencies: - encoding: ^0.1.13 - minipass: ^7.0.3 - minipass-sized: ^1.0.3 - minizlib: ^2.1.2 - dependenciesMeta: - encoding: - optional: true - checksum: 8047d273236157aab27ab7cd8eab7ea79e6ecd63e8f80c3366ec076cb9a0fed550a6935bab51764369027c414647fd8256c2a20c5445fb250c483de43350de83 - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: ^3.0.0 - checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: ^3.0.0 - checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: ^3.0.0 - checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: ^4.0.0 - checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 - languageName: node - linkType: hard - -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f - languageName: node - linkType: hard - -"mri@npm:^1.1.0": - version: 1.2.0 - resolution: "mri@npm:1.2.0" - checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 - languageName: node - linkType: hard - -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d - languageName: node - linkType: hard - -"negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 10.2.0 - resolution: "node-gyp@npm:10.2.0" - dependencies: - env-paths: ^2.2.0 - exponential-backoff: ^3.1.1 - glob: ^10.3.10 - graceful-fs: ^4.2.6 - make-fetch-happen: ^13.0.0 - nopt: ^7.0.0 - proc-log: ^4.1.0 - semver: ^7.3.5 - tar: ^6.2.1 - which: ^4.0.0 - bin: - node-gyp: bin/node-gyp.js - checksum: 0233759d8c19765f7fdc259a35eb046ad86c3d09e22f7384613ae2b89647dd27fcf833fdf5293d9335041e91f9b1c539494225959cdb312a5c8080b7534b926f - languageName: node - linkType: hard - -"node-int64@npm:^0.4.0": - version: 0.4.0 - resolution: "node-int64@npm:0.4.0" - checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e - languageName: node - linkType: hard - -"node-releases@npm:^2.0.18": - version: 2.0.18 - resolution: "node-releases@npm:2.0.18" - checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3 - languageName: node - linkType: hard - -"non-layered-tidy-tree-layout@npm:^2.0.2": - version: 2.0.2 - resolution: "non-layered-tidy-tree-layout@npm:2.0.2" - checksum: 5defc1c459001b22816a4fb8b86259b9b76e7f3090df576122a41c760133ab2061934cacd6f176c98c2ae4fee3879b97941e8897e8882985cbfe830f155cd158 - languageName: node - linkType: hard - -"nopt@npm:^7.0.0": - version: 7.2.1 - resolution: "nopt@npm:7.2.1" - dependencies: - abbrev: ^2.0.0 - bin: - nopt: bin/nopt.js - checksum: 6fa729cc77ce4162cfad8abbc9ba31d4a0ff6850c3af61d59b505653bef4781ec059f8890ecfe93ee8aa0c511093369cca88bfc998101616a2904e715bbbb7c9 - languageName: node - linkType: hard - -"normalize-path@npm:^3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 - languageName: node - linkType: hard - -"npm-run-path@npm:^4.0.1": - version: 4.0.1 - resolution: "npm-run-path@npm:4.0.1" - dependencies: - path-key: ^3.0.0 - checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 - languageName: node - linkType: hard - -"nunjucks@npm:^3.2.4": - version: 3.2.4 - resolution: "nunjucks@npm:3.2.4" - dependencies: - a-sync-waterfall: ^1.0.0 - asap: ^2.0.3 - commander: ^5.1.0 - peerDependencies: - chokidar: ^3.3.0 - peerDependenciesMeta: - chokidar: - optional: true - bin: - nunjucks-precompile: bin/precompile - checksum: 8b902a9deb9ff0f5c9ebbd2c7f96dfe5800bf42bdfc91d8f829fc0440ec1f87901593e20479f5ba1bddcc9f2472b16a5e932be5863dcdec0899a27c01a03df32 - languageName: node - linkType: hard - -"object-assign@npm:^4.1.0": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f - languageName: node - linkType: hard - -"once@npm:^1.3.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: 1 - checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 - languageName: node - linkType: hard - -"onetime@npm:^5.1.0, onetime@npm:^5.1.2": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: ^2.1.0 - checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 - languageName: node - linkType: hard - -"onetime@npm:^7.0.0": - version: 7.0.0 - resolution: "onetime@npm:7.0.0" - dependencies: - mimic-function: ^5.0.0 - checksum: eb08d2da9339819e2f9d52cab9caf2557d80e9af8c7d1ae86e1a0fef027d00a88e9f5bd67494d350df360f7c559fbb44e800b32f310fb989c860214eacbb561c - languageName: node - linkType: hard - -"ora@npm:4.0.2": - version: 4.0.2 - resolution: "ora@npm:4.0.2" - dependencies: - chalk: ^2.4.2 - cli-cursor: ^3.1.0 - cli-spinners: ^2.2.0 - is-interactive: ^1.0.0 - log-symbols: ^3.0.0 - strip-ansi: ^5.2.0 - wcwidth: ^1.0.1 - checksum: b7c4b38517a95f25ad353deb12e025eb37b0afa69e315b80a892852db5fd47309b21f515c808e19e453364ad0d7153d07424a06f5964e775b09438a524a397b5 - languageName: node - linkType: hard - -"p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" - dependencies: - p-try: ^2.0.0 - checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 - languageName: node - linkType: hard - -"p-limit@npm:^3.1.0": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: ^0.1.0 - checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 - languageName: node - linkType: hard - -"p-locate@npm:^4.1.0": - version: 4.1.0 - resolution: "p-locate@npm:4.1.0" - dependencies: - p-limit: ^2.2.0 - checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 - languageName: node - linkType: hard - -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c - languageName: node - linkType: hard - -"p-try@npm:^2.0.0": - version: 2.2.0 - resolution: "p-try@npm:2.2.0" - checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae - languageName: node - linkType: hard - -"package-json-from-dist@npm:^1.0.0": - version: 1.0.0 - resolution: "package-json-from-dist@npm:1.0.0" - checksum: ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: ^3.0.0 - checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff - languageName: node - linkType: hard - -"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": ^7.0.0 - error-ex: ^1.3.1 - json-parse-even-better-errors: ^2.3.0 - lines-and-columns: ^1.1.6 - checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 - languageName: node - linkType: hard - -"parse5@npm:*, parse5@npm:^7.1.2": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" - dependencies: - entities: ^4.4.0 - checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 - languageName: node - linkType: hard - -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 - languageName: node - linkType: hard - -"path-key@npm:^3.0.0, path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 - languageName: node - linkType: hard - -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a - languageName: node - linkType: hard - -"path-scurry@npm:^1.11.1": - version: 1.11.1 - resolution: "path-scurry@npm:1.11.1" - dependencies: - lru-cache: ^10.2.0 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": - version: 1.0.1 - resolution: "picocolors@npm:1.0.1" - checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 - languageName: node - linkType: hard - -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf - languageName: node - linkType: hard - -"pirates@npm:^4.0.4": - version: 4.0.6 - resolution: "pirates@npm:4.0.6" - checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 - languageName: node - linkType: hard - -"pkg-dir@npm:^4.2.0": - version: 4.2.0 - resolution: "pkg-dir@npm:4.2.0" - dependencies: - find-up: ^4.0.0 - checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 - languageName: node - linkType: hard - -"pluralize@npm:^8.0.0": - version: 8.0.0 - resolution: "pluralize@npm:8.0.0" - checksum: 08931d4a6a4a5561a7f94f67a31c17e6632cb21e459ab3ff4f6f629d9a822984cf8afef2311d2005fbea5d7ef26016ebb090db008e2d8bce39d0a9a9d218736e - languageName: node - linkType: hard - -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": - version: 29.7.0 - resolution: "pretty-format@npm:29.7.0" - dependencies: - "@jest/schemas": ^29.6.3 - ansi-styles: ^5.0.0 - react-is: ^18.0.0 - checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 - languageName: node - linkType: hard - -"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": - version: 4.2.0 - resolution: "proc-log@npm:4.2.0" - checksum: 98f6cd012d54b5334144c5255ecb941ee171744f45fca8b43b58ae5a0c1af07352475f481cadd9848e7f0250376ee584f6aa0951a856ff8f021bdfbff4eb33fc - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: ^2.0.2 - retry: ^0.12.0 - checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 - languageName: node - linkType: hard - -"prompts@npm:^2.0.1": - version: 2.4.2 - resolution: "prompts@npm:2.4.2" - dependencies: - kleur: ^3.0.3 - sisteransi: ^1.0.5 - checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d - languageName: node - linkType: hard - -"punycode.js@npm:^2.3.1": - version: 2.3.1 - resolution: "punycode.js@npm:2.3.1" - checksum: 13466d7ed5e8dacdab8c4cc03837e7dd14218a59a40eb14a837f1f53ca396e18ef2c4ee6d7766b8ed2fc391d6a3ac489eebf2de83b3596f5a54e86df4a251b72 - languageName: node - linkType: hard - -"pure-rand@npm:^6.0.0": - version: 6.1.0 - resolution: "pure-rand@npm:6.1.0" - checksum: 8d53bc02bed99eca0b65b505090152ee7e9bd67dd74f8ff32ba1c883b87234067c5bf68d2614759fb217d82594d7a92919e6df80f97885e7b12b42af4bd3316a - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 - languageName: node - linkType: hard - -"react-is@npm:^18.0.0": - version: 18.3.1 - resolution: "react-is@npm:18.3.1" - checksum: e20fe84c86ff172fc8d898251b7cc2c43645d108bf96d0b8edf39b98f9a2cae97b40520ee7ed8ee0085ccc94736c4886294456033304151c3f94978cec03df21 - languageName: node - linkType: hard - -"require-directory@npm:^2.1.1": - version: 2.1.1 - resolution: "require-directory@npm:2.1.1" - checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 - languageName: node - linkType: hard - -"resolve-cwd@npm:^3.0.0": - version: 3.0.0 - resolution: "resolve-cwd@npm:3.0.0" - dependencies: - resolve-from: ^5.0.0 - checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f - languageName: node - linkType: hard - -"resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf - languageName: node - linkType: hard - -"resolve.exports@npm:^2.0.0": - version: 2.0.2 - resolution: "resolve.exports@npm:2.0.2" - checksum: 1c7778ca1b86a94f8ab4055d196c7d87d1874b96df4d7c3e67bbf793140f0717fd506dcafd62785b079cd6086b9264424ad634fb904409764c3509c3df1653f2 - languageName: node - linkType: hard - -"resolve@npm:^1.20.0": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" - dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.20.0#~builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" - dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 - languageName: node - linkType: hard - -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 - languageName: node - linkType: hard - -"restore-cursor@npm:^5.0.0": - version: 5.1.0 - resolution: "restore-cursor@npm:5.1.0" - dependencies: - onetime: ^7.0.0 - signal-exit: ^4.1.0 - checksum: 838dd54e458d89cfbc1a923b343c1b0f170a04100b4ce1733e97531842d7b440463967e521216e8ab6c6f8e89df877acc7b7f4c18ec76e99fb9bf5a60d358d2c - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc - languageName: node - linkType: hard - -"rimraf@npm:^2.6.3": - version: 2.7.1 - resolution: "rimraf@npm:2.7.1" - dependencies: - glob: ^7.1.3 - bin: - rimraf: ./bin.js - checksum: cdc7f6eacb17927f2a075117a823e1c5951792c6498ebcce81ca8203454a811d4cf8900314154d3259bb8f0b42ab17f67396a8694a54cae3283326e57ad250cd - languageName: node - linkType: hard - -"robust-predicates@npm:^3.0.2": - version: 3.0.2 - resolution: "robust-predicates@npm:3.0.2" - checksum: 36854c1321548ceca96d36ad9d6e0a5a512986029ec6929ad6ed3ec1612c22cc8b46cc72d2c5674af42e8074a119d793f6f0ea3a5b51373e3ab926c64b172d7a - languageName: node - linkType: hard - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: ^1.2.2 - checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d - languageName: node - linkType: hard - -"rw@npm:1": - version: 1.3.3 - resolution: "rw@npm:1.3.3" - checksum: c20d82421f5a71c86a13f76121b751553a99cd4a70ea27db86f9b23f33db941f3f06019c30f60d50c356d0bd674c8e74764ac146ea55e217c091bde6fba82aa3 - languageName: node - linkType: hard - -"sade@npm:^1.7.3": - version: 1.8.1 - resolution: "sade@npm:1.8.1" - dependencies: - mri: ^1.1.0 - checksum: 0756e5b04c51ccdc8221ebffd1548d0ce5a783a44a0fa9017a026659b97d632913e78f7dca59f2496aa996a0be0b0c322afd87ca72ccd909406f49dbffa0f45d - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 - languageName: node - linkType: hard - -"semver@npm:7.3.5": - version: 7.3.5 - resolution: "semver@npm:7.3.5" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 5eafe6102bea2a7439897c1856362e31cc348ccf96efd455c8b5bc2c61e6f7e7b8250dc26b8828c1d76a56f818a7ee907a36ae9fb37a599d3d24609207001d60 - languageName: node - linkType: hard - -"semver@npm:^6.3.0, semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" - bin: - semver: bin/semver.js - checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 - languageName: node - linkType: hard - -"semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3": - version: 7.6.3 - resolution: "semver@npm:7.6.3" - bin: - semver: bin/semver.js - checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: ^3.0.0 - checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 - languageName: node - linkType: hard - -"shiki@npm:^1.14.1, shiki@npm:^1.9.1": - version: 1.14.1 - resolution: "shiki@npm:1.14.1" - dependencies: - "@shikijs/core": 1.14.1 - "@types/hast": ^3.0.4 - checksum: 205d20e4046a5b4fa904440d07f10895d0505fbf6e3f86b5348d4c8a6235df7fb7d52343e33141cb4dc1dd67b400b8189425bc8d6af175551e4f251d6a5195f7 - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 - languageName: node - linkType: hard - -"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": - version: 4.1.0 - resolution: "signal-exit@npm:4.1.0" - checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 - languageName: node - linkType: hard - -"sisteransi@npm:^1.0.5": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 - languageName: node - linkType: hard - -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c - languageName: node - linkType: hard - -"slice-ansi@npm:^7.1.0": - version: 7.1.0 - resolution: "slice-ansi@npm:7.1.0" - dependencies: - ansi-styles: ^6.2.1 - is-fullwidth-code-point: ^5.0.0 - checksum: 10313dd3cf7a2e4b265f527b1684c7c568210b09743fd1bd74f2194715ed13ffba653dc93a5fa79e3b1711518b8990a732cb7143aa01ddafe626e99dfa6474b2 - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^8.0.3": - version: 8.0.4 - resolution: "socks-proxy-agent@npm:8.0.4" - dependencies: - agent-base: ^7.1.1 - debug: ^4.3.4 - socks: ^2.8.3 - checksum: b2ec5051d85fe49072f9a250c427e0e9571fd09d5db133819192d078fd291276e1f0f50f6dbc04329b207738b1071314cee8bdbb4b12e27de42dbcf1d4233c67 - languageName: node - linkType: hard - -"socks@npm:^2.8.3": - version: 2.8.3 - resolution: "socks@npm:2.8.3" - dependencies: - ip-address: ^9.0.5 - smart-buffer: ^4.2.0 - checksum: 7a6b7f6eedf7482b9e4597d9a20e09505824208006ea8f2c49b71657427f3c137ca2ae662089baa73e1971c62322d535d9d0cf1c9235cf6f55e315c18203eadd - languageName: node - linkType: hard - -"source-map-support@npm:0.5.13": - version: 0.5.13 - resolution: "source-map-support@npm:0.5.13" - dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97 - languageName: node - linkType: hard - -"source-map@npm:^0.6.0, source-map@npm:^0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 - languageName: node - linkType: hard - -"sprintf-js@npm:^1.1.3": - version: 1.1.3 - resolution: "sprintf-js@npm:1.1.3" - checksum: a3fdac7b49643875b70864a9d9b469d87a40dfeaf5d34d9d0c5b1cda5fd7d065531fcb43c76357d62254c57184a7b151954156563a4d6a747015cfb41021cad0 - languageName: node - linkType: hard - -"sprintf-js@npm:~1.0.2": - version: 1.0.3 - resolution: "sprintf-js@npm:1.0.3" - checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 - languageName: node - linkType: hard - -"ssri@npm:^10.0.0": - version: 10.0.6 - resolution: "ssri@npm:10.0.6" - dependencies: - minipass: ^7.0.3 - checksum: 4603d53a05bcd44188747d38f1cc43833b9951b5a1ee43ba50535bdfc5fe4a0897472dbe69837570a5417c3c073377ef4f8c1a272683b401857f72738ee57299 - languageName: node - linkType: hard - -"stack-utils@npm:^2.0.3": - version: 2.0.6 - resolution: "stack-utils@npm:2.0.6" - dependencies: - escape-string-regexp: ^2.0.0 - checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 - languageName: node - linkType: hard - -"string-length@npm:^4.0.1": - version: 4.0.2 - resolution: "string-length@npm:4.0.2" - dependencies: - char-regex: ^1.0.2 - strip-ansi: ^6.0.0 - checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 - languageName: node - linkType: hard - -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: ^8.0.0 - is-fullwidth-code-point: ^3.0.0 - strip-ansi: ^6.0.1 - checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb - languageName: node - linkType: hard - -"string-width@npm:^5.0.1, string-width@npm:^5.1.2": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: ^0.2.0 - emoji-regex: ^9.2.2 - strip-ansi: ^7.0.1 - checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 - languageName: node - linkType: hard - -"string-width@npm:^7.0.0": - version: 7.2.0 - resolution: "string-width@npm:7.2.0" - dependencies: - emoji-regex: ^10.3.0 - get-east-asian-width: ^1.0.0 - strip-ansi: ^7.1.0 - checksum: 42f9e82f61314904a81393f6ef75b832c39f39761797250de68c041d8ba4df2ef80db49ab6cd3a292923a6f0f409b8c9980d120f7d32c820b4a8a84a2598a295 - languageName: node - linkType: hard - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c - languageName: node - linkType: hard - -"strip-ansi@npm:^5.2.0": - version: 5.2.0 - resolution: "strip-ansi@npm:5.2.0" - dependencies: - ansi-regex: ^4.1.0 - checksum: bdb5f76ade97062bd88e7723aa019adbfacdcba42223b19ccb528ffb9fb0b89a5be442c663c4a3fb25268eaa3f6ea19c7c3fbae830bd1562d55adccae1fcec46 - languageName: node - linkType: hard - -"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": - version: 7.1.0 - resolution: "strip-ansi@npm:7.1.0" - dependencies: - ansi-regex: ^6.0.1 - checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d - languageName: node - linkType: hard - -"strip-bom@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-bom@npm:4.0.0" - checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 - languageName: node - linkType: hard - -"strip-final-newline@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-final-newline@npm:2.0.0" - checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 - languageName: node - linkType: hard - -"strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 - languageName: node - linkType: hard - -"stylis@npm:^4.1.3": - version: 4.3.4 - resolution: "stylis@npm:4.3.4" - checksum: 7e3a482c7bba6e0e9e3187972e958acf800b1abe99f23e081fcb5dea8e4a05eca44286c1381ce2bc7179245ddbd7bf1f74237ed413fce7491320a543bcfebda9 - languageName: node - linkType: hard - -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: ^3.0.0 - checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac - languageName: node - linkType: hard - -"supports-color@npm:^7.1.0": - version: 7.2.0 - resolution: "supports-color@npm:7.2.0" - dependencies: - has-flag: ^4.0.0 - checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a - languageName: node - linkType: hard - -"supports-color@npm:^8.0.0": - version: 8.1.1 - resolution: "supports-color@npm:8.1.1" - dependencies: - has-flag: ^4.0.0 - checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.2.1": - version: 6.2.1 - resolution: "tar@npm:6.2.1" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^5.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c - languageName: node - linkType: hard - -"test-exclude@npm:^6.0.0": - version: 6.0.0 - resolution: "test-exclude@npm:6.0.0" - dependencies: - "@istanbuljs/schema": ^0.1.2 - glob: ^7.1.4 - minimatch: ^3.0.4 - checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28 - languageName: node - linkType: hard - -"tmpl@npm:1.0.5": - version: 1.0.5 - resolution: "tmpl@npm:1.0.5" - checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 - languageName: node - linkType: hard - -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: ^7.0.0 - checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed - languageName: node - linkType: hard - -"ts-dedent@npm:^2.2.0": - version: 2.2.0 - resolution: "ts-dedent@npm:2.2.0" - checksum: 93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af - languageName: node - linkType: hard - -"ts-jest@npm:^29.2.5": - version: 29.2.5 - resolution: "ts-jest@npm:29.2.5" - dependencies: - bs-logger: ^0.2.6 - ejs: ^3.1.10 - fast-json-stable-stringify: ^2.1.0 - jest-util: ^29.0.0 - json5: ^2.2.3 - lodash.memoize: ^4.1.2 - make-error: ^1.3.6 - semver: ^7.6.3 - yargs-parser: ^21.1.1 - peerDependencies: - "@babel/core": ">=7.0.0-beta.0 <8" - "@jest/transform": ^29.0.0 - "@jest/types": ^29.0.0 - babel-jest: ^29.0.0 - jest: ^29.0.0 - typescript: ">=4.3 <6" - peerDependenciesMeta: - "@babel/core": - optional: true - "@jest/transform": - optional: true - "@jest/types": - optional: true - babel-jest: - optional: true - esbuild: - optional: true - bin: - ts-jest: cli.js - checksum: d60d1e1d80936f6002b1bb27f7e062408bc733141b9d666565503f023c340a3196d506c836a4316c5793af81a5f910ab49bb9c13f66e2dc66de4e0f03851dbca - languageName: node - linkType: hard - -"type-detect@npm:4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 - languageName: node - linkType: hard - -"type-fest@npm:^0.21.3": - version: 0.21.3 - resolution: "type-fest@npm:0.21.3" - checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 - languageName: node - linkType: hard - -"typedoc@npm:^0.26.6": - version: 0.26.6 - resolution: "typedoc@npm:0.26.6" - dependencies: - lunr: ^2.3.9 - markdown-it: ^14.1.0 - minimatch: ^9.0.5 - shiki: ^1.9.1 - yaml: ^2.4.5 - peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x - bin: - typedoc: bin/typedoc - checksum: e52efff8bf437b25828ee7e1200865e4914385e47964fc25bf4e58dc0d69cb026a8e9699b6091a9385732e9cee38480a5b290ab9e3f4fa4a5b8a3e244521d112 - languageName: node - linkType: hard - -"typescript@npm:^5.5.4": - version: 5.5.4 - resolution: "typescript@npm:5.5.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: b309040f3a1cd91c68a5a58af6b9fdd4e849b8c42d837b2c2e73f9a4f96a98c4f1ed398a9aab576ee0a4748f5690cf594e6b99dbe61de7839da748c41e6d6ca8 - languageName: node - linkType: hard - -"typescript@patch:typescript@^5.5.4#~builtin": - version: 5.5.4 - resolution: "typescript@patch:typescript@npm%3A5.5.4#~builtin::version=5.5.4&hash=85af82" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: fc52962f31a5bcb716d4213bef516885e4f01f30cea797a831205fc9ef12b405a40561c40eae3127ab85ba1548e7df49df2bcdee6b84a94bfbe3a0d7eff16b14 - languageName: node - linkType: hard - -"uc.micro@npm:^2.0.0, uc.micro@npm:^2.1.0": - version: 2.1.0 - resolution: "uc.micro@npm:2.1.0" - checksum: 37197358242eb9afe367502d4638ac8c5838b78792ab218eafe48287b0ed28aaca268ec0392cc5729f6c90266744de32c06ae938549aee041fc93b0f9672d6b2 - languageName: node - linkType: hard - -"undici-types@npm:~6.19.2": - version: 6.19.6 - resolution: "undici-types@npm:6.19.6" - checksum: e66df2447b6d93a48b0605a54269d8c3f228edcd1e9563229f6de37e48ed53b3e49b4bc965733643ed9717e0e0fa1ee664c929db91d787c9f488fb3f9e17c533 - languageName: node - linkType: hard - -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" - dependencies: - unique-slug: ^4.0.0 - checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df - languageName: node - linkType: hard - -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" - dependencies: - imurmurhash: ^0.1.4 - checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 - languageName: node - linkType: hard - -"unist-util-stringify-position@npm:^3.0.0": - version: 3.0.3 - resolution: "unist-util-stringify-position@npm:3.0.3" - dependencies: - "@types/unist": ^2.0.0 - checksum: dbd66c15183607ca942a2b1b7a9f6a5996f91c0d30cf8966fb88955a02349d9eefd3974e9010ee67e71175d784c5a9fea915b0aa0b0df99dcb921b95c4c9e124 - languageName: node - linkType: hard - -"update-browserslist-db@npm:^1.1.0": - version: 1.1.0 - resolution: "update-browserslist-db@npm:1.1.0" - dependencies: - escalade: ^3.1.2 - picocolors: ^1.0.1 - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 7b74694d96f0c360f01b702e72353dc5a49df4fe6663d3ee4e5c628f061576cddf56af35a3a886238c01dd3d8f231b7a86a8ceaa31e7a9220ae31c1c1238e562 - languageName: node - linkType: hard - -"uuid@npm:^9.0.0": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 - languageName: node - linkType: hard - -"uvu@npm:^0.5.0": - version: 0.5.6 - resolution: "uvu@npm:0.5.6" - dependencies: - dequal: ^2.0.0 - diff: ^5.0.0 - kleur: ^4.0.3 - sade: ^1.7.3 - bin: - uvu: bin.js - checksum: 09460a37975627de9fcad396e5078fb844d01aaf64a6399ebfcfd9e55f1c2037539b47611e8631f89be07656962af0cf48c334993db82b9ae9c3d25ce3862168 - languageName: node - linkType: hard - -"v8-to-istanbul@npm:^9.0.1": - version: 9.3.0 - resolution: "v8-to-istanbul@npm:9.3.0" - dependencies: - "@jridgewell/trace-mapping": ^0.3.12 - "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^2.0.0 - checksum: ded42cd535d92b7fd09a71c4c67fb067487ef5551cc227bfbf2a1f159a842e4e4acddaef20b955789b8d3b455b9779d036853f4a27ce15007f6364a4d30317ae - languageName: node - linkType: hard - -"walker@npm:^1.0.8": - version: 1.0.8 - resolution: "walker@npm:1.0.8" - dependencies: - makeerror: 1.0.12 - checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c - languageName: node - linkType: hard - -"wcwidth@npm:^1.0.1": - version: 1.0.1 - resolution: "wcwidth@npm:1.0.1" - dependencies: - defaults: ^1.0.3 - checksum: 814e9d1ddcc9798f7377ffa448a5a3892232b9275ebb30a41b529607691c0491de47cba426e917a4d08ded3ee7e9ba2f3fe32e62ee3cd9c7d3bafb7754bd553c - languageName: node - linkType: hard - -"web-worker@npm:^1.2.0": - version: 1.3.0 - resolution: "web-worker@npm:1.3.0" - checksum: ed1f869aefd1d81a43d0fbfe7b315a65beb6d7d2486b378c436a7047eed4216be34b2e6afca738b6fa95d016326b765f5f816355db33267dbf43b2b8a1837c0c - languageName: node - linkType: hard - -"which@npm:2.0.2, which@npm:^2.0.1": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: ^2.0.0 - bin: - node-which: ./bin/node-which - checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 - languageName: node - linkType: hard - -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" - dependencies: - isexe: ^3.1.1 - bin: - node-which: bin/which.js - checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 - languageName: node - linkType: hard - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b - languageName: node - linkType: hard - -"wrap-ansi@npm:^8.1.0": - version: 8.1.0 - resolution: "wrap-ansi@npm:8.1.0" - dependencies: - ansi-styles: ^6.1.0 - string-width: ^5.0.1 - strip-ansi: ^7.0.1 - checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 - languageName: node - linkType: hard - -"wrap-ansi@npm:^9.0.0": - version: 9.0.0 - resolution: "wrap-ansi@npm:9.0.0" - dependencies: - ansi-styles: ^6.2.1 - string-width: ^7.0.0 - strip-ansi: ^7.1.0 - checksum: b2d43b76b3d8dcbdd64768165e548aad3e54e1cae4ecd31bac9966faaa7cf0b0345677ad6879db10ba58eb446ba8fa44fb82b4951872fd397f096712467a809f - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 - languageName: node - linkType: hard - -"write-file-atomic@npm:^4.0.2": - version: 4.0.2 - resolution: "write-file-atomic@npm:4.0.2" - dependencies: - imurmurhash: ^0.1.4 - signal-exit: ^3.0.7 - checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c - languageName: node - linkType: hard - -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 - languageName: node - linkType: hard - -"yallist@npm:^3.0.2": - version: 3.1.1 - resolution: "yallist@npm:3.1.1" - checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 - languageName: node - linkType: hard - -"yaml@npm:^1.10.0": - version: 1.10.2 - resolution: "yaml@npm:1.10.2" - checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f - languageName: node - linkType: hard - -"yaml@npm:^2.4.5": - version: 2.5.0 - resolution: "yaml@npm:2.5.0" - bin: - yaml: bin.mjs - checksum: a116dca5c61641d9bf1f1016c6e71daeb1ed4915f5930ed237d45ab7a605aa5d92c332ff64879a6cd088cabede008c778774e3060ffeb4cd617d28088e4b2d83 - languageName: node - linkType: hard - -"yargs-parser@npm:^21.0.0, yargs-parser@npm:^21.1.1": - version: 21.1.1 - resolution: "yargs-parser@npm:21.1.1" - checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c - languageName: node - linkType: hard - -"yargs@npm:^17.3.1": - version: 17.7.2 - resolution: "yargs@npm:17.7.2" - dependencies: - cliui: ^8.0.1 - escalade: ^3.1.1 - get-caller-file: ^2.0.5 - require-directory: ^2.1.1 - string-width: ^4.2.3 - y18n: ^5.0.5 - yargs-parser: ^21.1.1 - checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a - languageName: node - linkType: hard - -"yocto-queue@npm:^0.1.0": - version: 0.1.0 - resolution: "yocto-queue@npm:0.1.0" - checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 - languageName: node - linkType: hard +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.25.2": + version "7.25.4" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz" + integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.8.0", "@babel/core@>=7.0.0-beta.0 <8": + version "7.25.2" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz" + integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-module-transforms" "^7.25.2" + "@babel/helpers" "^7.25.0" + "@babel/parser" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.2" + "@babel/types" "^7.25.2" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.25.0", "@babel/generator@^7.25.4", "@babel/generator@^7.7.2": + version "7.25.5" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.25.5.tgz" + integrity sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w== + dependencies: + "@babel/types" "^7.25.4" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.25.2": + version "7.25.2" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz" + integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-validator-option" "^7.24.8" + browserslist "^4.23.1" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.25.2": + version "7.25.2" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz" + integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.2" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0": + version "7.24.8" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.8": + version "7.24.8" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + +"@babel/helpers@^7.25.0": + version "7.25.0" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz" + integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== + dependencies: + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.4": + version "7.25.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.4.tgz" + integrity sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA== + dependencies: + "@babel/types" "^7.25.4" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz" + integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.7.2": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.25.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz" + integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/template@^7.25.0", "@babel/template@^7.3.3": + version "7.25.0" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/traverse@^7.24.7", "@babel/traverse@^7.25.2": + version "7.25.4" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.4.tgz" + integrity sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.4" + "@babel/parser" "^7.25.4" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.4" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.4", "@babel/types@^7.3.3": + version "7.25.4" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.4.tgz" + integrity sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@braintree/sanitize-url@^6.0.1": + version "6.0.4" + resolved "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz" + integrity sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A== + +"@djockey/linkmapper-typedoc@^0.0.7": + version "0.0.7" + resolved "https://registry.npmjs.org/@djockey/linkmapper-typedoc/-/linkmapper-typedoc-0.0.7.tgz" + integrity sha512-3iWXZ5b12NyOwruwgak0erMnhb5Mp796no7nYH/uzgZQEn90tGrZFjosgba1OHaoUIE8AvZv1AaN9w91ZCvPUg== + dependencies: + argparse "^2.0.1" + typedoc "^0.26.6" + +"@djot/djot@^0.3.1": + version "0.3.1" + +"@fontsource/ibm-plex-sans@^5.0.21": + version "5.0.21" + resolved "https://registry.npmjs.org/@fontsource/ibm-plex-sans/-/ibm-plex-sans-5.0.21.tgz" + integrity sha512-YmQJgR5rbynZPrbnfU2UojSduA8K5FV0jEq8CzTB6AU0C65ZZYrD1BX96rz/IBQx+uDeDfi4w9vP5Zb+TB5Uqw== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== + dependencies: + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + ci-info "^3.2.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" + +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== + dependencies: + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== + dependencies: + "@jest/test-result" "^29.7.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + slash "^3.0.0" + +"@jest/transform@^29.0.0", "@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + +"@jest/types@^29.0.0", "@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@shikijs/core@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@shikijs/core/-/core-1.14.1.tgz" + integrity sha512-KyHIIpKNaT20FtFPFjCQB5WVSTpLR/n+jQXhWHWVUMm9MaOaG9BGOG0MSyt7yA4+Lm+4c9rTc03tt3nYzeYSfw== + dependencies: + "@types/hast" "^3.0.4" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@types/argparse@^2.0.16": + version "2.0.16" + resolved "https://registry.npmjs.org/@types/argparse/-/argparse-2.0.16.tgz" + integrity sha512-aMqBra2JlqpFeCWOinCtpRpiCkPIXH8hahW2+FkGzvWjfE5sAqtOcrjN5DRcMnTQqFDe6gb1CVYuGnBH0lhXwA== + +"@types/babel__core@^7.1.14": + version "7.20.5" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.20.6" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== + dependencies: + "@babel/types" "^7.20.7" + +"@types/braces@*": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/braces/-/braces-3.0.4.tgz" + integrity sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA== + +"@types/d3-array@*": + version "3.2.1" + resolved "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz" + integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg== + +"@types/d3-axis@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz" + integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-brush@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz" + integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-chord@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz" + integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== + +"@types/d3-color@*": + version "3.1.3" + resolved "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz" + integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== + +"@types/d3-contour@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz" + integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== + dependencies: + "@types/d3-array" "*" + "@types/geojson" "*" + +"@types/d3-delaunay@*": + version "6.0.4" + resolved "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz" + integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== + +"@types/d3-dispatch@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz" + integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ== + +"@types/d3-drag@*": + version "3.0.7" + resolved "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz" + integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-dsv@*": + version "3.0.7" + resolved "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz" + integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== + +"@types/d3-ease@*": + version "3.0.2" + resolved "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz" + integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== + +"@types/d3-fetch@*": + version "3.0.7" + resolved "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz" + integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== + dependencies: + "@types/d3-dsv" "*" + +"@types/d3-force@*": + version "3.0.10" + resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz" + integrity sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw== + +"@types/d3-format@*": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz" + integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== + +"@types/d3-geo@*": + version "3.1.0" + resolved "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz" + integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== + dependencies: + "@types/geojson" "*" + +"@types/d3-hierarchy@*": + version "3.1.7" + resolved "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz" + integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg== + +"@types/d3-interpolate@*": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz" + integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== + dependencies: + "@types/d3-color" "*" + +"@types/d3-path@*": + version "3.1.0" + resolved "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz" + integrity sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ== + +"@types/d3-polygon@*": + version "3.0.2" + resolved "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz" + integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== + +"@types/d3-quadtree@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz" + integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== + +"@types/d3-random@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz" + integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== + +"@types/d3-scale-chromatic@*", "@types/d3-scale-chromatic@^3.0.0": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz" + integrity sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw== + +"@types/d3-scale@*", "@types/d3-scale@^4.0.3": + version "4.0.8" + resolved "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz" + integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== + dependencies: + "@types/d3-time" "*" + +"@types/d3-selection@*": + version "3.0.10" + resolved "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz" + integrity sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg== + +"@types/d3-shape@*": + version "3.1.6" + resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz" + integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA== + dependencies: + "@types/d3-path" "*" + +"@types/d3-time-format@*": + version "4.0.3" + resolved "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz" + integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== + +"@types/d3-time@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz" + integrity sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw== + +"@types/d3-timer@*": + version "3.0.2" + resolved "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz" + integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== + +"@types/d3-transition@*": + version "3.0.8" + resolved "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz" + integrity sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-zoom@*": + version "3.0.8" + resolved "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz" + integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== + dependencies: + "@types/d3-interpolate" "*" + "@types/d3-selection" "*" + +"@types/d3@^7.4.3": + version "7.4.3" + resolved "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz" + integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== + dependencies: + "@types/d3-array" "*" + "@types/d3-axis" "*" + "@types/d3-brush" "*" + "@types/d3-chord" "*" + "@types/d3-color" "*" + "@types/d3-contour" "*" + "@types/d3-delaunay" "*" + "@types/d3-dispatch" "*" + "@types/d3-drag" "*" + "@types/d3-dsv" "*" + "@types/d3-ease" "*" + "@types/d3-fetch" "*" + "@types/d3-force" "*" + "@types/d3-format" "*" + "@types/d3-geo" "*" + "@types/d3-hierarchy" "*" + "@types/d3-interpolate" "*" + "@types/d3-path" "*" + "@types/d3-polygon" "*" + "@types/d3-quadtree" "*" + "@types/d3-random" "*" + "@types/d3-scale" "*" + "@types/d3-scale-chromatic" "*" + "@types/d3-selection" "*" + "@types/d3-shape" "*" + "@types/d3-time" "*" + "@types/d3-time-format" "*" + "@types/d3-timer" "*" + "@types/d3-transition" "*" + "@types/d3-zoom" "*" + +"@types/debug@^4.0.0": + version "4.1.12" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/dompurify@^3.0.5": + version "3.0.5" + resolved "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz" + integrity sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg== + dependencies: + "@types/trusted-types" "*" + +"@types/geojson@*": + version "7946.0.14" + resolved "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz" + integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg== + +"@types/graceful-fs@^4.1.3": + version "4.1.9" + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/hast@^3.0.4": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.5.12": + version "29.5.12" + resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/js-yaml@^4.0.9": + version "4.0.9" + resolved "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz" + integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== + +"@types/log-update@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@types/log-update/-/log-update-3.1.0.tgz" + integrity sha512-L3shQnrmoniNIGXbjh6yrC/472aIg4qY9ANLErfagmmiHfoI/Hf10ndFpSwD1GYTzWaDvWDoBHlcV2vdA+3rsQ== + dependencies: + log-update "*" + +"@types/lunr@^2.3.7": + version "2.3.7" + resolved "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.7.tgz" + integrity sha512-Tb/kUm38e8gmjahQzdCKhbdsvQ9/ppzHFfsJ0dMs3ckqQsRj+P5IkSAwFTBrBxdyr3E/LoMUUrZngjDYAjiE3A== + +"@types/mdast@^3.0.0": + version "3.0.15" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz" + integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== + dependencies: + "@types/unist" "^2" + +"@types/micromatch@^4.0.9": + version "4.0.9" + resolved "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.9.tgz" + integrity sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg== + dependencies: + "@types/braces" "*" + +"@types/ms@*": + version "0.7.34" + resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + +"@types/node@*", "@types/node@^22.4.0": + version "22.4.0" + resolved "https://registry.npmjs.org/@types/node/-/node-22.4.0.tgz" + integrity sha512-49AbMDwYUz7EXxKU/r7mXOsxwFr4BYbvB7tWYxVuLdb2ibd30ijjXINSMAHiEEZk5PCRBmW1gUeisn2VMKt3cQ== + dependencies: + undici-types "~6.19.2" + +"@types/nunjucks@^3.2.6": + version "3.2.6" + resolved "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.2.6.tgz" + integrity sha512-pHiGtf83na1nCzliuAdq8GowYiXvH5l931xZ0YEHaLMNFgynpEqx+IPStlu7UaDkehfvl01e4x/9Tpwhy7Ue3w== + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/parse5@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@types/parse5/-/parse5-7.0.0.tgz" + integrity sha512-f2SeAxumolBmhuR62vNGTsSAvdz/Oj0k682xNrcKJ4dmRnTPODB74j6CPoNPzBPTHsu7Y7W7u93Mgp8Ovo8vWw== + dependencies: + parse5 "*" + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/trusted-types@*": + version "2.0.7" + resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + +"@types/unist@*", "@types/unist@^2", "@types/unist@^2.0.0": + version "2.0.11" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz" + integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.33" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + dependencies: + "@types/yargs-parser" "*" + +a-sync-waterfall@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz" + integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-escapes@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz" + integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== + dependencies: + environment "^1.0.0" + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.2.1: + version "6.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@^3.0.3: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apisauce@^2.1.5: + version "2.1.6" + resolved "https://registry.npmjs.org/apisauce/-/apisauce-2.1.6.tgz" + integrity sha512-MdxR391op/FucS2YQRfB/NMRyCnHEPDd4h17LRIuVYi0BpGmMhpxc0shbOpfs5ahABuBEffNCGal5EcsydbBWg== + dependencies: + axios "^0.21.4" + +app-module-path@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz" + integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +asap@^2.0.3: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +async@^3.2.3: + version "3.2.6" + resolved "https://registry.npmjs.org/async/-/async-3.2.6.tgz" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + +axios@^0.21.4: + version "0.21.4" + resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +babel-jest@^29.0.0, babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== + dependencies: + "@jest/transform" "^29.7.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.6.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz" + integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== + dependencies: + babel-plugin-jest-hoist "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.23.1, "browserslist@>= 4.21.0": + version "4.23.3" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== + dependencies: + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" + +bs-logger@^0.2.6: + version "0.2.6" + resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001646: + version "1.0.30001653" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz" + integrity sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.0.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cjs-module-lexer@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz" + integrity sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== + dependencies: + restore-cursor "^5.0.0" + +cli-spinners@^2.2.0: + version "2.9.2" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-table3@0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" + string-width "^4.2.0" + optionalDependencies: + colors "^1.1.2" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +colors@^1.1.2, colors@1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +commander@7: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cose-base@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz" + integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== + dependencies: + layout-base "^1.0.0" + +cosmiconfig@7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + +cross-spawn@^7.0.3, cross-spawn@7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cytoscape-cose-bilkent@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz" + integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== + dependencies: + cose-base "^1.0.0" + +cytoscape@^3.2.0, cytoscape@^3.28.1: + version "3.30.2" + resolved "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.2.tgz" + integrity sha512-oICxQsjW8uSaRmn4UK/jkczKOqTrVqt5/1WL0POiJUT2EKNc9STM4hYFHv917yu55aTBMFNRzymlJhVAiWPCxw== + +d3-array@^3.2.0, "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: + version "3.2.4" + resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +"d3-array@1 - 2": + version "2.12.1" + resolved "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.0" + resolved "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-geo@3: + version "3.1.1" + resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz" + integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@^3.1.0, "d3-path@1 - 3", d3-path@3: + version "3.1.0" + resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-path@1: + version "1.0.9" + resolved "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-sankey@^0.12.3: + version "0.12.3" + resolved "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz" + integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ== + dependencies: + d3-array "1 - 2" + d3-shape "^1.2.0" + +d3-scale-chromatic@3: + version "3.1.0" + resolved "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz" + integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4: + version "4.0.2" + resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +d3-shape@3: + version "3.2.0" + resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3: + version "3.0.0" + resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.4.0, d3@^7.8.2: + version "7.9.0" + resolved "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz" + integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + +dagre-d3-es@7.0.10: + version "7.0.10" + resolved "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz" + integrity sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A== + dependencies: + d3 "^7.8.2" + lodash-es "^4.17.21" + +dayjs@^1.11.7: + version "1.11.13" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + +debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.6" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + +dedent@^1.0.0: + version "1.5.3" + resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +delaunator@5: + version "5.0.1" + resolved "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz" + integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw== + dependencies: + robust-predicates "^3.0.2" + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +diff@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== + +dompurify@^3.0.5: + version "3.1.6" + resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz" + integrity sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ== + +ejs@^3.1.10: + version "3.1.10" + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== + dependencies: + jake "^10.8.5" + +ejs@3.1.8: + version "3.1.8" + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== + dependencies: + jake "^10.8.5" + +electron-to-chromium@^1.5.4: + version "1.5.13" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz" + integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q== + +elkjs@^0.9.0: + version "0.9.3" + resolved "https://registry.npmjs.org/elkjs/-/elkjs-0.9.3.tgz" + integrity sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ== + +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + +emoji-regex@^10.3.0: + version "10.4.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz" + integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +enquirer@2.3.6: + version "2.3.6" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +environment@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz" + integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +execa@^5.0.0, execa@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^29.0.0, expect@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.1.0, fast-json-stable-stringify@2.x: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +follow-redirects@^1.14.0: + version "1.15.6" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +fs-jetpack@4.3.1: + version "4.3.1" + resolved "https://registry.npmjs.org/fs-jetpack/-/fs-jetpack-4.3.1.tgz" + integrity sha512-dbeOK84F6BiQzk2yqqCVwCPWTxAvVGJ3fMQc6E2wuEohS28mR6yHngbrKuVCK1KHRx/ccByDylqu4H5PCP2urQ== + dependencies: + minimatch "^3.0.2" + rimraf "^2.6.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-east-asian-width@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz" + integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +gluegun@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/gluegun/-/gluegun-5.2.0.tgz" + integrity sha512-jSUM5xUy2ztYFQANne17OUm/oAd7qSX7EBksS9bQDt9UvLPqcEkeWUebmaposb8Tx7eTTD8uJVWGRe6PYSsYkg== + dependencies: + apisauce "^2.1.5" + app-module-path "^2.2.0" + cli-table3 "0.6.0" + colors "1.4.0" + cosmiconfig "7.0.1" + cross-spawn "7.0.3" + ejs "3.1.8" + enquirer "2.3.6" + execa "5.1.1" + fs-jetpack "4.3.1" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.lowercase "^4.3.0" + lodash.lowerfirst "^4.3.1" + lodash.pad "^4.5.1" + lodash.padend "^4.6.1" + lodash.padstart "^4.6.1" + lodash.repeat "^4.1.0" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.trim "^4.5.1" + lodash.trimend "^4.5.1" + lodash.trimstart "^4.5.1" + lodash.uppercase "^4.3.0" + lodash.upperfirst "^4.3.1" + ora "4.0.2" + pluralize "^8.0.0" + semver "7.3.5" + which "2.0.2" + yargs-parser "^21.0.0" + +graceful-fs@^4.2.9: + version "4.2.11" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + +hasown@^2.0.2: + version "2.0.2" + dependencies: + function-bind "^1.1.2" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.6: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.2.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-core-module@^2.13.0: + version "2.15.0" + dependencies: + hasown "^2.0.2" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz" + integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== + dependencies: + get-east-asian-width "^1.0.0" + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-instrument@^6.0.0: + version "6.0.3" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.7" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jake@^10.8.5: + version "10.9.2" + resolved "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz" + integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== + dependencies: + execa "^5.0.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^1.0.0" + is-generator-fn "^2.0.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + pretty-format "^29.7.0" + pure-rand "^6.0.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== + dependencies: + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + create-jest "^29.7.0" + exit "^0.1.2" + import-local "^3.0.2" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + yargs "^17.3.1" + +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== + dependencies: + detect-newline "^3.0.0" + +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== + dependencies: + "@jest/types" "^29.6.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== + dependencies: + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== + +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== + dependencies: + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" + +jest-resolve@*, jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-pnp-resolver "^1.2.2" + jest-util "^29.7.0" + jest-validate "^29.7.0" + resolve "^1.20.0" + resolve.exports "^2.0.0" + slash "^3.0.0" + +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== + dependencies: + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.13.1" + graceful-fs "^4.2.9" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^29.7.0" + graceful-fs "^4.2.9" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + natural-compare "^1.4.0" + pretty-format "^29.7.0" + semver "^7.5.3" + +jest-util@^29.0.0, jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.7.0" + +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== + dependencies: + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.13.1" + jest-util "^29.7.0" + string-length "^4.0.1" + +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.0.0, jest@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== + dependencies: + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" + import-local "^3.0.2" + jest-cli "^29.7.0" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +katex@^0.16.9: + version "0.16.11" + resolved "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz" + integrity sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ== + dependencies: + commander "^8.3.0" + +khroma@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz" + integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +layout-base@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz" + integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.lowercase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz" + integrity sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA== + +lodash.lowerfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.npmjs.org/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz" + integrity sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.pad@^4.5.1: + version "4.5.1" + resolved "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz" + integrity sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg== + +lodash.padend@^4.6.1: + version "4.6.1" + resolved "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz" + integrity sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw== + +lodash.padstart@^4.6.1: + version "4.6.1" + resolved "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz" + integrity sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw== + +lodash.repeat@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz" + integrity sha512-eWsgQW89IewS95ZOcr15HHCX6FVDxq3f2PNUIng3fyzsPev9imFQxIYdFZ6crl8L56UR6ZlGDLcEb3RZsCSSqw== + +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + +lodash.trim@^4.5.1: + version "4.5.1" + resolved "https://registry.npmjs.org/lodash.trim/-/lodash.trim-4.5.1.tgz" + integrity sha512-nJAlRl/K+eiOehWKDzoBVrSMhK0K3A3YQsUNXHQa5yIrKBAhsZgSu3KoAFoFT+mEgiyBHddZ0pRk1ITpIp90Wg== + +lodash.trimend@^4.5.1: + version "4.5.1" + resolved "https://registry.npmjs.org/lodash.trimend/-/lodash.trimend-4.5.1.tgz" + integrity sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA== + +lodash.trimstart@^4.5.1: + version "4.5.1" + resolved "https://registry.npmjs.org/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz" + integrity sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ== + +lodash.uppercase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz" + integrity sha512-+Nbnxkj7s8K5U8z6KnEYPGUOGp3woZbB7Ecs7v3LkkjLQSm2kP9SKIILitN1ktn2mB/tmM9oSlku06I+/lH7QA== + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +log-update@*: + version "6.1.0" + resolved "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz" + integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== + dependencies: + ansi-escapes "^7.0.0" + cli-cursor "^5.0.0" + slice-ansi "^7.1.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + dependencies: + yallist "^4.0.0" + +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-error@^1.3.6: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +markdown-it@^14.1.0: + version "14.1.0" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" + +mdast-util-from-markdown@^1.3.0: + version "1.3.1" + resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +mermaid@^10.9.1: + version "10.9.1" + resolved "https://registry.npmjs.org/mermaid/-/mermaid-10.9.1.tgz" + integrity sha512-Mx45Obds5W1UkW1nv/7dHRsbfMM1aOKA2+Pxs/IGHNonygDHwmng8xTHyS9z4KWVi0rbko8gjiBmuwwXQ7tiNA== + dependencies: + "@braintree/sanitize-url" "^6.0.1" + "@types/d3-scale" "^4.0.3" + "@types/d3-scale-chromatic" "^3.0.0" + cytoscape "^3.28.1" + cytoscape-cose-bilkent "^4.1.0" + d3 "^7.4.0" + d3-sankey "^0.12.3" + dagre-d3-es "7.0.10" + dayjs "^1.11.7" + dompurify "^3.0.5" + elkjs "^0.9.0" + katex "^0.16.9" + khroma "^2.0.0" + lodash-es "^4.17.21" + mdast-util-from-markdown "^1.3.0" + non-layered-tidy-tree-layout "^2.0.2" + stylis "^4.1.3" + ts-dedent "^2.2.0" + uuid "^9.0.0" + web-worker "^1.2.0" + +micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromatch@^4.0.4, micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== + +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + +non-layered-tidy-tree-layout@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz" + integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nunjucks@^3.2.4: + version "3.2.4" + resolved "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz" + integrity sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ== + dependencies: + a-sync-waterfall "^1.0.0" + asap "^2.0.3" + commander "^5.1.0" + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== + dependencies: + mimic-function "^5.0.0" + +ora@4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/ora/-/ora-4.0.2.tgz" + integrity sha512-YUOZbamht5mfLxPmk4M35CD/5DuOkAacxlEUbStVXpBAt4fyhBf+vZHI/HRkI++QUp3sNoeA2Gw4C+hi4eGSig== + dependencies: + chalk "^2.4.2" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@*, parse5@^7.1.2: + version "7.1.2" + resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + +pure-rand@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz" + integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.20.0: + version "1.22.8" + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== + dependencies: + onetime "^7.0.0" + signal-exit "^4.1.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +robust-predicates@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rw@1: + version "1.3.3" + resolved "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver@^6.3.0: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.5.3, semver@^7.5.4: + version "7.5.4" + dependencies: + lru-cache "^6.0.0" + +semver@^7.6.3: + version "7.6.3" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +semver@7.3.5: + version "7.3.5" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shiki@^1.14.1, shiki@^1.9.1: + version "1.14.1" + resolved "https://registry.npmjs.org/shiki/-/shiki-1.14.1.tgz" + integrity sha512-FujAN40NEejeXdzPt+3sZ3F2dx1U24BY2XTY01+MG8mbxCiA2XukXdcbyMyLAHJ/1AUUnQd1tZlvIjefWWEJeA== + dependencies: + "@shikijs/core" "1.14.1" + "@types/hast" "^3.0.4" + +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz" + integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== + dependencies: + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^7.0.0: + version "7.2.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +stylis@^4.1.3: + version "4.3.4" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz" + integrity sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +ts-dedent@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz" + integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== + +ts-jest@^29.2.5: + version "29.2.5" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz" + integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA== + dependencies: + bs-logger "^0.2.6" + ejs "^3.1.10" + fast-json-stable-stringify "^2.1.0" + jest-util "^29.0.0" + json5 "^2.2.3" + lodash.memoize "^4.1.2" + make-error "^1.3.6" + semver "^7.6.3" + yargs-parser "^21.1.1" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +typedoc@^0.26.6: + version "0.26.6" + resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.26.6.tgz" + integrity sha512-SfEU3SH3wHNaxhFPjaZE2kNl/NFtLNW5c1oHsg7mti7GjmUj1Roq6osBQeMd+F4kL0BoRBBr8gQAuqBlfFu8LA== + dependencies: + lunr "^2.3.9" + markdown-it "^14.1.0" + minimatch "^9.0.5" + shiki "^1.9.1" + yaml "^2.4.5" + +typescript@^5.0.0, typescript@^5.5.4, "typescript@>=4.3 <6", "typescript@4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x": + version "5.5.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + +undici-types@~6.19.2: + version "6.19.6" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.6.tgz" + integrity sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org== + +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + +v8-to-istanbul@^9.0.1: + version "9.3.0" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz" + integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-worker@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz" + integrity sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA== + +which@^2.0.1, which@2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz" + integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yaml@^2.4.5: + version "2.5.0" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== + +yargs-parser@^21.0.0, yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.3.1: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==